Current File : /home/mmdealscpanel/yummmdeals.com/ruby22.tar
include/ruby-2.2.0/x86_64-linux/ruby/config.h000064400000024462150402105670014307 0ustar00#ifndef INCLUDE_RUBY_CONFIG_H
#define INCLUDE_RUBY_CONFIG_H 1
/* confdefs.h */
#define CANONICALIZATION_FOR_MATHN 1
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define __EXTENSIONS__ 1
#define _ALL_SOURCE 1
#define _GNU_SOURCE 1
#define _POSIX_PTHREAD_SEMANTICS 1
#define _TANDEM_SOURCE 1
#define RUBY_SYMBOL_EXPORT_BEGIN _Pragma("GCC visibility push(default)")
#define RUBY_SYMBOL_EXPORT_END _Pragma("GCC visibility pop")
#define HAVE_LIBCRYPT 1
#define HAVE_LIBDL 1
#define HAVE_DIRENT_H 1
#define HAVE__BOOL 1
#define HAVE_STDBOOL_H 1
#define HAVE_SYS_WAIT_H 1
#define HAVE_LIMITS_H 1
#define HAVE_SYS_FILE_H 1
#define HAVE_SYS_IOCTL_H 1
#define HAVE_SYS_SYSCALL_H 1
#define HAVE_FCNTL_H 1
#define HAVE_SYS_FCNTL_H 1
#define HAVE_SYS_PARAM_H 1
#define HAVE_SYS_SELECT_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_SYS_TIMES_H 1
#define HAVE_SYSCALL_H 1
#define HAVE_PWD_H 1
#define HAVE_GRP_H 1
#define HAVE_A_OUT_H 1
#define HAVE_UTIME_H 1
#define HAVE_SYS_RESOURCE_H 1
#define HAVE_FLOAT_H 1
#define HAVE_UCONTEXT_H 1
#define HAVE_LANGINFO_H 1
#define HAVE_LOCALE_H 1
#define HAVE_SYS_SENDFILE_H 1
#define HAVE_TIME_H 1
#define HAVE_SYS_SOCKET_H 1
#define HAVE_SYS_PRCTL_H 1
#define HAVE_SYS_UIO_H 1
#define HAVE_MALLOC_H 1
#define HAVE_TYPEOF 1
#define HAVE_LONG_LONG 1
#define HAVE_OFF_T 1
#define SIZEOF_INT 4
#define SIZEOF_SHORT 2
#define SIZEOF_LONG 8
#define SIZEOF_LONG_LONG 8
#define SIZEOF___INT64 0
#define SIZEOF___INT128 16
#define SIZEOF_OFF_T 8
#define SIZEOF_VOIDP 8
#define SIZEOF_FLOAT 4
#define SIZEOF_DOUBLE 8
#define SIZEOF_TIME_T 8
#define SIZEOF_CLOCK_T 8
#define PACKED_STRUCT(x) x __attribute__((packed))
#define PACKED_STRUCT_UNALIGNED(x) x
#define PRI_LL_PREFIX "ll"
#define rb_pid_t pid_t
#define SIGNEDNESS_OF_PID_T -1
#define PIDT2NUM(v) INT2NUM(v)
#define NUM2PIDT(v) NUM2INT(v)
#define PRI_PIDT_PREFIX PRI_INT_PREFIX
#define rb_uid_t uid_t
#define SIGNEDNESS_OF_UID_T +1
#define UIDT2NUM(v) UINT2NUM(v)
#define NUM2UIDT(v) NUM2UINT(v)
#define PRI_UIDT_PREFIX PRI_INT_PREFIX
#define rb_gid_t gid_t
#define SIGNEDNESS_OF_GID_T +1
#define GIDT2NUM(v) UINT2NUM(v)
#define NUM2GIDT(v) NUM2UINT(v)
#define PRI_GIDT_PREFIX PRI_INT_PREFIX
#define rb_time_t time_t
#define SIGNEDNESS_OF_TIME_T -1
#define TIMET2NUM(v) LONG2NUM(v)
#define NUM2TIMET(v) NUM2LONG(v)
#define PRI_TIMET_PREFIX PRI_LONG_PREFIX
#define rb_dev_t dev_t
#define SIGNEDNESS_OF_DEV_T +1
#define DEVT2NUM(v) ULONG2NUM(v)
#define NUM2DEVT(v) NUM2ULONG(v)
#define PRI_DEVT_PREFIX PRI_LONG_PREFIX
#define rb_mode_t mode_t
#define SIGNEDNESS_OF_MODE_T +1
#define MODET2NUM(v) UINT2NUM(v)
#define NUM2MODET(v) NUM2UINT(v)
#define PRI_MODET_PREFIX PRI_INT_PREFIX
#define rb_rlim_t rlim_t
#define SIGNEDNESS_OF_RLIM_T +1
#define RLIM2NUM(v) ULONG2NUM(v)
#define NUM2RLIM(v) NUM2ULONG(v)
#define PRI_RLIM_PREFIX PRI_LONG_PREFIX
#define rb_off_t off_t
#define SIGNEDNESS_OF_OFF_T -1
#define OFFT2NUM(v) LONG2NUM(v)
#define NUM2OFFT(v) NUM2LONG(v)
#define PRI_OFFT_PREFIX PRI_LONG_PREFIX
#define rb_clockid_t clockid_t
#define SIGNEDNESS_OF_CLOCKID_T -1
#define CLOCKID2NUM(v) INT2NUM(v)
#define NUM2CLOCKID(v) NUM2INT(v)
#define PRI_CLOCKID_PREFIX PRI_INT_PREFIX
#define HAVE_PROTOTYPES 1
#define TOKEN_PASTE(x,y) x##y
#define STRINGIZE(expr) STRINGIZE0(expr)
#define HAVE_STDARG_PROTOTYPES 1
#define HAVE_VA_ARGS_MACRO 1
#define NORETURN(x) __attribute__ ((noreturn)) x
#define DEPRECATED(x) __attribute__ ((deprecated)) x
#define NOINLINE(x) __attribute__ ((noinline)) x
#define FUNC_MINIMIZED(x) __attribute__ ((optimize("-Os","-fomit-frame-pointer"))) x
#define HAVE_ATTRIBUTE_FUNCTION_ALIAS 1
#define RUBY_ALIAS_FUNCTION_TYPE(type, prot, name, args) type prot __attribute__((alias(#name)));
#define RUBY_ALIAS_FUNCTION_VOID(prot, name, args) RUBY_ALIAS_FUNCTION_TYPE(void, prot, name, args)
#define HAVE_GCC_ATOMIC_BUILTINS 1
#define HAVE_GCC_SYNC_BUILTINS 1
#define UNREACHABLE __builtin_unreachable()
#define RUBY_FUNC_EXPORTED __attribute__ ((visibility("default"))) extern
#define RUBY_FUNCTION_NAME_STRING __func__
#define HAVE_DECL_SYS_NERR 1
#define HAVE_DECL_GETENV 1
#define SIZEOF_SIZE_T 8
#define SIZEOF_PTRDIFF_T 8
#define PRI_SIZE_PREFIX "z"
#define PRI_PTRDIFF_PREFIX "t"
#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
#define HAVE_ST_BLKSIZE 1
#define HAVE_STRUCT_STAT_ST_BLOCKS 1
#define HAVE_ST_BLOCKS 1
#define HAVE_STRUCT_STAT_ST_RDEV 1
#define HAVE_ST_RDEV 1
#define SIZEOF_STRUCT_STAT_ST_SIZE SIZEOF_OFF_T
#define SIZEOF_STRUCT_STAT_ST_BLOCKS SIZEOF_OFF_T
#define SIZEOF_STRUCT_STAT_ST_INO SIZEOF_LONG
#define HAVE_STRUCT_STAT_ST_ATIM 1
#define HAVE_STRUCT_STAT_ST_MTIM 1
#define HAVE_STRUCT_STAT_ST_CTIM 1
#define HAVE_STRUCT_TIMEVAL 1
#define SIZEOF_STRUCT_TIMEVAL_TV_SEC SIZEOF_TIME_T
#define HAVE_STRUCT_TIMESPEC 1
#define HAVE_STRUCT_TIMEZONE 1
#define HAVE_CLOCKID_T 1
#define HAVE_RB_FD_INIT 1
#define HAVE_INT8_T 1
#define SIZEOF_INT8_T 1
#define HAVE_UINT8_T 1
#define SIZEOF_UINT8_T 1
#define HAVE_INT16_T 1
#define SIZEOF_INT16_T 2
#define HAVE_UINT16_T 1
#define SIZEOF_UINT16_T 2
#define HAVE_INT32_T 1
#define SIZEOF_INT32_T 4
#define HAVE_UINT32_T 1
#define SIZEOF_UINT32_T 4
#define HAVE_INT64_T 1
#define SIZEOF_INT64_T 8
#define HAVE_UINT64_T 1
#define SIZEOF_UINT64_T 8
#define HAVE_INT128_T 1
#define int128_t __int128
#define SIZEOF_INT128_T SIZEOF___INT128
#define HAVE_UINT128_T 1
#define uint128_t unsigned __int128
#define SIZEOF_UINT128_T SIZEOF_UNSIGNED___INT128
#define HAVE_INTPTR_T 1
#define SIZEOF_INTPTR_T 8
#define HAVE_UINTPTR_T 1
#define SIZEOF_UINTPTR_T 8
#define HAVE_SSIZE_T 1
#define SIZEOF_SSIZE_T 8
#define STACK_END_ADDRESS __libc_stack_end
#define GETGROUPS_T gid_t
#define RETSIGTYPE void
#define HAVE_ALLOCA_H 1
#define HAVE_ALLOCA 1
#define HAVE_ACOSH 1
#define HAVE_CBRT 1
#define HAVE_CRYPT 1
#define HAVE_DUP2 1
#define HAVE_ERF 1
#define HAVE_FFS 1
#define HAVE_FINITE 1
#define HAVE_FLOCK 1
#define HAVE_HYPOT 1
#define HAVE_ISINF 1
#define HAVE_ISNAN 1
#define HAVE_LGAMMA_R 1
#define HAVE_MEMMOVE 1
#define HAVE_NEXTAFTER 1
#define HAVE_STRCHR 1
#define HAVE_STRERROR 1
#define HAVE_STRSTR 1
#define HAVE_TGAMMA 1
#define SPT_TYPE SPT_REUSEARGV
#define HAVE_SIGNBIT 1
#define HAVE_FORK 1
#define HAVE_VFORK 1
#define HAVE_WORKING_VFORK 1
#define HAVE_WORKING_FORK 1
#define HAVE__LONGJMP 1
#define HAVE__SETJMP 1
#define HAVE_ATAN2L 1
#define HAVE_ATAN2F 1
#define HAVE_CHROOT 1
#define HAVE_CLOCK_GETTIME 1
#define HAVE_COSH 1
#define HAVE_DIRFD 1
#define HAVE_DL_ITERATE_PHDR 1
#define HAVE_DLOPEN 1
#define HAVE_DLADDR 1
#define HAVE_DUP 1
#define HAVE_DUP3 1
#define HAVE_EACCESS 1
#define HAVE_ENDGRENT 1
#define HAVE_FCHMOD 1
#define HAVE_FCHOWN 1
#define HAVE_FCNTL 1
#define HAVE_FDATASYNC 1
#define HAVE_FMOD 1
#define HAVE_FSYNC 1
#define HAVE_FTRUNCATE 1
#define HAVE_FTRUNCATE64 1
#define HAVE_GETCWD 1
#define HAVE_GETGRNAM 1
#define HAVE_GETGRNAM_R 1
#define HAVE_GETGROUPS 1
#define HAVE_GETPGID 1
#define HAVE_GETPGRP 1
#define HAVE_GETPRIORITY 1
#define HAVE_GETPWNAM_R 1
#define HAVE_GETRESGID 1
#define HAVE_GETRESUID 1
#define HAVE_GETRLIMIT 1
#define HAVE_GETSID 1
#define HAVE_GETTIMEOFDAY 1
#define HAVE_GMTIME_R 1
#define HAVE_INITGROUPS 1
#define HAVE_IOCTL 1
#define HAVE_KILLPG 1
#define HAVE_LCHOWN 1
#define HAVE_LINK 1
#define HAVE_LLABS 1
#define HAVE_LOCKF 1
#define HAVE_LOG2 1
#define HAVE_LSTAT 1
#define HAVE_MALLOC_USABLE_SIZE 1
#define HAVE_MBLEN 1
#define HAVE_MEMALIGN 1
#define HAVE_WRITEV 1
#define HAVE_MEMRCHR 1
#define HAVE_MEMMEM 1
#define HAVE_MKTIME 1
#define HAVE_PIPE2 1
#define HAVE_POLL 1
#define HAVE_POSIX_FADVISE 1
#define HAVE_POSIX_MEMALIGN 1
#define HAVE_PPOLL 1
#define HAVE_PREAD 1
#define HAVE_QSORT_R 1
#define HAVE_READLINK 1
#define HAVE_ROUND 1
#define HAVE_SCHED_GETAFFINITY 1
#define HAVE_SEEKDIR 1
#define HAVE_SENDFILE 1
#define HAVE_SETEGID 1
#define HAVE_SETENV 1
#define HAVE_SETEUID 1
#define HAVE_SETGID 1
#define HAVE_SETGROUPS 1
#define HAVE_SETPGID 1
#define HAVE_SETPGRP 1
#define HAVE_SETREGID 1
#define HAVE_SETRESGID 1
#define HAVE_SETRESUID 1
#define HAVE_SETREUID 1
#define HAVE_SETRLIMIT 1
#define HAVE_SETSID 1
#define HAVE_SETUID 1
#define HAVE_SHUTDOWN 1
#define HAVE_SIGACTION 1
#define HAVE_SIGALTSTACK 1
#define HAVE_SIGPROCMASK 1
#define HAVE_SINH 1
#define HAVE_SYMLINK 1
#define HAVE_SYSCALL 1
#define HAVE_SYSCONF 1
#define HAVE_TANH 1
#define HAVE_TELLDIR 1
#define HAVE_TIMEGM 1
#define HAVE_TIMES 1
#define HAVE_TRUNCATE 1
#define HAVE_TRUNCATE64 1
#define HAVE_UNSETENV 1
#define HAVE_UTIMENSAT 1
#define HAVE_UTIMES 1
#define HAVE_WAIT4 1
#define HAVE_WAITPID 1
#define HAVE_BUILTIN___BUILTIN_BSWAP16 1
#define HAVE_BUILTIN___BUILTIN_BSWAP32 1
#define HAVE_BUILTIN___BUILTIN_BSWAP64 1
#define HAVE_BUILTIN___BUILTIN_CLZ 1
#define HAVE_BUILTIN___BUILTIN_CLZL 1
#define HAVE_BUILTIN___BUILTIN_CLZLL 1
#define HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR 1
#define HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P 1
#define HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P 1
#define HAVE_GNU_QSORT_R 1
#define ATAN2_INF_C99 1
#define HAVE_CLOCK_GETRES 1
#define HAVE_STRUCT_TM_TM_ZONE 1
#define HAVE_TM_ZONE 1
#define HAVE_STRUCT_TM_TM_GMTOFF 1
#define HAVE_DAYLIGHT 1
#define HAVE_VAR_TIMEZONE 1
#define TYPEOF_VAR_TIMEZONE long
#define HAVE_TIMEZONE 1
#define TIMEZONE_VOID 1
#define NEGATIVE_TIME_T 1
#define POSIX_SIGNAL 1
#define RSHIFT(x,y) ((x)>>(int)(y))
#define HAVE__SC_CLK_TCK 1
#define STACK_GROW_DIRECTION -1
#define _REENTRANT 1
#define _THREAD_SAFE 1
#define HAVE_LIBPTHREAD 1
#define HAVE_SCHED_YIELD 1
#define HAVE_PTHREAD_ATTR_SETINHERITSCHED 1
#define HAVE_PTHREAD_ATTR_GETSTACK 1
#define HAVE_PTHREAD_COND_INIT 1
#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
#define HAVE_PTHREAD_CONDATTR_INIT 1
#define HAVE_PTHREAD_SIGMASK 1
#define HAVE_PTHREAD_SETNAME_NP 1
#define HAVE_PTHREAD_GETATTR_NP 1
#define HAVE_PTHREAD_ATTR_INIT 1
#define SET_THREAD_NAME(name) pthread_setname_np(pthread_self(), name)
#define DEFINE_MCONTEXT_PTR(mc, uc) mcontext_t *mc = &(uc)->uc_mcontext
#define HAVE_GETCONTEXT 1
#define HAVE_SETCONTEXT 1
#define USE_ELF 1
#define HAVE_ELF_H 1
#define HAVE_BACKTRACE 1
#define DLEXT_MAXLEN 3
#define DLEXT ".so"
#define LIBDIR_BASENAME "lib64"
#define RUBY_SETJMP(env) __builtin_setjmp((env))
#define RUBY_LONGJMP(env,val) __builtin_longjmp((env),val)
#define RUBY_JMP_BUF jmp_buf
#define HAVE_PTHREAD_H 1
#define RUBY_PLATFORM "x86_64-linux"
#endif /* INCLUDE_RUBY_CONFIG_H */
include/ruby-2.2.0/ruby.h000064400000001544150402105670010743 0ustar00/**********************************************************************

  ruby.h -

  $Author$
  created at: Sun 10 12:06:15 Jun JST 2007

  Copyright (C) 2007-2008 Yukihiro Matsumoto

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

#ifndef RUBY_H
#define RUBY_H 1

#define HAVE_RUBY_DEFINES_H     1
#define HAVE_RUBY_ENCODING_H    1
#define HAVE_RUBY_INTERN_H      1
#define HAVE_RUBY_IO_H          1
#define HAVE_RUBY_MISSING_H     1
#define HAVE_RUBY_ONIGURUMA_H   1
#define HAVE_RUBY_RE_H          1
#define HAVE_RUBY_REGEX_H       1
#define HAVE_RUBY_RUBY_H        1
#define HAVE_RUBY_ST_H          1
#define HAVE_RUBY_THREAD_H      1
#define HAVE_RUBY_UTIL_H        1
#define HAVE_RUBY_VERSION_H     1
#define HAVE_RUBY_VM_H          1
#ifdef _WIN32
#define HAVE_RUBY_WIN32_H       1
#endif

#include "ruby/ruby.h"

#endif /* RUBY_H */
include/ruby-2.2.0/ruby/util.h000064400000004263150402105670011721 0ustar00/**********************************************************************

  util.h -

  $Author: glass $
  created at: Thu Mar  9 11:55:53 JST 1995

  Copyright (C) 1993-2007 Yukihiro Matsumoto

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

#ifndef RUBY_UTIL_H
#define RUBY_UTIL_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

#include "ruby/defines.h"
#ifdef RUBY_EXTCONF_H
#include RUBY_EXTCONF_H
#endif

#ifndef _
#ifdef __cplusplus
# ifndef  HAVE_PROTOTYPES
#  define HAVE_PROTOTYPES 1
# endif
# ifndef  HAVE_STDARG_PROTOTYPES
#  define HAVE_STDARG_PROTOTYPES 1
# endif
#endif
#ifdef HAVE_PROTOTYPES
# define _(args) args
#else
# define _(args) ()
#endif
#ifdef HAVE_STDARG_PROTOTYPES
# define __(args) args
#else
# define __(args) ()
#endif
#endif

RUBY_SYMBOL_EXPORT_BEGIN

#define DECIMAL_SIZE_OF_BITS(n) (((n) * 3010 + 9998) / 9999)
/* an approximation of ceil(n * log10(2)), upto 65536 at least */

#define scan_oct(s,l,e) ((int)ruby_scan_oct((s),(l),(e)))
unsigned long ruby_scan_oct(const char *, size_t, size_t *);
#define scan_hex(s,l,e) ((int)ruby_scan_hex((s),(l),(e)))
unsigned long ruby_scan_hex(const char *, size_t, size_t *);

#ifdef HAVE_GNU_QSORT_R
# define ruby_qsort qsort_r
#else
void ruby_qsort(void *, const size_t, const size_t,
		int (*)(const void *, const void *, void *), void *);
#endif

void ruby_setenv(const char *, const char *);
void ruby_unsetenv(const char *);
#undef setenv
#undef unsetenv
#define setenv(name,val) ruby_setenv((name),(val))
#define unsetenv(name,val) ruby_unsetenv(name)

char *ruby_strdup(const char *);
#undef strdup
#define strdup(s) ruby_strdup(s)

char *ruby_getcwd(void);
#define my_getcwd() ruby_getcwd()

double ruby_strtod(const char *, char **);
#undef strtod
#define strtod(s,e) ruby_strtod((s),(e))

#if defined _MSC_VER && _MSC_VER >= 1300
#pragma warning(push)
#pragma warning(disable:4723)
#endif
#if defined _MSC_VER && _MSC_VER >= 1300
#pragma warning(pop)
#endif

void ruby_each_words(const char *, void (*)(const char*, int, void*), void *);

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* RUBY_UTIL_H */
include/ruby-2.2.0/ruby/re.h000064400000002700150402105670011344 0ustar00/**********************************************************************

  re.h -

  $Author: nobu $
  created at: Thu Sep 30 14:18:32 JST 1993

  Copyright (C) 1993-2007 Yukihiro Matsumoto

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

#ifndef RUBY_RE_H
#define RUBY_RE_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

#include <sys/types.h>
#include <stdio.h>

#include "ruby/regex.h"

RUBY_SYMBOL_EXPORT_BEGIN

typedef struct re_pattern_buffer Regexp;

struct rmatch_offset {
    long beg;
    long end;
};

struct rmatch {
    struct re_registers regs;

    int char_offset_updated;
    int char_offset_num_allocated;
    struct rmatch_offset *char_offset;
};

struct RMatch {
    struct RBasic basic;
    VALUE str;
    struct rmatch *rmatch;
    VALUE regexp;  /* RRegexp */
};

#define RMATCH(obj)  (R_CAST(RMatch)(obj))
#define RMATCH_REGS(obj)  (&(R_CAST(RMatch)(obj))->rmatch->regs)

VALUE rb_reg_regcomp(VALUE);
long rb_reg_search(VALUE, VALUE, long, int);
VALUE rb_reg_regsub(VALUE, VALUE, struct re_registers *, VALUE);
long rb_reg_adjust_startpos(VALUE, VALUE, long, int);
void rb_match_busy(VALUE);
VALUE rb_reg_quote(VALUE);
regex_t *rb_reg_prepare_re(VALUE re, VALUE str);
int rb_reg_region_copy(struct re_registers *, const struct re_registers *);

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* RUBY_RE_H */
include/ruby-2.2.0/ruby/thread.h000064400000001744150402105670012214 0ustar00/**********************************************************************

  thread.h -

  $Author: matz $
  created at: Tue Jul 10 17:35:43 JST 2012

  Copyright (C) 2007 Yukihiro Matsumoto

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

#ifndef RUBY_THREAD_H
#define RUBY_THREAD_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

#include "ruby/intern.h"

RUBY_SYMBOL_EXPORT_BEGIN

void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1);

void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1,
				 rb_unblock_function_t *ubf, void *data2);
void *rb_thread_call_without_gvl2(void *(*func)(void *), void *data1,
				  rb_unblock_function_t *ubf, void *data2);

#define RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS_AFTER 0x01
#define RUBY_CALL_WO_GVL_FLAG_SKIP_CHECK_INTS_

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* RUBY_THREAD_H */
include/ruby-2.2.0/ruby/vm.h000064400000003224150402105670011362 0ustar00/**********************************************************************

  ruby/vm.h -

  $Author: nobu $
  created at: Sat May 31 15:17:36 2008

  Copyright (C) 2008 Yukihiro Matsumoto

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

#ifndef RUBY_VM_H
#define RUBY_VM_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

RUBY_SYMBOL_EXPORT_BEGIN

/* Place holder.
 *
 * We will prepare VM creation/control APIs on 1.9.2 or later.
 * If you have an interest about it, please see mvm branch.
 * http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/mvm/
 */

/* VM type declaration */
typedef struct rb_vm_struct ruby_vm_t;

/* core API */
int ruby_vm_destruct(ruby_vm_t *vm);

/**
 * ruby_vm_at_exit registers a function _func_ to be invoked when a VM
 * passed away.  Functions registered this way runs in reverse order
 * of registration, just like END {} block does.  The difference is
 * its timing to be triggered. ruby_vm_at_exit functions runs when a
 * VM _passed_ _away_, while END {} blocks runs just _before_ a VM
 * _is_ _passing_ _away_.
 *
 * You cannot register a function to another VM than where you are in.
 * So where to register is intuitive, omitted.  OTOH the argument
 * _func_ cannot know which VM it is in because at the time of
 * invocation, the VM has already died and there is no execution
 * context.  The VM itself is passed as the first argument to it.
 *
 * @param[in] func the function to register.
 */
void ruby_vm_at_exit(void(*func)(ruby_vm_t *));

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* RUBY_VM_H */
include/ruby-2.2.0/ruby/oniguruma.h000064400000111755150402105670012757 0ustar00#ifndef ONIGURUMA_H
#define ONIGURUMA_H
/**********************************************************************
  oniguruma.h - Onigmo (Oniguruma-mod) (regular expression library)
**********************************************************************/
/*-
 * Copyright (c) 2002-2009  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>
 * Copyright (c) 2011-2014  K.Takata  <kentkt AT csc DOT jp>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#ifdef __cplusplus
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

#define ONIGURUMA
#define ONIGURUMA_VERSION_MAJOR   5
#define ONIGURUMA_VERSION_MINOR   15
#define ONIGURUMA_VERSION_TEENY   0

#ifdef __cplusplus
# ifndef  HAVE_PROTOTYPES
#  define HAVE_PROTOTYPES 1
# endif
# ifndef  HAVE_STDARG_PROTOTYPES
#  define HAVE_STDARG_PROTOTYPES 1
# endif
#endif

/* escape Mac OS X/Xcode 2.4/gcc 4.0.1 problem */
#if defined(__APPLE__) && defined(__GNUC__) && __GNUC__ >= 4
# ifndef  HAVE_STDARG_PROTOTYPES
#  define HAVE_STDARG_PROTOTYPES 1
# endif
#endif

#ifdef HAVE_STDARG_H
# ifndef  HAVE_STDARG_PROTOTYPES
#  define HAVE_STDARG_PROTOTYPES 1
# endif
#endif

#ifndef P_
#if defined(__STDC__) || defined(_WIN32)
# define P_(args) args
#else
# define P_(args) ()
#endif
#endif

#ifndef PV_
#ifdef HAVE_STDARG_PROTOTYPES
# define PV_(args) args
#else
# define PV_(args) ()
#endif
#endif

#ifndef ONIG_EXTERN
#ifdef RUBY_EXTERN
#define ONIG_EXTERN   RUBY_EXTERN
#else
#if defined(_WIN32) && !defined(__GNUC__)
#if defined(EXPORT) || defined(RUBY_EXPORT)
#define ONIG_EXTERN   extern __declspec(dllexport)
#else
#define ONIG_EXTERN   extern __declspec(dllimport)
#endif
#endif
#endif
#endif

#ifndef ONIG_EXTERN
#define ONIG_EXTERN   extern
#endif

RUBY_SYMBOL_EXPORT_BEGIN

#include <stddef.h>		/* for size_t */

/* PART: character encoding */

#ifndef ONIG_ESCAPE_UCHAR_COLLISION
#define UChar OnigUChar
#endif

typedef unsigned char  OnigUChar;
typedef unsigned int   OnigCodePoint;
typedef unsigned int   OnigCtype;
typedef size_t         OnigDistance;
typedef ptrdiff_t      OnigPosition;

#define ONIG_INFINITE_DISTANCE  ~((OnigDistance )0)

typedef unsigned int OnigCaseFoldType; /* case fold flag */

ONIG_EXTERN OnigCaseFoldType OnigDefaultCaseFoldFlag;

/* #define ONIGENC_CASE_FOLD_HIRAGANA_KATAKANA  (1<<1) */
/* #define ONIGENC_CASE_FOLD_KATAKANA_WIDTH     (1<<2) */
#define ONIGENC_CASE_FOLD_TURKISH_AZERI         (1<<20)
#define INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR   (1<<30)

#define ONIGENC_CASE_FOLD_MIN      INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR
#define ONIGENC_CASE_FOLD_DEFAULT  OnigDefaultCaseFoldFlag


#define ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN       3
#define ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM      13
/* 13 => Unicode:0x1ffc */

/* code range */
#define ONIGENC_CODE_RANGE_NUM(range)     ((int )range[0])
#define ONIGENC_CODE_RANGE_FROM(range,i)  range[((i)*2) + 1]
#define ONIGENC_CODE_RANGE_TO(range,i)    range[((i)*2) + 2]

typedef struct {
  int byte_len;  /* argument(original) character(s) byte length */
  int code_len;  /* number of code */
  OnigCodePoint code[ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN];
} OnigCaseFoldCodeItem;

typedef struct {
  OnigCodePoint esc;
  OnigCodePoint anychar;
  OnigCodePoint anytime;
  OnigCodePoint zero_or_one_time;
  OnigCodePoint one_or_more_time;
  OnigCodePoint anychar_anytime;
} OnigMetaCharTableType;

typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg);

typedef struct OnigEncodingTypeST {
  int    (*precise_mbc_enc_len)(const OnigUChar* p,const OnigUChar* e, const struct OnigEncodingTypeST* enc);
  const char*   name;
  int           max_enc_len;
  int           min_enc_len;
  int    (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc);
  OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc);
  int    (*code_to_mbclen)(OnigCodePoint code, const struct OnigEncodingTypeST* enc);
  int    (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf, const struct OnigEncodingTypeST* enc);
  int    (*mbc_case_fold)(OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, const struct OnigEncodingTypeST* enc);
  int    (*apply_all_case_fold)(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, const struct OnigEncodingTypeST* enc);
  int    (*get_case_fold_codes_by_str)(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem acs[], const struct OnigEncodingTypeST* enc);
  int    (*property_name_to_ctype)(const struct OnigEncodingTypeST* enc, OnigUChar* p, OnigUChar* end);
  int    (*is_code_ctype)(OnigCodePoint code, OnigCtype ctype, const struct OnigEncodingTypeST* enc);
  int    (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], const struct OnigEncodingTypeST* enc);
  OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc);
  int    (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end, const struct OnigEncodingTypeST* enc);
  int ruby_encoding_index;
  unsigned int  flags;
} OnigEncodingType;

typedef const OnigEncodingType* OnigEncoding;

ONIG_EXTERN const OnigEncodingType OnigEncodingASCII;

#define ONIG_ENCODING_ASCII        (&OnigEncodingASCII)

#define ONIG_ENCODING_UNDEF    ((OnigEncoding )0)


/* work size */
#define ONIGENC_CODE_TO_MBC_MAXLEN       7
#define ONIGENC_MBC_CASE_FOLD_MAXLEN    18
/* 18: 6(max-byte) * 3(case-fold chars) */

/* character types */
#define ONIGENC_CTYPE_NEWLINE   0
#define ONIGENC_CTYPE_ALPHA     1
#define ONIGENC_CTYPE_BLANK     2
#define ONIGENC_CTYPE_CNTRL     3
#define ONIGENC_CTYPE_DIGIT     4
#define ONIGENC_CTYPE_GRAPH     5
#define ONIGENC_CTYPE_LOWER     6
#define ONIGENC_CTYPE_PRINT     7
#define ONIGENC_CTYPE_PUNCT     8
#define ONIGENC_CTYPE_SPACE     9
#define ONIGENC_CTYPE_UPPER    10
#define ONIGENC_CTYPE_XDIGIT   11
#define ONIGENC_CTYPE_WORD     12
#define ONIGENC_CTYPE_ALNUM    13  /* alpha || digit */
#define ONIGENC_CTYPE_ASCII    14
#define ONIGENC_MAX_STD_CTYPE  ONIGENC_CTYPE_ASCII

/* flags */
#define ONIGENC_FLAG_NONE       0U
#define ONIGENC_FLAG_UNICODE    1U

#define onig_enc_len(enc,p,e)          ONIGENC_MBC_ENC_LEN(enc, p, e)

#define ONIGENC_IS_UNDEF(enc)          ((enc) == ONIG_ENCODING_UNDEF)
#define ONIGENC_IS_SINGLEBYTE(enc)     (ONIGENC_MBC_MAXLEN(enc) == 1)
#define ONIGENC_IS_MBC_HEAD(enc,p,e)   (ONIGENC_MBC_ENC_LEN(enc,p,e) != 1)
#define ONIGENC_IS_MBC_ASCII(p)           (*(p)   < 128)
#define ONIGENC_IS_CODE_ASCII(code)       ((code) < 128)
#define ONIGENC_IS_MBC_WORD(enc,s,end) \
   ONIGENC_IS_CODE_WORD(enc,ONIGENC_MBC_TO_CODE(enc,s,end))
#define ONIGENC_IS_MBC_ASCII_WORD(enc,s,end) \
   onigenc_ascii_is_code_ctype( \
	ONIGENC_MBC_TO_CODE(enc,s,end),ONIGENC_CTYPE_WORD,enc)
#define ONIGENC_IS_UNICODE(enc)        ((enc)->flags & ONIGENC_FLAG_UNICODE)


#define ONIGENC_NAME(enc)                      ((enc)->name)

#define ONIGENC_MBC_CASE_FOLD(enc,flag,pp,end,buf) \
  (enc)->mbc_case_fold(flag,(const OnigUChar** )pp,end,buf,enc)
#define ONIGENC_IS_ALLOWED_REVERSE_MATCH(enc,s,end) \
        (enc)->is_allowed_reverse_match(s,end,enc)
#define ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc,start,s,end) \
        (enc)->left_adjust_char_head(start, s, end, enc)
#define ONIGENC_APPLY_ALL_CASE_FOLD(enc,case_fold_flag,f,arg) \
        (enc)->apply_all_case_fold(case_fold_flag,f,arg,enc)
#define ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc,case_fold_flag,p,end,acs) \
       (enc)->get_case_fold_codes_by_str(case_fold_flag,p,end,acs,enc)
#define ONIGENC_STEP_BACK(enc,start,s,end,n) \
        onigenc_step_back((enc),(start),(s),(end),(n))

#define ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n)   (n)
#define ONIGENC_MBCLEN_CHARFOUND_P(r)           (0 < (r))
#define ONIGENC_MBCLEN_CHARFOUND_LEN(r)         (r)

#define ONIGENC_CONSTRUCT_MBCLEN_INVALID()      (-1)
#define ONIGENC_MBCLEN_INVALID_P(r)             ((r) == -1)

#define ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(n)    (-1-(n))
#define ONIGENC_MBCLEN_NEEDMORE_P(r)            ((r) < -1)
#define ONIGENC_MBCLEN_NEEDMORE_LEN(r)          (-1-(r))

#define ONIGENC_PRECISE_MBC_ENC_LEN(enc,p,e)   (enc)->precise_mbc_enc_len(p,e,enc)

ONIG_EXTERN
int onigenc_mbclen_approximate P_((const OnigUChar* p,const OnigUChar* e, const struct OnigEncodingTypeST* enc));

#define ONIGENC_MBC_ENC_LEN(enc,p,e)           onigenc_mbclen_approximate(p,e,enc)
#define ONIGENC_MBC_MAXLEN(enc)               ((enc)->max_enc_len)
#define ONIGENC_MBC_MAXLEN_DIST(enc)           ONIGENC_MBC_MAXLEN(enc)
#define ONIGENC_MBC_MINLEN(enc)               ((enc)->min_enc_len)
#define ONIGENC_IS_MBC_NEWLINE(enc,p,end)      (enc)->is_mbc_newline((p),(end),enc)
#define ONIGENC_MBC_TO_CODE(enc,p,end)         (enc)->mbc_to_code((p),(end),enc)
#define ONIGENC_CODE_TO_MBCLEN(enc,code)       (enc)->code_to_mbclen(code,enc)
#define ONIGENC_CODE_TO_MBC(enc,code,buf)      (enc)->code_to_mbc(code,buf,enc)
#define ONIGENC_PROPERTY_NAME_TO_CTYPE(enc,p,end) \
  (enc)->property_name_to_ctype(enc,p,end)

#define ONIGENC_IS_CODE_CTYPE(enc,code,ctype)  (enc)->is_code_ctype(code,ctype,enc)

#define ONIGENC_IS_CODE_NEWLINE(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_NEWLINE)
#define ONIGENC_IS_CODE_GRAPH(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_GRAPH)
#define ONIGENC_IS_CODE_PRINT(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PRINT)
#define ONIGENC_IS_CODE_ALNUM(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALNUM)
#define ONIGENC_IS_CODE_ALPHA(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALPHA)
#define ONIGENC_IS_CODE_LOWER(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_LOWER)
#define ONIGENC_IS_CODE_UPPER(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_UPPER)
#define ONIGENC_IS_CODE_CNTRL(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_CNTRL)
#define ONIGENC_IS_CODE_PUNCT(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PUNCT)
#define ONIGENC_IS_CODE_SPACE(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_SPACE)
#define ONIGENC_IS_CODE_BLANK(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_BLANK)
#define ONIGENC_IS_CODE_DIGIT(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_DIGIT)
#define ONIGENC_IS_CODE_XDIGIT(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_XDIGIT)
#define ONIGENC_IS_CODE_WORD(enc,code) \
        ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_WORD)

#define ONIGENC_GET_CTYPE_CODE_RANGE(enc,ctype,sbout,ranges) \
        (enc)->get_ctype_code_range(ctype,sbout,ranges,enc)

ONIG_EXTERN
OnigUChar* onigenc_step_back P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, int n));


/* encoding API */
ONIG_EXTERN
int onigenc_init P_((void));
ONIG_EXTERN
int onigenc_set_default_encoding P_((OnigEncoding enc));
ONIG_EXTERN
OnigEncoding onigenc_get_default_encoding P_((void));
ONIG_EXTERN
void  onigenc_set_default_caseconv_table P_((const OnigUChar* table));
ONIG_EXTERN
OnigUChar* onigenc_get_right_adjust_char_head_with_prev P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end, const OnigUChar** prev));
ONIG_EXTERN
OnigUChar* onigenc_get_prev_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end));
ONIG_EXTERN
OnigUChar* onigenc_get_left_adjust_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end));
ONIG_EXTERN
OnigUChar* onigenc_get_right_adjust_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar* end));
ONIG_EXTERN
int onigenc_strlen P_((OnigEncoding enc, const OnigUChar* p, const OnigUChar* end));
ONIG_EXTERN
int onigenc_strlen_null P_((OnigEncoding enc, const OnigUChar* p));
ONIG_EXTERN
int onigenc_str_bytelen_null P_((OnigEncoding enc, const OnigUChar* p));



/* PART: regular expression */

/* config parameters */
#define ONIG_NREGION                          10
#define ONIG_MAX_BACKREF_NUM                1000
#define ONIG_MAX_CAPTURE_GROUP_NUM         32767
#define ONIG_MAX_REPEAT_NUM               100000
#define ONIG_MAX_MULTI_BYTE_RANGES_NUM     10000
/* constants */
#define ONIG_MAX_ERROR_MESSAGE_LEN            90

typedef unsigned int        OnigOptionType;

#define ONIG_OPTION_DEFAULT            ONIG_OPTION_NONE

/* options */
#define ONIG_OPTION_NONE                 0U
#define ONIG_OPTION_IGNORECASE           1U
#define ONIG_OPTION_EXTEND               (ONIG_OPTION_IGNORECASE         << 1)
#define ONIG_OPTION_MULTILINE            (ONIG_OPTION_EXTEND             << 1)
#define ONIG_OPTION_DOTALL                ONIG_OPTION_MULTILINE
#define ONIG_OPTION_SINGLELINE           (ONIG_OPTION_MULTILINE          << 1)
#define ONIG_OPTION_FIND_LONGEST         (ONIG_OPTION_SINGLELINE         << 1)
#define ONIG_OPTION_FIND_NOT_EMPTY       (ONIG_OPTION_FIND_LONGEST       << 1)
#define ONIG_OPTION_NEGATE_SINGLELINE    (ONIG_OPTION_FIND_NOT_EMPTY     << 1)
#define ONIG_OPTION_DONT_CAPTURE_GROUP   (ONIG_OPTION_NEGATE_SINGLELINE  << 1)
#define ONIG_OPTION_CAPTURE_GROUP        (ONIG_OPTION_DONT_CAPTURE_GROUP << 1)
/* options (search time) */
#define ONIG_OPTION_NOTBOL               (ONIG_OPTION_CAPTURE_GROUP << 1)
#define ONIG_OPTION_NOTEOL               (ONIG_OPTION_NOTBOL << 1)
#define ONIG_OPTION_POSIX_REGION         (ONIG_OPTION_NOTEOL << 1)
/* options (ctype range) */
#define ONIG_OPTION_ASCII_RANGE          (ONIG_OPTION_POSIX_REGION << 1)
#define ONIG_OPTION_POSIX_BRACKET_ALL_RANGE (ONIG_OPTION_ASCII_RANGE << 1)
#define ONIG_OPTION_WORD_BOUND_ALL_RANGE    (ONIG_OPTION_POSIX_BRACKET_ALL_RANGE << 1)
/* options (newline) */
#define ONIG_OPTION_NEWLINE_CRLF         (ONIG_OPTION_WORD_BOUND_ALL_RANGE << 1)
#define ONIG_OPTION_NOTBOS               (ONIG_OPTION_NEWLINE_CRLF << 1)
#define ONIG_OPTION_NOTEOS               (ONIG_OPTION_NOTBOS << 1)
#define ONIG_OPTION_MAXBIT               ONIG_OPTION_NOTEOS  /* limit */

#define ONIG_OPTION_ON(options,regopt)      ((options) |= (regopt))
#define ONIG_OPTION_OFF(options,regopt)     ((options) &= ~(regopt))
#define ONIG_IS_OPTION_ON(options,option)   ((options) & (option))

/* syntax */
typedef struct {
  unsigned int   op;
  unsigned int   op2;
  unsigned int   behavior;
  OnigOptionType options;   /* default option */
  OnigMetaCharTableType meta_char_table;
} OnigSyntaxType;

ONIG_EXTERN const OnigSyntaxType OnigSyntaxASIS;
ONIG_EXTERN const OnigSyntaxType OnigSyntaxPosixBasic;
ONIG_EXTERN const OnigSyntaxType OnigSyntaxPosixExtended;
ONIG_EXTERN const OnigSyntaxType OnigSyntaxEmacs;
ONIG_EXTERN const OnigSyntaxType OnigSyntaxGrep;
ONIG_EXTERN const OnigSyntaxType OnigSyntaxGnuRegex;
ONIG_EXTERN const OnigSyntaxType OnigSyntaxJava;
ONIG_EXTERN const OnigSyntaxType OnigSyntaxPerl58;
ONIG_EXTERN const OnigSyntaxType OnigSyntaxPerl58_NG;
ONIG_EXTERN const OnigSyntaxType OnigSyntaxPerl;
ONIG_EXTERN const OnigSyntaxType OnigSyntaxRuby;
ONIG_EXTERN const OnigSyntaxType OnigSyntaxPython;

/* predefined syntaxes (see regsyntax.c) */
#define ONIG_SYNTAX_ASIS               (&OnigSyntaxASIS)
#define ONIG_SYNTAX_POSIX_BASIC        (&OnigSyntaxPosixBasic)
#define ONIG_SYNTAX_POSIX_EXTENDED     (&OnigSyntaxPosixExtended)
#define ONIG_SYNTAX_EMACS              (&OnigSyntaxEmacs)
#define ONIG_SYNTAX_GREP               (&OnigSyntaxGrep)
#define ONIG_SYNTAX_GNU_REGEX          (&OnigSyntaxGnuRegex)
#define ONIG_SYNTAX_JAVA               (&OnigSyntaxJava)
#define ONIG_SYNTAX_PERL58             (&OnigSyntaxPerl58)
#define ONIG_SYNTAX_PERL58_NG          (&OnigSyntaxPerl58_NG)
#define ONIG_SYNTAX_PERL               (&OnigSyntaxPerl)
#define ONIG_SYNTAX_RUBY               (&OnigSyntaxRuby)
#define ONIG_SYNTAX_PYTHON             (&OnigSyntaxPython)

/* default syntax */
ONIG_EXTERN const OnigSyntaxType*   OnigDefaultSyntax;
#define ONIG_SYNTAX_DEFAULT   OnigDefaultSyntax

/* syntax (operators) */
#define ONIG_SYN_OP_VARIABLE_META_CHARACTERS    (1U<<0)
#define ONIG_SYN_OP_DOT_ANYCHAR                 (1U<<1)   /* . */
#define ONIG_SYN_OP_ASTERISK_ZERO_INF           (1U<<2)   /* * */
#define ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF       (1U<<3)
#define ONIG_SYN_OP_PLUS_ONE_INF                (1U<<4)   /* + */
#define ONIG_SYN_OP_ESC_PLUS_ONE_INF            (1U<<5)
#define ONIG_SYN_OP_QMARK_ZERO_ONE              (1U<<6)   /* ? */
#define ONIG_SYN_OP_ESC_QMARK_ZERO_ONE          (1U<<7)
#define ONIG_SYN_OP_BRACE_INTERVAL              (1U<<8)   /* {lower,upper} */
#define ONIG_SYN_OP_ESC_BRACE_INTERVAL          (1U<<9)   /* \{lower,upper\} */
#define ONIG_SYN_OP_VBAR_ALT                    (1U<<10)   /* | */
#define ONIG_SYN_OP_ESC_VBAR_ALT                (1U<<11)  /* \| */
#define ONIG_SYN_OP_LPAREN_SUBEXP               (1U<<12)  /* (...)   */
#define ONIG_SYN_OP_ESC_LPAREN_SUBEXP           (1U<<13)  /* \(...\) */
#define ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR           (1U<<14)  /* \A, \Z, \z */
#define ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR  (1U<<15)  /* \G     */
#define ONIG_SYN_OP_DECIMAL_BACKREF             (1U<<16)  /* \num   */
#define ONIG_SYN_OP_BRACKET_CC                  (1U<<17)  /* [...]  */
#define ONIG_SYN_OP_ESC_W_WORD                  (1U<<18)  /* \w, \W */
#define ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END     (1U<<19)  /* \<. \> */
#define ONIG_SYN_OP_ESC_B_WORD_BOUND            (1U<<20)  /* \b, \B */
#define ONIG_SYN_OP_ESC_S_WHITE_SPACE           (1U<<21)  /* \s, \S */
#define ONIG_SYN_OP_ESC_D_DIGIT                 (1U<<22)  /* \d, \D */
#define ONIG_SYN_OP_LINE_ANCHOR                 (1U<<23)  /* ^, $   */
#define ONIG_SYN_OP_POSIX_BRACKET               (1U<<24)  /* [:xxxx:] */
#define ONIG_SYN_OP_QMARK_NON_GREEDY            (1U<<25)  /* ??,*?,+?,{n,m}? */
#define ONIG_SYN_OP_ESC_CONTROL_CHARS           (1U<<26)  /* \n,\r,\t,\a ... */
#define ONIG_SYN_OP_ESC_C_CONTROL               (1U<<27)  /* \cx  */
#define ONIG_SYN_OP_ESC_OCTAL3                  (1U<<28)  /* \OOO */
#define ONIG_SYN_OP_ESC_X_HEX2                  (1U<<29)  /* \xHH */
#define ONIG_SYN_OP_ESC_X_BRACE_HEX8            (1U<<30)  /* \x{7HHHHHHH} */
#define ONIG_SYN_OP_ESC_O_BRACE_OCTAL           (1U<<31)  /* \o{OOO} */ /* NOTIMPL */

#define ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE        (1U<<0)  /* \Q...\E */
#define ONIG_SYN_OP2_QMARK_GROUP_EFFECT         (1U<<1)  /* (?...) */
#define ONIG_SYN_OP2_OPTION_PERL                (1U<<2)  /* (?imsxadlu), (?-imsx), (?^imsxalu) */
#define ONIG_SYN_OP2_OPTION_RUBY                (1U<<3)  /* (?imxadu), (?-imx)  */
#define ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT     (1U<<4)  /* ?+,*+,++ */
#define ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL   (1U<<5)  /* {n,m}+   */
#define ONIG_SYN_OP2_CCLASS_SET_OP              (1U<<6)  /* [...&&..[..]..] */
#define ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP       (1U<<7)  /* (?<name>...) */
#define ONIG_SYN_OP2_ESC_K_NAMED_BACKREF        (1U<<8)  /* \k<name> */
#define ONIG_SYN_OP2_ESC_G_SUBEXP_CALL          (1U<<9)  /* \g<name>, \g<n> */
#define ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY     (1U<<10) /* (?@..),(?@<x>..) */
#define ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL  (1U<<11) /* \C-x */
#define ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META     (1U<<12) /* \M-x */
#define ONIG_SYN_OP2_ESC_V_VTAB                 (1U<<13) /* \v as VTAB */
#define ONIG_SYN_OP2_ESC_U_HEX4                 (1U<<14) /* \uHHHH */
#define ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR         (1U<<15) /* \`, \' */
#define ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY  (1U<<16) /* \p{...}, \P{...} */
#define ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (1U<<17) /* \p{^..}, \P{^..} */
/* #define ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS (1U<<18) */
#define ONIG_SYN_OP2_ESC_H_XDIGIT               (1U<<19) /* \h, \H */
#define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE         (1U<<20) /* \ */
#define ONIG_SYN_OP2_ESC_CAPITAL_R_LINEBREAK    (1U<<21) /* \R as (?>\x0D\x0A|[\x0A-\x0D\x{85}\x{2028}\x{2029}]) */
#define ONIG_SYN_OP2_ESC_CAPITAL_X_EXTENDED_GRAPHEME_CLUSTER (1U<<22) /* \X as (?>\P{M}\p{M}*) */
#define ONIG_SYN_OP2_ESC_V_VERTICAL_WHITESPACE   (1U<<23) /* \v, \V -- Perl */ /* NOTIMPL */
#define ONIG_SYN_OP2_ESC_H_HORIZONTAL_WHITESPACE (1U<<24) /* \h, \H -- Perl */ /* NOTIMPL */
#define ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP         (1U<<25) /* \K */
#define ONIG_SYN_OP2_ESC_G_BRACE_BACKREF        (1U<<26) /* \g{name}, \g{n} */
#define ONIG_SYN_OP2_QMARK_SUBEXP_CALL          (1U<<27) /* (?&name), (?n), (?R), (?0) */
#define ONIG_SYN_OP2_QMARK_VBAR_BRANCH_RESET    (1U<<28) /* (?|...) */         /* NOTIMPL */
#define ONIG_SYN_OP2_QMARK_LPAREN_CONDITION     (1U<<29) /* (?(cond)yes...|no...) */
#define ONIG_SYN_OP2_QMARK_CAPITAL_P_NAMED_GROUP (1U<<30) /* (?P<name>...), (?P=name), (?P>name) -- Python/PCRE */
#define ONIG_SYN_OP2_OPTION_JAVA                (1U<<31) /* (?idmsux), (?-idmsux) */ /* NOTIMPL */

/* syntax (behavior) */
#define ONIG_SYN_CONTEXT_INDEP_ANCHORS           (1U<<31) /* not implemented */
#define ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS        (1U<<0)  /* ?, *, +, {n,m} */
#define ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS      (1U<<1)  /* error or ignore */
#define ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP    (1U<<2)  /* ...)... */
#define ONIG_SYN_ALLOW_INVALID_INTERVAL          (1U<<3)  /* {??? */
#define ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV       (1U<<4)  /* {,n} => {0,n} */
#define ONIG_SYN_STRICT_CHECK_BACKREF            (1U<<5)  /* /(\1)/,/\1()/ ..*/
#define ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND   (1U<<6)  /* (?<=a|bc) */
#define ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP        (1U<<7)  /* see doc/RE */
#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME (1U<<8)  /* (?<x>)(?<x>) */
#define ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY   (1U<<9)  /* a{n}?=(?:a{n})? */
#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME_CALL (1U<<10)  /* (?<x>)(?<x>)(?&x) */

/* syntax (behavior) in char class [...] */
#define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC      (1U<<20) /* [^...] */
#define ONIG_SYN_BACKSLASH_ESCAPE_IN_CC          (1U<<21) /* [..\w..] etc.. */
#define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC         (1U<<22)
#define ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC     (1U<<23) /* [0-9-a]=[0-9\-a] */
/* syntax (behavior) warning */
#define ONIG_SYN_WARN_CC_OP_NOT_ESCAPED          (1U<<24) /* [,-,] */
#define ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT    (1U<<25) /* (?:a*)+ */
#define ONIG_SYN_WARN_CC_DUP                     (1U<<26) /* [aa] */

/* meta character specifiers (onig_set_meta_char()) */
#define ONIG_META_CHAR_ESCAPE               0
#define ONIG_META_CHAR_ANYCHAR              1
#define ONIG_META_CHAR_ANYTIME              2
#define ONIG_META_CHAR_ZERO_OR_ONE_TIME     3
#define ONIG_META_CHAR_ONE_OR_MORE_TIME     4
#define ONIG_META_CHAR_ANYCHAR_ANYTIME      5

#define ONIG_INEFFECTIVE_META_CHAR          0

/* error codes */
#define ONIG_IS_PATTERN_ERROR(ecode)   ((ecode) <= -100 && (ecode) > -1000)
/* normal return */
#define ONIG_NORMAL                                            0
#define ONIG_MISMATCH                                         -1
#define ONIG_NO_SUPPORT_CONFIG                                -2

/* internal error */
#define ONIGERR_MEMORY                                         -5
#define ONIGERR_TYPE_BUG                                       -6
#define ONIGERR_PARSER_BUG                                    -11
#define ONIGERR_STACK_BUG                                     -12
#define ONIGERR_UNDEFINED_BYTECODE                            -13
#define ONIGERR_UNEXPECTED_BYTECODE                           -14
#define ONIGERR_MATCH_STACK_LIMIT_OVER                        -15
#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SET                   -21
#define ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR  -22
/* general error */
#define ONIGERR_INVALID_ARGUMENT                              -30
/* syntax error */
#define ONIGERR_END_PATTERN_AT_LEFT_BRACE                    -100
#define ONIGERR_END_PATTERN_AT_LEFT_BRACKET                  -101
#define ONIGERR_EMPTY_CHAR_CLASS                             -102
#define ONIGERR_PREMATURE_END_OF_CHAR_CLASS                  -103
#define ONIGERR_END_PATTERN_AT_ESCAPE                        -104
#define ONIGERR_END_PATTERN_AT_META                          -105
#define ONIGERR_END_PATTERN_AT_CONTROL                       -106
#define ONIGERR_META_CODE_SYNTAX                             -108
#define ONIGERR_CONTROL_CODE_SYNTAX                          -109
#define ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE             -110
#define ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE           -111
#define ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS      -112
#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED      -113
#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID            -114
#define ONIGERR_NESTED_REPEAT_OPERATOR                       -115
#define ONIGERR_UNMATCHED_CLOSE_PARENTHESIS                  -116
#define ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS       -117
#define ONIGERR_END_PATTERN_IN_GROUP                         -118
#define ONIGERR_UNDEFINED_GROUP_OPTION                       -119
#define ONIGERR_INVALID_POSIX_BRACKET_TYPE                   -121
#define ONIGERR_INVALID_LOOK_BEHIND_PATTERN                  -122
#define ONIGERR_INVALID_REPEAT_RANGE_PATTERN                 -123
#define ONIGERR_INVALID_CONDITION_PATTERN                    -124
/* values error (syntax error) */
#define ONIGERR_TOO_BIG_NUMBER                               -200
#define ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE              -201
#define ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE     -202
#define ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS                    -203
#define ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE          -204
#define ONIGERR_TOO_MANY_MULTI_BYTE_RANGES                   -205
#define ONIGERR_TOO_SHORT_MULTI_BYTE_STRING                  -206
#define ONIGERR_TOO_BIG_BACKREF_NUMBER                       -207
#define ONIGERR_INVALID_BACKREF                              -208
#define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED         -209
#define ONIGERR_TOO_SHORT_DIGITS                             -210
#define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE                     -212
#define ONIGERR_EMPTY_GROUP_NAME                             -214
#define ONIGERR_INVALID_GROUP_NAME                           -215
#define ONIGERR_INVALID_CHAR_IN_GROUP_NAME                   -216
#define ONIGERR_UNDEFINED_NAME_REFERENCE                     -217
#define ONIGERR_UNDEFINED_GROUP_REFERENCE                    -218
#define ONIGERR_MULTIPLEX_DEFINED_NAME                       -219
#define ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL               -220
#define ONIGERR_NEVER_ENDING_RECURSION                       -221
#define ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY        -222
#define ONIGERR_INVALID_CHAR_PROPERTY_NAME                   -223
#define ONIGERR_TOO_MANY_CAPTURE_GROUPS                      -224
#define ONIGERR_INVALID_CODE_POINT_VALUE                     -400
#define ONIGERR_INVALID_WIDE_CHAR_VALUE                      -400
#define ONIGERR_TOO_BIG_WIDE_CHAR_VALUE                      -401
#define ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION           -402
#define ONIGERR_INVALID_COMBINATION_OF_OPTIONS               -403

/* errors related to thread */
#define ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT                -1001


/* must be smaller than BIT_STATUS_BITS_NUM (unsigned int * 8) */
#define ONIG_MAX_CAPTURE_HISTORY_GROUP   31
#define ONIG_IS_CAPTURE_HISTORY_GROUP(r, i) \
  ((i) <= ONIG_MAX_CAPTURE_HISTORY_GROUP && (r)->list && (r)->list[i])

typedef struct OnigCaptureTreeNodeStruct {
  int group;   /* group number */
  OnigPosition beg;
  OnigPosition end;
  int allocated;
  int num_childs;
  struct OnigCaptureTreeNodeStruct** childs;
} OnigCaptureTreeNode;

/* match result region type */
struct re_registers {
  int  allocated;
  int  num_regs;
  OnigPosition* beg;
  OnigPosition* end;
  /* extended */
  OnigCaptureTreeNode* history_root;  /* capture history tree root */
};

/* capture tree traverse */
#define ONIG_TRAVERSE_CALLBACK_AT_FIRST   1
#define ONIG_TRAVERSE_CALLBACK_AT_LAST    2
#define ONIG_TRAVERSE_CALLBACK_AT_BOTH \
  ( ONIG_TRAVERSE_CALLBACK_AT_FIRST | ONIG_TRAVERSE_CALLBACK_AT_LAST )


#define ONIG_REGION_NOTPOS            -1

typedef struct re_registers   OnigRegion;

typedef struct {
  OnigEncoding enc;
  OnigUChar* par;
  OnigUChar* par_end;
} OnigErrorInfo;

typedef struct {
  int lower;
  int upper;
} OnigRepeatRange;

typedef void (*OnigWarnFunc) P_((const char* s));
extern void onig_null_warn P_((const char* s));
#define ONIG_NULL_WARN       onig_null_warn

#define ONIG_CHAR_TABLE_SIZE   256

/* regex_t state */
#define ONIG_STATE_NORMAL              0
#define ONIG_STATE_SEARCHING           1
#define ONIG_STATE_COMPILING          -1
#define ONIG_STATE_MODIFY             -2

#define ONIG_STATE(reg) \
  ((reg)->state > 0 ? ONIG_STATE_SEARCHING : (reg)->state)

typedef struct re_pattern_buffer {
  /* common members of BBuf(bytes-buffer) */
  unsigned char* p;         /* compiled pattern */
  unsigned int used;        /* used space for p */
  unsigned int alloc;       /* allocated space for p */

  int state;                     /* normal, searching, compiling */
  int num_mem;                   /* used memory(...) num counted from 1 */
  int num_repeat;                /* OP_REPEAT/OP_REPEAT_NG id-counter */
  int num_null_check;            /* OP_NULL_CHECK_START/END id counter */
  int num_comb_exp_check;        /* combination explosion check */
  int num_call;                  /* number of subexp call */
  unsigned int capture_history;  /* (?@...) flag (1-31) */
  unsigned int bt_mem_start;     /* need backtrack flag */
  unsigned int bt_mem_end;       /* need backtrack flag */
  int stack_pop_level;
  int repeat_range_alloc;

  OnigOptionType    options;

  OnigRepeatRange* repeat_range;

  OnigEncoding      enc;
  const OnigSyntaxType* syntax;
  void*             name_table;
  OnigCaseFoldType  case_fold_flag;

  /* optimization info (string search, char-map and anchors) */
  int            optimize;          /* optimize flag */
  int            threshold_len;     /* search str-length for apply optimize */
  int            anchor;            /* BEGIN_BUF, BEGIN_POS, (SEMI_)END_BUF */
  OnigDistance   anchor_dmin;       /* (SEMI_)END_BUF anchor distance */
  OnigDistance   anchor_dmax;       /* (SEMI_)END_BUF anchor distance */
  int            sub_anchor;        /* start-anchor for exact or map */
  unsigned char *exact;
  unsigned char *exact_end;
  unsigned char  map[ONIG_CHAR_TABLE_SIZE]; /* used as BM skip or char-map */
  int           *int_map;                   /* BM skip for exact_len > 255 */
  int           *int_map_backward;          /* BM skip for backward search */
  OnigDistance   dmin;                      /* min-distance of exact or map */
  OnigDistance   dmax;                      /* max-distance of exact or map */

  /* regex_t link chain */
  struct re_pattern_buffer* chain;  /* escape compile-conflict */
} OnigRegexType;

typedef OnigRegexType*  OnigRegex;

#ifndef ONIG_ESCAPE_REGEX_T_COLLISION
  typedef OnigRegexType  regex_t;
#endif


typedef struct {
  int             num_of_elements;
  OnigEncoding    pattern_enc;
  OnigEncoding    target_enc;
  const OnigSyntaxType* syntax;
  OnigOptionType  option;
  OnigCaseFoldType   case_fold_flag;
} OnigCompileInfo;

/* Oniguruma Native API */
ONIG_EXTERN
int onig_init P_((void));
ONIG_EXTERN
int onig_error_code_to_str PV_((OnigUChar* s, OnigPosition err_code, ...));
ONIG_EXTERN
void onig_set_warn_func P_((OnigWarnFunc f));
ONIG_EXTERN
void onig_set_verb_warn_func P_((OnigWarnFunc f));
ONIG_EXTERN
int onig_new P_((OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax, OnigErrorInfo* einfo));
ONIG_EXTERN
int onig_reg_init P_((OnigRegex reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, const OnigSyntaxType* syntax));
ONIG_EXTERN
int onig_new_without_alloc P_((OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo));
ONIG_EXTERN
int onig_new_deluxe P_((OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo));
ONIG_EXTERN
void onig_free P_((OnigRegex));
ONIG_EXTERN
void onig_free_body P_((OnigRegex));
ONIG_EXTERN
int onig_recompile P_((OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo));
ONIG_EXTERN
int onig_recompile_deluxe P_((OnigRegex reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo));
ONIG_EXTERN
OnigPosition onig_search P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option));
ONIG_EXTERN
OnigPosition onig_search_gpos P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* global_pos, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option));
ONIG_EXTERN
OnigPosition onig_match P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option));
ONIG_EXTERN
OnigRegion* onig_region_new P_((void));
ONIG_EXTERN
void onig_region_init P_((OnigRegion* region));
ONIG_EXTERN
void onig_region_free P_((OnigRegion* region, int free_self));
ONIG_EXTERN
void onig_region_copy P_((OnigRegion* to, OnigRegion* from));
ONIG_EXTERN
void onig_region_clear P_((OnigRegion* region));
ONIG_EXTERN
int onig_region_resize P_((OnigRegion* region, int n));
ONIG_EXTERN
int onig_region_set P_((OnigRegion* region, int at, int beg, int end));
ONIG_EXTERN
int onig_name_to_group_numbers P_((OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, int** nums));
ONIG_EXTERN
int onig_name_to_backref_number P_((OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, OnigRegion *region));
ONIG_EXTERN
int onig_foreach_name P_((OnigRegex reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,OnigRegex,void*), void* arg));
ONIG_EXTERN
int onig_number_of_names P_((OnigRegex reg));
ONIG_EXTERN
int onig_number_of_captures P_((OnigRegex reg));
ONIG_EXTERN
int onig_number_of_capture_histories P_((OnigRegex reg));
ONIG_EXTERN
OnigCaptureTreeNode* onig_get_capture_tree P_((OnigRegion* region));
ONIG_EXTERN
int onig_capture_tree_traverse P_((OnigRegion* region, int at, int(*callback_func)(int,OnigPosition,OnigPosition,int,int,void*), void* arg));
ONIG_EXTERN
int onig_noname_group_capture_is_active P_((OnigRegex reg));
ONIG_EXTERN
OnigEncoding onig_get_encoding P_((OnigRegex reg));
ONIG_EXTERN
OnigOptionType onig_get_options P_((OnigRegex reg));
ONIG_EXTERN
OnigCaseFoldType onig_get_case_fold_flag P_((OnigRegex reg));
ONIG_EXTERN
const OnigSyntaxType* onig_get_syntax P_((OnigRegex reg));
ONIG_EXTERN
int onig_set_default_syntax P_((const OnigSyntaxType* syntax));
ONIG_EXTERN
void onig_copy_syntax P_((OnigSyntaxType* to, const OnigSyntaxType* from));
ONIG_EXTERN
unsigned int onig_get_syntax_op P_((OnigSyntaxType* syntax));
ONIG_EXTERN
unsigned int onig_get_syntax_op2 P_((OnigSyntaxType* syntax));
ONIG_EXTERN
unsigned int onig_get_syntax_behavior P_((OnigSyntaxType* syntax));
ONIG_EXTERN
OnigOptionType onig_get_syntax_options P_((OnigSyntaxType* syntax));
ONIG_EXTERN
void onig_set_syntax_op P_((OnigSyntaxType* syntax, unsigned int op));
ONIG_EXTERN
void onig_set_syntax_op2 P_((OnigSyntaxType* syntax, unsigned int op2));
ONIG_EXTERN
void onig_set_syntax_behavior P_((OnigSyntaxType* syntax, unsigned int behavior));
ONIG_EXTERN
void onig_set_syntax_options P_((OnigSyntaxType* syntax, OnigOptionType options));
ONIG_EXTERN
int onig_set_meta_char P_((OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code));
ONIG_EXTERN
void onig_copy_encoding P_((OnigEncodingType *to, OnigEncoding from));
ONIG_EXTERN
OnigCaseFoldType onig_get_default_case_fold_flag P_((void));
ONIG_EXTERN
int onig_set_default_case_fold_flag P_((OnigCaseFoldType case_fold_flag));
ONIG_EXTERN
unsigned int onig_get_match_stack_limit_size P_((void));
ONIG_EXTERN
int onig_set_match_stack_limit_size P_((unsigned int size));
ONIG_EXTERN
int onig_end P_((void));
ONIG_EXTERN
const char* onig_version P_((void));
ONIG_EXTERN
const char* onig_copyright P_((void));

RUBY_SYMBOL_EXPORT_END

#ifdef __cplusplus
#if 0
{ /* satisfy cc-mode */
#endif
}
#endif

#endif /* ONIGURUMA_H */
include/ruby-2.2.0/ruby/backward/util.h000064400000000343150402105670013472 0ustar00#if   defined __GNUC__
#warning use "ruby/util.h" instead of bare "util.h"
#elif defined _MSC_VER || defined __BORLANDC__
#pragma message("warning: use \"ruby/util.h\" instead of bare \"util.h\"")
#endif
#include "ruby/util.h"
include/ruby-2.2.0/ruby/backward/rubyio.h000064400000000327150402105670014030 0ustar00#if   defined __GNUC__
#warning use "ruby/io.h" instead of "rubyio.h"
#elif defined _MSC_VER || defined __BORLANDC__
#pragma message("warning: use \"ruby/io.h\" instead of \"rubyio.h\"")
#endif
#include "ruby/io.h"
include/ruby-2.2.0/ruby/backward/rubysig.h000064400000001714150402105670014204 0ustar00/**********************************************************************

  rubysig.h -

  $Author: akr $
  $Date: 2014-02-15 00:16:31 +0900 (Sat, 15 Feb 2014) $
  created at: Wed Aug 16 01:15:38 JST 1995

  Copyright (C) 1993-2008 Yukihiro Matsumoto

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

#if   defined __GNUC__
#warning rubysig.h is obsolete
#elif defined _MSC_VER || defined __BORLANDC__
#pragma message("warning: rubysig.h is obsolete")
#endif

#ifndef RUBYSIG_H
#define RUBYSIG_H
#include "ruby/ruby.h"

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

RUBY_SYMBOL_EXPORT_BEGIN

#define RUBY_CRITICAL(statements) do {statements;} while (0)
#define DEFER_INTS (0)
#define ENABLE_INTS (1)
#define ALLOW_INTS do {CHECK_INTS;} while (0)
#define CHECK_INTS rb_thread_check_ints()

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif
include/ruby-2.2.0/ruby/backward/st.h000064400000000331150402105670013140 0ustar00#if   defined __GNUC__
#warning use "ruby/st.h" instead of bare "st.h"
#elif defined _MSC_VER || defined __BORLANDC__
#pragma message("warning: use \"ruby/st.h\" instead of bare \"st.h\"")
#endif
#include "ruby/st.h"
include/ruby-2.2.0/ruby/backward/classext.h000064400000001015150402105670014340 0ustar00#if   defined __GNUC__
#warning use of RClass internals is deprecated
#elif defined _MSC_VER || defined __BORLANDC__
#pragma message("warning: use of RClass internals is deprecated")
#endif

#ifndef RUBY_BACKWARD_CLASSEXT_H
#define RUBY_BACKWARD_CLASSEXT_H 1

typedef struct rb_deprecated_classext_struct {
    VALUE super;
} rb_deprecated_classext_t;

#undef RCLASS_SUPER(c)
#define RCLASS_EXT(c) ((rb_deprecated_classext_t *)RCLASS(c)->ptr)
#define RCLASS_SUPER(c) (RCLASS(c)->super)

#endif	/* RUBY_BACKWARD_CLASSEXT_H */
include/ruby-2.2.0/ruby/intern.h000064400000105345150402105670012246 0ustar00/**********************************************************************

  intern.h -

  $Author: usa $
  created at: Thu Jun 10 14:22:17 JST 1993

  Copyright (C) 1993-2007 Yukihiro Matsumoto
  Copyright (C) 2000  Network Applied Communication Laboratory, Inc.
  Copyright (C) 2000  Information-technology Promotion Agency, Japan

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

#ifndef RUBY_INTERN_H
#define RUBY_INTERN_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

#include "ruby/defines.h"
#ifdef RUBY_EXTCONF_H
#include RUBY_EXTCONF_H
#endif

#ifdef HAVE_STDARG_PROTOTYPES
# include <stdarg.h>
#else
# include <varargs.h>
#endif

#include "ruby/st.h"

RUBY_SYMBOL_EXPORT_BEGIN

/*
 * Functions and variables that are used by more than one source file of
 * the kernel.
 */

#define UNLIMITED_ARGUMENTS (-1)

/* array.c */
void rb_mem_clear(register VALUE*, register long);
VALUE rb_assoc_new(VALUE, VALUE);
VALUE rb_check_array_type(VALUE);
VALUE rb_ary_new(void);
VALUE rb_ary_new_capa(long capa);
VALUE rb_ary_new_from_args(long n, ...);
VALUE rb_ary_new_from_values(long n, const VALUE *elts);
VALUE rb_ary_tmp_new(long);
void rb_ary_free(VALUE);
void rb_ary_modify(VALUE);
VALUE rb_ary_freeze(VALUE);
VALUE rb_ary_shared_with_p(VALUE, VALUE);
VALUE rb_ary_aref(int, const VALUE*, VALUE);
VALUE rb_ary_subseq(VALUE, long, long);
void rb_ary_store(VALUE, long, VALUE);
VALUE rb_ary_dup(VALUE);
VALUE rb_ary_resurrect(VALUE ary);
VALUE rb_ary_to_ary(VALUE);
VALUE rb_ary_to_s(VALUE);
VALUE rb_ary_cat(VALUE, const VALUE *, long);
VALUE rb_ary_push(VALUE, VALUE);
VALUE rb_ary_pop(VALUE);
VALUE rb_ary_shift(VALUE);
VALUE rb_ary_unshift(VALUE, VALUE);
VALUE rb_ary_entry(VALUE, long);
VALUE rb_ary_each(VALUE);
VALUE rb_ary_join(VALUE, VALUE);
VALUE rb_ary_reverse(VALUE);
VALUE rb_ary_rotate(VALUE, long);
VALUE rb_ary_sort(VALUE);
VALUE rb_ary_sort_bang(VALUE);
VALUE rb_ary_delete(VALUE, VALUE);
VALUE rb_ary_delete_at(VALUE, long);
VALUE rb_ary_clear(VALUE);
VALUE rb_ary_plus(VALUE, VALUE);
VALUE rb_ary_concat(VALUE, VALUE);
VALUE rb_ary_assoc(VALUE, VALUE);
VALUE rb_ary_rassoc(VALUE, VALUE);
VALUE rb_ary_includes(VALUE, VALUE);
VALUE rb_ary_cmp(VALUE, VALUE);
VALUE rb_ary_replace(VALUE copy, VALUE orig);
VALUE rb_get_values_at(VALUE, long, int, const VALUE*, VALUE(*)(VALUE,long));
VALUE rb_ary_resize(VALUE ary, long len);
#define rb_ary_new2 rb_ary_new_capa
#define rb_ary_new3 rb_ary_new_from_args
#define rb_ary_new4 rb_ary_new_from_values
/* bignum.c */
VALUE rb_big_new(size_t, int);
int rb_bigzero_p(VALUE x);
VALUE rb_big_clone(VALUE);
void rb_big_2comp(VALUE);
VALUE rb_big_norm(VALUE);
void rb_big_resize(VALUE big, size_t len);
VALUE rb_cstr_to_inum(const char*, int, int);
VALUE rb_str_to_inum(VALUE, int, int);
VALUE rb_cstr2inum(const char*, int);
VALUE rb_str2inum(VALUE, int);
VALUE rb_big2str(VALUE, int);
long rb_big2long(VALUE);
#define rb_big2int(x) rb_big2long(x)
unsigned long rb_big2ulong(VALUE);
#define rb_big2uint(x) rb_big2ulong(x)
#if HAVE_LONG_LONG
LONG_LONG rb_big2ll(VALUE);
unsigned LONG_LONG rb_big2ull(VALUE);
#endif  /* HAVE_LONG_LONG */
void rb_big_pack(VALUE val, unsigned long *buf, long num_longs);
VALUE rb_big_unpack(unsigned long *buf, long num_longs);
int rb_uv_to_utf8(char[6],unsigned long);
VALUE rb_dbl2big(double);
double rb_big2dbl(VALUE);
VALUE rb_big_cmp(VALUE, VALUE);
VALUE rb_big_eq(VALUE, VALUE);
VALUE rb_big_eql(VALUE, VALUE);
VALUE rb_big_plus(VALUE, VALUE);
VALUE rb_big_minus(VALUE, VALUE);
VALUE rb_big_mul(VALUE, VALUE);
VALUE rb_big_div(VALUE, VALUE);
VALUE rb_big_idiv(VALUE, VALUE);
VALUE rb_big_modulo(VALUE, VALUE);
VALUE rb_big_divmod(VALUE, VALUE);
VALUE rb_big_pow(VALUE, VALUE);
VALUE rb_big_and(VALUE, VALUE);
VALUE rb_big_or(VALUE, VALUE);
VALUE rb_big_xor(VALUE, VALUE);
VALUE rb_big_lshift(VALUE, VALUE);
VALUE rb_big_rshift(VALUE, VALUE);
VALUE rb_big_hash(VALUE);

/* For rb_integer_pack and rb_integer_unpack: */
/* "MS" in MSWORD and MSBYTE means "most significant" */
/* "LS" in LSWORD and LSBYTE means "least significant" */
#define INTEGER_PACK_MSWORD_FIRST       0x01
#define INTEGER_PACK_LSWORD_FIRST       0x02
#define INTEGER_PACK_MSBYTE_FIRST       0x10
#define INTEGER_PACK_LSBYTE_FIRST       0x20
#define INTEGER_PACK_NATIVE_BYTE_ORDER  0x40
#define INTEGER_PACK_2COMP              0x80
#define INTEGER_PACK_FORCE_GENERIC_IMPLEMENTATION     0x400
/* For rb_integer_unpack: */
#define INTEGER_PACK_FORCE_BIGNUM       0x100
#define INTEGER_PACK_NEGATIVE           0x200
/* Combinations: */
#define INTEGER_PACK_LITTLE_ENDIAN \
    (INTEGER_PACK_LSWORD_FIRST | \
     INTEGER_PACK_LSBYTE_FIRST)
#define INTEGER_PACK_BIG_ENDIAN \
    (INTEGER_PACK_MSWORD_FIRST | \
     INTEGER_PACK_MSBYTE_FIRST)
int rb_integer_pack(VALUE val, void *words, size_t numwords, size_t wordsize, size_t nails, int flags);
VALUE rb_integer_unpack(const void *words, size_t numwords, size_t wordsize, size_t nails, int flags);
size_t rb_absint_size(VALUE val, int *nlz_bits_ret);
size_t rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret);
int rb_absint_singlebit_p(VALUE val);

/* rational.c */
VALUE rb_rational_raw(VALUE, VALUE);
#define rb_rational_raw1(x) rb_rational_raw((x), INT2FIX(1))
#define rb_rational_raw2(x,y) rb_rational_raw((x), (y))
VALUE rb_rational_new(VALUE, VALUE);
#define rb_rational_new1(x) rb_rational_new((x), INT2FIX(1))
#define rb_rational_new2(x,y) rb_rational_new((x), (y))
VALUE rb_Rational(VALUE, VALUE);
#define rb_Rational1(x) rb_Rational((x), INT2FIX(1))
#define rb_Rational2(x,y) rb_Rational((x), (y))
VALUE rb_rational_num(VALUE rat);
VALUE rb_rational_den(VALUE rat);
VALUE rb_flt_rationalize_with_prec(VALUE, VALUE);
VALUE rb_flt_rationalize(VALUE);
/* complex.c */
VALUE rb_complex_raw(VALUE, VALUE);
#define rb_complex_raw1(x) rb_complex_raw((x), INT2FIX(0))
#define rb_complex_raw2(x,y) rb_complex_raw((x), (y))
VALUE rb_complex_new(VALUE, VALUE);
#define rb_complex_new1(x) rb_complex_new((x), INT2FIX(0))
#define rb_complex_new2(x,y) rb_complex_new((x), (y))
VALUE rb_complex_polar(VALUE, VALUE);
VALUE rb_Complex(VALUE, VALUE);
#define rb_Complex1(x) rb_Complex((x), INT2FIX(0))
#define rb_Complex2(x,y) rb_Complex((x), (y))
DEPRECATED(VALUE rb_complex_set_real(VALUE, VALUE));
DEPRECATED(VALUE rb_complex_set_imag(VALUE, VALUE));
/* class.c */
VALUE rb_class_boot(VALUE);
VALUE rb_class_new(VALUE);
VALUE rb_mod_init_copy(VALUE, VALUE);
VALUE rb_singleton_class_clone(VALUE);
void rb_singleton_class_attached(VALUE,VALUE);
VALUE rb_make_metaclass(VALUE, VALUE);
void rb_check_inheritable(VALUE);
VALUE rb_class_inherited(VALUE, VALUE);
VALUE rb_define_class_id(ID, VALUE);
VALUE rb_define_class_id_under(VALUE, ID, VALUE);
VALUE rb_module_new(void);
VALUE rb_define_module_id(ID);
VALUE rb_define_module_id_under(VALUE, ID);
VALUE rb_include_class_new(VALUE, VALUE);
VALUE rb_mod_included_modules(VALUE);
VALUE rb_mod_include_p(VALUE, VALUE);
VALUE rb_mod_ancestors(VALUE);
VALUE rb_class_instance_methods(int, const VALUE*, VALUE);
VALUE rb_class_public_instance_methods(int, const VALUE*, VALUE);
VALUE rb_class_protected_instance_methods(int, const VALUE*, VALUE);
VALUE rb_class_private_instance_methods(int, const VALUE*, VALUE);
VALUE rb_obj_singleton_methods(int, const VALUE*, VALUE);
void rb_define_method_id(VALUE, ID, VALUE (*)(ANYARGS), int);
void rb_frozen_class_p(VALUE);
void rb_undef(VALUE, ID);
void rb_define_protected_method(VALUE, const char*, VALUE (*)(ANYARGS), int);
void rb_define_private_method(VALUE, const char*, VALUE (*)(ANYARGS), int);
void rb_define_singleton_method(VALUE, const char*, VALUE(*)(ANYARGS), int);
VALUE rb_singleton_class(VALUE);
/* compar.c */
int rb_cmpint(VALUE, VALUE, VALUE);
NORETURN(void rb_cmperr(VALUE, VALUE));
/* cont.c */
VALUE rb_fiber_new(VALUE (*)(ANYARGS), VALUE);
VALUE rb_fiber_resume(VALUE fib, int argc, const VALUE *argv);
VALUE rb_fiber_yield(int argc, const VALUE *argv);
VALUE rb_fiber_current(void);
VALUE rb_fiber_alive_p(VALUE);
/* enum.c */
VALUE rb_enum_values_pack(int, const VALUE*);
/* enumerator.c */
VALUE rb_enumeratorize(VALUE, VALUE, int, const VALUE *);
typedef VALUE rb_enumerator_size_func(VALUE, VALUE, VALUE);
VALUE rb_enumeratorize_with_size(VALUE, VALUE, int, const VALUE *, rb_enumerator_size_func *);
#ifndef RUBY_EXPORT
#define rb_enumeratorize_with_size(obj, id, argc, argv, size_fn) \
    rb_enumeratorize_with_size(obj, id, argc, argv, (rb_enumerator_size_func *)(size_fn))
#endif
#define SIZED_ENUMERATOR(obj, argc, argv, size_fn) \
    rb_enumeratorize_with_size((obj), ID2SYM(rb_frame_this_func()), \
			       (argc), (argv), (size_fn))
#define RETURN_SIZED_ENUMERATOR(obj, argc, argv, size_fn) do {		\
	if (!rb_block_given_p())					\
	    return SIZED_ENUMERATOR(obj, argc, argv, size_fn);		\
    } while (0)
#define RETURN_ENUMERATOR(obj, argc, argv) RETURN_SIZED_ENUMERATOR(obj, argc, argv, 0)
/* error.c */
VALUE rb_exc_new(VALUE, const char*, long);
VALUE rb_exc_new_cstr(VALUE, const char*);
VALUE rb_exc_new_str(VALUE, VALUE);
#define rb_exc_new2 rb_exc_new_cstr
#define rb_exc_new3 rb_exc_new_str
PRINTF_ARGS(NORETURN(void rb_loaderror(const char*, ...)), 1, 2);
PRINTF_ARGS(NORETURN(void rb_loaderror_with_path(VALUE path, const char*, ...)), 2, 3);
PRINTF_ARGS(NORETURN(void rb_name_error(ID, const char*, ...)), 2, 3);
PRINTF_ARGS(NORETURN(void rb_name_error_str(VALUE, const char*, ...)), 2, 3);
NORETURN(void rb_invalid_str(const char*, const char*));
PRINTF_ARGS(void rb_compile_error(const char*, int, const char*, ...), 3, 4);
PRINTF_ARGS(void rb_compile_error_with_enc(const char*, int, void *, const char*, ...), 4, 5);
PRINTF_ARGS(void rb_compile_error_append(const char*, ...), 1, 2);
NORETURN(void rb_error_frozen(const char*));
NORETURN(void rb_error_frozen_object(VALUE));
void rb_error_untrusted(VALUE);
void rb_check_frozen(VALUE);
void rb_check_trusted(VALUE);
#define rb_check_frozen_internal(obj) do { \
	VALUE frozen_obj = (obj); \
	if (OBJ_FROZEN(frozen_obj)) { \
	    rb_error_frozen_object(frozen_obj); \
	} \
    } while (0)
#define rb_check_trusted_internal(obj) ((void) 0)
#ifdef __GNUC__
#define rb_check_frozen(obj) __extension__({rb_check_frozen_internal(obj);})
#define rb_check_trusted(obj) __extension__({rb_check_trusted_internal(obj);})
#else
static inline void
rb_check_frozen_inline(VALUE obj)
{
    rb_check_frozen_internal(obj);
}
#define rb_check_frozen(obj) rb_check_frozen_inline(obj)
static inline void
rb_check_trusted_inline(VALUE obj)
{
    rb_check_trusted_internal(obj);
}
#define rb_check_trusted(obj) rb_check_trusted_inline(obj)
#endif
void rb_check_copyable(VALUE obj, VALUE orig);

#define OBJ_INIT_COPY(obj, orig) \
    ((obj) != (orig) && (rb_obj_init_copy((obj), (orig)), 1))

/* eval.c */
int rb_sourceline(void);
const char *rb_sourcefile(void);
VALUE rb_check_funcall(VALUE, ID, int, const VALUE*);

NORETURN(void rb_error_arity(int, int, int));
#define rb_check_arity rb_check_arity /* for ifdef */
static inline void
rb_check_arity(int argc, int min, int max)
{
    if ((argc < min) || (max != UNLIMITED_ARGUMENTS && argc > max))
	rb_error_arity(argc, min, max);
}

#if defined(NFDBITS) && defined(HAVE_RB_FD_INIT)
typedef struct {
    int maxfd;
    fd_set *fdset;
} rb_fdset_t;

void rb_fd_init(rb_fdset_t *);
void rb_fd_term(rb_fdset_t *);
void rb_fd_zero(rb_fdset_t *);
void rb_fd_set(int, rb_fdset_t *);
void rb_fd_clr(int, rb_fdset_t *);
int rb_fd_isset(int, const rb_fdset_t *);
void rb_fd_copy(rb_fdset_t *, const fd_set *, int);
void rb_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src);

struct timeval;
int rb_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *);

#define rb_fd_ptr(f)	((f)->fdset)
#define rb_fd_max(f)	((f)->maxfd)

#elif defined(_WIN32)

typedef struct {
    int capa;
    fd_set *fdset;
} rb_fdset_t;

void rb_fd_init(rb_fdset_t *);
void rb_fd_term(rb_fdset_t *);
#define rb_fd_zero(f)		((f)->fdset->fd_count = 0)
void rb_fd_set(int, rb_fdset_t *);
#define rb_fd_clr(n, f)		rb_w32_fdclr((n), (f)->fdset)
#define rb_fd_isset(n, f)	rb_w32_fdisset((n), (f)->fdset)
#define rb_fd_copy(d, s, n)	rb_w32_fd_copy((d), (s), (n))
void rb_w32_fd_copy(rb_fdset_t *, const fd_set *, int);
#define rb_fd_dup(d, s)	rb_w32_fd_dup((d), (s))
void rb_w32_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src);
#define rb_fd_select(n, rfds, wfds, efds, timeout)	rb_w32_select((n), (rfds) ? ((rb_fdset_t*)(rfds))->fdset : NULL, (wfds) ? ((rb_fdset_t*)(wfds))->fdset : NULL, (efds) ? ((rb_fdset_t*)(efds))->fdset: NULL, (timeout))
#define rb_fd_resize(n, f)	((void)(f))

#define rb_fd_ptr(f)	((f)->fdset)
#define rb_fd_max(f)	((f)->fdset->fd_count)

#else

typedef fd_set rb_fdset_t;
#define rb_fd_zero(f)	FD_ZERO(f)
#define rb_fd_set(n, f)	FD_SET((n), (f))
#define rb_fd_clr(n, f)	FD_CLR((n), (f))
#define rb_fd_isset(n, f) FD_ISSET((n), (f))
#define rb_fd_copy(d, s, n) (*(d) = *(s))
#define rb_fd_dup(d, s) (*(d) = *(s))
#define rb_fd_resize(n, f)	((void)(f))
#define rb_fd_ptr(f)	(f)
#define rb_fd_init(f)	FD_ZERO(f)
#define rb_fd_init_copy(d, s) (*(d) = *(s))
#define rb_fd_term(f)	((void)(f))
#define rb_fd_max(f)	FD_SETSIZE
#define rb_fd_select(n, rfds, wfds, efds, timeout)	select((n), (rfds), (wfds), (efds), (timeout))

#endif

NORETURN(void rb_exc_raise(VALUE));
NORETURN(void rb_exc_fatal(VALUE));
VALUE rb_f_exit(int, const VALUE*);
VALUE rb_f_abort(int, const VALUE*);
void rb_remove_method(VALUE, const char*);
void rb_remove_method_id(VALUE, ID);
DEPRECATED(static inline void rb_disable_super(void));
DEPRECATED(static inline void rb_enable_super(void));
static inline void rb_disable_super(void)
{
    /* obsolete - no use */
}
static inline void rb_enable_super(void)
{
    rb_warning("rb_enable_super() is obsolete");
}
#define rb_disable_super(klass, name) rb_disable_super()
#define rb_enable_super(klass, name) rb_enable_super()
#define HAVE_RB_DEFINE_ALLOC_FUNC 1
typedef VALUE (*rb_alloc_func_t)(VALUE);
void rb_define_alloc_func(VALUE, rb_alloc_func_t);
void rb_undef_alloc_func(VALUE);
rb_alloc_func_t rb_get_alloc_func(VALUE);
DEPRECATED(void rb_clear_cache(void));
void rb_clear_constant_cache(void);
void rb_clear_method_cache_by_class(VALUE);
void rb_alias(VALUE, ID, ID);
void rb_attr(VALUE,ID,int,int,int);
int rb_method_boundp(VALUE, ID, int);
int rb_method_basic_definition_p(VALUE, ID);
VALUE rb_eval_cmd(VALUE, VALUE, int);
int rb_obj_respond_to(VALUE, ID, int);
int rb_respond_to(VALUE, ID);
VALUE rb_f_notimplement(int argc, const VALUE *argv, VALUE obj);
void rb_interrupt(void);
VALUE rb_apply(VALUE, ID, VALUE);
void rb_backtrace(void);
ID rb_frame_this_func(void);
VALUE rb_obj_instance_eval(int, const VALUE*, VALUE);
VALUE rb_obj_instance_exec(int, const VALUE*, VALUE);
VALUE rb_mod_module_eval(int, const VALUE*, VALUE);
VALUE rb_mod_module_exec(int, const VALUE*, VALUE);
void rb_load(VALUE, int);
void rb_load_protect(VALUE, int, int*);
NORETURN(void rb_jump_tag(int));
int rb_provided(const char*);
int rb_feature_provided(const char *, const char **);
void rb_provide(const char*);
VALUE rb_f_require(VALUE, VALUE);
VALUE rb_require_safe(VALUE, int);
void rb_obj_call_init(VALUE, int, const VALUE*);
VALUE rb_class_new_instance(int, const VALUE*, VALUE);
VALUE rb_block_proc(void);
VALUE rb_block_lambda(void);
VALUE rb_proc_new(VALUE (*)(ANYARGS/* VALUE yieldarg[, VALUE procarg] */), VALUE);
VALUE rb_obj_is_proc(VALUE);
VALUE rb_proc_call(VALUE, VALUE);
VALUE rb_proc_call_with_block(VALUE, int argc, const VALUE *argv, VALUE);
int rb_proc_arity(VALUE);
VALUE rb_proc_lambda_p(VALUE);
VALUE rb_binding_new(void);
VALUE rb_obj_method(VALUE, VALUE);
VALUE rb_obj_is_method(VALUE);
VALUE rb_method_call(int, const VALUE*, VALUE);
VALUE rb_method_call_with_block(int, const VALUE *, VALUE, VALUE);
int rb_mod_method_arity(VALUE, ID);
int rb_obj_method_arity(VALUE, ID);
VALUE rb_protect(VALUE (*)(VALUE), VALUE, int*);
void rb_set_end_proc(void (*)(VALUE), VALUE);
void rb_exec_end_proc(void);
void rb_thread_schedule(void);
void rb_thread_wait_fd(int);
int rb_thread_fd_writable(int);
void rb_thread_fd_close(int);
int rb_thread_alone(void);
void rb_thread_sleep(int);
void rb_thread_sleep_forever(void);
void rb_thread_sleep_deadly(void);
VALUE rb_thread_stop(void);
VALUE rb_thread_wakeup(VALUE);
VALUE rb_thread_wakeup_alive(VALUE);
VALUE rb_thread_run(VALUE);
VALUE rb_thread_kill(VALUE);
VALUE rb_thread_create(VALUE (*)(ANYARGS), void*);
int rb_thread_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *);
void rb_thread_wait_for(struct timeval);
VALUE rb_thread_current(void);
VALUE rb_thread_main(void);
VALUE rb_thread_local_aref(VALUE, ID);
VALUE rb_thread_local_aset(VALUE, ID, VALUE);
void rb_thread_atfork(void);
void rb_thread_atfork_before_exec(void);
VALUE rb_exec_recursive(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE);
VALUE rb_exec_recursive_paired(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE,VALUE);
VALUE rb_exec_recursive_outer(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE);
VALUE rb_exec_recursive_paired_outer(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE,VALUE);
/* dir.c */
VALUE rb_dir_getwd(void);
/* file.c */
VALUE rb_file_s_expand_path(int, const VALUE *);
VALUE rb_file_expand_path(VALUE, VALUE);
VALUE rb_file_s_absolute_path(int, const VALUE *);
VALUE rb_file_absolute_path(VALUE, VALUE);
VALUE rb_file_dirname(VALUE fname);
int rb_find_file_ext_safe(VALUE*, const char* const*, int);
VALUE rb_find_file_safe(VALUE, int);
int rb_find_file_ext(VALUE*, const char* const*);
VALUE rb_find_file(VALUE);
VALUE rb_file_directory_p(VALUE,VALUE);
VALUE rb_str_encode_ospath(VALUE);
int rb_is_absolute_path(const char *);
/* gc.c */
NORETURN(void rb_memerror(void));
int rb_during_gc(void);
void rb_gc_mark_locations(const VALUE*, const VALUE*);
void rb_mark_tbl(struct st_table*);
void rb_mark_set(struct st_table*);
void rb_mark_hash(struct st_table*);
void rb_gc_mark_maybe(VALUE);
void rb_gc_mark(VALUE);
void rb_gc_force_recycle(VALUE);
void rb_gc(void);
void rb_gc_copy_finalizer(VALUE,VALUE);
void rb_gc_finalize_deferred(void);
void rb_gc_call_finalizer_at_exit(void);
VALUE rb_gc_enable(void);
VALUE rb_gc_disable(void);
VALUE rb_gc_start(void);
VALUE rb_define_finalizer(VALUE, VALUE);
VALUE rb_undefine_finalizer(VALUE);
size_t rb_gc_count(void);
size_t rb_gc_stat(VALUE);
VALUE rb_gc_latest_gc_info(VALUE);
/* hash.c */
void st_foreach_safe(struct st_table *, int (*)(ANYARGS), st_data_t);
VALUE rb_check_hash_type(VALUE);
void rb_hash_foreach(VALUE, int (*)(ANYARGS), VALUE);
VALUE rb_hash(VALUE);
VALUE rb_hash_new(void);
VALUE rb_hash_dup(VALUE);
VALUE rb_hash_freeze(VALUE);
VALUE rb_hash_aref(VALUE, VALUE);
VALUE rb_hash_lookup(VALUE, VALUE);
VALUE rb_hash_lookup2(VALUE, VALUE, VALUE);
VALUE rb_hash_fetch(VALUE, VALUE);
VALUE rb_hash_aset(VALUE, VALUE, VALUE);
VALUE rb_hash_clear(VALUE);
VALUE rb_hash_delete_if(VALUE);
VALUE rb_hash_delete(VALUE,VALUE);
VALUE rb_hash_set_ifnone(VALUE hash, VALUE ifnone);
typedef VALUE rb_hash_update_func(VALUE newkey, VALUE oldkey, VALUE value);
VALUE rb_hash_update_by(VALUE hash1, VALUE hash2, rb_hash_update_func *func);
struct st_table *rb_hash_tbl(VALUE);
int rb_path_check(const char*);
int rb_env_path_tainted(void);
VALUE rb_env_clear(void);
VALUE rb_hash_size(VALUE);
DEPRECATED(int rb_hash_iter_lev(VALUE));
DEPRECATED(VALUE rb_hash_ifnone(VALUE));
/* io.c */
#define rb_defout rb_stdout
RUBY_EXTERN VALUE rb_fs;
RUBY_EXTERN VALUE rb_output_fs;
RUBY_EXTERN VALUE rb_rs;
RUBY_EXTERN VALUE rb_default_rs;
RUBY_EXTERN VALUE rb_output_rs;
VALUE rb_io_write(VALUE, VALUE);
VALUE rb_io_gets(VALUE);
VALUE rb_io_getbyte(VALUE);
VALUE rb_io_ungetc(VALUE, VALUE);
VALUE rb_io_ungetbyte(VALUE, VALUE);
VALUE rb_io_close(VALUE);
VALUE rb_io_flush(VALUE);
VALUE rb_io_eof(VALUE);
VALUE rb_io_binmode(VALUE);
VALUE rb_io_ascii8bit_binmode(VALUE);
VALUE rb_io_addstr(VALUE, VALUE);
VALUE rb_io_printf(int, const VALUE*, VALUE);
VALUE rb_io_print(int, const VALUE*, VALUE);
VALUE rb_io_puts(int, const VALUE*, VALUE);
VALUE rb_io_fdopen(int, int, const char*);
VALUE rb_io_get_io(VALUE);
VALUE rb_file_open(const char*, const char*);
VALUE rb_file_open_str(VALUE, const char*);
VALUE rb_gets(void);
void rb_write_error(const char*);
void rb_write_error2(const char*, long);
void rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds);
int rb_pipe(int *pipes);
int rb_reserved_fd_p(int fd);
int rb_cloexec_open(const char *pathname, int flags, mode_t mode);
int rb_cloexec_dup(int oldfd);
int rb_cloexec_dup2(int oldfd, int newfd);
int rb_cloexec_pipe(int fildes[2]);
int rb_cloexec_fcntl_dupfd(int fd, int minfd);
#define RB_RESERVED_FD_P(fd) rb_reserved_fd_p(fd)
void rb_update_max_fd(int fd);
void rb_fd_fix_cloexec(int fd);
/* marshal.c */
VALUE rb_marshal_dump(VALUE, VALUE);
VALUE rb_marshal_load(VALUE);
void rb_marshal_define_compat(VALUE newclass, VALUE oldclass, VALUE (*dumper)(VALUE), VALUE (*loader)(VALUE, VALUE));
/* numeric.c */
NORETURN(void rb_num_zerodiv(void));
#define RB_NUM_COERCE_FUNCS_NEED_OPID 1
VALUE rb_num_coerce_bin(VALUE, VALUE, ID);
VALUE rb_num_coerce_cmp(VALUE, VALUE, ID);
VALUE rb_num_coerce_relop(VALUE, VALUE, ID);
VALUE rb_num_coerce_bit(VALUE, VALUE, ID);
VALUE rb_num2fix(VALUE);
VALUE rb_fix2str(VALUE, int);
VALUE rb_dbl_cmp(double, double);
/* object.c */
int rb_eql(VALUE, VALUE);
VALUE rb_any_to_s(VALUE);
VALUE rb_inspect(VALUE);
VALUE rb_obj_is_instance_of(VALUE, VALUE);
VALUE rb_obj_is_kind_of(VALUE, VALUE);
VALUE rb_obj_alloc(VALUE);
VALUE rb_obj_clone(VALUE);
VALUE rb_obj_dup(VALUE);
VALUE rb_obj_init_copy(VALUE,VALUE);
VALUE rb_obj_taint(VALUE);
VALUE rb_obj_tainted(VALUE);
VALUE rb_obj_untaint(VALUE);
VALUE rb_obj_untrust(VALUE);
VALUE rb_obj_untrusted(VALUE);
VALUE rb_obj_trust(VALUE);
VALUE rb_obj_freeze(VALUE);
VALUE rb_obj_frozen_p(VALUE);
VALUE rb_obj_id(VALUE);
VALUE rb_obj_class(VALUE);
VALUE rb_class_real(VALUE);
VALUE rb_class_inherited_p(VALUE, VALUE);
VALUE rb_class_superclass(VALUE);
VALUE rb_class_get_superclass(VALUE);
VALUE rb_convert_type(VALUE,int,const char*,const char*);
VALUE rb_check_convert_type(VALUE,int,const char*,const char*);
VALUE rb_check_to_integer(VALUE, const char *);
VALUE rb_check_to_float(VALUE);
VALUE rb_to_int(VALUE);
VALUE rb_check_to_int(VALUE);
VALUE rb_Integer(VALUE);
VALUE rb_to_float(VALUE);
VALUE rb_Float(VALUE);
VALUE rb_String(VALUE);
VALUE rb_Array(VALUE);
VALUE rb_Hash(VALUE);
double rb_cstr_to_dbl(const char*, int);
double rb_str_to_dbl(VALUE, int);
/* parse.y */
RUBY_EXTERN int   ruby_sourceline;
RUBY_EXTERN char *ruby_sourcefile;
ID rb_id_attrset(ID);
int rb_is_const_id(ID);
int rb_is_global_id(ID);
int rb_is_instance_id(ID);
int rb_is_attrset_id(ID);
int rb_is_class_id(ID);
int rb_is_local_id(ID);
int rb_is_junk_id(ID);
int rb_symname_p(const char*);
int rb_sym_interned_p(VALUE);
VALUE rb_backref_get(void);
void rb_backref_set(VALUE);
VALUE rb_lastline_get(void);
void rb_lastline_set(VALUE);
VALUE rb_sym_all_symbols(void);
/* process.c */
void rb_last_status_set(int status, rb_pid_t pid);
VALUE rb_last_status_get(void);
int rb_proc_exec(const char*);
VALUE rb_f_exec(int, const VALUE*);
rb_pid_t rb_waitpid(rb_pid_t pid, int *status, int flags);
void rb_syswait(rb_pid_t pid);
rb_pid_t rb_spawn(int, const VALUE*);
rb_pid_t rb_spawn_err(int, const VALUE*, char*, size_t);
VALUE rb_proc_times(VALUE);
VALUE rb_detach_process(rb_pid_t pid);
/* range.c */
VALUE rb_range_new(VALUE, VALUE, int);
VALUE rb_range_beg_len(VALUE, long*, long*, long, int);
int rb_range_values(VALUE range, VALUE *begp, VALUE *endp, int *exclp);
/* random.c */
unsigned int rb_genrand_int32(void);
double rb_genrand_real(void);
void rb_reset_random_seed(void);
VALUE rb_random_bytes(VALUE rnd, long n);
VALUE rb_random_int(VALUE rnd, VALUE max);
unsigned int rb_random_int32(VALUE rnd);
double rb_random_real(VALUE rnd);
unsigned long rb_random_ulong_limited(VALUE rnd, unsigned long limit);
unsigned long rb_genrand_ulong_limited(unsigned long i);
/* re.c */
#define rb_memcmp memcmp
int rb_memcicmp(const void*,const void*,long);
void rb_match_busy(VALUE);
VALUE rb_reg_nth_defined(int, VALUE);
VALUE rb_reg_nth_match(int, VALUE);
int rb_reg_backref_number(VALUE match, VALUE backref);
VALUE rb_reg_last_match(VALUE);
VALUE rb_reg_match_pre(VALUE);
VALUE rb_reg_match_post(VALUE);
VALUE rb_reg_match_last(VALUE);
#define HAVE_RB_REG_NEW_STR 1
VALUE rb_reg_new_str(VALUE, int);
VALUE rb_reg_new(const char *, long, int);
VALUE rb_reg_alloc(void);
VALUE rb_reg_init_str(VALUE re, VALUE s, int options);
VALUE rb_reg_match(VALUE, VALUE);
VALUE rb_reg_match2(VALUE);
int rb_reg_options(VALUE);
/* ruby.c */
#define rb_argv rb_get_argv()
RUBY_EXTERN VALUE rb_argv0;
VALUE rb_get_argv(void);
void *rb_load_file(const char*);
void *rb_load_file_str(VALUE);
/* signal.c */
VALUE rb_f_kill(int, const VALUE*);
#ifdef POSIX_SIGNAL
#define posix_signal ruby_posix_signal
RETSIGTYPE (*posix_signal(int, RETSIGTYPE (*)(int)))(int);
#endif
void rb_trap_exit(void);
void rb_trap_exec(void);
const char *ruby_signal_name(int);
void ruby_default_signal(int);
/* sprintf.c */
VALUE rb_f_sprintf(int, const VALUE*);
PRINTF_ARGS(VALUE rb_sprintf(const char*, ...), 1, 2);
VALUE rb_vsprintf(const char*, va_list);
PRINTF_ARGS(VALUE rb_str_catf(VALUE, const char*, ...), 2, 3);
VALUE rb_str_vcatf(VALUE, const char*, va_list);
VALUE rb_str_format(int, const VALUE *, VALUE);
/* string.c */
VALUE rb_str_new(const char*, long);
VALUE rb_str_new_cstr(const char*);
VALUE rb_str_new_shared(VALUE);
VALUE rb_str_new_frozen(VALUE);
VALUE rb_str_new_with_class(VALUE, const char*, long);
VALUE rb_tainted_str_new_cstr(const char*);
VALUE rb_tainted_str_new(const char*, long);
VALUE rb_external_str_new(const char*, long);
VALUE rb_external_str_new_cstr(const char*);
VALUE rb_locale_str_new(const char*, long);
VALUE rb_locale_str_new_cstr(const char*);
VALUE rb_filesystem_str_new(const char*, long);
VALUE rb_filesystem_str_new_cstr(const char*);
VALUE rb_str_buf_new(long);
VALUE rb_str_buf_new_cstr(const char*);
VALUE rb_str_buf_new2(const char*);
VALUE rb_str_tmp_new(long);
VALUE rb_usascii_str_new(const char*, long);
VALUE rb_usascii_str_new_cstr(const char*);
VALUE rb_utf8_str_new(const char*, long);
VALUE rb_utf8_str_new_cstr(const char*);
VALUE rb_str_new_static(const char *, long);
VALUE rb_usascii_str_new_static(const char *, long);
VALUE rb_utf8_str_new_static(const char *, long);
void rb_str_free(VALUE);
void rb_str_shared_replace(VALUE, VALUE);
VALUE rb_str_buf_append(VALUE, VALUE);
VALUE rb_str_buf_cat(VALUE, const char*, long);
VALUE rb_str_buf_cat2(VALUE, const char*);
VALUE rb_str_buf_cat_ascii(VALUE, const char*);
VALUE rb_obj_as_string(VALUE);
VALUE rb_check_string_type(VALUE);
void rb_must_asciicompat(VALUE);
VALUE rb_str_dup(VALUE);
VALUE rb_str_resurrect(VALUE str);
VALUE rb_str_locktmp(VALUE);
VALUE rb_str_unlocktmp(VALUE);
VALUE rb_str_dup_frozen(VALUE);
#define rb_str_dup_frozen rb_str_new_frozen
VALUE rb_str_plus(VALUE, VALUE);
VALUE rb_str_times(VALUE, VALUE);
long rb_str_sublen(VALUE, long);
VALUE rb_str_substr(VALUE, long, long);
VALUE rb_str_subseq(VALUE, long, long);
char *rb_str_subpos(VALUE, long, long*);
void rb_str_modify(VALUE);
void rb_str_modify_expand(VALUE, long);
VALUE rb_str_freeze(VALUE);
void rb_str_set_len(VALUE, long);
VALUE rb_str_resize(VALUE, long);
VALUE rb_str_cat(VALUE, const char*, long);
VALUE rb_str_cat_cstr(VALUE, const char*);
VALUE rb_str_cat2(VALUE, const char*);
VALUE rb_str_append(VALUE, VALUE);
VALUE rb_str_concat(VALUE, VALUE);
st_index_t rb_memhash(const void *ptr, long len);
st_index_t rb_hash_start(st_index_t);
st_index_t rb_hash_uint32(st_index_t, uint32_t);
st_index_t rb_hash_uint(st_index_t, st_index_t);
st_index_t rb_hash_end(st_index_t);
#define rb_hash_uint32(h, i) st_hash_uint32((h), (i))
#define rb_hash_uint(h, i) st_hash_uint((h), (i))
#define rb_hash_end(h) st_hash_end(h)
st_index_t rb_str_hash(VALUE);
int rb_str_hash_cmp(VALUE,VALUE);
int rb_str_comparable(VALUE, VALUE);
int rb_str_cmp(VALUE, VALUE);
VALUE rb_str_equal(VALUE str1, VALUE str2);
VALUE rb_str_drop_bytes(VALUE, long);
void rb_str_update(VALUE, long, long, VALUE);
VALUE rb_str_replace(VALUE, VALUE);
VALUE rb_str_inspect(VALUE);
VALUE rb_str_dump(VALUE);
VALUE rb_str_split(VALUE, const char*);
DEPRECATED(void rb_str_associate(VALUE, VALUE));
DEPRECATED(VALUE rb_str_associated(VALUE));
void rb_str_setter(VALUE, ID, VALUE*);
VALUE rb_str_intern(VALUE);
VALUE rb_sym_to_s(VALUE);
long rb_str_strlen(VALUE);
VALUE rb_str_length(VALUE);
long rb_str_offset(VALUE, long);
size_t rb_str_capacity(VALUE);
VALUE rb_str_ellipsize(VALUE, long);
VALUE rb_str_scrub(VALUE, VALUE);

#if defined(__GNUC__) && !defined(__PCC__)
#define rb_str_new(str, len) __extension__ (	\
{						\
    (__builtin_constant_p(str) && __builtin_constant_p(len)) ? \
	rb_str_new_static((str), (len)) : \
	rb_str_new((str), (len));	  \
})
#define rb_str_new_cstr(str) __extension__ (	\
{						\
    (__builtin_constant_p(str)) ?		\
	rb_str_new_static((str), (long)strlen(str)) : \
	rb_str_new_cstr(str);			\
})
#define rb_usascii_str_new(str, len) __extension__ ( \
{						\
    (__builtin_constant_p(str) && __builtin_constant_p(len)) ? \
	rb_usascii_str_new_static((str), (len)) : \
	rb_usascii_str_new((str), (len));	  \
})
#define rb_utf8_str_new(str, len) __extension__ ( \
{						\
    (__builtin_constant_p(str) && __builtin_constant_p(len)) ? \
	rb_utf8_str_new_static((str), (len)) : \
	rb_utf8_str_new((str), (len));	  \
})
#define rb_tainted_str_new_cstr(str) __extension__ ( \
{					       \
    (__builtin_constant_p(str)) ?	       \
	rb_tainted_str_new((str), (long)strlen(str)) : \
	rb_tainted_str_new_cstr(str);	       \
})
#define rb_usascii_str_new_cstr(str) __extension__ ( \
{					       \
    (__builtin_constant_p(str)) ?	       \
	rb_usascii_str_new_static((str), (long)strlen(str)) : \
	rb_usascii_str_new_cstr(str);	       \
})
#define rb_utf8_str_new_cstr(str) __extension__ ( \
{						\
    (__builtin_constant_p(str)) ?		\
	rb_utf8_str_new_static((str), (long)strlen(str)) : \
	rb_utf8_str_new_cstr(str);		\
})
#define rb_str_new_literal(str) rb_str_new_static((str), sizeof(str)-1)
#define rb_usascii_str_new_literal(str) rb_usascii_str_new_static((str), sizeof(str)-1)
#define rb_utf8_str_new_literal(str) rb_utf8_str_new_static((str), sizeof(str)-1)
#define rb_enc_str_new_literal(str, enc) rb_enc_str_new_static((str), sizeof(str)-1, (enc))
#define rb_external_str_new_cstr(str) __extension__ ( \
{						\
    (__builtin_constant_p(str)) ?		\
	rb_external_str_new((str), (long)strlen(str)) : \
	rb_external_str_new_cstr(str);		\
})
#define rb_locale_str_new_cstr(str) __extension__ ( \
{					       \
    (__builtin_constant_p(str)) ?	       \
	rb_locale_str_new((str), (long)strlen(str)) :  \
	rb_locale_str_new_cstr(str);	       \
})
#define rb_str_buf_new_cstr(str) __extension__ ( \
{						\
    (__builtin_constant_p(str)) ?		\
	rb_str_buf_cat(rb_str_buf_new((long)strlen(str)), \
		       (str), (long)strlen(str)) : \
	rb_str_buf_new_cstr(str);		\
})
#define rb_str_cat_cstr(str, ptr) __extension__ ( \
{						\
    (__builtin_constant_p(ptr)) ?	        \
	rb_str_cat((str), (ptr), (long)strlen(ptr)) : \
	rb_str_cat_cstr((str), (ptr));		\
})
#define rb_exc_new_cstr(klass, ptr) __extension__ ( \
{						\
    (__builtin_constant_p(ptr)) ?	        \
	rb_exc_new((klass), (ptr), (long)strlen(ptr)) : \
	rb_exc_new_cstr((klass), (ptr));		\
})
#endif
#define rb_str_new2 rb_str_new_cstr
#define rb_str_new3 rb_str_new_shared
#define rb_str_new4 rb_str_new_frozen
#define rb_str_new5 rb_str_new_with_class
#define rb_tainted_str_new2 rb_tainted_str_new_cstr
#define rb_str_buf_new2 rb_str_buf_new_cstr
#define rb_usascii_str_new2 rb_usascii_str_new_cstr
#define rb_str_buf_cat rb_str_cat
#define rb_str_buf_cat2 rb_str_cat_cstr
#define rb_str_cat2 rb_str_cat_cstr
/* struct.c */
VALUE rb_struct_new(VALUE, ...);
VALUE rb_struct_define(const char*, ...);
VALUE rb_struct_define_under(VALUE, const char*, ...);
VALUE rb_struct_alloc(VALUE, VALUE);
VALUE rb_struct_initialize(VALUE, VALUE);
VALUE rb_struct_aref(VALUE, VALUE);
VALUE rb_struct_aset(VALUE, VALUE, VALUE);
VALUE rb_struct_getmember(VALUE, ID);
VALUE rb_struct_s_members(VALUE);
VALUE rb_struct_members(VALUE);
VALUE rb_struct_alloc_noinit(VALUE);
VALUE rb_struct_define_without_accessor(const char *, VALUE, rb_alloc_func_t, ...);
VALUE rb_struct_define_without_accessor_under(VALUE outer, const char *class_name, VALUE super, rb_alloc_func_t alloc, ...);

/* thread.c */
typedef void rb_unblock_function_t(void *);
typedef VALUE rb_blocking_function_t(void *);
void rb_thread_check_ints(void);
int rb_thread_interrupted(VALUE thval);

#define RUBY_UBF_IO ((rb_unblock_function_t *)-1)
#define RUBY_UBF_PROCESS ((rb_unblock_function_t *)-1)
VALUE rb_mutex_new(void);
VALUE rb_mutex_locked_p(VALUE mutex);
VALUE rb_mutex_trylock(VALUE mutex);
VALUE rb_mutex_lock(VALUE mutex);
VALUE rb_mutex_unlock(VALUE mutex);
VALUE rb_mutex_sleep(VALUE self, VALUE timeout);
VALUE rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg);
/* time.c */
VALUE rb_time_new(time_t, long);
VALUE rb_time_nano_new(time_t, long);
VALUE rb_time_num_new(VALUE, VALUE);
struct timeval rb_time_interval(VALUE num);
struct timeval rb_time_timeval(VALUE time);
struct timespec rb_time_timespec(VALUE time);
/* variable.c */
VALUE rb_mod_name(VALUE);
VALUE rb_class_path(VALUE);
VALUE rb_class_path_cached(VALUE);
void rb_set_class_path(VALUE, VALUE, const char*);
void rb_set_class_path_string(VALUE, VALUE, VALUE);
VALUE rb_path_to_class(VALUE);
VALUE rb_path2class(const char*);
void rb_name_class(VALUE, ID);
VALUE rb_class_name(VALUE);
void rb_autoload(VALUE, ID, const char*);
VALUE rb_autoload_load(VALUE, ID);
VALUE rb_autoload_p(VALUE, ID);
VALUE rb_f_trace_var(int, const VALUE*);
VALUE rb_f_untrace_var(int, const VALUE*);
VALUE rb_f_global_variables(void);
void rb_alias_variable(ID, ID);
struct st_table* rb_generic_ivar_table(VALUE);
void rb_copy_generic_ivar(VALUE,VALUE);
void rb_free_generic_ivar(VALUE);
VALUE rb_ivar_get(VALUE, ID);
VALUE rb_ivar_set(VALUE, ID, VALUE);
VALUE rb_ivar_defined(VALUE, ID);
void rb_ivar_foreach(VALUE, int (*)(ANYARGS), st_data_t);
st_index_t rb_ivar_count(VALUE);
VALUE rb_attr_get(VALUE, ID);
VALUE rb_obj_instance_variables(VALUE);
VALUE rb_obj_remove_instance_variable(VALUE, VALUE);
void *rb_mod_const_at(VALUE, void*);
void *rb_mod_const_of(VALUE, void*);
VALUE rb_const_list(void*);
VALUE rb_mod_constants(int, const VALUE *, VALUE);
VALUE rb_mod_remove_const(VALUE, VALUE);
int rb_const_defined(VALUE, ID);
int rb_const_defined_at(VALUE, ID);
int rb_const_defined_from(VALUE, ID);
VALUE rb_const_get(VALUE, ID);
VALUE rb_const_get_at(VALUE, ID);
VALUE rb_const_get_from(VALUE, ID);
void rb_const_set(VALUE, ID, VALUE);
VALUE rb_const_remove(VALUE, ID);
VALUE rb_mod_const_missing(VALUE,VALUE);
VALUE rb_cvar_defined(VALUE, ID);
void rb_cvar_set(VALUE, ID, VALUE);
VALUE rb_cvar_get(VALUE, ID);
void rb_cv_set(VALUE, const char*, VALUE);
VALUE rb_cv_get(VALUE, const char*);
void rb_define_class_variable(VALUE, const char*, VALUE);
VALUE rb_mod_class_variables(int, const VALUE*, VALUE);
VALUE rb_mod_remove_cvar(VALUE, VALUE);

ID rb_frame_callee(void);
VALUE rb_str_succ(VALUE);
VALUE rb_time_succ(VALUE);
int rb_frame_method_id_and_class(ID *idp, VALUE *klassp);
VALUE rb_make_backtrace(void);
VALUE rb_make_exception(int, const VALUE*);

/* deprecated */
DEPRECATED(void rb_frame_pop(void));


RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* RUBY_INTERN_H */
include/ruby-2.2.0/ruby/encoding.h000064400000034224150402105670012532 0ustar00/**********************************************************************

  encoding.h -

  $Author: matz $
  created at: Thu May 24 11:49:41 JST 2007

  Copyright (C) 2007 Yukihiro Matsumoto

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

#ifndef RUBY_ENCODING_H
#define RUBY_ENCODING_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

#include <stdarg.h>
#include "ruby/oniguruma.h"

RUBY_SYMBOL_EXPORT_BEGIN

#define ENCODING_INLINE_MAX 127
#define ENCODING_SHIFT (FL_USHIFT+10)
#define ENCODING_MASK (((VALUE)ENCODING_INLINE_MAX)<<ENCODING_SHIFT) /* FL_USER10|FL_USER11|FL_USER12|FL_USER13|FL_USER14|FL_USER15|FL_USER16 */

#define ENCODING_SET_INLINED(obj,i) do {\
    RBASIC(obj)->flags &= ~ENCODING_MASK;\
    RBASIC(obj)->flags |= (VALUE)(i) << ENCODING_SHIFT;\
} while (0)
#define ENCODING_SET(obj,i) rb_enc_set_index((obj), (i))

#define ENCODING_GET_INLINED(obj) (int)((RBASIC(obj)->flags & ENCODING_MASK)>>ENCODING_SHIFT)
#define ENCODING_GET(obj) \
    (ENCODING_GET_INLINED(obj) != ENCODING_INLINE_MAX ? \
     ENCODING_GET_INLINED(obj) : \
     rb_enc_get_index(obj))

#define ENCODING_IS_ASCII8BIT(obj) (ENCODING_GET_INLINED(obj) == 0)

#define ENCODING_MAXNAMELEN 42

#define ENC_CODERANGE_MASK	((int)(FL_USER8|FL_USER9))
#define ENC_CODERANGE_UNKNOWN	0
#define ENC_CODERANGE_7BIT	((int)FL_USER8)
#define ENC_CODERANGE_VALID	((int)FL_USER9)
#define ENC_CODERANGE_BROKEN	((int)(FL_USER8|FL_USER9))
#define ENC_CODERANGE(obj) ((int)RBASIC(obj)->flags & ENC_CODERANGE_MASK)
#define ENC_CODERANGE_ASCIIONLY(obj) (ENC_CODERANGE(obj) == ENC_CODERANGE_7BIT)
#define ENC_CODERANGE_SET(obj,cr) (RBASIC(obj)->flags = \
				   (RBASIC(obj)->flags & ~ENC_CODERANGE_MASK) | (cr))
#define ENC_CODERANGE_CLEAR(obj) ENC_CODERANGE_SET((obj),0)

/* assumed ASCII compatibility */
#define ENC_CODERANGE_AND(a, b) \
    ((a) == ENC_CODERANGE_7BIT ? (b) : \
     (a) == ENC_CODERANGE_VALID ? ((b) == ENC_CODERANGE_7BIT ? ENC_CODERANGE_VALID : (b)) : \
     ENC_CODERANGE_UNKNOWN)

#define ENCODING_CODERANGE_SET(obj, encindex, cr) \
    do { \
        VALUE rb_encoding_coderange_obj = (obj); \
        ENCODING_SET(rb_encoding_coderange_obj, (encindex)); \
        ENC_CODERANGE_SET(rb_encoding_coderange_obj, (cr)); \
    } while (0)

typedef const OnigEncodingType rb_encoding;

int rb_char_to_option_kcode(int c, int *option, int *kcode);

int rb_enc_replicate(const char *, rb_encoding *);
int rb_define_dummy_encoding(const char *);
int rb_enc_dummy_p(rb_encoding *enc);
int rb_enc_to_index(rb_encoding *enc);
int rb_enc_get_index(VALUE obj);
void rb_enc_set_index(VALUE obj, int encindex);
int rb_enc_find_index(const char *name);
int rb_to_encoding_index(VALUE);
rb_encoding *rb_to_encoding(VALUE);
rb_encoding *rb_find_encoding(VALUE);
rb_encoding *rb_enc_get(VALUE);
rb_encoding *rb_enc_compatible(VALUE,VALUE);
rb_encoding *rb_enc_check(VALUE,VALUE);
VALUE rb_enc_associate_index(VALUE, int);
VALUE rb_enc_associate(VALUE, rb_encoding*);
void rb_enc_copy(VALUE dst, VALUE src);

VALUE rb_enc_str_new(const char*, long, rb_encoding*);
VALUE rb_enc_str_new_cstr(const char*, rb_encoding*);
VALUE rb_enc_str_new_static(const char*, long, rb_encoding*);
VALUE rb_enc_reg_new(const char*, long, rb_encoding*, int);
PRINTF_ARGS(VALUE rb_enc_sprintf(rb_encoding *, const char*, ...), 2, 3);
VALUE rb_enc_vsprintf(rb_encoding *, const char*, va_list);
long rb_enc_strlen(const char*, const char*, rb_encoding*);
char* rb_enc_nth(const char*, const char*, long, rb_encoding*);
VALUE rb_obj_encoding(VALUE);
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc);
VALUE rb_enc_uint_chr(unsigned int code, rb_encoding *enc);

VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *);
VALUE rb_str_export_to_enc(VALUE, rb_encoding *);
VALUE rb_str_conv_enc(VALUE str, rb_encoding *from, rb_encoding *to);
VALUE rb_str_conv_enc_opts(VALUE str, rb_encoding *from, rb_encoding *to, int ecflags, VALUE ecopts);

#if defined(__GNUC__) && !defined(__PCC__)
#define rb_enc_str_new(str, len, enc) __extension__ ( \
{					       \
    (__builtin_constant_p(str) && __builtin_constant_p(len)) ? \
	rb_enc_str_new_static((str), (len), (enc)) : \
	rb_enc_str_new((str), (len), (enc)); \
})
#define rb_enc_str_new_cstr(str, enc) __extension__ (	\
{					       \
    (__builtin_constant_p(str)) ?	       \
	rb_enc_str_new_static((str), (long)strlen(str), (enc)) : \
	rb_enc_str_new_cstr((str), (enc)); \
})
#endif

PRINTF_ARGS(NORETURN(void rb_enc_raise(rb_encoding *, VALUE, const char*, ...)), 3, 4);

/* index -> rb_encoding */
rb_encoding *rb_enc_from_index(int idx);

/* name -> rb_encoding */
rb_encoding *rb_enc_find(const char *name);

/* rb_encoding * -> name */
#define rb_enc_name(enc) (enc)->name

/* rb_encoding * -> minlen/maxlen */
#define rb_enc_mbminlen(enc) (enc)->min_enc_len
#define rb_enc_mbmaxlen(enc) (enc)->max_enc_len

/* -> mbclen (no error notification: 0 < ret <= e-p, no exception) */
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc);

/* -> mbclen (only for valid encoding) */
int rb_enc_fast_mbclen(const char *p, const char *e, rb_encoding *enc);

/* -> chlen, invalid or needmore */
int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc);
#define MBCLEN_CHARFOUND_P(ret)     ONIGENC_MBCLEN_CHARFOUND_P(ret)
#define MBCLEN_CHARFOUND_LEN(ret)     ONIGENC_MBCLEN_CHARFOUND_LEN(ret)
#define MBCLEN_INVALID_P(ret)       ONIGENC_MBCLEN_INVALID_P(ret)
#define MBCLEN_NEEDMORE_P(ret)      ONIGENC_MBCLEN_NEEDMORE_P(ret)
#define MBCLEN_NEEDMORE_LEN(ret)      ONIGENC_MBCLEN_NEEDMORE_LEN(ret)

/* -> 0x00..0x7f, -1 */
int rb_enc_ascget(const char *p, const char *e, int *len, rb_encoding *enc);


/* -> code (and len) or raise exception */
unsigned int rb_enc_codepoint_len(const char *p, const char *e, int *len, rb_encoding *enc);

/* prototype for obsolete function */
unsigned int rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc);
/* overriding macro */
#define rb_enc_codepoint(p,e,enc) rb_enc_codepoint_len((p),(e),0,(enc))
#define rb_enc_mbc_to_codepoint(p, e, enc) ONIGENC_MBC_TO_CODE((enc),(UChar*)(p),(UChar*)(e))

/* -> codelen>0 or raise exception */
int rb_enc_codelen(int code, rb_encoding *enc);
/* -> 0 for invalid codepoint */
int rb_enc_code_to_mbclen(int code, rb_encoding *enc);
#define rb_enc_code_to_mbclen(c, enc) ONIGENC_CODE_TO_MBCLEN((enc), (c));

/* code,ptr,encoding -> write buf */
#define rb_enc_mbcput(c,buf,enc) ONIGENC_CODE_TO_MBC((enc),(c),(UChar*)(buf))

/* start, ptr, end, encoding -> prev_char */
#define rb_enc_prev_char(s,p,e,enc) ((char *)onigenc_get_prev_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))
/* start, ptr, end, encoding -> next_char */
#define rb_enc_left_char_head(s,p,e,enc) ((char *)onigenc_get_left_adjust_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))
#define rb_enc_right_char_head(s,p,e,enc) ((char *)onigenc_get_right_adjust_char_head((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e)))
#define rb_enc_step_back(s,p,e,n,enc) ((char *)onigenc_step_back((enc),(UChar*)(s),(UChar*)(p),(UChar*)(e),(int)(n)))

/* ptr, ptr, encoding -> newline_or_not */
#define rb_enc_is_newline(p,end,enc)  ONIGENC_IS_MBC_NEWLINE((enc),(UChar*)(p),(UChar*)(end))

#define rb_enc_isctype(c,t,enc) ONIGENC_IS_CODE_CTYPE((enc),(c),(t))
#define rb_enc_isascii(c,enc) ONIGENC_IS_CODE_ASCII(c)
#define rb_enc_isalpha(c,enc) ONIGENC_IS_CODE_ALPHA((enc),(c))
#define rb_enc_islower(c,enc) ONIGENC_IS_CODE_LOWER((enc),(c))
#define rb_enc_isupper(c,enc) ONIGENC_IS_CODE_UPPER((enc),(c))
#define rb_enc_ispunct(c,enc) ONIGENC_IS_CODE_PUNCT((enc),(c))
#define rb_enc_isalnum(c,enc) ONIGENC_IS_CODE_ALNUM((enc),(c))
#define rb_enc_isprint(c,enc) ONIGENC_IS_CODE_PRINT((enc),(c))
#define rb_enc_isspace(c,enc) ONIGENC_IS_CODE_SPACE((enc),(c))
#define rb_enc_isdigit(c,enc) ONIGENC_IS_CODE_DIGIT((enc),(c))

#define rb_enc_asciicompat(enc) (rb_enc_mbminlen(enc)==1 && !rb_enc_dummy_p(enc))

int rb_enc_casefold(char *to, const char *p, const char *e, rb_encoding *enc);
int rb_enc_toupper(int c, rb_encoding *enc);
int rb_enc_tolower(int c, rb_encoding *enc);
ID rb_intern3(const char*, long, rb_encoding*);
ID rb_interned_id_p(const char *, long, rb_encoding *);
int rb_enc_symname_p(const char*, rb_encoding*);
int rb_enc_symname2_p(const char*, long, rb_encoding*);
int rb_enc_str_coderange(VALUE);
long rb_str_coderange_scan_restartable(const char*, const char*, rb_encoding*, int*);
int rb_enc_str_asciionly_p(VALUE);
#define rb_enc_str_asciicompat_p(str) rb_enc_asciicompat(rb_enc_get(str))
VALUE rb_enc_from_encoding(rb_encoding *enc);
int rb_enc_unicode_p(rb_encoding *enc);
rb_encoding *rb_ascii8bit_encoding(void);
rb_encoding *rb_utf8_encoding(void);
rb_encoding *rb_usascii_encoding(void);
rb_encoding *rb_locale_encoding(void);
rb_encoding *rb_filesystem_encoding(void);
rb_encoding *rb_default_external_encoding(void);
rb_encoding *rb_default_internal_encoding(void);
#ifndef rb_ascii8bit_encindex
int rb_ascii8bit_encindex(void);
#endif
#ifndef rb_utf8_encindex
int rb_utf8_encindex(void);
#endif
#ifndef rb_usascii_encindex
int rb_usascii_encindex(void);
#endif
int rb_locale_encindex(void);
int rb_filesystem_encindex(void);
VALUE rb_enc_default_external(void);
VALUE rb_enc_default_internal(void);
void rb_enc_set_default_external(VALUE encoding);
void rb_enc_set_default_internal(VALUE encoding);
VALUE rb_locale_charmap(VALUE klass);
long rb_memsearch(const void*,long,const void*,long,rb_encoding*);
char *rb_enc_path_next(const char *,const char *,rb_encoding*);
char *rb_enc_path_skip_prefix(const char *,const char *,rb_encoding*);
char *rb_enc_path_last_separator(const char *,const char *,rb_encoding*);
char *rb_enc_path_end(const char *,const char *,rb_encoding*);
const char *ruby_enc_find_basename(const char *name, long *baselen, long *alllen, rb_encoding *enc);
const char *ruby_enc_find_extname(const char *name, long *len, rb_encoding *enc);
ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc);
VALUE rb_check_symbol_cstr(const char *ptr, long len, rb_encoding *enc);

RUBY_EXTERN VALUE rb_cEncoding;

/* econv stuff */

typedef enum {
    econv_invalid_byte_sequence,
    econv_undefined_conversion,
    econv_destination_buffer_full,
    econv_source_buffer_empty,
    econv_finished,
    econv_after_output,
    econv_incomplete_input
} rb_econv_result_t;

typedef struct rb_econv_t rb_econv_t;

VALUE rb_str_encode(VALUE str, VALUE to, int ecflags, VALUE ecopts);
int rb_econv_has_convpath_p(const char* from_encoding, const char* to_encoding);

int rb_econv_prepare_options(VALUE opthash, VALUE *ecopts, int ecflags);
int rb_econv_prepare_opts(VALUE opthash, VALUE *ecopts);

rb_econv_t *rb_econv_open(const char *source_encoding, const char *destination_encoding, int ecflags);
rb_econv_t *rb_econv_open_opts(const char *source_encoding, const char *destination_encoding, int ecflags, VALUE ecopts);

rb_econv_result_t rb_econv_convert(rb_econv_t *ec,
    const unsigned char **source_buffer_ptr, const unsigned char *source_buffer_end,
    unsigned char **destination_buffer_ptr, unsigned char *destination_buffer_end,
    int flags);
void rb_econv_close(rb_econv_t *ec);

/* result: 0:success -1:failure */
int rb_econv_set_replacement(rb_econv_t *ec, const unsigned char *str, size_t len, const char *encname);

/* result: 0:success -1:failure */
int rb_econv_decorate_at_first(rb_econv_t *ec, const char *decorator_name);
int rb_econv_decorate_at_last(rb_econv_t *ec, const char *decorator_name);

VALUE rb_econv_open_exc(const char *senc, const char *denc, int ecflags);

/* result: 0:success -1:failure */
int rb_econv_insert_output(rb_econv_t *ec,
    const unsigned char *str, size_t len, const char *str_encoding);

/* encoding that rb_econv_insert_output doesn't need conversion */
const char *rb_econv_encoding_to_insert_output(rb_econv_t *ec);

/* raise an error if the last rb_econv_convert is error */
void rb_econv_check_error(rb_econv_t *ec);

/* returns an exception object or nil */
VALUE rb_econv_make_exception(rb_econv_t *ec);

int rb_econv_putbackable(rb_econv_t *ec);
void rb_econv_putback(rb_econv_t *ec, unsigned char *p, int n);

/* returns the corresponding ASCII compatible encoding for encname,
 * or NULL if encname is not ASCII incompatible encoding. */
const char *rb_econv_asciicompat_encoding(const char *encname);

VALUE rb_econv_str_convert(rb_econv_t *ec, VALUE src, int flags);
VALUE rb_econv_substr_convert(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, int flags);
VALUE rb_econv_str_append(rb_econv_t *ec, VALUE src, VALUE dst, int flags);
VALUE rb_econv_substr_append(rb_econv_t *ec, VALUE src, long byteoff, long bytesize, VALUE dst, int flags);
VALUE rb_econv_append(rb_econv_t *ec, const char *bytesrc, long bytesize, VALUE dst, int flags);

void rb_econv_binmode(rb_econv_t *ec);

/* flags for rb_econv_open */

#define ECONV_ERROR_HANDLER_MASK                0x000000ff

#define ECONV_INVALID_MASK                      0x0000000f
#define ECONV_INVALID_REPLACE                   0x00000002

#define ECONV_UNDEF_MASK                        0x000000f0
#define ECONV_UNDEF_REPLACE                     0x00000020
#define ECONV_UNDEF_HEX_CHARREF                 0x00000030

#define ECONV_DECORATOR_MASK                    0x0000ff00
#define ECONV_NEWLINE_DECORATOR_MASK            0x00003f00
#define ECONV_NEWLINE_DECORATOR_READ_MASK       0x00000f00
#define ECONV_NEWLINE_DECORATOR_WRITE_MASK      0x00003000

#define ECONV_UNIVERSAL_NEWLINE_DECORATOR       0x00000100
#define ECONV_CRLF_NEWLINE_DECORATOR            0x00001000
#define ECONV_CR_NEWLINE_DECORATOR              0x00002000
#define ECONV_XML_TEXT_DECORATOR                0x00004000
#define ECONV_XML_ATTR_CONTENT_DECORATOR        0x00008000

#define ECONV_STATEFUL_DECORATOR_MASK           0x00f00000
#define ECONV_XML_ATTR_QUOTE_DECORATOR          0x00100000

#if defined(RUBY_TEST_CRLF_ENVIRONMENT) || defined(_WIN32)
#define ECONV_DEFAULT_NEWLINE_DECORATOR ECONV_CRLF_NEWLINE_DECORATOR
#else
#define ECONV_DEFAULT_NEWLINE_DECORATOR 0
#endif

/* end of flags for rb_econv_open */

/* flags for rb_econv_convert */
#define ECONV_PARTIAL_INPUT                     0x00010000
#define ECONV_AFTER_OUTPUT                      0x00020000
/* end of flags for rb_econv_convert */

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* RUBY_ENCODING_H */
include/ruby-2.2.0/ruby/defines.h000064400000013077150402105670012364 0ustar00/************************************************

  defines.h -

  $Author: hsbt $
  created at: Wed May 18 00:21:44 JST 1994

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

#ifndef RUBY_DEFINES_H
#define RUBY_DEFINES_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

#include "ruby/config.h"
#ifdef RUBY_EXTCONF_H
#include RUBY_EXTCONF_H
#endif

/* AC_INCLUDES_DEFAULT */
#include <stdio.h>
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
#  include <stdlib.h>
# endif
#endif
#ifdef HAVE_STRING_H
# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
#  include <memory.h>
# endif
# include <string.h>
#endif
#ifdef HAVE_STRINGS_H
# include <strings.h>
#endif
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif

#ifdef HAVE_SYS_SELECT_H
# include <sys/select.h>
#endif

#if defined HAVE_SETJMPEX_H && defined HAVE__SETJMPEX
#include <setjmpex.h>
#endif

#include "ruby/missing.h"

#define RUBY

#ifdef __cplusplus
# ifndef  HAVE_PROTOTYPES
#  define HAVE_PROTOTYPES 1
# endif
# ifndef  HAVE_STDARG_PROTOTYPES
#  define HAVE_STDARG_PROTOTYPES 1
# endif
#endif

#undef _
#ifdef HAVE_PROTOTYPES
# define _(args) args
#else
# define _(args) ()
#endif

#undef __
#ifdef HAVE_STDARG_PROTOTYPES
# define __(args) args
#else
# define __(args) ()
#endif

#ifdef __cplusplus
#define ANYARGS ...
#else
#define ANYARGS
#endif

#ifndef RUBY_SYMBOL_EXPORT_BEGIN
# define RUBY_SYMBOL_EXPORT_BEGIN /* begin */
# define RUBY_SYMBOL_EXPORT_END   /* end */
#endif

RUBY_SYMBOL_EXPORT_BEGIN

#define xmalloc ruby_xmalloc
#define xmalloc2 ruby_xmalloc2
#define xcalloc ruby_xcalloc
#define xrealloc ruby_xrealloc
#define xrealloc2 ruby_xrealloc2
#define xfree ruby_xfree

#if defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 3
# define RUBY_ATTR_ALLOC_SIZE(params) __attribute__ ((__alloc_size__ params))
#else
# define RUBY_ATTR_ALLOC_SIZE(params)
#endif

void *xmalloc(size_t) RUBY_ATTR_ALLOC_SIZE((1));
void *xmalloc2(size_t,size_t) RUBY_ATTR_ALLOC_SIZE((1,2));
void *xcalloc(size_t,size_t) RUBY_ATTR_ALLOC_SIZE((1,2));
void *xrealloc(void*,size_t) RUBY_ATTR_ALLOC_SIZE((2));
void *xrealloc2(void*,size_t,size_t) RUBY_ATTR_ALLOC_SIZE((2,3));
void xfree(void*);

#define STRINGIZE(expr) STRINGIZE0(expr)
#ifndef STRINGIZE0
#define STRINGIZE0(expr) #expr
#endif

#ifdef HAVE_LONG_LONG
# define HAVE_TRUE_LONG_LONG 1
#endif

#if SIZEOF_LONG_LONG > 0
# define LONG_LONG long long
#elif SIZEOF___INT64 > 0
# define HAVE_LONG_LONG 1
# define LONG_LONG __int64
# undef SIZEOF_LONG_LONG
# define SIZEOF_LONG_LONG SIZEOF___INT64
#endif

#ifdef __CYGWIN__
#undef _WIN32
#endif

#if defined(_WIN32) || defined(__EMX__)
#define DOSISH 1
# define DOSISH_DRIVE_LETTER
#endif

#ifdef AC_APPLE_UNIVERSAL_BUILD
#undef WORDS_BIGENDIAN
#ifdef __BIG_ENDIAN__
#define WORDS_BIGENDIAN
#endif
#endif

#ifdef _WIN32
#include "ruby/win32.h"
#endif

#if defined(__BEOS__) && !defined(__HAIKU__) && !defined(BONE)
#include <net/socket.h> /* intern.h needs fd_set definition */
#endif

#ifdef RUBY_EXPORT
#undef RUBY_EXTERN

#ifndef FALSE
# define FALSE 0
#elif FALSE
# error FALSE must be false
#endif
#ifndef TRUE
# define TRUE 1
#elif !TRUE
# error TRUE must be true
#endif

#endif

#ifndef RUBY_FUNC_EXPORTED
#define RUBY_FUNC_EXPORTED
#endif

#ifndef RUBY_EXTERN
#define RUBY_EXTERN extern
#endif

#ifndef EXTERN
#define EXTERN RUBY_EXTERN	/* deprecated */
#endif

#ifndef RUBY_MBCHAR_MAXSIZE
#define RUBY_MBCHAR_MAXSIZE INT_MAX
        /* MB_CUR_MAX will not work well in C locale */
#endif

#if defined(__sparc)
void rb_sparc_flush_register_windows(void);
#  define FLUSH_REGISTER_WINDOWS rb_sparc_flush_register_windows()
#elif defined(__ia64)
void *rb_ia64_bsp(void);
void rb_ia64_flushrs(void);
#  define FLUSH_REGISTER_WINDOWS rb_ia64_flushrs()
#else
#  define FLUSH_REGISTER_WINDOWS ((void)0)
#endif

#if defined(DOSISH)
#define PATH_SEP ";"
#else
#define PATH_SEP ":"
#endif
#define PATH_SEP_CHAR PATH_SEP[0]

#define PATH_ENV "PATH"

#if defined(DOSISH) && !defined(__EMX__)
#define ENV_IGNORECASE
#endif

#ifndef CASEFOLD_FILESYSTEM
# if defined DOSISH
#   define CASEFOLD_FILESYSTEM 1
# else
#   define CASEFOLD_FILESYSTEM 0
# endif
#endif

#ifndef DLEXT_MAXLEN
#define DLEXT_MAXLEN 4
#endif

#ifndef RUBY_PLATFORM
#define RUBY_PLATFORM "unknown-unknown"
#endif

#ifndef FUNC_MINIMIZED
#define FUNC_MINIMIZED(x) x
#endif
#ifndef RUBY_ALIAS_FUNCTION_TYPE
#define RUBY_ALIAS_FUNCTION_TYPE(type, prot, name, args) \
    FUNC_MINIMIZED(type prot) {return name args;}
#endif
#ifndef RUBY_ALIAS_FUNCTION_VOID
#define RUBY_ALIAS_FUNCTION_VOID(prot, name, args) \
    void prot {name args;}
#endif
#ifndef RUBY_ALIAS_FUNCTION
#define RUBY_ALIAS_FUNCTION(prot, name, args) \
    RUBY_ALIAS_FUNCTION_TYPE(VALUE, prot, name, args)
#endif

#ifndef UNALIGNED_WORD_ACCESS
# if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
     defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || \
     defined(__powerpc64__) || \
     defined(__mc68020__)
#   define UNALIGNED_WORD_ACCESS 1
# else
#   define UNALIGNED_WORD_ACCESS 0
# endif
#endif
#ifndef PACKED_STRUCT
# define PACKED_STRUCT(x) x
#endif
#ifndef PACKED_STRUCT_UNALIGNED
# if UNALIGNED_WORD_ACCESS
#   define PACKED_STRUCT_UNALIGNED(x) PACKED_STRUCT(x)
# else
#   define PACKED_STRUCT_UNALIGNED(x) x
# endif
#endif

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* RUBY_DEFINES_H */
include/ruby-2.2.0/ruby/io.h000064400000011667150402105670011361 0ustar00/**********************************************************************

  rubyio.h -

  $Author: akr $
  created at: Fri Nov 12 16:47:09 JST 1993

  Copyright (C) 1993-2007 Yukihiro Matsumoto

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

#ifndef RUBY_IO_H
#define RUBY_IO_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

#include <stdio.h>
#include <errno.h>
#include "ruby/encoding.h"

#if defined(HAVE_STDIO_EXT_H)
#include <stdio_ext.h>
#endif

#include "ruby/config.h"
#if defined(HAVE_POLL)
#  ifdef _AIX
#    define reqevents events
#    define rtnevents revents
#  endif
#  include <poll.h>
#  ifdef _AIX
#    undef reqevents
#    undef rtnevents
#    undef events
#    undef revents
#  endif
#  define RB_WAITFD_IN  POLLIN
#  define RB_WAITFD_PRI POLLPRI
#  define RB_WAITFD_OUT POLLOUT
#else
#  define RB_WAITFD_IN  0x001
#  define RB_WAITFD_PRI 0x002
#  define RB_WAITFD_OUT 0x004
#endif

RUBY_SYMBOL_EXPORT_BEGIN

PACKED_STRUCT_UNALIGNED(struct rb_io_buffer_t {
    char *ptr;                  /* off + len <= capa */
    int off;
    int len;
    int capa;
});
typedef struct rb_io_buffer_t rb_io_buffer_t;

typedef struct rb_io_t {
    FILE *stdio_file;		/* stdio ptr for read/write if available */
    int fd;                     /* file descriptor */
    int mode;			/* mode flags: FMODE_XXXs */
    rb_pid_t pid;		/* child's pid (for pipes) */
    int lineno;			/* number of lines read */
    VALUE pathv;		/* pathname for file */
    void (*finalize)(struct rb_io_t*,int); /* finalize proc */

    rb_io_buffer_t wbuf, rbuf;

    VALUE tied_io_for_writing;

    /*
     * enc  enc2 read action                      write action
     * NULL NULL force_encoding(default_external) write the byte sequence of str
     * e1   NULL force_encoding(e1)               convert str.encoding to e1
     * e1   e2   convert from e2 to e1            convert str.encoding to e2
     */
    struct rb_io_enc_t {
        rb_encoding *enc;
        rb_encoding *enc2;
        int ecflags;
        VALUE ecopts;
    } encs;

    rb_econv_t *readconv;
    rb_io_buffer_t cbuf;

    rb_econv_t *writeconv;
    VALUE writeconv_asciicompat;
    int writeconv_initialized;
    int writeconv_pre_ecflags;
    VALUE writeconv_pre_ecopts;

    VALUE write_lock;
} rb_io_t;

#define HAVE_RB_IO_T 1

#define FMODE_READABLE              0x00000001
#define FMODE_WRITABLE              0x00000002
#define FMODE_READWRITE             (FMODE_READABLE|FMODE_WRITABLE)
#define FMODE_BINMODE               0x00000004
#define FMODE_SYNC                  0x00000008
#define FMODE_TTY                   0x00000010
#define FMODE_DUPLEX                0x00000020
#define FMODE_APPEND                0x00000040
#define FMODE_CREATE                0x00000080
/* #define FMODE_NOREVLOOKUP        0x00000100 */
#define FMODE_TRUNC                 0x00000800
#define FMODE_TEXTMODE              0x00001000
/* #define FMODE_PREP               0x00010000 */
#define FMODE_SETENC_BY_BOM         0x00100000

#define GetOpenFile(obj,fp) rb_io_check_closed((fp) = RFILE(rb_io_taint_check(obj))->fptr)

#define RB_IO_BUFFER_INIT(buf) do {\
    [<"internal macro RB_IO_BUFFER_INIT() is used">];\
} while (0)

#define MakeOpenFile(obj, fp) do {\
    (fp) = rb_io_make_open_file(obj);\
} while (0)

#define RB_IO_FPTR_NEW(fp) do {\
    [<"internal macro RB_IO_FPTR_NEW() is used">];\
} while (0)

rb_io_t *rb_io_make_open_file(VALUE obj);

FILE *rb_io_stdio_file(rb_io_t *fptr);

FILE *rb_fdopen(int, const char*);
int rb_io_modestr_fmode(const char *modestr);
int rb_io_modestr_oflags(const char *modestr);
int rb_io_oflags_fmode(int oflags);
void rb_io_check_writable(rb_io_t*);
void rb_io_check_readable(rb_io_t*);
void rb_io_check_char_readable(rb_io_t *fptr);
void rb_io_check_byte_readable(rb_io_t *fptr);
int rb_io_fptr_finalize(rb_io_t*);
void rb_io_synchronized(rb_io_t*);
void rb_io_check_initialized(rb_io_t*);
void rb_io_check_closed(rb_io_t*);
VALUE rb_io_get_io(VALUE io);
VALUE rb_io_check_io(VALUE io);
VALUE rb_io_get_write_io(VALUE io);
VALUE rb_io_set_write_io(VALUE io, VALUE w);
int rb_io_wait_readable(int);
int rb_io_wait_writable(int);
int rb_wait_for_single_fd(int fd, int events, struct timeval *tv);
void rb_io_set_nonblock(rb_io_t *fptr);
int rb_io_extract_encoding_option(VALUE opt, rb_encoding **enc_p, rb_encoding **enc2_p, int *fmode_p);
ssize_t rb_io_bufwrite(VALUE io, const void *buf, size_t size);

/* compatibility for ruby 1.8 and older */
#define rb_io_mode_flags(modestr) [<"rb_io_mode_flags() is obsolete; use rb_io_modestr_fmode()">]
#define rb_io_modenum_flags(oflags) [<"rb_io_modenum_flags() is obsolete; use rb_io_oflags_fmode()">]

VALUE rb_io_taint_check(VALUE);
NORETURN(void rb_eof_error(void));

void rb_io_read_check(rb_io_t*);
int rb_io_read_pending(rb_io_t*);

struct stat;
VALUE rb_stat_new(const struct stat *);

/* gc.c */

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* RUBY_IO_H */
include/ruby-2.2.0/ruby/subst.h000064400000000566150402105670012106 0ustar00#ifndef RUBY_SUBST_H
#define RUBY_SUBST_H 1

#undef snprintf
#undef vsnprintf
#define snprintf ruby_snprintf
#define vsnprintf ruby_vsnprintf

#ifdef BROKEN_CLOSE
#undef getpeername
#define getpeername ruby_getpeername
#undef getsockname
#define getsockname ruby_getsockname
#undef shutdown
#define shutdown ruby_shutdown
#undef close
#define close ruby_close
#endif
#endif
include/ruby-2.2.0/ruby/debug.h000064400000010210150402105670012017 0ustar00/**********************************************************************

  ruby/debug.h -

  $Author: ko1 $
  created at: Tue Nov 20 20:35:08 2012

  Copyright (C) 2012 Yukihiro Matsumoto

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

#ifndef RB_DEBUG_H
#define RB_DEBUG_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

RUBY_SYMBOL_EXPORT_BEGIN

/* Note: This file contains experimental APIs. */
/* APIs can be replaced at Ruby 2.0.1 or later */


/* profile frames APIs */
int rb_profile_frames(int start, int limit, VALUE *buff, int *lines);
VALUE rb_profile_frame_path(VALUE frame);
VALUE rb_profile_frame_absolute_path(VALUE frame);
VALUE rb_profile_frame_label(VALUE frame);
VALUE rb_profile_frame_base_label(VALUE frame);
VALUE rb_profile_frame_full_label(VALUE frame);
VALUE rb_profile_frame_first_lineno(VALUE frame);
VALUE rb_profile_frame_classpath(VALUE frame);
VALUE rb_profile_frame_singleton_method_p(VALUE frame);
VALUE rb_profile_frame_method_name(VALUE frame);
VALUE rb_profile_frame_qualified_method_name(VALUE frame);

/* debug inspector APIs */
typedef struct rb_debug_inspector_struct rb_debug_inspector_t;
typedef VALUE (*rb_debug_inspector_func_t)(const rb_debug_inspector_t *, void *);

VALUE rb_debug_inspector_open(rb_debug_inspector_func_t func, void *data);
VALUE rb_debug_inspector_frame_self_get(const rb_debug_inspector_t *dc, long index);
VALUE rb_debug_inspector_frame_class_get(const rb_debug_inspector_t *dc, long index);
VALUE rb_debug_inspector_frame_binding_get(const rb_debug_inspector_t *dc, long index);
VALUE rb_debug_inspector_frame_iseq_get(const rb_debug_inspector_t *dc, long index);
VALUE rb_debug_inspector_backtrace_locations(const rb_debug_inspector_t *dc);

/* Old style set_trace_func APIs */

/* duplicated def of include/ruby/ruby.h */
void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data);
int rb_remove_event_hook(rb_event_hook_func_t func);

int rb_remove_event_hook_with_data(rb_event_hook_func_t func, VALUE data);
void rb_thread_add_event_hook(VALUE thval, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data);
int rb_thread_remove_event_hook(VALUE thval, rb_event_hook_func_t func);
int rb_thread_remove_event_hook_with_data(VALUE thval, rb_event_hook_func_t func, VALUE data);

/* TracePoint APIs */

VALUE rb_tracepoint_new(VALUE target_thread_not_supported_yet, rb_event_flag_t events, void (*func)(VALUE, void *), void *data);
VALUE rb_tracepoint_enable(VALUE tpval);
VALUE rb_tracepoint_disable(VALUE tpval);
VALUE rb_tracepoint_enabled_p(VALUE tpval);

typedef struct rb_trace_arg_struct rb_trace_arg_t;
rb_trace_arg_t *rb_tracearg_from_tracepoint(VALUE tpval);

rb_event_flag_t rb_tracearg_event_flag(rb_trace_arg_t *trace_arg);
VALUE rb_tracearg_event(rb_trace_arg_t *trace_arg);
VALUE rb_tracearg_lineno(rb_trace_arg_t *trace_arg);
VALUE rb_tracearg_path(rb_trace_arg_t *trace_arg);
VALUE rb_tracearg_method_id(rb_trace_arg_t *trace_arg);
VALUE rb_tracearg_defined_class(rb_trace_arg_t *trace_arg);
VALUE rb_tracearg_binding(rb_trace_arg_t *trace_arg);
VALUE rb_tracearg_self(rb_trace_arg_t *trace_arg);
VALUE rb_tracearg_return_value(rb_trace_arg_t *trace_arg);
VALUE rb_tracearg_raised_exception(rb_trace_arg_t *trace_arg);
VALUE rb_tracearg_object(rb_trace_arg_t *trace_arg);

/* Postponed Job API */
typedef void (*rb_postponed_job_func_t)(void *arg);
int rb_postponed_job_register(unsigned int flags, rb_postponed_job_func_t func, void *data);
int rb_postponed_job_register_one(unsigned int flags, rb_postponed_job_func_t func, void *data);

/* undocumented advanced tracing APIs */

typedef enum {
    RUBY_EVENT_HOOK_FLAG_SAFE    = 0x01,
    RUBY_EVENT_HOOK_FLAG_DELETED = 0x02,
    RUBY_EVENT_HOOK_FLAG_RAW_ARG = 0x04
} rb_event_hook_flag_t;

void rb_add_event_hook2(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_event_hook_flag_t hook_flag);
void rb_thread_add_event_hook2(VALUE thval, rb_event_hook_func_t func, rb_event_flag_t events, VALUE data, rb_event_hook_flag_t hook_flag);

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* RUBY_DEBUG_H */
include/ruby-2.2.0/ruby/st.h000064400000012342150402105670011367 0ustar00/* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */

/* @(#) st.h 5.1 89/12/14 */

#ifndef RUBY_ST_H
#define RUBY_ST_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

#include "ruby/defines.h"

RUBY_SYMBOL_EXPORT_BEGIN

#if SIZEOF_LONG == SIZEOF_VOIDP
typedef unsigned long st_data_t;
#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP
typedef unsigned LONG_LONG st_data_t;
#else
# error ---->> st.c requires sizeof(void*) == sizeof(long) or sizeof(LONG_LONG) to be compiled. <<----
#endif
#define ST_DATA_T_DEFINED

#ifndef CHAR_BIT
# ifdef HAVE_LIMITS_H
#  include <limits.h>
# else
#  define CHAR_BIT 8
# endif
#endif
#ifndef _
# define _(args) args
#endif
#ifndef ANYARGS
# ifdef __cplusplus
#   define ANYARGS ...
# else
#   define ANYARGS
# endif
#endif

typedef struct st_table st_table;

typedef st_data_t st_index_t;
typedef int st_compare_func(st_data_t, st_data_t);
typedef st_index_t st_hash_func(st_data_t);

typedef char st_check_for_sizeof_st_index_t[SIZEOF_VOIDP == (int)sizeof(st_index_t) ? 1 : -1];
#define SIZEOF_ST_INDEX_T SIZEOF_VOIDP

struct st_hash_type {
    int (*compare)(ANYARGS /*st_data_t, st_data_t*/); /* st_compare_func* */
    st_index_t (*hash)(ANYARGS /*st_data_t*/);        /* st_hash_func* */
};

#define ST_INDEX_BITS (sizeof(st_index_t) * CHAR_BIT)

#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR) && defined(HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P)
# define ST_DATA_COMPATIBLE_P(type) \
   __builtin_choose_expr(__builtin_types_compatible_p(type, st_data_t), 1, 0)
#else
# define ST_DATA_COMPATIBLE_P(type) 0
#endif

struct st_table {
    const struct st_hash_type *type;
    st_index_t num_bins;
    unsigned int entries_packed : 1;
#ifdef __GNUC__
    /*
     * C spec says,
     *   A bit-field shall have a type that is a qualified or unqualified
     *   version of _Bool, signed int, unsigned int, or some other
     *   implementation-defined type. It is implementation-defined whether
     *   atomic types are permitted.
     * In short, long and long long bit-field are implementation-defined
     * feature. Therefore we want to supress a warning explicitly.
     */
    __extension__
#endif
    st_index_t num_entries : ST_INDEX_BITS - 1;
    union {
	struct {
	    struct st_table_entry **bins;
	    struct st_table_entry *head, *tail;
	} big;
	struct {
	    struct st_packed_entry *entries;
	    st_index_t real_entries;
	} packed;
    } as;
};

#define st_is_member(table,key) st_lookup((table),(key),(st_data_t *)0)

enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};

st_table *st_init_table(const struct st_hash_type *);
st_table *st_init_table_with_size(const struct st_hash_type *, st_index_t);
st_table *st_init_numtable(void);
st_table *st_init_numtable_with_size(st_index_t);
st_table *st_init_strtable(void);
st_table *st_init_strtable_with_size(st_index_t);
st_table *st_init_strcasetable(void);
st_table *st_init_strcasetable_with_size(st_index_t);
int st_delete(st_table *, st_data_t *, st_data_t *); /* returns 0:notfound 1:deleted */
int st_delete_safe(st_table *, st_data_t *, st_data_t *, st_data_t);
int st_shift(st_table *, st_data_t *, st_data_t *); /* returns 0:notfound 1:deleted */
int st_insert(st_table *, st_data_t, st_data_t);
int st_insert2(st_table *, st_data_t, st_data_t, st_data_t (*)(st_data_t));
int st_lookup(st_table *, st_data_t, st_data_t *);
int st_get_key(st_table *, st_data_t, st_data_t *);
typedef int st_update_callback_func(st_data_t *key, st_data_t *value, st_data_t arg, int existing);
/* *key may be altered, but must equal to the old key, i.e., the
 * results of hash() are same and compare() returns 0, otherwise the
 * behavior is undefined */
int st_update(st_table *table, st_data_t key, st_update_callback_func *func, st_data_t arg);
int st_foreach(st_table *, int (*)(ANYARGS), st_data_t);
int st_foreach_check(st_table *, int (*)(ANYARGS), st_data_t, st_data_t);
int st_reverse_foreach(st_table *, int (*)(ANYARGS), st_data_t);
st_index_t st_keys(st_table *table, st_data_t *keys, st_index_t size);
st_index_t st_keys_check(st_table *table, st_data_t *keys, st_index_t size, st_data_t never);
st_index_t st_values(st_table *table, st_data_t *values, st_index_t size);
st_index_t st_values_check(st_table *table, st_data_t *values, st_index_t size, st_data_t never);
void st_add_direct(st_table *, st_data_t, st_data_t);
void st_free_table(st_table *);
void st_cleanup_safe(st_table *, st_data_t);
void st_clear(st_table *);
st_table *st_copy(st_table *);
int st_numcmp(st_data_t, st_data_t);
st_index_t st_numhash(st_data_t);
int st_locale_insensitive_strcasecmp(const char *s1, const char *s2);
int st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n);
#define st_strcasecmp st_locale_insensitive_strcasecmp
#define st_strncasecmp st_locale_insensitive_strncasecmp
size_t st_memsize(const st_table *);
st_index_t st_hash(const void *ptr, size_t len, st_index_t h);
st_index_t st_hash_uint32(st_index_t h, uint32_t i);
st_index_t st_hash_uint(st_index_t h, st_index_t i);
st_index_t st_hash_end(st_index_t h);
st_index_t st_hash_start(st_index_t h);
#define st_hash_start(h) ((st_index_t)(h))

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* RUBY_ST_H */
include/ruby-2.2.0/ruby/digest.h000064400000001561150402105670012221 0ustar00/************************************************

  digest.h - header file for ruby digest modules

  $Author: nobu $
  created at: Fri May 25 08:54:56 JST 2001


  Copyright (C) 2001-2006 Akinori MUSHA

  $RoughId: digest.h,v 1.3 2001/07/13 15:38:27 knu Exp $
  $Id: digest.h 46826 2014-07-15 14:58:53Z nobu $

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

#include "ruby.h"

#define RUBY_DIGEST_API_VERSION	3

typedef int (*rb_digest_hash_init_func_t)(void *);
typedef void (*rb_digest_hash_update_func_t)(void *, unsigned char *, size_t);
typedef int (*rb_digest_hash_finish_func_t)(void *, unsigned char *);

typedef struct {
    int api_version;
    size_t digest_len;
    size_t block_len;
    size_t ctx_size;
    rb_digest_hash_init_func_t init_func;
    rb_digest_hash_update_func_t update_func;
    rb_digest_hash_finish_func_t finish_func;
} rb_digest_metadata_t;
include/ruby-2.2.0/ruby/ruby.h000064400000162732150402105670011733 0ustar00/**********************************************************************

  ruby/ruby.h -

  $Author: nagachika $
  created at: Thu Jun 10 14:26:32 JST 1993

  Copyright (C) 1993-2008 Yukihiro Matsumoto
  Copyright (C) 2000  Network Applied Communication Laboratory, Inc.
  Copyright (C) 2000  Information-technology Promotion Agency, Japan

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

#ifndef RUBY_RUBY_H
#define RUBY_RUBY_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

#include "ruby/config.h"
#ifdef RUBY_EXTCONF_H
#include RUBY_EXTCONF_H
#endif

#if defined(__cplusplus)
/* __builtin_choose_expr and __builtin_types_compatible aren't available
 * on C++.  See https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html */
# undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P
# undef HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P
#endif

#include "defines.h"

#define NORETURN_STYLE_NEW 1
#ifndef NORETURN
# define NORETURN(x) x
#endif
#ifndef DEPRECATED
# define DEPRECATED(x) x
#endif
#ifndef NOINLINE
# define NOINLINE(x) x
#endif
#ifndef UNREACHABLE
# define UNREACHABLE		/* unreachable */
#endif

#ifdef __GNUC__
#define PRINTF_ARGS(decl, string_index, first_to_check) \
  decl __attribute__((format(printf, string_index, first_to_check)))
#else
#define PRINTF_ARGS(decl, string_index, first_to_check) decl
#endif

#define RUBY_MACRO_SELECT(base, n) TOKEN_PASTE(base, n)

#ifdef HAVE_INTRINSICS_H
# include <intrinsics.h>
#endif

#include <stdarg.h>

RUBY_SYMBOL_EXPORT_BEGIN

/* Make alloca work the best possible way.  */
#ifdef __GNUC__
# ifndef atarist
#  ifndef alloca
#   define alloca __builtin_alloca
#  endif
# endif	/* atarist */
#else
# ifdef HAVE_ALLOCA_H
#  include <alloca.h>
# else
#  ifdef _AIX
#pragma alloca
#  else
#   ifndef alloca		/* predefined by HP cc +Olibcalls */
void *alloca();
#   endif
#  endif /* AIX */
# endif	/* HAVE_ALLOCA_H */
#endif /* __GNUC__ */

#if defined HAVE_UINTPTR_T && 0
typedef uintptr_t VALUE;
typedef uintptr_t ID;
# define SIGNED_VALUE intptr_t
# define SIZEOF_VALUE SIZEOF_UINTPTR_T
# undef PRI_VALUE_PREFIX
#elif SIZEOF_LONG == SIZEOF_VOIDP
typedef unsigned long VALUE;
typedef unsigned long ID;
# define SIGNED_VALUE long
# define SIZEOF_VALUE SIZEOF_LONG
# define PRI_VALUE_PREFIX "l"
#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP
typedef unsigned LONG_LONG VALUE;
typedef unsigned LONG_LONG ID;
# define SIGNED_VALUE LONG_LONG
# define LONG_LONG_VALUE 1
# define SIZEOF_VALUE SIZEOF_LONG_LONG
# define PRI_VALUE_PREFIX PRI_LL_PREFIX
#else
# error ---->> ruby requires sizeof(void*) == sizeof(long) or sizeof(LONG_LONG) to be compiled. <<----
#endif

typedef char ruby_check_sizeof_int[SIZEOF_INT == sizeof(int) ? 1 : -1];
typedef char ruby_check_sizeof_long[SIZEOF_LONG == sizeof(long) ? 1 : -1];
#ifdef HAVE_LONG_LONG
typedef char ruby_check_sizeof_long_long[SIZEOF_LONG_LONG == sizeof(LONG_LONG) ? 1 : -1];
#endif
typedef char ruby_check_sizeof_voidp[SIZEOF_VOIDP == sizeof(void*) ? 1 : -1];

#ifndef PRI_INT_PREFIX
#define PRI_INT_PREFIX ""
#endif
#ifndef PRI_LONG_PREFIX
#define PRI_LONG_PREFIX "l"
#endif

#if SIZEOF_LONG == 8
#define PRI_64_PREFIX PRI_LONG_PREFIX
#elif SIZEOF_LONG_LONG == 8
#define PRI_64_PREFIX PRI_LL_PREFIX
#endif

#define RUBY_PRI_VALUE_MARK "\v"
#if defined PRIdPTR && !defined PRI_VALUE_PREFIX
#define PRIdVALUE PRIdPTR
#define PRIoVALUE PRIoPTR
#define PRIuVALUE PRIuPTR
#define PRIxVALUE PRIxPTR
#define PRIXVALUE PRIXPTR
#define PRIsVALUE PRIiPTR"" RUBY_PRI_VALUE_MARK
#else
#define PRIdVALUE PRI_VALUE_PREFIX"d"
#define PRIoVALUE PRI_VALUE_PREFIX"o"
#define PRIuVALUE PRI_VALUE_PREFIX"u"
#define PRIxVALUE PRI_VALUE_PREFIX"x"
#define PRIXVALUE PRI_VALUE_PREFIX"X"
#define PRIsVALUE PRI_VALUE_PREFIX"i" RUBY_PRI_VALUE_MARK
#endif
#ifndef PRI_VALUE_PREFIX
# define PRI_VALUE_PREFIX ""
#endif

#ifndef PRI_TIMET_PREFIX
# if SIZEOF_TIME_T == SIZEOF_INT
#  define PRI_TIMET_PREFIX
# elif SIZEOF_TIME_T == SIZEOF_LONG
#  define PRI_TIMET_PREFIX "l"
# elif SIZEOF_TIME_T == SIZEOF_LONG_LONG
#  define PRI_TIMET_PREFIX PRI_LL_PREFIX
# endif
#endif

#if defined PRI_PTRDIFF_PREFIX
#elif SIZEOF_PTRDIFF_T == SIZEOF_INT
# define PRI_PTRDIFF_PREFIX ""
#elif SIZEOF_PTRDIFF_T == SIZEOF_LONG
# define PRI_PTRDIFF_PREFIX "l"
#elif SIZEOF_PTRDIFF_T == SIZEOF_LONG_LONG
# define PRI_PTRDIFF_PREFIX PRI_LL_PREFIX
#endif
#define PRIdPTRDIFF PRI_PTRDIFF_PREFIX"d"
#define PRIiPTRDIFF PRI_PTRDIFF_PREFIX"i"
#define PRIoPTRDIFF PRI_PTRDIFF_PREFIX"o"
#define PRIuPTRDIFF PRI_PTRDIFF_PREFIX"u"
#define PRIxPTRDIFF PRI_PTRDIFF_PREFIX"x"
#define PRIXPTRDIFF PRI_PTRDIFF_PREFIX"X"

#if defined PRI_SIZE_PREFIX
#elif SIZEOF_SIZE_T == SIZEOF_INT
# define PRI_SIZE_PREFIX ""
#elif SIZEOF_SIZE_T == SIZEOF_LONG
# define PRI_SIZE_PREFIX "l"
#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG
# define PRI_SIZE_PREFIX PRI_LL_PREFIX
#endif
#define PRIdSIZE PRI_SIZE_PREFIX"d"
#define PRIiSIZE PRI_SIZE_PREFIX"i"
#define PRIoSIZE PRI_SIZE_PREFIX"o"
#define PRIuSIZE PRI_SIZE_PREFIX"u"
#define PRIxSIZE PRI_SIZE_PREFIX"x"
#define PRIXSIZE PRI_SIZE_PREFIX"X"

#ifdef __STDC__
# include <limits.h>
#else
# ifndef LONG_MAX
#  ifdef HAVE_LIMITS_H
#   include <limits.h>
#  else
    /* assuming 32bit(2's complement) long */
#   define LONG_MAX 2147483647
#  endif
# endif
# ifndef LONG_MIN
#  define LONG_MIN (-LONG_MAX-1)
# endif
# ifndef CHAR_BIT
#  define CHAR_BIT 8
# endif
#endif

#ifdef HAVE_LONG_LONG
# ifndef LLONG_MAX
#  ifdef LONG_LONG_MAX
#   define LLONG_MAX  LONG_LONG_MAX
#  else
#   ifdef _I64_MAX
#    define LLONG_MAX _I64_MAX
#   else
    /* assuming 64bit(2's complement) long long */
#    define LLONG_MAX 9223372036854775807LL
#   endif
#  endif
# endif
# ifndef LLONG_MIN
#  ifdef LONG_LONG_MIN
#   define LLONG_MIN  LONG_LONG_MIN
#  else
#   ifdef _I64_MIN
#    define LLONG_MIN _I64_MIN
#   else
#    define LLONG_MIN (-LLONG_MAX-1)
#   endif
#  endif
# endif
#endif

#define FIXNUM_MAX (LONG_MAX>>1)
#define FIXNUM_MIN RSHIFT((long)LONG_MIN,1)

#define INT2FIX(i) (((VALUE)(i))<<1 | FIXNUM_FLAG)
#define LONG2FIX(i) INT2FIX(i)
#define rb_fix_new(v) INT2FIX(v)
VALUE rb_int2inum(SIGNED_VALUE);

#define rb_int_new(v) rb_int2inum(v)
VALUE rb_uint2inum(VALUE);

#define rb_uint_new(v) rb_uint2inum(v)

#ifdef HAVE_LONG_LONG
VALUE rb_ll2inum(LONG_LONG);
#define LL2NUM(v) rb_ll2inum(v)
VALUE rb_ull2inum(unsigned LONG_LONG);
#define ULL2NUM(v) rb_ull2inum(v)
#endif

#ifndef OFFT2NUM
#if SIZEOF_OFF_T > SIZEOF_LONG && defined(HAVE_LONG_LONG)
# define OFFT2NUM(v) LL2NUM(v)
#elif SIZEOF_OFF_T == SIZEOF_LONG
# define OFFT2NUM(v) LONG2NUM(v)
#else
# define OFFT2NUM(v) INT2NUM(v)
#endif
#endif

#if SIZEOF_SIZE_T > SIZEOF_LONG && defined(HAVE_LONG_LONG)
# define SIZET2NUM(v) ULL2NUM(v)
# define SSIZET2NUM(v) LL2NUM(v)
#elif SIZEOF_SIZE_T == SIZEOF_LONG
# define SIZET2NUM(v) ULONG2NUM(v)
# define SSIZET2NUM(v) LONG2NUM(v)
#else
# define SIZET2NUM(v) UINT2NUM(v)
# define SSIZET2NUM(v) INT2NUM(v)
#endif

#ifndef SIZE_MAX
# if SIZEOF_SIZE_T > SIZEOF_LONG && defined(HAVE_LONG_LONG)
#   define SIZE_MAX ULLONG_MAX
#   define SIZE_MIN ULLONG_MIN
# elif SIZEOF_SIZE_T == SIZEOF_LONG
#   define SIZE_MAX ULONG_MAX
#   define SIZE_MIN ULONG_MIN
# elif SIZEOF_SIZE_T == SIZEOF_INT
#   define SIZE_MAX UINT_MAX
#   define SIZE_MIN UINT_MIN
# else
#   define SIZE_MAX USHRT_MAX
#   define SIZE_MIN USHRT_MIN
# endif
#endif

#ifndef SSIZE_MAX
# if SIZEOF_SIZE_T > SIZEOF_LONG && defined(HAVE_LONG_LONG)
#   define SSIZE_MAX LLONG_MAX
#   define SSIZE_MIN LLONG_MIN
# elif SIZEOF_SIZE_T == SIZEOF_LONG
#   define SSIZE_MAX LONG_MAX
#   define SSIZE_MIN LONG_MIN
# elif SIZEOF_SIZE_T == SIZEOF_INT
#   define SSIZE_MAX INT_MAX
#   define SSIZE_MIN INT_MIN
# else
#   define SSIZE_MAX SHRT_MAX
#   define SSIZE_MIN SHRT_MIN
# endif
#endif

#if SIZEOF_INT < SIZEOF_VALUE
NORETURN(void rb_out_of_int(SIGNED_VALUE num));
#endif

#if SIZEOF_INT < SIZEOF_LONG
static inline int
rb_long2int_inline(long n)
{
    int i = (int)n;
    if ((long)i != n)
	rb_out_of_int(n);

    return i;
}
#define rb_long2int(n) rb_long2int_inline(n)
#else
#define rb_long2int(n) ((int)(n))
#endif

#ifndef PIDT2NUM
#define PIDT2NUM(v) LONG2NUM(v)
#endif
#ifndef NUM2PIDT
#define NUM2PIDT(v) NUM2LONG(v)
#endif
#ifndef UIDT2NUM
#define UIDT2NUM(v) LONG2NUM(v)
#endif
#ifndef NUM2UIDT
#define NUM2UIDT(v) NUM2LONG(v)
#endif
#ifndef GIDT2NUM
#define GIDT2NUM(v) LONG2NUM(v)
#endif
#ifndef NUM2GIDT
#define NUM2GIDT(v) NUM2LONG(v)
#endif
#ifndef NUM2MODET
#define NUM2MODET(v) NUM2INT(v)
#endif
#ifndef MODET2NUM
#define MODET2NUM(v) INT2NUM(v)
#endif

#define FIX2LONG(x) ((long)RSHIFT((SIGNED_VALUE)(x),1))
#define FIX2ULONG(x) ((unsigned long)FIX2LONG(x))
#define FIXNUM_P(f) (((int)(SIGNED_VALUE)(f))&FIXNUM_FLAG)
#define POSFIXABLE(f) ((f) < FIXNUM_MAX+1)
#define NEGFIXABLE(f) ((f) >= FIXNUM_MIN)
#define FIXABLE(f) (POSFIXABLE(f) && NEGFIXABLE(f))

#define IMMEDIATE_P(x) ((VALUE)(x) & IMMEDIATE_MASK)

ID rb_sym2id(VALUE);
VALUE rb_id2sym(ID);
#define STATIC_SYM_P(x) (((VALUE)(x)&~((~(VALUE)0)<<RUBY_SPECIAL_SHIFT))==SYMBOL_FLAG)
#define DYNAMIC_SYM_P(x) (!SPECIAL_CONST_P(x) && BUILTIN_TYPE(x) == (T_SYMBOL))
#define SYMBOL_P(x) (STATIC_SYM_P(x)||DYNAMIC_SYM_P(x))
#define ID2SYM(x) (rb_id2sym(x))
#define SYM2ID(x) (rb_sym2id(x))

#ifndef USE_FLONUM
#if SIZEOF_VALUE >= SIZEOF_DOUBLE
#define USE_FLONUM 1
#else
#define USE_FLONUM 0
#endif
#endif

#if USE_FLONUM
#define FLONUM_P(x) ((((int)(SIGNED_VALUE)(x))&FLONUM_MASK) == FLONUM_FLAG)
#else
#define FLONUM_P(x) 0
#endif

/* Module#methods, #singleton_methods and so on return Symbols */
#define USE_SYMBOL_AS_METHOD_NAME 1

/* special constants - i.e. non-zero and non-fixnum constants */
enum ruby_special_consts {
#if USE_FLONUM
    RUBY_Qfalse = 0x00,		/* ...0000 0000 */
    RUBY_Qtrue  = 0x14,		/* ...0001 0100 */
    RUBY_Qnil   = 0x08,		/* ...0000 1000 */
    RUBY_Qundef = 0x34,		/* ...0011 0100 */

    RUBY_IMMEDIATE_MASK = 0x07,
    RUBY_FIXNUM_FLAG    = 0x01,	/* ...xxxx xxx1 */
    RUBY_FLONUM_MASK    = 0x03,
    RUBY_FLONUM_FLAG    = 0x02,	/* ...xxxx xx10 */
    RUBY_SYMBOL_FLAG    = 0x0c,	/* ...0000 1100 */
#else
    RUBY_Qfalse = 0,		/* ...0000 0000 */
    RUBY_Qtrue  = 2,		/* ...0000 0010 */
    RUBY_Qnil   = 4,		/* ...0000 0100 */
    RUBY_Qundef = 6,		/* ...0000 0110 */

    RUBY_IMMEDIATE_MASK = 0x03,
    RUBY_FIXNUM_FLAG    = 0x01,	/* ...xxxx xxx1 */
    RUBY_FLONUM_MASK    = 0x00,	/* any values ANDed with FLONUM_MASK cannot be FLONUM_FLAG */
    RUBY_FLONUM_FLAG    = 0x02,
    RUBY_SYMBOL_FLAG    = 0x0e,	/* ...0000 1110 */
#endif
    RUBY_SPECIAL_SHIFT  = 8
};

#define Qfalse ((VALUE)RUBY_Qfalse)
#define Qtrue  ((VALUE)RUBY_Qtrue)
#define Qnil   ((VALUE)RUBY_Qnil)
#define Qundef ((VALUE)RUBY_Qundef)	/* undefined value for placeholder */
#define IMMEDIATE_MASK RUBY_IMMEDIATE_MASK
#define FIXNUM_FLAG RUBY_FIXNUM_FLAG
#if USE_FLONUM
#define FLONUM_MASK RUBY_FLONUM_MASK
#define FLONUM_FLAG RUBY_FLONUM_FLAG
#endif
#define SYMBOL_FLAG RUBY_SYMBOL_FLAG

#define RTEST(v) !(((VALUE)(v) & ~Qnil) == 0)
#define NIL_P(v) !((VALUE)(v) != Qnil)

#define CLASS_OF(v) rb_class_of((VALUE)(v))

enum ruby_value_type {
    RUBY_T_NONE   = 0x00,

    RUBY_T_OBJECT = 0x01,
    RUBY_T_CLASS  = 0x02,
    RUBY_T_MODULE = 0x03,
    RUBY_T_FLOAT  = 0x04,
    RUBY_T_STRING = 0x05,
    RUBY_T_REGEXP = 0x06,
    RUBY_T_ARRAY  = 0x07,
    RUBY_T_HASH   = 0x08,
    RUBY_T_STRUCT = 0x09,
    RUBY_T_BIGNUM = 0x0a,
    RUBY_T_FILE   = 0x0b,
    RUBY_T_DATA   = 0x0c,
    RUBY_T_MATCH  = 0x0d,
    RUBY_T_COMPLEX  = 0x0e,
    RUBY_T_RATIONAL = 0x0f,

    RUBY_T_NIL    = 0x11,
    RUBY_T_TRUE   = 0x12,
    RUBY_T_FALSE  = 0x13,
    RUBY_T_SYMBOL = 0x14,
    RUBY_T_FIXNUM = 0x15,

    RUBY_T_UNDEF  = 0x1b,
    RUBY_T_NODE   = 0x1c,
    RUBY_T_ICLASS = 0x1d,
    RUBY_T_ZOMBIE = 0x1e,

    RUBY_T_MASK   = 0x1f
};

#define T_NONE   RUBY_T_NONE
#define T_NIL    RUBY_T_NIL
#define T_OBJECT RUBY_T_OBJECT
#define T_CLASS  RUBY_T_CLASS
#define T_ICLASS RUBY_T_ICLASS
#define T_MODULE RUBY_T_MODULE
#define T_FLOAT  RUBY_T_FLOAT
#define T_STRING RUBY_T_STRING
#define T_REGEXP RUBY_T_REGEXP
#define T_ARRAY  RUBY_T_ARRAY
#define T_HASH   RUBY_T_HASH
#define T_STRUCT RUBY_T_STRUCT
#define T_BIGNUM RUBY_T_BIGNUM
#define T_FILE   RUBY_T_FILE
#define T_FIXNUM RUBY_T_FIXNUM
#define T_TRUE   RUBY_T_TRUE
#define T_FALSE  RUBY_T_FALSE
#define T_DATA   RUBY_T_DATA
#define T_MATCH  RUBY_T_MATCH
#define T_SYMBOL RUBY_T_SYMBOL
#define T_RATIONAL RUBY_T_RATIONAL
#define T_COMPLEX RUBY_T_COMPLEX
#define T_UNDEF  RUBY_T_UNDEF
#define T_NODE   RUBY_T_NODE
#define T_ZOMBIE RUBY_T_ZOMBIE
#define T_MASK   RUBY_T_MASK

#define BUILTIN_TYPE(x) (int)(((struct RBasic*)(x))->flags & T_MASK)

static inline int rb_type(VALUE obj);
#define TYPE(x) rb_type((VALUE)(x))

#define RB_FLOAT_TYPE_P(obj) (FLONUM_P(obj) || (!SPECIAL_CONST_P(obj) && BUILTIN_TYPE(obj) == T_FLOAT))

#define RB_TYPE_P(obj, type) ( \
	((type) == T_FIXNUM) ? FIXNUM_P(obj) : \
	((type) == T_TRUE) ? ((obj) == Qtrue) : \
	((type) == T_FALSE) ? ((obj) == Qfalse) : \
	((type) == T_NIL) ? ((obj) == Qnil) : \
	((type) == T_UNDEF) ? ((obj) == Qundef) : \
	((type) == T_SYMBOL) ? SYMBOL_P(obj) : \
	((type) == T_FLOAT) ? RB_FLOAT_TYPE_P(obj) : \
	(!SPECIAL_CONST_P(obj) && BUILTIN_TYPE(obj) == (type)))

/* RB_GC_GUARD_PTR() is an intermediate macro, and has no effect by
 * itself.  don't use it directly */
#ifdef __GNUC__
#define RB_GC_GUARD_PTR(ptr) \
    __extension__ ({volatile VALUE *rb_gc_guarded_ptr = (ptr); \
	__asm__("" : : "m"(rb_gc_guarded_ptr)); \
	rb_gc_guarded_ptr; \
    })
#else
#ifdef _MSC_VER
#pragma optimize("", off)
static inline volatile VALUE *rb_gc_guarded_ptr(volatile VALUE *ptr) {return ptr;}
#pragma optimize("", on)
#else
volatile VALUE *rb_gc_guarded_ptr_val(volatile VALUE *ptr, VALUE val);
#define HAVE_RB_GC_GUARDED_PTR_VAL 1
#define RB_GC_GUARD(v) (*rb_gc_guarded_ptr_val(&(v),(v)))
#endif
#define RB_GC_GUARD_PTR(ptr) rb_gc_guarded_ptr(ptr)
#endif

#ifndef RB_GC_GUARD
#define RB_GC_GUARD(v) (*RB_GC_GUARD_PTR(&(v)))
#endif

#ifdef __GNUC__
#define RB_UNUSED_VAR(x) x __attribute__ ((unused))
#else
#define RB_UNUSED_VAR(x) x
#endif

void rb_check_type(VALUE,int);
#define Check_Type(v,t) rb_check_type((VALUE)(v),(t))

VALUE rb_str_to_str(VALUE);
VALUE rb_string_value(volatile VALUE*);
char *rb_string_value_ptr(volatile VALUE*);
char *rb_string_value_cstr(volatile VALUE*);

#define StringValue(v) rb_string_value(&(v))
#define StringValuePtr(v) rb_string_value_ptr(&(v))
#define StringValueCStr(v) rb_string_value_cstr(&(v))

void rb_check_safe_obj(VALUE);
#define SafeStringValue(v) do {\
    StringValue(v);\
    rb_check_safe_obj(v);\
} while (0)
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
void rb_check_safe_str(VALUE) __attribute__((error("rb_check_safe_str() and Check_SafeStr() are obsolete; use SafeStringValue() instead")));
# define Check_SafeStr(v) rb_check_safe_str((VALUE)(v))
#else
# define rb_check_safe_str(x) [<"rb_check_safe_str() is obsolete; use SafeStringValue() instead">]
# define Check_SafeStr(v) [<"Check_SafeStr() is obsolete; use SafeStringValue() instead">]
#endif

VALUE rb_str_export(VALUE);
#define ExportStringValue(v) do {\
    SafeStringValue(v);\
   (v) = rb_str_export(v);\
} while (0)
VALUE rb_str_export_locale(VALUE);

VALUE rb_get_path(VALUE);
#define FilePathValue(v) (RB_GC_GUARD(v) = rb_get_path(v))

VALUE rb_get_path_no_checksafe(VALUE);
#define FilePathStringValue(v) ((v) = rb_get_path_no_checksafe(v))

#define RUBY_SAFE_LEVEL_MAX 3
void rb_secure(int);
int rb_safe_level(void);
void rb_set_safe_level(int);
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
int ruby_safe_level_4_error(void) __attribute__((error("$SAFE=4 is obsolete")));
int ruby_safe_level_4_warning(void) __attribute__((warning("$SAFE=4 is obsolete")));
# ifdef RUBY_EXPORT
#   define ruby_safe_level_4_warning() ruby_safe_level_4_error()
# endif
#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)
# define RUBY_SAFE_LEVEL_INVALID_P(level) \
    __extension__(\
	__builtin_choose_expr(\
	    __builtin_constant_p(level), \
	    ((level) < 0 || RUBY_SAFE_LEVEL_MAX < (level)), 0))
# define RUBY_SAFE_LEVEL_CHECK(level, type) \
    __extension__(__builtin_choose_expr(RUBY_SAFE_LEVEL_INVALID_P(level), ruby_safe_level_4_##type(), (level)))
#else
/* in gcc 4.8 or earlier, __builtin_choose_expr() does not consider
 * __builtin_constant_p(variable) a constant expression.
 */
# define RUBY_SAFE_LEVEL_INVALID_P(level) \
    __extension__(__builtin_constant_p(level) && \
		  ((level) < 0 || RUBY_SAFE_LEVEL_MAX < (level)))
# define RUBY_SAFE_LEVEL_CHECK(level, type) \
    (RUBY_SAFE_LEVEL_INVALID_P(level) ? ruby_safe_level_4_##type() : (level))
#endif
#define rb_secure(level) rb_secure(RUBY_SAFE_LEVEL_CHECK(level, warning))
#define rb_set_safe_level(level) rb_set_safe_level(RUBY_SAFE_LEVEL_CHECK(level, error))
#endif
void rb_set_safe_level_force(int);
void rb_secure_update(VALUE);
NORETURN(void rb_insecure_operation(void));

VALUE rb_errinfo(void);
void rb_set_errinfo(VALUE);

long rb_num2long(VALUE);
unsigned long rb_num2ulong(VALUE);
static inline long
rb_num2long_inline(VALUE x)
{
    if (FIXNUM_P(x))
	return FIX2LONG(x);
    else
	return rb_num2long(x);
}
#define NUM2LONG(x) rb_num2long_inline(x)
static inline unsigned long
rb_num2ulong_inline(VALUE x)
{
    if (FIXNUM_P(x))
	return (unsigned long)FIX2LONG(x);
    else
	return rb_num2ulong(x);
}
#define NUM2ULONG(x) rb_num2ulong_inline(x)
#if SIZEOF_INT < SIZEOF_LONG
long rb_num2int(VALUE);
long rb_fix2int(VALUE);
#define FIX2INT(x) ((int)rb_fix2int((VALUE)(x)))

static inline int
rb_num2int_inline(VALUE x)
{
    if (FIXNUM_P(x))
	return FIX2INT(x);
    else
	return (int)rb_num2int(x);
}
#define NUM2INT(x) rb_num2int_inline(x)

unsigned long rb_num2uint(VALUE);
#define NUM2UINT(x) ((unsigned int)rb_num2uint(x))
unsigned long rb_fix2uint(VALUE);
#define FIX2UINT(x) ((unsigned int)rb_fix2uint(x))
#else /* SIZEOF_INT < SIZEOF_LONG */
#define NUM2INT(x) ((int)NUM2LONG(x))
#define NUM2UINT(x) ((unsigned int)NUM2ULONG(x))
#define FIX2INT(x) ((int)FIX2LONG(x))
#define FIX2UINT(x) ((unsigned int)FIX2ULONG(x))
#endif /* SIZEOF_INT < SIZEOF_LONG */

short rb_num2short(VALUE);
unsigned short rb_num2ushort(VALUE);
short rb_fix2short(VALUE);
unsigned short rb_fix2ushort(VALUE);
#define FIX2SHORT(x) (rb_fix2short((VALUE)(x)))
static inline short
rb_num2short_inline(VALUE x)
{
    if (FIXNUM_P(x))
	return FIX2SHORT(x);
    else
	return rb_num2short(x);
}

#define NUM2SHORT(x) rb_num2short_inline(x)
#define NUM2USHORT(x) rb_num2ushort(x)

#ifdef HAVE_LONG_LONG
LONG_LONG rb_num2ll(VALUE);
unsigned LONG_LONG rb_num2ull(VALUE);
static inline LONG_LONG
rb_num2ll_inline(VALUE x)
{
    if (FIXNUM_P(x))
	return FIX2LONG(x);
    else
	return rb_num2ll(x);
}
# define NUM2LL(x) rb_num2ll_inline(x)
# define NUM2ULL(x) rb_num2ull(x)
#endif

#if !defined(NUM2OFFT)
# if defined(HAVE_LONG_LONG) && SIZEOF_OFF_T > SIZEOF_LONG
#  define NUM2OFFT(x) ((off_t)NUM2LL(x))
# else
#  define NUM2OFFT(x) NUM2LONG(x)
# endif
#endif

#if defined(HAVE_LONG_LONG) && SIZEOF_SIZE_T > SIZEOF_LONG
# define NUM2SIZET(x) ((size_t)NUM2ULL(x))
# define NUM2SSIZET(x) ((ssize_t)NUM2LL(x))
#else
# define NUM2SIZET(x) NUM2ULONG(x)
# define NUM2SSIZET(x) NUM2LONG(x)
#endif

double rb_num2dbl(VALUE);
#define NUM2DBL(x) rb_num2dbl((VALUE)(x))

VALUE rb_uint2big(VALUE);
VALUE rb_int2big(SIGNED_VALUE);

VALUE rb_newobj(void);
VALUE rb_newobj_of(VALUE, VALUE);
VALUE rb_obj_setup(VALUE obj, VALUE klass, VALUE type);
#define NEWOBJ(obj,type) type *(obj) = (type*)rb_newobj()
#define NEWOBJ_OF(obj,type,klass,flags) type *(obj) = (type*)rb_newobj_of(klass, flags)
#define OBJSETUP(obj,c,t) rb_obj_setup(obj, c, t) /* use NEWOBJ_OF instead of NEWOBJ()+OBJSETUP() */
#define CLONESETUP(clone,obj) do {\
    OBJSETUP((clone),rb_singleton_class_clone((VALUE)(obj)),RBASIC(obj)->flags);\
    rb_singleton_class_attached(RBASIC(clone)->klass, (VALUE)(clone));\
    if (FL_TEST((obj), FL_EXIVAR)) rb_copy_generic_ivar((VALUE)(clone),(VALUE)(obj));\
} while (0)
#define DUPSETUP(dup,obj) do {\
    OBJSETUP((dup),rb_obj_class(obj), (RBASIC(obj)->flags)&(T_MASK|FL_EXIVAR|FL_TAINT)); \
    if (FL_TEST((obj), FL_EXIVAR)) rb_copy_generic_ivar((VALUE)(dup),(VALUE)(obj));\
} while (0)

#ifndef USE_RGENGC
#define USE_RGENGC 1
#ifndef USE_RINCGC
#define USE_RINCGC 1
#endif
#endif

#if USE_RGENGC == 0
#define USE_RINCGC 0
#endif

#ifndef RGENGC_WB_PROTECTED_ARRAY
#define RGENGC_WB_PROTECTED_ARRAY 1
#endif
#ifndef RGENGC_WB_PROTECTED_HASH
#define RGENGC_WB_PROTECTED_HASH 1
#endif
#ifndef RGENGC_WB_PROTECTED_STRUCT
#define RGENGC_WB_PROTECTED_STRUCT 1
#endif
#ifndef RGENGC_WB_PROTECTED_STRING
#define RGENGC_WB_PROTECTED_STRING 1
#endif
#ifndef RGENGC_WB_PROTECTED_OBJECT
#define RGENGC_WB_PROTECTED_OBJECT 1
#endif
#ifndef RGENGC_WB_PROTECTED_REGEXP
#define RGENGC_WB_PROTECTED_REGEXP 1
#endif
#ifndef RGENGC_WB_PROTECTED_CLASS
#define RGENGC_WB_PROTECTED_CLASS 1
#endif
#ifndef RGENGC_WB_PROTECTED_FLOAT
#define RGENGC_WB_PROTECTED_FLOAT 1
#endif
#ifndef RGENGC_WB_PROTECTED_COMPLEX
#define RGENGC_WB_PROTECTED_COMPLEX 1
#endif
#ifndef RGENGC_WB_PROTECTED_RATIONAL
#define RGENGC_WB_PROTECTED_RATIONAL 1
#endif
#ifndef RGENGC_WB_PROTECTED_BIGNUM
#define RGENGC_WB_PROTECTED_BIGNUM 1
#endif
#ifndef RGENGC_WB_PROTECTED_NODE_CREF
#define RGENGC_WB_PROTECTED_NODE_CREF 1
#endif

struct RBasic {
    VALUE flags;
    const VALUE klass;
}
#ifdef __GNUC__
    __attribute__((aligned(sizeof(VALUE))))
#endif
;

VALUE rb_obj_hide(VALUE obj);
VALUE rb_obj_reveal(VALUE obj, VALUE klass); /* do not use this API to change klass information */

#define RBASIC_CLASS(obj) (RBASIC(obj)->klass)

#define ROBJECT_EMBED_LEN_MAX 3
struct RObject {
    struct RBasic basic;
    union {
	struct {
	    long numiv; /* only uses 32-bits */
	    VALUE *ivptr;
            struct st_table *iv_index_tbl; /* shortcut for RCLASS_IV_INDEX_TBL(rb_obj_class(obj)) */
	} heap;
	VALUE ary[ROBJECT_EMBED_LEN_MAX];
    } as;
};
#define ROBJECT_EMBED FL_USER1
#define ROBJECT_NUMIV(o) \
    ((RBASIC(o)->flags & ROBJECT_EMBED) ? \
     ROBJECT_EMBED_LEN_MAX : \
     ROBJECT(o)->as.heap.numiv)
#define ROBJECT_IVPTR(o) \
    ((RBASIC(o)->flags & ROBJECT_EMBED) ? \
     ROBJECT(o)->as.ary : \
     ROBJECT(o)->as.heap.ivptr)
#define ROBJECT_IV_INDEX_TBL(o) \
    ((RBASIC(o)->flags & ROBJECT_EMBED) ? \
     RCLASS_IV_INDEX_TBL(rb_obj_class(o)) : \
     ROBJECT(o)->as.heap.iv_index_tbl)

/** @internal */
typedef struct rb_classext_struct rb_classext_t;

struct RClass {
    struct RBasic basic;
    VALUE super;
    rb_classext_t *ptr;
    struct method_table_wrapper *m_tbl_wrapper;
};
#define RCLASS_SUPER(c) rb_class_get_superclass(c)
#define RMODULE_IV_TBL(m) RCLASS_IV_TBL(m)
#define RMODULE_CONST_TBL(m) RCLASS_CONST_TBL(m)
#define RMODULE_M_TBL(m) RCLASS_M_TBL(m)
#define RMODULE_SUPER(m) RCLASS_SUPER(m)
#define RMODULE_IS_OVERLAID FL_USER2
#define RMODULE_IS_REFINEMENT FL_USER3
#define RMODULE_INCLUDED_INTO_REFINEMENT FL_USER4

double rb_float_value(VALUE);
VALUE rb_float_new(double);
VALUE rb_float_new_in_heap(double);

#define RFLOAT_VALUE(v) rb_float_value(v)
#define DBL2NUM(dbl)  rb_float_new(dbl)

#define ELTS_SHARED FL_USER2

#define RSTRING_EMBED_LEN_MAX ((int)((sizeof(VALUE)*3)/sizeof(char)-1))
struct RString {
    struct RBasic basic;
    union {
	struct {
	    long len;
	    char *ptr;
	    union {
		long capa;
		VALUE shared;
	    } aux;
	} heap;
	char ary[RSTRING_EMBED_LEN_MAX + 1];
    } as;
};
#define RSTRING_NOEMBED FL_USER1
#define RSTRING_FSTR FL_USER17
#define RSTRING_EMBED_LEN_MASK (FL_USER2|FL_USER3|FL_USER4|FL_USER5|FL_USER6)
#define RSTRING_EMBED_LEN_SHIFT (FL_USHIFT+2)
#define RSTRING_EMBED_LEN(str) \
     (long)((RBASIC(str)->flags >> RSTRING_EMBED_LEN_SHIFT) & \
            (RSTRING_EMBED_LEN_MASK >> RSTRING_EMBED_LEN_SHIFT))
#define RSTRING_LEN(str) \
    (!(RBASIC(str)->flags & RSTRING_NOEMBED) ? \
     RSTRING_EMBED_LEN(str) : \
     RSTRING(str)->as.heap.len)
#define RSTRING_PTR(str) \
    (!(RBASIC(str)->flags & RSTRING_NOEMBED) ? \
     RSTRING(str)->as.ary : \
     RSTRING(str)->as.heap.ptr)
#define RSTRING_END(str) \
    (!(RBASIC(str)->flags & RSTRING_NOEMBED) ? \
     (RSTRING(str)->as.ary + RSTRING_EMBED_LEN(str)) : \
     (RSTRING(str)->as.heap.ptr + RSTRING(str)->as.heap.len))
#define RSTRING_LENINT(str) rb_long2int(RSTRING_LEN(str))
#define RSTRING_GETMEM(str, ptrvar, lenvar) \
    (!(RBASIC(str)->flags & RSTRING_NOEMBED) ? \
     ((ptrvar) = RSTRING(str)->as.ary, (lenvar) = RSTRING_EMBED_LEN(str)) : \
     ((ptrvar) = RSTRING(str)->as.heap.ptr, (lenvar) = RSTRING(str)->as.heap.len))

#define RARRAY_EMBED_LEN_MAX 3
struct RArray {
    struct RBasic basic;
    union {
	struct {
	    long len;
	    union {
		long capa;
		VALUE shared;
	    } aux;
	    const VALUE *ptr;
	} heap;
	const VALUE ary[RARRAY_EMBED_LEN_MAX];
    } as;
};
#define RARRAY_EMBED_FLAG FL_USER1
/* FL_USER2 is for ELTS_SHARED */
#define RARRAY_EMBED_LEN_MASK (FL_USER4|FL_USER3)
#define RARRAY_EMBED_LEN_SHIFT (FL_USHIFT+3)
#define RARRAY_LEN(a) \
    ((RBASIC(a)->flags & RARRAY_EMBED_FLAG) ? \
     (long)((RBASIC(a)->flags >> RARRAY_EMBED_LEN_SHIFT) & \
	 (RARRAY_EMBED_LEN_MASK >> RARRAY_EMBED_LEN_SHIFT)) : \
     RARRAY(a)->as.heap.len)

#define RARRAY_LENINT(ary) rb_long2int(RARRAY_LEN(ary))

#define RARRAY_CONST_PTR(a) \
  ((const VALUE *)((RBASIC(a)->flags & RARRAY_EMBED_FLAG) ? \
		   RARRAY(a)->as.ary : \
		   RARRAY(a)->as.heap.ptr))

#define RARRAY_PTR_USE_START(a) ((VALUE *)RARRAY_CONST_PTR(a))
#define RARRAY_PTR_USE_END(a) /* */

#define RARRAY_PTR_USE(ary, ptr_name, expr) do { \
    const VALUE _ary = (ary); \
    VALUE *ptr_name = (VALUE *)RARRAY_PTR_USE_START(_ary); \
    expr; \
    RARRAY_PTR_USE_END(_ary); \
} while (0)

#define RARRAY_AREF(a, i)    (RARRAY_CONST_PTR(a)[i])
#define RARRAY_ASET(a, i, v) do { \
    const VALUE _ary = (a); \
    VALUE *ptr = (VALUE *)RARRAY_PTR_USE_START(_ary); \
    RB_OBJ_WRITE(_ary, &ptr[i], (v)); \
    RARRAY_PTR_USE_END(_ary); \
} while (0)

#define RARRAY_PTR(a) ((VALUE *)RARRAY_CONST_PTR(RGENGC_WB_PROTECTED_ARRAY ? OBJ_WB_UNPROTECT((VALUE)a) : ((VALUE)a)))

struct RRegexp {
    struct RBasic basic;
    struct re_pattern_buffer *ptr;
    const VALUE src;
    unsigned long usecnt;
};
#define RREGEXP_SRC(r) RREGEXP(r)->src
#define RREGEXP_SRC_PTR(r) RSTRING_PTR(RREGEXP(r)->src)
#define RREGEXP_SRC_LEN(r) RSTRING_LEN(RREGEXP(r)->src)
#define RREGEXP_SRC_END(r) RSTRING_END(RREGEXP(r)->src)

/* RHASH_TBL allocates st_table if not available. */
#define RHASH_TBL(h) rb_hash_tbl(h)
#define RHASH_ITER_LEV(h) rb_hash_iter_lev(h)
#define RHASH_IFNONE(h) rb_hash_ifnone(h)
#define RHASH_SIZE(h) NUM2SIZET(rb_hash_size(h))
#define RHASH_EMPTY_P(h) (RHASH_SIZE(h) == 0)
#define RHASH_SET_IFNONE(h, ifnone) rb_hash_set_ifnone((VALUE)h, ifnone)

struct RFile {
    struct RBasic basic;
    struct rb_io_t *fptr;
};

#define RCOMPLEX_SET_REAL(cmp, r) RB_OBJ_WRITE((cmp), &((struct RComplex *)(cmp))->real,(r))
#define RCOMPLEX_SET_IMAG(cmp, i) RB_OBJ_WRITE((cmp), &((struct RComplex *)(cmp))->imag,(i))

struct RData {
    struct RBasic basic;
    void (*dmark)(void*);
    void (*dfree)(void*);
    void *data;
};

typedef struct rb_data_type_struct rb_data_type_t;

struct rb_data_type_struct {
    const char *wrap_struct_name;
    struct {
	void (*dmark)(void*);
	void (*dfree)(void*);
	size_t (*dsize)(const void *);
	void *reserved[2]; /* For future extension.
			      This array *must* be filled with ZERO. */
    } function;
    const rb_data_type_t *parent;
    void *data;        /* This area can be used for any purpose
                          by a programmer who define the type. */
    VALUE flags;       /* FL_WB_PROTECTED */
};

#define HAVE_TYPE_RB_DATA_TYPE_T 1
#define HAVE_RB_DATA_TYPE_T_FUNCTION 1
#define HAVE_RB_DATA_TYPE_T_PARENT 1

struct RTypedData {
    struct RBasic basic;
    const rb_data_type_t *type;
    VALUE typed_flag; /* 1 or not */
    void *data;
};

#define DATA_PTR(dta) (RDATA(dta)->data)

#define RTYPEDDATA_P(v)    (RTYPEDDATA(v)->typed_flag == 1)
#define RTYPEDDATA_TYPE(v) (RTYPEDDATA(v)->type)
#define RTYPEDDATA_DATA(v) (RTYPEDDATA(v)->data)

/*
#define RUBY_DATA_FUNC(func) ((void (*)(void*))(func))
*/
typedef void (*RUBY_DATA_FUNC)(void*);

#ifndef RUBY_UNTYPED_DATA_WARNING
# if defined RUBY_EXPORT
#   define RUBY_UNTYPED_DATA_WARNING 1
# else
#   define RUBY_UNTYPED_DATA_WARNING 0
# endif
#endif
VALUE rb_data_object_alloc(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC);
VALUE rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *);
int rb_typeddata_inherited_p(const rb_data_type_t *child, const rb_data_type_t *parent);
int rb_typeddata_is_kind_of(VALUE, const rb_data_type_t *);
void *rb_check_typeddata(VALUE, const rb_data_type_t *);
#define Check_TypedStruct(v,t) rb_check_typeddata((VALUE)(v),(t))
#define RUBY_DEFAULT_FREE ((RUBY_DATA_FUNC)-1)
#define RUBY_NEVER_FREE   ((RUBY_DATA_FUNC)0)
#define RUBY_TYPED_DEFAULT_FREE RUBY_DEFAULT_FREE
#define RUBY_TYPED_NEVER_FREE   RUBY_NEVER_FREE

/* bits for rb_data_type_struct::flags */
#define RUBY_TYPED_FREE_IMMEDIATELY  1 /* TYPE field */
#define RUBY_TYPED_WB_PROTECTED      FL_WB_PROTECTED /* THIS FLAG DEPENDS ON Ruby version */
#define RUBY_TYPED_PROMOTED1         FL_PROMOTED1    /* THIS FLAG DEPENDS ON Ruby version */

#define Data_Wrap_Struct(klass,mark,free,sval)\
    rb_data_object_alloc((klass),(sval),(RUBY_DATA_FUNC)(mark),(RUBY_DATA_FUNC)(free))

#define Data_Make_Struct(klass,type,mark,free,sval) (\
    (sval) = ZALLOC(type),\
    Data_Wrap_Struct((klass),(mark),(free),(sval))\
)

#define TypedData_Wrap_Struct(klass,data_type,sval)\
  rb_data_typed_object_alloc((klass),(sval),(data_type))

#define TypedData_Make_Struct(klass, type, data_type, sval) (\
    (sval) = ZALLOC(type),\
    TypedData_Wrap_Struct((klass),(data_type),(sval))\
)

#define Data_Get_Struct(obj,type,sval) \
    ((sval) = (type*)rb_data_object_get(obj))

#define TypedData_Get_Struct(obj,type,data_type,sval) \
    ((sval) = (type*)rb_check_typeddata((obj), (data_type)))

#define RSTRUCT_EMBED_LEN_MAX 3
struct RStruct {
    struct RBasic basic;
    union {
	struct {
	    long len;
	    const VALUE *ptr;
	} heap;
	const VALUE ary[RSTRUCT_EMBED_LEN_MAX];
    } as;
};
#define RSTRUCT_EMBED_LEN_MASK (FL_USER2|FL_USER1)
#define RSTRUCT_EMBED_LEN_SHIFT (FL_USHIFT+1)
#define RSTRUCT_LEN(st) \
    ((RBASIC(st)->flags & RSTRUCT_EMBED_LEN_MASK) ? \
     (long)((RBASIC(st)->flags >> RSTRUCT_EMBED_LEN_SHIFT) & \
            (RSTRUCT_EMBED_LEN_MASK >> RSTRUCT_EMBED_LEN_SHIFT)) : \
     RSTRUCT(st)->as.heap.len)
#define RSTRUCT_LENINT(st) rb_long2int(RSTRUCT_LEN(st))
#define RSTRUCT_CONST_PTR(st) \
  ((RBASIC(st)->flags & RSTRUCT_EMBED_LEN_MASK) ? \
   RSTRUCT(st)->as.ary : \
   RSTRUCT(st)->as.heap.ptr)
#define RSTRUCT_PTR(st) ((VALUE *)RSTRUCT_CONST_PTR(RGENGC_WB_PROTECTED_STRUCT ? OBJ_WB_UNPROTECT((VALUE)st) : (VALUE)st))

#define RSTRUCT_SET(st, idx, v) RB_OBJ_WRITE(st, &RSTRUCT_CONST_PTR(st)[idx], (v))
#define RSTRUCT_GET(st, idx)    (RSTRUCT_CONST_PTR(st)[idx])

#define RBIGNUM_SIGN(b) (FIX2LONG(rb_big_cmp((b), INT2FIX(0))) >= 0)
#define RBIGNUM_POSITIVE_P(b) (FIX2LONG(rb_big_cmp((b), INT2FIX(0))) >= 0)
#define RBIGNUM_NEGATIVE_P(b) (FIX2LONG(rb_big_cmp((b), INT2FIX(0))) < 0)

#define R_CAST(st)   (struct st*)
#define RBASIC(obj)  (R_CAST(RBasic)(obj))
#define ROBJECT(obj) (R_CAST(RObject)(obj))
#define RCLASS(obj)  (R_CAST(RClass)(obj))
#define RMODULE(obj) RCLASS(obj)
#define RSTRING(obj) (R_CAST(RString)(obj))
#define RREGEXP(obj) (R_CAST(RRegexp)(obj))
#define RARRAY(obj)  (R_CAST(RArray)(obj))
#define RDATA(obj)   (R_CAST(RData)(obj))
#define RTYPEDDATA(obj)   (R_CAST(RTypedData)(obj))
#define RSTRUCT(obj) (R_CAST(RStruct)(obj))
#define RFILE(obj)   (R_CAST(RFile)(obj))

#define FL_SINGLETON FL_USER0
#define FL_WB_PROTECTED (((VALUE)1)<<5)
#define FL_PROMOTED0 (((VALUE)1)<<5)
#define FL_PROMOTED1 (((VALUE)1)<<6)
#define FL_FINALIZE  (((VALUE)1)<<7)
#define FL_TAINT     (((VALUE)1)<<8)
#define FL_UNTRUSTED FL_TAINT
#define FL_EXIVAR    (((VALUE)1)<<10)
#define FL_FREEZE    (((VALUE)1)<<11)

#define FL_USHIFT    12

#define FL_USER0     (((VALUE)1)<<(FL_USHIFT+0))
#define FL_USER1     (((VALUE)1)<<(FL_USHIFT+1))
#define FL_USER2     (((VALUE)1)<<(FL_USHIFT+2))
#define FL_USER3     (((VALUE)1)<<(FL_USHIFT+3))
#define FL_USER4     (((VALUE)1)<<(FL_USHIFT+4))
#define FL_USER5     (((VALUE)1)<<(FL_USHIFT+5))
#define FL_USER6     (((VALUE)1)<<(FL_USHIFT+6))
#define FL_USER7     (((VALUE)1)<<(FL_USHIFT+7))
#define FL_USER8     (((VALUE)1)<<(FL_USHIFT+8))
#define FL_USER9     (((VALUE)1)<<(FL_USHIFT+9))
#define FL_USER10    (((VALUE)1)<<(FL_USHIFT+10))
#define FL_USER11    (((VALUE)1)<<(FL_USHIFT+11))
#define FL_USER12    (((VALUE)1)<<(FL_USHIFT+12))
#define FL_USER13    (((VALUE)1)<<(FL_USHIFT+13))
#define FL_USER14    (((VALUE)1)<<(FL_USHIFT+14))
#define FL_USER15    (((VALUE)1)<<(FL_USHIFT+15))
#define FL_USER16    (((VALUE)1)<<(FL_USHIFT+16))
#define FL_USER17    (((VALUE)1)<<(FL_USHIFT+17))
#define FL_USER18    (((VALUE)1)<<(FL_USHIFT+18))
#define FL_USER19    (((VALUE)1)<<(FL_USHIFT+19))

#define SPECIAL_CONST_P(x) (IMMEDIATE_P(x) || !RTEST(x))

#define FL_ABLE(x) (!SPECIAL_CONST_P(x) && BUILTIN_TYPE(x) != T_NODE)
#define FL_TEST_RAW(x,f) (RBASIC(x)->flags&(f))
#define FL_TEST(x,f) (FL_ABLE(x)?FL_TEST_RAW((x),(f)):0)
#define FL_ANY_RAW(x,f) FL_TEST_RAW((x),(f))
#define FL_ANY(x,f) FL_TEST((x),(f))
#define FL_ALL_RAW(x,f) (FL_TEST_RAW((x),(f)) == (f))
#define FL_ALL(x,f) (FL_TEST((x),(f)) == (f))
#define FL_SET_RAW(x,f) (RBASIC(x)->flags |= (f))
#define FL_SET(x,f) (FL_ABLE(x) ? FL_SET_RAW(x, f) : 0)
#define FL_UNSET_RAW(x,f) (RBASIC(x)->flags &= ~(f))
#define FL_UNSET(x,f) (FL_ABLE(x) ? FL_UNSET_RAW(x, f) : 0)
#define FL_REVERSE_RAW(x,f) (RBASIC(x)->flags ^= (f))
#define FL_REVERSE(x,f) (FL_ABLE(x) ? FL_REVERSE_RAW(x, f) : 0)

#define OBJ_TAINTABLE(x) (FL_ABLE(x) && BUILTIN_TYPE(x) != T_BIGNUM && BUILTIN_TYPE(x) != T_FLOAT)
#define OBJ_TAINTED_RAW(x) FL_TEST_RAW(x, FL_TAINT)
#define OBJ_TAINTED(x) (!!FL_TEST((x), FL_TAINT))
#define OBJ_TAINT_RAW(x) FL_SET_RAW(x, FL_TAINT)
#define OBJ_TAINT(x) (OBJ_TAINTABLE(x) ? OBJ_TAINT_RAW(x) : 0)
#define OBJ_UNTRUSTED(x) OBJ_TAINTED(x)
#define OBJ_UNTRUST(x) OBJ_TAINT(x)
#define OBJ_INFECT_RAW(x,s) FL_SET_RAW(x, OBJ_TAINTED_RAW(s))
#define OBJ_INFECT(x,s) ( \
    (OBJ_TAINTABLE(x) && FL_ABLE(s)) ? \
    OBJ_INFECT_RAW(x, s) : 0)

#define OBJ_FROZEN(x) (FL_ABLE(x) ? !!(RBASIC(x)->flags&FL_FREEZE) : 1)
#define OBJ_FREEZE_RAW(x) (RBASIC(x)->flags |= FL_FREEZE)
#define OBJ_FREEZE(x) rb_obj_freeze_inline((VALUE)x)

void rb_freeze_singleton_class(VALUE klass);

static inline void
rb_obj_freeze_inline(VALUE x)
{
    if (FL_ABLE(x)) {
	OBJ_FREEZE_RAW(x);
	if (RBASIC_CLASS(x) && !(RBASIC(x)->flags & FL_SINGLETON)) {
	    rb_freeze_singleton_class(x);
	}
    }
}

#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
# define RUBY_UNTYPED_DATA_FUNC(func) func __attribute__((warning("untyped Data is unsafe; use TypedData instead")))
#else
# define RUBY_UNTYPED_DATA_FUNC(func) DEPRECATED(func)
#endif

RUBY_UNTYPED_DATA_FUNC(static inline VALUE rb_data_object_alloc_warning(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC));
RUBY_UNTYPED_DATA_FUNC(static inline void *rb_data_object_get_warning(VALUE));

static inline VALUE
rb_data_object_alloc_warning(VALUE klass, void *ptr, RUBY_DATA_FUNC mark, RUBY_DATA_FUNC free)
{
    return rb_data_object_alloc(klass, ptr, mark, free);
}

#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)
#define rb_data_object_alloc_warning(klass, ptr, mark, free) \
    __extension__( \
	__builtin_choose_expr( \
	    __builtin_constant_p(klass) && !(klass), \
	    rb_data_object_alloc(klass, ptr, mark, free), \
	    rb_data_object_alloc_warning(klass, ptr, mark, free)))
#endif

static inline void *
rb_data_object_get(VALUE obj)
{
    Check_Type(obj, T_DATA);
    return ((struct RData *)obj)->data;
}

static inline void *
rb_data_object_get_warning(VALUE obj)
{
    return rb_data_object_get(obj);
}

#define rb_data_object_alloc_0 rb_data_object_alloc
#define rb_data_object_alloc_1 rb_data_object_alloc_warning
#define rb_data_object_alloc  RUBY_MACRO_SELECT(rb_data_object_alloc_, RUBY_UNTYPED_DATA_WARNING)
#define rb_data_object_get_0 rb_data_object_get
#define rb_data_object_get_1 rb_data_object_get_warning
#define rb_data_object_get  RUBY_MACRO_SELECT(rb_data_object_get_, RUBY_UNTYPED_DATA_WARNING)

#if USE_RGENGC
#define OBJ_PROMOTED_RAW(x)         ((RBASIC(x)->flags & (FL_PROMOTED0|FL_PROMOTED1)) == (FL_PROMOTED0|FL_PROMOTED1))
#define OBJ_PROMOTED(x)             (SPECIAL_CONST_P(x) ? 0 : OBJ_PROMOTED_RAW(x))
#define OBJ_WB_UNPROTECT(x)         rb_obj_wb_unprotect(x, __FILE__, __LINE__)

#if USE_RINCGC
int rb_gc_writebarrier_incremental(VALUE a, VALUE b);
#else
#define rb_gc_writebarrier_incremental(a, b) 0
#endif
void rb_gc_writebarrier_generational(VALUE a, VALUE b);
void rb_gc_writebarrier_unprotect(VALUE obj);

#else /* USE_RGENGC */
#define OBJ_PROMOTED(x)             0
#define OBJ_WB_UNPROTECT(x)         rb_obj_wb_unprotect(x, __FILE__, __LINE__)
#endif

/* Write barrier (WB) interfaces:
 * - RB_OBJ_WRITE(a, slot, b): WB for new reference from `a' to `b'.
 *     Write `b' into `*slot'. `slot' is a pointer in `a'.
 * - RB_OBJ_WRITTEN(a, oldv, b): WB for new reference from `a' to `b'.
 *     This doesn't write any values, but only a WB declaration.
 *     `oldv' is replaced value with `b' (not used in current Ruby).
 *
 * NOTE: The following core interfaces can be changed in the future.
 *       Please catch up if you want to insert WB into C-extensions
 *       correctly.
 */
#define RB_OBJ_WRITE(a, slot, b)       rb_obj_write((VALUE)(a), (VALUE *)(slot), (VALUE)(b), __FILE__, __LINE__)
#define RB_OBJ_WRITTEN(a, oldv, b)     rb_obj_written((VALUE)(a), (VALUE)(oldv), (VALUE)(b), __FILE__, __LINE__)

#ifndef USE_RGENGC_LOGGING_WB_UNPROTECT
#define USE_RGENGC_LOGGING_WB_UNPROTECT 0
#endif

#if USE_RGENGC_LOGGING_WB_UNPROTECT
void rb_gc_unprotect_logging(void *objptr, const char *filename, int line);
#define RGENGC_LOGGING_WB_UNPROTECT rb_gc_unprotect_logging
#endif

static inline VALUE
rb_obj_wb_unprotect(VALUE x, RB_UNUSED_VAR(const char *filename), RB_UNUSED_VAR(int line))
{
#ifdef RGENGC_LOGGING_WB_UNPROTECT
    RGENGC_LOGGING_WB_UNPROTECT((void *)x, filename, line);
#endif
#if USE_RGENGC
    rb_gc_writebarrier_unprotect(x);
#endif
    return x;
}

static inline VALUE
rb_obj_written(VALUE a, RB_UNUSED_VAR(VALUE oldv), VALUE b, RB_UNUSED_VAR(const char *filename), RB_UNUSED_VAR(int line))
{
#ifdef RGENGC_LOGGING_OBJ_WRITTEN
    RGENGC_LOGGING_OBJ_WRITTEN(a, oldv, b, filename, line);
#endif

#if USE_RGENGC
    if (!SPECIAL_CONST_P(b)) {
	if (rb_gc_writebarrier_incremental(a, b) == 0) {
	    if (OBJ_PROMOTED_RAW(a) && !OBJ_PROMOTED_RAW(b)) {
		rb_gc_writebarrier_generational(a, b);
	    }
	}
    }
#endif

    return a;
}

static inline VALUE
rb_obj_write(VALUE a, VALUE *slot, VALUE b, RB_UNUSED_VAR(const char *filename), RB_UNUSED_VAR(int line))
{
#ifdef RGENGC_LOGGING_WRITE
    RGENGC_LOGGING_WRITE(a, slot, b, filename, line);
#endif

    *slot = b;

#if USE_RGENGC
    rb_obj_written(a, Qundef /* ignore `oldv' now */, b, filename, line);
#endif
    return a;
}

#if SIZEOF_INT < SIZEOF_LONG
# define INT2NUM(v) INT2FIX((int)(v))
# define UINT2NUM(v) LONG2FIX((unsigned int)(v))
#else
static inline VALUE
rb_int2num_inline(int v)
{
    if (FIXABLE(v))
	return INT2FIX(v);
    else
	return rb_int2big(v);
}
#define INT2NUM(x) rb_int2num_inline(x)

static inline VALUE
rb_uint2num_inline(unsigned int v)
{
    if (POSFIXABLE(v))
	return LONG2FIX(v);
    else
	return rb_uint2big(v);
}
#define UINT2NUM(x) rb_uint2num_inline(x)
#endif

static inline VALUE
rb_long2num_inline(long v)
{
    if (FIXABLE(v))
	return LONG2FIX(v);
    else
	return rb_int2big(v);
}
#define LONG2NUM(x) rb_long2num_inline(x)

static inline VALUE
rb_ulong2num_inline(unsigned long v)
{
    if (POSFIXABLE(v))
	return LONG2FIX(v);
    else
	return rb_uint2big(v);
}
#define ULONG2NUM(x) rb_ulong2num_inline(x)

static inline char
rb_num2char_inline(VALUE x)
{
    if (RB_TYPE_P(x, T_STRING) && (RSTRING_LEN(x)>=1))
	return RSTRING_PTR(x)[0];
    else
	return (char)(NUM2INT(x) & 0xff);
}
#define NUM2CHR(x) rb_num2char_inline(x)

#define CHR2FIX(x) INT2FIX((long)((x)&0xff))

#define ALLOC_N(type,n) ((type*)xmalloc2((n),sizeof(type)))
#define ALLOC(type) ((type*)xmalloc(sizeof(type)))
#define ZALLOC_N(type,n) ((type*)xcalloc((n),sizeof(type)))
#define ZALLOC(type) (ZALLOC_N(type,1))
#define REALLOC_N(var,type,n) ((var)=(type*)xrealloc2((char*)(var),(n),sizeof(type)))

#define ALLOCA_N(type,n) ((type*)alloca(sizeof(type)*(n)))

void *rb_alloc_tmp_buffer(volatile VALUE *store, long len) RUBY_ATTR_ALLOC_SIZE((2));
void rb_free_tmp_buffer(volatile VALUE *store);
/* allocates _n_ bytes temporary buffer and stores VALUE including it
 * in _v_.  _n_ may be evaluated twice. */
#ifdef C_ALLOCA
# define ALLOCV(v, n) rb_alloc_tmp_buffer(&(v), (n))
#else
# define ALLOCV(v, n) ((n) < 1024 ? (RB_GC_GUARD(v) = 0, alloca(n)) : rb_alloc_tmp_buffer(&(v), (n)))
#endif
#define ALLOCV_N(type, v, n) ((type*)ALLOCV((v), sizeof(type)*(n)))
#define ALLOCV_END(v) rb_free_tmp_buffer(&(v))

#define MEMZERO(p,type,n) memset((p), 0, sizeof(type)*(n))
#define MEMCPY(p1,p2,type,n) memcpy((p1), (p2), sizeof(type)*(n))
#define MEMMOVE(p1,p2,type,n) memmove((p1), (p2), sizeof(type)*(n))
#define MEMCMP(p1,p2,type,n) memcmp((p1), (p2), sizeof(type)*(n))

void rb_obj_infect(VALUE,VALUE);

typedef int ruby_glob_func(const char*,VALUE, void*);
void rb_glob(const char*,void(*)(const char*,VALUE,void*),VALUE);
int ruby_glob(const char*,int,ruby_glob_func*,VALUE);
int ruby_brace_glob(const char*,int,ruby_glob_func*,VALUE);

VALUE rb_define_class(const char*,VALUE);
VALUE rb_define_module(const char*);
VALUE rb_define_class_under(VALUE, const char*, VALUE);
VALUE rb_define_module_under(VALUE, const char*);

void rb_include_module(VALUE,VALUE);
void rb_extend_object(VALUE,VALUE);
void rb_prepend_module(VALUE,VALUE);

struct rb_global_variable;

typedef VALUE rb_gvar_getter_t(ID id, void *data, struct rb_global_variable *gvar);
typedef void  rb_gvar_setter_t(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
typedef void  rb_gvar_marker_t(VALUE *var);

VALUE rb_gvar_undef_getter(ID id, void *data, struct rb_global_variable *gvar);
void  rb_gvar_undef_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
void  rb_gvar_undef_marker(VALUE *var);

VALUE rb_gvar_val_getter(ID id, void *data, struct rb_global_variable *gvar);
void  rb_gvar_val_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
void  rb_gvar_val_marker(VALUE *var);

VALUE rb_gvar_var_getter(ID id, void *data, struct rb_global_variable *gvar);
void  rb_gvar_var_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
void  rb_gvar_var_marker(VALUE *var);

void  rb_gvar_readonly_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);

void rb_define_variable(const char*,VALUE*);
void rb_define_virtual_variable(const char*,VALUE(*)(ANYARGS),void(*)(ANYARGS));
void rb_define_hooked_variable(const char*,VALUE*,VALUE(*)(ANYARGS),void(*)(ANYARGS));
void rb_define_readonly_variable(const char*,const VALUE*);
void rb_define_const(VALUE,const char*,VALUE);
void rb_define_global_const(const char*,VALUE);

#define RUBY_METHOD_FUNC(func) ((VALUE (*)(ANYARGS))(func))
void rb_define_method(VALUE,const char*,VALUE(*)(ANYARGS),int);
void rb_define_module_function(VALUE,const char*,VALUE(*)(ANYARGS),int);
void rb_define_global_function(const char*,VALUE(*)(ANYARGS),int);

void rb_undef_method(VALUE,const char*);
void rb_define_alias(VALUE,const char*,const char*);
void rb_define_attr(VALUE,const char*,int,int);

void rb_global_variable(VALUE*);
void rb_gc_register_mark_object(VALUE);
void rb_gc_register_address(VALUE*);
void rb_gc_unregister_address(VALUE*);

ID rb_intern(const char*);
ID rb_intern2(const char*, long);
ID rb_intern_str(VALUE str);
const char *rb_id2name(ID);
ID rb_check_id(volatile VALUE *);
ID rb_to_id(VALUE);
VALUE rb_id2str(ID);
VALUE rb_sym2str(VALUE);
VALUE rb_to_symbol(VALUE name);
VALUE rb_check_symbol(volatile VALUE *namep);

#define CONST_ID_CACHE(result, str)			\
    {							\
	static ID rb_intern_id_cache;			\
	if (!rb_intern_id_cache)			\
	    rb_intern_id_cache = rb_intern2((str), (long)strlen(str)); \
	result rb_intern_id_cache;			\
    }
#define CONST_ID(var, str) \
    do CONST_ID_CACHE((var) =, (str)) while (0)
#ifdef __GNUC__
/* __builtin_constant_p and statement expression is available
 * since gcc-2.7.2.3 at least. */
#define rb_intern(str) \
    (__builtin_constant_p(str) ? \
        __extension__ (CONST_ID_CACHE((ID), (str))) : \
        rb_intern(str))
#define rb_intern_const(str) \
    (__builtin_constant_p(str) ? \
     __extension__ (rb_intern2((str), (long)strlen(str))) : \
     (rb_intern)(str))
#else
#define rb_intern_const(str) rb_intern2((str), (long)strlen(str))
#endif

const char *rb_class2name(VALUE);
const char *rb_obj_classname(VALUE);

void rb_p(VALUE);

VALUE rb_eval_string(const char*);
VALUE rb_eval_string_protect(const char*, int*);
VALUE rb_eval_string_wrap(const char*, int*);
VALUE rb_funcall(VALUE, ID, int, ...);
VALUE rb_funcallv(VALUE, ID, int, const VALUE*);
VALUE rb_funcallv_public(VALUE, ID, int, const VALUE*);
#define rb_funcall2 rb_funcallv
#define rb_funcall3 rb_funcallv_public
VALUE rb_funcall_passing_block(VALUE, ID, int, const VALUE*);
VALUE rb_funcall_with_block(VALUE, ID, int, const VALUE*, VALUE);
int rb_scan_args(int, const VALUE*, const char*, ...);
VALUE rb_call_super(int, const VALUE*);
VALUE rb_current_receiver(void);
int rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, VALUE *);
VALUE rb_extract_keywords(VALUE *orighash);

/* rb_scan_args() format allows ':' for optional hash */
#define HAVE_RB_SCAN_ARGS_OPTIONAL_HASH 1

VALUE rb_gv_set(const char*, VALUE);
VALUE rb_gv_get(const char*);
VALUE rb_iv_get(VALUE, const char*);
VALUE rb_iv_set(VALUE, const char*, VALUE);

VALUE rb_equal(VALUE,VALUE);

VALUE *rb_ruby_verbose_ptr(void);
VALUE *rb_ruby_debug_ptr(void);
#define ruby_verbose (*rb_ruby_verbose_ptr())
#define ruby_debug   (*rb_ruby_debug_ptr())

PRINTF_ARGS(NORETURN(void rb_raise(VALUE, const char*, ...)), 2, 3);
PRINTF_ARGS(NORETURN(void rb_fatal(const char*, ...)), 1, 2);
PRINTF_ARGS(NORETURN(void rb_bug(const char*, ...)), 1, 2);
NORETURN(void rb_bug_errno(const char*, int));
NORETURN(void rb_sys_fail(const char*));
NORETURN(void rb_sys_fail_str(VALUE));
NORETURN(void rb_mod_sys_fail(VALUE, const char*));
NORETURN(void rb_mod_sys_fail_str(VALUE, VALUE));
NORETURN(void rb_readwrite_sys_fail(int, const char*));
NORETURN(void rb_iter_break(void));
NORETURN(void rb_iter_break_value(VALUE));
NORETURN(void rb_exit(int));
NORETURN(void rb_notimplement(void));
VALUE rb_syserr_new(int, const char *);
VALUE rb_syserr_new_str(int n, VALUE arg);
NORETURN(void rb_syserr_fail(int, const char*));
NORETURN(void rb_syserr_fail_str(int, VALUE));
NORETURN(void rb_mod_syserr_fail(VALUE, int, const char*));
NORETURN(void rb_mod_syserr_fail_str(VALUE, int, VALUE));

/* reports if `-W' specified */
PRINTF_ARGS(void rb_warning(const char*, ...), 1, 2);
PRINTF_ARGS(void rb_compile_warning(const char *, int, const char*, ...), 3, 4);
PRINTF_ARGS(void rb_sys_warning(const char*, ...), 1, 2);
/* reports always */
PRINTF_ARGS(void rb_warn(const char*, ...), 1, 2);
PRINTF_ARGS(void rb_compile_warn(const char *, int, const char*, ...), 3, 4);

/* for rb_readwrite_sys_fail first argument */
#define RB_IO_WAIT_READABLE 0
#define RB_IO_WAIT_WRITABLE 1

#define RUBY_BLOCK_CALL_FUNC_TAKES_BLOCKARG 1
#define RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg) \
    VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg
typedef VALUE rb_block_call_func(RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg));

#if defined RB_BLOCK_CALL_FUNC_STRICT && RB_BLOCK_CALL_FUNC_STRICT
typedef rb_block_call_func *rb_block_call_func_t;
#else
typedef VALUE (*rb_block_call_func_t)(ANYARGS);
#endif

VALUE rb_each(VALUE);
VALUE rb_yield(VALUE);
VALUE rb_yield_values(int n, ...);
VALUE rb_yield_values2(int n, const VALUE *argv);
VALUE rb_yield_splat(VALUE);
VALUE rb_yield_block(VALUE, VALUE, int, const VALUE *, VALUE); /* rb_block_call_func */
int rb_block_given_p(void);
void rb_need_block(void);
VALUE rb_iterate(VALUE(*)(VALUE),VALUE,VALUE(*)(ANYARGS),VALUE);
VALUE rb_block_call(VALUE,ID,int,const VALUE*,rb_block_call_func_t,VALUE);
VALUE rb_rescue(VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE);
VALUE rb_rescue2(VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE,...);
VALUE rb_ensure(VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE);
VALUE rb_catch(const char*,VALUE(*)(ANYARGS),VALUE);
VALUE rb_catch_obj(VALUE,VALUE(*)(ANYARGS),VALUE);
NORETURN(void rb_throw(const char*,VALUE));
NORETURN(void rb_throw_obj(VALUE,VALUE));

VALUE rb_require(const char*);

RUBY_EXTERN VALUE rb_mKernel;
RUBY_EXTERN VALUE rb_mComparable;
RUBY_EXTERN VALUE rb_mEnumerable;
RUBY_EXTERN VALUE rb_mErrno;
RUBY_EXTERN VALUE rb_mFileTest;
RUBY_EXTERN VALUE rb_mGC;
RUBY_EXTERN VALUE rb_mMath;
RUBY_EXTERN VALUE rb_mProcess;
RUBY_EXTERN VALUE rb_mWaitReadable;
RUBY_EXTERN VALUE rb_mWaitWritable;

RUBY_EXTERN VALUE rb_cBasicObject;
RUBY_EXTERN VALUE rb_cObject;
RUBY_EXTERN VALUE rb_cArray;
RUBY_EXTERN VALUE rb_cBignum;
RUBY_EXTERN VALUE rb_cBinding;
RUBY_EXTERN VALUE rb_cClass;
RUBY_EXTERN VALUE rb_cCont;
RUBY_EXTERN VALUE rb_cDir;
RUBY_EXTERN VALUE rb_cData;
RUBY_EXTERN VALUE rb_cFalseClass;
RUBY_EXTERN VALUE rb_cEncoding;
RUBY_EXTERN VALUE rb_cEnumerator;
RUBY_EXTERN VALUE rb_cFile;
RUBY_EXTERN VALUE rb_cFixnum;
RUBY_EXTERN VALUE rb_cFloat;
RUBY_EXTERN VALUE rb_cHash;
RUBY_EXTERN VALUE rb_cInteger;
RUBY_EXTERN VALUE rb_cIO;
RUBY_EXTERN VALUE rb_cMatch;
RUBY_EXTERN VALUE rb_cMethod;
RUBY_EXTERN VALUE rb_cModule;
RUBY_EXTERN VALUE rb_cNameErrorMesg;
RUBY_EXTERN VALUE rb_cNilClass;
RUBY_EXTERN VALUE rb_cNumeric;
RUBY_EXTERN VALUE rb_cProc;
RUBY_EXTERN VALUE rb_cRandom;
RUBY_EXTERN VALUE rb_cRange;
RUBY_EXTERN VALUE rb_cRational;
RUBY_EXTERN VALUE rb_cComplex;
RUBY_EXTERN VALUE rb_cRegexp;
RUBY_EXTERN VALUE rb_cStat;
RUBY_EXTERN VALUE rb_cString;
RUBY_EXTERN VALUE rb_cStruct;
RUBY_EXTERN VALUE rb_cSymbol;
RUBY_EXTERN VALUE rb_cThread;
RUBY_EXTERN VALUE rb_cTime;
RUBY_EXTERN VALUE rb_cTrueClass;
RUBY_EXTERN VALUE rb_cUnboundMethod;

RUBY_EXTERN VALUE rb_eException;
RUBY_EXTERN VALUE rb_eStandardError;
RUBY_EXTERN VALUE rb_eSystemExit;
RUBY_EXTERN VALUE rb_eInterrupt;
RUBY_EXTERN VALUE rb_eSignal;
RUBY_EXTERN VALUE rb_eFatal;
RUBY_EXTERN VALUE rb_eArgError;
RUBY_EXTERN VALUE rb_eEOFError;
RUBY_EXTERN VALUE rb_eIndexError;
RUBY_EXTERN VALUE rb_eStopIteration;
RUBY_EXTERN VALUE rb_eKeyError;
RUBY_EXTERN VALUE rb_eRangeError;
RUBY_EXTERN VALUE rb_eIOError;
RUBY_EXTERN VALUE rb_eRuntimeError;
RUBY_EXTERN VALUE rb_eSecurityError;
RUBY_EXTERN VALUE rb_eSystemCallError;
RUBY_EXTERN VALUE rb_eThreadError;
RUBY_EXTERN VALUE rb_eTypeError;
RUBY_EXTERN VALUE rb_eZeroDivError;
RUBY_EXTERN VALUE rb_eNotImpError;
RUBY_EXTERN VALUE rb_eNoMemError;
RUBY_EXTERN VALUE rb_eNoMethodError;
RUBY_EXTERN VALUE rb_eFloatDomainError;
RUBY_EXTERN VALUE rb_eLocalJumpError;
RUBY_EXTERN VALUE rb_eSysStackError;
RUBY_EXTERN VALUE rb_eRegexpError;
RUBY_EXTERN VALUE rb_eEncodingError;
RUBY_EXTERN VALUE rb_eEncCompatError;

RUBY_EXTERN VALUE rb_eScriptError;
RUBY_EXTERN VALUE rb_eNameError;
RUBY_EXTERN VALUE rb_eSyntaxError;
RUBY_EXTERN VALUE rb_eLoadError;

RUBY_EXTERN VALUE rb_eMathDomainError;

RUBY_EXTERN VALUE rb_stdin, rb_stdout, rb_stderr;

static inline VALUE
rb_class_of(VALUE obj)
{
    if (IMMEDIATE_P(obj)) {
	if (FIXNUM_P(obj)) return rb_cFixnum;
	if (FLONUM_P(obj)) return rb_cFloat;
	if (obj == Qtrue)  return rb_cTrueClass;
	if (STATIC_SYM_P(obj)) return rb_cSymbol;
    }
    else if (!RTEST(obj)) {
	if (obj == Qnil)   return rb_cNilClass;
	if (obj == Qfalse) return rb_cFalseClass;
    }
    return RBASIC(obj)->klass;
}

static inline int
rb_type(VALUE obj)
{
    if (IMMEDIATE_P(obj)) {
	if (FIXNUM_P(obj)) return T_FIXNUM;
        if (FLONUM_P(obj)) return T_FLOAT;
        if (obj == Qtrue)  return T_TRUE;
	if (STATIC_SYM_P(obj)) return T_SYMBOL;
	if (obj == Qundef) return T_UNDEF;
    }
    else if (!RTEST(obj)) {
	if (obj == Qnil)   return T_NIL;
	if (obj == Qfalse) return T_FALSE;
    }
    return BUILTIN_TYPE(obj);
}

#ifdef __GNUC__
#define rb_type_p(obj, type) \
    __extension__ (__builtin_constant_p(type) ? RB_TYPE_P((obj), (type)) : \
		   rb_type(obj) == (type))
#else
#define rb_type_p(obj, type) (rb_type(obj) == (type))
#endif

#ifdef __GNUC__
#define rb_special_const_p(obj) \
    __extension__ ({VALUE special_const_obj = (obj); (int)(SPECIAL_CONST_P(special_const_obj) ? Qtrue : Qfalse);})
#else
static inline int
rb_special_const_p(VALUE obj)
{
    if (SPECIAL_CONST_P(obj)) return (int)Qtrue;
    return (int)Qfalse;
}
#endif

#include "ruby/intern.h"

#if defined(EXTLIB) && defined(USE_DLN_A_OUT)
/* hook for external modules */
static char *dln_libs_to_be_linked[] = { EXTLIB, 0 };
#endif

#define RUBY_VM 1 /* YARV */
#define HAVE_NATIVETHREAD
int ruby_native_thread_p(void);

/* traditional set_trace_func events */
#define RUBY_EVENT_NONE      0x0000
#define RUBY_EVENT_LINE      0x0001
#define RUBY_EVENT_CLASS     0x0002
#define RUBY_EVENT_END       0x0004
#define RUBY_EVENT_CALL      0x0008
#define RUBY_EVENT_RETURN    0x0010
#define RUBY_EVENT_C_CALL    0x0020
#define RUBY_EVENT_C_RETURN  0x0040
#define RUBY_EVENT_RAISE     0x0080
#define RUBY_EVENT_ALL       0x00ff

/* for TracePoint extended events */
#define RUBY_EVENT_B_CALL            0x0100
#define RUBY_EVENT_B_RETURN          0x0200
#define RUBY_EVENT_THREAD_BEGIN      0x0400
#define RUBY_EVENT_THREAD_END        0x0800
#define RUBY_EVENT_TRACEPOINT_ALL    0xffff

/* special events */
#define RUBY_EVENT_SPECIFIED_LINE         0x010000
#define RUBY_EVENT_COVERAGE               0x020000

/* internal events */
#define RUBY_INTERNAL_EVENT_SWITCH          0x040000
#define RUBY_EVENT_SWITCH                   0x040000 /* obsolete name. this macro is for compatibility */
                                         /* 0x080000 */
#define RUBY_INTERNAL_EVENT_NEWOBJ          0x100000
#define RUBY_INTERNAL_EVENT_FREEOBJ         0x200000
#define RUBY_INTERNAL_EVENT_GC_START        0x400000
#define RUBY_INTERNAL_EVENT_GC_END_MARK     0x800000
#define RUBY_INTERNAL_EVENT_GC_END_SWEEP   0x1000000
#define RUBY_INTERNAL_EVENT_GC_ENTER       0x2000000
#define RUBY_INTERNAL_EVENT_GC_EXIT        0x4000000
#define RUBY_INTERNAL_EVENT_OBJSPACE_MASK  0x7f00000
#define RUBY_INTERNAL_EVENT_MASK          0xfffe0000

typedef uint32_t rb_event_flag_t;
typedef void (*rb_event_hook_func_t)(rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass);

#define RB_EVENT_HOOKS_HAVE_CALLBACK_DATA 1
void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data);
int rb_remove_event_hook(rb_event_hook_func_t func);

/* locale insensitive functions */

#define rb_isascii(c) ((unsigned long)(c) < 128)
int rb_isalnum(int c);
int rb_isalpha(int c);
int rb_isblank(int c);
int rb_iscntrl(int c);
int rb_isdigit(int c);
int rb_isgraph(int c);
int rb_islower(int c);
int rb_isprint(int c);
int rb_ispunct(int c);
int rb_isspace(int c);
int rb_isupper(int c);
int rb_isxdigit(int c);
int rb_tolower(int c);
int rb_toupper(int c);

#ifndef ISPRINT
#define ISASCII(c) rb_isascii((unsigned char)(c))
#undef ISPRINT
#define ISPRINT(c) rb_isprint((unsigned char)(c))
#define ISGRAPH(c) rb_isgraph((unsigned char)(c))
#define ISSPACE(c) rb_isspace((unsigned char)(c))
#define ISUPPER(c) rb_isupper((unsigned char)(c))
#define ISLOWER(c) rb_islower((unsigned char)(c))
#define ISALNUM(c) rb_isalnum((unsigned char)(c))
#define ISALPHA(c) rb_isalpha((unsigned char)(c))
#define ISDIGIT(c) rb_isdigit((unsigned char)(c))
#define ISXDIGIT(c) rb_isxdigit((unsigned char)(c))
#endif
#define TOUPPER(c) rb_toupper((unsigned char)(c))
#define TOLOWER(c) rb_tolower((unsigned char)(c))

int st_locale_insensitive_strcasecmp(const char *s1, const char *s2);
int st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n);
#define STRCASECMP(s1, s2) (st_locale_insensitive_strcasecmp((s1), (s2)))
#define STRNCASECMP(s1, s2, n) (st_locale_insensitive_strncasecmp((s1), (s2), (n)))

unsigned long ruby_strtoul(const char *str, char **endptr, int base);
#define STRTOUL(str, endptr, base) (ruby_strtoul((str), (endptr), (base)))

#define InitVM(ext) {void InitVM_##ext(void);InitVM_##ext();}

PRINTF_ARGS(int ruby_snprintf(char *str, size_t n, char const *fmt, ...), 3, 4);
int ruby_vsnprintf(char *str, size_t n, char const *fmt, va_list ap);

#ifndef RUBY_DONT_SUBST
#include "ruby/subst.h"
#endif

/**
 * @defgroup embed CRuby Embedding APIs
 * CRuby interpreter APIs. These are APIs to embed MRI interpreter into your
 * program.
 * These functions are not a part of Ruby extension library API.
 * Extension libraries of Ruby should not depend on these functions.
 * @{
 */

/** @defgroup ruby1 ruby(1) implementation
 * A part of the implementation of ruby(1) command.
 * Other programs that embed Ruby interpreter do not always need to use these
 * functions.
 * @{
 */

void ruby_sysinit(int *argc, char ***argv);
void ruby_init(void);
void* ruby_options(int argc, char** argv);
int ruby_executable_node(void *n, int *status);
int ruby_run_node(void *n);

/* version.c */
void ruby_show_version(void);
void ruby_show_copyright(void);


/*! A convenience macro to call ruby_init_stack(). Must be placed just after
 *  variable declarations */
#define RUBY_INIT_STACK \
    VALUE variable_in_this_stack_frame; \
    ruby_init_stack(&variable_in_this_stack_frame);
/*! @} */

#ifdef __ia64
void ruby_init_stack(volatile VALUE*, void*);
#define ruby_init_stack(addr) ruby_init_stack((addr), rb_ia64_bsp())
#else
void ruby_init_stack(volatile VALUE*);
#endif
#define Init_stack(addr) ruby_init_stack(addr)

int ruby_setup(void);
int ruby_cleanup(volatile int);

void ruby_finalize(void);
NORETURN(void ruby_stop(int));

void ruby_set_stack_size(size_t);
int ruby_stack_check(void);
size_t ruby_stack_length(VALUE**);

int ruby_exec_node(void *n);

void ruby_script(const char* name);
void ruby_set_script_name(VALUE name);

void ruby_prog_init(void);
void ruby_set_argv(int, char**);
void *ruby_process_options(int, char**);
void ruby_init_loadpath(void);
void ruby_incpush(const char*);
void ruby_sig_finalize(void);

/*! @} */

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif
#endif /* RUBY_RUBY_H */
include/ruby-2.2.0/ruby/regex.h000064400000001420150402105670012046 0ustar00/**********************************************************************

  regex.h -

  $Author: nobu $

  Copyright (C) 1993-2007 Yukihiro Matsumoto

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

#ifndef ONIGURUMA_REGEX_H
#define ONIGURUMA_REGEX_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

#ifdef RUBY
#include "ruby/oniguruma.h"
#else
#include "oniguruma.h"
#endif

RUBY_SYMBOL_EXPORT_BEGIN

#ifndef ONIG_RUBY_M17N

ONIG_EXTERN OnigEncoding    OnigEncDefaultCharEncoding;

#define mbclen(p,e,enc)  rb_enc_mbclen((p),(e),(enc))

#endif /* ifndef ONIG_RUBY_M17N */

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* ONIGURUMA_REGEX_H */
include/ruby-2.2.0/ruby/missing.h000064400000011330150402105670012406 0ustar00/************************************************

  missing.h - prototype for *.c in ./missing, and
  	      for missing timeval struct

  $Author: usa $
  created at: Sat May 11 23:46:03 JST 2002

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

#ifndef RUBY_MISSING_H
#define RUBY_MISSING_H 1

#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

#include "ruby/config.h"
#include <stddef.h>
#include <math.h> /* for INFINITY and NAN */
#ifdef RUBY_ALTERNATIVE_MALLOC_HEADER
# include RUBY_ALTERNATIVE_MALLOC_HEADER
#endif
#ifdef RUBY_EXTCONF_H
#include RUBY_EXTCONF_H
#endif

#if !defined(HAVE_STRUCT_TIMEVAL) || !defined(HAVE_STRUCT_TIMESPEC)
#if defined(HAVE_TIME_H)
# include <time.h>
#endif
#if defined(HAVE_SYS_TIME_H)
# include <sys/time.h>
#endif
#endif

#ifndef RUBY_SYMBOL_EXPORT_BEGIN
# define RUBY_SYMBOL_EXPORT_BEGIN /* begin */
# define RUBY_SYMBOL_EXPORT_END   /* end */
#endif

#if !defined(HAVE_STRUCT_TIMEVAL)
struct timeval {
    time_t tv_sec;	/* seconds */
    long tv_usec;	/* microseconds */
};
#endif /* HAVE_STRUCT_TIMEVAL */

#if !defined(HAVE_STRUCT_TIMESPEC)
struct timespec {
    time_t tv_sec;	/* seconds */
    long tv_nsec;	/* nanoseconds */
};
#endif

#if !defined(HAVE_STRUCT_TIMEZONE)
struct timezone {
    int tz_minuteswest;
    int tz_dsttime;
};
#endif

#ifdef RUBY_EXPORT
#undef RUBY_EXTERN
#endif
#ifndef RUBY_EXTERN
#define RUBY_EXTERN extern
#endif

RUBY_SYMBOL_EXPORT_BEGIN

#ifndef HAVE_ACOSH
RUBY_EXTERN double acosh(double);
RUBY_EXTERN double asinh(double);
RUBY_EXTERN double atanh(double);
#endif

#ifndef HAVE_CRYPT
RUBY_EXTERN char *crypt(const char *, const char *);
#endif

#ifndef HAVE_DUP2
RUBY_EXTERN int dup2(int, int);
#endif

#ifndef HAVE_EACCESS
RUBY_EXTERN int eaccess(const char*, int);
#endif

#ifndef HAVE_ROUND
RUBY_EXTERN double round(double);	/* numeric.c */
#endif

#ifndef HAVE_FINITE
RUBY_EXTERN int finite(double);
#endif

#ifndef HAVE_FLOCK
RUBY_EXTERN int flock(int, int);
#endif

/*
#ifndef HAVE_FREXP
RUBY_EXTERN double frexp(double, int *);
#endif
*/

#ifndef HAVE_HYPOT
RUBY_EXTERN double hypot(double, double);
#endif

#ifndef HAVE_ERF
RUBY_EXTERN double erf(double);
RUBY_EXTERN double erfc(double);
#endif

#ifndef HAVE_TGAMMA
RUBY_EXTERN double tgamma(double);
#endif

#ifndef HAVE_LGAMMA_R
RUBY_EXTERN double lgamma_r(double, int *);
#endif

#ifndef HAVE_CBRT
RUBY_EXTERN double cbrt(double);
#endif

#if !defined(INFINITY) || !defined(NAN)
union bytesequence4_or_float {
  unsigned char bytesequence[4];
  float float_value;
};
#endif

#ifdef INFINITY
# define HAVE_INFINITY
#else
/** @internal */
RUBY_EXTERN const union bytesequence4_or_float rb_infinity;
# define INFINITY (rb_infinity.float_value)
#endif

#ifdef NAN
# define HAVE_NAN
#else
/** @internal */
RUBY_EXTERN const union bytesequence4_or_float rb_nan;
# define NAN (rb_nan.float_value)
#endif

#ifndef isinf
# ifndef HAVE_ISINF
#  if defined(HAVE_FINITE) && defined(HAVE_ISNAN)
#    ifdef HAVE_IEEEFP_H
#    include <ieeefp.h>
#    endif
#  define isinf(x) (!finite(x) && !isnan(x))
#  else
RUBY_EXTERN int isinf(double);
#  endif
# endif
#endif

#ifndef isnan
# ifndef HAVE_ISNAN
RUBY_EXTERN int isnan(double);
# endif
#endif

#ifndef isfinite
# ifndef HAVE_ISFINITE
#   define HAVE_ISFINITE 1
#   define isfinite(x) finite(x)
# endif
#endif

#ifndef HAVE_NEXTAFTER
RUBY_EXTERN double nextafter(double x, double y);
#endif

/*
#ifndef HAVE_MEMCMP
RUBY_EXTERN int memcmp(const void *, const void *, size_t);
#endif
*/

#ifndef HAVE_MEMMOVE
RUBY_EXTERN void *memmove(void *, const void *, size_t);
#endif

/*
#ifndef HAVE_MODF
RUBY_EXTERN double modf(double, double *);
#endif
*/

#ifndef HAVE_STRCHR
RUBY_EXTERN char *strchr(const char *, int);
RUBY_EXTERN char *strrchr(const char *, int);
#endif

#ifndef HAVE_STRERROR
RUBY_EXTERN char *strerror(int);
#endif

#ifndef HAVE_STRSTR
RUBY_EXTERN char *strstr(const char *, const char *);
#endif

/*
#ifndef HAVE_STRTOL
RUBY_EXTERN long strtol(const char *, char **, int);
#endif
*/

#ifndef HAVE_STRLCPY
RUBY_EXTERN size_t strlcpy(char *, const char*, size_t);
#endif

#ifndef HAVE_STRLCAT
RUBY_EXTERN size_t strlcat(char *, const char*, size_t);
#endif

#ifndef HAVE_SIGNBIT
RUBY_EXTERN int signbit(double x);
#endif

#ifndef HAVE_FFS
RUBY_EXTERN int ffs(int);
#endif

#ifdef BROKEN_CLOSE
#include <sys/types.h>
#include <sys/socket.h>
RUBY_EXTERN int ruby_getpeername(int, struct sockaddr *, socklen_t *);
RUBY_EXTERN int ruby_getsockname(int, struct sockaddr *, socklen_t *);
RUBY_EXTERN int ruby_shutdown(int, int);
RUBY_EXTERN int ruby_close(int);
#endif

#ifndef HAVE_SETPROCTITLE
RUBY_EXTERN void setproctitle(const char *fmt, ...);
#endif

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif

#endif /* RUBY_MISSING_H */
include/ruby-2.2.0/ruby/thread_native.h000064400000002465150402105670013563 0ustar00/**********************************************************************

  thread_native.h -

  $Author: ko1 $
  created at: Wed May 14 19:37:31 2014

  Copyright (C) 2014 Yukihiro Matsumoto

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

#ifndef RUBY_THREAD_NATIVE_H
#define RUBY_THREAD_NATIVE_H 1

/*
 * This file contains wrapper APIs for native thread primitives
 * which Ruby interpreter uses.
 *
 * Now, we only suppors pthread and Windows threads.
 *
 * If you want to use Ruby's Mutex and so on to synchronize Ruby Threads,
 * please use Mutex directly.
 */


#if defined(_WIN32)
#include <windows.h>
typedef HANDLE rb_nativethread_id_t;

typedef union rb_thread_lock_union {
    HANDLE mutex;
    CRITICAL_SECTION crit;
} rb_nativethread_lock_t;

#elif defined(HAVE_PTHREAD_H)
#include <pthread.h>
typedef pthread_t rb_nativethread_id_t;
typedef pthread_mutex_t rb_nativethread_lock_t;

#else
#error "unsupported thread type"

#endif

RUBY_SYMBOL_EXPORT_BEGIN

rb_nativethread_id_t rb_nativethread_self();

void rb_nativethread_lock_initialize(rb_nativethread_lock_t *lock);
void rb_nativethread_lock_destroy(rb_nativethread_lock_t *lock);
void rb_nativethread_lock_lock(rb_nativethread_lock_t *lock);
void rb_nativethread_lock_unlock(rb_nativethread_lock_t *lock);

RUBY_SYMBOL_EXPORT_END

#endif
include/ruby-2.2.0/ruby/version.h000064400000003512150402105700012417 0ustar00/**********************************************************************

  ruby/version.h -

  $Author: nagachika $
  created at: Wed May 13 12:56:56 JST 2009

  Copyright (C) 1993-2009 Yukihiro Matsumoto
  Copyright (C) 2000  Network Applied Communication Laboratory, Inc.
  Copyright (C) 2000  Information-technology Promotion Agency, Japan

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

/*
 * This file contains only
 * - never-changeable informations, and
 * - interfaces accessible from extension libraries.
 *
 * Never try to check RUBY_VERSION_CODE etc in extension libraries,
 * check the features with mkmf.rb instead.
 */

#ifndef RUBY_VERSION_H
#define RUBY_VERSION_H 1

/* The origin. */
#define RUBY_AUTHOR "Yukihiro Matsumoto"
#define RUBY_BIRTH_YEAR 1993
#define RUBY_BIRTH_MONTH 2
#define RUBY_BIRTH_DAY 24

/* API version */
#define RUBY_API_VERSION_MAJOR 2
#define RUBY_API_VERSION_MINOR 2
#define RUBY_API_VERSION_TEENY 0
#define RUBY_API_VERSION_CODE (RUBY_API_VERSION_MAJOR*10000+RUBY_API_VERSION_MINOR*100+RUBY_API_VERSION_TEENY)

#ifdef RUBY_EXTERN
#if defined(__cplusplus)
extern "C" {
#if 0
} /* satisfy cc-mode */
#endif
#endif

RUBY_SYMBOL_EXPORT_BEGIN

/*
 * Interfaces from extension libraries.
 *
 * Before using these infos, think thrice whether they are really
 * necessary or not, and if the answer was yes, think twice a week
 * later again.
 */
RUBY_EXTERN const int ruby_api_version[3];
RUBY_EXTERN const char ruby_version[];
RUBY_EXTERN const char ruby_release_date[];
RUBY_EXTERN const char ruby_platform[];
RUBY_EXTERN const int  ruby_patchlevel;
RUBY_EXTERN const char ruby_description[];
RUBY_EXTERN const char ruby_copyright[];
RUBY_EXTERN const char ruby_engine[];

RUBY_SYMBOL_EXPORT_END

#if defined(__cplusplus)
#if 0
{ /* satisfy cc-mode */
#endif
}  /* extern "C" { */
#endif
#endif

#endif
bin/irb000075500000000305150402105700006006 0ustar00#!/opt/alt/ruby22/bin/ruby
#
#   irb.rb - interactive ruby
#   	$Release Version: 0.9.6 $
#   	$Revision: 40560 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#

require "irb"

IRB.start(__FILE__)
bin/gem000075500000001051150402105700006001 0ustar00#!/opt/alt/ruby22/bin/ruby
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rubygems'
require 'rubygems/gem_runner'
require 'rubygems/exceptions'

required_version = Gem::Requirement.new ">= 1.8.7"

unless required_version.satisfied_by? Gem.ruby_version then
  abort "Expected Ruby Version #{required_version}, is #{Gem.ruby_version}"
end

args = ARGV.clone

begin
  Gem::GemRunner.new.run args
rescue Gem::SystemExitException => e
  exit e.exit_code
end

bin/rdoc000075500000001661150402105700006167 0ustar00#!/opt/alt/ruby22/bin/ruby
#
#  RDoc: Documentation tool for source code
#        (see lib/rdoc/rdoc.rb for more information)
#
#  Copyright (c) 2003 Dave Thomas
#  Released under the same terms as Ruby

begin
  gem 'rdoc'
rescue NameError => e # --disable-gems
  raise unless e.name == :gem
rescue Gem::LoadError
end

require 'rdoc/rdoc'

begin
  r = RDoc::RDoc.new
  r.document ARGV
rescue Errno::ENOSPC
  $stderr.puts 'Ran out of space creating documentation'
  $stderr.puts
  $stderr.puts 'Please free up some space and try again'
rescue SystemExit
  raise
rescue Exception => e
  if $DEBUG_RDOC then
    $stderr.puts e.message
    $stderr.puts "#{e.backtrace.join "\n\t"}"
    $stderr.puts
  elsif Interrupt === e then
    $stderr.puts
    $stderr.puts 'Interrupted'
  else
    $stderr.puts "uh-oh! RDoc had a problem:"
    $stderr.puts e.message
    $stderr.puts
    $stderr.puts "run with --debug for full backtrace"
  end

  exit 1
end

bin/rackup000075500000000756150402105700006531 0ustar00#!/opt/alt/ruby22/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'rack' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'

version = ">= 0"

if ARGV.first
  str = ARGV.first
  str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
  if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
    version = $1
    ARGV.shift
  end
end

gem 'rack', version
load Gem.bin_path('rack', 'rackup', version)
bin/rake000075500000002343150402105700006160 0ustar00#!/opt/alt/ruby22/bin/ruby

#--
# Copyright (c) 2003, 2004, 2005, 2006, 2007  Jim Weirich
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
#++

begin
  require 'rubygems'
  gem 'rake'
rescue LoadError
end

require 'rake'

Rake.application.run
bin/erb000075500000011361150402105700006006 0ustar00#!/opt/alt/ruby22/bin/ruby
# Tiny eRuby --- ERB2
# Copyright (c) 1999-2000,2002 Masatoshi SEKI
# You can redistribute it and/or modify it under the same terms as Ruby.

require 'erb'

class ERB
  module Main
    def ARGV.switch
      return nil if self.empty?
      arg = self.shift
      return nil if arg == '--'
      case arg
      when /\A-(.)(.*)/
        if $1 == '-'
          arg, @maybe_arg = arg.split(/=/, 2)
          return arg
        end
        raise 'unknown switch "-"' if $2[0] == ?- and $1 != 'T'
        if $2.size > 0
          self.unshift "-#{$2}"
          @maybe_arg = $2
        else
          @maybe_arg = nil
        end
        "-#{$1}"
      when /\A(\w+)=/
        arg
      else
        self.unshift arg
        nil
      end
    end

    def ARGV.req_arg
      (@maybe_arg || self.shift || raise('missing argument')).tap {
        @maybe_arg = nil
      }
    end

    def trim_mode_opt(trim_mode, disable_percent)
      return trim_mode if disable_percent
      case trim_mode
      when 0
        return '%'
      when 1
        return '%>'
      when 2
        return '%<>'
      when '-'
        return '%-'
      end
    end
    module_function :trim_mode_opt

    def run(factory=ERB)
      trim_mode = 0
      disable_percent = false
      variables = {}
      begin
        while switch = ARGV.switch
          case switch
          when '-x'                        # ruby source
            output = true
          when '-n'                        # line number
            number = true
          when '-v'                        # verbose
            $VERBOSE = true
          when '--version'                 # version
            STDERR.puts factory.version
            exit
          when '-d', '--debug'             # debug
            $DEBUG = true
          when '-r'                        # require
            require ARGV.req_arg
          when '-S'                        # security level
            arg = ARGV.req_arg
            raise "invalid safe_level #{arg.dump}" unless arg =~ /\A[0-3]\z/
            safe_level = arg.to_i
          when '-T'                        # trim mode
            arg = ARGV.req_arg
            if arg == '-'
              trim_mode = arg
              next
            end
            raise "invalid trim mode #{arg.dump}" unless arg =~ /\A[0-2]\z/
            trim_mode = arg.to_i
          when '-E', '--encoding'
            arg = ARGV.req_arg
            set_encoding(*arg.split(/:/, 2))
          when '-U'
            set_encoding(Encoding::UTF_8, Encoding::UTF_8)
          when '-P'
            disable_percent = true
          when '--help'
            raise "print this help"
          when /\A-/
            raise "unknown switch #{switch.dump}"
          else
            var, val = *switch.split('=', 2)
            (variables ||= {})[var] = val
          end
        end
      rescue                               # usage
        STDERR.puts $!.to_s
        STDERR.puts File.basename($0) +
          " [switches] [var=value...] [inputfile]"
        STDERR.puts <<EOU
  -x               print ruby script
  -n               print ruby script with line number
  -v               enable verbose mode
  -d               set $DEBUG to true
  -r library       load a library
  -S safe_level    set $SAFE (0..3)
  -E ex[:in]       set default external/internal encodings
  -U               set default encoding to UTF-8.
  -T trim_mode     specify trim_mode (0..2, -)
  -P               ignore lines which start with "%"
  var=value        set variable
EOU
        exit 1
      end

      $<.set_encoding(Encoding::ASCII_8BIT, nil)
      src = $<.read
      filename = $FILENAME
      exit 2 unless src
      trim = trim_mode_opt(trim_mode, disable_percent)
      erb = factory.new(src.untaint, safe_level, trim)
      erb.filename = filename
      if output
        if number
          erb.src.each_line.with_index do |line, l|
            puts "%3d %s"%[l+1, line]
          end
        else
          puts erb.src
        end
      else
        bind = TOPLEVEL_BINDING.taint
        if variables
          enc = erb.encoding
          for var, val in variables do
            val = val.encode(enc) if val
            bind.local_variable_set(var, val)
          end
        end
        erb.run(bind)
      end
    end
    module_function :run

    def set_encoding(extern, intern = nil)
      verbose, $VERBOSE = $VERBOSE, nil
      Encoding.default_external = extern unless extern.nil? || extern == ""
      Encoding.default_internal = intern unless intern.nil? || intern == ""
      [$stdin, $stdout, $stderr].each do |io|
        io.set_encoding(extern, intern)
      end
    ensure
      $VERBOSE = verbose
    end
    module_function :set_encoding
    class << self; private :set_encoding; end
  end
end

if __FILE__ == $0
  ERB::Main.run
end
bin/ruby000075500000017740150402105700006226 0ustar00ELF>`	@@ @8@@@@@@hh��@�@@@(( �
�
`�
`�� �
�
`�
`00��@�@  ��@�@DDS�td��@�@  P�td�
�
@�
@DDQ�tdR�td�
�
`�
```/lib64/ld-linux-x86-64.so.2GNU�GNUGNU+���.$��{�'��"��m��Q! e�BE��j	Cֻ�|:��K����2b���qX
� �U�m, z�c; �L`H`P` H`%�
@4P
@e`	@/�L`�
@libruby.so.2.2_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTableruby_run_noderuby_initruby_optionsruby_init_stackruby_sysinitlibpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6setlocale__libc_start_main_edata__bss_start_end__libc_csu_fini__data_start_IO_stdin_used__libc_csu_initGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	D�`�`�`�`
` `(`0`8`@`	��H��H�� H��t��H����5� �%� ��h�������h��������h�������h�������h�������h��������%m D���%e D���%] D���%U D���%M D���%E D��H��(�|$1�H�4$H�5�����H��H�|$�u���H�|$������H�4$�|$�y���H���a���H��(�f.�f���1�I��^H��H���PTI��
@H�P
@H��	@�Z ����f.��H�=� H�� H9�tH�& H��t	�����H�=y H�5r H)�H��H��H��?H�H�tH�� H��t��fD�����=1 uUH���z���� ]�ff.�@���f.���AWI��AVI��AUA��ATL�%4 UH�-4 SL)�H�����H��t1��L��L��D��A��H��H9�u�H��[]A\A]A^A_�ff.������H��H���;@D�������������t���\����pd�������$zRx����/D0,���$D����pFJw�?:*3$"l���`�H���TH0KD�����eF�E�E �E(�H0�H8�G@n8A0A(B BBB�����@
@
@�����P@
�
@�
`�
`���o0@X@x@
}`��@ @`	���o@���o�o�@�
`@@P@`@p@�@�@GA$3a1@�
@GA$3p1067	@�
@GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA*	@T	@GA*GOW*�GA*P
@�
@GA*GOW*GA+GLIBCXX_ASSERTIONS�	@�
@
GA*FORTIFY��	@�	@
GA*FORTIFYP
@�
@ruby-2.2.10-35.el8.x86_64.debugT-��7zXZ�ִF!t/���^]?�E�h=��ڊ̓�N��,p3Zuz���c���s�Ap;ѕ9b���lw�D� ���Y3D���D%�(���)�_R��>���P�̌Iٗ��D_��f��,��~��
��C�a=�y��Lf׉��|i߲䵅x�W%M����f2��~�y��J�	�<�w�f�E������	uE��i(4�0����^Z#�z}Ȋ�u�����(�'����R���[�J�zP@�X܄��kQ$��[暝qA�Un��5�o4�~{��Ef���S<��wR�Ma��:_���l�����Con�h����2<�L�yb�b�ԈW��x�'I b�~7VIa�Oi��z;�EA�-)
�����u��Sn�����m�̞E������Ȳ*�-@��M�(DV?l�:@��C3�s¶e���^KN
b�@��z��i"���8���3����s��8{�3�mҳSF���i���q
�������bKR/�v��R��1�W���e
nau!?����Uo��u���ћU����(�e�7��8�H�`�%1���x$�(T1\/�ɹ��r�
-�?+ඞ�n��/�q�	��i���yj D�Ϋ��-at��c+h~����	�i�@�H�AW�d�I��\�#P
}��j{!�q�Y�[�!�#KÆڕ��cS�9\~ftx:T�M��.̜�d�,�M�q��r8�o��
������"Ŵ�QV�u�c��:�5Ӓ�c���ۑ�97Ղ�#78�e�q��/Hf ��F
�9��4���+;���&�"[��c'^UT�O֩I��l�]4j3���[�-T5��;챒KL��
� ��B-Z����$���F2ɱ�g�YZ.shstrtab.interp.note.gnu.property.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata�@��@� &�@� 4@$G���o0@0HQx@x�YX@X}a���o�@�(n���o@ } @ `�B�@���@�0@0p��@�`�	@	���
@�

��
@�
��
@�
D�0@0���
`�
��
`�
��
`�
0��`� �`H�H`HL`LP�L�$+@��:bin/ri000075500000000303150402105700005642 0ustar00#!/opt/alt/ruby22/bin/ruby

begin
  gem 'rdoc'
rescue NameError => e # --disable-gems
  raise unless e.name == :gem
rescue Gem::LoadError
end

require 'rdoc/ri/driver'

RDoc::RI::Driver.run ARGV
lib64/libruby-static.a000064400030252766150402105700010602 0ustar00!<arch>
/               1690381920  0     0     0       44102     `
���ўў�j�j���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	��	��	��	��	��	��	��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
��
�� > > >
�b
�b
�b
�b
�b
�b
�b^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z^^^^^^^^^^^^^^^^����������������������������������������������������������������������������0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V0V~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~�~��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� | | | |!��!��!��!��!��!��!��!��!��!��!��"F2"F2"F2"F2$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2'2(ɞ(ɞ(ɞ(ɞ)R)R)R)R)R)R)R)R)R)R)R)R)R)R)R)R)R)R)R)R)R)R)R)R.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��1<�1<�1<�1<�1<�1<�1<�1<�1<�1<�1<�1<�1<�1<�1<�2�2�2�2�2�2�"2�"2�"2�"2�"2�"2�"2�"2�"2�"2�"2�"2�"2�"2�"2�"4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎4̎6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z6�Z7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾7߾8c�8c�8c�8c�8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��9��;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;=V;s�;s�;s�;s�;s�;s�;s�;s�;s�;s�;s�;s�;s�;s�<��<��<��<��<��<��<��<��<��<�<�<�<�<�<�<�<�<�<�<�<�<�=o�=o�=o�=o�=o�=o�=o�=o�=o�=o�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>d�>�>�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�?`�Cq�Cq�Cq�Cq�Cq�Cq�Cq�Cq�Cq�Cq�Cq�Cq�Cq�Cq�Cq�Cq�Cq�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�DE�E �E �E �E �E �E �E �E �E �F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��F��H�nH�nH�nH�nH�nH�nH�nH�nH�nH�nH�nIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJIXJJ�J�J�J�J�J�J�J�J�J�J�J�K�K�K�K�K�K�K�K�K�K�K�K�M?�M?�M?�M?�M?�M?�M?�M?�M?�M?�M?�M?�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�Mv�O7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NO7NT/�T/�T/�T/�T/�T/�T/�T/�T/�T/�T/�T/�T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�Up�VjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvVjvY�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y��Y��ZZZZZZZ_��_��```E>`d�`�>`�>`�>`�>`�a�a5�dln_loadrb_locale_charmapInit_enc_set_filesystem_encodingruby_initial_load_pathsruby_exec_prefixrb_ary_eachrb_ary_rassocrb_ary_includesrb_ary_entryrb_mem_clearrb_cArrayrb_ary_lastrb_ary_freezerb_ary_shared_with_prb_ary_new_caparb_ary_plusrb_ary_newrb_ary_new_from_argsrb_ary_new_from_valuesrb_ary_tmp_newrb_ary_tmp_new_fillrb_ary_freerb_ary_clearrb_ary_modifyrb_ary_pushrb_ary_sort_bangrb_ary_replacerb_ary_memsizerb_assoc_newrb_check_array_typerb_ary_assocrb_ary_cmprb_ary_storerb_ary_deleterb_ary_catrb_ary_poprb_ary_shiftrb_ary_unshiftrb_ary_subseqrb_ary_arefrb_ary_to_aryrb_ary_concatrb_ary_set_lenrb_ary_resizerb_ary_duprb_ary_sortrb_ary_resurrectrb_ary_joinrb_ary_to_srb_ary_reverserb_ary_rotaterb_get_values_atrb_ary_delete_samerb_ary_delete_atInit_Arrayrb_cBignumruby_digitmaprb_big_eqlrb_big_hashrb_big_mul_normalrb_big_sq_fastrb_big_mul_balancerb_big_mul_karatsubarb_big_mul_toom3rb_bigzero_prb_cmpintrb_big_resizerb_big_orrb_big_xorrb_big_divrem_normalrb_big_newrb_big_clonerb_big_uminusrb_big_2comprb_big_normrb_uint2bigrb_int2bigrb_big_andrb_big_modulorb_big_divmodrb_uint2inumrb_int2inumrb_absint_sizerb_absint_numwordsrb_absint_singlebit_prb_integer_packrb_big_packrb_big_lshiftrb_big_rshiftrb_integer_unpackrb_big_unpackrb_cstr_to_inumrb_str_to_inumrb_str2big_poweroftworb_str2big_normalrb_str2big_karatsubarb_ull2inumrb_ll2inumrb_cstr2inumrb_str2inumrb_big2str_poweroftworb_big2str_genericrb_big2strrb_big2ulongrb_big2longrb_big2ullrb_big2llrb_dbl2bigrb_big2dblrb_big_plusrb_big_minusrb_big_mulrb_big_divrb_big_idivrb_big_fdivrb_big_powrb_integer_float_cmprb_big_cmprb_integer_float_eqrb_big_eqInit_Bignumrb_class_subclass_addrb_class_remove_from_super_subclassesrb_class_remove_from_module_subclassesrb_class_foreach_subclassrb_class_detach_subclassesrb_class_detach_module_subclassesrb_class_bootrb_check_inheritablerb_class_newrb_singleton_class_attachedrb_singleton_class_clone_and_attachrb_singleton_class_clonerb_mod_init_copyInit_class_hierarchyrb_make_metaclassrb_define_class_idrb_class_inheritedrb_define_classrb_define_class_id_underrb_define_class_underrb_module_newrb_define_module_idrb_define_modulerb_define_module_id_underrb_define_module_underrb_include_class_newrb_include_modulerb_prepend_modulerb_mod_included_modulesrb_mod_include_prb_mod_ancestorsrb_define_method_idrb_define_methodrb_define_protected_methodrb_define_private_methodrb_undef_methodrb_special_singleton_classrb_freeze_singleton_classrb_singleton_class_getrb_singleton_classrb_define_singleton_methodrb_define_module_functionrb_define_global_functionrb_define_aliasrb_define_attrrb_obj_basic_to_s_prb_keyword_error_newrb_extract_keywordsrb_scan_argsrb_class_instance_methodsrb_class_protected_instance_methodsrb_class_private_instance_methodsrb_class_public_instance_methodsrb_obj_protected_methodsrb_obj_private_methodsrb_obj_public_methodsrb_obj_singleton_methodsrb_obj_methodsrb_get_kwargsrb_cmperrrb_invcmpInit_Comparablerb_mComparablerb_cComplexnucomp_canonicalizationrb_complex_rawrb_complex_newrb_complex_polarrb_Complexrb_complex_set_realrb_complex_set_imagInit_Complexrb_cDirrb_dir_getwdruby_globrb_globruby_brace_globruby_brace_glob_with_encInit_Dirdln_find_exe_rdln_find_file_rrb_cEncodingrb_enc_from_encodingrb_enc_to_indexrb_enc_dummy_prb_gc_mark_encodingsrb_enc_set_dummyrb_enc_unicode_prb_enc_initrb_enc_from_indexrb_encdb_set_unicoderb_enc_registeredrb_enc_set_baserb_id_encodingrb_enc_fast_mbclenrb_enc_mbclenrb_enc_precise_mbclenrb_enc_ascgetrb_enc_codepoint_lenrb_enc_codepointrb_enc_codelenrb_enc_code_to_mbclenrb_enc_toupperrb_enc_tolowerrb_ascii8bit_encodingrb_ascii8bit_encindexrb_utf8_encodingrb_utf8_encindexrb_usascii_encodingrb_usascii_encindexrb_filesystem_encindexrb_filesystem_encodingrb_default_internal_encodingrb_enc_default_internalInit_Encodingrb_isalnumrb_isalpharb_isblankrb_iscntrlrb_isdigitrb_isgraphrb_islowerrb_isprintrb_ispunctrb_isspacerb_isupperrb_enc_registerrb_encdb_declarerb_enc_replicaterb_define_dummy_encodingrb_encdb_replicaterb_encdb_dummyrb_encdb_aliasrb_isxdigitrb_tolowerrb_enc_get_indexrb_enc_getrb_enc_compatiblerb_enc_checkrb_obj_encodingrb_enc_get_from_indexrb_enc_set_indexrb_enc_associate_indexrb_enc_associaterb_enc_copyrb_enc_find_indexrb_to_encoding_indexrb_to_encodingrb_enc_set_default_externalrb_enc_set_default_internalrb_find_encodingrb_enc_aliasrb_enc_findrb_locale_encindexrb_locale_encodingrb_default_external_encodingrb_enc_default_externalrb_toupperrb_enc_foreach_namerb_enum_values_packInit_Enumerablerb_mEnumerablerb_cLazyrb_eStopIterationrb_enumeratorize_with_sizerb_cEnumeratorrb_enumeratorizeInitVM_EnumeratorInit_Enumeratorexc_causerb_name_err_mesg_newrb_cNameErrorMesgrb_eSystemCallErrorrb_mErrnorb_eEINPROGRESSrb_eEAGAINrb_eEWOULDBLOCKrb_compile_warnrb_compile_warningrb_warnrb_warningrb_bug_reporter_addrb_bugrb_bug_contextrb_bug_errnorb_async_bug_errnorb_compile_bugrb_builtin_type_namerb_builtin_class_namerb_typeddata_inherited_prb_typeddata_is_kind_ofrb_exc_newrb_exc_new_cstrrb_exc_new_strrb_eSyntaxErrorrb_compile_error_with_encrb_compile_errorrb_compile_error_appendrb_eLoadErrorrb_name_errorrb_eNameErrorrb_name_error_strInit_Exceptionrb_eExceptionrb_eSystemExitrb_eFatalrb_eSignalrb_eInterruptrb_eStandardErrorrb_eTypeErrorrb_eArgErrorrb_eIndexErrorrb_eKeyErrorrb_eRangeErrorrb_eScriptErrorrb_eNotImpErrorrb_eNoMethodErrorrb_eRuntimeErrorrb_eSecurityErrorrb_eNoMemErrorrb_eEncodingErrorrb_eEncCompatErrorrb_enc_raiserb_raiserb_check_typeddatarb_check_backtracerb_get_backtracerb_exc_set_backtracerb_invalid_strrb_loaderrorrb_loaderror_with_pathrb_notimplementrb_fatalrb_check_typerb_syserr_new_strrb_syserr_newrb_syserr_failrb_syserr_fail_strrb_sys_failrb_sys_fail_strrb_syserr_fail_path_inrb_sys_fail_path_inrb_mod_sys_failrb_mod_sys_fail_strrb_mod_syserr_failrb_mod_syserr_fail_strrb_sys_warningrb_sys_enc_warningrb_load_failrb_error_frozenrb_error_frozen_objectrb_check_frozenrb_error_untrustedrb_check_trustedrb_check_copyableInit_syserrrb_call_end_procrb_eSysStackErrorrb_print_undefrb_print_undef_strrb_print_inaccessiblerb_set_end_procrb_mark_end_procInit_jumpruby_setupruby_executable_noderuby_exec_noderb_frozen_class_prb_threadptr_setup_exceptionrb_exc_raiserb_exc_fatalrb_interruptrb_make_exceptionrb_raise_jumprb_jump_tagrb_block_given_prb_iterator_prb_need_blockrb_rescue2rb_rescuerb_protectrb_ensurerb_frame_this_funcrb_frame_calleeruby_error_printruby_initrb_exec_end_procruby_finalizeruby_optionsruby_cleanupruby_stopruby_run_noderb_frame_last_funcrb_using_refinementrb_using_modulerb_refinement_module_get_refined_classrb_obj_call_initrb_extend_objectrb_errinforb_set_errinforb_rubylevel_errinfoInit_evalrb_eThreadErrorrb_eLocalJumpErrorrb_get_load_pathrb_get_expanded_load_pathrb_feature_providedrb_providedrb_providerb_loadrb_load_protectrb_require_internalruby_dln_librefsruby_require_internalrb_require_saferb_f_requirerb_f_require_relativerb_requireruby_init_extInit_loadrb_proc_lambda_prb_cProcrb_cUnboundMethodrb_obj_singleton_methodrb_cMethodrb_block_procrb_block_lambdarb_proc_wraprb_obj_is_procrb_binding_allocruby_binding_data_typerb_cBindingrb_binding_newrb_block_clear_env_selfrb_proc_callrb_proc_call_with_blockrb_proc_arityrb_block_arityrb_hash_procrb_obj_is_methodrb_method_name_errorrb_obj_methodrb_obj_public_methodrb_method_call_with_blockrb_method_callrb_method_entry_arityrb_mod_method_arityrb_obj_method_arityrb_method_get_iseqrb_proc_get_iseqrb_proc_locationrb_method_locationrb_method_entry_locationrb_mod_method_locationrb_obj_method_locationrb_proc_newInit_ProcInit_Bindingrb_mFileTestrb_cFilerb_get_path_check_to_stringrb_get_path_check_convertrb_get_path_no_checksaferb_get_pathrb_str_encode_ospathrb_file_directory_prb_stat_newrb_cStatrb_enc_path_nextrb_enc_path_skip_prefixrb_enc_path_last_separatorrb_enc_path_endrb_home_dir_ofrb_default_home_dirrb_realpath_internalruby_enc_find_basenamerb_file_dirnameruby_enc_find_extnamerb_file_constrb_mFConstrb_is_absolute_pathrb_file_expand_path_internalrb_file_expand_pathrb_file_s_expand_pathrb_file_expand_path_fastrb_file_absolute_pathrb_file_s_absolute_pathrb_path_checkrb_file_load_okrb_find_file_ext_saferb_find_file_extrb_find_file_saferb_find_fileInit_Filerb_gc_enablerb_obj_idrb_objspace_allocrb_objspace_set_event_hookrb_objspace_data_type_memsizerb_objspace_data_type_namerb_free_const_tablerb_objspace_each_objects_without_setuprb_objspace_internal_object_prb_undefine_finalizerrb_define_finalizerrb_gc_copy_finalizerrb_gc_finalize_deferredrb_objspace_markable_object_prb_objspace_garbage_object_prb_obj_memsize_ofruby_stack_lengthruby_stack_checkrb_mark_setrb_mark_hashrb_mark_tblrb_objspace_marked_object_prb_gc_writebarrier_generationalrb_gc_writebarrier_unprotectrb_gc_unprotect_loggingrb_copy_wb_protected_attributerb_obj_rgengc_writebarrier_protected_prb_obj_rgengc_promoted_prb_obj_gc_flagsrb_gc_force_recyclerb_gc_register_mark_objectInit_stackrb_during_gcrb_gc_countrb_gc_latest_gc_infogc_stat_internalrb_gc_statrb_memerrorrb_objspace_reachable_objects_fromrb_mark_method_entryrb_gc_mark_valuesrb_gc_markrb_gc_mark_locationsrb_gc_mark_machine_stackrb_gc_mark_mayberb_objspace_reachable_objects_from_rootrb_gc_writebarrier_incrementalrb_gc_writebarrier_rememberruby_gc_set_paramsInit_heapruby_xfreeruby_sized_xfreerb_objspace_freerb_free_m_tbl_wrapperruby_disable_gcrb_objspace_each_objectsrb_gc_disablerb_garbage_collectrb_gcrb_gc_startruby_xmallocrb_gc_register_addressrb_global_variableruby_xmalloc2ruby_xcallocruby_sized_xreallocruby_xreallocruby_sized_xrealloc2ruby_xrealloc2rb_newobjrb_newobj_ofrb_node_newnoderb_data_object_allocrb_data_typed_object_allocrb_gc_call_finalizer_at_exitrb_gc_unregister_addressruby_mimmallocruby_mimfreeInit_GCrb_mGCruby_gc_debug_indentruby_initial_gc_stress_ptrrb_hash_sizerb_hash_compare_by_id_prb_hash_has_keyrb_hash_keysrb_hash_valuesrb_hash_arefrb_hash_values_atrb_hash_asetrb_hash_freezerb_hash_ifnonerb_hash_set_ifnonerb_hash_set_default_procrb_hashrb_objid_hashrb_hash_iter_levst_foreach_saferb_hash_foreachrb_hash_delete_ifrb_hash_reject_bangrb_hash_select_bangrb_hash_keep_ifrb_hash_clearrb_hash_assocrb_hash_rassocrb_hash_newrb_cHashrb_hash_rejectrb_hash_selectrb_hash_duprb_hash_tblrb_hash_tbl_rawrb_check_hash_typerb_hash_lookup2rb_hash_lookuprb_hash_fetchrb_hash_delete_entryrb_hash_deleterb_hash_update_byrb_ident_hash_newrb_init_identtablerb_init_identtable_with_sizerb_env_path_taintedruby_setenvrb_env_clearruby_unsetenvInit_Hashrb_call_initsrb_eIOErrorrb_update_max_fdrb_maygvl_fd_fix_cloexecrb_fd_fix_cloexecrb_cloexec_openrb_cloexec_dup2rb_cloexec_piperb_cloexec_fcntl_dupfdrb_cloexec_duprb_eof_errorrb_eEOFErrorrb_io_taint_checkrb_io_check_initializedrb_io_check_closedrb_rsrb_default_rsrb_io_get_iorb_io_check_iorb_io_get_write_iorb_io_set_write_iorb_stdinrb_io_check_writablerb_io_read_pendingrb_io_read_checkrb_io_wait_readablerb_io_wait_writablerb_io_check_char_readablerb_io_check_byte_readablerb_io_check_readablerb_io_ungetbyterb_io_eofrb_io_ungetcrb_io_closerb_io_bufwriterb_io_writerb_io_addstrrb_io_printfrb_io_printrb_output_fsrb_output_rsrb_stdoutrb_io_putsrb_io_flush_rawrb_io_flushrb_io_getbyterb_io_bufreadrb_io_set_nonblockrb_io_getsrb_io_fptr_finalizerb_io_memsizerb_io_binmoderb_io_ascii8bit_binmoderb_io_modestr_fmoderb_io_oflags_fmoderb_io_modestr_oflagsrb_io_extract_encoding_optionrb_fdopenrb_io_synchronizedrb_io_unbufferedrb_piperb_close_before_execrb_prb_write_error2rb_stderrrb_write_errorrb_write_error_strrb_io_stdio_filerb_io_make_open_filerb_file_open_strrb_file_openrb_io_fdopenrb_cIOrb_getsrb_stdio_set_default_encodingruby_get_inplace_moderuby_set_inplace_moderb_get_argvrb_readwrite_sys_failrb_mWaitReadablerb_mWaitWritableInit_IOrb_deferrrb_marshal_define_compatInit_marshalrb_marshal_dumprb_marshal_loadrb_eMathDomainErrorrb_math_atan2rb_mMathrb_math_cosrb_math_coshrb_math_exprb_math_hypotrb_math_logrb_math_sinrb_math_sinhInit_Mathrb_parser_dump_treerb_gc_free_noderb_node_memsizerb_gc_mark_noderb_int_succrb_int_predrb_cFixnumrb_cFloatrb_num_zerodivrb_eZeroDivErrorrb_num_to_uintrb_num_negative_prb_num_coerce_binrb_num_coerce_cmprb_num_coerce_reloprb_float_new_in_heapruby_float_modrb_dbl_hashrb_dbl_cmpruby_float_stepruby_num_interval_step_sizerb_num2longrb_num2ulongrb_out_of_intrb_num2intrb_fix2intrb_num2uintrb_fix2uintrb_out_of_shortrb_num2shortrb_fix2shortrb_num2ushortrb_fix2ushortrb_num2fixrb_num2llrb_num2ullrb_enc_uint_chrrb_fix2strrb_int_positive_powrb_num_coerce_bitInit_Numericrb_eFloatDomainErrorrb_cNumericrb_cIntegerrb_float_valuerb_float_newrb_obj_equalrb_obj_notrb_equalrb_obj_not_equalrb_obj_init_dup_clonerb_obj_hashrb_class_inherited_prb_obj_taprb_obj_taintedrb_obj_untrustedrb_obj_frozen_prb_class_superclassrb_cBasicObjectrb_obj_taintrb_obj_untrustrb_obj_untaintrb_obj_trustrb_cObjectrb_mod_attrrb_obj_freezerb_cFalseClassrb_cNilClassrb_cTrueClassrb_obj_is_kind_ofrb_any_to_srb_obj_hiderb_obj_revealrb_obj_setuprb_eqlrb_class_realrb_obj_classrb_obj_init_copyrb_obj_is_instance_ofrb_obj_copy_ivarrb_inspectrb_class_search_ancestorrb_obj_infectrb_undefined_allocrb_obj_allocrb_obj_clonerb_obj_duprb_class_new_instancerb_class_get_superclassrb_check_attr_idrb_convert_typerb_check_convert_typerb_check_to_integerrb_to_intrb_check_to_intrb_Integerrb_cstr_to_dblrb_str_to_dblrb_Floatrb_to_floatrb_check_to_floatrb_num2dblrb_Stringrb_Arrayrb_HashInit_Objectrb_mKernelrb_cClassrb_cModulerb_cDatarb_str_associaterb_str_associatedrb_uv_to_utf8Init_packruby_global_name_punct_bitsrb_parser_compile_string_pathrb_parser_compile_stringrb_parser_compile_cstrrb_parser_compile_file_pathrb_parser_compile_filerb_parser_reg_compilerb_parser_append_printrb_parser_while_looprb_init_parserb_reserved_wordrb_parser_newrb_compile_stringrb_compile_cstrrb_compile_filerb_parser_end_seen_prb_parser_encodingrb_parser_get_yydebugrb_parser_set_yydebugrb_parser_mallocrb_parser_callocrb_parser_reallocrb_parser_freeruby_yyparserb_last_status_getrb_proc_timesrb_clock_getresrb_clock_gettimerb_last_status_setrb_last_status_clearrb_waitpidrb_detach_processrb_proc_execrb_execarg_extract_optionsrb_execarg_getrb_execarg_addoptrb_execarg_initrb_execarg_newrb_execarg_setenvrb_execarg_fixuprb_execarg_run_optionsrb_exec_async_signal_saferb_f_execrb_fork_rubyrb_exitrb_f_exitrb_f_abortrb_syswaitrb_fork_async_signal_saferb_spawn_errrb_spawnInitVM_processrb_mProcessrb_mProcUIDrb_mProcGIDrb_mProcID_SyscallInit_processrb_cRandomrb_genrand_int32rb_genrand_realrb_genrand_ulong_limitedrb_random_int32rb_random_realrb_random_ulong_limitedrb_random_bytesruby_sip_hash24Init_RandomSeedrb_hash_startrb_memhashrb_reset_random_seedInitVM_RandomInit_Randomrb_cRangerb_range_newrb_range_valuesrb_range_beg_lenInit_Rangerb_cRationalrb_gcdrb_lcmrb_gcdlcmrb_gcd_normalnurat_canonicalizationrb_rational_reciprocalrb_rational_rawrb_rational_newrb_Rationalrb_rational_numrb_rational_denrb_flt_rationalize_with_precrb_flt_rationalizerb_cstr_to_ratInit_Rationalrb_eRegexpErrorrb_reg_match_prerb_reg_match_postrb_memcicmprb_memcmprb_memsearchrb_char_to_option_kcoderb_reg_region_copyrb_reg_backref_numberrb_match_busyrb_backref_set_stringrb_cMatchrb_reg_prepare_rerb_reg_adjust_startposrb_reg_search0rb_reg_searchrb_reg_matchrb_reg_eqqrb_reg_match2rb_reg_nth_definedrb_reg_nth_matchrb_reg_last_matchrb_reg_match_lastrb_reg_check_preprocessrb_reg_allocrb_cRegexprb_reg_init_strrb_reg_new_strrb_reg_new_aryrb_enc_reg_newrb_reg_newrb_reg_compilerb_reg_regcomprb_reg_quoterb_reg_optionsrb_check_regexp_typerb_reg_regsubInit_Regexponig_get_default_case_fold_flagOnigDefaultCaseFoldFlagonig_set_default_case_fold_flagonig_bbuf_initonig_freeonig_free_bodyonig_memsizeonig_region_memsizeonig_transferonig_chain_link_addonig_chain_reduceonig_initonig_reg_initonig_endonig_is_in_code_rangeonig_is_code_in_cc_lenonig_is_code_in_cconig_compileonig_new_without_alloconig_newonigenc_initonigenc_get_default_encodingOnigEncDefaultCharEncodingonigenc_set_default_encodingonigenc_mbclen_approximateonigenc_get_right_adjust_char_headonigenc_get_right_adjust_char_head_with_prevonigenc_get_prev_char_headonigenc_step_backonigenc_steponigenc_strlenonigenc_strlen_nullonigenc_str_bytelen_nullonigenc_set_default_caseconv_tableonigenc_get_left_adjust_char_headonigenc_ascii_apply_all_case_foldOnigAsciiLowerMaponigenc_ascii_get_case_fold_codes_by_stronigenc_apply_all_case_fold_with_maponigenc_get_case_fold_codes_by_str_with_maponigenc_not_support_get_ctype_code_rangeonigenc_is_mbc_newline_0x0aonigenc_ascii_mbc_case_foldOnigEncAsciiToLowerCaseTableonigenc_single_byte_mbc_enc_lenonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchonigenc_always_false_is_allowed_reverse_matchonigenc_ascii_is_code_ctypeOnigEncAsciiCtypeTableonigenc_mbn_mbc_to_codeonigenc_mbn_mbc_case_foldonigenc_mb2_code_to_mbclenonigenc_mb4_code_to_mbclenonigenc_mb2_code_to_mbconigenc_mb4_code_to_mbconigenc_mb2_is_code_ctypeonigenc_mb4_is_code_ctypeonigenc_with_ascii_strncmponigenc_with_ascii_strnicmponigenc_minimum_property_name_to_ctypeonigenc_property_list_add_propertyonigenc_property_list_initOnigEncISO_8859_1_ToUpperCaseTableOnigEncISO_8859_1_ToLowerCaseTableOnigEncAsciiToUpperCaseTableonig_error_code_to_formatonig_error_code_to_stronig_vsnprintf_with_patternonig_snprintf_with_patternonig_region_clearonig_region_resizeonig_region_setonig_region_initonig_region_newonig_region_freeonig_region_copyonig_get_match_stack_limit_sizeonig_set_match_stack_limit_sizeonig_matchonig_search_gposonig_searchonig_get_encodingonig_get_optionsonig_get_case_fold_flagonig_get_syntaxonig_number_of_capturesonig_number_of_capture_historiesonig_copy_encodingonig_null_warnonig_set_warn_funconig_set_verb_warn_funconig_strncmponig_strcpyonig_st_init_strend_table_with_sizeonig_st_lookup_strendonig_st_insert_strendonig_names_freeonig_foreach_nameonig_renumber_name_tableonig_number_of_namesonig_name_to_group_numbersonig_name_to_backref_numberonig_noname_group_capture_is_activeonig_node_freeonig_free_node_listonig_node_new_listonig_node_list_addonig_node_new_altonig_node_new_anchoronig_node_new_encloseonig_node_str_catonig_node_conv_to_str_nodeonig_node_str_clearonig_node_str_setonig_node_new_stronig_scan_unsigned_numberonig_reduce_nested_quantifieronig_free_shared_cclass_tableonig_scan_env_set_error_stringonig_parse_make_treeOnigDefaultSyntaxOnigSyntaxRubyonig_set_default_syntaxonig_copy_syntaxonig_set_syntax_oponig_set_syntax_op2onig_set_syntax_behavioronig_set_syntax_optionsonig_get_syntax_oponig_get_syntax_op2onig_get_syntax_behavioronig_get_syntax_optionsonig_set_meta_charOnigSyntaxPythonOnigSyntaxPerlOnigSyntaxPerl58_NGOnigSyntaxPerl58OnigSyntaxJavaOnigSyntaxGnuRegexOnigSyntaxGrepOnigSyntaxEmacsOnigSyntaxPosixExtendedOnigSyntaxPosixBasicOnigSyntaxASISruby_push_includeruby_incpushruby_incpush_expandruby_init_loadpath_saferuby_init_loadpathrb_load_file_strrb_load_fileruby_scriptruby_set_script_nameruby_prog_initruby_set_argvruby_process_optionsrb_argv0ruby_sysinitruby_safe_level_4_warningrb_safe_levelrb_set_safe_level_forcerb_set_safe_levelrb_securerb_secure_updaterb_insecure_operationrb_check_safe_objInit_saferuby_signal_nameruby_default_signalrb_f_killrb_sigaltstack_sizerb_register_sigaltstackruby_posix_signalrb_signal_buff_sizerb_get_next_signalrb_trap_exitrb_signal_execruby_sig_finalizeInit_signalruby_enable_coredumpruby_vsnprintfruby_snprintfrb_str_formatrb_f_sprintfrb_enc_vsprintfrb_enc_sprintfrb_vsprintfrb_sprintfrb_str_vcatfrb_str_catfst_locale_insensitive_strcasecmpst_numcmpst_numhashst_init_table_with_sizest_init_tablest_init_numtablest_hashtype_numst_init_numtable_with_sizest_init_strtablest_init_strtable_with_sizest_init_strcasetablest_init_strcasetable_with_sizest_clearst_free_tablest_memsizest_lookupst_get_keyst_insertst_insert2st_add_directst_copyst_deletest_delete_safest_shiftst_cleanup_safest_updatest_foreach_checkst_foreachst_keysst_keys_checkst_valuesst_values_checkst_hashst_hash_uint32st_hash_uintst_hash_endst_hash_startst_locale_insensitive_strncasecmprb_strftimerb_strftime_timespecrb_str_ordrb_str_unlocktmprb_fstringrb_setup_fake_strrb_cStringrb_fstring_newrb_str_coderange_scan_restartablerb_enc_str_coderangerb_str_hashrb_enc_str_asciionly_prb_str_capacityrb_str_newrb_usascii_str_newrb_utf8_str_newrb_enc_str_newrb_str_new_cstrrb_usascii_str_new_cstrrb_utf8_str_new_cstrrb_enc_str_new_cstrrb_str_new_staticrb_usascii_str_new_staticrb_utf8_str_new_staticrb_enc_str_new_staticrb_tainted_str_newrb_tainted_str_new_cstrrb_str_new_frozenrb_str_dup_frozenrb_str_new_sharedrb_sym_to_srb_str_new_with_classrb_str_timesrb_str_succrb_str_dumprb_str_buf_newrb_str_tmp_newrb_alloc_tmp_bufferrb_free_tmp_bufferrb_str_freerb_str_memsizerb_str_to_strrb_str_shared_replacerb_obj_as_stringrb_str_duprb_str_resurrectrb_enc_strlenrb_enc_strlen_crrb_str_lengthrb_str_strlenrb_str_modifyrb_str_modify_expandrb_must_asciicompatrb_string_valuerb_str_plusrb_str_replacerb_string_value_ptrrb_str_change_terminator_lengthrb_string_value_cstrrb_str_fill_terminatorrb_check_string_typerb_enc_nthrb_str_offsetrb_str_sublenrb_str_subseqrb_fsrb_str_subposrb_str_substrrb_str_locktmprb_str_locktmp_ensurerb_str_set_lenrb_str_resizerb_str_conv_enc_optsrb_str_conv_encrb_external_str_with_encrb_external_str_new_with_encrb_external_str_newrb_external_str_new_cstrrb_locale_str_newrb_locale_str_new_cstrrb_filesystem_str_newrb_filesystem_str_new_cstrrb_str_exportrb_str_export_localerb_str_export_to_encrb_str_freezerb_str_catrb_str_buf_catrb_str_buf_new_cstrrb_str_cat_cstrrb_str_cat2rb_str_buf_cat2rb_enc_str_buf_catrb_str_buf_cat_asciirb_str_buf_appendrb_str_appendrb_str_concatrb_str_comparablerb_str_hash_cmprb_str_equalrb_str_cmprb_str_drop_bytesrb_str_updaterb_str_buf_cat_escaped_charrb_str_inspectrb_str_splitrb_str_setterrb_str_ellipsizerb_enc_str_scrubrb_str_scrubrb_str_symname_prb_str_quote_unprintablerb_id_quote_unprintablerb_to_idrb_to_symbolInit_Stringrb_cSymbolInit_frozen_stringsrb_cStructrb_struct_init_copyrb_struct_s_membersrb_struct_membersrb_struct_arefrb_struct_asetrb_struct_getmemberrb_struct_alloc_noinitrb_struct_define_without_accessor_underrb_struct_define_without_accessorrb_struct_definerb_struct_define_underrb_struct_initializerb_struct_allocrb_struct_newInitVM_StructInit_StructInit_symrb_enc_symname2_prb_enc_symname_prb_symname_prb_gc_free_dsymbolrb_str_internrb_sym2idrb_intern3rb_intern2rb_internrb_intern_strrb_id2symrb_id2strrb_id_attrsetrb_sym2strrb_id_attrgetrb_id2namerb_make_internal_idrb_sym_all_symbolsrb_is_const_idrb_is_class_idrb_is_global_idrb_is_instance_idrb_is_attrset_idrb_is_local_idrb_is_junk_idrb_is_const_symrb_is_class_symrb_is_global_symrb_is_instance_symrb_is_attrset_symrb_is_local_symrb_is_junk_symrb_check_idrb_check_symbolrb_check_id_cstrrb_check_symbol_cstrrb_is_const_namerb_is_class_namerb_is_global_namerb_is_instance_namerb_is_attrset_namerb_is_local_namerb_is_method_namerb_is_junk_namerb_time_succrb_cTimerb_time_newrb_time_nano_newrb_time_num_newrb_time_intervalrb_time_timevalrb_time_timespecInit_Timerb_eInvalidByteSequenceErrorrb_eUndefinedConversionErrorrb_register_transcoderrb_declare_transcoderrb_econv_encoding_to_insert_outputrb_econv_closerb_econv_memsizerb_econv_putbackablerb_econv_putbackrb_econv_asciicompat_encodingrb_econv_decorate_at_firstrb_econv_decorate_at_lastrb_econv_openrb_econv_convertrb_econv_insert_outputrb_econv_binmoderb_econv_open_excrb_eConverterNotFoundErrorrb_econv_set_replacementrb_econv_prepare_optionsrb_econv_prepare_optsrb_econv_open_optsrb_str_encoderb_econv_has_convpath_prb_econv_make_exceptionrb_econv_check_errorrb_econv_appendrb_econv_substr_appendrb_econv_str_appendrb_econv_substr_convertrb_econv_str_convertInitVM_transcoderb_cEncodingConverterInit_transcoderuby_scan_octruby_scan_hexruby_scan_digitsruby_digit36_to_number_tableruby_strtoulruby_strdupruby_getcwdruby_strtodruby_dtoaruby_each_wordsruby_hdtoarb_gvar_undef_setterrb_gvar_val_getterrb_gvar_val_setterrb_gvar_val_markerrb_gvar_undef_markerrb_gvar_var_getterrb_gvar_var_setterrb_gvar_undef_getterrb_gvar_var_markerrb_gvar_readonly_setterInit_var_tablesrb_global_tblrb_class_path_cachedrb_global_entryrb_gc_mark_global_tblrb_define_hooked_variablerb_define_variablerb_define_readonly_variablerb_define_virtual_variablerb_f_untrace_varrb_f_trace_varrb_gvar_getrb_gvar_setrb_gv_setrb_gv_getrb_gvar_definedrb_f_global_variablesrb_alias_variablerb_generic_ivar_tablerb_mark_generic_ivarrb_mark_generic_ivar_tblrb_free_generic_ivarrb_generic_ivar_memsizerb_copy_generic_ivarrb_ivar_getrb_attr_getrb_ivar_definedrb_ivar_foreachrb_ivar_countrb_obj_instance_variablesrb_obj_remove_instance_variablerb_const_missingrb_autoloading_valuerb_mod_const_atrb_mod_const_ofrb_const_listrb_mod_constantsrb_cvar_definedrb_mod_class_variablesrb_iv_getrb_st_insert_id_and_valuerb_mod_namerb_class_pathrb_ivar_setrb_class_namerb_mod_const_missingrb_cvar_getrb_cv_getrb_mod_remove_cvarrb_class_path_no_cacherb_class2namerb_obj_classnamerb_set_class_path_stringrb_set_class_pathrb_name_classrb_iv_setrb_cvar_setrb_cv_setrb_define_class_variablerb_st_copyrb_const_lookuprb_autoload_loadrb_autoload_prb_const_get_fromrb_const_getrb_const_get_atrb_public_const_get_fromrb_public_const_getrb_public_const_get_atrb_const_defined_fromrb_const_definedrb_const_defined_atrb_path_to_classrb_path2classrb_const_removerb_mod_remove_constrb_public_const_defined_fromrb_public_const_definedrb_public_const_defined_atrb_const_setrb_define_constrb_define_global_constrb_autoloadrb_mod_private_constantrb_mod_public_constantInit_versionruby_versionruby_release_dateruby_platformruby_descriptionruby_copyrightruby_engineruby_engine_nameruby_show_versionruby_show_copyrightruby_patchlevelruby_api_versionrb_iseq_translate_threaded_coderb_iseq_compile_noderb_iseq_original_iseqrb_insns_namerb_insns_name_arrayrb_iseq_build_from_aryrb_dvar_definedrb_local_definedrb_parse_in_evalrb_parse_in_mainrb_method_for_self_arefrb_method_for_self_asetruby_debug_print_indentruby_debug_printfruby_debug_print_valueruby_debug_print_vruby_debug_print_idruby_debug_print_noderuby_debug_breakpointruby_set_debug_optionRUBY_ENCODING_MASKRUBY_NODE_LMASKRUBY_FL_USER19ruby_dummy_gdb_enumsrb_iseq_pathrb_iseq_absolute_pathrb_iseq_labelrb_iseq_base_labelrb_iseq_first_linenorb_iseq_add_mark_objectrb_iseq_new_with_optrb_cISeqrb_iseq_newrb_iseq_new_toprb_iseq_new_mainrb_iseq_loadrb_iseq_compile_with_optionrb_iseq_compilerb_iseq_compile_on_baserb_iseq_klassrb_iseq_method_namerb_iseq_line_norb_insn_operand_internrb_iseq_disasm_insnrb_iseq_disasmruby_node_namerb_iseq_clonerb_iseq_parametersrb_iseq_defined_stringrb_iseq_build_for_ruby2cextrb_iseq_line_trace_eachrb_iseq_line_trace_allrb_iseq_line_trace_specifyInit_ISeqrb_f_notimplementrb_cEnvruby_current_threadrb_thread_markrb_f_block_given_pruby_current_vmruby_vm_event_flagsrb_vm_ep_local_eprb_vm_control_frame_block_ptrruby_vm_sysstack_error_copyrb_error_arityrb_vm_get_crefrb_vm_rewrite_cref_stackrb_vm_opt_struct_arefrb_vm_opt_struct_asetrb_clear_cacherb_clear_constant_cacherb_clear_method_cache_by_classrb_unlink_method_entryrb_gc_mark_unlinked_live_method_entriesrb_sweep_method_entryrb_free_method_entryrb_define_alloc_funcrb_undef_alloc_funcrb_get_alloc_funcrb_method_entry_atrb_method_entry_get_without_cacherb_method_entryrb_equal_optrb_resolve_refined_methodrb_method_entry_without_refinementsrb_method_boundprb_method_entry_eqrb_hash_method_entryrb_method_basic_definition_pInit_Methodrb_current_receiverruby_eval_string_from_file_protectrb_eval_string_protectrb_eval_stringrb_eval_string_wraprb_throw_objrb_throwrb_current_realfilepathrb_next_class_serialrb_vm_inc_const_missing_countruby_vm_const_missing_countrb_vm_get_binding_creatable_next_cfprb_vm_get_ruby_level_next_cfprb_vm_pop_cfunc_framerb_iteraterb_block_callrb_check_block_callrb_catch_protectrb_catch_objrb_catchrb_vm_rewind_cfprb_frame_popruby_vm_at_exitrb_vm_env_local_variablesrb_vm_make_proc_lambdarb_vm_make_procrb_vm_make_env_objectrb_vm_stack_to_heaprb_vm_make_bindingrb_binding_add_dynavarsrb_backref_getrb_backref_setrb_lastline_getrb_lastline_setrb_sourcefilenamerb_sourcefilerb_sourcelinerb_vm_crefrb_method_entry_with_refinementsrb_vm_cref_in_contextrb_vm_cbaserb_vm_localjump_errorrb_vm_make_jump_tag_but_local_jumprb_vm_jump_tag_but_local_jumprb_iter_breakrb_iter_break_valuerb_vm_check_redefinition_by_prependrb_vm_control_frame_id_and_classrb_thread_method_id_and_classrb_frame_method_id_and_classrb_thread_current_statusrb_vm_call_cfuncrb_vm_markrb_vm_register_special_exceptionrb_vm_add_root_moduleruby_vm_destructrb_thread_recycle_stack_releaserb_obj_is_threadruby_threadptr_data_typerb_thread_allocInit_VMrb_cRubyVMrb_mRubyVMFrozenCorerb_cThreadrb_vm_set_prognameInit_BareVMInit_vm_objectsrb_vm_top_selfInit_top_selfruby_vm_verbose_ptrruby_vm_debug_ptrrb_ruby_verbose_ptrrb_funcallrb_check_funcallrb_f_evalruby_eval_string_from_filerb_iseq_evalrb_iseq_eval_mainrb_funcallvrb_check_funcall_with_hookrb_vm_callrb_applyrb_vm_invoke_procrb_yield_blockrb_obj_instance_execrb_mod_module_execrb_obj_instance_evalrb_mod_module_evalrb_yield_values2rb_yieldrb_yield_splatrb_yield_valuesrb_raise_method_missingrb_call_superrb_eval_cmdrb_funcallv_publicrb_funcall_passing_blockrb_funcall_with_blockrb_eachrb_f_sendrb_f_public_sendrb_yield_refine_blockrb_vm_get_insns_address_tablerb_add_refined_method_entryrb_add_methodrb_add_method_cfuncrb_remove_method_idrb_remove_methodrb_attrrb_undefInit_vm_evalrb_method_entry_setInit_eval_methodrb_aliasrb_obj_respond_torb_respond_torb_ruby_debug_ptrruby_vm_collect_usage_func_registerruby_vm_collect_usage_func_operandruby_vm_collect_usage_func_insnrb_vmdebug_stack_dump_rawrb_vmdebug_stack_dump_raw_currentrb_vmdebug_env_dump_rawrb_vmdebug_proc_dump_rawrb_vmdebug_stack_dump_thrb_vmdebug_debug_print_registerrb_vmdebug_thread_dump_regsrb_vmdebug_debug_print_prerb_vmdebug_debug_print_postrb_vmdebug_thread_dump_staterb_print_backtracerb_vm_bugreportrb_vm_get_sourcelinerb_backtrace_prb_vm_backtrace_objectrb_backtrace_to_str_aryrb_backtrace_to_location_aryrb_vm_backtrace_str_aryrb_vm_backtrace_location_aryrb_backtrace_print_as_bugreportrb_backtracerb_backtrace_print_torb_make_backtracerb_vm_thread_backtracerb_vm_thread_backtrace_locationsInit_vm_backtracerb_debug_inspector_openrb_debug_inspector_frame_self_getrb_debug_inspector_frame_class_getrb_debug_inspector_frame_binding_getrb_debug_inspector_frame_iseq_getrb_debug_inspector_backtrace_locationsrb_profile_framesrb_profile_frame_pathrb_profile_frame_absolute_pathrb_profile_frame_labelrb_profile_frame_base_labelrb_profile_frame_first_linenorb_profile_frame_classpathrb_profile_frame_singleton_method_prb_profile_frame_method_namerb_profile_frame_qualified_method_namerb_profile_frame_full_labelrb_tracepoint_enabled_prb_vm_trace_mark_event_hooksrb_thread_add_event_hookrb_add_event_hookrb_thread_add_event_hook2rb_add_event_hook2rb_tracepoint_enablerb_tracepoint_disablerb_thread_remove_event_hookrb_thread_remove_event_hook_with_datarb_remove_event_hookrb_remove_event_hook_with_datarb_clear_trace_funcrb_threadptr_exec_event_hooks_and_pop_framerb_threadptr_exec_event_hooksrb_suppress_tracingrb_tracearg_from_tracepointrb_tracearg_event_flagrb_tracearg_eventrb_tracearg_linenorb_tracearg_pathrb_tracearg_method_idrb_tracearg_defined_classrb_tracearg_bindingrb_tracearg_selfrb_tracearg_return_valuerb_tracearg_raised_exceptionrb_tracearg_objectrb_tracepoint_newInit_vm_tracerb_postponed_job_registerrb_postponed_job_register_onerb_postponed_job_flushrb_thread_grouprb_mutex_locked_prb_mutex_trylockrb_mutex_owned_prb_thread_listrb_mutex_unlockrb_thread_killInit_native_threadruby_init_stackrb_thread_wakeup_timer_threadruby_stack_overflowed_prb_reserved_fd_prb_nativethread_selfrb_vm_gvl_destroyrb_nativethread_lock_initializerb_nativethread_lock_destroyrb_nativethread_lock_lockrb_nativethread_lock_unlockrb_threadptr_interruptrb_threadptr_trap_interruptrb_threadptr_unlock_all_locking_mutexesruby_thread_init_stackrb_thread_createrb_thread_check_trap_pendingrb_thread_interruptedruby_thread_has_gvl_prb_threadptr_pending_interrupt_clearrb_threadptr_pending_interrupt_enquerb_threadptr_pending_interrupt_active_prb_threadptr_signal_raiserb_threadptr_signal_exitruby_thread_stack_overflowrb_threadptr_set_raisedrb_threadptr_reset_raisedrb_notify_fd_closerb_thread_fd_closerb_thread_wakeup_aliverb_thread_wakeuprb_thread_currentrb_thread_mainrb_thread_local_arefrb_thread_local_asetrb_thread_alonerb_threadptr_execute_interruptsrb_thread_sleep_foreverrb_thread_sleep_deadlyrb_thread_sleep_deadly_allow_spurious_wakeuprb_thread_wait_forrb_thread_sleeprb_thread_check_intsrb_thread_call_with_gvlrb_thread_call_without_gvl2rb_thread_call_without_gvlrb_thread_io_blocking_regionrb_thread_execute_interruptsrb_mutex_lockrb_thread_schedulerb_thread_runrb_thread_terminate_allrb_thread_stoprb_fd_initrb_fd_init_copyrb_fd_termrb_fd_zerorb_fd_setrb_fd_clrrb_fd_issetrb_fd_copyrb_fd_duprb_fd_selectrb_thread_fd_selectrb_wait_for_single_fdrb_thread_wait_fdrb_thread_fd_writablerb_threadptr_check_signalrb_thread_stop_timer_threadrb_thread_reset_timer_threadrb_thread_start_timer_threadrb_obj_is_mutexrb_mutex_newrb_cMutexrb_mutex_sleeprb_mutex_synchronizerb_mutex_allow_traprb_thread_shield_newrb_cThreadShieldrb_thread_shield_waitrb_thread_shield_releaserb_thread_shield_destroyrb_exec_recursiverb_exec_recursive_pairedrb_exec_recursive_outerrb_exec_recursive_paired_outerInit_Threadruby_native_thread_prb_get_coveragesrb_thread_atforkrb_thread_atfork_before_execrb_set_coveragesrb_reset_coveragesrb_uninterruptibleruby_killrb_fiber_startrb_fiber_alive_prb_fiber_mark_selfrb_obj_is_fiberruby_register_rollback_func_for_ensurerb_fiber_newrb_fiber_currentrb_fiber_transferrb_fiber_resumerb_fiber_yieldrb_fiber_reset_root_local_storageInit_Contruby_Init_Continuation_bodyruby_Init_Fiber_as_CoroutineOnigEncodingASCIIOnigEncodingUS_ASCIIonigenc_unicode_is_code_ctypeonigenc_unicode_ctype_code_rangeonigenc_utf16_32_get_ctype_code_rangeonigenc_unicode_property_name_to_ctypeonigenc_unicode_mbc_case_foldonigenc_unicode_apply_all_case_foldonigenc_unicode_get_case_fold_codes_by_strOnigEncodingUTF_8Init_newlineruby_init_setproctitlesetproctitlestrlcatstrlcpymain_exe_pathkprintfhex2ascii_datarb_dump_backtrace_with_linesInit_preludeInit_extInit_encdln.o/          1690381920  1000  135   100644  9432      `
ELF>@@+*

 !"#��UH��H��AUATSH��H��dH�%(H�E�1�����g1�E1���H��u�H��H�τ�tH�O<.t�</�H��HD�IDЄ�u�H���	H)�H�BL�bH��H��H��H%�H)�H���H��H9�tH��H��$�H9�u�����L�l$I���A�E�I�}A�E�C�D%�H���I��H����H�5H���H��t
H;��L��L���H��H����1���L��H�]�dH3%(uTH�e�[A\A]]��H)�H�L��L���f.�H��H)�H�BL�b���D1�A��������I��H��L��H�=1��L��L�-����H��H��1�H���H��H��H��H�H�H��H��H%�H)�H���H��H9�tH��H��$���H��%�t	H)�H�L�H�|$H�QH����L��I����X���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignruby_xmalloc%s - %sincompatible library versionInit_GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�,_E�F
E���P
H#6 Me!��"��#��_
 !"#05
:FVk	

$%&�_���������.annobin_dln.c.annobin_dln.c_end.annobin_dln.c.hot.annobin_dln.c_end.hot.annobin_dln.c.unlikely.annobin_dln.c_end.unlikely.annobin_dln.c.startup.annobin_dln.c_end.startup.annobin_dln.c.exit.annobin_dln.c_end.exit.annobin_dln_load.start.annobin_dln_load.endfuncname_prefixincompatible.11879.LC0.LC1.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupdln_load_GLOBAL_OFFSET_TABLE_memcpydlopendlsymruby_xmalloc__stack_chk_faildlerrorrb_loaderrordlclose���8���������9����������������:��������*;��������0:���������<���������=������������������>������������������?���������=��������K8��������V?�������� ��_$,_  
 
  .symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@(T(l(�(�( '�_"@x�(-3= 48@�(
STbT�]@�0(
|(�(��@�0(������@0(��
��
��@00(2��""0�.�
�
|
S
'
+
9
L
^
m
}
 �0
H�@`(&x
)6	x�x�localeinit.o/   1690381920  1000  135   100644  8592      `
ELF>P@@)(

 !��H����H��H���f���H���H��H���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�HN4HI1Ki��� �!%Fe�9 !����	

"#$+AMe ��.annobin_localeinit.c.annobin_localeinit.c_end.annobin_localeinit.c.hot.annobin_localeinit.c_end.hot.annobin_localeinit.c.unlikely.annobin_localeinit.c_end.unlikely.annobin_localeinit.c.startup.annobin_localeinit.c_end.startup.annobin_localeinit.c.exit.annobin_localeinit.c_end.exit.annobin_rb_locale_charmap.start.annobin_rb_locale_charmap.end.annobin_Init_enc_set_filesystem_encoding.start.annobin_Init_enc_set_filesystem_encoding.end.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouprb_locale_charmap_GLOBAL_OFFSET_TABLE_nl_langinforb_usascii_str_new_cstrInit_enc_set_filesystem_encodingrb_default_external_encodingrb_enc_to_index4��������)7��������5��������58�������� ��$,PX9��9  
 
  8 .symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@&T&l&�&�&'�9"@�`&-�3�=��8@��&
S�b��]@�0&
|d�d��@0&�8�8��@80&�	�	��@h0&0�
.��|S'"5GVf ~0Hy@�0&$xX'2	����loadpath.o/     1690381920  1000  135   100644  7664      `
ELF>0@@'&	

 !GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign/opt/alt/ruby22/lib64/ruby/site_ruby/2.2.0/opt/alt/ruby22/lib64/ruby/site_ruby/2.2.0/x86_64-linux/opt/alt/ruby22/lib64/ruby/site_ruby/opt/alt/ruby22/lib64/ruby/vendor_ruby/2.2.0/opt/alt/ruby22/lib64/ruby/vendor_ruby/2.2.0/x86_64-linux/opt/alt/ruby22/lib64/ruby/vendor_ruby/opt/alt/ruby22/lib64/ruby/2.2.0/opt/alt/ruby22/lib64/ruby/2.2.0/x86_64-linux/opt/alt/ruby22GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�-Ea~�� ��! !-BV	"#gfp.annobin_loadpath.c.annobin_loadpath.c_end.annobin_loadpath.c.hot.annobin_loadpath.c_end.hot.annobin_loadpath.c.unlikely.annobin_loadpath.c_end.unlikely.annobin_loadpath.c.startup.annobin_loadpath.c_end.startup.annobin_loadpath.c.exit.annobin_loadpath.c_end.exit.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupruby_initial_load_pathsruby_exec_prefix   
 
 .symtab.strtab.shstrtab.group.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property@$P$h$�$�$"�(�.�8��3@�0$	N�]��X@�0$wX�X��@ 0$�,�,��@P0$����@�0$�	� 0`.����w�N�"��%�8�J�Y�i� ��%.	0��|array.o/        1690381920  1000  135   100644  161272    `
ELF>�j@@,+

!"#$���@��u'H�����tH��у���tH�к%HE��f���H��� t����H��?H��?���H���H��?H��?���ff.����H���������uH�1�H��f.����' �f�AVAUATI��UA��H��SH��H��~5M��u
H������#H�{ �H���H�C H�k[]A\A]A^ÐL�/L��% M��u
H�������L�sH����L��L��H����H9�L��HO�H���M��u]H�����tTD�����t)I�� D��L�+����t4I����H��I	�L�+�%�L�+D�����tA�� u�f�H�k[L��]A\A]A^�@D������F���H������L�w@L��H�CL�s �?����H��ƒ��������� ����H���H���I���J��H�K��s.��t�S�H��у���t
H��_��H�H�C L�c���H�sL�@I��H�0��H�|1�H�|0�H��L)��H)���H�΃�r���1ɉσ�L�>M�89�r���@��u	H�����uIH�WH��H��?H�H�H���HL�H��������H)�H9�H��H��?H�
H�H����H��Ѓ���t���� u���t�H�GH��H��?H�H��fD��S1�H��H�|$���u9�uDH�H����H9�H�D$}>H��� H�D$t?H��H�<�H���H�D$H��� H�D$u�H�@H9�H�D$|�H��[��H�@ �f.��H���H�|$H��1�L��1�H��[�fD��ATUSH�/�� t]H��L�g��H��u
[1�]A\�fDH�����uDH��~�1�I�$����t�~fDI�����unH��H9�u��H�oL�g H��t�뱐1�L�c�,�H����H9�}�L��H�<��H�����u H��H��� u�H;k�]���H�C ��@[�]A\�fD��AV1�I��H�AUATUH��S��H��H�D$H�L$������H�D$H�������H�H��~oI�I�����I�nf��� tS���tRH���tmL�`�H��tC1��"H��H����H9�}IH��H�<�H���I��� u�I;^}+I�F ��DI�~�H���[]A\A]A^��L���M���H������_����H���H���L��L�
H���H��[]A\A]A^�H��������������H��� tH����H��H�D?�@H�@H�H�y������f.�H���AWH�GAVAUATUSH��H� ��H��H�4$H�0H��I��H��I���H��H��A��H��1�H�D$�I�GI� uI�G L�4�H��~E��tH�4$H���L��H���A��uDI�����t;I��ƒ���t.��t)@��u#H�|$tH�E�ƒ���~>��H�EfDH��I9��s���H��[]A\A]A^A_�@H�G �����þH��r��f���AWAVAUE1�ATUSH��@��u
H������0���FH���1���H�5L�uH���I���t@H����H9���L��H�<��I�Ǩu%H�����tH��ƒ���t���DE�@H��~;�H�5L���L��L��H���H�E�� u�H;]}H�E �L��L������H�5L���E��t/A��u)I�����t I�$�ƒ����H��r��I�$H��L��[]A\A]A^A_�fDH���H��������DE�������H��H�=�[]A\A]A^A_�ff.��H��xYtXAT�USH�?H)�H�,?H��L�d$�H��L��*H��H��H��H�T$��H9�u�H��[]A\�ø�fD��SH�H��� t`H����H��H��tH��� t)H����tH�2@��tEH�H��[�I���f�H�z~�H�R H�2@��u��f.�H�_�f.�H���H���U�SH��H)�H��H9�HO�H��x7H��H������H��H��H������H�5H�L$H��H�D$�H��[]�D��SH��� t[H����H��H� t H��H�>@��t H�H��t%H�t;�[�`���H�v H�>@��u��H��H��u۸[��H�_�f���SH��� tSH����H��H� t H��H�>@��t H��H�[����H�v H�>@��u��H��[H������f�H�_�f.���USH��H��� tvH����H��H� tpH��H�>@��tpH�xAH�D?H�D$H�-H�@H�xyH�|H�L$H���H��[]�H���[]�@H�_H� u�H�v H�>@��u��H��H��x�H�@H��u�����p���@H���H���|�����AVI��AUL�oATI��US1�H��?H��H����H9�}YL��H�,�@��uH�����tH�E������tDH���� u�I;\$} I�D$ �Ð�� t+�t�H�E�-fD�[H��]A\A]A^��H�}~�H�E H��H�8L���H��u�I�$�ff.������TAUH�WATUSH��H�I��A�� uH�W H�NH� uH�N M����H�GI��I��H�n1�H��y���I�UH����H�с� ��H����H9���H9���I�T$H��uI�T$ H�4�H�H����H��H�H��H��H��H9�~{H�:H�1H9�t��H��t:I�$H�Ɓ� �k���I�UI�D$H�с� �m���I�UH9��p���1�H��[]A\A]ÐH��������@I�M �x����H���[]A\A]ø�f.���AVAUI��I�UATE1�UH�oH��SH��% tLH����I9�}]H��N�4�H��L���H��t:H��4uH��L���H��uI�UI��H��% u�M;e}I�E 뷐�[]A\A]A^�f�1���ff.����H9�tH���uH�����tsH��у���ufH�I��A�� tjH����I��A�� tOH����H9�u8H�WM��uH�W H�FM��tEH9�tH��H��H��H�=P���f�1��DH�V�f�H�O�f.�H�F �f.���SH��H�D$H��tH��� ����tH��H�H�D$H��� ��������uRH��H�|$H����@��trH�H��~2H�D?H��H�D$���H�L$��*H���H��[��H��[�DH�~�{���H�v �j���@H����u����H���fD���f���AUI��ATUSH�������1�E1�I�m��uUI�E�� �8H����H��H��H�D?[]A\A]�fDH����I9�}4H��J�<��H��H��H��I��I�E�� u�M;e}	I�E ��H�@H���H��H�D[]A\A]�DH�L$H�1�����u|1�1�M�e�3f.�H����H9�}�H�t$L��H�<��H��H��H��I�U�� u�I;m�l���H�t$I�E ��f�H���H��[]A\A]�DH�=1���q���DH�@I�}H�x�������AWI��AVAUATUSH��H��� �H����������L�.����wM�gI� �VI�GH�D$H�k�H��tGM�4�L��L���H��t_H��4tIH��H��t�I��� tyH��L�d$��H9�HO�H�k�H��u�H���[]A\A]A^A_�f�L��L���H��t�H��������?H���H��H�D-[]A\A]A^A_�f�I9oH��M�g IN_�>���H�Z������������H�k�H���e���I�M�g�Gf�L��H�<��H������h���I��� thH��H����H9�HO�H�k�H�������� u�I�G ��M�g ����H�=1�M�g�I� �{������I�_�f�H��H��[]A\A]A^A_�f.��H���H��L��E1�[1�]1�A\H��A]A^A_��1�����AWAVAUATUH��SH�����3����L�6�����L�eA�� u}L�eL�m H�E1�H�D$M��~PM�|�L��L���H����H��4��H��tL�eA�� ��I��L�l$A��H��I9��H���[]A\A]A^A_ÐI��L�mA���z����H�=1��L�eA�� �L������L��L���H���p���@H�@H���H��H�D[]A\A]A^A_ÐL�eL�m �U������tw1�L�e�/�H����H9��3���L��H�<��H�����u�H��H�E�� u�H;]����H�E ���H��H��[]A\A]A^A_�f.��H���H��H��E1�[1�]1�A\H��A]A^A_��1�����AT1�U��SH��H�H��H��L�D$��A�ą�t��tXH�$�tfH�H�H�с� H��x|H��tgH��H����H9���E��u|����H�D$H��[]A\��1�H�=�H�$�u�H����HCx�f.�H9C~�H�S �8@H��t�H��H����H��q���E��t�H�<$�H��[]A\ÐH�SH��H��[]A\�H��t:H����H��I��H��H���H�5IH�H)�H��H�H�81��L�CL��H����@AVAUI��ATL�fUH��S1��7f.�H����H9�}TL��L�4غ4H��L���H��4tH��I�E�� u�I;]}$I�E ��fDL��L��H������[H��]A\A]A^�@��AUATUH��SH��H�?�� ��H�����H�5���1�L�mH���I���;f.�H����H9�}TL��H�<���t5H�H��L��H���I��H�E�� u�H;]} H�E H�<���u�H���H����f�L���H��[H�D]A\A]��H�}�N������H9���@��u	H�����u4UH��SH��1H��H�������H��1�[]�f.�H��ƒ���u�H�I��A�� utH�WH���� �yH����H9�ueH�WM��uH�W H�FH��uH�F H9�t.H��H��H��H�=����H��H��H��[]����f�H�������@1��DH�F���ff.�@PXH�5H��H�H�81��f���ATUSH�H�xu8H�/L�&H�ӿ1�L��H���L��H��H���H�H�zu[]A\�����USH��H����H��������H��H9����' �H��H��H��H��[]�fD�H���@��u"H�����tH�U�у���tH��_��H�UH�E H��H�]H�EH��[]�H�H�5H�81��H�H�5H�81��f�SH���H���H��L�E�[1�1�H������ATI��US�����I�$�� uI�D$H�X�I�l$H��u&�Xf.�H��H����H9�HO�H�X�H��t4�� H��uI�D$ H�<��I�$�� u�I�D$H9�HO�H�X�H��u�L��[]A\�f.�H��H�����w����[L��]A\����@��ATUH��S���tdI�@1��(fDH����H9�}(H��L�x,H�|�H��H�E�� u�H�EH9�|�H��[]A\�@H���H����[H��]A\���ff.����H��� t$������u$H��1�H�=����H�����tܾH�=�AWAVM��AUI��ATI��UH��SH��H��8H�D$H�$�DH����H9���H��~I��tL��L���H�U�� H�EH��uH�E L�<�A��u!I�����tA�����������L���H��tJH��L���A�H��H�EH�� �a���H�EH9��d���H��8[]A\A]A^A_�DH�
H��L���H��tOH9�t~H�$L��H�D$H�=�L�l$L�d$ L�t$(��v���fDL����L���N����L���A����3���H��L��H�D$�A�H�D$����H�H�5H�81��@��H��H��H�>H�vH�HL�@��u1��+����H���H�H�5H�81��f�SH���H���H��E1�1�1�H��[�ff.�������4AUI��ATI��U1�SH�_H���f�H����H9���I�$H�ց� ��H����H����H����H9���H����I�t$H��H�4�H��tH��H��uI�E H�<���t~H��I�EH���� �g���I�EH9��j���H���[]A\A]�f.�I�T$H���e�����H��t�H��x�H���z����I�t$ �Y���fDH��1�[]A\A]���f.�AWI��AVI��AUI��ATI��USH��H����H� ��L�g 1�1�1�M�����Hc�H��L9�}rI��L�I���u�H�����t�L��H��L�D$�L�D$��u�I���`H��`u�H���`H��`t�L��H���L�D$�fDI���t����H��[]A\A]A^A_�f�L���I�$ u.M�d$ H��K�<�J��L��[]A\A]A^A_��I����f.���ATI��UHc�H��SH��H�������~M��u
H��[]A\ÐI��H��L��H��1�H�D$���H�D$�u/H�����t'H��у���t�� tH����H��H	�H��f�H�hH��[]A\�AVAUI��ATI��US1��WfDH����H9�}]�H��tH��xI�EH��uI�E H�,�H����4L��H��I���H��4t+H��I�EH�� u�I�EH9�|�[L��]A\A]A^�H��L��L����������LAVAUATUSH��H��� ��H�H�_�� ��H��H����H9�HO�H����I��I��H�l$E1���H�����H��tI9�}I�UH��uI�U J�<�H���� ��H�����H��tL9�~I�FH��uI�F J��H�5H�T$H���H��uaI��I9�tSI�I�UH�с� �e���I�U�c���@H��H�H������ ����H�N�����I�F�l�����4H��[]A\A]A^�fD�4�f���ATUSH��H�H�x�AH�H�I��H�D$��t[�Ń�tT�B�t%�BtGH;\$�������؉��x���H�5�BH�H�8�����@��u	H�����uJH�5H�L$�H���H�T$H��H�����I�$H�x��H����[]A\�D�����u�H�H�8H;{u�H�D$�u�H�����t������u�H;x�w���A�D$�t8A�D$������\���H�t$H������DA�L$����P��H�5A�D$���tA�L$�������AVH�
H�AUATUSH��H���H���I���H��M�f1�H�@H���Q�H���@@H����H9���L��L�,�H���H�B��L��L��H�����t H��I��� u�I;^}VI�F ���A��u�I�����t�L��H�����u�H�E��`H��`u�I�E��`H��`t�L��H����H���H�}H�,$H��H��t
H�E�H��H�D$H�$H��H��[]A\A]A^��H�GH� uH�G H�4�H��t1�@H��H��H9�u�u	H������u�@UH��H��SH��H�����u
H�E��`H��`tH��[]�H���`H��`t�H��H��H��[]��H�FH��xH��H�F@��u!H�����tH��ƒ���t��@H�DH�w@��u	H�����u�@UH��SH��H�����u
H�E��`H��`tH��[]��H���`H��`t�H��H��H��[]���H�H���� H��xkH��tVH����H�¸H��t'H��xH9�}H��u#H� H���f.���f.�H��H����H�W�f.�H��tH��H����H��@H�W��f���SH��@��tH��H�[�fDH���H��[H���ff.����AWAVAUATUSH��8L�'H�|$A�� ��I��A�������H�D$(�D$E1�1�H�D$�M��-�fDH����H�������H�kE1�L9�}fL��H�|$H)�H��H��?H�H�H�H���H��I���I�Ǩt�H�����thL���A��A��E��t�I��L9�|�f��D$��H�L$H��� �H�L$H�QH9�����
H�|$H���I��H��8L��[]A\A]A^A_�I���D$A��'���f�H�L��H�0�H����H�5H�L$�L��H�D$(��L��H������~�����tV�����������H�D$L�`����V����H���H�|$E1�1�1�H���I���$����A�I���g���f�H�������@A����L���H�5H��H�H�81��f���H��t1�DH��H��H9�u��ff.�AWAVAUATUSH��H����t2H�sH;s��H�CH��H��H��[]A\A]A^A_��H�����t�H��ƒ����&��@��H�ݩu����
�� ��L�{L�cM��M)�'1��I��H��A���H��� L�}H�CH� uH�C H��H�MH�E L��HE�J�<��M���H��H����H�H�E������t��@H�H�kH������H��H�����H�EuH���`H��`�r�ƒ�������H�€�H�}H�U������������H������@H�sH;s���ƒ��������H
H��r���fDH�{ ��H�C �U����H�H���������H�ƒ��� ������H%�_��1�H�E����H�H�E�ƒ���t��@H�H�k���@H��A�A���I��I)��?���f.�H�k����H�{ ��H�C H�����DH�E�������f���H
H�E�W����% H�����H�ƒ�`H��`�~���H��H���H�E�j���ff.�@AVAUI��ATI��UH��H���' SH��a�H��H�E u?H�m L��J�L�I��1�H��I����H�H%���I	�L�#H��[]A\A]A^��H���f.��I��H��A��tWH���w���H�U�� �
H�U H�S H�UH�SH��H��I���;���Lk M����L�cH��[]A\A]A^�fDH�����tH��ƒ���t	H%�_��H�H������H�UH�ց� tcH�MH�K H�������H��σ���ty�� ��H����H����H��H��H��I��H����H	�H����Lk �Wf�H�M H�K H���������H��σ���u�����f�H��H�k H�������@H����������H��ƒ�������� ���H%���I��L	�H��Y���@H��u����fDH�U�7���ff.�@U1�H��H�S��H��H�L$�H�L$��tXH�H�U�� tDH����H9�|0H��xHH)ʸ��H��HD�H�H�0�k���H��[]�@H����H�U�f�H���H���H�H�5H�81��ff.�����uHH��� u H�J�H��tBH�R H��H���DH��H�����t'H��H���fD����fD��������u0H�
��� uH�zt$H�R H��@H�����u��1������ff.�@UH��SH��H��� t/H��H�˃�H���H��H��H��[1�H��]�'����H�_��f.�������1�@��usH��H��tjH�1��у���t[�� uVH��%@tL1�@��uDH��H��t;H�1��у���t,�� u'H��%@t1�H�VH9WuH�VH9W�HD����H�H��H�8�*�f.���AWH�
I��H�AVH���AUATUSH���I�/I��� ��M�eH����A�� ��I��A��N�t%L���I�OH��I� uI�O I��H��1�H����I�MI�E uI�M I��L��H��H������u	H�����uL�sH��H��[]A\A]A^A_�fDH��ƒ���t�� t�H%���I��I	�L�3��@M�eI�oA�� �=���M�e�<���f.�AUATI��UH��H��SH��H���I��H���L��I�E ���I�uL�EH�E uL�E H��~1��I�<�I�<�H�<�H��H9�u�A��u	I�����u$I�]L���1�H�}��H��[]A\A]�I�E�ƒ���t�� t�H%���H��H	�I�]�f��I�u �b���f���AVAUA�ATI��US��t���L�.A���QI�I�$�� ��I�\$H���H��H��~SM���L��H�H��I��M�t$I�$ uM�t$ L)�K��I��1�H��H����I��L��L��H��H����I�$H�� @��uVH�����tMH�M�΃���t?�� t:H����I�D$H����H��H	�H�E�(�H�����8���@H��tH����H�E[H��]A\A]A^�@I�D$��f�1�H�1��I�$�� ���롐L��H�K�H��H�H��H)�I�����fDL���I�$I��� ������c���H�����8���@��UH��SH��H��� ��H����H���H��~<H�UH�E uH�U H�pH� ��H��@H�
H��H��H��u�H�UH�с� �u>H�����t6H�0������t)�� t!H��u]H�UH����H��H	�H��DH��uH�UH�PH��[]�@H�������H�p �g����H�_�'���H�����ff.�����f���AVAUI��ATUSH��PH�t$(H�T$0H�L$8L�D$@L�L$H��D$I��H��$�H�D$H�D$ H�D$M����1�M�t$�0�ƒ�HT$�D$H�*H�,�@��u	H�����u4H��I9�tkL��I�$ uI�L$ �D$��/v�H�T$H�BH�D$�H��L�����u�I�$��`H��`u�H�E��`H��`t�H��L��H���I9�u�A��u	I�����uM�l$H��PL��[]A\A]A^�@I�$�ƒ���t�� t�H%���I��L	�I�$��f���UH��SH��H���H��~H��uH��[]�f.�I��H��H��H��1�H�D$���H�D$�u/H�����t'H��у���t�� tH����H��H	�H��f�H�XH��[]�D��UH��AWAVAUATI��SH��H��XH�u�dH�%(H�E�1���tmI����tuH��� uIL�KM��x��I���M��u{H��H�M�dH3%(�jH�e�[A\A]A^A_]�I��I��A���L���I�����u��H���H�M��H��L����H����f�J�4�H�����H�E�H�E�H�E�H��H�E�H��H��H���H���H)�H9���H��H��$���@1��H���H������f�E1�L�e��?�H����I9����H�CJ��L��I��H�E��H���H��� u�L;k�����H�C ��%�t	H)�H�L�L�T$I���M��H��L�M�E1�E1��R���L�M�H�@H�E�I�D$�I�H�E�I��L;m���K��H�E�M9�~7�H�E�H�}�L��L��L�M�L�8�&���L�M���t~I��M9�u�DI��K��L�xO�<�M9��M��u�H�}��H�H�U�H�H�B����fDO�<��e����H�E�L�M�H��H�E��L�M�I������H�H�5H�81�����UH��AWAVAUATSH��H��XH�u�L�'dH�%(H�E�1�A�� ��I��A�������L�u�A����I�M���M��I����H�E�J�4�H�E�H���w]H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�L�T$I���M����H���I��H��E1��J�H�@H�E�I�F�I�EH�E�I��L;}��K�D�E1�H�E�M��~?�H�E�H�}�L��L��L�M�L�����L�M����OI��M9�u�f�I��K�D�H��K�D�I9��M��u�H�}��H�H�M�H�H�AH��H�M�dH3%(�H�e�[A\A]A^A_]�@L�g����_����H���H�M��H��L����H����DL���I���1���K�D����f�1��H���H���c���f�E1�L�e��<�H����I9��7���H�CJ��L��I��H�E��H���H��� u�L;k����H�C ��H�H�5H�81���fD��UH��AWI��AVAUATSH��H��XH�u�dH�%(H�E�1����II�����QH��� �L�sM����M9���M���VE1�L�e�I����H��N�,����H�E�H�E�H�E�I����4H�E�I�EH��H�E�H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�L$I���M��H�E�I��1�I��L��M�H�@I�D$H��H�E��I�$����1�H�HI9�~I��H�0H��H�VH�L9�u�L��H�U�H�}�L��H�M��&�H�M����rH��tLH�A�I��H�1H�VH�I�L�H9�t)�DH��I�|�I�H�OI�L�L�H9��n���H��u�H�}��H�H�u�H�H�FfDH��H�u�dH34%(��H�e�[A\A]A^A_]�H����I9�}�H�CJ��L��I��H�E��H���H��� u�L;k}�H�C ��I��I��A��M������DL���I�����������H���H�M��H��L����H����6���1��H���H�������L��H���I�������H�H�5H�81����UH��AWAVI��AUA��ATI��SH��hH�dH�%(H�E�1��� ��H���������D��H�M�H�1�L���H�}�H����@���#H�H�}�H9���H�}������{H�}��H�}���H�E�L�<�H�E�I�4H��x���H�����H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�L�L$I���M��L��M�E1���L��H��1�H�@H�E��H�E�1�H��H�E�fDH��1�H)�L��H���GH��J��M�L)�I�
�I�EH;E��AI�DI��1�뱐H�Z����|����H���L��D��L��L���H����#�H�]�1�H�}�������L��H�u�dH34%(�zH�e�[A\A]A^A_]�E1�H�]��9�H����I9�}�I�D$J��H�޿I��H�E��H���I�$�� u�M;l$}�I�D$ ����H9�H�E�������@1��H���L���L����M���I��K��H�xA�����M�\1�H��~C@A�<u/H�u�H�}�I�L��L�U�H�M�L�]��j�L�]�H�M���L�U�tZH��H9�u�I�:A�?H��I�:����DH��x����H�H�]�H�H�C���DH���I�����H�H�5H�81�����H��1�����f���UH��H��1�SH�����1��H��H��H���D���u	H�����uH�kH��H��[]��H��ƒ���t�� t�H%���H��H	�H�+��ff.����@��uH�����tH��ƒ���t��`uH� �f��ff.�@H��tH�GH��H��t~H�G��SH���H��[�ff.�SH��H������uH�����tH��ƒ���t��H�[���SH������H������H��ƒ���tr��um�� uH�C��@u>�tH��[�f�H%���H�����u�H�{ ~�H�߾ �{���H��[�fDH���H���H��ƒ���t��� H��H���ff.���USH��H��(����H�������H��ƒ����������� ��H�{������������H��H�@H���E��H��H�E1�H��tH�pH��H�H���� ��H��H����H9����ƒ����+���"H����H�C��@��H���R���H���H��H�5�H���H�}H�l$H��t
H�E�H�D$H�D$H�D$H��(H��[]�@H��H����������H��(�[]Ð�H��H�@H���x��H�����H�S�#����H��H����H������=�����@�4����� �+���DH��H�t$�S���H�H�t$�ƒ��������� H����H���f.���ATUSH������H�������H��ƒ�����������@��L�c�� ��H�kH����I�|$��I�$�� �8H��H�K I�t$����H)�I�|$H�I�$ uI�|$ H�SH�4H��H�{ �A��u$I�����tI�$�ƒ���t
�� I�$fDL����H��[]A\�@[]A\�H��H������H�s H�{��H�ƒ��� ��HE�H��H��H��L�����H�H%���H	�H�+�@�H���H��H�sI��H� uH�s L���H�����H�kL�c �J���f.�I�T$H��H�H9�~�H�K I�t$ ���H���f.�USH��H��H�H�ʁ� ��H��H����H��������H�,0H)�H9��Y��u	H�����u#H���H�CH9���H��H��[]�@�ȃ���t��@tH��~H�CH�x��@H���H��Ѓ���t���� u���t�H�C�H�G�T���H���H��ƒ������� u)���H�CH��H��H)�H9��Q����H��H���M����:����H��tCH�SH�0�� t:H�xH��H)���H��H�H9��o����������H���DH�S �H+P H�pH��H���H�C�f���H�H��H�5H�81��ff.�f���AUATI��USH��H��H�/�� ��H�����H���	���I��H�CH� uH�C L�$�A��u	I�����ubH����u	H�����uH�kH��H��[]A\A]�fDH��ƒ���t�� t�H%���H��H	�H�+��@H�o�q����L��L�����u�I�E��`H��`u�I�$��`H��`�q���L��L����a�����H��H���1�H���f���AWH�
H�AVAUATUSH��H���H��8�H���I��H�E�� t$������t$H��8L��[]A\A]A^A_�fDH�}����u��H��E1�H�l$H�@H�����H��H�D$�I���8f.�H����I9�}LH�CN�4�1�H��L��L�t$���uI��H��� u�L;{}H�C ��fDL��L�����H�D$H�xH�D$ H��t
H�@�H�D$ H�D$(H�D$ ����@��AWH�
H�I��AVH���AUATM�gUSH��(�H���H��1�H�@H�����H���H�D$�DH����H9���L��L�,�H��L�4��1�L��H�����uKI�H�� tbH�����H��t"H����H9���L��H��uI�G J�40H�|$�H��I��� �m���I;_}I�G �q���fDI�G�f.�H�}H�l$H��t
H�E�H�D$H�D$H�D$H�D$H��([]A\A]A^A_�f���w���fD��SL�FI�@�H�FM��t(H��~Hc�H���H��H��H�;��[��ff.�f���AVAUATUSH�����tx�E1�L�cH���.�H����I9�}DL��N�4�L���H�����tI��H��� u�L;k}H�C ��DL��H�����[H��]A\A]A^�@H��[]A\A]A^�P����AVAUATUH��S�����H�}�� u`H�}�1�L�eI���4@H����H9���L��H�<�L�4��H�����u,H��H�E�� u�H;]}qH�E ��H������H�EH�� t9H�����H��tH��xCH9�}>L��H��uH�E J�40L����@H�E��f.�[L��]A\A]A^�@���f��H���[H��L�����]1�A\1�A]H��A^�D��AUI��ATUSH�������I�}�� uVI�}�1�M�eH���)f�H����H9�}DL��H�<�H���H��H���I�E�� u�I;]}I�E ��@H������H��H��[]A\A]�f��H���H��L��1�[L�����]1�A\H��A]���AWAVAUI��ATUSH��H��H�H���� ������I��Hc�I��A��M�$/I��A���H�������ƒ����t��@�kL�CI�H�Ɓ� ��I�PI�x�FL9��=H����H�KI�xH��uI�x H��H)�H��H9���H���k�H�ڃ�H������e�������W%H	��IH��H��[]A\A]A^A_����t�L�zHc�H��������H)�M�$/I9������H�L��H�5H�81���H���H�CH��H��H)�I9���I��@{H�sH� uH�s J��H�<��I��1�L��H��H������M��u1H�����t(H��ƒ���t�� tH%���I��L	�H������L�c�����M����H�SH��H�T$���H� H�T$��H�{H��H��L)�H��H��H)�J��H�H��H���L�CH��H��H)�H�K �5���L��H���M�������H������l���H��ƒ����[������ �Q�����B���H�S�=���H���H��Ѓ���������� �������e���H�CH��H��H)��`���f.�H�{ H������@H����H���@���H�K �X���H���UH��SH��H���H�H���� ��H��H����H9�~wH�t-��utH��������ƒ���t	H����H�k�ƒ���t5�� t)�H9�}0�� u+���H�{���1D�uyH9s�H��[]�H�CH�kH9�~�H������t�H��H��[]隦��f.�H�S�D����H�CH�kH9�|�몐H%���H��H	�H��K���H�S�S����H��ƒ����@���H�C�{���ff.���AWI��AVAUATUS��H��H�L� ������L���I�/�� u~I�oM�w H���}H��M�o�7@H����H9���L��I9���I��I��H�I��H�H��t=H��L��H���I��� u�I9o��I�W �fDH��M�w���z���H��L��[]A\A]A^A_�fD�o�Hc�H�<��H��u1�1�����H�t$I��H��H�H�T$1��H�$H��4LE��������DH�H�5H�81�����SH���H��� �H��H�C1�H�у�H��H9�v]H��H�H��H��tH�H��H9�w�H��� u'H+s H�SH���H9�tH������H��[�@H�CH��H)�H������@H�C H�SH��H9�r�1����AVAUATI��UH��S��H��0H�D$ H�D$(����a��H�L$L�D$L��H�1���A�����`��������H���L�d$(M����H��������H�\$ H9���H��H)�I9���H�EI�H���� �dH�UL9���H���u/H�����t&�ƒ���t	H������t���L;e��H���}H�EH�U L��H)�H�<��H����H������sH�E�ƒ����a�� �XL��H%���H�\$ H��H	�H�E@E��t{I9���I�@�6fDH����H9�~iH�EL�4�A��u
I�������H��I9�tEH��L�x`H�|�I��H�E�� u�H9]~!H�E �fDH�L$H�T$(H��H���3��H��0H��[]A\A]A^�H��H��������H���H���L��H������l���H�E��`H��`�[���I���`H��`�K���L��H����;���@A��H�L$1�L��L�L$L�D$��H���������H�M�� �H�MH�|$H�T$(H�t$ A��H���~���H�|$H���@����H�H�|$ H��y"H�E�� �CH����H�H�|$ ��H�|$H����@���H�H�|$(�����H�D$ H�E�� uVH�EH�D$(���I��rf.�H��L��H�U��H)�H�<��H�������L�eH�\$ ����H������H�������@�H������L��H�����H�EH���� ���H�D$ H�|$H������H�}�� t4H����H+|$ �����H����H�E����H�}��H�H�5H�81��f���AUATUSH��H��(�H��� t"H������H��(H��[]A\A]��H�kH��~�H���jH������I��H�@H��x	H��I�D$L�+I�,$A�� ��I��A��I�D$L�d$H�D$�� ��I�l$�H��L�D$L��H�
��H���L��HDȺ�H���H�؃����#I������I�$�у������ ��I�L$H����H�������H��ƃ���t��@���� H�I�$H��I��1�H�߃�謾��H��Ѓ����WI�$H���� �NH��H����%�H	�H��d���H��H���H�KI��H� uH�K H��M��1�L���6���I�$H��H����H	�I�,$L�+A�� �u���L�k�t����H��ukH������.H��ƒ����=�� �MH�s I9t$ �4��H��I�$�� ���Cf�I�l$ �+���fDH�{ I;|$ t��I�$�� ��I�D$L�kH�C H��H����H�CH��H��uhI�����t_����t���I�$����t�� I�$H%�����H�ƒ�����HE�I�$H�H�I�D$H��(H��[]A\A]�fDH����I�$��I�D$ L�kH�C I�D$�e����H�C I9D$ �����H�{ �#����H�s I9t$ �����ƒ���t�� tH%�_��H���@��@t�H��������fDH��I��1�H�߃��D���I�$H����H�C�%���H��H�L$�C�H�H�L$�ƒ����C����D������ATUSH�����TH������GH�;�������6��I���'H��H�
H��H���H��H9���H� uH�x=H��ƒ�������`��I��A��@����L�cH��@H���p��H�I�ĉЃ���t	��`�p�� H�{uH�{ �H��Ѓ����$H��_��H�H�U�� �H��H��H�k ��H�SL��H�����H��[]A\��H�{�� uH�{ �H��ƒ���t�� H�H�U�� tbH��H�M��1�I��H���z���M��ueH�H�E��H������ ��t�� uVfDH��t+H����H�CH��[]A\��H�M H�U�fDH�E��f.�L������fDH��u;H�EH����H��H	�H������H�U�� ���H�E H�UH�C ���f�H������@������� �����H�������H�����SH���H�߅�t\�H�5H��t+H��E1�L����1�1��H��H���H��[�D�H�=�H��H��[�ʳ��f.���USH��H��H���H�H9t"H�;�� u$H�{�H��H��H���H��H��[]�H���������AWAVAUATI��US�_Hc�H��8�|$H��H�$�H�<�H�D$ �H�D$(H�l$ H���H�E�� �L�t$ L��I���H�D$(H��� ��H�l$(H��H�D$ H�@H�D$(H�@H�D$ �uH�D$ H������%H�D$ H�XH�$I�H���I�FI��H�H��H9�u�A�L�-K�|��L��H��K��I��L9�u�1���D�H��H9������B�H����I��������1�I���Z@H����H��t_H��t4L9���H���t H����H����L��H�H��H9�������H��H��H9��2I��H��� u�H�HH��u�1��I��H�\$ H���H�H�1�H%���H��� H�H�D$ H�|$(H�P�H�H�D$(I��LD,$H�H�PH��8L��[]A\A]A^A_�f.�H�D$(H�h����f�H�l$ H���L�u ���f.�E1��%������u.����K��I��L9���K�<�H��� u�H�����t�A�����H�D$ H���������H�D$ H��� �����H�D$ H��H��H� ���H�D$ H	���H��~+L��H�H��H9����u���L��H�H��H9����b���DL��H�H��H9����J���DA�HcD$H��H�D�H�D$�A�H�H�D�H�D$H��E1��I��H��~(fDJct�K�<�I���L��H���L9�u�I����H�D$ �uH�D$ H������BL���H�D$ ��RH�D$ H������AH�D$ H������-H�D$ H���H�D$ �uH�D$ H�������H�L$H�t$��D$����L$�0DH����H9���������N����H�����FHc�H�M��H�|�I��� u�I�Q�f�L��L����������}������I���i���H�D$ H������<���H�D$ H� �����+���H�D$ H����������H�D$ H����H�H�5H�81��H�H�5H�81���E������H����uH�����tH��у���t��`uH�GH�����H��H�<$�H�t$H���H���ff.�f���H�
H���@��AVAUE1�ATI��UH�oSH���YDH����I9���H��J�<��I��H��t+H��� tC��tI�FH�8L���H��uC�I��H��� u�L;k}>H�C ��I�~~�I�F L��H�8�H��t�[L��]A\A]A^�f�A�[]L��A\A]A^�ff.���UH��H��SH���H����H��H9�tiH��H��H�=ܳ��H���H��4tH��[]��H�E�� uGH�H�E�� tJH����H)�H��t��H����[]H��������H���[]�@H�H������ u�H�S�H���[]�ff.����ATUH��S1��I���pf�H����H9�}s�H��tH��xH�EH��uH�E H�<��H��tjH��� tQH����H����H�PH��H�0L��H���H�EH�� u�H�EH9�|�L��[]A\�f�H�xuiH�@ H�P�H�UH�с� tJH����H��tH��xH9�}H��tYH��H�D�H���H��H�5H��H�H�81��H�U�H�HH�H��H�5H�81��H����H�m �fD��H���@��AVAUI��ATUH��SL�'H��A�� �SI��A��H���OH��������H9���H��I���A����H�CH9��-H�H�� L9�4tUH�CH��uH�C L�,�A��u
I������[]A\A]A^�DH��L)�H�pH�CH��uH�C J�<��H�H��H�M�� M���H�����tv�ƃ���tlH��tgH%���H��H	�H�% H���`���f�H������1���H��Ѓ���� ������ ����������H�C�����H�K�
����L�gH�������L��H�xjH�����H��H���-��������L��H���������H���`H��`����I�E��`H��`�����L��H��[]A\A]A^�H�L��H��H�5H��H�81��H�H��H�5H�81��ff.�f���AWH�GI��AVE1�AUI��ATUH��S1�H��H�D$�EDH����I9�}\H�D$N�$�H��L���H��u;I9�tL��H��L���H��I��I��� u�I�GI9�}I�G �f�M����H9�t#H��L���h�H��L��[]A\A]A^A_�fD�A���t�H��H��[]A\A]A^A_�ff.���AVAUATUH��S�����H��E1�L�u1���B�H��H����H9�}QL��L�,�L���H�����tL9�tL��L��H���I��H��H�UH�с� u�H;]}
H�E �@L9�t{H��~-�u2H�����t*�փ���t H��tH����I��L	�H�U[]A\A]A^�L�eH��[]A\A]A^��H���[H��L�h���]1�A\1�A]H��A^�D��f���SH���H�߅�t����H��[�f�[麥��f.���ATUH��S�H��ti�1�L�e�.@H����H9�}<L��H�<��H��H��H��H���H�E�� u�H;]}H�E ��f�H��[]A\��[]A\�'������AVAUATI��UH��S��H��H�������H��H�E��tL�� ��H�}�H�EH����H%���H�E�����H��H��[]A\A]A^�fDH�����t��ƒ���t���`t���@t#�� uH������H�E�ƒ���t���� �1�H��L�D$L��H�������4L�$$A����I�M����H��������I9���H���L��H��脈����������M������I��I��1�A��I���<M��tUH�E�ƒ���tG�� tBH��H%���H��H	�H�E@I9�����H�|�H��H��H��H���M��t�H�]��H�} H���t���H���}���H������p����ƒ����b������f.�1�H�=�H��H��[]A\A]A^�f�L�$$A������L���H�D$H�������H��H�������H�L$1�L��H��薮��@��u8H�����t/H�E�ƒ���t!�� tH%���I��I	�L�e����fDL�eH��H��[]A\A]A^�@L���I���-���H�=1���_���H�H�5H�81��H�H�5H�81��ff.�f���AUI��ATI��UH��SH��H��� �}H����L��H�����H��L��L��I��H��L�����@��u	H�����uH�]H��H��[]A\A]�H�E�ƒ���t�� t�H%���H��H	�H�]��f.�H�_�f.���H��Hc�H���ff.���USH��H�����H������H��Ѓ���������H�с� uHH�s�H��t3H�<vH�n���`t=DH����H��@H�k�� tH��H��H��[]�H��H�����@��tH9�}�H�{���f�H�CH9�}�H������t�H�H�����H���H�Ѓ���t�H�с� �k���H�[ �|����H��H����H��H	�H��S���H���ff.�@AWI��1�AVAUATUSH��H�t$�H�T$(���I�7H��� �HH����1�E1��מ��H�D$��L��H��H�$�H�D$(�H�D$8H�D$HcD$H�D$ f.�I��� t{H����I9�}|I�GN�,�M�fL���H��H�D$H�x�H��t*�D$����H��� �gH����H9D$ ��H�|$L��M���I��� u�M;w}I�G 뉐H��� ����������H�<$H�t$1�L�|$8�H������H�I��H���I������f�H�D$(H�<$1�H��H�l$8�����?H�t$8H�<$��L��H���H�@L���K�t$H��I��E1������H�{�����<���H�<$�L���H��H�D$H�X��u	H�����u^H�D$H��H[]A\A]A^A_ÐH���I������H�SH��H��?H�H����f.�L���H���\���I�w���H��H��I�����u�I�H�$��`H��`u�H���`H��`�p���H�|$H����^���H�H�5H�81��H�<$�H�H�5H�81��f.���U1�SH��H�H��H�L$�D$����H������H��ƒ��������H�|$H����@��uk��ƅ�tkH�T$H���k����T$H�Ņ����uH�����uhH���D$�H��H����D$��tH�e���H��H��[]���ƅ�u��H��H��[]�fD������v���fDH��ƒ���t��� t��D$�@H�ǻ�H�EH%����� H�EH��H��[]�H������S1�H��H�H��H�L$�D$�H�|$H��tn@��uH��ƅ�tHH�T$H���@����u H�����tH��ʃ���G�H��s<H��[�fD��ƅ�u�H�����H��[��������f���u�H�����t�H��փ���t���H	�H���������SH�����H�������H��ƒ����������H����H��ʃ���H�H��t@�� �� t;H��H����H��ufH�PH��H�H����H��H	�H�[�f��� H�KH��t!H����H��H�H�S[�fDH���H�PH�����H����H���H���ff.����USH��H��H�H�ǁ� ��H��H����H�ك�H�������ƃ�����H�Ɓ�H	����H��t_H��ueH�{ H�/��@tH�SH�z��H�C �*H��~ZH�H���{���H��ƒ�H�C ��t	�� uT@H�kH��H��[]ÐH�{�f.�H�S�@����H�����H�w�H��ƒ���u��H��H%������H���H	�H��f�H�H��ƒ��i���H���@������ATUSH����3H������&H��ƒ�������1�H��裭��H�(I��� ueH�hH��Ѓ���t��@���� tcH��H�{��H)�H�4�H���H��Ѓ���t�� uFfDH)kL��[]A\�@H������H����H�{ H�S�fDH��H����H����H)�H��H	�H��H�KH�ytH��HK �t���@�� H�{uH�{ H���H��Ѓ���H���f���H��H���H�t$H�t$���H���ff.����ATI��UH��SH�H��� twH����H9�|tH��xoH��xjH9�},H)�L��H���H��t0H��H��[L��]H��A\�ԩ��@H�TH9��L���H��u�[�' ]H��A\��H�GH9�}�[�]A\�ff.�f���UH��SH��H��������uRH���ueH�M�� uqH�ME1�H�T$H��H���H��teH��tH�T$H�4$H���H��[]��E1�1�H�1��H���t�H�H��H���H��[]�H������H���H��H���H��[]�fDH�6@��t?H�H�SH�4$��t?H�H�T$H���`���H�E�� u=H�EH�H�4$�G���DH���H���H���H�4$H����H��������SH��@��tJH�H��xOH��� uH�SH���H��t[�fDH��H�߃��H��u�[�DH���H���H�H�5H�81����ATUH��S���td1�L�e�(@H����H9�}4L��H�<��H�����t H��H�E�� u�H;]}
H�E ���H�tH��[]A\�����[H��]A\錗��ff.����SH��@��tH��H�H��xH��1�[�@H���H����H�H�5H�81����ATUH��S���td1�L�e�(@H����H9�}4L��H�<��H�����t H��H�E�� u�H;]}
H�E ���H�tH��[]A\�?����[H��]A\鬖��ff.����UH��AWI��AVAUATSH���}�H�u�dH�%(H�E�1�H��� ��H����H��h����u������E�H�]�L�}�L��h�����I��L�d�H�E�H�E��L��1�H���I��M�7I��M9�tlI�H���H��u�L���L�M�1�1Ҿ�H��I��H�E�L����L�m��H��4u�H���H�5H��H�H�81��L�}���E����$�����]�H�M�L�}��E��C�L�l��CHc]�H�H��p���H�E�H��� ��@H����H9���H��p����I��H�E�H�H��x����� ��H��H�4�L��L�4���U�L�}���X�
f.�H�����H��t#H����H9���H���TH��J�42L��I���M9���I�H�H�ǁ� u�H�B�H�BH��h�������H��h���H���H��`���H���8�]�L��p���1ҍCH�H��X����C�H�]�L�l�I�G1�H��P���H��X���H��x����H��x���I��H��p���H��� H�E��LH��P���H�4�L��L�4���E�L�}���?��H�����H��tH��xZH9�}UH��t0H��J�42L��I���M9�tGI�H�H���� u�H�B�H�R ��f.�H�R ������f�H��`���L����E�HcU�H��H;�h��������H�]�dH3%(H��`����0H�e�[A\A]A^A_]þ�:���fDL���H�E��E�Hc]�H��� �x���H�E�H�@H9��w���HDž`����f�H��p���H�@ ���H�E�H�@ �u����E�D�hH�E�Ic�H��x���H��H���wYH�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�H�\$H����H���H��I�GE1�D�m�L�m�H�E��E�Mc�D�p�I��� ��@H����I9���H�E�J���M�M��E��N��1�I��?H���C�}DH�����H��tE��uJI9�}EH��t8H��J�<H�|�H�BL9�tBH��I�L�H�H�Ɓ� u�H�A�fDH�I ��f��H�BH�|�L9�u�D�}�H��A���I�Mc�� �*���M;G}	I�G �/���H�}��1���H��x����� ����f.���SH��H���H��t	H��[�H�t$�H�\$�H��[�fDAWAVAUATI��USH��(H�L$H���FH�I��I���� �OH�_M���RL9�|
K�D%H9�~I��M)�H�|$E1�H��������H��4tB�L�8H�D$A�� �KI��A��H��������I�L)��� �H����I9���I9���L��L��K�l=L)����L��I��H)�I�FI� uI�F H�<��M��~'H�L$H� ��H�I M��L��L��L���ϐ��A����I������xI��ƒ����g�� �^H%���H��H	�I�H�D$H�D$H�D$H��([]A\A]A^A_�H����M�������H��L��I�����@H��I�,L)�L)�H9���L���L���H�$u
I������!I�FH9��LM9�tcI�NI� uI�N K�D%H)�H�4�K�/H��H�<��H�<$u&I�����tI��ƒ���t�� ��I�nM������H�t$I��H�^H� uH�^ L���L��I� ue�I�~ J�<�L��H�������I�n����I�^����L�x����H���'�����I�~�DI��ȃ���������� �����������I�F���@H��L���o������H%���H��H	�I�.���H�H�5H�81��L��H�H�5H�81��H����H�H��L��H�5H��H�81��f���SH��@����H�����t{H��ƒ���tn��uiH��H�H�
��H��� u0H�x�„�tH�3�� t)H����H��1�H������H��[�������DH�s��H���f���ATU��SH������I�����H�������H��ƒ�����������t:H���tZH�H���t9H��H��?HÍ}�H��Hc��1�H��L��H������H��L��[]A\�@I�$�� t/H�����fDH��H�t$�H�t$H���f�I�\$�L�������@��UH��SH��H���������W���FH������9H�
�ȃ����(���H�>H��H�@��u.�� uJH�JH�T$H��A��H��uNH�u@��t4H�H�UH���H�EH��[]�f.�H������H���H����H�MH�T$H��H�4$����H�EH��[]��u|H�����tsH��ƒ���tf��uaH�6@��t7H�H�UH�4$��t7H�H�MH��H�T$�s���H�EH��[]��H���H���H���H�4$H���H���������H��@����H�������H��ƒ�����������@u`�� tH��|H%���H��H	�H�H���f��t1H�WDH9�}H�=1��DH�wH����H�W��H�H�5H�81��f.����@��AVAUATUH��SH��H�� �H�H�� �#I��I��A��I9���H��������H9���I��A��I9���I��M)�M��u1H�����t(����H��t	������t��DH;k��H����H�C J�<�L���M��usH�����tjH��ƒ���t]�� tXH%���H��H	�H�H�� H��[]A\A]A^�DM��uH�����t������tH��u�H����H�EL9�|EH�kH�� H��[]A\A]A^ÐL�c�����H��:f.�H�C�>����H�{ �H���H�kH�C �DH��H����i��H��� ���L�4�H�s I��H��L��L���H���L�#H�{L��L���I����H��L	�H�� H�+H�� []A\A]A^�H�H��H�5H�81��@��ATI��USH��� t}H����H���I�L$H��I�$ uI�L$ 1�I��H��H��跇��@��u	H�����uH�]H��[]A\�@H�E�ƒ���t�� t�H%���H��H	�H�]��f�H�_�f.���S�H��H���H��[�fD��AWAVAUATUH��S��H��H�H�T$L�(���oH�L$H�H�ׁ� tlI��I��A����ue1�I���H����H�QA�H��t#H���0H9��'H����H�I L�$�H��L��[]A\A]A^A_ÐL�q��t�H�L$H���1�H���H�D$��H�H����I9�IN�H��H�@�H��	w.1�L�d$pM�~��L��L��H)��I��H��H9��H�|$H�H�ف� ��H����I9���H��
��H��~*H9\$p��1�H�T$p�
H9���H��H9�u�H9�HN�H����NH����H���CH�t$pH�T$xH��$�H9���H��I��I��I9�L�@H��M9�IO�H���bH�OH��H��$�H�OH� uH�O H��H��$�H� �H��H��H��$��H��$��I���>���@H��������@L��I�v��H�L$H�H�ׁ� H���������D�g�Ic�H�<��H���w���L�D$p�H��D��H�L��$�L��H��$�1��H�D$pH��4LE��4���H9�HN�H������H���H�������H��
���H�@I��H�D$H��$�H�D$M�|$I�$ uM�|$ E1�H��fDH��L��L)��L�I��H�H�T$K��H�H�D$K��I��L9�u�H�H�I�D$A���I������I�$�ƒ������� ��H%���H��H	�I�$���H������1��I���z���H�_� ����H���]����H�D$xH�T$p1�H9�@��H�H���\H�O H��H��$�H� ��H��H��H��$��H��$��I����f.�H�D$pH���H� H�4ǿ�I�������H�����H������H�T$pH�T$ H��$�H����A�L�d$pL�D$ L��$�K��E1�H��H��I���DH��I��I�EH9�H��L9�u�I�EM��L��K�4�I�<�L�$L)�H���L�$J���K��I��L9�tTH��$��f.�A�����H�O���H�����I��I�������I�l$���fDH���I��H�pH� uH�p 1�L�D$ H��%���H��I��H��H��H��H9������H�T$H� u�H�R ��H� ����H�O ���H� ����H�H�5H�81��ff.����ATI��U��H��S�L���H��H��諹��H��[]A\���S�H��H�����H��[�fD��ATUSH��H��H��� ��H��H�����������uy�H��H�@H���w��H��H���I��H���H��I�D$�uH�������H�}H�,$H��t
H�E�H��H�D$H�$H��L��[]A\Ð�H��H�@H���X���H��H���I����H������>���H���H��I��[]L��A\�f�H��L������Z���I�$��`H��`�I���H���`H��`�9���H��L����)���ff.����AWAVAUATUSH��H��� �.I��I��A��M���'H�<$�A�I�������H�� �QH�����H��tL9�~H�$H���MH��J�<�H�
�L�D$H��L�D$I��H�M���$�� ��H��H����L9���H����E1��}f.�H�����H��tL9�~I�D$H��uI�D$ J��H�H�Ɓ� tQH�����H��tL9�~H�CH��uH�C J�<�L��I���L9�~)I�$H�Ɓ� u�I�D$�H�C�L���I��M9���H�$I��H�H�� �����H�$H�@���DI�l$����fDH�@ ������ tKH����I��L���H��M���{���1�L���H��H��H��H���I9�u�I�$���I�D$I���H��H��[]A\A]A^A_�L�wM������H��[]A\A]A^A_�H�L��H��H�5H�81��fD��H��� tH��H�wH�ǃ���H�w H����AWAVI��AUATUSH��(H�H�t$�� �����„���E1�A��uI�����t��H��H��������DE�H�|$���E1�I�n�S�H����I9���H��N�<�L���H���I9���H��� u&H����I�H�I���� u�M;n��I�F �H�P��f.�H��„��6���1�1��H����H�|$�H�T$H��� �-I�H�Z�� �3H��H����H��H��H������f�H���H��E��t�� I��� ��H����H�t$H��L����_��H��(H��[]A\A]A^A_�I��� ��H����L)�H��H�<C�H���H��H���E��t%��u H�����tH��ƒ�������H�H�t$H��L��L���=_��1�H�t$M����L�D$H��L��L���D$�yv���O���@I�V�2����H��H��I����� ����I�NH�Q�����DI�F�2����H���������H��ƒ����H���������H�����H���6����+������AWAVAUATI��H��USH��H���H���6����H�H�����?H��������I�,$H�H���� �H����H9��(H��L���H��H���r��I��I��A��uH�������I�oI�$�� ��H��I�L$��H����M��uCI�����t:I��ʃ�����A��u#I�����tI�$�փ���t��H	�I�H��L��[]A\A]A^A_�DH���H��H������L����' H���I��I��A���i���H��L��H��[]A\A]A^A_��I�l$���fDI�\$I�L$ H���&���I��M��H��1�I��?L���w��I�I�L9�;I�GH�D$�H�L$H��H��M��L���zw��H�L9�I� u�I�O ��H9������I�OI� uI�O H��M��H��L��H)��2w�����DH��у����Z����� �Q���H��H����H��H	�H��<���D�H��������d���H�H�5H�81��H�H�5H�81��ff.����S1�H��H�H��H�L$�H�t$H��uH�H�0H�t$H���H��[�f����wr�����UH��SH��H��� tkH����H���H��~9H�UH�E t8H�L�H9�s!fDH�2H�9H��H��H�z�H�qH9�r�H��H��[]�H�U ��f.�H�_�f.�������UH��SH��H���H��uH���[]�f.�H���H��H� ���H�;H�K�� ��H����H��~�H����H��H�H��H��~�L�G�L�R�L9�|iM��t'J��H9�sH��H�2H�8H��H��H�z�H�pH9�r�M���|H��H��[]�f��H�;H�K �� �x���H�{�v����J�<�H��H9�v&H���H�0L�
H��H��L�H�H�rH9�r�M��tJ��H9��`���J�<�H9��w���H�H�H��H��H�Q�H�GH9�r��T���H��H�w�H��H�H��H)�H����fD��UH��S�H����t��u%H���t5H�H��H���H��H��[]�D1�H�1����fDH���H���ff.���AWLc�AVAUI��L��ATM��USH��N�4�H��8H�t$�H��H�D$(H�D$H�D$ H�D$M��%�sH�H��L��A��H��H���H��L9�tPH�;@��u�H�L$H�T$A�H�t$�H��u@H�3@��tH��f.�H���H���H��8H��[]A\A]A^A_�fDH�T$ H�t$(H�D$H�H9�HN�H�$H9�}2I��L��L��I��A��H��H���L9<$u�H�$H�t$(Ht$ H9��2���H�E�� uH�EH)�H��H������H������ff.�@��H�A��H��H��� tH��L�D�ʃ�H���f�H�rL�D���ff.�f���AVI��AUI��ATL�gU1�S1�H��8�H��H����H9�}AL��H��L9�tH9�tH��L���I�MH��H���� u�I�EH9�}I�E ��DH9�t��L��]A\A]A^�(����[]A\A]A^����AUATI��UH��SH��H��� ��H����A�L9�~WM��yI�xMH���H�MH�E uH�M H��J��L)�H�<H�tH��L�/�@��tH�mH��L��[]A\A]�f�H�����t�H�E�ƒ���t�� t�H��H%������H���H	�H�E�DH�_�>������ATUSH��H������H������xH��ƒ����g���^H��������upL�eA��t&L��H�H���H��H��H��[]A\�f�H��� �lH�KH�T$H��E1�L���H��H��t�H���RH�|$�UE1�1�H�1��L�eA���y����DH�>@���;H�H�<$H�}@���H�H�|$H����H�H�Ɓ� ��H�$H�CH����H9���H�H9�~H)�H�D$H��H����H�CH��uH�C H�4��H��H���I��H�E�uH�������H�T$H�4$H�߹4���H��H��[]A\�f�H�$H����H���j���H�H�$�f���H���H��[]A\�fDH�������@L���H���H�����H������H������H��H��[H��]A\�@H��H������1���H�E��`H��`� ���I�$��`H��`����L��H������H���ff.�AUI��ATUSH������I�����tI�E�ƒ���tq��ulA�1�I�m�(H����H9�}DH��H�<��H�����u H��I�E�� u�I;]}I�E ���H��L��M�����H��L��[]A\A]�L���f.���SH���H�߅�t[�6���fD[�zg��f.���SH���H�߅�t����H��[�f�[�Jg��f.���SH��@��tH��H�[�fDH���H��[H���ff.����H�ATH�=USH�0�H�H�H��H�2H��H�;H�5<K���H�;�����H�(m��H�5�H�;�H�M���H�5�H�;�����H�R���H�5�L�%H�;�H�5L���H�;1�H��g��H�5�H�;H�H�5�H�;1�H�N���H�5�H�;1�H�f���H�5�H�;1�H�.J��H�5�H�;1�H��I��H�5�H�;�H�[c��H�5�H�;�H��X��H�5�H�;1�H�Hb��H�5�H�-H�;�����H�5H���H�;�����H����H�5�H�;�H��r��H�5�H�;�����H��_��H�5�H�;�����H��{��H�5�H�;�����H�H�5�H�;H��H�5�H�;H��H�5�H�;�����H�2��H�5�H�;�����H����H�5�H�;�����H����H�5�H�;�����H��H�5�H�;�����H����H�5�H�;1�H�H�5�H�;1�H��d��H�5�H�;1�H��c��H�5�H�;1�H��M��H�5�H�;H�H�5�H�;1�H��G��H�5�H�;�����H�=\��H�5�H�;�����H�"\��H�5�H�;�����H��Y��H�5�H�;�����H���H�5�H�;1�H��~��H�5�H�;1�H���H�5�H�;�����H��|��H�5�H�;�����H���H�5�H�;1�H�H�5�H�;1�H�H�5�H�;1�H�.���H�5�H�;1�H�F���H�5�H�;1�H�����H�5�H�;1�H����H�5�H�;1�H�^���H�5�H�;1�H�����H�5�H�;1�H�޺��H�5�H�;1�H���H�5�H�;�����H���H�5�H�;H��H�5�H�;�H�5���H�5�H�;1�H���H�5�H�;1�H�U���H�5�H�;1�H�����H�5�H�;�����H�B��H�5�H�;1�H�J�H�5�H�;L��H�5�H�;1�H�H�5�H�;�����H�@���H�5�H�;H��H�5�H�;H��H�5�H�;H�����H�5�H�;�����H�H���H�5�H�;H��H�5�H�;H��H�5�H�;H��H�5�H�;�H���H�5�H�;�H����H�5�H�;�H�����H�5�H�;�H�+j��H�5�H�;1�H�c�H�5�H�;1�H�����H�5�H�;1�H��H�5�H�;1�H����H�5�H�;�����H����H�5�H�;�����H���H�5�H�;�����H��S��H�5�H�;�����H�/���H�5�H�;�����H�D�H�5�H�;�����H����H�5�H�;�����H�>G��H�5�H�;�����H����H�5�H�;�H�؂��H�5�H�;�H����H�5�H�;�H��|��H�5�H�;�����H�����H�5�H�;�H���H�5�H�;1�H�T��H�5�H�;�H����H�5�H�;1�H�A��H�5�H�;1�H�Yk��H�5�H�;1�H�AE��H�5��H�=��H�=H���H�=H���H�=H��[]H�A\�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign01[...][, ]1given block not used11sort reenteredarray size too big[]recursive array jointo_aryArraynegative array sizerepeated permute reenteredcombination reenteredpermute reenteredindex %ld too bigmodified during shuffle0212argument too bigsort_bytoo big to productproduct reenteredflatten reenteredattempt to drop negative sizeattempt to take negative sizenegative length (%ld)can't set length of shared negative sample numbernegative argumenttry_convertinitializeinitialize_copyinspectto_sto_ato_hfrozen?==eql?hash[]=atfetchfirstlastconcat<<pushpopshiftunshiftinserteacheach_indexreverse_eachlengthsizeempty?find_indexindexrindexjoinreversereverse!rotaterotate!sortsort!sort_by!collectcollect!mapmap!selectselect!keep_ifvalues_atdeletedelete_atdelete_ifrejectreject!ziptransposereplaceclearfillinclude?<=>sliceslice!assocrassoc+*-&|uniquniq!compactcompact!flattenflatten!countshuffle!shufflesamplecyclepermutationcombinationrepeated_permutationrepeated_combinationproducttaketake_whiledropdrop_whilebsearchany?randomdiv**block supersedes default value argumentindex %ld outside of array bounds: %ld...%ldnegative array size (or size too big)wrong argument type %s (must be numeric, true, false or nil)repeated combination reenteredwrong element type %s at %ld (expected array)wrong array length at %ld (expected 2, was %ld)index %ld too small for array; minimum: %ldtried to flatten recursive arraywrong argument type %li (must respond to :each)probable buffer overflow: %ld for %ldelement size differs (%ld should be %ld)�GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�704DXlL�	B�B�B �D(�H0�u
(A BBBB�
(D BBBI��(��E�F k
AIfO4�F�A�A �\
CBG�FBXH?F�N�B �A(�D0�F@�
0F(A BBBHA
0A(A BBBA�	�8�`�K�F�B �B(�A0�A8�DP�
8A0A(B BBBEP������AP������`D�F�B�B �E(�A0�A8�D@/
8D0A(B BBBGb8M0A(B BBB0�jN�F�A �O0z AABA�����E�}
N$�[A�F�J0GAA  nE�v
E`
H DfE�o
LV
J4h�E�A�D0h
AADD
FAE<��F�E�F �D(�A0�x
(D BBBHL�fN�F�A �A(�D0
(A ABBBd(F ABBA����<0�F�B�I �D(�H0�i
(A BBBCp�(��E�D �
ADI
AF\��F�E�A �A(�D@u
(F ABBGW
(F ABBF�
(A ABBF�IF�E�B �B(�A0�A8�DP�
8F0A(B BBBJg
8F0A(B BBBJ�
8D0A(B BBBOQ
8G0C(D EBBE��	F�B�B �B(�A0�D8�DP�
8F0A(B BBBBo
8F0A(B BBBBt
8D0A(B BBBOQ
8G0C(D EBBEP<\F�C�C �N0i
 AABIj
 AABBL
 AABA8��B�B�E �E(�D0�o(D BBB8��F�B�A �D(�D0�
(A FBBI<]�D�O QCAK��p ��DG�A�HAAK(dOF�A�A �~
ABA4��A�A�D v
DAGL
AAA�(A�[4��F�D�A ��
ABKQDB4�F�A�D �U
ABEQDBTMHh�B�B�E �E(�D0�D8�Gp�
8A0A(B BBBF�GKc
A�$A�^L�FN�E�D �C(�H0�
(F ABBKD(C ABBD����`<	&B�E�E �E(�D0�A8�DP�
8A0A(B BBBJ[
8P0A(B BBBL<�	�F�D�G �G0R
 AABBX AAB<�	�B�B�E �D(�A0�t
(D BBBDD 
^N�B�B �A(�A0�D@10A(A BBBG�����0h
�F�A�A �D0�
 CABF@�
9F�P�B �A(�A0�O@0D(A BBB4�
�A�G�G Z
AAAPG�A�4�Q�D�G Z
AAHPG�A�P�d4E�P
KLH�^F�B�B �B(�A0�A8�Dp%
8D0A(B BBBD�"H��B�B�B �B(�A0�A8�G@b
8D0A(B BBBHL0!B�B�E �D(�L0�H
(A BBBHj
(A BBBG(��A�M�F0U
AAE�i�A(�FA�D�D ^
GFL
	
�(
H<
&F�S�J �B(�A0�A8�D@�
8D0A(B BBBG8�
�B�B�D �G(�G0�
(A ABBD<�
�F�B�H �D(�A0�
(D BBBE(E�D�D �
AAE0DDNF�B�E �A(�A0�D�
0D(A BBBE0��E�D�G0S
AAKXAA,��E�C
H����D�x
D,��E�C
I������
E, E�C
B�J����
D,P�E�C
D��E�E�H�
D�(�tE�I�D p
DAI�1�2a�L��0A�n �E�H
Ci
G40�E�A�G@)
DAEW
FAB8h�F�A�A ��
ABIA
ABD(��A�A�G `
AAE8��F�B�D �A(�G0d
(D ABBGHNH$<F�P�B �B(�A0�A8�Opi
8D0A(B BBBGHpjF�S�J �B(�E0�A8�D`$
8A0A(B BBBC�CE�x
AH��F�B�B �A(�A0�u
(D BBBED(A BBBH$;F�B�B �A(�D0��
(D BBBE^(K DDEHp�F�E�A �A(�D0�
(D ABBCQ(F HDEH�`F�B�B �E(�A0�A8�GP�
8D0A(B BBBH4BA�D�G �
AAA\
DAOH@hF�E�B �B(�A0�A8�FP�
8D0A(B BBBG��E�v
E@��F�B�B �D(�D0�F`	
0D(A BBBDL�F�B�A �A(�GP^
(D ABBH�
(D ABBG8@pF�A�A �-
ABH�
ABI|vE�E
Fa(�YE�A�J w
DADH��F�B�B �B(�D0�A8�Jp-
8D0A(B BBBK0(#H Z@HT�F�B�E �D(�E0��
(D BBBJG(A EBBH��E�G�D v
AAHk
DAPD
FAE\FA,�JF�A�D ��
ABJP03F�B�E �A(�D0��
(A BBBF;
(A BBBE\��F�I�E �E(�A0�D8�FP�
8D0A(B BBBGS8D0A(B BBB`�F�B�B �A(�D0��
(A BBBAH
(A BBBAN
(K DDEJH&E�X
CA4h�F�A�D �i
ABIAABl�F�B�B �D(�D0�I@S
0D(A BBBG�
0D(A BBBC�
0D(A BBBE8�F�E�D �D(�D0L
(D ABBDL(`1E�A�G �
AAAL�B�G�B �B(�A0�A8�D�!
8A0A(B BBBB@�XE�C�N0�
DADT
DAGR
DAA( �E�P c
AGW
AH$L�M��
JaG�H�(tLE�A�G �
DAB8�WN�A�A ��
ABEP���P ����$H [@��F�D�D �@
DEIX
FEMJFB@8IE�D�G0V
AAHm
AAAg
AAG |}E�l
GV
J4��F�A�D �^
ABLADB�ME�Z
I4��F�A�D �^
ABLADB,,�E�C
B�Q�����
A$\:E�G O
ADXAH��B�B�B �B(�D0�A8�D`d
8A0A(B BBBA��E�z
A0��F�A�C �D0~
 DABE@$�E�D�G0�
AAK}
AAAU
AAI h�HU
Cp
Hl�<F�B�B �A(�D0�GP�
0D(A BBBF{
0D(A BBBB�
0A(A BBBA,��F�D�A �U
ABE,E�THH�F�B�B �B(�A0�D8�I��
8D0A(B BBBB(�-F�D�F �YAB�E�T@�TF�A�A �G0�
 DABBL
 DAEJ` �F�B�B �B(�A0�A8�DP,
8D0A(B BBBAQ
8A0A(B BBBE�-H��F�B�E �B(�A0�A8�D`�
8D0A(B BBBD`��F�B�B �B(�G0�A8�GP�
8D0A(B BBBF|
8G0A(B BBBLHGE�P pAh	(|�E�D�D Z
DAD�	4��E�D�G N
FAK�
DAC(�eE�D�I c
DAFH  aF�E�B �H(�D0�A8�Kp�
8D0A(B BBBGl CH� �F�E�E �E(�C0�^
(G BBBMA(A BBB8� �F�B�D �D(�D0y
(D ABBJ`!�F�A�A �G0`
 DABJ6
 DABCe
 IABGQ
 DDBE8l!�B�E�A �A(�D0�
(D ABBA�!&E�P
KA�!&E�X
CA�!4E�P
KL(" 
M�H�A ��	AI	 '<!Uo"��#��$�7/7?7]ty@4�t����������<�Y�i�����	���Z���Z5�Ea�{ ����?�?� ��?�I
@	I4�OP8]�|����������U	
��U	:�	\`	jq�	�]
��	��]
��
`
[0	7�
g.��
n�.��0f�J�x���	���E
�E
��P
f&�ETbT|�`��0 F���		�#	 �0	�M	�h	�Iv	��		�		�		�	l�	\�	l
�2
p�?
�Z
�s
�
��
��
��
��

� 6_JOQ_h'8`�}'�X�0(�0(0(0(:0(Q0(m0(�0(�X��`��
�4
 �F
�d
��
�M�
��
��
��
�G�
��*�S$ z $� $�$ �v!�v!�"�!&&�"E=#b�"�r=#��#�@#���#�>%��#^	 >%!�&5@%�<�&U	(l�&9v	(��(�(���(�=)��(�=)$�)>�)W*n�)4x*�~,� *^�~,��,��,�/3�,�C�/c�1��/!��1�u2��1��u2�2'�2C13]�2Aj13��3�@3F��3��3��3! 4C 4b6464�f5�f5�N6�p5�N6-�7JP6�Z�7z9�8�9�9�9�n:!n:G�:k�:��=�;���=�@/�=�K�@m�C��@��C��G��C���G�G/�GRHsH�QH�QH��H�`H2�H&�HB�H0Q�HmuI�uI�vK��I�� P�vK�VMVMAOg`M��O�P�P�7P�7P|Q@P<#|Q>�RW�Qjc�Ry3S��RC�3S��S�@S���S�U�S; U>�UZ U�i�U�PY��U`�PY��Z�PYB
�Z0\Q�Zhe	o\��\�\���\�^a��\�^a'xeExec�g�g�fh��gv�	�fh�h$phY0�hNinj�h�yin��n��n��n��n �n- �nI �oc �o} �p� �p� �q� �pJ� �q� �q!�q0!�qL!3tf!3t�!%u�!%u�!Gv�!0u�!Gv"vv-"Pv&<"vv_"	w�"�v��"	w�"#z�"w�"#z#�z#�z5#�zP#�z^#�zx#1|�#1|�#FU$@|�#F�#��$PX$��2$��N$���]$��y$���$����$���$܃�$܃�$7�%�W%7�=%d�Y%d�v%��%��%i��%i��%��%p�}&�&&t�E&��W&t�r&͈�&��M�&͈�&T��&Ј��&T�'F�'`��&'F�C'��^'��{'N��'����'N��'��'��'ܔ(��"(ܔ=(h�V(��b(h��(<��(<��(|��(|��(�)�!):�:):�W)Ġr)@���)Ġ�)���)Р-�)���)�*�*�-*t�F* �TR*t�r*
��*����*
��*=��*=��*�+�/+ԪI+ ��V+Ԫs+'��+�G�+'��+9��+9��+ƫ
,ƫ-,٫N,Ы	b,٫,j��,j��,խ�,p�e�,խ-A�--A�M-��k-P�C|-���-9��-9��-)��-)�.ճ<.0��N.ճm.���.���.���.���.��&�.���.�/��&./�P/$�p/�4�/$��/P�!"#$ �/�/	�/�/�/�/�/�/�/'�/�/(�/*�/X�/9�/L0d0k0O0�0q#0�)0�/0�50�;0�A0�G0�M0�S0�Y0	_0$e0k0�q0w0@}06�0p�0H�0f�0��0��0��0��0��0��0��0��0��0��0�0�0�0�0�0%�0(�0-1216
191?1E1J%1Q+1T11Y71]=1cC1kI1rO1wU1�[1�a1�g1�m1�s1�y1�1��1��1��1��1��1��1��1��1��1��1�1�1
�1�1�1$�1.�15�1?�1I�1P�1X2\
2f2n2t2y&2�-2�42�;2�B2�I2�P2�W2�^2�e2�l2�s2�z2��2��2��2��2��2��2��2��2��2��2�2�2(�2=�2E�2J�2U�2Z�2e�2m3r
3y3}3'373L3`3

%&'q3�3�3�3�3�3�3`��3�3�3�34!4.4:4E4Q4c4r4}4�4�4�4���4�4���4�4�455'565?5O5\5j5w55�5�5�5�5�5�5�5�566&6E6e6�6�6�6�6�6�6�6�6�677@)�7*767H7Y7g7�,"t7�7��7�2i�7�7�3	�7�7�3��7 4�7@4&�789&8 9N;8p:�R8e8y8�8�8�8�G�8�Gt�8 H1�8�8�H��8�8
9�K�9 9 O�,969@9N9Y9q9�9�9�9`a�9�9�ep�9�9�9�9::pn0:�n#,:�n@:�n�M:�o�X:n:r3{:@t��:�:0z��:{1�:�:�:�:��L�:@�$�:p���: �I;;);:;P�:H;P��V;p��e;l;@�<z;�;����; ��;�-�;@���;�;�;�;�;0�		<@��<��&<�a7<���J<@��[<0� 
f<q<�<�<�<�<�<�<.annobin_array.c.annobin_array.c_end.annobin_array.c.hot.annobin_array.c_end.hot.annobin_array.c.unlikely.annobin_array.c_end.unlikely.annobin_array.c.startup.annobin_array.c_end.startup.annobin_array.c.exit.annobin_array.c_end.exit.annobin_rb_ary_frozen_p.start.annobin_rb_ary_frozen_p.endrb_ary_frozen_p.annobin_rb_ary_empty_p.start.annobin_rb_ary_empty_p.endrb_ary_empty_p.annobin_rb_ary_to_ary_m.start.annobin_rb_ary_to_ary_m.endrb_ary_to_ary_m.annobin_ary_hash_orset.start.annobin_ary_hash_orset.endary_hash_orset.annobin_empty_ary_alloc.start.annobin_empty_ary_alloc.endempty_ary_alloc.annobin_ary_resize_capa.start.annobin_ary_resize_capa.endary_resize_capa.annobin_ary_double_capa.start.annobin_ary_double_capa.endary_double_capa.annobin_rb_ary_each.start.annobin_rb_ary_each.endary_enum_length.annobin_rb_ary_any_p.start.annobin_rb_ary_any_p.endrb_ary_any_p.annobin_rb_ary_cycle.start.annobin_rb_ary_cycle.endrb_ary_cyclerb_ary_cycle_size.annobin_sort_by_i.start.annobin_sort_by_i.endsort_by_i.annobin_rb_ary_length.start.annobin_rb_ary_length.endrb_ary_length.annobin_ary_enum_length.start.annobin_ary_enum_length.end.annobin_ary_join_0.start.annobin_ary_join_0.endary_join_0.annobin_inspect_ary.start.annobin_inspect_ary.endinspect_ary.annobin_descending_factorial.start.annobin_descending_factorial.enddescending_factorial.annobin_rb_ary_permutation_size.start.annobin_rb_ary_permutation_size.endrb_ary_permutation_size.annobin_binomial_coefficient.start.annobin_binomial_coefficient.endbinomial_coefficientid_div.annobin_rb_ary_repeated_combination_size.start.annobin_rb_ary_repeated_combination_size.endrb_ary_repeated_combination_size.annobin_rb_ary_combination_size.start.annobin_rb_ary_combination_size.endrb_ary_combination_size.annobin_rb_ary_repeated_permutation_size.start.annobin_rb_ary_repeated_permutation_size.endrb_ary_repeated_permutation_sizeid_power.annobin_rb_ary_rassoc.start.annobin_rb_ary_rassoc.end.annobin_recursive_equal.start.annobin_recursive_equal.endrecursive_equal.annobin_rb_ary_includes.start.annobin_rb_ary_includes.end.annobin_rb_ary_eql.start.annobin_rb_ary_eql.endrb_ary_eqlrecursive_eql.annobin_rb_ary_cycle_size.start.annobin_rb_ary_cycle_size.end.annobin_rb_ary_count.start.annobin_rb_ary_count.endrb_ary_count.annobin_rb_ary_rindex.start.annobin_rb_ary_rindex.endrb_ary_rindex.annobin_rb_ary_index.start.annobin_rb_ary_index.endrb_ary_index.annobin_rb_ary_fetch.start.annobin_rb_ary_fetch.endrb_ary_fetch.annobin_ary_add_hash.start.annobin_ary_add_hash.endary_add_hash.annobin_rb_ary_hash.start.annobin_rb_ary_hash.endrb_ary_hash.annobin_rb_ary_equal.start.annobin_rb_ary_equal.endrb_ary_equal.annobin_sort_reentered.part.0.start.annobin_sort_reentered.part.0.endsort_reentered.part.0.annobin_sort_1.start.annobin_sort_1.endsort_1.annobin_ary_new.start.annobin_ary_new.end.annobin_rb_ary_reverse_each.part.6.start.annobin_rb_ary_reverse_each.part.6.endrb_ary_reverse_each.part.6rb_ary_delete_if.part.39rb_ary_reject_bang.part.38rb_ary_collect_bang.part.27rb_ary_keep_if.part.26rb_ary_sort_by_bang.part.22rb_ary_reject.part.21rb_ary_each_index.part.7.annobin_rb_ary_reverse_each.start.annobin_rb_ary_reverse_each.endrb_ary_reverse_each.annobin_rb_ary_each_index.start.annobin_rb_ary_each_index.endrb_ary_each_index.annobin_rb_ary_inspect.start.annobin_rb_ary_inspect.endrb_ary_inspect.annobin_ary_join_1.isra.9.start.annobin_ary_join_1.isra.9.endary_join_1.isra.9recursive_join.annobin_recursive_join.start.annobin_recursive_join.end.annobin_rb_ary_drop_while.part.31.start.annobin_rb_ary_drop_while.part.31.endrb_ary_drop_while.part.31rb_ary_take_while.part.33.annobin_recursive_eql.start.annobin_recursive_eql.end.annobin_ary_memcpy0.start.annobin_ary_memcpy0.endary_memcpy0.annobin_rb_ary_s_create.start.annobin_rb_ary_s_create.endrb_ary_s_create.annobin_ary_add_hash_by.start.annobin_ary_add_hash_by.endary_add_hash_by.annobin_recursive_cmp.start.annobin_recursive_cmp.endrecursive_cmpid_cmp.annobin_sort_2.start.annobin_sort_2.endsort_2.annobin_rb_ary_or.start.annobin_rb_ary_or.endrb_ary_or.annobin_ary_memfill.start.annobin_ary_memfill.endary_memfill.annobin_rb_ary_set_shared.start.annobin_rb_ary_set_shared.endrb_ary_set_shared.annobin_rb_ary_entry.start.annobin_rb_ary_entry.end.annobin_rb_ary_at.start.annobin_rb_ary_at.endrb_ary_at.annobin_rb_ary_bsearch.start.annobin_rb_ary_bsearch.endrb_ary_bsearch.annobin_rb_mem_clear.start.annobin_rb_mem_clear.end.annobin_ary_make_shared.start.annobin_ary_make_shared.endary_make_shared.annobin_ary_make_partial.start.annobin_ary_make_partial.endary_make_partial.annobin_ary_take_first_or_last.start.annobin_ary_take_first_or_last.endary_take_first_or_last.annobin_rb_ary_last.start.annobin_rb_ary_last.end.annobin_rb_ary_first.start.annobin_rb_ary_first.endrb_ary_first.annobin_ary_make_shared_copy.start.annobin_ary_make_shared_copy.endary_make_shared_copy.annobin_rb_ary_freeze.start.annobin_rb_ary_freeze.end.annobin_rb_ary_shared_with_p.start.annobin_rb_ary_shared_with_p.end.annobin_rb_ary_new_capa.start.annobin_rb_ary_new_capa.end.annobin_rb_ary_plus.start.annobin_rb_ary_plus.end.annobin_yield_indexed_values.start.annobin_yield_indexed_values.endyield_indexed_values.annobin_rb_ary_rotate_m.start.annobin_rb_ary_rotate_m.endrb_ary_rotate_m.annobin_rb_ary_reverse_m.start.annobin_rb_ary_reverse_m.endrb_ary_reverse_m.annobin_rb_ary_new.start.annobin_rb_ary_new.end.annobin_rb_ary_new_from_args.start.annobin_rb_ary_new_from_args.end.annobin_rb_ary_new_from_values.start.annobin_rb_ary_new_from_values.end.annobin_rb_ary_repeated_combination.start.annobin_rb_ary_repeated_combination.endrb_ary_repeated_combination.annobin_rb_ary_repeated_permutation.start.annobin_rb_ary_repeated_permutation.endrb_ary_repeated_permutation.annobin_rb_ary_combination.start.annobin_rb_ary_combination.endrb_ary_combination.annobin_rb_ary_permutation.start.annobin_rb_ary_permutation.endrb_ary_permutation.annobin_rb_ary_tmp_new.start.annobin_rb_ary_tmp_new.end.annobin_rb_ary_tmp_new_fill.start.annobin_rb_ary_tmp_new_fill.end.annobin_rb_ary_free.start.annobin_rb_ary_free.end.annobin_rb_ary_decrement_share.start.annobin_rb_ary_decrement_share.endrb_ary_decrement_share.annobin_rb_ary_unshare.start.annobin_rb_ary_unshare.endrb_ary_unshare.annobin_rb_ary_clear.start.annobin_rb_ary_clear.end.annobin_rb_ary_uniq_bang.start.annobin_rb_ary_uniq_bang.endrb_ary_uniq_bangpush_value.annobin_rb_ary_modify.start.annobin_rb_ary_modify.end.annobin_ary_ensure_room_for_push.start.annobin_ary_ensure_room_for_push.endary_ensure_room_for_push.annobin_rb_ary_push.start.annobin_rb_ary_push.end.annobin_push_value.start.annobin_push_value.end.annobin_rb_ary_and.start.annobin_rb_ary_and.endrb_ary_and.annobin_rb_ary_diff.start.annobin_rb_ary_diff.endrb_ary_diff.annobin_take_i.start.annobin_take_i.endtake_i.annobin_rb_ary_reject.start.annobin_rb_ary_reject.endrb_ary_reject.annobin_rb_ary_select.start.annobin_rb_ary_select.endrb_ary_select.annobin_rb_ary_collect.start.annobin_rb_ary_collect.endrb_ary_collect.annobin_rb_ary_unshift_m.start.annobin_rb_ary_unshift_m.endrb_ary_unshift_m.annobin_ary_resize_smaller.start.annobin_ary_resize_smaller.endary_resize_smaller.annobin_rb_ary_shuffle_bang.start.annobin_rb_ary_shuffle_bang.endrb_ary_shuffle_bangid_random.annobin_rb_ary_compact_bang.start.annobin_rb_ary_compact_bang.endrb_ary_compact_bang.annobin_rb_ary_fill.start.annobin_rb_ary_fill.endrb_ary_fill.annobin_rb_ary_sort_bang.start.annobin_rb_ary_sort_bang.end.annobin_rb_ary_replace.start.annobin_rb_ary_replace.end.annobin_rb_ary_sort_by_bang.start.annobin_rb_ary_sort_by_bang.endrb_ary_sort_by_bangrb_intern_id_cache.14209.annobin_rb_ary_to_a.start.annobin_rb_ary_to_a.endrb_ary_to_a.annobin_rb_ary_product.start.annobin_rb_ary_product.endrb_ary_product.annobin_rb_ary_memsize.start.annobin_rb_ary_memsize.end.annobin_rb_assoc_new.start.annobin_rb_assoc_new.end.annobin_rb_check_array_type.start.annobin_rb_check_array_type.end.annobin_rb_ary_assoc.start.annobin_rb_ary_assoc.end.annobin_rb_ary_cmp.start.annobin_rb_ary_cmp.end.annobin_rb_ary_to_h.start.annobin_rb_ary_to_h.endrb_ary_to_h.annobin_rb_ary_s_try_convert.start.annobin_rb_ary_s_try_convert.endrb_ary_s_try_convert.annobin_rb_ary_store.start.annobin_rb_ary_store.end.annobin_rb_ary_delete.start.annobin_rb_ary_delete.end.annobin_rb_ary_select_bang.start.annobin_rb_ary_select_bang.endrb_ary_select_bang.annobin_rb_ary_keep_if.start.annobin_rb_ary_keep_if.endrb_ary_keep_if.annobin_rb_ary_collect_bang.start.annobin_rb_ary_collect_bang.endrb_ary_collect_bang.annobin_rb_ary_initialize.start.annobin_rb_ary_initialize.endrb_ary_initialize.annobin_rb_ary_cat.start.annobin_rb_ary_cat.end.annobin_rb_ary_push_m.start.annobin_rb_ary_push_m.endrb_ary_push_m.annobin_rb_ary_pop.start.annobin_rb_ary_pop.end.annobin_flatten.start.annobin_flatten.end.annobin_rb_ary_flatten_bang.start.annobin_rb_ary_flatten_bang.endrb_ary_flatten_bang.annobin_rb_ary_flatten.start.annobin_rb_ary_flatten.endrb_ary_flatten.annobin_rb_ary_pop_m.start.annobin_rb_ary_pop_m.endrb_ary_pop_m.annobin_rb_ary_shift.start.annobin_rb_ary_shift.end.annobin_rb_ary_shift_m.start.annobin_rb_ary_shift_m.endrb_ary_shift_m.annobin_rb_ary_unshift.start.annobin_rb_ary_unshift.end.annobin_rb_ary_subseq.start.annobin_rb_ary_subseq.end.annobin_rb_ary_aref.start.annobin_rb_ary_aref.end.annobin_rb_ary_drop.start.annobin_rb_ary_drop.endrb_ary_drop.annobin_rb_ary_drop_while.start.annobin_rb_ary_drop_while.endrb_ary_drop_while.annobin_rb_ary_take.start.annobin_rb_ary_take.endrb_ary_take.annobin_rb_ary_take_while.start.annobin_rb_ary_take_while.endrb_ary_take_while.annobin_rb_ary_zip.start.annobin_rb_ary_zip.endrb_ary_zip.annobin_rb_ary_to_ary.start.annobin_rb_ary_to_ary.end.annobin_rb_ary_splice.start.annobin_rb_ary_splice.endrb_ary_splice.annobin_rb_ary_concat.start.annobin_rb_ary_concat.end.annobin_rb_ary_insert.start.annobin_rb_ary_insert.endrb_ary_insert.annobin_rb_ary_aset.start.annobin_rb_ary_aset.endrb_ary_aset.annobin_rb_ary_set_len.start.annobin_rb_ary_set_len.end.annobin_rb_ary_resize.start.annobin_rb_ary_resize.end.annobin_rb_ary_dup.start.annobin_rb_ary_dup.end.annobin_rb_ary_sort.start.annobin_rb_ary_sort.end.annobin_rb_ary_sample.start.annobin_rb_ary_sample.endrb_ary_sample.annobin_rb_ary_shuffle.start.annobin_rb_ary_shuffle.endrb_ary_shuffle.annobin_rb_ary_compact.start.annobin_rb_ary_compact.endrb_ary_compact.annobin_rb_ary_uniq.start.annobin_rb_ary_uniq.endrb_ary_uniq.annobin_rb_ary_transpose.start.annobin_rb_ary_transpose.endrb_ary_transpose.annobin_rb_ary_resurrect.start.annobin_rb_ary_resurrect.end.annobin_rb_ary_join.start.annobin_rb_ary_join.end.annobin_rb_ary_times.start.annobin_rb_ary_times.endrb_ary_times.annobin_rb_ary_join_m.start.annobin_rb_ary_join_m.endrb_ary_join_m.annobin_rb_ary_to_s.start.annobin_rb_ary_to_s.end.annobin_rb_ary_reverse.start.annobin_rb_ary_reverse.end.annobin_rb_ary_reverse_bang.start.annobin_rb_ary_reverse_bang.endrb_ary_reverse_bang.annobin_rb_ary_rotate.start.annobin_rb_ary_rotate.end.annobin_rb_ary_rotate_bang.start.annobin_rb_ary_rotate_bang.endrb_ary_rotate_bang.annobin_rb_get_values_at.start.annobin_rb_get_values_at.end.annobin_rb_ary_values_at.start.annobin_rb_ary_values_at.endrb_ary_values_at.annobin_rb_ary_delete_same.start.annobin_rb_ary_delete_same.end.annobin_rb_ary_delete_at.start.annobin_rb_ary_delete_at.end.annobin_rb_ary_slice_bang.start.annobin_rb_ary_slice_bang.endrb_ary_slice_bang.annobin_ary_reject_bang.start.annobin_ary_reject_bang.end.annobin_rb_ary_reject_bang.start.annobin_rb_ary_reject_bang.endrb_ary_reject_bang.annobin_rb_ary_delete_if.start.annobin_rb_ary_delete_if.endrb_ary_delete_if.annobin_rb_ary_delete_at_m.start.annobin_rb_ary_delete_at_m.endrb_ary_delete_at_m.annobin_Init_Array.start.annobin_Init_Array.end.LC0.LC2.LC3.LC4.LC1.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC16.LC17.LC15.LC18.LC19.LC20.LC21.LC22.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC31.LC30.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC42.LC41.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.LC120.LC121.LC122.LC123.LC124.LC125.LC126.LC127.LC128.LC129.LC130.LC131.LC132.LC133.LC134.LC135.LC136.LC137.LC138.LC139.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_newobj_ofruby_xrealloc2memcpyruby_xfreeruby_xmalloc2rb_ary_eachrb_block_given_prb_yieldrb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_scan_argsrb_num2longrb_int2bigrb_enc_copyrb_str_buf_appendrb_str_buf_newrb_str_catrb_inspectrb_usascii_str_new_staticrb_funcallvrb_ary_rassocrb_equalrb_ary_includesrb_equal_optrb_exec_recursive_pairedrb_float_new_in_heaprb_warnrb_error_arityrb_eIndexErrorrb_raiserb_hash_lookup2rb_hash_asetrb_hash_startst_hash_uintrb_hashst_hash_endrb_respond_torb_eRuntimeErrorrb_yield_valuesrb_cmpintrb_eArgErrorrb_exec_recursiverb_check_string_typerb_check_convert_typerb_obj_as_stringrb_eqlrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_gc_writebarrier_rememberrb_cFixnumrb_method_basic_definition_prb_cStringrb_str_cmprb_convert_typerb_hash_newrb_hash_tbl_rawst_updaterb_hash_valuesst_free_tablerb_ary_entryrb_fix2intrb_cNumericrb_obj_is_kind_ofrb_obj_classnamerb_eTypeErrorrb_mem_clearrb_freeze_singleton_classrb_cArrayrb_ary_lastrb_obj_classrb_ary_freezerb_obj_freezerb_ary_shared_with_prb_ary_new_caparb_ary_plusrb_gc_writebarrier_unprotectrb_ary_newrb_ary_new_from_argsrb_ary_new_from_valuesrb_free_tmp_bufferrb_alloc_tmp_buffer__stack_chk_failmemsetmemchrrb_ary_tmp_newrb_ary_tmp_new_fillrb_ary_freerb_gc_force_recyclerb_ary_clearrb_error_frozen_objectst_foreachrb_ary_modifymemmoverb_ary_pushst_deletest_lookuprb_iter_breakrb_cRandomrb_random_ulong_limitedrb_check_hash_typerb_get_kwargsrb_range_beg_lenrb_ary_sort_bangqsort_rrb_ary_replacerb_block_callrb_intern2rb_str_tmp_newrb_str_resizerb_eRangeErrorrb_ary_memsizerb_assoc_newrb_check_array_typerb_ary_assocrb_ary_cmprb_builtin_class_namerb_ary_storerb_ary_deleterb_warningrb_ary_catrb_ary_popst_init_numtablest_insertrb_num2intrb_ary_shiftrb_ary_unshiftrb_ary_subseqrb_ary_arefrb_check_block_callrb_block_arityrb_yield_values2rb_ary_to_aryrb_ary_concatrb_ary_set_lenrb_bugrb_ary_resize__memcpy_chkrb_ary_duprb_ary_sortrb_ary_resurrectrb_ary_joinrb_string_valuerb_usascii_encodingrb_enc_associaterb_output_fsrb_ary_to_srb_ary_reverserb_ary_rotaterb_get_values_atrb_ary_delete_samerb_ary_delete_atInit_Arrayrb_cObjectrb_define_classrb_mEnumerablerb_include_modulerb_define_alloc_funcrb_define_singleton_methodrb_define_methodrb_define_alias����������Z���������=���������q���������������������������������������T����������������������������0���������5����������������������������
���������!���������6�������������������'���������2�������������������������������������8���������u���������}�������������������������������������������������=	����������	���������T
����������
�
������������������~����������
���������C���������c���������t���������6
���������1�����������������������������������������������������������������:�������������������������������������������������)���������d���������{�����������������������������'��������������������������������������s���������~���������������������������������������*���������g��������������������������������������Q������������������������������������������������"���������3���������8������������������������������������������������A���������R*���������\�����������������������������(���������=���������d���������z����������������������������������������������������������*���������
���������9���������G������������������������������*���������������������������*������������������#���������5���������=���������l�������������������,���������b�����������������������������R����������������������������������������������������������9���������d�������������������*������������������������������*����������������������������� ���������
 ���������� ����������!���������'"���������d"����������#����������#����������#����������$�$����������%�%*����������%����������%�%����������%���������-&*����������&����������&�&����������&����������&����������&���������'���������C'���������X'����������'����������'����������'����������'���������`(����������(���������*���������P*����������*����������*����������*����������*���������L+����������+*����������+����������+�+����������+����������+���������,���������,���������#,���������_,���������f,���������p,*���������z,���������M-����������-����������-���������+.���������r.���������#/����������/����������/���������!0����������1����������1���������)2*���������T2���������`2*���������g2���������q2���������_3���������'4*���������I4���������S4���������l4����������4����������5����������5����������5����������5���������A6����������6����������7����������7����������7���������$8���������M9����������9���������:����������:���������7;����������;����������;����������;����������;����������;���������C<���������K<����������<����������<���������=����������=*����������=����������=*����������=����������=����������=���������4>����������>����������?����������?*����������?����������?����������?���������@���������@���������3@���������;@����������@����������@����������@*����������@����������@����������@���������A���������B����������B����������B*���������C���������C���������TC���������\C���������iC���������qC����������C����������C����������C����������C����������C����������C*����������C����������C���������!D���������7D���������AD���������8E���������\E����������E����������E����������E����������E���������VF���������^F����������F����������F����������F���������@G���������GG*���������dG���������sG*���������zG����������G����������G����������H���������qI����������I����������I���������rJ����������J����������J����������J���������rK���������:L����������L����������L���������
M���������RM����������M����������M���������5N����������N����������N*���������O���������O����������O���������P���������,P���������IP���������PP���������lP���������tP����������P����������P���������Q���������?Q���������dQ����������Q����������Q����������Q����������Q����������Q���������R���������R���������gR����������R���������S���������#S���������/S���������PS���������YS����������S����������S����������S���������
T���������@T����������T����������T����������T���������2U���������OU���������xU����������U����������U����������U���������@W*���������JW���������TW���������dW����������W���������VX����������X���������LY���������]Y����������Z*����������Z���������>[����������[����������[����������[�[����������[*����������[���������\���������\����������\���������	]���������]���������<]����������]����������^���������_���������_���������K_���������t_���������y_����������_���������v`����������`���������!a���������Ia*���������Pa��������Za���������ra���������b���������Bb���������Jb���������"c����������c���������xd*����������e����������e����������e���������gf����������f����������g����������g���������h���������h��������'h���������2h���������Hh��������Mh���������Wh���������h����������h*����������h����������h����������h���������	i���������i���������9i����������i����������i����������i���������j����������j����������j����������j*����������j����������j*���������Ik���������nl����������l����������l����������l����������m����������m����������m���������0n*���������7n��������An���������Hn*���������On��������Yn����������n����������n����������n���������(o���������Oo����������o����������o���������p����������p����������p���������#q����������q���������q���������q*����������q����������q*����������q���������q���������Pr����������r����������s����������s*���������t��������t���������t*���������%t���������/t����������t����������t��������u���������@u���������Yu���������zu����������u��������v���������v���������Yv����������v����������v����������v����������v��������,w���������Rw���������nw����������w����������w���������-x���������=x����������x����������x��������y���������y��������By���������\y����������y����������y����������y����������y*����������y���������z���������z*���������z���������z���������-|����������|���������|���������|���������G}����������}����������}���������}���������}����������}��������~���������&~���������E~���������M~����������~����������~����������~������������������*�����������������!���������*���������1*���������8��������B���������^���������t��������������������������������������)�������������������������������������������Ӏ������������������1��������������������������������؃���������t����������!����������3���������������������ޅ���������b����������~������������������������������������������Ԇ���������߆���������<����������L������������������������������̇���������؇*���������߇	�����������������������������$�����������������������*�����������
��������Ɉ���������܈������������������������������������������������8�
��������F����������M���������W�*���������a����������m����������}�����������������������������l��������������������������������;���������������������ی���������4�����������������������������8����������B����������]������������������������������������������R�����������������������������������������/�����������������������*�������������������	�����������*�������������������$����������0�*���������=���������J�����������������������������������������������������d���������������������˔���������ؔ���������Y����������w��������������������4����������D����������U����������d�����������
������������������*������������������"����������1����������W���������������������͘������������������'����������9����������d�*���������n����������x���������������������&���������1����������]�*�����������������������������Z������������������������������������������
�'����������v�������������������*���������T����������ڞ�������������������$���������������������4������������*������������������������������������������������O����������X����������v��������������������������������ѡ����������������������������7����������k������������������������������$����������֣��������s��������������������������������*�����������������������������ۥ���������E����������^���������������������������������������"���������<���������������������L����������`����������m������������*��������������������������������*���������ƪ��������Ъ������������������������������
�*�����������������`������������������������������)����������������������� ������������������������������̭�������������������C����������o�������������������������������,���������l�*�����������*������������������������������������������#��������ϱ�����������������������������������������������������<����������Q����������a����������q���������������������ij���������ѳ���������4����������j�#������������������������������ɴ�������������������7�*%��������@����������J�&��������Q�*'��������X�*���������f�(��������u�)���������������������*��������������������*������������������Ƶ+��������͵*���������ܵ���������+��������������������+�����������������
����������,��������%���������*�+��������=���������B�+��������U����������Z�+��������m���������r�+��������������������+��������������������+��������������������+��������Ƕ*��������ֶ���������޶+�������������������+������������������+��������*���������/�+��������E� ��������J�+��������Y����������`�!��������e�+��������o�*��������{�"����������+����������*�����������#����������+����������$����������+��������̷%��������ѷ+���������&���������+���������'���������+���������(��������"�+��������.�*���������5�)��������:�+��������M�*��������R�+��������e�+��������j�+��������}�,����������+����������,����������-����������,����������.����������+��������Ƹ/��������˸+���������0���������+����������1���������+���������2���������+��������/�3��������4�+��������G�4��������L�+��������b�5��������g�+��������}�6����������+����������*����������7����������+����������*�����������8����������+��������Ź9��������ʹ+��������ݹ:���������+����������;����������+��������
�<���������+��������%�=��������*�+��������=�>��������B�+��������U�?��������Z�+��������m�@��������r�+����������A����������+����������*����������B����������+����������C��������ú+��������ֺD��������ۺ+���������E���������+���������F���������+��������!�G��������&�+��������9�H��������>�+��������P�I��������U�+��������a�*���������h�J��������m�+����������K����������+����������*�����������L����������+����������*�����������M����������+��������лN��������ջ+���������O���������+����������*����������P���������+���������*���������!�Q��������&�+��������0�*���������<�R��������A�+��������W�S��������\�+��������r�T��������w�+����������U����������+����������V����������+����������W��������ż+��������ؼX��������ݼ+���������Y����������+���������Z��������
�+��������#�[��������(�+��������>�\��������C�+��������Y�]��������^�+��������t�^��������y�+����������_����������+����������`����������+��������Ža��������ʽ+���������b���������+����������c���������+���������d���������+��������1�e��������6�+��������L�f��������Q�+��������g�g��������l�+���������h����������+����������i����������+����������j����������+��������ʾk��������Ͼ+���������l���������+���������M��������������������m��������������������n��������#�(����������4�o��������;�@����������I������������������������������E�������������������Q	�������������������������������������������������������������������������������T�����������������������������  ����������"����������(���������9)����������)���������*����������3���������9���������JH����������H���������xL���������U����������U����������n����������q����������s���������!u���������7v����������z��������\�����������	������������������������������������������������+����������9��������������������ի��������z�!����������!���������#�������� �#�������� ���7$,7P7Xt�7�t�t���t����D�L�p�x�����������0�8Zd�lZ�Z��Z����$,�P�X?���?�?�I�?�II�DIL�p�x�����������0�8U	d�lU	�U	��	�U	��	��	�]
$�	,]
P]
X�
�]
��
��
�.��
�.	.	�D	.L	�p	�x	��	��	��	��	E

�
E
0
E
8
�d
E
l
��
��
T�
��
T�
T�
$T,PX����������D�L�p�x	���	�	�l
	
l0
l8
�d
ll
��
��
��
��
��
��
�$�,�P�X�����_��__'D_L'p'xX�'�X�X�X08�dl�������������$�,�P�X��������$ ���$ $ v!D$ Lv!pv!x�"�v!��"��"�=#�"=#0=#8�#d=#l�#��#�>%��#�>%�>%��&$>%,�&P�&X	(��&�	(�	(��(�	(��(�(=)D�(L=)p=)x�)�=)��)��)�*�)*0*8~,d*l~,�~,��,�~,��,��,��/$�,,�/P�/X�1��/��1��1�u2��1�u2u2�2Du2L�2p�2x13��2�13�13��313�30�38�3d�3l�3��3� 4��3� 4� 4�64$ 4,64P64Xf5�64�f5�f5�N6�f5�N6N6�7DN6L�7p�7x9��7�9�9�999098n:d9ln:�n:��:�n:��:��:��=$�:,�=P�=X�@��=��@��@��C��@��C�C�GD�CL�Gp�Gx�G��G��G��G�H�GH0H8QHdHlQH�QH��H�QH��H��H��H$ �H, �HP �HX uI� �H� uI� uI� vK� uI� vK!vK!VMD!vKL!VMp!VMx!O�!VM�!O�!O�!P"O"P0"P8"7Pd"Pl"7P�"7P�"|Q�"7P�"|Q�"|Q�"�R$#|Q,#�RP#�RX#3S�#�R�#3S�#3S�#�S�#3S�#�S$�S$UD$�SL$Up$Ux$�U�$U�$�U�$�U�$PY%�U%PY0%PY8%�Zd%PYl%�Z�%�Z�%\�%�Z�%\�%\�%�\$&\,&�\P&�\X&^a�&�\�&^a�&^a�&xe�&^a�&xe'xe'�gD'xeL'�gp'�gx'fh�'�g�'fh�'fh�'�h(fh(�h0(�h8(ind(�hl(in�(in�(�n�(in�(�n�(�n�(�n$)�n,)�nP)�nX)�n�)�n�)�n�)�n�)�o�)�n�)�o*�o*�pD*�oL*�pp*�px*�q�*�p�*�q�*�q�*�q+�q+�q0+�q8+3td+�ql+3t�+3t�+%u�+3t�+%u�+%u�+Gv$,%u,,GvP,GvX,vv�,Gv�,vv�,vv�,	w�,vv�,	w-	w-#zD-	wL-#zp-#zx-�z�-#z�-�z�-�z�-�z.�z.�z0.�z8.1|d.�zl.1|�.1|�.F�.1|�.F�.F�.��$/F,/��P/��X/���/���/���/���/���/���/��0��0܃D0��L0܃p0܃x07��0܃�07��07��0d�17�1d�01d�81�d1d�l1��1��1i��1��1i��1i��1�$2i�,2�P2�X2t��2��2t��2t��2͈�2t��2͈3͈3T�D3͈L3T�p3T�x3F��3T��3F��3F��3��4F�4��04��84N�d4��l4N��4N��4��4N��4��4��4ܔ$5�,5ܔP5ܔX5h��5ܔ�5h��5h��5<��5h��5<�6<�6|�D6<�L6|�p6|�x6��6|��6��6��6:�7�7:�07:�87Ġd7:�l7Ġ�7Ġ�7���7Ġ�7���7���7�$8��,8�P8�X8t��8��8t��8t��8
��8t��8
�9
�9=�D9
�L9=�p9=�x9��9=��9��9��9Ԫ:�:Ԫ0:Ԫ8:'�d:Ԫl:'��:'��:9��:'��:9��:9��:ƫ$;9�,;ƫP;ƫX;٫�;ƫ�;٫�;٫�;j��;٫�;j�<j�<խD<j�L<խp<խx<A��<խ�<A��<A��<��=A�=��0=��8=9�d=��l=9��=9��=)��=9��=)��=)��=ճ$>)�,>ճP>ճX>���>ճ�>���>���>���>���>��?��?�D?��L?�p?�x?$��?��?$��?$��?P�@$�@P� � � � � 4@H�\�p������` L�@�P����H��`	��	�`
$�
H0l����P
4�t`� � ��@�p��L�h�`�0�`  X�l��� �0 @	�!�	�"�	@#$
�#l
@%�
�&�
(�(T@)h�)� *��,��,4�/��1��2��2�@3
�3
�3,
 4@
@4�
p5�
P6849H 9�p:�;��=$�@T�C��G��G� H�`H��H�H4�Il�K�`M� O P(@Pt�Q��R�@S(�St U��UPYD�Z�\��\�`aD�e��g�ph��hpn,�nD�nX�n��o��p �q4r�@t�0uLPvl�v�w0zP�zd{�@|�P$��P��x�����@��p�< ��p�������Ј0`�`P�����P���(�lp��@���0 �L@��Р��� �$�����@�� �L�l0��@��Ы���p�$ �p P�� ��� @�!0�p!��!���!���!�"0�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@)pT)ql)r�)s�)t'�P�"@ع�`)-�3�(=�@8@�p>)
S$b$�]@�X0)
|�����@ Y0)������@PY0)������@�Y0)2t�2�!) 60(.�V�V|VSV'V?VMV`VrV�V�X �x0"�@�Y�)'�08L*�	�|�<@i�bignum.o/       1690381920  1000  135   100644  166584    `
ELF>�~@@/.

"$!% &'H��t#D�L��E��t�h�D�D��E��unH��u�1�H��u7�H���f.���H��;D�uSH���u�1��f.�H��t�D����t���H9�s�H��u�f��H9�v��DH��uѸ�D����f.�H��t-�H�GE1���t�Z@I��H�@�H���uI��I�PH9�u���I����A�	L9�vJ��H��f.��H��H9�u�1��I��A����A�ҸA��UA��SA����pD)�H����tlL�V�I)�L��H��I��1�H��A��uH��I��1�A�1�tJA�H�D$I�H�H�D$ L�H�D$(H�8H�D$0H�(H�D$8D�[]�f�H��H)�H��1��H�n�A������@��H�G ���H���@t,H����tH���H��?H��?���f���H�GH��u�fDH��H��?H��?���fD��H���@t4H����t�����H����f.���f.�H�t�H������H����fDATA��UH���*S�H��H�E��ta�� H�H��waH��H%���H	�H��@H�+��u+H�����t"H��ƒ���tH�€�H�{H�t��t6H��[]A\�fD���H�H��v��H���H�kH�C�DH����ff.�H�SH����H�8�#���H��H�H�� ��@t41���H�X@��H��H��H��H���HD�H����H	�H�[�H�PH�1҅���H�ɹHE�H�P[�USH��H9��?L9��UL9�M��HcD$ LF�H��M��t(E1�fDB��C�,�H)�H�B��I��H�� M9�u�L9�rDL9�w'�]DB��I��H��A��H�� F��I��L9�t8H��u�H9�u~H9�uy1�H��[]�M9�vG��L)�B��I��H�� M9�u�H��t3I9�sJ��H��fD�����H��H9�u�H���[]�DH9�uH9�t�I9�sf�B��B��I��L9�w�L9��m���J��H��fD�H��H9�u�1��K���H�
�&H�5H�=�H�
�'H�5H�=�@AWAVAUATI��UH��SH��H�7��@��H����I��I�$��@��H����I��H9ƺHM�H��H��H�H�8����H�UI��H�E@uH�UM�D$I�$@uM�D$I�nI�@uI�nH��L��M��H��jH�����ZY��u4H��L��[]A\A]A^A_�f�M�|$L���g���L�oL���A���@H��H���5���I�&����ff.��SH9��+L9��L9���D�T$1�E����E1�H��t&�F��C��I�L�B��I��H�� L9�u�M9�w#�=f�C��H��H����H�� B��I��M9�tH��u�I9�uWI9�uR1�[�fDM��L9�v�H��tB��I��L9�v�I9�u1I9�u,1���@H��L��I��H��L��I���=����C��B��I��M9�w�L9�v�J��H��f��H��H9�u�1��z���H�
�eH�5H�=�H�
�dH�5H�=�ff.��ATUSH��H�6L�H��H��
L�Ƀ�9�A��H��
��A8�t$9�tH��[]A\�T���@H��H��[]A\�A����L�ʁ�@��H�G��@��H����H9���H��H�H��A��H�8�'���L�I��A��@��I��L�CA��H�M��@��H��H�U��I�4$��@tdH��I�|$��H��j���XL��Z[]A\�L��H������@�Y���H�KH�qH9��\���H��tDI��A��I�q�F���I�t$I�|$�@H�MH�U�s���L�KL�C�K���H�GH�p����H��AUH��AT��I��USH��Ic�H��I��H�ʉ�H��H�hH��H��H�,H�H��H�8���L�A��@��H�xL9���L�1�1�D�S�I���xH��D�H	փ�~
�7�� H�� H��H��I9�rυ�t�7H��M��uH+xH��H9�u,H��[]A\A]�H�PH)�H����H�xL9��{���1���H�
��H�5H�=�AUMc�ATI��UH�Չ�SH��H��H��H�H�8����L�PH�@uL�PM��t1�fDA��H��I9�u�H9���A�L���H��H9�to�1�I���x�I9�w,H��uGM9�v�H�
��H�5H�=�I��H���9I��H��H�� ��I���f.�H��[]A\A]�DAVAUI��ATI��USH�H�
��@��H��H�jH����H��~+�D����t�.fD�t����u H��u�I�][]A\A]A^øt�fD1��� u��tI�����Ѓ�����H������u,H�H�8�$f.�H�ZH�j�n���H�����taH�z1�H���\���H��I��H�xH�@uH�xH���I�~I�@uI�~H����M�4$�����I�][]A\A]A^�H��t,H��u�H�H�8�H�H�8�H�H�8�q���H�H�8�b���H�H�8�S���f�UH��AWAVAUATI��L�SH��H�EH�}�H��x���H�E�H�E H��p���L��h���H��`���dH�%(H�E�1�H�E�H9���M��M9���L��H��L9���H���������I�QH��H��H��L9��0H�U�1����H��L9�u�H��x���E1�H)�H��X���H�E�H��H��H���J��H�E�M����H��M��M��H��H%�H���H��P���H��@����fDH�EL)�H�E�Lm�H�U�L�U�I�H�}�L��L�E��H�E�HE��u�PI��L��L��L�E�H��p���L��L��`���A��L�E�L��M��L��L��L���$��L�U�XZI)���M9�H��h���L��N�,�IF�N�(H��x���M�4K�6L)�H9���L;e�9���H�}����H�E�H�E�H��H+�P���H�E�H9�tH��H��$�H9�u�H��@���%�t	H)�H�L�H�D$L�eH���H�E�H�E�����f.�1�H�U�M���1����<���@K�<H�}��uI��H��u�L��L��L��H��p���L�U�L��H�E�H��`���L�]���H�}�H�E�L�]�L�U�H��1�H��_AXt@��H��H9�u�H��H�E�L��L��jM��M��I�J�<(L�U�H���o���L�U�Y^I)��}���H��X���L�}�t"H��X���H��H���1�f���H��H9�u�M��t	H�}��H�E�dH3%(utH�e�[A\A]A^A_]�@H�u�H�}�L�U�L�E��L�eL�U�H�E�L�E�H�E��q���H��X����n����H�
�[H�5H�=��H�
�ZH�5H�=�H�
�YH�5H�=�ff.��A�ɉ�A��H��A����pA����E��tOA���������H���t	��@��H��t{��H��H��H9�sQH��H��p+H����H��v�H�H�5H�81��H�H��H��H�5H�81��H�H�5H�81��H�1�H�5H�81��H�H��H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81���Uf��f(�SH��f/�fT��f.�
f(�f.���1��f/�s���H���Y�H�kf/�s�H��1�H�f/��L$H�8���~��L$H�@H�ptC�H��t+fD�Y�f��H,ɉʉ�H���H*��\�H���u�H��[]�@H�p�f�f.f(�fW
�(���H�5H�H�81��fDH�����1�1��<���H�5��H�5��fDAWAVM��A��AUI��ATI��UL��SH��L��H��x��$�H��$��|$L������L9�w�@H��L9���C���t�D��$�A��E�����D$���HH��$��II���?H���E��$���p��@����$����|$�9H����	H���A����	��$������&�L��$�H�Ł��|$L�I9��|I9�s	I9����D$�t$��uZH��x[]A\A]A^A_�D��$�A��I9������L��H��E���OH���F��$�%��D$1�������M��t���t��D$H��H��L��H�T$LRH�T$hRH��$�RH�T$pRH��$�R��$�H��$�L�L$pL�D$x�8��L$pA�L��$��M�L�$�H��0A��D$A���H�|$XL�H�|$Ht-E1�D�7I����@��ш��HcL$D��H�L9T$HwۋL$@��t���D!�ʉ�D!Ɉ�L$@�M9������LD$P�@�|$�uD�L$E���c�D$��v���L��H��L��1��H��x1�[]A\A]A^A_�fDH��H��L��H�D$LPH�D$hPH��$�PH�D$pPH��$�P��$�H��$�L�L$pL�D$x��M��1�1�L��$�L��$�H��0A�@L�d$M�M�H�T$XH�D$HL�H���41����?@D��)΃�~<E�I��I��I	�D�Hct$DL��H��H��H�H9D$H��L9�w�����I����f�H��$��!�����$������,@������M��A�������L)㋼$�H��I��H��H����H���|$I�ދ�$�H�D$ ��P�|$H9��L��L��L��L�D$0L�L$(L�l$8�L�L$(1�H��L�D$0H�L$8M�H+T$ tA��H��H9�u�|$��6�|$��D�\$E��tuM��tLH��L��M�L-�L��H��I9�vD��2H��H���p��JH9�r�I��H�I�M9�w�D�T$E��t$I�D��I9�sA�U�I��H��A�M��PI9�r�E�����D$����1��|$�1H����H���~���A���z���A�$���F�|$L)�A�UH���?N�����I���8�����D�\$@E��tIL9�vwD��)�~E� ��I���� I��L	�D��I�����D)�H��I��I��I!�H��D�"HcL$DH�H9�vfD�HcL$DH��H�H9�u�M9�tLT$P�5���DAD��f.�L�d$L9�v�@)��[���A���I��H��H	�H���B���L9��9����D$H�������D�D$E��������������	I��I9�sA�<$��t�L)����H���p���A�$�B�!Ѓ�����Z���@�|$t��$���KA�$L)�A�EH���+�������� ����D$� �����$���p�������L��L)��A�|�H�k���H��H��u�L��M��H��L��L��H�L$L�D$�L�D$H�L$1�L��H����|$�u���$���s���L��K�.M��t9�H��H9�u�A�E�h���I���A�EI����A�E����J���L9�u�E���%���H��L9��8���C�<4�-���������,���fDL)����H��u
1�A�<$������b���A�������A�$���[��L)�fA�E�D$H��������������������$��te1�H����H���A���A���=���A�$H�؅҉�ɉ�D�L)�A�UH����H�������H	�H����%���������Q���H���V������@���$���w�����0���I9���L��L��L����|$��������$�����H��A��G���H��L��L��L�D$(L�l$0A��H�L$0L�D$(�
���A���N���A�$H�؉�f���҉�D�L)�fA�UH���&���H
��H��������6���fD��$�������H��L��H�L$0L�D$(��L�D$(H�L$0�������E�������H�D$ A�H��H9��t���E1�A�<�A���c����A�$L)�H��A�EH��������H����������H��tI�T��H��ȉA�H9�u�D$���y���M���$������A���;���A�$��f�����A�$����A�|$����A�<$�����(���M��I�LH��I)��k���ff.�f�AWAVM��AUM��ATI��USH��H�|$�>��t
@��_��M��@��L��1�E1�M�G��t>��_��L�
@��A���x#9�}H��L��E1�A�8M��M�G@�Dž�u�1���tQH�D$H��I9�vA�x�_u��I��A�?@��t,���u�A�?tH�|$H�5�E��t#��u�L)�I�.I�]H��[]A\A]A^A_�fDA�_�l���ff.�f�ATUSH��PL�O dH�%(H�D$H1�H���6H��tuH���1�M��tEHc{HcKL�DH��1�H��H��A�1�A�9HcKH��H��H��H��u�LccLc H�D$HdH3%(��H��P[]A\�f�H�6M��u�H��t�LcKH�|$?A�@L��H��H��1�H��I��I��H��A��WI9�v�H��������A�@M)�L�H9�wu1�H�q�H�CH�xH� tH�x�H�{ ��tH�GH�C �-H�{ L��H����.�����6�L����H�
��H�5H�=�H�H�5H�81��ff.�f���SH���uiH�����tMH��ƒ���
u@H�H��H��
I�Ѓ�I��
A��A8�u#H�с�@t5H������@tH����H9�tUH��[��H;Vt1�H��[�H�W��f.�H�vH��H��t+H������HD��DH��H����fDH���f���SH�7H����@t-H��
H����H�[H��
��H1�H�D�f�H�GH�H�4���ff.�H������uH��u��f.�1��ff.�f�H�7��@tH��H����H��t�H�wH�H��u��ff.�f�AWI��I��M��AVL�4�L��AUN�,7ATI��UH��SH��H��$�����M���$H���I����؃�p��@tU��tPI���)I��uTA����A�ȉځ��������^1҅���؃��w@I���qI���V�؃�����A���RM������%��u��ub�H��H��[]A\A]A^A_Ë�$�����J�T5��+�$��2�����	�t�� �����+�$���	�M����������H���Z���M���r���L�$H��L��L��H�D$��PH�D$8PH�D$PPH�D$@PH�D$XPL�D$HL�L$@�(��L�T$0L�\$`H��H�L$hL�|$X1�1�H�T$PM�L�L�T$HH��0O�;L�4$I��L�l$I��M��to�E1ɉ��*f��H�WH�� ��Hct$I��I�M9�t"H��A�H��H	ЍQ��͉�H����fD�|$�΅�uM9�tkM�H��O�;M��u�H���|$��t�A�A��D�Ƀ�A"D�����I��L	���~��� ������H�L��H���B�H�� H9�u��)�M9�u�L�4$L�l$H��uhI9��9����f�H���B�L9�r������t?�����M�����L��H���n���������L��H���+���(���fD�H���M�������B�D5���������ʉ�A��������ƺ��	���
�����������A�����؃����1����؃�p������M��H��L��A��L�$A��L���L��J�|=L)����HE��L�$��C�|:���1������A���N�ك���t�L�ډ�L��H��H����PL�$I�׉L$H�����L�$�L$�J�D5�H9�sH��2�8H��H���z��pH9�r�����tEM��t@I��I��E1�N�L�L��L��M9�s�0�:H��H���x��rH9�r�I��M�M�M9�uσ�����%�����������A�M����������f.���҃����E����A���h���A��ف���tωƺ��	�t�
����������A�f������A���������������҃���둾��L��H�������������I������L9�� ���H��H��ʉP�I9�w��������L��H���i�����������������������������H�
��H�5H�=��1��E���������ff.�L9�vx1���tb��E1�1�M��tYf�F��L��L�tF��L�B��H�� I��M9�u�L9�v)fDH��tB��H�B��I��H�� L9�u��f�1��H�������PH�
��H�5H�=�AWJ�	AVAUATUSH��H9�wuH��M��M��1�H��tf���H��H9�u�H��t8I��I��H��I)��A�H��H��M��L��H��I��H�����L9�u�H��[]A\A]A^A_�H�
��H�5H�=�DH�	AVAUATUSH9��1�H��t@��H��H9�u�H����I��I����I��L�,�1���I��I9���D��H��M��t�L�ދD�I��M�L��H�� H�D�H�� H9�v9E��I��F��C�4�M��M��L�H�C��H�� I�H��IE�I��L9�u�H��t�A�t��H�A�D��H�� �l���AD�I��I9��g���f�J���H��tH��J�4�HЉH�� tL��[]A\A]A^�H�
�H�5H�=�f�PXH�
��H�5H�=H���ff.�AVAUATUSH�I�L�6L�/L�H�,M�L9��eH��u��H����A�l����t�H��1��fDI��H��H��tE�#E��t�H��u�1H��t(E�d��E��t��fDI��H��H��tE�"E��t�H��tE1�f�C�D�I��L9�u�M�l�I)�H9�sH��H��H��L��M��I��H��v)L�/1�L�6L�H�)M�I�[]A\A]A^�@1��_����H����A������P���!�t:H��u
A�:�I��M�йL��L��L���y���[�]A\A]A^�������H�<�1҃�M�D=)�1�H��t#DA�4�H��H	�A�D�H��H�� H9�u��I��A�0I�T=I)�t�1����H��L9�u��r���1�H�������1�M���\���DA�D�H��L9�u��@���H�,�L��L��H��I��I)�����1�DA�D�H��I9�u�����A�EI����1�f�A�D�H��L9�u������D���H�
� 	H�5H�=�D��w2I�� H�B�H��t$fD��I	�H�� I��D��H��I��H���u��PH�
��H�5H�=�f�I�@H9�uJ��1�E1�E1�DB�4�H��I�D��H)�B�4�H�tB��H�� I��I�� M9�w�B��L)�H��PH�
��H�5H�=�ff.�f���AWAVAUATUSH��(L�?L�gL�oH�_H�|$J��I�t�H�t$L��H)�H��H��H�D$�@H��E�t�I9���H�D$H�@ H����H�|$A�D���9���A�T��H�� H�1�H��A�ƅ�t�H�D$I�wM��L��D��H�,�H������H��t�DH��L��H��M��jM��L��H��A�����ZY��u�H��E�t�I9��`���H��(1�[]A\A]A^A_�DA������}���DH�D$H�X��ff.�f�PXH�
�IH�5H�=H���ff.�SH����D9�snA�@�D��u0#�ø����E��tE���A��D)�A�ȉ��p�����[�@��E��H�J����H�� H�1�I���H��H��H���u�Ӊ�[�H�
�	
H�5H�=�H�
�
H�5H�=�DATUSH��0H9��0L�$�B�D"����Y�l��9��.D�H�BE1�E��t��f.�M��H��H�@D�@�M�JN��E��t�I��J�L9���L)�L)�H�\$H�$H�T$H�D$ H�t$H��'w	H��'vDH��H�-���f�H��H��H�=���H��H�D$ �H�D$ H��t�H��0[]A\�fDH������H��0[]A\��H)�L��H��H�������H��0[]A\�f�H��A�E1��6���H�
�*
H�5H�=�H�
�,
H�5H�=�H�
�+
H�5H�=�f�J�	H��H9�wQH��u=I��u7A��H��vYH��H�1�H��tD�D�H��H9�u�H���f�����H���H�
��H�5H�=�H�
��H�5H�=�@UA��H���@S1�H����H�����jH��H��j@E1�A�����H��[]�ff.�@UH��AWI��AVM��AUI��ATSH��hH�]L�]H�u�H�M�dH�%(H�E�1�H�E�L9�r��A�D��A9D����M��tI�FH)�H;E���M����H;]�v���	I�FJ��H�E�H��E�d�H�E�E���E��A���M���	I�VH9U���H��L��L��L�]��L�]�H�u�H��C��L��L���[���M��M��tBH�U�L��L��L�M��L�M�H�U�Lm�H)�t1�DA�D�H��H9�u�M��tBL�u�H�u�L��M��L�I)�I��L���H]�O�'L)�t1�f�A��H��H9�u�H�}���H�E�dH3%(�4H�e�[A\A]A^A_]�f�A� M��I�~��H9}�@��	��tb��t^H�4;H��H����9H�E�H�E�H��H�E�H��H��H���H���H)�H9��H��H��$���fDM������H�qH�����H�E�H�E�H�AH��H�E�H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�L$L��I�����H�qH�����H�E�H�E�H�AH��H�E�H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�L$I����%��H�T$H���H�E�L��L��M��M�	A�� ��1�1�D��M��t$fDA�<�H��H	�A�4�H��H�� I9�u�A��A�21�1�D��H��t A�<�H��H	���H��H�� H9�u�A��H�u�L��H��L�M��x���M��L�M��U���L��E1�D��H��L��L�M��C���L�M�����f.�H�}���n���f�H�}�L��x���L�E�H�M��L��x���L�E�H��H�M�����H�U�H����?H�E�H�E�H�BH��H�E�H��H%�H)�H���H��H9���H��H��$���f.�H�}�L��x���L�E�H�M��L��x���L�E�H�M�I��L��H��L��L�]��L�]�H�u�H��B��H��L��H�E��B���M��L�M��������H�}�L��x���L�E�H�M��L��H�M�L�E�I��L��x�������H)�H�L�������t	H)�H�L�H�T$H�������H�
�U
H�5H�=�f�H�u�H�}�L��x���L�E�H�M��H�M�L�E�H��L��x�������H�
�S
H�5H�=��d�H�
�T
H�5H�=�DAWM��AVI��AUI��ATUH��SL��H��8H�D$pH�D$H�D$xH�D$H��EwQM9�u$I9�uH��8L��L��H��[]A\A]A^A_��I��M��L��L��H��8H��[]A\A]A^A_�N���fDI��H�t$ I��L���M��L��I��L�L�D$A�D��D$,�L�D$H�t$ L�E�\�E��u>L��H�t$ L�D$�L�D$H�t$ I�G�D�E���8����|$,���,����D�T$,E���5I��H�t$ I��L���I��L��I��L�L�D$A���D$,�L�D$H�t$ L�E��E��tJ�L$,����M9�vyH�D$I��M��L��L��H��H�D$xH�D$H�D$pH��8[]A\A]A^A_�L��H�t$ L�D$�L�D$H�t$ I�C����t�D$,��u�M��M��H��L���|���H��I��M��L��H��L��H��P�t$ �t$ ����H��X[]A\A]A^A_�L��H�t$ L�D$�L�D$H�t$ I�C�<��!����L��H�t$ L�D$�L�D$H�t$ I�C�|���������ff.�f���H��8H�|$(H�|$(H�t$ H�t$ H�T$H�T$H�L$H�L$L�D$L�D$L�$I������tH��8ÐH�L$L�$L�D$L�T$H�t$ H�|$(H���vbI���������I�QH��I��H��H9�v�t$HL��t$H�MXZH��8�fDH��H�E���L��P�t$X�t$X���H�� H��8��t$HL��t$H���Y^�[����UH��AWAVAUATSH��H�]H����L��H��`���L���L�EH��0���H�]�dH�%(H�]�1�H9�H�E���L9���!ˆ����L9���J�	H;�0�����I���������I�QH��I��H��H�I��H�E�H9��AH�}�L�rH��K�vL�oL�<�H�K�DmH�wM�H��(���M9���O�RI��J�4�H����H�E�H�E�H��H��H�E�H��H���H)�H���H��H9�tH��H��$�H9�u�%�t	H)�H�L�H�D$H���H�E�fDH�u�H�BM)�H��L��p���H�<J�4�L�<H��h���I�<H�u�H�����H�H������H�H�H�����H��H�� ���H�FH�H��X���H�H��P���H�H�H����H��H���H�H��H�E�J��H�4H�u�H�H�H�u�H�u�H��x���H��`���H)�H�H��@���H�����HЀ����H��8����H���I)�L�����H�H�H�����H�����H��H�}�L��L��L��@���L��8���jH��`����W��H�U�M��L��L�����H��h���L���$���A[Z����H��H�}�M��L��jL�����L��H�����L��L��L��H��h���L��@����$L��8�������XZDž���Dž���1�1��DH��A��H�H	�H�QA��H�� I9�u�D�����E����H��L��L��M��jL��`���L��L���i��^_������������L��������������������H��h���H������H�E�H�������p���H�u�M��L��L�����x���H��`���H�� �������^_��p���H�U���x���M��L��L�����H��X���H��(�������H��X���H�}�AXAYD�T8E������p���H��h���L��M��H��(�����x���L������H��P������XH�u�H��P���Z�L0������p���L��M��L��L������x���L�����H��(���L���5���H�}�A^XA�D?������p���H�u�L�������x���L�����H��@���H��8���H��H������AZ�����A[9�����	H��H�}�L��M��jL��X���L��E1�H�������^_H�}�A�1�L��H���q������9�����oH��H�}�M��L��jL��P���L��H��X����I��A[A_Džp���H�u�H�U�1�H��@H�ʋ
H	�H��H��H�J�H�� H9�u㋵���9������H��H�}�L�M�L��jL�� ���L��E1�H��P�������_AXE9��#H��H�}�H�U�M��jL��L��I�����D��x���XZH�u�L�u�1�I�L���f�H�ʋ
H	�H��H��H�J�H�� H9�u�L�E��L��H�}���x���H��H������:�A�H�� tH�}�L���E���Džx���D9�p����.H��H�}�L�E�M��jL��L��H���O���AYAZ����A����H��H�}�L�M�L��jL��H���L��H�����Y^��x���9�p����2H��H�}�L�E�M��jL��L��H�����AZA[L�u�H�U�H�� ���L���Lu�1�H�}�H�U�t�A��H��H9�u�H�E�H��H���I�H��H���H�M�D��p���I��M)�H�L��H���H��L)�H��H�E�E���-H��H�}�L�E�L��jL��M��H��L�]��ʿ��L�]�_AXM)�E����H��L�E�L��L��jL��M��L��L�]�蕿��L�]�XZD��x���L��H�}�L)�H}�E���QH��L�E�M��H��jH���Y���A[A\H�}�H��H�U�D�T�E��t�fD�|��H������H��u�L����H�u�H����H���1�H��0���H��0���tf�A��H��H9�u�H�}��lH�E�dH3%(��H�e�[A\A]A^A_]�f�H��8���H�����H��@���H�����H�����H��������H��h���L��聸��H��H�}�M��jL�����L��H���B���M��L��L��L��h���H��@����$H��8����x���AYAZDž�����������9���L��L������Dž���Dž��������H��L��L��M��jL��`���L��L������ZY���>���L��L��躷�������Dž����)���H��L�����L�����L��jH���L��H������S���M��L��L��L�����H������$H������艺��AZA[���eH��M��L��L��H�����L�����jH�����L�����L��L�����H������H�����L���$�ʼ��Y^Dž���Dž���1�1�H������
�H�ы�H�H	�H�Q��H�� I9�u䋽������NH��M��L��L��H�����L���jH��豹��A[Z���$���H�����L���W���Dž��������H��L�E�M��H��jH���h���AXAY����H��L�E�L��L��jM��L��L��L�]��6���A_L�]�X�;���f.�H��H�}�L�E�L��jL��M��H��L�]����YL�]�^����f�H����H)�0���H��L�$�g���fDH��H�}�L�E�M��jL��L��H��豸��A^Z������H�}�L���Z�����p������fDH��H�}�L�M�L��jL��H���L��H���e���_AX���F���H�}�L��E1������2���fDH��H�}�L�E�M��jL��L��H�����A[A^������������fDH��H�}�H�U�L��jL��M��I�����Y^D��x���������H�}�L��脴��D������x������H��L�M�H�}�L��jL�� ���L��A�H��P���胷��AYAZ���K���H�}�L��E1��(����7���H��H�}�L��M��jH��X���L��L��P����:���ZYDžp����������H�}�L���ڳ��Džp����p���H��H�}�M��L��jL��X���L��A�H�����ܶ��AXAY������H�}�L��E1�聳������@H�}�����f.�H�}�L��A���P����H���H��L��L��M��H�����L���jH������Y^���@H�}�L�EL�M�H�M�H�U�L�U��L�EL�M�H�M�H�U�H�E�L�U��.�fDH������L���ɲ��H��M��L��H�����L�����jH��臸��L������M��H�����H�����H�����L���$蹵��AXAYDž���������������H�����L���N���Dž���Dž����a����H�
�oH�5H�=�H�
�lH�5H�=�H�
�kH�5H�=�H�
�*H�5H�=�H�
�0H�5H�=�H�
�6H�5H�=�fDH��I��L��L��L9�w'H��Ev9H��I��I��H��jL��j�0�H���I��Ew�I��M���W��M9�uL9�uH��L���[��I��I��H��L���'��AUATUSH��(H�H�|$��@��H����I��H�L�$�L��H�8谲��H�T$H��H�@tGH��H�}H�E@uH�}H��E3L��L������H�D$H�D$H�D$H��(H��[]A\A]�H�R�f�M��I��L��L��������DL�oL���a���ff.��AUATUSH��(H�|$H�4$H9��H���@��H�oH�H���@��H��H����I��H��
H��
H�H��H��H�H��1�H�8H�ރ�謱��H�T$I��H�@��H��L�$I�@t~I��I�}I�E@uI�}M��H��H����H�D$H�D$H�D$H��H�D$H�$H��(L��[]A\A]�f�H��H�H����H���@�2���L�fL���3���M�@�f�H�R�d�������H��(I��[]L��A\A]�f.���H��8H�|$(H�|$(H�t$ H�t$ H�T$H�T$H�L$H�L$L�D$L�D$L�$I���Z����u-�t$H�t$HL�L$L�D$H�L$ H�T$(H�t$0H�|$8��XZH��8�@UH��AWAVAUATSH��H�EH�}�H��x���H�U�H�M�L�E�H�E�dH�%(H�E�1�J�	H�E�H9��4M��L9M��H�E�H�L9���H�}�H�u�H9u�A��L9���A!�D��p���A����Dž8���Dž4���L��H��H9]���M��I��H;]�}J�4�H����(H�E�H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�L�l$L�}I���L�m�DH�E�H�}�H��H��L�4�jH�U�H��L�H��P���J�7N�2N�,0H�E�K�D5L��@���H��X���H�E�H)�I��H��H����ݯ��Y^Džt������9H�EH)؀�p���H��`���H�E�J�0H��h������uH�U�I��H��H�}�PL��I���r���XZH�}�L���4�����������t���H�u�H�}�L���L�E�H�U�L����`���H�}�I��H���h���� ���L�U�L�E�I��H��H���$L��L��譱��L�E�I��H��L��H��L��$蒱��L�E�I��H�ى�p���H�E�H���$H��H���i���H�}�L��L�<����XH��x���I��Z��`���L��L��P�����h���L)�H��H���I��H��@����i���H�}�I��H��H��M���$H�����YH��x���I��^I9�r
H�[H)�I��H��H��L��H��PL��X���L���°��L�E�I��L��L��L��L���$A��蠰��D��<���AYAZE��t!M��tA�Eu1��A�D�u	H��I9�up���+�t���A���t6H��H�[L�E�D�u�H��x���jA�H��X���H)�H��H���$���Y^��8��������4�������H�}���H�E�dH3%(�H�e�[A\A]A^A_]�f�I��L9��SDž8���H��H�}�Dž4����$���f�H��H�U�H�}�I��jL��P���H��H���ݬ��AZA[���q��`���L�E�I��H��H�}���h���L��H�U����D��t���_AXE���2�������H�}�H���D���Džt������DH�}������f�L�}�H��x���L�u�L�m�C��H�M�H��L)�K�|�M������H�}�H��L��L)�M�D$B��K�|��������DH��H�[E1�E1�H��x���H��X���jH)�H��H���ܫ��_AX�R���@Dž8���Dž4��������H�E�H��x���L�E�H�M�B��H�E�L)�J�<��I������@H�}��L�}H�E��*���f.�H�}�H��������t����w����H�
��H�5H�=�H�
��H�5H�=�H�
��H�5H�=�H�
��H�5H�=����AUATUSH��(H�H�|$H�4$��@��H�$H��H��H�����@��I��I��A��H��
H��
J�\%H��H��H�H��1�H�8H�ރ��
���L�$I��I�@��I��H�T$H�@tTH��I�}I�E@uI�}M��H��H���`��H�D$H�D$H�D$H��H�D$H�$H��(L��[]A\A]��H�R�f.�H�$H�oH���@�)���L�a�+���M�@�e������ATUSH�� H�H�|$��@��H����H�L�$�L��H�8����H�T$H��H�@t@H��H�}H�E@uH�}H��L���/��H�D$H�D$H�D$H�� H��[]A\�@H�R�f.�H�_�{������AUATUSH��(H�H�|$H�4$��@��H�$H��H��H�����@��I��I��A��H��
H��
J�\%H��H��H�H��1�H�8H�ރ��*���L�$I��I�@��I��H�T$H�@tdH��I�}I�E@uI�}H��M��H��H��H���Pjj� ���H�D$(H�D$8H�D$(H�D$ H�D$8H�D$ H��HL��[]A\A]�@H�R�f.�H�$H�oH���@����L�a����M�@�U������AUATUSH��(H�H�|$H�4$��@�-H�$H��H��H�����@�'I��I��A��H��
H��
J�\%H��H��H�H��1�H�8H�ރ����I��L9���I����L�$I�@ugH�T$M�@H�@tgH��I�}I�E@uI�}jM��H��H��j�=���H�D$H�D$(H�D$H�D$H�D$(H�D$H��8L��[]A\A]ÐH�T$I��H�@u�H�R��L��H��H9��]���H�H�5H�81��f�H�$H�oH���@����L�a������AUATUSH��(H�H�|$H�4$��@�H�$H��H��H�����@�I��I��A��H��
H��
J�\%H��H��H�H��1�H�8H�ރ��z���I��L9���I����H���������I�T$H��H��H��H9���L�$I�@umH�T$M�@H�@tmH��I�}I�E@uI�}jM��H��H��j����H�D$H�D$(H�D$H�D$H�D$(H�D$H��8L��[]A\A]��H�T$I��H�@u�H�R�H�$H�oH���@���L�a���H�H�5H�81��ff.���H���@t$H��H�¸��u�f��w��u!H��u)�f�H�W�H��t�H�O�	��t1��DH��t��u���������ff.����SH��H��������tH�H��c����ډ�[�@��uZH�����tQH��ȃ���
uD��@��H�GH��t�H�w�6��uH��t�H��������u��� �����t��[���1���H�߾>�H�����uӺH��1���<�1�[H�������ډ��DH��H�����9�����������h���H��H���D��UH��SH��H��H�7��@t%H����H��H����H	�H�3H��[]�H��wbH��H����H�H��H	�H��@H�3H��t�H��H�K����������H�3H��%@�.�H�tiH�H���H�3H�CH��%@H��t4�L�����H����oCH�S H�PH�#����H�CH�kH��[]�D�H���H�3H�CH��%@�f.�H�I��H�S��H�t�H�t�H�sH��H)��I)Ƀ��������1҉у�M�	L�9�r�������C����S�‹D��D�����SH�7H����@tQH����H��H���H���@tH��
H�S���[�f�H�CH�P�H�CH���[��H�GH�p�fDH��H�7I����@tH��H���讝����uH���DH�wH�蓝����t�L��H���C���H���u	�� H��f����H���AVAUATUSH��H�� H�|$����H���EH�D$H���@��H��H����H�tH�D$H�H��
���$H�8����$H�@H�puH�p1�H��tf���H��H9�u�H�T$L�JH�@uL�JL�D$L��L�L������1�1�M��t#�A�<�H��H	�A��H��H�� I9�u�A�H�l$H�l$H�T$H�� []A\A]A^�fDH�|$H�7H��xs��@��H�GH9�v^H�l$H�t$�$H������$A��H�D$H�@L�`uL�`H�T$H9���E��u@H�� �[]A\A]A^���� u��@uPH�wH�H��t��޽����u�H������;���fDH�@�o����H��H�����F���f�H��H�����H�H)ډ$I��1�H�8L���C����$H�@H�xuH�xE��I�4�L��H�$A��E��E��A�����H�$D��H������H�$���H�H�5H�81���y��f�H��x#u	H���D��H��1���H���M���DH�މ�H����H���/���ff.�@H��H�?������
t����@��H�pH�PH��u�f.�H�����L����t�H����D�F�Mc�E��I��I��J�
N�L
�1�M)�@D�H�� H��L�L9�u�� uEH�@H9�wEH��H�D�DH��H�PH�����a���D��f.�H��������?H9�v�H��H��H�D$�H�D$H���fD��AWAVAUATUSH��HH�|$H�t$@��u>@��uH�����t
�����
t%H�|$�|�H��H[]A\A]A^A_��H�l$H�t$(H���Σ��H�\$A����5L�d$H�t$0L��諣��H�\$(L�t$0A��L9��UL�D$L�l$I�@�{I��I�E@�{I��E��H�L�D$LE�1�D�$H�8L���t���D�$L�D$H�@H�puH�pH����1��A��AL���H��H9�u�I9�~fDA�T�D	���H��I9�u�1�E	�H��H�$@������H�l$8H�T$L�d$8H�$H�T$������H����������H���K���H��H[]A\A]A^A_�@H�T$H�L�d$(H�����H�T$0H9��p���M���}H��H�*H��?I���@�|L�jH�jH���HL�H�1�H�8H���K���H�HH�@uH�HM����H�SH���w�DH�sH���:A�t�	�H�� �4�H��I9�u�E���
L��I9�|�8��H��H�� H9�}(H�sH��w�E���WD������H��H9�|�1�E	�H��H�$@������H�T$0H�T$8H�$H�T$0�������M���H��L�l$L�D$L�t$(H�\$0L��I��D��L�D$E��A��L�l$I�@�����M�@I�E@�����M�m����H�\E��HD������H��L�j���|����H9������*���f�E��u�A�t��4�H��I9��E��u�H9�����H��H����H��H9�u����@1��N���1�E����������E��������I9�~��ff.�@��AWAVAUATUSH��HH�|$H�t$@��u>@��uH�����t
�����
t%H�|$�^�H��H[]A\A]A^A_��L�d$H�t$(L��讟��H�\$A����-L�l$H�t$0L��苟��H�\$(L�|$0A��L9��5L�D$H�l$I�@�[I��H�E@�[H��H�1�L��D�$L�D$H�8�[���D�$L�D$H�@H�puH�pH���81�fDA��3L���H��H9�u�L9�}��T�D1��H��L9�u�1�E9�H��H�$@���h���L�d$8H�T$L�l$8H�$H�T$�����H����������H���4���H��H[]A\A]A^A_�DH�D$H�H�l$(H��H�D$0L� H��?I��A��@�dI��L�xA��I���LL�H�1�H�8L���G���H�HH�@uH�H1�H��~/�A�4�1�H�� �4�H��H9�u�L9�}hH��f.�D��1�H�� �4�H��I9��H9�~AfDA�4�D1�4�H��H9�u�I9�~#D��H��J��D1�f.��2H��H9�u�1�E9�H��H�$@������H�T$0H�T$8H�$H�T$0�������j���H��H�l$L�D$L�|$(H�\$0L��I��D��L�D$E��A��H�l$I�@�����M�@H�E@�����H�m����L�xL�`���1�����f�SL�H��L�Ɂ�@��L��L�GH��H�Ѓ��nH���fDE��E��uH��H��H��u�H9��UH���,H�CL�Cf�H����A�L��H�¾ H����t	�Ƀ�Hc�H)��H��5��H��6�W1�1�H��H9��V�I��I�4�f�f���Y�f��H���H*��X�H9�u�H��A��H��tH����s@A�����A��D���!�@��@������t�D!����u�X��Y‰�f���H*��X�H��t���L�DA�� ufW[�DL��L�CH��H�Ѓ�����f.�H���L�L�Ɂ�@H��u����f�H�GL�GH���L������f.�H��1�E��E���/���H����!���H�J�H��H�����f������ff.�@��AWAVAUATUSH��8H�H�t$H��I��H�|$A��@��H��H����L�d$I�$H�ǁ�@��H��H����L�~M��uL�~H����I��H��u�KfDH���;E�l��E��t�H��t�E�\��E��uVH��u��H��8[]A\A]A^A_��I�l$�|���fDH�_�K����M�d$�v���fDH9�r�uA�|��A9|��r�H��
H��
L�-H�{H��H��H�<$H�4$H��I�}1ʃ��b���I��H�@�"H�@H�D$H�D$I�}H��H�H��
���.���I��H�PH�@uH�PUI��H��M��ATH�t$H�|$�/��I�AYAZ��@��H��I�V��H��H��u�-f.�D��E��uH��H��H��u�H9���I�M��@��H��I�U��H��H��u� �<���uH��H��H��u�H9�r{H�D$H�D$(H�D$H�D$H�D$(L��L��H�D$�H��8[]A\A]A^A_�H�@H�D$����f�I�NI�V�/���I�MI�U�n���L����F���L����x����ff.�AWAVAUATUSH��(��@��H�ՍW�L�5Lc�Hc�H��H��H�L�I��H��t7H��tH��H��H�H�L�H��H�UH��([]A\A]A^A_��������"�#H���L�,�H����D$H�H�8����I��H�@I�@tML�(Lcl$L�l$I��L���I��H�T$L��I�H�M�J��O�<��K���/���fDI�G�f�H�T$������H�����H�I���@t@H��H�P��H��H��u� �<���uH��H��H��u�H9�rH�d$�Y����H�HH�P�fDL����ۉ�1���H�=�迻��ff.�@AWAVAUATUSH��H�|$H�L$0L�L$(H���'I��H��I��L���������E����H�L$A�@��D$<D�I��@�A�q�Hc\$<H�
Lc�H�L$ L��H��L�H�H��H�
H�L$H����L��L�*H��L�H�H�\$H��H�D$@A��@�L�jL�zD�T$<H�D$xH�\$@H�D$HE����I��L�t$H�l$ �@I��L�zA��E����E��M9�r!�uH�|$L��L��L���"������ZH�D$E�r�Ic�D�hA�u�Lc�L��H��L�H�H�T�H����L��L�*H��J�8H�D$L�N��A��@�f���L�jL�zE���j���L�t$L��M9�r0A���L��L��L��L��D�T$�~���D�T$�����L�|$I� H��t"H�D$@�0H�H)�H��H���I_ H�L$(H�|$L��L���;���H�Ĉ[]A\A]A^A_�f�H�D$H�x H��t׋HA��@���q�Mc�L�
Hc�L�L�L$ H��L�\$H��H�J� I�<�tOH�ؾ0H��H�H�D$L�H��H���H�D$HX �c���fDI��L�zA������E�����"��H���L�4�H�Hc,�H�H�8�߉��I��H�@I�E@��L�0H�H�D$L���H��H�L$ L��H��H�L�L�,�H�L$H�,��H�D$H�x ����fD�|$<������"�OH���J�,�H�B���D$H�H�8�0���I��H�@I�E@�-H�(HcD$H�D$H�H�D$L��L���H��H�|$H�L$L�H�D$ H�H�<�L��L�,��H�D$ H���U���E������"��H���N�,�H�B���D$ H�H�8�{���H��H�@H�@uH�BL�(Lcl$ H��H�T$ �L��H�T$ H�L$H��L�H��H�H�T�L�,�H�D$ �H�D$ H�T����fDA�R�Lc�J�<H�|�H����L��H��L�I�H�D$N�,�����L�H��A��@tLI��H�xA��L��M��u�)fDD��E��uH��H��H��u�L9��mM��&���DL�PH�x�fDL�t$L��D9T$<t9H�D$H�x H��t+H�l$@�0D�T$H)�H�H���H�D$D�T$Hh J�,�I�D$E�L/�E���-E��A����H��L��L��L��C��D�T$H�D$�l���H�D$D�T$M�.L)�H��u�i�H���^A�L����t�I9��Ld$0H�|$(E��H��M��L��D�T$M)�L�H�|$L��H)��b���D�T$A�T.���t���C�D�����;I��u�L�L$(H�|$E��L��L��L�������J���D���hL�\$P��"��H���N�,�H�B���D$ H�H�8�ׅ��L�\$PH��H�@H�@��L�(Lcl$ H��L�\$PH�T$ �L��H�T$ L�\$PH��H�L$L�H��L�H�T�L�,�H�D$ �H�D$ L�\$PH�|��h���fDLd$0H�D$(E��1�M��H�|$L��D�T$M)�L�L������M��D�T$����������M)������H�L$0L��I�tK�L�H9��E1�1�D��M��t�C�<�H��H	�B�4�I��H�� M9�u�A��O�\�E1�1�D��DC�<�H��H	�C�4�I��H�� M9�u�A�3L��H�ƉL$ L��D�T$<H�D$���H�D$E1�L��D�L$ M�.L��L��L)�L�\$D��H�D$跰��D�T$<L�\$H�D$�X���H��H�T$ �H�T$ �|���f�H�B�9���I�E�$���I�E����DL�Ld$0L9��]H�
�HH�5H�=�A�R�Hc�H�<H�|�H����L��L�\$ H��L�H�H�L$L�,����L�\$ L�H��A��@��I��H�xA��L��M��u�+�D��E��uH��H��H��u�L9���M��_���A�P���@�A
Lc�L�\$ J�<0I�<�H���
H��H��H�I�H�D$J�,�����H�I���@��H��H�P��H��H��u�*�D��E��uH��H��H��u�H9��7H�����A�P���@��	Hc�H�L$ H�H�<�H���L��H��L�H�H�D$H�,��L��H�8I���@tjH��H�P��H��H��u�,f�D��E��uH��H��H��u�H9���H�D-H�D$����L�PH�x����H�HH�P����H�xH�P뗅��~L�\$XH�L$P��"��H���N�,�H�B���D$ H�H�8�l���H�L$PL�\$XH��H�@H�@uH�BL�(Lcl$ H��L�\$XH�L$PH�T$ �L��H�L$PH�T$ H��L�H��H�H�L$H�T�L�,�H�D$ �H�D$ L�\$XH�L$PH�|��N������O��"��H���L�,�H�Hc,�H�H�8褀��I��H�@I�@uI�GL�(H�H�D$I��L���I��H�D$ L��H�L$I�M�N�<�J�,��H�D$ J�<��V������G��"�H���N�,�H�B���D$H�H�8����H��H�@H�@uH�BL�(HcD$H�D$H�H�D$M��H��H�T$@�I��H�T$@H�|$H�L$M�H�D$ I�J�<�H��J���H�D$ J�<��0���M���:����Q���H�\$@��H��L�\$PH�T$ �L�\$PH�T$ �1���L������L����G���A�R�Hc�H�H�|$ H�|�H����L��H�L$PH�L$H��L�\$XL�HD$ L�,����H�L$PL�\$XH��H���@��H��L�R��H��H��H��u�)fDE��E��uH��H��H��u�H9���M��G���A�P���@��Hc�H�|$ H�H�<�H����H��H��H�H�H�D$H�,��\��I��H���@�H��I�O��H��H��H��u�(DD��E��uH��H��H��u�H9��wH��t���A�P���@�L��Hc�H��H�L$L�H�H�L$ H�<�H�H�D$H����L��L�l$H��L�I�H�D$N�,����H��H���@teH��L�B��H��H��H��u�$�E��E��uH��H��H��u�H9���K�D-H�D$�k���H�zL�R�i���I�WI�O���H�zL�B럅�����"��H���N��H�B��L�D$@�D$H�H�8��|��L�D$@I��H�@I�E@uI�EL�HcD$H�D$xL���L��H�T$xH�L$ H��H�=L�HD$H�|$H��L��L�,�H�D$@�H�L$ H�D$@H�<�������HL�\$hH�L$`��"�&H���N��H�B��L�T$X�D$PH�H�8�|��L�T$XH�L$`I��L�\$hH�@I�E@uI�EL�HcD$PH�D$xL��L�\$`H�L$X�L��H�L$L��H�T$xH��L�HD$ H��L�l�H�D$P�H�D$PL�\$`H�L$XH�|��a���������"�RH���H��H�Lc,�H�H�L$H�8�2{��H�L$I��H�@I�@uI�GH�L�l$xI��L���I��H�D$ L��I�H�
I�H�L$N�<�H�D$xJ���H�D$ J�<��a���H��L�\$XH�L$PH�T$ �L�\$XH�L$PH�T$ ����H��H�T$�H�T$�9���L����|�����H�T$xA�p���H���q��I��H���@tGH��I�W��H��t(H���D��E��uH��H��H��u�H9��9H�d$x����诨��I�GI�W�H�T$HD��A�r�L�\$XH�L$P��H������H�L$PL�\$XI��H���@��H��I�}��H��t(H���D��E��uH��H��H��u�H9���H�d$x���D��H�T$xA�p���H���~��I��H���@tIH��I�}��H��t"H���
����uH��H��H��u�H9�r!H�d$x�}���I�EI�}�\���I�EI�}�L�����L��L�\$XH�L$P�L�\$XH�L$P�T���L������D��H�=1����H�=1��D�‰�H�=1����D��H�=1��H�
�ZH�5H�=��
���ff.�f�UH��AWAVAUATSH��H�}�L���l���dH�%(H�E�1�H��A��@�H��I��H��p���A��M��M����H��p�����I����F�l��E��t싅l���D�p�A��"��H��������I9��Ic�L�%L�5H��H��x���H��H�I��H����H��x���I�_L��`���H��H��I��H��H�H�M�H��H��X���I�I�E1��?�H��H����I9�r?E�|$A��A�OH�CH���dH��I��E��H�H�ׁ�@u�H�pI9�s�H�M�H��x���L�L�
L��`���H�	M��E��H��
H����I9����M���l���A��D�M��M�L�E�H�E�H�E�H�E�Mc�H���_H����I�H�]�K�47H��H����tH�]�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�L�\$I���H��p���L��J���E1�H�}�E��L��L��H����H�}��
H����fDH�;H���kM�&���L�H��A��@tlI��H�xA��L��M��u�'fD����uH��H��H��u�L9���H��H�U�M��H�U�M�fH�SH���H�C����L�@H�x�fDH�OL�H��p�����@�M���l���D�M��M�L�E�H�E�H�E�E���@���H��p���H�}�1�L������H�]�H�]�H�E�H�E��H�}�H�u�H�GH� tH�GH)��H�]�H�E�H�E�H�M�dH3%(�(H�e�[A\A]A^A_]�@H��H�U��H�U����E���_H��x�����H�
L�$�H�
���E�H�H�8�s��H��H�@H�@��L� Lce�H��H�U��H�U�M�&H�H���H�;����fDH���L�4�H�Hc�H�H�8�s��H��H�@H�@uH�BL�0H��L�5H�U��H��x���H�U�H��H��H��H�H��I�I�H�H�M��H�M�H����H�P�����H�=��|���f�H�B�����H���I������H�{�H��tyM�f��Ϳ��L�H��A��@tEI��H�xA��L��M��u�'�D��E��uH��H��H��u�L9�rM����L�@H�x�H��H�U��H�U���A��u~H��x�����H�
L��H�
Lc$�H�L�E�H�8�
r��L�E�H��H�@H�@uH�BL�H��H�U��H�U�M�f�H�S�H���H�{�����H�{�H��tdM�f��ƾ��H��H���@tFH��L�B��H��H��H��u�&E��E��uH��H��H��u�H9���M��s���H�zL�B�A����H��x�����H�
L��H�
Lc$�H�L�E�H�8�q��L�E�H��H�@H�@uH�BL�H��H�U��H�U�M�f�H�S�H���H�{�������l����AH�=1��H��H�U��H�U��8���H�{�H��t}M�f�袽��H��H���@tBH��H�z��H��H��u�%f�D��E��uH��H��H��u�H9��DM��I���H�BH�z��H�H�5H�81��A����H��x�����H�
L��H�
Lc$�H�L�E�H�8��o��L�E�H��H�@H�@uH�BL�L�e�H��H�U��H�U�H�E�H�S�H��I�F��H�{���H��X�����l���A�t$���H������H��H���@tpH��H�z��H��t$H���D�$�E��uH��H��H��u�H9�rFH�e��l���H���l���H�5H�81��H��H�U��H�U����H�BH�z�H��H�U��H�U���UE��H��AWAVAUI��ATI��SH��H����h���L�E�dH�4%(H�u�1�J�4�H�E�H�����H�E�H��@���H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u���AH�D$H���H�E�H�E�H�}�L�5H��H�H��`����EH�}���Hc�L���H��H��P���H��H�M�<�I���hMc�D��M9�AF�1�L9���L�}��1�LcUL�L�}��DI��H��I9�tS�C�I���x�H��I��Hƒ�u�A��H��H�� H��A�TM9��H��D��1�I9�u��L�}�H�E�H9��e	H���6H��P���H�Džl���A�H��H��H�H��I�4H�H��X���H�E�H��p���H��8���f�H�E�O�d-H�]�E1�J��H�E�I�GH��x����nI�LE���@�hH��H��x�����H��M��L��L�]�H�E���H��H�E�L��jL�]�L��M��H��H��M���p��Y^M�L)�L9u���H�E�H�}�N��L�N�I9��u���I9��I�I��LE�M)��@��H��H��x�����H��H��L�]�M�H�E��Z���H��H�E�H��jL�]�H��M��H��H��L)�M���o��XZL9u��i�����l���D�pA��A��H��p���L�xI���]H��p���M��H��X���L;e���H�E�H�}�D��l���H�}�H�E��t���@D�پ1�����I�OI�W���I�OI�W�#���H��`���L��H��H��H��L������H�}���H�E�H�E�@H�E�H��`����|0���u6H��H�E��@�t��H�����#H��u�H�E�HDž`���H���h���H�u�H�8�fj��H��H�xH�@uH�xH��`���H�u��H�}���H�}�dH3<%(H����H�e�[A\A]A^A_]�f�H�8H����H��X���H�����H�I���@tnH��H�P��H��H��u�'@D��E��uH��H��H��u�H9���L��H��L��p���H��X���L��M�oH�X�M�����H�HH�P�H��`���H�E������L���"��H��P���H��D�]�L�<�H�����E�H�H�8�i��D�]�H��H�@H�@uH�BL�8H��D�]�H�U��H��P���H�U�HcM�H��H��H�H�=H��M�<H�H��I��M�?D�]����H��@�����b���H�E�D�M�H��H��@����D�]�H�E��]�����l���������L���"��H��P�����H�=L�<�H�=Hc�H�H�8�$h��I��H�@I�E@t=L�8L���L��p���H��X���L��M�/H��I�?���H)�H�L����I�E�L�������H��p���H�x�H����H��X���H�X�讴��I��H���@tBH��I�M��H��H��H��u�"D��E��uH��H��H��u�H9�r*H��A���I�UI�M��HDž`���H�E�H�E����L����̃�l�������L���"�pH��P�����H�=L�<�H�=Hc�H�H�8��f��I��H�@I�E@uI�EL�8L���L��p���H��X���L��M�o�H�X��I�����H��p���H�x�H��thH��X���H�X��}���I��H���@��H��I�U��H��H��u�,f�D��E��uH��H��H��u�H9��$H��X�����l�������L���"�`H��P�����H�=L�<�H�=Hc�H�H�8��e��I��H�@I�E@uI�EL�8L���L��p���H��X���L��M�o�H�X��I������I�EI�U����H��p���H�x���H��X���H�X�H��p���H�x��T���I��H���@tWH��I�U��H��H��u�#@D��E��uH��H��H��u�H9�rH��L���L�������L�����I�EI�U몃�l�������L���"�#H��P���H�5�H�=L�<�Hc��H�H�8�d��I��H�@I�E@uI�EL�8H�]�L���H��p���H��X���L��L�h�H�E�H�F��������l���H��8����}���U��H���-���I��H���@�}H��I�U��H��t!H���	�<�uH��H��H��u�H9�rVH�e��h���@�u�AH�=1��H�
�H�5H�=��6����I�EI�U�L����ff.�f���H�1҅�H����H�8�Sc����ATUSH�H����@��H��H����H��
����ts�����؃�����H��������H�{H����b��H��H�sI��H�@uH�sI�|$I�$@uI�|$�L��[]A\�H�����u�H��t1H��u�H�H�8�H�o�X����H�H�8�|����H�H�8�l����H�H�8�\����H�H�8�L����H�H�8�<������SH���H��� u+H� �uH�����tH��[����[�fDH� ��������H��H� t��H���H� H�����H���L�A��@��M��H�PI��A��M����L�Ɂ� tP1�fD��uH��L9�u�H��H�D$����H�D$L�I����L��uLH�����tDH��H�����f�J�<�����H�4:�f�L��L�V�H9�u�f���u*H��L9�u�H�����H���DH�PL�@�O���H�:�
f.�H��H�q�H9�u�I�� L��i������������@��uH�����t
����H���ff.����H�SH����H�8�?`��H��H�H�� ��@t0H��H�XH�H����H�����H��H	�H�[��H�PH�1�H����H��H�P[����H��x�f�H��H���H� ���H����AUI��ATUSH��(H�H�|$��@�ZH��H�oH����H���TH��H�A�LM�H��
H�8��L���T_��L�@H�@��H����UM���E1�1���H�<��T�M���I��D��I�� H)�I�IH�H��C��H�� H9�u�L9�|)�}DD��I�� H)�A�4�H��H�� L9��YM��u�H���(H��A�D������I9��H��H�$轾��H�T$H�$H��� �2H� �H�T$H�T$H�T$�uTH�����tLH�������BL�@����H�_H�oH�������H�@L��H��L9���H�D?H��([]A\A]�fDH������I�I��H��A�8I��H�� H9�|�c�փ�L��H��A�T��H�� L9�tIH�y�T�I��H��u��@�T�H��A��H��H9��L9�����A��H��L9�|����L��M9�������H������������=���H� �������M��t1�1��T���1ɿ�I�y���1��fDAUATUSH��H��(H�H�|$��@�RI��L�oI��A��M���KI���H�IM�H��
H�8��H��H���\��L�@H�@��M����A�U�H����E1�1��DH�4�A�T�H����I�ɉى�H�� H�H�9I�IH��C��H�� I9�u�L9�~9H��u�DH���H�щ�H�� H�>H��A��H�QH�� H9��H�T$H�T$H�T$�uH�����tH���[���H��([]A\A]�A�T�H��A��H��I9����fDL�@�����L�gL�oM�������H�@H���H��(H�D[]A\A]�@H������I�Y��H��A�0H�� L9����A�T�H�KH���g����׃�H��H��A�T��H�� I9�u�L9��
���K��I�\$�I��H�YH��t�H9����I��H���H9�������H������H�������H��t$1�1����I���K��I�Y�H��I�I����L�»�ff.�@��AWAVAUATUSH��HH�|$H�t$@��u>@��uH�����t
�����
t%H�|$�&�H��H[]A\A]A^A_��H�l$H�t$(H����b��H�\$A����=L�d$H�t$0L���b��H�\$(L�|$0A��L9���L�D$L�l$I�@��I��I�E@��I��E��H�L�D$LD�1�D�$H�8L���tY��D�$L�D$H�@H�puH�pH����1��A��A#L���H��H9�u�I9�~fDA�T�D!��H��I9�u�E��H��H�$��1�E��@��!��w���H�l$8H�T$L�d$8H�$H�T$������H����������H���C���H��H[]A\A]A^A_�@H�l$H�L�l$(�H�l$0�m���M����H��H��?I��H�E@��H�mE��A��I�����A�E����H�1�D�$H�8�4X��D�$H�@H�HuH�HM����H�SH���w�q�H�sH���b�t�!�H�� �4�H��I9�u�L��L9�}a@H�sH���BD��!�H�� �<�H��I9�u�I9�~5��t�D!��4�H��I9��I9�~E!�DD�4�H��I9��D��H��H�$��D!��߷��H�T$0H�T$8H�$H�T$0��m��������H��L�l$L�D$L�|$(H�\$0L��I��D��L�D$E��A��L�l$I�@�M���M�@I�E@�M���M�m�H���H���i����1�E�������H�@H�xDH�D���@L��M���T���D1��^����L9������I9��������H����?���1����ff.�AWI��AVI��AUI��ATUSH��(H�H�ׁ�@�wH��H����H���@�QH��H�NH����H���%f�H���D�\��E��t�M�aH���/H����H��t
E�T��E��t�H9��'�H���BH���MH���CI�$H�)M��tXH��
H��
�L�L$H��H��H�H��1�H�8���GU��L�L$H�@H��H�p�oH��1�H��H�I�MM����I�H��H��
H�8���T��H��H�pH�@uH�pH��1�H��H�I��v���f�H�^H�N���I�i����M�a������|��A9|������M��t1�L�L$�L�L$I�EM��tM�H��(�[]A\A]A^A_�f.�M����H��
H��
L�UL�L$H��L��H�L$1�H�L�T$��H�8�T��L�T$H�L$H�@I��L�XL�L$uL�XM���:I�H�H��H�L$L�\$H��
H�8L�T$���S��L�T$L�\$H�@H�PH�L$uH�PH�D$L��I��M��SL��QH��蟅��M��Y^H�D$t[I�?��@��H��I�O��H��H��u�*�D��E��uH��H��H��u�H9��vM�}M�������H�8��@��H��H�H��H��H��u�'@D��E��uH��H��H��u�H9��I��W���DE1�E1�A�M������S1�I��M��QL��1�L��贄��X�ZM����������H�xH�H�t���I�I�O����H��
H��
�H��H��H��H�L�L$H��1�H�8���%R��L�L$H�@I��H�xuH�x1�A��H��L��L�L$�ǀ��M��t!���L�L$I�I��� I�tPH� M���j���M�}�a���H�p���H��H�D$�H�D$���L��H�D$�H�D$�s���H� ����ff.�@AUI��ATI��UH��SH��H�I��A��@�:H��H��H�Ѓ���H�WH���fDD��E��uH��H��H��u�H9��-M����H�EH�UH��H��H����� ��t	����Hc�H�ÀH)���H�T$1�L��H���e���L)�H�������H���|BH�|$袼�����H�0fH~�H9�tWfH~�H��<��������H��u:H��H��[]A\A]�DH��H��H��H�U��H��H���:����H��[]A\A]�H�GH�WH����������f.�H��H������H������DH���H�MI��A��@���D��H��[]A\A]�H��H��H��[]H��A\A]�f�UH��SH��H��H�I��A��@��H��H��H�ȃ���H�NH���DD��E��uH��H��H��u�H9���M��uHH�CH�KH��H��H����� ��t	����Hc�H��@H)�uOH��H��H��[]�f���fDH��H��H��H�K��H��H���fDH�FH�NH���U����DH��H��H�T$踱��H�T$H���fDH���H�I��A��@�A���ff.�AUI��ATI��UH��SH��H��H�L$���I�UI�$H��
H��
����8�tH�|$H���@tiH����ti�O��uH��t\�Nn����uSH��t��H�}1�H���
S��H�EH��t:H�|$L����R��H�H��[]A\A]�@H�GH��uH��tH�D$H�H��[]A\A]��H�W���u��p���f���SH��H��@��u.@��uH�����t
�����
t#�%H���H��[�f�H��H��H��H�L$1�H�����H�D$�u�H�����t�H���j���H��[�@��UH��SH��H��������ujH�����ta�����
uWH��H�L$H��H���L���H�\$��u
H�������H�<$@��uH�����t���H��H���H��[]�H�H��t4H��H���H��[]�f.�H��H��H���n���D�H�=�H��H��H���p���H���c������UH��SH��H����uk��uFH�����t=�����
u3H�L$1�H��H���Q���H�D$�u/H�����t'H������H��[]ÐH�H��t$H��H���H��[]�f�H��H��H��띾	H�=�H��H����SH��H����u(@��u6H�����t-�����
u#H��[�fDH��H��[H����H�5H��H�H�81��@��H��������?H9�w
H�D?���ff.���H�@H�x
H�D?���ff.���SH��H����tcH��H��?H�H1�H)�H��H�L$H�L$H�� H��H�D$�H��H9�sW�P���t��҃����Hc�H��t���H)�H)�H��[�@H���@u@H�HH�@H��H�H9�w��H9�t+�P���u��� ��H��
H�H����1�H��t��H��[�ff.�f�ATUSH���@t4H����t4H�GH��I��H�����uG1��H�����Lf�H�_H��uH��[]A\��H�GH��I��H��H�����t�������H�H)�H������u>H�UH�E@uH�UH�C�1�f.���H�� H��H�H���u�H��[]A\�H�L��H�5H�81��f�ATUSH���@t4H����t8H�GH��I��H�o��u?1��H�����D�H�_H�oH��uH��[]A\�H�E�H��I����t�������H�H)�H������u&H�C�1��T�H�� H��H�H���u�H��[]A\�H�L��H�5H�81�����H���@tTH����t;H�WH�����tX�҃���Hc�H)�H��������?H9�w^H�D����f.�H�GH��t�H�OH��H�Q����u�H��1��H��������?H9�wH�DH���H����H��H���@��UH��SH��H����u
H�����������H��H�H���~H�ƃ����H�����H�U��@upH;us}H�m�L���L��!π� u=�����>H��t-�MH�ELŅ�t�&fDH���P����H9�u�u(H���[]�@H��H��H����H9�r��� uظH��[]�@H��ƒ���
�!����� t�I��A��@��H��H�KH����tpH���DD��E��uH��H��H��u�H9���M����H�CH��t1H�{H��H�W�������҃���Hc�H)�H������ueH�5H���������fDH����t������������H�{H�KH���C����H����t�H�SH���v���H�U����H���H�I��A��@�5���1�H���H�����^���ff.����H����AVAUATUH��SH��H��pH�t$�H��������H9�wHHcT$H��H)�1�H��I��H��t
H)�H��I��H���tH��tL�#H��p[]A\A]A^�f.�D�d$H�l$ H�l$<H�t$H��L�t$TH�D$�D$D�d$��u���H��L��A�L���u��E��u6L�d$DH�t$ L���u���t$H��uL�L$D�����H������H��L��A�L��j��L�D$ �D��_AX�D�L$\���7L�l$LH�l$`jA�ATL��M���H���hu��XZfD�L��E1��Pc�����0H�L$0j@A�H��jA����1T��AXAY��H�D$0�������H����������|$\�����t$XA���u �D$T�����D$T;D$D�A�N�$�H�l$`�L��L��H���J�D%H�T$p@H���@�H9�u�D�D$DL��1�L��H��L�l$L�q���D$P�D$L����T$X�����D$T����H�D$`H�l$`L�l$LH�D$hH�D$L���H��A�H��H��j��L�D$$�E��AZA[L��H�L$(j@A�A�j����R��H�D$0H+D$8I��A]A^�i�����D$L�D$PH�D$`H�l$`L�l$LH�D$h�#����D$X9D$HH�D$TvH�D$L��D1�H�l$`L�l$LH�D$hH�t$DH�D$`H�T$L����A��n���@��H����twH��H��?H�L$H�H1�H)�H��H�T$H�� H��H�D$��t	�1�p���u*H��H9�r�H9�t	H��H9�tR1�H���H��H9�sߋ��t�H��H9�u��.fDH���@u8H�HH�@H��H�H9�v��p��f���P�����H�����fDH��
H�H����ff.���AVE��AUM��ATI��UH��SH��H�� H�D$H�|$H�D$���H�D$��tIH�x4H�D$�H�t$AVM��I��H��AU�P��H��0[]A\A]A^�fDH�ؿ������fDL�L�ҁ� H�����A��@tH�pL��H����H����H�pH�P�fD��A��E1���f�AV��I��AUATA�����UDE�1�SIc��H��I� ��H��������H9���H�u1��I��H�PH� tH�PI�H�Z% H�������+�A�H��H��L��E)�A��Mc��H��t#H�+H�D�H���
�K�H9�u�[L��]A\A]A^�f�H��x'H��1��I��H�XH� �{���H�X�r���H�H�5H�81��ff.��UI�҉�SH��H��H���@��H�������O��uH����H��� ^������E1�H��A�BL�׹����y���؅�t=����H�D$H��w~H�$H��;��H�߉�H����H	����H��[]�@��~CH�H������� t	@�H��[]�@H�GH��t�H�W����?����T���@H�D$H��v��H�H�5H�81����H��SH���u#��uH�����t
�����
tBH����t�H��xD��H��H�߃�H���0����u(H�����t H��[���H�¾H���h����t�[�f�H��1��f���H��SH���u#��uH�����t
�����
tBH����t�1�H�xG��H��H�߃�H��補���u(H�����t H��[�n���fD1�H��H�������t�[�DH�ؾ�fD��AWI��AVI��AUI��L��ATE��L��A��UD��SH��(H�<$L��H�D$�J��1�H��������I��I9���J��L)�I��H�hH�����)�H����A����H�\$QM��M��ATH�T$L��H��H���[��A��XZA����a�D$�\$H��H�� H��9E���H��������?H9��H�\H��(H��[]A\A]A^A_�fDH�1�H��L$H�8�:���L$H�@H��L�PuL�PQM��M��L��ATH�T$L��H��L�T$�Z��AXAY���A��L�$t_H���E���H�A����E����� H�E�������M���H������@���H��耝��H���0����H����H���mA���D$�\$H��H�� H��
H��A�������xH��H��H9�����H�D��H���H�8���9��H��H��H�xH�@uH�xH�t$�H�A������E���������H�E������H���@��H��H�S��H��H��u�E���D�<���uH��H��H��u�H9�����H�������f.�L��L��L��L��H��I�̓���H��H��L��H��I��H��H�H)�H�̓�H��H��H��H9�rKHH��H)ȉ�H����H)�H��������H9�����H�H�5H�81���H)ȉ�H����H)���H���@��H��H�{H����H�������(X�����������H��蠗��A��u�H�#������E���&�������f.������fDI��H��������!�H�sH�{�}���H�KH�S�Y���H�1ҾH�8�Z7��H��H�@H�@uH�CH�T$H�H�CH�@uH�C�@A����������fD��A��1ɺ�f.���USH��H��8H�t$�H��H�D$�H��tAH� ���D$H��������H9�w/H�H��H)�H��������?H9���H�D?H��8[]��H�l$H�\$$�D$H�t$H���-h��H��H�߹A�L���kg��H��H��H��jA���L�D$�U7��XH��ZA�B1ɺ��H��8[]�f�H�����t$�D$H�|$��t6���D$����f.�H�|$���fD�H��8[]�@H���D$1�H�|$�������AWI��AVAUATA��U��SH��H��8H��u�f�I��A�?�A�Å�u�A�<+tdA�<-�v���~���������
�����]D�]�A��"vpH���H�5H�81��fDI��A�A��PՁ�u�E���|�H��8[]A\A]A^A_�f.�<0���A�<0��H����x�9�}�����D$���D$A� L��D�\$��A)��Ic�L�L$(D�\$H��H��@��L��H��L�D$ D���D�\$�OP��H�t$(A��Lc\$L��l$�ZH�H�L$ 1�Nc�I�D�M��I��H�H��E��H��H��I��L��U����ZY���H��������H���	�������@A�GI�W����0tV��_�G�BL�z����0t;I�փ�_�O�_��D�\$�D�\$����A�F���I��L���BL�r����0t;I�׃�_u�BL�z����0t׃�_t�L��M��I�օ���A��a���DH�������0t���_�R������I��E1�����@<0�&�����A��
���E1��L�L$(��L��D�\$L��L�L$�H�D$H�D$(I9�sH�8L�L$D�\$@��_����E��u_H��������?H9D$�H�D$E��uH��H�D�[���E��t�I9����8� ����H�D$(��H�PH�T$(�x@��u��H��A��H��L���9������A�GI�W���<BLD�����A�<0����A�GL��M�W���<XID�I����A�G��B<6w^H���Hc�H�>��I��A�����I��A�����I��A��
���I�������A��x���A�<0�j���A�GL��M�W���<OID�I���M���A�������A)��A��"��A�H�
�9����������Չl$���8���H�L$ H��E��L���77������A�<0���A�GL��M�W���<DID�I������A�M�������8����H�5H���I���2���H�|$�E��tH� �X���M��I������H� ����A��������L��M��I��������UH��AVA��AUA��ATSH�]�H��0H�}�H��dH�%(H�E�1�H�E��H�}��E����H�E�H�L�`�� ��L�`M���H�XA�<t2H�CH=��2H��H�}��L��I��H��L���A�D��D��L���H�}���H�M�dH3%(��H�e�[A\A]A^]��H���I��H����H�E�H��� �_���@H����A�<t�H�CL��H�U�H�U�H��H��H�E�H��H%�H)�H���H��H9�tH��H��$�H9�u��uWL�d$I�������f�E1������H�}�H�E��H�E�����f.�L���e����H)�H�L�����AW�F�AVAUATU��SH��8H�|$��"���^�A��A!���H�|$L�t$�T$A��L����T$�8-I��uL�hE1���L�L$ ��L��L�D$H���I��H�T$ L��t��A� ��A)�H�L$E��L��D���4��L�t$(H�T$�uH�����tH��裐��H��8[]A\A]A^A_�H���H�5H�81��f.���AWAVAUATU��S�^�H��8H�|$��"��H�|$L�d$A��A��L����8-I��uL�hE1�L�L$ L�D$D����L��H��Hc���H��1�A��D��H�Hc4�H�D$H�D�H��H�T$ L��L�H��4��L�d$(H�T$�uH�����tH��譏��H��8[]A\A]A^A_�H���H�5H�81��@��AWAVAUATU��S�^�H��8H�|$��"��H�|$L�d$A��A��L����8-I��uL�hE1�L�L$ L�D$D����L��H��Hc���G��H�L$1�H��H�D��Hc4�H�D�I��H��H�T$(UL�L��L�膼��L�d$8H�T$ZY�uH�����tH��趎��H��8[]A\A]A^A_�H���H�5H�81��ff.�f���H��������?H9�w
H�D?���+��ff.���H�@H�x
H�D?��H��x�f+��fDH��H���T+��H� ���H������1҅������1҅�������'����������@����USH��H�I��A��@��L�GL�OM����L���E��E��uH��H��H��u���H��L9���M����H�SH�CH��u�]H��tW�L����t�U���"��H��������H9����E���H�߅�tWH��[]����@I��L�OI��A���[���H���H�=[]�@�H��H�S���i���H��[]��DH���H�I��A��@�.���H�H�5H�81��H���H�5H�81��@��S�
H��H����uH�߉��H��[�H�L$H�1��H�|$@��t�H�߉��H��[�D�H�߉��H��[�ff.���SH�5H������H��� uH��yH��H9�u
[�fDH��[�H�H�5H�81��ff.���SH�5H���l��H��� tH��x[�DH��y+H��H9�t�H�H�5H�81��@H��[���SH�5H�����H��� uH��yH��H9�u
[�fDH��[�H�H�5H�81��ff.���SH�5H�����H��� tH��x[�DH��y+H��H9�t�H�H�5H�81��@H��[���H���6���uH�����tH��H���+���H�����H��裒��f(�fT
f.
w
H����1�H�=�D$��D$f��f/�w�H�����H���ff.���@��t6H��H��H��?H�H��H1�H)�H�H����H��
��8��(�3��H��@����H������������
�'�����tw����H�t$�H�t$�NH�0�X�fH~�H9���fH~�H��<��������H��H����H���@�����u`H�t$�H�t$f��H��H9�t�H��H��H��?H)�H	�H��H�t$�~L$�Z���f.������tp�+H�������H����fH~�H��H��H���I���f����)����5���H������)���H��H�����H�t$�H�t$�>���f���@��t6H��H��H��?H�H��H1�H)�H�H����H��
��8�����H��@����H������������
������tw����H�t$�H�t$�\FH�0fH~�H9���fH~�H��<��������H��H����H���������uXH�t$�H�t$H��H9�t�H��H��H��?H)�H	�H��H�t$�\D$�^���fD�����te�-H����K��H����fH~�H��H��H���U���f�1��	(����D���H������8���H��H���)���H�t$�H�t$�M���D��SH��H��@���
��@��tb������H��H�t$�H�t$f��H��H9�tlH��H��H��?H)�H	�H��H�t$�~L$�Ef.�H�����tw�����
������t���udH��H�t$�H�t$�N�Y�H�0fH~�H9�t}fH~�H��<������tyH��H��uZH��[�@����tnH��H�ߺ*[�fDH��H��H��H���:o���u�H�����t�H��H��[����H��[�fDfH~�H��H��H�����H�t$�H�t$����fDSH��H�� @������@����������H��/��H��H9���H��H��H��?H)�H	�H��H�T$�~L$f.
�}H���L$��L$�^��H�� [�H�����tg�����
t3�����k�����uXH��/���N�H��H��H��H�T$1�H�����H�D$�u�H�����t�H���r���뇃�����H���H�� [�fDH��H�t$�H�t$f��H��H9�t%H��H��H��?H)�H	�H��H�T$�~L$�^�H�0fH~�H9�t'fH~�H��<������t;H��H�����������DH��H�t$�H�t$�N�fH~�H��H��H������}����H��/�(���H��H�t$�H�t$�2���ff.�f����/����f���UH��SH��H��H�H��tH��H��H��[]����H�=�H��H�����UH��SH��H��(�k���f(���~H�f(�fTf.f��H*��x�^�H�0fH~�H9�t0fH~�H��<��������H��H��u	H��([]�f�H��(f(�[]������H������������
���ڃ���tt�����Cf.���f(�fTf.�H���H�|$��5��G-���L$H��(H��[H��]�Q�Hc�����@�؃���uXH��H9���H�ڸH��?H)�H��H��H	�H��H�D$�~D$f.��_���H�������؃���t�H�H��t:H��(H��H��[]�f�H���H��H��(H��[]�����H�=�H��H��H��H��(H��H��[]H���f.�f(�fTf.f��
������DH���D$��L$�~�f(�fT�f.�wfT�f.������H���;�����H����AU���AT��UH��SH��H�����Z@��u
@H�����u/�urH�H����H��H��H��[]A\A]�fD������a��
u�H����~��H�è�*��H����ƒ�������t�I��I���1ҾH���H=wI��H=��H�=1��f���I*�H���L$��L$�H�0fH~�H9�trfH~�H��<�������}H��H��uKH��[]A\A]�L�%M�����H���H��H��L��H��[�]1�A\A]�@H��[]A\A]��H���[]A\A]�H�=1��H���f(��"���H�E�KH�� H��������@��H������D�UE��u&H������H���L$�:���L$������f(��L$��L$f.�z�����L�%M���'�H������fDH��H�EH�� H9�u{f��H���I���H���H��?H��H��H��[]H��A\A]H��þH�=�H��H��X���H�EH�������H�UD�
E�������� ���H�޹H��?H)�H��H��H	�H��H�L$�~L$����H�=�I��H�����H�@1��I��I�H����H���Ye��L!�L��tiH����H��H���
f��H�8��@��H��H�H��L��H��H��u�.fDD��E��uH��H��H��u�L��H9�r~fDH���o�����<���H������0���H��H��[]A\A]�){��f�L��H!�H�H��uH�������L��H!�H�H��t�H���fDH�xH�H�P���H��H�D$�H�D$�q����H�=�I��H��������H���H�0fH~�H9�tOfH~�H��<������tH��H��u,H����fH~�H��H��H��H���f.�H������S���H�� �����Ff.��Jf(�fT
f.
��f/v[H�����H�� [�f��D$�D$�H��H����L$f�f.���Eф�u�H��u�f/�v�H�� �[�H��H9�t1H��H��H��?H)�H	�H��H�D$�~D$�3����f�H��H�|$�f(���R����D$�f/�����f/�����H,�H�H9������Z���f�f/��L���f/ȸ������������fD��UH��SH��H����tc@��t-@��t>H�H�H9�<�}H�����H��[]��H�����t��Jx��H��@��u�H�E�� t�H���[]�@��u;H�����t2H��ȃ���
tm�ڃ���t��u H��H��H��[]����D�؃���t�H�H��tH��H��H��[]���H�=�H��H���H�7H��I��A�� ��H��
��8��F���������@tKH��H�S����@t(H��H�}��� ��M��u��H�H�D����DH�uH�}��fDH�KH�S�ff.�ATI��U��SH�������unH�����te�����
���ڃ���t��uRH��L���H��t'H���������ty���t_��1�[H��]A\�fD�؃���t��<��t�����>��tYH��L��[]A\�f�H��L����{�����x��f.������D����{����x���fDH�H��u��H�=�H��H��{���@H�H���g����H�=�H��H��G����������f�����r���f�����b���f���1��U���D��S���H�� �����Ff.�zf(�fT
f.
f��v1�H�� [�@f��f�H��H�|$�L$��L$f.�z�u��D$��tt�
f/�w�f/w��H,�H��H9�u���H��H9�t�H��H��H��?H)�H	�H��H�D$�~D$�3�����H�� H��H��[�ff.���UH��SH��H������H��@����H9���H�H���H�H�UH��E1�H��
I�Ѓ�I��
A��A8�uYH�ׁ�@��I��H�UA��@��H��E1Ƀ�H9�u'H��H�pH����H�}�E1Ʌ�uA�H��L��[]��H������Q����vs���G������u;H�����tRH�H�؉ʃ���
�;�������t ��tH��H��H��[]��؃���u�H��H��H��[]���D�؃���u���@H��I�Ƀ�A��@����H;P�F���H��H�p����f�H�}�������UH�=SH��H�H�0�H������H�=�H��H�5H��H�;H�H�5�H�;�H����H�5�H�;1�H�H�5�H�H�;�H�5�H�H�;�H�5�H�H�;�H�5�H�H�;�H�5�H�-H�;�H�5H���H�H�;�H�5�H�H�;�H�5�H�;H��H�5�H�;�H���H�5�H�;�H�H�5�H�H�;�H�5�H�H�;�H�5�H�H�;�H�5�H�H�;�H�5�H�;1�H�}���H�5�H�H�;�H�5�H�H�;�H�5�H�;�H����H�5�H�H�;�H�5�H�-H�;�H�5H���H�;�H�����H�5�H�;�H�m���H�5�H�;�H�B���H�5�H�;�H����H�5�H�;�H��H�5�H�H�;�H�5�H�H�;1�H�5�H�;1�H���H�5�H�;1�H�ݩ��H�5�H�;1�H�ũ��H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H��
��H�5�H�;1�H��
��H�5�H�H��GH�������H�H��H9�u�H��H9�u�H��[]�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignbignum.cxn <= znyn <= znblen <= num_bdigitsxn + yn <= znxn <= ynunsupported flags specifiedword order not specifiedunexpected word orderbyte order not specifiedunexpected byte orderinvalid wordsize: %zutoo big wordsize: %zutoo big nails: %zu-InfinityInfinityNaNInteger()xn <= 2too big numberdp <= dezn > ynxn * 2 <= znzn == yn + 12 <= base && base <= 360 < xnx_higher_bdigit < yyn < znBDIGIT_MSB(yds[yn-1])zds[zn-1] < yds[yn-1]2 <= znqds ? (xn - yn + 1) <= qn : 1rds ? yn <= rn : 12*n < xnt1ds[t1n-1] == 0t2ds[t2n-1] == 0t3ds[t3n-1] == 0yn < 2 * xnn < xnqn + bn <= xn + wnqn <= bninvalid radix %d0i == num_bdigitsdivmodremaindercan't coerce %s to Bignumlongshift width too big01unsigned longunsigned long longlong longBignum out of Float rangedivfdiv**in a**b, b may be too big<=>>=<=Bignumto_sinspectcoerce-@+-*/%modulo&|^~<<>>[]==><===eql?hashto_fabsmagnitudesizebit_lengthodd?even?(size_t)(dp - BDIGITS(z)) == num_bdigits!KARATSUBA_BALANCED(xn, yn) || !TOOM3_BALANCED(xn, yn)too big numwords * wordsize: %zu * %zu0 <= shift && shift < BITSPERDIGyn < xn || (xn == yn && yds[yn - 1] <= xds[xn - 1])unexpected bignum length for karatsubaunexpected bignum length for toom3too big power number requested: maxpow_in_bdigit_dbl(%d)**(2**%d)bignum too big to convert into `string'bignum too big to convert into `%s'too big to unpack as an integerbignum out of range of unsigned longbignum too big to convert into `long'bignum out of range of unsigned long longbignum too big to convert into `long long'big2str_karatsubabig2str_2bdigitsstr2big_karatsubastr2big_normalmaxpow_in_bdigit_dblstr2big_poweroftwobary_unpack_internalbigdivrem_restoringbary_divmod_normalbary_mul_balance_with_mulfuncbigdivrem_mulsubbary_small_rshiftbigdivrem_single1bary_mul_toom3bary_addcbary_subbbary_mul_karatsubabary_mul_singlebary_short_mulbary_small_lshiftbary_mul_precheckbary_sq_fastbary_muladd_1xNbary_mul_normal�!�)R���@����eg��Aa"P�yB6�!�)R����#NJ9�?�V�(M�M�brsx�}�9w�=��'[��!~�^�'�\<��]ۮ��2���ļI���-@��{YXVq�`77���)�42����xd�n"�_�p�=8��#<Z�+�se��Y�6�A݁�� W�
�	_O��%,�D!q\n�%g�.��A?(






0123456789abcdefghijklmnopqrstuvwxyz����������������?�=�A�����C���CGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx��0y$D�L�E�t
AJl
�Z�Z,��B�D�I �g
ABG��H�T
D_4��A�A�D �
AAAK
FAFT0B�B�B �B(�D0�D8�D@�HKPIHA@H
8D0A(B BBBC�TA��
GP�}B�A�A �p
ABIG
ABF�(B0F(D A
ABD8�E�F�G �A(�W0�
(A ABBA48�B�E�D �F(�J0�(A ABBLpwB�B�E �D(�A0�E
(A BBBA�
(A BBBA,�4A�C
H����N�q
E�YL[
I(JA�I�D0�
AAE�8B�B�K �E(�D0�D8�K�+
8A0A(B BBBD`�L�F�I�F�I�D��
8C0A(B BBBGD�L�F�I�F�I�y�H�B�B�E �E(�D0�A8�DP�
8A0A(B BBBG0$�B�A�A �Dp�
 AABC X�E�b
IL
D|RE�b
Y�#�3h�UB�K�M �F(�D0�D8�D��
8C0A(B BBBAm�N�F�F�F�F�~�,�~HD�B�F�B �B(�A0�A8�D@o
8A0A(B BBBA<�NF�B�B �A(�A0�
(A BBBA�%AA^L��B�B�B �A(�A0��
(A BBBEP
(F BBBD<WxPsTTh3F�B�B �B(�A0�A8�D`�hKpShA`[
8C0A(B BBBF�%AA^ ��A�B
Et
AP�B�A�A �DP�
 AABGL
 AABHY
 AABC T�HE
CI
E,xQA�O�S G(H0\AA,�+A�C
B�E�E�J���
C���B�E�E �E(�A0�D8�Gph
8J0A(B BBBHP
8D0A(B BBBK
8A0A(B BBBHDxW�D�D�I8A0A(B BBBApL|�H@F
BGHGPFHA@D
GDHKPDXD`I@D
DDHGPFHA@,��A�C
P�����I	
C�y[KE I8	�B�B�A �A(�DP�
(D ABBDHX	FB�B�A �A(�DP�
(D ABBJI(D AEB �	|H@FHDPdHA@D,�	�A�C
P�����B
J8�	)F�B�A �A(�DP�
(D ABBH04
�F�A�A �D@x
 DABEDh
9F�B�A �A(�DP�XQ`BhBpg(D ABBEP@�
mF�B�A �A(�DP�XK`g(D ABBBP@�
uF�B�A �A(�DP�XK`g(D ABBHP8d(LE�g
DZ
F}
S4x�E�D�G j
AAD�
AAF �jA�|
CX
H�MDf
FX�X�B�B�B �A(�A0�GP�
0A(A BBBGj
0F(A BBBIdAx
� Vd�F�B�B �B(�A0�A8�D�|
8A0A(B BBBHI
8A0A(B BBBEd�WF�B�B �B(�A0�A8�D�|
8A0A(B BBBH@
8A0A(B BBBF`
1A��
Fp�
�F�B�B �B(�A0�A8�Dp�
8A0A(B BBBH�xK�TxBp�
8A0A(B BBBDH�
�B�B�B �B(�A0�A8�D`X
8A0A(B BBBHL@�B�B�B �B(�A0�A8�G�+
8A0A(B BBBJ,��	A�C
P������
E,�SA�F
F���E�D��
C�,F�A�A ��
ABA 4IE�g
LA
GX-\P p
H �
Gz
F�	�$�yL�K
IX�(TS8��B�E�A �A(�DP�
(A ABBGL0�B�B�A �A(�GP,
(A ABBAX
(F ABBEd�F�B�B �B(�A0�A8�D�|
8A0A(B BBBHQ
8A0A(B BBBEd��B�E�E �E(�A0�A8�D`�
8F0A(B BBBK�hDpLhA`�hIpNhF`lP�B�E�D �D(�D@
(A ABBFi
(A ABBAi
(A ABBAH(E AFB(�"A�D�G0�
GAKL��B�E�D �D(�G@�
(A ABBEZ
(A ABBH$<|E�G p
ACzA4d�E�D�G0r
AAD[
AAK4��E�D�G0L
AAB[
AAC �lE�h
KL
H�%%( �E�G f
AEiA8L�B�A�A �I
ABHp
ABA8��B�A�A �M
ABDQ
ABA���_QG4�4E�D�G �
FAEa
AAE��O�B�B �A(�D0�G�N
0A(A BBBK������H������D�N�U�B�_�H�Y�A�e�K�W�B�	�N�V�B�J�N�^�B� ��H \
DV
JD��F�E�E �D(�D0�GPvXK`I0A(A BBBGP8<L$B�H�B �G(�G0��
(D BBBJ4�A�F�G0�
AAEa
AAE ��H�X
HU
C ��H�U
KR
F`�F�E�E �H(�M0�D8�D`hhHpWhA`G
8D0A(B BBBGqhKpWhB`pP�hE�A�GPa
AAHAXH`[XDP[
AACI
AAEX��F�E�B �B(�D0�C8�Gp�
8A0A(B BBBK�xJ�FxAp(4�E�C
B�E�F���
HH`�F�E�B �B(�A0�C8�Dp�
8A0A(B BBBAH��F�B�B �B(�A0�C8�Gp�
8A0A(B BBBAT��F�B�B �B(�A0�C8�Gpex_�ZxApX
8A0A(B BBBAP%dHtS|��	�	L�lO�A�D �
A�A�IYM�A�Q ��T
A�A�J0uE�L R
ADq
AFSA PUE�l
GD
At]E�]
Ft �UE�l
GD
A�]E�]
Ft�-HX
HD �uH _
Ip
HL,�D �
EsU D
L}
E,L�D �
IkM D
Lz
E<|�E�G �
AEL
IKf
DFD
AK,�#A�G0�
AD�
AG�(ME�D�G P
GAHh,�E�D�G@{
AACD
EAF�
DDOr
GANO
DALh
HAO���P�F�D �D(�G@t
(G� A�B�B�K�
(A ABBAa
(J� F�D�B�ID
(A� A�B�B�FD
(F ABBA

(E AFBEL
(D� A�B�B�Nw���� \yH@
HI
WD,�zE�I0G
AJI
FAL��E�D�G n
AAHd
FAEn
GAJZ
GAF8hB�D�C �r
DBGn
ABG<Pdx(�E�I0t
AE�G@��E�D�G �
DAHK
GAEN
GAJ,�CE�H�D /AA	#)?$Yt%��&��'��+�4�N)f�yq)���0�����	�
�1JK�ZXJu��PZ���b����b��p��+|B��L�
f||���������T�x
��m	�}m	>�
�1p	^px�
�{�1�
��8�{���w�94d
4���4���@Y�&��2�J;�T�k�u�� �� ��! �6�!P~"h~"��"��"�#��"#�#
C#�.#3!C#E�)gP#U|���)�M*��)��0�M*	�*8	P*�H	@b	�*~	N,�	+N�	
�	N,�	u,
P,%&
�@
u,a
+/�
�,��
�
+/�
�/�
0/W�
0�/80V�/sg�0�C1�03�C1�u1P1%1PKu1l;2��1��P�;2��3�@2�
�)
�3G
|4c
�3�r
��
��
|4�
�4�
�4Q
�4/;O�4+b�|;��=�;��`R���Q|�=6�>X�=�m�>�|�>�:O�h�:O��O�@Oy�O�P/�O�5�PL�Qa�PFi�Q�\R�\R�)Y��)Y4YZSYZq	[�	[�I\�I\��]�]55_S5_o�_��_��`��`�ob�ob�b/pbj@�bX-cn�bMw-c�Hc�0c�Hc��e�Pc��e!f3�eA=!f\:gy0f
�:g�Qk�Qk��n��n�p�2�n1�p;�s]�s��u��s��	�GG�	`G�`�����u C�?�u�Q�kC��ؓO2P��	�ؓ�3��1�S� 3�]�3]�O�i��ɠ�ɠ����Р-����
��

�7�Q�lD��D��ɢ�ɢ����������(��B1�Z���e1�R��R��1��`���1��'�%3@���'�R�50�"BR�[G�r`��|G��̵�̵�ȶ�	8ȶ%}�Cж�T	m}������l������E�E�;3�W3�p'��2@���'�����20���������������'��43�U��u�����������Z�Z�#w�<w�c�����$�������������W�W�2��M��n������������(� ��h �& (�E ��b ��� ��� ��� ��� ��!��$!��H!��j!���!���!���!(��!(��!@�"@�!"P�:"P�_"Y��"Y��"i��"i��"���"��#U�*#��u6#U�R#��l#���#��#��#u��#u��#��$��$
�4$
�N$��f$���$^��$^��$��$��$��%��%��:%��#H%��b%��z%���%=��%	@�%=��%���%	0&��.&��F&	_&	 x&	(�&���&	��&��y�&	��&��'��1'�I'	Hb'�x'���' �h�'	�'	�'���'���'���'��(�� (��'(��=(��Q(��X(��n(���(���(���(���(���(i��(i�)��$%&'#1)6)	;)@)E)J)0O)=T)/Y)b^)hd)�j)�p)�v)F{)��){�)��)�)�)�)�) �)�)��)	�)�)�) �)(�)7�)@�)H�)��)U�)b�)��)z*�*�*�*�*�#*�)*�/*5*;*A*-G*>M*JS*�Y*_*(e*@k*Qq*dw*~}*��*m�*��*��*��*��*��*��*��*��*��*��*��* �*��*H�*��*x�*�*0�*�*+!+)
+&+8+@+C%+G++J1+H7+P=+MC+TI+YO+aU+h[+ka+mg+om+qs+sy+u+|�+~�+��+��+��+��+��+��+��+��+��+��+��+��+��+��+��+��+�,�,,',<,P,

 !"()*a,w,�,�,�,��,�,�,�,�,---%-3-F-Z-k-x-�-�-�-�-�- %�-�-�!��-�-�"R�-..1.9.R.0Y)d.`Z�s.[9�.P\m�.�]u�.@_d�.�_�.�.�.�`��.�./@g
//`kW'/-/q�B/O/^/j/�/�/�/�/�/@��/`��/��I�/�	�/ �$0P�y0Т(0@�$090P�|G0Y0е�g0r0�0�0�%�0 �%�0P���0�0�0���0�0���1���1`�!1���/1`��=1���O1��]10��m1t1�1����1�1�1�1����1����1���2��%2��H20�*2@�62P�	L2`�	_2p�lj2u2�2�2�2`�U�2��]�2 �U�2��]�2��-�2�u�2�2����2`��3 ��3��3��M"3@��.343���?3;3G3W3]3l3�z�3����3�3�3�3���3����3�3p�C�3�344.annobin_bignum.c.annobin_bignum.c_end.annobin_bignum.c.hot.annobin_bignum.c_end.hot.annobin_bignum.c.unlikely.annobin_bignum.c_end.unlikely.annobin_bignum.c.startup.annobin_bignum.c_end.startup.annobin_bignum.c.exit.annobin_bignum.c_end.exit.annobin_bary_cmp.start.annobin_bary_cmp.endbary_cmp.annobin_bary_2comp.start.annobin_bary_2comp.endbary_2comp.annobin_integer_pack_loop_setup.start.annobin_integer_pack_loop_setup.endinteger_pack_loop_setup.annobin_rb_big_stop.start.annobin_rb_big_stop.endrb_big_stop.annobin_rb_big_odd_p.start.annobin_rb_big_odd_p.endrb_big_odd_p.annobin_rb_big_even_p.start.annobin_rb_big_even_p.endrb_big_even_p.annobin_bignew_1.start.annobin_bignew_1.endbignew_1.annobin_rb_ull2big.start.annobin_rb_ull2big.endrb_ull2big.annobin_bary_subb.start.annobin_bary_subb.endbary_subb__PRETTY_FUNCTION__.13889.annobin_bigsub.start.annobin_bigsub.endbigsub.annobin_bary_addc.start.annobin_bary_addc.endbary_addc__PRETTY_FUNCTION__.13932.annobin_bigadd.start.annobin_bigadd.endbigadd.annobin_str2big_poweroftwo.start.annobin_str2big_poweroftwo.end__PRETTY_FUNCTION__.14860.annobin_str2big_normal.start.annobin_str2big_normal.end__PRETTY_FUNCTION__.14887.annobin_abs2twocomp.start.annobin_abs2twocomp.endabs2twocomp.annobin_bary_mul_balance_with_mulfunc.start.annobin_bary_mul_balance_with_mulfunc.endbary_mul_balance_with_mulfunc__PRETTY_FUNCTION__.14099.annobin_validate_integer_pack_format.start.annobin_validate_integer_pack_format.endvalidate_integer_pack_format.annobin_dbl2big.start.annobin_dbl2big.end.annobin_bary_pack.start.annobin_bary_pack.endbary_pack.annobin_str2big_scan_digits.start.annobin_str2big_scan_digits.endstr2big_scan_digits.annobin_big2str_2bdigits.start.annobin_big2str_2bdigits.endbig2str_2bdigits__PRETTY_FUNCTION__.15153.annobin_rb_big_eql.start.annobin_rb_big_eql.end.annobin_rb_big_hash.start.annobin_rb_big_hash.end.annobin_bary_zero_p.part.1.start.annobin_bary_zero_p.part.1.endbary_zero_p.part.1.annobin_bigzero_p.start.annobin_bigzero_p.end.annobin_bary_unpack_internal.start.annobin_bary_unpack_internal.endbary_unpack_internal__PRETTY_FUNCTION__.13855.annobin_bary_muladd_1xN.start.annobin_bary_muladd_1xN.endbary_muladd_1xN__PRETTY_FUNCTION__.13989.annobin_bary_mul_normal.start.annobin_bary_mul_normal.endbary_mul_normal__PRETTY_FUNCTION__.14029.annobin_bary_sq_fast.start.annobin_bary_sq_fast.endbary_sq_fast__PRETTY_FUNCTION__.14063.annobin_bary_small_lshift.part.7.start.annobin_bary_small_lshift.part.7.endbary_small_lshift.part.7__PRETTY_FUNCTION__.13523.annobin_bary_mul_precheck.start.annobin_bary_mul_precheck.endbary_mul_precheck__PRETTY_FUNCTION__.14314.annobin_bary_small_rshift.start.annobin_bary_small_rshift.endbary_small_rshift__PRETTY_FUNCTION__.13536.annobin_bigdivrem_mulsub.start.annobin_bigdivrem_mulsub.endbigdivrem_mulsub__PRETTY_FUNCTION__.14007.annobin_bigdivrem1.start.annobin_bigdivrem1.endbigdivrem1.annobin_maxpow_in_bdigit_dbl.part.12.start.annobin_maxpow_in_bdigit_dbl.part.12.endmaxpow_in_bdigit_dbl.part.12__PRETTY_FUNCTION__.13488.annobin_bigdivrem_single1.start.annobin_bigdivrem_single1.endbigdivrem_single1__PRETTY_FUNCTION__.14434.annobin_bigdivrem_restoring.start.annobin_bigdivrem_restoring.endbigdivrem_restoring__PRETTY_FUNCTION__.14455.annobin_bary_short_mul.start.annobin_bary_short_mul.endbary_short_mul__PRETTY_FUNCTION__.14293__PRETTY_FUNCTION__.13973.annobin_bary_unpack.constprop.26.start.annobin_bary_unpack.constprop.26.endbary_unpack.constprop.26.annobin_bary_divmod_normal.start.annobin_bary_divmod_normal.endbary_divmod_normal__PRETTY_FUNCTION__.14476.annobin_bary_mul_karatsuba_branch.start.annobin_bary_mul_karatsuba_branch.endbary_mul_karatsuba_branchbary_mul_karatsubabary_mul_karatsuba_start.annobin_bary_mul_toom3_start.start.annobin_bary_mul_toom3_start.endbary_mul_toom3_startbary_mul_toom3.annobin_bary_mul_toom3.start.annobin_bary_mul_toom3.end__PRETTY_FUNCTION__.14252.annobin_bary_mul.start.annobin_bary_mul.endbary_mul.annobin_bigsq.start.annobin_bigsq.endbigsq.annobin_bigmul0.start.annobin_bigmul0.endbigmul0.annobin_bary_mul_karatsuba_start.start.annobin_bary_mul_karatsuba_start.end.annobin_bary_mul_karatsuba.start.annobin_bary_mul_karatsuba.end__PRETTY_FUNCTION__.14162.annobin_rb_big_mul_normal.start.annobin_rb_big_mul_normal.end.annobin_rb_big_sq_fast.start.annobin_rb_big_sq_fast.end.annobin_rb_big_mul_balance.start.annobin_rb_big_mul_balance.end.annobin_rb_big_mul_karatsuba.start.annobin_rb_big_mul_karatsuba.end.annobin_rb_big_mul_toom3.start.annobin_rb_big_mul_toom3.end.annobin_rb_bigzero_p.start.annobin_rb_bigzero_p.end.annobin_rb_cmpint.start.annobin_rb_cmpint.end.annobin_rb_big_resize.start.annobin_rb_big_resize.end.annobin_big_extend_carry.start.annobin_big_extend_carry.endbig_extend_carry.annobin_get2comp.start.annobin_get2comp.endget2comp.annobin_twocomp2abs_bang.start.annobin_twocomp2abs_bang.endtwocomp2abs_bang.annobin_big_shift3.start.annobin_big_shift3.endbig_shift3.annobin_big_shift.start.annobin_big_shift.endbig_shift.annobin_bignorm.part.18.start.annobin_bignorm.part.18.endbignorm.part.18.annobin_rb_big_or.start.annobin_rb_big_or.end.annobin_rb_big_xor.start.annobin_rb_big_xor.end.annobin_big2dbl.start.annobin_big2dbl.end.annobin_rb_big_divrem_normal.start.annobin_rb_big_divrem_normal.end.annobin_power_cache_get_power.start.annobin_power_cache_get_power.endpower_cache_get_powerbase36_power_cachebase36_numdigits_cachemaxpow64_nummaxpow64_exp.annobin_big2str_karatsuba.start.annobin_big2str_karatsuba.endbig2str_karatsuba__PRETTY_FUNCTION__.15182.annobin_big2str_generic.start.annobin_big2str_generic.end.annobin_str2big_karatsuba.start.annobin_str2big_karatsuba.end__PRETTY_FUNCTION__.14920.annobin_rb_big_new.start.annobin_rb_big_new.end.annobin_rb_big_clone.start.annobin_rb_big_clone.end.annobin_rb_big_uminus.start.annobin_rb_big_uminus.end.annobin_rb_big_abs.start.annobin_rb_big_abs.endrb_big_abs.annobin_rb_big_neg.start.annobin_rb_big_neg.endrb_big_neg.annobin_rb_big_2comp.start.annobin_rb_big_2comp.end.annobin_rb_big_norm.start.annobin_rb_big_norm.end.annobin_rb_uint2big.start.annobin_rb_uint2big.end.annobin_rb_int2big.start.annobin_rb_int2big.end.annobin_bigsub_int.start.annobin_bigsub_int.endbigsub_int.annobin_bigadd_int.start.annobin_bigadd_int.endbigadd_int.annobin_rb_big_and.start.annobin_rb_big_and.end.annobin_bigdivrem.start.annobin_bigdivrem.endbigdivrem.annobin_big_fdiv.start.annobin_big_fdiv.end.annobin_big_fdiv_int.start.annobin_big_fdiv_int.endbig_fdiv_int.annobin_bigdivmod.start.annobin_bigdivmod.endbigdivmod.annobin_rb_big_modulo.start.annobin_rb_big_modulo.end.annobin_rb_big_divmod.start.annobin_rb_big_divmod.endrb_intern_id_cache.15620.annobin_rb_big_remainder.start.annobin_rb_big_remainder.endrb_big_remainderrb_intern_id_cache.15612.annobin_rb_big_coerce.start.annobin_rb_big_coerce.endrb_big_coerce.annobin_rb_uint2inum.start.annobin_rb_uint2inum.end.annobin_rb_int2inum.start.annobin_rb_int2inum.end.annobin_rb_absint_size.start.annobin_rb_absint_size.end.annobin_big2ulong.start.annobin_big2ulong.end.annobin_big2ull.start.annobin_big2ull.end.annobin_rb_big_size.start.annobin_rb_big_size.endrb_big_size.annobin_rb_big_aref.start.annobin_rb_big_aref.endrb_big_aref.annobin_rb_absint_numwords.start.annobin_rb_absint_numwords.endchar_bit.14750.annobin_rb_absint_singlebit_p.start.annobin_rb_absint_singlebit_p.end.annobin_rb_integer_pack.start.annobin_rb_integer_pack.end.annobin_rb_big_pack.start.annobin_rb_big_pack.end.annobin_big2str_base_poweroftwo.start.annobin_big2str_base_poweroftwo.endbig2str_base_poweroftwo.annobin_big_shift2.start.annobin_big_shift2.endbig_shift2.annobin_rb_big_lshift.start.annobin_rb_big_lshift.end.annobin_rb_big_rshift.start.annobin_rb_big_rshift.end.annobin_rb_integer_unpack.start.annobin_rb_integer_unpack.end.annobin_rb_big_unpack.start.annobin_rb_big_unpack.end.annobin_rb_big_bit_length.start.annobin_rb_big_bit_length.endrb_big_bit_lengthchar_bit.15901.annobin_rb_cstr_to_inum.start.annobin_rb_cstr_to_inum.end.annobin_rb_str_to_inum.start.annobin_rb_str_to_inum.end.annobin_rb_str2big_poweroftwo.start.annobin_rb_str2big_poweroftwo.end.annobin_rb_str2big_normal.start.annobin_rb_str2big_normal.end.annobin_rb_str2big_karatsuba.start.annobin_rb_str2big_karatsuba.end.annobin_rb_ull2inum.start.annobin_rb_ull2inum.end.annobin_rb_ll2inum.start.annobin_rb_ll2inum.end.annobin_rb_cstr2inum.start.annobin_rb_cstr2inum.end.annobin_rb_str2inum.start.annobin_rb_str2inum.end.annobin_rb_big2str_poweroftwo.start.annobin_rb_big2str_poweroftwo.end.annobin_rb_big2str_generic.start.annobin_rb_big2str_generic.end.annobin_rb_big2str.start.annobin_rb_big2str.end.annobin_rb_big_to_s.start.annobin_rb_big_to_s.endrb_big_to_s.annobin_rb_big2ulong.start.annobin_rb_big2ulong.end.annobin_rb_big2long.start.annobin_rb_big2long.end.annobin_rb_big2ull.start.annobin_rb_big2ull.end.annobin_rb_big2ll.start.annobin_rb_big2ll.end.annobin_rb_dbl2big.start.annobin_rb_dbl2big.end.annobin_rb_big2dbl.start.annobin_rb_big2dbl.end.annobin_rb_big_plus.start.annobin_rb_big_plus.end.annobin_rb_big_minus.start.annobin_rb_big_minus.end.annobin_rb_big_mul.start.annobin_rb_big_mul.end.annobin_rb_big_divide.start.annobin_rb_big_divide.endrb_big_divide.annobin_rb_big_div.start.annobin_rb_big_div.end.annobin_rb_big_idiv.start.annobin_rb_big_idiv.endrb_intern_id_cache.15600.annobin_rb_big_fdiv.start.annobin_rb_big_fdiv.endrb_intern_id_cache.15651.annobin_rb_big_pow.start.annobin_rb_big_pow.endrb_intern_id_cache.15671rb_intern_id_cache.15662rb_intern_id_cache.15660.annobin_rb_big_to_f.start.annobin_rb_big_to_f.endrb_big_to_f.annobin_rb_integer_float_cmp.start.annobin_rb_integer_float_cmp.end.annobin_rb_big_cmp.start.annobin_rb_big_cmp.endrb_intern_id_cache.15353.annobin_big_op.start.annobin_big_op.endbig_oprb_intern_id_cache.15371rb_intern_id_cache.15375.annobin_big_le.start.annobin_big_le.endbig_le.annobin_big_lt.start.annobin_big_lt.endbig_lt.annobin_big_ge.start.annobin_big_ge.endbig_ge.annobin_big_gt.start.annobin_big_gt.endbig_gt.annobin_rb_integer_float_eq.start.annobin_rb_integer_float_eq.end.annobin_rb_big_eq.start.annobin_rb_big_eq.end.annobin_Init_Bignum.start.annobin_Init_Bignum.end.LC0.LC1.LC2.LC3.LC4.LC7.LC6.LC5.LC9.LC16.LC15.LC13.LC14.LC8.LC11.LC10.LC12.LC19.LC22.LC23.LC25.LC26.LC21.LC17.LC18.LC24.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC37.LC36.LC38.LC40.LC39.LC41.LC44.LC42.LC43.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC59.LC58.LC57.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC77.LC76.LC20.LC78.LC79.LC81.LC80.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_newobj_ofruby_xmalloc2rb_freeze_singleton_classrb_cBignum__assert_failruby_digit36_to_number_tablerb_cSymbolmemcpyrb_cFalseClassrb_cFixnumrb_cFloatrb_cNilClassrb_cTrueClassrb_free_tmp_bufferrb_alloc_tmp_buffer__stack_chk_failrb_eArgErrorrb_raiserb_eFloatDomainErrormemsetrb_isspacerb_invalid_strruby_digitmaprb_usascii_str_newrb_big_eqlmemcmprb_big_hashrb_memhashrb_thread_call_without_gvlrb_thread_check_intsmemmoverb_genrand_ulong_limitedrb_big_mul_normalrb_big_sq_fastrb_big_mul_balancerb_big_mul_karatsubarb_big_mul_toom3rb_bigzero_prb_cmpintrb_funcallrb_cmperrrb_big_resizeruby_xfreeruby_xrealloc2rb_big_orrb_num_coerce_bitrb_big_xorldexprb_big_divrem_normalrb_assoc_newrb_num_zerodivrb_obj_hiderb_gc_register_mark_objectrb_bugrb_str_resizerb_usascii_str_new_staticrb_eRangeErrorrb_big_newrb_big_clonerb_big_uminusrb_big_2comprb_big_normrb_uint2bigrb_int2bigrb_big_andrb_float_new_in_heaprb_big_modulorb_num_coerce_binrb_big_divmodrb_intern2rb_obj_classnamerb_eTypeErrorrb_uint2inumrb_int2inumrb_absint_sizerb_to_intrb_num2longrb_absint_numwords__memcpy_chkrb_absint_singlebit_prb_integer_packrb_big_packrb_big_lshiftrb_big_rshiftrb_integer_unpackrb_big_unpackrb_cstr_to_inumstrlenruby_strtoulrb_str_to_inumrb_string_valuerb_must_asciicompatrb_string_value_cstrrb_str2big_poweroftworb_str2big_normalrb_str2big_karatsubarb_ull2inumrb_ll2inumrb_cstr2inumrb_str2inumrb_big2str_poweroftworb_big2str_genericrb_big2strrb_fix2strrb_scan_argsrb_fix2intrb_num2intrb_big2ulongrb_big2longrb_big2ullrb_big2llrb_dbl2bigrb_big2dblrb_warningrb_big_plusrb_big_minusrb_big_mulrb_big_divrb_big_idivrb_big_fdivfrexprb_big_powrb_warnrb_rational_rawroundrb_complex_rawrb_integer_float_cmprb_big_cmpmodfrb_num_coerce_cmprb_num_coerce_reloprb_integer_float_eqrb_big_eqrb_equalInit_Bignumrb_cIntegerrb_define_classrb_define_methodrb_define_alias�J��������EK��������\L��������s*M��������AU�M���������T���������YN��������`U�l���������s���������xN���������*M���������Ut���������������������N���������Ut���������������������N��������v*M���������	*M���������	*O��������d
Ulp
���������w
���������|
N���������
*M���������
*O��������!U4-���������4���������9N��������*P��������tQ���������*R���������*S���������*T���������*U���������*V��������NQ��������jW���������X���������U����������������������N���������Y���������U�������������������N��������U�$���������+���������0N���������*Z�������������������[���������*Z�������������������[���������*Z������������������[��������*Z�����������������[��������!*Z��������+���������5[��������<*Z��������C���������M[��������T*Z��������[���������e[��������l*Z��������s���������}[���������*Z�������������������[������������������������������������������������*M��������I����������������������������������������*\���������[�����������������������������]��������dQ��������rQ���������]��������0Q��������zQ��������P*O���������^�������������������_��������W `��������� `��������!a��������V!Q��������h!Y��������o!U�{!����������!����������!N���������!*Z���������!����������![��������R"c���������"e��������-'Q��������d']���������'Q���������(]��������8)]��������m)U�y)����������)����������)N���������)]��������1*U,=*���������D*���������I*N���������*U<�*����������*����������*N��������2,U>,���������E,���������J,N��������U,U�a,���������h,���������q,N���������.Q��������/U�/���������"/���������'/N��������k/U,w/���������~/����������/N���������/U�/����������/����������/N��������U1ULa1���������h1���������q1N��������2UL2���������2���������2N��������2UL+2���������22���������72N��������3f���������3U��3����������3����������3N���������3U��3����������3����������3N���������3U��3����������3����������3N��������A4U�M4���������T4���������Y4N��������`4U�l4���������s4���������x4N���������5Q���������5Q��������K6h��������9W��������$9X���������9X���������9Q��������$:X��������r:U�~:����������:����������:N���������:X���������:Y���������:U��:����������:����������:N���������:U��:���������;���������;N���������;i���������;i���������;i��������=<i��������\<i���������<i��������E=i��������q=i��������$FQ��������gFQ���������GQ��������=MW���������MX��������|NY���������NUd�N����������N����������NN���������NUd�N����������N����������NN���������NUd�N����������N����������NN���������NUd�N����������N����������NN���������NUdO���������O���������ON��������OUd*O���������1O���������6ON���������O*M���������P*M���������TQ��������8UQ���������WW��������uXX���������XY���������XU��X����������X����������XN���������XU��X����������X����������XN���������XU��X���������Y���������YN��������
YU�Y��������� Y���������%YN���������Y*M���������Z*M��������n[*M���������\*M���������]*Z���������]����������][��������^*M�������� _*Z��������'_���������1_[��������U`q��������v`q���������`r��������Pat��������|au���������aK���������aK���������bs���������c*M��������Se*M���������e*Z���������e����������e[��������,gs���������gw��������h*M��������Ti*M���������kw��������;l*M��������Xm*M��������^o����������o���������p���������,py��������Ep���������tps���������p����������q{��������&r*M��������js{���������ss���������ss���������s|��������t|G3t\ltU\�tU|�t*M���������t}���������t\�t~��������tus���������u����������u��������v|G2v\�w]��������x|Gx\`x]���������xU\�xU|�x*M���������x\�x}�������� y~��������PyU\eyU|ty*M���������y\�y}���������y~��������zU\zU|)z*M��������Zz}���������z~��������v{]���������|U\�|U|�|*M��������}}��������:}~���������~s���������~U��~����������~����������~N���������U\)�U|8�*M��������}�}����������~���������U\��U|�*M��������&�\6�}��������Z�~����������U\��U|��*M��������Ԃ\�}���������~��������O�s��������f�s��������s�s���������\��U\��U|Ӆ*M��������
�}��������"�\D�~��������y�U\��U|��*M���������}���������~��������M�U\b�U|m�*M����������}����������\և~����������s���������s��������.�s����������s����������s��������ωs��������މ����������������������������������������������������������������������������"�U�.����������5����������:�N���������|G�\̋U\ӋU|ƌQ���������W��������l�}����������~��������*����������h�s����������U\��U|��*M��������܎}���������~���������U\�U|#�*M��������L�\U�}����������~������������������������������ԏX��������Y�s��������}�U\��U|��*M��������Ɛ}��������ڐ~��������s�U\~�U|��*M����������}��������Б~�����������������������������s��������v�Y��������}�*����������������������[����������U\��U|ƒ*M����������}���������~����������*Z���������������������[����������s��������Γs����������|G�*O����������\ȗQ��������4�*M��������j�Q��������
�}��������(�~��������f�U\z�U|��*M����������}��������ߙ\��~���������W��������*�X��������j�U\u�U|��*M����������}����������~���������s����������s����������U\ěU|ϛ*M����������}���������~��������ɜU\ԜU|ߜ*M���������}��������%�~����������s��������ȝs����������U\�U|�*M��������H�}��������j�~�����������������������������U���������������������N���������Y��������-�s��������G�*M���������Q���������*R��������3�*S��������C�*U��������S�*T��������c�*V��������s�*P�����������������������������	����������W�*M������������������<�*M��������a�����������*M��������������������w���������*M��������j�*M��������B����������T�*M����������*M���������|��������=������������*M���������*M��������q�*M��������������������s���������s��������!�y�������������������ܲs�����������������������������<�s��������Ѵ�������������������������������J�{��������[�4k���������������������������������������������43���������C����������W����������h����������m����������w��������������������ͷ���������Է���������޷*����������[��������]����������q�����������*�������������������#�[��������b�����������*��������������������[�������������������Y����������t����������Ƚs������������������%����������ǾU��|��������6���������������������������������������������a������������������/�`��������k�a����������*Z���������������������[��������������������*����������������������[�������������������������������*M���������*M��������S�Q����������s��������\�*Z��������c����������m�[��������C�*M�������������������g�U���������������������������������i�^����������*Z���������������������[��������?�*O��������x������������U|r�^��������Q������������^��������M�U���������*O���������������������_�����������������������������%����������v�X����������Q��������������������������������W����������Y��������	����������������������*Z���������������������[�����������������������������<�U|��*Z���������������������[������������������������������/�U|��*Z���������������������[��������Y������������s����������*����������������������[����������*Z���������������������[���������������������������������������'����������1����������A����������K����������h������������*����������������������[���������������������*��������������������[��������(����������`�*���������g����������q�[���������������������*����������������������[��������%����������-����������E���������P����������h����������|������������������������������P���������������������P����������
����������S���������������������G��������������������� ���������4����������C�������������������������������������������j�����������������������|��������������������<(���������-����������7�<m����������u����������.����������6����������F����������P�y����������,����������(���������-����������7�,h����������p��������������������������������������������������������������������������������������������������3�I����������������������������������������������������3�$I��������������������������������������������$���������)����������3�Y�s��������o���������t����������~�$�����������>����������F����������T���������}���������������������
����������(���������:���������U�Dx�	��������}������������Dg����������u���������������������+�<�
��������A����������K�[�p���������u��������������������������������/����������P���������^�
�������������������������������c��������x�����������*����������������������*M������������������������������������������������������������������������������������������������������������������*�����������������������������*���������+���������0����������7�*���������F���������K����������R�*���������a���������f����������m�*���������|����������������������*��������������������������������*���������������������������������������������������������������������������������������������������������*������������������"����������)�*���������8���������=����������D�*v��������S���������X����������_�*x��������n���������s���������������������������������*��������������������������������*��������������������������������������������������*����������	���������������������*���������
� ������������������+�!��������0����������F�
��������K����������a�"��������f����������|����������������������#���������������������*b����������$���������������������*d���������%�������������������&��������������������'��������������������(������������������&�)��������+����������>�*��������C����������V�+��������[����������n�,��������s����������z��I:4g��������ڢ�����������{��������ȷ{������������������A��������������������������������s���������������������<����������L����������`����������i������������������������������������������������������6����������v��������������������������������6����������h�q��������{��������������������k������������������������������������������� ����$,�P�X)���)�)���)����D�L�p�xJ���J�J��J�0�8bd�lb�b���b�����|$�,|P|X��|�����������m	D�Lm	pm	x�
�m	��
��
�{�
{0{8�d{l����4���4�4��$4,�P�X�������������	�	 D	�L	 p	 x	�!�	 �	�!�	�!�	~"
�!
~"0
~"8
�"d
~"l
�"�
�"�
#�
�"�
#�
#�
C#$#,C#PC#X�)�C#��)��)�M*��)�M*M*�*DM*L�*p�*xN,��*�N,�N,�u,
N,
u,0
u,8
+/d
u,l
+/�
+/�
�/�
+/�
�/�
�/�
0$�/,0P0XC1�0�C1�C1�u1�C1�u1u1;2Du1L;2p;2x�3�;2��3��3�|4�3|40|48�4d|4l�4��4�;��4�;�;��=$;,�=P�=X�>��=��>��>�:O��>�:O:O�OD:OL�Op�Ox�P��O��P��P��Q�P�Q0�Q8\Rd�Ql\R�\R�)Y�\R�)Y�)Y�YZ$)Y,YZPYZX	[�YZ�	[�	[�I\�	[�I\I\�]DI\L�]p�]x5_��]�5_�5_��_5_�_0�_8�`d�_l�`��`�ob��`�ob�ob��b$ob,�bP�bX-c��b�-c�-c�Hc�-c�HcHc�eDHcL�ep�ex!f��e�!f�!f�:g!f:g0:g8Qkd:glQk�Qk��n�Qk��n��n��p$�n,�pP�pX�s��p��s��s��u��s��u�uC�D�uLC�pC�xؓ�C��ؓ�ؓ�3�ؓ3�03�8]�d3�l]��]����]������ɠ$�,ɠPɠX���ɠ�������
�����
�
��D
�L�p�xD����D��D��ɢD�ɢ0ɢ8��dɢl������������������1�$ ��, 1�P 1�X R�� 1�� R�� R�� 1�� R�� 1�!1�!'�D!1�L!'�p!'�x!R��!'��!R��!R��!G�"R�"G�0"G�8"̵d"G�l"̵�"̵�"ȶ�"̵�"ȶ�"ȶ�"}�$#ȶ,#}�P#}�X#��#}��#��#��#��#��#�$�$E�D$�L$E�p$E�x$3��$E��$3��$3��$'�%3�%'�0%'�8%��d%'�l%���%���%���%���%���%���%�$&��,&�P&�X&���&��&���&���&���&���&��'��'Z�D'��L'Z�p'Z�x'w��'Z��'w��'w��'��(w�(��0(��8(��d(��l(���(���(W��(���(W��(W��(��$)W�,)��P)��X)���)���)���)���)���)���)��*��*(�D*��L*(�p*(�x*���*(��*���*���*��+��+��0+��8+��d+��l+���+���+���+���+���+���+��$,��,,��P,��X,���,���,���,���,(��,���,(�-(�-@�D-(�L-@�p-@�x-P��-@��-P��-P��-Y�.P�.Y�0.Y�8.i�d.Y�l.i��.i��.���.i��.���.���.U�$/��,/U�P/U�X/���/U��/���/���/��/���/�0�0u�D0�L0u�p0u�x0���0u��0���0���0
�1��1
�01
�81��d1
�l1���1���1^��1���1^��1^��1�$2^�,2�P2�X2���2��2���2���2���2���2��3��3��D3��L3��p3��x3=��3���3=��3=��3��4=�4��04��84��d4��l4���4���4	��4���4	��4	��4��$5	�,5��P5��X5��5���5��5��5���5��5��6��6��D6��L6��p6��x6���6���6���6���6��7��7��07��87��d7��l7���7���7���7���7���7���7i�$8��,8i�P8i�X8���8i��8�� � � � ����������������� ��$��(��,��0��4��8��<��@��D��H��L��P��T��X��\�`�d�h�l�p�t�x �|$����,����4��8��<��@��D��H��L��P��T��X��&��`��d��h��l��p��t��x��|��6� 4�H0p����P���p��4�����p	<�
t��
�@�<��( \�!��"��"�#�P#0�)HP*�+�P,��,@0/T�/l0�P1��1@2X�3|�4��4�;��=��>	@O 	�O\	�P�	�Q�	`R�	0Y8
`Zl
[�
P\�
�]<@_P�_|�`�pb��b�0cPch�e|0f�@g�`kd
�n�
q�
�sD�u�P����@�`�8��\Рt���� ��P��Т��4���@��`�T@��0��`�@P�hе�ж����� �$P�P@��0������ �������<`�P���������`���t������0�8��d��������T��h���0��@��P��`��p� ��T`�x��� ��������� ��P`�� ���������0@����`������� �@��T��h��|��������p�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rodata.cst16.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@,-T,.l,/�,0�,1'���"@X�HW,-s�3���� =���88@�2�6,
S1b1�]@�i0,
|�2��2��@�i0,��4��4��@�i0,��6��6��@ j0,2d8�28<�.�>E )@Pj(,60D DPDXQ0�D.��D��D|�DS�D'�DZ�Dh�D{�D��D��D��D ��D(�@xo�
,* cD-I	0�'4(}�class.o/        1690381920  1000  135   100644  105688    `
ELF>�@@+*

 !"#UH���SH��H���H�UH�H�JH�@H��tH�HH�	H�pH�IH�q(H�BH�CH��H�P(H��[]����H��H��H���1�H���fD��AVE1�AUATUSH�F�8
u]L�hH��H��I��M��t^H�@� ��oH��L��H���oKH��AoUL���Ao][�[D��]A\A]A^��H��H��H��A����f���AUATI��UH��SH��H��tOH�FH��8
t{H�}1�L�����uH�CH��t:�8t5�H�}L����H��1�[]A\A]�DH��H�}1����u�H�}L��H������H��1�[]A\A]�fD1ҿL�n�H��H��t��E���b���L9ku��W���f���ATI��UH��SH��@��t
@��t#H��H�}H��t.L��H���[1�]A\�@H�����tԋ����u����H��H�E��f.�SH���H��[H���ff.���H��tH���u1��DH��H�����1�H���D��H��t1��H��H�����1�H���ff.�f���H��t1��H��H���d���1�H���ff.�f���H��t1��@H��H���4���1�H���ff.�f�UH���SH��H���H�UH�H�JH�@H��tH�HH�	H�pH�IH�q H�BH�CH��H�P H��[]��U��H��SH��H��H��`H����PH���H�EH��H�@H�@H�E H�EH�h8H�H�@H�@ H�@(�H�C0H�EH�@@H�@HH��H��[]����AWAVI���AUATI��USH��H����oH��H�CH�EL�kM�<$A��u	I�����urH�[��u	H�����u(I�|$H��L���H��1�[]A\A]A^A_��H��L�����u�I���`H��`u�H���`H��`t�H��L����@L��L�����uI���`H��`t
M�<$�j���@I�E��`H��`t�L��L�����ff.���AWAVAUATI��UH��SH��H��(H�FH��t���t&�H��L��H���H��(1�[]A\A]A^A_�DH�@H��H����H�sH�L$H��L�h H�D$H�CH�@H����L�t$M���M���A��u	I�����u*D�L��1�L��H���H�D$H�D$H�D$�e���L��L�����u�I���`H��`u�I���`H��`t�L��L����@��H��tH��4u�����ff.���H�OH�Q H��t7SH��H�:H�OH�
H��tH�	H�IH�Q �H�KH�A [�fDH�A �ff.�@��H�OH�Q(H��t7SH��H�:H�OH�
H��tH�	H�IH�Q(�H�KH�A([�fDH�A(�ff.�@��USH��H�GH�XH��tH��fDH�;H�[��H��u�H��[]�ff.���SH�GH�XH��tfDH�;H�[�H��u�[�D��SH�GH�XH��tfDH�;H�[�H��u�[�D��AUATI���USH��H�H�0���H��M��u{H�@E1��H���H�EH�EH�k ��u6H�����t-H���у����H��H�Ѓ�M��u����H��H��[]A\A]�DH��M���A��I��4uH�C4A��h���H��L�����L�cM���P���I������C���L��H������0���H���`H��`� ���I�$��`H��`����L��H�������I������H���I�$�������6���%H	�H��&����UH��H��SH���H��H���H��H��H���H�H��H��H�8H��HD��H��H��[]���H��@��u,H�����t#H��ƒ���u��uIH�H;8t%H����H�5H��H�H�81��H�H�5H�81��H�H�5H�81��fD��S�H���H���H��[�ff.�f���@��uFH�����t=H��ƒ���t0��t+SH��H��H�_H�sH��tH����[����H�L$H�<$�H�<$H�L$H�CH�GH�p���AVAUATUSH��H�_��uH�����tH��ƒ���t��uH��H��[]A\A]A^�@H��I��H��1��h���I��H�E������H��L�����I��I�D$��L�sM����I�D$H�CM�t$H�PHH�pI�VHH��tL���I�FH�CH�xt7M�t$�H��H�5|���L�$$I�FI�D$H�@H�D$H�CH�x�I��4tL��L�����I���I�EI�EM�l$ H�{ H��tH�?L��H�5���L���I�|$L���H������I����������I�$�ƒ����������I�$���fDH���������H��L���������I�$��`H��`�����I���`H��`�����L��L������L��M�d$�������I������{���L��L����k���f�L���I��4uI�D$4�c���@L��L������M�t$A���E���I������8���L��L������%���I�$��`H��`����I���`H��`����L��L�����D���4�B���f���ATUH��SH��H����uiH�����t(�������H9��gH��H����z@H9��MH��H���H���*H��uSH�H��Kf�H9��H��H������s�؃�����H��������H�C�uH�����tH��ƒ���t��u*H���I��H�C�uH������!H��L���L�eM���	H�CH�CH�UH�xH�RHH�PHH��t�H�CH�@H�xH��t�H�CH�@H�{ H��t
�H�C H�EH�pH����L�cH���I�D$H�H���EH�$H�CI��1�L��H�x�H�H����H�$H�C1�L��H�x�H�H����H�$H�C1�L��H�x�H�EH�xt6L�c�H��H�5r�I�D$H�CH�$H�@H�D$H�EH�x�H�E H��tDH�8t>��I���I�D$I�$L�c H�} H��tH�?H��H�5����H��H��[]A\�fDH�H�H9��H�{��H9���@���M���H������@���H��ƒ����/������&���H�H�5H�81��H���I��4uH�C4���DH��L���U�L�cA������I����������L��H����������H���`H��`�����I�$��`H��`�����L��H����u���fD�H�=�H��-����
H�=�H�����H�=�H����H�H�����H��H�����u)H���`H��`uI�$��`H��`tL��H���DL�c����H�H��K���f�H�H��3����H�H��#����H�H�����H�H�5H�81��H�H�5H�81���AUATUSH���4H���I��H��A����H�������H��ƒ���t��H�EH��H���L�kH��H�kH��L9������uH���`H��`��fDI�}@��u&H�����tH��ƒ���t���z�L���@���I��L�mA����I�����t}L��H�����unH�E��`H��`uaI�E��`H��`tTL��H����GH��H���L�kH�kL9��\���H�mH�[��u'�H������������u	H�[��t�H�{@��u
H�������H�����H��H��u]H�EM��u*H�����t!H�U�Ѓ�����H����H��H��[]A\A]�@H��u�H�H�H��t�H���H��4uH�E4�@H��H����H�]���w���H������j���H��H������W���H�E��`H��`�F���H���`H��`�6���H��H����&����H��ƒ����������������H9�����H�[����f.�H�E�����H����������H����������%H	�H�U�������u$H���`H��`uH�E��`H��`tH��H���H�mH��H����,������L9��z���M�m�|���H�E��`H��`�0���H��H���� ������AV1�H�=AUATUS�F�L�%H�=H��I�$�,�L�-H�=H��I�E��L�5H�=H��I���H�-I�$�H�=H�E�I�}H��H���H�]H�[��uMH�����udI�H�XM�mH�]I�]H�������M�$$H�]I�\$H�������[]A\A]A^ÐI�H�XI�EH�XI�$H�X[]A\A]A^�H��H���M�6H�]I�^��u�H������{���H��L�����uI���`H��`��M�mH�]I�]��u�H������W���H��L�����uI�E��`H��`��M�$$H�]I�\$���;���H������.���H��L���������I�$��`H��`�
���H���`H��`�����H��L��[]A\A]A^��H���`H��`�G���H��L����7���H���`H��`�e���H��L����U�����AWAVAUATUH��SH��H�������L�gL���H�ètJH�]H��H���L���H�hH�k@��u
H�������H��HH��[]A\A]A^A_�fDH�����t�H��ƒ���t��H�H�]H��H�����u�H�E��`H��`�{���H���`H��`�k���H��H����[�����4�H�Ã�H�D$��H�������H��ƒ���t��H�H��H���L�mL9��=H�]H��H�����u*H�E��`H��`uH���`H��`tH��H���fDI�}@���RH������EH��ƒ����4���+���L9��M�eL�cA��u.L��H���bfDH��H���L�mH�]L9�u�H�[L�}A��t'�DA�������M�A����I�����u�M����H�H�(H����(H�CH�|$�
���H����������H��Ѓ����H�����f�H�C�����H����������H������������%H	�H������4�I�ă�H�D$��L��L���M�}M�eM9��aI�@���3H������&H��ƒ����������L9���M�wM�t$A���L��H���H����
L��L�������
I�$��`H��`��
I���`H��`��
L��L����
I���������I�$�ƒ���t��I�$L��L���M�}M9���M�eL��L����������I�E��`H��`���I�$��`H��`����L��L�������D�4�I�ƃ�H�D$��I�����t|I��ƒ���t��I�L��L���I�WI9���M�wL��L��H�T$ �H�T$ ��uPI���`H��`uDI���`H��`t8L��L��H�T$ �H�T$ �!DL��L���I�WM�wI9���H�z@��uRH�����tIH�������t<��t7��H�T$ �H�T$ H9�uH�JH��I�NH��������4H�T$(�H�T$(H����H�D$ �+H�������H��ƃ���t��H�H��H��H�T$0H�L$(�H�T$0H�L$(L�BL9��8H�JH��H��L�D$8H�L$0H�T$(�H�T$(H�L$0��L�D$8uFH���`H��`u:H���`H��`t.H��H��L�D$8H�L$0H�T$(�L�D$8H�L$0H�T$(DI�x@����H�������H��ƃ����|��tw��L�D$8H�T$0H�L$(�L�D$8H�L$(H�T$0L9�uJM�@�c@H��H��H�T$0H�L$(�H�T$0H�L$(L�BH�JL9��h���H�I��L��H�T$0H�L$(�N�H�T$0H�L$(I��L�AA��u~I������tuH��L��H�T$0H�L$(L�D$8�H�L$(H�T$0��uMH�L�D$8��`H��`u<I���`H��`t0H��L���H�T$0H�L$(�f�H������������u	H�R��t�H�z@��u&H�����tH��ƃ���t�����H��H�L$(�s�H�L$(H��H���H�AH�|$ �nH��H��tEH�1������H�Q��u+H�����t"H��׃���t��H	�H�1f�I�NH��t�f�I�������A�����u
M�A��t�I�@��u$H�����tH�������t����D�4�H����H�D$ �eH�������XH��ƃ���t��H�H��L��H�L$(�M�GH�L$(M9���I�OH��L��L�D$0H�L$(�H�L$(L�D$0��uI���`H��`��@I�x@��u&H�����tH��ƃ���t�����L��H�L$(���H�L$(I��L�AA��u)I������t �I�������A�����u
M�A��t�I�@��u$H�����tH��ƃ���t���"DL��H�L$(�K�H�L$(I��M����H�AH�|$ ��H�������
H��Ѓ�����H�A�u H�����tH��ƃ���t%H	�H�L��H�L$ �H�L$ H��4� I�F4@H�|$��L��H��tCI��ʃ����:I�V��u)H�����t H��փ���t��H	�I��M�t$�v���fDI�@��u6H�����t-H�������t ��t���L9�uI�o�����4�H�Ń�H�D$uyH�����tpH�E������t��H�EL��H���M�oM9���I�oH��L�����uLI���`H��`u@H�E��`H��`t3H��L����&f.�L��H���M�oI�oM9��tI�}@��uJH�����tAH�������t4��t/���L9�u M�eL�eA����L��H����f��4�I�ă�H�D$��I�������I�$������t��I�$L��L���M�uM9��;M�eL��L�����u(I�E��`H��`uI�$��`H��`tL��L���I�~@���BH������5H��ƃ����$������L9��M�FM�D$A��u2L��H��f�H��t$�VfDI�������A�E����u
M�mA��t�I�}@��u#H�����tH�������t
����@L����I��M���|
I�D$H�|$�L��H��tFI�4$�������I�L$��u*H������t!H�	�σ���t��H	�I�4$�L�eH����M�gA��t(�l	@A�$�����X	M�d$A���I	I�����u�M���7	H�L�8M���H�EH�|$��H��������H�U�Ѓ����9H�E�u)H�����t!H�������t%H	�H�U�H���H��4��H�C4�c�L��L���M�uM�eM9�����M�d$�C���f.��4�I����H�D$ ��I��������I��ƃ���t��I�L��L��L�D$(�M�NL�D$(M9��*M�FL��L��L�L$0L�D$(�L�D$(L�L$0��uI���`H��`�w@I�y@��u&H�����tH��ƃ���t����L��L�D$(�[�L�D$(I��M�HA��u)I������t �I������[A�����u
M�vA��t�I�~@��u$H�����tH��ƃ���t����DL��L�D$(���L�D$(I��M����
I�@H�|$ ��
L��H��t=I�0������\I�H��u#H������tH�	��t
��H	�I�0�M�D$�F���fDL��L��L�D$(�M�NL�D$(M9�M�F�����M�@�����H��H������5�H���`H��`�%�H�E��`H��`��H��H�����@M�d$M�}A��t&�@A�������M�A����I�����u�M����H�L�(M���1I�D$H�|$�	L��H��tPI�$�ʃ����H��r7�I�T$��u&H�����tH��փ���t��H	�I�$L�cH�����L��H��������H���`H��`���I�$��`H��`���L��H����s��I�@��u6H�����t-H�������t ��t���L9�uM�o���4�I�Ń�H�D$��I�������I�E������t��I�EL��L���M�wM9��_M�oL��L�����u(I���`H��`uI�E��`H��`tL��L���@I�~@���rH������eH��ƃ����T���K���L9��8M�FM�EA��u2L��H��H��t#�fDI�������A�����u
M�A��t�I�@��u$H�����tH��ƒ���t���DL���0�I��M����I�EH�|$��I������l���I�U�Ѓ����
I�E�u)H�����t!H�������t%H	�I�U�L���I��4��I�D$4����L��L���M�wM�oM9������M�m�����4�I����H�D$ ��I��������I��ƃ���t��I�L��L��L�D$(�M�NL�D$(M9��'M�FL��L��L�L$0L�D$(�L�D$(L�L$0��uI���`H��`�W@I�y@��u&H�����tH��ƃ���t�����L��L�D$(��L�D$(I��M�HA��u)I������t �SI������sA�����u
M�vA��t�I�~@��u$H�����tH��ƃ���t����DL��L�D$(�#�L�D$(I��M���I�@H�|$ �L��H��tEI�0�������I�H��u+H������t"H�	�σ���t��H	�I�0f�M�E�����L��L��L�D$(�M�NL�D$(M9�M�F�����M�@�	����L�c���M�eL��L�����uI�E��`H��`�MM�d$L��L����D����M���I�H�H�H���gI�F�?��H���H��4�p���H��H�����H�k���f.�I�|$@��u%H�����tH��ƒ���t����fD�4�I��I��A����H�������H��ƒ���t��I�L��L���M�t$M9��r
M�|$L��L�����uI�$��`H��`�lf�I�~@��u&H�����tH�������t���T
�L�����I��M�wA��u,I�����t#�
DI������+A�$����uM�d$A��t�I�|$@��u)H�����t H��ƒ���t����f.�L���X�I��M���I�GM����I������A���I��Ѓ����	I�G�u%H�����tH�������t%H	�I�DH���I��4�!H�E4��M�t$���fDL��L���M�t$M9��'M�|$���DM���)���H�L�8�S���L�e�<��L���I��4�����L��L�����M�l$����f�M���J�H�L�(�s��H��L��H�L$(�M�GH�L$(M9�I�O���H�I�a��H�m���I�N���H����H�H��M��H���I��4�����H��L���S��L�}��f.�M�����H�L� �����M�v���L���I��4��I�E4�����L���I��4�I�D$4�m�M�D$��fDM�������H�L�0�����M�E�g����M�����H�L�0����M���!�H�L�8�U��L��H�L$ �H�L$ H��4���H��L��H�L$ �$��H�L$ I�N��fDH��H�T$0H�L$(�H�T$0H�L$(H��4�H�A4���DL��L������M�l$A���[�I������N�L��L������;�I�$��`H��`�*�I�E��`H��`��L��L����	�@L��L���]��M�}A���s���I������f���L��L������S���I�E��`H��`�B���I���`H��`�2���L��L����"���fDL���I��4�?I�G4����H��H��H�L$0H�T$(����H�T$(H�L$0H�Q�����H��������H��H��H�L$(H�T$0�H�L$(���d�H�H�T$0��`H��`�O�H���`H��`�?�H��H���H�L$(�*�@M�|$M�����f�H��H�L$(�I��4H�L$(��H�A4���L��L�D$(�I��4L�D$(��I�@4�U��L��L�D$(�I��4L�D$(�I�@4����L��L�����M�gA�������I������}���L��L������j���I���`H��`�Z���I�$��`H��`�I���L��L����9���D�H�������@H��L�����H�L$(L�yA����I�������H��L���H�L$(�����H���`H��`���I���`H��`���H��L���H�L$(���L��L�����L�D$(M�pA�������I����������L��L���L�D$(�������I���`H��`�����I���`H��`�s���L��L���L�D$(�^����L��L�����L�D$(M�pA�����I������s�L��L���L�D$(���[�I���`H��`�K�I���`H��`�;�L��L���L�D$(�&��H�]H��H�����uH�E��`H��`�H�[H��H����L��L��H������R�H�E��`H��`�A�I�$��`H��`�0�L��H���� ��H�������@H��L��H�L$ ����P�I�H�L$ ��`H��`�;�H���`H��`�+�H��L������H������`�@�H���	����@L��L��L�D$ ������I�$L�D$ ��`H��`���I���`H��`���L��L����{�f�L��L��L�D$ ������I�EL�D$ ��`H��`���I���`H��`���L��L�����f��H�������@�H���	�������@I�oH��L�����uI���`H��`��H�mH��H����~�L��L���������I���`H��`�����I���`H��`���L��L�������fD�H������T�@�H������`�@�H�������@M�wL��L�����uI���`H��`�M�vL��L�����H��L��H�L$(L�D$0�H�L$(���?�H�L�D$0��`H��`�*�I���`H��`��H��L���H�L$(��DL��L��L�D$(L�L$0�L�D$(���N�I�L�L$0��`H��`�9�I���`H��`�)�L��L���L�D$(��@L��L��L�D$(L�L$0�L�D$(�����I�L�L$0��`H��`���I���`H��`���L��L���L�D$(�l�M�oL��L�����uI���`H��`�M�mL��L����-����L9����M�|$��M�eL��L�����uI�E��`H��`��M�d$L��L����P�H�JH��H��H�L$0H�T$(�H�T$(H�L$0��uH���`H��`��H�IH��H��H�T$0H�L$(�H�L$(H�T$0�/����L9��5�I�O��M�|$L��L�����uI�$��`H��`�LM�L��L��������L9����M�v��I�OH��L��H�L$(�H�L$(��uI���`H��`�cH�IH��H��H�L$(�H�L$(�����L9����M�������L9��=�M�m�?�M�FL��L��L�D$(�L�D$(��uI���`H��`��M�@L��L��L�D$(�L�D$(�A�M�FL��L��L�D$(�L�D$(��uI���`H��`�AM�@L��L��L�D$(�L�D$(�>���L�D$0L�L$(�L�L$(L�D$0I9����M�I�����L�L$0L�D$(�L�L$0L�D$(L9��W�M�I�c���L�D$0H�L$(�L�D$0H�L$(L9����M�@����H�T$0H�L$(�H�T$0H�L$(H9��'�H�R�3�H���`H��`����H��H����������L9���M�d$���L�D$(�L�D$(L9���M�v� ���H�L$(�H�L$(L9����M������L�D$(�L�D$(L9���M�v��I�$��`H��`���L��L�����H�E��`H��`��H��L������I���`H��`���L��L����}�I���`H��`���L��L��L�L$0L�D$(�L�L$0L�D$(�y�H���`H��`�A�H��L��L�D$0H�L$(�L�D$0H�L$(��I���`H��`�}�L��L��L�L$0L�D$(�L�L$0L�D$(�Y�I���`H��`����L��L�������I�$��`H��`�d���L��L����T���I�E��`H��`���L��L�������H���`H��`�o���H��H��H�L$0H�T$(�H�T$(H�L$0�K���I���`H��`�����L��L������I���`H��`�����L��L��L�D$(�L�D$(���I���`H��`�:���L��L��L�D$(�L�D$(� ���H���`H��`�����H��L��H�L$(�H�L$(�s���H��L��H�L$ �m���H�L$ I�NH����������H��L��H�L$ �������I�H�L$ ��`H��`����H���`H��`����H��L������H���H��4���H��H�����H�k@���!��H��������H��H��������H���`H��`����H�E��`H��`����H��H�������H��H��胿��H�k�H��L���r���L�}I��������L��H��������H�E��`H��`���I���`H��`���L��H�����L���I��4���L��L������M�l$A�����I��������L��L��������I�$��`H��`�{�I�E��`H��`�j�L��L����Z�L��L��蔾��M�l$�H���I��4���H��L���p���L�}A��������L��H�L$ �H�L$ H��4����H��L���6���H�L$ I�N���������ff.�@USH��@�����H��������@����@��t/H���%H����H���"H��H�=1���H�����tȋ�����H����H�k@��u H�����tH�E�ƒ���t	����H��H���H��H��H����ƒ���tO����H������t,H�MH��H��[]�fDH�H�(H���:���H��H��[]�f�H��uúH�����t�H�M�΃���t��H�MH��ƒ���u��f�H�H�(�@H�H�(�@H���Z���H������M�������H���H9������H��ƒ����^�����t�@H���������H�U�у���~��H�UH��ƒ��Q�����H��������H�H�5H�81�����USH��H��H��u
H�H�H���H�sH��H���H��H��[]���UH��SH��H��H��u
H�H�H�5H��tH��H��H�ߺ[1�]�D�	H�=�H��H���ff.���AVI��AUATI��US�L�-H��H��I�}���ugM��tJL��H���H��H��H���H��H���I�}H��H���H��L���H��[]A\A]A^�L��H�=1���DI�}H���H�èu;H�����t3�����u)H�{�L9�t�H�L��H�5H�81��H�L��H�5H�81��ff.�@��AUI��ATI��UH��SH�������M��tWL��H���H��H���L��H��H���H��H��L���L��H���H���H��H��[]A\A]�@H���L��H���H��H�=H��1���}���@H��L���H�èu<H�����t4�����u*H�{�L9�t�H���H�5H��H��1��H���H�5H��H�H�81��ff.�@��UH��SH��H��H���H��H��H��H��[]�@��U�SH��H�H�0�����H���H���H�CH�H��H�] H��[]�@��UH��SH���H��H��H���H��H��[]�fD��ATUS�L�%H��H��I�<$���t1I�<$H���H�èuKH�����tC�����u9H��[]A\�@H���H��H��H���I�<$H��H���H��[]A\�H���H�5H��H�H�81�����ATI��UH��S���t1H��L���H�èu^H�����tV�����uLH��[]A\�DH���H��L��H��H���H���L��H��H���H���H��[]A\�H���L��H���H��H�5H��H�H�81�����SH��H���H��[H���@��AWAVAUI��ATUH���SH��H�H�0���H�ËE����uH�mL�eI�|$��I�D$H����I�L$H�SM�d$8H�BH�JL���H���I�D$ H�C M����H�CE1�I��A��uXH�����tO�E������H�kH��H�����u1H���`H��`u%H�E��`H��`tH��H�����H�k��u5H�����t,H��у�����M�����M��u����H��H��[]A\A]A^A_�H��M���A��I��4uH�C4A��'����H��L���%���L�kM������I����������L��H��������H���`H��`����I�E��`H��`����L��H��������H��r	M���<�H��H�Ѓ�����f��I�D$L�eI�D$H��� ���@�I�D$L�eI�D$�����L�}L�{A�������I����������L��H������r���H���`H��`�b���I���`H��`�R���L��H����B���fDI������i���I�E�������W���%H	�H��G���f�H���������H�E�ƃ���t%H	�H��у�������������f�H�����u����f�AWI��AVI��AUATUSH��H��(H�GH�@8H�h H��tH�mM����H���D$E1�H��H�D$@I�GL9x8�H��tI�G H��t	H;(��H�SH��t>1��"fD��uI�G H9B �UH�RH��t�����u�H�R�H��u�I�vL���I��H����I�FH�D$A�������L��L���!�����u$H�|$tH��ƒ���t�Ā�wfDI�G H��tH�H��tH�@�����DD$�D$I�GM��H�@H��tH�@�����DE�M�M�������D$����E�����D$H��([]A\A]A^A_�I�L���l����F����L���L���H�D$I��4u7I�F4H�D$����M���LD�M���M����u����L��L���E���H�|$M�n�����I����������L��L����������I���`H��`�����I�E��`H��`�y���L��L����i��������H���E���������H���I� H��tH�?H��H�5ɭ���H�|$�`���I������S���I�E�ƒ����A���H
I�E�2����D$��������D$�����ATUH��SH��I���A��u	H�����uk�H���@��u8H�����t/H�U��у����H��H�Ѓ�M��u	��u5DH�EH��H��H�p8�m�����x=[]A\�@�����u��@H�����t�H�������t�%H	�H�U�H�H�5H�81��@��AUATUH��SH��H����H�����u	H�����u4H�CH;X8��H��H��H��������_uVH��[]A\A]�H��Ѓ����H��r�@��u�H�����t�H�E������t�%H	�H��fDH��H��[]A\A]�fDH�޿���H��I���L�kM��uwI�D$M����H�CH�CL�`8H�C �I�D$ �I���I�EI�EL�k I�|$ H��tH�?H��H�5c�������f�L���I��4uI�D$4�v���@L��L�����M�l$A���X���I������K���L��L������8���I�$��`H��`�'���I�E��`H��`����L��L�������@H���I��4uH�C4���DH��L���U���L�cA������I���������L��H�����uH���`H��`tLH�CL��H��L�`8��������H���`H��`�����I�$��`H��`�~���L��H����n���I�$��`H��`t�L��H����H�H�5H�81�����ATUSH���I��H�CH�h8DH�[H��t7H9�t�����u�H�s@��u�H�����tՋ����u�L����L��[]A\����UH��SH��H��H���H�EH��u�&�H�@H��t�����u�H9Xu�H��[]�ff.���USH��H���H��H��u�6@H�CH9X8t6H�[H��t�����u�H�sH���H�[H��u�H��H��[]�@H��H������E1��@��ATA��UH��SH��H���D��H��H��E1�[H��]A\�ff.�@��ATA��UH��SH��H���D��H��H��A�[H��]A\�ff.����ATA��UH��SH��H���D��H��H��A�[H��]A\�ff.����SH��H���H��A�1ɺH��[����H��t&H��t�H��t&�DH�H��DH�H��DH�H��D��H�uGH�GH��t>H�@H�@8H��t1�u-H�����t%H��у���tH�с�H��u��H��ff.���USH��@��u`H�����tWH�o@��u5H�����t,H�E�ƒ���t��tH����H���H9�t	@�H��H��[]�f�H��tH��t-H��u�H�H�(��H�H�(H��[H��]�@H�H�(H��[H��]�@��AWAVAUATUH��SH��H���H��@��uH�����tH�E����tH��HH��[]A\A]A^A_�fDH�{@��u.H�����t%H��ƒ���t��t���H9�t�@�4�H�Ń�H�D$��H�������H�E�ƒ���t��H�EH��H���L�kL9��kH�kH��H�����u(H���`H��`uH�E��`H��`tH��H���@I�}@���BH������5H��ƒ����$������L9��M�eL��L�eH��A��uH���nL�{A��t"��A�������M�A����I�����u�M����H�L� M���S*H�EH�|$�R���H������E���H�U�Ѓ�����H�E��'���H���������H��������
���%H	�H�U����H��H���L�kH�kL9������H�m�����4�I�ă�H�D$�ML��L���M�}M�eM9���I�@��u'H�����tH��ƒ���t���H��4�I�ƃ�H�D$�EI������8I��ƒ���t��I�L��L���I�WI9���M�wL��L��H�T$ �H�T$ ��uI���`H��`��#H�z@��u&H�����tH�������t������4H�T$(�H�T$(H����H�D$ �KH�������>H��ƃ���t��H�H��H��H�T$0H�L$(�H�T$0H�L$(L�BL9���H�JH��H��L�D$8H�L$0H�T$(�H�T$(H�L$0��L�D$8uH���`H��`�$fDI�x@��u&H�����tH��ƃ���t�����L��H�T$0H�L$(足��H�T$0H�L$(I��L�AA��u&I������t��H������������u	H�R��t�H�z@��u&H�����tH��ƃ���t����!�H��H�L$(�3���H�L$(H��H���jH�AH�|$ �NH��H��t<H�1������H�Q��u"H�����tH��׃���t��H	�H�1I�NH��t �I�������A�����u
M�A��t�I�@��u$H�����tH�������t���aD�4�H����H�D$ �]H�������PH��ƃ���t��H�H��L��H�L$(�M�GH�L$(M9��_I�OH��L��L�D$0H�L$(�H�L$(L�D$0��uI���`H��`�R"I�x@��u"H�����tH��ƃ���t����L��H�L$(蛱��H�L$(I��L�AA��u)I������t �pI�������A�����u
M�A��t�I�@��uH�����tH��ƃ���t	��� L��H�L$(� ���H�L$(I��M���EH�AH�|$ �AH�������)H��Ѓ�����H�A�u H�����tH��ƃ���t%H	�H�L��H�L$ �H�L$ H��4��#I�F4�H�|$�4
L��H��tCI��ʃ�����I�V��u)H�����t H��փ���t��H	�I��M�t$H����M�}A��t%�A�������M�A���{I�����u�M���iH�L�(M���M#I�D$H�|$�1L��H��tHI�$�ʃ�����I�T$��u,H�����t#H��փ���t��H	�I�$f�L�e����I����������I�$�ƒ���t��I�$L��L���M�}M9��
M�eL��L������~���I�E��`H��`�m���I�$��`H��`�\���L��L����L���DI�@��u&H�����tH�������t���w��4�I�ă�H�D$��I�������I�$������t��I�$L��L���M�wM9���M�gL��L�����uI���`H��`��I�~@��u&H�����tH�������t������4�I�Ń�H�D$�m
I������`
I�E������t��I�EL��L���I�NI9��1M�nL��L��H�L$ �H�L$ ��uI���`H��`�-fDH�y@��u&H�����tH��ƃ���t������4H�L$(�H�L$(I����H�D$ ��
I��������
I��ƃ���t��I�H��L��H�L$0L�D$(�H�L$0L�D$(L�IL9���L�AL��H��L�L$8L�D$0H�L$(�H�L$(L�D$0��L�L$8uH���`H��`�|I�y@��u$H�����tH��ƃ���t���<DL��H�L$0L�D$(�V���H�L$0L�D$(I��M�HA��u&I������t��H�������������u	H�I��t�H�y@��uH�����tH��ƃ���t	����H��L�D$(�ګ��L�D$(H��H���(I�@H�|$ �ML��H��t<I�0�������I�H��u"H������tH�	�σ���t��H	�I�0M�EH��t�f�I�������A�����u
M�vA��t�I�~@��u$H�����tH�������t���aDL������I��M���#
I�EH�|$�8L��H��t?I�u������}I�M��u$H������tH�	�σ���t��H	�I�u�M�l$H���zM�wA��t%�A�������M�vA����I�����u�M����H�L�8M���xI�D$H�|$��I��������I�$�Ѓ����

I�D$�u!H�����tH�������t%H	�I�$H���I��4�qH�E4�k�L��L���M�wM�gM9��t���M�d$����f.�L�e����I�@��u&H�����tH�������t������4�I�Ń�H�D$��I�������I�E������t��I�EL��L���M�wM9���M�oL��L�����uI���`H��`�f�I�~@��u&H�����tH��ƃ���t������4�I����H�D$ �%I�������I��ƃ���t��I�L��L��L�D$(�M�NL�D$(M9��LM�FL��L��L�L$0L�D$(�L�D$(L�L$0��uI���`H��`��I�y@��u"H�����tH��ƃ���t����L��L�D$(�ӧ��L�D$(I��M�HA��u)I������t �I������\A�����u
M�vA��t�I�~@��uH�����tH��ƃ���t	����L��L�D$(�X���L�D$(I��M���T	I�@H�|$ �L��H��t<I�0������	I�H��u"H������tH�	�σ���t��H	�I�0M�EH��t�p
I������A�����u
M�A��t�I�@��u$H�����tH��ƒ���t����DL��舦��I��M����I�EH�|$��I������|���I�U�Ѓ�����I�E�u!H�����tH�������t%H	�I�UL���I��4�3I�D$4�3���L��L���I�WM�wI9���M�v�;�M���9�H�H�H���'I�F�����H���I��4����H��L���K���L�e�,�f�I�~@��u&H�����tH��ƒ���t������4�I��I��A���FH������:H�������t��I�L��L���I�NI9��M�~L��L��H�L$�H�L$��uI���`H��`��f�H�y@��u&H�����tH��ƃ���t���+�H��蘤��H��I�O��u,H������t#�fDI������A�����u
M�vA��t�I�~@��uH�����tH�������t	����L���%���I��M���I�GM����I����������I��ȃ�����
I�G�u H�����tH��ƃ���t%H	�I�L���I��4��I�D$4�m���f�L��L���M�wM�oM9������M�m���L��L���I�NM�nI9����M�m����M�t$��fDH��H��H�T$0H�L$(�H�T$0H�L$(L�BH�JL9���H�I���M�d$���fDL��L���I�NI9���M�~���M������H�L�8�2����M�l$����fDL���I��4�����L��L���C���M�l$��M���2���H�L�0�\����L��L��L�D$(�M�NL�D$(M9�M�F�.���M�@����H��L��H�L$0L�D$(�H�L$0L�D$(L�IL�AL9��j���M�@�����H��L��H�L$(�M�GH�L$(M9�I�O���H�I�a�I�N��H���>�H�H��t���H������Y�@L���I��4�����L��L���#���M�|$�$���M�������H�L�0����L��H�������H�E��`H��`�n�I�$��`H��`�]�L��H����M�@L���I��4�aI�E4�e���L���I��4��I�E4����L��H�L$ �H�L$ H��4��H��L��H�L$ �N���H�L$ I�N���M���!�H�L�8�P�M�E����H���F�H�H��u�M�������H�L�0����M�E�^���L��L���ې��M�uA������I���������L��L��������I�E��`H��`���I���`H��`���L��L������@H��H�T$0H�L$(�H�T$0H�L$(H��4��H�A4�k�L��L���:���M�}A�������I��������L��L���������I�E��`H��`����I���`H��`�����L��L�������H������^�@L���I��4��I�G4����H��H��H�L$0H�T$(茏��H�T$(H�L$0H�Q�����H��������H��H��H�L$(H�T$0�H�L$(���l�H�H�T$0��`H��`�W�H���`H��`�G�H��H���H�L$(�2�@L��L�������I�$��`H��`���I���`H��`���L��L������@M�~M����L��L�D$(�I��4L�D$(�&I�@4���H��H�L$(�I��4H�L$(�~H�A4��L��H�L$0L�D$(�H�L$0L�D$(H��4��I�@4��L��L���#���M�wA���D���I������7���L��L������$���I���`H��`����I���`H��`����L��L�����D�H�������@H�kH��H�����uH���`H��`�.H�mH��H�����L��L���f���L�D$(M�pA���T���I������G���L��L���L�D$(���/���I���`H��`����I���`H��`����L��L���L�D$(��f�H��L�����H�L$(L�yA����I��������H��L���H�L$(�����H���`H��`���I���`H��`���H��L���H�L$(���L��H��L�D$0H�L$(�[���H�L$(L�D$0I�H�����H���������L��H��L�D$(H�L$0�L�D$(�����I�H�L$0��`H��`��H���`H��`�o�L��H���L�D$(�Z�L��L������s�I�$��`H��`�b�I�E��`H��`�Q�L��L����A��H������R�H��L��H�L$ �����I�H�L$ ��`H��`���H���`H��`���H��L��������H���9���@�H������o�@���L9��}�M�g��M�eL��L�����uI�E��`H��`�e	M�d$L��L������H��������L��L��L�D$ ����h�I�EL�D$ ��`H��`�R�I���`H��`�B�L��L����2�f.�L��L��L�D$ ������I�EL�D$ ��`H��`�z�I���`H��`�j�L��L����Z�f����L9����M�wM�t$A�����L��H�����H���������f.�H��L��H�T$0H�L$(L�D$8�H�L$(H�T$0���+�H�L�D$8��`H��`��I���`H��`��H��L���H�T$0H�L$(���DM�gL��L�����uI���`H��`�<M�d$L��L������H���d��7�@�H�������@�H���y��I�@H��L��H�L$����h�I�H�L$��`H��`�S�H���`H��`�C�H��L����3����L9��-�M�o�����L9��a�M�nM�l$A�����L��H����M�wL��L�����uI���`H��`�}M�vL��L����k�H��L��H�L$(L�D$0�H�L$(�����H�L�D$0��`H��`�t�I���`H��`�d�H��L���H�L$(�O��L��L��H�L$8L�D$(L�L$0�L�D$(H�L$8���c�I�L�L$0��`H��`�N�I���`H��`�>�L��L��H�L$0�H�L$0L�D$(���L��L��L�D$(L�L$0�L�D$(���v�I�L�L$0��`H��`�a�I���`H��`�Q�L��L���L�D$(�<�@��H�T$ �H�T$ H9���H�JI�N����H��H��������L9��3�M�~�3�M�nL��L�����uI���`H��`�XM�mL��L�����M�oL��L�����uI���`H��`��M�mL��L����D����L9����I�O�+����L9��=�M�FM�EA����L��H�������H�L$ �H�L$ H9��Z�L�AM�EA���H�L��H����H�JH��H��H�L$0H�T$(�H�T$(H�L$0��uH���`H��`�H�IH��H��H�T$0H�L$(�H�L$(H�T$0����H�T$8L�D$0H�L$(�L�D$0H�L$(H�T$8L9��,�M�@�B�M�~L��L�����uI���`H��`��M�L��L����T����L9����M�v�����L9����M�����H�L$�H�L$H9����H�I��L�AL��H��L�D$0H�L$(�H�L$(L�D$0��uH���`H��`��M�@L��L��H�L$0L�D$(�L�D$(H�L$0���M�FL��L��L�D$(�L�D$(��uI���`H��`�M�@L��L��L�D$(�L�D$(��I�OH��L��H�L$(�H�L$(��uI���`H��`��H�IH��H��H�L$(�H�L$(����L�L$0L�D$(�L�L$0L�D$(I9��Z�M�I�f���H�L$8L�L$0L�D$(�L�L$0L�D$(H�L$8L9����M�I����L�D$0H�L$(�L�D$0H�L$(L9��(�M�@�4���H�T$0H�L$(�H�T$0H�L$(H9��`��H�R�l��H�E��`H��`���H��H�������I9��6�M�v�8�I�$��`H��`��L��L����	�I���`H��`�I��L��L��H�T$ �H�T$ �/����H�L$(�H�L$(L9�����M�������H�L$0L�D$(�H�L$0L�D$(H9����H�I�����L�D$(�L�D$(L9��7�M�v�C�I�$��`H��`�����L��L����z���I�E��`H��`���L��L�����I�E��`H��`���L��L��H�L$ �H�L$ ��I���`H��`�F�L��L���H�L$�1�I�$��`H��`�����L��L������H���`H��`����H��H��L�D$8H�L$0H�T$(�L�D$8H�L$0H�T$(���I���`H��`�s���L��L����c���H���`H��`����H��L��L�D$0H�L$(�L�D$0H�L$(�z��I���`H��`�2�L��L��L�L$0L�D$(�L�L$0L�D$(��I���`H��`�t�L��H��L�L$8L�D$0H�L$(�L�L$8L�D$0H�L$(�F�H���`H��`�M���H��L��H�L$(�H�L$(�3���I���`H��`����L��L��L�D$(�L�D$(���I���`H��`�Y���L��H��L�D$0H�L$(�H�L$(L�D$0�5���I�E��`H��`�#���L��L�������H���`H��`����H��H��H�L$0H�T$(�H�T$(H�L$0���I�E��`H��`�����L��L������I���`H��`����L��L������L��L���s~��M�|$I������l�L��L������Y�I�$��`H��`�H�I���`H��`�8�L��L����(�H��L���~��L�eI���������L��H���������H�E��`H��`����I�$��`H��`����L��H������H��L��H�L$ �}��H�L$ I�NH�������F��H��L��H�L$ ����.��I�H�L$ ��`H��`���H���`H��`�	��H��L������L���I��4�i�L��L���,}��M�l$A������I���������L��L������p��I�$��`H��`�_��I�E��`H��`�N��L��L����>��H���I��4�+�H��L���|��L�eA���������L��L���|��M�l$�i���L���I��4��L��L���i|��M�|$A���e����L��H�L$ �H�L$ H��4����H��L���.|��H�L$ I�N�������t������ATA��UH��SH�����D��H��H��H��[]A\�D��AUA��ATI��UH��SH��H���H��D��L��H��H��[]A\A]�fD��H���H��H��H�8�D��ATI��USH��H���L��H���H��H��[H��]A\�ff.�f���ATA��U��SH��H���D���H��E1�[H��]A\����H�5SH��H��t|��tW�����؃�����H��������H�{1��H��1�H��tH�RH��t�:tZ[��H�����u�H��tYH��u�H�H�8뷾H�=�H��H��d���H�H�8�@H�H9B��[���DH�H�8�`���f�H�H�8�H����H�H�8�8����H�H�8�(������UH��SH��H��H��� txH��H�V��H��u7H�
H�H��H�=1��H��H�H�8H��[]�@�H�=�H��H���H�H����H�~u�H�V ���ATUSH��H�H�$H�D$H�CH��t
H�@����uH�H��H��[]A\�f.�H��H��I���L��H�5�w��H���L�d$L�eM��tH�H�[H;uH�$H��H��[]A\�f�I�\$��u�H�����t�H��L�����u�I�$��`H��`u�H���`H��`t�H��L�������AWA��AVAUI��ATI��USH��xH�L$XL�D$`L�L$h�:H�D$ ��D$L��Å����1��D$<*�kE1�<:u�BA�H���D$<&u�D$�B�����+�D$D9���H��$��D$(H�D$0H�D$@H�D$8}-E��t(E�o�Ic�I�<�H���S�L$�����E��L�L$8�����S�H�|$0L��E1�M�T��T$(E1�I���։T$�(��A���L�H�	H��tH�H�H��L9�t��/v�L��A�I������T$E��t�t$(��E��tL�D$0L��D��D$E1�E1�)��-��A���L�H�	9�~2H��t
Lc�O��L�������~*��/v�H��A�H��H�	9��H��t�H���E��t�T$(E��tH�|$0�T$������~rH�|$8݋T$(E1�H�L$0E1��,D��A���H�H�H��t
Hc�I�4�H�0��9�t��/v�H��A�H����DE��t�T$(E��tH�L$0��E��t+�D$(��/���ƒ�HT$8�D$(H�H��tH�T$ H��D$����A9��]H��xD��[]A\A]A^A_�@E��D$(A)�D��)߃�/���ƒ�IщD$(I�����H��H�T$tHc�Hc�I�4��H�T$H�D������A�}A�]���0I�U�D$�����A�EA�}��0�D$�I�U������A�mI�UA�E�D$��0����fD�D$(��/���ƒ�HT$8�D$(H�*�����H�E���L�L$0I�AI�H�D$0������H��H�T$�����H�T$H�����H�T$0H�BH�D$0�z���D�H�D$ H�������H�|$ �H�|$ �ED�H��HD�H�D$ ���f.�H�T$0H�BH�*H�D$0����5����H�E����@�D$D$D9��:����2���f.��zH�T$�H�T$����u'�B�D$H���g���f�1ۋT$(H�|$0�|����j�BH���D$��0�9���E�����|$u�T$T$�t$D���L��H�=1��f�AWA�AVM��AUATA��U��SH��H���������D�|$I��H�$��H��tkDH�C H��tH�8H��tL��H�5}p���H��Ѓ���u@��u+E��t!��uH�����t��t��uf�E��t	H�[H��u��H�<$L��H��H���H�<$�H��H��[]A\A]A^A_�H��H�1�1��H�$�����&���H�C1�H�@8H9�H��@��E1��
�����L�q��1�����ff.���L�%q��1����ff.���L�5q��1����ff.���L�Eq��1��n���ff.�����t7��uR�Ѓ���thH��tr��t}H�RL��p����(����H�����u�H��t!H��u�H�H���H�H��@H�H��@H�H��@H�H��@H�H��x��������t7��uR�Ѓ���thH��tr��t}H�RL�"p����x����H�����u�H��t!H��u�H�H���H�H��@H�H��@H�H��@H�H��@H�H��x��������t7��uR�Ѓ���thH��tr��t}H�RL��o��������H�����u�H��t!H��u�H�H���H�H��@H�H��@H�H��@H�H��@H�H��x������ATUSH��H�� ����H�D$���_�����؃�����H��������H�[H�CH�h8�1�H�D$H�D$H���‰T$H��������H������H��у����
���H�U H��t"H�:H��tH�T$H�5_l���H�D$H��H��toH�[H��tf��uaL�d$f�H�����tJH��Ѓ���t=��u��u3H9�t H�C H��tH�8H��tL��H�5�k���H�[H��t��t��H�|$H�5,m��H��H���H�|$�H�� H��[]A\�H����������H��tUH�������H�H����DH���1����DH�L$H�1���@���H�H��h����H�H��X����H�H��H����H�H��8���H�H��)���f�������u	H�����tX��t3��u^�Ѓ���tdH��tn����H�RL�l�������H�����u�H��tQH��u�H�H��Ͽ�fDH�H��@H�H��@H�H��@H�H�����H�H��p���P�1��@��AW�A��AVI��AUM��ATI��USH��HH���L$(LD��D$,��y���D$,�L$(M��t*�D$(B�8��~��L��I�T�H�4H��H9�u�E���A�G�1�H�$H�D$8H�D$H�D$0H�D$�&f.�L��H���H�EH;,$��H��I�<��I��M��t6H�D$0L��H�D$M��tI�H�T$H�t$H���L�D$���mH��u��L�D$�L�D$H���{����L�D$H�T$H��L���L�D$��t�H�EH;,$�`����H���3D�|$�T$(M���D$�D$��������H�D$81�H�$H�D$0H�D$�>f�L���H�$H�t$H�����tH�D$8I�D��D$��9l$(~KB�\=Hc�I�<��H�D$0M��u�L��H�D$ �H�$H�t$ H�����u���9l$(�D�D$,��u$�|$tI�D$H��t7H�@1�H��M��t0H9�rX�D$H��H[]A\A]A^A_ÐH�D$8I�D��,����M��u�1��T$���D$����H�=H���H���L��D|$(�H��E��~6A�G�I�l�H�D$8H�$I�>I���H�4$1�H��H�D$8�I9�u�H�=tCH�51�1�1�L����uH�����t
�����t2H�H�5H�81���H�=�H��H�=H���H���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignsuperclass must be a Class (%s given)can't make subclass of singleton classsuperclass mismatch for class %sno super class for `%s', Object assumedno super class for `%li::%li', Object assumedcan't make subclass of Classcan't copy the root classalready initialized classcan't copy singleton class__tmp_classpath____classpath____classid__BasicObjectObjectModuleClasscan't define singletonunknown immediate %pinherited%s is not a class%li is not a class%li is already defined%s is not a module%s::%s is not a modulecyclic include detectedcyclic prepend detectedto_ss, %s keyword%s: %libad scan arg format: %s01missingkeysunknown keywordunknownGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�$XA�I�G DAADHQ<\�F�E�B �A(�A0�g
(D BBBHL��F�B�D �D(�D0F
(C ABBFi
(C ABBG(�fF�D�D �h
CBEA�L4+\NL#TNd#TN|#TN$�XA�I�G DAA$��A�G�N }DAH�F�B�J �B(�D0�A8�G@T
8C0A(B BBBHH0F�B�B �B(�D0�D8�G`c
8C0A(B BBBF|�QR�oG��QR�oG�$�5E�A�D hAA�+E�e+E�e8(oF�B�I �A(�D0�
(D ABBF$dPA�G�D ~DA��Hq
A�#E�Y$�}f�G QF�T �@��F�B�B �A(�A0�D@h
0D(A BBBE00D�F�A�D �G0�
 DABG8xhB�B�A �A(�L0�
(D ABBE`�@F�K�B �A(�A0��
(A BBBBX
(A BBBA�
(A BBBFH�,F�B�B �B(�A0�D8�D�W
8D0A(B BBBG4d)A�A�D �
DAGX
DAC$�=E�A�G jDA(�eE�D�G _
LCJ<�F�E�B �D(�A0�f
(A BBBA80!F�E�D �D(�D0[
(D ABBE$l,E�D�J IJA$�LE�F�D zAA$�*E�D�D WDA8��F�A�A �H
ABEi
ABA4 �F�D�D �q
ABF{
ABAXE�OHtNF�B�B �E(�A0�I8�D@%
8D0A(B BBBAH�B�E�E �B(�A0�A8�G`�
8A0A(B BBBD,�F�A�D �}
ABEL<�F�B�A �D(�G0J
(A ABBDL
(D ABBK(�hF�A�A �\AB$�UE�D�O zAA(�mE�A�G I
DAE	( 	1F�D�D �XDB(L	4F�D�D �[DB(x	4F�D�D �[DB�	)E�_�	K�	U<�	�E�A�D W
DAJn
ADENADH(
�,F�B�B �B(�A0�D8�D�g
8D0A(B BBBG(t
+F�D�D �UAB4�
:F�E�D �D(�G0I(M ABB�
(�
3F�D�A �]DB(/F�D�C �WDB DL�[
I_
I(h�E�D�G E
AAI@��F�A�A �D0r
 DABKF
 DABCL�^F�E�B �E(�D0�A8�D��
8D0A(B BBBEH(B�H�E �B(�D0�C8�GP�
8D0A(B BBBAt���������0
.F�A�A �G@n
 DABD4
��LL
�F�J�E �E(�D0�A8�D�Q
8A0A(B BBBB	'< Uo!��"��#�#XQXrX�z�`�z#��7U�� �q��V��f�V�u	`!u>�Y�+g�����#�����#23Q#c3���@X���9
��93BN@\Bz\�P�\�u�u"�U��1�1�uu9�a������O	�O	�	1P	P?�	c*
�*
�S
�S
��
	�
B	�
s	�
�	�
�	�
�	�		(
	 1
	J
h
�#�h�
��
0�
0�
!E
!E,YGL0E)_YG��G��G�H�	�HI8I`AJ�AJ�|J�|J��J
�J)
�JJ
�Jj
�K�
�K�
hL�
hL�
�L"�LF�Oh�O��R��O��R��S��S�V=�VdW�W�eW�eW��W�W(�WI�Wi!X�!X�dX�dX�X'�XF�Xc�X�+Y�+Y��Y�Y+LZOLZq)��)��[��[���3��\����������/��/�O�=	VO�z����؊�؊�>�>�@]�h@��]��r��r���7��h������ґ�ґ��C��i?��?�������#�A��]��z���	 !"#���(�Q���~�l�7���������������x
P��"(,.?4V:n@�F�L�R�X�^�d�j�p�v�|������

$%&���%0:Tamw������)7`M�Qs�Q�@5��+��+��o�	$2=J�	�_p~�0
#��`
}���
���
 +�
�<M\j~����������@ 0�,2@G`G=Z�GemxH����� I!���/=M[PJ,q�JL�J*�K���K���pL��LN� - L s �R�� � � �S�� � �Vh� � WU!pWm!�W3!G!�W1X!0X4s!pX4�!�X)�!�XK�!0YU�!�Y��!PZ�,�!0�+"`�:0"��J"U"��3e"n"�/}"�"0��"�"�"P���"�"�"�"
#��#.#7#�^D#O#f#w#�#�#�#�#`��#���#��$��1$��J$���a$@��w$�.�$ ���$���$�$.annobin_class.c.annobin_class.c_end.annobin_class.c.hot.annobin_class.c_end.hot.annobin_class.c.unlikely.annobin_class.c_end.unlikely.annobin_class.c.startup.annobin_class.c_end.startup.annobin_class.c.exit.annobin_class.c_end.exit.annobin_rb_module_add_to_subclasses_list.start.annobin_rb_module_add_to_subclasses_list.endrb_module_add_to_subclasses_list.annobin_add_refined_method_entry_i.start.annobin_add_refined_method_entry_i.endadd_refined_method_entry_i.annobin_move_refined_method.start.annobin_move_refined_method.endmove_refined_method.annobin_method_entry_i.start.annobin_method_entry_i.end.annobin_separate_symbol.start.annobin_separate_symbol.endseparate_symbol.annobin_ins_methods_push.part.5.start.annobin_ins_methods_push.part.5.endins_methods_push.part.5.annobin_ins_methods_i.start.annobin_ins_methods_i.endins_methods_i.annobin_ins_methods_prot_i.start.annobin_ins_methods_prot_i.endins_methods_prot_i.annobin_ins_methods_priv_i.start.annobin_ins_methods_priv_i.endins_methods_priv_i.annobin_ins_methods_pub_i.start.annobin_ins_methods_pub_i.endins_methods_pub_i.annobin_rb_class_subclass_add.part.6.start.annobin_rb_class_subclass_add.part.6.endrb_class_subclass_add.part.6.annobin_class_alloc.start.annobin_class_alloc.endclass_alloc.annobin_clone_const_i.start.annobin_clone_const_i.endclone_const_i.annobin_clone_method_i.start.annobin_clone_method_i.endclone_method_i.annobin_rb_class_subclass_add.start.annobin_rb_class_subclass_add.end.annobin_rb_class_remove_from_super_subclasses.start.annobin_rb_class_remove_from_super_subclasses.end.annobin_rb_class_remove_from_module_subclasses.start.annobin_rb_class_remove_from_module_subclasses.end.annobin_rb_class_foreach_subclass.start.annobin_rb_class_foreach_subclass.end.annobin_rb_class_detach_subclasses.start.annobin_rb_class_detach_subclasses.end.annobin_rb_class_detach_module_subclasses.start.annobin_rb_class_detach_module_subclasses.end.annobin_rb_class_boot.start.annobin_rb_class_boot.end.annobin_boot_defclass.start.annobin_boot_defclass.endboot_defclass.annobin_rb_check_inheritable.start.annobin_rb_check_inheritable.end.annobin_rb_class_new.start.annobin_rb_class_new.end.annobin_rb_singleton_class_attached.start.annobin_rb_singleton_class_attached.end.annobin_rb_singleton_class_clone_and_attach.start.annobin_rb_singleton_class_clone_and_attach.end.annobin_rb_singleton_class_clone.start.annobin_rb_singleton_class_clone.end.annobin_rb_mod_init_copy.start.annobin_rb_mod_init_copy.endrb_intern_id_cache.15907rb_intern_id_cache.15908rb_intern_id_cache.15909.annobin_make_metaclass.start.annobin_make_metaclass.end.annobin_Init_class_hierarchy.start.annobin_Init_class_hierarchy.end.annobin_rb_make_metaclass.start.annobin_rb_make_metaclass.end.annobin_singleton_class_of.start.annobin_singleton_class_of.endsingleton_class_of.annobin_rb_define_class_id.start.annobin_rb_define_class_id.end.annobin_rb_class_inherited.start.annobin_rb_class_inherited.endrb_intern_id_cache.15976.annobin_rb_define_class.start.annobin_rb_define_class.end.annobin_rb_define_class_id_under.start.annobin_rb_define_class_id_under.end.annobin_rb_define_class_under.start.annobin_rb_define_class_under.end.annobin_rb_module_new.start.annobin_rb_module_new.end.annobin_rb_define_module_id.start.annobin_rb_define_module_id.end.annobin_rb_define_module.start.annobin_rb_define_module.end.annobin_rb_define_module_id_under.start.annobin_rb_define_module_id_under.end.annobin_rb_define_module_under.start.annobin_rb_define_module_under.end.annobin_rb_include_class_new.start.annobin_rb_include_class_new.end.annobin_include_modules_at.start.annobin_include_modules_at.endinclude_modules_at.annobin_rb_include_module.start.annobin_rb_include_module.end.annobin_rb_prepend_module.start.annobin_rb_prepend_module.end.annobin_rb_mod_included_modules.start.annobin_rb_mod_included_modules.end.annobin_rb_mod_include_p.start.annobin_rb_mod_include_p.end.annobin_rb_mod_ancestors.start.annobin_rb_mod_ancestors.end.annobin_rb_define_method_id.start.annobin_rb_define_method_id.end.annobin_rb_define_method.start.annobin_rb_define_method.end.annobin_rb_define_protected_method.start.annobin_rb_define_protected_method.end.annobin_rb_define_private_method.start.annobin_rb_define_private_method.end.annobin_rb_undef_method.start.annobin_rb_undef_method.end.annobin_rb_special_singleton_class.start.annobin_rb_special_singleton_class.end.annobin_rb_freeze_singleton_class.start.annobin_rb_freeze_singleton_class.end.annobin_rb_singleton_class_get.start.annobin_rb_singleton_class_get.end.annobin_rb_singleton_class.start.annobin_rb_singleton_class.end.annobin_rb_define_singleton_method.start.annobin_rb_define_singleton_method.end.annobin_rb_define_module_function.start.annobin_rb_define_module_function.end.annobin_rb_define_global_function.start.annobin_rb_define_global_function.end.annobin_rb_define_alias.start.annobin_rb_define_alias.end.annobin_rb_define_attr.start.annobin_rb_define_attr.end.annobin_rb_obj_basic_to_s_p.start.annobin_rb_obj_basic_to_s_p.endrb_intern_id_cache.16324.annobin_rb_keyword_error_new.start.annobin_rb_keyword_error_new.end.annobin_rb_extract_keywords.start.annobin_rb_extract_keywords.end.annobin_rb_scan_args.start.annobin_rb_scan_args.end.annobin_class_instance_method_list.start.annobin_class_instance_method_list.endclass_instance_method_list.annobin_rb_class_instance_methods.start.annobin_rb_class_instance_methods.end.annobin_rb_class_protected_instance_methods.start.annobin_rb_class_protected_instance_methods.end.annobin_rb_class_private_instance_methods.start.annobin_rb_class_private_instance_methods.end.annobin_rb_class_public_instance_methods.start.annobin_rb_class_public_instance_methods.end.annobin_rb_obj_protected_methods.start.annobin_rb_obj_protected_methods.end.annobin_rb_obj_private_methods.start.annobin_rb_obj_private_methods.end.annobin_rb_obj_public_methods.start.annobin_rb_obj_public_methods.end.annobin_rb_obj_singleton_methods.start.annobin_rb_obj_singleton_methods.end.annobin_rb_obj_methods.start.annobin_rb_obj_methods.end.annobin_rb_get_kwargs.start.annobin_rb_get_kwargs.endrb_intern_id_cache.16387.LC0.LC2.LC1.LC5.LC8.LC7.LC6.LC4.LC3.LC9.LC10.LC11.LC12.LC14.LC13.LC15.LC18.LC17.LC16.LC21.LC20.LC19.LC22.LC23.LC24.LC25.LC26.LC27.LC30.LC29.LC28.LC31.LC32.LC33.LC35.LC34.LC36.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_ruby_xmallocrb_add_refined_method_entryst_add_directruby_xfreest_lookuprb_resolve_refined_methodrb_hash_asetrb_hash_newrb_id2symrb_ary_pushrb_newobj_ofrb_next_class_serialst_insertrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_method_entry_setrb_iseq_clonerb_vm_rewrite_cref_stackrb_add_methodrb_class_subclass_addrb_class_remove_from_super_subclassesrb_class_remove_from_module_subclassesrb_class_foreach_subclassrb_class_detach_subclassesrb_class_detach_module_subclassesrb_class_bootrb_cClassst_init_numtablerb_internrb_name_classrb_cObjectrb_const_setrb_check_inheritablerb_obj_classnamerb_eTypeErrorrb_raiserb_class_newrb_check_typerb_singleton_class_attachedrb_st_insert_id_and_valuerb_singleton_class_clone_and_attachrb_singleton_class_clonerb_st_copyst_foreachrb_mod_init_copyrb_obj_init_copyrb_cFalseClassst_free_tablerb_free_const_tablerb_free_m_tbl_wrapperst_deleterb_cBasicObjectrb_intern2rb_cFixnumrb_cFloatrb_cTrueClassrb_cNilClassrb_cSymbolrb_ivar_getInit_class_hierarchyrb_cModulerb_make_metaclassrb_class_realrb_bugrb_define_class_idrb_class_inheritedrb_funcallrb_define_classrb_const_definedrb_vm_add_root_modulerb_warnrb_const_getrb_define_class_id_underrb_const_defined_atrb_id2strrb_set_class_path_stringrb_gc_register_mark_objectrb_class_pathrb_const_get_atrb_name_errorrb_define_class_underrb_module_newrb_define_module_idrb_define_modulerb_define_module_id_underrb_class2namerb_define_module_underrb_include_class_newrb_gc_writebarrier_unprotectrb_clear_constant_cacherb_clear_method_cache_by_classrb_refinement_module_get_refined_classrb_include_modulerb_frozen_class_prb_eArgErrorrb_prepend_modulerb_vm_check_redefinition_by_prependrb_mod_included_modulesrb_ary_newrb_mod_include_prb_mod_ancestorsrb_define_method_idrb_add_method_cfuncrb_define_methodrb_define_protected_methodrb_define_private_methodrb_undef_methodrb_special_singleton_classrb_freeze_singleton_classrb_singleton_class_getrb_singleton_classrb_define_singleton_methodrb_define_module_functionrb_define_global_functionrb_mKernelrb_define_aliasrb_aliasrb_define_attrrb_attrrb_obj_basic_to_s_prb_method_entryrb_any_to_srb_keyword_error_newrb_sprintfrb_exc_new_strrb_usascii_str_new_staticrb_ary_joinrb_extract_keywordsrb_hash_tbl_rawrb_cHashrb_scan_argsrb_isdigitrb_ary_new_from_valuesrb_block_given_prb_check_hash_typerb_block_procrb_error_arityrb_fatalrb_class_instance_methodsrb_class_protected_instance_methodsrb_class_private_instance_methodsrb_class_public_instance_methodsrb_obj_protected_methodsrb_obj_private_methodsrb_obj_public_methodsrb_obj_singleton_methodsrb_obj_methodsrb_get_kwargsrb_ary_tmp_newrb_exc_raise��������o������������������
�����������������
��������O��������r
������������������
�����������������!��������I��������e��������R����������������������������������a�������������������������������������������<�����������������������������������
��������/��������V����������������������������������� ���������*%����������������&&��������������������������	��������]	$��������h	'��������v	(��������}	*)���������	*���������	*%���������	,���������	����������	*-���������	.���������	*-��������
���������
.��������
*-��������
���������&
.��������>
0��������F
+���������
&��������R4���������5���������&���������6���������1�����������������&��������56��������B1�����������������������������������
��������N
���������
���������
8���������
8��������*9��������08���������4���������1���������:���������;��������
<��������25��������>$`=��������g�=����������=���������&���������6����������������&��������:6��������S*>���������*-�������������������.�����������������
��������A��������X���������]?��������dx���������}?��������������������?���������$�*@��������������������������*A��������#*B��������3*C��������C*D��������R*-��������Y���������c.��������j*-��������q���������{.���������$���������1�����������������a������������������1��������X*%��������h��������������������������E��������k���������������������������E���������������������������
*>�����������������'*)��������.���������A*G��������H���������Z*%��������j���������s?���������*����������������/��������l�������������������������'��������[$��������q1��������yI�������������������������$��������R1��������n������������������E��������1��������j*%��������$��������"1��������rE��������������������������1��������5��������j��������~$���������1�������������������������1��������dE���������$���������1����������������`���������E���������1��������h������������������ $��������'!1��������R!���������"��������[#E��������v#$���������#1���������#���������#��������$1��������G$E��������v$$���������$1���������$���������$��������;%E���������&*%��������'��������''1��������V'$���������'1���������'��������,)1��������W)���������)���������)*%��������t*���������*���������*E���������*$��������<+1��������X+���������+���������+E���������,���������,1��������-$��������O-1��������z-���������.1��������+/��������P/��������l/*%���������/���������/$��������001��������N0���������1���������11���������1*%��������2��������L2*%��������l21���������2*%���������2��������3*%��������43��������T3���������3*%���������3*%���������3*%���������3��������>4���������4���������4��������5��������95��������L5���������5���������5��������6��������I6��������y6���������6���������6��������R7���������7���������7��������
8��������R8���������8���������8���������8���������8��������9��������L9���������9���������9��������:��������:��������U:���������:���������:���������:��������;��������c;���������;���������;���������;��������<��������><��������a<���������<���������<���������<���������<E��������=��������0=��������N=���������=���������=E���������=���������=���������=E��������>��������F>��������Z>E��������v>E���������>���������>���������>��������?��������2?E��������b?E���������?E���������?E���������?��������@E��������*@E��������P@E��������v@E���������@���������@���������@��������A��������HA��������|A���������A���������A���������A��������B��������<B��������aB���������B���������B���������B��������-C��������:C��������uC���������C���������C��������D��������'D��������cD���������D���������D���������D���������E����������EJ���������EH��������3F*9���������F*C���������F*B���������FE��������DG*-��������KG���������UG.��������uG*)���������G/���������GH���������G*)���������G�G����������G?���������G#H'��������*H*)��������9HO��������MHK��������[HP��������fH(��������uH*���������HL���������H����������HQ���������HR���������HI���������H*-���������H����������H.���������H*-��������I���������
I.��������8IT��������PIK��������[IU��������iIV��������wI*���������IL���������IW���������IU���������IX���������I����������IQ���������IY���������II��������JU��������
J���������JZ��������"JU��������)J���������3J*-��������=J.��������dJ'���������J*G���������J���������J&���������J\���������J(��������	K'��������K*)��������KO��������/KR��������\K]��������jKP��������yK*���������K,���������K����������K*-���������K.���������KT���������KY���������K]��������
L*��������LU��������#LV��������+LW��������;L,��������FL`��������PL���������ZL*-��������dL.��������|L'���������L*%��������Mc��������Mc��������[M���������M���������M��������<N��������pN���������N&���������N&��������O��������IO���������Pb���������Q��������R��������SR��������]Rd��������jRe��������}Rf���������R6��������Sh��������S0���������S*i���������S����������S.���������Sh���������S0���������Tc���������T���������T&��������U6��������4U��������~U���������U���������U��������
V��������0V��������dV���������V���������V*i���������V����������V.���������Vm���������V��������)W0��������~Wm���������W���������W��������X'��������EX'���������X'���������X'��������Y*9��������Y*C��������#Y*B���������YE��������Z*B��������#Z*C��������;Z*9���������ZE���������Z$��������[1��������8[��������`[���������[E��������\*%���������\1���������\$���������\1��������&]$��������b]1���������]���������]$��������&^1��������[^��������`$��������_`1���������`���������a���������b*%��������Ic1��������ec���������c���������c$��������d1��������8d���������d$���������d1���������d��������Ce$���������e1���������e��������2h*%���������h���������h1��������6i$��������ti1���������i���������i$��������'j1��������Rj��������dl���������l1���������l*%���������l��������6m$��������pm1���������m���������n���������n1��������o1��������Qo1���������o1���������o*%���������o��������p*%��������,p1��������ap1���������p1���������p*%��������q��������3q*%��������Fq��������{q���������q���������q���������q��������r*%��������-r*%��������Er*%���������r���������r���������r��������(s��������\s���������s���������s��������&t��������?t��������st���������t���������t���������t��������?u��������ru���������u���������u��������v��������9v���������v���������v��������w��������Ww��������ow���������w���������w��������x��������NxE��������ox���������x���������x���������x��������y��������Uy��������fyE���������y��������z��������+z��������Oz���������z���������z���������zE��������{E��������I{��������l{���������{���������{���������{��������5|��������a|���������|���������|E���������|E��������}��������4}��������H}��������k}��������z}E���������}E���������}E��������~��������H~��������p~E���������~���������~���������~E���������~E��������E��������?��������v��������������������������������������������/�E��������d�E����������E��������ɀE������������������E��������>���������c���������|�E����������E��������ҁE�����������������&���������L���������q�������������������Ƃ���������������������������S�����������������������������������������������D���������n�����������������������������������������������F���������{��������������������������������������7���������l���������y����������������������������{�t����������*}��������҇'��������݇'���������'��������7�z������������*9��������Ȉ���������͈?��������׈�*@���������*����������*C��������#�*A��������3�*B��������C�*D������������������������������������������*i������������������������������ȉ���������ω���������J����������\�6��������q�*�������������������Ҋ����������������������������+����������T����������������������m������������������2����������r�������������������������������)����������3����������:����������h�&����������6���������m���������6��������
�:��������&����������/����������7�*9��������C�*@��������S�*C��������c�*A��������s�*B����������*D���������*9���������*@���������*C���������*A��������#�*B��������3�*D����������*9����������*@����������*C��������Ó*A��������ӓ*B���������*D��������P�&��������”6��������1�6��������D�m��������[�6��������e�:����������*9�������������������Ǖ���������ӕ*@���������*C���������*A���������*B���������*D����������*9����������*@����������*A��������Ö*B��������Ӗ*C���������*D�����������������������������ї�������������������=��������$����������9����������N���������Ę���������՘=���������������������������*������������������������������������������͙�������������������=��������������������������*�M��������G�*i��������N����������X�.��������d����������i�?��������p���������y��������������������������������q��������O
$���������
2������������������GM��������xJS���������L_���������Tk���������Wq��������Xq��������`Xq���������Xq���������X��������W�r����������z����������{�����������������+�������������������������������� ���X$,XPXXz�X�z�z��z��DL�p�xV���V�V�uVu0u8�dul������������$�,PX3��3�3���3���9D�L9p9xB�9�B�B�\B\0\8ud\lu�u���u�����1$�,1P1Xu�1�u�u���u��	�	�D	�L	�p	�x	O	�	��	O	�	O	�	�	
O	
�	0
�	8
*
d
�	l
*
�
*
�
S
�
*
�
S
�
S
�
�
$S
,�
P�
X�
��
��
��
��
��
��
�
D�
Lpx�������0
�
00
08
!Ed
0l
!E�
!E�
YG�
!E�
YG�
YG�
�G$YG,�GP�GXH��G�H�H�I�H�IIAJDILAJpAJx|J�AJ�|J�|J��J|J�J0�J8�Jd�Jl�J��J��K��J��K��K�hL$�K,hLPhLX�L�hL��L��L��O��L��O�O�RD�OL�Rp�Rx�S��R��S��S��V�S�V0�V8Wd�VlW�W�eW�W�eW�eW��W$eW,�WP�WX�W��W��W��W�!X��W�!X!XdXD!XLdXpdXx�X�dX��X��X��X�X�X0�X8+Yd�Xl+Y�+Y��Y�+Y��Y��Y�LZ$�Y,LZPLZX)��LZ�)��)��[��)��[�[���D[�L��p��x����������������0�8/�d�l/��/��O��/��O��O���$O�,�P�X؊���؊�؊�>��؊�>�>�]�D>�L]�p]�xr��]��r��r����r���0��8��d��l������ґ����ґ�ґ���$ґ,��P��X?�����?��?����?�����D�L�p�x����������������� � � � � H``�� ��`8�P�h���@���@4P�`�����@���,�hP	��	�0
�`
��
4�
H�
|���0h0E�`G��G�H4 IpPJ��J��J�K$�K\pLx�L��O�R@�S��V�W�pW	�W$	�WP	0X|	pX�	�X�	�X�	0Y�	�Y,
PZx
0��
`��
���
���H0�lP�����,@�x`����������������@�
�8
 �P
�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@(�T(�l(��(��(�'���"@@�L(-M�3P�0=P�8@�jp(
Sd�bd��]@`�0(
|8��8���@��0(������@��0(������@�0(2���2���)0l�.������|��S��'��2��@��S��e��t����� ����
�@ �P(&X�')
	p��$p��compar.o/       1690381920  1000  135   100644  16096     `
ELF> 4@@+*

 !"#��H���H�|$��uH��H�5H�L$��H���ff.����UH��H���S1�H��H��H�5�H��H��H�������HN�H��[]�D��UH��H���S1�H��H��H�5�H��H��H���H��H�[]H��?���ff.����UH��H���S1�H��H��H�5�H��H��H���H��H�[]H��?H�Ѓ��f���UH��H���S1�H��H��H�5�H��H��H�������HO�H��[]�D��H9�t/H��1�H�*H�<$H�=OH�t$H���H���D��f���H��H�=1��1�H�=�1�H���D��SH�WH��H�7H�=:H���H��tH�SH�3H�����t	1�[�D�[�f���H���H�t$��uH�5H�L$��H���ff.�@��UH��SH��H�����H�����tH��1�[]�f.�H��H���u���H�¸H�����u�H��[]�ff.�f���USH��H��@��u	H�����u1H���H��H���H��H�5H��H�H�81�������t�H���H����ff.����UH��H��H��SH��H�=����H���H��4t(H��t"H��H��H���H����[]H�H�D�@H���[]�@��SH�=�H��H�����H��H�5H��H�;�H�;���H�5�H�;�H����H�5�H�;�H�e���H�5�H�;�H�����H�5�H�;�H����H�5��H�=�[H��GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignComparable#== will no more rescue exceptions of #<=> in the next release.Return nil in #<=> if the comparison is inappropriate or avoid such comparison.comparison of %li with %li failedComparable==>>=<<=between?<=>GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�4H k$4KE�L�I nAA$\DE�L�I ^CA$�GE�L�I ^CA$�KE�L�I nAA�>M e�+HbGE�u
FF$1H h0<SE�D�G Q
CAK`AApdE�A�G 0�\E�J�N c
CALDFA��E��	)? Yt!��"��#�4;4(	L4b�v@K}�����D���'��G�'�{	0K{)�@�>J�+U�G\�v����7�@1�7�qq"�;�SG�`DwD������ !"#��P�����!'7L`

$%&q���������d��"P\,>��N_�n.annobin_compar.c.annobin_compar.c_end.annobin_compar.c.hot.annobin_compar.c_end.hot.annobin_compar.c.unlikely.annobin_compar.c_end.unlikely.annobin_compar.c.startup.annobin_compar.c_end.startup.annobin_compar.c.exit.annobin_compar.c_end.exit.annobin_invcmp_recursive.start.annobin_invcmp_recursive.endinvcmp_recursive.annobin_cmp_le.start.annobin_cmp_le.endcmp_le.annobin_cmp_lt.start.annobin_cmp_lt.endcmp_lt.annobin_cmp_ge.start.annobin_cmp_ge.endcmp_ge.annobin_cmp_gt.start.annobin_cmp_gt.endcmp_gt.annobin_cmp_equal.start.annobin_cmp_equal.endcmp_equalcmp_failedcmp_eq.annobin_cmp_failed.start.annobin_cmp_failed.end.annobin_cmp_eq.start.annobin_cmp_eq.endcmp_eq_recursive.annobin_cmp_eq_recursive.start.annobin_cmp_eq_recursive.end.annobin_cmp_between.start.annobin_cmp_between.endcmp_between.annobin_rb_cmperr.start.annobin_rb_cmperr.end.annobin_rb_invcmp.start.annobin_rb_invcmp.end.annobin_Init_Comparable.start.annobin_Init_Comparable.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_check_funcallrb_funcallrb_cmpintrb_rescuerb_warnrb_exec_recursive_paired_outerrb_funcallvrb_cmperrrb_inspectrb_obj_classrb_eArgErrorrb_raiserb_invcmprb_exec_recursiveInit_Comparablerb_define_modulerb_mComparablerb_define_methodrb_intern2��������+a��������]��������bb��������pc������������������b���������c�����������������b��������c��������M��������Rb��������`c���������d���������;���������e���������<���������e��������
f��������c��������Y��������hg��������i��������j��������=��������*k��������)l��������;j��������nn���������c���������>���������p���������*q���������?���������r���������@���������r��������A��������r��������.B��������3r��������IC��������Nr��������dD��������ir��������uE��������zs����������������� :��4$,4P4X��4�����������'D�L'p'x{�'�{�{��{�0�8�d�l����7���7�7�q$7,qPqX��q�����D���DD�DDL�p�x����� 6 7 8 9 8@`����0�����(@@�t��P��.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@(FT(Gl(H�(I�(J'��"@�&�(-G3H=H�8@p+(
S�b��]@�00(
|�
��
��@�00(������@�00(�x�x��@10(2P�2%)09.�g�g|gSg'g2g@gSgegtg�h ����@@18(&h�
)`	H!�x2�complex.o/      1690381920  1000  135   100644  114088    `
ELF>�@@+*

 !"#��H�G����H�G����1��f���H��������fD��H����*1�����U��*1�SH��H��H�H���H�{��*H��1�H���H��H��H��[�+1�]�AVA��AUI��ATI��USH�/�]�H�8���W��u[1�]A\A]A^�f�A��.���_uKE��u�H��A�H�iI�m�Q�WH�Ӏ�tՀ�_t�I�$E1��H�8I�$I�M��f�E��tH���I�mH���}_t�[�]A\A]A^�@����f���U1�1�SH��H��H�5�H�5H��1�H��1��H��H��[H��]�ff.�����f.���H�wH��ff.�@��H���H��H�5H�8����UH��SH��H��H���H��� tSH����H��uhH�CH�H�5H���H� t?H��H�H�5H���H��H��[]��H�SH��uH�C ��H�[ H���H�H�5H�81��ff.���USH��H��H�wH��H��H��H���H��H��[]�ff.���SH��H��H���t7H�H�{H�$��t3H�H��H�D$�H��H�D[�H�����fDH�����fD��U1�1�SH��H��H�H�5�H�{H�51�H��1��H��H��[H��]����H�wH��ff.�@ATI��UH��SH��H��������@@��uH�����t������@����H����H�}A��H�5H��H���H�51�1�H�}�H��A��H��H���H��� urH��H�S���<���tsH�ߺH�5�H��H��[]A\�f�1����<�H���a���H�}A��H�5H���\���H�CH�P�H�C�<���u��H�5H����t���fD�Gf.�����fP��u���@H��H9�����H���H��H��?H)�H	�H��H�|$�~D$�fD��U�H��H�=SH���H�5H��H���0���H��H���H�ߺH�5�H��H��[]����H�5��ATA��UH��SH�H���8.ukH�EH��D��H���.H�H�E�]�����t9H���T�H�EH��D��H���/H�H�E�2�������f.�H�m[]A\�fD������t�H��<.t��ƒ�߀�EuKH�U�H�H�EH�PH�UH���JՁ�u�PH�H�EH��D��H�������t�H��</�P���[�]A\�fDS�/H���H��umH�5H���H��tI1�H���H�0fH~�H9�tcfH~�H��<������t7H��H��u@[�fDH��1Ҿ
[�H��1�[�DfH~�[H��H��H���D[�f���H������H������H������H��@��tH��x(�H���1����<�H��t�H�5H��tH�H�8H���fD�H�=�H��H�����H���.�H�@H�@H���f�����H���������Gf.���@��uH�����t�������@��tH��x.�H���f�1����<�H��t�H�5H��tyH�H�8H���fDH��H9�t�H���H��?H)�H��H��H	�H��H�D$�~D$H��f.��n���fP���]���H�5H��u�@�H�=�H��H��g���H���*������ATI��H�5USH��L���H�C�uH��H�����uhH�5L���H��H�C�uH�����uH��[]A\�fDH��H�����u�H���`H��`u�H�E��`H��`t�H��H����H��H�����u�H���`H��`�y���H�E��`H��`�h���H��H����X������H�SH��H�H�0�H����H�{@����@��tPH�51����H��t[H�{@��uH�����t
�����tnH�51�1�[�DH�����t������
t��u�H�G�tH��t�H�H��H�5H�81��DH��t���f�1Ҿ
[���H�SH��H�H�0�H����H�{@����@��tPH�51����H��t[H�{@��uH�����t
�����tnH�51�1�[�DH�����t������
t��u�H�G�tH��t�H�H��H�5H�81��DH��t���f�1��H�0fH~�H9�t%fH~�H��<������tH��H��u[�[�fH~�[H��H��H������H�SH��H�H�0�H��uxH�{@����@��t<H�51����H��tGH�{H�51�1�[�f.�H�����t������
t��u�H�G�tH��t�H�H��H�5H�81��DH��t��ِ��AT1�1�I��U��SH��H��H�H�{H�0�H���|H�{@����@��t@H�51����H��tKH�5H��twH�{L��[��]A\�DH�����t������
t��u�H�G�tH��t�H�H��H�5H�81��DH��u�H�5H��u���H�=�H��H��i�����ATUSH��H�@����@��uH�����t�����
t*���UH�51����H���LH�C�u\�uH�����t�����
t-����H�5H�ǹ1���H��u%H�CH�{H��[]A\�f�H��H��u�H�{H�51�1��L�%H�{H��I�4$�H����H�{I�4$�H����@����H��������E������1�H���H�0fH~�H9�t'fH~�H��<��������H��H��t[[]A\�f.�H�G������H�������H�{H�51�1��L�%H�{H��I�4$�H��u8H��[]A\�H���s����DH�5[H��1�]1�A\�f�H�{I�4$�H��u����f�H�P���j���H��������\���H��H��H��H���y������UH��SH��H��H��H�H�0�H��u	1�H��[]�H�E������ƒ����.H���4<�|H�PH�C�����L��������H���<�4H�@H9�u�H�E�������ƒ����7H���<<��H�H���H������h���H����H���U���H�H��J���f�H������p���H���zH���]���H�H��R���f�H�H��	����H�����u H����H��uH�H��	DH�PH�C�tL����������EH���h<uPH�H��H@H�H�����f�H�����u H���9H��uH�H��	DH�@H9�����@��t	���%H�51�H��H���H����������H�H��-����H�H��@H�H��!����H�H������H�H������H�H����H�H�����H�H�����H�H�����H�H��y���H�H�����H�H�����H�H��p���H�H����H�H�����H�H��C���H�H�H9��������H�AVAUI��H��ATUH��SH�0H���H��u`���g��uH�����t�����
t?����1���H��H�5�H��t�I����DH�51�1�H���H����H�51�1�H���H����H�51�1�H���H����H�KH�}�1��+�H�KH�}�I�ƾ-1���.L��H���I��H�X��u
H�������M�t$A��u
I������^[L��]A\A]A^�f�H�51�1�H���H���(����!f�H�}H�ٺ1��+�H�mH�þ.L���I��H�h@��uGH�����t>H��H�����u/I�$��`H��`u"H�E��`H��`tH��L���f.�I�\$���D���H������7���H��L������$���I�$��`H��`����H���`H��`����H��L������H�K��+1���H�K�H��I�ƾ-�w���DH��H����������L��L����������I�$��`H��`�~���I���`H��`�n���L��L����^���@H��H������/���I�$��`H��`����H���`H��`����H��L������@H�C��<����J���ff.�@��H�ATUH��SH��H�0H���H��u;���ZH������M������?H��H��[]A\��H�51�1�H���H��t�@��uZH�����uH����H����H�}�.�I��H�X��u	H�����uSI�D$H��[L��]A\�@��u"�����tdH��t|@��u�H�H�8�H�H�8�@H��H�����u�I�$��`H��`u�H���`H��`�����H��L����q���H�H�8�C���H�H�8�4���H�H�8�%���H�H�8����H���H��H���H��H�5H��H�H�81�����AVH�51�1�AUATUSH��H��L�cH��H�H�0���������I������tH���{����L�kH���H��ua@���?@��uH�����t�E����
t=���\1���H��H�5�H��t�L���1H�51�1�L���H��tH�51�1�H���H��uYH�51�1�L���H���,H�51�1�H���H����I�|$H��1��+�M�d$H�ž.L���H��L�`A��uEI�����t<L��H�����u-H���`H��`u!I�$��`H��`tL��H���f�H�k@��u<H�����t3H��H�����u$H���`H��`uH�E��`H��`tH��H���H��[]A\A]A^�fDH������A���H���yH���.���H�L�(�#���f�H�M��+1���H�M�L��I�ƾ-1���.L��H���H��H�h@��u
H�������L�sA���I���I������<���L��H������)���H���`H��`����I���`H��`�	���L��H������H�MI�|$�1��+�H�MI�|$�I�ƾ-�9���H�L�(����f�H��H������<���H���`H��`�,���H�E��`H��`����H��H�������@H�L�(���f�H��H���������H�L�(���f�H�L�(�k����H�E������f���AVH�51�1�AUATUSH��H��H�5H�{1�H��1��I��H�H�0����������I������tH���x����L�kH���H��uf@���<@��uH�����t�E����
tB���Y1���H��H�5�H��t�L���.�H�51�1�L���H��tH�51�1�H���H��uYH�51�1�L���H���$H�51�1�H���H����I�|$H��1��+�M�d$H�ž.L���H��L�`A��u=I�����t4L��H�����u%H���`H��`uI�$��`H��`tL��H����H�k@��u<H�����t3H��H�����u$H���`H��`uH�E��`H��`tH��H���H��[]A\A]A^�fDH������D���H���yH���1���H�L�(�&���f�H�M��+1���H�M�L��I�ƾ-1���.L��H���H��H�h@��u
H�������L�sA���I���I������<���L��H������)���H���`H��`����I���`H��`�	���L��H������H�MI�|$�1��+�H�MI�|$�I�ƾ-�9���H�L�(����f�H��H������<���H���`H��`�,���H�E��`H��`����H��H�������@H�L�(���f�H��H����������H�L�(���f�H�L�(�n����H�E������f���AV1�AUI��H�ATUSH��H��L�D$�����H�$��uk����H�����������
tK�ڃ���tA��t<��t7H�H��H�0�H���PH�51�1�H���H���4H�\$����ZH�H��H�,$H�0�H���{H�51�1�H���H��tH�51�1�H���H��uWH�51�1�H���H���_H�51�1�H���H���H�}H�ٺ1��+�H�mH�þ.L���I��H�h@��uBH�����t9H��H�����u*I�$��`H��`uH�E��`H��`tH��L���DI�\$��u<H�����t3H��L�����u$I�$��`H��`uH���`H��`tH��L���H��L��[]A\A]A^�f����_�����[H�H��H�0�H����H�51�1�H���H���~H�H�\$H�,$H�0H���H���U����������21���H��H�5�H�������I�������2���@�؃������������DH�,$��@��uV@��u
H�����������t;H�H��H�0�H����H�51�1�H���H����H�,$H���H�D$H�0�H���`����<���fDH�K��+1���H�K�H��I�ƾ-1���.L��H���I��H�X��u
H������*M�t$A������I���������L��L�������I�$��`H��`���I���`H��`����L��L������f�H�KH�}�1��+�H�KH�}�I�ƾ-�;���DH������������
t����t��t	�������H�H��H�,$H�0�H������H���������������
������������H�C����H�����������fDH��H���������I�$��`H��`�����H���`H��`�����H��L������@H��H���y����U��������������,����H�H��H�,$H�0�H�����1���@�U����
�����������������~������:����p���H�H�5H�81��ff.���UH��SH��H��H��H�H�0�H��uiH�H��H�0�H��tH�51�1�H���H������t
@���'H�5H��H��1�H�ߺ[]��H�}H�K@��t��u%H�51���H��uH��1�[]�@H�H�H9�u�H�}H�K@��t	����H�51���H��t�H���[]�f�H�}@��tN��tIH�H�H9�u�H�}@����@��uH�����t�����
�f�����tp���H�51�H�ٺ�H���4�����H�H�H9������^���@H�H�H9������F���H���=�����H�G����H���#�������ff.����AVH�51�1�AUATUSH���H�{H�51�I��1���tH��L��H�H��tH����/L��1��H��H�{H�51�1��H���*H��1��H�{H�51�H��1���tH��H�H��tH��L���/1��I��H�{H�51�1��L��*�H��1��I��H�H�0�������o��I������tH���p���wL�kH���H��uf@���@��uH�����t�E����
tB���I1���H��H�5�H��t�L���.�H�51�1�L���H��tH�51�1�H���H��uYH�51�1�L���H���$H�51�1�H���H����I�|$H��1��+�M�d$H�ž.L���H��L�`A��u=I�����t4L��H�����u%H���`H��`uI�$��`H��`tL��H����H�k@��u<H�����t3H��H�����u$H���`H��`uH�E��`H��`tH��H���H��[]A\A]A^�fDH������D���H���aH���1���H�L�(�&���f�H�M��+1���H�M�L��I�ƾ-1���.L��H���H��H�h@��u
H�������L�sA���I���I������<���L��H������)���H���`H��`����I���`H��`�	���L��H������H�MI�|$�1��+�H�MI�|$�I�ƾ-�9���H��H������T���H���`H��`�D���H�E��`H��`�3���H��H����#���@H�L�(�����H��H���4��������H�L�(���f�H�L�(����H�L�(�~����H�E�����f�AVH�51�1�AUATUSH���H����H�{�H�{H���H���*H��1��H�{H���H�{I����*L��H��1��H��H��H�L�(H�H�0�H��ue@���;@��uH�����t�E����
tA���1���H��H�5�H��t�I�܅����H�51�1�H���H��tH�51�1�H���H��uWH�51�1�H���H����H�51�1�H���H���@H�{H��1��+�H�[H�ž.L���I��H�X��u
H�������I�l$@��u
H�������[L��]A\A]A^��H��[]A\A]A^�H�M��+1���H�M�H��I�ƾ-1���.L��H���I��H�X��u
H�������M�t$A���p���I������c���L��L������P���I�$��`H��`�?���I���`H��`�/���L��L�������f�H�MH�{�1��+�H�MH�{�I�ƾ-�;���DH��H����������H��H������;���I�$��`H��`�*���H���`H��`����H��L����
���@H��H������Z���I�$��`H��`�I���H���`H��`�9���H��L����)���@H��L������*���I�$��`H��`����H�E��`H��`����H��L������H�E��$��������AVH�51�1�AUATUSH���H����H�{�H�{H���H�51�H��1��H���*H��1��H�{H���H�{I����*L��H��1��H��H��H�L�(H�H�0�H���f@���D@��uH�����t�E����
tB���1���H��H�5�H��t�I�܅����H�51�1�H���H��tH�51�1�H���H��uWH�51�1�H���H����H�51�1�H���H���HH�{H��1��+�H�[H�ž.L���I��H�X��u
H�������I�l$@��u
H�������[L��]A\A]A^��H��[]A\A]A^��H�M��+1���H�M�H��I�ƾ-1���.L��H���I��H�X��u
H�������M�t$A���h���I������[���L��L������H���I�$��`H��`�7���I���`H��`�'���L��L�������f�H�MH�{�1��+�H�MH�{�I�ƾ-�;���DH��H����������H��H������;���I�$��`H��`�*���H���`H��`����H��L����
���@H��H������R���I�$��`H��`�A���H���`H��`�1���H��L����!���@H��L������"���I�$��`H��`����H�E��`H��`����H��L�����H�E������������AV1�AUI��H�ATUSH��H��L�D$����FH�$��uk���H������������
tK�ڃ���tA��t<��t7H�H��H�0�H���H�51�1�H���H����H�l$��@���	L�$$H���=�����*L��H��1��H��H�������*L��H��1��H��H��H�H�0�H��ub�����uH�����t�����
tA���@1���H��H�5�H��t�I���5�H�51�1�H���H��tH�51�1�H���H��uWH�51�1�H���H���,H�51�1�H���H����H�}H�ٺ1��+�H�mH�þ.L���I��H�h@��uGH�����t>H��H�����u/I�$��`H��`u"H�E��`H��`tH��L���f.�I�\$��u<H�����t3H��L�����u$I�$��`H��`uH���`H��`tH��L���H��L��[]A\A]A^�f.�@����H��������U����
��������������������������H�H��H�0�H���oH�51�1�H���H���SH�l$L�$$�r�����؃��������C���D����u��B���L�$$D��A��uVA��u
I�����������t;H�L��H�0�H����H�51�1�L���H����L�$$H�D$�����f�H�K��+1���H�K�H��I�ƾ-1���.L��H���I��H�X��u
H�������M�t$A���I���I������<���L��L������)���I�$��`H��`����I���`H��`����L��L������f�H�KH�}�1��+�H�KH�}�I�ƾ-�;���DH��H������S���I�$��`H��`�B���H���`H��`�2���H��L����"���@H��H���<��������A�$����
����������w������n������*����`���DH�C�����H�H�5H�81��f.���H�AVAUATUH��SH�0H��H���H����H�MH�{�1��+�H�MH�{�+I�ĺ1��H��H�H�0���X������I������tH��������L�kH���H��uF@���d@����H��������E����
t����H�E��0DH�51�1�L���H��tH�51�1�H���H��uYH�51�1�L���H����H�51�1�H���H����I�|$H��1��+�M�d$H�ž.L���H��L�`A��u
I������HH�k@��u
H�������H��[]A\A]A^�DH���������H���iH�������H�L�(����H�H��H�0�H��tH�51�1�H���H���H��H�ߺ+[]A\A]A^�DH�MI�|$�1��+�H�MI�|$�I�ƾ-1���.L��H���H��H�h@��u
H�������L�sA������I�������L��H��������H���`H��`����I���`H��`�����L��H�������H�L�(����H��H�������L��������}���fDH�{1�H���+L�c����������ڃ�����H��������H�H�:�f.�1���H��H�5�H���X��������H�M��+1���H�M�L��I�ƾ-�m���DH�����uH���qH���JH�{[L��]H��A\A]A^���DH�L�(�F����H��H������>���H���`H��`�.���H�E��`H��`����H��H����
���@H��H���������H���`H��`��H�E��`H��`���H��H�������@L��H����������H���`H��`�����I�$��`H��`�����L��H����t���@H�L�(�^���f�H�L�(�F����H�H�:����H�H�:���H�H�:���H�H�:���H�H�:���D��H�AVAUATUH��SH�0H��H���H����H�MH�{�1��-�H�MH�{�-I�ĺ1��H��H�H�0���X������I������tH��������L�kH���H��uF@���d@����H��������E����
t����H�E��0DH�51�1�L���H��tH�51�1�H���H��uYH�51�1�L���H����H�51�1�H���H����I�|$H��1��+�M�d$H�ž.L���H��L�`A��u
I������HH�k@��u
H�������H��[]A\A]A^�DH���������H���iH�������H�L�(����H�H��H�0�H��tH�51�1�H���H���H��H�ߺ-[]A\A]A^�DH�MI�|$�1��+�H�MI�|$�I�ƾ-1���.L��H���H��H�h@��u
H�������L�sA������I�������L��H��������H���`H��`����I���`H��`�����L��H�������H�L�(����H��H�������L��������}���fDH�{1�H���-L�c����������ڃ�����H��������H�H�:�f.�1���H��H�5�H���X��������H�M��+1���H�M�L��I�ƾ-�m���DH�����uH���qH���JH�{[L��]H��A\A]A^�E��DH�L�(�F����H��H������>���H���`H��`�.���H�E��`H��`����H��H����
���@H��H���������H���`H��`��H�E��`H��`���H��H�������@L��H����������H���`H��`�����I�$��`H��`�����L��H����t���@H�L�(�^���f�H�L�(�F����H�H�:����H�H�:���H�H�:���H�H�:���H�H�:���D��H�AVAUATUH��SH��H�0H���H��uOH�H��H�0�H��tH�51�1�H���H���dH��H��[�*]A\A]A^�@H�KH�}�1��*�H�KH�}�I�ľ*1��L���-H��1��H�KH�}��*I��1��H�KH�}�I�ž*1���+L��H��1��H��H�H�0@���f@�����I������tH���U@���kL�mH���H��uR������u
H������1���H��H�5�H��t�L����fDH�51�1�L���H��tH�51�1�H���H��uYH�51�1�L���H���<H�51�1�H���H����I�|$H�ٺ1��+�M�d$H�þ.L���H��L�`A��u
I�������H�]��u
H������J[H��]A\A]A^�fDH����������H���	H�������H�L�(����H�}H�ٺ1��*�H�}H�ٺI�ľ*1��@���k@�����������H����@���[H�H�:�P�H�K��+1���H�K�L��I�ƾ-1���.L��H���H��H�X��u
H�������L�uA������I���������L��H����������H�E��`H��`�����I���`H��`�����L��H������H�KI�|$�1��+�H�KI�|$�I�ƾ-�9���H�L�(����f�H��H���\����@����H�����uH����H���jH�}[L��]H��A\A]A^�E��D�����
�
���������H�C�������H��H����������H�E��`H��`�����H���`H��`�����H��H����r���@L��H������E���H�E��`H��`�4���I�$��`H��`�#���L��H�������H��H������3���H�E��`H��`�"���H���`H��`����H��H�������@H�L�(����H�L�(����H�L�(����H�H�:���H�H�:���H�H�:���H�H�:�|���H�H�:�m���D��AWAVAUATI��USH��H��H��(L�-I�u�H��tL�5H��I�6�H���uH�H��H�0�H����H�-H��H�u�H����H�uH���H����H�H��H�0�H��������H��H�H����L�$$H�����M��M��I���t@A����D������G	I���M	A���c	I�|$�.�I��L�hA��u
I������JI�o@��u
H������{H��H��H��H��?H��?H�DH��H�H9���I�OI�o�1��*��H���*H��1��I���*H��1�H���I���*I��1�H���L���-H��1��I��A������M������I���IM�����H�H�8����I�uH���H����H�H��L���H�$H�$H��([]A\A]A^A_�f�H�51�L��1�L�t$�H�51�L��I��1��H�{��*H��I��1��L���L�|$H���H�{��*H��1��H���-H��1��H���L���L�|$H���H�{��*H��1��H�KL��I�ƾ*1��L���+H��1��I��A����A���@D������8	I����	A����	M�d$L�5L�������*H��H��1��L��H�����H��*�H��1��I�6H��H���H��uR������u
H�������1���H��H�5�H��t�H�,$������DH�51�1�H���H��tH�51�1�H���H��uWH�51�1�H���H���H�51�1�H���H����H�}H�ٺ1��+�H�mH�þ.L���H�$H�h@��u
H������H�$H�X���K���H������>���H��H��I������(���I�H�D$��`H��`����H���`H��`����H�<$H������L�5H�{I�6�H�����H�{@����@���H�����������
���������H�G������H�������H�[���f.�H�51�1�H�������uH�����t�����
�1������QH�5H�ǹ1���H������H�5H��1�1��H�����1���H�߾>�H����H�L�$$H��H���-����������)���!H�����������
�^�������H�C��I�����f�I����������I����M���~���H�L�5L� �t���f.�H�51�1�H���H�����H�H��H�0�H����H�51�L��1��H�51�L��H��1��H�ٺ�*H��1��H��H�ٺH�5I��1��H��A���LA����D�������I����A����I�\$L�������*H��H��1��L��I���t����*H��H��1��L��H��H���O���H�$��H�5H��1�1��H�5L��H�ÿ1��H�5H�ٺH��1��H�$���H�51����H����������1���H��H�5�H���4���A����A���eD�������I����A���~I�|$�.�H�$H�@H�@���f.�H�H�8����L��H����������I���`H��`�����I�E��`H��`�����L��L����r���@H��L������r���I���`H��`�b���H�E��`H��`�Q���H��L����A���@H�<$L���1��*�H�$H������� ���DH�H�8�����H�H�8����H�H�8����H�H�8���H�P������H�H�������H�@������H�H����������H�K��+1���H�K�H��I�ž-1���.L��H���H�$H�X��u
H������`H�$L�hA���3���I������&���L��H��H���������H�H�D$��`H��`�����I�E��`H��`���H�<$L�������fDH�KH�}�1��+�H�KH�}�I�ž-�*���H�L�5L� ����H��H���s����W���H��H���M����������
�O���������H�C��:����H��H��I���������I�H�D$��`H��`�����H�E��`H��`�����H�<$H������H�����g���H��H��I����������I�H�D$��`H��`�u���H���`H��`�e���H�<$H����T���L�5M�&����I������`���I����M���M���H�H�8�C���H�L�5L� ���H�L�5L� �~���I���������I��t_M������H�H����H�L�5L� �=���H�=1�����H�H�8���H�H��t���H�H��e���H�H��V���H�H�8�x���H�H�8�i���H�H��)���H�H�����H�H�8�<���I�>�4������AWAVAUI��ATUSH��L��H��H�H�-H�0�H����H�-H�{H�u�H����A�I�}H�51�1��I�}H�51�I��1���t
A���:H��L��1���>�H���)I�MI�}�1�H�5I��A�����*H��H��I��1����+�H��1��I�}��*H��1��I��E���qL���*H��1��H�51�H��1��H�5L��H��1��L��H��H�5I��1��M�������p�ڃ�����H�������H�H�:�tH�I�L9�����I�MI�}�1�H�5I��A�����*H��H��I��1����+�H��1��I�}��*H��1��I��E���0H�51�H��1��H�5L��H��1��L��H�߾*I��1��H�5L��H��1��M������'�ڃ����xH�������H�H�:��H�L��H�0�H��tH�51�1�L���H���=H��H��L��H��[]A\A]A^A_��H�{H�u�H����I�}H�u�H������I�}H�uE1��H��A�������H�{L��1��*�H�{��-H��1��H�5L��H��1��H�{L���*I��1��H�{��+H��1��H�5L��H��1��H�uI��M����������H��������H���.����H�H�(��H�{L�{L���*1��L����-H��1��H�5L��H��1��H�{L�{L��H�D$��*1��L����+H��1��H�5L��H��1��M���"�����ڃ����H���*��� H�H�:�f�H�{H�5L��1���H�{L��H�5H�ź1�����������ڃ����H���/����H�H�:���H�����uH����H��uH�H�(�@H�kL���H��uwA��uaA��uI�����tA�����
tW����1���L��H�5�H��t.���t$H��L��[]A\A]A^A_�f�L��H��t��H�51�1�L���H��tH�51�1�L���H���\H�51�1�L���H����H�51�1�L���H����I�OI�|$�1��+�I�OI�|$�H�þ-1��I�ž.H���I��L�hA��u
I�������I�\$������H�������H��L��������I�$��`H��`����H���`H��`�����H��L������@H�����uH����H��uH�H�:�@H�{L��H��H��[]A\A]A^A_鋰��H�����uH���{H��uH�H�:�@H�{L����H�����uH���aH��uH�H�:�@H�{H�T$�y���f.�H�����uH���lH���EH�{H���G����I�|$L���1��+�M�l$H���`���f.�H�H�:����H�H�:�m����H�H�:�%����H�H�(�����.H���H��L�`A��u
I�������L�{I��A������I���������L��H�������H���`H��`���I���`H��`����L��H��������I�O��+1���I�O�L��H�þ-�I���DL��H������b���I�$��`H��`�Q���I�E��`H��`�@���L��L����0���H�H�:�a���H�}���H�}���H�}����H�H�:����H�H�:��H�H�:�e���H�H�(�v���H�H�:���H�H�(�X���H�H�:���H�H�:����H�H�:���H�H�:���H�H�:���H�H�:���I�G��v����d���L��H���������H���`H��`����I�$��`H��`��L��H������ff.�f���AWAVAUI��ATUSH��L��H��H�H�-H�0�H���FH�-H�{H�u�H���yA�I�}H�51�1��I�}H�51�I��1���t
A����H��L��1���>�H����I�MI�}�1�H�5���*H��H��I��1����+�H��1��I�}��*H��1��I��H�؃�H�D$E����H�{L��1��*�H�{��-H��1��H�5L��H��1��H�{L���*I��1��H�{��+H��1��H�5L��H��1��H�|$H�uI���E���	��H������tH���
����H�kL���H��uSA����A����I�������A�E����
t&����I�E�tDH�����H�51�1�L���H��tH�51�1�L���H����H�51�1�L���H����H�51�1�L���H����I�|$L���+1��M�l$H�þ.H���I��L�hA��u
I������I�\$��u
H������=H��L��[]A\A]A^A_�H�I�L9��_���I�MI�}�1�H�5I��A�����*H��H��I��1����+�H��1��I�}��*H��1��I��E����H�51�H��1��H�5L��H��1��L��H�߾*I��1��H�5L��H��1��H�uI��M����������H��������H��������H�H�(�DH�L��H�0�H��tH�51�1�L���H����H��H��L��H��[]A\A]A^A_��H�{H�u�H���q���I�}H�u�H���[���I�}H�uE1��H��A���E����L���*H��1��H�51�H��1��H�5L��H��1��L��H��I��H�5�D���H�{L�{L���*1��L����-H��1��H�5L��H��1��H�{L�{L��H�D$��*1��L����+H��1��H�5L��H��1��M���������ڃ�����H��������H�H�:��H�{H�5L��1���H�{L��H�5H�ź1��������?�ڃ�����H�������
H�H�:��1���L��H�5�H���d�������V�������f�H���������H���H������H�H�(����I�M��+1���I�M�L��H�þ-1��I���h���I�MI�|$�1��+�I�MH��I�|$��-�fDH�����uH���[H��uH�H�:�@H�{H�T$H��H��[]A\A]A^A_�����H�����uH���"H��uH�H�(�@H�kL���H��u_A����A��uI�����tA�����
t;���^1���L��H�5�H��t��������@H�51�1�L���H��tH�51�1�L���H����H�51�1�L���H���(H�51�1�L���H����I�|$L������L��H��������I�$��`H��`����I�E��`H��`�����L��L������H��L����������I�$��`H��`�����H���`H��`�����H��L�������@H�����uH����H����H�{H������I�OI�|$�1��+�I�OH�����f.�H�H�:�����H�H�(�
����L��H���l����U����H�H�(���f��.H���H��L�`A��u
I������^L�{I��A�������I����������L��H������{���H���`H��`�k���I���`H��`�[���L��H����K����H�H�(�	����H�H�(����L���@����I�O��+1���I�O�L��H�þ-�+���D�.H���H��L�`A��u
I������L�kI��A�������I����������L��H����������H���`H��`�s���I�E��`H��`�b���L��H����R����H�H�:���f�H�H�(���H�}����H�H�:����H�H�(����H�H�:���H�H�(���H�H�:�u���H�H�:�f���H�H�:�W���H�H�:�H���L��H���������H���`H��`����I�$��`H��`�����L��H������I�G������N���L��H����������H���`H��`����I�$��`H��`�n���L��H����^�������=�D��H�ATI��UH���.SH�8�H��L�`A��u	I�����uXH�k@��u	H�����u
H��[]A\�DH��H�����u�H���`H��`u�H�E��`H��`t�H��H����L��H�����u�H���`H��`u�I�$��`H��`t�L��H����p������H�AVAUATUH��SL�(H��H�H��H�0�H��u]���l��uH�����t�����
t<����1���H��H�5�H��t�I����f�H�51�1�H���H����H�51�1�H���H����H�51�1�H���H����H�KH�}�1��+�H�KH�}�I�ƾ-1���.L��H���I��H�X��u
H�������M�t$A��u
I������f[L��]A\A]A^�f.�H�51�1�H���H��� ����!f�H�}H�ٺ1��+�H�mH�þ.L���I��H�h@��uGH�����t>H��H�����u/I�$��`H��`u"H�E��`H��`tH��L���f.�I�\$���<���H������/���H��L���������I�$��`H��`����H���`H��`�����H��L�������H�K��+1���H�K�H��I�ƾ-�o���DH��H�����������L��L����������I�$��`H��`�v���I���`H��`�f���L��L����V���@H��H������'���I�$��`H��`����H���`H��`����H��L������@H�C��4����J���ff.�@����f������ff.�f���AVH�AUATI��UH��H��SL�(�\�����*H��H��1��L��H���*���H��*�H��1��H��H��H�H�0�H��ua���h��uH�����t�����
t@����1���H��H�5�H��t�I����fDH�51�1�H���H����H�51�1�H���H����H�51�1�H���H����H�KH�}�1��+�H�KH�}�I�ƾ-1���.L��H���I��H�X��u
H�������M�t$A��u
I������^[L��]A\A]A^�f�H�51�1�H���H���(����!f�H�}H�ٺ1��+�H�mH�þ.L���I��H�h@��uGH�����t>H��H�����u/I�$��`H��`u"H�E��`H��`tH��L���f.�I�\$���D���H������7���H��L������$���I�$��`H��`����H���`H��`����H��L������H�K��+1���H�K�H��I�ƾ-�w���DH��H����������L��L����������I�$��`H��`�~���I���`H��`�n���L��L����^���@H��H������/���I�$��`H��`����H���`H��`����H��L������@H�C��<����J���ff.�@UH��AWI��AVAUATL�e�SH��H��X�u�H�}�dH�%(H�E�1��H�pH����yL�e�H��H�E��H��H��H��H%�H)�H���H��H9�tH��H��$�H9�u���ML�t$I���L�u��I��H��H�]��H��H��H��DJ u�QՁ���A�H�M�H�E�H�QH�U��Q��߃�I���
H�E��u�H�U�H��H�U�H�E��?����Å���H�E�L����&���I��H�E���ʃ�߃�I������@�"�Aը���L�E�A�H�E�H�E�H�PL�E�H�U��x�����<I��<J�zH�U��u�H�}�貇��L�E������zH�E�L���蕈��H�U�H���:�����<I�@�ǃ�߃�J�o�L��1��I��gf.�H��1�<-H�M�@��H�4�������I�H�E�I�M�0H��Dq tH��H�E��0H��Dq u����"]�����L�����H�}�dH3<%(��H�e�[A\A]A^A_]�����<Iu1H��H�u���o����L���H�]�I������@<Jt��%����H)�H�L����f.�H��L��H�E�����H�E�L����A����H���I��9���@�L���I����1���-@��H�4�����H��L��H�U��I�����H�PH�M�H�U��@�PՁ�u�H�E�H�E�H�U��u�H�M�H�}�襅��H�M���H�E���9�!���H��H�M��H�M��T�I�E�DP�����H���c���L��H���I����Z�������@��H�������-����������L���I��"����ATUH��SH���H�]�� uWH��L�e��1�H��L���H����A�<u?H�T$�L���]�������H�D$H��[]A\��L�eM��tLH�]륐H���H�E�� tL�eH�EA�M��u�L�%�@H��L�e���D�|���H�H�5H�81��H�H��H�5H�81�����AU1�I��H�ATU��SH��(H��L�D$�H�<$����uH�|$���H��H���H�<$@��u!H�����t������2f.�H�|$@��uH�����t������fDH���H�$����H�������������L�d$A��u0DI�����tA�$�����H�$��uH�����t�������L�%I�4$��t^H���H����H�$H�t$L���H�D$H�D$H�D$�\���H��([]A\A]ÐL�d$A���i���L�%I�4$��u�H���H����H�5H�<$1�1��H����H�$�DI�4$H�|$�H���c���H�5H�<$1�1��H��tH�5H�|$1�1��H���,���H��.H�8�H�|$��*H�@H��H�@1��H�<$��+H��1����I�4$H�<$�H�������H�<$H�
�H�����f����wH�H�|$H�0�H����L�%H�$I�4$�G���fDH�H�{H�0�H���4L�d$A���������H�I�|$H�0�H������I�|$@���k@��u H�����t�����
��������mH�51����H���n���I�D$H�D$�_���fD�S���H�$����f.��;���H�D$�����H�|$@����@��u H�����t�����
��������H�51����H�������H�$fDH���,����H�{@��ub@��u H�����t�����
���������H�51����H���{���H�CH�$�n���H���/����z���H���W�����H���A�������H�G�����H��������G���H�G�����H�����������H�G�����H��t����H�H�5H�81��f���SH��H���H��� uWH��H�{���<uH�T$1��J���H�D$H��[��H���H��� u@H��H�{���D�fDH�{H��uH�=�fDH�C�<t��@H�{H�C�H��u���D��H��H�H�<$�H�H�t$H�����H�����UH��SH��H�w@��uH��H�����u
H��H��[]����u�H�E��`H��`u�H���`H��`t�H��H������UH��SH��H�w@��uH��H�����u
H��H��[]����u�H�E��`H��`u�H���`H��`t�H��H����Đ��AV�H�=AUATUS��H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���	H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H��H�-H�=H�H�u�H�H�5�}��H��H��H��������ƒ����c	H���y	<��	H�xL�%L�-H�5�H�������ƒ�����H���X	<��	H�xH�5�H�;�����H�����H�5�H�;�����H�v���H�5�H�;�����H����H�5������H�5�v��H�=�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;H�5�H�;1�H�<s��H�5�H�;1�H�4s��H�5�H�;1�H�s��H�5�H�;1�H�Đ��H�5�H�;�H�9���H�5�H�;�H�δ��H�5�H�;�H�c���H�5�H�;�H����H�5�H�;�H�m��H�5�H�;�H����H�5�H�;�H����H�5�H�;�H����H�5�H�;�H����H�5�H�;1�H�ɀ��H�5�H�;1�H�����H�5�H�;1�H�)r��H�5�H�;1�H��u��H�5�H�;1�H��u��H�5�H�;1�H��u��H�5�H�;1�H�is��H�5�H�;1�H�Qs��H�5�H�;1�H��r��H�5�H�;1�H�ъ��H�5�H�;1�H�����H�5�H�;1�H�q��H�5�H�;1�H�����H�5�H�;1�H�qt��H�5�H�;1�H��s��H�5�H�;�H�����H�5�H�;1�H��v��H�5�H�;1�H�v��H�5�H�;1�H�Fs��H�5�H�H�;H�5H���H�Ur��H�5H��I���H�;H�
�y��L��H�p���H�;1�H��z��H�5�H�;1�H��{��H�5�H�;1�H��|��H�5�H�;�����H�S}��H�5�H�;1�H�kw��H�5�I�}1�H�b�H�5�H�}1�H�9�H�5�H�1�H�}���H�5H�8�H������ƒ����H���c<��H�x�����H���H�5�H�}1�H��v��H�5�H�}1�H��n��H�5�H�}1�H��n��H�5�H�}1�H��n��H�5�H�}1�H�nv��H�5�H�}1�H�Uv��H�5�H�}1�H�<v��H�5�H�}1�H��o��H�5�H�}1�H��o��H�5�H�}1�H��o��H�5�H�}1�H��u��H�5�H�}1�H��u��H�5�I�<$1�H�Vv��H�5�I�<$1�H�=v��H�5�I�<$1�H�$v��H�5�H�;�.�H�;H�5H�@H��H�@�[H�=]A\A]A^�DH���������H����H������H�H�8���f�H���������H����H����H�H�8���f�H����������H��tNH���t���H�L�%L�-H�8�i����H�L�%L�-H�8�D���L�-L�%I�}�*���f�I�}�[����I�}�0����H�H�8�5����H�H�8�
����I�<$�����I�<$���L�%L�-I�<$���f�H�L�%L�-H�8���H�H�8����H�H�8����H�L�%L�-H�8�D���H�H�8�u����H�H�8�J���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignmarshaled complex must have an array whose length is 2 but %ldcan't convert %li into Integercan't convert %li into Rationalinvalid value for convert(): %+lican't convert nil into Complex-+*i().eEPIcan't convert %li into Float01rationalize%s can't be coerced into %s11not a realin a**b, b may be too bigstring contains null byteto_cComplexabsargconvertdenominator==**fdiv-@numeratorquoreal?to_fto_ito_r@real@imageallocatenewrectangularrectpolar%<<=<=>>>=between?divdivmodfloorceilmoduloremainderroundsteptruncaterealimaginaryimag/coercemagnitudeabs2anglephaseconjugateconjhasheql?to_sinspectmarshal_dumpcompatiblemarshal_loadIcomplex.soGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�	0	DXl
�$�]E�M�G kLHH��B�E�E �D(�A0�\
(C BBBJ(F BBB$DE�E�G fDDDXl(��E�D�O S
DAH$�2E�A�G _DA �jE�G z
FD$�IE�E�G kDD 04�B�D�D �D0�
 DABC$hYE�P�D zDA�4��B�D�D �l
ABGqFB0��A�h
GK
EF
JF
RA$8L}HT
Du
Kl'H^ �(J L
Ju
K,��F�K�A �D
ABG ��L�r
J`,�9L�r
J�
AA
EF,�L�U
O,LF�H�C �p
CBJP|_F�A�A ��
ABN�
ABOL
ABAX
FDN(�]E�D�J Z
AAA<�QI�B�H �A(�D0�;
(D BBBC8<�M�A�D �~
ABMj
DBH<xF�M�B �A(�A0��
(A BBBG<�F�M�B �A(�A0�
(A BBBG@��F�D�L �A(�A0�D@�
0D(A BBBC@<�E�D�J a
NAMo
CAE~
FAC<��F�M�B �A(�A0��
(A BBBGL��B�M�B �A(�A0��
(D BBBHD
(A BBBEL	B�M�B �A(�A0��
(D BBBHD
(A BBBM@`�F�D�L �A(�A0�D@�
0D(A BBBKd��M�B�B �A(�D0��
(A BBBFo
(A BBBJ�
(D EBBJd�M�B�B �A(�D0��
(A BBBFo
(A BBBJ�
(D EBBJdtM�B�B �A(�D0�M
(F BBBI
(D BBBG�
(D EBBJH�F�B�B �B(�D0�A8�J`X
8A0A(B BBBC|(	sF�B�B �E(�A0�A8�JP
8J0A(B BBBF0
8D0A(B BBBCs
8D0A(B BBBH|�	)
F�B�B �E(�A0�A8�JP
8D0A(B BBBDo
8J0A(B BBBF-
8D0A(B BBBF(
(<
�M�D�I �u
ABF<h
aM�B�B �A(�D0�E
(D BBBK�
�
<�
�F�I�B �D(�G0��
(D BBBC,PA�C
B�I���E��
H0@�B�A�D �D0Y
 AABH8t'F�N�A �C(�DPL
(A ABBB ��E�G s
AH�-H d(�_E�D�D Z
DAD(_E�D�D Z
DAD<D�F�N�B �A(�A0��	
(H BBBJ	+B ]y!��"��#"	;	G	b{	��'� �'�808,JF@
SJoh�P�h���p]����
���2�L�Y�u���D�	��	������!$0!POn0	��O��P��	(�	 �B:2NBi��Pj���	��I�	��	!$/!G�]0�f��)��Y�)�@�0�@:%@�2:I�^@�f����������,G�` }l	������'����	��(		!	�	>	�
Y	
�g	�
�	��	�
��		x�		8�	��		
�	�9�		@
	

�
5

�A
	0I
�
k
��
�
�
	�
��
?�
�_�
?�*@]7�e���Q�	�	H��������4�@	`J�g�!����!��'��!���'��)
�'�
�)9
�.W
�)�h
	Xu
�.�
�2�
�.��
�2�
�6�
�2	�
�6�
V<�6�V<4BL`<�WBq�G�B���G��M��G��M��[�M	p	P �[:sgR\s]sgx�t��g)
�	h��t��t��t�u+�uI�xe�x�y�y�y�#y�y�#y�|,�|F0�^�|Pi0��(��0���(��W��0�'
W�(�A`��M�g=�=������������#ߔ !"#=BGLQV[
`ej@ou`{1�4�@�\�_�j���������������������������������������#)/5;$A*G,M.S1Y5_7e:kCqGwN}T�Y�`�j�p�u�~��������������������������������
%5J^

$%&o�����������'.<LZep����������+Jjt���������
*8EQ^j|������t��t���ua�0y��):NUcr����-�@�_���_�����/IZs~����.annobin_complex.c.annobin_complex.c_end.annobin_complex.c.hot.annobin_complex.c_end.hot.annobin_complex.c.unlikely.annobin_complex.c_end.unlikely.annobin_complex.c.startup.annobin_complex.c_end.startup.annobin_complex.c.exit.annobin_complex.c_end.exit.annobin_nucomp_real.start.annobin_nucomp_real.endnucomp_real.annobin_nucomp_imag.start.annobin_nucomp_imag.endnucomp_imag.annobin_nucomp_false.start.annobin_nucomp_false.endnucomp_false.annobin_nucomp_dumper.start.annobin_nucomp_dumper.endnucomp_dumper.annobin_numeric_imag.start.annobin_numeric_imag.endnumeric_imag.annobin_numeric_abs2.start.annobin_numeric_abs2.endnumeric_abs2.annobin_nucomp_abs2.start.annobin_nucomp_abs2.endnucomp_abs2.annobin_read_digits.start.annobin_read_digits.endread_digits.annobin_numeric_rect.start.annobin_numeric_rect.endnumeric_rect.annobin_nucomp_polar.start.annobin_nucomp_polar.endnucomp_polarid_argid_abs.annobin_numeric_polar.start.annobin_numeric_polar.endnumeric_polar.annobin_nucomp_rect.start.annobin_nucomp_rect.endnucomp_rect.annobin_nucomp_f_complex.start.annobin_nucomp_f_complex.endnucomp_f_complexid_convert.annobin_nucomp_marshal_load.start.annobin_nucomp_marshal_load.endnucomp_marshal_loadid_i_realid_i_imag.annobin_nucomp_marshal_dump.start.annobin_nucomp_marshal_dump.endnucomp_marshal_dump.annobin_nucomp_hash.start.annobin_nucomp_hash.endnucomp_hash.annobin_nucomp_denominator.start.annobin_nucomp_denominator.endnucomp_denominatorid_denominator.annobin_nucomp_arg.start.annobin_nucomp_arg.endnucomp_arg.annobin_f_format.start.annobin_f_format.endf_format.annobin_nucomp_inspect.start.annobin_nucomp_inspect.endnucomp_inspect.annobin_nucomp_to_s.start.annobin_nucomp_to_s.endnucomp_to_s.annobin_read_rat_nos.start.annobin_read_rat_nos.endread_rat_nos.annobin_str2num.start.annobin_str2num.endstr2num.annobin_numeric_conj.start.annobin_numeric_conj.endnumeric_conj.annobin_nucomp_to_c.start.annobin_nucomp_to_c.endnucomp_to_c.annobin_numeric_real.start.annobin_numeric_real.endnumeric_real.annobin_numeric_arg.start.annobin_numeric_arg.endnumeric_argrb_intern_id_cache.13943.annobin_nucomp_s_alloc.start.annobin_nucomp_s_alloc.endnucomp_s_alloc.annobin_float_arg.start.annobin_float_arg.endfloat_argrb_intern_id_cache.13957.annobin_nucomp_loader.start.annobin_nucomp_loader.endnucomp_loader.annobin_nucomp_to_i.start.annobin_nucomp_to_i.endnucomp_to_iid_eqeq_pid_to_i.annobin_nucomp_to_f.start.annobin_nucomp_to_f.endnucomp_to_fid_to_f.annobin_nucomp_to_r.start.annobin_nucomp_to_r.endnucomp_to_rid_to_r.annobin_nucomp_rationalize.start.annobin_nucomp_rationalize.endnucomp_rationalizerb_intern_id_cache.13708.annobin_nucomp_abs.start.annobin_nucomp_abs.endnucomp_abs.annobin_nucomp_eql_p.start.annobin_nucomp_eql_p.endnucomp_eql_p.annobin_nucomp_s_canonicalize_internal.start.annobin_nucomp_s_canonicalize_internal.endnucomp_s_canonicalize_internalid_real_p.annobin_nucomp_coerce.start.annobin_nucomp_coerce.endnucomp_coerce.annobin_nucomp_conj.start.annobin_nucomp_conj.endnucomp_conjid_negate.annobin_nucomp_negate.start.annobin_nucomp_negate.endnucomp_negate.annobin_nucomp_s_new.start.annobin_nucomp_s_new.endnucomp_s_new.annobin_nucomp_eqeq_p.start.annobin_nucomp_eqeq_p.endnucomp_eqeq_p.annobin_nucomp_numerator.start.annobin_nucomp_numerator.endnucomp_numeratorid_numerator.annobin_m_sin.start.annobin_m_sin.endm_sin.annobin_m_cos.start.annobin_m_cos.endm_cos.annobin_nucomp_s_polar.start.annobin_nucomp_s_polar.endnucomp_s_polar.annobin_nucomp_add.start.annobin_nucomp_add.endnucomp_add.annobin_nucomp_sub.start.annobin_nucomp_sub.endnucomp_sub.annobin_nucomp_mul.start.annobin_nucomp_mul.endnucomp_mul.annobin_nucomp_expt.start.annobin_nucomp_expt.endnucomp_exptid_exptid_quo.annobin_nucomp_div.start.annobin_nucomp_div.endnucomp_div.annobin_nucomp_fdiv.start.annobin_nucomp_fdiv.endnucomp_fdivid_fdiv.annobin_nucomp_canonicalization.start.annobin_nucomp_canonicalization.end.annobin_rb_complex_raw.start.annobin_rb_complex_raw.end.annobin_rb_complex_new.start.annobin_rb_complex_new.end.annobin_numeric_to_c.start.annobin_numeric_to_c.endnumeric_to_c.annobin_nilclass_to_c.start.annobin_nilclass_to_c.endnilclass_to_c.annobin_rb_complex_polar.start.annobin_rb_complex_polar.end.annobin_parse_comp.start.annobin_parse_comp.endparse_comp.annobin_string_to_c_strict.start.annobin_string_to_c_strict.endstring_to_c_strict.annobin_nucomp_s_convert.start.annobin_nucomp_s_convert.endnucomp_s_convert.annobin_string_to_c.start.annobin_string_to_c.endstring_to_c.annobin_rb_Complex.start.annobin_rb_Complex.end.annobin_rb_complex_set_real.start.annobin_rb_complex_set_real.end.annobin_rb_complex_set_imag.start.annobin_rb_complex_set_imag.end.annobin_Init_Complex.start.annobin_Init_Complex.end.LC0.LC2.LC4.LC1.LC3.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC17.LC18.LC19.LC20.LC22.LC23.LC21.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_funcall__ctype_b_locrb_assoc_newrb_cComplexrb_funcallvrb_check_typerb_ivar_setrb_eArgErrorrb_raiserb_copy_generic_ivarrb_hashrb_memhashrb_num2longrb_lcmrb_math_atan2rb_str_cat_cstrrb_str_concatrb_isdigitrb_str_catrb_usascii_str_new_staticrb_inspectrb_Stringstrchrstrpbrkrb_cstr_to_dblrb_cstr_to_inumrb_cstr_to_ratrb_float_new_in_heaprb_mMathrb_const_getrb_intern2rb_newobj_ofrb_ivar_getrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_cFloatrb_obj_is_kind_ofrb_eRangeErrorrb_str_to_inumrb_str_to_dblrb_scan_argsrb_math_hypotrb_cSymbolrb_cFalseClassrb_cFixnumrb_cTrueClassrb_cNilClassrb_cNumericrb_obj_classnamerb_eTypeErrorrb_math_sinhrb_math_cosrb_math_coshrb_math_sinrb_num_coerce_binrb_cRationalrb_math_logrb_math_exprb_cBignumrb_warnnucomp_canonicalizationrb_complex_rawrb_complex_newrb_complex_polarstrlenrb_free_tmp_bufferrb_alloc_tmp_buffer__stack_chk_failrb_must_asciicompatmemchrrb_str_modifyrb_backref_getrb_match_busyrb_backref_setrb_convert_typerb_Complexrb_complex_set_realrb_complex_set_imagInit_Complexrb_define_classrb_define_alloc_funcrb_undef_methodrb_define_singleton_methodrb_define_global_functionrb_define_methodrb_define_private_methodrb_cObjectrb_define_class_underrb_marshal_define_compatrb_cStringrb_define_constrb_provide�T���������T���������U�����������T�����������T��������7*W��������C�iY���������$�Z����������Z���������*[�������������������\��������&V��������4]��������a^��������u^���������_���������`���������`���������|�T���������|�T�������������������c�����������T���������d���������e�������������������f��������T��������)���������Ie��������Y���������af�������������������g���������*h��������d�����������������f��������7*i��������Jj��������V���������^k��������ml��������RT��������^j*p�������������������r����������s��������B	T��������N	Z	*p���������	�	����������	r���������	
$
t��������3
;
t��������g
u���������
v���������
u���������
v���������
*w���������
x��������t,T��������U4�*y�������������������\���������*w���������x��������tT��������E<�*y�������������������\���������{��������
*w��������'
x��������G
tX
T��������h
,�
*y���������
����������
\���������
����������
|���������
*w���������
x��������#t4T��������@���������*y�������������������\����������������������������r�����������������t/T��������ftzT�����������T���������*w���������x���������x��������{�����������T���������*w���������x���������<�x��������V*W��������^x��������*~��������R*���������*���������*����������*���������*~��������*���������:*��������gtyT���������*����������*����������*w���������*w���������*����������*����������*���������*���������*~��������#*~��������2*w��������A*w��������P*���������_*���������n*���������}*����������*w���������x��������t	T��������+D7T��������GDST��������cDoT���������T���������T���������s��������DT��������4T��������Hs��������iu���������v���������u���������v��������T��������Wu���������v���������u���������v��������*���������x��������cDoT���������s���������*~��������*���������u��������Cv��������O*w��������^*��������m*���������|*����������������������������������������*����������\���������\�T���������*w��������.x��������vt{T����������D�T���������D�T���������D�T���������D�T��������T��������*s��������Ku��������sv���������u���������v���������*��������&T��������AT��������Qs���������u���������v���������T��������*���������'u��������[v��������k*����������*����������*~���������\�T���������\T��������*w��������Qx���������t�T����������D�T���������D�T���������D�T��������DT��������=T��������Rs��������su���������v���������u���������v�������� *��������F T��������a T��������q s��������� u��������� v��������!T��������+!*���������G!u��������{!v���������!*����������!*����������!*~��������"���������"|��������b"*���������m"x��������}"D�"T���������"*w���������"x���������"D�"T���������"D�"T���������"D#T��������#D #T��������A#T��������U#s��������v#u���������#v���������#u���������#v��������$*���������#$x��������3$D?$T��������O$*w��������c$x���������$t�$T���������$%*���������
%x��������%D)%T��������=%*w��������X%x���������%T���������%T���������%s���������%u��������%&v��������E&T���������&*w���������&x���������&u��������3'v��������s'*w���������'x���������'*����������'����������'\��������(*W��������(x��������(*���������%(x��������1(D=(T��������\(t�(t�(T���������(t�(T��������[)tj)T���������)|�)T��������*|*T��������<*T��������J*TS*T��������j*T��������u*|�*T���������*T���������*T�*T���������*T���������**w��������!+x��������i+tn+T��������y+�+D�+T���������+D�+T���������+D�+T���������+D�+T��������
,T��������",s��������C,u��������k,v���������,u���������,v���������,*��������-T��������1-T��������A-s���������-u���������-v���������-T���������-u��������3.v��������C.*���������k.*����������.*����������.*~���������.D�.T���������.����������.����������.T��������/���������/���������+/T��������8/*W��������B/*w��������J/x���������/t�/T���������/�/D�/T���������/D�/T���������/D�/T��������0D0T��������40T��������H0s���������0T���������0T���������0s��������!1u��������U1v��������u1T���������1u���������1v���������1u��������32v��������G2u��������|2v���������2D�2T���������2����������2����������2\�2T���������2T��������3���������3���������.3T��������;3*W��������E3*w��������M3x���������3t�3T���������3�3D�3T���������3D�3T���������3D�3T��������4D4T��������<4T��������P4s���������4T���������4T���������4s��������15u��������e5v���������5T���������5u���������5v��������6u��������C6v��������W6u���������6v���������6����������6|��������"7*���������-7x��������=7DI7T���������7T���������7T���������7*w���������7x��������8t8T��������8+8D78T��������C8DO8T��������[8Dg8T��������w8D�8T���������8T���������8s���������8u��������9v��������*9u��������R9v���������9*����������9x���������9D�9T��������S:*���������^:x��������n:Dz:T���������:T���������:T���������:s��������!;u��������U;v��������u;T���������;u���������;v��������A<*���������H<���������R<\��������g<*W���������<x���������<T���������<T���������<*w��������	=x��������[=Dg=T��������s=D=T���������=D�=T���������=D�=T���������=T���������=s��������S>*��������c>*���������n>x��������z>D�>T���������>T���������>T���������>s��������3?u��������f?v��������s?*����������?�?T���������?*~��������"@t'@T��������V@T���������@*~���������@u���������@v��������Au��������CAv��������WAu���������Av���������A*����������A*����������A*����������A*w���������A*���������A*����������A*���������B*W��������0Bx��������RBT��������nBT��������xB*w���������Bx��������CDCT��������#CD/CT��������;CDGCT��������WCDcCT���������CT���������Cs��������D*��������D*���������Dx��������*DD6DT��������vDT���������DT���������Ds���������Du��������Ev��������#E*���������>EpET���������E*~���������Et�ET��������FT��������cF*~��������wFu���������Fv���������Fu���������Fv��������Gu��������;Gv��������KG*���������cG*���������sG*����������G*w���������G*���������G*����������G*����������G*W���������Gx���������G*����������Gx��������HDHT��������MHT��������iHT���������HT���������HT���������HT���������HT���������H*w��������Ix��������SItXIT��������cI{ID�IT���������ID�IT���������ID�IT���������ID�IT���������IT��������
Js��������sJ*���������JT���������JT���������J*~��������KT��������1KT��������AKs���������Ku���������Kv���������KT���������K*����������Lu���������Lv���������Lu��������Mv��������Mu��������SMv��������cM*���������sM*����������M*~���������M*����������M*w���������M*���������M*����������M*����������M*���������Nx��������N*w��������Nx��������.N*���������9Nx��������IN*W��������UNx��������jNx��������zN*����������Nx��������Os��������OT���������OT���������OT���������OT���������OT��������P*��������(Px��������8PlCP���������cP�tPT��������{P��PT���������PT���������P����������PT���������PT���������P���������Q���������QT��������9QT��������PQT���������Q*w���������QT���������QT���������Qx��������Rt RT��������+RCRDORT��������[RDgRT��������sRDRT���������RD�RT���������RT���������Rs��������Su��������PSv��������cS*w��������oSx���������S|�ST��������!Tt5TT��������ETTQTT��������rTT��������U*��������U*w��������3UD?UT��������OU*���������ZUx��������jU�vUT��������}U��UT���������UT���������Ul�UT��������VT��������?VT��������]V\iVT��������pVL�VT���������Vl�VT���������Vt�VT���������Vt�VT��������9Ws��������cW*���������wWu���������Wv���������Wu���������Wv��������XT��������3X*w��������CX*���������SX*���������cX*~���������XT���������XT���������Xs��������/Yu��������iYv���������YT���������Y*����������Y*w��������Zu��������LZv��������pZu���������Zv���������Z*w���������Z*���������Z*����������Z*w��������	[*���������[*w��������;[*��������J[*~��������Q[*w��������`[���������g[���������s[*����������[*����������[*����������[*w���������[*~���������[*����������[*~���������[*����������[*���������\*W��������%\L-\x��������=\*w��������J\x��������d\�m\T��������x\��\T���������\T���������\L�\T���������\T��������]T��������]T��������B]T��������I]\U]T��������\]Ln]T���������]L�]T���������]*~���������]L�]T��������^T��������0^T��������H^T��������[^\g^T��������n^L�^T���������^T���������^L�^T���������^*~��������_*���������_x��������_D&_T��������Y_x��������o_x���������_x���������_T���������_T���������_L�_T��������`T��������`T��������`L1`T��������u`*~���������`T���������`T���������`L�`T���������`T��������aT��������aL!aT��������[a*~��������waL�aT���������aL�aT���������a*~��������b*�������� bx��������dbtibT��������tb�bD�bT���������bD�bT���������bD�bT���������bD�bT��������"cT��������?cT��������Ocs���������cu���������cv���������c*��������3d*��������kd*���������dT���������d*���������e*���������e*���������#e*���������9es��������|eu���������ev���������eT���������eu��������4fv��������Cf*���������mf*���������|f*����������f*����������f*����������f*����������f*����������f*����������f*����������f*w���������f*��������g*���������g*���������6gu��������jgv���������g*W���������gd�gx���������g*w���������gx���������g��gT���������g�hT��������)hT��������HhdMhT��������ghT���������hT���������hT���������hT���������hT���������hd�hT��������iT��������+iT��������2idDiT���������ix���������iD�iT��������jDjT��������jD+jT��������;jDGjT��������ijT��������~js���������jd�jT��������kT��������(kT��������@kT��������Sk\_kT��������fkdxkT���������kT���������kd�kT���������k*~��������l*���������lx��������lD&lT��������Ylx��������olx���������lx���������lT���������l\�lT���������ld�lT���������ldmT��������/mT��������6mdHmT��������imT���������mT���������md�mT���������m*~���������md�mT��������ndnT��������Mn*~��������rntwnT���������n�n*���������nT��������oT��������&oT��������co*���������o*���������ox��������pt
pT��������p+pD7pT��������CpDOpT��������_pDkpT��������{pD�pT���������pu���������pv���������pu��������+qv��������vqT���������q*����������q*����������q*����������qs��������,ru��������_rv��������sr*~���������r*����������rT���������rs��������$su��������Xsv��������ks*����������s*����������s*����������s*����������s*����������s*����������s*w���������s*���������s*���������t*���������tu��������Ktv��������ltu���������tv���������t�t*W���������ts��������uu��������Guv��������Wuu��������uv���������u*W���������u*w���������ux���������utvT��������v#vD/vT��������?vDKvT��������[vDgvT���������vT���������vT���������vs��������wDwT��������4wT��������Hws��������iwu���������wv���������wu���������wv��������xT��������Wxu���������xv���������xu���������xv��������9y*W��������gyT���������yT���������y*w���������yx���������yt�yT���������yzDzT��������'zD3zT��������CzDOzT��������qzT���������zT���������zs���������zD�zT��������{T��������({s��������I{u��������r{v���������{u���������{v���������{T��������7|u��������k|v��������|u���������|v��������}���������7}����������}U���������~������������������Q�����������������������������!����������M�����������������������������������������,����������<����������]���������������������ց�����������*[�������������������	�\���������*[������������������$�\��������>����������U�|��������v���������������������܂���������T�*���������e�x����������*���������Ãx��������ӃD�T���������x���������D�T��������+�D9�T��������I�*W��������V�s���������T����������T����������x�������������������Ʉ���������΄����������*w����������x��������	�*���������#�*w��������/�x��������S�*w��������`�x����������t��T��������8�tI�T����������t��T��������B�*���������I����������S�\��������m���������������������܇����������*W��������q�u����������v��������шu����������v������������������r��������%���������,��1�r��������=���������D��I�r��������U���������\��a�r��������m���������t�|y�r��������������������t��r��������������������l��r��������������������d��r��������͉��������ԉ\ىr���������	���������T�r����������
���������L	�r������������������D!�r��������-���������4�<9�r��������E�
��������L�4Q�r��������]���������d�,i�r��������u���������|�$��r����������*�����������������������������������*W���������������������*w����������*������������������	����������G���������L����������b���������g����������}�������������������������������������������������������������������������ċ���������΋��������Ӌ���������݋���������������������������������������������������������
��������������������������������������(���������-����������7���������<����������F���������K����������U���������Z����������d� ��������i����������s�!��������x������������"���������������������#���������������������$�����������������������������������������nj%��������̌���������ߌ&��������������������'��������������������������������������*����������/����������E����������J����������`����������e����������{�(���������������������	����������������������������������������̍��������э�����������������������������)�������������������������������������2�*��������7����������J�+��������O����������b���������g����������z�,��������������������-����������������������������������������Ž��������ǎ���������ڎ��������ߎ����������.�������������������
�/������������������"�
��������'����������:���������?����������R���������W����������j�0��������o������������1���������������������2���������������������3�������������������͏4��������ҏ���������ُ*����������5��������������������6��������	����������"����������5���������:����������M���������R����������e�
��������j����������������������������������������������������������������������������ʐ���������ϐ���������֐*�����������������������������8���������=����������Q�%��������V����������j�&��������o������������'���������������������+����������������������������������������Α,��������ӑ����������-��������������������������������������������������������2���������7����������K�.��������P����������d�/��������i����������}����������������������,���������������������-���������������������s��������˒7�������������������8��������"�*��������R�*��������~�*����������*w����������*�����������*�����������*w����������*���������Ó*���������ʓ*w���������*����������*���������C�*w��������J�*���������c�*���������j�*w��������q�*�����������*�����������*�����������*~����������*w����������*���������Ô*~��������Ӕ*~��������dT���������T���������V���������V��������V��������KX��������a��������b���������m���������n���������o��������vq��������f	q��������_T���������z��������OT���������o��������r
T��������WX���������}��������bo���������T��������TV���������V��������t(T���������0����������4����������>���������WD���������0H���������K_���������Kl���������
y���������y�������������������� ���	$,	P	X�	���'��''8D'L8p8xJ�8�J�J�hJh0h8�dhl�������������$�,�P�X�����������!DL!p!xO�!�O�O�O08BdlB�B���B�����	$�,	P	X!�	�!�!���!��	�	)D	�L	)p	)x	@�	)�	@�	@�	:
@
:0
:8
�d
:l
��
��
��
��
��
��
$�,PX����������D�L�p�x�	����	��	��

�	
�
0
�
8
�d
�
l
��
��
	
�
��
	
�
	
�
�
$	
,�
P�
X���
�����?���??�D?L�p�x�����������0�8�d�l�����!����!��!��'$�!,�'P�'X�)��'��)��)��.��)��.�.�2D�.L�2p�2x�6��2��6��6�V<�6V<0V<8BdV<lB�B��G�B��G��G��M$�G,�MP�MX�[��M��[��[�sg��[�sgsg�tDsgL�tp�tx�t��t��t��t��u�t�u0�u8�xd�ul�x��x�y��x�y�y�#y$y,#yP#yX�|�#y��|��|�0���|�0�0�(�D0�L(�p(�xW��(��W��W���W��0�8=�d�l=��=�����=����������$��,��P��Xߔ����ߔ � � � � 4H \0p@�P�p��� �H\p0�P��P��$80l��0�@�@�(<P p����
��
�0
P�
���@�@|�����!@�'��)��.�2d�6�`<Bx�G��M,	\�	�g,
�t@
�tl
�u�
y�
y�
0y�|D0�x0��`����@���H�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@(9T(:l(;�(<�(='�ߔ"@�
І(-��3���=���8@`��(
S4�b4��]@P�0(
|�����@��0(�ܳ�ܳ��@��0(��������@�0(2���2W�)0e�.������|��S��'��2��@��S��e��t����� �����@�0(&8��()S	���@��dir.o/          1690381920  1000  135   100644  64704     `
ELF>�@@/.

"$!% &'��H��H�H�Ѓ��ff.���H��H��H�WH�wH���H���ff.�f�H��t;USH��H��f�H�;H�kH��t�H��H���H��u�H��[]���ff.�@AWAVI��AUI��ATM��UJ�,SH��H����tVH�}�I��H��tmH��L��L���A�/H��I�,I�<L��L���A�/H��L��[]A\A]A^A_�@H�}�I��H��tH��L��L�����E1��ff.�AV��E1�AUI��ATI��U��SH���H�s��t<[t@~&<\tb<]u>E1�H���H�s��u�H��[]A\A]A^Ð</uE��u�H��[]A\A]A^�A���L��L��H���Hc�H��f.���u��{uH��H��[]A\A]A^��H�s�|������H9���AWAVL�wAUATI��USH�������I����1�A���?tb~H��[t[��\uC��tjI�~�L��L���H�I�|�L9�s�L�w��u�H����[]A\A]A^A_���*t�����AE���H��[]A\A]A^A_�@H��M9�v�I���f.�1��D1���@��SH��H��t
H�?H��t�H��[�ff.�f���H��H�~H�=��H�T$��D$H���f.���H��H��H�OH�H�H�51���H���f�AW��AV��I��AUA��ATA��UA��SH��hH��D$H��H�|$0��H��H�t$8H�$�D$�I�.L�<H���H�D$(H�D$ H�H�D$�A��u
�}.��A��I��D����L$<?�~<[��<*���|$t<\��<I���E���b�L$H����</��A�$��t{</twH�$L��L�����~dLc�H�D$H)�I9����D$��tHL�4$1�L��L��L���L�����H�t$1�H��L����L�����9���@H�|$ tH�|$(�LH�D$0L� H�D$8H�(�H��h[]A\A]A^A_��I��A�D$I�T$<*t�H�T$ <\u�|$�H�L$ �„��>D�T$HE���-��/�'�U���"��/�L�d$ H�l$(<?�����D�E���P���</uD�L$HE���>���H�$H�t$H��I�\$�H�H�A�D$I���3�����E������</uD�D$HE�������M�l$M9�����E�t$A��!���D$LA��^��1�L�d$@H�l$A��L���E����H�D$H�t$H)�I9�L��H��A����tY�t$E1�tNL�4$H�t$1�H�|$L���L�����L��1�L��H��A���L�����D�3A9�A��E��H��A��]�2A��\u�|$�YE���hH�$L��H���Lc�J�\-I9��HD�3A��-�"����C<]����L�s<\u�|$�[���H�$L��L���Hc�I�E���L�T$H�t$I)�M9�'L��H��H�L$XL�T$P�L�T$PH�L$X���#I9�|H�t$H��L������H�|$H�$1�H�t$��|$A�Ņ���H�$1�L��H���A9��0H�$1�L��L���E1�D9�D�3A�����@A�<$�6���H�|$ ��������@D�uH��E�������fDH�|$ L�d$@H�l$�r����y���DD�3�H�����}���H�D$0H�L$ H�H�D$8H�(H��h�[]A\A]A^A_�DD�3A����f�M�l$E�t$�D$L�6������E��u	<\u�S���.u�H�D$(H�D$ ����@D�3E1����@H�l$(H�$H�t$H���L�d$ H�H�H�l$(A�$����L��H��L������
���M�L�A�$�|���f.�L�s�C���H�4$���H�$1�L��H��A���H�4$���A9������H�,$L��L��1�H���H��������f.��L$LD��I��L�d$@H�l$9������L��H�������H�$H�t$H��I���H�H�A�E���@I�L$A�T$����H�$H�t$H��M��H�H�A�$����H�D$0H�H�D$8H�(1��_���H�D$0L� H�D$8H�(A�$��t2�T$H�����</�����-���H�D$0L� H�D$8H�(A�$��u�1��
���@AWAVAUA��ATI��UH��SH��H��8H�|$ H��H�T$(�H�D����D$A����H�D$(H�$E1�H�D$H�D$ H�D$A�<$*��H�t$H�|$H��D�����A�ą���H�<$��M�����T$A���u*<.u&�f.�L��H��H���H�I�A���t</u�t}H�$I��L�|$(I��H�D$ A�<$*�j���A�|$*�^���A�|$/�R���I����A�|$*uI��A�|$�/uL�d$ A�<$*L�$$t�L�|$(����f.�A�H��8D��[]A\A]A^A_��L�t$(A���u#�%�L��H��H���H�I�L�t$(A���t</u�H�T$ �:u���������������L�bI�NL�d$ H�L$(�s����H�t$(H�|$ H��D���{���A���Y���AWI��AVA��AUATM��USH��XH�<$�t$H�T$H�L$�I�,A�����1�E1�A���2�<}u<������L��L��H���H�I�A���tF<{u҅�t.����f�A��t�<\u�A�I�GtI���fDM����fDM��t1�H��X[]A\A]A^A_�f.�H�t$H�<$L��H�D$H��X[]A\A]A^A_���M��t�H�<$�H��H��H�D$ �I�Ƹ����M��t�H�4$L��L��H)�H��H��H�D$8H�D$(�H��L�H�D$HI�GH�D$@�D$��M9���L�t$0M��A��I�FH�$I9��{L�4$1��*<{����L��L��H���H�I�M9���A�<,uх�u�H�4$L��H�|$HH)�H���H�T$ H�D$0H\$8H�t$@H)�H�<�H�L$H�T$M��t$H�|$0��������M9��N���L�t$01��fD<}u���W���A���M���<\�E���I��M9��8���H�\$8L��H+$L�t$0H�H�\$(�M��H�\$8L�t$0L��H+$H�H�\$(H�4$H�|$H�H�T$ H�|$(H�t$@H)�L��H�L$M��L��H�T$�t$�������H���L���$��$H��X[]A\A]A^A_�L�t$0H�\$81��L�t$0��ff.���AWAVI��AUATI��UH��SH��H�^H���H9����}tA�H��D��[]A\A]A^A_�f�H��I�����u�E�oA��u�L�����u�H�����u?L���D$�H�L$H��L��I�4I���I9�u��|$u�f�A�L$H�SH� tH�SH��L��E1�������A���M������U1�H�SH��HH�\$L�L$L�D$H�������H��1��H�|$�H�D$H�|$H���H���H�T$H� uPH��H�|$H� u.H����H���@����¸��tH�\$ H�D$1�H��H[]�f�H���f.�H�R�f.�H�|$@��u}���H���H�|$�H�D$@���I���H�|$H�D$(�l$0�H�|$H�L$ I��H� uDH��H������������U���H��H�[]�fD�����1��8����H��f.���U1�H��SH��H�=H���H��H��H��[]��ATI��H��U��SH��PH�t$�H���H9����H9���H��L�d$@H�D$0H�D$H�\$HH�D$H�|$��H�D$H�D$0���H� t7H�H���H�L$I�؉t$ H�T$H��H�D$���H��P[]A\ÐH����f.��H���l����H���N���AWAVA��AUI��ATI��USH���H��M��~L1�I���DH��I9�t7I�|�L�|$H�<$�D��H��H��H�$������t΃��t!���f�H��H��[]A\A]A^A_�fD�AWAVAUATUSH��(H�|$�t$@��u
H������7H�D$H�D$�H�D$�L�|$E1�H��M�7A�� ��f�I��A��M9���M�oM�L���L��H���H��L��H����T$H��H���������L�|$M�7A�� uoL��H��H�Ӄ�I9�}|L���I�OH��I�DH�H9�w��H��H9�t�8t�H��H)�I��A�� �D���M;g}-M�o�J���DI�_I9�}L���I�OH��I�D�H��(H��[]A\A]A^A_Ë�����������H���H�|$H���������t����ff.����ATI��UH��SH���H��L��H���[H��]H��A\�ff.�f���SH������u\H�H�D$H��t.H�\$H���H�|$�H�|$�H����8u01�1��H���H��[�f�H�D$��D1�1��H�|$H���H��[ú1���AVAUATUH��SH��H��H�$�H��H�D$H�<$�H��H�$�I��H�$H��� uTH��L�`��M�,L��L��L���L��L��H���H�<$L)�H9�|-�H�EH��[]A\A]A^��L�`H�X�fDH�<$H��1��H��H�$�f���H��H�|$H�t$����H�|$H� uH�����x�H���@H���H�t$H�=�f���H��H�|$H�t$���H�|$H� uH������t�H���H���H�t$H�=�f�SH��H� uH����x[�@H���H��H�=�ff.���SH��H�����H�=�CtH�{[�D�H�{[H��f�H��@��u2H�����t)H��ƒ���t��uH�5�H�8t
H����H�H�5H�81�����S���H�8H���H��[�ff.�f���H����UH��SH��@��t-H��H�H���?���H��H�8�H��H��[]�f.�H���H������SH�����H��[�ff.���H�����H�8�H��H���ff.�@��SH�����H�8�H��[�fD��USH�����H���H�}�H���H��u���u-H���[]�H�XH���H�UH��H��H��[]�1�����H��H�5�H�xH��tH���f��H���fD��H�����H�8����tH�H��H�D�H�=�ff.���AVAUI��ATI��US��H�� H�=uH�H����H��H�l$��L��I��L�D$H��1�H��H�|$H����H�l$H�|$�H��H�D$�H�|$I���H��H�D$�L��H�5H�D$�H�8H��H��t�H�|$L�sH�H�CL�wH� u)L���H�H��t-L�kH�� L��[]A\A]A^�DL�wL���H�H��u�������veH�l$H�=L��H�D$�@L�D$�1�H�5�H�|$H��4��H������I������f.��L���H�H���F����D�H�=�H�H��U���ff.��UH��S��H��H�5H��t9H�H���H�8�H�5H��H���H��H��[]�f��H�=�H��H����H�����H�=H��H�����H��H���fD��ATI��U���SH���H��H�H���L���H��H���/������uH��[]A\�fDH�=H��H��[H����]A\�ff.���U�H���SH���H��H�H��H���H�H�CH�CH��[]ÐAUI��ATA��H��H��UH���SH��(��Å�xH��(��[]A\A]�f.������ƒ�����t�E��y�H�H��1�H�l$H�=�H�$L�l$��ff.��AWA��M��AVA��AUATUSH��H�<$�t$$L�D$(M9���L��1�1�1�E1�E1�H�=f.�H�2�F��uH�F��@��w$Hc�H�>��f.�A�f.�H��I9�w�H�<$�L$D�T$�D�T$�L$H�D$H�$�8�rE����E����	Є���D��	��	H�$H��8HE�H���H�D$0H���dH�L$(L���l$8L�|$HH)�H��H��H�D$@I�G�H)�H��L�d�HcD$$HD$H�D$PH��$�H�D$X@H�|$0�H���P�T$8��t�x.���x�9��$Pt�H�XH����T$$H�<$H��H�t$I�����I��H����H�D$P�D$����L�H�D$H�|$@�I��H���I��H�L$HH�D$(H9���L��L��I�����v1I��L9�tbM�<$A�G��u�|$uL�;H��M�A�G��wϋ�$PH�T$H��$hI�?�F���u�I�GI��H��H�C�L9�u�DI��I��$hM��M��L����$h����$h��$hP�L$(�9���H�� L�����L������{���H�|$0���@A����D��~���fD��n���fDA��]���D��A���A��A��A��A ���A�����L��$�E����H�4$L�ʿ�L$��L$���:�:��$�E1�A�A�%�=@A�„�t@D�T$H��$hD�D$H��$`H�<$��$X�Å���D�T$D�D$A�A����E�����T$$H�t$E1�H�
H�<$�#��H����H��H��$hH�D$H��$`��$XH�L$��H�����ujE�����a��������ƒ�����tF��$P��y;H�H�\$hH�D$`H��$hH�t$`1�H�=D��H�D$p�f.�1�H����[]A\A]A^A_�f.�E��t�L�t$(L��L)�H��H�D$8�H�D$HH����H��L��1�M9���@H��xHC�H��H��H�A�I9�w�I�G�H�L$HH+D$(H��L�|�H��I9�����$PH�h�\$X���L$@�f�H��L9|$��H�]�H�l$H��t�L�#L���I��H�@H��H�D$�I��H����H�T$L��H����D$@���H�|$8�H�D$(H���tH�L$(H�CL�aH�L9�sUH�l$0D��$Pf�H�]H��t/H��$hH�;D��L���a���uH�CH�EI��I�D$�H��I9�w�H�l$0H�<$L�D$L��T$$H�t$���L��H���H���������M��H���$h���$h��$h��$hPL�t$HM��� ���H�� H��A���L���E�������D��H�|$H����H�$�L$H����;D�T$H�D$��E1�1�1�E1�E1�A����!��j���1�L�hL����T$$H�<$L��H�t$I������I��H��t2H�D$PL�H�D$��$P�������D$�����0���f�H�|$0����������@f�x.������\$8�v���E1�E1�E����E����	�������$PL��$�H�<$D�D$H��$hL��D�\$0L�L$�I���A�…�u���$�D�D$%�=@�*=�L�L$D�\$0�]������GH��$hH��$`H�<$��$X�Å��N����?���DH��$h��$PL��H�t$X����D$��������$��L$8%��L$=@�����1�=���ۉ\$���A�K�.����L�|$0L��$hM��L�t$PH�\$L��H�l$(H��<\u.M��M)�L9�tL��L��H���L�A�}M�u��M��L��L��H���H�I�A�E��u�H��M��H�l$(L�|$0H�\$L�t$PI�MH��L)�H�D$I9��D���L)�L��H����1���1����������ƒ����������$P������H�H�D$`H�$H�D$h���L������������E����E����E1�E1�1�	����H�=1���\$X���H��M��H�l$(L�|$0H�\$L�t$PI�M�'���A��>���L���������q���������g���H�|$(�������S���D�����H�D$�.������������AWAVAUM��ATUSH��H��X�t$ H�T$(H�L$0H�����?/�I��1��H�D$H�������t1���H�|$����9�r�H�D$L���(�L�H�D$L9��8E�4$E���BH�D$H�D$$M��H�D$8H�D$��;�5I��M)�I�~�H��H����H��L��L���H��B�01��E1�H�M�;t	H���H�t$H�UH�T$H�.H9\$�D�3E����I�߿�H��H����I�GH9D$v
A��*��D�t$ H�t$L��L��D�����L��D��L��H��H���Z��A�ă�w�D$$������I��M)�I�~�H���L��L��H���H��B�01�A����������A�<$����L��L�s�T$ H�t$L��L������T$ L��L��H��I��������v����L�g����DA�*����A�/����f.�A�GI�WI��</uI��A�</t�<*uA�*uA�/t��EL���H�E�D$$�Q���fD��H�T$HH�T$8H�T$H���H�D$HH�D$@H�D$H�H�|$H�"��H�|$������H��X��[]A\A]A^A_�f��A���H��t��E�����PH�T$H�H�H�|$HH�@t�AU�����1��t$8��t$8�D$8PL�|$8L�D$XL��L�L$p��H�� H�|$H�����L����_���f�E1�1��o����H���������H�������H�T$HH�T$8H�T$fD��>������������@��H��I��H�N�vH��������H��tHc�1��J�f.�H�81����fD���G��t-H���-uH�H�?����H�����f���ATH�5USH���H�xuBH�5H��tH��1�[1�]1�A\�@�H�=�H��H����H�=H���I����������؃�����H��������H�{�L��H����L��H�5�H�uL���L��H�5�L��[]A\�fDH�����u�H��tAH��u�H�H�8�H�H�8�����H�H�8�o����H�H�8�_����H�H�8�O����H�H�8�?������ATI��UH��S�����t7H������H��H�=�H��H���[�]A\�f.��H���H���L��[E1�]H��A\�ff.����UH�1���SH��H��L�D$H�����tCH����H�<$H� uH��������t?H���[]�f�H���f.�H�|$@��t
����@����H�4$H�=�ff.�@��SH�1�1�H�� H��L�D$�����H�<$�H��tWH�8H�D$�� u7H�p H�x����H��H�D$H�D$H�D$���u4H�� H��[�@H��H�p����H�<$���E�H�����t�H�߻�H�� H��[�H�|$@��t����S���f�����>���@��ATI��US���t\L����H�8H���H�}�/H�XH���H�UH��H���H���H�}H��t7�H��u�L��[]A\�f��H���[L��]E1�1�1�H��A\�H�H�5H�81��D��USH���H��H���H���H��H���H���H��H��[]Ð������ATI��U���SH��0H�D$H�\$�1�H��L��H��������H�=�H����H���H�D$���$���uIH�|$��H��0�[]A\����t�H9t�1�H�=����t��H���H�t$H�Q����D$ H�D$H�D$H��H�=e�H�D$�H��0[]A\�f�H�\$H�|$�H��H�D$�H�D$�4���f.�H�=�H������H�H�5H�81����AUI��ATI��UH��S����H���H����L��[L��H��I��]A\A]����ff.�@��ATI��UH��SH��H�� �H���H��I��H����L�$$H�l$H�D$���t���t���fDH�� []A\�����AUI��ATI��UH��S����H��(���H��H��I��H�z���L�,$L�d$�\$�8��H��([]A\A]�ff.�f���H��(���H�$H�7���H�L$H��t$���H��(Ð��H�SH�=H�0�H�H�H��H�2H��H�;H�5��H�;�����H�{�H�5�H�;�����H�����H�5�H�;�����H��H�5�H�;�����H���H�5�H�;1�H�B�H�5�H�;1�H���H�5�H�;1�H���H�5�H�;1�H�����H�5�H�;1�H�2�H�5�H�;1�H�
���H�5�H�;1�H���H�5�H�;1�H���H�5�H�;�H��H�5�H�;1�H�g�H�5�H�;�H�,�H�5�H�;1�H���H�5�H�;�����H�Y���H�5�H�;1�H�1���H�5�H�;1�H����H�5�H�;�H����H�5�H�;�����H�S���H�5�H�;�H�8��H�5�H�;�H���H�5�H�;�H���H�5�H�;�����H�g��H�5�H�;�����H�|���H�5�H�;�����H�Q���H�5�H�;H��H�5�H�;�H�k��H�5�H������H����H�5H�;�H�;�����H����H�5��H�=��H�=��	H�=��H�=��!H�=��H�=[�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign%s: %s21closed directorydirfdencoding1:open.continuous RECURSIVEs#<:>to_s1101HOMELOGDIRHOME/LOGDIR not setDirforeachentriesinitializefilenopathto_pathinspectreadeachrewindtellseekpospos=closechdirgetwdpwdchrootmkdirrmdirdeleteunlinkhomeglob[]exist?exists?fnmatchfnmatch?FNM_NOESCAPEFNM_PATHNAMEFNM_DOTMATCHFNM_CASEFOLDFNM_EXTGLOBFNM_SYSCASEdirDir.exists? is a deprecated name, use Dir.exist? insteadconflicting chdir during another chdir blockdir_initializedir_chdirdir_s_chrootdir_s_mkdirdir_s_rmdirdo_lstatdo_opendirdo_statGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0#HZ(HAF�A�G gAAI��Ht�B�B�E �E(�D0�E8�G@H
8D0A(B BBBE\��B�H�E �D(�C0�q
(A BBBBM
(A BBBDy
(A BBBHx �N�B�F �B(�D0�A8�D@W
8C0A(B BBBDa
8A0A(B BBBEX������H@�������#E�Y�&H ]�.Kbd�|B�D�H �E(�D0�E8�D�m
8A0A(B BBBI�
8F0A(B BBBFHP
B�B�B �E(�D0�D8�GpP
8D0A(B BBBI|�%B�E�E �B(�D0�A8�D��
8A0A(B BBBKU
8A0A(B BBBI�
8A0A(B BBBAH�F�B�E �B(�D0�D8�DPe
8D0A(B BBBC4hvE�J�D`�
AAC�
FAG$�/E�F�N IGA0��B�G�C �Dp�
 AABBH��B�B�E �E(�D0�A8�DP]
8D0A(B BBBGHH�B�B�B �B(�A0�A8�D`E
8D0A(B BBBA(�3F�D�D �WDE(��E�D \
AJj
AA@��B�B�B �A(�D0�D@�
0A(A BBBH0WH s
ELWH t
Dh5A�Z
E�NE�i
JJ�YDw
A�#E�]�
(�ME�D�D c
DAKE�L8!HQPE�T4lhE�A�D n
FAAT
GAE�:HZ
NI�2HX
F@��F�B�E �D(�A0�FP�
0D(A BBBF($mA�D�F v
DAJP*HP4huF�I�H �w
ABGNHB$�OE�N�D uAA8��B�E�J �I(�DPO
(C ABBKx�
B�H�E �B(�A0�A8�G�{�P�Q�H�M�
8C0A(B BBBK��I�G�H�Q�`�B�B�B �E(�A0�A8�G�

8C0A(B BBBCD�K�F�E�[���*	>Oe8$	oF�H�A �a
CDI�
ABG4`	tF�D�D �o
FBKVDE(�	�E�O�D0~
FAC(�	�E�O0c
DEx
DD8�	�F�D�A �_
ABCN
DLE$,
?E�A�D oDAT
	@h
mF�D�H �DPu
 FABDq
 AABC4�
AF�E�D �D(�L0I(F JBB0�
mF�D�D �G@G
 AABH4SF�E�D �D(�LPm(A ABBP/H0fh�L��	##6$Me%��&��'��?C] #nC���PA���E����E	.P�:	S�j�t����#��F� &�F~,P.:~X�
t�|��
�

�
�

�5�
%5/9@�G/e��0v������/�������3@.$�=MT��^Mz��P����3�3��	@��1�L��Z�u��W�X��w� W�8
�w�+�55(
D�_x�N�	 ���i�Y�H�i�p#"�:�P�
Y�q���M������A� !	A!	j9	PD	j\	�r	ph{	��	�	�:�	�	R�	 2�	R
D)
`�8
	J
	c
r
D�
��
Pm�
	�
��
��*�(e@�uKef�pO���D����h	�D� *P�
x �/ *I<.a *l<.�Y.�Y.��.�`.*��.��.
�.>!
�.<
?0U
�.oa
	z
?0�
�0�
@0t�
`2��
�0�
a1�
�0�Ha1,\2Dp1�O\2g3}3�O3�O3�Y3�P3	�Y3�4'`3m3�4L5c5z�5��5��5��5�661�9$%&'#GLQV
[`*e!j-o2tJz4R�K�N�P�W�Z�]�@�b�i�}�����������������������	����!�'�-�3�9�?EKQW] c'i/o7u@{M�Z�g�t�������

 !"()*��!,5@K^e{�������7IT_j~��������$1NZn����������/09K^u�������������%4:E�MYbly����������)6AT^�
y��3?��������4A 5m�5S)�5/B 6�KVfu�����.annobin_dir.c.annobin_dir.c_end.annobin_dir.c.hot.annobin_dir.c_end.hot.annobin_dir.c.unlikely.annobin_dir.c_end.unlikely.annobin_dir.c.startup.annobin_dir.c_end.startup.annobin_dir.c.exit.annobin_dir.c_end.exit.annobin_dir_memsize.start.annobin_dir_memsize.enddir_memsize.annobin_glob_func_caller.start.annobin_glob_func_caller.endglob_func_caller.annobin_glob_free_pattern.start.annobin_glob_free_pattern.endglob_free_pattern.annobin_join_path.start.annobin_join_path.endjoin_path.annobin_find_dirsep.start.annobin_find_dirsep.endfind_dirsep.annobin_has_magic.start.annobin_has_magic.endhas_magic.annobin_dir_free.start.annobin_dir_free.enddir_free.annobin_rb_glob_caller.start.annobin_rb_glob_caller.endrb_glob_caller.annobin_sys_warning_1.start.annobin_sys_warning_1.endsys_warning_1.annobin_fnmatch_helper.start.annobin_fnmatch_helper.endfnmatch_helper.annobin_fnmatch.start.annobin_fnmatch.end.annobin_ruby_brace_expand.start.annobin_ruby_brace_expand.endruby_brace_expand.annobin_fnmatch_brace.start.annobin_fnmatch_brace.endfnmatch_brace.annobin_file_s_fnmatch.start.annobin_file_s_fnmatch.endfile_s_fnmatch.annobin_rb_dir_exists_p.start.annobin_rb_dir_exists_p.endrb_dir_exists_p.annobin_push_glob.start.annobin_push_glob.endpush_patternglob_brace.annobin_dir_globs.start.annobin_dir_globs.enddir_globs.annobin_rb_push_glob.start.annobin_rb_push_glob.endrb_push_glob.annobin_push_pattern.start.annobin_push_pattern.end.annobin_dir_s_home.start.annobin_dir_s_home.enddir_s_home.annobin_check_dirname.start.annobin_check_dirname.endcheck_dirname.annobin_dir_s_rmdir.start.annobin_dir_s_rmdir.enddir_s_rmdir__func__.13744.annobin_dir_s_chroot.start.annobin_dir_s_chroot.enddir_s_chroot__func__.13730.annobin_dir_chdir.start.annobin_dir_chdir.enddir_chdir__func__.13685.annobin_chdir_yield.start.annobin_chdir_yield.endchdir_yieldchdir_blockingchdir_thread.annobin_dir_check.start.annobin_dir_check.enddir_checkdir_data_type.annobin_dir_close.start.annobin_dir_close.enddir_close.annobin_dir_mark.start.annobin_dir_mark.enddir_mark.annobin_dir_seek.start.annobin_dir_seek.enddir_seek.annobin_dir_set_pos.start.annobin_dir_set_pos.enddir_set_pos.annobin_dir_tell.start.annobin_dir_tell.enddir_tell.annobin_dir_rewind.start.annobin_dir_rewind.enddir_rewind.annobin_dir_read.start.annobin_dir_read.enddir_read.annobin_dir_path.start.annobin_dir_path.enddir_path.annobin_dir_fileno.start.annobin_dir_fileno.enddir_fileno.annobin_dir_initialize.start.annobin_dir_initialize.enddir_initializekeyword_ids.13602rb_intern_id_cache.13604__func__.13611.annobin_dir_open_dir.start.annobin_dir_open_dir.enddir_open_dirrb_intern_id_cache.14143.annobin_dir_entries.start.annobin_dir_entries.enddir_entries.annobin_dir_s_open.start.annobin_dir_s_open.enddir_s_open.annobin_dir_s_alloc.start.annobin_dir_s_alloc.enddir_s_alloc.annobin_do_lstat.start.annobin_do_lstat.enddo_lstat__func__.13774.annobin_glob_helper.start.annobin_glob_helper.endglob_helper__func__.13781__func__.13766.annobin_ruby_glob0.start.annobin_ruby_glob0.endruby_glob0.annobin_glob_brace.start.annobin_glob_brace.end.annobin_dir_s_aref.start.annobin_dir_s_aref.enddir_s_aref.annobin_chdir_restore.start.annobin_chdir_restore.endchdir_restore.annobin_dir_inspect.start.annobin_dir_inspect.enddir_inspectrb_intern_id_cache.13632.annobin_dir_foreach.start.annobin_dir_foreach.enddir_foreachdir_each.annobin_dir_s_mkdir.start.annobin_dir_s_mkdir.enddir_s_mkdir__func__.13739.annobin_dir_s_glob.start.annobin_dir_s_glob.enddir_s_glob.annobin_dir_each.start.annobin_dir_each.end.annobin_rb_dir_getwd.start.annobin_rb_dir_getwd.end.annobin_dir_s_getwd.start.annobin_dir_s_getwd.enddir_s_getwd.annobin_dir_s_chdir.start.annobin_dir_s_chdir.enddir_s_chdir.annobin_ruby_glob.start.annobin_ruby_glob.end.annobin_rb_glob.start.annobin_rb_glob.end.annobin_ruby_brace_glob.start.annobin_ruby_brace_glob.end.annobin_ruby_brace_glob_with_enc.start.annobin_ruby_brace_glob_with_enc.end.annobin_Init_Dir.start.annobin_Init_Dir.end.LC0.LC1.LC2.LC3.LC4.LC6.LC5.LC7.LC8.LC10.LC9.LC14.LC11.LC12.LC13.LC15.LC16.LC17.LC20.LC18.LC19.LC21.LC22.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_mallocmemcpyrb_enc_mbclenrb_isalphaclosedirruby_xfreerb_protectrb_sys_enc_warningstrlenrb_enc_precise_mbclenrb_enc_codepoint_lenrb_enc_touppermemcmpstrlcpyrb_enc_getrb_enc_dummy_prb_enc_str_asciionly_prb_str_coderange_scan_restartablerb_scan_argsrb_string_valuerb_get_path_no_checksaferb_enc_compatiblerb_num2intrb_fix2intrb_warningrb_file_directory_prb_usascii_encodingrb_ascii8bit_encodingrb_filesystem_encodingrb_ary_newrb_get_pathrb_jump_tagrb_memerrorrb_enc_str_newrb_check_safe_objrb_enc_from_encodingrb_enc_checkrb_external_str_new_with_encrb_ary_pushrb_must_asciicompatrb_string_value_cstrrb_str_new_staticrb_default_home_dirrb_home_dir_ofrb_error_arityrb_securerb_enc_path_skip_prefixrb_enc_path_endrb_str_encode_ospathrb_str_subseqrb_sys_fail_path_inrb_yieldrb_thread_currentrb_check_typeddatarb_error_frozen_objectrb_eIOErrorrb_raiserb_gc_markseekdirrb_num2longtelldirrb_int2inumrewinddir__errno_locationreaddirrb_sys_failrb_str_dupdirfdrb_str_new_frozenopendirrb_get_kwargsrb_to_encodingrb_gcrb_intern2rb_cDirrb_funcallvrb_Arrayrb_ensureruby_xcallocrb_data_typed_object_allocrb_block_given_p__lxstat__xstatmemmoverb_bugrb_funcallrb_class_namerb_str_appendrb_str_catrb_cFalseClassrb_cFixnumrb_cFloatrb_cTrueClassrb_cNilClassrb_cSymbolrb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_check_array_typerb_ary_eachrb_dir_getwdruby_getcwdrb_tainted_str_new_cstrrb_enc_associategetenvrb_str_new_cstrrb_warnrb_eArgErrorruby_globrb_globruby_brace_globruby_brace_glob_with_encInit_Dirrb_cObjectrb_define_classrb_mEnumerablerb_include_modulerb_define_alloc_funcrb_define_singleton_methodrb_define_methodrb_cFilerb_file_constm'��������x'���������(���������)���������)��������(��������3)���������*��������i*���������+��������,��������9.��������i���������p/���������0���������0��������t1���������2���������3���������2���������3���������*��������p4���������2���������3���������2���������3��������*��������X*���������4���������4���������2���������2��������
2��������R	*��������z	4���������	3���������	2���������	3���������	2���������	3��������I
*���������
*��������(0���������*���������*��������:
0��������y
*��������"0��������3(��������b)���������*���������)��������5���������)���������5��������
'��������c6���������7���������7���������8���������0���������9��������:���������V:��������i;��������s<���������=��������>��������;�������� <��������B6���������?�������������������@���������6���������B��������B���������C���������D���������E��������F��������*G��������IH���������F���������E���������6���������0���������I��������'0���������0���������J���������B���������K���������L���������G���������H��������0�������� M��������k;��������uJ��������O���������P���������Q���������R���������Q���������S���������T��������U��������F��������)6��������UV��������cW��������tX���������Y���������Z���������T[��������J\��������n�4s[���������]����������$�[�������������������_����������������8���������=`��������Ma��������T*b��������[���������ec���������,���������e���������f��������1g��������ai���������j���������k���������0���������l�������������������`��������1n��������I���������Nl��������{���D�������������������:���������F���������o���������X��������o�����������������`��������&,��������Sp���������p���������j�����������[����������q���������r��������s��������	p��������(���������-t��������4;^��������j*u��������wv��������~����������`�������������������t������������������*w��������y�����������������z��������2{��������K*^���������y�������������������z���������|��������j���������d>.�������������������0��������> ���������M p��������� k��������� 0��������4!(��������!"'��������)"'��������;",���������"}��������p#����������#'���������#j���������#�t$.��������Y$(��������%0��������%(��������4%)��������J%(���������%'��������;&'��������C&'��������Y&'��������n&0���������&0��������',���������(~���������(*��������
)~��������)j��������G)��g)'���������)����������)���������)'���������)'��������_*(���������*0���������*(��������+)��������e+(���������+(���������+)���������,(��������9-'��������Y-(���������-'���������-'��������.(���������.�.���������.����������.`���������./���������/t��������'/8/���������@/Q��������/����������/����������/����������/����������/����������/����������/����������/*����������/*���������0*���������0*���������#0*���������30*���������Q0{��������x0x���������0����������0����������0����������0:��������	1���������<1?��������I1>��������X1�D]1[��������x1����������1:���������1����������1{��������2{�������� 2���������<2?��������Q2>��������l2{���������2i���������20���������2M���������2^���������2k���������2����������2����������2*b���������2���������3c��������3���������&3���������.3D��������93���������A3-���������3U���������3����������3:���������3����������3����������3����������3�3{���������3{��������4_��������	4��������4���������4���������4{��������'4���������/4X��������a4x��������{4F���������4X���������4����������4����������4*����������4����������4c���������4C��������65C��������n5G���������5H���������5C��������'6*���������/6���������76���������>6*���������E6*u��������S6���������b6���������x6���������}6����������6����������6����������6����������6����������6����������6����������6����������6����������6����������6���������7���������7���������)7���������.7���������A7���������F7���������Y7���������^7���������q7���������v7����������7����������7����������7����������7����������7����������7����������7����������7����������7����������7���������
8���������8���������"8���������'8���������:8���������?8���������U8���������Z8���������p8���������u8����������8����������8����������8����������8����������8���������8����������8���������8����������8���������8���������9��������9���������!9*A��������-9��������29���������H9��������M9���������T9*���������g9��������o9����������9���������9����������9���������9����������9	���������9����������9
���������9����������9���������9����������9���������9����������9
��������-���������A��������/N���������^��������
^���������d��������=h���������M��������m���������x��������ax��������/����������0����������2���������U3����������9��������� ���$,PXC��C�C���C���ED�LEpEx	�E�	�	��	�0�8d�l��F��F�F�~$F,~P~X�
�~��
��
�

��
�



5D

L5p5x/�5�/�/��/�0�8�d�l������������M$�,MPMX��M�����3���3	3	�D	3L	�p	�x	��	��	��	��	
�
0
8
wd
l
w�
w�
��
w�
��
��
$�,PXi��i�i���i����D�L�p�x��������
�
0
8
Ad
l
A�
A�
j�
A�
j�
j�
�$j,�P�X�����R��RRDDRLDpDx��D��������0�8ed�le�e���e�����D$�,DPDX *�D� *� *�<.� *�<.<.Y.D<.LY.pY.x�.�Y.��.��.��.�.�.0�.8?0d�.l?0�?0��0�?0��0��0�a1$�0,a1Pa1X\2�a1�\2�\2�3�\2�33O3D3LO3pO3xY3�O3�Y3�Y3��4Y3�40�485d�4l5�5��5�5��5��5��5$�5,�5P�5X6��5�6�6��9�6��9 �	 � � �H"��"�)x"l",��� 4 LPx��P$��� �P��T�
 @l0�����LP��@��4�P l�����p���� < TPpp��� �`(PT�l��p��P� *�@.�`.	�.(	�.d	@0�	�0�	p1�	`20
3X
P3l
`3�
�4�
 5�5T�5l 6.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@,T,l,�,�,'��9"@(��(,-�:3�:$=�:�8@��P,
S�Rb�R�]@��0,
|�T��T��@(�0,�\V�\V��@X�0,�0X�0X��@��0,2Z�2�[m.\�)@���,;�\H 6@H�`,N0�\.�]�]|]S]']W]e]x]�]�]�] �8]��@���,*�h�'-&	H��0��dln_find.o/     1690381920  1000  135   100644  11704     `
ELF>�"@@,+

!"#$AWAVAUATUSH���D�D$H����I��I��H��I���H��L9���A�$��.�vL��/�d�t$���nH�D$0I��H�D$�jfDH�SL��H���H�T$H�����u1�D$���w�D$H%�=@t�H������RA�>��M�~�:L���I��H����M��M��H��M)�tHA�?~��M9�rBM)�L��H��L��L�L$ L�\$�L�\$L�L$ H��L�A�~�/t�/H��I9��$���H)�dH��dHF�H�H��eI��H�HB�H��d�	H�
�dH��H��M��PH�=1��A�>ZY� ���1�H���[]A\A]A^A_�@�/L���H��L��H��u��u���L���M�4���I����A�/��H�=L�\$�L�\$H���vH��L�\$ H�D$�H�t$L�\$ I9�H���H��d�d�HF�I��H�wH�1�D��H�
���f�H�=�H��uM��H�����@A�T$��.�{���A�T$�p���fDH��dH�
H�L��dHF�H�=HF�1��1����f�H������H��H�D$�H�t$I9�I������M��L��H��M)�L�L$�J�L=L�L$����M��H��H��L�\$(I)�H�L$I��L�L$ �H�L$L�\$(L�L$ H�I���[���I��I��M��H���H���ff.���AUATI��UH��SH��H��H��t$H��L��H��H��A�[]A\A]���fDH�=�H��H��t
�I��H��u	H�5�L��H��H��A�H�����L��H�D$�H�D$H��[]A\A]�f���H��H�HD�E1��v���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign...HOMEPATH.openpath: pathname too long (ignored)
	File "%.*s"%s
/usr/local/bin:/usr/ucb:/usr/bin:/bin:.openpath: pathname too long (ignored)
	Directory "%.*s"%s
	File "%.*s"%s
GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�\�B�B�B �B(�A0�A8�G���G�S�A�O
8A0A(B BBBEH|�F�B�D �D(�G@I
(P ABBKW(A ABB� -E!a~"��#��$+�C�NJf��n�n��!"#$ �����
�8��0D	

%&'Ukry����������p.annobin_dln_find.c.annobin_dln_find.c_end.annobin_dln_find.c.hot.annobin_dln_find.c_end.hot.annobin_dln_find.c.unlikely.annobin_dln_find.c_end.unlikely.annobin_dln_find.c.startup.annobin_dln_find.c_end.startup.annobin_dln_find.c.exit.annobin_dln_find.c_end.exit.annobin_dln_find_1.start.annobin_dln_find_1.enddln_find_1pathname_too_long.11823.annobin_dln_find_exe_r.start.annobin_dln_find_exe_r.end.annobin_dln_find_file_r.start.annobin_dln_find_file_r.end.LC1.LC0.LC3.LC2.LC5.LC4.LC6.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_strlenmemcpy__xstateaccessstrchrrb_warninggetenvdln_find_exe_rstrdupfreedln_find_file_r,A���������B���������C���������D���������E��������)B��������g��������u���������������������������F���������E���������A��������  ��������*G��������JA��������|��������������������������� ���������G��������������������������!��������F��������9A��������`B���������B��������"��������G��������%I��������4#��������ZJ��������z$�������� ���$,�P�Xn���n�n���n��  
 
  ���p.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@)%T)&l)'�)(�))'��"@�0)-J3J=L�8@�P)
S@b@�]@ 0)
|
�
��@0 0)������@` 0)��
��
��@� 0)2�2�`) J 10j.����|�S�'�:�H�[�m�|��� ����@� H)'� *@	��!�encoding.o/     1690381920  1000  135   100644  84032     `
ELF>=@@-,

 "#$%��H����S��H�=H��tHc��H��t[É�H�=1����H�=1�������AWAVLc�AUATUH��K�vSH��H�L�<�H���tH��I���H��?�_I�7M��L��H��������@I�_H����H�����oE�oMK�oU S �o]0[0�oe@c@�omPkP�ou`s`�o}p{pL�cH�=L��L��D�kxI�_�H�-H��uD��H��[]A\A]A^A_��L��H���H��u�H�H��H�H�8�L��H��H����fD�I�_I��I�H���������H��H������f�H�{H��H��H�H��H�CxH)�����H�����f�������@���fDAUATUS��H��Hc-9�|H����[]A\A]�@��D�gH�=��DI�A��Ic�H�4@H���I��H��t;D��1�)�H�H�@H�DmI�|�H���L�-��D�%H��[]A\A]û�����z���UH��SH��H����x�F�����x"�H��H��H�ލx�[]�x����H�������[]�@��H���H�$�H�=H��H�5yH�D$�H�$H���fD��H�SH�xH���H�=H�5�H��H���H��[�f.���H�G H�x�ff.�@��S1�H��1�H��H�C [H�x�f.���S1��H�5H��H���H��[�ff.�f�PXH���H�5H��H�H�81��f.���PXH������SH��H����u*H�����t"H��у���tH�р�H�xH�t��tH��H���H��1�[�fDH��H�D$�H�D$��@��92t1��DSH��H����u<H�����t4H��у���t'H�р�H�xH�t��uH��H�D$�H�D$H�{H���H��1�[�ff.�@��H��t�x�������f���f.���1�H��t�Gx%����ff.�����G{���@���ff.���Hc�H�
H��H�RH��H�R�Jx�ff.����G|���D��H���
����H�=�H�1�H�r�N���H��H�r�9���H��H�r�$���1ҿH�5����1ҿH�5���1ҿH�5���1ҿH�5����1ҿH�5����1ҿH�5���1ҿ	H�5���1ҿ
H�5���1ҿH�5�y����H���f.��H����ff.�@��H��H�=t>��x*���9=~H�Hc�H�H��H�@H��Ð1�H���f��|$��|$볐��H����H|H���f.���AWLc�AVI��AUATUH��L��SH��L�bL�*L���H��H��tzL����t&H��H��L���H��1�[]A\A]A^A_��H�����t�H��у���t�H�р�H�xH�t���u�H��H�D$�H�D$�f.����H��H��t�H�pL�����t�H�{�H�èu9H�����t1H��ƒ���t$H�€�H�{H�t��uH����H��L��L�������D��H��H�D$H��t2H�=t(H��H�=H�T$���t�D$H�������������UH��SH���H�������Hc�H�RH�H��H�JH�B�@{t�IxH��[]�ff.�@��H�H��t��H���H�=�H�H����UH��S��H��H���Hc�H��H��[H�TH��]�������ATI��UH��SH��L)�~Hc�H9�[]A\�f�HcUH9�H��O�[]A\�ff.���H9�v/UH��SH��H)�H���H��Hc�H9�}��)Ɖ�H��[]�D������f���H9����yAVAUI��ATI��UH��SH��t9H��L��H���A�ƅ�~TH��L��H��S ��wCM��tE�u[]A\A]A^ÐH�����u��E��xM��t�A�E[]A\A]A^�fD�����뿃��D��AUATUSH��H9�v;I��H��H��H��I�����~;M��tA�EI�D$ H��L��H��H��[]A\A]��H�H�5H�81��H�I�T$H�5H�81��ff.�f���H��1��f���U��SH��H���V(��tH��[]�H�H�K��H�5H�81��D���f(f���Hcǃ�H������Hcǃ�H������H�H��tH�@�H���H�H�@H���ff.�@��1��f���H�H��tH�@ �H���H�H�@ H���ff.�@����fD��H�H��tH�@8�H���H�H�@8H���ff.�@��AVAUATUH��SH���H�H9Gu|H�_ H��t{H������H9�ug�CL�H��L�-L�%L�s��ME�C{MD��H���M��M��L��H��H��[1�]H�5A\A]A^�H������H�H�5H�81��ff.�f�����fD��H��H�=����H�H���ff.�f���H���H��������H�H��t���=��x�H���H�H���f���H���H��H����������H�AVH�=AUATUSH�0�H�H�5 ���H��H��H��������ƒ�����H����<��H�xH�5�H�;1�H��H�5�H�;1�H�����H�5�H�;1�H���H�5�H�;1�H��H�5�H�;1�H��H�5�H�;1�H�>H�5�H�;�H��H�5�H�;1�H���H�5�H�;1�H��H�5�H�;1�H���H�5�H�;�H��H�5�H�;�H�EH�5�H�;�����H�
�H�5�H�;�H�O�H�5�H�;1�H��H�5�H�;�H�lH�5�H�;1�H����H�5�H�;�H��H�5�H�H�;1�H�5�Hc=�H�@H��H��H���
��~KE1�L�-L�%@I�UIc�H�;A��H�@H��L��H�p�H��H���D95�H�;H�
�[1�]�A\A]A^�@H������j���H��t-H���[���H�H�8�P���fDH�H�8�;���H�H�8�,���H�H�8����H�H�8����H�H�8���ff.�f���1���wH�Hc��xf��
���ff.�@��1���wH�Hc��xf������1���wH�Hc��xf�����ff.�@��1���wH�Hc��xf�����ff.�@��1���wH�Hc��xf�����ff.�@��1���wH�Hc��xf�����ff.�@��1���wH�Hc��xf�����ff.�@��1���wH�Hc��xf�����ff.�@��1���wH�Hc��Dx���f���1���wH�Hc��xf��	���ff.�@��1���wH�Hc��xf��
���ff.�@UH��AWAVAUATI��H��SH��(dH�%(H�E�1��A�<$H�E���E���t(H�E�dH3%(�4H�e�[A\A]A^A_]�fDA�<$�A�Dž���1�M��A��*fD���uA�<_�3A�>���AE�I��A�>@��u�M��M)�I��?�o���H�H�U�L��H�8����Q���I��?�G����]�A���g�A�<$��1�M��A�>A��@��D������	����A�>��AE����EE�I��A�>@��u�M��M)�L���L�H��?����H�pH��H��H��H%�H)�H���H��H9�txH��H��$���fDH�H�U�L��H�8��m���D�����M��M)�I��?�P���A��������E�A��W������t	H)�H�L�L�l$L��I���L���1�@��t	���@��tD�fD�H����t���E���to�������A�}L��@��t(f����tH�H���H���;@��u�H�H�U�L��H�8��o����A���z���A�}���uRA�}M��@��t!D���uA�$_I��A�<$@��u�E���L���H�H�U�L��H�8��1���I�EH�
�<A�}�A��1�A�����I�<I�|
D9�r�I�|L�����@��AUATI��UH��SH�����xK�lj��H��H�pI�����u_A�E��tA�E{ueL��H����+�H����[]A\A]�fDL��H���]��lj��H��H�����H����[]A\A]�@H��L��H��[]A\A]�#�H�H��H�5H�81�����SH�����x���H��[H���|���@1�H�������ff.����ATUH��SH�����yOH��H����A��H�H�@H�H��H�PH�h�E{t�JxD���H��H������D��[]A\�H�H��H�5H�81��ff.�@��SH���H��H���H�
Hc�H�RH��H�R�Jx[�f�ATI��UH��S��xb��H��L������x2Hc�H�@H�H��H�PH�h�E{u���L��H���=�����[]A\�fD�Jx����{�������AUATI��UH��H��SH���H����A��x#���H��D��H��[H��]A\A]�4���@1�L��������f���USH��H��������H��H�����H�
Hc�H�RH��H�R�JxH��[]�fDUSH��H��t]H�����H��?wMH�=Hc�H�
4�H�����tH����[]�����H��H������H����[]�D������ɐ��UH��H��SH��H�����xH��H���[]�d���@H��1���H��H��[��]�F���fD��1���wH�Hc��xf�����ff.�@��Hcǃ�wH����AWH��1�AVAUI��H�=ATUSH���I���L�8�L�0I�$�� �H��I�\$��I�l
H9�w�FfD�_H��H9�t4�;���t��;���t��;H����C�H9�u��A��u
I��������H��H��H���L�������L�8�H��L�0�����L�������Hc�H�
H�RH��H�R�r���}H��[]A\A]A^A_�I�D$I�T$H�XH�l���I�$�Ѓ����A���H�Ѐ��I�$�����)�����I�|$I�$�������
���L�������������y���AUATUSH���.H�����Hc�H�RH�\�H�������~%H;Xt8��H�RH���
H��H;XtH9�u�H�������[��]A\A]���CI��I����uH�sxH�{�n�����x�A�,$����I�uH�ډ����A�,$H����[]A\A]��H�?H��[]A\A]�f���fDUSH��@��ulH�����tc�����uYH�uRH�H9GuEH�_ H����lj��H9�u+�C��tH����[]�H��H�sxH�{[]���D�����H����[]�f.���SH������H�������H�H�ىƒ�������tI��H��������[�H�5H��� H��1�1�1��H��H��t9H��fDH�yuH�H9A��H�H������u��w������[�f���u�H���H��H�H�ىƒ����N���H�5H��t`1�1�1�H���H���H���H��H��H�y�n����z���f��H��H���H�Ǩt9�[�f�H��[�'�����H�=�H��H���[�f��H�=�H��H������H���H��������AWAVAUI��ATI��USH���L���������Ņ�����9������I���I��A�����D$A�GA��u
I��������D$��ueL�����uYA�~uRL�����uF�|$��u��t<�t$�������M���"L���9��v��t�=tE1�H��L��[]A\A]A^A_�I������J���I�$�D$�ƃ����8����� ��I�|$����u��D$����fDI�u�D$������������ ��I�}@���D$@��������+���L���������L�����MD��/���@�L$��uH�D$������L������F�H��[]A\A]A^A_�D�����,���L����T$�Å������M������������fD���@���0�����u����ff.����UH��SH��H���H��tH��[]�H���H��H�h�H�5H�PH�H��H�81��ff.����H����u$H�����t����������@��u��ueH�����tߋ
����ոH��`u#��t�H�zu�H�H9Bu�f.�H��H���H��tH��H�����t۸�D�H���fD�H��`�c������G���H��<���H�H9G�+����9�����H�����x%���H�����/��H�H�5H�81���SH�������xH�C [�H������D��SH�������xt
1�[�f�H�����H����¸��t�1��֐��H������@xH��H��'H��?���U��SH���H��twD�@xH��D��1���u?�C��tH��H��[]�f.�H�sxH�{�����u�H�sH�=1��H�H�KA�����H�5H�81��H���H�5H�81��ff.�f����G������UH��SH����u^H�����tUH�E�ƒ���tG��uBHcމ�������~#H�uH��H��?�H	�H�]H��[]�fDH����H��[]��H������AVAUATUSH�����H�������H��ƒ���������H��Hc��A��9�t\���h���I��H�E�n��0��tnH%���H�D����pD9�t
�����tk��~&H�H��H%��?�H	�H�+H��[]A\A]A^����H���6�H��[]A\A]A^�f.�A��u�L�����uE�n��D��H��1��놐H�E�n�V���H���ff.����SH��H���H��[���D��SH��H���H��[���D��UH��SH�����x"�lj��H��t,�P��tMH����[]�@H��H��[]��f.������t�H�H��H�5H�81��DH�pxH�x������y�H��H�=1�1���f���H��H�|$�����x
H���DH�|$�H�D$H��t;H����xu-H�|$�H�����uH�|$�H���H��ø�����f���H���1�H�H�$�H�=H��H�55��H�D$�H�D$H��ÐSH��H�\$H�|$H���H�|$��xu,H�|$�H�����uH���H���H��[�H�H�5H�81��D��SH�����xH�C [�f�H���h�����x��[�H�H��H�5H�81���ATI��U1�S�?�H��@��H��tGH���H���H�CH�=L��Hc�H�
����H�H9�t>��[]A\�����H�GH���H�=����H���H�H9�u��H�=H�
W��H�5Hc����[]A\Ð��H��tH��H�H�=� ���PH�H�5H�81�����S1�H��H�=�H���H��[�ff.�f���H��H�H�=���fD��S1�H��H�=�H���H��[�ff.�f���SH��H�t$�H�|$H���H��H��������H��[����@��u	H�����u%SH��H���a�����xD=���t6��[����fD�����u�H�~u�H�H9Fu�H���fD�[�H�H��H�5H�81��ff.����g������SH������xH�C [�f�H�������x��[�@1�[�@��UH��SH��H�����yCH�=tH�����x!H��H�߉�[]������f�H�������[]�H�H��H�5H�81��f���H������I�H�����S�H��H�H�8�H�D$H��tH�|$��H�����I�H�=���xH����[�@H�=Hc�H�
O��H�5�H����[�ff.���H���H��������H�H��t���=��xH���H�H���f��ff.���H���H��H����������Hcǃ�wH������H��H��H�=�����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignrb_enc_from_encoding_index(%d): no rb_encoding_listrb_enc_from_encoding_index(%d): not created yetwrong argument type %li (expected Encoding)encoding %s is already registeredincompatible character encodings: %s and %sencoding index out of bound: %dwrong encoding index %d for %s (expected %d)failed to load encoding (%s); use ASCII-8BIT insteadinvalid name encoding (non ASCII)default external can not be nilsetting Encoding.default_externalsetting Encoding.default_internal01UTF-16BEUTF-16LEUTF-32BEUTF-32LEUTF-16UTF-32UTF8-MACEUC-JPWindows-31Jencodingempty stringinvalid byte sequence in %sinvalid codepoint 0x%x in %s (autoload) (dummy)broken Encoding#<%li:%s%s%s>filesystemEncodingnewto_sinspectnamenamesdummy?ascii_compatible?replicatelistname_listaliasesfindcompatible?_dump_loaddefault_externaldefault_external=default_internaldefault_internal=locale_charmapenc/%s.sointernal_encodingexternal_encodingunknown encodingfailed to load encoding (%s)encoding %s is not registeredunknown encoding name - %liexternalinternallocaleGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0?A�]
AL	H`�B�B�E �B(�A0�H8�D@�
8A0A(B BBBHL��B�B�A �A(�F0O
(C ABBEd
(A ABBA0�LA�D�G \
JAMDFA0:H qH6L�idx&E�X�#E�]�&AAD�EAD �lE�G B
CGqQ�G UC,&@Th|%��1H

K�_H v
BF
J�HMH�+F�E�E �B(�A0�G8�DPv
8C0A(B BBBHDOH x
H$`QE�D�D AAA�9\\$�0A�D�F SDI�	4�BF�D�D �U
ABJNAB(>J�D�J XAAF��T@�S�B�E �D(�D0�u
(A BBBBb
(A BBBGG�����8��F�B�A �A(�D0o
(J ABBB�(�;E�C�G K
AAA(<P1\Th|1\T�
�1\T<��F�B�B �A(�D0�
(C IBBE
#HZ,HID7fP\HIt	<�sM�I�B �A(�A0��
(C GBBI�!� �!!!,!@!T!h|!�!,��A�C
H����K�J
G\��F�B�D �D(�D0E
(C ABBGc
(C ABBED
(G ABBE44E�W
L,P�F�A�D �W
ABA�7E�q,�yB�D�D �L
ABG8�^F�B�D �G(�D0a
(G DBBI$	JE�A�G zAA40	oA�A�D v
CAHV
CAF0h	JE�G�G M
FAINDC�	!�	H�	�B�G�B �L(�A0�A8�D@
8A0A(B BBBD\
�B�B�A �A(�D0Y
(F CBBH@
(C ABBHG(A ABB<p
�A�A�D R
CADD
IAJICA4�
�E�G
Df
J}
CD
Lf
J�
HI`dF�B�B �E(�D0�A8�DP�
8D0A(B BBBD�
8A0A(B BBBJ(dTE�D�G N
AAA���TXI�9HR
G�A�Q
A�?E�Q
J HL(�A�C�D h
DAKH	4\xE�D�D J
AAGD
FAEL�$F�B�B �A(�A0��
(A BBBHN
(A BBBK�E�O
E�O4
�E�D�D b
CAED
DAO T
wH R
FO
Ax
?H v �
kA�D L
AA �
OE�Q
JO
E4�
�B�D�C �R
ABB[AB9a$#E�]@T#E�]p8E�D mA$��T�Y�s�F
A�	$�<E�Q
JO
IC4�wE�D�G c
FAFT
FAA, HS(D�E�I J
CEaCpHI�EfP�HI�	��	!-E"a~#��$��%)?HrO�?�	H�O�Y�P		Y(
E`�U	0_Hr
���������'�L��:1:@�+U:uv�@6�@l�v��������&%�=�S�#\�x&�&�&�?�0�?�!�<!U�qa!�V�V�t�t��A�c����������4Sw�������		>q	[q	y�	�	��	��	��	0		�	+	�	K	�	h	B
�	B
�	�
�	�
�	+
+'
�I
�i
��
��
�
�
	'8C8aX}X������
�-�K�k����1
�1
�
@
�

0
Q
w
C�
C�
h�
h��%;�b�������	���SP)?�"`% $ %?�'�+81+,�;�#�L�.	�*P+#�*�+#a�,	nS�����������6P1h1�a�a���������0�Jb|A�A���P����%�E�c��q�q����9=�yV9x��������_$+�o_ �<�W�p������������,��@�b&����&�� �	�	� � 7� XT#wT#��#��#��$��$
�$'�$D%_%m%�_%�_%��%��%#&#�%�1#&V9&y9&��&��&��'�'!(?(Z+(s+(��(��(�G)�G)�))�)J�)i�)k{�)�O*�O*�+P*��+	 +GI+pI+�s+�s+��+
�+.�+P�+m,�,��,��,��,��,�,*�,Fg-`g-{�-��-�.�.�8.8.D�.n�.��.��.��.�.�.2�.U�."#$%!v{8��h�����'�.�5�>�E�Q�Z�g������������������ � � � �   & , (2 -8 7> ?D DJ PP VV \\ mb h �n �t �z �� �� �� �� �� �� � �� 
� @� x� +� H� �� �� Q� �� Z� � !!+!

 &'(<!R!_!f!r!y!�!�!��!�!�!�!�!�!"""'"?"L"["h"v""�"�"�"0&�"`�"��"�#�%#�##�1/#A#S#h#}# _�#��#�#�O�#�# 	Q�#�	9�#�#$�		$1$
B?$P
>U$�
�c$0�x$�$��$�;�$�$ �$�$@�$%`1)%�?%�1P%�
a%
1u%�%
�% #�%P�%p7�%��%�s	&&$&9&I&Z&u&�&�&�&�&�&�&�&�&'`!'''� 2'�!='�!H'!S'@!^'p!i'�!t'�'�!�' !�'�'�'���'�4�'���'�7(@^(�J#(.(`J=(�!I(�T(_(s(�(�(�(�(�(0��(�(�(�(�(
)� )� d')<)S)`#T`)s)�$9�)�)�)0&	�)@&x�)�)�&$�)*�'(*(4*0(�F*N*�(wc*x*�*�**O�*�*+9�*�*�++�,<!+�,w.+p- :+�-�M+ .`+@.E}+�.�+�.�+�..annobin_encoding.c.annobin_encoding.c_end.annobin_encoding.c.hot.annobin_encoding.c_end.hot.annobin_encoding.c.unlikely.annobin_encoding.c_end.unlikely.annobin_encoding.c.startup.annobin_encoding.c_end.startup.annobin_encoding.c.exit.annobin_encoding.c_end.exit.annobin_enc_load.start.annobin_enc_load.endenc_load.annobin_rb_enc_from_encoding_index.start.annobin_rb_enc_from_encoding_index.endrb_enc_from_encoding_indexrb_encoding_list.annobin_enc_dup_name.start.annobin_enc_dup_name.endenc_dup_name.annobin_enc_register_at.start.annobin_enc_register_at.endenc_register_atenc_tableencoding_data_type.annobin_enc_table_expand.start.annobin_enc_table_expand.endenc_table_expand.annobin_enc_register.start.annobin_enc_register.end.annobin_rb_enc_aliases.start.annobin_rb_enc_aliases.endrb_enc_aliasesrb_enc_aliases_enc_i.annobin_rb_enc_name_list.start.annobin_rb_enc_name_list.endrb_enc_name_listrb_enc_name_list_i.annobin_enc_name.start.annobin_enc_name.endenc_name.annobin_enc_dump.start.annobin_enc_dump.endenc_dump.annobin_enc_list.start.annobin_enc_list.endenc_list.annobin_not_encoding.start.annobin_not_encoding.endnot_encoding.annobin_enc_s_alloc.start.annobin_enc_s_alloc.endenc_s_alloc.annobin_rb_enc_name_list_i.start.annobin_rb_enc_name_list_i.end.annobin_enc_names_i.start.annobin_enc_names_i.endenc_names_i.annobin_rb_enc_from_encoding.start.annobin_rb_enc_from_encoding.end.annobin_rb_enc_to_index.start.annobin_rb_enc_to_index.end.annobin_rb_enc_dummy_p.start.annobin_rb_enc_dummy_p.end.annobin_rb_gc_mark_encodings.start.annobin_rb_gc_mark_encodings.end.annobin_rb_enc_set_dummy.start.annobin_rb_enc_set_dummy.end.annobin_rb_enc_unicode_p.start.annobin_rb_enc_unicode_p.end.annobin_rb_enc_init.start.annobin_rb_enc_init.end.annobin_rb_enc_from_index.start.annobin_rb_enc_from_index.end.annobin_rb_encdb_set_unicode.start.annobin_rb_encdb_set_unicode.end.annobin_rb_enc_aliases_enc_i.start.annobin_rb_enc_aliases_enc_i.end.annobin_rb_enc_registered.start.annobin_rb_enc_registered.end.annobin_rb_enc_set_base.start.annobin_rb_enc_set_base.end.annobin_rb_id_encoding.start.annobin_rb_id_encoding.endrb_intern_id_cache.13851.annobin_enc_set_index.part.3.start.annobin_enc_set_index.part.3.endenc_set_index.part.3.annobin_rb_enc_fast_mbclen.start.annobin_rb_enc_fast_mbclen.end.annobin_rb_enc_mbclen.start.annobin_rb_enc_mbclen.end.annobin_rb_enc_precise_mbclen.start.annobin_rb_enc_precise_mbclen.end.annobin_rb_enc_ascget.start.annobin_rb_enc_ascget.end.annobin_rb_enc_codepoint_len.start.annobin_rb_enc_codepoint_len.end.annobin_rb_enc_codepoint.start.annobin_rb_enc_codepoint.end.annobin_rb_enc_codelen.start.annobin_rb_enc_codelen.end.annobin_rb_enc_code_to_mbclen.start.annobin_rb_enc_code_to_mbclen.end.annobin_rb_enc_toupper.start.annobin_rb_enc_toupper.end.annobin_rb_enc_tolower.start.annobin_rb_enc_tolower.end.annobin_rb_ascii8bit_encoding.start.annobin_rb_ascii8bit_encoding.end.annobin_rb_ascii8bit_encindex.start.annobin_rb_ascii8bit_encindex.end.annobin_rb_utf8_encoding.start.annobin_rb_utf8_encoding.end.annobin_rb_utf8_encindex.start.annobin_rb_utf8_encindex.end.annobin_rb_usascii_encoding.start.annobin_rb_usascii_encoding.end.annobin_enc_inspect.start.annobin_enc_inspect.endenc_inspect.annobin_rb_usascii_encindex.start.annobin_rb_usascii_encindex.end.annobin_rb_filesystem_encindex.start.annobin_rb_filesystem_encindex.end.annobin_rb_filesystem_encoding.start.annobin_rb_filesystem_encoding.end.annobin_rb_default_internal_encoding.start.annobin_rb_default_internal_encoding.end.annobin_rb_enc_default_internal.start.annobin_rb_enc_default_internal.end.annobin_get_default_internal.start.annobin_get_default_internal.endget_default_internal.annobin_Init_Encoding.start.annobin_Init_Encoding.endenc_namesenc_ascii_compatible_penc_compatible_pget_default_externalenc_m_loader.annobin_rb_isalnum.start.annobin_rb_isalnum.end.annobin_rb_isalpha.start.annobin_rb_isalpha.end.annobin_rb_isblank.start.annobin_rb_isblank.end.annobin_rb_iscntrl.start.annobin_rb_iscntrl.end.annobin_rb_isdigit.start.annobin_rb_isdigit.end.annobin_rb_isgraph.start.annobin_rb_isgraph.end.annobin_rb_islower.start.annobin_rb_islower.end.annobin_rb_isprint.start.annobin_rb_isprint.end.annobin_rb_ispunct.start.annobin_rb_ispunct.end.annobin_rb_isspace.start.annobin_rb_isspace.end.annobin_rb_isupper.start.annobin_rb_isupper.end.annobin_set_encoding_const.start.annobin_set_encoding_const.endset_encoding_const.annobin_rb_enc_register.start.annobin_rb_enc_register.end.annobin_rb_encdb_declare.start.annobin_rb_encdb_declare.end.annobin_rb_enc_replicate.start.annobin_rb_enc_replicate.end.annobin_rb_define_dummy_encoding.start.annobin_rb_define_dummy_encoding.end.annobin_enc_replicate_with_index.start.annobin_enc_replicate_with_index.endenc_replicate_with_index.annobin_rb_encdb_replicate.start.annobin_rb_encdb_replicate.end.annobin_rb_encdb_dummy.start.annobin_rb_encdb_dummy.end.annobin_enc_alias.start.annobin_enc_alias.end.annobin_rb_encdb_alias.start.annobin_rb_encdb_alias.end.annobin_rb_isxdigit.start.annobin_rb_isxdigit.end.annobin_rb_tolower.start.annobin_rb_tolower.end.annobin_load_encoding.start.annobin_load_encoding.endload_encoding.annobin_enc_autoload.isra.6.start.annobin_enc_autoload.isra.6.endenc_autoload.isra.6.annobin_enc_check_encoding.start.annobin_enc_check_encoding.endenc_check_encoding.annobin_rb_enc_get_index.start.annobin_rb_enc_get_index.endrb_intern_id_cache.13866rb_intern_id_cache.13864.annobin_rb_enc_get.start.annobin_rb_enc_get.end.annobin_rb_enc_compatible.start.annobin_rb_enc_compatible.end.annobin_rb_enc_check.start.annobin_rb_enc_check.end.annobin_enc_compatible_p.start.annobin_enc_compatible_p.end.annobin_rb_obj_encoding.start.annobin_rb_obj_encoding.end.annobin_must_encoding.start.annobin_must_encoding.endmust_encoding.annobin_enc_ascii_compatible_p.start.annobin_enc_ascii_compatible_p.end.annobin_enc_dummy_p.start.annobin_enc_dummy_p.end.annobin_must_encindex.start.annobin_must_encindex.endmust_encindex.annobin_rb_enc_get_from_index.start.annobin_rb_enc_get_from_index.end.annobin_rb_enc_set_index.start.annobin_rb_enc_set_index.end.annobin_rb_enc_associate_index.start.annobin_rb_enc_associate_index.end.annobin_rb_enc_associate.start.annobin_rb_enc_associate.end.annobin_rb_enc_copy.start.annobin_rb_enc_copy.end.annobin_rb_enc_find_index.start.annobin_rb_enc_find_index.end.annobin_rb_to_encoding_index.start.annobin_rb_to_encoding_index.end.annobin_enc_names.start.annobin_enc_names.end.annobin_str_find_encindex.start.annobin_str_find_encindex.endstr_find_encindex.annobin_rb_to_encoding.start.annobin_rb_to_encoding.end.annobin_enc_set_default_encoding.start.annobin_enc_set_default_encoding.endenc_set_default_encoding.annobin_rb_enc_set_default_external.start.annobin_rb_enc_set_default_external.end.annobin_set_default_external.start.annobin_set_default_external.end.annobin_rb_enc_set_default_internal.start.annobin_rb_enc_set_default_internal.end.annobin_set_default_internal.start.annobin_set_default_internal.end.annobin_enc_replicate.start.annobin_enc_replicate.end.annobin_enc_find.start.annobin_enc_find.end.annobin_enc_m_loader.start.annobin_enc_m_loader.end.annobin_rb_find_encoding.start.annobin_rb_find_encoding.end.annobin_rb_enc_alias.start.annobin_rb_enc_alias.end.annobin_rb_enc_find.start.annobin_rb_enc_find.end.annobin_rb_locale_encindex.start.annobin_rb_locale_encindex.end.annobin_rb_locale_encoding.start.annobin_rb_locale_encoding.end.annobin_rb_default_external_encoding.start.annobin_rb_default_external_encoding.end.annobin_rb_enc_default_external.start.annobin_rb_enc_default_external.end.annobin_get_default_external.start.annobin_get_default_external.end.annobin_rb_toupper.start.annobin_rb_toupper.end.annobin_rb_enc_foreach_name.start.annobin_rb_enc_foreach_name.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC18.LC17.LC19.LC21.LC20.LC22.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC52.LC51.LC50.LC53.LC54.LC55.LC56.LC58.LC57.LC59.LC60.LC61.LC62.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_ary_entryrb_bugruby_strdupstrlenst_locale_insensitive_strcasecmpst_insertrb_cEncodingrb_data_typed_object_allocrb_ary_storeruby_xmallocreallocmemsetrb_hash_newrb_ary_newst_foreachrb_ary_new_caparb_usascii_str_new_cstrrb_scan_argsrb_ary_replacerb_obj_classrb_eTypeErrorrb_raiserb_undefined_allocrb_ary_pushrb_freeze_singleton_classrb_enc_from_encodingrb_enc_to_indexrb_enc_dummy_prb_gc_mark_encodingsrb_enc_set_dummyrb_enc_unicode_prb_enc_initOnigEncodingASCIIOnigEncodingUTF_8OnigEncodingUS_ASCIIst_init_strcasetablerb_enc_from_indexrb_encdb_set_unicoderb_hash_asetrb_enc_registeredst_lookuprb_enc_set_baserb_id_encodingrb_intern2rb_ivar_setrb_enc_fast_mbclenonigenc_mbclen_approximaterb_enc_mbclenrb_enc_precise_mbclenrb_enc_ascgetrb_enc_codepoint_lenrb_eArgErrorrb_enc_codepointrb_enc_codelenrb_enc_code_to_mbclenrb_enc_toupperOnigEncAsciiToUpperCaseTablerb_enc_tolowerOnigEncAsciiToLowerCaseTablerb_ascii8bit_encodingrb_ascii8bit_encindexrb_utf8_encodingrb_utf8_encindexrb_usascii_encodingrb_enc_sprintfrb_usascii_encindexrb_filesystem_encindexrb_filesystem_encodingrb_default_internal_encodingrb_enc_default_internalInit_Encodingrb_cObjectrb_define_classrb_define_alloc_funcrb_undef_methodrb_define_methodrb_define_singleton_methodrb_locale_charmaprb_gc_register_mark_objectrb_marshal_define_compatrb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolrb_isalnumOnigEncAsciiCtypeTablerb_isalpharb_isblankrb_iscntrlrb_isdigitrb_isgraphrb_islowerrb_isprintrb_ispunctrb_isspacerb_isupperrb_define_const__stack_chk_failrb_enc_registerrb_encdb_declarerb_enc_replicaterb_define_dummy_encodingrb_encdb_replicaterb_encdb_dummyst_insert2rb_encdb_aliasrb_isxdigitrb_tolowerrb_sprintfrb_ruby_verbose_ptrrb_ruby_debug_ptrrb_errinforb_safe_levelrb_require_internalrb_set_errinforb_enc_get_indexrb_funcallrb_sym2strrb_ivar_getrb_fix2intrb_num2intrb_enc_getrb_enc_compatiblerb_enc_str_coderangerb_enc_str_asciionly_prb_enc_checkrb_eEncCompatErrorrb_obj_encodingrb_loaderrorrb_eEncodingErrorrb_enc_get_from_indexrb_enc_set_indexrb_error_frozen_objectrb_enc_associate_indexrb_str_change_terminator_lengthrb_enc_associaterb_enc_copyrb_enc_find_indexrb_warnrb_to_encoding_indexrb_check_string_typerb_string_value_cstrrb_string_valuerb_to_encodingInit_enc_set_filesystem_encodingrb_enc_set_default_externalrb_warningrb_enc_set_default_internalrb_find_encodingrb_enc_aliasrb_enc_findrb_locale_encindexrb_locale_encodingrb_default_external_encodingrb_enc_default_externalrb_toupperrb_enc_foreach_nameD#���������40��������;���������D1��������K���������{,��������������������$<7���������>Dg���������t*���������~*������������������������������������������������8A,\��������������������,�8�4�4	������������������<-���������G<T���������[<m����������2�����������������������������D�������������������3��������*���������"���������;���������M����������������������������������������������������������,�;*���������*���������**���������F4��������Y5��������l6��������7���������8���������9���������:���������;���������<���������0���������<++>4G,u�������������������������������������������������;���������S���������g���������t������������������������������+�<	���������.	���������8	���������?	���������M	,�	�	=���������	����������	�	����������
����������
���������S����������*����������>�������������������*����������?�������������������*����������@�����������������/*���������O*���������g,}����������,�,�����������,
,
���������$
,]
*��������t
���������{
����������
A���������
B���������
C���������
����������
����������
D���������
*����������
E���������
���������+F��������0���������Y���������w�������������������������������*����������G������������������*������������������UH��������Z���������mI��������r����������J�������������������K�������������������L�������������������M�������������������N������������������O�����������������P�����������������0Q��������5���������HR��������M���������cS��������h���������~T�������������������U�������������������V�������������������W�������������������X�������������������Y�����������������Z�����������������&*���������2[��������7���������>4C���������XD]���������c4q,x*�����������������������������4�*���������*���������*���������)*���������8*���������G*���������n*����������*����������*����������*���������*���������N*���������~*����������*����������*����������*���������.*���������w�������������������������������������������������$*���������3���������������������������������������*�����������������������������*���������	*������������������>���������Y����������*��������������������*�����������������������������������������������X����������*����������\������������������������������������������������,?���������Y*���������c\��������m������������������������������,�,���������X���������b���������p������������������������������,���������< ���������;���������t����������*����������*���������]�����������������&���������.���������p���������|���������������������������������������������������������������������������������������������������	���������,�����������,�4�*������������������������������������������������*������������������ * ���������Q ���������\ ��������h ��������� ^��������� ���������� � ��������� _��������� ���������� ��������� ���������	!���������!���������4!���������>!���������!����������!����������!���������"����������"���������"��������#��������q#���������#���������#���������#`���������#*���������#���������,$*��������H$���������$*���������$����������$*����������$a���������$���������L%����������%����������%b���������%
���������%*���������%c��������&���������&*��������&d��������&����������&��������'���������?'����������'����������'���������'���������'���������(���������>(���������K(����������(*����������(e���������(����������(f���������(���������(��������	)��������)��������!)���������/)��������7)��������Y)��������f)���������m)<�)����������)���������)���������)���������)����������)���������)���������)*����������)g���������)���������7**���������A*h��������K*���������m*��������u*����������*<�*����������*�*����������*<�*����������*�*���������*<�*F��������+��������� +i��������'+4+*���������;+j��������E+���������]+k��������b+��������j+���������+l���������+���������+m���������+���������+���������+���������+���������+���������\,*��������z,*����������,h���������,���������-���������-+-��������1-���������O-*���������Y-\��������c-���������y-���������-*����������-����������-���������-���������-n���������-����������-<.n��������	.���������).!��������G.$Z.g.���������n.$�.#���������.*����������.<U������������������������������	����������	��������������������
���������d���������������������������������������� ����������"���������Y$���������(��������'(��������0*����������,����������-���������4.����������."���������.����������.$���������.��������� /��$,PXO��O�O�Y�O�YY
DYL
p
x��
��������0�8:d�l:�:�v�:�v�v��$v,�P�X��������������&D�L&p&x?�&�?�?��?�0�8!d�l!�!�V�!�V�V�t$V,tPtX��t����������	�	�D	�L	�p	�x	��	��	��	��	
�
0
8
d
l
�
�
��
�
��
��
�$�,�P�X	���	�	�q	�	�q	q	�	Dq	L�	p�	x�	��	��	��	��	
�	
�	0
�	8
B
d
�	l
B
�
B
�
�
�
B
�
�
�
�
�
+$�
,+P+X��+�����������D�Lpx����88088Xd8lX�X���X������$�,�P�X��������������1
D�L1
p1
x�1
���08CdlC�C�h�C�h�h��$h,�P�X��������������SD�LSpSx��S��������0�8�d�l���������1$,1P1Xa�1�a�a���a����D�L�p�x���������08AdlA�A���A������$�,�P�X��������q���qq�DqL�p�x9���9�9��9�0�8�d�l����_���_�_��$_,�P�X���������������D�L�p�x��������&�&0&8� d&l� �� �� �� �� �� �T#$ � , T#P T#X �#� T#� �#� �#� �$� �#� �$!�$!�$D!�$L!�$p!�$x!%�!�$�!%�!%�!_%"%"_%0"_%8"�%d"_%l"�%�"�%�"#&�"�%�"#&�"#&�"9&$##&,#9&P#9&X#�&�#9&�#�&�#�&�#�'�#�&�#�'$�'$(D$�'L$(p$(x$+(�$(�$+(�$+(�$�(%+(%�(0%�(8%G)d%�(l%G)�%G)�%�)�%G)�%�)�%�)�%�)$&�),&�)P&�)X&O*�&�)�&O*�&O*�&+�&O*�&+'+'I+D'+L'I+p'I+x's+�'I+�'s+�'s+�'�+(s+(�+0(�+8(�+d(�+l(�+�(�+�(,�(�+�(,�(,�(�,$),,)�,P)�,X)�,�)�,�)�,�)�,�)�,�)�,�)�,*�,*g-D*�,L*g-p*g-x*�-�*g-�*�-�*�-�*.+�-+.0+.8+8.d+.l+8.�+8.�+�.�+8.�+�.�+�.�+�.$,�.,,�.P,�.X,�.�,�.�,�.�,�.�,�.�,�.�,�.-�.-�.D-�.L-�. +	 , - .4Q 4PPd`��4L@h�|�����0�@�00D`X�l�������� ����H�d 	��	��	��	�
P
D�
�0����, @@T`l������
�@
 0PHp`�x����`�����0@DpX�l���� �P��8�T������@	�4	�l	`�	��	��	
�t
��
0�
� � h`#��#��$�%� %`% �%L0&`@&��&��'
( 
0(X
�(|
P)�
�)�
*�
P*+(P+D�+X�+t�+�,��,��,��,0p-H�-t .�@.��.��.��.��..symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*oT*pl*q�*r�*s'��."@���**-�/3�/P=�/T-8@��+*
S$]b$]�]@�/0*
|�^��^��@�/0*��`��`��@�/0*��b��b��@00*2xd
2�fa.iH )@H0*A0Hi.�vi�vi|viSvi'viJviXvikvi}vi�vi�xi ��i��@`0�
*(�y�3+�	0��+@;�enum.o/         1690381920  1000  135   100644  112104    `
ELF>�@@,+

!"#$��H�F �Ð��H�4�4�ff.�@��ATI��US�H��H�H�8�H�5H��H��tOL��H���H�5H��tXH��H���I��H��1�L��1Ҿ��H��[]A\�f.��H�=�H��H���H�=�H��H����SH�5H��1�H�1�1��H�[�ff.�f���AVAUI���ATI��US�H��H���H��H� ���H�5H�kH����L���H�5I��H����L���L�mI��1�H�EL�Y<1�L��H�E4��H�E�H���H��H� u6�H�[ H�KH��tH�{���1��[�]A\A]A^��H����D�H�5H�k H���7����H�=�H��H�������H�=�H��H�������AVI���AUATI��US�H��H���H��H� ���H�5H�kH����L���H�5I��H���L���H�5H�EH����L���L�uI��1�H�EL�M<1�L��H�E���H���H��H� u:�H�[ H�KH��tH�{���1��[�]A\A]A^�@�H����D�H�5H�k H�������H�=�H��H������H�=�H��H�������H�=�H��H�������ATI��UH��S��H��H�D$���������I��H�H�8�H�5H��H����H��H���H�5H�l$H����H��H���H�5H��t]L��H���I��H��1�L�����1Ҿ��H��H��[]A\�L��H�L$��1�H�A���O���D�H�=�H��H���H�=�H��H��L����H�=�H��H�����H�H�5H�81�����ATI��UH��S��H���H�L$����1�H�L�������H�H�8�H���H�5I��H���5L��H���H�5L�d$H����L��H���H�5H����H��H���I��H��1�L�p1Ҿ��H��H��[]A\��L���H�1��H�H�8�H�5L�d$H��H���q����H�=�H��H��Q���fD�H�=�H��H��F���H�=1������D�H�=�H��H�����H�=�H��H������ATI��UH��S��H������/1�H�L$H���L�������H�H�8�H�5H��H����H��H����H�5H��H����H��H���H�5H�l$H��tNH��H���I��H��1�L��1Ҿ��H��H��[]A\�@H�=1���V���D�H�=�H��H���H�=�H��H��V����H�=�H��H�����H�H�5H�81�����AVI���AUATI��US�H��H���H��H� �	�H�5H�kH���	L���H�5I��H���eL����H�EH����H�5H�UH���L���H�EH�EL�u H��tH���H�EI��L�R71�1Ҿ�L���H���H��H� u=�H�[ H�KH��tH�{ ���1��[�]A\A]A^���H���D�H�5H�k H��������H�=�H��H������H�5H��tdL���H�5H��H�UH������H�=�H��H�����D�H�=�H��H��{����H�=�H��H��|�����AVI���AUATI��US�H��H���H��H� �	�H�5H�kH���	L���H�5I��H���5L���H�5H�EH����L���H�EH�EH�EL�u H��tH���H�EI��L��61�1Ҿ�L���H���H��H� uH�H�[ H�sH��t!H�{�H�{ ���H��1��[�]A\A]A^�fD�H���D�H�5H�k H��������H�=�H��H�������H�=�H��H�����H�=�H��H������SH��H��H�t$���t.L�L$H��1�1�L��=���H�D$H��[�fD�H���H�L$H��L���H���H��[�f���AUI��ATA��UH��SH���L��D�⾁H��I��L�LMH�����u!H�����tH��Ѓ����H��sH��H��[]A\A]�@��u�H�����t�H�E������t�%H	�H���fD��H��H�51�1���H��4HD�H���fD��AV1�AUATI��H�UH��S��H��H�D$H�L$������L�l$I���A����I�M�����L��61�1�I��I����L��H�@�I�.�� ��H����M�fH��thI���tBf.�I��M��~OH��~�1�L��I� uI�F H�<�H���H9��I���u�H���H�����L���I��M���N���H���[]A\A]A^�I�n�t����H���H���L��L�!H���H��[]A\A]A^�I����������U1�1�SH��H��H�5�H��4��H��H��txH��t[H��� tCH����tHH�;H��t?@��taH�H��~iH��H�L?�1�H��[�*]�f�H�{~	H�[ ��H��[]�DH���[]�@�H���fDH���[]�ff.����U1�H��1�S�dH���H��1�1�H��I����L�L<�H�CH��[]�ff.����U1�1�H��S��dH���H���I��H�チ��L��H�-BLD�1�1��H�CH��[]�D��U1�1�H��S�4�dH���H���I��H�チ��L�4'H��ALD�1�1��H�C�H��4HD�H��[]����U1�1�1�SH���dH���H���I��H�チ��L�H��ALD�1�1��H�CH��[]����U1�1�H��S��dH���H���I��H�チ��L��H��ALD�1�1��H�CH��[]�D��AT1�I��H�UH��S��H��H�L$����tx1�1Ҿ4�d�1�1�L��DH��I����L���H�{ u0H�D$H��tH�5H��1�1�1��H��[]A\��H�CH��[]A\��H���H���L��E1�H���H��[]A\�ff.�@��ATI��USH��H�D$��u\�H�-L�����ID�H�t$1�1ҿd�I��L��1�H��I��1Ҿ��HcC H��[]H�DA\�@H�L$H�1��H�-�C���t�H�=1���D��ATI��UH��S�1�L��dH��H���I���M��H�チ��L��CH�uCLD�1�1��H��[]A\���S��H��H���H��H����[�ff.����S��H��H���H�����tH�C �[�f.���S��H��H���H�����u�[�H�C�f���S��H��H���H�����u�[�H�C�f���S��H��H���H�����t�[�H�C�f���S��H��H���H�����uH�C �[�H�C �����H�H�H!�H��H�C�ff.���AWHc�I��AVAUATUH��SH���I��H���L��I� �-�I�^�����E�H��L�l���H�EH��L9���H�}�I��H��u�H�-H����DH�;������L��H���H�{��H��H��1��H�C�L9�u������1�L���W�L��0I��L��1�1Ҿ��H��L��[]A\A]A^A_�������1�L���W�A�L�R2I���D�I�^ ����f.��H�=�H��H�����1�L��WH��I���L��/I���<�����1�L��WH��I���L��1I������H�;�H�5H��H�H�81��@��ATUH��SH��H��H�t$����H�H�������t[�H��A���A��H�ٿd��A��H��D	����H��1�1�I��L��2���H���[]A\Ð�H���H�L$H��L���H���H��[]A\�fDH���H���K���H�H�5H�81����ATUH��SH��H��H�t$����H�H���������H���I���H��L��d�����	����H��1�1�H��I����L��2�H�{H��� uH������uH��H��[]A\�f��������t��H��H��[]A\�fD�H���H�L$H��L���H���H��H��H��[]A\�H���H������H�H�5H�81�����UH��SH��H� ��H��H�����H�H����H�5H��1�1��H��H��4��H����H�@�H)�H9���H�L	H���+1������H��H��1��H�޺H�������HD�H��H��[]�f.�H�v H����:���H���H���-����H��H��[]ÐH���H���`���H�H�5H�81�����UH��SH��H� ��H��H�����H�H����H�5H��1�1��H��H��4t~H��txH��������?H�{�H�xuH�L?H���+1��H�L�H�5H��H��1�[]�H�v H����r���H���H���e����H���[]�@�H���H�H�5H�81��ff.�AWAVAUATUSH��H�H�D$hH9GH�Ę[]A\A]A^A_�H�_H��H���H�H�]H��� ���H�CH�D$�}4H�]H�D$`H�H���}4H�H��H�D$H��H�\$H��H��H��H��H�\$PH��$�H�D$X����A�����H�t$@�t$|�|$x�D$<H�t$`H�T$�|$xH)�H��H��?H�1�H�H�H�D$H�t$H�Ɖу�H�4H�49�r�D�D$<H�H�E��t��H�T$H�T$H�t$H�<�H�pH�|$(H�H��H�J�T/�J�T(�H)�H)�D$@���r��1҉у�L�L�9�r�H�t$(H�H��H�J�D+�J�D.�H��H�vH��H)�H)�D$@���r��1҉у�L�L�9�r�H�D$ H�D$`H�D$0I��L�d$L+d$ M9�|JH�D$H�|$H��H�t$(I��L�<�L���U(�}0��t�؅���� L�d$I��L+d$ M9�}�H�D$H�t$0H9��kI9��bH�D$0H�D$L�d$HN�+H�|$H�t$(H�l$pL�D$L�d$@H�NjD$|�l$xA�ƒ�A��A��1��ƒ�H�<H�<9�r�D�t$<H�<1�H�E��t	���E��tD�4fD�4H��E��t��H�H�yI��H��H�J�D.�J�D)�H��H)�I)�D���r!H�L$(��1�A�փ�K�7J�79�r�H�L$(H�L�vI��I��H�I�C�J�D.�H��L)�I)�D���r H�L$(��1҉׃�I�?I�>9�r�H�L$(H�D$I��HL$PHt$XL)�HD$0I9�~L9D$H���H�l$pH�t$0H9t$h�/H�D$ HD$0H�D$`H9D$h���H�]H���H�H�]H��� �	�H�SH�\$H�D$0H�uH�}H��H��H�uH��H�E H�Ę[]A\A]A^A_���t$x1��ƒ�I�H�9�r�L$<H�L���t��H�D$0H�D$H�t$H��I�wH�H��H��I�J�T(�K�T/�I)�L)�D|$@A��A��rA��1҉у�L�L�D9�r�H�H�pI��H��H�J�T+�J�T(�H)�I)�D$@���r��1҉у�I�<H�<9�r�H�D$0����@�t$x�ƒ�I�H�9�r�t$<H�L���t��H�L$H�D$I�wH��I��H��H�H��I�J�T(�K�T/�I)�L)�D|$@A��A��rA��1҉у�L�L�D9�r�H�H�pI��H��H�J�T+�J�T(�H)�I)�D$@���r��1҉у�I�<H�<9�r�H�D$ ���H�D$0H��H�D$�����H�S ���H�C H�D$�-���ff.��AVAUATA��U��SH��H��@@����H�H�4$H����������H��������H9���H��H�<�H��H�D$H�T$�E�侁H��H�D$H��H�I��H�D$(H�L��+HD�1�1�H�D$ 4D�d$0�D$4H�D$8�H�����H�\$L�t$(H�3�� ��H����I��H���H��H� �<�H�{ I��L��L����L�k�pDH��H����H9�}sH���H��H� ��L��H��L�4��H��H� ���L��H��I�H��?H�H��H�H��H�3H��� u�H�CH9�|�H����H����H���E���H����H��������H9���H�<�H��H�D$H�|$�H�D$ 4H�D$���H��I��H��D�d$0H�HD�E��H��D$4L�*H�D$(H�HD�1�1�H�D$8�H���)���H�\$L�t$(H�3�� ��H����I��H���H��H� ���H�{I��L��L���E�����H�H�H�CH��@H��[]A\A]A^�H���H������1��H��@H��H��[]A\A]A^�fD�H�{���f�L�k�Q�����H�S ����f��H�C ���f�H�CI��I��?I�I��V���f.��H�{ ����f�H�CH��H��?H�H����H�H�5H�81��H�H��H�5H�81�����AU1�I���4ATA���dUH��1�SH���L��H�L$D��H��H�1��H�t$H��tH��1����H��[]A\A]�D�I��L��*��uL�v*1�1�H�チ�H�C�H��4HD�H��[]A\A]�f���AU1�I���4ATA���dUH��1�SH���L��H�L$D��H��H�1��H�t$H��tH��1�1�����H��[]A\A]���I��L�+��uL��*1�1�H�チ�H�C�H��4HD�H��[]A\A]�f���AUI��ATA��UH��SH���L��D�⾁H��I��L��1H�����u!H�����tH��Ѓ����H��sH��H��[]A\A]�@��u�H�����t�H�E������t�%H	�H���fD��AT1�I��H�USH��H�\$H��I��H�����th��������H�L$H�4$H�-�,��d�1�I��1�H��L��I�����H�C�H��4HD�H��[]A\�@���u�H���H�$H����H�L$�4H�-�+H�$4��H�$4H�L$�4H�-O,�[���f.����uGH���H��uH�L$H�4$H�-j+�&���DH��H�-V+�H�4$H��H�D$����H�=1���H���H���F�����U��H��H��SH���H��H���H��tH��H���H���[]ÐH��H���H���[]�f���H��H��1�1����H��H���ATI��U��SH���H���L���H��L�H�[H��]A\�ff.����ATI��U��SH�����t'L���H��E1�L��!���H��[]A\�H��L��[��]A\�o���ff.�@SH���H���H��E1�1�1�H��[�ff.����USH��H�����t2�H��1�1�I��L���H���H��H��[]�DH��H��[]�z���f.�SH���H���H��L�%�[1�1�H������USH��H�����t2�H��1�1�I��L����H���H��H��[]�DH��H��[]�z���f.���USH��H�����t2�H��1�1�I��L�����H���H��H��[]�DH��H��[]����f.���USH��H�����t2�H��1�1�I��L�D)��H���H��H��[]�DH��H��[]���f.���USH��H�����t2�H��1�1�I��L�D)��H���H��H��[]�DH��H��[]�Z���f.���AUATI��UH��S��H���L��H��߅�ty����H��H��� uAH�]L�mH��y%�Af�L��H�<�H���H���t"H�E�� u�H�E ��H��H�����@H��L��[]A\A]�f.�H��[]A\A]�q������USH��H�����tB�1�1ҿdH��H���H��1�1�I��L�`���H��H��[]�@H��H��[]���f.���ATI��US@��tOH��H�H��xQ�H��1ҿdH��H���L��1�1�I��L�i���H��[]A\��H���H���H�H�5H�81��ff.���ATI��U��SH�����t71�1�1��d�L���H��I��L�e���H��[]A\�H��L��[��]A\����ff.�@��UH��SH�����tZ�H���H��1ɿdH���H�チ1�H��I��L�%1��H�sH�{H��[]�f.�H��H��[]���f���ATUH��SH��H�D$��uT�L�%���t|H�T$1ɾ�d�M��H��1�H��I��1Ҿ��H�CH��[]A\��H�L$H�1��L�%F&���t�H�=1���D�H���H��E1�1�1�H���H��[]A\���ATI��US@��t_H��H�H��xatBH���H��1ҿdH��H���L��1�1�I��L�����H��[]A\�f�[1�]A\�DH���H���H�H�5H�81��ff.�AWAVAUATUSH��M�8I��4u!I�8I�pI�PI�HH��[]A\A]A^A_�1�I��I��H�����L��I��L���L��L��H�����yL�#L�sL�c���1�H��L���L��H��H�����~�H�kL�kH��[]A\A]A^A_����ATI���US�H��H���H��H� ���H�k�����H�E4L��I��1�H�E41�L����H�EH�EH�E 4H�E(4�H�} H��4uEH���H��H� u!�H�[ H�sH�{[]A\���H����DH�U(I��H��H���N����@�H�k ����8����H���[L��]L����1�1�H��A\�ff.���AT1�I�ԺUSH�.��H�H��H���I�T$H�zuH��H��H��[]A\�H�I�T$8H�5H�81��ff.�f�AVAUATUSH�H��4uH�:H�1[]A\A]A^�H��1�I��I��H��H���I���H��H��H�����yI�mI�$L���1�H���H��L��H�����~�M�4$[]A\A]A^��AVAUATUSH�H��4uH�:H�1[]A\A]A^�1�I��I��I�����H��H���H��H��H�����yI�mI�$���1�L��H���H��L��H�����~�M�4$[]A\A]A^���AU�4�4�4ATI���dUSH���H��H�$H�D$H��L�h�H�C4H�C 4H���I�م�trL��L�h1�1Ҿ��H�{ H��4u8H�SH��4t1�H���H�S�H���H��H��[]A\A]�DH�KL��H���	�����L��L�V1�1Ҿ��H�{ H��4t�H�KL��H���_����z���f.���USH��H�zu1H�.H����1�H��H���H��H��H��H��[]�H�H�5H�81��fD��AT1�I��H�UH��S��H��H�L$����tpH�t$H��uE1ɺ�4�d�L��1�1�H��I����L�f�H�CH��[]A\�@L����N�H��[]A\�D�H���H���L��L����H���H��[]A\���USH����wUH��uH�6H��H��[]�[���1�1Ҿ�d�H��1�1�H��I����L�|�H�EH��[]ú1����UH��SH�����tz�1�1�L�ZH��I����H�����u>H�����t5H��Ѓ���~l@��u"H�����tH�E������t%H	�H�H��H��[]�f.��H���H��H��1�[L����1�H��]���H��r����S��H��H���H�����tH�CH��4tH��t�[��H�C�[�H�C�ff.����AT1�I��H�UH��S��H��H�L$����tpH�t$H��uE1ɺ�4�d�L��1�1�H��I����L�V�H�CH��[]A\�@L��1ɺ���H��[]A\���H���H���L��L�D��H���H��[]A\���AT1�I��USH��H�.H��H���I�T$H�zuH��H��H��[]A\�H�I�T$8H�5H�81��f���AWAVAUATUSH��H������I��A��u
H��������I��I�F� ���H��I���1�1�1��d�H��I��
M�l$��M��1�M�t$L��1�H��I�D$ �I�t$ M�l$H���II�u�� ��H��H���H���}I�}��I�u�M�}�IH��H���H9��uL��H��L�4�H��?H�H�L�4�A��u
I������I�uH���� u�I�EH9���I�U ��I�uH���m���I�} H���fDH��������H���у����H��H�Ѓ�M��������������H����������H������������%H	�I�$���@H��ƒ����'����� �qH��������?H�{H9�����H��I������L��L���I�u�����H���`H��`����I���`H��`����L��L�������H���L���H�H�I�EA��u7I�����t.I�U��у����H��H�Ѓ�H��u����H��L��[]A\A]A^A_�DH��H��?H�H�뇐I�\$H�H���H��L�������H���H��H��1�[L����]1�A\H��A]A^A_��H�I�}��M��H�
�������`���H����H�����I������B���I�$�������0���%H	�I�U����H�H�5H�81��ff.�����t��tHc��H��@��f.���AUH��I��ATU��SH��H���H��H� ���L�c��L���I�L$H��H��4��H�5I�<$I���1��H��H��I���H��H� uh�L�c M��thI�L$I�|$�1����H���H��H� ���L�c H�t$�H�l$�I�D$��L�cM��u�I�|$H���I�l$H���[]A\A]��L�c �	���f�I�D$H�t$�H�D$�I�D$H���[]A\A]�f��L�c�d���f���AUH��I��ATA��USH��H���H��H� ���H�kD��L���H�}I��H����H���H�}L��H�5H��u	H�}��1�1��H��H�����@���H��H� u#�H�C ��u#H���[]A\A]�fD�H�C��t�H�HH�x�1����H���H��H� u^�H�[ H�CH���[]A\A]�D�H�k ����f.�H�t$�H�D$�H�E����H���D��ATH��I��U��SH��H���H��H� ���H����L���H�{H��H����L�CH�5H��H�;I�����1��H�{H�����tMH��tH��H�{ �1����H�t$�H�l$�H�CH���[]A\�f�H��t�H���H���[]A\�@�H�[ �7���f�H�����1���^�����1���F���ff.�@��AVH��AUATI��U��SH��H���H��H� �0�H�=H��H���0�H�=I��H�����L���I���L�CI��H��I���iH�5H�;�1��H��L9���H��tqL9�tl@���@��uH�����t�E������@H�{H���gH���H���1H�{L���H���[]A\A]A^�H�{H��t�H�s�H�{ ���H��1��H�CH�C��H�=H�[ H������H�=��H��H�����H�{H����H�t$�L�d$�H��H���H�{ ���H��1���!���fDH�5H�;�1��H�����f�H�=�
�H��H��1���H�sH�{�H�{ ���H��1��H�kH�t$�L�d$�H�C���f.�H�s�H�{ ���H��1��H�CH�C���f.�H���H� t/H�@�8_����H�H�5H�81��f.�H����f.���U��H��H��SH���H��H��H���H���H���[]����U��SH��H��H���H�{ H��tH�{H���H���[]��H���H�����uH�C ��fDH�{ u�H���[]�ff.�f���H�F H��tH��H�F ��DS��H��H���H�{H����[�ff.�@��AT��I��H��UH��S���H�����tH����L��H���[�]A\��f.���S��H��H���H�{H���H�k t�[��ff.�@��ATUH��S��H��0H�FH�D$H�FH�D$H�D$H��� H�D$��H�8H����H���H���1�H�D$L�d$ �H�|$1�H����f.�H�H����H9���H�D$H��� H�D$��H��H�<���H�D$H��� H�D$��H��H��L��E1�L��H�Z���H�=3���H�D$(H�L�1��H�t$ H��4��H�|$���H�D$Hc�H��� H�D$�H���H�@H9��N���H�D$H����H�t$H�|$�H��0�[]A\��H�@ H�<��1���H�|$����H�@ �)����H�D$H� t"H��H���H�D$ �5���H�@ ��f.�H�xH���J���H�|$�H��0�[]A\����ATI��U��SH�� H�FH�^ H�D$H�FH�D$H�CH�F H�D$H��� H�D$�H�8H����H���L���E1�H�D$H�,��H�|$1�H����\DH�H����H9�}fH�D$H��� H�D$��H��H��H��� tkH��H����H9�}{H�|$H�4(�A��H�D$Ic�H��� H�D$u�H�@H9�|�H�D$H��thH�t$H�|$�H�� �[]A\�H;X}H�@ �@H�@ �p����H�|$������@H�xH�����H�|$�H�� �[]A\����S��H��H���H�ڿ[H��1��ff.���AT��UH��SH��H�^L�f H���H��H��� tdH����L9�taH���H��� t H����L9�tH���[]A\�fDH�CL9�u�H�}u8H��H��[]A\��H�CL9�u�H��H�t$�H�t$�H���H��H��H��[]A\�D��AV��AUATI��USH�nL�n H���H��H���H�}�� t(H��A�H����L9�t"[L��]A\A]A^��H�]A�L9�u�H���I�|$I��tH���I�D$L��[]A\A]A^�DH���[L��]A\A]A^�ff.����H����H���H����H���ff.����SH�^ ��H�CH�F H���Hcӿ[H��H�T1��ff.�f���U��SH��H��H�nH���H��H���H��uH���[]�H�C�ff.����AVH��AUATI��U��SH���H��H� ���H��L����H��I���H�k I��H��4��H��H�C 4H��1����L�s(�L��H��H�����u0I��M��I��L��L��H��L����[�]A\A]A^��y�L��I��H��L��M��I���f.��H�[ �G���f�H�C �L�k([]A\A]A^�f.���AU��ATUSH��H��H���H��I���H�kI��H��4uL�k�L�cH��[]A\A]�DH�Ǻ��1�H���H��L��H������H���[]A\A]����U��SH��H��H����s4H�Ņ�uoH�{ 4H�D$t1H��H�s H�|$�S(�S0��t�؅�y3�K4H�{��tH�t$�H�{H���H�CH��H�CH;Ct4H���[]��H���H�{ 4H�D$u��f.�H�����H���[]�ff.����AU��ATUSH��H��H���H��I���H�kI��H��4uL�k�L�cH��[]A\A]�DH�Ǻ��1�H���H��L��H�����x�H���[]A\A]����AT��USH��H���H�k I��H��4tfH��H�C 4H��1�����L��H��H�����u%I��H�KH�SH��L�����[�]A\�Dy�L��I��H����H�C �[]A\�f.���AT��USH��H���H�k I��H��4t^H�C 4H��H��1��L��H��H�����u"I��H�KH�SH��L����[�]A\�f�y�L��I��H����H�C �[]A\�f���U��SH��H��H���H�KH��H��4uH�kH���[]�@H�Ǻ��1��H�SH��H������H���[]�D��U��SH��H��H���H�SH��H��4uH�kH���[]�@H�ƿ1��H�SH��H������H���[]�f.���U��SH��H��H���H�KH��H��4uH�kH���[]�@H�Ǻ��1��H�SH��H�����x�H���[]�D��U��SH��H��H���H�SH��H��4uH�kH���[]�@H�ƿ1��H�SH��H�����x�H���[]�f.���S��H��H���H�����u�[�H�C�f���S��H��H���H�����tH�CH��4tH��t�[��H�C�[�H�C�ff.����S��H��H���H�����u�[�H�C�f���S��H��H���H�����t�[�H�C�f���S��H��H���H�C�D��AT��UH��H��SH���H��H���H��H��I����uH�����u2H�t$�H�\$�L��H��H���H���[]A\�f������u�H��H�����f���U��H��H��SH���H��H���H�����tH�}H���H���[]�fDH�}��f���U��SH��H��H���H�SH��H��4t|H�{ @��t@��uDH�����t;�����u1�H�{H��H��1��H�CH���[]�fDH�<$H��H�l$�H�CH���[]�f�H�CH���[]���S��H��H���H�sH��4tH�¿1��H�C�[�f.���U��H��H��SH���H��H���H�����tH���[]�f.�H��H���H���[]�f���U��H��H��SH���H��H���H�����uH���[]�f.�H��H���H���[]�f���S��H��H���H�sH���H��uH�C �[�H�C �����H�H�H!�H��H�C�f���U��H��H��SH���H��H���H�����uH���[]�H�]H�E �f���S��H��H���H�sH���H��tH�C �[Ð��U��H��H��SH���H�}���H��H��1��H�����uH���[]�f.�H�}H���H���[]����U��SH��H��H���H�{���H��H��1��H�����uH���[]�f.�H���H�{H���H���[]���AV��AUATUSH��L�fH���H��H���I�|$�8L�kI�E �&I�} �I��H�C H��IE L�0A��u
I�������L�kI�UI�E uI�U H�C H��H�l@��t!H�C H��H�C H��tO[�]A\A]A^ÐH�����t�H��L�����u�I�E��`H��`u�H�E��`H��`t�H��L���렐H�sL���H�C �[]A\A]A^�fDL��L������;���I�E��`H��`�*���I���`H��`����L��L����
���H�H�5H�81��ff.����U��SH��H��H���H���H���H��tbH��� u+H�PH��u8H�@ H�PH�0H���H���[]�f�H����H��u
H�PH����H�H�5H�81��H���H�5H��H�H�81��ff.���ATI��U��SH���L����H��H���[�]A\�ff.����SH�=�H������H����H��H�5H��H�;�����H�����H�5�H�;�����H����H�5�H�;1�H����H�5�H�;1�H����H�5�H�;�H�%���H�5�H�;�����H�Z���H�5�H�;�����H�_���H�5�H�;�����H�D���H�5�H�;�����H����H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H�1��H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H�)��H�5�H�;1�H���H�5�H�;�����H����H�5�H�;�����H����H�5�H�;1�H�c��H�5�H�;1�H����H�5�H�;�����H���H�5�H�;1�H�����H�5�H�;1�H����H�5�H�;1�H�����H�5�H�;1�H����H�5�H�;�����H�e��H�5�H�;�����H����H�5�H�;1�H���H�5�H�;�����H����H�5�H�;�����H�L��H�5�H�;1�H����H�5�H�;�H�	���H�5�H�;�H���H�5�H�;�����H�s��H�5�H�;�����H����H�5�H�;�����H����H�5�H�;�H�����H�5�H�;�H�����H�5�H�;�H�����H�5�H�;�����H�A���H�5�H�;�H�v��H�5�H�;1�H����H�5�H�;�H����H�5�H�;1�H�k��H�5�H�;�����H�`���H�5�H�;�����H�����H�5�H�;�����H�ڥ��H�5�H�;�����H�O���H�5�H�;1�H�G���H�5��H�=��H�=H���H�=H���H�=H��[H��GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignslicewhen_enumslicewhen_predsliceafter_enumsliceafter_patsliceafter_pred101slicebefore_sep_predslicebefore_initial_stateslicebefore_sep_patslicebefore_enumerableno block givenchunk_enumerablechunk_categorizechunk_initial_stategiven block not usedto_enuminvalid sizeinvalid slice sizemax_bymin_byminmaxnegative size (%ld)too big size02attempt to drop negative sizeattempt to take negative size%s reenteredsort_by reentered_alone_separatorEnumerableto_aentriesto_hsortsort_bygrepcountfinddetectfind_indexfind_allselectrejectcollectmapflat_mapcollect_concatinjectreducepartitiongroup_byfirstall?any?one?none?minmaxminmax_bymember?include?each_with_indexreverse_eacheach_entryeach_sliceeach_conseach_with_objectziptaketake_whiledropdrop_whilecyclechunkslice_beforeslice_afterslice_whennextcallsizedivboth pattan and block are giveninitial_state given for slice_before.  (Use local variables.)initial_state given for chunk.  (Use local variables.)wrong argument type %s (must respond to :each)symbols beginning with an underscore are reservedwrong element type %s (expected array)element has wrong array length (expected 2, was %ld)�GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0,D�F�D�A �g
ABKt#E�]<�`F�B�J �D(�A0��
(F BBBA<��F�J�B �D(�A0��
(F BBBE0hF�D�D �F0�
 DABD0D�F�D�D �F0�
 DABI0xhF�D�D �F0�
 DABE<�F�J�B �D(�A0�
(F BBBH<��F�J�B �D(�A0�
(F BBBG$,wE�G t
AGmA8T�F�E�D �D(�D0O
(D ABBA�*HaT�pF�D�B �K(�D0�F@�
0F(A BBBAq
0A(A BBBAH�E�E�G R
PFG\
AAJD
FAETFA$LDE�H�I kAA$t[E�H�N }AA$�hE�H�N JAA$�XE�G�L }AA$�[E�H�N }AAL�F�M�D �F0o
 AABHH
 AABDd AAB0d�F�D�A �D0[
 AAGE(�`F�D�D �NAB�$E�^�&E�`�.E�[
A.E�[
A4.E�[
APEE�`
AHlF�H�B �B(�A0�D8�D@�
8D0A(B BBBI@��F�A�D �G0s
 FABBm
 AABGP�8F�A�D �G0�
 DABCZ
 DABGm
 GABA4P8E�D�D �
DAKi
DAB4�E�D�D �
FAHl
FAEd�4B�B�B �B(�A0�A8�G�U
8A0A(B BBBA
8A0A(B BBBFX(	B�B�B �D(�C0�Gp�
0D(A BBBDc
0G(A BBBGH��F�L�I �F(�D@
(A ABBF@(A ABBH��F�L�I �F(�D@|
(A ABBI@(A ABB8�F�E�D �D(�D0O
(D ABBA0XpF�M�A �D0w
 AABE0�WE�I�D e
FABOFA� HP(�4B�D�C �`DB4	QF�D�C �l
ABDGCB<	$A�^0X	VE�A�G p
DAFDDA�	(A�[0�	VE�A�G p
DAFDDA0�	VE�A�G p
DAFDDA0
VE�A�G p
DAFDDA0D
VE�A�G p
DAFDDAHx
�F�B�D �D(�F0v
(D ABBKD(A ABB0�
fE�A�G A
DAEDDA,�
�F�D�A �J
ABH4(aF�D�C �|
ABDGCB0`~E�D�D R
AAODDA<��F�A�D �D0U
 AABH[ AAB8��F�D�A �O
ABCA
CBJ\�B�B�B �B(�A0�A8�D@\
8A0A(B BBBDu8A0A(B BBB4p5F�I�A ��
ABLLDP(�cF�K�A �l
ABEH��B�B�B �A(�A0�P
(A BBBAa(A BBBH 
�B�B�B �A(�A0�P
(A BBBAh(A BBB8l
F�Q�I �A(�D@�
(D ABBF(�
ZE�A�D h
JAEL�
�F�M�D �F0Z
 AABEV
 AABFh AAB4$pE�A�D Q
DAHy
AAA4\�E�D�D s
DAKQ
FML �TE�k
HN
AL��F�M�D �F0Z
 AABES
 AABIh AAB(^F�F�A �l
ABEd4�F�B�B �B(�A0�A8�G@�
8D0A(B BBBFA
8F0H(D EBBL�&L�nF�H�A �C(�G@�
(F ABBAr
(F ABBCLkF�H�D �A(�G@�
(F ABBGO
(F ABBF@P1F�G�C �G0�
 FABJR
 FABE@�F�E�B �D(�C0�G@�
0F(A BBBD$�9E�I�D _FA0sE�C�J _
FAHkFA4Aa�_(PFF�I�D �e
FBA|1E�f
A@�F�A�D �FPV
 FABH� FAB@��F�D�C �D@

 FABDV FAB %E�VL<�F�C�D �D0G
 FABGT
 DABMl GAB\��F�D�B �D(�A0�}
(D BBBHs
(A BBBFI(D BBB�$H[3E�_( DE�C�G `
FAAHLF�E�B �D(�C0��
(F BBBI~(A BBBH��F�D�A �A(�J0n
(A ABBFm(F ABB0��E�C�J0n
FAIlFAH�F�D�A �A(�J0n
(A ABBFm(F ABB4d�F�C�A �`
FBFZAB4��F�C�A �[
FBCZAB0�kE�C�J Z
FAEkFA0fE�C�J Z
FAEfFA0<kE�C�J Z
FAEkFA0pfE�C�J Z
FAEfFA�.E�[
A �TE�k
HN
A�.E�[
A.E�[
AE�04�F�C�G �D0P
 FABC(hNE�I�D h
FAG<��E�C�J0X
FAG^
FACHFA�6E�p0�WE�I�D \
FAKOFA0$WE�I�D \
FAKOFAXNE�i
A(tGE�I�D \
FAA�/E�i0�hE�I�D l
FAKPFA0�pE�C�J l
FAKXFAL$�F�D�B �A(�A0��
(F BBBBZ
(A BBBG(t�E�C�J D
FAC(�4F�D�C �^FB��E�z	 %9!Qj"��#��$�)B!Yc!���0��	��	�� `���#'	�/J�c	�|	��>n��� ����	��	�	�0p?k> ^�| h�	��	��	����P��*	�C	x\	hu��	p�P���Ph�	@�	8	0$�
�,�I�
d	`}	X�	H��@1�	P��
��	(	 5	N BW�|
��w��J%��
*�
��

��Z4�
1�
H	�P�
jP��
p�0E9�P��P�$�$�t0D!�LD*tC�Z�[d`.p�R.w��H��heP8Tq ST�H���PX��.��S.��	$	�[-	�.��S.8	Q	�h	�r	�VGy		��	��	��	���	0&�	0W/�	��	
�`
�Wp
`Wh 
9
$P
$Z
$v
V�
V�
��
��
��
��(�I5h�Ez5�\�@�	��F��H��\�P`�!�J�-�8AP`�}P8��K���������
�9
	�@
�[
"t
�4�
"�
)&�
 "	�
03c�
�N��
�9^�
)&�
�&0&��Qf%0Qk
�&%�';�&�D�Rf�
RkK�'dJ({�'���Y��J(��)�P(p��U6��T���)*�)W#*<@*S * ]@*�t*�@*4�@*4�@*4�t*�*0�*Q@@L$K�*q+��*$��*$�+�f+�+V@FFf+@�+bp+(wp+(�p+(�p+(�p+(��+��+�+V�+,V,F,VSV,n�,�`,V��UW��,�-��,V�0VW�-�-- -�?�-^6.{�-f�pEs�6.��.�@.���EA��.�1/�.a4pL3F1/d�/�@/~��TN��/��0��/���VN��0
%1$�0�.�F15%1W�1w01���1�%3��15�M�%3��3
�35)4[�3�t)4��4�04���4��5�4�P�"P�+�5F:6_�5Zk:6�
7�@6��N��
7��7�7p��S��7
M8(�7�6T�AM8[�8s�8�}9��8��pO��}9��9��9�=,�9�9@X�C�=f�=��=�n?�n?��@��@B/BG&E]	v	�&E�iE�iE��E��E1F1F7�FQ�Fg�F{�F��H��H�xJ�xJ��J�J,{KE{Ka4L{4L�dL�dL��L��L�L�L6NONg�N}�N�dO�dO��O��O��P�P.Q3.QH�Q[�QqR�R�{R�{R��R��R�SStS)tS>�SQ�Sf�Sy�S��S��S��T��T��T �T& �U? �UW �Um �U� 'V� 'V� �V� �V� �V!�V!'W-!'WD!_WY!_Wo!�W�!�W�!@X�!@X�!�Y�!�Y"�Z"�Z6"�ZO"�Zn"W`!"#$ �"�"�"�"=�".�"M�"�"O�"��"��" �"g�"R�"`�"��"��"��"��"�"��"�"�###5#.#<##@)#X/#D5#e;#hA#�G#�M#�S#�Y#�_#�e#(k#q#�w#�}#��#��#��#��#��#�#
�#�#�#!�#*�#1�#8�#@�#D�#M�#\�#c�#j�#t�#}�#�$�$�
$�$�$�$�%$�+$�1$�7$�=$�C$�I$�O$U$[$a$g$!m$,s$2y$8$E�$Q�$\�$a�$f�$k�$�$�$�$�$

%&'�$%%,%9%E%S%^%i%}%�%�%�%�%�%�%�%�%�%&&#&>&I&Z&c&o&�&�&�&�&�&�&�&�&	''&'6'@'K'Y'h'p''�'�'�'�'�'�'�'�'�'("(B(�=&V(_(j(|(�(�(�(�(�(�(�(�(�()�Z�)&)�5).annobin_enum.c.annobin_enum.c_end.annobin_enum.c.hot.annobin_enum.c_end.hot.annobin_enum.c.unlikely.annobin_enum.c_end.unlikely.annobin_enum.c.startup.annobin_enum.c_end.startup.annobin_enum.c.exit.annobin_enum.c_end.exit.annobin_count_all_i.start.annobin_count_all_i.endcount_all_i.annobin_call_stop.start.annobin_call_stop.endcall_stop.annobin_enum_slice_when.start.annobin_enum_slice_when.endenum_slice_whenrb_intern_id_cache.14780rb_intern_id_cache.14782slicewhen_i.annobin_call_next.start.annobin_call_next.endcall_nextid_next.annobin_slicewhen_i.start.annobin_slicewhen_i.endrb_intern_id_cache.14771rb_intern_id_cache.14773slicewhen_ii.annobin_sliceafter_i.start.annobin_sliceafter_i.endsliceafter_irb_intern_id_cache.14723rb_intern_id_cache.14725rb_intern_id_cache.14727sliceafter_ii.annobin_enum_slice_after.start.annobin_enum_slice_after.endenum_slice_afterrb_intern_id_cache.14737rb_intern_id_cache.14739rb_intern_id_cache.14741.annobin_enum_slice_before.start.annobin_enum_slice_before.endenum_slice_beforerb_intern_id_cache.14688rb_intern_id_cache.14690rb_intern_id_cache.14695slicebefore_irb_intern_id_cache.14693.annobin_enum_chunk.start.annobin_enum_chunk.endenum_chunkrb_intern_id_cache.14637rb_intern_id_cache.14639rb_intern_id_cache.14641chunk_i.annobin_slicebefore_i.start.annobin_slicebefore_i.endrb_intern_id_cache.14672rb_intern_id_cache.14674rb_intern_id_cache.14678slicebefore_iirb_intern_id_cache.14676.annobin_chunk_i.start.annobin_chunk_i.endrb_intern_id_cache.14623rb_intern_id_cache.14625rb_intern_id_cache.14627chunk_ii.annobin_enum_each_with_object.start.annobin_enum_each_with_object.endenum_each_with_objecteach_with_object_ienum_size.annobin_enum_to_a.start.annobin_enum_to_a.endenum_to_acollect_all.annobin_enum_size.start.annobin_enum_size.endid_size.annobin_enum_cycle.start.annobin_enum_cycle.endenum_cyclecycle_ienum_cycle_size.annobin_enum_cycle_size.start.annobin_enum_cycle_size.end.annobin_enum_member.start.annobin_enum_member.endenum_membermember_i.annobin_enum_none.start.annobin_enum_none.endenum_nonenone_iter_inone_i.annobin_enum_one.start.annobin_enum_one.endenum_one.annobin_enum_any.start.annobin_enum_any.endenum_anyany_iter_iany_i.annobin_enum_all.start.annobin_enum_all.endenum_allall_iter_i.annobin_enum_find.start.annobin_enum_find.endenum_findfind_iid_call.annobin_enum_count.start.annobin_enum_count.endenum_countcount_iter_icount_i.annobin_enum_grep.start.annobin_enum_grep.endenum_grepgrep_iter_igrep_i.annobin_collect_i.start.annobin_collect_i.endcollect_i.annobin_count_iter_i.start.annobin_count_iter_i.end.annobin_none_iter_i.start.annobin_none_iter_i.end.annobin_any_iter_i.start.annobin_any_iter_i.end.annobin_all_iter_i.start.annobin_all_iter_i.end.annobin_find_index_iter_i.start.annobin_find_index_iter_i.endfind_index_iter_i.annobin_enum_zip.start.annobin_enum_zip.endenum_ziprb_intern_id_cache.14496zip_izip_ary.annobin_enum_each_cons.start.annobin_enum_each_cons.endenum_each_conseach_cons_ienum_each_cons_size.annobin_enum_each_slice.start.annobin_enum_each_slice.endenum_each_sliceeach_slice_ienum_each_slice_size.annobin_enum_each_cons_size.start.annobin_enum_each_cons_size.end.annobin_enum_each_slice_size.start.annobin_enum_each_slice_size.endid_div.annobin_nmin_filter.start.annobin_nmin_filter.endnmin_filter.annobin_nmin_run.start.annobin_nmin_run.endnmin_runnmin_cmpnmin_inmin_block_cmp.annobin_enum_max.start.annobin_enum_max.endenum_max.annobin_enum_min.start.annobin_enum_min.endenum_minmin_ii.annobin_enum_to_h.start.annobin_enum_to_h.endenum_to_henum_to_h_i.annobin_enum_inject.start.annobin_enum_inject.endenum_injectinject_iinject_op_i.annobin_flat_map_i.start.annobin_flat_map_i.endflat_map_i.annobin_enum_sort.start.annobin_enum_sort.endenum_sort.annobin_enum_each_entry.part.1.start.annobin_enum_each_entry.part.1.endenum_each_entry.part.1enum_each_with_index.part.10enum_reverse_each.part.7.annobin_enum_each_entry.start.annobin_enum_each_entry.endenum_each_entryeach_val_i.annobin_enum_take_while.part.2.start.annobin_enum_take_while.part.2.endenum_take_while.part.2enum_drop_while.part.8.annobin_enum_take_while.start.annobin_enum_take_while.endenum_take_whiletake_while_i.annobin_enum_flat_map.part.3.start.annobin_enum_flat_map.part.3.endenum_flat_map.part.3enum_partition.part.11enum_find_all.part.6enum_reject.part.5enum_collect.part.4.annobin_enum_flat_map.start.annobin_enum_flat_map.endenum_flat_map.annobin_enum_collect.start.annobin_enum_collect.endenum_collect.annobin_enum_reject.start.annobin_enum_reject.endenum_rejectreject_i.annobin_enum_find_all.start.annobin_enum_find_all.endenum_find_allfind_all_i.annobin_enum_reverse_each.start.annobin_enum_reverse_each.endenum_reverse_each.annobin_enum_drop_while.start.annobin_enum_drop_while.endenum_drop_whiledrop_while_i.annobin_enum_drop.start.annobin_enum_drop.endenum_dropdrop_i.annobin_enum_each_with_index.start.annobin_enum_each_with_index.endenum_each_with_indexeach_with_index_i.annobin_enum_partition.start.annobin_enum_partition.endenum_partitionpartition_i.annobin_enum_find_index.start.annobin_enum_find_index.endenum_find_indexfind_index_i.annobin_enum_take.start.annobin_enum_take.endenum_taketake_i.annobin_minmax_by_i_update.start.annobin_minmax_by_i_update.endminmax_by_i_update.annobin_enum_minmax_by.start.annobin_enum_minmax_by.endenum_minmax_byminmax_by_i.annobin_nmin_cmp.start.annobin_nmin_cmp.end.annobin_minmax_ii_update.isra.24.start.annobin_minmax_ii_update.isra.24.endminmax_ii_update.isra.24.annobin_minmax_i_update.isra.26.start.annobin_minmax_i_update.isra.26.endminmax_i_update.isra.26.annobin_enum_minmax.start.annobin_enum_minmax.endenum_minmaxminmax_iiminmax_i.annobin_sort_by_cmp.start.annobin_sort_by_cmp.endsort_by_cmp.annobin_enum_max_by.start.annobin_enum_max_by.endenum_max_by.annobin_enum_first.start.annobin_enum_first.endenum_firstfirst_i.annobin_enum_group_by.start.annobin_enum_group_by.endenum_group_bygroup_by_i.annobin_one_iter_i.start.annobin_one_iter_i.end.annobin_enum_min_by.start.annobin_enum_min_by.endenum_min_bymin_by_i.annobin_nmin_block_cmp.start.annobin_nmin_block_cmp.end.annobin_enum_sort_by.start.annobin_enum_sort_by.endenum_sort_bysort_by_i.annobin_rb_enum_values_pack.start.annobin_rb_enum_values_pack.end.annobin_slicewhen_ii.start.annobin_slicewhen_ii.end.annobin_sliceafter_ii.start.annobin_sliceafter_ii.end.annobin_slicebefore_ii.start.annobin_slicebefore_ii.end.annobin_chunk_ii.start.annobin_chunk_ii.endrb_intern_id_cache.14602rb_intern_id_cache.14605.annobin_cycle_i.start.annobin_cycle_i.end.annobin_drop_while_i.start.annobin_drop_while_i.end.annobin_drop_i.start.annobin_drop_i.end.annobin_take_while_i.start.annobin_take_while_i.end.annobin_take_i.start.annobin_take_i.end.annobin_zip_i.start.annobin_zip_i.end.annobin_zip_ary.start.annobin_zip_ary.end.annobin_each_with_object_i.start.annobin_each_with_object_i.end.annobin_each_cons_i.start.annobin_each_cons_i.end.annobin_each_slice_i.start.annobin_each_slice_i.end.annobin_each_val_i.start.annobin_each_val_i.end.annobin_each_with_index_i.start.annobin_each_with_index_i.end.annobin_member_i.start.annobin_member_i.end.annobin_minmax_by_i.start.annobin_minmax_by_i.end.annobin_max_by_i.start.annobin_max_by_i.end.annobin_nmin_i.start.annobin_nmin_i.end.annobin_min_by_i.start.annobin_min_by_i.end.annobin_minmax_i.start.annobin_minmax_i.end.annobin_minmax_ii.start.annobin_minmax_ii.end.annobin_max_i.start.annobin_max_i.end.annobin_max_ii.start.annobin_max_ii.end.annobin_min_i.start.annobin_min_i.end.annobin_min_ii.start.annobin_min_ii.end.annobin_none_i.start.annobin_none_i.end.annobin_one_i.start.annobin_one_i.end.annobin_any_i.start.annobin_any_i.end.annobin_all_i.start.annobin_all_i.end.annobin_first_i.start.annobin_first_i.end.annobin_group_by_i.start.annobin_group_by_i.end.annobin_partition_i.start.annobin_partition_i.end.annobin_inject_op_i.start.annobin_inject_op_i.end.annobin_inject_i.start.annobin_inject_i.end.annobin_reject_i.start.annobin_reject_i.end.annobin_find_all_i.start.annobin_find_all_i.end.annobin_find_index_i.start.annobin_find_index_i.end.annobin_find_i.start.annobin_find_i.end.annobin_count_i.start.annobin_count_i.end.annobin_grep_i.start.annobin_grep_i.end.annobin_grep_iter_i.start.annobin_grep_iter_i.end.annobin_sort_by_i.start.annobin_sort_by_i.end.annobin_enum_to_h_i.start.annobin_enum_to_h_i.end.annobin_collect_all.start.annobin_collect_all.end.annobin_Init_Enumerable.start.annobin_Init_Enumerable.end.LC0.LC1.LC2.LC4.LC3.LC6.LC5.LC7.LC11.LC12.LC8.LC10.LC9.LC14.LC17.LC16.LC15.LC13.LC18.LC19.LC20.LC21.LC22.LC23.LC25.LC24.LC26.LC27.LC29.LC28.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC39.LC38.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_block_procrb_cEnumeratorrb_obj_allocrb_ivar_setrb_block_callrb_intern2rb_funcallrb_ary_tmp_new_fillrb_gc_writebarrier_unprotectrb_ivar_getrb_attr_getrb_block_given_prb_scan_argsrb_eArgErrorrb_raiserb_warnrb_obj_duprb_assoc_newrb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_ary_newrb_check_funcallrb_yieldrb_num2longrb_float_new_in_heaprb_node_newnoderb_yield_values2rb_ary_pushrb_iter_breakrb_ary_new_from_valuesrb_check_array_typerb_respond_torb_obj_classnamerb_eTypeErrorrb_block_arityrb_ary_new_caparb_cmpintrb_int2bigrb_ary_resizerb_ary_tmp_newqsort_rrb_ary_reverserb_cArrayrb_hash_newrb_check_idrb_warningrb_ary_concatrb_ary_sortrb_eRuntimeErrorrb_yield_valuesrb_ary_storerb_error_arityrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_enum_values_packrb_equalrb_sym2strrb_eStopIterationrb_rescue2rb_ary_shiftrb_ary_duprb_ary_clearrb_hash_arefrb_hash_asetrb_sym2idrb_f_sendrb_thread_check_intsrb_builtin_class_nameInit_Enumerablerb_define_modulerb_mEnumerablerb_define_method<��������F*��������N��������U�h��������o���������� �������������������!���������������������!������������
"��������8#��������C$��������X$��������_�t%��������{��&��������� ���������$���������$���������"��������$��������!$��������(�A���������F!��������P�h���������m!��������w��#���������$���������$�����������%�����������%����������&��������6 ��������>$��������O$��������r"���������$���������$���������������������!���������������������!�������������������
!���������>'��������S��������]*��������e��������l��������������������������������� ������������������(�����������������!��������'�8���������=!��������G�X���������]!��������g�s*)��������z����������*���������'�������������������(���������*���������������������������|��������	t"��������)d=��������X ��������x���������(���������*������������������l�����������!���������l�����������!���������d�����������+�����������������!��������t8���������=!��������G|e'��������{����������(���������*������������������<�������������������4����������,��������� ��������+���������2+��������H���������M!��������W,h���������m!��������w4�����������!���������<�*)�������������������*���������#���������$���������$���������\	%��������	T/	&��������I	D^	&��������|	,���������	 ���������	$���������	$���������	"���������	$��������
$��������
\!
���������&
!��������0
\C
LP
%��������W
Ds
���������x
!���������
D�
����������
!���������
T�
����������
!���������
L�
#���������
$��������$��������$$%��������+?%��������F[%���������,��������� ���������$���������$���������-���������"��������$��������$��������$1���������6!��������@$X���������]!��������gx���������}!����������'��������� ���������.���������/���������0��������(
1��������H
 ���������
��
2���������
���������(��������'��������G1��������m ���������3���������4��������.��������/��������30��������d�i2������������������	4��������G6��������e ���������6���������'��������� ���������6��������'��������, ��������i6��������q'��������� ���������6���������'��������� �����������������3(��������8'��������O6��������m �����������"���������.���������/���������0��������
'��������46��������N ��������p���������w(���������'�������������������+���������1���������6���������'��������� ��������7��������8��������>7��������n7���������9���������7���������9���������7���������9���������7��������19��������\:��������g$��������|$���������;������������������<���������/��������
"��������'��������76��������R ��������q'���������6���������$�������������������!������������������1���������6��������1��������&6��������==��������D���������N*>��������X*���������'���������?���������@���������6��������� ���������.���������/��������0��������,4��������;*)��������B���������L*��������}'���������@���������?���������6��������� ��������3��������).��������1/��������M0��������d4��������s*)��������z����������*�����������2�������� "��������<"��������LA���������4���������B���������*)�������������������*��������	�2��������P"��������a��4���������B���������*)�������������������*��������$��������4$���������$���������$���������!$��������"$���������"D���������"����������"����������" �������� #$��������5#$��������L#E��������s#$���������#$���������#$���������#$���������#C��������$F��������=$D��������P$'��������~$����������$����������$ ���������$$���������$$��������
%E��������%*G��������<%4��������S%@��������q%$���������%$���������%$���������%$���������%*)��������&���������
&*��������&*)��������&���������%&*��������V&6��������k&���������r&(���������&'���������& ��������'6��������+'���������2'(��������a''���������' ���������'H���������' ��������^(���������w((���������(6���������( ���������('���������(I��������Q)'��������])I���������)/���������)����������)J���������)/���������)7���������);���������)K��������*8��������M*.��������U*/���������*'���������* ���������*.���������*/��������+'��������'+1��������E+ ��������u+.��������}+/���������+'���������+1���������+ ��������,'��������,1��������5, ��������n,'��������w,1���������, ���������,'���������,1���������, ��������7-'��������|-3���������-'���������-1���������-6��������. ��������].1��������r.6���������. ���������.4���������.*)���������.����������.*���������.'���������.6��������/ ��������N/'��������W/1��������_/1��������q/6���������/ ���������/'���������/6��������0 ��������80���������?0(��������K0'��������V0���������]0+��������i0.��������q0/���������00���������0@���������06���������0 ��������14��������1*)��������1���������!1*���������1"���������1A���������1"���������1A��������2#��������2$��������!2$��������*2'��������}2 ���������2$���������2$���������2$���������2$���������2'���������2.��������3/��������T3"��������y3*M���������3����������3*���������3N���������3A��������4N��������4A��������l4"��������z4A���������4"���������4A���������46��������5:��������#5'��������B5 ��������`5O��������q5O���������5 ��������
6"��������%6*M��������,6���������66*��������N6���������c6(��������h6'���������66���������6 ���������6.���������6/��������70��������G76��������e7 ��������|7P���������7'���������7H���������7 ��������8.��������8/��������^87���������89���������8����������8(���������8'���������86��������9 ��������Q9.��������Y9/��������p90���������9N���������9*M���������9����������9*���������9'��������:1��������.:D��������C:O��������S:6���������: ��������<@��������/<Q��������f<R��������z<C���������<*G���������<C��������=K��������=.��������=/��������b=E���������=*M���������=����������=*��������>$��������/>$��������=>S��������V>�i>"��������x>$���������>$���������>"���������>$���������>$���������>:���������>$��������?8��������!?$��������E?:��������a?$���������?$���������?$���������?S���������?8���������?��?"��������@$��������@$��������9@$��������Z@"��������b@$��������s@$���������@$���������@:���������@$���������@$��������
A$��������AS��������7A�SA"��������}A"���������A:���������A8���������A$���������A"��������B"��������<B$��������QB$��������XBjB/��������qB�B/���������BS���������B��B"��������CT��������'C8��������OC-��������gC"���������C$���������C�C����������C!���������C�C:���������C-��������D"��������D�"D"��������3D���������=D!��������GDYD-��������qD"���������D:���������D-���������D"���������DU��������E*M��������E���������E*��������CES��������QE8��������YE3���������ES���������E8���������E3��������FS��������&F8��������VF7��������hFS��������sF8���������F9���������FS���������F8���������F9��������G@��������.GS��������=GO���������G*V���������GW���������G8��������/H8��������bH8���������H3��������DI@��������^IS��������mIO���������I8��������J8��������CJ8��������fJ3���������JS���������JS���������J8��������RKX��������dKY���������KS���������K8���������K3��������L@��������$LZ��������NLS��������VL3���������LS���������LS���������LT���������L9��������M$��������-M$��������;MS��������FM3��������zM"���������MA���������M$��������'NS��������2N3��������sN"���������NA���������NS���������N8��������O8��������4O3���������OS���������O3���������O"���������OA��������PS��������=P"��������KPA���������PS���������PN���������PA��������CQS��������xQ"���������QA���������QS���������QN���������QA��������#RS��������XR"��������gRA���������RS���������RN���������RA���������RS��������S9��������.SS��������pS9���������SS���������S9���������SS���������S9���������SS���������S9��������TS�������� T3��������.T[��������NT:��������\T\���������T8���������TS���������T3���������T8���������TS��������(U]��������>U"��������jU^���������US���������UN���������US���������U3��������V8��������CVS��������NV3��������wV8���������VS���������VT���������V9���������VS���������V3��������#W9��������>WS��������JWT��������sWS���������W"���������W8���������WS���������W"��������$X3��������0X8��������YXS��������dX3��������YQ��������9YR��������HYK��������oYQ���������YR���������Y*M���������Y����������Y*���������YS���������Y_���������Y;��������Z\��������JZ*)��������QZ���������[Z*��������cZ`��������jZ���������tZ*>��������~Z*���������Z_���������ZS���������Z8���������Z����������Zb���������Z*c���������Z���������[d��������[���������[d��������3[���������8[d��������K[���������P[d��������c[���������h[d��������~[����������[d���������[����������[d���������[����������[d���������[����������[d���������[����������[d��������\���������\d��������\���������\d��������2\���������7\d��������J\���������O\d��������b\���������g\d��������z\���������\d���������\����������\d���������\����������\d���������\����������\d���������\����������\d���������\����������\d��������]���������]d��������+]���������0]d��������C]���������H]d��������[]���������`]d��������s]���������x]d���������]����������]d���������]����������]d���������]����������]d���������]����������]d���������]����������]d��������^���������^d��������*^���������/^d��������E^���������J^d��������`^���������e^d��������{^����������^d���������^����������^d���������^����������^d���������^����������^d���������^����������^d��������_���������_d��������_���������"_d��������5_���������:_d��������P_���������U_d��������h_���������m_d���������_����������_d���������_����������_d���������_����������_d���������_����������_d���������_����������_d���������_���������`!��������`���������`�`!��������&`���������-`�2`!��������>`���������E`�J`!��������R`��"���������5��������q"��������+ C��������<*L��������p*0��������+0���������+0���������/-���������0@���������2-��������!30��������r3A��������6A��������580���������9A��������==0���������=:���������JN��������4K3��������wK3���������LN�������� ���$,PX!��!�!���!���D�Lpx������� � 0 8�d l����P���P�P��$P,�P�X�
����
��
����
���
D�L
p
x�
�
��
��
��
�
�
0�
8Pd�
lP�P�$�P�$�$�t$$,tPtX��t�����H���H	H	�D	HL	�p	�x	�	��	�	�	�

�0
�8
�d
�l
��
��
�
��
�
�
$$,$P$XV�$�V�V���V����D�L�p�x��������5
�
50
58
\d
5l
\�
\�
P�
\�
P�
P�
�$P,�P�X��������������"D�L"p"x)&�"�)&�)&��&)&�&0�&8�'d�&l�'��'�J(��'�J(�J(��)$J(,�)P�)X*��)�*�*�@*�*�@*@*t*D@*Lt*pt*x�*�t*��*��*�+�*+0+8f+d+lf+�f+��+�f+��+��+��+$�+,�+P�+XV,��+�V,�V,��,�V,��,�,-D�,L-p-x�-�-��-��-�6.�-6.06.8�.d6.l�.��.�1/��.�1/�1/��/$1/,�/P�/X�0��/��0��0�%1��0�%1%1�1D%1L�1p�1x%3��1�%3�%3��3%3�30�38)4d�3l)4�)4��4�)4��4��4��5$�4,�5P�5X:6��5�:6�:6�
7�:6�
7
7�7D
7L�7p�7xM8��7�M8�M8��8M8�80�88}9d�8l}9�}9��9�}9��9��9��=$�9,�=P�=X�=��=��=��=�n?��=�n?n?�@Dn?L�@p�@xB��@�B�B�&EB&E0&E8iEd&EliE�iE��E�iE��E��E�1F$ �E, 1FP 1FX �F� 1F� �F� �F� �F� �F� �F!�F!�HD!�FL!�Hp!�Hx!xJ�!�H�!xJ�!xJ�!�J"xJ"�J0"�J8"{Kd"�Jl"{K�"{K�"4L�"{K�"4L�"4L�"dL$#4L,#dLP#dLX#�L�#dL�#�L�#�L�#�L�#�L�#�L$�L$ND$�LL$Np$Nx$�N�$N�$�N�$�N�$dO%�N%dO0%dO8%�Od%dOl%�O�%�O�%�P�%�O�%�P�%�P�%.Q$&�P,&.QP&.QX&�Q�&.Q�&�Q�&�Q�&R�&�Q�&R'R'{RD'RL'{Rp'{Rx'�R�'{R�'�R�'�R�'S(�R(S0(S8(tSd(Sl(tS�(tS�(�S�(tS�(�S�(�S�(�S$)�S,)�SP)�SX)�S�)�S�)�S�)�S�)�T�)�S�)�T*�T*�TD*�TL*�Tp*�Tx*�U�*�T�*�U�*�U�*�U+�U+�U0+�U8+'Vd+�Ul+'V�+'V�+�V�+'V�+�V�+�V�+�V$,�V,,�VP,�VX,'W�,�V�,'W�,'W�,_W�,'W�,_W-_W-�WD-_WL-�Wp-�Wx-@X�-�W�-@X�-@X�-�Y.@X.�Y0.�Y8.�Zd.�Yl.�Z�.�Z�.�Z�.�Z�.�Z�.�Z�.W`$/�Z,/W` � � � � 4H0x�� �� H�|P����
0�X
��
��
PP0x����P��h�����0`�8�T�p@�`PT�����, "�0&��& �'\P(��)� *�@*	�*@	�*\	+�	p+�	�+�	,
`,H
�,|
 -�
�-�
@.,�.d@/��/��001t�1�03��3$
04p
�4�
�5�
@6(7`�7�P8��8�98�9��=�>p?T�@� B�0EpE8�ET@F��F��F��H$�J@�J��K�@LpL$�LPM�N��NpOhP��P�0Q�Q@Rt�R��R� S��S�S �S8Tl�T��T��U��U(0V\�Vx�V�0W�`W��W(@Xx�Y��Z��Z.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@)T)l)�)�)'�W`"@pW)-a3a�=a4/8@�o�-)
SL�bL��]@�0)
| �� ���@H�0)������@x�0)�ȕ�ȕ��@��0)2��o2�])p�60x�.������|��S��'��?��M��`��r�������� �Ȝ��@؝X)'��x9*	(�F)0��enumerator.o/   1690381920  1000  135   100644  80832     `
ELF>@0@@.-

!# $%&��H��H�H�Ѓ�P�ff.���1�H����H���ff.�@����fD��H������U�PH���SH���H��H�H��H���H�4H��[]Ð��U�H���SH���H��H�H��H���H�4H��[]Ð��U�H���SH���H��H�H��H���H�4H��[]Ð��SH��H�?�H�{�H�{�H�{ �H�{(�H�{0�H�{8�H�{@[���H�?�@��H�?�@AWAVAUATUH��SH����L�D$��H�������H�EI�׉ƒ���������I��H��H�5A��M���H��H��tyL�0L���H�CE��uJH�D$PH�CH�C H�C@H��H�C(4H�C04H�C8L�kHH��[]A\A]A^A_�H�t$Ic��H�C�H���H�H�5H�81��DAVM��AUI��ATA��UH��SH��H�=���H��D��H��jM��M��H��H�����ZY[]A\A]A^�D��SH��H�5�H��tH�8H��4t	H��[�H�H�5H�81��ff.�f���SH�����H��[�ff.���H�Ή��f���H�5���H��I��H��H��H�5��L��
��H���ff.���SH�51�1�L�i����H�51�H��H���H��[�ff.���H���H��H���f.���ATL�aUL��H��S�Z�����4H�����tH�5H�}��L����[H��]A\�D��H��H�5�ff.�f���H�51�1��ff.����SH�qH�ˍz��H�;�H�5H��1���[�ff.��H��H�5�H�51�1�H����H��4HD�H���ff.���H������H��H�51�1���H��4HD�H���fD��UH��H��SH��H�5�H�5H��H��� tZ�H��H���tZH�H���6���H��H��tq�uYH�@H�xjH�LH��H��1�[�-]��H�@ H���u�H���H���f.�H��H)�HH�H�l-H��H��[]�f�H���H�����UH��H��SH�����H�5H��H���H�5H��H��� tO�H��H�8@��tOH�H��t$��tH��H�H9�|H�@H�x5H�\?H��H��[]�fD�H�@ H�8@��u��H���@H��[]�ff.�f���AUI��ATA��UH��SH��H�9H�5�H�5H�}H�MH��H��A�T$�ID����tIH�H�߸4H��t)H��������?H�x9H�T?H�5H�}��H��[]A\A]�@H���H����H����ff.���AUH�q�z�ATUH��SH���H�èuH�����tH��ƒ�����H�5H�����upH��H�m�I��H����1�L�`�4�H����H9�}qL��H��H�5H��1��H���I�E�� u�I;]}AI�E ��fDH�5H������y���L�MH�51�1�L�����H���H���[]A\A]�E1�L�c�8�H����I9�}�L��J��H�}�1�H�5I���H��� u�L;k}�H�C ��fDH�5H��H��1���H���[]A\A]����AWAVI��AUATA��UH��SH��L�)H�5L���H��H���H�;�� ��H����H���A���H��E��~A����I�vH��E1�L�c��M�H����I9�}\H�L�L��J�4�E1�1�H�7���H�=p���1�I���H��H���H��� u�L;s}H�L�H�C �@H�5H��L��1���H���[]A\A]A^A_�I�vIc��H���<���@H�CH�x����H�}�� utH�}�E1�H��H�EH�D$�>f.�H����I9�}TH�5H�D$J�<�1�1�I���H��H���H�E�� u�L;}}H�5H�E ��H������H�5H��L����C���f���AWAVI��AUATI��USH��L�)H�5L���H������H�I�@H��H�@H�D$J�;H�$I�>�� ��H����H���I�t$E1�M�fH��H����-H����I9�}LL��J�<�H��I���H��H���I��� u�M;~} I�F ��f.�H����R���H�51�H��L���H�<$x`H�D$H�TH�5L���H���[]A\A]A^A_�I�FH�x�*���H�@1�H�D$H�$���f�H�|$�H��뛐��AT�z�I��H�qUSH���H�5�L��H��H��1��H�����u[�]A\��H�;H�5H��1���[�]A\�ff.�f���AT�z�I��H�qUSH���H�5�L��H��H��1��H�����u[�]A\��H���H�;�H�5H��1��[�]A\�D��U�z�H�qSH��H���H��H���H�����tH���[]��H�;H�5H��1�H��[�]����U�z�H�qSH��H���H��H���H�����uH���[]��H�;H�5H��1�H��[�]����AVAUATI��USH�� ����Lc�j��I�}Hc�H9���I���L��H��H�D$���PH�t$H� u2H�v ���H�T$H�T$H�T$H��4t]H�� �[]A\A]A^�H����f.�H�|$L��L���H�t$H� t���H�t$H�t$H�|$�����ff.����G�AVAUATU��S����I��H�������M�eA���uM�uH�=��H�51�1�M��L���H��H���H��H��H��AVH�E1�E1�1���H�5XH��ZL���H��[]A\A]A^ú��H�H�5H�81��ff.�f���H��1�H�=�ff.���AWH�5AVAUA��ATUSH��H���H��H���I��H���%H�}4�E����H�5H���I��H��uL�mL���L��H�=H��1��H��L�mL�uH�5I���H��H��tAH����H�Ǿ�H���H��H�5L���H��L���H�5H���H��ID�H����H��� �zH�XH�h H�����L��M��M��H�5H��A��I���H��L�m�L���L��H���H���<H�5L���M��uHM��tCI�$�Ѓ����1A��u+I�����t"I�E������t%H	�I�$�H��H����r���f��H�5L���H��L��[]A\A]A^A_�f.�H���H�=H��1��I�Ĩu�H�����t�H��ƒ����H��r���I�$��L���H��H�=[H��]1�A\A]A^A_�f�H��H�h���~���L���H������H�5L���M������������H�������ff.��UH��SH��H�~8H����H���H�{H�D$H��uL�H�=XH��H�C �H�C(4H�CH��H�T$��H�{8H��uH��[]�fD�H��t�H�{��H�CH�C H�C(4H�C04���AVI��AUI��ATUH��SL�f��L���L��L��H�E��~L��Hc��L��H��[�]1�A\A]A^�f�H��H�5�H��tH�84tH���H�H�5H�81�����AWAVAUATI��US��H��H������{Hc�H���1�H�=Z�I���H�=I����H�5H��I���H��t:L�8L��L�����~Hc�L��L���H�}H��L��[]A\A]A^A_�H�H�5H�81��f.���USH��H��H9�t.H���H������H�5H��H���H��tH�UH�H��H��[]�H�H�5H�81��ff.�H��H�5�H��tH�84tH���H�H�5H�81�����UH��H��SH��H�5��~
H�1��H��E1���H���.�H�����uH��H��[]��H���h���H���H�E@H��H��[]�f�AVAUI��ATUH��SH���H��I���/���L��I���H�5H��H���H��t,H�5H��H���M�l$HH��[]A\A]A^�f�H�51�H�����ff.�f���USH��H��(H�|$�H�t$H�t$�H���L���H�L$H�5��H�V���I��H�=LD���H��1�H������H��([]�f.���ATUSH��H�� ��H�|$��H��H�H����tbH�5H�L$I�ٺH�=L��H�l$�I��H��H�\$�L��H��H���o���H�� []A\�fDH�l$H�|$E1��H�5H��H�D$�&�I��랐H����V���H�H�5H�81��ff.���AUI��ATLc�USH��H�T$�����L���H��M����1��f�H��H��H���I9���I�|��H��u�I9�~0I�l�fDH�5H�}�����H��H��I9�u�L��L���L��H��H�5H�L$I��H�=�H��H���H������H��[]A\A]ÐL��D���H��[]A\A]�f.�L����H�}�H�5H��H�H�81����UH��SH�����H��H�@HH��tH�sH�;H��H��[]��H�KH��tH��� t7H��H�����f�1�1�H�{@H�5�H��4uH�C@H��[]��QH�I ��ff.�@���g������UH��SH���^���H�51�1�H�8H���H�CH��H�C H�C(4H�C04H�C8H��[]�fDUH��SH��H�����H�HH�pH��tRL�A�� u.H�yHc�A��H9�u>H�I H�8H��I��I��D��[]�@I��H��A����f.�1�E1����@UH��SH�����H��H�@(H��4t
H��[]�fDH��H������H�C(H��[]�f���H�����H��H������SH���#���H��H�@(H��4tH�F(4[�@H��[����ff.�@��UH��SH��H������H�51�1�I��L�fH��H��H�D$��H�5H��H�H�8�H�5H��H�E8H���H�t$��H��[]����ATH��I��US��H���G���Hc�L��H���H�t$�H�D$�H�E0H��4tH�E04H��[]A\�f.�H���[]A\�f���AVAUATUHc�S��~mH��I���H��H������H�xI��H���H��� ugH�GH�Hc�H9�ux�H��L��H��I���M�u���uH��[]A\A]A^ÐH�����t�H��H��1�[]A\A]A^�?����H������L��H���I���H�����SH������H�x04uH�X0�[�H�H�5H�81��f���UH��SH��H9�tlH���H�����H�xH��u\H�5H���H��t`H�H�H�SH�PH�SH�@H�PH�S@H�@(4H�P@H�SHH�@04H�PHH��H��[]�H�H�5H�81��H�H�5H�81�����ATA��UH��H�5SH�9H���H��HDŨtdH�H��t4H��������?H�x�H�xYH�T?H�;H�5�[�]A\�H�;H�5H�KA�T$��[�]A\�fDH����fD�H���fD��H��H�|$���t;H�5H�L$E1ɺH�=L�8�1ҾH������H���H�H�5H�81�����H��H�|$���t;H�5H�L$E1ɺH�=L����1ҾH���d���H���H�H�5H�81�����H��H�|$���t;H�5H�L$E1ɺH�=L�8��1ҾH����H���H�H�5H�81�����H��H�|$���t;H�5H�L$E1ɺH�=L�(��1ҾH�����H���H�H�5H�81�����H��H�|$���t;H�5H�L$E1ɺH�=L�H��1ҾH������H���H�H�5H�81�����H��H�|$���t@H�5H�L$E1ɺH�=L����H�,��H����H���H�H�5H�81��f���USH��H��(��H�|$tiH��H�H��xhH�t$�H�\$�H�5H�L$I��H�=L�]����H���H��H���H����H��([]��H����H�H�5H�81��ff.�@��u1H�����t(H��ƒ���u�� tH����t>H��u(H��H�?H���DH�GH��tH��u	H� ����t�����Ȑ��H�������H��H���r���f���H���S���1�H��H���U���D��SH��~#Hc�H���H�ڿ[H��1��DH��1�H��[��ff.�f���1�H����H���ff.�@��ATH�5U��SH�9H���H��t>H��t[�]A\�fDL�c��H�;H�5L����[�]A\���L�cL����H�����u�H�5H�;��밐��USH��H����H�5H��H���H��t
H�(H��H��[]�H�H�5H�81��ff.�f�USH��H����u?H�����t6H��ƒ���t)��u$H��H��H�5�H��tH�(H��H��[]�H���H�H�5H�81����SH��H����u ��H��H��H�D$�f���H��[�1�H�L$H��H�|$�H��t.���uH�t$H���(���H��[�f�H�=1����H�|$�H�5H��H�H�81��ff.���AVAUI��ATUH��S��H��L�%���th���@�H�=I�����L��H������I�ƅ�tH�}H��ur1�H��I���L��WL��L��E1��
��H�� []A\A]A^Å���H�=1��L�u��uH��1ۿ�@L�e��H����fDH�5�H�}�Å��t���������t,@��uH�����t
�����tk�H���C���H��H9�t�H���H��?H)�H��H��H	�H��H�D$�~D$f.z������맺1������G�؃�����f.���AVM��AUI��ATA��UH��H�5SH���H�����t!M��L��D��H��H��[]A\A]A^���DH�H�8�a��H��D��H��jM��M��H��H���t��ZY[]A\A]A^�f���E1��@��AT1�I��H�UH��S��H��H�L$����t`H�|$H��u=H�D$�1�1ҿd�L��H�5�H���7�H��[]A\�fD�H��H�D$��f��H���H���L��L���H���H��[]A\���H��1�1��0�����SH��H��H�t$���t&H�T$H��H�5G�����H�D$H��[���H���H�L$H��L��H���H��[Ð��UH��H��SH��H�5��~
H�1��H��E1���H���H�����uH��H��[]��H����H���H�E@H��H��[]�f���AT�����H�~���H�5USH�H�;�H�;�����H�W���H�5�H�-H�=H�u�L�%H�H��I�4$H��H�;H�5����H�;�����H�y���H�5�H�;�H�n�H�5�H�;�����H�C�H�5�H�;1�H�+���H�5�H�;�H� ���H�5�H�;�����H�5���H�5�H�;�H���H�5�H�;1�H���H�5�H�;1�H�J�H�5�H�;1�H��H�5�H�;1�H�����H�5�H�;�H�/�H�5�H�;1�H���H�5�H�;1�H���H�5�H�;1�H���H�5�H�;H�5H���I�<$1�H����H�5H��H�=�����H�F�H�5�H�=�����H���H�5�H�=�����H���H�5�H�=1�H����H�5�H�=1�H����H�5�H�=1�H�t�H�5�H�=1�H�X�H�5�H�=1�H���H�5�H�=1�H���H�5�H�=1�H�$�H�5�H�=�H���H�5�H�=�����H�&�H�5�H�=�H��H�5�H�=1�H�;�H�5�H�=�H�L�H�5�H�=1�H���H�5�H�=1�H�D��H�5�H�=�����H����H�5�H�=�����H����H�5�H�=�����H����H�5�H�=�����H�h��H�5�H�=H�H�5�H�H�=H�0�H�1�H�5H��H�H����H�UH�;H�5�I�4$H��H��H�=H�5����H�=�����H����H�5�H�=�H�/�H�5�H�=�����H�P�H�5�H�UH�;H�5�H�5
��H��H��H�=1�H���H�5�H�=�����H���H�5�H�=�����H�=��H�5�[H�=]A\����H��H�=�H�=H��H�=H��H�=H��H�=H��H�=H��H�=H��H�=H��H�=H��H�=H��H�=�H�=H��H�=H��H�=H��H�=H��H�=H��H�=H��H�=H��H�=H��H���H�H���e���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignunallocated enumeratoruninitialized yielder#<%li: uninitialized>#<%li: ...>#<%li: %+li:>(, )uninitialized generatorunallocated yielderunallocated generatoruninitialized enumeratorattempt to take negative sizeiteration reached an endfeed value already setcan't copy execution contextattempt to drop negative size1given block not used01to_enumenum_forEnumeratorinitializeinitialize_copyeacheach_with_indexeach_with_objectwith_indexwith_objectnext_valuespeek_valuesnextpeekfeedrewindinspectsizeLazylazymapcollectflat_mapcollect_concatselectfind_allrejectgrepziptaketake_whiledropdrop_whilechunkslice_beforeslice_afterslice_whento_aforceStopIterationresultGeneratorYielderyield<<enumerator.socallnew===receiverargumentsmemomethodcyclegeneratoryielderenumeratortried to call lazy new without a blockwrong argument type %s (must respond to :each)tried to call lazy drop_while without a blocktried to call lazy take_while without a blocktried to call lazy reject without a blocktried to call lazy select without a blocktried to call lazy flat_map without a blocktried to call lazy map without a blockwrong argument type %s (expected Proc)Enumerator.new without a block is deprecated; use Object#to_enum�������������������������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0D
X$l?E�N�D eAA$�?E�N�D eAA$�?E�N�D eAA�PE�FH(�B�B�B �B(�A0�D8�DP�
8A0A(B BBBDDtKB�E�E �D(�D0�S8H@R8A0A(A BBB�CE�a
E�E�L�2Hi45E�oPHI(hKF�E�G �rDB���4E�n�5Dp�	*Ha4�E�G�D _
KFH@
DAC0T�E�G�D l
DAGdAA8��F�E�D �D(�D0v
(A ABBEH��F�I�A �D(�D0�
(F ABBDu(F ABBH�F�B�E �B(�D0�D8�DP�
8F0A(B BBBDH\F�B�E �B(�D0�A8�DP
8F0A(B BBBD4�sF�K�A �m
FBIZFB4�{F�K�A �m
FBIbFB0_E�H�G \
FAINFF0L_E�H�G \
FAINFF@��F�B�B �D(�A0�DPo
0F(A BBBAH��I�B�B �A(�C0�_8H@\8D0L
(A BBBAd$�F�I�B �E(�A0�A8�G@�
8D0A(B BBBK\
8H0D(D BBBN(��A�D�D0f
AAG8�WF�E�E �A(�D0�o(F DBB�8D[
AH�F�B�B �B(�D0�A8�I@r
8D0A(B BBBE(\bE�A�G w
DAA�8D[
A0�nE�G�D r
DAIXDA<��B�B�E �A(�D0�Q
(A BBBJ$vE�A�G@fAA0@�F�A�A �G@v
 AABGLt=F�E�D �A(�D@�
(A ABBBO
(A ABBK4��E�D�D \
DABB
AAD�	$	ZE�D�D JAA(8	|A�D�G x
JAI0d	>A�D�D V
AAGSAA�	HI�	1E�^
ED$�	�E�D�G0uAA<�	nF�G�A �F0}
 AABKD FABL8
�F�B�B �A(�D0�h
(A BBBBU
(A BBBL�
7E�Y
A(�
�E�D�D u
DAA8�
�F�D�K �G
FBDY
FBGiH H
A(iH H
ADiH H
A`iH H
A|iH H
A�nH M
A(��E�A�G@i
AAH�o�HNHK$CE�\
OID4X�F�H�C �X
FBG\
FBD(�SE�A�G h
DAA(�mA�A�G ~
DAA(��E�G b
AA|
ACH
�F�B�E �A(�D0�F@THIPR0A(A BBBA@T`
�F�E�E �D(�K0�`
(A BBBJS8H@R8A0A(A BBB�
<�
�F�M�D �F0P
 AABG@ AAB$ oE�G k
AHmA0HnE�G�D r
DAIXDA(|F�T�A ��HB�{Hn	"1K#i�$��%�&%Ggz�1� �1�J�@
	J"X9PCXf��`?��H������?�`H�3S�?fHz�p� P�p�|�p	|'�C�R�q����������K��#�C-#OBo0�B�^�P�^�p`	Hp9�Xp2j	�r��������5�	�0*�	(��$�/S[uK�	x�[�s�`�s���	P!�>�Y�4g����5�	@�	h��)� 	
	)'	ZB	Z`	=|	`��		8�	=�	��	@��	��	�
�*
	02
�T
I	t
���
	 �
I	�
G�
P	��
	`�
G�'P<�ZC
v�s�	X�C
��
�P
{��
�/�
_$/D�b0_s��u�u�S���
	
	�
S?
u_
`r
���
u�
d�
d�
p��Awf W~w����8���v���
	v<�]�bq��(��8�(���0n��#9��I#b�y0v�	���������	������=�$aA��Q	pYa}y�p	�y����Z	��5\X�|n\���`>�����6�\���1������n�������1�A�`}�7�������z"��1zP�m�i}�#����Y ��i�Y �� ` i� 99!R� i^9!{�!�@!i��!�"��!n�"��" "��"+?#?�"oF?#e^#�@#�^#�{#�`#�{#�#,�#CE�#f�#��#��#�$�$��$�$S2�$PM%l�$m{M%��%�P%���%��'&�4�'^'(�'(�<(�<(��(@(�"�(L)t)�)�)�)o�)�)$�)n0�)Q0p0��1#$%&"����Q�_�c�e�a�D�-�h�j��������(��X �&�,�28H>0DNJPPpV�\behhnptyz�������������������������
����!�%�-�6�E�LU
\aej"u(z.�4�:�@�F�L�R�X�^�d�j�p�v�|���������$�����

 !'()%@K^g~����������   ) : F Q _ s � � �� � � � � � � � !!,!>!K!Y!d!r!}!�!�!�!�!�!�!�!�!�!""%"5"A"R"`"s"}"�"�"�"�"�"�"�"�"�"�"#�'�##5#�D#0(U#e#�)w#�#�#�#�#�#�#�#�#
$$$$0{4$.annobin_enumerator.c.annobin_enumerator.c_end.annobin_enumerator.c.hot.annobin_enumerator.c_end.hot.annobin_enumerator.c.unlikely.annobin_enumerator.c_end.unlikely.annobin_enumerator.c.startup.annobin_enumerator.c_end.startup.annobin_enumerator.c.exit.annobin_enumerator.c_end.exit.annobin_enumerator_memsize.start.annobin_enumerator_memsize.endenumerator_memsize.annobin_yielder_memsize.start.annobin_yielder_memsize.endyielder_memsize.annobin_next_stopped.start.annobin_next_stopped.endnext_stopped.annobin_lazy_lazy.start.annobin_lazy_lazy.endlazy_lazy.annobin_enumerator_allocate.start.annobin_enumerator_allocate.endenumerator_allocateenumerator_data_type.annobin_yielder_allocate.start.annobin_yielder_allocate.endyielder_allocateyielder_data_type.annobin_generator_allocate.start.annobin_generator_allocate.endgenerator_allocategenerator_data_type.annobin_enumerator_mark.start.annobin_enumerator_mark.endenumerator_mark.annobin_yielder_mark.start.annobin_yielder_mark.endyielder_mark.annobin_generator_mark.start.annobin_generator_mark.endgenerator_mark.annobin_enumerator_init.start.annobin_enumerator_init.endenumerator_init.annobin_lazy_to_enum_i.start.annobin_lazy_to_enum_i.endlazy_to_enum_i.annobin_yielder_yield.start.annobin_yielder_yield.endyielder_yield.annobin_yielder_yield_push.start.annobin_yielder_yield_push.endyielder_yield_push.annobin_yielder_yield_i.start.annobin_yielder_yield_i.endyielder_yield_i.annobin_stop_result.start.annobin_stop_result.endstop_resultid_result.annobin_lazy_init_block_i.start.annobin_lazy_init_block_i.endlazy_init_block_iid_eachlazy_init_iterator.annobin_enumerable_lazy.start.annobin_enumerable_lazy.endenumerable_lazysym_eachlazyenum_sizeid_method.annobin_lazy_super.start.annobin_lazy_super.endlazy_super.annobin_lazy_take_while_func.start.annobin_lazy_take_while_func.endlazy_take_while_funcid_yield.annobin_lazy_flat_map_i.start.annobin_lazy_flat_map_i.endlazy_flat_map_i.annobin_call_next.start.annobin_call_next.endcall_nextid_next.annobin_lazy_map_func.start.annobin_lazy_map_func.endlazy_map_func.annobin_lazy_size.start.annobin_lazy_size.endlazy_sizeid_receiverid_size.annobin_lazy_receiver_size.start.annobin_lazy_receiver_size.endlazy_receiver_size.annobin_lazyenum_size.start.annobin_lazyenum_size.end.annobin_lazy_drop_size.start.annobin_lazy_drop_size.endlazy_drop_sizeid_arguments.annobin_lazy_take_size.start.annobin_lazy_take_size.endlazy_take_size.annobin_lazy_take_func.start.annobin_lazy_take_func.endlazy_take_funcid_memo.annobin_lazy_flat_map_func.start.annobin_lazy_flat_map_func.endlazy_flat_map_funcid_force.annobin_lazy_zip_func.start.annobin_lazy_zip_func.endlazy_zip_funcid_to_enum.annobin_lazy_zip_arrays_func.start.annobin_lazy_zip_arrays_func.endlazy_zip_arrays_func.annobin_lazy_grep_func.start.annobin_lazy_grep_func.endlazy_grep_funcid_eqq.annobin_lazy_grep_iter.start.annobin_lazy_grep_iter.endlazy_grep_iter.annobin_lazy_reject_func.start.annobin_lazy_reject_func.endlazy_reject_func.annobin_lazy_select_func.start.annobin_lazy_select_func.endlazy_select_func.annobin_lazy_init_iterator.start.annobin_lazy_init_iterator.end.annobin_lazy_initialize.start.annobin_lazy_initialize.endlazy_initializerb_cGeneratorid_initialize.annobin_enumerator_inspect.start.annobin_enumerator_inspect.endenumerator_inspectinspect_enumerator.annobin_inspect_enumerator.start.annobin_inspect_enumerator.end.annobin_get_next_values.start.annobin_get_next_values.endget_next_valuesnext_i.annobin_enumerator_with_index_i.start.annobin_enumerator_with_index_i.endenumerator_with_index_i.annobin_generator_ptr.start.annobin_generator_ptr.endgenerator_ptr.annobin_generator_each.start.annobin_generator_each.endgenerator_eachrb_cYielder.annobin_generator_init_copy.start.annobin_generator_init_copy.endgenerator_init_copy.annobin_enumerator_ptr.start.annobin_enumerator_ptr.endenumerator_ptr.annobin_lazy_to_enum.start.annobin_lazy_to_enum.endlazy_to_enum.annobin_lazy_set_method.start.annobin_lazy_set_method.endlazy_set_method.annobin_lazy_grep.start.annobin_lazy_grep.endlazy_grepid_new.annobin_lazy_take.start.annobin_lazy_take.endlazy_takesym_cycle.annobin_lazy_zip.start.annobin_lazy_zip.endlazy_zip.annobin_enumerator_size.start.annobin_enumerator_size.endenumerator_sizeid_call.annobin_enumerator_enum_size.start.annobin_enumerator_enum_size.endenumerator_enum_size.annobin_enumerator_rewind.start.annobin_enumerator_rewind.endenumerator_rewindid_rewind.annobin_enumerator_block_call.start.annobin_enumerator_block_call.endenumerator_block_call.annobin_enumerator_peek_values.start.annobin_enumerator_peek_values.endenumerator_peek_values.annobin_enumerator_peek_values_m.start.annobin_enumerator_peek_values_m.endenumerator_peek_values_m.annobin_enumerator_next_values.start.annobin_enumerator_next_values.endenumerator_next_values.annobin_next_i.start.annobin_next_i.endnext_ii.annobin_next_ii.start.annobin_next_ii.end.annobin_enumerator_each.start.annobin_enumerator_each.endenumerator_each.annobin_enumerator_feed.start.annobin_enumerator_feed.endenumerator_feed.annobin_enumerator_init_copy.start.annobin_enumerator_init_copy.endenumerator_init_copy.annobin_lazy_drop_func.start.annobin_lazy_drop_func.endlazy_drop_func.annobin_lazy_drop_while.start.annobin_lazy_drop_while.endlazy_drop_whilelazy_drop_while_func.annobin_lazy_take_while.start.annobin_lazy_take_while.endlazy_take_while.annobin_lazy_reject.start.annobin_lazy_reject.endlazy_reject.annobin_lazy_select.start.annobin_lazy_select.endlazy_select.annobin_lazy_flat_map.start.annobin_lazy_flat_map.endlazy_flat_map.annobin_lazy_map.start.annobin_lazy_map.endlazy_map.annobin_lazy_drop.start.annobin_lazy_drop.endlazy_drop.annobin_ary2sv.start.annobin_ary2sv.endary2sv.annobin_enumerator_peek.start.annobin_enumerator_peek.endenumerator_peek.annobin_enumerator_next.start.annobin_enumerator_next.endenumerator_next.annobin_enumerator_with_object_i.start.annobin_enumerator_with_object_i.endenumerator_with_object_i.annobin_generator_memsize.start.annobin_generator_memsize.endgenerator_memsize.annobin_lazy_drop_while_func.start.annobin_lazy_drop_while_func.end.annobin_yielder_initialize.start.annobin_yielder_initialize.endyielder_initialize.annobin_generator_init.start.annobin_generator_init.endgenerator_init.annobin_generator_initialize.start.annobin_generator_initialize.endgenerator_initialize.annobin_enumerator_initialize.start.annobin_enumerator_initialize.endenumerator_initialize.annobin_rb_enumeratorize_with_size.start.annobin_rb_enumeratorize_with_size.end.annobin_rb_enumeratorize.start.annobin_rb_enumeratorize.end.annobin_enumerator_with_index.start.annobin_enumerator_with_index.endenumerator_with_index.annobin_enumerator_each_with_index.start.annobin_enumerator_each_with_index.endenumerator_each_with_index.annobin_enumerator_with_object.start.annobin_enumerator_with_object.endenumerator_with_object.annobin_obj_to_enum.start.annobin_obj_to_enum.endobj_to_enum.annobin_InitVM_Enumerator.start.annobin_InitVM_Enumerator.end.annobin_Init_Enumerator.start.annobin_Init_Enumerator.end.LC0.LC1.LC2.LC5.LC6.LC8.LC9.LC7.LC4.LC3.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC17.LC18.LC19.LC20.LC21.LC22.LC23.LC24.LC25.LC26.LC27.LC29.LC28.LC31.LC30.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_ruby_xcallocrb_data_typed_object_allocrb_gc_markrb_check_typeddatarb_to_idrb_ary_new_from_valuesrb_error_frozen_objectrb_eArgErrorrb_raiserb_cLazyrb_proc_callrb_yield_values2rb_attr_getrb_block_callrb_ivar_setrb_call_superrb_funcallvrb_funcallrb_ivar_getrb_check_funcallrb_num2longrb_int2bigrb_respond_torb_check_array_typerb_ary_new_caparb_ary_pushrb_eStopIterationrb_rescue2rb_ary_entryrb_enum_values_packrb_yieldrb_ary_tmp_newrb_ary_catrb_iter_breakrb_out_of_intrb_block_given_prb_error_arityrb_exec_recursiverb_obj_classrb_class_pathrb_sprintfrb_check_typerb_sym2strrb_str_catrb_str_buf_appendrb_inspectrb_str_appendrb_str_cat_cstrrb_id2strrb_fiber_currentrb_fiber_newrb_fiber_resumerb_fiber_alive_prb_exc_raiserb_int_succrb_yield_valuesrb_proc_newrb_obj_init_copyrb_block_procrb_frame_this_funcrb_id2symrb_obj_classnamerb_eTypeErrorrb_ary_duprb_exc_newrb_fiber_yieldrb_obj_duprb_need_blockrb_scan_argsrb_obj_is_procrb_warnrb_to_intrb_enumeratorize_with_sizerb_obj_is_kind_ofrb_cEnumeratorrb_enumeratorizerb_node_newnodeInitVM_Enumeratorrb_mKernelrb_define_methodrb_cObjectrb_define_classrb_mEnumerablerb_include_modulerb_define_alloc_funcrb_define_class_underrb_define_aliasrb_eIndexErrorrb_provideInit_Enumeratorrb_internx����������0����������������������0\��������������������0��������
���������,���������5���������>���������G���������P���������Y���������b����������0��������������������a���������o���������v*���������}6�����������������������������0\����������*���������7�����������������gD��������������$��������������������(���������<tJ���������jt�L�����������t�����������<�����������d����������;dD���������s4x���������4������������������������������4���������X4c���������j4z�����������������������������,"���������)tF���������w,����������������������������������������������������������Nta����������������������������������t	���������#	t5	���������q	,y	����������	����������	����������	*���������
���������"
���������7
*���������K
t]
����������
����������
����������
\�
������������������\3,>���������n,v�����������������������������������������������4���������CtU���������m,u������������������������������T
���������&
t5
���������f
���������m
T�
����������
����������
t�
����������
����������
���������tE���������P���������vt������������������������������<���������e���������l���������q���������������������|�����������<���������7���������>*���������E8��������O����������0����������������������<���������������������9�����������������$���������<���������D���������N:��������[���������f���������m4u����������;���������������������������������������<������������������h=��������p��������������������>�����������������������������?��������$���������3@��������;��������������������������������������������������������������������?���������Y����������0�������������������*����������A����������������������������������������������0\���������.���������@���������a*���������hB��������r��������������������0�������������������*����������C�������������������0�����������*���������D��������$���������Cf����������������������������������������$�����������4����������4���������R���������Z���������m���������������������������������������������������Ut����������*����������E�����������������������������������������������������������$���������D���������U�i���������n������������������������������F���������*�������������������;l@���������������������X����������:���������FG��������P*���������X���������_Dn���������}��������������������������������������Q���������b���������k����������������������������������������*����������H�����������������&���������?0�G����������*����������I�������������������*����������6�������������������,����������",'���������>tL���������d���������q������������������������������������������*����������J����������������������������	 � ���������) ���������D *���������K K��������U ���������n ���������y �� ���������� ���������� *���������� L��������� ���������� ���������� �� ���������	!���������$!*���������+!M��������5!���������N!���������Y!�m!���������y!����������!*����������!N���������!����������!����������!��!����������!���������	"*���������"O��������"���������R"���������Y"�h"���������|"����������"����������"*����������"P���������"����������#����������#,$���������5$t?$���������]$���������l$,y$����������$����������$����������$0\�$����������$*����������$B���������$���������%0��������%���������1%���������8%*���������?%C��������I%���������a%���������f%����������%Q���������%����������%����������%����������%R���������%����������%����������%S���������%*����������%���������& &���������2&���������9&�&T���������&����������&l�&���������'���������c'U��������{'����������'����������'����������'����������'*���������N(V��������c(���������h(����������(����������(����������(����������(����������(���������")���������Q)���������Y)���������u)����������)�)����������)����������)���������*W��������**���������*���������,*X��������1*���������8**���������?*Y��������H*���������O**���������V**���������e*���������t*����������*Z���������*����������*[���������*����������*\���������*����������*]���������*����������*^���������*���������+_��������+���������)+`��������.+���������A+a��������F+���������Y+b��������^+���������q+c��������v+����������+d���������+����������+e���������+����������+f���������+����������+g���������+����������+h���������+����������+i��������,���������,j��������,���������#,���������*,���������=,Z��������B,���������I,���������\,W��������a,���������h,���������{,X���������,����������,����������,k���������,����������,����������,l���������,����������,����������,m���������,����������,����������,n���������,����������,���������-o��������-���������-���������#-p��������(-���������/-���������?-q��������D-���������K-���������^-r��������c-���������j-���������}-s���������-����������-����������-t���������-����������-����������-u���������-����������-����������-v���������-����������-����������-w���������-����������-���������.j��������.���������.���������..x��������3.���������:.���������M.y��������R.���������Y.���������l.z��������q.���������x.����������.{���������.����������.����������.|���������.}���������.����������.*����������.~���������.����������.*����������.���������.����������.����������.���������//���������//���������"/5/Z��������:/���������A/T/[��������Y/���������`/s/\��������x/����������/����������/����������/���������/����������/���������/Z���������/����������/���������/����������/����������/���������/����������/���������0���������0f�������� 0��������'0\��������.0�30��������:0���������A0�F0��������M0h��������T0lY0��������`0���������g0dl0��������s0���������z0t0���������0Z���������0��0���������0c���������0|�0���������0���������0L�0���������0j���������0D�0���������0����������0���������0����������0T�0���������0����������0<�0��������1���������141��������1���������1,#1��������*1}��������11$61��������=1W��������D1I1��������P1�W1\\1���������c1���������j1o1��������w1���������~1l���������x����������������������������Z���������l���������o���������������������������������������+�������������������q������������������s���������Z���������0�������������������-#����������#����������#���������8(���������0�������� 5��$,PX1��1�1�J�1�JJXDJLXpXx��X��������0�8d�l��p��p�p�|$p,|P|X��|������������D�L�p�x#���#�#�B#B0B8^dBl^�^�p�^�p�p��$p,�P�X�����������		[D	L	[p	[x	s�	[�	s�	s�	�
s
�0
�8
�d
�l
��
��
�
��
�
�
)$,)P)XZ�)�Z�Z�=�Z�==�D=L�p�x��������I	
�
I	0
I	8
Gd
I	l
G�
G�
��
G�
��
��
C
$�,C
PC
X�
�C
��
��
�/��
�//�D/L�p�xu���u�u�SuS0S8udSlu�u�d�u�d�d�$d,PXw��w�w���w���vD�Lvpvx��v�����(�(0(8�d(l����#���#�#��$#,�P�X��������������aD�Lapaxy�a�y�y��y�0�8\d�l\�\���\������$�,�P�X���������������D�L�p�x���������08�dl����z���z�z��$z,�P�XY ���Y �Y �� �Y �� � 9!D� L9!p9!x�!�9!��!��!�"�!"0"8�"d"l�"��"�?#��"�?#�?#�^#$?#,^#P^#X{#�^#�{#�{#��#�{#��#�#�#D�#L�#p�#x$��#�$�$��$$�$0�$8M%d�$lM%�M%��%�M%��%��%��'$ �%, �'P �'X '(� �'� '(� '(� <(� '(� <(!<(!�(D!<(L!�(p!�(x!)�!�(�!)�!)�!)")")0")8"�)d")l"�)�"�)�"0�"�)�"0�"0�"�1$#0,#�1 1 2 3 44*��#`44hpx �4<� � 4 H@\Pp`����� p�,�x����0�P` p8�T�l�`������� 0 `X@���P	`P���P
�
P0����`(��p� ���`����0��0D�x���	p	�<	�h	`�	��	��	�	�<
�
��
�
��,�H` d� �@!��!� "��"�@#`#(�#H�#\�#��$��$�P%
&d
�'�
0(�
@()$)L�)��)�0.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.data.rel.ro.local.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@+�T+�l+��+��+�'��1"@��H<+-K23P2�=P24#8@��!+
S�Ub�U�]@�$0+
|XW�XW��@�$0+�,Y�,Y��@�$0+�[�[��@%0+2�\G2 `�.b )@@%�+AcN0c.�>c�>c|>cS>c'>cW>ce>cx>c�>c�>c�@c �`c��@&X+) rH0,�	h�>$p.�error.o/        1690381920  1000  135   100644  109248    `
ELF>�@@/.

"$%!& '��H��H�H�Ѓ��ff.���H����AWA��AVM��AUM��ATI��H��1�UH��1�SH���H��M��t$L��H���E��uG�H�5H���H��tH��H���L��L��H���H��H��[]A\A]A^A_�D��H�5H��1���f�SI��I��H����1�H�5�F����H�5H��H���H��[�fDAVAUI��H��1�ATI��1�US�H���H��uHH�ߺ	H�5�L��L��H���H�ߺH�5�H��[]A\A]A^�fDH���H��H��A���H��E��u�H�5H����@H��D��H�51����f�AUH��I�պATI��UH��H�=SH��dH�%(H��$1�H���L��L��H���H��H����H��1�H�
H��H��H���H��$dH3%(uH��[]A\A]��ff.�@�ATI��US��~'H�1�fDH�sL����H��9-�[L��]���H�=A\�ff.���H�5SH��H��tH��1�1�1�[�D�H�=�H��1�1�H��H�[1��ff.���H�5SH��H��tH��[��H�=�H��[H��H��ff.����H�5SH��H��tH��[��H�=�H��[H��H��ff.����H�5SH��H��tH��[��H�=�H��[H��H��ff.����H�5SH��H��tH��[��H�=�H��[H��H��ff.����H�5SH��H��tH��[��H�=�H��[H��H��ff.����H�5SH��H��tH���H��H�����u%H��[þH�=�H��H���H��[����H��8�H�t$�H�T$H�L$�H�T$H��H�H�T$H�PH�T$H�PH�H�H�8�H�T$H�T$(H�T$H�T$H�T$(H�T$H�T$H�T$(H�T$H��8�D��H�w���AUI��ATUH��SH��L�%M����H�H��H�3�H��tuL9+t`H�5H��tH���H��H����H�5H����L�������H9�����uH��1�[]A\A]��H���[]A\A]�L��H�����t�H�5H��u��H�=�H��H��a���D�H�=�I��H�����H��H���H�����b���f.��H�=�H��H��!���1�1�L��H��1��H��������S1�H��H�H��H�L$�H�T$H��H�5�H�ߺH�5�H��H��[���U�SH��H����~
��Hc�H�,��H��H��H�5�H��H��[]�ff.���U�SH��H����~
��Hc�H�,�H�����H��H��H�5�H��H��[]�ff.���ATUH��S��H����~:H�>H��tcH��t%H�t$�H�t$H��I��tH�����@H����A����L��H��H�5�H��H��[]A\�fDH����A��Ɛ��H�5SH��H��t,H���H��u�[��H��[���H�=�H��H����H9���AVAUATUH��SH��H���H��I���I9��hL�%�D$M����L�-M��tTH��H�T$H�=e�H�ŋD$����H��4t{H���H��I���I9�tsH��1�[]A\A]A^�@�	H�=�I��H���H�=�L�-I��H�M���a�������@L��1�1�H���I��H��4�q���H��1�1�L���H��H��4�U�����H���L��H���H���4���H���?���H��H���H������H���[]A\A]A^�f�H����H��I�����H�����f.���1�1Ҿ
�ff.�ATI��UHc�SH��H��H�=H�T$���ujH�L��H�H�H�8�H�D$��tl��suH�H��H�T-H�5�H�T$H�=H���H�D$H��[]A\�f�H�H�T$L��H�8�H�D$H��[]A\�H�H���UHc�SH��H��(H�=dH�%(H�D$1�H�T$���tH�D$H�L$dH3%(u3H��([]�H�l$��H�1�H���H��������f�H�����H�������������������������������	����
������������
�o�����������������������������������������������������������������������}�� ����!�{��"����#����$�p��%���&����'����(�t��*�c��+�2��,�!��-���.����/����0����1����2����3����4����5����6�w��7�f��8�U��9�D��;�3��<�"��=���>���?����@����A����B����C����D����E����F�x��G�g��H�V��I�E��J�4��K�#��L���M���N����O����P����Q����R����S����T����U�y��V�h��W�W��X�F��Y�5��Z�$��[���\���]����^����_����`����a����b����c����d�z��e�i��f�X��g�G��h�6��i�%��j���k���l����m����n����o����p����q����r����s�{��t�j��u�Y��v�H��w�7��x�&��y���z���}������������������|����~����{������s����_���t����H�HE��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��ff.���UH��S��H���H�8t��H���[]�fDH�H���H��H���[]���ATUH��S��t'��uH9t��H��I���L���H��H����H��[]A\�f�ATUSH��dH�%(H��$1�H�H�(H����I����A��H��H�L��1��Hc�H��L��H���H9�t)H�H�ھL��H�(H���H9øHE�H��$dH3%(H��u4H��[]A\�H��H��1�L����|���1�I���r����D��H�5SH��H��tLH���H��t-H�Ǩu��ԃ�	�t1�[�@��ԃ�	�u�[�f.��H�=�H��H����ATUS@����@����������&H���,@���2L�g�H��H��� �������������H�5H���L��H���H��H����H��H�5�H��H���H�ߺH�5�H��[]A\�H������Y���H��tUH���J���H�L� �?���DH�}�����N���L���[]H��A\�@H�L� �����H�L� ���H�L� ����H�L� �����H�L� �������H�5SH��H��tH���H��t7H��[�D�H�=�H��H��H��H��u��t2��u}�؃����H��tI��u4H�H�8�,�H�����uH��t1H��uH�H�8�H�{[�fDH�H�8��@H�H�8��@H�H�8��@H�H�8�@��ATI��U��SH��H���H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$��H�8t9H��$�L���H��H�D$H�L$H�D$ �D$�D$0H�D$�k�H���[]A\�ff.�@��ATI��U��SH��H���H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$��H�����t9H��$�L���H��H�D$H�L$H�D$ �D$�D$0H�D$��H���[]A\�ff.����SH��H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$��H�8t>H��$�1�H�T$H��H�D$H�D$ �D$�D$0H�D$�,�H���H���[�ff.���SH��H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$��H�����t>H��$�1�H�T$H��H�D$H�D$ �D$�D$0H�D$�i�H���H���[����Hc1����#�BH���H�H¸H�:H�r����UH��SH���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H�1�H�H��t�H�����H���D���H��H���H��$�H�T$H��H��H�D$H�D$ H�D$�D$�D$0��1��H�����ff.�f���ATI��UH��SH���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H�1�H�H��t�H�����H���T���H��H���H��$�H�T$L��H��H�D$H�D$ H�D$�D$�D$0��H���H�����ff.����ATUH��S��tH�����x�I��H��t�L��H��H�=H��1�����H��H�=H��1��H��1�H�=����U���H�5SH���H���H����H���H�޿H���H�����H�5��H������������H��H��H�HD�H���H�޿H���H��xp�H�5��H��xUH�H���H�޿H���H��x1�H�5��H��x��H�5����H�5��H���l�����ff.�@��UH��SH���H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$����H��H���H��$�H�T$H��H��H�D$H�D$ H�D$�D$�D$0��1��H���?��f.�����w'Hc�H�H��H�P��8HD���1��ff.�f���H��t6@��u @��tZ@��t4H��t^H�H��u;ÐH���H���H�����tË����t
H��t�f�H���H�����H��tH9�u�H9�tH�0H��u�1�����f���1�@��uH�����t�����uH�t
�f�H��H������H�����fD��USH��H��H��H���H�5H��H��tH��H��H�ߺ[1�]���H�=�H��H�����UH��H��SH��H���H��H��H��[H��]�@��USH��H��H�|$H�t$�H�5H�l$H��t#H��H�ߺ1��H��[]�f.��H�=�H��H��AUATUH��SH��H�H�H�����L�cxH�CxH��H���t5H��u`H�H��H�8�L�cxH��H��[]A\A]��H��t[H��H�5�H���L�cxH��[]A\A]���H�5I��H���H��L��L����q����H��
H�5H�8�H���ff.����H���I��H��L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�L�L$I��L��H�D$��H�D$ 1��D$ �D$0H�D$����H���g���H����ff.�@��H���H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�L�L$I�Љ�H�D$H��1�H�D$ 1��D$�D$0H�D$�>��H�����H����ff.���H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$H�D$ �D$0H�D$�H������H����UH��SH��H�H�8�H�5H��H��tH��H���H����H�=�H��H���f���SH��H��H���H�T$@H�L$HL�D$PL�L$X��t:)D$`)L$p)�$�)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$ H�D$0�D$0H�D$(�H��H�$��H��H�D$H�H��H���ff.���SH��H��H���H�T$@H�L$HL�D$PL�L$X��t:)D$`)L$p)�$�)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$ H�D$0�D$0H�D$(��H��H�\$H�$H�H��H�����AUH�=ATUSH��H�H�0�H�H������H��H�5H��H�;�����H���H�5�H�;�����H�=��H�5�H�;�H��H�5�H�;1�H�z�H�5�H�;1�H����H�5�H�;1�H���H�5�H�;1�H�R��H�5�H�;1�H�*��H�5�H�;�H��H�5�H�;1�H�H�5�H�3H�=�H�-�����H�9��H��H�5H�E�H�}1�H�i��H�5�H�}1�H���H�5�H�3H�=�H�H�3H�=H��H�H�=H��H��H�H�3H�=H��H�-H�=H��H�E�H�H�uH�=H��H�H�uH�=H��H�H�=H��H��H�H�uH�=H��H�H�3H�=H��L�%H�=H��I�$�H�I�4$H�=H��L�-�H�=I�E�I�}E1�1ɺH���I�4$H�=�H�H�uH�=H��L�-�����H����H��H�5I�E�I�}1�H�=��H�5�H�I�}H�5H��L�%�H�H��H�5I�$�I�<$�H�H�5�I�<$1�H��H�5�I�<$�H��H�5�I�<$�H�p��H�5�I�uH�=�L�%�����H���H��H�5I�$�I�<$1�H����H�5�H�uH�=�H�H�3H�=H��H�H�3H�=H��H�H�uH�=H��H�H�5H�H��H�H�8�H�H��H�uH�=H��H������H�]	H��H�5H��H�;1�H����H�5�H�;�H����H�5�H�=�H�H�5�H�=H�H�������[]A\A]���SH��H��H���H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�T$�D$H�D$H�D$ �D$0H�D$�H��H���H�����SH��H��H���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$H�D$ �D$0H�D$�H��H���H���ff.���UH��SH��H����u2H�����t)�����uH�{uLH�{���t2H�C H��[]�H���H�MH��H�H�5H�81��H�CH�MH���H�����ff.���AUH�5ATUSH��8�H�(H���9H�XI���D$H���@H���&H���}H�=H�T$H���I�ŋD$���JI��tI�E �VI�}A~H���I��H� �7I�}H�����?#tM��tL���I���H�=�I�źH�5L������������؃�����H��������H�{�L��H���H�l$I�D$H�t$�L�l$ H�D$�H��H��8H��[]A\A]�f�H�=�[���@H�=�K���@H�����u�H���}H���z���H�H�8�o���D������H�H�8�K����I�}�����H�H�8�+����H�H�8�����H�H�8�����H�H�8�������������H9�twATUH��H��SH���H�H9t	[1�]A\�f�H��H�5�H��H�51�I���H��H�tI�<�H��t�H��H��u�[�]A\���f.�SH��H������H��������������H�����utH��ƒ�����H��1�H�{% H�����)H9�}GH��H���uZH������tQH�	����uFH��H��u�H;S}H�K ��fDH�����tH��H��[�H�t$�H�\$���H�H�5H�81��ff.�f���H��t�������f.���AVAUATUSH��H��`H�-H�����������[�؃����]H���C���JH�{H�������H�L�(H�L�0H����L�%A�$ ��H���>��A�$@�H����H���1���H��`[]A\A]A^�@H������y���H��t]H���j���H�H�8H�����tTH�L�(H�L�0�m���D�	H�=�H��H����H�H��H�8���u"H��H��1�1�1��H��`[]A\A]A^�@H��`�[]A\A]A^�fDH�H�8����H�H�8����I�V���A����@���I�V0H�|$H�D$@H�D$�D$@L�t$H�T$ H�\$(H�l$0L�l$8H�D$P4�D$H�H�D$���f�I�F���A��� �a���I�F0H�|$L�t$�D$ H�D$ H�\$(H�l$0L�l$8H�D$@4H�D$P4�D$H�����f�H�H�8�W����H�H�8�G������SH��H��H��tH���'���H��H��H�5[�@����f.���SH���H��H�5H��H�H�81��D��AVI��AUA��H��ATUSH��H�� �H��H�H9(�|I��L��L�D$D��L��H�1��H�5H����H���H�D$H�-H��tH�Ǩ������H���H��H���H�<$H��u_L��H�,$�H�T$H��H�5�H�� H��[]A\A]A^�f.��H�=�H��H��S���L���H�T$I��H��tH�5H��1��1�L��H�5H���@���\���H������O���H�U�Ѓ����LH�$��1���H������%���H�����������%H	�H�U����f�I��1�L�L$L��L�D$L��D��H�l$H��A����H�t$H����@����H�H�=H�T$���tDH�l$����H��������������H�k@��uH�������@H�D$����fD�������@H�4$@���]���H�t$H�$H���_���H�-���@H���H���?����H��������@H��H������m���H���`H��`�]���H�E��`H��`�L���H��H����<���H�H�5H�81��ff.����SH��H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$��D$H�D$H�D$ �D$0H�D$�H��H�T$H����H����@��UH��SH��H���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$��D$H�D$H�D$ �D$0H�D$�H��H�T$H���H��H�������PXH���H���H�5H��H�H�81��ff.���PXH���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$H�D$ �D$0H�D$�H��H�H�8�H���@��SH��4�1@��t{@������������H����@�������9�����weHc�H��H�H�H�;tN�H��H�5H��H�H�81��H�����u�H����H��u����u�[�@H�=1��f.���u�H�u�H������X���[������@���[ú���0���[ú��� ���[ú������[�H�=1��f���H��H�t$����H�t$�H���H������S���H��tH�����H��[�ff.��SH����8���t	H��[�H��tH��H�=1��H���SH����8�H��u��t+�H��[���u�H��tH�sH� t
H�s�H�5H�=1��fD��PXH���H���f���PXH���H���f���PXH������H���f���PXH���1���H���f���S��H��H��u*H���u8H��H�HD�1�H��H�=���uH��tGH� u8H���ȺH�$���H�D$����H��H���H���H�R�H��ff.����UH��SH��H���H��H�ߋ0�����UH��H��SH�����H��H��H���H���D��UH��H��SH������H��H��H���H���D��UH����H��SH���H��H��H���H�����UH����H��SH���H��H��H���H�����ATI��USH���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$��H�Ë(�H�����uH���[]A\�fDH��$�L��H�T$1�H�D$H�D$ �D$�D$0H�D$�:���H�0I��� uLH����H��L������L��H�5H��1��L����+H���[]A\��H�@H�p��fD��AUI��ATI��USH���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$��H�Ë(�H�����uH���[]A\A]�@H��$L��H�T$L��H�D$H�D$ �D$�D$0H�D$�	���H�0I��� uKH����H��L������L��H�5H��1��L����+H���[]A\A]�DH�@H�p��fD��UH��H��SH����H�5H��H���H��H���H��H����ff.���PXH�5H��H�H��H�81��ff.���PXH��@��t8@��uR������t`H��tf@��tlH�WH�H�5H�81��H�����u�H��tH��u�H�H���H�H��H�H��H�H��H�H��H�H��ff.����@��uH�����tH��ƒ���t��u�H�������ff.����ff.���@��uNH�����tEH��ƒ���t8H����uf@��u!H�����tH��у���tH��H!��uH�����H�|$�H�|$��~�H�H�WH�5H�81���ff.����H��1�H�5�z��H�5��i��H�5��X��H�5��G��H�5��6��H�5��%��H�5����H�5����H�5�����H�5�	����H�5�
����H�5����H�5����H�5�
���H�5����H�5��{��H�5��j��H�5��Y��H�5��H��H�5��7��H�5��&��H�5����H�5����H�5�����H�5�����H�5�����H�5����H�5����H�5����H�5����H�5��|��H�5��k��H�5� �Z��H�5�!�I��H�5�"�8��H�5�#�'��H�5�$���H�5�%���H�5�&����H�5�'����H�5�(����H�5����H�5�*���H�5�+���H�5�,���H�5�-�}��H�5�.�l��H�5�/�[��H�5�0�J��H�5�1�9��H�5�2�(��H�5�3���H�5�4���H�5�5���H�5�6���H�5�7����H�5�8����H�5�9���H�5�#���H�5�;���H�5�<�~���H�5�=�m���H�5�>�\���H�5�?�K���H�5�@�:���H�5�A�)���H�5�B����H�5�C����H�5�D���H�5�E���H�5�F����H�5�G����H�5�H���H�5�I���H�5�J���H�5�K����H�5�L�n���H�5�M�]���H�5�N�L���H�5�O�;���H�5�P�*���H�5�Q����H�5�R����H�5�S���H�5�T���H�5�U�տ��H�5�V�Ŀ��H�5�W賿��H�5�X袿��H�5�Y葿��H�5�Z耿��H�5�[�o���H�5�\�^���H�5�]�M���H�5�^�<���H�5�_�+���H�5�`����H�5�a�	���H�5�b���H�5�c���H�5�d�־��H�5�e�ž��H�5�f贾��H�5�g裾��H�5�h蒾��H�5�i聾��H�5�j�p���H�5�k�_���H�5�l�N���H�5�m�=���H�5�n�,���H�5�o����H�5�p�
���H�5�q���H�5�r���H�5�s�׽��H�5�t�ƽ��H�5�u赽��H�5�v褽��H�5�w蓽��H�5�x肽��H�5�y�q���H�5�z�`���H�5�}�O���H�5��>���H�5���-���H�5������H�5�|����H�5�~���H�5�{���H�5���ؼ��H�5���Ǽ��H�5��趼��1�H�5証��1�H�5蚼��1�H�5茼��1�H�5�~���1�H�5�p���1�H�5�b���H�5�_�Q���1�H�5�C���1�H�5�5���1�H�5�'���1�H�5����1�H�5����1�H�5���H�5�����H�51��޻��H�51�H���̻��GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign:%d: warning: 
[BUG] 
%s

to_scauseerrnoargsnamestatusbtErrno01mesgbt_locationsmessagebacktraceE%03dEPERMENOENTESRCHEINTREIOENXIOE2BIGENOEXECEBADFECHILDEAGAINENOMEMEACCESEFAULTENOTBLKEBUSYEEXISTENODEVEXDEVEHWPOISONERFKILLEOWNERDEADENOTRECOVERABLEENOMEDIUMENOKEYEMEDIUMTYPEEKEYREVOKEDEKEYREJECTEDEKEYEXPIREDECANCELEDEDQUOTEREMOTEIOEISNAMENAVAILENOTNAMEUCLEANESTALEEINPROGRESSEALREADYEHOSTUNREACHEHOSTDOWNECONNREFUSEDETIMEDOUTETOOMANYREFSESHUTDOWNENOTCONNEISCONNENOBUFSECONNRESETECONNABORTEDENETRESETENETUNREACHENETDOWNEADDRNOTAVAILEADDRINUSEEAFNOSUPPORTEPFNOSUPPORTEOPNOTSUPPESOCKTNOSUPPORTEPROTONOSUPPORTENOPROTOOPTEPROTOTYPEEMSGSIZEEDESTADDRREQENOTSOCKEUSERSESTRPIPEERESTARTEILSEQELIBEXECELIBMAXELIBSCNELIBBADELIBACCEREMCHGEBADFDENOTUNIQEOVERFLOWEBADMSGEDOTDOTEMULTIHOPEPROTOECOMMESRMNTEADVENOLINKEREMOTEENOPKGENONETENOSRETIMEENODATAENOSTREBFONTEBADSLTEBADRQCENOANOEXFULLEBADREBADEEL2HLTENOCSIEUNATCHELNRNGEL3RSTEL3HLTEL2NSYNCECHRNGEIDRMENOMSGELOOPENOTEMPTYENOSYSENOLCKENAMETOOLONGEDEADLKERANGEEDOMEPIPEEMLINKEROFSESPIPEENOSPCEFBIGETXTBSYENOTTYEMFILEENFILEEINVALEISDIRENOTDIR%s: %s:%d: #<>%s: errno == 0 (NOERROR)%s: %s (%s)%s: %s (%d)undefined errno[ASYNC BUG] errno == 0 (NOERROR)


nilFixnumfalsetrueSymbolnewcompile error@pathExceptionexceptioninitialize==inspectbacktrace_locationsset_backtraceSystemExitsuccess?fatalSignalExceptionInterruptStandardErrorTypeErrorArgumentErrorIndexErrorKeyErrorRangeErrorScriptErrorSyntaxErrorLoadErrorpathNotImplementedErrorNameError!to_str_dump_loadNoMethodErrorRuntimeErrorSecurityErrorNoMemoryErrorEncodingErrorCompatibilityErrorSystemCallError===warn:invalid value for %s: %+liunknown error12invalid instance type02 @ %li - %lirb_sys_fail(%s) - errno == 0(null): %s
 -- can't modify frozen %scan't modify frozen %liInsecure: can't modify %liNOERROREWOULDBLOCKEDEADLOCKEAUTHEBADRPCEDOOFUSEFTYPEENEEDAUTHENOATTRENOTSUPEPROCLIMEPROCUNAVAILEPROGMISMATCHEPROGUNAVAILERPCMISMATCHEIPSECECAPMODEENOTCAPABLEname_err_mesg���%li() function is unimplemented on this machineundef leaked to the Ruby spacewrong argument type %s (expected %s)unknown type 0x%x (0x%x given)rb_sys_fail_str(%s) - errno == 0rb_sys_fail_path_in(%s, %s) - errno == 0backtrace must be Array of Stringwrong argument type %s (expected %s)ObjectClassModuleFloatStringRegexpArrayHashStructBignumFileDataMatchDataComplexRationalniltruefalseSymbolFixnumundefNodeiClass[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

��������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0HD�B�E�E �E(�I0�F8�D@S
8D0A(B BBBD�:A�t<��B�B�J �F(�A0�M
(A BBBG8��B�M�I �K(�G�{
(A ABBA((UH�D�A �lDSTRL�R
JctDL�L
HU�DL�L
HU�DL�L
HU�DL�L
HU�DL�L
HUYL�c
Ad4�H@�L
L`iF�E�A �D(�D0|
(C ABBHD
(F ABBA�PE�P vD$�BE�F�G jDA$�EE�F�G mDA0 �F�A�D �F0a
 DABG T]L�\
HD
L`x�O�B�B �A(�D0�G@�
0C(A BBBE�
0F(A BBBJ`������@��B�D�D �G0x
 AABC`
 AABD(4~A�D�G@~
AAD`�0tPE�D�F S
FAGXFA(�>F�A�D �oAB0��B�A�A �G��
 AABA }L�o
EU
K8,F�A�A ��
ABDI
AEI h�L�Z
J�
K0��F�D�C �J�� AAB0��F�D�C �J�� AAB ��E�J��A �E�J��A<9P�E�D�G�zRx����$ ��F�D�D �G�zRx�����$�hF�A�D �AE�O�L <�E�D�G��p3���.�JtR(�]E�A�M X
LCF$�,E�G�G IGD(mE�A�G0v
AAKLD�B�B�A �D(�D0T
(A ABBIi
(A ABBA��K����K����K���WA�D�D 	�E�M�$	�E�M�8@	�F�I�A �A(�D0{(F ABB|	�E�M��	�E�M�(�	�E�D�G t
AAA8�	/F�I�A �A(�D`O
(D ABBC
	80
�K�A�G �U
CBCDFBD��� l
�A�G �
AA�
l�
�F�B�B �A(�A0�G��
0A(A BBBE�
0A(A BBBED
0F(A BBBG,E�b0D+E�@\4F�E�H �A(�A0�GP�
0D(A BBBK��E�J���E�D�J��2EAD��EAG�8NE��
E
IO
AO
AO
AO
AP)H `h$E�Z�=A�X
E�ZA�b
E�EAD�EAD�EAD
EAD,
�E�F H
(E�D�G h
+E�G�D �
+E�G�D �
-E�I�D �
-E�I�D @�
*F�D�A �G�s
 AABG�
 AABIL,*F�E�D �A(�G�n
(A ABBE�
(A ABBF|BE�G�D �%EAK��EAD�/j���d pL ,�	H�		#'<$Uo%��&��'�;Qs(� �(���0���
7�:J
h��������������U+	�>	�L��Z�uB��R�	 �B���	x���2�D?	XX�w4��D�	H�4���@D	@�7�P�D\	0u��9��Y�	��9��H2�T�t�
���I��i�	p�	h�	`I-�IPPX�{���B���5��E5-�J@�Z��-	��]�	(�-	��
	0	�		*		C	\	�
�	�	�	��	 ��		��	�
n$
�~/
nJ
2c
p�o
2�
��
@P�
��
��
�>�
��+��;�Y=u�}�	8�=���@������	-�Lqiq�4�4������	
�,
�M
�c
�w
�
��
��
�
��
H
H/� O� mV!�
�V!��!��,��!("<("d^"�^"��"��"�
#	�!
#@<#]<#{�#�	���#��$��#��$.Q%UQ%u&�&��&��&�'�&W+	D'a�'|�'��(��(�@.�-�6,�`2�
 0/P2	2 74D@.`�.z�.��/��/�0�@%�0O2;O2]Y2}Y2��2��2��3�2�+"5�3W�3w�3��6�	���6��6�62�6T�6r7�7�T:�	P�T:;;C�;g�;��;��;��<��<��=	�=*)>I)>fT>�T>��>�`>=��>��>�>Z�>=?Y?{7?�7?�W?�W?�w?w?1@U@xH@�H@�{@�{@��@�@;�@[�@�
A�
A�:B�:BjC!jC=�CW�Cv�C��C��D��D��D�D;�D[�D{�D��D��E��E�TO$%&'#
!&+ 0%5+:1?6E;KBQEWK]NcSiho`ur{x�~���������������������������������������������#�*�1�8�?wF~MlTq[Pb]iepIw+~2�8�B���!�+�2�>�J�W�c�m�t�~�������������� � � � � �# �) / 5 ; "A /G 9M ES NY \_ ge tk �q �w �} �� �� �� �� �� �� �� �� �� � � � � #� +� 3� :� C� M� U� ]� g!n
!t!{!�!�&!�-!�4!�;!�B!�I!�P!�W!�^!�e!�l!�s!�z!��!��!��!��!�!�!�!�!�!%�!��!��!��!��!��!�!��!�!�!A"+
"O"H"D""Z)"U0"a7"e>"sE"yL"�S"�Z"�a"�h"�o"�v"�}"��"��"��"��"��"�"�"�"*�"3�">�"J�"V�"`�"e�"y�"��"��"�#�	#�#�#�#�%#�,#�3#�:#A#H#	O#V#N]#'d#Qk#Yr#5y#8�#�#X�#��#8�#b�#a�#��#�#��#��#��#��#��#��#��#��#��#��#$	$$$"!$*($2/$;6$H=$VD$cK$pR$wY$�`$l$|$�$�$

 !"()*�$�$�$�$�$
%%)%;%I%W%^%m%s%�%�%�%�%�%PD�%�%�%�%@�&&�+&F&[&�o&�&�&�&�&�&�&�&�&�&'''/'9'�C'Y'�i'y'�'��'��'�'�'�'�'�'�'�'�'((#(5(D(O(Z(g(q((�(�(���(���(@��(��(�9�(��(�()))��,)�h9)B)PAX%U)\)� �k)`!3�)�!��)�)0".�)`"J�)�"]�)�)#,�)@#m
**�-*�$�G*`%�X*&�p*|*��*�*�*'��*�*��*�*�'��*�(�+++�)+D+U+�d+�n+�y+��+��+��+��+��+��+��+��+�+�,,�",�3,�E,�T,�f,s,��,�,�,�,@.��,�,�.��,�/��,--"-/-F-�3Y-4�j-�-�-�-�6�-�6+�-�-../.O.`:�\.;�s.�;2�.�.�.<��.�.�<N�.>)�.0>$�.�.?/ ?/@?#/`?3/�?�J/ @(^/P@+n//�@+�/�@-�/�@-�/A*�/�/@B*�/pCB�/0�C%0�C�60�D/F0�DY0�Dj0�D�|0�0�E�	.annobin_error.c.annobin_error.c_end.annobin_error.c.hot.annobin_error.c_end.hot.annobin_error.c.unlikely.annobin_error.c_end.unlikely.annobin_error.c.startup.annobin_error.c_end.startup.annobin_error.c.exit.annobin_error.c_end.exit.annobin_name_err_mesg_memsize.start.annobin_name_err_mesg_memsize.endname_err_mesg_memsize.annobin_name_err_mesg_load.start.annobin_name_err_mesg_load.endname_err_mesg_load.annobin_compile_snprintf.start.annobin_compile_snprintf.endcompile_snprintf.annobin_compile_warn_print.start.annobin_compile_warn_print.endcompile_warn_print.annobin_warning_string.start.annobin_warning_string.endwarning_string.annobin_bug_report_begin.start.annobin_bug_report_begin.endbug_report_begin.annobin_bug_report_end.start.annobin_bug_report_end.endbug_report_endbug_reporters_sizebug_reportersREPORTBUG_MSG.annobin_exc_message.start.annobin_exc_message.endexc_messagerb_intern_id_cache.15923.annobin_exc_cause.start.annobin_exc_cause.endrb_intern_id_cache.15975.annobin_syserr_errno.start.annobin_syserr_errno.endsyserr_errnorb_intern_id_cache.16143.annobin_nometh_err_args.start.annobin_nometh_err_args.endnometh_err_argsrb_intern_id_cache.16101.annobin_name_err_name.start.annobin_name_err_name.endname_err_namerb_intern_id_cache.16036.annobin_exit_status.start.annobin_exit_status.endexit_statusrb_intern_id_cache.16004.annobin_exc_backtrace.start.annobin_exc_backtrace.endexc_backtracerb_intern_id_cache.15935.annobin_rb_name_err_mesg_new.start.annobin_rb_name_err_mesg_new.endname_err_mesg_data_type.annobin_name_err_mesg_mark.start.annobin_name_err_mesg_mark.endname_err_mesg_mark.annobin_syserr_eqq.start.annobin_syserr_eqq.endsyserr_eqqrb_intern_id_cache.16152rb_intern_id_cache.16153rb_intern_id_cache.16155.annobin_exc_initialize.start.annobin_exc_initialize.endexc_initialize.annobin_name_err_initialize.start.annobin_name_err_initialize.endname_err_initialize.annobin_nometh_err_initialize.start.annobin_nometh_err_initialize.endnometh_err_initialize.annobin_exit_initialize.start.annobin_exit_initialize.endexit_initialize.annobin_exc_backtrace_locations.start.annobin_exc_backtrace_locations.endexc_backtrace_locationsrb_intern_id_cache.15951.annobin_exc_equal.start.annobin_exc_equal.endexc_equalrb_intern_id_cache.15989rb_intern_id_cache.15990try_convert_to_exception.annobin_try_convert_to_exception.start.annobin_try_convert_to_exception.end.annobin_set_syserr.start.annobin_set_syserr.endset_syserrsyserr_tbl.annobin_get_syserr.start.annobin_get_syserr.endget_syserr.annobin_rb_strerrno.start.annobin_rb_strerrno.endrb_strerrno.annobin_rb_warn_m.start.annobin_rb_warn_m.endrb_warn_m.annobin_exc_exception.start.annobin_exc_exception.endexc_exception.annobin_bug_report_file.start.annobin_bug_report_file.endbug_report_file.annobin_exit_success_p.start.annobin_exit_success_p.endexit_success_prb_intern_id_cache.16010.annobin_exc_inspect.start.annobin_exc_inspect.endexc_inspect.annobin_exc_to_s.start.annobin_exc_to_s.endexc_to_srb_intern_id_cache.15918.annobin_rb_compile_warn.start.annobin_rb_compile_warn.end.annobin_rb_compile_warning.start.annobin_rb_compile_warning.end.annobin_rb_warn.start.annobin_rb_warn.end.annobin_rb_warning.start.annobin_rb_warning.end.annobin_rb_bug_reporter_add.start.annobin_rb_bug_reporter_add.end.annobin_rb_bug.start.annobin_rb_bug.endrb_bug.cold.12.annobin_rb_bug_context.start.annobin_rb_bug_context.endrb_bug_context.cold.13.annobin_rb_bug_errno.start.annobin_rb_bug_errno.end.annobin_rb_async_bug_errno.start.annobin_rb_async_bug_errno.end.annobin_rb_compile_bug.start.annobin_rb_compile_bug.endrb_compile_bug.cold.14.annobin_rb_builtin_type_name.start.annobin_rb_builtin_type_name.endbuiltin_types.annobin_rb_builtin_class_name.start.annobin_rb_builtin_class_name.end.annobin_rb_typeddata_inherited_p.start.annobin_rb_typeddata_inherited_p.end.annobin_rb_typeddata_is_kind_of.start.annobin_rb_typeddata_is_kind_of.end.annobin_rb_exc_new.start.annobin_rb_exc_new.endrb_intern_id_cache.15890.annobin_rb_exc_new_cstr.start.annobin_rb_exc_new_cstr.end.annobin_rb_exc_new_str.start.annobin_rb_exc_new_str.endrb_intern_id_cache.15900.annobin_compile_err_append.start.annobin_compile_err_append.endcompile_err_append.annobin_rb_compile_error_with_enc.start.annobin_rb_compile_error_with_enc.end.annobin_rb_compile_error.start.annobin_rb_compile_error.end.annobin_rb_compile_error_append.start.annobin_rb_compile_error_append.end.annobin_raise_loaderror.start.annobin_raise_loaderror.endraise_loaderrorrb_intern_id_cache.16181.annobin_rb_name_error.start.annobin_rb_name_error.end.annobin_rb_name_error_str.start.annobin_rb_name_error_str.end.annobin_Init_Exception.start.annobin_Init_Exception.endname_err_mesg_equalname_err_mesg_to_strname_err_mesg_dumpsyserr_initialize.annobin_rb_enc_raise.start.annobin_rb_enc_raise.end.annobin_rb_raise.start.annobin_rb_raise.end.annobin_rb_check_typeddata.start.annobin_rb_check_typeddata.endmesg.15858.annobin_name_err_mesg_to_str.start.annobin_name_err_mesg_to_str.end.annobin_name_err_mesg_dump.start.annobin_name_err_mesg_dump.end.annobin_name_err_mesg_equal.start.annobin_name_err_mesg_equal.end.annobin_rb_check_backtrace.part.8.start.annobin_rb_check_backtrace.part.8.endrb_check_backtrace.part.8err.15956.annobin_rb_check_backtrace.start.annobin_rb_check_backtrace.end.annobin_rb_get_backtrace.start.annobin_rb_get_backtrace.endrb_intern_id_cache.15940.annobin_exc_set_backtrace.start.annobin_exc_set_backtrace.end.annobin_rb_exc_set_backtrace.start.annobin_rb_exc_set_backtrace.end.annobin_rb_invalid_str.start.annobin_rb_invalid_str.end.annobin_syserr_initialize.start.annobin_syserr_initialize.endrb_intern_id_cache.16136.annobin_rb_loaderror.start.annobin_rb_loaderror.end.annobin_rb_loaderror_with_path.start.annobin_rb_loaderror_with_path.end.annobin_rb_notimplement.start.annobin_rb_notimplement.end.annobin_rb_fatal.start.annobin_rb_fatal.end.annobin_rb_check_type.start.annobin_rb_check_type.end.annobin_rb_syserr_new_str.start.annobin_rb_syserr_new_str.end.annobin_rb_syserr_new.start.annobin_rb_syserr_new.end.annobin_make_errno_exc.start.annobin_make_errno_exc.endmake_errno_exc.annobin_make_errno_exc_str.start.annobin_make_errno_exc_str.endmake_errno_exc_str.annobin_rb_syserr_fail.start.annobin_rb_syserr_fail.end.annobin_rb_syserr_fail_str.start.annobin_rb_syserr_fail_str.end.annobin_rb_sys_fail.start.annobin_rb_sys_fail.end.annobin_rb_sys_fail_str.start.annobin_rb_sys_fail_str.end.annobin_rb_syserr_fail_path_in.start.annobin_rb_syserr_fail_path_in.end.annobin_rb_sys_fail_path_in.start.annobin_rb_sys_fail_path_in.end.annobin_rb_mod_sys_fail.start.annobin_rb_mod_sys_fail.end.annobin_rb_mod_sys_fail_str.start.annobin_rb_mod_sys_fail_str.end.annobin_rb_mod_syserr_fail.start.annobin_rb_mod_syserr_fail.end.annobin_rb_mod_syserr_fail_str.start.annobin_rb_mod_syserr_fail_str.end.annobin_rb_sys_warning.start.annobin_rb_sys_warning.end.annobin_rb_sys_enc_warning.start.annobin_rb_sys_enc_warning.end.annobin_rb_load_fail.start.annobin_rb_load_fail.end.annobin_rb_error_frozen.start.annobin_rb_error_frozen.end.annobin_rb_error_frozen_object.start.annobin_rb_error_frozen_object.end.annobin_rb_check_frozen.start.annobin_rb_check_frozen.end.annobin_rb_error_untrusted.start.annobin_rb_error_untrusted.end.annobin_rb_check_trusted.start.annobin_rb_check_trusted.end.annobin_rb_check_copyable.start.annobin_rb_check_copyable.end.annobin_Init_syserr.start.annobin_Init_syserr.end.LC1.LC0.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC18.LC17.LC19.LC20.LC21.LC39.LC40.LC22.LC26.LC23.LC24.LC25.LC32.LC27.LC28.LC29.LC30.LC31.LC33.LC34.LC35.LC36.LC38.LC37.LC150.LC149.LC148.LC147.LC146.LC145.LC144.LC143.LC142.LC141.LC139.LC140.LC137.LC138.LC134.LC135.LC136.LC133.LC129.LC130.LC131.LC132.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.LC120.LC121.LC122.LC123.LC124.LC125.LC126.LC127.LC128.LC152.LC151.LC153.LC154.LC158.LC159.LC157.LC161.LC160.LC163.LC162.LC167.LC166.LC165.LC169.LC168.LC170.LC171.LC172.LC173.LC174.LC175.LC176.LC177.LC178.LC179.LC180.LC181.LC182.LC183.LC184.LC185.LC186.LC187.LC188.LC189.LC190.LC191.LC192.LC193.LC194.LC195.LC196.LC197.LC198.LC199.LC200.LC201.LC202.LC203.LC204.LC205.LC206.LC207.LC208.LC209.LC210.LC211.LC215.LC212.LC216.LC217.LC213.LC214.LC218.LC220.LC221.LC219.LC223.LC222.LC224.LC225.LC226.LC227.LC228.LC229.LC230.LC231.LC232.LC233.LC234.LC235.LC236.LC237.LC238.LC239.LC240.LC241.LC242.LC243.LC244.LC245.LC246.LC247.LC248.LC249.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_enc_str_new_staticrb_str_cat_cstrrb_str_catrb_str_vcatfrb_str_catfrb_write_error_strrb_sourcefilenamerb_sourcelinerb_str_appendfwriteruby_vsnprintffputsruby_descriptionruby_snprintf__stack_chk_failrb_funcallrb_intern2exc_causerb_attr_getrb_backtrace_prb_backtrace_to_str_aryrb_name_err_mesg_newruby_xmalloc2rb_cNameErrorMesgrb_data_typed_object_allocrb_gc_mark_locationsrb_eSystemCallErrorrb_obj_is_kind_ofrb_const_getrb_respond_torb_equalrb_scan_argsrb_iv_setrb_call_superrb_check_to_intrb_backtrace_to_location_aryrb_obj_classrb_protectrb_set_errinforb_check_funcallst_lookuprb_mErrnorb_define_class_underrb_eEINPROGRESSrb_define_constst_add_directrb_eEAGAINrb_eEWOULDBLOCKrb_ruby_verbose_ptrrb_stderrrb_io_putsrb_obj_clonestdoutrb_num2intrb_fix2intrb_obj_as_stringrb_str_buf_newrb_class_namerb_str_buf_appendrb_cFalseClassrb_str_duprb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolrb_Stringrb_compile_warnrb_compile_warningrb_warnrb_warningrb_bug_reporter_addrb_bugruby_current_threadrb_sourcefilerb_vm_bugreportabortrb_bug_contextrb_bug_errnostrerrorrb_async_bug_errnostrlenrb_compile_bugrb_builtin_type_namerb_builtin_class_namerb_obj_classnamerb_typeddata_inherited_prb_typeddata_is_kind_ofrb_exc_newrb_str_newrb_exc_new_cstrrb_exc_new_strrb_string_valuerb_eSyntaxErrorrb_compile_error_with_encrb_compile_errorrb_compile_error_appendrb_vsprintfrb_eLoadErrorrb_ivar_setrb_exc_raiserb_name_errorrb_id2symrb_eNameErrorrb_class_new_instancerb_name_error_strInit_Exceptionrb_cObjectrb_define_classrb_eExceptionrb_define_singleton_methodrb_define_methodrb_eSystemExitrb_eFatalrb_eSignalrb_eInterruptrb_eStandardErrorrb_eTypeErrorrb_eArgErrorrb_eIndexErrorrb_eKeyErrorrb_eRangeErrorrb_eScriptErrorrb_attrrb_eNotImpErrorrb_cDatarb_eNoMethodErrorrb_eRuntimeErrorrb_eSecurityErrorrb_eNoMemErrorrb_eEncodingErrorrb_cEncodingrb_eEncCompatErrorst_init_numtablerb_define_modulerb_define_global_functionrb_enc_raiserb_enc_vsprintfrb_raiserb_check_typeddatarb_inspectrb_any_to_srb_str_new_cstrrb_f_sprintfrb_ary_new_from_valuesrb_check_backtracerb_get_backtracerb_method_basic_definition_pruby_vm_event_flagsrb_threadptr_exec_event_hooksrb_exc_set_backtracerb_invalid_strrb_locale_encodingrb_enc_str_new_cstrrb_num2longrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_loaderrorrb_loaderror_with_pathrb_notimplementrb_frame_this_funcrb_id2strrb_fatalrb_exc_fatalrb_check_typerb_syserr_new_strrb_syserr_new__errno_locationrb_syserr_failrb_syserr_fail_strrb_sys_failrb_sys_fail_strrb_syserr_fail_path_inrb_sys_fail_path_inrb_mod_sys_failrb_extend_objectrb_mod_sys_fail_strrb_mod_syserr_failrb_mod_syserr_fail_strrb_sys_warningrb_str_set_lenrb_sys_enc_warningrb_load_failrb_str_buf_new_cstrrb_error_frozenrb_error_frozen_objectrb_check_frozenrb_error_untrustedrb_check_trustedrb_check_copyablerb_safe_levelInit_syserrU:��������h;��������y*���������<���������;���������=���������+���������>���������,���������-���������<��������&:��������.@��������C,��������H<��������V=��������e-��������j<���������A���������B���������*���������<���������+���������>���������.��������C��������$D��������/E��������@*F��������G/��������LG��������WE��������}H���������������"�� 0��������%J��������6Wtx1��������}J���������t�T�2���������J���������T�D3��������J��������+DG<h4��������mJ��������{<�,�5���������J���������,�|�L��������M��������6��������J��������'|bP���������*Q���������#���������R���������l*T��������U��������#d0L��������D\UV���������W���������d�2���������J���������d�2���������J���������l�X��������7��������J��������'\=I��������]8��������kY��������z9��������Z���������6���������Z���������[���������4���������Z��������"3��������'Z��������i\���������[���������5���������Z���������$�L��������	:��������	J��������'	$P	^��������[	^��������k	�	�	_���������	^���������	^���������	;���������	J���������	
<��������
J��������

6
`��������K
a��������g
a���������
L���������
X���������
X���������
L��������4�>b��������I*T��������V*c��������^d��������te���������7���������f�����������g���������*c���������f���������h���������i����������b��������J=��������YG��������jH��������s>���������?��������)@��������5A��������=B��������EC��������MD��������UE��������]F��������eG��������mH��������uI��������}J���������K���������L���������M���������N���������O���������P���������Q���������R���������S���������T���������U���������V���������W���������X���������Y���������Z��������[��������
\��������]��������^��������%_��������-`��������5a��������=b��������Ec��������Md��������Ue��������]f��������eg��������mh��������ui��������}j���������k���������l���������m���������n���������o���������p���������q���������r���������s���������t���������u���������v���������w���������x���������y���������z��������{��������
|��������}��������~��������%��������-���������5���������=���������E���������M���������U���������]���������e���������m���������u���������}����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
���������������������������%���������-���������5���������=���������E���������M���������U���������]���������e���������m���������u���������}����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
���������������������������%���������-���������Pj��������s*k���������l���������m���������*n�����������������$G��������:C��������F*o��������\C�������������������G���������H���������4�L���������p��������q��������(5��������-J��������74�r���������s�������������������<���������t���������u���������*���������<���������u�����������������	<��������7*v��������\t��������s*x���������*y���������*z���������*{���������*|����������L���������9���������J��������
L��������?*|��������g*v���������*{���������*y���������*x���������*z��������"j���������j���������j���������?��������dj���������?��������������g*���������v���������~A������������������W*���������f���������nA������������������������������������������������������)���������3���������?���������D���������_���������q������������������������������-������������������������������������������������ ���������
 ��������� *F��������! ���������1 ���������B ���������L ���������] "�g ���������l ���������x ���������� ���������E!���������o!"|�!����������!����������!���������"���������#"����������"����������"����������"��"����������"J��������#�$#���������X#���������_#�{#I���������#����������#J���������#��#*����������#*����������#���������0$-��������5$<��������=$?��������Q$r��������]$-��������h$<��������v$B���������$*����������$����������$����������&����������&*����������&����������&���������&����������&����������&����������&J��������'���������'����������'����������'*����������'����������'���������q(����������(*����������(����������(����������(����������(*����������(����������(*����������(*����������(����������(����������(���������)���������)���������)���������1)���������6)���������I)0��������N)���������a)<��������f)���������y)���������~)����������);���������)����������)����������)����������)����������)����������)K���������)1���������)����������)����������)����������)*���������
*���������*���������**5��������/*���������C*���������H*���������R*���������W*���������^**���������h*���������p*���������w**���������~*����������*����������**����������*����������*����������**����������*����������*����������**����������*����������*����������**����������*����������*����������**����������*���������	+���������+*���������+���������#+���������*+*���������4+���������<+���������C+*���������J+���������V+���������]+*���������h+���������p+���������w+*����������+����������+J���������+����������+����������+����������+*����������+����������+����������+*����������+����������+���������,4��������,���������,*���������,<��������%,d��������,,*Q��������8,O��������B,���������K,���������b,���������g,���������{,����������,����������,����������,����������,����������,����������,����������,����������,*����������,����������,���������-3��������-���������-���������-���������-*���������(-���������0-���������7-*���������A-���������I-���������P-*���������[-���������c-���������j-*���������q-���������~-*����������-d���������-*����������-����������-����������-��-����������-*T���������-����������-����������-2���������-����������-���������.���������.7��������.���������.*c��������%.����������.����������.����������.���������n/���������y/����������/����������/����������/����������/*����������/"<�/���������0���������)0#��������60���������v0*����������0_���������0����������0w���������0����������0���������1���������1<��������K1t��������V1B��������y1����������1����������1����������1*v���������1`���������1*x��������2*|��������#2*z��������32*{��������C2*y��������w2^��������~2*Q���������2#���������2����������2#���������2����������2X�������� 3M���������3M���������3����������3*����������3"���������3���������4�^4���������m4*���������w4*����������4*����������4*v���������4���������5*���������5*���������(5;��������-5J��������75�C5*y��������N5���������c5I���������5*x���������5*z��������6���������~6����������6*{���������6*|���������66���������6���������7���������
7*���������7���������=7^��������G7*T��������h7���������o7Y��������v7L�7V���������7����������7q���������7����������7����������7����������7[���������72���������7Z��������87��������8J��������'8L48���������I8���������S8>��������_8���������g8>���������8����������8Y��������"9�,9b���������9p���������9����������9����������9���������3:���������?:*���������F:��������P:����������:����������:����������;����������;����������;����������;����������;���������;*����������;����������<����������<*����������<����������<���������
="|=���������%=��������/=*���������9=���������k=��������r=����������="��=���������=��������� >���������E>���������e>����������>���������>����������>���������>����������>���������>���������>���������?���������?���������+?���������3?���������S?���������s?����������?���������?���������?	���������?����������?����������?���������@���������@��������1@���������D@���������o@���������w@����������@����������@����������@����������@����������@����������@���������A���������	A���������wA����������Aj���������A����������A���������B
��������B>��������B?���������B����������Bj��������$C���������+C���������5C
��������?C>��������GC?���������C����������C���������C<���������CB���������C���������C*����������C���������#D*���������*D
��������4D���������OD*v��������[D*x��������gD*y��������sD*z��������D*{���������D*|���������D���������VE���������fE*���������qE��������{E����������E����������E���������E>���������E?���������EB���������ED���������EE���������EF��������FC�������� FH��������1FI��������BFJ��������SFK��������dFL��������uFG���������FM���������FN���������FO���������FP���������FQ���������FR���������FS���������FT��������GU��������GV��������0GW��������AGX��������RGY��������cGZ��������tG[���������G\���������G^���������G]���������G`���������G_���������Gc���������Gb���������Ga��������
Hd��������Hh��������/Hg��������@Hf��������QH��������bHe��������sH����������H����������H����������H����������H����������H����������H����������H����������H���������I���������I���������.I���������?I���������PI���������aI���������rI���������I����������I����������I����������I����������I����������I����������I����������I���������J���������J���������-J���������>J���������OJ���������`J���������qJ����������J����������J����������J����������J����������J����������J����������J����������J���������
K���������K���������,K���������=K���������NK���������_K���������pK����������K����������K����������K����������K����������K����������K����������K����������K���������	L���������L���������+L���������<L���������ML���������^L���������oL����������L����������L����������L����������L����������L����������L���������L~���������L}��������M|��������M{��������*Mz��������;My��������LMx��������]Mw��������nMv��������Mu���������Mt���������Ms���������Mr���������Mq���������Mp���������Mo���������Mn��������Nm��������Nl��������)Nk��������:Nj��������KNi��������\NA��������oN��������}N���������N���������N���������N���������N���������N���������N���������N���������N���������N��������O��������O��������&O@��������7O��������EO ��������?���������C��������I��������>I��������iL���������L���������L���������L��������	L��������0L��������YL���������L���������L���������L��������5N���������S��������	]��������a��������hw���������}��������vt���������(���������(���������(�(!(R!(
"����������"I��������8#���������<.����������6Z��������P>���������z>����������>��������� )��$,PX(��(�(���(���
D�L
p
x��
��������0�8�d�l����B���B�B��$B,�P�X��������4���44�D4L�p�x��������9�9098�d9l������������I$�,IPIX��I����������	�	5D	�L	5p	5x	��	5�	��	��	-	
�
-	0
-	8
�
d
-	l
�
�
�
�
�
�
�
�
�
�$,�P�Xn���n�n�2�n�22�D2L�p�x���������
�
�0
�8
=d
�l
=�
=�
��
=�
��
��
�$�,�P�Xq���q�q�4�q�44�D4L�p�x�����������0�8�d�l������������H$�,HPHX� �H�� �� �V!�� �V!V!�!DV!L�!p�!x("��!�("�("�^"("^"0^"8�"d^"l�"��"�
#��"�
#�
#�<#$
#,<#P<#X�#�<#��#��#��$��#��$�$Q%D�$LQ%pQ%x&�Q%�&�&��&&�&0�&8'd�&l'�'��'�'��'��'��($�',�(P�(X@.��(�@.�@.��.�@.��.�.�/D�.L�/p�/x0��/�0�0�O20O20O28Y2dO2lY2�Y2��2�Y2��2��2��3$�2,�3P�3X�3��3��3��3��6��3��6�6�6D�6L�6p�6x�6��6��6��6�7�67078T:d7lT:�T:�;�T:�;�;��;$;,�;P�;X�;��;��;��;��<��;��<�<�=D�<L�=p�=x)>��=�)>�)>�T>)>T>0T>8�>dT>l�>��>��>��>��>��>�?$ �>, ?P ?X 7?� ?� 7?� 7?� W?� 7?� W?!W?!w?D!W?L!w?p!w?x!@�!w?�!@�!@�!H@"@"H@0"H@8"{@d"H@l"{@�"{@�"�@�"{@�"�@�"�@�"�@$#�@,#�@P#�@X#
A�#�@�#
A�#
A�#:B�#
A�#:B$:B$jCD$:BL$jCp$jCx$�C�$jC�$�C�$�C�$�C%�C%�C0%�C8%�Dd%�Cl%�D�%�D�%�D�%�D�%�D�%�D�%�D$&�D,&�DP&�DX&�D�&�D�&�D�&�D�&�E�&�D�&�E'�E'TOD'�EL'TO $ % & '����������������������������� 4 H0�����,�X�xP�����@���8@P�d��P����$@X�|0	�� 8�dpx@�����0@l������@@�T�(���(� P@� `(
t`!��!�0"�`"��"�#@#H�#��$�`%�&��&	'(	�'D	�(�	@.�	�.�	�/�	 0 
P24
`2p
�2�
�3�
4�64�6H�6` 7�`:�;��;�<�<T>l0>�`>��>�?� ?�@?
`?0
�?L
 @l
P@�
�@�
�@�
�@�
A0@B�pC��C��C��D��D�D�D0�E.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.text.unlikely.rodata.str1.8.rodata.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@,!T,"l,#�,$�,%'�TO"@pY,-P3 P� = PT'8@�l�%,
Stwbtw�]@8�0,
Hy�Hy�|@h�0,�{�{��@��0,��|��|��@Ȓ0,�2�~�^�@��H,2p��.��f ;�H 6@@�H,N0H�.�v��v�Sv�'v�Wv�ev�xv��v��v��x� ���H�@���	,*��G-9	���00��eval.o/         1690381920  1000  135   100644  86984     `
ELF>�H@@-,

 "#$%H�GHH��t	H�@H�@�L�GM����H�L��H�0@��uH�����t
�����tnH�N(H�F H��H9�sI9�tH���DH9Pt2H��PH9�w�H���H��uH9��tH���H��u���H�@HH��t�H�GHH�@H�@�H�B ��H��HD����H�GHH��tH�@�L�GM����H�L��H�0���uH�����t
�����tjH�N(H�F H��H9�sI9�tH���DH9Pt2H��PH9�w�H���H��uH9��tH���H��u���H�@HH��t�H�GHH�@�H�B ��H��HD���ff.��H�H�H�H0H�P(H�@ H�yPH��H9�t
H��t�3���1��ff.�f�H�O(H�W H�G0H��H9�r�yf�H��PH9�vgH�PH��t��uH�����t�2����t�fD���tA��u�H�p0H�V��uH�����t�:����t�@��u�H�F��fD1��DH�@0H���ff.�@��H�L�L���:���H��tH�ÐI������H��H�L�L������H��t)H�8H��tH�����H���fDI����ff.�@H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$H�D$ �D$0H�D$�H���H����@��SH���H��[H����ATUSH��H�� H�?L�&H��tJH���H�GH��o�oO)$)L$��|$�H�$1�H�|$��H�;L�eH��u�H�� []A\��AWAVAUATUSH��H�H�01�H�t$H����H���H�T$0H�|$H��$H�L$@H�
�H��$H�BH�D$04H�H1��H�H�HH�`H��H����D$,H�D$H�\$H��$H�H�wH�C1��H�H�|$H�CH�D$H�cH�@x�H��$H�T$H����D$,H��[]A\A]A^A_�f���H�T$�BH�BH�D$,���t�������fDS�H�5H��H��tH��1�1��H��H�C[�f��H�=�H��H�����AWI��AVAUA��ATUSH��H��H�-H����L�%M����E����E�u�J��D�t$M��H�$M�l�I�>�I���M9�u�HcD$H��M�,I�D�H+$I��f�I�}H�ٺH��1�I���I�}H��L��1��M9�u�H��H��[]A\A]A^A_�f��
H�=�L�%H��H�M��� ����H�=�I��H��������D���D��AWA��AVAUATI��UH��SH��L�-M����L�5M����A�_�E������M��I�D�H�D$f�I�?�I���L9|$u��Hc�H��L��M�<�1���I�?�I�?H��L��1�����u�H��H��[]A\A]A^A_�D�H�=�L�5I��H�M���@����	H�=A�_��I��H�E���%���t��V���fD��AWA��AVAUATI��UH��SH��L�-M����L�5M����A�_�E������M��I�D�H�D$f�I�?�I���L9|$u��Hc�H��L��M�<�1���I�?�I�?H��L��1�����u�H��H��[]A\A]A^A_�D�H�=�L�5I��H�M���@����H�=A�_��I��H�E���%���t��V���fDUH��SH��H��H�vH��u[�����t	��uyH�[H�5H��tLH���H��tH��H��H�5�<H��[]�fDH��[]�f�����f��H�=�H��H��H���H�5H��H�H�81����UH��SH��H����u	H�����u"�H���H��H���H��H��[]����u���@��AUI��ATI��U��SH�����qH��H�L9 ub1�E1�H��tF�H�kH��uH��tH��H���M��LD�H�[ H��u�M��tH��L���H��H��[]A\A]�H��L��L���[]A\A]�f���USH���H���H��t7H���+�H�sH��uH��tH���H�[ H��tH�{ u�H��H��[]���UH��SH��H����u	H�����u"�H���H��H���H��H��[]����u���@��H���H��t
H��H�����H���fD��H�H�H�H0H�P(H�@ H�yPH��H9�t9H��t4H���{�H��tH��H���f.��H���fD��f.���H������H��u�H���@H��H���@U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f���H�ATUSL� I�|$puH�[]A\H�������1�H�=H���I�T$pH���[]A\����f.�UH��SH��H�H�t$H����H�|$���tU@��tn@�����������H����@����H�}H�������H�|$�H�D$H�L$H��H���H��[]�H�����u�H����H��u�H�H�8�@�
H�=�H��H��6����H�H�8�c����H�t$H���H��[]�@H�H�8�;���f�H�H�8�#����H�H�8�����H�H�8�����AUI��ATUS��H����������`H��H��[]A\A]����FL�&�H�H�H��pI9�t�A��u#I�����tH�H�I9D$��DI�M�
L���H��H��4�����y���H�H��H�0�H��tz���Y���I�uH������H��H��[]A\A]��L�&I��tg���H���L���H��tqH��H�H�8�H��H�H��H�0�H�����H�H�5H�81��f���f�L������1������1����H�H�5H�81����H��H�I��L�L���3�H��tH�8H��tL��H�����f�I����H�H�5H�81��ff.�@AWAVAUATUSH��hH�T$8�D$LH�D$8H�|$�t$0H�L$H�D$H����H�D$8H����H�|$4��H�|$8H�D$H9�tH��tH�T$H�5��H�D$H������D$LH�D$8H����H�
H�D$8H�H;�p�����H�\$H��$�H��$`HDŽ$�4H�
lH���H�\$ H��$�H��$xH�BH�H1��H�H�HH�`H���H�|$�����H�|$8�H����H�|$����H�L$ �AH�AH��t�H��$xH�t$ H���H�D$8H��tH�D$8H�\$H���H�����u;H�|$����b�|$0tH����tH��h[]A\A]A^A_�H�D$H��H�|$H��t�H�H�0�H��u�H�D$H��$�H��$`HDŽ$�4H�D$8H�H�0H���H��$�H��H�t$(H��$XH�BH�X1��H�H�HH�`H���H�D$H�|$8Hǀ�H�t$H�|$H�D$H�D$8H����D$L����H�|$8�H�L$H�T$H��1�H�=��H��$XH�L$(H������H�1�1�H�8�H�|$4H�D$8����H�|$8H�5�H���-���H�|$�{�H����H�H�|$8H9��	���H�������H�5����H������1���H�H�2H9p����H�|$8���H�������H�
H�D$H�D$8H�H9�p�H�|$8H�T$���H�|$8H�T$����p���H��H�D$8H�D$8��oH�D$8H������H�|$4����H�D$8�$�����H�D$(�PH�@H�T$������H��$XH�T$(�|$H���u#H�H�t$H�H��`H9��H�|$�H��T$H�H���H�xH�����H�D$H�D$8�u*H�D$8H�����tH�D$8H�����t
H�D$8H���tH�|$8�H�D$8H�|$8H�T$���H�|$8H�t$�(�������H�L$H�A��������o���H�A0H�|$PH�L$X�D$P�H�D$`H�@ H�D$pH�D$hH�D$8H�D$xH��$�HDŽ$�4DŽ$������H�D$8H������H�|$8�H�T$H��H�=1������H�D$8����H�D$H���=���H�H�L$H�H��H��`H���H��H�H���H�xH�H����D$LH�|$8�D$4�L�D$�L$4H��1�H�T$H�=�w��V���H��H�H���H�xH���ATH��US��H��H�-H�t$H�D$��L�eH��L������H�}��A�D$<H���H��H��f���AWAVAUI��ATI��USH��H�H�H�x0�H���PH�x �-�L���H�H��txH��L���I��H����H�H��ttH��L���I��H����L��L���H��H����L��H���H��H��[]A\A]A^A_���H�=�H��H��h����H�=�H��H��l����K�H��L��H��I����E���D�H��M���7H�@H�݃�uH�����tH��ƒ���t	�̀H�H�5H����L��H���H�5H���uL��H���L��L��H���L��L���H���?H��tb�u^H�����tV�H�ǃ���uIH;Xu0���fD��u3H�����t*�
H�׃���uH;Z�����H�WH��u�f.�H��u
H������H��H���H�kI��H�D$H�@L�h@H��u,�DI�G1�H�AH�mM��L�h@H���^@��u(H�����tH�E������t��@H�Ef.�I�wH���I��H��t�L���L��L���M�gL��A��u�I������y���L��L��L�$$�H�$���^���I���`H��`�N���I�$��`H��`�=���L��L���H�$�)������H��L��H��I����!���DH���H��L���L�kA�������I����������L��H����������H���`H��`�����I�E��`H��`�o���L��H����_���fDH�T$L��L������L��� ����H�=�H��H��k����H�=�H��H��0���H��������@H�����H�H�5H�81��H�H�5H�81��@��AVAUATI��UH��SH���t��H�H�HE�H��L�-�I��@��uH�����tH�E����H�LD�L���M��M��H��H��H�5L��1��f���AUATL�%UH��SH��H���I���uH�����tH�����H�LD�H���M��L��H��H��H�51��f���AVAUATI��UH��SH���t��H�H�HE�H��L�-�I��@��uH�����tH�E����H�LD�L���I��M��L��H��H�5L��1��f���AUI��� ATI��USH���H��H�H�H�xpt6H�H�-L�+L�cH�C��CH�]H��[]A\A]�fDH�H�-�����SH�H��t�H�{�H�[H��u�H�H��tf.�H�{�H�[H��u�[�ff.����1�H�5�H�=�������t
1���AWAVAUATUSH���H�|$�����H�H�T$ H��$H�D$ 4H��H�0H���H�t$H�L$0H��$�H�BH�X1��H�H�HH�`H����D$��H�H�ǀH�D$H�\$H��$�H���H��[]A\A]A^A_���H�|$�GH�GH�D$��u��@��H��t?H��t!H���H�t$@��u-H����1�1�H��t��@������H�t$��1�H��t��H���fD��H��H�|$H�|$�H�|$�O�H���f.���ATUH��SH����u	H�����u\�H���H�I��I������������������H���H�H��u�H��M��u	�@H���H�Ѓ���t���u[]A\�fD��t�H�߾��H�=�u&H�����tH�����t*��t%��H�HD��H�=��H�=��H�=��D��I��H��4t#H9�u�DH�5L���f�H��I�����H��t'H�L9�uH���f�H�5L��H���DI����ff.�@��PXH��H�|$H��tH�t$1ҿ�*�H�D$H�t$�4��������PXH��H�|$H��tH�t$1ҿ���H�D$H�t$������H��H�H�H�5H�81��f������f���UH��H��SH��hH�-H�5H�]H�C0H�xHL�H H��PL�GH�H�C0�@u-�H���`�H�}��C<H���H��H��H�s�����@��@t�H�|$0H�|$H�L$H�$�D$@H�\$H�D$ L�L$(L�D$8H�D$@H�D$P4�D$H�H�L$H�$�a���ff.���AUATUH��S��H������D�o�Ic�L�$�A��t#H�$4A�4H����L��H���I�����t�A�$����u�I�D$H��t�H�@����t�H�=��H�L��I��1�H�t$�����H�D$�I�D$L�$$H��tH�@�����u���E����I��4t,H�H�5H�81��H�$4A�4�:���H�L�L�����H��t$H�H�D$H��tH�l$�����1����I���־H�=�H��%���D���������H���H�H���H�xH�����H��H�H�H�x0�H����H��������S���t�H�=H��H���H��[�H�H�5H�81��ff.�������H�����tH���1ҾH�=����AWAVAUATUSH��xH�L��$`L��$hH�H�T$H�T$`H�C0H�|$H�=�H�t$H��$@H�D$0H��H�D$8H�D$@H���H�L$ H��$8H�BH�$H�D$`4H�t$pH�x1��H�H�HH�`H���H�|$1�H�L$��H�D$8H�<$H��$8H���H�D$8H��x[]A\A]A^A_����H�$�pH�@H�t$,��t�H�D$8H��tD�|$,�!H��$8H�$H���H��T$,H�H���H�xH����H�t$0H�<$��|$,u�H��$��D$H H�D$PH��$@H�D$Xf��D$H��/���ƒ�HT$X�D$HH�2H����H�$H���H��t�H�D$8H�|$tH�$H�|$ H�T$H��1���H�D$8H�D$@H�$H��H��$8H�������H�T$PH�BH�D$P�x���D��H�D$8H�$Hǀ�K���H��$8H�$H������ff.�@��H�E1�L�1�����AWAVAUATUSH��H��H�H�t$8H��$H�0H�T$(H��$0H�D$HH�F0H�|$0HDŽ$04H�D$PH���H�t$ H�D$XH���H��$�o�H�D$X�o��o�(H���H���o�8)D$`�o�HH�D$)T$p)�$�)�$�)�$��o�X�o�h�o�xH����o��)�$��o��)�$��o��)�$��o��H��$ H�B)�$�)�$�)�$)t$)�$H��$@H�X1��H�H�HH�`H����D$DH�|$H��$H�H�]H�G1��H�H�GH�D$0H�gH�|$8��H�D$HH�\$H�L$ foD$`foL$pfo�$�fo�$�H��$ �fo�$�fo�$�Kfo�$�fo�$�S fo�$�fo�$�[0fo�$fo�$H���H�D$Xc@kPs`{p��������H���H��$H���H�T$(H��t�D$D�H�D$HH��[]A\A]A^A_�fD��H�T$ �BH�BH�D$D�������H�t$PH�|$ ��������ff.����AWAVAUATUSH��8H�H�|$H��$0H�H�T$@H�T$PH�t$H���H�$H�D$ H�D$0H�D$0H���H���H�|$`H�=�H��$(H�BH�D$8H�L$HH�D$P4H�x1��H�H�HH�`H���H�|$1�H�L$��H�D$ �D$H�4$H��$(H�|$HH���H��H�D$(H�D$0H���1��T$@H�D$(H�4$H���D$��u6H�D$ H��8[]A\A]A^A_���H�$�PH�@H�T$��u��a���H��T$H�H���H�xH������H�H�H�x0���f���H�H�H�x0����f�USH���H���H��t �Ņ�u"H��H��H�=1�[]����H��[]Ð�H��t&H���H����H��H��[H�=1�]���f�H����H��1�[H�=]����AWAVAUATUSH��XH�H�D$H4H�8H���G<H�|$(�D$DH�\$H�D$P4H�D$X4H���WH���H�T$pH��$P�G<H��$�H�
�H��$HH�BH�D$p4H�H1��H�H�HH�`H��H���H���H�D$0H�\$8H�|$�H�D$HH�D$HH����H�D$HH��� H�D$H�w��������H�D$HH��� H�D$H�pH�@ H�8H������D��H�T$(�BH�BH���j���H�D$HH��4��H�D$PH��4tH�D$XH��4��@H��$HH�T$(H���H�D$H���D$D	B<H��X[]A\A]A^A_�����H�|$0��D$��D$�����kH�|$�n�|$�0H�D$H�@H�D$PH�D$PH��4�H�5H��u�H�=�H�H��H�|$1�1��H�D$XH��4��H�D$X�uH�D$XH�����tH�D$XH�����tH�|$X�H�D$XH����H�D$XH��� �JH�D$XH��H�D$`H�D$XH��� H�D$X�H�H����H�D$h�T�H�|$8����H�|$�mH�|$���H�H����DH�H�D$`H�D$hH�H�T$PH;uH�D$hH���rH�|$P�H�$H�D$hH���vH�D$hH�D$H�$H�H�T$�� ��H�$H�@�8#H�T$h��
HE$H�|$`H�$�H����H�T$`H��H�=H��H�D$H)�H�L$�H�|$��H�|$XH�T$1��H���H�<$�vH�|$��H�T$hH�t$H�D$`H�|$XH��H+T$H)��H���H�T$`H�D$h�|�
�����SH�D$HH�������H�D$HH��� H�D$H��H�H����H�D$H�H�D$PH9H�D$�D$H�������H��
H�$H�D$ �kf�H��H�$H�4�@��uH�����t������?H�<$���|$��H�|$H�$	��H�L$H9$�6���H�D$HH��� H�D$Hu�H�@ �fDH�x�����H�������H�������H�$�H�<$�����aH�4$H�=������H�=����H�H�����H�=�H�<$�H�=��a���@H�$����fDH�t$ H�=1��=��H�D$H��H�$���H�=1�������DH�@H�D$�3���H�=�H�D$H�|$X�}���H�=�H�<$�H�=��d���f.��H�=����f.�H�<$���x���H�@���H�D$XH�@���H�D$H���H�4$��H�=1��J�����H�H�������H�=1��&���n���H�H����H�H����H�H����@���g������H�����uH����E�����ff.�AUA��ATUSH��L�%I�,$H�������D�������H�
��Hc�H�>��fDI�$H��H�H�0H���H��tVH��H�5�H�Ǩ�D���H���H����[]A\A]��H�����[]A\A]�fDH�H��H�0�H��t!H��H�5��H��u���+�����@���H�=��m���f.��k���H�=���H���D�K���H�=���(���D�+���H�=������D����H�=�����D���H�=1����������������D��H�=1����AW1�AVAUATUSH��H�D$HH�D$��D$$H�H�T$0H��$H�D$04H�
�H�H��H�\$H�D$(H���H�t$@H��$H�BH�H1��H�H�HH�`H��H���H�\$H�D$H�t$H�=����H�t$H�=���H��$H�L$�|$$H����H�D$(H�T$H��H��[]A\A]A^A_���H�D$�xH�@H��t�H��$H�t$H�������H�D$H��tH��H�D$(H�t$H�D$0H����:���ff.�@AWAVAUATUSH��H��H�H�T$H��$�H�D$4H�0H���H�t$H�|$ H��$�H�BH�X1��H�H�HH�`H����H��$�H�L$H�����H��[]A\A]A^A_���H�|$�GH�GH��u����H���3����H�H�HǀH�����AWAVAUATUSH���|$H�|$(H�t$H�D$(�H�H�L$0H��$H�D$04H�=�H�H���H�\$H�t$@H��$H�AH�x1��H�H�pH�`H���H�H��$H��H��H�
xH�H1��H�H�t$�|$H�PH�`�H�D$(H�t$H��$H���H�D$(H��[]A\A]A^A_���H�D$�HH�@H�L$��uH��h��������|$�b���H�H�H������AWAVAUATUSH��H��|$LH�8H��H�<$H�D$H�H�D$ �H�<$H��H�D$H�H�D$ �H�H�T$`H��$H�D$`4H�
GH�0H���H�t$(H�\$pH��$8H�BH�H1��H�H�HH�`H�H���H�D$ H�$H��$H��H�L$H��H�{H�A1��H�H�AH�� H�aH�D$H�Ѕ��%H�$H�t$(H�|$XH��$8H��H���H������ǃ0���H�D$XH�\$�H�5H��$@H��$HDŽ$@4H�
_H�H���H�\$0H��$PH��$H�BH�H1��H�H�HH�`H�$H���HH�D$H�$H��$H�\$H��H��H�C1��H�H�CH�c���H��$H�T$0H��$H�=pHDŽ$ 4H���H�$H��$ ǀ�H��H�D$PH�H�0H���H�t$8H��$0H��$�H�BH�x1��H�H�HH�`H���H�$H��$H�L$H��H��H�A1��H�H�AH�a�H�D$XH�$�|$LH��H��H�D$�K����D$LH�$�D$HH�D$@HcD$H�D�PH�D$H�����tv�uH�H�D$�D$����t^H�D$@H�|$H�D$H�H�0�H���*H�D$@H�|$H�D$H�H�0�H���Q�D$L��u�D$L�|$���D$H�$H��H�t$�H�H�HǀH�$H��H�L$�H�5H�$H�>H��H�\$�H��$�H�T$8H���H�$H��H�|$��H�$HH�D$H�D$ H�8��D$�����D$LH��[]A\A]A^A_�fD�D$�����H�L$8�AH�AH��uyH�$HH�D$����D��H�t$(�FH�FH���8���������H�T$0�BH�BH���	�������H�$�|$HH�D$��G����T$L��������D$L���H�<$1��������H�$HH�D$���H�$HH�D$���H�$HH�D$�H�$H�|$H�5HH�D$�H��H�$HH�D$@��t\��D$L�D$����H�$H�|$H�5HH�D$�H��H�$HH�D$@��t��D$��������ff.���PXH������f.���SH��H��H�t$���tH������H��[Ð1���D$H��[�ff.�@��H�L�M�J0�@I�J(I�R I��PH��I9�s
L�����H��t��D��AWAVI��AUI���ATL��USH��H����H���I�nH���I��xL��H���H��H���HH��tY�uUH�����tMH�‹����u@H;^u1����u)H������t �9H�ʃ���uH9Y�cH�JH��u���aH���H��I��H�@L�h@�L���H�C H�[I�G I9��	M��H��u7�@I�D$1�H�[H�BI��H��L�h@��I9���������u%H�����tH��ƒ���t��@H�f�I�t$H���H��H��t�L���L��H���I�l$H��@���y���H������l���H��L��H�l$�H�T$���O���I�$��`H��`�>���H�E��`H��`�-���H��L���H�T$����DI�~H��L��L��[]A\A]A^A_�H����������H��ƒ����������@H��v�������H��I�F�u@H�����t8H��L�����u)I���`H��`uH�E��`H��`tH��L���DL��������o����H���H��I�F�tI�H%����I��d���@H�����t�H��L�����I�uH�ƒ�`H��`tI�n��@H��[]A\A]A^A_�H�U��`H��`t�H��L���I���@��H��H��H��H��H���1�H�����UH��SH��H��H���H��H������H�H�8H��[]���UH��SH��H���H�H�H�z0H�r(H�R H�OPH��H9�t0H�x u0H��t
H���u!H��H���H��H��[]�DH�x t�H�H�5H�81��f���UH��SH��H���I��H�H�L�P0H�P(H�@ M�JPH��I9�t-����H��u-M��tI9Zpu:H��L���H��H��[]��ӹ��H��t�H�H�5H�81��H�H�5H�81��ff.���H�5SH��H��tH��[��H�=�H��[H��H��ff.����AUI��ATA��UH��SH��H�H�H�{0�L��D��H��H�CPH�C0��H�HH��[]A\A]�f���SH���H��[H������SH��H��H���H��[����H�H�H���f.���SH��H��uH�H�H��[��H�H�0�H��u�H�H�5H�81��ff.����H�L�L���J���H��tH�ÐI������UH����H�5����SH�=H���1�H�5����H�=������H�5K��H�=������H�53��H�=�H�51�H�=�1�H�5Y��H�=�1�H�5���H�=�1�H�5����H�=�H������H�н��H�5H�;�H�;�����H�����H�5�H�;�H�����H�5�H�;�H����H�5�H�;�H�����H�5�H�;�H���H�5�H�;�H�;���H�5�H�-H�5H�}�H�}H�5���H�;1�H�ҿ��H�5�H�;�����H����H�5��H��������H�r���H�5H����H����H�����H�5H���H������H�ع��H�5H�8�H�5�����H�=�H�5�����H�=�H�H�1�H�0��H�=�H�H��[]�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realigncompare_by_identityextend_objectextendedprepend_featuresprependedappend_featuresincluded__refinements__set_backtraceexception object expected$! not setException `%li' - %li
no block given__activated_refinements____refined_class____defined_at__ private protectedmoduleclassat_exitobjectClassModule%scausecalled without a block%li%li:%d:in `%li'%li:%d%d%s:%dmessage: unhandled exception
: 
 ()
	from %li
	 ... %ld levels...
: unexpected return
: unexpected next
: unexpected break
: unexpected redo
: unexpected throw
statussignoUnknown longjmp status %dassigning non-exception to $!$@$!raisefailglobal_variables__method____callee____dir__includeprependrefineusingmodule_functionnestingconstantsextendtrace_varuntrace_varexception reenteredwrong argument type %s (expected Module)main.include in the wrapped load is effective only in wrapper moduleexception class/object expectedException `%li' at %s:%d - %li
Exception `%li' at %s - %li
can't pass a Proc as a block to Module#refineundefined%s method `%li' for %s `% li'undefined method `%li' for %s `% li'method `%li' for %s `% li' is %sonly cause is given with no arguments: retry outside of rescue clause
main.using is permitted only at toplevelModule#using is not permitted in methodsModule#using is not called on selfGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx��0�D3X�l(�QHd
LI
G��G���E�L,�iB�A�A �G@Y AABH*B�B�B �B(�A0�A8�G��
8A0A(B BBBCTMA�l
CHpKF�E�B �E(�A0�A8�GP�
8D0A(B BBBJH�*F�E�B �B(�D0�D8�DP�
8D0A(B BBBFH*F�E�B �B(�D0�D8�DP�
8D0A(B BBBF4T�A�D�G z
NAKD
AAJ(�LE�D�G j
DAAH��F�E�D �C(�D0l
(D ABBED(I ABB$]E�A�D MDA(,LE�D�G j
DAAX*HR
FIxfpQ
OI�,HS
EG�WA�M
4�VM�A�A �S
ABK^AB4_A�D�D0�
AADq
AAELD�B�E�A �A(�F0\
(D ABBD�
(D ABBI�aHj
NL��B�B�B �B(�A0�A8�G��
8A0A(B BBBA NB�D�A �F0H$�F�B�B �E(�D0�A8�DP�
8D0A(B BBBH(p�F�B�B �D(�D0�$�gF�B�H �D(�G0(��F�B�B �D(�D0�8�xF�J�D �A(�D0B
(A ABBG,TE�NHH\Z�B�B �B(�A0�A8�G��
8A0A(B BBBA�jS Ti Y�&H ],��F�A�D ��
ABGqtY
CN
J0?EAD L?EAD h'H|��E�G�D�$�iF�B�A �D(�F@� �)H]BE�d
A 	4)HM
AHP�F�B�B �B(�A0�A8�G��
8A0A(B BBBH�L�F�B�B �B(�A0�A8�N��
8A0A(B BBBGL	mF�B�B �B(�A0�A8�G�
8A0A(B BBBAP	d	Hx	�A�A�D \
MAHD
AABV
IJGDHHL�	�B�B�B �B(�A0�A8�G��
8A0A(B BBBH
	(
%HM
ALD
�B�E�A �A(�D0�
(C ABBID
(H ABBGH�
qF�D�B �B(�A0�A8�G��
8A0A(B BBBDH�
�B�B�B �B(�A0�A8�N��
8A0A(B BBBA,0HcHDIF�B�B �B(�A0�A8�G��
8A0A(B BBBAL�BF�B�B �B(�A0�A8�G�j
8A0A(B BBBG�EAD$�AE�G a
ABOA$;d8LF�B�E �J(�D0�A8�GP�
8G0A(B BBBH�
8A0A(B BBBA� KT$�=E�D�O ^AA(��E�D�G M
DAF(
�E�D�G O
DAD8
DL�L
HU4X
WF�E�D �D(�D0u(A ABB�
E�L�
E�R�
�
TE�[
H�
(,�E�O�K �AA	!%9"Qj#��$��%��!�/�N�k��{�����3�������
�+�G�(V�r��Q���� ������;I]�irI�z�P*�z���M.	hG�d�K�	P�	H��J� *	 !	:JXz	tP*�	�	�z	�@
��	�	`c%pF /@
U�
y@
L��
�7��
��7�@].�U�z�L�����*��" f3�S�q�,���
��W�
	v
)	 
V5	v
R	�+�
_m		p�	��	�%"���	��	��	�a
�"
��!�?
	�H
�b
z
�N�
�
��
 ��
	@�
	8�
	0	(/�MNiN�����N�N�/	�9	�C�c$�$�I�&B�I�l �	x
l &
� H
� f
!�
!�
"�
"�
�"�"4�"N�"j#�#�7#�7#�N#�N#2$22$L�%d@$io	��%��%��%��%��%B&0B&MY&hY&��&��&�)�)�8)8)T,4T,M�-d�-��-��-�.�.��..��.7,6r#�.�P	�i,6�96�96�e6�e6�]8
p6�]8:�9X�9w�:��9���:��:��:�<<.bBHbBa�Bx�B��B��B�C�ClF6lFV�Ft�F��F��F�WG��F��WGH`G�$HZTH�	X�TH��H��H�H#�HG�Hi�H~�H�I�I�tI�tI�I0�IInL"#$%!`ej"o+t<yF~V�_��0�o�}�x����������������������!���@h
'/6<"C(�.F4L:c@hFzL�R�X�^�d�j�p�v�|����9�@����������%�F����@�`�~������������������$�*�0�6<BHTdy�

 &'(�������	!,DVeq|��������� 0>O[m��������
$9DN\iy���������-GYm|�������/>Tbo�������  4 B PgU n � ��� Px� � � �T� � 0� !P!!(!2!B!V!d!s!p j�!�!� &�!!��!�!�!"q�!�"?�!�"?"#'"""@#4"P#�B"P"�% \"�%)m"{"P&	�"`&)�"�"�&��"�" )�"�"@)�"`,m�"�-
#�-#/#9#@#O#]#m#06	~#@6%��#�#�#�#�#�#`8q�#�#�#�:0$$4$�:IA$V$ <Bc$z$�$�$�$�$%%5%pB?%�BAM%�B;`% CLt%�%�%�F=�%�%HD�%`HW&&�H!&4&I?& ITN&�I(c&�I�m&�&�&�&�&�&�&�&''*'5'D'U'_'�'��'�.annobin_eval.c.annobin_eval.c_end.annobin_eval.c.hot.annobin_eval.c_end.hot.annobin_eval.c.unlikely.annobin_eval.c_end.unlikely.annobin_eval.c.startup.annobin_eval.c_end.startup.annobin_eval.c.exit.annobin_eval.c_end.exit.annobin_frame_func_id.start.annobin_frame_func_id.endframe_func_id.annobin_frame_called_id.start.annobin_frame_called_id.endframe_called_id.annobin_prev_frame_func.start.annobin_prev_frame_func.endprev_frame_func.annobin_errinfo_place.start.annobin_errinfo_place.enderrinfo_place.annobin_errinfo_getter.start.annobin_errinfo_getter.enderrinfo_getter.annobin_errat_getter.start.annobin_errat_getter.enderrat_getter.annobin_warn_printf.start.annobin_warn_printf.endwarn_printf.annobin_rb_call_end_proc.start.annobin_rb_call_end_proc.end.annobin_exec_end_procs_chain.start.annobin_exec_end_procs_chain.endexec_end_procs_chain.annobin_ruby_exec_internal.start.annobin_ruby_exec_internal.endruby_exec_internal.annobin_hidden_identity_hash_new.start.annobin_hidden_identity_hash_new.endhidden_identity_hash_newrb_intern_id_cache.16468.annobin_rb_obj_extend.start.annobin_rb_obj_extend.endrb_obj_extendrb_intern_id_cache.16571rb_intern_id_cache.16572.annobin_rb_mod_prepend.start.annobin_rb_mod_prepend.endrb_mod_prependrb_intern_id_cache.16456rb_intern_id_cache.16457.annobin_rb_mod_include.start.annobin_rb_mod_include.endrb_mod_includerb_intern_id_cache.16436rb_intern_id_cache.16437.annobin_using_module_recursive.start.annobin_using_module_recursive.endusing_module_recursiverb_intern_id_cache.16502.annobin_rb_mod_append_features.start.annobin_rb_mod_append_features.endrb_mod_append_features.annobin_rb_mod_s_constants.start.annobin_rb_mod_s_constants.endrb_mod_s_constants.annobin_rb_mod_nesting.start.annobin_rb_mod_nesting.endrb_mod_nesting.annobin_rb_mod_prepend_features.start.annobin_rb_mod_prepend_features.endrb_mod_prepend_features.annobin_f_current_dirname.start.annobin_f_current_dirname.endf_current_dirname.annobin_rb_f_callee_name.start.annobin_rb_f_callee_name.endrb_f_callee_name.annobin_rb_f_method_name.start.annobin_rb_f_method_name.endrb_f_method_name.annobin_rb_threadptr_tag_jump.isra.4.start.annobin_rb_threadptr_tag_jump.isra.4.endrb_threadptr_tag_jump.isra.4.annobin_top_include.start.annobin_top_include.endtop_include.annobin_set_backtrace.start.annobin_set_backtrace.endrb_intern_id_cache.15945.annobin_make_exception.start.annobin_make_exception.end.annobin_errat_setter.start.annobin_errat_setter.enderrat_setter.annobin_setup_exception.start.annobin_setup_exception.endid_cause.annobin_rb_longjmp.start.annobin_rb_longjmp.endrb_longjmp.annobin_rb_mod_refine.start.annobin_rb_mod_refine.endrb_mod_refinerb_intern_id_cache.16539rb_intern_id_cache.16540rb_intern_id_cache.16541rb_intern_id_cache.16542.annobin_rb_print_undef.start.annobin_rb_print_undef.end.annobin_rb_print_undef_str.start.annobin_rb_print_undef_str.end.annobin_rb_print_inaccessible.start.annobin_rb_print_inaccessible.end.annobin_rb_set_end_proc.start.annobin_rb_set_end_proc.endephemeral_end_procs.annobin_rb_mark_end_proc.start.annobin_rb_mark_end_proc.end.annobin_Init_jump.start.annobin_Init_jump.endrb_f_at_exit.annobin_ruby_setup.start.annobin_ruby_setup.endinitialized.16084.annobin_ruby_executable_node.start.annobin_ruby_executable_node.end.annobin_ruby_exec_node.start.annobin_ruby_exec_node.end.annobin_rb_frozen_class_p.start.annobin_rb_frozen_class_p.end.annobin_rb_threadptr_setup_exception.start.annobin_rb_threadptr_setup_exception.end.annobin_rb_exc_raise.start.annobin_rb_exc_raise.end.annobin_rb_exc_fatal.start.annobin_rb_exc_fatal.end.annobin_rb_interrupt.start.annobin_rb_interrupt.end.annobin_rb_make_exception.start.annobin_rb_make_exception.end.annobin_rb_raise_jump.start.annobin_rb_raise_jump.end.annobin_rb_f_raise.start.annobin_rb_f_raise.endrb_f_raiserb_intern_id_cache.16263.annobin_rb_jump_tag.start.annobin_rb_jump_tag.end.annobin_rb_block_given_p.start.annobin_rb_block_given_p.end.annobin_rb_f_at_exit.start.annobin_rb_f_at_exit.end.annobin_rb_iterator_p.start.annobin_rb_iterator_p.end.annobin_rb_need_block.start.annobin_rb_need_block.end.annobin_rb_rescue2.start.annobin_rb_rescue2.end.annobin_rb_rescue.start.annobin_rb_rescue.end.annobin_rb_protect.start.annobin_rb_protect.end.annobin_rb_ensure.start.annobin_rb_ensure.end.annobin_rb_frame_this_func.start.annobin_rb_frame_this_func.end.annobin_rb_frame_callee.start.annobin_rb_frame_callee.end.annobin_error_pos.start.annobin_error_pos.enderror_pos.annobin_error_print.start.annobin_error_print.endrb_intern_id_cache.15965.annobin_ruby_error_print.start.annobin_ruby_error_print.end.annobin_ruby_init.start.annobin_ruby_init.end.annobin_error_handle.start.annobin_error_handle.enderror_handle.annobin_rb_exec_end_proc.start.annobin_rb_exec_end_proc.end.annobin_ruby_finalize_0.start.annobin_ruby_finalize_0.endruby_finalize_0.annobin_ruby_finalize.start.annobin_ruby_finalize.end.annobin_ruby_options.start.annobin_ruby_options.end.annobin_ruby_cleanup.start.annobin_ruby_cleanup.end.annobin_ruby_stop.start.annobin_ruby_stop.end.annobin_ruby_run_node.start.annobin_ruby_run_node.end.annobin_rb_frame_last_func.start.annobin_rb_frame_last_func.end.annobin_rb_using_refinement.start.annobin_rb_using_refinement.end.annobin_using_refinement.start.annobin_using_refinement.end.annobin_rb_using_module.start.annobin_rb_using_module.end.annobin_top_using.start.annobin_top_using.endtop_using.annobin_mod_using.start.annobin_mod_using.endmod_using.annobin_rb_refinement_module_get_refined_class.start.annobin_rb_refinement_module_get_refined_class.endrb_intern_id_cache.16511.annobin_rb_obj_call_init.start.annobin_rb_obj_call_init.end.annobin_rb_extend_object.start.annobin_rb_extend_object.end.annobin_rb_mod_extend_object.start.annobin_rb_mod_extend_object.endrb_mod_extend_object.annobin_rb_errinfo.start.annobin_rb_errinfo.end.annobin_rb_set_errinfo.start.annobin_rb_set_errinfo.end.annobin_rb_rubylevel_errinfo.start.annobin_rb_rubylevel_errinfo.end.annobin_Init_eval.start.annobin_Init_eval.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC8.LC7.LC9.LC10.LC12.LC11.LC13.LC15.LC16.LC14.LC19.LC21.LC20.LC18.LC17.LC23.LC24.LC22.LC26.LC25.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC36.LC35.LC37.LC38.LC39.LC40.LC43.LC45.LC44.LC46.LC50.LC49.LC47.LC48.LC42.LC41.LC57.LC58.LC51.LC53.LC52.LC55.LC54.LC56.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_ruby_current_threadrb_get_backtracerb_vsprintfrb_write_error_strrb_call_end_procrb_ary_newrb_proc_callruby_xfreerb_set_safe_level_forcerb_iseq_eval_mainrb_fiber_startrb_hash_newrb_funcallrb_intern2rb_check_typerb_error_arityrb_attr_getrb_hash_foreachrb_obj_classnamerb_eTypeErrorrb_raiserb_include_modulerb_vm_crefrb_cModulerb_mod_const_atrb_mod_const_ofrb_const_listrb_mod_constantsrb_ary_pushrb_prepend_modulerb_current_realfilepathrb_file_dirnamerb_id2symrb_cObjectrb_warningrb_backtrace_prb_method_basic_definition_prb_backtrace_to_str_aryrb_check_funcallrb_cFalseClassrb_cFixnumrb_exc_set_backtracerb_cSymbolrb_cFloatrb_cTrueClassrb_cNilClassruby_current_vmrb_eSysStackErrorrb_eExceptionrb_obj_is_kind_ofrb_check_string_typerb_eRuntimeErrorrb_exc_new_strrb_eArgErrorrb_ivar_setrb_sourcefilerb_sourcelinerb_threadptr_set_raisedrb_threadptr_reset_raisedrb_ruby_debug_ptrruby_vm_event_flagsrb_eSystemExitrb_obj_as_stringrb_obj_classrb_exc_newrb_ivar_definedrb_vm_backtrace_objectrb_obj_duprb_threadptr_exec_event_hooksruby_vm_sysstack_error_copyrb_vm_control_frame_block_ptrrb_hash_lookuprb_yield_refine_blockrb_module_newrb_hash_asetrb_include_class_newrb_class_remove_from_super_subclassesrb_class_subclass_addrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_print_undefrb_class_namerb_id_quote_unprintablerb_name_errorrb_print_undef_strrb_str_quote_unprintablerb_name_error_strrb_print_inaccessiblerb_set_end_procruby_xmallocrb_safe_levelrb_mark_end_procrb_gc_markInit_jumprb_define_global_functionruby_setupruby_init_stackInit_BareVMInit_heapInit_vm_objectsInit_frozen_stringsrb_call_initsruby_prog_initruby_executable_noderb_fix2intruby_exec_noderb_frozen_class_prb_ivar_getrb_error_frozenrb_threadptr_setup_exceptionrb_exc_raiserb_exc_fatalrb_interruptrb_eInterruptrb_make_exceptionrb_raise_jumprb_get_kwargsrb_jump_tagrb_block_given_prb_block_procrb_iterator_prb_need_blockrb_vm_localjump_errorrb_rescue2rb_vm_rewind_cfprb_rescuerb_eStandardErrorrb_protectrb_ensurerb_frame_this_funcrb_frame_calleerb_sourcefilenamerb_id2strmemchrrb_write_errorrb_str_subseqrb_write_error2ruby_error_printruby_initrb_iv_getrb_eSignalrb_obj_is_instance_ofrb_num2intrb_bugrb_exec_end_procrb_trap_exitrb_clear_trace_funcruby_finalizeruby_sig_finalizerb_gc_call_finalizer_at_exitruby_optionsruby_process_optionsruby_cleanuprb_threadptr_interruptrb_threadptr_check_signalrb_thread_terminate_allrb_threadptr_unlock_all_locking_mutexesrb_thread_stop_timer_threadruby_vm_destructruby_default_signalrb_threadptr_execute_interruptsruby_stopruby_run_noderb_frame_last_funcrb_using_refinementrb_gc_writebarrier_unprotectrb_hash_duprb_using_modulerb_clear_method_cache_by_classrb_refinement_module_get_refined_classrb_obj_call_initrb_funcallvrb_extend_objectrb_singleton_classrb_errinforb_set_errinforb_rubylevel_errinfoInit_evalrb_define_virtual_variablerb_f_global_variablesrb_define_methodrb_define_private_methodrb_cClassrb_undef_methodInit_vm_evalInit_eval_methodrb_define_singleton_methodrb_vm_top_selfrb_mKernelrb_f_trace_varrb_f_untrace_varrb_eFatalrb_vm_register_special_exceptionrb_eThreadErrorrb_eLocalJumpError"*h���������*h���������*h���������*h���������*h���������j���������k���������m��������o��������#p��������d*h�������� q��������vr���������s���������d�t�������������������u���������d�L�DEv���������t���������t�������������������u���������D�L�����������u��������Dw��������>N�v���������t���������t�������������������u��������#���������,u��������6n~�v���������t��������	t��������(	���������-	u��������4	>	S	��������\	u��������f	�	\�	x��������
��������
u��������
\!
z��������(
��������2
*{��������<
|��������g
v��������r
}���������
~���������
*���������
���������
���������Km��������S~������������������v����������������������������'*h��������'
*h��������=
*���������W
��������_
����������
l�
����������
����������
������������������;*���������P��������Uu��������_ls*��������������������*����������*����������*����������*���������,*���������Q*���������u����������*������������������������������*�������������������*������������������"*{��������)��������3|��������qw��������x*{�����������������|���������*h���������*�������������������|��������|��������������������������������*���������?���������Qi��������e������������������������������*���������*������������������O*h������������������������������������� *���������,���������I�N����������������������*����������x�������������������*���������	�������������������*��������������������*h������������������,���������E�����������������������������	�����������������7*���������U���������\*h�������������������
���������*h���������*h��������;*h��������G���������hv��������o<x���������4�x��������������������������������������u��������<��������u��������'4B���������Q����������,�����������$������������������������������i��������������������������������������,���������d�������������������������������������������������������������������8��������=u��������G$X
��������]u��������g,�*�������������������|���������*�������������������|������������������������������������������������������!��������-���������@��������J���������[��������l���������������������������������������������������������������������������������������������!��������-���������@��������J���������j���������t*h�������������������������������������������������@��������Vt{p���������������������������������������������������*h�������� ���������
 ��������� *���������� ���������� ���������5!v��������n!v���������!����������!���������!���������!����������!���������!��������"��������+"�c"�#*���������"#��������)#��������3#|��������c#*h��������j#*��������� $����������$����������$����������$���������$���������$���������%*���������%��������(%|��������C%*h���������%���������%u���������%���������%*h���������%*h���������%���������&���������&���������&l��������!&���������-&*���������4&��������>&|��������i&����������&���������&����������&*h���������'*h���������'���������c(���������')*���������_)*h��������B,���������P,r��������x,*h���������-*h���������-*h���������-*h��������.���������.���������8. ��������Q.���������^.���������r.!���������."���������.*h��������k/i���������/k���������0|�0#���������0u���������0|�0���������81����������1*����������1���������1*���������
2���������h2����������2$���������2����������2����������2k���������2����������2k��������T3*���������A4���������J4���������h4��������y4%��������~4����������4*����������4$���������4����������4k���������4&���������4����������4'���������4(��������!5$��������&5���������C5)��������H5���������Q5k��������X5*��������]5���������x5&��������}5����������5+���������5*����������5,��������6*���������6*��������� 6*���������I6���������a6����������6*h���������6����������6����������6*����������6����������6-���������6����������6���������7���������;7*���������F7���������U7.��������_7����������7/���������7����������70���������7����������71���������7����������72���������7���������83��������8���������(84��������A8���������R85��������Y8����������8����������8*h��������9�$9�F9p���������9*h��������P:���������i:���������n:����������:����������:*h���������:���������;*h���������;���������;*h���������;r��������<���������8<*h��������V<*���������`<��������w<*����������<���������<*h���������<*����������=����������=*h���������>*h���������>���������?*����������?����������?*����������?����������?����������?*h��������@���������"@*h��������:@��������h@���������@��������DA��������oA	���������Ar���������Ar���������Ar���������A-���������A����������A���������B.��������*B���������GB���������UB���������\B���������{B���������B����������B����������B����������B���������B���������B*h��������DCv��������QCv��������wC����������C���������D��������D���������D����������D����������D����������D���������E����������E����������E����������E��������F���������cF����������F
���������Fv���������F*����������F~���������F*h��������%G��������BG*���������IG6��������SG|��������qG~��������{G*h���������G���������G*����������G7���������G|���������G*����������G8���������G|��������HT8H
��������=Hu��������KHTzH*h���������H����������H���������H��������I*h��������1I*h��������KI*���������SI���������_I*{��������fI9��������pI|���������I*h���������I:���������I���������I;���������I���������I<���������I���������J=��������J���������J*��������%J>��������*J���������:J?��������?J���������OJ@��������TJ���������dJA��������iJ���������pJ*���������JB���������J���������JC���������J���������J����������J���������J����������J���������J����������J��������
KD��������K��������(KE��������-K��������4K*��������;KD��������DK ��������OKF��������TK ��������YK!��������^K"��������qKG��������vK#���������KH���������K#���������K$���������K���������KB���������K���������K$���������K���������KE���������K���������K*%���������KI��������L��������
L*&��������LJ��������L���������"L*'��������.LK��������3L���������:L*(��������ALL��������KL)��������WL��������\Lu��������cL��i���������n���������	y�����������������3������������������b�������������������E���������3"���������o"���������U&���������4)����������:���������IE����������F��������)Hx��������PHx���������H���������H}�������� ����$,�P�X���������������D�L�p�x���������08�dl������������I$�,IPIXz�I�z�z���z���D�LpxJ��J�J�z	Jz	0z	8@
dz	l@
�@
��
�@
��
��
�7$�
,7P7X��7����������	�	D	�L	p	x	��	�	��	��	�
�
�0
�8

d
�l

�

�
v
�

�
v
�
v
�
�$v
,�P�X���������������D�L�p�x������

�0
�8
Nd
�l
N�
N�
��
N�
��
��
N$�,NPNX��N�����$���$$ID$LIpIxl �I�l �l �� l � 0� 8!d� l!�!�"�!�"�"��"$",�"P�"X�"��"��"��"�#��"�##7#D#L7#p7#xN#�7#�N#�N#�2$N#2$02$8�%d2$l�%��%��%��%��%��%��%$�%,�%P�%XB&��%�B&�B&�Y&�B&�Y&Y&�&DY&L�&p�&x)��&�)�)�8))8)08)8T,d8)lT,�T,��-�T,��-��-��-$�-,�-P�-X.��-�.�.��.�.��.�.,6D�.L,6p,6x96�,6�96�96�e696e60e68]8de6l]8�]8��9�]8��9��9��:$�9,�:P�:X�:��:��:��:�<��:�<<bBD<LbBpbBx�B�bB��B��B��B�B�B0�B8Cd�BlC�C�lF�C�lF�lF��F$lF,�FP�FX�F��F��F��F�WG��F�WGWGHDWGLHpHxTH�H�TH�TH��HTH�H0�H8�Hd�Hl�H��H��H��H��H��H�I$ �H, IP IX tI� I� tI� tI� �I� tI� �I!�I!nLD!�IL!nL � � � �7�7�7�7�78�6<8 �7 4�H�\�p���� ����PX�t�� PX�	�@
��
@0�\�| ����� 
�
H�����( t��P���P0�L0`P�p �� �!"4�"P�"l#�@#�P#�@$��%��%&$P&8`&T�&� )�@)	`,T	�-h	�-|	.�	�.
06,
@6H
p6�
`8�
�90�:H�:� <�pB�B(�B< C�pF��F��F
`G<
H\
`H�
�H�
�H�
I�
 I�
�I�I.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*MT*Nl*O�*P�*Q'�nL"@���7*-.M30M�=0MT!8@��*
S�nb�n�]@X=0*
|Xp�Xp��@�=0*�,r�,r��@�=0*�t�t��@�=0*2�u.2yc.l{$)@>�*60�{.��{��{|�{S�{'�{?�{M�{`�{r�{��{��{ ��{8�@�>�*(� 4+g	8��'�F�load.o/         1690381920  1000  135   100644  45360     `
ELF>��@@.-

!# $%&��H����@��H�H�H����f.�AWAVAUATUSH��XH��|$H�H�t$H�T$ H���H�D$@H���H�D$8�H�}A��� �:H�����1�H�D$H�EH�D$(��f�H����H9���H�D$(L�4�L�,�E1�A��uI�����tA�E1�����A��D��L���H��L�@H� tL�@E��t)�|$�n�D$���������H�D$�����H�D$ ���ufE��uf�D��L����H���H��I���H�|$L���H��H�E�� �
���H;]��H�E �����E��t�L��H�t$0�H�t$0��L��H�t$0�H�t$0���U���H�D$��E���fDA�8~�&���H�D$8H�H��H�L$0�� u	H�D$8H�@ J�4(H�|$��I���@H�\$H���H�D$@H���H���H���H��X[]A\A]A^A_�fDL��H�t$HL�D$0�L�D$0H�t$H��������a����H�}�������SH��H��@��u	H�����uH���H���[�f�H��H�t$�H�t$H�����@ATUSH��H��0H�|$H��H�D$�H�|$��H�|$�H�T$I��H�L��H�H���H���H�|$H���~@��u(��H�|$H���H��0[]A\��H�|$ �(�H�\$(�H�t$ �H�D$H��H��H�T$L��H���H��0[]A\�L���H��H��H���H��0[]A\ÐAWAVI��AUATUSH��H�|$H�|$�H�|$H��H��� �H����H�\H�$�H9���PҀ�w��PҀ�vH���H9�u�<.HE$L�e�A�LD��H�s�H9�w!�{�/u�R��~�/tRH��H�^�I9�u�L���.���M��tH�|$L��1�H)��L��H������H��[]A\A]A^A_�H��H��H��@H�$H)�I��H)�H���L��H������M��t"L��H�|$L��H)�H���L��H�����H�|$�>���H�G���H�$����ff.��ATL�%USI�$H�����uH�����tvH��ƒ���ti��udH���H��H���H��� u7H�CH�t�H��H���*���I�$[]A\H���H�����H����H�t�H����H�H�5H�81��ff.�AWAVAUATUSH��8H�GpHLJH�|$H�D$@H�GhH�t$H�D$H���PH�GpH�D$H�T$PH��$0H�D$P4����D$<H�H�0H���H�|$`H�=>H�t$ H��$(H�BH�x1��H�H�HH�`H���H�\$H�|$����H�t$��H�D$��H�=H�D$(�H�L$(H�T$E1�H��H�|$�H�\$H�ǃ���H�|$ H�\$�H��$(H��H����D$<���H�D$HH�ChH�D$@H�Cp�D‰D$�D$H��8[]A\A]A^A_�@�H���H�|$H�Gh�H�|$H��H�GpH�h������H�D$ �xH�@H�|$������H�|$ H�T$�4H��$(H����D$<�|$���H�D$HH�BhH�D$@H�Bp�H���B���H�T$�D$H���)�����SH���H�{H�@H� tH�{[�@�����tCSH��H�>H��u�H����1���t[�@�H����1���u�H�;��[��ff.�@��ATUSH�/��t!H��1�H�=�[1�]A\�f�H��I��1�H�ֿd1��H��I�$�H�1�[]A\���SH��H��H�|$H�t$�H�ƸH��tH���H��[�f.���SH���H��t
H��H��[�@�[�f���USH��H��H��(H�T$�H��H�D$H�D$H�|$�H�D$H�PH� tH�PH��H���H��(�[]�f�AWI��H��AVAUM��ATI��UH��SH��.H��(D�D$�H��tI��H��L��I)�K�<7���tcI�<�I9�u�DH���I9�t�PҀ�w�<.t1�H��(H��[]A\A]A^A_�@I��M)�L9��H)�H��L�����u�I)�M��~C�|7�/u��|$s���|$r��1�M��H�l$��E1�I)�I�E�� tjH����I9��y���I�EJ��H��H�D$�H�\$H��� uOH����I9�uM���D���L��H��L������.���I�EI���� u�M;e����I�E ��H�S�f.�J�t5�H�=L�����������+����J�t5�H�=L���f.���ATUH��SL�bH���I�T$H9�|/L�KD�CL��H��H�H�����H��tH�k �[]A\�[1�]A\�f�U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�U��H��SH��H�H�+H���C�����t��t*H�;��H���H��H�e���DH��[]�f�H���@��SH�1�H�� H�\$L�D$H���H�\$H�|$�H��H��H�D$�H��H�D$�H��u H�|$H� t=H����t6H�D$1�H��H�D$����@������H�� �[�f�H���H�5H���ff.���UH��SH��H���H���H��tH��H��H��H��[]���H�H�5H�81���H��(H�D$H�|$H�D$�H��H�D$�H��tH��(�H�|$H�5���H�H�H����f.���ATUSH��H�H�H���H����H��t*H���H����H��ulH���H��[]A\�@H�T$H�t$1��D$�D$���T$�����D$����Hǃ�H���H��[]A\�@�D$�D$�H��H���H��I���H���L���H����H�T$H�t$�L����R��1���DHǃ�H���H��[]A\�DH�T$H�t$��D$�D$��H���H��[]A\�@�H��H���H��I���L���H���H��[]A\�fDH�T$H�t$������ff.�@AWAVI��AUATUSH��H�t$�T$ �L$L�D$(H�D$@M��tI�L���H�|$H��H������L$ H)�1���H�\$����r�D$$H�L� M��$�I��$�L���H����I��$�H�T$@L���H�D$@H���NH�L$H1�E1�H�L$0�uH������H���)H�I�WI� uI�W H��H�|$0H�D$H�H��H�D$HH�0�� ��L�`H�D$L9���H��L��H�����ta�T$����M����H�L$H�AI9���D�D$$M��L��L��H���G���H��tjH��� ��H�@H���D$H�H�D$L�A�����<.u2H�|$���D$ �V���N�D$ ������H��H�D$@����f.�E1�H�H�H���H���#�D$L�d$P����H�D$L�t$PH�D$X�D$$�D$`M���L�d$PH�56���H��L�l$hH�D$pL���H�D$pH����H�L$(H��tH�H�t$H�����H�=������y�sH�Ĉ��[]A\A]A^A_�H����I���=����H��у�������� ��H����H9������H��H������f�L��L��H�����tH�L$(H���N���H�D$P�A���fDH�D$H��t	�8��H�D$H�x�I��L�hH� tL�hH�\$L��L��L�5H���H��1�L�|$L�I��H�5L��H�D$I��H���f.�I��K�4�H�����H���H��L��L�����t�L��L�|$1�L���H�L$(H��tH�D$PH�H��������r���fD1��u���f�I��$�1�H�5��E1��H�D$PL�d$0I��$�L�t$8I���_H����H9�}eH��H���L��I��H�D$P�H�|$PI9�tH��H��H���H�|$P�H�|$PH�tA����H�EIc�� u�H�EH9�|�H�L�d$0L�t$8H�H���H�����i���H�D$�D$$�)���fDH�|$������u�f���f.��I�����L��I��H�\$�H�5L�|$H���L��L��H�������H�ߺH�5�L��L��H����Å���1�L�������H;h����H�@ ����D�I���D���H����H�B�r����L��H�=��€����x����L��H�=��€����t����T���D�L��H�=������b������1�L���H�L$(H������H�D$PH�������ATI��.USH��H����;.H�D$H��tCH��t�/H���H����M��1ɺ1�H���������H��[��]A\��{/tH�s�H�=�����u�H���H����H���H�D$H�D$H��� uxH�\$H���_���f��H�=H�������tf�H�=H�������t�H�=H��������&���M��1�1�H���#����H�D$H�X���f.�M��1ɺH����ff.���1��D��H���H��H�������S���d�����[H�����f���AWAVAUATUSH��H�H�$H��$H�T$0H�H�|$�t$H���H�L$@H�
�H�D$(H��$H�BH�\$H�D$04H�H1��H�H�HH�`H������H�D$(H�T$H��$H���H�H�t$(�T$H�8��H�4$H��t�H��[]A\A]A^A_���H�T$�BH�BH��u%H�|$�S�H�D$(H�|$H��$H����H��$H�|$H����f���AWAVAUATUSH��hH��D$@����H��t$H�|$8H��H�\$HDŽ$�4H�D$HH���H�D$PH��$X�H��$��D$DH��$`H�BH�
�H��$�H�H1��H�H�\$H�HH�`H����|$�H�D$8H�D$`H�|$8�1�H�D$8�H�|$8�H�H�D$H�D$XH�$�� �H�D$H�@H�$H�<$�.�H��H�D$ H��t�/�H���4H�<$L�D$p1�1�1������$��r�<H�D$�T$H�|$hH�5H�D$h��D$������t�$���H�D$hH� ��H�@H�$H�<$�.�1҃l$H�<$L�D$p�H�����q����H�D$hH�D$X�T$H�D$X��H�D$���$sH�D$H����H�0H�t$ �� ��H��H�D$ H�H�H���H�|$(H����H�t$ H�T$x�����H�D$x��\H������PH��у����?H������d�/H�@H�D$0�H�t$ H�|$(H��H�D$x�H�D$0��H�H�D$ �H�D$ H�D$PH���H�D$P�8t[�$��r���suJ�H�T$1�H�57�H��I���H�@H��ZH�tH�=��H�|$����D$@�	f���H�D$�HH�@H�$������1�H��$XH�T$H�t$PH���H��tH�H���H�H�����|$D��$��uH�D$HH�T$H���D$@�$�$H��h[]A\A]A^A_��H��H�$���H��H�$�t����4$��uQH�|$hH� ��H��E1��1�1�������f.���$�����H�|$pH��tn�H�D$H�D$X�X���f.�H�|$p����� �����H������FH�|$x�H���H�����H�D$P�D$@�c����H��H�D$(H�H�H���H�|$ �H�D$ �H�t$ H�|$(H��H�D$x��z���f�H�t$ �H�=�������H�t$ �H�=�����t H�t$ �H�=������4H�D$pH�t$ H�<$1�I��1�H�D$(�e����H�D$H�H�$�� ��H�D$H�@H�T$ H�|$1�H)���H�5H��H�D$h�H�|$h@��u7H�����t.H��ƒ���t!H�€�H�H�t���S��t$�H�D$hH��tmH� �H��H�$H�<$�.�L�D$(H�<$�1�H������tH�|$p�2���H�D$hH�D$H�D$X�$s������$�P���@H�D$pH�t$ H�<$1�I���H�D$(�����&�t$H�|$�H�D$hH���*���H� �[H��H�$H�<$�.�L�D$(H�<$�H�ƺ����tH�|$p�l���H�D$hH�D$H�D$XD�$r�J���@H�D$H�@H�D$ �^���DH��t����H�������H�D$ H�D$x�H�t$xH�|$(H������f.�H�t$ H�=1��H�H�8����f�H�|$pH���������1���H�|$pH���������S���H�|$1������H���H�����H�@H�$���H�@H�$����H�|$h���fD��SH����H��H��0dH�%(H�L$(1�H���1�H�������ø����M��H�L$(dH3%(uH��0��[��f���SH�������x*��[H�H�Ѓ��H�H�H���H�zH����H�5H������SH���H��[������ATUSH���H��t+H���I���L��H�߉��[��]H��A\�H�=1�����S�H�èu*H�����t"H��ƒ���tH�€�H�{H�t��t�H��[���DH�����fD��AUI��ATUSH��H��L�%I�$H������u)H��t4H��L��H��H��[H�7�]A\A]�DH��[]A\A]�D�H��I�$H������U�H�=SH��H�H��H�
H����H�=H��H����H�=�H��H����
H�=�H��H����1�H����1�H����1�Hǃ�H�5��H���H�=�1�H�5��H�=��1�H����H���������H�5�H�=H����H�5�H�=��H�5H�=�H��H�u�H�5H�;�H�;�H���H�5��H�5O�H�=��H�5��H�=�1��H�H��H��[]�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign$LOADED_FEATURES is frozen; cannot append featureCan not set autoload on singleton classloading in progress, circular require considered harmful - %s<top (required)>%s is already registered.so.rb11cannot load such file.o./cannot infer basepath$-I$LOAD_PATH$"$LOADED_FEATURESloadrequirerequire_relativeautoloadautoload?$:.so.oGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0LD�B�B�B �B(�A0�A8�D�=
8A0A(B BBBK �LE�G [
FCL�B�A�A �LP�
 AABIK
 AABAZ AABHdB�B�E �B(�A0�A8�DP�
8A0A(B BBBA,T�B�H�A �`
ABZL�MB�B�B �B(�A0�A8�G�p
8A0A(B BBBE�,E�b �QN�]
E_A�4]F�A�A �Y
CBJiABL6E�G hAl'E�U
FF$�^E�A�J@FFAH��B�H�B �E(�D0�D8�L`Y
8D0A(B BBBE4WF�A�D �~
ABDACB8WA�M
(T\A�F�D y
AAJ ��E�M0~
FJ(�OE�D�G W
JAE�@D0j
A�p�F�A�A �D0C
 AABEO
 AABE~
 AABFo
 AABEm
 AABGLt�B�B�E �B(�A0�A8�G��
8C0A(B BBBA0�bF�I�A �G0N
 ADBD�HI$E�JH@.F�B�B �B(�A0�A8�G��
8A0A(B BBBAL��F�B�B �B(�A0�A8�G��
8A0A(B BBBI �gE�L@M
CAOE�U
JE�L(8OF�A�A �l
CEEdZE�
LH�}F�E�A �A(�G0d
(J HBBJD
(A ABBF,��E�M�D �DA"%9#Qj$��%��&�	'8[&|�&���0��9d�L��/� �/�.0dA�cR����R���`M����,�D1	g�Q}1	��	�@	]��	��	�	6!�	@
]�	'm
�n
�
^�n
�6p
�&6K�n@W������W��\
5
\F\
_v`
���o� O�o���p@	�)�G�p����`������`	�8	�S	�l	��	��	��	�	�	N
N)
*#J
*#o
�#�
�#�
�#�
�#�
$$)_$L_$f�$~�$�=%�=%�'�#$%&"��	.*258"K'N,Q2`8R>hDlJwPzV�\�b�h�n�t����	

 !'()����

)
C
\
j
v
�
�
�
�
�
�
�
�
�

-;LUiz��������'0Ibjz�����������#0>L�]��w���������,`b@HX�d�o�� .�P������"6L]hz�����0#g���#O"�#/$OE]m��`$Z��$}�@%�����
(BM^.annobin_load.c.annobin_load.c_end.annobin_load.c.hot.annobin_load.c_end.hot.annobin_load.c.unlikely.annobin_load.c_end.unlikely.annobin_load.c.startup.annobin_load.c_end.startup.annobin_load.c.exit.annobin_load.c_end.exit.annobin_load_path_getter.start.annobin_load_path_getter.endload_path_getter.annobin_get_loaded_features.start.annobin_get_loaded_features.endget_loaded_features.annobin_rb_construct_expanded_load_path.start.annobin_rb_construct_expanded_load_path.endrb_construct_expanded_load_path.annobin_loaded_features_index_clear_i.start.annobin_loaded_features_index_clear_i.endloaded_features_index_clear_i.annobin_features_index_add_single.start.annobin_features_index_add_single.endfeatures_index_add_single.annobin_features_index_add.start.annobin_features_index_add.endfeatures_index_add.annobin_rb_provide_feature.start.annobin_rb_provide_feature.endrb_provide_feature.annobin_rb_load_internal0.start.annobin_rb_load_internal0.endrb_load_internal0.annobin_load_ext.start.annobin_load_ext.endload_ext.annobin_release_thread_shield.start.annobin_release_thread_shield.endrelease_thread_shield.annobin_register_init_ext.start.annobin_register_init_ext.endregister_init_ext.annobin_rb_mod_autoload_p.start.annobin_rb_mod_autoload_p.endrb_mod_autoload_p.annobin_rb_f_autoload_p.start.annobin_rb_f_autoload_p.endrb_f_autoload_p.annobin_rb_mod_autoload.start.annobin_rb_mod_autoload.endrb_mod_autoload.annobin_loaded_feature_path.part.1.start.annobin_loaded_feature_path.part.1.endloaded_feature_path.part.1.annobin_loaded_feature_path_i.start.annobin_loaded_feature_path_i.endloaded_feature_path_i.annobin_rb_threadptr_tag_jump.isra.2.start.annobin_rb_threadptr_tag_jump.isra.2.endrb_threadptr_tag_jump.isra.2.annobin_rb_load_internal.start.annobin_rb_load_internal.endrb_load_internal.annobin_rb_f_load.start.annobin_rb_f_load.endrb_f_load.annobin_rb_f_autoload.start.annobin_rb_f_autoload.endrb_f_autoload.annobin_file_to_load.start.annobin_file_to_load.endfile_to_load.annobin_rb_get_load_path.start.annobin_rb_get_load_path.end.annobin_rb_get_expanded_load_path.start.annobin_rb_get_expanded_load_path.end.annobin_rb_feature_p.start.annobin_rb_feature_p.endrb_feature_ploadable_extso_ext.15965.annobin_rb_feature_provided.start.annobin_rb_feature_provided.end.annobin_rb_provided.start.annobin_rb_provided.end.annobin_rb_provide.start.annobin_rb_provide.end.annobin_rb_load.start.annobin_rb_load.end.annobin_rb_load_protect.start.annobin_rb_load_protect.end.annobin_rb_require_internal.start.annobin_rb_require_internal.end.annobin_ruby_require_internal.start.annobin_ruby_require_internal.end.annobin_rb_require_safe.start.annobin_rb_require_safe.end.annobin_rb_f_require.start.annobin_rb_f_require.end.annobin_rb_f_require_relative.start.annobin_rb_f_require_relative.end.annobin_rb_require.start.annobin_rb_require.end.annobin_ruby_init_ext.start.annobin_ruby_init_ext.end.annobin_Init_load.start.annobin_Init_load.endvar_load_path.16173.LC0.LC1.LC2.LC4.LC3.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC17.LC18.LC19.LC20.LC21.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_ruby_current_vmrb_safe_levelrb_ary_tmp_newrb_get_path_check_to_stringrb_get_path_check_convertrb_file_expand_path_fastrb_str_freezerb_ary_pushrb_is_absolute_pathrb_obj_freezerb_ary_replaceruby_xfreerb_ary_freerb_check_typerb_string_value_cstrst_lookupruby_xcallocrb_ary_catst_insertruby_strduprb_string_value_ptrrb_str_subseqrb_eRuntimeErrorrb_raiseruby_current_threadrb_load_file_strrb_realpath_internalrb_str_new_staticrb_iseq_new_toprb_iseq_evalrb_vm_top_selfrb_obj_clonerb_module_newrb_extend_objectrb_vm_make_jump_tag_but_local_jumprb_vm_crefdln_loadrb_thread_shield_releaserb_thread_shield_destroyrb_warnrb_node_newnoderb_check_idrb_autoload_prb_vm_cbaserb_to_idrb_get_pathrb_autoloadstrchrstrncmpstrlenrb_exc_raiserb_scan_argsrb_str_encode_ospathrb_find_filerb_file_load_okrb_load_failrb_class_realrb_eTypeErrorrb_get_load_pathrb_get_expanded_load_pathrb_ary_shared_with_pruby_getcwdrb_filesystem_str_new_cstrrb_str_equalst_foreachst_get_keyrb_str_tmp_newmemcpystrlcpyrb_str_resizerb_ary_entryrb_string_valuerb_ary_storerb_feature_providedstrrchrrb_str_new_cstrrb_providedrb_providerb_usascii_str_new_cstrrb_loadrb_load_protectrb_require_internalrb_set_safe_level_forcerb_find_file_ext_saferb_thread_shield_newrb_vm_call_cfuncruby_dln_librefsst_updaterb_ruby_verbose_ptrrb_thread_shield_waitst_init_strtablerb_str_catrb_find_file_saferb_warningrb_stderrrb_backtrace_print_torb_int2bigrb_freeze_singleton_classruby_require_internalrb_setup_fake_strrb_set_errinfo__stack_chk_failrb_require_saferb_f_requirerb_f_require_relativerb_current_realfilepathrb_file_dirnamerb_file_absolute_pathrb_loaderrorrb_requireruby_init_extInit_loadrb_intern2rb_gvar_readonly_setterrb_define_hooked_variablerb_alias_variablerb_ary_newrb_define_virtual_variablerb_define_global_functionrb_cModulerb_define_methodrb_gc_register_mark_object*���������A*���������o�����������������������������l���������y�������������������������������������������������C���������Y�����������������������������	������������������B���������Q���������[���������j*����������������������������������������������������������������������������"���������L������������������B���������i����������*�����������������������������=*���������D{��������N����������*���������'���������@���������L|��������V���������p���������������������������������������������������������������������������������������	���������%	���������W	}��������\	����������	����������	����������	����������	����������	���������&
���������=
���������^
����������
����������
���������������������������������������~��������-��������S���������
*���������X
���������h
����������
����������
����������
����������
����������
���������	������������������1���������9���������Z*���������a���������k��������������������������������������������������*����������*�����������������������������������������������������������A���������L���������W�����������������������������*���������1���������O������������������������������*������������������T~���������������������������Cu��������K���������b~�����������������������������������������������K���������[���������s���������}����������*����������������������������3t@���������N���������etj���������x������������������������������������������������#~��������A���������x�������������������������������������������������
���������8~��������R��������l�������������������8*����������*���������h*�������������������������������������%���������/���������h�������������������u����������������������������*������������������������������������(���������g�������������������������������������*���������'��������0�������������������)��������@��������q���������*���������������������������������������~�����������������	 ���������q ���������} ��������� ��������� ��������!����������!���������!���������["��������m"����������"����������"	���������"*
���������"���������"����������"����������"��������#
��������U#��������_#���������v#���������#���������#����������#*����������#����������#����������#���������$��������*$��������2$���������?$��������T$���������[$��������f$����������$����������$
���������$*����������$���������)%��������M%t��������Y%*���������a%��������h%*��������v%t���������%���������%����������%���������%���������%����������%���������%���������% ���������%����������%����������%���������&!��������&���������&!��������& ��������)&���������5&��������H&���������T&"��������[&*��������g&���������l&"��������x&��������&����������&"���������&*#���������&����������&$���������&����������&$���������&����������&"���������&����������&"���������&����������&�����������������������������������������������$��������M$���������$��������%��������
'%�������� z��$,PX&��&�&���&���D�Lpx/��/�/��/�0�8Rd�lR�R���R������$�,�P�X1	���1	�1	��	�1	��	�	�	D�	L�	p�	x
��	�
�
�n

n
0n
86dn
l6�6���6������$�,�P�X\
���\
�\
��\
�		oD	L	op	ox	��	o�	��	��	�
�
�0
�8
�d
�l
��
��
`�
��
`�
`�
�$`,�P�X��������������D�LpxN��N�N�*#
N
*#0
*#8
�#d
*#l
�#�
�#�
�#�
�#�
�#�
�#�
$$�#,$P$X_$�$�_$�_$��$�_$��$�$=%D�$L=%p=%x'�=%�' v w
 x
 y'.'* 4H0��� 0X��`����@	P�	p�	�
�p
@<�X
�`
� �p���x��`���(D �P�0#�# �#<$h`$��$�@%.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.rodata.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@+�T+�l+��+��+�'�'"@�w�+-�'3�'=�'�8@p�+
S�7b�7�]@��0+
|\9�\9��@��0+�0;�0;��@�0+�=�=��@�0+2�>�2v?�)8@6P@1@@�0+I0h@.��@��@|�@S�@'�@R�@`�@s�@��@��@��@ ��@��@p�x+)�G�,�	@cy��proc.o/         1690381920  1000  135   100644  93520     `
ELF>�a@@/.

"$!% &'���@�fD��H�G �x:H�H�Ѓ��f.���1�H����H���ff.�@��H�G H�H�@ H�@�ff.����H������H��H�H�Ѓ�0�ff.���SH��H�(H�����u{H�{0H�����u^H�{ H�����uAH�;H�����u%H�{H��t@��uH�����t
�����tC[Ð���f���f���f���{���fD[�f.���H��t�f��ff.�@��H�W H�G(�BH�PH�H�H��(H�H��(�ff.��AWI���AVI��AUI���0ATM��UL��SH��H�T$�H�L��H��H���L�T$H�k� L�{I��L�L�k��(H�C H����@L�pL�hH�@��H�EL�pH�	�H�C(H�C H�@�@A��u"I�����tI�$�Ѓ��� �H��sH��L��[]A\A]A^A_�A��u�I�����t�I�E������t�%H	�I�$�ff.�f���SH�� H�|$�@�H�H��H�D$H��H�@ �o�oHK�oP S �oX0H�H�8[0�H�T$H�C H�T$H�T$H�� [����AUH�5I��ATUSH����0�H���H�H��H��H�H�8�H�4� I��H�EH�C�H�C H�U �o�oJHH�BH��t�@H�E�H�CH�EH�C�H�C(A��u"I�����tI�$�Ѓ����H��sH��L��[]A\A]�A��u�I�����t�I�E������t�%H	�I�$��D��H��H�5�H�@�uH�����t
�����t
H���DH�@��f���H��H�5�H�H���@��SH��H��H�{�H�;�H�{ H��t
[��[�fDH��tKH��H�GH�PH�$t(H����H�D$H���H���DH�D$��D��f.���H�1�1Ҿ�H�81��f���H��H�5�H�@ H�@H�xH������H��H�5�H�xH���ff.�@SH��H�\$�@H�PH��t�:uH�D$H�rH�xH���H��u�H��[�f���H�1�1Ҿ�H�8�@��AV��AUA��ATUS��1���)�H��Hc��H�=I��H�����L�t$�L��H�D$�H�ŨuH�����u6��tf.�H��L�����u�E��xCH��L��[]A\A]A^�H��ƒ���t�H�€�H�}H�Ut���u�H����H�=H��t\�L���A��H�D$�Ic�L��H���H��L��[]A\A]A^�@H�=��H��H�����H�=��H��H����AUH�5ATI��USH����H����H�5H���L��H���H��H����H�5H���H�E L�`A��u*I�����t!I�$�ƒ���t���
f.�H�}L�-�H��H���L;euL��H���H�}�H��H���H�E H�@H�xH9}t!�H�5H��H��1��H�E H�@�8thH�ߺH�5�H��H��[]A\A]�fD�H�5H���L���H��H����H�5H����A����H�5H����f.�L����H�}I��H��4��H9�t]�H��H����H�5H���L��L�-�H��H����H�5H������fD�H��L�-H������@L��L�-�H��H����b������ATUSH������L�#H��H���H��L��H���H�}H�����u&H�����tH��ƒ���t��tH��H���H��[]A\�D��SH�5�H�xH���H�3H���H�s H���H���[H�D�ff.�f���H�5���H�5���AUATL�%UH��SH���H�
I��H�E H�X�x:LE�H������uH�����t�������@E1�H�{PtH����H���A��H�KM��H��L��H�=1��@��u;H�����t2H�U�у���t$��t�uH�����tH��у���~9��H�H��[]A\A]��L��H��L��1�H�=����H��r��ATI��H��UH��S�H�mH��H��tH�����t4H��[]A\�fDH�����u�H��H��L��H�5H��1��H��������SH��H��H�t$H�t$�u���H��tJH�S H�H�r H�V(�J`��~)H�RXH;t1H����H���@H��H;B�tH9�u�H�VH��u�1�H��[�H���[�D��SH��H��H�t$H�t$���H��tJH�S H�L�B I�P(�z`��~+H�rXH;tIH��1��f�H��H;F�t0��9�u�I�PH��u�H�|$H��H�51�H���D1�Hc�I�D�8H��[����UH��SH��H��(H�t$H�t$�Q���H�D$H����H�} H�L�J I�Q(�J`��~0L�BXI9���q��H���f�H�JI9D�t5H��H9�u�I�QH��u�H�T$��H�H��(H��[]��H��8L�H�H��(H��[]��H�|$�H�D$�Y����8��D��H�G H�8���AT1�I��H�US��H�� H��L�ML�EH����{H��L�d$�H�� []A\�D��H��tgSH��H�?H�����u?H�{H�����uH�{H�����u[�[�f��H�{H�����t���@�H�{H�����t���@�ff.�@H��4tZATI��U��SH�����u0��L��H�ߺM���A���[]H�����A\�����[1�]A\�f�1��ff.�f�AWAVAUI��ATUSH��8H�t$(D�|$pH�L$L�D$L�L$H����H�GI��H���������L��H��A�L�t$(�W�H�\$(����H�SH�XH�R8H��H�jL��H���I��H���xI�BH���k����`A��u�E�"E��t�D���t��D$x���eH��H���I�����t'I�U�Ѓ���t��u��uM�mL9�tA��tо0�L�T$ �H�|$H�H��I���M�l$� H��H�D$I�$H�D$(I�D$H�D$I�D$�L�T$ �I�D$ �Ao�AoJH�I�D$(I�D$ H�@�@@��uIH�����t@H�U�Ѓ����H��r'��u"H�����tH�������t%H	�H�UH��8H��[]A\A]A^A_�H�\$L��DH���H�t$D��H��H���]�����u�T$x��u3��f.�L�L$L�D$H��H��H�T$L����H���1�H��H����AVE��AUI��ATI��UH��SH��H��H��H�T$�jM��I��AVH�t$L��H��H���;���H�� []A\A]A^�ff.���AUH�5ATUH��SH���H��H�@�H�D$����u	H�CH�D$L�`M��tSH�sH�T$L���I��H��t:H���L�CjL��jH�L��I��H�t$���ZYH��[]A\A]��H���[]A\A]����ATUH��SH��H�|$H�t$�H��ueH���H��H����H�T$1�H��H���������H�|$�H�H��H��I��H��L�
H�����H��[]A\�DH��H���I��H����H��H���H����H��L���H�x��H��L���H�H���tl��
uH�QH��t^H�RH��tU�:tPH�jH��I��jL��H��L�
L���R���ZYH��[]A\�H�|$�H�|$H��H�5H��1��H���H��H�5H��H��1��DU�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�H��t;@��uEH�����t<H��ƒ���u/H������euH��H9GtkfD�����1�������������u1ɋ��������0��ȉ�������t�H����R��������SH�H��H�5�H��[H�@ H�x�	f�H��t;���
��L���Ic�L�>��D�W���������1��@�1������@H�W����������u1����������0@�����������tKH����J1҅������H�GH�@ H�x�_�����G ���P�����f.��P��H�=1��ff.�H��H�5�H�t$H�@ H�x�����T$��9��E�H�����f.���H�����H��H�H�D��AUA��ATUH��SH��H�L� I�\$0H���H��H����H�^ H��tlH9kuH��H��[]A\A]�H���(�H��H�h@��u�H�����t�H��H�����u�H���`H��`u�H�E��`H��`t�H��H����DH��A��H��L��[]A\A]��H�{P�H��H��t&E���Q���H�D$H�=1��H�t$�4���H�H�5H�81��f���H�1�H�8����ff.���ATI��U��SH�� H�Z H�T$H�C�uH�����t�����tD@���@u7E1�H���L��H��H�8�H�T$H�T$H�T$H�� []A\�D���t�H�D$H�D$�H�D$L�@ �D��H��H�8�������ATI��1�U��H��S���L���H��H���H��[]A\Ð��AVH�5AUATUSH����0�I���H��������n�؃�����H��������H�{H�H���L�3H��I���L��L��H���I�|$L����AoE� E�AoMM�AoU U �H�E I�U �o�ob`H�@H��t�@��H�E(L��[]A\A]A^�f.�H�����u'H����H���7���H�H�8�,���DH�{H�H���L�3H��I���L��L��H���I�|$L���H��ƒ����������	���H��L������f.�H�H�8����H�H�8����H�H�8����H�H�8�x����H�H�8�h������AWAVAUATUSH��H�5I��A��H���L�hI��L���u
I�������M�������"�؃����<H��������H�CI9���L��H���H����H��u I�����tI�E�ƒ���t	���{L���H�5H��H�H�81��H�����u�H����H���{���H�H��p���DA�E�����$����0��H�H��H��H�H�8��Ao$� I��E�AoL$M�AoT$ U �H�E I�T$ �o�ob`H�@H��t�@M��tm�����؃�����H���,���CL�{H�u������}H�]�L�}�I�D$(H��L��[]A\A]A^A_�@H�����u�H����H��u�H�L�8�@H�H�5H�81��H�H������L���H��tSI���n���H�H���f�H�L�8�2����H�H������H�L�8�����L��L���I������DH�H����f�H�L�8�����H�H��l����H�L�8����H�L�8������SH�H���H�C [�fD��H��H�5���H�H��H�Ѓ��ff.���S� H����H��H�[H���fD��H�SH��H�8�H�K H�P H�1H�2H�qH�rH�q�IH�rf�J[Ð��ATUSH�����L�#H��H���H��L��H���H�}H�����u&H�����tH��ƒ���t��tH��H���H��[]A\�D��H�H�8H�w0�f�������H�W H��H�R(H�R H�B8�@��H��H��(H�H�4$H�|$H�w �� t@H��H�H��H�E1�H�8�H�T$H�T$H�T$H��H�T$H�$H��(�H�PH�H H�����v�H�H�5H�81�����H��(I��H�|$��I�p E1�H�$H��tL�A H�H�щ�H�8�H�T$H�T$H�T$H��H�T$H�$H��(�D��SH��H��H�G H�t$H�x���H�S �z:t9D$�����҄�D�H��[�f��|$������҄�D�H��[�f���H���H��H�H�D����SH��H�H�H�x0�H��tfH�xH��H�t$�>�H�S H��u�T$�������D�H��[ÐH�J �T$H��t�y:u������„��D�H��[��9�����H�H�5H�81�����SH�^ H�s�H�s(H���H�s[H��H������SH��1��H��H���H���[H�D����H��H�5���H�H��H�Ѓ��ff.���AVI��H��AUATA��H��U1�SH��H���H��t�hA����A����I�>�I�~I��H�<$�H�<$H�����H����H�$L�p M�fL9�t}A��udI�����t[A�$����tbL��H���H�����uOI�$�ƒ���t	����L���H�5H��H�H�81��f�L��H���H�����t�I�V ��L��H������cH��H�D$H�$L���H��[]A\A]A^�f�H�<$�H����H�<$���L�` H�$H��I�D$�uH������-L���L���H��������I�\$fA�D$9A��L��H������d���H�,$H���E1��L��H��H����=���@�H�<$H���e����H�5H��H�H�81��fDI�>�I���H��H�$�#���@H������D���H��L�����uI���`H��`thH�$� ����I�n H���1�L��H��H����|����������������DH�H�5H�81��H���`H��`t�H��L����|�����D���H�H�5H�81��f���U��SH��H�H�H�XpH��u!H���H�H��H��[]����H�=1�H�t$�H�t$H����H��[]�x������UH��S��H��H���H��H���H��[]�F���fD��UH��H��SH��H���H����@����@���+������=H���c@���IH�E���������ڃ�����H���;���H�SH9�uIH��H�5�H�m H�[ H�} H�s ���t!H�CH9Eu�H�H9Mtf�1�H��[]��H������Z���H����H���G���H�H��<����H������a���H����H���N���H�H��C����H�H��3����H�H�����H�H������H�H������H�H����H�H�����H�H�����H�H������H�H��|����H�H�������ATUH��SH����u	H�����u4L�%H���H��H���I��L��H��H��H�51��H��ƒ���t���uL�%��t�묾�H����t$�u�H��H���H��t��ƒ���t�<u�w���H������k�����������Z���H��L�%�R���ff.�@AUATA��USH��H��H�|$H�t$����������ڃ�����H��������H�kH�L�*H��ukH�T$D��H��H���h�����H�|$�M��H��H��H��I��H�����H��[]A\A]�@H�����u�H��tAH��u�H�H�*�E��L��H��H��H�����H��[]A\A]ÐH�H�*�W����H�H�*�G����H�H�*�7����H�H�*�'����H�H�*����H�t$H���@��1����D������f���SH��H��H�|$H�t$�H��t&H�H��A��4H�
H��� �H��[�H�t$H���ff.�f���SH��H��H�|$H�t$�H��t#H�H��E1��4H�
H�����H��[�H�t$H�����UH��AWAVAUATSH��8H�������H��H������H�5H�����H������Dž������H������H������H�84H�H�������HDž�4H�H�����H���H�E�����u.H�����H�����tH��ƒ���t���yf�H���H�]�H�����H�BH��H�X1��H�H�HH�`H�����H���H�����H������H�81�H��tH�F H�GPH������H�H�������H������H��L������L�H H�PQ������H�0�H�����H�����XH�E�ZH�����������H�����H�e�[A\A]A^A_]���H��0H������XH�@H��������7���H�E�H�����H���������x�����H����������H�H���H�xH��f�H������H�H����������Z���������������v������g���H�H�5H�81��ff.�@��AUM��ATI��USH��H����������؃����9H���?���FH�SH�H9tfH�t$�H�\$��H��H���H��H� t~�H�sL��L����H��H�T$H�$H��[]A\A]�f�H�+�� tMH�����@H������e���H��tuH���V���H�H��K���D�H�s �DH�kH������M���H�H��H�5H�81��@H�H����f�H�H������H�H������H�H�����H�H�������ATI��UH��S������uL��H���[]A\���H����fD��H��H�H�t$���9D$t��H���ff.�f���H�����1�H��tH�xH�t$���T$����9�Eщ�H���f.���@��t&@��u@������tVH��t`@��tjH���H�����u�H��t!H��u�H�H�8��H�H�8��H�H�8�@H�H�8�@H�H�8�@H�H�8�@��H��H�5�H�@ H�P���t.��uH�z1�H���f.�1�H���f�H�BH������H�W H�BH��t�z:���҉H��t�uH�����t
H���t
�@H�%H������eu
H�U���H9Pt1��@SH�xH���H��t�[�ff.���H��1��H��H�����D��B���v��tB1���tH������H�H��u7�ÐH��H�1��H��H�����DH�GH�����@�ff.���H��H�5�H�@ H�xH���k���ff.���SH��H��H�t$�H��t�t$H���H��[�H������Q��H��[�ff.���ATH�5UH��S�H��1�H���H�=6��H���I��H�@ �@9H�H�SH�H�PH�@(H�h H�C H�MH�HH�U���t'1���uH�y1��H�E(L��[]A\�f�H�AH�E(L��[]A\���SH���H��t1�H��[�H���(�[���p����AWAVAUATUSH��L�g I�\$M�t$(����H�����t~H��ƒ�����H�H�8�H�h I��I�D$0L�uH�EH�����t
�����t_H�CH���H�E�H���f�EH��L��[]A\A]A^A_�DH�H�8�H�h I��L�uI�D$0H�EH��u�1�H�Ef�E��H������e�HH�9���H9C�7H�{�H��H��tNM�V �hdI��A��McjA9�|gH�H�8�H�h I��I�D$0L�uH�EM����������fDH�H�8�H�h I��I�D$0L�uH�E�@����I�VI�~1�L�$�D�EMc�I��J�<�@L�D$�L�$A�UH��I�F �EHc��AoB�L�I8I�r8I�B�iL��H��A�AoJ D)�H�AI I�B0H�$H�A0�Hc�J�|��H�$L�D$N�t�8��H�H�5H�81����H��tH�H��t����f���f.���H���s��H��tH�xH��t
H�����@�H���ff.���@��t&@��u@������tVH��t`@��tjH��@H�����u�H��t!H��u�H�H�8��H�H�8�a����H�H�8�@H�H�8�@H�H�8�@H�H�8�@��H��H��H�=���1���ATI��UH��SH�� H�<$�H�t$H��H�T$�H��H��I�D$ D�`:�H���H��H�=�H�P D�b:H�� []A\�f.���AUI��ATA��UH��SH��H�B H�t$H�x���D��H�L$L��Hc�H�1��H�|$H��u0H�\H�\$�H��H��H���#���H��[]A\A]���H��I���H��t�T$A9�|���tD9�|H�\$뫉�D������UH��S��H��H���Y���H��H���H��[]����fD��AVAUATM��USH� ��H�nH�^H�F Hc�H��L�0�H��H���I��H���I�]�� tsL��H�����H�H9�pI�u�� u)I�uI�U H�������[L��H��]A\A]A^��H��I�U����H�F H�(H�XH���d���@L��I�]�H�H9�~�I��u[L��L��H��]A\A]A^���f�H�=1����H�H��H�5H�81��D��ATL�%H�=USI�4$�H�H��H��H�;�����H� ��H�5�H�;�����H�E��H�5�H�;�����H�*��H�5�H�;�����H���H�5�H�;�����H����H�5�H�;1�H����H�5�H�;1�H���H�5�H�;1�H���H�5�H�;1�H����H�5�H�;1�H�\�H�5�H�;1�H����H�5�H�;H�H�5�H�;1�H�H�5�H�;1�H�^���H�5�H�;�����H�C���H�5�H�;1�H�H�5�H�;1�H��H�5�H�H�=H�0�H�1�H����H��H�5H��H�;1�H����H�5�H�H�=H�0�H��H��H�H��H�51�H�=�H�51�H�=�I�4$H�=�H�H��H��H������$�ƒ����fH���|<��H�xH�5�H�;�H���H�5�H�;�H���H�5�H�;1�H�B��H�5�H�;1�H�J��H�5�H�-H�;�����H�5H���H�;�����H�!���H�5�H�;H�����H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H�R��H�5�H�;1�H���H�5�H�;1�H����H�5�H�;1�H�H�5�H�;1�H����H�5�H�;1�H����H�5�H�-H��H�5H�}�H�}�H�H�5�H�}�H�H�5�I�4$H�=�H�H��H��H���6����ƒ�����H����<��H�xH�5�H�;�H��H�5�H�;�H���H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H�L��H�5�H�;1�H����H�5�H�;1�H�|��H�5�H�;1�H����H�5�H�;1�H�<��H�5�H�;1�H���H�5�H�;�H�	��H�5�H�;1�H�H�5�H�;1�H���H�5�H�;1�H����H�5�H��H�R�H�5H�;�H�;�H���H�5�H�;�����H���H�5�H�}�����H�-�H�5��H���[]�����H���H�5H��A\�DH��������H��tnH������H�H�8����fDH������ ���H��t.H������H�H�8����fDH�H�8���H�H�8����H�H�8�g����H�H�8�W����H�H�8�G����H�H�8����H�H�8�'����H�H�8����H�H�8�q����H�H�8������H�SH�=H�0�H�H��H��H��� ��H�ƒ����bH���h<�pH�xH�5�H�;1�H����H�5�H�;1�H�,��H�5�H�;�����H�Q��H�5�H�;1�H�)��H�5�H�;�H����H�5�H�;�H���H�5�H�;�H����H�5�H�;H�����1�H�5�1�H�5K��[H�=�fDH����������H��t6H�����H�H�8���fDH�H�8����f�H�H�8����H�H�8����H�H�8����H�H�8���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignreqrest.##<: ()(%li) (not-implemented)>@reason@exit_value (lambda)#<%s:%p@%li:%d%s>#<%s:%p%s>12too many arguments (%lu)no block given class module01given block not usedProcnewcall[]===yieldto_procaritycloneduphashto_sinspectlambda?bindingcurrysource_locationparametersLocalJumpErrorexit_valuereasonSystemStackErrorstack level too deepproclambdaMethod==eql?receivernameoriginal_nameownerunbindsuper_methodmethodpublic_methodsingleton_methodUnboundMethodbindinstance_methodpublic_instance_methoddefine_methoddefine_singleton_methodBindingevallocal_variableslocal_variable_getlocal_variable_setlocal_variable_defined?wrong local variable name `% li' for %lilocal variable `%li' not defined for %liundefined singleton method `%li' for `%li'rb_method_entry_min_max_arity: invalid method entry type (%d)tried to create Proc object without a blocksingleton method called for a different objectbind argument must be an instance of % liwrong argument type %s (expected Proc/Method)can't bind singleton method to a different classbind argument must be a subclass of % liwrong argument type (expected Proc/Method)main.define_method in the wrapped load is effective only in wrapper moduleundefined method `%li' for%s `%li'can't call unbound method; bind firstCan't create Binding from C level Proc��������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�
0DXl� ��E�Y
BA��4H�#B�J�E �J(�D0�D8�DP�
8D0A(B BBBD,xE�D0mA8LF�L�A �A(�D0�
(D ABBA�>Hj
F�HS�:E�g
LA�VI q
FP�)H\(!HT@>A�D wA`XtMD�E�E �A(�A0�L@m
0D(A BBBDh
0D(A BBBE8�_F�I�D �A(�D0
(D ABBG(kF�A�A �_AB8CE�xTh8|F�B�H �D(�D0�
(A ABBI(�hB�G�D �a
ABG(�{E�G b
AADF�E�G �A40�E�D�G@�
DAIR
DAIh,|KF�M�A �F@l AAB$�qJ�j
DA
�Gp�8�cH�D�C �q
AHGACBJ���HB�B�B �E(�A0�A8�Dp�
8D0A(B BBBAD\RB�E�E �D(�D0�J@LHHPW0A(A BBBT��F�I�A �D(�D@THEPTHA@D
(A ABBHD(F ABBL�kF�A�D �D0o
 AABF}8H@R8A0D
 AABALWA�M
h���W����6D o�HIL�B�E�A �D(�D@v
(D ABBA\
(K ABBL00�F�D�C �D@]
 AABFd(x/F�F�F �YAB<��F�I�B �A(�A0��
(A BBBKH�/F�B�B �B(�A0�A8�U@�
8D0A(B BBBE0E�TL%HVd*E�]�?L�r(�kF�A�A �_AB��	�	�K0Q
D 	[H0R$8	WE�G p
ACUA`	HI(x	�E�D D
ABf
AI�	/E�^�	)E�^�	%HV@�	F�H�B �G(�C0�G@
0A(A BBBC08
hE�C�D0c
DAL\FA$l
*E�D�I IIA(�
�E�G�G �
AAH�
�F�A�D �L�
LB�B�D �A(�G@�
(A ABBEx
(A ABBB0D XSE�G x
AA |PE�G u
AA,��E�C
P������
A8��F�E�D �A(�G@�
(A ABBJ(:F�D�D �Y
ABF8#H ZP6H mh� |YHi
OF
JH��i�X�HK�etO�%HX$
EE�G _
ADSA4,
�F�H�D �q
ABJLABd
0E�S
HIH�
`F�B�B �B(�A0�A8�DP�
8D0A(B BBBF�
&�
2HW
II�,,fB�D�D �D@S AAB8\�F�E�D �D(�D@Z
(A ABBI$�*E�D�I IIAL�+F�B�B �D(�A0�~
(G BBBFB
(J BBBN,F�O�A �G
AXJ @�L�:
R	#%9$Qj%��&��'�

,
L&j&�A�0�A�d�P�dx2p?xY�q�|��F����F�a�P�a�%p4-�I�c�#pH���X��x��H�X�k�`
k)�Cp>P�o������
��:�
�fVf-�BpJ�n���)������!��
.-�>C.XLk0qL���PM�	�	���	2�_A�	[k
s
k~k
��
�p
C��
��
��

�
-�
K�
\�
u���
���h�h�h	�7	p{U	�|	�
�	���	�
�	k
�
�
kA
�c
px
��
��
�K�
��
A�
�q�
A�;PcP�m?���?���@R���H��H@�e����W�
�0
 �N
 .�U
�z
��
��
��
63(664YP@_Yww#)`�w�����;_&���;X1XN�i`/w������������/���3�Qm�:�:��@?��#�k1�O k � � 	� �< �< � 0� W+!|+!��!��!��!�&�!��!O" O"<"V"o�"��")��"��"��"��%�")�%Jh&i&h{h&��&�p&*��&��(�&��(4a)Va)p�*u'p)L��*��*��*��*�*33+^�*S|3+��+�@+P��+.-.C�/W�/u�/��/�#0�#0�f0f0@1a1�i1�i1��1��122B�2c 2ew�2��2��2�3��2E3)�3B3�N�3r�3��30��3�@6��3`�@6f6:f6`�6��6�L7�L7�h7h7!�7>p7f��8+N�7h�8��7���8��8��8*��8��9��9B/BK_D$%&'#ejo
ty~�1����	�3�;�Q�G�R�e��0�p�`�����0��s����`	��(�!x'�-�3�9�?�E�K�Q�W�]�c�i�o�u�{������������-�8�G�R�Y�j����������������������#�)/	5;0A>GVM^ScYs_�e�kw���

 !"()*�����  6 C �L _ �q � � � � � � � � !!.!;!F!U!`!q!�!�!�!�!�!�!�!�!�!""3"A"N"c"o"y"�"�"�"�"�"�"�"�"
##$#A#e#{#�#�#Pk�#�#��#�#�#$#$*$>$\${$�$�$�$�$�$��$�$%@%"%1%<%I%S%a%l%~%�%�%�%��%�%�%�%*�%`H&�"&�1&D&  \&@ �i&� [�&0!W�&�!��&P"/�&�"%�&�&�&�&''%'4'?'J']'�(�r'�*�'�*�'�+��'�'�'�'�'(�/:(0#,(006@(p0�T(1Yg(p1�x(2�(�(�2%�(�(�(�(�(@6&�(p62	)�6� )P7,):)E)Q):[)k))�)�)�)�)�)�)*!*;*K*V*a*z*�*�B�.annobin_proc.c.annobin_proc.c_end.annobin_proc.c.hot.annobin_proc.c_end.hot.annobin_proc.c.unlikely.annobin_proc.c_end.unlikely.annobin_proc.c.startup.annobin_proc.c_end.startup.annobin_proc.c.exit.annobin_proc.c_end.exit.annobin_proc_memsize.start.annobin_proc_memsize.endproc_memsize.annobin_rb_proc_lambda_p.start.annobin_rb_proc_lambda_p.end.annobin_binding_memsize.start.annobin_binding_memsize.endbinding_memsize.annobin_bind_receiver.start.annobin_bind_receiver.endbind_receiver.annobin_proc_to_proc.start.annobin_proc_to_proc.endproc_to_proc.annobin_bm_memsize.start.annobin_bm_memsize.endbm_memsize.annobin_proc_mark.start.annobin_proc_mark.endproc_mark.annobin_binding_free.start.annobin_binding_free.endbinding_free.annobin_bm_free.start.annobin_bm_free.endbm_free.annobin_mnew_missing.start.annobin_mnew_missing.endmnew_missingmethod_data_type.annobin_proc_dup.start.annobin_proc_dup.endproc_dupproc_data_type.annobin_method_unbind.start.annobin_method_unbind.endmethod_unbind.annobin_method_owner.start.annobin_method_owner.endmethod_owner.annobin_method_receiver.start.annobin_method_receiver.endmethod_receiver.annobin_bm_mark.start.annobin_bm_mark.endbm_mark.annobin_iseq_location.start.annobin_iseq_location.endiseq_location.annobin_mlambda.start.annobin_mlambda.endmlambda.annobin_method_original_name.start.annobin_method_original_name.endmethod_original_name.annobin_method_name.start.annobin_method_name.endmethod_name.annobin_original_method_entry.start.annobin_original_method_entry.endoriginal_method_entry.annobin_mproc.start.annobin_mproc.endmproc.annobin_unnamed_parameters.start.annobin_unnamed_parameters.endunnamed_parametersrb_intern_id_cache.16186rb_intern_id_cache.16192.annobin_method_inspect.start.annobin_method_inspect.endmethod_inspect.annobin_proc_clone.start.annobin_proc_clone.endproc_clone.annobin_method_hash.start.annobin_method_hash.endmethod_hash.annobin_localjump_reason.start.annobin_localjump_reason.endlocaljump_reason.annobin_localjump_xvalue.start.annobin_localjump_xvalue.endlocaljump_xvalue.annobin_proc_to_s.start.annobin_proc_to_s.endproc_to_s.annobin_check_local_id.start.annobin_check_local_id.endcheck_local_id.annobin_bind_local_variable_defined_p.start.annobin_bind_local_variable_defined_p.endbind_local_variable_defined_p.annobin_bind_local_variable_get.start.annobin_bind_local_variable_get.endbind_local_variable_get.annobin_bind_local_variable_set.start.annobin_bind_local_variable_set.endbind_local_variable_set.annobin_bind_local_variables.start.annobin_bind_local_variables.endbind_local_variables.annobin_bind_eval.start.annobin_bind_eval.endbind_eval.annobin_binding_mark.start.annobin_binding_mark.endbinding_mark.annobin_respond_to_missing_p.start.annobin_respond_to_missing_p.endrespond_to_missing_p.annobin_mnew_internal.start.annobin_mnew_internal.endmnew_internal.annobin_mnew.start.annobin_mnew.endmnew.annobin_method_super_method.start.annobin_method_super_method.endmethod_super_method.annobin_rb_obj_singleton_method.start.annobin_rb_obj_singleton_method.end.annobin_rb_threadptr_tag_jump.isra.8.start.annobin_rb_threadptr_tag_jump.isra.8.endrb_threadptr_tag_jump.isra.8.annobin_rb_block_min_max_arity.isra.6.start.annobin_rb_block_min_max_arity.isra.6.endrb_block_min_max_arity.isra.6bmcallrb_method_entry_min_max_arity.isra.5.annobin_rb_method_entry_min_max_arity.isra.5.start.annobin_rb_method_entry_min_max_arity.isra.5.end.annobin_method_arity.start.annobin_method_arity.end.annobin_method_arity_m.start.annobin_method_arity_m.endmethod_arity_m.annobin_proc_new.start.annobin_proc_new.end.annobin_rb_block_proc.start.annobin_rb_block_proc.end.annobin_proc_call.start.annobin_proc_call.end.annobin_rb_block_lambda.start.annobin_rb_block_lambda.end.annobin_rb_proc_s_new.start.annobin_rb_proc_s_new.endrb_proc_s_new.annobin_method_clone.start.annobin_method_clone.endmethod_clone.annobin_umethod_bind.start.annobin_umethod_bind.endumethod_bind.annobin_rb_proc_wrap.start.annobin_rb_proc_wrap.end.annobin_rb_obj_is_proc.start.annobin_rb_obj_is_proc.end.annobin_rb_binding_alloc.start.annobin_rb_binding_alloc.end.annobin_binding_dup.start.annobin_binding_dup.endbinding_dup.annobin_binding_clone.start.annobin_binding_clone.endbinding_clone.annobin_rb_binding_new.start.annobin_rb_binding_new.end.annobin_rb_f_binding.start.annobin_rb_f_binding.endrb_f_binding.annobin_rb_block_clear_env_self.start.annobin_rb_block_clear_env_self.end.annobin_rb_proc_call.start.annobin_rb_proc_call.end.annobin_rb_proc_call_with_block.start.annobin_rb_proc_call_with_block.end.annobin_rb_proc_arity.start.annobin_rb_proc_arity.end.annobin_proc_arity.start.annobin_proc_arity.end.annobin_rb_block_arity.start.annobin_rb_block_arity.end.annobin_rb_hash_proc.start.annobin_rb_hash_proc.end.annobin_proc_hash.start.annobin_proc_hash.endproc_hash.annobin_rb_obj_is_method.start.annobin_rb_obj_is_method.end.annobin_rb_mod_define_method.start.annobin_rb_mod_define_method.endrb_mod_define_method.annobin_top_define_method.start.annobin_top_define_method.endtop_define_method.annobin_rb_obj_define_method.start.annobin_rb_obj_define_method.endrb_obj_define_method.annobin_method_eq.start.annobin_method_eq.endmethod_eq.annobin_rb_method_name_error.start.annobin_rb_method_name_error.end.annobin_obj_method.start.annobin_obj_method.end.annobin_rb_obj_method.start.annobin_rb_obj_method.end.annobin_rb_obj_public_method.start.annobin_rb_obj_public_method.end.annobin_rb_mod_public_instance_method.start.annobin_rb_mod_public_instance_method.endrb_mod_public_instance_method.annobin_rb_mod_instance_method.start.annobin_rb_mod_instance_method.endrb_mod_instance_method.annobin_rb_method_call_with_block.start.annobin_rb_method_call_with_block.end.annobin_bmcall.start.annobin_bmcall.end.annobin_rb_method_call.start.annobin_rb_method_call.end.annobin_rb_method_entry_arity.start.annobin_rb_method_entry_arity.end.annobin_rb_mod_method_arity.start.annobin_rb_mod_method_arity.end.annobin_rb_obj_method_arity.start.annobin_rb_obj_method_arity.end.annobin_rb_method_get_iseq.start.annobin_rb_method_get_iseq.end.annobin_rb_proc_get_iseq.start.annobin_rb_proc_get_iseq.end.annobin_rb_proc_location.start.annobin_rb_proc_location.end.annobin_method_def_location.start.annobin_method_def_location.endmethod_def_location.annobin_rb_method_location.start.annobin_rb_method_location.end.annobin_rb_proc_parameters.start.annobin_rb_proc_parameters.endrb_proc_parameters.annobin_method_proc.start.annobin_method_proc.endmethod_proc.annobin_rb_method_parameters.start.annobin_rb_method_parameters.endrb_method_parameters.annobin_proc_binding.start.annobin_proc_binding.endproc_binding.annobin_rb_method_entry_location.start.annobin_rb_method_entry_location.end.annobin_rb_mod_method_location.start.annobin_rb_mod_method_location.end.annobin_rb_obj_method_location.start.annobin_rb_obj_method_location.end.annobin_rb_proc_new.start.annobin_rb_proc_new.end.annobin_make_curry_proc.start.annobin_make_curry_proc.endmake_curry_proc.annobin_proc_curry.start.annobin_proc_curry.endproc_curry.annobin_rb_method_curry.start.annobin_rb_method_curry.endrb_method_curry.annobin_curry.start.annobin_curry.end.annobin_Init_Proc.start.annobin_Init_Proc.end.annobin_Init_Binding.start.annobin_Init_Binding.end.LC0.LC1.LC4.LC5.LC3.LC8.LC10.LC6.LC7.LC9.LC2.LC11.LC12.LC14.LC13.LC15.LC16.LC17.LC18.LC19.LC20.LC21.LC22.LC24.LC23.LC25.LC26.LC29.LC27.LC28.LC30.LC31.LC32.LC34.LC33.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouprb_proc_lambda_p_GLOBAL_OFFSET_TABLE_rb_gc_markruby_xfreeruby_current_vmruby_xcallocrb_data_typed_object_allocruby_xmallocrb_cProcrb_check_typeddatarb_cUnboundMethodrb_mark_method_entryrb_iseq_first_linenorb_ary_new_from_valuesrb_mRubyVMFrozenCorerb_funcallrb_id2symrb_method_entryrb_funcallvrb_ary_new_caparb_ary_pushrb_freeze_singleton_classrb_ary_storerb_intern2rb_str_buf_newrb_str_catrb_obj_classnamerb_str_cat_cstrrb_class_namerb_str_buf_appendrb_id2strrb_str_appendrb_str_catfrb_ivar_getrb_inspectrb_singleton_class_clonerb_obj_setuprb_singleton_class_attachedrb_copy_generic_ivarrb_hash_startst_hash_uintrb_hash_method_entryst_hash_endrb_iv_getrb_fix2intrb_sprintfrb_check_idrb_is_local_idrb_is_local_namerb_name_error_strrb_binding_add_dynavarsrb_intern_strrb_vm_env_local_variablesrb_scan_argsrb_f_evalrb_method_basic_definition_prb_method_entry_without_refinementsrb_print_inaccessiblerb_print_undefrb_obj_classrb_obj_singleton_methodrb_singleton_class_getrb_cMethodrb_method_entry_atrb_str_quote_unprintablerb_id_quote_unprintablerb_name_errorrb_bugruby_current_threadrb_vm_control_frame_block_ptrrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_vm_make_proc_lambdarb_warnrb_eArgErrorrb_raiserb_block_procrb_vm_invoke_procrb_block_given_prb_block_lambdarb_obj_call_initrb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolrb_obj_is_kind_ofrb_eTypeErrorrb_class_search_ancestorrb_include_class_newrb_proc_wraprb_obj_is_procrb_typeddata_is_kind_ofrb_binding_allocruby_binding_data_typerb_cBindingrb_binding_newrb_vm_make_bindingrb_block_clear_env_selfrb_proc_callrb_proc_call_with_blockrb_proc_arityrb_block_arityrb_hash_procrb_obj_is_methodrb_vm_cref_in_contextrb_to_idrb_class_inherited_prb_method_entry_setrb_add_methodrb_singleton_classrb_error_arityrb_cObjectrb_warningrb_method_entry_eqrb_method_name_errorrb_obj_methodrb_obj_public_methodrb_method_call_with_blockrb_vm_callrb_set_safe_level_forcerb_safe_levelrb_cArrayrb_gc_writebarrier_unprotectrb_method_callrb_method_entry_arityrb_mod_method_arityrb_obj_method_arityrb_method_get_iseqrb_proc_get_iseqrb_proc_locationrb_ary_duprb_method_locationrb_iseq_parametersrb_iteratememcpyrb_mem_clearrb_method_entry_locationrb_mod_method_locationrb_obj_method_locationrb_proc_newrb_ary_freezerb_ary_newrb_ary_plusInit_Procrb_define_classrb_undef_alloc_funcrb_define_singleton_methodrb_define_methodrb_define_aliasrb_eStandardErrorrb_eLocalJumpErrorrb_eExceptionrb_eSysStackErrorrb_vm_register_special_exceptionrb_define_global_functionrb_undef_methodrb_mKernelrb_cModulerb_define_private_methodrb_vm_top_selfInit_Binding������������������!���������1����������*��������������������+���������������������������>���������W��������������������+�/*���������;���������i+��������y��������������������+���������*��������������������������������������{+�������������������+������������������������������������������������0���������B���������w*����������+�������������������+���������������������������7*���������p���������w�����������������������������������������������%���������:���������H���������c1��������m���������w�2����������������������������+�����������������������������3���������������������������������������4�����������������G5��������L���������W���������h���������q���������|��������������������6�������������������7�������������������8����������������������������	���������	9��������	���������(	:��������0	���������I	���������d	���������o	���������{	8���������	����������	;���������	����������	����������	9���������	����������	����������	;���������	����������	5���������	����������	���������
���������(
���������4
���������_
���������x
+��������}
����������
����������
����������
����������
����������
<���������
=���������
>���������
���������?��������R���������Z���������q@��������x����������A���������������������������"���������<���������PB��������Z���������b���������e
C��������o
������������������V����������D�������������������������������������)���������h�������������������P������������������������������+������������������.���������T�������������������;���������d����������+�������������������������������������j���������w��������������������*��������������������������������������!���������O*�������������������E�����������������������������E�������������������+����������������������������F������������������+�����������������s*���������������������������������������-���������JG��������Q���������b*���������iG��������s����������*����������*����������������������������,���������G*��������������������+�����������������������������+�����������������������������������+���������S��������������������*����������+�����������������������������������������������-���������C*���������S*���������c*���������s*����������*����������+���������������������������Q���������XH��������b*���������l����������*��������������������+���������*���������������������������������������*����������*����������I�������������������*�������������������*���������#*���������3*���������C*���������W���������k*����������*����������*����������*����������*����������+������������+�����������#���������-��������G*��������S�������������������������������������������������*���������n *���������y ���������� *���������� J��������� ���������� *���������!����������!���������!*����������!���������:"*���������A"K��������K"���������^"���������j"����������"����������"
���������"����������"+���������"���������#��������&#
��������6#��������H#���������#���������#����������#L���������#*����������#����������#���������#��������
$���������%$����������$���������$���������$���������$����������$����������$M���������$*����������$���������%
��������%���������<%���������h%��������x%���������%*����������%N���������%����������%����������%���������%*����������%O���������%���������&*���������"&*��������C&P��������O&���������&���������&��������='+��������B'���������W'���������'*����������'*����������'*���������(*���������(*���������#(*���������3(*���������C(*���������S(*���������c(*���������s(*����������(*����������(Q���������(����������(����������(R���������(����������(S��������	)���������X)>���������)����������)*����������)���������7**���������c**���������s**����������**����������**����������**����������*���������*���������+*���������/+��������W+���������c+*����������+���������+*����������++���������+����������+*����������,���������-���������-���������-���������-���������-*���������.T��������
.���������q.*���������.����������.���������.���������.��������/*���������)/��������L/*���������V/J��������`/���������k/*����������/*����������/*����������/*����������/*����������/����������/����������0*����������0*����������0*����������0*����������0*���������1*���������1+�������� 1����������1#��������2$��������[2$���������2+���������2����������2$���������2(���������2��������3+��������#3���������>3)���������3$���������3#��������&4*��������.4��������i4���������q4����������4*���������4���������4#��������5*��������$5��������S5*��������[5���������5����������5���������6*��������6+��������+6*���������26U��������<6����������6*���������7*���������7*���������#7*���������37*���������C7*����������7����������70���������70���������7/��������8V��������!8���������;81��������a8���������l8����������8��������9���������
92��������90��������-9����������9����������9W���������9����������9*����������9J���������9���������	:*��������:X��������:4��������":*���������-:5��������C:Y��������H:6��������^:Z��������c:7��������y:[��������~:7���������:\���������:7���������:]���������:7���������:^���������:7���������:_���������:7���������:`���������:7��������;a��������;7��������';b��������,;7��������?;c��������D;7��������N;c��������U;d��������Z;8��������f;*���������m;e��������r;7���������;f���������;7���������;g���������;7���������;%���������;h���������;7���������;i���������;7���������;*9���������;j���������;4���������;*:��������<k��������
<7�������� <l��������%<7��������,<*;��������3<m��������;<4��������B<*<��������T<n��������Y<=��������`<*���������i<o��������n<>��������u<*���������~<p���������<>���������<q���������<4���������<*����������<5���������<Y���������<?���������<r��������=7��������=s��������=7��������1=b��������6=7��������I=`��������N=7��������U=*��������d=Z��������l=7���������=g���������=7���������=[���������=7���������=_���������=7���������=d���������=7���������=c���������=7���������=^���������=7��������>t��������>7��������)>u��������.>7��������A>v��������F>7��������Y>w��������^>7��������q>x��������v>7���������>'���������>h���������>7���������>i���������>7���������>y���������>7���������>*@���������>*���������>z���������>7���������>���������>{���������>7��������
?���������?|��������?7��������$?}��������)?4��������0?*���������;?5��������y?Y��������~??���������?r���������?7���������?s���������?7���������?b���������?7���������?`���������?7���������?_���������?7��������@d��������@7��������'@c��������,@7��������?@u��������D@7��������W@v��������\@7��������o@w��������t@7���������@~���������@7���������@'���������@h���������@7���������@i���������@7���������@y���������@7���������@*A���������@���������@7��������A���������A7��������*A���������/AB��������FA���������KA7��������PAC��������XA��������mA����������A*����������A*����������A*����������A*���������B*���������B*���������#B*���������3B*���������CB*���������SB*���������cB*���������sB*����������B*���������B����������B4���������B*���������B5���������BY���������B?���������B`��������C7��������Ca��������C7��������2C���������7C7��������JC���������OC7��������eC���������jC7���������C����������C7���������C����������C7���������Ct���������C7���������Cf���������C*���������D*���������#D*���������3D*���������CD*���������SD*���������B���������Z�����������������������������������������������������������H����������
����������
���������|���������
������������������6��������� �������� ��������{"����������/���������0!���������0!��������B1$���������2&���������3(��������d7)��������k9��������wAB���������C>�������� 0��
$,
P
X&�
�&�&�A�&�AAdDALdpdxx�d�x�x��x�0�8Fd�lF�F�a�F�a�a��$a,�P�X��������X���XXkDXLkpkx��k��������0�8
d�l
�
�f�
�f�f��$f,�P�X�������������	�	.D	�L	.p	.x	L�	.�	L�	L�	�
L
�0
�8
�	d
�l
�	�
�	�
k
�
�	�
k
�
k
�
�
$k
,�
P�
X�
��
��
��
��
��
��
�
�D�
L�p�xh���h�h��
h
�0
�8
�
d
�l
�
�
�
�
k�
�
�
k�
k�
�$k,�P�X��������A���AA�DAL�p�x?���?�?��?�0�8Hd�lH�H���H�����$�,PX�������������6D�L6p6xY�6�Y�Y�wYw0w8�dwl����;���;�;�X$;,XPXX��X������������D�L�p�x���������08:dl:�:��:����$,�P�X ��� � � � �  < D L< p< x� �< �� �� �+!� +!0+!8�!d+!l�!��!��!��!��!��!�O"$�!,O"PO"X"�O"�"�"��"�"��"�"�"D�"L�"p�"x�%��"��%��%�h&�%h&0h&8�&dh&l�&��&��(��&��(��(�a)$�(,a)Pa)X�*�a)��*��*��*��*��*�*�*D�*L�*p�*x3+��*�3+�3+��+3+�+0�+8.d�+l.�.��/�.��/��/��/$ �/, �/P �/X #0� �/� #0� #0� f0� #0� f0!f0!1D!f0L!1p!1x!i1�!1�!i1�!i1�!�1"i1"�10"�18"2d"�1l"2�"2�"�2�"2�"�2�"�2�"�2$#�2,#�2P#�2X#3�#�2�#3�#3�#�3�#3�#�3$�3$�3D$�3L$�3p$�3x$@6�$�3�$@6�$@6�$f6%@6%f60%f68%�6d%f6l%�6�%�6�%L7�%�6�%L7�%L7�%h7$&L7,&h7P&h7X&�7�&h7�&�7�&�7�&�8�&�7�&�8'�8'�8D'�8L'�8p'�8x'�9�'�8�'�9�'�9�'B(�9(B0(B8(_Dd(Bl(_D , - . /P�H<�7HL 8$G(KS��p�`Sh�pPx0�S��� 4H0\Ppp�����P�p��0�P`�p�����p�,�D�d0xP��
<p
X�
l�
��
��p�4�
lp�����P�`@��PP�l ����@�` �4�h@|`����4�P�h�@����� �  	@ $	� <	0!d	�!|	�!�	P"�	�"�	�"�	�"<
&p
p&�
�&�
�(�
p)4�*H�*\�*�@+��+� .�/<0T00lp0�1�p1�2� 2��2
�20
3h
�3�
�3�
@6�
p6�6P70p7`�7��8��8:D�B.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@,�T,�l,��,��,�'�_D"@���?,-E3 E= Et(8@x,�&,
S�mb�m�]@HS0,
|ho�ho��@xS0,�<q�<q��@�S0,�s�s��@�S0,2�t�2�w�.�z,)@T,;�z 6@U,N0�{.��{��{|�{S�{'�{W�{e�{x�{��{��{��{ �|`�@V�	,*x�x6-�	��*�_�file.o/         1690381920  1000  135   100644  151064    `
ELF>XB@@/.

"$!% &'��H��H�H��%��ff.������fDUH��SH����xH��uH�����u
H��H��[]�H���H�SH�5H��H�H�81��ff.����H�1��ff.�ATI��UH��SH��H9�r�J@H��L��H���H�H�H9�s.�;/u�H�CH9�v �{/t�/f.��8/uH��H9�u�H��[]A\�f.�H���H���fDATUH��SH��H���H��H��I���H�{H� tH�{L��H����H��H���H��[]A\�ff.����H��1�1��H��H���UH��AWAVAUATS��H��8�}�dH�%(H�E�1�H�E��9��v�;E��h�
A�L�e�f�Ic�H��H�����L�e�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%���L�|$I���L��D���A�ƃ��tA9�uE�H�}������k���1�A���tCA��Ic�I���fDH���U�9P��A��E��y�1�H�}���f.�H�U�dH3%(��H�e�[A\A]A^A_]�fDL���I���N����L���H�E��W���H)�H�L�����f.���f�H�}���p���L��E���E��]�������AVH�5AUI��ATUS�H�����L�%1���H�5L�5H���L��H���H��H����H�5H����Wf�I�4$H���H��L���L��A�T$��H�H��1�H�5H���H����H��I��H��t��H�5H���I�4$H���H��L���L��A�T$H��u(���H�H��H�5H��1����H���Z���H���H��H���H���f����H�5H���@��u"H�����tH�U�Ѓ���8�H��s-[H��]A\A]A^ÐH���H����H���H���V���A��u�I�����t�I�E������t�%H	�H�U�DL���[H�=]H��A\1�A]A^�ff.�@��SH���H�XH����sH������tH�t$pH�|$h�H�Đ[�H�sH�=�fD��SH���H�XH����sH������tH�t$`H�|$X�H�Đ[�H�sH�=�fD��SH���H�XH����sH������tH�t$PH�|$H�H�Đ[�H�sH�=�fD��S�H�XH���H�{H��t�[H���f��[�f���UH��SH���H�XH����Cu9�sH������tCH�@H�|$0H�x H�ĘH�D?[]Ð1�H����@�H�Ę[]�H�sH�=����H���w�?�H��H�����AUI���ATI��UH��S�����H���H��t
H����ý����I��t
L�����L���L�`L���A�|$�������tH���[]A\A]�I�t$H�=�ff.�f�ATI��UH��S��8t{�H�=��L��H���H��H����H�5H����H���H��H���H�5H�ߺ�H��H�=��H���H�=H���D��SH�����x[�H��H�=�ff.���SH��H��R�0���x[�H��H�=�fD��SH��H��R�0���x[�H��H�=�fD��SH��2���x[�H��H�=�ff.����ATI��USH��H�� �H�*���}H��t[H�EH�uH��S㥛� H�$H��H��?H��H�EH�D$H��H)�H�uH��Hc�H��H�T$H��?H��H��H��H)�Hc�H�L$H��L�����x=H�� []A\�D1�H��H�꿜������y���8&u��T���H��H�=�f�H�AT��A��UH��H��H��SH��H�8�D��H��H��H�[]A\H�8�UH��SH��H��H�7�� uiH����H���H���H��H�C�uH�����uO��u+H�����t"H��ƒ���tH�€�H�{H�t��t_H��H��[]�DH�w�f.�H��H�����u�H���`H��`u�H�E��`H��`t�H��H����y����H����fD��H�=%�=�t]H�==@tOH�== tAH�==`t3H�==t%H�==�t=�H�=H�HE��f�PXH�5H��H�H�81��f���H��H�5�H��t�@H��H��6H��?������ff.�@��H��H�5�H��t�@H��H��5H��?����o���ff.�@��H��H�5�H��t�@H��H��4H��?����/���ff.�@��H��H�5�H��t �@�%�= �HD�H������f���H��H�5�H��t �@�%�=`�HD�H������f���H��H�5�H��t �@�%�=��HD�H����b���f���H��H�5�H��t �@�%�=��HD�H����"���f���H��H�5�H��t �@�%�=�HD�H������f���H��H�5�H��tH�x0H�H��������f���H��H�5�H��t �@�%�=��HD�H����r���f���H��H�5�H��t �@�%�=@�HD�H����2���f���H��H�5�H��t�xH���������fD��H��H�5�H��t
�@ H��H�D�����D��H��H�5�H��t
�@H��H�D����D��H��H�5�H��tH�����H�@H��H�H!�H����e���D��H��H�5�H��t
�@H��H�D��5���D��H��H�5�H��t�x �O��H�H��H�Ѓ�����f���SH�5�H��t�X��9ø[HD�����ff.���UH�5H��SH���H��tlH�����u�CIt#H���[]�@H���x���H��t�C@u�1�H��[]�@H������H��u�Cu�1���f��Cu�1����!������UH�5SH��H���H��t\H�����tH�����H��t�E�t&H���[]��H�����H��u�Eu�1�H��[]�@�Eu�1���������UH�5SH��H���H��t\H�����tH���~���H��t�Et&H���[]��H������H��u�Eu�1�H��[]�@�E u�1����!������H��H�5�H��t@H�x0H��tH�@H�xH�D?H���D�H���fDH�������f���H��H�5�H��t0H�x0H�@H�xH�D?H���f.�H����r���f�SH�5�H��t�X��9ø[HD���?���ff.�@��UH�5H��SH���H��t|H�����u�CIt#H���[]�@H���x���H��t�C@u�1�H��[]�@H�5H���H��t&�x �����u�Cu�1���fD�Cu�1��������UH�5SH��H���H��tlH�����tH�����H��t�E�t9H���[]��H�5H���H��t&�x �d���u�Eu�1�H��[]Ð�Eu�1����������UH�5SH��H���H��tlH�����tH���^���H��t�Et9H���[]��H�5H���H��t&�x �����u�Eu�1�H��[]Ð�E u�1����q������H��H�5�H��tH�ppH�xhH����A������H��H�5�H��tH�p`H�xXH����������H��H�5�H��tH�pPH�xHH���������H��H�5�H��t0H�x@H��������?H9�wH�D?H���f.�H������f���H��H�5�H��t0H�x8H��������?H9�wH�D?H���f.�H����B���f���H��H�5�H��t0H�x(H��������?H9�wH�D?H���f.�H�����f���H��H�5�H��t0H�xH��������?H9�wH�D?H���f.�H������f���H��H�5�H��t(H�8H��������?H9�w
H�D?H���H����Z���f.�H��H�5�H��t�@H��H�%�H����"���f���SH�5H���H��t�@t	H��[��[����ff.����SH�5H���H��t�@tH��[�h�����[���@��ATUH��SH���H��H����H��u[H��]A\�H�5H���H��tIH�5H��H�hXL�``�H��t-H;hXt��[]��A\H������H���@�L;``u����ff.���USH��H��H9���H���H�{ H��t
�H�C H�} tg���H�U �o�oJH�oR P �oZ0X0�ob@`@�ojPhP�or`p`�ozpxp�o����H�C H��H��[]�@��ATI���USH�����tCH�L���H�hH����EtC1�L����}H�����x[�]A\�H���H���H�uH�=�H�H�5H�81��ff.�����fD����fD����fD��UH���SH��H���H�߃�t>���H���H�hH����}������tH���[]������H�uH�=����UH��S���H�����tC��u]H�}@��u$����H����Hc�[]H�D��������1���É��Hc�H��H�D[]ú1������AUATI���USH��H���H�߃������L��l$�H�XH����S�T$�C��L�l$L�%Z�L��L�����yB����t~M��
u@��tjH��1�[]A\A]�D��Uu0�SL��L�����x�H���[]A\A]�f���t�H�sH�=�����=���@1�����H����f�1�L����S�8���ff.���SH������H��H��������H��t@H�5H��th1�1�H���H�|$H��4HE�H�\$�H�D$H��[�fDH�����t�H��ƒ���t��ue�H�؃���t�H�5H��u��H�=�H��H��x���@H���_���H������R����H�؃���u��t������AVAUATI��U��SH��H��H�>H�t$H���������I���H��t.�I9�t$�I9�t�I��I9�t
H�����tq�H�\$L9�t)��w��~ ��uH�����tH��ƒ���t��uSH���e�H�|$�H�|$�H��[]A\A]A^�@H������Q����H��L��L���H���z����DU��SH��H���H����H��H��[]����ff.�f���1����AWAVAUATI��USH��HH�H�t$�� ������M�l$��1ۄ�tE��H��H����H9�}IL��H�<�H�|$(@��uH�����t�������H��
H���� u�I;\$}I�D$ �DH�|$�,H���H��H�@I�$����I�L$A�1�H�$H�L$(H�L$H�L$0H�L$�f�H����H9��PH�$H�<�H�|$(@��� @���#�������H��H���H���@����������8E����H�|$�H�3�� ��H��L�{��I��H����H�|$�[H���K�4/L��H����H�t$(H� �BH�V�:/�K�8��@H��H���H�t$(H��I���L��H���I�$�� ����I;l$�1I�D$ H�<�H�|$(@�����H����������H�3E1�H�D$(�� ����L�{L�kH��� ���H�t$(H���H�t$(�X������u�L9��H�D$H�T$H�|$0L��H�=9H�D$8�H�D$(���DH�t$H���H�t$H��I���L��H���H�t$(����fDH�VH��������:/�����L)�H��H���H�t$(���f.��������fDH�H�H�CH��HH��[]A\A]A^A_�H������G���H��ʃ����A���,���I����������ƒ�������%H	�H�I�$���f�H�|$�H�T$H��� ��H�BI�$�� ��H����H��H��H����DH��M�l$��1ۄ��L���1�1��H���������H�T$(H��� t>H�BH�I�$����fDI�$H������ �x���I�L$H�Q��u���fDH����뽾H����������H�H�5H�81����H��H�5����ff.�f�����uH�H9�tH�vH����PH�H�5H�81��ff.���SH���H��[���x����ATA��U���S��H��H���D9�uQH���DH�;@��uH�����t
�����t
H�\$�H��EH���A9��H��[]A\��D������H���@��H����USH��H��(H�|$��H�|$�H�
H��H��t5H���H�hH����uH�ڿ�H��([]�f.�H�l$H�l$H�|$�H��H�D$�H��H�D$�H�ڿH���H��([]�ff.���H��H��H���*���1҅�x�D$%�=@�HD�H��H�Ę�f���H��H��H�t$H�t$ �����xH��$�H��$��H�ĸ�H�D$H�D$H�|$�H�=H��H�D$�f.���H��H��H�t$H�t$ �s�����xH��$�H�|$x�H�ĸ�H�D$H�D$H�|$�H�=H��H�D$�ff.�f���H��H��H�t$H�t$ ������xH�t$pH�|$h�H�ĸ�H�D$H�D$H�|$�H�=H��H�D$���SH��H��H�� H�������x:H��$�H�������x&H��$�H9$u�H��$�H9L$t@1�H�� [�ff.�f���H��H��H���:���1҅�x�D$%�= �HD�H��H�Ę�f���H��H��H�����1҅�x�D$%�=`�HD�H��H�Ę�f���H��H��H�����1҅�x�D$%�=��HD�H��H�Ę�f���H��H��H���z���1҅�x�D$%�=�HD�H��H�Ę�f���H��H��H���:�����x
�|$ �����u1�H����H��ff.���SH��H��H�������x
�\$�9�t1�H�Đ[�D�����H��H��H�t$H�t$ �����x4H�@H�|$PH�xH�D?H�ĸ�fD�H�ĸ�H�D$H�D$H�|$�H�=H��H�D$���H��H��H���*�����x>H�|$0�H��tH�@H�xH�D?H�Ę��H�Ę��H�Ę�ff.���H��H��H�����1҅�xH�|$0H҃�H��H�Ę�ff.�f���H��H��H���z���1҅�x�D$%�=��HD�H��H�Ę�f���H��H��H���:�����x.�T$���uH�Ę�H�H�Ę%�H����H�Ę�ff.���H��H��H��������x.�T$���uH�Ę�H�H�Ę%�H����H�Ę�ff.���H��H��H���z���H�ĘH�H��?H�Ѓ��fD��SH��H�5H��H�H98t/H�H�0H9�tg@��uH�����t
�����t>H�5H��H�=1��H��H����H�ĐH�[H��?H�Ѓ��fD�H�����t�H�5�ff.�@AUATUSH��(H�|$��H�D$H�D$H�|$A�d�d�H��H�D$�H�D$��d1�H���H��L�h�6f�H��H���H9�uLE�H��H���Ic�H��H���L��H�E tH�uH�|$H� t�H�H���H9�t�H��xH��H���H��(H��[]A\A]�1�H���H�t$H�=�f.���H�����@��USH���H��H�l$H�t$�H�l$H�|$�H��H�D$�H��H�D$�H�T$�H��������H�{ H��t
�H�C ���foD$foL$ HfoT$0P fo\$@X0fod$P`@fol$`hPfot$pp`fo�$�xpfo�$���H�C H�Ĩ�[]�H�t$H�=�f���U�SH��H��(H�t$���tOH�H�l$H�l$H�|$�H��H�D$�H��H�D$�H��H�����xH��(�[]�H���H���H�t$H�=�f���S�H�� H�t$H�$�H�D$H�D$H�|$�H�D$H��H�D$H�<$�H�|$H�$�H�<$H�D$�H�|$H�D$�H�|$H���H��H�����xH�� �[�H�4$H�|$�z��f.�AVL�vAUI��ATI��UH��S1�H���TH����H9�}tL��H�<��H�D$H�|$�H�D$H�D$H��� u7H�|$H��H�t$L��H��A��H�E�� u�H�EH9�}H�E ��H�D$H�x��DH��[]A\A]A^���S�H���H��1�H�=R���-���[H�D�fD��UH��S���H��(���H��L�L$L�D$H�H��1��H�<$�����H��t�H�|$�D$�����H��t�H�t$H�T$H�=����D$���H��(H�D[]�@��UH��S���H��(���H��L�L$L�D$H�H��1��H�<$�����H��t�H�|$�D$�����H��t�H�t$H�T$H�=����D$����H��(H�D[]�@��UH��S���H��(���H�L$H��L�D$H�1��H�|$@��t/�H�t$H�T$H�=Y���D$���H��(H�D[]�@���f���ATI��U���SH��P�H�\$��L��H�KL�L$1�L�CH��H�|$H��u
1�H�|$ t(�H�|$ H�D$0H�T$8�H�T$HH�D$@H�D$0H�t$H��H�D$H�=������H��P[H�D]A\�ff.����U�SH��(H�\$H�t$H�$�H�\$H�|$H���H�l$H�D$H�<$�H�|$H�$�H�<$H�D$�H��H�$�H��H���H��H�����xH��(�[]�H�4$H�|$���ff.�f���U�SH��(H�\$H�t$H�$�H�\$H�|$H���H�l$H�D$H�<$�H�|$H�$�H�<$H�D$�H��H�$�H��H���H��H�����xH��(�[]�H�4$H�|$����ff.�f���S�H��H�\$H�t$�H�\$H�|$�H��H�D$�H��H�D$�H�T$�H������t�|$(����H�Ġ[�H�t$H�=�ff.�f�US��H��H�|$H�l$��H�l$H�|$�H��H�D$�H��H�D$�H�T$�H���1҅�x#\$(��H�H�҃�H�ĨH��[]���H����o���ff.�@��H����O���ff.�@��H����/���ff.�@��S�H��H�\$H�t$�H�\$H�|$�H��H�D$�H��H�D$�H�T$�H���1҅�x�D$(%�=��HD�H�ĠH��[�ff.����S�H�� H�\$H�t$�H�\$H�|$�H��H�D$�H��H�D$��H���H�� H�[H��?H�Ѓ��ff.���S�H�� H�\$H�t$�H�\$H�|$�H��H�D$�H��H�D$��H���H�� H�[H��?H�Ѓ��ff.���S�H�� H�\$H�t$�H�\$H�|$�H��H�D$�H��H�D$��H���H�� H�[H��?H�Ѓ��ff.���S�H�� H�\$H�t$�H�\$H�|$�H��H�D$�H��H�D$��H���H�� H�[H��?H�Ѓ��ff.���S�H�� H�\$H�t$�H�\$H�|$�H��H�D$�H��H�D$��H���H�� H�[H��?H�Ѓ��ff.���S�H�� H�\$H�t$�H�\$H�|$�H��H�D$�H��H�D$��H���H�� H�[H��?H�Ѓ��ff.���AUATUSH��8���A��H�>I��@��uxH�����toH��ƒ���ub�� tMH�~VH�W����u\�1������H���H�5H�81���H�W��u�D@��uR������t���H�=�H��tAL��D�����C�<3w*H���Hc�H�>��fD�������H�=�H��tPI�D$D��L��H�D$�;�H�|$H��$�����������C����M�N��A�e��-����H�=�H��tPD��L�����I�|$H�t$�j�����I�|$H��$��P���x|��=t_��>����<ty������������'t��\uH��
fDH�H���H�5H�81����H��$�H9L$ht@1�H��8[]A\A]øH��$�H9L$h|���f.��H��$�H9L$h��f.�I�t$1��$��f�I�|$H��$��^���x���$��9��v�����n���@I�t$1��<����Y����I�|$H��$�����1����4�����$��������HD������I�t$1����������I�t$1���������I�|$H��$�����1���������$������`�HD�����I�|$H��$��^���1����������$������ �HD��c����I�t$1���Q����I�|$H��$���H�H��?H�Ѓ��'���DI�|$H��$������1���������$��������HD�����I�|$��������@I�|$��i������@I�t$1��4�������I�t$1��\�����I�|$H��$��>���1����d�����$�������HD��C����I�t$1�����1����I�t$1��������I�|$�������@I�t$1��\�������I�t$1��d��������I�|$H��$�����1��������H��$�H������fDH��$H��$���x���fDH��$�H��$���X���fDH��$H��$��8���fDL��D���P�I�T$I�t$1���������1��H�D$H�D$H�|$�H�=H��H�D$����USH��H��H�H�(H��tb����o�oKH�oS P �o[0X0�oc@`@�okPhP�os`p`�o{pxp�o��H����H��H��H��[H�]�f.���USH���H���H���H�XH���H�CH��t2H���H�pH� u+H��H������tH���H�Ę[]�@H�p��H�sH�=�f���USH���H��H�XH����sH������tH���H�Ę[]�H�sH�=����S�H��H�\$H�t$�H�\$H�|$�H��H�D$�H��H�\$H�D$�H�ڿH������tH���H�Ġ[�H�t$H�=�ff.���SH��H��H�D$H�t$H�D$�H�\$H��H��H�D$�H���xH���H�Ġ[�H�t$H�=�f���ATUSH��H9�s-H��I��� �H��L��H���H�H�H9�v�;/u�H��[]A\�ff.���H������AUATUSH��H9�s}H��H��I��E1���H��L��H���H�H�H9�v.�;/u�H�CH9�v �{/t�2f.��8/uH��H9�u�H��L��[]A\A]�@I��H���I��H���E1���ff.�AWI��AVI��AUATUSH��H�|$ H��H�t$H�L$D�D$@D�L$D�I�>I��H�D$H�H�D$(H���_I9���H�D$pH�D$0H�D$`H�D$8L��I��H��@H�T$L��H���I��H��I��I)�I9�v�8/t	�A�}/uI��M9�u�M��I����H�D$H�8I��u	�;.�D�I��H�D$ H�I�$�� u{H����H9�|yH��L��L���H�|$L���H��H����H�|$(�H9���H���H�L$H�L��M9��(���H��[]A\A]A^A_�fDI�D$H9�}��H�5L����n���D�;.t�H�D$H�8�2���fDL���H�pH� tH�pH�T$0���������$�%�=���L���H�|$H��H���H�D$L� �/����{.�����H�D$ H�(H��� uWH����H9�����H��H�H�T$H�4H����H��H)�H��H�D$ HD�H�0H�D$H�8H�����H�GH9������H�H��H�D$`H�|$(�H�|$L��H���L����H��H�PH� tH�PH��H�T$PH�L$H�H�L$HH�T$PH��� ��H��I��A��J�H9����:/��H���
@�8/�gH��H9�u�I��I)�M��L�D$H��L�t$H��H�\$E1�D�D$@�}H�|$ A��L��H���m���H�D$8H�D$hH�;H�D$`�L��L��H�������	H�=�H�D$(H�����L�Y�9�����8���D$@�����D$D���}��H�D$L� �<���H��H�L$P�H�L$PL�D$H1�H�D$XH��L��H�L$`L�D$P�H��H�D$HH�D$H�8�L�L$XH�L$HL�D$PI9�tH��H��L��L�D$H�L�D$HH��H�D$H�H�D$ L����H�����H�����L��H�=��L��H�=�(����H9�s1��?/��H��w������UH��SH��H��H� u/H��H��t'H�p H��轹���H��H��[]�fDH����H�H��H�5H�81��f���SH��H�=�H��tH��H��[�[���H�H�5H�81����AWAVAUATUSH��HH�|$�H�t$�T$H�D$0�H�D$H�D$8H�|$�H��H�D$�H�|$H�D$(H��t!H�D$H�D$8�H��H�D$�H�D$H�D$(H��� �L�l$(H�D$(H�(I��H����H�|$(L�L���L9��BA�}/t�6D�;/�H��H9�u�H�|$(H��1�H��L)�E1�1��H�D$8H��L�/A�� �|I��L�wA��L�l$ M��L��L��H���}���I9��$�L�d$8L�t$ I��M��tE1�A�H��L��L��L������H��tE1�A�L��H��L��L�����D�D$L��H��L��A�L�����H�D$8�u(H�����t H��у������H����H��H[]A\A]A^A_��I9���H�|$H����L�/A�� ��L�wL�o�M�L��M9���A�>/t���}/�~H��I9�u�L��H�|$1�L��L)�E1��H��H�D$8L�/A�� �����DL�wL�o���H�D$(L�hH�D$(H�h����I��L�wA���_����I9��	�H�D$0H�D$0H��� ��L�l$0H�D$0L�0I��I��A��H�|$0O�|5�M9���A�}/��L����8/u{H��I9�u�H�|$0L��1��H��H�D$8���fDH�pH�|$8L)�H�t$ ����DH�D$0L�hH�D$0L�p�n���f���H��.���DI��I��M)��D1��
���M��E1��l���H������I���q���ff.���H��H�1�H��L�D$�H�4$H�|$1��H���ff.�f���H��H�1�H��L�D$�H�4$H�|$��H���f.���AWAVI��AUATI��UH��SH��(H�t$H����H�A�L��/u�H�����/t��u@H�D$����L�{��H�L$H��tH�H��t	H�D$H�EH��(L��[]A\A]A^A_ÐL�L��H��H��H�D$�I��H�����8/uf�I��A�?/t�H�t$L��L���f���I��L)�H�D$M9�s&A�L��<.t�9f��<.u)H��I9�u�H�D$�H���fD�����fDE1���H�t$<.H��L��LD��H�H�I9�w�L��L)�M��HDD$���I���R������AW1�H�AVAUATUSH��XH�\$0H�L$(I�������H�|$(�H�t$0H��H�D$(H��tR�H��H��t@H�T$(H��� uVH��H�z��H�D$@t�?uVH���H��X[]A\A]A^A_�DH�|$(�H�T$(H�D$0H��H��� t�H�BH�D$@H��t�H�z�?t�H�T$@H�t$8H���L�d$@I��M����H�|$0��H�|$(L�d$8H��� ��H����L9��QL��L���H�t$(H��H�$�H�$��5���H������)���H��ʃ����H���
����H�T$(�������H�������H��փ��������H	�H�����H���H�|$0�n����_���f�H���I��H�D$0L�A�� �I��A��L�d$@M����M����O�H�D$8H��L��L�l$$L��L�L$L��L�$H�D$�Hc|$$L�$H��H�T$H�D$L�L���L�L$��*��M9�}AL�d$8M��tnH�\$HH�|$(H�D$0H��� �{���H�G�y���L�d$8�u���fDM��K�'L��H��M)�L�L$O�/L��L�$�L�$L�L$I9���L�d$@L�d$8�DL�H�����D$HD$$H�I9��O����|$.t|O�4'L�4$M9�syM��fDH�4$L��H��L���9D$HcD$$MD�I�L9$$w�M)�M������D�����fDL��L��L��M������N�������L�d$����L�4$�f���ATUSH��H�|$�H�|$H�D$�H�|$I��H�/�� ��H�����L�L��I9�sA�<$/t�@�;/uH��H9�u�H��I�L$H�S�H��H��H9�LG�H���H��HD�I9���L)�L��H���H�t$H��H�����u!H�����tH��Ѓ���(�H��sH��H��[]A\ÐH�o�J����H�D$�u�H�����t�H�������t�%H	�H��D�H�=�H��H��H��[]A\���H���@��SH��H��H�t$�H�t$�H�D$���H�|$H���H��H���H��[����AWAVI��AUATI��USH��H��H����H�H�,L��H��H���I��H����I��A���/t�L����.uH�����.t�E1��u$�m��/t+L��H��H���H�H����t��.u�I�����M��t#M��t>M9�t9I�EH��L)�H9øHE�I�H��L��[]A\A]A^A_�M��t�f�I�����I���J���D��
���fD��SH��H�� H�t$�H�|$H�D$�H�|$H��H��� ��H����H�D$�H�t$H��H���H�T$H��~kH)�H�|$H����uAH�����t9H��ʃ���~RH�T$��u"H�����tH��փ���t��H	�H�H�� [�H�G�w����1�1��H�� [Ð�H��r����H��H��H�=�f.���1��?/�����AWA��AVI��AUATUSL��H��HH�|$8�L$(�H�|$8H�D$ �H�|$8I��L�'A�� �pI��A��K�D%H�D$�L�H�D$A�� �TI��H�kA��M��H�D$81ɉL$�uH������jA�}~u	E����L�������I�����L$(I��D���L���H�t$8H���H��H���L�A�� ��H�kL�cJ�t%H��H9�s�}/t�@�?/uH��H9�u�H��H�T$M���©��I���aDM��DI��A�>/t�L��L)�I��I9���L��/N�|-H���L��H���H�t$8H���H��H���L9�sA��/�4M��H��I)�L���I�UL9��~A�/H��H��H�T$ �H�T$ I9��,H�CA�GA�M��H�D$(���t1��.����/��H�T$H�t$L���H�I�A���u�M9���1�A�?@��L�H9���}/H��t�fD�x/uH��H�PH9�u�I9�����INjD$��t%��u H�����tH��ƒ����)��H�L��H��H)��H�|$8H���H�#���H��HH��[]A\A]A^A_�f�M�M9�s�L��H��H�k�H� �H���H�k�?���A�EM�}</�w���oH�T$H�t$L���I��I��M)�M9���L��L��H���H�#���L��H���H�t$H���H��H���H�{H� tH�{����UH�H�8M����H��L�L$8H�|$M��D��H�1��f�H���H��������D��D$�x���f�M�I9�v�L��H��H�k�H� tH�kN�|-���f�M�L9�s�L��H��H�T$ H�k�H� H�T$ tH�kN�|-�J����A�U�����/�I���I�FA�VM9���I���F���fDM9�rM�nA�VM���*���f.�L��H��H)�H�rH�T$ �M��H�T$ M)�J�DL9�s,I��L��L��L�\$ L���L�\$ M�A�/��M�L9�s�L��H��L�\$0H�T$ �H�T$ L�\$0H� �,H�kL�|�f���.�������/�^����������L�g����H�kL�c���L��H��M)�H)�H�rH�T$�H�T$J�D2L9�r:�M�L9�s�L��H��H�T$H�k�H� H�T$tH�kL�|I��L��L��L��M��L��H��H)����DM�M9�s�L��H��H�k�H� ���H�k���I��H�kA��M���c���@H�l$(����fD1�H��M���A�}tM�uH��E1�E1������DI��M��I)�I�U����DI��A�VM������L�A�� �oI��H�kA��M��N�|%�D$�[�����H��H�D$8H��H�D$�H��I���H�L$ I��I��H�D$H9�tfH��L��H���H�|$H��I���H�L$ I��H�D$H9�t6H��L��H���H�0I��� �)H��L�H��I���M�M9�r�L��H��L�L$L�{�H� L�L$tL�{L��L��L���H���I��t
1�L���H�t$H���L�K�4'A�� uCI��H�k�D$A��M�����H�E�����H�51��H�kL�c���H�kL�c�D$�S���A�H�T$L��H���H��t(M�nA�VI��M���*����H����������A�/L����L�HL�`�����USH��H���H��H��tH���H�þ1��H�޹1�I��H���H�0H��� uH����H���H��H��[]�f�H�p��f.���H��H��t0H��L�D$H�1��H�t$H�<$�H����H�8��H���ff.���UH���SH��1�H���H��H��1�I��1��H�0H��� uH����H���H��H��[]�H�p��f���USH��H���H��H��tH���H�þ1��H�޹H��I����H�0H��� u H����H���H��H��[]��H�p��f���H��H��t0H��L�D$H�1��H�t$H�<$�H����H�8��H���ff.�S�H��1��H��1�1�I���[��ff.�AWAVAUATUSH���H�D$H�|$H�ljt$H�D$�H��H�������H�l$H�M�� �'H�MH��L�4L�d$01��I�ŋD$���D$�;�L��L��H���I��H��t�E/M���=I9��4A�L��L��H�޿�A�Dž�u��D$H�����@u�H�����D$����u�H�������L��L��H���I���t���fD�H��I���L��H����H�5H���H��H��H�]�H�MH�l$�� ��H��������@�H���������L$H�H��H�H�=�ɋL$HHD�1��H��u\H�D$H�D$(H�D$�A�H���D��[]A\A]A^A_�DH�]�H����T$�L$H��tH�H��H�=��E/�H�H��H�=1����D��H��toATUH��S�L�d�
@H�kI9�r?�:H���H��H��H��ID�H��H)���H���U�����u�[]A\�@[�]A\�fD��f���UH��1�H�����SH�=����1�H������t$H�É��H��޿���t���H�Ę��[]�@�D$1�%�=�@����f.���AWA��AVAUI��ATUH��SH��h�H�}���8~I��M�e�5H����Å�uA�>.uAA�F<.��</u0E��~k1�L���A�����u]H�L��H�5H�81��f�H�D$HH�D$(H�D$X�H�D$HH���FfD1�H��h��[]A\A]A^A_�DL�����I��M�4$A�� uxI��A��H�uH��t�1�M�|$�fDL��L��H���H�t�H��t�L���L��I�$ tI�|$���t�I�uL����]���I�E�^���@M�t$�f�L������I��H�E��~=A��u7I�����t.�ƒ���t$��tH�L��H�5H�81��@M�t$�� tM�t$M�eE�������1�L��������������DI�}�I��H�@H��� ��H����H�D$ ���H��I���H�uH�D$H���JL��\$<H�L$PH��L�l$0H�D$I�FH�$H�l$H��L��M��1��A���@H����H9���H��H�<�H�l$XH�|$PD�����H�H�D$P�� ������„�uPL��M��1�1�H���H�<$I� tI�~�����M��uH�|$tI��ƒ���t��I�H��H�D$HH��� �S���H;X}%H�@ �X���A�F���f�H�x���o���H�t$ L���H�D$H�L$H�D$H�4�H������\$<1�L���H�D$(H�D$XH�D$H���L�l$0L��I�u����\$I�E������I�D$H�D$ �8���@��UH��SH��H���H��H��H�߉�[]����AVAUATUS��H��0H�|$H�|$��8~H����H���A�ą�tLE1��~H�|$1��A������:H�����tXH�\$E����H��0H��[]A\A]A^���}.u�E<.u�E</t�H�D$H�D$(�H�D$H����1�H��0H��[]A\A]A^�H�|$�����~B�u>H�����t6H��у���t)��t$H��H�H�5H�81��f�H�t$H���c���H�D$H� uH�hA����fDH�hA������E1�L�d$ ��H��H����K@H����I9���H��J�<�L�d$(H�|$ �����H�H�D$ �� u2����„�u1I��H�D$H��� u�L;h��H�@ �@H�x�„�t�H�|$I��1�1�H��L�u�H�E tL�uL�����t���~1�H���T�����tlH�t$H���C���H������H������H��H���%���H��0H��H��[]A\A]A^�f�1�H��1���,���H�H��H�5H�81��L���K���ff.����SH���H��[������ATH�=US�L�%H�H�=I�4$H��H�H�5�H�=H������H�5����H�=�����H�5���H�=����H�5���H�=�ў���H�5U��H�=蹞���H�5=���H�=衞���H�5���H�=艞���H�5-��H�=�q����H�5����H�=�Y����H�5���H�=�A����H�5��H�=�)����H�5
���H�=�����H�5����H�=����H�5-���H�=����H�5����H�=�ɝ���H�5=���H�=豝���H�5պ��H�=虝���H�5}���H�=聝���H�5���H�=�i����H�5
���H�=�Q����H�5����H�=�9����H�5]���H�=�!����H�55��H�=�	����H�5���H�=���H�5���H�=�ٜ���H�5����H�=���H�;�H����H�5�H�;�H���H�5�H�;�H�L��H�5�H�;�H�����H�5�H�;�H�6���H�5�H�;�H�����H�5�H�-H�;�H�5H���H�;�����H����H�5�H�;�����H���H�5�H�;�����H�l���H�5�H�;H�����H�5�H�;�����H�����H�5�H�;�H����H�5�H�;�H����H�5�H�;�H����H�5�H�;�����H����H�5�H�;�����H��H�5�H�;�H�x���H�5�H�;�����H�m���H�5�H�;�H�����H�5�H�;H������H�5�H�;H������H�5�H�;�����H����H�5�H�;�����H�f��H�5�H�;�����H�K��H�5�H�;�H�@�H�5�H�;�H���H�5�H�;�H�:���H�5��H�=�H���H�;H�5H��H��H�;H�H�5�H�;�H���H�5�H�;�����H�����H�5�H�;�H�5��H�=�H���H�;H�5H���I�<$1�H���H�5�H�;1�H�l��H�5�H�;1�H�����H�5�H�;1�H����H�5�H�;1�H�����H�5�H�;1�H��H�5�H�;1�H�ؔ��H�5�H�;�H�}���H�5�H�;�H�R���H�5�H�;�H�w���H�5�H�;�H�<���H�5�H�;H�5�I�<$H��H��H�=�H�5�H�=�H�5�H�=�H�5�H�=�H�5�H�=��H�5�H�=�H�5�H�=�H�5�H�=�H�5�H�=�H�5�H�=�H�5�H�=�  H�5�H�=� H�5�H�=�  H�5�H�=�H�5�H�=�H�5�H�=��H�5�H�=�H�5�H�=�H�5�H�=�H�5�H�=�	H�5�H�=�H���H�=H�5H���H�;1�H���H�5�H�;1�H�Б��H�5������H�5��H�=�H�H�;H�5H��H�H�5%���H��H��H�;�H�;���H�5�H�;�H�Т��H�5�H�H�;H�0�H�;�H����H�5�H�;1�H���H�5�H�;1�H�#���H�5�H�;1�H�ˣ��H�5�H�;1�H�S���H�5�H�;1�H�˙��H�5�H�;1�H�s���H�5�H�;1�H�+���H�5�H�;1�H���H�5�H�;1�H�����H�5�H�;1�H����H�5�H�;1�H�����H�5�H�;1�H�Û��H�5�H�;1�H�۞��H�5�H�;1�H�s���H�5�H�;1�H�+���H�5�H�;1�H���H�5�H�;1�H�����H�5�H�;1�H��H�5�H�;1�H����H�5�H�;1�H�����H�5�H�;1�H�?���H�5�H�;1�H�����H�5�H�;1�H����H�5�H�;1�H�����H�5�H�;1�H�/���H�5�H�;1�H�����H�5�H�;1�H�����H�5�H�;1�H�W���H�5�H�;1�H�����H�5�H�;1�H�'���H�5�H�;1�H�ߕ��H�5�H�;1�H�����H�5�H�;1�H�����H�5�H�;1�H�G���H�5�H�;1�H�?���H�5�H�;1�H���H�5�H�;1�H�����H�5�H�;1�H�7���H�5�H�;1�H�ߓ��H�5�H�;1�H�����H�5�H�;1�H�/���H�5�H�;1�[H�֒��]H�5A\�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignpath name must be ASCII-compatible (%s): %li%sexists? is a deprecated name, use %sexist? insteadcouldn't find HOME environment -- expanding `~'non-absolute home of %.*s%.0liInsecure world writable dir %s in %sPATH, mode 0%o#<%s: uninitialized>#< , =0%lo0x%lx>()filedirectorycharacterSpecialblockSpecialfifolinksocketunknownuninitialized File::Statnot opened for writingto_pathrecursive arrayto_ioIOFileTest.FileTest#File.2*1*\unknown command '%s%c'unknown command "\x%02X"bcdefgGkloOprRsSuwWxXzMAC=<>resolving/user %li doesn't existHOME11.non-absolute homeLOAD_loading from unsafe file %sloading from unsafe path %sFileTestFiledirectory?exist?exists?readable?readable_real?world_readable?writable?writable_real?world_writable?executable?executable_real?file?zero?size?sizeowned?grpowned?pipe?symlink?socket?blockdev?chardev?setuid?setgid?sticky?identical?statlstatftypeatimemtimectimebirthtimeutimechmodchownlchmodlchownsymlinkreadlinkunlinkdeleterenameumasktruncateexpand_pathabsolute_pathrealpathrealdirpathbasenamedirnameextnamepathSeparatorSEPARATORsplitjoinALT_SEPARATOR:PATH_SEPARATORflockConstantsRDONLYWRONLYRDWRAPPENDCREATEXCLNONBLOCKTRUNCNOCTTYBINARYSYNCDSYNCRSYNCNOFOLLOWNOATIMEDIRECTLOCK_SHLOCK_EXLOCK_UNLOCK_NBNULLtestStatinitializeinitialize_copy<=>devdev_majordev_minorinomodenlinkuidgidrdevrdev_majorrdev_minorblksizeblocksinspectrb_file_s_sizerb_file_s_statrb_file_s_lstatrb_file_s_ftyperb_file_s_atimerb_file_s_mtimerb_file_s_ctimeutime_internalchmod_internalchown_internallchown_internalunlink_internalsys_fail2rb_file_s_truncaterb_io_statrb_file_lstatrb_file_atimerb_file_mtimerb_file_ctimerb_file_sizerb_file_chmodrb_file_chownrb_file_truncaterb_file_flockrb_f_testrb_stat_initrb_readlinkrealpath_rec/dev/null��������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0
(DTA�D�D ^
DAAp,�zB�D�D �X
ABK(�TB�A�D �IAB�HM,��A�C
I�����T
GL(!F�I�E �A(�A0��
(D BBBBY(H EDB xZE�G�|
AA �ZE�G�|
AA �ZE�G�|
AA�7E�a
JF4�E�D�G�G
FAB\
AAA<HN8T�F�J�D �D(�I0U
(F ABBA��B�D�D ��"E�M
A�*E�U
A�*E�U
A$E�O
A0 �F�D�A �G@�
 AABF(T@I�F�J �\AB(��A�D�G i
DAF�w�AAK�1HX
L�1HX
L1HX
L0>Hp
AL>Hp
Ah>Hp
A�>Hp
A�>Hp
A�.H]
D�>Hp
A�>Hp
A*HX
E,+HX
FH+HX
Fd;Hc
K�+HX
F�7Hc
G�5E�f
E4��E�K�D `
FAEY
AAE4E�H�G m
FAHY
AAE4DE�H�G m
FAHY
AAE$|^Hr
FI
GD
E�NHm
KD
E�1A�f
E4��E�K�D `
FAEY
AAE4�E�H�G m
FAHl
AAB4P�E�H�G m
FAHl
AAB�/H]
E�/H]
E�/H]
E�NHm
KD
E�NHm
KD
ENHm
KD
E<NHm
KD
E\FHl
DD
E|.DX
M �4E�^
EF
A �<E�^
MF
A4��F�A�D �^
DBAz
AEP$	�E�A�G �DA,@	�F�I�A �D
FBDp	
�	
�	
(�	yE�I�G {
FAI4�	�E�D�K h
FAMg
FAAL
"F�B�I �A(�G@y
(C ABBF[
(F ABBJ `
�E�D W
AG@�
�F�B�B �D(�C0�G@�
0A(A BBBE$�
#A�C�G IIA�
L�B�B�B �B(�D0�A8�D�Q
8D0A(B BBBATh5]|E�L0�B�D�H �J0V
 AABA��4��A�A�G@Z
AAKBAA,>K�rDfK�r
A`cK�o
A|`K�l
A �cE�M�OA�>K�r�>K�r�>K�r
>K�r
EK�e
HL <
?E�J�b
AF `
}K�v
GL
A �
eK�y
DL
DL�
3K�g�
>K�r �
UK�d
AK
ML �
UK�d
AK
ML *K�R 8�E�Q�^
CQ8\B�B�A �A(�DP�
(D ABBA�(�E�A�O��
FAA(��E�F�G@S
FAD �E�I0�
FA<(�B�F�E �D(�D0�F@�0A(A BBBh*E�_$��E�D�K@pFA$��E�D�K@pFA(�wE�D�K@P
FAE,�F�D�H �Dp� AFB(0�E�F�D@~
FAA(\�E�F�D@~
FAA ��E�L�_
AA(�}A�A�I�lDA�� �E�L�nD8eE�I0ICXeE�I0ICxeE�I0IC�eE�I0IC�eE�I0IC�eE�I0IC<�oF�B�A �A(�G�8
(A ABBA$8�E�A�G uGH(`�E�A�O�\
AAE(�XE�A�G�x
AAA ��E�L�a
AA �^E�J�|
AA(EF�A�A �yAB,8@�F�B�A �A(�D0d
(D ABBEL|�B�E�E �B(�A0�A8�G�P
8A0A(B BBBG�(�nE�D�G l
DAG=E�[
EL(�F�B�B �B(�A0�A8�D��
8A0A(B BBBIx3H j�6H mH�xF�B�E �B(�D0�D8�D`f
8D0A(B BBBBH��F�K�B �B(�A0�A8�D�u
8A0A(B BBBF<@PF�A�A �D0�
 DABBU GAB��HE�G zAH�F�B�E �B(�D0�A8�G@�
8D0A(B BBBA(�E�G0�
AA]
AB,@
LT 	F�E�E �B(�A0�A8�G��
8D0A(B BBBJ(�vE�A�G [
DAC�RH p
HQ(�^E�I�I x
DAD(~E�A�G ^
DAHHRH p
HQh%A�_L�KB�B�B �B(�A0�A8�G��
8D0A(B BBBF8�~K�A�D �P
ABEAFBG���(vE�M�P�u
CAEH<�F�E�B �E(�A0�D8�D��
8C0A(B BBBF$�(E�D�G IIAl��F�B�B �A(�A0�F`c
0D(A BBBHy
0D(A BBBD�
0G(A BBBC E�L,<iF�H�A �DHI	#%9$Qj%��&��'�,M*l 
~*���0T�����"�H1�L*e�zq*���0T��������<��L�k���!�����*��Z���*�20Z@�O�l���Z�����'��7�'�0�*
9�X�u����s����(�s�+	
���
#+	BR	_0	"o�~R	��	�`	*�p��	��	��	*`"�	@�	\�	$kPz�	��
��	���@��
4�
@Ml������g��w�g	�0	p@	�^	�z	�1�	��	
�	�1�	
�	A


1
A
(
�
?
P
>I
�
b
�
y
�
>�
�
�
�
�
>�
�
N�
>�
N�'P>1�J�a�.k�����>���>�>�>�j@*%j@�Yp+e�����+�����;�
;!
+.
;N
wl
@7}
w�
��
�5�
��
O�
���
O�-P7�POg�qO���P^������N��1(171P�g@�q��o����o���p���//+/H_c0/q_���`/������N�.<�NL.h~�0N�~����N����F0NO .a .tN���P4������<��	b"��.bOnp����� ��@��� �
3�U�u�
������
���i�y /iN�kp�{��"�"�X�"�$	=f��C� #�CX-XI-#c`�pP#5�-#�C#�0#E>	�C#��#�#&�#?�#Y/$q�#|/$�<$�0$�<$�H$H$"%7P$�?%bN%�N%��%�P%f�0��%�#&�%c* 9#&X�&u0&`���&��&��&c��&
>','>>>'`~'�@'>�~'��'��'>��'�'�'>+�'ME(m(E�E(��(�P(?��(�
)�(}�$
)Bu)^)emu)��)��)3��)��)��)>��)'U*M*UfU*��*�`*U��*��*	�**�*9�+W�*�h�+��,��+����,��,��, �,( �-B �,O x
^ �-� ^.� �-�� �� ^.� /!`.�!/,!�/E!/�Q!�/q!�/�!�/*�!�/�!|0�!�/��!|0"1+"�0�;"1Z"�1w"1w�"�1�"42�"�1��"42�"�2#@2�%#�2C#�3_#�2�n#�3�##4�#�3��#�##4�#�4�#04}$�4,$�4J$�4[$�4y$�4�$�4�$�4�$5�$�4�$5%�5-%5�?%�5h%6�%�5e�%6�%u6�%6e&u6+&�6P&�6eh&�6�&U7�&�6e�&U7�&�7	'`7e!'�7C'58c'�7ev'58�'�>�'@8o�'h
�'�>�'F?�'F?(�?+(P?�9(�H(�?b(8@z(�?X�(��(8@�(�@�(@@��(��(�@
).A))�@^8)�G).Ag)uA�)uA�)�A�)�A�)%B#*%B?*GY*0B�f*	*�
�*G�*9G�*9G�*�G+�G'+�GH+�Gl+�K�+�K�+#L�+�K3�+#L,fL.,0L6A,fLg,�M�,�M�,�Q�,�M��,�Q�,S-S=-S\-Sn-S�-XS�-SH�-XS�-zT.zT#.mUB.�T�T.mUq.�U�.�U�.�U�.�U�.�^&/�^I/6_j/6_�/�_�/�_�/�_0�_%0~`H0~`o0�`�0�`�0a�0�`%�0a1[c1aK,1[cI1�cd1�c�1Vd�1Vd�1Lh�1Lh2xh&2xhG24kf24k�2Xk�2Xk�2�y�2�
$%&'#�2�2�2�2�2$�2�2�2*33,
3.30353?"3P(3].3b43g:3n@3vF3�L3�R3�X3�^3�d3�j3�p30v3�|3��3��3�3�31�35�3��3��3��3C�39�3E�3]�3h�3b�3e�3��3g�3y�3��3��34�4�4�4�4�4�$4�*4�0464<4!B41H4=N4NT4TZ4Z`4`f4el4lr4vx4|~4��4��4��4��4��4��4��4��4��4��4��4��4��4��4��4��4��4�4	�4�4�4!5(5/565<5E 5Q&5_-5h45t;5}B5�I5�P5�W5�^5�e5�l5�s5�z5��5��5��5��5��5��5��5��5�5�5�5�5�5"�5'�5-�53�5<�5D�5K6S
6[6c6k"6p)6u06z76�>6�E6�L6�S6�Z6�a6�h6�o6�v6�}6��6��6��6��6��6��6�6�6�6�6

 !"()*�677-7<7O7X7s7�7�7�7�7�7�7�7�7�7�788&898H8S8d8t8�8�8�8�8�8�8�8�8�899'949D9O9Y9e9l9}9�9�!�!��9�9�9��9�9��9�9	:(:H:b:z:�:�:�:�:�:�:�:�:�:�:;;;u;,;I;\;0�x;�;�;�;�; ��;�;<<-<D<Y<k<|<�<P�<�<�<�<�<�<�<	=�#=#=@$8=N=V=%>j=u=�=��=�
!�=�=#i#�=�=�=�=�=�=�>�>�>0AE>�A4>�A�O>\>f>s>�> G�>@Gn�>�>�>�G=�>�>�G��>�>�>pLx?$?6?A?V?d?�?�?�QP�?�?�?`S�?pU�?��?@�U
@�U 	5@I@P@]@i@y@�@�^v�@@_R�@�_^�@`~�@�`R�@	AA`c~A�cv/AJA[AaA`d�wA�A�A�A�APh(�A�h��A@k�A`kiBBB+B=BKB\BsB�B�B�B�B�B.annobin_file.c.annobin_file.c_end.annobin_file.c.hot.annobin_file.c_end.hot.annobin_file.c.unlikely.annobin_file.c_end.unlikely.annobin_file.c.startup.annobin_file.c_end.startup.annobin_file.c.exit.annobin_file.c_end.exit.annobin_stat_memsize.start.annobin_stat_memsize.endstat_memsize.annobin_rb_stat_dev_major.start.annobin_rb_stat_dev_major.endrb_stat_dev_major.annobin_check_path_encoding.start.annobin_check_path_encoding.endcheck_path_encoding.annobin_rb_stat_s_alloc.start.annobin_rb_stat_s_alloc.endrb_stat_s_allocstat_data_type.annobin_chompdirsep.start.annobin_chompdirsep.endchompdirsep.annobin_copy_home_path.start.annobin_copy_home_path.endcopy_home_path.annobin_loadopen_func.start.annobin_loadopen_func.endloadopen_func.annobin_rb_group_member.start.annobin_rb_group_member.endrb_group_member.annobin_rb_stat_inspect.start.annobin_rb_stat_inspect.endrb_stat_inspectmember.14430.annobin_rb_file_ctime.start.annobin_rb_file_ctime.endrb_file_ctime__func__.14694.annobin_rb_file_mtime.start.annobin_rb_file_mtime.endrb_file_mtime__func__.14680.annobin_rb_file_atime.start.annobin_rb_file_atime.endrb_file_atime__func__.14666.annobin_rb_file_path.start.annobin_rb_file_path.endrb_file_path.annobin_rb_file_size.start.annobin_rb_file_size.endrb_file_size__func__.14700.annobin_rb_thread_flock.start.annobin_rb_thread_flock.endrb_thread_flock.annobin_rb_file_chown.start.annobin_rb_file_chown.endrb_file_chown__func__.14755.annobin_sys_fail2.start.annobin_sys_fail2.endsys_fail2__func__.14806.annobin_unlink_internal.start.annobin_unlink_internal.endunlink_internal__func__.14848.annobin_lchown_internal.start.annobin_lchown_internal.endlchown_internal__func__.14762.annobin_chown_internal.start.annobin_chown_internal.end__func__.14737.annobin_chmod_internal.start.annobin_chmod_internal.endchmod_internal__func__.14706.annobin_utime_internal.start.annobin_utime_internal.endutime_internaltry_utimensat.14785__func__.14787.annobin_define_filetest_function.start.annobin_define_filetest_function.enddefine_filetest_function.annobin_copy_path_class.start.annobin_copy_path_class.endcopy_path_class.annobin_rb_file_ftype.isra.7.start.annobin_rb_file_ftype.isra.7.endrb_file_ftype.isra.7.annobin_get_stat.part.8.start.annobin_get_stat.part.8.endget_stat.part.8.annobin_rb_stat_sticky.start.annobin_rb_stat_sticky.endrb_stat_sticky.annobin_rb_stat_sgid.start.annobin_rb_stat_sgid.endrb_stat_sgid.annobin_rb_stat_suid.start.annobin_rb_stat_suid.endrb_stat_suid.annobin_rb_stat_c.start.annobin_rb_stat_c.endrb_stat_c.annobin_rb_stat_b.start.annobin_rb_stat_b.endrb_stat_b.annobin_rb_stat_S.start.annobin_rb_stat_S.endrb_stat_S.annobin_rb_stat_l.start.annobin_rb_stat_l.endrb_stat_l.annobin_rb_stat_p.start.annobin_rb_stat_p.endrb_stat_p.annobin_rb_stat_z.start.annobin_rb_stat_z.endrb_stat_z.annobin_rb_stat_f.start.annobin_rb_stat_f.endrb_stat_f.annobin_rb_stat_d.start.annobin_rb_stat_d.endrb_stat_d.annobin_rb_stat_ftype.start.annobin_rb_stat_ftype.endrb_stat_ftype.annobin_rb_stat_gid.start.annobin_rb_stat_gid.endrb_stat_gid.annobin_rb_stat_uid.start.annobin_rb_stat_uid.endrb_stat_uid.annobin_rb_stat_nlink.start.annobin_rb_stat_nlink.endrb_stat_nlink.annobin_rb_stat_mode.start.annobin_rb_stat_mode.endrb_stat_mode.annobin_rb_stat_grpowned.start.annobin_rb_stat_grpowned.endrb_stat_grpowned.annobin_rb_stat_owned.start.annobin_rb_stat_owned.endrb_stat_owned.annobin_rb_stat_x.start.annobin_rb_stat_x.endrb_stat_x.annobin_rb_stat_w.start.annobin_rb_stat_w.endrb_stat_w.annobin_rb_stat_r.start.annobin_rb_stat_r.endrb_stat_r.annobin_rb_stat_s.start.annobin_rb_stat_s.endrb_stat_s.annobin_rb_stat_size.start.annobin_rb_stat_size.endrb_stat_size.annobin_rb_stat_rowned.start.annobin_rb_stat_rowned.endrb_stat_rowned.annobin_rb_stat_X.start.annobin_rb_stat_X.endrb_stat_X.annobin_rb_stat_W.start.annobin_rb_stat_W.endrb_stat_W.annobin_rb_stat_R.start.annobin_rb_stat_R.endrb_stat_R.annobin_rb_stat_ctime.start.annobin_rb_stat_ctime.endrb_stat_ctime.annobin_rb_stat_mtime.start.annobin_rb_stat_mtime.endrb_stat_mtime.annobin_rb_stat_atime.start.annobin_rb_stat_atime.endrb_stat_atime.annobin_rb_stat_blocks.start.annobin_rb_stat_blocks.endrb_stat_blocks.annobin_rb_stat_blksize.start.annobin_rb_stat_blksize.endrb_stat_blksize.annobin_rb_stat_rdev.start.annobin_rb_stat_rdev.endrb_stat_rdev.annobin_rb_stat_ino.start.annobin_rb_stat_ino.endrb_stat_ino.annobin_rb_stat_dev.start.annobin_rb_stat_dev.endrb_stat_dev.annobin_rb_stat_ww.part.9.start.annobin_rb_stat_ww.part.9.endrb_stat_ww.part.9rb_stat_wr.part.10.annobin_rb_stat_ww.start.annobin_rb_stat_ww.endrb_stat_ww.annobin_rb_stat_wr.start.annobin_rb_stat_wr.endrb_stat_wr.annobin_rb_stat_cmp.start.annobin_rb_stat_cmp.endrb_stat_cmp.annobin_rb_stat_init_copy.start.annobin_rb_stat_init_copy.endrb_stat_init_copy.annobin_rb_file_truncate.start.annobin_rb_file_truncate.endrb_file_truncate__func__.15272.annobin_rb_stat_rdev_major.start.annobin_rb_stat_rdev_major.endrb_stat_rdev_major.annobin_rb_stat_rdev_minor.start.annobin_rb_stat_rdev_minor.endrb_stat_rdev_minor.annobin_rb_stat_dev_minor.start.annobin_rb_stat_dev_minor.endrb_stat_dev_minor.annobin_rb_file_chmod.start.annobin_rb_file_chmod.endrb_file_chmod__func__.14721.annobin_rb_file_s_umask.start.annobin_rb_file_s_umask.endrb_file_s_umask.annobin_rb_file_flock.start.annobin_rb_file_flock.endrb_file_flock__func__.15293.annobin_rb_get_path_check_to_string.start.annobin_rb_get_path_check_to_string.endrb_intern_id_cache.14284.annobin_rb_get_path_check_convert.start.annobin_rb_get_path_check_convert.end.annobin_rb_get_path_check.start.annobin_rb_get_path_check.endrb_get_path_check.annobin_rb_get_path_no_checksafe.start.annobin_rb_get_path_no_checksafe.end.annobin_rb_file_join.start.annobin_rb_file_join.endrb_file_joinfile_inspect_join.annobin_rb_file_s_join.start.annobin_rb_file_s_join.endrb_file_s_join.annobin_file_inspect_join.start.annobin_file_inspect_join.end.annobin_rb_get_path.start.annobin_rb_get_path.end.annobin_test_check.start.annobin_test_check.endtest_check.annobin_rb_file_s_path.start.annobin_rb_file_s_path.endrb_file_s_path.annobin_rb_str_encode_ospath.start.annobin_rb_str_encode_ospath.end.annobin_rb_stat.start.annobin_rb_stat.endrb_stat.annobin_rb_file_directory_p.start.annobin_rb_file_directory_p.end.annobin_rb_file_s_ctime.start.annobin_rb_file_s_ctime.endrb_file_s_ctime__func__.14688.annobin_rb_file_s_mtime.start.annobin_rb_file_s_mtime.endrb_file_s_mtime__func__.14674.annobin_rb_file_s_atime.start.annobin_rb_file_s_atime.endrb_file_s_atime__func__.14660.annobin_rb_file_identical_p.start.annobin_rb_file_identical_p.endrb_file_identical_p.annobin_rb_file_chardev_p.start.annobin_rb_file_chardev_p.endrb_file_chardev_p.annobin_rb_file_blockdev_p.start.annobin_rb_file_blockdev_p.endrb_file_blockdev_p.annobin_rb_file_socket_p.start.annobin_rb_file_socket_p.endrb_file_socket_p.annobin_rb_file_pipe_p.start.annobin_rb_file_pipe_p.endrb_file_pipe_p.annobin_rb_file_grpowned_p.start.annobin_rb_file_grpowned_p.endrb_file_grpowned_p.annobin_rb_file_owned_p.start.annobin_rb_file_owned_p.endrb_file_owned_p.annobin_rb_file_s_size.start.annobin_rb_file_s_size.endrb_file_s_size__func__.14640.annobin_rb_file_size_p.start.annobin_rb_file_size_p.endrb_file_size_p.annobin_rb_file_zero_p.start.annobin_rb_file_zero_p.endrb_file_zero_p.annobin_rb_file_file_p.start.annobin_rb_file_file_p.endrb_file_file_p.annobin_rb_file_world_writable_p.start.annobin_rb_file_world_writable_p.endrb_file_world_writable_p.annobin_rb_file_world_readable_p.start.annobin_rb_file_world_readable_p.endrb_file_world_readable_p.annobin_rb_file_exist_p.start.annobin_rb_file_exist_p.endrb_file_exist_p.annobin_rb_file_exists_p.start.annobin_rb_file_exists_p.endrb_file_exists_p.annobin_rb_readlink.start.annobin_rb_readlink.endrb_readlink__func__.14842.annobin_rb_file_s_readlink.start.annobin_rb_file_s_readlink.endrb_file_s_readlink.annobin_rb_stat_init.start.annobin_rb_stat_init.endrb_stat_init__func__.15359.annobin_rb_file_s_truncate.start.annobin_rb_file_s_truncate.endrb_file_s_truncate__func__.15265.annobin_rb_file_s_rename.start.annobin_rb_file_s_rename.endrb_file_s_rename.annobin_apply2files.start.annobin_apply2files.endapply2files.annobin_rb_file_s_unlink.start.annobin_rb_file_s_unlink.endrb_file_s_unlink.annobin_rb_file_s_lchown.start.annobin_rb_file_s_lchown.endrb_file_s_lchown.annobin_rb_file_s_chown.start.annobin_rb_file_s_chown.endrb_file_s_chown.annobin_rb_file_s_chmod.start.annobin_rb_file_s_chmod.endrb_file_s_chmod.annobin_rb_file_s_utime.start.annobin_rb_file_s_utime.endrb_file_s_utime.annobin_rb_file_s_symlink.start.annobin_rb_file_s_symlink.endrb_file_s_symlink.annobin_rb_file_s_link.start.annobin_rb_file_s_link.endrb_file_s_link.annobin_rb_file_s_ftype.start.annobin_rb_file_s_ftype.endrb_file_s_ftype__func__.14652.annobin_check3rdbyte.start.annobin_check3rdbyte.endcheck3rdbyte.annobin_rb_file_sticky_p.start.annobin_rb_file_sticky_p.endrb_file_sticky_p.annobin_rb_file_sgid_p.start.annobin_rb_file_sgid_p.endrb_file_sgid_p.annobin_rb_file_suid_p.start.annobin_rb_file_suid_p.endrb_file_suid_p.annobin_rb_file_symlink_p.start.annobin_rb_file_symlink_p.endrb_file_symlink_p.annobin_rb_file_executable_real_p.start.annobin_rb_file_executable_real_p.endrb_file_executable_real_p.annobin_rb_file_executable_p.start.annobin_rb_file_executable_p.endrb_file_executable_p.annobin_rb_file_writable_real_p.start.annobin_rb_file_writable_real_p.endrb_file_writable_real_p.annobin_rb_file_writable_p.start.annobin_rb_file_writable_p.endrb_file_writable_p.annobin_rb_file_readable_real_p.start.annobin_rb_file_readable_real_p.endrb_file_readable_real_p.annobin_rb_file_readable_p.start.annobin_rb_file_readable_p.endrb_file_readable_p.annobin_rb_f_test.start.annobin_rb_f_test.endrb_f_test__func__.15339.annobin_rb_stat_new.start.annobin_rb_stat_new.end.annobin_rb_file_lstat.start.annobin_rb_file_lstat.endrb_file_lstat__func__.14472.annobin_rb_io_stat.start.annobin_rb_io_stat.endrb_io_stat__func__.14457.annobin_rb_file_s_lstat.start.annobin_rb_file_s_lstat.endrb_file_s_lstat__func__.14465.annobin_rb_file_s_stat.start.annobin_rb_file_s_stat.endrb_file_s_stat__func__.14451.annobin_rb_enc_path_next.start.annobin_rb_enc_path_next.end.annobin_rb_enc_path_skip_prefix.start.annobin_rb_enc_path_skip_prefix.end.annobin_rb_enc_path_last_separator.start.annobin_rb_enc_path_last_separator.end.annobin_realpath_rec.start.annobin_realpath_rec.endrealpath_recrb_intern_id_cache.15052__func__.15066.annobin_rb_enc_path_end.start.annobin_rb_enc_path_end.end.annobin_rb_home_dir_of.start.annobin_rb_home_dir_of.end.annobin_rb_default_home_dir.start.annobin_rb_default_home_dir.end.annobin_rb_realpath_internal.start.annobin_rb_realpath_internal.end.annobin_rb_file_s_realdirpath.start.annobin_rb_file_s_realdirpath.endrb_file_s_realdirpath.annobin_rb_file_s_realpath.start.annobin_rb_file_s_realpath.endrb_file_s_realpath.annobin_ruby_enc_find_basename.start.annobin_ruby_enc_find_basename.end.annobin_rb_file_s_basename.start.annobin_rb_file_s_basename.endrb_file_s_basename.annobin_rb_file_dirname.start.annobin_rb_file_dirname.end.annobin_rb_file_s_dirname.start.annobin_rb_file_s_dirname.endrb_file_s_dirname.annobin_rb_file_s_split.start.annobin_rb_file_s_split.endrb_file_s_split.annobin_ruby_enc_find_extname.start.annobin_ruby_enc_find_extname.end.annobin_rb_file_s_extname.start.annobin_rb_file_s_extname.endrb_file_s_extname.annobin_rb_file_const.start.annobin_rb_file_const.end.annobin_rb_is_absolute_path.start.annobin_rb_is_absolute_path.end.annobin_rb_file_expand_path_internal.start.annobin_rb_file_expand_path_internal.end.annobin_rb_file_expand_path.start.annobin_rb_file_expand_path.end.annobin_rb_file_s_expand_path.start.annobin_rb_file_s_expand_path.end.annobin_rb_file_expand_path_fast.start.annobin_rb_file_expand_path_fast.end.annobin_rb_file_absolute_path.start.annobin_rb_file_absolute_path.end.annobin_rb_file_s_absolute_path.start.annobin_rb_file_s_absolute_path.end.annobin_file_expand_path_1.start.annobin_file_expand_path_1.endfile_expand_path_1.annobin_path_check_0.start.annobin_path_check_0.endpath_check_0.annobin_rb_path_check.start.annobin_rb_path_check.end.annobin_rb_file_load_ok.start.annobin_rb_file_load_ok.end.annobin_rb_find_file_ext_safe.start.annobin_rb_find_file_ext_safe.end.annobin_rb_find_file_ext.start.annobin_rb_find_file_ext.end.annobin_rb_find_file_safe.start.annobin_rb_find_file_safe.end.annobin_rb_find_file.start.annobin_rb_find_file.end.annobin_Init_File.start.annobin_Init_File.endnull_device.LC0.LC2.LC5.LC3.LC7.LC4.LC6.LC8.LC1.LC9.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC17.LC18.LC19.LC20.LC21.LC22.LC23.LC24.LC25.LC26.LC28.LC27.LC29.LC30.LC34.LC35.LC36.LC37.LC31.LC32.LC33.LC39.LC38.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC50.LC49.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.LC120.LC121.LC122.LC123.LC124.LC125.LC126.LC127.LC128.LC129.LC130.LC131.LC132.LC133.LC134.LC135.LC136.LC137.LC138.LC139.LC140.LC141.LC142.LC143.LC144.LC145.LC146.LC147.LC148.LC149.LC150.LC151.LC152.LC153.LC154.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_enc_getrb_enc_dummy_prb_str_inspectrb_eEncCompatErrorrb_raiserb_data_typed_object_allocrb_enc_mbclenstrlenrb_str_resizememcpyrb_filesystem_encodingrb_enc_associaterb_cloexec_opengetgidgetegidgetgroupsrb_alloc_tmp_bufferrb_free_tmp_buffer__stack_chk_failrb_check_typeddatarb_str_buf_newrb_str_catrb_obj_classnamerb_str_cat_cstrrb_str_catfrb_inspectrb_str_appendrb_num2ulongrb_sprintfrb_io_taint_checkrb_io_check_closed__fxstatrb_time_nano_newrb_sys_fail_path_inrb_io_check_initializedrb_str_duprb_obj_taintrb_io_flush_rawrb_int2bigrb_securerb_num2uintfchown__errno_locationrb_str_new_staticrb_str_ellipsizeutimesutimensatrb_mFileTestrb_define_module_functionrb_cFilerb_define_singleton_methodrb_obj_classrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_freeze_singleton_classrb_usascii_str_new_cstrrb_eTypeErrorgeteuidgetuidrb_uint2bigrb_obj_is_kind_ofrb_obj_init_copyruby_xfreeruby_xmallocftruncaterb_num2longrb_eIOErrorrb_fix2intfchmodrb_num2intrb_error_arityrb_thread_io_blocking_regionrb_thread_wait_forrb_get_path_check_to_stringrb_check_funcallrb_string_valuerb_intern2rb_insecure_operationrb_get_path_check_convertrb_enc_from_indexrb_default_internal_encodingrb_usascii_encodingrb_ascii8bit_encodingrb_enc_str_asciionly_prb_string_value_cstrrb_str_new_frozenrb_enc_get_indexrb_str_conv_encrb_get_path_no_checksaferb_enc_checkrb_str_buf_appendrb_enc_copyrb_exec_recursiverb_str_set_lenrb_cStringrb_eArgErrorrb_get_pathrb_safe_levelrb_str_encode_ospathrb_check_convert_type__xstatrb_file_directory_prb_warningrb_class_inherited_prb_enc_str_new_staticrb_str_modify_expandrb_scan_argsrb_time_timespec__lxstateaccessrb_isprintstrchrrb_stat_newrb_cStatrb_enc_path_nextrb_enc_path_skip_prefixrb_enc_path_last_separatorrb_hash_arefrb_id2symrb_hash_asetrb_str_subseqrb_enc_path_endrb_home_dir_ofgetpwnamendpwentrb_default_home_dirgetenvrb_realpath_internalrb_hash_newrb_dir_getwdruby_enc_find_basenamerb_enc_compatiblerb_str_new_sharedrb_str_newrb_enc_codepoint_lenrb_enc_ascgetonigenc_get_left_adjust_char_headstrncmprb_file_dirnamerb_usascii_str_new_staticrb_assoc_newruby_enc_find_extnamerb_file_constrb_mFConstrb_define_constrb_is_absolute_pathrb_file_expand_path_internalrb_string_value_ptrmemsetrb_enc_raiseruby_getcwdrb_str_capacityrb_enc_str_newrb_file_expand_pathrb_file_s_expand_pathrb_file_expand_path_fastrb_file_absolute_pathrb_file_s_absolute_pathrb_str_new_cstrrb_warnrb_path_checkrb_file_load_okrb_thread_call_without_gvlrb_update_max_fdcloserb_find_file_ext_saferb_eSecurityErrorrb_get_expanded_load_pathrb_str_tmp_newrb_enc_associate_indexrb_find_file_extrb_find_file_saferb_find_fileInit_Filerb_define_modulerb_cIOrb_define_classrb_f_notimplementrb_obj_freezerb_define_methodrb_define_module_underrb_include_modulerb_define_global_functionrb_cObjectrb_define_class_underrb_define_alloc_funcrb_mComparable:���������K���������a���������l��������v*�������������������������������>���������L���������h���������m���������x���������������������������������������}������������������4����������������������������������������������������������������������������������������������������������������������������(���������8���������W��������_��������������������������������������������������������������������������������������� �����������������T���������d��������������������!��������������������������������������
���������!��&���������=���������I���������Y���������m�������������������������������������������������������������������������������������������������������A���������M���������c���������������������������������������������������������������������%���������/���������;���������I���������j�$o��������������������"������������������������������������������������������������������������������#������������������	��	���������	���������	��'	���������9	���������I	�|N	���������q	����������	�l�	����������	����������	�\�	����������	����������	�L�	���������
��������z
����������
���������
����������
���������
�<�
����������
*���������
��������*��������2���������:������������������������������������$��������%��������&��������$'��������2(��������@)��������S*��������Z+��������u,���������*
������������������������������������������
� 
���������[
�`
����������
��
����������
��
���������� ���������[�`�������������������������������������������K�P���������{������������������������������������ ���������K�P���������������������������������������������������X�e���������r�����������������������������[�`����������������������	�����������������H�U���������b����������������������������������������3�;���������x������������������������������������������;�@���������k�p���������������������������������;�@���������������������������������'�,���������X�`��������������������������������������������������'������������������������������������4���������D���������P���������`���������k�������������������<�����������*���������-��������������������������������������������)���������3��������Q��������`�e����������������������������������������������������������������������������������+��������9���������E���������m��������v��������������������T���������������������������������������������[l�������������������.������������������ ��������Q"��������Y#��������c$��������m%��������w����������&���������'���������(���������)��������
*�������� ��������,������������������'�������� ���������H ,��������X -��������c ���������� +��������� .��������!/��������9!,��������I!-��������T!����������!0���������!*1��������6"���������"���������#*2��������#/��������)#���������:#p#*2��������w#/���������#����������#4���������#���������$3��������+$��������d$���������u$0��������|$1���������$6���������$����������$����������$����������$3���������$5���������$'���������$7���������%����������%3���������%�,�%����������%���������&3��������&�&���������\&���������x&3��������&��&���������p(���������(����������(3���������(��	)���������Y)����������*2��������	+*��������+*��������=+3��������G+4��������N+9��������y+:���������+5���������+����������+3���������+5���������+����������+;��������,<��������+,=��������9,0��������d,<��������y,����������,����������,���,����������,����������,3���������,5��������	-'��������-7��������2-��������D-���������-�t�-����������-���������.3��������.5��������.'��������).>��������D.��������U.��Z.���������x.����������.3���������.3���������.5���������.5���������.'���������.'���������.?��������D/3��������S/5���������/���������0���������06��������%0@��������90���������R0����������0����������06���������0@���������0����������0���������%1���������;17��������B1@��������R1���������1���������1����������16���������1@���������1A���������1A��������^2���������p23���������23���������25���������25���������2'���������2'���������2B��������3��������� 33��������333��������A35��������O35��������[3'��������f3'��������q3C���������3����������33���������35���������3'���������3D��������4��4���������K4���������Z43��������g45��������t4'���������47��������,5���������;53��������H55��������U5'��������g5D���������5����������53���������55���������5'���������5E��������)6���������863��������E65��������R6'��������_6F���������6����������63���������65���������6'���������6E��������	7���������73��������%75��������27'��������?7F��������y7����������73���������75���������7'���������7E���������7����������73��������85��������8'��������8F���������8G���������8*2���������88���������8����������8���������89���������8H��������!9���������99��������M9:��������R9H���������9;���������9H��������:G��������4:<��������C:=��������J:*2��������S:>��������]:����������:��������(<8��������>���������!>���������A>����������>���������>3���������>�d�>����������>*J���������>��������<?�f?���������n?���������z?����������?5���������?D���������?I���������?���?����������?����������?���������
@���������@I��������/@��4@���������\@���������k@3��������x@5���������@'���������@D���������@I���������@���@����������@3��������AI��������%A��*A���������ZA����������A���������dB���������pB���������|B���������BK��������C���������CC���������PCN��������gCO��������xC����������C?���������C����������C5��������DD��������4D(��������DDP���������DM���������D����������DO���������DP��������,E����������E(���������EP���������E@���������E��������F��������F���������]F����������FQ���������F,���������F*���������F���F���������G���������
G��G���������^GT��������tGU���������GU���������G*2���������GA���������G����������GB���������GW���������G*2���������GC���������G���������H���������3H3��������@H(��������_H3��������lH(���������H����������HQ��������!I���������=IY��������!J���������gJQ���������JZ��������K���������IKQ��������rK0���������KD��������
L@��������LX��������;LD��������JL@��������]LX��������MM���������M����������M����������MD��������N@��������,N+��������DN\��������xN]���������N����������N[��������&O^��������7O.���������O���������O'��������8P_��������XP`���������Pa��������FQ_��������qQ]���������Qb���������Q+���������Q'���������Q���������;RM��������YR^��������iR.���������RE���������Rd��������"S+��������CSc��������NSe���������SM���������S���������qT����������T+���������T'���������T����������Tf���������TQ��������UU���������}Uh���������U����������Ul��������V���������ZVj���������Vk���������V,���������V���������-Wm��������8W0��������EW,��������PW���������qW0���������W0���������W���������}X0���������X,���������X���������YK��������'Y���������9Y0��������FY���������QYS��������gYj��������vY*2���������YF���������Yn���������Y���������Z����������Z0���������Z���������[����������[0���������[����������[���������\0��������#\���������q\0���������\V��������]o��������]���������!]p��������D]q��������T],��������t]*���������]����������]����������]���������]����������]���������<^G��������C^���������y^M���������^3���������^3���������^d��������_k�������� _���������[_D��������b_@��������p_r���������_r���������_d���������_k���������_���������`3��������`3��������.`d��������F`k��������c`����������`D���������`@���������`u���������`u���������`d��������8a'��������Caj��������ta����������aM���������a7��������bE��������&bM��������9bo��������Dbw��������Ob��������[b?��������cb���������rb����������bE���������bH���������b=���������bI���������bx��������(c=��������2cI��������7cx��������DcH��������NcI��������Ucx��������qc����������cH���������c^��������d{��������d|��������!d���������,d}��������|d'���������dj���������d*���������dJ���������d���������e���������se0���������e����������ez��������f*��������fK��������f���������]f����������f����������f����������f���������Ngk��������dgz���������g0��������h���������ah4���������h'���������hj���������hz��������)i����������i*���������iK���������i����������i����������i����������jk���������jz��������k���������k*��������kJ��������(k���������Ik4��������ikL��������pk���������wk*���������~k*���������kM���������k����������k*���������k*8���������kN���������kO���������kP���������kQ��������lR��������&lS��������>lT��������VlU��������nlV���������lW���������lX���������lY���������lZ���������l[���������l\��������m]��������.m^��������Fm_��������^m`��������vma���������mb���������mc���������md���������me���������mf��������ng��������!nh��������&n��������<ni��������An��������Wnj��������\n��������rnk��������wn���������nl���������n���������nm���������n���������n*����������nn���������n���������no���������n���������np��������o��������oq��������o��������.or��������3o��������Ios��������No��������do)��������io��������ot���������o���������ou���������o���������ov���������o���������ow���������o���������ox���������o��������py��������p��������!pz��������&p��������0p*s��������<p{��������Ap��������Kp*v��������Wp|��������\p��������rp}��������wp���������p~���������p���������p���������p���������p����������p���������p����������p���������p����������p��������
q?��������qd��������q���������!q���������+q0qi��������:qAq���������Fqi��������\q���������aq��������wq���������|q���������q����������qi���������q����������q����������q����������q����������qi���������qh���������q����������qi���������q����������qk��������r���������rl��������r���������/rm��������4r���������Crn��������Hr���������[r\��������`r���������vrp��������{r����������rq���������r����������rz���������r����������r����������r����������r����������r����������rh���������r����������rh��������s���������si��������
sh��������s���������si��������%sh��������1s���������6si��������=sh��������Is���������Nsi��������Ush��������as���������fsi��������msh��������ys���������~si���������sh���������s����������si���������sh���������s����������si���������sh���������s����������si���������sh���������s����������si���������sh���������s����������si���������sh��������	t���������ti��������th��������!t���������&ti��������-th��������9t���������>ti��������Eth��������Qt���������Vti��������]th��������it���������nti��������uth���������t����������ti���������th���������t����������ti���������th���������t����������ti���������th���������t����������ti���������t���t	���������t����������th���������t����������ti��������u���������u���������#u.��������(u���������;u���������@u���������Gu*���������Qu���������Yu���������`u*J��������ru����������u����������u����������u����������u����������u*����������u����������u����������u����������u����������u���������v���������v���������v���������v���������0v���������5v���������Hv���������Mv���������`v���������ev���������xv���������}v����������v����������v����������v����������v����������v����������v����������v����������v����������v\���������v���������w���������
w��������� w���������%w���������8wk��������=w���������Pwl��������Uw���������hwm��������mw���������|wn���������w����������w����������w����������wj���������w����������wN���������w����������wQ���������w����������wR���������w���������xS��������x���������$xT��������)x���������<xU��������Ax���������TxV��������Yx���������lxW��������qx����������xX���������x����������xY���������x����������xZ���������x����������x[���������x����������x]���������x����������x^��������y���������y_��������y���������,y`��������1y���������Dya��������Iy���������\yb��������ay���������tyc��������yy����������yd���������y����������ye���������y����������yf���������������������������������������������c	����������������������������&���������V��������������������
��������%
��������u
���������
��������

��������8$3��������B?���������Sc���������Ui��������th~��������Tk����������y��������� ��$,PX*��*�*���*����D�L�p�x*���*�*��*�0�8�d�l�������������$�,�P�X*���*�*���*����D�L�p�x'���'�'��'�0�8�d�l����s���s�s�+	$s,+	P+	XR	�+	�R	�R	��	�R	��		�		�	D	�	L	�	p	�	x	�	�	�	�	�	�	�	�	�

�	
�
0
�
8
d
�
l
�
�
��
�
��
��
g$�,gPgX��g�����������
D�L
p
xA
�
�A
�A
��

A

�
0
�
8
�
d
�
l
�
�
�
�
�
�
�
�
�
N$,NPNX��N������������D�L�p�x>���>�>�j>j0j8�djl������������$�,PX;��;�;�w�;�ww�DwL�p�xO���O�O��O�0�8Od�lO�O���O������$�,�P�X1���1�1���1���oD�Lopox��o�����/�/0/8_d/l_�_���_������$�,�P�X.���.�.�~�.�~~�D~L�p�x�����NN0N8�dNl������������b$�,bPbX�b���������D�L�p�x�����������0�8id�li�i���i�����"$�,"P"X�"�����CDLCpCxX�C�X�X�-#X-#0-#8C#d-#lC#�C#��#�C#��#��#��#$ �#, �#P �#X /$� �#� /$� /$� <$� /$� <$!<$!H$D!<$L!H$p!H$x!%�!H$�!%�!%�!N%"%"N%0"N%8"�%d"N%l"�%�"�%�"#&�"�%�"#&�"#&�"�&$##&,#�&P#�&X#�&�#�&�#�&�#�&�#>'�#�&�#>'$>'$~'D$>'L$~'p$~'x$�'�$~'�$�'�$�'�$�'%�'%�'0%�'8%E(d%�'l%E(�%E(�%�(�%E(�%�(�%�(�%
)$&�(,&
)P&
)X&u)�&
)�&u)�&u)�&�)�&u)�&�)'�)'�)D'�)L'�)p'�)x'U*�'�)�'U*�'U*�'�*(U*(�*0(�*8(�*d(�*l(�*�(�*�(�+�(�*�(�+�(�+�(�,$)�+,)�,P)�,X)�,�)�,�)�,�)�,�)�-�)�,�)�-*�-*^.D*�-L*^.p*^.x*/�*^.�*/�*/�*�/+/+�/0+�/8+�/d+�/l+�/�+�/�+|0�+�/�+|0�+|0�+1$,|0,,1P,1X,�1�,1�,�1�,�1�,42�,�1�,42-42-�2D-42L-�2p-�2x-�3�-�2�-�3�-�3�-#4.�3.#40.#48.�4d.#4l.�4�.�4�.�4�.�4�.�4�.�4�.�4$/�4,/�4P/�4X/5�/�4�/5�/5�/�5�/5�/�50�506D0�5L06p06x0u6�06�0u6�0u6�0�61u61�601�681U7d1�6l1U7�1U7�1�7�1U7�1�7�1�7�158$2�7,258P258X2�>�258�2�>�2�>�2F?�2�>�2F?3F?3�?D3F?L3�?p3�?x38@�3�?�38@�38@�3�@48@4�@04�@84.Ad4�@l4.A�4.A�4uA�4.A�4uA�4uA�4�A$5uA,5�AP5�AX5%B�5�A�5%B�5%B�5G�5%B�5G6G69GD6GL69Gp69Gx6�G�69G�6�G�6�G�6�G7�G7�G07�G87�Kd7�Gl7�K�7�K�7#L�7�K�7#L�7#L�7fL$8#L,8fLP8fLX8�M�8fL�8�M�8�M�8�Q�8�M�8�Q9�Q9SD9�QL9Sp9Sx9S�9S�9S�9S�9XS:S:XS0:XS8:zTd:XSl:zT�:zT�:mU�:zT�:mU�:mU�:�U$;mU,;�UP;�UX;�U�;�U�;�U�;�U�;�^�;�U�;�^<�^<6_D<�^L<6_p<6_x<�_�<6_�<�_�<�_�<�_=�_=�_0=�_8=~`d=�_l=~`�=~`�=�`�=~`�=�`�=�`�=a$>�`,>aP>aX>[c�>a�>[c�>[c�>�c�>[c�>�c?�c?VdD?�cL?Vdp?Vdx?Lh�?Vd�?Lh�?Lh�?xh@Lh@xh0@xh8@4kd@xhl@4k�@4k�@Xk�@4k�@Xk�@Xk�@�y$AXk,A�y 	   �:L9P9T9X9\9`9d9 ;$l9(p9,D;0`;4|98�9<�9@�;D�;H�9L�9P�9T�9X�9\�9`�9d�9h�9l<pP<t�<x�<|�<� =��9��9��9�H=�d=��9��9��=��=��9��=�>��9�(>�:�H>�d>�:��>-��-�� -�(0-�8�@-�H�P-�Xp`-�h0p-`x��-����-����-��`�-��0�-���-�� 4 H0t����0����,�|��0����0@�X����0	�`	��	�	$�	X�
����p����
4P
P�
l�
��P�����@0pL�h���@����PH��P����@�Tp��0�`��� 0@�`�� �P����	pD	 t	��	��	��	��	p
d
0�
 �
 �
P`X0#lP#��#��#�0$�@$�P$0%HP%d�%�0&��&�'�@'��'
�' 
(@
P(d
�(�
)�
�)�
�)�
*`*$�*<�*`�+��,��,��-`.,/l�/��/��0�1�14@2`�2��3�04��4��4�45<�5\6|�6��6�`7��7�@8<�>dP?��?�@@��@0A0�AD�A�0B� G�@G�G,�G|�K�0L�pL��MD�Q�S�S�`S�T0pUD�UX�U��^�@_��_ `L�`l�`�a�`c�c@`d�Ph��h$@k@`k.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.rela.rodata.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@,�T,�l,��,��,�'��y"@hxi,-�z3�z=�z4A8@���?,
SĻbĻ�]@p(0,
|�������@�(0,�l��l���@�(0,�@��@���@)0,2��2��.��)@0)�,;��( 6@.�,N0��.����|�S�'�W�e�x������� �8�h�@�0�,*���U-�	�<�B�@�gc.o/           1690381920  1000  135   100644  204200    `
ELF>(@@21

%'$(#)"*��AUI��ATU1�S1�H��H�H�L��8f.�I��$�H9�vhI��$�H��t6H��H�L�H;)r��H�D�H��H9(vvH��u�H��H�H�H9�s�(H��H�H9�wH��H9�w�H���[]A\A]�H�x0Hc@H�ͺ(I�MH��H�4�A�U���P���H���[]A\A]�H9�v�H��H����H�H�H��8�`�ÐH��H��t�ʃ���t)��t
1�H���������w���@��u�H�����t΀�t��ff.�H���������H��H��H%�����?L�H��H��H��H��H����?H��M�I�HHH��r/H�I��A��`I��`u+�x���H��I	��H���H����I��H��I��A��A��E��A��Mc�L	�H�A��u˾��H��I	��H����ff.����ff.���H�H�H��8H������H�H�H��8�Q�Ѓ���QH��?H��?�����H��H�VH�NH��H�8��f���H�H��H1��ff.���H�H�H��8��@H�H�Ѓ��f.���H�H�H��8ǀ@HǀP����H�H�H��8ǀ@HǀP��SH�GH��H��H��H9W wH�C [�fDH�H��H���H�CH�S�H�CH�C [�f.���H�=1�H�5���S�GH������GH�H�8H��(t�Hi���H��H���HCX�f��H*��
��Y�f/����H,��YH�H9�HB�f/�H�����H,�H�H�C(H�CHHǃH9�HB�H�� H�C8H�C@H�C0H��t1H�P8H��u�@H��H�BH��u�H��H�C H�H�C0H�C [���\��H,�H��?�j���D�\��H,�H��?�&���DH�ƒ�f�H��H	��H*��X����f.�H�P8�f.�SH���H��tH�޿���tJ�H��1��f��u!f�f���H*D$�Y�H*$�X�H�Đ[�@f�f���H*D$�Y�H*$H�Đ[�X��fD��SH��H�?1�H�5���H�;�H�{[�D��H��H�w�WH�?��H���ff.�@���~t1��H��H���1�H���ff.�f���PXH�5H��H�H��H�81��ff.���H��H��H�A��H��H�81��1�H���ff.���H��H��H�׺�1�H��ÐUH��H��SH��H�=�H��H��t
���t
H��H��[]�H��H��H�=1��H���H��[]�AUI��ATI��U1�SH��(�$�H��t�8H��uH��(��[]A\A]�f.�H�t$H����;t6H�D$�8u,f/$���D$��\$H�����u?1���1�H�����t�H�I��L��H��H�81���i���H�f(�L��1��$�AM�H�H�8���0�����$��$H�����u�A]������H��AMf(�L��H��H�8���$�ff.����H��H�5�H�@H�@H��H��H��xH�D?H����H���ff.�@��SH�5H���H��H�H�H��8H�$�H�{H��H�5�)H�D$�H�D$H��[�ff.���SH�5H���H��H�H�H��8H�$�H�{H��H�5p*H�D$�H�D$H��[�ff.���UH�5SH��H��H�H�H��8�H�5O%H�xH���H��H��[]�f���UH�5SH��H��H�H�H��8�H�5/&H�xH���H��H��[]�f���UH�5SH��H��H�H�H��8�H�5'H�xH���H��H��[]�f���ATUSH�����������؃�����H��������H�{�H��H�5I���H��H�=L��H��1��H�}H��H��tH��H�5��H�CH� tH�C�#H�ߺH�5�H��[]A\�DH������q���H��t-H���b���H�H�8�W���DH�H�8�C����H�H�8�3����H�H�8�#����H�H�8�����H�H�8�������ATH�BI��UH��SH��H� tH�B�8#���H�5H���H�CH� ���#L��A��u
I��������I��L��H���H�ߺH�5�H��@��u	H�����uf�H��H��H�����u4H�����t+H��Ѓ���p�H�����H����[1�]A\�H�C�O�����H���fD�I���L���H�5H�������@A��u1I�����t(I�$�΃���t��H	�H��Ѓ����h���@���m���H������`���H�E�������N���%H	�H��>���A���%���I�����u��������AWH�AVAUATUSH��H�H�L$H�H��81��L�l$����L�d$H��$L��f�H�H��H9�u�H���H���.H���1�L��1ېH�LcAH�A0K��H�4�H9�r�-fD��H��(H�D�H9�vH�H��u�H��(H��H9�w�H��L�I9�u�I����I�EH��tH�@������H��������?H9��YH�l-H�=H���$�H�|$H��H���H��������?H9���H�\H�=H�����H�|$H��I��������?H��H�-�1�M�4�H�YH��w`�HcD�H�>��DH�=H����I��M��t!K�T6M9�wIH�|$L���H�� ��H��M�4�H�YH��v�M��t�H�t�K�T6H��I��M9�v�fDL���H���H�=H��u�H�=��H��H��d���@H�=H���P���H�=��H��H��0���H�=H��� ���H�=��H��H�����H�=H����H�=��H��H�����H�=H�������H�=��H��H����H�=H�������H�=��H��H��p���H�=H���`���H�=��H��H��@���H�=H���0���H�=��H��H�����H�=H������H�=�
�H��H����H�=H������H�=�	�H��H����H�=H�������H�=��H��H����H�=H���p���H�=��H��H��P���H�=H���@���H�=��H��H�� ���H�=H������H�=��H��H���H�=H�����H�=��H��H����H�=H�������H�=��H��H����H�=H�������H�=��H��H��`���H�=H���P���H�=��H��H��0���H�=H��� ���H�=��H��H�����H�=H����H�=��H��H�����H�=H�������H�=��H��H����H�=H�������H�=��H��H��p���H�=H���`���H�=��H��H��@���H�=H���0���H�=��H��H�����H�D$H��[]A\A]A^A_�H�=��H��H�����A��uI�����tA�E�����A���H�H�5H�81��f�H�=��H��H��)���H���H���	���H�=��H��H����H���H������H�D$�u���L���L��H�5_�H����V���1��.���ff.���H9�twATH��(UH)�H��SH��H��L�d�(H��f�H�\$H�|$����u'H�uH��tH�|$�H��tH�|$�H�EH��(L9�u�H��1�[]A\�f�1��ff.�f���H�H�H��8��@��tpH��XH��tdH��HH�Rf�H��H�AH�Tf��XH��0H9�u�H�0fH~�H9�u�fH~�H��<������tH��u�H���H��H��H���f�AWAVAUATUSH��H�H�L��8A��@M��X��tM��uH��[]A\A]A^A_�H��I���H��1�H�=E1�L�-�H��H��ӾxH�=�H��H���f�K�v�
I��L��H��I�HL���YHH�H(H�P �@L�@��H��H���M9�r�H��[]A\A]A^A_���H����u,H�H�8H�|$H�5����H����H�L$H�1��H�|$��ff.���S1��H�5H��H�����H��[�ff.�f���U�SH��H��H�H�H��8�H�������H������U����	�H�؈UH��[]�ff.��H���������H���?H%���L�H��H��H��H��H����?I����1�H�H��rH��A�H$�H�H���H���������H����?H%���H�0H��H��H��H��H����?H����1�H�H��rH�рN$�H��ff.��AWAVAUATUSH��H��8H��� ��������H�D$�E1�L�sL�l$H�L�d$H�-;�H�D$ �v@H����I9���L��J��H�PH� uH�H H�QH�H�T$H� tSH��H�8�L��L��H��H��D$H�D$ ��D$��u2I��H��� u�L;{}0H�C �f.�H�@ �f.�����@H��8[]A\A]A^A_ÐH�~���������H��H�t$H�|$��H���H�D$����fDH����AWAVAUATUH��SH��H��(H�D$L�|$H�D$�Cf�I�$H��(A�n A�FH�H�P8H�SH�X8L��H��H���M��tWI��H�CL�kI�����M�4$H��tH�{ ��H��8H�t$L��H�\$���t�H�t$H������o����H��([]A\A]A^A_�f��ff.�@ATI��U1�SH��0�fDL����H��H�3H��u�[]A\���US�H��H�H�H��8H����]��u����]H��[]�H��8u�@H�H�H�B�������t�H��XH�B0�<$H��H�D$H�@ H�T$H�D$H�D$ H�D$(H�t$0H�D$@4�D$8�H��X�ff.�@H��@��u H�����tH��ƒ���t
��u%H����H�5H��H�H�81����H�5SH��H��t�H�����t$[�D�H�=�H��H���H���H�5H��H�H�81�����@��tF������t@��uH��H��H�����t�DH�@H�x	H�D?��H���H��H��H��H���f���H��tOSH��H��H�?H�D$�H�{HD$�H�;H�T$H�5Q�HD$�H�D$H��[�@1��DAWAVAUI��ATI��USHc�I��H����uHcA����A����I�������A�E����������H�5�H����H�=�H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����	H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H���H�5H�H����GDH9���I���uH��L���H�5H��%H9���H�H��uH�����L���H�5H�ځ�@H9��EH��A�L��IEׁ� �H�5H��H9��H��L��IE��E��u@H�5H9���I��t*A�$H���t<H�HEL���H����L��H��[]A\A]A^A_��H�5L��A�H���w���H��������H��������H��������H���������� �HE�y����H;-tH;-���� H;-H�������@1�H���?���H���[]A\A]A^A_ÐH����j���H����Z������HE�E���H������H�������H�������H�����������HE���H�H�5H�81����@H���*���f.�A�$H����U�����H�HE�>���H���H�5H��H�H�81�����SH�H��H�H�D$H�L$H�H��81��H�T$��t H��tJH��DH�{1����H��[�f���t��u	H�����u-H�H�5H�81��D�H��H�D$말�����t���t���ff.�@��AT�I��U��SH�����u0I�|$��H��u[�]A\��H��H��[]A\������SH�����u���t+H��H�= �[�H�H��H�5H�81��H�H�پH�H�81����DPXH�=�"�H��H�H����AWAVI��AUI��ATUSH��(�I��1�M��tA�<$uH��([]A\A]A^A_��H�t$1�L���H�l$I���]�K���&v}1Ʉ���H�L$�H�L$H���H��H�l$�]�����DX u��H������$M��L��H�H��H�81��1��J����H��H��H�H����H�@@H���H�H!��I���H�E�H��H�D$�]H��H��������������Nf�H��u+L��M��~[�H������I�����@H��������1�H��H��H��I9��I9��L��H��I���D�H�������1�H��([]A\A]A^A_�DH�E�@H�����H�D$�]H��H��������L����DH�E�H����H�D$�]H��H�������������G���f�H��M�M��L��H�j�H�H�81��X1�Z�G���H�M�M��L��H��H�81�����D�H���������M��L��H�����@��AWAVAUATUSH���H�D$H�H�L��8A��@����I��X��I��������?E1��@fH~�H��<�������HI��H����H�=H�����L��H��H����CH�0fH~�H9���fH~�H��<��������I��H����H�=H�����L��H��H���H�{ L�l?L9���H�=H���U�L��H��H���H�{(L�l?L9�� H�=H�����H��L��H���H�{H�\?L9���H�=H���k�H��H��H���H�=H���(��H��I��H���H�|$H���M9�X��K�dH��I�H�D�+H���D���DH���q�H�=I��H����L��H��H����CH�0fH~�H9�����H�=I��H������H�=��H��H���fD�H�=I��H���>���H�=��H��H������H�=��H��H����H�=��H��H��u����H���X���H�=��H��H�����H�=��H��H������I������H�=�
�H��H�����I���n���H��I��I��I�����@H��I��I��I���
���@H�D$H�D$H��[]A\A]A^A_�AVAUATI��USH��H�� H�L�l$H�H��8H���L��L�d$H�H�DH�D$�I�ĨuH�������H��8H�T$H�������L�t$M�.A�� u^I�^ M�nM����1��f�H��H��I9��H�;1�L�����H��t�L�#H�� []L��A\A]A^�I��I�^A���f�H��ƒ����T���H�€�I�|$I�$�>������5���L����(���L��L���H�� L��[]A\A]A^�DL��L�d$�H��8H��H�@H���H�� L��[]A\A]A^�@��ATUH��H�5SH���H��I���;�H���3�I�t$H���&���I�t$H������I�<$H��H��H�H��I�|$H��H���H��[]H��A\����S1�H���H��H��L�D$�H�<$����t!H�|$��H�t$H�<$���H��[��H�<$H��H�D$�z���H��[�@��H;�rH��H;�wsH���������H��H��H��H��H��H��H)�uOL���I9�vCI�L���H��M��M�H0L9�r#�*f.�H�H��M��M�H0L9�sH��H9�r�1�ÐH��L��f.�IcPH��I��H9�rH�QI���fD���tŃ��H�@tHH��H%���H��A$t6H���������H���?H��H��H��H��H��H����H���q���H��H���1�H���f���H;��I��H;�wsH���������H��H��H��H��H��H��H)�uOSI���H9�v>H�M���H��M��M�Q0L9�r�-DH�H��M��M�Q0L9�sH��H9�r�1�[�1��DH��H��f�IcQH��I��H9�rH�QH���fD���tŃ��I�x@tEH��H%���H��A$t3H��������́�?H��H��H��H��H��H����H���t����1�[�ff.�@��H;��I��H;�wsH���������H��H��H��H��H��H��H)�uOSI���H9�v>H�M���H��M��M�Q0L9�r�-DH�H��M��M�Q0L9�sH��H9�r�1�[�1��DH��H��f�IcQH��I��H9�rH�QH���fD���tŃ��I�x@tHH��H%���H��A$t6I���������H���?H��I��H��H��H��H����H���q���H��1�H����1�[�ff.�@��H�:H;��|H;�wsH��I��H���������H��H��H��H��H��H)�uLSH���H9�v;H�L���H��M��M�H0L9�r�*f�H�H��M��M�H0L9�sH��H9�r�1�[�1��DH��H��f�IcPH��I��H9�rH�QH���fD���tŃ��H�@tHH��H%���H��A$t6H���������H���?H��H��H��H��H��H����H���q���I�z�1�[����L�I;���I;���H��I��H���������H��H��H��H��H��H)�u`USH��I���H9�vBH�DI���H��L��M�Q0L9�r!�8�H�H��L��M�Q0L9�s,H��H9�r�H��1�[]�1��DH��H��f.�IcQH��I��H9�rH�QH���x������t����I�x@tEH��H%���H��A$t3H��������́�?H��H��H��H��H��H����H���d���H��I�{�H��1�[]���UH��H�5SH��H�H�H��8�H��H�T$H�x������H�t$H;�rzH;�wqH���������H��H��H��H��H��H��H)�uML���I9�vAI�L���H��I�<�L�G0L9�r�4@H�
H��I�<�L�G0L9�s,H��H9�r�@�H��H��[]ÐH��L��f.�HcWH��I��H9�rH�PI���}������t����H�{@t�H��H%���H��A$t�H���������H���?H��H��H��H��H��H������H���HD��b���ff.�f���H���s����H���HE�H���ff.����H�ATUSH�H���H��8�H��H�H����H����H���������ȃ�����H��I��H���������H��H��H��H��H��H��H��H��H)�H����H;�r[H9�rRH��uML���1�I9�v?I�2L���H��I�<�L�G0L9�r�H�H��I�<�L�G0L9�stH��H9�r�H�L��H�5H�81��f�[H��]A\��H���H�����H���H����H��[]A\�H��L��DHcwH�4�I�4�H9�rH�pI���3���������i�����u!H�L��H�5H�81��fDH�}@tDH��H%���H�0�F$t2H���������H�ʁ�?H��H��H��H��H��H��ƀH��s�H�y����H�L��H�5H�81��H�L��H�5H�81��ff.����H��� ��H�H�H���f.���H����H�H��8�xÐ��H�uH�GH�@H��tH� ��f�1��ff.�f���1�H�uH�GH��ff.�����H���Hc�H�>��@H���H���H���H���H���H���H���H���H���H���H���H���H���H����H���H��H���H���H���H���H���H���H���H���H���H���H���SH��H���H��u	H�[�H��[�ff.�f���H���������ATUSH�^ H��I�ف�?I�����H��H��I�I��H��I��J�D�HH��r5H��I����?I�����H��H��I�H��H��H��H��ȀH��s[]A\�fD@�����@��u3�������
H����@���
H��4���f�H��H�����3���I���tk���u,�؃�����H��������H��4uS�H�����M��H�H��H�H�81���E[]A\ÐH�����uH��tt�H��t��;���H�����uH��t^�H���C�������9�����z�����%�����f����������R���������>�������f���H�H�ȃ�`H��`�YI���������ATUSH�^ H��I�ځ�?I�����H��I��I�I��H��I��J����H����H��H��H%�����?L�H��I��H��H��H����?H��M���I����I���H����@����H�����uH���T�H��t�ȃ�H��H�����4���I��������u0�؃�����H��������H��4���;��H�����M��H�H��H�H�81���E[]A\�f.����@���X���������tMH��te@��tsH��4�3�����.����H������h���H��tc�H���T����T���������@�����6����������"������������������������AWf�AVAUATUSH��XH�H��D$H�D$(D$8L��8H�2H�$H�D$L�d$H�D$�(���D�l$E����I�\$8H����I���������A��f.�H�[@H����D�C$A��u�C��~�L�S0��1�E1�H��1�I�r(L��L���f�H��(��?H��I��H��H��H��H��H�Ã�?H���H��sH�PHH���AE�H���H��s	��A�H��I9�u�A�D$u	E���RA���G������>���H�H��H�=1��fDI�|$@��A�D$��<t,I��$�H�T$8H9���I��$�H�T$@H9���A��$���uCI��$(I��$01�H��t�H�@H��H��u�H�T$(H9��dH9��[H��X�[]A\A]A^A_��A��$���uDM��$�I��$(I�|$I�0H)�H9|$ �mA�D$��<�%����`����A�D$��<�����H�=1��I����������A��D;k��L�S0Ic�H��I�4�H���?H��I��H��H��H��H����H��s�@����@���������H���@����H��4���>�����H��H��H�H�81���L���H�=1��H�=1��H�
��H��1�H�=�H�����u�H��t H��u��녿�{�����q�����g���H���H��H�81��I�t$I��$(H�=I�$�H�T$ H)�1���������	����������S1�H��H�5v�H��[����H��H�<$H��H�t$����H���f����'������SH��H��H�H�|$��H�H��8uIH�����t@H�������t3��u.H��8H�t$1��H��ƒ���t$H�H��H��[�H������H���@��UH��SH��H���k��H�����H��H��H��[]�R�f���@��uH�����tH��ƒ���t��u�USH��H��H�H�T$H�H��8H��8���u)��uH�����tH��ƒ���t�H�H��[]�f�H��8H�T$H����f.���1�����D��1�@����H�����t|���tu��tpH�H�H��8H�x@tSH��H%���H�0��F$tAH��������́�?H��H��H��H��H����H��ƀH����f.���f.���H�H�H��8H�x@tTH��H%���H�01��F$u��H��������́�?H��H��H��H��H����H��ƀH��H�Ѓ��1��ff.�f���UH��SH������H��H����H�H���ƃ����	H�Ł�������H�=��Hc�H�>��fDH�C H��tH�8H��H��t�H�H�CH��tZH�xH�����H�H�CH�8H��t�H�H�CH�xH��t�H�H�CH�xH��t�H�H��PH�E(H��[]�DH��1�[]���H��H��ƃ��)���H�[H��t�H���HcS$H��H�l0H��D�� u�H�{t�H�CH�l�뉐H���H��x���H�{H���k����H��^���fDH���H��H���H�{H���;����H��.���fD��`��������f���@����H�{����H�CH�l����fDH�{H������H�����fDH���H����H��H�=1���H���H����H�8H���S����o���ff.�@��H�H�H��H��H��tH�H���H+�H���ff.�f���1��f���H��t7H��H�H�5�,H�T$H�H��8H�D$�H�����ff.�@��H��t7H��H�H�5�+H�T$H�H��8H�D$�H�����ff.�@��H��t
H�G����u�@H��H�H�5�*H�T$H�H��8H�D$�H������H���������H��H�������?H��H��H�H��H��H��H��Ȁ��H����ff.�f���H���������H��H����?H�����H��H��H�H��H��H��H����H��s�@�����H���������H��I����?I�����H��I�2H��I��H��I����I����?J�DHH�H��r"H�A�I��I�Ѓ�`I��H��`tL�L	ÐH�L��H��H�H��8L�J!��J���H�H��s-H���H�H��sH��H����]��I�J�DH�L	�H������AUA��ATI��USH��H��(dH�%(H��$1�H�=�UH���������H��H�ށ�?H�����H��H��H�H��H��H��H�D�HH��s)H��$dH3%(�H��([]A\A]�@H�D$����H�����uH�����H��t�;��H��H�l$����H��E��H��H�1�M���H�T$H��H��H�=�����H�D$H�PH�T$H�=H����6�������u��؃�����H�������H��4�R�����M���f��H�=t���H�����H��H����������!�%����t������D�H�WHD����H��H)�H�_H�����s5������t�U���t
���T=�f�T8��H�T$H��������H��H�L�H�L��K������H���H������r���fD��b���fD��R���fD��B����U�߉�T=��T8��z����D��H���������H��H�������?H��H��H�I��H��I��J�D�HH��s9H��H����?H%���H�0H��H��I��H��I����H��J	D�HH�'��f���H���������H��H�������?H��H��H�H��H��H��H�D�H��H���H��H����fD��H��1���uH��H��tH���`H��`�HE��D��H�=ATI��UH��SH��usH�H���mH�H�H����H�H�H����H�H�H���hH�H�H���1H�H���������L��L��H%�����?H�0H��H��H��H��H����?H��H�DHH��r	H����1�I�<$L���L�����`H��`�|I�8H��sH9�sQH�=H�|�H��I�9H��sH9�s3H�=H�|�H��H���H��sH9�sH�H�T�H��[]A\�H�H�E��f���H9�s�H�=H�|�H���j���fD�H�=�H��v����
H�=�H�����H�=�H��{����H�=�H��D����H�=�H��
���ff.���H���������UH��S��?H��H�H�L��8H��H%���H�0H��H��H���`I��H��I����I����?H��`��H�����N���H�J!��J!DHA�AtFI�H��H��J!��I���H�H�F8H�GH�~8H��[]�f.��F$uJ!��I!�DJ���H��sI���H�����N���H�J!��J!DHA�A�b���J!���fDM���A���M��t;��~$I;;tD�Z�H��H���H��I;|�t5Hc�H9�u�M���A���M��u�H�=1��@1�fDI��4I!�����H�AT1�I��U1�SH�H�@H��XH���H��t(H��H� tL��H��[]A\�H�x�~��H��H��H���L��H��[]A\�ff.�@������H�H�H��8�@�������H�H�H��8H������H���H��������?H9�wH�DH���f.�H��H���@��H�H��1�H�H��8H��DH�x���fD��H�AVAUH�=ATUSH�H��H��8�����)H���������������t	���A�L�5I��������?I�6H9���I���H���H�T?L9��FL���H�5H9��fH���H�T?L9��1L���H�5H9��IH���H�T?L9��L���H�5H9��,H���H�T?L9��L���H�5H9��H���H}XH�T?L9���L���H�5H9���H�}H��(H��H)�H�T?L9���L���H�5H9���H���H}XH��H+}H�T?L9���L���H�5H9���H��(H�T?L9���L���H�5H9���H���H�T?L9��}L���H�5H9��}H��H�T?L9��hL���H�5H9��`H�}PH�T?L9��VL���H�5H9��FH���H�T?L9��AL���H�5H9��)H���H�T?L9��,L���H�5H9��H���H�T?L9��L���H�5H9���
H�}H�T?L9��L���H�5H9���
H���H�T?L9���L���H�5H9���
H�}H�T?L9���L���H�5H9���
H�}H�T?L9���L���H�5H9���
H��pH�T?L9���L���H�5H9��g
H��xH�T?L9���L���H�5H9��J
H���H�T?L9���L���H�5H9��-
H���H�T?L9��xL���H�5H9��
H���H�T?L9���
L���H�5H9��cH���H�T?L9���
L���H�5H9���H��H�T?L9���
L���H�5H9���H��H�T?L9���
L���H����H���Z���H����I�6H��H9��4���H���[]A\A]A^ÐA��������H�H�5H�81��f�H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;��
H;�U	H;��
H;�O���H���u�����I�6H�������H�5H�����@�H�5H������@�H�5H�����@�H�5H�����@�H�5H���!���@�H�5H���E���@�H�5H���Z���@�H�5H���o���@�H�5H�����@�H�5H�����@�H�5H�����@�H�5H�����@�H�5H������@�H�5H�����@�H�5H�����@�H�5H������@�H�5H��� ���@�H�5H���5���@�H�5H���J���@�H�5H���_���@�H�5H���t���@�H�=�H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����!H�=H��H����'H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H���H��I��H��H��L���H�H�5L���H�H�5L���H�H�5L���H�H�5L���H�H�5L���H�H�5L���H�H�5L���H�H�5L���H�H�5L���H�H�5L���H�H�5L���H�H�5L���H�H�5L���H�H�5L���H�H�5L���L�����f��H�5H�����@�H�5H������@�H�5H������@�H�5H���0���@H�{ ��I�ܻ�^��H����:���@H����*���@H�������@H����
���@H���HEX��H�EH��(H��H)����fDH���HEXH��H+E��DH��(��@H�����@H����@H�EP�}��H����j�@H����Z�@H����J�@H�E�=��H����*�@H�E���H�E�
��H��p��@H��x���@H������@H������@H�����@H����@H�5H��t#H��I�ܻ����1��w�H�=u����H��H��H�5�H���H�5H��H�H�81��D��H��H�1�H�D$H�L$�H�|$��tH��tD�H�D$H���D@��tZ@��u	H�����u3H�H�5H�81���H��H�D$�f������t��t����H��������?H9�wH�D�x���f.�H����a�����@��t.@��uH�����t
�����tH���1�H���D����ATH�UH�-SL� H�EH��8�C t
�CuT�c�H�EH��hH��t	A�D$<�t*H��"�H�=H������A�D$<�1�����ff.�SH��H���GtBH���������H��H���?H%���H�8H��H��I��H��I����H��J	���Hc��;��t!H����J���H�4�H��[��H���H��tdH���H��H���H���H���H;��sH���H����H���1�H������H�4�H��[����H�t$�H�t$H��u��f�H���������H��H��H%�����?L�H��H��H��H��H����?H��I�LHH��r.H�I��A��`I��`tM���H��I��rH��@H��@H����ԭ��@H��`A�H���I��M	��H����GtI���H��r��5���DH������USH��H��H���H����H���H��ujH���������H��H�؁�?H%���H�H��H��H��H��H����?H����H�H��r6H��H��H��H�脕��H��H��[]���fD����f�H��[]�f�H�PH�0H��H��[]��ff.�AUATI��UH��SH��H��H���`H��`�HD�H���H��ǃ���u	H�����u]������to���H�s@��uH�����tL�����H��ǃ�����H�5��Hc�H�>�����t��t�H���H��ǃ��@H���H��t�uH�����tH��L���L���H��[]A\A]ÐH�s@��uH�����tL���%���H�s@��u�H�����t�L���
������� �L�kH�[M��~�1��H�4�@��uH�����tL������H��L9�|��k����H�s @��uH�����tL�����H�sH���<����b���H�{H��tH�T$H�5KL�d$�H�s @���8�������fDH�{H�C��H�����H�{ ������DH�k H��t6H�}H��t-I��$�uA�D$�aH�T$H�5�L�d$�H�CH�������H�xH��t$H�G����tH�T$H�5L�d$�H�CH�xH��tH�T$H�5"L�d$�H�s@���_����)���D%`H=`�������f.�H��uH�����t��@����f��� �WH��L�k��H��H������1�fDI�t�@��uH�����tL�����H��H9�u����fD��`��H��
H����H�ŐH��H����f���H��H�s�@��u�H�����t�L��H�����H���u��8���@H�CH���'���H�p@��uH�����tL���X���H�CH�pX@��uH�����tL���9���H�CH���@��uH�����tL������H�CH���@��uH�����tL�����H�CH�px@��uH�����tL������H�CH���@��������p���@���s����H�
I;�$��I;�$wH���������H��H��H��H��H��H��H)�u[M��$�I9�vGI�M��$�H��I�4�L�F0I9�w&�fDH�
H��I�4�L�F0L9���H��H9�r�H�
��H��H�=1��fDH��A�����H�kH�[����H�kL�k ���H��H�=1���H�@H���k����J����H;E�����H�EH�}���H��L��HcVH��I��H9�rH�PI�����H�=1��H�
�4���H��H�=1��ff.����@��uVH�����tMUH��H��SH��H�
H�D$H��H�	H�$H��8H���H���H�����H���H��[]��ff.�@��AWAVAUATUSH��L�!H9��.I��I��I��H��fD��������H���������H��I�؁�?I�����H��H��H��H����H����?I�|$@tI��B$tH���H����I�EL��H�5֎��H��H�D$L�$�I�] H�L�$H�D$��`H��`��I�0H�|HH��sH���H�����A�D$t8I�H���H��s'H���H��rI�] L��H�5K��H���L�L9����H��1�[]A\A]A^A_�I�0I�E(H�|HH��sH���H��sI�E0A�t$��@���g���H��`�]���L��H�5���H��L�$H�D$�H�D$L�$�4���@L�I�EL9��O����f���f.�UH��SH��H����uH�����tH�����H��t*H��;
w�Hc�H�>��H�CH���@��t1H��[]��H�CH��t�H�XH��u���@H�s@��u�H�����t�H��H��[]�'����H�s@��t��@��H��H��H�VH�vH�8�5���1�H���ff.���H�H�WH�wH�H��8���ff.���@��u&H�����tH��H�:���1�H���f.�1��ff.�f���USH��H��H�vH�:@��uH�����tH���E���H�}H�s@��uH�����t�)���H��1�[]���UH��SH��H��H�:�uH�����tH��H����H�}��uH�����tH�����H��1�[]���H�ATUSH�L��8H��~-H��H�,�H�3@��uH�����tL����H��H9�u�[]A\���@��u&H�����tH��H��H�:�^�1�H����1��ff.�f���H��@��u#H�����tH�H�H��8��@�ff.�@��H��H;���H;���H���������H��H��H��H��H��H��H)�u`L���I9�vTI�L���H��M��M�H0L9�r"�9f�H�H��M��M�H0L9�s,H��H9�r�������t��u2ÐH��L��f.�IcPH��I��H9�r�H�QI���x�����ff.�ATUSH��H)�H��H��H9�t#I��H��H�uL��H��H�����H���u�[]A\Ð��H��H9�sH�H�H��8H��H�������H��H���H9�sH�H�H��8�c����ff.�@AWAVAUATUSH��H��$H�|$H�D$0H��H�t$ H�D$81��H�H�D$@H�d$HH��H�\$ H�D$(H��H���H�D$H�D$0H�$H��$�H�D$f�H�$H�|$H�0����H�$H�$H;D$u�H�t$(H�T$H9�s
H�|$���H��[]A\A]A^A_�@���o������H�H��H�H��8�s���ATUH��SH��H��H�HLJ�L� H��t
H�H�H��I��$I�|$�I�D$H�0H��t@��uH�����tH����H��8H���H�H�EH��tH�G������H�H��L��H�E�Q���H�H�E�H���H�H�EH��t'f.�H�H�8�H�[H��u�H����H�H�E�H�H�E�H�H�E�H�I�|$H�E�H�H�EH��[]A\�f.�H�T$H�5D���H�\$�����DH��t H�G����tH�T$H�5���H�\$�H��L���P����H���H���������I�|$�H��[]A\�f���USH��8H�H�|$H�H�t$ H�t$H�4$H��8H�k���H�D$H��H���H���H�����H���H��8[]�ff.�@��AUATUSH��H�H�H��81��CuH��[]A\A]�fDI���������H��H��H%�����?H�H��I��I��H��I��A��I��A��?J��	�L����J��	�L����H��I��H��I�������?I�4$H��I��I��H��I����?I��J��.�L�I����H���`H��`uxH�MH�σ�`H��`thJ�|.HH��rNH��`�H�M��H��J	�.�H���H�H��s2J��.�H��r$H��H����������H���H������H���[]A\A]�fDJ�L	HL��r�H���`H��`t8Hǃ�H�H��r�H��H��H��H��K���H���c���`���H���H��t�H��H�߉T$�N�I�$�T$J��(��ff.����H�H�H��8�AteI���������H��H��H%�����?H�0H��I��H��H��H����?H��L���I��s,H���H��rH��H�����H���`H��`t��K���ff.�USH��H���H�oPH��H��H9�s(H��H�<�H��u$�H���H��t3H���H��[]�DH��H����H��tH������AVAUATI��UH��SH��H�_xH����H�SH�C@H��tH�B@H�C@H��tH�PLcCH�s8I�D$xH�CH�C@H�CI��$�M)�$�H�EH�kH�C@H��tH�XH�]H�E0LE8H��tH�EH�C(H�]H��[]A\A]A^�DH�|$��?�@�����L�l$M���v�(��H��H���NM��$�L�(I��$�M����L��1��	H�JH9�vH�H��H�4�L;.w��pH��H9�w�L�4�J�47I9�v(I)�J�|7J���I��$�M��$�L�M�MI��H�H���������L��M��$�I��$�H��H��H��L��H��H)���A��?A����I��$K�H��tzI9�ruI;�$vI��$L�K0H�s8�SI�]I9�t2L���
f.�H��H�y(H�qH��H�H9�u�K�t�H�s8�S�(���L���D�M��$�fD�()кgfffI�D��D)ȍ��?�����)�Lc�O��I���.���H������L��H�=1��AWAVAUATUSH��H���GtIH�GHH���4H�P(H�WHH�W(H�P(H�G(1�H��[]A\A]A^A_��H���Ȁ���Hi���H+��HCX�{H��L���~H����H���nf���H*��Y��f/����H,�H���H���H����f��H*��Y�f/��D�H,�H���I9���H���H���I��I)���f��I*��Yf/��R�H,�H�H��tI���������H��I��H��L�H9�HG�H�SPH�H)�H�11�H9�H����H�H)�H����(���H���H���(H���H���H���H���H9�v���H9�v�����C��O���1����D$�%����D$�6���@I9�v�H���H+���H���������H���H���H���H����o���1��a���1�H�������L�s8�c�M����M�~0M���H���������L����?H��H��H��H��I)�I���H�D$�f�I��
I��L9d$�I�,$I#l$�t�M���f.�I��(H��t�@��t�L��H�������@H��H��f��H���H	��H*��X��z�����\��H,�H��?���D�\��H,�H��?�c���DH��I��f�H��A��L	��H*��X��\���fD�\��H,�H��?���DL��L��f�H���H	��H*��X��c����H��H�s H��H����Y������@M�v@M�������L���H����'�����H�I�4�H��4tH�����L���M�����������u�I���H���I�6I���H������L���H�������ff.��H���������AUATUSH��H�H�H��8H��H�%H�EPH��H9�rH��[]A\A]�f�H��H��L�m E1�H)�H�������@L��H��I���1���L9�u�HDž�H��[]A\A]�fD����~��H��H�5H�=�Y������AH�5H�=�>������������H�5H�=���H�5H�=����f�H�5H�=�|��H�5H�=�ٝ��H�5H�=�Ɲ���H�5H�=�;��H�5H�=蘝����tH�H�H�H��8H��H�5H�=�b����H��H�5H�=��~��H�5H�=�-�������H�=1������f�H�5H�=����������H�=1�����f���H�H�
AVAUL�-ATH������USH�H��8��E1�����CH���H��L�s ��	�H����������CH�H��L��H��H��H���H���h���I���v�L��H��I������L9�w�H���f�Hǃ��Hǃ�H���Hǃ������H����H���H���H���H���H��H�����u�H���H�H�(L����Hc��L��H������z����h�H��8[]A\A]A^���H�����u���t1�H�=!H�������ff.���PXH������H�SH�H��8H��`H��HH���v+Hǃ`���%�H��H��HH��t3H��`H�R1�H����HǃXHǃP[�����1��5D��ATUSH�@�H��H��HH��t�HǃHH���H��tf�H�o�H��H��u�H���H����H���H��tB1�L�$�H��H���H��H���I�<$�L���H���H���H9�w��H�CPHǃ�Hǃ�HǃHǃH�CXH�C8H���H��t@H����H��H��u�H��[]A\�H�=1��f.���UH��SH��H�H��tH��1�H�5oy���H���H��H��[]�@AWAVAUATUSH��XL�f M���eD��@H�t$(I�����E����1����D$@���D$D@I�D$@H�L$(A�M��$�I�t$0M��$��D$H�A H�D$8IcD$H���?A�d$$�H���D$L���D$H���������H��L��L�l$0L�t$H��H��H����H��H��I	D�L��H��������́�?H��H��H����H��I��I��M	T�H��H��H��H)�H��H�$�I��H�$
L9l$�II�mH���t�H�$A�D@����H����������A�G ����L��H���.�	H�߃�H�|$ u H�����t��t���	f�H��H��H%�����?H�H���������H��H��H��H��H�t�H��H�>��?H��sL��H��H��H!�H�H��΃�����H�=��Hc�H�>��DH�{ H��t�H�CH�xH��t	�H�CH�HH��t'H��1�H�L$HH�5+�H�L$HH���H�CH�8H��t	�H�CH�xt"�H�߃������H�CH�@H���H���H�{H��t�H�C@H�|$ �TH������GH��ƒ����6���.H�I��0H�CH�C H�CI��0�D$H��(H�������fDH�{ H���{���H�{��H�CH���c���H�����H�H�CI��0H�CI��0�f.�H�CH���#���H�H�H�C I��0H�SH�CI��0�Q���fDH�CH�����H��1�H�D$H�H�D$HH�x(H��t
�H�D$HH���H�|$ ������H�I�D$8�D$H�CI�\$8������@�w���H�{H���j�����`����� �W�����DH����C���H����3���H�{H���#��������f�H�������H�CH�xtH���H�CH�@H���H���H�{�H�C���H�{H������������H��������`���������f��D$����fDL�t$L�l$0�t$�T$�Ao�AU�Ao^A]�Aof Ae I�F0I�E0Hc�A�T$I�Hc�I��HcD$I�(H��At$ I��0��A�t$ t>A�����u3H�H�8t&1�1�H�5�������A�\$ A�T$@IcD$�9�u�t$@���������L$DI�D$8��� H��t$H�t$(Hc��D$DH�F(I�D$(L�f(I�L�d$8M�������H�L$(A��@H�y �B��t-I��PH��t!�Cf��f/���I��0��H�D$(H�x��H��X[��]A\A]A^A_�f.�I�D$(�s���f�H�޿ ����H������B���fDI�L$�l$@I�T$@H��t	H�Q@I�T$@H��tH�JH�L$(L9a��H�|$(I�W`I�D$H�o0H)G8I�T$I�WxI�T$@H��tL�bM�gxI���I�������H���H��ƒ��������H�����@H��PH���1����@f/�����0p���A������f�H�Q�L����H�SH�BH�������H����;����B@�B��������@��P���fDH��X1�[]A\A]A^A_��H������H�L$(H�AI�D$(L�a����A��D@�'����A���$�mo���$f/��!f��XC�C�����tJI��PH��t>I���I+��I���H��H��H�P H��Hi�H��H)�H��H�pH�P(I�x�I�� I9�voI���H��vbM�o`���f�H9�tL�$�H��H��H9�v:I���L�$�M9l$u�IcL$A9L$u�I��H)�I;� wVH9�u�@I���I9��sI���A�G��A�g�A��@����\�����H��H�=1��I��I�t$I�D$@H��t	H�F@I�D$@H��tH�pM;gxtPH��I)��I�<$I���I���I����L���I�������1��誄���W���I�Gx�H�=1��H�=1��UH�o SH��H���Gt-��k��H�{@t�H��H������H�{@u�H�{(t6H��[]��k��H�C@H��tf��H$H�@@H��u�H��H�����H�{(u�H���H��u=H�CPH��H��H;������H��H����}�H���H��u	�@H��H��H��H���H��[]���ff.��AWAVL���AUATUSH��H��H�GH�G��I���������@L���H���f.�E1�H���,������=�����Hc�H�,�H��4��H��H��I������H��H�������?H�uH��I��H��H����H��H��H��H!���H���H��L)�L�H=���H����b���H����I���N���fDH���H��t8������������H�H�4�H��4t�H���0��H���H��u�L���Li��H���$�H��H��[]A\A]A^A_���fDH���H������L���i��H�������������fDH���H���H�(H���H������H���H���������H���H���H�2H���H������H���H����������f.������O��	�H����OH���"AWAVAUATUSH��H��X��(u
�=��t"H�{ �?�H��X[]A\A]A^A_��� A���K�C�-�C�@��������;ǃ�A	�A�D����E��DD�������u���b�c���t
�C���CD�‹�@�� �H�CDE�H���H���H���D��DH�����tgH��XH��HH�UH��XH����H��`H9���H�Rf�H��H�T�H��PBB �C��%A	�D�1�H�CH�H9��QH����f��H*��Y�
f/����H,�H�H�H��t	H9����{�JHǃ��D uaH��H����f��H*����\��^�X��^�f/����H,�H�H9�HB�H���C@���@��tH��PH��tH�E��g���EH���H�k8Hǃ�H�D$�C��ƃ�@�sE����H�����H���������H��x@�sHǃ�H�<H��H��H��Hǃ�Hǃ�H��H�J1�H��H��H���H���H��t{f.�f�e$�������HDž�����HDž ������HDž�H�m@H��u�1�H���U���C�;H�D$H�����@��tEH��PH��t9�M�$�zf���$f/���f��E�E�\�h�E�C�f�c�H��X�[]A\A]A^A_�fD1��DH����@���2���CA���	ȈC�$���@�ȁH��p�CH���H��H���H��u���H�m@H������E$�����	Шt�H�u0L�l$H���������L���L��H���?H��H�EHH��L��I���H�PpH��H#P�H��H��Hǀ�H�W�I9�u�L)�I�E8�e$�I��H�$��I��I��
L9,$�S���M�uM��t�M���DI��(I��t�A��t�L��H�������@D�D$�$��$D�D$�����������C��	ȈCE����������f�H����f��H*��Y�
f/���H,�H�H9�HB€{H������H��H9�������� H����f��H*��Yf/����H,�H�H9�HG�H������fDH�{(�����H���H�k H���^H�{PH�WH��H9�����H��H����=��H���H���n���H��H��H��H�������S���f�H����������\��H,�H��?���D�SD�����	ʈS�����\��H,�H��?�m���DH�ƒ�f�H��H	��H*��X��+���f.�H�Ѓ�f�H��H	��H*��X��T���f��\��`����H�� ����H�ƒ�f�H��H	��H*��X��1���f�H�ƒ�f�H��H	��H*��X��[���f��\��H,�H��?�/���DH���H�4IH��H��`H��D�$�D�$H��HH����H��X���fD�\��H,�H��?���D1��@��x�������1����x������1��D�D$�$�x��D�D$�$����Hǃ`d��D�$�H��cD�$H��H�G����@��L����H��H��H��H����m����)���H�=������� ���f.�H�@�Gu�u�USH��H���O �Gum�u9H�{@H�k tfDH��H����H�{@u�CuX�c�H��[]�DH���H��Hǃ���H�{@H���H�k u��f�1���w���C�fD1���lw���f.���AUI��ATI��USH��H�H�H��8�]H�������MH���L�,$��L�d$��tH���Z��H��[]A\A]�f��H�t[��H�=mZ���H��[]A\A]�ff.�f���SH��H�� ����H�D$���tZH�D$H�=�o��H�t$H�D$H�D$�H�|$H��������?H9�wH�� H�D?[���H�� [�D�H���H�L$H��E1��H���H�� [�DH�L$H�1���U������USH��H�H�H��8�]H������MH������H��[]H��?H��?���f.���H�SH�H��8H���r���H�߹[A�����@��H�SH�H��8H���2���A��H�ߺ��������t[�f�H��[�t�����H����H���f���Gt�@AVA��AUE��ATA��U��SH��H�� ���u=���t\H��H�=	H�$D�l$D�t$D�d$�l$�H�� []A\A]A^ÐH���X���E���D��D��H����H�� []A\A]A^��}���G@u
�f�SH�����t3H���H�߹[A��H��H������E�����[�ff.�L�OH9���H)�I��tLH�wI9�I��H��LG�M)��M�H9�u�L��H��H9�I��H��HG�I)��M�H9�u߃�t
�f�SH��H�H9Gw*�1��Cu*���tAH�{@t:H���2���H�H9Cv	���u�[�fDH)��I1�H���H��A�1�1�1�[����ff.�ATUH��H��SH���H��I���[L��H��]1�A\����ff.�f�H�H��H�H��8�f.���H��t��D�ff.�@��AWAVAUATI��H�5UI��SH��8H�|$L�|$H�l$ �H�T$(L��L�d$H�8H�����tNH�|$(H�l$ H�H��t2L�wH�l$ M�,ƐI�H�{1�H��I��H�D$ �M9�u�H�|$(H��t�"���H�{L��H��L�d$ ���uH�D$H��8[]A\A]A^A_�fDH�t$H�;L��L�d$ H�����f���H��tH��H�����1�H���@1��ff.�f�ATI��USH��H��xI�HD�L����H���H��H��t@H���L��1�H���&���H��[]A\�fDH�=��y���f.�A���L�������tH���H��t
H���D����끐��H�H��H�H��8�3�����ATI���UH��SH���H�L� H�hH�PH�[1�]A\�ff.�f���UH���SH��H�H�H��8�H���H�(H�PH���H��[]�ff.��������H��H��H��t
H��1�H��H9�uH�H��H�H��8�Z���PH�H�5H�81�����H�ATUSH�L��8H��t2H��1�H��H��H��H9���H��y]H�=�Ix�����L����H�޿�H��H��t6H���L��1�H���$���H��[]A\�@�HD��DA���L�������tH�޿�H��tH�������H�H�5H�81���AVAUI��ATUH��SH��H��xZH��tfH��txH���L��I������H��H���I��H��tjL���L��L��H���O���[L��]A\A]A^�H�=�w��H��u�[H��L��]A\A]A^���@����E1�[]L��A\A]A^�@A���L�������tH��H���H��tI���]���������L���fD��H�
H��H��H��H�	H��8����ff.�f���H�
H��H��H��H�	H��8���ff.�f���H��I��H��H��tI��H��1�H��L9�uH�H��L��H�H��8�a���PH�H�5H�81�����1�����ATU�S��tIH�>I��H�H��tiH�G�L��@L�L9�tL��H��H��L9�u�H��H��t51�H9�w��[]A\��H�s��H�I�$��[]A\�@H��t�~��������AUI��ATI��USH����tHH��H�3H��H�nH��H���H��H�(L�,H9�t=I�$H��1�[]A\A]�D���1���H�(L�,H9�u�H���[]A\A]�f���AVAUATUSH�D�wD�oD�g�oH���J�E��D��H��D������[]H�A\A]A^�ff.����AUH�ATUSH��8H�H�D$H�L$H�H��81��H�|$H���H�=uJH�H���H�H�H���EH�H�H���H�H�|$L�D$�1ҽH�5�H�D$H��4t1�H�����@��H�D$A�H��4t
E1�H�����A��H�D$ A�H��4t
E1�H�����A��H���
�A�D���D��H���������t2H��8�[]A\A]�f.�A�A���DH���`i��H��8�[]A\A]þ	H�=�H������H�=�H������H�=�H����AWI��AVI��AUI��ATM��UH��SH��HH�H�H��8�C�`��L�{ M���!I�GH�C H��H���M�OI����~)A��u#I�����tI��ƒ���t
��I���� M�wM�oM�g tH�C�Cu\H��HL��[]A\A]A^A_�f�H���������L��L����?H%���H�0H��H��H��H��H����H��H	D�H��L����Kh���f�� ���@�
���H�|$H����1�1�1�A�H����L�L$�������DH�C(L�S H��t3H�P(L�x8H�C0H�S(H�@8�@M�������H����fDH�{@���K �C�B�����uH���H����L��H��L�L$L�T$� ���CL�T$L�L$��H�C(�c�H���[��������uH���H����1�1�1�A�H��L�L$L�T$��L�T$L�L$�������H�C(�����Ct��K �C�!H���Hǃ�H�D$0H�CHH����H�s(1��H�Ɓ��#H��H�P(HH�SHH�p(H�C(H��uڅ���Hc�L�l$ E1�I��L�d$(L��M��H�D$H���H�D$8H���H�D$H���H���1������������H�H��H��4t�H��H��H�T$I���ص��H�T$I���������H��H�����%�?H�2I��H��H����H��H��H��H!���H���H+D$L�H9D$�Z���H���I��M��L��L�d$(L�l$ ��H�D$0H����C����L�L$L�T$1���]e��L�L$L�T$��H���H���H�H���H������H���H���������I��M��L��L�d$(L�l$ H�|$8L�L$L�T$��K��H�����L�T$L�L$���E���H��L�L$L�T$�<�L�T$L�L$�$���H��L�L$L�T$��L�L$L�T$����H��L��H��L�L$H���L�T$���L�L$L�T$����1��L�L$L�T$�Gd��L�L$L�T$���H��L��H��L�L$H���L�T$�8��L�T$L�L$����H���H���L���H��L��H��L�L$H���L�T$���H�C(L�T$L�L$�H�1���1��L�L$L�T$�c��L�L$L�T$������H�=���C1�����E1�1�1�1�1�����ff.����E1�1�1�����S���<H����V�I��H��HD�H��1�H�������H���H	�H�[�ff.�f���SI��H��H�� H��uH�� H�߾[�z���f.�H�t$�H�L$H�T$�H�L$H�T$L�D$�fD��SI��H��H��H��u$H�r@H��H�߹[H���H������fDH�4$�H�T$�H�T$L�$�f.���U�H���SH���H��H�H��H���H���H��H�=H�CH��t�H��H���H�CH��H��[]ÐH�=��H��H�����H��H���1�H���f���AWAVAUATUSH��H�H�H��8H��L����>��A�E��tH��[]A\A]A^A_�f�H����`��L��0M����H��I��L�t$��H��8�MH�G����toL��H�5f�H�$�H�$H��t;H�;H�sH�|$�^��H��81�L���H�CH��H�$�H�$H��u�H��8H�G����u��M(�E��H������H���J��H�X0Hc@H��L�4�L9�r9�{fD��u#H�{ tH�{tH���H����@H��(I9�vD�����u�H�CH��t�H�H�H�C H��0H�SH�CH��0H��(I9�w�I��L;���R����E�H��0�e�H����H��8�1�HDž8A�EH��[]A\A]A^A_��H���H���?���H���H���.���H�{H�t8H�CH���tVH���
���H�H��0H�CH��0����H�CH�@H�C�f.�H���]���?���H�{ ����f�1����^���9����1���^�����H�
�
H�5H�=����H�H�H��8H���H�AH99u�1f�H�PH98tH��H��H��u��H�QH���@H���H���f�����������ATH�=US�H�-�����H���H��H�5H�E�H�H�}1�H�5�H�H�}1�H�5�H�}1�H�WC��H�5�H�}�H�{Y��H�5�H�}1�H����H�5�H�}�����H�����H�5�H�}�����H��d��H�5�H�}�����H���H�5��H�=H���H����QH��H���H�=�H����1H��H���H�=�H����qH��H���H�=�H����H��H�����u
H������hH�}H��H�5�H�}H�5�1�H�|B��H�5H��H���1�H��H��B��H�5�1�H��H�Vh��H�5�1�H��H��B��H�5�1�H��H�6��H�5�1�H��H�~W��H�5�H�߹����H�W��H�5�1�H�NU��H��H�5�H�=������H�g�H�5H��H���H�߹����H���H�5�H�߹����H��m��H�5�H�߹H���H�5��H��H��u��H�5�H��H�H�0�H�1�L�%H�5H�8L���H�1�L��H�5H�8������H��H��K��H�5�H�H��H�5H��H�5��H��H���H�߹H�<l��H�5�H�߹H�1s��H�5�H�߹H��t��H�5�H�߹H�{t��H�5�H�߹H�`t��H�5�1�H��H�H��H�5�1�H��H��G��H�5�1�H��H��G��H�5�1�H��H�0G��H�5�1�H��H��F��H�5�1�H��H�PF��H�5�1�H��H��E��H�5�1�H��H�pE��H�5�1�H��H�XE��H�5��H��H�-�H�5�H�H��H�0�H�}1�H��|��H�5��H�}H�5H��H����
H�=�H��H����H�=�H��H����H�=�H��H�����u+H�����t"H��ƒ���tH�€�H�{H�t��tG[]A\�f�H��ƒ��������H�€�H�{H��s������j���H����]���DH��[]A\�'������?@ffffff�?333333�?GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign%s%s	%d
invalid string for %s: %s
%s=%f (default value: %f)
-<%li:%p>, :  => 01non-hash givenTOTALFREET_NONET_OBJECTT_CLASST_MODULET_FLOATT_STRINGT_REGEXPT_ARRAYT_HASHT_STRUCTT_BIGNUMT_FILET_DATAT_MATCHT_COMPLEXT_RATIONALT_NILT_TRUET_FALSET_SYMBOLT_FIXNUMT_UNDEFT_NODET_ICLASST_ZOMBIEGC %zu invokes.
callnon-hash or symbol givenmajor_bygc_byimmediate_sweephave_finalizerstatestressnofreeoldgenshadyforceoldmallocnewobjmallocmethodcapinonemarkingsweepingunknown key: %li[FATAL] %s
%s=%zd (default value: %zd)
GC_FLAGSGC_TIMEGC_INVOKE_TIMEHEAP_USE_SIZEHEAP_TOTAL_SIZEHEAP_TOTAL_OBJECTSGC_IS_MARKED11%p is not symbol id value%p is not id value%p is recycled object%p is internal objectunknownmarking -> %s
%s|%s:%dmarkedwb_protectedoldlong_livedcountheap_allocated_pagesheap_sorted_lengthheap_allocatable_pagesheap_available_slotsheap_live_slotsheap_free_slotsheap_final_slotsheap_marked_slotsheap_swept_slotsheap_eden_pagesheap_tomb_pagestotal_allocated_pagestotal_freed_pagestotal_allocated_objectstotal_freed_objectsmalloc_increase_bytesmalloc_increase_bytes_limitminor_gc_countmajor_gc_countold_objectsold_objects_limitoldmalloc_increase_bytesgc_stat_heap_usedheap_eden_page_lengthheap_tomb_page_lengthheap_incrementheap_lengthheap_live_slotheap_free_slotheap_final_slotheap_swept_slottotal_allocated_objecttotal_freed_objectmalloc_increasemalloc_limitoldmalloc_increaseoldmalloc_limitnon-hash or symbol argumentcorrupted objectnon objectrb_gc_mark(): %p is T_NONErb_gc_mark(): %p is T_ZOMBIEvmfinalizersmachine_contextencodingsglobal_listend_procglobal_tblgeneric_ivarslive_method_entriesfinishRUBY_GC_HEAP_FREE_SLOTSRUBY_FREE_MINRUBY_GC_HEAP_INIT_SLOTSRUBY_HEAP_MIN_SLOTSRUBY_GC_HEAP_GROWTH_FACTORRUBY_GC_HEAP_GROWTH_MAX_SLOTSRUBY_GC_MALLOC_LIMITRUBY_GC_MALLOC_LIMIT_MAXRUBY_GC_OLDMALLOC_LIMITRUBY_GC_OLDMALLOC_LIMIT_MAXnegative re-allocation size0:full_markimmediate_markfinalizegc.cGCstartenabledisablestress=statlatest_gc_infogarbage_collectRVALUE_SIZEHEAP_OBJ_LIMITHEAP_BITMAP_SIZEHEAP_BITMAP_PLANESINTERNAL_CONSTANTSProfilerenabled?raw_dataclearresultreporttotal_timeObjectSpaceeach_objectdefine_finalizerundefine_finalizer_id2reffailed to allocate memory__id__object_idcount_objectsWeakMap[]=[]include?member?key?inspecteacheach_paireach_keyeach_valuekeysvaluessizelengthverify_internal_consistencyOPTSUSE_RGENGCRGENGC_ESTIMATE_OLDMALLOCGC_ENABLE_LAZY_SWEEPweakmapGC.stat keys were changed from Ruby 2.1. In this case, you refer to obsolete `%li' (new key is `%li'). Please check <https://bugs.ruby-lang.org/issues/9924> for more information.%s=%f (default value: %f) is ignored because it must be greater than %f.
Index    Invoke Time(sec)       Use Size(byte)     Total Size(byte)         Total Object                    GC Time(ms)
%5zd %19.3f %20zu %20zu %20zu %30.20f
cannot define finalizer for %swrong type argument %li (should be callable)[FATAL] failed to allocate memory
%s=%s is ignored because it overflows
%s=%zd (default value: %zd) is ignored because it must be greater than %zd.
verify_internal_consistency_reachable_i: WB miss (B->W) - %s -> %s
verify_internal_consistency_reachable_i: WB miss (O->Y) %s -> %s
gc_verify_internal_consistency: found internal inconsistency.page %p's has_remembered_objects should be false, but there are remembered old objects (%d). %spage %p's has_remembered_shady should be false, but there are remembered shady objects. %sheap_pages_final_slots: %d, objspace->profile.total_freed_objects: %d
inconsistent live slot nubmer: expect %zu, but %zu.inconsistent old slot nubmer: expect %zu, but %zu.inconsistent finalizing object count:
  expect %zu
  but    %zu zombies
  heap_pages_deferred_final list has %zu items.objspace/memsize_of(): unknown data type 0x%x(%p)invalid_mark_stack: unreachableremembered_wb_unprotected_objectsremembered_wb_unprotected_objects_limitoldmalloc_increase_bytes_limitrb_gc_mark() called for broken objectrb_gc_mark(): unknown data type 0x%x(%p) %ssame heap page is allocated: %p at %luRUBY_FREE_MIN is obsolete. Use RUBY_GC_HEAP_FREE_SLOTS instead.RUBY_HEAP_MIN_SLOTS is obsolete. Use RUBY_GC_HEAP_INIT_SLOTS instead.RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTORRUBY_GC_MALLOC_LIMIT_GROWTH_FACTORRUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTORlazy sweeping underway when freeing object spaceobj_free() called for broken objectgc_sweep(): unknown data type 0x%x(%p) 0x%lxgc_finalize_deferred_register: can't register finalizer.gc_profile malloc or realloc missnegative allocation size (or too big)malloc: possible integer overflowrealloc: possible integer overflowobject allocation during garbage collection phaseheap_pages_deferred_final == 0rb_objspace_call_finalizer333333�?�C�������?��&�.>���ư>@�@�?\��(\�?$@GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�LF�E�A �C(�F0�
(F ABBDl
(F ABBAl�U�����0��& 040HFA�X
Geh|�A�
H(��A�G�b
AEdA�+E�a�!HX�#TN%EAK02HiHHV0``A�G�D c
DADeAA8�dB�E�D �C(�DP[
(C ABBK�AHh
HD�UE�K CAUE�K CA$0GE�H�G mDA$XGE�H�G mDA$�GE�H�G mDA,�?F�A�A ��
ABF,��F�H�D ��
CBDL�F�I�B �B(�A0�A8�G��
8A0A(B BBBA0X�K�E�G �P0P CABC�����\��B�B�B �B(�A0�A8�D@l
8A0A(B BBBD�8A0A(B BBBRH h
H#E�]$8TE�F�G AA`YtTH�ZB�B�B �B(�A0�A8�Gp
8A0A(B BBBBL��K�B�B �B(�A0�D8�G`�8A0A(B BBBJ������($0B�D�C �cAB$P=E�A�I kAAx�r`N�ODe
A�hH�Z
F�nTI �[J�G AAE�d�B�B�B �E(�D0�A8�J@�
8A0A(B BBBH�
8F0A(B BBBB l�E�K L
AC4�`F�I�C �^
FBHG
ABE�kA�`
E�0AAUp�B�B�E �E(�A0�A8�D`Z
8A0A(B BBBH�
8A0A(B BBBFthRpWhC`Ht
F�B�B �B(�A0�A8�DP�8A0A(B BBBh��B�B�B �D(�A0�GP�
0A(A EBBA_
0D(A BBBFp0D(A BBB(,	yF�A�K �_AF$X	lE�O w
ADZA�	.N$�	!B�MA�H��$�	1B�MA�H��$�	(E�JA�H��<
MI�A�D RCAD��H ���CA(T
sE�K�D0�
DAB�
$H[8�
DM�A�A �
DBIe
ABE�
&H]�
# (���X
AD�8L�P�A�A �l
ABG�
ABB4�8c�A�A �=ABK���H ���L�(F�F�B �B(�A0�A8�D��
8F0A(B BBBIE�U,H UD	 XxE�G _
DA|$�.E�D�G QGA(��i�A�G0J
AAC���
s4 
aE�D�D �
AAFD
CAHX
3l
�
AM k�
AM k�
H\ k�
C�
M�
�8�F�E�D �A(�J�{
(A ABBE@wTJh+,|5N�D�D �F
ABA(��O�D�J �
AAK4��M�F�C �o
ABHiAB	$ 8L<H]
KGl*<�+M�B�J �A(�A0�<
(A BBBB��H z
F�=gK��F�H�H �,A�G o
AHf
AID�<X�A�A�G w
DAKT
AAJKDA8�B�B�D �D(�G@�
(A ABBB(�aT�G�D0~AAA��H�F�B�B �B(�A0�A8�DP>
8C0A(B BBBD4L�A�D�G I
AAIo
DAL�"KV�"�3WN$�PE�A�G ~CA$�ME�D�G xCA(PM�A�A �}ABD3WQ\1p
��(�?B�A�A �wAB�)�1H��B�B�B �B(�A0�A8�G��
8A0A(B BBBE8@L�B�A�D �G0C
 AABK� AAB$�aE�A�DPTAAL��F�B�A �A(�D@]
(A ABBG.
(F ABBG�(}A�A�D J
AAF@H�B�B�B �D(�D0�D@�
0A(A BBBFH��B�B�B �B(�A0�A8�GPm
8A0A(B BBBHH��L�B�A �A(�D0l
(A ABBJC(A ABB$�T
V<@�T�B�I �H(�A0�S
(A BBBA�2D_
E�EAD��L�w
A�,�6F�A�A �
ABE$<E�D�D eDAdD�
B�B�B �B(�A0�A8�D��
8A0D(B BBBKd
8C0A(B BBBH0��A�E�G p
AAA�AAH�&B�B�I �B(�A0�A8�G@H
8D0A(B BBBKx,F	h�B�B �B(�A0�A8�G�c
8A0A(B BBBD�8F0A(B BBBG������H�������(��Q�A�G 
AAFH��F�E�D �A(�D@C
(A ABBC\(A ABB4 �E�G0V
FHI
AFi
AF$XFE�A�D eJA�<L�[�YL�z
JD�HNT��R�E�E �D(�C0�GP|
0A(A BBBB_
0A(A BBBA,RQ�\
�cA$L�q�@G�X�P�(t3B�A�G �TLD��H��F�B�B �B(�K0�E8�Dp�
8A0A(B BBBG#MN,,�B�D�A �G
ABG\(p3F�I�D �ZCB$�DE�I�D oAA�	�Ow,��M�A�A ��
ABE`�B�B�E �A(�D0�T
(D BBBDR
(G BBBII
(A EBBE�#�#�X@�8��F�A�F �P
ABHX
ABEH�F�E�D �A(�D0~
(C ABBFk(F ABB8\DF�B�B �A(�A0�n(A DBBL��F�I�A �A(�D`%
(F ABBKd
(F ABBAH��B�E�E �E(�D0�D8�D��
8D0A(B BBBC4H\CE�} xZE�J0I
IO �VE�J M
IS(��E�N�D R
DAB�HN`F�B�B �B(�A0�A8�DPq
8A0A(B BBBC�
8A0A(B BBBIhg|	�	4�lF�H�A �
ABCDAB	&!3'I`({�)��*��U?_r�uN U�u�E����E	U'P8UU}p`~}���������&�D�U�z��&��P� 0P'�GP0Z�����F����#�F	�e�2���v���� `�v���&>WKn +x�#�K�q�P!�q���#-�d���%���'??U ^?x��@`�	@�	P���		�d		.	Q	E		AO	H\	Q	w	�	�	`	U�	@3(�	�	�	
�	�	U�	p4M�	

g
,
 
G<
�/.N
g
k
�
�
p
G�
�0!�
�
�
�
�
G�
21�
O ?-P�<OZv��� ��	@�	8�	p	x 	�9	�R	�k	��	��	��	��	��	�
	�
	�3
	�L
	�e
	�~
	��
	��
	�
	�
	�
		 -	(F	0_�zc����c��p��
? �R
sb�R�b���p#���2�TB�qY�Y�Y��
`T"�Gj�Z��� ���@WN0@*}TN@=L}v�����_O_9�Y`hl	8���>�>���@[��O$B��Yl	�|	��	��	��	��	��	��	�	�	�&	�7	�H	�Y	xh	pw	h�	`�O$�%QP$��%p%2%`Op%}�%�p%k��%�&�%0&�%0G&u�(�&���(�
-)
	`7	XP	Pi	H�	@�	8�	h�
-��.-��.,)/C�.yMP��^)/z�/�0/l��/��0��0��1�1+13D13ah4|h4��5��5�37��5s�37d7 @7$-d7C�9Wp7D^�9�9��9�:�:3:H3:rU:�U:�C<�M`:��C<�7>P<�7>2x@R@>8ex@��D��@(��r���D�D@кS�D��D��D��D�D:xE]xE{�E��E��E��E��E VF0 VFW kF| kF� G� G!�G*!�GK!�Ij!�I�!3J�!3J�!GJ�!GJ"�J"w3%"�JA"�J["`vMi"�J�"8K�"�u3�"8K�"�K�"�K+#�KX#�K�#�L�#�L�#kO�#kO($�OT$�O�$:P�$:P�$kP%kP+%�RH%	0X%	(q%	 �%	�%	�%	�%	�%	��%	�	&	�&�R@&`Ta&`T�&�T�&�T�&�T�&�T' U' U6'=UO'=Ug'|U�P@U<}'|U�'�U�'�U�'�g(	�(	`�((	XF(�g](�hbQ�g�r(�h�(�h�(�h�(�i�(�i�(�j)�i)�j9)xkd)�j��)xk�)Bl�)�k��)Bl�)Tr*Pl*pu"%*vP8*Trj*�r�*�r�*�t�*�t+luB+�t�\+lu+�u�+�u�+�u�+�u,v,v:,`vZ,`vw,�v�,�v�,w�,w�,3w-3w-qw2-qwK-�wb-�w
l-�w�-ex.R�w��-ex�-�x�-px?.�x2.�xT.�x|.y�.y�.�y�. y�/�y5/zS/zp/|�/ z��/|�/q|0q|30t~_0t~�0�0�0�1 }1�:1`�X1��i1`��1��1`���1��1���1��2��22.�R2.�k2���2���2��2��2�2��2��2�3�=3��[3��l3���3���3���3��3�4,�$4,�A4��\40��
j4���4Ԙ�4���4Ԙ�4��4�&�4��4V��U�F	5V�,5�A5`��I5�q5���5���5x��5����5x��5Ʀ6Ʀ16�Q6�f6i�y6i��6���6���6-��6���7�D 7-�I7��p70�R�7���7u��7���	8u�/8��S8��3j8���8֩�8���8֩�8�9�,9�G9��U9���e9��9��9��9ϫ�9 ���9ϫ:�":�D:#�d:�3w:#��:t��:t��:��;�� ;߬;;߬W;߭q;߭�;ڮ�;���;ڮ�;�<�<<3�W<3�{<���<���<���<���<I�=I�3=�Q=�l=4��=4��=��=@���=	 �=	>	>	4>�M>��\V ��d>��}>��>��>0��>0��>s�?s�*?ڹL?ڹv?6��?6��?ͺ�?@���?	H�?ͺ@�?@�k@���@��@���@g��@g�Ay�7Ay�SA��mA���A��'()*&�A �A �A �A (�A  �A�A�A�A
�A��A%�A@�AJ�AO�AR�AL�AW�A1�A*B"BBBB B�&B�,B�2B�8B�>B�DB�JB�PB�VB�\B�bB�hB�nB�tB�zB{�Bt�B:�BZ�Bo�Bi�BC�B��B�B 0�B��BT�B��Br�B{�B��B��B��B��B��B��B��B�C�
C�C�C�C�"C�(C�.C�4CY:C@CFCLCPRCXC(^CEdCMjC�pCzvCj|C<�C\�C��C��C��C��C��C��C��C��C
�C��C��C��C0�C��Cp�C0�Cx�C`�C�CD/D+DD�!D�(D:/D@6DU=DhDDKD�RD�YD�`D�gD�nD�uD�|D�D�D0�DH�D\�Dr�D��D��D��D��D��D��D��D�D��D��D�D!�D0E<EKEZEjEz$E�+E�2E�9E�@E�GENEPUE7\E(cEjEqETxEWEb�Er�E|�E��E��E��E��E��E��E��E��E 8�E�E2�E0�EP�Ee�EX�E~F�F�FF� F�'F�.F�5F :FAF�HF8OF HVF @]FxdF�kF�rF�yF��F��F��F��F	�F��F��FP	�F��F��F�F�F�F�F�F,�F<�FH�FW�FhG{G�G�G�!G�(G�/G�6G�=G�DG�KG�RG�YG	`G	gG&	nG-	uG7	|GE	�GM	�GQ	�GT	�G]	�Ge	�Gj	�Gr	�Gw	�G�	�G�	�G�	�G�	�G�	�G�	�G�	�G�	�G�	�G�	H�	HH$H9HMH

 !"#$%+,-^HtH�H�0�S�H�H�H�H�H�H�H�HIII&I3IBIJIQI]IqI�I�I�I�I�I�I�I�I�I�I�I	JJ"J.J;JEJPJ^JjJzJ�J�J�J�J�J�J�J�J�JKK!K0KGKUK_KsK�K�K�K�K�K�K�K�nLLL#L.L<LKLaLvL��L�L�L�L�L�L�L�L�L�LMM&M5MBMLM�9&�U^M�9yM:#�M@:�M�M�D�M�D�M�D	NEx(N�E.<N�E�QN`FiNpF��NGs�N�Ga�N�N�N�N�N
OO+OJ3=O@JNOPJAZO�JAgO�JHsO@KC�O�KM�O�K��O�L��O�OP1W
PPpOw:P�OJaP@P+zPpP5�P�R��P`T��P�P�P�T	�P�PU �P UQ�U*Q�U+.Q:QSQ_Q�h=jQi�vQ�Q�Q�Q`ra�Q�u"�Q�vP�Q@w1�Q�x)R�x1+Rz<RGR\RmR�R�R�R|a�R�|�S�~�V'S6S>S���QS0��[SoS�S�S���S��S��6�S�<�S�ST2TFTWTgTzT�T�T�T�T�T�T	U ��U$U5UHUcU��FqUЦ<�U�Y�Up��U�UЫ�U0�D�U��	�U��O�U���U�#V�#V@�X2V��AVOV�YV �fV0�CvV��Z�V�V�V�V��V�V�VWW�g)Wp�	8W��	EW��lMW^W�eW�W�W�W�W�W�W�W
XX#X9XNXgXvX�X�X	�X.annobin_gc.c.annobin_gc.c_end.annobin_gc.c.hot.annobin_gc.c_end.hot.annobin_gc.c.unlikely.annobin_gc.c_end.unlikely.annobin_gc.c.startup.annobin_gc.c_end.startup.annobin_gc.c.exit.annobin_gc.c_end.exit.annobin_objspace_each_objects.start.annobin_objspace_each_objects.end.annobin_incremental_enable.start.annobin_incremental_enable.endincremental_enable.annobin_internal_object_p.start.annobin_internal_object_p.end.annobin_gc_aging.start.annobin_gc_aging.endgc_aging.annobin_check_children_i.start.annobin_check_children_i.endcheck_children_i.annobin_gc_stress_get.start.annobin_gc_stress_get.endgc_stress_get.annobin_rb_gc_enable.start.annobin_rb_gc_enable.end.annobin_root_objects_from.start.annobin_root_objects_from.endroot_objects_from.annobin_wmap_memsize_map.start.annobin_wmap_memsize_map.endwmap_memsize_map.annobin_gc_profile_enable_get.start.annobin_gc_profile_enable_get.endgc_profile_enable_get.annobin_gc_profile_enable.start.annobin_gc_profile_enable.endgc_profile_enable.annobin_gc_profile_disable.start.annobin_gc_profile_disable.endgc_profile_disable.annobin_shrink_stack_chunk_cache.start.annobin_shrink_stack_chunk_cache.endshrink_stack_chunk_cache.annobin_rgengc_unprotect_logging_exit_func.start.annobin_rgengc_unprotect_logging_exit_func.endrgengc_unprotect_logging_exit_funcrgengc_unprotect_logging_tablergengc_unprotect_logging_exit_func_i.annobin_gc_sweep_start.start.annobin_gc_sweep_start.endgc_sweep_startgc_params.annobin_getrusage_time.start.annobin_getrusage_time.endgetrusage_timetry_clock_gettime.19394.annobin_wmap_free.start.annobin_wmap_free.endwmap_freewmap_free_map.annobin_run_single_final.start.annobin_run_single_final.endrun_single_final.annobin_free_method_entry_i.start.annobin_free_method_entry_i.endfree_method_entry_i.annobin_negative_size_allocation_error_with_gvl.start.annobin_negative_size_allocation_error_with_gvl.endnegative_size_allocation_error_with_gvl.annobin_rgengc_unprotect_logging_exit_func_i.start.annobin_rgengc_unprotect_logging_exit_func_i.end.annobin_set_zero.start.annobin_set_zero.endset_zero.annobin_compat_key.start.annobin_compat_key.endcompat_keygc_stat_compat_tablewarned.18948.annobin_get_envparam_double.start.annobin_get_envparam_double.endget_envparam_double.annobin_wmap_size.start.annobin_wmap_size.endwmap_sizeweakmap_type.annobin_wmap_values.start.annobin_wmap_values.endwmap_valueswmap_values_i.annobin_wmap_keys.start.annobin_wmap_keys.endwmap_keyswmap_keys_i.annobin_wmap_each_value.start.annobin_wmap_each_value.endwmap_each_valuewmap_each_value_i.annobin_wmap_each_key.start.annobin_wmap_each_key.endwmap_each_keywmap_each_key_i.annobin_wmap_each.start.annobin_wmap_each.endwmap_eachwmap_each_i.annobin_wmap_inspect.start.annobin_wmap_inspect.endwmap_inspectwmap_inspect_i.annobin_wmap_inspect_i.start.annobin_wmap_inspect_i.end.annobin_count_objects.start.annobin_count_objects.endcount_objectsrb_intern_id_cache.17916rb_intern_id_cache.17918rb_intern_id_cache.17995rb_intern_id_cache.17992rb_intern_id_cache.17989rb_intern_id_cache.17986rb_intern_id_cache.17983rb_intern_id_cache.17980rb_intern_id_cache.17977rb_intern_id_cache.17974rb_intern_id_cache.17971rb_intern_id_cache.17968rb_intern_id_cache.17965rb_intern_id_cache.17962rb_intern_id_cache.17959rb_intern_id_cache.17956rb_intern_id_cache.17953rb_intern_id_cache.17950rb_intern_id_cache.17947rb_intern_id_cache.17944rb_intern_id_cache.17941rb_intern_id_cache.17938rb_intern_id_cache.17935rb_intern_id_cache.17932rb_intern_id_cache.17929rb_intern_id_cache.17926rb_intern_id_cache.17922.annobin_os_obj_of_i.start.annobin_os_obj_of_i.endos_obj_of_i.annobin_gc_profile_total_time.start.annobin_gc_profile_total_time.endgc_profile_total_time.annobin_gc_profile_dump_on.start.annobin_gc_profile_dump_on.endgc_profile_dump_on.annobin_gc_profile_report.start.annobin_gc_profile_report.endgc_profile_report.annobin_gc_profile_result.start.annobin_gc_profile_result.endgc_profile_result.annobin_gc_stress_set_m.start.annobin_gc_stress_set_m.endgc_stress_set_m.annobin_gc_remember_unprotected.isra.22.start.annobin_gc_remember_unprotected.isra.22.endgc_remember_unprotected.isra.22.annobin_rgengc_remember.isra.27.start.annobin_rgengc_remember.isra.27.endrgengc_remember.isra.27.annobin_run_finalizer.isra.40.start.annobin_run_finalizer.isra.40.endrun_finalizer.isra.40.annobin_finalize_list.start.annobin_finalize_list.endfinalize_list.annobin_finalize_deferred.start.annobin_finalize_deferred.end.annobin_gc_finalize_deferred.start.annobin_gc_finalize_deferred.end.annobin_gc_event_hook_body.isra.42.start.annobin_gc_event_hook_body.isra.42.endgc_event_hook_body.isra.42.annobin_should_be_finalizable.start.annobin_should_be_finalizable.endshould_be_finalizable.annobin_should_be_callable.start.annobin_should_be_callable.endshould_be_callablerb_intern_id_cache.17155.annobin_rb_obj_id.start.annobin_rb_obj_id.end.annobin_wmap_memsize.start.annobin_wmap_memsize.endwmap_memsize.annobin_gc_info_decode.isra.52.start.annobin_gc_info_decode.isra.52.endgc_info_decode.isra.52sym_major_by.18855sym_gc_by.18856sym_immediate_sweep.18857sym_have_finalizer.18858sym_state.18859sym_stress.18864sym_nofree.18860sym_oldgen.18861sym_shady.18862sym_force.18863sym_oldmalloc.18865sym_newobj.18866sym_malloc.18867sym_method.18868sym_capi.18869sym_none.18870sym_marking.18871sym_sweeping.18872.annobin_gc_latest_gc_info.start.annobin_gc_latest_gc_info.end.annobin_default_proc_for_compat_func.start.annobin_default_proc_for_compat_func.enddefault_proc_for_compat_func.annobin_negative_size_allocation_error.start.annobin_negative_size_allocation_error.endnegative_size_allocation_error.annobin_ruby_memerror.part.65.start.annobin_ruby_memerror.part.65.endruby_memerror.part.65garbage_collect_with_gvl.part.69.annobin_get_envparam_size.constprop.78.start.annobin_get_envparam_size.constprop.78.endget_envparam_size.constprop.78.annobin_gc_profile_record_get.start.annobin_gc_profile_record_get.endgc_profile_record_getrb_intern_id_cache.19454rb_intern_id_cache.19456rb_intern_id_cache.19458rb_intern_id_cache.19460rb_intern_id_cache.19462rb_intern_id_cache.19464rb_intern_id_cache.19452.annobin_define_final0.start.annobin_define_final0.enddefine_final0.annobin_wmap_aset.start.annobin_wmap_aset.endwmap_asetwmap_aset_update.annobin_define_final.start.annobin_define_final.end.annobin_wmap_each_value_i.start.annobin_wmap_each_value_i.end.annobin_wmap_each_key_i.start.annobin_wmap_each_key_i.end.annobin_wmap_each_i.start.annobin_wmap_each_i.end.annobin_wmap_values_i.start.annobin_wmap_values_i.end.annobin_wmap_keys_i.start.annobin_wmap_keys_i.end.annobin_wmap_aref.start.annobin_wmap_aref.endwmap_aref.annobin_wmap_has_key.start.annobin_wmap_has_key.endwmap_has_key.annobin_id2ref.start.annobin_id2ref.endid2ref.annobin_rb_objspace_alloc.start.annobin_rb_objspace_alloc.end.annobin_rb_objspace_set_event_hook.start.annobin_rb_objspace_set_event_hook.end.annobin_rb_objspace_data_type_memsize.start.annobin_rb_objspace_data_type_memsize.end.annobin_rb_objspace_data_type_name.start.annobin_rb_objspace_data_type_name.end.annobin_type_name.start.annobin_type_name.end.annobin_check_color_i.start.annobin_check_color_i.endcheck_color_i.annobin_check_generation_i.start.annobin_check_generation_i.endcheck_generation_i.annobin_gc_verify_internal_consistency.start.annobin_gc_verify_internal_consistency.endgc_verify_internal_consistencyverify_internal_consistency_i.annobin_rb_free_const_table.start.annobin_rb_free_const_table.endfree_const_entry_i.annobin_rb_objspace_each_objects_without_setup.start.annobin_rb_objspace_each_objects_without_setup.end.annobin_rb_objspace_internal_object_p.start.annobin_rb_objspace_internal_object_p.end.annobin_rb_undefine_finalizer.start.annobin_rb_undefine_finalizer.end.annobin_undefine_final.start.annobin_undefine_final.endundefine_final.annobin_rb_define_finalizer.start.annobin_rb_define_finalizer.end.annobin_rb_gc_copy_finalizer.start.annobin_rb_gc_copy_finalizer.end.annobin_rb_gc_finalize_deferred.start.annobin_rb_gc_finalize_deferred.end.annobin_rb_objspace_markable_object_p.start.annobin_rb_objspace_markable_object_p.end.annobin_rb_objspace_garbage_object_p.start.annobin_rb_objspace_garbage_object_p.end.annobin_rb_obj_memsize_of.start.annobin_rb_obj_memsize_of.end.annobin_ruby_stack_length.start.annobin_ruby_stack_length.end.annobin_ruby_stack_check.start.annobin_ruby_stack_check.end.annobin_rb_mark_set.start.annobin_rb_mark_set.endmark_key.annobin_rb_mark_hash.start.annobin_rb_mark_hash.endmark_keyvalue.annobin_rb_mark_tbl.start.annobin_rb_mark_tbl.endmark_entry.annobin_rb_objspace_marked_object_p.start.annobin_rb_objspace_marked_object_p.end.annobin_rb_gc_writebarrier_generational.start.annobin_rb_gc_writebarrier_generational.end.annobin_rb_gc_writebarrier_unprotect.start.annobin_rb_gc_writebarrier_unprotect.end.annobin_rb_gc_unprotect_logging.start.annobin_rb_gc_unprotect_logging.end.annobin_rb_copy_wb_protected_attribute.start.annobin_rb_copy_wb_protected_attribute.end.annobin_rb_obj_rgengc_writebarrier_protected_p.start.annobin_rb_obj_rgengc_writebarrier_protected_p.end.annobin_rb_obj_rgengc_promoted_p.start.annobin_rb_obj_rgengc_promoted_p.end.annobin_rb_obj_gc_flags.start.annobin_rb_obj_gc_flags.endID_marked.18685rb_intern_id_cache.18690rb_intern_id_cache.18692ID_wb_protected.18686rb_intern_id_cache.18694ID_old.18687rb_intern_id_cache.18696ID_marking.18688rb_intern_id_cache.18698ID_long_lived.18689.annobin_rb_gc_force_recycle.start.annobin_rb_gc_force_recycle.end.annobin_rb_gc_register_mark_object.start.annobin_rb_gc_register_mark_object.end.annobin_Init_stack.start.annobin_Init_stack.end.annobin_rb_during_gc.start.annobin_rb_during_gc.end.annobin_rb_gc_count.start.annobin_rb_gc_count.end.annobin_gc_count.start.annobin_gc_count.end.annobin_rb_gc_latest_gc_info.start.annobin_rb_gc_latest_gc_info.end.annobin_gc_stat_internal.start.annobin_gc_stat_internal.endgc_stat_symbolsgc_stat_compat_symbolsdefault_proc_for_compat.18963.annobin_gc_stat.start.annobin_gc_stat.end.annobin_rb_gc_stat.start.annobin_rb_gc_stat.end.annobin_rb_memerror.start.annobin_rb_memerror.end.annobin_gc_grey.start.annobin_gc_grey.endgc_grey.annobin_rgengc_check_relation.part.60.start.annobin_rgengc_check_relation.part.60.endrgengc_check_relation.part.60.annobin_gc_mark_ptr.start.annobin_gc_mark_ptr.endgc_mark_ptr.annobin_gc_mark_children.start.annobin_gc_mark_children.endgc_mark_childrenmark_method_entry_imark_const_entry_i.annobin_rb_objspace_reachable_objects_from.start.annobin_rb_objspace_reachable_objects_from.end.annobin_verify_internal_consistency_i.start.annobin_verify_internal_consistency_i.end.annobin_mark_method_entry.isra.62.start.annobin_mark_method_entry.isra.62.endmark_method_entry.isra.62.annobin_mark_method_entry_i.start.annobin_mark_method_entry_i.end.annobin_rb_mark_method_entry.start.annobin_rb_mark_method_entry.end.annobin_mark_entry.start.annobin_mark_entry.end.annobin_mark_const_entry_i.start.annobin_mark_const_entry_i.end.annobin_mark_keyvalue.start.annobin_mark_keyvalue.end.annobin_rb_gc_mark_values.start.annobin_rb_gc_mark_values.end.annobin_mark_key.start.annobin_mark_key.end.annobin_rb_gc_mark.start.annobin_rb_gc_mark.end.annobin_wmap_mark.start.annobin_wmap_mark.endwmap_mark.annobin_gc_mark_maybe.start.annobin_gc_mark_maybe.end.annobin_gc_mark_locations.part.63.start.annobin_gc_mark_locations.part.63.endgc_mark_locations.part.63.annobin_rb_gc_mark_locations.start.annobin_rb_gc_mark_locations.end.annobin_rb_gc_mark_machine_stack.start.annobin_rb_gc_mark_machine_stack.end.annobin_mark_current_machine_context.start.annobin_mark_current_machine_context.endmark_current_machine_context.annobin_rb_gc_mark_maybe.start.annobin_rb_gc_mark_maybe.end.annobin_gc_mark_roots.start.annobin_gc_mark_roots.endgc_mark_roots.annobin_rb_objspace_reachable_objects_from_root.start.annobin_rb_objspace_reachable_objects_from_root.end.annobin_rb_gc_writebarrier_incremental.start.annobin_rb_gc_writebarrier_incremental.end.annobin_rb_gc_writebarrier_remember.start.annobin_rb_gc_writebarrier_remember.end.annobin_heap_pages_expand_sorted.start.annobin_heap_pages_expand_sorted.endheap_pages_expand_sorted.annobin_heap_assign_page.start.annobin_heap_assign_page.endheap_assign_page.annobin_gc_marks_finish.start.annobin_gc_marks_finish.endgc_marks_finish.annobin_gc_set_initial_pages.start.annobin_gc_set_initial_pages.endgc_set_initial_pages.annobin_ruby_gc_set_params.start.annobin_ruby_gc_set_params.end.annobin_Init_heap.start.annobin_Init_heap.end.annobin_ruby_memerror.start.annobin_ruby_memerror.endruby_memerrorruby_memerror_body.annobin_ruby_memerror_body.start.annobin_ruby_memerror_body.end.annobin_gc_profile_clear.start.annobin_gc_profile_clear.endgc_profile_clear.annobin_ruby_xfree.start.annobin_ruby_xfree.end.annobin_rb_objspace_free.start.annobin_rb_objspace_free.end.annobin_rb_free_m_tbl_wrapper.start.annobin_rb_free_m_tbl_wrapper.end.annobin_gc_sweep_step.start.annobin_gc_sweep_step.endgc_sweep_step.annobin_gc_sweep.start.annobin_gc_sweep.endgc_sweep.annobin_gc_marks_rest.start.annobin_gc_marks_rest.endgc_marks_rest.annobin_gc_start.start.annobin_gc_start.end.annobin_gc_rest.start.annobin_gc_rest.endgc_rest.annobin_rb_objspace_each_objects.start.annobin_rb_objspace_each_objects.end.annobin_os_each_obj.start.annobin_os_each_obj.endos_each_obj.annobin_rb_gc_disable.start.annobin_rb_gc_disable.end.annobin_rb_garbage_collect.start.annobin_rb_garbage_collect.end.annobin_rb_gc.start.annobin_rb_gc.end.annobin_rb_gc_start.start.annobin_rb_gc_start.end.annobin_garbage_collect_with_gvl.start.annobin_garbage_collect_with_gvl.endgarbage_collect_with_gvlgc_with_gvl.annobin_objspace_malloc_gc_stress.start.annobin_objspace_malloc_gc_stress.endobjspace_malloc_gc_stress.annobin_objspace_malloc_increase.isra.71.start.annobin_objspace_malloc_increase.isra.71.endobjspace_malloc_increase.isra.71.annobin_objspace_xfree.isra.73.start.annobin_objspace_xfree.isra.73.endobjspace_xfree.isra.73.annobin_ruby_sized_xfree.part.74.start.annobin_ruby_sized_xfree.part.74.endruby_sized_xfree.part.74.annobin_ruby_sized_xfree.start.annobin_ruby_sized_xfree.end.annobin_wmap_finalize.start.annobin_wmap_finalize.endwmap_finalizewmap_final_func.annobin_wmap_free_map.start.annobin_wmap_free_map.end.annobin_objspace_xmalloc.start.annobin_objspace_xmalloc.endobjspace_xmalloc.annobin_ruby_xmalloc.start.annobin_ruby_xmalloc.end.annobin_force_chain_object.start.annobin_force_chain_object.endforce_chain_object.annobin_rb_gc_register_address.start.annobin_rb_gc_register_address.end.annobin_rb_global_variable.start.annobin_rb_global_variable.end.annobin_ruby_xmalloc2.start.annobin_ruby_xmalloc2.end.annobin_ruby_xcalloc.start.annobin_ruby_xcalloc.end.annobin_objspace_xrealloc.isra.75.start.annobin_objspace_xrealloc.isra.75.endobjspace_xrealloc.isra.75.annobin_ruby_sized_xrealloc.start.annobin_ruby_sized_xrealloc.end.annobin_ruby_xrealloc.start.annobin_ruby_xrealloc.end.annobin_ruby_sized_xrealloc2.start.annobin_ruby_sized_xrealloc2.end.annobin_ruby_xrealloc2.start.annobin_ruby_xrealloc2.end.annobin_wmap_final_func.start.annobin_wmap_final_func.end.annobin_wmap_aset_update.start.annobin_wmap_aset_update.end.annobin_gc_with_gvl.start.annobin_gc_with_gvl.end.annobin_gc_start_internal.start.annobin_gc_start_internal.endgc_start_internalkeyword_ids.18825rb_intern_id_cache.18827rb_intern_id_cache.18829rb_intern_id_cache.18831.annobin_newobj_of.start.annobin_newobj_of.end.annobin_rb_newobj.start.annobin_rb_newobj.end.annobin_rb_newobj_of.start.annobin_rb_newobj_of.end.annobin_rb_node_newnode.start.annobin_rb_node_newnode.end.annobin_rb_data_object_alloc.start.annobin_rb_data_object_alloc.end.annobin_rb_data_typed_object_alloc.start.annobin_rb_data_typed_object_alloc.end.annobin_wmap_allocate.start.annobin_wmap_allocate.endwmap_allocaterb_intern_id_cache.19247.annobin_free_const_entry_i.start.annobin_free_const_entry_i.end.annobin_rb_gc_call_finalizer_at_exit.start.annobin_rb_gc_call_finalizer_at_exit.end__PRETTY_FUNCTION__.17267.annobin_rb_gc_unregister_address.start.annobin_rb_gc_unregister_address.end.annobin_ruby_mimmalloc.start.annobin_ruby_mimmalloc.end.annobin_ruby_mimfree.start.annobin_ruby_mimfree.end.annobin_Init_GC.start.annobin_Init_GC.end.LC0.LC1.LC2.LC5.LC4.LC6.LC7.LC8.LC9.LC11.LC10.LC12.LC13.LC15.LC16.LC14.LC17.LC44.LC43.LC42.LC41.LC40.LC39.LC38.LC37.LC36.LC35.LC34.LC33.LC32.LC31.LC30.LC29.LC28.LC27.LC26.LC25.LC24.LC23.LC22.LC21.LC45.LC18.LC20.LC19.LC46.LC49.LC47.LC48.LC50.LC51.LC52.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC53.LC72.LC73.LC74.LC77.LC76.LC75.LC79.LC80.LC84.LC83.LC82.LC78.LC81.LC85.LC87.LC88.LC89.LC86.LC90.LC91.LC92.LC95.LC97.LC100.LC94.LC93.LC101.LC96.LC98.LC99.LC102.LC103.LC104.LC107.LC106.LC105.LC108.LC150.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.LC120.LC121.LC122.LC123.LC124.LC125.LC126.LC127.LC128.LC129.LC130.LC131.LC132.LC133.LC134.LC135.LC136.LC137.LC138.LC139.LC140.LC141.LC142.LC143.LC144.LC145.LC146.LC147.LC148.LC149.LC152.LC156.LC155.LC153.LC151.LC154.LC157.LC158.LC159.LC160.LC161.LC162.LC163.LC164.LC165.LC166.LC167.LC168.LC171.LC174.LC175.LC176.LC177.LC178.LC179.LC180.LC181.LC182.LC183.LC172.LC173.LC169.LC170.LC184.LC3.LC186.LC185.LC187.LC190.LC189.LC188.LC191.LC192.LC193.LC194.LC195.LC196.LC197.LC198.LC199.LC200.LC201.LC202.LC203.LC204.LC205.LC206.LC207.LC208.LC209.LC210.LC211.LC212.LC213.LC214.LC215.LC216.LC217.LC218.LC219.LC220.LC221.LC222.LC223.LC224.LC225.LC226.LC227.LC228.LC229.LC230.LC231.LC232.LC233.LC234.LC235.LC236.LC237.LC238.LC239.LC240.LC241.LC242.LC243.LC244.LC245.LC246.LC247.LC248.LC249.LC250.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_ruby_current_vmrb_gc_enablest_foreachrb_sweep_method_entryclock_gettimegetrusagest_free_tablerb_eval_cmdrb_free_method_entryrb_eNoMemErrorrb_raisestderr__fprintf_chkrb_hash_asetrb_hash_lookuprb_warngetenvruby_strtodrb_ruby_verbose_ptrrb_check_typeddatarb_uint2bigrb_ary_newrb_class_namerb_sprintfrb_str_catrb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolrb_inspectrb_str_appendrb_any_to_srb_scan_argsrb_id2symrb_intern2rb_eTypeErrorrb_hash_newrb_hash_tbl_rawrb_obj_is_kind_ofrb_yieldrb_float_new_in_heaprb_str_new_staticrb_stdoutrb_io_writerb_str_buf_newrb_str_buf_appendrb_securerb_safe_levelrb_fix2intrb_protectrb_set_errinforb_ary_new_from_valuesrb_obj_freezest_deleteruby_vm_event_flagsruby_current_threadrb_threadptr_exec_event_hooksrb_obj_classnamerb_eArgErrorrb_error_frozen_objectrb_obj_respond_torb_obj_classrb_obj_idrb_int2bigrb_sym2idst_memsizerb_sym2strrb_check_typerb_error_arityruby_thread_has_gvl_pruby_native_thread_prb_thread_call_with_gvlfwritestrtoll__ctype_b_locrb_ary_pushst_lookuprb_funcallrb_freeze_singleton_classst_add_directst_updatest_insertrb_block_procrb_yield_valuesrb_eRangeErrorrb_num2ulongrb_id2strrb_objspace_allocrb_objspace_set_event_hookrb_objspace_data_type_memsizerb_objspace_data_type_namerb_bugrb_free_const_tablerb_objspace_each_objects_without_setuprb_objspace_internal_object_prb_undefine_finalizerrb_define_finalizerrb_gc_copy_finalizerrb_gc_finalize_deferredrb_objspace_markable_object_prb_objspace_garbage_object_prb_obj_memsize_ofrb_generic_ivar_memsizeonig_region_memsizerb_str_memsizeonig_memsizerb_ary_memsizerb_io_memsizerb_node_memsizeruby_stack_lengthruby_stack_checkrb_mark_setrb_mark_hashrb_mark_tblrb_objspace_marked_object_prb_gc_writebarrier_generationalrb_gc_writebarrier_unprotectrb_gc_unprotect_loggingruby_snprintfst_init_strtableatexit__stack_chk_failrb_copy_wb_protected_attributerb_obj_rgengc_writebarrier_protected_prb_obj_rgengc_promoted_prb_obj_gc_flagsrb_gc_force_recyclerb_gc_register_mark_objectrb_ary_lastrb_ary_tmp_newInit_stackruby_init_stackrb_during_gcrb_gc_countrb_gc_latest_gc_infogc_stat_internalrb_obj_hiderb_hash_set_default_procrb_proc_newrb_gc_statrb_memerrorrb_exc_raiserb_mark_generic_ivarrb_gc_mark_noderb_objspace_reachable_objects_fromrb_mark_method_entryrb_gc_mark_valuesrb_gc_markrb_gc_mark_locationsrb_gc_mark_machine_stackrb_gc_mark_mayberb_vm_markrb_gc_mark_encodingsrb_mark_end_procrb_gc_mark_global_tblrb_mark_generic_ivar_tblrb_gc_mark_unlinked_live_method_entriesrb_objspace_reachable_objects_from_rootrb_gc_writebarrier_incrementalrb_gc_writebarrier_rememberposix_memalignmemmoveruby_gc_set_paramsInit_heaprb_sigaltstack_sizest_init_numtablememsetruby_xfreeruby_sized_xfreerb_objspace_freerb_free_m_tbl_wrapperrb_class_detach_subclassesrb_class_remove_from_module_subclassesrb_class_remove_from_super_subclassesrb_io_fptr_finalizeonig_region_freerb_gc_free_noderb_gc_free_dsymbolonig_freerb_str_freerb_ary_freerb_postponed_job_register_onerb_free_generic_ivarrb_class_detach_module_subclassesruby_disable_gcrb_objspace_each_objectsrb_ensurerb_block_given_prb_frame_this_funcrb_enumeratorize_with_sizerb_gc_disablerb_garbage_collectrb_gcrb_gc_startmalloc_usable_sizeruby_xmallocrb_gc_register_addressrb_global_variableruby_xmalloc2ruby_xcallocruby_sized_xreallocruby_xreallocruby_sized_xrealloc2ruby_xrealloc2rb_get_kwargsrb_newobjrb_newobj_ofrb_node_newnoderb_data_object_allocrb_data_typed_object_allocrb_obj_methodrb_gc_call_finalizer_at_exitrb_obj_is_threadrb_obj_is_mutexrb_obj_is_fiber__assert_failrb_gc_unregister_addressruby_mimmallocruby_mimfreeInit_GCrb_define_modulerb_mGCrb_define_singleton_methodrb_define_methodrb_internrb_define_constrb_define_module_underrb_define_module_functionrb_vm_register_special_exceptionrb_cBasicObjectrb_mKernelrb_cObjectrb_define_class_underrb_define_alloc_funcrb_define_private_methodrb_mEnumerablerb_include_modulerb_fstring_newruby_gc_debug_indentruby_initial_gc_stress_ptr*���������*���������g*����������*����������*���������'*���������W*���������������������*������������������Jj��������Rk��������ml��������t$������������������������m��������n��������5���������=���������c��������������������o���������*��������������������*����������p�����������������4���������O<T���������cL�q�������������������H�����������������������������)���������;*���������Hr��������W���������c*����������s�����������������������������*����������t������������������	d�������� 	���������h	d��������q	���������{	*����������	����������	����������	d���������	����������	*����������	���������
���������(
d��������7
*���������F
���������Y
���������x
d���������
*����������
����������
����������
d���������
*����������
����������
���������S���������]d��������e���������ou��������|��������������������v�������������������*���������*���������*���������#*���������3*���������C*����������w���������������������������������������x����������������������������
���������Y
���������i
���������{
y���������
���������)z��������?*���������U���������?<M���������]���������|4�������������������������������l�������������������D���������St_{��������i���������st�|�|�������������������|���}�����������������������~��������������������#��������-���������7�C�S���������]���������g�s������������������������������������������������������������������������������������������'�3�C���������M���������W�c�s���������}����������������������������������������������������������������������
����������#�3���������=���������G�S�c���������m���������w��������������������������������������������������������������������#���������-���������7CS���������]���������gs$���������������������$�,���������������������,���������������������l)*���������0���������:���������C���������M���������W4d���������s���������}����������<����������������������������������������2���������A���������w*���������1*���������z���������������������������������������������������������������������*���������.*���������Pz��������W���������x���������*����������*�����������������������������e���������������������������������������������������������R*����������*����������*�������������������;���������B���������L*���������V���������[���������c4y������������������������������4���������������������*�������������������%���������^���������l����������������������������������������������!���������-���������4��������9���������A���������M���������T�Y���������a���������m���������t�y����������������������������������������������������������������������������������������������������������������������������������������� ���������
 ��������� � ���������! ���������- ���������4 �9 ���������A ���������M ���������T �Y ���������a ���������m ���������t �y ���������� ���������� ���������� �� ���������� ���������� ���������� �� ���������� ���������� ���������� |� ���������� ���������� ���������� t� ���������!���������
!���������!l!���������!!���������-!���������4!d9!���������A!���������H!��������O!\V!��!����������!��!��!��!����������!��!����������!�"��������� "�;"lI"dQ"\Y"����������"���������"��"��"��"��"��"��"�#�C#|S#tl#�{#��#��#|�#t�#��#*����������#����������#���������$l$d#$\0$���������7$���������A$*���������K$���������X$z��������c$*����������$����������$*����������$����������$����������$���������&%���������l%���������u%���������~%����������%*����������%o���������%����������%*����������%����������%����������%����������%����������%*���������&���������&���������%&���������[&����������&����������&����������&r���������&*����������&���������~'����������'����������(*����������(����������(����������(*����������(����������(����������(����������(���������)���������)*����������)\�)����������)����������)T*���������*���������.*L<*���������J*���������c*Dq*���������*����������*<�*����������*����������*4�*����������*����������*���������+���������+���������2+dC+���������Q+���������s+���������z+\�+����������+����������+\�+����������+T�+����������+����������+T�+����������+���������,4,���������,���������',<1,���������C,���������M,���������W,Dc,���������m,���������w,d�,����������,����������,����������,L�,���������%-*���������@-���������^-����������-����������-���������D.���������W.���������~.����������.����������.d���������.���������	/���������/���������:/���������M/����������/����������0����������1���������)3���������`4����������5����������5d���������5*����������5����������5���������w7*���������o8*���������y8����������8����������8����������8���������
9*���������9���������9����������9*����������9����������9����������9*����������9����������9����������9����������9D�9*���������l:�x�:����������:����������:{���������:|���������:}���������:~���������:���������:���������;���������;���������#;���������3;���������C;���������\;���������k;���������s;����������;����������;����������;����������;����������;����������;����������;����������;���������<���������<���������(<���������4<���������~=����������=*����������=����������?����������?*����������?����������@*����������A����������A����������A���������C���������
C����������C����������C*����������C����������C����������C����������C����������C����������C����������C���������D���������CD*���������LD���������[D���������oD����������D����������D���������E*���������QE���������tE����������E*���������F���������PF����������F*���������G*����������G��H���������,H���������@H���������UH���������jH����������H����������H����������H���������I���������$I���������>I����������I����������I����������I����������I����������I���������J*���������`J*����������J����������J*����������J���������K*���������/K���������SL*����������L��M����������M����������M��M����������M��M���������QN���������_N�dN����������N���������gO���������wP+�P$�P,�P�P�P�P�P��P��P��P�}Q��Q��Q,�Q�QR���������R���������R$0R���������5R���������<R�PR���������UR���������\R�pR���������uR���������|R�R����������R����������R�R*���������9T���������@T���������gT*����������T���������T���������T���������U*���������'U*���������IU���������U*����������U*����������U�V�VV���������]V�V����������V�V����������V�V����������VW���������W$IW���������PW,�W����������W4�W����������W<�W����������WDX���������XL6X���������=XTcX���������jX\�X����������Xd�X����������Xl�X����������XtY���������Y|>Y���������EY�hY���������oY��Y����������Y��Y����������Y��Y����������Y�Z���������#Z�IZ���������PZ�vZ���������}Z��Z����������Z��Z���������"[*���������)[���������3[���������C[P[][j[w[$�[,�[4�[<�[D�[L�[T�[\�[d�[l�[t\|\� \�-\�:\�G\�T\�a\�n\�{\��\����������\����������\�\����������\�\����������\�\���������]]���������]$)]���������0],A]���������H]4Y]���������`]<q]���������x]D�]����������]L�]����������]T�]����������]\�]����������]d�]����������]l^���������^t^��������� ^|1^���������8^�I^���������P^�a^���������h^�y^����������^��^����������^��^����������^����������^����������^����������^��^����������^����������^����������^�^����������^���������	_���������__���������_���������)_���������0_5_���������=_���������I_���������P_U_���������]_���������i_���������p_$u_���������}_����������_����������_,�_����������_����������_����������_4�_����������_����������_����������_<�_����������_����������_����������_D�_����������_���������	`���������`L`���������`���������)`���������0`T5`���������=`���������I`���������P`\U`���������]`���������i`���������p`du`���������}`����������`����������`l�`����������`����������`����������`t�`����������`����������`����������`|�`����������`����������`����������`��`����������`���������	a���������a�a���������a���������)a���������0a�5a���������=a���������Ia���������Pa�Ua���������]a���������ia���������pa�ua���������}a����������a����������a��a����������a����������a����������a��a����������a����������a����������a��a����������a����������a����������a��a����������a���������	b���������b\b���������b���������)b���������0bd5b���������=b���������Ib���������PblUb���������]b���������ib���������pbtub���������}b����������b����������b|�b����������b����������b����������b��b����������b����������b����������b��b����������b����������b����������b��b����������b���������	c���������c�c���������c���������)c���������0c�5c���������=c���������Ic���������Pc�Uc���������]c���������ic���������pc�uc���������}c����������c����������c��c����������c����������c����������c��c����������c����������c��c����������c<�c���������c���������c�c\�c���������dLddd���������dTdl%d���������,d3dt;d���������BdId|Qd���������Xd$_d�gd���������nd,ud�}d����������d4�d��d����������dD�d��d����������dl�d��d����������dt�d��d����������d|�d��d����������d��d�e���������e�e�e���������e�%e�-e���������5e���������Ae���������He�Ye���������`e�qe���������xe��e����������e�cgTxg���������g���������gT�g���������gT�g����������g����������g*����������g����������gz��������h���������h
��������@h*���������Gh���������Qh���������Yh����������h
���������h����������h
��������	i*���������i*���������Pi*���������ai���������ii���������si����������i���������j����������j���������l�p�l��������m��������n����������n����������n����������n����������p��������sq��������q���������q����������q���������q����������q��������,r��������3r���������:r��������Ir��������Pr����������r*����������s��������	t���������t���������t���u*����������v*���������Yw*����������x*����������x*���������z*���������1z*���������Kz��������cz���������z���������z���������z	���������z���������z
��������{�������� {��������){��������0{��������9{ ��������@{
��������I{!��������P{��������^{"��������e{���������{����������{����������{���������{���������{ ���������{!���������{"��������|*����������|*����������~*���������U����������&�����������������h�'�������������������	�(����������������������������U���������\������������<�k����������,��4�k���������*������������$����������‡ɇ������������������,�����������4����������<���������'�D.���������:�LA���������N���������U�T\���������h�\o����������*�����������\��d����������������������lĈ��������ӈڈ�����������������������������$
���������� ��������%����������7�*���������>�tI���\$����������g�*���������v�+��������~�����������������������,������������������Ŋ���������Ί����������������������������*���������N�&��������s�-������������������Ӌ�����������.��������@����������H����������`���������������������ی!��������������������������������������c����1������������������������������ď���������Տ�����������2��������
�3���������4�������� �.���������*5��������X�6��������k�.��������x�.��������Ǒ.���������7���������8���������9��������$�:��������?�2��������S�3��������[�4��������d�.���������������������;��������H�*���������^�<���������=��������A�"����������>��������R�#��������Y���������������������������������$�������������������%�����������������������������N�?����������T��k��������ӜL#���������+�l7�&��������U�\������������'���������k��������$�Dm�l��dF�&�������������������@�(��������E����������7�*�����������A��������ΥB����������@��������!����������1�C��������9����������Q�D��������h�z��������o������������*���������צ*����������*���������y�G�������������������ħ�������������������E��������������������8������������I�������������������é*����������d��������0����������H������������������������������������������D����������T�I��������{�)�������������������׫*����������J��������E�*���������T�J����������*���������ʬ*���������Ѭ*��������۬����������*����������)��������F����������V�I�������������������ʭ*���������ѭ*��������ۭ����������I���������&��������*�I��������S�+����������&���������*����������*���������f�*�����������*�����������,�������������������"�Q����������Q��������°M��������I�-��������X�*���������w��������������������$űձ,���S��������Ȳ.��������Ͳ���������Բ����������������������/��������
�����������@�*���������~��������������������0�������������������Ź���������'����������X�N��������b�d��������m�X��������u�,��������}�,����������D�������������Y����������1�������������������ǺDܺ.���������*�������������������������������λ.��������O�[����������*5�������������������\��������%�]����������.��������ܽ���2���������3���������^���������*�����������4����������c����������*d����������5��������ƾe��������;*���������ھ6��������߾e���������*E���������7����������e�������������������e��������(�8��������-�e��������A����������F�e��������]�9��������b�e��������y�:��������~�e����������;����������f���������������������<����������g�������������������ƿ���������Ϳ=��������ҿg��������ڿ��������������������>����������g������������������������������?���������g��������"����������2����������R�@��������W�h��������b�A��������g�i��������w�B����������e����������6����������e����������C����������e���������7���������e���������D���������e����������E����������e���������F���������e��������(�G��������-�e��������4�H��������9�c��������L�I��������W�j��������m�;��������r�j����������J����������j����������K����������j����������L���������j���������*����������M���������k���������*l���������*�����������N���������f���������*m���������O���������f��������1�P��������6�j��������=�*n��������G�Q��������O�o��������a�p��������w�R��������|�f����������S����������f����������T����������f����������U����������f����������V����������f����������W���������f���������X���������f��������+�Y��������0�f��������C�Z��������H�f��������[�[��������`�f��������s�\��������x�f����������]����������f����������^����������f����������_����������f����������1����������q����������*r����������s���������`���������e�������������������a��������!�h��������-�b��������2�t��������=����������I�c��������N�t��������Y����������e�d��������j�t��������u�������������������������������G���������M	����������������������������[%����������%����������8���������?<����������D����������E����������T����������T����������T	��������xU����������w������������������Ԍ���������(�.����������K��������P�.��������c�.��������u�������������������������������� i��$,PX����u��uuEDuLEpExU�E�U�U�}U}0}8�d}l�������������$�,�P�X�����P��PP�DPL�p�x�����������0�8vd�lv�v��v���K$,KPKXq�K�q�q���q��	�	�D	�L	�p	�x	�	��	�	�	?

?0
?8
�d
?l
��
��
	�
��
	�
	�
Q	$	,Q	PQ	X�	�Q	��	��	�
��	�

g
D
Lg
pg
x�
�g
��
��
�
�

0
8
Od
l
O�
O�
�
O�
�
�
�$,�P�Xc���c�c��c�
DL
p
xb�
�b�b��b�0�8�d�l����Y���Y�Y��$Y,�P�X�������@DL@p@x}�@�}�}�}08_dl_�_���_�����>$�,>P>X��>�����O$���O$O$%DO$L%p%xp%�%�p%�p%��%p%�%0�%8&d�%l&�&��(�&��(��(�
-$�(,
-P
-X�.�
-��.��.�)/��.�)/)/�/D)/L�/p�/x�0��/��0��0��1�0�10�1813d�1l13�13�h4�13�h4�h4��5$h4,�5P�5X37��5�37�37�d7�37�d7d7�9Dd7L�9p�9x�9��9��9��9�:�9:0:83:d:l3:�3:�U:�3:�U:�U:�C<$U:,C<PC<X7>�C<�7>�7>�x@�7>�x@x@�DDx@L�Dp�Dx�D��D��D��D��D�D�D0�D8�Dd�Dl�D��D�xE��D�xE�xE��E$ xE, �EP �EX �E� �E� �E� �E� VF� �E� VF!VF!kFD!VFL!kFp!kFx!G�!kF�!G�!G�!�G"G"�G0"�G8"�Id"�Gl"�I�"�I�"3J�"�I�"3J�"3J�"GJ$#3J,#GJP#GJX#�J�#GJ�#�J�#�J�#�J�#�J�#�J$�J$8KD$�JL$8Kp$8Kx$�K�$8K�$�K�$�K�$�K%�K%�K0%�K8%�Ld%�Kl%�L�%�L�%kO�%�L�%kO�%kO�%�O$&kO,&�OP&�OX&:P�&�O�&:P�&:P�&kP�&:P�&kP'kP'�RD'kPL'�Rp'�Rx'`T�'�R�'`T�'`T�'�T(`T(�T0(�T8(�Td(�Tl(�T�(�T�( U�(�T�( U�( U�(=U$) U,)=UP)=UX)|U�)=U�)|U�)|U�)�U�)|U�)�U*�U*�gD*�UL*�gp*�gx*�h�*�g�*�h�*�h�*�h+�h+�h0+�h8+�id+�hl+�i�+�i�+�j�+�i�+�j�+�j�+xk$,�j,,xkP,xkX,Bl�,xk�,Bl�,Bl�,Tr�,Bl�,Tr-Tr-�rD-TrL-�rp-�rx-�t�-�r�-�t�-�t�-lu.�t.lu0.lu8.�ud.lul.�u�.�u�.�u�.�u�.�u�.�u�.v$/�u,/vP/vX/`v�/v�/`v�/`v�/�v�/`v�/�v0�v0wD0�vL0wp0wx03w�0w�03w�03w�0qw13w1qw01qw81�wd1qwl1�w�1�w�1ex�1�w�1ex�1ex�1�x$2ex,2�xP2�xX2�x�2�x�2�x�2�x�2y�2�x�2y3y3�yD3yL3�yp3�yx3z�3�y�3z�3z�3|4z4|04|84q|d4|l4q|�4q|�4t~�4q|�4t~�4t~�4$5t~,5P5X5��5�5��5��5`��5��5`�6`�6�D6`�L6�p6�x6���6��6���6���6.�7��7.�07.�87��d7.�l7���7���7��7���7��7��7�$8�,8�P8�X8���8��8���8���8���8���8��9��9�D9��L9�p9�x9,��9��9,��9,��9��:,�:��0:��8:Ԙd:��l:Ԙ�:Ԙ�:��:Ԙ�:��:��:V�$;�,;V�P;V�X;��;V��;��;��;���;��;��<��<x�D<��L<x�p<x�x<Ʀ�<x��<Ʀ�<Ʀ�<�=Ʀ=�0=�8=i�d=�l=i��=i��=���=i��=���=���=-�$>��,>-�P>-�X>���>-��>���>���>u��>���>u�?u�?��D?u�L?��p?��x?֩�?���?֩�?֩�?�@֩@�0@�8@�d@�l@��@��@��@��@��@��@ϫ$A�,AϫPAϫXA��Aϫ�A��A��A#��A��A#�B#�Bt�DB#�LBt�pBt�xB���Bt��B���B���B߬C��C߬0C߬8C߭dC߬lC߭�C߭�Cڮ�C߭�Cڮ�Cڮ�C�$Dڮ,D�PD�XD3��D��D3��D3��D���D3��D��E��E��DE��LE��pE��xEI��E���EI��EI��E�FI�F�0F�8F4�dF�lF4��F4��F��F4��F��F��F��$G�,G��PG��XG��G���G��G��G0��G��G0�H0�Hs�DH0�LHs�pHs�xHڹ�Hs��Hڹ�Hڹ�H6�IڹI6�0I6�8IͺdI6�lIͺ�Iͺ�I��Iͺ�I��I��I��$J�,J��PJ��XJg��J���Jg��Jg��Jy��Jg��Jy�Ky�K��DKy�LK��pK��xK���K���K�� e	 f g h�tH���l @$(�,�0�4d88<@_D�H�L�P`T4Xw\{`d�h�lp�t�xH|�:�<��;��;��;��;��;��;��;��;��;��;��;�t;�h;�\;�P<�T;�H;�<;�0;�$;�h<�l<�p<�t<�x<�,;� ;�;�;��I��HHH�HII<IPItI �I$�I(�I,�H0�H4�H8�I<�I@JDJH�HLJPJTJXJ\J` Jd$Jh@Jl�Hp�Ht�px�m|hn�ln�Dm�$o�sm�Lo� n��o�\m�,p�hn�n�xm�|m�q�q�q�q��m�q� q�$q�(q�,q�0q�4q�8q��n�u�u�hu�lu�Hu%u)u-u1u5uHuL�ԑ ��$��(@�,4�0�4��8��<Ē@ؑD,�HؐLt�Ph�Tl�X��\��`��d��h@�l��p��t��x��|���������P����Q
�w @x p� ���P�`�������$ 8PL�l������ �P��4�L d@���	�`	�	4 
\p
��
��P \��p�  p<�dx`��� (T@|���`���@�pP$�%�p%��%&x)�-0	�.\	0/�	�/�	�0�	2�	@3
p4X
�5�
@7�
p7�
�9�
�9:@:,`:PP<�@>��@�D0�DH�D\E��E��E��E�`F�pF
G$
�G\
Jp
@J�
PJ�
�J�
�J�
@K�
�K�
�K�LDpOX�Ol@P�pP��R�`T�T(U< UP@Up�U��U��g��h�i�iH�j\�k�Pl�`r�rP�t�pu��u��u�v�`v�vHw`@wt�w��w�px��x��x� y<zP z�|��|�~  L��`���(��D0�������������� �H0�����0��`�� �$��\���Ц���p����00�P��x����������0 �`Ыt��0��������� ������@�������P�`��@�� �8�L �`0�|�����@��к�l��p�������.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rela.data.rel.ro.local.rela.data.rel.local.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@/eT/fl/g�/h�/i'���"@8�/-��� 3@�� =@��K8@�J/
S�b��]@(�0/
|�����@X�0/������@��0/�p�p��@��0/2D
2X#o	.�,�)@��`/;�/H 6@H�`/S�/N@��/c�/Pp0 0.�N0�N0|N0SN0'N0yN0�N0�N0�N0�N0�P0 �p0��@��x/-HO(k0	p��X8�hash.o/         1690381920  1000  135   100644  134440    `
ELF>(@@0/

#%"&!' (����u H��H��H�R�P���D�H�����f����G1��D��H�:�H�r�ff.�@����fD��H���tH�B H�H�J(H�1��@H�H�B H�JH�1��ff.�@��H�W�H��tH�BH���D������H�GH��tH�@H��H��H���ø�f.���H������H���tH�H�B H�J(H�1��@H�H�B H�JH�1��ff.�@��UH��SH��H��L�H�?I�@��t*H��H�6A�PH�UH�C H�S(H�EH��1�[]��H�B H�zH�EH��1�[]���H�H�WH�@H��4����H�GH��t#H�H9��HD��f.�1��ff.�f�����fD��H�H�H�9t$1�f.���Hc�H�<�u�H�D�D��f���H�H�H�8H�����PXH�5H��H�H�81��f�����tH�H�B H�H�J(H�1��P���ff.�����f.�����tH�H�B(H�H�B H�1��P�~���ff.���USH����t-H�H��H��H�6H�?H�P�PH�H�E H�U(H�H��1�[]��0������ou!@��uH�����tH��ƒ���t�� u1��f�SH��H��4�H��ƒ���t���H�1�[����H�H��tH��1����u1�H���D1��D�H���fD��H���1�H���ff.����H��H���1�H���f���AV�G�AUATUS��H������H��I��L�6�A�ą�t��t8I�}H��tH��L�����uFE��u[��tzH�EH��[]A\A]A^�DH�=1��I�}H��t)H��L�����tH�$H��[]A\A]A^�f�L���H��[]A\A]A^ú��H�=1�L���H�D$H�D$H��t1H�|$�A�H�5H�D$H�H�T$H�81��L���H�D$�ff.�@��uH�����tH��ƒ���t��u�H���DSH������H�{t[�fDH�=�H�C[�fDUSH��H���H�߉����tH��uH��[]���E��v��H�5��1�H���H�81�����H��H��1�H����H�������H��������H��H��1�H����H�������H��������S1�H��H��H����1�H�����tH����[�ff.����UH��SH��H��H�7H���uH�B H�rH�EH��1�[]ÐH�UH���1��H�UH�C H�S(H�EH��1�[]�@��USH����t2H��H��H�
H�H�71���H�H�E H�U(H�H��1�[]�����ff.���H��H��1�H����1�H���ff.�@��ATUH��SH�Ӆ�tH�H�B H�H�S([H�E1�]A\�DI��H�?�I�$H�CH�H�C [H�E1�]A\�ff.���H�GH��tcATUH��SH�XH��H���I��H��t;H��H�m�I�t$I�$ uI�t$ H��4H���L��H���L��[]A\�f�1��f���H�GH��tcATUH��SH�XH��H���I��H��t;H��H�m�I�t$I�$ uI�t$ H��4H���L��H���L��[]A\�f�1��f���SH���H���1�H�����tH����[Ð��H���H���1�H���@��SH���H��H���1�[�@��ATI��H��UH��H�:SH���1�H�����u
[��]A\�L��H����H�C��[]A\�D��H���H�������H�����f���ATI��H�:UH��SH���1�H�����u
[��]A\�fDH��L����H�C��[]A\�D��SH��H�rH���1�H��tH����[�D��UH��H��SH��H��H�2�1�H��t	H�k�H����[]�ff.����UH��H��SH��H��H�{H�T$���t�CH�t$H��u,�����1���tH��H��[]�f��������@��USH��H�H�H�;H��t41�f��=�H��H��H��H�;H��u�H��H�D-[]�fDH���[]�@��ATUS�I��H�H�(H�]H��tHD�=H���H��t$H)�H��H���H��H���H��L���H��H�]H��u�L��[]A\�ff.�f�SH��t*H���H��H���H��H���H��[���H��[�fD��USH���H��H�H�H�;H��t3@�=�H��tH�x���H��H���H��H�;H��u�H��H��[]�ff.�@��AUATUSH���I��H�H�(H�}H��tb��=�H��H��t<H�x����H�}H��I��H)��H��H���L��H���L��H���H��H�}H��u�H��L��[]A\A]����AUH��ATUSH���I��H����H���H�H�(H�}H����M�l$� �H����H9�tdH��H�}H��t_�=�H��t�H�XH���I�$�� t�I;D$u�I�t$H��H�����u�A�H��L��[]A\A]�@L����H��E1�[L��]A\A]����AVAUATUSH��H�|$H�t$�H�|$�H�L� I�,$H����L�l$M�u�DH����H9�t|I��I�,$H��tw�=H���H��t�H�XH���I�M�� t�I;Eu�I�uH��H�����u�H)�H��H�s��H��H���H��H��[]A\A]A^�DL���H���H��[]A\A]A^�ff.���U1�H��SH��H�=H���H��H��H��[]�������AVH��AUATUS�H����H��I���H�L� I�,$H����M�u�#f.�H����H9�ttI��I�,$H��to�=H���H��t�H�XH���I�M�� t�I;Eu�I�uH��H�����u�H)�H��H�s��[L��]H��A\A]A^�DL����[�]A\A]A^�f.����H�=�ff.���AV�AUATUS��H�5H���L�-I��I�]H�;H�����=L�5�H��H��tQ�L��L���H�3H��L��H)��H�5�L���H�}�H���L��H���H��H�;H��t<�=�H��I9]t��H�5L���H���s���H��H�;H��uĺH�5L���A��u"I�����tI�$�ƒ����H��s[L��]A\A]A^�f���I�$�����H��H�кH�<$H��H�t$H���1�H���DH9���ATH��A��UH��SH��H�� ��u	H�����u5�aH�����tH��H��E�������uq1�H�� []A\Ð�����u�H�WH��tH�BH��H�KH��t=H�qH��H9�u�H��t1H�H9u�H�L$H��H��H��H�=� D�d$��H��u�H�� �[]A\�D�H�� []A\�f.���f.������f���1����D��ATI��USH���H��H��� ��H���������H�5H���H��H�����u	H�����u-H�5H���L���H��H���[1�]A\�@H��Ѓ������H����H�5H���L���H��H��H���H��Ѓ�����@��u�H�����t�H�E������t�%H	�H��r���DH�{��������H��H�������@���n���H������a���H�E�������O���%H	�H��?�����H���_���[1�]A\�f.���H��H��H��H��H���1�H������@��uH�����tH��у���t��@u�DH�G �ff.�����t��f�H�51��f���H��H�H���4H�56H�x���u
�H���H�H�5H�81�������u`USH��H��H�H�RH�h�SH�H9juF��t
��t�H��[]�f���u�H�����t�H�
�΃���t܀� H�
��D��H�H�5H�81��f.���H9���@��t�����H����tRH��4��H��4��@����H��uH�����t
�����ttH�������H�����fDH�����t������u�H�H�H9Wu�@��u�H������x���������j���H;V�`����D�@��t%@���w���H������j���������\�����1�ø�����ff.�@UH��SH��H����H�5tX�����؃�����H������H�{���uJH�5H��H��1�H�ߺ[]�f�H�����u/H����H����H�{���t�H�C H��[]�@H�{���t�H�H�C �у���t׀�@t�H��4toH�5I��H��H��H���1�[]�DH�H�8�@H�H�8�y���f�H�H�8�a����H�H�8�Q������S���fDH�H�8�1����H�H�8�!������UH��SH��H��H�H��tH�T$���tH�D$H��[]�DH��H���M���H��[]�fD��AULc�ATL��I��USH��H���H��M��~(N�,�DH�3L��H���H��H���L9�u�H��H��[]A\A]�����wSH�B ��u'H�����tH�
A��A��A��t��@t	��u��fDL�H�5H��H�Ǻ1��P�1���SH���H���H��L�U�[1�1�H������AUATI��USH�����tf��1�I��H�h�"fDH����H9�},H��H�<�H���I�E�� u�I;]}
I�E ���H��L��[]A\A]�f.�H��L��[]A\A]�>���ff.���AV�G�AUATU��SH������H�I��H�D$�A�ą�t	����H�|$�H�|$�H�D$H��� H�D$��H�PH�D$H��� ��H�\$H��1�H���H���8H���I��H�����H�=H�������u���������L����H��H��H��[]A\A]A^��H�H�D$H�H������ �b���H�D$H�X�]����H�=1�����DE��uc����I�]H��H��[]A\A]A^�fDL�����������J���DL���H��H����@����H�|$�H���&������H�H�5H�81��H�H�T$H�5H�81��f.���AUATI��USH�����tf��1�I��H�h�"fDH����H9�},H��H�<�H���I�E�� u�I;]}
I�E ���H��L��[]A\A]�f.�H��L��[]A\A]���ff.���AVI��AUATUS����l�I��H�L�(I�]H��tcf��=H���H��H��t8H��H��H)��H��H���H��L���H�}�N�L��H���I��I�]H��u��1�I�\$����I�$�� tE�H����H9���H��H��I�TH�4�1�H���I�$�� u�I;l$}tI�L$ H��H�T���H����H9�}LH��H��I�tH�<H���H���I�$�� u�I;l$}I�T$ H��H�t��[L��]A\A]A^�@�H���[L��]L�O�A\1�A]1�H��A^�ff.�f���H�GH��t
H�@����u�H�=��H��1�H�=d�ff.�@SH���H���H��L�e�[1�1�H������������t"H��H��H��H��H	�H1���H��H9�t�H����H��?H)�H��H��H	�H��H�D$��L$�f/�s�H,�H1�돐�T$��\��H,�H��?��f.�ATUSH��H��0H�|$H�H�$H��H�D$H�D$4H�D$ H�D$(4�H�l$A��H��uH�l$ H��u]H��0D��[]A\�f�@��u�H�����t�H��H�����u�H���`H��`u�H�E��`H��`t�H��H����@@��u�H�����t�H��H�����u�H���`H��`�u���H�E��`H��`�d���H��H����T���f���AVAUI��ATUH��SL�gH��D�w�^�M��tIH�I9$tL���H�H9tpH�1�E��~6H��L��H�����[H��]A\A]A^�f�E��mH�CH��tRH�H9uH�����DL���H�H9u�H����E��H���H���HN�념H�=�H�C��y�f���AT1�I��H��UH��H��SH����H�����t
[1�]A\�fDH��H��L���[1�]A\���AT1�I��H��UH��H��SH����H�����u
[1�]A\�fDH��H��L���[1�]A\���H��H��H��H��H���1�H�����H��H��H��H���1�H�����H��H��H�׋RH��H�5����H����HN�H����1�H���f���H��I��H�:H�rH��H���L�ƋG��H����HO����1�H���D��H��H��H�׋RH��H�5E���H���HN�H���p���1�H���f���SH��H�|$H�t$�H�|$�H�D$H��� H�D$u\H�H����H�D$H��� u5H�\$H��1�H���H��u3H���H��H�H��H��[���f�H�D$H�X��DH�P�H�H�5H�81��f���SH��H�|$H�t$�H�|$�H�D$H��� H�D$ulH�H����H�D$H��� uEH�\$H��1�H���H��uCH���H�ǸH��t�H�|$H���H��[�H�D$H�X�DH�P�H�H�5H�81��f���USH��H�|$H�t$�H�|$�H�D$H��� H�D$��H�H�D$H�H������ ��H�\$H��1�H���H����H���H��H�����H�=H�������u���xh��tH���,�H��H��H��[]��H���H��H���H��H��[]�H�PH�D$H��� �W���H�D$H�X�R���DH������������u��@�H��H��[]�H�H�5H�81��f���ATLc�USH���H��E��~&N�$�H�3�H���o���H��H���L9�u�H��[]A\��������H�G ����UH��SH��H�w @��uH��H�����u
H��H��[]����u�H�E��`H��`u�H���`H��`t�H��H������S�(��H��H���H��[�ff.����ATI��UH��S����I��tH�
H��L���H��H����H���H����H�����H��H���@��uH�����tH�E�ƒ���t��@H�EH��[]A\��@��uH�����tH�E�ƒ���t��H�EH����H��[]A\�L���H�5H��H�H�81�����UH��SH��H������H��H�����uH�����tH��ƒ���t��H�H��H��[]�D��ATI��U��H��SH��������tO��um�H��H������H��H�����uH�����tH��ƒ���t��@H�H��[]A\����w(���tI�4$H���H��[]A\�1�1�����1����D��H��H��H�=n�1���u%�uH�����t
�����
tH����t�H���f���E1�H��H�t$A�@�H��������H#T$��H�D��y�H��H�D�ff.����UH��SH��H���H��H�$�H��1ҾH�D$�H1H��1�[]�ff.�@��H���H�5H���H��H������H��@��u	H�����u11�H��4t@��tS�������}�H��?H���fD�����t.������
����t'�H���DH���f���f���������t�G�H��H��f�H9�t�H���H��H��?H)�H	�H��H�|$�~D$�fDH�G�D�����H��+������G����H��(1�H�t$H�5��H�T$H��H�<$���uH��(�H�H�5H�81�����H�t5H��(�GH��H�<$H�=��H�t$H��H�T$H����H��(Ð�ff.�@��SH���H�߅�t,���H�{tH��H�5���H���H��[�f�[��f.���USH��H���H�߅�tW����H�CH��t9H�@H��H��t-H��H�5C��H���H�CH�PH��H��H9�tH��[]ÐH���[]�@H��[]��D��USH��H���H�߅�tG�"��H�CH��tIH��H�5���H��H�h�H�CH��H�PH��H��H9�tH��[]�fDH��[]��DH���[]�@��SH���H�߅�t,���H�{tH��H�5���H���H��[�f�[�J�f.���SH���c��H�{H��t"H�G����t�C��~1�H�5 ��H���H��[��H��[�fD��H�W�H����H�B������ATH�
UH��SH��H��0H�I��H9�tQH�HH�51��H�t$ L��H�L$(H�L$ H�
H�L$H����H�<$H�|$H�=�H�l$H�D$�H��4u;L��H��H�5���H�,$H�D$�H�D$H��0[]A\�fD��H��H���H��0[]A\�@����H��H�4$H��H�5���H�D$�H�D$H���f���SH��H9�t,H��H��H�
�1�H�5� H���H��[�f���SH��H�GH�D$H��tmH�@H��uH��[�DH����¸��t��H�T$��~H�5���H���H�D$H��[�@H�5���H������H��1�[���H��H�t$H��H�5���H�$�H�$H�����ATUH��SH������H9���H��H�
�H��H��H�p H���H�؃�@��u~H�����tuH�U�у���tg��@tbH��uH�����tH��ƒ���t��@H��L�eH���M��tH�CH��tNI�$H�H��H�5��H���H��[]A\�DH��u�H�����t�H��ƒ���t���H��DH�=�H�C�fD��UH��SH��H�����H�H��H�
��H���H�څ�t!H��H�5���H��H��[]��H��H�5��H��H��[]����SH���H��[H���g������SH�����t?�1҃�~H��H�59���H��[��H��H�5����H��[�@�H���H��L�9��[1�1�H���ff.����SH�����tH��1�H�53���H��[�f�H��[�g����SH�����tH��1�H�5���H��[�f�H��[�'����H��H�4$H��H�5:��H�D$�H�D$H���f���U1�H��SH��H�=H���H��H��H�,$H�D$H�5����H�D$H��[]������u(SH��H��H�H�5����H�[�f���f.���USH��H�GH��tmH�XH��H��H���H�5���H��H�D$�H�D$H��uH���H��H�D[]�f�H�T$H�5���H���H�D$��D1��H�5r���H��H�D$�H�D$�ff.�������UH���SH����H�5H���H�5F��H��H��H����H�5H�����u>H�����t5H��Ѓ���~Q@��u"H�����tH�E������t%H	�H�H��H��[]���H�=���H��r��ff.���UH��SH��H�G1�H��tH�xH���H�5���H��H��H�����u!H�����tH��Ѓ����H��sH��H��[]��@��u�H�����t�H�E������t�%H	�H���fD��AVAUATUH��S��u=H�B1�H��tH�xH���H�5~��H��H��H���H��[]A\A]A^�@A��H�>I��@��ua�A��E����H�E1�H��tH�xH���H�5!��H��H��H���A�E���+E��y�H�51�1�H���끐�A���fDH�H�5L��D��H�DH��I��H��[]A\A]A^�D[H��]A\A]A^�P�����ATUS�G��tH���9��H�{t]�(1���H��H���H�CH�pH�8H���H�5,��H��H�EH��I���H�{�L�cH�EH��[]A\�H�H�5H�81��D��UH�-SH��H��H�GH��tH9(tH�����H�CH��H�(�'���H��H��[]�ff.�f���UH��SH��H���K��H��H�
H���H��H���H9���H�EH�{H����H��t	�H�EH���H�CH�@������H�؃�@��ubH�����tYH�U�у���tK��@tFH��u!H�����tH��ƒ���t��@H�DH�u H���H��H��[]�f.�H��u�H�����t�H��ƒ���tŀ�H��DH���a����H�؃�@��u��W���f�H������H�؃�@��u��5������H�S�(H�8��H��H���H��[�f���SH��H��������H�����u)�H�SH��tH�B������H��[��H���H�H�2H9�t1H��fDH�J H��tH�	H��tH�A������H�RH9�u��u#H�����tH��ƒ���t
��Eu�H�{ �\���H��H�=1���H�SH���G����P���D�H���H��H��1�L���1�H��[�H��H��H�D$H�5>��H�D$H��[�fDH���z����B���f.���SH��H�����t#�H�SH��t
H�B����uH��[�DH��H��[��H��H��H�D$H�5��H�D$H��[�fD��AUATUSH���I��H�H�(H�}H��tZ��=�H��H��t4H�x�E��H�}H��I��H)��H��H���L��H��L���H��H�}H��u�H��L��[]A\A]�ff.�@��H���S���H��H������AWAVAUATUSH��H��������E1�I�����H��H�h�LDH����I9�}dH��N�4�L����I��H��tH��L��1���H�����uI��H��� u�L;k}H�C �DL��L��L�����H��L��[]A\A]A^A_�fD�H���H��H��1�[L�
��]1�A\H��A]A^A_����UH��SH���H��H�5��H��H���H��H��[]�ff.�@��USH����H���H��H�5?�H��H���H��H��[]�f.���USH��H���H�H9uH��H��[]���H�{H��H��t
H�G����ue��u?H�����t6H��ƒ���t)��@t$@��uH�����tH�E�ƒ���t��@H�EH�s H��H���H��H��[]���H�E�D��USH��H��H�/���H��H���H���u	H�����u)H�s H���H�{H��t
H�G����uJH��H��[]�H��ƒ���t��uF��@t�@��u�H�����t�H�E�ƒ���t���@H�E��H�EH��H��[]�DH��H���H��ƒ���u��b���ff.���SH���H�CH��t
[��H�=�H�C[�ff.���H�GH��t�f�SH��H�=�H�C[�f.���H�
H���@��H���@��AVAUATUH��SH�Ӄ�tiA��@�����(H����H��I���E��~,1���CL��H�H�T�HcÃ�H�t��A9��[L��]A\A]A^�f�H�>�I��H��t7�(H����H��I���I�}H��t��I�D$�DH�}�H��H��uH�H�5H�81��H�߾(L�m1���H��I����jf�H����H9��B���L��L�4�L���H����H�H�с� tIH����H��uT�H��tAH��H�0L���H��H�E�� u�H;]����H�E �fDH�PH��u&�H�@ �H��u_H�PH��f�H��uGH�x H�W��L���H��H�=H��1��1�H�=�H�=1���`���H�H�5H�81��ff.���SH��H��H�H��tH�T$���t
H�D$H��[�f�H��H��[����H�wH�?�4�ff.�����f���H��H���H�t$H�t$�q���H���ff.����ATUSH��H��H�H�4$H��tD�CL�d$H��~�4L��H�����u1H�{L��H�����tH�D$H��[]A\�H���4[]A\�f���u�H�����t�H��ƒ���tǀ� H��ff.�f���UH��SH��H�����H��H���H��4t
H��[]���¸��t�H��H��[]�f���SH��H�����H�{H��t�CH�$4��u'H��H�V���u;H�߾���H��[�@H�5���H��H���H�4$H��4t�H���H�t$H�<$�H��[����H����H��4HD�H��Ð��ATI��UH��SH��H�� ����H�
�L��H��H��t.H��H��H�5y��H�$H�l$�H�� H��[]A\��H��H��H�5���H�� H��[]A\�f.���S�H�=H���H�CH��[�ff.���H�=���H��H�=�ff.�f������xÐH��H�=�H����������H���D��SH��H��t����u'[����t�H�=H��1��H���H�=H��1��H���DUSH��H�|$H�|$�H�|$�H�D$H��� H�D$��H�H�D$H�H������ ��H�\$H��1�H���H��u{H�߽�H��t9H���~��1�H��H����H�=H�������u
�H��H��[]�H�PH�D$H��� �{���H�D$H�X�v���H�H�5H�81��D��US1�H���o��H�D$�l�H�H����H9�}pH�D$H��� H�D$toH��H�4ؿH�,�����H��tH�D$H��� H�D$tMH��H�<(���H��H�D$H��� H�D$u�H�@H9�|�H�H��[]�H�@ �f.�H�@ �f.���UH��SH��H�����H�D$H9���H��H�
H�1۾�H�T$H�5�H����<f.�H�H����H9�}>H�D$H��� H�D$t?H��H�<�H�����H�D$H��� H�D$u�H�@H9�|�H��H��[]�f�H�@ �f.���USH��H�H�H�H��tl�=H���H��tZH)�H��H���H��H���H�{H� tH�{�H�����H��H����H��H��H��[]��H���[]�ff.����ATUSH��H����������1�1�H�D$H�D$H�@f�H�D$H��� H�D$�JH�H����H9��DH�D$H��� H�D$�IH��H�4ؿL�$��G��H����H�T$H��� H�T$�H��J�4"�H��1��H�������H�D$H��� H�D$��H��B� usH�D$H��� H�D$��H�@ J� ����tOH�D$H��� H�D$�	H��J� H�����t&H�D$H��� H�D$��H�@ J� H� �����H�D$H��� H�D$tvH��J�< ���.���H�����DH�@H9��������HEH��[]A\�H�@ ����H�R �����H�@ �����H�@ �f�H��������H���H��H��1�[L�����]1�H��A\�DH�@ ���H���������SH���H�߅�t���H�[�fD[����f���ATUSH��H�������菿��1�1�H�D$H�D$H�@f�H�D$H��� H�D$�JH�H����H9��DH�D$H��� H�D$�IH��H�4ؿL�$����H����H�T$H��� H�T$�H��J�4"�H��1��H�������H�D$H��� H�D$��H��B� usH�D$H��� H�D$��H�@ J� ����tOH�D$H��� H�D$�	H��J� H�����t&H�D$H��� H�D$��H�@ J� H� �����H�D$H��� H�D$tvH��J�< �����H�����DH�@H9��������HEH��[]A\�H�@ ����H�R �����H�@ �����H�@ �f�H��������H���H��H��1�[L�"���]1�H��A\�DH�@ ���H���������SH���H�߅�t���H�[�fD[�R��f���UH��H��SH�����H��H��tH��H��[]�����t�H�����ff.�f���USH��H�t$H�$H���#H�|$�H�|$�H���H�<$�H�\$H��� ��H�SH�[1�H���H����H�<$H��� ��H��H�o��1�H���H����H��H����H�=H�������u(H�$��u	H�����uMH����������H�$H��H��[]�f�H��H�����K���H�WH�o�l���H��ƒ���t���t���f�H��H������H��H��[]�H�H�5H�81��H�H�5H�81��ff.���UH��SH��H�����uH��H�޿�G���H��1�[]�fDH�޿���H��H�޿H��1��H��뺐��UH��H��H��SH���H����H��H���H��uH��1�[]��H��H���H��1�[]�ff.����1��D��AU�H�=ATUSH����H�=H���H�=H���H�=H��L�%H�=H�I�4$�H�-H�H��H�uH��H�;H�5����H�;�����H� �H�5�H�;�H���H�5�H�;�����H����H�5�H�;�H���H�5�H�;1�H���H�5�H�;1�H�����H�5�H�;1�H�G�H�5�H�;1�H���H�5�H�;1�H�W��H�5�H�;H�H�5�H�;�H�6���H�5�H�;H��H�5�H�;1�H���H�5�H�;�H�ؿ��H�5�H�;�����H�����H�5�L�-H�;�H�5L���H�;L��H�5�H�;�����H����H�5�H�;�H����H�5�H�;1�H�
���H�5�H�;�H�H�5�H�;�H�4��H�5�H�;�H�I��H�5�L�-H�;1�H�5L���H�;1�L��H�5�H�;1�H�����H�5�H�;1�H�z��H�5�H�;1�H�"��H�5�H�;1�H����H�5�H�;1�H�r��H�5�H�;1�H�H�5�H�;1�H�H�5�H�;�����H�H�5�H�;1�H���H�5�H�;�H�D�H�5�H�;1�H�H�5�H�;1�H�H�5�H�;1�H�H�5�H�;1�H�H�5�H�;1�H�H�5�H�;1�H�H�5�H�;1�H�H�5�H�;1�H�D�H�5�H�;�H�y��H�5�H�;�H�N��H�5�H�;�H�C��H�5�H�;�H����H�5�H�;�H�H�5�H�;�H�H�5�H�;�����H�g��H�5�H�;�H�H�5�H�;�H�H�5�H�;�H�H�5�H�;�H�+��H�5�H�;�H�H�5�H�;�H����H�5�H�;1�H�]�H�5�H�;1�H�H�5�H�;1�H���H�5�I�<$�H�uH��H��H�=�H�R��H�5�H�=�����H����H�5�H�=�H�����H�5�H�=�H�����H�5�H�=1�H����H�5�H�=1�H����H�5�H�=1�H�a���H�5�H�=1�H����H�5�H�=�H�����H�5�H�=1�H�Z���H�5�H�=1�H���H�5�H�1�H�=H�5�H�=1�H���H�5�H�=1�H���H�5�H�=1�H���H�5�H�=1�H���H�5�H�=1�H��H�5�H�=1�H���H�5�H�=�H���H�5�H�=�H�|��H�5�H�=1�H�`���H�5�H�=1�H���H�5�H�=1�H�h���H�5�H�=1�H���H�5�H�=�H�����H�5�H�=�H�����H�5�H�=1�H�b���H�5�H�=1�H�F���H�5�H�=1�H�j���H�5�H�=1�H�n���H�5�H�=1�H����H�5�H�=�����H�3��H�5�H�=�H�D��H�5�H�=�H�%��H�5�H�=�H���H�5�H�=�H�����H�5�H�=�H����H�5�H�=�H�I���H�5�H�=1�H�M��H�5�H�=1�H�1��H�5�H�=�H���H�5�H�=�H���H�5�H�5H�=�H��H�5y���H�=����[]A\A]�����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realigncan't add a new key into hash during iterationblock supersedes default value argumentdefault_proc takes two arguments (2 for %d)ENV.index is deprecated; use ENV.keyhash modified during iterationrehash occurred during iterationwrong default_proc type %s (expected Proc)Hash#index is deprecated; use Hash#keyextra states are no longer copied: %+liodd number of arguments for Hashwrong element type %s at %ld (expected array)ignoring wrong elements is deprecated, remove them explicitlythis causes ArgumentError in the next releaseinvalid number of elements (%ld for 1..2)bad environment variable valuekey not found: %liENV{}, ""=>=>bad environment variable namekey not found: "%li"PATH{}to_procProcto_hashHash{...}rehash during iterationsetenv(%s)unsetenv(%s)hashyielddefaultflatten![]try_convertinitializeinitialize_copyrehashto_hto_ainspectto_s==eql?fetch[]=storedefault=default_procdefault_proc=keyindexsizelengthempty?each_valueeach_keyeach_paireachkeysvaluesvalues_atshiftdeletedelete_ifkeep_ifselectselect!rejectreject!clearinvertupdatereplacemerge!mergeassocrassocflatteninclude?member?has_key?has_value?key?value?compare_by_identitycompare_by_identity?any?�CGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�.OU4H\
p1��	�&��10�]E�D�G l
CAHPCA03D
X>l�AAK�"]��"](�@E�A�D l
CAAYq�g :QQNI@HKXHNlp5F�E�B �A(�A0�F@M
0A(A BBBFn
0A(A BBBJL
0A(A BBBA�+f�*A�P
GQ(YA�A�G ]
AAH@-H_X-H_p4E�n0�\E�D�G Z
CABgCA(�EE�A�D q
CAA�!HX4UF�A�D �V
GBF[GB,<wO�A�D �VABC���,lwO�A�D �VABC����/E�i�HS�E�V4�KF�G�G �S
CBDWAB$HR4<KF�G�D �S
CBGWABt+E�e$�4E�G�G \CA(�lE�G�G0A
AAJ0�\E�A�D x
FAGDFA(sF�A�A �gABD:A�g
HI$daE�A�D QDA4��F�B�A �A(�D0�(D ABBH��F�E�A �A(�D0�
(D ABBEL(D DBBT�F�B�B �A(�A0�D@�
0D(A BBBFL0I(A BBB$h/E�F�N IGAH��F�E�B �A(�A0��
(D EBBJI(F BBB�<�IF�G�B �A(�A0�"
(D BBBC0+H bPH�K�G�D �G@}
 AABBi
 FABFI AABK�����4��F�D�A �s
CBE�CB� KT	5(	<	IHh
A4X	�I�A�G j
AACh��F ���	`N@�	oA�D�G N
NAGq
AAE}
HAJ0�	JE�D�G0`
AAFOAA4 
]F�E�G �A(�G0y(D ABBX
i]p
(A�[H�
�F�B�D �A(�D0[
(D ABBKD(D ABBX�
F�E�B �A(�C0�D@�
0D(A BBBI^
0D(A BBBGH4�F�B�D �A(�D0[
(D ABBKD(D ABBL��F�E�B �A(�A0�j
(D BBBEN(D IDG�A�(A�[�0B�A�A �GPT
 DABJ<H�F�B�E �A(�D0�Q
(D BBBC4�MF�I�G �V
CBGOCB4�MF�I�G �V
CBGOCB� KT
KQ(
7Hn@
;HrX
7Hn p
�E�D m
DF �
�E�D �
AA@�
WE�A�D0�
GAHW
DADQ
DAA(�
IF�D�A �zAB(	<	(P_E�D�D Z
DAD|$E�^8��F�D�D �
ABHz
ABA$�KE�D�G uDA8��F�D�F �U
ABH^
ABA8�H ~
J$TAE�D�G0lCA|(HX�
H y
G��HH0g
A�AO0o�FE�q
JA<{E�A�G O
AABD
FAEDAA<X|E�A�G J
AAGD
AAJDFA�FE�q
JA�JE�w
DIL��f�H�D �GP� AABG���HP���O AABE���(.H e@>E�x0\�E�D `
AFz
AE\C�-H d,�
F�A�D ��
ABF0�yE�D�G B
DAISDAE�L$(tE�k
HS
EXP9E�a
JDp9E�a
JD�.H e$�IE�F�N0mAA�6I�]J�(��E�A�D0E
FAJ0�M�I�D �DAH��X ��(L�E�D�D V
DAH\xF�B�B �A(�D0�u
(A BBBE�
(A BBBFA(D BBB,��F�A�A �w
ABA$CE�H�G iDA(0YE�D�G �
DAK\.L�a4xVE�G {
AH�
RE`
AG0�jE�G e
AFD
DH`A4��F�B�A �A(�D0y(D ABBHI\4�F�B�B �B(�A0�A8�G@�
8D0A(B BBBGQ8F0H(D EBB$�1E�D�D ^DA$�6E�A�D fDA4��E�A�G U
DAIr
DAI4�E�A�G M
DAAM
DAFT2E�R
IQt&Q�T��<�5F�B�B �A(�D0�d
(D BBBC$�9E�G `
ACDD 4H$H [@`�F�A�A �G0L
 AABAD
 FABC0�NE�D�G Z
AADTDA$��E�G ~
AEvAHV<�F�D�D �G@D
 DABHV DABX"E�\t��;Tf�[E�W
D(��A�A�D0�
DAD(��E�A�F0�
AAD((�E�D�G0�
DAJ0T�E�A�D j
GALDFA@�YF�A�A �G0�
 AABDY
 FHGJ�.E�\
GA@�YF�A�A �G0�
 AABDY
 FHGJ0.E�\
GA(PCE�G�D R
DAI4|�E�A�D0�
DAJO
DAA(�_E�D�G ]
CAG0�TE�J�L Y
CAHOCA8(�F�N�A �A(�D0v(O ABB	$%9%Qj&��'��(�.#.2.^;�0�;�Q�@�Q�j`
j<�Zp1k���������	��	&�&6Ur��Q� 1�Q.�_`]���������%=*S 
\*tnZ0>�n���p�������)�I�"\���������"<q`� @�`��`Y"�A�^�x���7� �7�u	@5*	uN	�p	�+�	��	��	�*�	�	��	9$
�Y=
9X
mq
@-}
m�
��
p-�
��
��
�4�
�.<`�\�<���@E�6�T�!e����U�����
	0
	G
O	\
 	/d
O	
l	�
P	�
l	�
�	�
p	�
�	�
�	j�	K�	�	1�	;�	SK
i
KrK
�{
�P
+�{
��
��
4��

,�
l#,>�W0\c�{��s��J�:�J��Pa�2Y
H��QY
n9�`
��9�5�@��5�o�@/oV7p�BVZup`yu����I������+��
���%�363�Ngs������ ����1� B�f��5��.��:	�.y&0I8��Jyk��!��!��	0o	'	0�L�f��M�M���Pi���8�(M�(c�(w�(�������������=�)2E��T2q��@����A�A��4��AxCP(]P(tP(�P(�P(�P(�P(�x 0��> X'!p  {'!�"�"�m"� "M�m"�"p"M�"8�"�/�" O�"o�"��"��"�7#�#7�7#{#5@#;K{#q�#��#7��#�n$��#��n$.%p$�&.%A�&Z0%Wf�&��&��&I��&��&��&�& �&B_'b_'��'�`'$��'��(��("�(C�(KW�(y�)��(���)�$*�$*�q*;0*Aq*�*:�*
F�*a�+z�+��+��+�,�, a,0 a,Q �,p �,� ;-� ;-� �-� �-!.4!.Q!Z.l!Z.�!I/�!�B�!I/�!~/�!~/"�/"�/>("PP_5"�/R"P0m"�/�{"P0�"}0�"P0-�"}0�"�1	#�0
#�17#	2S#�1yb#	2#)2�#2�#)2�#�2�#02t�#�2$�28$�29I$�2k$)3�$�29�$)3�$^3�$03.�$^3�$�3%`3I$%�3A%�3\%�3x%�4�%�3��%�4�%u5�%u5�%6&�5�&67&07T& 6d&	t&07�&�7�&07��&�7�&8'�7C'8B'y9g' 8Y'y9�'�9�'�9�';�';(z;'(z;B(<[(�;�g(<�(9<�( <�(9<�(9=�(@<��(9=�(q=)@=1*)q=D)�=\)�=6g)�=�){>�)�=��){>�)U?�)U?�)�?*�?1*�?N*�?p*�?�*�?�*�?�*�?�*�?+5B,+@5=+5B\+yBy+yB�+�B�+�B�+�B�+�B,�B!,�BE,sCg,sC�,�C�,�CN�,�C�,XD�,�C��,XD-D6-DW-Ev-E�-2E�-2E�-PE�-PE$.cEN.cEq.�E�.�E�.F�.F�.G/F�/G7/�GQ/	 X/�Gs/�H�/�G��/�PT�/�H�/DI�/�H��/DI�/�K0PIY,0�KG0�K`0�K.l0�K�09N�0�KY�09N�0nN�0@N.�0nN1�N41pNCA1�NY1EPo1�N�x1EP�1�P�1�P�1Q�1Q2Q2Q72�\%&'($N2S20X2]2Xb2�g2l2q2v2!|2�2�2%�2��2��2\�2(�2F�2a�2�2d�2l�2��2y�2q�2(�2~�2��2P�2��2��2��23H
3�3�3x3�"3�(3�.3�43�:3�@3�F3�L3�R3X3^3d3j3p3v3 |3&�3*�30�39�3F�3T�3X�3^�3c�3j�3q�3|�3��3��3��3��3��3��3��3��3��3�4�4�4�4�4�4�$4�*404
64<4B4H4%N4.T46Z4?`4Jf4Ol4Vr4jx4~4�4�4�4�4

 !"#)*+�4��4�4�355(515A5�:Q5[5d5u5}5�5�5�5�5�5�5�5�5�566.6@6 wM6]6y6�6�6�w�6�6�6�6�6�6�6�6777,7>7F7V7i7�7�7�7�7�7�7�7�7888(898D8T8q8|8�8�8�8�8�8�8�J�8�]�8�899_$929M9Z9i9{9�9�9�90!��9�9�9�&	:�&	:'_':4:�'�M:c:r:�:�:�)��:�:�:�:�:�*(�:�:�:;; ;,;�+=;�+HM; ,A];g;p,Fy;�,{�;@-|�;�-F�;.J�;�;`.��;P/.�;�;<<<.<<<J<R<�9.^<�g<�9Vv<�<;j�<�>��<�<`?2�<�<�?&�<�?==0=@B9@=�BO=�B$]=�B�r=�=�=�=`D�=�D��=E"�=@E�=PE�=pE;>�E[>b>>">2>G�?>O>]>Qk> Q�u>�>�>�>�>�>�>�>�>
??+?B?i?.annobin_hash.c.annobin_hash.c_end.annobin_hash.c.hot.annobin_hash.c_end.hot.annobin_hash.c.unlikely.annobin_hash.c_end.unlikely.annobin_hash.c.startup.annobin_hash.c_end.startup.annobin_hash.c.exit.annobin_hash.c_end.exit.annobin_foreach_safe_i.start.annobin_foreach_safe_i.endforeach_safe_i.annobin_hash_foreach_ensure_rollback.start.annobin_hash_foreach_ensure_rollback.endhash_foreach_ensure_rollback.annobin_shift_i_safe.start.annobin_shift_i_safe.endshift_i_safe.annobin_clear_i.start.annobin_clear_i.endclear_i.annobin_hash_aset_insert.start.annobin_hash_aset_insert.endhash_aset_insert.annobin_rb_hash_size.start.annobin_rb_hash_size.end.annobin_hash_enum_size.start.annobin_hash_enum_size.endhash_enum_size.annobin_rb_hash_empty_p.start.annobin_rb_hash_empty_p.endrb_hash_empty_p.annobin_rb_hash_to_hash.start.annobin_rb_hash_to_hash.endrb_hash_to_hash.annobin_rb_hash_update_callback_insert.start.annobin_rb_hash_update_callback_insert.endrb_hash_update_callback_insert.annobin_rb_hash_update_func_callback_insert.start.annobin_rb_hash_update_func_callback_insert.endrb_hash_update_func_callback_insert.annobin_reset_hash_type.start.annobin_reset_hash_type.endreset_hash_type.annobin_rb_hash_compare_by_id_p.start.annobin_rb_hash_compare_by_id_p.endidenthash.annobin_env_none.start.annobin_env_none.endenv_none.annobin_env_size.start.annobin_env_size.end.annobin_env_empty_p.start.annobin_env_empty_p.endenv_empty_p.annobin_no_new_key.start.annobin_no_new_key.endno_new_key.annobin_hash_aset_noinsert.start.annobin_hash_aset_noinsert.endhash_aset_noinsert.annobin_hash_aset_str_noinsert.start.annobin_hash_aset_str_noinsert.endhash_aset_str_noinsert.annobin_rb_hash_update_callback_noinsert.start.annobin_rb_hash_update_callback_noinsert.endrb_hash_update_callback_noinsert.annobin_rb_hash_update_func_callback_noinsert.start.annobin_rb_hash_update_func_callback_noinsert.endrb_hash_update_func_callback_noinsert.annobin_hash_foreach_ensure.start.annobin_hash_foreach_ensure.endhash_foreach_ensure.annobin_rb_hash_has_key.start.annobin_rb_hash_has_key.end.annobin_each_key_i.start.annobin_each_key_i.endeach_key_i.annobin_each_value_i.start.annobin_each_value_i.endeach_value_i.annobin_rb_hash_fetch_m.start.annobin_rb_hash_fetch_m.endrb_hash_fetch_m.annobin_rb_hash_modify_check.start.annobin_rb_hash_modify_check.endrb_hash_modify_check.annobin_rb_hash_modify.start.annobin_rb_hash_modify.endrb_hash_modifyobjhash.annobin_default_proc_arity_check.start.annobin_default_proc_arity_check.enddefault_proc_arity_check.annobin_delete_if_i.start.annobin_delete_if_i.enddelete_if_i.annobin_keep_if_i.start.annobin_keep_if_i.endkeep_if_i.annobin_any_p_i_fast.start.annobin_any_p_i_fast.endany_p_i_fast.annobin_rb_hash_update_block_callback_insert.start.annobin_rb_hash_update_block_callback_insert.endrb_hash_update_block_callback_insert.annobin_rb_hash_update_block_callback_noinsert.start.annobin_rb_hash_update_block_callback_noinsert.endrb_hash_update_block_callback_noinsert.annobin_each_pair_i_fast.start.annobin_each_pair_i_fast.endeach_pair_i_fast.annobin_hash_aset_str_insert.start.annobin_hash_aset_str_insert.endhash_aset_str_insert.annobin_rb_hash_keys.start.annobin_rb_hash_keys.end.annobin_rb_hash_values.start.annobin_rb_hash_values.end.annobin_any_p_i.start.annobin_any_p_i.endany_p_i.annobin_each_pair_i.start.annobin_each_pair_i.endeach_pair_i.annobin_to_a_i.start.annobin_to_a_i.endto_a_i.annobin_assoc_i.start.annobin_assoc_i.end.annobin_assoc_cmp.start.annobin_assoc_cmp.endassoc_cmp.annobin_rassoc_i.start.annobin_rassoc_i.endrassoc_i.annobin_rb_hash_search_value.start.annobin_rb_hash_search_value.endrb_hash_search_value.annobin_key_i.start.annobin_key_i.end.annobin_eql_i.start.annobin_eql_i.endeql_i.annobin_rb_env_size.start.annobin_rb_env_size.endrb_env_size.annobin_env_keys.start.annobin_env_keys.endenv_keys.annobin_env_str_new2.start.annobin_env_str_new2.endenv_str_new2.annobin_env_values.start.annobin_env_values.endenv_values.annobin_env_to_a.start.annobin_env_to_a.endenv_to_a.annobin_env_has_value.start.annobin_env_has_value.endenv_has_value.annobin_env_key.start.annobin_env_key.endenv_key.annobin_env_index.start.annobin_env_index.endenv_index.annobin_env_rassoc.start.annobin_env_rassoc.endenv_rassoc.annobin_env_to_s.start.annobin_env_to_s.endenv_to_s.annobin_env_inspect.start.annobin_env_inspect.endenv_inspect.annobin_flatten_i.start.annobin_flatten_i.endflatten_i.annobin_hash_equal.start.annobin_hash_equal.endrecursive_eql.annobin_rb_hash_eql.start.annobin_rb_hash_eql.endrb_hash_eql.annobin_rb_hash_equal.start.annobin_rb_hash_equal.endrb_hash_equal.annobin_inspect_i.start.annobin_inspect_i.endinspect_i.annobin_rb_hash_rehash_i.start.annobin_rb_hash_rehash_i.endrb_hash_rehash_i.annobin_rb_hash_default_proc.start.annobin_rb_hash_default_proc.endrb_hash_default_proc.annobin_hash_recursive.start.annobin_hash_recursive.endhash_recursive.annobin_hash_foreach_call.start.annobin_hash_foreach_call.endhash_foreach_callhash_foreach_iter.annobin_hash_foreach_iter.start.annobin_hash_foreach_iter.end.annobin_rb_any_cmp.start.annobin_rb_any_cmp.endrb_any_cmp.annobin_hash_default_value.start.annobin_hash_default_value.endhash_default_valueid_defaultid_yield.annobin_rb_hash_aref.start.annobin_rb_hash_aref.end.annobin_rb_hash_values_at.start.annobin_rb_hash_values_at.end.annobin_rb_hash_default.start.annobin_rb_hash_default.endrb_hash_default.annobin_env_each_key.part.14.start.annobin_env_each_key.part.14.endenv_each_key.part.14env_delete_if.part.45env_keep_if.part.43env_each_value.part.16.annobin_env_each_key.start.annobin_env_each_key.endenv_each_key.annobin_env_fetch.start.annobin_env_fetch.endenv_fetch.annobin_env_each_value.start.annobin_env_each_value.endenv_each_value.annobin_env_each_pair.start.annobin_env_each_pair.endenv_each_pair.annobin_rb_hash_inspect.start.annobin_rb_hash_inspect.endrb_hash_inspectinspect_hash.annobin_rb_hash_delete_if.part.21.start.annobin_rb_hash_delete_if.part.21.endrb_hash_delete_if.part.21rb_hash_select.part.36rb_hash_each_value.part.30rb_hash_each_key.part.29rb_hash_keep_if.part.24rb_hash_select_bang.part.23rb_hash_reject_bang.part.22.annobin_rb_ident_hash.start.annobin_rb_ident_hash.endrb_ident_hash.annobin_tbl_update.start.annobin_tbl_update.endtbl_update.annobin_rb_hash_aset.start.annobin_rb_hash_aset.end.annobin_reject_i.start.annobin_reject_i.endreject_i.annobin_select_i.start.annobin_select_i.endselect_i.annobin_replace_i.start.annobin_replace_i.end.annobin_rb_hash_invert_i.start.annobin_rb_hash_invert_i.endrb_hash_invert_i.annobin_rb_hash_update_i.start.annobin_rb_hash_update_i.endrb_hash_update_i.annobin_rb_hash_update_func_i.start.annobin_rb_hash_update_func_i.endrb_hash_update_func_i.annobin_rb_hash_update_block_i.start.annobin_rb_hash_update_block_i.endrb_hash_update_block_i.annobin_env_has_key.start.annobin_env_has_key.endenv_has_key.annobin_env_assoc.start.annobin_env_assoc.endenv_assoc.annobin_rb_f_getenv.start.annobin_rb_f_getenv.endrb_f_getenv.annobin_env_values_at.start.annobin_env_values_at.endenv_values_at.annobin_rb_hash_freeze.start.annobin_rb_hash_freeze.end.annobin_rb_hash_ifnone.start.annobin_rb_hash_ifnone.end.annobin_rb_hash_set_ifnone.start.annobin_rb_hash_set_ifnone.end.annobin_empty_hash_alloc.start.annobin_empty_hash_alloc.endempty_hash_alloc.annobin_rb_hash_set_default_proc.start.annobin_rb_hash_set_default_proc.end.annobin_rb_hash_set_default.start.annobin_rb_hash_set_default.endrb_hash_set_default.annobin_rb_hash_initialize.start.annobin_rb_hash_initialize.endrb_hash_initialize.annobin_rb_hash.start.annobin_rb_hash.end.annobin_hash_i.start.annobin_hash_i.end.annobin_rb_objid_hash.start.annobin_rb_objid_hash.endrb_any_hash.annobin_rb_any_hash.start.annobin_rb_any_hash.end.annobin_rb_hash_iter_lev.start.annobin_rb_hash_iter_lev.end.annobin_st_foreach_safe.start.annobin_st_foreach_safe.end.annobin_rb_hash_foreach.start.annobin_rb_hash_foreach.end.annobin_rb_hash_delete_if.start.annobin_rb_hash_delete_if.end.annobin_rb_hash_reject_bang.start.annobin_rb_hash_reject_bang.end.annobin_rb_hash_select_bang.start.annobin_rb_hash_select_bang.end.annobin_rb_hash_keep_if.start.annobin_rb_hash_keep_if.end.annobin_rb_hash_clear.start.annobin_rb_hash_clear.end.annobin_rb_hash_assoc.start.annobin_rb_hash_assoc.endlookup2_call.annobin_rb_hash_rassoc.start.annobin_rb_hash_rassoc.end.annobin_env_update.start.annobin_env_update.endenv_updateenv_update_i.annobin_rb_hash_any_p.start.annobin_rb_hash_any_p.endrb_hash_any_p.annobin_rb_hash_has_value.start.annobin_rb_hash_has_value.endrb_hash_has_value.annobin_rb_hash_replace.start.annobin_rb_hash_replace.endrb_hash_replace.annobin_rb_hash_update.start.annobin_rb_hash_update.endrb_hash_update.annobin_rb_hash_merge.start.annobin_rb_hash_merge.endrb_hash_merge.annobin_rb_hash_each_pair.start.annobin_rb_hash_each_pair.endrb_hash_each_pair.annobin_rb_hash_each_key.start.annobin_rb_hash_each_key.endrb_hash_each_key.annobin_rb_hash_each_value.start.annobin_rb_hash_each_value.endrb_hash_each_value.annobin_rb_hash_key.start.annobin_rb_hash_key.endrb_hash_key.annobin_rb_hash_index.start.annobin_rb_hash_index.endrb_hash_index.annobin_recursive_eql.start.annobin_recursive_eql.end.annobin_rb_hash_hash.start.annobin_rb_hash_hash.endrb_hash_hash.annobin_inspect_hash.start.annobin_inspect_hash.end.annobin_rb_hash_to_a.start.annobin_rb_hash_to_a.endrb_hash_to_a.annobin_rb_hash_flatten.start.annobin_rb_hash_flatten.endrb_hash_flattenid_flatten_bang.annobin_rb_hash_rehash.start.annobin_rb_hash_rehash.endrb_hash_rehash.annobin_rb_hash_compare_by_id.start.annobin_rb_hash_compare_by_id.endrb_hash_compare_by_id.annobin_rb_hash_initialize_copy.start.annobin_rb_hash_initialize_copy.endrb_hash_initialize_copy.annobin_rb_hash_new.start.annobin_rb_hash_new.end.annobin_rb_hash_reject.start.annobin_rb_hash_reject.end.annobin_rb_hash_select.start.annobin_rb_hash_select.end.annobin_env_to_hash.start.annobin_env_to_hash.endenv_to_hash.annobin_env_reject.start.annobin_env_reject.endenv_reject.annobin_env_select.start.annobin_env_select.endenv_select.annobin_rb_hash_invert.start.annobin_rb_hash_invert.endrb_hash_invert.annobin_env_invert.start.annobin_env_invert.endenv_invert.annobin_rb_hash_to_h.start.annobin_rb_hash_to_h.endrb_hash_to_h.annobin_rb_hash_dup.start.annobin_rb_hash_dup.end.annobin_rb_hash_tbl.start.annobin_rb_hash_tbl.end.annobin_rb_hash_tbl_raw.start.annobin_rb_hash_tbl_raw.end.annobin_rb_check_hash_type.start.annobin_rb_check_hash_type.end.annobin_rb_hash_s_try_convert.start.annobin_rb_hash_s_try_convert.endrb_hash_s_try_convert.annobin_rb_hash_s_create.start.annobin_rb_hash_s_create.endrb_hash_s_create.annobin_rb_hash_lookup2.start.annobin_rb_hash_lookup2.end.annobin_lookup2_call.start.annobin_lookup2_call.end.annobin_rb_hash_lookup.start.annobin_rb_hash_lookup.end.annobin_rb_hash_fetch.start.annobin_rb_hash_fetch.end.annobin_rb_hash_delete_entry.start.annobin_rb_hash_delete_entry.end.annobin_rb_hash_delete_m.start.annobin_rb_hash_delete_m.endrb_hash_delete_m.annobin_rb_hash_shift.start.annobin_rb_hash_shift.endrb_hash_shift.annobin_rb_hash_delete.start.annobin_rb_hash_delete.end.annobin_rb_hash_update_by.start.annobin_rb_hash_update_by.end.annobin_rb_ident_hash_new.start.annobin_rb_ident_hash_new.end.annobin_rb_init_identtable.start.annobin_rb_init_identtable.end.annobin_rb_init_identtable_with_size.start.annobin_rb_init_identtable_with_size.end.annobin_rb_env_path_tainted.start.annobin_rb_env_path_tainted.end.annobin_ruby_setenv.start.annobin_ruby_setenv.end.annobin_env_delete.isra.41.start.annobin_env_delete.isra.41.endenv_delete.isra.41.annobin_rb_env_clear.start.annobin_rb_env_clear.endenvtbl.annobin_env_replace.start.annobin_env_replace.endenv_replaceenv_replace_i.annobin_env_shift.start.annobin_env_shift.endenv_shift.annobin_env_select_bang.start.annobin_env_select_bang.endenv_select_bang.annobin_env_keep_if.start.annobin_env_keep_if.endenv_keep_if.annobin_env_reject_bang.start.annobin_env_reject_bang.endenv_reject_bang.annobin_env_delete_if.start.annobin_env_delete_if.endenv_delete_if.annobin_env_delete_m.start.annobin_env_delete_m.endenv_delete_m.annobin_env_aset.start.annobin_env_aset.endenv_aset.annobin_env_update_i.start.annobin_env_update_i.end.annobin_env_replace_i.start.annobin_env_replace_i.end.annobin_ruby_unsetenv.start.annobin_ruby_unsetenv.end.annobin_Init_Hash.start.annobin_Init_Hash.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC9.LC10.LC8.LC7.LC11.LC12.LC13.LC16.LC14.LC15.LC17.LC18.LC19.LC20.LC21.LC24.LC23.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC35.LC34.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouprb_hash_size_GLOBAL_OFFSET_TABLE_rb_hash_compare_by_id_penvironrb_eRuntimeErrorrb_raisest_cleanup_saferb_hash_has_keyst_lookuprb_yieldrb_block_given_prb_warnrb_error_arityrb_inspectrb_protectrb_str_ellipsizerb_eKeyErrorrb_any_to_srb_error_frozen_objectst_init_tablerb_proc_arityrb_proc_lambda_prb_eTypeErrorrb_yield_valuesrb_str_new_frozenrb_hash_keysrb_ary_new_caparb_gc_writebarrier_rememberst_keys_checkrb_ary_set_lenrb_hash_valuesst_values_checkrb_assoc_newrb_ary_pushrb_equalrb_eqlstrchrrb_ary_newrb_locale_str_newrb_obj_freezestrlenrb_check_string_typerb_check_safe_objstrncmprb_string_valuerb_tainted_str_newrb_usascii_str_new_staticrb_str_buf_newrb_str_catrb_str_new_cstrrb_str_buf_appendrb_ary_catrb_respond_torb_exec_recursive_pairedrb_str_buf_cat_asciirb_enc_copyst_insertrb_funcallvst_foreach_checkrb_cStringrb_str_hash_cmprb_method_basic_definition_prb_funcallrb_cFixnumrb_cNilClassrb_cFloatrb_cFalseClassrb_cTrueClassrb_cSymbolrb_hash_arefrb_hash_values_atrb_frame_this_funcrb_id2symrb_enumeratorize_with_sizememchrrb_path_checkrb_filesystem_str_new_cstrrb_eArgErrorrb_block_arityrb_exec_recursivest_updaterb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_hash_asetrb_obj_classrb_tainted_str_new_cstrrb_hash_freezerb_hash_ifnonerb_hash_set_ifnonerb_newobj_ofrb_hash_set_default_procrb_check_convert_typerb_obj_is_procrb_obj_classnamerb_block_procrb_hashrb_exec_recursive_outerrb_to_intrb_integer_packst_hashrb_objid_hashrb_hash_startst_hash_uintst_hash_endrb_str_hashrb_dbl_hashrb_big_hashrb_hash_iter_levst_foreach_saferb_hash_foreachrb_ensurerb_hash_delete_ifrb_hash_reject_bangrb_hash_select_bangrb_hash_keep_ifrb_hash_clearst_clearrb_hash_assocrb_hash_rassocrb_convert_typerb_obj_duprb_num2intrb_fix2intst_init_table_with_sizest_free_tablerb_check_typest_copyrb_hash_newrb_cHashrb_hash_rejectrb_ruby_verbose_ptrrb_hash_selectrb_hash_duprb_copy_generic_ivarrb_hash_tblrb_gc_writebarrier_unprotectrb_hash_tbl_rawrb_check_hash_typerb_check_array_typerb_builtin_class_namerb_hash_lookup2rb_hash_lookuprb_hash_fetchrb_hash_delete_entryst_delete_safest_deletest_shiftrb_hash_deleterb_hash_update_byrb_ident_hash_newrb_init_identtablerb_init_identtable_with_sizerb_env_path_taintedruby_setenvrb_sprintfrb_sys_fail_strrb_env_clearrb_ary_includesrb_ary_deleteruby_unsetenvInit_Hashrb_intern2rb_cObjectrb_define_classrb_mEnumerablerb_include_modulerb_define_alloc_funcrb_define_singleton_methodrb_define_methodrb_define_aliasrb_obj_allocrb_extend_objectrb_define_global_construby_register_rollback_func_for_ensurest_numcmp�	��������7*���������w*�������������������*���������������������������������������	���������,���������h�������������������������������������������������������������������*���������!���������@���������G��������S*���������b���������j��������������������
����������������������������������������������)*���������5���������V��������������������������������������e�����������������������������?���������S���������w�������������������������������������������������	���������)	���������1	���������Y	���������a	���������y	����������	����������	����������	����������	���������
���������7
���������`
����������
����������
����������
���������!���������=*���������V��������������������*����������������������������������������������������������%���������0���������[���������e*���������~������������������������������*�������������������
���������$
���������/
���������:
���������r
����������
����������
*����������
����������
������������������[���������e���������l*�����������������������������������������������������������Q��������Z������������������������������*��������������������������������������$���������l��������������������������������������*�����������������������������������������������������������������������������������*���������@���������U��������]���������~����������������������������4���������L�����������������������������/���������V��������^���������i���������~�����������������������������������������������������������������������������G�������������������#O���������d*���������k��������u����������*���������������������������q����������*���������Bw������������������������������+*���������;*���������S*���������c*����������*����������*����������������������������+���������6�������������������������������������������������8������������������������������������������������-���������E��������Y��������������������������������������������$���������/���������F���������]���������d*���������k��������u���������|*���������� ��������������������������������������P���������]���������g*���������������������������������������������������������������������0�������������������������������������������������!��������U���������]����������"��������` ���������� ���������� ���������� ���������!���������Z!	��������h!���������o!*����������!	���������!����������!*���������"
��������"���������?"���������b"����������"����������"����������"����������"����������#����������#���������$���������'$���������Y$*���������`$��������j$����������$����������$����������$����������$����������$����������$���������%*��������� %��������*%���������E%���������O%����������%����������%����������%���������%���������%���������&���������D&���������R&��������r&*���������y&���������&����������&����������&���������1'���������Y'���������k'���������{'����������'#���������'$���������'����������'����������'���������Z(���������j(���������q(%��������{(*����������(����������(����������(���������)���������)���������f)���������y)����������)����������)����������)����������)���������A*���������M*���������a*����������*����������*����������*���������+���������1+���������T+����������+����������+���������,*���������
,��������,���������V,���������y,����������,����������,���������-���������N-���������y-����������-����������-���������D.���������Q.����������.	���������.���������/���������7/���������p/����������/&���������/'���������/���������/����������/���������0���������0���������;0���������p0����������0'���������0&���������0���������0���������1���������?1���������{1
���������1����������1&���������1'���������1���������1����������1����������1���������2��������92���������B2���������X2���������s2����������2����������2����������2����������2����������2���������3���������P3���������q3(��������z3����������3����������3���������4���������%4���������74���������`4���������s4����������4����������4����������4���������4����������4����������4���������4���������X5)���������5����������5���������G6���������\6����������6���������6����������6����������6���������6����������6���������6��������7���������V7���������f7���������y7���������7����������7���������7*����������7*���������7����������7	��������@8'��������G8&��������L8��������\8���������8���������8���������8���������B9����������9*
���������9����������9����������9����������9���������9	��������:���������:*
���������:+���������:����������:	���������:����������:����������:���������;���������&;	��������k;����������;	���������;*����������;����������;����������;����������;���������V<���������c<	���������<����������<���������	=���������=���������N=	��������c=����������=	���������=����������=����������=*
���������=	��������Z>���������q>���������>����������>����������>���������!?��������??��������i?���������?
���������?����������?
���������?����������?'���������?&��������-@���������=@���������i@����������@���������@����������@����������@���������@���������@*����������@,���������@���������A���������A���������;A��������yA����������A���������A-���������A���������B.��������B���������
B/��������B��������� B*���������'B0��������1B���������[B���������C��������*C���������C���������C���������D��������.D���������@D��������ND���������iD���������D'���������D&���������D���������D����������D���������E	��������E	��������%E���������GE	��������ZE	��������vE���������E���������E����������E����������E���������E$���������E%���������E1���������E&���������E'���������E2���������E&��������F'��������!F���������+F���������oF����������F����������F#���������F���������F���������F*����������F��������G����������G	H'��������H&��������H��������0H����������H*����������H����������H����������H���������	I���������`I���������J���������KaK���������iK����������K����������K�K����������L����������M�M����������M���������IN���������\N�N����������N����������N����������N����������N����������N���������!O���������OO���������cO#��������oO���������O����������O���������O��������P*���������P��������)P���������0P*���������7P3��������AP���������aP����������P����������P)���������P*��������.Q4��������;Q-��������GQ5��������NQSQ-��������_Q6��������fQkQ-��������wQ7��������~Q�Q-���������Q*.���������Q&���������Q���������Q/���������Q*0���������Q*
���������Q1���������Q2���������Q8���������Q3���������Q9��������R3��������R:��������R4��������4R;��������9R4��������LR<��������QR4��������dR'��������iR4��������|R=���������R4���������R>���������R4���������R?���������R4���������R?���������R@���������R5���������RA���������R4���������R*����������R8���������R4��������S4��������S4��������+SB��������0S4��������FSC��������KS4��������RS*���������aSD��������iS4��������{SE���������S4���������S6���������S4���������SF���������S4���������SG���������S4���������S����������SH���������S4���������SI��������T4��������TJ��������T4��������&T*���������2TK��������:T4��������ITL��������NT4��������aTM��������fT4��������yTN��������~T4���������TO���������T4���������TP���������T4���������TQ���������T4���������T����������TR���������T4���������T����������TS���������T4��������U���������UT��������U4��������$UU��������)U4��������?UV��������DU4��������PU*���������WUW��������\U4��������hU���������oUX��������tU4���������U
���������UY���������U4���������U����������UZ���������U4���������U���������U[���������U4���������U����������U\���������U4���������U*����������U]���������U4���������U^��������V4��������V_��������V4��������5V`��������:V4��������PVa��������UV4��������kVb��������pV4��������V����������Vc���������V4���������V���������Vd���������V4���������Ve���������V4���������V����������Vf���������V4���������V����������Vg���������V4��������W���������
Wh��������W4��������(Wi��������-W4��������<W���������CWj��������HW4��������^Wk��������cW4��������vWl��������{W4���������W����������Wm���������W4���������Wn���������W4���������W6���������W�W7���������W�W8���������W3���������WXC��������X3��������XXD��������$X3��������+X>XE��������CX3��������JXZXQ��������_X3��������fXvXP��������{X3���������X�XO���������X3���������X�XN���������X3���������X�XV���������X3���������X�XW���������X3���������XYX��������
Y3��������Y*(��������Y!Y]��������&Y3��������-Y=Y[��������BY3��������IYYY\��������^Y3��������eYuYY��������zY3���������Y�YZ���������Y3���������Y�YU���������Y3���������Y�Y^���������Y3���������Y�Y`���������Y3���������YZ_��������Z3��������Z#Z?��������(Z3��������/Z?Z<��������DZ3��������KZ[Z>��������`Z3��������gZwZ@��������|Z3���������Z�ZI���������Z3���������Z�ZJ���������Z3���������Z�ZK���������Z3���������Z�ZL���������Z3���������Z	[M��������[3��������[%[R��������*[3��������1[A[S��������F[3��������M[`[T��������e[3��������l[[f���������[3���������[�[g���������[3���������[�[h���������[3���������[�[i���������[3���������[�[j��������\3��������\\k��������\3��������&\6\'��������;\3��������B\R\=��������W\3��������^\q\c��������v\3��������}\�\d���������\3���������\�\���������\8����������������������������	���������7���������q���������*��������������������������������������������������������������������$���������=���������t����������&����������*����������2���������]5����������:���������5<���������5=����������?����������?���������B���������B���������C���������LE���������_E��������-I����������K���������N���������Q#���������\9�������� ��.$,.P.X;�.�;�;�Q�;�QQjDQLjpjx��j��������0�8�d�l���������$,PXQ��Q�Q���Q����D�L�p�x�����**0*8nd*ln�n���n������$�,�P�X�������������	�	D	�L	p	x	`�	�	`�	`�	�
`
�0
�8
�d
�l
��
��
�
��
�
�
7$,7P7Xu�7�u�u���u����D�L�p�x9���9�9�m
9
m0
m8
�d
ml
��
��
��
��
��
��
<$�,<P<X��<�����������D�Lpx�������	�	0	8O	d	lO	�O	�l	�O	�l	�l	��	$l	,�	P�	X�	��	��	��	��	��	��	�	K
D�	LK
pK
x{
�K
�{
�{
��
{
�
0�
8,d�
l,�,���,�����$�,PXJ��J�J���J���Y
D�LY
pY
x9�Y
�9�9�595058od5lo�o�V�o�V�V�u$V,uPuX��u������������D�L�p�x�����08�dl������������$�,PX.��.�.�y�.�yyDyLpx!��!�!��!�0�8�d�l����M���M�M��$M,�P�X���������������D�L�p�x2���2�2��2�0�8Ad�lA�A�x�A�x�x� $ x,  P  X '!�  � '!� '!� "� '!� "!"!m"D!"L!m"p!m"x!�"�!m"�!�"�!�"�!�""�""�"0"�"8"�"d"�"l"�"�"�"�"7#�"�"�"7#�"7#�"{#$#7#,#{#P#{#X#�#�#{#�#�#�#�#�#n$�#�#�#n$$n$$.%D$n$L$.%p$.%x$�&�$.%�$�&�$�&�$�&%�&%�&0%�&8%�&d%�&l%�&�%�&�%�&�%�&�%�&�%�&�%_'$&�&,&_'P&_'X&�'�&_'�&�'�&�'�&�(�&�'�&�('�('�(D'�(L'�(p'�(x'�)�'�(�'�)�'�)�'$*(�)($*0($*8(q*d($*l(q*�(q*�(�*�(q*�(�*�(�*�(�+$)�*,)�+P)�+X)�+�)�+�)�+�)�+�),�)�+�),*,*a,D*,L*a,p*a,x*�,�*a,�*�,�*�,�*;-+�,+;-0+;-8+�-d+;-l+�-�+�-�+.�+�-�+.�+.�+Z.$,.,,Z.P,Z.X,I/�,Z.�,I/�,I/�,~/�,I/�,~/-~/-�/D-~/L-�/p-�/x-P0�-�/�-P0�-P0�-}0.P0.}00.}08.�1d.}0l.�1�.�1�.	2�.�1�.	2�.	2�.)2$/	2,/)2P/)2X/�2�/)2�/�2�/�2�/�2�/�2�/�20�20)3D0�2L0)3p0)3x0^3�0)3�0^3�0^3�0�31^31�301�381�3d1�3l1�3�1�3�1�4�1�3�1�4�1�4�1u5$2�4,2u5P2u5X26�2u5�26�26�207�26�2073073�7D307L3�7p3�7x38�3�7�38�38�3y9484y904y984�9d4y9l4�9�4�9�4;�4�9�4;�4;�4z;$5;,5z;P5z;X5<�5z;�5<�5<�59<�5<�59<69<69=D69<L69=p69=x6q=�69=�6q=�6q=�6�=7q=7�=07�=87{>d7�=l7{>�7{>�7U?�7{>�7U?�7U?�7�?$8U?,8�?P8�?X8�?�8�?�8�?�8�?�8�?�8�?�8�?9�?9�?D9�?L9�?p9�?x95B�9�?�95B�95B�9yB:5B:yB0:yB8:�Bd:yBl:�B�:�B�:�B�:�B�:�B�:�B�:�B$;�B,;�BP;�BX;sC�;�B�;sC�;sC�;�C�;sC�;�C<�C<XDD<�CL<XDp<XDx<D�<XD�<D�<D�<E=D=E0=E8=2Ed=El=2E�=2E�=PE�=2E�=PE�=PE�=cE$>PE,>cEP>cEX>�E�>cE�>�E�>�E�>F�>�E�>F?F?GD?FL?Gp?Gx?�G�?G�?�G�?�G�?�H@�G@�H0@�H8@DId@�Hl@DI�@DI�@�K�@DI�@�K�@�K�@�K$A�K,A�KPA�KXA9N�A�K�A9N�A9N�AnN�A9N�AnNBnNB�NDBnNLB�NpB�NxBEP�B�N�BEP�BEP�B�PCEPC�P0C�P8CQdC�PlCQ�CQ�CQ�CQ�CQ�CQ�C�\$DQ,D�\ 	  
 :��* 80L@``tp�������� �` �4�H \0pp��������� `$�D\ t@�����D@\pt����@���@ p�� 	�P	�p	��	(�	@
xP
��
��
�0�HhP���`
@l@�p�`��4�L��� 	�	�,	@	0\	��	�	0�	�$
�\
Pt
��
��
�8��@��P�  L0!� "�p"��"
�",
#D
@#\
�#t
�#�
p$�
0%�&,�&@�&T'�`'��'��(�(<�)X0*��*��*��+��+� ,�p,�,\@-��-�.�`.,P/D�/`�/�P0��0��12,02T�2t�2�03�`3��3��3�4P�5| 6�07�74 8`�9|�9�;��;  <8@<�@=��=��= �>X`?x�?��?��?�@�@B$�B8�BL�Bd�B��C��C`D�D\Ex@E�PE�pE��E�FG,�GX�H�PI��K��K4@NTpN��N�PP��PQ, Q.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.rela.data.rel.ro.rela.data.rel.ro.local.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@-oT-pl-q�-r�-s'��\"@W�S--�]3�](=�]4D8@��B-
Sġbġ�]@��0-
|�������@��0-�l��l���@��0-�@��@���@ �0-2��2���.@�)@P�0-@P�;@��0-S`�`0h�.������|��S��'��i��w�������������� ���`�@���-+��M.�	�s?H��inits.o/        1690381920  1000  135   100644  10696     `
ELF>�@@)(

 !��H����������������������������������������������H���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx��H�'<Uo�� ��!�� !+7G\p	

"#$����������".=GQ[ht������������%2<DT\fr����.annobin_inits.c.annobin_inits.c_end.annobin_inits.c.hot.annobin_inits.c_end.hot.annobin_inits.c.unlikely.annobin_inits.c_end.unlikely.annobin_inits.c.startup.annobin_inits.c_end.startup.annobin_inits.c.exit.annobin_inits.c_end.exit.annobin_rb_call_inits.start.annobin_rb_call_inits.end.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouprb_call_inits_GLOBAL_OFFSET_TABLE_Init_MethodInit_RandomSeedInit_symInit_var_tablesInit_ObjectInit_top_selfInit_EncodingInit_ComparableInit_EnumerableInit_StringInit_ExceptionInit_evalInit_safeInit_jumpInit_NumericInit_BignumInit_syserrInit_ArrayInit_HashInit_StructInit_RegexpInit_packInit_transcodeInit_marshalInit_RangeInit_IOInit_DirInit_TimeInit_RandomInit_signalInit_loadInit_ProcInit_BindingInit_MathInit_GCInit_EnumeratorInit_VMInit_ISeqInit_ThreadInit_processInit_ContInit_RationalInit_ComplexInit_versionInit_vm_trace	2��������3��������4��������5��������6��������"7��������'8��������,9��������1:��������6;��������;<��������@=��������E>��������J?��������O@��������TA��������YB��������^C��������cD��������hE��������mF��������rG��������wH��������|I���������J���������K���������L���������M���������N���������O���������P���������Q���������R���������S���������T���������U���������V���������W���������X���������Y���������Z���������[���������\���������]���������^�������� ���$,�  
 
  .symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@&T&l&�&�&'��"@`8&-�3�=�48@��&
S�b��]@(0&
|�����@X0&������@�0&�`	�`	��@�0&04.�b�b|bSb'bb"b5bGbVbfh ~�0y@�&$��'0	���io.o/           1690381920  1000  135   100644  305120    `
ELF> �@@/.

"$!% &'��H�����������t
1�������€�@��@E‰€���E‰ƒ�@��E��ff.���H�G H�@H�D�ff.���H�H�@ H�@H�D�ff.���H�G �xRH�H�Ѓ��f.���H�G H�@ ���H�H�@ H�@ ���USH��H��Hcw0HcW4Hw(��HcK4H9�~6H�����H��xH��C0)‰S4��H��H��[]�f.�H�C01�H��H��[]�ff.����H���s����H��HD�H���f���H�WH�w�?�ff.�f���H�WH�w�?�ff.�f���SH��0H�H�OH�wHcC4�S��tiHc{0H{(H�D$H�D$H�|$H�=�H�t$ H��H�L$(�$H�D$�D$�H���tHcK4H��H9�?H�C0H)�H��0[�fDH�t$H�=,���H�t$�T$H�L$ �H��0[�)�C01��S4H��0[���SH��H�� H�GH�O�H��H�= H�L$�$H�D$�H�CH�� �4[�ff.�@���WH�w�?�ff.�ATE1�US�jL��~!H��Hc�I��H9�$HcsHHs@�kH)kLL��[]A\�f�Lc�L����fDATI��USH�/H��� ukH����H�{@thHcSLLcCPH�*H��I9���HcsHH�{@H��H9���)��I�t$�CH�KLI�$ tI�t$H�[H��]H�A\�f�H�{@H�ou�H�{h�tYH�CHH�����aHc�H9�}Hc�H���CP��H�C@�W���@I)�H�L���KL�CPH�{@)��`�����C%���% ���H�H�5H�81��ff.�@SH��H��H�����x�D$%�=���H�Đ��[�H��H�=�fD��H�WH�w�?�ff.�f�AUATA��USH��H��Hc��H����H�*I��H��Hc�H����H��H���@��u-H�����t$H�E�ƒ������H����H�s`H���������A�4<���D)≓�uǃ�H��H��[]A\A]���������9�~�H���Hc�Hc�H���fDH���H��I�E�A���@��H�E�d���@��h���ff.�SH��H���H��t�Hǃ�H���H��t�Hǃ�[�f�SH�����H���H��t�Hǃ�ǃ�[�ff.�@��SH��H�(�H��[�fD���H�=�ff.�UH��SH��H��H�?tN�H��� t!H�PH9�}$H)�H�}H��H��[]�H����H9�|�H��H��[]�fD1�1��H��H�EH��H��[]�f�SH����u	H�����uH�v`H��tEH���H��[��H��ƒ����H��r����H����H��H���H��[�ff.�UH��SH���A��A��H��u��uDE��u��?t'�]H��[]�D��?tH��[]�f����]H��[]�E��u�H��t6�zuH�׉t$��t$��t�H�H�5H�81��@�t$��t$�xuщt$��t$H���ff.���H�G H�x(H��t�f.���f.���H�H�@ H�x(H��t����f.���H���H��H��ff.����H���?�H��H��f.�SH��H���H��t�Hǃ�H���H��t�Hǃ��C�����C�H�ChH��H�C`�CpH�Cx[���ff.�@��H��tH�(H��tH���H��H��Y�@1��D�X�f.�AWAVE��AUI��ATI��UH��SH��H����H��E1��H9�tXH����H9���H��t1H��t+A��u����I�,$I�]H��[]A\A]A^A_�A��A	�E���HE�I�$I�EH��[]A\A]A^A_�f.��H���H9�tA��f����H���_���H��A����H���ff.���H����H�@H��ÐAUATUH��SH��H�7�� uHH��L�gH���H��M�,�H�T$L��L��H������|t!H��H��[]A\A]�L�gH�_�fDHc|$H)�L�H���H�¨u�H�����t�H��ȃ���~1@��u�H�����t�H�E�ƃ���t�%H	�H�
���H���p����ff.�@SH��H�|$�H��H��t	H��H��[�H�|$�H�=H��1��H��H��[�ff.��AVAUATUSH�H�����t��t'H��[]H�A\A]A^��1�[]A\A]A^�D�H��t�I��H��A��I���H��H����I�$E����A��	���2A�����A�����!A����H���H�E �+H�EH9��H�MH�Q��H�EH�E �B���H�E�9����A������L��H����?����?H�_fDH���H�E�� u�H��H�ƒ�H9���H�U���z����A��t�~pA��t�A���$����	�fD�A��t��E��t����@A���A��}�A��
t��A���W�����DA��u��DH��H���H�UH��H���� �E���H�E����H��[]A\A]A^�����fD��H�H�w��ff.���USH��H��H�t$�����H�T$H��H���t0H��uBH�C H�x(H��t	�H�C H�@(H��H��[]�H��t�H��ƒ���t��uoH�|$�H�k H�}(H��t	�H�k H�|$H�E(H� t3H��H�E(H��H��[]�@H�D$H���Z���f.�H�����D��H��H�:�����ATI��UH��S���I�T$ H��H��H�z��[]A\�D��H��H�WH�w�?����H���ff.�@��ATI��U��SH�����uH��L��[��]A\�fDH���H�=H��H��1����f�SH��H�I H��I��L�+H�yH�щ�H���H��4tH�C �@Q[�f.���U��SH��H��H�F H��H�h�H�C �xP�tH9huH���[]ÿ4�ff.���H�O H��1�H�yH�H��H�APH)���X���H�H�B H�H�@H�@H�p H���ff.�f���U�XH���SH���H��H�H��H���H�H�CH�CH�C H��[]�f���SH��H�?�H�{�H�{ �H�{H[�@��AUI��ATI��USH��H��H�-H�����tI�$H��[]A\A]�H���H��I���L��H���M��H��H�5H��H�H�81�����H��H�WH�w1��?�H��H����H���OH�WH�w�?�H��H��ff.�@H��H�=uH�
L�D$�1�H�5�H�D$H���D��H����H��H��f���H����H��H��f���H�OH��H�7H���fD��S�H�����u
H��[�DH�=H��H��[H�k�fD��SH��H� �H�{0�H�{@�H�{P��[�ff.�f���H���1�H���ff.����H�5SH��H��tL1�1�H���H��4tH�����u(H�E1�H��H��H��H�=4L�1��H��[�D�H�=�H��H����H�5SH��H��tH��1�1��H��[��H�=�H��H���ff.���UH��SH��H��H�5H����H����u4H�����t,H���u�� t*H�x
uH�closed sH�@H9t0H����H����H��
u�H�closed sH��H9uЁxtreauǀxmu�H��H��[]���H�=�H��H��P�����H����H����H���f���H���<$H�=�H�t$H���H���ff.����SH�H�ĀH�\$ H��H�D$L�KH��PL�C1��H�|$XZH��uRH�D$8H�{ �H�{0�H�{@�H�{P�H��H��H�(���H�=A/�H��[�fD�H�D$H�D$H�T$H�D$8�D��AWAVA��AUATI��USH��h�H��������E���aA���oM�<$A����I�A�^�L�|$A����L�l$�7fDL����H�|$�H�|$�L���H�D� ���t4Hc�M�|�I�?�H�D$H��u�I�?@��t3H���H�|� ���u�A����H�Jc�H�>����H����fDL��A�^��H�D$A���@���H�|$1���N�H�=1������D�t$P�t$P1�L�L$PL�D$HH�L$@H�T$8H�t$0H�|$�ZYH����H�@H���H��hH�D[]A\A]A^A_��H�t$ H�|$1���DH�L$0H�T$(1�H�t$ H�|$��L�D$8H�L$01�H�T$(H�t$ H�|$��j���L�L$@L�D$81�H�L$0H�T$(H�t$ H�|$��=���fDH�������H�T$(H�t$ 1�H�|$�����DH���H��h[]A\A]A^A_�1��H�H�5H�81��H�H�5H�81��f�������t
��tn��ty��tT��t/��tPH���H�5H�81��H�����H�H�HE���H���H���H�������@��@t5��������H���uX��H�H�HD��������u2����@�ǀuoH���u��H�H�HD����tkPH���H�5H�81��H���uс�H�H�HD��@H���u���H�H�HD��@H�@���{�����H�H�HD��fDH�@���K�����H�H�HD��fD��H��H��1�H�����H�=���H��tH���HD�H���f���H�����H���f�H���t�DAVAUATUSD�gpH�GhH�OxA����H��tpL�hH�G`L�pH����D��L��L���H���H��tQ���HDž�M󉵘Hc���H���[]A\A]A^�f�L�5M���L��D��L���H���ff.�H��� uH����H9�u
�H�GH9�t�UH��SH��H���H��H��H��[]�ff.�f�ATI��UH��H�SH��H��0H�|$H�|$��H�|$H�wH� tH�wH�H�T$H�\$H�t$H�5N@L�d$ �H�D$H��x	H��0[]A\�I�t$H�=�SH��H��u�:�H��t8H)�H��1�H��
[��H�ߺH�5�[�������f�H���H��1�H��~���ff.�AWAVI��AUI��ATE1�UH��SH��XH�t$dH�%(H�D$H1�H��tD�!�:H���H���KL�xH)�H��t
H��*�}M��tE�e�����H��H�=1�1��M��tA�?-��A���A�H�T$E��L��L��H���f�H�D$HdH3%(�XH��X[]A\A]A^A_�H��H���������H�D$H��H��+H��H���H���D���M��tE�e��xF���H���K����L�������A��u9��=������I���4�����������1�����A��H��H���_���@H���H��H��H�������tH�C�A��H��H��)v9H��E1�����D����L��H�=1�E1������H��L�L$H��+H��L����DH����DAVI��AUI��ATUSH��H�� �opH����H���4H���I��H��tH����x�qL����H�L$E1�1�H�T$H����H�D$H�L$H�T$H�{���4�H�D$�kpH��H�C`H�D$H�ChH�D$H�Cx��H�� []A\A]A^ÐI��H���5�L��H�D$�H����H��� tFH�x��L����H�T$H�D$H9�����H�t$L������Q���f.�H����H��u�H���8-u�H�D$1�H�D$H�D$�H�L$H�T$E1�1�1��z�H�D$��@L���p�H�D$H9D$�p���H�D$�b���f�H�@�f.�L���H������w���I�|$I�$ tI�|$H�T$H�t$1���������ff.���H��H�OH�WH�wH�?�����H���f.�H��u
�f�UH��SH��H��H�5�H��t�U��������H�����uMH�5H����UH��t��������H�����u#����tH��[]�fD���U뫃��U��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81����ATUH��SH9�toI���I�D$ H�] �o�oHK�oP S �oX0H�{ [0�o`@c@H�@PH�CP�H�C H�] H�{(H��tH�C(�H�C(H��[]A\�f���SA��1��
H�H��H�\$ H���H�H��H��D��H�D$ P1�L�L$ L�D$�H�D$H�|$ H�D$0H�D$H�D$8XZH����@��ttH�H�|$0H�|$H����@����H�H�|$8H�{P�H�=�pH��H��H�6j�H�|$PH�@H�xMH�ĐH�D?[���H���fDH�D$0����H�|$H���{���H�D$8�����D�H�Đ[�f��H���[���ATA��UH��S����t1ۃ�Ut��[]A\�@H�}����t�H�uE��t
H��D�����H�=I���f�AUL�o`ATUH��SH�_PH���f�1�L���v�����tBH����}$H����}PE1�1�H��1��A�ă��t�E1�H��D��[]A\A]�@H�H�E8���E@��f�AWAVAUATUSH��H��8�w �H�T$��Ń��t+�D$(1�%�=�t1H��8��[]A\A]A^A_�DH�H�C8���C@�А�s$H��$����Ń��t�L�sL�kL�t$I�����L�|$�s �{$L��I���tyL���I��M��~M)�Lc0M��ս�b���I���u�H�s`1������Ņ�u������8�����&�/�����t+H�
�C@D��H�K8����D1��I���@H���(�������U�������I���tL�l$@M)��0���D�1����{ H���H���t
L�l$@I)�����U��t�H�
�S@��H�K8�{���ff.��PXH�5H��H�H�81��f�SH���H���H��E1�1�1�H��[�ff.��H��1�1��d�@AWM��AVAUATA��USH��H��HH�D$ H�$H�L$H�D$�{ I�����H�T$H�4$L���I��M��tPI���uJL�s`D��L���{�����u��H�D$���t>��&��I���H�H�
�C@HE�H�S8H��HL��[]A\A]A^A_�fDH�kP�#f������\���L��D����������H����{ H����{PE1�1�1�H��E��u���H�H�CH���E��uH�T$H�4$�I������DH�$H�t$�|$ ��H�=
��H�D$(H�D$H�D$0�I������fDH�H�C8H�D$��C@����ff.�AWAVAUATUSL��$���H��H�$L9�u�H��HdH�%(H��$8@1�H�GH��H���H�D$H�G�D$/H�D$ H������W(�D$(����H�D$0H�l$H�D$H�C`H�D$H���|$/��H�|$��$H��H���?��D$(����L�t$ H�T$H��1�M�����I��H��~yI�L�t$ M��E1�E1��H�D$�{$L��J�48�H���tHc�A�HC0I)�tgMc���f�H�t$1�������u�������H���H������u�H��$8@dH3%(��H��H@[]A\A]A^A_��H��L)�H�|$�HE����H�T$I�����H��1����I��H���%����@�@���fDH��C@H�S8�m���D�H�t$ 1���{ H���H�D$ H���t-�D$(H�D$ �����?���f.��D$(�(����E�D$(������H�H�C8�D$(�C@�������SH�������uH���g���1�[���SH��H����t �H�S H�H�BH�B�[�fD���f���SH�@��t�H�S H�H�BH�B[�D�H�S H�H�BH�B[���ATUSL�gM���H���H�=�H��������"�؃����$H���*���AH�{�H��H���H�5�H���I�t$H��unA�T$����H�5H��1��[H��]H�5A\��H�����u�H����H���s���H�H�8�h���DH���A�D$��y��	H�5H����f�[]A\���H�5H����W����H�H�8���H�H�8����H�H�8�����H�H�8�����H�H�8����1�H9=tEH9=�t7H9=tNH9=t=H;=�tH��@��u�H������H���fD��f���f.���9=r�S�����H��H�����t
��8	t,�9�v����9�r�H�Đ[É�H�=1��ff.�f�ATA��U��SH��H����l$H��1�H�����H��H�=�H�$D�d$���y������v0H��H�=����A���H��D��[]A\�f.��1�H��H�����H�=x�A�ą�x�������U1����SH������tY�‰Ã����N�9�uH��[]��1��ھ������u���8��ډ�H�=H��1����8���H�=H��1��ff.���S�����[�ff.����U��1�SH����Ã��t��~
���u���H����[]��1��������t����u����-H����[]���8���H�=H��1��ff.�@��H��H�H� uH���W�wH���H��H��H�@��f.�ATUSH��H�$H��1ҾH�=dH�%(H��$1���Ń����H����H���H��H���tpL�$H��	�d@H�XL��H)�H��	~P�
H���H��t>�;FDSiu�f�{zeu΀{:u��H�{�
1�������f.�������H��$dH3%(��uH��[]A\����f.���ATA��US9�t1����~
���u(��D������t2�����[]A\����@�����u���8&t
�������fD���D���������USH��H�����tI���Ń��tH����[]����8&u��H���������Ń��t��;��{�H����[]�ff.�����AT��A��U��S��t'�1���Ã��t4��~��[]A\��1�1���Ã��t�����[]A\�f���8t�������[]A\�f.�D��1���1���Ã��t���ff.�@����f���H���wH�W�?��t1��H��H��D���H��H��f.���PXH�5H��H�H�81��ff.���@��uH�����tH��ƒ���t	��uH���H���ff.���H��t�PH�H�5H�81��ff.�f���SH����C��x[���DUSH��H����CL��t�C t
H��[]�fD����sLH�ŋ{��Hc��H��xH�CHH��[]Ð�E��t�u��K �ff.���S�H�XH���H�{ht#H�{`H��t
[�@�[H���f��[�f�AUATM��UH��SH��H��(H�H�D$H�H�D$���$��H����L���L�`L���H�|$�M�d$`I��M���eH�D$M9�tMH���=H�D$�H�H9�hL��1�1��H�5H��H�D$�H�D$H�|$H�EH�����H��t@��tZH��H�H�H��([]A\A]�fDL�l$L�D$1�L��H��H�D$H��t�L���H�D$H������닐�H�H��([]A\A]�DH�H��uH�D$�[����H��H�t$�H�t$H��t`H�D$���fDH��� t`H�x����A�|$����L�����H�D$���������I�����H�H�D$H�D$�@���fD���u����I�MH�H�5I�T$H�81��f���USH��H��(��uH�����t
�����tH��H�5��H���H��([]�H�L$L�L$1�L�D$H��H���H�hH���H�L$H�T$H��H�t$�x�H��(H��[]�ff.���ATI��UH��S�H�XH����CI�����u
�CH��[]A\�D%�����CH��[]A\���SH�_H����C[%��H����ff.����S�H�XH���H�{hH��uH�{`�CtH��t"[�@H��u��H����f��[�f���S�H�XH���HcS���tH�D[�fD��AT1�I��H�USH��0H�L$L�D$�H�D$H�|$H�D$@������ſ�H�t$1�Hc��@��L��H���L�`L���A�T$H�t$ H�=���H�\$(�T$ �l$$�H�Ã��t��t:���H�D$�uH�����t
H��у���t4H��0Hc�H�D[]A\����������K���@�� tH�HH�PH��Hʀ:u%��f�H��H�H����I�t$H�=�H�H�5H�81��f.���AT1�UH��H�SH��@H�L$L�D$�H�D$H�\$H�D$����H���H�t$�H������H��I���H�hH����UH�t$ H�=���H�\$(�T$ L�d$0���xrH�T$��uH�����t
H�
�΃���t%H��@H�[H�D]A\�DH���H���b����� tH�JH�q�H�JH�9u$��f�H��H�r����H�uH�=�H�H�5H�81��ff.���AU1�E1�ATUSH��H�H��H��L�D$�����H�,$@����H�H���H�XH����C�t�{L������������uD�D��H����{I���H���tZH�@H�x3H��H�D[]A\A]��K4��t�H�=1���f�H���H��[]A\A]�DA�$��t�H�sH�=�H���H���$���H�|$�F�A������H�H�5H�81��fD��S�H�XH����C[H��=H��?���f.���S�H�XH����{�[��H�H�Ѓ��@��SH�_H���HcC[H�D�@��H�
H���@��H�
H���@��H��H�G H�xH�����t�H��H�����fD�H��H���ff.�@��H��H�G H�xH�����t�H��H���F���fD�H��H���ff.�@��H���@��SH��H��H�CH�@XH��HE�H��[�ff.���H�G H�xH�����t�PH�H�5H�81��ff.�f���AV1�AUATUSH��H�H��@H�L$L�L$L�D$�H�T$��t$����H��������������H;t9H;t0H;t'H;tH;tH;���H��E1��H���H�hH���H�|$H��t@����H�I��H�|$E1�H��t@��tzH�I��H�\$H;t|H;��H;��H;��H;��H;��H��@�[]A\A]A^��I���u����H�\$H;I��u���E�D$ ��UH�t$ H�=b���D$$L�l$(L�d$0�I�ƅ�t�H�uH�=I��1�L��L���D��H���f��	�f���f���y���fD��i���fD��Y���H�H�5H�81��H�H�5H�81��fD��SH���H9�tH�@H��t�P��yH�[H����C��x1�[���[�f���AUATE1�USH��H��H�����A���H9�t&H���H�hH���H��t
D�mE����H���H�XH���H��t�k��yH���[]A\A]Ð1��������t%�ƒ�D9�t҃���D	��1�����u�H�sH�=��1��D������t.�ƒ�D9��]�����D��D	��1������=���H�uH�=�ff.���USH��H���H9�t H���H�hH���H��t�}��yIH���H�XH���H��t�{��x1������t6�t)H���[]��1������t�u�H��1�[]�H�sH�=�H�uH�=�f���UH��SH���H���H�XH����CH�����t���CH��H��[]�fD��CH��H��[]����S�H���H�XH����C[H��<H��?���f���AWH�G AVAUATUSH��H��hL�/L�wH�D$H�GL�l$@H�D$0H�GH�D$(I���z�D$ E1�H�D$H�D$H�l$(H���>H�$I���4L�D$0H�$A�|$H�T$H�t$�����T$ �	�����H�|$H�����H��H���H�|$���H��H���H�<$���H��H���H�|$��H�EH�E uH�E L�8H�CPH�\$ E1�H�D$L�l$@L��H�l$0�lDH����I9�}mL��L���H��I���H���H�hH����}H�t$���u�}H�t$���tL��H���I��I�E�� u�I�EI9�|�H�\$ H�l$0H�|$��H�EH�E uH�E H��H�E1�L�l$(H�\$H�D$H�C0H�D$�ZH����I9�}]L��L���H��I���H���H���H�XH����{H�t$����I��I�E�� u�I�EI9�|�H�\$H�<$��H�E H�E uH�E H��H�E1�H��@H�l$H�D$�H����I9���L��L���H��I���I��H���L��H���H�@H��H�$�H�$H�ދx���uyI9�t$H���L�hL���A�}H�����uPI��I��� �h���I�FI9��k���H�l$H��hH��[]A\A]A^A_�@H�|$L�������fDH�|$L����f�I�m�L��E1��H��E1�L���D$ I��L�4$�pf�H����H9�}|L��H�<��H���L�pL���A�~H�t$�A�NL��uA�����tA�~H�sP�D$ �A�FA9�DL�H��I�E�� u�I;m}I�E �DH�D$L�4$H�D$�D$ ������H�D$XH�D$PH�D$PH�D$0���D�L��E1��H�C@H�\$HM��H�$I�FH�D$8�f.�H����I9���H�D$8J�<��I��H���L��H���H�XH����{H�4$��CA9�DL�I9�t,H���L�xL���A�H�4$�A�GA9�DL�I��I��� �i���M;n}I�F �o���f.�H�\$H����fDH��E1��H�C0H�$D��H�D$H��H�mI���S@H����I9�}dH��J�<��H���H���L�hL���A�}H�t$�A�E9�L�I��I�$�� u�M;|$}I�D$ �f.�A��H�$����@1��H��H���H�|$�q���1��H��H���H�<$�o���1��H���h���1��ff.�@��UH��SH��H��H��H��H��u&H�UH�BXH�JX�H��HD�H��[]��H���H����ff.�USH��H�G H�hH�H9(t)H��@��t-H�5H��tI1�1�H���H�C �@P�H��[]�fDH�����tʋE����u��H����D�H�=�H��H��ff.���H�W H���zPt�zQt	��H��H�|$�2���H�D$H�P �BQH�����SH����Ct�CL��u[�@H��[�'�H�H�5H�81��ff.�@��SH��H��H��0H�t$��u
H��������H�D$H���H���H�XH���H���H�|$��S4H�D$��u~H��� tNH�HH�@�SH�t$H�=��H�D$H�L$ �T$�H�T$H�T$H�T$H���tOH��0H�D[�@H��H��H�у�몋�����H����M���D1�H�=�H�D$�j���H�sH�=���������u�GL�f����GL��t�@�����S��x=������t!��Ut1���t[���[�@����[��U��DAUATUSH��H��8H�@��D�kLE��u_L�d$H�-�����{�����HcCPH�K@L��H��SH�L$�T$H�D$ �H��x�H�D$u`H�CHA������E1�H��8D��[]A\A]��H�{hH�GH��tD�CP��H�C@�Q���f�H���H�D$�CH�CLH��8D��[]A\A]ËC%��H�H�� ��H�����% ��돋sH�=�H�sH��H��tH���H��H�=�ff.�AW��AVAUATUSH��8D���Lc���t$E9��H��H���E���&Hc��A�A9���H�|$ HcSLIc�L�t$(H�|$�Uf�H����I��H����D9��������HcSLIc������Lc��H���Lc[HL�{@Lc�I�I�H���D�L$M�H�t$N�,L��L�L�|$ L�l$(�H�����H�D$ L)�CH)CLH�D$(L)�������=���HcsHHc�H����D$H)։�Hs@��D$)CHCL����fDLJ�1���������'���H��H�D$�H������L�\$���tHcSLHc�����H���H��tsHc��E1�1�L��Hc��H���L�\$H�Hc��H�L�1�H�l$(�H�D$(H���H)����D9��L�\$tfDA�H��8L��[]A\A]A^A_�Ic�H�4H���D���Lc��1�ǃ�H�������AWAVAUATUH��SH��(H�hH�T$��E1�L�l$H�|$A��L��1�����1�H������8�L��H��E1���1�H������H��H��t
H����H��t'�����t�E��t�H�|$1������@H����E���H�|$H�����H��([]A\A]A^A_��G
�?���L�w`I��M���,M�� H�|$�D$LD�L�|$E1�1�L���#�����L��H�|$H��H��H)��*��H��H	���H�H�|$H����|$0t'H�D$H� uVH�xH�4L�L��L���I�H�|$I9�e� I�� ��EL���w���H����j���f.�H�xH�4�fDH�|$1������H�|$1��H�|$H���Ʊ��HcL$H�H���H	�H�H��([]A\A]A^A_��I�����������tE��uL��H������H���H�|$1�������ff.�@H�������H��tH��uH���H���f�AUATUSH��H��(H�h�HH�D$H�k`H����1�H���h���Hc����t=Hc��H���H��H�H�H��A�ă�������9���'H���@���H��u�H�D$�����uH���3���H�D$H��([]A\A]�Hc��H��H����������H�D$�EH�0H��([]A\A]�f.���H�T$��H��苭��A���H�|$� H���߯��H�H���H	�H�H��([]A\A]�@�G
�����H�����������}��H�C@HcSHH�<HcsLH�H��H��Hc{HH{@A�Ņ���9CL����0��CH�kLI��H��L���Y���D�H���9���Hc��Hc��H��0H���H�H�H��H��H�T$��聬��H�|$����H��蟭��H�D$����}����H�� �H�|$������H�GH� tH�GH�H��?H�Ձ�H������������HcsL��CLI��L�h� H��L���I�tH��������H����������HcsH�Hs@L���I�$�CH�kL�� t�I�|$I�t$H��H���HcSH��H�C@H�<�O����?�F�������CHI�ăkL�o�����?���Hc� �DkHI��D)kL�H����0�>������0� HN��)���H�H�5H�81��f�AWAVAUATUH��SH��8dH�%(H��$(1�H�h�ML�e`M����A�D$1�H��L�l$�D$�y���f�Lc��L��M��tdHc��H���|$I��ui�?
���S�H��H��8�f�H���?
u
��)��D$H9�u�)�1�H�������Lc��L��M��u�H���%���H���{���1��m�I�L��L��L�����
t �I�L��L��L��L�����
u
HcD$I�M9�w�M)�1�H��D��D�|$)É�蔩���s����H��$(dH3%(��H��8[]A\A]A^A_�H�\$ �G
�����f�HcULH��u!H���H������4���HcULH��t�HcEH�HE@H��HF�8
�v������
�H���8
u'��u�H��H�����H��u�H�uH�=�f�Hc�H��H)�H���Ϧ��H���f�����@�I�������ff.�AWI��AVAUATUSH��H��8�BLH�4$��tiH��E1�H���f�K�<'H��H���a���H��~H��I�H)�H����H��H���H�����y�H�$H)�H��8[]A\A]A^A_�DH�,$H����H�D$L�t$L�-Ƨ��H�D$M�$�y6�{���tB�SL��L��L�d$H�l$ �T$�H��u���H��HD$H)�H��~ H���H��8H�����[]A\A]A^A_�f�H)�H$H��8[]A\A]A^A_�1��7�����SH��H�WH�wH�?���H�C�4[�ff.�f���S��x=������t!��Ut1���t[���[�@����[����DUSH��H����K4��uH��1�[]�f�H��H�-������S4��;����H��tFH��������t��{���tNH����C4��~�H���H��uËSH��H�����H���H��H�5�������H�������[]�@��SH����CtK�C4��u6H�{XH��u[��H�XH���H�������y�1��@H�������y���H�H�5H�81��f.���SH��������u[�H�H�5H�81��ff.�@������SH�� H�t$�H�XH���H���H�|$H��t'@��u0H�|$�H�|$�H�|$H���G���H�� �[�@�H�|$��D$�H��H�D$��fD��AT1�UH��H�SH��0L�d$H��M���H�$���H�H��L���]���H��uH�D$H��0[]A\�f.�H���H�hH���H����EL�����}�H���H��L�����H�|$��EH�L$�D$H�AH� tH�AH�H�t$H�D$H�=o���H�\$ �L�d$ I�����H�|$L���i���M��uH��`H�D$��/���H������#���H��у���~)��H�����fDH���H�������H���������H�H�5H�81��H�uH�=�f���UH��SH�������H���H�XH���f��CL��)H����CL��tZH������y�H��H��[]�@HcSHH�K@���CL�r�sHH�<H���H�������H����fD�H���H��H��E1�[1�1�H��]�ff.���S1�H��H�=����u!H�=H��t%�H��1�1�H��[�H��[�����H�=�	�H��H����S�H�XH���H��������u�CL��t	1�[�DH���H���H���y�[�ff.�f�AWAVI��AUATUH��SH��hH�|$0H��H�T$@�H�XH���H���H��H��?I��u���yH�s`H�t$H����H�H�t$0H92u���8H�|$��H�D$0H���sH��� ��H�D$0H�@H�D$(H����H�D$0�D$HH�@H�D$8H�D$(H��H�t$8D�4�D$H�D$ A����D$ODH�{h��1�H���;����@f�L��H��L���D��D)��L)��8H���3�H����D���E��t�Hc��Mc�H��H��~L9�}Lc�M��H��L��D��H�L$�H�L$H���kI���q���L��H���I���l���fD�1�H���9�H��H��� t~H�}������H���|H��CH�t$@H�R ���CH9r�CH�H�B�f�H��tqH�T$1�1��H��H��hH��[]A\A]A^A_�������fDH����H�D$(��H�D$0�D$HH��H�D$8H�D$(H���1����H�D$�H�{h������C
�����H�|$�FH�D$�x�����H�|$�A�ą��RH�C`H�D$�u����C%�D$��D�t$��H�������LckLL��M����HcKHHK@I��H��~I9�LO�t$L��L���I��L)�H��M��LE�I����I�$�� unH����I��K�t5L���L��I�|$I�$ tI�|$H�L��H��L)�蟛��M����H�����CL���:���H����-���DM�t$�f�L���L��H��I���1�����H���X����D$I���.H��L���{���H��H����D$���������DD�t$I�$H��% ��H��I�t$H����D�,E9���H���;H��I�t$��H�,H�|$H�U�H���D�|$ E����H�T$H��H��������A���D�|$ ��H)�D�hMc�I���,L��H��L���D��L)�D)��A����GI�$E��H��% H����H����H;L$(�����I�t$H�I��H�|$L+|$(L���I9��c���H�|$0t�|$O��H�T$(H�t$8L����D$���H���)���I�$H��% H������@I�t$I�l$H�����fDI�L$H;L$(���I�t$H��Z���I�t$I�T$H��D�,E9��h���1�����DL��H���I������DD�t$����fD�����fDH�t$0H��� ��H��H�V��H9T$8����H9D$(�����H�H�5H�81��fD�D$A����V����D$H�K���H�����>���fD�D$HA�����H�D$(H�D$8����H�D$�G����H�D$0H�t$8H;p�\���H�@�R���H����H�D$�@�D$H���Z�H�=�H�|$I����1�L��H���H�D$0���H�t$0H�H��������ƒ�����H�€�H�~H�� %H����I��H���I��pL��I���*���H��L��詛��HcT$\H�t$@H��H�H%���H	�H�H�E�CH�R ���CH;r�����H�BH��H�BH�B����H�D$0H��� u+H�t$0H���D$H��H��H�D$(H��H�t$8�(���H�D$0�D$HH�pH�@H�t$8H�D$(H������H�|$��������H�5�H�D$(H�t$8H�D$0����H���f�����xH�C`H�D$�I���H��������H�D$����H�D$\�D$\H�D$I��H�D$ �f�H�����������D�kLE����HcKHIc�HK@�
H��H��H�L$�H�L$H��I��t
I��I)�A��Ic�C�D%�D$I����Hct$L���I�GI� tI�GIc�H��H��H��g����|$\0t5Hct$I� uOI�GH�H�l$H�L$ H�T$H�<(�H�H�l$M�������D�kLD�d$E���
���H�������I�GH��H��H���DkHI��D)kL�u����D$���ff.�@SH��I��H��H�L$H�����H�t$H�<$H���'���H��[Ð��S����H��H���H��[�fD��S���H��H���H��tH��[��ff.���UH��SH���	�H����}H�UH�u�X���H��H���H��u�H���[]�ff.���USH��I��H��H�L$H������H�|$t7�H����H��H���H�t$H�<$H���4�H��u�H��H��[]�H�H�5H�81��ff.����H�WH�w�?�m���ff.�f���ATI��U��SH��H�����tSL��H�L$H��I�؉����H�t$H��u�af�H���H�t$H�<$H����H��u�H��H��[]A\�D�H���L���H��E1�H���H��H��H��[]A\�H�H�5H�81��f���AT1�I��UH��S��H�=����u)H�=H��t5�H���L��[H��]A\�@L��H���[]A\�����H�=�	�H��H��ff.���ATUSH��H�t$�H�XH���H���H�t$H����@����H�k`H����H���H����H�D$H�{h��H�(�� ��H������H��A���K���Hc��Hc����)�H�H9���Hc��H���H��H9���H�t$D)�Aԉ��D���H� ��H��H�H��H��H���[]A\�H��@��uH�����t�����
��H�|$�H�|$�H�{hH�D$�����C
����H��H������DH�hH���������H�H�5H�81���H�v�L����H)�H�H��������H���)�����H�t$H���^���fDH�k`H��t�H����H�D$�M���fD�H�|$H���Ґ��USH���H�XH���H���H�khH��t�CL��t-H��H��H��[]���@H�k`H��u��H�ŋCL��u�H�����fD��H�����H��tH������USH��H���H�hH���H���H���t��EH��H��[]���EH��H��[]�ff.���S�H�XH���H���HcC[H�D����AWAVAUATUH��SH��dH�%(H�D$1������H���H�XH���H����CL����H�{hA��r1�H������@Hc����tKHc��H���H�S`I��H�<H����H�H��A�ă�������9���^H�����H��u�H�����E���H��H�T$dH3%(�@H��[]A\A]A^A_�H��A��H�{h�>�����A��E�D)��D���H�|?��������L�k`��Hc��H���Hc��I��H�<M��t�H�1�H�L���D�������fD�H���E1�1�1�H��H��������C
�����L�k`M���I��f.�H���h��������HcCHHcsLL��H�{@H�H�H��A�ą�~<�CLA9��HcSHH�{@Hc�L��H�H�H�1��DcHD)cL��H�|?�됃����}�A��A����DcLA��~M���#f�Hc�A)�I�E��~H�������xVIc�H��L��������L��L��L�����~2L��L��1�L�����H�|?������I�����L�k`H�I�UH�5H�81��H�H�5H�81������S1�H��H�=����u!H�=H��t%�H��1�1�H��[�H��[�g����H�=��H��H����ATI��US�L��ty�H�XH���H���H�khH��t?�CL��uH����fDH���H��H������H��u�L��[]A\��H�k`H��u��H���D[]A\釯�����S1�H��H�=����u!H�=H��t%�H��1�1�H��[�H��[�����H�=�	�H��H��SH������xH�������H��[�1��@��ATUH��S@��tH��H�H���H�hH����H���I�����1�H�ދx�H��xH�@H�x>[H�D]A\�@A�$��t�H�uH�=��H���H���w���[H��]A\�@��ATUH��S�H�XH����H���I�����1�1��x�H��x=H�H�@ H9huHcSH)PH����CtH��請��[�]A\ÐA�$��t�H�sH�=��AUA��ATUH��SH��@��tzH��H�H���H�hH����H���I���:���D��H�ދx�H��xH���[]A\A]��A�$��t�H�uH�=��H���H���|�����S1�H��H�H��H��L�D$�1҃�tH�4$H���+���H��[�DH�|$�V�������f���USH���H�hH���H���m����1��x�H��H��x&HcELH)�H�@H�x0H��H�D[]�@����t�H�uH�=�DH��H��[]�f�UH��SH���wHc_L�H�����u�D$%�=�tH�� H�ĘH��[]��H������x(�}�1��H�T$0H9�|�H�H)�H��HI��1��D��AT1�I��H�USH��H�l$H��I���H�$H��������H�H���)H��H���ډ��L���H�hH���H���H�����EL��t^H�|$H��H��1�輟��H�|$H��H���\����H��t(H�D$�uH�����tH��у�������H�H��[]A\ÐH����fDH���H���B���H�|$1���H�D$H��[]A\�fDL���H�XH���H���H�l$H���'���H��H��H�����H��[]A\þH���g����\���H�H��H�5H�81�����H�WH�w�?�]���ff.�f���S�H���H�XH���H�������x�SH��H�=�������x�[�1��H�sH�=�f���USH���H��H���H�XH���H���2����x4�SH��H�=������uH���[]�@H��H��[]�:���1��AWAVI��AUI��ATE��UH��SH��H��(�L��M���JH�{(H����E���L�K4Hc�Hcs8J�*H9���H�l$I��L��E1�H�$�T�L��H�5&����H9���H���I�H)����{�����H���M9���H���K�&H�l$H�D$H��u�L��軁���f�E����H�C0�� �C8 �H�C(��H���H���H�{(�K4H������Hc�Hcs0H�Ѕ�t1������C0H�L��L���Dk4L��H��([]A\A]A^A_�f��C���������H��������H��(H�����[]A\A]A^A_ËC�uQH�C0�� �C8 �H�C(��H���H����C�(����J������;���HcS4H������@H��HcC4H�{(����ff.�AWAVAUATA��UH��SH���H��H���H��H���H����H�U�� �
H�}������H���H�XH���H���L�k`M�����I9���������@H���H����H�{hH���[�H��H����H���H����H���H��H�U@����H��������Ѓ�����H�Ѐ�H�}H�E�CH��H��ujH���H�U�\��������������H��H��[]A\A]A^A_���C
�����Cp�������H���H�H��� �2H��H�u��E��H��H�����H�����H�T��D�kpL�s`ǃ�L�{xD����D$M���'�I9�L�sh�M��uL�s`I�~�H����A����H��M�vH�D$D���L����L�D$H���D�kpH�KxL��L��L�D$A���D���L�D$H��H��H�����H���H����H������H���H���H��H����������H�UH�u����H�5H��H��1�H�ߺ[]A\A]A^A_�f�M��������H�5�T$L��ǃ�Hǃ�H���H��H���H���0Hǃ��C��[������R���H����xuH���H���������H���H�5H�PH�H�81��f��Cp�uO�D$L���Hǃ����Hǃ����L�k`�I9������H�{`���DA����L���I�~L�5D����M��H������@H���-���H�sH�=�L��D��L���H���H�5�T$H���H������1��5���D���WH�wH�?����ff.�f�AWI��AVAUATUSH��h�t$dH�%(H��$X1�H�(���W4H�\$(�TIco0I�O(Hc�E1�I���1�H�L�H�,1�H��H�l$(�H�T$(H)�AW4A�W4��t:��v5����IcG89�u�L���������A�W4IcG8�f.��D$�����H��$XdH3%(��H��h[]A\A]A^A_�fDH�D$(L�d$PH�D$I��$H�\$0H�D$H�-�y��I���L�D$1�1�H�L$E1�L�d$(�A��L9d$(u,A���b���A���X���A��t�f���W���fDM���YH�D$(A�WH��H��L�t$8L)�T$0H�D$@�H�T$(L)�H9�t�A�H��I�LI����t^A�w����I���H��t��H��t�A�WH�D$(1�H��H�=7y��L�t$8L)�T$0H�����H�D$@����T$��������HcH�D���f�I�����p�����L$���X���H�=�H��H�H�8��:����@AWAVAUATA��USH��H��H���D�oL�7�gH���H��t@��tuD��H������H�ŋC4����H��A��E��t|H���ww���C�C����H��ƒ�S�uA��~M���L���H��[]A\A]A^A_ÐH��H�5�H�$�D$��S4H�Ņ�t+H��A��H���+����yE��t�Hc(H�l-D�C�C����H��ƒ�S�u
A����H����A���e������]���@��tW@���������t+H��H���H��t@��t�E����
������H�������fDH��t�E����
t��u��I��@����H���A�$H�sH�=�DH��A��M��t{E�������1�H�����L��H�=�}���������E�������Hc(H�l-@���g�������D�I���r����I��H����b���D�,$E��u+1�H��H�����H�=�}�����x����fDD�,$D������ff.�@H�G H��t��DSH���'���H�{@H��t
�H�C@H�{(H��t
�H�C(H��[�Bz��f���ATUSH���H9�tH�xH��t�W��ysH�[H��t1�k��x*���1�H��A�����E��u"1�H���X����C��uI[�]A\��������t�������u��fD������@��{��C�[]A\�f.���ATI��US�H��H���H�XH���H�s�{�]w����uI�CuoI9�uH���[�]A\�@L���H�XH���H�CX�c���fD�{����x3�C�ƒ�S�u�[H��]A\�H�H�5H�81��H�sH�=�ff.����AUATUH��SH���H�XH���H�s�{�v����t6�{1�������C�ƒ�S�t+H���[]A\A]�DH���I��H9�u�CucH��H��[]A\A]�H���L�hL����CH��1�A�E�CL�m�c�H�CXI�\$�/���H���[]A\A]�H�H�5H�81��H�sH�=����SH��H��H����[���USH��H���W(��u4�C,��uHH�{P�H�k8H��ueH�SHH��uDH���[]�fDH�/H�}�H����C,��t�H�kH�}�H����H�H�5H�81����S@H���ff.�����wH�?������ATI��UH��S�H�XH���H���H��L��[H��E1�]1�A\�2�f���H���H�t$H�5H�L$�H������SH���H��[�ff.���SH���H��H����[Ð��AUATI��USH������~TH��H�6A��H��1��#@H�H�0H��tL���H�3H��L����D9�|�H�H�0H��uH���[]A\A]ÐL���H���[]A\A]���H�\$A�H��H�D$�g�����H��H�H���H���ff.�@��AWAVAUI��ATUSH��(���S�$�G�H��L�t�H�D$H�D$�}I��I��A����L�{H��������H���A�D$����Hc�I�D$�K�4'H�H��H�T$H��I�<���
������t{H��L9���H�]��uH�����t
�����t#L��H��H�=��H��u�H�}�H��L��H���H�;�� �-���L�cM��tL�{�0���H�L��H��H�0�L9��s���H��(�[]A\A]A^A_�D1�C�|'�
���9���H�H��H�0���H���������ff.�f���AUATUH��SH����u{�I��1�I��tX1�L�d$�/f�H����H9�}<I�EH��H��L��H��H�D$�I�E�� u�I;]}I�E ��fD�H��[]A\A]���H�=�H�t$H��H�D$�H���[]A\A]����ATL�%US��I�<$H9�tVH��H�5H��tH���[]A\�f��H�=�I�<$H���H��[]H�A\�H����[]A\�f���SH������H��[H������UH��SH��H����uH�����t
�����tHH���u0��H�|$�D$�H��H���H��H��[]����f�1��H���H����ff.����SH��H�H�t$L�I9�tSH�5H��tH�L$�L���H��[���H�=�L�H��H���L�����H��[�f���AWI��AVAUATUSH��HH�H�D$H�GH�D$�H�I�G0I�G`H�D$H9���H�Ǩ��H�5H���y����lH������E1�H�|$A�o H9���@��u
H������pH�5H���������H�|$@��u
H������NH�D$H�D$ ��H�t$ H�D$(�H�D$H�D$ H�H�D$0mH��A�G,H�D$H��I�G�H�XH���H���D�kH��E�o$�rr��I���H���/������I�tD����A����I�_P��H���H��D���1�L��H�����H�=Q����H��H�[]A\A]A^A_��H������k��������t	���X����H�ǃ���tQH�T$H�T$ H����H�t$ H�D$(H�D$H�D$ H�H��A�G(H�D$H��I��L�`L���L���A�l$H�|$H�A�o H9�����I��A�G$����tmI�����A� ��H�E1�1�1�L��H�=L�1�����H�D$�����H�������������f������E1��v���M���Mct$LE���q1�A�����I�GL�t$H���t	L9���L���L��H��H�D$�L�L$I�yI� tI�yL��L��L�L$�i��H��L�L$�mI��� �9I�QI�qE1�H��L����H����I�GMw0H��������L)�I�G���@�H�=�H�|$H��H���������b���fD�����t	���}��������������H��H�D$I�G�����H�=�H�|$H��H��C���M�����Mct$LE���������@I��!���A� �����I������H�H�5H�81���H��I�q������I��H�D$�J���H�|$L���I�GMw0H����a���L)�I�G�N���H�H�5H�81��1��fD��AWAVAUATUSH���@H���L�c�{ �H��L�kL�5L�����GDM����I��@A�@MN��{ ����@H���H�UH�E tH�UL��M��H�޿����I��H�����H����H��H���K�T=I���LE�H�{H������H�HC0I)�L95t]H�CH����G����{ �A�@�[���H�;1�K�L?I��L���L95u�H��u�H���[]A\A]A^A_�f�H�E�� u'������t���f�H����f���H�}����H�;L������V���L�5H�C�J����ff.���SH��H����u(H�H�8H�|$H���H���[�fDH�L$H�1��H�|$��ff.�����tHSH���tH�����H��H����[ÐH�����t؋����u�H�H��ɐ��f.���@��uH�����t
�����tH�51�1��USH���H��H���H�XH����C�u�u+H��H��[]�f�H���X�����x�C���H���@�����1�������R���f���ATUS�H�XH���H����CL����H�����H#CH�H9�t/H���o�����x{HcCH�kL�P�SHH�S@[]�A\H�D�H�-H�}@��u�H�����t������u��L�`L���A�D$t�H�}��H����_���[�]A\�fDAUATUH��SH���H��tXH��H=���vwH=���H=�u(H���I��H��tH=��L��H���H��H���H���H�XH���H�ChH��[]A\A]�f�H��u�H���I��H��t�H��u�H���I��H��t�H=���L��H����p���fDH���H���c���H=���H��H����G���f�H���I��H���0���H=w����H���H������H=��H��H�������H���I��H����H���H����H����H��H����H������f�H��A��L�`L���H���ޕ��D��H���H���H��H��L��[�]H��A\A]�.��fDL��H��A��H���L�`L����H��A��L�`L����|���H���H���j���H=�t/H��H����R���H��A��L�`L����3���H��A��L�`L�������f.���H���H��tH������ATI��UH��S�H�XH���H���H��L��[H��]A\�W������SH���1������t%��t[�D���{���1�����u�H�sH�=�ff.�@��H�H��H�����H�8������H��twS�GH��H�G��yTHǃ�H�{@H��t
�H�C@H�{(H��t
�H�C(H���uc��H����[�fD�����@1��ff.�f���UH��SH��HcWPHcG8Hc��H���H���H�H��t�H�H���H��t�H�H��H��[]����UH��SH���H�XH���H���H��t�H���H��t���������C�����CH��H��[]���SH��H�?��SH�sH�;[�����USH��H���H�hH���H���*e��H��H��[]���SH���H���H9�tH���H��[�f���S�H�O<r��<w����<at"H�H��H�5H�81��<+u�����tH��<:t:~�<bu$�����u��%=t���[��<tu�������%=�����H��t1�H���ox���ځ���Eډ�[�fD���u���fD��e���ff.�����1�����t
H����ƒ�@��E‰€���E‰€ʀ��@E��ff.���H���H�����hZ�����ATH�1�USH�� H��H�l$L�L$I��H���H�\$H�<$E1��H�|$H�$H��uKH�|$��H��t���H�\$H�<$���D��H��H�$蝉��H�� H�[]H�DA\�DH�5�H��t&H�Ǩt�A���D�A���fDH���H�|$�H���H���A���S���fD��H��u1��AWAVAUI��ATI�ԺUH��SH��H��H�5�H�5�4H��I����4H�5H��I��H�����H��H��4�I��4A��I��t�H�8��E����L���I��H��4��H��u��8�H���H�D$H��tH�|$��8-u�xt�H���L9�HD�H��E1�L��H��L���0b���H��[]A\A]A^A_�@L������8H�I��4tH�1�L��H�=�E���0���E1��3���f�I��4��I��tPL���H�D$H����H�|$�L��L��H��H���nu��H���[]A\A]A^A_�f.�H��1�[]A\A]A^A_���H��H��4t�I�����E1�A�4H�8�u�������L���E1�L��H��H��1��a�������I��tK�H�8�<���L��A�����������H���I�����1��n���E1�����L���I��1��T������AWAVI��AUA�ATUL��SH��H��xH�1�H�t$1�L�d$LH�D$PH�D$XH�L$H��H�L$`L�D$ E1�H�$H�L$�1`��H�|$PH�D$P�D$0H�D$(H��ur�D$LE1�H���L��H���Dx��D�D$LA��t�T$0���
A��twH�5H���H��H��t_H�|$P��H�D$PA�H��t�H�5�H���,H�D$PH�Ǩ��A��D����D$L�Z���H�5H���H�T$H��tH��tH�:�+H�L$H��D$LA��A��tA��A��A����DE�H�T$H�4$L��H�����t�D$0����H��H�t$hD�����H�L$`H�T$X��L���\��H�D$PH�L$ I�H�D$D�8�D$L�H�D$X�]H�EH�D$`H�EH�D$hH�EH��x[]A\A]A^A_���A�����L�|$(L���H�|$P�L���H��H�D$8��ljD$L�D$4�5T��H�T$8�:A��H���D�D$4H��tfH�T$H�4$H�xL����q��H��tkL��H���0v���D$0���D�D$0�D�D$0H�$1�H�L$H���]���D$0�����A��ujH�L$H�$1�H���]���y���f��D$L�Ã�t�������E�H�D$h����H�H�5H�81��f.��D�D$L�H�H�5H�81��H�H�5H�81��@��AW1�AVAUATUH��H�SH��XL�d$ H�\$L�L$(M��H������OH�\$0H�|$�H��H�D$�H�]H���H�|$ H�T$(u
H���?L��H�L$L�L$01�L�D$�����C�|$���foD$0�{C`foL$@KpH�|$��SH�C�����C��L�#�|$H�CHM�����mk��H�{H� txH�L��H���H���8H�;��C���H�H�;H;8�sH�H;8��H��XH��[]A\A]A^A_Ð����!Ш�.����DH���f�H�|$�H�������H���H��I���H�XH���L���L�`L���L9��}����C��H�
H�H;��H�
H;tH�
H;��A�|$@������j���{H����j��H�SH� �#H��H��H�I��H�5H�81���H��舮�����f������H�{���(����s��A�����x/D������f.��{�8P���D$����D��D�(�E���l���H�SD��H�=�@H�ߨ�
�����1��x�A�T$E1����x���?�CI�L$I�t$ D�{%	�A�T$�C�SA�T$�SA�T$H��������H�KH�s D9�ty���A����H�;H�����T$��T$H�D���C����������vD���D�{D���A�D$t	M�����C���L���H��H�E��:���H������.���H��H���������H�E��`H��`�
���H���`H��`�����H��H������D����H��H�E����D�t$��H���~��H��C����1�� ���������H�sH�=1���m����{����]���H�;1�� �����A����f��۫���������1��@H�s D9������D���������D������@�u�H�C����@L���x�����x�A�T$���f.�H����_���L���H���1��x�A�T$I���d���@A�|$@�������@���@�H���I�����1�L���x�H��yA�7��uZA�L������1�L���x�H�������A��������I�t$H�=�H�sH�=�H�R����H�sH�=����UH��S��H���H��tH��[]�������v1��f.��H����H��u���f.���SH����K[�ff.�f�������UH��SH����Ã��t'��u�}��}�H����[]�f.�������w��H��������AU1�ATUSH��H�H��H�L$L�L$ �D$L�D$�H�|$(������HcD$(L�l$@H�l$H�\$@H��L��H�=�Y��H�D$PH�DH�D$H��L$I�ą��XH���H�XH���H�D$H��H�t$`H�=�l��H�\$`H�D$hH�D$H�D$pH�D$ H�D$x��T$����HcD$,L��H��H�=Y��H�D$PH�DH�D$H�I�ŋD$����L���H�hH���H���H�|$ H�t$�ql���D$	CL��	EL���H�����uH�ĈH��[]A\A]��H�=H��H�L$0H�]��L�d$0L�l$8�H��뾋|$,�I��tL����|$��|$,�L���]���|$��|$(��|$,��|$�1��f���AUA��ATI��US��H���-�_{��D9�AL�9�L�9�~�eD�C9�L��9�|QI��tHc�L��H�t6�H�����u�1��������tȨu�����߉�1����H��[]A\A]�ff.�f���USH���H���H�H��H�;@��uH�����t
�����t#H���H�H�;H�0H��[]�H�H�5���uH�;���H�;H�����H�H�;1�H�0H��[]�v��fD��AUATUSH��D�'L�oE��~-A�D$�L��I�l�f�H�;H���H9�u�A��tQ�A��~Ic�L���H��H�H�8@��uH�����t
�����tH��H��[]A\A]��I�]�����ff.���SH�H�H9tH�@�@��yH�H��[�H��D�H�;[H���ff.�@��SH���H��[H������SH�� H�H�|$H�t$H�8H�H9�tH�@�@��yTH�H�H��� t2H�^H�~H�ھ�H9�sH�D$H�D$H�D$H�� [�H��H�~�����H�� [�ff.�f���H�H��t�SH����$F�����_���{H���H�[�ff.�f���S�H���H�{tH���H�{�H�C��������H�H�PH�@H�@H�@ H�@(H�@0�@8H�@@H�@H�@PH�@XH�@`H�@h�@pH�@xHǀ�Hǀ�Hǀ�ǀ�Hǀ�Hǀ�Hǀ�Hǀ�Hǀ�H�C[�ff.�@AWI��AVE��AUA��ATI��UL��SH��A�pI��L$I�HH�|$�ZL��L���foEL��H�ËD$C`foM�CKp�D��D��H�CH���t���C�����t�K0�D$uH��L��[]A\A]A^A_ÐL�������fDAUI��ATI��H��USH��H��8��:H�߉ʼnD$�H��tMH�\$H�L$H�SH�xH���a���L$����C��I��L��L��A�������H��8[]A\A]��@��u2H�\$H�L$A��1�H��H���pM���D$ H�D$(�D��l$��ff.�f���UH��SH��(H�D$H�|$H�D$��H��H�D$H�H�8�H��H��H�@H������H��([]�fD��UH��SH����H��H�H�8�H��H��H�@H��H��[]���ff.�AUATUSH��H�H��XH�l$L�l$(L�d$ H��M��H��H�D$M��P1��H�l$@XZH�|$H�l$0�H�T$I��L��H�L$L�D$L��H�D$��H�|$(A��H��t�A���L$�T$I��H��H�t$�*���H��XH��[]A\A]�ff.��AVA���AUI��ATA��H��US�H�@H��H���D��D�`H��D�p���t�K0M��tL���H���H�CD���[H��]A\A]A^����H�ATA��A��USH��H�(H��t$�H�=H�������t
H�H�(D���H��H��[D��]��A\� ���AWAVAUATUSH��H��XH��D$H�8@��uH�����t������DH�k �UPH�} ��t@H����EQ<��<tP����u�EPH��X[]A\A]A^A_�fDH����H��� ��H����f�MPH�H�L$0L�|$(H�L$H��$�H�L$��f.����������L��H�D$(�H�|$(H�k �L��H�E�H�|$(I��H��� ��H����H����1�1��fo��H�k A��H�}(�LH�H�8@��uH�����t������mDH�T$D����H�C H�l$(H�@(�8�xH���H��H�C H��H�p(�H�uH�E tH�uL�������H�|$(���A�n��H�T$���A����t$HD����t$L�T$P;�$�u
;�$���D���������$���L�l$(I�E ��I����8�H�t$(H��H�=H��1��D���D���L���H�k H�} H��� ����H�������f.�H��V���A�}-�K���H�H�C H�:H�x(H�x�kH�=1���DL������������8�H�t$(H�=H��1��D����N���f�M�m��������������f�UPH��H�=H�H�E�H�EH�k H�}(t#1�H�=�H�H�
H�k H��UP�t���f�H;=���������f�H�-D��L��H�U���I��H�L� �D$����H�UL�{ D��L�����I�GH�C H�xI��tL���H�C H�x�xR���L�`L���H�k H�}0tl�oE0�oM@L��AD$`AL$p�nB��H�k �EQ�UP���D��8�H�t$(H��H�=H��1��D������fDA�d$p�����D�H�C H�x�V���fD�H�hH����E�����D$����D�EQ��+����H��� tp���„������EQ�$�����EQ1�����DH�D��L��H��N���H�EH�C H�x���DL����_���H����ff.�AUATI��U��SH��H��H�B L�h�S@��uH�H�H�H9��H��L����Ũ��H�S H��up�zQ���H���Y���H�C �@QH���y�����tuH�C H�xH�H;8u�@��uH�����t������t���L���a�H��t/H�S I��L�jL�jH��[]A\A]�@��a���fDH���[]A\A]���S���H��H���H��[�fD��H�H9�tH��aH���fDSH�����H��H���H��[�ff.�@��ATI��U��H��SH���h�����tIH�C L���H�P�Rr��H�C H�x�H�hH���H�C �oE`�oMp@0H@H��[]A\�H�H�5H�81����SH����H�C H�xH�H;8u'@��uH�����t
�����tH��[�`��D[�{��f���SH�����H���k���H�C �xQ�t�@QH�@H��[���SH���s���H�C [H�@�f���SH���S���H�C [H��f.���SH�H���0���H�C [H�����SH�G H���@R����H�C H�xH�H;8u'@��uH�����t
�����tH��[�`��D�H��[�fD��SH�����H�C H�@����tO�xPtOH�����H�C H�xH�H;8u#@��uH�����t
�����t
H��[�_����H��u1�[�f��[�f���SH��H��H�t$�*�����t^H�C H�xH�H;8u@��u,H�����t#�����uH�t$����H��[�f�H�t$H�ڿ�~F��H��[�H�H�5H�81����SH�������tEH�C H�xH�H;8u+@��uH�����t
�����tH��1�1�[�F��D[�:���H�H�5H�81��f���ATI��U��H��SH���(�����tUH�C H�H�@H;u0�uH�����t
�����tH��L��[��]A\�E��f�[L���H��]A\���H�H�5H�81�����SH�����tEH�C H�xH�H;8u+@��uH�����t
�����tH��1�1�[�E��D[�ʰ��H�H�5H�81��f���UH�-SH��H���7f.�1�1��H���}H�S �zQ�tsH���ˁ��H�C �@QH������tqH�C H�x@��uH�����t
�����tFH�5H��u��H���H��H�H�C H�x�v���fDH��[]�f�苧���_�������UH�-SH��H���7f.�1�1��H����H�C �xQ�tsH�����H�C �@QH�����tWH�C H�x@��uH�����t
�����tFH�5H��u��H���H��H�H�C H�x�v���fD�H��[]�@��_���fD��SH�����tOH�C H�H�@H;u#�uH�����tH�����tH��[�[��H�����H��t[���[��@��UH�-SH��H���_f.�@��uH�����t�����t\�H�5H��td1�1��H��uEH�C �xQ�tsH�����H�C �@QH�����tWH�C H�xH�H;8t�覥��H��t�H��[]�f��H���H��H�H�C H�x�x���@H���[]�ff.����ATI��U��H��SH���(��teH�C H�H�@H;u�u<H�����t4H�����u)H�ډ�L�����H��H���H��tH��[]A\�H��L��[��]A\�oA���f.���US��H��H�=H9�t`H��H�5H��tH��H���[]�f��H�=�H�=H���H�H��H��[]�fDH��H����[]������AWAVA��AUI��ATUSH��H��H�B L�`�H���H����H�S L�H�BH�BH�������H�C ��H�xH�H;8uf@��uH�����t�����tMDH�5H��t\L��D���I��H�S L��H���BQ�H�E�� �n���H�E�l���DH��L��D���2���H��I���}���D�	H�=�H��H�H�C H�x�|�����@PH��H��[]A\A]A^A_�f.���US��H��H�=H9�t`H��H�5H��tH��H���[]�f��	H�=�H�=H���H�H��H��[]�fDH��H����[]�8������AV1�AUA��ATI��U1�SH��H�H��I��H�L$M���H�|$tI�,$@���6H�H�<$tL���H�<$1��I�D$H���������H�C H�PH�H;����uH�����t�������H��L��D���>>��H�<$H��tdH��tnH���H�|$t^H�$E��~7H��� u}H����H9�~#H)�H��Hc�H�DI�$�:����b���H�$H��[]A\A]A^ÐH�$H��u�fDH�C �xQ�t�H����z��H�C �@Q�����L��D���u����R���H�PH9������룐H���H�������UH�-SH��H�����u�Q�H��1�1���=��H������t(H�=H��u�H���H��H���H��H��[]�fDH��H��[]�RU��f���S1�H��H�=����u!H�=H��t%�H��1�1�H��[�H��[�7����H�=��H��H����UH�-SH��H�����u�Q�H��1�1��=��H������t(H�=H��u�H��	�H��H���H��H��[]�fDH��H��[]�bT��f���S1�H��H�=����u!H�=H��t%�H��1�1�H��[�H��[�7����H�=�	�H��H����UH�-SH��H�����u�Q�H��1�1��<��H������t(H�=H��u�H��	�H��H���H��H��[]�fDH��H��[]�rS��f���S1�H��H�=����u!H�=H��t%�H��1�1�H��[�H��[�7����H�=�	�H��H����AUL�-ATI��U��SH��H�����u�X�H��L����;��H������t'H�=H��u�L��	�H��H���f�H��H��[]A\A]�f��H���H��L���H��E1�[H��]A\A]�fD��AT1�I��UH��S��H�=����u)H�=H��t5�H���L��[H��]A\�@L��H���[]A\����H�=�	�H��H��ff.���SH����H�C H�H�@H;t[�D�uH�����t
�����t�H��[�Q��f���SH���S���tVH�C H�H�@H;u+�uH�����t
�����tH��1�1�[��8���H�XH���HcC[H�D�H�H�5H�81���AUI��ATI��UH��S��H�����L��H��������H��H���H�hH���L�eH��H��[]A\A]����AWAVAUI��H��ATUSH���L9���H��I��L���L���H�XH���L���L��H����C�oC`%����E`�oKp�E�CMp�E�C�EH�CH��tH�EH�C D�{H�E D���A�ƅ�y7���P�v��t1����D���A�ƅ�x�D���D�uH��舠���1��x�H��H��yQ�EuqL���I9�uH��L��[]A\A]A^A_�@H���H�5H��H�EXH��tUH��L������H����
���1�H�ދx��Et�L���L���I9���������H�=�H��H��ff.���AU1�ATI��H�USH��XH�\$H�L$�D$L�L$ I���H�T$ H��1�H�L$L�L$0L�D$���H�|$@������ʼn�����]���1���D$����Z����|$�H�|$���#D$��7H�|$ H����L���foD$0foL$@H�Éh�D$H��C`�CKp��+���{���u3L�-I�}�9�u?I�EH��D$
u`H��XL��[]A\A]��K0��f.��������@L�-I�}�9�t�L�-I�}�9�t��D$
t�L������H��XL��[]A\A]�H�5�H�������L$����fD�D$���H�H�5H�81��1��H��H�t$(H�D$(-H��H���ff.���ATUSH�zu`�G���I��H�Ӄ�vH��L�����H��[]A\�@I�<$H�
�H��H��t�I�$H��L��[��]A\�a���H�H�5H�81��f���ATI��U��H��S�L���H��H������H��[]A\�AWAVAUATI��UH��S��H��dH�%(H��$�1�H��u~H�D$E1�A��f�H�l$ H�����A��)D$P)D$`)D$p)�$�)�$�L�t$(�\$0H�D$4H�D$<A���WA����A��t/H�|$�D�I��H���q���H�H�D$�p���f�L�|$ I����x�M��tHcT$8�H��H�T�H���H�T$H��H�=I8����D$����H�D$(H�|$L�D$PL��A�PH�5	8��H�H ��Ń���m�؃���������|$8A������D�|$4H��H�8�H�@H��I���H��D�xH��؃�(�AM����fAo$I`fAoT$Qp�iH�L$E���6H��$�dH34%(L���H�ĸ[]A\A]A^A_�f�H�|$��Ņ�������D$0�ƒ������=�|$8��|$4���VH�A�H�x�H�H�x��_���DL�|$ I������I�����VM���6���HcT$<�H��H�T�����@L�|$ I���������M�������HcT$4�H��H�T�����DH����փ�(H�8�H�@H��H���H�L$H�5D�p�XH�iX�a�H����H��L����i�����|$4A������D�|$8��������(����Ip������|$4H�Ë(��|$8�A��tf�|$P�+�����H�|$P���|$8��|$<D�|$4�D�t$@�]�����H�=�H��H��)����|$<��|$@�����|$@��|$<��t1���|$<���|$4��|$8���������|$8����1���|$4�����|$<��x��|$@��x��|$4��x��|$8��x��|$����|$<H�Ë(��|$@��+�i����UH��S��H��H�H�|$�� uHH����H��uH�W�:-�t�H�t$��H��H����l���H��[]�DH�u�H�W�AVAUI��ATU��SH��@H�\$ H�t$H�|$H��H�$I��H��L�D$H�L$�1��H�<$H��t���L����(��I��H��t/�l$�|$�7��H�ډ�L������H��@[]A\A]A^���D�t$D�d$H�H�8�A��I��D��H�@D��L��H���s��H��@[]A\A]A^�fDAVAUA��ATI��UH��SH��H��H�>H��H�<$H�D$�H��A�U�H�EH�$�UH�]I���H�5L���H����H�
H��H���H�I��� ��H�@H�XH�������H���H�4$I��H���L��L��M�t$�I�$ uM�t$ H��H�8�L����H�@I��H�����L�mL���H��[]A\A]A^�@H����H���q����H�<$L�������H�EH��[]A\A]A^�f���m�H�����H�EH��[]A\A]A^�H�H�5H�81��AT1�A��H�UH��S��H��hH�D$ P1�L�L$ L�D$�H�|$(ZYH�����H�D$H�5H���H��u%H�|$����H�5HD�H�|$�H�T$H�L$ H������E����H�D$0H����H�T$H�\$@H��t@H�\$@H�T$HH�=n���H�T$H���D$H�D$@�D$P��D$��ucH�D$0H�T$H��H��H�D$@H�=�����D$PH�T$HH��H��`[]A\�fD�H�D$����H�|$0�6����C���H�|$0��|$�ff.�����r���f���1��e���D��UE1�1�H�SH��H��hH�D$P1�jL�L$(�ZYH��H�l$ H�T$��H���j���H�D$0H��thH�T$H��tDH�T$HH�t$@H�T$H�=.����D$H�D$@�D$P��D$��u6�|$ t%H�D$0H�H��H��H�=L����H��h[]��D$ ��H�|$0��|$���UE1�E1�1�SH�H��H��8H�D$P1�j�ZYH��H�l$H�T$��H�����H�D$ H��tH�H��H��H�=
����H��8[]Ð��AUE1�E1�1�ATI��H�U��SH��H��8H�D$P1�j�A��XZ���tNH�l$H�T$H��D��H������H�D$ H��tH�H��H��H�=�����H��8[]A\A]���H���H�ى�L��E1�H���H��8[]A\A]�D��UE1�1�H�S1�H��H��8L�L$�H�;H�\$��
H�=H��H�;��H���c���H�D$ H��t;H��1�H�t$����H�\$�T$H��u(H�H�t$H��H�=R����H��8[]�fD1�H��薑��H�D$ ��ff.�@��ATUSH��H�|$H�t$�H�|$��H�|$1Ҿ�E���H��t_H��H���H�hH���H��蠒���H��H���j��H��I���H���H���H��L��[]A\�f�1�1��H��I��[]L��A\����AWAVI��AUI��ATA�U�S��H��HH�D$���)��t����I�FH�D$I�>H�|$�H��H�D$H����H�8�� ��H�xH������fH�p 1��H��H�D$H�D$ H�D$H��t%H��tH��H���H��I��tL��H���L�d$ H��L�D$H��M��1�H�|$謾���<$�.���t$H��L���u�H��H����L�hA��u
I������i����4H��HH��[]A\A]A^A_�f�H��H�p���1���D��Ic�H�<��H��H����A������I�>D���I��H���������I�����D���������H�H�8�H�H�8�1��@L�t$L���H�|$�H�T$H��� t4H�zu
H�R�:-������L����H���h���fDH��H����H��t���DA�������H�=H��H��H��'���H������L��H����������H���`H��`�t���I�E��`H��`�c���L��H����S���1�H��@�ǍW�w��H�H�5H�81��D��ATUH��S��H������L�%M����H�}L�����t7H�}�S�H�ML���H�������H��H��[]A\��H�}H��H�D$H�<$�H�$H��t�H�����H��t[H�EH���H��H��;���H���fD�H�=�H�}I��H�L������J����|���@H�H���H��t%��H��H��H��[]A\�DH�=H��H��H��%���H��H��H��[]A\����H�H�H�=H�H9uoH���Lf�H�H�@ H�x�H��uVH�H�R �zQ�t}H�z�H�=H�G �@Q�h����u��H���f.�H��1�1��t��@H��H�D$�H�H�J H�AH�PH�D$H�QH�QH���fD�H�D$�H�D$H���ff.�@��S�H��H�H�D$H�\$H�H���I��H�H�޿H��I��H�H�޿H��I��H��[�ff.���H�H�@ H�@(�ff.����UH��SH��H�H�X H�{(H��t�H�H�X H�C(H��tH���H�C(H��[]�ff.�@��H�H�@ H�@ �ff.����ATI��US��H����(�M��tL���H�D$��t0��u��ta��stzH��H�H�8���H�=1����tq��stH��H�H�8�H��H�t$�H���H��H�t$�H���H��H�t$�H���H��H�t$�H����AWE1�1�AVAUA��ATUH��H�SH��HL�d$D�D$H�L$M���H�\$����H�H���?H��L���4��H�D$�u+H�����t#H��у������H����H���H�hH���H���H����E��u�UL���{H�|$H� ��H�H��H������H������L�t$ L�=A��E��t%H����f�E�����}����WL��H���\���EH�|$�D$ H�GH� tH�GL��L��H�D$(H�\$0�H�D$0H��x�H�|$H��H�D$��)��H�D$H��u!H��H�[]A\A]A^A_�H�|$H���)��H�D$H��H[]A\A]A^A_��H���
����H���H���`������8���D$����H�=H��tJ�H��H[]A\A]A^A_�fD��H��U���DH���H�|$H� �}����i����H�=�
�H��H��H�uH�=�H�H��H�5H�81��H�51���AV1�A��AUATA��UH��SH��H�H��0I��H�L$M���H�<$tL���H�$H�EH���������H�C H�PH�H;����u
H�������E1�1�H�t$�H�H�=Q��D�d$H�l$L�1�H�\$ �H��uyH�C �xQ���H���X��H�C �@QH�@ H��� u`H�x����upH�$H��u91�1���.�������d���f�E1�D��H��D������H��t�H��0[]A\A]A^�@������H�<$H��t1����������f���1��u���D��H��E1�1����H��tH����ff.���ATE1�I��1�UH�1�H��S��H��H�D$L�L$�H�|$H��u(E1��L��H����+���H��t9H��[]A\�@���H��u΍{�L��H��A�����H��[]A\�����AT1�E1�UH��H�SH��H��L�D$H�D$�H�|$H��t���E1�H��A��H�$��u
H�������H���H��H���H���H�hH���H���H���g������H���H��� t0H�SH�s�}�H��H�DH���t:H��[]A\�f�H��H�s����������c����i���D��8uJE��tUH�=H��t�H��[]A\��H�=�
�H��H���1��H�uH�=�H�5����AWH�=AVAUATUSH��H�H�0�H�H�=H��H��H��H�=H���H�=H���H�=H���H�=��H�=H���H�=H�������H�5���H�=H�������H�5�H�=������H�5�H�=������H�5���H�=��H�5Л��H�=������H�5����H�=������H�5���H�=������H�5���H�=������H�5���H�=������H�5���H�=��H�5`�H�=������H�5��H�=�H������H�����H�5H�8�L�%H�=I�4$�L�5H�H��I�6H��H�;H�5�L�-H�;H�5I�E�L�=H�;H�5H�-I�H�E�I�uH��H��I�H�;H�5�H�uH��H��H�H�;H�5�H�H�;H�5�L�=H�;H�5I��I�uH��H��I�H�;H�5�H�uH��H��H�;H�5����H�;�����H����H�5�H�;�����H����H�5�H�;�����H�1���H�5�H�;�����H���H�5�H�;�����H��H�5�H�;�����H���H�5�H�;�����H�%�H�5�H�;�����H�*�H�5�H�;�����H��H�5�H�;�����H���H�5�H�;�����H���H�5�H�;�����H����H�5�H�;�����H����H�5�H�;�H�hC��H�5�H�;�����H�='��H�5�H�;�����H����H�5�H�-1�H�5H�=H��H���H�=�L�=L�-H��I�I�E�H�I�?H�@��u/H�����t&H��ƒ���tH�€�H�H�t	���H��1�H�=L���H��1�L��H�=�H�5H��1�H�=�H�H�5H�=�H�;�H����H�5�H�;�����H����H�5�H�;H������H�5�H�;�H�"���H�5�H�;H������H�5�H�;H������H�5�H�;�����H�q��H�5�H�;�����H��p��H�5�H�;1�H�c��H�5�H�;1�H�&y��H�5�H�;1�H�Nu��H�5�H�;�����H�Sq��H�5�H�;1�H��c��H�5�H�;1�H�cy��H�5�H�;1�H�;x��H�5�H�;�H��N��H�5�H�;�����H��`��H�5�H�;1�H�m?��H�5�H�;H�H�5�H�;1�H�/��H�5�H�;1�H�g~��H�5�H�;1�H��~��H�5�H�;1�H�wE��H�5�H�;�H��D��H�5�H�;1�H��s��H�5�H�;�H�Is��H�5�H�;�����H�~n��H�5�H�;�����H�#���H�5�H�;�����H�����H�5�H�;�����H���H�5�H�;�����H��{��H�5�H�;�H�'���H�5�H�;�����H�<m��H�5�H�;�����H�Am��H�5�H�;1�H��q��H�5�H�;1�H�H�5�H�;1�H�	r��H�5�H�;1�H����H�5�H�;H��H�5�H�;H��H�5�H�;H��H�5�H�;1�H�H�5�H�;1�H�`y��H�5�H�;�����H��x��H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�	H�5�H�;1�H�9w��H�5�H�;1�H��x��H�5�H�;�H�Vv��H�5�H�-H�;1�H�5H���H�;1�H��H�5�H�;1�H�?A��H�5�H�;�H��?��H�5�H�;1�H�l���H�5�H�;1�H�t?��H�5�H�;1�H�,���H�5�H�;1�H�4���H�5�H�;1�H�;��H�5�H�;1�H�;��H�5�H�;1�H�,���H�5�H�;1�H��:��H�5�H�;�����H�99��H�5�H�;�����H�N<��H�5�H�;�����H��7��H�5�H�;�����H�H6��H�5�H�;1�H�6��H�5�H�;1�H�x(��H�5�H�;1�H�p5��H�5�H�;1�H��1��H�5�H�;�����H�4��H�5�H�;1�H��4��H�5�H�;�H��4��H�5�L�=H�=L���H�H�H�
�H�8����H�-1�H�
z��H�=I�H���H�H�H�
�H�8���L�-1�H�
:��H�=H�EL���H�H�H�
�
H�8�I��H�
��1�H��H�=I�E�H�EI�7H�=H�I�EH�H��H�uH�=�I�uH�=�I�<$�I�4$H�H��H���H��H�5�
���I�6H���H�߹����H�i
��H�5�H�߹H����H�5�1�H��H���H�5�H��H�H�5�1�H��H����H�5�1�H��H����H�5�1�H��H����H�5�1�H��H� ��H�5�1�H��H��8��H�5�H�߹����H����H�5�H�߹����H����H�5�1�H��H����H�5�1�H��H����H�5�1�H��H�z��H�5�H�߹����H����H�5�H��1�H����H�5�1�H��H����H�5�1�H��H����H�5�H�߹����H�l��H�5�H�߹����H��H�5�H�߹����H���H�5�H�߹����H�K��H�5�H�߹����H�0��H�5�H�߹����H�E���H�5�H�߹����H����H�5�1�H��H����H�5�1�H��H�z��H�5�1�H��H�����H�5�1�H��H���H�5�1�H��H��H�5�H�߹����H�G���H�5�1�H��H�����H�5�1�H��H�����H�5�H�߹H�����H�5�1�H��H�d���H�5�H��1�H�L���H�5�1�H��H�Խ��H�5�1�H��H�l���H�5�H�߹H��H�5�H�H�߹����H�5�H�߹H�ۉ��H�5�H�H�߹����H�5�H�H�߹����H�5�1�H��H�ݼ��H�5�1�H��H�ż��H�5�1�H��H�����H�5�1�H��H�eB��H�5�1�H��H�-���H�5�1�H��H�Ż��H�5�1�H��H���H�5�H�߹H�"!��H�5�1�H��H�
���H�5�H�߹H���H�5�1�H��H��3��H�5�1�H��H��3��H�5������H��H�����H�5�1�H��1��H�5H�=H��H�5H�=�H�
� ��H�1�H�5H�=�H�H�`���H�5H�=H���H��H�=H�h �H�
��H� ���H�EH�5H�=�H��H���H�5H�=��H������H����H�5H�8��H�=�H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����	H�=H��H����H�=H��H����H�=H��H����	H�=H��H����H�=H��H����
H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H���H�H��[]A\A]A^A_�fD��������GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignungetbyte failedARGFclosed?closemesg13too few arguments for syscallaa+rww+r+invalid access oflags 0x%xab+abrtrbrt+rb+wt+wtwbwb+atat+invalid access fmode 0x%xtextmode specified twicebinmode specified twice22selectfstatlseeksendfilereadpreadwrite#<:fd %d>/proc/self/statusFDSize:end of file reacheduninitialized stream2
11:11sysseek for buffered IOto_ioIOnot opened for writing12advice must be a SymbolUnsupported advice: %+li%li (%ld, %ld, %li)syswrite for buffered IOfd:%d too long characternot opened for readingsysread for buffered IOeach_byte

rs modifiedeach_lineungetc failedinvalid byte sequence in %seach_codepointeach_char02negative length %ld given%s() not implemented[...]putsputcto_pathflush failed01invalid access mode %sto_intinternalexternalmode specified twiceperm specified twiceencoding specified twice02:12:-no stream to set encodingno stream to set positionno stream to rewindno stream to seekno stream to tellgetcgetbytereadlinereadlinesno stream@tied_io_for_writingreinitializing FileFixnumto_aryArraytoo many arguments21:13:rb:ASCII-8BITto_openwait_readableread would block10:wait_writablewrite would blockIOErrorEOFErrorflushreadpartialset_encodingsyscallopenprintfprintgets`pdisplayWaitReadableWaitWritableEAGAINWaitReadableEAGAINWaitWritableEWOULDBLOCKWaitReadableEWOULDBLOCKWaitWritableEINPROGRESSWaitReadableEINPROGRESSWaitWritablenewsysopenfor_fdpopenforeachbinreadbinwritepipetry_convertcopy_streaminitialize$,$/$-0$\$_initialize_copyreopeneachlinesbytescharscodepointssyswritesysreadfilenoto_ifsyncfdatasyncsyncsync=linenolineno=read_nonblockwrite_nonblockreadcharreadbyteungetbyteungetc<<tellseekSEEK_SETSEEK_CURSEEK_ENDSEEK_DATASEEK_HOLErewindpospos=eofeof?close_on_exec?close_on_exec=close_readclose_writeisattytty?binmodebinmode?sysseekadviseioctlfcntlpidinspectexternal_encodinginternal_encodingautoclose?autoclose=$stdin<STDIN>$stdout<STDOUT>$stderr<STDERR>$>STDINSTDOUTSTDERRARGF.classto_sargvto_write_ioto_afilenamepathfileskipinplace_modeinplace_mode=$<$.$FILENAME$-i$*modepermencodingopen_argstextmodeautoclosenormalsequentialrandomwillneeddontneednoreuseSETCURENDDATAHOLEASCII incompatible encoding needs binmodeUnsupported encoding %s ignored%li::new() does not take block; use %li::open() instead%li must have %li method, %li givenWe plan to remove a syscall function at future release. DL(Fiddle) provides safer alternative.too many arguments for syscallboth textmode and binmode specifiedrb_update_max_fd: invalid fd (%d) given.rb_maygvl_fd_fix_cloexec: fcntl(%d, F_GETFD) failed: %srb_maygvl_fd_fix_cloexec: fcntl(%d, F_SETFD, %d) failed: %srb_fix_detect_o_cloexec: fcntl(%d, F_GETFD) failed: %sencoding mismatch: %s IO with %s RSreturn value overflowed stringbyte oriented read for character buffered IOIO#bytes is deprecated; use #each_byte insteadinvalid limit: 0 for readlinesinvalid limit: 0 for each_lineIO#lines is deprecated; use #each_line insteadIO#codepoints is deprecated; use #each_codepoint insteadIO#chars is deprecated; use #each_char insteadASCII incompatible string written for text mode IO without encoding conversion: %sclosing non-duplex IO for writingclosing non-duplex IO for readingcannot specify src_offset for non-IOIgnoring encoding parameter '%li': %s_encoding is used%s can't change access mode from "%s" to "%s"setvbuf() can't be honoured for %liCan't do inplace edit for stdio; skippingCan't rename %li to %li: %s, skipping fileCan't remove %li: %s, skipping fileCan't set owner/group of %li to same as %li: %s, skipping fileCan't do inplace edit for stdioARGF#codepoints is deprecated; use #each_codepoint insteadARGF#chars is deprecated; use #each_char insteadARGF#bytes is deprecated; use #each_byte insteadARGF#lines is deprecated; use #each_line insteadThe given fd is not accessible because RubyVM reserves itinvalid read/write type passed to rb_readwrite_sys_fail: %dio_reopenrb_io_reopenrb_io_syswriterb_io_sysreadrb_io_fsyncio_write_nonblockrb_io_tellrb_io_seekrb_io_rewindrb_io_set_posrb_io_close_on_exec_prb_io_set_close_on_execrb_io_close_readis_socketrb_io_close_writerb_io_sysseekrb_ioctlrb_fcntl (closed)io_getpartialio_writerb_sysopenbom|utf-fptr_finalize_flushswallowio_freadrb_io_set_nonblockio_fillbufclosed streamGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0BDXl�
�0�tE�A�G C
DAKNDA�HU�0�E�D@w
AGc
ADNAPAE�G0nFp(�JB�D�A �l
ABJ,�!B�D�A �i
DEG �JA�Q�d
DA8"B�B�D �A(�G0�
(D ABBDT>A�|p1A�o�E�P�<�~A�D�G g
DAHP
DAKTDA�uA�f
ID@�A�D�D0g
AAFL
AAJJ
AAD`&t&�HI�HK�qA�k�6VI`��B�B�E �E(�D0�D8�D@P
8A0A(B BBBDc
8A0A(B BBBKPHV8h�B�B�A �D(�D@F
(D ABBD$�DA�D V
DA_D`�:B�B�B �A(�A0�U
(A EBBIC
(A BBBF�
(A BBBE04D�E�A�G0J
DAD^
DAE|(�+B�D�D �YAB�!HX(�NF�D�C �S
CBK6A�t(EE�C�G d
FAAHS$\WE�N�D }AA�,E�b8�xF�E�D �A(�G0[
(A ABBA� HU�!HV;D v$HL<HLTh:E�U
FN�3E�m�HK�}L�N
F�EL�X
D(��E�D�G �
DAH$
8HNP$H [0h�E�K�I�M�Q�A�P
AG|��F�B�E �B(�D0�A8�D�D�D�f�A�a
8F0A(B BBBI�
�Ll
8A0A(B BBBA	�fZ4	J�ZL	WHn
JV<l	�R�B�B �A(�A0�w
(A BBBJ(�	Cb�D�G IG�A�0�	�B�D�G �GPV
 AABA 
eA�f
IU
KH0
+B�B�E �E(�D0�D8�D��
8A0A(B BBBD@|
B�E�E �A(�A0�GP�
0A(A BBBB�
&H](�
 Q�D�G s
AAG(�F�A�D �xAB<0=E�X�R�I�k�A�v
FHD
AC(p^B�D�D �V
ABE8��B�F�A �D(�H0M
(D ABBEH��B�B�B �B(�A0�A8�J�r
8C0A(B BBBF$AAK@$A�^\Hp�B�E�B �B(�D0�A8�G��
8D0A(B BBBGT�xB�B�B �B(�A0�A8�H��Q
D��W
8A0A(B BBBH
E�W0
7E�d
GL
=E�]
FT8l
�F�A�A ��
IIMa
ABL�
v}OLI �
sQ�P�@
AA0�
�B�D�C �G0^
 DABK( �E�J�D b
AAILE�J4h�E�I�D f
CADm
CAA�6Hb
F4�B�A�A �G� I� �
 AABA(��F�D�A �p
ABB0 �E�A�G _
CAHGCA@T�L�F�C �_
ABIZ
ABCR
ABK��6HX
HK�"EAK�2m�#KE�P
A4,rA�A�G V
AAGt
AAB$dGE�b
IF
JFL�.B�B�D �D(�GP�
(A ABBGL
(A ABBF0��E�A�G@p
AAALDA4PF�D�D �i
ABFLABH$E�PdWE�j
I^�*E�d0�VF�M�A �DP�
 IABD0�5F�C�K �D`�
 CFBFLJF�G�A �A(�N@�
(F ABBDl
(A ABBFX&E�Ut,E�Z�E�Q���AHZ
NI�AHZ
NI(%E�_D3[@XZF�D�B �A(�A0�Np+
0F(A BBBD�GE�s
HF8�"F�B�D �A(�G0_
(F ABBB4��E�A�G c
FAIY
CAA00XE�D�D o
DAGJDAd.E�]L��F�F�B �B(�A0�A8�G�e
8D0A(B BBBE(�UE�D�G n
AAH(��A�A�D A
AAG(@d [ @AE�V
ED
E dE�J@�
FE��$�KE�_
DK
EM
AL�UB�B�A �A(�G`z
(D ABBHS
(D ABBAH(}B�H�B �B(�A0�A8�Dp&
8D0A(B BBBAdtaB�B�B �B(�A0�D8�D`�
8A0A(B BBBD;
8A0A(B BBBA�'DZ
A\��B�B�A �A(�GP�
(A ABBD
(A ABBKE
(A ABBELXBB�B�B �B(�A0�D8�G�`
8A0A(B BBBAx�=B�E�B �B(�A0�A8�Gpd
8A0A(B BBBF�
8H0A(B BBBCK
8A0A(B BBBA$#E�]$@KE�_
DK
EM
A0h�A�A�G P
CAC�FA�vE�_
D�1E�S
A�	 ��E�D0T
FE0�F�C�K �DPy
 AABK4@�E�D�D I
DAEaGH xmE�v
ED
L�SE�m
FZL��
B�B�E �B(�A0�D8�D�6
8D0A(B BBBI/A�J bA,E�TH%E�Z
A$dEE�D�D pFA(�tE�A�J0F
DAA�@��F�D�C �G0O
 DABFd
 GABA4�F�F�D �q
DBII
ABL0H/F�A�A �D0�
 FABA(|jE�A�D m
GAI�HO
A0�RE�A�G m
DAALDA�)E�^HIF�B�B �B(�A0�D8�DP�
8A0A(B BBBA `mE�v
ED
L4��F�D�A �b
ABHYAB �mE�v
ED
L�,A�c
A4��F�A�D �X
FBEqDB,4�F�A�D �k
FBB8d�B�E�A �D(�D0M
(F ABBH �NE�P d
AF0��E�A�D J
FAEdDA(��A�D�G�v
DAIP$�F�M�A �D0�
 AABBu
 AABG{
 AABAx�^E�A
A4�mE�A�D B
FAED
DAE`�EB�B�E �E(�D0�D8�G`_
8A0A(B BBBJ^
8H0A(B BBBAdH�B�B�B �B(�D0�D8�DPV
8D0A(B BBBI{
8N0A(B BBBN��H��B�E�B �B(�A0�A8�G�	�
8A0A(B BBBGH$ �B�B�B �B(�D0�A8�GP�
8A0A(B BBBBp NQ�x�4� �F�A�A �X
FBHRAB8� �F�D�A �@
FBEI
DBE\!	F�B�A �D(�D0F
(F ABBFZ
(D ABBEE
(F ABBA`! E�Z(|!�E�A�G m
FAG�!(�!>F�D�D �`GD�!(H _"E�L"E�YL8"�F�B�D �A(�D@b
(F ABBBL
(F ABBI�"!HXH�"�F�B�B �E(�A0�A8�D`6
8F0A(B BBBFH�"�F�B�A �D(�D@p
(A ABBIl(F ABB@8#~F�H�A �`
ABN^
AIHFAB|#E�L(�#�E�D�G0G
DAD$�#~E�D v
AHtAL�#JF�E�B �B(�A0�A8�D��
8F0A(B BBBIH<$�F�B�B �B(�A0�A8�L@$
8F0A(B BBBC �$RE�G _
FG�$VI�e
B`�(�$�q�A�D k
DAJ�$4%�F�A�A �`
AFIYFBLD%�B�B�A �D(�D0�
(A ABBJY
(G FEBK�%HO
A(�%9F�D�D �`DB�%QE�]
F�% &�J�_
GP�$0&YE�D�D FDA$X&`E�D�D MDA�& E�V$�&0E�A�G ]DA�&'E�a �&�E�r
IA
G'B'HI00'�F�J�A �D@r
 CAGFxd'�R�B�B �E(�I0�D8�GP�
8A0A(B BBBE�
8F0A(B BBBKD
8C0A(B BBBHL�'�F�B�E �H(�A0�D8�G��
8A0A(B BBBHL0(�F�D�B �B(�A0�K8�D�C
8D0A(B BBBB(�(VE�D�F N
AAA�(E�M�(	(�(`E�D�D d
CAK<)F�D�A �A(�Q�Z
(D ABBH4H)�F�E�D �A(�F0�(A ABB4�)�E�A�D L
AAHCAA8�)�F�B�A �A(�D0y
(D ABBH�)QE�i
RI*E�L(0*�E�D0j
ADYA\*3Q�ax*!E�H�*�B�E�E �E(�D0�D8�DPt
8D0A(B BBBB8�*�B�E�G �A(�G`\
(A ABBH$+ZE�D�D@JAA$D+EE�D�D nDAHl+�B�B�A �A(�N�S�O�M�A�f(D ABB8�+yB�J�E �G(�A0�U(D BBB(�+`M�G�A �~DDH ,B�B�B �B(�A0�A8�J�s
8A0A(B BBBGHl,B�B�D �C(�G0�
(A ABBET(F ABB�,E�T�,Ai�W,�,}F�D�F �Q
ABA -NE�y
JA@-0E�j\-E�Mx-E�M�-E�P�-ZE�A
JI$�-wE�U
FM
CF(�-�E�G I
AJV
AA $.nE�A
JA
E4H.�F�D�F �}
CBNA
IBE �.nE�A
JA
E(�.�E�H�G �
AAJ(�.�E�H�G �
AAE$�.lE�{
HO
IF
A0$/�E�H�G �
AAJlFA8X/�F�D�F �Y
ABDG
CBE<�/�E�A�F _
FANh
DAKDFAH�/6F�B�E �E(�A0�A8�G@
8D0A(B BBB< 0�E�A�F _
FANh
DAKDFA@`0�F�D�E �D(�C0�N@
0A(A BBBB0�0~E�H�G P
DAGDDA �0mE�v
ED
L0�0~E�H�G P
DAGDDA 01mE�v
ED
L0T1~E�H�G P
DAGDDA �1mE�v
ED
LH�1�F�I�D �C(�G0W
(D ABBCQ(L DBB4�1�F�F�D �q
DBII
ABL02GE�]
FZ P2E�~
MQ
F4t2XB�E�D �D(�F0y(D ABBH�2�F�B�B �H(�A0�A8�D@
8D0A(B BBBEL�2"F�D�K �A(�D�
(D ABBD[
(D ABBD4H3�F�A�A �h
ABEm
CBE(�3-F�D�F �YABL�38B�B�B �B(�D0�D8�I��
8A0A(B BBBC(�3mA�D�F0M
AAFT(4�B�B�E �A(�F0�Dpk
0A(A BBBIA0A(A BBBl�4�B�B�E �D(�D0�G@
0A(A BBBEv
0A(A BBBJ_
0A(A BBBA<�4rB�M�D �F�F�W�A��
 AABG05D58X5�E�M�G�F�D�K�A��
AAA0�5oE�I�NPFXD`FXAPAAT�5�F�J�K �C(�G`FhDpIhA`I
(A ABBHd(A ABB( 6�E�M�KP�
AAG<L6�F�A�A �D0�
 DABJM DAEL�6F�B�E �E(�G0�F8�F�
8D0A(B BBBCL�6HF�A�D �F0O
 DABI�
 GABF] GAB ,7�e `[ q
GXP7bE�I RAp7$�7QE�D�D AAA�7 �7�F�D�A �F0|�7�B�G�B �E(�A0�K8�D�p
8F0A(B BBBAV
8A0A(B BBBHW
8A0A(B BBBG@d8iB�G�B �D(�D0�N`
0A(A BBBE�8�8�8"HT
A@�8�F�I�M �F0}
 AABEg
 AABA@09}F�F�K �D0�
 AABJL
 AABHLt9�F�I�B �B(�A0�A8�D@�
8A0A(B BBBG	#!3$I`%{�&��'��	7RWBjR�r�`�r�������9�H�a�x�
���������T�t,TQ~t`�~�������(�=�_�����������A���3�U�w:��J�:�a
w@!�a��pJH
)�K�k����"��N�>�N�4P1C�\�s�}��������N��~�N�,Pu7�[�}��������&��		� 	�&*	�F		`		m		�	6	�	 	�	6	�	�	�z@	q�	�	
�	)
�	66
�	[
�
~

��
�
�
�
�
�

 � =TImDXTr��`:���������)��?�X�o�y�����+�����!
)
nB
 NN
nm
��
p6�
�E�
��
��
�S(S8SR�j`WuH�����,���h��x�	�h#�<p H�j���!������;�	��!>Ni7� �7�Z�@�x}�Z��`:�7�O�3Z�y������}�	@����E}-�H	0a����	8������
���?�R�h�|�$�����������E����~��"~Fh��}�j� J�j��pW6�S�n��|�����C���p����]# 	$pD�bpes�	��� ��+� �"	 ":F"Y "&kF"�p#�P" �	h�	`�p#��#p#�+�#N=%o$=�p�J����=%��%@%^7�%c'&��%��'&��'�0&��'A(i(�X�(�(�(�D( ($  ($7 ($N ($jD(�\(�P(�P(�P(�P(�P(\(:�)_`(�w�)�x,�*x�x,�,4�,K�,j�,��,7��,�-��,=�-	�.$ -�2�
?�.dF/��.v�	P�	H�	@�	8�	0�F/��/�/3}0K�/�V�16c�r}0�1�1�41 41 �1< R �1n 2� 2� &3�  2� &3� �3!!�3>!D4[!k!D4�!�4�!�!�4�!5"5""F5;"56G"F5c"r5}"r5�"�5�"�5�"�5	#�5+#6K#6d#�6{#6r�#�6�#�6�#�6G�#�6
$9/$�6.D$9f$�9�$9��$	��$�9�$:�$�9P%:"%$:A%:$S%$:z%�:�%0:W�%�:�%�:�%�:*�%�:&<%&�:V1&�	@&<[&U=t& <5�&�	�&U=�&�>�&`=J�&x�&�>'�> '�>&0'�>L'?f'�>,s'?�',?�'?�',?�'L?�'L?
(l?&(l?L(�?p(p?A�(�?�(@�(�?A�(@)@,)@@)@b)E@�)E@�)�@�)P@3�)�@�)�B�)�@Z*	(*	 %*	0*	=*	J*	V*�Br*7C�*�BG�*7C�*bD�*@C"�*+bD1+.ET+pD�j+�y+.E�+�E�+0EX�+�E�+�E�+�E.�+�E,qL3,qLU,�Lu,�L�,uM�,�L��,	��,uM�,�M�,�M@-�M)-NK-Ni- O�-N�-X�- O�-7O�-7O.XO#.XOF.�Og.�O�.Q�.�OU�.H�.Q�.�S�.Q}�.�S/�U/�Sa$/�U=/'VT/V'^/'Vu/�Y60V��/�Y�/B\�/ZB�/�/B\0�]"zP\=&0�]B0�]\0�]0^�0^�0�^�0^��0�^1F_*1F_S1�_z1�_�1�_�1�_�1*`�1*`2�a420`�B2hQ2�ap2�b�2�a��2�b�2c�2�bm�2	h�2c3sc&3scE3!nb3�c�
r3	�w3!n�3_n�30n/�3_n�3zn�3`n4zn4�n:4�n%I4�ne4�n�]�nE4�n�4to�4ot�4to�4�o�]�o5�o$5WpA5�o�Q5Wpl5�p�5`p��5	`�5�p�5s�5s�5�s6 sj6�s;6�sW6�sf6�s�6t�6�sR�6t�69t�6t)�69t7�w>7@tIS7�ws7�w�7�wm�7	x�7�w�7�x�7x�8�x"8
y;8�xmG8	p`8
y�8<y�8y,�8<y�8�y�8@y��8�9�y#9�z=9�y�J9�
Y9�zs90{�9�z��9��90{�9~{�90{N�9~{:|:�{�%:�4:|O:�|h:|�t:�|�:/~�:�|��:/~�:C~X]0~�:C~�:�~;P~^;x';�~F;c;�~ms;�;e��; E�;e��;)�yp���;�	�;)�
<;�"<0�-<;�H<S�a<@�m<S��<���<`���<���<��=��=��*=9=��[=�{=��N�=��=֌�=֌�=��>��>`#>��C>Ɏa>��	r>0�>Ɏ�>��>Ў �>��>��
?��2?��U?��s?��?��?��?��?2��?2�@_�/@_�J@�c@�}@A��@ �!�@A��@��@���@��@��A��+A>�BA��~LA	eA>�AY��A@��AY��A��A`���A��An�B�~B	2Bn�RB��pB	P�B	H�B����B���Br�C	�C	�#Cr�ACҜ]C��RlCҜ�C6��C�V�C6��Cٝ�C	��CٝD�%D�BDʞ]Dʞ�D���DО��D���D���D��E��$E��?E��aEQ��E0�EQ��E}��E}��E�F�#Fi�>Fi�[FУvFУ�F��FУ �F��F �G �6GG�SG �'cGG��G2��G2��G���G(�G��H��;H��ZH��wH����H���Hh��H	x�H	��H	�Ih�'I�JIp��`I	�iI	�rI��I���I���IH
�I8
�I���I��J��%J�EJ�eJ)��J)��J���J���J���J���J��KC�8KC�LK��^K��}K���K���K��K	��K�L)�L)�>Lù^Lù~L��L��L1��L1�M�(M@��=M�bM���M���M���M��M��Me�Ne�+N$�ENp��RN$�iN��~N0�y�N���N��N��N��N�O	�O�-O �GO �TO �mO:��O ��O:��O���O@�A�O���O
�P��}P
�5P^�NP�NZP^�vP���P`�0�P���P���P���P���P��Q��Q��AQ��cQ��xQ���QJ��Q��Z�QJ��Q���QP�w�Q��R`�.R���;R`�VR��oR`�n{R���RY��R����RY��R���R`�n�R��S��-S���;S	�TS��pSj��S����S	��Sj��S���Sp�l�S��T��&T���0T	�IT��fTV��T����TV��T���T`���T	�T��U&�(U��67U	�PU&�nU���U0���U	 �U���UP��U����UP�V��0VP�~DV	�]V��|V=��V��m�V	��V=��V���V@�~W	�$W��>W-�VW��maW	�zW-��W���W0�~�W	��W���W�X��mX	�2X�PX��lX ��{X	��X���XU��X����X	��XU�Y��Y`�G'Y��BY/�[Y��gY/��Y���Y0�X�Y���YU��Y����Y	X	ZU�)Z��GZ`�"XZ	XfZ���Z��Z����Z��ZM��Z �-[M�%[��D[P�8V[	(o[���[���[��m�[���[���[��\��!\��<\���J\	pX\��r\�]��r�\��\��\��\��\+�] �]+�;]
�U]0��b]
��]��]�o�]��];��]���^;�^�<^@��L^�j^���^���^���^���^���^���^(�_��H_	._(�E_!�Z_!��_���_���_���_��`�B`�]`4�v`4��`8��`	��`	��`	�
a	�$a8�Aa��\a@��ja	��a��a���ai��a�i�ai�b~� bp�3b~�Sb��qb���b���b���b��"�b���bY�	c���cY�>c�`c`�}uc	��c��c��c�$%&'#�c�c�c�c0�cP�c��c�c�c$�c)�c�d,d
dYdOdSdV%dQ+dJ1dL7dx=d�Cd�Id�Od�Udt[d�ad�gd�md~sd{yd�d��d��d8�d��d��d��d��d��d�d��d	�d�d�d�d�d�d%�d`�d��d��d�d'eA	eUeleje@!en'er-eh3eu9e�?e�Ee�Ke�Qe�We�]e�ce�ieoeue+{e��eB�e��eZ�eg�ed�e��e�e(�es�e}�e��eX�e��e��e��e��e��e��e �eH�e��e�f�f�ffpf
&f-f4f1;f8BfAIf�PftWfJ^f_ef�lfsf�zf��f��f��f(�f��f��fX�f��f��f��f��f��f�f�f�f�f�fX�f��f�g#
g-ggV"gB)g]0gd7gj>g}Eg�Lg�Sg�Zg@ag�hg�og�vg�}g��g��g��g��g��g�g�g�g�g"�g(�g-�g/�g1�g9�gF�gS�gf�gyh�	h�h�h�h�%h�,h�3h�:h�AhHhOhVh]h(dh3kh6rh9yh=�h@�hC�hS�hZ�h_�he�hk�hq�h|�h��h��h��h��h��h��h��h��h��h�i�i�i�i�!i�(i/i6i=iDiKi"Ri+Yi5`i?giFniJuiO|iS�iX�ig�iv�i��i��i��i��i��i��i��i��i��i��i��i��i��i��ijjjj"j+$j3+j<2j?9jE@jLGjSNj^Ujc\jhcjtjjyqj�xj�j��j��j��j��j��j��j��j��j��j��j��j��j��j��j��j��j	�j	�j	k	k&	k*	k.	 k2	'k7	.k:kJk_ksk

 !"()*�k��k�k�k�k�k�k��k�klCl"l3l>lMlXljlzl�l�l�l�l�lf	�x�l�lm m-m8mFmWmlmtm�m�m�m�m�m�m�m�mn n1n?nPndnqn�n�n�n�n�nB�n�nD��n�n�no!o2o=oHoToao{o�o�o�o�o�o�o�o�oppp6pIp[pjp�p�p�p�p�p�p�p�pqq*q5qKqcqnqxq�q�q�q�q�q�q�q�q�q�qrr#r.r8rFrSr^rP/sorvr�r�r�r�0�A"�r�r 1�r@1��r�r�rs03�sss�3�)s�{/sP4�Fs5UsP5"bs�os�52�s�s�5#�s�5�s�s��s�s�tt,t8tl'Et0?RtbtP?qt�t @%�t�t�t�t�t�t�t�tuu�LU)u�2u�MAGuYu Olu@O}u�u`OK�u�u�u�u�uvv>vTvcvqv�]K�v�v�v�v�^v�vP_1�v�_	
w�_�w)w:wKw cSUwdw�w�w�w�w�w�w�w�p/�wxxx3x@xTxix�x�x�x���x�x�x�x�x�x��>y�(y �$y@�1y>y`��Jy�Wy�dyty�~yP���y�y�y�y�y�y�y�y@��z�z��z��9-z�Q@z`�Kz���_z�Ymz~zp�`�z�z�0�zP���z@�B�z���z{���#{3{B{W{`Y�|wy,u_{v{�{�{�{��V�{�{��{ �	�{0�`�{�{||���,|;|P��@|K|h||��Q�|�y�|��|0���|й3�|�!�|�|��Z�| �E}}��`'}�.};}F}V}]}d}k}r}y}�}�}�}�}�}�}�}�}~~.~=~L~Y~e~r~~~�~�~�~�~�~�~0���~0�b
��#��Q9 �E@��[�l��������������4�?�U�e�u�������̀���-�@��J�a�n�������.annobin_io.c.annobin_io.c_end.annobin_io.c.hot.annobin_io.c_end.hot.annobin_io.c.unlikely.annobin_io.c_end.unlikely.annobin_io.c.startup.annobin_io.c_end.startup.annobin_io.c.exit.annobin_io.c_end.exit.annobin_rb_io_to_io.start.annobin_rb_io_to_io.endrb_io_to_io.annobin_rb_io_fmode_oflags.start.annobin_rb_io_fmode_oflags.endrb_io_fmode_oflags.annobin_argf_lineno.start.annobin_argf_lineno.endargf_lineno.annobin_argf_lineno_getter.start.annobin_argf_lineno_getter.endargf_lineno_getter.annobin_argf_binmode_p.start.annobin_argf_binmode_p.endargf_binmode_p.annobin_argf_argv.start.annobin_argf_argv.endargf_argv.annobin_argf_argv_getter.start.annobin_argf_argv_getter.endargf_argv_getter.annobin_io_flush_buffer_sync.start.annobin_io_flush_buffer_sync.endio_flush_buffer_sync.annobin_io_flush_buffer_sync2.start.annobin_io_flush_buffer_sync2.endio_flush_buffer_sync2.annobin_internal_write_func.start.annobin_internal_write_func.endinternal_write_func.annobin_internal_write_func2.start.annobin_internal_write_func2.endinternal_write_func2.annobin_io_binwrite_string.start.annobin_io_binwrite_string.endio_binwrite_stringinternal_writev_func.annobin_read_internal_call.start.annobin_read_internal_call.endread_internal_callinternal_read_func.annobin_internal_writev_func.start.annobin_internal_writev_func.end.annobin_read_buffered_data.start.annobin_read_buffered_data.endread_buffered_data.annobin_io_ungetbyte.start.annobin_io_ungetbyte.end.annobin_is_socket.start.annobin_is_socket.endis_socket__func__.14700.annobin_internal_read_func.start.annobin_internal_read_func.end.annobin_io_shift_cbuf.start.annobin_io_shift_cbuf.endio_shift_cbuf.annobin_clear_readconv.start.annobin_clear_readconv.endclear_readconv.annobin_clear_codeconv.start.annobin_clear_codeconv.endclear_codeconv.annobin_argf_free.start.annobin_argf_free.endargf_free.annobin_argf_to_s.start.annobin_argf_to_s.endargf_to_s.annobin_io_setstrbuf.start.annobin_io_setstrbuf.endio_setstrbuf.annobin_io_enc_str.start.annobin_io_enc_str.endio_enc_str.annobin_validate_enc_binmode.start.annobin_validate_enc_binmode.endvalidate_enc_binmode.annobin_argf_inplace_mode_get.start.annobin_argf_inplace_mode_get.endargf_inplace_mode_get.annobin_opt_i_get.start.annobin_opt_i_get.endopt_i_get.annobin_nogvl_fclose.start.annobin_nogvl_fclose.endnogvl_fclose.annobin_nogvl_close.start.annobin_nogvl_close.endnogvl_close.annobin_io_ascii8bit_binmode.start.annobin_io_ascii8bit_binmode.end.annobin_argf_memsize.start.annobin_argf_memsize.endargf_memsize.annobin_rb_io_ext_int_to_encs.start.annobin_rb_io_ext_int_to_encs.endrb_io_ext_int_to_encs.annobin_io_alloc.start.annobin_io_alloc.endio_alloc.annobin_check_pipe_command.start.annobin_check_pipe_command.endcheck_pipe_command.annobin_find_encoding.start.annobin_find_encoding.end.annobin_setup_narg.start.annobin_setup_narg.endsetup_narg.annobin_io_new_instance.start.annobin_io_new_instance.endio_new_instance.annobin_argf_inplace_mode_set.start.annobin_argf_inplace_mode_set.endargf_inplace_mode_set.annobin_opt_i_set.start.annobin_opt_i_set.endopt_i_set.annobin_argf_forward.start.annobin_argf_forward.endargf_forward.annobin_argf_forward_call.start.annobin_argf_forward_call.endargf_forward_call.annobin_rb_io_s_new.start.annobin_rb_io_s_new.endrb_io_s_new.annobin_argf_block_call.start.annobin_argf_block_call.endargf_block_callargf_block_call_i.annobin_argf_block_call_i.start.annobin_argf_block_call_i.end.annobin_argf_initialize.start.annobin_argf_initialize.endargf_initialize.annobin_argf_alloc.start.annobin_argf_alloc.endargf_allocargf_type.annobin_argf_mark.start.annobin_argf_mark.endargf_mark.annobin_stdout_setter.start.annobin_stdout_setter.endstdout_setterid_write.annobin_nogvl_ioctl.start.annobin_nogvl_ioctl.endnogvl_ioctl.annobin_io_advise_internal.start.annobin_io_advise_internal.endio_advise_internal.annobin_get_kwargs_exception.start.annobin_get_kwargs_exception.endget_kwargs_exceptionids.15213.annobin_nogvl_fdatasync.start.annobin_nogvl_fdatasync.endnogvl_fdatasync.annobin_nogvl_fsync.start.annobin_nogvl_fsync.endnogvl_fsync.annobin_pipe_pair_close.start.annobin_pipe_pair_close.endpipe_pair_close.annobin_rb_io_s_open.start.annobin_rb_io_s_open.endrb_io_s_open.annobin_select_end.start.annobin_select_end.endselect_end.annobin_exec_interrupts.start.annobin_exec_interrupts.endexec_interrupts.annobin_io_close.start.annobin_io_close.endrb_intern_id_cache.15660ignore_closed_streamio_call_close.annobin_io_call_close.start.annobin_io_call_close.endrb_intern_id_cache.15645.annobin_ignore_closed_stream.start.annobin_ignore_closed_stream.endrb_intern_id_cache.15654.annobin_popen_exec.start.annobin_popen_exec.endpopen_exec.annobin_rb_execarg_fixup_v.start.annobin_rb_execarg_fixup_v.endrb_execarg_fixup_v.annobin_rb_f_p.start.annobin_rb_f_p.endrb_f_prb_f_p_internal.annobin_rb_f_select.start.annobin_rb_f_select.endrb_f_selectselect_call.annobin_rb_f_syscall.start.annobin_rb_f_syscall.endrb_f_syscall.annobin_rb_io_oflags_modestr.start.annobin_rb_io_oflags_modestr.endrb_io_oflags_modestr.annobin_rb_io_fmode_modestr.start.annobin_rb_io_fmode_modestr.endrb_io_fmode_modestr.annobin_io_flush_buffer_async2.start.annobin_io_flush_buffer_async2.endio_flush_buffer_async2.annobin_make_readconv.start.annobin_make_readconv.endmake_readconv.annobin_io_set_read_length.start.annobin_io_set_read_length.endio_set_read_length.annobin_io_fread.start.annobin_io_fread.endio_freadbufread_call__func__.15093.annobin_io_encname_bom_p.start.annobin_io_encname_bom_p.endio_encname_bom_pbom_prefix.15743.annobin_parse_mode_enc.start.annobin_parse_mode_enc.endparse_mode_enc.annobin_io_encoding_set.start.annobin_io_encoding_set.endio_encoding_set.annobin_io_encoding_set_v.start.annobin_io_encoding_set_v.endio_encoding_set_v.annobin_extract_binmode.start.annobin_extract_binmode.endextract_binmodesym_textmodesym_binmode.annobin_argf_initialize_copy.start.annobin_argf_initialize_copy.endargf_initialize_copy.annobin_rb_io_s_copy_stream.start.annobin_rb_io_s_copy_stream.endrb_io_s_copy_streamcopy_stream_bodycopy_stream_finalize.annobin_maygvl_copy_stream_continue_p.isra.19.start.annobin_maygvl_copy_stream_continue_p.isra.19.endmaygvl_copy_stream_continue_p.isra.19.annobin_nogvl_copy_stream_wait_write.start.annobin_nogvl_copy_stream_wait_write.endnogvl_copy_stream_wait_write.annobin_nogvl_copy_stream_sendfile.start.annobin_nogvl_copy_stream_sendfile.endnogvl_copy_stream_sendfile.annobin_rb_io_check_closed.part.25.start.annobin_rb_io_check_closed.part.25.endrb_io_check_closed.part.25rb_io_wait_writable.part.36rb_io_wait_readable.part.32.annobin_rb_io_each_char.part.47.start.annobin_rb_io_each_char.part.47.endrb_io_each_char.part.47argf_each_byte.part.72argf_each_char.part.70argf_each_codepoint.part.68.annobin_argf_closed.part.59.start.annobin_argf_closed.part.59.endargf_closed.part.59argf_to_io.part.76argf_readbyte.part.66argf_eof.part.61argf_binmode_m.part.60.annobin_maygvl_copy_stream_read.start.annobin_maygvl_copy_stream_read.endmaygvl_copy_stream_read.annobin_nogvl_copy_stream_read_write.start.annobin_nogvl_copy_stream_read_write.endnogvl_copy_stream_read_write.annobin_nogvl_copy_stream_func.start.annobin_nogvl_copy_stream_func.endnogvl_copy_stream_func.annobin_argf_set_lineno.start.annobin_argf_set_lineno.endargf_set_lineno.annobin_argf_lineno_setter.start.annobin_argf_lineno_setter.endargf_lineno_setter.annobin_rb_io_inspect.start.annobin_rb_io_inspect.endrb_io_inspectclosed.15049.annobin_interpret_seek_whence.start.annobin_interpret_seek_whence.endinterpret_seek_whencesym_SETsym_CURsym_ENDsym_DATAsym_HOLE.annobin_rb_update_max_fd.start.annobin_rb_update_max_fd.endmax_file_descriptor.annobin_rb_sysopen.start.annobin_rb_sysopen.endrb_sysopensysopen_func__func__.15893.annobin_rb_maygvl_fd_fix_cloexec.start.annobin_rb_maygvl_fd_fix_cloexec.end.annobin_rb_fd_fix_cloexec.start.annobin_rb_fd_fix_cloexec.end.annobin_rb_cloexec_open.start.annobin_rb_cloexec_open.endo_cloexec_state.14670.annobin_sysopen_func.start.annobin_sysopen_func.end.annobin_linux_get_maxfd.start.annobin_linux_get_maxfd.endlinux_get_maxfd.annobin_rb_cloexec_dup2.start.annobin_rb_cloexec_dup2.endtry_dup3.14679.annobin_rb_cloexec_pipe.start.annobin_rb_cloexec_pipe.endtry_pipe2.14684.annobin_rb_cloexec_fcntl_dupfd.start.annobin_rb_cloexec_fcntl_dupfd.endtry_dupfd_cloexec.14690.annobin_rb_cloexec_dup.start.annobin_rb_cloexec_dup.end.annobin_nogvl_fcntl.start.annobin_nogvl_fcntl.endnogvl_fcntl.annobin_rb_eof_error.start.annobin_rb_eof_error.end.annobin_rb_io_taint_check.start.annobin_rb_io_taint_check.end.annobin_rb_io_check_initialized.start.annobin_rb_io_check_initialized.end.annobin_rb_io_check_closed.start.annobin_rb_io_check_closed.end.annobin_io_unread.start.annobin_io_unread.endio_unread.annobin_rb_io_internal_encoding.start.annobin_rb_io_internal_encoding.endrb_io_internal_encoding.annobin_prepare_getline_args.start.annobin_prepare_getline_args.endprepare_getline_args.annobin_rb_io_set_encoding.start.annobin_rb_io_set_encoding.endrb_io_set_encodingid_set_encoding.annobin_rb_io_set_autoclose.start.annobin_rb_io_set_autoclose.endrb_io_set_autoclose.annobin_rb_io_autoclose_p.start.annobin_rb_io_autoclose_p.endrb_io_autoclose_p.annobin_rb_io_external_encoding.start.annobin_rb_io_external_encoding.endrb_io_external_encoding.annobin_rb_io_pid.start.annobin_rb_io_pid.endrb_io_pid.annobin_rb_io_fcntl.start.annobin_rb_io_fcntl.endrb_io_fcntl__func__.16778.annobin_rb_io_ioctl.start.annobin_rb_io_ioctl.endrb_io_ioctl__func__.16746.annobin_rb_io_sysseek.start.annobin_rb_io_sysseek.endrb_io_sysseek__func__.15691.annobin_rb_io_binmode_p.start.annobin_rb_io_binmode_p.endrb_io_binmode_p.annobin_rb_io_isatty.start.annobin_rb_io_isatty.endrb_io_isatty.annobin_rb_io_fileno.start.annobin_rb_io_fileno.endrb_io_fileno.annobin_rb_io_get_io.start.annobin_rb_io_get_io.end.annobin_rb_io_check_io.start.annobin_rb_io_check_io.end.annobin_argf_internal_encoding.start.annobin_argf_internal_encoding.endargf_internal_encoding.annobin_argf_external_encoding.start.annobin_argf_external_encoding.endargf_external_encoding.annobin_rb_io_s_try_convert.start.annobin_rb_io_s_try_convert.endrb_io_s_try_convert.annobin_rb_io_get_write_io.start.annobin_rb_io_get_write_io.end.annobin_argf_write_io.start.annobin_argf_write_io.endargf_write_io.annobin_rb_io_advise.start.annobin_rb_io_advise.endrb_io_advisesym_normalsym_sequentialsym_randomsym_willneedsym_dontneedsym_noreuse.annobin_rb_io_closed.start.annobin_rb_io_closed.endrb_io_closed.annobin_rb_io_set_close_on_exec.start.annobin_rb_io_set_close_on_exec.endrb_io_set_close_on_exec__func__.15540.annobin_rb_io_close_on_exec_p.start.annobin_rb_io_close_on_exec_p.endrb_io_close_on_exec_p__func__.15530.annobin_rb_io_set_sync.start.annobin_rb_io_set_sync.endrb_io_set_sync.annobin_rb_io_sync.start.annobin_rb_io_sync.endrb_io_sync.annobin_select_call.start.annobin_select_call.end.annobin_rb_io_set_write_io.start.annobin_rb_io_set_write_io.end.annobin_argf_close.start.annobin_argf_close.endargf_closerb_intern_id_cache.16453.annobin_argf_skip.start.annobin_argf_skip.endargf_skip.annobin_rb_io_check_writable.start.annobin_rb_io_check_writable.end.annobin_rb_io_syswrite.start.annobin_rb_io_syswrite.endrb_io_syswrite__func__.15700.annobin_rb_io_read_pending.start.annobin_rb_io_read_pending.end.annobin_rb_io_read_check.start.annobin_rb_io_read_check.end.annobin_rb_io_wait_readable.start.annobin_rb_io_wait_readable.end.annobin_io_fillbuf.start.annobin_io_fillbuf.endio_fillbuf__func__.15008.annobin_fill_cbuf.start.annobin_fill_cbuf.endfill_cbuf.annobin_read_all.start.annobin_read_all.endread_all.annobin_more_char.start.annobin_more_char.endmore_char.annobin_io_getc.start.annobin_io_getc.end.annobin_swallow.constprop.86.start.annobin_swallow.constprop.86.endswallow.constprop.86__func__.15304.annobin_io_bufread.start.annobin_io_bufread.end.annobin_bufread_call.start.annobin_bufread_call.end.annobin_rb_io_wait_writable.start.annobin_rb_io_wait_writable.end.annobin_io_fflush.start.annobin_io_fflush.endio_fflush.annobin_rb_io_check_char_readable.start.annobin_rb_io_check_char_readable.end.annobin_rb_io_check_byte_readable.start.annobin_rb_io_check_byte_readable.end.annobin_rb_io_check_readable.start.annobin_rb_io_check_readable.end.annobin_rb_io_ungetbyte.start.annobin_rb_io_ungetbyte.end.annobin_rb_io_sysread.start.annobin_rb_io_sysread.endrb_io_sysread__func__.15712.annobin_rb_io_each_byte.start.annobin_rb_io_each_byte.endrb_io_each_byte.annobin_rb_io_bytes.start.annobin_rb_io_bytes.endrb_io_bytesrb_intern_id_cache.15433.annobin_rb_io_eof.start.annobin_rb_io_eof.end.annobin_rb_io_getline_1.start.annobin_rb_io_getline_1.endrb_io_getline_1argf.annobin_rb_io_getline.start.annobin_rb_io_getline.endrb_io_getline.annobin_rb_io_gets_m.start.annobin_rb_io_gets_m.endrb_io_gets_m.annobin_rb_io_readline.start.annobin_rb_io_readline.endrb_io_readline.annobin_io_s_foreach.start.annobin_io_s_foreach.end.annobin_rb_io_readlines.start.annobin_rb_io_readlines.endrb_io_readlines.annobin_io_s_readlines.start.annobin_io_s_readlines.end.annobin_rb_io_each_line.start.annobin_rb_io_each_line.endrb_io_each_line.annobin_rb_io_lines.start.annobin_rb_io_lines.endrb_io_linesrb_intern_id_cache.15418.annobin_rb_io_ungetc.start.annobin_rb_io_ungetc.end.annobin_rb_io_getc.start.annobin_rb_io_getc.endrb_io_getc.annobin_rb_io_readchar.start.annobin_rb_io_readchar.endrb_io_readchar.annobin_rb_io_set_lineno.start.annobin_rb_io_set_lineno.endrb_io_set_lineno.annobin_rb_io_lineno.start.annobin_rb_io_lineno.endrb_io_lineno.annobin_rb_io_each_codepoint.start.annobin_rb_io_each_codepoint.endrb_io_each_codepoint.annobin_rb_io_codepoints.start.annobin_rb_io_codepoints.endrb_io_codepointsrb_intern_id_cache.15486.annobin_rb_io_each_char.start.annobin_rb_io_each_char.endrb_io_each_char.annobin_rb_io_chars.start.annobin_rb_io_chars.endrb_io_charsrb_intern_id_cache.15460.annobin_flush_before_seek.start.annobin_flush_before_seek.endflush_before_seek.annobin_rb_io_set_pos.start.annobin_rb_io_set_pos.endrb_io_set_pos__func__.14994.annobin_rb_io_rewind.start.annobin_rb_io_rewind.endrb_io_rewind__func__.15001.annobin_rb_io_seek.start.annobin_rb_io_seek.endrb_io_seek__func__.14976.annobin_rb_io_seek_m.start.annobin_rb_io_seek_m.endrb_io_seek_m.annobin_rb_io_tell.start.annobin_rb_io_tell.endrb_io_tell__func__.14968.annobin_remain_size.start.annobin_remain_size.endremain_size.annobin_io_read.start.annobin_io_read.endio_read.annobin_io_s_read.start.annobin_io_s_read.end.annobin_rb_io_fsync.start.annobin_rb_io_fsync.endrb_io_fsync__func__.15026.annobin_rb_io_fdatasync.start.annobin_rb_io_fdatasync.endrb_io_fdatasync.annobin_io_binwrite.start.annobin_io_binwrite.endio_binwrite.annobin_io_write.start.annobin_io_write.end__func__.14938.annobin_io_write_m.start.annobin_io_write_m.endio_write_m.annobin_io_s_write0.start.annobin_io_s_write0.endio_s_write0.annobin_finish_writeconv.start.annobin_finish_writeconv.endfinish_writeconv.annobin_fptr_finalize_flush.start.annobin_fptr_finalize_flush.endfptr_finalize_flushfinish_writeconv_sync__func__.15598.annobin_rb_io_fptr_cleanup.start.annobin_rb_io_fptr_cleanup.endrb_io_fptr_cleanup.annobin_rb_io_close.start.annobin_rb_io_close.end.annobin_rb_io_close_write.start.annobin_rb_io_close_write.endrb_io_close_write__func__.15680.annobin_rb_io_close_read.start.annobin_rb_io_close_read.endrb_io_close_read__func__.15673.annobin_rb_io_close_m.start.annobin_rb_io_close_m.endrb_io_close_m.annobin_copy_stream_finalize.start.annobin_copy_stream_finalize.end.annobin_finish_writeconv_sync.start.annobin_finish_writeconv_sync.end.annobin_rb_io_bufwrite.start.annobin_rb_io_bufwrite.end.annobin_rb_io_write.start.annobin_rb_io_write.end.annobin_rb_io_addstr.start.annobin_rb_io_addstr.end.annobin_rb_io_printf.start.annobin_rb_io_printf.end.annobin_rb_io_print.start.annobin_rb_io_print.end.annobin_rb_f_print.start.annobin_rb_f_print.endrb_f_print.annobin_rb_io_puts.start.annobin_rb_io_puts.endio_puts_ary.annobin_io_puts_ary.start.annobin_io_puts_ary.end.annobin_rb_f_puts.start.annobin_rb_f_puts.endrb_f_putsrb_intern_id_cache.16271.annobin_argf_write.start.annobin_argf_write.endargf_write.annobin_rb_io_putc.start.annobin_rb_io_putc.endrb_io_putc.annobin_rb_f_putc.start.annobin_rb_f_putc.endrb_f_putcrb_intern_id_cache.16234.annobin_copy_stream_body.start.annobin_copy_stream_body.endrb_intern_id_cache.17109rb_intern_id_cache.17114copy_stream_fallback_body.annobin_copy_stream_fallback_body.start.annobin_copy_stream_fallback_body.endid_readpartialid_read.annobin_rb_obj_display.start.annobin_rb_obj_display.endrb_obj_display.annobin_rb_f_printf.start.annobin_rb_f_printf.endrb_f_printf.annobin_rb_io_flush_raw.start.annobin_rb_io_flush_raw.endid_flush.annobin_rb_io_flush.start.annobin_rb_io_flush.end.annobin_rb_io_getbyte.start.annobin_rb_io_getbyte.end.annobin_io_set_encoding_by_bom.start.annobin_io_set_encoding_by_bom.endio_set_encoding_by_bom.annobin_rb_io_readbyte.start.annobin_rb_io_readbyte.endrb_io_readbyte.annobin_rb_io_bufread.start.annobin_rb_io_bufread.end.annobin_rb_io_set_nonblock.start.annobin_rb_io_set_nonblock.end__func__.15173.annobin_rb_io_gets.start.annobin_rb_io_gets.end.annobin_rb_io_fptr_finalize.start.annobin_rb_io_fptr_finalize.end.annobin_rb_io_memsize.start.annobin_rb_io_memsize.end.annobin_rb_io_binmode.start.annobin_rb_io_binmode.end.annobin_seek_before_access.start.annobin_seek_before_access.endseek_before_access.annobin_rb_io_ascii8bit_binmode.start.annobin_rb_io_ascii8bit_binmode.end.annobin_rb_io_binmode_m.start.annobin_rb_io_binmode_m.endrb_io_binmode_m.annobin_rb_io_modestr_fmode.start.annobin_rb_io_modestr_fmode.end.annobin_rb_io_oflags_fmode.start.annobin_rb_io_oflags_fmode.endCSWTCH.1837.annobin_rb_io_modestr_oflags.start.annobin_rb_io_modestr_oflags.end.annobin_rb_io_s_sysopen.start.annobin_rb_io_s_sysopen.endrb_io_s_sysopen.annobin_rb_io_extract_encoding_option.start.annobin_rb_io_extract_encoding_option.endsym_encodingsym_extencsym_intenc.annobin_rb_io_extract_modeenc.start.annobin_rb_io_extract_modeenc.endrb_io_extract_modeencsym_modesym_perm.annobin_rb_io_reopen.start.annobin_rb_io_reopen.endrb_io_reopen__func__.16186__func__.16169.annobin_rb_fdopen.start.annobin_rb_fdopen.end.annobin_rb_io_synchronized.start.annobin_rb_io_synchronized.end.annobin_rb_io_unbuffered.start.annobin_rb_io_unbuffered.end.annobin_rb_pipe.start.annobin_rb_pipe.end.annobin_rb_io_s_pipe.start.annobin_rb_io_s_pipe.endrb_io_s_pipe.annobin_rb_close_before_exec.start.annobin_rb_close_before_exec.end.annobin_rb_p.start.annobin_rb_p.end.annobin_rb_f_p_internal.start.annobin_rb_f_p_internal.end.annobin_rb_write_error2.start.annobin_rb_write_error2.endorig_stderr.annobin_rb_write_error.start.annobin_rb_write_error.end.annobin_rb_write_error_str.start.annobin_rb_write_error_str.end.annobin_rb_io_stdio_file.start.annobin_rb_io_stdio_file.end.annobin_rb_io_make_open_file.start.annobin_rb_io_make_open_file.end.annobin_rb_file_open_generic.start.annobin_rb_file_open_generic.endrb_file_open_generic.annobin_rb_file_open_internal.start.annobin_rb_file_open_internal.endrb_file_open_internal.annobin_rb_file_open_str.start.annobin_rb_file_open_str.end.annobin_rb_file_open.start.annobin_rb_file_open.end.annobin_rb_open_file.start.annobin_rb_open_file.endrb_open_file.annobin_prep_io.start.annobin_prep_io.endprep_io.annobin_rb_io_fdopen.start.annobin_rb_io_fdopen.end.annobin_argf_next_argv.start.annobin_argf_next_argv.endargf_next_argvorig_stdout.annobin_argf_getline.start.annobin_argf_getline.endargf_getline.annobin_argf_gets.start.annobin_argf_gets.endargf_gets.annobin_rb_f_gets.start.annobin_rb_f_gets.endrb_f_gets.annobin_argf_set_encoding.start.annobin_argf_set_encoding.endargf_set_encoding.annobin_argf_closed.start.annobin_argf_closed.endargf_closed.annobin_argf_close_m.start.annobin_argf_close_m.endargf_close_m.annobin_argf_file.start.annobin_argf_file.endargf_file.annobin_argf_filename.start.annobin_argf_filename.endargf_filename.annobin_argf_filename_getter.start.annobin_argf_filename_getter.endargf_filename_getter.annobin_argf_binmode_m.start.annobin_argf_binmode_m.endargf_binmode_m.annobin_argf_eof.start.annobin_argf_eof.endargf_eof.annobin_argf_set_pos.start.annobin_argf_set_pos.endargf_set_pos.annobin_argf_rewind.start.annobin_argf_rewind.endargf_rewind.annobin_argf_seek_m.start.annobin_argf_seek_m.endargf_seek_m.annobin_argf_tell.start.annobin_argf_tell.endargf_tell.annobin_argf_readchar.start.annobin_argf_readchar.endargf_readcharrb_intern_id_cache.17260.annobin_argf_getbyte.start.annobin_argf_getbyte.endargf_getbyterb_intern_id_cache.17253.annobin_argf_readbyte.start.annobin_argf_readbyte.endargf_readbyte.annobin_argf_getc.start.annobin_argf_getc.endargf_getcrb_intern_id_cache.17246.annobin_argf_readline.start.annobin_argf_readline.endargf_readline.annobin_rb_f_readline.start.annobin_rb_f_readline.endrb_f_readlinerb_intern_id_cache.16521.annobin_argf_readlines.start.annobin_argf_readlines.endargf_readlinesrb_intern_id_cache.16548.annobin_rb_f_readlines.start.annobin_rb_f_readlines.endrb_f_readlinesrb_intern_id_cache.16538.annobin_argf_read.start.annobin_argf_read.endargf_read.annobin_argf_each_codepoint.start.annobin_argf_each_codepoint.endargf_each_codepointrb_intern_id_cache.17327.annobin_argf_codepoints.start.annobin_argf_codepoints.endargf_codepointsrb_intern_id_cache.17335.annobin_argf_each_char.start.annobin_argf_each_char.endargf_each_charrb_intern_id_cache.17314.annobin_argf_chars.start.annobin_argf_chars.endargf_charsrb_intern_id_cache.17322.annobin_argf_each_byte.start.annobin_argf_each_byte.endargf_each_byterb_intern_id_cache.17301.annobin_argf_bytes.start.annobin_argf_bytes.endargf_bytesrb_intern_id_cache.17309.annobin_argf_each_line.start.annobin_argf_each_line.endargf_each_linerb_intern_id_cache.17286.annobin_argf_lines.start.annobin_argf_lines.endargf_linesrb_intern_id_cache.17296.annobin_argf_to_io.start.annobin_argf_to_io.endargf_to_io.annobin_argf_fileno.start.annobin_argf_fileno.endargf_fileno.annobin_prep_stdio.start.annobin_prep_stdio.endprep_stdio.annobin_rb_io_init_copy.start.annobin_rb_io_init_copy.endrb_io_init_copyrb_intern_id_cache.16198.annobin_rb_io_initialize.start.annobin_rb_io_initialize.endrb_io_initializesym_autoclose.annobin_rb_file_initialize.start.annobin_rb_file_initialize.endrb_file_initialize.annobin_rb_io_s_for_fd.start.annobin_rb_io_s_for_fd.endrb_io_s_for_fd.annobin_pipe_open.isra.79.start.annobin_pipe_open.isra.79.endpipe_open.isra.79rb_intern_id_cache.16036.annobin_pipe_open_s.isra.80.start.annobin_pipe_open_s.isra.80.endpipe_open_s.isra.80.annobin_rb_io_open.start.annobin_rb_io_open.endrb_io_open.annobin_open_key_args.start.annobin_open_key_args.endopen_key_argssym_open_args.annobin_io_s_write.start.annobin_io_s_write.end.annobin_rb_io_s_binwrite.start.annobin_rb_io_s_binwrite.endrb_io_s_binwrite.annobin_rb_io_s_write.start.annobin_rb_io_s_write.endrb_io_s_write.annobin_rb_io_s_read.start.annobin_rb_io_s_read.endrb_io_s_read.annobin_rb_io_s_readlines.start.annobin_rb_io_s_readlines.endrb_io_s_readlines.annobin_rb_io_s_foreach.start.annobin_rb_io_s_foreach.endrb_io_s_foreach.annobin_rb_io_s_binread.start.annobin_rb_io_s_binread.endrb_io_s_binread.annobin_rb_f_backquote.start.annobin_rb_f_backquote.endrb_f_backquote.annobin_rb_io_s_popen.start.annobin_rb_io_s_popen.endrb_io_s_popen.annobin_rb_f_open.start.annobin_rb_f_open.endrb_f_openrb_intern_id_cache.16138.annobin_rb_gets.start.annobin_rb_gets.end.annobin_rb_stdio_set_default_encoding.start.annobin_rb_stdio_set_default_encoding.end.annobin_ruby_get_inplace_mode.start.annobin_ruby_get_inplace_mode.end.annobin_ruby_set_inplace_mode.start.annobin_ruby_set_inplace_mode.end.annobin_rb_get_argv.start.annobin_rb_get_argv.end.annobin_rb_readwrite_sys_fail.start.annobin_rb_readwrite_sys_fail.endrb_eEINPROGRESSWaitWritablerb_eEAGAINWaitReadablerb_eEINPROGRESSWaitReadablerb_eEAGAINWaitWritable.annobin_io_getpartial.start.annobin_io_getpartial.endio_getpartialrb_intern_id_cache.15201__func__.15203.annobin_argf_getpartial.start.annobin_argf_getpartial.endargf_getpartial.annobin_argf_read_nonblock.start.annobin_argf_read_nonblock.endargf_read_nonblock.annobin_argf_readpartial.start.annobin_argf_readpartial.endargf_readpartial.annobin_io_readpartial.start.annobin_io_readpartial.endio_readpartial.annobin_io_read_nonblock.start.annobin_io_read_nonblock.endio_read_nonblock.annobin_rb_io_write_nonblock.start.annobin_rb_io_write_nonblock.endrb_io_write_nonblockrb_intern_id_cache.15230__func__.15232.annobin_Init_IO.start.annobin_Init_IO.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC19.LC15.LC17.LC18.LC16.LC13.LC14.LC21.LC30.LC25.LC24.LC32.LC20.LC31.LC29.LC26.LC23.LC22.LC28.LC27.LC33.LC35.LC34.LC36.LC37.LC38.LC39.LC41.LC40.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC51.LC50.LC52.LC53.LC55.LC56.LC58.LC57.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC70.LC69.LC68.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC80.LC79.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC102.LC101.LC103.LC104.LC105.LC106.LC107.LC108.LC111.LC109.LC110.LC112.LC113.LC114.LC115.LC116.LC120.LC117.LC119.LC121.LC118.LC122.LC123.LC124.LC125.LC126.LC127.LC128.LC129.LC130.LC131.LC132.LC133.LC134.LC135.LC136.LC137.LC139.LC138.LC140.LC141.LC142.LC143.LC144.LC145.LC146.LC147.LC148.LC149.LC150.LC151.LC152.LC153.LC154.LC155.LC156.LC157.LC158.LC159.LC160.LC161.LC162.LC163.LC164.LC165.LC166.LC167.LC168.LC169.LC170.LC171.LC172.LC173.LC174.LC175.LC176.LC177.LC178.LC179.LC180.LC181.LC182.LC183.LC184.LC185.LC186.LC187.LC188.LC189.LC190.LC191.LC192.LC193.LC194.LC195.LC196.LC197.LC198.LC199.LC200.LC201.LC202.LC203.LC204.LC205.LC206.LC207.LC208.LC209.LC210.LC211.LC212.LC213.LC214.LC215.LC216.LC217.LC218.LC219.LC220.LC221.LC222.LC223.LC224.LC225.LC226.LC227.LC228.LC229.LC230.LC231.LC232.LC233.LC234.LC235.LC236.LC237.LC238.LC239.LC240.LC241.LC242.LC243.LC244.LC245.LC246.LC247.LC248.LC249.LC250.LC251.LC252.LC253.LC254.LC255.LC256.LC257.LC258.LC259.LC260.LC261.LC262.LC263.LC264.LC265.LC266.LC267.LC268.LC269.LC270.LC271.LC272.LC273.LC274.LC275.LC276.LC277.LC278.LC279.LC280.LC281.LC282.LC283.LC284.LC285.LC286.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE___errno_locationrb_thread_io_blocking_regionwritevmemmoveruby_xmalloc2rb_eIOErrorrb_raise__fxstatrb_sys_fail_path_inrb_str_catrb_enc_associaterb_str_newrb_econv_closeruby_xfreerb_str_new_staticrb_string_valuerb_str_modify_expandrb_str_modifyrb_default_external_encodingrb_enc_dummy_prb_eArgErrorrb_str_new_cstrrb_ascii8bit_encodingstrlenrb_default_internal_encodingrb_newobj_ofrb_enc_getrb_enc_ascgetrb_find_encodingrb_string_value_cstrrb_warnrb_check_string_typerb_str_resizerb_num2longrb_class_new_instancerb_safe_levelruby_strduprb_insecure_operationrb_frame_this_funcrb_funcallv_publicrb_block_given_prb_obj_as_stringrb_block_callrb_yield_values2rb_iter_break_valueruby_xcallocrb_data_typed_object_allocrb_gc_markrb_respond_torb_obj_classrb_id2strrb_eTypeErrorposix_fadviserb_get_kwargsrb_ensurerb_yieldrb_fd_termrb_thread_execute_interruptsrb_check_funcallrb_rescue2rb_intern2rb_attr_getrb_exc_raiserb_exec_async_signal_saferb_execarg_fixuprb_uninterruptiblerb_scan_argsrb_fd_initrb_time_intervalrb_ruby_verbose_ptrrb_securerb_check_safe_objrb_warningrb_int2bigrb_sys_failrb_thread_call_without_gvl2rb_econv_open_optsrb_econv_open_excrb_str_set_lenrb_str_locktmp_ensurestrchrst_locale_insensitive_strncasecmpstrrchr__memcpy_chkrb_enc_find_indexrb_enc_from_index__stack_chk_failrb_econv_prepare_optionsrb_hash_arefrb_obj_init_copyrb_obj_duprb_thread_interruptedrb_thread_call_with_gvlrb_fd_zerorb_fd_setrb_fd_selectlseekrb_id2symrb_enumeratorize_with_sizepreadrb_thread_fd_selectrb_fix2intrb_num2intrb_class_namerb_str_appendrb_str_catfrb_cFalseClassrb_any_to_srb_cFixnumrb_cFloatrb_cTrueClassrb_cNilClassrb_cSymbolrb_update_max_fdrb_bugrb_str_encode_ospathrb_thread_call_without_gvlrb_gcrb_maygvl_fd_fix_cloexecstrerrorrb_fd_fix_cloexecrb_cloexec_openmemchrruby_strtoulrb_cloexec_dup2dup3rb_cloexec_pipepipe2rb_cloexec_fcntl_dupfdrb_cloexec_duprb_eof_errorrb_eEOFErrorrb_io_taint_checkrb_error_frozen_objectrb_io_check_initializedrb_io_check_closedrb_enc_from_encodingrb_rsrb_enc_str_coderangerb_default_rsrb_enc_str_new_staticrb_str_buf_cat_asciirb_funcallvrb_num2ulongrb_io_get_iorb_convert_typerb_io_check_iorb_check_convert_typerb_io_get_write_iorb_sprintfrb_syserr_fail_strrb_eNotImpErrorrb_ary_new_caparb_ary_newrb_ary_pushrb_ary_entryrb_fd_issetrb_check_typerb_io_set_write_iorb_stdinrb_io_check_writablerb_str_new_frozenrb_io_read_pendingrb_io_read_checkrb_thread_wait_fdrb_io_wait_readablerb_thread_check_intsrb_econv_make_exceptionrb_econv_convertrb_econv_putbackablerb_econv_putbackrb_econv_check_errorrb_str_coderange_scan_restartablerb_enc_precise_mbclenrb_enc_str_newrb_enc_mbclenrb_io_wait_writablerb_thread_fd_writablerb_mutex_owned_prb_mutex_synchronizerb_io_check_char_readablerb_io_check_byte_readablerb_io_check_readablerb_io_ungetbyterb_str_locktmprb_str_unlocktmprb_enumeratorizerb_io_eofrb_str_buf_newonigenc_get_left_adjust_char_headmemcmprb_eRuntimeErrorrb_usascii_str_newrb_str_encoderb_freeze_singleton_classrb_lastline_setrb_io_ungetcrb_fix2uintrb_enc_uint_chrrb_num2uintrb_enc_codepoint_lenrb_mutex_newrb_mutex_allow_traprb_econv_str_convertrb_econv_asciicompat_encodingrb_funcallrb_exc_new_strrb_io_closerb_notify_fd_closerb_thread_schedulerb_last_status_clearrb_syswaitshutdownrb_io_bufwriterb_io_writerb_io_addstrrb_io_printfrb_f_sprintfrb_io_printrb_output_fsrb_output_rsrb_lastline_getrb_stdoutrb_io_putsrb_exec_recursiverb_enc_get_indexrb_check_array_typerb_str_substrrb_thread_currentrb_get_pathrb_cFilerb_io_flush_rawrb_io_flushrb_io_getbyterb_io_bufreadrb_io_set_nonblockrb_io_getsrb_io_fptr_finalizerb_io_memsizerb_econv_memsizerb_io_binmoderb_econv_binmoderb_io_ascii8bit_binmoderb_io_modestr_fmoderb_io_oflags_fmoderb_io_modestr_oflagsrb_check_to_integerrb_io_extract_encoding_optionrb_hash_lookup2rb_to_encodingrb_to_encoding_indexfreopenrb_syserr_fail_path_inrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalsetvbufrb_fdopenrb_io_synchronizedrb_io_unbufferedrb_piperb_protectrb_assoc_newrb_jump_tagrb_close_before_execrb_hash_lookuprb_prb_inspectrb_method_basic_definition_prb_ary_new_from_valuesrb_write_error2rb_stderrrb_write_errorrb_write_error_strrb_io_stdio_filerb_io_make_open_fileruby_xmallocrb_file_open_strrb_file_openrb_obj_freezerb_io_fdopenrb_cIOrb_ary_shiftrb_str_duprb_str_cat_cstrrenamefchmodfchowngetuidunlinkrb_ary_concatrb_ivar_setrb_reserved_fd_prb_eSystemCallErrorrb_obj_allocrb_sys_fail_strrb_execarg_getrb_execarg_addoptrb_fork_async_signal_saferb_fork_rubyrb_thread_atforkrb_execarg_newrb_ary_tmp_newrb_ary_clearrb_hash_duprb_hash_asetrb_hash_newrb_gc_force_recyclerb_execarg_extract_optionsrb_execarg_setenvrb_check_hash_type_exitrb_error_arityrb_getsrb_stdio_set_default_encodingruby_get_inplace_moderuby_set_inplace_moderb_get_argvrb_readwrite_sys_failrb_mWaitReadablerb_mod_sys_fail_strrb_mWaitWritableInit_IOrb_eStandardErrorrb_define_classrb_define_global_functionrb_mKernelrb_define_methodrb_cObjectrb_mEnumerablerb_include_modulerb_define_module_underrb_eEAGAINrb_define_class_underrb_define_constrb_eEINPROGRESSrb_define_alloc_funcrb_define_singleton_methodrb_str_setterrb_define_hooked_variablerb_usascii_str_new_staticrb_gc_register_mark_objectrb_define_virtual_variablerb_define_aliasrb_define_variablerb_deferrrb_define_global_constrb_class_newrb_set_class_pathrb_define_readonly_variablerb_gvar_readonly_setterInit_File�T��������"U��������V��������cV���������V��������X���������Y��������X��������L*Z��������S��������][���������\����������D�]��������!_��������``���������X���������a��������!b��������=c��������fb���������c������������������e��������5d��������o`���������h���������`��������Hi��������W*j��������^��������h[��������uh���������h��������		l��������+	m��������Q	b��������m	b���������	n���������	o��������*
n���������
h���������
n���������
p��������q��������Nr��������as���������a��������t��������6u��������= ��������Gv���������w��������
g���������
g��������Wx���������{��������c��������=e��������Oc��������r|���������}���������~��������1���������T���������[!��������hv��������������������������������������x����������������������������������������������������������
����������-���������8���������C���������P"��������Z*���������d[�����������������������������������������������������,���������fz��������n����������*�����������������������������������������������������������<���������1*Z��������R���������h#��������m���������w<�,�����������$�������������������,�4����������4����������%�������������������4��������������������&��������-���������L���������U���������^���������g�������������������������������������������������/e��������9���������Cg��������Ku��������ew�������������������y���������y�������������������'������������������1���������}���������������������������������������"���������4���������J���������Q*j��������X(��������b[��������i*j��������p)��������z[���������*j���������*���������[���������+���������,���������-���������.��������/��������0��������<1��������M/��������T2��������|3���������4���������-���������*j���������5���������[���������6���������0���������7���������8���������,��������9��������:��������*+��������1;��������C<��������Z.��������a=�������������������U�����������������SY��������s>�����������������������������g��������H���������g�l]�������������������������������o�������� ���������W ��������`v����������������������������
���������$���������D���������|o������������������� ���������v������������������ ���������@ w��������Q r��������� w��������+!����������!r���������!i��������o"dt"����������"\�"����������"*j��������#?��������#[��������#*j��������#@��������$#[��������+#*j��������2#?��������<#[��������C#*j��������J#A��������T#[��������[#*j��������b#?��������l#[���������#����������#����������#|��������$B��������E$����������$����������$����������$y��������!%���������1%y��������K%U��������r%����������%����������%����������%����������%����������%���������&C��������&U��������R&\���������&D���������&U���������&\���������&���������('U��������H'E��������c'����������'U���������'����������'F��������(�T(*Z��������([��������%(~��������-(����������(����������(U���������(G���������(H��������!)���������E)���������P)���������g)���������s)H���������)^���������)V���������)C��������+T��������A+U���������+I���������+U��������,���������_,F��������t,����������,����������,����������,���������	-���������@-J��������E-d���������-����������-����������-K���������-_���������-L���������-����������-M��������.*���������$.���������9.��A._��������h.��p._���������.*����������.*����������.*����������.*����������.*����������.L�.D�.<�.4�.,/���������)/���������V/u/\��������~/U���������/�/�/�/N���������/����������/���������	0���������0U��������&0��+0]��������60���������Q0���������i0���������w0����������0����������0����������0U���������0����������0O���������0����������0U���������0���������1P��������1���������(1���������S1���������e1p1����������1����������1����������1�1U���������1����������1Q���������1���������2���������>2R��������V2���������s2^���������2����������2����������2m���������2m��������"3���������H3V3���������d3���������~3����������3U���������3�3����������3�3����������3U��������4��������4���������!4���������/4���������74���������V4��������q4����������4����������4����������4U���������4����������4��������(5���������;5���������Y5S��������d5*���������n5[���������5����������5*Z���������5T���������5[���������5���������6���������96U��������W6����������6����������6����������6h���������6*���������(7���������47���������>7r��������a7���������x7*����������7����������7U���������7����������7V���������7���������
8e��������!8y��������Y8w���������8i���������8h���������8*j���������8W��������
9[��������;9�E9���������d9X��������i9���������q9���������}9����������9����������9���������
:���������6:���������B:���������n:h���������:����������:����������:Y���������:���������;���������
;���������';���������3;���������V;V���������;����������;����������;���;]��������<*j��������<Z��������<[��������/<Y��������C<���������h<����������<����������<����������<V���������<���������4=��9=]��������@=*j��������G=Z��������Q=[��������u=Y���������=����������=����������=����������=U���������=���������*>[��������1>v��������D>���������g>�tl>]��������t>y���������>*Z���������>[���������>[���������>����������>����������>����������>����������>���������?���������7?\��������>?]��������W?\��������^?]���������?����������?h���������?����������?h��������-@���������n@*Z��������u@^��������@[���������@_���������@����������@$�@AAAA�7A���������?A���������KA����������A$�A�A�A�A�A��Ay���������Ay��������B$B���������=BV��������OB`��������_B���������jB����������B*����������Ba���������B[���������B*����������Bb���������B[���������B���������C���������`C���������mC���������yC����������C����������C����������C����������C����������C�D]��������D���������ED���������YD�^D]��������~D����������D����������D����������D����������D����������D����������D���������E��E]��������%E��*E]��������>E���������FE���������RE����������E����������E����������E���������]F����������F����������F����������F����������F����������F����������F����������F���������3G���������>G���������FG���������RG���������_G���������pG���������G����������G���������H���������H���������H���������"H���������/H����������H����������H����������H����������H����������H����������H����������H���������I���������I���������YI���������qI����������I����������I����������I����������I����������I���������J����������J����������J����������J����������J����������J����������J���������K���������K���������(K���������|K����������K����������K����������K����������K����������K���������#L���������.L���������AL���������LL���������^L���������mL����������L����������L����������L*��������M�M��������MM��������`M$��������eM���������oM��M����������M*Z���������M^���������M[��������7N���������DN���������LN���������XN���������`N��������jN���������NV���������Nc��������Ov��������O�TO]��������lOU���������O���������O���������O��������PV��������jPY���������P����������Pd���������P����������P����������P�DQ]���������Q	��������
R
��������7R��������_R���������R���������S
��������(S
��������cSX��������(T����������T���������U��������*Uf��������=U���������hU���������yU����������Uh���������U����������U���������#V����������V��������W���������W���������Wa��������Xh��������LX���������Xi���������Xa��������Y��������1Y_��������YYi���������Ya���������Ya���������Y*Z���������Ye���������Y[���������Zs��������[s���������[���������\�
\]��������1\h��������>\����������\���������]��������.]V���������]U���������]���������]��������^���������;^���������Q^��������j^��������v^����������^V���������^���������^����������^���������_���������_���������1_*Z��������8_f��������B_[��������Y_��������l_*Z��������s_g��������}_[���������_����������_����������_���������_e���������_���������	`���������`a��������?`Y��������T`����������`����������`����������`���������`���������`����������`���������`*��������a���������|ay���������a����������a*Z���������ah���������a[���������a�d�a]���������a����������a����������a���������b��������Wb���������\bU��������tb����������b~���������b����������bi���������bv���������b����������bd�b���������cj��������
c���������cd&c���������2c���������:c��������\c����������c����������c����������c���������c*����������d_��������e���������6ea��������e��e���������'fh��������hfi���������f���������%gx��������rg����������g���������g���������Rh��������ph���������h_��������i��������>i ���������ia��������=j*!��������Djk��������Nj[���������jh��������kl��������
k"��������k���������)k#���������k$���������k�]li��������lll���������lh���������lh��������)m���������cmx���������m���������m���������na��������qn%���������n%���������n����������n����������n%��������&o���������7o���������_o*j��������fom��������po[���������o����������o���������p~��������p���������,p���������Bp*j��������Ipn��������Sp[��������upo��������zpv��������p����������p\�p����������pp���������p����������p\q���������q���������q��������Dq'��������Nq(���������qX��������&re��������0r���������tr*Z��������{rq���������r[���������rX���������rh���������r)���������r(��������sh��������+s���������7s���������?s��������rsh���������s����������s����������s����������s����������s���������s����������s���������t���������"t���������*t��������ft���������vt����������t����������t���������t��������]u����������u����������u*���������u~��������v���������v���������iv���������v*���������v���������w��������*w*��������6w���������@wh��������Sw*j��������^wr��������hw[��������ow*Z��������vwe���������w[���������w����������ws���������wv���������w����������wt�w����������wt���������w����������wtx���������x���������$x���������,x��������Dx���������Tx����������xh���������xu���������xv���������x����������xl�x����������xv���������x���������yl&yU��������8y���������[y���������gy���������lyU���������y����������y���y]���������yy���������y���������z���������
zU��������*z���������6z�z���z]���������z����������z����������zU���������z���������{��{]��������${y��������={Y��������N{����������{����������{����������{����������{U���������{���{]��������,|\��������w|����������|����������|w���������|����������|���������}���������}���������}����������}y���������}����������}����������}��������~*j��������!~x��������+~[��������V~���������^~���������j~����������~V���������~����������~�t�~]���������~����������~����������~����������~V�����������������>������������������U���������������������������3�Y��������<�+��������P�,����������X���������Y��������
�+���������,��������T�X�����������������������������������������ρ���������ہ��������������������n��������.����������X�-����������$�����������������z�n����������.��������ȃk�������������������4�#��������c����>��������DŽ����������r���������r���������i��������'�r��������.�y��������9�*j��������C�[����������n����������>��������Ʌk������������]������������������
�����������>������������������%����������͆
����������
��������	�V��������*���������K����������������������U����������	��������׈�T܈k���������*Z���������0���������������������l��������lj���������U���������������������U��������ˊ���������ڊ��ߊ]������������������(�U��������I�U��������Y�U��������d�����������������������m���������c����������c������������������H�2����������3����������2����������3����������2����������4����������5���������������������������������������&�1��������<����������H����������i�6����������*Z����������z����������[�����������\��]��������ҍ���������ލ�����������6��������,����������T����������`������������*Z����������{����������[�����������,Ŏ]��������ݎ����������1������������������@����������H�1��������\����������d�1��������m�*���������t�|��������~�[����������U������������������������������ˏ���������ӏ��������������������)�8��������I�;��������T�8����������*=����������8����������8��������*>���������8���������?��������+�*@��������3�<��������������������s��������4�B��������B����������P�8��������{�*�����������8��������Ò*���������Β8��������ؒC���������D��������I�A����������}����������d����������A��������ɓ*@����������~��������
����������"��������������a����������8�������������������۔E����������*@���������'����������@���������E����������R���F�����������ʕLؕ������������D)����������X�G��������|�*H����������z����������������������������������������
��������������������0������������G����������*H����������z��������Η���������ڗ��������������������,�*���������G��������������������˘x��������X����������]����������l�Lq���������������������ș���������͙���������ܙD,�*j��������3����������=�[��������y�8����������*Z���������������������[�������������������ۚ����������5�x��������{�x����������8������������/����������4�y��������Q����������`��n������������*@����������8�������������������ǜ�����������;���������8��������&�*@��������`��w��������������������������������՝������������������������������
���������k�*@��������������������������������J�������������������ޞK���������K��������1���������<���������D����������P����������z�K����������K������������������ğK������������������K���������K��������6���������D�K��������Y�K��������x������������������������������������������������������������������������������������	��������������������%����������2�K��������O���������b����������n����������������������������������K�������������������ϡ���������ۡ����������������������������8����������H��,M�]��������g�*�����������c��������Ǣc��������ߢc��������D�Q��������X�Q��������~�����������������������S����������S��������ܣR�������������������
����������)�T��������1����������>�T��������x�*j���������������������[��������S��$��U����������_��������٥����������G���������)�����������������K����������P�X��������b����������q������������e���������������������u����������W���������t�Z������������Z��������
�|�Z��������?����������Z�[����������w����������u����������[���������\����������������������������������������v��������D�w��������]�u����������Z��������������������[������������������$�\��������3����������;����������Z�[��������,��4����������a����������f�X���������������������V�����������������������Y��������'�����������������������e���������������������u��������ȫU������������������6�n����������*j�������������������¬[��������Ѭn��������߬*j�������������������[����������*j��������������������[��������%�X��������D����������\�G��������i����������٭��������+�]��������<�^��������F����������M�*_��������`�*`������������������������������î���������Ϯ���������׮��������������������*a���������*`�������� �*_��������g�*j��������q����������{�[���������������������m���������U���������m����������D�b��������3������������l��������ݰ���������������������2�������� ����������F�c��������z�d�������������������ݱe��������������������v������������������ �e��������@����������[����������k������������R��������Ӳ����������U������������������G����������g��4l�]��������w��D|�]�����������4��]����������g����������U��������ҳ��������������������g��������	����������>����������Q����������Y����������q�U�����������������������������������������Ŵ���������ϴj���������k��������(����������4����������k�k����������k�������������������ĵ���������̵h���������l��������������������*���������9����������G�m��������U�1��������^�m��������g�m��������x�m����������m����������m����������m�����������������������o������������������+����������[�q��������c����������j�*@����������8����������*��������������r���������*���������8�p��������Y�s��������c�*@����������J����������*u�����������ָ*_���������a���������o��������<�*u��������P��g�*_����������v����������8����������f������������������-�1��������6�O��������H�{��������z�z������������������������������U��������������������n��������ݼG���������*H����������q��������.�k��������=�*H��������E�q��������|�����������������������G����������)��������J�q��������]�z��������p������������k����������~���������������������*���������ؾ����������*H����������V��������'�*@�������������������u��������,����������8�u���������*@����������\��������������������������������������1�\��������=����������c����������p������������U��������������������������������v����������m���������m�������������������*��������6����������=�v��������L����������Y�U��������`����������l����������v�v��������~�m����������*���������������������d���������������������v�������������*@�����������1��������3�*H��������Q�*@������������������������������������������U�����������������������������v��������!�m��������A�T��������Y����������e������������*H����������R��������G�*���������N�*�����������*�������������������N��������1�%��������G��x�%��������������������������������*j�������������������	�[��������(�*���������*��������A�T����������*��������������������*��������K�*j��������R����������\�[��������|�*����������*j���������������������[����������*��������D�*j��������K����������U�[��������|�*����������*j���������������������[�����������������������������M��_����������i������������������������������������/����������9��a�K����������*������������������������������#��1���������l�*������������������������*��������+�%��������R����������o��~��������������������������������������Q�*��������{������������������������������������������������?��N�x����������}�����������������w��������������������e��������#�x��������K�*�������������������D�y��������X�t��������e����������������������������������������v���������������������������������#�t��������-����������7��H�v��������U����������{�����������������������������v����������������������������������v������������������'��8�j��������E����������k��}��������������������������v����������������������������������j��������
������������)�p��������>����������l��~���������������~��������������������������������v��������������������������������;�p��������E����������O��t�*����������*�������������������*j��������!����������+�[��������F�^��������f����������r��������������������������������������������������������z����������J��������2����������>�U��������T����������a����������i����������x���������������������������������������������T�������������U�������������������R��������"����������@����������E����������O�Tp�X����������������������������������������������������������������V��������4�z��������e����������p�*a��������y�^���������������������*`����������^����������*_����������^���������T����������<�*j��������C����������M�[��������T����������[�*���������v�z��������~��������������������������������������������*!��������	�����������[��������1�������������������������������*�j��������J����������h�k���������������������m����������*�����������q����������z��������v�����������������������m�������������h�������������h����������j���������j��������+����������B�j��������j����������{�*�����������q����������z����������$�������������m���������U��������'�m��������0�m��������M����������]�m��������k�m��������������������������������$��m����������m����������m���������������������m����������m��������������������m�������������������m��������,�m��������9�m��������F�m��������S�m��������\�m��������a����������f�U��������t�m��������}�m�������������������J�)����������*H����������q���������G��������4�l<����������M����������T����������a���������������������������������������������*H����������q�������������������{�*j���������������������[���������������������������������������������������������������������k����������*1��������������������������������1����������m��������=����������Y������������k����������*1��������������������1��������	�m��������!����������7����������b�*1��������t���������������������������������������������*1��������������������~������������������,����������M�_��������c����������p�G��������|������������d����������*1�������������������'�e��������1����������6�4��������X����������d������������1����������O���������������������d��������'�D��������d������������������������������������������<����������^����������������������������������*@����������J����������*u����������J���������������������e�����������������������������C�*���������U����������o�c����������d���������������������*j���������������������[����������������������������(����������0����������a�G����������*������������������������������������������������������*H���������*�������������������7�*���������>�*���������E��c��p�N��������}����1�������������%������������%��������A�*��������a�*@��������x�*u����������������c������������|��������'��R�U��������f�k����������*��������������������������������������������*�������������������������z������������������������z�����������������������z��������������������,�z��������4����������W�X��������s������������������������������������������H�M��������]���������������������y��������1�U��������M��W����������������������������������������������������]����������*j����������x����������[�������������������������������Y��������-����������<�e��������c�*����������*���������������������d��������`�x��������e����������������������X������������������U����������r�����������������������������������������������������������������������M���������T��������i�U��������z�|�����������������������������������|���������������]����������������������������������������*��������������������*Z����������������������������$�*���������0�I��������8����������D�G��������K��P����������\����������c��h����������t����������y������������������������������������������������������������������������������������������������������������������������������������������������#���������(����������;�~��������@����������S����������X����������k����������p������������C������������������������������������������������������������������������������������*�������������������������������*����������]��������	�����������*����������*���������%����������/����������4����������;�*���������E����������N����������U�*���������_����������f�*���������r������������������������������������������������������������������������������������������������������������*��������������������������������������������������������������"��'����������6����������L����������Q����������g����������l��������������������������������������������������������������������������������������������������������������������	�G������������������$����������)����������?�I��������D����������Z����������_����������u�C��������z�����������������������������������������������������������������������������������������������*�����������*=������������������������������U������������������$�*���������+�*���������:����������A�*>������������������������������������������������������*>�������������������������������*%���������*?����������������������������������������������������������������������*<��������&����������+����������A���������F����������P�*A��������\�~��������a����������k�*:��������w����������|����������������������������������p��������������������j�������������������v��������������������t���������������������������������������(����������-����������@����������E����������X����������]����������s����������x����������������������������������������������������������������������������������������\�����������������������������������������������	������������������!���������7���������<���������O���������T���������j���������o������������������������������������������������������������������������������������������G������������������I�����������������'���������,���������B���������G���������Z���������_���������k*K��������r���������w��������������������������������������������������*�����������������������������*&�����������������������������*9����������������������������*J��������������������������#���������(���������>���������C���������R���������W���������f���������k���������z�����������������������������������������������������������������������������������������������������������������������*�����������������
������������������!���������4���������9���������O���������T���������g$��������l���������#����������������������������������������������������������������������������������������������������������������������������������*��������/���������E��������J���������`��������e���������{	�������������������
���������������������������������������������������������
�������������������������������������������������������)��������.���������5*��������<��������D���������K*a��������U��������i*@��������y�������������������*`������������������*u����������������������������*_������������������������������������
����������&���������+���������6��������;���������F��������K���������T���������_��������j���������y����������������������������������������������������������������������������������������������������������������������������������������������+���������0���������C\��������H���������[��������`���������v���������{����������p�������������������j�������������������v�������������������t��������������������������������������������������������$���������)���������<���������A���������WG��������\���������r���������w������������������������������������������������������������������������������������������������������������	���������	���������)	���������.	���������A	���������F	���������Y	���������^	���������q	���������v	����������	����������	����������	����������	����������	����������	����������	����������	����������	����������	���������
���������
���������
��������$
���������7
��������<
���������R
I��������W
���������^
*<��������m
���������r
����������
���������
����������
*A���������
~���������
����������
*:���������
����������
����������
���������
����������
 ���������
���������!�����������������"��������#���������6$��������;���������N#��������S���������f���������k������������������������������#�������������������$��������������������������������������
�������������������������������������z���������%��������%�*���������1�8��������=���������R�Y&��������^���������e*���������s�z'�������������������������������d�����������(���������������������)�����������������������������*H������������������
���������
*��������
��������� 
���������,
+��������3
�8
���������@
���������L
��������S
�X
���������`
���������l

��������s
�x
����������
����������
,���������
|�
����������
����������
-���������
t�
����������
����������
.���������
l�
����������
����������
���������
d�
������������������/��������\��������� ���������,0��������3T8���������@���������L1��������S$X���������`���������l2��������sx��������������������3������������������������������4������������������������������5������������������������������6�����������������������������7��������L��������� ���������,8��������3D8���������@���������L9��������S<X���������`���������l:��������s4x��������������������,�$���������T���������T���������W���������X���������^���������c���������d��������	f��������&g��������Jf���������k���������k���������y���������z�����������������Fz������������������V���������������������������������������@(����������-_��������U.���������01���������
5����������6����������6���������`:���������H?���������h?����������?����������?���������@���������f@���������TO���������_���������b����������b���������p���������w���������x���������y���������
|�����������/����������1��������L�1������������������)����������:�A��������U�8��������i�/��������%�h����������8���������v����������8��������%�t��������^��������������������������������c���������������������������������������������������������������������� ��$,PXR��R�R�r�R�rr�DrL�p�x�����������0�8�d�l����T���T�T�~$T,~P~X��~������������D�L�p�x�����������0�8:d�l:�:�a�:�a�a��$a,�P�X�����������		ND	L	Np	Nx	��	N�	��	��	�
�
�0
�8
�d
�l
��
��
N�
��
N�
N�
�$N,�P�X���������������D�L�p�x	���	�	�6	
	
6	0
6	8
�	d
6	l
�	�
�	�
�	�
�	�
�	�
�	�
�
$�	,�
P�
X��
�����TDLTpTx��T��������0�8�d�l�������������$�,�P�X�����n��nn�DnL�p�x��������S�S0S8�dSl������������h$�,hPhX��h������������D�L�p�x�����77078Zd7lZ�Z���Z������$�,�P�X��������}���}}�D}L�p�x�����������0�8�d�l�������������$�,�P�X~���~�~��~�jDLjpjx��j��������0�8�d�l����p���p�p��$p,�P�X ��� � �"� �""F"D"LF"pF"xp#�F"�p#�p#��#p#�#0�#8=%d�#l=%�=%��%�=%��%��%�'&$ �%, '&P '&X �'� '&� �'� �'� (� �'� (!(!D(D!(L!D(p!D(x!\(�!D(�!\(�!\(�!�)"\("�)0"�)8"x,d"�)l"x,�"x,�"�,�"x,�"�,�"�,�"�,$#�,,#�,P#�,X#-�#�,�#-�#-�#�.�#-�#�.$�.$F/D$�.L$F/p$F/x$�/�$F/�$�/�$�/�$}0%�/%}00%}08%1d%}0l%1�%1�%41�%1�%41�%41�%�1$&41,&�1P&�1X&2�&�1�&2�&2�&&3�&2�&&3'&3'�3D'&3L'�3p'�3x'D4�'�3�'D4�'D4�'�4(D4(�40(�48(5d(�4l(5�(5�(F5�(5�(F5�(F5�(r5$)F5,)r5P)r5X)�5�)r5�)�5�)�5�)�5�)�5�)�5*�5*6D*�5L*6p*6x*�6�*6�*�6�*�6�*�6+�6+�60+�68+9d+�6l+9�+9�+�9�+9�+�9�+�9�+:$,�9,,:P,:X,$:�,:�,$:�,$:�,�:�,$:�,�:-�:-�:D-�:L-�:p-�:x-<�-�:�-<�-<�-U=.<.U=0.U=8.�>d.U=l.�>�.�>�.�>�.�>�.�>�.�>�.?$/�>,/?P/?X/,?�/?�/,?�/,?�/L?�/,?�/L?0L?0l?D0L?L0l?p0l?x0�?�0l?�0�?�0�?�0@1�?1@01@81@d1@l1@�1@�1E@�1@�1E@�1E@�1�@$2E@,2�@P2�@X2�B�2�@�2�B�2�B�27C�2�B�27C37C3bDD37CL3bDp3bDx3.E�3bD�3.E�3.E�3�E4.E4�E04�E84�Ed4�El4�E�4�E�4qL�4�E�4qL�4qL�4�L$5qL,5�LP5�LX5uM�5�L�5uM�5uM�5�M�5uM�5�M6�M6ND6�ML6Np6Nx6 O�6N�6 O�6 O�67O7 O77O077O87XOd77Ol7XO�7XO�7�O�7XO�7�O�7�O�7Q$8�O,8QP8QX8�S�8Q�8�S�8�S�8�U�8�S�8�U9�U9'VD9�UL9'Vp9'Vx9�Y�9'V�9�Y�9�Y�9B\:�Y:B\0:B\8:�]d:B\l:�]�:�]�:�]�:�]�:�]�:�]�:^$;�],;^P;^X;�^�;^�;�^�;�^�;F_�;�^�;F_<F_<�_D<F_L<�_p<�_x<�_�<�_�<�_�<�_�<*`=�_=*`0=*`8=�ad=*`l=�a�=�a�=�b�=�a�=�b�=�b�=c$>�b,>cP>cX>sc�>c�>sc�>sc�>!n�>sc�>!n?!n?_nD?!nL?_np?_nx?zn�?_n�?zn�?zn�?�n@zn@�n0@�n8@�nd@�nl@�n�@�n�@to�@�n�@to�@to�@�o$Ato,A�oPA�oXAWp�A�o�AWp�AWp�A�p�AWp�A�pB�pBsDB�pLBspBsxB�s�Bs�B�s�B�s�B�sC�sC�s0C�s8CtdC�slCt�Ct�C9t�Ct�C9t�C9t�C�w$D9t,D�wPD�wXD�w�D�w�D�w�D�w�D�x�D�w�D�xE�xE
yDE�xLE
ypE
yxE<y�E
y�E<y�E<y�E�yF<yF�y0F�y8F�zdF�ylF�z�F�z�F0{�F�z�F0{�F0{�F~{$G0{,G~{PG~{XG|�G~{�G|�G|�G�|�G|�G�|H�|H/~DH�|LH/~pH/~xHC~�H/~�HC~�HC~�H�~IC~I�~0I�~8IdI�~lI�I�Ie��I�Ie��Ie��I)�$Je�,J)�PJ)�XJ;��J)��J;��J;��JS��J;��JS�KS�K��DKS�LK��pK��xK���K���K���K���K�L��L�0L�8L֌dL�lL֌�L֌�L���L֌�L���L���LɎ$M��,MɎPMɎXM��MɎ�M��M��M���M��M��N��N��DN��LN��pN��xN��N���N��N��N�O�O�0O�8O2�dO�lO2��O2��O_��O2��O_��O_��O�$P_�,P�PP�XPA��P��PA��PA��P��PA��P�Q�Q��DQ�LQ��pQ��xQ>��Q���Q>��Q>��QY�R>�RY�0RY�8R�dRY�lR��R��Rn��R��Rn��Rn��R��$Sn�,S��PS��XSr��S���Sr��Sr��SҜ�Sr��SҜTҜT6�DTҜLT6�pT6�xTٝ�T6��Tٝ�Tٝ�T�UٝU�0U�8UʞdU�lUʞ�Uʞ�U���Uʞ�U���U���U��$V��,V��PV��XV���V���V���V���VQ��V���VQ�WQ�W}�DWQ�LW}�pW}�xW��W}��W��W��Wi�X�Xi�0Xi�8XУdXi�lXУ�XУ�X��XУ�X��X��X �$Y�,Y �PY �XYG��Y ��YG��YG��Y2��YG��Y2�Z2�Z��DZ2�LZ��pZ��xZ���Z���Z���Z���Z��[��[��0[��8[h�d[��l[h��[h��[��[h��[��[��[��$\�,\��P\��X\���\���\���\���\��\���\�]�])�D]�L])�p])�x]���])��]���]���]��^��^��0^��8^C�d^��l^C��^C��^���^C��^���^���^��$_��,_��P_��X_��_���_��_��_)��_��_)�`)�`ùD`)�L`ùp`ùx`��`ù�`��`��`1�a�a1�0a1�8a�da1�la��a��a���a��a���a���a�$b��,b�Pb�Xbe��b��be��be��b$��be��b$�c$�c��Dc$�Lc��pc��xc��c���c��c��c�d�d�0d�8d �dd�ld ��d ��d:��d ��d:��d:��d��$e:�,e��Pe��Xe
��e���e
��e
��e^��e
��e^�f^�f��Df^�Lf��pf��xf���f���f���f���f��g��g��0g��8g��dg��lg���g���gJ��g���gJ��gJ��g��$hJ�,h��Ph��Xh`��h���h`��h`��h���h`��h��i��iY�Di��LiY�piY�xi���iY��i���i���i��j��j��0j��8jj�dj��ljj��jj��j���jj��j���j���j��$k��,k��Pk��XkV��k���kV��kV��k���kV��k��l��l&�Dl��Ll&�pl&�xl���l&��l���l���lP�m��mP�0mP�8m��dmP�lm���m���m=��m���m=��m=��m��$n=�,n��Pn��Xn-��n���n-��n-��n���n-��n��o��o�Do��Lo�po�xo���o��o���o���oU�p��pU�0pU�8p��dpU�lp���p���p/��p���p/��p/��p��$q/�,q��Pq��XqU��q���qU��qU��q���qU��q��r��r�Dr��Lr�pr�xrM��r��rM��rM��r��sM�s��0s��8s��ds��ls���s���s���s���s���s���s��$t��,t��Pt��Xt��t���t��t��t��t��t�u�u+�Du�Lu+�pu+�xu
��u+��u
��u
��u�v
�v�0v�8v;�dv�lv;��v;��v��v;��v��v��v��$w�,w��Pw��Xw���w���w���w���w(��w���w(�x(�x!�Dx(�Lx!�px!�xx���x!��x���x���x��y��y��0y��8y�dy��ly��y��y4��y��y4��y4��y8�$z4�,z8�Pz8�Xz���z8��z���z���zi��z���zi�{i�{~�D{i�L{~�p{~�x{���{~��{���{���{��|��|��0|��8|Y�d|��l|Y��|Y��|��|Y��|��|��|�$}�,}� 	   G�x��� (B���	 4H`\�p��������`��� �T�t����@�p��XtP������P �d�x��	� 	�@	��	�
Tl ��`4�H�������� p �L``�����p���(@ X@l`���������(�<�T�l�� 	�8	 P	pp	��	��	�
p4
��
 �
 "�
P"p#4$t@%��%�0&((D (`P(t`(�*
�,4
�,P
�,p
 -�
�.�
P/�
�/$�0P 1l@1��1� 2�03$�3XP4�5�5�P5��5�5�506h�6��6�9�9L:h0:��:��:� <`=\�>x�>�?�0?�P?�p?��?@, @HP@\�@��B�@C�pD40Eh�E��E��L�L,�MD�MhN� O�@O�`O��O,Qx�S�V�0V\Z�P\(�]D�]l^��^�P_��_��_0`D�a|�b� c��c0n0`nL�nh�n�o��o��o`pL�p� s��s��s�t@td�w�x��x�y@y8�yh�z�0{��{�|(�||0~�P~��~� Lp��0��@��`�( �t ��� �� �!��d!Ў�!��!���!���!�" � "@�<"`��" ��"P��"�<#���#@��#`��#��#p�@$���$���$��$@��$�%�H%О�%���%���%��%`�&��4&�\&p��&У�&��& ��&P�'@�'��4'��h'���'p�4(��(���(��( ��(0�)��L)���)P��)��)��*�4*0�`*й|*��*@��*� +��H+ �p+p��+0��+��$,�p, ��, ��,@��,��$-�D-`�`-��|-���-���-���-P��-��(.`�L.���.`��.���.��/p�(/��\/���/`��/��$00�d0���0P��0��1@�41��X10��1���1 ��1��42`�T2��x20��2���2`�L3���3 ��3P�4��,4��4���4��45�H5 �\50��5��5��$6@�P6��6���6��070�T70�t7���7���7 ��7@��7@�h8��8p��8���8���8��49`�x9�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@,;T,<l,=�,>�,?'��"@�,-l3�=�4}8@��{,
S��b���]@�y0,
|�������@�y0,�\��\���@�y0,�0��0���@z0,2�<	2@�|.��f)@@z�,;@�H 6@{`,N0��.������|��S��'��W��e��x����������� �ب�9�@x{�,*����-S	@���P��marshal.o/      1690381920  1000  135   100644  75952     `
ELF>p@@10

$&'#(")��H��H�H�Ѓ�8�ff.���H��H�H�Ѓ�P�ff.�PXH�5H��H�H�81��f�PXH�5H��H�H�81��f���SH�>H���H�{�1�[���SH��H�(H��t�H�{0�H�{@[��[�ff.�ATI��UH��SH��H��H�z@H�D$4H��tH�T$H�������H�}0H��L����EH��th��u-H�����t$H��Ѓ��H���vJ��~o��H�f�H�D$H��4t+�u'H�����tH��у����H��r���H�H��H��[]A\�fDH�}0H�T$L����i���f��H��r��AUATI��UH��SH��H��� tXH��H����L�mH��!�3L��H��L��H�4��H��tH�E�� u�H�E ��f�H��L��[]A\A]�f�H�^�f.���ATI��H��UH��H��SH���H��t[1�]A\��L��H��H���[1�]A\�ff.�SH��H��H�t$�����H��� t=H�KH�SH��~pH��t:H��ud�9Eu_H�T$H��t
1�H�����D�H��[�f�H��H�K���H�encoding�����H9u�H�|$�H�����������f�SH��H�H��t
�H�CH�{(H�CH�C H�CH��t4�H�C(H�{0�H�{@H�C0H��t
�H�C@[�ff.�@��SH���s���H��[�f.�UH��SH��H�H��H��H���H�}HcE0HH�H��t�� uH��[]��H�{�~�H���H��H��1�[]�ff.���SH��H�H��t'�H�{�H�{ �H�;[��[�fDS1�H��H��H����H�D$�H�H��tH�T$H�5!H���H�D$H��[�ff.�PXH�5H��H�H��H�81��ff.�@SH��H�|$H�~8H��u
H�D$H��[�f�H��H�5H�L$��H�{(u�H�=���@AWAVAUATUSH��(H���H��H�>H��@��uRH�����tIH��ƒ���u<H�V �� ��H�GH)�H9���H�H�H���Hk I���W@H�CL�cH��	M����L9��H��I�� M)�H= HO�H�@L9�IL�H��6H�DH�L$�H�D$H�5�H�{(�`H�$H���MH���H�$H��� ��I��I��A��M9��!�KH�uH��������KHH�{ L��H{�H�4$I��H� ��H��L��L���M9�}sH�4$I)�M�H� �\H�vH�{L�L���L�c�KH�{ H��H{�Hk H)kI��H��(L��[]A\A]A^A_�L�p�=����H�CH�C ��fDH�v�\����1�1��I���f.�H�@H���H�D-H�L$�H�D$H�5�H�{(��H�D$H����H�|$�L�|$I��� u|H��H����H9����SHA��uI�����t��%��	Ѓ�EЉSH���D�Ё���	ʃ�E��R���H������H���H�;���I�W�f.�H����H)�H9�!H���%����H���H�;������H�=����ff.�@@��uH�����t�����uH���H��H�H��H�5H�81��@��H��t1�H�5N����f��ff.�@SH����uH�����t�����u[�H�H��H�5H�81��@AVAUATI��UH��SH��H���H�=H�T$H�����uH���H��H��H��[]A\A]A^�L�l$H���I�}I���H��H��tI�EH�EI�<$H��tL��H���H��H��[]A\A]A^��H��I�$��f�SH��H�H��tJ�H�CH�{�H�{ H�CH��t
�H�C H�{(H��t
�H�C([����SH�����H��[�f.�AUATUSH��(dH�%(H�D$1�H��H��H��H���3H��H����H�G���H��y���H�\$H������@�<H��Lc���H�����H��H��	u��T$A�	H��L�l$I��	f��H���T$�H��L���u���L9�u�H�D$dH3%(��H��([]A\A]ÐH��H�|$��D$�9��������H��@�|$H�|$�����@��H�|$�T$H������D�ˆD$�E���D��ڈT$�3����H�H�5H�81��fDATI��USH�����~l�lj��H��H��t[1���tC��t_I�<$H��tfH�uH�T$���uH�}�H�uI�<$H��H�D$�H�D$H��[]A\��H���[]A\�f����f��I�$�D��UH��SH��H���H9�tH�H��t2H9�u
H��1�[]�@H���H��t�H�EH��1�[]�D�H�=�H�H9�t��f�ATI��UH�nSH��H� tH�nH����xu"H���H�����u�}#t&H��[]A\�H�H��L��H�5H�81��H�H��L��H�5H�81��f�ATUSH���H�=H���u	H�����u,H���D���H���H��I���I9�u!H��[]A\�@�����H�HD��H�H��H�5H�81��AWf(�AVAUATUSH��H��XfT
dH�%(H�D$H1�f.
vyf��H��f/�wD���H�ھH�=����H�D$HdH3%(��H��X[]A\A]A^A_�����H�ھH�=�����f.���f��f.�zdub�
H���^�f/�w%��[���H�ھH�=�w��d���f���6���H�ھH�=�R��?���DH�L$H�T$1�1�L�D$��L$I�Ņ�t
�D$ -�H�l$D�|$L)�A9�
A�����A�UHc���D�a�T ��~
Mc�B�D$ .D�aL�t$ Ic�Hc�A�L�I�u�Ic�� 1�H)�A�O�H�L��A�L��Mc��H��L���X���H��L��L���z��g���DE��kHc�D�aL�t$ �D 0�AIc�H�L��D .E����Hc�L��A��듐H�����H�ھH�=�����f.�Mc�Hc�L�t$ L��L�L�‰L$D)�L�D$��L$E�$���-���E�|$L�D$Mc�Hc�Ic�B�D$ .F�d=L�K�t����D����t1��ƒ��09�r�E)�Ic�L��6����f�SH��H��H�?@��u	H�����u>H�SH�CH��iH���0H�S H�JH��H�K H�CH�C�H��[�fDH��ƒ���u�H�S �� �~H9W��H�H�BH�C ��f�H��u�H�� � H�L$H�5HO�H�TH�T$��H�{(�EH�$H���CH���H�4$�CHH�@��uH�����t�׉с���	���E��CH�� t4H�VH�vH�{�H�$H��� ��H����1ҹ���H��H������H�51�1��H�{(��H�����u/H�����t'H��у���u�� ueH�H���t	��@H�Ǩt!�H����[�H�B�k�������f�H����H9�~%H���{���H�x~�H�H�H�=�O����H�=�9�f�AWAVAUATUH��SH�����L��������~a�X���z������E1�1�M��~+f.�H���h���B��I��H�H��H	�M9�u�H��H��[]A\A]A^A_�D�����{~m�؃�~Lc�E1�H�����A����t��F�<�L��H��I��D��H��H��H!����D��H�H��H	�M9�u��1��z���f���Hc��f���DHc��Y�����H�H�5H�81��ff.�SH��H�����H�{(H�T$H�����tH�D$H��[�H�H�5H�81��ff.�ATM��UL��SH������������ڃ����H���$���+H�K�tK����ƒ�����H����<�H�PH9��
I�|$�[]A\�DH�����u�H��tjH��u�H�H���f�H������x���H��t-H���i���H�H�
�^���DH�H�
�J����H�H�
�:����H�H��Z����H�H��J����H�H��:����H�H�
����H�H������H�H�
�����H�H�
�����H�H����H�H��H�5H�81��H�H��H�5H�81��ff.�AUA��ATA��UH��SH��H��H�z H��tH�T$��������������؃�����H��������H�[D��H��H���zH��H�|$D�d$�C�H���H���C���H��H���H��[]A\A]�DH�\$���t���H�����u�H��t+H��u�H�H��f.�H�H��i����H�H��Y����H�H��I����H�H��9����H�H��)����AWAVAUATUSH��H�|$(H�D$@���
I��H�t$hH�~D�b�H�t$(H�T$HD�d$p����H�|$(H����H����H���k@���1@����H����u
H��������������|
H���A�G0H��uH�����tH��с���	ƒ�E�A�G0H�5������	H�5H�|$(��A�Ņ��sMc�H�|$(H�L$PM��H�5O�d$�L�
H�D$XL�d$P���H�D$P���H�������H�������I�_(H�|$(H���O�H�|$(H�T$@H��I����H�|$PH��H���*�H�|$PH�T$XH��I���u�H��H����	H�D$XH�D$@H�|$?L���M���D$?IH����H�t$(�u1�L�����H�|$PH��� �u	H��L�o��L��H���'�L��H��L���I�H���h	I�H�t$(H�WH����-f�H�|$X�L���D$X@�	�H�|$HL�����H�Ĉ[]A\A]A^A_�f.�H��H��H��H��vH��D��L��H���)�����H�|$XL����D$XF����H�|$XL����D$X0�y��x���@H�|$XL����D$XT�Y��X���@H�|$XL����D$Xi�9�H�|$(L��H����(���@������ ���L���J�	���DI�H�t$(H�\$XH�WH���H�|$(I�w(�(�H�|$(H�T$@H��H�D$ �q�H��H�D$(H�x�H�=H��H�����tCL�t$(H�D$XL���PI� H�D$(H���;L��H���H�|$(L9�tH�|$@�H����H�|$(H�7�������	H�Hc�H�>��H�5�����	H�5H�|$(1�1�L�
M���O���H�t$(L���dH�ù����D��L��H���7����H�D$(H�D$XH�D$(H�������H�T$ H�t$@H�L$`H����
���H�L��H�0�L���H���D$X/�e�H�|$(�A��H�D$(H�xH��� �aH��L�o��I��L��L����L��L��L����L���H��D�t$X���B���L���H���D$Xl���L�t$(I�H�� H��҃���+��@��H����I��I�FH�D$H�L$J��L�`��D�I��t�A����u�Ic�I��h�T$X�L��H��L�D$�b�L��L���'�L�D$M�`�M��u���@I��H�D$I����l���H�D$M��A��D$D�0A��L���H�߈L$X�L$���L$L��H�߾�l$X���A��u�|$����A��t�A��@��uH�����t�����D$XcL���H����H�|$(��H�D$PH��� �.H��H�X��I��L��L���/�L��L��H���Q�H�D$PH�D$XH�D$P�}���H�L��H�0�k
H�D$(H�x ���uH�����tH��ƒ���t	��@�;L���H���D$X}���H�D$(1�H�@H��tH�xH��L����H�|$(H�T$`H�5�
�H�D$(H�x H������D��L����������L���H���D$Xf�w�H�T$(�Ѓ������BL���������D$Xm���L��H����S�c���H�T$(H���`��H��
��H�D$H�\$L��H�����H�|$(�I��H���0���I�EE1�H�D$I�E �|H�T$J�<�L��J���H�T$(H�`�HH��H�<L��D��I������L9t$u�����H�L��H�0�L���H���D$X[�a�H�T$(H��� �eH����H��L��H��E1���H�T$(H��QfDH����I9��X���H��J�<�L��D���u���H�T$(H��� �H��H����H9��;I���� u�L;j����H�R �H���L���o���L�d$(I�$ ��I�T$I�L$H���1�1�f�H�<�4tH��H��H9��H�t$hH���/�H�������H�T$`H�5�L����}���H�L��H�0�kH��L����D$X"��H�|$(H��� ��H��L�g��H��L��H����L��H��L���������f�I�H�t$(H�WH���H�|$(M��1�H�5L�
1���H�t$(L��1ɿUH�D$P��H�|$PD��L������r���fDI�GH��H�PH��H���L��H�|$X��D$Xf�;�H�D$(�ƒ������@L��������fDH���u���M��H���M���@H�_L�o���H�J����H�t$@H�L$`L��H����~���L���H���D$XI����V���H��f�H9��j���H���H��H��?H)�H	�H��H�D$�~D$�@���H�R���I�U ���1�����L�`H�X�����H��I�G H�D$(���H�BH�D$����I�L$��}���H�_L�g����I�FM�FH�D$�7���H�Z���L�gL�o���H��f�H9��_���H�ѸH��H��?H)�H	�H��H�D$�~D$�5���L���H���D$X{������H�t$h1��>����H�H�5H�81��H�H�5H�81��H�?���H�5H��H�H�81��H�H�5H�81��H�|$(�H�5H��H�H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81���H�5H��H�H�81��ff.�H��tZAUATI��UH��SH��H��L�.H��tFH��tA�H���L��H���a�UI�4$H��H��[]��A\A]�u�D��H�=H��u�H�=��H��H��ff.�@AWAVAUATI��USH��H��8H�~L��H�T$���t7H�|$�H���D$;���H�|$H���C�H��8[]A\A]A^A_�@L���H��H���H�s(H����I��H��tH���=��A�L�t$H�ھL���D$:���L�}A�� uI��H��A��H��L����H��L��H������H�{L��H�WH���I���B���H�޿H�\$�D$ �k�I�VI�vL���+���H��8[]A\A]A^A_�@L�}H�m�fDL�t$H�ھ�D$IL���N���0���H�1�H�5H�81��ff.�@UH��H��SH��H�=H����H���H��H��[H��]�,���ff.��AUATUH��SH��H��H��ȃ���t@��tV��uCL�l$@H�{�H��L��I���D$e���H��L���d���H�[�����t�H��[]A\A]�H�����t���t��t�H�WH�O H�B8H���H�	H�A����uQH�RH��tH�zwAH9�t.H�P H���H�H�B����u"H�@H�@H��tH�xwH�_����$���H�H�5H�81��f.�ATI��UH��SH��@����@������������H����@����H�_H�ߺH�����H���H��L9�t*�H�|$H���D$C�A��H���I�H��H������H��[]A\�DH�����u�H��t!H��u�H�H��H�H��y����H�H��i����H�H��Y����H�H��I����H�H��9����ATI��UH��H�qSH���j��H�SH�sL���*���H��tH��H��H�5�[]A\��[]A\���AU1�H�ATUS��H��8H�L$L�L$L�D$�����A����������8��H�1�H��H���H�CH�D$ �H�C��C01�H�CH�C H�C(�H�H��L�d$(H�ھ�D$(L�����H�ھL���D$(���H�|$D��H�����H�{H���!H�����H�D$ H�D$(H�D$ H��8H��[]A\A]�@H�l$@���H���!�8��1�H�H��H���H�CH�D$ �H�C��C01�H�CH�C H�C(�H�5H��H������H�kH�51�1�H���H�{����H�H�H�5H�81��@H�|$A�����H��u'H�l$����DH�3�H�;1�������@��t�A����H���A������A����Q�����UH��SH��H��H�s�R�T��SH�sH���E�H��1�[]�ff.����AUATI��UH��SH��H���H9�tH�H��t[H9�t
H���H��uH��1�[]A\A]�@L�mH���H��L������UH�uL����H��1�[]A\A]�D�H�=�H��ff.�AUATUH��SH��H�>H��tI��I��H��L�����uH��H��H��[]A\A]�DH�$��t7�����؃�����H������uH�H�8�DH�����tWH�{�H�=L��H�l$H�����t
H�$H��H��PI�<$H�t$1��H��H��[]A\A]��H��tHH��u�H�H�8�f�H�H�8�@H�H�8�n���H�H�8�_���H�H�8�P���AWAVAUATI��UH��SH��H��H�D�A��"��[��H�Hc�H�>��@H���X�I���H�S0I�n�H��H�rH��H���V��I��H�CH�hH�CM����
fDH��H���H��I���L��L��H���H�CH�P�H�SH���u�H�CA��}�0
H�s@L����H���HH���@��H�5�H��H�������H����H��H���.��H�D$0M��tH��1�H���A�$H�5H�L$0�H���H�{(�H�S0H��H�rH��H���E��H��I���H�=H�T$8H�����tH�D$8L��H��PI��L��H���F��I��I��4�SH��HL��[]A\A]A^A_�@H���x��H��A����H��H�<I���N��A��-A�"H�Ÿ"DE�H�}H�E tH�}1ɺL���1�H��I���H�C0L��H��H�pH���d��H�s@H��D�S���H��H�����I���@���H�{0�4L�c@H�oH��H���H���H�����1�L��H�������H�������������H��H��H������1�H��H��H����L��H���d���@H����H��H���5��H��H���H��H�����M��tA�$����H�S0H��H�rH��H���h��H�s@H������@H���0�H��H������H�hH� tH�h�H�=H����€�����	�H�=H����€����
�H�=H���
��€����<
�f(��H��H�C0H��H�pH�����H�s@H���E���DH���H��I���I��H����	A��uI�����tA�E�����z
L��L���N��L��H���H��1�H���v���I���$�������� ���H���L��H���H�E�� u�H�}����f.�H������H�s@H�|���f.�H��L�k@�4H���,��H�T$0L��H�D$0H��I���P�����H��������������H�S0H��H�rH��H���h��H�5�H��I�������1�H��H���|���H�5H�L$8L��H�D$8�H�{(��L��L������H������H��H���}��H��H���R��M���[���A�$���O���H�H��H�5H�81��f�H�s@1��M���DH���H�����I��I��A��uH�����tH��ƒ���t	����H��1�H�����I�Ĩ�zH������n����P����]��tI�t$L���H�����uXL���A�$�������u0�������	H���	<�	H��4�	H���9���
M�l$M�������I����������L��L����������I�$��`H��`�����I�E��`H��`�o���L��L����_����M���OA�4$H����A�$H���H�s@H�������H�s@����f�H������H��H�����H��I�����H�{0�4�D$8A��H�oH��H���M��tH�t$8H��L����A�$�|$8����I�}�� ��H��M�]��H���`L�L��L��E1�I����A��@H��E1�H��H���H9����J���4w�M��I��M���ML�fA�����H��I��L���H�C0H��H�h����H��H��H�����H��H��H������H�s@H������H�����H�{0H�T$8H�������	H�|$8H������I�����f.�H�����H���I���x����H�s@��
���f�H�{0�4H�oH��H���H���
H�����H��I��H�D$���L��I���I�Ĩ��H������������	��H�|$�I��H��� ��H����L9���K�D?�HCH��H��L��1����L��H�D$�H�$I�FH�D$M��]��f�H�D$H�<��H��I����	L��H��I���H���
H��H����H�<$H���H�kI9���I� u�I�F �H�����H��H�����H��H���M�������A�4$���w���H�H��H�5H�81��f.�H�t$8H��H���D$8��D�D$8I��E�������H��1�H���	���DH���h��H��I���H�S0I�m�H��H�rH��H���c��I��H�CI�D�H�CM��t(fDH��H����L��H���H�kH���u�L��H�s@��H��H���O��H�CI������f�H��L�k@�dH���\��H�T$0L��H�D$0H��I�����I��H��tH��H�����H�5�L������H�C0H��L��H�pH�����H��I���H�5H�L$8L��H�D$8�H�{(��L��L���K�H�|$8H�5���I��H���L��H���i��I��H������H�|$0�=H�������H�D��H�5H�81���A��ujH��H���x���fDL)�L���D��L������DL�|$H�4$L���H�s@L����H��H�����H�CI���s�H�N�E1�����@H��E1�L�����f�I�F�o�����
�k���H������W���H���^�H���?����@����1�H��������
����M�]I�}�H���H��H��������H���KL��H�����1��H���$���H����H�t$0H��H�$�H�$f(�H��� �SH��H����L�d$0�L$8L��H)�H)�tH�h�H��~A�<$���L$8H�0fH~�H9��T���fH~�H��<������uH��H��H���;���H���&���H���#����1�H����I�Ĩ����������I���A����I�|$I9���@��uH�����tH��ƒ���t	����L���H���(D�������H�H���H��H���H�E�� u�H�}����1��V���H�@���H������i���H���H���V���H�H�8�L����������	���������������H�H�8����H�H�5H�81��f(�H�|$,I��E1�fT�$��%�H�|$8��T$8�$�H����A�T$H��I�L$H	��QH��L�aH	�H��H���AH	�H��v`� f�A)��$H���H*�D���L$��$H���L$�X��T$8~:A�$H��tH���j���L���I�����A�T$H��I��H	���D$,f(��$�x���$f��f/�vfW�D$8����H�|$�M��L��H�5H��H�H�81��H�H�8���H�H�8�r���H�H�8�c���H�H�8�T���H�H�5H�81��H�H�5H�81���L��H�5H��H�H�81��H�H��H�5H�81��H�=���L���H�5H��H�H�81��H�=�S��H�|$�H�5H��H�H�81��H���H�5H��H�H�81��H�|$�H�5H��H�H�81��H�H�5H�81��H�H�5H�81��H�=���L���H�5H��H�H�81����1���@AUATA��USH��H���+��H��H������I��H�C(L��H�hH�����u&H�{(L��H���E��u"H��L��[]A\A]�@�L����ːH������H�h�H��~��H��H���<H��I���Q���L��H���v���H���u؅�~�L����H��L��[]A\A]�@��U1�SH��H��H�������;t��Iu'H�߽�����;u��uIH��H��[]�k����:t#��H�H�5H�81��f�H����H��[]���H�H�5H�81���AWI��H��AVI��AUI��ATUSH�����H��~pH���#���L���M��tA�H��tHL������1�L��I�����L��H��H���<�����y�L���H��L��H���H��u�H��[]A\A]A^A_�ff.�f���AT1�H�USH�� H��L�D$�H�<$�H���SH�$1�����P�H�$�H�1�H��H����kHH�D$H�$H�C H��H�C(�H�C@H�C0H�C8H�CH�CH���$��H��A�������A���t���k�H�����t��uqH�D$H��tH�C8�1�H���s�H��H��蘼��H�D$H�D$H�D$H�� H��[]A\�DH����������H��с�����E����f�A���1��H�=��j���H�5H�<$�����H�5H�<$�����H�5H�<$1�1���P��H�1�H��H����CHH�D$H�$H�C H��H�C(�H�C@� H�C0H�C8H�C�H�C�m���H���a���A��E��H��H�5H�81���$���@��AWI��AVI��AUI��ATI��USH���H���|� H���H�=H��L� L�xL�pL�hH��tH��H��H��[]A\A]A^A_��1�H�����H��H�H�H�8�H���H�=�H�H�5H�81����SH�=��H�=H����H�=H���H�=H���H�=H���
H�=H���
H�=H���H�=H���H�=��H�=H���H�=H���H�=H���H�=H��H�߹����H�{�H�5H��H�߹����H�i���H�5�H�߹����H�N���H�5�H�ߺ	H�5�H��[�H�5�f���H��H�<$1�H��@��H�t$H������H���D��H��H�|$H�t$�����H���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realigninstance of IO neededmarshal data too shortMarshal.load reentered at %scallread%li does not refer to module%li does not refer to classlong too big to dumpEcan't dump anonymous %s % liclassmodule% li can't be referred to-infinfnan-00e%dgetbytebad symbolMarshal.dump reentered at %sexceed depth limitcan't dump internal %smarshal_dump_dump_dump() must return stringarray modified during dump_dump_datacan't dump %scan't dump anonymous ID %ldsingleton can't be dumped12binmodedump format error (unlinked)singleton can't be loadedclass %li not a struct_loadmarshal_loaddump format error_load_datadump format error(0x%x)dump format error (bad link)11no allocatorMarshal_allocwritedumploadrestoreMAJOR_VERSIONMINOR_VERSIONload_argdump_argcan't dump non-ascii %s name % lilong too big for this architecture (size 8, given %d)%li#%s returned same class instancesingleton class can't be dumpedtoo big Bignum can't be dumpedcan't dump hash with default procno _dump_data is defined for class %sprepended class %li differs from class %lidump format error (user class)struct %li not compatible (struct size differs)struct %li not compatible (:%li for :%li)class %s needs to have method `_load'instance of %s needs to have method `marshal_load'class %s needs to have instance method `_load_data'can't override instance variable of class/module `%li'can't override instance variable of class `%li'can't override instance variable of module `%li'dump format error for symbol(0x%x)dump format error (symlink with encoding)incompatible marshal file format (can't be read)
	format version %d.%d required; %d.%d givenincompatible marshal file format (can be read)
	format version %d.%d required; %d.%d givenH�%����������������?���GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0DAAK`AAK|E�W�2E�_
LA0��B�D�D �G0�
 DABG8�vB�B�D �D(�D0T
(D ABBC4(EF�G�G �N
CBIOCB `�A�G T
AC�qA�o�E�L0�bA�D�D m
AAHVFA�:E�g
LABA�I vA0!AAK LLA�D W
ACHpaB�B�B �B(�A0�A8�D`�
8D0A(B BBBD�<a�!�<A�_
AT�B�B�B �D(�D0�G@i
0G(A BBBDA
0D(A BBBDXYA�WtE�L8�zB�B�A �A(�DP�
(A ABBB@��B�D�A �D0h
 AABID
 FABC4wE�D�G _
CAEV
CAF(H�B�D�E �|
ABA,t�B�A�A �D
ABEH��B�F�B �B(�A0�A8�G�e
8A0A(B BBBD,�7A�G H
AGp
DDH 2B�B�B �B(�A0�D8�D@d
8D0A(B BBBF lEA�G c
AA,��B�D�D ��
ABF8�?B�E�D �D(�G@�
(A ABBFL�"B�B�B �B(�A0�A8�G��
8A0A(B BBBKDL�H�B�D �D(�G0q(D� A�E�B�R0����`��B�B�B �B(�D0�A8�Gp}
8A0A(B BBBE�
8A0A(B BBBE$�4A�G�N QDD8 B�B�A �D(�G@^
(A ABBDzRx�@����$
0�B�D�D �D0�
 AABF4�MB�D�H �k
ABLAAB8�_F�K�A �A(�F`�
(D ABBE$84E�D�G _CAH`�F�B�D �D(�G0l
(C ABBEj
(C ABBFL�=B�B�A �D(�D@a
(G ABBF�
(D ABBIL�IB�B�B �B(�D0�D8�G��
8D0A(B BBBEL	H`	�B�B�D �A(�G0B
(D ABBEb(D ABB4�	�E�C�J i
DAHl
FAED�	�B�H�E �E(�A0�A8�D@~8A0A(B BBB0,
|F�J�A �D@
 DABFH`
�F�E�E �E(�D0�A8�D@}
8G0A(B BBBE�
�E���
+H b�
!H X	%+B&]y'��(��)'EVv2� �2�^�@�^�~`~>�a�w�����2���������F,�v:FU�nPEz��G����G���Pq��8�F�]Rr�bzR���`:������B��w
�6`�!}�l� L�	@�l���pa�	0� 	<�<K	pA	� 	!�A	��	�P	<��	>
8�	�S	h>
��
�@
Y��
��
��
��

:!�
z(:M�p@����g
�	�g
	�
#	p
�9	�
S	�k	�v	��	~�	���	~�	��	�7�		8�	��	�
�2
�/
EF
EP
Er
�
P��
�
_�
 ?�
)�
�(4�
_�&`"$	`,	p30'�<	PH@+MO0*X�-4b0.�m�&�!'��&��	�!'��(	�(!)7)Q&*i
|&*�?+�?+��+��+��-��+_

`H
	( 
	 *
�-C
$.Z
$.t
�.�
	�
�.�
0�
�.=0iC6 0I@pCIPD�R	hY�D�`	Hl�C�v	X~iC�|C�|C�LD�LD��D
�D �E4�EPH��E|jHxH��H��H��J��J�J8�JW�J&'()%ty~-�J�O�T�r��������������� ����� ����������(
`i�\$2*o0E6�<�B�H�N�T�Z�`�f�l�r x�~h�~�  � ������a�H����s�0�N�6���h����T���8��h� �&�,�2�8�>�D�J�P\l��

 !"#$*+,�������)9EVk}���������
%,>ITew��������+9CQ\gt����������#-=H]nx��������	(2>K]r~�����*9Nap|���������%-: H�S\q��H������J+��J!.annobin_marshal.c.annobin_marshal.c_end.annobin_marshal.c.hot.annobin_marshal.c_end.hot.annobin_marshal.c.unlikely.annobin_marshal.c_end.unlikely.annobin_marshal.c.startup.annobin_marshal.c_end.startup.annobin_marshal.c.exit.annobin_marshal.c_end.exit.annobin_memsize_dump_arg.start.annobin_memsize_dump_arg.endmemsize_dump_arg.annobin_memsize_load_arg.start.annobin_memsize_load_arg.endmemsize_load_arg.annobin_io_needed.start.annobin_io_needed.endio_needed.annobin_too_short.start.annobin_too_short.endtoo_short.annobin_mark_marshal_compat_i.start.annobin_mark_marshal_compat_i.endmark_marshal_compat_i.annobin_mark_load_arg.start.annobin_mark_load_arg.endmark_load_arg.annobin_r_entry0.start.annobin_r_entry0.endr_entry0.annobin_append_extmod.start.annobin_append_extmod.endappend_extmod.annobin_copy_ivar_i.start.annobin_copy_ivar_i.endcopy_ivar_i.annobin_sym2encidx.start.annobin_sym2encidx.endsym2encidx.annobin_clear_load_arg.start.annobin_clear_load_arg.endclear_load_arg.annobin_free_load_arg.start.annobin_free_load_arg.endfree_load_arg.annobin_w_nbyte.start.annobin_w_nbyte.endw_nbyte.annobin_mark_dump_arg.start.annobin_mark_dump_arg.endmark_dump_arg.annobin_has_ivars.start.annobin_has_ivars.endhas_ivarsobj_count_ivars.annobin_check_load_arg.isra.1.part.2.start.annobin_check_load_arg.isra.1.part.2.endcheck_load_arg.isra.1.part.2.annobin_r_post_proc.start.annobin_r_post_proc.endr_post_procs_call.annobin_r_bytes0.start.annobin_r_bytes0.endr_bytes0s_read.annobin_must_be_module.start.annobin_must_be_module.endmust_be_module.annobin_mark_marshal_compat_t.start.annobin_mark_marshal_compat_t.endmark_marshal_compat_t.annobin_path2class.start.annobin_path2class.endpath2class.annobin_obj_alloc_by_klass.isra.10.start.annobin_obj_alloc_by_klass.isra.10.endobj_alloc_by_klass.isra.10compat_allocator_tbl.annobin_clear_dump_arg.start.annobin_clear_dump_arg.endclear_dump_arg.annobin_free_dump_arg.start.annobin_free_dump_arg.endfree_dump_arg.annobin_w_long.start.annobin_w_long.endw_long.annobin_encoding_name.isra.17.start.annobin_encoding_name.isra.17.endencoding_name.isra.17.annobin_obj_count_ivars.start.annobin_obj_count_ivars.endrb_intern_id_cache.13511.annobin_must_not_be_anonymous.start.annobin_must_not_be_anonymous.endmust_not_be_anonymous.annobin_class2path.start.annobin_class2path.endclass2path.annobin_w_float.start.annobin_w_float.endw_float.annobin_r_byte.start.annobin_r_byte.endr_bytes_getbyte.annobin_r_long.start.annobin_r_long.endr_long.annobin_r_symlink.start.annobin_r_symlink.endr_symlink.annobin_check_userdump_arg.start.annobin_check_userdump_arg.endcheck_userdump_arg.annobin_w_class.start.annobin_w_class.endw_classw_extendedw_unique.annobin_w_object.start.annobin_w_object.endw_objects_mdumps_dumpw_symbols_dump_dataw_ivarw_uclasshash_eachw_obj_each.annobin_w_encoding.isra.21.start.annobin_w_encoding.isra.21.endw_encoding.isra.21rb_intern_id_cache.13526.annobin_w_symbol.start.annobin_w_symbol.end.annobin_w_unique.start.annobin_w_unique.end.annobin_w_extended.start.annobin_w_extended.endw_extended.cold.24.annobin_w_uclass.start.annobin_w_uclass.end.annobin_w_ivar.start.annobin_w_ivar.end.annobin_marshal_dump.start.annobin_marshal_dump.enddump_arg_datas_writes_binmode.annobin_hash_each.start.annobin_hash_each.end.annobin_w_obj_each.start.annobin_w_obj_each.endrb_intern_id_cache.13503.annobin_r_fixup_compat.isra.13.start.annobin_r_fixup_compat.isra.13.endr_fixup_compat.isra.13.annobin_r_object0.start.annobin_r_object0.endr_object0r_objectr_symbols_loadr_ivars_load_datar_symreals_mload.annobin_r_object.start.annobin_r_object.end.annobin_r_symreal.start.annobin_r_symreal.end.annobin_r_symbol.start.annobin_r_symbol.end.annobin_r_ivar.start.annobin_r_ivar.end.annobin_marshal_load.start.annobin_marshal_load.endload_arg_data.annobin_rb_marshal_define_compat.start.annobin_rb_marshal_define_compat.end.annobin_Init_marshal.start.annobin_Init_marshal.end.annobin_rb_marshal_dump.start.annobin_rb_marshal_dump.end.annobin_rb_marshal_load.start.annobin_rb_marshal_load.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC12.LC11.LC13.LC14.LC15.LC18.LC17.LC20.LC22.LC21.LC23.LC19.LC24.LC25.LC26.LC27.LC28.LC32.LC39.LC31.LC29.LC33.LC30.LC35.LC38.LC34.LC37.LC36.LC40.LC41.LC42.LC44.LC45.LC46.LC65.LC64.LC67.LC48.LC47.LC68.LC53.LC56.LC61.LC52.LC50.LC66.LC63.LC62.LC58.LC54.LC57.LC55.LC51.LC49.LC60.LC59.LC69.LC70.LC71.LC73.LC72.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_eTypeErrorrb_raiserb_eArgErrorrb_gc_markrb_mark_tblrb_mark_hashst_lookupst_insertrb_extend_objectrb_ivar_definedrb_ivar_setrb_enc_get_indexrb_string_value_cstrrb_enc_find_indexruby_xfreest_free_tablerb_str_catrb_io_writerb_str_resizerb_mark_setrb_generic_ivar_tablest_foreach_saferb_eRuntimeErrorrb_funcallvrb_str_newrb_string_valuememcpyrb_str_new_staticrb_int2bigst_foreachrb_path_to_classrb_get_alloc_funcrb_obj_allocrb_init_identtable__stack_chk_failrb_enc_from_indexrb_str_new_cstrst_init_strcasetablerb_id_encodingrb_id2strrb_intern2rb_enc_getrb_enc_dummy_prb_class_pathrb_class_realruby_dtoaruby_snprintfrb_fix2intrb_num2intrb_eof_errorrb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolrb_obj_respond_tost_add_directrb_cRegexprb_reg_optionsrb_cHashrb_hash_foreachrb_struct_membersrb_cArrayrb_ivar_foreachrb_cStringrb_builtin_type_namerb_obj_classnamerb_id2symrb_sym2strrb_enc_str_coderangerb_str_internrb_class_namerb_scan_argsruby_xcallocrb_data_typed_object_allocst_init_numtablerb_str_buf_newrb_respond_torb_check_funcallst_deleterb_hash_newrb_hash_asetrb_integer_unpackrb_float_new_in_heaprb_ary_pushrb_ary_poprb_class_inherited_prb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_struct_s_membersrb_ary_new_caparb_str_equalrb_ary_clearrb_str_set_lenrb_reg_new_strrb_struct_initializerb_hash_set_ifnonerb_ary_tmp_newruby_strtodrb_singleton_classrb_prepend_modulefrexpldexpmodfrb_class2namerb_enc_str_asciionly_prb_enc_associate_indexrb_intern_strrb_check_string_typerb_ruby_verbose_ptrrb_warnruby_xmallocrb_marshal_define_compatrb_cDatarb_data_object_allocrb_gc_register_mark_objectInit_marshalrb_define_modulerb_define_module_functionrb_define_constrb_marshal_dumprb_marshal_loadE���������P*<��������Z=��������e���������p*>��������z=���������?���������?���������@���������@��������B��������#C���������C��������D��������hE���������F���������G��������*H��������2I��������^J���������K���������K���������K��������L��������>M��������rO��������{O���������A���������P���������Q������������������*R��������
=��������F<US��������c����������T��������Q,VS��������wU���������T���������L��������V��������,T���������W���������,�S���������U��������tX���������X������������������	*>��������	���������	=��������U	Z��������t	*>��������~	����������	=���������	[���������	�	B���������	\���������	\���������	\��������
C��������1
]��������N
K��������_
K��������u
K���������
K��������^��������%*<��������,���������6=��������LG��������Y_���������B���������`���������C���������a��������
b��������

,
c��������P
���������U
d��������\
�
e���������
e���������
f���������
*<���������
����������
=���������
*<���������
����������
=��������g�����������������0Z��������;h��������[���������h*<��������r���������|=�����������������������������������������������J���������p��������������������i��������+V��������C���������Kj��������YJ���������V������������������V��������LV��������z^��������),AS��������bU���������V���������4�S��������@k��������al�������������������m�������������������*<�������������������=��������B��������0*>��������7���������A=��������^S���������*n��������/*n��������C*o��������S*p��������c*p��������s*o���������*q���������*q���������*r���������*r���������*s���������*s���������*R�������������������=���������*R�����������������=��������EB���������h���������*n��������*o��������#*p��������3*q��������C*r��������S*s���������B��������F\Pt��������_lnt���������l�����������u��������%X��������u��������<[��������CNB��������C�������������������L�t���������L����������g*v���������w���������*x��������= y��������� z��������k!*{���������"|���������"*}��������1#u��������B#\I#����������#u���������$]���������%*>���������%����������%=���������%*<���������%����������%=���������%~���������%����������%*<���������%=���������%*<���������%����������%=���������%��������&���������&*<��������&=��������&*<��������$&���������.&=��������5&*<��������<&���������F&=��������M&*R��������T&���������^&=��������c&��������j&���������t&*<��������~&=���������&b���������&����������&'���������'d��������'Q'B���������'����������'���������-(u���������(*<���������(����������(=���������(����������(���������E)���������**<��������*���������"*=���������*h���������**n���������**o��������+*p��������+*q��������#+*r��������3+*s���������+����������+����������+����������+�\�+���������,���������,]��������1,����������,����������,�\�,����������,���������-]��������%-���������,-$7-���������J-V-���������h-*R��������o-���������v-����������-=���������-M���������-N���������-k���������-k���������-l��������H.b��������T.��������f.c���������.����������.����������.d���������.��������/B��������R/*s��������n/[��������u/�/B���������/����������/*n���������/*q���������/*o��������0*r��������0*p��������N0�0l0����������0���������1d#1t��������d1dv1S���������1[���������1�1B��������U2���������b2N���������2C��������B3Z���������3����������3����������3����������3���������4���������W4Z���������4����������4����������4D��������{5D�5t���������5D�5S��������6*<�������� 6���������*6=���������6����������6\��������C7���������x7����������7���������
8C��������%9B��������\9����������9C���������9\���������9���������3:���������Z:���������s:����������:����������:Z���������:*<���������:���������;=��������_;����������;���������'<T4<t��������d<T{<S���������<|���������<����������<*>���������<����������<=��������=���������*=���������E=����������=���������=��������,>���������8>���������Z>���������z?����������?����������?����������?*n��������1@*o��������@@*>��������G@��������Q@=��������i@���������s@���������}@����������@����������@���������gA���������~A���������A����������A���������A*<���������A=���������A*r���������A*q���������A*s���������A*p���������A*>���������A��������B=��������B*>��������B�������� B=��������%B���������/B��������9B*>��������CB=��������JB*<��������TB��������^B=��������eB	��������rB���������yB
���������B*<���������B=���������B���������B����������B���������B*<���������B=���������B����������B
���������B*<���������B=���������B����������B���������B*<��������C=��������
C*<��������C��������C=��������%C*>��������,C��������6C=��������=C��������JC���������QC��������[C*<��������eC=���������C����������CC���������C���������:D����������D*>���������D���������D=���������D*>���������D���������D=��������&E���������lE���������zEF���������E���������E����������E����������E����������E���������F���������#F���������,F]��������}F���������G��������G���������+G44G���������CG,LG���������[GhG���������wG���������~G����������G����������G����������G]���������G����������G*<��������	H��������H=��������?H[��������UH���������\H�H����������H�H*����������H����������H����������H�H*<���������H���������H=���������H���������H����������H���������Id��������
I��������IlId��������%I���������,Id1Id��������=I��������DI\IId��������UI���������\ITaId��������mI	��������tILyId���������I���������ID�Id���������I����������Id���������I����������I<�Id���������I����������I4�Id���������I���������I,�Id���������I����������I$Jd��������J��������J$J���������:J��������?J���������UJ��������ZJ���������iJ��������nJ���������~J ���������A���������J��������NN���������?��������3	Y���������
J���������)����������)���������}+Q���������HC���������J��������� ���$,PX2��2�2�^�2�^^~D^L~p~x��~��������0�8�d�l����F���F�F��$F,�P�XG���G�G���G����D�L�p�xR���R�R��R�0�8�d�l���������l$,lPlX��l�����	���				A	D		L	A	p	A	x	�	�	A	�	�	�	�	�	>

�	
>
0
>
8
�
d
>
l
�
�
�
�
�
�
�
�
�
�
�
�
:$�
,:P:X��:�����g
���g
g
�
Dg
L�
p�
x���
�����~
�
~0
~8
�d
~l
��
��
��
��
��
��
E$�,EPEX�E���_��__�&D_L�&p�&x!'��&�!'�!'��(!'�(0�(8)d�(l)�)�&*�)�&*�&*�?+$&*,?+P?+X�+�?+��+��+��-��+��-�-$.D�-L$.p$.x�.�$.��.��.�0�.0008iCd0liC�iC�|C�iC�|C�|C�LD$|C,LDPLDX�D�LD��D��D��E��D��E�EHD�ELHpHx�H�H��H��H��J�H�J0�J8�Jd�Jl�J��J��J��J��J � � � �b&,"5� t �"|�! �$� (,�&0�4�88�<<�<@�<D�<H�<L�<P�<T�<X=\=`	=d
=h8l�7p=t=x!=|%=�)=�-=�1=�5=�9=��7��9�E=�I=�M=�Q=��9�Y=�]=��6�e=�i=��6�q=�u=��;�}=��=��=�d;��=��=��=��=��=�D:�8:�<�=�=�=�=�=4<�= �=$�=(�=,�=0�=4�=8�6<6@T5D�4H�=L�=P6T�=X>\(3`T4d
>h�3l>p>t>x!>|%>�L2�->�1>�5>�9>�=>��1�E>��1�� `h`p�
x 4 H@d`��������,Pd��P�����`�4�P tp��� 	�P	�	\@
x�
��
�@�Lp
x����$�p�P� `P�&�0'��($)���0*�@+�+<�-d0.��.	 0P	pCd	�C�	PD�	�D0
�Ed
 H�
�H�
�J�
�J.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rela.data.rel.ro.local.rodata.cst16.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@.!T."l.#�.$�.%'��J"@ ��2.-�K3�Kx=�K�8@��0.
S|bb|b�]@�	0.
|Pd�Pd��@
0.�$f�$f��@8
0.��g��g��@h
0.2�i2�l#.q�)@�
�	.|�r
;�r� 6@p�.Nps \�s(i0�s.��s��sS�s'�sr�s��s��s��s��s��s �t�
�@0X.,()/;	(����math.o/         1690381920  1000  135   100644  41208     `
ELF>x�@@.-

!# $%&ATI��USH��H��A��u4H��H����������t+H���H�Ã���t�C�K��������1�H��H9���H�ڸH��H��?H)�H	�H��H�\$�~D$f��f/��!f.�{l�H��txxf���H*��Y
�X�H��[]A\�f�H��ƒ���
ts�؃����k����L������/����=����1������u��H��[]A\�DH���f��H��H	��H*��X��s���f.��� t�1Ҿ�H=��p���L�`�H��������?K�t$I9�w-H���H�Ã���t?��u
H������A���L���y���L���H����H�H�5H�81��L���y������SH�1���H�� H�L$L�D$�H�|$��f(ȃ�tjH�0fH~�H9�tFfH~�H��<������tH��H��u#H�� [�DfH~�H�� H��[H��H��Ðf(��H�� [ÐH�|$�D$�p����L$�^��w��������H��������@��uH�����t
�����tH���H�ƃ���t^�F�H�0fH~�H9�t0fH~�H��<������tlH��H��u
H����H����H��H9�tQH��H��H��?H)�H	�H��H�t$�~D$�n����fH~�H��H��H��H���f.�H���H������H��������@��uH�����t
�����tH���H�ƃ���t^�F�H�0fH~�H9�t0fH~�H��<������tlH��H��u
H����H����H��H9�tQH��H��H��?H)�H	�H��H�t$�~D$�n����fH~�H��H��H��H���f.�H���H������H��������@��uH�����t
�����tH���H�ƃ���tv�F�H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H����H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH���H�ƃ���t^�F�H�0fH~�H9�t0fH~�H��<������tlH��H��u
H����H����H��H9�tQH��H��H��?H)�H	�H��H�t$�~D$�n����fH~�H��H��H��H���f.�H���H������H��������@��uH�����t
�����tH���H�ƃ���tv�F�H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H����H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH���H�ƃ���tv�F�H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H����H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH���H�ƃ���tv�F�H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H����H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH���H�ƃ���tv�F�H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H����H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH���H�ƃ���tv�F�H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H����H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH���H�ƃ���t^�F�H�0fH~�H9�t0fH~�H��<������tlH��H��u
H����H����H��H9�tQH��H��H��?H)�H	�H��H�t$�~D$�n����fH~�H��H��H��H���f.�H���H������H��������@��uH�����t
�����tH���H�ƃ���tv�F�H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H����H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH���H�ƃ���tv�F�H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H����H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH���H�ƃ������F�
f/����H�0fH~�H9�tJfH~�H��<������tH��H��u'H���f�fH~�H��H��H��H���f.�H����H��H9�t1H��H��H��?H)�H	�H��H�t$�~D$�B����H�H�5H�81�����ATI��U��S��H��H����t)@��uH�����t
�����tH�����H�Ã�L��A��uZ��ǃ�tZ�C�H�0fH~�H9�txfH~�H��<������ttH��u_H��H��[]A\�@��ǃ�u�H��H9�t�H�ؾH��H��?H)�H	�H��H�\$�~D$�r���H��[]A\�H��H��H��[]H��A\�ff.�����H��������@��uH�����t
�����tH���H�ƃ������F�
f/���f/���H�0fH~�H9�t#fH~�H��<������tH��H��tH���H��H��H��H��H���@H��H9�t1H��H��H��?H)�H	�H��H�t$�~D$�J����H��H���H�H�5H�81�������H��������@��uH�����t
�����tH���H�ƃ������F�
f/���f/���H�0fH~�H9�tLfH~�H��<������t"H��H��u)H���@H�-DT�!�?H��H��H��H��H���f�H����H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�2���H�H�5H�81��ff.�@��S���H�� ����@��uH�����t
�����tH���H�ƃ������FH�|$�Hc\$H�0fH~�H�\H9�tTfH~�H��<������t H��H��u1H�� H��[�@H��H�� H��H��[H��H���@�H�� H��H��[�H��f�H9��U���H��H��H��?H)�H	�H��H�t$�~D$�+���ff.�@��ATA��UA��H��SH��H��A��t+@��uH�����t
�����tH���A��H��A���������@��uH�����t�E����tH���H�Ń������MA�����C�H�0fH~�H9�tRfH~�H��<������tH��H��u/H��[]A\�fDfH~�H��H��[]H��A\H���fDH��[]A\�H��f��H9��_���H��H��H��?H)�H	�H��H�l$�~L$A���:���H��f�H9��(���H�ڸH��H��?H)�H	�H��H�D$�~D$��������H��������@��uH�����t
�����tH���H�ƃ���t~�Ff��f/���f.���f.��Q���H�0fH~�H9�t/fH~�H��<������t{H��uH��H����f(�H���H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�N����t��X���f�H��H��H��H���H�H�5H�81���T$��T$���������H��(�����J@��uH�����t
�����tH���H�ƃ�����Nf(�fTf.vfP���@f��f(�H�|$�T$�$��T$�$f.�z2u0�D$f/��f/�vf(��\�f/�w[f(��H�0fH~�H9�tgH��H��<������tH��uPH��H��(�H��H��(H��H�����,�H���H���H�0fH~�H9�u�H��(�fDH��H9�t1H��H��H��?H)�H	�H��H�4$�~$���f�f��f������H�H�5H�81��ff.�����H��������@��uH�����t
�����tH���H�ƃ������F�
f/���f/���f.���f.�{I�H�0fH~�H9���fH~�H��<������upH��H��H��H����u��H���DH��H9�taH��H��H��?H)�H	�H��H�t$�~D$�2����H��t+H���f��C����H���f�H��H���H�H�5H�81��f���ATI��USH��H��A��u8H��H���������t/H���H�Ã���t�C�O��������1�H��H9���H�ڸH��H��?H)�H	�H��H�\$�~D$f��f/��yf.����H����f���H*�H�0�X�fH~�H9�tfH~�H��<�������H��H��uXH��[]A\ÐH��ƒ���
ts�؃����3����L������������1������Z����H��[]A\�DH���f��H��H	��H*��X��9���f��� t�1ҾH���H=��m���L�`�H��������?K�t$I9�wJH���H�Ã���t\��u
H������>���L���:���fH~�H��H��[]H��A\H���L���H���H�H�5H�81��L���!������ATI��USH��H��A��u8H��H���������t/H���H�Ã���t�C�O��������1�H��H9���H�ڸH��H��?H)�H	�H��H�\$�~D$f��f/���f.����H��t��f���H*��Y
�X�H�0fH~�H9���fH~�H��<�������H��H��uZH��[]A\�H��ƒ���
ts�؃����#����L�����������1�������J����H��[]A\�DH���f��H��H	��H*��X��+���f��� t�1ҾH���H=��m���L�`�H��������?K�t$I9�wJH���H�Ã���t\��u
H������>���L���*���fH~�H��H��[]H��A\H���L���H���H�H�5H�81��L�����������H��(���D$��tv@��uH�����t
�����tH���H�ƃ���tJ�Ff(�fT
f.
vsfP�������H��(H���DH��H9�t1H��H��H��?H)�H	�H��H�t$�~D$�f.�f�H�|$�H�0fH~�H9�tVfH~�H��<������t*H��H��u3Hct$H��(H�t6��H��H��H��H������H����H�H�5H�81��fD��ATA��UA��H��SH��H��A��t+@��uH�����t
�����tH���A��H��A���؃�������uH�����t
�����tH���H�Ã������Kf�Ҹf.���E�A�����Ef.¹��E�!„�t5fP��t2H��h!��IfP��H��h!��IHE�H��[]A\�fD�H�0fH~�H9�t/H��H��<��������H��uH��H��[]A\ÐH��[]A\�H��H9�tyH�غH��H��?H)�H	�H��H�\$�~L$�����H��f�H9�����H��H��H��?H)�H	�H��H�D$�~D$�����A��t*�f��f�����H��H��H��[]H��A\�f�1�H9�������f��f���~������H�H��H��H�8������H�H��H�8�J�f.���H�H��H�8��f.���H�H��H�8����f.���H�H��H��H�8�����H�H�����ff.�f���H�H��H�8��f.���H�H��H�8��f.���SH�=�H�H�H�5H��H�H��H�H�;H�5H�H��h!��I�H�;H�5H�J��XT�-�H�;�H�Q���H�5�H�;�H���H�5�H�;�H���H�5�H�;�H���H�5�H�;�H�5�H�5�H�;�H���H�5�H�;�H�o�H�5�H�;�H�4��H�5�H�;�H�)��H�5�H�;�H��H�5�H�;�H��H�5�H�;�H���H�5�H�;�H���H�5�H�;�H����H�5�H�;�����H����H�5�H�;�H���H�5�H�;�H���H�5�H�;�H���H�5�H�;�H�;�H�5�H�;�H���H�5�H�;�H�5�H�5�H�;�H���H�5�H�;�H���H�5�H�;�H���H�5�H�;�H�y�H�5�H�;[�H�=���H�5�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignNumerical argument is out of domain - "log"Numerical argument is out of domain - "acosh"Numerical argument is out of domain - "asin"Numerical argument is out of domain - "acos"Numerical argument is out of domain - "sqrt"Numerical argument is out of domain - "gamma"Numerical argument is out of domain - "atanh"Numerical argument is out of domain - "log2"Numerical argument is out of domain - "log10"Numerical argument is out of domain - "lgamma"11MathDomainErrorPIEatan2cossintanacosasinatancoshsinhtanhacoshasinhatanhexploglog2log10sqrtcbrtfrexpldexphypoterferfcgammalgamma�?�?@@8@^@��@��@��@&A��KA��A���A��2�A(;L4B�uwsB�uw�B���7�Bs��6C�h0�{CZA���C Ƶ�;(Dl�YaRwND��9��B.�?�?������7@��y�PD�?�������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�@�B�D�A �G0�
 AABCN
 AABF4`�E�O0]
AFI
EJM
AB(�J }
ID
LI
WN(�J }
ID
LI
WN$��J }
IH
PD
L(J }
ID
LI
WN$D�J }
IH
PD
L$l�J }
IH
PD
L$��J }
IH
PD
L$��J }
IH
PD
L$��J }
IH
PD
L(J }
ID
LI
WN$8�J }
IH
PD
L$`�J }
IH
PD
L$�(J �
CI
WD
LL�F�D�C �J0�
 AABEL
 AABHH EAF$(J �
ES
EG
A$(1J �
EQ
OD
L4P!E�I0�
DIH
HPI
GHP��F�D�H �G0�
 AABGI
 EAFKD
 AABH$�OJ �
HH
HX
I$�J0
AH
Pm
K0,wJ �
PN
JI
GR
NN
AP`?F�D�A �G0�
 AABBR
 AABJ�
 EAFEP�OF�D�A �G0
 AABDR
 AABJ�
 EAFE jJ0y
M�
R`,)F�D�H �G0�
 AABGB
 AABBD
 AABH�
 EAFD������0/E�"%9#Qj$��%��&���#�;�A��Q�i�'���������Y�������
�&�=��G�_�u��~���	M����	��
��	���
���
��6�M�W�q�
�����
����
�����(%%=H%aXx0(�X���`1������!��o3��+oD�[pOe������������w�	O ?*OD�\POg��
!��j�
!�9#�
!)�9#�Y#Y#,v#Ev#a�#{�#��#��#��#��#�#�#6$O$k6$�6$�o'#$%&"������0��`������ �(��	0	 	P	8	�	�$	*	0	6	<	B	H	#N	'T	+Z	0`	5f	:l	?r	Dx	I~	O�	U�	[�	_�	c�	h�	n�	s�	x�	~�	��	��	��	��	��	�	�		

	

 !'().
D
FP
c
q
}
��
�
�
,^BzR�R���
B�
}���
8`�
�
�%a�
�
�
@#�`#�#$�#0�#>�#J$V $c@$/m~���.annobin_math.c.annobin_math.c_end.annobin_math.c.hot.annobin_math.c_end.hot.annobin_math.c.unlikely.annobin_math.c_end.unlikely.annobin_math.c.startup.annobin_math.c_end.startup.annobin_math.c.exit.annobin_math.c_end.exit.annobin_math_log1.start.annobin_math_log1.endmath_log1.annobin_math_log.start.annobin_math_log.end.annobin_math_exp.start.annobin_math_exp.end.annobin_math_cosh.start.annobin_math_cosh.end.annobin_math_sinh.start.annobin_math_sinh.end.annobin_math_cos.start.annobin_math_cos.end.annobin_math_atan.start.annobin_math_atan.endmath_atan.annobin_math_erf.start.annobin_math_erf.endmath_erf.annobin_math_sin.start.annobin_math_sin.end.annobin_math_tan.start.annobin_math_tan.endmath_tan.annobin_math_tanh.start.annobin_math_tanh.endmath_tanh.annobin_math_erfc.start.annobin_math_erfc.endmath_erfc.annobin_math_asinh.start.annobin_math_asinh.endmath_asinh.annobin_math_cbrt.start.annobin_math_cbrt.endmath_cbrt.annobin_math_acosh.start.annobin_math_acosh.endmath_acosh.annobin_math_ldexp.start.annobin_math_ldexp.endmath_ldexp.annobin_math_asin.start.annobin_math_asin.endmath_asin.annobin_math_acos.start.annobin_math_acos.endmath_acos.annobin_math_frexp.start.annobin_math_frexp.endmath_frexp.annobin_math_hypot.start.annobin_math_hypot.end.annobin_math_sqrt.start.annobin_math_sqrt.endmath_sqrt.annobin_math_gamma.start.annobin_math_gamma.endmath_gammafact_table.13392.annobin_math_atanh.start.annobin_math_atanh.endmath_atanh.annobin_math_log2.start.annobin_math_log2.endmath_log2.annobin_math_log10.start.annobin_math_log10.endmath_log10.annobin_math_lgamma.start.annobin_math_lgamma.endmath_lgamma.annobin_math_atan2.start.annobin_math_atan2.end.annobin_rb_math_atan2.start.annobin_rb_math_atan2.end.annobin_rb_math_cos.start.annobin_rb_math_cos.end.annobin_rb_math_cosh.start.annobin_rb_math_cosh.end.annobin_rb_math_exp.start.annobin_rb_math_exp.end.annobin_rb_math_hypot.start.annobin_rb_math_hypot.end.annobin_rb_math_log.start.annobin_rb_math_log.end.annobin_rb_math_sin.start.annobin_rb_math_sin.end.annobin_rb_math_sinh.start.annobin_rb_math_sinh.end.annobin_Init_Math.start.annobin_Init_Math.end.LC3.LC0.LC2.LC4.LC6.LC5.LC7.LC8.LC9.LC10.LC11.LC12.LC14.LC13.LC16.LC15.LC17.LC19.LC18.LC20.LC21.LC22.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_to_floatrb_absint_numwordsrb_big_rshiftrb_uint2bigrb_eMathDomainErrorrb_raiserb_scan_argsrb_float_new_in_heaprb_num2intrb_fix2intrb_assoc_newmodftgammalgamma_rrb_math_atan2rb_mMathrb_math_cosrb_math_coshrb_math_exprb_math_hypotrb_math_logrb_math_sinrb_math_sinhInit_Mathrb_define_modulerb_eStandardErrorrb_define_class_underrb_define_constrb_define_module_function/��������������������z��������{��������]������������������������������*����������|�������������������}������������������u���������������������������������������������������������������������������������������������������������������������������	���������	���������
���������
���������������������������������������������
���������(
������������������(������������������/~��������>����������*���������������������������I���������_���������p�������������������c�������������������~������������������C*���������J���������T������������������������������~������������������|*�������������������������������������������������i������������������F���������n��������������������*�������������������������������������������������������������������F���������{~�����������������������������t��������p*���������w����������������������������������������~�����������������^����������{���������*����������������������������C�������������������j{����������������������������&���������2*���������9���������C��������������������������������������{�����������������,���������v����������*����������������������������������������������������������� ��������� ���������z ���������� ���������� *���������� ���������!���������L!����������!���������	"���������G#*���������g#*����������#*����������#*����������#*����������#*���������$*���������'$*���������H$���������M$���������T$*���������[$*���������b$���������p$���������w$*����������$����������$����������$����������$����������$����������$����������$����������$����������$����������$���������%���������%���������.%���������3%���������I%���������N%���������d%���������i%���������%����������%����������%����������%����������%����������%����������%����������%����������%����������%���������&���������&���������!&���������&&���������<&���������A&���������W&���������\&���������r&���������w&����������&����������&����������&����������&����������&����������&����������&����������&����������&����������&���������'���������'���������/'���������4'���������J'���������O'���������f'���������5���������E���������m���������U���������}���������}���������}	���������}
���������}���������e����������
�����������������������������	�������������������5���������@���������`���������y�������������������)������������������g�����������������������������w�������������������' ���������� ���������Y"���������k'��������� y���$,�P�X���������������D�L�p�x�����������0�8�d�l�������������	$�,�	P�	X�
��	��
��
����
����D�L�p�x�
����
��
���
�0�8d�l��%��%�%�X$%,XPXX��X����������	�	oD	�L	op	ox	��	o�	��	��	�
�
�0
�8
d
�l
�
�
O�
�
O�
O�
�$O,�P�X
!���
!�
!�9#�
!�9#9#Y#D9#LY#pY#xv#�Y#�v#�v#��#
v#
�#0
�#8
�#d
�#l
�#�
�#�
�#�
�#�
�#�
�#�
�#$�#,�#P�#X$��#�$�$�6$�$�6$6$o'D6$Lo' u v
 w
 x d��������H�p�����	��
�<�d�
���0,`T����p�0�d�P�0!�@#�`#��#��#��#��#$  $4@$.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.rodata.rodata.cst8.rodata.cst16.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@+�T+�l+��+��+�'�o'"@�l+-/(3/(=0(T8@؁�
+
S�7b�7�]@��0+
|X9�X9��@��0+�,;�,;��@�0+�=�=��@�0+2�>�2�@�)`A� 1B@>`BL0pB.��B��B|�BS�B'�BU�Bc�Bv�B��B��B��B ��BH�@H�`+)I�,�	�`����node.o/         1690381920  1000  135   100644  165552    `
ELF>p{@@-,

 "#$%H��u�H�5�f.�USH��H��H���H��H��t'H��H�5��H��H��H��[]�f�H��H�ߺ[H�5]�fDAWAVAUATUH��SH��H��(H��twI��A���M�4$L��H�����L��H�5H��H��H��1��H�ߺH�5�I�<$H������i��]H�
��Hc�H�>����H�5H����H�5H���H��([]A\A]A^A_�H��H��E�����H�H�5H��1���H�5H���H�5H���I�L$D��H��H������H�E�� �NmH����H�p�H���H��([]A\A]A^A_�H��H��E������H�H�5H��1���H�5H���H�5H���I�L$D��H��H���A���H�E�� �d_H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H�����H�E�� �EiH����H�p����E����yI�|$���H��H���H�H�5H��1���H�5H���H�5H���I�L$D��H��H���/���H�E�� ��mH��H�ƃ�H��H���H��H���E���EdH�H�5H��1���H�5H���I�t$H���?����H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�L$ D��H��H���R���H�E�� �}\H����H�p��{���H��H��E���~�H�H�5H��1��H�5�H���I�t$H���h����H�5H������H��H��E����|�H�H�5H��1���H�5H���H�5H���I�L$D��H��H���m���H�E�� �[kH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$ D��H��H�����H�E�� ��jH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H���_���H�E�� �3jH����H�p����H��H��E���dg�H�H�51�H����H�5H���I�t$H���u����H�5H���H��H���H����H��H��E����j�H�H�5H��1���H�5H���H�5H���I�L$D��H��H���h���H�E�� �piH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H�����H�E�� ��hH����H�p��
���H��H��E���(~�H�H�5H��1���H�5H���H�5H���I�L$D��H��H���b���H�E�� �sXH����H�p����E�������H��H����H�5H����H�5H����H�5H���H��H����H�5H����
H�5H����H�5H���H��H����H�5H����H�5����E���2���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����
H�5�X���H��H��E������H�H�5H��1���H�5H���H�5H���I�L$D��H��H���U���H�E�� �DXH����H�p�H���H��H���E����WH�H�5H��1���H�5H���I�t$H���h����H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�L$ D��H��H���{���H�E�� ��VH����H�p����H��H��E����c�H�H�51�H����H�5H���I�t$H����H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�L$ D��H��H����H�E�� �-cH����H�p�����H��H��E����q�H�H�5H��1���H�5H���H�5H���I�L$D��H��H���%�H�E�� ��bH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H����H�E�� �bH����H�p����H��H��E���+g�H�H�5H��1���H�5H���H�5H���I�L$D��H��H����H�E�� �6`H����H�p��H�E����gH��H���H�H�51�H����H�5H���I�|$�H��H����H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�D$ D��H��H��H�H�<�H�E�� ��PH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�D$ D��H��H��H�H ��H�E�� �DPH����H�p����H��H��E���li�H�H�5H��1���H�5H���H�5H���I�L$D��H��H���2�H�E�� ��XH����H�p��[�H��H��E���cf�H�H�5H��1���H�5H���H�5H���I�L$D��H��H����H�E�� ��]H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H���,�H�E�� ��[H����H�p��U�H��H��E���Yv�H�H�5H��1���H�5H���H�5H���I�L$D��H��H����H�E�� ��OH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H���&�H�E�� �SH����H�p��O�E���)fH��H���H�H�5H��1���H�5H���H�5H���I�L$D��H��H����H�E�� �JMH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H��� �H�E�� ��LH����H�p��I�E�������H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�� ���E������H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����
H�5����H��H��E����z�H�H�5H��1���H�5H���H�5H���I�L$D��H��H�����H�E�� �<MH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H���^�H�E�� �;KH����H�p���H��H��E���^�H�H�5H��1���H�5H���H�5H���I�L$D��H��H�����H�E�� ��WH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H���X�H�E�� �HWH����H�p���E���
\I�|$��HZH��H���H�H�5H��1���H�5H����H�5H����H�5H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H���`�H�E�� �]VH����H�p���H��H��E����b�H�H�5H��1���H�5H���H�5H���I�L$D��H��H�����H�E�� ��SH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$ D��H��H���Z�H�E�� �@SH����H�p���H��H��E����`�H�H�5H��1���H�5H���H�5H���I�L$D��H��H�����H�E�� ��OH����H�p���H��H��E����K�H�H�51�H����H�5H���I�t$H������H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�L$D��H��H����H�E�� ��JH����H�p��-�H��H��E���ek�H�H�5H��1���H�5H���H�5H���I�L$D��H��H����H�E�� ��FH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$ D��H��H����H�E�� �6FH����H�p��'�H��H��E���nO�H�H�51�H����H�5H���I�D$ H�5H�ߋP1���H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�D$ D��H��H��H���H�E�� ��NH����H�p�H���H��H���E���NH�H�5H��1���H�5H���I�D$ H�5H�ߋP1���H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�D$ D��H��H��H�H�.�H�E�� �3MH����H�p�H���H��H���E����KH�H�5H��1���H�5H���I�D$ H��H�p�=��H�5H���H��H���H�H�51�H����H�5H���I�D$ H��H�p ����H�5H���H��H���H�H�51�H����H�5H���I�D$ H��H�p(���H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�D$ D��H��H��H�H@��H�E�� �lJH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�D$ D��H��H��H�H0�	�H�E�� ��IH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�D$ D��H��H��H�H8�~�H�E�� �<IH����H�p���E����H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5�;�E���N�H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����
H�5�t�E�����H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����$H�5���E����tH��H���H�H�5H��1���H�5H���H�5H���I�L$D��H��H�����H�E�� ��=H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H���#��H�E�� �==H����H�p��L��E�������H��H����H�5H����H�5H����H�5H���H��H����H�5H���� H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�� ���H��H��E���~l�H�H�5H��1���H�5H���H�5H���I�L$D��H��H�����H�E�� ��=H����H�p�H���H��H���E����<H�H�5H��1���H�5H���I�D$ H��H�p����H�5H���H��H���H�H�51�H����H�5H���I�D$ H��H�p �b���H�5H���H��H���H�H�5H��1��H�5�H���I�D$ H�pH���aLH���>LH�������H�5H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H�����H�E�� �7@H����H�p��!��H��H��E���Q�H�H�5H��1���H�5H���H�5H���I�L$D��H��H���y��H�E�� ��EH����H�p�H���H��H���E���_EH�H�5H��1���H�5H���I�t$H������H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�D$ D��H��H��H�H���H�E�� ��DH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�D$ D��H��H��H�H���H�E�� �DH����H�p��9��E������H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5����E���itH��H���H�H�5H��1��H�5�H���I�t$����E��t�H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H����H��H��E����s�H�H�5H��1��H�5�H���I�D$ H�p���E���w���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5���H��H��E����a�H�H�5H��1���H�5H���H�5H���I�L$D��H��H���z��H�E�� ��6H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H������H�E�� ��4H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$ D��H��H���l��H�E�� �V4H����H�p����H��H��E���
a�H�H�5H��1���H�5H���H�5H���I�L$D��H��H������H�E�� �^5H����H�p����E������H��H����H�5H����H�5H����H�5H���H��H����H�5H����
H�5H����H�5H���H��H����H�5H����H�5���E������H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����
H�5����E���yjH��H���H�H�51�H����H�5H���A�T$ 1�H��H�5�I�|$ H�5uH�5H����H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�L$D��H��H���a��H�E�� �T0H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H������H�E�� ��/H����H�p����E���{���H��H����H�5H����H�5H����H�5H���H��H����H�5H����'H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�H�51�H����H�5H���A�T$ 1�H��H�5�I�|$ H�5uH�5H����H�5H���H��H���H����E������H��H����H�5H����H�5H����H�5H���H��H����H�5H����0H�5H����H�5H���H��H����H�5H����H�5���H��H��E���qY�H�H�5H��1���H�5H���H�5H���I�L$D��H��H��� ��H�E�� �60H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H�����H�E�� ��/H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$ D��H��H�����H�E�� �/H����H�p��;��H��H��E���`g�H�H�5H��1���H�5H���H�5H���I�L$D��H��H�����H�E�� �S0H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H�����H�E�� ��/H����H�p��5��H��H��E���:c�H�H�5H��1���H�5H���H�5H���I�L$D��H��H�����H�E�� �3/H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H�����H�E�� ��.H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$ D��H��H�����H�E�� �.H����H�p����H��H��E���K_�H�H�5H��1���H�5H���H�5H���I�L$D��H��H�����H�E�� �-H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$ D��H��H���y��H�E�� ��,H����H�p����H��H��E����]�H�H�5H��1���H�5H���M�t$M����(I�����(�H�A��L$H�L$
�;DI��K�t�H���X��D9|$~�H�5H���I�GL;|$uʺH�5H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$ D��H��H���7��H�E�� �t)H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H�����H�E�� ��(H����H�p�����E����NH��H���H�H�5H��1���H�5H���H�5H���I�L$D��H��H���1��H�E�� �&H����H�p��Z��E��t�H��H����H�5H����
H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H����E����\H��H���H�H�5H��1���H�5H���H�5H���I�L$ D��H��H�����H�E�� ��$H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H���:��H�E�� �:$H����H�p��c��E�������H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�� ���E���yMH��H���H�H�51�H����H�5H���I�t$H���[���H�5H���I�|$��0#H��H���H�H�5H��1���H�5H���H�5H���I�L$D��H��H���b��H�E�� �%"H����H�p����E������H��H����H�5H����2H�5H����H�5H���H��H����H�5H����#H�5H����H�5H���H��H����H�5H����%H�5H����H�5H���H��H���H�H�51�H����H�5H���I�t$H������H�5H���I�|$���!H��H���H��C���E������H��H����H�5H����H�5H����H�5H���H��H����H�5H����#H�5H����H�5H���H��H����H�5H����H�5���H��H��E���Y?�H�H�5H��1���H�5H���H�5H���I�L$D��H��H������H�E�� ��'H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H���<���H�E�� �!'H����H�p�H���I�|$ �H��H����^�E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$ D��H��H��詿��H�E�� �H0H��H�ƃ�H������E���~XH��H���H�H��H�51���H�5H���I�|$�H��H����H�5H����ؿ��H��H��E��t���H�5H����(H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H����H��H��E����K�H�H��H�51��H�ߺH�5�H�ߺH�5�I�T$H��1�H�5��H�5H����d���E���{�H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5��H��H��E���j7�H�H��H�51���H��H�5�I�D$H�t$H���D$$�D$�D$��H�5H����$���E���?���H��H����H�5H����H�5H����H�5H���H��H����H�5H����#H�5H����H�5H���H��H����H�5H����H�5����E���SUH��H���H�H�51�H����H�5H���I�T$H��1�H�5��H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�L$D��H��H���ݺ��H�E�� �+H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$ D��H��H���V���H�E�� ��H����H�p�����E�����H��H����H�5H����H�5H����H�5H���H��H����H�5H����
H�5H����H�5H���H��H����H�5H����H�5����E������H��H����H�5H����H�5H����H�5H���H��H����H�5H����6H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�H�51�H����H�5H���I�T$H��1�H�5��H�5H���H��H���H����E����H��H����H�5H����!H�5H����H�5H���H��H����H�5H����
H�5H����H�5H���H��H����H�5H����H�5���E���/@H��H���H�H�5H��1���H�5H���H�5H���I�L$D��H��H����H�E�� �NH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H���l���H�E�� �yH����H�p�長��E�������H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�� ���H��H��E���H=�H�H�5H��1���H�5H���H�5H���I�L$D��H��H�����H�E�� ��H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$ D��H��H���q���H�E�� �>H����H�p�隵��H��H��E���n3�H�H�5H��1���H�5H���H�5H���I�L$ D��H��H����H�E�� �H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H���k���H�E�� �wH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H�����H�E�� ��H����H�p��
���E�����H��H����H�5H����H�5H����H�5H���H��H����H�5H����#H�5H����H�5H���H��H����H�5H����H�5�}�H��H��E���.�H�H�51�H����H�5H���I�D$ H��H�p�/����H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�L$D��H��H���B���H�E�� �eH����H�p��k���E����BI�|$�0PH��H���H�H�51�H����H�5H����H�5H����H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�L$ D��H��H���X���H�E�� �PPH��H�ƃ�H��H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H���ί��H�E�� ��H����H�p����H��H��E���I3�H�H�5H��1���H�5H���H�5H���I�L$D��H��H���O���H�E�� ��H����H�p��x���E���0���H��H����H�5H����"H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�H�51�H����H�5H���I�|$�H��H����H�5H���H��H���H��V���E���T�H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��z�E�����H��H����H�5H����!H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5���E������H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����
H�5�6��H��H��E����>�H�H�5H��1���H�5H���H�5H���I�L$D��H��H�����H�E�� �QH����H�p��!���E���H�H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5��H��H��E���*�H�H�5H��1���H�5H���H�5H���I�L$D��H��H��販��H�E�� ��H����H�p��۪��H��H��E���%�H�H�5H��1���H�5H���H�5H���I�L$D��H��H���3���H�E�� �fH����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H��謨��H�E�� ��H����H�p��թ��H��H��E����C�H�H�5H��1���H�5H���H�5H���I�L$D��H��H���-���H�E�� �_
H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$D��H��H��覧��H�E�� �qH����H�p��Ϩ��H��H��E���dE�H�H�5H��1���H�5H���H�5H���I�L$ D��H��H���'���H�E�� ��
H����H�p��P���H��H��E���{�H�H�51�H����H�5H���I�t$H���=����H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�L$ D��H��H���P���H�E�� ��H����H�p��y���H��H��E�����H�H�51�H����H�5H���I�t$H���f����H�5H���H��H���H�H�5H��1���H�5H���H�5H���I�L$D��H��H���y���H�E�� �H����H�p�H���H��H���E��H��H�H�H�5HD�1���H�5H���H�5H���I�L$ D��H��H����H�E�� �<H����H�p�����E���ӱ��H��H����H�5H����/H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5���H��H��E���٧����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H����E�����H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5�7���E���P���H��H����H�5H����!H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5���H�=H��1��DH�EH�p��?���H�EH�p�院��H�EH�p�鴲��H�EH�p��y���H�EH�p��i���H�EH�p��Y���H�EH�p��I���H�EH�p����H�EH�p��,���H�EH�p�����H�EH�p�����H�EH�p��-��H�EH�p��	��H�EH�p����H�EH�p����H�EH�p���H��H���H�H�5H��1���H�5H����H�5���H��H���H�붺H�5H����d��H�EH�p��O���H�EH�p��B���H�EH�p����H�EH�p���H�EH�p�����H�EH�p��3���H�EH�p�����H�EH�p���H�EH�p��4���H�H�5H��1���H�5H���I�D$ H��H�p����H�5H���H��H���H�H�51�H����H�5H���I�D$ H��H�p 舞���H�5H���H��H���H��!��H�EH�p��9��H�EH�p�隠��H�EH�p����H�EH�p����H�EH�p����H�EH�p��²��H�EH�p�� ��H�EH�p�黟��H�EH�p�鮟��H�H�5H��1���H�5H���I�t$H��话���H�5H���H��H���H��B���H�EH�p�麧��H�EH�p��0���H�EH�p��\��H�EH�p�����H�EH�p��	�����H�5H����H�5H����H�5H���H��H����H�5H����%H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�H�51�H����H�5H���I�D$ H��H�p�,����H�5H���H��H���H���H�EH�p�麝��H�EH�p����H�EH�p�頝��H�EH�p��_��H�EH�p�����H�EH�p��y���H�EH�p����H�EH�p��_���H�EH�p��R���H�EH�p��E�����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����
H�5H����H�5H���H��H���H�H�51�H����H�5H���I�t$H���l����H�5H���H��H���H��v���H�EH�p���H�EH�p����H�EH�p����H�EH�p��ӛ��H�EH�p��ƛ����H�5H����
H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�H�51�H����H�5H���I�t$H������H�5H���H��H���H���H�EH�p��{���H�EH�p��n���H�EH�p��a���H�EH�p��T���H�EH�p�����H�EH�p��I��H�EH�p��-���H�EH�p���H�EH�p����H�EH�p�����H�EH�p���H�H�5H��1���H�5H���I�t$H������H�5H���H��H���H�鶛��H�EH�p�鈙��H�EH�p��{���H�EH�p��n���H�EH�p��*���H�EH�p�钵��H�H�5H��1���H�5H���I�D$ H��H�p�Q����H�5H���H��H���H�H�51�H����H�5H���I�D$ H��H�p ����H�5H���H��H���H�H�51�H����H�5H���I�D$ H��H�p(虖���H�5H���H��H���H�����H�EH�p��˲��H�H�5H��1���H�5H���I�D$ H�5H�ߋP1���H�5H���H��H���H����H�EH�p��d�����H�5H����H�5H����H�5H���H��H����H�5H����PH�5H����H�5H���H��H����H�5H����>H�5H����H�5H���H��H���H�H�51�H����H�5H���I�D$ H�5H�ߋP1���H�5H���H��H���H�鸯��H�EH�p��D���H�EH�p��F���H�EH�p��9���H�EH�p��c���H�H�5H��1���H�5H���I�t$H���-����H�5H���H��H���H�霺��H�EH�p�����H�EH�p�鮕��H�EH�p�顕��H�EH�p������H�5H����H�5H����H�5H���H��H����H�5H����%H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�H�51�H����H�5H���I�t$H��軒���H�5H���H��H���H��P�H�EH�p��h���H�EH�p��<���H�EH�p��/���H�EH�p�����H�EH�p�������H�5H����H�5H����H�5H���H��H����H�5H����)H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�H�51�H����H�5H���I�t$H���<����H�5H���H��H���H��w���H�EH�p��ʒ��H�EH�p��j���H�EH�p�鰒��H�EH�p�飒����H�5H����H�5H����H�5H���H��H����H�5H����#H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�H�51�H����H�5H���I�t$H���ʏ���H�5H���H��H���H��4���H�EH�p��X���H�EH�p��7���H�EH�p�飔��H�EH�p��1���H�EH�p�鎖��H��H���H�H�5H��1���H�5H���H�5H���I�L$D��H��H��腏��H�E�� u5H��H�ƃ�H��H���隥��H�EH�p��@���H�EH�p�鍐��H�EH�p��ϺH�5H���鱳���H�5H���阳����H�5H����H�5H����H�5H���H��H����H�5H����!H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��v���H��H����H�5H����H�5H����H�5H���H��H����H�5H����"H�5H����H�5H���H��H����H�5H����H�5H����H�5H���I�|$���-H��H���H��a�����H�5H����"H�5H����H�5H���H��H����H�5H����#H�5H����H�5H���H��H����H�5H����(H�5H����H�5H���H��H���H��!�����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H����H��H����H�5H����!H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5�3����H�5H����H�5H����H�5H���H��H����H�5H����*H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��Ø����H�5H����H�5H����H�5H���H��H����H�5H����FH�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�����H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����%H�5�ؚ����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�麕����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��+�����H�5H����H�5H����H�5H���H��H����H�5H����4H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��?�����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H������H�5H���� H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��!��H��H����H�5H����H�5H����H�5H���H��H����H�5H����&H�5H����H�5H���H��H����H�5H����H�5H����H�5H���I�|$��"H��H���H��-�����H�5H����H�5H����H�5H���H��H����H�5H����!H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��Q�����H�5H����H�5H����H�5H���H��H����H�5H����)H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��Ϳ����H�5H����H�5H����H�5H���H��H����H�5H����7H�5H����H�5H���H��H����H�5H����0H�5H����H�5H���H��H���H������H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H������H�5H����H�5H����H�5H���H��H����H�5H����5H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��q�����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��%�����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��@}����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�������H�5H����H�5H����H�5H���H��H����H�5H����4H�5H����H�5H���H��H����H�5H���� H�5H����H�5H���H��H���H������H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H������H�5H����H�5H����H�5H���H��H����H�5H����)H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��͈��H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5魱����H�5H����
H�5H����H�5H���H��H����H�5H����0H�5H����H�5H���H��H����H�5H����%H�5H����H�5H���H��H���H�����H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5����H��H����H�5H����.H�5H����H�5H���H��H����H�5H����+H�5H����H�5H���H��H����H�5H����H�5�e�����H�5H����H�5H����H�5H���H��H����H�5H����-H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��f~����H�5H����H�5H����H�5H���H��H����H�5H����;H�5H����H�5H���H��H����H�5H����8H�5H����H�5H���H��H���H�鵥����H�5H����
H�5H����H�5H���H��H����H�5H����AH�5H����H�5H���H��H����H�5H����0H�5H����H�5H���H��H���H��u�����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�������H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��[�����H�5H����%H�5H����H�5H���H��H����H�5H����!H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��X�����H�5H����H�5H����H�5H���H��H����H�5H����7H�5H����H�5H���H��H����H�5H����0H�5H����H�5H���H��H����H�5H����0H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H�������H�5H����
H�5H����H�5H���H��H����H�5H����&H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��o��H��H����H�5H����H�5H����H�5H���H��H����H�5H����2H�5H����H�5H���H��H����H�5H����H�5H����H�5H���I�|$��H��H���H�H�51�H����H�5H���I�t$H���l���H�5H���H��H���H�H��H�51��H�ߺH�5�H�ߺH�5��H�5H����X�����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��h�����H�5H����	H�5H����H�5H���H��H����H�5H����DH�5H����H�5H���H��H���H��ǡ����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��۟��H��H����H�5H����H�5H����H�5H���H��H����H�5H���� H�5H����H�5H���H��H����H�5H����H�5� ���H��H����H�5H����
H�5H����H�5H���H��H����H�5H����+H�5H����H�5H���H��H����H�5H����!H�5�K�����H�5H����H�5H����H�5H���H��H����H�5H����6H�5H����H�5H���H��H����H�5H����(H�5H����H�5H���H��H���H����H��H����H�5H����H�5H����H�5H���H��H����H�5H����'H�5H����H�5H���H��H����H�5H����H�5����H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5�)���H��H����H�5H����H�5H����H�5H���H��H����H�5H����6H�5H����H�5H���H��H����H�5H����H�5�֬����H�5H����H�5H����H�5H���H��H����H�5H����&H�5H����H�5H���H��H����H�5H����8H�5H����H�5H���H��H���H��Ɨ����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��F���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����
H�5�؋����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��@�����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H����H�5H����H�5H����H�5H���H��H���H��¹���E��H��H�H�H�5HD�1���H�5H����H�5�a��H��H���H�H�51�H����H�5H���I�t$H���`���H�5H���H��H���H���H��H���H�H�51�H����H�5H����H�5H����H�5H���H��H���H��\���H�EH�p�鱯��H��H���H�H��H�51��H�ߺH�5�H�ߺH�5��H�5H����~b��H��H���H��H��H���H��Ku��ff.�@��ATI��H�=U����S��H�=H���L���H��H���_��H��[]A\�fD��H�H������At-��bt��t�H�H��t��f�H���H� H��t��f���H�H������At5��bt 1���tÐH�WH��t�H�H���H�G H����H� H�H�Ѓ�H�f���USH��H��H�H������b� H�Hc�H�>���H��H�{�H�C H��[]�H�o H��tFH�}H��t�H�}H��t�H�}@H��t�H�}0H��t�H�}8H��t�H�CH��[]�fD1��@H� �H�C�|���fDH����DH�G�]����H��H�{�H�C �;���DH�C H�H�4��H�{�1������H�{�H�{�H�{ �1����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign(null):(internal variable)nd_head (current statement)nd_headnd_next (next block)nd_nextnd_cond (condition expr)nd_condnd_body (then clause)nd_bodynd_else (else clause)nd_elsend_head (case expr)nd_body (when clauses)nd_head (when value)nd_body (when clause)nd_next (next when clause)nd_cond (condition)nd_body (body)nd_iter (iteration receiver)nd_iternd_stts (value)nd_sttsnd_head (body)nd_resq (rescue clause list)nd_resqnd_else (rescue else clause)nd_args (rescue exceptions)nd_argsnd_body (rescue clause)nd_head (next rescue clause)nd_ensr (ensure clause)nd_ensrnd_1st (left expr)nd_1stnd_2nd (right expr)nd_2ndnd_value (rhsn)nd_valuend_head (lhsn)nd_args (splatn)nd_value (rvalue)nd_else (extension)nd_recv (receiver)nd_recvnd_args->nd_body (index)nd_args->nd_bodynd_args->nd_head (rvalue)nd_args->nd_headnd_next->nd_mid (operator)nd_next->nd_midnd_head (variable)nd_args (arguments)nd_midnd_mid (method id)nd_head (element)nd_next (next element)nd_head (contents)nd_head (arguments)nd_vidnd_vid (local variable)nd_entrynd_entry (global variable)nd_nth (variable)nd_nthnd_litnd_lit (regexp)nd_recv (regexp (receiver))nd_value (string (argument))nd_recv (string (receiver))nd_value (regexp (argument))nd_lit (literal)nd_next->nd_headnd_next->nd_nextnd_head (preceding array)nd_body (following array)nd_body (following element)nd_head (splat'ed array)nd_head (other arguments)nd_body (block argument)nd_defn (method definition)nd_defnu1.node (new name)u1.nodeu2.node (old name)u2.nodeu2.idu2.id (old name)nd_cpath (class path)nd_cpathnd_super (superclass)nd_supernd_body (class definition)nd_cpath (module path)nd_body (module definition)nd_head (receiver)nd_mid (constant name)nd_beg (begin)nd_begnd_end (end)nd_endnd_head (expr)nd_body (END clause)nd_head (prelude)nd_body (lambda clause)nd_next (next)nd_1st (rest argument)nd_2nd (post arguments)nd_ainfo->pre_initnd_ainfo->post_initnd_ainfo->opt_argsnd_ainfo->kw_argsnd_ainfo->kw_rest_argnd_tbl (local table)nd_tbl(null node)
@ %s (line: %d)| # statement sequenceformat: [nd_head]; [nd_next]example: foo; bar+- %s:|       if statementcase statementwrapper for -n optionexample: ruby -ne 'p $_'while statementuntil statementmethod call with blockexample: 3.times { foo }for statementformat: break [nd_stts]example: break 1next statementformat: next [nd_stts]example: next 1return statementformat: return [nd_stts]example: return 1redo statementformat: redoexample: redoretry statementformat: retryexample: retrybegin statementformat: begin; [nd_body]; endexample: begin; 1; endrescue clauserescue clause (cont'd)ensure clause&& operatorformat: [nd_1st] && [nd_2nd]example: foo && bar|| operatorformat: [nd_1st] || [nd_2nd]multiple assignmentexample: a, b = foo local variable assignmentexample: x = fooexample: 1.times { x = foo }instance variable assignmentexample: @x = fooclass variable assignmentexample: @@x = foo(required keyword argument)global variable assignmentexample: $x = fooconstant declarationexample: X = foonot usedexample: ary[1] += fooattr assignment with operatorexample: struct.field += foo0 (||)1 (&&)assignment with && operatorexample: foo &&= barassignment with || operatorexample: foo ||= barmethod invocationexample: obj.foo(1)function callformat: [nd_mid]([nd_args])example: foo(1)format: [nd_mid]example: foosuper invocationformat: super [nd_args]example: super 1format: superexample: superarray constructorexample: [1, 2, 3]return argumentsexample: return 1, 2, 3empty array constructorformat: []example: []hash constructorformat: { [nd_head] }example: { 1 => 2, 3 => 4 }yield invocationformat: yield [nd_head]example: yield 1local variable referenceformat: [nd_vid](lvar)example: xdynamic variable referenceformat: [nd_vid](dvar)example: 1.times { x = 1; x }instance variable referenceformat: [nd_vid](ivar)example: @xconstant referenceformat: [nd_vid](constant)example: Xclass variable referenceformat: [nd_vid](cvar)example: @@xglobal variable referenceformat: [nd_entry](gvar)example: $xformat: $[nd_nth]example: $1, $2, ..$%ldexample: $&, $`, $', $+example: if /foo/; foo; endexample: /foo/ =~ 'foo'example: 'foo' =~ /foo/literalformat: [nd_lit]example: 1, /foo/string literalexample: 'foo'xstring literalexample: `foo`example: "foo#{ bar }baz"example: `foo#{ bar }baz`example: /foo#{ bar }baz/example: /foo#{ bar }baz/oexample: :"foo#{ bar }baz"interpolation expressionformat: "..#{ [nd_lit] }.."example: foo(*ary, post_arg)splat argumentformat: *[nd_head]example: foo(*ary)arguments with block argumentexample: foo(x, &blk)method definitionexample; def foo; bar; endnd_mid (method name)singleton method definitionmethod alias statementexample: alias bar fooexample: alias $y $xu1.id (new name)format: undef [u2.node]example: undef fooclass definitionmodule definitionexample: module M; ..; endsingleton class definitionscoped constant referenceformat: [nd_head]::[nd_mid]example: M::Ctop-level constant referenceformat: ::[nd_mid]example: ::Objectrange constructor (incl.)format: [nd_beg]..[nd_end]example: 1..5range constructor (excl.)format: [nd_beg]...[nd_end]example: 1...5flip-flop condition (incl.)flip-flop condition (excl.)selfformat: selfexample: selfnilformat: nilexample: niltrueformat: trueexample: truefalseformat: falseexample: falsevirtual reference to $!format: rescue => idexample: rescue => iddefined? expressionformat: defined?([nd_head])example: defined?(foo)post-executionformat: END { [nd_body] }example: END { foo }attr assignmentexample: struct.field = foo1 (self)pre-executionexample: bar; BEGIN { foo }lambda expressionformat: -> [nd_body]example: -> { foo }optional argumentskeyword argumentspost argumentsexample: a, *rest, z = foomethod parameters%dnew scope(empty),dump_node: unknown node: %s (while-end)nd_vid (variable)nd_vid (operator)nd_next->nd_vid (reader)nd_next->nd_aid (writer)nd_next->nd_vidnd_next->nd_aidnd_alen (length)nd_alennd_ainfo->first_post_argnd_ainfo->rest_argnd_ainfo->block_argnd_ainfo->post_args_numnd_ainfo->pre_args_numu1.id (begin-end-while)nd_state (begin-end-while?)nd_state0 (see extension field)# nd_next->nd_head (preceding string)nd_next->nd_next (interpolation)nd_body (singleton class definition)nd_ainfo->pre_init (initialization of (pre-)arguments)nd_ainfo->post_init (initialization of post-arguments)nd_ainfo->opt_args (optional arguments)nd_ainfo->kw_args (keyword arguments)nd_ainfo->kw_rest_arg (keyword rest argument)format: if [nd_cond] then [nd_body] else [nd_else] endexample: if x == 1 then foo else bar endformat: case [nd_head]; [nd_body]; endexample: case x; when 1; foo; when 2; bar; else baz; endformat: when [nd_head]; [nd_body]; (when or else) [nd_next]format: ruby -ne '[nd_body]' (nd_cond is `gets')format: while [nd_cond]; [nd_body]; endexample: while x == 1; foo; endformat: until [nd_cond]; [nd_body]; endexample: until x == 1; foo; endformat: [nd_iter] { [nd_body] }format: for * in [nd_iter] do [nd_body] endexample: for i in 1..3 do foo endformat: begin; [nd_body]; (rescue) [nd_resq]; else [nd_else]; endexample: begin; foo; rescue; bar; else; baz; endformat: rescue [nd_args]; [nd_body]; (rescue) [nd_head]format: begin; [nd_head]; ensure; [nd_ensr]; endexample: begin; foo; ensure; bar; endformat: [nd_head], [nd_args] = [nd_value]-1 (rest argument without name)format: [nd_vid](lvar) = [nd_value]dynamic variable assignment (out of current scope)format: [nd_vid](dvar) = [nd_value]example: x = nil; 1.times { x = foo }dynamic variable assignment (in current scope)format: [nd_vid](current dvar) = [nd_value]format: [nd_vid](ivar) = [nd_value]format: [nd_vid](cvar) = [nd_value]format: [nd_entry](gvar) = [nd_value]format: [nd_else]::[nd_vid](constant) = [nd_value]array assignment with operatorformat: [nd_value] [ [nd_args->nd_body] ] [nd_vid]= [nd_args->nd_head]format: [nd_value].[attr] [nd_next->nd_mid]= [nd_value]          where [attr] reader: [nd_next->nd_vid]                [attr] writer: [nd_next->nd_aid]format: [nd_head] &&= [nd_value]format: [nd_head] ||= [nd_value]format: [nd_recv].[nd_mid]([nd_args])function call with no argumentsuper invocation with no argumentformat: [ [nd_head], [nd_next].. ] (length: [nd_alen])nth special variable referenceback special variable referencematch expression (against $_ implicitly)format: [nd_lit] (in condition)match expression (regexp first)format: [nd_recv] =~ [nd_value]match expression (regexp second)string literal with interpolationxstring literal with interpolationregexp literal with interpolationregexp literal with interpolation and once flagsymbol literal with interpolationsplat argument following argumentsformat: ..(*[nd_head], [nd_body..])example: foo(*ary, post_arg1, post_arg2)splat argument following one argumentformat: ..(*[nd_head], [nd_body])format: ..([nd_head], &[nd_body])format: def [nd_mid] [nd_defn]; endformat: def [nd_recv].[nd_mid] [nd_defn]; endexample; def obj.foo; bar; endformat: alias [u1.node] [u2.node]global variable alias statementformat: alias [u1.id](gvar) [u2.id](gvar)format: class [nd_cpath] < [nd_super]; [nd_body]; endexample: class C2 < C; ..; endformat: module [nd_cpath]; [nd_body]; endformat: class << [nd_recv]; [nd_body]; endexample: class << obj; ..; endexample: if (x==1)..(x==5); foo; endexample: if (x==1)...(x==5); foo; endformat: [nd_recv].[nd_mid] = [nd_args]format: BEGIN { [nd_head] }; [nd_body]format: def method_name([nd_body=some], [nd_next..])example: def foo(a, b=1, c); endexample: def foo(a:1, b:2); endformat: *[nd_1st], [nd_2nd..] = ..format: def method_name(.., [nd_opt=some], *[nd_rest], [nd_pid], .., &[nd_body])example: def foo(a, b, opt1=1, opt2=2, *rest, y, z, &blk); endnd_ainfo->pre_args_num (count of mandatory (pre-)arguments)format: [nd_tbl]: local table, [nd_args]: arguments, [nd_body]: bodynd_ainfo->first_post_arg (first post argument)nd_ainfo->rest_arg (rest argument)nd_ainfo->block_arg (block argument)nd_ainfo->post_args_num (count of mandatory post-arguments)###########################################################
## Do NOT use this node dump for any purpose other than  ##
## debug and research.  Compatibility is not guaranteed. ##
###########################################################

GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�4za�A�J e
G�A�GDI�H�`T��B�B�B �B(�A0�D8�G`�
8A0A(B BBBA�
8A0A(B BBBA(�JF�K�H �mAB�N�W4bE�A�G E
AADW
AAG!%9"Qj#��$��%��zzz3!�J���T!�wz��z����'�'�/��"#$%!LQV	[3b1i%p�v�}��9���@�����<�����Q�p�Z�y���$���	�C�z���	Z_l�$�*�0r6<B(HPN�T[bi�p�w�~��]�w���b�H�i������V�i���`���X������0��� 8'=.A5M<C"J/Q�Xp
_�e�k�r�y��������Z����I�/��������v������5�&�A�X�
���	
#
*'
1�	8�	?�	F�M�T�[w`�g�n�u�|,���x�����������A��u�����6	�D	�\	�t�l�	�@		OH��$�+>2 9X@�F�L(	SX	Z�aygkm�t�{������X���'���?�W�b��
����������
��
�p�
�
�
VN%6+17�>0E�L�S
Za|h�ntC{S��	�b������	��	��	�����X
���h�|
��
������0
�w�m �'.u4�;�BI>O�V�]
d�k�qB
xP
l
�/�H�[���o���N����P�x��
�@�.
���H�h	-		B	*	�	�$	�+	�2	�9	�@	 G	N	�T	$[	�b	3i	xp	�
w	�
~	�	.�	8�	G�	Z�	~�	�
�	��	��	 
�	P
�	��	�	Z�	�	�
�	'�	6�	P
*
�
�

$
+
2
p9
	@
jG
�N
YT
�	[
�	b
�i
�o
ev
�
}
u�
m�
��
��
��
�
��
(�
��
�
�
8�
�
��
n�
�
��
��
~�
��
�;8K �'�.�5Q<�C�J�QHXS_kf�m�t�{��m	�|	��	��
�p������
��
����i��������8����{
�6
F
 d
'�.|50<XCJqQHX�_�f�m�t�
{��?�+���@���Q��������c���	�H�[�x����



`
�
h
�&
^+
�2
�9
 @
%G
4N
U
'\
�c
�j
�p
x	w
�~
��
��
��
��
+�
E�
^�
�
�
�
�
�
�
��
��
��
�
�
		

 &'(.DOYgv�����0�J����N��СW0�b3.annobin_node.c.annobin_node.c_end.annobin_node.c.hot.annobin_node.c_end.hot.annobin_node.c.unlikely.annobin_node.c_end.unlikely.annobin_node.c.startup.annobin_node.c_end.startup.annobin_node.c.exit.annobin_node.c_end.exit.annobin_add_id.start.annobin_add_id.endadd_id.annobin_dump_node.start.annobin_dump_node.enddump_node.annobin_rb_parser_dump_tree.start.annobin_rb_parser_dump_tree.end.annobin_rb_gc_free_node.start.annobin_rb_gc_free_node.end.annobin_rb_node_memsize.start.annobin_rb_node_memsize.end.annobin_rb_gc_mark_node.start.annobin_rb_gc_mark_node.end.LC0.LC1.LC2.LC126.LC125.LC124.LC10.LC131.LC133.LC4.LC132.LC19.LC45.LC326.LC189.LC53.LC54.LC92.LC94.LC93.LC95.LC431.LC89.LC86.LC88.LC87.LC127.LC373.LC374.LC375.LC370.LC371.LC372.LC83.LC84.LC82.LC66.LC74.LC76.LC75.LC98.LC97.LC102.LC104.LC103.LC357.LC358.LC359.LC101.LC354.LC355.LC356.LC79.LC78.LC35.LC190.LC37.LC111.LC6.LC109.LC430.LC407.LC113.LC429.LC114.LC425.LC426.LC427.LC116.LC119.LC118.LC121.LC120.LC367.LC368.LC369.LC364.LC365.LC366.LC360.LC361.LC39.LC42.LC224.LC225.LC226.LC52.LC416.LC417.LC50.LC415.LC46.LC49.LC48.LC376.LC377.LC378.LC60.LC265.LC266.LC267.LC61.LC62.LC262.LC263.LC264.LC26.LC25.LC12.LC27.LC167.LC168.LC169.LC164.LC165.LC166.LC434.LC432.LC413.LC8.LC144.LC145.LC146.LC433.LC18.LC141.LC142.LC143.LC16.LC17.LC14.LC9.LC11.LC5.LC123.LC411.LC29.LC23.LC153.LC156.LC157.LC22.LC21.LC150.LC151.LC152.LC20.LC194.LC195.LC196.LC414.LC191.LC192.LC193.LC40.LC41.LC284.LC285.LC286.LC67.LC65.LC280.LC281.LC271.LC272.LC273.LC203.LC204.LC205.LC421.LC57.LC250.LC251.LC252.LC245.LC246.LC247.LC420.LC56.LC242.LC243.LC244.LC36.LC181.LC182.LC183.LC34.LC33.LC32.LC30.LC31.LC200.LC201.LC202.LC435.LC301.LC293.LC302.LC72.LC73.LC297.LC298.LC299.LC300.LC259.LC260.LC261.LC161.LC162.LC163.LC71.LC69.LC305.LC306.LC236.LC237.LC238.LC55.LC292.LC294.LC303.LC304.LC412.LC206.LC410.LC418.LC419.LC51.LC207.LC208.LC209.LC63.LC348.LC349.LC350.LC100.LC99.LC233.LC234.LC235.LC422.LC423.LC424.LC117.LC428.LC115.LC403.LC404.LC405.LC406.LC112.LC47.LC230.LC231.LC232.LC44.LC333.LC334.LC335.LC336.LC90.LC323.LC324.LC325.LC223.LC222.LC330.LC331.LC332.LC85.LC400.LC401.LC402.LC110.LC311.LC312.LC313.LC77.LC317.LC318.LC319.LC80.LC307.LC308.LC345.LC346.LC347.LC214.LC215.LC216.LC362.LC363.LC382.LC383.LC384.LC106.LC379.LC380.LC381.LC105.LC398.LC396.LC399.LC282.LC278.LC283.LC64.LC290.LC288.LC291.LC70.LC385.LC386.LC387.LC320.LC321.LC322.LC81.LC186.LC187.LC188.LC38.LC176.LC177.LC175.LC28.LC253.LC254.LC255.LC58.LC339.LC340.LC341.LC91.LC351.LC352.LC353.LC392.LC393.LC394.LC108.LC309.LC310.LC395.LC397.LC337.LC338.LC342.LC343.LC344.LC96.LC158.LC159.LC160.LC178.LC179.LC180.LC24.LC184.LC185.LC197.LC198.LC199.LC327.LC328.LC329.LC134.LC140.LC139.LC15.LC173.LC174.LC170.LC171.LC172.LC277.LC279.LC314.LC315.LC316.LC217.LC218.LC219.LC220.LC221.LC389.LC390.LC391.LC107.LC210.LC211.LC212.LC43.LC213.LC256.LC257.LC258.LC59.LC408.LC409.LC122.LC128.LC129.LC130.LC3.LC227.LC228.LC229.LC154.LC155.LC135.LC136.LC7.LC147.LC148.LC149.LC295.LC296.LC248.LC249.LC137.LC138.LC13.LC287.LC289.LC68.LC268.LC269.LC270.LC274.LC275.LC276.LC239.LC240.LC241.LC388.LC436.LC437.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_str_catrb_id2strrb_str_concatruby_node_namerb_str_catfrb_str_cat_cstrrb_str_resizerb_inspectrb_bugrb_parser_dump_treerb_str_new_staticrb_gc_free_noderuby_xfreerb_node_memsizerb_gc_mark_noderb_gc_markrb_gc_mark_locationsrb_gc_mark_maybe
$��������-���������?%��������I���������p&�����������������������������'�������������������(������������������������������������)��������%���������1(��������9���������\���������c*��������j+��������t����������(�������������������,���������������������������������������-���������+�����������������(����������������� .��������(���������[���������f���������s*��������z/���������+�������������������(�������������������,����������������������������0��������
+�����������������#(��������+���������2.��������:���������p���������{����������1���������+�������������������2�������������������(�����������������������������3���������+������������������(�����������������,�����������������[���������b4��������i+��������s���������z2�������������������(�����������������������������5���������+�������������������(�������������������.������������������/���������:���������G6��������N7��������U+��������`���������l(��������t���������{.���������������������������������������*���������8���������+�������������������(������������������,��������
���������N���������U9��������\+��������f���������r2��������z����������(�����������������������������:�������������������;���������+�������������������(�������������������.�����������������4���������?���������L<��������S=��������Z+��������e���������q(��������y����������,�����������������������������<���������+�������������������(�������������������,�����������������K���������W>��������_���������k?��������s���������(�����������������������������>�������������������@�������������������(�����������������������������>�������������������A��������	���������	>��������&	���������2	B��������:	���������F	(��������N	���������Y	���������e	>��������m	���������y	C���������	����������	(���������	����������	����������	>���������	����������	D���������	����������	0���������	+���������	����������	(��������
���������
.��������
���������G
���������R
���������b
1��������i
+��������s
���������
2���������
����������
(���������
����������
����������
E���������
+���������
����������
(���������
����������
,���������
���������2���������94��������@+��������J���������V2��������^���������w(����������������������������F���������+�������������������(�������������������,������������������	���������-��������+��������!���������-(��������5���������<.��������D���������w��������������������*���������G���������+�������������������(�������������������,������������������
���������
-��������
+��������'
���������3
(��������;
���������B
,��������J
����������
����������
H���������
+���������
����������
2���������
����������
����������
����������
(���������
����������
����������
I���������
+�����������������(�����������������!.��������)���������`���������k���������xJ��������K���������+�������������������(�������������������,����������������������������*��������
+����������������� (��������(���������/,��������7���������{����������0���������+�������������������(�������������������.��������������������������������������*��������L��������+�����������������&(��������.���������5,��������=��������������������5���������+�������������������(�������������������.��������������������������������������*��������M��������+�������� ���������,(��������4���������;,��������C��������������������N���������+�������������������(�������������������.�������������������������������������
O��������P��������+��������&���������2(��������:���������A,��������I��������������������>�������������������Q�������������������(�����������������������������>�������������������R������������������(��������������������������'>��������/���������;S��������C���������O(��������W���������b���������iT�������������������>�������������������U�������������������(�����������������������������>�������������������V�������������������(��������������������������>��������$���������0W��������I���������P-��������W+��������a���������m(��������u���������|.���������������������������������������*���������X���������+�������������������(������������������,�����������������O���������V-��������]+��������g���������s(��������{����������.���������������������������������������*���������Y���������+�������������������(�����������������	,�����������������a���������hZ��������o+��������y����������2�������������������[�������������������(�����������������������������\���������]���������+�������������������(������������������,��������	���������M���������T*��������[+��������e���������q(��������y����������.���������������������������������������^���������_���������+�������������������(�����������������,�����������������S���������Z-��������a+��������k���������w(������������������.�����������������������������4���������+�������������������2������������������(�����������������*���������1-��������8+��������B���������N(��������V���������],��������e��������������������*���������+�������������������(�������������������.���������������������������"���������/^��������6_��������=+��������H���������T(��������\���������c,��������k��������������������`���������+�������������������2�������������������a������������������(��������������������������b��������!+��������+���������7(��������?���������F.��������N������������������������������c���������+�������������������2�������������������a�������������������(����������������������������d��������
+����������������� (��������(���������/.��������7���������n���������y����������e���������+�������������������2�������������������(�����������������������������f���������+������������������2��������
���������'(��������/���������:���������Ag��������H+��������R���������^2��������f����������(�����������������������������h���������+�������������������(�������������������.������������������������������������ i��������'j��������.+��������9���������E(��������M���������T,��������\������������������������������k���������l���������+�������������������(�������������������,������������������/���������;>��������C���������Om��������W���������c(��������k���������v����������>�������������������n�������������������(�����������������������������>�������������������o������������������ >��������
 ��������� p�������� ���������* (��������2 ���������= ���������I >��������Q ���������] q��������e ���������q (��������y ���������� ���������� >��������� ���������� r��������� ���������� >��������� ���������� s��������� ���������� (��������� ���������!���������!>��������!���������$!V��������,!���������8!(��������@!���������K!���������W!>��������_!���������k!t���������!����������!-���������!+���������!����������!(���������!����������!.���������!����������!����������!���������
"u��������"v��������"+��������#"���������/"(��������7"���������>",��������F"����������"����������">���������"����������"w���������"����������"(���������"����������"����������">���������"����������"x���������"���������#(��������
#���������#���������$#>��������,#���������8#y��������@#���������L#(��������T#���������_#���������f#z��������#����������#0���������#+���������#����������#(���������#����������#.���������#����������#����������#���������${��������$+��������$���������%$2��������-$���������J$(��������R$���������]$���������d$|��������k$+��������u$����������$2���������$����������$(���������$����������$����������$}���������$+���������$����������$2���������$���������%(��������%���������(%���������5%u��������<%v��������C%+��������N%���������Z%(��������b%���������i%,��������q%����������%����������%0���������%+���������%����������%(���������%����������%.���������%���������#&���������.&���������>&~��������E&+��������O&���������[&2��������c&���������|&(���������&����������&����������&���������&+���������&����������&(���������&����������&.���������&���������'���������'���������'��������� '���������''+��������2'���������>'(��������F'���������M',��������U'����������'����������'>���������'����������'����������'����������'(���������'����������'����������'>���������'���������(���������(���������((�������� (���������+(���������7(>��������?(���������K(���������d(���������k(���������r(+��������|(����������(2���������(����������(����������(>���������(����������(����������(����������((���������(����������(����������(>��������)���������)���������)���������%)(��������-)���������8)���������D)>��������L)���������X)���������`)���������l)(��������t)���������)����������)����������)����������)����������)+���������)����������)2���������)����������)����������)>��������*���������
*���������*���������!*(��������)*���������4*���������@*>��������H*���������T*���������\*���������h*(��������p*���������{*����������*>���������*����������*����������*����������*-���������*+���������*����������*(���������*����������*.���������*���������"+���������-+���������:+���������A+���������H++��������S+���������_+(��������g+���������n+.��������v+����������+����������+����������+����������+����������++���������+����������+(���������+����������+,���������+���������A,���������H,*��������O,+��������Y,���������e,(��������m,���������t,,��������|,����������,����������,>���������,����������,����������,����������,(���������,���������-���������->��������-���������'-���������/-���������;-(��������C-���������N-���������Z->��������b-���������n-����������-����������->���������-����������-����������-����������-(���������-����������-����������->���������-����������-����������-���������.(��������
.���������.���������!.>��������).���������5.���������N.���������U.���������\.+��������f.���������r.2��������z.����������.a���������.����������.����������.����������.����������.(���������.����������.����������.����������.+���������.����������.(���������.���������/.��������/���������;/���������F/���������S/*��������Z//��������a/+��������l/���������x/(���������/����������/,���������/����������/����������/>���������/����������/����������/���������0(��������0���������0���������&0>��������.0���������:0���������B0���������N0(��������V0���������a0���������m0>��������u0����������0����������0����������0(���������0����������0����������0����������0+���������0����������02���������0����������0a���������0����������0���������1���������1���������1(��������1���������'1���������.1���������G1���������S1>��������[1���������g1���������o1���������{1(���������1����������1����������1>���������1����������1����������1����������1(���������1����������1����������1>���������1����������1���������2���������2-��������2+��������&2���������22(��������:2���������A2.��������I2���������|2����������2����������2*���������2����������2+���������2����������2(���������2����������2.���������2���������3���������3���������3^��������"3���������)3+��������43���������@3(��������H3���������O3,��������W3����������3����������3-���������3+���������3����������3(���������3����������3.���������3���������	4���������4���������!4*��������(4���������/4+��������:4���������F4(��������N4���������U4,��������]4����������4����������4����������4+���������4����������4(���������4����������4.���������4���������5���������5���������'5*��������.5���������55+��������@5���������L5(��������T5���������[5.��������c5����������5����������5����������5����������5����������5+���������5����������5(���������5����������5,���������5���������.6���������56-��������<6+��������F6���������R6(��������Z6���������a6.��������i6����������6����������6����������6^���������6����������6+���������6����������6(���������6����������6,���������6���������47���������;7���������B7+��������L7���������X72��������`7����������7����������7����������7(���������7����������7����������7����������73��������8+��������8���������8(��������#8���������*8.��������28���������e8���������p8���������}8*���������8/���������8+���������8����������8(���������8����������8,���������8����������8���������9���������9+��������9���������!9(��������)9���������09,��������89���������x9����������9>���������9����������9����������9����������9(���������9����������9����������9>���������9����������9����������9����������9(���������9���������:���������:>��������:���������&:���������.:���������::(��������B:���������M:���������T:���������m:���������t:���������{:+���������:����������:(���������:����������:.���������:����������:����������:����������:*���������:/��������;+��������;���������;(�������� ;���������';,��������/;���������s;���������;>���������;����������;����������;����������;(���������;����������;����������;>���������;����������;����������;����������;(���������;���������<���������
<>��������<���������!<���������)<���������5<(��������=<���������H<���������O<���������h<���������o<���������v<+���������<����������<2���������<����������<(���������<����������<����������<u���������<+���������<����������<(���������<����������<,��������=���������K=���������W=>��������_=���������k=���������s=���������=(���������=����������=����������=>���������=����������=����������=����������=(���������=����������=����������=>���������=����������=���������>���������
>(��������>��������� >���������'>���������.>+��������8>���������D>2��������L>���������e>(��������m>����������>����������>v���������>����������>>���������>����������>����������>����������>(���������>����������>����������>>���������>���������?���������?���������?(��������'?���������2?���������>?>��������F?���������R?���������k?���������r?u��������y?+���������?����������?(���������?����������?.���������?����������?����������?����������?-���������?����������?+��������
@���������@(��������@���������%@.��������-@���������`@���������w@����������@����������@����������@+���������@����������@(���������@����������@,���������@���������A���������AH��������A+��������A���������+A2��������3A���������=A���������HA���������TA(��������\A���������qA���������}A>���������A����������A����������A����������A(���������A����������A����������A>���������A����������A����������A����������A(���������A����������A���������B>��������B���������B���������'B���������3B(��������;B���������FB���������MB���������fB���������mB���������wB+��������~B����������B2���������B����������B����������B����������B����������B����������B(���������B����������B����������B>���������B���������	C���������C���������C(��������%C���������0C���������<C>��������DC���������PC���������XC���������dC(��������lC���������wC����������C>���������C����������C����������C����������C����������C+���������C����������C2���������C����������C���������D(��������D���������)D���������5D>��������=D���������ID���������QD���������]D(��������eD���������pD���������|D>���������D����������D����������D����������D(���������D����������D����������D>���������D����������D����������D����������D����������D+��������E���������E2��������E���������-E���������2E���������>E(��������FE���������QE���������XE-��������_E+��������iE���������uE(��������}E����������E.���������E����������E����������E����������E^���������E����������E+���������E����������E(��������F���������F,��������F���������WF���������cF>��������kF���������wF���������F����������F(���������F����������F����������F>���������F����������F����������F����������F(���������F����������F����������F>���������F���������G���������G���������*G>��������2G���������>G���������FG���������RG(��������ZG���������eG���������qG>��������yG����������G����������G����������G(���������G����������G����������G>���������G����������G����������G����������G(���������G����������G����������G���������H+��������H���������H2��������H���������0H���������5H���������AH(��������IH���������TH���������[H���������tH����������H>���������H����������H����������H����������H(���������H����������H����������H>���������H����������H����������H����������H(���������H���������I���������I>��������I���������"I���������;I���������BIZ��������II+��������SI���������_I(��������gI���������nI.��������vI����������I����������I����������I\���������I����������I+���������I����������I(���������I����������I,���������I���������AJ���������MJ>��������UJ���������aJ���������iJ���������uJ(��������}J����������J����������J>���������J����������J����������J����������J(���������J����������J����������J>���������J����������J����������J���������K(��������K���������K���������K���������6K���������=K-��������DK+��������NK���������ZK(��������bK���������iK.��������qK����������K����������K����������K����������K����������K+���������K����������K(���������K����������K,���������K���������<L���������CL���������JL+��������TL���������`L(��������hL���������oL.��������wL����������L����������L����������L*���������L����������L+���������L����������L(���������L����������L.���������L���������1M���������<M���������IM-��������PM���������WM+��������bM���������nM(��������vM���������}M,���������M����������M����������M>���������M����������M����������M����������M(��������N���������N���������N>��������$N���������0N���������8N���������DN(��������LN���������WN���������cN>��������kN���������wN����������N����������N����������N+���������N����������N2���������N����������N(���������N����������N����������Nu���������N+��������O���������O(��������O���������O,��������'O���������wO���������~O����������O+���������O����������O2���������O����������O����������O����������O(���������O����������O����������O����������O+���������O����������O(��������P���������	P.��������P���������GP���������RP���������_Pu��������fPv��������mP+��������xP����������P(���������P����������P,���������P����������P����������P*���������P+���������P���������Q(��������Q���������Q,��������Q���������^Q���������jQ>��������rQ���������~Q����������Q����������Q(���������Q����������Q����������Q>���������Q����������Q����������Q����������Q(���������Q����������Q����������Q>��������R���������R���������R��������� R(��������(R���������3R���������:R���������AR+��������KR���������WR2��������_R���������iR���������tR����������R(���������R����������R����������R����������R����������R>���������R����������R����������R����������R(���������R����������R���������S>��������S���������S���������"S���������.S(��������6S���������AS���������MS>��������US���������aS���������iS���������uS(��������}S����������S����������S����������S����������S>���������S����������S����������S����������S(���������S����������S����������S>��������T���������T���������T���������#T(��������+T���������6T���������BT>��������JT���������VT���������oT���������{T>���������T����������T����������T����������T(���������T����������T����������T>���������T����������T����������T����������T(���������T����������T���������	U>��������U���������U���������6U���������=U-��������DU+��������NU���������ZU(��������bU���������iU,��������qU����������U����������U>���������U����������U����������U����������U(���������U����������U���������V>��������V���������V���������$V���������0V(��������8V���������CV���������OV>��������WV���������cV���������|V����������V-���������V+���������V����������V(���������V����������V,���������V����������V���������W0��������	W+��������W���������W(��������'W���������.W.��������6W���������iW���������tW����������Wu���������W����������W+���������W����������W(���������W����������W,���������W���������X���������X0��������X+��������X���������%X(��������-X���������4X.��������<X���������oX���������zX����������Xu���������X����������X+���������X����������X(���������X����������X,���������X���������Y���������Y���������Y+��������Y���������+Y(��������3Y���������:Y,��������BY����������Y����������Y4���������Y+���������Y����������Y2���������Y����������Y(���������Y����������Y����������Y����������Y+���������Y���������Z(��������
Z���������Z,��������Z���������]Z���������dZ4��������kZ+��������uZ����������Z2���������Z����������Z(���������Z����������Z����������Z0���������Z+���������Z����������Z(���������Z����������Z.���������Z���������#[���������.[���������;[���������B[3��������I[+��������T[���������`[(��������h[���������o[,��������w[����������[����������[>���������[����������[����������[����������[(���������[���������\���������\>��������\���������"\���������*\���������6\(��������>\���������I\���������U\>��������]\���������i\����������\����������\>���������\����������\����������\����������\(���������\����������\����������\>���������\����������\����������\����������\(��������]���������]���������]>��������$]���������0]���������8]���������D](��������L]���������W]���������^]���������w]����������]>���������]����������]����������]����������](���������]����������]����������]>���������]����������]����������]����������](���������]���������^���������^>��������^���������%^���������>^���������J^>��������R^���������^^��������f^���������r^(��������z^����������^����������^>���������^����������^����������^����������^(���������^����������^����������^>���������^����������^���������^����������^��������_����������_���������`u��������
`+��������`��������� `2��������(`���������4`��������D`���������K`v��������Y`��������a`����������`���������`+���������`����������`2��������a���������$a(��������,a���������7a���������>a��������Ea+��������Oa���������[a2��������ca����������a(���������a����������a����������a��������b4��������"b+��������,b���������8b2��������@b���������Yb(��������ab���������lb���������sbF���������b����������b>���������b����������b���������b����������b(���������b���������c���������c>��������c���������%c	��������-c���������9c(��������Ac���������Lc���������Xc>��������`c���������lc
��������tc����������c(���������c����������c����������c���������c+���������c����������c2���������c����������c(���������c����������c����������cv���������d����������d>���������d����������d���������d����������d(���������d����������d����������d>���������d����������d
���������d����������d(��������e���������e���������e>��������$e���������0e��������8e���������De(��������Le���������We���������^e��������ee+��������oe���������{e2���������e����������e(���������e����������e����������e��������f���������
f>��������f���������!f��������)f���������5f(��������=f���������Hf���������Tf>��������\f���������hf��������pf���������|f(���������f����������f����������f>���������f����������f���������f����������f(���������f����������f����������f����������f+���������f����������f2��������g���������g(��������#g���������.g���������5g3���������g4���������g+���������g����������g2���������g���������h(��������h���������!h���������(h���������uh��������|h+���������h����������h2���������h����������h(���������h����������h����������h���������h+���������h����������h2���������h���������i(��������i���������&i���������-i��������4i+��������>i���������Ji2��������Ri���������oi(��������wi����������i����������i���������i���������i+���������i����������i2���������i����������ia���������i����������i(���������i����������i���������j��������j���������)j>��������1j���������=j��������Ej���������Qj(��������Yj���������dj���������pj>��������xj����������j���������j����������j(���������j����������j����������j>���������j����������j���������j����������j(���������j����������j����������j��������k+��������
k���������k2��������k���������*ka��������7k���������Ck(��������Kk���������Vk���������]k���������k����������k+���������k����������k2���������k����������k(���������k����������k����������k��������3l���������?l>��������Gl���������Sl ��������[l���������gl(��������ol���������zl����������l>���������l����������l!���������l����������l(���������l����������l����������l>���������l����������l"���������l����������l(���������l���������m���������m���������m+�������� m���������,m2��������4m���������Mm(��������Um���������`m���������gm#���������m����������m>���������m����������m$���������m����������m(���������m����������m���������n>��������
n���������n%��������!n���������-n(��������5n���������@n���������Ln>��������Tn���������`n&��������hn���������tn(��������|n����������n����������n'���������n+���������n����������n2���������n����������n(���������n����������n����������n(��������$o���������0o>��������8o���������Do)��������Lo���������Xo(��������`o���������ko���������wo>��������o����������o*���������o����������o(���������o����������o����������o>���������o����������o+���������o����������o(���������o����������o���������p1��������p+��������p���������p2��������%p���������>p(��������Fp���������Qp���������XpE���������p����������pZ���������p+���������p����������p(���������p����������p.���������p���������q���������Kq,��������Sq���������dq-��������lq���������vq����������q>���������q����������q.���������q����������q(���������q����������q����������q>���������q����������q/���������q����������q(���������q���������r���������r>��������r���������$r0��������,r���������8r(��������@r���������Kr���������Rr1��������br���������nr>��������vr����������r2���������r����������r(���������r����������r����������r>���������r����������r3���������r����������r(���������r����������r����������r>��������s���������s4��������s���������$s(��������,s���������Cs���������Js5��������Ts���������`s>��������hs���������ts6��������|s����������s(���������s����������s����������s>���������s����������s7���������s����������s(���������s����������s����������s>���������s���������t8��������
t���������t(��������t���������)t���������0t9��������:t���������Ft>��������Nt���������Zt:��������bt���������nt(��������vt����������t����������t>���������t����������t;���������t����������t(���������t����������t����������t>���������t����������t<���������t����������t(��������u���������u���������u=��������&u���������2u>��������:u���������Fu>��������Nu���������Zu(��������bu���������mu���������yu>���������u����������u����������u����������u(���������u����������u����������u>���������u����������u?���������u����������u>���������u����������u@��������v���������v(��������v���������%v���������1v>��������9v���������EvA��������Mv���������Yv(��������av���������lv���������xv>���������v����������vB���������v����������v(���������v����������v����������v#���������v����������v>���������v����������vC���������v����������v(��������w���������w���������w>��������w���������+wD��������3w���������?w(��������Gw���������Rw���������^w>��������fw���������rwE��������zw����������w(���������w����������w����������w#���������w����������w>���������w����������wF���������w����������w(���������w����������w���������x>��������x���������xR��������x���������+x(��������3x���������>x���������Jx>��������Rx���������^xG��������hx���������tx>��������|x����������xH���������x����������x(���������x����������x����������x>���������x����������xI���������x����������x(���������x����������x���������y>��������
y���������yJ��������y���������*y(��������2y���������=y���������DyK��������Ny���������Zy>��������by���������nyL��������vy����������y(���������y����������y����������y>���������y����������yM���������y����������y(���������y����������y����������y>���������y����������yN��������z���������z(��������z���������#z���������*zO��������4z���������@z>��������Hz���������TzP��������\z���������hz(��������pz���������{z����������z>���������z����������zQ���������z����������z(���������z����������z����������z>���������z����������zR���������z����������z(���������z���������	{���������{/��������{���������&{>��������.{���������:{S��������B{���������N{(��������V{���������a{���������m{>��������u{����������{T���������{����������{(���������{����������{����������{>���������{����������{U���������{����������{(���������{����������{����������{V��������|���������|>��������|��������� |W��������(|���������4|(��������<|���������G|���������S|>��������[|���������g|X��������o|���������{|(���������|����������|����������|>���������|����������|Y���������|����������|(���������|����������|����������|Z���������|����������|>��������}���������}[��������}��������� }(��������(}���������3}���������?}>��������G}���������S}\��������[}���������g}(��������o}���������z}����������}>���������}����������}]���������}����������}(���������}����������}����������}#���������}����������}>���������}����������}^��������~���������~(��������~���������%~���������1~>��������9~���������E~_��������M~���������Y~(��������a~���������l~���������x~>���������~����������~`���������~����������~(���������~����������~����������~a���������~����������~>���������~����������~b���������~����������~(��������������������������>�����������������+c��������3���������?(��������G���������R���������^>��������f���������rd��������z����������(�����������������������������e�������������������>�������������������f�������������������(�����������������������������>�������������������g������������������%�(��������-����������8����������D�>��������L����������X�h��������`����������l�(��������t����������������������i���������������������>���������������������j�������������������Ā(��������̀���������׀����������>��������������������k��������������������(����������������������������*�>��������2����������>�l��������F����������R�(��������Z����������e����������l�m��������v������������>���������������������n���������������������(������������������������������Ɂ>��������с���������݁o�������������������(������������������������������>������������������$�p��������,����������8�(��������@����������K����������R�q��������\����������h�>��������p����������|�r���������������������(��������������������������������>�������������������Âs��������˂���������ׂ(��������߂���������������������>�������������������
�t�������������������(��������&����������1����������8���������B����������N�>��������V����������b�u��������j����������v�(��������~�����������������������>���������������������v���������������������(��������Ń���������Ѓ���������܃>�������������������w��������������������(�����������������������������x��������(����������4�>��������<����������H�y��������P����������\�(��������d����������o����������{�>���������������������z���������������������(������������������������������„>��������ʄ���������ք���������ބ����������(������������������������������/�������������������>��������"����������.�{��������6����������B�(��������J����������U����������a�>��������i����������u�Q��������}������������(��������������������������������>���������������������|��������ą���������Ѕ(��������؅��������������������/�������������������>�������������������.������������������(�(��������0����������;����������G�>��������O����������[�}��������c����������o�(��������w�����������������������>���������������������~���������������������(�������������������Ɇ���������І=��������چ����������>���������������������������������������(������������������!����������-�>��������5����������A����������I����������U�(��������]����������h����������t�>��������|����������������������������������(�����������������������������������������Ƈ���������҇>��������ڇ�������������������������������(������������������
�����������>��������!����������-����������5����������A�(��������I����������T����������`�>��������h����������t����������~������������>�������������������������������������������(�������������������ň���������ш>��������و�������������������������������(�����������������������������>�������� ����������,����������4����������@�(��������H����������S����������Z����������j����������v�>��������~����������������������������������(��������������������������������>��������ʼn���������щ��������������������>�����������������������������	�����������(������������������(����������4�>��������<����������H����������P����������\�(��������d����������o����������{�>�������������������������������������������>�����������������������������������������͊(��������Պ��������������������>���������������������������������������(������������������'����������3�>��������;����������G����������O����������[�(��������c����������n����������u�#��������������������>�������������������������������������������(�������������������Ƌ���������ҋ>��������ڋ�������������������������������(������������������
�����������>��������!����������-����������5����������A�(��������I����������T����������[����������e����������q�>��������y����������������������������������(��������������������������������>�������������������̌���������Ԍ����������(������������������������������>�������������������h������������������'�(��������/����������:����������A����������K����������W�>��������_����������k����������s�����������(��������������������������������>�����������������������������������������ƍ(��������΍���������ٍ����������>���������������������������������������
�(������������������ ����������'�/��������1����������=�>��������E����������Q����������Y����������e�(��������m����������x������������>���������������������T���������������������(������������������������������ˎ>��������ӎ���������ߎ��������������������(�����������������������������
�V������������������#�>��������+����������7����������?����������K�(��������S����������^����������j�>��������r����������~�����������������������(��������������������������������>�������������������ŏ���������͏���������ُ(�����������������������������9�������������������	�>����������������������������%����������1�(��������9����������D����������P�>��������X����������d����������l����������x�(��������������������������������>�������������������������������������������(��������ǐ���������Ґ���������ސ>����������������������������������������(����������������������������%�>��������-����������9����������A����������M�(��������U����������`����������g�#��������q����������}�>�������������������������������������������(������������������������������đ>��������̑���������ؑ��������������������(������������������������������>����������������������������'����������3�(��������;����������F����������M����������]����������i�>��������q����������}�����������������������(��������������������������������>�������������������Ē���������̒���������ؒ(������������������������������>����������������������������������������(��������'����������>����������E����������L�+��������V����������b�2��������j������������(�������������������������������������������+���������������������2��������“���������ѓ���������֓����������(�����������������������������>��������������������������������������(�(��������0����������;����������G�>��������O����������[����������c����������o�(��������w�����������������������>�������������������������������������������(�������������������ɔ���������Д���������ڔ����������>����������������������������������������(������������������!����������-�>��������5����������A����������I����������U�(��������]����������h����������o����������y������������>�������������������������������������������(������������������������������̕>��������ԕ������������������������������(������������������������������>������������������'����������/����������;�(��������C����������N����������U����������e����������q�>��������y����������������������������������(��������������������������������>�������������������̖���������Ԗ����������(������������������������������>����������������������������#����������/�>��������7����������C����������K����������W�(��������_����������j����������v�>��������~����������������������������������(��������������������������������>��������ŗ���������ї���������ۗ����������>����������������������������������������(������������������"����������.�>��������6����������B����������J����������V�(��������^����������i����������u�>��������}����������������������������������(�����������������������������������������ǘ���������Ә>��������ۘ�������������������������������(�����������������������������>��������"����������.����������6����������B�(��������J����������U����������a�>��������i����������u�����������������������>�������������������������������������������(�������������������̙���������ؙ>���������������������������������������(�����������������������������>��������'����������3����������C����������O�>��������W����������c����������k����������w�(�������������������������������>�������������������������������������������(��������ƚ���������њ���������ݚ>����������������������������������������>����������������������������#����������/�(��������7����������B����������N�>��������V����������b����������j����������v�(��������~�����������������������>�������������������������������������������(��������ś���������Л���������כ��������������������>�����������������������������	�����������(������������������(����������4�>��������<����������H�X��������P����������\�(��������d����������o����������{�>�������������������������������������������(�����������������������������������������͜���������ٜ>����������������������������������������(��������	�������������������� �>��������(����������4����������<����������H�(��������P����������[����������g�>��������o����������{�����������������������>�������������������������������������������(�������������������̝���������؝>���������������������������������������(�����������������������������>��������'����������3����������;����������G�(��������O����������Z����������a���������k����������w�>������������������������������������������(��������������������������������>��������ƞ���������Ҟ���������ڞ����������(������������������������������>��������
��������������������!����������-�(��������5����������@����������G�3��������Q����������^����������e����������l�+��������w������������2���������������������[��������������������������������+�������������������˟2��������ӟ����������(�����������������������������������������������������������$�+��������.����������:�2��������B����������N����������V����������b�(��������j����������u����������|�����������������������#����������+���������������������2��������Š���������Ԡ���������٠����������(������������������������������0�������������������5��������<����������J���������V����������^���������S��m���������v���������������������������������������Ţ��������Ӣ������������������
���������-���������6���������U���������^���������u���������~����������������������������Z���������v�����������������������������ʡ�������� #��z$,zPzX!��z�!��!��z��!��z�z�ΡDz�LΡpΡx'��Ρ�'��'����'���   
 !
 "$7"6�4�32K1�/Z. �;$�:(�9,90�-4�,8i,<�*@lLDjKHyJLwIP�?T�>X�=\�<`�NdNh]_l�Op�Dti_x&|�#��"��!�}_��Z�Z�]��Y�I��G��F��E�W�UV��U�U��*�O*�b)�)��C�&C�tD�=B��X��W�K^��A��T��S�BR��Q�*_�\��_�MYWU $`(`,%
0R4�
8�<z@�D�H�L�PT�XM`\�`�d"h�lR!p� tv
x�	|	)���p�}`��`��`��`���}�����u��p����x���� ��$��������@��D������������������P��T�����+�/�3�7�;�?�\�G�� �$�(��,��0��4��8
�<|�@�D��H�L��P�TģXȣ\̣`��d��h��l��p8�t��x��|��������������]����e��ϣ�m��q����������������� �����8��<�������������@��D�������P��T��h��+���d�h�l�p�T�X�\� `�$d�(��,[�0Ф X��0�����С0�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*�T*�l*��*��*�'���"@�C*-R�3R�=T�8@�bp*
Sh�bh��]@0e0*
|<��<���@`e0*������@�e0*������@�e0*2���2���.<�4)@�e8*60p�.������|��S��'��?��M��`��r�������� ���@�@(y�*(��0+�	�D�y�numeric.o/      1690381920  1000  135   100644  146904    `
ELF>�2@@-,

 "#$%���4�fD��H��������fD��1��f���H9���HD��f.���H��H��H��Ð����fD��H�H��H����ff.���H�����HE��ff.������H��H����ff.���H��H�5H��H�1��ff.�@��H���/1�����H���1���%��H���HD�H���ff.���H���1���%��H���HE�H���ff.���1�1Ҿ�1��ff.��USH��H��@��u	H�����u1H���H��H���H��H�5H��H�H�81�������t�H���H������PXH��H�wH�?���f.�ATI��UH��S��H��H�H�>H�5H�$H�|$���u����1�H��[]A\�fD��H�����H��H�U���H��H�=+���HD��H��4���uH�����u<����H��t�H�=1��1�H�=�H��1�[]A\��H��у���u��� tnH����H��u�H�PH�I�$H� t^H��H�H�E��1����1�H�=�H�=1������H������H�x�9���H�P �H�@ H���H�H�5H�81��ff.�f���H��(�H�|$H�t$H�|$H�D$�V���H�L$H�|$1���-�H��(�fD��PXH���H�5H��H�H�81��fD��H�@H��H�H�zH�xH�D?�D���H��H��H��?H�H1�H��H�@H)�H�xH�D?Ð�ff.���H�@H��H�H��H��H9�x	H�D?��H��AUH��?ATUSH��H1�H)�H��@����H��?I��I��H���I��������?I��I�������fD@��trH��t,M9���H���tH��~tM���L��H�H��L9�����uyL��H��u�L��H��E��LE�H�@L��-K�\$H��H��[]A\A]�@H�;H9�w/H��H���s���M����L��H�H��L9�����t�DH�@H���H�l6H���H��H���H�Ã���t���uH�����t������d���I���Z���L��H��E��LE�L���H��H��H��[]A\A]�f.�L��H�H��L9������DL��H�H��L9�������DA�E1��P���H���H���:���H��L��[]A\A]���H�5SH��H��t,1�1�H��1��H������HE�H��[�f.��H�=�H��H����UH��SH��H��H�5H��tLH��H�ߺ1��H���*H��1��H��H�ߺH��[�-1�]�fD�H�=�H��H��ff.�H����
f/�v
f/sH���fD�H,�H��H�DÐ��SH��H���H��[H���@��SH���H�ٺ[H�Ǿ/1��ff.���H��H��?�H�H1�tH�Ҹ@H��?)�H�H�DÐ��SH��H��H���t)H�xH��>~H��x�[�f�H��s�[�H����u�H��� u���f.���H��H9�tt�uX�u<H�����tT�����
tj�����t*��t%H���H�Ǿ�1��@�����u�H���fD1��D�����u���@��f.�H��H���D��ATI��USH��H�t$�����H�L$A��udL���0�H����H��1���-�H�L$H��1���<H���H��t�H��tzH��L��[]A\�@��t�L��H�H�H��H9��f.�H�|-H���H9�~���H���H�L$L��L�|_�H���H��[]A\�H�t$H���f���ATI��USH��H�t$�����H�L$A��udL���0�H����H��1���+�H�L$H��1���>H���H��t�H��tzH��L��[]A\�@��t�L��H�H�H��H9�|�f.�H�|-H���H9�}���H���H�L$L��L��^�H���H��[]A\�H�t$H���f���H�����H��HE�H���ff.�f���H����ff.�@��UH��H��SH���H��H���H��H���H���H��H���H��H�5H��H�H�81��@H����tH��������H9�v.H���@�����H9�v�H�H��H�5H�81��H�H��H�5H�81��H����tH�����v3H���f.�H����v�H�H��H�5H�81��H�H��H�5H�81���H�����uH�����uiAT�UH��SH��L�'���H�E�u<�uH�����tH�����
t%H�3@��u@��u2H�����t)�����
u[�]A\�@H�����
u���L�������SH��H�|$H��H�4$��uv@��uH�����t�����
��H��H�|$����H�5H�$H��tH�|$H�ٺ1��H��[�f��H�=�H��H���H�@H3|$H�H�xH��H�D?[�fD�멐H�t$��@��SH��H�|$H��H�4$��uv@��uH�����t�����
��H��H�|$�L���H�5H�$H��tH�|$H�ٺ1��H��[�f��H�=�H��H���H�@H|$H�H�xH��H�D?[�fD�멐H�t$��@��SH��H�|$H��H�4$��uv@��uH�����t�����
��H��H�|$�|���H�5H�$H��tH�|$H�ٺ1��H��[�f��H�=�H��H���H�@H#|$H�H�xH��H�D?[�fD�멐H�t$��@�~%f(�f(�fT�f.-��f�f.���f(�fT��\�fT��X�f(��^�fT��X��
�^��Y�]�f(�f(�f��ttf/�sD�f/�f(�w2�\��f(�fT�f.����h@�r�����f�f/�vn���fT��@f/�w��X��f(�f(�fT�f.��v+�H,�f��fU��H*�f(����f(�fT��\�fV��X��@���fT��fD��@��u6@��uH�����t
�����
tM���+1���H�@H�H�GH�x
H�D�@H������fD��@��u6@��uH�����t
�����
tM���-1���H��H�H9�tH�D?�H���@H�������������fDUH��SH��H��?w9�?H��)�H��H��u6H�@��H��H�xSH��H�D-[]��H��������?H9�w!H�\6H���H��H��H��[]�H���H����H��H��[]�f.���H��H�@��t8H�txIH��>~H��H��?H����H���@��H�H�D�DSH��H���H��[H���H��H�����D��ATUH��S�����@��t2I��I�M��~M�1�f�H��H��H���L9�u�H��[]A\���-f�H���H�߹1���+�H��1�H���<H���H�����u�H��[]A\�D�H���[H��L�]1�1�H��A\�f���SH����tH��~.H��[��1���H�߾<�H�����tҸ[����H������H������H��������fD��@�����@��u1��������H����@����H��4�����@��t`�@��u-�����tsH����@����H��4�����9�tD1�ÐH�����u�H�����H��u�뛐H�����u�H�����H��u�빐��멐��`���fD��f���@���fD��n���fD�� ���fD��N���fD�����fD���fD�����fD��������t�Gf.{F1��H���H9�t�H���H��H��?H)�H	�H��H�|$��~D$�f.z��u��D��������t"�Gf.���HJ��f.�H��1�H9�t�H���H��H��?H)�H	�H��H�D$��~D$�����������t:�Gf(�fT
�f.
vf��1�f.���H�������@H���H9�t�H���H��H��?H)�H	�H��H�|$��~D$��ff.�f���������t2�Gf(�fT
f.
wf.��z�1��DH���H9�t�H���H��H��?H)�H	�H��H�D$��~D$��D����H��(����t>�Gf.�D${H�|$��H��(H�D�u�H�D$��H��H9�t�H���H��H��?H)�H	�H��H�D$�~D$�f.�S��H����H����t>�F�H�߸H��� H���H��t�H��H��[�f�H��f�H9�t�H��H��H��?H)�H	�H��H�t$�~D$�fD�����������G�f(��fT�f.�w+�
f/�v^f/rT�H,�H�D���H,�f���%fU��H*�f(����f(�fT��\�fV��
f/�w��f.�H��H9�t1H���H��H��?H)�H	�H��H�D$��~D$��.������f.���H���H��H�����������������G�f(��fT�f.�w+�
f/�v^f/rT�H,�H�D���H,�f��f(��%fU�f(��H*����fT��X�fV��
f/�w��f.�H��H9�t1H���H��H��?H)�H	�H��H�D$��~D$��.������f.���H���H��H��������USH��H��@����@�����������1H���G@���MH�W��tT�����ك�����H������*H�KH9�ty�H��H���H��H��[H��]�H�����u�H���}H��u�H�
H�	�@H������n���H��tEH���_���H�H��T���DH��H��H��[]��H�H��(����H�H������H�
H�	�;����H�
H�	�+����H�
H�	�����H�H������H�
H�	����H�H�����H�H�����H�
H�	���������������Gf��f/�v"�f(��%fT�f.���f/�w'�
f/�vxf/rn�H,�H�D�@�f(��fT�f.�v��H,�f��f(��%fU�f(��H*����fT��X�fV��
f/�w��@�H,�f���-fU��H*�f(����f(�fT��\�fV�f/��4����V���fDH��H9�t1H���H��H��?H)�H	�H��H�D$��~D$�����f��H,�H�DÐ��H���H��H���w�����������t"1�@��uH��H��t�1�����t�@������tf�G��t�Nf.�{	1��fD�u��H��f��H9�t�H��H��H��?H)�H	�H��H�D$��~L$��fDH��f�H9�t�H���H��H��?H)�H	�H��H�|$��~D$��b�����H�����t-�������H��H9�u&f��Ef.�H������������uZH���H��H��?H)�H	�H��H�D$��~D$��D$�������G�D$��L$��D$�f.�{41�ÐH9�t-H���H�Ǿ�1��@H��H���Duʸ�������
t։����������u��@�����D$��i���H��f�H9��W���H���H��H��?H)�H	�H��H�D$��~D$��-���f���AWAVAUATUSH��XdH�%(H�D$H1��������`�Gf(�fT
f.
��f.���H�T$H�L$1�1�L�D$��T$I����1�1��H��L�d$�L�t$ L��L��M)�A��AN�Lc�L���L����D$���9��H����D�kA�����D$"0D�kIc�L��H���D$!.��D$H�5H��P�1���E�H�=�H���K����f��H�H�=f/�HF��H��H�L$HdH3%(H����H��X[]A\A]A^A_�H��H9���H���H��H��?H)�H	�H��H�D$�~D$�h�����������H�5H���H�M�� �~H�]HcD$L��H��H)�H��H�}H�E tH�}�T$H��0H���Hc��HcD$H)�H��I���<A����M������A��A����C�D>�fB�D;������S�I�v�Hc�I�~��K���L��L��H���L�eA�� ��I��A��Hct$H��H��L)�L��H�EH�E tH�E�T$I�9����.0fA�$�L���f���Lc�)�K�4&K�|&Hc���SL��H��Hc�B�D$ .�����@f�����L�e�f����H����H���w���f�H�D$ H�SH��H�J�D<H)�I)�J�D;�I�I��I�������I��1�I�H�H��L9�r����)�L��0Hc���D$)�H�I��
���fD�H�=�H���I���A��C�D>�B�D;��5����fDATUSH��0dH�%(H�D$(1�H����A��H��H��A��tR��f.���u H�����t���������
�KH���H��H���r���}�؃���u�H��H9��7H�ڸ�
H��?H)�H��H��H	�H��H�D$�~D$f/�woH�|$H���}�H�5H��H�H�81��f�H��H�H��t
H��H��?�UH�L$(dH3%(��H��0[]A\��C�
f/�v�f/r�f��H��t�
E1�f/�f��A��D�ef/�r'�
f/�r�\��H,�H��?�{���fD�H,��k���fDH���H���T���H�H��
H�����U�>���1�H���3���f��f��H�H�5H�81������SH��������t21���H�߾<�H�����������uIH��[�@H�����tŋ����
u�H��<H�8���t�H�H��
H�����DH�5H��t<H��1�1�[��H��<H�8����R���H��H��?�k����H�=�H��1�[H��H�1���AWAVAUATA��U��SH��H��A���0f��*��Y�\f/v�H��H��[]A\A]A^A_���ݿ
Hc����I�Ũ������t�A��uI�����tA�E����t���L��1��/�L��H�߾%I��1����-H��H��I��1��H��E��������H������������
��H��<H�8�����H�H��
H������1�1��Q�f�f���*��Y�H*��\f/�������ݿ
Hc����I������H��<H�8����H��1����<1��H������þ<��tH�5H����1�L���L���H������0���H��L��H��[�+]1�A\A]A^A_�@I�L��H��?L�H�H�x+H�H�I��L��H�@L�x`K�l-����fDH)�H�I��L��I������H�=�H��H��A����H��?�����H��L��[]A\A]A^A_�f.���AVH��1��AUATI��%USH����H��H���H��t[H��]A\A]A^�f�A��A�������1���H�߾<�H�����tiA���/A��uI������L@1���L��>�H������������`E��������f�1���H�߾>�H���������������A���YA����I�������A�$����
��H��<H�8�����I�$H��
H�����f�H�����t�����
��1���H�߾<�H���������H������'��������
����H��>H�8��������H�H��
������fD1���L��<�H���������������[L��H��]�-A\1�A]A^�@L�-�<I�}�����1���H�߾<�H��������I�}�>����@���1�H�����X���L�-�>I�}�������1�M�������fDA�$����
�����H��>H�8��������I�$H��
�����@H��<H�8����K���H� �.����k���f�H�������,���f�L�-����@H��<H�8����l���L��H��?������PXH�5H��H�H�81��ff.�Uf(�H��SH��H��(f.���f��f(�f.��f.��~-f(�fT�z^u\�5f(�f.�v
fT�f.�v�\��^�f(��Y�f/�v�X��\�EH��t�H��([]�f�f(��5fT�f.�vf.�wf(��fDf(�f(��t$�|$�\$�$��$�\$f���|$�~-�t$�<���@�MH���j�����a���������fDH���I��H��xGH��x*H�H��H��H��H)�yH�H��M��tI�H��tH�9ÐH��H�H��H������H��xH�H��H��H��H)�H����DH��I��I��H�I����P�f���ATI���UH��S�H��uXH�H��t/L��H���/1��H��1�[H��]1�A\�D�H�=�H��H���fD��ATUH��SH���]��H��H��I���_���[L��]H��A\���@��t&H�������H9�@�H��x6�>1��D�@��u!H�����tH��у���
u1��� �������SH����uC��uH�����t
�����
tSH��1����<�[H����������@H��<H�8���t�H��?H��[��H��<H�8���t�H�[H��
H�������SH�ӺH��H�|$H�|$H�4$H�����H�$H�|$1�H�޺�H��[�ff.���SH��1�H��H�|$H�|$H�4$H���������uH��H��[�f.�H�$H�|$�1�H���H��H��[H���ff.����H9�t_@��t!H�H�1�H9���H�������f.�@��u:H�����tA�����
tG�����t'��t"���fD��f������u��������u���@SH�H���H��[H������ATI��1�UH��SH��H��H�|$H�|$H�4$H�������t'H�$H�|$1��L���H��t	H��[]A\�H��H���ff.�f���H��H��$�D$H�8��D$�@�u*H�����t"H��у���tH�р�H�xH�t��tH���H��H�D$�H�D$��ff.��AUI��1�ATI��UH��H��H�SH��8L�L$�H�|$A��H����H�}��~
H������H����H�]H����������tC1���H�߾>�H����������Ã�I�<$��H��8��[]A\A]ÐH�����t������
u�H��>H�8���t�H�H��
���f�H�H�t$L�D$ 1ҹH�D$H�H�D$�H�D$ H��4��E���H�\$(I�$H��4����H�]H������H�E�H��>H�8������1�H�����Ã�I�<$�
������t$��I�$H��8��[]A\A]�fD����f�H�\$(H��4�b���A���P���H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81�����H�f�H�0�H*�fH~�H9�tDfH~�H��<������tH��H��u!��fH~�H��H��H���fD���H����
�H�0fH~�H9�tRfH~�H��<������tH��H��u/H���f.�fH~�H��H��H��H���f.�H������H����
�H�0fH~�H9�tRfH~�H��<������tH��H��u/H���f.�fH~�H��H��H��H���f.�H������������tbH�WH�0H��?H��H9�t7H��H��<������tH��H��u�DH��H��H��H���H�T$��D$��H��H9�H��t�H��?�H��H)�H	�H���t���f���������trH�WH�0H��?H9�tAH��H��<������tH��H��u ��H��H��H��H���H�H�T$��D$��f�H��H9�t�H���H��H��?H)�H	�H���d���f���SH��H�� @��t~H�f���H*Ή؃������CH�t$1����D$H�0fH~�H9���fH~�H��<�������-H��H����H�� [�@@����H������������
������t{�������N�����Q���H��f�H9��?���H�ڸH��H��?H)�H	�H��H�\$�~D$����@�H�� [�D�����uPH��f��H9�����H��H��H��?H)�H	�H��H�t$�~L$���D�����t�H�ߺ%�H�� [�fH~�H�� H��[H��H���f�H���f(��M���ff.�@��UH��SH��H��8����H�f���H*ˉ�������EH�t$H�|$���D$�����D$H�D$ H�0fH~�H9���fH~�H��<�������{H��H����H�D$(H�t$(H�|$ �H��8[]�DH��f�H9��a���H��H��H��?H)�H	�H��H�l$�~D$�7������uSH������������
���ڃ���t8��uQ���K��������q������F���fD�؃���uH��H9�uAf�����fDH�H��tTH��H���H��8[]�f.��؃���u�H�ڸH��H��?H)�H	�H��H�\$�~L$�A���@�H�=�H��H��fH~�H��H��H�����f�H���f(���ff.�@��H��(@���@�����������H��f��H9�t%H��H��H��?H)�H	�H��H�D$�~L$H�f�H�t$�H*�1��6��D$H�0fH~�H9�t'fH~�H��<��������H��H��t]�H��(�H�����t/�����
��������=�����u�N�f���@������/����%�H��(�H�H�1�H�L$��H�|$H�@H�x
H�D?H��(���f�fH~�H��H��H���DH�H�t$�H�t$H����ff.����H�������������H�f�f��H���H*�H9�t%H���H��H��?H)�H	�H��H�T$��~L$�H�0�X�fH~�H9���fH~�H��<��������H��H������H�����t@�����
��������I�����u)H�f��H�H*��r���f������ta�+H���f�H�H�H�H�@H�xH�D?�f���H��H��H��H���H��H���H�f��H*�����@��@���SH��@�����������H�f�H���H*�H9�t%H��H��H��?H)�H	�H��H�t$�\D$H�0fH~�H9���fH~�H��<��������H��H����H��[�@H�����t?�����
��������N�����u,H�f��H*��\F�s����������}H���-[�H�H�H�@H)�H�xH�D?�f�H��[�fD�H��H��H��H���B���@H�H���H��H��H��[�H�f��H*����@��@����UH��SH��H��@��t0������bH�H���2H��H��H��[]��H������������
����������u�H��f��KH��H*��^�H�0fH~�H9���fH~�H��<�������H��H��ukH��[]�@H�f�H�f��H�0�H*��H*��^�fH~�H9�t6fH~�H��<��������H��H��u��H��[]�D���������H�f��H*��J@�H�=�H��H����H��f�f��H��H��H*�H9�����H�ڸH��H��?H)�H	�H��H�\$�~L$���fH~�H��H��H������f.�fH~�H��H��H���fDH��H��H��H��[]�ff.�@��UH��SH��H��8������t2�ڃ�����H�H���VH��H���H��8[]�f�H�����������
���ڃ����_��u��KH��f�H�t$H�H�|$�H*����D$�T����D$H�D$ H�0fH~�H9���fH~�H��<�������9H��H����H�D$(H�t$(H�|$ �H��8[]�H��H�H�L$(H�T$ H���H�|$(H�@H�xtH�\?H�@H�|$ H���H�|?H���H��8[]��؃���tmH�H��������H�=�H��H����fD�H���fD��(���fDH��f��H9������H�غH��H��?H)�H	�H��H�\$�~L$�j����fH~�H��H��H������f.��H������H��H��H����������UH��SH����tnH��H�uH��H��[]�@H�H��H����pH����H����H��������?H�H��H9������YH��H��[]H�D?�f�����H�������������
���ʃ���t|����H�f��I�H*��Y�H�0fH~�H9�t+fH~�H��<�������XH��H������H��[]�f.��ȃ���udH�f�f��H���H*�H9��{���H�ȺH��H��?H)�H	�H��H�T$�~L$�Q���f��ȃ�����H���*H��[]��H��H9�������H��H���H��H��[H��]��H��~#H��H�H��H9����X���f�H��������?H�H��H9����5���fDH��H�H��H9�������fDH��H��H��H�����@H��H��H��[]�H�f��H*�����fD��ATUH��SH��H�����
�����؃�����������P�U����Kf�f/��?f(��$�T$��$f.�z�T$�L�%M���<H���H��H��L��[H��]�1�A\�f.�H������G��������
���؃����9������0���H�H���H��H��H��[]A\���H�f�Ƀ��H*˃����E�H�0fH~�H9�t0fH~�H��<������tFH��uH��H��[]A\�@H��[]A\�f(��f.�H��?H��H��H��[]H��A\ÐH������f(ȃ��X���fDH��f�H9��@���H��H��H��?H)�H	�H��H�,$�~$������H�=�H��H�����H��H9��M���H�ڸH��?H)�H��H��H	�H��H�$�~$����f�H��f��H9������H��H��?H)�H��H��H	�H��H�$�~$�s���fD�H�=�I��H�����H��(@����@��t��������H��(�@H�����������u�H��/�EH��H9��IH��H��H��?H)�H	�H��H�D$�~L$f.
�H�f����H*��^�f(�fT�f.�v3�H,�f���%fU��H*�f(����f(�fT��\�fV��H��(�fDH�H�1�H�T$���H�|$H�@H�xjH�D?H��(�������
������tP����H��/������������H��H�H�������H�����������fDH��/�����H�f�f��H���H*�H9�t%H��H��H��?H)�H	�H��H�D$�~L$�^�H�0fH~�H9�t'fH~�H��<������t^H��H����������NH��/�:���H�f��H*��H�H�t$�H�t$H�������fH~�H��H��H�����H�f��H*��*�������ff.���UH��SH��H��H�H��tH��H��H��[]�����H�=�H��H������/���f���H��@��ur@��t4�����uT�������$�O�����F�^�H������������
�������t���t��*H����������"�OH�f��H*��Y�H�0fH~�H9�tlH��H��<��������H��uQH��H�����������J�_�\$H����YD$H�0fH~�H9�u�H���@���������*H���@H��f��H9�����H���H��H��?H)�H	�H��H�T$�~L$����H��H��H��H����H��f��H9�����H���H��H��?H)�H	�H��H�D$�~L$����H��f�H9������H��H��H��?H)�H	�H��H�D$�~D$�f����H��H9�t$H���H��H��?H)�H	�H��H�D$���f���d$����ff.���H��@����@��tP�����up��������G�����\FH�0fH~�H9���H���@H������������
�������t���t��-H������������GH�f��H�0�H*��\�fH~�H9������H��H��<��������H���a���H��H��������������-H���@H��f�H9����H���H��H��?H)�H	�H��H�T$�~D$�����H��H��H��H����H��f�H9�����H���H��H��?H)�H	�H��H�D$�~D$����H��H9��X���H��H��H��?H)�H	�H��H�D$�\D$�.���������t>�_�\$H����T$H�0�\�fH~�f(�H9���������H��H9�t!H���H��H��?H)�H	�H��H�D$�f���d$�@��H��@��ur@��t4�����uT�������$�O�����F�^�H������������
�������t���t��+H����������"�OH�f��H*�H�0�X�fH~�H9�tlH��H��<��������H��uQH��H�����������J�_�\$H����XD$H�0fH~�H9�u�H���@���������+H���@H��f��H9�����H���H��H��?H)�H	�H��H�T$�~L$����H��H��H��H����H��f��H9�����H���H��H��?H)�H	�H��H�D$�~L$����H��f�H9������H��H��H��?H)�H	�H��H�D$�~D$�f����H��H9�t$H���H��H��?H)�H	�H��H�D$���f���d$����ff.���ATI��UH��SH�H��H����tSH��H�H���H�����H������H����H����H��[]A\�f�����H������������
���ڃ����������Kf�f.��rH���H���/�KH���yf(��L$��L$f.�z�XH�-H���P�L����fD�؃���u&H��H���H9������9�H�H����H��H��L��[]A\�D�؃���u�H�ڸf�H��?H)�H��H��H	�H��H�D$�T$f.���H����H���-H�ڸH��?H)�H��H��H	�H��H�D$�~L$�����H�=�H��H��H���1���H�߾%�H����H���[]A\��f��H*��H�0fH~�H9�tifH~�H��<��������H��uLH�����f.�H�ڸH��H��?H)�H	�H��H�\$�~L$f/�v��H��[]A\����J���H������Y���H�-H�����L���H��H��H��H��[�]1�A\�H��������i���f�H��H��[]A\���H������H��������H��<H�8����1���H�߾<�H�������������H�������H���H��H��H��[]A\��H���^���H����O�����H�=�H��H����H��������y���H��H��H��������H�=�H��H����H�-H��������H�=�H��H��h���H�H��
H��������ff.�f���SH��@��uy@��t3�����uS�������C�G�����N�efDH������������
�������t���t�H���/[����H������7�Gf���H*��^�H�0fH~�H9���fH~�H��<��������H��ucH��H��[�H��H����؃����P�K�^�H�0fH~�H9�tfH~�H��<������t~H��t�f(�H��[�����������H���/[�H��f�H9������H���H��H��?H)�H	�H��H�L$�~D$����H��H��H��[H���fDH��f�H9������H���H��H��?H)�H	�H��H�D$�~D$����H��f��H9��x���H��H��H��?H)�H	�H��H�D$�~L$�N���H��f��H9������H�غH��H��?H)�H��H	�H��H�D$�~L$�q�����H��1�H�t$�L���D$H��Ð��H��f(��D$f�f.�zu	H�D$H�|$��H��H�D���f.�z&u��f/��w�1�f.���H�D���@��f.���������tl@��uH�����t
�����tS�����tI@��u	H�����u0�Ѓ���t0����H�������D�1�A��A��tË����u�ATA��UH��SH��H�� �H���$�H���D$��L$D��f(��D$f(��$褮��fT=f.=f(�wc�d$f��f.�zuusH�0H�$H9���H��H��<��������H��H���\@H����1��f.
����H�� �[]A\�f�1�f�I�0H��f/�wi��f/D$����t�D$fH~�L9�trfH~�H��<������tqH��H��uVH���L$H���f��L$�H*�f/��e����\$f���Y�f/��X$s��t$f/����z����L$��L$�fH~�H��H��H���H�0H�$H9�t!H��H��<������tLH��H��t
�$�H��������$�H�����H��H��H��H�����H��H��H��H���f���AVAUATI��U��SH��H�� ����|H�L$��H�T$L�����H�|$�������ك�H�����tZH�T$�������wH�t$1�H��������H���H�L$H��1���+�H����H�t$H�T$�������@��uH�����t������8��tK��tF��tAH�I��H�I�I��I������L9�|K�|$M��M9�}�H�� H��[]A\A]A^�1�H�����u�I��H��H��<�$L���H�L$L��1���+�I��H�L$1��H��L���H�����t���H���L���H��L�3H���H�� []A\A]A^�K�|$M��M9�~��C���H��H��H��@H��H�H�����H�t$1�H����������k����Ff(�fT
f.
�����fP��uO����������
����H��H9�����I��I��?L)�I��I��L	�H��H�D$�~D$독�u��I���ff.����AWAVAUATUSH��@��t
@������A��I��I����H������@��uH�����t��������D�������A��u
I�������D�������A��uI�����tA�$����tt���L����L��H�����������qA�>1�L��L��H���H���������A������c����L���L���D$�H���$��$�T$D��蚨��f(�fT
f.
��
f/����
f/����H,�H�l-H��H��[]A\A]A^A_���i���H�I����H��H�H�H����H��H)؃�H��H������H�I��H�xH��������?H�l?H9�v�H��[]A\A]A^A_��\��H,�H��?�f���DH��[]A\A]A^A_�D�H��[]A\A]A^A_�DA�<�j���DH�0fH~�H9�t�fH~�H��<��������H��H��������H�-H��L��1���-�H��L��H��1��H��E��tOH��L���*1����+H��H��1��L��L��H��1��H������L���H��H��1�[�]�+A\A]A^A_��H��I��H)��O���f�H��H��H��H�����ff.����H� tH��H�61�H������.���fDH�v ��f���H� tH��1ɺH�6����H�v 1ɺH�6���ff.�f���H��8dH�%(H�D$(1�H��uH�D��������@��uH�����t�����t<��
t\�H��H����@��t�H��H�H�L$(dH3%(��H��8��G�
f/�vgf/r]�H,����f�H��H9�taH����
H��?H)�H��H��H	�H��H�D$�~D$f/�w�H�D$H��H��苭��H�5H��H�H�81��1��;���H�H�5H�81���ff.����SH��@��t2H���t7H�H��x
[鬦��@H��H��>~/H��[H��?H���f��H���u��H��[H���f���[H�H�D?�@��1��e���D��PXH�H�
H�5H��H��H��HI�H�H�81��fD��SH��H��H��tH�>�� uDH�FHcЉ�H9�uCH�v �1�1�H�L$H�����H�T$H�4$1�H���H��[�fDH��H������H���ff.���H���Hc�H9�uH���H���ff.���H��@��tH��H�Hc�H9�uH�������H���f���USH��H��(��'�؃����Q�Sf(��3���H��([]�@1�H�L$H����u�H�|$@���a��Ņ��"�؃������S��t�f(�H�|$�T$��T$f(�fTf.�,f.��"�L$���!���ك�9��f����T$�*���T$�D$�Y�f(���L$H�0�^�fH~�H9���fH~�H��<��������H����H��H��([]�f�H��H9�t1H�غH��H��?H)�H	�H��H�\$�~T$�{����f���k������������t��D$f�҃������H��(H��[]Ð�ȺVUUU����)Ѓ�9�~ޅɍAH����9��:�����������fDH��H��H������H��H9��i���H�غH��?H)�H��H��H	�H��H�T$�~T$��H���x�����H��螸�����f���UH��S��H��H���H��H���H��[]�&���fD��U��H��S��H��H�������G������uGH������������
�|�ڃ���t,��uE�Kf/��H��1�[]�D�؃���uH��H9���f����f�H�H����H��H��H��[]��H��H����t�H����؅�������f�H��f�H9�����H���H��?H)�H��H��H	�H��H�D$�~D$���@�؃����Z���H�ڸH��H��?H)�H	�H��H�\$�~L$f/������H���[]���H�=�H��H����������H���������G@����@��tU������
H��f��H9�t%H��H��H��?H)�H	�H��H�D$�~L$f/�wi1�H���f�H������������
t)�����t������Nf/�v��)f�H��H��H����t�H����؅�y��H���fDH��f�H9�����H���H��?H)�H��H��H	�H��H�D$�~D$���@����������<H���ff.����U��H��S��H��H�������G������uGH������������
�|�ڃ���t,��uE�Kf/��H��1�[]�D�؃���uH��H9���f����f�H�H����H��H��H��[]��H��H����t�H����؅����|���f�H��f�H9�����H���H��?H)�H��H��H	�H��H�D$�~D$���@�؃����Z���H�ڸH��H��?H)�H	�H��H�\$�~L$f/������H���[]���H�=�H��H����������H���������G@����@��tU������
H��f��H9�t%H��H��H��?H)�H	�H��H�D$�~L$f/�wi1�H���f�H������������
t)�����t������Nf/�v��)f�H��H��H����t�H����؅�~��H���fDH��f�H9�����H���H��?H)�H��H��H	�H��H�D$�~D$���@����������>H���ff.����U��S��H�����(�Gf.��aH��H��@����@����H������2�����
������������}Df(�fT
f.
�nH�5H���1�1�H���D$�H��4�BH������D$��1�f/��H��H������[]�@������z���H��H9��}f���fDH��H������H��[]�fDH��H9���H���H��?H)�H��H��H	�H��H�D$�~D$�����������H�ڸH��H��?H)�H	�H��H�\$�~L$H��[]�f��	H�=�D$��D$H��H����@�KH��[]�H��H��H�ﺆ[]�f.�H���H����[]H�H�D��f������H��H��H���1��D$����f/w�ЙHc�H�D�������ff.���@��tH�H�H9���1��@UH��SH��H��@��uFH�����t=�����
tk�����t��u.H��H���H���tjH��tdH��1�[]�@�؃���t�H�H��tRH��H��H��[]����f.�H��H��H���H������H���[]�D�H�=�H��H����@��tH�H�H9�|k1���H��@��u6H�����t]�����
ts�����t#��t�<H���fD�����u��H���ta1�H���@��f.������tк<H����H�H�t$�H�t$H���H�����y��H�����@��tH�H�H9���1��@UH��SH��H��@��uFH�����t=�����
tk�����t��u.H��H���H��H��ufH���[]��؃���t�H�H��tRH��H��H��[]����f.�H��H��H���H�����y�H��1�[]���H�=�H��H����@��tH�H�H9�k1���H��@��u6H�����t]�����
ts�����t#��t�>H���fD�����u��H��ta1�H���@��f.������tк>H����H�H�t$�H�t$H���H�����~��H�����SH��H����uH��H��[��H�L$H�1��H�|$@��t"���"t�H�߉�荫��H��H��H��[Ð���~�H���H��H��H��[���SH��H�t$�=����t$H��H�����H��H��[�D��@��tfUH���<SH��H�H��H�H�8���uG�<1��H�ߺ�1�H�����@��H��肎��H��H��[]���H��?H����ff.�@��PXH�H�
H�5H��H��H��HI�H�H�81��fD��H���H��H9�uH���H���ff.�f���H��@��tH��H�H��H9�uH���fD���H���f���SH��H�t$�ͦ���t$H��H���ލ��H����[�fD��@��tfUH���<SH��H�H��H�H�8���uG�<1��H�ߺ�1�H�����@��H���r���H����[]�f��H��?H����ff.�@��@��tH���f�H���H�@H�x
H�|H��H���H��H�H�5H�81����H��8dH�%(H�D$(1�H���xH��H�@��u@������tX@��u
H�������H���bH���Y���H�H�L$(dH3%(�0H��8�f�H��H9���H����
H��?H)�H��H��H	�H��H�D$�~D$f/�vbf/rX�H,��fD�����t.��
�����?���H�H�5H�81��@�G�
f/�w�H�D$H��H�����H�5H��H�H�81��f.�H�����1����f������H�H�5H�81���H�H�5H�81�����H��8dH�%(H�D$(1�H���hH��H�@��uY������th@��u)H�����t ���������
�"���XH���6H���-�H���y���H�L$(dH3%(�H��8�H��H9���H����
H��?H)�H��H��H	�H��H�D$�~D$f/�vZf/rPf/r#�
f/�r�\��H,�H��?�i���f��H,��]���fD�G�
f/�w�H�D$H��H���
���H�5H��H�H�81��f�1�����f�����H�H�5H�81���H�H�5H�81��H�H�5H�81��f���AUA��ATUH��SH���=p�����A�ą���=o�����Hc�H��1��H��H�E0H�sH� tH�sH��D���H�3�� t.H�{H�sH�H���A9�u&H��H��[]A\A]��H��H�{��H���H�H�MD��H�5H�81��H�D��H�5H�81��fD��H��A��I��H��H�t$I�����t>H�H�8A��tL��H�51�H��f.�H�51��f�E��t;A��t�1�D���fDI�:�H��t;�|$H���H���f��D$=�w5�D$H�|$���w����뾐���f��H��u�H��T$H�5H�81��f.���H��X�V�dH�%(H�D$H1�H��H���"��H����A�xm�D$AHc�H�L$AL��
�H��H�H�y�H��Hc�A��Q�H��u�E��u�H�t$HdH34%(uWH��X�D�G�-H�y���fDH��A��D�H�=��H���H�5H�81���fD��S�
H��H����uH�߉��H��[�H�L$H�1��H�|$@��t�H�߉��H��[�D�H�߉��H��[�ff.�����}�����SH��H��H�|$H�|$H�4$H�����H�$H�|$1�H�޺�H��[���AU�H�=ATUSH����H�=H��H�=H�H�H�0�H�H�=H�H�H�0�H�H�=H�H�H�0�L�%�H����H��H�5I�$�H�I�<$H�0�I�<$�H��{��H�5�I�<$�H�����H�5�I�<$1�H�����H�5�I�<$1�H��w��H�5�I�<$1�H�<{��H�5�I�<$�H��w��H�5�I�<$�H�T���H�5�I�<$�H�X��H�5�I�<$�H�\���H�5�I�<$�H�����H�5�I�<$�H�~��H�5�I�<$�H��}��H�5�I�<$�H�<���H�5�I�<$1�H�3���H�5�I�<$1�H����H�5�I�<$1�H��w��H�5�I�<$1�H�Hv��H�5�I�<$1�H�?v��H�5�I�<$1�H�����H�5�I�<$1�H��|��H�5�I�<$1�H�d���H�5�I�<$1�H�k���H�5�I�<$�����H���H�5�I�<$1�H�v���H�5�I�<$�����H����H�5�I�4$H�=�L�-H��I�E�I�E�������ƒ����9H���_<�wH�xH�-H�H�5�I�}1�H�܉��H�5�I�}1�H�#v��H�5�I�}1�H��u��H�5�I�}�H�.��H�5�I�}�H�~��H�5�I�}1�H�����H�5�I�}1�H�H�5�I�}1�H�H�5�I�}1�H�H�5�I�}�����H�b���H�5�I�}1�H�����H�5�I�}1�H�����H�5�I�}1�H�����H�5�I�}1�H�~���H�5�I�}1�H�e���H�5�I�}1�H�L���H�5�I�}�����H��H�5�I�uH�=������H�����H�5H��H�E�H�}H�H�5�H�}1�H��w��H�5�H�}�H�5���H�5�H�}�H�����H�5�H�}�H�ͺ��H�5�H�}�H�Q��H�5�H�}�H����H�5�H�}�H�	���H�5�H�}�H���H�5�H�}�H�ѷ��H�5�H�}�H�u���H�5�H�}�H�y��H�5�H�}1�H� v��H�5�H�}1�H�v��H�5�H�}�H�kz��H�5�H�}�H�Oz��H�5�H�}�H����H�5�H�}�H��H�5�H�}�H���H�5�H�}�H���H�5�H�}�H���H�5�H�}1�H�
q��H�5�H�}�H����H�5�H�}�H���H�5�H�}�H�&~��H�5�H�}�H��x��H�5�H�}�H����H�5�H�}�H�B���H�5�H�}1�H�ɧ��H�5�H�}1�H�@p��H�5�H�}1�H�'x��H�5�H�}1�H�p��H�5�H�}1�H�%p��H�5�H�}1�H�,p��H�5�H�}1�H��s��H�5�I�4$H�=�H��H��H�;@���@���5������tH���Q@����H�H�5�H�;�H�5�H�;�H�5�H�;�kH�5�H�;�H�5�H�;H�����H�5�H�;�H�5�H�;H�›���H�5�H�;�iH�5���H�;H�5H�����H�;H�5H���H�;H�5H������H�;H�5H�����H�;H�5H���H�;1�H����H�5�H�;H�H�5�H�;�H��u��H�5�H�;1�H�i���H�5�H�;�H�n��H�5�H�;�H�����H�5�H�;�H����H�5�H�;�H�}��H�5�H�;�H��m��H�5�H�;�H��m��H�5�H�;�H�\���H�5�H�;�H�A���H�5�H�;�H����H�5�H�;�H�+���H�5�H�;�H�0���H�5�H�;�H����H�5�H�;�H�z�H�5�H�;�H���H�5�H�;�H�4��H�5�H�;�H����H�5�H�;�H����H�5�H�;�H�����H�5�H�;1�H�ۃ��H�5�H�;1�H�3���H�5�H�;1�H�����H�5�H�;1�H�����H�5�H�;1�H�����H�5�H�;1�H�s���H�5�H�;1�H�[���H�5�H�;1�H�S���H�5�H�;1�H�[���H�5�H�;�����H���H�5�H�;1�H�����H�5�H�;1�H�P���H�5�H�;1�H�����H�5�H�;1�H� ���H�5�H�;1�H�X���H�5�H�;1�H�Т��H�5��H�=��H�=H��H�H��[]A\A]�f�H����������H����H�������H�H�8�~����H������m�H��tNH���^�H�H�-H�H�8�S��H�-H�H�}�4�f�H�H�-H�H�8��H�H�8����H�}����H�H�-H�;���f.�H�H�8����H�H�-H�H�8��H�H�-H�H�8�~�H�H�8�^������������t
�G�@H��H9�t)H���H��H��?H)�H	�H��H�|$��~D$��f��ff.���H�0fH~�H9�t@fH~�H��<������tH��H��u�@fH~�H��H��H���fD�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign%li can't be coerced into %liNumerical comparison operators will no more rescue exceptions of #coercein the next release. Return nil in #coerce if the coercion is impossible.Bad return value for #coerce, called by numerical comparison operators.#coerce must return [x, y]. The next release will raise an error for this.can't define singleton method "%li" for %liinteger %ld too small to convert to `unsigned int'integer %lu too big to convert to `unsigned int'integer %ld too small to convert to `unsigned short'integer %lu too big to convert to `unsigned short'no implicit conversion from nil to integerfloat %s out of range of integerinteger %ld too %s to convert to `int'integer %ld too %s to convert to `short'integer %ld out of range of fixnumno implicit conversion from nilfloat %s out of range of long longno implicit conversion from stringno implicit conversion from booleanfloat %s out of range of unsigned long longcoerce must return [x, y]can't copy %lizero?div^|&%-.10g-InfinityInfinityNaN-0.e%+03d-@<=divided by 0floor02:to is given twicestep is given twicestep must be numericstep can't be 0divmodfdiv**smallbig01>=infinite?1invalid codepoint 0x%X in %s%u out of char range%ld out of char rangebignum out of char range%d out of char rangeinvalid radix %d0coerceZeroDivisionErrorFloatDomainErrorNumericsingleton_method_addedinitialize_copyi+@<=>eql?%moduloremainderabsmagnitudeto_intreal?integer?nonzero?ceilroundtruncatestepIntegernewodd?even?uptodowntotimessuccnextpredchrordto_iFixnumto_sinspect+*/=====><~[]<<>>to_fsizebit_lengthFloatROUNDSRADIXMANT_DIGDIGMIN_EXPMAX_EXPMIN_10_EXPMAX_10_EXPMINMAXEPSILONINFINITYNANquohashnan?finite?next_floatprev_floattoby�C���?�?���������<0C�C����CaU��N�ڿ�? @��$@��������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�
0D
Xl��
����!�5Hl$5Hl<P`A�A�G pEAD@�sB�D�D �F0m
 AABGj
 CABH�JH0A�*EAD-5,-\@E�F�A �A(�M0�
(D ABBE�
(G ABBOR(D ABB�]L�i
K(��E�D�G y
LHK�?Da
KIE�O$%E�Q@/ TVE�h
CL
Dx�@�F�D�A �D0u
 DABEe
 AABA@�F�D�A �D0u
 DABEe
 AABA#HZ,@\E�G�D ``DW
E|_DQ
K4��Y�F�D �PFBE���Q ���(��E�D c
AC{
FG(��E�D c
AC{
FG((�E�D c
AC{
FGTZhz|z<��A�D�D p
FAH`
GAHTDA�kI�O�@��F�A�D �~
ABDW
ABFNKI0HE�R
IgPdx�
�j�k�h���{�J0p
F  �A�L |
DCD�XHIp��HI4��E�A�G �
DDE\
GAL�o�HI�gL(:F�B�B �B(�A0�A8�D�s
8A0A(B BBBA0x	B�A�A �DP%
 AABA$��E�~
ET
Lx��B�B�B �B(�D0�C8�G@u
8D0A(B BBBH�
8L0F(D BBBI�8D0A(B BBBLP	�F�L�B �I(�A0�^
(D BBBJ�
(L GDBI�	"EAK(�	:A�H�G@�
AAJ�	��(
zF�I�D �s
DDJ(,
0F�A�D �WDEX
]$l
�E�z
Q`
H\�
EE�L rA$�
dE�I c
DK\D�
���O�0�
cF�F�D �G0|
 AABA,tH W
ALHiB�G�D �N(�D`�
(C ABBB	
(C ABBG�m ��HM
KI
WD ��HM
KI
WD���<�E�G0~
AE�
AFk
ADI
ER4\1E�D�GP�
AAF�
AAK$��H0�
DT
Do
A�|D��O�D �
AEZF�h �DA�S �g
G�Eh
1O�D�G0h
G�A�F�AAE��`0��DA�A�J0�����X0��LG�A�@�
hE�D�GP{
AAC�
AADZ
AADh�
�E�D�D0T
AAEG
AAO�
AAOr
IALl
DDL�
GAEp4�F�A�D �G0�
 GDIOF
 GABH_
 AABED
 AABHb
 EAFB$��D0g
E�
Go
I(�ME�D�G P
GAH�4�H s
E`
H
IW
IP
P4H�H W
Is
Eh
HW
IP
P4��H s
E`
H
IW
IP
P���F�D�D �J0J
 AABJ�
 GABJ�
 FABH�
 AABEy
 JFDEb
 DABEr
 GABLHL�E�D m
FLf
AAW
AHR
FHP
EK�H V�@H r�6@��|�D�D �G@����C@���X
 FABAX �F�B�B �D(�C0�GP
0D(A BBBA�
0A(A BBBA�|�F�B�B �B(�A0�A8�DP�
8D0A(B BBBA^
8A0A(B BBBH\
8A0A(B BBBJL
8A0A(B BBBJ�
8K0F(G BBBL,.@3TTH@�
A(plE�Z
IM
KV
JC��:EAY �uE�G L
AG�"HQ
A7HX
HD(�E�A�G@d
AAE,
AAJy
DAB$p*E�D�I IIA@��E�F�J0Y
CAF|
GAL�
FAH$�TJ s
Ci
G_@�E�F�J0Y
CAF|
GAL�
FAH$HTJ s
Ci
G_hp�E�C�G0�
IAEG
AAGw
AAGy
AAED
LAOL
CAPH��a�D�G C
CAEZG�A�V ��c
FAF((�d q
K[U S
MoHT�a�D�G A
FADZG�A�V ��c
CAI(��d q
K[U S
Mo0�}E�G H
DHw
GBUG+E�D ]D0 �K�I�J DDAI��H ��T:EAYp#HR
A�7HY
G�*E�D ]C0��K�I�J DCAJ��H ���PT]
D�H@~
J4�H@�
A8P�F�E�A �D(�D0z
(D ABBI�H �
C��H`�
F0�uE�L R
ADq
AFSA�	@E�G rA8,_F�N�A �A(�D0�
(A ABBJhU|]	!+B"]y#��$��%*
K
_
x���*� 
�*�707'V<@DV[op`xo�z�p
�z��������&�@�X�c�~��!�	���(��(�e05e7�Np5X�r������0��`�0�F0!F:�QPs[�u��J��J� *�J�}P-},�A�5I�c�{�-���������M��]	M3�KP�V	o����?��<� �<�e@%e;�Zp/l�����V����	�	���	��
	�		j.*	�
B	�X	�
a	0j3o	��	��	�#�	��	�	��	
l$
\/
lI
�a
p`l
��
/
�
�_�
/
�
�
�
0
��
�
��
� 	x9�Olc��j	p�l�<�p��	h�<��@Z+�F_z����6j���6���@k
�&
�?
��K
�H\
�|
��
��
��
��
��
��
��3<Ul
v��� j������k��hh*hK�jp�|��{�{�{�����!�A�T�m��������������������-�6�P�h��s�����o������% �-�Cg!W g^g!v�%�p!:��%��'��%	��'
�(�'�'	@�([�+t�(��	���+�X/��+��X/��/�/2�0I�/:S�0l^1��0��^1��1�`1z�	��1�2�1025m2Qm2r3�3�U3�U3��3�3(x4=�3�Ex4h�4��4�d5�d5��7p5i$	�*	�0�7HM8^�7mgM8��8�P8���8�i9��8��i9:%p9�-:G�:_:�j�:��<��:���<��>��<1�	���>t@ �>�(t@@�AV�@|_�Ax�C�B���C��E��C1�	0��EHH�Eh&	(?HHV�JkPH�s�J��M��J��	��	���M��P�M��P.�PD�PMM	 f�P}�P��P��P��S�Q���S�,V��S�,V �X60V�?�XV�]k�X�s	@�	8�	P�	H��]�-`�]�-`)O`EO``�`y�`��`��`��c��c�Df�c��lu,DfW�i�	���i�.j�.j�cj�cj�k/�kL<lg�klu<l�Kl�Kl��l��l m m5 2mM 2mg wm wm� 'p� �m�� 'p� Zp� 0p*� Zp	!r!`p�$!	�=!rS!dsg!rTn!ds�!u�!ps��!	��!u�!tv�! uT�!tv"y"�v�"	�6"yL"z`" y�g"	`�"z�"{�" z��"{�"�{�"{��"	X�"�{#�|%#|�,#�|E#]}\#�|}f#]}�#�}�#�}�#~�#~�#Z~
$Z~&$�~@$�~\$�~v$�~�$�~�$�~�$��$�%�%�1%��H%��b%��z%����%���%z��%z��%��
2���%��&z�-&z�E&��[&��ud&���&	��&	��&P��&P�'��'��<'�X'�t'm�"#$%!�'�'��'�' �'p�'�'�'*�'0�'�'�'X�'��'��'0�'��'4�'6�'8�'�'0((8((@(( ( &(:,(]2(X8(K>(AD(ZJ(TP(HV(�\(Pb(Xh(`n(ht(dz(h�(p�(x�(g�(j�(w�(}�(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(�)�
)�))�)`")@()�.)�4)�:)@))F)?L)XR)~X)m^)�d)�j)�p)�v)�|)��)��)��)��)��)��)��)��)��)��)�)�)�)�)'�),�)2�);�)@�)H�)L*Q*W*\*c*i#*n**s1*x8*|?*�F*�M*�T*�[*�b*�i*�p*�w*�~*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��*��*�*�+
+++ +�&+)-+-4+1;+6B+;I+CP+NW+Y^+\e+q+�+�+�+

 &'(�+�+�+�+�+,,,#,+,6,A,L,� W,b,k,x,�,�,�,�,�,�,�,�,�,-- -)-<-P-Z-i-t-~-�-�z�-�- z�-�-�-�-�-�-�-..�.).�3.A.L.V.p.}.�.�.�.�.�.�.�.�.�.//(/`/"7/�H/M/2]\/p2�n/3E�/`3d�/�/�/�4c�/�4t�/�/000*050?0J0X0d0r0�2�0�0�0�00`�0P`@�0�`6�0�`��0Pf�11pjT1'1@l41Pl:B1m"M1@m7X1^1o1`}+{1�}��1 ~:�1`~#�1�~7�1�~*�1��1�P�1���1�1����12���2!202F2U2d2w2�2�2�2����2�2�	�2�@�2P�_33#3�83C3�O3`3o3�3��3�3�3�3�3��U�3�].annobin_numeric.c.annobin_numeric.c_end.annobin_numeric.c.hot.annobin_numeric.c_end.hot.annobin_numeric.c.unlikely.annobin_numeric.c_end.unlikely.annobin_numeric.c.startup.annobin_numeric.c_end.startup.annobin_numeric.c.exit.annobin_numeric.c_end.exit.annobin_coerce_rescue_quiet.start.annobin_coerce_rescue_quiet.endcoerce_rescue_quiet.annobin_num_uplus.start.annobin_num_uplus.endnum_uplus.annobin_num_real_p.start.annobin_num_real_p.endnum_real_p.annobin_num_int_p.start.annobin_num_int_p.endnum_int_p.annobin_num_cmp.start.annobin_num_cmp.endnum_cmp.annobin_fix_rev.start.annobin_fix_rev.endfix_rev.annobin_fix_size.start.annobin_fix_size.endfix_size.annobin_fix_zero_p.start.annobin_fix_zero_p.endfix_zero_p.annobin_fix_odd_p.start.annobin_fix_odd_p.endfix_odd_p.annobin_fix_even_p.start.annobin_fix_even_p.endfix_even_p.annobin_coerce_body.start.annobin_coerce_body.endcoerce_bodyid_coerce.annobin_flo_quo.start.annobin_flo_quo.endflo_quo.annobin_int_even_p.start.annobin_int_even_p.endint_even_p.annobin_int_odd_p.start.annobin_int_odd_p.endint_odd_p.annobin_num_to_int.start.annobin_num_to_int.endnum_to_int.annobin_coerce_failed.start.annobin_coerce_failed.endcoerce_failed.annobin_coerce_rescue.start.annobin_coerce_rescue.endcoerce_rescue.annobin_do_coerce.start.annobin_do_coerce.enddo_coerce.annobin_num_uminus.start.annobin_num_uminus.endnum_uminus.annobin_num_init_copy.start.annobin_num_init_copy.endnum_init_copy.annobin_fix_succ.start.annobin_fix_succ.endfix_succ.annobin_fix_abs.start.annobin_fix_abs.endfix_abs.annobin_fix_uminus.start.annobin_fix_uminus.endfix_uminus.annobin_int_pow.start.annobin_int_pow.endint_pow.annobin_num_nonzero_p.start.annobin_num_nonzero_p.endnum_nonzero_prb_intern_id_cache.13682.annobin_num_modulo.start.annobin_num_modulo.endnum_modulorb_intern_id_cache.13654.annobin_dbl2ival.start.annobin_dbl2ival.enddbl2ival.annobin_flo_coerce.start.annobin_flo_coerce.endflo_coerce.annobin_num_fdiv.start.annobin_num_fdiv.endnum_fdiv.annobin_rb_fix_bit_length.start.annobin_rb_fix_bit_length.endrb_fix_bit_length.annobin_fix_aref.start.annobin_fix_aref.endfix_aref.annobin_fix_equal.start.annobin_fix_equal.endfix_equal.annobin_int_downto.start.annobin_int_downto.endint_downtoint_downto_size.annobin_int_upto.start.annobin_int_upto.endint_uptoint_upto_size.annobin_num_zero_p.start.annobin_num_zero_p.endnum_zero_p.annobin_num_imaginary.start.annobin_num_imaginary.endnum_imaginary.annobin_num_sadded.start.annobin_num_sadded.endnum_sadded.annobin_check_uint.start.annobin_check_uint.endcheck_uint.annobin_check_ushort.start.annobin_check_ushort.endcheck_ushort.annobin_bit_coerce.start.annobin_bit_coerce.endbit_coerce.annobin_fix_xor.start.annobin_fix_xor.endfix_xorrb_intern_id_cache.14358.annobin_fix_or.start.annobin_fix_or.endfix_orrb_intern_id_cache.14351.annobin_fix_and.start.annobin_fix_and.endfix_andrb_intern_id_cache.14344.annobin_ruby_float_step_size.start.annobin_ruby_float_step_size.endruby_float_step_size.annobin_rb_int_succ.start.annobin_rb_int_succ.end.annobin_rb_int_pred.start.annobin_rb_int_pred.end.annobin_fix_lshift.start.annobin_fix_lshift.end.annobin_rb_fix_rshift.start.annobin_rb_fix_rshift.endrb_fix_rshift.annobin_int_dotimes.start.annobin_int_dotimes.endint_dotimesint_dotimes_size.annobin_int_dotimes_size.start.annobin_int_dotimes_size.end.annobin_int_ord.start.annobin_int_ord.endint_ord.annobin_flo_to_f.start.annobin_flo_to_f.endflo_to_f.annobin_int_to_i.start.annobin_int_to_i.endint_to_i.annobin_int_int_p.start.annobin_int_int_p.endint_int_p.annobin_num_eql.start.annobin_num_eql.endnum_eql.annobin_flo_zero_p.start.annobin_flo_zero_p.endflo_zero_p.annobin_flo_is_nan_p.start.annobin_flo_is_nan_p.endflo_is_nan_p.annobin_flo_is_infinite_p.start.annobin_flo_is_infinite_p.endflo_is_infinite_p.annobin_flo_is_finite_p.start.annobin_flo_is_finite_p.endflo_is_finite_p.annobin_flo_hash.start.annobin_flo_hash.endflo_hash.annobin_out_of_range_float.start.annobin_out_of_range_float.endout_of_range_float.annobin_flo_floor.start.annobin_flo_floor.endflo_floor.annobin_num_floor.start.annobin_num_floor.endnum_floor.annobin_flo_ceil.start.annobin_flo_ceil.endflo_ceil.annobin_num_ceil.start.annobin_num_ceil.endnum_ceil.annobin_num_coerce.start.annobin_num_coerce.endnum_coerce.annobin_flo_truncate.start.annobin_flo_truncate.endflo_truncate.annobin_num_truncate.start.annobin_num_truncate.endnum_truncate.annobin_flo_eql.start.annobin_flo_eql.endflo_eql.annobin_flo_eq.start.annobin_flo_eq.endflo_eq.annobin_flo_to_s.start.annobin_flo_to_s.endflo_to_s.annobin_rb_num2ulong_internal.start.annobin_rb_num2ulong_internal.endrb_num2ulong_internal.annobin_num_abs.start.annobin_num_abs.endnum_absrb_intern_id_cache.13674.annobin_int_round_0.start.annobin_int_round_0.endint_round_0rb_intern_id_cache.13915.annobin_num_remainder.start.annobin_num_remainder.endnum_remainder.annobin_rb_num_zerodiv.start.annobin_rb_num_zerodiv.end.annobin_flodivmod.start.annobin_flodivmod.endflodivmod.annobin_fixdivmod.start.annobin_fixdivmod.endfixdivmod.annobin_num_div.start.annobin_num_div.endnum_divrb_intern_id_cache.13648.annobin_num_divmod.start.annobin_num_divmod.endnum_divmod.annobin_rb_num_to_uint.start.annobin_rb_num_to_uint.end.annobin_rb_num_negative_p.start.annobin_rb_num_negative_p.end.annobin_rb_num_coerce_bin.start.annobin_rb_num_coerce_bin.end.annobin_rb_num_coerce_cmp.start.annobin_rb_num_coerce_cmp.end.annobin_fix_cmp.start.annobin_fix_cmp.endfix_cmp.annobin_rb_num_coerce_relop.start.annobin_rb_num_coerce_relop.end.annobin_rb_float_new_in_heap.start.annobin_rb_float_new_in_heap.end.annobin_num_step_scan_args.start.annobin_num_step_scan_args.endnum_step_scan_argsid_toid_by.annobin_fix_to_f.start.annobin_fix_to_f.endfix_to_f.annobin_flo_next_float.start.annobin_flo_next_float.endflo_next_float.annobin_flo_prev_float.start.annobin_flo_prev_float.endflo_prev_float.annobin_flo_abs.start.annobin_flo_abs.endflo_abs.annobin_flo_uminus.start.annobin_flo_uminus.endflo_uminus.annobin_flo_mod.start.annobin_flo_mod.endflo_mod.annobin_flo_divmod.start.annobin_flo_divmod.endflo_divmodrb_intern_id_cache.13770.annobin_fix_mod.start.annobin_fix_mod.endfix_mod.annobin_fix_plus.start.annobin_fix_plus.endfix_plus.annobin_fix_minus.start.annobin_fix_minus.endfix_minus.annobin_fix_fdiv.start.annobin_fix_fdiv.endfix_fdivrb_intern_id_cache.14228.annobin_fix_divmod.start.annobin_fix_divmod.endfix_divmodrb_intern_id_cache.14262.annobin_fix_mul.start.annobin_fix_mul.endfix_mul.annobin_flo_pow.start.annobin_flo_pow.endflo_powrb_intern_id_cache.13778rb_intern_id_cache.13780.annobin_fix_divide.start.annobin_fix_divide.endfix_divide.annobin_fix_idiv.start.annobin_fix_idiv.endfix_idivrb_intern_id_cache.14245.annobin_fix_div.start.annobin_fix_div.endfix_div.annobin_flo_mul.start.annobin_flo_mul.endflo_mul.annobin_flo_minus.start.annobin_flo_minus.endflo_minus.annobin_flo_plus.start.annobin_flo_plus.endflo_plus.annobin_fix_pow.start.annobin_fix_pow.endfix_powrb_intern_id_cache.14292rb_intern_id_cache.14294rb_intern_id_cache.14287rb_intern_id_cache.14289.annobin_flo_div.start.annobin_flo_div.endflo_div.annobin_ruby_float_mod.start.annobin_ruby_float_mod.end.annobin_rb_dbl_hash.start.annobin_rb_dbl_hash.end.annobin_rb_dbl_cmp.start.annobin_rb_dbl_cmp.end.annobin_ruby_float_step.start.annobin_ruby_float_step.end.annobin_num_step.start.annobin_num_step.endnum_stepnum_step_size.annobin_ruby_num_interval_step_size.start.annobin_ruby_num_interval_step_size.endid_div.annobin_int_downto_size.start.annobin_int_downto_size.end.annobin_int_upto_size.start.annobin_int_upto_size.end.annobin_rb_num2long.start.annobin_rb_num2long.end.annobin_rb_fix_lshift.start.annobin_rb_fix_lshift.endrb_fix_lshift.annobin_rb_num2ulong.start.annobin_rb_num2ulong.end.annobin_rb_out_of_int.start.annobin_rb_out_of_int.end.annobin_num_step_size.start.annobin_num_step_size.end.annobin_rb_num2int.start.annobin_rb_num2int.end.annobin_rb_fix2int.start.annobin_rb_fix2int.end.annobin_flo_round.start.annobin_flo_round.endflo_round.annobin_num_round.start.annobin_num_round.endnum_round.annobin_flo_le.start.annobin_flo_le.endflo_lerb_intern_id_cache.13852.annobin_flo_lt.start.annobin_flo_lt.endflo_lt.annobin_flo_ge.start.annobin_flo_ge.endflo_gerb_intern_id_cache.13836.annobin_flo_gt.start.annobin_flo_gt.endflo_gt.annobin_flo_cmp.start.annobin_flo_cmp.endflo_cmprb_intern_id_cache.13819.annobin_fix_le.start.annobin_fix_le.endfix_lerb_intern_id_cache.14324.annobin_fix_lt.start.annobin_fix_lt.endfix_lt.annobin_fix_ge.start.annobin_fix_ge.endfix_gerb_intern_id_cache.14313.annobin_fix_gt.start.annobin_fix_gt.endfix_gt.annobin_int_round.start.annobin_int_round.endint_round.annobin_rb_num2uint.start.annobin_rb_num2uint.end.annobin_rb_fix2uint.start.annobin_rb_fix2uint.end.annobin_rb_out_of_short.start.annobin_rb_out_of_short.end.annobin_rb_num2short.start.annobin_rb_num2short.end.annobin_rb_fix2short.start.annobin_rb_fix2short.end.annobin_rb_num2ushort.start.annobin_rb_num2ushort.end.annobin_rb_fix2ushort.start.annobin_rb_fix2ushort.end.annobin_rb_num2fix.start.annobin_rb_num2fix.end.annobin_rb_num2ll.start.annobin_rb_num2ll.end.annobin_rb_num2ull.start.annobin_rb_num2ull.endrb_num2ull.localalias.15.annobin_rb_enc_uint_chr.start.annobin_rb_enc_uint_chr.end.annobin_int_chr.start.annobin_int_chr.end.annobin_rb_fix2str.start.annobin_rb_fix2str.end.annobin_fix_to_s.start.annobin_fix_to_s.endfix_to_s.annobin_rb_int_positive_pow.start.annobin_rb_int_positive_pow.end.annobin_rb_num_coerce_bit.start.annobin_rb_num_coerce_bit.end.annobin_Init_Numeric.start.annobin_Init_Numeric.end.annobin_rb_float_value.start.annobin_rb_float_value.end.annobin_rb_float_new.start.annobin_rb_float_new.end.LC0.LC4.LC5.LC1.LC2.LC3.LC6.LC7.LC8.LC9.LC10.LC11.LC13.LC12.LC15.LC14.LC16.LC17.LC18.LC23.LC24.LC19.LC25.LC20.LC26.LC22.LC21.LC27.LC33.LC31.LC29.LC28.LC32.LC30.LC35.LC39.LC36.LC37.LC38.LC34.LC40.LC41.LC42.LC44.LC43.LC45.LC46.LC47.LC52.LC49.LC50.LC51.LC48.LC53.LC55.LC56.LC57.LC59.LC58.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC70.LC69.LC68.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC79.LC78.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.LC120.LC121.LC122.LC123.LC124.LC125.LC126.LC127.LC128.LC129.LC130.LC131.LC132.LC133.LC134.LC135.LC136.LC137.LC138.LC139.LC140.LC141.LC142.LC143.LC144.LC145.LC146.LC147.LC148.LC149.LC150.LC151.LC152.LC153.LC154.LC155.LC156.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_funcallrb_inspectrb_obj_classrb_eTypeErrorrb_raiserb_respond_torb_rescuerb_warnrb_int2bigrb_big_powrb_big_mulrb_intern2rb_dbl2bigrb_Floatrb_assoc_newrb_to_intrb_big_normrb_integer_float_eqrb_big_eqrb_block_given_prb_yieldrb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_cmperrrb_equalrb_complex_newrb_to_idrb_singleton_classrb_remove_method_idrb_id2strrb_eRangeErrorrb_big_xorrb_big_orrb_big_andrb_int_succrb_big_plusrb_int_predrb_big_minusrb_big_lshiftrb_uint2bigrb_big_rshiftrb_memhashruby_snprintfstrchrrb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolruby_dtoarb_usascii_str_new_static__memcpy_chkruby_xfreerb_str_catrb_str_catfrb_usascii_str_new_cstrrb_str_resizememset__memmove_chkmemmove__stack_chk_failrb_big2ulongrb_cBignumrb_method_basic_definition_prb_num_zerodivrb_eZeroDivErrorfmodrb_num_to_uintrb_num_negative_prb_num_coerce_binrb_num_coerce_cmprb_integer_float_cmprb_big_cmprb_num_coerce_reloprb_float_new_in_heaprb_newobj_ofrb_freeze_singleton_classrb_scan_argsrb_get_kwargsrb_eArgErrorrb_num2dblnextafterrb_big2dblrb_big_modulorb_big_fdivrb_big_divmodrb_complex_rawrb_rational_reciprocalrb_big_divrb_rational_rawruby_float_modrb_dbl_hashrb_dbl_cmpruby_float_stepruby_num_interval_step_sizerb_cmpintrb_num2longrb_big2longrb_num2ulongrb_out_of_intrb_num2intrb_fix2intfrexprb_check_funcallrb_num2uintrb_fix2uintrb_out_of_shortrb_num2shortrb_fix2shortrb_num2ushortrb_fix2ushortrb_num2fixrb_num2llrb_big2llrb_num2ullrb_big2ullrb_enc_uint_chrrb_enc_codelenrb_enc_str_newrb_enc_precise_mbclenrb_error_arityrb_to_encodingrb_usascii_str_newrb_ascii8bit_encodingrb_str_newrb_default_internal_encodingrb_fix2strruby_digitmaprb_int_positive_powrb_num_coerce_bitInit_Numericrb_eStandardErrorrb_define_classrb_eFloatDomainErrorrb_cObjectrb_cNumericrb_define_methodrb_mComparablerb_include_modulerb_cIntegerrb_undef_alloc_funcrb_undef_methodrb_define_aliasrb_define_constrb_float_valuerb_float_new��J������������������������������������������������*������������������'���������i�w�����������������������������������������������������������e���������j���������q���������x����������*��������������������������������������+���������2���������<*���������F������������������'���������m�����������������������������8���������=���������Gcz����������������������������������������������������������������������,���������I������������������������������	����������	����������	���������
���������Z
���������i
���������q
����������
����������
����������
����������
������������������!���������j���������y�������������������������������������������������!���������,���������7���������?���������J���������T���������^*���������h����������*������������������������������*������������������������������*���������
���������
���������
*���������!
���������+
���������t4���������H���������M���������Wt���������������������l���������������������������'lY���������f����������d�������������������������������d)���������6���������D���������X����������������������������������������������������������������������������>���������V������������������������������������������������������������������-���������G���������a���������i��������������������������������������������������������������������#�����������������������������7���������<���������I�������������������������������������������������
���������7����������������������������������������������������������1���������W�������������������`���������k����������*����������*����������*���������*���������*���������#*���������3*���������C*���������S*���������c*���������s*����������*�������������������������������������������������������������������/���������U���������u���������	����������!����������!����������!����������!���������("���������0"���������w"����������"����������"����������"����������"����������"���������"���������"���������Q#��������Y#����������#����������#���������$���������*$���������Z$����������$����������$���������^%����������%���������%����������%���������&���������\&���������&���������&*����������&����������&���������&��������'��������-'��������d'����������'*����������'	���������'����������'����������'���������(*���������+(���������K(k(*���������x(����������(
���������(����������(�(���������(���������(
��������r)����������)����������)����������)*����������)���������*���������.*��������;*��������c**���������p*����������*����������*��*���������`+��������e+���������o+��+����������+���������+,���������m,����������,���������-*���������-���������\-����������-*����������-����������-���������.*���������.���������:.���������T.���������s.*����������.����������.*����������.����������.*����������.���������#/*���������3/*���������@/���������i/��������t/*���������~/����������/����������/���������0���������80���������x0����������0����������0���������Z1���������t1����������1���������1����������1���������1����������1���������1����������2����������2*����������2����������2*����������2���������K3����������3���������h4����������4����������4����������4*���������5���������Y5����������5���������5����������5���������6���������F6*���������S6���������s6��6��6����������6*����������6���������(7���������-7���������L7��������Q7���������|7*����������7���������7����������7*����������7���������7����������7*����������7���������7����������7*����������7���������7���������Y8���������a8���������f8����������8����������8���������8���������s:���������;���������S<����������<���������P=����������=���������+>|;>����������>���������>����������>|�>����������?����������?���������1@���������a@���������n@���������wC����������C,E��������E���������'E,�E���������F$#F����������F���������JG���������eG$zG��������G����������G$�G����������G���������!H���������4H���������?H���������J���������J���������QK���������oK��K����������K�(L����������L���������M��������M���������'M��M���������M����������M�N���������mN����������N����������N����������N����������N���������hO���������yO���������P���������IP���������VP����������P����������P�P����������P����������PR����������U���������5W����������Y����������Y<�Y���������Z4�Z���������Z����������Z4�Z���������"[����������[����������[L�[���������G\*���������T\���������u\����������\����������\���������\����������\L(]��������-]���������7]<C]DX]��������]]���������g]D�^����������`���������\a���������ia���������wa����������a����������a���������b���������b����������b����������b���������Oc���������Wc���������fc����������c����������c���������d���������4d���������Md����������d����������d���������e���������e���������3e���������Be���������Je���������ae���������{e����������e����������e����������e����������e���������
g���������g���������Fg���������tg����������g����������g����������g����������g����������g����������g���������h���������i�2i���������Gi���������fi���������}i����������i����������j���������k��������k��������!k��������Kk���������k���������k*����������k����������k*����������k	���������k����������k���������l���������l���������Yl��������`l��������gl��������|l*����������l����������l���������m��������m���������.m��������im���������sm���������m���������m����������m��������n��������'n���������/n���������gn��������vn����������n���������Ao���������o���������Cp���������q�/q���������;q���������q���������q����������q��r����������r��������t�?t���������Kt��������u ��������u���������u��u����������u��������w���������w���������w�0w��������Vw����������w���������Hx!��������Sx���������cx��x���������x����������x���������{y����������y\�y����������y����������y��������z��������
z���������z\�z����������z����������z����������z��������[{����������{T�{����������{����������{���������{ ���������{����������{Tk|����������|����������|����������|��������}"��������}���������}��������A}��������M}����������}*����������}����������}���������)~��������0~��������7~#��������L~*���������V~���������i~���������~	���������~����������~	��������!*���������)���������F��������������������*����������$������������������?�������������������������������*�����������%���������������������������.�&��������8�*���������B����������T���������q���������}�*�����������'��������������������������������*�����������(�������������������+����������o��������������������������������������������������)���������*�������������������1���������=�*���������D�'��������N����������S����������Z�*���������a�(��������k����������r�*���������y�%�����������������������������Ӄ�����������������C�*���������Q�*��������[����������b�*���������l�+��������v�����������������������*�����������,��������„���������ӄ-��������ڄ�������������������������������������?���������I���������Q���������a���������m�*���������x�.�������������������ۅ*��������
����������P�/��������U����������^�*���������g�0��������q����������v�����������������������������������������dž��������ц��������������������������F����������^�1��������k����������w����������~���������������2�������������*"����������#����������*�����������3����������*�����������#��������LJ*$��������·4��������؇*%���������#���������*&����������5���������'��������
�*(���������)��������0�6��������5�'��������L�1��������Q�'��������e�7��������j�'��������~�8����������'����������
����������'����������9����������'��������ψ:��������Ԉ'������������������'�������������������'��������#���������(�'��������?�;��������D�'��������[�<��������`�'��������w�=��������|�'����������>����������'����������?����������'��������‰@��������lj'��������ۉA���������'���������B����������'��������
�����������'��������&�C��������+�'��������?���������D�'��������X�D��������]�'��������t�E��������y�'����������F����������'����������G����������'����������H����������#��������Ŋ**��������ъ+���������*����������*����������I��������#�,��������7�B��������<�'��������P�J��������U�'��������i�K��������n�'����������L����������'����������M����������'����������N����������'��������̋���������ӋO��������؋'�������������������P���������'��������������������Q��������
�'��������!�R��������&�'��������:�S��������?�'��������S�T��������X�'��������l�@��������q�'��������������������'����������D����������'����������F����������'��������ӌE��������،'���������U���������#����������V���������'���������V���������W���������-��������2�
��������7�'��������N�X��������S�'��������j����������o�'����������Y����������'����������Z����������'�������������������Í'��������ڍ;��������ߍ'����������<����������'������������������'��������.���������3�'��������J���������O�'��������c�>��������h�'��������|�?����������'����������[����������'����������\����������'��������Ў9��������Վ'���������]���������'��������� ��������
�'��������$�^��������)�'��������@���������E�'��������Y�_��������^�'��������u����������z�'���������������������'���������������������'��������ɏ`��������Ώ'���������a���������'���������b���������'���������c���������'��������3�d��������8�'��������L�e��������Q�'��������e����������j�'��������~�J����������'����������K����������'����������O����������'����������f��������Ő#��������А+���������I���������,��������$�g��������)�.��������8�h��������=�.��������L�i��������Q�.��������`�j��������e�.��������v�k��������{�.����������l����������.����������m����������.����������n����������.����������o��������Ƒ���������Бp��������ؑ.�����������������������������q����������.���������r���������.����������������������������'�s��������/�.��������7�t��������<����������F�u��������N�.��������a�V��������f�'��������p�V��������w�W��������|�-����������1����������'����������
����������'��������ŒX��������ʒ'�������������������'����������Y���������'���������Z���������'��������1�v��������6�'��������L���������Q�'��������g�;��������l�'����������<����������'��������������������'��������������������'��������ӓ[��������ؓ'���������\���������'��������	�9���������'��������$�]��������)�'��������?� ��������D�'��������Z�^��������_�'��������u���������z�'����������:����������'����������w����������'����������c��������Ŕ'��������ؔ>��������ݔ'���������?����������'������������������
�'�������� �T��������%�'��������8�@��������=�'��������P���������U�'��������h�D��������m�'����������E����������'����������F����������'����������x����������'��������˕!��������Е'���������y���������'����������z���������'���������{���������'��������$�|��������)����������5�}��������<��A����������H����*�����������*�����������*�����������*���������Ӗ*���������ږ*����������*�����������*����������*����������*���������3�*���������:�*���������S�*���������c�*���������j�*���������q�*�����������*�����������*�����������*�����������*�������������������$�������������������y��������������������������������������������������������������������8���������a���������H	���������^	����������	�����������������������������������������������U��������������������������������������2���������������������������������������B���������b���������|�������������������`���������� ���������� ���������](����������(����������*����������+���������.����������1���������2���������.4���������K4���������t4���������I8����������8���������e9����������9����������:����������A����������A����������A����������A���������C���������FC���������QC����������C����������C����������D����������E���������bI����������I���������-J����������J����������K���������L���������yL���������|Q���������(R���������HR����������S���������,T����������T����������V���������XW���������xW���������7Z����������[����������[����������\���������
^����������^����������^���������ih����������h����������h����������i���������*l���������q���������`s���������-t���������pv���������:x���������|x����������x����������y���������vz����������z����������{���������V|����������|���������~��������q��������i���������� ���
$,
P
X�
���*��**7D*L7p7xV�7�V�V�oVo0o8zdolz�z���z������$�,�P�X�����������(DL(p(xe�(�e�e��e�0�8�d�l����0���0�0�F$0,FPFX��F��������		JD	L	Jp	Jx	}�	J�	}�	}�	�
}
�0
�8
�d
�l
��
��
��
��
��
��
M$�,MPMX��M��������<DL<p<xe�<�e�e��
e
�0
�8
�d
�l
��
��
�	�
��
�	�
�	�
�
$�	,�
P�
X���
�����������D�Lpxl��l�l��l�0�8/
d�l/
�/
��
�/
��
��
��$�
,�P�Xl���l�l�<�l�<<�D<L�p�x�������0�86d�l6�6���6������$�,�P�X���������������D�L�p�x�����08�dl������������h$�,hPhX��h�����{���{{D{Lpx����������0�8�d�l�������������$�,�P�X��������������D�Lpx�������g!�g!0g!8�%dg!l�%��%��'��%��'��'��($�',�(P�(X�+��(��+��+�X/��+�X/X/�/DX/L�/p�/x�0��/��0��0�^1�0^10^18�1d^1l�1��1�2��1�2�2�m2$ 2, m2P m2X 3� m2� 3� 3� U3� 3� U3!U3!�3D!U3L!�3p!�3x!x4�!�3�!x4�!x4�!�4"x4"�40"�48"d5d"�4l"d5�"d5�"�7�"d5�"�7�"�7�"M8$#�7,#M8P#M8X#�8�#M8�#�8�#�8�#i9�#�8�#i9$i9$:D$i9L$:p$:x$�:�$:�$�:�$�:�$�<%�:%�<0%�<8%�>d%�<l%�>�%�>�%t@�%�>�%t@�%t@�%�A$&t@,&�AP&�AX&�C�&�A�&�C�&�C�&�E�&�C�&�E'�E'HHD'�EL'HHp'HHx'�J�'HH�'�J�'�J�'�M(�J(�M0(�M8(�Pd(�Ml(�P�(�P�(�P�(�P�(�P�(�P�(�P$)�P,)�PP)�PX)�S�)�P�)�S�)�S�),V�)�S�),V*,V*�XD*,VL*�Xp*�Xx*�]�*�X�*�]�*�]�*-`+�]+-`0+-`8+O`d+-`l+O`�+O`�+�`�+O`�+�`�+�`�+�`$,�`,,�`P,�`X,�c�,�`�,�c�,�c�,Df�,�c�,Df-Df-�iD-DfL-�ip-�ix-.j�-�i�-.j�-.j�-cj..j.cj0.cj8.�kd.cjl.�k�.�k�.<l�.�k�.<l�.<l�.Kl$/<l,/KlP/KlX/�l�/Kl�/�l�/�l�/m�/�l�/m0m02mD0mL02mp02mx0wm�02m�0wm�0wm�0'p1wm1'p01'p81Zpd1'pl1Zp�1Zp�1r�1Zp�1r�1r�1ds$2r,2dsP2dsX2u�2ds�2u�2u�2tv�2u�2tv3tv3yD3tvL3yp3yx3z�3y�3z�3z�3{4z4{04{84�{d4{l4�{�4�{�4�|�4�{�4�|�4�|�4]}$5�|,5]}P5]}X5�}�5]}�5�}�5�}�5~�5�}�5~6~6Z~D6~L6Z~p6Z~x6�~�6Z~�6�~�6�~�6�~7�~7�~07�~87�~d7�~l7�~�7�~�7��7�~�7��7��7�$8�,8�P8�X8���8��8���8���8���8���8��9��9z�D9��L9z�p9z�x9���9z��9���9���9z�:��:z�0:z�8:��d:z�l:���:���:	��:���:	��:	��:P�$;	�,;P�P;P�X;���;P��;���;���;��;���;�<�<m�D<�L<m� � � � � 4H \0p@�`�p���������0(p@�T�t0�P��� P�0�D����P�� (@DpX�|	��	��
�0�Ddp���0
��
�,pX@l�� ���@��4�T�h�|�� ����p��$H�\�t��������  ,p!|�%��'��(T	�+�	`/�	�/�	�0
`10
�1\
2p
p2�
3�
`3�
�3�
�40�4Lp5��7�P8��8�p9: �:`�<��>��@�B
�C�
�E�
PH8�J��M��P�PQL�S�0V��XP�]�0`�P`��`��`$�c�Pf0jD0jXpjt�k�@l�Pl��l�m@m,�mt0p�`p�rpsL ut�v� y, zX{�|��|`}$�}X ~t`~��~��~���8��T��������������0P�l����.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.rodata.cst8.rodata.cst16.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*~T*l*��*��*�'�m�"@h~Xh*--�30��=0�T<8@���:*
S��b���]@p!0*
|X��X���@�!0*�,��,���@�!0*������@"0*2��2��_)@��6��D0�.�.��.�|.�S.�'.�M.�[.�n.��.��.��0� �P���@0"�*(��L+�	xJ�3�0�object.o/       1690381920  1000  135   100644  114224    `
ELF>��@@.-

!# $%&��H9���HD��f.���H��H��H����ff.�f���H��������fD����fD��H��Ð��H��H��HE��ff.�����fD��H��H��H����ff.�f���1��f�����fD��1��f�����fD��H9�t/H��H��1�����H��t�H������f���H9�t/H����H��uH��H���@�H��H����H���ff.�@��H��H��1�����H��H��H�H����Ð��SH��H�����1��H��[�ff.�@��H��H��1�����H��H��H�H����Ð��H����tH�H���H��H�D�f.�H���H���H��H�D�fD��H9���H�����H�������H��у���t������H�VH�r8H��tjH9�t_L�O L�F H��H��M9�u�Jf.�H9�t;L9B t5H�RH��u�H��u�DH9�tH��L9J tH�QH��u����H��t�H��L�% L9N u�1��PH�H�5H�81�����H9�t�f�1��ff.�f���UH��1��SH���H��H�����u	H�����uH���H��H��[]�@H��ƒ���t��u�H��H��[]�ff.����SH���H��[�ff.��������H�=�ff.����H�=�ff.����H�=�ff.���1�1����1��D��UH��SH��H�|$H�t$�H��H��uH�|$���t2H��H��[]�@H�����t8H��H���H��H��H��[]�H�|$�H�|$H�5H��1��H���H�5H��H��1����UH��SH��H�|$H�t$�H��uOH�|$���t!H���H�|$H�5H��1�H���H�|$�H�|$H�5H��1��H��H�����tH��H���H��[]�H���H�5H��H��1����H��H�|$���u
�H���H�T$H�t$���H���f���1��D��UH��SH��H�|$H�t$�H��uH�|$���t2H���[]�DH��H�����t2H��H���H��[]�H�|$�H�|$H�5H��1��H���H�5H��H��1����UH��SH��H�|$H�t$�H��H��uH�|$���t2H��H��[]�@H�����t8H��H���H��H��H��[]�H�|$�H�|$H�5H��1��H���H�5H��H��1����UH��SH��H����tl�H�5H����H�5H���H�CH� tH�C�#��u!H�����tH��Ѓ���-�H��s"H��H��[]�H��H�56���@��u�H�����t�H�E������t�%H	�H��ff.��������!�f���1�@��u)H��H��t H�1��у���tH�к%HE��f.���S1�H��H�=�H��[�����@��u'H�����tH��у���tH�к%HE��f���1�@��uH��H��tH�1��у���t�H�к%HE��fD@��u&H�����t������H�� tH���H��H�H�5H�81������H9�tG@��u<H�����t3�����u)H���H��t*H��H�H����H������f.��H���fD��H�GH��t;�u1H�����t)�����t�LH�����t0�����u6H�@�t��DH�H98u��fDH���HD����PH�H�5H�81��D��@��u!H��H��H�����t�����uH���H��H�H�5H�81��f���H9�t�D1��ff.�f���@��u	H�����u
H���f�H��у���t��u�~��u��H���@�H��s�H���P���S1�H��H�=�H��[����SH������u&H�����tH��ƒ���t��t��u��H�H��[�H���fD��S1�H��H�=�H��[����AW�G�AVAUATUSH��8����H�D$H�H��H�D$(��t	H�NH�L$<���uH������xH�|$(�H�|$(H�D$��xH�D$�(H�|$����H�|$(H��� �L�GH�L$N�,L9��������L�yM9�s<:��L�|$L��M9�w�1fDI��M9��A�?:u�L9��aM��H�T$H��I)�L���H��H+t$A�?:I���M���L������L��H��H�D$�����k�����H��L���H��M9��kH�؃�H�D$�vH�|$(�H�5H��H�H�81���H��I��A������������z���H������H�|$(�H���O1�H��8[]A\A]A^A_�fDM��L9��IM��H�T$H��I)�L���H��H+t$I��M����H�|$(L���H�èu2H�����t*H��ƒ���tH�€�H�{H�t
��uH����}���tH������P���H���H�5H��H��1������$���H��L���H��M9������H��8�[]A\A]A^A_��H������}����������������g���DI�oL9�s,A�:u%I�����H��H��H�D$����t;�H����H�|$(H��H�51���y:�H���H�H��>����H��[���H�H�5H�81�����L���H�5L��H��1��D��SH������t
��[�fDH���1�[���‰��ff.�f���SH������t
��[�fDH���1�[���‰��ff.�f�AUI��ATUSH��H��@��tJI��@��uH�����t
�����t.H���H��H��tjH��A��H��tHH��[]A\A]��H���H�߅�tH��[]A\A]��H���L��H��H��1���L��H��H��1��H�H��H�5H�81�������~xAU�G�ATL�l�L�%UH��SH��H��f�H�;L��H��H�o���H�5�������A�1�H��H���L9�u�H���[]A\A]�fD��f.�����~xAU�G�ATL�l�L�%UH��SH��H��f�H�;L��H��H����H�5����S���A��H��H���L9�u�H���[]A\A]���f.�����~xAU�G�ATL�l�L�%UH��SH��H��f�H�;L��H��H�O���H�5��������A�1�H��H���L9�u�H���[]A\A]�fD��f.���UH��H��H�
SH��H��H�H�5�S���H��H��H���H��H��[]�ff.���UH��H��H�
SH��H��H�H�5����H��H��H���H��H��[]�ff.���UH��H�
SH��H��H��H�H�5���H��H��H��H��[]�ff.�@����uH�FH��t
H��t�C���AT1�H�=E1�UH��SH���H�;H�C����H�
H�����H�5����A���,���D��H��H��A��[�]A\�f���H��H��HE��ff.���H��H��HE��ff.���H���uMH�����tEH��у���t8��u3H�р�H�H�t#��uH��H�|$�H�D$H���fD����SH���H��[�f.���USH��H���H��H�X��u	H�����uH��H��[]��H��H�����u�H�E��`H��`u�H���`H��`t�H��H������ATUSH��H�z�2L�%H��I9$���uyH�H�(H�l$H��u=H�CH�uH���H�|$H���H�����H��H��[]A\��H���H��H���H�k@��tcH�l$�@H�L$H�1��H�|$�H�l$I;,$�j���H�}�_���H�H�5H�81��f�H�����t�H��H�����u�H���`H��`�u���H�E��`H��`�d���H��H����T���H�H�5H�81��ff.�@��AW�G�AVAUATUSH��8����H�H��A�H�D$(��tL�f<���uH�������H�|$(�H�|$(H�D$��xH�D$�fH�|$����TH�|$(H��� �}L�GH�L$N�,L9��l����aL�yM9�s<:��L�|$I��L��L�d$f�M9�w�fDI��M9���A�?:u�I9��M��H�T$H��I)�L���I��H��H+D$A�?:H�$�����2H������%������M���XH�4$H�|$(L���I�Ĩu0H�����t(H��ƒ���tH�€�I�|$I�$t	���~�}�����L�������H�{��
�����L���H��H���H��M9�����H��8H��[]A\A]A^A_�H��I��A���w������������H�������H�|$(�H��H����H��I��������H���f.�M��I9���M��H�T$H��I)�L���I��H��H+D$H�$���f.�L������0H�|$L��H��t�H������D�H������I�oL9�sA�:uI���#���H�|$(H��H�51��L����u���H�t$(H���H������y:�s���H�H��i����H�����H�|$(�H�5H��H�H�81��L���H�5L��H��1��H�$H�|$(1��L��H�5L��H��1��H�H�5H�81��f.�L���H�5L��H��1�����D��@����@����������H��� @���&H�FH��tmATI��UH��SH�����tNH�EH�E ���8-���H�5H���L���H��H�5H��H��1��[1�]A\�f�1��DH������u���H��teH���f���H�H��[���DH�H��G���f�H�E�8-�g����#�H�5H����_����H�H�����H�H�����H�H������H�H��������S@��t}@������������H����@����H�_H���]�H�@H�@8H��t,H9�t[H�P H9S u�O�H9�tCH9S t=H�[H��u�H��[��H�����u�H��t8H��u�H�H����H��[�fDH�H��l���H�H��]���H�H��N���H�H��?���H�H��0���D��H��H��H���ff.���UH��SH��H������@������������H����@����H�{�H��H�=H��1���u1H�����t)H�0�������H��H�҃�H��u��uyH��[]�f�H�����u�H��t!H��u�H�H�8�H�H�8�z����H�H�8�j����H�H�8�Z����H�H�8�J����H�H�8�:����H������z���H��у����i�����H	�H�0�X������SH���H��t~��tY�����؃�����H������tsH�{�H��H�=H��1��H��H�=��[H���H�����u�H��taH��u�H�H�8�H��[��H�H�8�@H�H�8����H�H�8�r����H�H�8�b����H�H�8�R������H���uH�����tH�G�@��USH��H����u	H�����u
H��H��[]�H��H�s@��u�H�����t�H�����u�H���`H��`u�H�E��`H��`t�H��H������USH��H��H�H�w@��uH��H�����u:���~!��uH�����tH��ƒ���t��H�H��H��[]�D���u�H���`H��`u�H�E��`H��`t�H��H���뗐��H��H��1�����H�������H�������H��H��t@H���u����u	H�@H��u���D��@��t&@��u@������tVH��t`@��tjH���H�����u�H��t!H��u�H�H�8��H�H�8��H�H�8�@H�H�8�@H�H�8�@H�H�8�@��ATUH��SH9���@���H�������H��ƒ���������H��@��tb�@��u-�������H����@����H��4tO���9�uMH���H��I���I9�u5H��[]A\�fDH�����u�H��ta�H��u��D��H�H�5H�81�����f���|���fD��l���fD��\���H���ff.���UH��H��SH�����H��H����H9øHD�H��[]��AW�tE1�AVAUL�-ATI��UH��SL��H��D�2H�t$�L$�A��H��A��
���A8�u�H��H�����u�Ic�H��I�tH����1�1�L���H��4tH��[]A\A]A^A_�f��D$����A��H�H�HM�I����I��tsH�
M��u2H�L�D$H��H�5H�81��f�H���H���f���L���L�D$H��H�5H��H�H�81����C���H�
�H�
���fDAUI��ATI��UH��SH���L��H���H��M��I��PH�H��H��H�5H�81��@ATUS@��uV@��uH�����t
�����
t=H��H���H��H�5����I��H�L��H�0�H��tL��[]A\ÐI��[]L��A\�L��H��H�5H���0���SH��H����tK�����؃�����H��H���H��t;��t6�������w)H�Hc�H�>��@H�����u�H��t9H��uʅ��t$��H����t$H��tH��H�ߺ[�@��tdH�H�5H�81��@��u�H��H��[���uЉ؃���tJ�C�
f/�r
f/sEH��[�H�H�5H�81�����|���H��H9�uIf�1�H�H�5H���x���H���e���H��H��H�5[�
���f.�H�ڸ�
H��?H)�H��H��H	�H��H�D$�~D$f/��A����2��������t7H����u>H�~H�t$@��uW�H�t$H�>��H�������1�H�>����@E1�1�H�1��1��H���������H�t$�ff.����ATUH��SH��H� u
H�H���|H�E uRL�e1�M��H�E H�KL�cH�C H�#���[]A\��L���H�uJ��H���H���f��oECH�E H� H�C []A\��H�CH�CH�C �b���ff.�USH��H������H�������H��ƒ���tu��upH%��H��H��H�H���H	�H��H��H���H��H���@��uH�����t�E����tH��[]�DH��H��H��[]���H���H�5H��H�H�81��ff.����U1�1Ҿ�
S1�H���H���H����xt H�����tTH��H��[]�f.�H��H�����u�H���H9�t�H�����u�H�H�5H�81��H�H�5H�81�����ATUSH����u H�����tH��ƒ���t
�����H���I��H��t�
H�=�L��H���H��H���H�5�H���H�5H��tPH���H���H��H���H��H�5�H��[]A\ÐH���[]H��A\�@�H�=�H��H���H�=���H��H����uH�����t
�����tH���H��H����\���H���H��H����D������UH��SH���^��H��H���S��H�@H�@8H��t*H9�t%H�P H9S u�DH9�tH9S t	H�[H��u�H��H��[]�f���@��u!H�����tH��Ѓ����H��s�@@��u�H�����t�H�������t�%H	�H�����PXH�5H��H�H��H�81��ff.���ATUSH�H��uH�H98ut��u	H�����u<H���H��H������H��H���H��I���I9�uMH��[]A\�H��ƒ���t���t�H�H�5H�81��H�H�5H�81��H�H�5H�81���f���ATUH����SH����H��������H���H��H�H��H�ށ�H�H�EH%���H	�H��I��H�C�uH�����u:H��H�����H��H�ߺ�1��H�E%H	H��[]A\�@H��H�����I�$uH���`H��`t!�ƒ���t���t�H��L����DH�ƒ�`H��`t�L��H���I�$���H�5H��H�H�81��ff.���USH��H����H��uEH�����t<�H���H��H��H�����H��H���1��H��H��[]��H�5H��H�H�81��fD��ATI��U��H��S�L���H��H���H��[]A\���H�G����SH�����tH��[�f.�H�����u�H���H�5H��H��1�����@�����@��u1�������	H���@���H��4����9���AUA��ATI�̹UH��L��SH��H��H���X�tD��u'�ƒ�����H��t<��H��4ty���A9���H��[]A\A]�H�����u�H�����H��u���f�H������X���H�����H���@����@���fDH���@�덐����fD�����fD�����fD���fD����fD��2���fD����fD�����fD�����H��L��H��H���u�D��@�����@��u1�������	H���@���H��4�+���9�u	����AUA��ATI��1�UH��L��SH��H��H����H��t�u,H�������A9��H��[]A\A]�f.���uىƒ�����H��tS<��H��4u���fDH���@H������H���H�����H���0����0���fD��h���fD�����fD�����fD���fD��(���fD�����fD�����fD����fD����H��L��H��H����D��SH��@��uK@��uH�����t
�����
t2H��1�H�5��H��H�H��H�0�H���HD�H��[�f���H�5����H�5���1���D��AWAVAUATUSH��H�|$dH�%(H�T$x1�H������I���
fDI��A�?���u��u
A�?0�!H�D$(L��H��H�D$��$��8"H�D$�H�D$(I9��F�8��I9��L�l$0M��I�ME�fDL9�vI��A��I��A�~�I9�r�A�I�]ED��t$<_�,I�OI9�����A�GI�τ�u�A������|$00��H�t$L���H�D$�$���"��M���	f�H�D$���"��H�D$xdH3%(�$��H�Ĉ[]A\A]A^A_�DH�D$(�L��H�
H�=L)�H��N�H�HN�1��H�D$�H�D$(I9���������x���H�|$H�5��A���I��A�GI������f���t4M9�t����t�A�M�g���t�A�GM������I��A�<_�����I��A�<_t��o����A�G���<X����f���$����H�t$L���H�D$�$�8"��H�D$(L9�����H�������8@��u�*�H�PH�T$(�x@��t���H�D$(u�8����H�D$��4���f���$�:����D$1���<X��f���$����H�t$(L)�H��(H�
L��1�H�=�H�D$����H�
L����H�t$(L)�H��~<H�
L��1�H�=�H�D$����L�l$01�M������H�
L����H�D$�L�H�L$H�5�H�D$(L)�H��N�H�LN�H�H�81���ff.����UH��AUATA��SH��8H�}�H�}�dH�%(H�E�1�H�E��H�E�H��� ��H��L�h��E��t1�H��L���H���A�|��H�����H�E�H�E�H�CH��H�E�H��H%�H)�H���H��H9�tH��H��$������t	H)�H�L�H�L$H���L��H��H����I��D��L���H�}�u?H�E�dH3%(utH�e�[A\A]]�DL�hH�XM��t�E���(����
���DH�}��E���E��H�}�H���H���n���H�H�5H�81������H��@��tR@����������H��t6H���H��tI@��tC�������w6H�Hc�H�>��DH��H���H�����u�H����H��u�H�
H��H���@�H�0fH~�H9�t!H��H��<������teH��H��t�H���D��H�0fH~�H9�u���H�f�H�0�H*�fH~�H9�u��fDH��H��H��H��H���H�H�5H�81��ff.����H���@��������tT@��u	H�����u;H�SH��H�0�H��t1H��H�
H�[��������u�H���H�H��tH�H��tH�H��uH��H�H�5H�81��H�����ff.�@��������tb@��uH�����t
�����tIH�SH��H�0�H��t!H��H�
H�[��D�[�f�H���ff.����H��@��tR@��ul��������H��H���H��tQ@��tK������������u/�GH���DH�����u7H����H��u(���ƒ���tq�@H�����������������uĉ�����u�H��H9�tkH���H��H��?H)�H	�H��H�|$�~D$H��ÐH��H9�t1H���H��H��?H)�H	�H��H�T$�~D$H����f�H���H�H�5H�81��H�H�5H�81�����SH���H��t[�H��H�
H�[��ff.����H���@��SH��H���H��t	H��[�H�
H��H���H��u�H�t$�H�\$��f���H���@��H��tCSH���H��t[�D��u=H�����t4H��ƒ���u'�� uH�{����t[�fD������H���H�5H��H�H�81��ff.���H���@��AWAVAUATUSH���H�1�H�����H�5H�;�H�;H�5����H�;�H�H�5�H�;�H�H�5�H�;1�H�H�5�H�;�H�H�5�H�;�H�#���H�5�H�;�H����H�5�H�;�H���H�5�H�=�L�5H�-H��I�>H�E�L�%�H�����H�5I�<$�H��H�����H�5H�;�H�;�H�d���H�5�H�;�H�I���H�5�H�;�H�.���H�5�H�;�H����H�5�H�;�H�����H�5�H�}1�H����H�5�H�}H��H�5�H�}�H�W���H�5�H�}�H�;���H�5�H�}�H�H�5�H�}1�H�H�5�H�}�H�:���H�5�H�}1�H�H�5�H�}1�H���H�5�H�}1�H�H�5�H�}1�H�H�5�H�}1�H�����H�5�H�}H��H�5�H�}�H�H�5�H�}�H�H�5�H�}1�H�H�5�H�}1�H�H�5�H�}1�H�H�5�H�}1�H�H�5�H�}1�H�H�5�H�}1�H�H�5�H�}1�H�H�5�H�}1�H�H�5�H�}1�H�H�5�H�}1�H�O��H�5�H�}H������H�5�H�}H������H�5�H�}H������H�5�H�}H������H�5�H�}H������H�5�H�}1�H�H�5�H�}�H�����H�5�H�}�H����H�5�H�}�H���H�5�H�}H��H�5�H�}H��H�5�L�-H�}�H�5L���H�}L��H�5�H�}1�H�H�5�H�-�����H�=H���H�����H�=������H�5�H�=��H�5���H�=��H�5w���H�=��H�5���H�=��H�5W���H�=�I�6H�=�H�-1�H�,���H��H�5H�E�H�}1�H����H�5�H�}1�H�#���H�5�H�}1�H�����H�5�H�}1�H�����H�5�H�}1�H�����H�5�H�}�H�����H�5�H�}�H����H�5�H�}�H�t��H�5�H�}1�H�����H�5�H�}�H�}@���p@�����������H���6@���lH�L�=L�-H�5��H�=�H�;1�H�q��H�5�H�;�H���H�5�H�;�H�H�5�H�;�H�����H�5�H�;�H�U���H�5�H�H�;�H�5�H�;�H����H�5�H�;�H�D��H�5�H�H�;�H�5�H�;1�H���H�5�H�;H�H�5�H�H�;1�H�5�H�H�;�H�5�H�H�;1�H�5�H�H�;1�H�5�H�;�����H�H�5�H�;�����H���H�5�H�;�����H���H�5�H�;�����H�\��H�5�H�;H�5����H�;1�H�U���H�5�H�;�H�ʹ��H�5�H�H�;�����H�5�H�H�;�����H�5�H�H�;�����H�5�H�H�;�����H�5�H�H�;�����H�5�H�;�����H����H�5�H�;�H����H�5�H�;�����H�r���H�5�H�H�;�H�5�H�H�;�H�5�H�H�;�����H�5�H�H�;�H�5�H�;�H�+���H�5�H�;�H����H�5�H�;�H�U���H�5�H�H�;�����H�5�H�H�;�����H�5�H�;1�H�w���H�5�H�I�<$1�H�5�H�I�<$�����H�5�I�<$�����H����H�5�H�I�<$1�H�5�I�<$H�5v����I�<$H�5�I�<$H�5�I�<$H�5�I�6H�=�H�H��H��I�6H�=�1�H�����H�5H��I��I�?H�H�5�I�?�H�����H�5�I�?�H�����H�5�I�?�H�����H�5�I�?�I�?@���j@����������H��t@����H�H�5��H�=�I�6H�=�1�H�����H�5H��I�E�I�}H�H�5�I�}�H����H�5�I�}�H����H�5�I�}�H����H�5�I�}�I�}@��tX@����������0H���V@���|H�H�5�H��1�H�=[]A\A]A^A_�H�����u�H����H��u��fDH����������H��t}H�������I�}���H����������H�������H�������L�-L�=I�}����H�L�=L�-H�8�y���H�}�/����H�}�)����H�H�8�	����H�H�8�����H�H�8���H�H�8�����H�L�=L�-H�8���I�?����L�=L�-I�?����f.�H�H�8�y����H�H�8�s����H�L�=L�-H�8���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realigncompared with non class/module`%li' is not allowed as a class variable nameuninitialized class variable %li in %li`%li' is not allowed as an instance variable nameuntrusted? is deprecated and its behavior is same as tainted?untrust is deprecated and its behavior is same as tainttrust is deprecated and its behavior is same as untaintinvalid class path encoding (non ASCII)%li does not refer to class/module% li is not a symbol or stringoptional boolean argument is obsoletedcan't inherit uninitialized classuninitialized constant %li% liinitialize_copy should take same class objectcan't convert %li to %s (%li#%s gives %li)base specified for non string valuecan't convert nil into Integer[bug] frozen object (%s) allocatedinspected result must be ASCII only if default external encoding is ASCII incompatibleinspected result must be ASCII only or use the default external encodingcan't instantiate uninitialized classcan't create instance of singleton classstring for Float contains null byteno implicit conversion to float from stringno implicit conversion to float from nilfalsetruenil ...>class or module requireduninitialized classwrong constant name % liwrong constant name %lialready initialized class01 , %li=%+li#<%li:%p>-<%li:%pno implicit conversion ofcan't convert%s %s into %s%s %li into %sIntegerto_intto_i11#<Class:#<refinement:@__defined_at__allocator undefined for %liwrong instance allocationcan't clone %scan't dup %s...Float %.*s%s out of rangeFloat()can't convert nil into Floatto_fFloatcan't convert %s into Floatto_sStringto_aArraycan't convert %s into Hashinitialize==equal?!!=singleton_method_addedsingleton_method_removedsingleton_method_undefinedKernelinheritedincludedextendedprependedmethod_addedmethod_removedmethod_undefinednil?====~!~eql?hash<=>classsingleton_classclonedupitselfinitialize_copyinitialize_dupinitialize_clonetainttainted?untaintuntrustuntrusted?trustfreezefrozen?inspectmethodssingleton_methodsprotected_methodsprivate_methodspublic_methodsinstance_variablesinstance_variable_getinstance_variable_setinstance_variable_defined?remove_instance_variableinstance_of?kind_of?is_a?tapsprintfformatHashNilClassto_h&|^newNIL<<=>=included_modulesinclude?nameancestorsattrattr_readerattr_writerattr_accessorinstance_methodspublic_instance_methodsprotected_instance_methodsprivate_instance_methodsconstantsconst_getconst_setconst_defined?remove_constconst_missingclass_variablesremove_class_variableclass_variable_getclass_variable_setclass_variable_defined?public_constantprivate_constantsingleton_class?allocatesuperclassextend_objectappend_featuresprepend_featuresDataTrueClassTRUEFalseClassFALSEto_int!to_ary1to_strAto_symQto_hashato_procqto_io�to_a�to_s�to_i�invalid attribute name `%li'�C��GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0DX
l
���
���
�
 >Mc8AMV
EIX/Hcp!E�[�/Hc�JHX
PT����0�dE�K�O _
DAEVDA$E�L@	Th|�
�4��E�D�D0i
DAE[
GAA(��E�D�D0�
AAA>H W
A]<4P�E�D�D0f
FAF^
AAA4��E�D�D0i
DAE[
GAA(��E�D�G j
DAA�	6(E�UD7X:lHp�jkV_I��s�Go��]X�E�UJE�|
A0E�UdL�F�E�B �B(�A0�A8�Dp�
8A0A(B BBBG�
8F0A(B BBBI�3E�T
GK�3E�T
GKL��B�E�A �A(�G0D
(A ABBFP
(A ABBE<D�J�E�M �D(�G0G(F ABBG����<��J�E�M �D(�G0J(F ABBD����<��J�E�M �D(�G0G(F ABBG����$EE�N�G eDA$,EE�N�G eDA$TAE�K�J WJA(|�b�M�D �KFB���Y~ S�E�L(mE�A�G ^
DAH00aF�A�A �D0d
 DABIHd+F�E�B �B(�A0�A8�Dp�
8D0A(B BBBA<�oE�D�D �[CBC���P ���p��� �E�{
Hq
G	((	?E�D�G �
AAC T	�E�`
Kd
Lx	(�	pE�A�G R
DAD(�	�E�A�G H
DAF�	-Ha�	+
�,$
2F�A�D ��
ABG$T
8E�G�D eAAH|
ZB�J�B �I(�D0�D8�GPf
8A0A(B BBBJ,�
LB�E�D �D(�D0T8G@8�
�B�A�A �W
ABBD
AEA<4�A�G �
IIk
ADo
AH^
KOt�M g\ ^
J8��F�A�D �F
ABDA
ABD4��A�A�G 
AAFD
GAE(�E�J�F k
DAK84_F�A�A ��
ABBI
AEI$p^E�D�D KDA�X�%EAK,��F�A�A �Y
ABD,�%F�A�G ��
ABE((
zE�A�G G
DAA(T
-F�D�F �YAB�
	�
HE�P
Kp�
�T�E�I �G(�J0F
(A ABBA`����x0����X����@0����P����P0�����$�Y�E�F �G(�J0j
(A ABBKx����x0����P����p0����P����P0����P����P0�����^E�X���L4F�B�B �B(�A0�A8�G�k
8A0A(B BBBF(P�E�C
D��H�
F,|THW
Ao
I~
JP
L���e�b�_� �to�b
�OFJ�0yH R
Fx
H^
Bx
HH
A84E�O
DRX lWE�G O
AD�$��K�O
Fm�K��H��F�B�B �B(�A0�A8�D@�
8J0A(B BBBE	")?#Yt$��%��&�3M3e3�H�@�H�Z�P
�Zj`
%j=Sp\t���������
���������.�8�O�d�
l��������
�
�
�NN.�FPAQ�q��������//&/AzZz~h�h���p���&�d>�Xp�)� 	�)�E�0�E�ePe9�Rp^�v���
��������P(��<P[�xP����>�>�>�K	@	K0	�M	P�]	��	��	���	��	R�	���	Po�	R%
iI
`	`
i�
~�
p�
~�
��'�E�d	�	�Z	� 	:�Z	��	$`	H=�	W
o�	jz
��
��
��
��
G��

(
2
N
}h
}�
��
��
��
��
6�X�m��3�3�3�s�@3s!H>��NHp��P��@���f��f7�Wp�j��E�E�E���PE�$�A�AQ�lw�w������������.K6f t6���@m���
�a>K\ +mK������������5/N/l �0�� �< �< �� � ?!9?!Om!cm!��!��!�<"�<"�r#r#4�#W�#s%.�#Z����%�l%� %L�l%�%/p%�=�%b�'��%���'�4(��'��4(�))5�)�1)�L�)f�*~�*��+��*_�	��+�N,%N,B�,]�,�,��,��-��-��.�.%Z/=Z/b�/��/��/��/��/�/.�1K�1pk3�k3��3��3��3�3&�3C�3]�3u�3�48�48��9��9�4;4;/L;G@;RL;m<�<��<��<�	>�	>D>(D>C\>\P>h\>��>��>��>��>��>�U?�U?l?/`?9l?T�O#$%&"mrw|� �P��������/���0���]�C�h��������v�(������ � � P � �# �) �/ �5 �; �A G M �S Y 
_ e �k xq  w } ,� .� � =� �� �� Z� t� �� �� �� �� ��  � �� �� �� �� x� H� �� !!
!!-!8!;%!B+!D1!G7!^=!wC!�I!�O!�U!�[!�a!�g!�m!�s!�y!�!��!��!��!�!�!	�!�!�!%�!)�!0�!@�!O�!`�!f�!o�!w�!�!��!�"�	"�"�"�"�%"�,"�3"�:"A"H"1O"LV"e]"rd"{k"�r"�y"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"##"#:#U!#n(#x/#�6#�=#�D#�K#�R#�Y#�`#�g#n#u#*|#;�#L�#U�#`�#n�#~�#��#��#��#��#��#�#�#�#$

 !'()$,$ 7$>@$V$a$�/r$�!�$0J�$�$�$�$���$�$�$�$�$%%,%:%F%W%f%v%�%�%�%�%�%�%�%&&-&9&I&T&d&w&�&�6�&��&�&�7�& 
��&��& ]�&'�'�J%'/'�<'P'['j'{'�'�'�'�'�'�'�'�'( (�+(8(G(X(h(}(�(�(�(�(�(�(�(�(�(���(�Y
))7)W)i)|)�)�)�)�)�)** *,*�;*F*�S*]*�k*v*��*�?�*�*�*�*  �*@ p�*� ��*�*@!-�*p!+	+�!�+@"2'+�#8=+D+U+_+k+z+�+�+�+@(��+�+�+�+�+,,&,�)�1,B,_,v,�,�,�,�,�,�,�,�+^-P,X-�,%(-�,�5-G-�-%T-x-�-�.z�-`/-�-�-�/	�-�/H�-�-�/�.�1�$.p3^8.�3B.�3R.�3].44l.w.�.�.�.�.�.@8��.�.�.�./�9T//4/P;�@/L/<t^/�<yi/>4s/`>W|/�/�/�>��/�/p?��/�/�/0"030�>0P0�Z0�e0t0�0�0�0�0�0
1141D1X1h11�1�1�1�1�1�12!2E2g2x2�2�2�2�2�2�2�.annobin_object.c.annobin_object.c_end.annobin_object.c.hot.annobin_object.c_end.hot.annobin_object.c.unlikely.annobin_object.c_end.unlikely.annobin_object.c.startup.annobin_object.c_end.startup.annobin_object.c.exit.annobin_object.c_end.exit.annobin_rb_obj_equal.start.annobin_rb_obj_equal.end.annobin_rb_obj_not.start.annobin_rb_obj_not.end.annobin_rb_obj_itself.start.annobin_rb_obj_itself.endrb_obj_itself.annobin_rb_obj_dummy.start.annobin_rb_obj_dummy.endrb_obj_dummy.annobin_nil_to_i.start.annobin_nil_to_i.endnil_to_i.annobin_nil_to_f.start.annobin_nil_to_f.endnil_to_f.annobin_true_and.start.annobin_true_and.endtrue_and.annobin_true_or.start.annobin_true_or.endtrue_or.annobin_true_xor.start.annobin_true_xor.endtrue_xor.annobin_false_and.start.annobin_false_and.endfalse_and.annobin_rb_true.start.annobin_rb_true.endrb_true.annobin_rb_false.start.annobin_rb_false.endrb_false.annobin_rb_obj_match.start.annobin_rb_obj_match.endrb_obj_match.annobin_rb_equal.start.annobin_rb_equal.end.annobin_rb_obj_cmp.start.annobin_rb_obj_cmp.endrb_obj_cmp.annobin_rb_obj_not_equal.start.annobin_rb_obj_not_equal.end.annobin_rb_obj_init_dup_clone.start.annobin_rb_obj_init_dup_clone.end.annobin_rb_obj_not_match.start.annobin_rb_obj_not_match.endrb_obj_not_match.annobin_rb_obj_hash.start.annobin_rb_obj_hash.end.annobin_rb_class_inherited_p.start.annobin_rb_class_inherited_p.end.annobin_rb_mod_lt.start.annobin_rb_mod_lt.endrb_mod_lt.annobin_rb_mod_initialize_clone.start.annobin_rb_mod_initialize_clone.endrb_mod_initialize_clone.annobin_rb_obj_tap.start.annobin_rb_obj_tap.end.annobin_nil_to_h.start.annobin_nil_to_h.endnil_to_h.annobin_false_to_s.start.annobin_false_to_s.endfalse_to_s.annobin_true_to_s.start.annobin_true_to_s.endtrue_to_s.annobin_nil_inspect.start.annobin_nil_inspect.endnil_inspect.annobin_nil_to_s.start.annobin_nil_to_s.endnil_to_s.annobin_rb_class_s_alloc.start.annobin_rb_class_s_alloc.endrb_class_s_alloc.annobin_rb_mod_cvar_defined.start.annobin_rb_mod_cvar_defined.endrb_mod_cvar_defined.annobin_rb_mod_cvar_get.start.annobin_rb_mod_cvar_get.endrb_mod_cvar_get.annobin_rb_mod_initialize.start.annobin_rb_mod_initialize.endrb_mod_initialize.annobin_nil_to_a.start.annobin_nil_to_a.endnil_to_a.annobin_rb_obj_ivar_get.start.annobin_rb_obj_ivar_get.endrb_obj_ivar_get.annobin_rb_obj_ivar_defined.start.annobin_rb_obj_ivar_defined.endrb_obj_ivar_defined.annobin_inspect_obj.start.annobin_inspect_obj.endinspect_objinspect_i.annobin_rb_obj_singleton_class.start.annobin_rb_obj_singleton_class.endrb_obj_singleton_class.annobin_rb_class_allocate_instance.start.annobin_rb_class_allocate_instance.endrb_class_allocate_instance.annobin_rb_obj_tainted.start.annobin_rb_obj_tainted.end.annobin_rb_obj_untrusted.start.annobin_rb_obj_untrusted.end.annobin_rb_obj_frozen_p.start.annobin_rb_obj_frozen_p.end.annobin_rb_mod_singleton_p.start.annobin_rb_mod_singleton_p.endrb_mod_singleton_p.annobin_class_or_module_required.start.annobin_class_or_module_required.endclass_or_module_required.annobin_rb_mod_cmp.start.annobin_rb_mod_cmp.endrb_mod_cmp.annobin_rb_class_superclass.start.annobin_rb_class_superclass.end.annobin_rb_mod_ge.start.annobin_rb_mod_ge.endrb_mod_ge.annobin_rb_mod_gt.start.annobin_rb_mod_gt.endrb_mod_gt.annobin_rb_obj_taint.start.annobin_rb_obj_taint.end.annobin_rb_obj_untrust.start.annobin_rb_obj_untrust.end.annobin_rb_obj_untaint.start.annobin_rb_obj_untaint.end.annobin_rb_obj_trust.start.annobin_rb_obj_trust.end.annobin_rb_mod_const_defined.start.annobin_rb_mod_const_defined.endrb_mod_const_defined.annobin_rb_is_attr_name.start.annobin_rb_is_attr_name.endrb_is_attr_name.annobin_rb_is_attr_sym.start.annobin_rb_is_attr_sym.endrb_is_attr_sym.annobin_check_setter_id.start.annobin_check_setter_id.endcheck_setter_id.annobin_rb_mod_attr_reader.start.annobin_rb_mod_attr_reader.endrb_mod_attr_readerinvalid_attribute_name.annobin_rb_mod_attr_accessor.start.annobin_rb_mod_attr_accessor.endrb_mod_attr_accessor.annobin_rb_mod_attr_writer.start.annobin_rb_mod_attr_writer.endrb_mod_attr_writer.annobin_rb_mod_cvar_set.start.annobin_rb_mod_cvar_set.endrb_mod_cvar_set.annobin_rb_mod_const_set.start.annobin_rb_mod_const_set.endrb_mod_const_set.annobin_rb_obj_ivar_set.start.annobin_rb_obj_ivar_set.endrb_obj_ivar_set.annobin_rb_mod_attr.start.annobin_rb_mod_attr.end.annobin_false_xor.start.annobin_false_xor.endfalse_xor.annobin_false_or.start.annobin_false_or.endfalse_or.annobin_rb_obj_freeze.start.annobin_rb_obj_freeze.end.annobin_rb_mod_freeze.start.annobin_rb_mod_freeze.endrb_mod_freeze.annobin_rb_module_s_alloc.start.annobin_rb_module_s_alloc.endrb_module_s_alloc.annobin_rb_class_initialize.start.annobin_rb_class_initialize.endrb_class_initialize.annobin_rb_mod_const_get.start.annobin_rb_mod_const_get.endrb_mod_const_get.annobin_inspect_i.start.annobin_inspect_i.end.annobin_rb_obj_is_kind_of.start.annobin_rb_obj_is_kind_of.end.annobin_rb_mod_eqq.start.annobin_rb_mod_eqq.endrb_mod_eqq.annobin_rb_any_to_s.start.annobin_rb_any_to_s.end.annobin_rb_obj_inspect.start.annobin_rb_obj_inspect.endrb_obj_inspect.annobin_rb_obj_hide.start.annobin_rb_obj_hide.end.annobin_rb_obj_reveal.start.annobin_rb_obj_reveal.end.annobin_rb_obj_setup.start.annobin_rb_obj_setup.end.annobin_rb_eql.start.annobin_rb_eql.end.annobin_rb_class_real.start.annobin_rb_class_real.end.annobin_rb_obj_class.start.annobin_rb_obj_class.end.annobin_rb_obj_init_copy.start.annobin_rb_obj_init_copy.end.annobin_rb_obj_is_instance_of.start.annobin_rb_obj_is_instance_of.end.annobin_convert_type.start.annobin_convert_type.endconv_method_names.annobin_conversion_mismatch.start.annobin_conversion_mismatch.endconversion_mismatch.annobin_rb_to_integer.start.annobin_rb_to_integer.endrb_to_integer.annobin_rb_convert_to_integer.start.annobin_rb_convert_to_integer.endrb_convert_to_integer.annobin_rb_f_integer.start.annobin_rb_f_integer.endrb_f_integer.annobin_rb_obj_copy_ivar.start.annobin_rb_obj_copy_ivar.end.annobin_init_copy.start.annobin_init_copy.end.annobin_rb_inspect.start.annobin_rb_inspect.end.annobin_rb_mod_to_s.start.annobin_rb_mod_to_s.endrb_mod_to_srb_intern_id_cache.13850.annobin_rb_class_search_ancestor.start.annobin_rb_class_search_ancestor.end.annobin_rb_obj_infect.start.annobin_rb_obj_infect.end.annobin_rb_undefined_alloc.start.annobin_rb_undefined_alloc.end.annobin_rb_obj_alloc.start.annobin_rb_obj_alloc.end.annobin_rb_obj_clone.start.annobin_rb_obj_clone.end.annobin_rb_obj_dup.start.annobin_rb_obj_dup.end.annobin_rb_class_new_instance.start.annobin_rb_class_new_instance.end.annobin_rb_class_get_superclass.start.annobin_rb_class_get_superclass.end.annobin_rb_check_attr_id.start.annobin_rb_check_attr_id.end.annobin_rb_convert_type.start.annobin_rb_convert_type.end.annobin_rb_check_convert_type.start.annobin_rb_check_convert_type.end.annobin_rb_check_to_integer.start.annobin_rb_check_to_integer.end.annobin_rb_to_int.start.annobin_rb_to_int.end.annobin_rb_check_to_int.start.annobin_rb_check_to_int.end.annobin_rb_Integer.start.annobin_rb_Integer.end.annobin_rb_cstr_to_dbl.start.annobin_rb_cstr_to_dbl.end.annobin_rb_str_to_dbl.start.annobin_rb_str_to_dbl.end.annobin_rb_Float.start.annobin_rb_Float.end.annobin_rb_f_float.start.annobin_rb_f_float.endrb_f_float.annobin_rb_to_float.start.annobin_rb_to_float.end.annobin_rb_check_to_float.start.annobin_rb_check_to_float.end.annobin_rb_num2dbl.start.annobin_rb_num2dbl.end.annobin_rb_String.start.annobin_rb_String.end.annobin_rb_f_string.start.annobin_rb_f_string.endrb_f_string.annobin_rb_Array.start.annobin_rb_Array.end.annobin_rb_f_array.start.annobin_rb_f_array.endrb_f_array.annobin_rb_Hash.start.annobin_rb_Hash.end.annobin_rb_f_hash.start.annobin_rb_f_hash.endrb_f_hash.annobin_Init_Object.start.annobin_Init_Object.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC13.LC17.LC16.LC14.LC15.LC18.LC19.LC21.LC22.LC20.LC23.LC25.LC26.LC24.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC45.LC44.LC47.LC48.LC49.LC46.LC50.LC52.LC51.LC53.LC54.LC55.LC56.LC59.LC57.LC60.LC61.LC63.LC64.LC62.LC65.LC67.LC66.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.LC120.LC121.LC122.LC123.LC124.LC125.LC126.LC127.LC128.LC129.LC130.LC131.LC132.LC133.LC134.LC135.LC136.LC137.LC138.LC139.LC140.LC141.LC142.LC143.LC144.LC145.LC146.LC147.LC148.LC149.LC150.LC151.LC152.LC153.LC154.LC155.LC156.LC157.LC158.LC159.LC160.LC161.LC162.LC163.LC164.LC165.LC166.LC167.LC168.LC169.LC170.LC171.LC172.LC173.LC174.LC175.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouprb_obj_equalrb_obj_notrb_equal_GLOBAL_OFFSET_TABLE_rb_funcallrb_obj_not_equalrb_obj_init_dup_clonerb_obj_hashrb_obj_idrb_objid_hashrb_num2longrb_class_inherited_prb_eTypeErrorrb_raiserb_class_namerb_obj_taprb_yieldrb_hash_newrb_usascii_str_new_staticrb_class_bootrb_check_idrb_is_class_namerb_is_class_idrb_cvar_definedrb_str_quote_unprintablerb_name_error_strrb_id_quote_unprintablerb_name_errorrb_cvar_getrb_block_given_prb_mod_module_execrb_ary_new_caparb_is_instance_namerb_is_instance_idrb_ivar_getrb_ivar_definedrb_str_catrb_ivar_foreachrb_singleton_classrb_newobj_ofrb_obj_taintedrb_obj_untrustedrb_warningrb_obj_frozen_prb_class_superclassrb_cBasicObjectrb_obj_taintrb_error_frozen_objectrb_obj_untrustrb_obj_untaintrb_securerb_obj_trustrb_string_value_ptrrb_enc_getrb_enc_dummy_prb_check_id_cstrrb_is_const_idrb_const_definedrb_const_getrb_is_const_symrb_str_subseqrb_freeze_singleton_classrb_isupperrb_is_const_namerb_const_defined_atrb_const_get_atrb_cObjectrb_eArgErrorrb_error_arityrb_is_local_namerb_is_local_symrb_check_string_typerb_intern_strrb_sym2idrb_sym2strrb_attrrb_is_class_symrb_cvar_setrb_const_setrb_is_instance_symrb_ivar_setrb_mod_attrrb_obj_freezerb_module_newrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_make_metaclassrb_class_inheritedrb_class_remove_from_super_subclassesrb_class_subclass_addrb_scan_argsrb_check_inheritablerb_method_basic_definition_prb_str_internrb_const_missingrb_id2strrb_str_catfrb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolrb_obj_is_kind_ofrb_any_to_srb_sprintfrb_ivar_countrb_exec_recursiverb_obj_hiderb_obj_revealrb_obj_setuprb_safe_levelrb_eqlrb_class_realrb_obj_classrb_obj_init_copyrb_obj_is_instance_ofstrcmprb_check_funcallrb_internrb_cIntegerrb_str_to_inumrb_dbl2bigrb_num2intrb_fix2intrb_obj_copy_ivarruby_xmalloc2memcpyruby_xfreerb_copy_wb_protected_attributerb_copy_generic_ivarrb_gc_copy_finalizerrb_obj_classnamerb_inspectrb_obj_as_stringrb_default_external_encodingrb_enc_str_asciionly_prb_eEncCompatErrorrb_refinement_module_get_refined_classrb_str_concatrb_attr_getrb_str_duprb_intern2rb_str_appendrb_class_search_ancestorrb_obj_infectrb_undefined_allocrb_obj_allocrb_get_alloc_funcrb_obj_clonerb_singleton_class_clone_and_attachrb_singleton_class_attachedrb_obj_duprb_class_new_instancerb_obj_call_initrb_class_get_superclassrb_check_attr_idrb_is_local_idrb_convert_typerb_check_convert_typerb_check_to_integerrb_to_intrb_check_to_intrb_Integerrb_cstr_to_dblrb_isspaceruby_strtod__errno_locationrb_invalid_strrb_isdigit__stack_chk_failrb_str_to_dblrb_string_valuememchrrb_free_tmp_bufferrb_alloc_tmp_bufferrb_Floatrb_big2dblrb_float_new_in_heaprb_to_floatrb_cNumericrb_check_to_floatrb_num2dblrb_Stringrb_Arrayrb_check_array_typerb_ary_new_from_valuesrb_Hashrb_check_hash_typeInit_ObjectInit_class_hierarchyrb_define_private_methodrb_define_alloc_funcrb_define_methodrb_define_modulerb_mKernelrb_include_modulerb_cClassrb_cModulerb_obj_methodsrb_obj_singleton_methodsrb_obj_protected_methodsrb_obj_private_methodsrb_obj_public_methodsrb_obj_instance_variablesrb_obj_remove_instance_variablerb_f_sprintfrb_define_global_functionrb_define_classrb_undef_alloc_funcrb_undef_methodrb_define_global_constrb_mod_init_copyrb_define_aliasrb_mod_included_modulesrb_mod_include_prb_mod_namerb_mod_ancestorsrb_class_instance_methodsrb_class_public_instance_methodsrb_class_protected_instance_methodsrb_class_private_instance_methodsrb_mod_constantsrb_mod_remove_constrb_mod_const_missingrb_mod_class_variablesrb_mod_remove_cvarrb_mod_public_constantrb_mod_private_constantrb_cData-��������^����������������������������������9��������H��������d��������l��������S*!��������ZK��������d"������������������#��������	%��������<L��������\M��������|N���������)���������*���������+��������,��������-��������&O��������0.��������8/��������?O��������L0��������h)��������w*���������#���������P���������.���������-���������O���������.���������+���������1���������/���������O���������0��������2��������03��������h)��������w5���������6���������7���������-���������Q���������.���������/���������Q���������0��������)��������5��������46��������C8��������Z-��������fQ��������p.��������x/��������Q���������0���������R���������9���������S���������9��������:���������T���������?���������	*!���������	U���������	"���������	 ��������k
*B���������
*!���������
V���������
"���������
*!���������
K���������
"��������yD���������W���������?���������G���������D���������X��������?��������nI��������}J���������K��������.
L��������T
M��������v
N���������
O���������
-���������
Y���������
*!���������
"���������
P��������)��������FL��������gQ���������R���������S���������T���������-���������Z���������.���������U���������V��������rN���������[���������.���������*W���������U���������*X���������\���������"���������Y���������/���������Z���������0��������	Z��������$T��������I[��������dP���������\���������_��������-��������.��������-��������).��������0*!��������:]��������D"��������g�<�`����������<D`����������<�`��������O��������**��������$*a��������7b��������^Z��������m*T��������t*P���������c���������Q���������*5���������*d��������^��������'?��������9�<i`��������R��������)#��������Nh��������i���������j���������*B���������*W��������k��������l��������4m��������?n��������`_��������go��������qp���������*!���������`���������"���������i���������j���������*!��������a��������
"��������vI���������J���������K��������>L���������Q���������S���������T���������q��������r��������s��������ZP��������l)���������O���������L���������M���������O��������V��������C[��������J.��������RR��������ds��������}*W���������V���������-���������Y���������*!���������"���������-���������Z���������.���������Q���������b���������.��������*X��������\��������"��������$/��������+Z��������80��������GY���������6���������c���������9���������t���������d���������u��������'*v��������;*w��������he��������p9���������*x���������*y���������*z���������*{��������_*v���������*w���������*x���������*y���������*z���������*{��������:#��������Df��������N~���������*v���������*w���������*x���������*y���������*z���������*{��������9��������r#��������|g���������~���������*v���������*w���������*{���������*y�������� *z�������� *x��������� i��������� j��������� ���������!i��������9!j��������X!���������!*v���������!*w��������"*x��������"*y��������#"*z��������3"*{���������"����������"���������#*!��������!#h��������+#"��������n#D���������#����������#��$���������>$���������s$i��������z$j���������$L���������$*!���������$k���������$"���������$����������$����������$l���������$*!���������$"��������%M��������%N��������4%���������?%���������Q%*!��������^%m��������h%"���������%n���������%*����������%|���������%n��������6&���������l&\���������&*X���������&o���������&"���������&p���������&q���������&*!��������'r��������'"��������5's��������<'n��������\'t��������|'p���������'���������(u��������(o��������)(����������(����������(����������(���������`)���������k)���������v)����������)����������)v���������)*!���������)"���������)���������)���������*���������*���������7*K��������C*J��������P*���������[**���������b*w��������l*"��������s**���������z*x���������*"���������*����������*y���������*'���������*����������*����������*z��������+9��������+��������+���������$+���������/+���������>+S��������C+9��������T+#��������p+{��������u+���������+���������+|���������+'���������+7���������+}���������+����������+����������+����������,}���������,*!���������,"���������,*B��������-���������)-���������4-���������]-*!��������d-~��������n-"��������u-*!��������|-���������-"���������-*!���������-����������-"���������-����������-����������-���������.���������<.��������_.i���������.����������.j���������.����������.����������.*!���������."���������.���������/���������,/��������;/���������B/���������L/*!��������V/"��������q/����������/����������/����������/M���������//���������/�<�/.���������3n���������3*����������3|���������3s���������3s��������I4���������p4���������z4���������05����������5����������5����������5����������5?���������5����������5���������*6���������<6����������6����������6���������U7���������a7���������f7?��������}7����������7����������7����������7?���������7����������7����������7���������8���������!8*X��������+8"��������08���������t8����������8���������49���������F9����������9����������9����������9*X���������9����������9"���������9���������%:�D[:���������b:���������y:����������:���������;*!��������&;���������0;"��������p;*���������|;|���������;����������;����������;N���������;M���������;L���������;*!���������;����������;"���������;���������:<*���������F<|��������U<���������\<���������=����������=*!���������=����������="���������=*!���������=���������>"��������>\��������.>���������5>���������m>����������>����������>����������>����������>����������>���������6?���������=?���������G?*!��������Q?"���������?����������?*B���������?����������?����������?����������?���������?����������?����������?���������?����������?����������?���������?����������?���������@��������@���������@���������0@���������5@���������K@���������P@���������f@���������k@���������r@���������w@���������~@*W���������@*����������@����������@*����������@����������@����������@*����������@����������@����������@����������@���������
A���������A���������%A���������*A���������@A���������EA���������[A���������`A���������tA���������yA����������A*���������A����������A����������A����������A����������A����������A����������A���������A����������A����������A���������A���������B���������B���������B���������+B*���������2B���������7B���������KB���������PB���������]B*���������dB���������iB���������vB*���������}B����������B����������B����������B����������B*����������B����������B����������B���������B����������B����������B���������B����������B����������B*C��������C���������C���������C*=��������C���������!C���������.C*F��������5C���������:C���������GC*E��������NC���������SC���������`C*>��������gC���������lC���������yC*H���������C����������C����������C*g���������C����������C����������C*@���������C����������C����������C*}���������C����������C����������C����������C����������C*���������D���������D���������D*���������D���������!D���������,D*���������8D���������=D���������HD*���������TD���������YD���������dD*���������pD���������uD����������D*����������D����������D����������D����������D����������D����������D����������D����������D����������D*����������D����������D���������	E*���������E���������E���������!E*|��������1E���������9E���������LE���������QE���������^E$��������eE���������jE���������qE*���������}E����������E����������E����������E����������En���������E����������E����������E����������E����������E����������E����������E���������F���������F���������F��������� F���������'F*x��������:Ft��������CF���������WF���������\F���������pF���������uF����������F����������F����������F����������F����������F����������F����������F����������F����������F����������F���������G���������G���������(G���������-G���������6G���������{G*z���������G*v���������G����������G����������G����������G����������G����������G����������G����������G����������G���������G����������G���������H���������H���������H���������#H���������*H* ��������9H���������>H���������THS��������YH���������oH���������tH���������{H*����������H����������H����������H����������H����������H����������H����������H����������H*����������H����������H����������H*����������H����������H����������H*���������I���������I���������I*���������I��������� I���������/If��������6I���������;I���������QI���������VI���������lI���������qI����������I����������I����������I����������I����������I����������I����������I����������I*����������I����������I����������I*����������I���������J���������J*���������J���������J���������&J*���������5J���������:J���������AJ*���������PJ���������UJ���������kJ���������pJ����������J����������J����������J����������J����������J*����������J����������J����������J*����������J����������J����������J*����������J����������J����������J*���������
K���������K���������(K���������-K���������CK���������HK���������^K���������cK���������jK*���������yK���������~K����������K*����������K����������K����������K����������K����������K*����������K����������K����������K*����������K����������K����������K���������L���������	L*A��������L���������L���������+L���������6L���������;L���������FL���������KL���������VL���������[L���������eL���������jL���������qL*���������|L����������L����������L����������L����������L����������L����������L����������L����������L����������L����������L����������L���������M���������
M���������M���������UM���������ZM���������fM���������kM���������uM���������zM����������M����������M����������M����������M����������M����������M����������M����������M����������M����������M���������N���������
N���������KN���������PN���������]N����������N*v���������N*z���������N*w���������N*z��������O*v��������3O*w��������CO*w��������SO*y��������cO*y��������sO*y��������zO*z���������O*v���������O*z���������O*v���������O*{���������O*{���������O*{���������O*z���������O*v��������z ��������%&��������A'��������a'���������'���������'���������(��������G4��������e;��������z<���������=���������
 ���������C��������F���������]���������^���������e��������2g���������|�������������������}���������!����������!����������&����������&���������`+����������3���������p:����������:���������H;����������;���������g<���������@>���������X>����������>���������?&��������h?���������lN��������� J��$,PX3��3�3�H�3�HHZDHLZpZxj�Z�j�j�j08�dl�������������$�,�P�X���������������D�L�p�x
���
�
�N
N0N8�dNl�������������$�,�P�X/���/�/�z�/�z	z	hD	zL	hp	hx	��	h�	��	��	�
�
�0
�8
d
�l
�
�
)�
�
)�
)�
E$),EPEXe�E�e�e���e����D�L�p�x��������P
�
P0
P8
�d
Pl
��
��
>�
��
>�
>�
K$>,KPKX��K�����������RD�LRpRxi�R�i�i�~i~0~8�d~l������������	$�,	P	XZ	�	�Z	�Z	��	�Z	��	�	
D�	L
p
x�
�
��
��
��
�
�
0�
8d�
l��}��}�}��$},�P�X������������DL�p�x3���3�3�s3s0s8HdslH�H���H�����f$�,fPfX��f�����E���EE�DEL�p�x��������w�w0w8�dwl������������$�,PX6��6�6���6���D�LpxK��K�K��K�0�8�d�l������������/$�,/P/X �/� � �< � �< < � D< L� p� x?!�� �?!�?!�m!?!m!0m!8�!dm!l�!��!�<"��!�<"�<"�r#$ <", r#P r#X �#� r#� �#� �#� %� �#� %!%!l%D!%L!l%p!l%x!�%�!l%�!�%�!�%�!�'"�%"�'0"�'8"4(d"�'l"4(�"4(�")�"4(�")�")�"�)$#),#�)P#�)X#�*�#�)�#�*�#�*�#�+�#�*�#�+$�+$N,D$�+L$N,p$N,x$�,�$N,�$�,�$�,�$�,%�,%�,0%�,8%�-d%�,l%�-�%�-�%�.�%�-�%�.�%�.�%Z/$&�.,&Z/P&Z/X&�/�&Z/�&�/�&�/�&�/�&�/�&�/'�/'�/D'�/L'�/p'�/x'�1�'�/�'�1�'�1�'k3(�1(k30(k38(�3d(k3l(�3�(�3�(�3�(�3�(�3�(�3�(�3$)�3,)�3P)�3X)�3�)�3�)�3�)�3�)48�)�3�)48*48*�9D*48L*�9p*�9x*4;�*�9�*4;�*4;�*L;+4;+L;0+L;8+<d+L;l+<�+<�+�<�+<�+�<�+�<�+	>$,�<,,	>P,	>X,D>�,	>�,D>�,D>�,\>�,D>�,\>-\>-�>D-\>L-�>p-�>x-�>�-�>�-�>�-�>�-U?.�>.U?0.U?8.l?d.U?l.l?�.l?�.�O�.l?�.�O F G H I�&~&d&h&l&p&�&x& |&$�&(�&,�&0�&4�&8�&<�&@�&D�&H8:L�:P`:Td:Xh:\l:`�:dt:hx:l|:p�:t�:x�:|P;��:��:��:�$; 4 H@\Pp`�p������������$<P\�t���0���p��(D X0lP�p�������P @@TP�����`p�,�H�\ 	p`	��	� 
��
�� ���4�P��@��HP���p0PX���������� @4�h �P��	�,	�X	0|	  �	@ �	� �	@!
p!
�!(
@"X
�#�
�#�
 %�
p%8�%x�'�@(�)�)8�*t�+�P,��,��,��-,
�.X
`/�
�/�
�/�
�/(�1�p3��3��3��34T@8��9�@;�P;�<�<<>\P>p`>��>��>�`?�p?.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.rela.rodata.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@+�T+�l+��+��+�'��O"@��T+-�P3�P=�P�.8@`t0-+
S�b��]@��0+
|h��h���@��0+�<��<���@�0+������@ �0+2��2���.@�^ )@P�`+6��C0��.�ޓ�ޓ|ޓSޓ'ޓLޓZޓmޓޓ�ޓ�� ��(�@��@+)(��G,	��3��pack.o/         1690381920  1000  135   100644  46456     `
ELF>8�@@-,

 "#$%UH��SH��H��H�5��uH�����t
�����t"H�5H��H��H��[]�f.�H��H��H��[]�ff.�@AWH��AVAUATUSH��8L�6H�|$dH�%(H��$(1�A�� ��I��H�^A��I�H�����E1�1�I9��H�D$ L�=I��H�D$�kf.��x�@��v<v_<=t[<
���D �+I��H��f�I9�~H�B�D =�
E1��D 
H��H���PH��I9�tk�H�r<~v��D =�H�zI��H��L�����A��D4 ���A��D< �DH�t$H�|$H��H�L$�1�H�L$I9�u�M��~H�B�D =H���D 
H��HH��$(dH3%(uzH��8[]A\A]A^A_�H�� t2H��	t,�D E1��+H������f�H�|$H�t$ ����D =��D4 H�r�H����H�^L�v�S����fDSH����u H�����tH��ʃ����H��s[Ð��u�H�����t�H��փ���t��H	�H�[��AWAVAUATUSH��H�$H��(H�<$H��I��D�D$dH�%(H��$1���u���D$=L�5E1�L�l$�I�����K�T=H��L)�H�����3I��I��H��H���������0��A��B��C����@����<@��	�Hc�A�46@�r��s�����?@��@��	�H�A��B�A�6�B�I���v���H��L)�H���OI����I��tq�D$��u]H�<$L��L���I���7H��$dH3%(�H��([]A\A]A^A_ÐH�<$L��L��E1�����B�D<
I�����L$���B�L<����0A���A�B�D<I�GB�T<I���L�D$���P������������0��A�B�T<�S�������<��A�	��L$H�B�T<A�B�D<I�GI���L�D$������D����B L�5�D$`A��D$��H�<$L��L��E1������H�=1��D��AWAVAUATUSH��xH�t$PH�|$X�H�|$X�D$4�H�|$P�H�T$XH��� ��H��L�z��H�T$PM�,H��� ��H�JH��H�L$`��D�T$4H�H�D$ H�D$E��u�H�D$ �L�t$`L9t$��I�FH�D$`A�>���L�t$`��u����D$E1��D$��#�E�&D��A��<tP��A��>tDA��_���t$H�=�H����I��A�L�t$`L�t$`E�&D��A��<u��t$H�=D�D$(�D�D$(H���JD�L$E����I�FH�D$`A��D$�DA��!�s���L9t$�@��*��I��M��A�L�t$`M)��C�<S��H���Hc�H�>��DE1����D$��t	1�>@��L��L)�H�H��L9���H�H�H�L$E����D�t$4L��H)�E��H�L$8@��H����!�@�|$H������L��L�|$(Lc��H�l$D�|$4�������E��D�A���DH��L��H�E�H��~6H��1�E��L��H���E��u�H�|$ H��L��H�E�H���H�t$�L�|$(H��HH�I��I��M��M�|$�����H�D$ H��� ��H����H�t$8H�|$ H�t0���L�t$`L9t$�f���H�D$ H��x[]A\A]A^A_�f�E1������fDE1����n���E��u�1��A��R���f.��C�E1�A�<S����H�D$PH�PH� tH�P��H�=1�����H�T$L9������A�>
�����I�F�f�H���x�
�����I��H�D$`H9�u��u���@��D�D$E1����@D�D$A�ą�A���l����H�|$`H�t$`�
�I���I��H��xE�D�D$E���1���H�H�5H�81��DI�D$�H�D$�D$H�D$8M�����������f.�I����H�D$ H�@�+���H�JH�BH�L$`�r���L�zH�B�@�����A�����L��M���g���M9��^���A�I����x�L���A��H)���T$4����H���I��L���L��D�t$4H�-H��������?L)�L9�LN��M�����M9�����I�?@����@��@��@�� �=���L��L)�H9��GH�H�5H�81��fDL��L)�H���x���M�7�I��M����L$4����H���L�t$`�J���E1�������L��H�D$`L)�H���x�*tL9�IO�H��1��L�HH� tL�H1�H��~$���uA�/I�������0A�H��H9�u܋T$4����H���L�t$`���L��H�T$XL��L)�L9�LN�L�������L$4����H���M�L�t$`�u���L��L��L)�L9�IO�I�,7I9��0A�?u�%��;�wH��H9�u�H�T$XL��D�L$����t$4D�L$����H���D�L$L9�L�t$`H��E��I��LD����H�D$XH� ��H��L��H)�L9���M)�L�t$`���L��H�T$X1�L)�H������I��H� �H�pM9�r�fD�I��H��M9�vtA�I�W<=u�I9�tfI�OA�GL9�s<
��<
��H�=���8���t3H��I9�t+A�O�<�����t��I��H��	��F�M9�w�L��L��L)�I�$ ��L��I+t$I��L���H��H��L���1�L���I�$�t$4H%���H
 I�$���"L���L�t$`���L��L)�L9������H�H�5H�81��L��L)�H��L9��mE���RI)�H�X�M��L�d$HD�d$4��E����!шL$(H����H�\$L��L�|$8I�0I��L�l$@D�|$4L�l$ �fDH��H���H���ti�Ef�H���D$�L$�D$h�Z�fH~�L9���
fH~�H��<��������
L��H����
E��u�H��L��H���H���u�L�|$8H�D$L�l$@M�|��|$(�>���H�D$ H��� ��
H����H�t$H���L��L)�H��L9��gH�p�H�t$E����\$4L��H)ƅ�H�t$H��H����!ʈT$(H���M�@L��L)�H��L9���H�p�H�t$E����D�\$4L��H)�E��H�t$H��H����!ʈT$(H���}�*�����A����L��H�D$`L)�Hۀx�*tL9�IO�H��1��L�PH� tL�P1�L�
H���G�������uA�/I������A�	A�H��H9�u֋T$4������H�|$ H���L�t$`���L��L)�H��L9��}H�p�H�t$E����D�L$4L��H)�E��H�t$H��H����!ʈT$(H���a�%���fDE���7���1�����L��H�D$`L)�H���x�*tL9�IO�H��1��L�HH� tL�H1�H���@���@��uA�/I�������0A�H��H9�u�����L��L)�L9�LN�K�T'�L��I9�w"��uH�����uH��J�4 H)�I9�v�H�T$XL����|$4������H�|$ H������H�D$XH��� �8H����I9���H��N�< L�t$`�J�L��H�T$XL)�H�@H��H�pHI�1�H����H�H�D$H�x�� t	H�D$H�xM9���A�E1���H߀�?��D�� I�O��?J�4�� ��H����H9�~	H��H��L)�L�\$hH���|fDH��I��LN�I9���D�1�E�P�A��@�8D�E1�A�h�@��@��E1��T$hD��D�T$iD�D$jE��t1�A�Ѓ�G�F�9�r�L)�L�H���I9��!I��H�\$H���D�D$4E����H�t$H�|$ �L�t$`���E1����0�L��H�D$`L)�Hۀx�*tL9�IO�H��1��L�PH� tL�PE1�L�
H��)����fD����Hc�A�C�I��L9������A��u�A�/I�������L��L)�H��L9��{E���I)�D�T$4H�X�M��L�d$H��E����!шL$(H������H�\$L��L�|$8I�0I��L�l$@D�|$4L�l$ �H���H��H����e����Ef�H��ȉD$�ZD$fH~�L9��fH~�H��<��������
L��H����
E��u�H��L����L��L)�H��L9��
H�p�H�t$E����l$4L��H)ƅ�H�t$@��H����!ʈT$H����	�
@E1�����Q��A��<�L��\$4H�l$ L)�H��L9�LN���H���I��M�����L��L)�H�����M�7�I��M������u�H����L��H�T$XL)�H�@H�pH��	HI�1�H�����H�8H��H�p�� tH�p�=H�
��
M���
M9���fDA�D�A���u-M9�w���M9���I��A�D�A���t�M9���A�GI�WD�A���u*I9�w�DI9��H���D�A���t�I9��.L�z�R�<H�Ѓ����M9�w*�f�I��A�D�H��A�����M9��|<=u�A���tA�����
f�H�;�� H�CH��tH�CH��H)���|$4����H�|$ H���L�t$`���@E1�1��k���fDA�� H�iA��?M��I��I��D	�E��I9���D�qE�f�A��@��A�n L�a��?I��H��I��E	�A��M9���D�qE�~�A��@�sE�F H��A��?A	����A�P H����I9������E1����@H�T$H�RH9��Q����U���f��<
t<
t
H��I9������<
��I��<
t&�P߀�?�����H�L$I��H�����f.�I��M9�������A��A��M9��
<=�
A�WM�WH������usM9�w,�f.�I��A�H������uKM9���<=u��f.�I��H�|?E��t�I���$�@H��H�|$ ���M9��K<=�CD��A��H��M�z��A��A	�D��A����D�F�D	�A	�D�N��V�M9���������fDA�
�b�H��f.�L�z���@����L����L)�H9����A�GH�r�M�O��������:I�M���"DI��A�G�������H����?H	�L9�u�H;|��kH9������H�����H�5H�|$X�H�������H��� ��H��H�P��H�
H9�w�fDH��H9���H�2@��u�H�����t�H��σ���uԀ� H�NtH�NL9�u�H9�������	@H�|$ H�����fDM�������L��H�;I�ׁ� ���@H�QI9���
�AH�������H9��[����[	@@���������M��A��M���	fDM��A�����
A�����
D��B����	�A����	�D��A��H����M��D	؈F�H�;�� �A���H���L�t$`�K�H�5H�|$X�H��H������H�H�5H�81��H�P H�@H���M���@����@��������#�I�D$��D$(H�D$H��H�D$HM����������'�fDfH~�H��H��H����H�D$ H�@�N�H�pM9����L��1���DH�|$ H��D�L$�D�L$�>�H�@�f�I�D$�H�D$�D$(H�D$HM����L�t$L��L�|$8H�0L�l$@L�|$ I��M��D�t$4�DH���I�E�M��~GI��H�H��H�H9�t]H��H��<������tcL��H��uCE��u�H��L���I�E�M���f�H�t$�L�|$8L�l$@H��HI�M�|���H�T$�D$��fDH��H��H��H���L;`��H�@���I�D$�H�D$�D$(H�D$HM�����L�t$L��L�|$8H�0L�l$@L�|$ I��M��D�t$4�fDH���I�E�M���+���I��H�H��H�T$hH9�t/H��H��<������t5L��H��uE��u�H��L����H�T$�D$���fDH��H��H��H����I�D$�H�D$�D$H�D$@M����L�t$L��L�|$(H�0L�l$8L�|$ I��M��D�t$4�f�H���I�E�M��~RI��fnH���Z�fH~�H9���fH~�H��<������t~L��H��unE��u�H��L���I�E�M���H�t$�L�|$(L�l$8H��HI�M�|��|$�R�H�D$ H��� �H�D$ H�@H�t$@��fD�닐fH~�H��H��H���t���M9����A�I�W�I9��.����%A�WM�G�����M9��A�@��=�M�O�@F�A�����A���H��A����D	؈F�������A	�	ˆV�D�F�M9��E���A�I�R�I9��������A�WI���M9��s����jA�I��@��=�`�<9A��M9��G����>M��I��E�G�M9��?���A��=�5����������	�H�N����	�A���F��H�;H��M�ρ� ���I�D$�H�D$�D$(H�D$HM�����L�t$L��L�|$8H�0L�l$@L�|$ I��M��D�t$4�@H���I�E�M�������I��H�H��H9�t4H��H��<������t:L��H��uE��u�H��L�����H�T$�D$���fDH��H��H��H���I�D$��D$(H�D$H��H�D$HM�������fD���fDfH~�H��H��H����H�|$ L���L�t$`�`�I�D$L��I��H)��t������H�������I����H�X��D$(H�D$HH�\$H�������I������I�����I���R���H�X��D$(H�D$HH�\$H��������DH��L)���M��I�OI9���A�=�����H�N��	������H�;H��M�ǁ� �V�H�|$ H���L�t$`�[�H��H��@��H��H9�u�1��A�H���H��H��@u����H��� ��H��H�Z��L�I9�w��fDH��I9���H�+@��u�H�����t�H�E������u�H��H�M�� tH�ML9�u�H����H����I9��ZI9���H�H�5H�81��M��B��A��H��D	ȈF�H�;�� �+�H�H�5H�81��1���1������H�BH�Z H������H�H�5H�81��D��H�
H�H�5H�81��D��H�
��H�H�5H�81��H�H�5H�81��H�H�5H�81��M�����H�H�5H�81��A����/���I��A�����������H����f�L��L��L�D$H�T$�H�T$H��H��H�����L�D$�t���H�E�b���H�;M�ׁ� ���L���|�H�H�5H�81��H���Y�ff.����U1�H��SH��H�=H���H��H��H��[]������S1�H��H�=�H�5H����[H��HD��ff.����H����H�����H������H������H������H������MH��H�����H��H����?�Ȁ�GH��H����?�Ȁ�GH��H����?�Ȁ�GH���?H���΀��?@�w�Ȁ�G��D@�7���H��H�����H���?H���΀��?@�w�Ȁ�G��@H���?H���΀��@�w���@H��H�����H��H����?�Ȁ�GH���?H���΀��?@�w�Ȁ�G��@H��H�����H��H����?�Ȁ�GH��H����?�Ȁ�GH���?H���΀��?@�w�Ȁ�G��PH�H�5H�81��ff.���AWAVAUI��ATUSH��H�t$HH�|$HdH�%(H�D$x1��H�T$HH��� ��H�JH��H�L$X��H�1�H�D$ �H�D$I�E�� ��H����I��L�|$X�D$8L��1�H�D$@M��I��@L9l$ �>H�t$HH��� ��H��H�N��H�H9D$ �oI�EH�D$XA�E��A�ĉD$<�L�l$X�Ņ�u�A���D$�D$0�D$A��#��
L��E��A��H��H��A�E�ljD$(<<tP��<>tF<_���t$H�=�H���)I���D$0L�l$XL�l$XA�E�ljD$(<<u��t$H�=�H���C�T$���I�EH�D$XA�E�D$�<!�~���H��H��D��E��I��@��*��A��H�=�ƉD$�E1�H����
I�UH�T$XA��U�*�A��mtA��u�DD$8�D$8A�D$�<S��
H���Hc�H�>��A��D$��t	1�>@��M����M�n�M������Mc�H�l$p�M)ƃ���D$I�GH�D$�Tf�H�D$H��D�L$E1�L��H�|�H��H�|$`�H�|$L��H���M9��I��I����nI� u�I�G 뤽A��?���A��4����|$0E�1�A��A������M��A��H�l$0��H�\$L�t$t&L�D$D�d$hL�d$hH�|$�L���L�D$H�-M��L�l$I��	~%��
H��L��I��
�I��	�M��H�|$L��H�5�L�l$XL9l$ ����H�|$@��H�D$��%�D$8���b���pH�L$xdH3%(H�D$��H�Ĉ[]A\A]A^A_�A�����M����I�n�M���M�oM)�L�d$hL�l$L�l$�\@H�D$H��H�|�H�|$`��ƒ�����
�@�L��L���D$h�I9��NH��H�����I� u�I�G �I�GM�$H�D$M���1�1�I�n��M���bI� �mH�D$H��H�|�H�|$`��1�H��H�D$`�I��H��H��u�A�1��H�I��� �H��H�p��H�|$`A�A������u���^I��� ��I�vI����J�.���H��H��H)�H��w�I��� �aI�vI�VH�|$I���I9����L�l$X�~���M��~�M�f�M���DM)�H�l$pL�l$�4DH�PH�H�T$pH��L���M9�t�I��I����I�GI� uI�G H��H�|�H�|$`��ƒ���u�H��1�H9�t�H���H��H��?H)�H	�H��H��w���M���7���I�n�M����M�oM)�L�d$hL�l$L�l$�^f�H�D$H��H�|�H�|$`��ƒ����bf��Z@�L��L���D$h�I9�����H��H����I� u�I�G �I�F�H�D$M����I�GI� uI�G H��H�KL�51�H�L$H�D$`H���	L�l$XA�D$�A�}�*�`
<'�wH�5��Hc�H�>��H�D$H�H�� ��H�L$L��H�IH)�H����L)�I��H����L�l$X�l���H�D$H�pI9���H�|$L)��L�l$X�C���I�F�H�D$M���	I�GI� uI�G H��H�|$`L�D$(H�kH�D$`�H�D$`L�D$(H��� ��L�hL�pM����A��m��H�|$L��L��mH���c��L�l$XL�t$���I�P�M������I�n�M���j
I�M�oH�L$`L)�L�l$L�d$hL�rL�l$@H�L$�m�H�D$H��H�D�H�D$`H���KH�D$hM���[H�t$`L���H�|$�L���I�.H���gH��H�����I��� u�I�G �I�n�M����I�GI� uI�G H�<�L�D$L�cI��L���L�D$�HH�|$H��H�D$`I��LN�L������L�l$X���M�������I�n�M���LM)�L�d$hL�l$�?Df���ZPf~�ʉT$hL��L���I9������H��H�����I�GI� uI�G H��H�|�H�|$`��ƒ���u�H��1�H9�t�H���f��H��H��?H)�H	�H��H�D$�Zd$f~���b���M����I�I�W�� uI�W H��L�D$H�T$`H���BI�n�1����M�����I�n�M���9M)�L�d$hL�l$�Bf.�f���ZHf~ʉT$hL��L���I9������H��H�����
I�GI� uI�G H��H�|�H�|$`��ƒ���u�H��1�H9�t�H���f��H��H��?H)�H	�H��H�D$�Z\$f~��d���H�D$H�H�� H������H����H������M�����M�f�M���8
M)�H�l$pL�l$�9f�H�PH�T$pH��L���M9������I��I�����	I�GI� uI�G H��H�|�H�|$`��ƒ���u�H��1�H9�t�H���H��H��?H)�H	�H��H���s����|$<����R�D$iD�d$hL�d$hH�T$HL��H�=1��L�l$X�w��A��M�DD$8�D$8��H�NH�F�r�I�vH�������I�vI���V������DH�PH�p���I�G ����H�|$�H�|$`H�D$h�M��������I�����f�@���A��A��L$�����H�|$XH�t$X�
�I���I��A�E�����H�H�5H�81����L$8���E��D$8M�������I�n�M���M)�L�d$pL�l$�>�H����	L���L��L��Hc��I9��h���H��H�����I�GI� uI�G H��H�|�H�|$`�H��H�D$`H��u�H���H���f.�H�T$ I9����A�}
��I�E��H���x�
�j�I��H�D$XH9�u��X�H��f�H9��L���H�¹H��H��?H)�H	�H��H�D$�~D$�"����H��f�H9������H�¹f�H��H��?H)�H	�H��H�D$�ZD$�b����t$H�=�A�H��MD���L�l$@I��L�l$X��M�u�f�H�JH�BH�L$X�)�H��������H��Ѓ����H�D$H����H��������H����������%H�L$H	�H���DH�|$���|�H��L��H����H)�H���f���I�����H�|$`L�D$(�H�T$`L�D$(H��� ��L�rH�jH�L$������H�����������H�1������A�I��������������H�����������ƒ����u���%H�L$H	�H��`���DH�|$`�H�T$`L�D$H��� �3H�RI9���I�I�n�1��v���H��L�h��I��M�������-I���M���hL�|$(D�d$H�l$H�l$f.�L9�M��L��A�LN�D��H��L��M)�M��9��M���H�l$L�|$(L�l$XL�t$H���p�<'�H�5��Hc�H�>��L�d$h�L$H�1��L������H�\$�H���H�H�D$H%���H
H��y�H�t$@H�|$�����B�H����H������H��L�rH����H������I��?~�?A��u����H�VUUUUUUUL��I��?H��H��L)�H�@���I��L9��I�@H�UI��I��?I�H��H��?I�H�H�I)�H��� E1�H�D$hH�]H�l$0A�D��H�D$(M���#��	����	�A��t5����I��L9����C�|.����C�D.�u����	�A��u�H�t$(H�|$�D$h1���I��L9���I)�I�@I��I��?I�I�H���jL�|$(L�e1�H�\$hA�M���I���M9�t5�€ʀC�D.�E�A��u�H�|$H��I���D$h��1�M9�u�M��L�|$(H�\$L�t$@������L�D$�у���D$h���I��L9��I�@H�UI��I��?I�H��H��?I�H�H�I)�H����E1�H�D$hH�]H�l$0A�D��H�D$(M���&C�D.���	��	�A��t2����I��I9��@�C�|.����u�C�D.���	�A��u�H�t$(H�|$�D$h1���I��L9��SI)�I�@I��I��?I�I�H����L�|$(L�e1�H�\$hA�M���I���M9�t2C�T.���	�A��u�H�|$H��I���D$h��1�M9�u�M��L�|$(H�\$L�t$@�������L�D$�у������I9���L��H�|$H��L���L�l$XA�}�*u0�H�5A��ZuH�|$�L�l$XH�\$L�t$�Q�H�\$L�t$�B��H���������fDH�H�5H�81��L��E1��U���L��E1����L��E1����L��E1����H�|$H��L��L�D$(�L�D$(I)�M��I��	~2A��AH�H�HE�H�|$�
H��I��
�I��	�A��AH�5H�L��HE����L�l$XH��L�t$�\�H�H�5H�81��1��m���1���E1����H�L��H�5H�81��H�
H��T$(H�5H�81���H�H�5H�81��H�H�5H�81��H�
�H�H�5H�81���H�=1��H�H�5H�81��H�H�5H�81��f.���H��H��H���H�5H�8�H��H�C��H�5H�8��H�H���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignencodes() buffer overrunCan't use both '<' and '>'pack length too big%% is not supportedmalformed UTF-8 characterredundant UTF-8 sequenceinvalid base64@ outside of stringX outside of stringx outside of stringno associated pointernon associated pointerpack(U): value out of rangeformat string modified@XxuPMmbuffer size problem?\x%.2xpackunpack'%c' allowed only after types %smalformed UTF-8 character (expected %ld bytes, given %ld bytes)unknown unpack directive '%c' in '%s'rb_str_associate() is only for internal use and deprecated; do not userb_str_associated() is only for internal use and deprecated; do not usetoo short buffer for P(%ld for %ld)can't compress negative numbersunknown pack directive '%s' in '% li'          0123456789abcdef� �0123456789ABCDEFABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_too few argumentssSiIlLqQsSiIlLqQGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0aA�D�G m
GAODGALP�B�E�B �B(�A0�A8�G�n
8A0A(B BBBD�YA�m
BhP��B�B�B �B(�A0�A8�G� I� J
8A0A(B BBBBL�!F�B�B �B(�A0�A8�D�A
8A0A(B BBBC$d/E�F�N IGA�4E�f���L�VF�B�B �E(�A0�A8�G�(
8A0A(B BBBA]HT	!%9"Qj#��$��%�ava!	/aGj]p�f`pj���pY���[�����A��A[!D':`�!FX	MH	T 8`p	�D'�'�'��'��'u)7u)P�Ag�)Vq�}0����A�=B"#$%!��h�4�(�������H�\����v�
���";(#.h4@:Y@$F LDRHX`^edp���

 &'(�����$5EP[bk}���������.?K`sP'/���'4��'�������"6CO]hy�A]����.annobin_pack.c.annobin_pack.c_end.annobin_pack.c.hot.annobin_pack.c_end.hot.annobin_pack.c.unlikely.annobin_pack.c_end.unlikely.annobin_pack.c.startup.annobin_pack.c_end.startup.annobin_pack.c.exit.annobin_pack.c_end.exit.annobin_str_associate.start.annobin_str_associate.endid_associated.annobin_qpencode.start.annobin_qpencode.endqpencodehex_table.annobin_infected_str_new.start.annobin_infected_str_new.endinfected_str_new.annobin_encodes.start.annobin_encodes.endencodesb64_tableuu_table.annobin_pack_unpack.start.annobin_pack_unpack.endpack_unpacknatstrendstrutf8_limitshexdigits.13648b64_xtable.13816.annobin_rb_str_associate.start.annobin_rb_str_associate.end.annobin_rb_str_associated.start.annobin_rb_str_associated.end.annobin_rb_uv_to_utf8.start.annobin_rb_uv_to_utf8.end.annobin_pack_pack.start.annobin_pack_pack.endpack_packnul10.13411toofewspc10.13412.annobin_Init_pack.start.annobin_Init_pack.end.LC0.LC14.LC3.LC6.LC11.LC12.LC13.LC4.LC5.LC1.LC8.LC2.LC7.LC9.LC10.LC15.LC16.LC17.LC22.LC18.LC28.LC23.LC27.LC21.LC24.LC26.LC25.LC29.LC30.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_attr_getrb_ivar_setrb_ary_concatrb_str_cat__stack_chk_failrb_str_newrb_bugrb_block_given_prb_string_valuerb_ary_newrb_isspacestrchrrb_yieldrb_integer_unpackrb_ary_pushrb_ary_storerb_warningrb_isdigit__errno_locationruby_strtoulrb_eRangeErrorrb_raiserb_eArgErrorrb_usascii_str_newruby_digit36_to_number_tablerb_str_set_lenrb_enc_set_indexrb_uint2bigrb_float_new_in_heaprb_tainted_str_newrb_str_associaterb_warnrb_str_associatedrb_uv_to_utf8rb_str_buf_newrb_integer_packrb_to_floatrb_str_new_staticrb_to_intrb_absint_numwordsrb_obj_as_stringrb_isprintrb_string_value_ptrrb_obj_taintrb_num2longruby_snprintfrb_isalpharb_eRuntimeErrorInit_packrb_cArrayrb_define_methodrb_cStringrb_make_internal_id�u��������1��&\�x��������+x��������fy��������uz��������&|x��������Nx��������&�?x��������Iy��������P=��������W{��������}|���������}���������}���������~�������� ��������t&Ty����������&D����������2&���������������������������-�������������������@	>��������G	����������	����������	����������	����������	*����������	?��������
����������
����������
����������
&]*���������d@��������n�����������������������������D�����������������������������
*���������0���������>x��������H���������p����������*����������A������������������0������������������������������&�/�����������������������������������������������I���������d&�,�������������������D��������������������*���������������������������������������������������������#�-u�������������������������������u���������*����������B������������������Y�������������������,���������q�������������������D�����������������������������$ ���������v ���������� ����������"���������#���������#���������i#����������#����������$����������$&|�%*����������%C���������%����������%*����������%D���������%����������%*���������&E��������&���������&&D!&*���������(&F��������2&���������<&&TE&*���������L&G��������V&���������]&*���������d&H��������n&���������u&*���������|&I���������&����������&*����������&J���������&����������&���������''*���������.'K��������8'���������a'L��������j'����������'M���������'����������'��'u��������`)*���������g)N��������q)����������)}���������)���������u*���������*&T�*���������+&D +���������x+O���������+����������+&Lg,���������w,x��������
-x��������-&�@-x��������X-&�]-x��������.���������E.x���������.����������.����������.����������.z��������%/����������/x���������/x��������0����������0����������0x��������)1P��������c1&��1��������� 2}���������2���������
3x��������i3����������3x��������"4����������4x��������85����������5x��������06���������v6����������6Q���������6���������.7���������=7���������K7~��������e7����������7����������7����������7*����������7?���������7���������8���������+8x��������f8���������}8���������g9R��������l9���������:���������P:}���������:}���������;&<�;S���������;���������<��������� =���������R=x���������=x���������>����������>x��������E?x���������?x���������?&��?x��������@*���������
@&,@���������U@x��������q@&�x@&��@x���������@&��@&��@*����������@T���������@����������@*���������AU��������A���������A&T"A*���������-AF��������7A���������<Ay��������CA*���������JAD��������TA���������[A*���������bAH��������lA���������sA&D|A*����������AK���������A����������AV���������A{���������A*����������AW���������A����������A*����������AN���������A����������A*����������AX��������B���������
B*��������� BY��������(B���������-B���������4B�Bv��������]w�������� <��a$,aPaXj�a�j�j���j���[D�L[p[xD'�[�D'�D'�'D''0'8�'d'l�'��'�u)��'�u)�u)��A$u),�AP�AX=B��A�=B 8 9 : ;�%(	,	0	4	8	<	@	 D	$H	(L	,P	0T	4X	8\	<`	@d	Dh	Hl	Lp	Pt	Tx	X|	\�	`�	d�	h�	l�p�t&x�|��d�,���1�P	��	��	�4��
�_��	�$��	��	���	����	��	��
��	�d
��	�
�
�
�
�
�B
���m�4���4
8
<

 �$(L
,H0�4X
8?<`
@�D�H�L�P@ATu6Xy6\}6`�6d�6h�6l�6p�6t�6x�6|�6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��6��1�k1�o1�C.�R.�26��0�20��1�z,�7�	7�X-��3��,�7�!5a-%7^--7�8�,97U6 A7$�1(I7,M70Q74U78Y7<]7@�1D�1H�.L�.P�5Td1X�4\2`�,d�7h�7l�-p3t�-x�7|�3��-��7��-��7�%3��-��/�_.�?��>��?��?��?��?��?�.>��?��?��?�@�@�@�@�@�@�@�@�#@�'@�+@�/@�3@7@�??@C@G@K@O@S@ �?$�=(_@,c@0g@4k@8o@<7=@�?D�>H�?L�?P�?T�?X�?\+>`�?d�?h�?l@p@t@x@|@�@�@�@�#@�'@�+@�/@�3@�7@��?�?@�C@�G@�K@�O@�S@�@��=�_@�c@�g@�k@�o@�4= Tp�p��`hP'��'��'��)�A.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*ZT*[l*\�*]�*^'�=B"@hr8*-�B3C =C�8@���*
S�Hb�H�]@��0*
|hJ�hJ��@��0*�<L�<L��@�0*�N�N��@ �0*2�Ol2PQ�.�Ra )@P�@*60AX.�oX�oX|oXSoX'oX?oXMoX`oXroX�oX�pX ��X(�@���*(�Z�+t	�j����parse.o/        1690381920  1000  135   100644  339704    `
ELF>�"@@10

$&'#(")H��~1���|�*tIH��H9�}���*t��-t�H��H9�|�1��fDH�PH9�}�|-t H����f.��|�-u�H�D��|�-u�H�D�H��tsSH�H��1�H������(��6wV��H�pH��H��u:��t1���t/H�_�H��t!fDH�{�����tH�[ H��u�[���f�H��tKH�1�H������9��-w<��H��H�� H��u H�8H����������f.���H�F H�FH�@H�@ H�H��tLH�H H��H��tH�QH�NHHH�r H�V H��tH�@ H�RH�P1���H�@ H�p1��DH�21��f.���H��t7HcGXH���H H��t#�H�JH��(H��tHcIH��H�RH��u�Ð1��ff.�f�1��������9��t	1��fDUSH��H���H���H��H9�rH���[]��H��H9�t��;���u�H��1�[]�f�USH��H��H�N H�GH�H�Op�� ugH�QH��H�����H�HSH�kH������H������H�H�����H���H���H��H��[]�DH�QH�AH�����H���H���H�BH9���S�
��@����{�1���$t[�fD�Z�߃�-���C߃�]w/�S�مҍBI���������H�)�H�
����rj@�����u]��_tX��xT�����uI1�[�DH����YLJ�[���Z��@u�H�BH9�v��Z���[[�f�1��ff.�f�D�GT�WXH�G`A�0�OT9�|JUSH��@�9���WXH����H��Hc��D�CTH�C`H��A)�[]Mc�L��f.�Mc�L��f�HcGTH�W`�H�OT@�4�wX9wT}�D�SH����wXH�`Hc��H�C`[�S���H���GT�G\H�G`H��t3�{X
[���CX<��<H���H�C`[Ð�GX<��<�H�C`�@AUI��ATU��H��S��H��H���L�c0L������H��H�ډ�[H��]L��A\A]��ff.�@AUM��ATA��USH��H���A��H��u�{tH��H��[]A\A]�H�����u�H���=t��L9�u��H9�t��H��H�����AVAUATUH��H��SH��H�� ������A����xH����H������}H���H��H��tTH�E�� t[I��I��A��M��~;1�L�u�L��H�<�D��H���I9�tH�E�� u�H�E ��f�H�� []A\A]A^�L�m�H�sH�=1��H�D$H�H�H�$����H���H�=H�D$1��H�|$H����H���H���H��H�=1��H�D$�fD��UH��SH��H�������uH��[]�H��H��H��[]����ff.�@L���I��H�=L�������u�I�1H��L��H�1�H���ff.�f�AUATI��USH��H�?H��u�~f�H��H��tmH�_H�o �H�I�,$H�����P���w�1҃�XH�C��H�pH�CH�x�H�{I���H�{�H�L�kH��怀�9H�H��u�H��[]A\A]�UH���SH�����H��H�H�C�H�kH�H��H��[]�ff.��ATA��UH���(S�1�H��H���H�C���H�E��u?1��x���H�C�H�����ug1�H�CH�E(H�C H���[H�E(]A\�@��6���H�C�EH��u�H����H�=�����t��H�����t�1�����fD��ATI��USH�`H��t�I��$�H��t,f.�H�{H��t�H�kH���H��H��u�[L��]A\�f�USH��H��H�����tDH��H�Hcw;wt�V�SH�,�H��[]�fD���wHc�H���HcsH���H��1�H�=�f�ATI��U��SH��H�������� trH����H���=���nA��$�H���I��$�A��$�A��L�HH�
1�I��$��H��[]A\�fDH����H9�u�H���=t�H��H����fD�H��H���H��[]A\��H�t$H�T$���H�3H������t89t$tH���=�"����t$H���H��[]A\�f.�H������@UH��SH��H�����H����H��uH����[]�H������H���H�
���H���I��1��H��1҉�[]ÐAUATI��UH��S��H�����L��H��I�����������L��H����H��H��tH��H��[]A\A]�f.����H���L��I���I��t5L�����H�5H���L��H��������H���M��1����H���H�
��_������ATU��SH��u:1�1ҿ9L�c�Hc��H�H����H	�H�I�$��[]A\���=�H���@UH��H��S�Ӻ:H����uH����H��H��[]�u���D�H����<��ff.��UH��SH��H��H���1�H��gH���Hc��H�H����H	�H�H��[]�f�H����ATI��UH��SH�H��H������GtK��K�B��F��1�H��H�޿F�Ic�$�H�H����H	�H�[]A\��H�H������(u�H�v1ɺ�(�Ic�$�H�H����H	�H�H H�H��H��tH�QH�MHHH�j H�U H���H�JH�P H�JH�CH��䀀�FH�H���h���@H�H������(�$���H�VH�H������(�
���H�J H��H��tH�AH�MHJH�h H�E H����H�HH�B H�HH�SH�����DH�vH��t���H�CH��[]A\�fD1ɺH��(�Ic�$�H�H����H	�H�H�CH�����DH���@H�P H�j���H�B H�h�m���ff.�AUI��ATI��USH��H�H����H���H���������������B~X������ukH�CH�S H���yL�cH����L��L��L�c �}���H�[ ��t-H��t(H��H��fD��uH�CL�`H�X��u�H���[���H��[]A\A]�@���~%��,����\u�I�$H��[]A\A]�@��u�H�{ H�CtL�cH���k���@H�SH���L�cH���L��L�����L�cH�[�2���H�CH�SH����L�cH��u�H�Å����������fDH�CH�S H������H������L�c H����DH�[I�$��������H�[I�$�����������H��u����fDH����L�cH���p���1�1�1��\�Ic��H�H����H	�H�I�$���H���2���H�������L�cH�������SH��H��H����H�H��H������:����;td1ɺ�(���fHc��H�H����H	�H��H���Hc��H�H����H	�H�H��[�f���H���fH�H��[�fDH�~H�t$�H���H�t$H�FH��䀀�9H�H��H��[�@1�1Ҿ��9�v���ff.�f�AU�	ATI��USH��H�=H��H�-H�M�L9�w9I)�I��N�lcL�%��H�}L��1�H���L9�u�H�uH���
[]A\A]�f�UI��H�
H��AWAVAUI��ATSH��(H������dH�%(H�E�1����H����M���I���I9��A�>
I����sM���fDA�|$�
t
I��I�D$�H9�s�I9���L���
D�;
t	H��H9�r�H��L)�H���"L�=M��H��F~-L��L)�H���PH��L�L)�H���H��L)�H�AH��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�t$H��L��L�E�I���H�M�L���H�M�L�E�1�H��I���M��1�I�1�H�
�APM���I���XL��YL)�L9�v��8	t� H��H9�u�Hcƒ�H�=L��Hc�A�^1�A�L���1�H�}�dH3<%(��H�e�[A\A]A^A_]�I�}p�H��I�VL��H���L�H������I�}pL�=�I�V�L��H��H���M���I������I���M�fI9��m���A�>
�����^���fDL��L��L)������ff.�f�UH��H���SH��H��H����H�UH��tH��H��[]�f�H��H�5����H��1�[]��AUI��ATE1�UH�-SH��H��H����H�H������,w#HcD�H�>��H��H�C H��u�H�[H��u�H��A�[D��]A\A]��H�[A���@H�[��f.�E����H��E1�[D��]A\A]�fDH�sH�C H����H��uH���U���f�H�FH��tH��H�H������t�H�sL���	�����t�H�[ �L���@���H���1�H�A��H��D��[]A\A]�f�L��H�5���H��D��[]A\A]�H������AUI��ATUH��SH��H��H���"H�H��������H�VH��u��H�BH��tH��H�H������t�I��H��H���'���M����I�EH��������I�uH��u�@H�FH��tH��H�H������t�I��H������L��1ɺ�(�Hc��L��#H�H����H	�H��H�H���Hc��H�H����H	�H�H��[]A\A]�I��H���/���L���1�E1��x���1�E1������AVAUA��ATI��UH��SH����H�H��������H�ZH��u��DH�CH��tH��H�H������t�H��H������H�H��H����D9�tHL��D��1��Hc��H��H�H��%�H	�H�H��[]A\A]A^�1����1���I���H�H����D9�uI��I�vH��u�1�L��1�D���Hc��H�H����H	�H�I�FH��[]A\A]A^�H���7���ff.��ATUH��SH��H���H�H������uhH�NH��u�]H�AH��tH��H�H������t�I��H��H�����H��1�L��#�Hc��H�H����H	�H�[]A\�I��H���1�E1�����AWAVAUATUSH��H��� u~H��L�~��H���H��tH9�trI�H)�I���
�E1�I��I��H��L���
�L��L��H�PL)�H��HE�H�H��I���H��[]A\A]A^A_�L�~H�^�fDH���[]A\A]A^A_�@��SH��H��H����H�{h�H�{p�H�{x�H����H����H���H���H�;[�ff.�@ATA��UH��H��SH���H���H� u+H��A��H���[H��D���H�=�v]A\�f�H�[��f.�AUI��ATA��UH��H�5SH��(H�|$H�|$�L��H��H�*���H���Hǃ��Hǃ�H�ChHǃ�Hǃ��D��H��H�߉CH����H�T$H�T$H�T$H��([]A\A]�ff.���H���@D�GE��~+H�H;2t3H��1���H��H9r�t�ȍHD9�u�1��f���ø�fDHc�H�SH��H�Ё��&�H�1��H�޿)[�D�H�1��H�޿)[�ff.�@���u�fDUH��H�1�S��H��H�-H�}�H�}���L���H�uH���
[]��H�H�H����H�H��H	�H��AVI��AUM��ATI��UH��S1�H���tH��H����HD�L���H��L���H���Ic�$�H��H�H����H	�H��H�L���H�H��Ic�$���H��H	�H�H��vH��H���6���[H��]A\A]A^�f.�UH��H��SH��H��H���thH����HD�H��tZH��H��H�¿"�Hc��H��H�H��%�H	�H�H��vH��H�����H��H��[]�f�1�H��u�1�1�1���Hc��H��H�H��%�H	�H�H��H��[]�H���H�H��H������u:H�GH��u�/f.�H�PH��tH��H�H��H������t�ɀH��H����fDI��H�?I��H�����t�����¸��t�DI�y1�H�����t�L�������������UH��SH��H��H��tH�H������Kt81�1�H�޿-�Hc��H�H����H	�H�H��[]�fD���H���H�
1����H�����ff.�f�H��H�Ѓ���4t9��5u,���D�1�H�
���H���H���������L�1�H�
���H���H����ff.��H��tH��tH�H������Kt�fD���H���H�
1����H�����AUI��ATI��UH��SH��H��E��ujI�$H�+1�H)�x<t$�	��
t��
uWH��tQ�|+
u f.�H��H��L���������H��[]A\A]�����t�H���;@��u�댐H��1�[]A\A]�UH��SH��H��H���H��H)ƸH9�v(@�;	u�P��H����H����H9�u�H��[]�ff.�f�UH��SH��H��H���H��H)�H9�w�/�H��H9�t�< t�<	t�H���[]��H��1�[]���>"tH��tnSH���H)�[��H��1��Q��'t�~0��,tЀ�\uF�y\H�Qu�H��H��t��H�������"uH��t�Ð��H���H���f.�AWHc�AVAUI��ATUH�-SH��H��XL�d�H�|$1�H�t$L���9���H�D$�����I�UI��H�L�d$ �P=������¹���څ�Iѹ�+)�A�́��DO�D9���Hc�D�$A�L�5�f�H��A��A9�~cIc�A�4F9�u�t�H�=f�<G��t�A��teH�t�A�@1��D$J�t� �t���L�I����H��LcD$A��A9��fDA����H�
D��L�|$Hc�H�>��D�A�H�H�l$H���H�D$H9(��H�D$1�H�(��
H��H���ЈE��tA�S<%u�su�D9�}�H�t� H��D�aH��D�D$���Ic�D�D$H���E��u�H��X1�[]A\A]A^A_�D�E1�H��V���H��X�[]A\A]A^A_��H�D-H9�s&H�D$H�����H��X�[]A\A]A^A_�fDH�L$H�H��X�[]A\A]A^A_ø)H������5H������/H�����;H�����H����1�D�D$1��L�|$D�D$�|���f�AWAVAUATUSH��H�H�H�@H��H��H�������D�bE1�D��H��������I���{�Hc��Ic�H�xH��I�EH��H�H�0�E�T$E��~ZI�EA�W�L�(H�@H�M��I��L�HM�$��@I��L�M��tL��L�������uIc�A��L�\�L��M9�u�E�b�D9�@Hc�H�]H��H��[]A\A]A^A_��E1�H��tD�xC�'�*���1���@H��Ic�D���H����AUATA��USH��H��H���H���H���H�x����~N��D��H���a���u�H���Lc�J�D-H�����tH������L��H��H���H��D��[]A\A]�H������1�H�
���H���A�����L�B��ff.���ATI��UH��S�H��<Tt
~F<ftF<tuH�5H�����tk���I��L��1�H���H�[]A\�fD<Fu�H�5H�����u�1��������	Ј��[]A\�f����f���AUATI��USH��H��H��~.�|�-H�j�L�j�t/A�|�-L��tDH��H��H��[]A\A]�A�u���fDJ�<.�H�5���u���DM�l��H�5L�����t��H�5L�����u�H��u��H�5L�����H��H���^����S��xuH��H�����uH��[�H�H�5H�81���USH��H��H�wh���H��H��tH�����H��u2H��H��uH��H��[]�@��H��H��[]�@H���H���H��H���H��H��t��@USH��H��H���H���H9�tlH�JH������<
tH����[]�fDH;��s
�z
������
;��~ˉ��H���H�1���DH�GxH�GxH��u%H���H�h�����H���������~Hǃ�H����������� u6H�PH��H�����H�H�CpH����
���������H�PH�HH������H���
H������H���H�C�����H���������������f�U��S��H���H��L�L�OL�_@I������tFI�����tH��L���C��uoH��L���4��u8M�RM�IM��t#@��tM�[I������u�1�I��tGH����[]�E1���M��t�P�I�Hc�H�,�?H����[]�fDH�����[]�H��H��[]�@ATI��UH��SH���H�����tcM��t^I�4$H��H������#��=wHH�Hc�H�>��f�H�
f�H��D�#H�}1��3H��D�#[]A\�DH�
���H�
��H�
��H�
��H�
��H�
�|���@H�
�l���@H�
�\���@H�
�L���@H�
�<���@I�|$H�G�H��h�C���H�Hc�H�>��@�H��H������I�4$���fDATUH��SH���H�����tH��tH�H������t[]A\��H�{ t�L���H���H�SH��L���1���H�[ H�{ u�[]A\ÐH���H��1�H��tH� tH�R1��:_��H���H����f.�USH��H��H�/H�}���H�EH�+H�}����H�EH�+H�}H��t����H�EH�+H�EH��[]�@AVAUATI��UH��� S�L��H��L� ���L���L����CL��L���m�L��L��L��C��CH��H�CH��[]A\A]A^�ff.�SH��H�?H��t�H��[�fDAWI��AVAUI���HATUSH��H��8����H�$H�L$�D$�1ҿA1�H��I��H�D$(�H��H�D$Hc��H�H��H��H�L$ ��H	�H�M�~(M�n0M���#1����1�I�����H���DH������M�m M��t I�EH�x�H�pu�L�����M�m M��u�H����H�H�vHcAH��H��H������HD�H��H��tHc~H�H��H��H�D$ H�$H=��aM��1�I��tA�|$I��1�I���21�H�|$����9��1)�E1��Q��I�$Ic�A��H�4�H���H�8���1�M��tA�D$A9�|�E1��"@H�EIc�A��H�4�H���H�8����1�M��t�EA9�|�M��tL�����M��tH����H���H�t$ H�8���H�<$�RH�|$�&H�t$ 1�1ҿ/�Hc��H�H����H	�H�L$(H�H�A8H�$H�H�D$���H�D$H��8[]A\A]A^A_�f.��u���������������������Q����H�$H��t�H���L�t$H�8M�����G������H�ΉG���H���L��H�8���H�4$1�1ҿ/�Hc��H�H����H	�H�L$(H�H�A8�"���f.�H���H�t$H�8�<������H���H�4$H�8���H�|$�������H�4$����f���H�=1��ff.��H����AWAVAUI��ATUSH��L�>H�*�B;F��D�`�1�L�5���]�H��I�<�H��tGH�|�x?H��
t6H���v@��u
�����uI�<���t�I�}L��H��1��H�CL9�u�H��[]A\A]A^A_�D�H�=1���USH��H��H���H�PH�hH��t$H�pH�������H���H�xH�����uOH�8H�����t����H���H�xH�����t����H���H�P H��H�S(�H���H��[]�����H����f�USH��H��H���H�hH��t/H�pH��H����t���H���H�PH�RH�PH�����uXH�8H�WH�H�����t�p���H���H�xH�WH�PH�����tH��[]�I���f�H��[]�f�H���(���H����ff.�@ATUH��SL���H��I�$�f�����H���H�H��tH��H9�u�[]A\���L�g�L����fDUH��H��SH��H��H�H�x�E��H�H�xH��tHcuH��[]�*��f.�H��[]�f�AUATA�USH��H��t$H��I��H��H��H���H��t!H��H���H��D��[]A\A]��A���H���H��L�`�I���A���H�
L�@I���M��1�E1��H��1��H��1��H��D��[]A\A]�DSM�Q D�H��tSH�FHc�H9�ukH�v A�BI�2M��tGI�@Hc�H9�uOA�BI�@ I�BI�@I�BL��I�J I�R@D�[��A�BI�2M��u�A�B1�I�B�H���@H��H�OI��H�L�WH��t:L�II������u�Pf.�I�AH�����tDI��H�RM��tM�RM��u�1�H�����tH��L���i����E�H���L��I��@H��tbH�����uAI������tdL��L���-�����M��tG��tCI���H�H�,�?�H����H��L�����¸��t��L��H������u���1��n���ff.�f�UH����H��SH��H��H����H�
Hc�H�>��f�H����1�1ҿ9H����Hc��H�H����H	�H�H��[]�f.�1�1�1��[��1�1�1��\�1�1�1��]�1�1�1��^�Hcw\1�1ҿ9H�t6�y���f�H����1�1ҿ:H���S���H������������H�Hc�H�>��@1�1�H��3�����1�1�H��2����H���1�H��0H������fD1�1�H��1����H���H�GH�����tH�xt1�H�����u|H���H���!�����tXH9��tz1�1�H��.�c������H���H������H�
H���I��1��1��D���1�H��1��%����H9��t<1�1�H��/���H������H���H�H��1���[���H������H���H�H��1����AVAUATUH��SH��H����I��H��L�kH�����H���ty1ɺ�(�Hc��L��H��I��H�H��%�H	�I����L��L��#H���Hc��H�H����H	�H�H�CH��[]A\A]A^�@H�KL�����1�H�ڿ H���Hc��H�H����H	�H�[]A\A]A^��1�1�1����H�KL���<���1�H�ڿ!H���Hc��H�H����H	�H�I����V���D������G����H���D�3���L�h �*����H���H����ATI��UH��SH��H����H�5Hc�H�>���H�5�D��1�[]A\�DH�5�,��[1�]A\�DH�5���[1�]A\�DH�5���[1�]A\�DH�5����[1�]A\�DH�5����[1�]A\�DH�5���[1�]A\�DH����K�؃����=H�Hc�H�>��@1��D1�L��H�޿�Hc��H�H����H	�H������U@��u�E<���GH�5H�����1�����H���L��H�޿H����1�L��H�޿�{���fDL���H��I�CL��H�������H�x�������uB1�H��L��������H���H���������H���H���H�����1�L��H�޿�����H���H������H�
H���I��1��1�����D�;�����uH���H���H�����1�L��H�޿�|���1�L��H�޿�j���1�L��H�޿�X���ff.�AVAUI��ATI��USH�6H��H��H������:m��9}p����M�uL��I�FH�H������,H�<H���H�H������ubH�CI�^ H�EH��[]A\A]A^�f.���[��wxH��1�H��H�
I��$�H��[H��]A\A]A^��1�H��1ɿ�Ic�$�H��H�H��H�[%�H	�H�H���h���fD1�1�L���Ic�$�H��H�H��H�m%�H	�H�EI��tWL��H��I���y������@�H��������H�3H�
H�1�I��$�H�������DI������AWAVAUI��ATUSH��1�H��(H���"H�CH��H��?H�H��H�D$I��H�D$H�D$�H��L��L���H�$H����H�kH���L�{ M����I�G I��H�$H�EH������9u�L�uH�T$L��L�����t�H�D$H�MH�I���L�EH�0H��1�H���H�D$I�WH�X H�CH��tH����H��L���A���H�CH�$H���K���H�5����H�T$L���L���H�t$1�1ҿ+�Ic��H�H����H	�H�H��([]A\A]A^A_��H�5����H�T$L���L���H�t$H��tJH�V H��H��tH�BH�SHVH�X H�C H��tH�PH�F H�P�e���@H�F H�X�T���H���I����H�������ATI��USH��H��H��t^H�C H��H��tH�hH�C1ɺ�(�Ic�$�H�H����H	�H�H�E H�S H�BH��[]A\�f�1ɺ�(�Ic�$�H�H����H	�H���f�ATI��UH��SH����H�H��H������Gtc��KtF��(t11ɿG�Hc��H�H����H	�H�[]A\�fD[]A\����H�v���H�CH��[]A\�H�v1ɺ�(�Hc��H��H�H��H����H	�H�L�����H�CH��䀀�FH�H��[]A\�1ɺL��(�B���ff.��SH��H��tH�H������#t����wH�VH��[�D��gu�H�s ����H�C H��[�f�UH��1�SH��H��H���1��1ɺ�;H���Hc��H��H�H��H����H	�H�H��H��[]���f�ATI��UH��SH��H�6H��H������>t1H�
H��H������;�{��>����:��H��[]A\ÐH���1�1��1ɺ�;H���Ic�$�L��H�H��H����H	�H�H������H�MH��H��H������;tM��>t)��:u�H�C H�@H�PH��tH�H������:��H��H��L�����H��[]A\�f�H�uH����H�C H�@H�PH��tH�H������:�n��1ҿ:��(H�M1��Ic�$�H�H����H	�H�H�S H�EH��H��tH�BH�UHSH�h H�E H���fH�PH�C H�PH��[]A\�f.�H�u��:��H������;�b����9�����:����H����H�CH��;H�3������;�������:����H�sH�UL���^���t*H���H��[]A\�f.�H��H�s�4���u H��1��H������f�H�CH��H��H�E�����H�r�f.�H�BL��H��H�������t�H�Ef�H�EH�U H��HCH�C H�@H�P H�E H�PH�C H�P�5����H�C H�h�B���ff.�ATUSH��
tkH��H��H���v@��tnL���I�CH�����tkH�xtdH��L���i��A�ą�ua�H��L������u^H���H���O���uKA�D��[]A\�f.�H���(���t���f�H��L������t�H�5H�������H������H���H�H��1��H���H��H�x臾��H���H�xH���q���Hc��H��?�b����[���ff.�f�SH���vv��H�����wiH�Hc�H�>���H�5�$��1�[����H��[�fDH�5���1�[�H�5����1�[�H�5����1�[�H�5����1�[�ATUH��SH���5H�H��H��H�������g|U��PL�FM���L���˳������I�0H���H�1�H�
H���H�UH��H����f�����T��H�
Hc�H�>��L����H�=L��������{H�=H�����H�5I��H���{L��1ҿ0�Hc��H��7H�H����H	�H��H�1��Hc��H��H�H��%�H	�H�EH��[]A\�H�E�uH������\H��H���1�H�
H��H��H��[]A\ÐH�5�4��H�UH��H���������H�uH���D���H�uH��H�E�4���H�EH��[]A\�����H���1�H��H��[]A\�DH�uH���H�uH��H�E�I��H�EH�EH��H������W����Xu
�䀀�ZH�EL����H�=L�����������H�}����L�lj�������uj��ueH�uH�
L��1�H�H�������H����������H�H��H������H�E�䀀�6H�E�Q���@ƃ��B����H������0���L����r�����䀀�YH�E����f�H��H�
L��1�H��H���a���@�H�=�H��H��e����H�=��H��H��%���H���,ATI��UH��SH�H��H�����fDI�T$H��tH�I��H������t�L��H��������9uA�D$u[L��H��]A\���DH��H�L���.���H�=H�����H�5H��H����H��1ҿ0�Hc���(H�H��H����H	�1�H���Hc��L��#H�H����H	�H��H����Hc��H�H����H	�H�[]A\�1��H�=��H��H��:����H�=�H��H��2����SH��H��tH�H��H������Kt5��(tH��[�H�{ t��H�؀�*H�[�H�[��f.����H���1�H�
���H����H�H��H������U��SH��H��D��H�����������H���H���H9���H�BH����2@��@��
tnH�{u4H���H����
�z�H��PX��u�H����@�<_t���x�H���H�B�H���H;��v
�z�
�#1�H��[]�DH;��s
�z
������
;���h������H���H�1���H���fDH�CxH�CxH��u$H�{u�H�{h��H���E��H���������~iǃ�H����������� u/H�PH��H�����H�H�CpH������f.�H�PH�HH����������H���
H����}����z�
����H��1�H�������H���H�C1�H������f���H)�A�A I�yAVM�qAUM�)ATI��UH��SL����H����A�<$@��_t@��xL��A�VX��twH���~�E���
wv�U���H�5��t
A�D$��(A�<$A�@�����ȃ�2w9H�H�@H�H�4�@:>u#H��I�|$���u[1�]A\A]A^�fDL��H��L�����t�H��L��L���I���1�H��H���l������I���H��������H���1�1ҿ9H���Ic���(H�H��H����H	�1�H���Ic��H�5I��H�H��%�H	�I�$H����L����L�Ẑ�#H���Ic��H��L��I��H�H��%�H	�1�I�$��L��L��H����H����H�����H�sH����H��tH��L���&�H�C1�1Ҿ�9�Ic��H��L��I��H�H��%�H	�1�I�$��L��L��H���7�H����H���6��H�sH���H��tH��L����H�C[1�]A\A]A^�f.�H���A���I���H�H��1���G���@1�1�1���Ic��1��H�H����H	�1�H�1�H�C�Ic��H�H����H	�H�H�C������H�=�H��H��/����H�C�����H�C���H������H������AUATE1�USH��H��L���L��H9��tOH�JH����<
�������t	��i����r��@����A����H��H9��u�H�CxH�CxH��u0H�{�t$��H�{h��H������t$H���o������7ǃ�H����������� ��H�PH��H�����H�H�CpH�������@��yLL���E1�H��D��[]A\A]�@H;���[�z
�QH���
H���f������u���_t�H���H�B�H���H;��v
�z�
�s��.u�H�����H�PH9��v�x����Z���H�5H��H�-�v���H���H�C��H�CH���!���H���H����
�z�H��PXH�����u�B�<_t�����H9����H�BH����:
u�H;��s
�z
�����;���y������H���H��1���]���D����
;����������H���H�1������H�PH�HH�������@A	�1��t���fD�������D�z�
�����H��H����s���H���H�CH������H�CxH�CxH��u"H�CH�������H�{ht�H���S��H��t������~cǃ�H����������� u)H�PH��H�����H�H�CpH����~���@H�PH�HH�����������H��H�CH�����ff.��AWI��AVAUATA��U��SH��8H�t$���MI���I;��s�9{thH�T$(�H���H�|$(H��A���tM���I�FI������:����E���:��L���.����+f�H�D$(H�D$fD���tI9����H�yI����9
�H�T$��H�t$(A��H����=���I���H�I����������E���yI9�����<}�����I���H�BI����:
u\I;��s
�z
��A���A;��~9A���I���H�1���f��L��蓦��A��H��8D��[]A\A]A^A_�@Lc�L���m���L)�L��H��H���E���cI���I;����< �����<	������������1L��艦��I���I9���z���I�GxI�GxH��u(I��I�h��L���6��H����A������-ALJ���A���A���H��� ��H�HH��I�����H�H�yI�GpI���I����9
���I;��s
�y
�MA���A;������A���I���H�1��I�������H�D$�H�T$E��H�L$H���I�������@�\�F����uL���9������@H�HH�PI����*���@��L�������F���f�A�������@H�5L��E1��^�������f�H�‰�L���s������fD�H�T$H�E�������H�‰�L���E������H�5L��E1�����{���f�H�yI����y����}L���S���I���I;������I�GxI�GxH��u(I��%���I�h��L�����H����A�������ALJ�H���A���A����� u_H�PH��I�����H�I�GpI����C���DH�5L��E1��������I���I�GH��I������H�PH�HI����A����j���H���g���H��I����@���I���I�GI����%���USH��H��(H���H���H9�tdL�GL����<
t"�HЀ�H��L�
��Ic�L�>��f�L;��������
;����H��(��[]�H�CxH�CxH��u:H�{H�T$�t$��H�{h�5H���X���t$H�T$H��������~kǃ���������H��� ��H�xH��H�����H�H�CpH�������
�3���H���
H����5���������@���&H��H�51��5���H��(��[]�@�
��fD����fD�����fD�����fD� ���fD����fDH�t$H���k���H�|$�ŸD��z���fD��j���fDL;���H���L�@L����8L��@��
��@��-����H���H9��������y�
���y�
���H��H��������@������L;���"I�xH���A�H��<
��<-�8L���L9��������f�H�xH�HH�������@���H���H�1���\����H���H9��s	�?
�CH�T$����H�D$H������D�
�
���fD�	���fDH���H;���,H�yH����<
��D��A��\��A��?�(������������f�L;��s
�x
����;���D������H���1�H��H���H�A�����H�CxH�CxH��u:H�{����H�{h��H��H�T$�t$����t$H�T$H���������~���ǃ�H�8�������� ��H�HH��H�����H���H�H�CpH����?���H���H�CH����a���H;���AH�yH����<
��<\�����.����Ȁ���=���f�H9��v
�yu������H�����%����
���fDH;��s
�y
�}���;��������H���1��
H�����fDH�CxH�CxH��u:H�{�~���H�{h�VH��H�T$�t$����t$H�T$H���2�������ǃ�H�8���������� �TH�HH��H�����H�H�CpH����-���f�H;��sA�x
�����;���+������H���H�1��H���L�A�����H�CxH�CxH��u:H�{�}���H�{h�UH��H�T$�t$����t$H�T$H���1�������ǃ���������H��� uyL�@H��L�����L�H�CpH����>���H�HH�xH���H����O�����
�����H��H������H�HH�xH����������n���L�@H�HL���눋���S���H9��v
�yu�v�����H����������|���H;��s
�y
�M�����;���R������H���1���H���-���H�CxH�CxH��u:H�{�����H�{h��H��H�T$�t$����t$H�T$H�����������ǃ�H�8���������� uPH�HH��H�����H�H�CpH�����������H�HL���I���H���
H����_���H�HH�xH���뱋���y���I�HI�����H���H�CH�������H����H�������UH��AWAVI��AUM��ATM��S��H��h�u��U�dH�%(H�E�1�I��E�H�E�L���H�E�H�E�H�E�H�E�H�E�f�I���I9�tMI�QI���E�9A��
�K����D9���I�$D��L���
���M���I���I9�u�I�FxI�FxH��u(I�~��I�~h�p
L��踿��H���W
A������oAdž���A���A���H��� �.L�HH��M�����L�I�FpI��������D9}���D�M�I���A��A��#u	E���XA��\���y��$�E��*A�ǀ�����I�UH�E�H9�tsH�}��XM����E����DI;��sA�y
�<A���A�
A;�������A���I���H�1���f�����E��o���@M����I�$H����H��I�$�C���DL�HH�PM�������@A������@<
��D�����;E��u�\L���
���f.�I�UH�E�H9��H�}����L�xH�U�L���H�U�H�E�L�BL��L�E��HE�H��L�E�H�pH��-H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�D$L��H�H���H�E�I���:@I���H�A�H�E�H9���H�QI����<
��<\�B<u����E�����\L��A�u�������f�I9����������$@�ƃ�@��@�����{��A�#���fDH�HH�U�H��H�M��H�U�I��L�BL��L�E��H��H�M�L�E�I�I�wI��-L��I���L)�H���H9�tH��H��$�H9�u�%���H�D$H�H���H�E�I��L��1��L��L���}��������D���������I���H�P�I���I;���iH�E�I�EH�M�dH3%(D����H�e�[A\A]A^A_]�@I��A�
M����O���f.�D��L���Ÿ������d���A������@I���H9�s
�y
��D�}�A���A��A;����E����}�
�)I���I9��s
�z�
��E1�H9���L�IM����<
��<C���<c�(<x��H�u�L���ե��H�u�H���<�����M���Hc�I)�H��x�����@I�FxI�FxH��u6I�~����I�~hD��x�����
L���2���D��x���H����
A�������Adž���A���A���H��� �uH�HH��I�����H�I�FpI������@�E�������\L��蹒�����H��I���f��E�tA�
�z���H)�H�L��X���E���n����\L��A�
�e����K���A����=���A���I���1�H�D��x����E��t!�}�
�@I���I���H�J�����D��x���A�
E�����E��.D;}�������t	A9�������\L���Ǒ��I���L�H�M���M;���X����x�
�N����x�
�D���L�H�M����4���H�HH�PI�������M�H�u��L�������U����D���M�}H�E�M���I9����H�M�H�}�I���u�H�HL��p���H��H��x����M�GH�E�L��L�E��HE�H��L�E�H�pH��-L��p���H��H%�H)�H���H��H��x���H9�tH��H��$�H9�u�H��%�t	H)�H�L�H�D$H�L�M�H���H��I��H�E�1��L��L�����L�M�����@�x�
������x�
�����H��I����s���I���H�P�I���I;��v�x�
u�x�
uH��I����E��)H�U�1�L�����A������A�
����<M��D���\L��辏��D��L��賏��M����E����Q���M�}H�E�I9��@���H�M�H�}�I������H�HL��p���H��H��x����M�GH�E�L��L�E��HE�H��L�E�H�pH��-L��p���H��H%�H)�H���H��H��x���H9��g���H��H��$�H9�u��M���D<
�<��������PЀ�����I���H�U��H���H�E�H���I����pHc�H�H��x���I���H)�I��L������H��x���L��H���M������I���I�FA�����I������M;��s�y
uL�IM����{���A���A�
A;���B���A���I���H�1���!���I�FxI�FxH��uLI�~u+I�~htL��赴��H��u0I���I�FI���H�5L��A�������������A�����~UAdž���A���A���H��� uH�HH��I�����H�I�FpI����U���A������n���A����H�A�A�#I���I;���G����y�
�=����y�
�3���H��I����#���@H�HH�PI���낾\L���Œ������D�����������A�������M;���;I�QI���A�	H�Ѐ�
���-�5�L��L��x������L��x���A�Q�f�A��PI���I;���9H�JI����<
��D��A��\��I�������A���L���M;����I�QI���A�	H�Ѐ�
�m��-���L��L��x���A���<���L��x���A�Q�f�A��P�N���H��x���A�������L��A�����H��x����Q�f�����I;��s
�z
�2A���A�
A;���|D��L���$���M����l�����z�
����H�J�I�������I�FxI�FxH��u(I�~�1���I�~h�L��跱��H����A�������Adž�H���A���A����� ��H�PH��I�����H�I�FpI����1���I;��sA�y
�A���A;����M���M9���{����x�
�q����x�
�g���H��I����W���H�PH�HI����y���I�FxI�FxH��u(I�~�'���I�~h�L��議��H����A�������Adž���A���A���H��� �zL�HH��M�����L�I�FpI����n���I�FxI�FxH��u(I�~�����I�~h�oL������H���]A�����~A���Adž�H�A���A����� ��L�HH��M�����L�I�FpI����.���A�������A���I���H�1�D��x����D��x����U���I���I�FA�����I�����A���I���1�H��I���L�H����I�AI����L�HH�PM����E���H��A�
I�������L�HH�PM������A����H����E�����D9}�t,I������I���I�FI��������$<Y���H�=��Hc�H�>��fDAWA��AVI��AUATUSH��HdH�%(H�D$81��G0萇��A�GՃ��+1�A��0���$1�E1�L�-A�G҃�7��IcD�L�>��@���DD��I���I���H9��NH�OI���D�?H��A��
u�I;����A���A;���MI���I9������t(L�l$���1�L��H��L��L�����IcFTI�V`�E��������L���x���è�Hc<$E�fTI�n`H����H�A�H�wMc�I�T$�1�H��
�L��
H���H��H����<H�Ɖ�L���j���H�\$8dH3%(��H��H[]A\A]A^A_��I������!���GI���H9���H�JI����<
�[�؃�+���eD��L��A����Q�����L���G����CՃ�E��7���@D��L��1��#����!���fD���{����$I���	���I9����H�BI����*@��
�)����$���sA�FT�.L��A���$评����L��1�裄�����fDI�FxI�FxH��u(I�~���I�~h�ZL���Y���H���AA������(Adž���A���A���H��� ��H�xH��I�����H�I�FpI�������f��
�5���H�WH��I���I9���B����z�
�8����z�
�.����Lf�I�FxI�FxH���I�~u/I�~htL��腪��H����I���I�FI���IcFTI�V`�f��L�����I�~`1Ҿ
�����L��H���$����U����A�������@I;��s
�z
�VA����
�
A;���W������D��L��A����Ă����L��1�踂�����I;��s
�z
�A����
A;�������A���I���H�1�����I�FxI�FxH��u(I�~�P
I�~h�6
L���!���H���$
A�����~A���Adž�H�A���A����� �.H�PH�HI���H�I�FpI�������@I�FxI�FxH��u(I�~�I�~h��	L��艨��H����	A�������Adž�H���A���A����� ��H�PH��I�����H�I�FpI������f�H�xH�PI�������@D��L���
���I���I���H9��6���H�AI���D�	H��E��A��
�����I;��s
�y
��A���A;���w	�$I���E1�1�I���H9������z�
�����z�
����1�H��I�������fDA���I���H�1��I���H�z����@I�~`1���$��$�8"H����H�0fH~�H9�t0fH~�H��<�������H���;H�������;H������@A�nTI���I;����H�QI���D�	A��
�D�ȃ��<X�)I;����I���H�PI���D� A��
��D�����t1�A��_�
����I���H�B�I���I;��v
�z�
��IcFTI�V`�A9nT�����
�L�����I�~`1Ҿ���z���H�PH��I���������f�A�������@A���I���H�1��L$��L$����I;�����y
��H��A�
I����A�Gȃ���
D����߃�Et
A��.�K�0L��1��}������f.�I�FxI�FxH��uI�~��I�~htL��赤��H��u_I���I�FA��I����p���A���A�
A;���V���A���I���H�1���5���DA�������Adž���A���A���H��� ��H�HH��I�����H�I�FpI����k�������������I���I���H�Q�I���H9�v
�y�
�$H���$���H�PH�HI����g���@A�������Adž���A���A���H��� ��H�HH�PI���H�I�FpI����X���fD<B�I;���		H�JI����2H��@��
���N�1ۃ���I���I9��s
�x�
��IcFTI�V`�A9nT�����l	1��$E1��,����H���;H��H��H�������H�HH��I������(���f�I�N`A���H�1�I�����E�$�E������_���FЃ�wxL��1��-{��I���I;����H�JI����2H��@��
u�I;��s
�z
��A���A;������A���I���H�1��I���H�P����H���
�
I������H���
I������A����.���I;��s
�x
��
A���A;��~A���I���H�1��A�
���E��D����߃�D�A��_tV��OuDI;����H�BI���D�
A��
��
E��A��_��D�������A�GЃ������1�A��_�A�GЃ�	�uA��7�ZD��L��1��y��I���I;���{H�JI���D�:A��
u�I;��s
�z
��A���A;����	IcFT9���	I���H�J�I���I;��v
�z�
��I�V`����(����L�����I�~`1Ҿ�����I�FxI�FxH��u(I�~��
I�~h��
L��蜟��H���r
A�����~A���Adž�H�A���A����� ��H�PH��I�����I���H�I�FpI�������H�QE1�H��1�I����$���I���I�FI����j�I�FI���H�J�I���1��$�?���I���I����������I�F���fDA����������I���IcFTI���H�J�9��KI���H9�������z�
������z�
�����H��1��$E1�I�����fDA���1�E1�1�I���H��I���I����$H�J��]���I;����I���H�PI���D� A��
��D�����t1�A��_�0���"
I���H�P�I���I;��v
�x�
�	IcFTI�V`�A9nTta���������H�HH�PI����<���H�J�I������A������I���H�z��{�I���I�FI���H�5L��胅��1��"�I�FxI�FxH��u(I�~�$I�~h�L��轜��H����
A�������Adž�H���A���A����� �DH�PH��I�����H�I�FpI��������������_�'���I���I���H�Q�I���H9�v
�y�
�^H��1���H��A�
I���D���������D��L��1���t��I���I;����H�JI���D�"A��
�����I;��s�z
t�A���A�
A;��~�A���I���H�1���p���I;��s
�z
�aA���A;���1��H���I�FxI�FxH��u(I�~�F���I�~h�1	L������H���	A�������Adž�H���A���A����� ��H�PH��I�����H�I�FpI������I���H�B�I���I;�����z�
����z�
�����@H�B�I���I;���0����z�
�&����z�
����H��I�������@1�H�5L��诂�����I�FxI�FxH��u I�~��I�~htuL�����H��tgA������sAdž�H���A���A����� ��H�PH��I�����H�I�FpI����i����_����I���I�FI���IcFTI�V`�A;nT�T����L�����I�~`1Ҿ����H�PH�HI������I���H9�v
�z�
��I�V`1�E1���$�o�I;��s
�x
�rA���A;��~A���I���H�1��A�
���A�������H�PH�HI���I����C���H��A�
I���D���������D��L��1��eq��I���I;����H�JI���D�"A��
�|���I;��s�z
t�A���A�
A;��~�A���I���H�1���p���I�FxI�FxH��u(I�~�I�~h�^L��賗��H���LA�����~A���Adž�H�A���A����� ��H�PH��I�����I���H�I�FpI����h����z�
�M�H��I����=�I�FxI�FxH��u(I�~�!�I�~h�pL�����H���^A������=Adž�H���A���A����� �7H�PH��I�����H�I�FpI�������A���I���1�H��IcFT9��M�������I���I���H�J�����DH�PH�HI����u����_�G���H�PH�HI����w���A��������x�
� �H��I�����I;��s
�z
��A���A�
A;���
D����������A���t%I���H�P�I���I;��v
�x�
�EL�������L�����lw����A������I�FxI�FxH��u(I�~�=���I�~h����L���,���H���
���A������%Adž�H���A���A����� �|H�PH��I�����H�I�FpI�����������IcFTI�V`��E���b��M�H�PH�HI���I����+���H�PH�HI��������x�
���H��I�������I�FxI�FxH��u(I�~����I�~h��L���%���H����A������JAdž�H���A���A����� �
H�PH��I�����H�I�FpI����}����y�
�����H�Q�1�H����A�������IcFTH��I���9��c�����D�_����H�PH�HI������H��A�
I�����A���I���1�1�H��I���H�P���z�
�=H��I�����H�B1�H�����A�������H�BH�����H�PH�HI�����A������A���I���H�1�������y�
���H�Q�H��������������H��A�
I�����H��A�
I�������x�
�����H��I������A����I���I�FI���IcFTI�V`�A;nT�%�����I���I�FI������I�V`���I���I�FI���IcFT9������������I���I�FI�����I���I�FI������I���I�FI���IcFTI�V`�A;nT����*�z�
�(�����IcFT9�~A������������A��������-�ff.�@��ATA��UH��SH��H��H�|$H���~���H�|$D��H��H��H��[]A\�s�����U��SH��H��H�|$H���H�|$H����H��H��[]�ff.����ATI��Hc�UD��SH��H�|$H���L��H���H�|$H����H��H��[]A\���f���AUI��ATA��UH��H�5SH��(H�|$H�|$�H��H�Y���H���L�khHǃ�Hǃ�Hǃ��D��H��H�߉CH����H�T$H�T$H�T$H��([]A\A]�ff.�f���U��SH��H��H�|$H���H�|$H����H��H��[]�ff.����AVI��AUI��ATUH��S�����L��H��I����m�������L��H����H��H��tH��[]A\A]A^�����H���L��I�E�H��[]A\A]A^�fD��AVAUATUSH��H���H�5E1��H�kI��H�EH������h��H�=H���>�H�5I��H���L��1ҿ0�Ic�$��(H�H��H����H	�1�H���Ic�$�I��H�H��%�H	�H�I�H��tL��1��$�Ic�$�H�H����H	�H�H��tH��H��L���r���M����I�EL�kH��[]A\A]A^�DH�=I��H�mH�������G��H�=�H��H��a����H�=�H��H�����H�=��H��H����H�CH��[]A\A]A^���AWAVAUATUH��SH��H��� H�5A��A��E1��H�]I��H�H������h�E����H�=H�����L�=H�$M����H�=H�����H�5H��H���91ҿ0�Ic�$��#H�H��H����H	�1�H�L���Ic�$�H�5I��H�H��%�H	�I�H����H�$L����Ic�$�H�H����H	�H�H���NH��H��L���p���H��E����L�5M���H�=H����H�5I��H����L��1ҿ0�Ic�$��#H�H��H����H	�1�H�L���Ic�$�H�H����H	�H�H����H��H��L��辠��H��1�H��1���Ic�$�H�H����H	�H�M��t2I�EL�mH��H��[]A\A]A^A_�I��H�[E������H�E��f�H�=��H�=I��H�H�����H�=��H��H����D�H�=�H��H��-����H�=H�D$�H�L$H��H����fDH�=��H��H��_����H�=�I��H��/���H�=��H��H�����H�=�H��H�����H������H���]�������ff.���U�F�S1�H����
wc�F�H���t
�O�
�D��1��B��ƃ�2.Hc�H�H�vH�,�H�uD:uH��H�����HD�H��H��[]�ff.�@��S� ��H��H�@H�@H�@ H�@(H�@`H�@4H�@<H�@DH�@LH�@THǀ�Hǀ�Hǀ�H�����H���Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�HǃH��H��H�1�H���[�ff.���ATA��UH��H��SH������H���H���D��H��H��[H��]A\�y��f���ATA��USH��H��Hc��H��H���H���D��H��H��H��[]A\�x��ff.�@��ATA��UH��SH��H���D��H��H��H�D$H�|$H��[]A\�fD��H��H�5����H��H��?H��?���D��H��H�5�H���H���ff.����H��H�5����H��H��>H��?���D��SH��H�5�H�����������	ʈ��H��[����AT1�I��UH��1�SH��b�Ic�$�H��H��H��H�H��%�H	�H��I�$H�CH�k []A\����AUI��1�ATI��USH��1�H��H��b�Ic�$�H��I��H��H�L��H��%�H��H	�H�E�I�,$H�EH�] H��[]A\A]���AVI��AUI��ATI��UI��H��SH�H��t<H��t7H���f�H�[H��t'H9ku�L��H���H�{ H�CuH[]A\A]A^�f�1�1��b�Ic��L��H��H��H�H��%�H	�H��I�]H�CL�c []A\A]A^�fD��SH�H��H��t"H;pu�A�H9_tH��H�xH��u�H��[�DH�PH�GH��H��[�H��H����ff.�@��AWI��AVAUATUSH��H	dH�%(H��$8	1�H��$�HDŽ$��H�D$8H��$������
H��$�E1�H�D$�L��$p�D$0�D$����H�D$(H�$D�t$I��L��M��L�d$ I���D$H�L$H�,$fA�H�	H�T�I9���M��I)�I�I��H��'�l
H='�'L��HF�H��H�T$H�t�H��H���;
O�|-H��H��I��L��I���H�D$H�t$ L��H�,CH�H��H�$�H�D$(I9�tL��L���H�$N�t;�N�|-�L�l�A��$���M9��m�H�l$ H�$�D$�����H�-Lc�B�Dm�D$=�����A��$����|$��>D�D$E����1��D$���^HcD$=�+��H��B9���H�D�BE���NA�������A��E���fDH�H�L$�H�H�81��M9��a�H�l$ H�$A��$�����H��L$�H�H�81�������H�F�hE���kMc�H�B�(���D$�D$@�)�H�I��A��$��&
A��v��H�E��Jc�H�>��I�o�I�H��u颿@H�EH��tH��H�EH������t�H��L���l��H����H�H������t�@H��H�H������u	H�CH��u�H��L����k��H���X�H�EH��H������9����Ұ��?���ư1�H��7�Ic�$�H��H�H��H��%�H	�H�EI�W�H�H������9��H�R����H������w������iH��H�T$@L��$��H�T$@H�5���HDŽ$�H��$�H��$�HDŽ$�H�zH��DŽ$����$���1�1Ҿ�9�Ic�$�H�H��H����H	�H��=t��H��$�H��H��t$�(t��H����H��tH��H��L��蜔��H��1�1Ҿ�9�Ic�$��(H�H��H����H	�1�H���Ic�$�H��H�D$@H�H��H�D$H%�H	�H�=H��#�H�H�=H�D$H��H�5L�����H�L$@H�T$H�#H���Ic�$�H�H��H����H	�H��/s��H��$�H��H��t+H�D$@�s��H�T$@H���k�H��tH��L��臓��H��H�=�#�H�5L��H�T$@�R���H�T$@�H��H���Ic�$�H��I��H�H��%�H	�I��r��H�����L��H��L������H��H��H�B�,h�D$H�H��I)�I)�M��A��$�����o���A�6M�}I�]H�H��B���+wHc�H�5f;V�XH��B�D$I���d���HcD$�=awH���T$0�����|$0u�D$�������D$����L��H�M����Ic��DU=���t��=�+wH�H�
f�<A��L;,$�H�H��I��I���4PL���;o��E�uA��$�t�H�<$L����c���D���PI�\$H��$�HDŽ$�4I�D$H����H�H�KI��$�H������(�8H�C�L$@H��$�H�D$P��D$H�����L��H�L$��{��H�L$�‰ȃ��D$�[
9T$H�GL��T$�nT���D$@�T$t	��#�����t6I��$�H�P�I��$�I;�$�v�x�
u�x�
uH��I��$�H�D$P�T$HL�C L��t$@L��$�H������������[�H�3I�D$H��A��$��D$@��H����I�|$�I�D$A��$��D$BA�D$0��HcT$H�
��@�|$a~�\$���/���H�H�
�H�H�81��H���H�8�l��H��
H�0�����A��$�A�\$0L�t$@ADŽ$��D$X�D$PL�l$HL���z��A�ō@����H�=Hc�H�>��f��D$0�����D$0A��$��H��$�I��D�D$�D$����I��y���f�H�F�hE���������|$��\����L$0��������\$H��$�H��$�L���H��H�t$H�D$0�r���…��sH�5���mL��T$�/a���T$���;���M��M��H�5L����a���H���H�=H�����H�
D�AE��� ���H��$�M��I�oI�GA��$��p�I��D�D$�D$0�S���@M���|$�t2HcD$=a�H���D$�t$L��H�=�k��A�����L�%H�L�4$L;,$t�I�EL��H��I��A�4D��j��M9�u�H�|$(H9<$tH�4$L���H��$�H;t$8tL���H��$8	dH3%(�����H��H	[]A\A]A^A_�f�L�=H�
H�1��I�?�I�?����i��I�7�
�A��$�����H�<$L���^�����DH�-A�I�H��F�hH�1�D�L$HH�}��D$@D�L$H�������L�d$XE1�L�t$@A��H�\$PD��@D�cH�}�1�H�D���H�H�
H�}B�h�D��H��4A��h��H�u�
�E9�u�L�t$@D�L$HH�\$PL�d$X�	����H�<$L����]��������D$���H���H�=H����H���H�=H���}�H��P�D$���@H��$�L����]������H�-H�
H�1��D�D$H�}�H�}����g��H�u�
�D�D$���H�����I�\$H�K��@t7A�D$0�	�E�A�D$ �9�I��$�I��$�H9�s	�8:��H�߻p��D$\A��$�I�D$A�D$0���?���L���H�=�g���D$�������H�H��$��� �?H��H�Q��H��H�D$@H�BL��H�D$H��D$X�� ���D$P�t���Ã����I��$�H�GI9�$�����D$X�M�I��$�L�t$X1�L�t$HL�|$`D�|$PH�D$L�l$P�7H��M��$�I9�vA�E�<
��<
uI��f�L��H)�H���!H��H��H���I��$�I9��#I�D$xI��$�I�D$xH��u*I�|$���I�|$h��L���s��H���3�A��$����jADŽ$�A��$�H���A��$��� �)H�HH��I��$���H�I�D$pH�AI��$�I��$��9
��H�L$@H�t$E��L��I��$���i�����	�I�|$pH� �����H����f�I��$��I��$�H��I9������H�5H���I��$����fDH9�v
�y
�y�A;�$��R���A��$�I��$�H�1���/���I�E�H9��;���A�}�
�0���I���"���H�HH�PI��$�����A��$����L�t$XL�|$`L�l$PI�D$I��$�H��tH���H���A��$�L�D$H1�H�
I��$�A��$�I��$��I�t$L����G��A��$�����H�AH�QH��H�D$@������T$X��T$X�������H�\$@L���@q���������u��H�\$9T$H�������ҁI��$�H�P�I��$�I;�$����x�
��A��$����D$ ������H��$�H;t$8tL���H��$�L���H��$�H����H�t$H�|$0L����Bi��H��$����8���H�{ ���D�T$E������D$@���I�D$L��H�D$P�H��H��$��D$HH�D$XH��$��D$@H�D$`L���p��������������o���L$��H�D$8L��M��M��H�5HDŽ$��H��$��W�����M��$�I��$�L��H)�H���ӅL���{E�������I��$�I��$�A�\$0�Át	���<�����%=���E�D$LE������L�t$@L�l$HA��$���ADŽ$�A�D$0���D$
�O�A�\$0�D$P���A��$�L�t$@L�l$H���K�L����E���D$���҄�#L���2G��L���n�����	�A�D$0L�t$@D�l$L��L�l$H�A�ԁ%=�ā�ln��A����=����L$PA�D$0���0t���S���t
A��s���%�������A�D$0A���t(I��$�H�P�I��$�I;�$�v
�x�
�����u�����A��$�������L��D�l$L�t$@L�l$H�m��A��A�D$0���‚A�D$0A��@�ؔA����B�I��$�H�P�I��$�I;�$�v
�x�
�@�A��$��}����A�D$0L�t$@D�l$L�l$H�A���%=���L���m������=�
����t(I��$�H�P�I��$�I;�$�v
�x�
���T$PA�D$0���0t���&�%���������A�D$0u���,�A��$�������D��L�t$@L�l$HL���r����D$A��$������L��D�l$L�t$@A�D$0L�l$H�=l����.�D����t8I��$�H�J�I��$�I;�$�v
�z�
�6��������A��$���A�D$0���'�L��D�l$L�t$@L�l$H�k������:�{�A�D$0�
����D$@��L$@�������"����'���1ɺ'��)�Ic�$�H�H����H	�H�I�D$A��$��eA�D$0��D$Q���r�D�l$L�t$@��A��$�L�l$HA�D$0ADŽ$����8�A�D$0L��D�l$L�t$@L�l$H�D$H��j����<�D$@A�D$0�X����n�A�D$0�|$@=�_��|$@<���|$@����I��$�H�P�I��$�I;�$�v
�x�
���A��$��x����I��$�I��$�H�SH9����H�=H����€������x�����I��$�H�I��$�L����i�������}I��$���=u�M��$��H��L�������u�I�@H9�tA�x�I��$���t�I��$�A�\$0�R�A�D$0L��D�l$L�t$@L�l$H%�������A�D$0�Bi����=�ڟ��>�m�����N�I��$�H�P�I��$�I;�$�v
�x�
���A��$��w���8�L��L�t$@L�l$H��h��L����A���@L���@A����@��������~�Ӊ׉T$@����k~�D$6�T$@������*�I�|$��I��$�I��$��
�z�H��PX��uI��$��@���x<_����L���������A�D$0I��$�Ict$TI�|$`�I�T$H�HcD$H��A��$����*�A�D$0L�t$@D�l$A�D$4L�l$H�����A�i}�����U}���0t$%D$P��ۃ�)��^���JDD$�D$A��$�I�d$ A�D$0I�d$(����I�D$ D��D�l$L�t$@L�l$HH�ƒ�A�l$4H��H	�I�D$ I�D$(H�ƒ�H��H	�I�D$(A��$�����)���A�D$0���&�L��D�l$L�t$@L�l$H�f������*�ƞ��=������t(I��$�H�P�I��$�I;�$�v
�x�
�M��t$PA�D$0���0t	@�����A�M~�����9~��u	@�����~%�������A�D$0A��$����Y�L��D�l$L�t$@L�l$H��e��A��A�D$0����}A�D$0A��@���A�����I��$�H�P�I��$�I;�$�v
�x�
���A��$��|�����D�l$L�t$@��A��$�L�l$HA�D$0����A�D$0L�t$@L�l$H�t
�T$X�@��t1��0@��H��1ɺ'�)�f�Ic�$��D$RH�H����H	�H�I�D$A��$����(�A�D$0L�t$@D�l$L�l$H�A��x������x�0tD�T$PE���c���A��$�A�D$4I�d$ I�d$(��A�D$0��L��D�l$L�t$@L�l$H�Nd������&�����=������t(I��$�H�P�I��$�I;�$�v
�x�
�ō�t$PA�D$0���0t	@������A��{������{��u	@�����{%�������A�D$0A��$������I�D$(A�t$8D�l$L�t$@L�l$HH�I�D$ A�D$DH�A��$�����tA;t$4��A�t$0I�L$ I�T$(����z@��:�6���� �A�D$0�_�D$K�W�L���c����
����D�l$L�t$@L�l$H���I��$�H�P�I��$�I;�$�v
�x�
���A��$��������I��$�L�t$@D�l$L�l$HH�GI9�$���L���*;��A�D$0L�l$@M��A�܋\$�D$H�۸��L��DH��_�������yL���,b��I�}��u4I���I����
�z�H��PX��u�I����@���x�<_t��\$�D$D��M��L�l$@��!�؄��?�τ�|$�t(I��$�H�P�I��$�I;�$�v
�x�
���IcD$TI�T$`�A�D$T��~��I�T$`H��<!��<?��A�D$0�t>L���Va����=������t(I��$�H�P�I��$�I;�$�v
�x�
���I�D$`�8������7�D$E�\$0A��t
D�L$XE��tA��0tI��$�I��$�H9�s	�8:��E�T$TM�L$`����A��q�{��|$X���� A�D$0I��$�Ic�L���H��I�D$H��D$H�u�|$3���HcD$H��A��$�����A�D$0L�t$@D�l$L�l$H������� �A��$��L$X�����T�A�D$0 ���9�L��D�l$L�t$@L�l$H��_��A�D$0��]wA�D$0��@����=�����~�������_�I��$�H�P�I��$�I;�$�v
�x�
���A��$�������L��D�l$L�t$@A�D$0L�l$H�7��I��$�I;�$���|H�yI��$����
��{�‰D$@�B�<]��{H�
��Hc�H�>��D�l$L�t$@L�l$HA�D$0�LxL����^���Ã���D�I��$��	��H��PX����L���R7��I��$�I��$�H��$��z����H�¾
��PX������_����\���I��$�I;�$�s���u�������H��$�1�L��H���n���L����6��I�T$`IcD$T1��Ict$TI�|$`M��$�H��$��U7��1�1ҿ:H��I�\$�Ic�$��D$?H�H����H	�H�H��@A��$�A�D$0�����I�D$ D��L�t$@A�D$0L�l$HH�ƒ�H��H	�I�D$ I�D$(H�ƒ�H��H	�A�T$DI�D$(�B�A�D$DA��$�����ۃ��Æ�ҺZE׉T$�M�D�l$L�t$@L�l$HA�D$0��7{A��$���A�D$0����L��D�l$L�t$@L�l$H�\����|����=���A�T$0����ҁ����A�T$0������I��$�H�P�I��$�I;�$�v
�x�
���A��$��y����A�D$0L�t$@L�l$H�t
�|$X�B��t��0��H�H��H��B1ɺ"�)�f�Ic�$��D$RH�H����H	�H�I�D$A��$�����L��D�l$L�t$@L�l$H�[����=�Z�A�T$0����҃���A�T$0���� �I��$�H�P�I��$�I;�$�v
�x�
�h�A��$��z���}�I�|$I��$�uCI��$��
�z�H��PX���)�I��$��@�����<_�
�I��$�A��$�H��A��$�1�I��$�E��H�
�A�\$0���D$0�����>���������������������<��������������������������{���~�q���!�g���N�]�����S���%�I���/�?���*�5���*�+���-�!���+������
�������I;�$����I��$�H�PI��$���\$@��
��I�|$�rI��$�I��$��
�z�H��PX��uI��$��@���x<_�7�$L���1���_L���1���t$@L��������R�A��$����{���$L���v1���\$�\$@�������|���L���S1��I��$�I;�$��mwH�BI��$����
u�I;�$�s
�z
�F�A��$��
A;�$�~�A��$�I��$�H�1���o����D$@0�$L����0�������$L���0���-L���0��I��$�I;�$��*�H�BI��$����
���I�|$�N�I��$�I��$��
�z�H��PX��uI��$��@�<_t������L���T���������I��$�Ict$TI�|$`I�\$��D$5H��6A��$��������u1�1��5I�\$�Ic�$��D$AH�H����H	�H�H��BA��$����Z��I��$�H�P�I��$�I;�$�v
�x�
����D$@_L��$�N/���t$@L���B/������A��$�H�����H!�H	�����I�w�I����#�H�H��IcG���H��H	�H����A��$�H�����H!�H	����I�I�w�1ɿ#�Ic�$�H�H��H����H	�H��`��I�71ɺ�(�Ic�$�H�H��H����H	�H��)��1��"��I����I�1�1��K�Ic�$�H�H��H����H	�H�����I�G�I�I�D$(����I�\$(H�DI�D$(���I�w�H���̈L���dl��I�w�L��H���o��I�H��tH�BH��H�����I�w�1�H��tL���+l��1ɺH�ƿ(�Ic�$�H�H����H	�H�I�H��tH�BH��H���-��I�I�_�H�����H�XH�����I�7H��u�"�H�FH��tH��H�H������t�I�7L���?��I�71ɺ�(�Ic�$�H�H��H����H	�H����I�G�H��t:H��L���Gk��1ɺ�(H���Ic�$�H�H����H	�H�H���X��I�w�H���N�L���j��I�w�L��H���m��H���,��I�_��#��I�G�H��t:H��L����j��1ɺ�(H���Ic�$�H�H����H	�H�H������I�w�H���ׂL���{j��I�w�L��H���m��H�����I�_����I�_����I�7H��u�#�H�FH��tH��H�H������t�I�7L���*>��I�H���V��1�1�1��\�Ic�$�H�H��H����H	�H��#��I����I�W�I�w�#I��H�H��IcG���H��H	�H�����A��$�H�����H!�H	�����I�W�I�w�#I��H�H��IcG���H��H	�H����A��$�H�����H!�H	��y��I�_�I�H�C �i��I�w�I�L���H��I�O�I�W�#I�w�I��Ic�$�I�w�H�H����H	�H�H�C I�H�����H�����H����D�����I�w�I�L���$H��I�O�I�W�#I�w�I��Ic�$�I�w�H�H����H	�H�H�C I�H������H������H���jD�����I�W�I��#I�w��Ic�$�H�H��H����H	�H��U��I�W�H�H������-�p�H�r I�L���gG��I�I�w�H�s H�����H����C���
��I�_�I�o�I��$��PL��1�H��H��H���Ic�$�1��H�H����H	�H��H�1��I�w�L��H�H��IcG��H��H	�H��~[�����I�_����I����I�_��w��A�G�I�_�I��$�I�/A�D$8I�G�H�ƒ�H��H	�I�D$(�K��H��H��1�H���Ic�$�1��iH�H����H	�H��H�1��I�w�L��H�H��IcG��H��H	�H���Z������I��$��S��A��$�I�H�����H!�H	����I�_����I�\$(I�D$(���A��$�H�����H!�H	��x��H�����A�T$8H!�A�D$4H	Ӄ�A�D$4A�D$8�L��I��$��gS��H���7��1��0��I�/H���$��H���v
@���w�A��$�H���I��$�A��$�H�
I��$�I��1������1�����1�����IDŽ$�I�_����1����IDŽ$�1����ADŽ$����I�A��$�H�C H�H�@H�@H�@H�@ H�@@A��$��9��I�O�M�1�1�M�G�I��$��uZ��H�����I�I�O�A��$�H�C H�H�@H�@H�@H�H H�@@A��$�����I�W�M�1�1�M�G�I��$��Z��H�����I�I�O�A��$�H�C H�H�@H�@H�@H�@ H�H@A��$��[��I�O�I�W�1�I��$�M�M�G��Y��H���5��I�I�w�I�O�A��$�H�C H�H�@H�@H�@H�p H�H@A��$�����I�w�M�E1�1�I��$�1��'Y��H������I�O�I�w�1�I��$�M�M�G��Y��H�����1�1�1�L���Q��I�w�E1�1�I��I��$����X��H���m��I�O�I�w�E1�1�M�I��$��X��H���H��I�W�I�w�1�I��$�M�M�G��X��H���"��I�W�I�w�E1�1�M�I��$��]X��H�����I�O�I�W�I��$�I�w�M�M�G��5X��H������I�O�I�W�E1�I��$�I�w�M��X��H�����1�1�1�L���P��H�����I����I�1�1�L���P��H���y��I�W�I�1�L���P��H���`��I�w�I�1�L���gP��H���G��I�W�I�w�L��I��LP��H���,��I�1ɿEH������Ic�$�1��H�H����H	�H��H�1��Ic�$�H�H��H����H	�H�����H�����1�1���Ic�$�H�H��H����H	�H����I�w�1�L���\��I�1ɿEH���Ic�$�1��H�H����H	�H��H�1��Ic�$�H�H��H����H	�H�� ��I�71�L���;\��1�1��H���Ic�$�H�H��H����H	�H�����I�1ɿEH������I�w�Ic�$�H�H����H	�H��H�1��Ic�$�H�H��H����H	�H��x��I�w�H�����1ҿ�Ic�$�H�H��H����H	�H��>��I�w�1�L���X[��I�1ɿEH���I�wؿIc�$�H�H����H	�H��H�1��Ic�$�H�H��H����H	�H�����I�71�L����Z��I�w�1ҿH���Ic�$�H�H��H����H	�H����I�71�1ҿ�Ic�$�H�H��H����H	�H��V��I�w�I�L���a��H���?��I�71ɺ�(�Ic�$�H�H��H����H	�H����I�_����I�71�L���Z��H������I�����I��I�I�o�H������A<��H�����H��L���g��H��H��H�ƿ�Ic�$�I�w�H�H��H����H	�H�H���v��H���F:���i���H������W��I��$H���F��H�EI��$�H�M��$�I��$H��L��L�D$XH�L$P�6>��;EtZE��$�D�ME9�D�L$HD�T$@t?L�D$XH�L$PH�L��H���Z>����u�}uA��$�D�T$@D�L$H�E�H������I�_�I�H�C���I�7H��u�H�FH��tH��H�H������t�I�7L���*1��I�w�I�L���`��H���K��I�G�L��H�0H�P��;��1�1�1���Ic�$�H�H��H����H	�H����I�7H��u�H�FH��tH��H�H������t�I�7L���0��I�O�I�W�L��I�w�M��8��H�����I�W�I�w�1ɿT�Ic�$�L��H�H��H����H	�I�H�I�W��*9��H���j���#�`���"�V��� �L���!�B��I�/H�EH����t�����ƒ����,�H����<���H��4����0���V����ӄH�
Hc�H�>��A�D$0I�w�L����*��H�����A�D$0I����I�71�1ҿ3�Ic�$�H�H��H����H	�H��z��I�71�1ҿ1�Ic�$�H�H��H����H	�H��F��I�?�I�71ҿ0H���Ic�$�H�H��H����H	�H��	��I�G�I�D$ I�G�I�D$(I�G�I�D$A�G�A�D$0A�G�A�D$DI�G�H��t$H���H�H������>�H��:H��r,1�H��1��>�Ic�$�H�H����H	�H�H���{��I�w�I���L���/��H���_��I�w�I���L���/��H���C��I�w�I��<L���g/��H���'��I�w�I���L���K/��H�����I�w�I��>L���//��H������I�w�I���L���/��H������I�w�I��&L���.��H�����I�w�I��^L����.��H�����I�w�I��|L���.��H�����I�7��L���'1��H���g��I�7��L���1��H���O��I�w�I���L���s.��1ɺ��#H���Ic�$�H�H��H����H	�H����I�w�I���L���(.��H������I�w�I��%L���.��H������I�w�I��/L����-��H�����I�w�I��*L����-��H�����I�w�I��-L���-��H���x��I�w�I��+L���-��H���\��I�w�H��u�$f�H�FH��tH��H�H������t�I�w�L����+��I�7H��u�"�H�FH��tH��H�H������t�I�7L���+��I�I�w�1ɿX�Ic�$�H�H��H����H	�H�I�W�H������H�H������9�����B����I�H������H�H������9�p���B�f��I��$�H��L���Y��I��$��F��fDI�w�H��u� DH�FH��tH��H�H������t�I�w�L����*��I�7H��u�"�H�FH��tH��H�H������t�I�7L���*��I�I�w�1ɿW�Ic�$�H�H��H����H	�H�I�W�H�������H�H������9������B�w���I�H���k���H�H������9�X����B�N���I��$�H��L���X��I��$��.���fDI�G�L��H�0H�P��4��1�1�1���Ic�$�H�H��H����H	�H����I�W�I�w�1ɿT�Ic�$�L��H�H��H����H	�I�H�I�W��Y2��H�����I�7H��u�"�H�FH��tH��H�H������t�I�7L���*)��I�O�I�W�L��I�w�M��C1��H���C���I�W�1�1��U�Ic�$�L��H�H��H����H	�I�H�I�W��1��H�����I�7H��u�%f.�H�FH��tH��H�H������t�I�7L���(��I�O�I�W�L��I�w�M��0��H��飿��I�7H��u��H�FH��tH��H�H������t�I�7L���:(��I�O�I�W�L��I�w�M��S0��H���S���I�7H��u��H�FH��tH��H�H������t�I�7L����'��I�W�I�w�L��I��M��H������I�7H��u� DH�FH��tH��H�H������t�I�7L���'��I�w�H����H�I�H������K�›L���o��I�W�H����
�H���u
I�G��I�w�H����Ic�$�I�w�H�H��H����H	�H�H���C���H���/���6���I�7H��u�@H�FH��tH��H�H������t�I�7L����&��I�w�I�L���[V��H�����I�w�H��u�#�H�FH��tH��H�H������t�I�w�L���y&��I�1�1���I�w�Ic�$�H�H����H	�H��H�1��Ic�$�I�w�L��H�H����H	�H��H�I�W�I�G���K��H���8���I�w�H��u� DH�FH��tH��H�H������t�I�w�L����%��I�1�1���I�w�Ic�$�H�H����H	�H��H�1��Ic�$�I�w�L��H�H����H	�H��H�I�G��T��H��錼���`邼��I�w�I���L���&��H���f���I�w�I���L���&��H���J���I�7�~L����(��H���2���I�7H��tL���
Z��H�ƺ!L����(��H���
���I�w�I���L���.&��H�����I�w�I���L���&��H���һ��I�w�I���L���%��H��鶻��A�D$PI�H��u�h�H�@H����hH�H������t�1�1�H�ƿ`�Ic�$�H�H��H����H	�H��H���A�D$P�:���I�W�I��L���&��H������I�W�I��L���&��H������I�w�H��u�"�H�FH��tH��H�H������t�I�w�L���#��I�w�I�I�o�H��tL���X��H��H��H���Ic�$�I�w�H�H��H����H	�H�H���r���H���B+���e���I�w�I�1ɿE�Ic�$�1��H�H����H	�H��H�1��Ic�$�H�H��H����H	�H�����I�?�1�1ҿ9H���Ic�$�H�H��H����H	�H��ǹ��A�D$0I�鶹��A�D$0I�饹��I�I�w�1ɿT�Ic�$�H�H��H����H	�H��o���H��1�1��T�Ic�$�H�H��H����H	�H��;���I�1�1��U�Ic�$�H�H��H����H	�H�����H�5L�������I�L��H�0H�P�,��1�1�1���Ic�$�H�H��H����H	�H�鮸��E�\$@E��u
E�T$<E��tH�5L���C��I�1�1��U�Ic�$�1��H�H����H	�H��H�1��Ic�$�H�H��H����H	�H��+���I�w�I�L�����H������I�O�I�w躑�g�Ic�$�H�H��H����H	�H��ڷ��I�71�L���G��H��H�������1�1�1���Ic�$�H�H��H����H	�H�鎷��I�71�L���G��H��H���u���1�1�1���Ic�$�H�H��H����H	�H��B���I�w�I�L�����H���+���A�l$@��u	A�\$<��tH�5L������I�w�I�1ɿT�Ic�$�1��H�H����H	�H��H�1��Ic�$�H�H��H����H	�H�騶��I�w�I�L�����H��鑶��I�L��H�0H�P�7*��1�1�1���Ic�$�H�H��H����H	�H��L���A�D$@��u	A�D$<��tH�5L������I�1�1��U�Ic�$�1��H�H����H	�H��H�1��Ic�$�H�H��H����H	�H��˵��A�D$@��u	A�D$<��tH�5L���b��I�w�I�1ɿT�Ic�$�1��H�H����H	�H��H�1��Ic�$�H�H��H����H	�H��H���I�w�I�L�����H���1���I�w�I�L�����H������I�w�I�L�����H������I�O�I�w躑�g�Ic�$�H�H��H����H	�H��ɴ��I�71�L����D��H��鴴��I�71�L����D��H��韴��I�w�I�L���XK��H��鈴��I�71ɺ�(�Ic�$�H�H��H����H	�H��Q���I�W�I�w�L���	K��H���9���I�w�1ɺ�(�Ic�$�H�H��H����H	�H�����I�_����I�1ɿEH������Ic�$�1��H�H����H	�H��H�1��Ic�$�H�H��H����H	�H�铳��H�����1�1���Ic�$�H�H��H����H	�H��[���I��S���H�5L�����1�1�1���Ic�$�H�H��H����H	�H�����Ƅ$�$I��H�@��$�H��$�H���I�w�1ɿOH���Ic�$�H�H��H����H	�H�鰲��I�I�w�1ɿO�Ic�$�H�H��H����H	�H��z���I�I�w�1ɿN�Ic�$�H�H��H����H	�H��D���A�D$0��6���I�W�I��$�H��tH�����H��L���E��I��$�1�1�1���Ic�$�H�H��H����H	�H��ֱ�����̱�����±����鸱���&鮱���^餱���|隱��I�1�1��P�Ic�$�I�w�H�H����H	�H�H��tH��L���bD��H���R���A�D$0��D���I�1�1��P�Ic�$�H�H��H����H	�H�����I�7H��u�!fDH�FH��tH��H�H������t�I�7L�����I�W�I�w�L��I��o?��H��鿰��I�7H��u� DH�FH��tH��H�H������t�I�7L���R��I�_�I�H�C�z���I�7H��u�#�H�FH��tH��H�H������t�I�7L���
��I�O�I�W�L��I�w�M��#!��H���#���I�_�I�7H��tH�H���������H��tL����M��H��H�ڹ��Ic�$�H�H��H����H	�H�鿯��I�7H��u� DH�FH��tH��H�H������t�I�7L���R��I�O�I�W�L��I�w�M��k ��H���k���I�7H��u�$f�H�FH��tH��H�H������t�I�7L�����I�G�H���TnI�H��L������I�W�H����&nH���u
I�G��I�w�H����Ic�$�I�w�H�H��H����H	�H�H�������H�����馮��A�D$@��u	A�D$<��tA��$�I��$�H�1��I�W�1�1�1��Ic�$�1��aH�H����H	�H��H�1��Ic�$�H�H��H����H	�H�����I�_�H��u� DH�CH��tH��H�H������t�I�7H��tL����K��H��H��1ҿ�Ic�$�I�7H�H��H����H	�H�H�������H���p��铭��I�_�H��u�H�CH��tH��H�H������t�I�7H��tL���EK��H��H��1ɿ�Ic�$�I�7H�H��H����H	�H�H��� ���H����������I�_�I�7H��tH�H��������H��tL����J��H��H�ڹ��Ic�$�H�H��H����H	�H�鯬��I�H��u� DH�BH��tH��H�H������t�1�1���Ic�$�I�w�H�H����H	�H�H��t6H�H������t�%f.�H��H�H������u	H�VH��u�1�H�¿�Ic�$�H�H��H����H	�H����I�w�I�_�I�o�H��tL���I��H��H��H���Ic�$�I�w�H�H��H����H	�H�H�������H���c��醫��I�W�I�w�#I��Ic�$�I�w�H�H��H����H	�H�H���E���H������8���I�w�I�L���a��I�O�I�W�#I�w�I��Ic�$�I�w�H�H����H	�H�H�C I�H�����H���ת��H������ʪ��I�W�I�w�#I��Ic�$�I�w�H�H��H����H	�H�H�������H���Y���|���I�w�I�L�����I�w�I�G�I�H�F H�s H���P���H��� ���C���I�_�I�H�C �3���I�1�1��$�H�H��IcD$\��H��H	�H�����I�_�I�o�I��$��E#��1�H��H��H���Ic�$�1��H�H����H	�H��H�1��I�w�L��H�H��IcG��H��H	�H��s2��醩��I�D$ H�DI�D$ �r���I�W�1�1���Ic�$�H�H��H����H	�H��=���I�W�I�w�1ɿ�Ic�$�I�w�H�H��H����H	�H�H�������H��������I�w�I�_�H��tL����F��H��H�ڹ��Ic�$�I�w�H�H��H����H	�H�H�������H���j��鍨��I�l$ 部��I�D$ H�DI�D$ �o���I�w�I�_�H��tL���BF��H��H�ڹ��Ic�$�I�w�H�H��H����H	�H�H������H����������I�l$ ����I�D$ H�DI�D$ ���I�w�1ɺ�(�Ic�$��H�H��H����H	�1�H�1��Ic�$�H�H��H����H	�H�銧��I�_�遧��I�7L���J��1�1ҿH���Ic�$�H�H��H����H	�H��B���I�7L���OJ��1�1ҿ
H���Ic�$�H�H��H����H	�H�����I�7L���J��1�1ҿ,H���Ic�$�H�H��H����H	�H��Ħ��I�7L������I�7H��H�������H�������H���p��铦��I�1�1��&�Ic�$�I�7H�H��H����H	�H�H���W���H���'���J���I�w�I�L���s��I�O�I�W�#I�w�I��Ic�$�I�w�H�H����H	�H�H�C I�H����H�����H������ܥ��I�w�I�1ɿE�I�w�Ic�$�H�H����H	�H��H�1��Ic�$�H�H��H����H	�H��x���I�I�w�1ҿ�Ic�$�H�H��H����H	�H��B���I�w�I�L���;��1�1ҿH���Ic�$�H�H��H����H	�H����I�71�1ҿ�Ic�$�H�H��H����H	�H��ˤ��I�1ɿEH������I�w�Ic�$�H�H����H	�H��H�1��Ic�$�H�H��H����H	�H��d���I�w�H�����1ҿ�Ic�$�H�H��H����H	�H��*���I�1�1���Ic�$�H�H��H����H	�H����I�I�w�1ɿT�Ic�$�H�H��H����H	�H����I�_�鷣��I�G�I�_�I�D$(饣��A�D$0闣��I�D$(I�I�D$(遣��1��z���A�D$0�l���I�G�I�W�I�D$(H����rH�
H��H��������uIcG��H��H	�H�1�1���Ic�$�H�H��H����H	�H�IcO��H��H	�H����I�D$(A��$�I�H�����I�D$(H!�H	�麢��I�1�1��$�Ic�$�H�H��H����H	�H�醢��I�71�1ҿH�Ic�$�H�H��H����H	�H��R���I�I�w�H�H������(u)H�H��H������HuH�^H�H������(�.uL������H������I�O�H�H��H������HuH�qH�H����I���(��SH��L���09��H�����I�I�w�H�H������(u)H�H��H������HuH�^H�H������(�AtL���A��H���q���I�O�H�H��H������HuH�qH�H����I���(��IH��L���8��H���.���I�71�1ҿH�Ic�$�H�H��H����H	�H����A�D$P���1�1�1��-�Ic�$�H�H��H����H	�H�鹠��1�1�1��-�Ic�$�H�H��H����H	�H�醠��I�w�L�����H���r���1�1�1��,�Ic�$�H�H��H����H	�H��?���I�w�L����4��H���+���I�_�H������1�1�1��)�Ic�$�H�H��H����H	�H����I�1�1��U�Ic�$�H�H��H����H	�H�鷟��I�I�G�H�C 駟��1�1�1��\�Ic�$�L��H�H��H����H	�H��Y=���!L��H�����H���Y���I�w�H��tL���0=��H�ƺ!L������H���0���A�D$PI�G�H��u�UG�H�@H���GGH�H������t�1�1�H�ƿ`�Ic�$�H�H��H����H	�H��Ȟ��I����I�G�I�L��H�p ����I�I�G�H�C 非��I�w�I�_�I�o�H��tL���l<��H��H��H���Ic�$�I�w�H�H��H����H	�H�H���E���H������8���I��I��1�1ҿ9H���Ic�$��(H�H��H����H	�1�H���Ic�$�L��H�H��H����H	�H�H���4��H��黝��I�o�H�EH��H������:��`1ɺH��(I��Ic�$�L��H�H��H����H	�H�H���(4��H���X���I�_�I�H����`H���?���H�{tH�z�7fH�K H��H��tH�AH�JHKH�P H�B H���p`H�PH�C H�P��I�I�O�A��$�H�C H�H�@H�@H�@H�H H�@@A��$�騜��I�G�H��u� DH�PH��tH��H�H������t�H��$�H��$�L��H���*���I�_�H��$�I��$����1�H��H��H���I�wȿMIc�$�H�H����H	�H��H�I�W��L��H�H��IcG���H��H	�H��o#��I�G�A�l$<I��$��Л��A�D$<1�L��A�D$0�?���I��$�IDŽ$�鞛��1�闛��I�_�鎛��1�1�1��)�Ic�$�H�H��H����H	�H��[���I�w�I�H��tH���TgH��L���S4��H���3���I�w�H�H������>�2gH��I�w�L����1��H������1����I�H��u��f�H�CH���ۚ��H��H�H������t��Ě��I�?H����c�+
��I�w�H����cH��tH��L���-��H��鎚��I�H��tH�����H���v���1�1�1���Ic�$�H�H��H����H	�H��C���I�w�L�����I��$����I�_��!���I�H���cA�L$H����AH�H������u�Z�H�BH��tH��H�H������t�I�I��$�I��$�����I�I��$H���<A�NA@H��H�B H��u�H�BH��u��H�HH��tH��H�H������t�H�BI��$�H��I��$��Y���A�|$H�A�D$0����wL�����'���I�W�I��#I�w��Ic�$�H�H��H����H	�H����I��$��
��A��$�I�H�����H!�H	��˜��I�7L���$��H��H�������1�1�1���Ic�$�H�H��H����H	�H��x����2�n����0�d����1�Z���I�7H��tL���26��H�ƺ!L������H���2���I�7H��tL���
6��H�ƺ!L������H���
���I�7H��u�#�H�FH��tH��H�H������t�I�7L�����I�H���Ɨ��1�1�1��\�Ic�$�H�H��H����H	�H�铗��I�鋗��I�w�I�L���'��H��t,1�H��1��D�Ic�$�H�H����H	�H�H���C���I�7H�����L��IDŽ$��M'��H��t,1�H��1��D�Ic�$�H�H����H	�H�H�����I�w�I�L��IDŽ$��&��H��t,1�H��1��D�Ic�$�H�H����H	�H�H��阖��I�L��H����3��I��$�H��H�:��I��$�I��g���I�I�o�H�P H��H�EH�E H��tH����tH��L���?)��H�E I�?��&���I��$��H�:H�����tHcGH��H�RH��H��tHcZH�H��H��H����I��$�H�@H������<DH�x�1DI�o�1�1�H�޿/�Ic�$�H�޿BH�H����H	�1�H��H�E�Ic�$�H�H��H����H	�H�I�G�H�C �K���I�71ɺ�BIDŽ$��Ic�$�H�H��H����H	�H�����I��$�I�H�8H����I��$�I����I�7L���/2��I��ϔ��H�5L��1��v���鹔��H�5L��1��`���飔��H�5L��1��J���鍔��I�酔��I�_�H���H��H�P H��u�I�H�P �d���I��\���I�w�I�L��IDŽ$��i$��1�1��CH���Ic�$�H�H��H����H	�H��
���I�w�I�L��IDŽ$��$��1�1��CH���Ic�$�H�H��H����H	�H�龓��I��$��H�8H�����tHc_H��H�PH��H��tHcBH�H��H��H���!��t���I�7L���/��I��a���I�_�H��H��u�P����H��H�P H��u�I�H�P �0���I�H���v	����@H�5L������I�H��L���&/��I��$�H��H�8��I����I��$��H�8H�����tHc_H��H�PH��H��tHcBH�H��H��H���F�陒��I�H���v��tH�5L���1���I�H��L���.��I��$�H��H�8��I��P���I�_�H���H��H�P H��u�I�H�P �/���1��(���I�� ���I�H�H������+�?H�CH��tH�x�?1���������I�W�I��L���Y���H���ɑ��I�W�I��L���=���H��魑��I�7H��u�H�FH��tH��H�H������t�I�7L���B���I�w�I�L����)��H���c���I�7H��u��H�FH��tH��H�H������t�I�7L�����I�w�I�L���)��H������I�w�I�1�L���"��H�������H�������A��$����H�5L���J���͐���H����������A��$������H�5L�����阐���H����������A��$��w���H�5L�������c���I�7H��u��H�FH��tH��H�H������t�I�7L�����I�H���&���1�1�1��\�Ic�$�H�H��H����H	�H���1�1�1��
�Ic�$�H�H��H����H	�H����A�D$0I�\$I�D$餏��I�_�I�/H���SNH�������H�H��H������:�kN��;tB1ɺ��;�Ic�$�L��H�H��H����H	�H�H���%��H��H��H��L����%��H������1�����I�w�I�H��tH���NH��L���	(��H�����1����I�w�I�H��tH���[H��L����'��H��麎��1�鳎��I�G�H�x�I�_�H���I�W�I�w�L��H�CH��䀀�9H��B%��H���r���1��k���I�W�I�w�L���#%��H���S���1��L���I�_��C���1�1�1��)�Ic�$�H�H��H����H	�H�����I�_�����1�1�1��)�Ic�$�H�H��H����H	�H��ԍ��I�_�H�H��H������>��YI�_��䀃�;�@?��fH�I�w�H��L���]$��H��鍍��H�����A�T$0A�D$0H!�H	��j���I�\$I�D$�W���H�����A�T$DA�D$DH!�H	��4���I�D$ I�\$(I�I�D$ I�D$(����I�G�I�1�1��>I�D$�Ic�$�H�H��H����H	�H��ӌ��I�H�H��H������HuH�ZH�H������(HE�餌��I�71ɺ�(�Ic�$�H�H��H����H	�H��m���I��t_1�1�1��_�Ic�$�I�w�L��H�H����H	�H��H��$��I�W�I�G�H��tH���"GH��L�����I�G�I�O�I�W��I�7�Ic�$�I�w�H�H��H����H	�H�H���XH�������H�����鰋��I�W�I��I�w��Ic�$�H�H��H����H	�H��x���A�I�_��D$@H���l`H�H��H������:�4`��;tt1�H�޺�(�Ic�$�1�1�H��H�H��%�H	�I��$�H��H�ٺ�;H���Ic�$�H��H�H��%�H	�H�H��L$@H�s��H�€�?��@��HE�H���H�CH��t
��L����H�k H����5L�t$HI��L�l$PI��H���E1�M�m M����5I�UH�H������:u�H�Z�T$@L��H�������l!M���c!I�vH���U!L9�tH�vH��L��������1�H���I�E I�}I�F �L��M����g���I�G�H���]VH�H��H������:�9V��;�"V1ɺH�ƿ(���=Ic�$�H�H����H	�H��H���Ic�$�H�H����H	�H�H���G���I�w�I�O���H��tH�H������[��D�#�Ic�$�H�H��H����H	�H�I�w�H�����H������߈��I�_��ֈ��1�1�1��)�Ic�$�H�H��H����H	�H�飈��I�H���cTH�H������>�@TH���|���I�?�1�1ҿ9H���Ic�$�H�H��H����H	�H��@���I��8���I��0���I�_��'���I�w�I�H��tH���|TH��L���!��H�����I�_�I�o�I��$��B��1�H��H��H���Ic�$�1��H�H����H	�H��H�1��I�w�L��H�H��IcG��H��H	�H��p��郇��I��$��	��A��$�I�H�����H!�H	��V���I�_�I�o�I��$����1�H��H��H���Ic�$�1��H�H����H	�H��H�1��I�w�L��H�H��IcG��H��H	�H������چ��I��$����A��$�I�H�����H!�H	�魆��H�5L��1��T�闆��1�1�1�L���	��A��$�H��H�@ H�H�@H�@H�@H�@ H�@@A��$��>���I�A��$�H�C H�H�@H�@H�@H�@ H�@@A��$���I�O�M�1�1�M�G�I��$��/��H���υ��1�1�1��'�Ic�$�H�H��H����H	�H�霅��I�1�1��&�Ic�$�H�H��H����H	�H��h���I�w�I����#�H�H��IcG���H��H	�H��3���I�W�I�w�1�I��$�M�M�G��m��H���
���I�W�I�w�E1�1�M�I��$��H��H�����I�O�I�W�I��$�I�w�M�M�G�� ��H�����I�O�I�W�E1�I��$�I�w�M����H��附��1�1�1�L�����H��郄��I��{���I�1�1�L�����H���d���I�W�I�1�L���k��H���K���I�I�w�I�O�A��$�H�C H�H�@H�@H�@H�p H�H@A��$�����I�w�M�E1�1�I��$�1��=��H���݃��I�O�I�w�1�I��$�M�M�G����H��鷃��I�O�I�w�E1�1�M�I��$���
��H��钃��I�I�O�A��$�H�C H�H�@H�@H�@H�@ H�H@A��$��G���I�O�I�W�1�I��$�M�M�G��
��H���!���I�W�M�1�1�M�G�I��$��]
��H�����1����I�71�L�����H�����I�71�L�����H���̂��I�7L�����H��H�������1�1�1���Ic�$�H�H��H����H	�H�邂��I��z���I�_�H��H��u	�i����H��H�P H��u�I�H�P �P���I��H���I�7H�����L���^��H��t,1�H��1��D�Ic�$�H�H����H	�H�H�����I�_�A�D$0ADŽ$��߁��1��D$0�Ё��I�_��ǁ��A�D$0ADŽ$�魁��A�G�I�_�A�D$0ADŽ$�A�D$L醁��H�����A�T$LA�L$0A�D$LH!�H	��Z���I�W�I�w�L��I��_��H���?���I�w�H����)H�H���Ѓ���@u/��H��(H��s ��UDH�FH��tH��H�H������t�I�w�L�����>)A�D$0�΀��I�7H��u�@H�FH��tH��H�H������t�I�7L���b�I�H�������1�1�1��\�Ic�$�H�H��H����H	�H��[���H�5L�����G���A�T$<1�L��A�D$<H�����H!�H	��������H�����A�T$@A�D$@H!�H	����I�o�I��$�I�_��:���1�1�H��H���I�w�QIc�$�H�H����H	�H��H�H���L��H�H��IcG��H��H	�H��
���}��E�L$@E��u
E�D$<E��tH�5L����1�L������A��$�H�����H!�H	��3��I��$��H�
H������tHcAH��H�RH��H��tHcj��H��1ҿB1�1�H�D$HH���M�G�H��Ic�$�H��H�I��$�H��H�|$@%�H	�H�I�H��������=�P���'����'1�1�H��/�I�w�1ɿ(I��Ic�$�H�L�D$@H��%�H	кI��Ic�$��H�H��H����H	�1�H�1��Ic�$�L�D$@L��H�H��H����H	�H�L���B��H�C 1�1�1�L������E1�H��1�I��H��I��$����H�\$HI�W�H��1�H���Ic�$�1��	H�H����H	�H��H�H�H�kI�O��Ic�$�I�w�H�H��H����H	�H�H���2}��H�����%}��I�l$ �}��1��}��I�w�L��I��-�1ɺ�(H���Ic�$�L��H�H��H����H	�H�H�����H���|��A�D$@1�L���8��I��$�IDŽ$��|��I�_�I��$�����1�1�H��H���I�w�RIc�$�H�H����H	�H��H�1��L��H�H��IcG��H��H	�H�����"|��A�|$@��u	A�t$<��tH�5L����1�L�����A��$�H�����H!�H	���{��I�_�I��$��!���1�1�H��H���I�wؿSIc�$�H�H����H	�H��H�1��Ic�$�I�w�H�H��H����H	�H�H��vH���4�L������A�G�A�D$@A�G�A�D$<�={��A�D$0��/{��I�G�H��u�@H�PH��tH��H�H������t�H��$�H��$�L��H�����I�_�H��$�I��$��)�1�H��H��H���Ic�$�1��LH�H����H	�H��H�I�W��L��H�H��IcG؁�H��H	�H����I�G�A�l$@I��$��Zz���H������Hz��A��$��9z��H�5L������%z��1�1�1���Ic�$�H�H��H����H	�H���y��I�w�L���^���I��$��q��I�_���y��I�_�I�W�I�O�H��H���#"H�޿�Ic�$�H�H��H����H	�I�H�H��t-1�H�ƿ�Ic�$�H�H��H����H	�H�I�w�H���Ky��H���Ay��H�����4y��I�W�I��$�H��tH����<H��L�����I��$�1�1�1���Ic�$�H�H��H����H	�H���x��I�?H����V�;�I�w�H����VH��tH��L�����H���x��I�H��tH����H���x��I�H��u�yx���H�CH���kx��H��H�H������t��Tx��I�_��Kx��1�1�1���Ic�$�H�H��H����H	�H��x��1�1�1��
�Ic�$�H�H��H����H	�H���w��1�1�1���Ic�$�H�H��H����H	�H��w���H�������w��A��$���w��H�5L������}w���H������kw��A��$��\w��H�5L�������Hw���H�����tA��$�tH�5L�����A��$�H�����H!�H	��w���H�������v��A��$���v��H�5L���K�����v���H�������v��A��$���v��H�5L�������v���H�������v��A��$��xv��H�5L������dv��@M��M��1��{��L��������#���D$XH��$�L�t$L�|$XI��L�|$@�D$`L�l$@A���2D��I��$�D�D$PL��I��$�H�T$H�s��������t(I��$�H�B�I��$�I;�$�v
�z�
�hM��E1�1ɺ
D��L���&2��������
��L���:�L������I��$�I;�$�tiH�JI��$��<
�?���I;�$�s
�z
��A��$��
A;�$�����A��$�I��$�H�1����I�D$xI�D$xH��u*I�|$��SI�|$h�d#L�����H���R#A��$����*ADŽ$�A��$�H���A��$��� u(H�PH��I��$���H�I�D$pI��$����H�PH�HI��$��ـz�
�����H��I��$��}���L�t$XL�|$`L�l$PI�t$L���/��1�1�H������)�Ic�$�M�D$H��H��:�?H��L�D$��H	�1�H�1�I�D$�Ic�$�L�D$�D$>H�H����H	�H�I�A��$����v��A��$������1�D�D$I��H�H�H�
H�;�HcD$H�
H�;�4A�=�H�3�
��D$0�s��I�T$`IcD$T�L$@�Ict$TI�|$`M��$�H��$��"��1�1ҿ:H��I�\$�Ic�$��D$>H�H����H	�H�H��?A��$����u��H�T$XH�t$`������_D��$���$�E����D\$@�D$H�\$@����0��z���z��H��I��$���|��A��$��D$ ���u��D�D$PH�L$@I��$�H�T$H�����O{��I�t$L�����A��$���I�D$�pA�D$0�D$\��t���|$�M��M��H�$���v���w��M��M����v��A��$����D$ ���wt��H��I��$��R���A��$�H�
1�I��$�I��$��I�|$�I�D$��s����L���N���~��A��$�H�
1�I��$�I��$��I�\$H�K�0y��M��M��H�$��v��	D$�d~���D$D$H�D$���t(I��$�H�P�I��$�I;�$�v
�x�
��"IcD$T��tUI�T$`L�H�
�H�I��$�A��$�A�|$TLN�A��$�M�L$`1�I��$���D$@H�\$PI�|$����D$��I�D$�r��Ict$TI�|$`M��$��L$`H��$�L�t$L�|$XL�l$@���1�1ҿ:H��I�\$�Ic�$��D$>H�H����H	�H�H��?A��$����~r��I�|$L�t$L�|$XL�l$@�C{���r{��Ict$TI�|$`M��$��L$`H��$�L�t$L�|$XL�l$@�]��H������x�
�A��$����D$ ���q����A��A�����A��$�I��$�H�
1�A��$�I��$���S���H�{ �;{��A��$�H�C�������D$ ���q��L���.���D$����#L�����L���
��������[�D$G�e���A��$�1�L�t$@H�
I��$�A��$�I��$�L�l$H�A��$����"i��H�tD�l$P��H��H���MA�L���z����5|���H��/v�I�D$pL�t$@A��$�L�l$HI�D$xI��$�I��$��|��H�HH9�v
�x:��u��L����I�|$�r��D$^A��$�I�D$A�D$0���2p��A��=��IA��>�%O�A�D�����0�L$P���0t����
A�D$0A���t(I��$�H�P�I��$�I;�$�v
�x�
�}N��u����NA��$��}���o���^�D$J�Ƃ��A��$�I��$�1�H�
A��$�I��$��A��$����eg���|$\�rt���D$=B��n��=^������R}���{���I��H���z��L��H��H)��a���H���z��H�D$hL)�H�D$`L�h�L��$�L�d$M��~>A�L���@���t<<;wH��H��r�����tH��I��u�L��$�L�d$�y��I��A�$<;wH��H��r�����tYM���
I��I��t�A�>���u�A�<:�d���L�d$x�A�~�����M��M��M��M�~I��u��m���I��I���t����Z���f�M��L�l$@A��$�����e��A�D$0駈��A�D$0�_�D$K�m����tADŽ$�A�D$0�|}���c�D$O�O����a�D$M�ˁ��A��=�2.�A���������L$P���0t��u]A�D$0A���t(I��$�H�P�I��$�I;�$�v
�x�
�[.��u���(.A��$��|���l��A���L$HD�D$@�D�D$@�L$H��u�A��$�I��$��+H�D�D$�D�D$A�D$0A����{-I��$�H�P�I��$�I;�$�v
�x�
�q-A�������A��$��D�D$����k��H�����D$ I��$�A��$�����k��M���Q��A��$��uA�D$0���k�����{���0t��T$P��{��I��$�I;�$���AH�BI��$��
��
�uA��1Ƀ�-��B��'t��`����L��L$X襾���L$XL����W����9�����L���������@I��$�I;�$�tjH�BI��$��
��
u�I;�$�s
�z
��@A��$��
A;�$�~�I��$�H�1��L$XA��$���L$X�i���I�D$xI�D$xH��u*I�|$��?I�|$h��?L���{�H����?A��$�����ADŽ$�A��$�H���A��$��� �cH�PH��I��$���H�I�D$pI��$�������t(I��$�H�P�I��$�I;�$�v
�x�
��>��uD�\$PE����>A��$��vA�D$0���i��A�D$0�������A���0t�\$P��t�������A��$��WA�D$0�D$C���!i��A��D�D$�D�D$���^�)A��(t&�]A��[tA��{�2�>A��<tD��E1�D��1ɾ�)���f	�Hc��Ic�$��D$RH�H����H	�H�I�D$A��$����{h��I;�$�s
�y
�G;A��$��D$@
A;�$���I�|$u;I��$����
H��PX�������I��$��@����l���<_�d���I��$�H�P�I��$�I;�$�v
�x�
��#A��$�D�D$@1�H�
I��$�A��$�I��$��A��$�����_��I�D$xI�D$xH��u*I�|$��!I�|$h��!L����H����!A��$�����ADŽ$�A��$���A��$�H��� �MH�HH��I��$���H�I�D$pI��$�醂��L�������t-��@t(I��$�H�P�I��$�I;�$�v
�x�
�3A��$���A�D$0���f��I�D$xI�D$xH��u*I�|$��9I�|$h��9L����H����9A��$����ADŽ$�A��$�H�0��A��$��� ��H�PH��I��$���H�I�D$pI��$����A�D$0L������]��L������=��@����@I��$�A��$�H�J���I��$�I;�$��m@�z�
�*F�S�D$��}e��fDA��A�<"�PM��E���A�<;�<"��������I��I��u�L�t$pE��E1�L�d$xH�D$`I)�H����H��L��D��$��H�D$`D��$�H�8�� H�|$x��
H�xL��H��D�D$x�D�D$xH�D$`H�H�\$x�� H�Xt	H�D$`H�X1�M��~H؀8-u�_A��Ic�I9��H�H�=L��H�D$xL��M��I��L��H�����t-H�D$xH�D$xH�=H9���H�8L��L�����u�L�d$pH��L��M��I��I)�H�D$xH�@H��tL��L��H�|$��I��H�D$hH���
H��L���H�D$hH�8H�|$p�� ��H�xL��L���H�L$hH�D$xH�9H�@H�QH�|$p�� t	H�|$hH�WH��H�|$����M����H�D$L��H��D�D$xH����D�D$xH�D$`���L�t$pE��M��E��A�<;t�����t
I��I��u�E����M�~I���%CA�N��"��?L���!M��M�l$�M�����HH�Ѐ�"��H�P��\u�H�HI��H��H����1ɺ/��)�Ic�$��h�D$TH�H����H	�H�I�D$A��$����ib��A��$���A�D$0���Jb��I��$�I;�$�s	�8=�{���t$L���T����4{��A���L$HD�D$@�D�D$@�L$H����A��$�I��$��-H�D�D$�D�D$A�D$0A����/=I��$�H�P�I��$�I;�$�v
�x�
��@A�����A��$��Z�����D$`�ea��A��$����|$\�c��aY���L��������.�u
�����:I��$�A��$�H�J���I��$�I;�$���:�z�
��:�Q�D$���`��E1�I��$��H��@������x��A��$�I�D$��A��$����X��A�D$0�\`���x�
��t��H��I��$��t��H�PH�pI��$��A���A��$����1ɺ`��)�Ic�$��g�D$SH�H����H	�H�I�D$A��$�����_��A����y��A�B���
��y��A�B�����<A�IH��<
D�A�1A���2����2��y��Hc�H�Hk�H�T$pH�L�A:0�wy��I�yI�pD�T$hD�\$`L�L$@L�D$P�L�L$@D�\$`��D�T$h�?y���CA�ÀL�D$PH�T$pA�D$0�?�tADŽ$�Hk�H�L�A��$�A�P������@A���T$��V��A�X�\$9���V��A�D$0��V��f��D$4�Qx��I��$�H�P�I��$�I;�$�v
�x�
�);A��$�I��$�A��A��$�I��$����|$6A��$��]<1�H�
�A��$����HV��A��$��y���	^��A��$��E�D$�����]�����T$H�L$@����T;A�D$0�L$@�T$H�k��������IA��$�����]��I��$�I;�$�sxI��$��:�
H��PX��uI��$����x<_��y��I��$�H�P�I��$�I;�$�v
�x�
��<A��$��uA�D$0���]����\��y����L���.����y��A�D$0����\��A�D$00u���	���z���H�Hc�H�>���L���G�����Zy���E~��D��L���N���
A��I��$�D��D�D$H��PX��u[I��$�D�D$�x�xHA����t��)A��(t�]A��[t�}A��{�$�S���/wH�
Hc�H�>��H�5L���¾��A��$����)T��A�D$0L�������=������~I��$�H�P�I��$�I;�$�v
�x�
�f!A��$��M�D$����[���x�
�1r��H��I��$�� r��I��$H����!H��L���a�H��I��$����1�H��1�H���Ic�$�L��H�H����H	�H�I��$����
X��Ict$TI�|$`�6A�D$0I��$��I�T$�D$5H�A��$�����Z��1����L���}�H���W��H�5L���V���I�_��W��H��tAA��$�I��$�H�1��I�W�H��tH����H��L���]�H��H��I�H��H������H������1�1�1��\�Ic�$�I�7H�H����H	�H�H��tH��L����H�����1�1�H��/L�D$@�L�D$@1�L��H�Ic�$���H��H	�1�H�1�I�@I�G�H�CH�C ���E1�1�1�I��H��I��$����������"�5�I�|$��+I��$��L$X�
I��$��z�H��PX�L$X��uI��$��@���x<_�}+L��L$X莬���L$XL������=�����L����������.I��$�I;�$���,H�BI��$����
��+I�|$u/I��$��x��
H��QX��u�I��$��@�<_t���x�I��$�H�P�I��$�I;�$�v
�x�
�2,�"IcD$TI�T$`�I��$�I+�$�I�L$pIct$TI�|$`H�D$I��$�I��$�H�L$@I��$��H�L$@H�T$�(H���Ic�$�H��H�I�D$H����H	�H�A��$�����`�x+�f�D$R�W��H�} L�t$HH��L�l$P��T��H�H�sL��T$@�䀀�9H��O���H�C�nT��A��$�I��$�H�1��I��$���H�D$`H�x�c�H�T$pH�D$pM�l$�E��L�pM��������H�T$pI������рx�
�@r��H����I��$�A��$�����V��I��$�I��$�1�L�d$`L�-A��H�D$H��H�D$H)�H��~{�C�Pƀ�5w]��IcT�L�>��H����H����H����H���H���H���L�sA��H�5H�������L�����L�s���u���L�d$`�Na�����E�D$��V��1�遗��I�G��|��I�G��7}��1ɺ1��(�Ic�$�L��H�H��H����H	�H�H���w�H���R��H�����uH����H�����0���V����aH�
Hc�H�>��I��$�H�GH�����tH�x�B���H���+������/I��*���1�H�E�uH�����tH������:O��H��t<H�H������9��/|'��?��w1�H��H�޿8�O��1�L��H��虺��1ɺH�޿(�Ic�$�H��#H�H����H	�H��H����N��I�o�1�1�H�޿.�ʻ���+�b��I��$�L�t$I�D$L�|$XL�l$@I��$��(]��L�t$XL�|$`L�l$P�\��H�5L���ֶ����b���z�
��b��H��I��$��b�����t(I��$�H�P�I��$�I;�$�v
�x�
��.A��$���A�L$0���S��A��$��R�D$����S��A��$��z���S��I�D$�Y�D$EH�^A��$�A�D$0���RS��A�D$0�`�D$LADŽ$��+S���x�
��r��H���zI��$�A��$����R���x�
�]q��H���yI��$�A��$�����R��H�HH�PI��$���A��$��q�A��$��XA�D$0�D$D���R��D�l$P����+H��/���L�������.���I��$�I��$�H�J����tI��$�H9�v
�z�
��+H��H�B�A�\$0I��$�H9���R���z�
��R���z�
��R��H��I��$��R��I�G��Bw��I�D$�Y�D$EH�&A��$�A�D$0���Q����@�t$H�L$@����
A�D$0�L$@�t$H�Eh��A��$������qQ����9H�{H��H�CI�_����L����H���>N��A�D$0�����I�D$�Y�D$EH�|A��$�A�D$0���P��A�D$0L�������=�y!����R!I��$�A��$�H�J���I��$�I;�$��U �z�
�/ �N�D$��P���x�
����H��I��$�����A�����D�A�D$0�yj���@L���}���L����������A��$�I��$�1�H�
A��$�I��$��A��$����"H��L�������=�O���t(I��$�H�J�I��$�I;�$�v
�z�
�U�D$H�u�|$P�A��$��U�D$����O��L���1����>�������I��$�H�P�I��$�I;�$�v
�x�
�yA��$��L�D$����(O��A��$��w���O��L�������=�7����I��$�A��$�H�J���I��$�I;�$����z�
���V�D$��N��A��$��K�D$����N���x�
�8`��H���wI��$�A��$����dN��A��$��P�D$����FN��A��$��J�D$����(N��A��$��x���N�����p]��I��$�H�P�I��$�I;�$��N]���x�
�D]���x�
�:]��H��I��$��)]��1ɺ"���\��H�PH�HI��$���A��$��[�A��$��D�D$����qM��I�D$�Y�D$EH�*A��$�A�D$0���>M��L����������=�����t(I��$�H�P�I��$�I;�$�v
�x�
��t$PA�D$0���0t	@�����Au3����t#��u	@����F�D$��+a���b�D$N�a����@�t$H�L$@���tnA�D$0�L$@�t$H�`��I�D$�Y�D$EH��A��$�A�D$0���=L����@�t$@�L$���tHA�D$0�L$�t$@�1���A��$�1�I��$�H��a�A�D$0�D$M�a`��A��$�1�I��$�H��b�A�D$0�D$N�,`�������t%A�D$0���������tMA�D$0�~�_��A��$�1�I��$�H��A��$�H�1�I��$���A��$�1�I��$�H��A��$�H�1�I��$���r���A��$��|����J���x�
����H��I��$�����A��$��L�D$����J���x�
��Z��H���xI��$�A��$����J���������`���\�D$H�~`���x�
�h_��H���|I��$�A��$����0J���z�
t$�V�D$��J���V�D$��J��H���V�D$�I��$���I��A��$��V�D$�����I��I�D$�Y�D$EH��A��$�A�D$0���I�������tEA��$��U�D$����mI���Љ׉T$@��������D$8�T$@�k[��A��$�H�1��UI��$��A��$�1�I��$�H���D$�A��$�����H��I;�$�s�x
t\A��$��D$@
A;�$���i��A��$�I��$�H�1����i���x�
�_l��H��I��$��Nl��H���D$@
I��$��i��A��$�H�1��I��$��A��$�1�I��$�H��A��$����H���>A��<���D��E1����H�����L�������L���q�������d���oi��L���{��1�1�L��H��$�H���$�ƃ����H��$�L���y����@d��1��$�c���A��$�1�I��$�H��c�A�D$0�D$O�E^���H�=H�T$@�H�T$@H��C��H���C��L���D���H�=�H��B���H�=�H��B��1�L��蘬��H�����H�H��������@��H��L���q���1���H���	B��D��L�d$`�A�F<=t<:��Q��M�n�M��M�nL9l$��Q��A�~���u��t�L���<-t<_t�����tH��H9\$w�L)�L��L��H���$���L��H���H��H�pH� tH�pL��譚��1�H����Q��H�D$hH�x��H�D$L��L��H����H�D$h��I��$�I�D$I��$��D$@�������H��L���N����?��1�L���?���H�EH������9�0�����?�����1��r?��H��1�1Ҿ�1��H�E�.B��H�H��H�H����H�=1���ƒ���t�@fW�@�H��H9�tjH�ƺH��H��?H)�H	�H��<H��H�T$@�D$@fWfH~�fH~�H��<��H9�t����t4H��H���H�����>�������G�����=���fH~�H��H��H���
���H���9A���x�
�X��H��I��$��G��D�l$L�t$@L�l$H�K\���䀀�;H��α��H����������������1�I�G����1�1�1��)�Ic�$�H�H����H	�H�I�G��x���H���C�1�1Ҿ�9�Ic�$��(H�H��H����H	�1�H�����9Ic�$�H��H�D$`H�H��H�D$@%�H	�1�H�1��Ic�$��(H�H��H����H	�1�H���Ic�$�H��/H��H�H��H�L$@%�H	�1�H�1��Ic�$�I�w�H�8H����H��L��H	�H��H�����1�1�H��/H�D$P�Ic�$��#H�H�Ɓ�H��H	�H�L$@H����Ic�$�H��H�H����H	�H��H�1��Ic�$��9H��H�D$hH�H��H�D$X%�H	�1�H�H�1�H�0�Ic�$��(H�H��H����H	�1�H���Ic�$�I��H�H��%�H	�H�=I���H�1�1�H��/L�D$pH�D$X�Ic�$�H�8H��H����H���#H	�H�L$@H����L�D$p�#H�H�Ɓ�H��Ic�$�H��H	�L��H�H�T$X�1�H��/I��Ic�$�H�L�D$@H��%�H	�1�I��Ic�$��#H�H��H����H	�1�H��A�Ic�$��#H�H��H����H	�H�L$`H����L�D$@�Ic�$�H�H��H����H	�1�H�L���Ic�$��H�H�Ɓ�H��H	�1�H�H�T$h�Ic�$�H�|$PH�H����H	�H�H�������H��H��L���������H���<����H�}��9H�E�H�EI�o���H�C H�P�<��H���p���H�=L�D$X�L�D$XH�����A��$��M�D$����A?��I�D$�Y�D$EH��A��$�A�D$0���?��I�D$�Y�D$EH�+A��$�A�D$0����>��A��$��D�D$����>���x�
����H��I��$��t��A�����t1A��$��|���>���x�
����H��I��$����A��$�H�1��|I��$��A��$�1�I��$�H��A��$����>��D��1ɾ�)���g	�Hc��Ic�$��D$SH�H����H	�H�I�D$A��$����=��D��1ɾ�)��	�Hc��Ic�$�H�H����H	�H�I�D$L���%����������u���I��$�A��$�H�J���I��$�I;�$����z�
��j�D$V�=��D��1ɾ�)���e	�Hc��Ic�$��D$QH�H����H	�H�I�D$A��$�A�D$0����<��D��1ɾ�)���h	�Hc��Ic�$��D$TH�H����H	�H�I�D$A��$����V<��D��1�1��)���f	�Hc��Ic�$��D$RH�H����H	�H�I�D$A��$����;��D��1ɾ
�)��	�Hc��Ic�$�H�H����H	�H�I�D$L���l����������u���I��$�A��$�H�J���I��$�I;�$����z�
���i�D$U�Z;��D��1ɾ
�)��	�Hc��Ic�$�H�H����H	�H�I�D$L���ǵ���������u���lI��$�A��$�H�J���I��$�I;�$��,�z�
�
�k�D$W�:���z�
tB�i�D$U�:���i�D$U�:��A��$��i�D$U���m:��H���i�D$UI��$��O:���x�
����H���M�D$�I��$�A��$����:��I��$���H���i���I�G��`���H�J H�H������(�����H�IH�H������+�����H�Q钙��H���a��D��1ɾ�)��	�Hc��Ic�$�H�H����H	�H�I�D$L���+����������u���<I��$�A��$�H�J���I��$�I;�$�vj�z�
tH�l�D$X�!9���z�
t�j�D$V�	9��H���j�D$VI��$���8���z�
���l�D$X��8���l�D$X�8���z�
tB�k�D$W�8���k�D$W�8��A��$��k�D$W���u8��H���k�D$WI��$��W8���j�D$V�E8��A��$��j�D$V���'8��A��$��l�D$X���	8��H���l�D$XI��$���7��A��$��G�D$�����7���x�
�}�H���L�D$�I��$�A��$����7��I�D$�Y�D$EH��A��$�A�D$0���f7���z�
���H��I��$���H��L������鰫��I��$�1�1��1�1ҿ:H���Ic�$�H�H����H	�H��n���H��鯘��L�����H��龘���}���H��L���}��H��H�H��H�������H�����I�w�H����3���ϧ��H��釫���怀�=H��1����怀�<H��#���I��$�1�1��1�1ҿ<H�����A�D$0L��D�l$L�t$@L�l$H%�������A�D$0�װ����=����~t|��>tY��t>I��$�H�P�I��$�I;�$�v
�x�
��A��$��t����5��A��$��t���5��A��$��Z�D$F���5��A��$��O�D$����~5��L���'�����=������I��$�A��$�H�J���I��$�I;�$�v\�z�
t>�H�D$��"5���x�
�2���H���tI��$�A��$����4���z�
t$�H�D$���4���H�D$���4��H���H�D$�I��$��4��A��$��H�D$����4��A��$��I�D$����r4��I�D$xI�D$xH��u*I�|$�!X��I�|$h��L���`���H����A��$���~A��$�ADŽ$�A��$�H�A��$��� �>H�PH��I��$���I��$�H�I�D$pI��$���T��1�1��\鎍���x�
����H��I��$�����H���
I��$��MU��I;�$�s
�z
��A��$��
A;�$��V��A��$�I��$�H�1����U��I�D$xI�D$xH��u*I�|$��I�|$h��L���$���H����A��$���~A��$�ADŽ$�A��$�H�A��$��� uNH�PH��I��$���I��$�H�I�D$pI��$�I��$��'U��H���
I��$��)U��H�PH�HI��$�I��$��I��$�I�D$I��$�A��$�H�J��I��$���I;�$��2���z�
�	2���z�
��1��H��I��$���1��I��$�H��H��I��$�I;�$�v��x�
u��x�
u�H�P�I��$��r���I��$��\$H�P�I��$�I;�$�v
�x�
������T��IcD$TI�T$`H��$�L��$��A�D$T�
�p�I�D$`Hc�H�x���$�uuHc�H=���?wj1�1��4I�\$�Ic�$��D$@H�H����H	�H�H��AA��$�����0���x�
�J���H��I��$��9���I�L$`H�1�A��$�I��$��1��l���I��$�I�D$I��$��CT���z�
�2�N�D$��Y0���N�D$��G0��H�C H��tMH�@H�JHKH�P H�B H��t'H�PH�C H�P�
-��A��$������/��H�C H�P��,��H���H�C H��tTH�@H�JHKH�P H�B H��t.H�PH�C H�P�,��H�PH�HI��$�I��$����H�C H�P�,��H���A��$��N�D$����l/��I�D$�Y�D$EH��A��$�A�D$0���9/��H���N�D$�I��$��/��H�[H��tL������H��H��1ɿ�Ic�$�H�H��H����H	�H���+��A��$�I��$�H�
1�A��$�I��$���kX��H��L���������+��I��$�I��$�H��跴���j+��I��$�L�ED��H�
H���b��H�5L�����I�w�H���+����5���H���	y����H�s�T$@L���9H��و��H�C�*��I��$�1�1���T$@L��H��谈��1�1ɿ9H���Ic�$�H��H�H��%�H	�H��*��I��$�H�P�I��$�I;�$�v�x�
tT���I��$�A�D$0H�J�I��$�I;�$��S=���z�
�I=���z�
�?=��H��I��$��.=���x�
u�H��I��$��H�y�D$@
I��$����I;�$�s
�z
��A��$��
A;�$��
��A��$�1�I��$�H��I��$�����I��$��\$I�D$I��$������\$�����I�L$ �qA�D$0A�D$8A�t$4I�T$(�D$]�L,���g�D$S�:,���x�
����H��I��$����I�D$xI�D$xH��u&I�|$����I�|$h��L���
���H��trA��$���~A��$�ADŽ$�A��$�H�A��$��� u[H�PH��I��$���I��$�H�I�D$pI��$�I��$����I��$��"I�D$I��$�����H�PH�HI��$�I��$��H�B�
I��$��V��������h���A��$�I��$�H��A��$�H�1�I��$���)����x�
�	���H��I��$����I��$�I�D$I��$�A��$�I��$�H�
1�A��$�I��$��A�D$0�_:��H�[H��tL���5��H��H��1ɿ�Ic�$�H�H��H����H	�H��'���������A�D$0�{��@��H���
I��$��ƾ��I;�$�s�z
tA��$�A;�$�$1ɻ
�D��H��1ɻ
I��$��,��A��$�H�1��
I��$��1����I�D$xI�D$xH��u*I�|$���I�|$h��L���h���H����A��$���~A��$�ADŽ$�A��$�H�A��$��� ��H�PH��I��$���I��$�H�I�D$pI��$�I��$��P���I;�$��"I��$�H�PI��$����
���ٹ �;���I��$�I�D$I��$����A��$�1�I��$�H��A��$�H�1�I��$������H�PH�HI��$�I��$��,���I;�$�s�x
t!A��$�A;�$�*� �
�g��H��� �
I��$��L��A��$�H�1��
I��$��� ���I�D$xI�D$xH��u"I�|$�����I�|$htxL��艡��H��tjA��$���~A��$�ADŽ$�A��$�H�A��$��� uNH�PH��I��$���I��$�H�I�D$pI��$��?���I��$�I�D$I��$��Z���H�PH�HI��$�I��$��L�t$@L�l$H�����z�
t@I��$��p��I�D$�Y�D$EH�-A��$�A�D$0���k&��H��I��$��,���z�
tB�Q�D$��B&���Q�D$��0&��A��$��Q�D$����&��H���Q�D$�I��$���%��1ɿF�Ic�$�H�H����H	�H��d��1�1ɿ)�H�H��Ic�$���H��H	�H�I�w���c��1�I�G��c��H�5L���&����.��H�C�����H���������H������q���M��1��X��H��鈩��I�G������S�D$��%��A��$��S�D$����$��A��$��T�D$�����$���x�
����H��I��$�����H���}����1���@���n���L�t$XL�|$`L�l$PI��$��G-��A��$��E�D$����o$���x�
��1��H���}I��$�A��$����C$��A��D�D$@�L$H�D�D$@���0���A�D$0�L$H�0��L�t$L�|$XL�l$@��,��I�D$�Y�D$EH�%A��$�A�D$0����#���s�s�A���sE���ٺ������x�
�[0��H��I��$��J0��A�������A��$������g#��A��$�����Q#���x�
����H��I��$�����L�|$p�����x�
��0��H��I��$���0���H��E��I��$�H�GH�����t$H�xt�H����������I��$�H��蜪������A��$��4�D$3���"��A��$��}���"��A��$��/1��hI��$�H��1ɺ/��)�Ic�$��D$TH�H����H	�H�I�D$A��$����"��A��$��4A�D$0�D$3����!��1�H�
�A��$�������A��$�I��$�1�H�
A��$�I��$��A��$�������sA��$�I��$�H�1������r�ֹf�Ϲv�ȹn�t뺀x�
�y���H��I��$��h���A�����tXA��$��}��� ��A��$��dA�D$0�D$P���� ���x�
�4���H��I��$��#���A��$�H�1��}I��$��A��$�1�I��$�H��A��$����e ���x�
�,��H��I��$����I�D$�Y�D$EH�/A��$�A�D$0��� ��I�T$L��H�T$�H�T$H��C�D$A��$������L�|$pM��鱺���x�
�_9��H��I��$��N9��I��$�I��$�H9�s��΃�@��>��8����=���=L���r��IcD$TI�T$`�D$3��9���z�
t-�S�D$��M���x�
�Y8��H��I��$��H8��H���S�D$�I��$�����x�
�7��H���I��$�A��$�������A��$�H�1���I��$��A��$�1�I��$�H��A��$������H�HH9�v
�x:�n8��A�D$0L���#���Ict$TI�|$`I��$�I�\$��D$9H��:A��$����5��A�T$8��tA;T$4tlA�D$ u6A�D$(tA�� tyD�ڃ���ۃ�����\$ۃ��������D$����H�HH9��17���x>�'7���,������A�D$8A�T$4�D$�����D$���D��AVAUATUS�wHH�����6���H���H��������H9���H�rH����
H��
����#�E���u(H���H)�H��~�z�u�z����H���H9���,H�{p�H���Hǃ��KH1����,�����H�߃�	Ј������1�HǃHǃ�CHH�CHǃ�Hǃ�Hǃ�H�CxH�Cp��uMH��H���iH���H��t.H�U1ɿh�Hc��H�H����H	�H�H�EH��[]A\A]A^�H9�������z!�����������D�x�
�����x�
�����H��H������@H;��s
�z
�����;���s������H���H�1��H���H�P��H������������H�-L���H����L�%H��I�<$�����Hǃ���H����H�=������^���L����I��I��I��tE1�H�x�8L���&���@�H����������@H�CxH�CxH��u(H�{�����H�{h�H���a���H���������~Mǃ�H����������� u;H�PH��H�����H�H�CpH������fD�����H�PH�HH������1�1�1��\�Hc��H��H�H��%�H	�H�E���fDH�BH������H���H���H��H���H����~���H���H�CH����c����I�<$H���H�Ũ� ���H�������������������H��L��I��H���L�����M����������H���1�1�����I��f.�H��L�����u싫������H�=�H��H��T�����~Hc��I��L��L��L������1��I����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignunknown encoding name: %s%s:%d%s is not ASCII compatible-e%s%li
Stack now %d...%s%s%s%s%sinvalid hex escapeempty expressionvoid value expressiontoken %s (nterm %s (%s Can't set variable $%ldCan't set variable $%csyntax errorsyntax error, unexpected %sinvalid multibyte char (%s)truefalseinvalid value for %s: %sunixdosmacutf8-macinvalid source encodinga variabledefined?a constanta literal::..selfnilvtable_pop: unreachableCan't assign to nilCan't assign to trueCan't assign to falseCan't assign to __FILE__Can't assign to __LINE__Can't assign to __ENCODING__dynamic constant assignmentunused literal ignoredstatement not reachedduplicated argument namestring literal in conditionregex literal in condition$_range literal in conditionliteral in condition$.$~invalid Unicode escapeunterminated Unicode escapeInvalid octal digittrailing `%c' in numberFloat %s out of rangeprint$Fsplitchop!scodingStarting parse
Stack size increased to %lu
Entering state %d
Reading a token: unknown regexp option%s - %sbeginendincomplete character syntaxunknown type of %string__END__Now at end of input.
Next token isShifting   $%d = END in method; use at_exitkind_of?ifunlesswhileuntilcaseforclassmoduledefinvalid local variable - %liblock given to yield-> $$ =Error: discardingError: poppingmemory exhaustedCleanup: discarding lookaheadCleanup: poppingSCRIPT_LINES__breakelseensurethennotelsifrescuereturnanddoyieldundeforinwhenretryredonextsuper__LINE____FILE____ENCODING__ENDaliasBEGINencodingwarn_indentparser"end-of-input"error$undefinedkeyword_classkeyword_modulekeyword_defkeyword_undefkeyword_beginkeyword_rescuekeyword_ensurekeyword_endkeyword_ifkeyword_unlesskeyword_thenkeyword_elsifkeyword_elsekeyword_casekeyword_whenkeyword_whilekeyword_untilkeyword_forkeyword_breakkeyword_nextkeyword_redokeyword_retrykeyword_inkeyword_dokeyword_do_condkeyword_do_blockkeyword_do_LAMBDAkeyword_returnkeyword_yieldkeyword_superkeyword_selfkeyword_nilkeyword_truekeyword_falsekeyword_andkeyword_orkeyword_notmodifier_ifmodifier_unlessmodifier_whilemodifier_untilmodifier_rescuekeyword_aliaskeyword_definedkeyword_BEGINkeyword_ENDkeyword__LINE__keyword__FILE__keyword__ENCODING__tIDENTIFIERtFIDtGVARtIVARtCONSTANTtCVARtLABELtINTEGERtFLOATtRATIONALtIMAGINARYtSTRING_CONTENTtCHARtNTH_REFtBACK_REFtREGEXP_END"unary+""unary-""**""<=>""==""===""!="">=""<=""&&""||""=~""!~""..""...""[]""[]=""<<"">>""::"":: at EXPR_BEG"tOP_ASGN"=>""(""( arg"")""[""{""{ arg""*""**arg""&""->"tSYMBEGtSTRING_BEGtXSTRING_BEGtREGEXP_BEGtWORDS_BEGtQWORDS_BEGtSYMBOLS_BEGtQSYMBOLS_BEGtSTRING_DBEGtSTRING_DENDtSTRING_DVARtSTRING_ENDtLAMBEGtLABEL_ENDtLOWEST'=''?'':''>''<''|''^''&''+''-''*''/''%'tUMINUS_NUM'!''~'tLAST_TOKEN'{''}''[''.'',''`''('')'']'';'' ''\n'$acceptprogram$@1top_compstmttop_stmtstop_stmt$@2bodystmtcompstmtstmtsstmt_or_begin$@3stmt$@4command_asgnexprexpr_valuecommand_callblock_commandcmd_brace_block@5fcallcommandmlhsmlhs_innermlhs_basicmlhs_itemmlhs_headmlhs_postmlhs_nodelhscnamecpathfnamefsymfitemundef_list$@6opreswordsarg$@7arg_valuearef_argsparen_argsopt_paren_argsopt_call_argscall_argscommand_args@8block_argopt_block_argargsmrhs_argmrhsprimary@9$@10$@11$@12$@13$@14$@15$@16$@17$@18$@19@20@21@22@23@24$@25@26primary_valuek_begink_ifk_unlessk_whilek_untilk_casek_fork_classk_modulek_defk_endif_tailopt_elsefor_varf_margf_marg_listf_margsblock_args_tailopt_block_args_tailblock_paramopt_block_paramblock_param_defopt_bv_declbv_declsbvarlambda@27@28@29@30f_larglistlambda_bodydo_block@31block_callmethod_call@32@33@34@35brace_block@36@37case_bodycasesopt_rescueexc_listexc_varopt_ensureliteralstringsstringstring1xstringregexpwordsword_listwordsymbolssymbol_listqwordsqsymbolsqword_listqsym_liststring_contentsxstring_contentsregexp_contentsstring_content@38@39@40@41@42string_dvarsymbolsymdsymnumericsimple_numericuser_variablekeyword_variablevar_refvar_lhsbackrefsuperclass$@43f_arglist@44args_tailopt_args_tailf_argsf_bad_argf_norm_argf_arg_asgnf_arg_itemf_argf_labelf_kwf_block_kwf_block_kwargf_kwargkwrest_markf_kwrestf_optf_block_optf_block_optargf_optargrestarg_markf_rest_argblkarg_markf_block_argopt_f_block_argsingleton$@45assoc_listassocsassocoperationoperation2operation3dot_or_colonopt_termsopt_nlrparenrbrackettrailertermtermsnonevtable_add: vtable is not allocated (%p)regexp encoding option '%c' differs from source encoding '%s'block argument should not be givenboth block arg and actual block givensyntax error, unexpected %s, expecting %ssyntax error, unexpected %s, expecting %s or %ssyntax error, unexpected %s, expecting %s or %s or %ssyntax error, unexpected %s, expecting %s or %s or %s or %sencountered \r in middle of line, treated as a mere spacepossibly useless use of %s in void contextlocal->used->pos != local->vars->posassigned but unused variable - %listring literal encodings differ (%s / %s)circular argument reference - %liidentifier %li is not valid to getCan't change the value of selfidentifier %li is not valid to setduplicated key at line %d ignored: %+lishadowing outer local variable - %liformal argument cannot be a constantformal argument cannot be an instance variableformal argument cannot be a global variableformal argument cannot be a class variableformal argument must be local variablemultiple assignment in conditionalfound = in conditional, should be ==integer literal in conditional rangenamed capture conflicts a local variable - %liunexpected fraction part after numeric literalinvalid Unicode codepoint (too large)Invalid escape character syntaxnumeric literal without digitscan't find string "%s" anywhere before EOFunterminated regexp meets end of fileunterminated string meets end of file`**' interpreted as argument prefix`**' after local variable or literal is interpreted as binary operatoreven though it seems like argument prefix`*' interpreted as argument prefix`*' after local variable or literal is interpreted as binary operatorembedded document meets end of file`<<' after local variable or literal is interpreted as binary operatoreven though it seems like here documentinvalid character syntax; use ?\%c`&' interpreted as argument prefix`&' after local variable or literal is interpreted as binary operatorambiguous first argument; put parentheses or a space even after `%c' operator`+' after local variable or literal is interpreted as binary operatoreven though it seems like unary operator`-' after local variable or literal is interpreted as binary operatorno .<digit> floating literal anymore; put 0 before dot`:' after local variable or literal is interpreted as binary operatoreven though it seems like symbol literal`/' after local variable or literal is interpreted as binary operatoreven though it seems like regexp literalunterminated quoted string meets end of file`%%' after local variable or literal is interpreted as binary operatoreven though it seems like string literal`%s' is too big for a number variable, always nil`$%c' is not allowed as a global variable name`@' without identifiers is not allowed as an instance variable name`@@' without identifiers is not allowed as a class variable name`@%c' is not allowed as an instance variable name`@@%c' is not allowed as a class variable nameInvalid char `\x%02X' in expressionReducing stack by rule %d (line %lu):
else without rescue is uselessBEGIN is permitted only at toplevelcan't make alias for the number variablesclass/module name must be CONSTANTclass definition in method bodymodule definition in method bodymismatched indentations at '%s' with '%s' at %dunknown literal type (%d) passed to negate_litrest argument must be local variableblock argument must be local variableduplicated block argument namecan't define singleton method for ().can't define singleton method for literalsunterminated here document identifier333333333333333333333333333333333333333333333333333333333333333333
3333
3
33333333333333333
333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333%s mixed within %s source���@�� !"#$'-./0123456789;<=>@ABDEX[\^_adefghijkl��������������������������������(*+,-./01S^�	

 !"#$%&'-./0123458DEFGHIJKLOPSTUVabwxyz{|}~����������(*':X[abcf���������-.01QR����������X6�X�� ����8/[������^����Q^�PQ^.X�����-.1��679�) ����,�����W\]()*+,%&����t�[a�tFGHIJKLMNOPQRUVuwxyz{|}~�W���������W]X����-.148UX���-.1�!"#$12348��/NW�VYY��8���tZ��^W��YY���XY����Q^�Y�6AB�����W�Y����W]YY����[�[�[X8,���W���?mop!p!pC!pp!p?pppp?pF���������`��a�����������������������������������������458�TU�458�T��
�\���W	8W���48�x2\W���O�V48T�����r��a��Q48�48RY�Y��Y�����TT��Y��Q��48�4846789:F[abc{~��689:;<=>?BCDEHIJKL#"�!����Ny��^�����Y��t,XYY��XZYY��
�^�
��\�	��48�48��\3�48�����45����^,����YYZYYQ���Y[�Z[a���:8�t�7��M^4�M�74�74$679'1���;=>@ADFGJLX����a���v�������Y��������^�^��������Z�\��Z�Y8�8���Y�Y���:�Y���6<HJ?DL=EJ;=%�yt��X��MM�����
��
����Z
^�	^���������\�Y�\�Y��a��q��7�7M�7�77&y��GJ8W@D=FJ=4��9�X��-.1������	
��4���:��=J==�����48M������X8W���������
�7�777n=J==�48�48����=�����Z7=�7B9bQLdIfjjBI3UEYQ\�A�7E]^_��`e�\��56XY\��
o5{\
�3���	A�m�W�56���NFWt�3�7�?L��?BD��%&�9�%�Q�
8WyXYW�\]^_���|}~��
p����pF`�
t����q�����t
�"$�&��*f������������������
��������+,�x����H�r�6789qr�|T���D����I�����G�G�6789�;<�S�R���������Y�F�kl�����G�y��Z�����5m�:�W%&klWt56W�}�WD��zeI8m����W�Fe������?56789:;<�������D�FG�I���F�WQ�S������tW]��bmtoe�gZ��klg��4:6789���fz�WF���Y��~�	����4�6789���Y�bc	tWW�������?���F��W���{Wi�0?���i�Y8�W�W����W�����������mWo�t�!W@A���[���mWop=N?3��?�����W����cV���;G��tW	���GS���{��`��YSuC�m�op[1jD��vwI94{g}88`t��./��p�=�?pY|ppF�G����[|`����S?UVY`�Ht�?�q8�6���T�����ABW�t`uY�W���|�����m�op�r���mopt�����Y�W��������tY�������?���C
�t����Y�)
��Wt�������B����t� ��t��?Pm?o%44������4��F��+,�4PZv\MmYoUVcTU�YXmYop3m�op��K��N�tyBtt��t�C|}~�)����XY(�\�4��

��ZY��yYaB�d	���y���M��Pqr8TU�tX�t8�
����4�6789:���67�9����F��ABn�;<=>��������[����abc]��_���4�6789����*e{3�~�7;`������������������[�Qa��������������]^_`�������������4�6789����������4F6789�������������UV������������[56789:;<����6��[��D��F��aI()*+,yz{|}~�������������W�����e��g������kl�����������i������01z����56�����������������BC�"�����������������������������������4��6789:��F4�6789����F����
�UV���������������������������[����������abc����5�������:����������{|}~�FG���{���~�����������������������������������������g������������a���������������l"4��6789:"�����������������F��������4"6789:=��?������������[GF��������bc��������S��UV������������[���������abc{���������������������������u�����������|{����~����������������������D�������IJKLMNOPQRSTUVWXYZ[\]^_`abc	e������������������������������������������������������������������������������������������=�?��������������������������������U������������������������������������������������������������������������|����������������������������������4�������������������������B������������������M����P������TU���X�3�����7���������������������FGHIJKLM��OP��Q����UV����������]^_`�����C������G���3������7��������S�wxyz{|}~����a����d������Q3������������qr��]^_�������������������������)��������������������4�����]��������������������������������M�����������TU����X���������������������������������������������������3�����������������������������������������������������������������������������������������������������������5�������:���������������������FG������������������������6�����:������������B������g����������5��������:����������W����������FG������������������hi��5�������:����������������������F��gI������������������������	
���
������������g������������������%&��()*+,��������������������������������������������������������������������5��������:��W�����������������F��	������������������nFGHIJKL���OP������UV����g���������������������������������=��?��	��������wxyz{|}~�����������U��������������������������������������������������������������=��?��������|�,��������������������������U������������=��?��FGHIJKLMNOPQR����UV������U�������������|��������������������������������u��wxyz{|}~�|����������������������������������������������������������������������������=��?��������������������������������������U����������������������������������)��������������������4���������������|�����������������������������M������������TU����X����������������)��������������������4��������������������������������������������M����������4TU����XFGHIJKL���OP�������UV����M����������TU���X��������������������������������wxyz{|}~������������������������������������������������������������������������4��������������������������������������������M����������TU���X����������������������������������������������������������������������45����8����������������������DEFGHIJKL����OP���STUV�������������������ab�������������������������������������wxyz{|}~���������������������������������������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl��������������	
����
�����������,��������������%&��()*+,����������FGHIJKLMNOPQR����UV������FGHIJKLMNOPQR����UVW��YZ����������`u��wxyz{|}~���n����q����tuvwxyz{|}~������������������������	
����
����������,��������������������%&��()*+,������FGHIJKLMNOPQR����UV����������FGHIJKLMNOPQR����UVW��YZ��������u`wxyz{|}~�������n����q����tuvwxyz{|}~�������������������������	
����
��������������������������������%&��()*+,������FGHIJKLMNOPQR����UV����������FGHIJKLMNOPQR����UVW��YZ��������u`wxyz{|}~�������n����q����tuvwxyz{|}~�������������������������	
����
��������������������������������%&��()*+,������FGHIJKLMNOPQR����UV����������FGHIJKLMNOPQR����UVW����Z����������`wxyz{|}~�������n����q������uvwxyz{|}~������������������������	
����
��������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n����q������uvwxyz{|}~������������������������	
����
����������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW��YZ����������`��������������������������n����q����tuvwxyz{|}~�������������������������	
����
����������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n������������u��wxyz{|}~�����������������������	
����
����������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n����q������uvwxyz{|}~�������������������������	
����
����������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n������������u��wxyz{|}~�����������������������	
����
������������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n������������u��wxyz{|}~������������������������	
��������������������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW��Y����������������������������������������n����������tu��wxyz{|}~�������������������������	
����������������������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW��Y����������������������������������������n����������tu��wxyz{|}~������������������������	
���������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������
�������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������
�������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������
���������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl��������������������	
������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������������������������������������ !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl��������������������������������������������������������������������
������������������ !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl��n������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��abcdefghijkl������������������������������������������ !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl����������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl���������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl����������������������������������������������������������������	

������ !"#$%&'����������-./0123456789��������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�������������������	

������ !"#$%&'����������-./0123456789��������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~������������������	

������ !"#$%&'����������-./0123456��8����������������������DEFGHIJKL����OP����STUV��������������������ab����e����������������������������������wxyz{|}~������������������	

������ !"#$%&'����������-./012345����8����������������������DEFGHIJKL����OP����STUV��������������������ab����e����������������������������������wxyz{|}~������������������	

������ !"#$%&'����������-./012345����8����������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~������������������������������ !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl������������������������������������ !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl���������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��abcdefghijkl����������������������������������������� !"#$����'����������-.��0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��abcdefghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��ab��defghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_����bcdefghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��ab��defghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_����b��defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��a����defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��a����defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������U����X����[\��^_��������defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl����������45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������abFGHIJKLMNOPQR����UV������wxyz{|}~��������������������������������u��wxyz{|}~��������������������������������w.����H�?G�G�19�?����4jxm������5�fm�3�4�fhh��hV�V[w����u�	M|��n�����19mN��-S�����
�/=����J�������zVjq����N=@�����������%�;<��z��Y�<��������d^�s~~�����_`abcB�<�'?)��]��G��D�b+���?E�uI�����w������ef�:}������>1��2�����4�����������>��������|����O������u��z�m�����ff��z1�2��VW8
��1�2�V�hhhh���������_�1�2���V�u@A��'�����
V�V������4��G���4����;<hh�������Q���\^J��B���������������PM������V����V����a�c����V����X��J���������������J���������V�����t����������7������������w���abc��&���G�g����������������������7���N��J����������m���7�fV��1�2����mV��'��������'��7��������������������N�������7�����������F������M�C������R����������N��N�N�������������GH���K���L������'��ST����V�V��w���
���;=@�G�CE���V���C7��e�2�E3�5�7IZ1o\�������z��|��qrxV�[ce�d��hah����������nLO�O�O�
�����h�������e��������V���V�V�W����������1����ST��'������L�L���1����VLL��LVJ(h�:���WX����������L�����MiA�ko����L!#$%��������_`abc�����LL)nL��Vp�����s���B��������}��V���e�VV�V{�����	�����������O��� ��!��
./qq)*+,�)�����"�0~����qHl��7V,�$����LfV���q��I#��VVx�vXL�LL�LVL�L�O���LLuVVLV�V����zsz�J������y��WXLLLLLLLL7�LL�L6789:\]^_`abc����LLLLq ��L��)))0)/0z(00qLL,`�q,q,L������J�j�����pLWXL����qLq^_`abcq)�)�)0)000�,,q,,�����/�)������0�����,�����LL�L���LLL�q����qLL���� !"#$%&'()*+�LLLLLLLL]_qLqLLb���L]_�qv{��q�rrL�L�LLLLqLqrquuJKLMNOPQSTWXSSv���q��qu�LZ[\]^_`abcL��SLL��w��LqLrLLL�ttqrqqqL�b9<>DF�rtrru�gq<>DFqSu�qqururqrSSSq�q�qq�ruu�u��StSSu��������t��������rtSt����r��������������utt��utS��J��������OPS�����WXt�������������rrZ[\]^_`abcruurt�tuSSJKLMNOPQRSTUVWXSrurrYZ[\]^_`abcS
�#ruruuttSSStuu�rStSrrrr�uttt�uSuuuJKLMNOP�STrWXStrSStSrr�rZ[\]^_`abc�urrurruu�StuSSStuuttStuuSSSS,-.�����������t����t��ttt�������������tttt��	

 !"#$%&'()*+,-./0123456789:;<=>?@����������������ABC���������������������������JKLMNOPQRSTUVWX�������������������������������������YZ[\]^_`abc��������������������������������������������������������������������JKLMNOPQRSTUVWX������������������Y�Z[\]^_`abc������������������������������������������JKLMNOPQRSTUVWX������������������Y�Z[\]^_`abc�������������������������������������������������������������JKLMNOPQRST����WX������������������������������������Z[\]^_`abc�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������O�����O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O���O�O�O�O������������������������������������������������������Y�����Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y��Y�Y�Y�Y�Y�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	������
��
� !"#$%&'()*+,-./0123456789:;<=>?@ABC�����	��
����
� !"#$%&'()*+,-./0123456789:;<=>?@ABC�����	��
����
� !"#$%&'()*+,-./0123456789:;<=>?@ABC�����	��
��
� !"#$%&'()*+,-./0123456789:;<=>?@�	����
ABC
����� !"#$%&'()*+,-./0123456789:;<=>?@�	
ABC
����� !"#$%&'()*+,-./012�456789:;<=>?@ABC�������	

� !"#$%&'()*+,-./0123456789:;<=>?@ABC�������	

� !"#$%&'()*+,-./0123456789:;<=>?@ABC��	����

 !"#$%&'()*+,-./0123456789:;<=>?@ABC�������	��

� !"#$%&'()*+,-./0123456789:;<=>?@�	
ABC
����� !"#$%&'()*+,-./0123456789:;<=>?@��	
ABC
����� !"#$%&'(�)*+,-./01��456���89�;<=>?@	
A�C
� !"#$%&'()*+,-./01��45689:;<=>?@	
ABC
12 !"#$%&'()*+,-./01��45689:;<=>?@	
ABC
� !"#$%&'()*+,-./0123456789:;<=>?@	
ABC
�� !"#$%&'()*+,-./0123456789:;<=>?@ABC�yz{|}~������������������������������������%&�(�������������������������������yz{|}~�������������������������������������������������������������������yz{|}~�������������������������������������������������������9�������������yz{|}~������������������������������������������������������9�������������yz{|}~������������������������������������������������������������������	�

������ !"#$%&'()*+,-./�45689:;<=>?@	

������ !"#$%&'()*+,-./�45689:;<=>?@	

	 !"#$%&'()*+,-./0123456789:;<=>?@	
ABC
� !"#$%&'(�)*+,-./01��456���89�;<=>?@	
A�C
 !"#$%&'()*+,-./0123456789:;<=>?@	
ABC
������ !"#$%&'(�)*+,-./01��456d��89�;<=>?@	
A�C
������ !"#$%&'(�)*+,-./01��456��89�;<=>?@	
A�C
������ !"#$%&'(�)*+,-./01��456��89�;<=>?@	
A�C
������ !"#$%&'(�)*+,-./01��456d�89�;<=>?@	
A�C
������ !"#$%&'(�)*+,-./01��456�89�;<=>?@	
A�C
� !"#$%&'()*+,-./01��45689:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��456�89:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��456689:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��45689:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��456d89:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��45689:;<=>?@	
A�C
� !"#$%&'()*+,-./01��45689:;<=>?@	
A�C
 !"#$%&'()*+,-./01��45689:;<=>?@	
ABC
������ !"#$%&'()*+,-./F456G89:;<=>?@	

������ !"#$%&'()*+,-./p3456789:;<=>?@	

������ !"x$%&y()*+,-./z{�45689:;<=>?@	

������ !"x$%&y()*+,-./{�45689:;<=>?@	

������ !"#$%&'()*+,-./F45689:;<=>?@	

������ !"#$%&'()*+,-./��45689:;<=>?@	

������ !"#$%&'()*+,-./��45689:;<=>?@456�����������������������������Y5Z������������������������������h-i������������������������������k5l�������������������������������-��������������������������������5��������������������������������-��������������������������������5��������������������������������-��������������������������������-�������������������������������-������������������������������5������������������JKLMNOPQRSTUVWX�������������YZ[\]^_`abc�������������	�����������od����K���r�����K�V�����l)���>����������������������8����������7�����������%@�����b�������������������������������}���������������������
�&��5��m��>�V�����}�4�y
�g���#/��s����������'������b����6�����m�
�L���c������������"�����$����������\��������0#0#TVax l�S����"|�#0#�i�0�!��G�:�-�$�EF;�$$����$l%�%�Z��_������������������������������������������������������������������������������������������������������0#"�0#0#0#�0#�FF��8�`�v G���n�����V�$e�M[r���w�G����4�V�i�0����$�zR�F�R��1|L&��	������������W��3�97��������$$$$4$$���0���� �V�	� 0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#A
�j'�!��$$i�a����2JM~�$/�r�����7��0<]��������'���#�#��6���M0#0#���
(�Z(0#0#�������()�\�����c�0#�-
(Z(0#0*���>:�!� ��x ���MQ��RL&�(��(������������-��S�����X�0#�����������0#�_d���L&f���h�������	4���*��vv�??�����6p
�g����������R�n??�`!�`J)��)�!�Q�i����)��'�$s�����4�Fc0#��0#F�GH�
�Ux��������$Fy���F�����RL&RY���'�������������h�������0#�����������p�����������r���!�RL&�#0#��#�#�0���#�#�0���H"7�X�7�����~�X��t�$i�$�Y����\h�h��Z��0#����0#0#�0#0#�\�������t������0#h��o�����h�����������������&��������e�rf0#�RF0#�F�F����#�F�F��_���t�$�������"��?�i������i���F0#���������B����������������&h�S|o��h�������F�F,'������������&�������s�
�����r�h�����������|��:*���"�����]�������R���������
�$�)�'��Fh���24��������Q�*��*�X���
���������9�@�������
�����������DEF�:;��HIiJK��MNOPQ�R�|}����`/�T�����������UgukTlU�����UW���WXYZ[\]^_`�=�QRt	
��%��&���
r��Cab��80A��D��K��cdefghi&�j*kl(," $�����"m!nop��s��P���t���~����*+����-.������V
��vy2�3����>o[\]TUVYWXZOPQR*kk
]_��^�����
"vvT���������i	!,/76HLV4�8;i83������	
<�����������������������������������������sut�����������������������������xz|vwy{��
Fv	
vWGEkDv�Ckl�OP*-���'ikJkoo�oUkRS\]d5�������3��rstj���=2��XPM�v�5ijih	
noq	
H�������stSJRhg4�}Z'\	�v�k,k�vv�k12.��k%
jI!#(qp�q�)Vc�ZU�v�*�������������������u01vv:>v"+kNY.-�
*���������������k����������`bac�k`bacv`_'�v�@EnopC�v�L`a#�)��Yv`ak`aX+m���0� ���KkoS`bk`a0-,+.6?J@NMI*�)�/1248=vBvGL��������k��vWQ�A��?v^vv�vavc9b<?d&k`anorkk**��9�~[
�vk$�[^ulnkjk�"7QA%K'O�������k2|:;vvE||z�O�(�'�B�n%�&�@���v�vfd>�F�ITkM����/ks3C5>vPH2����9xy������$��g�67vADKkvqm�� &#(�D{||'�<v|F||�k��;�efm�:=���to�d&w����l�v�vvGr��!$�||||�dkk`a�eBNp�}���|~		���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	



  !"!#$%&!''''())))*++,,,,-----.......//001123224546666778888888888888889999::;<<==>??@@AABBCCDDEFGGHHIIJJKKLMMNONPPQQRRRRSSSTTTTUUUVVWWXXYZ[[[\\]]^������������ (06;:OOW_ju}��������������%12:BJRUabefrq��������������	#+4<EMV^ijt|��������������)7CLOW_ijklq|}��������������������������������������������������������������������������������� *6DRZbjrz����������������				&	.	6	6	?	I	O	[	\	`	h	r	|	}	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	



%
4
>
?
@
A
B
C
D
E
F
G
H
Q
P
l
l
u
y
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�

$$$/:CEB��������������
#)/5;AGMSYcinov{~����������������




#
(
-
1
5
9
=
A
I
M
Q
U
Y
]
a
e
i
o
p
v
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
%1?IHYXhqp��������������� #$,/@ABLVq��������
#,6?JQ\cry�������������	 !"%01<=>?BCDEFIJKLMNOR_iq{|������������������������	#-9:AJSfm{���������������+,/<GHK\`jtt��������������������	����������W��^������]�����������/�����������W��^������]�����������/��������-�����-66��-6B��-6A������(����)����*����+����,���0���������t���0Y������ZY�����4Y�����8Y����W8Y����W4Y���1Y����t����t�������t����t�������%����&���'X���������������������VT�����`������S�������������T�����T�����WT����WT���� ������������������[�Y�����[�Y����������a����a������a���a����a���a�����a��a�������[�Y�������������������-��.�����Z����4���W4����8���W8��X8��1��-��.�����Z����4���W4����8���W8��X8��1��4��8��X�������W���4��8��5�����������(�����*�������������y��z��{��G��H��I��O��P��w��K��x��L��J��U��V��|��}��~��a�������F��b��������D��E��S��T�����1��2��3��/��0��-��%������������.��������
��	��$����������"��'��&����������!�� ��
��#�����������������t����t�,���0Y���0Y�,������ZY�����4Y�����8Y����W4Y����W8Y���X8Y���1Y����Q����R����|����}����~�������������F����,F���D���E����y����z����{����G����w����K����x����L����H����I����J����O����P������������U����V����M����N�����.X�����u�Xv���������^���[����Q[��Q[����Y��^�����^�����������Q���Q����������Q�����Q������������c�������^�����a����������a����������������a���a�������������������/��1��5������������\�Y������\���Y��[�����W8��X8��^����_P�������Y���Y������.X���Y��'��Y��'�Y���������d�����������������������������������������������W	����W	���������������������2����������U��\�������������������4���������NV���4�����������������������������������
��\��
��\
��\�������������^�����������:��[�Y���������������a:����a:������a����a����a:��a:����a��a����A�DM��AM��DM��L��������=�G�J���=�G�J�=���=�G���=�G�=���=�J���=���=�J�=���=���G�J���G�J�=���G���G�=���J���J�=������^�����y�y��N��y��y��X��X��X����������4��9�������������������8����8��q�����
�������
������VT���VT���VT������������T������WT����WU������������W��� ��� �����Z��������������
�����
�����	��
����^��������^��Z���^��	���^��+��(��*����@������fp��gp��h C��i�p��ip�������!��!��k�p��kp�������j�p��jp��l�p��lp����?�����?�����!����!���� !��?����o"'����������m#$%&�n��6��7��9��1��e)�����7��6��9��ep��,���,��;��<��=��>��4��7��6��8��9��"��!��#��$��2��1��3��-��.��-��.��A��B��\����x3�\��\���8Y����58\��B�DM��BM��DM��L���6����=�H�J7��=�H�J�=7��=�H7��=�H�=7��=�J7��=�J�=7��=7��H�J7��H�J�=7��H7��H�=7��J7��J�=7��6����8��7��6��9��9��4��:��;��[�Y��<��=�<��:��>���>��>���>��@��A�@��?��B�?��F��b��C4��C��;t���;t���F��G�F��E��H�E��~��a��I4��I��{��c��K4���L��^��/�����O�Y��^��Q[��R��Q�R���Z���:���fr���b���4��8��5��4��8��5�����4��5��������W����]�������X���X�����������������\��]�����
#&(*.134:;@DHLOSW[_chjnry�����������������������������������

"')-/36:<@BDIMQUY\^`bgkoswz|~��������������������������������������������������������������	
!#%')+-/15;?ELRX^dimquy}����������������������������������
$&'*-0247;@BDHMPRTVXZ\^`bdfglmqrsy}���������������������������������	 "$&(*,.02468:<>@CEGIOQTVXZ^`dfkrv|��������������������������������	
!"(+06<?@FGMQRWX]`bghnou{}����������������������������������������������
"$')+-/13579;=?ACEGIKMOQSUV[^bcglortwx��������������������������������������
!$&().0359=@EHJLNPRTVXZ\^`acdfilmoqsuwz����{��~|�}�v�xtwu��z��y��QRDEFGUVLKHIJOPSTMN	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCWXYZ[\]^_`abcdefghijklmnopqrs��H�%H�% @!!		&&##  

+@""*(@�$$�%%
'@001122//,,�..--)��GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�}0~F�nD�LV`vtC0�na�A�D [
FAHYCA(��A�A�G p
DAJ,�\�]
Gj
FW
IfJ�(gW�A�D nDAQ��D@c�\ `lA�f
I^
B4�AB�E�A �F(�I0W(F DEB8�yB�E�D �A(�G0X
(D ABBD@�JB�B�B �A(�G0�GP�
0A(A BBBD0<1E�D�G M
AAADGApC4��B�B�D �A(�D0�(A ABB$�DA�I�D pDA,��B�D�I �Q
IBE(^F�D�A �HDB(@gA�A�G f
AAGPlLB�D�D �G0t
 AABGL
 AABHI
 AABK0�oA�D�G \
CADxEA8��B�B�D �D(�F0z
(D ABBK(0\E�A�C �x
ABD(\DA�G�K I
IAJ$�GA�D�J uAAH��K�D�D �R
ABH
ABG@���H ���L�XB�E�D �A(�D0�
(A ABBEe
(A ABBE4L�A�G �
ACP
AGo
DE4��B�G�I �A(�N0V(F ABB,��A�M
F���J���
A0�XA�L�G `
AAJSCAp hB�E�D �H(�G0
(G DBBHm
(D DBBG}
(D ABBJS
(D ABBD8�HB�E�A �D(�G0

(A ABBAL�$B�B�E �D(�D0��
(A BBBAg
(A BBBA, �B�A�D �
ABA\P�F�B�B �B(�A0�A8�D@t
8A0A(B BBBHT8F0A(B BBB�qE�g(�VB�D�G �h
RBG4��B�E�D �K(�DP�(A ABB0DJXaK�k
J\(xXQ�M�K cF�A��8��B�E�E �D(�D0��(D BBB0��A�G�G b
DAJwDA(	Z<	
P	H(d	�A�D�G C
AAG�	t�	IH�	�B�E�D �D(�G0T
(A ABBH\(C ABB$
SA�D�J AAA0,
YA�D�J q
FAIDCA`
�K�LI��|
�B�E�B �E(�A0�H8�G��
8C0A(B BBBFX
8F0A(B BBBIZ
8F0A(B BBBGL
8F0A(B BBBAH8B�B�B �B(�A0�A8�D@�
8D0A(B BBBH8`�B�B�D �A(�G0f
(D ABBA8��F�D�D �D
ABKs
ABJ8��F�B�D �A(�G0g
(D ABBD8A�^
A40�A�A�G u
DAEN
DAE(hwA�A�G l
CAGH��A�D�L j
CAAe
CAGD
HAADDA,�jB�D�D �u
ABF4
oB�A�D �f
ABHsABH
6Dh
D$d
LA�A�G @AA8�
rB�B�B �D(�I0�W(A BBB�
A�TH�
�B�E�B �J(�A0�A8�GpO
8A0A(B BBBK\0�K�B�B �E(�A0�A8�D@�8A0A(B BBBF������A@������(��A�A�G �
AAA4��A�A�G w
AAND
AAJ(�ZB�A�D �v
ABH0 GA�G�G `
AAODAAHT�B�B�G �A(�D0n
(D ABBIa(D ABB��A�W
H$�Dq
AR
H_
E(��A�K�G `
AAKLyB�B�B �A(�D0��
(A BBBEy
(A BBBH�d�R�D�D �u
ABFM
CBFM
CBFM
CBFM
CBFM
CBFM
CBFp���H ���L��B�B�E �D(�A0�p
(A BBBKm
(D BBBIH8B�B�B �E(�A0�A8�I`W
8A0A(B BBBI,��B�D�A �\
ABJP��B�D�D �L
ABGA
ABLQ
ABDQ
ABDGA�i
FV$(^A�F�G FDAPPB�D�D �A
ABB�
ABJ�
ABK�
ABK,�#B�A�A �~
ABK4��A�~
AI
GO
AO
AO
AOP�B�A�D �B
ABD{
ABBD
ABI_
ABFD`xK�D�D �J
�G�B�J�ABA���C ��� ��A�c
DT
D(�A�C�G �
AAFP��S�F�E �D(�D0��
(C BBBG�
(C BBBK8LB�B�D �A(�G@
(D ABBEH��B�E�B �B(�D0�C8�Dp�
8D0A(B BBBE4�m	A�A�G@o
CAD�
CAE,*A�C
D��E�E�D�
EL<�B�E�E �B(�A0�A8�D��
8A0A(B BBBH,�=F�D�D �G0\ DAB$�4E�C�G0VIA,�GF�G�D �D0a IAB4�F�E�D �K(�DPn(A ABB$L4E�C�G0VIAHt�F�E�E �A(�D0�|
(A BBBHb(A BBBL��F�B�B �A(�A0�
(A BBBF�(A BBBH�F�B�B �B(�A0�D8�DP-
8D0A(B BBBA\$p�E�D�F lDA�E�(�>F�D�G �bDB(�AF�D�A �nAB,:F�D�D �G0\ AAB<+HWT$HWl+HW�8E�r(�YF�F�F �CAB4�pF�G�D �A(�I0N(A ABBH�F�E�E �D(�H0�z
(A BBBCB(A BBB PaE�q
JT
ELt;�F�E�B �B(�A0�A8�G��
8A0A(B BBBJ$zRx��������,
@NF�B�B �A(�A0��
(A BBBD	%'<&Uo'��(��)�}9}N}o���~���V�V�V�'`v;�Y#u�C�#���0n���9��.9WC~@�C���Pg���@*Glblpl���pA���9��y9)�H@JZ�����1����C1�J �V�r	��D�	��	�	���	�.
�8�	^.
0�
H0
gS�
z���
L���_�o_7I
T`�dI
��
�P
\��
��
 	�
D;	�
V	Go	G{	G�	B�	P��	B�	�
PX
�0
�K
��Y
�w
7�
���
7�
��
@��
�	H%�X4HR�nPh}����H��4�$4"�?@�O�j���������q��v� V	
�N
v9
"7��\
@Hm
"�
<�
0�
<�
��
@J�4�X�ao�w��X�X�X�}`}56 Y��p6 �� �@ ��� �Z!!Z,
HZ!m�!�`!H��!�3"��!��3"�"B@"t_�"�	#��"I�	#��#
#�*�#W$��#S�$�i$�$Yi$8�$Op$�Y�$w�'�%����T��"W�zW��'�)�'8);�)] )�r�)��*��)���*�i+�*�+i+S�+yp+8��+�<,��+��<,��-@,w�-=�.c�-�|�.��/��.j��/�o00o#o0N�0wp06��0��0��0L��0r1=1rUr1x�1��1��1�D5��1��D5&6KP5�c6��6�6���6�a7��6��a7�7p7Z)�7N8q�7G�8��8� 8���8�l9�8�.l9Rs:tp9�s:�)=��:��)=��>0=y�><�AX�>�g�A�8C��A��8C�HE@CHE0�EMPE�]�E{�F��E���F�7G��FG�7G�G<@G^S�G}�J��G��J��K��J#�K2pLS�K�gpL| P�pL��	x�	p� Px� P��Q�	h 	`0 �QL (Rf �Q�s (R� >T� 0R� >T� �W!@T�,!@>!�M!	�f!�W�!�[�!�W�!�["�a+"\�F"�ah"
k�"�am	�"
k�":}�"k*�"@#:}##��>#@}�L#��y#
��#
��#D��#D�$��<$��g$3��$3��$t��$t��$
�"%
�H%Оl%	P�%	H�%	@�%О�%x��%	8&	0/&	(H&	 a&	z&	�&	�&	�&x��&���&��'�;'�X'2�s'2��'~��'~��'���'��(
�+(
�O(;�q(;��(d��(d��(���(�� )إC)إc)9��)9��)���)���)Z��)Z�*��9*��U*�o*��Tx* �w}*	��*	��*	��*����* ���* ���*�b�*�T�*����*��+���+�H+	�/+

D+�^+^�v+	X&'()%�+ �+�+�+;�+>�+�+0�+A�+F�+H�+R�+V�+[�+b�+W�+g�+z�+��+��+��+�,p	,�,�,�,�!,�',�-, 3,�9,X?,E,/K,:Q,4W,S],Xc,\i,`o,iu,�{,��,��,��,��,��,��,��,��,��,��,0�,�,X�,��,��,B�,��,��,��,��,)�,�,_-�-{-�- -�#-P)-/-�5-�;-xA-0G-�M-S-XY-�_-�e-�k-�q-�w-+}-��-.�-�-1�-H�-0�-X�-x�-��-x�-d�-��-��-��-��-��-��-Q�-��-`�-.q.�.7.�.�$.�+.y2.�9.?@.�G.3N.9U.�\.c.`
j.0
q.�x.X.0�.��.��.
�.�
�.�
�.��.��.��.�.��.��.��.��.��.��.�.�
�.(/�/X/p/� /q'/h./Y5/�</�C/h	J/�Q/�X/_/@f/�m/�t/P{/��/
�/`
�/��/�/ �/�/��/��/��/8�/"�/�
�/��/�	�/�	�/��/�/�000=0�0 	0�
#0*0�10=0M0b0v0

 !"#$*+,�0�0�0�0�0`�0�0�0	11&151D1Y1m1~1�1�1�1�1�1�1�1
22+282H2U2b2v2�2�2�2�2�2�2�2�233*363E3P3^3n3}3�3�3�3�3�3�3�3�3�3�34 4.4A4H4V4a4s4�4�4�4�4�4�4�4�4�4�4555)535@5R5d5r5�5�5�5�5�5�5�5�5�5	66*616C6N6\6j6r6�6�6�6�6�6�6�6К=7�4767P�GM7X7���t7@�4�7����7���7О��7���7����7 ��78@�>'8��A78Ф:G8�+\8@�$o8p�+�8��8�8�Y�8@�p�8����8�8`�a�8Ч;��899!9C9Q9\9f9q9�9�9�9�9�9�9�9�9�9::.annobin_parse.c.annobin_parse.c_end.annobin_parse.c.hot.annobin_parse.c_end.hot.annobin_parse.c.unlikely.annobin_parse.c_end.unlikely.annobin_parse.c.startup.annobin_parse.c_end.startup.annobin_parse.c.exit.annobin_parse.c_end.exit.annobin_magic_comment_marker.start.annobin_magic_comment_marker.endmagic_comment_marker.annobin_is_static_content.start.annobin_is_static_content.endis_static_content.annobin_literal_node.start.annobin_literal_node.endliteral_node.annobin_append_literal_keys.start.annobin_append_literal_keys.endappend_literal_keys.annobin_parser_memsize.start.annobin_parser_memsize.endparser_memsize.annobin_comment_at_top.start.annobin_comment_at_top.endcomment_at_top.annobin_parser_heredoc_restore.start.annobin_parser_heredoc_restore.endparser_heredoc_restore.annobin_parser_peek_variable_name.start.annobin_parser_peek_variable_name.endparser_peek_variable_name.annobin_parser_tokspace.start.annobin_parser_tokspace.endparser_tokspace.annobin_parser_tokadd.start.annobin_parser_tokadd.endparser_tokadd.annobin_parser_newtok.start.annobin_parser_newtok.endparser_newtok.annobin_parser_tokaddmbc.start.annobin_parser_tokaddmbc.endparser_tokaddmbc.annobin_parser_str_new.start.annobin_parser_str_new.endparser_str_new.annobin_parser_set_encode.start.annobin_parser_set_encode.endparser_set_encode.annobin_magic_comment_encoding.start.annobin_magic_comment_encoding.endmagic_comment_encoding.annobin_warn_unless_e_option.start.annobin_warn_unless_e_option.endwarn_unless_e_option.annobin_fixup_nodes.start.annobin_fixup_nodes.endfixup_nodes.annobin_vtable_alloc.start.annobin_vtable_alloc.endvtable_alloc.annobin_local_push_gen.start.annobin_local_push_gen.endlocal_push_gen.annobin_parser_free.start.annobin_parser_free.end.annobin_vtable_add.start.annobin_vtable_add.endvtable_add.annobin_reg_fragment_setenc_gen.start.annobin_reg_fragment_setenc_gen.endreg_fragment_setenc_gen.annobin_reg_fragment_check_gen.start.annobin_reg_fragment_check_gen.endreg_fragment_check_gen.annobin_reg_compile_gen.start.annobin_reg_compile_gen.endreg_compile_gen.annobin_parser_set_number_literal.start.annobin_parser_set_number_literal.endparser_set_number_literal.annobin_parser_set_integer_literal.start.annobin_parser_set_integer_literal.endparser_set_integer_literal.annobin_attrset_gen.start.annobin_attrset_gen.endattrset_gen.annobin_arg_concat_gen.start.annobin_arg_concat_gen.endarg_concat_gen.annobin_reduce_nodes_gen.start.annobin_reduce_nodes_gen.endreduce_nodes_gen.annobin_dsym_node_gen.start.annobin_dsym_node_gen.enddsym_node_gen.annobin_yy_stack_print.start.annobin_yy_stack_print.endyy_stack_print.annobin_parser_yyerror.start.annobin_parser_yyerror.endparser_yyerror.annobin_parser_tok_hex.start.annobin_parser_tok_hex.endparser_tok_hex.annobin_value_expr_gen.start.annobin_value_expr_gen.endvalue_expr_gen.annobin_call_bin_op_gen.start.annobin_call_bin_op_gen.endcall_bin_op_gen.annobin_logop_gen.start.annobin_logop_gen.endlogop_gen.annobin_call_uni_op_gen.start.annobin_call_uni_op_gen.endcall_uni_op_gen.annobin_lex_get_str.start.annobin_lex_get_str.endlex_get_str.annobin_parser_mark.start.annobin_parser_mark.endparser_mark.annobin_yycompile.start.annobin_yycompile.endyycompileyycompile0.annobin_parser_compile_string.start.annobin_parser_compile_string.endparser_data_type.annobin_lex_io_gets.start.annobin_lex_io_gets.endlex_io_gets.annobin_vtable_included.part.1.start.annobin_vtable_included.part.1.endvtable_included.part.1.annobin_yy_symbol_print.isra.3.start.annobin_yy_symbol_print.isra.3.endyy_symbol_print.isra.3yytname.annobin_yydestruct.isra.5.start.annobin_yydestruct.isra.5.endyydestruct.isra.5.annobin_fixpos.part.7.start.annobin_fixpos.part.7.endfixpos.part.7.annobin_new_attr_op_assign_gen.start.annobin_new_attr_op_assign_gen.endnew_attr_op_assign_gen.annobin_new_const_op_assign_gen.start.annobin_new_const_op_assign_gen.endnew_const_op_assign_gen.annobin_newline_node.part.8.start.annobin_newline_node.part.8.endnewline_node.part.8newline_node.part.8.cold.62.annobin_dvar_curr_gen.isra.10.start.annobin_dvar_curr_gen.isra.10.enddvar_curr_gen.isra.10.annobin_new_yield_gen.start.annobin_new_yield_gen.endnew_yield_gen.annobin_rb_backref_error_gen.isra.14.start.annobin_rb_backref_error_gen.isra.14.endrb_backref_error_gen.isra.14.annobin_block_dup_check_gen.start.annobin_block_dup_check_gen.endblock_dup_check_gen.annobin_parser_whole_match_p.isra.18.start.annobin_parser_whole_match_p.isra.18.endparser_whole_match_p.isra.18.annobin_token_info_get_column.isra.19.start.annobin_token_info_get_column.isra.19.endtoken_info_get_column.isra.19.annobin_token_info_has_nonspaces.isra.20.start.annobin_token_info_has_nonspaces.isra.20.endtoken_info_has_nonspaces.isra.20.annobin_yytnamerr.start.annobin_yytnamerr.endyytnamerr.annobin_yysyntax_error.start.annobin_yysyntax_error.endyysyntax_erroryypactyycheckyytable.annobin_local_tbl_gen.isra.22.start.annobin_local_tbl_gen.isra.22.endlocal_tbl_gen.isra.22.annobin_parser_tokadd_mbchar.start.annobin_parser_tokadd_mbchar.endparser_tokadd_mbchar.annobin_parser_set_token_info.start.annobin_parser_set_token_info.endparser_set_token_info.annobin_parser_encode_length.start.annobin_parser_encode_length.endparser_encode_length.annobin_must_be_ascii_compatible.start.annobin_must_be_ascii_compatible.endmust_be_ascii_compatible.annobin_lex_getline.start.annobin_lex_getline.endlex_getline.annobin_parser_nextc.start.annobin_parser_nextc.endparser_nextc.annobin_dvar_defined_gen.isra.33.start.annobin_dvar_defined_gen.isra.33.enddvar_defined_gen.isra.33.annobin_void_expr_gen.isra.34.start.annobin_void_expr_gen.isra.34.endvoid_expr_gen.isra.34.annobin_void_stmts_gen.start.annobin_void_stmts_gen.endvoid_stmts_gen.annobin_is_private_local_id.part.37.start.annobin_is_private_local_id.part.37.endis_private_local_id.part.37.annobin_dyna_push_gen.isra.38.start.annobin_dyna_push_gen.isra.38.enddyna_push_gen.isra.38.annobin_token_info_push.part.39.start.annobin_token_info_push.part.39.endtoken_info_push.part.39.annobin_vtable_free.part.40.start.annobin_vtable_free.part.40.endvtable_free.part.40.annobin_new_args_tail_gen.start.annobin_new_args_tail_gen.endnew_args_tail_gen.annobin_warn_unused_var.isra.42.start.annobin_warn_unused_var.isra.42.endwarn_unused_var.isra.42.annobin_local_pop_gen.start.annobin_local_pop_gen.endlocal_pop_gen.annobin_dyna_pop_1.start.annobin_dyna_pop_1.enddyna_pop_1.annobin_dyna_pop_gen.start.annobin_dyna_pop_gen.enddyna_pop_gen.annobin_local_var_gen.isra.43.start.annobin_local_var_gen.isra.43.endlocal_var_gen.isra.43.annobin_literal_concat0.start.annobin_literal_concat0.endliteral_concat0.annobin_new_args_gen.isra.47.start.annobin_new_args_gen.isra.47.endnew_args_gen.isra.47.annobin_local_id_gen.isra.48.start.annobin_local_id_gen.isra.48.endlocal_id_gen.isra.48.annobin_gettable_gen.start.annobin_gettable_gen.endgettable_gen.annobin_new_op_assign_gen.start.annobin_new_op_assign_gen.endnew_op_assign_gen.annobin_assignable_gen.start.annobin_assignable_gen.endassignable_gen.annobin_block_append_gen.part.50.start.annobin_block_append_gen.part.50.endblock_append_gen.part.50.annobin_new_hash_gen.start.annobin_new_hash_gen.endnew_hash_gen.annobin_list_append_gen.start.annobin_list_append_gen.endlist_append_gen.annobin_arg_append_gen.start.annobin_arg_append_gen.endarg_append_gen.annobin_node_assign_gen.start.annobin_node_assign_gen.endnode_assign_gen.annobin_evstr2dstr_gen.part.53.start.annobin_evstr2dstr_gen.part.53.endevstr2dstr_gen.part.53.annobin_literal_concat_gen.part.54.start.annobin_literal_concat_gen.part.54.endliteral_concat_gen.part.54.annobin_shadowing_lvar_0.start.annobin_shadowing_lvar_0.endshadowing_lvar_0.annobin_formal_argument_gen.start.annobin_formal_argument_gen.endformal_argument_gen.annobin_cond0.start.annobin_cond0.endcond0rb_intern_id_cache.16604rb_intern_id_cache.16602range_op.annobin_range_op.start.annobin_range_op.endrb_intern_id_cache.16577rb_intern_id_cache.16575.annobin_ret_args_gen.start.annobin_ret_args_gen.endret_args_gen.annobin_tokadd_ident.start.annobin_tokadd_ident.endtokadd_ident.annobin_reg_named_capture_assign_iter.start.annobin_reg_named_capture_assign_iter.endreg_named_capture_assign_iterasso_values.15687wordlist.15697rb_intern_id_cache.16880.annobin_parser_number_literal_suffix.start.annobin_parser_number_literal_suffix.endparser_number_literal_suffix.annobin_parser_tokadd_utf8.isra.55.start.annobin_parser_tokadd_utf8.isra.55.endparser_tokadd_utf8.isra.55.annobin_parser_read_escape.start.annobin_parser_read_escape.endparser_read_escape.annobin_parser_tokadd_string.start.annobin_parser_tokadd_string.endparser_tokadd_stringmixed_msg.15549.annobin_parse_numeric.start.annobin_parse_numeric.endparse_numeric.annobin_rb_parser_compile_string_path.start.annobin_rb_parser_compile_string_path.end.annobin_rb_parser_compile_string.start.annobin_rb_parser_compile_string.end.annobin_rb_parser_compile_cstr.start.annobin_rb_parser_compile_cstr.end.annobin_rb_parser_compile_file_path.start.annobin_rb_parser_compile_file_path.end.annobin_rb_parser_compile_file.start.annobin_rb_parser_compile_file.end.annobin_rb_parser_reg_compile.start.annobin_rb_parser_reg_compile.end.annobin_rb_parser_append_print.start.annobin_rb_parser_append_print.endrb_intern_id_cache.16926rb_intern_id_cache.16924rb_intern_id_cache.16922.annobin_rb_parser_while_loop.start.annobin_rb_parser_while_loop.endrb_intern_id_cache.16945rb_intern_id_cache.16943rb_intern_id_cache.16941rb_intern_id_cache.16939rb_intern_id_cache.16937rb_intern_id_cache.16951rb_intern_id_cache.16949rb_intern_id_cache.16947.annobin_rb_init_parse.start.annobin_rb_init_parse.end.annobin_rb_reserved_word.start.annobin_rb_reserved_word.end.annobin_rb_parser_new.start.annobin_rb_parser_new.end.annobin_rb_compile_string.start.annobin_rb_compile_string.end.annobin_rb_compile_cstr.start.annobin_rb_compile_cstr.end.annobin_rb_compile_file.start.annobin_rb_compile_file.end.annobin_rb_parser_end_seen_p.start.annobin_rb_parser_end_seen_p.end.annobin_rb_parser_encoding.start.annobin_rb_parser_encoding.end.annobin_rb_parser_get_yydebug.start.annobin_rb_parser_get_yydebug.end.annobin_rb_parser_set_yydebug.start.annobin_rb_parser_set_yydebug.end.annobin_rb_parser_malloc.start.annobin_rb_parser_malloc.end.annobin_rb_parser_calloc.start.annobin_rb_parser_calloc.end.annobin_rb_parser_realloc.start.annobin_rb_parser_realloc.end.annobin_rb_parser_free.start.annobin_rb_parser_free.end.annobin_ruby_yyparse.start.annobin_ruby_yyparse.endyydefactyyr2rb_intern_id_cache.16892rb_intern_id_cache.16890rb_intern_id_cache.16888yyr1yypgotoyydefgotoyytranslateyystosyyrlineyyprhsyyrhsmagic_commentsrb_intern_id_cache.14866ruby_yyparse.cold.63.annobin_yycompile0.start.annobin_yycompile0.endrb_intern_id_cache.15272.LC2.LC1.LC0.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC13.LC14.LC12.LC15.LC16.LC17.LC18.LC19.LC20.LC22.LC24.LC23.LC25.LC27.LC26.LC28.LC30.LC29.LC31.LC32.LC33.LC35.LC34.LC36.LC37.LC38.LC39.LC40.LC41.LC44.LC50.LC42.LC49.LC48.LC46.LC45.LC47.LC43.LC51.LC53.LC52.LC54.LC56.LC55.LC63.LC57.LC58.LC59.LC60.LC62.LC61.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC74.LC72.LC73.LC71.LC75.LC77.LC82.LC76.LC78.LC81.LC79.LC80.LC83.LC84.LC85.LC86.LC87.LC88.LC90.LC89.LC91.LC94.LC95.LC92.LC93.LC96.LC99.LC97.LC98.LC104.LC105.LC180.LC147.LC181.LC106.LC182.LC183.LC178.LC149.LC150.LC103.LC146.LC148.LC179.LC107.LC116.LC118.LC145.LC169.LC155.LC153.LC154.LC174.LC173.LC160.LC159.LC152.LC157.LC158.LC164.LC166.LC165.LC167.LC162.LC161.LC163.LC109.LC110.LC100.LC108.LC134.LC117.LC140.LC125.LC139.LC101.LC144.LC143.LC135.LC176.LC151.LC129.LC141.LC114.LC111.LC112.LC113.LC115.LC119.LC120.LC132.LC133.LC123.LC172.LC171.LC102.LC156.LC126.LC127.LC138.LC170.LC168.LC177.LC130.LC131.LC184.LC124.LC175.LC142.LC121.LC122.LC128.LC136.LC137.LC186.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_isspacerb_str_freerb_gc_force_recycleruby_global_name_punct_bitsrb_isdigitrb_isalpharuby_xrealloc2ruby_xmalloc2rb_enc_codelenrb_enc_str_newrb_enc_dummy_prb_enc_str_coderangerb_usascii_encodingrb_utf8_encodingrb_ascii8bit_encodingrb_enc_associaterb_enc_find_indexrb_enc_from_indexrb_enc_associate_indexrb_sprintfrb_eArgErrorrb_make_backtracerb_ary_unshiftrb_make_exceptionrb_exc_raiserb_compile_warnrb_range_newruby_xmallocrb_ruby_verbose_ptrruby_xfreerb_bugrb_enc_getrb_compile_error_with_encrb_char_to_option_kcoderb_enc_set_indexrb_enc_get_indexrb_reg_check_preprocessrb_obj_as_stringrb_errinforb_reg_compilerb_attr_getrb_set_errinforb_str_catrb_str_appendrb_node_newnoderb_complex_rawrb_rational_rawrb_id_attrsetrb_intern_strrb_id2symstderrfwrite__fprintf_chkfputcmemcpyrb_compile_error_appendonigenc_get_prev_char_head__stack_chk_failruby_scan_hexrb_compile_warningmemchrrb_str_subseqrb_gc_markrb_str_new_frozenrb_suppress_tracingrb_check_typeddatarb_parse_in_evalrb_io_getsstrncmpstrlenstpcpyrb_enc_precise_mbclenstrcasecmprb_memcicmprb_raiserb_ary_pushrb_dvar_definedrb_id2namerb_id2strruby_xcallocrb_enc_compatiblerb_str_buf_appendrb_str_resizerb_out_of_intrb_local_definedrb_enc_from_encodingrb_str_duprb_global_entryst_init_numtable_with_sizest_insertst_lookupst_foreachst_free_tablerb_enc_str_new_staticrb_intern2strcmprb_enc_symname2_prb_intern3ruby_scan_octruby_snprintfmemmoverb_cstr_to_inumrb_int_positive_powrb_rational_newruby_strtod__errno_locationrb_float_new_in_heaprb_isxdigitrb_parser_compile_string_pathrb_parser_compile_stringrb_filesystem_str_new_cstrrb_parser_compile_cstrrb_str_newrb_parser_compile_file_pathrb_parser_compile_filerb_parser_reg_compilerb_parser_append_printrb_parser_while_looprb_init_parserb_reserved_wordrb_parser_newrb_data_typed_object_allocrb_compile_stringrb_compile_cstrrb_compile_filerb_parser_end_seen_prb_parser_encodingrb_parser_get_yydebugrb_parser_set_yydebugrb_parser_mallocrb_parser_callocrb_parser_reallocruby_xreallocrb_parser_freeruby_yyparseonig_foreach_namerb_isupperrb_isalnumst_locale_insensitive_strncasecmprb_str_internrb_funcallrb_cArrayrb_fstringruby_scan_digitsrb_parse_in_mainrb_internrb_safe_levelrb_cObjectrb_const_defined_atrb_get_coveragesrb_const_get_atrb_ary_newrb_hash_asetrb_ary_tmp_new_fillrb_ary_tmp_new�~��������	������������������*�������������������������������������������������E���������b������������������������������������������������������������������(���������3���������V���������h���������}�������������������
������������������ *���������,���������@���������L���������Y���������f���������n���������x�������������������������������������Q����������������������������������������������������������� 	���������M	����������	����������	����������	���������

���������
���������y
����������
����������
����������
����������
���������������������������8���������E���������Q���������\���������i���������t����������������������������������������������������������$���������9���������P���������s���������������������������������������������������������������������
���������
���������;
���������@
���������l
����������
����������
������������������"���������������������������������������d����������������������������b���������j��������������������*��������������������������������������G�������������������	���������,���������������������������������������
���������$���������Q���������c���������j���������}������������������������������������������������6���������^x��������j���������u���������������������������������������������������������������������=��������������������������������������������������������������������������������������������������1�����������<����������������������������������������������������������������������������������,*���������5���������������������������������������| ���������� ����������!���������"���������-"���������b"����������"����������"���������j#����������#~���������#��������� $���������$���������%��P%x���%x�"�%x�y-&x�V&����������&���������t'����������'����������'����������'����������'����������'���������6(���������S(���������)���������J)����������)����������)����������)���������*���������
*���������-*���������G*���������O*����������*����������*���������+���������+���������-+���������5+���������K+���������S+���������r+����������+����������+*����������+����������+����������+���������,���������*,����������,����������,����������.����������.x��.���������/���������/���������/���������+/���������;/���������K/���������[/���������k/���������{/����������/����������/����������/����������/x��/���������0���������u0���������1����������1����������1����������1����������3����������4���������95���������@5����������5����������5����������5���������6���������6����������6����������7���������F8���������V8���������|8����������8����������8����������8����������8����������8���������h9����������:xd�:����������:���������h;����������;x��;���������{<����������<����������<����������<����������<����������<���������=���������=���������#=���������t=����������=����������=���������R>����������>x��>���������?���������#?���������;?���������S?���������k?����������?����������?x0�?���������@���������4@����������@���������A��������� A���������4B���������CB���������HB���������mB����������B����������B���������C���������C���������"C���������qC����������C����������C���������D���������!D���������pD���������xD����������D����������D����������D����������E����������E���������'F����������F���������XG���������lG����������G���������H����������H����������I����������I����������I���������J���������bK���������tK����������K����������K����������KxdL���������3L���������CL���������SL���������cL����������L����������L����������L����������Lx�M���������8MtFM���������MMlhM����������M����������M����������M����������M���������N���������bN���������gN����������N���������
O���������O���������O���������BO���������tO����������O����������O����������O����������O����������O����������OlP���������
P���������Pt�P����������Pd�P����������P\�P���������Q���������2Q���������[Q���������eQ���������oQd�Q����������Q����������Q\R���������R���������*S���������1S����������Tx<�T���������U���������*U���������<U���������wU����������U����������U����������U|V���������}V���������W���������W���������#W���������<W���������jW����������W����������W����������W|SY����������Y����������Y���������Y���������zZ����������Z����������Z���������F\����������\����������]����������]����������]���������(_���������/_���������F_����������_��������	`���������3`��������a���������ax�c���������d����������d����������d����������e����������e���������Lg���������Qg���������Fh���������Mh����������i����������i���������m���������&m����������m���������n���������`nx<0o���������Go����������ox<�o����������o~��������r����������r����������s����������s���������3tx<Lt���������\u���������pu����������u���������Iv����������v����������v���������w��������x~��������|���������,|���������p|���������u|����������|���������)}x�}xx?~��������D~����������~����������~����������~����������~�������������������{����������܁���������M����������T����������q����������x������������������������������������������������������A����������L����������K����������R����������Ç���������N���������\����������������������������������������������������������������������������������������������������������������������0����������7�����������������������������������������B���������������������œ���������/����������4��������������������������������������������������������������™���������(����������n����������y�������������<ɛ�������������������X���������������������������������������������������������������+��<3����������U�Lc����������j�D����������������������՝<����������C�Lh�	��������m����������w�<������������������������D������������������������L��<�����������)�47����������>�,R�$`����������g����������������������������������/�?�M����������T���������o�������������������������������C�
��������M����������T�^�n����������x����������������������������������������������¡���������ѡ����������������������$���������
�����������,#���������-����������7�4H����������M����������W�����������x<ߢ��������������������0����������������������<]����������e�������������������������������������������������������< ����������K��<P����������{��<��������������<����������������������$����������d�����������������������������������������A��������������������Ө������������������������������/���������w�x��ݩx�"�x�y#�*���������4�
��������>����������f�*���������v����������������������x����x��xX	�����������0����������{������������������������������5����������`��q��x��������������������?������������x��Юx��x�"��x�$�x�_�����������x�"��x|@����������r�x���*�����������������������������������������±*���������ӱ*�������������������9�x4��x�������������'���������C�*���������T���������\����������k�x�yڳx����������
�x|���������Q���������h�����������*�����������������������������������������״����������*����������x�����������/����������r���������z������������x���x��������������*����������������������������+�*���������<���������D����������S�x�y��*����������������������������������������������������!����������X���������Y����������y����������������������������������������������������c���������k�������������������������������ߺ~���������~�����������������������������;����������k����������=������������~������������������!���������=�~��������T�����������~����������~�������������������8����������L�x�*����������)����������������������x�J�x4}����������S�������������������������������W���������������������������������������������������������������������������8����������{����������%���������������������	���������������������>����������~���������������������C�����������������������������������������������������O����������{����������������������� �������������������n������������������������������������������A�������������������������������������������#����������f������������������������������������������Y��������������������� ����������Q������������������������������\�����������������������x����������������������F����������X���������������������]�����������������������������������������������������S������������������������������������������������������������������������������������2����������^�������������������������������������������&����������Z������������!�����������������������������
����������6�����������������������������������������r������������������������������������������Q����������j������������������������������������������������������������������������`�����������������������������������������8�"��������P��������������������������������������������������������������������������Q��������������������������������#��������������������������I�������������������9�������������������
���������v����������������������������t�������������������b�����������������������������$���������[�������������������?��������������������������������������^����������������������������b�����������������������������	���������b	����������	����������	����������	���������7
���������k
����������
���������e����������������������������g
����������
����������
���������"���������v������������������������������������������������X���������i�����������������������������K���������{���������������������������r��������������������������������������u�������������������Y����������������������������Y���������������������������������������T�������������������p$��������%�������������������&�������������������'��������������������������n�������������������*�����������������������������Q ���������� ����������!����������!���������."����������"����������"���������O#���������}#����������#����������$����������$����������$����������$���������%���������l%����������%���������&���������!&����������&����������&���������S'���������'����������'����������(����������(���������2)����������+���������d,���������.���������0.(���������.����������.���������"/)���������/����������/���������0���������P0���������|0����������0���������&1����������1���������
2���������;2���������{2*���������2����������2����������3����������3���������/4���������R4+��������o4����������4���������5����������5���������I6���������|6����������6����������6����������6,��������7���������/7-��������A7���������\7.���������7����������7/���������7����������70���������7���������81��������{9����������9����������:����������:���������!;*���������(;���������/;��������7;���������C;x|\;����������;����������;���������5=2��������L=���������V=����������=3���������=���������>4��������>5��������%>���������\>���������{>����������>����������?6���������?���������_@7���������@���������.A���������)B8��������>B����������B~��������CC~��������_C~���������C~���������D~��������E9��������E���������fE����������F����������F���������;H~��������xH���������H����������I:���������I���������GL~���������L����������L���������M��M;��������.M��������DM�$[M���������M����������M���������0N���������]N~���������N���������O~���������O9���������O���������P����������P<��������]Q����������Qx<�Q���������6R����������R���������VS=��������[S����������S~���������S~���������Tx�aUxTrU>��������JV����������V����������V?��������W@��������W���������]W����������W���������xY����������Y���������-Z���������4Z����������Zx:[;��������B[��������[[~���������[���������\x��\���������^]A���������_~��������)`	��������laB���������a���������e~��������_e~���������eC���������e����������eD���������e����������e~���������e~��������*fE��������/f���������>fF��������Mf���������hfG��������mf���������|fF���������f���������g~���������g~��������,h~��������ThH��������hh����������hI���������h����������h����������h���������3iJ��������Gi���������`iK��������ei���������jL��������'j���������Ej���������Oj���������[j�|j����������j����������j��j���������j����������j�*k~��������Hk��������sk����������k����������k���������Ml
��������qlM��������xl����������lN���������lN��������
m���������mO���������m���������n���������1n���������kn����������n����������n���������o���������Bo���������oo����������o*���������o����������o����������o�p�*p���������_p����������p����������p����������p���������+q���������]q����������q����������q��������rP��������r���������'r��r~��������6sQ��������Js���������csR��������hs����������s����������s���������!t~���������t����������t���������Su����������u����������u~��������Mv���������v~���������w���������x~��������az���������rz���������#{���������I~���������P~���������O�
��������w����������ڀS�����������������������������΂T������������������0���������7�U��������<����������H�V������������������������������̄���������ф���������r�~����������W���������������������X��������������������Y������������������I����������t�~�������������������
����������6�Z��������;����������J�F��������Y����������։������������������������������ы����������[��������Ռ��������Z�~��������̍���������~��������Z������������x</�9��������4����������J������������\��������������������]�������������������%�^��������,����������x�~���������_��������������������R������������������������������`��������ƒ���������ߒa������������������5������������������������������������������=����������D����������a���������p�T��*�����������������������������ږ��������	������������������������������p�����������������������������٘���������������������b������������������'�T8���������I���������U���������������������������*
���������3���������q���������
���������j���������8�����������������������������T���������!���������|"����������"���������#����������$���������6*����������.����������1���������`:���������@����������p����������.��������������������`��������������������������������}$� ���}$,}P}X��}�����V���VV�DVL�p�x#���#�#��#�0�89d�l9�9�C�9�C�C��$C,�P�X�����l��ll�DlL�p�x9���9�9��9�0�8�d�l����������$,�P�X	���	�	��	�	��		�		.
D	�	L	.
p	.
x	�
�	.
�	�
�	�
�	�
�

�0
�8
_d
�l
_�
_�
I
�
_�
I
�
I
�
�
$I
,�
P�
X�
��
��
��
�G��
�GGBDGLBpBx��B������
�
�0
�8
7d
�l
7�
7�
��
7�
��
��
H$�,HPHX��H��������4DL4p4x��4��������0�8d�l��v��v�v�"$v,"P"X<�"�<�<���<����D�L�p�xX���X�X�}X}0}86 d}l6 �6 �� �6 �� �� �Z!$� ,Z!PZ!X�!�Z!��!��!�3"��!�3"3"�"D3"L�"p�"x	#��"�	#�	#��#	#�#0�#8$d�#l$�$�i$�$�i$�i$��$$i$,�$P�$X�'��$��'��'�)��'�))�)D)L�)p�)x�*��)��*��*�i+�*i+0i+8�+di+l�+��+�<,��+�<,�<,��-$<,,�-P�-X�.��-��.��.��/��.��/�/o0D�/Lo0po0x�0�o0��0��0��0�0�00�08r1d�0lr1�r1��1�r1��1��1�D5$�1,D5PD5X6�D5�6�6��6�6��6�6a7D�6La7pa7x�7�a7��7��7�8�78088�8d8l�8��8�l9��8�l9�l9�s:$ l9, s:P s:X )=� s:� )=� )=� �>� )=� �>!�>!�AD!�>L!�Ap!�Ax!8C�!�A�!8C�!8C�!HE"8C"HE0"HE8"�Ed"HEl"�E�"�E�"�F�"�E�"�F�"�F�"7G$#�F,#7GP#7GX#�G�#7G�#�G�#�G�#�J�#�G�#�J$�J$�KD$�JL$�Kp$�Kx$pL�$�K�$pL�$pL�$ P%pL% P0% P8%�Qd% Pl%�Q�%�Q�%(R�%�Q�%(R�%(R�%>T$&(R,&>TP&>TX&�W�&>T�&�W�&�W�&�[�&�W�&�['�['�aD'�[L'�ap'�ax'
k�'�a�'
k�'
k�':}(
k(:}0(:}8(��d(:}l(���(���(
��(���(
��(
��(D�$)
�,)D�P)D�X)���)D��)���)���)3��)���)3�*3�*t�D*3�L*t�p*t�x*
��*t��*
��*
��*О+
�+О0+О8+x�d+Оl+x��+x��+���+x��+���+���+�$,��,,�P,�X,2��,��,2��,2��,~��,2��,~�-~�-��D-~�L-��p-��x-
��-���-
��-
��-;�.
�.;�0.;�8.d�d.;�l.d��.d��.���.d��.���.���.إ$/��,/إP/إX/9��/إ�/9��/9��/���/9��/��0��0Z�D0��L0Z�p0Z�x0���0Z��0���0���0�1��1�01�81^�d1�l1^� � � � �������� �$�(,048<�@�D�HLP�T�X�\`d	h
lptx|!�%�)�-�1�5�9�=�A�E�I�M�Q����'�L&�t'��'��'��'��/�/�/�/�/�"/�&/�*/�./�2/�6/�D/�H/L/P//X/\/`/Z/^/ b/$�/(�/,�/0r/4v/8z/<�/@�/D�/H�/L�/P�/T�/X�/\�/`�/d�/h�/l�/p�/t�/x�/|�/��/��/��/��/�0� 0��/�H0�\0��/��/�0�0�00��0��/��0��/��/�/�/�/��/��/�*/�0�2/�0�:/�>/�B/�F/J/N/R/V/Z/^/b/f/ <0$n/(D0,v/0z/4~/8�/<�/@�/D�/H�/L�/P�/T�/X�/\�/`�/d�/h�/l�/p�/t�/x�/|�/��/��/��/��/��/��/��/��/��/��/��0��/��/��/�0�0�
0�0�0�0�0�0�"0�&0�*0�.0�20�60�:0�>0�B0�F0J0N0R0V0Z0^0b0f0 <1$n0(r0,v00z04~08T1<X1@\1D�0Hd1L�0P�0Tp1Xt1\x1`�0d�1h;l;p(;t<;x�;|�;��;��;��;��;��;��;��;��;��;��;��;��;��:�<�t<�<�|<��<��<��;��<��<��<��;��<��;�?�$?�@?�\?��?��?�?�?�?�?�?�?�?�? �?$�?(�?,�?08?4h@8�@<X@@�@DAHALH@PATAXA\0@`Ad@h LldLp8LtlLxpL|tL�XL�|L��L��L�xL��L�@L� N�$N��M��M��M��M��M��M��M��M��M��M��M��M��M��M��M��M��M�N�N�	N�
N�N�NNN!N%N)N-N1N5N 9N$=N(AN,EN0IN4MN8\N<�N@�ND]NHaNLOP�MT�MXqN\uN`yNd}Nh�Nl�Np�Nt�Nx�N|�N��N��N��N��N��N��N��N��N��N��N��N��N��O��O��N��N��N��N��N��N��N��N��N��N��N��N�O�$O��d��d��d��d�d�d�d�d�f�f�f�f �f$g(g,g0g4g8g<�c@gD#gH'gL+gP/gT3gX7g\;g`?gd�dhGglKgpOgtSgxWg|[g�_g�cg�gg�kg�og�sg�wg�{g�g��g��g��g��g��c�d��c��g�<d�d��g��g��g��g��g��g��g��e��g��g��g� d�dd f�g�d�g�d�|�k�k �k$�k(},}0}4�k8�k<}@�kD�kH�kL�kP�kT�kX�k\�k`�kd�kh�kllpltlxl|W}�[}�l�l�#l�'l�+l�/l�3l�7l�;l�?l�Cl�Gl�Kl�Ol�Sl�Wl�[l�_l�cl�gl�kl�ol�sl�wl�{l�l��l��l��l��}��}�l�l�l�l�l�l�l�l �l$�l(�l,�l0�l4�l8�l<�l@�lD�lH�lL�lP�lT�lX�l\�l`�ld�lh�llmpmtO~xS~|����������������������������������������Ž�Ǝ�ʎ�Ύ�Ҏ�֎�l�ގ�������������������	�	�	
�	�	�	�	�	� 	"�$	&�(	*�,	.�0	2�4	6�8	:�<	>�@	|~D	F�H	J�L	N�P	R�T	V�X	�\	��`	��d	Ah	sl	Up	&t	x	�|	��	���	���	�5�	�4�	�4�	�4�	&6�	�5�	F6�	=�	y.�	���	���	f��	4��	��	���	���	a�	��	��	��	U�	b�	��	Q��	��	���	���	a��	q��	#�
��
��
��
8�
�
�
D�
 
g$
(
�,
X�0
R4
`�8
d�<
h�@
ED
�H
rL
EP
9T
X
�\
P`
d
F	h
	l
�p
�t
^x
#|
���
"�
���
��
�
�
z
�
H
�
�	�
d�
�
��
o��
E��
��
��
��
���
���
h��
U��
D��
3��
���
��
��
��
E��
��
���
���
F��
��
�����	���I�9�D�
� �$��(T�,X�0\�4��8��<h�@l�Dm�Ht�L4�P*�T�X�\�`�d�h�l�p�t��x��|������������������������������������{��u��o��i��c��]��W��Q��l��������������������� ��$��(�,�0�4�8�<�@�D�H� L�$P�(T�,X�0\�4`�8d�<h�@l�Dp�Ht�Lx�P|�T��X��\��`��d��h��l��p��tj�xl�|U�������������#��������������t��\��D��,����������������u��]��E��-�������������������J��2������
��
�
�
��
�
�
��
�� 
J�$
-�(
��,
X�0
��4
��8
A�<
��@
l�D
p�H
t�L
x�P
P�T
(�X
��\
w�`
_�d

�h
��l
��p
��t
��x
��|
���
���
P��
��
G�
��
���
IJ�
��
z�
J�
Բ�
ز�
ܲ�
��
��
��
��
��
��
���
B�
�
��
��
��
y�
o�
a�
\�
*�
9�
����PF� �$�(T�,�0�4�8y<f@`DH�
L�
P�
TC
X
\
`g6d]4h4l�3p�3tY3x�7|�7�7��6��8�{8�����;�};��;��#�q#�@#�#��"�=��<�S=��9�w<�F<��<����������������:�� ��:��(�,�1�,�������w�
� ��$q�(4�,��0��44�8�<�@��D��H��L��P��T��Xb�\@�`�d��h��l��pg�tE�x��|������w��0�����'�������������Դ�ش����������p��W��H��}��x��t��o��S��*����������������������^�E������T�;��/�/ }/$	,(z.,.0�-4a-8�)<h�@l�D)Ht�L�(P�(T��XL-\��`L-d��h��l-p��t�,x��|����-��-��+�@*��,��,�����̵�u�F�A�>�(��'��'��'��'��'��'��'�M'�J'�&'�#'��&��&�t&���`&�)��(�(�(�(/�������H� ��$P�(T�,X�0\�4��8d�<&�@l�Dp�Ht�Lx�P|�T��X��\��`��dD�h>�l8�p2�t<x6|0����3��3��3��������3�5��4��4��4�R5�/5��5��%��2�q2�m2�[2�82�2��1��1�Q3�/3�3��2��3��3��3�1�51�0�0�0�"�"q"D�f" D"$"(.!,X�0� 4� 8x <% @�D(5H$5L�4P�4T$X��\��`$d�#h�#l<#p8#t#x#|X%�������%��$��������$��%��%�7��6��6�ܷ��?�����1����:��%�������������������� ��$��(�,�0�4�8�<�@�D�H� L�$d�(T�,X�0p�4E;8R�<V�@�D�H"�Lf�P*�T.�X2�\6�`h�d��hp�lt�px�tN�xR�|V��Z��^��b��f��j��n��r��v��z��������������������Ľ���������{��5��w���������������o��)��������}����������������� ��$T�(
�,K�0��4��8[�<[�@�D�H"�L&�P*�T.�X2�\6�`:�d>�hB�lF�pJ�tN�xR�|V��Z��^��b��f��j��n��r��v��z��~��������u���� �������������������������������������������������������������������� ��$��(��,s�0��4>�8e�<i�@NIDq�HVIL��P��TbIXfI\��`�d��h/�l��p��t!�x}�|����������������������������������������������I��I��I��I��I��I��I��I��I��I��I��I��I��I��I�J�J�
JJJJJJ"J&J*J .J$Q�(6J,:J0}�4��8FJ<JJ@NJDRJHVJLZJP^JTbJXfJ\jJ`nJdrJhvJlzJp~Jt�Jx�J|�J��J��J��J��J��J��J��J��J��J��J��J�����l�rl�vl�zl�~l��l�Vl��l��l��l�fl�jl��l��l��l��l��l��l�Q��N�K�H�E�LTPTTTXT\T `T$dT(hT,lT0pT4tT8xT<|T@�TD�TH�TL�TP�TTi�X5v\sU`wUd{UhUl�Up�Ut�Ux�H|�U��U��U��U��U��u��U��U��U��U��U��U��U��U��U��U��U��U��U��U��U��U��U�Qx��U��U��U��U�V�V�V��u��u$uVV#V�t9t([W[ [[$4[(c[,g[0k[4o[8s[<F[@D[D[H�[LJ[P�[TL[X�[\�[`�[d�[hZ[lX[p�[t�[x�[|�[��[��[��[��[��[��[��[��[��[��[��[��[��[��[��[��[��[��[�\��[�\��[�\�\�\�\��[��[�|l�rl�vl�zl~l�lVl�l�l�lfljl �l$�l(�l,�l0�l4�l:V:V0:VH:V`:Vx:V�:V�:V�:��:��:�:� :98:�P:�h:4�:��:��:��:/�:��:�:�(:@:�X:�p:��:��:��:��:��:�:�:�0:�H:`:x:�:��:3�:�:�:$:1 :58:;P:�h:��:V�:V�:��:�����*�:A��*:J�)@:VH�P�	X��:]�:l�:r�:}�:��:��:��:��:��:��:��:�:�:::! :.(:;0:H8:V@:dH:pP:~X:�`:�h:�p:�x:��:��:��:��:��:�:�:'�:3�:@�:N�:Z�:e�:q�:}�:��:�:�:�:�:� :�(:�0:	8:	@:'	H:3	P:8	X:>	`:D	h:N	p:T	x:[	�:d	�:k	�:u	�:�	�:�	�:�	�:�	�:�	�:�	�:�	�:�	�:�	�:�	�:�	�:�	�:�	:�	:�	:�	:�	 :�	(:
0:
8:
@:
H:
P:
X: 
`:%
h:6
p:?
x:D
�:H
�:P
�:T
�:X
�:\
�:d
�:h
�:p
�:t
�:y
�:�
�:�
�:�
�:�
�:�
�:�
	:�
	:�
	:�
	:�
 	:�
(	:0	:8	:@	:&H	:*P	:.X	:2`	:6h	::p	:>x	:B�	:F�	:J�	:N�	:R�	:V�	:Z�	:f�	:j�	:n�	:z�	:~�	:��	:��	:��	:��	:�
:�
:�
:�
:� 
:�(
:�0
:�8
:�@
:�H
:�P
:�X
:�`
:�h
:�p
:�x
:��
:	�
:
�
:�
:�
:#�
:(�
:3�
:@�
:N�
:^�
:a�
:g�
:o�
:t�
:�
:�:�:�:�:� :�(:�0:�8:�@:�H:�P:�X:�`:�h:�p:�x:��:
�:

�:
�:$
�:2
�:<
�:I
�:L
�:V
�:d
�:i
�:r
�:w
�:
�:�
�:�
:�
:�
:�
:�
 :�
(:�
0:�
8:�
@:�
H:�
P:�
X:�
`:�
h:�
p:�
x:�
�:�
�:�
�:�
�:�
�:�
�:�:�:�:�:#�:)�:��:��:/�:7�:@
:H
:O
:[
:c 
:s(
:�0
:�8
:�@
:�H
:�P
:�X
:�`
:�h
:�p
:�x
:��
:��
:��
:��
:�
:�
:�
:�
:#�
:'�
:+�
:/�
:;�
:?�
:C�
:M�
:S:^:g:o:z :�(:�0:�8:�@:�H:�P:�X:�`:�h:�p:�x:��:��:��:��:�:�:'�:6�::�:>�:B�:F�:J�:V�:]�:a�:f:n:}:�:� :�(:�0:�8:�@:�H:�P:�X:�`:�h:�p:�x:�:�:�:"�:*�:/�::�:H�:P�:\�:e�:k�:w�:��:��:��:�:�:�:�:� :�(:�0:�8:�@:H:P:X:#`:-h:4p:;x:D�:L�:Q�:W 4�Pd`x��0���@PH�d�p���@@�t�� ���	�	D0
p�
���`4P
`�
��PPP����@��$P���$@T���� ��40H@\�|�`���@ ,	!@	�T	`!h	�!�	@"�	�"�	#
�#0
$d
p$�
%�'d )��)��*p+4�+l@,��-��.
0L
p0h
�0�
1�
�1�
�14P5�6��6�p7$�7X 8��8�p9��:0=h�>��A<@C�PE��E�F,@GT�G��J��KpLd P��Q�0R�@TP�W�\��ak@@}�К���P���P@�x����О`��t��� ��@����Ф@�X@�pp�������@���T`�xЧ��
�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rela.data.rel.ro.local.rodata.cst8.rodata.cst16.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@.cT.dl.e�.f�.g'�^�"@P��z.-�3 ��= �t18@&�/.
S��b���]@�U0.
|h��h���@V0.�<��<���@8V0.������@hV0.2��\2@�.`� )@�VP�.|b�;��� 6@���&.N [0i0@.�n�nSn'nrn�n�n�n�n�p ��@�@�.,�&XJ/}	(q&:� �process.o/      1690381920  1000  135   100644  167480    `
ELF>8�@@0/

#%"&!' (��H�H�H�@@�ff.�f����ff.������fD���+�����+������fD��H���WH�w�?�H��H��H��1��H�5~����
�H�H����H��H�5�
��H���ff.�f�ATA��USH���?���A��wkH�Hc�H�>��DH�5H�߽���tH�5H�����u*��;A��u6�DH���;@��t���u������[]A\��H���;@��t����u��֐H�5H�߽	���t��fDH�5H�߽����t���H�5H����Ņ��[����{���fDH�5H�߽����4����T����H�5H�߽��������,����H�5H�߽������H�5H�߽����������H�5H�߽��������H�5H�߽��������H�5H�߽
����l�������H�5H�߽����D���H�5H�߽����(���H�5H�߽��������,������SH����H�����~D���Oڅ�~ ��9�~Hc��
[H�D�f.���[Hc��
H�D�H���H�5H�81��@���x�DH������x�H�����H���ff.����H�����H��H�H�D��AWAVAUATUSH��XH�|$@��uH���H��uH�|$�H��X[]A\A]A^A_�H�|$�H�}I��H����L�oH� tL�o�H���L�t$I���"H�D$ H�$�G�A�?"��H������H�}H���H�}L�oH� tL�o�H��H�4$M��H��L��L�����u�H�D$H��tU�@H��X[]A\A]A^A_��F�H��H��H�øHH�H���I���7���H���H�=�H�L��H�5H�81��D��UH��SH��H�D$H�l$H���m���H������H��H�D[]�DAWAVAUATUSH��HH�|$@��uH���H��uH�|$�H��H[]A\A]A^A_�H�|$�H�}I��H����L�oH� tL�o�H���L�t$I���"H�D$ H�$�G�A�?"��H������H�}H���H�}L�oH� tL�o�H��H�4$M��H��L��L�����u�H�D$H��tU�@H��H[]A\A]A^A_��E�H��H��H�øHH�H���I���7���H���H�=�H�L��H�5H�81��D��UH��SH��H�D$H�l$H���m���H������H��H�D[]�DUH��SH���H��H�@H���H��H�5�H���H��H��[]���SH��H�?�C@u�H�{�H�{�H�{�H�{ �H�{(�H�{0�H�{8�H�{H�H�{`�H�{h�H�{p�H�{x�H����H���[�D��UH��SH��H�<$H��H�t$��=H��H���H��u?H�t$H��tH�|$�H�t$H�<$�H��H�@H���H��1�[]�H�H��H�5H�81����SH��H��H�<$H��H�t$�H��H����H�5H���H�|$�H��H���H�ߺH�5�H��1�[���H�����H��H�H�D�ff.�f���H����1�1����x
�H���1��AUI��ATI��USH��H��(�D$�H�ŋ��tv��uaA�E�P�A�U��BH��t(�;D�m��{�D�m�|$M��u���������H��([]A\A]�D���tw�H��u���f�L��H	�t8H�=H�T$���D$M��tA�$��t�H���k����fD��H��(1�[]A\A]�f��D$��D$�^����f�AUA��ATI��UH��SH���
��8uH��L��D���H��H��x�H��H��[]A\A]�f.���PXH����
��H�L$H�1���ǃ�u�H�D$H��t�1�H��t�H�Ǩt	����������H���H����H�D����H���H����H�D�������H���������xH���1��ff.���H���H����H�D����H���H����H�D����H�������xH�H��H�D�1��f���U1�1�H��AVAUATSH�� dH�%(H�E�1�������Hc�A��L�e�H��H�����L�e�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%���H�\$H���H��D���A�ƃ��tz�I��E��~'A�F�L�t�fD�3L��H��H�t6�I9�u�L���L��H�M�dH3%(u3H�e�[A\A]A^]ÐL���H�����H)�H�L��j���1���fD��UH��AWI���AVAUATSH��HH�}�L��dH�%(H�E�1�H�E��I��� ��H����H�]�H�M�Hc�A��H9��d���;E��cH�E�H�4�H�E�H�E�H����H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%���L�l$I���E��~`H�E�1�L�e�D�p�I�GH�E��)�H�E�H�<�L������A�D�H�CI9�t*H��I� u�I�G ��I�GH�E��
���L�e�@L���H�}�L��������H�}��H�}��9���H�U�dH3%(u@H�e�[A\A]A^A_]�H���I���3����H)�H�L�����H����� �H�5��H�H�81��1��ff.�@��ATI��H��USH�� H�\$H�t$H�D$H�����H�߉��H�|$���H�����uL���Y���H�� []A\�1��f���H����1����xH�H��H�D�1����H�����H��H�H�D�ff.�f���H�5�AT1�I��US��Hc�H�5����}�݃��E<��t7��uK[]A\É��H����H�‰�1�L��H�5���u���1�H�5L�����t�[L��]�H�5A\�f�����H��t!H�‰�H�5L��1���Y���fD��H�5L��1���;������H�5L��1���'������H�5���H9�tSH��H�5�H��[H�����f���H�5�H����B�<v�� u#H��f.�H���D�B�A��v� t��tvH��tAL�NH� tL�NH��E1�H�1�H�5H�=������H���@H��E1�H�1�H�5H�=������H���@�������H���ff.�H�������uH���H�H�5H�81��ff.���UH��SH�����H�\$H��H�D$H�����H�߉�������uH���[]�1��ff.�f���AUI��ATI��UH��SH��H�D$H�\$�6���H��H���{�L��H�މ��n�H��L��A���`�H��A���D��D������uH���[]A\A]�1��ff.�f���ATUSH��H�����H�l$H��H�D$H�����H��A���D�����H��H��[]A\�@��ATUH��SH���l���H�\$H��H�D$H����H��A��������D������xH��H��[]A\�1��f���ATI��UH��SH��H�D$H�\$���H��H���@�H��L����3�H��A���D������uH���[]A\�1��D��UH��SH�����H�\$H��H�D$H�����H�߉�������uH���[]�1��ff.�f���USH���A���������9�u/�=9�t}� ������H�\	��u@H��H��[]�fD��H�\�����t���
�f��H�=H���H��[]��1���fD��S��������ډމ����x�؉[H�D�1��D��AVAUATI��USH���8���H�l$L��H�D$H���o�H�������tT�����9A��A��DE��9�DE����D��9�D��E����x(�H��L��[]A\A]A^��ډމ����y�1��f�H�������uH���H�H�5H�81��ff.���UH��SH�����H�\$H��H�D$H���5�H�߉�������uH���[]�1��ff.�f���AUI��ATI��UH��SH��H�\$H�$�7���H��H��H�D$���H�߉��H��L��H�D$��H��A���H��L��H�D$��H��A���H���D��D������uH���[]A\A]�1��ff.���ATUH��SH�����H�\$H��H�D$H����H��A��������D������xH��H��[]A\�1��f���USH��H���.���H�l$H��H�D$H����H����������߉����x��H��H�D[]�1��@��ATI��UH��SH��H�\$H�$���H��H��H�D$�H�H�߉��H��L��H�D$�*�H��A���H���D������uH���[]A\�1��@��UH��SH���>���H�\$H��H�D$H�����H�߉�������uH���[]�1��ff.�f���S��������ډމ����x�؉[H�D�1��D��AVAUATI��USH�����H�l$L��H�D$H����H�������tT�����9A��A��DE��9�DE����D��9�D��E����x(�H��L��[]A\A]A^��ډމ����y�1��f���ATI��US��������9�u6�59���H�t6L���#������H�l	��uCH��[]A\���L��H�l-H�t6�����t���
�f��H�=[�H�r]A\��1����SH��H�|$@��up@����@��u	H�����ugH�
H���H����H���H�XH���H�{X���C��xvH�H�DH��[�f����f������u�H�|$�H;t#H;t*H;u@��f.���f���H�H�5H�81��H�H�5H�81��H�H�5H�81���AVAUATI��UH��SH��H������u	H�����u8H�����L��H���H��H�@H���[H��]A\A]A^�fDH��ƒ���u�E1�L�k�Gf.�H����H9�}�L��H�<�A���4���L��H���H��H�@H���H�Ic�� u�H;S����H�C ��H��H�@�-��������t��t	�@��f�AWH�AI��AVAUATI��U1�S��H��(H�t$H�D$��DH����H9��0H�D$L�4�I�FI� uI�F H�8�H�|$Lc�I��O�L	L��L�L$�L�L$H�������M9|$p��M;|$`��M;|$x��I�FI� uI�F H��H�H�|$L���D9�AL�M;|$`t,M;|$xt%H��I��� �5���I;o}oI�G �;���fDM�FI� uM�F I��I�8�9�L��@H�|$�L����@H�|$H�����L����m����H��(��[]A\A]A^A_�H�D��H�5H�81��@AVI��AUI��ATI��U��S�Hc؃��u ��8	��1ۉ�[]A\A]A^�D���M�l$`M��tHc�H�\H�|?H���L��H�@H���I�l$hH��t-H�߾1��H��H�@H�����[]A\A]A^��H�@H��I�D$h�f��H�@I��I�D$`�g���fDM���7���M���.���L��H�5L��������S���(����9�t�ډ޿�������x���[�������މ����y�1�����H������H����H�D�ff.�f���ATUSH��H��H��H�D$H�l$H���(�H��A���D���E���H��H��[]A\�f�S�����9�t�ډ޿�������x���[�������މ����y�1�����H������H����H�D�ff.�f���ATUSH��H��H��H�D$H�l$H����H��A���D���E���H��H��[]A\�f���ATI��US��1��H�Ņ�t5��u7I�<$�H��H���1��[H)�]A\H�D����ݺ1����ff.�I�Ѕ�~f�F�L�L��H�7H��tKI�H��tBH��H9�}H��H���	fDH��H�H��H��H��u�H��tH��H�H��H�I�H�H��I�H��I9�u��f�AVI��AUI����ATM��UH��L��SH����m���I�:H���qH��������IcEH����&�.H)�H��H��?H��H��H)�H9������OLi�ʚ;IcEI�����I���������C�H��I��L�L��,M����L��H�H��L9�����uEH��L��I9���H�H��t�M9���H���t�H���M����L��H�H��L9�����t����5w��*H��1��IcM��+H��1�H�L	�I���DL��H�H��L9����\���DI�$L��M����H�[]H��A\A]A^H���L��H�H��L9�������DH���>����H9�������������5w��*H��1��IcM��+H��1�H�L	�I�ƅ�~9E1�J�|�H��t�L����*H��1��I��I��D9��I�<$�[L��]H��A\�A]�/1�A^�DH��[]H�A\A]H��A^H��H���D����fD����fD����fDAVAUATUSH��H�D$pH�|$0H�D$ H��$�H�D$(H��$pH�t$H�T$8H�L$@L�D$L�L$�D$PH�D$H�H�H�8�H�H�8�H�|$ �����,H�T$(H�t$ ������H�t$H������H�T$dH�t$XH�|$T�������D$X;D$d�A��Å���f�H�D$H��$��8�H�}HDŽ$�DŽ$������A�A�L��$ �AD��$�uH��$ v1�H��������vA��A�A��A��D��A��
�?1�L��D������u��H�Ë��t�H�|$H��t$H�L$H��tH��H�5��f�H�L$�D$lH�l$lD�a�@���uq�H��D���H��x�H�|$t'H�|$tH�D$H�L$�D�H���H��H��u���;u�H�t$H��D���H��x���@�D$l�f.�1�H��$�������H�T$H�t$H�|$@H�D$8�Ѕ��6�H�Ë�����1�H��
���������H�|$t�H�|$t�H�T$H�5H�|$��H�Ë�����������;D$T�����H�T$hH�t$`H�|$\�����j�D$`;D$h�����;D$\�x�������Å��v������$p1�H��D� �����H�t$(1ҿ�����D�e��!H�t$H�|$0H�T$P������x��������H����[]A\A]A^Ð1��f�H�|$�����H�|$�����H�T$H�5�����H�|$�~���H�|$�r���H�T$H�5����EH�=��EH�=�H�=����H�=�����H�=��H�=�H�=�ff.�ATI��I��L��UL��H����SA��L�����f�f���I*$�Y�*M�X�E��~#A�C�L��I�D�f��H���H*J��Y�H9�u�H�0f���H*�^�fH~�H9�tHfH~�H��<������tH��H��u%[]A\�fH~�[]H��A\H��H���f.�[]A\��AUI��ATI��UH��SH��H��H�=�H9���H�=�H9���H�=�H9���H�=�H9���H�=�H9���H�=�H9���H��tH�=�H9���H�uM��1�H��L��H��[]A\A]�S���I�$ʚ;H�uM��H��L��H��[]A\A]����I�$���fDI�$@B�fDH�uM��1��DI�$@BH�uM���o����I�$�H�uM���O���H�H��H�5H�81��ff.����H��h��f�f��H�|$@�H*��H,��H*��L$�f�H�0�H*D$@�^D$fH~�H9���fH~�H��<��������H��H����f�H�D$H�0�H*D$H�^D$fH~�H9���fH~�H��<��������H��H���rf�H�D$ H�0�H*D$P�^D$fH~�H9��4fH~�H��<�������lH��H���	f�H�L$(H�0�H*D$X�^D$fH~�H9���fH~�H��<��������I��H����H�T$ H�t$1�L�D$0H�=�H�T$H�T$8H�T$H�T$ H�T$8H�T$ H�T$(H�T$8H�T$(H�T$0H�T$8H�T$0H��h�f.�fH~�H��H��H���w���f.���c���fD�H�L$(I���V���fD�H���������fDfH~�H��H��H���h���f�H��I��I��I������@H��H��H��H�����@��H��H�5�H�Ǩt�<��HE�H��������H��H�5�H�Ǩt�����H�H�����������H��H�5�H�Ǩt�H��H��8H��?����H��H��8H��?���ff.���H��H�5�H�Ǩt%������<�HN�H���D���f���UH��SH��H�5�H�Ǩt(�H�����t(�H��!�[]H�H�D�@�H�����u��H��!�[]H�H�D�@��UH��SH��H�5�H�Ǩt@���H���t!����H��Hc�[]H�D�f��������������S�H���H�߃�t������xH�[H�D�D�����1�����H��H�5�H�Ǩt��¸��tH������¸��u�H��H�%�H���f���H��H�5�H�Ǩt-��¸��u��H�%�H��H���������ff.�@��H��H�5�H�Ǩt%��¸��u�փ�H���H�����������H��H�5�H�Ǩt5��‰Ѹ������~
H�%�H��H���f.���������U�H��SH��H���H�߃�t>���H���t��Ɖ����x&H���[]Ð����������1��H��H�|$@����@����������H���@��t#H��4�������
��~+�����H� ��H���f.�����H�|$��	H�=H����€���t9�
H�=H����€���tH�ƹ
H�=�������H�����H���DH�����t?�����
t�o������D�����u!@��tH��H��H�Ã�u�H��Ð�H�|$H��t�H�D$�/���fDH�@�*���H�H�T$H�5H�81��f.���AT�I��UH��SH���H�߃�tM�H�����tM���L��A��t��‰�����x2[�]A\��������H�����u�����1�����AT�UH��SH���H�߃�tX���H���t9��������I���A�$��u,H�[]H�DA\������������1�����ATH�5UH��S�H�ǨtR���H�5H���H�Ǩt%���1�����I��H���8��L��[]A\��������������UH��S���H�����H�L$H��H�1��H�|$H��t$@��u,������x%H��H�H�D[]�H�D$������1��f���AUATUSH��I��A��H��H�5�H���H�Ǩ�����H�5H���H�Ǩ���A��M�������$�؃����VH���d���kH�{�H�=H��1��D���H��H������H�ߺH�5�H��H��[]A\A]������L���@H�����u�H���%H��u�H�H�8�z�����A���5���M��t;����؃����H������uUH�H�8�Mf�H�����u7H����H��u(H�H�8� @H�H�8��f�H�{�H��H�=[H��]1�A\A]�@H�H�8���f�H�H�8����H�H�8����H�H�8�@H�H�8�@H�H�8�Z����H�H�8�e����H�H�8�U����H��H�|$@����@����������tyH��ts@��tH��4tg�����
tR~3��uF�H�xH� ��1���������H�����u#H�|$�H����@��u�H��Ð�H�|$H��t3H�D$��f�H�����t׋����
t~����l�����u�@��t��H���DH�x�_���H�H�T$H�5H�81��f���S�H��H���H������H������xjH��������?H�|$H�\?H9�w+H��������?H�<$H9�w(H��H�|?�H��[�D�H����fD�H��H���H��[�H�=�ff.���UH��S���H��8���1�H�L$L�L$L�D$H��H��H�|$H�|$uH�|$����H�|$H�D$ ���H�|$H�D$(���H�t$ �����xH��8�[]�H�=����SH�1�H��@H��L�D$�H�<$@����@��uH�����t�������@��up���H�\$0H�������3H�D$ ʚ;H�D$8�D$H�D$0H�D$H�=�H�L$H�T$ H9���H�|$H���[�H��@[�D�����H�=�H9$�H�=�H9$�DH�=�H9$�VH�=�H9$��H�=�H9$�*H�=�H9$�X�D$H�\$0H�D$H�D$ @B�����1�H����f��f��f�H�0�*T$�H*L$�Y
�H*D$ �X��^�fH~�H9�t'fH~�H��<������tFH��H��������H��@[�H�D$H�\$0�D$�H�D$ ʚ;�e���@fH~�H��H��H���w���f�H�D$H�\$0�D$H�D$ ʚ;�%���@��D$H�\$0H�D$�f��H*��H,�H�D$ ���H�=��1���f���SH�1�H���H��L�D$�H�<$@����@��uH�����t
�����tw@��ua���H�\$PH�������,H�D$ ʚ;H�D$X�D$H�D$PH�D$H�L$H�T$ H�|$H����H���[�������H�=�H9$��H�=�H9$��H�=�H9$��H�=�H9$�(H�=�H9$��H�=�H���H9$����H��H����pH��H�\$PH�SZ��/�DH�D$ @BH��	H��H��H��Hi�ʚ;H�T$H)��L$���H�\$P1�H�������H�D$ ʚ;H�D$PH�D$iD$X��D$���D1��H�����H�D$H�\$P�D$H�D$ ʚ;�o����H�\$PH���H�����H�t$PH�|$XI�SZ��/�DH��H��	H��I��H��H��H��H��	Hi�ʚ;H)�H��I��H��Hi�ʚ;H�H�L$H)Ǎ>�D$=�ɚ;v-ʚ;H���D$H�L$��f��H*��H,�H�D$ ���f�H�|$0�H��H�����H�¿H�\$PH�SZ��/�DH��	H��H��H��Hi�ʚ;H�T$H)��L$�f��H*��H,�H�D$ �L���@H�\$P1�H�����uiH�T$`H�D$hHT$PD$XH�T$=?B~H��-@BH�T$H�D$ ʚ;i���D$��H�=�H�=�H�=�H�=�H�=�H�=��1����ATH�U��H�=SL� ���Hc�H�5I�D$@H�TH���Hc�[]I�|$@H�TH�5A\�D��H�H�H�@@�f���AWAVA��AUA��ATUH�-&���SH��H��I��1�H�����L��H��D�4$H�\$D�l$�A�Dž�y7��8uUH�H�8H�� H�Ѕ�t���1���@��uH��D��[]A\A]A^A_�f��;�����DA����������US��H��H�l$�1�H������t��H��[]�ff.����AU�ATA�����USH���L�l$�H��H�H�H�@@�!��Hc�H�|?H���H��H���1�L��D����Ã��u���8
uH��H��[]A\A]�1��ff.�f���ATI��U�����S���H�� ���u,H�t$�ډ������H�H�DtMH�� []A\�@��H�L$L�D$L��H�1��H�|$@��u8��Ń�t81���H�H�H�@@H�� �[]A\���Ń�u�H�|$1�H���W�������K���1����S����H��tH���H��[H���@�[Ð��USHc�H�=���H��H���H�5H�TH��H���H�H�]��u	H�����uH��H��[]�f.�H��H�����u�H�E��`H��`u�H���`H��`t�H��H����ff.���S�H���H�߃�t�[���f��[�����ATUSH�����H��1��F�����D� H���Ը����D�#[]A\�f.���H�V�H��tVH�B����tDSH��H�<$H��H��H�D$�H��H�5mH���H�D$H��[�f.�������H�5���AWAVAUATUSH��hH�|$H�t$H�T$��H���H�\$��������؃����H�����t#H��4�������tt�'����H�|$�H��H����H9�s�E@�
H�|$H������1�H�����M@�ED�H�D$�H�|$H�|$(@����D@������������H����@���<H��4���������wzH�Hc�H�>��@H���������H��h�[]A\A]A^A_����u�H�|$H�|$(@��t�f���fD���>����DH������y����H��H�D$(H�������H�D$(H��H��H�}`H������H�E`H�D$H�D$@H�D$H��h1�[]A\A]A^A_�@H����H�5H��������H9��H9��H9�H9�hH9�Z���H9��H9�rH9��H9������EA�j���H�\$@H�|$H�D$@H��苺��H��A���D�eX�MA���1��H��H�D$0H�D$(H��� �H����H���
H�D$0H�D$@�H�|$(�H�D$0�H�D$8H���
�uH�����t������sH���H�D$8H�|$(�A�I�H��tH���I��H�|$0�H�@H�D$@H�D$8L�d$PH�D$HH�t$@��H��H�@H�}pH������H�Ep���H�D$0H�|$0H�D$@�H�D$0����H������I����������;H��ƒ����aH�D$0��H�|$(�H���lH;��H;��H;��H;�8H�}`�H�����H�E`�+�����������fD����H�D$8H���H�@H�D$@H�D$8H�D$PIH�D$H���f�H�x�����@��t%@�����H������������������H�=�H�|$0H9������H�|$(��H���	��H�}xH��H���*��H�Ex�M����@����������Hc�H�H�5H�81��fD�}@�UH�D$H�D$@H�|$�H��H�D$��M@�H��H�D$�H�@H��������H�}h�H�����H�Eh���fDH����H�x���Lc�A�������L�mHM����H�|$�H��H���H��� �ZH����H���^H��������1�H���H���H�߾H���H���H�t$@O�d$�H�l$HL�d$@H�D$P�L��H�@H���������E@�����H�D$�����ƒ���	ЈE@���DH�D$8����f�������H�����t*H�����t�������H�������������f�H�D$8�H�D$0�'���D������E@� �q�� H�D$�����ƒ��	ЈE@���H�SH����H�������1�H���H���H�����H�}`�H�����H�E`����H�@I��H�EH�!���H�|$��U@�������EP�U@�h���H�}`�H���+��H�E`�N���H�|$�H���=���E1�L�s�_�H��H����I9�}xH���H��H� tM�L��J�<����H��I�����t
L�����u*H�A��H��Mc�� u�H�S�@�H�C �H�H���� H����H����I9��P���H�D$8H�D$0�w���H�D$��Y����EA�����H�\$@H�|$H�D$@H������H��A���D�eT�MA�$���H�����H��������H�|$8�H���H�H�DH�D$8�w���H�D$�����H�C�8���H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�T$(H�5H�81��H�H�5H�81��ff.����ATI��UH��SH��H��H��H�;���tH�{H��tL��H���[1�]A\�L��H��H�CH��������SH��H��H��H�����t6��t9��uH�����t
�����t!H�H�5H�81���1�[�@H�H��H�5H�81��ff.�f�AWAVAUATUSH��H�$H��X�t$H��L��I��H�T$ M��L�L$(dH�%(H��$H1��H�xH��H�H��Hǀ�H��1�H)�������H�I���I��tL���{���H����T$D�e@��H����A��A	�D�e@H�D��D�d$% ����H�]L�cH����E�<$E1�E1�E���5D�d$1�A��D�e@�I��H�@H� �gH�s���t)<	t< �fDH���< t�<	t���L�eI�|$I�$ tI�|$�H�@H�E�E@�fDH�D$(H�D$8H�D$(H��$HdH3%(��H��X[]A\A]A^A_��A��	t[M��MD�A��H�=�H��toM��u��A��=t�E1�A��/A��I�����w���I��E�<$E����A�� u�M��t�M��u
M��M)��DA��H�=�H���/���M��u�1��fDH�]H�zH����1�H�T$@��H����H���H�E�E@����H�}���|$H�\$8H�D$8��Hc�H����H��H�@H��I���H�MH��� �mH�QH�AH�T$0L�$L�t$0I9�v1D�L��L���L�|$0L���I�DH�D$0L9�rԺH��L���L�m�#���H�z����L�cE1�E1�E�<$E��������c���DI�GH�����H�@��������L�l$(L���H�5����L��H������M������L��L)�M��LD�I�F�H�������H�D$E1�f�H�D$L��L��J� H�H��L��H�L$N�<L���H�L$��uQC�<7�>���fDL9������H�L$�H�E�2���H�QH��H�T$0�����H�s���Dx�L�aL9d$�g����H���1��I��H�@�D$��~_�D$L�l$ H�\$8��M�|��H����H��H��L��I���M9�t(I�EH��H�D$8�H�L$8H��� t�H�QH����L�e�E@�[������fDH���tB<	u	�<<	tH�����u�H��H)�L���H�5�L���H�����1���H��H�% �����ff.���UH��AWAVLc�H��L�}�AUI��ATM��I��SH��X�U�H�M�dH�%(H�E�1��H�E�I����kL�}�I�FH��H�E�H��H%�H)�H���H��H9�tH��H��$�H9�u����H�\$H���L��L��H���E����E�l$�Ic�H�<�@����H����������H�E�H����E���kH�;@����H�����������H�E�H��tH��A���4H�E�H�;E1��H��tjH��� �|H����H���H�PH��H�U�H�L�e�L��H��H�}��L���H�}��H�E�L�pH� tL�pI��1ҐL��U��I�<$�I�<$�L��I��I�D$���U���D9�|�M���.�����H�}�H��u%�E�H�;��tA��������HE�DE�L�M�L�E�H��D��H�M����L���H�E�H�U�H�H�U�H�U�H�u�dH34%(��H�e�[A\A]A^A_]��H�;E��H�E�@���]���H�E��z���L��L���H������DH�x��H�@ H�H��H�U����f��������H�L��H�5H�81���L�3I� uI�����M�v����H)�H�L��;����E1���D���H�H�5H�81��f.���AUA��ATI��U���SH���H�H��H�H�8�D��L���H�@H��H���H��H��[]A\A]�f���USH��H���H��1�H��tH���+���H���H��[]�ff.�f���AWAVAUATUSH��XH�|$8�H��H�D$ �H�K`�����H�ʼnT$0H��tH��H��臿���D$0H�|$ H�OhH��t�T$0H���i����D$0H�|$ H�OpH��t�T$0H���K����D$0H�\$ H�KxH�����T$0H��H���&���L�cx�D$0M����I�D$E1�H�D$(I�$�� �H����I9��xH�D$(N�<�I�GI� uI�G H�8�H�D$I�GI� uI�G H��H�8�H��Hc�I�ƉD$4H�\H���D�4$H�D$H�ƨu$��H����H;D$��H�D$@��tJH��H�t$�H�t$��x4H��H�t$�H�t$H��$�H��I�$�� u�I�D$�@H���XD94$u(I�$I���� ���M;l$}pI�D$ ��fDLc4$L���O�t6L���Hct$L��H��H�t6��H��L��H��L���H��H���I�Ǩu�����H�D$ �T$0�P\H�P`H�h H��tDH��� ��H����H�@1�H��H���H��H�@H��H���H�D$ H�h8H�L$ �A@L����$��<t)M��u$H�D$8H�D$HH�D$8H��X[]A\A]A^A_�fD<� H�H�5H�8�H�
�H�H���H�@H��H��E1�L�d$H�H�$I�FH�D$I��� t{�H����I9���H�D$J��H� tiH�hH��L�(I��tlH�<$L��H���@��u
H�������A��u
I�������I�I���� u�M;~}\I�F J��H� u�H�@ H�(H��L�(I��u�H�<$1�L��H�l$H��@�H��H�@M������L�d$H1��H��H�@I���L��H�5���H���H�C�H��tH�@H��H�<��I�]H��H�@�� ��I�EH��H�D$H��H�H9�v0@�L��H���L�t$HL���I�DH�D$HH9�rԺL��H��H�D$H�H�D$ H�h(L�h0����H�������H��T$4H�5H�81��f.�H�B�3����I�EH�D$HI�]�J���fDH��H������:���H���`H��`�*���H�E��`H��`����H��H����	���@L��H���������H���`H��`�����I�E��`H��`���L��H�������@H��T$4H�5H�81��ff.����AWAVAUATUH��SH��H��hH�$H�L$H��t6H�~H��1�H�Hdž�H��H)�������H�H�F �E@��L�uHM���]�E@�3L�u`M���^L�uhM�����E@��`< tH�U �u\��L�mpM���L�mxM�����}@�	�EA��5	��I	E1�H��tHH�S`H��t?H��� ��	H�BH�,@1�E1�H��H���H��H�@I��H���L�c8H��hD��[]A\A]A^A_�E1�M�fH��tTH�=1���(����H����I9�����L��J��H� tCH��H�8��������dI��I��� u�M;n����I�F J��H� u�H�@ ��H��t+��K@�H��I���L��H�@H����H���H� �TH���A�ƃ�������H�<$H��t~H�T$H��ttH�5�����D�eDA��������H��t�K@��CDE���8�D����A�ƃ������H�<$tH�|$��f.�A������p���DI�FE1�L�|$0H�l$(H�D$H�D$@H�D$�SH����I9��
H�D$J�,�H�EH�E uH�E H�8@���X�A��H����L��D��������
H�EH�E uH�E H�H�|$0H�D$@H��������?H9��)H�D?H�|$8H�D$HH��������?H9���H�D?H�t$�H�D$P�H�{HH��H�@H�����H�MH�E�� uH�E H��H�8@��tpH��H�H�D$0H�U H��uH�U H��H�:@��tsH��H�L��D��H�D$8������I��I��� �����M;n��I�F ���f��H�M�� ���A������댐�����fD�����fDH�D$ �H�t$ H�@H��H�CH���DI�L�e8�� ��M�nI�$ ��I��M����J����H�\$ M��L��H�L$1�H�l$I���hDI�GJ�,0H�EH�E uH�E H��H�8�H�U�H�E uH�U H�:H���H�C���C�L9t$�4I�I���� u�I�G �f��}P�H��������K@�CP���I�EH�l$(I�UE1�H�D$H�D$0H�D$ �� ��H����I9���H�D$J�,�H�EH�E uH�E H�8�H�E ��H��H�mH�E ��H�EH�D$0H�EH�8@�����A��H�E H�E uH�E H��H�8@���|�A��H�D$ H�D$@H�|$0�H��H�D$0�H�D$0H�xH� tH�xD��D��1��A�ă��������D$�H��H����I9���H�D$J��H� ��H;h��H��H�8�I��A9���H��tH�L$H�$H�މ��ݳ�����U���D��D�������iD���I��I�U�� �h���M;}}#I�E J��H� �v���H�@ H;h�v����D$���"���D�������1I�U�� �
���M;}��I�E ����f��D$�z����A������H�m H��H�mH�E ����H�E H�H��H�T$0H�8@�������A���
���@I�EH�l$E1�H���@H����I9���H��N�<�I�GI� uI�G H�8�I��I� ttI��I�?�I��H��tH�L$H�$H��D���\���������D��D��������D��I���I�E�� �g���M;e�
I�E �g���@M� I���fDH�\$M��A�����I�����A�M����uA;M�$A����D��������t[D���I�EE�uM�}H���u$�3@���H�C�����H����H�@I�ċs�;����u�fDH�<$H������H�T$H������H�5A�������)���fD�}X����
�EA�������}T��������H�<$H���o���H�T$H���a���H�5A�������@H�����H�����x���@I��I��A��I�$ �Y���M�d$�S���D�A�����H�l$H�\$ H����H�
�����L��L���M�������K�DmI�|$E1�M��L�T$��O�M��E1��DE��tSL�FM9��fK�A��H��H�RH��I��D+y�L9��CJ�4A��H��H�vI��D+�PI��E��u�H�I9�r�f.�H��I9�s;H�t�L9����;t��H��;�L�pH��H��L9�r�I�FH�H��I9���E1�DL��H�@M�<�A�?���t}DI�uqA�GH��t"H�L$H�$H�މ��������}���A�GA�?�����������A��I�GA�����H���tH�@H�@M�<�I�l�A�?���u�f�I�EM9������I���[���H�I�FH��I9��8���I���X����H������H�7��H�<$H������H�D$H�������H��H�5����f�H�l$(�I�fDH�l$��fDH�<$H���s���H�D$H���e���H��H�5��Q����H�
	����L��L����n���@��1���L$ ��L$ ������t���ω�1�������A�E����I��L9l$�o���H�\$A������D���������f.�H�<$H�����H�T$H�����H�5���@H�<$H���s�H�D$H���e�H��H�5��Q�H�T$H�<$H�5���fD���A�ƃ�����H�<$H����H�T$H����H�5��l�H�l$(���fDH�<$H�����H�D$H�����H��H�5���H�<$H�����H�D$H�����H�����H�<$H�����H�T$H���s�H�5A������H�<$�D$H���M�H�T$H���?�H�5�D�L$E����H�<$�D$H����H�T$H����H�5�D�D$E���i�ff.���AUH��H��1�ATUSH��H�������H�k(�C@��H�CE1�H��tL�`H� tL�`H�sH�^H� ���I��M���H����H�E ��H��H��L��H���A�E��uzH�L�#H�s�H�C���H�;H� t,H�H��蠜��H�������[]A\A]�H�vH�^�j���H����f.�H��L���A�E��t|��A�EH�������[]A\A]�@H�mH��L��H���A�E��u�H�L�#H�s�H�C�H��t@H��H�=������E���DH�L�#H�s�H�C�H�=���\������AUf�ATUSH��xdH�%(H�D$h1�)D$H�l$)D$ )D$0)D$@)D$P�H��H�$�H�<$H���H�5G����
L�+��PH��H��H���H�5�
D� H���H��D�#H�D$�|$H�$�
H���DL����������AWAVAUATUH��SH��H��t��D$L�%L�l$�;f.��I�<$D�8I�������E�>��M1�L��H��������uOH�H�8�H�H�8�蜈����Å�u�I�<$�賈��H����[]A\A]A^A_�f��������f���ATUH��S���H���H��H��L�D$H���1��H�H�8�H�H�8�1�H�l$L�$$��������uW������1���Ã������u/H���I�������H��t�H��[]A\�fD1���1ҾH�=��Ń��tʉ��1��������������~����f�Hc�H�D�fDH�=���H��t��y�H�=�D1ҾH�=��Ń��tщ��1��������������~��������H����1�����tM��u����u�H���fDH�H��H�D�H�=H�T$�4��|$�H�=�f���PXH��H�H�H���tAHc��H�|?H�<$H�=��H��H�D$H�H��H����ff.����H����1��DH�L$H�1���ǃ�u�H�D$H��t�1�H��t�H�Ǩt
����@����ff.�@��SH��������u:H�H�H��u��@���f�H�H��H��H�$H�D$�H�H�޿H��H�H�޿H�$H��H����1��ff.�@��H��1�H�t$�H������AWAVAUI��ATI��USH��XH�t$H�T$ L�D$L�L$H��t�L�|$HL����D$0�����I������"�D$0����L�L$L�D$L��L��H�L$ H�T$觩��A�ƅ����|$L��\$HH�t$D����.���I��H��x^�l$DH����H�|$��H�|$t$H�T$L�|$��H��L�����H��xA�f�����I������ߋ(I�ĉl$D�M���Ic�L��H�=M�A�,$A�����H��XD��[]A\A]A^A_�@���M��t��I���f��L��1�H�D$(��D$4H�D$PH�D$8D�uDIc�L��H�t6�H�����tX�E�P9�M����Hc�L��H�t6�H�����u�}���A�ƃ��tG����}�D�u�fDH��H9l$8�x���H�D$(�L$4��'���D��������|$H��|$L����DATI��UH�պSH���H��H�$�H�<$H���H�K H��M��H�|$I��H�5�����H��H�T$H�$H��[]A\�ff.�f���ATUH��1�S���H��H�H�H�@@���1�1�H��I���P����Å�~j1�H�t$������tvL����H�5H���H�Ǩu���H�H��[��]A\�����f�L������t�H��[]A\�H�=�D��ATf�USH��pdH�%(H�D$h1�)D$H�l$)D$ )D$0)D$@)D$P�H��H�$�H�<$H���H�K H��I��H�|$A�PH�5���L�#�H��H�T$H�$���t#H�L$hdH3%(H�H�Du,H��p[]A\��|$uL���f�H������H����H���f���������1�1������AU1�H�=ATUSH��H�5�1�H�5d���H�=�L�-�����H�=L���1�H�5����H�=������H�5��H�=������H�5t���H�=������H�5<���H�=������H�5���H�=�L�%�����H�=L���H�-�����H�=H���H�=�H��H�5H��H��H�;�H�5�H�;�����L��H�5�H�;1�H�����H�5�H�;�����H�f���H�5�H�;�����H�ˈ��H�5�H�;�����L��H�5�H�;�����H��H�5�H�H�;�����H�5�H�;�����H����H�5�H�;�����H����H�5�H�;�����H����H�5�H�;�����H�v��H�5�H�;1�H����H�5�H�;�H���H�5�H�H�;H�5H��H��H��H��������ƒ����
H���0
<�8
H�xH�5�H�=1�H����H�5�H�H�;H�5H��H�������ƒ�����H����<��H�xH�5�H�=�H�i���H�5�H�=�H�ڬ��H�5�H�=�H�+���H�5�H�=1�H�����H�5�H�=1�H�C���H�5�H�=1�H�'���H�5�H�=1�H�����H�5�H�=1�H����H�5�H�=1�H�C���H�5�H�=1�H�����H�5�H�=1�H����H�5�H�=1�H�ߪ��H�5�H�=1�H�3���H�5�H�=1�H�w���H�5�H�=1�H�˪��H�5�H�;1�H�c���H�5�H�;1�H�K���H�5�H�;1�H����H�5�H�;1�H�K���H�5�H�;�H�Ы��H�5�H�;�H�u���H�5�H�;�����H�����H�5�H�;1�H�����H�5�H�;�H�����H�5�H�;�H����H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�H�U���H�5�H�;�����H���H�5�H������H�;H�5H��H���H�;H��H�5�H�;H��H�5�H�;�H�5�H�;�	H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�
H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;1�H�A���H�5�H�;�H�V���H�5�H�;1�H���H�5�H�;�H�Ï��H�5�H�;1�H�K���H�5�H�;�H�����H�5�H�;1�H�8���H�5�H�;�H�����H�5�H�;�H����H�5�H�;1�H�����H�5�H�;�H�σ��H�5�H�;1�H�z��H�5�H�;�H�y��H�5�H�;�����H���H�5�H�;1�H�H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�H�5�H�;�	H�5�H�;�
H�5�H�;�H�5�H�;�H�5�H�;�����H�H�5�H�;�����H�H�5�H��1�L�
jH�;L�H�
H�H�5�ZH�5YH��H�H�H�8����H�;H�5��H�;H�5H��H�=1�H�/���H�5H��H�=1�H����H�5�H�=1�H�`��H�5�H�=1�H�d��H�5�H�=�H����H�5�H�=�H�����H�5�H�=�H�����H�5�H�=�H�����H�5�H�=�H�H�5H���H�=�H�H�5H���H�=1�H����H�5�H�=1�H�����H�5�H�=1�H��r��H�5�H�=1�H�����H�5�H�=1�H�����H�5�H�=1�H�L���H�5�H�=1�H�����H�5�H�=1�H�D���H�5�H�=�H��w��H�5�H�=�H�y��H�5�H�;H�5�1�H��}��H�5H��H��H�=1�H�}��H�5�H�=1�H�p}��H�5�H�=1�H�}��H�5�H�=�H�E���H�5�H�=�H�����H�5�H�H�=�H�5H���H�=H�ڹH�5�H�=�H�څ��H�5�H�=�H�{���H�5�H�=�H�,���H�5�H�=�H�����H�5�H�=�H�����H�5�H�=�H���H�5�H�=H��1�H��H�5[]A\A]��H�������H��tnH���	�H�H�8��fDH������l�H��t.H���]�H�H�8�R�fDH�H�8�=�H�H�8�-�H�H�8��H�H�8��H�H�8�y�H�H�8���H�H�8�Y�H�H�8���H�H�8��H�H�8�)���H���H�=��H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���
H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���!H�=H���H�=H���H�=H���$H�=H���(H�=H���$H�=H���H�=H��H�H����������������GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignASCORECPUDATAFSIZEMEMLOCKMSGQUEUENOFILENPROCNICERSSRTPRIORTTIMESTACKSIGPENDINGgetpwnam_rcan't find user for %sgetgrnam_rcan't find group for %s=01too many groups, %d maxpid %ld stopped SIG%s (signal %d) stopped signal %d SIG%s (signal %d) signal %d exit %d (core dumped)-csh/bin/shto_ioIOduplex IO redirectionwrong exec redirectnegative file descriptorfd %d specified twicedupsigfillsetpthread_sigmaskpthread_setcancelstategetresuid(2)getresgid(2)sigemptysetsigprocmaskunexpected unit: %liINFINITYSAVED_MAXSAVED_CURinvalid resource value: %li#<%s: uninitialized>#<%s: >invalid resource name: %ligetrlimit21setrlimit11clock_getresgettimeofdaytimetimesgetrusageclockclock_gettime02pgroup option specified twicerlimit_wrong exec rlimit optionchdir option specified twiceumask option specified twiceuid option specified twicegid option specified twicewrong exec redirect actionwrong exec option*?{}[]<>()~&|\$;'`"
#wrong first argumentInsecure PATH - %schild fd %d is not redirectedto_hashHashsetpgiddup2fcntl(F_GETFD)fcntl(F_SETFD)closecannot close fd before spawnopenchdirsetgidsetuid//dev/nulldaemonfork(2)exit$?$$execforkexit!systemspawnsleepabortProcessWNOHANGWUNTRACEDkillwaitwait2waitpidwaitpid2waitalldetachWaiternewpidStatus==&>>to_ito_sinspectstopped?stopsigsignaled?termsigexited?exitstatussuccess?coredump?ppidgetpgrpsetpgrpgetpgidgetsidsetsidgetprioritysetpriorityPRIO_PROCESSPRIO_PGRPPRIO_USERRLIM_SAVED_MAXRLIM_INFINITYRLIM_SAVED_CURRLIMIT_ASRLIMIT_CORERLIMIT_CPURLIMIT_DATARLIMIT_FSIZERLIMIT_MEMLOCKRLIMIT_MSGQUEUERLIMIT_NICERLIMIT_NOFILERLIMIT_NPROCRLIMIT_RSSRLIMIT_RTPRIORLIMIT_RTTIMERLIMIT_SIGPENDINGRLIMIT_STACKuiduid=gidgid=euideuid=egidegid=initgroupsgroupsgroups=maxgroupsmaxgroups=CLOCK_REALTIMECLOCK_MONOTONICCLOCK_PROCESS_CPUTIME_IDCLOCK_THREAD_CPUTIME_IDCLOCK_REALTIME_COARSECLOCK_REALTIME_ALARMCLOCK_MONOTONIC_RAWCLOCK_MONOTONIC_COARSECLOCK_BOOTTIMECLOCK_BOOTTIME_ALARMcstimecutimestimeutimeTmsUIDGIDrideidchange_privilegegrant_privilegeeid=re_exchangere_exchangeable?sid_available?switchfrom_nameSysgetuidgeteuidgetgidgetegidsetruidsetrgidseteuidsetegidsetreuidsetregidsetresuidsetresgidissetugidinouterrchildstatuspgroupunsetenv_othersumaskclose_othersENVnanosecondmicrosecondmillisecondsecondfloat_microsecondfloat_millisecondfloat_secondTIME_BASED_CLOCK_REALTIMETIMES_BASED_CLOCK_MONOTONIChertzexec_arg!.:breakcasecontinuedodoneelifelseesacevalexecexitexportfiforifinreadonlyreturnsetshiftthentimestrapunsetuntilwhilemaxgroups %d shold be positiveenvironment name contains a equal : %scan't handle UID while evaluating block given to Process::UID.switch methodcan't handle GID while evaluating block given to Process::UID.switch methodsigaction to obtain old actionsigaction to set default actionnegative process group ID : %ldunsetenv_others option specified twiceclose_others option specified twicewrong exec redirect symbol: %liwrong exec option symbol: %licyclic child fd redirection from %dAnother thread waited the process started by system().GETTIMEOFDAY_BASED_CLOCK_REALTIMETIMES_BASED_CLOCK_PROCESS_CPUTIME_IDGETRUSAGE_BASED_CLOCK_PROCESS_CPUTIME_IDCLOCK_BASED_CLOCK_PROCESS_CPUTIME_ID��������e��AGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0D
X	l	�
�HR�(Dc�#DZ,�YB�D�A ��
ABH |E�{
PC
O0DTX
DSPHI`hkB�B�B �B(�A0�A8�D�g
8A0A(B BBBA�
8A0A(B BBBD$�;E�D�D0fFA`�kB�B�B �B(�A0�A8�D�g
8A0A(B BBBA�
8A0A(B BBBD$X;E�D�D0fFA$�=A�D�D nDA��E��(��E�D�D0`
CAA�mE�G ]C#HS(0H`
ALDB�E�D �A(�GPa
(A ABBFn
(C ABBJ4�FB�E�D �D(�D0i(D ABB�]EAD �HIHI"IQ
A4HILHId.HY
F(�:E�G
K�����
B,�E�C
B�S�����
D0�gF�G�A �D@I
 AABA0H[
F,#HSD8XB�F�A �s
ABAG
DNG��.J�S�� ��Dw
Ek
ET�5DX
A(SE�D�D0w
FAA8D�F�E�D �D(�D@Y
(F ABBA,�LF�A�A �G0u DAB0�^F�A�D �D0@
 DABA0�kF�D�D �D0H
 FABA(SE�D�D0w
FAA4D�E�A�D z
DAGE
MAE|;E�i
F@��F�B�B �D(�A0�D@v
0D(A BBBD�5DX
A(�SE�D�D0w
FAA8$�F�E�D �D(�D@�
(F ABBA0`^F�A�D �D0@
 DABA(�\E�A�G0@
FAA0��F�D�D �D0i
 FABA(�SE�D�D0w
FAA 	;E�i
F@<	�F�B�B �D(�A0�D@v
0D(A BBBD8�	�F�D�A �F
ABDJ
MBE �	/A�D w
AC<�	�B�B�B �D(�D0�A
(D BBBG 
H4
�B�I�B �B(�D0�C8�F`X
8C0A(B BBBAL�
B�E�E �D(�C0�`
(A BBBFh
(A BBBA�
IA�k
D�
#HS,GF�A�A �J0m DAB4IA�k
DP#HS,hGF�A�A �J0m DAB(�eF�D�A �q
DBN�n\�{B�E�G �D(�G0�Z
(A EBBK�
(D EGIJD(A DBE8
L
`
Dt�B�B�B �A(�A0�G��
0C(A BBBB@��B�J�I ��
ABAF
AFSAABL
�B�E�D �D(�G0�
(G ABBHX
(G ABBLP
�Hp�
Kl
?Hl
D�
?He
K�
EH\
LI�
GHr
F0�
lE�D�D k
CALXCA(iE�D�D o
DAO@HE�h
K\^Hh
HX|QHx
H�IHt
D�YH}
K(�pE�I�G r
FAB$��D �
Ft
DN
B,$�F�I�D �D
FBA,T�F�F�D �H
AGH,�yF�H�D �J
ABA(�~E�D�K0B
HAAL�_F�B�A �A(�N0�
(D ABBH�
(H DDBI$0D p
Df
BR
F(X�E�L X
AFd
AA(��E�D�KPp
FAA,��E�MP�
AF>
AA ��E�P��
AI([F�H�J �jAS0HD�F�B�E �E(�A0�H8�GPn
8D0A(B BBBC$�4E�A�F0eAA8��F�G�G �A(�D@i
(D ABBA@��F�D�F �K@l
 AABEV
 FABA8/E�W
LF(X�E�A�Q y
DAK�=E�[
PF(�6F�A�A �jAB �i]�D sAK��d$F�B�B �B(�A0�A8�D�_
8F0A(B BBBH�
8C0A(B BBBE(pYF�D�D �k
CBB�sE�N
EP��B�B�B �B(�A0�A8�G� I�!�
8A0A(B BBBI,�E�C
D��L�E�L�g
H4@gF�E�I �H(�D0}(D ABB$x3E�A�G cAAL�$F�B�B �B(�A0�A8�D��
8A0A(B BBBGL��F�B�B �B(�A0�D8�G�'
8D0A(B BBBDL@�F�J�A �A(�G0�
(F ABBA@
(F ABBE(��F�K�A �A(�D��	H��F�B�B �B(�A0�D8�DP�
8C0A(B BBBC0�F�A�D �K0�
 AABGPwH q
GF
FpdEAD �aH ��E�D �H PL�[F�B�B �E(�D0�A8�D�>
8D0A(B BBBE,$cB�D�I �D0K AAB@T�F�A�F �K0x
 ADBIj
 AABA0��F�J�A �D��
 AABD�HN�	�
H?F�K�A �A(�D0n
8K@e8H0k
(M ABBFX�H�	$+B%]y&��'��()Ig%� �%�:�0
�:�I@	I)Y>P	FYhj�`
�j���p����=�('	=�W�o�#z��I��Y�I�!P|3>�W4�Dn�9� �9���@k���0�;@�W[l�kt[���`;�����=��#�@{[��i{�
	�
	�}	�	m�}	
�	�	#'�	C�	]�	0j�	��
��	��
�F�F�F�3P]B�^�x������������"	&	9?	 K	9f	Y	@�	Y�	��	`.�	��	�

�:
�
2
�N
�
]
�|
G�
�g�
G�
��
P0�
���##�:�O�W	�^�y����������	�����.; [n ��� ����%��5
	
%-
�G
0ST
�s
�
���
�
l�
 L�
l�p^)�G;c�kr;���@S���Z����	@"#Z7�S`;b��N����N��P5	#�?�Y�Sf�����������^�l)\5lS�op�~��S�S�S���`;
�BNf��}N��P��p!#��O( /F	L	�S	�ZO~=�P��=�^�@^.�S`�k��!� �!�i! !Ii!=�!Z�!�!��!G��!�9"��!I9"#c"@c"e�"�p"G��"�%#��"e�%#�#/0#nK�#�&��#{�&�*& &
1*&S:&s0&
�:&�J&�@&
�J&
%+4P&�Q%+�	,�0+��	,
�-6,�U	�c	�r	x�	p�	h�	`�	X��-�L0�	L0*�0FP0?U�0r�0��0?��0�1��0E�1g1 1G-g1G�1_p1lj�1�I2��1i�I2��2�P2H��2�2 �2^-�2LQ3i3QyQ3��3�`3I��3�	4��3Y	4�484pE�4j6��4��6��6�6���6(70�6�A(7Y�7o07yx�7�.8��7~�.8��:�08_��: �;> �:S �;q R<� �;�� R<� �<� `<�� �<!�?!!	 *!	PO!	Hl!	@�!	0�!	8�!	("�?'"�CE"�Cg"D�"	�"D�"'D�"'D�"�D#�D7#$E[#�D4r#$E�#�E�#0E��#�E�#�F�#�E��#�F	$�F!$�F/,$�FM$uGl$	w$uG�$�G�$�G=�$�G�$�G�$�G%iH?%�SY\%iHz%�H�%H�%�H�%�S�%	��%	�&	�&	�&	�(&	�/&	�6&	�?&	�H&�St&	T�&	T�&�T�&Ts�&�T'2Z5'�T�E'�Y'2Zx'�]�'�]�'G^�'G^�'�^(�^/(�dM(	�T(�dz(�t�(�t�(hv�(hv)Hw)Hw<)YwX)Pw	g)Yw�)'x�)'x�)�y�)0x��)�y�)Wz
*�yw*Wz.*�zC*�z\*1{s*1{�*�{�*�{�*|�*|+{~'+��4+{~U+�~t+�~c�+�~�+��+�~��+��+���+��,��,ǀ9,ǀU,ـo,ـ�,��,��,/��,/��,��%&'($
-L-R--#-(---2-7-<-(A-/F-5K-:Q->W-E]-c-]i-ho-u-�{- �-��-��-��-��-��-��-�-�-��-��-	�-,�-/�-2�-H�-��-:�-@�-m�-Y�-C�-�.�.�..�.�#.�).�/.�5.�;.�A.G.M.S.#Y.-_.7e.ik.pq.Tw.r}.��.��.��.��.��.��.��.��.��.��.��.��.�.(�.��.-�.p�.J�.�.g�.��.�/�/H
/�/�/�/�%/�+/&1/.7/=/�C/dJ/�Q/;W/�^/^e/3k/�r/�y/@/O�/��/��/��/��/��/�/��/��/��/��/��/��/��/��/��/��/��/�0
00
00&0$-0,403;0:B0>I0BP0IW0L^0Ne0Ql0Vs0[z0c�0l�0t�0~�0��0��0��0��0��0��0��0��0��0��0��0��0��0��0�01
1-1<1F"1R)1]01i71v>1�E1�L1�S1�Z1�a1�h1�o1�v1�}1�1�1�1�1�1�1�1$�1*�15�1<�1D�1N�1Y�1h�1x�1��1��1�2�	2�2�22#%2*,21327:2=A2AH2EO2IV2M]2Qd2bk2rr2wy2��2��2��2��2��2��2��2��2��2��2��2��2��2��2��2	�2	�2	�2&	�2)	3-	31	37	3>	!3E	(3U	/3[	63h	=3l	D3w	K3�	R3�	Y3�	`3�	g3�	n3@u3�	|3�	�3h�3��3��3�	�3�3�3�3�3

 !"#)*+�344::24N4U4r4�4�4�4�4�4�4�4�4�45505@5Q5f5q5�5�5�5�5�5�5�5�5�5�5666%6=9&,696I6T6Z6	@~>f6s6}��
D	�	�	

~6�6S
�6�6�
��6�6�6�6�6�677!7'7"i	87I7R7.�u�\7r7�7�7�7�7�7�;�7�7�9�7�78'868A8L8V8b8l8w8�8�8*�8�8�8�8�8�8�8�8�89�-�99"9-9�5:9�I9W9b9q9|9�9�9�9� �9� �9=��9�9�?��9�9�9�9�9�C[	::":D7:0D�B:]:}:�F��:�:�:�:�:�G6;Hi;pH+;>;�H$P;_;j;w;�;�;�;�;�;�;�;
<<&<5<=<@Z�M<T<d<v<�<�<�<�<�]g�<�<�<�<P^3=�^$=,=7=F=Q=^=n=x=�=�d��=�=�=�=	&�
&m>�=�=�=�=�t��=�=>pv�>>`w�,>Q>b>r>|>`zd�>�>�>�>�>�za�>@{��>�>�>|? |[?&?=?Ѐ	J?�
S?�?b?}?�?�?��?�?�?�?@@$@8@H@Y@p@{@�@��@��@�@�@��@�@0���@.annobin_process.c.annobin_process.c_end.annobin_process.c.hot.annobin_process.c_end.hot.annobin_process.c.unlikely.annobin_process.c_end.unlikely.annobin_process.c.startup.annobin_process.c_end.startup.annobin_process.c.exit.annobin_process.c_end.exit.annobin_rb_last_status_get.start.annobin_rb_last_status_get.end.annobin_sig_do_nothing.start.annobin_sig_do_nothing.endsig_do_nothing.annobin_memsize_exec_arg.start.annobin_memsize_exec_arg.endmemsize_exec_arg.annobin_intcmp.start.annobin_intcmp.endintcmp.annobin_intrcmp.start.annobin_intrcmp.endintrcmp.annobin_p_uid_exchangeable.start.annobin_p_uid_exchangeable.endp_uid_exchangeable.annobin_rb_waitpid_blocking.start.annobin_rb_waitpid_blocking.endrb_waitpid_blocking.annobin_before_exec.start.annobin_before_exec.endsaved_sigpipe_handler.annobin_after_exec.start.annobin_after_exec.endafter_exec.annobin_rlimit_resource_name2int.start.annobin_rlimit_resource_name2int.endrlimit_resource_name2int.annobin_proc_setmaxgroups.start.annobin_proc_setmaxgroups.endproc_setmaxgroups_maxgroups.annobin_maxgroups.start.annobin_maxgroups.end.annobin_proc_getmaxgroups.start.annobin_proc_getmaxgroups.endproc_getmaxgroups.annobin_obj2uid.start.annobin_obj2uid.endobj2uid.annobin_p_uid_from_name.start.annobin_p_uid_from_name.endp_uid_from_name.annobin_obj2gid.start.annobin_obj2gid.endobj2gid.annobin_p_gid_from_name.start.annobin_p_gid_from_name.endp_gid_from_name.annobin_rb_check_exec_env.start.annobin_rb_check_exec_env.endrb_check_exec_envcheck_exec_env_i.annobin_mark_exec_arg.start.annobin_mark_exec_arg.endmark_exec_arg.annobin_check_exec_env_i.start.annobin_check_exec_env_i.end.annobin_fill_envp_buf_i.start.annobin_fill_envp_buf_i.endfill_envp_buf_i.annobin_get_pid.start.annobin_get_pid.endget_pid.annobin_proc_setpgrp.start.annobin_proc_setpgrp.endproc_setpgrp.annobin_handle_fork_error.start.annobin_handle_fork_error.endhandle_fork_error.annobin_read_retry.start.annobin_read_retry.endread_retry.annobin_rb_f_exit_bang.start.annobin_rb_f_exit_bang.endrb_f_exit_bang.annobin_proc_geteuid.start.annobin_proc_geteuid.endproc_geteuid.annobin_proc_getegid.start.annobin_proc_getegid.endproc_getegid.annobin_proc_seteuid.start.annobin_proc_seteuid.endproc_seteuid.annobin_proc_getgid.start.annobin_proc_getgid.endproc_getgid.annobin_proc_getuid.start.annobin_proc_getuid.endproc_getuid.annobin_proc_setsid.start.annobin_proc_setsid.endproc_setsid.annobin_proc_getgroups.start.annobin_proc_getgroups.endproc_getgroups.annobin_proc_setgroups.start.annobin_proc_setgroups.endproc_setgroups.annobin_proc_initgroups.start.annobin_proc_initgroups.endproc_initgroups.annobin_proc_getpgrp.start.annobin_proc_getpgrp.endproc_getpgrp.annobin_get_ppid.start.annobin_get_ppid.endget_ppid.annobin_pst_pid.start.annobin_pst_pid.endpst_pidid_pid.annobin_pst_message.start.annobin_pst_message.endpst_message.annobin_pst_to_i.start.annobin_pst_to_i.endpst_to_iid_status.annobin_pst_equal.start.annobin_pst_equal.endpst_equal.annobin_detach_process_pid.start.annobin_detach_process_pid.enddetach_process_pid.annobin_proc_exec_sh.start.annobin_proc_exec_sh.endproc_exec_sh.annobin_check_uid_switch.start.annobin_check_uid_switch.endcheck_uid_switchunder_uid_switch.annobin_p_sys_setuid.start.annobin_p_sys_setuid.endp_sys_setuid.annobin_p_sys_setresuid.start.annobin_p_sys_setresuid.endp_sys_setresuid.annobin_proc_seteuid_m.start.annobin_proc_seteuid_m.endproc_seteuid_m.annobin_proc_setuid.start.annobin_proc_setuid.endproc_setuid.annobin_p_sys_setreuid.start.annobin_p_sys_setreuid.endp_sys_setreuid.annobin_p_sys_seteuid.start.annobin_p_sys_seteuid.endp_sys_seteuid.annobin_p_uid_switch.start.annobin_p_uid_switch.endp_uid_switchSAVED_USER_IDp_uid_sw_ensure.annobin_p_uid_exchange.start.annobin_p_uid_exchange.endp_uid_exchange.annobin_p_uid_change_privilege.start.annobin_p_uid_change_privilege.endp_uid_change_privilege.annobin_check_gid_switch.start.annobin_check_gid_switch.endcheck_gid_switchunder_gid_switch.annobin_p_sys_setgid.start.annobin_p_sys_setgid.endp_sys_setgid.annobin_p_sys_setresgid.start.annobin_p_sys_setresgid.endp_sys_setresgid.annobin_proc_setegid.start.annobin_proc_setegid.endproc_setegid.annobin_proc_setgid.start.annobin_proc_setgid.endproc_setgid.annobin_p_sys_setregid.start.annobin_p_sys_setregid.endp_sys_setregid.annobin_p_sys_setegid.start.annobin_p_sys_setegid.endp_sys_setegid.annobin_p_gid_exchange.start.annobin_p_gid_exchange.endp_gid_exchangeSAVED_GROUP_ID.annobin_p_gid_change_privilege.start.annobin_p_gid_change_privilege.endp_gid_change_privilege.annobin_p_gid_switch.start.annobin_p_gid_switch.endp_gid_switchp_gid_sw_ensure.annobin_check_exec_redirect_fd.isra.7.start.annobin_check_exec_redirect_fd.isra.7.endcheck_exec_redirect_fd.isra.7id_inid_outid_err.annobin_check_exec_redirect1.start.annobin_check_exec_redirect1.endcheck_exec_redirect1.annobin_check_hash.part.8.start.annobin_check_hash.part.8.endcheck_hash.part.8.annobin_check_exec_fds_1.part.9.start.annobin_check_exec_fds_1.part.9.endcheck_exec_fds_1.part.9.annobin_save_redirect_fd.part.11.start.annobin_save_redirect_fd.part.11.endsave_redirect_fd.part.11.annobin_rb_setegid_core.start.annobin_rb_setegid_core.endrb_setegid_core.annobin_p_gid_sw_ensure.start.annobin_p_gid_sw_ensure.end.annobin_p_gid_grant_privilege.start.annobin_p_gid_grant_privilege.endp_gid_grant_privilege.annobin_rb_seteuid_core.start.annobin_rb_seteuid_core.endrb_seteuid_core.annobin_p_uid_sw_ensure.start.annobin_p_uid_sw_ensure.end.annobin_p_uid_grant_privilege.start.annobin_p_uid_grant_privilege.endp_uid_grant_privilege.annobin_rb_f_sleep.start.annobin_rb_f_sleep.endrb_f_sleep.annobin_reduce_factors.constprop.28.start.annobin_reduce_factors.constprop.28.endreduce_factors.constprop.28.annobin_timetick2integer.isra.14.constprop.26.start.annobin_timetick2integer.isra.14.constprop.26.endtimetick2integer.isra.14.constprop.26.annobin_p_gid_have_saved_id.start.annobin_p_gid_have_saved_id.endp_gid_have_saved_id.annobin_p_gid_exchangeable.start.annobin_p_gid_exchangeable.endp_gid_exchangeable.annobin_p_uid_have_saved_id.start.annobin_p_uid_have_saved_id.endp_uid_have_saved_id.annobin_retry_fork_async_signal_safe.start.annobin_retry_fork_async_signal_safe.endretry_fork_async_signal_safe.annobin_timetick2dblnum.isra.12.constprop.25.start.annobin_timetick2dblnum.isra.12.constprop.25.endtimetick2dblnum.isra.12.constprop.25.annobin_make_clock_result.constprop.23.start.annobin_make_clock_result.constprop.23.endmake_clock_result.constprop.23id_nanosecondid_microsecondid_millisecondid_secondid_float_microsecondid_float_millisecondid_float_second.annobin_rb_proc_times.start.annobin_rb_proc_times.endrb_cProcessTms.annobin_pst_wifstopped.start.annobin_pst_wifstopped.endpst_wifstopped.annobin_pst_wifexited.start.annobin_pst_wifexited.endpst_wifexited.annobin_pst_wcoredump.start.annobin_pst_wcoredump.endpst_wcoredump.annobin_pst_wifsignaled.start.annobin_pst_wifsignaled.endpst_wifsignaled.annobin_pst_bitand.start.annobin_pst_bitand.endpst_bitand.annobin_pst_rshift.start.annobin_pst_rshift.endpst_rshift.annobin_proc_getpgid.start.annobin_proc_getpgid.endproc_getpgid.annobin_pst_wstopsig.start.annobin_pst_wstopsig.endpst_wstopsig.annobin_pst_wexitstatus.start.annobin_pst_wexitstatus.endpst_wexitstatus.annobin_pst_success_p.start.annobin_pst_success_p.endpst_success_p.annobin_pst_wtermsig.start.annobin_pst_wtermsig.endpst_wtermsig.annobin_proc_setpgid.start.annobin_proc_setpgid.endproc_setpgid.annobin_rlimit_resource_value.start.annobin_rlimit_resource_value.endrlimit_resource_value.annobin_proc_setpriority.start.annobin_proc_setpriority.endproc_setpriority.annobin_proc_getpriority.start.annobin_proc_getpriority.endproc_getpriority.annobin_pst_to_s.start.annobin_pst_to_s.endpst_to_s.annobin_proc_getsid.start.annobin_proc_getsid.endproc_getsid.annobin_pst_inspect.start.annobin_pst_inspect.endpst_inspect.annobin_rlimit_resource_type.start.annobin_rlimit_resource_type.endrlimit_resource_type.annobin_proc_getrlimit.start.annobin_proc_getrlimit.endproc_getrlimit.annobin_proc_setrlimit.start.annobin_proc_setrlimit.endproc_setrlimit.annobin_rb_clock_getres.start.annobin_rb_clock_getres.endid_hertzid_GETTIMEOFDAY_BASED_CLOCK_REALTIMEid_TIME_BASED_CLOCK_REALTIMEid_TIMES_BASED_CLOCK_MONOTONICid_GETRUSAGE_BASED_CLOCK_PROCESS_CPUTIME_IDid_TIMES_BASED_CLOCK_PROCESS_CPUTIME_IDid_CLOCK_BASED_CLOCK_PROCESS_CPUTIME_ID.annobin_rb_clock_gettime.start.annobin_rb_clock_gettime.end.annobin_rb_last_status_set.start.annobin_rb_last_status_set.endrb_cProcessStatus.annobin_rb_last_status_clear.start.annobin_rb_last_status_clear.end.annobin_rb_waitpid.start.annobin_rb_waitpid.end.annobin_detach_process_watcher.start.annobin_detach_process_watcher.enddetach_process_watcher.annobin_proc_waitall.start.annobin_proc_waitall.endproc_waitall.annobin_proc_wait.start.annobin_proc_wait.endproc_wait.annobin_proc_wait2.start.annobin_proc_wait2.endproc_wait2.annobin_rb_detach_process.start.annobin_rb_detach_process.endrb_cWaiter.annobin_proc_detach.start.annobin_proc_detach.endproc_detach.annobin_rb_proc_exec.start.annobin_rb_proc_exec.end.annobin_rb_execarg_extract_options.start.annobin_rb_execarg_extract_options.endcheck_exec_options_i_extract.annobin_rb_execarg_get.start.annobin_rb_execarg_get.endexec_arg_data_type.annobin_rb_execarg_addopt.start.annobin_rb_execarg_addopt.endid_pgroupid_unsetenv_othersid_chdirid_umaskid_close_othersid_uidid_gidid_closeid_child.annobin_check_exec_options_i_extract.start.annobin_check_exec_options_i_extract.end.annobin_check_exec_options_i.start.annobin_check_exec_options_i.endcheck_exec_options_i.annobin_rb_exec_fillarg.start.annobin_rb_exec_fillarg.endrb_exec_fillargposix_sh_cmds.16791.annobin_rb_execarg_init.start.annobin_rb_execarg_init.end.annobin_rb_execarg_new.start.annobin_rb_execarg_new.end.annobin_rb_execarg_setenv.start.annobin_rb_execarg_setenv.end.annobin_rb_execarg_fixup.start.annobin_rb_execarg_fixup.endid_ENV.annobin_rb_execarg_run_options.start.annobin_rb_execarg_run_options.end.annobin_rb_exec_async_signal_safe.start.annobin_rb_exec_async_signal_safe.end.annobin_rb_f_exec.start.annobin_rb_f_exec.end.annobin_rb_exec_atfork.start.annobin_rb_exec_atfork.endrb_exec_atfork.annobin_rb_fork_ruby.start.annobin_rb_fork_ruby.end.annobin_proc_daemon.start.annobin_proc_daemon.endproc_daemon.annobin_rb_f_fork.start.annobin_rb_f_fork.endrb_f_fork.annobin_rb_exit.start.annobin_rb_exit.end.annobin_rb_f_exit.start.annobin_rb_f_exit.end.annobin_rb_f_abort.start.annobin_rb_f_abort.end.annobin_rb_syswait.start.annobin_rb_syswait.end.annobin_rb_fork_async_signal_safe.start.annobin_rb_fork_async_signal_safe.endproc_syswait.annobin_rb_spawn_internal.start.annobin_rb_spawn_internal.endrb_spawn_internal.annobin_rb_f_system.start.annobin_rb_f_system.endrb_f_system.annobin_rb_f_spawn.start.annobin_rb_f_spawn.endrb_f_spawn.annobin_proc_syswait.start.annobin_proc_syswait.end.annobin_rb_spawn_err.start.annobin_rb_spawn_err.end.annobin_rb_spawn.start.annobin_rb_spawn.end.annobin_InitVM_process.start.annobin_InitVM_process.end.annobin_Init_process.start.annobin_Init_process.end.LC13.LC14.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC15.LC16.LC17.LC18.LC19.LC20.LC21.LC22.LC23.LC24.LC25.LC28.LC30.LC31.LC26.LC27.LC29.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC41.LC40.LC39.LC42.LC43.LC50.LC51.LC49.LC52.LC45.LC46.LC47.LC44.LC48.LC53.LC54.LC55.LC56.LC57.LC58.LC60.LC61.LC59.LC62.LC63.LC64.LC65.LC66.LC67.LC73.LC69.LC68.LC71.LC70.LC72.LC74.LC77.LC76.LC84.LC80.LC82.LC81.LC78.LC83.LC75.LC86.LC85.LC79.LC88.LC87.LC89.LC91.LC90.LC94.LC95.LC93.LC92.LC101.LC103.LC97.LC105.LC100.LC96.LC102.LC104.LC98.LC99.LC107.LC106.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.LC120.LC121.LC122.LC123.LC124.LC125.LC126.LC127.LC128.LC129.LC130.LC131.LC132.LC133.LC134.LC135.LC136.LC137.LC138.LC139.LC140.LC141.LC142.LC143.LC144.LC145.LC146.LC147.LC148.LC149.LC150.LC151.LC152.LC153.LC154.LC155.LC156.LC157.LC158.LC159.LC160.LC161.LC162.LC163.LC164.LC165.LC166.LC167.LC168.LC169.LC170.LC171.LC172.LC173.LC174.LC175.LC176.LC177.LC178.LC179.LC180.LC181.LC182.LC183.LC184.LC185.LC186.LC187.LC188.LC189.LC190.LC191.LC192.LC193.LC194.LC195.LC196.LC197.LC198.LC199.LC200.LC201.LC202.LC203.LC204.LC205.LC206.LC207.LC208.LC209.LC210.LC211.LC212.LC213.LC214.LC215.LC216.LC217.LC218.LC219.LC220.LC221.LC222.LC223.LC224.LC225.LC226.LC227.LC228.LC229.LC230.LC231.LC232.LC233.LC234.LC235.LC236.LC237.LC238.LC239.LC240.LC241.LC242.LC243.LC244.LC245.LC246.LC247.LC248.LC249.LC250.LC251.LC252.LC253.LC254.LC255.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouprb_last_status_get_GLOBAL_OFFSET_TABLE_ruby_current_threadrb_thread_stop_timer_threadsignalrb_thread_reset_timer_threadrb_thread_start_timer_threadrb_toupperst_locale_insensitive_strcasecmprb_islowerrb_isupperrb_fix2intsysconfrb_eArgErrorrb_raiserb_check_string_typerb_num2uintrb_string_value_cstrrb_str_capacity__errno_locationrb_str_modify_expandgetpwnam_rrb_alloc_tmp_bufferrb_free_tmp_bufferrb_sys_failgetgrnam_rrb_ary_newrb_hash_tbl_rawst_foreachrb_gc_markstrchrrb_assoc_newrb_ary_pushrb_str_cat_cstrrb_str_catrb_securegetpidrb_during_gcrb_thread_sleeprb_protectrb_gcrb_jump_tagrb_scan_argsrb_num2int__stack_chk_failrb_check_typerb_out_of_intrb_string_value_ptrgetppidrb_attr_getrb_str_catfruby_signal_namerb_ivar_getrb_equalrb_thread_local_arefexecleexeclrb_eRuntimeErrorrb_block_given_prb_yieldrb_ensurerb_check_convert_typerb_io_taint_checkrb_io_check_closedrb_check_idrb_check_hash_typerb_hash_lookuprb_hash_asetrb_update_max_fdstrlcpyrb_time_intervalrb_thread_wait_forrb_thread_sleep_foreverrb_error_arityrb_ll2inumrb_funcallrb_stdoutrb_io_flushrb_stderrsigfillsetpthread_sigmaskpthread_setcancelstategetresuidsigemptysetsigactionwritestrlensigprocmaskgetresgidvforkrb_float_new_in_heaprb_id2symrb_proc_timesrb_struct_newrb_sym2strrb_num2ulongrb_str_buf_newrb_class2namerb_sprintfrb_cFalseClassrb_cSymbolrb_cFixnumrb_cFloatrb_cTrueClassrb_cNilClassrb_uint2bigrb_clock_getresrb_clock_gettimeclockgettimeofdaygetrusagerb_last_status_setrb_obj_allocrb_ivar_setrb_last_status_clearrb_waitpidrb_thread_call_without_gvlrb_threadptr_execute_interruptsrb_detach_processrb_thread_createrb_thread_local_asetrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_proc_execrb_execarg_extract_optionsrb_execarg_getrb_check_typeddatarb_execarg_addoptrb_io_check_iorb_id2namerb_ary_entryrb_get_pathrb_to_intrb_str_duprb_ary_new_from_valuesrb_str_encode_ospathrb_check_array_typerb_gc_writebarrier_unprotectrb_io_modestr_oflagsrb_hash_newrb_str_new_cstrdln_find_exe_rstrncmprb_execarg_initmemcpyrb_string_valuerb_check_safe_objrb_str_new_frozenrb_env_path_taintedrb_safe_levelrb_eSecurityErrorrb_execarg_newruby_xcallocrb_cDatarb_data_typed_object_allocrb_execarg_setenvrb_execarg_fixuprb_ary_storerb_str_newrb_str_set_lenrb_cObjectrb_const_getrb_convert_typest_insertst_deleterb_execarg_run_optionsrb_close_before_execrb_warnruby_getcwdruby_xfreedup2qsortfcntlrb_exec_async_signal_safeexecveexecvrb_f_execrb_sys_fail_strrb_fork_rubyrb_threadptr_pending_interrupt_clearrb_thread_atforkrb_cloexec_openruby_stoprb_exitrb_str_new_staticrb_eSystemExitrb_class_new_instancerb_exc_raiserb_f_exitrb_f_abortruby_error_printrb_io_putsrb_syswaitrb_fork_async_signal_saferb_piperb_cloexec_fcntl_dupfdrb_spawn_errrb_spawnInitVM_processrb_define_virtual_variablerb_define_global_functionrb_define_modulerb_mProcessrb_define_constrb_define_singleton_methodrb_f_killrb_define_module_functionrb_cThreadrb_define_class_underrb_undef_alloc_funcrb_undef_methodrb_define_methodrb_struct_define_underrb_cStructrb_define_module_underrb_mProcUIDrb_mProcGIDrb_singleton_classrb_define_aliasrb_mProcID_Syscallrb_f_notimplementInit_processrb_intern2*�����������������������������������������������������������������������
1��������#���������0��������;���������C��������m�������������������������������������������������������������������������������������������+���������8��������S���������`��������o���������|����������������������������������������������������������������������������������������������������+���������8��������Y��������f�����������*����������������������������������������������]��������m���������	���������
��������������������������
��������)
��������V��������p�������������������������������������*������������������������������������
����������������6	��������\
��������d������������������
������������������������� ��������0��������7���������<��������C*��������M���������W����������������������������������������������������������������������
������������������������(��������1��������:��������C��������L��������U��������^��������j���������	������������������	���������������������������*������������������		��������)		��������4	��������@	���������H	��������R		��������]	��������l	���������q	���������	���������	���������	���������	���������	���������	��������*
��������2
��������a
���������
* ���������
!���������
 ���������
"���������
#����������������,$��������d%��������p���������w&������������������'���������(���������)���������*����������������)+��������I,��������n��������s-������������������.��������8
.��������E
��������o
��������|
���������
���������
���������
/��������0��������,��������81��������J��������|���������2���������/�������������������*����������������������������������3��������'4��������C��������^��������e5��������|������������������6���������������������8��������9�����������������"8��������2���������:8��������S���������f9��������w����������8�������������������8�������������������8�������������:���������y�����������������������������=��������������������������������������>��������������������������*?����������������!��������a��������h@��������������������������*����������������T������������������*�������������������������A��������7��������q��������xB������������������,���������(����������C���������C����������������"��������-*D��������I��������V��������k,��������r(��������}*����������������������������(����������(��������,��������*��������!?*��������J��������Z��������`��������p*?��������w���������������������������F�����������������3��������R��������q��������y���������G���������������������������G��������
��������A��������OG��������h������������������������������������H�����������������1��������8I��������O��������k+��������r)��������}G������������������������������������(������������������)��������+��������G��������!��������?G��������J��������a+��������h)��������t���������C���������C������������������������������������*D������������������������L��������S��������]J��������oK��������{L������������������M��������������
*������������������������"*��������)��������3��������:*��������A��������K�������������������������������������������)������������������O��������2P������������������P���������P���������*�������������������������� Q��������! ��������C R��������b ��������u ��������� ��������� ��������� ��������� ��������!	��������!S��������)!+��������;!G��������E!��������Z!G��������e!��������z!���������!���������!,��������"*��������"*"*��������5"��������J"���������"���������"T���������"U���������"V���������"T��������#W��������!#X���������$Y���������$Z���������$Z��������Y%Y��������r%Z���������%Z���������%Y���������%Z���������%Y���������&*[���������&\���������&*]���������&\���������&^���������&_��������'`��������$'a��������@'b��������`'���������'c���������'d���������'d��������(��������,(
��������1(S��������k(e���������(f���������(%���������(e���������(g��������)��������;)d��������`)��������j)S��������o)���������)h���������)i���������)���������)`��������*_��������S*%���������*���������*
���������*���������*���������*���������*���������*���������*���������*���������*���������*���������*��������+��������	+��������+��������+��������+��������!+��������b+��������),�.,k��������>,|C,k��������S,tX,k��������h,lm,k��������},d�,k���������,\�,k���������,T�,k��������|-*���������-���������-���������-���������-m��������L/Q/n���������/j���������/j���������/j���������/j��������[0�`0:��������l0���������0'���������0��0:���������0���������0'���������0��0:���������0��������1'��������+1�01:��������<1��������a1'���������1��1:���������1���������1���������1'���������1'���������1��1:��������2��������2��������12'��������A2'��������^2��������k2��������r25���������2'���������2���������2��2:���������2���������2'��������3�3:��������3��������I3'��������k3�p3:��������|3���������3'���������3��3:���������3��������4'��������&4��������34��������B4��������K4��������a4'��������q4'��������|4���������4o��������5	��������5��������65��������T5���������5p���������5���������5*���������5��������6��������'6��������46��������C6��������S6��������^6q��������q6'���������6'���������6'���������6���������6���������6���������6���������6���������6r��������	7'��������7'��������$7��������97�C77��������O7��������X7�`7:��������l7��������u7s���������7'���������7'���������7���������7����������7&���������7'���������7t��������8��������*8��������K8�P87��������j8'��������s8�{8:���������8���������8u���������8���������8v���������8���������8��������9��������C9*w��������Q9'���������9*x���������9*w���������9*y���������9u���������9��������:*z��������#:*{��������3:*x��������C:*{��������S:*|��������c:*|��������s:*y���������:*z���������:o��������;	��������&;'��������1;��������z;���������;*���������;���������;���������;���������;}��������<��������!<~��������1<~��������<<��������I<��������N<��������u<���������<���������<&���������<���������<���������<��������= ��������=&��������Q='��������`=����������=�=k���������=���������=L�=k���������=D�=k���������=<>k��������>,>k��������+>40>k��������A>$F>k���������>���������>j���������?���������?!���������?���������?���������?���������? ���������?&��������@'��������@���������q@���������@L�@k���������@D�@k���������@<�@k���������@,�@k���������@4�@k���������@$�@k���������@��������A���������sA����������AT���������Am��������rB���������Bm���������B��������C���������[C"��������`C��������gC#��������lC��������sC$��������xC��������C%���������C���������C&���������C���������C'���������C���������C���������C*����������C�C����������C��C���������D�D*���������vD����������D���������D*����������D����������D���������E���������E���������JE��������TE��������^E*���������qE����������E���������E���������E����������E���������E���������E���������E���������2F(��������9F&��������IF'��������cF*����������F���������F���������F���������F����������F����������F�G���������GGG���������oG����������G���������G���������G'���������G��������5H��������GH��������wH����������H����������H��������IM��������#I��I1HFJ����������J����������J)���������J��J��J��J��J�
K�K�$K�1K�lK���������K����������K����������K���������L���������L���������)L���������6L���������aL����������L����������LM��������M�M� M�-M�~M����������M��Mk��������N���������;N��������MN*��������TN*��������^N���������N����������N����������N����������N���������O���������YO���������aO���������qO���������yO����������O����������O��������
P��������P��������YP'���������P����������P����������P���������P��������4Q���������cQ���������tQ����������Q���������Q���������Q���������GR��������vR	��������~R����������R*���������R+���������R���������R*���������R,���������R���������R*���������R-���������R���������R*��������S.��������S��������S*��������S/��������#S��������*S*��������1S0��������;S��������BS*��������IS1��������SS��������ZS*��������aS2��������kS��������rS*��������~S3���������S���������S*���������S4���������S���������S����������SP���������S���������TP��������"T���������JT*��������QT5��������[T��������kT*��������uT6��������T���������T����������Us��������V���������tV7��������yV���������V7���������V��������W���������/W���������iWs���������W���������W���������Wf���������W��������LX��������^X���������X1��X���������AYs���������Y���������Y	���������Y��������Z���������
Z��������.Z/���������Z����������Z����������[����������[����������[����������[	���������[���������\���������\���������\���������*\	��������C\����������\��������]��������A]���������P]*���������Z]8��������d]���������]/���������]X���������]*���������]9���������]��������^���������^���������^*���������^���������5^���������^^����������^����������^����������_���������_���������_O��������`��������-`��������=`O���������`����������`P���������`P���������`O��������*a���������@a����������a*����������a��a����������a:���������a;���������a����������a��������>b����������b����������b����������bs���������b���������b�������� cs��������dc��������qcf���������c���������c*���������c<���������c��������d���������Cd���������Wd����������d����������d*���������d=���������d��������oe����������e����������e���������f>��������&f���������Xf��������_f���������f����������f����������f����������f���������g?��������gS��������8g���������Ig��������Sg���������g��������h}��������~h����������h���������h��������1ip��������Ii'��������Yip��������ai~��������qi~���������i��������"j��������Bj��������tj����������j��������*k��������Uk��������lk���������yk����������k����������kR���������k��������2l���������ClR���������l���������l'��������m'��������lm���������m���������m����������mR��������<n���������InR��������knR���������n����������n@���������nS���������nF���������n@��������"oA��������+oS���������o���������o���������
q���������qR���������q@���������qS��������!r��������&rS��������Cr���������^r����������r����������r���������rB���������rS��������!s��������&sS��������<sC��������AsS��������SsQ���������s	���������sS���������sD���������sS��������tE��������tS��������DtF��������ItS��������|tG���������tS���������t���������u��������=u���������Mu����������u����������u����������u���������v��������v���������Cv���������Uv��������Zv����������v����������v����������v����������v����������v�v����������v��������ww���������7w��������Dw����������w*����������w���������w����������w*[���������w\���������w*]���������w\���������wb��������x���������Gx��������Yx(��������bx&��������ix*[��������qx\��������xx*]���������x\���������x����������x����������x-���������x����������x����������x%��������
yH��������y���������yR��������&y���������2y���������>y���������Jy��������cyI��������hy���������zyJ��������y���������yH���������y����������yR���������y����������y����������y����������y���������y���������y���������z���������zC��������/z*D��������>z!��������Gz���������NzK��������Sz��������mz*����������zL���������z����������z*����������z����������z����������z����������z����������z����������z&��������{��������){'��������Y{*���������p{���������y{����������{����������{����������{*]���������{����������{*����������{����������{����������{X��������|���������`|����������|��������#}��������(}��������9}��������I}��������d}!���������}���������}���������}���������}O���������}O��������~��������� ~R��������(~��������[~���������i~��������r~���������~����������~����������~����������~���������*������������������@���������R���������W���������^�f:��������r'����������������������������M��������������������������� ����������,����������P���������������������������������/���������������������N��������
�*��������������������O��������$����������+�*���������7�P��������?����������O�Q��������T����������g�R��������l�����������S���������������������T���������������������U���������������������*���������ǁL��������ρ���������ց*����������V�������������������W���������������������*���������	�X������������������#�Y��������(����������:�P��������?����������R�Q��������W����������m�T��������r������������R���������������������L���������������������V�������������������‚*���������тZ��������ւ����������[�������������������\������������������"�]��������'����������=�^��������B����������U�_��������Z����������p�`��������u����������|�*�����������a����������������������������������߃b���������������������c�������������������*����������d������������������ �[�b��������`����������g�z�e����������������������f�����������������������g�������������������ĄԄh��������ل�����������i����������������������j�������������������(�c��������-����������4�D�k��������I����������P�`�l��������e����������l�|�m�����������������������n�����������������������o���������������������Ѕp��������Յ���������܅�q���������������������r��������
���������� �c��������%����������8�s��������=����������P�t��������U����������h�u��������m������������v���������������������C���������������������w�������������������цx��������ֆ����������y�������������������z�������������������{�������� ����������/�|��������4����������C�}��������H����������^���������c����������y���������~������������~����������~���������������������������������������������������Ç���������҇���������ׇ�����������������������������������������������������������������������"����������'����������6����������;����������J����������O����������^����������c����������r����������w����������������������������������������������������������������������������ˆ���������Lj���������ֈ���������ۈ�����������������������������������������������������������"����������5����������:����������P����������U����������h����������m����������������������������������������������������������������������������щ���������։���������������������������������������	��������������������!����������7����������<����������R�J��������W����������c�*l��������j�&��������o����������~���������������������������������������������������������������������������������������Ί���������ӊ���������������������������������������������������
������������������������������#����������2����������7����������F����������M�"��������R����������a����������h�!��������m����������z��������������������������������������������������������������������������������*���������‹���������Nj(��������͋ҋ)��������܋������������������������������������������������������������������������������������������ ����������'����������7����������<����������C����������S����������X����������_����������o����������t����������{����������������������������������������������������������������������������̌���������ь���������،�������������������������������������������������������������
����������������������������������������%����������,����������4����������;����������K����������P����������W����������g����������l����������s��������������������������������������������������������������������������������������������������Ǎ���������׍���������܍���������������������������������������������������������������������������������.����������3����������:����������M����������R����������\����������a����������q����������{��������������������������������������������������������������������������������������������������ώ���������Ԏ���������ێ����������A�����������������������������
�E�������������������*��������� ����������,����������4����������;����������J����������O����������V����������i����������n����������u����������������������������������������������������������������������������Ə���������ˏ���������ҏ�������������������������������������������������	�������������������� ����������N�*w��������~�*w����������*y����������*|����������*|��������Ð*y��������Ӑ*z���������*z���������*{���������*{���������*x��������#�*x��������@����������E����������Q����������X��]����������i����������p��u������������c������������������������������������������������������������������������ɑB��������Б�Ց����������������������������������������������������������������������������)����������0��5����������A�?��������H��M����������Y����������`��e����������q����������x��}��������������������������������������������������������������������������Œ���������ђ���������ؒ|ݒ��������������������t����������������������l
�������������������� �d%����������1����������8�\=����������I����������P�TU����������a����������h�Lm����������y������������D������������������������<������������������������4����������������������ȓ,͓���������ٓ����������$���������������������w���������7��������Z���������:��������;��������<��������DE��������E��������PN��������!%Y���������%Z��������&Y��������,j��������:v��������D����������F���������G����������G���������|H���������Uw���������+���������� ���$,PX%��%�%�:�%�::ID:LIpIxY�I�Y�Y�jYj0j8�djl�������������$�,�P�XI���I�I���I���D�Lpx9��9�9��9�0�8�d�l����[���[�[��$[,�P�X��������{���{	{	
	D	{L	
	p	
	x	}	�	
	�	}	�	}	�	�	
}	
�	0
�	8
�	d
�	l
�	�
�	�
�
�
�	�
�
�
�
�
F$�
,FPFX��F������������D�L�p�x�����9

90
98
Yd
9l
Y�
Y�
��
Y�
��
��
�
$�,�
P�
X���
�����G���GG�DGL�p�x�����������0�8�d�l������������$�,PX �� � ��� ���%D�L%p%x��%������08ldll�l���l�����;$�,;P;X��;�����Z���ZZ�DZL�p�xN���N�N��N�0�8�d�l������������$�,PXl��l�l���l���SD�LSpSx��S�����N�N0N8dNl��O��O�O�=$O,=P=X^�=�^�^���^���!D�L!p!xi!�!�i!�i!��!i!�!0�!8�!d�!l�!��!�9"��!�9"�9"�c"$9",c"Pc"X�"�c"��"��"�%#��"�%#%#�#D%#L�#p�#x&��#�&�&�*&&*&0*&8:&d*&l:&�:&�J&�:&�J&�J&�%+$ J&, %+P %+X 	,� %+� 	,� 	,� �-� 	,� �-!�-!L0D!�-L!L0p!L0x!�0�!L0�!�0�!�0�!�0"�0"�00"�08"1d"�0l"1�"1�"g1�"1�"g1�"g1�"�1$#g1,#�1P#�1X#I2�#�1�#I2�#I2�#�2�#I2�#�2$�2$�2D$�2L$�2p$�2x$Q3�$�2�$Q3�$Q3�$�3%Q3%�30%�38%	4d%�3l%	4�%	4�%�4�%	4�%�4�%�4�%6$&�4,&6P&6X&�6�&6�&�6�&�6�&(7�&�6�&(7'(7'�7D'(7L'�7p'�7x'.8�'�7�'.8�'.8�'�:(.8(�:0(�:8(�;d(�:l(�;�(�;�(R<�(�;�(R<�(R<�(�<$)R<,)�<P)�<X)�?�)�<�)�?�)�?�)�C�)�?�)�C*�C*DD*�CL*Dp*Dx*'D�*D�*'D�*'D�*�D+'D+�D0+�D8+$Ed+�Dl+$E�+$E�+�E�+$E�+�E�+�E�+�F$,�E,,�FP,�FX,�F�,�F�,�F�,�F�,uG�,�F�,uG-uG-�GD-uGL-�Gp-�Gx-�G�-�G�-�G�-�G�-iH.�G.iH0.iH8.�Hd.iHl.�H�.�H�.�S�.�H�.�S�.�S�.	T$/�S,/	TP/	TX/�T�/	T�/�T�/�T�/2Z�/�T�/2Z02Z0�]D02ZL0�]p0�]x0G^�0�]�0G^�0G^�0�^1G^1�^01�^81�dd1�^l1�d�1�d�1�t�1�d�1�t�1�t�1hv$2�t,2hvP2hvX2Hw�2hv�2Hw�2Hw�2Yw�2Hw�2Yw3Yw3'xD3YwL3'xp3'xx3�y�3'x�3�y�3�y�3Wz4�y4Wz04Wz84�zd4Wzl4�z�4�z�41{�4�z�41{�41{�4�{$51{,5�{P5�{X5|�5�{�5|�5|�5{~�5|�5{~6{~6�~D6{~L6�~p6�~x6��6�~�6��6��6��7�7��07��87ǀd7��l7ǀ�7ǀ�7ـ�7ǀ�7ـ�7ـ�7�$8ـ,8�P8�X8/��8��8/��8/��8���8/��8�� �	 � � ��y��<�� �$�(�,�0�4�8�<�@�D4HhL�LPIJT�KXQJ\UJ`YJdtJhaJleJpiJtmJxqJ|uJ�yJ�}J�,M��J/
�0 4 H0\@pP�`�p������P4�T l@����\`�������	�	,�	H�	��P����8 P@h`����
��P0�H�\������� �0H�� �p��@H��`���P��(�d���p�$	`@	��	P�	 �	P$
@8
`�
 �
 !�
p!�!8�!T@"lp"��"�0#��#< &P0&d@&xP&�0+
,T
�-p
P0�
�0�
�0�
 1�
p1�1DP2`�2�3�`3��3�4�4(6X�6�07��7�084�:\�;�`<�=��?�C4DH0D��D�0E��E<�F\�F��G��G�H�pH�Ht�S�T��T@ZD�]|P^��^��dD�t�pv�Pw�`w 0xT�yt`z��z�@{�|� |(�~X�~������Ѐ���\0�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.rodata.rodata.str1.8.rela.data.rel.ro.local.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@-�T-�l-��-��-�'���"@h�x�--��3Ȕ=Ȕ�88@�6P7-
S��b���]@0n0-
|�������@`n0-�d��d���@�n0-�8��8���@�n0-2�
 �� @�n`-'2���;��H 6@PrH-N�[0�.�>��>�|>�S>�'>�d>�r>��>��>��>��@� �`�p�@�r�
-+��_.�	X\
A`��random.o/       1690381920  1000  135   100644  51872     `
ELF>��@@0/

#%"&!' (S�A���+���+�@H��D����D1�i�e�lD�D��H��ou�H���	��pD�LJ�	H���	A�p�DM�E1�1��Hc���L��D����D1�Mc�i�
fA3B�F�A��E���o~D���	�D�D9�DN�A��u��o���A�H�D��Hc�H�4�D����D1�i�e�X]3)ȃ����pu
���	����u���[�ff.����	�����	��~=H���	H�FH���	����1‰��%�V,�1‰��%��1Љ��1��f��H��L���H��LJ�	pA�߰��%�A���B�����D	�A����A��EE�3�4H��D1��J�L9�u�L���	A�߰�%�A���B�����D	�A����A��EE�3�t���H��D1��J�L9�uȋ%��с��	ȹ߰����E�3�01Љ��	���ff.�@S����A������f�f��[A�����A*��Y�*��X��Y�@��H��H�H��%�	�ff.����HcH�D�ff.�@Sf�1Ҿ	H��H�|$H�=���yeH�|$1��H�T$H�L$H�D$1J3H�� 1ȉ��H�t$�J���
H�L$1�1NH�� 3N1ʉVH�İ[�f��É��H�T$ �޿���u�D$8%�= t����a���fDH�t$������ff.�f�H��(��wfo�D$�H��)$A�B1ɺ�H��(�f���SH��H��H�����H�����H��[�ff.���A�B1ɺ�pH�=�ff.�AUATUSH��H��H��8�1Ҿ H�D$H�|$�H��H����H�|$L�d$E1�H�¹A�BL���1�H��������H�����1�i�e�l���H��ou�H���	ǃ�	H���	H�D$H��8[]A\A]þH��L�d$�H�|$H��E1�A�B�H��I����1�)Ѓ�tA�|��t9��L��H�����M9�t�L���H�D$H��8[]A\A]�H��u�L$�0���H���1�)Ѓ�tM��몉�L��H���8����K�����H�H9�t�����H�?�@U1�H��AWI��� AVAUATSH��HH�}�L��dH�%(H�E�1��H�E�H�4�H�E�H�E�H����yH�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%��@H�\$H���L�u�A�BE1�H�޹L��L��N�$��L��H��H�E�H�}���L�}�A�E1��5fDA��H�}��,���D!�E��t
A9�r�A��E��C��I��I���tSF�,�E����D��H��H��H	�H��H��H	�H��H��H	�H��H��H	�H��H��H	�u�1�C��I��I���u�H�u�1�A�BL���H�}�H���H��H�M�dH3%(u=H�e�[A\A]A^A_]�A������0���DH���H������H)�H�L�����ff.�f�SH�� �&���������H��A�A1ɺ��$�D$�H�|$A�A1�H�ú�H� H�D$�H��H���f�uPH��H�t$E1��A�A���D$f�f�ɿ����H*��D$�Y�H*��X��H�� [����H��H�5�Hc��	H��H�D�ff.���H��H�5�1ɺH��H�xA�B�p�ff.�f���H��H�5�H�H���@��AVAUATI��USH��H�5�H��L��H����H���H��� t?H��H�{��H��t<H����H��t>H�H�5H�81��fDH�CH�{ H��u�A��nf.�L�uH�?A�BE1���pL��A������	H��L��I����	H���	�H�EL��[]A\A]A^�L�oH�_L�uH�?E1�A�B��pL�����t)H��H�H=pv�H�H�5H�81��H�����ff.���UH�5SH����H���1ɺH�}A�B�pH���H��H���Hc��	H��H�t6�H�uH���H��H��[]�f.���AUI��H�5ATA��H��USH��H���H��E��uZ��u~H�����tuH��ƒ���th��ucI��L���7���L������H�$H��H�}���H�EH��H��[]A\A]�DH��H�L��D��1��H�4$H���H�4$�H������SH����uCH��H�����H�����H�$H��H�=H��&���H�H��H��[�fDH��H�1��H�4$�f���U��	H���SH���H��H�H��H���H�H��[]ÐI��AVI��AUI	�ATI��L��UH��H��SI	�L��H��I	�L��H��I	�L��H��I	�L��H�� I	�M��E��I�� 1�M��uM��u-H��[]A\A]A^�DH����H��H�� L!�I9�r�M��t�H������H	�L!�I9�r�H��[]A\A]A^�UH��H��S��H��(H�t$��tXH�tCy��u=H��H���H��t H������H��������?H9���H�DH��([]�DH��(�[]�@���u�H�|$H� u��u��H�D$H�Ǿ�H�D$�tUH�H��H���t��H��t�H�����H�@H��s���H����k����H����W���H��H�����H�T$H�T$H�T$�5����PX�H��H�H�D$CH�t$H��H�����AUATUH��SH��H���H��I���I9�t1�H��[]A\A]�f.�H��H�5�H�5H��H���H�5H��H��tpH�}H�ٺ�H�����t�L�cL�m��	L��L�����u�H���	H���	L)�L)�H9��g������	9��	�U�����M���f��H�=�H��H��p�����ATUSH��H9�tPI���H�5H���H�5L��H����;H��H���H�Hc��	H��H����	H���	H��[]A\��H�=tH��fDSH��H��H����H���p�H�=H����H�H��H�[�ff.�f�H�H98t$SH�5H�����tH�C [�f.��k���1�[�@AWAVAUATUSH��H��X���7������	L�6I��I���_D�����t3A��uI�����tA�����tH�5L���H����L���I��H����������AWf(�fTf.�y	f.��o	f/��H�{��H�0�Y�fI~�I9��0fH~�H��<�������M���I���!H�{�H���o���I��I���UH��XL��[]A\A]A^A_�H�z�7�H�0fI~�I9�tfH~�H��<��������M��t��I���@H�D$HL�l$@L��H�D$@4H�L$<H��L��H�$�D$<���tH�D$H�-H��H�D$�����A����L����@I��I��I��M������@�I������H��I9��PL���M��H��?I��H)�I	�I��L�$�~$�+���f�H�|$HL���-�I��H���Y���H�D$HH���K�����H�����A��uI�����tA�E������H�5L���H�D$HH��H�������HcD$<H�H)��!A�t#H��H������H��������?L�|H9���L�|$HH�t$@H��@���/A����D��A��u?������L��H���H��t#A��tA�����
����t"����H��H�$��+�I��M���r����&���f�L���H�D$HH�����ƒ������H�~f(�fT�f.��H�|$@)T$�f(T$�ƒ������@f(�fT�f.
��f.����YH�|$)T$ �D$��D$f(T$ �ƒ������HfT�f.�~f.��t�Y
f��f(ؽ�X��\��\$H�D$Hf/��b�T$<�L$H�߅��=���L$�����Y�H�0fH~�H9�t+fH~�H��<��������I��H������I������f�I��I��I��M�����@H�t$@@��uu�H�=�I�<$H���H��H���H�H��H�8�H���H�������
�SH�t$@�@��t�A���a���DI������n���I���t���M���x���A�����
t5���[�������H���H���FH�|$@�?���@L���I���A����D��A���l���H�@M��H�I�J�<H���L�|?�}���f�f.�^f.��T�%f���d$����H��H9��H���H��H��?H)�H	�H��H�T$�~L$����L�|$H����fD����L$���f.��.����(����D$<���}���I��H�t$@L�D$HM��H��@�����������fDH�T$H�у������J�ƒ����w�@H�0�X�fH~�H9�tH��H��<�������H�������I�������\H�0�Y��X��XD$fH~�H9�u���� �����H��H�T$�H�T$�������L$<����H�׾�H������D$<�m���H��H9��>H���H��H��?H)�H	�H��H�T$�~L$����H��H9��H���H��H��?H)�H	�H��H�T$�~D$�5���H��I��I��I��M������H�D$H�0����I���|���H��f�H9��w���H���H��H��?H)�H	�H��H�$�~$�O���H��f��H9��%���H�ֹH��H��?H)�H	�H��H�$�~$���H���I���o���H��I��I��I��M���X���f��f������f��p���H���H���s���H��H����I��H�D$H�����1����ff.�@��UH��S��H������H��H���H��[]���f���UH��H�5S��H��H���H��H���H��[]�_���ff.�@��AVAUATI��U��SH��@��H�X������H�L$(H�1�L���H�|$(H��twL�d$8H�l$0H�D$04H�L$$L��H���D$$���tL�l$8�-L�������H�|$(�H�D$(H��t1�H��H���<�H��uNfDH����H�0fH~�H9�t'fH~�H��<��������H��H��t�H��@[]A\A]A^�H�|$8H���-�H��H���V���H�D$8H���H��������@��uH�����t�E������H�5H���H�D$8I��H������OHcD$$I�I)����t&H��L���|�H��H��������?H9��fH�D?H�D$8H�t$0H��@��������¨u<�����H��H���H��t <t�����
����t����H��L���+�H���7���H��@[]A\A]A^��H���H�D$8H����ƒ������H�~f(�fT�f.�H�|$0)$�f($�ƒ������@f(�fT�f.
��f.����YL��)T$�$��$f(T$�ƒ�����HfT�f.�Nf.��D�Y
f��f(ؽ�X��\��$�u�fH~�H��@H��[]H��A\A]H��A^�f�H�t$0�@���T���H������a���H���>���H���j��������
�����J��������H��ƒ���
��H�t$0��@����������@H���H���^H�T$8�у������J�ƒ����`�@H�0�X�fH~�H9�t)H��H��<��������H��H���b�������H������f.��f.����%�f���$$H�D$8f/��_�T$$�L$H�߅�uf�i��L$�����Y�H�0fH~�H9�t+fH~�H��<��������H��H���v�����l���D�c��L$�H�D$8�R���fDH�|$0���fDH��H9���H���H��H��?H)�H	�H��H�$�~$���D�¨�(���H�H�H��H�@H�H���H�D?���DH��H9��eH���H��H��?H)�H	�H��H�$�~$�?���Df.��6����0����D$$�������H��H�t$0H�D$8H��@���a�����]���f��\H�0�Y��X��X$fH~�H9����������fD�� ����L�����������L$$���iL����I��A���_�D$$1��p���f.�H��H9��H���H��H��?H)�H	�H��H�$�~$���DH��H��H��H���t���@H�D$8����f.�����fDH��f�H9������H���H��H��?H)�H	�H��H�$�~$�f����H��f��H9��;���H�ֹH��H��?H)�H	�H��H�$�~$���������fH~�H��H��H������f����f��f�����L���I�����L��H������I����u�D��H����H��H�x���fD��H�����H��H�x���fD��SH�����H��tH��H�x[�A��1�[�ff.����SH��H�����H��tH�x���H��[�H�5H�L$�H��H�H�D$��tH��H�[�H����fD��SH����H��tH�x[�D��@H�51�1�H���H���f��f/�wf/s[�H�H�5H�8��H�H�5H�8��f���ATUH��SH��H�����H��t$1�H��tH�xH����H��H��H��[]A\�f�H�}�H�5H�L$H�ߺH�D$�H���I�Ĩt:H��H�L�����u5H9�s�H�H��H�5H�81���H���H���H�H��H�5H�81�����AWAVAUATUH��SH��H��(��H�D$H����H��1��I��H� tH�hH��~]H�D$H��L�uL�hH��H��L�d�L��M�^��D��I��A�C���M9�u�M�sM9�u�H��H��H�l�H��H��H��#H��(L��[]A\A]A^A_ÐH�h�|����H�|$H�H������H���E���H9�u��H�@H�x+H�DH�5H�L$�H��H�D$�I�����H�����f.���SH��H����tH�H��[H���DH���H��[H���@��L�I��H�GI�uespemosH�arenegylI��H�modnarodM1�I�I1�H1�H�setybdetH1�L9�tuf�H��H�~�I�H��
L1�I�� H1�I�H��L1�I�H��I�H��L1�L1�I�� I�I�H��
H��L1�I�� L1�I�H��I�H��L1�L1�I�� I1�I9�u�H��H�=��Hc�H��8H�>��f�A�PH��H	�A�PH��H	�A�H	�H1�J�<	H��
I�H��H1�L1�H�� I�H�<8H��H��H��H��L1�H1�I�� H�H��
J�H1�H��H1�H�� H�H��H�H��H1�H�� H1�H1���H�H��
H�H��H1�H1�H�� H�H�H��H��H1�H�� H1�H�H��
H�H��H1�H1�H�� H�H�H��H��H1�H�� H1�H�H��
H�H��H1�H1�H�� H�H�H��H1�H��H1�H�� H�H��
H�H��H1�H1�H�H��H1�H��H1�H�� H��H1���A�PH��0H	�A�PH��(H	�A�PH�� H	�A�H	����f���SH��H��H���l��H�޺H�=�x��H���@��f�H�=)$H�����H�=A���z��H�=��I�� I	�L��^��H�=��L��H�=��:��H�=��H�H��[�ff.���H�H�Ð��H��H��H�=���f.���H�H��D��USH��H�=@��u
H������|�����H�5p�H�=������H�5��H�=�H�H�=H�0�H�H�5��H��H��H�;�����H�N��H�5�H�;�����H�#�H�5�H�;�H�x���H�5�H�;1�H����H�5�H�;�H�U�H�5�H�;1�H�M��H�5�H�;�H����H�5�H�;1�H�J��H�5�H�;1�H���H�5�H�;�H���H�5�H�;H�H�5�H��H���H�;H��H�5�H�;�����H����H�5�H�;�����H���H�5�H�;1�H����H�5�H�������ƒ����9H���O<�gH�x1�H����H�5�H��to����ƒ����H���<�/H�xH��1�H����[H�5]������
�v���H�H�0��b���fDH�����u�H��tZH��u�H�H�8�f�H������=���H��t>H���.���H�H�8�#���fDH�H�8�����H�H�8�F����H�H�8����H�H�8�&����H�H�8�����H�H�8�����H�H�8����H�H�8����H�H�8����H�H�8�������H��H�=�H�=H��H�H���	���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign/dev/urandomwrong dump datawrong value01==to_intinvalid argument - random number too small %grandom number too big %grandom number too small %ldrandom number too big %ldsrandrandRandominitializebytesseedinitialize_copymarshal_dumpmarshal_loadstateleftDEFAULTnew_seedrandom�A�<�A�?��������?�������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�"A� 8!L<A�Vh| ��A�R�y
AC�>D0y�"E�D WA�"L]B�B�A �A(�J`�
(A ABBAh
(A ABBAPd,x�A�E
B�S�����
A��A�D0�A�%HW�3HW�HS<bF�B�B �D(�A0��
(A BBBD$PvE�H�D _DA8x�F�L�G �A(�G@X
(D ABBF �gE�D |
DG$�?E�N�D eAAH�E�E�E �G(�H0�E
(A BBBFu(A BBB4LA�G�F@J
AAFD
FAE�0AAI 8�F�B�A �D(�G0[
(A ABBK(�hF�A�A �\ABSY�D mH (<M�XK�H�CLL1
B�B�B �B(�A0�A8�G�1
8D0A(B BBBA$�'E�D�F IIA$�1E�K�I IIAp��F�B�B �D(�C0�Dp�
0A(A BBBDG
0A(A BBBI
0E(A FBFC`HIxHI�$E�U
FC(�jE�G W
ADp
DD ��E�R
Ip
A0�F�A�D �G0d
 DABCH46F�B�B �B(�A0�D8�G`�
8D0A(B BBBB�<E�V
ML�g��E�D �A���(�E�A�D 
JHE<7Hj	$)?%Yt&��'��(�"5"C"`Q40!{Q��E`<���������2�@	@�	M�m�����	�����>�2�"$2Bb^@"mb���p]����������'�G�e�v�����������%�H
�)3	C	3P3	o\	�@	�\	��
�`	b��
�F�
vF7	PP�\	vw�g�w����?���m
 ��4m
L�bp
k�����0������	�7(P�h\(���0S������<��	1	�1
=	Z	7u	'�	7�	q�	@1�	q�	$�	���	$
:$;
:$Z
Z$w
Z$�
�$�
�$�
�$	0	�$'�%C�%jh&�h&��'�	(��'��'��'<
�')W*FW*e+�	 �	�+�/+�/+�F+�F+!
k+C
k+`
//{
//�
g/%&'($�
�
�
�
�

�
�
)�
,�
/�
�
(�
�
 �
6�
0�
Je�~��#�)�/�5�;�A�G�MSY_eq���

 !"#)*+�����,6IYgr}��������,8E\i���������%6�AYm��������
"1 $B@$R`$$k�$j{%�����%����p&6���'g`*�( +60+AP+Vp+�d~������)7FQ^hv�0/7�.annobin_random.c.annobin_random.c_end.annobin_random.c.hot.annobin_random.c_end.hot.annobin_random.c.unlikely.annobin_random.c_end.unlikely.annobin_random.c.startup.annobin_random.c_end.startup.annobin_random.c.exit.annobin_random.c_end.exit.annobin_init_by_array.start.annobin_init_by_array.endinit_by_array.annobin_genrand_int32.start.annobin_genrand_int32.end.annobin_genrand_real.start.annobin_genrand_real.end.annobin_random_memsize.start.annobin_random_memsize.endrandom_memsize.annobin_random_s_left.start.annobin_random_s_left.endrandom_s_leftdefault_rand.annobin_fill_random_seed.start.annobin_fill_random_seed.endfill_random_seedn.13771.annobin_make_seed_value.start.annobin_make_seed_value.endmake_seed_value.annobin_random_seed.start.annobin_random_seed.end.annobin_random_s_state.start.annobin_random_s_state.endrandom_s_state.annobin_rand_init.start.annobin_rand_init.endrand_init.annobin_random_free.start.annobin_random_free.endrandom_free.annobin_random_mark.start.annobin_random_mark.endrandom_mark.annobin_limited_big_rand.start.annobin_limited_big_rand.endlimited_big_rand.annobin_genrand_real2.start.annobin_genrand_real2.endgenrand_real2.annobin_random_left.start.annobin_random_left.endrandom_leftrandom_data_type.annobin_random_state.start.annobin_random_state.endrandom_state.annobin_random_get_seed.start.annobin_random_get_seed.endrandom_get_seed.annobin_random_load.start.annobin_random_load.endrandom_load.annobin_random_dump.start.annobin_random_dump.endrandom_dump.annobin_random_init.start.annobin_random_init.endrandom_init.annobin_rb_f_srand.start.annobin_rb_f_srand.endrb_f_srand.annobin_random_alloc.start.annobin_random_alloc.endrandom_alloc.annobin_limited_rand.part.1.start.annobin_limited_rand.part.1.endlimited_rand.part.1.annobin_rand_int.start.annobin_rand_int.endrand_int.annobin_float_value.part.3.start.annobin_float_value.part.3.endfloat_value.part.3.annobin_random_equal.start.annobin_random_equal.endrandom_equalrb_intern_id_cache.13997.annobin_random_copy.start.annobin_random_copy.endrandom_copy.annobin_rand_start.constprop.8.start.annobin_rand_start.constprop.8.endrand_start.constprop.8.annobin_try_get_rnd.start.annobin_try_get_rnd.endtry_get_rnd.annobin_rand_random.start.annobin_rand_random.endrand_random.annobin_random_s_rand.start.annobin_random_s_rand.endrandom_s_rand.annobin_random_rand.start.annobin_random_rand.endrandom_rand.annobin_rb_f_rand.start.annobin_rb_f_rand.endrb_f_rand.annobin_rb_genrand_int32.start.annobin_rb_genrand_int32.end.annobin_rb_genrand_real.start.annobin_rb_genrand_real.end.annobin_rb_genrand_ulong_limited.start.annobin_rb_genrand_ulong_limited.end.annobin_rb_random_int32.start.annobin_rb_random_int32.endid_rand.annobin_rb_random_real.start.annobin_rb_random_real.end.annobin_rb_random_ulong_limited.start.annobin_rb_random_ulong_limited.end.annobin_rb_random_bytes.start.annobin_rb_random_bytes.endid_bytes.annobin_random_bytes.start.annobin_random_bytes.end.annobin_ruby_sip_hash24.start.annobin_ruby_sip_hash24.end.annobin_Init_RandomSeed.start.annobin_Init_RandomSeed.endhashseedsipseed.annobin_rb_hash_start.start.annobin_rb_hash_start.end.annobin_rb_memhash.start.annobin_rb_memhash.end.annobin_rb_reset_random_seed.start.annobin_rb_reset_random_seed.end.annobin_InitVM_Random.start.annobin_InitVM_Random.end.annobin_Init_Random.start.annobin_Init_Random.end.LC0.LC1.LC2.LC4.LC5.LC6.LC7.LC8.LC10.LC11.LC12.LC3.LC9.LC13.LC15.LC14.LC16.LC18.LC17.LC19.LC20.LC21.LC22.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC31.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_cloexec_opengettimeofdaygetpidrb_update_max_fd__fxstatclosereadrb_integer_unpackrb_to_intrb_absint_numwordsrb_integer_packruby_xmalloc2ruby_xfreerb_gc_markrb_free_tmp_bufferrb_alloc_tmp_buffer__stack_chk_failrb_big_mulldexprb_check_typeddatarb_check_copyablerb_check_typerb_eArgErrorrb_raiserb_num2ulongrb_ary_new_caparb_ary_pushrb_scan_argsrb_error_frozen_objectruby_xcallocrb_data_typed_object_allocrb_bigzero_prb_big_uminusrb_big_minusrb_int2bigrb_uint2bigrb_eSystemCallErrorrb_class_new_instancerb_exc_raiserb_obj_classrb_funcallvmemcmprb_intern2rb_obj_init_copyrb_cRandomrb_typeddata_is_kind_ofrb_check_to_integerrb_check_to_floatrb_float_new_in_heaprb_range_valuesrb_respond_torb_num2longrb_to_floatrb_str_new_staticrb_obj_as_stringrb_str_appendrb_exc_new_strrb_big_plusrb_big_normrb_error_arityrb_genrand_int32rb_genrand_realrb_genrand_ulong_limitedrb_random_int32rb_random_realrb_num2dblrb_eRangeErrorrb_random_ulong_limitedrb_ull2inumrb_num_negative_prb_random_bytesrb_str_newruby_sip_hash24Init_RandomSeedrb_global_variablerb_hash_startrb_memhashrb_reset_random_seedInitVM_Randomrb_define_global_functionrb_cObjectrb_define_classrb_define_alloc_funcrb_define_methodrb_define_private_methodrb_gc_register_mark_objectrb_define_constrb_define_singleton_methodrb_cBignumrb_obj_revealrb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolInit_Randomrb_intern���������������������
����������������������������4���������:Ku������������������������������������������������YD������������������������������6���������W��������������������<2�����������������������������������������������������������.���������\���������g�����������������������������������������������������������	���������	���������K	���������P	���������u	���������z	����������	����������	����������	*����������	����������	���������$
���������I
����������
����������
*����������
����������
����������
����������
����������
����������
���������
������������������,���������8���������\���������r������������������������������������������������:DA<M<f���������m����������������������������������������
����������
������������������P��������d���������*��������������������������������������������������������������������������������$��������=��������]�������������������������������������	������������������������������������������������3
=<cDr<}<�*
���������������������������,���������4��������F
��������q���������y�������������������[��������������������������������������������S�������������������������������������
����������������������������������������������4���������I��������t�������������������+��������k���������p��������|������������������*���������������������������
��������<��������������������������������������������������������D��������������������������������������������K���������Z������������������������������������������������������������������������������������������������������
�����������������.���������B��������j�������������������������������������������������
��������' ��������4 ��������D ���������\ ���������� ��������4"���������u"����������"���������1#���������#���������#���������$,�$���������$���������#%,/%��������7%��������I%���������T%* ��������[%���������h%���������o%* ��������v%����������%����������%"���������%,�%���������%���������&#�������� &* ��������*&���������4&���������D&���������P&* ��������Z&���������d&����������&%��������y'$�'���������'���������'����������'���������(���������*D�*D�*D�*D�*�*D�*�*D�*�*<�*+(��������+<'+=+W+
b+8}+<�+����������+-���������+����������+-���������+*.���������+����������+/���������+*
���������+0��������,���������
,1�������� ,���������%,1��������;,���������@,1��������S,���������X,1��������n,���������s,1���������,����������,2���������,����������,2���������,����������,2���������,����������,2���������,����������,1���������,���������-<-���������-3��������-���������$-4��������:-���������?-5��������U-���������Z-5��������m-���������r-5���������-����������-2��������.���������!.*6��������).7��������N.*8��������~.*8���������.*9���������.*:���������.*:���������.*9���������.*;���������.*;���������.*<��������/*<��������/*=��������#/*=��������;/���������@/?��������G/���������N/,S/?��������Z/$^�����������������������������/	����������'$���������'$��������.2�������� ���"$,"P"XQ�"�Q�Q���Q����D�L�p�x�����������0�8d�l��2��2�2�b$2,bPbX��b������������D�L�p�x�����������0�8�d�l����3	���3	�3	�\	$3	,\	P\	X�
�\	��
��
�F��
�F	F		D	FL		p		x	w�		�	w�	w�	�
w
�0
�8
m
d
�l
m
�
m
�
��
m
�
��
��
�$�,�P�X��������(���((�D(L�p�x��������
�
0
8
7d
l
7�
7�
q�
7�
q�
q�
$$q,$P$X:$�$�:$�:$�Z$�:$�Z$Z$�$DZ$L�$p�$x�$��$��$��$��%�$�%0�%8h&d�%lh&�h&��'�h&��'��'��'$�',�'P�'XW*��'�W*�W*�+�W*�++/+D+L/+p/+xF+�/+�F+�F+�k+F+k+0k+8//dk+l//�//�g/�//�g/ � � � ��(�(�(�(\*T*L*D*#"��� <0P`l���������@pT�h�|����	�@	`	T�
|P����Pp
������0,�P���@��d $|@$�`$��$�%�%8p&��'��'�`*� +�0+P+p+@0/.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.rodata.rela.data.rel.ro.local.rodata.cst8.rodata.cst16.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@-�T-�l-��-��-�'�g/"@���--'03@0
 =@0�8@8�0-
SDbD�]@h�0-
|�E��E��@��0-��G��G��@ȶ0-��I��I��@��0-2dK)�L @(��-,�LH '@�`-?M8L@MZ0PM.�~M�~M|~MS~M'~Mc~Mq~M�~M�~M�~M��M ��MP�@H��-+�T.�	�r�ȼ�range.o/        1690381920  1000  135   100644  55056     `
ELF>�@@,+

!"#$��H�G �H��HE��f.���H�G����H�G����H�OH�5�1�H�?�f���PXH�5H��H�H�81��ff.���UH��SH��H��H�5H��tH��H��H�ߺ[1�]�@�H�=�H��H���ff.�UH��H��1�S�H��H��H�5�H��tH��H��H�����xH��1�[]�DH���[]�ff.��UH��H��1�S�H��H��H�5�H��tH��H��H������tx1�H����[]�@���f���ATUH��SH��L�gH������tL��H��H�C ����t������u[1�]A\Ð�[�����t�[�]A\�ff.�f�AVI��AUI��ATUSH�_L�gH�G ����u0�{fDH��E1�1�1�L��A��H�5H��1�1�1��H��L��H�������u�[]A\A]A^��E1�1�1�L��H��A�Ճ�t�H�5H��1�1�1��H��L��H������Ņ�u�[]A\A]A^�f���H��1�H�=��ff.���ATUH��SH��H�}H���H��I���1�H�E ����H�5��H��H��H���L��H�����u!H�����tH��Ѓ����H��sH��[]A\�f�@��u�H�����t�H�E������t�%H	�H���fD��AUATUSH��H��H�-L�gL�oH�uL���H��uH���[]A\A]��H�uL���H��t�1�H�C ����L��L����H���[]A\A]����w������AWAVAUI��ATA��UH��SH��H�ZA��A�������uE��tH��L��D��[]A\A]A^A_�DL�eH�5H��1��L���H��L��H���A�Ņ���H�E ����tDE����E����A����E����H��H�H9��
H�\�H��H��H��[]A\A]A^A_�f�H�H��H�0�I������(���H�E ��������M����������f���f�H�H��H�0�H���F���H�H�5H�81��DH�L��H�0�H���!���H�H�5H�81��DH��H�߹1�[�]�-A\A]A^A_�f�H���������H��[]A\A]A^A_���ATI��UH��SH���t2H�H��~7H�}L���H�{��[Hc�H�|?H�}]A\�@H���H�����fD��UH��SH��H��H�>@��tH�G�H�H��t1H���[]�fD���-1��H�H��u�H���H�CH�H���[]�ff.���H����H���f���AVAUATUH��S�L�gL�oH��t/H� ��H�v H�H�H�0H���H����1���H�߾<�H����1���H�߾>�H����L�5L��I�6�H��u%[�]A\A]A^��H���i����I�6L���H��t�1�H�E ����H��L��[L��]��A\A]A^�DH���H���8���H�H�5H�81��H�H�5H�81���H��H�51�1��H�������H��4��H����!��f���UH��SH��H��H�>@��tH�G�H�H��t1H���[]�fD���-1��H�H��u�H���H���H�CH�H���[]�fD��H���H����H��Ð��USH��H��H�G ����@��@���H�{H����t^H�H��H���H�{H����tPH�H��H���H�s �H��H��HE��H���H��H�D[]�DH���H���H���H�����UH���!SH��H�H�8�H�U H�5H��H���H�UH�5H���H�UH�5H���H��H��[]�f���������u1������t'@��uH�����t������t��
u���f�H�SH��H��H�0�H��t
�[�fDH�H��H�0�[H�������ff.���ATUSH��H��H�oL�gH�t$H��L	�tZH�t$H�������tH�|$L��H�C ����t�����u1�H��[]A\�������t�H���[]A\�f�H�������u�L��������u�H�5H���H���u���H�5L���H���\���@��uH�����tH�U�Ѓ���tH�t$���Y���A��u�I�����t�I�$������u�H�с� �*H����H���„�t�H�Ɓ� ��H����H������t�H�D$H�������v���H������j���H��׃����Y���H�ׁ� ��H����������������H��uiH���MH��uUI��A�$H��uAH�����@������������8�8��p���H�C �����K���8��C����U���H�@�M�d$�H�m�H�PH������H���u�������I�|$������H�}������f�H�SH��H�0�H��t1�[�@H�5H��[���AWAVI��AUATA��UH��SH��8�����H�]L�mE���oH�D$��tYA��tSL�d$A��tHH�E I�I�H��H��I��H�I9��h�H��I9�~XH�|�J�#H9�~��C��tc��uH�����uED1�H�T$L��H��H�E �������A�ą��`H��H��8[]A\A]A^A_�fD�����u�fDA��tA��u�I�����t�A�E����u�L��L�l$ ��L�%H�D$ H�D$H�E H��HE�H�D$H�D$H�D$(M���|H���H�L$M��L��L������H���H���@���DH�L$L��D��1�H��H�H�|$H�0�H�|$H���E1����<�H���`H�|$1����>�H������H�H�5H�81��f�H�H��H�0�H����H�E I��H��H��M�A��MI��<�Mf�L��A���H�L$Ic�1�H�|?��*���+H��H��1��I��1�L��L��L���H�����u����f.��H���L��D��H��L�����H���H��8[]A\A]A^A_�@�H��H�D$���fDH�5H���H������H�5L���H�����H���I��H����H�E �L�l$H�\$ H�D$ H��HE�H�D$H�D$H�D$(H�H��tJH�L$I�ٺH��L����L���H������H�=�I��H��d����H�=�H��H�������tDH�D$H�T$ H�5��H��H�D$ H�D$(���~���H�H�5H�81��H���H�5H��H�H�81����AUATUH��SH�������H�]L�e��t]A��tWH�E I�H��H��H��I��H�H�O�,$I9�~f�H��H��H���I9�u�H��H��[]A\A]�D������tjH���I��H���UH�E �H�5L�$$H��HE�H�D$H���H��E1�L���L���H��H��[]A\A]�H�����t����������f�A��t'A���f���I������Y���A�$�����I���L����L�%H�$H�E H��HE�H�D$M����H���H��E1ɺL�W���L��H���H���F���@�H���H��1�1�L��H���H��[]A\A]�f��H�=�H��H�����H���(�����t<1�H�5��H����H���S����H�=�I��H��7���H���H�5H��H�H�81��D����t(H�G ����H�H�=HD��f�ATUSH��H��H�{H���H��I���1�H�C ����H�5��H��H��H���L��H���@��u>H�����t5H�U�Ѓ���~6��u"H�����tH�������t%H	�H�UH��[]A\���H��r��ff.�����uH�B�UH��S��H��H���H��H���H��[]�f.�S1�H��H�H�� H�L$�H�|$H�|$@��t5H��L�L$H��1�L��1Ҿ�H�D$�H�D$H�� [��H����fD����uH�B��{���ff.���ATI��UH��S�����uo��uSH�]L�e�1�H�5H��L���L��H��H�����PuH�E �����HE�H��[]A\�DH��L���[]A\����L���[]A\�f.��H��[]A\�����uhUH��SH��H��H�vH��H��u
H��1�[]ÐH�sH�}�H��t�H�E ������H�C ������8�u�H���[]����f.���H9�tOUH��SH��H��H��H�H�0�H��uH��[]�DH��H��H��H��[H�=s]�D��f���H9�tOUH��SH��H��H��H�H�0�H��uH��[]�DH��H��H��H��[H�=���]�D��f�����uhUH��SH��H��H�vH����uH��1�[]�f�H�sH�}���t�H�E ������H�C ������8�u�H���[]�f���f.�PXH�5��1�H������SH� u
H���H��[�����f�H��x3H�0H9�t\H��H��<����tmH��H��u>�DH�0H��H��?H9�t!H��H��<������tH��H��t�H�|$��D$��H��H��H��H���H��H��H��H�����AWAVAUATUH��SH��L�gL�oA��t
E��A���pD������qA��uI�����tA�$�����Rf�D������AA��u
I������L���6�����L���&�����L���L��H���I�������H�E ������M��E1��H�5H��1�L���L��H��H�������H�-H��L��1���+�H���H��1��H��I���H�Ũ��H���<H���������L��1��+�H���O����A�E���������L����ƒ������@f(�fTf��fH~�fI~�H��f/�LG�L����ƒ����"�@f(�fTf��fH~�fI~�H��f/�LG�����3H�E H��H��I��M9��QM��E1��Kf�L)�H��H��?H�H�L�H�����H���H�ŨufH����H������L�{M9�}nL��L��H��H��?H��?8�L��u�H��L9���L��H��H��L)�H��H��?H�H�H���DH�������H�������t�I��M9�|�M9���E���G�H��H��[]A\A]A^A_�H������hH��������
���M���u���DI��A��&���f�K�<H��H��?H�H�����f.�M��A��2���f�H�H��H�0�H�����H��1��H�5��H��H�������������f.�H�H��H�0�H���%�H��1��H�5��H��H������Z�����f.��H���H��H��E1�[1�]1�A\H��A]A^A_�I�I�L�l$���t�H�E H��H��H�T$�H�D$L9���I���$�NL)�H��H��?H�H�L�H�\-H���I�Ǩ�5H���[H������L�eM9���L��L��H��H��?H��?8�L��u�H��L9��.L��H��H��L)�H��H��?H�H�H���L��H��[]A\A]A^A_����L����1��-�I���,����|���E1�L�����H���H�è��H��t�H������L���H�H��H�0�H������H��1�H�5��H��H���������@�����������H���������L������������I�����DI��D�4$���@K�D%H��H��?H�H��\���f�H�L��H�0�H�����L��1��H�5��L��H������@������e���f.�L��H���H����E����������fDH��E1�H9���H���H��H��?H)�H	�H��H�$�~$���f.�H��E1�H9��j���H���H��H��?H)�H	�H��H�$�~$����f�H�����L���n���L9d$���$K�\$���S����I���H���H�ŨutH���5���H������$���H�H��H�0�H���0�H��1��H�5��H��H����������������������H����������H�������H��������H���������������$K�\$H���H�ŨupH���a���H������P���H�H��H�0�H��t`�H��1��H�5��H��H���������������������H��������H�������H���H�5H��H�H�81��L���H�5H��H�H�81��H���L���AUI��ATI��UH��SH��H��H�4$��H�T$t��u"1�H��H����H�=����H���tH�C H�`thL�(A��uM��uzH���`uJH�CH�(@��u
H�������H���`t@H�CL� A��u
I�������H��[]A\A]�H�C�f�H�CH���fDH�CH���fDL��H�����H��s���H�ƒ�`H��`�c���I�U��`H��`�R���L��H����?���f�L��H������g���H���`H��`�W���I�$��`H��`�F���L��H����6���@H��H�����H������H�ƒ�`H��`���H�U��`H��`����H��H��������,��ff.����S1�H��H�H�� H�L$L�L$L�D$�H�{ u/H�L$�H�T$H��H�t$H��HE�����H�� �[��L�ff.����ATUS@����H��H��������������H�H�H9F��H� H����H�5H���I��H�CH�`uH�CL� A��u
I�������H�5H���I��H�CH�`uH�CH��L� A��u
I�������H�5H���H��H�C H�`uH�CH��H�(@��u
H�������H��[]A\�L��H������h���H���`H��`�X���I�$��`H��`�G���L��H����7���@L��H������]���H���`H��`�M���I�$��`H��`�<���L��H����,���@H��H������R���H���`H��`�B���H�E��`H��`�1���H��H����!���H�H�5H�81���?�ff.�@��AUA��ATI��UH��SH��H�H�8�A��L��H��H�H��H��H�у��l���H��H��[]A\A]�ff.���AWAVAUI��ATI��UH��SH��H��H�H�0�H��t>1�L�{L�sH�C ������M�}M�4$�EH���[]A\A]A^A_�f.�H�5H�����tH�5H�����uH��1�[]A\A]A^A_�f�H�51�H��1��H�51�H��I��1��H�5I��H��t 1�1�H���H����������B����H�=�H��H���ff.���AVAUI��ATE��UH��SH��H�� H�L$H�T$H�t$�����L�t$A��tmH�D$I��tuH�L��M��xzH��H�HIȃ|$H��A�����uH9�dH9�HO�H)ѸI�UHHȸH�MH�� []A\A]A^��L���I��H�D$�u�H���L��M��y�H��L��z���E��u*H�� �[]A\A]A^�f�H�� 1�[]A\A]A^�I��H��|$H�H�
H�5HD�H�8L��1��ff.����U�H�=SH����H�=H���H�=H���H�=H���H�=H���H�=H���H�=H��H��H�-L�
jL�H�
H�uH�1�H����H�=�H�H��H�ZH�YH�2�H�uH�;H�
����H�P���H�;�����H�l���H�5�H�;�H�!�H�5�H�;�H��H�5�H�;�H�k��H�5�H�;�H�p�H�5�H�;1�H���H�5�H�;1�H���H�5�H�;�����H�%�H�5�H�;1�H�-�H�5�H�;1�H�e��H�5�H�;1�H�]��H�5�H�;�����H�r�H�5�H�;�����H���H�5�H�;�����H�\�H�5�H�;�����H���H�5�H�;1�H�Y��H�5�H�;1�H����H�5�H�;1�H�I��H�5�H�;1�H�a��H�5�H�;�H�f��H�5�H�;�H�K��H�5�H�;H���[H����H�5]�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignbad value for rangeinclude?...step can't be negativestep can't be 0to_int01uptocan't iterate from %s(... ... ...)(... .. ...)1`initialize' called twicecan't do binary search for %s21not a dumped range objectexclude_end?.%ld..%s%ld out of range<=>succbeginendexclinteger?divRangeinitializeinitialize_copy=====eql?hasheachstepbsearchfirstlastminmaxsizeto_sinspectmember?cover?cannot exclude non Integer end valuecannot exclude end value with non Integer begin valuewrong argument type %s (must be numeric, true, false or nil)�������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0	D	Xl"EAK(�UE�D�G P
LCI0�TA�I�L h
CAFDFA(�WA�I�L q
CAE4SF�A�D �n
CBBJFBHL�B�E�E �A(�A0�R
(A BBBI(A BBB�,��F�A�D �x
ABJH��F�B�A �A(�G0d
(F ABBHh(F ABB(	�<�F�B�B �E(�D0�D8�D@c
8G0A(B BBBJ�
8D0A(B BBBC�
8K0F(G BBBNN8A0A(B BBB(�ZF�D�D �f
MBE0�rE�D�G Z
FAGrFA0HNLHHF�B�B �A(�D0��
(F BBBHq
(D EBBJ�.Dd0�zE�D�G Z
FAGzFA�HV(��E�A�G v
FAF$(gE�I�D ODAP	d�H�Y
GS@�^F�A�A �G0I
 AABDM
 FABJ�0H�S
EKd��F�B�E �B(�D0�D8�Dp�
8A0A(B BBBG!
8A0A(B BBBE`PkF�B�A �D(�D@k
(A ABBFn
(A ABBD�
(A ABBC,��r�A�A ��
ABH(�6Q�D�I II�A� jA�P0M
AA4LH�F�D�D �Y
ABFI
ABLF
ABOIAB4�vI�D�G V
CABpFAI��4�^J�D�J X
AAFDJ�H�4^J�D�J X
AAFDJ�H�4@vI�D�G U
CACoFAJ��xAAR�E�S
A��|��	F�B�B �B(�A0�D8�DP
8D0A(B BBBAA
8G0C(D EBBH�
8A0A(B BBBE8D�B�E�D �D(�G@�
(A ABBD �dE�P0C
FA,�F�A�A �
ABD4�RF�E�D �D(�D0q(D ABB`	%F�B�B �E(�D0�D8�G@x
8F0A(B BBBKj
8C0A(B BBBJlp	DF�B�E �D(�D0�GP�
0A(A BBBHy
0F(A BBBJD
0C(A BBBA8�	bE�M�D �(P0|(H EFO	 '<!Uo"��#��$�7Kf) 	�)�9�0	�9�^�@	`^(�B`"O�h��U�	���D��T�D���PW��,�S8W�t��	X����������������70O��Z0y9�0	�9�=�@��=��@Z�*:�r>T7w h7���@H������.�	8�:	6�zA:	[_	s@	~_	�
�`	��
�w
�
g�	@	P
	Hw
/�
H�
	T�
s��
���~
� ^�~
�
&�
08�
RMj�
�u	 �	�M���Pk�	�		�3	�N	�h	��	�6�	��	Z�	�j�	Z�	u
` 
u9
-P
��Z
-y
��
0v�
��
�
�^�
pv�
n^%nB�]��	���	�..<�`0�w��p#���	�	0�p#�4%�p#�
4%!
�%?
@%dP
�%l
�'�
�%�
�'�
(�
(�
E)	(E)>�*\�*v.!"#$ �����(�!�8�H�O�R�W�{�m������`����������� &,28(>,D2J=PMVP\TbYh^ncthzp�v�{����������������

%&''4=HRdu���������#/=FPao}��������� .;NXs����������.CLWa����'R�� (%�P)D���*b#2D].annobin_range.c.annobin_range.c_end.annobin_range.c.hot.annobin_range.c_end.hot.annobin_range.c.unlikely.annobin_range.c_end.unlikely.annobin_range.c.startup.annobin_range.c_end.startup.annobin_range.c.exit.annobin_range.c_end.exit.annobin_range_exclude_end_p.start.annobin_range_exclude_end_p.endrange_exclude_end_p.annobin_range_begin.start.annobin_range_begin.endrange_begin.annobin_range_end.start.annobin_range_end.endrange_end.annobin_range_check.start.annobin_range_check.endrange_checkid_cmp.annobin_range_failed.start.annobin_range_failed.endrange_failed.annobin_range_eqq.start.annobin_range_eqq.endrange_eqqrb_intern_id_cache.13742.annobin_r_lt.start.annobin_r_lt.endr_lt.annobin_r_le.start.annobin_r_le.endr_le.annobin_range_cover.start.annobin_range_cover.endrange_cover.annobin_range_each_func.start.annobin_range_each_func.endrange_each_funcid_succ.annobin_range_inspect.start.annobin_range_inspect.endrange_inspectinspect_range.annobin_range_to_s.start.annobin_range_to_s.endrange_to_s.annobin_range_size.start.annobin_range_size.endrange_size.annobin_range_enum_size.start.annobin_range_enum_size.endrange_enum_size.annobin_range_max.start.annobin_range_max.endrange_max.annobin_first_i.start.annobin_first_i.endfirst_i.annobin_step_i.start.annobin_step_i.end.annobin_each_i.start.annobin_each_i.end.annobin_range_step_size.start.annobin_range_step_size.endrange_step_size.annobin_is_integer_p.start.annobin_is_integer_p.endis_integer_pid_integer_p.annobin_sym_step_i.start.annobin_sym_step_i.endsym_step_i.annobin_sym_each_i.start.annobin_sym_each_i.endsym_each_i.annobin_range_hash.start.annobin_range_hash.endrange_hash.annobin_range_dumper.start.annobin_range_dumper.endrange_dumperid_exclid_begid_end.annobin_range_alloc.start.annobin_range_alloc.endrange_alloc.annobin_linear_object_p.start.annobin_linear_object_p.endlinear_object_p.annobin_range_include.start.annobin_range_include.endrange_include.annobin_discrete_object_p.start.annobin_discrete_object_p.enddiscrete_object_p.annobin_range_step.start.annobin_range_step.endrange_steprb_intern_id_cache.13544rb_intern_id_cache.13554.annobin_range_each.start.annobin_range_each.endrange_eachrb_intern_id_cache.13651rb_intern_id_cache.13647.annobin_inspect_range.start.annobin_inspect_range.end.annobin_range_last.start.annobin_range_last.endrange_last.annobin_range_first.part.7.start.annobin_range_first.part.7.endrange_first.part.7.annobin_range_first.start.annobin_range_first.endrange_first.annobin_range_min.start.annobin_range_min.endrange_min.annobin_recursive_equal.start.annobin_recursive_equal.endrecursive_equal.annobin_range_eql.start.annobin_range_eql.endrange_eqlrecursive_eql.annobin_range_eq.start.annobin_range_eq.endrange_eq.annobin_recursive_eql.start.annobin_recursive_eql.end.annobin_range_modify.part.14.start.annobin_range_modify.part.14.endrange_modify.part.14.annobin_range_initialize_copy.start.annobin_range_initialize_copy.endrange_initialize_copy.annobin_int64_as_double_to_num.start.annobin_int64_as_double_to_num.endint64_as_double_to_num.annobin_range_bsearch.start.annobin_range_bsearch.endrange_bsearchid_div.annobin_range_init.start.annobin_range_init.endrange_init.annobin_range_initialize.start.annobin_range_initialize.endrange_initialize.annobin_range_loader.start.annobin_range_loader.endrange_loader.annobin_rb_range_new.start.annobin_rb_range_new.end.annobin_rb_range_values.start.annobin_rb_range_values.endrb_intern_id_cache.13706.annobin_rb_range_beg_len.start.annobin_rb_range_beg_len.end.annobin_Init_Range.start.annobin_Init_Range.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC12.LC11.LC13.LC14.LC17.LC16.LC19.LC20.LC21.LC22.LC24.LC23.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_funcallrb_eArgErrorrb_raiserb_intern2rb_cmpintrb_exec_recursiverb_obj_as_stringrb_str_duprb_str_catrb_str_appendrb_cNumericrb_obj_is_kind_ofruby_num_interval_step_sizerb_block_given_prb_call_superrb_cIntegerrb_eTypeErrorrb_int2bigrb_ary_pushrb_num2longrb_iter_breakrb_yieldrb_to_intrb_check_funcallrb_str_internrb_hash_startrb_hashst_hash_uintst_hash_endrb_cObjectrb_newobj_ofrb_ivar_setrb_struct_alloc_noinitrb_cTimerb_check_to_integerrb_respond_toruby_float_steprb_sym_to_srb_block_callrb_scan_argsrb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_check_string_typerb_obj_classnamerb_str_new_cstrrb_inspectrb_Arrayrb_ary_lastrb_ary_new_caparb_equalrb_cRangerb_exec_recursive_pairedrb_eqlrb_name_errorrb_struct_init_copyrb_float_new_in_heaprb_Floatrb_fix2intrb_rescuerb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_ivar_getrb_range_newrb_obj_allocrb_range_valuesrb_range_beg_lenrb_eRangeErrorInit_Rangerb_struct_define_without_accessorrb_mEnumerablerb_include_modulerb_marshal_define_compatrb_define_methodK\i���������t*��������~���������������������������������������������	\��������"��������i\n�����������������KTY���������T���������	��������	��������
��������(���������:��������E���������*
�������������������������m���������\������������������3*
��������>��������F���������*������������������*����������������������������*������������������*���������������������������f��������������������������������������������)��������u*
������������������������������������*
�������������������������L��������[*��������b���������l��������s*��������z�������������������4���������
	��������	��������#	��������I	��������Q	��������~	���������	���������	���������	���������	���������	���������	���������	��������
��������%
* ��������-
!��������8
<C
"��������N
LV
"��������a
Di
"���������
*
���������
���������
*$���������������������������%�������������������%�����������������
*$���������
���������
T�
��������>���������'���������(���������((��������G)��������h���������m*��������t*
������������������������������������*����������������������������*
�����������������8��������V��������m������������������+���������,���������-����������������������������%�����������������%��������&.��������m�)������������������������������������������������*�����������������&��������./��������5���������?*��������I��������b������������������.��������;)���������(����������(���������)��������+��������	,��������-��������8���������=��������G���������������������/�������������������*��������������������������������������1��������1��������
��������$���������6��������A���������2������������������*��������4��������A)��������Q������������������\������������������M5��������i5���������*6�����������������+*6��������3���������8���������8������������������9�������� :��������v���������������������������\�������������������,�������������������������U���������<�������������������<��������������������������O���������=���������=��������=��������$=���������*
������������������\�������������������*
�����������������
\��������"��������A+��������I,��������|�����������������k������������������*
������������������\������������������ =��������$ =��������s *
��������~ ��������� \� ��������� ��������� 5���������!���������!*
���������!��������"\"��������"��������7"=��������G"=��������T"=��������d"=���������"���������"*
���������"���������"\�"���������"��������#=��������#=��������$#/��������+#���������5#*��������?#��������G#/��������N#���������X#*��������b#���������#>��������W$?���������$@���������$?���������$@���������$?��������&%@��������M%���������e%*���������%* ��������&L
&A��������>&DF&A��������{&<�&A���������&?���������&@��������'?��������C'@��������W'?���������'@���������'*���������'����������'���������'*6���������'C��������A(*6��������I(���������(L�(&���������(D�(&���������(L�(���������(D�(���������($)��������0)���������5)��������?)$|)D��������*��������*��������e**F��������q*���������x*���������*����������*���������*����������*���������*����������*\�*���������*����������*T�*���������*����������*L�*��������+���������+D+��������#+���������*+</+��������;+���������B+4G+��������R+* ��������Y+���������b+���������i+���������t+,�+����������+H���������+*6���������+*I���������+J���������+K���������+����������+L���������+����������+L��������
,���������,L��������(,���������-,L��������C,���������H,L��������[,���������`,L��������s,���������x,L���������,����������,L���������,����������,L���������,����������,L���������,����������,L���������,����������,L��������-���������-L��������'-���������,-L��������B-���������G-L��������Z-���������_-L��������r-���������w-L���������-����������-L���������-����������-L���������-����������-L���������-����������-L���������-���������Z��������������������������,�������������������������9��������?���������
#���������
&���������0���������3�����������������7��������_7���������;��������i-���������-L�������� ���$,PX)��)�)�9�)�99^D9L^p^x��^��������0�8Dd�lD�D���D�����$�,PX��������������D�L�p�x0���0�0�909098=d9l=�=���=�����$�,PX7��7�7���7��	�	�D	�L	�p	�x	:	�	��	:	�	:	�	_	
:	
_	0
_	8

d
_	l

�

�
w
�

�
w
�
w
�
�
$w
,�
P�
X��
���~
��~
~
�
D~
L�
p�
xM��
�M�M��
M
�0
�8
�d
�l
��
��
��
��
��
��
Z$�,ZPZXu�Z�u�u�-�u�--�D-L�p�x�����nn0n8�dnl����	���	�	�.$	,.P.X��.�����p#���p#p#4%Dp#L4%p4%x�%�4%��%��%��'�%�'0�'8(d�'l(�(�E)�(�E)�E)��*$E),�*P�*X.��*�. � � � � 4 H0\@p`�����P�P������,0@@�@�4 L@�����@	`	,
T�
h�
� ��
��
TP�����8`L��0��Dp|���0��Hp#�@%��%��'	 (t	P)�	�*.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rodata.cst16.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@)�T)�l)��)��)�'�."@��&)-�.3�.h=�.�8@���)
S\Cb\C�]@��0)
|0E�0E��@�0)�G�G��@H�0)��H��H��@x�0)2�J�2PL�)�L70M.�.M�.M|.MS.M'.M@.MN.Ma.Ms.M�.M�0M �PM
�@���)'hW8*	�vnX��rational.o/     1690381920  1000  135   100644  126256    `
ELF>��@@-,

 "#$%��H�G����H�G����H��������fD��SH�51�1�H�_H��H�5H�ٺH��1��H�51�[H��1��fD��H�OH�5�1�H�����H�OH�5�1�H�����UH��SH��H�H��t7H�5H��tRH��1�1��H��H��1�H��[1�]�f.��H�=�H�5H��H�H��u��H�=�H��H��ff.����UH��SH��H�H��t7H�5H��tRH��1�1��H��H��1�H��[1�]�f.��	H�=�H�5H��H�H��u��H�=�H��H��ff.��UH��AWI��AVI��AUATSH��H�u�H�H�U�dH�%(H�E�1��D�M�L� I���A�DD�jH��D�M��D�M�H�pH�E�H���D�M�H�E�wiH�E�H��H�E��H��D�M�H��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�|$H�����H���I�M�eD�M�H��I����@��_uJE��t�����H��I��3H��A�DttӀ�_t�M��tA��A�1�I�I��M�e�ȅ�tH���I�H���{_t�A�1Ҿ
�H�M�H�}�H��H�M�dH3%(��u(H�e�[A\A]A^A_]�fDH�E�1�H���1�����USH��H��H�wH��H��H��H���H��H��[]�ff.���AT�I��H�=US�I�|$H����H�5H��H���I�|$�H��H���H��H���H�ߺH�5�H��[]A\�@��SH��H��H���t7H�H�{H�$��t3H�H��H�D$�H��H�D[�H�����fDH�����fD��H���H��H�5H�8��AT��I��U��H��SH�� ��tH�GH�|$��5��D$�X��Hc�H�\I�$H�]H�� []A\�f.�H��f�H9�t�H���H��H��?H)�H	�H��H�|$�~D$�fD��H������H������������t:�Gf(�fT
f.
wf.�z1�1���H���@H��H9�t�H���H��?H)�H��H��H	�H��H�T$��~D$��ff.�@��������t2�Gf(�fT
f.
wWf.�zQ1�1���H��H9�t�H���H��H��?H)�H	�H��H�D$��~D$��f.���f.���UH��SH��H���H�5H��H���H�}�H��H���H��H��[]�D��SH��H�@��tnH��H��x"H�KH�5�1�[�fDH�CH�5H�[H��1�1��H�5H�ٺH��1��H�51�[H��1��1����<�H��u�H�{�v���ff.����H���/�H�@H�@H���f���ATI��H�5USH��L���H�C�uH��H�����uhH�5L���H��H�C�uH�����uH��[]A\�fDH��H�����u�H���`H��`u�H�E��`H��`t�H��H����H��H�����u�H���`H��`�y���H�E��`H��`�h���H��H����X������ATUSH�_H�o����E1�H����H�߹�1��*�H��@��tH��H��t+��tH��H����H��H���+1��H�ù�H��1��*�H�5�H��H��1��M��u_[]A\�f.�A�H�5H��1�1��H���D������H��1��<�I��H������뷐H�5[H��1�]1�A\�f�H���B������UH��SH��H��������tz1���H��H�5�H����H��H�ٺ�/1��H��@��uH�����t�E������H�5H��H��1�[1�]�DH������y��������
t����X1���H��H�5�H���f����f�H��H�u`��uH�����t�������H�51�H��1���tH��H�H��t9H��H��H��[�/1�]�@H��������f�H��H��[]�fD1�H���H�0fH~�H9�t'fH~�H��<��������H��H��t�H��[]�1�H���H�0fH~�H9�t'fH~�H��<������tNH��H���"���������H�C��&���H����������fH~�H��H��H���#���fH~�H��H��H�����f.���UH��SH������H������{H�E�ƒ����i���`H��H���H�H��% ��H�SH���9H�K H�QH�:@����@��u
H�������H�51����H��u}H�% H����H�CH�H�5H���H� t~H��H�H�5H���H��H��[]�fDH����H����H�SH�:@���X���H��u�H�H�5H�81��f�H�C �n����H�[ H���y��������
�<���������H�W���&���H��t�����H���H�H�5H�81��f�AWA�AVA�AUATU�SH��8H�4$H�5H�|$H�T$ H�L$(H�D$H���XDH�|$1�1����I�ă�t
�$��H�$1���<L���H���5��L��1��-E���A��H��@�����H���H��L$�����3��uH������1�H���*H��1��I�ă�E��tL��H��t*��tL��H����L��L���+1��I��D�t$A��A����L��H��m�L$���A��uH������w�L����*H��1��I�Ń�E��t
H�|$H��t,��tL��H����H�L$L��1��+�I�ŋD$����H��H����H�<$H�پ-1���H�5H�$H�$H������1��I��H�|$H�ٺ1��-�L�t$H��H�5H���H�ٺ�1��H�5I��L�|$H�$M��L��H��������H�=�H��H����D���D$����H��H���@������H�����������E����
���f�E����M��D�t$A��A���(�����T$���L���H��H��(A��u"I�����tA�����
�Jf.��D$�����H�=�H��H�����A�f.�H�<$H�پ-1���H�5I��H��H���J����H�=�L���H�H��1��I���'���H�$H�H�H9��h��������H��H����A���EL��H��LD��1H���~����D$I�����f�H���f���I��E�������L��D�l$H�������D�t$D��A�����D$�|���L��H���@H��������D$I�����f.�H�5H��t$H�$��1��H�\$H�D$�=����H�=�H�$��H�H��1��I��H��H������H�\$L�t$���f�H�������E����H�D$H���%D�t$M���&���f�L�l$�6���fDE��u#L�l$�-����L��A�H��ME��o���H�D$H����D�t$L�l$��������
�����E����L�l$���������
��������DH���H���*L��1��H��A��tL��H����@��tH��H��tL���+H��1��I��H�D$ �l$L�0��A����L��H�������A��uI�������f.�L��L����*1��I�ą�tH�D$H���dA��tL��H��tH�L$�L��1��+�H�D$H�D$(H�|$H�8H��8[]A\A]A^A_�@��t�L��H���A���n���I������a���A�����
�R���f���t�H�L$H��H��HE�H�D$뉐H���&����;������{���L��H�H��u+@��uH�����t�E����
�O�����E����H���3����H���@H���������tH�D$H����M������@M���D$�t���L�������I���.����L�d$���fDA��a���A�$����
�E�����H�D$H����E1��0���M���.���L�|$�p���@�����H��H��Z������a���A���R���I������E���A�$����
�5����5���ff.�AW1�AVAUI��ATUSH��H�H��(H�L$�H�H�|$H�0�H����H�L$H�5�1���A��H��A����H��A���u5��uH�����t
�����
tH���*H��1��I��H�L��H�0�H��toH�|$@���pH��y�H��(H��[]A\A]A^A_�@��t�H��H���@��u�H�����t��EA�����
�k����f�H�L��I��A��H�0�H���L��A��I��M���$�����؃�����H�������jH�{�/�H��L�hA��u
I������ZH�CE��tH��H�H��tH��H���/1��H��H�|$@����H��������uH�����t�������H�5H��1�1��H������1����<�H���{�����q����I��H�������(���fDH����������H���)H�����H�H�8����f�1����<�H�����������@I��H����������fDH�H�8����L��H����������H���`H��`�����I�E��`H��`�r���L��H����b���@M��t3�����؃�����H���Y��uH�H�8��H�����t?H�{�/�H��L�`A��u
I�������H�AI������H���H��u�H�H�8�DH�H�8���f�H�H�8�H��1Ҿ
�H�����DH�H�8�K���f�H�H�8�>����H�H�8�#����L��H��H�D$�H�L$���4���H���`H��`�$���I�$��`H��`����H��L���H�L$���DH�H�8���H�H�8���H�H�8���H�H�5H�81������uH���P�H�
I�����@����uH���p�H�
i����@����uH���0�H�
)����@����uH���`�H�
Y��d���@��AUATI��UA��H��SH��H�����M��tG�؃�����H���H��H���H��H�5H��H�H�81���H�����t������
���ڃ����#���������u�L�%H�{I�4$�H��uQH�{@����@��uH�����t�����
t*���H�51����H���S�H���H��H��H��[]A\A]��@��tz@���`�������H����@���.H�}�/�I��H�XM��u
H������'I�EH��H��L��[]A\A]�f.�H�����u�H����H��u�H�H�8�@H������[H�}�/�H��L�hA��u@I�����t7L��H�����u(H���`H��`uI�E��`H��`tL��H���@H�CH������H�������L�k@���q���@�����������H����@���R���H�H�8�G���fD@��urH�����ti�E����u^1�H���H�0fH~�H9�t+fH~�H��<�������nH��H�������H������H�51�H��1��H������DH���
H�������H�H�8���fDH�H�8�r���f�H�H�8�����H�H�8�����H�H�8����H��H���������I�E��`H��`�����H���`H��`�����H��L������@H�G�����H���L�����fDH�H�8�?���f�H�H�8�'���I�<$���H�H�8���H�H�8���H��H��H��H�����fD��AVAUA��ATI��USH��A��uJ@��u
H�������H�L��H�0�H���QH�51�1�L���H���5H�L��H�0�H���A��A����H��H�E���H������L��1��<L���H����H��H���@���@��u!H�����t�E����
����y1���H��H�5�H����H��[H��]A\A]A^�fD1���H�߾<�H���nH�5H��1�1�L���A��H��A��E���QM����E���-�����u H�����t�����
��������1���H��H�5�H����[H��]A\A]A^�fDH��H���%1�H���H���t�H��H�t�@��t�H��?H��H1�H)�H����,@H�@H���H�l?[H��]A\A]A^�@A�H�51�L��1��H�������A��u
I�������H�5L��1�1��A��I��A�����L��E�������1���L��<�H��������s���D�����
����H�L��H�0�H��t;A��A���~��H��1��<L���H�������x���@A�$�����3���L��1Ҿ
�A��I��A�����f.�E1�����H��?L��H��H1�H)�H�x[H����H���q����
�H��H�H��H��H��u��S���H��H���'��������[]A\A]A^�H��H��u�H������H��H����fDH��H�H��H��H��u���H�C��r����d����H���H������H�E������H��������{���H�H�5H�81��fDH��H�����ff.�f���ATA��UH��SH��A����@����H������������
��������J���A��urH�}@���n@���dH������W�����
�����@H�WH�C����H���G�f��؃�����H�5H��H��[1�]A\�DH�}@����@��uH�����t�����
t*����H�51����H����H�E�t	H�H��t1�[]A\��H�}H��H��H!ب��H�51���H��tŸ�@@���H��������E������1�H���H�0fH~�H9�t+fH~�H��<�������lH��H�����H���@H�G�����H������E������u:H�����t1�����
�����uH�C�����H����������@1���H��H�5�H�����������H�5H��1�1��H��H�ٺH�5����fDH�51����H��tSH�C����uH�����t�����
�3���H�5H�ǹ1���H���E���H�}H�C@��t���H�5H���1��H������H�}H�K@�����������H�H�H9���������@H���w������f�H��H��������p����H��H�CH�������i���H��H������H�}@���T���H�H9��<����b���DH�H�H9��#����Y���H�H����H�P��t	H���?���H�}����H�C���H��H��H��H���J���ff.��AW��I��AV��AUI��ATI��UD��S��L��H��(H�T$�D$A��/��	H�t$D�������D$�L$��L��H���������H������H��1��<M��H���H����H�51�H��1��H��D�D$E����A��u
I������\
1���L��H�5�H�����|$����L�t$1����<L���H���]	H�5H�|$1�1��I�����D$�L$����M��M�����T$����A��u
I�������	L�Ϲ�1�H�5L�L$�L�L$H����H�5L��L��1���L��H��H�5I��1��I��A���L��H��cA���9A��uI�������fDL��L���*1��I��H�5H��H��1���H�5H�|$L��H�ú1���ڃ���H��H����Ń����uH������5DH��H�Ǻ�*1����H�Ã�A����A����D�������n
I����
A����M�g����H��H�H���w����������BH�H�5H�81��@D�L$E������������I��?H�M��I�I��I1�M)�H��sH���2
H��H���)
L��H��?I��M1�I)�M���]M����A�L��M���
H��H�I��H��L��H�I��I��H����H����H����H���
H�����H����H���8
H��������H�I��H9�������H��L�L$�L�L$H��L���H��H�����H���O����L��H���l���@����@��u!H�����t�E����
�����
1���H��H�5�H�����|$L��������H�T$�t$H�����H��������L��1��<M���L�L$H��� L��H���l���A����A��u!I�����tA�����
�<���
1���L��H�5L�L$�L�L$H���M������fDL��H���%1�L���I��A��t�L��H�����@��t�M��H��I��?L1�L)�H���	�4	@H�@H��-H�l?����1���L��<L�L$M���L�L$H������H�51�L��1�L�L$�L�L$I�����@L��L����%1�L�L$�L�L$M��I��A��t�L��H������A��t�I��?L��L1�L)�H����5DH�@H��EL�t?��������H��gA������I����������A�$����
����A����D���M���H��H������8���H������+��������
����D�A���2����I������Q���I���	M���>���H�L� �3����H��1���H�5�H��������H�5L��1�1��H�5H��1�I��1��H�è�@I��A��u
H�������1���H��H�5�H���6���uBI��L��A��L��/�I��I��H�h@��u
H������I�\$M���
H��(L��[]A\A]A^A_�����X����W���1���L��<�H����H�51�L��1��I�ƃ��D$���tH��H��������e���������
t6����H�C�t%H�H��uH�C�tH�H�����L��/M���I��L�hA���I������
I�\$M��f.�H��������H��L���������I�$��`H��`����H���`H��`�����H��L�����������H���O�D$M�ĉl$H�ˉ����f�H���^�����H�Ã��p���f�H������������H��H�H�������M�����M����������H��1��<H���H��������1���L��<�H����L��l$I��1�H���:���f�A�����
�4������i���I�A����������A�����
�M����������I�F��8����*����1�H���<����V����H�������M�����fD@��@��H��H�H�������L�����������w���H�L� �3����H�L� �#����H�D$H��?H��H1�H)�L��H���H����H�������	fDH��H�H��H��H��u����H��H��?H��H1�H)�H��H��$H����H��������H��H�H��H��H��u����H�5L��1�1��H�5L��1�I��1�I����l$��H����L��M��f�H��L���������I�$��`H��`����H�E��`H��`�����H��L������L��H�����������H��H������������I���j��H����H�L� ���f�H��H�����H�����@H��H�������H���D���@L�������H�L� �C����I��H�I��L��H��u�����I��H��L��H�I��H��u�L��H�I��I��H��H�I��I��H���nM���eI����I���9I����?M����M���H��������H�I��L9������L��L�D$L�L$�L��I���L��H���L�L$L�D$I���4���fDH�L� �S�I�\$M������A�E����
�P��k��������
���ջ���fDH��H��H�������I����H����fDH��H�H��H��H��u����H���fDH��H�H��H��H��u����H�E��a���H���l����S���fDI�F�����H���
����
���fDH��H�������H��H���g��������I��H�@H��PH�\�݃����f�H���#����H������L��H��M�������L��I��H�H��H��I��@��H��H�I��I��H��t	@�������A��j�O�l-�d�fDH�@M��L�y�L��L�D$L�L$�L�L$L�D$I���'�f�M��1�A��t���I������O�l$���M����H��H�I��L9����[���H����H��H�I��H9�����H�\�݃���H�����H�Ã���H��H�I��L9������H��H�I��H9������A��K�H��������H�I��L9������H��������H�I��H9�����f���AVAUATUH��SH����e���\H������O�����
��ڃ����[���R���+L�cD����s@���G@���I��I��t�E����
�-����1���H��H�5�H����L�cH�[D���M��uH���(H����L�u����L��H�H���L���������dH���mM��H��A��L���/�H��I��H�h@��u
H�������M�fM����H��[]A\A]A^�D�؃���tH��H��[�/]A\A]A^�fD@��ujH�����ta�E����uV1�H���H�0fH~�H9�t'fH~�H��<�������0H��H��t'�H����H�5H��1�1��H��H�ٺ[�/]1�A\A]A^�fDH�UH�uA�/H��A�[H��]A\A]A^���f�H��H��u�H�H�5H�81��1���H��H�5�H����L�cH�UH�uH�[A�/I��L���L��H��t�����L��1���H�5�H��������H�5H��1�1��H�5L��1�H��1��I�Ĩ��M��A��uI�����tA�$����
����tj1���L��H�5�H���[�����������f���u������H��H�[H�H���H�UH�u��I�D$�tH�H��uI�D$�t	H�H��t�L���/I���I��H�XA����H�������M�fL��fDI������"���L��H���������I���`H��`�����I�$��`H��`���L��H��������L�c��H�[��D������$H���@@���&���H�L�2����f�@���RH�L�2����H��H�����H��L��H��H������>���I���`H��`�.���H�E��`H��`����H��H����
���@��@��H��H�H����������������������fDH�uH�UH�[@���6���H��H�H���&���������H��H�H���
���D�������fDH�L�2����H�L�2���H���:���H�L�2���H�L�2����M�fL���%���H��H��H��H����I��I��������USH��@��uhH����t �����t~H���*[]�fDH�����t׋����
t-�����tK��tF��u�H�NH�WA�*L�F�DH�WA�*A�H��H�wH��[]�V�fDH��@��u_H�����tV�����uL1��H�0fH~�H9�t'fH~�H��<��������H��H��tJ��H�51�1���t,H��H�uDH��uH�����t�����
u��.DH��H��H�Ǻ[�*1�]�H��u�H��H��[]�fH~�H��H��H���D��AWAVAUATUH��SH��H����uI��u
H�������H�H��H�0�H����H�51�1�H���H����H�H��H�0�H���7A��A��u^@��uH�����t�E����
tL����1���H��H�5�H��t#H���[]A\A]A^A_��H��H��t�A��A���C��uH�����t�����
t)����1���H��H�5�H��u�E���I1���H��<�H���7H�51�H��1����H��A��I�ľ<1�A���H���E1�I���+D��u	H�����uRH�5H��1�1��H�����������
�9���H�H��H�0�H���p���������u�H��1Ҿ
�H���H����I��I������E���1���H��<�H����M��� E��I��I���\DI��I�������H��1��<I���H���'H�51�H��1��A��I��A��E����A��u
I������1���L��H�5L�D$�L�D$H���E��tL��H�H��tH��L����/1��H��E��t8H��H���@��u@��uPH�����tG�E����
u<@��K�@��t*H��H��.��uH�����t�����
t�fDH��H�ٺ�*1��H��H�5H��H��1�[1�]A\A]A^A_�DH��u����A�$����
t$������I�D$A��A��tH�����@E1�E���<A��u>I������t5A�����
tw��u%I�@�tjH��ue�E��M�����DL��1���H�5L�D$�L�D$H��t#��@L��L�Ǻ�%1��M��I��A��t�E��L��A��H��2���E��t�I��?L��L1�L)�H�����f�H�@H��}L�D?E��A�����@H�E����������H��H�M���YL��H��t�H�H1�H��H)��@H��L��I��H�H��H��u��1���H�߾<�H����E1�I��I������H�����H�����fDI��I��M���B����P���@H�C��2���H��������$���H�H�5H�81��fDH�51�H��1��A��I��A��M���c���E��I���u����L��H����������L��H������D����I��������A��I��A���d���@I��L��H��������D���@H��H���(fDH��H�H��H��H��u�����H���H���!���H������fD��AWA��AVAUATUH��SH��H��A��uJ@��u
H�������H�H��H�0�H���;	H�51�1�H���H���	H�H��H�0�H���A��A����@��u!H�����t�E����
�����1���H��H�5�H����A���H��1��<E1��H��tH�5H��1�1��A��H��A��E���H���!E���7@��u!H�����t�E����
�%���\1���H��H�5�H����H��L��H��[]A\A]A^A_��H�EA��A��tH��� ���f�E1�E������u H�����t�����
�P���/1���H��H�5�H���#E���"H��A�H�H������1���H�߾<�H������H�5H��1�1��H��E������H��H������������uH�����t�����
tT����1���H��H�5�H��t+H�����fDH��H�ߺ�%1�H���H��@��t�H��H��������t�H��?H��H1�H)�H��.���H�@H���H�\?�;���H��H���g���E������H��1��<A��H�����A�A����f���u
H�������H�5H��1�1��A��H��A�����@�����
�N���H�H��H�0�H����A��A�������H��H��������F����H�C�tH������E���?1���H��<�H���n1���H�߾<�H���sI��E1�I���D���������H��1Ҿ
�A��H��A������@I��I��E����1���H��<�H���M����I��E��I���A��u"I�����tA�$����
�a���91���L��H�5D�D$�D�D$H���*E��tL��H��H�H��tH��L���/1��H��E���H��H���@���M@��uH�����t�����
�0�H�ٺ�*1��H�51�H��1��I��E������H��H�E������H��H��?H��H1�H)�H��H��bH��H��u
�
DH��H�H��H��H��u�����H��H���V����|����I��I��E1���H�߾<�H����E��I��H�51�H��1�D�L$�D�L$A��I��A���@E�������H��H��?H�H��H1�H)�H���[A�� ����H���k���H��A�H��H���	���fDE1�����H��H��H������H��H�H��H��H��u����H��H�M����L��H���]H�H1�H��H)��H��L��I��H�H��H��u��8�H�E���������H�51�H��1����H��A��I�ľ<1�A��D�L$�D�L$H�������I��E1�E�����L��H���9���E����A��uI�����tA�E����
t\��� 1���L��H�5D�L$�D�L$H��t)�;�L��L���%1�M���I��A��t�E��L��A��H������E��t�I��?L��L1�L)�H��g���H�@H��L�l?E��A���Z���@H���B�������f.�M���I��E��I�����f�H��H�����D1�A�����H�C��y���H���E����k���H�H�5H�81��fD@���.���H��H��"������H��������������
������H�51�1��H��I��H�E���!�������f�H�51�H��1��A��I��A��M���~���E��I�������H�������H�51�1��H��I��H�E��������k���I�D$A��A�������H������@E1����H�������H��������y���f�L��H�����E��M�����f�H�������H�����fDE1�I�����D��@���fD�A��I��A���B���@I��L��H���T������@I���2���H��H���BfDH��H�H��H��H��u��{���H���H�����I�E��'���H���5�������H���L���ff.��AW��I��AVM��AUE��ATA��I��UH��SH��8D�L$A��A����H�|$�D$��E���VH��H�@���
E����M��H���S1���L���<L�D$(L��D�L$ �D�L$ L�D$(H���LH�51�L��1�L�D$(D�L$ �D�L$ L�D$(A��H��A��E���L��H���PE����
��uH�����t�����
tA����1���H��H�5L�D$(D�L$ �D�L$ L�D$(H����M��H���*����hL���%1��L��I��A��t�L���H�u�H��A���1���L���<�H����H�51�L��1��A��I��A��E�������L��M�������E�����A��u
I�������01���L��H�5D�L$(L�D$ �H���2H�51�H��L�������H��H����t$����A��uI�������fDH��L���*1��I��H�51�H��L������eH��H��9@��uc@��u
H������HH��H���*1��H�ʼn���|$+����tH��H��tL��H���-1��I��H�51�H��L����H��D����D$��1���L��<�H����H�51�L��1��I�ǃ��D$E���<H���U�T$����A��u
I������4	1���L��H�5�H���YH�5H��L��1���H��I��H�5�L��1������0H��H����ƒ��Y�uH�������f�H��H�Ǿ*1����H�Ń�H�D$��4���	�D$������H�|$���|$�
H�D$L�h����H��H�H��������������0H�H�5H�81��f��L$���d���L��H��p��P���H������D��������
�6���fDA��?���D�ƒ������H��H���@������H����������M����
���������fDH��1���H�5�H��������H�5L��1�1��H�5H��1�I��1��H�Ũ�I��A��u
H������:1���H��H�5�H���6
���u@I��L��A��L��/�I��I��H�X��u
H�������I�mM���DH��8L��[]A\A]A^A_�f.����X����9���H�D$H��������H���uH�|$����H�L�(����f.�L��H�E����H���f�����H��1��<M���H����L��H������������uH�����t�����
t-����1���H��H�5�H����H���(@@����L����%1��L��I��A��t�L��H�u�H������fD1���H�߾<�H�������H�5H��1�1��H�����@�������H��H��z������H���������������
����������E����
t5�������H�E�t$H�H��uH�E�tH�H�������fDL��/M���I��L�`A���?I������BI�mM��H����������H��L����������I�E��`H��`�����H�E��`H��`�z���H��L����j���fDE���W���H��H�E������H��H��?H��H1�H)�L��H���H����	H����H�@H���H�\?A��A�����fD����A��tL��H����L��H���+1��I���W����H���v�����H�����f�H����������H���f����{����H��H�H���$�������M���[���M��E1����DE�������H�H��L��H�H��?I��H��H1�H)�H���H����	H��H��� H�@H��
	H��H�H��H��H����L�l-H��������H����H���
H�����H���
H����
H��������H�H��H9������fH��H�L$ H�t$�H�t$H��H���H��H���H�L$ H�ÐH��H�H��H��M����H����I���=H����	I����%M����	H���
H��������H�I��H9�������H���L��H���H��H���H��A��A���|$+��E��tH��H��t��-H��1��H��A��A��H�5L��L��1���E��H��A��E����1���H�߾<D�D$�D�D$H����I��E���\M���uE���A��u!I�����tA�����
�m���|	1���L��H�5�H���@H�5L��H��1���L��I������A�����
�:����������I�G��%��������A�����
�������I�@�����|��1�H���������H��H�������A��� ����'���DH�����I�����fDH���&����|$+H���N�������@��@��H��H�H������������\������H�C��4�H���+�E��L����DH�C��c���H���Z���L������H�L�(�e����L�D$ D�L$(E���t�H��H��t���H�L�(�5����L��H��?H��H1�H)�H��H���H����H��u)H�@H��>H�\?����f�H��H�H��H��H��u���fDH��H�H��H��H��u��i���L��M��f.�H��L������T���I�E��`H��`�C���H���`H��`�3���H��L����#���@H��H�����������M��H��I��?L1�L)�H����H�@H�xZH�\	�8��M��H��I��?H��L1�L)�H����~H�@H�x/H�\	A��A���,�fDH���H������H���A��H��A����f�H�L�(�u�H��H�������H������@H��H���o���H���>���@L�������I�����H�L�(��H��H�H��H��H��u�����H�L�(���f������
�r�ʽ��fDI�mM������@A�$����
�`��+��U����
������@H��H��H���d���H���<���f�H���fDH��H�H��H��H��u��]���H���fDH��H�H��H��H��u���H��H���H������H��H���H������H��H�E���QH���0��L��1��<I���H����L��H�������A���uA��uI�����tA�E����
t-����1���L��H�5�H���9L���$@���6L����%1��L��I��A��t�L��H�u�I���/���fDI��H�@H���H�L	�
����1���L��<�H�������H�5L��1�1��I���p���H�51�H��1�D�D$�D�D$A��I��A���/���@H���9���H���u����H�\���fD�����fDH�@H��H�y�H��H�L$�H�L$H�����H��H�L$ H�t$�H�L$ H�t$I��H��H�H��H��H���������؃�E������tH��H������+���H��1�����f�H��H��?H��H1�H)�L��H��;H����H��u)fDH�@H��L�l?�\���H��H�H��H��H��u���fDL��H������M���-���@I��?I��H��L1�L��L)�H��t�H���Q�H��H�H��H��H��u��k���H��H�������A�������H����H��H�H��H9�������H����H��H�I��H9����\���K�L$�{���H�\6���H���H���a����I���R���H��H����H������H��H�H��H9����]���H��H�I��H9������H���A���H��H�������H��������H�I��H9������H��������H�H��H9�����H�����H������H���B���I�G���������I�E�����H���M�������@��@��uf@��t�����tv�-�@H�����tߋ����
t5�����tK��tF��u�H�NL�FA�-H�WH�w�&�fDH��H�WH�wA�-A���@SH��@��u^H�����tU�����uK1��H�0fH~�H9�t#fH~�H��<������tDH��H��t �H���H�51�1��H��H�ٺ�-1�[�H��H��H��H����ff.�@��@��uf@��t�����tv�+�@H�����tߋ����
t5�����tK��tF��u�H�NL�FA�+H�WH�w���fDH��H�WH�wA�+A����@SH��@��u^H�����tU�����uK1��H�0fH~�H9�t#fH~�H��<������tYH��H��t)��fDH�51�1���tH��H��tH��H�Ǻ�+1�[�@H��[�fH~�H��H��H������AWAVAUATUSH��H��(��tIA��I��A��tQH��yjH�5H��1�1��L���H�����H�51�H��1��H��H��(H��[]A\A]A^A_�@1���H�߾<�H��u�H�L$H���1�L���H�51�1�H�|$�H�D$�tH��H���H����-H��1��H�l$A��I��A��@���E��tH��H��tH���+H��1��H��E��t
@����H�51�H��L���H������L��H�L$H�T$H���{���L�d$L�t$��t<E�����؃����eH���{����H�L�(�H�����uoH���]H��u`H�L�(�X@E��I��H���9���f.�L��H��H�H�H9��K����H���fDH��H������H�����@L�kD�����L��H�H����@�����BH�5L��1�1��H�5L��1�I��1����I�ă�E��A���L1���L���<�H���BH�51�L��1��A��H��A������L��M���5E������u
H������61���H��H�5�H���2H�5H��L��1���H��L��H�5I��1��H�Ũ�RI��A��uiH�����ta�����
t��uRH�E�tH�H����D�/L��M���H��L�pA���\I������eH�k�p@1���H��H�5�H��t�I��L��A�����:����/L���H��L�pA��u
I������qH�kM������H����������H��H��������H���`H��`����H�E��`H��`����H��H�����������H�H�5H�81��L���1�H�5�H���m���DL��H����JH�������1���L��<�H����L��H�51�L��1��H�����������
t�������H�C����@���N@����H��������E����
����u{H�E���H����fDH���v����I��H�A��H���D����'����L��L��H��H���<����i���f�L�������1���H��H�5�H��t%�{���H��H���%1�H���H���t�H��H�����@��t�H��?H��H1�H)�H��~���H�@H��-H�l?���L��H������|���H���`H��`�l���I���`H��`�\���L��H����L���D@��@��H��H�H���A����H�L�(�
����H�L�(����H�L�(����L��H��?H��H1�H)�L��H���H����H���"����H��H�H��H��H��u�������L��1��<L���H���B����r���fDH��H����������H���Q���H��H��u�H�����H�L�(�-����H��H����fDH��H�H��H��H��u��k���H�k�+���H���H���h���L��H�����������p���H�E��I���H�H���<������ff.�@��AWAVAUATUH��SH��H��H��L�%I�4$�H��tL�-H��I�u�H����H�H��H�0�H����I�4$H���H���4A�߉�A���U��t0����tQH�H��H��H��[]A\A]A^A_��H�����tNj����
������t
��t��u�@��uH�����t�E������
H�5H��1�1��H��H�5H�ٺH��1�[]A\A]A^A_��H�{@���"@��u H�����t�����
�����T
H�51����H������H�[���f.�L�-H��I�u�H�������H�}@���N
@����H�����������
�}������hH�G��h���H�H���[���H�G��O���H�H���B���fDH�}@���r@��u H�����t�����
�����H�51����H���3H�}@���F@����H�51��H������H��tH�H��H�0�H����H�}@����
@��u H�����t�����
�j�������
H�51����H���@������1�H��@��H��H��HO�H�|?������@����@���
�������
H����
@����
H�}�/�H�@I��H�@H��L��[]A\A]A^A_��H�ؿH�H���,�����A�A���urH�}H�5H��1���H�}H��I��H�5�1��I��A��D�������A��uI�����tA�$������A��E��@���@����������iH���c	@���H�H�H�D$���������H������������
�O�������H�C��:�����f�H�51�H��1��H�}�H�5H��1��H�5H��1�I��1��H�}H�������H�51����H��������f.�1���H��H�5�H�������@@���@���n�������	H����	@���_
H�}�/�I��H�@H�@���@A��A��t'A�������I������~���I�E�����n����H��[]A\A]A^A_�@H�H���������fDH�����u'H����H��uH�H�H�D$��H�EH�D$E����L��H�H����f.������ZH�5L��1�1��H�5L��1�I��1��A��I��A��E��A���j1���L��<�H����H�51�L��1��A��H��A��E���:L��M���1E���M���\H������O�����
�e���8H�C��P@H���C�H�5H��L��1���H��L��H�5I��1��H�è��H�Ń���H������������
t&����H�C�tH�H���j�H�|$�/L���I��L�p����I�������I�\$@H���������H��L����������I�$��`H��`���H���`H��`����H��L��������1���H��H�5�H������@���"@��uH�����t�E����
t_���R1���H��H�5�H��t6��f.�@����H��H���%1�H���H���t�H��H�u��/����L��H�51�L��1��H�����f�1���H��H�5�H��t�H��M����������H�|$�/�I��L�pA��u
I������(I�\$H���y����U���D������H�H�5H�81���L���1�H�5�H���M���DL��H�E����H�������1���L��<�H������L��L��H�����H��H���P��������H��H���H����������@��@��H��H�H�����f�L���5����H��H���K���H�����@L��H���������I�$��`H��`�����I���`H��`�����L��L������@@��@��H��H�H���)���f�H�G����H�H���~�H�G��r�H�H���e����f�H�H�H�D$���@H�H���G�����fDH�H�H�D$�u���@L��H��?H��H1�H)�L��H���H����H��u)fDH�@H��UH�l?�C���H��H�H��H��H��u���fD��L��1��<L���H�����������fDH���������H����H�����H�H�8����H��?H��H1�H)�H����L���H���f.�H��H�H��H��H��u��#���1�H�=�@��uH�����t�E�����vH�51�H��1��H�ٺH�5H���n�f�H��H�H�������H������H������T�����H�����H��H�������H���t���H�H�H�D$���H��H��������H�H�H�D$����H�H�8���H�G�tH�H��uH�G�t
H�H���I���H������!�����
�[���
�H�G��F�H�H���9�H�G��-�H�H��� ����fD1�H���H�0fH~�H9�t+fH~�H��<�������nH��H������H�����I�\$�u���H���S���H�߹�1�H�5�H����H������.�H����H����H�H�8��I�}�_���H�E������H����������H�H�8�6���H�H�8�'���H��1����%1��H����H������@����@���H�������H����@����H�}�/�I��H�XH�@�j�H�H�8���L��H��������������H��H��H��H����H�H�8��H�����u�H��� H���x���H�H�8�m���H�C������H�H�����������H�G����H���7��r�1�H����fH~�H��<H9�t'fH~�H��<������tbH��H���Y�����O���I�}�I�H�H�8����H�H�8�+�H�H�8��H�H�8�
�fH~�H��H��H����I�}���H�H�8�t���H�H�8�e���H�H�8�V���H��H�����ff.����AUI��ATUSH��H����u7A����D������nH�H��L��H��[]A\A]�f�H�C�t
H�H���L�������A��A�����؃����H������NH�{�/�H��L�hH��uI������g�H�A��I������6���A�E����
�S���D�����������������I�MH�k�ȃ�@����H�{������M�EA����I��I�����M������uH������t�����
��H���*1��H��H�{����I�E����H��H��@�uY�uH�����t�����
tCfDH���H�Ǿ*1���tH��H��tH��H���-1��H��@����H��H���'�����H��H�H���
H�����tgH�{�/A��A���H��L�hH��u
I�������H�AE��t	����H�5�H��H��1�[]A\A]�H����H��u�H�H�8�/�H��L�hH������A��A���{���f�H��/H�8�H��L�hH���H�A�[����H�H��H)�H�����H��[]A\A]�fDH�{H��L!��NL��H�5����f.���ukH�����tb�����uX1�H���H�0fH~�H9�t'fH~�H��<��������H��H��t��H���x���fDH�5H��1�1��H���W���DH��L��H�L$�H�L$���B����1�I���������L��H��H�D$�H�L$�������fDH���`H��`�����I�E��`H��`���H��L��H�L$�H�L$����D�������H��H�ut@�������H�����������E����
�����H�{�����������H�5H����������H��H���H���:����L���D������H��H���@���j���H������]��������
�O������f.�H�H�8�2����H�H�8�"����H�H�8�����H�I��L)�H���x����T���@H�H�8����H���������I��I��F���I���d���H���|���H�������H��������`���H�M���LH���CI����H���yI�����M���DH����H��������H�I��H9�������H���L��H���H��H���H�{M�EH��L��H�H��;���H���2���H����H�H��H����H���tqH����H���*H��������H�H��H9�����tF�H��I���L��H������I��H�@H���H�H��H���U���H��H�@H�x-H�H��H���W�����)���H��H��H��H��������/���H�����H��?H�I��H9������K�$H��H������H��~}�H��?H�H��H9�������H���H�{M�EH������H��?H�I��H9����Y����H��?H�H��H9�������H��������H�I��H9����&���H��������H�H��H9������f.���AUA��ATA��A��UH��SH��H��A����1����<�H��tH�5H��1�1��A��H��A��E���H����E������u H�����t�����
�����xH�߹�1�H�5�H��H��t[H��H��[]A\A]��H��H�E���AH���S���1���H��<�H����H��H���r@����@��uH�����t�E����
t-����1���H��H�5�H���EH���@H�ٺ�%1��H��H���t�H��H�� ���@��t�H��?H��H1�H)�H��1�kH�@H���H�|	���fD1���H��<�H���h���H�5H��1�1��H���M���H��?H��H��H1�H)�H���H���H��u,H�@H�xmH��H�|?[H��]A\A]��H��H�H��H��H��u���fDH��H��[H��]A\A]��H��H�������H��H��H��[]A\A]�H��H��[]A\A]�fDH��H��u�H���_���H��H��H������H��H�H��H��H��u����H�C����������H���H�����H�E��#����Z����H��������=�D��AUATUSH��H�_H�o@���x@����������� H���.@���4L�o��tCI��I�M���l�����tQ���+H�H�5H�81��DH��1���H�5�H��������H�5H��1�1��H�5H��1�H��1��H�è����u
H�������1���H��H�5�H��t
�I��u<L��/I���A��I��H�h@��u
H�������I�\$M����H��L��[]A\A]�����h������H����������H���QH�������H�L�(���f������
t6���'���H�C�t%H�H��uH�C�tH�H���!����L��/I���I��H�hA���_H�������I�\$DH���������H��L���������I�$��`H��`�����H���`H��`���H��L��������I��I�I��������u���H�L�(���f�@��@��H��H�H�������������?����~���H�L�(�A����H��L������B���I�$��`H��`�1���H�E��`H��`� ���H��L�������H�L�(���f�H�L�(�����H�L�(����I�\$���fD��H�ATI��UH���/SH�8�H��L�`A��u	I�����uXH�k@��u	H�����u
H��[]A\�DH��H�����u�H���`H��`u�H�E��`H��`t�H��H����L��H�����u�H���`H��`u�I�$��`H��`t�L��H����p�����������tj@��uH�����t
�����tQ�SH��u3H�
H���H��H�Ǻ�/1�[�����@H��H�5�1��f���AWAVAUI��ATI��US��H��H�L�0����H��H�H���w����������E��A����1���L��<�H����L����/L��M���HE����@��u
H�������1���H��H�5�H����H�5H��L��1���H�ٺL��H�5I��1��H�è�KI��A��uH������f1���H��H�5�H��t�I��L��A����u4�/L���H��L�hA��u
I�������H�]M���vH��H��[]A\A]A^A_�@L��1���H�5�H�������s���H�5L��1�1��H�5L��1�I��1��E���I�ă�A���J���L��H�����H���?��L��1��<L��L���H����H��H���x���������u H�����t�����
�����]1���H��H�5�H��tjH���"���D��L��1��<L���H�������H�51�L��1��H�����H��H�ߺ�%1�H���H��@��t�H��H��������t�H��?H��H1�H)�H��V��H�@H��H�\?�p���H�51�L��1��A��H��A�����fD�����
t6�������H�C�t%H�H��uH�C�tH�H���������/L��M���H��L�hA����I������
H�]fDH������}���H��H������j���H�E��`H��`�Y���H���`H��`�I���H��H����9����I��H�A��H�����������E����
����������H�E����������@��@��H��H�H���r����L��H��?H��H1�H)�L��H���H����H���R����H��H�H��H��H��u��;���H��H����������L��H������J���H�E��`H��`�9���I�E��`H��`�(���L��H��������H���X���H��H���o���H�����@H��H����fDH��H�H��H��H��u����H�]�L����H���H���{����H�C��!���H�����������fDL��H������ �������H�H�5H�81��AWAVAUATA��UH��SH��H��8H�|$�H��I��H��	@H�|$�7H���Dq u�N�A�?��u	H�|$D����H�\$�H�D$(H�EH�D$�8.uHH��H�L$D��H��H�T$ �D$H�D$��^������1�H��8[]A\A]A^A_�f�1�H�T$D��H���^����t�H�|$��H�EH�D$���.t���߀�EuRH�PH�T$D�xA�WՁ���H��1�H�T$(D��H��H�D$�Y^�����g���A��-���A��-��H�L$(H����H�5��1��H�}�t7H��H��{@��u@��uOH�����tF�����
u<@��H�@��t*H��H����uH�����t�����
t��H����*1��H��H�}H�D$�8/�OI�M��H�D$�0H���Dq u�E����@����H��8!�[]��A\A]��A^A_�f.�HcL$H�51���H�L	�I��H�ED�����t$���t3H��H��A��u!I�����tA�����
�Jf�H��L����*1��H�L$ H�E��tH��H��t$�tH��H����H�Ǻ�+1���T$H�E��tL��H�H��tH��L����/1��H�EH�D$�����H��1�H�T$(D��H��H�D$�
\��������H�L$(��tH��H�H��tH�}��/1��H�EH�D$�U���@1�H�T$(D��H���[�����n������f�H�5H�}1�1��H�E�M���H����������H�5H�|$(1�1��H�D$(�����L��H�up�u"��|���H������p��������
�b���H�D$ H�E���H��H������������H���F���H���U���fDH������� ���H�������H�L$ L�}L�����'���H��H��L�������?���fDH������H�E����H�D$ H�E�tH��H���������H�E���ff.�@ATUH��SH���H�]�� uwH��L�e��1�H��L���H����A�<u_H��L���O�������H�$�ƒ������uH�����t
�����tlH��[]A\�fDL�eM��tlH�]념H���H�E�� t'L�eH�EA�M���z���L�%�n���DH��L�e���D�T���H�H�5H�81��H�H�5H�81��H���H�|$H�D$�H�5H��H�H�81�����AW1�AVI��H�AUATU��SH��8H��L�D$�H�$H���Q���<�uH�����t������"f�H�D$�uH�����t������q
��H��H���H�<$�������>@���H�|$�������Q@��u#H�����t������4����H���H�$��uH�����t�������L�=I�7����H���H����H�$H�L$H�t$ ��L�D$H�H�D$ H�D$H�D$(1�����yH�\$��uL��uH�����t�����
�CI�7H���H����
H�51�1�H���H���g
H�-H��H�u�H���/
L�d$H�\$A����A��uI�����tA�$����
�I�7L���H���
H�51�1�L���H����H�uL���H���L�d$L�l$L��1���H�5�H�����������H�H�5H�81���H������������������������H�$����fDL�l$A����A����I�������A�E����
��H�L��H�0�H��u+A�E������L��1Ҿ
�I��fDL�l$A��H�D$��������H�5L��1�1��H�5L��1�I��1��I��D��E���A���r1���L��<�H���PH�51�L��1��A��H��A�����3L��M���LE���b@��u
H�������1���H��H�5�H���7H�5L��H��1���H�ٺL��H�5I��1��H�Ũ�/I��A��uH������J1���H��H�5�H��t�I��L��A����u4�/L���H��L�hA��u
I������'H�kM���ZH��8H��[]A\A]A^A_��I�7H�|$�H�����H�5H�<$1�1��H��tH�5H�|$1�1��H�������H�L$H�$��tH��H�H���{���H�ߺ�/1��H���_���f�I�7L���H���X	H�51�1�L���H���<	H�L��H�0�H���U���A��u
I���������H�5L��1�1��I���'������L��1��<L���H�������H�51�L��1��H��E�������H��H�������������H�����������
������H�C���H���m�H�5H���x1�1��H�|$H�$�����������H�5H��� 1�1��H�D$���DL��H����JH���������L��1��<L��L���H���
������@H�|$�����H�H�5H�81��@H���H��tH�H�<$H�0�H���c���H�<$H�
�H��H���!��������
t6�������H�E�t%H�H��uH�E�tH�H���������/L��M���H��L�hA���WI������H�kfDH����������H��H����������H���`H��`�v���H�E��`H��`�e���H��H����U����I��H�A��H����������H�uL���H���{L�d$L�l$L��H�H���^���@��@��H��H�H���G���fDL������H��H��u%H���	���H��H�ߺ�%1�H���H��@��t�H��H�������t�H��?H��H1�H)�H����0H�@H��H�\?����E����
��������]���H�E����������������H�H�|$H�0�H����L�=H�$I�7����L��H���������H���`H��`�����I�E��`H��`�����L��H������@A��u
I�������H�5L��1�1��I�ă�L�d$L�l$��������L���D1���H��H�5�H��������_����H�xH�H�0�H���t���H�D$H�x@����@��u H�����t�����
�D�������H�51����H������H�D$H�@H�D$�����H�xH�H�0�H�����H�$H�x@���@��u H�����t�����
�����"H�51����H���k�H�$H�@H�$�Z�f.���u
H�������H�5H��1�1��H������H�=�H�|$H��H�����H�=�H�<$H��H��d���@L��H��?H��H1�H)�L��H���H���H������D�H�����H�-H��H�u�H�����@���������H��1Ҿ
�H�����H�uL���H���$���A�$�����C���L��1Ҿ
�I��B���fDH��H��uH���(����H��H�H��H��H��u�������H�D$�A�f�H�k�����H������H����f�H��H�H��H��H��u����H�|$@����@��u H�����t�����
������H�5��1��H�$H������L�=I�7����H��H���o������L��H��������������H�H�$H��u��s���H����������H���?�����H�GH�$�t�H�H���z���H�G��n���H�H���a���� ���H�W���]�H������O�H�W���b�H���D����T�H�H�5H�81��ff.����SH��H���H��� uwH��H�{���<u>H�T$1����H�D$�ƒ������uH�����t
�����txH��[�H���H��� uHH��H�{���D�fDH�{H��uH�=�fDH�C�<�t�����H�{H�C�H���U�����H�H�5H�81�����USH��H�T$H���K��H�\$H��H�H����CH�5H��H�\H����H�ٺ�1��H�<$H���H��[]�@H�-H����H�5H��tTH�<$H�ٺ1��H��1�H��1��H��[]�H�5H����H�<$1�1��H��[]�@�H�=�H��H���H�=�H�\$H��H��[����H�=�H��H������H�=�H��H��X�������f���S1�H��1�H��H�߾[�f.������ff.�f���H��1�H�1����H���D��H��H�H�<$�H�H�t$H����H�����H�G����H�G����AT1�1�UH��H��SH��H�5�H�èt	H����H�ٺ�-H��1��I��@��tH��H��tH�ٺ�+H��1��H��A��t��uAH�51�H��L���H��t4H�5H��tgH��1�1��H��[]A\�f�L��H��H�H�H9�t�H�L$H��H��L����Q��H�t$H�<$�H��[]A\�DI��H���i���D�H�=�H��H��y�����AVAUATUH��SH�� H�T$H���0H��H�<$@���"@��u!H�����t�H�\$����
t+����H�5��1��H�\$H��u
��tDH��xaH�5H����H�<$H�ٺ1���H���H�� []A\A]A^�f�1���H�߾<�H���H�$A��A���}��*�1��A��H��A��H�L$��tH��A�H��t��-�1��I��H�5H����L���1����H��I�ƾ-1��L��H���I��E��t
H�ؿH��tH�߹�1��+�H��L���H��A��t���H�51�H��L���H����H�5H���H��1�1��H�� []A\A]A^�@�H�=�H��H��I����H��H�\$����H�5H���#����H�ȻH�������H���c����~���L��H�H�H9��Q���H�L$H�T$H��L����N��H�t$H�|$�H�� []A\A]A^�D�H�=�H��H��T���H�5H�\$H���|�������fD�H�=�H��H�����H�GH�\$��&���H���'����������ATI��U��SH��H����tWH��xp1�H�L$H���L�����uH���H��[]A\�DH�t$H���H��[]A\�f.�1���H�߾<�H��t�H�5H��1�1��L���H���R���H�51�H��1��H��[]A\�fD��H��H�T$�N�H�D$�ƒ���t�uH�����t
�����tH���H�H�5H�81��ff.����AV�H�=AUATUS��H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���
H�=��H�=H��L�-H�=H�I�u�H�H�5&E��H��H��H������(�ƒ�����H����<�H�xL�%L�5H�5�H���g��7�ƒ����IH����<��H�xH�5������H�5{A��H�=�H�;1�H�S<��H�5�H�;1�H�K<��H�5�H�;�H�`���H�5�H�;�H����H�5�H�;�H���H�5�H�;�H��x��H�5�H�;�H��x��H�5�H�;�H��E��H�5�H�;�H�����H�5�H�;�H����H�5�H�;�H��a��H�5�H�;�H�mX��H�5�H�;�����H�2X��H�5�H�;�����H��W��H�5�H�;�����H��W��H�5�H�;�����H��W��H�5�H�;1�H�	B��H�5�H�;1�H�A;��H�5�H�;1�H��:��H�5�H�;�����H���H�5�H�;1�H��>��H�5�H�;1�H�>A��H�5�H�;1�H�6>��H�5�H�;1�H��=��H�5�H�H�;H�5H���H��F��H�5H��H���H�;H��H�
�A��H��?���H�-�H�H�5H�}�H�}�H�H�5�H�}�H�H�5�I�}1�H��:��H�5�I�}1�H��9��H�5�I�}�H����H�5�H�}1�H��>��H�5�H�}1�H�9��H�5�I�<$1�H��>��H�5�I�<$1�H�!?��H�5�I�>1�H���H�5�I�>�����H���H�5�H�}1�H�%�H�5�H�}�����H��H�5�I�<$1�H���H�5�I�<$�����H�D���H�5�H�1�H�X�H�5H�8�H���^��f�ƒ����xH����<�H�x�����H���H�5�[H�=]A\A]A^�fDH�����u�H����H��u�H�H�8�DH����������H����H�������H�H�8���f.�H������,���H��tNH������H�L�%L�5H�8�����H�L�%L�5H�8���L�5L�%I�>����f.�I�>�����I�>�����H�H�8�����H�H�8����I�<$�����I�<$����L�%L�5I�<$�S���f�H�L�%L�5H�8�-���H�H�8�?����H�H�8�N����H�L�%L�5H�8���H�H�8�����H�H�8���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realigndenominatorto_rnumerator(/)divided by 0ceilquo01not an integer%s can't be coerced into %sin a**b, b may be too bigRationalstring contains null byteInfinity11<<abs<=>convert==**fdivdivinteger?-@to_fto_itruncate@numerator@denominatorallocatenew+-*coercefloorroundrationalizehashto_sinspectmarshal_dumpcompatiblemarshal_loadgcdlcmgcdlcmrational.somarshaled rational must have an array whose length is 2 but %ldinvalid value for convert(): %scan't convert nil into Rational���������������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�	0	DX
lJE�{��(��E�D�D h
ICO(��E�D�D h
ICO,�A�C
B�E�L����
G$82E�A�G _DA(`|F�P�A �aAB �jE�G z
FD�0��B�F�G �D@~
 AABK� �4�$HKE�D�D xDA p�E�h
K~
J�'H^,��F�K�A �D
ABG8�8F�A�A ��
ABKX
FDNPVE�D�G u
FCJ�
LHI_
AAGI
AAE(l�E�D�D �
DAGH�	B�H�H �B(�A0�F8�Dp*
8A0A(B BBBEH�B�D�B �E(�A0�A8�N`�
8D0A(B BBBE0DXlL��F�B�D �H(�G0
(D ABBMe
(G ABBOt��F�B�E �D(�A0�
(D BBBG�
(D BBBGi
(D BBBE�
(A BBBH8HtF�D�D ��
CBJe
ABHH��B�G�E �E(�D0�D8�J`�
8D0A(B BBBIt�HF�B�B �A(�D0�d
(A BBBFQ
(F BBBK�
(F DBBKX
(D BBBNLH�E�A�D \
FAK[
AAK�
LHHM
AAAd�F�B�B �B(�A0�D8�GP�
8F0A(B BBBH�
8F0C(B BBBJH�F�E�B �B(�A0�D8�GPq
8G0A(B BBBLHLlB�G�E �E(�H0�D8�Dp�
8D0A(B BBBK�1���
�E$�H���
�ID
AH��F�B�B �B(�A0�A8�G`Q
8D0A(B BBBE�,�F�B�B �B(�A0�D8�JP�
8G0A(B BBBMp
8C0A(B BBBL�
8D0A(B BBBH�
8A0A(B BBBI`��F�E�A �A(�G@i
(G ABBGh
(C ABBH�
(A ABBG�(	`F�E�H �D(�G0�
(D ABBH�
(F DBBH\
(D DBBHP
(G ABBDG
(A ABBK�	8�	�F�B�A �A(�D0i
(D ABBH(
�M�D�I �u
ABF ,
�n�r
�HP�HP
@F�B�B �E(�D0�A8�F@�
8D0A(B BBBEd�
QB�B�B �B(�D0�D8�Gp�
8A0A(B BBBJ�
8C0A(E BEBK0OB�A�D �D0z
 AABGH8DF�D�L �B(�A0�C8�Dp�
8D0A(B BBBI ��E�G W
AD@�pE�A�D0_
AAEB
AADa
AAE�&E�\0+H^H-H d`	t	@�0F�E�G �D0�
 AABCv
 AABFl�_F�B�B �A(�D0�DP�
0A(A BBBC[
0A(A BBBE�
0A(A BBBFL<
�F�D�C �G0r
 AABFQ
 AABKU AAB�
TH s
A@�
�F�N�B �A(�A0��
(H BBBK	!-E"a~#��$��%0	M	]	~�	��(� �(:00
D:^�v@J�	��	������������	��;d\��p	�	�d��p��	
	&A�Z�f����2���� |�
3�j>
^/|�	��/���0����6�H�d�~����q����q���)C[[Kf[��`���7�'�7	+@�8	�A	�J	eX
~ 	8�X
���`
V�	��	����~	��.	~X	��	�	�		h�		`�		X�	�
�0
�G
	�O
	�W
�t
��
��
��
��
��
�"/L<g u<��!�@���!��&�	���&+%�&t2+J�<` +�i	��	�p�<�(C��<H�(C��D�0C���D��K
	�
�K.
�WE
�W]
�ms
�Wl|
�m�
1o�
n1�
1o�
�p�
@oH�
�py0�p�By\�t y������ ������ �� �+�;+�aʚ�ʚ�������.�����.� p�=p�V��mp�Qw�����ЧO���d� �D	�1	xJd�e_�~p���_��к�`�p�	 �	0�	(	8+кG޺aкn޺����&���#���#�0[�R0�+g[������������������?�i	p���?��	P�	H�	@?�0
�O@��a
�d��d��o�"#$%!���������!.37:I$*e06�<�B�H@N�T`Z�`�f�l�r�x�~������������������������"�(�.�:�?�D�LYdquy �&2BWk

 &'(|��������'ALWemx�����������+9N\hy���������*8IT�!�[gr}���D��K������`� ��0���!0�@1ELZo����`�-���	���	���0��_�Tp��(8M]w������.annobin_rational.c.annobin_rational.c_end.annobin_rational.c.hot.annobin_rational.c_end.hot.annobin_rational.c.unlikely.annobin_rational.c_end.unlikely.annobin_rational.c.startup.annobin_rational.c_end.startup.annobin_rational.c.exit.annobin_rational.c_end.exit.annobin_nurat_numerator.start.annobin_nurat_numerator.endnurat_numerator.annobin_nurat_denominator.start.annobin_nurat_denominator.endnurat_denominator.annobin_nurat_to_r.start.annobin_nurat_to_r.endnurat_to_r.annobin_integer_denominator.start.annobin_integer_denominator.endinteger_denominator.annobin_nurat_ceil.start.annobin_nurat_ceil.endnurat_ceilid_negateid_idiv.annobin_nurat_floor.start.annobin_nurat_floor.endnurat_floor.annobin_nurat_to_f.start.annobin_nurat_to_f.endnurat_to_fid_fdiv.annobin_numeric_denominator.start.annobin_numeric_denominator.endnumeric_denominatorrb_intern_id_cache.13755rb_intern_id_cache.13753.annobin_numeric_numerator.start.annobin_numeric_numerator.endnumeric_numeratorrb_intern_id_cache.13748rb_intern_id_cache.13746.annobin_read_digits.start.annobin_read_digits.endread_digits.annobin_nurat_marshal_dump.start.annobin_nurat_marshal_dump.endnurat_marshal_dump.annobin_nurat_inspect.start.annobin_nurat_inspect.endnurat_inspect.annobin_nurat_hash.start.annobin_nurat_hash.endnurat_hash.annobin_nurat_f_rational.start.annobin_nurat_f_rational.endnurat_f_rationalid_convert.annobin_float_decode_internal.start.annobin_float_decode_internal.endfloat_decode_internal.annobin_integer_numerator.start.annobin_integer_numerator.endinteger_numerator.annobin_nurat_dumper.start.annobin_nurat_dumper.endnurat_dumper.annobin_float_numerator.start.annobin_float_numerator.endfloat_numerator.annobin_float_denominator.start.annobin_float_denominator.endfloat_denominator.annobin_nurat_to_s.start.annobin_nurat_to_s.endnurat_to_s.annobin_nurat_truncate.start.annobin_nurat_truncate.endnurat_truncate.annobin_nurat_s_alloc.start.annobin_nurat_s_alloc.endnurat_s_alloc.annobin_nurat_loader.start.annobin_nurat_loader.endnurat_loaderid_i_numid_i_den.annobin_nurat_round.start.annobin_nurat_round.endnurat_round.annobin_nurat_fdiv.start.annobin_nurat_fdiv.endnurat_fdivid_eqeq_pid_to_f.annobin_nurat_marshal_load.start.annobin_nurat_marshal_load.endnurat_marshal_load.annobin_nurat_rationalize_internal.start.annobin_nurat_rationalize_internal.endnurat_rationalize_internalrb_intern_id_cache.13647rb_intern_id_cache.13650rb_intern_id_cache.13652.annobin_f_round_common.part.12.start.annobin_f_round_common.part.12.endf_round_common.part.12id_exptid_to_i.annobin_nurat_round_n.start.annobin_nurat_round_n.endnurat_round_n.annobin_nurat_truncate_n.start.annobin_nurat_truncate_n.endnurat_truncate_n.annobin_nurat_ceil_n.start.annobin_nurat_ceil_n.endnurat_ceil_n.annobin_nurat_floor_n.start.annobin_nurat_floor_n.endnurat_floor_n.annobin_nurat_coerce.start.annobin_nurat_coerce.endnurat_coerce.annobin_rb_gcd.start.annobin_rb_gcd.endid_integer_p.annobin_nurat_eqeq_p.start.annobin_nurat_eqeq_p.endnurat_eqeq_p.annobin_f_muldiv.start.annobin_f_muldiv.endf_muldivid_cmp.annobin_nurat_div.start.annobin_nurat_div.endnurat_div.annobin_nurat_mul.start.annobin_nurat_mul.endnurat_mul.annobin_rb_lcm.start.annobin_rb_lcm.endid_abs.annobin_rb_gcdlcm.start.annobin_rb_gcdlcm.end.annobin_f_addsub.start.annobin_f_addsub.endf_addsub.annobin_nurat_sub.start.annobin_nurat_sub.endnurat_sub.annobin_nurat_add.start.annobin_nurat_add.endnurat_add.annobin_nurat_rationalize.start.annobin_nurat_rationalize.endnurat_rationalize.annobin_nurat_expt.start.annobin_nurat_expt.endnurat_expt.annobin_nurat_cmp.start.annobin_nurat_cmp.endnurat_cmp.annobin_rb_gcd_normal.start.annobin_rb_gcd_normal.end.annobin_nurat_canonicalization.start.annobin_nurat_canonicalization.end.annobin_rb_rational_reciprocal.start.annobin_rb_rational_reciprocal.end.annobin_rb_rational_raw.start.annobin_rb_rational_raw.end.annobin_numeric_quo.start.annobin_numeric_quo.endnumeric_quo.annobin_rb_rational_new.start.annobin_rb_rational_new.end.annobin_parse_rat.start.annobin_parse_rat.endparse_rat.annobin_string_to_r_strict.start.annobin_string_to_r_strict.endstring_to_r_strict.annobin_nurat_s_convert.start.annobin_nurat_s_convert.endnurat_s_convertrb_intern_id_cache.14056rb_intern_id_cache.14058.annobin_string_to_r.start.annobin_string_to_r.endstring_to_r.annobin_float_to_r.start.annobin_float_to_r.endfloat_to_rrb_intern_id_cache.13810rb_intern_id_cache.13808rb_intern_id_cache.13806rb_intern_id_cache.13804.annobin_integer_to_r.start.annobin_integer_to_r.endinteger_to_r.annobin_integer_rationalize.start.annobin_integer_rationalize.endinteger_rationalize.annobin_nilclass_to_r.start.annobin_nilclass_to_r.endnilclass_to_r.annobin_nilclass_rationalize.start.annobin_nilclass_rationalize.endnilclass_rationalize.annobin_rb_Rational.start.annobin_rb_Rational.end.annobin_rb_rational_num.start.annobin_rb_rational_num.end.annobin_rb_rational_den.start.annobin_rb_rational_den.end.annobin_rb_flt_rationalize_with_prec.start.annobin_rb_flt_rationalize_with_prec.endrb_intern_id_cache.13821.annobin_rb_flt_rationalize.start.annobin_rb_flt_rationalize.endrb_intern_id_cache.13832rb_intern_id_cache.13836rb_intern_id_cache.13838.annobin_float_rationalize.start.annobin_float_rationalize.endfloat_rationalize.annobin_rb_cstr_to_rat.start.annobin_rb_cstr_to_rat.end.annobin_Init_Rational.start.annobin_Init_Rational.end.LC0.LC1.LC2.LC3.LC4.LC5.LC7.LC8.LC10.LC9.LC11.LC12.LC13.LC14.LC15.LC16.LC17.LC18.LC19.LC22.LC20.LC21.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_funcallrb_intern2__ctype_b_locstrlenrb_alloc_tmp_bufferrb_cstr_to_inumrb_free_tmp_buffer__stack_chk_failrb_assoc_newrb_copy_generic_ivarrb_usascii_str_new_staticrb_inspectrb_str_catrb_str_concatrb_hashrb_memhashrb_num2longrb_cRationalrb_funcallvfrexpldexprb_dbl2bigrb_call_superrb_obj_as_stringrb_newobj_ofrb_ivar_getrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_str_to_dblrb_float_new_in_heaprb_check_typerb_ivar_setrb_eZeroDivErrorrb_raiserb_error_frozen_objectrb_eArgErrorrb_scan_argsrb_cIntegerrb_obj_is_kind_ofrb_cFloatrb_cFalseClassrb_cFixnumrb_cSymbolrb_str_to_inumrb_cTrueClassrb_cNilClassrb_eTypeErrorrb_obj_classnamerb_Complexrb_gcdrb_cNumericrb_int2bigrb_fix2intrb_big_mulrb_num_coerce_binrb_lcmrb_gcdlcmrb_warnrb_num_coerce_cmprb_gcd_normalnurat_canonicalizationrb_rational_reciprocalrb_rational_rawrb_convert_typerb_rational_newrb_must_asciicompatmemchrrb_str_modifyrb_eFloatDomainErrorrb_string_value_ptrrb_backref_getrb_match_busyrb_backref_setrb_Rationalrb_rational_numrb_rational_denrb_flt_rationalize_with_precrb_flt_rationalizerb_cstr_to_ratInit_Rationalrb_define_classrb_define_alloc_funcrb_undef_methodrb_define_global_functionrb_define_methodrb_define_private_methodrb_cObjectrb_define_class_underrb_marshal_define_compatrb_cStringrb_provideH�YL��������`�rL��������y��������L��������(���������-M��������4>O���������TM��������^�����������L�������������������M�����������������������������M�����������������AN��������fO���������O���������P���������Q���������R���������S���������T��������U��������1���������8V��������EW��������Q���������\X��������fW��������qY��������|Y�������������������X���������Z���������Z���������[���������\��������\��������*]��������#�S_��������]`��������ia����������������������������������������������"c��������.���������9X��������Bc��������MY�������������L�����������L�����������L��������d��������L�Ye��������s�{e���������f���������g���������f��������	g��������Z	L���������	L���������	L���������	��	L���������	��	L��������
L��������3
��
��
L���������
L���������
�*�/L��������g�sL���������h��������&h��������fi��������

j��������X
�i
L���������
��
k���������
��
k���������
*l���������
���������m��������bn��������i*o��������p���������zm���������d�L��������L��������+L���������L���������L��������L��������YL���������L���������\�L���������L���������T�L��������d+���������0M��������:d��������
M��������TDL��������K\f��������kM��������\�L��������s\�L������������������M���������\�L���������L��������L��������sL���������L������������������p���������*q���������r�����������L��������SL��������]*s��������hr���������*]���������r��������Hd���������L�����������L��������L��������[*t���������L���������*u���������f���������g��������6*v��������Sd���������*t���������*v���������*s���������w���������*s��������*u��������*x��������,f��������eg��������{*y���������*x���������*y���������*z������������������m��������{{���������{������������������*z���������m���������*s���������r��������8�IL��������_|���������d��������*t��������?d��������`f���������g���������*v�������� h��������\ i��������s � L��������� *t��������� *u��������� *y��������� *v��������� *u��������!f��������;!g��������k!*s���������!*x���������!*x���������!*y��������"*~��������"r��������"�("L��������8"*q��������C"r���������"L���������"��"L��������%#L��������5#�D#L���������#��#L���������#L��������I$�U$L��������~$��$L���������$L���������$*q���������$r��������"%L��������S%w��������m&*z��������t&��������~&m��������q'��'��'L��������(�$(L��������d(h���������(i��������*)�/)L��������K)�W)L��������i)�{)��)L���������)��)L��������*�*L���������+L���������+��+L��������,�,L��������>,L��������N,�\,L���������,��,L���������,��,L���������,�-L��������S-L��������]-�o-L��������v-��-L���������-L��������?.���������W.*l��������^.���������h.m��������l/��������|/���������/����������/��/L��������E0L���������0��0L���������0L��������e1L��������z1��1L���������1L���������2*t��������3�3L��������3���������3�+3L��������23�A3L��������x3�}3L���������3��3d��������4L��������%4�14L���������4d���������4f��������(5g���������5L���������5L���������6����������6*y���������6*u���������7��7L���������7��7L���������7f��������8g��������Y8��������i8��������{8*s���������8*x���������9���������9���������9����������9*v���������;��������S<���������=��=L���������=���������!>d���������>h���������>i���������>�?L��������k?*l��������r?���������|?m���������?��?L���������?��?L���������?����������?�@L��������@�!@L��������i@�n@L��������}@��@d��������4Af��������hAg���������A*v���������A*u���������Af��������,Bg��������HB����������B*s���������B*t���������B*x���������B*y���������Ch��������/Di��������;D�DDL���������D*~���������Dr��������
E�EL��������)E*q��������4Er��������E��EL���������E��EL��������FL��������,F�8FL��������[FL���������F��FL���������F*q���������Fr���������Fw��������*GL��������tGL���������G��GL���������G��GL��������HL���������HL���������H�bI�lIL���������IL��������uJL���������J*z���������J���������Jm���������J�KL��������qK��������L*~��������"Lr��������2L�>LL��������NL*q��������YLr���������L��LL���������LL���������L��LL��������VM�[ML���������M��ML��������(NL��������8N�DNL���������N��NL���������NL��������`OL���������O��OL���������O*q���������Or��������6PL��������XPL���������Pw���������PL��������2Q�<QL��������uQL���������QL���������Q��QL���������RL���������R��RL���������R���������S��SL���������SL��������TT�^TL���������TL��������mU*z��������tU��������~Um���������U��UL���������U��UL��������5V�>VL���������V��������!XL��������;X�QXL���������X��XL��������YL��������EYL��������UY�aYL���������Y��YL���������Y��YL��������3ZL��������=Z�OZL���������ZL���������ZL���������Z��ZL��������[L��������![�-[L��������~[��[L���������[��[L���������[��[L��������\L���������\����������\*l���������\����������\m��������b]�g]L��������o]���������]��]L���������]��]L���������]��]L���������]�^d���������^*t���������^L��������%_�*_L��������Z_L���������_L���������_��_L��������L`d���������`f���������`g��������maL���������b���������b���������b���������^c��������ic��������tc����������cL���������c��cL���������cL��������gd�ldL��������|d��dL���������e����������e*y��������#f*u���������ff���������fg���������g���������g���������g*s��������Ch*x��������kh*v���������iL���������i��iL��������*jL���������jL���������j��jL���������j��jL��������<k��������^k��������m��������m���������nh���������ni���������n�oL���������oh��������,pi��������;p�DpL���������p��pL���������p��pL��������qL��������.q��������:qp��������Aq�OqL��������{qL���������qL���������q��qL��������Ar*v��������kr*t���������r���������s�
sL��������s�#sL��������QsL��������as�msL���������s��sL���������s��sL���������s��sL��������Ttd���������t��tL���������t��td��������uf��������4ug��������Ku*l��������Ru���������\um��������ru�wuL���������uL���������u��uL���������v��vL���������vL��������Wwf���������wg���������w*x���������w*y���������w*u��������@xL��������qx���������x*s���������xf��������>y*~��������Gyr��������Sy*s��������_yr��������oy*]��������zyr���������yr���������y�*z�6zL��������@z��z��zL���������z*s���������zr���������{��{L���������{��{L���������{*q���������{r��������>|�O|L���������|����������|d��������}���������:}�I}L��������Z}�f}L���������}*v��������C~�O~L��������_~�i~L��������p~�~L���������~��~L���������~��~L��������(d��������}���������*t������������������!��-�L��������4��C�L��������s�L�������������L�����������L��������/��9�L����������d��������܁f���������g��������2��7�L�������������L����������L�����������L�����������L��������"��B�d����������*l���������������������m�������������L����������L����������f��������Äg��������3�*s��������c�*u����������L��������3�*t��������������������������������ÆL��������҆����������7�*x��������Y�*y��������m�*u���������h��������J�i��������z���L����������*t���������*x���������*y���������L��������e�d����������*v����������f����������*u���������*t��������0�h��������o�i����������*u����������*y����������*x����������*v��������ߊ*v���������*x����������*y��������U��̋d����������L���������L��������6�L����������d��������ȍ���*t���������d��������3�*u��������@�d�����������ގh���������i��������3��?�L��������\�f����������f��������͏g��������=��Ð*s��������Ӑ*x���������*y���������*v��������Α��������ّ������������������Y���������d���������o����������ߒ��������<�����������L�����������L��������r��w�L��������ŔL����������"�L��������H�L����������L��������͕�ٕL��������&���������������*l���������������������m��������ڗ�ߗL����������������������L��������
���L��������L��Q�L��������\��s�d���������*t��������L�d����������f����������g���������*u������������������3�*y��������G�f��������|�g����������*s����������*x����������*v��������ך*]���������d��������/�f��������W�g��������g�f����������g��������ɛ�؛���������ߛ������������������������������M�*]��������r������������L������������L����������"�L��������4��>�L��������t��y�L�������������d������������L����������������������L��������"��1�L��������|�L��������՞�ڞL���������L����������$�L��������F�L�������������L���������d��������T�f����������g��������g�f����������g������������������G�f��������[�*l��������b����������l�m����������N��������ݢ���������a��������������L����������L������������L��������c�L����������L��������̥L��������2�L��������s����L�������������L��������ܧ��������������������t����������������������*���������Ǩ��������Ѩm��������ب*o��������ߨ	���������m���������W�������������������
���������*o���������m��������0���������I�p����������������������������������������3�*~��������G�r��������l�����������p����������r��������̪�تL���������*q���������r��������;�r��������K��W�L��������l�r�������������L���������������������*l�������������������˫m��������A�*q��������L�r��������s�w������������������������L�����������̬L����������L�����������L��������g��l�L��������|����L�������������L�����������L�����������d��������Y�r��������i��v�L�������������L��������ˮL���������r������������L���������*q���������r��������A��M�L��������x�L�������������L���������|�L��������3�tE�L����������L����������*z��������������������m��������̰r��������ذ*q���������r����������������������������	����������d�d����������f��������رg���������r����������L���������*s��������)�r��������9�*~��������W�f����������g�������������L������������L���������*s���������r��������h��y�L����������*s����������r������������L��������E��Q�L��������h����������m�M��������|�t�������������M����������|�����������*q���������r��������1�w��������H�r��������s�w��������P��a�L��������u�*~����������f��������O�*z��������V���������`�m��������}����������ܸ������������������J�*���������Q���������[�m������������L�������������������ӹ,�$��L��������
�L���������41�L��������H�
��������M�M��������W�$h����������m�M��������|�,��
����������M�����������������������M��������Ǻ4����������p��������=���������D�p��������k�*]��������ɻ�λL����������L���������L��������2��D�L��������P�la�L�������������������ȼ���������ͼM��������׼l8��I�L��������d�L��L���������������������L���������L���������L��������'�DD�L��������`�L��������k������������L����������������������ξL��������޾<�L���������
���������M���������LA�L�����������ȿ
��������ͿM��������׿D�L����������
�M���������<h���������r�p��������~����������������������L�����������L������������L��������O�*���������V���������`�m��������~�����������M�����������������������M�����������������������M��������������������M��������������������M����������������������M��������
������������M��������%���������,��1�M��������=���������D��I�M��������U���������\��a�M��������m���������t��y�M�����������������������M��������������������M�����������������������M����������*~����������������������������������*]�������������������/�*s��������6�*y��������=���������B������������������������������������������������������������������������������������������������������������������������������������������ ������������������4����������9����������O���������T����������j���������o���������������������������������������������������������������������������!���������������������"���������������������������������������'���������,����������B�#��������G����������Z���������_����������r���������w����������������������������������$���������������������%���������������������&���������������������'��������������������(��������
�����������*����������)��������#����������6�*��������A����������Z����������a�*q��������m�}��������t�+��������}�����������������������,��������������������������������-�������������������������������������������������������������������������������������������������������0����������5����������I����������N����������b����������g����������z����������������������$�������������������������������������������$�������������������������������������������$�������������������*�������������������#����������m���������r����������z�.����������*t����������*t���������*t���������*s���������*y��������3�*u��������:�*s��������A�*y��������S�*y��������Z�*s����������*u����������*u����������*s����������*y����������*x����������*s���������*y���������*x��������#�*x��������3�*v��������:�*s��������A�*y��������S�*v��������c�*v���������L���������L���������L��������L���������L��������+^��������$b���������b���������L���������L��������C
L���������
L���������L��������i��������tT���������T���������%���������'L��������~>���������&?L��������^C����������DL���������HL��������}MT�������� n���������oL��������`o���������hpL���������y���������]zL���������i��������j�����������L�������������������L��������*�L��������ں�����������������������������W��������������������� ���	$,	P	X�	���(��((:D(L:p:x��:��������0�8�d�l����d���d�d�$d,PX�����������DL�p�x
���
�
�/
/0/8�d/l�������������$�,�P�Xq���q�q��q�		[D	L	[p	[x	�	[�	�	�	7

70
78
	d
7l
	�
	�
X
�
	�
X
�
X
�
�$X
,�P�X~���~�~���~����D�L�p�x���������
�
�0
�8
d
�l
�
�
<�
�
<�
<�
�!$<,�!P�!X�&��!��&��&�+��&�++�<D+L�<p�<x(C��<�(C�(C��D(C�D0�D8�Kd�Dl�K��K��W��K��W��W��m$�W,�mP�mX1o��m�1o�1o��p�1o��p�pyD�pLypyx��y����������0��8 �d��l �� ��+�� ��+��+��ʚ$+�,ʚPʚX���ʚ�������.�����.�.�p�D.�Lp�pp�x���p������������0�8d�d�ld��d��_��d��_��_��к$_�,кPкX޺�к�޺�޺���޺���#�D�L#�p#�x[��#��[��[����[���0��8��d��l�������������������$��,�P�X?����?��?��
��?��
�
�d�D
�Ld�pd�xo��d��o� � � � � 4H \0p@�������p<�d ����0���$�8�Lt`��@� 	`
p�����4�H�\p �@��!L�&� +��<L0C��D�KP�W�n�@o��p0 y� �,	���	 ��	0�
К0
��T
0��
p�Ч< ��p��`��к� �40�L`�d��x�������@
@��
��
p�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rodata.cst16.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*/T*0l*1�*2�*3'�o�"@8C�{*-/�30��=0��8@�*
S��b���]@��0*
|�������@ �0*��������@P�0*�`��`���@��0*24��2���)@�7P�D0`�.������|��S��'��M��[��n����������� ����
�@��x*(���'+K	@&�(��re.o/           1690381920  1000  135   100644  125072    `
ELF>P�@@-,

 "#$%��H�H+1�H��t
�����D��@��1�@��u)H��H��t H�1��у���tH�к%HE��f.�����~*�B�H)�H�T�DHcH��H��L�H�8H�pH9�u�1��ff.�AWL�7L�NAVAUATUSH��H�D$L��$f.�L�H��I9�u�H��L9�s@D�M��I)�H��N�L�I9�u�H�,2L�<
L9�wNH�T$I��I��D�/H�����EH\�J�,#L9�w!D:+u�L��H��L�����u�H��H+D$�H�����H��[]A\A]A^A_�ff.����S�
��0�H�@H��H�@H�@ �H�CH��[�ff.�UH��H��SH���H��H�X�H�5H�PH�H��H�81��@��H�=1��ff.���H��1�H�=��H�����H�=1��ff.���H��1�H�=�1�H�����H��1�H�=�ff.�AWAVI��AUATUSH��H�H9����8\H�X�~H9���I��E1�H�E1��H�k��0<H���Hc�H�>��fDH9���{-H�k�E���\H9����E����H�]<\�YA�H9�u�@�ZH�5L���������D�	E��t��E��u#I�,$H��[]A\A]A^A_É�H�݃�E��D�f����@����f��
�f��
�f��\�f�E����H�CH9��P�{-�F�K���:H����\�g���A�����@H��H��H�T$H��H)�H9޾HB��H�L$H��H���LH́��������ZH�5L�����������������fD����fDH�SH��H��H)�H9�H�T$�HB��H\$H��H���|���D�ZH�5L���������k����ZH�5L���������M���@�ZH�5L���������+����ZH�5L���������
����ZH�5L�����������H�������ZH�5L�������������ZH�5L��������ff.��UH��AWAVI��AUATSH��hH�}�H�H�u�HcRH��H�M�L��x���I��L�M�dH�%(H�M�1�H�E�H�BH��H%�H)�H���H��H9�tH��H��$�H9�u����H�\$1�H���H���H�E�H�U�H�u�H��H�E���������A����A�D$�A�H��H�E��3H�U�H�u�H�}���������B�;A��I��L;}���N�,;L��H��Mc�L������|�L��L��H��������A��u�����A�H�}�L��H���H��x���H�H����L9�u/H�E�H�M�H�1�H�M�dH3%(��H�e�[A\A]A^A_]�H�}��ZH�5�D�����뽐Mc�L��H��J�4#�����m���H�}��ZH�5�������f�H)�H�L��j���f�H�]�H��1�H���H�}��H����/���H��x���L�0� ���H�sL��H�����������o����ff.�@AWAVAUI��ATL�$UH��SH��L��H��H��HH�$H��L�D$dH�%(H�L$81�H�L$(�D$(��}��H����D$L9���L�t$,H�D$0H�$H�D$'H�D$�}D��/�����.H��D���UX����H��	D���UX����D��L�<$H�1��L����L��L���HcD$,H�L9�sXH��L��L��H���A�ǃ�\�k���Hc|$,H�L9��l���H��L���D$,H��L��Lc�L��L��L9�r�f�H�D$8dH3%(��H��H[]A\A]A^A_�DHcT$,H��L����^���H�t$L���D$'\�HcT$,H��L����/���@H��L��H����D$,����H�|$��H��L��H��U �T$L�������H����L$(�����	��!���L9���I��L�t$,�(D��/t~H����UX��tmHcD$,I�M9�sqH��L��L��L������u�H;l$uCL��H��L���H�I���D�;�D$,�����Hc�H��L����(���H����D$���H�$H��L����h����AWI��AVI��L��AUI��ATU��SH���H���I��H����L��H����H�5H���M��L��L��L��H������D$
/@��uUH�t$
H�F@��t�iH����t�xH���H���H�H��H�8�H��[]A\A]A^A_��H�t$
�D$mH�F���I���H���ATI��U��SH���H�;�� u$H��H��H�{��[M���H��]A\����DH�sH�{��fD@��t:@��uH�����t
�����t!��t
H���@H�����ff.���H��H�
H������SI�PHH)�L���H��H���1�[�ff.�f�UH��AWAVAUATSH��HL�GdH�%(H�E�1�E�p E���vA�@I���E�A9@$��I�|$L�E��L�E��xH�E��=�E�H���H�H��H��H��H���H)�H��H9�tH��H��$�H9�u�%�t	H)�H�L��E�H�\$H����2��I�p1�H��1��L�I��M��x)H��A�~A��L�I�PL�Hc�H��L�Ic�I��H��H9�u�L�κH��L�E�H�
\�L�M��M�d$L�M�L�E�I�$ �@I��E��~UA�F�I��L��E1�H��H�DH�E�DM�/H�U�L�M�I��L�E�M�L���L��L�E�L�M�I�M�w�L9}�uʋE������E�M�X1�I�������L���f�I�@(H�xH��L� L�`L9���M�4;M��x�M��1�fDI9��I�D5L��H��H��H��H�H+
H����I�@(L��1�L�,xH�BI�EI�@L�48f�H9��H�H��H��H��L�<L��I+H����I�GH��I�EL9��]���A�@ H�E�dH3%(�EH�e�[A\A]A^A_]�I�x(Hc�L�E�H���L�E�I�@(A�X$�S���fD~H�p�
���DH��DH9���H�M��H��H��H��H�L+*M������~�I��H���D~H�H�
���DH��DH9���H�L��H��I��I��I�I+7H������~�H��H���DM�d$����U������E�M�HI�P(I�x��H�4�1��I�H�BH�H�LBH��H9�u�A�@ ���E1��������f���AWM��AVI��Hc�AUATI��UH��SH��H�t$�H��E��~.A��E1��@I��JcT�L��H��H�T�I�UM9�u�H�t$L��L)��H��L��H���H��1�[]A\A]A^A_���SH��H��t
�
�H��[�ff.�@PXH�5H��H�H�81��f���H� tH�G�P����f.���H� tH�GHc@H�D�P������H��tvSH� H��t~H�GH�@H��H���tJH�1����u:H�����t1H��у���t$��t�uH�����tH��у���~��H�[�f��þH��s�[��������H���H��H������H����SH� H����H�GH�PH�:���H�H�@H�H�0�� tNH�WH)����u:H�����t1H��у���t$��t�uH�����tH��у���~0��H�[ÐH��������f.��[þH��s�[��������H���H��H������H�z t��H��H�RH��L��3Hcr���P����AWAVAUI��ATE1�US��H����u
I�������I�} ��M�}A�Ic�M�mH��A;_}aDI�WHc�H�4�H���tgI�WL��H��H)��E��t�uH�����tH��у���fI��s`H��H�����A9_�H��H��[]A\A]A^A_�f.��H����̐I�E��H��������DE��,���@��H�����������f���1�����DH�t H�GH��tH� u�fDH�xu�PH�H�5H�81����SH�����H�C[�@<H��?H��?���ff.�@AUA��ATUH��H��SH��H���=0�H���b���H���H��I����xt9H�EL9`H��E��tH�E���H��L��[]A\A]�f�H���H�����u�@��u�H�����t�H�E�ƒ���t��t�H�EH�xHL9�t��u^���uUH���=uFH�EL�`H�e����I9��k���H���=�X���I�t$H�=1���@���H��H���|�H���H�5H�PH�H�81���AWI��AVI��H��AUATUH��SH����I����H�5H���H���I��H����H����A�}���H��H���M��L��L��L��H����H�5H���H�����H�E�P<���H�t$H���t�iH����t�xH����|$�*H�Eth�H�5H�����tTH��H��[]A\A]A^A_�D�H��H���L��L��H��M��L������H�5H�����u�H�����t�H��Ѓ���
�H��r�f�@������H������r���H�E�������`���%H	�H��P����H�t$�D$mH�F���D�I���o���L������p���H��H����p����H�������SH��H������H��H�5H��H�H�81��fD��H�tUH�GH��tLH�0�� t!H�HH��t8H�pH��H���y���f�H��H�HH����H���Z���f.��ff.���SH���c���H���H�{H�7�� u\H��H����H�����u:H�����t1H���t$��t�uH�����tH���~ ��H�[��H�wH��fD�H��s�[���H9��sATI��USA��uH�����t
�����t[1�]A\�@H��H�����H�����H�H���u
H���������t
H��%L9�u�H�CH�M�@<9A<u�H�MH��� �H����H��H�sH��� ��H����H9��i���L�eI��A��A����H��������A9��:���H�MH�H�ǁ� ��H����H��H�CH�pH� tH�pH����H�y������[�]A\�@H�u������������I�������������f.�H�F�"����H�I���H�Q�a���H�y�z���H������ ���H���H�A�����UH��SH�����H�}H�EH�7�X<�� u,H��H�����H��H���H��[H��]�H�wH���fD��H�����H��H�D�f���UH��SH���H��H���S���H�}H��H�5��H��H��[]�fD��UH��SH���H��H������H�}H��H�5���H��H��[]�fD��UH��AWAVAUI���ATSH��HdH�%(H�E�1���H�5H���L��I���L��H�E����L��L���I�}I�EH�7�@<I��A�� �3H��L�wH����A��H����A�>(��A�~?L�
��@I�NM��L��H)�A�҃�i���XA�����LH��A	�L9�u�D�1�A��)�HL�qD��H�����L�]�L�ڨt�E�mI�S�t�iH���t�xH����}���D������tAA���E�-I�CA��t�E�mI�CA��t�iH��A��t�xH���L��L����H�5L���H�E��x�6�L��H�5��L��H���H�}��L��1�H���L�I��A�� ��I��H�pA��N�<H�}�I�W�L���H��I)�I�WH��H���H)�H���H��H9�tH��H��$�H9�u���	H�T$H��H���H��H�U�L���I�4$�� �*I�t$L)�L���H�M�H��L��L��E1���H�u�L��L���L��L���A��u0I�����t'I�$�Ѓ������H���}fDH�u�dH34%(L���eH�e�[A\A]A^A_]�H��~A��-t<A��)�H��L�qH��~�y(u
�y?�T���D��L�]�����H��H���A�҃�i��w�A����t���H��A!�H��u��F���fDL�wH�_����H���������H�pL�xI��4����H����������H�M�H��L��L��E1����H�5L������f�L��L��L�]��L�]������L�]�A��:tgM����H��L�wA��H������H)�H�L����A������I������r���I�E�������`���%H	�I�$�O���H�T��:)u�L�]�H��H�M�H�U��H�H�E��H��H�M�L�]�L�E�H�U�H�H�jL�qL��1�L��L�]�L��H�}��E�XZ���U�H�u�L�]���H�0u!D������L�]����L�wH�_A�����I�}I�EH�7�@<I��A�� �����AUH��(��ATUH��SH��H=���H������H��H��w:H�l$
��H�1��H����H��H���1�H��[]A\A]�L�l$
H��I��L���H��L��Hc��I�$H��t�H9�u!1�H��[]A\A]���I�$1���ZH�5H������������ZH�5H���������d���ff.�@AWI��1�AVAUI��ATI��USH��H��XL�$�A�|$H����M�eL��H���H�D$=L�|$@H�D$H�D$>H�D$ H�D$H�D$H�D$f�L9��L��H��L�������H�t$@�����>��H�~H�|$@��D$=<\��H9��iH�FH�D$@�N�QЈL$=��H�GL���Ic�L�>���H�޸H�T$H)�H��HG���L$=H����H�D$@H��H�D$@�I9���L�$H�|$@M��H��L��H���>����KfDL�|$@L9������f��D$I�u���@H����H����3f.�H9��w�~{��L�~L9���H�T$�H���H�|$H��H�$L��H��H��������L�|$@�^���fDI�}�ED$�D$H�t$ �H��L$?�D$>\�L�|$@� ���H�t$�H����	���f�Lc�H��L���I�EL|$@L�|$@H��t/I9�����H�<$�Z�H�5��#f.�M�e����H�������H��XH��[]A\A]A^A_�DL������4���I�E�6���H�<$�Z�H�5��@H�$H�|$@H��L�t$@�
���D$=<��cH�T$@L��H��L)��L�|$@�����L�vL�t$@L9�w�I��L9�t
A�>���u�L�d$(L�d$E1�DH��L��L��L)��H�T$HH����H����H�$I�H��L��H���
�������L9�w�I��L9�t
A�>���u�A��f.�M�eL���m���@H�<$�Z�H�5�����L�d$(E��t}L�t$@L9�tM�~L�|$@A�>}�����H�<$�Z�H�5��C���f.�H�<$�ZH�5�������H�<$�ZH�5���H�<$�ZH�5���f�AWAVI��AUI��ATI��UD��SH��H��XL�$H�D$(�H�D$����H�������H��ƒ����q���h��}H�{�ZL�������L�$H�L$(L��L��K�t5�m���H�D$ H���L�|$(M���M9���@������� L;|$�m����L��H�߃��H�L�d$ ���I�$�� ��H��I�D$��H�D$H�T$H����t$L� �H��H���_H�M��L��H��t$��L�\$0A�ą���H��L�\$�L�\$Ic�H�<$L��1�A������H�C�fD��� L9d$����L��H�߉T$�@���T$uH�|$(M��t
H�M�������H����fDI�D$H�D$I�D$H�D$�����H�T$H�t$L��H��D��$�L��$�L�\$H��L�\$��A������H�kL��L��L���H���H��H�C�uH�����unH�D$ H�D$0H�D$ H��XD��[]A\A]A^A_�D��� �T$@��tL��H����T$�	���D�H��H��I����T$����@H��H�����u�H���`H��`�s���H�E��`H��`�b���H��H����R����L��H�߉T$��T$�y����H�<$�ZH�5A����������H�<$�ZH�5A���������H�����L�\$0����A���������H���H�H�5H�81��H�H�5H�81��ff.��AWAVA��AUE��ATM��UH��SH��H��H��(H�t$�I��A�� ��H�t$H��� tlH�VH�vAUL��I��E��ATH�����ZY��u(H�����tH��ʃ���r�H��sg�H�T$H�T$H�T$H��([]A\A]A^A_�f�H��H������I9�H�$�e���H�|$�H�$=u>I���H����H�T$��u�H�����t�H��փ����|�����H	�H��k����ZH�5H���������\���ff.�f���H� H��tH��t
���1��P�c���H���&�H�@H�@H�@ H��ÐAWAVAUATUSH��H�$H��L�7L�NH�D$L��$�L�H��I9�u�I��L9�r0��Eiɡ A�@D���I��L�\�M9���E�M��M)�A��A���v�A���v�A���w Eiɡ A�@A�A�@Eiɡ D��A��A���w�Eiɡ A�@A�A�@Eiɡ D�Diȡ A�@D��]���H�,2L�4
L9���H�T$I��H��D�?I���Bf��E��=�v=�wHi�� �M���Ld�K�,,L9���E:<$u�L��L��H�����u�L��H+D$�jD=�w!i�� �M��Mi�� �����=�w�i�� �U�M�iС �E�i�� ��f���H�����H��[]A\A]A^A_�f�ATUSH��H�_ L�gH�t$H����H�|$@��tw@���|��������H����@��ttH��4�������u[H�|$�H��H���H�{L��H��H�T���~nH��[]A\�f�H�����u/@��tA�H��[]A\���u+�H�D$�������t���t����H��[]A\���H�H��H�5H�81��f���UH��SH������H�} H�Ut]��x?9B~:H�RHcظH�<�x H������H�UH��H��HB(H�@H�DH��[]É�H�H�5H�81��������UH��SH���N���H�} H�Ut\��x>9B~9H�RHcظH�<�xH���o��H�UH��H��HB(H�H�DH��[]É�H�H�5H�81�����f���UH��SH������H�} H�U�~��x`9B~[Hc�H�BH�<�x8H������H�UH��H��HB(H�pH�8H��[]H�t6H�|?�DH����[]���H�H�5H�81���\��ff.����1�L�
���D�H��A�G�D)�uH9�u�1��ff.��������AWAVAUATUSH��H9�IL��H��I��tNH��~qH���A�@����H����H��H��H��L���H��uef�H�������H��L���������H��H��[]A\A]A^A_�H��1�[]A\A]A^A_���7H��L���H��t�H��L)�[]A\A]A^A_�H�t$H�<$�H�<$H�t$H9�t|H��H��L��[]A\A]A^A_�S����utD�/H�����H)��]���H��H�L�H��L�tJ�f�H��I9�����D:mu�H�uH��L�����u�H���U���f�H��H��L��[]A\A]A^A_�G������b���D�/H�����H)����H��H�L�H��L�t��@H��L9������D:mu�H�uH��L�����u��{���D�����ntA~��stj��uuM������eu3�
���f��� � �fD��i�����1���v ��D����fDH�����ff.����UH��SH��H������t
1�H��[]�@�H��H������uݸ������ff.���USH��H��(H�t$H9�tu�H�D$H�kH�PH�pH��H�SH�P H�S �����H�D$H�H�A ��tGHcuH�}(9u$|RH��H�q(H���H�D$�E H�D$H�D$H��(H��[]�f.��E H��(H��[]����HcuH��H�E(H�D$�u$H�H�����������@��uH�����tH��ƒ���t��@H��f���S�H��H��tH���H��[���AWAVAUI��ATI��UH��SL�H���H���
H�ètLL�pL�h�H�@ L���I�FL� I�FH�(A�F H��H��[]A\A]A^A_�I��I����L�sL�k�H�C L���I�FL� I�FH�(A�F M��t�H��Ѓ����H��r�A���}���I������p���I�E�������^���%H	�H��N����H��ƒ����\�����@�S���H�H�8�����L�pL�hH��H�@ L���I�FL� I�FH�(A�F ������I��I���,���ff.����AV�	E1�f�AU�ATI��USH��dH�%(H��$�1�H�GH�|$P)D$@H�D$H�$1��H�fD�L�����I��H�$L9hH��L���!��I�D$H�$I�D$H�0�� ��H�XH�pH�l$@H�L$H�L��I��H����H�D$H����H�L�
H�$�J<H��� uyH��H�p��H��H��H�M��L�t$(AV�ZY��uyH�D$H�D$H�D$H�$H��$�dH3%(u3H�İ[]A\A]A^�f�H��H�X���D���H�pH�P��H�H��H�5H�81��Hc�L��H��1��I�T$H��� uH����H��L��H��H������H�r��ff.���ATA��UH��SH��1��(��E��tSH��H��H��~=�xt7H�M�� uYH����H9�}"H��H��~VH�H�TH��H���H)�H��H��[]A\�H�U�� uH����H)��H�U��f�H�MH9�}�H�mH���H�T
L�@hH�tH��H��A���D��AWAVI��AUATUH��SH��H���L$D�D$dH�%(H��$�1�H��� �H��L�n��L9��M���H��H���I��H�EH�D$L9��U�I��H������[I�GH�D$H�D�D$H���� E��uH���#H��H����I�H���H�sH�CJ�6H��H�M��L��jL�L$�^_I��L9d$��H�} ��L���M���+I�����L��������H���TI������G�D$���I�GI�o L���@ �M��I��M����I��Ѓ����+@����H�������H�E��������%H	�I��f�H�sH��J�6����@H����������H��������������@����f�f�H�D$ A�)D$ )D$0H�D$�c���DL�nH�F���H�D$ H9D$��I����N�I������H��$�dH3<%(L����H�ĸ[]A\A]A^A_ÐH�}�L�e�b���fDH�m �R���fDH�E ���fDH�s�����H����I������S���I��ƒ����B�����I��7���fDH�H�8���L�t$H�xI��L���1�L��A���E�����L$M��A������I�GI�o L���@ �M����������T$����I�GI�o L���@ �����H����������@H�|$1���o����H���I�GM��u�M��I��t>I��Ѓ�������u(H�����tH�������t%H	�I��I�GI�o L���@ �����@H���I�G�f.�H���I�G�����I��ƒ���~s��I����1�H�|$P�JIc��H�\$@f�H��)D$@�H�EH��� uSH��H�xH�΃�H��H������@�H���9�������@�H���*����y�����H�pH�x���A�����AUI��ATUSH��H�>H���}I��H�����H��I�$H��tx(H��H���H��H��H��H��L��[1�]A\A]�H���H�Ǩu!�H�H�y�H��H��[]A\A]������H�������ff.���H��1�H�t$H�t$�7���H�ƸH��xH�|$�H�DH���fD��U1�H��H�SH��H��L�D$H���1҃�tSH��H������H��x`�H��H���H��u
H��H��[]����t�H���H����f.�H�T$��t6H�H��H���x���H��y����H��H��[]�f.�H���H���]�����SH��H��1����H��t H��1�1�H���[H��?H�Ѓ��D��1�[�f.���UH��SH����uH��H�����t
�����t���H��[]��H��1�1�H���H�ƸH��x�H���H��H�D[]����H��t6H�~ tGH�V��J9�~$��x+H�BHc��H�<���HD�ø�f.�υ����P�R��f���H����SH�~ H����H�V��J9�~n��xoH�BHc�H�4��H���tTH�BH��H�{H)���u<H�����t4H��ʃ���~L��u"H�����tH��փ���t��H	�H�[�υ�������f.��H��s�[��~��ff.���UH��AWAVI��AUATSH��(dH�%(H�E�1��H���I�^ H��H����H����I�FH��HcPI��H��H�BH��H���H)�H��H9�tH��H��$�H9�u�%�t	H)�H�L�L�l$1�H�M�I���L���H�{L��H�5͹�����H�5�H���H�M�H��I��H���E�����L��I��1�H�5��cH�ǃ��L��H���A9�tqH�5�L���I�uH����I�UL����H�5L��I���L�����H��u��H�5L����A9�u��H�5L����fDH��L��H�=1��I��H�M�dH3%(L��uZH�e�[A\A]A^A_]É�H�5L��1���P����L��1�H�E��H�M�H�=H��1�H���I������H��H�����ff.�@��AUATUSH��H�z �|I��1�H�Ӊ�L�D$L��H�I���H�|$��H�<$@����@����H������������t�����H�$L���H��H�C H����H�xH�4$�H����H�$H��� ��H����H�C H�KH�H��H�x�����H�މ��H��[]A\A]�����yo�1�H�����L���H���H��[]A\A]�fD������t�H��t�@���$���H��4�����f.�H�P�T����H�<$�H�މ����f��H�H�$H�5H�81��f.���SH����~1�H�L$H����t#�H��H��tH���H��H��[�@�H��H��t�H�t$H����H�މ��H����ff.���H��1��f���SH���H�{ ��H������uAH�����t8H��у���t+��t&�u"H�����tH��у���~u��H��H�S��u:H�����t1H��у���t$��t�uH�����tH��у���~��H�[�1�1���d���f��H��s�[��H��r��{�������ff.���H���H��H������H��tfH� teH�GH�HH�9�tQ�P�B�Hc�H�<�u*��~&��Hc�H����H�:�A������H��A��u�tH�����f���P�$��@��H���H��H������AU�	f�ATUSH��H�|$H�|$0H�l$dH�%(H��$�1�)D$ H�D$�H�1�f�H���H�|$H�7�� unH��L�g��I�4L�l$ �H�L$M��H��H��L�����H�l$H�T$�H��t:H��$�dH3%(H��u8H�Ę[]A\A]�fDL�gH�w�fDH�|$L��1��I���H����ff.�@��H�H�8�}�ff.�f���AU�	f�E1�ATE1�A��UH��SH��H��xdH�%(H�D$h1�H�|$I��)$�H�1�L��f�H�������uH�T$hdH3%(H��u!H��x[]A\A]�H��L��D��苾��H����ff.���U��SH��H���H����H��H��[]�f���AW�	f�A��AVAUATUSH��H��dH�%(H��$�1�H�|$@)D$0H�D$ �H�1�f��I��H��� �����„���D��E1�E1�1���у��L$H�L$(H�L$H�L$0H�$��H����H9��H�CH�<�H�|$(��|$H��tI9�tH�|$(�=�^L��H�|$H�T$�H�D$(H�T$H�0�� ��H��H�x��L�$H�H�L$ ����H����H�D$ H��tH9�t	H����H��H�t$(M��u4H���I��H�A��Ic�� �&���H;S}0H�C �+����L�����fDH�xH�p�o���H��tH��L���D��L���H��$�dH3%(u~H�Ĩ[]A\A]A^A_��H�{���a���H�H�$H�5H�81��H�HH�UH�5H�H�81��H�H�5H�81���H�H�5H�81��ff.�@��AWAVAUA��ATI��UH��SH��H��xdH�%(H�D$h1�I���H�|$H��M��I�ƹ	1�E���H�f�1�L��)$H��f�L��jj���ZY��u"H�T$hdH3%(L��u+H��x[]A\A]A^A_�H��M��D��L��H������H�������ATA��UH��SH���D��H��H��H��[]A\�D��AWAVA��AUI��ATA��UH��SH��xdH�%(H�D$h1��H�|$�	f�H��1�)$�H�1�f�H��tqI��E��M��D��L��H��H���/����uk��u&H�����tH��ƒ���tH
H��H�t$hdH34%(H��uJH��x[]A\A]A^A_�fD1�1��H���f.�L��D��H���͹��H�����ff.���USH��H��H�=H��tWH�WH��� tkH�BH��� unH��H����H9�u0H�/H��������H�������}9�tAf�1�H���H�H��H��H��[]�f�H�H������ t�H�K�H��� tPH�SH�sH�-H�}H� uDH�����u��DH������t�����H����T����H��H�s���H��f.���AWAVAUATUSH��H��8H�|$�H��H���A��H��H��� ��H��L�p��L�L�l$,L�=L9�vBDH��L��H��L������tZ��	��twIc�L�>���HcD$,I�I9�r�H�|$�H�D$E����H�D$H��8[]A\A]A^A_��L��H��H���H�I��H�D$L�pH�X�M���fDH�D$H�0�� �H��
��>1��I��H�D$E�����L��H���H�D$H�8L�`H�|$�� t	H�D$L�`H�D$H�H�pH�L$�� t	H�D$H�pL��L��H)��H�D$H�H�L$�� �HH��L��H)�I�L9��~L�=H��L��H��L���������|HcD$,L�M0IƍA���tw/Ic�L�>��fD�L$L��H��\A��L�M0�L$H�I�L��H���A��H�I�I9�r�H�D$H�H�T$�� ��H��H�\$L��H)�H���H�ب�A���H������5���H��Ѓ����H�D$�����H���������H������������%H	�H�D$H����L��H��\A��H��nH�I�L��U0H�I��<���DL��H��\A��H��tH�I�L��U0H�I�����DL��H��\A��H�� H�I�L��U0H�I�����DL��H��\A��H��rH�I�L��U0H�I����DL��H��\A��H��fH�I�L��U0H�I��|���DL��H��\A��H��vH�I�L��U0H�I��L���DH�D$H�@���f�H�t$H�|$��/���@H�D$H�@H�D$H�4����H�D$H�@����f��H�|$H����^���f�H��H��L����H��������1��H��A�A�H�PH9�u�I�I�����H����������ff.����SH�G H��t5H��t[�f.�H��H��1��H���H���H�C [��H������H9���@��uH�����t
�����
t
1���ATUH��SH��H�H�v�H��ttH���\���H��I���Q���L��H���v���H��tQH�mL�cHcEA;D$u>H��I�t$H�}H�����u!I�t$H�}H�����u��D1�[]A\�f���f.���USH��H��H��H���H��H�����H�����H��H���H�[H��Hcs�HcsH�{H��H���H��H���HcsH�{H��H���H��H���H���H��H�D[]�f���H��H����;���H��H���ff.�@AWAVAUI��ATUSH��HH��� ��H����H�D$H�|$��H�|$�1��H�|$H�D$(��L��1�E1�E1��1�H�D$H��H�D$8H�D$8H�D$f.�H�
H���H�D$0H�D$0H����H�|$0��xH���=M���$L9��aH�|$0�!��H�D$0M��tE���H�|$��]H�|$(H�t$0Lc���t.�L9|$��L��L���H��H�D$8��+���@����H�t$0H�|$(�L��L���H�D$8H�|$(H�5���H�|$8����H�|$�H�|$8�H�|$8H����x��M����L9��qH�|$8��<���H���H�D$0���f.�I�������H����������H�D$0�u H�����tH��ƒ���t��fA����@I���u���H�|$8�H������I���H�|$8���tA��B���DH�D$H���*H9��&���H�KH�P�r@H�GH�D$H�|$�`����H�=�H�t$8�H�D$8H�H��H��H[]A\A]A^A_�DM����H�|$(L���H�t$(�H�H��H��H[]A\A]A^A_�f.�1�L���H�
�H�H��H���H��u��H��腮��H���1�H����H�D$H��t3H9��#������f�H�\$���H�D$H��tI���5���H�\$����I������H�I�T$H�5H�81��H�D$I�T$H�HH�H�5H�81��H�KI�T$��ff.�@��SH�H��� t8H����H������t1�H���H���H��uH��[�]���DH�~����fDH��[�?���ff.�@��SH���#���H�CH�[�@<��������E����� ��E�����H���H��H�H�D����AW�	f�E1�AVAUATUH��SH��xdH�%(H�D$h1�H�|$)$�H�fD�H9�taH��H���H���w���H�CH�0�� thL�hL�`H��I���H��A���jL��M��jH��E��L��H������ZY��u9H�T$hdH3%(H��u7H��x[]A\A]A^A_��H��L�h��I���H��L��L��L���ϸ���f.���AW�	f�E1�AVAUA��ATUSH��dH�%(H��$�1�H�|$0)D$ �H�A�E�fD�����H�.I��H��@��uH�����t�E�����d@A��tJI�~@����E1�H�����A��A����I�~��I�H�|$H�D$��DE1�H�|$H�l$�H�l$ H�t$E1�E1�H��D��H�������������H��H��$�dH3%(��H�Ę[]A\A]A^A_�@I�.��A���M���I�~����߀�N� �H�|$A�� H�D$I�H�D$�H�L$H��H���A���H�|$H��� ��H����H�l$ jE��H��jI�����ZY�����,���@A����H���޲��H���A��H�EH�0�� ��L�hL�pH��H�l$ �jL��H��jI��E��H��L��I���-��^_������L��L��L���H��D��H��H�D$�2���H���f.�H�W�0����H��H�=1��I�H�|$H�D$��*����H��L�h��I���E���DH�=1�������D���H�|$H��D��蓨��H����fD��H�
H���@��AWI��AVAUATE1�USH��XH�|$8H�t$ H�T$H�L$0�L��H��H�$��{H�D$(�wH�D$8H��� �0H��L�p��H�D$LL�1�H�D$L9��9M��f.�E�����D$LA��������Hƃ����LcL$LO�,��\��L9���L��L)�H����H�$L��H���E�����D$LA�E�������H��ȃ����HcT$L�A�M�|��E��H�=Hc�H�>��@1�H�L$M��;A}YH�QH�H�4�H����VH�QH��H�D$ H�8H)�H��H�|$�� t	H�D$ H�@H�H�L$(H��M���DI9�����H����I9���H��XH��[]A\A]A^A_�L9�v#E���z�D$LA�?<�����L��H�$L��H��L)�M����fDH�$L��H��M����q����H�D$0�L$M��H���Z���H�x����I����L$�A�����DH�t$�VH�N�B�Hc�H�<�u(��~$��Hc�H�ѐ��H�:�@�ƅ���H��@��u������M������H�|$ H�D$H�H�@H��� �H��H�w��H)����H�D$H�@H�H�D$ H�0H�t$�� ��H�p�m���f�H�$H�T$H��L�������k���H�$L��H���H�I��J���f.�M���8����H�$H�T$H��L���������~���H�$H��L���Lc�O�|�M���DH��H�T$�H�T$H������fDH�D$ H�p���f�H�t$ H�NH�vH��H�L$H)����Lct$LM�L9��,H��M��D��L�<$I���;D�D$LA�E�������Hƃ�>t6HcT$L�����I�M9�����u�H�T$L��L��L�����>u�L��A��H��L9���H�D$8L��L)�H�8H��H�|$�� t	H�D$8H�@L��H�|$8H)��H�|$0I����H�D$0L��H�x�H����H�D$0H�L$L��L��H�x�����Lct$LO�|5����L��L��L���Hc�I�M9��!���H�H�5H�81��H�$H�T$H��L�����<���v���f�H�D$8L�pH�X����L)�H�$L��H��H�������H�l$8����H�<$E1����A���r���H�L��H�5H�81�����UH�=SH��H�H�0�H�H�=H��H�=�H�='����H�=����H�����H�5���H�=�1�H�5��H�=�1�H�5����H�=�1�H�5i���H�=�1�H�5D�H�=�H�a���H�5z���H�=�H����H�5 ���H�=�H���H�5���H�=�H�-H�=H�u�H�H�5���H��H��H�;H������H�5�H�;�H���H�5�H�;�H���H�5�H�;�����H�J�H�5�H�;�����H���H�5�H�;�H�$���H�5�H�;�����H���H�5�H�;�H���H�5�H�;1�H�ְ��H�5�H�;�H�{���H�5�H�;�H�`���H�5�H�;H��H�5�H�;�H�H�5�H�;1�H�H�5�H�;�����H���H�5�H�;1�H�����H�5�H�;1�H�����H�5�H�;1�H����H�5�H�;1�H�����H�5�H�;1�H�_�H�5�H�;1�H�H�5�H�;1�H�����H�5�H�;1�H�ׯ��H�5�H�;1�H����H�5�H�;�H�5�H�;�H�5�H�;�	H�5�H�;�!H�5�H�;�AH�5�H�=�H�uH�=�H�H�5%���H��H��H���?��g�ƒ����yH���<��H�xH�5�H�;�H�x��H�5�H�;1�H���H�5�H�;1�H�ȿ��H�5�H�;1�H�����H�5�H�;1�H�h���H�5�H�;�H�
��H�5�H�;�H�r��H�5�H�;�H����H�5�H�;1�H����H�5�H�;�����H����H�5�H�;1�H�ܥ��H�5�H�;�����H�����H�5�H�;1�H�H�5�H�;1�H�H�5�H�;1�H�y��H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H���H�5�H�;�H���H�5�H�;H���[H�f�H�5]�f�H���������H��t.H������H�H�8����fDH�H�8����H�H�8����H�H�8����H�H�8�~����H�H�8�n���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignincompatible encoding regexp match (%s regexp with %s string)variable $KCODE is no longer effective; ignoredvariable $KCODE is no longer effectivevariable $= is no longer effective; ignoredvariable $= is no longer effectivetoo short escaped multibyte characterescaped non ASCII character in UTF-8 regexpregexp match /.../n against to %s stringUTF-8 character in non UTF-8 regexpnon ASCII character in UTF-8 regexpcan't make regexp with dummy encodingincompatible character encoding/.../n has a non escaped non ASCII character in non ASCII-8BIT scriptundefined group name reference: %sundefined group name reference: % liencoding mismatch in dynamic regexp : %s and %sincompatible encodings: %s and %sASCII incompatible encoding: %sencoding option is ignored - %sinvalid group name reference format%stoo short escape sequenceinvalid hex escapeduplicate meta escapetoo short meta escapetoo short control escapeduplicate control escapeunexpected escape sequenceinvalid escape codeinvalid multibyte escape\x%02X: /to_regexpRegexpuninitialized Matchuninitialized Regexpinvalid byte sequence in %s/n%s: %li(?:)invalid Unicode rangeinvalid multibyte characterinvalid Unicode listinvalid Unicode escapecan't modify literal regexpalready initialized regexpindex %d out of matchesregexp preprocess failed: %s11#<%li:%p>#<%li: %li>#<>%dnil 01no arguments given(?!)|flags ignoredRegexpError$~$&$`$'$+$=$KCODE$-Kcompilequoteescapeunionlast_matchtry_convertinitializeinitialize_copyhasheql?===~===~matchto_sinspectsourcecasefold?optionsencodingfixed_encoding?namesnamed_capturesIGNORECASEEXTENDEDMULTILINEFIXEDENCODINGNOENCODINGMatchDatanewregexpsizelengthoffsetbeginendto_a[]capturesvalues_atpre_matchpost_matchstring	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�����������������������������������������������������������������������������������������������������������������������������H�%H�%GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�06D5HX�B�J�B �B(�A0�A8�G��8A0A(B BBB�BE�|�<A�G�D �� HW HT8HLDB�B�E �B(�A0�A8�DP�
8A0A(B BBBA,��A�C
D��L����
AL��B�B�B �E(�E0�D8�M�W
8A0A(B BBBFH�B�E�H �E(�A0�C8�DP�
8A0A(B BBBH(dJB�D�C �b
IBJ�E��#E�],�A�C
M������
A$zRx�������,D@�F�E�H �B(�D0�D8�DPb8C0A(B BBB�!E�W�AAK�Q�Z$��K�kJ�F�L
AHI0(�O�
BP�P�F
AL
A\HIt/jH�
B�B�B �E(�D0�A8�F@�
8D0A(B BBBK���@h!E�M8,XB�E�A �G(�G0W
(D ABBJHhB�E�H �B(�A0�D8�DP�
8D0A(B BBBF�*A��e��E�r
I\H�O�D�A �Z
CBE
FBEp���P ���(LZA�D�D z
ADHxHI$�:E�D�D gDA$�:E�D�D gDA,��E�C
F���O��
DLB�I�A �D(�D@U
(A ABBAz
(A ABBHL`�B�G�B �E(�D0�A8�G��
8D0A(B BBBFL�B�B�E �E(�D0�D8�G��
8D0A(B BBBFTCB�B�E �E(�D0�D8�J`nhKpIhA`@
8A0A(B BBBCX-hl/HfL�B�B�B �B(�A0�A8�G� I� �8A0A(B BBBP�B�A�A �D0�
 AABCX
 AABDy
 AABA((	E�D�D P
AAA(T	~E�D�D O
AAA4�	�E�D�D M
AATD
KAE�	4�		��	�F�B�B �B(�A0�A8�DPx
8A0A(B BBBDD
8C0A(B BBBHW
8D0A(B BBBD`
8G0A(B BBBHd
8G0A(B BBBE�
�(�
EE�D�G Q
AAE4�
�E�A�G@�
DAKK
DAH	', E�ZHH�F�B�B �E(�D0�D8�G@M
8D0A(B BBBHP��F�N�G �D(�A0�G���M�F�A�q
0A(A BBBJ,��F�D�D �[
ABD\PF�B�E �B(�A0�D8�J���L�K�A��
8A0A(B BBBBxH��B�E�A �A(�D0}
(J CBBEb
(A ABBH�:H q4��E�M�D0A
DADP
DAK(
FE�c
PM0H
xE�D�D q
AAHhFA|
^Y(�
�O��
DP�P�L
A,�
PE�C
D��L����
A�
L�F�B�A �A(�D@�
(A ABBHk
(A ABBG TrE�D v
DEx ��E��
D\
D�HI�|w�HI8�F�K�A �A(�G��
(A ABBG48H�F�N�G �D(�G�J
(A ABBA$�'E�C�G IIAL��F�N�B �B(�A0�A8�J��
8A0A(B BBBIX��F�B�B �E(�D0�D8�G�K�B�F�A�[
8A0A(B BBBA(X+F�D�D �UABH�F�B�E �E(�D0�D8�D��
8A0A(B BBBG(�E�A�G {
DACH��F�B�B �B(�A0�A8�Gp�
8A0A(B BBBH HHE�P
Kb
A,l�r�A�D ��ABJ���$��E�A�G �FA�!KNd�QB�B�B �E(�A0�A8�D��
8A0A(B BBBFs
8A0A(B BBBKDaE�y
JTd8E�P�HIX��F�N�B �B(�A0�D8�D�g�H�R�A�[
8A0A(B BBBHl�F�N�B �E(�A0�A8�G�

8A0A(B BBBE��H�I�A�U�H�U�A�dLx�F�E�B �B(�D0�A8�D��
8D0A(B BBBD(�E�H�D \
FON	!!3"I`#{�$��%��
BVg 6V���`5��t��/tJ�c�Bo����<��"��"P.0 ;P\b{P�b���p������4�S�De������������@}c��y}����J���
��E
/?
Q 
f?
�c
�@
#�c
�~�p
~Ej����1�!�1�^@^6vP`]vw������8�8�Y	@$	YE	)d	)�	I�	0�	I�	�	P/�	 H
&
�?
�
K
�i
��
��
��
��
��
��
��@�5T�!f�x� X�x�������1�*>�\5x�e�5���@�����
��
�(
u
�Z>
Y
7r
 ~
7�
z�
@:�
z�
��:�:P#S��_ @jP#�Q$�P#�Q$�N)�`$��N)T-<P)NT-s�.�`-C��.��.��.-��.
/&�./5/Y1{/�1�>2� 1�>2�2@2%�2@>3Y�2~e>3��3�@3���3�$4�`�$4�94942+6L+6s�6��6�%7�%7�807�&8K8n8�G8�G8�p8DP8 �p8:$:E�;d�;��<��<��A��A�A �A=�BXB�f�B��B��B��C��B���C�DD4�DO�Dq�D��D��E��E� H�EP H01HI1Hc�I{@H���I�rJ�Jr�rJ��J�J8uKP�J�[uK|�K��K��K�L�L9L9 LQ9LxAM�AM�cM�cM�NN-7NI7Ng�P��P��Q��Q��Q��Q
�R)�RG�Sc	m�S��X��X��X��XH��X�YY�&�Y@~ZX�Y�c~Z��Z��Z!��Z�_��ZQ
_*q_H_aYq_w�_��_��_��_��_�` �_�1�`T�cu�`��c�d�d�jj"/q"#$%!;@@EpJ�O�TY^�d�j\p�uF{u�0����������������H��7�9�;�D�G�I�x�K���a }	 � � � �! �' - X3 �9 �? E 1K =Q 9W 4] c 6i #o �u ?{ �� B� Z� U� � ��  � \� @� j� v� y� |� � �� �� �� �� �� �� �� �� �!�!�!�!�!�#!�)!�/!�5!�;!�A!�G!M!	S!Y!_!"e!+k!;q!Aw!P}![�!d�!n�!|�!��!��!��!��!��!��!��!��!��!��!��!��!��!��!�"
""2"F"

 &'(W",(m"z"�"�"�"�"�"�"�"�"�"�"##!#C#T#b#p#�#�#�#�#�#�#��#$)$7$L$X$n$}$�$�$�$�$�$�$�$�$�$�$%��%+%:%`�L%]%r%�%�%�%�%�%�%�%�%�%&&#&.&C&Q&s&z&�&�&�&�&�&�&�&�&�&
''/'<'G'f'�'�'�'�$�'�'�'�'(((�34)(04	3(@4�@(G(N(06�f(�6Ey(�(�(�(�(8	�( 8'�(p8��(�(�):�)�;�-)P)�<P_)k)y)�)�)�A�)�)�)�B:�)�)�)�)**�CF*Dx-*=*�D^P*�D�a*n*|*�*�*�*�*�*�*�*�*�J++�K|*+@LB+R+PM_+�j+pM�z+�+N'�+@N��+�+�P��+�Q+�+�Q�+�+�R�+�S�,",/,;,I,V,k,�,�,�_8�,�,d�, d��,�,
-- j*-<-L-o-�-�-�-�-�-�-..0.@.P.c.s.�.�.�.�.�..annobin_re.c.annobin_re.c_end.annobin_re.c.hot.annobin_re.c_end.hot.annobin_re.c.unlikely.annobin_re.c_end.unlikely.annobin_re.c.startup.annobin_re.c_end.startup.annobin_re.c.exit.annobin_re.c_end.exit.annobin_pair_byte_cmp.start.annobin_pair_byte_cmp.endpair_byte_cmp.annobin_rb_reg_fixed_encoding_p.start.annobin_rb_reg_fixed_encoding_p.endrb_reg_fixed_encoding_p.annobin_match_inspect_name_iter.start.annobin_match_inspect_name_iter.endmatch_inspect_name_iter.annobin_rb_memsearch_qs.start.annobin_rb_memsearch_qs.endrb_memsearch_qs.annobin_match_alloc.start.annobin_match_alloc.endmatch_alloc.annobin_reg_enc_error.start.annobin_reg_enc_error.endreg_enc_error.annobin_kcode_setter.start.annobin_kcode_setter.endkcode_setter.annobin_kcode_getter.start.annobin_kcode_getter.endkcode_getter.annobin_ignorecase_setter.start.annobin_ignorecase_setter.endignorecase_setter.annobin_ignorecase_getter.start.annobin_ignorecase_getter.endignorecase_getter.annobin_re_warn.start.annobin_re_warn.endre_warn.annobin_read_escaped_byte.start.annobin_read_escaped_byte.endread_escaped_byte.annobin_unescape_escaped_nonascii.start.annobin_unescape_escaped_nonascii.endunescape_escaped_nonascii.annobin_rb_reg_expr_str.start.annobin_rb_reg_expr_str.endrb_reg_expr_str.annobin_rb_enc_reg_error_desc.start.annobin_rb_enc_reg_error_desc.endrb_enc_reg_error_desc.annobin_rb_reg_error_desc.start.annobin_rb_reg_error_desc.endrb_reg_error_desc.annobin_reg_operand.start.annobin_reg_operand.endreg_operand.annobin_rb_reg_s_try_convert.start.annobin_rb_reg_s_try_convert.endrb_reg_s_try_convert.annobin_reg_names_iter.start.annobin_reg_names_iter.endreg_names_iter.annobin_update_char_offset.start.annobin_update_char_offset.endupdate_char_offsetupdate_char_offset.cold.9.annobin_reg_named_captures_iter.start.annobin_reg_named_captures_iter.endreg_named_captures_iter.annobin_match_setter.start.annobin_match_setter.endmatch_setter.annobin_match_check.part.0.start.annobin_match_check.part.0.endmatch_check.part.0.annobin_match_string.start.annobin_match_string.endmatch_string.annobin_match_size.start.annobin_match_size.endmatch_size.annobin_rb_reg_match_pre.start.annobin_rb_reg_match_pre.end.annobin_prematch_getter.start.annobin_prematch_getter.endprematch_getter.annobin_rb_reg_match_post.start.annobin_rb_reg_match_post.end.annobin_postmatch_getter.start.annobin_postmatch_getter.endpostmatch_getter.annobin_match_values_at.start.annobin_match_values_at.endmatch_values_atmatch_entry.annobin_match_array.start.annobin_match_array.endmatch_array.annobin_match_captures.start.annobin_match_captures.endmatch_captures.annobin_match_to_a.start.annobin_match_to_a.endmatch_to_a.annobin_rb_reg_check.start.annobin_rb_reg_check.endrb_reg_check.annobin_rb_reg_casefold_p.start.annobin_rb_reg_casefold_p.endrb_reg_casefold_p.annobin_rb_reg_prepare_enc.start.annobin_rb_reg_prepare_enc.endrb_reg_prepare_enc.annobin_rb_reg_desc.start.annobin_rb_reg_desc.endrb_reg_desc.annobin_rb_reg_raise.start.annobin_rb_reg_raise.endrb_reg_raise.annobin_rb_reg_inspect.start.annobin_rb_reg_inspect.endrb_reg_inspect.annobin_rb_reg_source.start.annobin_rb_reg_source.endrb_reg_source.annobin_rb_reg_equal.start.annobin_rb_reg_equal.endrb_reg_equal.annobin_reg_hash.start.annobin_reg_hash.end.annobin_rb_reg_hash.start.annobin_rb_reg_hash.endrb_reg_hash.annobin_rb_reg_named_captures.start.annobin_rb_reg_named_captures.endrb_reg_named_captures.annobin_rb_reg_names.start.annobin_rb_reg_names.endrb_reg_names.annobin_rb_reg_to_s.start.annobin_rb_reg_to_s.endrb_reg_to_sCSWTCH.933.annobin_append_utf8.start.annobin_append_utf8.endappend_utf8.annobin_rb_reg_preprocess.start.annobin_rb_reg_preprocess.endrb_reg_preprocess.annobin_rb_reg_initialize.start.annobin_rb_reg_initialize.endrb_reg_initialize.annobin_rb_reg_initialize_str.start.annobin_rb_reg_initialize_str.endrb_reg_initialize_str.annobin_match_names.start.annobin_match_names.endmatch_names.annobin_rb_reg_s_alloc.start.annobin_rb_reg_s_alloc.endrb_reg_s_alloc.annobin_rb_memsearch_qs_utf8.start.annobin_rb_memsearch_qs_utf8.endrb_memsearch_qs_utf8.annobin_match_backref_number.start.annobin_match_backref_number.endmatch_backref_number.annobin_match_end.start.annobin_match_end.endmatch_end.annobin_match_begin.start.annobin_match_begin.endmatch_begin.annobin_match_offset.start.annobin_match_offset.endmatch_offset.annobin_rb_memcicmp.start.annobin_rb_memcicmp.endcasetable.annobin_rb_memcmp.start.annobin_rb_memcmp.end.annobin_rb_memsearch.start.annobin_rb_memsearch.end.annobin_rb_char_to_option_kcode.start.annobin_rb_char_to_option_kcode.end.annobin_rb_reg_region_copy.start.annobin_rb_reg_region_copy.end.annobin_match_init_copy.start.annobin_match_init_copy.endmatch_init_copy.annobin_rb_reg_backref_number.start.annobin_rb_reg_backref_number.end.annobin_rb_match_busy.start.annobin_rb_match_busy.end.annobin_match_getter.start.annobin_match_getter.end.annobin_rb_backref_set_string.start.annobin_rb_backref_set_string.end.annobin_rb_reg_prepare_re.start.annobin_rb_reg_prepare_re.end.annobin_rb_reg_adjust_startpos.start.annobin_rb_reg_adjust_startpos.end.annobin_rb_reg_search0.start.annobin_rb_reg_search0.end.annobin_rb_reg_search.start.annobin_rb_reg_search.end.annobin_reg_match_pos.start.annobin_reg_match_pos.endreg_match_pos.annobin_rb_reg_match.start.annobin_rb_reg_match.end.annobin_rb_reg_match_m.start.annobin_rb_reg_match_m.endrb_reg_match_m.annobin_rb_reg_eqq.start.annobin_rb_reg_eqq.end.annobin_rb_reg_match2.start.annobin_rb_reg_match2.end.annobin_rb_reg_nth_defined.start.annobin_rb_reg_nth_defined.end.annobin_rb_reg_nth_match.start.annobin_rb_reg_nth_match.end.annobin_match_inspect.start.annobin_match_inspect.endmatch_inspect.annobin_match_entry.start.annobin_match_entry.end.annobin_match_aref.start.annobin_match_aref.endmatch_aref.annobin_rb_reg_s_last_match.start.annobin_rb_reg_s_last_match.endrb_reg_s_last_match.annobin_rb_reg_last_match.start.annobin_rb_reg_last_match.end.annobin_match_to_s.start.annobin_match_to_s.endmatch_to_s.annobin_last_match_getter.start.annobin_last_match_getter.endlast_match_getter.annobin_rb_reg_match_last.start.annobin_rb_reg_match_last.end.annobin_last_paren_match_getter.start.annobin_last_paren_match_getter.endlast_paren_match_getter.annobin_rb_reg_check_preprocess.start.annobin_rb_reg_check_preprocess.end.annobin_rb_reg_alloc.start.annobin_rb_reg_alloc.end.annobin_rb_reg_init_str.start.annobin_rb_reg_init_str.end.annobin_rb_reg_new_str.start.annobin_rb_reg_new_str.end.annobin_rb_reg_new_ary.start.annobin_rb_reg_new_ary.end.annobin_rb_enc_reg_new.start.annobin_rb_enc_reg_new.end.annobin_rb_reg_new.start.annobin_rb_reg_new.end.annobin_rb_reg_compile.start.annobin_rb_reg_compile.end.annobin_rb_reg_regcomp.start.annobin_rb_reg_regcomp.endreg_cache.annobin_rb_reg_quote.start.annobin_rb_reg_quote.end.annobin_match_regexp.start.annobin_match_regexp.endmatch_regexp.annobin_match_equal.start.annobin_match_equal.endmatch_equal.annobin_match_hash.start.annobin_match_hash.endmatch_hash.annobin_rb_reg_s_quote.start.annobin_rb_reg_s_quote.endrb_reg_s_quote.annobin_rb_reg_s_union.isra.8.start.annobin_rb_reg_s_union.isra.8.endrb_reg_s_union.isra.8.annobin_rb_reg_s_union_m.start.annobin_rb_reg_s_union_m.endrb_reg_s_union_m.annobin_rb_reg_options.start.annobin_rb_reg_options.end.annobin_rb_reg_options_m.start.annobin_rb_reg_options_m.endrb_reg_options_m.annobin_rb_reg_init_copy.start.annobin_rb_reg_init_copy.endrb_reg_init_copy.annobin_rb_reg_initialize_m.start.annobin_rb_reg_initialize_m.endrb_reg_initialize_m.annobin_rb_check_regexp_type.start.annobin_rb_check_regexp_type.end.annobin_rb_reg_regsub.start.annobin_rb_reg_regsub.end.annobin_Init_Regexp.start.annobin_Init_Regexp.end.LC0.LC1.LC2.LC3.LC4.LC5.LC7.LC14.LC13.LC11.LC6.LC10.LC12.LC9.LC8.LC16.LC15.LC17.LC18.LC19.LC20.LC22.LC23.LC25.LC24.LC26.LC27.LC28.LC29.LC30.LC31.LC33.LC32.LC35.LC34.LC36.LC37.LC40.LC41.LC39.LC38.LC42.LC43.LC44.LC45.LC46.LC49.LC53.LC52.LC50.LC47.LC51.LC48.LC54.LC55.LC57.LC56.LC59.LC58.LC61.LC60.LC63.LC62.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_newobj_ofruby_xcallocrb_enc_getrb_eEncCompatErrorrb_raiserb_warnstrlcpyruby_scan_hexruby_scan_octmemsetrb_enc_precise_mbclenrb_str_catruby_snprintf__stack_chk_failrb_str_coderange_scan_restartablerb_enc_unicode_prb_enc_ascgetrb_enc_mbclenrb_str_buf_cat_escaped_charrb_enc_dummy_prb_str_buf_new_cstrrb_default_internal_encodingrb_enc_associaterb_str_cat_cstrrb_eRegexpErrorrb_exc_new_strrb_default_external_encodingrb_str_to_strrb_check_string_typerb_sym_to_srb_check_convert_typerb_enc_str_newrb_ary_pushqsortrb_enc_strlenruby_xrealloc2rb_ary_new_caparb_ary_storerb_str_newrb_hash_asetrb_check_typerb_backref_setrb_eTypeErrorrb_reg_match_prerb_str_subseqrb_backref_getrb_reg_match_postrb_get_values_atrb_enc_str_coderangerb_ascii8bit_encodingrb_eArgErrorrb_str_buf_newrb_usascii_encodingrb_enc_copyrb_any_to_srb_enc_get_indexrb_memhashst_hash_uintst_hash_endrb_hash_newonig_foreach_namerb_ary_newrb_enc_from_encodingrb_str_encodeonigenc_get_left_adjust_char_headmemcpyrb_str_resizerb_ruby_verbose_ptrOnigDefaultSyntaxonig_newonig_freerb_uv_to_utf8rb_utf8_encodingrb_isspacemallocOnigDefaultCaseFoldFlagonig_reg_initonig_error_code_to_stronig_compilerb_fstringrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_error_frozen_objectrb_eSecurityErrorrb_string_value_cstronig_name_to_backref_numberrb_fix2intrb_sym2strrb_num2intrb_eIndexErrorrb_assoc_newrb_memcicmprb_memcmprb_memsearchmemmemmemchrrb_char_to_option_kcoderb_reg_region_copyonig_region_copyrb_gcrb_obj_init_copyrb_memerrorrb_reg_backref_numberrb_match_busyrb_backref_set_stringonig_region_resizerb_cMatchrb_reg_prepare_rerb_reg_adjust_startposonigenc_get_right_adjust_char_headrb_reg_search0onig_searchrb_safe_levelonig_region_freerb_str_new_frozenrb_reg_searchrb_str_offsetrb_str_lengthrb_reg_matchrb_str_sublenrb_scan_argsrb_block_given_prb_yieldrb_num2longrb_reg_eqqrb_reg_match2rb_lastline_getrb_reg_nth_definedrb_reg_nth_matchrb_obj_classrb_class_pathrb_str_appendrb_str_inspectrb_str_buf_appendrb_sprintfrb_str_catfrb_string_value_ptrrb_enc_compatiblerb_ary_arefrb_reg_last_matchrb_str_new_staticrb_reg_match_lastrb_reg_check_preprocessrb_string_valuerb_reg_allocrb_cRegexprb_reg_init_strrb_exc_raiserb_reg_new_strrb_reg_new_aryrb_str_new_sharedrb_enc_reg_newrb_reg_newrb_reg_compilerb_set_errinforb_reg_regcomprb_reg_quoterb_enc_str_asciionly_prb_str_equalrb_str_hashrb_hash_startrb_ary_entryrb_str_buf_cat_asciirb_class_new_instancerb_check_array_typerb_reg_optionsrb_error_arityrb_check_regexp_typerb_reg_regsubrb_enc_str_buf_catonig_noname_group_capture_is_activerb_eRuntimeErrorInit_Regexprb_eStandardErrorrb_define_classonigenc_set_default_caseconv_tableOnigEncodingASCIIonigenc_set_default_encodingonig_set_warn_funconig_set_verb_warn_funcrb_define_virtual_variablerb_cObjectrb_define_alloc_funcrb_define_singleton_methodrb_define_methodrb_obj_encodingrb_define_constrb_global_variablerb_undef_methodrb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolI��������������������������������������������������C���������*������������������D��������=E��������B���������WF��������}G�������������������H���������5��������pI��������x���������w����������J���������������������������� K��������(���������>L��������F���������`M��������h���������~N�������������������O�������������������P�������������������Q����������������������������!���������4���������c����������R�����������������������������S������������������'T��������6���������G���������j���������}�����������������������������h	T��������w	����������	����������	����������	����������	���������$
���������C
���������S
���������j
����������
����������
������������������*���������Z���������g�����������������������������������������������������������U������������������,���������3*���������>���������q��������������������*���������
*���������*
V��������1
W��������P
���������[
����������
�������������������
���������M���������p�������������������������������������������������$���������EX��������P*���������Z�������������������I������������������9����������������������������'���������Y����������*����������Y������������������7��������R���������]��������������������������������������������������������"��������9Z��������@���������X���������_[��������j*��������t�����������������������������\�����������������������������������������������\�����������������x]��������������������������������������\������������������Y���������l����������������������������^���������*�������������������Q���������s�������������������
���������
��������������������������N��������l������������������������������������_��������������������������#��������r5T���������``��������h����������a����������������������������������������������������������������G ��������g ��������� ���������� ���������!����������!a���������!����������!����������"���������"���������"*���������"���������"���������"��������L#����������#T���������#����������#����������#���������#����������#��������	$��������$b��������%$���������;$c��������C$����������$���������$����������$���������G%5 y%����������%���������%���������>&����������&����������&����������&���������'d��������'���������T'����������'e���������'����������'����������'��������(���������f(���������(I���������(����������(f���������(���������)c��������)���������,)g��������1)���������C)f��������H)���������{)���������)���������E*����������**���������*���������**���������*���������*���������* ��������#+����������+!���������+����������+"��������&,���������9,��������G,���������_,#���������,$���������,����������,h���������,����������,i���������,��������� -%��������'-*���������.-j��������8-���������?-*&��������F-k��������P-����������-���������!.��������8.���������.l���������.����������.����������0����������1'���������1(���������1)���������1*���������1+��������2,��������&2*-��������02m��������:2����������2*-���������2n���������2���������$3*-��������+3n��������53����������3*-���������3n���������3����������35\�42���������4����������43��������"5���������5���������6����������65�66��������	77��������76��������H78��������m75���������7���������7���������89��������V8��������g8;���������8���������8=��������9=���������9*>���������9=���������:*��������;��������{;����������;*���������;o���������;����������; ��������;<A��������
=?��������$=���������=C���������=���������=D�������� >���������?���������U?���������?*>���������?5���������?E��������/@���������g@����������@E���������@F��������A���������AF��������4AF���������A ���������A����������A9��������?BH��������dBI��������pB,���������B*���������B����������BK���������Bp��������CL��������.C��������9C;��������QCM��������]CN���������C����������CO���������CG���������C���������DR��������AD���������cDG��������xDK��������GE����������EU��������FV���������F����������F���������F���������Fq���������F����������FW���������Fr���������F����������FX��������GY��������Gr��������G���������4G���������@G`��������LG���������VGT��������hGs��������sG����������Gt���������G����������Gu���������GZ���������Gv���������G[���������GT��������Hw��������HZ��������H���������nHp��������vHL���������H+���������H\���������H]�������� I)��������2IT��������II*��������kI^���������I*���������IT���������I*-���������Ix���������I���������Jy��������JL��������&J��������7J;��������IJ��������iJT���������J_��������EK`���������K��������)L���������Lc���������L���������=M���������WM*e���������Mg���������M��������� Nd���������N��������O���������O��������<Oc���������Oj���������OY��������P���������Ph��������SP*��������^PH��������hP���������wPz��������~P*����������P����������P*����������Pl���������P����������P����������P*���������P{���������P���������Qd���������Qg���������Q����������Q���������Qd���������R`���������Rn���������R����������R��������FSh��������MS���������S���������S����������S
���������S
��������T���������Tq��������BT5D]T����������Tj���������T���������U���������$U��������/U���������~U���������U5�U���������UV���������W��������1X��������>X���������ZX����������XT���������Xp���������Xo��������CYr���������Y����������Y����������Ys���������Yt��������Z��������(Z��������<Z��������GZ��������[Z��������fZ��������nZ
���������Z��������[u��������C[V��������J[W��������T[���������r[����������[W���������[u��������\��������\W��������\u��������,\|��������3\v��������N\c��������X\���������e\����������\p���������\���������]���������]���������0]q���������]}���������]`���������]*e���������]w���������]����������]*e���������]w��������^u��������^V��������)^W��������4^���������O^p��������Y^h���������^���������^*���������^~���������^����������^*���������^���������^���������8_u��������@_x���������_y��������-`8��������W`y��������b`����������`����������a\���������a\��������)b*��������=b\��������Qb��������lb\���������by��������c���������7c���������Rcg��������vc���������}c����������c\���������c����������c����������cz���������cg���������c���������dV��������dW��������Md���������\d���������
e}��������Ve5��e}��������<f}��������Vf}��������{f~��������`g���������xg����������g����������g����������g���������h����������h���������i]��������2i)��������Zi���������pi*��������wi����������i����������i����������i}���������i���������j*-��������
jx��������j���������(j���������4j*���������<j���������Cj*���������Jj5\Rj���������Yj*���������^j���������jj���������vj����������j����������j����������j����������j����������j����������j����������j����������j����������j����������j����������j����������j���������k���������k���������-k���������2k���������9k*���������@kW��������Ik���������Pk*e��������bk���������lk*w��������xk���������}k����������k����������k����������k����������k����������k����������k����������k����������k����������k���������l���������l���������l���������5l���������:l���������Ml���������Rl���������hl���������ml����������l����������l����������l*J���������l����������l����������lP���������l����������l����������l*Q���������l����������l����������l����������l���������m���������	m���������m���������!m���������4m���������9m���������Lm���������Qm���������dm���������im���������um*���������|m����������m����������m����������m����������m����������m����������m����������m����������m����������m����������m����������m���������n���������n���������n���������n���������(n���������-n���������4n��������9n���������Dn���������In���������Pn*>��������bn����������n����������n����������n����������n����������n����������n����������n����������n���������o���������o���������o��������� o���������6o���������;o���������Qo���������Vo���������lo���������qo����������o����������o����������o����������o����������o����������o����������o����������o����������o*����������o����������o����������o*��������p���������p���������p���������p���������2p���������7p���������Jp���������Op���������bp���������gp���������}p����������p����������p����������p*����������p*����������p*���������q*���������q*���������#q*������������������^�������������������
���������;
����������A�A��������uA��������zA-���������U���������E��������u��������1	��������	
���������.����������3.���������3.��������54����������8���������\BG��������-HT���������JT���������K_��������LT��������5La��������3Nf���������Qk���������Zp��������d����������p��������� B��$,PXV��V�V���V���tD�Ltptx��t������08"dl"�"�P�"�P�P�b$P,bPbX��b������������D�L�p�x�����������0�8}d�l}�}���}�����
$�,
P
X?
�
�?
�?
�c
�?
�c
	c
	~D	c
L	~p	~x	�	~�	�	�	1

10
18
^d
1l
^�
^�
v�
^�
v�
v�
�$v,�P�X8���8�8�Y�8�YY)DYL)p)xI�)�I�I�
I
0
8
�d
l
��
��
��
��
��
��
�$�,�P�X�����������xDLxpxx��x��������0�85d�l5�5���5������$�,�P�X�����7��77zD7Lzpzx��z�����P#�P#0P#8Q$dP#lQ$�Q$�N)�Q$�N)�N)�T-$N),T-PT-X�.�T-��.��.��.��.��.�./D�.L/p/x1�/�1�1�>21>20>28�2d>2l�2��2�>3��2�>3�>3��3$>3,�3P�3X$4��3�$4�$4�94�$4�9494+6D94L+6p+6x�6�+6��6��6�%7�6%70%788d%7l8�8�8�8�8�8�G8$8,G8PG8Xp8�G8�p8�p8�:�p8�::�;D:L�;p�;x�<��;��<��<��A�<�A0�A8�Ad�Al�A��A��B��A��B��B��B$�B,�BP�BX�C��B��C��C�D��C�DD�DDDL�Dp�Dx�D��D��D��D��E�D�E0�E8 Hd�El H� H�1H� H�1H�1H��I$ 1H, �IP �IX rJ� �I� rJ� rJ� �J� rJ� �J!�J!uKD!�JL!uKp!uKx!�K�!uK�!�K�!�K�!L"�K"L0"L8"9Ld"Ll"9L�"9L�"AM�"9L�"AM�"AM�"cM$#AM,#cMP#cMX#N�#cM�#N�#N�#7N�#N�#7N$7N$�PD$7NL$�Pp$�Px$�Q�$�P�$�Q�$�Q�$�Q%�Q%�Q0%�Q8%�Rd%�Ql%�R�%�R�%�S�%�R�%�S�%�S�%�X$&�S,&�XP&�XX&�X�&�X�&�X�&�X�&�Y�&�X�&�Y'�Y'~ZD'�YL'~Zp'~Zx'�Z�'~Z�'�Z�'�Z�'_(�Z(_0(_8(q_d(_l(q_�(q_�(�_�(q_�(�_�(�_�(�_$)�_,)�_P)�_X)�`�)�_�)�`�)�`�)�c�)�`�)�c*�c*dD*�cL*dp*dx*j�*d�*j�*j�*/q+j+/q = > ? @�������� 8$<(@,D0H4L8P<T@XD\H`LdPhTlXp\t`xd|h�l�p�t�x�|�������������������������������������������������������������$�,�4 x$�%(d%,h%0l%4p%8t%<x%@|%D�&H�&L�&P�&T�&X�&\�&`�&d�&h�&l�&p�%t�&x�&|�&��&��&��&��&��&��&�&�'�'��&�'�'�'�'�'�#'�''�+'�/'�3'�7'�;'�?'�C'�G'�K'�O'�S'�]&�['�_'�c'g'k'o's'w'{''�' �'$x'(�',�'0�'4�'8$'<�'@�'D�&H�TL�TP�TT�TXU\�T`�Td�Th�Tl�Tp�Tt�Tx�T|�T��T��T��T��T��T��T��T��T��T�LU��T��T�XU�\U��T��T��T�lU�pU�tU�xU�U��U��U�U�U� U�$U�(U�,U�0U�4U8U<U@UDUHULUPUTU �U$\U(`U,dU0hU4lU8pU<tU@xUD|UH�UL�UP�UT�UX�U\�U`�Ud�Uh�Ul�Up�Ut�Ux�U|�U��U��U��U��U�8V�<V�@V�DV��U��U��U��U��U��U��U��U��U��U�V�V�V�V�V�V�V�V� V�$V�(V�,V�0V�4V8V<V@VDV�V�V�V�V �V$�W(�W,`W0+V4/V83V<7V@;VD?VHCVLGVPKVTOVXSV\WV`[Vd_VhcVlgVpkVtoVx|W|wV�{V�`V�dV��V��V��V�tV�xV�|V��V��V��V��V��V��V��V��V��V��V��V��V��V��V��V��V��V��V��V��V��V��V��V�V�VWWWWWW W$W(#W,'W0+W4/W83W<7W@;WD?WHCWLGWPKWTOWXSW\WW`[Wd@WhDWlHWpLWtoWxsW|wW�{W�W��W��W��W��W��W��W��W��W��W��W��W��W��W��W��W��W��W��W��W��W��W��W��W��W��W��W�he��f�0f�4f8f�f@fDfHfLf�e�f �f$�f(�f,�f0�f4�f8�f<�f@xfD|fH�fL�fP�fT�fX�f\�f`�fd�fh�fl�fp�ft�fx�f|�f��f��f��f��f��f��f��f��f��f��f��f��f��f��f��f��f��f��f� g�g�g�g�h�g�g�g� g�$g�(g�,g�0g�4g8gg 4 H`\�������0P$p<�P�����h���� 
�@
�p
0AD���@�`����@,``0xP��������0 l������@�P�| �@����P#d`$�P)`-\�.p�.�/� 1,	@2X	�2�	@3�	�3�	04�	@4�
06�
�6�
078 80P8Lp8�:��;�<|�A�B��B��B,
�CL
D�
�D�
�D�
�E�
 H@HXJ|�J��J��K��K� L�@L8PMLpM�N�@N�P\�Q��Q��R�SL�XpY��Y��Z��ZH_h�_��_��_��`hd| d� j.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.rela.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*�T*�l*��*��*�'�/q"@`5pG*-�q3�q=�q+8@�|p)*
S�b��]@@�0*
|؞�؞��@p�0*��������@��0*��������@Ц0*2X�d2���.��` )@�0**| �604�.�b��b�Sb�'b�?b�Mb�`b�rb��b��h� �����@0�h
*(x�(>+�	��.���regcomp.o/      1690381920  1000  135   100644  76328     `
ELF>h@@+*

 !"#H��H�o�odH�%(H�D$81��oO�oG �ofH�G0)$g�on )L$o H�V0)D$ H�W0D�H�D$0NF H�F0E��u�O��tH���u�F��tH�D$8dH3%(uGH��H�fDH�FH+FH��H�F H�FH�H�F��@H�GH+GH��H�G H�GH�H�G��ff.�@Hc�A��1�H�D1�H��E��t1�H���������@��t3���t�
��u�H�P��H��w�H�����@H�P��H��w�H����DUH�H��SH��H�������w_Hc�H�>��f�H�{H��������u	H�[H��u�H��[]ËC=t��=t= uH�[�����v�1��Ƀ{uHcC�D��CH�[�y���fD�CtvH�s(�SH�CH��HD��~\��H��1�L�D��Hc�T���~	Hc�����H��L9�u�KH��1�[]��=�q���H�[�^���@1��Ѹ/����#���f.�SH�H�������w9Hc�H�>��H�{������u	H�[H��u�[��H�[�����v�1�[�fDH�[�f��C[%���$/�ff.�@UH�SH��H�������wjHc�H�>��@1�H�{����9�L�x)H�[H��u�H����[]�f��C��tRF1�@���H����[]�f��C�u=H�[ �����v�1�H����[]Ð�k��t�H�[�p�����t��u�H�[�]�����fDH����
��AWAVAUATI�ԉ�UH��H�5SH��H��(Hc�H�>��@���g���^fD1�H��(��[]A\A]A^A_�DH�E1���@I��L�t$I�}L��L���i�������u�H�D$I9�tH9EvH�EM�mM��u��@M��$�I�D$hM��LD�G��z���L�G(H�GM��LD�IcA;D$\��I�|�L��H��L�D$�������@����{�4���L�D$Ic@A9D$\|ZA�L�t$I�|�L��L��L�D$������������H�D$H9EL�D$vH�EA��D9{����Ic�Ic�A;D$\~��0���������G�������H�L��H���F�������������CL�E1҅�t!H�����Hc�1�H��H��H��I9�sL��H��H�U�_���D�G�����.������=����G��H�G 1�H�E�&���@L�t$H�{L��L�������������H�D$HEH�[H��u����H� �C�t:�G����H�G 1�H�E����DH�GH+GH�E����H�{L��H���A��������f.�H�L��H���!��������q���H�E�KH�C �`���fD1ɉ��ff.�H����
��AWAVAUATI�ԉ�UH��H�5SH��H��(Hc�H�>��@�G���R�>��u�G�_H�G(H�E�1�H��(��[]A\A]A^A_�DI�D$Hc@H�E��f�M��$�D�I�D$hM��LD�A����H�w(H�G�WH��HE�H�D$��~�HcL�l$A9D$\|II�<�L��L�����������j���H�D$H9EsH�EA��D9{�K���H�|$Ic�Hc�A;D$\~��0����0���fD�G������H�L��H�������������H�uH��������C�����1҅�t!I�����Hc�1�L��H��L��H9�sH��H��H�U���L�l$I�����H�{L��L���-������������H�D$H�UH�����H�����H��H�H��H9�IG�H�EH�[H��u��T���@H�GH+GH�E�A����L�l$H�{L��L�������������H�D$H9EsH�EH�[H��u����D�G�trH�E����1������t	������H�{L��H���S��������@L���J���H�L��H���1������������H�E�KH�C(���fDH� L��H���������l���f.�1ɉ��ff.�AUA��H�5ATA��U��SH��H���D������|����wLHc�H�>��f�H�{��D��D�������u	H�[H��u�H��[]A\A]���kt�H�[H��u�f�1���@D�ct�H�[�@H�[�{�����믐�������AVAUATI��U��H�SH��H��Hc�H�>��DA�H�{��L�������������H�[A!�H��u�H��D��[]A\A]A^��E1�L�t$�H�{��L���b�����xm��thA	Ņ�u1�H�[H��u��DH�{L��L���Q�����u<H�|$t����W����������1��� ��H��[]A\A]A^�@H� ������H��[]A\A]A^��H��������u��S1������@�W1���u���t11��������D��t8H��1�[]A\A]A^�f����WH����O����c��U���fDH�{��L���2����<���1��f.�UL�
H��SH��H�������w[Ic�L�>��f�H�{H��������u	H�[H��u�H��[]ËC=t~4=t= uH�[�����v�1���@�CH�{��uH���=u�H�[�����H��C�m�����
�c�H�{�ʸ#�����UH�SH��H�������w:Hc�H�>��@�C=t��=t= uH�[�����v�1�H����[]Ð1�H�{���H�[	�H��u�H����[]ÐH�{ �w����Ņ�tǁK�H����[]Ð�C1�u���u���H�{�C�?����c����=�y���H�[�f���ff.��ATH�UH��SH�������wuHc�H�>��E1������H�[H��txH�{H�������u�A���fD�C=t��=t= uH�[�����v�@E1��$�CH�{��t]H���U���A�ă��CDE�D��[]A\��H�{H���,���A�ċC��u�A��u��C0��=t�����t����C�������Ct���H�{�C�{����A��[]D��A\�DAVI��AUL�-ATI��UH��SH��H������wwIcD�L�>��@H�{H��L�������u	H�[H��u�H��[]A\A]A^���C=t��=t= uL�sH�[�����v��1��@�{H�CtfL�sH���a���f�L��H�{H��L�k�-���H�sL9��t����>�k���H�߉D$��D$�V���f�=�{���1��B���fD�Ct"�M�Q�UHcKA���S�{���f��S���g���I�H��H�C�I����f.�UH��AVI��AUI��ATI��SH���J\dH�%(H�E�1�H��AH�H��H��H%�H)�H���H��H9�tH��H��$�H9�u���-H�\$�H����~HcЃ���9�}�H�U�H��L���E��������I�>H��������E�E\��M�MhE���EDH�?Hcփ�H�<у�A9�|+HcЋ���~�I���H��H�<H��u�L��I�<��@A�}��A�Ef�����t��������A	UH��H�� u�A�E`H��L��A�E\A�D$�H�u�dH34%(u#H�e�[A\A]A^]��H)�H�L������ff.�f�������ATH�UH��SH��H��Hc�H�>��H�{H��������uH�[H��u�1�H��[]A\�@H�{H�������u�H�[H��u�1����W��t����t
1��� u�H�{H���Y���H��[]A\�H��G���H��[]A\�fDL���H�FhM��LD�HcG�����V`��~#H�V�B�t�u�/����B����;E\��I��H�C H�����H�E�K�Ɖ�H�EP���ʃ�O։UH�C(1�������/���1�����DH�wH�WH9�t�H�}HH�L$���~H��t
H�E�@	tH�D$Hc�C�c���f.�H�KH�S�$���H����$����l���H�KH�S�'���H����'����M���H�KH�S�&���H����&����.���1����?
��AWAVAUI��ATD�aUH��H�SH��H���Hc�H�>�����/���&fD1�H����[]A\A]A^A_�D�E1���DH�D��H�T$L�|$�j���A�Ɖ���u�H�[H��t2H�{D��L��L���F�������u�H�[�D$9D$�DE�H��u�E����1�A�������f���@L�gH�wL9��O����I�UH�B9BtL���H�sH��EI�L9�w�����D������G9G�	���H�D��H�T$�����������SHc|$��tH�����Lc�1�H��I���H9�s��A�ЉU�����G�����������������G���G01ɉE���fDL�t$A�����H�{D��L��L�����������[���HcT$HcuH��H���t_H���tYH���H9�AGljEH�[H��u��$���@�G�u"H� D��H��L�����������f��������fDD���H�{��f��D$1ɉE����f�H�D��H���a�������������E�K�C0��������������G�N���9���AWI��AVAUL�n$ATI��USH��Lcv �_ H�t$M�M9�s}�f�A�D$A9D$tL��L��L��������M9�v?��~;I�M��Lc�)�fD�Q���I��C�T$�Lc�9���I9�@��H��@��u�M9�w�A�_ A�WM9�uBH�|$A�G�O%A�OG�ɹD�A�WA�GH��[]A\A]A^A_��A�_ A�WA�G1��ԉO��ff.�ATA��UH��S�W�wH��Z9�v#fD�9�w��uH���H�EH��t�UD�$1�;]v�][]A\ø������f�AUI��ATI��UH��SH���G�wH�?�9�v"D�9�w��u�H��H�EH��t&�EH�L��L���1�;]v�]H��[]A\A]ø������ATI��UH��S�W�wH��Z 9�v#fD�9�w��uH���H�EH��t)�U�Ao$H��AoL$H1�;]v�][]A\ø������fDATI��UH��S�W�wH��Z9�v#fD�9�w��uH���H�EH��t�UD�$1�;]v�][]A\ø������f�ATA��UH��S�W�wH��Z9�v#fD�9�w��uH���H�EH��t�UfD�$1�;]v�][]A\ø�������ATA��UH��S�W�wH��Z9�wD�$1�;]v�][]A\��9�w��uH���H�EH��t�U�˸������f.�U��SH��H�������tH��[]�DH����H��[]�p���AVI��AUI��ATI��D��UHc�L��S���O�L��É��C�����
tf�؃��t��t�C�w���t3L��1�L��H��H���H���L��L��L���Z���[1�]A\A]A^��L��L��������H��L���
����ff.�I�����	��
t�ƒ��t��u�B��D���������B��ff.�f�USH��H�H���?w3�Hc�H�>����G��~H�G H����H��?v�1�H��[]���u�H���f��G��tp~^��t��u�H��fD1�H�OH9Ov/H����t(�Gu"�C<�HE������HD�H��[]�fD��t�1��f���@�G�k<H��H��C<�����k<��ff.�H�GL�H�>H�vH���t|L)�H��cvSH���tbH)�H��cv,�9�|�����I9���I9�G����H��p�����L�
A�A��H���u�1���1�H���u��fD�J ����H��I�ҋV I�������q��l�F$�����u��H�5�4FA�B$A�����u�A�H�=D�G��A�@D��DЃ��F��D�A�s���A�B��Ʌ�~=��~L��L�������~*�AoA�AoJAK�AoR AS �AoZ0A[0H����ff.�@H�H���tOH���tII��H�I��L9�H�����HG�H�H�H���t9H���t3H��H�H��H9�H�����HG�H��DH�����H�H�H���u�H�����H��f.�AU1�ATUH��SH��H��H�H�T$� �����u�T$�UH��[]A\A]�f.���������u�H��@@��H�]H��D�eL�kH������H�]L�kH�]H��u�3H�SH�PH�CH�[H��tD���H��u޸�����w���@A�� t1��c�����EH�mH��t��EH�mH��u���fD������)���ff.�AVAUATUS�F ��tHcO ��tH�H9tAH�����H�H�GH�GH�G�G �G$[]A\A]A^��H�^H9_u�I��H��H�����������F$E1�8G$��L�g$f�I�U�B9BtIc�I�4L������A�VHc��|$@8|$uyE�FD��Ic�A���t
$@8t$u]A9�u�HcK A��9�~MD;u }{Ic��T$8T$t��C1ɋC�UD�s ��xN��x	ЉC�U�E!C��t$!S����E1���U��t�D9u �D9s ��K��C����D��|����S�E1��E��u��AWI��AVI��AUI��ATI��U�SH���_ M9�sj��eA�GA9GtL��L��L������E��~�I�T$A��Hc�A)�f��J���I��A�L6$A�Hc�9�A��I9�@��H��A��u�M9�r�A�^ H��[]A\A]A^A_�ff.��AWL�=�$AVI��AUL���ATL��UH��SH��H��XdH�%(H��$H1�H�H�����H�F0H�FpH���H�FH�FH�FH�F H�F(�F8�F<H�FXH�F`H�Fh�Fx�F|Hdž�Hdž�Hdž�dž�Ɔ�L���H�H�H�EH�SH�C H�UH�EH���H���H�UH�EH���H���E�&A��
��H�
D��Hc�H�>��I�~(��	H�EE1�HcPHc@H�SH��H��$HdH34%(D���,H��X[]A\A]A^A_�@H�}H��$PL�l$M��H�|$I��H��I�|$H��H���)������aM9���H��$`I!UH�sI�}H�T$�D$���H�T$H�sXI�}X���H�T$H���I������A���L��D$������$@���c	I���H��$(H9��K	L�]H��$0I;��sI���H9�sI���1�1�H�����<�v	AƄ��H��w��uA�{�A�R�H��H��u�H��$8I!��A���H��$PH��$XI;MsI�MI;UvI�UM�d$M�������fDA���0����H�U L���H�BhM��LD�A�F��*M�V(I�FH�t$(M��LD�IcI�<��O��A�ą�����IcH�U H�t$0I�<��?�A�ą������A�~��
H�D$@H�\$A�L�l$8H���R�IcH�U H��I�<�������=���H�D$8H9D$(vH�D$(H�D$@H9D$0sH�D$0A��E9^�]
Ic�H�U L��M�<�IcI�<������t����f.�H��$PI�~H��H��H�D$���A�ą���McND��A�����	A�FA�…��
�?H��H�t$�H���$���~|��$���tq��tf�{8��H�t$L�kD�d$A�I��H��H���
@�{8I�T$H��L��A����A�FD9�}�D�d$A�VA9�}�C0A��Lc�9�t�C0�CpH��$P���>�CpH�����Ic�1�H��H��H9�vH��H��A����	1�E��t&H�����1�H��$XH��I��H��H9�sI��H��H�3H�S����H�ED�xA����Hc@Mc�H�E1�L�s����I�VI�vA�FH�MI��I)�������H�{�!����C41�M���1	L�;H�CHcC8L9��#����C0�����A�F���K�}����A�F4��A�F4���=A�F1ɨtI�N H������tI�V(H�E1�H�S���@A�F���[��=�2I�~H��$PH������A�ą��s���D��$�E����	�o�$h�o�$x���o�$����o�$�����D��$@ǃ�E������H��$(�$L���H�����A�F��5H�C����E1�����DH�E foEL�l$L�|$@foMH�l$H�D$`H��$P)D$@H��)L$PI�~L��H���
���A�ą��w���H��$XH��$PI�wL����H�D$H�{H��$X�KL�hH��u�$`�CL�CXD�Sp�K��$dL�D$A��A	�%	�H����$�AD�D�K0�C���+H���bD��$x��$|A	�D��$xH���'	���$|��$@��~)H��$0u	�$8H��t�Cp�C0��~E���iE���@H�UH�sXL��� �H�UXH�sXL������L��$X���M��t5D9�~D���H���H�����H�sL�����L��$X��$@��tO�����t0��������~5����~H�|$H���������~H��$(�$H�|$�H�H��$PH�sL��H���O�M�vM����������D��������E1��f���fD~F=tE1�=�I�����P������������������ ���C�@�� u���f��?L��H���H����D��t��P�E1�����됃��a����DD��$@E��~	H����H���1�������@I�~H��H������A������H�������f�H���H�U�BH��*���f�A�F�0���1ɿL�
��ȉ������H�A�T�t>���u4��H�U�Ƅ�uH��u�z�A�I��H��H��u�H�E1�H�C����f.��$H�|$L���H��3���I�~H��H����A�ċC��u
�C��|���H�U A�N�r$����������„��S�����?�C�H���A������������@��$�������o�$��o�$��o�$�o�$������������@A�~E�A��A��A�~�*������I�~ D�m�G�EH��H����D�mA����H�{�O��C4M��tGI�F����u6H�u�Ƅ�����u�~�H��P��L�;L�{���H�uH�{L���P�Ƅ$�H�����HDŽ$hHDŽ$pHDŽ$xH��$�DŽ$��B���f�A�FD�mI�~�E�
���@%D��$@	���$|E�����H��$0��������DH�sXL����L��$X�G�����CE1��=�DH�uL��H�{X����H��$0�q����s���@H�}H��$Pu
I�F�8��A�F1���tH�����Hc�1�H��H��H9�vH��H��1�H��$X��H������=H��$PHc�H�����H����������E�fE���A��E1��	f�H�EI��E��H�¾D���PX��tHB��3�u=A��H�U�BƄ3�uM��u�z�H�B�p��I�VM9�u��L���I�v�}I�VH�m����u6Ƅ�A�����u�}A�H�
D�AD��L�l$@����I��L��UH���`�����M�uD�d$I��H��I�D�L�l$8H��f.�L��L��A�>A�T$0�T$8���u4Ƅ������u
A�|$�H��4P��I��L9�u�D�d$L������E�FE�������C�E��̀�CE�VMcN1�E��������D��$�E��������o�$��o�$����o�$����o�$������Q���1���E1���H�EE��H�¾D���PXE9�~��uHB��3�u=A��H�U�BƄ3�uM��u�z�H�B�p��I��I��u��.���H�\$H�D$(H�H�D$0H�C�����@�CE�VMcN����A��^�A��������AWH��AVH)�AUI��ATUSH��hH�|$H�4$H�L$8L�L$0H�D$H=��y�D$@�HM��L��I��fD�H��H9�u�H�|$�D$H�D$(�mH��$PL�|$XM��H�D$0H�D$rH�D$HH�D$H��H�D$P��$�H�t$Ht$(H�t$ ��tH�D$8M��H�L$0H�$�8A�WH�D$E�wE9wtH�4$H�|$ L���A��H�\$ H�<$IcƋL$H�H��H)�H9�DB������$TunD;�$PudH�D$0L�d$`M��H�h�D$��H��H�D�I���#fDI9����}u)H��I��D9suH��L��L��}A�W0A9�t�fD�H��h[]A\A]A^A_�H�D$0H�H���SH�|$H���|$H�OD�H��H9�u�H��$P�D$H�D$@H�D$rH�D$PH�D$H�D$(H��H�D$X��$�H�t$Ht$(H�t$ ��tH�D$8M��H�L$@H�$�8A�UH�D$E�}E9}tH�4$H�|$ L���A��H�\$ H�<$Ic�H�H��H)�H9NjD$DB�������$T�����D;�$P���H�D$@L�t$`H�h�D$��H��L�d��)�L9�t[�}�����H��I��D9{�����H��L��L���}A�U0A9�t������H�|$0H�H�������������e���E����H�D$0�L$H�|$(�T$HL��A�L�\$XH�4�H��H�\$P)�I��H�l$ I�A��I��H�4sI���I���*I)�M��E��)�A��I�2��~@�H��A��H9�u�H��H��L9�u�Ic�HL$(H�D$(H9D$�4���1����E�����|$H�L$(�\$@H�t$H�G�L�\$PH�l$ H��H��)�L�l$XI��H�4VI��I��A�V�I��I�I)�M�@�E��)�A�LI�0��~�H��A�LH9�u�H��H��L9�u�Ic�HL$(H�D$(H9D$����1�����ff.�AWAVAUATUSH�����
�_H�
��H��I��Hc�H�>��fDH�H���S�����x5�E=���<=����
= t��H����[]A\A]A^A_�f.�E1�H�}L���Q����Å�x�H�mA�H��u�D���f.�E1�E1�H�}L�������Å�x�H�mA�A�FH����A�������s���fD�	�G�^���H�W(H���|H�NH��y�y�R�\�2���D�_�G �#����\����f�D�oD�wH��o�������H�U�:�J��E����A������U�����U0����X�����GH�����H���������Å��}����E���������uV�C���EE��Q���@�GL�wL�_���M9��1���H��L��1ҿ[L)�]A\A]A^A_�,�@���������fD�\
���1�����1��d���f��H����H�GH��(�����1H��H9�u��Z���D�]E�������A����E��u��U�����������X��������2��fD�Y
�=�����U���/�ЉӃ�2�-�}��u�U0���U���D�EE��u�H��X
H9Uu������=��������DC��A�\E���f.�M9��������L�fH���D$��E�|$�D$E9|$tL��L��L���L�]A��Ic�E��I�M9�r(�ef��|$uCIc�D��1��l���E��E��M�M9�v<McT$E9T$tL��L��L���L�]Lc�E9�u�E��͐������f�Ic��T$D���������f.�D�ME�������n���fDH�m�}	�xH�}L���.����Å������H�mH���UH�}L���������s����\H�}�����E��r���D���E@�`���H�mL��H�}�����Å��F����E���؃��5������-������������F<����M����u��2�‰�D�UE��tAH�} t3�\�����!����fD�E�n<�F<�2���A�l$<�����H�}(uƍ\
����u��������X�M)����Ӎ�z����!�2�����f���H�}(t�E�X�S����E�X�G���������=����AWAVAUATUSH��hH�|$H�t$H�rH�T$(H�RdH�%(H�L$X1�H�4$H)�L�46H�T$L���H���H�T$H��N�<0I��H�D$@M��H�D$H�D$8H�T$8H�D$ H9$��H�D$L�t$H�|$H�$H�L��H�t$ �?I���P8��~[��L��M�t�fD�EH��L�j�L9�t5L��M9�w�O�,$H��L���H��tIJ� H��N�<"M���f�H�T$8H9$�l���H�|$(L��H���H�߉$��$��H��������H�L$XdH3%(uH��h[]A\A]A^A_ø��������ATI��H��H��UH��SH���H��tKH�u`H�}HH��H���O�����u�KI�$H��[]A\�f.�H�߉D$��D$H��[]A\ø������AWAVE1�AUATUSH���G����H�OH�_A��H�$H�\$H9���H�|$`I��1�L�l$qH��$�H�D$H�D$H�D$xH�D$ H�D$@�D$PH�D$Xf.�I�GHL�$$A�`H�L$I��H�T$L��PHA�ƅ���I�WHHcj9jtH�t$L���Hc�E��tO;�$�����$���H�D$A�V�H��H��H���f�;(��H���x���H9�u�H���LH�4$H��H�H��H�l$(�A�ƅ��H�D$(H�$H;D$�&���H��t+I�w`I�HH���������H�T$H�t$(H9��!H�L$@H�D$H�|$`H��HE�E1�H��H���r���H���H�ĘD��[]A\A]A^A_�DA�F�D$P�D$P���$H��tI�w`I�HH��������u�KH�|$ u,H�D$H��t"H��1��H�D$ H����H�D$ H�D$@9�$��,H�D$A�V�H��H��H���DH��;h��H9�u�1�1��H�D$0H���mH�D$�D$TH�D$8H�<$Hc�H�H��H�D$(�H����H�L$0H�AH�L$A�F�H��H�D�I��H�D$H1�1��I��H��tZA�D$1ۅ�.��DH�L��L��I�T���u'��A;\$��I�GHHc�L��A�|�H��P0��y�L���H�|$A������H�|$@��J���@1�1��H�D$8H���o1�1��H��H����L�d$81�1�I�D$�H�D$0H����H�CL�d$�D$T����D1�1��H��H���X���Ic$9��H�$H�4H9t$�L�sH�D$8H�\$8H�XI��L9d$H������|$T�=H�|$ H���VH�t$�H����H�D$1�H�@H�D$ ����f�H�|$ uhH�t$H��t^1��H�D$@H�������1�1��H��H���JH�D$@H�D$ H�|$ H���H����H�\$�N���f.�1�1��H��H���H�|$ H�D$�����H�D$0L�sH�\$0H�X���H�T$H�|$XL���O�������1�L���H����H�t$xH��H�D$h�H�T$hH���9H�S���H�D$ H��tH�t$H���H�������1����H�D$H�D$@���H�|$xL��������u:H�|$H�t$x��H�|$ ��H�|$ �H�������H�|$x�A������\����K�m���H�$H�D$(H���C����V���H�|$A������H�D$@������H�D$8H�D$���H�|$ �{���H�t$�"���H��A���������H�t$1��H�D$@H��t_H�D$@H�t$xH�D$ �4���H��H�$�H�$H���H�|$x����H����l���H���H�|$x��U���H�|$x�H�|$������?
��AWH�AVAUATUH��SH��H��8�Hc�H�>��H�{H����������uH�[H��u�D1�H��8��[]A\A]A^A_�DI��E1�f�I�|$H���#�M�d$A�M���A��
��@�WH���[������u�L�k H�[(D�u��KH�C9���
Hc���1�H��H�H��D�0L�h�������c����D�oL�wL�OA���	M9��A���L��H��E1��L)�L���h�����#�����G�����H�(����H�FH�x�
����
�H�����H�[(H��s�����SH�3H�����������fD����G�_1���@�ƅ�����H���=�������fD�F<�V�H��������d���f��G ���F<��������	�5H�����������)���HcsH�������������H�C(H�SH��HD‹S�������Hc��H��H��H�0H��H)�L�$0��H���L$L9�������3H��L$�����t݉����fD�G=���
�$=�p��= ��
�R=@�_�����=�Q����=H���������=���D�wD�oH��w����������C���r�{��hL�cA�<$�YD�sE1�E��~#DH��L�������������A��E9�u�E<��H�{(�W���;�H���T�����������H�C(�H��H�p��������fD�G����
���+������������N����G���K�E,��������� M„��`�8H���������������sH���R�����������H�{H�������������S�K�E0�����ƃ������NƁ����������:H���R������������sH����������������XH���&�����q�������O=����������������?����)H���������+���f��� ����@�&������������-H����������@=��=������=����D�GE����
�'H���X��������D�aE��DD�D�d$A�����D�sE���D�s0E���|	���D�cL�kE1�E�����A���L$E9���H��L��L$������t܉�����D�����=�
����TH������������C�����D$,Hc�H��������������H�{H���q��������f.�DmA������1@D��+U�?H��D�������������H�[H���s���H�{H����H�{t�P�@H���`�������H���H�{H����������2���H�{u��$���@�H������������@��#�k����/H����������@D�WE�����%H���~����������NH���c�����������H�{H���M�������������OH���6���������.H��������f���@�YH����������K����sH����������6���L�cA�<$	��
I�|$H���h���������M�d$�D$M���Z
I�|$H���?�A�ʼn������I�|$����������L$H��H�[�q�n�����������H�{H���X������������D��?H��������������H�CH��H�x�$������o���D�����H�����H�sH���������B����_�����������{�2H����������������H���R�������D�sA������A�փ�2�kL�{E1�@H��L���u������������A��E9��D�[E����D�|$H�{ A�W�*	�BH����������|���H�C �H��H�p�u��H�{D��H���������N���������?H��D)��G�����2���M9��'���A��L�~HD���A�O�D$���D$A9OtL��L��L��L�L$�L�L$��Hc�A��M�$M9�rE�
��|$udHc�E1�H��D��L��������������M���A��I�M9���Ic_A9_t#L��L��L��L�L$�L$�L�L$�L$Hc�D9�u��뾐�6H����������K����MD�m<�UH�ED�aA��A9�v*fD�A9�w��U��H���H�EH���y
�MD�,D;evD�eHcs0H�����������L�gH�O(L���H��H9�����D�(E��t�����H���V��L��H������������H�[(H��s�r���SH�3H��������o�D�H������t���fD�4H���������
���@�G@��L�wE�nM�fE��~&1�H��L����������A9�u�M�fH��L���<��������Q�@H��L$�����������I�~H���h�������AH���Q���������L$������?H��)�������z���s��u�S0���n���H�H9C�-D�u�EH�����������)�D��H���l���E������t$H�������������U8D�cD�{���H�E@D9���Ic�A���H�{H��H�к���DD�D�8D��D�`�;�������C����}$������IH���2�������z�D��H��������h�fD������A������AA�ƃ�2����D�u�D����H�������U�ED�bA9����A9�w��EH�}���H�EH���V�UH�1�D;e���D�e���f�Hc�D�D$H��D��L���������D�$	H��Ic�H���H���D�c�H�C��H���(��� ����G�^<H��F<��]<���Y�RH����������B�H�{H���������,�SH����������u	��2�aL�{A���&����F�����ʾ?H�������������H�{H���{�����7H���g������3H���S����������H����������WH���+�������s�E�KH��p	�s�	��������Q�H�{H�����?H��P�C����������&�@H�E�,�����*H���������D�OE���	�&H����������H����UH��P������������C�����D$,Hc�H������������H�{H���5������}��VH���������i���+H���������N�@�,H��������6�@����S�(H����������H��X���������P�PH������������H�{H������������QH���q��������H���]��������1H���K��������0H���7�������E)�E��E��~YA�����G�l��A)�A��E1�A�DD��@H���X��������@�H�{H����������*�A��E�E9�u�1�����@H��L$������������L$�?H������������H�{H���|�������������D�|$�?H��D��趿���������H�{D��H����������������@H��D)��~������i�H�{(���CH���_��������G�H�C(�H��H�p�@���H�{D��H���������������?+T$H�����������H��蝾�������� H��艾��������"H���u��������!H���a�����������H�{ ����?H��蕾�����������x��H�������������7�H��������H��ƒ������N„��\�9H���ѽ���������sH���\�������H�{(�c�����?H��������^���� �H���JH�E@�E8���H�{H�T$,H���]��������������D$,���@H��蚽���������H�{D��H��������i�������?+T$H���a������L�H�{H�T$,H�������������.��D$,�A�H���Ƽ��������H��Hc�T$H���H��tp�T$H�E@�U8������<H��艼�����2��;H���u���������C�'�����GH���Y������"������������������������������|�1ɉ��D��t<AUATA��UH��SH��H��H��D�n�J�����tH��[]A\A]�f�����sH���m�����uՃCH��H������u�A��t(A��t:A��tDH��D��H��[]A\A]�/�����KH���{�����u���D�LH���c����搾MH���S����֐��H���f���H��81����UH��SH��H��H��uH��]1��EH��[]ÐH���H�EH��u۸���������H��tSH���H��[�D�ff.�@��H��toSH��H�?H��t�H���H��t�H���H��t�H���H��t�H�{@H��t�H���H��t�H��[�����1�H��ttDH�?��t
�WH��H���H��t
H���H)�H�H���tH��H���tH��H�@tHcO8H��H���H�H��u�����H��tHcH��H�� �1��D��UH��SH��H���G�����H�EH�{H��H��H�H���H���H)�H)ށ������H�H��H��[]�f����
f.�H��H���H��u�H����f���UH��SH��H���H��u
�uDH��H��H���H��u�Hǂ�H���G�����H�H�}H��H��H�EH���H���H)�H)�������H�H��H��[]�f�H��[]�f������t
1���H����1�H���ff.���AUA��ATI��U��SH��H�������H����M������%�=���A�@�C����L�cH	�L�CP��D�k`���@�CdE�Hǃ�Hǃ�Hǃ�Hǃ�H�H�CH�CX�C<1�H��[]A\A]��L�D$�L�D$�C����m����Ӹ���̸�������H����1��H���ff.�f���D�1�H��E��A9�v1A���D;4�v�2f.����D�DB94�r ��9�r�1�A9�v
�1�94���É�D���HA������SH�Ӄ�3���w+������H��T������ƒ��C[E��H�S(1�H��t�H�:��������ƒ��C[E�����SH����H���yH�T$��H��Q(H�T$��H����[��AWA��AVI��AUA��ATA���I��UH�-SH��H��8�;	w+�HcD�H�>��fDA�D$<t�C�NfDE1�H��8D��[]A\A]A^A_�E1�1�H�{D��L��L��D�L$�t���H��D�L$A�������EL�S��u%�-f.��}uH�m�E���
��t�E��L��A���A��H�[H��u��a���f�A��H�{L��D��L�����A�Dž��:���H�[H��u��)����I���L�[(I�Fh�{H��HD�H�CM��LD؅������A�E�f\A9���A�V$A�FL��1�A���Hc�I�4��D9���E��A��A	у���AN�E��A�V$�A��A	�����AN�A�F�C tA�N D�A��D��A��A�� AM�A�N Hc��H�L��I 9{��Q���f�A��H�kt�K�C���������D���9CuD���L��L��H�����A�Dž�������E����D�kA����H�uH�}A�����I��I)�L�t$�H��H�D$H��������EM��F�D�`I��d�\H�UH�uH�|$�A�Dž���Lt$D��E9�uȋCD9��.����D)kH�|$1��H��H���*H��H��E1�豗��H��H���H������H��A����������f.��C����������������C��A�F`����I�F�@���A���A�/�������C=tv��=�E= �r���H�{��3���D�L$���A�Dž��M����,I�VL��H���m���A�Dž��-����;D�L$���@D��H�{L��L������A����������A��tA�F�S���Ѓ��� M�A�FH�{L��D��L���f���A�����fDE��H�kA���A��E���)������=�����H�{��E1�D�EE������}����L��L��D�L$�Q���D�L$H��t
H�P�:tH�E(�}�	�}�EE��H�kA���A�����f�A�0�������D�s�����K���������H�E H������H�C H�E ���L��H�����A�����DH�t$(L��H�����A�Dž������H�|$(��C�N���f��CA�l$<L��D��H�{L��A�D$<��A�l$<A���?���@H�{��3���D�L$賞��A�Dž�������I�VL��H���3���A�Dž����;D�L$������X���DH�kL��D��L��H���k����}A��������}�������}������U�������H�E����������K@�}���f��CH������A�Dž��a��������C����H�{L���G���H�C �9���A������D)�D)k�C����H�}�������1�L��D�L$����D�L$H��H�D$�����1�L��L�����D�L$L�\$H��I�������A�A������������~���I�sI�{H9��m����������+���S���A�C�H���A�G�=���I�WI�GH)�H)�H9�HF�1�Hc�H9������H��:L�t�D�L$�D�L$H��I�����H@H��H��D�L$舒��L�}D�L$����f.�H�|$�����E�������H�E�8�����A�D$<�����1�1�D�L$�I��H���:H��H������1�L���D�L$H��H�E��@D�L$�H����D�L$H�EH�kE��A���A������f�H��H�\$E1�H��譑��H�������A���������H�|$A�����������������*��L��M��I������������tB��������փ������A�CA9G�����A�CA9G�t���A�CA9G�f����U���A��V���A�I�C(�JH���>���A�K��tR�0���A������I�D$H�ωL$�D�L$L�\$H��PX�L$L�\$��D�L$������Ⱥ����H�A�T�u��A�S1ɿ�փ��!��tE�D�t0A�G���������t&��A����A��H�E�D�t˅�t���A�Gt��p���I�{(tbI�(�^���A�G�S����B���I�D$H�ωL$�D�L$L�\$H��PX�L$L�\$��D�L$��������&��������u���H����1��i��w2I�D$H�ωL$�D�L$L�\$H��PX�L$L�\$��D�L$u/�ʸ����Hc�A#D�A�CuR�����������~�����A�u�I�D$H�ωL$�D�L$L�\$H��PX�L$L�\$��D�L$t�붅�u��C���L���A������[�A��%���I�L$HA�H�A trD�L$H��H�L$��H�L$���H���D�L$��t~A�G����������I�D$HD�L$HcpH��H��P I�|$HL�����D�L$�������L�AXD�L$H��H�L$L�D$��H�L$�L�D$��H��A��D�L$��u�1�A����w���ff.����AWAVI��AUI�͹ATUSH��H��8dH�%(H��$(1�L�d$`L���H�M��tI�ED�[L��$D��$ �C����E���H�ָH��H�T$L)�H�HD��H�T$�����J�CM��H��L��H�CL�|$�C8L��H�C@��Ņ��"��$���~H�T$p�B��L�t$��$����t�C$L��H��L����Ņ�� �T$x�D$|�����	ЉS(�C,�C<�0�H����K0Hǃ�H�CdH�ClH�CtH�C|H��t��C<Hǃ�H�SHH�|$�D$HL�d$P�C`L��$0H�T$@L��H�T$0�D$LH�D$8H�D$0�����Ņ��d��$@��$D�Љ�%���	�Cl�tH��$0H�CpH��$8H�CxD��$hE��D��$�E���`H�{HI�t$I�T$X�թ����$ Hc�$h����D��$d��E������������������~I��$�I�|$���ݨ���������I��$�H���I��$���H��H���J�H9�u�H��$H��$�CdH���H���H���t���Kh��$��$���� 	�	�����9f��l$ H�D$(����H�P�B��E1��<@F�< ;kv�kA��H�|$(D;t$ ��Ic�H��H�H�P�B��Lc �sD�zH�A�l$9�s�f.��9�w��sH���H�H��u�H�|$(�����H��t�L�t$H��$�H��tM��tH�T$hI�EH��$�I�UI�EL���H��$H��t�H��$(dH3%(����H��8[]A\A]A^A_��C����@�H���[���D��$�E�������D�[E���=D�S0E���0D�K,E�����C4��f.�H�|$��C�T���H��H�SHH�K`H���jH���L���L���軽����XZ������$X��$\���� 	�	����$��������H�|$(H�����������f�Hc�H���H����H�D$(L��H�D$ L���l$$�D$ H��$������Ņ�u�H�|$L��菖���Ņ��u���H�|$L��踔���Ņ��^�����$�L�t$�C$�
���f.��C=����;�$���L��H��L���ۘ��L�t$�Ņ������������$�	���f���u|��$\��$X�� ��	�	��H��$H��t�HDŽ$H�|$H���E���Ņ�����D��$�E������H�|$(H�����������f�H���H���H���{I�t$<H��H���H�4(H��H�CHH���H��H��Pp��$dA�ą�����$h�u�����CdH��$HH��$PH���H���H������H���H+��ЉCh����@�|-����D��$ ���E��������	�H��$8���������� 	ʉ�������C4�����f�L�t$L��蓈�����(���@��$h��u�������Cd����H��1�H���\����1��P�����������H��H�SHH�K`H���jH���L���L����Q���ZY��������E�����Cd����C4���#���H��H�SHH�K`H���jH���L���L�����A_��X���8����E��t���H��H�SHH�K`H���jH���L���L���觹��Y^���
�����Z������������H�ǽ�����L�t$�������������AUATI��UH����L��SM��H��H��H�L�l$0����tH��[]A\A]��H��L��L��H��H��E1�[E1�]A\A]����AWM��AVM��AUI��ATI��U��SH����H���H�H��tdH���M��L��H�Nj��Ņ�t$H�;�H�H����[]A\A]A^A_�@H�L$@H�;E1�E1�L��L����Ņ�t�뻽������@GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign	



��M����}od[SMGC?;8520-+*(&%$"! 










GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx��DP�
G8{4L&A�K�G z
AAA�
CAH$�qA�v
IQ
GL@��A�H�G y
CACY
CACZ
CABT�T�B�B �B(�F0�K8�G`l
8C0A(B BBBF�������THT�B�B �B(�F0�K8�G`D
8C0A(B BBBF�������8��B�L�D �C(�G0F
(A ABBH���P�B�B �D(�J0�G@D
0D(A BBBH�
0A(A BBBEO
0A(A BBBIL
0C(A BBBJs�����(h�A�K�G z
AAA@��A�H�G J
CABZ
CABZ
CAB4�;B�H�D ��
ABHlAE@fB�E�I �D(�D0�D@|
0A(A BBBH,T�A�C
B�E�E�H�
IX� P�H�D �G0l
 AABES
 AABAM
 AABGU���T��Q�B�B �E(�E0�K8�GPm
8C0A(B BBBFP������d8"X�E�B �F(�D0�A8�DP�8A0A(B BBBA������AP������T������,�WB�D�D �B
ABA8�oB�E�D �D(�D0N
(A ABBA,jB�D�D �U
ABA,<WB�D�D �B
ABA,lXB�D�D �C
ABA(�VB�D�D �_
ABD0�0A�C�G M
AAFDFA<��B�E�E �G(�G0�]
(C BBBH<C4PA�A�N ~
AAHw
AAG����O��v8�B�D�A �D(�G@]
(A ABBK<�B�B�B �A(�A0�H
(A BBBIDD�B�E�E �E(�D0�F8�D@z8A0A(B BBBL��B�N�E �I(�D0�D8�J�i
8A0A(B BBBEL��B�E�E �E(�A0�A8�G��
8A0A(B BBBAd,HB�B�B �B(�A0�A8�DP{
8C0A(B BBBK�
8K0D(B BBBIL�xB�B�B �B(�A0�A8�D�S
8A0A(B BBBA@�pB�J�D �D0m
 AABKT
 AABAL(	B�B�E �B(�A0�A8�G��
8D0A(B BBBFTx	�K�I�B �B(�A0�D8�Gpr
8C0A(B BBBFn������\�	�F�B�D �D(�J0V(A ABBJ����H0����x
(G� A�B�B�L0
D
(X
HE�D�G \
AAB�
!J�L��
yJ�f��
��
$�
^E�D�G DDA'0 �E�D�D w
DAGDAAT2\U8l�F�E�D �C(�G@�
(A ABBH�#HZ�h�iE�t
Ge�9E�N ^CH�B�E�E �E(�H0�H8�Gpw
8D0A(B BBBD�`}	F�B�E �J(�A0�A8�J�G
8A0A(B BBBD��Q�]�A�;�Q�[�A�p�Q�\�C�]�Q�[�A�H�iF�B�D �I(�J0[
(A ABBHD(P DBBL<
�F�E�E �E(�D0�C8�L@
8C0A(B BBBE	+B ]y!��"��# �7�A�bk��{�P�8�k���p&��7�qJv�� �������<
^�s
��
�
���
���
�,�[h
����h
�T�p
�	T4�]`;y����f���$�A�b��� ����������9�"O�kG��W��W�G���Po���*�j*0�H0WS�n���X���F��V�F��	P0(	�J	%j	��}	%�	s�	0C�	s&
�N
�i
��
*�
���
���
*!.0�D�W!v��0v���� ��
� =M"k� ��M"��"�P"�
�"0
�4P
#�c
` t
�4�
�9�
�4��
�9�
�?�9H$�?XXA��?x�XA��A
`Ap.�AU�Hz�A��H��^��H���^���^�_<�_k�_��_��_��_`.`G1`^1`|�`��`�@a�@a�[a[a/�aJ�am�a��a��b��b��b�	
�b'�cB�cZ�cp�c�hd�hd��d�d$eDe^�qv e���q�}{�}{��{�{�| !"#/;K`t

$%&������
,GOVkz���������_'�_G�_HV`!`@`yo�`��@a�`a^��a'��a���b2���b���c# 4dhJpdia�d9t��r}	���{i��{�.annobin_regcomp.c.annobin_regcomp.c_end.annobin_regcomp.c.hot.annobin_regcomp.c_end.hot.annobin_regcomp.c.unlikely.annobin_regcomp.c_end.unlikely.annobin_regcomp.c.startup.annobin_regcomp.c_end.startup.annobin_regcomp.c.exit.annobin_regcomp.c_end.exit.annobin_swap_node.start.annobin_swap_node.endswap_node.annobin_select_str_opcode.start.annobin_select_str_opcode.endselect_str_opcodeCSWTCH.173CSWTCH.174.annobin_renumber_by_map.start.annobin_renumber_by_map.endrenumber_by_map.annobin_numbered_ref_check.start.annobin_numbered_ref_check.endnumbered_ref_check.annobin_quantifiers_memory_node_info.start.annobin_quantifiers_memory_node_info.endquantifiers_memory_node_info.annobin_get_min_match_length.start.annobin_get_min_match_length.endget_min_match_length.annobin_get_max_match_length.start.annobin_get_max_match_length.endget_max_match_length.annobin_check_type_tree.start.annobin_check_type_tree.endcheck_type_tree.annobin_subexp_inf_recursive_check.start.annobin_subexp_inf_recursive_check.endsubexp_inf_recursive_check.annobin_subexp_inf_recursive_check_trav.start.annobin_subexp_inf_recursive_check_trav.endsubexp_inf_recursive_check_trav.annobin_subexp_recursive_check.start.annobin_subexp_recursive_check.endsubexp_recursive_check.annobin_subexp_recursive_check_trav.start.annobin_subexp_recursive_check_trav.endsubexp_recursive_check_trav.annobin_noname_disable_map.start.annobin_noname_disable_map.endnoname_disable_map.annobin_disable_noname_group_capture.start.annobin_disable_noname_group_capture.enddisable_noname_group_capture.annobin_setup_subexp_call.start.annobin_setup_subexp_call.endsetup_subexp_call.annobin_get_char_length_tree1.start.annobin_get_char_length_tree1.endget_char_length_tree1.annobin_concat_opt_exact_info.start.annobin_concat_opt_exact_info.endconcat_opt_exact_info.annobin_add_rel_addr.start.annobin_add_rel_addr.endadd_rel_addradd_abs_addr.annobin_add_bytes.start.annobin_add_bytes.endadd_bytes.annobin_add_bitset.start.annobin_add_bitset.endadd_bitset.annobin_add_length.start.annobin_add_length.endadd_length.annobin_add_mem_num.start.annobin_add_mem_num.endadd_mem_num.annobin_add_opcode.start.annobin_add_opcode.endadd_opcode.annobin_add_opcode_rel_addr.start.annobin_add_opcode_rel_addr.endadd_opcode_rel_addr.annobin_add_compile_string.start.annobin_add_compile_string.endadd_compile_string.annobin_add_compile_string_length.isra.0.start.annobin_add_compile_string_length.isra.0.endadd_compile_string_length.isra.0.annobin_get_head_value_node.part.3.start.annobin_get_head_value_node.part.3.endget_head_value_node.part.3.annobin_comp_distance_value.part.6.start.annobin_comp_distance_value.part.6.endcomp_distance_value.part.6dist_vals.13739.annobin_select_opt_exact_info.start.annobin_select_opt_exact_info.endselect_opt_exact_infoByteValTable.13735.annobin_add_mml.isra.11.start.annobin_add_mml.isra.11.endadd_mml.isra.11.annobin_setup_look_behind.isra.23.start.annobin_setup_look_behind.isra.23.endsetup_look_behind.isra.23.annobin_alt_merge_opt_exact_info.isra.25.start.annobin_alt_merge_opt_exact_info.isra.25.endalt_merge_opt_exact_info.isra.25.annobin_concat_opt_exact_info_str.isra.27.start.annobin_concat_opt_exact_info_str.isra.27.endconcat_opt_exact_info_str.isra.27.annobin_optimize_node_left.start.annobin_optimize_node_left.endoptimize_node_leftclean_info.13876.annobin_set_bm_skip.isra.28.start.annobin_set_bm_skip.isra.28.endset_bm_skip.isra.28.annobin_compile_length_tree.start.annobin_compile_length_tree.endcompile_length_tree.annobin_update_string_node_case_fold.isra.38.start.annobin_update_string_node_case_fold.isra.38.endupdate_string_node_case_fold.isra.38.annobin_expand_case_fold_make_rem_string.start.annobin_expand_case_fold_make_rem_string.endexpand_case_fold_make_rem_string.annobin_expand_case_fold_string.start.annobin_expand_case_fold_string.endexpand_case_fold_string.annobin_compile_tree.start.annobin_compile_tree.endcompile_treecompile_tree_empty_check.annobin_compile_tree_empty_check.start.annobin_compile_tree_empty_check.end.annobin_onig_get_default_case_fold_flag.start.annobin_onig_get_default_case_fold_flag.end.annobin_onig_set_default_case_fold_flag.start.annobin_onig_set_default_case_fold_flag.end.annobin_onig_bbuf_init.start.annobin_onig_bbuf_init.end.annobin_onig_free.start.annobin_onig_free.end.annobin_onig_free_body.start.annobin_onig_free_body.end.annobin_onig_memsize.start.annobin_onig_memsize.end.annobin_onig_region_memsize.start.annobin_onig_region_memsize.end.annobin_onig_transfer.start.annobin_onig_transfer.end.annobin_onig_chain_link_add.start.annobin_onig_chain_link_add.end.annobin_onig_chain_reduce.start.annobin_onig_chain_reduce.end.annobin_onig_init.start.annobin_onig_init.endonig_inited.annobin_onig_reg_init.start.annobin_onig_reg_init.end.annobin_onig_end.start.annobin_onig_end.end.annobin_onig_is_in_code_range.start.annobin_onig_is_in_code_range.end.annobin_onig_is_code_in_cc_len.start.annobin_onig_is_code_in_cc_len.end.annobin_onig_is_code_in_cc.start.annobin_onig_is_code_in_cc.end.annobin_setup_tree.start.annobin_setup_tree.endsetup_tree.annobin_onig_compile.start.annobin_onig_compile.end.annobin_onig_new_without_alloc.start.annobin_onig_new_without_alloc.end.annobin_onig_new.start.annobin_onig_new.end.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE___stack_chk_failonig_reduce_nested_quantifieronig_node_freeonig_renumber_name_tableonig_name_to_group_numbersonig_scan_env_set_error_stringonigenc_mbclen_approximatereallocmemcpyonig_node_new_anchoronigenc_strlenmalloconig_node_str_setonig_node_new_stronig_node_str_catonig_node_list_addonig_node_new_altonig_node_new_listonig_get_default_case_fold_flagOnigDefaultCaseFoldFlagonig_set_default_case_fold_flagonig_bbuf_initonig_freeonig_free_bodyonig_names_freeonig_memsizeonig_region_memsizeonig_transferonig_chain_link_addonig_chain_reduceonig_initonigenc_initonig_reg_initonig_endonig_free_shared_cclass_tableonig_free_node_listonig_is_in_code_rangeonig_is_code_in_cc_lenonig_is_code_in_cconig_node_new_encloseonigenc_ascii_is_code_ctypeonig_compileonig_parse_make_treeonig_new_without_alloconig_new����������CLb4t���������$,Dp
��
���t
�e�������������������������������������������_���������������������������������������4���������&������������������������������������������������]�������������������-����������`�||z|�|Q ���������w!����������"���������#\<$�>%|.���������5.|F0|U2|�2|S3|o4|�4����������5���������M7���������8����������9��=����������=���������)@����������@���������A���������A���������$A���������TA���������uA����������A����������B���������C����������C����������C���������WD����������D����������D����������D���������)E���������9E���������CE���������UE���������lE����������E����������E���������,F���������eF���������|F����������F����������F���������G���������:G���������hG����������G����������G���������
H���������RH���������cH����������H����������H����������H����������H����������H����������H����������H����������H����������H�JS����������S���������(T���������AW����������W���������e]���������C^����������_*����������_*����������_���������`���������V`���������g`���������x`����������`����������`����������`���������xa���������8b����������b���������b���������b����������b���������c����������c����������c����������c���������d��������<e�g����������g���������1h���������Vh���������mh���������Om���������m����������m����������m���������
n���������Wn���������wn���������q���������Zq���������q���������r����������r���������s����������u����������u���������4v���������Fv����������v���������nw����������w����������x����������x����������x���������y���������Kz���������X{���������e{����������{*����������{���������|���������(|*���������:|���������H|���������}|��������'`����������`����������a���������zb���������e���������{�������� ����$,�P�Xk���k�k���k���D�Lpx����������0�8
d�l
�
��
�
��
��
��$�
,�P�Xh
���h
�h
�T�h
�TT�DTL�p�x�������0�8�d�l�������������$�,�P�XG���G�G���G��	�	*D	�L	*p	*x	��	*�	��	��	�
�
�0
�8
Fd
�l
F�
F�
��
F�
��
��
%$�,%P%Xs�%�s�s���s���*D�L*p*x!�*�!�!��
!
�0
�8
� d
�l
� �
� �
M"�
� �
M"�
M"�
�"$M",�"P�"X�4��"��4��4��9��4��9�9�?D�9L�?p�?xXA��?�XA�XA��AXA�A0�A8�Hd�Al�H��H��^��H��^��^��_$�^,�_P�_X�_��_��_��_��_��_��_�_`D�_L`p`x1`�`�1`�1`��`1`�`0�`8@ad�`l@a�@a�[a�@a�[a�[a��a$[a,�aP�aX�a��a��a��a��b��a��b�b�bD�bL�bp�bx�c��b��c��c��c�c�c0�c8hdd�clhd�hd��d�hd��d��d�e$�d,ePeX�q�e��q��q�}{��q�}{}{�{D}{L�{p�{x�|��{��| � � � ������� �$�(�,�0�4t8�<T@XD�HxLTPXT\X�\�`�dTh8l�pxt	x||������L�H�|���L	��	��
��
��
�\
�`
��$���L����

�$
��������
���
��
��
��(�����`L�� k$�(P,084�8�<d@hDlH`LDP�TdX�\�`PdhDlHp�t�x�|�����)�T$��(�g$�`&�t'��)��)��*��$��*��;��:�:�:��:�$;��;��9�P:��:��:��I�$J��J��J��J�L��L��K@I|I�I`e|e�e�e`f Dg$�h(�h,�e0Df <�Pp��� ��L��
��
l��p
�`�X����<����P�@0p����P�@0T����0�0��� HP"�#��40�9��?�`A,	�A|	�H�	�^4
�_H
�_\
�_�
`�
@`�
�`�
@a�
`a�a$�aX�bp�b��c�d�pd��d edr��{@
�{.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rela.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@(�T(�l(��(��(�'��|"@x��(-P}3T}=T}�8@�(
S�b��]@ 
0(
|ܗ�ܗ��@P
0(��������@�
0(��������@�
0(`�� @�
8
(0�.����|�S�'�!�/�B�T�c�s� �0��
�@�(&���)�	�����regenc.o/       1690381920  1000  135   100644  33792     `
ELF>�x@@-,

 "#$%��1��f���H�H���H�H�81��ff.�@��UH��SH��H�����
���|�H��[]�f�H)�H����)�[]�ff.�@��AUI��ATI��L��UH��H��L��SH��H���UhH��I9�v
�E9EuH�H�H��H��[]A\A]��H��H��L���H�H���ff.���AVI��AUM��ATI��L��UH��H��L��SH��UhH��I9�v1M��tI�E�E9EtH��L��H���H�H�H��[]A\A]A^ÐM��t�H��I�E[]A\A]A^����H��I��H9�vH�r�L�OhH��L��H��A��D1��D��H��tXAUH��ATUSA�X�H��E��~7I��H��I��H9�w�%������tH9�sH�p�L��L��H��A�T$hH��u�1�H��[]A\A]�1��ff.����AUATI��USH��H����~#I���i�f�H��L��L����H�HÃ��u�I9ܸHC�H��[]A\A]�ff.���AUATUSH��H9�s=I��H��H��E1�H��L��H��A���H�H�H9�w�H��D��[]A\A]�fDH��E1�[D��]A\A]�ff.�@��ATI��U1�SH��;u;A�D$��t"H�S~+�{t
�#�:u��H����u��[]A\��Ict$H��L���H��H�H����ATI��UH��SH����;u;A�T$��t"H�K~+�{t
�#�9u��H����u�)��[]A\�fDIct$H��L��H��H�H��ff.����ff.���I��H�GhH��H��H��L������AWA�aAVA�AAUI��ATI��USH�H��H�l$�fDD�{D�3H��D�|$L��H��D��A�Յ�u&D�t$L��H��D��A�Յ�uH�
H9�u�H��[]A\A]A^A_�ff.�����P���v)�P�1���wH�H���� �A��H�H���� �A��ff.����AWAVA��L��AUA����1�ATM��UL��SH��L��H�����uYE��~gA�E�L�l$L�|��*���{L��L��D$�Յ�u#H��L9�t-�CL��L��;�D$�Յ�t�H��[]A\A]A^A_�@1�E��t�H�t$L��H�ssH�D$�����@��A���L�T$���P���wvH�I�A��� A�BA�8SuI��tEI�@I9�v<A�@���<Su0H�A�B�I�B��H�A�JI���f��P���w(H�I�A��� A�BA�8st����<�u��u_��~>��N9�t�9�t7H���W�H�<��f.���N9��s���H��9�tH9�u�1��H�A�RI���H�ssH�I�zH�SSI�I�BI�zH�� I�B(I�B<H�SsI�BD�I�z0����������fD��1�H9�s1��?
���ff.����H�H�����H��ff.�@����fD���������fD�����w	@�>��PH���H�5H�81����H��������fD��1��f���1���wH������x������UH��SH��H���w9wtH��H��H�����H�}�E��~&H9�v!H����H9�vH���J���ȍJ)�9��H��[]�ff.���ATUSH�*�E��xH�
�A��H�[]A\ÐL��I�ԋG9GtH��H��H�����~%�x�1��f�H���t
@�4H�qH9�u�Hc�I$[]A\�ff.�@������v���%�-��ff.��������u����u1�����������UH��H��SH�ZH�����t��"H��H�Z@�0�G9GtH��H��H���Hc�H��H)�H9�u
H��[]�H�p�����ff.�@��UH��SH�ZH�����tW����H��H�Z����H�C���tV��+H�X@�0�G9GtH��H��H���Hc�H��H)�H9�u7H��[]�H����u����tH��H���DH9�u�H��H���H�p���������v7�Ѓ��t
1���t�D��H��H��H����R(����H����ÐH������p����ff.����f.���E����AVI��AUATI��USH��H9�s]A�@�H��L�l�0�I���E9EtH��L��H���H�H�M9�t4I9�vH��L��H��U A�)�t�[��]A\A]A^�A�[]A\��A]A^Ð1�[]��A\A]A^�1҉��ff.���E����AWI��AVAUI��ATUSH��H��H9�sA�@�I��H�-L�d�-f�I��A�FA9FtL��H��L���H�I�M9�tJL9�v=L��H��L��A�V ��H��DA��T)�t�H����[]A\A]A^A_�fDA���f�1���1҉�����AWAVAUI��ATI��UH��SH�L���H���A�Ƹ��H��L9�t7�D9�u�H�KE��L��L��H�����u֋CH��[]A\A]A^A_�@H���!���[]A\A]A^A_�ff.����AWAVI��AUM��ATI��UH��SH��A�A�H�9�;M�υ�u~���H�L$H��t~H���H�L$H����H�A�A�]Hc�L�4�I�<$td�CH��A�E��KI�<$H��Hc�H�T�1�H��[]A\A]A^A_�D�H�L$Hc�H��H��u�H���H�L$�D��I�$H��tA�]냸����������GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign%u out of char rangeAlnum
AlphaBlankCntrlDigitGraphLowerPrintPunctSpace	Upper
XDigitASCIIWordAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~�����������������������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~�����������������������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�����������������������������������������������������������������������������������������������������������������������������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0D0XAE�D�G T
AAJGHA8�eF�E�G �J(�G0\
(D ABBHH�yF�E�E �G(�J0�v
(A BBBBQ(A BBB+<(dK�E�A �A(�H0@(A ABBA����4hRF�B�D �A(�G0w(A ABBH�aF�B�A �A(�D0r
(D ABBGD(D DBB(�mF�D�C �w
ABI,rF�D�D �@
ABGH\Dp�F�H�H �E(�D0�A8�KP\8A0A(B BBB�TH��F�B�H �I(�D0�D8�JPf
8A0A(B BBBEx,
@T!h
|�
�0V��
�� $bE�D�G OAA40�F�A�A �c
ABBMABh$|-(�aE�G�H ~
AAD(��E�D�H \
AAA�UiR`�O�E�B �D(�A0�[
(C BBBAE
(A BDBBC(A DBBA�����Px�O�E�B �E(�A0�A8�G@q
8C0A(B BBBGL������\��F�B�B �E(�D0�D8�R@H
8A0A(B BBBED8F0A(B BBBH,�F�B�E �E(�D0�D8�DP�
8A0A(B BBBFx!)?"Yt#��$��%�3_��1�1	�1�c����y	y3�[�|��r�r���.]O]w�������0	_	�����-a����XX?juj�������L�y�����	�7	�f	 �	 �	(
(?
:y
:�
G�
GpEpl����a	�a	�	3�	]�	��	�1
�1
��

�
F
Em
�
U�
E�
V�
V6a����d
���d
0h`h�v"#$%!������	

 &'(
7Mh �@A��e�y��+�d R*�a9�mM`rf����������T�-�xY`
�p��!����
���
:�0Zir �0
�@�P �*pbB��\p	$w�	-��	a�@
���
U�P�`��-��Tp
�w2���p����!�>.annobin_regenc.c.annobin_regenc.c_end.annobin_regenc.c.hot.annobin_regenc.c_end.hot.annobin_regenc.c.unlikely.annobin_regenc.c_end.unlikely.annobin_regenc.c.startup.annobin_regenc.c_end.startup.annobin_regenc.c.exit.annobin_regenc.c_end.exit.annobin_onigenc_init.start.annobin_onigenc_init.end.annobin_onigenc_get_default_encoding.start.annobin_onigenc_get_default_encoding.end.annobin_onigenc_set_default_encoding.start.annobin_onigenc_set_default_encoding.end.annobin_onigenc_mbclen_approximate.start.annobin_onigenc_mbclen_approximate.end.annobin_onigenc_get_right_adjust_char_head.start.annobin_onigenc_get_right_adjust_char_head.end.annobin_onigenc_get_right_adjust_char_head_with_prev.start.annobin_onigenc_get_right_adjust_char_head_with_prev.end.annobin_onigenc_get_prev_char_head.start.annobin_onigenc_get_prev_char_head.end.annobin_onigenc_step_back.start.annobin_onigenc_step_back.end.annobin_onigenc_step.start.annobin_onigenc_step.end.annobin_onigenc_strlen.start.annobin_onigenc_strlen.end.annobin_onigenc_strlen_null.start.annobin_onigenc_strlen_null.end.annobin_onigenc_str_bytelen_null.start.annobin_onigenc_str_bytelen_null.end.annobin_onigenc_set_default_caseconv_table.start.annobin_onigenc_set_default_caseconv_table.end.annobin_onigenc_get_left_adjust_char_head.start.annobin_onigenc_get_left_adjust_char_head.end.annobin_onigenc_ascii_apply_all_case_fold.start.annobin_onigenc_ascii_apply_all_case_fold.end.annobin_onigenc_ascii_get_case_fold_codes_by_str.start.annobin_onigenc_ascii_get_case_fold_codes_by_str.end.annobin_onigenc_apply_all_case_fold_with_map.start.annobin_onigenc_apply_all_case_fold_with_map.end.annobin_onigenc_get_case_fold_codes_by_str_with_map.start.annobin_onigenc_get_case_fold_codes_by_str_with_map.end.annobin_onigenc_not_support_get_ctype_code_range.start.annobin_onigenc_not_support_get_ctype_code_range.end.annobin_onigenc_is_mbc_newline_0x0a.start.annobin_onigenc_is_mbc_newline_0x0a.end.annobin_onigenc_ascii_mbc_case_fold.start.annobin_onigenc_ascii_mbc_case_fold.end.annobin_onigenc_single_byte_mbc_enc_len.start.annobin_onigenc_single_byte_mbc_enc_len.end.annobin_onigenc_single_byte_mbc_to_code.start.annobin_onigenc_single_byte_mbc_to_code.end.annobin_onigenc_single_byte_code_to_mbclen.start.annobin_onigenc_single_byte_code_to_mbclen.end.annobin_onigenc_single_byte_code_to_mbc.start.annobin_onigenc_single_byte_code_to_mbc.end.annobin_onigenc_single_byte_left_adjust_char_head.start.annobin_onigenc_single_byte_left_adjust_char_head.end.annobin_onigenc_always_true_is_allowed_reverse_match.start.annobin_onigenc_always_true_is_allowed_reverse_match.end.annobin_onigenc_always_false_is_allowed_reverse_match.start.annobin_onigenc_always_false_is_allowed_reverse_match.end.annobin_onigenc_ascii_is_code_ctype.start.annobin_onigenc_ascii_is_code_ctype.end.annobin_onigenc_mbn_mbc_to_code.start.annobin_onigenc_mbn_mbc_to_code.end.annobin_onigenc_mbn_mbc_case_fold.start.annobin_onigenc_mbn_mbc_case_fold.end.annobin_onigenc_mb2_code_to_mbclen.start.annobin_onigenc_mb2_code_to_mbclen.end.annobin_onigenc_mb4_code_to_mbclen.start.annobin_onigenc_mb4_code_to_mbclen.end.annobin_onigenc_mb2_code_to_mbc.start.annobin_onigenc_mb2_code_to_mbc.end.annobin_onigenc_mb4_code_to_mbc.start.annobin_onigenc_mb4_code_to_mbc.end.annobin_onigenc_mb2_is_code_ctype.start.annobin_onigenc_mb2_is_code_ctype.endonigenc_mb2_is_code_ctype.localalias.2.annobin_onigenc_mb4_is_code_ctype.start.annobin_onigenc_mb4_is_code_ctype.end.annobin_onigenc_with_ascii_strncmp.start.annobin_onigenc_with_ascii_strncmp.end.annobin_onigenc_with_ascii_strnicmp.start.annobin_onigenc_with_ascii_strnicmp.end.annobin_onigenc_minimum_property_name_to_ctype.start.annobin_onigenc_minimum_property_name_to_ctype.endPBS.12587.annobin_onigenc_property_list_add_property.start.annobin_onigenc_property_list_add_property.end.annobin_onigenc_property_list_init.start.annobin_onigenc_property_list_init.end.LC0.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouponigenc_initonigenc_get_default_encoding_GLOBAL_OFFSET_TABLE_OnigEncDefaultCharEncodingonigenc_set_default_encodingonigenc_mbclen_approximateonigenc_get_right_adjust_char_headonigenc_get_right_adjust_char_head_with_prevonigenc_get_prev_char_headonigenc_step_backonigenc_steponigenc_strlenonigenc_strlen_nullonigenc_str_bytelen_nullonigenc_set_default_caseconv_tableonigenc_get_left_adjust_char_headonigenc_ascii_apply_all_case_foldOnigAsciiLowerMaponigenc_ascii_get_case_fold_codes_by_stronigenc_apply_all_case_fold_with_maponigenc_get_case_fold_codes_by_str_with_maponigenc_not_support_get_ctype_code_rangeonigenc_is_mbc_newline_0x0aonigenc_ascii_mbc_case_foldOnigEncAsciiToLowerCaseTableonigenc_single_byte_mbc_enc_lenonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbcrb_eRangeErrorrb_raiseonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchonigenc_always_false_is_allowed_reverse_matchonigenc_ascii_is_code_ctypeOnigEncAsciiCtypeTableonigenc_mbn_mbc_to_codeonigenc_mbn_mbc_case_foldonigenc_mb2_code_to_mbclenonigenc_mb4_code_to_mbclenonigenc_mb2_code_to_mbconigenc_mb4_code_to_mbconigenc_mb2_is_code_ctypeonigenc_mb4_is_code_ctypeonigenc_with_ascii_strncmponigenc_with_ascii_strnicmponigenc_minimum_property_name_to_ctypeonigenc_property_list_add_propertyrealloconig_st_insert_strendmalloconig_st_init_strend_table_with_sizeonigenc_property_list_initOnigEncISO_8859_1_ToUpperCaseTableOnigEncISO_8859_1_ToLowerCaseTableOnigEncAsciiToUpperCaseTableOnigEncodingASCII*���������'*�������������������J���������M�������������������R�������������������3����<����������*���������	*���������l�����������������^*��������������������*���������(	���������
����������
���������3*�������������������C*���������h����������f������������������2
����������
����������
������������������8���������N��������� k��$,PX����1��11�D1L�p�x��������y�y0y8�dyl���������r$,rPrX��r�����]���]]�D]L�p�x��������	�	0	8�d	l����������$,�P�XX���X�X�j�X�j	j	�D	jL	�p	�x	��	��	��	��	�
�
�0
�8
�d
�l
��
��
��
��
��
��
 $�, P X(� �(�(�:�(�::GD:LGpGxp�G�p�p��
p
�0
�8
a	d
�l
a	�
a	�
�	�
a	�
�	�
�	�
�	$�	,�	P�	X1
��	�1
�1
��
�1
��
�
ED�
LEpExV�E�V�V�V08�dl����d
���d
�d
�h$d
,hPhXv�h�v g h
 i
 j� 4H \@����,�l ����`L�`�t����0`DpX�l�������� �0�@�Pp4�lp	��	��	�@
��
P`|��0p
|p.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.rela.data.rel.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*mT*nl*o�*p�*q'�v"@@_*-636=8�8@Xb�*
S� b� �]@Hr0*
|�"��"��@xr0*�t$�t$��@�r0*�H&�H&��@�r0*2(@(� '�/"@s*10�/.�0�0|0S0'0:0H0[0m0|0�0 �80��@ s�*(�60+�	�HPw�regerror.o/     1690381920  1000  135   100644  19544     `
ELF>�A@@+*

 !"#��1�H����H�������H��*�������H��"�������H�H��o����>��H�H��m����$H��H�����H�H�HE��fDH����6dH�������H�H�������H�H�����H���H���H�H�HE���H����vTH�H����j��H�H����SH��FH���H�H�HE���H�H����=H�H����H���H���H�H�HE���H�H�����H�H�����H���H�H�HE���H�H�����H�H����uH���H�H�HE���H�H����F-H�H����3H�H�HN��f�H�H����H���H���H�H�HE��H�H�����H�H�HN��@H��4�����YH�H��0�������H�H��.����zH��mH��,���H�H�HE��@H�H��8����;*H�H��6����%H�H�HN��H�H�����H���H���H�H�HE��H�H��2�����H�H�HN��f�H�H��&�����*H�H��$����}H�H�HN��H�H��(���tWH�H�HN��DH�H�� ���t/H�&H��p���H�H�HE��DH���H���H���H���H���H���H�����AWH���AVI��AUATUSH��H�4$H��$�dH�%(H�D$h1�H��$��D$(H�D$0H�D$pH�D$8H��w�H��uiH�<$1��H��H��t&H�=H���L��H��Lc�L��L��M��A�H�T$hdH3%(���H�Ĩ[]A\A]A^A_�@H�D$8�D$(H�@L� L�hH�hA�|$�I9���E1�H�D$@1�H�|$M��H�D$M�����D�S=��vD�[
A����A��D�T$��D��H�
�H�������A��H�D$J�<01���{E��1�Hc��H|$H�����H�
�D�T$D��A�GA9GtL��L��H���H�Lc�H�M����I9���L��L��H��A�W M��A�ă��*�����B�D4@�I)�H�|$@�H��I��A�MN�1�Mc�L��L�D$�I��L�D$��H�<$L�D$H�l$@�L�D$L��I��M��A�$��tI�T$<%t!I�ԈH��A�$��u���D)�����f�A�D$I�T$<nu�H��L��H���H��L����I����L�t$1�I9����b���fDH�D$E��H�
H�����A���D�\$J�<01�D�T$�L�t$�{E��A��Hc�H�
1�L�E���H������Hc|$D��H�
��H������A��L�1���{E��1�Hc�H�
�H�����L��D�\$D�����f.��..�A.H��f�A����E1�����ff.�f���AWI��AVI��AUI��L��ATM��USHc�H��H��(H�L$`�L��L)�H�H�D�H9�wH��([]A\A]A^A_�L���H�=L��A�: /�Lc�M�M9��H�\$�&f�A�\A�I��I��A�G�M9���A�<\��</t�L��L��L������DA�E�D$A9EtL��L��L����D$A�E�L$L��D�$���J�$)�~]H��D�E��1�H�
�H���H�=H����P���~�H�DL��H��@�H9�u��$M�|)��HcL$���HI�I�M9������/fA�H��([]A\A]A^A_��A�\I�nM�GA�EA9EtL��L��H��L�$�L�$�p����H�N�A�A�H��H9�u�L�NN�t
O�<���@A�>L��I�nA�UX��uA�>L��	A�UX��tSA�I��I��A�G��L����D$���@����H�1�H���f�H��A�A�H�PH9�u�Hc�H�EI�I��
���E���H��H�
�H�=H����P���~)H�DL��H�ޤH9�u�M�|I�����M��I�����I�����D��H�����t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$��D$0H�D$H�D$ H���D$0H�D$ H�D$P�H����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignno support in this configurationinvalid combination of optionsnot supported encoding combinationtoo many capture groups are specifiedinvalid character property name {%n}group number is too big for capture historymultiplex definition name <%n> callundefined group <%n> referenceinvalid char in group name <%n>numbered backref/call is not allowed. (use name)too short multibyte code stringtoo many multibyte code ranges are specifiedmismatch multibyte code length in char-class rangeupper is smaller than lower in repeat rangetoo big number for repeat rangeinvalid repeat range {lower,upper}invalid pattern in look-behindend pattern with unmatched parenthesistarget of repeat operator is invalidtarget of repeat operator is not specifiedunmatched range specifier in char-classchar-class value at start of rangechar-class value at end of rangecan't convert to wide-char on specified multibyte-encodingdefault multibyte-encoding is not setmismatchundefined error codeover thread pass limit counttoo big wide-char valueinvalid code point valuenever ending recursionmultiplex defined name <%n>undefined name <%n> referenceinvalid group name <%n>group name is emptytoo long wide-char valuetoo short digitsinvalid backref number/nametoo big backref numberempty range in char classtoo big numberinvalid conditional patterninvalid POSIX bracket typeundefined group optionend pattern in groupunmatched close parenthesisnested repeat operatorinvalid control-code syntaxinvalid meta-code syntaxend pattern at controlend pattern at metaend pattern at escapepremature end of char-classempty char-classend pattern at left bracketend pattern at left braceinvalid argumentmatch-stack limit overunexpected bytecode (bug)undefined bytecode (bug)stack error (bug)internal parser error (bug)undefined type (bug)failed to allocate memory\x%02x%02xGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx��H0�F�I�E �B(�A0�A8�G��
8A0A(B BBBE`|�F�E�E �H(�D0�A8�J``
8A0A(B BBBAK
8A0A(B BBBI ��K�Y�S�L-E a~!��"��#:�a���������)t !"#Q;V([H`	ej�p�v�|����������g�9� �K���|�������!���X��Q�e�:���
X"�(`.4F:H@hF�LoR�X/^�dj�plv�|8�����p���S��0�������{���������	

$%&)�C�Zp�����������.annobin_regerror.c.annobin_regerror.c_end.annobin_regerror.c.hot.annobin_regerror.c_end.hot.annobin_regerror.c.unlikely.annobin_regerror.c_end.unlikely.annobin_regerror.c.startup.annobin_regerror.c_end.startup.annobin_regerror.c.exit.annobin_regerror.c_end.exit.annobin_onig_error_code_to_format.start.annobin_onig_error_code_to_format.end.annobin_onig_error_code_to_str.start.annobin_onig_error_code_to_str.end.annobin_onig_vsnprintf_with_pattern.start.annobin_onig_vsnprintf_with_pattern.end.annobin_onig_snprintf_with_pattern.start.annobin_onig_snprintf_with_pattern.end.LC6.LC4.LC5.LC2.LC3.LC38.LC36.LC37.LC35.LC54.LC52.LC51.LC53.LC62.LC60.LC59.LC61.LC0.LC1.LC63.LC56.LC57.LC55.LC46.LC44.LC43.LC45.LC48.LC49.LC47.LC40.LC39.LC41.LC22.LC20.LC21.LC19.LC30.LC28.LC27.LC29.LC32.LC33.LC31.LC24.LC23.LC25.LC14.LC12.LC11.LC13.LC16.LC15.LC17.LC8.LC9.LC7.LC58.LC42.LC26.LC10.LC18.LC50.LC34.LC64.LC65.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouponig_error_code_to_formatonig_error_code_to_str_GLOBAL_OFFSET_TABLE_OnigEncodingASCIIonigenc_str_bytelen_nullmemcpy__sprintf_chkonigenc_mbclen_approximate__memcpy_chk__stack_chk_failonig_vsnprintf_with_patternruby_vsnprintfstrlenonig_snprintf_with_patternH��������b��������v��������� ���������!���������"���������#���������$��������� ���������%��������&��������6'��������G(��������X ��������_)��������s*���������+���������,��������� ���������-���������.���������/��������� ���������0��������1��������2��������) ��������03��������C4��������V5��������g6��������n7���������8���������9��������� ���������:���������;���������<���������=���������>��������?�������� @��������4 ��������;A��������KB��������aC��������uD��������|E���������F���������G��������� ���������H���������I���������J���������K���������L��������	M��������N��������$O��������3P��������CQ��������JR��������[S��������kT��������{ ���������U���������V���������W���������X���������Y���������Z���������[���������\��������vz���������*}���������~�����������������^]�������������������^����������������������������<���������[z������������������]�������� ���������9^��������S���������b^��������~����������^����������������������������	���������F	���������M	*}��������]	~���������	����������	���������
]��������'
���������.
*}��������6
~���������
����������]�������������������*}���������~��������h��������� ���$,�P�X��������������tD�Lt  
 
  4����.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@(_T(`l(a�(b�(c'�t"@�2P
(-4
34
=4
T8@ =�(
S�b��]@�>0(
|\�\��@?0(�0�0��@0?0(����@`?0(2�2��)0�.����|�S�'�2�@�S�e�t��� ���@�?`(&� �)z	�-6�?�regexec.o/      1690381920  1000  135   100644  56336     `
ELF>P�@@+*

 !"#AWAVAUI��ATU��SL��H��H�H�T$(L�t$@L�d$`H�L$ dH�<%(H�|$x1�J�<H�D$8H��H�|$H�|$(H�|$H�|$8H�|$H9D$��M��L��H��H�t$��A�U8M��L��H��A��H�t$��A�U8A9�uHE��~8�D$`8D$@u8A�G�L��I�LL�����2@80uH��H��H9�u�H�D$(�@1�H�\$xdH3%(u&H�Ĉ[]A\A]A^A_�H�D$8H�\$ H�����ff.�I���������AWI��AVAUI��ATI��USH��(L�7H�*H�H�L$L�L$L)�H��H��L��I9�ty�K���t��H9�wTH��L��L�\$H��L�$H���L�$L�\$H��H��tfL)�H�1�H�I�/I�MI�$H��([]A\A]A^A_�f�D9�tSH���fDI�8u�H��H�$H���H�$H��t"L��H���H���L;t$tH�D$M�0L������뗸�됐A���AVAUATI��US��H��I��E��H��H��H��L��S ��
t[HcC9CtH��H��L���H�M�,L9�vH��H��L��S ��
��H��H��L��S������[]A\A]A^��E��u+[�]A\A]A^�D[H�GH��H��]L��A\A]A^��H��L��L��H���H��t�H��H��H��S ��
�����H��H��L��S ��
�g����f�UM��H��AWAVAUATSH��H��@����GH��8���D�g�w<L�oHH��x���H��(���L�7L��P���dH�%(H�]�1ۍX������w`��X���A�\Hc������H����d��H��P���H�H��H���H����H��H��H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�H�D$H��H���HDž���H���H�� ���H��P���H�}�H�@H��H��H�E��H��H��H��H%�H)�H���H��H9��,/H��H��$���@L��p����H��P���L��p���H��H�� ���H�>H��H��H����X2H�FH�}�H�����H��H��H�E�H��@���H�� ���H�������X����@4��\���Ic�H�4�Hc�H��H��h���H��p���1���x*��X���H��h���L��p���@HcЃ�I��H��9�}�H��H���H�5HDž0�������L�%H�pH��(���H��(�@�H��`���I��H�E�H�u�A�f�I�^<Y��Ic�L�>��H��P���L9x(�5<L9�8�����-L��L�����L��H��x���A�UL��������E������t(L��L�����L��H��x���A�U L�������
��>L�}�H�E�L;�x����$A�FI��I�^<Y�T���H�E�H;�H���t*H�u�H��P���H���������H)�H�H��H��H��H�CH�����HDž0����H��t�H�]�dH3%(H��0�����NH�e�[A\A]A^A_]�L��`���������0t/� tH��(���H9E���M�����tH��x���H9E���:H�E�H;�H���t*H�u�H��P���H���������H)�H�H��H��H��H�CH�����H���K����K���H�u�1�H���H��(���t��	��H��(��ы��u���7/����H�E�H�U�I��Ic^�H)�H���86�H��(L�p�H�E�H��@���HI������H�E�H�u�fDH��(���tM��t����-���u�H�HHcPH��(H��h���H��H��p���H�HHHcP0H�Ӌ��u���\���H�E����fDH�P�@H��H�R؀8t�H�E��|A�vH�E�I��1ɉ���=tI=	�����H��H�P؋@�=uۅ�u�9r��-H��(�=t�=u�f.����E�FH�u�I��1�D��H���@=tI=	�����H��H�P؋@�=uۅ�u�D9B�p-H��(�=t�=u�f����H�E�H�u�H��(���tM��t���,���u�H�HHcPH��(H��h���H��H��p���H�HHHcP0H�Ӌ��u�H�E��H�m�(A�FI�����H�E�H�U�M�^A�^H)�H���2Hc�H��`���L�xH��(L��@�H�P�L�P�H�X�H�E�A�FM���h���IcFL�����M�t�A�L�}�L������?���H�E���\���������ttH�u��H��(���������v)����)���u�H�HHcPH��h���H��p���H��H�H HcPH���f.����l)H�ȋP�H�H؄�t�H�M�H��L�pL�xL�PH�@ L�}�H��`���A��{���A�FL��`���I���g���I�FH�}�M�^1�H��p���H��L��L�<�H�u�H��D���H9�sH��(��ƀ�)1�D9H���H9�r�H��@���D�I,��D��A�����f��AO�L�h�������-H)�H���������H��H��I�H�E�H)�H����.��H��(�_�H�}�A�FM�����I�FH��p���I��L�<�A��y���I�FA�vH�}�1�H�����H�M�A��H��f�H9�sH��(��Ā�\(1�9s���H9�r�H�E�H)�H���d3A��L�H��h���I��������̉GI��H����H�H�p���H�2H�wH�0H�w H��H��(H)�H�}�H��I��H�0H��H)�H��I��H�A�FL��������A�FE�FL��L��H��x���H��8���L�����I�^	������L�����H��I���`AH�E�H�U�H)�H���.+H��P���H��H���H�U�H�u�H�}�L�����L�HI�������*��H�E�H;�H�����-H�U�H��P���H)�H�H���������H��H��H�S�-E�FH��x���L��L��H��8����H�E�H����8H��x���H��8���H��L��I�^�L�}�I��A�FI���w���A�FH�U�M�^A�^�����H�E�H)�H����;H��H+U�H�� ���H��H��L�<�H���������H��H�ωXH��@���H��(�@�H�S@L�X��@�B�:H�E����!7H�U�H)�H���49L�}��H��(H��`���Lc����L�X�L�x�L�P�M�H�p�H�E�A����A�FH�U�M�^A�^�����H�E�H)�H����9H��H+U�H�� ���H��H��L�<�H���������H��H�ωXH��@���H��(�@�H�S@L�X��@�B�4:H�E����96H�U�H)�H����8Hc����L�}��H��(H��`���L�P�L�L�x�H�P�H�X�H�E�A�FM������I�^A�A8F�u)H�E�H�U�E�^H)�H����2Ic�H��`���L�xH��(H��@�H�P�L�P�H�x�H�E�A�FI���b���A�^A�A8F��#L9�x�����#H�E�H�U�M�^H)�H����>Hc�H��`���L�xH��(L��@�H�P�L�P�H�X�H�E�A�FM�����I�VH�� ���I��L�<�H��H�U�K��H�ʋZ�KH��@����JHC@;H�i%H�u�H�ZH�U�H��H)�;�2(H����?�H��(L�z�H)�H�U�H����2H�E��H��(H�Z�H�B�H��`���L�R�H�B�H�U�L������A�L�}�L������#�H�E�A�^M�^1�H�H��(�
��0t ��Pu�1�9Z��H��(΋
��0u�9Zuͅ��Y$���M�^H�E�A�N��H�Ёx�0H�P�u�9H�u�L9x���%A�FM����H�E�H�U�M�^A�^H)�H���b.�0H��(�X�L�x�H�E�A�FM���U�I�VH�� ���I��H�u�H��H��H�U�H��H�ʋzL�E��OH��@����JHG@L��H)�;H}M;�''H����>H�U�L�vH��(L��H��`���L�~��F�H�F�H��L�V�H��H)�H�u�L�pH��@H��P���H��H���H�U�H�u�H�}�L�����L�HI��������$H�u�L������H��(H�^�L�����H�u��A�L�}�L������B�H�E�fDH��(���t�
H��(���u�u��
A�FI����H�E�H�U�H)�H���F+�H��(H�E�A�FI�����H�E��H��(���t�
H��(���u�u�L�xL�P�
L�}�A�FI���w�H�E�M�^A�vH���DH�сy�0H�Q�u�9q�u�L9y���6A�FM���4�H�E�H�U�M�^A�^H)�H���+Hc�H��`���L�xH��(L��@�H�P�L�P�H�X�H�E�A�FM�����H�E�H�U�H)�H���~'H��`����H��(H�@�L�x�L�P�H�p�H�E�A�FI����H�E�H�U�M�^I�^H)�H���n)H��h�����L�xH��p����PH����H��H���������H�PH�H�P H��H+U�H��(H��H�E�H��H�A�FM����I�GH9�x����l8IcEL��A9EtH��x���L��L���H�U�H�H�H�E�H;�x������H�U�M��A�FI��I����H�E�L9�8����l�L��L�����L��H��x���A�U L�����L���������7H�}�H;�x�����;L�����L��H��x���A�U L�����L���������7A�FL�}�I����H�E�L9�x������L�����L��H��x���L��A�U L�����L��������l7H��8���H9E���;L��L�����L��H��x���A�U L�����L���������-A�FL�}�I���z�L9�8�����/I�E L9�x����K5L�����L��L��H��x�����L�����L�����L��H��x���A��L��A�U L�����A9���*H�E����L9�8�����/I�E L9�x����5L�����L��L��H��x�����L�����L�����L��H��x���A��L��A�U L�����A9��+:A�FL�}�I��L������m�I�GH9�x�����5L��H��x���L��A�U L���������5A�EA9E�j)H�HE�M��H��H�E�A�FI��I����I�GH9�x����5L��H��x���L��A�U L���������5A�EA9E��(H�HE�M��H��H�E�A�FI��I����H�E�L9�8����V�L��L�����M�}XL��H��x���A�U L����A��L���������4H�}�H;�x����.7L�����M�}XL��H��x���A�U L����A��L��������J4A�FL�}�I����H�E�L9�x������I�MXL��L��L�����H��x���H�����A�U L��H��������L��������p4H��8���H9E��G8L��L�����M�}XL��H��x���A�U L����A��L���������*A�FL�}�I���O�L9�8����\,I�MXI�E L9�x����|1L�����L��L��H��x���H�������L��H��������L�����L��M�}XH��x��������L��A�U L����A��9������'H�E���L9�8����F+I�MXI�E L9�x����61L�����L��L��H��x���H�������L��H��������L�����L��M�}XH��x��������L��A�U L����A��9�����&7A�FL�}�I��L�������I�GH9�x����2I�MXL��H��x���L��H�����A�U L��H�������х��o2A�EA9E�?&H�HE�M��H��H�E�A�FI��I����I�GH9�x�����1I�MXL��H��x���L��H�����A�U L��H�������х��/2A�EA9E��%H�HE�M��H��H�E�A�FI��I���(�H�E�L��I�^H�����H�E�H�����H�E�H�������fDI�<H;�x����KH�}�H9�x�����.�A8F��IcEI��A9EtH��x���L���L�U�H�H���I�z�H��P���L��H��H�����H�E�H������H�E�H���H�E�H�����I�<H;�x�����H�}�H9�x����T.H�E�H�U�H)�H���\H��`���L�PH��(I���@�H�X�H�x�H�p�H�E�IcEA9EtH��x���L���L�U�H�H���x���I�z�H��x���L9���7H��P���L����I��L����I��H�~H�u�H�����H�}�H�����H�}�H������H���H�E�H�U�H)�H���BH�}�H��`���L�pH��(�@�Ic]H�x�L�P�H�p�H�E�A9]tL��L���H�}�Hc�H�I9��?D�����E1�H��L��H��8���L���u����'+L�U�I�H�U�L9��]���L��L����L����M��A�FI��I����@H��x���M��L9���I�^L����M��H�����H�]�H�����H�]�H������H�]�H���L��M��I���A8G�3H�}�Ic]A9]tL��L���H�}�Hc�H�I9��XD�����E1�H��L��H��8���L�������)L�]�L�H�]�L9�r�M��L����I��A�FM��I��M�����@��H�E�9�X����v�H��p���H��H��H�����'H��h���H��H�����*H��@����v,A���A��A��f��AN�@��tL�u�H��I��H�@H��@����v0A���A��D�Ƀ�f��O΄�tL�]�H��I��H�RH)�I�H�<H9�x����mH��H)�H���@%H�U�H���H�H�rH�u�:
t�H�E���E�~1�I��E����H�E�M��L��@���E��H�����I�H��p���I��H��H��H�����H��h���H��H�����E�E,D��A������f��AO�@��tL�E�H��I��H�RE�E0D��A������f��AO�@��tH�}�H��H��H�@L�}�H)�D�����I��I�H��x���H9�rE�����L��I��L�}�H�����L���������L������D��������/��A9�����M��H�E��h�A�FI����������3H�u�L��h���1�L��p���L��@���I�I��I��H��H����I��H�����A�y,A����A��A��f��DO�E��t	H��H�D�A�y0A����A��A��f��DO�E��t	H��H�T�H��H)�I�H9�x����)#L��H�<�f.�H��H���J�8H��kH��H)�H���L�������M��H��x���H�U�I���@I��A�GA9GtL��H��L���H�L�H;E�r�L��M�������I�Nj������)��H�I�9������M��A�L�}��-�L9�x����pD�����H��x���L��L��H��8���A�L������s��L��������D/L�}�IcEA9E��I�L9�x����0H�E��������v�L�����L��H��x���H�}�A�U L�������
�C/M�E H�M�IcEA9Et>H��x���H��L��L������L�����H������L������L�����H�����H�L�����H�<L��H��x���A��L�������
�2/A�EA9Et H��x���L��L��L������L�����H�L�H9�x����/H�E����I�FH��h���I��L�<�A���H�E�H�u�E�NA�^	H�P�H9��N�HDž����K�M�TN1��)���	��A9���H��(H9����:��uԃ���H��P���L9x(�'H�E�������P���L9�x�����H��P����@�6&A�FI������L9�8�����H��P����@�&A�FI�����L9�x�����D�����H��x���L��L��H��8���A�L��������L���������(A�FL�}�I���^��A�NH�E���9�X�����H��p���H��L��I�����,H��h���H��H�E�H������H��@����@,�ǃ����f��NDŽ�tL�U�H��I��H�PH��@����@0�Ã���ك�f��N�����I)�K�H9�x����4&L�U������Mc�L��L��x���L���������_H�E��E�H�E�H�U�M�^A�^H)�H���F��L�x�PH��H��h���H���H�4H�p���H���������H�H�HH�
H�H H��H+M�H��(H��H�E�H��H�H�����A�FM������A�NI�^���"���I�WH�E�H9�x������A�A8F��!I�GH�E�A�GA8F�'H�U�M��A�FI��I�����IcFI��H��L�B�4:H9�x�������A�I�ND)�����I��I��L�}�A8G�t�H�E���I�GH9�x����%A�A8^�d!I�WH�U�A�_A8^��%I�WH�U�A�wA8v��I�WH�U�A�A8~��*M�WL�U�A�_A8^��*H�E���@I�GH9�x�����$A�7A8v�� I�WH�U�A�wA8v�7%I�WH�U�A�wA8v�<M�WL�U�A�_A8^��(H�E���I�GH9�x����5$A�?A8~�T I�WH�U�A�_A8^�%M�WL�U�A�wA8v��H�E���I�GH9�x�����#A�A8^� M�WL�U�A�wA8v�sH�E��~�I�WA�FH�U�A8�H;�x����A�FM��I��I�����H��(���L��H)�H9�0������������tH��P���H9s0����H�s0H�C8H��P���H��0���H�{H���c��H��`���L��8���L9�IG�M)�L)�C��$���X���D����*��L�M��H��p���L��@����uA�S,A�׃�A��A����AN�L��h���O�DŽ���K��I�T�L)�A�A�S0A�Ѓ�A��A����ANЄ�t	H��I�D�L)�A�B��9�X����>%Lc�J��N��H����v���I���I�NI�V9�X�����H��p���H�<��~H��h���H�<��lA�FI�����I�GH9�x�����!A�������������"I�^!A�EL��A9E�XH�M��H�A�F!I��H�U�I�����I�GH9�x�����H��x���L��L�������%�L�s�����A�EA9EtH��x���H�}�L���H�}�H�H�4H��x���H9��BH��H9���Hc����H��x���M��I�H�u�I��A����A�V�RH�L�H9�x����7I�N���N!A�A8F�tI�GH�E�A�GA8F��%I�GH�E�A�GA8F��'�B�H�D@I�L��H��I��L�}�I9��� A�8��'H�PH�U�A�w@8q��'H��H�E�A�G8At�H�E��	���I�GH9�x����� I�FA�]L��H�����A9]tH��x���L���H�}���Hc�H�E�H�H�u�H;�x�������L��A�U H������߉������"A�F	M��I��	L�}����H��x���I�GH9�rlL�M�L�U�H��M��L��L�����L�֋����A�U8H�U�H;�x���w:���&�u�A8vu(��L�����M�tH��I��L9���%A�8t�H�E����IcVA�N��Hc�L�H9�x�����I�F	���A�7A8v	����I�wM�t
H��I��H�u�L9���H���~�@88t�H�E����Ic^I��L�I9���I�GH9�x���rL�M�H�����L�U�L��M��H��x���M��L��L��L����������A�U8H�U�H;�x���w<��L�������$�u�A86u$��I�LL��I��H��I9���$�8A8>t�H�E�����I�GH9�x�����A�7A8v�I�WH�U�A�_A8^��I�WH�U�A�wA8v��I�WH�U�A�A8~��#M�WL�U�A�_A8^��$I�WH�U�A�wA8v��#H�E��D��@I�GH9�x�����A�A8^�WI�WH�U�A�A8~�M�WL�U�A�A8~�I�WH�U�A�_A8^�Z H�E�����I�GH9�x����H��x���L��L�������H�U��
����@��@������"IcF!H��M��H�U�I��M�t%A����H��x���L��L������%!H�}�H�GH9�x�����������A�EA9EtH��x���L���H�}�H�H�4H�E�H;�x�������H�u�L�sL��A�U L���������Hc����M��L�}�I�A����I�GH9�x����7A�������������I�^!A�EL��A9E��H�M��H�A�F!I��H�U�I�����I�GH9�x�����A�EA9E�!Lc�L��J�H9�x�����D�����H��x���E1�L��H��8���L��������L���������H�U�L�M��H�U�I��A�FI�����A�V�H�L�H9�x����QI�N���\A�FA8�|I�GH�E�A�GA8F�3 �B�I�TFL��H��I��L�}�H9��A�?@89�� H��H�E�A�G8At�H�E��J��f�I�GH9�x�����H��x���L��L������5H�U��
����@��@�����o IcF!H��M��H�U�I��M�t%A����H��P����@�&A�FI���������HDž���H�D$H���H�H�� ���H��H�}�H�E�H��H�������CH�M�tA����McvI�A����f�H�HHcPH��h���H��H��p���H�H HcPH���E��DH�PH���l��.��fDH�p�HcP�H��h���H�4�H��p���H�P�Hc@�H��H���i��f.�������D9H���������������f.�=����9s�|�����������l��@���]��������E�D�Z���9�E�F
I�~E9�tfDI9���D�H��E9�u�H�zH�������f���9�������H�E�����H�E�H�U�H)�H���iH��`����H��(H�X�H�x�L�P�H�p�H�E��)�H�PH���l����H�PH���l��&��L�����L��P���L�����H��H���H������H���H����������EH�E�H�}�L������R�L9z��H�U�H)�H����
�PH��(�X�H�E�A�FM���D������H�E�H�U�H)�H�����H��(L�x�H�E�����H���������I��L+}�I��L��H��H���#��H���������H��H+]�H��H��H��H�����L�pH�E�H)�H���U	�	H��(H�u�A����H�E��[��H�E��R��H�E��I��H��$�H9�tH��H��$�H9�u�H��	H��$	H�D$H���H��H���H�E�HH�E�H�� ���H������`��H�E�H�U�H)�H���'H�����H�}��H��(H��`���L�X�H�X�H�x�H�p�H�E���H�E����H�E����L�����A����z��A�<?�6<@���F<�#A�FM�s���H�U�H;�H���t*H�}�H��P���H���������H)�H�H��H��H��H�VH�����H��t��x������x���H�H��0����.��H�E�L�����Hc����H��`���L�PH��(�@�H��x���H�H�x�H��8���L��H�P�H�U�L�}�H�P�L��H�E��L�}�I��A�F	I�����H��P���H��H���L���H�����H�����H������L�HI���������d��H�E�H�}�L����E���H����	�H��(I��L�z�H�U����A�FI���1��H�@I��a��L�����L��P���L�����H��H���H�����H������H����_�����yH�E�L������p�L�r���H��P����@�|A�FI�����H��P����@�UA�FI�����H�E��Q��H�E�L�������M��L�����E��I��H��x���H�E��
�I��A�EA9EtL��H��L���H�L�H;E�rڋ����A�G�M��L�����)��H�I�A9��c�A�L�}����A�FI������H�u�L��A�U L���������
Hc����M��L�}�I�A����H��P���H��H���H�U�H�u�H�}�L�����L�HI��L�����������)	��H�U�H;�H���t*H�E�H��P���H)�H�H��H���������H��H��H�SH�����H��t��x������x���Hc�H��0����%��H��P���H��H���H�U�H�u�H�}�L�����L�HI��L������V�����m��H�U�H;�H���t�H�E�H��P���H)�H�H��H���������H��H��H�V�Z���H��P���H��H���H�U�H�u�H�}�L�����L�HI��L�����������u�H�E�L�}�L�����L��������H��P���H��H���H�U�H�u�H�}�L�����L�HI�����������H�U�H;�H�����H�E�H��P���H)�H�H��H���������H��H��H�W�D�Z���w�E�F
I�~E9�t@L9��\�D�H��E9�u�H������A�H�����H�RH��x���I��I)�L)�I9��8��A�NL�}����BH9�sAI�wH�J�H�u�A:���I�W�H���q�H�U�H��@:r�����H;����u�H�E�M�������M��H��x���M��H�E��
f.�I��A�GA9GtL��H��L���H�H�U�L�H9�r׋����M��M��I�׍H�M�t
A����H��P���H��H���H�U�H�u�H�}�L�����L�HI���������~A��H�U�H;�H���t*H�E�H��P���H)�H�H��H���������H��H��H�SH�����H��tH���Ic�H��0������H�E�����H��P���H��H���H�U�H�u�H�}�L�����L�HI��L������F�����O���H�E�L�}�L�����L������;��H�E��r��H�E��i��H��P���H��H���H�U�H�u�H�}�L�����L�HI�����������H�U�H;�H���t*H�E�H��P���H)�H�H��H���������H��H��H�VH�����H��tH���Hc�H��0������H��P���H��H���H�U�H�u�H�}�L�����L�HI��L������L������U���H�E�L�}�L�����L��������H��P���H��H���H�U�H�u�H�}�L������L�HI��D���������������H�}�L�}�H�M�D�����L�������A��H��P���H��H���H�U�H�u�H�}�L�����L�HI������������H�u�L�}�L������b���H��P���H��H���H�U�H�u�H�}�L�����L�HI��L������Q����������H�E�L�}�L�����L������G��H�E��}��H��P���H��H���H�U�H�u�H�}�L�����L�HI��L��������������H�E�L�}�L�����L�������H��x���L��L���H�u�Lc����H�E����H�E����I��I��A����I�^!��I�^!��L�M�K��I��L�@�7�H�E����H��x���L��L���H�U���H��x���H�}�L������H��x���H�}�L����~��A�FI�����H��x���H�}�L����7��H��x���H�}�L������H��x���L��L���H�U���I��H�E�I��A��8��A�FL�}�I��L������ ��A�FL�}�I��L��������H��x���L��L��L������L�����H���H��P���H��H���H�U�H�u�H�}�L�����L�HI��D������������H�E�L�}�D�����L���������H��P���H��H���H�U�H�u�H�}�L�����L�HI���ͽ�����XH�U�L��������H��P���H��H���H�U�H�u�H�}�L�����L�HI��舽���������H�E�L��������H)�H�L���H�E�L�}�L��������H��P���H��H���H�U�H�u�H�}�L�����L�HI���!������9���H�U�L������-��H�E�L�}�L��������H�E�L�}�L��������H�E�L�}�L�����L�������H�}�L�}�L�����L��������I��H�E�I��A��'���H��x����I��A�EA9EtL��H��L���H�H�U�L�H9�r�A�FM��I��I�����H�E����H�E����H�E����M�} IcEA9Et"H��x���L��L��L������L�����H�I�<L�����L��H��x���A��L�������
�����H�E��-��H�E��$��H�E����H�E����H�E��	��H�E����H�E����H�E�����H�E�����H�E�����H�E�����H�E�����M)�E��[�H�E����H�E����H�E����A�FL�}�M���˿��A�FL�}�M��麿��H�E��y��L��x�����I��A�EA9EtL��L��L���H�H�U�L�H9�r�M���I��I���f���H��8���H��H9�x����CL��H��x���M�}XL�����H��8���A�U L����A�ׅ���A�FL�}�I��L���������H�E����I��M��A�I)����H��x���H9�8�����L��H��x���M�}XL�����H��8���A�U L����A�ׅ���
A�FL�}�I��L�����酾��H��x���H9�8����UL��H��x���H��8���L�����A�U L��������W
A�FL�}�I��L������&���H��8���H��H9�x����*L��H��x���H��8���L�����A�U L���������A�FL�}�I��L������ý��M�W�麽��H�E��y��H�E��p��H��P���H��H���H�U�H�u�H�}�L������L�HI��L��������������H�E�L�����L�������y��H��P���H��H���H�U�H�u�H�}�L������L�HI��L�����葸���������H�E�L�����L���������H�E����H�E����L��P���H�E�H��H���H�U�H�u�H��L�����M�HL����L�����H������H���H������������H�E�H�M�H��H���������L�<�L����L�����H��H+U�H)�H��H��H�� ���H��H������L�����L��P���L�����H��H���H������L����H���H�����y�������H�E�L����L��������H�E����H�E����H�E����H�E����H�E����H�E��|���H�E��s���L��P���H�E�H��H���H�U�H�u�H��L�����M�HL����L�����H������H���H�����˶�������H�E�H�M�H��H���������L�<�L����L�����H��H+U�H)�H��H��H�� ���H��H������L�����L��P���L�����H��H���H������L����H���H�����4�������
H�E�L����L��������H�E��d���H�E��[���M�W��I��鄺��H9����L�����H�]�A�L��@�����H��(H9�����:u�H�r H�����	A�~0�JA����A��A����AN�@��t	H��H�t�H�JH��H9t��c	L9������DE��H�E�鲾��A�FM��I��I���׹��A�FM��I��I���ù��H�E�邾��H�E��y���H�����L��H��x���L��L�������L��H�������х���A�FL�}�I��L������a���H�����L��H��x���L��L�������L��H�������х���A�FL�}�I��L���������L��H��x���L��L�������L��������uA�FL�}�I��L������̸��L��H��x���L��L�������L���������A�FL�}�I��L�����釸��A�FM�s�y���H�E��8���H�E�H;�H���t*H�}�H��P���H���������H)�H�H��H��H��H�CHDž0�����Թ��H�E����H�E��߼��H�E��ּ��H�E��ͼ��H�E��ļ��H�E�黼��H�E�鲼��H�E�驼��H�E�頼��H�E�闼��H�E�鎼��H�E�酼��H�E��|���H�E��s���H�E��j���H�E��a���H�E��X���M�W��I��遷��H�E��@���H�E��7���H�E��.���H�E��%���H�E�����H�E�����H�E��
���H�E�����H�E����H�E����H�E����H�E��ݻ��H�E��Ի��H�E��˻��H�E��»��Lc����L�}�I�A����H��P���H��H���L����H�����H������H���L�HI���������H�E�L������H�E��T���H�E��K���H��P���H��H���H�U�H�u�H�}�L�����L�HI��L�����迱�������H�E�L�}�L�����L���������L�WL�_I�M�;D��X���E���I���L��`���L�u��H�����H��0���L��@���H��p����wA�U,A�׃�A��A����AN�L��h���O�DŽ�txK��I�T�H+�8���H�A�E0�ƒ������N�H���t	H��I�T�H+�8���I���9�X��������Lc�J��H�<M�L�H�?��i���I�H���L+�8���L��H�E���H�E����H��0����R���A�FL��x���I������H��P���H��H���H�U�H�u�H�}�L�����L�HI���F������'H�U�H�u�L������0���I��H�E�I��A�馴��H9����H�}�A�H�����H��(H9����:u�H�r H������H��@����J�0A����A��A����H��AN�@��tH��H�����H�L�H�rH�����H�4�H9L����L9������DE��y���H��P���H��H���H�U�H�u�H�}�L�����L�HI���H������`�H�u�L�}�L�E�L���������I��H�E�I��A�餳��A�FL��x���I��鐳��H�E�M��H�PIcFH�U�I��M�tA��l���H�E��+���H�E��"���H�E�����A�FL��8���I���=���A�FL��8���I���)���A�FI������A�FI������H�E��η��H�E��ŷ��A��H�U�H;�H���t*H�E�H��P���H)�H�H��H���������H��H��H�VH�����H��tH���Ic�H��0���髳��H�E��_���H�E��V���A��H�U�H;�H����D�H�E�H��P���H)�H�H��H���������H��H��H�V��H�E��
���H�E�����H�E����H�E����I��H�E�I��A�����H�E��Ҷ��H�E��ɶ��H�E����I��H�E�I��A����H�E�飶��H�E�隶��H�E�鑶��H�E�鈶��H�E�����A�FL�}�I��馱��A�FL�}�I��镱��L9�����Z�H��H�BH9�x��������O��H�E��.���I��M��A�I���T���H�E�����H�U�H;�H������H�u�H��P���H���������H)�H�H��H��H��H�S��H�E��ʵ��H�E����H�E�鸵��H�E�鯵��H�E�馵��A����"�闵��HDž0�������H�E�郵��H�E��z���L�����A�FM��鞰��L�����A�FM��銰��M��1��7��H�E��?���H�E��6���H�U�H;�H�����H�]�H��P���H���������H)�H�H��H��H��H�W���A�FM��I������H��@���L��x���H�M������H�xH�=��������H�E�鴴���H�U�H;�H������H�}�H��P���H���������H)�H�H��H��H��H�S�Y���H�U�H;�H����N�H�E�H��P���H)�H�H��H���������H��H��H�W��H�U�H;�H�����H�u�H��P���H)�H�H��H���������H��H��H�S���DAWI��AVAUATUH��SH��H��L��H��$�H�t$0M��H�L$PH�D$@H��$�L�L$H�D$HdH�%(H��$�1�H�D$pH�D$8H�D$hH�D$�{d�~�CdH�5Hc�H�>��fDL���L�cHM9�rPA�����L��I��L��L�l$�fD��<��H��H��L��L���I9�v�DE1�H��$�dH3<%(D����H�Ę[]A\A]A^A_�f�H���H����s`L�cHH�D$H)�I���t$ H��H)�I9��=M9�w�H�\$XH�\$8L�t$(M��fDL�|$hL9t$vfM��M��H��H��H�t$�|$ A�T$8��~AI�U�|$pA8}����I��H�LH�C�f�H��I���x�A8}��jH9�u�L9l$w�L�t$(H�\$XM��M���������������� �L9���H�{HD�C<H��L��H�T$0A��Q�������H�{HH�t$H��L���I��H��������|���@H���L���H�D$H�D$H��L�kHL)�H)�I9���M9��A���H�t$H�\$ H��H��L)�H�D$L��M��L�d$�@H��H��L��L���I9������A�?@88u�I�OH9�s2H�P�xA8u�H�|$H�48�H���z�@89u�H��H9�u�H9�u�H�\$ I�����H���L���I��H�D$M)�H����QH��L)�M��I9��GM9��f���L��L�|$L�l$�M9����L��H��A8$t���:@8>��H��H��L9�u�I���'����L�d$0M9�t>H�{HH��L��L���H�{HD�C<E1�H��L��H��I��耧�����L����H���A�H��������L��L�t$HL��H�t$H)�H+��H��H��H�|$@H�H�{HI��I��x���DL��H��H�|$A�UhI�������L��H��H�|$A�T$hI��M9�������7����H�D$PL)�H��c�������H���H����D��H��H����
H��H9�u������Y���Hc�L�@�2H������u�H��L)�M��I9��@����f�H�t$L��H��L���I��H9D$(�������f.�tx�H���L�CHL��Hc�L��H)�H��H��A�PhI9����C���L��I��M���B���f.�H�CHH��H�|$H���PhI�����A����������I�����ff.�AWAVAUI��ATUH��SH��H���H��$�H�t$`H�T$H�D$pH��$�H�L$8L�D$(L�L$xH�D$hdH�%(H��$�1�H��tHI��H�WHH�H�݋B��t3H9���
H���@I�UH�B9BtL��H���H�H�H9�r�H��$�L��$�I��H�D$@H�D$A�}dwA�EdH�=Hc�H�>��f�M��L�l$XM��M���L;|$(�L��I+��H9D$8wRA������a����� �OH�L$L9��AI�}HE�E<A�L��H�T$`�&������I�UH�B9Bt
H�t$L���Lc�L�|$@O�4�6���@I���I�]HL;t$(s^A�A����]L�d$L�|$(I��H��H�\$�@A�A�<���E9EtH��H��L���H�I�M9�wѐ1�H��$�dH34%(�H�ĸ[]A\A]A^A_�DH�\$`L9�tFH�D$@L�t$H��L��I�}HH��L��HE��I�}HE�E<E1�L��H��H���
��������f�I���M��H����H�D$xH�|$hL�8t5I�}HL9|$8��
H�D$@H�t$`L��H�L$H��HE��H�|$hH�H�t$pL��I+��H������@I���A�}`I���I�mHH�D$H���|$0H�|$(H)�H�L$HH�L$H��H�D$PH��H�H��H)�H9�HC�I����"	I9������L�l$XM��I��fDH�D$PL��$�L�|$HI�lH�EH�D$ L9|$�E���M��L��H�T$ H�t$�|$0A�V8��~�I�W��$�A8u/��I��I�LI�D$�H9�t�H��I���p�A8w�t�I�EH9������H�D$X�UM��H���Hc,��L9�v(A�FA9FtL��H��L���H�I�L��L)�H9��L9������M������f�I���I���A�u`H�L$(H�D$H��I�]HH)��t$0H�t$L�<H�|$HI�,L9�LF�I���L�|$ ��I9��@���H��L�l$PH�D$XH�D$XL�mL�|H�D$HL��$�H9D$vhI��I��L��L��H�t$�|$0�S8��~EI�V��$�A8����I��I�LI�D$�H��I���p�A8v���H9�u�L9t$w�L�l$P���@A�E`I���I���H�t$�D$H��M�}HH)�H�DH�t$(H9�HF�H�D$ I9��T���L��L�l$0M��I��I��L��$�I9�vkH��M��L��H�T$H�t$�|$A�T$8��~FH�S�3@8�$�����H��I�LI�G�DH��H���p�@8s���H9�u�I9�w�L�l$0M�����I���I���H�L$(H�\$H�w�M���H��H)�H�M�H9�HF�M����I9��o�����A:9u/M��H9��E���H���DH9��2���H��I���A8t�I�AH9��*���A�AIc�I�I9�r�����@I���I���H�t$M�}HH��H�|$H)�H�\H�D$(H9�HF�A�GA;G��I9�����H�EL�l$L�d$ I��M��M��I���2f.�A�FA9FtH�t$L��L���H�I�I9��x����EA8$u�I�t$M9�tL��L��L)����u�M��L�l$L�d$ M���(���DI���H�|$(I���H�L$H�p�H�D$H��I�]HH�t$0H)�I��H�I)�H�t$ H9�LC�I�����M9�����L�l$HM��L�d$PM��H�D$ I�4H�D$�@�8u/H�D$0H9��XH���H9��GH��H���8@8:t�I�GI9��z���H�D$H�VM��H���Lc4���M9�v&�C9CtH��L��L���H�I�L��L)�I9��M9��,���M���X���@A�D$A9D$tH�t$L��L���H�I�L;t$ ���������L9l$ ����H�D$P�UH���Hc�H�H9l$ ��������fDH����~���L��H)�H�D$xH�H;T$8�-H�\$hH���W���H�D$@H�t$`I�}HH�L$H��HE��H��0����L�l$HL�d$P�,����L�d$M������I9��'����ML�|$L�EL�l$ L�d$0I��Hc�L��M)�A����I�M9����E8&u�I�vH9\$tL��H�����u�L�l$ L�d$0���fDI9��������A:9u/M��H9������H���DH9��r���H��I���A8t�I�AH9��j���A�AA���I�I9�r��O����M9��?���L�l$HM��L�d$PM��H�D$ I�4H�D$�8H�u1H�D$0H9������H���fDH9������H��H���8
t�I�GI9������FH�L$HM��D����	@M9�v&�C9CtH��L��L���H�I�L��L)�I9��M9������M���U���@H9l$ �u���H��L�l$PH�D$XL��I��H���H�D$XM�l$M�<H�D$HL��$�H9D$vdI��I��H��L��H�t$�|$0�S8��~AI�NA�6@8�$�uH��I��H�TH�E��H��I���p�A8v�uH9�u�L9t$w�L�l$PI����DL9l$ �����A�D$H�|$P���I�L9d$ �<�������I9�����L�l$Xf.�H�D$PL��$�L�|$HM�,I�EH�D$ L9|$�)�I��L��H�T$ H�t$�|$0�U8��~�I�OA�?@8�$�u0��I��I�TI�D$f�H9�t�H��I���x�A8�t�I�FH9����A�EH�|$XM��D����	@L9�v&�E9EtH��H��L���H�I�L��L)�I9��L9����M������@H�L$H�t$8L���H�|$hH��9����H�\$hH�L$I�}HH�t$8I���H�L$xH�H������H�;����H�t$@H�L$8H��I�}HH��HE�H��H�L$�H�|$hH����H�l$8��M����������G��~1L�G�p�H�1�H������
�H��I��H�HH��H9�u����AV��
AUATUH��SD�'�
�wM�E��tkA9�|E1�[D��]A\A]A^���Lc�H�I��L���H��txH�EH�}L���H��tcE1�H�E�]D��[]A\A]A^��Lc�I��L���I��H�EH��t L���H�EH��t7�]D��[]A\A]A^�A������W���H�}A������H�}��:���L��A�������'���f.�����xNAUA��ATA��UH��SHc�H��9~&H�EIc�Ic�H��H�EH��1�H��[]A\A]��s���y������@��H�H�GH�GH�G�ff.����S� �H��H��tH���H��[�ff.����H��tWU��SH��H�����~"H�H��t�H�{H��t����uH��[]�f�H��H��[]�f��ff.�@��H9�tgUH��SH��H���v���u>�{��~4L�SL�M�O�1�L�CH�u��H��I��I��I��H��H�PH9�u�}H��[]�f.��ff.�@����D���=1����AVAUI��ATI��UH��SH��H��PH�D$D�L$ L�D$(H�L$0H�L$8H�D$@����M��t	A��tPH�}HL��H��L���L�L$H��L��I��L��H���Ք��I��H�|$H��t�H��PL��[]A\A]A^��GL��L�D$�p���tLc�M��u���L�D$L����v���fD��AWI��AVM��AUI��ATI��UH��SL��H��H��$�t��$���L9��L9����El��t	M9���M9�����$�H�\$pH�D$P�D$`H��$�L�|$xH�D$hHDŽ$�����L9���E1�L9�vH�}HL��H��L���I�‹Md����H���L��HcMhH)�H����H�����L�I9�IB�H�D$H9���H�D$8L�t$(L�|$PM��H�D$ H�D$HH�D$H�D$@H�D$�t$L��H��L��t$H��L�L$0L�D$�p�A[Z����H�D$8H9�vL�t$HH��M��H;\$@v�`�H��M��H��L��L��H���ɒ��H���tH��xW�E<�H�UH�B9BtL��H���H�I��H�H9T$@s�I��H��H9\$(�I���@�E<�H�����H�|$PH��tH�D$�H�D$�E< t/H��$�t$��$�uH��$�H�D$�H�D$H�Ę[]A\A]A^A_��I�ދ�$�H�\$pH�D$P�D$`H��$�L�|$xH�D$hHDŽ$�����D�EdE���QL�d$M9�vH�EHL��L��L��H���PhH�D$H���L��HcUhL)�H�����H9������H�L$HL�t$ L�|$PH�L$H�L$@H�L$H��t$L��H��t$I9�L��L�L$IF�L�D$0�z�^_�������H�D$HH9�HG��Jf�H�}HL��H��L���M��H��L��I��L��H��I�����H���tH���n����E<�#L��H9\$@v�H;\$ �>���H����U���f.��GH��$��p�����H�H���a����H���D��8L9��_���L�s�T���fD�uh���!��$�E1�L�L$PH��H�D$PL�-�D$`L��L��L��H��$�L�l$pL�l$xH�D$hHDŽ$��������H����l���H���t����E<�y1��H�|$PH�������H�D$�H�D$���fDH9�����H�D$HL��L��M��PL��H��H�D$HPL�L$���ZY����H�D$PH�D$fDH�}HL��H��L���L�L$H��L��I��L��H��I���*���H���tH��������E<�iL��M9�s����@L�|$PM��L�|$��H��M��H��L��L��H���َ��H���tH���c����E<�H�UH�B9BtL��H���H�I��H�L9�r�����L�L$L��L��L��H������H��������H������L��L)�E<�����@H��$�����H��$�L)��q���f����L9��/L9�����$�L�sH�\$pE1�H�D$P�D$`H��$�L�|$xH�D$hHDŽ$�����L9��*�������f.�H��$�����fDH��L)�����DL�t$�'���fD�ttM��L��H�EpL)�H9�rNH�UxL9���L��H)�H9�vL��H)�I9���I�V�L��H)�H��L��H)�H��H9�LB�L9��"���H�������������Ā�������������M9�r�M��L�����H9��_���L�T$M��H��L��jL��H��H�D$HPL�L$H��AYAZ���-����ElL�T$��@�����H�L$PM��H�L$�DM9�������ElI��L���uH�\$xL�L$H��L��L��H���O���H���tH�������E<�����H�UH�B9BtL��H���H�L�<�Elu�H�}H�9f.�M9��w���H�}H�G9GtH��L��L���H�}HH�L��I�D�E<E1�L��L��H��謊����t��3���L��L��L)�H)�H9���I)�M��H9�vL�EHL��L��L��H)�L��A�PhH��L9��s����G���H�}HL��L��A�L���L��I��H�EHL��L�L$H��P�������L�L$H�}HL��L��A�L��L�L$�L�L$H��H��H�D$t�E=�tH�EHL��H��P L�L$��
tCM9�����I9��L�������H9������'���H�}HH��L��L���H��H�Ep�Q���H�MHL�A HcA9At0H�|$H��L��L�L$ L�D$H�L$�L�L$ L�D$H�L$H�H�t$L�L$H��H�<L��A��L�L$��
LDL$�R������H���D$PAQM��I���H����H�GH�����G<�����G`����H�GP�����G����1��f����o�oNO�oV W �o^0_0�of@g@�onPoP�ov`w`�o~pp�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�H%B�B�B �E(�A0�C8�J��
8A0A(B BBBAHhL�E�B �E(�D0�A8�D`�
8A0A(B BBBC`�I�B�B �D(�A0�o
(A BBBHF
(F BBBFA
(K EBBC,KSA�F
P������
ALHB�E�B �B(�A0�D8�J�
8A0A(B BBBJL�/B�B�B �E(�A0�D8�G�
8A0A(B BBBF�=`�F�E�B �A(�D0�\
(D BBBHA
(A BBBHs
(A BBBA@`\J�E�D �D(�G0`
(A ABBDN�����$�$E�^4�aJ�C�G p
AAJDD�A�(qJ�D�G NAAK��8L
@`�F�B�E �D(�D0�G�u
0D(A BBBD��?
F�E�E �E(�D0�D8�J��M�T�A��
8A0A(B BBBH��J�Z�A���L�K�A���L�L�B�8HEB OX	l��	���K	+B ]y!��"��#$%?%M%p?�0�	�?�G�@G#�V9PKSB�S�Vx�\��V��\��j��\/�j-kLkn&l�&l��l��l��l�l'�lD�ldQm�Qm��m��m��m�mK�mx�m��n��n�y��y"?y;?y\Iy{Iy�Xy�Xy�hyhy$yyAyyh�y��y��y��y
�y !"#-9I^r

$%&�������
�		9	P	f	�	�	�	�j=�	 k�	0l\�	�l$
�l$
�la$
`mq5
�mU
�m
u
n��
�n?
�
 y�
@y	�
Py�
`y�
py	�
�y�y!�yK.annobin_regexec.c.annobin_regexec.c_end.annobin_regexec.c.hot.annobin_regexec.c_end.hot.annobin_regexec.c.unlikely.annobin_regexec.c_end.unlikely.annobin_regexec.c.startup.annobin_regexec.c_end.startup.annobin_regexec.c.exit.annobin_regexec.c_end.exit.annobin_string_cmp_ic.start.annobin_string_cmp_ic.endstring_cmp_ic.annobin_stack_double.isra.3.start.annobin_stack_double.isra.3.endstack_double.isra.3MatchStackLimitSize.annobin_is_mbc_newline_ex.start.annobin_is_mbc_newline_ex.endis_mbc_newline_ex.annobin_match_at.start.annobin_match_at.endmatch_atFinishCode.12462.annobin_backward_search_range.start.annobin_backward_search_range.endbackward_search_range.annobin_forward_search_range.start.annobin_forward_search_range.endforward_search_range.annobin_onig_region_clear.start.annobin_onig_region_clear.end.annobin_onig_region_resize.start.annobin_onig_region_resize.end.annobin_onig_region_set.start.annobin_onig_region_set.end.annobin_onig_region_init.start.annobin_onig_region_init.end.annobin_onig_region_new.start.annobin_onig_region_new.end.annobin_onig_region_free.start.annobin_onig_region_free.end.annobin_onig_region_copy.start.annobin_onig_region_copy.end.annobin_onig_get_match_stack_limit_size.start.annobin_onig_get_match_stack_limit_size.end.annobin_onig_set_match_stack_limit_size.start.annobin_onig_set_match_stack_limit_size.end.annobin_onig_match.start.annobin_onig_match.end.annobin_onig_search_gpos.start.annobin_onig_search_gpos.endaddress_for_empty_string.13157.annobin_onig_search.start.annobin_onig_search.end.annobin_onig_get_encoding.start.annobin_onig_get_encoding.end.annobin_onig_get_options.start.annobin_onig_get_options.end.annobin_onig_get_case_fold_flag.start.annobin_onig_get_case_fold_flag.end.annobin_onig_get_syntax.start.annobin_onig_get_syntax.end.annobin_onig_number_of_captures.start.annobin_onig_number_of_captures.end.annobin_onig_number_of_capture_histories.start.annobin_onig_number_of_capture_histories.end.annobin_onig_copy_encoding.start.annobin_onig_copy_encoding.end.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE___stack_chk_failreallocmallocmemcpyonigenc_mbclen_approximateonigenc_get_prev_char_headrb_thread_check_intsonigenc_step_backonigenc_ascii_is_code_ctypeonig_is_code_in_cc_lenonig_is_in_code_rangeonigenc_get_right_adjust_char_headmemcmponigenc_get_right_adjust_char_head_with_prevonig_region_clearonig_region_resizeonig_region_setonig_region_initonig_region_newonig_region_freeonig_region_copyonig_get_match_stack_limit_sizeonig_set_match_stack_limit_sizeonig_matchonig_search_gposonig_searchonig_get_encodingonig_get_optionsonig_get_case_fold_flagonig_get_syntaxonig_number_of_capturesonig_number_of_capture_historiesonig_copy_encoding!k��������y���������l��������m��������n���������o��������
p���������m��������|�����������q��������i
r��������O
s��������s��������1p���������r��������fr���������o��������?t���������t���������t��������"t���������t���������t��������t��������.t���������t���������t��������o���������o���������o���������o��������G#o��������p$o���������$o��������<,o��������n,o���������-o���������-u���������0o��������+1o��������j1o���������1v��������_3o���������8q���������8p��������:o���������:v���������;q���������=o���������>q���������?q��������pAo���������Ao���������Ao��������Bo��������8Bo��������PBo��������gBo���������Bo���������Do��������Eo��������7Fo��������vGt���������Gt���������Lt��������Mt��������
Sq���������Uk��������$Wd�Wp��������Yp���������Yp���������Zp��������[w���������[m���������[p���������\k��������S]o���������]�7^o���������^o��������_p���������_p���������`o��������6do��������fdx��������weo���������eo��������\fp���������fx��������ho��������jo��������Njp��������wjy���������jp���������jk��������ukl���������kl���������km���������km��������lq��������
lq��������lq��������|l{���������lm���������l}��������mq��������"mq��������ym{���������m���������m��������^np���������nq���������n{���������nz���������op���������po���������pq��������.qz��������Nrp���������r{��������)s��sq��������tp���������to���������uz��������-wo��������owo���������ws��������>xs���������xw���������xo��������6y���������Jmq�������� Q��%$,%P%X?�%�?�?�G�?�GG�VDGL�Vp�Vx�\��V��\��\��j�\�j0�j8kd�jlk�k�&l�k�&l�&l��l$&l,�lP�lX�l��l��l��l��l��l��l�lQmD�lLQmpQmx�m�Qm��m��m��m�m�m0�m8�md�ml�m��m��n��m��n��n�y$�n,yPyX?y�y�?y�?y�Iy�?y�Iy	Iy	XyD	IyL	Xyp	Xyx	hy�	Xy�	hy�	hy�	yy
hy
yy0
yy8
�yd
yyl
�y�
�y�
�y�
�y�
�y�
�y�
�y$�y,�y M N O P4E**�)�))�(N( ($l0(�/,�20�,4�.8E.<</@�+Da1H�0L2Pm,T�3X�-\~2`
dRh�l|pt�x$|����E���F���Y���C����&�Z&����&�G$�A&���c&�� ��(�.'��"��!��%��%�#(��/
�
�I�9�y�T�
f0]�� 5
$�	(T,0y4�8<0@�D�
H
L�P>TuXb	\#	`�d�,h�Xl$Yp�Yt�Yx�W|LW��W��W��]��c�c��d�8b�d^�8a��_ l0�@PL�V��\��j kd0l��l��l��l`m<�mP�mdn��n< y\@ypPy�`y�py��y��y��y.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rela.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@(RT(Sl(T�(U�(V'��y"@x��(-�z3�z=�z48@ ��	(
S�b��]@��0(
|�������@��0(��������@�0(�\��\���@@�0(0��@p��	(0ڎ.����|�S�'�!�/�B�T�c�s� �(���@`�X(&�8
)j	@�4���regparse.o/     1690381920  1000  135   100644  110656    `
ELF>�@@10

$&#'"(!)���ff.���H�OL��H�?H�VI��I)�L)�I9�u=H9�v9�A�)�u-��@�A�4H��)�uL9�u��f����1��f.���H�H�w1�H9�s.fDHi��H���J�H�H9�u�H��H��H��fD�ff.�@��SH��H�H�NL�JL�B�V��~H�N H�>L�VI�L��Ѕ�u
[���C�[�fD��H��H�w1�i��H���J��H9�u�H�WH�wi��H���J��H9�u�G����H�Ð��UH��SH��H��H�>�H�{ H��t�H���H���H���[]�ff.�H��tSH��H�?H��t�H��[���ff.�@��UH��SH��H��tH�~(H��H��t�H���H��tH���H���[]�ff.��ATUS�G\�X�����H����~m�Gd9�fH���H��tgD�$Ic�H���H�����u\�^D9�}+A�L$�Hc�)�H��H�H�L�DH�H��H9�u�H���D�ed�]\��[]A\���A���oEh�oMx�o���o��HP X0�z���� ���뱻�����ff.��AW��AV)�A��AUATUSH��(L�/H�|$H�t$�D$I9���M��A��E1��_D�Cй���D��H)�H��H��H9��BA��L�����A�WX������0A�H9l$��A��A�����I��A�G����L��H�t$L��A�W ��A�GA9GtH�t$L��L���H�L�����I�lA�WX����L�����A�WX���;���L���
��A�WX�KɍS�����HD�����f.�L���߾
A�WX�SɃ�W��E�A�H9l$�2���f�D;t$UH�D$H�(D��H��([]A\A]A^A_��A�]�*���fDL����H��(�����[]A\A]A^A_�L��E1�뤸�����ff.�f�AWAVAUATUSH��H�H�|$H�4$H9���I��D�b�1��f�L��H�4$H��A�V A��A�FA9FtH�4$L��H���H�L��D��L�<A�VXA��7wK��tGA�Eй�����H)�I��H��H��H9�rZA�,�L9<$v@A��A���t6L��A�F���v���D�+녉�H�|$H�H��[]A\A]A^A_����L����f�H�������[]A\A]A^A_�1���USH��H���H��$@H��$HL��$PL��$X��t@)�$`)�$p)�$�)�$�)�$�)�$�)�$�)�$�dH�%(H��$(1�H�l$ H�SH�K(H��$L�C0I��H��H�D$H��$0H����D$�D$0H�D$ H�D$P�H���XZH��t:���H��H�1��H��$(dH3%(u#H���[]�fDH��H�=1������H�H9tH�G�@% = t�@H��1�H�5����AVAUATUSH��H�L�jH�L$H9��/A�EH��H��I�����qH��L��A�U H�L$A��A�EA9EtH��L��H���H�L$H�H�<H�EH�|$A��MtMA��c�A��C�)��D����A�v�����L���Ic�L�>��fD�@��H9���A�E���XL��H��A�U H�|$A��A�EA9EtL��H���H�|$H�H�H�|$A��-�FH9��3A�E���L��H��A�U H�|$A��A�EA9EtL��H���H�|$H�H�H�EH�|$D9p��A�ހˀ�I�<$H����[]A\A]A^�DD�1�����@��H9���A�}�ZL��H��A�U A��A�EA9EtH�|$L��H���H�HD$H��H�D$A��-��H9��;A�E����L��H��A�U H�|$A��A�EA9EtL��H���H�|$H�H�H�|$A��?��H�ED9p�~D�����������y����c�����/�D�7�f.��D�������A��AA�������H�H9������H�����t��H�5H��1��m���H�|$�s�����f���fDD�7����D�7����D�7�����	�&���fD�����fD�����fD����fD�
���fD�����fD�@% ��ۃ�k�������
�����������@H��H�|$H������Å������A��H�|$�[����H��H�|$H�������Å��Z���A��H�|$�;���f�������:���������0���������&���������������O����X���f.�ATI��UH���S�H�EH��t1A�t$H��H����Ņ�uA�T$H�;I�4$�S���[]A\ý������ff.����~~&L�F 1�Hcȃ�I��Hc9�<��99F�1��fDu�HcF���F1�Ð�W�G��tF��t��u-1������D@����W��t1�������D��������f.���u�G��t4��������D���fD��u˃�������D��f���f.�����V9WuH�H9t�fD�F9G������8�fDUH��SH��H��H�H��t(H�H��H�hH�XH��[]�f����H��u���@H�S��H��tAH�H�H������XH��@H�HH�@�@4[���K���H��u�[�@H��H�H��t@H�H�H�H�@H�@H�@H�@ H�@(H���f����H��u���@H�H��tH��H��H�����H��t�H����H�ATA��U��S��H��tYH�H�H�H�@D�`�hH�@H�@ H�@(�@0��t�@@[]A\�f.��+���H��u���@H�H9t0SH���H�����tH�C�@t
����t[�D��
H��H�5���1�[�;���ff.�AWAVAUATUSH��H�|$9�sI����D�yA���A	��D�eD9�tK�ۍCE��I��H�I�,�����u�����)�A��D��t�H�|$�������uA	�D�eD9�u�H��[]A\A]A^A_��AWI��A��AVA��AUATUSH��H��(9�wA��A��L�+M����I�E1�E�W��L�`��E����9�s2�4;��L6E;�v�"D�3��|	E9����9�r�s��A���t@�׉�E�^9�s4D�T=A��C�E9�w���B�L��<	E9���A��D9�r��)�<�<$��'�������<M��I��A�:E��tKE�CG��E9�r>A9�sE9�w4L��L�T$�t$�L$�T$����L�T$I�E�t$�L$A�:�T$A9�DG��|-�A�<�A9�DB����A�u���Z�j9�v9A��f�E�A9�r�A9�t'D��H�ljT$�I�EH����E�e�T$D��D�bA9�v#�A9�w�A�uH���I�EH����Hc�D�<(E;e��A�uI�E9�s"�9�r�A�uH���I�EH���qMc�F�4 A9]��A�uI�E��w#���v�A�uH���I�EH���0�$�1�A�}wA�EH��([]A\A]A^A_É���Y�����D��A���iD�����DE�e�8����A�]�g����D������D��D��A�u9��n���)�D�$�C�,9�v5f��9�r�A�uH��D�D$D�T$�D�T$D�D$H��I�E�MIc�Ic�Ic�H�H��A;mv[I�EA�uA�m���D�$�D��A�|$E�SA���`���A�UHc�D�\$H�)�Ic�H��D�\$E)�E)eI�E�����D�D$L�$�L�$D�D$H��H��H����H��D�D$L�$����e����UH�EL�$D�D$��w9f.�҃�v��U��H��L�L$D�$�D�$L�L$H��H�Et1��}w�EL�+1�1�I�EL�`E���I����������������3�������ff.��9�vH�F�@%@���$5���+���ff.�AWH��M��AVI��AUATU��SH��H��L�d$`L�l$XA�$��t9������wA�$�D$PE��+A�E1�H��[]A\A]A^A_�fD��|$PA9}��9������A��H�pH�$DB�H�|$hD�L$D��D�\$����H�$���H�t$hA�H�x(������x�M��D�L$�jD�\$�I�vD�$H�|$hD������H�t$hE1�I�~(������D�$���-�4����A�U�����A��ҍrA��I�A��A����Hc΋|�B�D���D)�����(Hc�	׉|�M����������P��I�����0�����Hc�)���A	D����D��������H�t$hH�(D�$A���������v���M��D�$�Z����H�t$hE1�I�~(������D�$���9����C�����������������9�s$H�D$hH�@�@
@��A�$��@H�|$hH�pD�$����M��D�$tԋH�|$hI�v�����D�$�DH�|$hD�L$H�$�m����H�$D�L$�ҍrA��I�A��A����Hc΋|�B�D���D)�������H�t$hH�x(A�D�$�������S���M��D�$����5����5����7����p����-���f.�AWAVAUATI��UH��SH��H�1҃����H��tuL�.E�uI��E��~eE�1��fDA���tz��A�WA9�tF�CH�E�|�Hc�A�L���9�r�A�L��H���l�����t�H��[]A\A]A^A_�f�H��L��H��A�[�����]A\A]A^A_�,���@H��1�[]A\A]A^A_��AWAVAUI��ATI�ԉ�UL��SH��8A��D$���H����D�D$ 1�A��D$$HcD$ L�t�A;��9�w�@	σ��xA;so9����ۍCA��D��I�A��A����B�H���I�D�D)ыx���t�L��T$��H�D$�t$�6���H�D$�L$�T$�x	ωxA;r��t$ �F��H��t$ �\���9t$$�C���9��.E1�I�](�%�A��A��Mc�B�T���D9|$�"G�4?A�FH��L�9�vЃ�A�L��H�������t���L$��A�������H��Hc�H�H�t�L�D�H�t$(D�>�s�t$$E;8��A9�r%�f�	�A���xA�A9���D9���E��A�GE��D��AI�A��A����C�H���I�D�D)ًx���t�L��T$ L�D$H�D$�t$���H�D$�T$ L�D$�L$�x�v����D$�������f.��������1�H��8[]A\A]A^A_��\$$9\$�������H�D$(9sI�}(A�L���e��u��\$$9\$~��D$M�u(�\D�lfDHc�A�L��L���L��C�H��T�����u�����A9�u��f���f.�H��8I�}(L����[A�]A\A]A^A_���1ۅ�t�A��DA	���D�x9����ۍC��E��I�������3H���I�D�)�xA��D��t�L��T$H�D$�e�H�D$�T$�x��AVAUATUL��SH��L�d$0H	�I�uAD	�u1�[]A\A]A^Ð1҃[L����H�����]��A\A�A]A^��fDH��H����H������u_H�D�+H��E��ubH��H���m���u�E��t�E1��C�6A�L��H��P��������`���A��E9�u��P���@H�D�+H��E��u�H��L��H��H���u����D��H��A�Љ�DE��������u[H��]A\A]A^����[L��H��]A\A]A^�*���f.�I�H���H����AWAVAUATUSH��8L�/H�L�L$A�}D�0L�D$I��H�D$ L�x�|$���������D$E1�D�E��t{D�t$ E��f�C�6�L$H��A����E�$�����1��fD9�w�UD9�w+��A9���Hc�A�L��CH�A�l�9�w�A9��!A��D;t$ u�1�H��8[]A\A]A^A_�D����1��DH��t��t�H��L�������b�D$�D$��t�L�l$(L�d$�D$H�|$(�H��D�,����,�E��toH�D$ �P�H9�r`L��1�A��H���@�H�ЋT����L�A9�r6D9�r)D9�H�|$A�L��AG�A9�AC��L��� �����D9�u�I��D$�D$;D$�`������H��L����fD��A9�v89������H�t$H�|$A�D�T$���D�T$���u������@A���g����A9������H�t$H�|$D��D�T$A���D�T$���\���H��8[]A\A]A^A_�L��M��I��D��D�t$�D$���@AWL�GL�^AVAUATI��USH��H��X�oD�NL�jL�w(H�$L��D��A��H�V(��A��t1�H�|$D�|A��D�<H��H�� u��t$1�L�\$0�D�|A��E�<H��H�� u�1�A�4!4H��H�� u�1�L9�t��4�tH��H�� u�E��tzL��H�s(�H��H9�u�A�}��A!�A��tXH��H��L��1�ATE1�L��L�L$��H�|$A��XZE��uH�{(L���x��H��XD��[]A\A]A^A_�fDA�}t)M��I��D��L�����A�Dž�u��uH�<$�fDE1��A�}H�4$H�T$L��H�D$����H�<$A�����H�|$H�<$�g���AWL�^AVAUATI��USH��H��H��X�o�D�NH��L�jL�s(H�$E��A��H�V(A��A��t$1�H�L$�D�|A��D�<H��H�� u�E��t#1�L�\$0fDD�|A��E�<H��H�� u�1��A�4	4H��H�� u�1�H9�t��4�tH��H�� u�E��tjH��H�K(�H��H9�u�A�}��A!�A��tHL��M��I��1�1����H�<$A��E��uH�{(L������H��XD��[]A\A]A^A_�DA�}t9H��H��L��D��ATL��L�L$���A��XZE��u��uH�<$��E1��A�}H�4$H�T$L��H�D$��H�<$A���>��H�|$H�<$�X���AWAVAUA��ATI��U��S��H��I�X�L$H�T$(H�t$$L�$H��S`����������|$E�A��A�������H��^o�A�E����E1�A��D	�A�EA��A����H�ډ�D���SX��u�D��D��H�M�,�D��A�u���t�H�<$�D$��A�u�D$���t$L�D$(�L$$���cH�\$0H�$D���D$4H�D$8H��H�D$@H�D$HH�D$PH�D$X�����E���~H�4$H�l$`�D$dH�D$hH�D$pH�FH�D$xHDŽ$��xHDŽ$��H�}(A��1����H�$H��H�����H��$�H��t
�D$�<���D$���H�|$XH��t�$����$H�Ę[]A\A]A^A_�f�H�<$H�D$��H�D$�PA	�D�xA��A����H�ډ�D��SX��t�D��E��D��A��H�I���PD��t��@�������wE����E1���@	�A�EA��A��tlH��D���S(��~�H�ھD���SX��tE9��D��D����H�M�,���A�u���t�H�<$�D$���A�u�D$뗋T$��t�1������D$��t�{t�1҃{H�4$I�|$(��A��������������H�$D��L���a����@A�E����E1�A��fD	�BA��A���y���H�ډ�D��SX��tE9��D��D��H�I��D���r���t�H�<$H�T$�D$���H�T$�D$�r�H�<$H�T$�D$��H�T$�D$�r	�BA��E9����H�ډ�D��SX��t�D��D��H�I��D���r���t�뤽�A	�D�xA��E9������H�ھD��SX��t�D��A��D��A��H�I���PD��t�H�<$H�D$��H�D$�P�H�<$H�t$h�1��p����H�4$H�{(E1�������������H�$H��L���-�������������ff.�AWAVAUATUSH��8L�6L�iL�aL�t$(I9���A�D$H�L$H��H��H�4$����L��L��H��A�T$ L�t$(A��A�D$A9D$tL��L��H���L�t$(H�D�}I�H�EL�t$(�EA��]��A��-�FE9}��A��[�Z�A��&usA�E@�4I9��+L��H��L��A�T$ ��&��L�t$(�E�>f�E�>�V�����1�H��8[]A\A]A^A_�f��E�H�$L�3H��8[]A\A]A^A_�fDA�E
 ��I9��eA�D$����L��H��L��A�T$ L�|$(��A�D$M��A9D$tL��H��L���L$�L�t$(�L$H��EIƍAЉML�t$(��H�'H�Hc�H�>��fD�E��;������*���fDA�E�
I9��L��H��L��A�T$ ��:��H�|$(A�D$H�|$I��H�}A9D$tL��H���L�t$(H�I�L�t$(I9���f.�L��H��L��A�T$ Mc|$��E9|$tL��H��L���D$��L$Lc�M���:�pL��H��L��A�T$ ��]tBA;EtL9�v7M���@L9�v)A�D$A9D$tL��H��L���H�M�4L9��j���H�D$H�D$(A�E@t)�EL�t$(����A�M���8���@H�|$H�5���L�t$(�E���I9��r���L��H��L��A�T$ ��{A�E�'� �G���1�H�|$(M��H��������"H�T$(��E�EI9�I��D��E��B���A�E��H��EH�E�����H��EH�E�����E�H�E���I9������A�E@�����H�|$(M��H�޺��������Q�UH�T$(��E�EI9�I��D��E��u����E�H�E	�\���A�E�����E�H�E�8����E�H�E����H��EH�E�����H�	�EH�E����I9�s�L$L��H��L��A�T$ �L$��{�yH�|$1���H�5���L�t$(�E���A�E��I���H�|$(L��H��L�|$(�v��=��L�t$(��E�EM9�D‰E��<���H�T$H�|$(H��L�|$(����������9E�����EL�t$(��E���L9�vCL��H��L��A�T$ ��]u0A�D$A9D$tL��H��L����EL�t$(����A�D$A9D$tL��H��L���H�I�L9������p���f.�H�|$(A�D$A9D$tL��H���H�|$(H��EL�4��D���A�U���w���A�D$A9D$tH�|$(L��H�މL$�A�U�L$H�HD$(�EI��H�D$(1���P�����E�����A�|$�mL��H��L��A�T$ A��H�|$(A�D$I��A9D$tL��H���H�|$(H�H�A��^�G���1��}I�����E�E�s����@����A�D$A9D$tH�|$(L��H���H�|$(M��1�H��H�HD$(�b��A�Ņ���H�|$(H9�s"L��H��A�T$ L����A�T$X����IcD$A9D$tL��H��L���H�H�|$(L�H9������H9��~���L��H��A�T$ ��}�j���A�D$A9D$tH�|$(L��H���H�HD$(�EI���E�D�m�k���������=���E�.����.����*����8���� ����o��������,�������@��H�=�@���ff.���1����D�H��D)�u
��)ȅ��1����SH��H)�H��[�fDH����[�f.���H��H�=�ff.�f���H��H�4$H��H�T$H���H���ff.�@��AVI��AUI��ATI��UH���SH���L��H��L�0H��H��L�h���uH��[]A\A]A^ÐH�߉D$��D$H��[]A\A]A^���SH��H�XH��t1�H�5F���H�{XH��t�H�CX1�[����H��8H�OX1��D$H��t-H�GHH�4$H�5V��H�|$H��H�T$H��H�D$ ��D$H��8���H�XH��t#H��H��H�5����1�H���f�1��ff.�f���H�WX1�H��tH�BH���f���US�'���H��H�XH�D$H��t+H��H�L$�H�D$H��t�X��t1��tH�@ H�EH����[]�H��H�EH����[]��H�EH����[]�ff.�@��SH��H��H�L$���xCtUL�D$��tB�P�Lc�H��t(Lc�H�{K��@Hc1H�<��H��u��H�����u�C��H��[�DA�H��[ø���������1��G<�t�SH����¸��~H�SP�B�t	�C<����[����H����UH�-SH��H���;	w�HcD�H�>��H�{(H��t�f�H�H�H�H��[]��H�{H��t����H�{H��u���D�C��t�H�{H��t�H�C H9�u��D�Cu�H�{(H��t�����f.�H�{�H�H�H�H�[H���6����e���@�ff.�@��H�=H��t(S�H�H��H��H��u�1�[�D1��D��������SH��H��1��H��tH��u�f�H��H�SH��u�H�C[�ff.���UH��SH��H��H�H��t$H�H��	H�hH�XH��[]�D�k��H��u���@UH��SH��8�yH�T$H��H�BH�$H�D$ H�AH�t$H�5�H�D$H���P@�Å�u*H�t$H��tH�}�H��t%H�EH��8��[]�DH�|$�H��8��[]�H�|$��������ff.����H�S��H��t-H�H��������XH�@H�H[���{��H��u�[�@���������AW1�AVAUATUH��SH)�H��(H����L�GH�OI��I��HcGH��M��I)�N�d=��~yM�l$L9�}uH�C I�|$H9���L�L$H���H��H���L�L$H��H����J�|=L��L���H�kL�1�D�kH�kH��([]A\A]A^A_�I���L��L��L���H�k1�L�H�kH��([]A\A]A^A_��L�L$H�����fDL�L$H�L$L�D$�L�D$H�L$H��H��L�L$t-L��H��H��L�L$�L�L$J�|=L��L����=���������D���fDATI��UH��SH�H��tBH�H�H�C �L��H��H�CH��H�CH�C���u$H��[]A\�@���H��H��u�H��[]A\�H��1����@UH��H����SH��H��H�\$	H��P0��xH�H��H��H��H��[]����H�G ��w�GH�GH�G�ff.�@��UH�o SH��H���G��tH�H��t
H9�t�H�kH�kH�CH��[]�ff.���ATI��UH��SH���L��H��H��[]A\����������AWE1�AVI��AUI��ATUS��H��(L�!L�y�T$H�iI�|$M��t��A��ƒ>��8��P�|$��H������uE1�H��(D��[]A\A]A^A_�f��M��A��uދD$1��7H�\$�(H�H��H������IA�O9L$�A��I�D$D��H��A�<�H��P0H�E��u�H�4H���H��H���$�H��f�H���D�D$�D�D$��tH�E�7���E���1���I�D$A��x7���w/�о��E1�����H�	t�����E����@E1�H�}(��L�����E1������L�����A��A�Gt
��A��E��I�|$����I�] 1�H���H�I�E H�H��t3H��I�E �o���fDH��D$�D�D$�V���f.�A������A���D��AWAVAUATUSH��L�'H�|$I9���I��I��1��wL��L��L��A�V ��A�FA9FtL��L��L���H�L����M�<A�VX��tI�Cк���H)�H��H���������H���H��H9�rC�D��,CM9�vOM��A�F��u�A�$�@��H�L$L�!H��[]A\A]A^A_��H�������[]A\A]A^A_�@��M����1��DAWAVAUATUSH��HM�H�L�!A�jH�D$8��H9�r(����A�H��HD��[]A\A]A^A_��H�T$I��H��L��L�D$H�<$��u!H��A�T$ �P؃�����|��I�UL�|$8H��L���A��=����H�$H�L$8E1�H9�9H9��A�D$���D�L$H��L��H��A�T$ H�L$8D�L$A��A�D$I��A9D$t1H��L��H��D�D$,D�L$ H�L$�L�T$8D�D$,D�L$ H�L$H�I�L�T$8A��,�6E���}H�L$8E��A�H9��fA�D$����D�L$H��L��H��A�T$ H�L$8D�L$A��A�D$A9D$tH��L��H��D�L$�H�L$8D�L$H�H�<H�D$H�|$8H��tfD9x��A�D$���LD�L$L��H��A�T$ H�|$8D�L$A��A�D$A9D$tL��H��D�L$�H�|$8D�L$Hc�H�H�L$8A��}��A���t	E9���H�D$H�$�D�HD�hH�D$8H�����I�UH��L��L�T$ D�L$�A��=����H�L$8L�T$ D�L$I9�u]A�����E�������fD���X���A������S���DD��
����H�D$H��@t�A�E1����@E1��A���A���������DD�9�d����D�?����A�7������A�6����������H��I�����H��Hc������x`��x\H�H�H�@H�A�<�wl��H�Hc�H�>��f�H�I�pI�@H�����A�@H�F�FH���@H�FA�@I�@H�����I�@H�FH��H���fDH�I�pI�@H�����A�@H�F�F��I�p�f��oA�oNAH�oV AP H�F0I�@0�f.�H�FA�@I�@H�����I�@�S���DH�FA�@I�@H�I�@�+���D��H�=H��t0H��1�H�5�����H�=�1�H�H���1��ff.�f���H�W8H�O@�AWAVAUATUH��SH��HM�pL�>A�H�t$D��$�H�L$L�D$L�L$ ��(��A�����<�R��{A�}�DE�L�|$8I9��7A�F���5L��H��L��A�V ��A�FA9FtL��H��L���H�I�D9���L����A�VX�����)���A���cL9�wZ�1f�L��H��L��A�V A��A�FA9FtL��H��L���H�L�E9��jA��)�`H9���I��A�F��u�E�/�D��'�DE��������-��L����A�VX���QE1��D$,L��L9�w<����D��D�L$(��A�Ņ��>D�L$(L��D��A�VXH9�vzI��A�F���L��H��L��A�V A��A�FA9FtL��H��L��D�L$(�D�L$(H�I�E9���A��)��I�FXL��E���b����D���H9�w�E��t,H�|$8L��H���H�L$ ����F�)�D$,�H�D$H�(H�D$H�1�H��H��[]A\A]A^A_��A�>���DA������A�)���D�(������fDE������A�����DE9�ID��9���@I��H�D$H�|$L����H���Y���f��D$,L9������L�������)���A���n���L�|$8A��D$,����L9��K�����H9�LF���I��)����n����*��������8�������ff.�@AWAVAUATUSH��L�'L�jH�<$H�T$I9���H��M���P�L��H��L��A�U A��A�EA9EtL��H��L���H�I�A��}t\A�G؃�v#A��{A��vH9�vdI��A�E��u�E�>�f�H�$�!���L� H�|$L��L����H����[]A\A]A^A_ÐL��L��L��A�UP��H�$��yL� �@H�$1�L� �DH��M��1��@AWH��M��AVAUATUH��L��SL��H��H�H�H�|$H��H�t$(H��H�L$L�����D$8A�Ń��!E����A��uyH�D$L�s0L�kL� M9��A�E����
L��L��L��A�U ��A�EA9EtL��L��L��$��$H�Iă�]u�H�5H��A������E���H�T$H�H����H�$E1����H�D$�D$lH�H�D$xA���DH�D$t�D$XH�D$@H�D$0H�D$ L�t$A���H�
D��Hc�H�>��DD�uA�E1�H�CD��H��P(����1Ƀ���H�T$hSE��H�D$tPH��$�PQL�D$@D��H�t$(H�|$ �.��H�� A�Ņ���E����D�mA���]����|$lL�t$���3
L�|$0M��t]H�,$H��L��H�����A���H�}(�'���M���H�l$@H��L��H���k��A���0I�~(I����L�<$H�$�t$8�B����
���BM��tA�N�B�D$����t_H�C�@
tUH�$H�x(�%H�C1��
H��PX��t1H�C�
H��P(��H�$�B�@	�dH�$�HH�D$xH�\$E1�H�H��D��[]A\A]A^A_�L�t$A�����H�D$H�$H9t
H�$H�x(����M��t�H�D$(L90t�I�~(�����L�d$xI��M��H��H��$�H��$�L���j���A���H��$�L�t$�H��$���n���D�D$lE���H�|$0�D$l�fL�4$H�|$0H��L������A����I�~(�N���L�t$M����H�|$@H��L�����A���GI�~(����H�$�D$X�@H�@H�@H�@H�@ H�@(H�D$�@H�@H�@H�@H�@ H�@(L�d$x��L�d$xL�sM9��L��L��L��������D$<D�+L�A�D�l$HM���
DE�EI�ML��L��L������1I��H�I9�u�M9�vOA��	@M9�v>L��L��L��A�V ��:����]t#A�FA9FtL��L��L���H�I�A��u�H�5H��E1�E1��H���H�ED�uH�D$x����fD��UI�؋uH�<$���V��A�Ņ��+���H�|$H��t)�u��t!��UI�؁��&��A�Ņ�������D$l����
��uo�D$p��tf�����T$hH�4$A��ҍB��I������Hcȋt��:D���)�����qH�<$	�H��t�H�t$H��t	T���D$lL�d$x�D$pH��L��L��H�����A�Ņ��%���L�t$�`���D�}�����H�CH��P(A�Ń�����x�1��ME1�H�T$hSE��H�D$tPH��$�PVL�D$@H�t$(H�|$ ����H�� A�Ņ��n���L�t$�����D$l�����������L�d$xH��L��H��L������A�Ņ��:�����t"��tH�C�@
��v	H�5H���:���E1�A�-A����fDL�d$xH��L��L������A�Ņ��"����UH�<$1�I�؉��/������A������H�|$H��������UD��I��1����A�Ņ����������H�S�M�B��t�u�t$<����1����L�t$A���������}^�]���D�UE���P���H�t$H��L��H������D$8A�����fD�+���H�T$(H�H����I���/���f�L��L��L��A�V ��^��L��L��L����������2���fD���w����T$hH�$A�H��H�x(�����A�Ņ������H�D$H���B����T$hH�x(E1�H�މ��e��A�Ņ��"���H�D$L�t$H�$H;��������fD��a���fDH��$�H�<$H�����A�Ņ�����H��$�H���PH�|$H�����H��$�A���H��$��E����������L�d$xH��L��H��L���:��A�Ņ���������|������d����D$l���H�t$x��$�H�t$P����A�D�l$HL�d$xI��M���>fDH�S����t$<A;u�yA�E��B��4�I��D9r�iH��L��L��L��D�������y�L�t$A��E���K����H�T$hSE1�1�H�D$tPH��$�P��$�PL�D$@H�t$(H�|$ ����H�� A�Ņ���������fDA�$�]���fDH�|$t1H�D$H�D$@H�$H�D$0H��$�H�D$H��$�H�$���H�$H�D$0H��$�H�$f�H�$�D$XL�d$xH�D$�@H�@H�@H�@H�@ H�@(���f�A�FA9F�RH�I�M9������A�F����L��L��L��A�V A��A�FA;FtL��L��L���A��]�H���L�t$A���������DM��L��L��L��A�
D�l$HL�T$H�A�L��L��H�
H��I�����u�L�T$H1ɋT$<I��A��0H�<$A��A�rD�l$P���L$\�Z��A�Ņ���H�|$L�T$HtA�r����t
�|$Pu]IcFA9F��I�I�L�d$x��@H��$��H��$���f���f�L��L��L�������L$\�T$<I��H�|$���A�Ņ�t��E���@���A�����������A�FA9FtL��L��L���H�L��L��I�L������k����D$<�����H��� ����T$hH�4$�ҍB��I������Hcȋt��:D���)����S���@L�d$xH��L��H��L��D�u���A�Ņ��|�����tD�L$XE1�A�E����H�5H��E1�A��o�����H�5H���[���1��g���A������i�L��D�l$HE��BD9��DD�BD9�tH��$�Ic�H��A��D9��E9���A���HH�CH��$�H�wH��P �A����L��A��D�l$H�A��E1�L��D�l$H�v���H�T$hSE1�1�L��H�D$tPH��$�P��$�PH�|$ L��$�荼��H�� A�Ņ������H�D$PH�D$xA����D�l$<L�d$xM��E��DH��L��L��H�����A��E9�u�D�l$<E1��"���E�,$�L���L��L��L���H�I�IcFA9F����L��L��L���H�����H�$��BM�����A�f��B�D$���_�E1�D��$�1��Q�L�t$A�����H�D$0�T$8�@��taH�T$0���BH�$��H�$L�t$H�D$0H�D$0H�\$H�$H;�����A���\�A������Q�L�t$A������d�H�\$0��C�!�H��H�@H��(������H��H9�u���L�t$A�2�������E��E1����L�t$A�������H�x(A��
H�޺
臺��A�Ņ�������H��说����f.�AWAVAUI��ATUSH��XH�
M�xH�t$I�pH�T$(L�D$H�t$ H�L$H�L$HH�L$@��(�����x��<�W��{�}�E�L9l$��A�G���OH�|$L��L��A�W H�|$HA��A�GA9GtL��L���H�|$HH�H�H�D$HA9���L���D��A�WX�Ņ���D$L�d$H1��D$8��L��D��A���(fD���ЉD$����)���L��L�d$HM9���A�W����L��L��L��A�W H�|$HA�W��A�G9�tL��L���H�|$HH�Hlj؃�H�|$H��)��A9�����-���L$I�GXL�����[������Ѕ��(���D��]�����'�E�����A��-�L���D��A�WXL�d$H�D$����D$8�(�������@�D$���A�$L������D��|$A�މ�������D9��|A�FՃ��/1�A�GA��-H�L$H@�ōl-�����H��L��L��A�W H�L$HA��A�GH��A9Gt'L��H��L��D�L$<H�L$0�H�T$HD�L$<H�L$0H�H�L$0�D��H�L��H�D$HA�WX����H�L$0L��L��H�L$HH�L$HH��H�L$0�H�L$0������H�|$�G0A�GH�|$H���H�L$0L��L��A�W H�|$HH�L$0��A�GA9GtL��L��H�L$0�H�|$HH�L$0H�H�H�|$H9����)���H�T$H�|$L����H�D$�@,H��X��[]A\A]A^A_�f.������D$���TH�|$@L��L�������t��D$81�H�L$����H�\$H�Q,���)yH�T$�R\�D����H�t$ �F t.H�t$9F\��H���L�~hHc�H��ID�H�<���H�t$��F(�F�FH�D$(1�H�����fD�>���fDD��I��A�މ����H�|$D�7���f�H�D$�8����@,����f.�M�������)�O���fD�D$�D$8���D�	�i����H�D$H�\$H�@,H�L$HH�D$H�t$L��H�xH����
H�L$ L�T$H�A tAL�\$�P�L��M�L�A�{\M�Ch@Hc9�qI���H��ID�H�<�t\H��I9�u�H�L$��A(��tLH�t$�FL�V ���L�d$H�D$�D$8����L�d$@����f��0������fD�AA��A�Y���fD�T$��u_H�D$H���@,���@�/���H�D$�*����@,�?���H�T$H�|$L��'����'��������M�������;����AWAVI��AUI��ATUH��SH��HH�L�yH�4$L�aH�\$0H9���A�GA�A�FI�^����H��L��H��A�W H�\$0��A�GA9GtH��L��H��L$�H�\$0�L$H�H�H�\$0A9L$��A�NA�F��uA�H�<$H�H��H[]A\A]A^A_�DA�$��t7A9L$�<A9L$�A9L$�vA9L$ ��A9L$$���	��s��H�5Hc�H�>��E�\$A���`���H9���A�GI�^���YD�\$L��H��H��A�W H�L$0D�\$A��A�GH��A9Gt1H��L��H��D�L$D�\$H�L$�H�\$0D�L$D�\$H�L$H�E�NH�A�A�A�FH�\$0��U��	H�Hc�H�>����t��������A�����A�E����A����DA�Eud�@H��L��H��A�W H�\$0��A�GA9GtH��L��H��L$�H�\$0�L$H�L��1���H�H�\$0A�WXH�\$0�������H9������A�G��u���fD�����A����@H9���
L��H��H��A�W ��?�s
A�D$�g
H�\$0A�GH��A9G��H�H�H�|$0H9���L��H��A�W ��#��
A�GH�|$0��tL��H��A�W A�GH�|$0A9G��H�H�H�\$0H9���A�G���:H��L��H��A�W H�\$0��A�GA9GtH��L��H��L$�H�\$0�L$H�H�H�\$0A9L$����)u��M���f����wA����������A��������wA��������lA��y���@����A��d������@�A��L���������A��1���@���OA������H�$I�U(H9��A�����������H9������A�G��tH��L��H��A�W A�GH�\$0A9GtH��L��H���H�\$0H�H�H�\$0�P���A������1�A�EA�	����A�F�	�[���fDA���D����A�EA�	���������A�F�	�����A�������A�
�
����L��H���H�|$0�,���L��H���H�|$0�e���H�����A�
I�FH9���H��L��H��A�W H�\$0��?��H9���L��H��H��A�W ��+�8H�\$0A�I�F �H���H�A�
I�F�f�H�����A�
I�F�k���fDH�H9��I�E�@�FA�����fDI�MH�|$0L��H��M�E�����������H�\$0�
������lA����A�����A�$L�D$0���1�A��0H�|$0L����H��L�D$���������"H�\$0L�D$�A�A�FL9�D�A�F�����A�$����A�����A�$�	A����H9���A�����A�$��@�+	A�����A�$���	A����H�|$0L��H��D�L$H�L$0H�L$�H�L$D�L$=���
A�$��
A�U\��	~9���
A�D$ t&9��I���H����Hc�H�<���A�FH�\$0�A�A�FI�F(����H9��
A����A�$� ��	A�����A�D$�A�����A�D$�k
A����A�T$��tmA��/D�\$L��H��H��A�W D�\$��H�\$0A�GA9Gt L��H��H�߉L$D�\$��L$D�\$H�HD$0��{�XH�\$0A�T$H�\$0I�؀��"
A��#���A�$���	A�����A�$�@�x
A����A�D$���A����A�$��@�HA�����A�D$�lA����A�D$ �WA����A�$�� ��A����A�$��VA��x���A�$��@�A��c���H9�s D�L$L��H��H��A�W D�L$��{��1�D��H�5L�����H�\$0A�����A�D$��A��	���A�D$�A����A�$ ����A����A�D$@�$A�����A�$� �A����A�$�@�5A����A�D$���A����A�$��-A��u���A�$��}A��^���A�$�����A��K���A�$���A��6���A�$���A�����A�$�� �A��
���A�$������A���H�|$0L��H��H�L$0�-��������A9F��
A�FH�\$0�A���A��X�����������fDA�1���f�A�$�����A�G��tH��L��H��A�W A�GH�\$0A9GtH��L��H���H�\$0H�I�F H�A��*�DA�T$A�H�\$0��t\����A�G��tH��L��H��A�W A�GH�\$0A9GtH��L��H���H�\$0H�H�H�I�F A���� �Y������P����fD1�H�H�5L���P���H�\$0A��x�H�L$0H9�vL��H��H��A�W ��P��H�\$0A�$��u&H�\$0A��=�A��5�A�D$	��������A�H�\$0���� ��������D�H����A����H�|$0H9���L��H��A�W �ƒ�R�D$����&�����L�D$0I�UL���B�1����|$0t���A�GA9GtL��L��H���L�D$0H�I�<H�|$0H9���L��H��A�W ��)��A�GA9GtH�|$0L��H���H�HD$0�D$,H�D$0H��H�D$8H�D$8I�^A�H�\$0I�F �D$,A�F,A�F(����1�L���A�WX���Z���L�D$0I�EL���@�I����H�L$8H�t$0ARH��PL�ÿ(M��L�L$<����A[]���l�����)�����I�E�@@����A�GA9GtH�|$0L��H���H�HD$0A�H��H�D$0�YL��H��A�W ��A�GA9GtH�|$0L��H��L$��L$H�HD$0I��H�D$0��=��
��>�����H�L$8H�t$0PH��jM��(L�L$<���ZY�����H�D$8A�M�~I�F �D$,A�F,A�F(H�\$0A���|$&����A�GA9GtL��H��L���H�HD$01�L�D$0���H�A�I�F��5�A���$�A�
�
��L��H��H��A�W ��{A�$��� �MH�\$0A����I�MH�|$0L��H��M�E���������H�\$0�������x���A���A�	�	A�F��A�	�	A�F�s��@A�H��I�F��U�A���D�A�EA�	A�F�%P=����A�F�	��A��I�F��A�����A�EA�	A�F%A�F�	���A����A����H�	A�I�F���A�	�	A�F�i�A�	�	A�F�P�A�EA�	A�F%A�F�	�*��@A�H��I�F���A����A�D$@�+A����A��I�F	���A�A�H�L$0���4�A�GA9GtL��H��H���H�HD$0H��A����������A��0�JA�GA9GtL��L��H���L�D$0H�I�A��S�A��I�F�:�A�EA�	A�F@%P=����A�F�	�	�A��D�\$L��H��H��A�W L�D$0D�\$A��L��A�GA9GtL��L��H��D�\$�L�D$0D�\$H�M�L�T$0A��<t8A��'t21�H�5L���X���A���A��I�F�l�D�\$�D$,����I9��L��H��L��A�W D�\$��0���+��A�GA9GtH�|$0L��H���H�HD$0�L�D$0�|$,M����H�D$8A�^,L��A�I�F �D$,M�VA�F(����A�t`H��L��H��A�W ��L�d$0A�GA9GtL��H��L���H�HD$0��<t-��'t(1�H�5L��L�d$0�=���H�\$0A��e���H�T$0M��H��L����������J�H�\$0A��6�1��#���A�GA9GtH�|$0L��H���D�\$H�HD$0H��H�D$0H9���D�\$L��H��A�W A��(t|D�\$vfA��<tRA��{uA��D��A�}A9�u�A�GA9GtH�|$0L��H���H�HD$0�D$,1�I��H�D$8I�����A��D��A�>�A��'�'DD��A��D��A�)�A��(t�vaA��<t�A��{�t���1��v���1�L�T$H�L$8H��M��H�t$0AWD��jL�L$<�]��ZY����L�D$0L�T$����D�#����1�A��'����1���������I�^IcGA9GtL��H��H���H�H�A���A�T$���]�A�GA9GtH�|$0L��H���A�T$D�L$H�HD$0A�H��H�D$01�A��P����A�F��C�A�tHL��H��H��A�W A��L�D$0A�GL��A9GtL��L��H���L�D$0H�I�A��^tBA����D�#��H�T$0M��H��L���{D�\$�\������A�T$D�\$�~�1�A�~L����A�FA���1�H�|$0M���H���u������YH�T$0�A�A�FH9�H��D�A�F��R��@�N���A�GA9GtH�|$0L��H���H�|$0M���1�H��H�HD$0���A�ą���H�|$0H9�s#L��H��M�oXA�W L�����A�Յ���IcGA9GtL��H��H���H�H�|$0H�H9�vH9�rA���L��H��A�W ��}u�A�GA9GtH�|$0L��H���H�HD$0A�H��E�f��[��o����X��,����N�I�Uh���0����;�A�L���)��8����&�L����|$A�WX��t1��J�D$L�D$0D�X�L��A���w�I�E�@�i�A�GA9Gt'L��L��H��L�D$D�\$�L�D$0H�L$D�\$H�I�<H�|$0H9�sH�L$L��H��A�W H�L$A��H�L$L���D��A�WX�����|$-H�L$uH�L$0H�\$0H�L$8M��H��H�t$0W�(jL�L$<�{��AXAY���+�H�D$8I�^A�H�\$0I�F �D$,A�F,A�F(����H�T$0M��H��L���(�d�����:������A����H�|$0M���H��蕆�����|>�v���H�T$0�A�A�FH9�H��D�A�F��o������.����d��AWAVAUI��ATUSH��H��H�L$dH�%(H��$�1��H�9�t$���#A��H�M��L��Hc�H�>��1�1��G���D�I�EH��$�dH3%(D����H�Ę[]A\A]A^A_�@I�A�@�3D�NE���}L�t$H�{I�6���I�EH��u,��fD�����SH�uI�}�7�������H��L��L��H����������u�H�sI�I�}����L�|$`�CI�WL��H�ֈD$`H�T$�X���H���
�HA�I�E�0����'
�CI�}L��H�T$�D$`���xKA��H�U�JD9�!�B9�tI�EH�pH�x�A9��"H�t$H��L��H������y�A������ˏ��I�EH����E1�H�t$H��L��H����A�����M���A�A����@���1ҋsA���{��輏��I��H���p�C A�GH�I9G�sM�UA����b����L��L�T$�@���L�T$Hc�L�׉L$�,���A�G@L�T$A��umA�B@ufH�E�@t\Ic�H�5Hk�Hȋ���tD���H�H9t+H�H�5H��D�\$ H��1��
���L�T$D�\$ E��x�L$����A��A����M�W�S$��t�謍��H���AL�xI��M�}���H�|$L��L������A��������D$�̍��I��I�EH���D�L$1�1�I��H��D��������%����{D�L$��tA�N�E�$���A������H��L��L��L���G���A����������g����I�AM�qH�|$H�t$�HH�D$L��L�L$ H�A��H�D$(H���?fDH��L��H��S A��HcC9CtH��L��H���H�L�tE9���L��I9�w�L�l$H�\$H�l$ M��M��DH�|$(L������I�EH���H�D$L�0E1��;���fDH�L$H�t$`H�����A�ƅ��
I�u�F�	H�F(H���H��8��D�xD;x��A���wD��D�������H��T������DE�E1�B�T��ti�J�����A������ȁ�UUUU��%UUUU������3333%3333Љ����%Љ�����%�������F�<�I��I�� u�A����:H���H�|$`�1�1�迷��A�����I�EH���l���H�uD���5H�D$M�qH�8H�|$PI9���A�L��L�ƉD$A�V ��?��D�uA�ƀ���褊��H���D�pH��I�E��~��A���D$L�����I�ED�HI�}�)L�t$PH��L��H��L������A���������I��H�|$`M��L��H���A������I�EH�T$`�8��H�PI�M�A�������H�D$PH�L$E1�H����fDD�v(E��x�v,��tA��A���E\E�tE����H�L�{ H�SH���gH�H�
D�pE1�H�
H�@ H�PL�xI�E�EX�g���f��~��	��������A������������D�uH�D�~A��H����H�H�H�D�pE1�H�D�xI�E��@I�A�@���������1�1��x���I�E�����s���I�EH���f1�1������蘉��H���OI�UE1�H�PI�E���I�AL�t$z�
L��H��P0A��������H�EMc��
K�4>H��P0A���������Hc�L��L�L��Դ��I��H���>�H�o���I��H���H�E�x��I�~(A��
H��
����H�E�@|��1�L���H��H����H��L��H�D$�H�L$H��H�����H�D$腇��H�T$H��I��I�E��H�PE1��i���@��I�EH���K���f�A��������DI�A�@|���݇��I��H���wD�u�����A��I��H���(D�pE1�I�EL�x�����~�I�EH��t��SE1��P���f�D�~�~0H�v�V�NA��~H�s L�5M���
I�H�I�E�~I�F(��tA�F��tA�N A�~0E��~`A�W��}\H��L�MhL�D�@Hc9�H���H��ID�H�<���H��L9�u�1�A������A�T�H��A9��M�uE1����1�1�����I�EH��������SH�uH�����A��������L�t$���fDA�������L���DI�E�3�����u�H�EH�T$XH�t$PH���P`A�ƅ��l�E�_H�D$X�8�QH�EH�=H�D$`�C�D$h�C�D$lH����H�t$`L�����������T$P�KL�|$X�T$�L$�<����L$�T$H��I���H�����t�HI�FI�FI�FI�F ���M���A���~uD�\	A�A�A�IIc�Hc�A��I�<�;wB9�w	�E9�t>���pA��I�A��A��B�������Hc�D)�E��A��E	T�;v�A��E9�u�A��ɉL$����H���t����L$L�8���H�HI�F(M�u�A�N�foD$`H�=L��H�����DM9�����H��L��L���S ��E����L��I��I��L�l$H�\$H�l$ A�FA9FtH��L��L��H�L$�H�L$H�L�4M���������@A��E1��P�DH�H�=H�r��PPA�ƅ��~
I�}��������H�|$`�EtH��H��L������A������H�|$`����DL�t$PH��L��H��L���B��A������I��M��L��H��L���A�������H�D$PH�L$A�H��`�A�2�����DIc�H�t$H���H�t$H�������I�F(1�����H��A9���%���@H�|$`�E���f�fDH�E�@�&���H�|$PA�FA9FtL��L���H�|$PH�H�H�|$PI9��A�F���xL��L��A�V H�|$PA��A�FA9FtL��L��D�\$�H�|$PD�\$H�H�A�C�H�|$P��W�VH�Hc�H�>��H�E�@�7�D$%����A�~�D$��L��L��A�V A��A�FA9FtH�|$PL��L��D�\$�D�\$H�HD$P1�L�l$L�M��H�\$ A�̋\$D�|$I��D�ݍE׃�O��Ic�L�>��A�H�|$PI9���A�F���vL��L��A�V H�|$PL���A�FA9FtL��L���H�|$PL�H�H�H�|$P넃�)����:u���L��H�\$ E�?�EM��L�t$PH��L��L��H��L�l$�D$���A�����e�I��H�|$`M��L��H���ZD�}A�����;�����H���8����L$E1��HH�T$`I�EH�L$H�PH�D$PH���E����������I�G�@�pE���g������I�G�@�QE��������I�G�@���E���������I�GA���@�t	E������E������pE1��L���I�G�@��E�����矀��*���I�G�@��E����������E����
�����H�E�@ ��A�~��
L��L��A�V A��H�|$PA�FH�|$A9FtL��L���H�L��HD$P�D��A�VX����A��<tA�����A��'���H�D$PH�L$XD��I��H�t$PL��H�D$ARjL�L$\薴��A[A_A�����W�A�~H�|$P�
L��L��A�V A��A�FA9FtH�|$PL��L���H�A�����HD$PA��)�	�H�}HH�T$XH�L$`H�t$����*H�UH�|$`�B t8D�M\1�L�EhHc4�D9��~H���H��ID�H�<��eH��9�ҋ��D$L�"}��I�EH�������T$LH�|$�P���I�E�H�~�H�E�@@��A�~�b
L��L��A�V A��A�FA9FtH�|$PL��L��D�\$�D�\$H�E1�HD$PA��<��H�D$PH�L$XI��L��H�t$PH��D��H�D$ jL�L$\����Y^A�������H���p��A���D$L�����D����D$(A��~����	L�uHL�T$XI�FXH�D$ L��H+D$H�D$H���.
H�D$`H�|$ H���zH�t$L��H�L$`D�L$<L�T$0�L�|$`L�T$0D�L$<M���cA�G����
H�U�B	�z��A�G���E
E�wA9��
A�GI�W ��H�D���D�u�b{��H�������L$L�HD�pI�E�H���|$(t
���	E�E`���I�E��H�EE1��@��l���A������e�H�E�@��t騀tXA�~�6
L��L��A�V A��L�|$PA�FA9FtL��L��L��D�\$�D�\$A��<�
A��'��	L�|$P�D�u�z��H�����D�pH��I�E�n��A���D$L�����A����I�ED��D�H���	E����)z��I�E����I�E��A�~�%D�\$L��L��A�V D�\$��L�|$PA�FA9Ft L��L��L��D�\$�L$�D�\$�L$H�HD$P��=���!�H�E�@������L�|$PE1����f�A�N��l�H�t$(�L$ �T$�|$�x���|$�T$H��I�ƋL$ H�t$(������H�T$��x��H�T$H�������H�t$H��L��H��E1����A��I�E�`��
�f.��;y��A�����I��I�EH���5��M�sI��1�H�ǁ��L���A������D�CE�����A�N����x��I��H����I��1�1�D��H������E1�A������A�O�x��I��H����1�1�I��D��H��H�D$�̎��L�T$��A����1҃�1��y��L�T$H��I���HL�P1�H���w��H��H���9H��L��H�D$�w��H�T$H��H���
�H�D$�w��H�L$H��I��I�E��H�HE1���@L��D�L$L�T$�L�T$L���1��1��1��D�L$E������K�I�v�
�
H���#y���U�M�N(H��A���L�Ϻ�L�L$�J~��L�L$A�H��) �( L���*~����A������$�1�1�E1�L��H�L$H�T$�L���H�L$H���H�T$H����Z�1�1�E1�E1�E1�L��H�L$H�T$L�T$�L�T$L���L���H�L$�f.���u��H���5���H�|$`D�L$�D�L$��E���Z�I�rI�zH9��I�H�EHcH9H�H��H��H��H)�H9��#�H��H��L�T$�L�T$H����I;B���I�rH��L�T$H�D$�V���H�T$L�T$H���
A�Bt�H�{$I�RI�G��I�}1��u��I�EH����1�L��H�D$�t��H�T$H�BH����L�h�9�H�P�8�D���C$����L���H��/��HcQ;U\�b�H���H�uhH��HD�H������:	���1�1��}���I��H����1�H���I��H����H�|$`H���I��H����I�EL�p��1�1�E1����M���Z�I�F(��
H�=�H�H���M���A�����������A�������A�������A��H�A��=�A�G��u�A�G�'�L��L��������0��I�E1�1�E1��*���1�1��!��������M����A�������D�?�����������E1����D�L$0�D�L$0H�D$ I�FX�(D�L$0�D�L$0H��I�����I�FHD�L$0HcxI��H|$�D�L$0H���ZH�T$H�t$H��D�L$0�E��D�L$0I���$H�|$A�N�H�8H�LH��L��H��H9�u�M�H�|$ L��L��D�L$�H�D$D�L$I�G I�GI�GE�O����A�"������D����D��V�H�D$H�L$XL��I��H�t$P�(H�D$PPjL�L$\�٨��A��XZE�����H�E�@ t!HcD$L9E\|BH���H����H�<�t+��q��I�EH������T$L�P�i�����A�0����:�1�E1����1����1�E1�E1�����1�E1������ �I�E����I�E��E�I� D�L$Ic�H���H����I�G D�L$E�w����� D�L$�I�G H�����A�WD�L$A�G�D�H�����A�G���s����q���H�=H9=��H�5H��D�\$ H��H��H�5L�T$L��H�51���h��D�\$ L�T$���D�����H�A�HD$P��A��M��L��H�\$ L�l$D�|$�gp��H�����D�pH�t$H��H��H�T$PD�uI�EH��@L��E����A��������H�L$I��H�|$`M��D��H���D�uA���������I�EH�T$`D�H�P�W��1�1�����H��L�T$�L�T$H�I�RI�rH��H)�H9����H9����H�E�����o��H��t0L�xI������I�R����so��H��tL�xI���K���L���A��������H�L$XH�T$�'���H���A�'������H�Uh����H�T$L�Ѿ%���H���A�%����t��E1�L���L���I�}�I�EA������E��A�*����:��D�?��H�D$I���L���A��������AWAVM��AUM��ATI��U��SH��H��(H�L�|$H�4$L���l���…�����9�H�|$���u��
uH�;H��(��[]A\A]A^A_��1���m��H�H�X�#1��D$��m���T$H�H�X��t�9�t���
t�H�4$��M��M��L��L�������…�x@H�|$�?u�H�;H�D$H�XH��u�;H��H�KH��u�H�\$H���f�H�|$�$��$�B���H����AWAVA��AUM��ATM��UH��SH��H��(H�H�D$H�<$H��H�D$���H�|$L�$��A��xCA9�t1��
tD�A������������D�A��H��(D��[]A\A]A^A_ÐI�:��H�|$���@1�L�$�L�$I�H��H�$fDL��L��H��H���W���A�Dž�x�H�|$M��M��H��D��H�����A�Dž�x�H�|$1��H�$H�H��H�$A��
t�D93�?����N������AWAVI��AUI��ATI��UH��SL��H��XH�yXH��t1�H�5�_���H�CL�|$H��L��H�C L��H�CXH�C`�E<H�C8��E`H�C@�CH�EHH�ChH�CH�EPH�CpL�s(H�CxHǃ�Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�ǃ�H�CL�c0H�kHI�EL�t$L�t$L��������-1�I��M��L��L��L�������x�CX��$�S\1��D�S\�UH��X[]A\A]A^A_��D�#��j��H��t7D�`�@I�UH�P�S\��x'H���H��hH��HD�H�I�E1�뢋S\�����똸�����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign%sUnknown escape \%c is ignoredinvalid Unicode Property \%c[:]-]invalid back referenceinvalid subexp callM**???+ and ??+? and ??++?character class has '%s' without escapecharacter class has duplicated rangeregular expression has '%s' without escaperegular expression has redundant nested repeat operator '%s'nested repeat operator '%s' and '%s' was replaced with '%s' in regular expressionalnum
alphablankcntrldigitgraphlowerprintpunctspace	upper
xdigitasciiwordV��;k"���p\GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0fDAXJE�r
IIxO$�BE�D�G jFA�!F�T�$�DE�D�D oFA,��B�A�A ��
ABD`(�B�D�G �B(�A0�A8�D`a
8A0A(B BBBH\
8F0A(B BBBA`�B�B�B �B(�A0�A8�DP�
8A0A(B BBBHT
8F0A(B BBBA8�8A�A�J���`�M�A�v
AAG,9@@�B�B�B �A(�A0�D@�
0C(A BBBF(�UB�D�I �{
ABA�?���-�
(LA�D�G h
AAJ,\H�@
HKL\DI
Ch9dT,�|I�D�C �R
ABK �eQ�iF�H�X�D��B�B�B �B(�A0�A8�DP�8A0A(B BBBH�B�H�E �B(�A0�A8�G``
8A0A(B BBBAh%H|&B�H�E �B(�A0�C8�GP{
8A0A(B BBBGt��B�B�B �B(�D0�D8�D@x
8A0A(B BBBJD
8M0F(B BBBID8C0A(B BBBd@�B�B�B �E(�F0�D8�DpY
8A0A(B BBBD�
8M0G(B BBBEl�FB�B�B �A(�D0�\
(A BBBBG
(O EHBK�
(D BBBHD(G BBB��[�B�B �B(�A0�A8�Dp�8A0A(B BBBF������hp�������������Qp�������
8A0A(B BBBAX��B�J�B �B(�D0�A8�G���J�Y�A�U
8D0A(B BBBG\�B�F�B �B(�D0�A8�K�
8D0A(B BBBFK�K�Q�A�Ld"B�B�B �E(�D0�C8�I�
8A0A(B BBBJ`�	B�B�B �B(�A0�A8�Dp
8A0A(B BBBJW
8A0A(B BBBG,@-T&E�L
GMt�!H XP�mF�E�E �D(�I0�D@e
0A(A BBBBT0A(A BBB�9E�s	MH@D(	3QU@	<T	�E�A�I0A
CADL
CAHLCA(�	xE�G U
AFG
AA�	9Q�g,�	�N�H�G x
AAI���
;Q�aF�(
	<
2E�l(X
LE�D�G h
AAF4�
�A�D�DP]
CAFN
CAA�
LL�l
HK�
	`�
jF�D�B �B(�A0�D8�G`�
8A0A(B BBBDe
8A0A(B BBBA8T|B�D�D �F
ABEQ
ABD$�8A�I�G0dAA�!$�BE�E�G nAA(�(F�D�D �RAB 	H4+F�E�E �E(�A0�A8�F`S
8D0A(B BBBC`��F�B�B �B(�A0�A8�DP�
8A0A(B BBBHD
8F0A(B BBBEH�_B�B�B �B(�A0�A8�D�l
8D0A(B BBBI 0
{H{
Em
KT
CTkl

L�
�B�B�B �B(�A0�D8�D��
8C0A(B BBBHH�
�B�B�B �B(�A0�A8�DP�
8C0A(B BBBB�fB�H�B �B(�A0�G8�J���I�I�A�[�A
8D0A(B BBBD��I�I�A�X���K�I�H�X��N�I�H�V�L��B�B�B �E(�A0�A8�D��
8C0A(B BBBK�XB�B�E �E(�A0�D8�D��
8A0A(B BBBF:�D�W�A���E�S�A���E�K�A���G�L�B���`"B�B�B �E(�A0�A8�J�z
8A0A(B BBBE^�B�L�B�w�J�K�A� 
�B�N�A�H,B�B�E �E(�D0�C8�G`
8C0A(B BBBIHxB�B�E �E(�D0�D8�G`T
8D0A(B BBBBL��F�B�E �E(�D0�D8�G�9
8A0A(B BBBD	%-E&a~'��(��)/Kfvf�v����A�����J"o� O@oa��pB������!���4�D$4J$n@��$���0��.Vq�H�8�H���P9
�-N��b|u� U�u����?��V
5��LV
k�
�`
-��
��
��

��
�
��
L	)�
IL<�
\gL���P\������9�%lF�|Zlu��pe���y����y	$3	��J	$i	U�	0%�	U�	��	`&�	�	
i1
��L
i|
�
p��
�
f Ff?!_p�r!��"� !���"��$��"���$�)%�$"5�)V�2u�)	��2��2��2��2
�21
3K
3f
F3
F3�
c3�
�
c3�3:�3_
4�
4�I4�I4��4��4&�4L�4p�4��4��5��5686kI6�I6�A7�A7��7�7<�7\�7~�7��7�,8�,8��808�- <+?�8c9�9�)9�)9��:
�:);��:|C;iX;� ;8�X;��;��;�;:�;[<z<�<�<�K>�K>#K?JK?x�B�P?_��B�+D 	�++DXsD�	�sD��D��DQH#�D�.QHZ\I�`H��\I��Z�`If�`���Z#�aJ�Z�d�a�|��aX��|�P���|`"�`0�p��
 8P�4m�NP�[m�w������R�&'()%����(�>�!�E�C�@P
^G�r!�'3CXl

 !"#$*+,}��������%4;C�2V�2n�2-{ 3&�P3��p3!���3m�49,P4M>�43W�4l5���5x�69�P6��P7;��7	��72�7L"�8L7 9	M09j_`;!z�;B��;(�<	��P>���B{�0DC�D
:Idq��������	(.annobin_regparse.c.annobin_regparse.c_end.annobin_regparse.c.hot.annobin_regparse.c_end.hot.annobin_regparse.c.unlikely.annobin_regparse.c_end.unlikely.annobin_regparse.c.startup.annobin_regparse.c_end.startup.annobin_regparse.c.exit.annobin_regparse.c_end.exit.annobin_onig_null_warn.start.annobin_onig_null_warn.end.annobin_str_end_cmp.start.annobin_str_end_cmp.endstr_end_cmp.annobin_str_end_hash.start.annobin_str_end_hash.endstr_end_hash.annobin_i_names.start.annobin_i_names.endi_names.annobin_type_cclass_hash.start.annobin_type_cclass_hash.end.annobin_i_free_name_entry.start.annobin_i_free_name_entry.endi_free_name_entry.annobin_bbuf_free.start.annobin_bbuf_free.endbbuf_free.annobin_i_free_shared_class.start.annobin_i_free_shared_class.endi_free_shared_class.annobin_scan_env_add_mem_entry.start.annobin_scan_env_add_mem_entry.endscan_env_add_mem_entry.annobin_scan_unsigned_hexadecimal_number.start.annobin_scan_unsigned_hexadecimal_number.endscan_unsigned_hexadecimal_number.annobin_scan_unsigned_octal_number.start.annobin_scan_unsigned_octal_number.endscan_unsigned_octal_number.annobin_onig_syntax_warn.start.annobin_onig_syntax_warn.endonig_syntax_warn.annobin_CC_ESC_WARN.start.annobin_CC_ESC_WARN.endCC_ESC_WARNonig_warn.annobin_fetch_escaped_value.start.annobin_fetch_escaped_value.endfetch_escaped_value.annobin_bbuf_clone.start.annobin_bbuf_clone.endbbuf_clone.annobin_i_renumber_name.start.annobin_i_renumber_name.endi_renumber_name.annobin_popular_quantifier_num.start.annobin_popular_quantifier_num.endpopular_quantifier_num.annobin_type_cclass_cmp.start.annobin_type_cclass_cmp.endtype_cclass_cmp.annobin_node_new.part.3.start.annobin_node_new.part.3.endnode_new.part.3.annobin_node_new_list.start.annobin_node_new_list.endFreeNodeList.annobin_node_new_enclose.start.annobin_node_new_enclose.end.annobin_node_new_cclass.start.annobin_node_new_cclass.endnode_new_cclass.annobin_node_new_anychar.start.annobin_node_new_anychar.endnode_new_anychar.annobin_node_new_quantifier.start.annobin_node_new_quantifier.endnode_new_quantifier.annobin_CC_DUP_WARN.start.annobin_CC_DUP_WARN.endCC_DUP_WARN.annobin_bitset_set_range.start.annobin_bitset_set_range.endbitset_set_range.annobin_add_code_range_to_buf0.start.annobin_add_code_range_to_buf0.endadd_code_range_to_buf0.annobin_add_code_range0.start.annobin_add_code_range0.endadd_code_range0.annobin_next_state_val.start.annobin_next_state_val.endnext_state_val.annobin_not_code_range_buf.isra.11.start.annobin_not_code_range_buf.isra.11.endnot_code_range_buf.isra.11.annobin_add_ctype_to_cc_by_range.isra.12.start.annobin_add_ctype_to_cc_by_range.isra.12.endadd_ctype_to_cc_by_range.isra.12.annobin_or_code_range_buf.start.annobin_or_code_range_buf.endor_code_range_buf.annobin_and_code_range_buf.start.annobin_and_code_range_buf.endand_code_range_buf.annobin_and_cclass.start.annobin_and_cclass.endand_cclass.annobin_or_cclass.start.annobin_or_cclass.endor_cclass.annobin_add_ctype_to_cc.start.annobin_add_ctype_to_cc.endadd_ctype_to_cc.annobin_fetch_token_in_cc.start.annobin_fetch_token_in_cc.endfetch_token_in_cc.annobin_onig_set_warn_func.start.annobin_onig_set_warn_func.end.annobin_onig_set_verb_warn_func.start.annobin_onig_set_verb_warn_func.end.annobin_onig_strncmp.start.annobin_onig_strncmp.end.annobin_onig_strcpy.start.annobin_onig_strcpy.end.annobin_onig_st_init_strend_table_with_size.start.annobin_onig_st_init_strend_table_with_size.endhashType.12648.annobin_onig_st_lookup_strend.start.annobin_onig_st_lookup_strend.end.annobin_onig_st_insert_strend.start.annobin_onig_st_insert_strend.end.annobin_onig_names_free.start.annobin_onig_names_free.end.annobin_onig_foreach_name.start.annobin_onig_foreach_name.end.annobin_onig_renumber_name_table.start.annobin_onig_renumber_name_table.end.annobin_onig_number_of_names.start.annobin_onig_number_of_names.end.annobin_onig_name_to_group_numbers.start.annobin_onig_name_to_group_numbers.end.annobin_onig_name_to_backref_number.start.annobin_onig_name_to_backref_number.end.annobin_onig_noname_group_capture_is_active.start.annobin_onig_noname_group_capture_is_active.end.annobin_onig_node_free.start.annobin_onig_node_free.end.annobin_onig_free_node_list.start.annobin_onig_free_node_list.end.annobin_onig_node_new_list.start.annobin_onig_node_new_list.end.annobin_onig_node_list_add.start.annobin_onig_node_list_add.end.annobin_onig_node_new_alt.start.annobin_onig_node_new_alt.end.annobin_cclass_case_fold.start.annobin_cclass_case_fold.endcclass_case_foldi_apply_case_fold.annobin_onig_node_new_anchor.start.annobin_onig_node_new_anchor.end.annobin_onig_node_new_enclose.start.annobin_onig_node_new_enclose.end.annobin_onig_node_str_cat.start.annobin_onig_node_str_cat.end.annobin_node_new_str.start.annobin_node_new_str.end.annobin_node_str_cat_codepoint.start.annobin_node_str_cat_codepoint.endnode_str_cat_codepoint.annobin_onig_node_conv_to_str_node.start.annobin_onig_node_conv_to_str_node.end.annobin_onig_node_str_clear.start.annobin_onig_node_str_clear.end.annobin_onig_node_str_set.start.annobin_onig_node_str_set.end.annobin_onig_node_new_str.start.annobin_onig_node_new_str.end.annobin_i_apply_case_fold.start.annobin_i_apply_case_fold.end.annobin_onig_scan_unsigned_number.start.annobin_onig_scan_unsigned_number.end.annobin_fetch_range_quantifier.isra.17.start.annobin_fetch_range_quantifier.isra.17.endfetch_range_quantifier.isra.17.annobin_onig_reduce_nested_quantifier.start.annobin_onig_reduce_nested_quantifier.endReduceTypeTable.annobin_onig_free_shared_cclass_table.start.annobin_onig_free_shared_cclass_table.endOnigTypeCClassTable.annobin_onig_scan_env_set_error_string.start.annobin_onig_scan_env_set_error_string.end.annobin_fetch_name.start.annobin_fetch_name.endfetch_name.annobin_fetch_char_property_to_ctype.start.annobin_fetch_char_property_to_ctype.endfetch_char_property_to_ctype.annobin_parse_char_class.start.annobin_parse_char_class.endparse_char_classPBS.13794.annobin_fetch_named_backref_token.start.annobin_fetch_named_backref_token.endfetch_named_backref_token.annobin_fetch_token.start.annobin_fetch_token.endfetch_token.annobin_parse_exp.start.annobin_parse_exp.endparse_expPopularQStrparse_subexptype_type_cclass_hashReduceQStr.annobin_parse_branch.start.annobin_parse_branch.endparse_branch.annobin_parse_subexp.start.annobin_parse_subexp.end.annobin_onig_parse_make_tree.start.annobin_onig_parse_make_tree.end.LC0.LC1.LC2.LC3.LC5.LC4.LC8.LC7.LC6.LC11.LC10.LC9.LC13.LC12.LC14.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouponig_null_warn_GLOBAL_OFFSET_TABLE_reallocmalloconigenc_mbclen_approximateonig_vsnprintf_with_patternrb_compile_warnrb_warn__stack_chk_failrb_ruby_verbose_ptronig_bbuf_initmemcpymemmoveonig_set_warn_funconig_set_verb_warn_funconig_strncmponig_strcpyonig_st_init_strend_table_with_sizest_init_table_with_sizeonig_st_lookup_strendst_lookuponig_st_insert_strendst_insertonig_names_freest_foreachst_free_tableonig_foreach_nameonig_renumber_name_tableonig_number_of_namesonig_name_to_group_numbersonig_name_to_backref_numberonig_noname_group_capture_is_activeonig_node_freeonig_free_node_listonig_node_new_listonig_node_list_addonig_node_new_altonig_node_new_anchoronig_node_new_encloseonig_node_str_catonig_node_conv_to_str_nodeonig_node_str_clearonig_node_str_setonig_node_new_stronig_is_code_in_cconig_scan_unsigned_numberonig_reduce_nested_quantifieronig_free_shared_cclass_tableonig_scan_env_set_error_stringonigenc_strlenonigenc_with_ascii_strncmponigenc_stepst_add_directOnigEncodingASCIIonigenc_get_prev_char_headonig_parse_make_treeOnigDefaultSyntaxOnigSyntaxRuby� ��������� ��������� ��������� ��������� �������� �������� ��������$ ��������}!���������"���������#��������V#���������$�����������������	%��������6���������=&��������D'��������S*��������Z��������������������#��������B<���������#���������#���������	#���������	#��������q
*��������x
����������
(���������
���������0"��������I)��������c*���������
�
�
Wf���
s*��������z����������(������������������!��������O!���������!���������!���������!���������+��������(+��������W"���������)���������!��������0*#��������l+#���������+<T*,#��������z,#���������,#��������(-���������K/���������/0#��������_0#���������0#���������0#��������Z1#���������1#��������2#��������g2#���������2���������<3*��������Z3����������33���������3"���������35���������3 ��������+47��������948���������47���������47��������*52���������5<��������%6;��������a6<x�6 ���������6�6�6?��������7?��������7#7W7n7s7 ���������7A���������78�8C���������8?���������8?���������8�8�9!���������9/��������:/��������!:"��������H:"��������r:/���������:/���������:�:�:F��������;?��������M;F���������; ���������;H���������<K���������<F��������=J��������;=K���������=K���������=C��������(>?���������>#���������?L��������n@#��������A#��������yA#���������AL���������B<	�B<�7D��������ND7��������UD��������ZD8��������cD��������6E#���������E#���������F#���������FL���������GO���������H#��������
IO��������J#��������.J����������J<�M?��������M?��������<NP��������WN<\�NQ���������N<	�N#���������N���������
Q���������`RP��������QS?��������^S?���������U#���������UR���������U����������UQ���������V?���������V?���������V#��������W#��������'WP���������W����������W���������6X#��������KY#��������lY#��������y[#��������7\#���������]#���������]L��������M^#���������^O���������^L��������@`<��������naO��������b#���������b<(1c#��������oc<��c#��������Be#���������f#��������gg#��������g#��������Ch*��������Jh����������iL���������j#��������l����������m#��������jn#���������n����������n����������o#��������
p#���������p#��������5q#���������q#���������t#���������t#���������u#���������u��������)v#���������v#���������v��������,w#���������w#���������x#���������x#��������5y#��������z#���������z#���������z#���������{#��������;}<P~F���������~F���������~#���������<	�*��������������������\���������Z�#��������ʂ?��������Ԃ?��������D�_���߄+�C��������G�C����������D���������D��������^�q�g�?��������ƈ���������3���������"���������"��������,���������:�S����������#��������ˊ��������Ҋ*T��������*�?����������"���������?��������$�#��������u�#����������<���#���������<}�<��#����������<��#��������<�#��������k�<��������?�#���������2��������ҒD��������A�#��������֓D��������&�#��������n�?��������{�?����������?����������?����������?��������+�?��������3�?��������@�?��������M�?��������v�?����������?����������?����������?���������U��������5�C��������N�C�������������1�������������������M��������!�'����������0����������"��������њ"����������*��������C�4��������T�D��������g�D����������!����������"����������*���������������������\"��2����������#����������?����������O��������ݞO���������?����������?���������?��������A� ��������Y�?��������Š?����������?���������C��������h�C��������ġ7��������� ���������
"��������_31��������<F��������fC?�������� ���$,PXv��v�v���v���D�Lpxo��o�o��o�0�8�d�l����4���4�4�$$4,$P$X��$��������HDLHpHx��H������08udlu�u���u�����V
$�,V
PV
X�
�V
��
��
��
��
��
	�
	�
D	�
L	�
p	�
x	L�	�
�	L�	L�	�
L
�0
�8
�d
�l
��
��
l�
��
l�
l�
�$l,�P�Xy���y�y�$�y�$$UD$LUpUx��U�����i
�
i0
i8
d
il
�
�
f�
�
f�
f�
!$f,!P!X�"�!��"��"��$��"��$�$�)D�$L�)p�)x�2��)��2��2��2�2�20�28�2d�2l�2��2�3��2�3�3�F3$3,F3PF3Xc3�F3�c3�c3��3�c3��3�3
4D�3L
4p
4xI4�
4�I4�I4��4I4�40�48�4d�4l�4��4��4��4��4��4��5$�4,�5P�5X6��5�6�6�I6�6�I6I6A7DI6LA7pA7x�7�A7��7��7��7�7�70�78�7d�7l�7��7�,8��7�,8�,8��8$,8,�8P�8X9��8�9�9�)9�9�)9)9�:D)9L�:p�:x;��:�;�;�X;;X;0X;8�;dX;l�;��;��;��;��;��;�<$�;,<P<X<�<�<�<�K>�<�K>K>K?DK>LK?pK?x�B�K?��B��B�+D�B+D0+D8sDd+DlsD�sD��D�sD��D��D�QH$�D,QHPQHX\I�QH�\I�\I��Z�\I��Z�Z�aD�ZL�ap�ax�|��a��|��|�P��|P�0P�8m�dP�lm��m�����m��������R�$ ��, R� � � � �@ 4 $ ($,(0,4084d8@<D@HD�HPL<PXT�Xa/\e/`i/dm/hq/lu/py/t}/x�/|�/��/��/��/��/��/��/�0�0�0�0�4.�0�0�0�.�$0�(0�,0�00�40�80�<0��/�D0�H0��/�P0�T0�X0�y/�`0�d0h0l0p0t0x0|0�0�0 �0$�0(�/,�00�04�08�/<�0@�0D�0H�0L�0P�0T�0X0\�0`�0d�/h�0l0/p�0t/x^.|�6��6��6��6��6��6��6��6�07�47��C��C��C�DC�D��C�C��L��Q�@P��Q��J��Q�8O��Q��Q��Q��Q��Q�R�R�R�RRRxQR R$R(RQ �N$�M(8M,�c0�c4�|8�c<�c@�|D�|H�|L�|P�|T�|X�|\�|`�|d�|h�|l�|p�|t�|x�||�|��|��|�d��|��|�(d��d��|��|��|��d��e�f�(f�}�	}�df�}�}�}�}�!}�%}�)}�-}�1}�5}�9}�=}�A}�E}�I}M}�fU}Y}]}a}e}i} m}$q}(u},y}0}}4�}8�}<�}@�}D�}H�}L�}P�}T�}X�}\�}`�}d�}h�}l�}p�}tgx�}|�g�Tg��}��}��}��}��}��}��}��}��}��}��}��}�~�~�	~�
~�~�~�~�~�!~�%~�)~�-~�1~�5~�9~�=~��g�\e��l*m�k�l`lbmfmjmnm �h$�i(�i,�i0�i4�i8�i<�i@�iD�iH�mL�mP$mT�mXm\�m`�md5lh{ml�mpmt�mx�m|zm��k��m��m��l��m��m��m��m��l��l�9l�'m�n�n�
n�vl�'m�n�0l�n�"n�&n�*n�.n�4l�6n�l�>n�-l�Fn�Jn��kkVnZnwkbnfnjnnn m$vn(zn,�k0�n4wk8�n<�j@�jD�nH�jL�jP�jTP}X,~\`�`�}d(�h�~l��p\�t8�x<�|0��4��h���}�8���}���D�����ą�����̒����������������r����������<��$��(��,��0��4��8��<��@�D�H�L�P���X�O�@� 1�$h�(w�,p�0t�4x�8|�<��@��D��H��L��P��T��X��\��`��d��h��l��p��t��x��|���ē�ȓ�̓�Г�ԓ�ؓ�ܓ���������������������������,������8��<��$��(��,��0��4��T��<��\�D�H�h��������Z� �$�(�,�0�4�8�< �@$�D(�H,�L0�P�T8�X<�\@�`D�dH�hL�lP�pT�tX�x\�|`��d��h��l��p��t��x��|�����������������������������������������������������ē�ȓ�̓���ԓ�ؓ��������E����~��� �$�(�,�0�4��8�<V�@$�D(�H���`
  3t(3t03u83w@3zH3}P3�`3�h3up3�x3z�3w�3�X 4H�\�| �p�����@,0��0PD�� �����`
��
�
0�
PPl����p�� �l0�`��Dp� p� !�"h�$��)�20�2D�2X 3xP3�p3��3�4	P4,	�4D	�4X	5�	�5�	6�	P6
P7,
�7@
�7\
�7�
08�
�8�
 9�
09X�:� ;�`;��;��;$<8 <�P>�P?4
�BX
0Dp
�D�
�D�
`H `I��Z�a��|0P�|p����.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rela.data.rel.ro.local.rela.data.rel.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@.T.l.�.�.	'�R�"@�(.-�3�=�4 8@�G�.
SL�bL��]@8f0.
| �� ���@hf0.��������@�f0.��������@�f0.2���28�.`��	 )@�f�1.;`�� 6@���.S��N@X�0.]0�.�.��.�|.�S.�'.�f.�t.��.��.��.��0� �P��@���.,`�X /	�	� ��regsyntax.o/    1690381920  1000  135   100644  13832     `
ELF>H+@@+*

 !"#��H��tH�H�81��f.�H�H�=H�81��ff.�����o�oNOH�F H�G ����7�f����w�����w�����w������f����G�����G�����G���������wH�
��Hc�H�>����W$1��f��W 1��f.��W1��f.��W1��f.��W1��f.��W1��GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignV�``��\V��cn��\V��C ���\V�C ��\V�?w`K��P\V���\�*�P\V*��@\V���\"�\\GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�40DXl������v/H e�!��"��#B4g4�]�]�g�g
x+xS�y��������*�K�s�������V !"#'3CXl	

$%&}4����@�`�p��5�H�\�u���v� (�`(��(��(� (�`(�(�(& (>`(S�(.annobin_regsyntax.c.annobin_regsyntax.c_end.annobin_regsyntax.c.hot.annobin_regsyntax.c_end.hot.annobin_regsyntax.c.unlikely.annobin_regsyntax.c_end.unlikely.annobin_regsyntax.c.startup.annobin_regsyntax.c_end.startup.annobin_regsyntax.c.exit.annobin_regsyntax.c_end.exit.annobin_onig_set_default_syntax.start.annobin_onig_set_default_syntax.end.annobin_onig_copy_syntax.start.annobin_onig_copy_syntax.end.annobin_onig_set_syntax_op.start.annobin_onig_set_syntax_op.end.annobin_onig_set_syntax_op2.start.annobin_onig_set_syntax_op2.end.annobin_onig_set_syntax_behavior.start.annobin_onig_set_syntax_behavior.end.annobin_onig_set_syntax_options.start.annobin_onig_set_syntax_options.end.annobin_onig_get_syntax_op.start.annobin_onig_get_syntax_op.end.annobin_onig_get_syntax_op2.start.annobin_onig_get_syntax_op2.end.annobin_onig_get_syntax_behavior.start.annobin_onig_get_syntax_behavior.end.annobin_onig_get_syntax_options.start.annobin_onig_get_syntax_options.end.annobin_onig_set_meta_char.start.annobin_onig_set_meta_char.end.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouponig_set_default_syntax_GLOBAL_OFFSET_TABLE_OnigDefaultSyntaxOnigSyntaxRubyonig_copy_syntaxonig_set_syntax_oponig_set_syntax_op2onig_set_syntax_behavioronig_set_syntax_optionsonig_get_syntax_oponig_get_syntax_op2onig_get_syntax_behavioronig_get_syntax_optionsonig_set_meta_charOnigSyntaxPythonOnigSyntaxPerlOnigSyntaxPerl58_NGOnigSyntaxPerl58OnigSyntaxJavaOnigSyntaxGnuRegexOnigSyntaxGrepOnigSyntaxEmacsOnigSyntaxPosixExtendedOnigSyntaxPosixBasicOnigSyntaxASIS*G��������#*G��������**H���������&�������� +��4$,4P4X]�4�]�]�g�]�ggxDgLxpxx��x��������0�8�d�l�������������$�,�P�X��������V���V ' (
 )
 * 4H\  4@H`\pp�������������.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rela.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@(,T(-l(.�(/�(0'�V"@�"`(-3=�8@#P(
Sb�]@X'0(
|�	��	��@�'0(������@�'0(��
��
��@�'0(`� @(�(0(.�V�V|VSV'V!V/VBVTVcVsX �x��@�((&p�)E	@b�)�ruby.o/         1690381920  1000  135   100644  75456     `
ELF>@@/.

"$!% &'��H������1��f�����fD��H�H�H���f.���H������HE�H�:����H��H��wH�H���f�AUI��ATUH��SH��H�H�L������t~�<:u@H���E<:t�t^�EH��<:te��u
�_�<:tH�߾����H�H����u�H��H)�H��H���H��A��L��H������u�H��[]A\A]��1���@��SH���H��H���H��[���H�GH� t	H�GH��t�8.u�x/t���H���ff.����H��H�=�ff.�f�ATI��USH�H��t!L���H��H�@H��[]A\�f�H���H�EH��H�@���USH�_H��H� tH�_H����Ņ�x���H�����u$H����[]�H�H��H�5H�81��H�H��H�5H�81��f���AWAVAUATUSH��H��L�/H��H�|$H�D$��H�=D�cH��H���������H�L�t$H�(H�k H��L��H�=�#�C�H�ËD$����E��tH��u3H�H9(uH�ĨH��[]A\A]A^A_�f�H�����fDL���H��t�H��H�=��f�1�1�H���A�Dž�xb��L�t$�L��D������uB�D$(%�=@tKH��1�D���H������H�H9(tH����|$���8�H�|$H�������H�|$H�����H��H�|$H�t$�H�D$H�0�� u1H��H�P��Hc�H9�u(1�H�=�H�D$H���fDH�PH�p��H���fDH����uH�����t�����uH���H�H��tH���H��H�H�5H�81��ff.����ATI��U��SH�H��t/���L���H��H���H��H���H��[]A\���H�=�H��H��ff.���SH�H��t'����H��1�1�H���H��H���H��[��H�=�H��H��ff.���ATI��U��SH�H��t/���L���H��H���H��H���H��[]A\���H�=�H��H��ff.���ATI��U��SH�H��t/�B���L���H��H���H��H���H��[]A\���H�=�H��H��ff.�AU1��ATUSH��H���H�����A���A���D9�t�K(A9�t?�K(��uGH�H�����C`�����Cp�����CPH��H��[]A\A]����tŋC(��t�D�S$����C$�H����u��u?�� H���H�H��H�5H�81��H�H��H�5H�81��H�H��H�5H�81���AUI��ATUH��SH��H��H��uH���H��H��H���H�+I��H��t$H�5H��t+1�H��L���H��u0L�#H��[]A\A]�D�H�=�H��H��H�H�L��H�5H�81��D��AUI��ATI��U��SH������Hc޸H�=L��H��H��HN�H9���€�����H��
�
H�=L��HN�H9���€��������CH���H�=L��HN�H9���€���������H���H�=L��HN�H9���€����1H��H�=L��HN�H��H9��������H���H�=L��HN�H9�������yH��
�
H�=L��HN�H9�������`H���H�=L��HN�H9����������HH���H�=L��HN�H9������u#A�MH��[]A\A]�f���	~[���2L���H�=1��H��H�=1�[]A\A]��A�MH��[]A\A]�A�M�f�Hc޹
H�=L��H��
HN�H9���������A�MH��[]A\A]�@A�MH��[]A\A]�H��H�5L��HN�H������t���fDA�M ����fDA�M@����fDA�M����H��H�=L��HN�H��H9������t��������9���f.�HcθH�=L��H��HO�H9�����������A�M�z������I��A����HcƹH�=L��H��HN�H9����������H���H�=L��HN�H9��������toA��t%H���H�=L��HN�H9������tWL��D��H�=1�����HcθH�=L��H��HO�H9������u��
���
�@�����Ð��I��A����HcƹH�=L��H��HN�H9����������H���H�=L��HN�H9��������toA��t%H���H�=L��HN�H9������tWL��D��H�=1�����HcθH�=L��H��HO�H9������u��"����"��@�ÐAWAVAUATUSH��(H�H�|$�I��H�L�8�H�-I��A���ALJ��D$H����L�d$H����������H���L��H��H�D$�H�H�|$H�H�G@��u,H�����t#H��у���tH�р�H�H��t��t[L��H��L���H��� �y���H�{�y���H�D$H��D$A���H��([]A\A]A^A_����f��H�=�H��H������H�=St-H�H��H�8����H�H��H��H��[�H�H�5H�81��ff.��AWAVAUATUSH��HH�|$�L�(H�D$A�� ��I��L�pA���%H�D$(H�D$�I��I�F�H�|$H�D$(��8-H����I���x-�OH�D$(�}H�]@���V@��=�:I��E1��1@��_t
����RA�I�G@��t'@��=��I��@��-u�A�A�I�G@��u��E$E����H�t$(H���M���5���H�L$H��� tH����L)�H�X��H�AH�D$L)�H�X�H��tH�|$H���H���u�H�D$�����H��H[]A\A]A^A_�f��I��H�D$(�E$E���g����E���[���fD<-u�_H�����u��>���f��x������<����EH�}�H�D$(�E$����H�D$L�hL�p M���/����O����#H�=��=L��H��H�D$0�H��t;H)�H��H��H���I�F��H�t$0H�D$8H�H��H���H��H������AWH�FL��AVAUATUSH��8H�$M���`
L�fM���S
A�<$-�H
A�t$@���9
�L$I��H�-H�|$I�\$L�5@��y��@��HcD�H�>��fDD�T$E����A�E�{tH��H��������L�4$I��I�FH�$M��~M�fM��tA�<$-uA�t$@���i���H�D$H��8[]L)�A\A]A^A_�D�|$���NA�M, �sH��@��y�@���D@�������$H�H�5H�81��@H�SH�T$�H�T$H��sH������f�A�M H�S�����sH�����@�D$����A�U(A�u$H�=��A�E����A�E���A�U(A�u$H�=�l�{��I���cH�D$H��8[]A\A]A^A_�@D�L$E��u0A�EA�EH���3����f.�D�D$E��t�H�@��H�5H�81��f.��D$��u�H�A�EH�H�H��sH������D�\$E��u�A�U(A�u$H�=I����H�{�L�4$����@�D$���^���A�M,H�D$L)�H��8[]A\A]A^A_��D�d$E���,���A�U(A�u$H�=��{I�G��pI�}@H��I��L�4$H���~H���I�}@�H�5��.���fD�H��H��H��3���@�D$�������A�M,@H���3���D�T$E���t���A�EH���3�_���fD�{H�K�.H�T$(H�ϾH�L$�H�T$(H�L$H����H�L$�H�L$H�H���f.�I�uh1�H��H�H�=�S��3�����{H�K���A9E$}A�E$�1H������D$�������A�u$A�U(H�=H����A�E�3�u���@A�U(A�u$H�=�d�{��I�������H�$H�xH��tH�5L��g�L�4$I��I���~���fDD�D$E������I���{L�4$�X���H��H���1�H��H���H�H��0�����C��������A<4����Ic�L�>��@�{��I����	H�$H�PL�pH���x	H�׾:H�$�H�$H��H���NH9��E�{��H���:H���I��H���DH9��A�x��A�|$-H�I�HH�H�5HE�H�H�81��fDD�L$E�������{�xI���.	H�$H�XL�pH���	�;�	H�������I��������|$���n���H�T$(H�߾�H�T$(H�=�����u
H���H�|$'��D$'�H�H��3����@�C���~<
�lL�s�
H�5L����������H�5L����������H�5L����������C���6<-�.<=��H�{�{L�4$�����%I�UH�5��I������f.��{������
����@Hх��"�������H�L$�H�L$H�H���1���H�H�5H�81���A�M,A�E ����fDH��I��L�4$H������H�5��������f�H����H�$I�}@I��L�pH�XH�������1��I�}0H��I�E@�i���H�I�E0�Y����H�H�����D�L$���NA�M,I��L�4$�r���f.�H��I�uXH�=H)��j����H�$I�}xI��H�sL�s�L��/���H�=�I�}XI�EHuI�EX�sH������H�SL�4$�����{�����L�l$I��L��L)��#���f.�H�sI�}xI�����L�4$���fDH��L�4$���H�T$(�H��H�L$�H�T$(H�L$�H��HD�H��F���H�L$�H�L$H�H������������H�5L����������H�5L�������u�C	���S<=�K�H�5L����������H�5L����������C��t<=��H�S�����{L�4$����tH�H�5H�81��@I�uX1�H�=�n��i����I��H��L�4$H��,����C����<-��<=�����H�{	�{	L�4$������I�UH�5��I������H�=���H�=���H�=���H�{������I���>H�H�5H�81��fD�H�=�H�H����H��I�uhH��H�$H)�H�=�c�L�$����I�uh1�H��I��H�=�A��$�H�{	������I���H�H�5H�81��fD�C����<=���H�5L����������T$���|A�M,I��L�4$��H�S
��tG�{
L�4$���������H�H�5H�81��DH�$H�xL�pH�����~���I��t�H�$H�PL�pH�����H�S�����{L�4$������I�uh1�H�=I������H�$H�xL�pH��������H�5L����������H�5L�������u]�D$���lA�M, I��L�4$��I��u"H�H�5H�81��f.�H�$H�PL�pH�����1����H�5L�������u�C���~<=tzL��H�=����
�|$��H�D$A�M,L)��D�A�E I���L�4$H����I��t_H�$H�PL�p1�H�������%����|$�H�{�����{L�4$������I�U,H�5@�I����j�L�4$��H�H�5H�81��H��H�=1��H�L��H�5H�81��H�H�5H�81��H�L��H�5H�81��H�=1��H�H�5H�81���I��tH�$1�H�yH����H��H�$��L�4$����H�H�5H�81��AWA��AVI��AUATI��USH��(H�D$�
fDI��A�<$���u�A�<$uH��([]A\A]A^A_�L���H�xH�D$�1�I���I�E H�T$H��I�EtI�E� H�XH��L��H��L�d$��L��H��H�D$��;tmDH��L��H�\$��;@��u�If�H���;@��t4���t�;t&�H���	DH���;���u�;u�H�]�� ��H�����L��H��H�D$�H�E uxL�eH��tLD��L��L��H���/�H��~5H)�H��~-M�$�I�$�8-tH�P�I�$�@�-I�$�xt�H��I���H��1��L��1��H��([]A\A]A^A_�L�e�H�]H���R���ff.���H��t�B��f��ff.�@��H��tH�5����������H��tH�5����������AWAVAUATUS��H��H�=�I��H�H�H��������H�=�H�I�Ā;t@@H���H��H��I���L��J�\+I��H��H���L��H����;u�H�=L���H����H�=H���H��H��H�H�8H��[]A\A]A^A_�fDH�=�H���7���H�5T��H�������#������1�����D��UH��SH��H�|$0���H���H�=H�l$H�\$H�$�D$�H��H����H�={��H���H�ĸ[]�f���H���H��H������H��t?USH��H�H�+�H�H��H��H��H��[]������USH��H�H�+�H�H��H��H��H��[]�@��AWAVAUATUSH��8H�D�oL�gH�o H�D$H�G�_H�D$H�H�$H����E����A�|$P����H�H9(���I��H�����H�=�L��I���L�4$M��H��H���1�L���L�|$��H��H�t$L���L��H����L��H��H��1��H��H��8[]A\A]A^A_��I��H���m���1�1��L��H��H���H�t$��H��H�|$H��8[]A\A]A^A_�I�D$HH�D$I�D$XH�D$ I�D$hH�D$(�H���H�4$�H��H��1�����EA�D$����A�T$(A�t$$H�=���A�D$@H���H���\L�(��I��M��A�� �-L��H����H��~ŀx#u�H�xH�@�8!u�H�5�H��t���H�xM���7I�GH�H�I�G�I��� �9H��I�G��HЀ8
u�H�5�H��tH�x1�L�������H�=�H��H����GH���H�|$uI�|$HH���OH�|$ uI�|$XH���*H�|$(uI�|$hH���A�D$,�����Q���I�|$8�I�|$x���8���@H�x�����H�x�?#�����H�G�����H�=�H�$H�����I���
���L��I�OH�����I��� ����I�GI�WH�����H���H��G��H��u.H�H9(��H��������1����H��H�������2��A�D$p����#��A�D$`�������H�A�D$PH�������H�=1��H���H��Ct.�H���D���H��H����4������t���H���H��t;L�(I��A�� u3H�xH�5��H�xH������������1��%���H�xH�5��H�xH���F�����ff.����S�H�
O��1�H�=H����H�
2��1�H�=H����H�
��1�H�=H����H�
H���H�=H����H�=H����H�=H���H�1�H�
Z�H�=H�H���H�31�H�
8�H�=H���H�1�H�E��H�5H�;�H�;H�5�H�0����H�=[H���fD��ATA��USH��H���H��H���E��~]A�D$�L�d��H�;��u,H�����t$H��у���tH�р�H�xH�t��t"f�H��H��H���L9�u�H��[]A\�H��H�D$�H�D$��ff.��AWAVAUATUSH��H�$H��xH�t$Hc�H��dH�%(H��$h1��D$H��t1�H��I����)�H�I�Ɖl$H�D$H�L� �C,��(	�C��H�{H���C,��h��xH�{@�}D�\$E���7�C �D$����H�=H�{0�H�C8H� �H��H�C0�{$��{$���H��H�H��H�H���H�H�H����H�D$ �C, �H�{XH���:H�{hH���H�{HH�����{`H��x�H���H����{p��x�H���H����Cp����H�{8H��E1��H�{8�H�H�L���I�NI�H�L$�k�H����I9���H�D$J�<�N�,��H��H���I��I� ��H�D$N�(A��u
I��������I�I���� u�M;~�%I�F ���k$�������H�=�H�����L�{HL�kX�H��H�khH�CXH��H�ChH�CH��M��tL�{HM��tL�kXH�������H�kh���H�D$H�8H�{0H���C�?�:D�SE�����l$H�D$���DI�F �����L��L��L�D$(�L�D$(��I������H�ƃ�`H��`���I�0��`H��`����L��L���������C����H�=�L�-H��I�}�H�t$�|$�D�E��~H�����H�5H����I�}�H�{@I��H���QH�H��H�L���CP��x���H�{@H����C,�����6L���I�E H�S@�H�s0H�|$ H�H�@ A��$�H��I�D$x�A��$�I�D$xI��H�{8��C, ���{`��x�H��H���H����{p����H���H����M���5D�E��~H���u���C�C,@���{�����s���.�s,�ƀ��I�E L�C8�H�H�@ A��$�H��H�{@I�D$x��L��L���A��$�I�D$x�C-�EH�D$�CL�%���H�-���L��H�=��HE�1���SL��H�=��HE�1���KL��H�=��HE�1���{$�H�D$H��$hdH3%(�XH��x[]A\A]A^A_Á�L���H�H��H�;�H�;��먐H�C0�8-��I�E H�L$ H�=H�H�L$0�D$@H�@ H�\$HA��$�H��I�D$xH�C8H�D$8�H�t$0H���H��H�=����A��$�I�D$xI�����DH�@�����C,��H����������H�{@�����H�{0����H�=1���B���DH�=��>��������H�
�CPH����������Cp��������C`����H�=�H��H��.�����H����o���fD�H������������H�s0�H�=������K����L�ƿ�L�C8H���-���H�=H�{0�����I�E �KL���SH�|$ H�H�@ A��$�H��I�D$x������A��$�H�5���I�D$xH�=I��������H�57��H�=�1�H�5���H�=������H�5:��H�=��+���f�I�E H�|$ L��H�H�@ A��$�H��I�D$x�A��$�I�D$xI������@�x�����S(�s$H�=������H�{8�H�{x�.�����f���H��H�5@�ʼn�1�A�@��H�L�=L�%��L�5����H�
H���
L��Q�t�D�O���~XL���E1�P��1�W�VH�5AR�H�� L9�t<A�GI�OI��A�
����L�H�Hȅ�u�E1�E��L��1�A)��fD������L�5��H�-I�^PH�
L�-I������H�H�D�O��|:�Hȃ�OA�M��1�A)�P��1�I��ARW�VH�5�H�� L9�t9A�vA�F
I��f.�M��E1��1�����f�H�=�H�E1�A�PH���H�5UH�H��jP1��H�� E1�H�PH��A�	�UH�H��H�5jP1��H�� ��?���H�=���)���H����S���H�=H�l$`�H�C0H��t(H��H�D$�H��H�8�H��H�C0H�����H�=��H��H��H�D$H�8�H��H�C0H�������H�D$H�8H�{0����D��ATUH��S��H�=H�Ā��~H�>H�H��HD��H�H�H���H�H��H��H�����H���H����H���I���H��L��[]A\����AUATU1�SH����H�\$�H�H��1�H�����u�1�8	@��H�ھ�E1�����u�E1�8	A��H�ھ�����t$D���uu����H�Ĩ[]A\A]����8	u�H�\$���H�߽���uË|$�E�����|$����������H�\$1�H��D���A�Ņ��n����|$��l$���Y�����1�D����|$��?���@H�\$H������k���H�Ĩ[]A\A]�D���|$��t������������|$�G�����������DH���������|$��D$���p�����A����A���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign$.unknown encoding name - %s-DATA%.*snilchompchopgsubsubno %s allowed in tainted modecasecmp%s already set to %liversioncopyrightusagehelpyydebugsyntaxparsetreeparsetree_with_commentinsnsgemsrubyoptallrequire$0 not initializedEUC-JPWindows-31JUTF-8ASCII-8BIT--encoding-E-s-S-eno code specified for -e
-r-iCan't chdir to %sCan't chdirmissing argument for -Edefault_internal-I

debugenablemissing argument for --enabledisableencodingdefault_externalextra argument for %s: %sinternal-encodingexternal-encodingverbosedumpmissing argument for --dumpRUBYLIB@gem_prelude_indexTMP_RUBY_PREFIXset_encoding-xrubyno Ruby script found in input -!
$VERBOSE$-v$-w$-W$DEBUG$-d$0$PROGRAM_NAMEargv0setproctitleARGV  %.*s%-*.*s%-*s%s
Features:RUBYOPTRUBYPATHPATHGemTOPLEVEL_BINDINGprogram input from stdinSyntax OK$-p$-l$-a--version  print the version-c  check syntax onlydummy encoding is not acceptable - %s $_ value need to be String (%s given)no %s allowed while running setuidno %s allowed while running setgiddon't know how to dump `%.*s',but only [version, copyright, usage, yydebug, syntax, parsetree, parsetree_with_comment, insns].unknown argument for --disable: `%.*s'unknown argument for --enable: `%.*s'invalid name for global variable - missing argument for --disablemissing argument for --encodingmissing argument for --internal-encodingmissing argument for --external-encodinginvalid switch in RUBYOPT: --dumpinvalid option --%s  (-h will show valid options)invalid option -%c  (-h will show valid options)invalid option -\x%02X  (-h will show valid options)invalid switch in RUBYOPT: -%cinvalid switch in RUBYOPT: --%s-0[octal]  specify record separator (\0, if no argument)--copyright  print the copyrightUsage: %s [switches] [--] [programfile] [arguments]
gems  rubygems (default: enabled)rubyopt  RUBYOPT environment variable (default: enabled)-K is specified; it is for 1.8 compatibility and may cause odd behavior--enable=feature[,...] , --disable=feature[,...] enable or disable features--external-encoding=encoding , --internal-encoding=encoding specify the default external or internal character encoding--help  show this message, -h for short message-a  autosplit mode with -n or -p (splits $_ into $F)-Cdirectory  cd to directory before executing your script-d , --debug set debugging flags (set $DEBUG to true)-e 'command'  one line of script. Several -e's allowed. Omit [programfile]-Eex[:in] , --encoding=ex[:in] specify the default external and internal character encodings-Fpattern  split() pattern for autosplit (-a)-i[extension]  edit ARGV files in place (make backup if extension supplied)-Idirectory  specify $LOAD_PATH directory (may be used more than once)-l  enable line ending processing-n  assume 'while gets(); ... end' loop around your script-p  assume loop like -n but print line also like sed-rlibrary  require the library before executing your script-s  enable some switch parsing for switches after script name-S  look for the script using PATH environment variable-T[level=1]  turn on tainting checks-v , --verbose print version number, then turn on verbose mode-w  turn warnings on for your script-W[level=2]  set warning level; 0=silence, 1=medium, 2=verbose-x[directory]  strip off text before #!ruby line and perhaps cd to directory-h  show this message, --help for more info






GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0D
Xl�8��B�E�A �D(�D0�
(A ABBH�E�W�4(IB�D�A �_
ABG(@wA�A�H r
CAAHl�F�B�B �B(�A0�A8�J��
8D0A(B BBBC�jH I
G�TD_
A(�eF�D�C �p
ABHUE�o
D(8eF�D�C �p
ABH(deF�D�C �p
ABH8��B�I�A �A(�G0Z
(D ABBI�hDR
A8��B�E�A �D(�G0Q
(A ABBF�$9F�E�D �C(�D0�
(A ABBCe
(J ABBLI
(A ABBAE
(A ABBEI
(A ABBA����H�`B�B�B �B(�A0�A8�D`
8A0A(B BBBI TM�n
AL<�B�B�B �B(�A0�A8�D�e
8A0A(B BBBC|�MB�J�B �B(�A0�A8�Dp�
8A0A(E BBBF
8A0A(B BBBE�
8A0A(B BBBI`�B�E�E �B(�D0�A8�D`n
8A0A(B BBBA�
8A0A(B BBBAp��H�F�B�B �B(�A0�A8�F@�
8A0A(B BBBK�(gE�D�G�TAA8HI(PIJ�A�D kA�A�$|<E�A�D kAA`��F�B�B �B(�A0�A8�Dp�
8A0A(B BBBA|
8A0A(B BBBE:E�-0$�F�D�A �G0v
 AABD�X{B�B�B �B(�A0�A8�G� I�!
8A0A(B BBBA��!F�!F�!I�!I�!��!K�!A�!F�!P�![�!Q�!K�!A�!K�!K�!P�!R�!A�!K�!0�F�A�D �M�h DABL4�F�B�A �C(�G��
(A ABBH�
(A ABBF	#%9$Qj%��&��'�#2Mfr�*� 
�*�F�0�F
h&P5hQ�kpx�����L����L�m�P�m�=p4Q�o��������I��� w �B@b��u�&��@���@j���
�T2uJeU	nu����U�	���E��e�	E,�BPeK	d��`����`��`h�?{e��~	0�{����9������ �=�
X��f�
���
`�	(��T�T		@	T5	�X	`�n	��	="�	�M�	="�	2$�	@"�
2$-
Q$L
Q$h
y$�
y$�
�$�
�$�
�%�%4�%T�%t7&�7&�Y&�Y&��&��& �&B�&e�+�	8��+�*-�*-��-
�-0
[:��-{M
	 f
``v
P�
[:�
�:�
�:�
�<$%&'# %*$()..4399>?PEBKxQ`Wh]c�i�o�u�{������������������(�P�����x���0�T��W�6�R���3�-"�#�)�/�5�;�A�G�MS Y_ek�q�w�}��2���:�x�Z�0�9�h�l�?�@�c�v�[����������������
����%�+�1�7='DuKyR}YX`=gAnRu�|�P�	�������k�/�8����

 !"()*+;ALXk|��������,5@Lax����������!/HXcjry���������
3?Q]q|���������/AOZ`pw�����@$�`$��$��$�#/=HU\�%o�%g����@&�`&I����&<�-I\z�������+:��!;0-�IVir������5Sd��������	<Qf�������`:����)�:�6F;.annobin_ruby.c.annobin_ruby.c_end.annobin_ruby.c.hot.annobin_ruby.c_end.hot.annobin_ruby.c.unlikely.annobin_ruby.c_end.unlikely.annobin_ruby.c.startup.annobin_ruby.c_end.startup.annobin_ruby.c.exit.annobin_ruby.c_end.exit.annobin_identical_path.start.annobin_identical_path.endidentical_path.annobin_false_value.start.annobin_false_value.endfalse_value.annobin_true_value.start.annobin_true_value.endtrue_value.annobin_proc_argv0.start.annobin_proc_argv0.endproc_argv0.annobin_verbose_setter.start.annobin_verbose_setter.endverbose_setter.annobin_opt_W_getter.start.annobin_opt_W_getter.endopt_W_getterCSWTCH.284.annobin_push_include.start.annobin_push_include.end.annobin_locale_path.start.annobin_locale_path.endlocale_path.annobin_expand_include_path.start.annobin_expand_include_path.endexpand_include_path.annobin_restore_lineno.start.annobin_restore_lineno.endrestore_lineno.annobin_add_modules.start.annobin_add_modules.endadd_modules.annobin_opt_enc_index.start.annobin_opt_enc_index.endopt_enc_index.annobin_load_file_internal.start.annobin_load_file_internal.endload_file_internalload_file_internal2.annobin_proc_setproctitle.start.annobin_proc_setproctitle.endproc_setproctitle.annobin_uscore_get.start.annobin_uscore_get.enduscore_get.annobin_rb_f_chomp.start.annobin_rb_f_chomp.endrb_f_chomprb_intern_id_cache.16445.annobin_rb_f_chop.start.annobin_rb_f_chop.endrb_f_choprb_intern_id_cache.16438.annobin_rb_f_gsub.start.annobin_rb_f_gsub.endrb_f_gsubrb_intern_id_cache.16432.annobin_rb_f_sub.start.annobin_rb_f_sub.endrb_f_subrb_intern_id_cache.16425.annobin_cmdline_options_init.start.annobin_cmdline_options_init.endcmdline_options_init.annobin_forbid_setid.isra.1.start.annobin_forbid_setid.isra.1.endforbid_setid.isra.1.annobin_set_option_encoding_once.start.annobin_set_option_encoding_once.endset_option_encoding_oncerb_intern_id_cache.16325.annobin_dump_option.start.annobin_dump_option.enddump_option.annobin_disable_option.start.annobin_disable_option.enddisable_option.annobin_enable_option.start.annobin_enable_option.endenable_option.annobin_require_libraries.start.annobin_require_libraries.endrequire_librariesrb_intern_id_cache.16237.annobin_set_arg0.start.annobin_set_arg0.endset_arg0origarg.annobin_process_sflag.part.11.start.annobin_process_sflag.part.11.endprocess_sflag.part.11.annobin_proc_options.part.12.start.annobin_proc_options.part.12.endproc_options.part.12.annobin_moreswitches.start.annobin_moreswitches.endmoreswitches.annobin_ruby_push_include.start.annobin_ruby_push_include.end.annobin_ruby_incpush.start.annobin_ruby_incpush.end.annobin_ruby_incpush_expand.start.annobin_ruby_incpush_expand.end.annobin_ruby_init_loadpath_safe.start.annobin_ruby_init_loadpath_safe.end.annobin_ruby_init_loadpath.start.annobin_ruby_init_loadpath.end.annobin_rb_load_file_str.start.annobin_rb_load_file_str.end.annobin_rb_load_file.start.annobin_rb_load_file.end.annobin_ruby_script.start.annobin_ruby_script.end.annobin_ruby_set_script_name.start.annobin_ruby_set_script_name.end.annobin_load_file_internal2.start.annobin_load_file_internal2.endrb_intern_id_cache.16505.annobin_ruby_prog_init.start.annobin_ruby_prog_init.end.annobin_ruby_set_argv.start.annobin_ruby_set_argv.end.annobin_process_options.start.annobin_process_options.endrb_intern_id_cache.16474usage_msg.16148help_msg.16149.annobin_ruby_process_options.start.annobin_ruby_process_options.end.annobin_ruby_sysinit.start.annobin_ruby_sysinit.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC14.LC13.LC15.LC16.LC17.LC18.LC19.LC20.LC21.LC22.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC73.LC42.LC47.LC75.LC48.LC44.LC46.LC38.LC52.LC43.LC53.LC41.LC40.LC63.LC55.LC56.LC74.LC62.LC36.LC58.LC60.LC64.LC66.LC67.LC37.LC39.LC57.LC54.LC59.LC61.LC68.LC65.LC69.LC51.LC49.LC76.LC45.LC72.LC50.LC71.LC70.LC78.LC79.LC77.LC81.LC82.LC84.LC85.LC80.LC83.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC105.LC113.LC114.LC115.LC106.LC109.LC110.LC111.LC100.LC98.LC97.LC101.LC99.LC102.LC103.LC104.LC112.LC107.LC108.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_ruby_current_vmmblenrb_str_newrb_ary_pushrb_locale_encodingrb_enc_associaterb_file_expand_pathrb_gv_setrb_str_new_cstrrb_ary_newrb_enc_find_indexrb_enc_from_indexrb_enc_dummy_prb_eRuntimeErrorrb_raiserb_str_encode_ospathrb_string_value_cstrrb_stdinrb_protectrb_io_closerb_parser_end_seen_prb_define_global_constrb_cloexec_openrb_update_max_fd__fxstatrb_io_fdopenrb_jump_tag__errno_locationstrerrorrb_load_failrb_string_valuerb_out_of_intrb_lastline_getrb_obj_classnamerb_eTypeErrorrb_funcall_passing_blockrb_lastline_setrb_intern2getuidgeteuidgetgidgetegidrb_eSecurityErrorstrlenrb_funcallrb_warnstrncmprb_vm_top_selfruby_current_threadrb_default_external_encodingrb_ary_shiftrb_cStringrb_funcallvrb_freeze_singleton_classrb_mProcessrb_str_new_frozenrb_get_argvrb_string_value_ptrrb_isalnumrb_str_new_staticstrchrrb_str_catrb_eNameErrorrb_class_new_instancerb_exc_raiserb_str_cat_cstrchdirrb_isprintrb_ruby_verbose_ptrrb_rsrb_output_rsruby_set_inplace_moderb_ruby_debug_ptrruby_scan_octrb_reg_newrb_fsruby_each_wordsstrcmprb_fatalrb_isspacerb_str_tmp_newmemcpyrb_str_resizeruby_push_includeruby_incpushruby_incpush_expandruby_init_loadpath_saferuby_exec_prefixruby_initial_load_pathsrb_ivar_setrb_obj_freezerb_cObjectrb_const_setgetenvruby_init_loadpathrb_load_file_strrb_parser_newrb_gv_getrb_ensurerb_load_fileruby_scriptrb_external_str_new_cstrrb_vm_set_prognameruby_set_script_namerb_str_duprb_utf8_encodingrb_enc_from_encodingrb_parser_compile_file_pathrb_parser_encodingrb_parser_compile_string_pathrb_ascii8bit_encodingrb_io_getsstrstrrb_io_ungetbyterb_io_getbyterb_loaderrorruby_prog_initrb_define_hooked_variablerb_gvar_readonly_setterrb_define_variablerb_define_module_functionruby_set_argvrb_ary_clearruby_gc_set_paramsInit_encrb_enc_set_default_externalrb_enc_set_default_internalrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalInit_extInit_preluderb_const_removerb_const_getrb_parser_compile_stringrb_stdio_set_default_encodingrb_iseq_new_mainrb_define_virtual_variablerb_set_safe_levelrb_parser_dump_treerb_stdoutrb_io_writerb_io_flushruby_show_versionruby_show_copyrightrb_warningrb_define_modulerb_parser_set_yydebugrb_default_internal_encodingrb_realpath_internalrb_parser_while_looprb_define_global_functionrb_parser_append_print__printf_chkputsrb_iseq_disasmdln_find_file_r__stack_chk_failruby_process_optionsrb_argv0rb_gc_register_mark_objectruby_init_setproctitleruby_sysinitpipedup27*-���������s��*-���������.��������/��������+0��������Y1��������d2�������������������5��������6��������;7��������H8��������P9��������d*:��������n���������x;��������*:�������������������;���������<���������=�������������������*>�������� ?��������@*>��������d@��������tA�������������������B���������C���������D���������E���������F���������*>���������@��������G��������H��������
I��������J��������H��������/I��������<J��������SK������������������L���������M���������N�������������������O���������*P������������������;�������� :Q��������ER��������`���������eS��������o��Q���������R�������������������S����������
Q��������R��������0���������5S��������?`��������zQ���������R�������������������S������������������T���������U���������V���������W��������*-��������z*X�������������������;���������*X�������������������;���������*X�������������������;���������Y���������/��������,#Z��������H���������MS��������W,`*:��������m���������w;����������������������������	���������A	���������f	����������	����������	����������	���������
���������V
���������]
[��������h
����������
����������
���������\��������L��������������������������������������8���������Z���������x�����������������������������(
���������J
���������h
����������
]���������
*^���������
_���������
$`��������/2��������6*a���������b���������c�������������������S���������$C*d��������$*-��������/e��������?*:��������F���������P;��������tf���������g��������h��������n4���������`���������5��������H5��������}����������i���������j���������k���������*l���������m���������n���������o��������Ds��������Us��p��������-q��������?*:��������F���������P;��������br����������������������������]*:��������h���������r;���������*s���������*t�������������������u��������9���������lo��������|����������k���������v���������r��������!w��������>r��������m���������t�����������������������������hY��������ux��������|*y���������j��������"j��������O���������Z���������a���������l*:��������v;���������p���������w��������./��������5*s��������h������������������������������z��������Br��������c*:��������j���������t;���������i�����������������*s��������Z��������������������5��������3w��������[r������������������������������������������������7*:��������>���������H;��������Y���������hv��������xr���������z��������������������������������������*:�����������������&;��������8���������=i��������D*s��������d��������������������*:�������������������;������������������6*:��������=���������G;��������������������������������������1 *:��������8 ���������B ;��������o ���������� ���������� {��������� r��������E!z��������\!*:��������c!���������m!;��������w!���������~!|���������!*:���������!����������!;���������!*:���������!����������!;���������!*:���������!����������!;���������!����������!|���������!*:���������!����������!;��������("*:��������/"���������9";��������r"}���������"Y���������"~���������"~���������"���������"k��������#k��������=#}��������`#}���������#k��������$���������$����������$*����������$Y���������$*-���������$����������$S���������$*���������%Y��������%/��������(%���������3%0��������?%*���������G%/��������O%���������[%���������c%S��������p%*����������%����������%����������%����������%���������&���������)&���������I&5��������r&*-��������z&����������&*-���������&���������%'4T'*>��������b'���������{'����������'i���������'����������'Z���������'����������'����������'Z���������'8��������(i��������(2��������^(���������f(���������|(Z���������(����������(���������	)���������)���������])���������b)����������)����������)i���������)����������)����������)���������9*���������>*S��������I*4S*1���������*����������**>���������*@���������*���������+*-��������)+���������0+���������8+���������X+���������t+����������+����������+����������+����������+����������+r��������,���������,���������,r��������#,���������+,���������0,r��������@,���������H,���������M,r��������T,*���������b,���������j,���������o,v��������v,���������~,����������,v���������,����������,����������,*-���������,����������,����������,����������,����������,*d���������,����������,���������-���������-���������-f��������-��������C-f��������N-���������l-����������-0���������-c��������F.*^���������.����������.5���������.����������.����������.����������.1���������.*-��������/2��������
/*-��������/���������/���������c/8��������k/���������s/���������/8���������/����������/����������/2���������/����������/*-���������/���������02��������f0��������k0���������,1���������g1���������q1����������1����������1����������1S���������1*����������1����������1����������1�1����������1*-��������
28��������22��������.2���������b2����������2����������28���������2����������2����������28���������2����������2����������2���������Y3����������3���������3����������3���������3����������3���������3����������3���������4���������!4*���������,4���������44���������Y4����������4����������4����������4����������4���������5��������"5���������35��������85���������P5*-���������5���������5S���������5�5����������5����������5����������5���������6���������+6���������l6����������6����������6����������6����������6����������6����������6����������6����������6���������7���������K7��������e7����������7D�7	���������7�\�7
���������7����������7����������7��������8��������8���������k8���������|8
���������8
���������8����������8���������8���������#9��������(9���������/9I9��������]9���������k9�9���������9����������9���������9����������9����������9���������9����������9���������:��������:���������1:���������W:���������p:����������:����������:����������:*-���������:e���������:*����������:����������:���������;< ;D%;E��������/;H��������M;E��������W;H��������s;E���������;H���������;����������;���������<���������<���������2<���������;<���������Q<���������v<����������<����������<����������<����������<����������3���������4���������0��������u
[��������a[��������Q
[���������%���������U&����������&����������&���������;(���������&-B�������� ���$,PX����*��**FD*LFpFxh�F�h�h��h�0�8Ld�lL�L�m�L�m�m��$m,�P�X������������DL�p�x@���@�@��@�0�8d�l��u��u�u��$u,�P�XE���E�E���E��	�	`D	�L	`p	`x	��	`�	��	��	{
�
{0
{8
�d
{l
��
��
��
��
��
��
�
$�,�
P�
X��
���T��TT�DTL�p�x="���="�="�2$
="
2$0
2$8
Q$d
2$l
Q$�
Q$�
y$�
Q$�
y$�
y$�
�$$y$,�$P�$X�%��$��%��%��%��%��%�%7&D�%L7&p7&xY&�7&�Y&�Y&��&Y&�&0�&8�&d�&l�&��&��+��&��+��+�*-$�+,*-P*-X�-�*-��-��-�[:��-�[:[:�:D[:L�:p�:x�<��:��< � � � ��,048<@D H$L(P,T0X4D8`<d@hDlHpLtPxT|X�\�`�d�h�l�p�t�x�|������������������������������������������������������ �$(,0�8�XD H$(P,�0X4\8`<d@hDlHpL�P�T�X�\\`�d�h�l�p�t�x�|����\���D� ���������\�����0������������l�����X�4�X���������������������$ �$�(�,�0,4�8(<�@�DHLPTX\`d hpl(p,t0x|8�<�@�D�H�L�P�T���\�`�d�h���p��6�6� 6�0/�@6h`6Pp6��/��6��6�6H�6��6��6(�6x6�6� 6(06`@6�P6�`6	p6@	�6�	�6�	�6�	�68
 4H \0pP�p���P�p��D p��@��� �<�hP���`��(�������
$@`��@"t@$�`$��$��$��%�%<@&T`&��&��&�+(0-\�-`:8�:.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@,T,l,�,�,'��<"@��@5,-�=3�=P=�=�8@8�,
SdPbdP�]@H0,
|8R�8R��@x0,�T�T��@�0,��U��U��@�0,2�W�2h[d
.�eh )@h,;`i� 6@p�,N0 k.�Nk�Nk|NkSNk'NkWNkeNkxNk�Nk�Nk�Pk �pk��@�8,*�s�+-,	��@0�safe.o/         1690381920  1000  135   100644  14384     `
ELF>p-@@+*

 !"#��USH��@��t0���H�H�(�U89�X��t#9�]8H��[]��������H�=1���]8H��[]�H�H�5H�81��H���H�5H�81��fD����fD��H�H��@8�ff.���H���H��H�H�D����H�H��x8�ff.���H�H�9x8}���x8�PH�H�5H�81��ff.���US��H���9�}H��[]�@�H��H��t3�H�߉����H�5H��H�H�81����H�5��H�H�81������ff.���PXH���H��t#H���H�5H��H�H�81��H�H�5H�81�����SH�����~ ��uH�����tH��ƒ���t��u[�����H�����H�5N���H�=�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realigntried to downgrade safe level from %d to %dInsecure operation `%li' at level %dInsecure operation at level %d$SAFE=3 does no sandboxing$SAFE=4 is obsoleteInsecure operation - %liInsecure operation: -r$SAFEGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�4�E�A�D l
AAHe
AAAT
h|HI��5](�E�A�F M
AAE��OEAD8E�m
A4%9 Qj!��"��#���)�R�y�����������=^E}E��������/3/Thsh�� !"#����0�X�/�I�`����	

$%&!7BValy���
�����5�P�
��O108CpM.annobin_safe.c.annobin_safe.c_end.annobin_safe.c.hot.annobin_safe.c_end.hot.annobin_safe.c.unlikely.annobin_safe.c_end.unlikely.annobin_safe.c.startup.annobin_safe.c_end.startup.annobin_safe.c.exit.annobin_safe.c_end.exit.annobin_safe_setter.start.annobin_safe_setter.endsafe_setter.annobin_ruby_safe_level_4_warning.start.annobin_ruby_safe_level_4_warning.end.annobin_rb_safe_level.start.annobin_rb_safe_level.end.annobin_safe_getter.start.annobin_safe_getter.endsafe_getter.annobin_rb_set_safe_level_force.start.annobin_rb_set_safe_level_force.end.annobin_rb_set_safe_level.start.annobin_rb_set_safe_level.end.annobin_rb_secure.start.annobin_rb_secure.end.annobin_rb_secure_update.start.annobin_rb_secure_update.end.annobin_rb_insecure_operation.start.annobin_rb_insecure_operation.end.annobin_rb_check_safe_obj.start.annobin_rb_check_safe_obj.end.annobin_Init_safe.start.annobin_Init_safe.end.LC1.LC2.LC0.LC3.LC4.LC5.LC6.LC7.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_fix2intruby_current_threadrb_num2intrb_warningrb_eArgErrorrb_raiserb_eSecurityErrorruby_safe_level_4_warningrb_safe_levelrb_set_safe_level_forcerb_set_safe_levelrb_securerb_frame_calleerb_id2strrb_secure_updaterb_insecure_operationrb_check_safe_objInit_saferb_define_virtual_variableQ��������*R��������AS��������S-��������ZT��������k*U��������r.��������|V���������*W���������/���������V���������*R���������Y���������*R��������*R��������0*U��������7.��������AV��������]Y��������q]��������~Y���������^���������0���������*W���������V���������Y���������1���������*W���������V���������]���������^���������2��������	*W��������V��������*W��������!3��������+V��������9Y��������d`���������4���������c�������� ,���$,�P�X���������������D�L�p�x�����EE0E8�dEl������������/$�,/P/Xh�/�h�h���h�� ( )
 *
 + X�l�������P���08p.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@(5T(6l(7�(8�(9'��"@�!�(-N3N=P�8@�%P(
SD	bD	�]@*0(
|���@0*0(������@`*0(������@�*0(2�w2f)0u.����|�S�'�2�@�S�e�t��� ��H�@�*(&`	)P	ph�+�signal.o/       1690381920  1000  135   100644  40032     `
ELF>`�@@0/

#%&"'!(UH��H�=SH�H����H��H�;H��tH�����u�CH��[]�fDH��1�[]�ff.�@Hc�H��������H������H���f.�ATUH��S��H��@I��I�|$�H�,$H��wYDŽ$�������th��t{H��$�L����H�������xH��$�H��@H��[]A\��DŽ$���t��u����$��DH��u�DŽ$��D���f�US��H���#���H���t1�H��t
H�Ɖ�����H����[]É���ff.�@H��HH��H�H���H��H��H����UH�=H���SH��H�����H�UH��1�H�5�f.�H���H��H��H9�t
H��H9�t�RH�H�:H���H�QH��H9�uH���H���H�H������UH�=H���SH��H�����H�}H���c���H�UH��1�H�5�ff.���UH�=H���SH��H�����H�}H������H�UH��1�H�5�ff.���SH�1�H��H��H�$H�K�H�޿�H��[����H�5���ATUH�-S1��H�=I���	fD�]�Hc�L��H��H�TH���H�}H��u�L��[]A\��U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�AWAVAUATUSH��H�H�H�� H�$H�D$ @��tH��[]A\A]A^A_�DH��H�L$0�t$H�5�H�� H���H�|$H��$H��$H�AH�D$04H�|$@H�p1��H�Hc�H�pH�`H�DH���H�D$H�D$H�t$(�H�D$(��T$H�|$H���H��$H�$H�T$ H���H�H�H�� �!�����H�$�PH�@H��t�H��$H�$H���H�H�L$ H�H�� H���H�xH�A������t6H�5H��
@;xt$H�pH��H��u�1�H�=�H�5H�=1�����AVAUATU��SH��H�D$�������I��H�5I��I�}�H�D$H��t����H�Ǩu_��Ã�A�U���I�EH�D$H�t$��Hc�L��H�5H�T�H��L��[]A\A]A^�������I�}H�|$���=���@����@��uH�����t
�����t{H�|$�L�l$I�mI�E tI�m�H�5H���A�ƅ�u/H��H�������Å�tNH��H�=1��H�D$����f�A�����I��H�D$념������H�D$���H�M��H�
D��H�5H�81��H���H�5H�81����:���fD��H��H����t@���t>H�=H���9Bt
H�zH��H��u�H���D��H�=����AUI��ATA���USH���A�D$�����I�}H�|$@����@��uC��������H����@����H��4���������������Ã�@�1��t��t��t��t����H�H���9X�H�PH��H��u�H���H�5H�81��H������d���H�|$�H��H��H�=�H�U��HD�H������Å��N����H�=H����À��ۅ���A���*M�mI�����H�H�(���.L���I����1�I��4��M����1�H��H�L�������H��L��[]A\A]�fDH�H�5H�81����H�D$H�hH� ���H�h���@L���H�D$H����H�|$�H�|$�L�l$I�EH�� �=H����H���$H�Hc�H�>���I�Ń�H��trH�H�5����H�(�����������H����	Hc�H�SH��L�dI��tI��4tjM������H���7�H�=�I�����I�����t�I�E�ƒ����s������j���H�H�5H�81��f��H�=�I���J����H�����1�H���A�H9��$����H�=�I������I�}��I�EH�
Hc�H�>��H����I�u�H�=L����€����������A��r���H���PI�u�H�=L����€������j���E1�1��>���H��� I�E�H�=H����€���t��H�=H����€�����H�ƹH�=�������L�����I�u�H�=�����u�A�4H�5]����I�u��A��t'A�������I���������A�E��������L���H�D$H����H���u�������H���@����H�=�I���a���I�u�z���I�u���I�E����E1�w+H���Hc�H�>��H�5�����H�5������1�������D�����H�H�5H�81�����v���H���H�H�5H�81��H�|$H��� uAH�WH)�tH����H)�H��H���H�D$H��H�H��H�5H�81��H+ot�H�G��ff.������t+H�H���;ztH�BH��H��u��H��D��S1������[�f.���AWAVAUATI��US���H�������:M�,$A���]I�������L���I��H���M�}L��M�E% H�D$tM�EE1�A�8-M��u
M�pA�L���L�D$H�=D�L$�I�V��LD�L���2�D�L$L�D$��������E��E����H�E1�A�����H�H�H�H9��?���D�k��D$H��I���%�
H�D$H�D$ H�D$�=����A9�u	E������������H�CI9��H��I�<�@��u������A���~D����������I�������A���KI��4�y���M�}D�������.���5���m����O������H�|$��H�T$1���L$��L$��x5H�D$ H���4���H�/�H9�t����������1��f������H�C�D$I9������@�D$�����H���H���H�D[]A\A]A^A_É������f�D�k��ݻI���)���lj�����i���H�CI9�t�H��I�<�@��u������L���I���=���L���������H�H�H����A������A�ǃ��A����A!����������I�<$�H�5H��H�H�81��L��L)�t#H�|$u6L��H����H)�L��H���I��H�L��H�5H�81��I�E��f.���H�����@=@L�H���ff.����H��HH���H��t<�H�$��@H��H�t$ =@�D$L�H�H�D$�H��H�H�=�@���������D���=1���t:�H�
�f�H��H��At�4��Ѕ�t�Hc��,��-�@1��D��H�H�H���H��u�DHǀ����1������H�Hc�H��HH���H��u'��w���H��
�u)�t���H��4t�����H�ω�������H�������H���H9�t
H����1��H������UH�=SH��������H�5+�H�=H���H�߹����H�
�H�5�1�H��H�5�H�5�H�߹H�z�H�5�H������H�k�H�5H�;�H�;1�H���H�5��H�=��H�=H���H�;H��H��H���H������H�;�H�5H�8�H���1�H�޿�H�5^���D�����H�5E���+�����H�5,��������H�5��������H�5���������aH�5���
������:H�5��������H�5��������H�5����|�����H�H�8�H�5~���T�������
�=���un1���]�H���tNH��w9H�H�Hǀ�H���H��1ҿ�H�Ĉ[]�H�ƿ����H�=1��H�=1��H�=1��H�=1��H�=1��H�=1��H�=1��H�=1��H�=1��H�=1��H�=1��H�=1��GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignEXITILLIllegal instruction at %pSEGVSegmentation fault at %pBUSBus Error at %p01signoHUPSIG%sSIG%uto_intinvalid signal number (%d)unsupported name `%.*s%li'unsupported signal SIG%libad handlerSYSTEM_DEFAULTSIG_IGNSIG_DFLDEFAULTIGNOREInsecure: tainted signal trapunsupported name `SIG%li'bad signal type %sSignaltraplistsignameinitializemessagesignmSIGINTSIGHUPSIGQUITSIGTERMSIGALRMSIGUSR1SIGUSR2SIGBUSSIGILLSIGSEGVSIGPIPESIGCLDINTQUITTRAPABRTIOTFPEKILLSYSPIPEALRMTERMURGSTOPTSTPCONTCHLDCLDTTINTTOUIOXCPUXFSZVTALRMPROFWINCHUSR1USR2PWRPOLLH�H�<$H��H��H�t$H��H�D$1�H�T$ �H�D$
�H�D$8	H��H��H��H�D$(H�H�D$0��can't trap reserved signal: %dcan't trap reserved signal: SIG%srb_register_sigaltstack: th->altstack not initialized
 handler
 received in SIG	

GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0QA�K�K h
AAGDCAPdHI0|�B�A�D �I�a
 DABH(�1A�A�F `
CAA�)DPdzRx�Pi 6E�P�G @h_TBE�P�G tBE�P�G �9E�M eA�(�XF�A�H �EAB�WA�M
H_B�B�B �B(�A0�A8�G�g
8A0A(B BBBF\O@p�F�B�B �A(�C0�D@�
0D(A BBBH�`H~
J8�dF�E�I �A(�D@�
(D ABBG; E�LL<�F�B�B �B(�D0�A8�N��
8F0A(B BBBA�$H[�\HPG
A�	��K�8m$@H_
IK,DOE�H�G�~
AAD	$)?%Yt&��'��(�Q1Q=0EQax{`�	 �x��P����g���g(�Hp1[�����)�	�i��
��	�*�61U�w h������B���"��B�"i+09:iW�rp������X���7
�W*7E�K@_^�|���O�����������@-�`9@Q�g@dp��������"�E$f$���������6�X�x��8�8����		�(	�C	?%&'($\	a	f		k	#p	(u	Az	E	U�	X�	^�	h�	b�	n�	��	u�	�	 �	��	�	��	��	��	��	��	��	:�	�	H�	M
T
Y
^
f
q
y%
�+
�1
�7
�=
�C
�I
�O
�U
�[
�a
�g
m
y
�
�
�


 !"#)*+�
�
�
�

$+1@To|���������#.>FQ^gq��������

�;+
��a?
�D
I
U
g
�
�
�
�
�
�
$�
�
0\�
�
�	�(�K;8H@mWd~��@��O����!*8CS	.annobin_signal.c.annobin_signal.c_end.annobin_signal.c.hot.annobin_signal.c_end.hot.annobin_signal.c.unlikely.annobin_signal.c_end.unlikely.annobin_signal.c.startup.annobin_signal.c_end.startup.annobin_signal.c.exit.annobin_signal.c_end.exit.annobin_signm2signo.start.annobin_signm2signo.endsignm2signosiglist.annobin_signal_enque.start.annobin_signal_enque.endsignal_enquesignal_buff.annobin_sighandler.start.annobin_sighandler.end.annobin_ruby_signal.start.annobin_ruby_signal.endruby_signal.annobin_install_sighandler.start.annobin_install_sighandler.endinstall_sighandler.annobin_check_reserved_signal_.start.annobin_check_reserved_signal_.endcheck_reserved_signal_received_signalcheck_reserved_signal_.cold.4msg1.16029msg2.16030.annobin_sigill.start.annobin_sigill.endsigill.annobin_check_stack_overflow.start.annobin_check_stack_overflow.endcheck_stack_overflow.annobin_sigsegv.start.annobin_sigsegv.endsigsegv.annobin_sigbus.start.annobin_sigbus.endsigbus.annobin_interrupt_init.start.annobin_interrupt_init.endinterrupt_init.annobin_esignal_signo.start.annobin_esignal_signo.endesignal_signo.annobin_sig_list.start.annobin_sig_list.endsig_list.annobin_rb_threadptr_tag_jump.isra.1.start.annobin_rb_threadptr_tag_jump.isra.1.endrb_threadptr_tag_jump.isra.1.annobin_signal_exec.start.annobin_signal_exec.end.annobin_rb_signo2signm.start.annobin_rb_signo2signm.endrb_signo2signm.annobin_esignal_init.start.annobin_esignal_init.endesignal_initsigname_prefix.annobin_sig_signame.start.annobin_sig_signame.endsig_signame.annobin_sig_trap.start.annobin_sig_trap.endsig_trap.annobin_ruby_signal_name.start.annobin_ruby_signal_name.end.annobin_ruby_default_signal.start.annobin_ruby_default_signal.end.annobin_rb_f_kill.start.annobin_rb_f_kill.end.annobin_rb_sigaltstack_size.start.annobin_rb_sigaltstack_size.end.annobin_rb_register_sigaltstack.start.annobin_rb_register_sigaltstack.end.annobin_ruby_posix_signal.start.annobin_ruby_posix_signal.end.annobin_rb_signal_buff_size.start.annobin_rb_signal_buff_size.end.annobin_rb_get_next_signal.start.annobin_rb_get_next_signal.end.annobin_rb_trap_exit.start.annobin_rb_trap_exit.end.annobin_rb_signal_exec.start.annobin_rb_signal_exec.end.annobin_ruby_sig_finalize.start.annobin_ruby_sig_finalize.end.annobin_Init_signal.start.annobin_Init_signal.end.LC0.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC12.LC11.LC13.LC15.LC14.LC24.LC25.LC22.LC23.LC21.LC18.LC19.LC20.LC17.LC16.LC27.LC26.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC47.LC46.LC45.LC44.LC43.LC42.LC41.LC40.LC39.LC38.LC37.LC36.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_strcmprb_thread_wakeup_timer_threadsigemptysetsigactionruby_disable_gcwritevabortrb_bug_contextruby_current_threadruby_thread_stack_overflowrb_scan_argsrb_call_superrb_iv_getrb_hash_newrb_str_new_cstrrb_hash_asetrb_ary_new_from_valuesrb_eval_cmdrb_sprintfrb_error_arityrb_check_to_integerrb_num2intrb_iv_setrb_fix2intrb_string_valuestrncmprb_sym2strrb_eArgErrorrb_raiserb_securerb_string_value_ptrruby_current_vmrb_safe_levelrb_check_string_typerb_check_safe_objrb_block_procrb_str_new_staticrb_eSecurityErrorrb_sys_fail_strrb_str_subseqruby_signal_nameruby_default_signalrb_f_killrb_sys_failrb_thread_currentrb_thread_execute_interruptsruby_killkillpgrb_threadptr_check_signalgetpidrb_obj_classnamerb_sigaltstack_sizesysconfrb_register_sigaltstackrb_bugruby_posix_signalrb_signal_buff_sizerb_get_next_signalrb_trap_exitrb_signal_execrb_interruptrb_threadptr_signal_raiserb_threadptr_signal_exitruby_sig_finalizeInit_signalrb_define_modulerb_define_global_functionrb_define_module_functionrb_eSignalrb_define_methodrb_intern2rb_aliasrb_eInterruptsigfillsetpthread_sigmaskruby_enable_coredumpr��������k��������0���������fr����������������������*����������s��������
t�����������������B*���������n*���������u�����������u���������v�������������������w��������x�����������������8y��������R���������_���������wz���������k�������������������r����������������������������T*���������
������������������=*���������|*����������{���������k���������|���������r���������}�����������������&~��������2���������R���������~����������z��������������������������������������R�&���������I}��������P���������q����������*����������R���������������������*����������������������������������������{��������k��������1���������:r��������Z��������������������{��������	k��������)	*���������2	���������<	���������S	���������e	R�j	����������	r���������	*���������
���������3
*���������:
���������D
���������Q
���������|
����������
����������
����������
R���������
����������
*���������Q���������V����������*������������������������������r��������������������������������������
R8-���������g���������������������������������������
r��������_
����������
����������
����������
Rt���������*���������������������������.���������5*���������<���������F���������q����������*������������������������������{���������k���������r������������������0���������\����������R������������*���������*���������Y���������r�������������������/���������[���������j��������������������������������������������������������������������$���������4���������C*���������R���������\����������������������������������������*������������������������������*��������������������������������������N���������w������������������������������ � ��*���������G*������������������������������������� ��������6���������;��������N���������S��������i���������n��������u*����������������������������z�����������������������������������������������������������������*�������������������������������������������*������������������R*���������h���������w�����������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������������������������������&���������-���������4���������;��������������������p��������|�����������������������������'������������������|����������������������������� q��Q$,QPQXx�Q�x�x���x���gD�Lgpgx��g��������0�8d�l����������$�,�P�X"���"�"�i�"�ii�DiL�p�x��������7�7078�d7l�������������$�,�P�X@���@�@���@��	�	�D	�L	�p	�x	�	��	�	�	�

�0
�8
$d
�l
$�
$�
��
$�
��
��
�$�,�P�X��������������8D�L8p8x��8������
�
�0
�8
?d
�l
? l m n oR�VR�`���������e���������G���8

9� 
$
(
,
0 
4$
8�<G@�D�H�L
P
T0X�\
`
d
h
l 
p$
t�x�
|�
��
��
��������� ��	�(�,^ �0�@P�`�p������A�#������
 0@ P%`)p.�3�6�;�@�G�L�R�W\` T`h����p��p$�D X�x��0�p����@`�t����@�$�@��0������@(�H�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.text.unlikely.rodata.str1.8.rela.rodata.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@-�T-�l-��-��-�'�?"@Ha�--�3( =t
8@ w�-
St&bt&�]@�0-
H(�H(�|@ �0-�*�*��@P�0-��+��+��@��0-�2�-e)0i@��`-2�031�.@�P-@20 ;@`�0-S004.�^4�^4S^4'^4\^4j^4}^4�^4�^4�`4 ��4p�@��-+�8�.�	�Qh���sprintf.o/      1690381920  1000  135   100644  62744     `
ELF>X�@@/.

"$!% &'�L�G�+��y�޸-�G��	��H��A�gfff�L�ɉ։�A��L�I�A�����)��A)�D�؃�0�A���cσ�0H�A�A�Q�H9�s_L���
f.��H��H���V�H9�u�H�D$H)�L�H)��fD��H�Gu��0A�0H)��DI���G0H�G��L����ff.���AWH��AVI��AUATUSH��L�oI�mI�E�� tI�EI�}��L�bM����M�>I�^��0I)�K�'H9�r�H�H9�s�H��L��H�T$Hc��I�EI�MH�T$H%���H	�� I�mukI�^H�*L��H�]H�uH��H��H���H��H�I)�u�I�I�EI�E u%H)�L��H���H��1�[]A\A]A^A_�fDI�E��f�I�M�H�H�5H�81��f���H���bAVI��AUE��ATI��UH��SH��H�_H�:H�{H�|$�gA��+���H�D$A�� �H��H���H����H��H���H�|$�H�L$H��� ��H��H�A��I�$H�M@��uAH�����t8H�3���������u"H������tH���t��H	�H�3H��[]A\A]A^�D�H��H��H�D$�H���Q���H���H�|$I���H�|$�"L��A�H���H�D$I�����DH�AH�Q�3���1��DH���H�D$����fD�H���O����#���H�H�5H�81��@��H�~t�G�t
1��f.�AWAVI��AUATI��USH��L�.H�WM�}I�mI��f�H��t!��u.H)�I�I)VtRI�T$A�D$H��u�M�}I�mI����@H9�H��I�<$L��HF�H���H��I)\$1�I$I�I)Vu�H��1�[]A\A]A^A_��SH��1��W0H�C�C[�fDAWAVAUATUSH���GH�|$H�T$(dH�%(H��$�1�f�$��f��
�:L��$��D$4I��L�\$L��L��$�HDŽ$�DŽ$�H�D$H�D$@�D$DH�D$8H�D$ A�E����L��%u�fDA��%��H��D�eE��u�I��M)���H��$���$�L�+H��L�s�L�H��$���$���~(H���?H�|$H��$�������}H�\$Lt$ E���]Ƅ$�A�����H�EE1��D$D���(L�h�E�Z��H�
Hc�H�>��fDI��M)�t��?������H�D$�@@H�����HDD$ H�D$ H��$�dH3%(H�D$ ��,H�Ę[]A\A]A^A_�H�D$L�X8M��tD����P��uA�}��$��D��H�D$(������	A��@�8��/�!H�|$(�ƒ��HWHcH��H��$�H���	����$��
A�����D��E��@��A���<$H����E���,1�E1�L��$���H�|$(���/�g����HO���D$��y�؉D$A��fDL���f�����H�t$(H�H�D$H�A����	��/���ƒ�HV�H�H��$�H��t
A���8�Ƅ$�1�A����&���D�<$E��H�����A����
�/���X����E1�L��$���D�<$A����CD�T$@H�t$(�F=��E�ƒ�HV�F�
f(�fT�L$8f.�5D�4$f��A��f/�����$�1�A�L�%�f1�@��I���DE�A�m��MЃ�	v�D$�E�Z�!������C@��$PƄ$�E��1�1�D�<$A��A�L��$PL��$�@��tI��L��$�E��tI��L��$�L9�M��D�$LM�A��u$HcD$L)�Hc�Hc�H9������H��~������$���H��$�H�CH��H�C�H��$�H�P��$�H��$�����$���~CH����H�|$H��$�H�L$XD�T$P�f������>���H�\$H�L$XD�T$P�E����H��$�H�CH��H�C�H��$�Ƅ$�0H�P��$�@��$�H��$�����$���~=H���0H�|$H��$�H�L$XD�T$P�����������H�\$H�L$XD�T$P�A�����H+�$�Hc�A��H9��Y�����$�H��$��w��H��~������$�t	H��$��<$H�s��E����H��$�H��H��$������|$4��A�$H��Ƅ$�.H�C��$�H��$�H�H��$���$�����D�AH���\$4H�w��~m�S�I��D��$�Hc�L�'H�H�WH��$�A����H���SH�|$H��$��|������T�����$�H�|$H��$�D�AH�wD�d$@D+d$4E����H��$�H�HcT$DH�H�WH��$�D��$�A����H����DŽ$�Hcl$H�t$�$��I9�IM�Hl$ ���$������Ƅ$� ���H�t$(���/��ƒ�HV�L�"H�E��M��LD�A��A�����Mc�1�L��L��L�$�L�$H��t
L)�Hc�L9�LL�Ƅ$�1�1�D�<$����H�|$(���/���ƒ�HW�H�A��H�=1�A��H�|$H�A�H��$��xƄ$�D�<$L��$PH�|$HM��7�H��I����H���A�$u�M��7M)�Mc��f���H�D$(�A���kA��@����/��H�|$(�ƒ��HW��\H�|$(�A������/��ƒ�HW�H�H�t$ H�0A�E������H��$������H�|$H��$��������A���&���A��@����E���EA��D�<$A��������H�t$(A��F=�������H�t$(H�VH�BH�F���H�D$(�A���6A��@����/��H�|$(�ƒ��HW��'D�<$E���I���A��A��D�<$D�T$@�3���H�t$(���/���ƒ�HV����$P���A���A���Ƅ$�+�4���A�π�+���A�mI�E��*�]#�M�E1҃�	w&fDC��H��D�TM��h��MЃ�	v�E��DH�I���U���E����A��D�<$A�����A��z���H�D$(A�����/�NH�|$(�ƒ��HWH�H��H��$�H�������H��Ƅ$�-H��H��$�A�����D��E��Ic�@��A���4$�-H��	��L��$PH��M��7H��y:H���������L��$PH��M��6H��H��H�H)�H��H�׃�0��$�I���������f�H��I��I��H��H��H�H)ǃ�0A�<$H��H��u�M��7M)�Mc��7���A�����H�D$(A�����/��H�|$(�ƒ��HWH�H��$��
���H�D$(A�����/�wH�|$(�ƒ��HWH�H��$�����H�t$(H�H�D$H�A���0���A��@����/��H�|$(�ƒ��HW�����@���hH��$�H�L�#H�SH��$���$���~(H���n���H�|$H��$��g���?�H�t$Hcl$�$u7H��$�I9�IM�Hl$ H����DŽ$�H�\$���DH��L)�Hc�A��H9����H��$�H��~���~���$����lL�H�,$L�t$H��$�L�l$H��M��H�\$���yH����A��A��~aH���AL�.H�FH��$���$���~�H����H��H���c���;��$�A��H��$�L���yA���M��H�,$L�l$Mc�L�L�L�fH��$���$�������H������H�|$H��$�������������HcD$L)�Hc�Lc�H9����H������������H��$���$����wH�L��$�L�d$PH�މl$XD��H�l$I��D�t$hM��L�l$pL�l$H�L$`��D�WH���σ���~`H���OL�&H�FH��$���$���~�H���oL��H���������$���H��$�L��D�W���L��l$XH�L$`Lc�D�t$hL�l$pH��L�d$PL�CI�H��H�S�L��$�D��$�A������M���H�|$H��$�H�L$P�����\�H�\$H�L$P����DH�|$H��$��V��������)�f���e���l$8f�f.���	��	�|$4�
H�=H��H�CH�;H��$���$���~(H����H�|$H��$���������H�t$�D$4�\$@D�`�9�}1�D�d$@��f��A)�E���=���H��$���$�A���L�t$H�l$L�l$PH�H��$�I���D�GH����A��A���jH���OL�.H�FH��$���$���~�H����H��L���	��������$�H��$�H��D�G�f���H���H��$�L�d$PI��L�d$�l$XH�\$D��D�t$`I��L�l$hI���D�OI��������~_�wH��M�)I�AH��$���$���~�H����L��L���M����%���$���H��$�I�ٍO���A��L��L�d$P�l$XD�t$`L�l$hL��H�Ic�H�H�SH��$���$����?H�����p��1�I���:���f��1�L���
����A�1�L���J����d$8f.����$�T$8f��A���D$P�AN�1���f@�ǃ�f/��D$4��
�|$8f��f.���	��	f��-���|$`�^�f/�GˆD$hA��D�T$XA���A��A���aH��t$4H�=HE��D$`H��$�H��$�L��$��D�T$XI��H��$��7L��D�T$XL��$PƄ$PL)�L���L���D�$D�T$XH��$�L)�A��I�H��$�t?HcT$4L���f��H9�s)�H�HH��$��0H��$�H9�r�L)�H���L$4��$�A��G��
����D
�E��D��N�9��.
9t$4��E����D$PLcֽg�$D�4$A���|$h��
��$�1�M���[��|$4��
A�$H��Ƅ$�.H�C��$�H��$�H�H��$���$�����D�AH���\$4�l$8f�H�w��f.�z��
Hc�I��D��$�H�L�'H�_H��$�A���X
H���IH�|$H��$�����������$�H�|$H��$�D�AH�wD�$$A���e�\$@��+\$4���R����H�L�|$PL��$�H�l$L�l$XI��A��H�\$�D�AH����A��A���2H���qL�?H�GH��$���$���~�H����L��H�����������$�H��$�H��D�A�H��$���$����SL�L��$�L�d$XH�މl$`��H�l$M��D�t$pM��L�l$xL�l$D�T$PH�L$h�fDD�_H���σ���~`H���OL�&H�FH��$���$���~�H����L��H���D�������$���H��$�L��D�_���M��D�T$P�l$`Hc�H�L$hD�t$pH��L�l$xL�d$XH�SH�H��L�C�H��$�D��$�A�����H���BH�|$H��$�H�L$XD�T$P�������H�\$H�L$XD�T$P��fD1�A�L����DŽ$�H�\$���H�D$ f�����E��$�%�H��L�#H�CH��$���$����
H��D�AH�s ��H����H�|$H��$�����������$�H��$�H�|$D�A��DŽ$�H�\$�l�DŽ$�H�\$���A���]L�t$H�l$L�l$PH�H��$�I���f�D�AH����A��A��~^H���qL�/H�GH��$���$���~�H��tyH��L���&��������$�A��H��$�H��D�AA���L��L�l$PH�OMc�H�L�L�gH��$�D��$�A���2A��H�qH���v�A�1�H���B���H���vH�|$H��$������e���$�H��$��KH�\$��D��$�E�����S
HcT$4L�#D9���
H�H�SH��$���$���~0H���/H�|$H��$��������D��$�H�t$D+t$4E�����$���H���$�H�FH�H��$��SH����$�H��$�����H���;�H���7H�|$H��$��z����R���$�H��$�H�|$D�A������/��H�t$(�ƒ��HVH�H�����H�t$(H�VH�BH�F���T$4�����D$4I��H�\$A�L��$���H�sH�H��$�D��H��A��H���w�A��D�<$D�T$@��H�|$(H�WH�BH�G���D$@D�<$�~�H�t$(H�NH�AH�F��H�t$(H�VH�BH�F�:�A��@����/�
H�t$(H�VH�BH�FH��T$ f���H�|$(H�WH�BH�G����/�9H�|$(�ƒ�HW���h���/�1H�|$(�ƒ�HW�������/�H�|$(�ƒ�HW���y�H�t$(H�VH�BH�F�`�H�t$(H�VH�BH�F��H�t$(H�VH�BH�F����d$8�D$h�d$`�[����$��T$4uYH�H��H�CH�H��$���$��������DŽ$��H�\$���$����H�H���yH�CH�H��$���$����
HcT$4L�&��$�H�H�VH��$�����
H���,H�|$H��$������h�H�t$D�$$A����D�t$@D+t$4��fuD�$�E�����H��$���$�A���
H�H��$�H���D�GH����A��A����
H���GH�.H�FH��$���$���~�H����H�|$H������������$�H��$�H�t$D�G�f�D�$A��L��$PI��7�
�L���L�g�����0H���W�u�0���E�����H��M��7A�D$�0I)�I��Mc���Ic����Ƅ$�-1ɾ-A�L�%���Ƅ$�-1ɾ-M�����A��A����f�T����E	��
�D$PE�T2�fMc҉$�
����$�3���H��L�#H�CH��$���$�����H���[H�|$H��$��~�����V���$�H�|$H��$�D�CH�w���\$4�l$8f��f.��u�oH�|$1�A�H�w���c������l
L�t$H�l$L�l$PH�L��$�I���D�IH��������z	H���qL�/H�GH��$���$���~�H��tSL��L��������{���$�H��$�H��D�I�fW�D$h-�T$`�^�1�A�H���
�1�A�H���f����-�
������UD�4$��H��$���$��{��E��A�‰D$D�D$4A��Aƒ�A��tA��Mc�D�$$�(�t$4�D$`H��$�H��$�L��$��D�T$XI�����gA�e�EAD��Ń�H��$��ꉴ$�����A�‰D$D�D$4Aƒ��$t	�D$@A���D$PMc҉$��E��1�H�����A�����H�|$A�1�H�w�����0��$�A�L��$����H���q�H�|$1�A�H�w��D�4$��$�1�A�L�%A����Hc�I��H�\$A�L��$�H��$�H�sD��H��A��H�����H�t$(H�VH�BH�F�:���H�t$(H�VH�BH�F������$P0u1�d$`f�ۿf.�@��E�@��t�+t$4��$����$�Hc�H�H9����L$4��� ���E����	A���D$P�fM҉$I����H�t$(H�VH�BH�F��.��H�t$(H�VH�BH�F���L�����$�D�<$1�I��H��$��P�H�t$(H�VH�BH�F����/��H�t$(�ƒ��HVH��T$ ����H�t$(H�VH�BH�F���H��$�DŽ$�H��$�HcD$DH��$�H��$�H�D$H�p��H�t$(H�VH�BH�F�%�H�t$(H�VH�BH�F�U�H�t$(H�VH�BH�F��l�Ic։�$�H�H�SH��$�������H�H��I�H�FH�H��$���$����H���(H�|$H��$��B���������$�D��$�H��$�H�t$�K�T$4L�&��$�D)�Hc�H�H�VH��$�����H���H�|$H��$�����������H�t$D�$$A���_�D�t$@D+t$4��fuD�$�E���?�H��$���$�A����H�H��$�H���D�@H����A��A����H���xH�.H�FH��$���$���~�H���XH�|$H�������������$�H��$�H�t$D�@�A��gA)�DOЋD$PDT$4Mc҉$��I��H��$���DŽ$�H�\$(���/���Ѓ�HC�H�D�$H��$�H��$�D��$��H�|$H��$�1�A��Ƅ$�I��H���*��Lc$E��H��$�A��A����TI9��9Lc�D�<$1�1�H�\$����H��D�AH�s ���H�H���yH�CH�H��$���$���~BH���H�|$H��$������������$�D��$�H��$�H�t$�yA��E�������H�A�����l$PH��$�H����yH��D��A��A����H��D�AH�.H�FH��$�D��$�A��~�H����H�|$H�������������$�H��$�H�t$�y�HcD$4L��$�DŽ$�H�t$H��$�H��$�H���1��������H�t$(H�VH�BH�F�=���H���H�|$H��$��{�����S��Hc�$���$�H��$�H�t$I�֍K���H�t$(�ƒ�HV����H��$���$�A����H�H��$�H�l$I���D�GH����A��A����H���GL�&H�FH��$���$���~�H��tSH�|$H�������������$�H��$�H��D�G�1ɿH�t$�,���DŽ$�H�\$���1�A�H���d���L��L�l$PL�WHc�H�H�H�_H��$�D��$�A���5�E�AI�rD��L���a�D��L��L�l$XL�|$PH�OHc�H�H�H�_H��$�D��$�A���E�����L��L�l$PH�Ic�H�H�VH��$�D��$�A���(���H�|$1�A�H�w���DŽ$�H�\$����H�H�t$IԹHDŽ$�H��$��H�����&���DŽ$�H�t$�l��D$4L��$�DŽ$�H�t$D)�H�H��$�H��$�H���+���E��1�H�t$���H�\$(H�CH�PH�S�8���E��1�H�t$�\���H��l$PMc�H�L�L�vH��$���$�����H������D�_L��~��yL��7�H��Ic�H�H�FH�H��$�D��$�A�������H��H��7�D�WH��L�H�\$H��$�D�$H�����������L�[8D�$�0���D�<$1�1�H�\$���I��D�<$1�H�\$���1ɿH�t$�%���H������H�|$H��$�������r����$�H��$�H�t$�{��DŽ$�H�t$���D$PA���fMc҉$��L��Ic�H�H��H�F�H�H��$�D��$�A���3�H����H�|$H��$����������H�t$��DŽ$�H�t$����D$PLc։$�
�DŽ$�H�t$���H��H����I��E��H��A���H�|$(�7��/wC���HO�7�1A��I�Ņ�DI���D�GH����DŽ$�H�t$�]�H�|$(H�OH�qH�w�D�GH����D�GH������Icʃ�
t.�����������E��A���?�D�@H��s����0��ff.�f�H�������t?��~!H���H�����H�5H�81��H���H�5H�81��H���H�5H�81��f.�AWAVAUATUSH���)H9���H��I��I��I��A�/��/���������uD��D�D���)�9�|2H���l�I9�t\�;L��A�T$X��t(�����433�����t�H��1�[]A\A]A^A_�fDI9�vA�/H��H��[]A\A]A^A_�fDH�H�5H�81��H�����t
���tH���H���H�5H�81��H���H�5H�81��f���H��~UH��HH��H��H��H�<$�H�|$H��H�D$H�D$ H�%��f�L$H�D$0H�D$8���H�$�H��HÐ������f.���H��I��H�L$xL��$�L��$���t@)�$�)�$�)�$�)�$�)�$�)�$�)�$�)�$E����H��$ I��H��H�|$ H�D$H�D$`H�T$H�D$�f�D$0H�G��H�|$8H�|$ �D$�D$0L�T$(L�T$@H�D$PH�D$X���H�T$ �H��ø������f���AWAVAUATUSH��XH��$�H��$�dH�%(H��$H1��G1�DŽ$��D$xH�F�H�D$`H��HDŽ$�4�|$|�uH�������H��$�H��H��$��H��$��H��$�H�D$0�H�H��$��� ��
H��L�`��I��xH�D$�H��$�I��H���I�FI� tI�FH�xH�H��H�@pH)��Hx1����H�I�Hc�$�H���H	�I�L9d$�E-�D$HA�xE1�L���D$\L��M��H�D$8�H�D$I���A�?%t	I��L9�w�L����0H)�M�,L9�@H�L9�~�H��L��H�L$Hc�H�T$�I�H�T$H�L$H%���H	�I��� �vI�FH�D$(H�\$(H��J�<#���$�0tHH�D$8L9�}>H��H�T$0J�4+H��$�H�H���Hc�$�H�I�H�\$8H%���H	�I�L;|$�X%I�G�4�D$A�H�D$H��$�H�D$PH��$��D$ ����H�D$@DŽ$�����A�W��{�UH�5��Hc�H�>��H�l$�D$���-A�M�e��0I9�|@H�I9�}�H��L��Hc��I�H%���H	�I�FI��� tI�FB�(%H�L$H��H9L$��I��%���DH��4��"��H��$�������u&H�����t�����
������(fDH��4��H����ƒ����:�Hf.���$f(�fTf.��f�L�=DŽ$�f/���D$�����������+�D$@��D$ ��
�D$ �
�H�|$��<��H9|$s]�D$h}L�|$L�l$pH��$�L�l$0L��$�H�\$M��M��I���l$h�f�A8,$��L��L��H���H�I�L9�w�H�H�5H�81��fD�D$� �1+����*���D$H�D$�PH��H�D$��{�����f.�H�D$0���H��PX����	H�D$H�5�H�H�81��D�D$ ��*�D$��w*H�D$�L$�PH��H�D$�0���fDH�L$@H�T$0DŽ$�H�t$H�|$���H�D$H���*H�D$���$�5�D$ ��)�D$��D*��$��L$ �D$ ���f.��D$� �*����)������@�D$��j)H�D$D�|$DŽ$�A���x*L�@��	H�L$PH�T$0L��H�t$���H�D$H����)H�D$D�|$��)�����D$� �q)���9)���;���@�D$� �Q)���)������@�D$ ��(�D$��?)H�D$H�L$@DŽ$�H�T$0H�t$H��H��H�D$ �J���I��H����(�8$�)
D�|$\�|$HD����A�GD;|$x�
)HcT$\H�|$`�D$\H�D$ L�|$H�<׉T$HH�D$H��$�@��� 
��D$ �D$ ��� 
�L$ A�W����f.�H��4����p��H���H��$�L�8�u.H�����t&D������tA���DT$|�T$|fDA�� ��L�xL��L�����$�=0tL9l$8��H��$�L���H�D$0�D$`��H��$�H��� �XH��H�z��H�4H�T$0�H���R(�D$@tcHc�$�H9�}VH��$�H��� ��!H��H�yH�ƃ�H�H�L$0�H��$�I��Hc�$�H� �H!H��I)�A��|$��0@�� �2HcT$ H��H9��!)����L$�|$ �0O�d=L9�fDH�I9�}�L��H��Hc��I�I�~H%���H	�I��� tI�~H��$�H�pH� tH�pL�L���H��$�H��$�H��$��D$ ���"H�t$0L���H�L$H��H9L$�`����D$HM������@H��4��H���H��$�H���H��� ��H��H�x��H�4H�T$0�H���j&H��$�H��� ��H��H�z��H�4H�L$0H��$����H��$�H��$�H��$���$����$&E�&A��0�D$ �-�D$�H�L�H9�|
DH�H9�~�H��L��Mc��I�I�vH%���I	�M�&A�� tI�vH�D$0L��H��P0Lc�$��|$ O�$*�����D�l$ A�A����0Mc�O�|%L9�@H�L9�~�H��L��Hc��I�H%���H	�I��� �� I�FJ�< L�� M������DH��4�
H�D$H��$��D$P��H���6w2�H��H�@ @H���$H��1�H��@�Ɖt$PH�D$(�D$���H��H��$���6��5�ƒ�����H��H���H���<�H�������
�r��
��H�D$�<b���
<o��<x�
H��$��
�H�H��$�L�xH�ׁ� tL�xA�7@�t$h@��-���D$�M!�l$ ��D$h+H���(!H����H�|L)�Hclj�H9��:"�D$P��DŽ$�
�D$@��!�$��@I�FH�D$(����H��$�H�H�D$@H�D$�<b����<o��<x��H�D$@H�����D$���D$�� �l$ Ƅ$��D$h ������H��$��ƒ�����@�f/��eH��$��ƒ�����@�H��$�H��$���)���H��$������f�H��������H��$��H��$����L�`H�P��I��A���i���H�=H�|$(<b�\����2H�=H�|$(<o�B���<xA�H�LD�L�|$(�%���H�H�5H�81���D$@-��D$ ����9D$ ���HcT$ A�N�$*��0I9�|�H�I9�}�H��L��H�T$(Hc��I�H�T$(H%���H	�I��� I�^tI�^Iݾ L����D$@�D$�$��tA�E�D$ M���H�I)�I�A�fA�EA�GA�E�R�H�xH�pH��J����D$@��!���H���H��������DljD$|�N�H9|$����D$h>�+�H��H�L$@H�T$0L�D$hH�t$H��DŽ$���L�D$hH��� �8$���|$H�t$\L�D$���|$\;|$xL�D$�G��HcT$\H�|$`�D$\H�<׉T$HH��$�L�D$@�����L�D$��$���y
D�|$A��A�πI�@A�PD�|$H�D$���$�H��4���|$H���Hc�$�;D$x�)H�|$`�D$H����H��H�D$�PH��H�D$�^��$��|$H��Hc�$�;D$x��H�|$`�D$H����H�<�I�GH�D$H��$�@�������D$ �D$ ������L$"�\$ �����\$\�|$H���\��C;\$x�tHcT$\H�L$`�D$\H�щT$H����H�=H�|$(<B����<XA�H�LD�L�|$(��<B�+<X�p���A���E1�DŽ$�H��$�H��$��H��H=�����D$P����H���HD�1��A�H�E)�H��$�Mc��� �IH�PH�pH��$�A���1��1fDH��L�~H����H9�}9I�?H�5H���
��
H��$�H�I��A�� t�L�~H;~|Dž��8�D$�#�l$ �D$h+�D$@�L��M��M��L�l$pL��H+t$H��$�L��$�H��������F�D$pI�����D$H�����|$H��H��$�H��4�H��$�H�D$��H�T$0Hc�H�x�I��H��tH��$��4H���H��H��4�X�|$h}�uI�GA�W�D$H����H�D$�u�A���0O�$/I9�|	�H�I9�}�L��H��Hc��I�I�~H%���H	�I��� tI�~H��$�H�pH� tH�pL�L���H��$�H��$�H�t$0L��H��$�����tB�D#�A�J�D#�f�A�W�P�=�H��H9�taH���H��H��?H)�H	�H��H�D$(�~L$(���\$\�|$H�����C;\$x�HcT$\H�L$`�D$\H�щT$H�@�f��H�D$D��$�D�Ƅ$%�D$�mL��$M�|$�D$tA�+I���D$tA�-I���D$tA�0I���D$tA� I���\$�� �5�D$@��H�D$E�A�G��D$���<E���9D$ �r���jD�|$ A�A����0Mc�K�/H9�	�H�H9�~�H��L���L$Hc��I��L$H%���H	�I��� I�^tI�^L�L��f(�L��H�߸�H���M�d��<B��
<X��A���A�H�D$@DŽ$��r����|$x�IH��$�H�t$HH�8�H�t$HH���%H��$����H��$��1��H��$����H�zH�rH���H���{H��1��A�H�E)�H��$�Mc��� ��H��H�p��H��$�A����1��2�H��L�~H����H9�}9I�?H�5H���
��
H��$�H�I��A�� t�L�~H;~|lj��D$h���|$@M����H����H�|L)�Hc׉�H9��2�T$P��D�d$@��!ˆ�$�E��t
��$��l$ H�D$�8X�H�|$(tLH�D$(�x�*	D�\$@E���/	�D$��@���~��t
9�$��	H�|$(�)D$ �D$��J���		��$�9�}&H�|$(@�ƃ���@��t���,��$��؋|$ )�HcǍx��D$P�|$ H�D$p�D$���|$h��	H�D$(H����	��$�E�&)�A��0H�L�H9�H�H9�~�H��L��Mc��I�I�VH%���I	�M�&A�� tI�VD�L$@E����
��$��j
�D$��B���
A�Hc�N�$+%0�D$I9�|fDH�I9�}�L��H���I�HcT$I�~H%���H	�I��� tI�~L�H��L���H��$�H��$�H��$�H�D$pA�L��0H9�|H�H9�}�H��L��Hc��I�H%���H	�I�FI��� tI�F�|$P������|$ L�L�� ��H��)…��Hc|$ ���HI�M�d�f�H�zH�rH����|$ ��H�L�H9�
f�H�H9�}�H��L��Mc��I�I�vH%���I	�M�&A�� tI�vH�D$0L��H��P0Lc�$�O�$*���HDŽ$��D$@uDŽ$��|$A����A���|$@A�����xH���7D	�|$hH��$��^
L�=M����
Hc�$��
�H��$��L��H��$��1��H�ߺH��$��*H��$����+H��$�H���H��$��L��H����D$PH�D$(H��H���H�H��$��� �5
H��H����Hc�$�HD$(Lc|$ A��NH9�Hc�HM��|$hH������0��H�I9�IM�L�H9��H�H9�~�H��L��Hc��I�I�NH%���H	�I��� tI�NE���t	�t$@���H
M��E1�L��$�I��� �<	H��I��H��H\$(Hc�$�J�<!H9����0��$�I��M�M��~
B�!.I��I���T$P���^Hc�$�H��H9��
��~2H)�J�<!L�L$(I�4H�L$ �L�L$(H�L$ Hc�$�I�I��D$ t	M9���H��$�H��$�H��$��8�L��$Ƅ$#M�|$���H�D$(1��D$@�lj|$P�D$����w�A���A�H�D$@DŽ$����A���E1�DŽ$����H��$��ƒ������@f/�r�H��$��Ѓ�����H,BH�D�_����C�H�H;�$��E����H�|$@�a����X���H��H�p����H9��k���H���H��H��?H)�H	�H��H�D$@�~D$@���f�H9����H���H��H��?H)�H	�H��H�D$@�~D$@���T$ ��Hc�N�<*I9�|@H�I9�}�H��L��H�T$Mc��I�H�T$H%���L	�� I��?I�FJ�<(� M���E�&��$�A��0���H�������D$@D	�D$h�x�����$��|$HH�D$���Hc�$�;T$xH�D$�H�t$`I���D$H����H�<�H��$��O�Hc�L�H9�|H�H9�~�H��L��Hc��I�I�VH%���H	�I��� tI�V�D$�H���t!J�*I��J�4)H�� H��H9�u�A�Í�0�D$�����T�HcD$A�L��0H9�|H�H9�~�H��L��Hc��I�I�VH%���H	�I��� tI�V�D$�H������M�T$J�"J�4H�� H��H9�u�M�$
�b�A���E1�DŽ$����A���A�H�D$@DŽ$���������A�?0��H�D$(�D$��J��������D$ �D$PH�D$p��$��D$ �����D$����H�D$pE�&L�A��0H9�@H�H9�~�H��L��Mc��I�H%���I	�I�FM�&A�� tI�F�|$ D�T$PL�w�E������ ��H��)…��Hc|$ ����W�HIlj�)�M�l�|$hHclj|$P�p�H�D$p�t$ �l���E�&I�UA��0H9�@H�H9�~�H��L��H��$�Mc��I�H��$�H%���I	�I�FA�� M�&tI�F�|$hB�<(H�D$(I��H������H���E�&Hc�N�*A��0I9�|
f�H�I9�}�L��H��L�D$hMc�H��$��I�I�~L�D$hH��$�H%���I	�A�� M�&tI�~H�t$(L�L�D$h�L�D$hM���t���H�~H~�K��$��p���$�9�����I��B�D*�0��$��H���$�9�������$��7��t������@�Ǎ|.��$��p���$�9��h���fDI��B�|*���$��H���$�9���?���I�MA��0H9�|
DH�H9�}�H��L��H�L$(Mc��I�I�VH�L$(H%���I	�A�� M�&tI�VA�..fF�*I����H�L�H9�������H�H9�}����H�|$(H�\$8H��$���$�H�T$0J�4/H����$��0H�I�H�\$8H%�����t
��$�Hc�H	�I����H���H���F��\$\�|$H������C;\$x��
HcT$\H�|$`�D$\H��H�|$H�щL$H����\$\�|$H���b���C;\$x�z
HcT$\H�L$`�D$\H�щT$H���\$\�|$H���+���C;\$x�C
HcT$\H�|$`�D$\H�׉T$H�-��H�߃��~���H�t$0�����$��I�H�PH�p�0�H�\$(IXM�@�����+A����M�eB�)A��D$@�t���H�@����I�t$ L��D��1�L)�H��L$(D�D$�L���D�D$�L$(I�H�D$E�A�G��D$���<E�1��$����L$ I�t$ L��1�L)�H��L$PD�D$@D�L$(�L����L$PD�D$@I�D�L$(�}��L�D$�^�A�?@�����H��\$PH�\$0L��I���H��H����E��}@��u�\$PL����D$H���H��$�H��$�H��$��L$x9L$\}(��t$�H������I�H������:L��L����D$|��t&A��u I�����tI��ƒ�������I�H��$HdH3%(L���H��X[]A\A]A^A_Ãl$ �D$h-�D$@���D$ ��DŽ$�L�=�V��f(�H��$��L$DŽ$�����$��L$���(�i��������������$��������I�Hc‰T$PH�D$(�%�H��L��H�L$(H)�L�D$ �Hc�$�H��L�D$ H�L$(H)�H��I�N�/��|$�D$h���|$@����l$ �D$@�D$h �{��H�=�I��H�������}���H��A�����H��D�d$hH����A�M�l$��0I9�|H�I9�}�H��L��L�L$ Hc��I�I�NL�L$ H%���H	�� I�tI�NB�!0I��M����H�R���H�yH�qH��u��� �%���H9��J�H���H��H��?H)�H	�H��H�D$@�~D$@��H��$�H��� �����E�.H)�L�A��0H9�|H�H9�}�H��L��L�D$(Mc�L�L$ �I�I�NL�L$ L�D$(H%���L	�� I�tI�NJ�<!�0L�L$(Hc�$�L�D$PH)�H�L$ �Lc�$�H�L$ H��L�D$PI)�M�L��J�<!I��L�L$(H�L$ Hc�$�I��V��t$PH�؃l$ H�D$@���D$h-@��$�L��$H�L$@H�1��@L��L����H����������!�%����t���D$@M��DŽ$�
�����D�H�SHDډ�@�H��D)��T�I�F��I�F�i��f(�H��$��L$DŽ$�����$��L$�������iɒ��2 ����
����)ȃ�����l$ Ƅ$��D$h+����H���H��$�H��$��H�Ã���I���l$ ������>��H9��_�H�ѸH��H��?H)�H	�H��H�D$@�H,D$@H�D�/�H�D$�F�8X�fE�����A�?0�x�1ۅ�����$��\$@�n�H�5H�=1�����A���� �-D��
���M)�D$�A�D$  K�<M��I��A�%0�D$H9�H�H9�~�H��L���I�HcT$H%���H	�I��� ��I�F�t$ J�<(L������H��$�H�t$h�H�t$h������L�H��1�1Ҿ��A�����H��D�d$h�X�H�xHx�����D$���l$ ��D$h ���Hc�H��H�|$p���|$P�D$ ����D$\E1��.���A�L�|$�D$H�����
��Ƅ$��D$h����I�F�����D$  �D$tHcD$@�D$ 0I)�M��L��L�L$M)�K�\=J�4)H�<�L�L$N�$����H���$�������1�A�?0������D$h�����H�H�H�5H�81����L�D$�L$pH�H�H�|$0H�01��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��H���H�5H�81��H�\$L�t$0H�t$L��H�SH��L���L�L$L��R�T$pA��H�I�I�A)�I��RH�H�01��L���L�D$�L$pH�I��H�H�|$0H�01��D�L$HL�D$H�H��L$pH�|$0H�01��L�D$�L$pH�H�H�|$0H�01��f�����~H���H�vH��PH�H�5H�81��ff.�f���AU�I��ATI��UH���xSH��Xf�D$H�D$ H�D$x�H��H��t�}��H��H���H�\$H�CH� tH�CH�$L��H��L��H�CH�4���H�D$0H�X���H�D$8H�D$@���H�H�4$H�H�CH�CH� tH�CH��H)��H��XH��[]A\A]�H�H�UH�5H�81��ff.�f���H���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�T$�D$H�D$H�D$ �D$0H�D$�H����ff.�f���H��H��1��ff.�@��H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$H�D$ �D$0H�D$�H�������ATUH��SH��H��`H�|$H�|$�H�|$�H�|$�H�D$0f�D$ �H�D$H�D$H�H�D$(�� ��H����H�LL�`H�|$H��H��H�@H�Ô��H�D$@H���H�L$H�D$HH�D$P����H�|$H�t$L�gH�GH� tH�GH)��H�D$H��`[]A\�f.�H�HHH�r�����H���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�T$�D$H�D$H�D$ �D$0H�D$�H����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignrb_vsprintf reentered0123456789abcdef0123456789ABCDEF(null)InfNaN00..numbered(%d) after namedinvalid index - %d$0x0X0b0Bmalformed format stringflag after widthflag after precisionwidth too bigvalue given twice - %d$too few argumentswidth given twicewidth after precisionnamed%.*s after <%li>named%.*s after numberedone hash requiredkey%.*s not foundprecision given twiceprec too bigprecision too biginvalid format character - %%%%c requires a characterinvalid characterinvalid mbstring sequencesize too big%lddiv%d.%d%s0000000000000000                numbered(%d) after unnumbered(%d)malformed format string - %%*[0-9]unnumbered(%d) mixed with numberedunnumbered(%d) mixed with namedmalformed format string - %%%ctoo long name (%zd bytes) - %.*s...%cnamed%.*s after unnumbered(%d)too many arguments for format stringmalformed name - unmatched parenthesiscannot construct wchar_t based encoding string: %s����������������?�C��GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx��H0.F�E�E �B(�A0�A8�DP�
8C0A(B BBBGX|�P�E�E �D(�D0�D@�
0A(A BBBFp�����H@�����D��b�B�E �B(�D0�A8�D@�8C0A(B BBB A�XL</B�B�B �B(�A0�A8�G�
�
8A0A(B BBBA�fDQ
A`��B�B�B �B(�A0�A8�D@w
8C0A(B BBBGL
8D0A(B BBBGGDN
A(fOPO@�K��
AX\�1F�B�B �B(�A0�A8�G�d(
8A0A(B BBBA�
�Z�Q�3[8�F�J�D �I(�D��
(D ABBA�K��$8�K��0T�F�A�D �G��
 AABK��K��	#+B$]y%��&��'�5�>�\x�.������������8�X�k���3��/�p�`��3�F4�3fF4% 5:P4�B 5`g5| 5G�g5��5��5��6��6�h5	N�hji�i�#j�#j��j��j�j.�jH�k`�k|�l��l�#m$%&'#�����?�8�'�I��L�G
CgN!('x-P3(9�?E�K{Q�W�]~ci)o&u"{��-�g�y������������U������������������%��<P-BV

 !"()*g}��������/HY`kx�k	���p5f��5���6�1���		5	>	L	W	d	r	}	�	�	�	�	�	�	�	�	�	

+
;
N
]
q
|
�
�
�
�
�
�
�
�
�
-5CP]���h3� i��0j���j��j���k����l�.annobin_sprintf.c.annobin_sprintf.c_end.annobin_sprintf.c.hot.annobin_sprintf.c_end.hot.annobin_sprintf.c.unlikely.annobin_sprintf.c_end.unlikely.annobin_sprintf.c.startup.annobin_sprintf.c_end.startup.annobin_sprintf.c.exit.annobin_sprintf.c_end.exit.annobin_exponent.start.annobin_exponent.endexponent.annobin_ruby__sfvwrite.start.annobin_ruby__sfvwrite.endruby__sfvwrite.annobin_ruby__sfvextra.start.annobin_ruby__sfvextra.endruby__sfvextra.annobin_BSD__sfvwrite.start.annobin_BSD__sfvwrite.endBSD__sfvwrite.annobin_BSD__sprint.part.2.start.annobin_BSD__sprint.part.2.endBSD__sprint.part.2.annobin_BSD_vfprintf.start.annobin_BSD_vfprintf.endBSD_vfprintfblanks.13923zeroes.13924.annobin_check_pos_arg.start.annobin_check_pos_arg.endcheck_pos_arg.annobin_get_num.start.annobin_get_num.endget_num.annobin_check_next_arg.start.annobin_check_next_arg.endcheck_next_arg.annobin_ruby_vsnprintf.start.annobin_ruby_vsnprintf.end.annobin_ruby_snprintf.start.annobin_ruby_snprintf.end.annobin_rb_str_format.start.annobin_rb_str_format.endrb_intern_id_cache.13751.annobin_rb_f_sprintf.start.annobin_rb_f_sprintf.end.annobin_rb_enc_vsprintf.start.annobin_rb_enc_vsprintf.end.annobin_rb_enc_sprintf.start.annobin_rb_enc_sprintf.end.annobin_rb_vsprintf.start.annobin_rb_vsprintf.end.annobin_rb_sprintf.start.annobin_rb_sprintf.end.annobin_rb_str_vcatf.start.annobin_rb_str_vcatf.end.annobin_rb_str_catf.start.annobin_rb_str_catf.end.LC0.LC2.LC7.LC8.LC5.LC4.LC3.LC12.LC10.LC13.LC11.LC9.LC6.LC14.LC16.LC15.LC17.LC19.LC18.LC55.LC24.LC46.LC22.LC20.LC25.LC23.LC21.LC47.LC52.LC51.LC50.LC49.LC53.LC54.LC38.LC39.LC31.LC28.LC27.LC42.LC26.LC32.LC37.LC30.LC41.LC40.LC48.LC43.LC44.LC45.LC29.LC33.LC34.LC35.LC36.LC56.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_str_resizememcpyrb_str_set_lenrb_eRuntimeErrorrb_raiserb_obj_as_stringrb_enc_compatiblerb_enc_associaterb_string_value_cstrrb_inspectrb_enc_getrb_str_conv_enc_optsrb_str_quote_unprintable__errno_locationmemchrruby_hdtoa__memcpy_chkruby_xfreeruby_dtoa__stack_chk_failrb_eArgErrorruby_vsnprintfruby_snprintfrb_str_formatrb_string_valuerb_str_new_frozenrb_str_buf_newrb_enc_copyrb_str_coderange_scan_restartablerb_Floatrb_enc_mbclenrb_fix2intrb_enc_checkrb_enc_strlenrb_enc_nthrb_check_string_typerb_enc_codepoint_lenmemsetrb_big2strrb_dbl2bigrb_Integerrb_num2intrb_absint_numwordsrb_str_newrb_integer_packruby_digitmaprb_check_symbol_cstrrb_hash_lookup2rb_check_hash_typerb_str_to_inumrb_int_positive_powrb_funcallrb_funcallvrb_num_negative_prb_enc_codelenrb_enc_toupperrb_ruby_debug_ptrrb_ruby_verbose_ptrfrexprb_intern2rb_rational_denrb_rational_numrb_warnrb_absint_singlebit_pmemmoverb_out_of_intrb_eKeyErrorrb_enc_raiseonigenc_get_right_adjust_char_headrb_sym2strrb_f_sprintfrb_enc_vsprintfrb_cStringrb_enc_sprintfrb_vsprintfrb_sprintfrb_str_vcatfrb_str_modifyrb_str_capacityrb_str_catf_������������������������������*���������I��������
���������X���������r��������������������������������������!���������2���������?���������Z��������������������*����������I������������������m���������L#��������n����������J���������K���������L���������M��������
N��������-
����������
J���������O���������#l#\�P��������4#\�#\zQ���������O���������J���������������������������!���������#\�#l#\�R��������G"S���������"P��������g##\y$M���������%#\!&T���������&����������'U���������(���������*R��������#+#\�,P��������-#\�.#\)0R��������!1#l01#ln1#\~1#\�2#\3#\=3#\u3#\�3#\�3����������3#\�3*���������4V��������4���������4*���������4W��������(4���������/4*���������84X��������B4���������5*���������5Y��������5���������65*���������?5Z��������I5���������P5*���������Y5[��������c5���������l7���������y7����������7����������7����������7����������8����������8���������&9����������9#h�9����������:����������:K���������:L���������:M���������;����������;*����������;\���������;���������#<]��������-<*���������7<���������s>����������>���������?���������9?���������v?����������?���������J@����������@����������@����������@���������-A���������lA����������A���������ZB����������B����������C���������E^��������2E���������uE����������E_���������ES���������E`���������E*����������Ea���������E���������WF����������F����������G����������H����������Hb��������Ic��������\I����������I����������I����������I*����������J����������J���������RK����������K����������K���������HM����������M����������M����������M���������%N���������VN����������N����������N*����������O���������bP����������P���������Q���������RQ����������Q����������R���������R����������R����������R���������S���������(S���������DS����������S����������T����������Ud���������V����������V����������V���������uW����������W���������*Y����������Y���������4Z���������oZ����������Z����������[���������#\���������a\���������*]���������8]����������]e���������]����������]���������^f��������.^���������6^���������T^����������^����������^����������^���������_����������_U���������_���������/`����������`g���������`����������`���������`����������`����������a���������b���������Fb����������bh���������b���������/c����������c����������c���������<di��������Cdj��������Jd����������d����������d����������d���������e����������e���������9f*���������@fi��������Gfj��������Qf���������Vf���������[f���������kfk��������rf*����������f����������f*����������fl���������f����������f*����������fm���������f����������f*����������fn���������f����������f*����������fo���������f����������f*����������fp���������f���������g*���������gq��������g���������g*���������gr��������)g���������0g*���������7gs��������Ag���������Hg*���������Ogt��������Yg���������`g*���������ggu��������qg���������xg*���������gv���������g����������g*����������gw���������g����������g*����������gx���������g����������g*����������gy���������g����������g*����������gz���������g����������g*����������g{��������h���������$h���������<h*���������Nh|��������Xh���������`h���������ph}��������zh*����������h����������h~���������h*����������h����������h���������h*����������h����������h*���������it��������i���������Yi���������vi����������i*����������i���������
j*���������j���������j����������j���������|k����������k����������k����������k���������dl���������m����������h����������j��������� H���$,�P�X�����������D�L�p�x���������3��30�38F4d�3lF4�F4� 5�F4� 5� 5�g5$ 5,g5Pg5X�5�g5��5��5��6��5��6�6�hD�6L�hp�hxi��h�i�i�#ji#j0#j8�jd#jl�j��j��j��j��j��j��k$�j,�kP�kX�l��k��l��l�#m��l�#m D E F G�,	0	�8	<	@	D	 H	$L	(�,�0X	4�8�<d	@�D>	HB	LF	PJ	TN	XR	\V	`Z	d^	h�	l�	p�	t�	x�	|�	��	����	��	���|��	�	��	��	��	��	����	��	�'��	��	��	��	��	��
�
���
�
�
�
�
� 
�$
(
60
a���	 �$�(P
,T
0�4\
8n<6@�Dl
Hp
L,P�TJX�
\�
`0	d�
hl�9p<t<x<|<�<�<�<� <�$<��9�,<�0<�4<�8<�<<�@<�D<�H<�L<�P<�T<�X<�\<�`<�d<�h<�l<�p<�t<�x<�|<��<��<��<�L<��<Z:�<�<�<�<h>L>�< 4>$�=(�<,�=0<=4@=8D=<H=@L=DP=HT=LX=P\=T�<X�<\ <`�<d�<h�<l=p�;t�Cx=|=��;�=��;� =�$=�(=�,=�0=�4=�8=�<=�@=�D=�H=�L=�P=�T=�X=�\=��C�d=�h=�l=�p=�t=�x=�|=��=�<� D�tB�(D<�;$<�=<D�=�=�= �=$�=(TD,`@0�=4�=8l@<�=@lDD�=H�=LxDP�=T�=X= 4����$�@���3�P4 5,p5D�5`�6��h� i0j(�j<�jX�k��l.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.rodata.rodata.str1.8.rodata.cst16.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@,�T,�l,��,��,�'�#m"@�p,-�m3�m=�m�8@��P,
S�vb�v�]@��0,
|�x��x��@�0,��z��z��@8�0,�X|�X|��@h�0,2,~0`��@��(,'2��6p� D�� Q0��.�ޅ�ޅ|ޅSޅ'ޅZޅhޅ{ޅ�ޅ�ޅ�� ����@���,*��h-�	����st.o/           1690381920  1000  135   100644  37616     `
ELF>p�@@.-

!# $%&L�O �GtVI9�H��IF�H��tR��H��E1�E1�L�_O�\M9�u��uL�H��I��I��I9�u�H��H)�H����H�<�M��u1��@H9�s��H��DI�QI9�u��uH�H��M�I M��tH9�r�H)�H���fDL�O �GtVI9�H��IF�H��tR��H��E1�E1�L�_M�M9Cu��uM�[H��L�Z�I��I��I9�u�H��H)�H���H�<�H9�r1��@M��t��H��DM9Au��uI�QH��H�P�M�I M��tH9�r�H)�H���@��1�f.�����t<��t8D�J�D�B A��D�I�AB�A��D�A AB�H��9�t�9�������D���u�1��������D����ŝ���t(�r�H���J ��Bщ�H1�Hi“���u��@����1�H9������H��H��H��H��H	�H1��f�AUATUSH��J��H��t%H��I��I��H9uKH�sH9�tH�1�L����u4H��H��[]A\A]�f.�H�pI9�t'I�U1�L����tH�[H�CH��tH;(u���@H�CH��H��H��[]A\A]�ff.�H��tVH��H��H!�H9���H��H��H	�H��H��H	�H��H��H	�H��H��H	�H��H��H	�H��H�� H	�H��H9�s@H��H��H	�H��H��H	�H��H��H	�H��H��H	�H��H��H	�H��H�� H	�H���PH�H�5H�81��ff.��ATUH��SH�GH�x�,���H�}L�$�H��L���L��1�H���H�U H�]H�EH��t$I��H�C�H�
H!�I��H�1H�rH�H�R H��u�[]A\�ff.�L�G H�GI��w"M�HO�@J��L�O H�pH�PH�H�GÐAWI��AVAUATE1�USH���o�o�oO�oW H�\$`H�L$)\$`�o`L�l$P)D$0)d$p�oh )L$@)�$��op0)T$P)�$��ox@H�T$(�W)�$��o@PH�t$ ���)�$��oH`)�$��oPp)�$��o��H�_H��)�$��T$@�H�xH��H��H�H��H�@x1�H)�����H�H��$�H�l$HH�D$8H�D$L�SH��0H��L�s�L�T$H�$�H�$L�T$H�σ�H�|�L�L�XH�H�L�PL�pI�EL�h L�`(I��H;\$u�fod$0H�T$@H�D$XH�@ fol$@A'I�Gfot$PH��AoH��Aw H9�w}�0H�X�H#\$�I�WH�t$H��H�
H�HH�I� H�0H�t$ H�pH�t$(H�ptOI�W(H�@ H�P(H�B I�G(I�GH��[]A\A]A^A_��L������I�G�r����I�G(I�G H�@(H�@ �ff.���ATI���0UH��S��H�`H��H��L� ���C��t*H�{��H�C H�CH��H�C([]A\�H�����H������1��D��H�=���H��H�=�ff.�f���H�=���H��H�=�ff.�f���H�=���H��H�=�ff.�f����GuoATI��U1�SH�tBfDI�D$H��H�8H�H��t�H�_�H��H��u�H��I;l$r�I�d$I�D$ I�D$([]A\�H�gH�G �f���SH���H�{�H��[����H�GH���GuH�WH��H�RH�PH���f.���AW1�AVI��AUATI��USH��H��H�H���RI��Cta1�H�{ u9H��1�[]A\A]A^A_��H�pI9�tH�1�L����tqH��H;k s�L�lmH�CI��L�L;8u����H�CH�sL��L��H��L�@�M!�����H��t�M��t<H�@I�H���[]A\A]A^A_�fDH9k �V���M��tH�CJ�D(I�H���[]A\A]A^A_�f���AW1�AVI��AUATI��USH��H��H�H���RI��Cta1�H�{ u9H��1�[]A\A]A^A_��H�pI9�tH�1�L����tqH��H;k s�L�lmH�CI��L�L;8u����H�CH�sL��L��H��L�@�M!�����H��t�M��t<H�@I�H���[]A\A]A^A_�fDH9k �V���M��tH�CJ�D(I�H���[]A\A]A^A_�f���AWI��1�AVAUATI��USH��H��H�H���RI��Ctq1�H�{ uIL��L��L��H�����H��1�[]A\A]A^A_�fDH�pI9�twH�1�L����tiH��H;k s�L�lmH�CI��L�L;0u����H�CH�sL��L��H��H�h�L!�I�����H��tKL�x�H��[]A\A]A^A_�H9k �N���H�CN�|(H���[]A\A]A^A_�f�H�CH�SH��H��H9�w\�0�H�SH��H�
H�HH�H�{ L�0L�`L�xtFH�S(H�@ H�P(H�B H�C(H�C1��X���f.�H���8���H�CH�h�L!��H�C(H�C H�@(H�@ �ff.���AW1�AVI��AUATI��USH��H��H�H��H�L$�RI��Ct|1�H�{ uTL��H�D$��L��L��H��H���(���H��1�[]A\A]A^A_��H�pI9�twH�1�L����tiH��H;k s�H�TmH�CL�<�L�L;(u���@H�CH�sL��L��H��H�h�L!�I�����H��tKL�pH���[]A\A]A^A_�H9k �C���H�CN�t8H���[]A\A]A^A_�f�L��H�D$��H�SI��H�CH��H��H9�w_�0�H�SH��H�
H�HH�H�{ L�(L�`L�ptIH�S(H�@ H�P(H�B H�C(H�CH��1�[]A\A]A^A_�H���X���H�CH�h�L!��H�C(H�C H�@(H�@ �ff.���AV1�AUI��ATI��USH�H��H���RI��C��H�CH�SH��H��H9�w_�0H�h��H�SL!�H��H�
H�HH�H�{ L�0L�`L�htZH�S(H�@ H�P(H�B H�C(H�C[]A\A]A^�@H���x�H�C�f�L��L��H��H��[]A\A]A^����H�C(H�C H�@(H�@ H�C[]A\A]A^�f.���AVAUATUSH��L�o�0�H��H�����o�L���oc`�ok h �H�EH�����C��H�[ H��tsL�e E1�I���M@�oH�U�oKH�HL!��oS H��P H�
H�HH�L�p(I��I�$H�[ L�` H��t'�0�H��u�H��1��[H��]A\A]A^�f�H�E(H��[]A\A]A^�H�sH��H��H�s�[H��]A\A]A^�H��1�����AW1�AVAUI��ATUH��SH��H�T$H�H�>�RI��E��H�EH��L!�H��H�EL�$�I�$H��u)��H�U1����tL�cH�[H����I�}H�sH9�u�H�CI�$H�C H�S(H���=H�P(H��tH�B H9] �VH9](�<H�L$H�mH��tH�CH�H�CH��I�EA��H��D��[]A\A]A^A_�fDH�D$E1�H��t�H���f�1�H�} M�}u
�ِH��H;] s�L�$[H�EI��L�L;0u�H�pI9�tH�M1�L�����u�H9] v�H�EH�L$L�H��tH�@H�H�EL�H�@I�EH�E A�H�mH��H�E H9��=���H�MH)�H�@H�D[H��H�4�J�<!������H������H�E H�E(����f�H�U(����H�E ������AW1�AVI��AUATI��UH��SH��H�T$H�H�>�RI��A�F��I�FH��L!�H��I�FH��H��t*@H�{H9�tI�4$H9�t6I�1����t+H�[H��u�H�L$1�H��tH�H��[]A\A]A^A_�H�C H�S(H���H�P(H��tH�B I9^ �8I9^(�I�nH�L$H�CI�$H��tH�CH�H�k�H�kH��[]A\A]A^A_�@1�I�~ M�<$u�\���fDH��I;^ �H���H�[I�FH��H�L;(u�H�pI9�tM�H�$1�L��A�H�$��u�I9^ �
���I�FH�L$H�H��tH�@H�I�FH�H�@I�$IV�I�nH�jH�jH�H��[]A\A]A^A_�f�H�����I�F I�F(���f�I�V(�����I�F ������SH�G������H��H��@��L�@ H�XH�K�I#L��I�	I9�u�,@H��H�yI9�u�L�IH�OI�	H��tH�OH�
H�WH�O(H�H�W H����H�J(H��tH�Q H9x ��H9x(��H�h����[�f�H��tH�OH�
H�xH�WH�H�X H�hH�S��H�P H��t�H�xH�RH��H�w���1�H��t���H�[�fDH���[���H�@ H�@(�^���f.�H�H(�K����H�P �1����L���������G��L�_L�G 1�I�K�f�H��L9���H��H�PH91u�H�RI���/DH9qtL�@�oH��O��AL�QM�QH��H��L9�r�H�WH�G H���H	�H�G�AVI��AUE1�ATUH��SH�tR�I�FN�$�I�<$H��u�-DL�gH��H��tH�_H9ou�I�$�H��H��u�I��M9nw�[]A\A]A^��ff.����AW1�AVI��AUATUSH��H��H��8H�H�t$H�L$H�D$(�RI��C��H�k L�d$H����1���H��H;k �rH�TmH�CL�<�L�L;(u�H�pI9�tH�1�L����u�H9k ��H�SL�A�L�bH�BL�d$H�D$(H�t$(H�|$D��H�T$A��A��C��������uE����E1�H��8D��[]A\A]A^A_�@H�CH�sL��H��H�T$H�h�L!�I����I��H����L�`H�@A�L�d$H�D$(L�D$H�t$(H�|$D��H�T$A��L�D$A��E��tkA���s���E���g���H�CH��H�H��t%I9�u�jfDI9��WH��H�BH��u�A��*����L�d$E1�����L�t$H�L$(E��t)M9�tM�pI�H���L�d$E1��9���H�kH�CH�T�H��H9��'H��L!�0H�L$�H�SH�L$H��H�2H�pH�H�{ L�(L�pH�H��H�S(H�@ H�P(H�B H�C(H�C�\���f.�H�CH�sL��H��H�T$H�h�L!�I����I�����fDH�t$H�T$(E���H�CH�LmH��I9�tH�pH�P��fDH�BI�PH�I�@ I�P(H��t`H�P(H��tH�B L;C ��L;C(��H�kL������DH��H�L$��H�CH�L$H�h�L!����fDH��u�H�C H�C(�f�H�C H�kH��H�C H9�����H�{H�LmH)�H��H�@H�4H��H�|���
���L��H��������H�C(H�C H�@(H�@ �o���H�S(�����H�C ���L�d$E1��q���f.���AWI��AVAUATUSH��(H�o H�t$H�T$H�L$�G��1�H��toL�[I�GN�,�L�M��L�pL;t$t=H�(H�p1�1�H�T$L��L�L$A��A�G������������tI�w H��H9�r�@1�H��([]A\A]A^A_��H��t�H�}H;|$�tI�GH�u1�H�T$L�T$H�X�1�H#]A��A��A��t�E���AA���WA����I�GH��H9�u�H�@H9��H��u�H�T$1�1�1�H�\$�Ӹ�G���DI�GI�W J�<(H��H�H��uL�\$L9_�
���H9�r�KH��I��H9�s;I�GJ� H9�u�J�t I9�tI�L��1��I�W ��u�H��H9������fDH���Y���1��H��I;_ �D���I�WH�[H��H;(u�H�pI9�tI�1�L�����u�I�w H9��h����
����M�GH�D$I�oM�I�@I�@I��2���I�GI�WH��H#EH��H��u�eDH�@H��tWH9�u�H�E H�U(H����H�P(H��tH�B I;o ��I;o(��H�L$I�oH�EH�MH�MH��H�������I� ��������A��I�GI�wH��L��L��H�X�H!�I���E�H��A�������H�������H�m �H���Y���I�G I�G(�\���I�W(�S���I�G �@���f���AWAVAUATI��UH��SH��H��L�o �Gt{E1�M��tXO�H�CL��N�4�L�H�L�hH�p1�H�$L��1��C�����"��t��t
H�C I��L9�w�H��1�[]A\A]A^A_�f.�M��t�1�1�I�uI�}L��Ճ�t������H�CH�SH��I#EH��H�H����L9�u��H��H�BH��tlL9�u�H�BI�UM�u H�I�U I�E(H���9H�B(H��tH�P L9k �IL9k(�6H�kL��M���fDM�������H�{ �*����������������DH�C H�kH��H�C L9�����H�{L)�H�@J�t7H��L��H�C L9��Z����������x���M�m �o�����D$H�CL��H��H�sL�@�H�$I!�H�����D�T$H��I���W���A���M���~A�������A���"����2���DE��t�����H������H�C H�C(����H�C(���H�S ���ff.���E1�1����f���I�ȹ����ff.�@��E1�1����f���I�ȹ�o��ff.�@���ᆳ�H�H��vFH����[����H�V�H��L�L��L�H��H��L��L��H��L1�H��H1�L9�uۃ�H�
Hc�H�>���1��WH��(H	��WH�� H	��OH��H	��OH��H	��WH��H	��H	�H1�H����[����H��H��H��
H1�H����[����H��H��H��H1��D1��@1��@1��@1��@1��n�����OH��0�U�����SH���H�ߺŝ�[H���f�����H�>H����[����H��H�f����S�H1��f.���H����[����H�H�y�j��p$H��H�� H��H1�H�H��H1��ff.���H��Y�f�8�H��H����[����H��H1�H��H�9��hF��H1��ff.����H������1��C��D���t;E��t6D�Q�D�I A��E�P�AB�A��E�H EB�H��D9�u%H9�u�1��D���u�1�E�������@A9�������GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignst_table too bigGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx��0�DkX9l
�H��B�B�A �A(�D0r
(D ABBKx(G ABB���(�rB�A�D �gABL$�r�E�B �B(�D0�A8�G�
8A0A(B BBBI,tmF�I�D �I
ABA�����,0�L�D�C �bABA���`E�U|&t�F�D�E �B(�D0�A8�G@_
8C0A(B BBBHr
8F0A(B BBBG_8F0A(B BBBtF�D�E �B(�D0�A8�G@_
8C0A(B BBBHr
8F0A(B BBBG_8F0A(B BBBx��F�G�B �B(�D0�A8�G@p
8C0A(B BBBGr
8A0A(B BBBDW
8F0A(B BBBJ���F�D�E �B(�D0�A8�GP
8C0A(B BBBHm
8F0A(B BBBDW
8F0A(B BBBJp
8C0A(B BBBD\��F�D�E �D(�A0��
(A BBBE]
(A BBBL^(A BBB`�0F�B�B �A(�A0��
(D BBBCH
(A BBBAY
(D BBBAHTF�D�B �E(�A0�D8�DP�
8D0A(B BBBG|�	F�D�E �B(�D0�D8�DPx
8A0A(B BBBAa
8A0A(B BBBE�
8A0A(B BBBJ  xE��
Ja
G@D��E�E �A(�D0�Z(A BBBA�����H�VF�D�E �B(�A0�A8�Jp�
8D0A(B BBBEH�~F�E�B �B(�A0�A8�D`�
8A0A(B BBBHH �F�B�B �B(�D0�D8�GPn
8C0A(B BBBKl�����E�Q�&54(<|"!3#I`${�%��&�����&\>��I\y����	E�9�	�%>=>^�}@�������������r��7 �I�p=�=�K�K�``5s]s}���������@Q�����g�g���+�C�\�	s�	��
��
�����rr$v?vV�k����������XX"d?dX�o��N�N��!��!��!	�!(	"C	"\	."s	."�	A"�	A"�	m#�	m#�	�#�p#
�#%
�#A
�#]
�#w
�#�
4$�
4$�
H$�
H$�$#$%&"CHTdy�	

 !'()�`k�
� ���&�m>K@YPj z`������������	
p
�&"
�,
�	7
�
�A
��L
��Z
�0b
i
�s
{
�	�
�x�
`�
pV�
�~�
P��
�!�
"�
 "�
0"�
P"�#&�#5$$40@$>P$|`.annobin_st.c.annobin_st.c_end.annobin_st.c.hot.annobin_st.c_end.hot.annobin_st.c.unlikely.annobin_st.c_end.unlikely.annobin_st.c.startup.annobin_st.c_end.startup.annobin_st.c.exit.annobin_st.c_end.exit.annobin_get_keys.start.annobin_get_keys.endget_keys.annobin_get_values.start.annobin_get_values.endget_values.annobin_st_locale_insensitive_strcasecmp.start.annobin_st_locale_insensitive_strcasecmp.end.annobin_strcasehash.start.annobin_strcasehash.end.annobin_st_numcmp.start.annobin_st_numcmp.end.annobin_st_numhash.start.annobin_st_numhash.end.annobin_find_entry.isra.0.start.annobin_find_entry.isra.0.endfind_entry.isra.0.annobin_new_size.start.annobin_new_size.endnew_size.annobin_rehash.start.annobin_rehash.endrehash.annobin_add_packed_direct.start.annobin_add_packed_direct.endadd_packed_direct.annobin_st_init_table_with_size.start.annobin_st_init_table_with_size.end.annobin_st_init_table.start.annobin_st_init_table.end.annobin_st_init_numtable.start.annobin_st_init_numtable.end.annobin_st_init_numtable_with_size.start.annobin_st_init_numtable_with_size.end.annobin_st_init_strtable.start.annobin_st_init_strtable.endtype_strhash.annobin_st_init_strtable_with_size.start.annobin_st_init_strtable_with_size.end.annobin_st_init_strcasetable.start.annobin_st_init_strcasetable.endtype_strcasehash.annobin_st_init_strcasetable_with_size.start.annobin_st_init_strcasetable_with_size.end.annobin_st_clear.start.annobin_st_clear.end.annobin_st_free_table.start.annobin_st_free_table.end.annobin_st_memsize.start.annobin_st_memsize.end.annobin_st_lookup.start.annobin_st_lookup.end.annobin_st_get_key.start.annobin_st_get_key.end.annobin_st_insert.start.annobin_st_insert.end.annobin_st_insert2.start.annobin_st_insert2.end.annobin_st_add_direct.start.annobin_st_add_direct.end.annobin_st_copy.start.annobin_st_copy.end.annobin_st_delete.start.annobin_st_delete.end.annobin_st_delete_safe.start.annobin_st_delete_safe.end.annobin_st_shift.start.annobin_st_shift.end.annobin_st_cleanup_safe.start.annobin_st_cleanup_safe.end.annobin_st_update.start.annobin_st_update.end.annobin_st_foreach_check.start.annobin_st_foreach_check.end.annobin_st_foreach.start.annobin_st_foreach.end.annobin_st_keys.start.annobin_st_keys.end.annobin_st_keys_check.start.annobin_st_keys_check.end.annobin_st_values.start.annobin_st_values.end.annobin_st_values_check.start.annobin_st_values_check.end.annobin_st_hash.start.annobin_st_hash.end.annobin_strhash.start.annobin_strhash.end.annobin_st_hash_uint32.start.annobin_st_hash_uint32.end.annobin_st_hash_uint.start.annobin_st_hash_uint.end.annobin_st_hash_end.start.annobin_st_hash_end.end.annobin_st_hash_start.start.annobin_st_hash_start.end.annobin_st_locale_insensitive_strncasecmp.start.annobin_st_locale_insensitive_strncasecmp.end.LC0.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupst_locale_insensitive_strcasecmpst_numcmpst_numhash_GLOBAL_OFFSET_TABLE_rb_eRuntimeErrorrb_raiseruby_xreallocmemsetruby_xmallocst_init_table_with_sizeruby_xcallocst_init_tablest_init_numtablest_hashtype_numst_init_numtable_with_sizest_init_strtablest_init_strtable_with_sizest_init_strcasetablest_init_strcasetable_with_sizest_clearruby_xfreest_free_tablest_memsizest_lookupst_get_keyst_insertst_insert2st_add_directst_copymemcpyst_deletememmovest_delete_safest_shiftst_cleanup_safest_updatest_foreach_checkst_foreachst_keysst_keys_checkst_valuesst_values_checkst_hashstrlenst_hash_uint32st_hash_uintst_hash_endst_hash_startst_locale_insensitive_strncasecmpstrcmp*����������{��������������������������������������&�������������������"����������������������������W���������j����������u�u�u���������u��������%���������y�������������������
����������
���������������������������������������O���������^���������������������������������������������������������������������C�����������������������������\���������� ���������!����������"g��������y#���������G���������\���������o������������������������������������������������������������#��������� z���$,�P�X\���\�\���\���	D�L	p	x�	���>>0>8�d>l������������$�,PX�������=���==KD=LKpKx`�K�`�`�s`s0s8�dsl�������������$�,�P�X��������g���g	g	�D	gL	�p	�x	��	��	��	��	�	
�
�	0
�	8
�
d
�	l
�
�
�
�
��
�
�
��
��
r$�,rPrXv�r�v�v���v����D�L�p�x��������X
�
X0
X8
dd
Xl
d�
d�
��
d�
��
��
N$�,NPNX�!�N��!��!��!��!��!�!"D�!L"p"x."�"�."�."�A"."A"0A"8m#dA"lm#�m#��#�m#��#��#��#$�#,�#P�#X�#��#��#��#�4$��#�4$4$H$D4$LH$pH$x�$�H$��$ v w
 x
 y#<#H#T#`#l#�"|#���p# �(� 4�H`\�p� �@����( x��@�P�`����� �4�dp�����	��
�����X���$�H`�p��$Pp�!�"� "�0"�P"�p#��#�#$,@$@P$.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.rodata.rela.data.rel.ro.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@+|T+}l+~�+�+�'��$"@�i�+-�%3�%=�%�8@`n+
S@8b@8�]@p0+
|:�:��@�0+��;��;��@�0+��=��=��@�0+2�?�? @0��+,�?0'@��+90@.�.@�.@|.@S.@'.@B.@P.@c.@u.@�.@�0@ �P@P�@��8+)�H�,�	`[g���strftime.o/     1690381920  1000  135   100644  26752     `
ELF>�]@@,+

!"#$U�SH��H��H�o�O��E��yD�1�)ǃ��|����$I���4:����)��Ⱥ�$I�������)�)�)���)ȉ��@Hȃ�w�H��au'��H�����{��H��H��[]�f.���u�H�C0foK�Q�H�fofoS )L$H�D$0�D$)$���ɹ)T$ D�HcȉD$H��lH�t$�T$����H�ףp=
ףH��H��H��H��?H�H��H)�H��H���mH��H9�tjH��D$����{���7���f.��C������t���������D�H��H[]���f������F����DH�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9�����l�V��������F�H��H[]���ff.�AW�!�1�AVAUATUH��SH��%H��(H�?�H���D�e!�U&D�m D�}"D�pdA���M#�u$A��D�E%H�}A����A������?��A��A��A��?A��A��@��tDH�H�ED�{D�cD�sD�kD��s�KD�K�S H�{(H�C0H��([]A\A]A^A_�fD�T$D�L$D�D$�t$�L$��T$D�L$H��D�D$�t$�L$�f�AWAVAUATUSH��(H��$`H�L$L�D$L�L$(H�D$ dH�%(H��$1�H����H��H����H�|$��H��H����I���%H���H����L�t$M��t �I9�t�I9�t�I9�uf�H�D$I�H��H�D$�E����L�q�L��M9���H�L$pL�|$8H�L$0�*fD�I��H��H��A�D$���mL9��T<%u��UI��E1�E1�E1�I�����H�
M�g��z��H�=��Hc4�H�>��E��DN�A���uIc�H�DH�D$pL�D$xA��0���H�=E�����H�t$0�H���H�l$H�|$hH�D$h�H)�H��H��H���H9��S@��"1�H��$dH3%(��H��([]A\A]A^A_�M��M��I)�L��H����I�l$���f.�H���H��H9��!����f�H9\$w��t���@L�|$8H;\$�`���H���L)��_���f���$hH�l$D�T$@H�PH)�t$(L�L$8L�D$H�L$ H��H���&���Y^H������I9��QH;\$�����H��I9����L��H��H��H)�H�<+�� H��H��D�T$@I�oE��DD�L�A�������H�l$��$hD�T$@H�PH)�t$(L�L$8L�D$H�L$ �K���A��H�t$0�
L��D�L$PD�\$HD�T$@�D�T$@D�\$HH�
Lc�H�D$pD�L$PL�x���k����	E��DN�H�D$H9�����I��Mc�I)�I�A�I9����J�I�oH�D$@H�D$ H���H�HA��	�9L��H��H�1��A�U�H�{	�0Hc��H�\$@���A�WD�L$XD�\$PD�T$H���������H�ψT$@�H�������M���T$@D�\$PH�
D�T$HD�L$X���E���i���A�WA��M���m���H�D$A��~
A���.H9�����H)�H��H�����%I�oH�����H�5L��D�L$HD�T$@�H�������A�<z���I�A��D�L$HH�
A�WD�T$@����A��tA��A��H�D$�@&�D$@��<��
��D�L$HD�T$@H��H�H�,PH���D�T$@D�L$HH��H���
�I�o�4���H�D$D�@%�<A��?A��<DO�E��DN�A���DE�A��0��H�E���H�t$D��H)�1�H����������H�H��H�l$��$hD�T$@H�PH)�t$(L�L$8L�D$H�L$ �W���H�L$ A���E��D��LN�H���5E��L�DE�A��0�H�E���H�t$1�D��H��H)�����c�����������H�D$D�@$�;A��?A��;DO�E��DN�A���DE�A��0���H����H�l$��$hD�T$@H�PH)�t$(L�L$8L�D$H�L$ �h���H�D$D�@"�A��DD�E��DN�A��DE�A��0�t����H�L$E��DN�A��D�A"DE�A��DD�A��0H�H�HE��<���H�D$�D�@ �nA��A��nDO��E��DN�E���h���H�D$D�@#�A��A��DO�E��DN�A���DE��r���H�D$A��@#�D$@��t�D���A��DO�<A�P�DG��H�D$�@!A���D$@�A��A��A��DO��E��DN����H�D$A��~
A����
H9�����H)�H��H�������
I�oH������A��tA��A��H�D$�@!��&
���<�
��D�L$H��D�T$@H�H��H�H�,P�P���H�5H���7H�D$���D�L$HD�T$@H�81��D�T$@D�L$H�ƒ��<
E��DN�A��DE�H�I��A��0���H�����$h����
H�5H����H�D$1�D�\$HD�T$@H�x1��D�T$@D�\$H��YH�H��A�H��y	H��A�����A���S
A����A����H�D$A���DL�H9������H)�H��Ic�H�V�H9��n���A�M�H��H�=Mc�D�\$HH�|�j�Y�HD�L$@H��H��D�T$PH��?H��
H)�A�� H��H�HD�L��H��1��������D�L$@H�D�\$HE��yH��D�T$PH�T�A�� HE��-H�|�j�Y�HH�H��H��H��H��?H��
H)�Li�A��A��L)�I��u	E���r���L��D�D$HH���������H��L��D�\$@H��?J�,*H��H)�E����H�t$�:L�K1���H�L��L�L$PL)�����6���L�L$PH�L��D�D$HI�H��H��H)�H��H)���D������D�\$@A������H�t$�:H�k1�H�H��H)��������H�H�\I�o���A�WD�L$XD�\$PD�T$H��������H�=�T$@�H�������M���T$@D�\$PH�
D�T$HD�L$X��E��H�t$0H�|$DN�A���D�T$@DE��5��$�E1�D�T$@�H+�$�����?����Ⱥ�$I���D�
��A��A)��#���H�l$0E��H�|$DN�A���D�T$@H��DE����H����D�T$@A������E��H�t$0H�|$DN�A���D�T$@DE����$���$�D�T$@�ҍB��Dƒ�E1�)�����~����:���H�D$����%D�T$HH�81�D�L$@�D�L$@D�T$H�H��D�L$HD�T$@���D�T$@D�L$HA������E����A�WA��M��E1�E1���E�π�p�G��P��H�D$H�-��@#�D$@��<H�EHC�A���wI9��nH�D$H9��p�H)�H��I9��`�I)͸ E��H��DD�L��H�L$@L�A���H�L$@H��H��H��A��H�L$@I�l$�A��H�L$@�*A���L�,�f.�H��I9�����;���t��;����H�l$��$hD�T$@H�PH)�t$(L�L$8L�D$H�L$ �v�H�l$��$hD�T$@H�PH)�t$(L�L$8L�D$H�L$ �B�H�D$H�t$0D�T$PD�L$HH��H�(�D�H�|$0�*�H�L$D�L$HD�T$P�I!�ʈL$@�����a��u	��3��	A�G�������I��D��I�L��H��?��E��N�A��A��DE�A��0�������DH�D$D�@#�A��A��DO����H�D$A��@#�D$@���x���D���A��DO�<A�P�DG��X���H�l$��$hD�T$@H�PH)�t$(L�L$8L�D$H�L$ ��H�D$�D�@&�A��A��DO�A��uE��AO�A��0�ZH�E���JH�t$H)�����H�D$L�D�ƒ��/�I�D��L��H��?��E��N�A��A��DE�A��0�R����_���A��H�D$u
A���+H9��r�H)�H��H���a��	I�oH���f�E�����A�WA��M����E���g�A�WA� M���i�E��A��tA��A��H�D$�@&�D$@��<�.���H��H�H�,P�E���E��A��tA��A��H�D$�H�-�@!��������<�
��������H�H��H�H�,P���A��tA��A����$h����E�ϹH�-���A���uE��AO�H�D$�@&�D$@��D�����DD�����H�D$H9���H)�H��H9���������DH���L�,�f.�H��I9�����;���t��;����E�ϹH�-����H�����	1�I�gfffffffD)�t DH��H��?��I��H��H)�H��9�u�I��H��D��H�L��1��H�\$@�F��D�L$HD�T$@A���-�E��DN�A���uIc�H�DH�5H�D$pH����H�D$���D�T$@H�81��D�T$@H�D$xA��0�T��H�=�X�H�D$H�hH���g�H�|$�]D�L$HD�T$@�&�A�1�A���A�������H�D$A���AM�H9��=�H)�H�ƍAH�H�V�H9������� �1����H��%D�L$HD�T$@�D�L$HD�T$@H�E��I���DN�A���DE�A��0�����H�-�"����������H���1��+D�T$@�D�T$@D�L$HH���s���A�������A��A��E�����L������H�=D�L$HD�T$@�D�L$HD�T$@H��H���H�H���@H�|$(�H�ƹ1�D�T$@�D�T$@�ƒ�������H9����H)�Ic�H��H9����E�Ҹ A�m�H��DD�Hc�H��H�A�����H9����H)�Ic�H��H9��z�E�Ҹ A�m�H��DD�Hc�H��H�A����P�H9��G�H)�Ic�H��H9��4�E�Ҹ A�m�H��DD�Hc�H��H�A������A��
�I������E��DN�A���uIc�H�DH�D$pH�l$xA��0�j�����H�D$A���DL�H9����H)�H��Ic�H�V�H9����A�M���H�t$1���H�H��H)��������a��H�D$A��	�	DL�H9��E�H)�H��Ic�H�V�H9��/�A�M���1��f�H��H��d���|
���y�D�T$PD�L$H�H��H�D$@�H�t$@H�T$A��"H���D�L$HD�T$PH� H�ptH�pH��$��dD�L$HH��D�T$@�D�T$@D�L$HH���F�H��D�\$HD�T$@�D�\$HD�T$@H����H�=D�\$HD�T$@�D�\$HD�T$@H��H���H�=D�T$@�D�T$@H��H��������uK�T-H�T$pH�D$xA��0�y�� ����H�=D�T$@�D�T$@H����H�|�j�Y�HH��H��H��H��?H��H��
H)�Hi�H9��!���H���������H��H��H�*H��H)�H��H��H)�H��H��H9������H�D$A��	�	DL�H9��)�H)�H��A�EH�H�V�H9������H���1��-D�L$HD�T$@�D�L$HD�T$@H������H�|$(1��E���%L�T$PL�L$H�A��L�L$HL�T$PI��~DH�\$PM��D��H�ǹ�5w�1��*��	����M��A��I��L�L$HH�\$PE��tF�H��H�A��u�L�Ǿ*1�L�L$PH���L�T$H�L�L$PL�T$HI��H�H����H�ƹ1��L��L�T$PL�L$H�L�L$HL�T$P�tH�I���q���O�T�L�L$HH�=L�T$pH�D$x�H�t$0�H���H�|$hH�D$h�L�L$HH��H��L���H�\$@�u��H�=L�T$XL�L$PL�D$H�L�T$XL�L$PH�L�D$H�(���E�����E1�E1�I����f���H���D$Pj��H������H���D$PAQA����H���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign%0*d%*d%0*ld%*ld%+*ld%+.*ld?UTC%a %b %e %H:%M:%S %Ydiv%m/%d/%y%H:%M:%Sround%02d%I:%M:%S %p%H:%M%e-%^b-%4YcCxXyYdeHkIlmMSuUVwWy%09ld%Y-%m-%d:AMPMJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberSundayMondayTuesdayWednesdayThursdayFridaySaturdayGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�@A�F�G`�
CAK�
AAEmAAH`B�N�B �B(�A0�D8�L`�
8A0A(B BBBG���B�B�B �B(�A0�A8�G�

8A0A(B BBBA��G�[�A��
�G�T�
�G�T�
�G�T�
�G�TY
�G�T 
�G�TTHEB ItHEB O	 -E!a~"��#��$-GTq���� ��Fx 	9	R�]	v	 �	��)�)O!"#$ "�(-@3I9�?�E]KPU'Z	_diXozui{��o�!�#�<�R�����

%&'�*1E[n������������"-8H]nz0.annobin_strftime.c.annobin_strftime.c_end.annobin_strftime.c.hot.annobin_strftime.c_end.hot.annobin_strftime.c.unlikely.annobin_strftime.c_end.unlikely.annobin_strftime.c.startup.annobin_strftime.c_end.startup.annobin_strftime.c.exit.annobin_strftime.c_end.exit.annobin_iso8601wknum.start.annobin_iso8601wknum.endiso8601wknum.annobin_vtm2tm_noyear.start.annobin_vtm2tm_noyear.endvtm2tm_noyear.annobin_rb_strftime_with_timespec.start.annobin_rb_strftime_with_timespec.endrb_strftime_with_timespecdays_l.12544months_l.12545rb_intern_id_cache.12635rb_intern_id_cache.12607ampm.12546rb_intern_id_cache.12641rb_intern_id_cache.12579rb_intern_id_cache.12677.annobin_rb_strftime.start.annobin_rb_strftime.end.annobin_rb_strftime_timespec.start.annobin_rb_strftime_timespec.end.LC18.LC1.LC10.LC11.LC19.LC21.LC14.LC3.LC0.LC8.LC2.LC4.LC5.LC13.LC17.LC15.LC20.LC16.LC6.LC7.LC9.LC12.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_funcallrb_fix2intrb_num2longstrchrrb_usascii_encodingrb_ascii8bit_encodingrb_locale_encodingrb_str_new_staticrb_str_formatrb_string_value_cstrstrlcpy__errno_locationstrlenmemmovememsetstrtoulruby_snprintfstrspnmemcpyrb_islowerrb_toupperrb_isupperrb_tolowerrb_num2intrb_intern2rb_str_new_cstrrb_str_conv_enc_opts__stack_chk_failrb_strftimerb_strftime_timespec9\��������A]���������^���������_���������`���������a���������b��������Z,��������n���������-���������c���������d���������e���������f��������g��������th���������.��������7i��������_j���������/���������k���������,��������U0��������\l��������qj���������_���������,��������31��������Em��������l,���������|�h��������3	-��������Q	l��������x	2���������	3���������	l��������J
4��������g
5���������
4���������
-��������e�u�\���������6���������"
\���������
7���������
8���������
l���������9���������l��������+9��������6l��������t:��������}_���������,���������\��������
]��������a��j���������n��������1o��������=p��������Y;���������<���������=��������"-��������-|X>�����������?��������Qq��������]r��������p>��������|4���������6���������l���������s��������E\��������f4��������\��������T>���������\���������@���������t����������\��������qj���������j���������j���������9���������l��������b��������#u��������@v��������{f���������^���������A���������t����������@���������t��������F@��������Pt��������]'\��������b\���������\���������\����������������0\��������_4��������nc���������d���������e���������f���������@���������t������������������w�������� +��$,PX������)DL)p)xO�)�O ' ( ) *FMQUY]ae i$m(q,u0y4}8�<�@�D�H�L�P�T�X�\�`�d�h�l�p�t�x�|��������c�����������������������d�k�o�s�w�{��������	�5�9�=�A�EI�	(
~
�f�� x$�(q,u0/4=8+<�@�D�H�L=
P�TXr\�`�d�h�l�p�t�x7|U���y������R���I���������'
�`
��
���
�,�d�P������������ d� Xx0.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@)BT)Cl)D�)E�)F'�O"@hA�)- 3 (= �8@M)
S�#b�#�]@O0)
|�%��%��@HO0)�l'�l'��@xO0)�@)�@)��@�O0)2+��+� @�O�)'0�..��.��.|�.S�.'�.0�.>�.Q�.c�.r�.��. ��.��@`[x)'h0p*[	�;��[�string.o/       1690381920  1000  135   100644  266352    `
ELF>p@@0/

#%"&!' (H��� t0@��u"H�����t�ƒ���t�@@tH�G�H�G ��)�H��ff.���H��� u����H��?H��?���H���H��?H��?���ff.��H��H��H�:H)�H��~H��8H9�v&������t	H��t
H��H��H9�u�H�:�f�L�HI��I��I��L9�s%@��������H����H)�I9�u�L��I���H���n���L�H��L��H��H��L	�H��L!�I��I��L�I��I��L�I��I�� Lу�H)�I9�w��&���ff.���H��� uH��
��>H����H�GH�D�fD��H������tK��u>H��� u~H���t.H����V��uw�~uq�~�uk���u:��@�H��� t(H�~~�H�v�<�tV<�u�~�t\��H���t�H����f�H�~~�H�v���uЀ~uʀ~�u�<�u���f��~�u�����fDH��H�?H������t�	���f�H��H��H�t$�H�t$H��������ff.�@H9�s{AUI��ATUH��SH��H���+fDH��L��H��U H����UX��tL�I9�v+H��L��H���Lc�E���H��1�[]A\A]��H���[]A\A]ø�f.�H�������xH���H�PH�H�5H�81�����%�f�AWAVI��AUI��ATL�f�UH��SH���z��M��x>J�D%M��8��GL��H�U��f��|�H�Du$�DH��H���u�H���[]A\A]A^A_Ð�J�t-L��H�����~)H�L9��	L��H�|��H)���l���@L9��_�������V���L��H�tL��H��������H��u�H�L���������H�7H�������H��H��L��A�V L��D�`D��A�V(����H�L9�����L��H��D��A�V0L��H��H�������H��[��]A\A]A^A_ÀJ�t-L��H����������H�L9������H���[]A\A]A^A_�M��H�{I)��.���H��1�[]A\A]A^A_ÐAWL�<AVI��AUATA��UHc�SH��H��L9�H�IO�A��I���� tJ�T=H�����I�</�H�sH��H��� u`H��L���H��H�M��u
H�������H%�?��H�J�<)�A����H�KL�kL�{ H��[]A\A]A^A_��H�sH��t��DH�wM��uH�����t�ƒ���tH%���H�H�KL��H���J�<(�A����H�L��H��H%�?��H	�H�3H��[]A\A]A^A_��ƒ���t�� H�H��H%�?��H��?���փ���HD�H�����@H��1�H�L$�H�L$�����H��1���q���f�AUATUSH��H���4I��%��I���H�Ÿ)�H�L9���H�EM����H�� M��t!H�}H��ubL��L���H�EH�� H��t%L�mH�}L������H��H��[]A\A]�L��H%�?��H��H	�H�E�� u�H�}�ĐH�}�f.�H%���H
H�E�b���L�m Hc��L��H�EH�E@��uH�����t��H�ƒ��� ��HE�H%�?��H�E����@Hc�1���K���H�H�5H�81���AUATUSH��H����H��I��H��A��H��tl�%�H��H�hL�`H�h H���t+H%�?��H
@H�D��H���H��H��[]A\A]�H�����t̉�H�ƒ��� ��HE�����H��H��1��H���H���H�H�5H�81��ff.����H��� uH����H��H�D?�@H�@H�H�y�����SH��@��tzH�H�H�� H��xFH��t!H�S�H9�}
H�[�3H�D[�@H����H�¸H��H9�|�[�fDH��u3H����H�¸H�y�[�DH���H���y����H�S�H��y���[�ff.����SH������H�3�� u(H��H�{��H�H��1��[��H�D��H�{H�sH���ATUH��SH��H�����tR����{;{t8��H�E(H��{�Ѕ�~�C�S9����H����[]A\�fD�H�{H�sH9���L�d$H��L�����\t\H�sH�{H��L���Hc|$H��L��H{H�s�CH�{���-uH�sHc|$H{H9�r;�CH��[]A\��H�{HcD$H�sH�H9�s�H�CH���f.�H�{H��L�����HcD$HC�C9�vOH�H�:��w��v!H�51��DH�������[]A\É�H�51��f.���K�J���f�AVAUATUSH���0���H�3I��� uRH��H�k��H�H��s[1�]A\A]A^�@H��H��L��H���I��H��t�H9�w*L��[H)�]A\A]A^�H�kH�sH�H��r��fD1�L��H��H�����
u�H��L��H��L���I��H��t�1�L��H��H�����
MD�돐��H���H��� u�����H��H��?H��?���f�H�x��H��H��?H��?������H���H��H������AUATUSH��H��H�=��H���L�-H����¯�DzH��H��H��H��L��H��?H��H)�H��H��H�H�BH)�L�$	�I�EL�-L��� t9�I�}J��L�$L�lI9$u)I�mH��[H��]A\A]���I�} ��DH��H�=N�H��H���I�$H��I�mH��[]A\A]�����H��H�����H�=����ff.��AVI��AUATUS�����������E1�M�f�?DH����I9�}E��tXL��H��tI�FJ�4(H��H���H���I��I�H�� t�I�FI9�|���[ID�H��]A\A]A^�DL��H��tI�FJ�<(H���H������tDI�>�� tI�~�H���B���H�������H�=1�1����������
����H���[L��]L�r�A\1�A]1�H��A^���1����D������f�AWI��AVAUATUL��SH��x�T$H�L$L�D$dH�%(H��$h1�H��� ��H��L�GH�D$@H��L�D$P���D$HLƨ��H�t$X�����t$���A��tAƇ�D$1��D$/�D$(L�t$`L��I����H��H9�u�E1�1�L�d$@H��L������ƒ����������D$�D`��H�GL�GH�D$@�D$HH��I�4L�D$P��H�t$X���:���H�T$<H��L�����^�!����|$HcD$<HD$P�����D$��D$/�D$(�!����D$/1��D$�D$(L��I��fD�H��H9�u�A�����H��uc�L$��u#H�D$H�H��uA�������D$(����H�D$L�(L��M����H�D$H�H��������L�DM��t)L��L��L�D$ �L�D$ H������;D$(�u����L��H����`���1�fDA���tA�<��A�H��H=u�H��u�|$/tH�D$H�H��$hdH3%(ufH��x[]A\A]A^A_ÉT$ ��T$ H��H�D$L�(H��"����T$ ��T$ H�������D$�D$/��D$�D$(�n�������1Ҿ�������1Ҿ���H��1��H�0fH~�H9�tMfH~�H��<������tH��H��u*H���DfH~�H��H��H��H���f.�H������SH��H��H�� H�t$�H�D$H��tLH�8�� u1H�p H�xHc�H9�uIH���H�T$H�T$H�T$H�� [�@H��H�p����H�t$H�ڿ�H�� [��PXH�5H��H�H�81��f���@��u*H�����t!H��ƒ���t�t
H%����H�H���H��H�H�5H�81��SH�����u[�H�H�SH�5H�81��DH9�v_AVI��AUI��ATUH��SH��H��L�d$�@HcD$H�H9�vH��L��L��H��������u�H��H��L)�[]A\A]A^�1��f�����~H�ȃ�H�IH�8�PH�H�5H�81��ff.�f�UH��1�H��SH��H��1�H���H��yH���[]�@�H��H��H���H��H��[��]�ff.�f�ATI��UH��SH�\6H��u:H��u1�[]A��$A\���f�H��H���H��t�[1�]A\��H��H���H��t�H��u
[�]A\�H��H���H��u���ff.�f���UH��SH��H����u+H�����t"�����t]��uH��H��H��[]�f�H�5H��tH��H��H�ߺ[1�]�@�H�=�H��H���H�H�5H�81����SH���H��[H���G����AVAUI��ATUSH���H�hI��H�UH�EH�H9tnI�EHc}��tI��}I��~(�fD��L����L��H���;]|�[L��]A\A]A^��[L��]1�A\A]A^�fDH���P�H��� t8H�UH�KL�2L9�~HH�{H�4L�H���H�I�M�u�U����H�UH����L�2L9�~
H�{H�4��I��M�u�!�����SH��H����tHH�L$H�1��H�|$@��uB��ƅ�y$H���H�5H�81��D�
H��1��H��[������AVI��AUI��ATI��USH��H������M����M9����%0=tdH��L�����xu�Q�H��L��H��L��L���H��H��t1�L��L��H�����tЉ����u�L��H)�[]A\A]A^�fDL��H�fD�S���t�<t�H��I9�r����[1�]A\A]A^�D��AWAVAUATUH��SH��(�D$����L�mA�� �RI��L�eA��L�,$H�$L��A�I�������?M�41�M9���@�H��H�I9�t]L9�v�H�LL���1��+�I��H�E�� ��H�UI9���H����H9$���1�H��H�I9�u��T$����I���*H���uLcd$H�5O�d$H���3L���1�����-H��1��L����&H��1��I��H��(L��[]A\A]A^A_�f�L9e�H�E�>���DH�EL�eH�$����H��t�H�LL���1��+�I���DH�L$H�1��H�|$@��u"���A�DI�D�d$�$������ܐ�L$���@����|$��?H�������H��H��H!�L�|������H�=�H��H�����H�LL���1��+�I���j���H�H�5H�81�����H�W��u	H�����u
1���UH��H��SH��H�����u
H�E��`H��`tH��1�[]�f�H���`H��`t�H��H��������SH����tH���H�����t�H��ƒ���tߩu$��u�H���H��H���H��H�#���[�H�H�5H�81��ff.�@USH��H����tH���f.�H�����t�H����ƒ���t֩uP��u�� t(�@@t!H��H�k�1�H�ߋHH���t�H���0��0u	H%���H�H��[]�H�H�5H�81��f���USH��H���>���H��� u����„�uH��[]�fDH�{��„�t�H����H��� tGH�CH�kH��H��HcP�E��GH�H�؉с�0��t�H���H�H��[]�H��H��?��H��H	�H��� u�H�k뢐1�H����@��AUATUSH��H���j���H���B�H�+I��� ulH��L�c��I�,L��L��H�����H��~ZH)�H��� t'H�kIcUI�<,���SH��H��[]A\A]�DH��H%�?��H��H	�H���L�cH�k�fDH���H��[]A\A]�D1������AUATUSH��H�����H���r�H�;I��� ��H��L�k��H��I�t-M��tL9�vL��L�����H���H��H��[]A\A]�H)�I�tL��H���H��� t5H�kIcT$I�|-���~�1���fDL�kH�k�fDH��H%�?��H��H	�H��ff.���AWAVAUATUSH��H�����H����I��H��� ��H��L�k��H��M�t-M����M9���L��L��L����L��L��H��M�DI��L��L�D$����M��L�D$$H���H��H��[]A\A]A^A_��H)�M��~L)�L��L��H���H��� ujH��H%�?��H��H	�H�IcT$I�|-���~�1��뗐L�kH�kM�t-M���7���L��L��L��H���)���H���a���H)�H��� t�H�k�ff.�@��AWAVAUATUH��SH��(�f���H���>�H��I����H�E�� ��I��H�]%0I��A��I�=��H������x��A�}�7�D$I9���H�D$E1�H�D$� ���A��w�� A���H��L9�sK�t$��t
��ƒ�v�H�T$L��H��L���L��
A�Ɖ�A�UX����HcD$H�L9�r�E��teH��(H��[]A\A]A^A_�DH�]L�e%0I�=�!���E1�I9�v+D��у�A��w�� A��H��I9�w�E��u�H��(�[]A\A]A^A_�fDL��D��M�}0�L��H�މ�A��A��J���L����������D$������AWAVI��AUATUSH��(H�|$���L���i��H��H�����M�.A�� ��I��I�nA��I�E1�L�t$I9�w)�DH�ھD��SX��u~HcD$H�I9�vRL��L��H��H���H�ھ
A�ĉ�SX��t�H��D��L�{0�H��H�ډ�A��HcD$A�H�I9�w�E��t2H�D$H��([]A\A]A^A_�fDH��D��L�{0���H��(�[]A\A]A^A_�@H�D$H�hL�hI�������AWAVAUATUSH��H��(H�<$�R���H���*��H��H����H��� �3H��H�[��L�$��L�t$H��L��H��L���H���ljD$�UX�L$��A����HcD$H�I9�w�fDHcD$H�I9�vRL��L��H��H���H��
A�ʼn�UX��t�H��D��L�}0�H��H���A��HcD$A�H�I9�w�E��tH�$H��([]A\A]A^A_�f�H��(�[]A\A]A^A_�@��H��L�}0�H��H���A��HcD$A�H�I9��E����fDH�$L�`M��t�H�XH��t�I�����f���AWAVAUATUH��SH��(����H�����H��I����H�E�� ��I��H�]%0I��A��I�=��H���\���x��A�}�7�D$I9���H�D$E1�H�D$� ���a��w�� A���H��I9�vK�t$��t
��ƒ�v�H�T$L��H��L���L��A�Ɖ�A�UX����HcD$H�I9�w�E��teH��(H��[]A\A]A^A_�DH�]L�e%0I�=�!���E1�I9�v+D��у�a��w�� A��H��I9�w�E��u�H��(�[]A\A]A^A_�fDL��D��M�}0�L��H�މ�A��A��J���L����������D$������SH����tH���H�����t�H��ƒ���tߩ����u�� t
�@@t>fDH%���H�H�C�H������xtZH�H%���H
 H�H��[�H�{�H�H�CH�C�ƒ���u�H��H��?��H��� t�1��@H��� ��H�����u�H�H%���H
H�H��[�H�H�5H�81��DAWAVI��AUI��ATUSH��H��HcAL�:�����QI��9�tO����L9�sHI�o�M��u�ffDH�E�H��tWH��H��L��L���H�H�I9�w�I����I��H�L9�L��M�}HF�H��[]A\A]A^A_�@L���I��������H������j���M����L9���fDJ�;I9����;��I����H�SH��H��H9�w�fD�}xQH��H9�u�H��H��H9�r�H��H9�vH���������H�
t�H��H9�r�vfDH��H9�sg�}y�H��H)�I)�L��L��H��I���Hc�H�I9�v	M���B���M��H��M�}IE������H9�sH��H��H9�r��I�E���H���M�}L������UH�H��SH��H��H�T$E��t6H��tH9�sH��H��H)�[]��H��H��H��[H)�]��H�T$����@AUI��ATI��UH�,7SH��H��H������9A�|$tAH9�r�
�H�H�H9���L��H��H������H���0[]A\A]�L�����u�I���-H�CH��H9�r��H��H9��r�;y�I���������@L��H��H�����~�H�H�H9�tjH��H)�H��~HH�CH��H9�s�;x�H��H9�u�H��H��H9�r�@H��H9�vL�(t�H���H9�v�;x�H��H9�u�H��� []A\A]�f.�I��~*H�CH��H9�r�sH��H9�tg�;y��H��DH9�r�!f�H��H9�t�;y��H��H9�w!H���[]A\A]��H��H9�t߀;y�����DH��H��H9�s�H���������H�t�H��w���H��H9�w��q���H��H��H9�s�H���������H�t�q����H��g���H��H9�w��\���f�UH��SH��H��H�6H��������H���H��� uQ�������uP�E%0=t}= u$H�������x��H�H%���H
 H�H��[]�H�{����t�H������xu�H���~��H�����u�H�H%���H
H��fDH���H��H�H��[]�H������0����H���(��H�����H��\����� ��H��H�SH����H�4
H��~TH�JH��H9�s��:����H��H9�u�H��H��H9�s"H���������H�9t�R�H�9uLH��H9�w�f�H9�s�:����H��H9�u�H%���H
H�����f�H�SH�KH�4
�e���H���f.���AT�USH��H�����u	H�����uIL�d$H�--DH�=L��H��H��H�\$�H�D$H��4t�H��[]A\�f.�H��Ѓ���t�H��� t���fD��ATI��UH��SH��H���H�kH�L�cH��H�k H
 @H�H�H�H�CH��[]A\�fD��H��8dH�%(H�D$(1�H�H�|$H��H�$ �@H�H�t$H�t$ H�D$�H�T$(dH3%(uH��8����AWI��AVAUATUH��SH���90��H��I��I�����tZA�|$�I��L9�r���H�I�M9���L��L��L���������0E�I)�A�E�U�A�} t>M��I)�I��~rH�EH��H9�r�;H��H9�t/�}y� A�E�fDM��I)�H��L��[]A\A]A^A_�L��H��H9�sH���������H���H��fDI9�w�1�H��I9�t'�}y���I)�M��A�E ����r���fDL����D$������M��I)�I���CH�EH��H9�s�}H��y�l@�;xcH��H9�u�L��H��H9�s(H���������H�t�8f�H��-H��H9�w�I9�w�@H��I9����;y�fDL��L��H���H�������������H�H�I9�����L��H)�H��~FH�CH��H9�s��;x�H��H9�u�L��H��H9�r�@H��H9�vH�t�H���I9�w���fDH��I9�������;y��Y����H��V���H��H9�w��Q���H����������0ED$H)�I��A�E��A�} ����A�E����H������f���H���%0��UH��H��S�Ӄ�H����������x~H�����t�0�0�-@H������H�u�� t:H�uH�}H������Hc�H�UH���H	�H�UH��[]�fD��H��H�}�������k���ff.����ATI��SH��H�H������tk��uO1�I�4$�� t!I�t$I�|$�H��H1�[A\��H��I�|$���H��H1�[A\�@L���=t�Hc��@����ff.�@��H���H��H�D�f�AW1�AVAUATUSH��xH�H�|$(�D$bf�D$f�D$h�� u1H����H�T$8H�|$8u3H�D$(H��x[]A\A]A^A_�f�H�D$(H�@H�D$8H�|$8t�H�\$(H������H�I��H��H�$�� �H��H�D$ H�D$ HD$8H�D$@�H�D$I��H�D$bL�t$iH�D$H�D$T����H�D$H�D$XDH�L$H�t$ L��L���I��H������u4H�|$t,H�D$�8����A�}��������H�t$L��L���Hc�H��~�M�dL��L��L��A�W L����ʼn�A�WX����L�����A�WX�����D$�H��L��L����L��H��L��������@��t���@H��L��H�k�L���I�D-L�$$�D$H�D$0�H��L��L���A���I��H��@H�D$0H�݀8�'H����H��H���u�L��H��L��L��1���|$�x����|$�H��L����H�|$X�L��H+D$ H�\$@�H�D$HL�l$�D$T�/����L�$$L��L��L������{���L��L��L��A�W ���f����H�L���ωL$PA�W(���N���H�H9��C����L$PL��L���A�W0L��L��L���������L��H�4$L��A�W L���t$��A�WX��������D$����(H�4$L��L�����~"Hc�I9�tzL��1�H)�L�����DH9����������~���H��I�t-L��L������u#H��u�H�ڿL�1���F���fDH��H�}H)���@H��L���-���DL��L��L��A�W L���t$��A�WX������������H�D$�8�����A�}�����������D$�,���H�l$XH���L��H��H��������1��I���f�H�D$(H�@H�D$ ����D�|$T�L�t$��L�l$bL�d$iL��M��I��H�L$H�t$ L��L���I��H����H�t$L��L���Hc�H��H��~�H��L��L���L��H��L���H�����o��uH��L��L���I�tL��L���9�tL��H��L���
��A���H��L��L���H�\$@L��H+D$ H�D$H�0���DH�\$(H���H�Hc@�� ��H�L$(��uH������t�у���t	��@��H�\$(H�l$@�Hl$8H�{H�4(�H�k H�CH��� ��H�D$(H�XH�D$HL�t$@H�T$8L�$H)�K�<4L���H�t$bL��L���H�L$(H��� �|H��H%�?��H��H	�H�A�GH�<+�����H�|$(����fDH��L��L����p���D�H�l$@Hl$8)�Hc�H9�4H�D$(H�X�B����H�D$(H�h�DL������q������H�<(��H��H�D$(H��� uxH��H�p��H��H���H��H�D$(H�HH�X�t)H�H�L$(H%�?��H�H�i ���Hc�1������H�L$(H�H������tɉ�H�ƒ��� ��HE��H�D$(H�XH�p�H�
��
H�5H�=��SH���=0t[�H���f��H�5H�PH�H�81��f.���H����=�HE�H���ff.���H����=0�HE�H���ff.�AWAVAUATUSH��(H�H�t$�� �H��L�o��H��tOH�I��M�dH�H9D$���H�|$I��H�/�� t,H�oH�OH��t/H�$H9���H��(H��[]A\A]A^A_�H��H�O��H��u�IcF���M9�w��@L9���IcFI��L��L��L��L��H)��L��L��H��H��A�V����IcFH��H)�L9�r�H��L��L���1�H��L��H��H�����
HD��L�oH�_����H�$HcPD�t)�H9�u'H����H�4)H��H�$H��PH�$����H�t$L��H�$�H�|$I���H�$=0����E:t�����M��I)�H��~H��L��H����������L��L��L��L���I9��[H�D$H�D$H�D$�w���f�A��
�e���fDL���H��Hc@��LA�D$�<
t<
�8���I�\$�L)��+���DI�\$�L9�vA�|$�
uI�\$��L)������L��L��L��H��H)��H��L��H��H��U��HcELE�L��H)�L9�s`L��L)����DM9������A�|$�
t���f�A�|$�
t I��A�|$�
u�I�\$�L9��o�����DI��M9�w��DL��L��H���1�L��H��H��I��M)��M)�L��
ID��0���H)��(���f.���SH���s����xt
1�[�f�H�����u�H���[=�����ff.�@��SH���H��[�p�g������H�H��H���H�8���f���S��H��H���H�H��H���H��H�[�ff.�f���H�SH��H���H�8�A���H��H���H��[�ff.����H��t?USH��H��H��H��H��KH�8���H��H��H���H��H��[]�fD���SH��tH���H��[H����
��ff.�f���S��H��H���H�H��H���H��H�[�ff.�f���S��H��H���H��[Ð��USH��H��t%�~H��u!H���H��H��H��H��[]��g��H�H�5H�81��ff.�@��H�H��H��1�H�8�%��D��H�H��H���H�8���f���H�H��H���H�8����f���UH��SH��H��H���H��H�މ�H�H�8H��[]���ff.���H����u H�����tH��у����H��sH���f.���H������H����u H�����tH��у����H��sH���f.���H������AWAVAUATUSH��H����uH�����tH��ƒ���t��tH��H��[]A\A]A^A_�f�H���H�H��� ���Ѓ�������@��L�c L�kI�$�� �]I��I�D$I��I)�A��L�sL��L)�L)�I�����t"�΃���tL��H�΃���H	���M��H��I9l$��H��%M)��L��H���BI��H��LhLpA��H���H��%�I��H��H�A��u$H�����t�ƒ���t�� H�Ef.�H%�?��H��H�EH��� �GH�CH�EH�CH� tH�CH�EH�C H�E H�%@H	�H�EH�H�k H%����H�M��u
H������I�ƒ���t4��@H��,�H��H�s�H�ǃ�萿��I��H��H�A��H���ƃ�����H���H�EH�H%�����0H	�H�EM��ujH�����ta�ƒ�����H��ʃ���t��H	�H�E�ƒ���t/H��H���H�}H�U������������H����v����H���m����H�������@H������@����M+l$M�|$�����H���}���H��΃����Z����g���H��H�����H������H�ƒ�`H��`�����H�U��`H��`�����H��H���H��m���fDH��H1���l���H������tH��H������t9��I���L�����L���H�����H�߉L$��L$��H�
��H�5H�=�ff.���AUATI��USH��H���uHH�H��I��H��%`H=`tW�H�H�� H�I�$I�EH�EH��1�[]A\A]�@H�������I�$H���[]A\A]�@�c���H�3�� ��H��H�{��H���H��u�H������w����у����i���H�р�H�xH�t`H��H�ʁ��G���H��H�D$�H�D$H��-���@I�$4H���[]A\A]��H�sH�{�j���H�����ATUH��SH�H��H�с� ��H��I��H����H����A������H�M��tt% I��H��tOH�EH�uH�PH�{M��tH�{�H�E�� �,H����H�H��H��?��H	�H�H��[]A\ÐH��H�u��H����H����������ƃ����q���H%���H�H�UH�с� �^���f�H�~I����A�����5���H���H��M��u!H�����tH��ƒ���t�� H�DH�E�� twH�EH�CH�EH�E tH�EH�CH�k @��u	H�����uVM������H���������H��ƒ����������@H���@H�E�����H������H��H�����u�H���`H��`u�H�E��`H��`t�H��H����r���UH��SH��H�����H�uH������t/H���H�H�UH%�����0H	�H�H��H��[]�@H�������@��SH����%H���H��H���{����u H�����tH��ʃ����H��s[�D��u�H�����t�H��փ���tށ�H	�H�[����S��%H��H�H�8�H��[H����AUATUH��SH��H��H��� ��H��%`H����H=`��L�e L����)I��H�A��uH�����t��H�ƃ�H�� ��HE�H%�?��H�SH�H�EH�E tH�EH�CL�c H��u
I������uM��tHH�uH�������LH���H�H�UH%�����0H	�H�H��H��[]A\A]�DH�����t�H��ƒ���t��@H�H�H�u�Ѓ����H��r�@���z���H������m���������_�����H	�H�3�J���f.�I���������I�$�ƃ���������������H�
��H�5H�=�f�%`H�VH=`�b���H��H������H�u������H����������H��Ѓ����%�������H���������L��H������x���H���`H��`�h���I�$��`H��`�W���L��H����G���ff.����USH��H���H�H�:H9�uH��H��[]�D�%�H��H��H���H���H��H��H��[]�ff.���UH���%SH��H�H�8�H��H��H����H�E%HH%���H�H��H��[]�f���AUATI��UH��SH��H���H��D�h�H��L��H��[D��]H��A\A]�ݵ��ff.�f���AWAVAUI��ATUSH��@����H�H���FI�]H�ف� H���?H����H����L��H���1�L��Hc@H�T��D$H�D$�H��H��� �8L�}H��tuI�M�� �rH��I�u��I��I��L��L���I��?I�I�M9�|�K�<7L��L��M��M9�~�H��K�<7L��L)��H�E�� ��H��H%�?��H��H	�H�EI�<�|$��4@��u*H�����t!H�U�Ѓ������H����L��H�����H��H��[]A\A]A^A_��H��������H�H��H��ulH����H9������H�H�5H�81��@L�}H������H�]�D���f.�H���H���2���I�]�X����I�]H9��D���땐M�uI�u���A���2���I������%���I�E����������%H	�H�U����fDH�T$1�����H�H�5H�81�����USH��H��H��� u[H��H�w��H���H��H��H���:��@��u"H�����tH�U�Ѓ���-�H��s"H��H��[]��@H�WH�w�fD��u�H�����t�H�������t�%H	�H�U����H���H���H��H���ff.�@��AWAVAUI��ATUSH��H�I���M�EI9�H�D$�D$A�� ��I��I�mA��N�dA�I9�vgL�l$M��@�]L�e���v�i��#�8�M9�v!�U��$@�ǀ�@@��@�u��{u�I�L��L9�r�L�l$A�~�"I�~�I�lI��L��1�L���M�EI��A�� �0I�]M�EI�I�GI� tI�GL�T(�"H�hI9��v��L�c��"�H��\�?��#����
���
���	�#���R�����������o�����\eH��L��f�U���f���\t*��"t%�����t*I��L������fD�C�<w�I��L�����D��y�|$u=I��L�����f�I�mM�E����I��I�]A�������L��L��H�����~�L��L��H��A�V ��tf�I����u��k�I��Hc�L��.���D�E\L��H���U�L9�������"H�]f�EA�~��I�NL��H�1�H)�H����I��I�EL��L��%I	�I�H%���H
I�H��HL��[]A\A]A^A_�H�EM9�v)�S��$@�ƀ�@��@�u��{uH�U�E\H��H���E#L��H���=�����\nH��L��f�E��!����\rH��f�]�L���	���A�\tH��L��fD�]�����L��L�T$�L�T$������������A�\fH��L��fD�M����f�L��L��������������\aH��L��f�M�����\vH��L��f�}��i����\bH��L��f�u��Q�����L�T$ ��L�D$�L$�T$(�L�M�L$L���L�D$L�T$ uHL���E\L)�H�D$L;t$tEH�t$L��L��1�L�T$ H��L��L�D$�L�T$ L�D$�����T$(L��UL�����L��L��H��L�T$8L�L$0�L$(L�D$ �L�D$ �L$(L���L�L$0L�T$8���D$�q���L��L�T$0H��L��L�L$(A�V L�L$(H�t$H���1�Hc\$L��L�L$�L�L$L�L���L�L$L�D$ L�T$0I�,�
���ff.�@U1�1�H��SH���H��H��H�����u!H�����tH��Ѓ����H��s
H��H��[]�@��u�H�����t�H�E������t�%H	�H���fDAVAUI��ATI��UH��SH��� �SH��L�w��L9��M���M����K�T%H��L)�H9�LO�M�M����H����+PHc�L9�}K�D%H9���L��L��H���H��H�uH�������$H���H��� tLH�{�„�uL�UH%�����0����H�H�U��H	�H�H��[]A\A]A^�fD���„�t�H���t����x��H�H%���H
 H��fDI�������H��[]A\A]A^�fDE1�E1����DL�wH�_���H���H��H����%H���H��H���E�H��LhL�`����DH
H�����f�H����������H��訥��H������.���H�H%���H
H��������UH��SH��(�����G����{H���������H��H���H��t�؃���t��t
�����tsH�M�� u\H����E1�H�T$H�t$H��H�L$�H����H��tH�T$H�t$H���H���H��([]ÐH�����u�H�M�� t�H�M��H�H�޺H���
���H��t�H��� uO����HD�H��([]�f�H�^��t?H�H�6@��tkH�H��H�����H��([]�fDH�x�HD�H��([]�H��H�t$�H�t$H��뭐���W���H���H���M����H���H��닺��@��U�%SH��H��H�H�8�H�����H��HLߨuH�����tH��ƒ���t�� H�EH�] H�{��H�E�H��H��[]�f���H���1�1����ff.���SH��H���H�H� uH��[�fDH�@[�f���H�H�H��u�@H��������SH��H��H���u<H�����t3�ƒ���t)� u2�� t�@@ufDH�{�H��[Ð�� u�H��[�DH�=H�t$1�H�\$�H��� tɉƒ���u��@��H����u,H�����tH��у���t��`@H�� t�fD1��DSH�_ �Hc@H�[�ff.�f���H�
H���@��H9��cAVAUATUH��SH��H��譡��I��H�EA��A��0����H�������H�3A��A��A�������NI��A���~�� t��@@��f�A���@���\I��IcUA�� �H�ǹH��)у�Hc�H9��A����H����H�3H�EI��A�� M����H��H�u��H�H�{M��tH�{�H�E�� �cH����H�H��H��?��H	�H�L��H��Mc��H�H%���I	�L�#[]A\A]A^�f���H�{�H�3H�CH�CH�EA��A��A�����L�����I��IcUA�� ����H�})�Hc�H9���H��� A��HE�H�EH��?��H�3H�E ��H�CH�E�� ��H��L�u ��H�C@����H�������H�EL�s �ƒ���t	��@��H�E�ƒ���tvH%���H�EH�E�H�e�?�����DH�E����HUH�u�a���H�EH�CH�E�� �Y���H�EL�u H�C@���\���L�s H�E% H��t�H�E�DH���H�����������ƒ��������%H	�A��H�3H�EA���n���f.�A��u	I�����u/���������H��@H�3��@�� I���y���L��H���H�3��u�H���`H��`u�I���`H��`t�L��H���H�3�H�H�5H�81����UH��SH����u	H�����uuH�51�1�H����uFH�����t>H��у���u1H��u"H�����tH��΃���t��H	�H�H��[]�H��H��[]�f.������u�H���ϐ��UH��SH����%H���H��H��H����H��H��[]�f���H��� �`H��������_AWAVAUATUH��SH�����H�UH�$�� �@H�U1�H���I��H�EH�� ��I��H�]I��A��N�<I�6H���� ��I��I����0A��O�dH���I��I��A��A��Lc�E�������H��L$�;����L$�x���� ��H�$�x�F�D$ �(f��D$Lc�H��M)�L��L�L���I9���H�$L��H�����Ā;�IL$�L$빐H�����������H�������@H�$H��L���H��Lc�M)�L��L�L���I9�w�I�6H�EA� H��H�� �� fDH��ucH����H�UH��H��H%�?��H	�H��I��KfD��M�fMf��0H�������H�}A������H�]L�}I��/���H��t[H�EI�FH�E%H	�I�H�uH��������L���I�H%���I	�L��M�.H��[]A\A]A^A_��H������H��H�ƒ��+����Lc�I9�v�H���C�I��A�$I9�u�I�6H�EH��H�� �� ����DH������Y���f�I�6H�ELcl$H��H�� �� ���H�<$���������D$����ff.�@��SH�H���� ��H��H�����„���%0=t+H���c����xtH���5���H��H���H��[�DH���X���H��� t@H�CH�SH�T�H9�v�fD��2H��H��@�p��JH9�r�H��[�f�H��H�C��H�T��fDH��„��Q���H�����H��[�ff.���S�H��H������H��[�fD��S�H���H��H�����H��[�f.���S�H��H�����H��[�fD��S�H���H��H���Ӻ��H��[�f.���S�H��H��蛷��H��[�fD��S�H���H��H���s���H��[�f.���S�H��H�����H��[�fD��S�H���H��H���û��H��[�f.���UH���%SH��H�H�8�H��H��H����H��H��[]����AWAVAUATI��UH��SH���B9BtPI�փ�t`E1�L9��\@H��L��L��I���H�H�I9�w�H��L��[]A\A]A^A_�f.�Hc�I)�J�D!�H�H��I����H�����u�L9���I���������E1�}��@L��H)�H��~lH�EH��H��H9�r�f.��;xiH��H9�u�L��H��H9�r�@H��H9�vL�8t�H��I9�w3f.�I��,����I9�v�H���H��I9�v׀;y�H��H)�I�L��L��H��I���Hc�H�I9������}�6���H����f�E1�������AWAVAUATI��USH��H����B9B��I��I�σ���E1�H9�voE1��f.�H�A� I��H�L9�s0L��L��H������A�0IcEH�I9�IB�I��L9�r�A���tH��L��[]A\A]A^A_�f�A����Hc�I)�J�D!�H�H��I����H������(I9��0E1��;��L��H)�H����H�CH��H��H9�w�fD�}xQH��H9�u�L��H��H9�r�H��H9�vH���������H�t�H��L9�r�H��I9�v�}y�H��H)�I�L��L��H�����~6A�H�H�\�� A�I��L9�����;�=���H����H�]�0��DI9�vH��H��I9�w��A���uA�I����f�I9��(���E1��t���A���uA�E1��e���E1��]����AWAVAUATUH��SH��H���%0=�~I���"����xtlM����H�E�� ��I��L�mI��A��M�Á�0�\$ufH�L$L��L��L���H��HcD$��t$H�UH���H	�H�E�H�]�� tH�]H��H��[]A\A]A^A_ÐH�������A�D$A9D$td�� t|����1�M9����L��L��L��H���H�I�M9�w��f�L�mL�uM��,���H������I�����Hc�M)�J�D1�H�H��H���U�����I9��A�D$�l����L������]���������I���������1�M9���f.�A�}��L��L)�H����I�EL��H��L9�w��}xMH��H9�u�L��H��H9�r�H��H9�vL�8t�H��I9�w�MDH��I9��;�}y�H��L)�H�L��L��H��H���Lc�I�M9��S����;���fDM9���L���f.�L���1�����M9�v�I���������1�A�}��L��L)�H����I�EL��H��L9�w��}xIH��H9�u�L��H��H9�r�H��H9�vL�8t�H��I9�w�`�H��I9�vO�}y�H��L)�H�L��L��H��H���Lc�I�M9��W����O���f�M9�vL���fDL����H��-���L��L)�H��:1�M9�����f�A�E%�=���I����H�M9�u����I�UL��1�H��H��L9�v%@A�E%�=���I����H�L9�u�I��H9�s�H�DI�EI��H��H��H��H	�H��H!�H��H��H�H��H��H�H��H�� Hƒ�H�L9�w��-���ff.�@��H��1����H�@H�xH�DH����H��H���@��H���H��H��������AWI��AVA��AUATUH��SH��H��(�%0=��H�|$�:���L�T$�x��L��H���H��I���L�T$=0��E���LL��L��L�T$���L�T$E1�I��L��H��L�T$D�D$�|���L�T$D�D$I��H����I)�M9���M�*A�� ��I��M�zA��K�/H�D$H��tE����I�I��M����L�3A�� �xI��H�CA��H�D$L�t$I��� �FH����H)��Bf.�M�,H�L$L��L��L���I9��@H��L)�H)�H����H�I��H�t$H�|$M��H��L���I��H��y�H��(L��[]A\A]A^A_�fDM�zI�BL�H�D$����L��H��L�T$�H��I���=0tVL�T$A�M�*A�� u_I��A��E���m���L�;A�� u2I��M��A��H���x���L��o���DI������L���@L�K�H����M�j�f.�I�Z����H�CH�D$H�CH�D$���f�I����E1��=����H�t$H��L��L��L�T$L�L$裴��L�T$L�L$H�����������tA��1��@AUATA�̹UH��H��SH��H��H������I��E��tlH��xxH���H��� uxH����L��H�����u<H�����t4H��ʃ���~X��u"H�����tH��փ���t��H	�H�H��L��[]A\A]�����@H�S�f.��H��r��AWAVAUA��ATI��USH��(�H�|$%0=���P����x��H�|$�H�(H�D$�� ��H�XH�hH�H������I�������E���<H9��JE1�H�D$H�$�DH�tL���HcD$H�H9�v0H�$L��H��H�����E��u�H�|�HcD$H�H9�w�H�D$H�D$H�D$E��uM���DL�d$D��L��訕��I��H��(L��[]A\A]A^A_�H��H�X��H�� ���DE��t3H�|$L������H���I��H9��"���H�D$H�D$H�D$뜐���������H���H�|$1�1�L�V���H���I���a���fD1�H�=�H9������H�D$H�D$H�D$����D��1�����D�����f���1�����D��USH��H����tH���fDH�����t�H��ƒ���tܩu@��u�� t&�@@tH��H�k�1�H�ߋHH�����H�H%���H�H��[]�H�H�5H�81��ff.�AWAVAUI��ATI��UH��SH��(��@�D$H�E�� ��H��H�U��I�����L9�wH�L��H)�I9�LF�H���M����H�UH�ց� ��H�] L�EH�MH��������L)�H9��lN�<)L9���}%H��������?H9�~�`H9��WH�I9��H���&@��upH�����tg�Ѓ���t]��@tXH�
��H�5H�=�f�H�UH�E����H�ѻL�E+\$H��Hcۃ��8����Hct$H�}�H�L$H��H�] H�L$H�EH�E�� ��L�EK�0I���I�<L��LE�L�D$L���H�EL�D$�� uAL��H%�?��H��H	�H�EK�<8�|$�wH��(H��[]A\A]A^A_�D1���@L�}��f��+D$H�H9�|XL�E�p����L��I���H�HI�H���H��������f.�HcT$1���x����Hc|$�H�L$H��L�EH�L$I��A�� tgL�EH�uL��L��H�L$L�D$�L�D$@��H�L$H�EH�EL�EuH�����t��H�ƒ��� ��HE�H%�?��H�] H�E���I��H�uA���H�H�5H�81��ff.�@��AUATI��UH��SH��@����H�H��L��A��ts�A��H���H�UH��% ueH����H��H��H9�bH9�~]H�H��HH�H��tH�mD�lH��L��[]A\A]��H����f.��A���fDH�UH��H��H9�~�H�H��H�5H�81��fDH���H���4�����SH���H������H��[�fD��ATUH��SH����HH�H�� u,H��H����H������u	H�����uH���H�s��f.��ǃ���t۩����u�H��t)�@@t"H��H�����H�H%���H�[]A\�fDH��t�Lc�L�$.H��������L)�H)�H9�~aM�H��uI���H%���H�[]A\�H�{�L���L�c H�CH�H%���H�[]A\�H�H�5H�81��H�H�5H�81��H�H�5H�81��fDAUI���ATA��UH��SH��H���S��H9�}NHc��H� t-H�[H�<+�A����H��H��[]A\A]�f.�H����f.�@��t
H���f�H�����t�H��ƒ���t�����u�� t��@@t�I�(��~%�8H�Hu-A�T$�H�D��H���y�uH9�u�H��L��H��[]A\A]�H��L�k�1�H�ߋHL�����������Ic�1���!���H�H�5H�81�����S��xH��uH�����u[�H�H�SH�5H�81����H��uH�����uSH��H���H�[�@�����u��ff.�f���AWAVAUATUSH��HL�t$ H�|$(L��H�t$ �H�t$ H�|$(�I��H�D$(H��� �dH��H��H�D$H�D$ ��H�(�� �aH��H��H�D$��H�+A�O1�H�D$H��H��L$H�8�k���I��L�`H� tL�`H�t$H��L���H�t$I�<H���H�|$L�|$��H�T$ H�D$(L��H�H%I	E�L����H�T$(I�EH�H%�����0������ t9I�EH�D$(H�D$8H�D$(L�t$8H�D$ H��HL��[]A\A]A^A_�f.�H�T$ H��H�� H���0Hc�H	���HD��fDH�HH�XH�D$ H�L$H�(�� �����H�pH�hH�t$���DH�T$ H���0H	��I���f�HcT$1������ff.�@��SH��H����H�t$urH�����tiH��ƒ���t\�����uLH9\$tmH�|$�H��ƒ���t.�uX��u"�� t�@@tH�t$H���1��H��[�H���H�{�H�CH�C��DH��H��[�H�H�5H�81��ff.�@��SH��H����H��H��[��1�H�L$H����u�H�t$H�����f�USH��H��H�|$H�|$�H��H�D$�=0t^H�|$=t��|��H9�ueH�D$H��[]�f��|���{H��uH�����t�H�MH�H�SH�5H�81��H�H�T$H�5H�81��H�H���AWAVAUI��ATA�USH��H��h�|$,dH�%(H��$X1��H�D$8H�D$@%0=tH��E1��{���xA�ċt$,���I���D$,E1�D�x�H�D$HH�D$H�D$@H�D$H�D$8H�D$H�D$PH�D$ �	fDI��K�D�H�|$H�D$H�H�t$HH���H�|$HH��E��t#�%0=t�d{��E1�H�|$H�xA��1�L�D$E��H�L$H�t$ ��I���Ո��I�FM9�u�H���D���H��� �@H��L�k��M�t�:1Ƀ}��M��E����H�D$HA�����H�D$H�D$PH�D$ M9���H�\$L��E��A���"�D9���A��H��I��M9�s]E��tA��ƒ�v�H�T$H��L��L���A��D9��VI9�tD��D�T$H��H��U0D�T$HcD$HE��H�I�M9�r�I��H�\$H����@A�����H��� �LH�SM��I)�H��H����L9�t+H%�?��I��I	�H��L��fDL�kM��u?��H��$XdH3%(�nH��h[]A\A]A^A_�f.�L�KM��t�1Ƀ}O�t
�����H��M�����������E���n���M9�����������|$,�@A���I��M9������I��A�E���9�u߅�~�΀|4Pu��ЋD$,��~6A�����H�L$@H�T$8D��D�T$H�t$ 蟌��D�T$���l���HcD$H����M��L+CL9C���L�CH�����H���x��H���d����L$,�����D��|P���������D��|P�����1��-���f�Hc�1�L����&����f���ATI��U��H��S�L���H��H�����H��[]A\���AWAVAUATI��UH��SH��hdH�%(H��$X1�H�H�D$8H�D$@�� �$��������H�D$HE1�D�w�H�D$H�D$8L�l$@L��H�D$H�D$PH�D$�f�H��I��H�|$H�D$H�H�t$HH���1�H�L$��H�t$H�|$H��I��M��I���Ʉ��H�SI9�u�H��L���5���1�A��L�mA�� �L�eL�mM��D$$E�A��A��M9���H�l$(I��L����+����|P��L9�tA�$I��H��L9�sl��t�E�ƒ�v�H�T$L��L��H���A��=��-H�L$@H�T$8�ljD$H�t$����D�L$�����D$$HcD$HH�L9�r�H�l$(H����@A�$���#H�E�� ��H�UH%�?��I)�I��L	�H%���Mc��T$$I	�H��L�u��u�H��$XdH3%(��H��h[]A\A]A^A_�f�H�zt�H�z�����@I��L�eA��M��x���@L9�t
L��L��D��A�W0HcD$H� I�A��DD���������|P�������fD�\$$�y����L+eL�e����L�������������Hc�1�L������������ff.����ATI��U��H��S�L���H��H�����H��[]A\�AWAVAUATUS�H���H�H�|$0H�$�$H��$�%0H��$��L$=t�6t��1ۃx��L��$�L���H��$��H�D$0H��� ������H��$�H�
�� ��H�z�„���L�t$0H��$�%0�$L���H��$�L��I��H�D$@�H��I9�tH��$�H��$��H��H��$�H��� �H��H�zH��H��$���H����H��$�����D$lH��$�H��� ��H�QH��H��$���D�\$lH�HDŽ$�H��$�DŽ$�HDŽ$�DŽ$�E����L��$�L��$�L���H��I9�u�H�D$L��$�H��L���z��A��A�����A���wwBDŽ�������ѐH�L$0H�ytH�y�U���f��H���[]A\A]A^A_�f�����„��?���H�T$0L������H�|$t D��H�|$�H�t6��D���@�H�D$��L��$�@H��L����y�����u�D��$�A�}�tE�eI��M9�u�$L�|$0��� L��E��$苌��M�A�� ��I��M�D�T$A��K�H�D$(�E�D$xE����M��Hc\$x�J�<3H�\$p�L;|$(I��H�D$ ��H��$�H�l$8H��L�|$M��M���D$h�����D$LH�D$XD�d$|�F@�������������A!�;\$h�E�� D$H�L$(�$H9L$�oH�\$@H�t$(H�T$XH�|$H���H�t$8�D$H9������Lc�Hc�$�HD$�D$�<$A��=��_���H�|$H��t=�t$H�t6�H���L�|$l��uH�Ǩ���Ã���*���f�1�H�L$@H9L$8�D$h�������|$�D$P��A!�H�D$ L)�I�H�D$`L��L9�|+�M��H��J�t=�L9�}�I��H�D$`L�H�D$ H�D$8H�t$ �|$H��P0�\$P��tH�t$ H�|$L�������DD$L�D$LE�� D$H�L$(Ld$ �$H9L$�����H�\$ M��H�l$8M��L)�H�D$0H�H�D$�� �"H�D$ �|$x���H�L$0L�iH�H�Y����H�L$0H%�?��H�L�q �D$L���d���Hc$=0tH�L$0H�H��H�$H���H	�H�H�\$0H��H���H���*���H�D$0D�L$L�xL�pK�7H�D$(�E�D$xE�������}tH�|$�������D$LL;|$(����� E1�D�D$l�4$H�|$(�+DA���A���u��G�I��I9��(A�H�Ћ������t�E��t�E�'E����f.�Lc�$�Ic��J���H�t$8����\$hLc�\$�D$P�D$L���H�QH�AH��$��E���H�BH�zH��H�4H��$���H��$������H��$�H�����^����Hc�$�H�$�H;�$������H��$��D$l���H��$�H��$�������H��H9�u�L��$�L��$�H�D$�H��L���t��A��A���txH��L���t��A�ǃ��uD��$�A���v(H�|$t@D��D��H�T?H�|$H�t6��@H��D��F��������E���H�D$�E1��p���H�������-�����H�ƒ��� ��HE������������H�D$0H�x�����D�D$l�\$|E���������D�L$L�4$���H�\$(f�H��L)��H*��YHcD$xH�D$p�L,�J�<0�I��I9���H��$��D$LH�L$XL�|$H�l$ H�l$pD�d$hI��@H�\$@H�t$(H�T$XH�|$H���H�t$ �D$H9������Lc��D$=��a��������9H�t$ ����\$�D$8Lc��D$LL��L)�I�H�D$PL��I9�,�M��H��J�t5�I9�~�L�d$PI��I�H�\$L9�t7H�D$ L��|$H��P0�T$8��tL��L��H������D$8DD$L�D$L�$��u�|$� F��$Hc�$�M�HD$H�L$H;L$(����L��H�l$ M��L)�H�D$0H�H�D$�� ���|$xA�����H�T$p1�L�������I��1��D$L븐1�H�L$@H9L$ ���D$8����H�|$u�L$l��t؋\$h���Lc�$��j����t$H�|$H�t6�H��tɋt$l��u�H�ǨtB����L���1��D$L����H�T$p1�H���� ���H�D$0H�x��%�������
���ff.������B�f���1��5�D��ATI��UH��S�L��H��H��H����H��[]A\�ff.�@��ATI��UH��S�L��H��1�H��H�����H��[]A\�f���AWAVAUATUSH��X�|$dH�%(H��$H1�H�D$(H�D$0����H�L�l$8A��H��L��H�t$H�D$8�H�t$8H���H��A���hH�|$8H��� �H������%L�d$@H�L$(I�ٺL�D$0L��� u��H�E�� ��H��L�}H�¸��I�,��E1��{��L9���H�D$$E1�H�D$���|@A��I��I9�sTE��t	A���v�H�T$H��H��L���=��:H�L$0H�T$(L����z����HcD$$A��I�I9�r�Ic�H�DH��$HdH3%(�9H��X[]A\A]A^A_�f�H����H�����������{����H���A�ą���L�l$8I�E ��I��M�uH��L��L���Sp����H���=0�oH�T$$L��H��L���H�U��� �`H������%���H�MH�H9�vH��@8q�uA��H9�u�Ic�H�D������|@��������fDL�}�M������H�mH�������L�E1��{�(���H��E1����A������L�\$H�D$(L�|$0I��L�d$@H�|$8H��M���L��L�\$H�D$�r���D$L�\$��M�sI�D�H�D$DI�L��I��H�D$8�H�t$8H���H�L$M��1�H�|$8I��L��H���br��L9t$u��6�������H�|$8����M�m�S���H�M�H������H�UH�������H������|$����ff.��H����w>u-H�H�D$H��uH���f�H�|$�H�D$H���@H�H�H��ú1��ff.�f���AUI��ATA��H��USH��H����~��H��� uIH����H��H��~!L��D���_���H��tH��H��辟��H9�)�H��[]A\A]�f�H�k�f.�H��� uhH��H��?��H��H	�H��� uSH�kH��H��HcP�E��CH�H�؉с�0��t�H���H�H��[]A\A]��H�CH�k�fD1�H����@AW1�AVA��AUATUSH��H��XH�l$HH�T$H�L$@I��H��|$$�H���b��H�\$@H�D$�@�D$8���H��|$$�H�D$A��L�-H�t$H�|$���H���vH9��mH)�E1�A��ltA��r�oI��I��?I�I�M��L)�H�D$0H�D$H�D$(H��ǁ�0�|$<H���4�� �H�D$H�@H�D$H��������L��H�I��H��H��H�I��H�H��H�H��H9��:H��H�T$(H��HT$0H)�H9��H�H+t$H9��H�D$H�|$L�4��L$8L��1�H���e��I��H�HH� tH�HH���;H��H��L��M)��H��H�M9�~�M��~L�|$(H��L��L���H��L�H�D$H�0H�t$(�� ��H�pL�|$H��L���I�H���L��H��L��I��L)�I9�~�H��~H�\$0L��L��H��I���|$8A���I��� �I�FI)�H��I��H%�?��L��H	�I�H�D$H�%H	�H�T$HI�H��tH�T$HH���H	�I�H�t$L����|$$���D$<Hc�=0tI�H%���H	�I�H��XL��[]A\A]A^A_�H����H�D$����L��M�t-D�D$L��H�H�L$L��I��讈��D�D$L��L��H�D$(H��H�L$H�I��茈��H�D$0H�D$H��� �{����@M+~M�~���H�D$H�p�a���f�H���H�t$HH�|$�H�D$H�D$HH��� �[H�D$HL�hH�D$HH��� H�D$H�TH�(H����H�|$HH�t$�{��H�|$H�D$I�ċ%0=t�^���x�����D$H��t	M���.���H�H�5H�81��@H���H�������|$<t(1ҁ|$< �Z���H�D$HH�%0=��H�D$HH�%0�D$<�����A�uL��H��I���|����A�uH��L���H��L����DH�|$�I�����fDI��1����fDL�l$HI�����f.�H�h����HcT$81�L������� �v���H�H�5H�81��f.����c�R���f����r�B���f����l�2���f������uAW�G�I��AVL�rAUL�l�ATUH��SH��L�d$�~DH��H����H�|$L�M��A�� ��L��H����H9�|;M����H��L����H�M��u|L��H����H��H�H��H���H9�t|I��M9���I�L��H�D$�H�t$H���H�MI��A�� �V���H�u�W���DH�W�k����H�_H����H�uH�M�_���H�t$H��� u3H��H����H������\���H���[]A\A]A^A_�@H�VH�v��fDH��1�[]A\A]A^A_�1��ff.��������AV�G�I��AUL�jATL�d�USH��H��H�l$�K�H��H�t$��H��H��� uiH��H��H�ƒ�H9�|H��ucL�����tdI��M9�ttI�H��H�D$�H�t$H���H�H�ǁ� t�H�t$H�KH��� t�H�VH9�|�H�vH��t�H�{���u�H���[]A\A]A^��H��1�[]A\A]A^�1��ff.���SH��H��H�|$H�t$�H�t$1�1�H�������H����HD�H��[�ff.����SH��H��H�|$H�t$�H����Z��H�|$��Z��H�t$H�H�� �|H�������u|H�{H� tH�{H�H��HD�H��t;H�v�>tO�~tI�H��tWH���H�T$H�H��H	H��[�H����f.�H�~�����H�H�5H�81��H�=�ff.�@��AWAVAUATUSH��H��HH�|$ H�|$(H�t$(�H�t$(H���H����I��H��� �jH�t$ H�|$(L�vH�nH�L��� �kI��H�_%0I��A��I�=�dH�|$ �X���x�KI9���L9���H�D$8H�D$H�D$<H�D$�HA���A���D$�9D$��D�|$8HcD$<Ic�H�I�L9��@I9��7H�T$L��H��L���H�T$L��L��H�߉D$�D�L$A��E��x��y�L��H��L���L��L��H�߉D$8�LcL$8H��L��Hc�A�ljD$<A9�D�L$IN��D�L$����E9��4Ic��F���@H�|$(H��L�sH��H���L��� �����H�_L�g%0I�=�������0��tD�W���x������3@I9�v/A�>@:;t��;A���A9���I��H��L9�w�H�D$ H��� ugH��H�L$(��H��H��� ufH����H���H9�t	H�����H��H[]A\A]A^A_�@x�H��H�[]A\A]A^A_�f.�H�D$ H�L$(H�PH��� t�H�I�@|��@r��@H�|$(H����H��H�[]A\A]A^A_�ff.����@��t@��u@H�����t7�����u-USH��H��H���H��H���H��H��[H��]�����f.���H���H� u
H��H��ÐH�@H������H��A���I���R��Hc�L�Hc�I��I)�A�� ucL��H����I�L9�}A��H��u!I������tD�؃���t
A����1�L��H���W��f.�A9�|{H���fDH�w��I�L9�|�H��u<I������t3D�߃���tA��@@tA9�}���D�߃���uED��D)�Hc�H)�I�@ A9�}�I�x�
fDI�xH�����r���1�H���f�A��@t�H�
�H�5H�=�H�H�5H�81����AWAVAUATUSH���H�(I��� uSH��L�hH�����D�xI��A��s1�H��L���H��uCA�|-��H��L��[]A\A]A^A_�H��L�hH�h�D�xI��A��#M��u�H�H�5H�81��fDIc�M�D-H�D$L�I9�r)L��H��DH���x�u6D��)�څ��H����H��D��H��L��[L��]A\A]A^A_����L��H��L��L�$�L�$H�H�H�D$H�I9�s��fDL���I�$�� uH��M�l$��A�D��M�l$I�D$��H�H�5H�81��ff.����AUA��ATUSH��H��H��� u4H��L�g��H��H���H��D��H��L��H��[]A\A]���L�gH�o��fD��H�
H���@ATA��USH����u)H�����t �����tv��uH��[H��]A\�fDH���H��H��tWE��uH��[]A\�f.�H���=0u�1�H���H�5H��H�H�81��@H����H���뚐��AWAVAUATUSH��H��H��(H�H�D$�� ��H��L�{��H�$�E1�H���������H��I���e����H�T$H�T$��u.��DH�SI9��@H����L��H9$�,M��H�T$�H��L�����H��x:H�t$H���e��H��H��t$L�l$�H��� t�L9{��H�C�f�H��y3H��(H��[]A\A]A^A_�f�H�CL�{H�$������H��H��L�������I��H�D$H�$�-DH�4$H����d��H��H��t-L�l$L��L���M��H�T$�H��L���;��H��y�H��yL���N���f��H��H��L���
����H�H�5H�81��@��u	H�����uSH���H��t[Ë����u�H���H�H��H�5H�81�����AUA��ATUSH������L�%H�H��H�M������uH�����t���������tH���H����H���H��H��H��D��L���H��H��uH��H��[]A\A]�����t�H��H��[]A\A]�D�H�=�I��H��R���H���}�����H��H�D$�H�D$�Y������D��H���@��H��H�T$H�T$��t��H���@��ATA�UH��S�H��%0=t�M��E1�xA��H���M��H�3�� u#H��H�{��H�[E��H��H��]A\�{v��H�{H�sH���ff.���AWAVAUATUSH��H���%0=��H���M���xtwH��xrL�}L�mA�� uuH��A��0M�t��L��I�ċ@A9D$tdA�� ts����1�M9����L��L��L��H���H�I�M9�w�H��H��[]A\A]A^A_�f�L�m�f.�Hc�H�D�H�H��H����fD�I9��
A�D$�u���L������n���A��A�����I���������1�M9����A�}��L��L)�H����I�EL��H��L9�w��}xMH��H9�u�L��H��H9�r�H��H9�vL�8t�H��I9�w�MDH��I9��;�}y�H��L)�H�L��L��H��H���Lc�I�M9��S������fDM9���L���f.�L���1����M9�v�I���������1�A�}��L��L)�H����I�EL��H��L9�w��}xIH��H9�u�L��H��H9�r�H��H9�vL�8t�H��I9�w�`�H��I9�vO�}y�H��L)�H�L��L��H��H���Lc�I�M9��W�������f�M9�vL���fDL����H����H��81�M9�������A�E%�=���I����H�M9�u��n���I�UL��1�H��H��I9�s%@A�E%�=���I����H�L9�u�I��H9�s�H�DI�EI��H��H��H��H	�H��H!�H��H��H�H��H��H�H��H�� Hƒ�H�L9�w��/����AWAVAUATI��UH��SH��H��(�H��I���=0�FL�}D��%0=�{H���I���x�eL��H��E1�觵��I��L��H��虵��I9���L��L��L)�H)�H9�LL�L��M���H�E�� �DH�}M���@H��L�d$N�'��L�<E����M��tM9�MG�L�3L��� ��I��A��L��M����L�}A�� ��I��L�eA��K�<H�$H����H���M)�I�P�D$�fDL)�H��H����t$L���I��H���H�$H��L��L���I9�u�L��H��L���L��L)�u�H��H���H��([]A\A]A^A_�L�}A�� uI��A�A�����L�}A��}����H�}M��uGH��� t/H�SH�s�����H��(��[]H��A\A]A^A_��H��H�s����L�}L�d$N�'I�E���}���H�T$L��L���n��I���e����H��(H�����[]A\A]A^A_�f�L�s�c����L�eH�EL�H�$H���~���H�[�y���ff.�@��AVI��AUA��H��ATUSH��H���oF��H��H��I������H��L�D$L��H��H�1�D������H�4$H���H����H������������������H�3A���%0=tH����E��E1�H�3�xA���� �9H��H�{��H�L��H����n��H�<$H�޹H���H��H���H��xU@H�@H���H��H�D[]A\A]A^�H���H��H����H�$H��H������H��y�H���[]A\A]A^�DH�D$�twH�H�4$H���H��x-H9�HO�����f�H���H��[]A\A]A^�H�y�H��u�H�����t�H������������p����H����fDH�{H�sH�����H�<$�H�5H��H�H�81��ff.����AT1�UH��H�S1�H��H��L�D$����0H�4$@����H������������������1�H��蔰��H9����EA�%0=tH��E1��C���xA��H�4$H���H�u�� �/H��H�}��H�E��H��H���l��H�<$1�H��H���H��H���H���uHH���[]A\�H���H��H����H�$1�H��H��貴��H��H���H���t�H�@H�xrH��H�D[]A\�@H�\$��tnH�H�������1�H��耯��H������H�$��b���H������V���H������G������8����H���H��[]A\��H���H���H�}H�uH�����H�<$�H�5H��H�H�81��@��ATI��UH��SH�� H�|$��+HHc�H9���H�|$J�T%H��� uvH����H9���H�GJ�4 H���H��H�D$H�D$H�D$H�t$H���m����u!H�����tH��Ѓ���L�H��sAH�� H��[]A\�DH;WtZH�G�@H�|$H� �x���H�G�s���DH�D$�u�H�����t�H�������t�%H	�H��D�H���H��L`H;h�>���H�h�5������AW1�AVAUATUSH��H�H��hH�L$HL�D$P�����D$7�D$0H�$H���@��H�|$HH�D$ H��uH�H�8H�|$HH����1��}��H�D$H�������I��H��� �H�CH�D$H�CH�D$HcD$0�D$E1�1�H�D$(DH�|$H1�L��H���I��H�����L�pM9���I�FI�vH�H9��H�|$���|$�ML;d$��I���D$�@H�|$P@��uo��D$0�D$0��~o�|$0�D$7H�$����H��� ��H�{�����71��I�����H��H�K��H�L$H�D$����D$0�D$0���H�D$P�D$7H�$�U���H�D$HH��� �8H��H����H�����8 ���L�+I��A�� ��I��H�CH��A��H�D$I��=��L;l$��H�D$XL�|$(L�d$1�H�\$8A�H�\$ I��H�D$�>f��L��H+T$����H�D$PH��tHcL$0H;$��H�T$E1�M9�vBL��L��H��L���HcT$X��I�E��u��L��H+L$A�ƅ��H�L$M9�w�L�|$(H�\$8H�D$PH�H�ց� �1�������t>H���IH���FH�SH9��IH��H)�H���H��L���H�D$PH��u�|$7I�_�H��hL��[]A\A]A^A_��L��H��H��H)��L��H���I�FH�(A�~A�+�VfDH)�H���H��L���IcFI��L9�~-I�FJ�4�H���t�I�FJ��H9�u�H��誔�����H�D$PH��tH�$H�$H9L$(����I���D$�i����H���_����H��������H��H��H��� uB���������L���I��� u�I�GH������I�O H�Q�H��H��� t�H�x����H�D$H�t$H�T$ J�< H���D$H�I����H�T$H�|$8H��H�L$H)��H�|$(H���H�|$PH�L$thH�$H��A��p���f�H�{������H�D$H�t$H�T$ H�<(H��H��H��L��Hc��L��H�������H��A��
���H�CL�kH��I�H�D$�=�w���L;l$��H�D$1�E1�L�4$H��H�\$H�
I��H��L�<$L���2�����H�D$PH��tHcT$0L9���L��1�M9�t$I��A�D$�M���I)��u���uiL��M9�u�H��L�<$H�\$H�D$P���H�D$P����L$0��H���#H����H9����������������@L���~����H�|$H��H)��H�<$H���H�|$PH�
��I��L����6���H����9��H�|$HH���;u��H�|$HH�H��H�Ɓ� �����„����}��H����H�yH�qH�H�D$XH��H����� u&H�T$HH��� ��H����HcT$XH9��m����I��H��� ��H�KH��I��H�L$A��I�H�D$HL�0A�� ��H��I��H�D$A��H���_t��H�t$HH���HcL$0H�l$L�|$H�\$ I��H�L$(H��L9�sGL��H�|$M��H��H)�L���H��H��x&L�<+L��H��L��L���I9���H��I9�w�H��L�|$H�\$ H�D$PH+l$���H����H9������H���#���H�����L������H�SH9��������H����f���H�����L��H���H�D$P�����H�D$H�y���H��H�yH�ƃ�H��J��������X���H�|$ H��H��H+t$�H�|$H���H�D$PM�.L�H������H�$H�$H9L$(�����H��L�|$H�\$ ���H�CL�cH�D$I��0���H�HH�@H�L$I���A���L�|$(H�\$8�V���H�t$X�H�\$X�I�����H�D$P1��.���H��������H�L$HH�H�Ɓ� �D���H��L�<$H�\$���H�B�k���H�x�n���H�@����ff.�f���AUI��ATUSH��H��(H�7�� �5H����I��A��u
I�������L���H��H���IL��H���H��H��H�����H����H��H���I��L��1�H���H�H�l$H�$�� tMH�SH�uL)�� uPH����H)�H��L��H��H�D$�H��([]A\A]��H��H�u��L)�� t�H�u�@A�E����� ���L��H��L���I��H��x-�1�H���H���3���fDL�g�����H������H��H�$����H��H�\$H�D$�H��([]A\A]�L���H�5H��H�H�81��ff.�@��ATUSH��H��1�H�� ��H�ŨuH�������1�1�H��H������I��H����L��1�H���H�H�l$H�$�� tKH�SH�uL)�� uNH����H)�H��L��H��H�D$�H�� []A\��H��H�u��L)�� t�H�u�@������N���1�1�H��H���I��H��x4H��H���G��H��M���6���H��� uD����������H��H�$�{���H��H�D$�n���H��H�D$�H�� []A\�H�}���f�AWAVAUATA��USH��8H�|$H�|$�H�(H�D$�� �H��L�h��H���I�������E����H�D$H�%0=��= ��I�D-1�H�D$H��P@H�D$H�D$(H�D$E��H�D$HE$H�$H�$H��8[]A\A]A^A_�DH�<$H���L�H9�~�H�t$I�|L���H�|$H��Lc�L���E��u�H������E����H�|$L���ʞ��H���H�$����f�L�hH�h���I�D-1�H�D$H��'�"���f.�H�<$H���L�H9�����H�t$I�|L���H�|$H��Lc�L���E��u�H����@�H���H�|$1�1�L���H���H�$���f�H�=1�E1���J���f.���1�����D�������f�AWA��AVAUATUH��S��H��HH�T$(H�T$����H�H�H�D$0�����E���sH�|$0��E1�H�|$(�H�H�D$(�� �)H�HH�@H�D$ H�$H�I��H�|$0�H�t$0L�6A�� �cI��A��H�H�|$(H;3���I��M���5H�D$0H�H� �HH�H�D$H��H9��w�E��tK�H�|$0H�D$�1���H�\$H�t$(H���H�\$H�D$H��H[]A\A]A^A_�f.��������H���H�|$(E1�H���H���H�D$�f.�H��H����H�$L�$H�T$ ����1�H�=�H�|$0����H�|$(��Y����H�L$0H�1���/�����D$H�A�H��A�}�]L��H���L��H�D$0�H�|$0�1�H���L�0H�D$0A�� ��H�HL�pH��H�,$D�|$I��L9�sJL��M��H��L��H)�L��H���H���}H�\L��H��L��H���H9���H��L9�r�L��D�|$H)�L9��GE��H�D$HDD$H�D$�<���f.�L�v����H��I��H��A���K���@H�H�D$H��H9��/��������L$L��uaH��H�|$(H��H+4$H)���T$��tNH�|$H���H����f�L��L��H��A�U��t�H��L��L���H�H�L9�r��DH���H�T$(H��� u3H��H9$uH����H9D$ t�H�H�5H�81��H�$H9Bu�H�B���D�|$H�|$(H��H��H+4$�E��t2H�|$H���H�D$(H�D$8H�D$(������I���U���H�����fDL��������������ff.���1��E���D����2���f���AWAVAUATI��U��SH��H��H�1���@�ƃ�����9��������D$H�D$I�<$�����I����QH������DH��ƒ����3�������1�H��L������I��H���QD�+�L��A��0H�P��uI�����tM�7D�������H�JL�!H�JL�1����H�|$��H���mH�|$8L��H���H��H��H�D$8�H��H���\H���H��H���H�D$8H��ʁ�T$�T$A�U�����/w:�ʁ�0��0�6A�� ��E1���f.�M��M)�� �yH��H��H�D$��I��H��� �:H����I��M9��oJ�,"L)�L�L�KM9�t#L��K�4 K�<'L�L$L�L�L)��L�L$H�t$K�<!L���H��� �H��H%�?��H��H	�H��� ��H�CH��H��HcP�E���0H��T$Mc�H%���H	�I	�H��L�+H��H[]A\A]A^A_�DH����I�|$H�|$8�H�D$H����H�D$81�H�%�D$�O���f.�H��H�[]A\A]A^A_�@L�SM9�?K�,"L)�L�L�K����@H�HL�xH�L$���fDH�kH�C����H��L�D$ L�T$�L�T$L�D$ HcpH��� �D�ƒ���t	��@��L��H�{�L�D$ L)�L�T$L�L�H��H�k L�D$ H�CL�T$H��� �G��������H��1��I��H��� �_H��H�K��H�L$ H�D$���
L���H���H�D$8H��� ��H�SH9T$ ��H��H����H9T$���ƒ����7������.���H�t$8H���H��H�������H���'��L�;H��A�� ��I��H�KA��H��H��L��H�L$��P��H�L$=�dL��J�<1H��L)��P��=�GH�|$8�$'��H���+���@H�L$ H9K��H�S�0���L��L��H��L)��H�|$H���H��H�D$8�H�D$8����H�CH�D$ H�CH�D$����I����������A�����LD|$�r����H�|$8��'���f�E1�����L��L)�)�L�H�L�H9��
���H�<.��L�L�T$I��L�D$ A�� ��I��H�sA��L��L��L�D$(L�T$ L�L$�L�L$H�k L�T$ L�D$(H�CH�L�K��H�ƒ��� ��HE�H%�?��H��^���A���(����A��b���DH�KL�{����1�H�������A�� u/I��A��M�H�|$����@������A�����M�w��f�L�KH�s��������H�H�5H�81��H�H�5H�81��H�|$8��$��H�UH�5H�HH�H�81��H�
��H�5H�=�ff.���ATI��U��H��S�L���H��H���+���H��[]A\���UH��SH���N$��H�]�� u5H��H�u��H�H��H����:��H��~&H��H��H��1�[H)�]�H�uH�]��fDH��H��[]�f���ATUH��SH��� u]H��L�gH�Ӄ�H����#��I�4M��t.L9�v)H��L���^6��H��~H)�H��H��H��[]A\�@[H��]A\�@L�gH�_�fD��AWAVAUATI��USH���V#��I�$H���� ��H��I�l$��H��L�|��I9�A��E1�A�u%H��H��L��H�L$�5��H�L$H�H��I��A��L��H��L���9��H�� E��tH��L��[]A\A]A^A_�DH��L�H��L��[L��]H)�A\A]A^A_�fDI�l$I�\$�W������SH���3���H��tH��H���^��H��1�[H���@H��[����SH���,��H��1�[H���D��AWAVAUATI��USH��8H�H�H�|$H�t$�� �rH����I����!��H�|$I��H�L�o�� tL�oH���:M���HD؁�0�����!���x��H�D$O�L=H�|$H���%tH��� �H�WH9���H����H�%0= �VIcFA;Fu|H�T$H��I�lI9���H��I)�L��L9�HN��)f�H�l$L9�~H����H�+L9�~L��H)�xdL�H�D$I�$H�D$(H�D$H��8H��[]A\A]A^A_�@L��H�T$L��L��L�L$��G��L�L$H��I9��G1�H�|$~�D1��@L�����L�H�l$�e���1��fDH��IcNH�H9�HO�H��� ��H����H9�|0�f�L��L��L��L���I��H���{���H�D$H�P�H�T$H9��M���_���L���-f�L��H��L��L��L�L$H���L�L$H��H���-���H���L��H)����DH�wH��H�VHI�H���U����L���8���H�l$H9��~���1����H�������@H��E1�L��L��H���lH��H���K���@L��L�L$���HD$H�D$�����H��I�lL�L$����H�|$���fDL�L$�L�L$I9������H�T$L��L�����H�|$H���1���L�L$H�T$(H��H�\$(L�����H)�H�����@��ATUSH�� H�$H��H�|$�H���BH�|$I����H�$+HHc�H9���H�|$I�4H��� u\H��H�O��H�H9�tYL���H�t$H�èuH�������H�D$H�D$H�D$H����I��H�� H��[]A\�fDH�OH�GH�H9�u�I)��H��H����%H���H��H���
h��H�t$H��L`H�$H�C��H�|$�U���fDH��Ѓ���~S@���X���H������K���H��������:���%H	�H��*���H�� �H��[]A\���H�������ff.�@���1����UH��SH��(�����G�����H���tFH�H�޺H���H��tH��� ��H�x�„�t�H��([]�f���u3H�����t*��������u�H��H���/���D1�H�����E1�H�T$H��H�t$H��H�D$�H��t|H��t�H�T$H�t$H����o����H�H�^�uH�����t
�����t{��tFH��t[H�H��H��H���H��([]��������	���f�H���H������H��H�t$�H�t$H��H��u�H���H����H��H��H���.�����D1�1�H��H���Ɍ��H��������H�����������UH��S��H��H���H��H���H��[]���fD��@��u&H�����tH��ƒ���t�u
H
H�H���PH�H�5H�81����ATI��UH��SH���H��H�[L��H��]A\����AVAUATUH��SH���D�`��tH����H�����t�H��ƒ���tک����u�%`H=`twMc�H��N�t-��I9�zH��� u8H��H%�?��H��H	�H��� u$H�{H��A�� []A\A]A^��H�kH�{��fD[L��]1�A\A]A^�H�H�5H�81��H��H��H�=1��H�H�5H�81��f���AWAVAUATUSH��H���&H��@��u	H�����uH���H��ƒ���t��	��u�I��H��I����� ��E1�L�'�@@L�gA��H���D�pH��� uNI9�t.Mc�I�/H��WH��H%�?��H�|+H��H	�H��A��_H��H��[]A\A]A^A_�f�Mc�I�4/H��~cE����I9�t�H��D��L��H��L)��1��H�CH�<(H�k�A��~�L��1���L�'I��A�A���8���f.���H�K����t	H%���H�I9�L��L�CHO�H��~H��L��H�L$�H�L$I��I�<(�A����H�H��H��?��H	�H�+E������H������H�C H9�/H)�H��HN�H9�I9�����H�C����DH�{��H�k H�C��DL��1�H�L$�H�L$�b���H�H�5H�81��H�H�5H�81��ff.�@��AWAVAUATUSH��XH�|$ H���I��I��A��M��H���M9���A�|$��I9�� H�D$ H��� ��H�D$ H�XH��1��H�ŨuH������iH�H�8�I�t$D��L��H�@I�}H�D$0�H��H�$H���UH�D$0H�P H�D$ H�H�T$�� ��H��H�D$H�D$H�\$(E1�L�t$HL�d$8H�D$@H�H�D$H�D$@H�D$�Rf�H��������1�H�|$(H��I��L)�H9�vH��1�I��I��H��H���H��HB�H�H���L�eH�E tL�eK�<H�T$H�<$E1�H�t$H�L$HM�L�����u:L�|$HL�l$@H��L+l$M)�L���M��t	M���O���H���u����H�\$0H�<$�D$L�d$8H�C �H����D$����H�l$ H��XH��[]A\A]A^A_�DH�����&���@L��������H�|$ �=����H�\$ H���;��I9�t�H���L��H��H����fDH�D$ H�@H�D$�<���DH�t$HH�EH�E tH�EH)�H���L��H����7���fDH��Ѓ���~SH�D$ ��}���H������q���H��������`���%H	�H�U�O���H�|$ �I�����fD�H���(�������A�1��ff.�@��UH��SH��H���H9�t&H��H����H��H��H��[H��]�f�H���=t��H��H���H��H��[]����SH����u H�����tH��у����H��sH��H��[�S�����H������UH��SH��H���H��H��H��H��[]����USH��H���H��H���H��H��H��H��[]�ff.�@��UH��SH��H���H��H��H��H��[]����USH��H���H��H���H��H��H��H��[]�ff.�@��UH��SH��H���H��H��H��H��[]����USH��H���H��H���H��H��H��H��[]�ff.�@��USH��H���H��H�����H��H��H��H��[]�ff.�@��USH��H���H��H������H��H��H��H��[]�ff.�@��UH��SH��H�����H��H��H��H��[]����@��uFH�����t=H�7�����t0��u(S�� t'H�wH���H��[�f.�H���@H������ff.�@��H��tx	�0���H���PH�H�5H�81����ATUH��S�H��I���L��H��H��H���H��[]A\�ff.��AWAVM��AUI��ATA��UH��SH��(H�H�4$H��H��A��A��A����� ������%0���E�E9�����t	E���iM���0E�E9��$���A���j��t�� tE1�M���M����Lc�H�4$L��H�����D��H���H�EH%���L	�H�EH��(H��[]A\A]A^A_��H�}���5���D��D�D$�D��H�D$�D�D$H��H�D$�x��M��t�H�E�� ��H�}��D�D$����H�4$L��H���D��H���H�ELcD$H%���L	�H�E�J����������IfDD�D$�D�D$A��H�E�f���DD���H�<$L��H���!7��A��M���}�������A��AE�EE����D�����6���H�|$D�D$H�T$�H�T$D�D$�����z���H���H�T$D�D$������E��tb��u'H�E�t	A��t\H��D�D$�D�D$��M������������� ����A�����AE�����H�<$L���#6��A���M�������A����D���D��H�D$�H��H�D$H�JH�5H�PH�H�81��H�H�5H�81��@��USH��H��t"H��H��H���H��H��H��[H��]��
��f.���ATI��UH��SH��H���L��H��H��E1�[E1�]��A\�-���ff.�f���UH��AWAVI��AUATSH��(H�H�}�I��dH�%(H�M�1�I��H�E�D����E�����}���xH����HcCH��H��H��H%�H)�H���H��H9�tH��H��$�H9�u����A�>L�d$I���@��tPf.�D��H��I��D���H��L��D��A��S0H�}��M�Ic�E1�A� L���#���A�>@��u�H�E�H�M�dH3%(umH�e�[A\A]A^A_]��H������ ���L����M�H�}�E1�A�H��L��������E�����H)�H�L������D��UH��SH��H��(H�H��A��H��A��0��D�D$��tw�� ubH��H�s��L�L$H���B���H�@��u"H�����tH�M�ʃ���Z�H��sOHcT$H%���H	�H�H��(H��[]�@H�SH�s�fDH��D�D$�H�D�D$���m���@��u�H�����t��ƒ���t�%H	�H�EH��ff.�@AWAVAUATUH��SH��H��x�L$T��t�����������/�$�D$PH�D$HH�;��ƶ�������1�H��H��H�D$�/}��I��H���[H�EH�l$X�� ��H����H�x�I��H�E�� ��H��H�]��H�\$8H�D$@H���D��L��H��I��H�D$ �I�H���A�~�T� H	�H�D$�D$����E1�I�H��H���H�D$(H�\$H�\$8H�\$�A�H��H�|+H��H�|$��H9��!�L$H�|$H��H���?|��I��H���sI���H�|$H�xuH�|$(tH�\$H��у����A�H�W�|$PL�"H�WH����T$P�����t$���?H�D$H�|$H����H��H�|$hH����|$�I��u1�L9D$h���D$E�(L��A��D,$D�,$L)��L��L���I9���H�EH���� ����H�uH�UH�H�t$H9�����H���9H�UH9��?H�|$�L��H���{���L$T����L��H��I���H�UHc$H�\$XH	�H�H��xL��[]A\A]A^A_��H�u�� �xH����H9�~�H�}H�H�T$ H��H�uLc�H�E tH�uH�L$ H�L��L��L������H�L$ H�t$L��L�D$0�L�D$0�����H��L)�L��H���H�|$HH���H���I��H�E�� ��H�UH9T$8��H����H9D$@��M9��H���H�H�5H�81���� �H����D�D$PI�E�����D$����f�L�D$h�D$���fDH�D$8H9E�oH�E�t���H��1��H���H���I���/���fDH�uH9�����H�}H�����H�|$(�Q���H�t$�H�H�D$0�D$0����HE��,�����|$P�����H�D$�u���D�L$TA�E������H���I������@H�D$H�P���f�H�~H�|$h��D$PH�D$HH���ZH�D$hH�%�$����fDH�EH�D$8H�EH�D$@�]���f�H�EH�x����H���H��I�G�teI�H�EL�|$X%D	�$�����H��H�ƒ�H9������H�L$ H�t$H)�L������H�EH���� �|���fDH�����t�H��L���I���u�H�Ѓ�`H��`�t���H���`H��`�d���H��L����Q���fDH�|$ �������������H���E1�H�ٺH��H���I���7���H�|$h��D$P���H�H�5H�81��f���ATI��U��H��SH���X��H��L��[��]A\����f���1����D��SH��H��H�|$H�t$�H�t$H���H��[�f���UH��AWAVAUI��ATSH��H��(dH�%(H�E�1����I��A��uHA��uI�����tA�E����
t]L��H���H�M�dH3%(�,H�e�[A\A]A^A_]�H�u�L�����tPH�L��H�5H�H�81��f�H�u�L�����t H�H�5H�81����I9��BL�+A�� �"M��I��A���}�L��A��0���=p����z����=o������@H��H�H��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�D$�M�L��}�H���H��H�E�A�T$0Lc}�H�}�L��J�t?��M�9���H��K�47�H�{H� tH�{H�u�L�L���A����Mc�H�H%���I	�L�+H���H���f.�L�s�����UĈUÁ����H�uúH����}�v��H��H���H�H%���H
 H���}ĀM�I���I�� �b����I�L$H�H�5�U�H�81���U�H�H�5H�81����H��� �����„���H��� txH�~����uyAUH��I��ATI��US�Ã�H������H���Ճ�����9�t\L���L��A���A��tX=��H��1�[]A\A]�������t���DH����S����H��[]A\A]��=t����xu����;�L������Y�����I�$���6�������x�b������H����������fD��UH��SH��H������t,H�UH�с� t+H�H�U�� u.H����H9�tS�H����[]�DH�H������ t�H9Su�H�sH�}H��tH�}�1҅���H����[]�DH�s��f���ATI��UH��S���u&I�$H���Ã���tH�EH������t))É�[]A\�fDL�����H�EH������u�H�����@ATUSH��� u|H��H�H�Ӄ��� uvH����H9�t1�[]A\��I��H�����t�H�}H�E tH�}I�t$I�$ tI�t$H9�tH�����u���H�H�_�� t�H�FH9�u�뙐��H9���@��t5UH��SH��H��H�5H��tMH�����1���u%H��[]�fDH�����t‹����u�����H��H��H��[]���H�=�H��H����f���H9�t/H���uH�����t
�����t�1��D�����f���H9���AUATUSH��H�/�� tVH�H�GH�o�� uYH��H�NI��I����H9�tVH9�H��H��H��HN����t=BH�������[]A\A]�DH�H��H�G���� t�H�NH�^I��I��H9�u�H9�t~�H���[]A\A]�L��L�����u)I�$H������tAI�EH������t!9���s���H��1�[]A\A]�1��DL���9���@L������ff.����AW1�AVAUI��ATU��SH��H�H��8L�d$L�D$L�������>L�|$H�-I��A��H����L���H�t$H���H��I���1�=��H�H���� ��H�{������H�t$H�H�ǁ� ��H�~���������HH�CH��tH�C��D$ H����H�v�.@8��6u	E���+L�l$ fDL��L���H����D$ M����@8������D$ ���H����H�������8�������H�CH��tH�C�8�����H�D$H� �H�@�8���tcH�;�� ��H��L�k��M�d=Hclj|$H9���M9�w�zf.�I��M9��cA�}���u�DH�t$H�������E����H��8H��[]A\A]A^A_�fD�H�=�H��H������H���H��E1�L���H���H���H����H��������DH������H�|$1�1�H��1�L�l$ �H��I���H�D$ H��DL���H���/���H�|$ M��u%H�t$�H����H�|$ �����1�1�1�H���H�|$ I���I������L��L�t$ �H�t$H�|$ �H�������H�|$ H�I��A�� uBH�t$H��H��H����� u<H����H9��{���M��u6���+����f���fDH�t$H�OH��� t�H�V��f�H�������0���H�|$ 1�1�1�H���H�|$ I���I������L��L�t$ ��>���@H�|$�1�=���#����H�D$L� A�� t_L�hL�`M�M9�w�}DI��M9�toA�}���u��l���@L�kH�{M�d=����fDH���%����I��L�hA��M������D$ @8������3���1Ҿ
H���H�|$1Ҿ
I���I��A��t���A�<M��uL�5M����H�=�H���I��HcD$H�DH�D$ H�D$ H�D$�:�H�t$L���L�d$(�H���L��1�1�H��1��I��1�L��L��L���H��u��V����I�I�I��M9��?���u	E���4���H�-D�T$L��H��L��1�I���H���M9������u�E��t����H�=�I��H����ff.���UH��SH��H����u	H�����uBH�5H��tN1�1�H����uH�����t
�����tLH��H��H��[]������u�H����/@�H�=�H��H��H��H���H��H�H�D[]�ff.�@��@��t@��u@H�����t7�����u-USH��H��H���H��H���H��H��[H��]����f.���AWAVAUATUSH��H��H��� u#H��L�gH������tH����L�gH�o��u�H�����tډƒ���tЩ����u�H9�H��HN�I��H)���+PH�Hc�H9�|p��A��L�{H�ƒ�H����K�44L��A��`@��HE�H��H��H%�?��H	�H��H��A�� tIA�/H��H�#���H��[]A\A]A^A_�%`H=`tH���LsH�kM��L�s�f�L����H�H�5H�81��ff.�AWI��I��AVI��AUI��ATUSH��(H��� ��H����L����H�D$H��L	���L��L�L$�I�/L�L$�� ��I�OI�oL9���I��M)�I�L9��-L9�} M��yL��H�<)1�H�L$H���H�L$H��~(I�uI�E �|J�<1H��H�L$�H�L$I��� �JL��H%�?��H��H	�I�L��I��HcPA�$����H�|$u)I�����t I��Ѓ�����H���	H��([]A\A]A^A_�f.�H��I�O��L9�����L��L�L$�L�L$HcpI��� ��I�ܸM)�)�I�H�I9��I�OK�4H��J�<3L�L$H)�H�H�H�L$�L�L$H�L$���f�H�Y�4����L��L���H�|$����H��([]A\A]A^A_�f.�M�g����I�u�{����A�����I��������I�E����������%H	�I�����H�|$u	I�����u_I��I��L�L$M)�I�L��M�g L�L$I�GI��� ����I�O����fD1�L�������f��ƒ���t���@t�H�
��H�5H�=�f�J�<&��I�L�L$I��� urH��I�w��H��L��L�L$H�L$�H�L$H�|$I�GL�L$I�OI�uI�����t��H�ƒ��� ��HE�H%�?��M�g I������I�OI�w�fDAUATI��1�USH��H��H��H��H�L$1��H�����L��H��H���H�U�J9�~y��xiH�rHc�H�,�H�����H�BH�|$L�$��H�t$H��I)��H�L$L��H��I��H�����L��H���H��[]A\A]�fD���9�~�닉�H�H�5H�81��H�H�5H�81����H�H�5H�81����AWAVA�AUI��ATUH��SH��H��(�H�L$%0=t���E1��xA��H����H�|$�H�t$H���H��H��I���NX��L9��eM����H9���L)�H��H�����H��� ��H�{L�{L�l$I�I�E����M��tM9���M������ ��H��H�l$H����L�lM��I�T-E�����H�T$L��L��L���
��H��H��f�I��H�{L�l$I��I�A��I�E���p���H�T$L��L������I��H��U���f�I�T-H9������
���DM���� ��H��H����L�|H�l$I�T-E���Z���H��t
I9�s+M��u#�� ��H��H�KH�ƒ�H���L��H�K�� tH�KL��L)�H��H)�H�L$����L��H���H�����0��tD1ҁ� tjH%���H	�H�H��([]A\A]A^A_��L��H��H9�}I�����DH�T$H���0��0t�Hc��DL�{L{����H�T$H���0��uȺ �v���H�KH�SH��(���L�kLkM������H�L��H�5H�81��H�H��H�5H�81��f.���H��H�|$H��H�4$�H�|$�H�$H�|$1�1��H�D$H��Ð��UH��SH��H��@��t*H�H���t2H��H��H��1�H��?H��H��H��[]�H���H��H���u�H��H��H��[]�ff.���AUATI��USH��H�������G�����H�H�n��u{��u H�����t����������1�L���T��H�T$H��H��A�H���H���*H�T$H�4$H��L���H��H��[]A\A]��H��H�H��L���H��H��[]A\A]�@H�6H�kL�k@��tW@����H�@����H�L��H��L���H�kH��[H��]A\A]�DH��H��L������Z���H�����t������u�L��H��L������D1�1�H��L���YX��H��xvL��H���1�H��I���\S��H��L��L��H�����fDH���H�����H���H���3���H���H�3H���������H�H�5H�81��fD��AV�G�AUATUS��H�� ��wpH�H��A�H�$��uH�FA�H�D$H��I�����H��L��������I��H��t1�1���{H��L��J���v���H�� L��[]A\A]A^ú�����ATI��USH��0dH�%(H�D$(1���tm��~��������H�\$��H�1��
H���H���H��L��H��H�����H�L$(dH3%(��H��0[]A\�H�\$��w!H��
H��1���f�H��
H��1���z���DH�\$��H�1��
H����S���fD���t$��t$��t�H�\$��H�1��
H��������ff.���AWH��AVAUATUSH��XH�H�|$I��I��dH�<%(H�|$H1�A��H�$A���jD���1�H���H�$�H��H�D$��{�D$�D$��H�|$�H�D$�x���H�D$L�<$H�t$L����H�5L���[��H�D$L� A�� ��I��H�hA��I�H�t$D���a�I��H9�t�T$����H��I9���L�|$:@L��L��H���Lc�E����L��L��H��I�A�U A���D$D$��A��"�A��\�	A��#��M9���L��L��L��D�D$ �D�D$ ����L9l$�#�D$��A���N���FD��D�D$ ����,L��I9��8���H9�vH��H�<$H��H)��yZ��H�$�H�5H���aZ��H�D$H�%H	H��H�L$HdH3%(��H��X[]A\A]A^A_�A�@����E���H�5Hc�H�>��f.��eH9�wCH�<$�L���L$;�D$:\L��L����Y��I9��r����5���D�rH9�v�fDH��H�<$H��L$ H)��Y���L$ ��f�f��v�f��n�n���fD�t�^���fD�b�N���fD�a�>���fD1�L��L��L���D�D$ ��$����@���u��{�,���f�H9���H�<$�D�D$ H�5��X��L9l$���D$D�D$ ����A�@����IH�
Hc�H�>��H9��wIcUL��H)�H��H�I9�B��x�H�|$ H�T;�������H�\$(L�4$H���H�L��1��
H���L���L��L��H���-X��H9�u�H�\$(H�D$ H�\H���>����H��L���2���DH��H�<$H��D�D$ H)���W��D�D$ ����H�D$H�hL�`I��5���H����D$�B����H�D$�D��D�D$ H��PX������D$D�D$ �����fDD�D$ H9����T$H�<$D��L��L����t����H�|$����M����R���f�H��H�<$H��H)��W���r���f�H�������H�|$���D$���H�D$����H�|$�A�����fDH��H�<$H��D�D$ H)��V��D�D$ �5����f���SH��H�� H�|$H�|$�H���H�T$H�t$�H�D$�$���H�� [�ff.���H��t@��uH�����t�����uH�:�PH���H�5H��H�H�81��D��AVAUATI��USH���H�+I��� u3H��L�s��M����IcEI��H9�|"H��[]A\A]A^�fDH�kL�s��fDL��I�4.L��L���H��L)�H9�t�I��EA�}��L��H�=�L��H���H�߹[1�]H��A\A]A^�fDA�H��H��L��L���H����L)�1�H��H���A�}H����L����H�=H���H��1�H���H��H������@L������6���H��L��H�5�L��H��H������A����DL������f����H�5H������H�L��H�5H�81��@��AWAVI��AUATI��USH��8H�H�t$H�$�$���0�D$,����I����
�������H�D$�D$,L�������L���Icl$A�ǃ��7H�L$H��� ��I��H�YI��A��I�H�D$H�|$t0I���I��� �H��I�N��H�L$H�T$DH�L-I��H�$H�L$ I9�w�Df�H�I�M9�swL��L��L�������7���H�<$Mct$�L9��7L��I�/L)�L9�IO�I��H9D$ ��H�t$H���%H�T$H�<$�I��M9�r�H�<$��I9��� H�D$L�4$L��HcT$,H�%H	�I	�L�����I�H�D$H%���H	�I��Tf������t<I����L��L���\��L��H�D$����I�Ƌ%�D$,����1���H�$H�$H��8[]A\A]A^A_�H�D$H�8�� ��H�����H�$L9�����L��H�<$H��H)�����@L��L��L���H���L��H����[��H��с�	L$,�� ukH��H�p��H�<$����f�H)�I��H9�}(DK�7L��L��H�������R���I)�L9�|�K�7�A���@H�D$H�x�5���f�H�PH�p�fDH�L$H�YL�iI��B���H�<$��I9�w8� M9��$���H�t$H����H�T$H�<$�����f�L��H�<$H��H)���A����A����A����1�H�A��L�=��ID�H�LIH�L$H�T$����H�D$H��� ��H����H���H�$I9��:����m���H�D$H�M9�u�H%���H�L$H
 H�����L��L��L��L)��H���L��H���#Z��H��с�	L$,�� ��H�PH�pH�<$����L����D$ ��t/Icl$���I�NH�L$I�NH�L$���H�D$H�x�2���H�D$H�0�� �aH�XH��H����H�,H�D$H�|$tCI����I��� �yI�NH�L$H��H����H�L$��01Ɂ����L$ H���BH�CH��H9�v(�;I��y���A�?��I��L9�u�I��I��L9�s+H���������H�t��DH���H��I9�w�L9�w�@I��L9��A�?y�H�$A��DH�A� I�L9��L��H��L�������}���H�<$Mct$�IL9��mH��I�_L)�L9�IO�A�H����H�t$H���UH�T$H�<$��T$ � ��LD�H��H)�H����H�CH��H9�v"�;I��y�M���f�A�?�A���I��L9�u�I��I��L9�r�'�H��I9�vH���������H�t�I��DI9�sA�?�����I��L9�u�H�<$�kH9��ZIc��K���H��H�p���>���H�D$H�XH�@H�,���H�D$H�
H�L$�I����I���H�D$H��� ��H����H���H�$L9������L��H�<$H��H)���|���L��L��L���H���L��H���V��I��H���	T$,�� uxH��I�v��H��H�<$�I�%0= � LD��^���L�p�fDK�7L��L��H����������I��I��u�I�_���H�D$H�x�'���I�VI�v�H�D$H�
H�L$�(���I���"���H�<$�HI9�wuL9��v���H�t$H���9H�T$H�<$� ��D$ ��IE����A�Ic�H���H�D$H�$H	�H��	���H�<$��L9��
���L��H)�H�<$H����t���H�D$H�
H�L$�j���L9������A�I9�t��� uvH��H�����H�$�!���H�D$�������I�NH�L$I�NH�L$���1�A��H����L$ ����H�L	H�L$H�
HD�H�T$�d���H�D$H�x�H�D$H�0�j���H��L��L��L)��H���L��H���dT��H��H���	T$,�� u:H��H�s��H��H�<$�H�� %0= IE�����I���M���H�SH�s�ʻ�i���I�����H�D$H�0�Q���H�H�5H�81��H�D$H�0���D��UH��SH��H�����H��H��H��H��[]������SH�Ӆ�t,��u.H�6H���H��tH��H���H��[�fD��պ1��D��SH�Ӆ�t��u3H�6H���H��t[�@�H���H��u�H��[��1����AVAUATUSH���I��H����H������H�3I��� t*L�kH�kM9�t0H���=t!1�[]A\A]A^�H��L�k��H��M9�u�L���H9�u�L��L�����t�I�t-L��L��������������I���c�����ATUS�H��H���H�߅�ua�H�(H��� t>H�hH�uH��L�c�H� tL�cI�|$H��L���A�$:H��[]A\�H���������H�+�� uPH��L�c��1�H�uH���H��H�xH� tH�x�:H��L��H���H��[]A\�f�L�cH�k�fD��AV�AUATUSH����I��H���~H�����H�3I��� t0L�sH�kM9�t6H���=t'H��[]A\A]A^�@H��L�s��H��M9�u�I�4.L��L�������t�H��[]A\A]A^�fD�I���u���ff.���H���H��H���'������@��t6@��uH�����t
�����tH����}��H��H�����ff.���@��t6@��uH�����t
�����tH���}��H��H����H���ff.����AVH�=AUL�-ATUSI�u�L�%H�H��I�4$H��H�;H�5����H�;�H��~��H�5�H�;�����H��N��H�5�H�-H�;�H�5H���H�;�H����H�5�L�5H�;�H�5L���H�;L��H�5�H�;�H�n��H�5�H�;1�H�&���H�5�H�;�H�{r��H�5�H�H�;�H�5�H�H�;�H�5�H�;�H����H�5�H�;�����H�?���H�5�H�;�����H���H�5�H�;�H�I�H�5�L�5H�;1�H�5L���H�;1�L��H�5�H�;1�H����H�5�H�;1�H�:��H�5�H�;�H����H�5�H�;�����H�T{��H�5�L�5H�;1�H�5L���H�;1�H��F��H�5�H�;1�L��H�5�H�;1�H�eF��H�5�H�;�����H����H�5�H�;�����H����H�5�H�;�����H�$���H�5�H�;H��H�5�H�;1�H���H�5�H�;1�H�m���H�5�H�;�H�r��H�5�H�;�H��D��H�5�H�;�����H��#��H�5�H�;�����H�����H�5�H�;�����H�F���H�5�H�H�;1�H�5�H�;�����H����H�5�H�;1�H����H�5�H�;1�H�c��H�5�H�;1�H�K��H�5�H�H�;1�H�5�H�H�;1�H�5�H�;1�H�c0��H�5�H�;1�H��/��H�5�H�;1�H��/��H�5�H�;1�H�+/��H�5�H�;1�H��H�5�H�;1�H�K�H�5�H�;1�H�C�H�5�H�;1�H���H�5�H�;1�H�S��H�5�H�;1�H�+��H�5�H�;�����H�@���H�5�H�;�����H�Ś��H�5�H�;1�H����H�5�H�;1�H�ŕ��H�5�H�;1�H�M>��H�5�H�;1�H��)��H�5�H�;1�H��,��H�5�H�-H�;�H�5H���H�;H��H�5�H�;�H�]��H�5�H�;�H�l��H�5�H�-H�;1�H�5H���H�;1�H��H�5�H�;1�H�H�5�H�;�H�`k��H�5�H�;�����H�5j��H�5�H�;�����H��h��H�5�H�;�H�?t��H�5�H�;�����H�Dh��H�5�H�;�����H�h��H�5�H�;�����H��g��H�5�H�;�����H�����H�5�H�;�����H����H�5�H�;1�H�����H�5�H�;�����H�5���H�5�H�;1�H�=���H�5�H�;1�H�����H�5�H�;1�H����H�5�H�;�����H�"���H�5�H�;�����H�����H�5�H�;1�H����H�5�H�;�����H�$`��H�5�H�;1�H�L�H�5�H�;1�H�T�H�5�H�;1�H�l�H�5�H�;�H�A[��H�5�H�;�H��Z��H�5�H�;�����H��N��H�5�H�;�����H�0K��H�5�H�;�����H�[��H�5�H�;�H�jZ��H�5�H�;�H�?Z��H�5�H�;�����H��J��H�5�H�;�����H�yF��H�5�H�;�����H�^���H�5�H�;1�H�&��H�5�H�;1�H�^���H�5�H�;1�H��9��H�5�H�;�����H����H�5�H�;�����H�P���H�5�H�;�����H����H�5�H�;�H�J���H�5�H�;�H�_���H�5�H�H�;1�H�5�H�;�H�\��H�5�H�;1�H����H�5�H�;1�H�|���H�5�H�;1�H�4���H�5��H�=�H�-H�=H�H��H�E�H��H�=�I�uH�=�H�-I�4$H��H�E�H�}�H�}@����@����������-H���3@��tH�H�5�H�H�}1�H�5�L�%H�}�H�5L���H�}L��H�5�H�}1�H��H�5�L�%H�}1�H�5L���H�}1�L��H�5�H�}1�H����H�5�H�}1�H�����H�5�H�}1�H����H�5�H�}1�H����H�5�H�}1�H����H�5�H�}�H����H�5�H�}�H�ji��H�5�H�}�H�>��H�5�H�}�����H�"���H�5�H�}�����H����H�5�H�}1�H�]0��H�5�H�}1�H�D0��H�5�H�}1�H�[��H�5�H�}�H����H�5�H�}1�H��&��H�5�H�}1�H��&��H�5�H�}1�H�$&��H�5�H�}1�H��%��H�5�H�}1�H���H�5�H�=H����H�H�5<��[]A\A]A^��H������.���H��t5H������H�H�8����DH�H�8����f�H�H�8����H�H�8�����H�H�8����H�
�.$H�5H�=�f���H��H�=u��H�=�H�H���H�
�5$H�5H�=�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignwide char encoding: %sNULL pointer givenno receiver giventype mismatch: String given=~01invalid radix %dstring modified<<string.c!FL_TEST((str), STR_SHARED)invalid byte sequence in %swchar encoding givenOBJ_FROZEN(shared)negative argumentargument too bigu{%x}x%02X.force_encoding("%s")to_strStringstring sizes too bigindex %ld out of stringstring size too big 11zero width paddingcryptstring contains null charstring contains null byte%li%+li is not a symbolmatchtype mismatch: %s given02

block should not cheat%ld out of char rangebignum out of char range%u out of char rangeinvalid codepoint 0x%X in %ssucc%.*ld<=%.*dregexp not matchedindex %d out of regexpregexp group %d not matchednegative length %ldstring not matched\u%04X%c\u{%X}\x%02X\x{%X}"\value of %li must be Stringtry_convertinitializeinitialize_copy<=>=====eql?hashcasecmp+*%[][]=insertlengthsizebytesizeempty?succ!nextnext!uptoindexrindexreplaceclearchrgetbytesetbytebyteslicescrubscrub!freezeto_ito_fto_sinspectdumpupcasedowncasecapitalizeswapcaseupcase!downcase!capitalize!swapcase!hexoctsplitlinesbytescharscodepointsreversereverse!concatprependinternto_symordinclude?start_with?end_with?scanljustrjustcentersubgsubchopchompstriplstriprstripsub!gsub!chop!chomp!strip!lstrip!rstrip!trtr_sdeletesqueezecounttr!tr_s!delete!squeeze!each_lineeach_byteeach_chareach_codepointsumsliceslice!partitionrpartitionencodingforce_encodingbvalid_encoding?ascii_only?$;$-FSymbolnewall_symbolsid2nameto_procrb_vm_fstring_table()!frozen_stringsnegative string size (or size too big)invalid range "%c-%c" in string transliterationinvalid range in string transliterationpassing a block to String#bytes is deprecatedtemporal unlocking already unlocked stringincompatible encoding with this operation: %scan't modify string; temporarily lockedpassing a block to String#codepoints is deprecatednegative expanding string sizeASCII incompatible encoding: %sreplacement must be valid byte sequence '%+li'incompatible character encodings: %s and %ssalt too short (need >=2 bytes)passing a block to String#chars is deprecatedpassing a block to String#lines is deprecatedtemporal locking already locked stringcan't set length of shared stringprobable buffer overflow: %ld for %ldboth of block and replacement givenInit_frozen_stringsrb_str_sub_bangInit_String?��������?�...rb_str_splice_0str_succstr_buf_catrb_str_change_terminator_lengthstr_replacerb_str_new_frozen333333�?GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�B04D�X*l���Ad VL��G�E�A �D(�G0G
(C ABBID(F ABBA�����0DO
A�,�B�B�E �E(�E0�D8�D@T
8F0A(B BBBB�
8A0D(B BBBAj
8F0A(B BBBAS8C0A(B BBB`��B�F�E �B(�D0�D8�GP�
8A0A(B BBBIr
8A0A(B BBBD8$_B�B�A �A(�D0�
(D ABBA8`�B�B�A �A(�D0Y
(D ABBD�8(��E�~
EY
GZ
Fk�ME�l
OP��B�A�D �G0E
 CABG|
 AABHt
 FABALL�B�B�B �A(�A0�j
(C BBBEb
(D BBBD�HHZ
NL�HIL�4F�B�A �A(�G0�
(A DBBHy
(A ABBIL$@B�E�B �A(�A0�y
(H BBBF�(D IDGt�L�?B�E�B �B(�A0�D8�G��
8A0A(B BBBA� yHB
FI
WD(8�E�J0K
AEf
AAdAAK�Px�+A�M
AD�gG�E�E �A(�D0�G@x0G(A BBBA������3[0SA�I�L N
FAEWDC@@�B�F�D �R
AKFR
CBIW
FBA4��E�D�G a
GAGP
LCI�E�LL�
B�B�E �A(�A0�c
(D BBBHA
(D DBBK (yE�G _
ADHL�B�E�E �D(�A0��
(A BBBGq(C BBBH��F�B�B �B(�A0�D8�D`K
8D0A(B BBBC(�ia�G�G Z
CACqE�S
A(0�A�A�G �
AAA4\�E�A�G b
AAGe
AAAL��F�B�A �A(�G0`
(D ABBFl
(I ABBF8��F�B�A �A(�G0U
(D ABBAH 	AF�B�B �B(�A0�A8�GP�
8D0A(B BBBI`l	�F�B�B �B(�A0�D8�D`�
8D0A(B BBBFR
8F0A(B BBBG`�	=F�B�E �B(�A0�A8�D`�
8A0A(B BBBG\
8F0A(B BBBE`4
�F�B�B �B(�A0�A8�G`�
8A0A(B BBBJD
8F0A(B BBBE`�
�F�B�B �B(�A0�D8�D`�
8D0A(B BBBFR
8F0A(B BBBG �
E�
Dj
AH �B�B�E �E(�A0�A8�G@�
8A0A(B BBBE4l\A�H�G0[
DAHG
DDI`�WB�E�D �E(�J0J
(F ABBA�
(F ABBK\
(F ABBI4�A�D�G n
AAD]
AAA0@�F�F�A �G0M
 AABK(tJF�D�D �xAB�`H@R
AH�F�E�B �B(�A0�D8�DP�
8D0A(B BBBA0
�U�H�I qAAG��H ��4<
�F�D�D t
DBHU
DBEt
HIH�
�B�D�B �B(�A0�A8�D�|
8A0A(B BBBJ�
6A�P
A�
%H\%H\H$VB�B�B �B(�A0�A8�D`t
8D0A(B BBBApAE�Q
JU�E�L��3E�m�4L�g(�MJ�A�M dDAG��$#E�Q
H@3E�m\E�Y(xQE�A�D Z
JAE���$�5E�D�J [AAHHm
K$HHm
KH@�F�B�B �B(�A0�A8�GPd
8D0A(B BBBJ\�HF�B�D �A(�D@B
(C ABBEX
(F ABBE�
(F ABBI,�B�A�D ��
ABB(\A�D�G z
DAEHyE�E
Fhh-E�`8�dB�B�A �D(�G0�
(D ABBF0�UE�A�G X
DAF_DA$�NE�I�D vDA4CF�B�D �D(�G0U(G DEBHT�F�B�B �E(�A0�A8�DPV
8D0A(B BBBH(��E�A�G U
DAI�!HQL��F�B�B �E(�A0�A8�D��
8D0A(B BBBD(4zA�H�D }
DAAL`B�B�E �D(�D0��
(A BBBGJ
(A BBBGL��E�D�D@�
AABT
AAJg
AAGR
AAD$wE�F�G _DA(<.E�\
GE\ (p�E�G A
ABI
AF�SA�Q�L��O�B�B �A(�D0�N(A BBBC�����H0�����4�E�D�D e
AADD
DAO$T7E�D�D dDAd|qc�B�B �B(�A0�D8�DP>������XP������
8A0A(B BBBH$��E�U
FF
JtE�T(&E�\DE�T`&E�\|E�T�&E�\�E�T�&E�\$�9E�I�D aDAH�F�B�B �B(�D0�D8�D@@
8D0A(B BBBKH`?F�B�B �B(�D0�A8�G@�
8D0A(B BBBCH�aB�B�B �B(�A0�D8�DP�
8D0A(B BBBB�<H_
IGHI0	HD�B�E�E �B(�A0�D8�G`�
8D0A(B BBBG8��Z�B�I �G(�J0}
(D ABBDH��B�B�B �E(�D0�A8�D`
8D0A(B BBBD,@(T�E�A�G m
AAAH�!B�B�B �E(�D0�D8�D`�
8D0A(B BBBF8��F�B�D �D(�D0j
(D ABBIE�TD$ZF�A�D ��
ABGy
ABDf
ABALl?B�G�D �D(�G0t
(D ABBK�
(G ABBA�=E�[
A�3T�OE�L�F�B�B �B(�A0�A8�D�V
8D0A(B BBBK(D�E�G w
ADl
DA pGE�G H
DH(��A�A�G0B
AACL�'F�B�B �E(�G0�A8�J��
8A0A(B BBBK(-F�D�F �YABL<DF�B�B �B(�D0�D8�G�A
8A0A(B BBBJ(�-F�D�F �YABL��B�B�B �B(�A0�A8�L�
6
8A0A(B BBBJ(01F�D�D �_AB(\.F�D�D �\ABL��F�B�B �B(�A0�A8�G��
8A0A(B BBBJ$�SD Y
CS
EN
ALF�E�G �A(�G0F
(A ABBJq
(A ABBILP�B�D�E �B(�A0�A8�G��
8D0A(B BBBD���d��N�H�F �G(�A0�D8�DP 
8F0A(B BBBET8C0A(B BBBA������XDN�H�F �F(�A0�G@�
0F(A BBBHD0C(A BBBA������DE�G vA ��E�G �
AAx�F�B�B �B(�A0�A8�G�|
8A0A(B BBBEF
8F0A(B BBBKD8F0A(B BBB(` Vd�A�J TD�D�� )HV
BH$� `Hi
OI
G�
G`� �F�B�B �B(�A0�A8�DPU
8D0A(B BBBD�
8J0D(B BBBH88!ZF�E�A �A(�G0b
(M ABBHt!4�!�B�D�A �d
DBGZ
ABKH�!�F�B�B �B(�A0�A8�J`�
8D0A(B BBBJ"IP�OA�N�L,"F�E�A �A(�D@}
(D ABBIM
(D ABBJ|"�"H S,�"uF�G�D �C
JBHH�"�F�B�B �B(�A0�A8�G@�
8D0A(B BBBC|$#�B�B�B �B(�D0�D8�G`�
8A0A(B BBBAW
8D0A(E BBBIL
8H0A(B BBBCl�#4F�E�H �A(�A0�G@
0F(A BBBDm
0F(A BBBF|
0A(A BBBDP$F�C�K �F0�
 FABDJ
 FABEl
 AABH0h$?F�D�D �D@�
 DABFL�$S
F�D�B �B(�A0�A8�N��
8D0A(B BBBHL�$�F�E�A �A(�GP�
(A ABBI�
(A ABBA@<%gF�A�A �L@�
 AABI�
 AABAH�%B�B�B �B(�D0�A8�Dp�
8A0A(B BBBF�%�%L�%�B�E�B �B(�A0�D8�F�5
8A0A(B BBBKD&X&dl&�F�B�B �B(�D0�C8�G��
8A0A(B BBBFT
8F0A(B BBBE(�&-F�D�F �YAB0'nE�D�D t
FDETDA84'zF�A�D �I
ABIA
DBI`p'�F�B�B �B(�D0�A8�DP|
8D0A(B BBBJD
8J0D(E BBBK�'9E�_
LD�'E�NH(�F�B�B �B(�D0�A8�Dp9
8D0A(B BBBE@\(�F�A�A �D@�
 DABG�
 IABH�(4�(�E�D�D@W
AAJ�
AAH$�(*E�D�I IIA)Mu(()/F�D�D �SGBLT)F�B�B �A(�D0��
(A BBBHQ
(D DBBEH�)qF�B�B �B(�A0�A8�DP�
8D0A(B BBBJL�)iF�B�B �B(�A0�A8�D�
8D0A(B BBBF@*0T*iE�D�G ^
GDGcDA�*HE�s
H$�*)E�D�G IJA$�*1E�A�G TJA$�*)E�D�G IJA$+1E�A�G TJA$D+)E�D�G IJA$l+1E�A�G TJA$�+1E�A�G TJA$�+1E�A�G TJA$�+)E�D�G IJA,ai�X�W�,,-U(@,4F�A�D �eABHl,\B�B�E �E(�D0�D8�D`�
8D0A(B BBBH(�,6E�A�D W
GDE(�,3F�D�D �XDD,-�E�C
D��L���
I(@-�E�D�G@~
DAELl-�B�B�B �B(�A0�D8�G��
8D0A(B BBBI(�-.F�D�F �OHB�-�-.E�G `A,.�E�C
F���F��k
AXL.Jv�I�D �A(�I0J(C ABBA����h0����I
(A ABBI4�.�E�D�G ~
CAFv
CAF(�.lF�D�D �p
ABG(/�B�A�A �i
ABH@8/�T�D�G `AAG��X ��D
G�A�L`��|/>h�/$O�B�A �A(�D0P
(F ABBFq
(F ABBD|(C ABBD����H0����H�/rF�D�B �E(�A0�C8�Np!
8D0A(B BBBG4H0�E�D�G @
GAHGHA(�0Vd�A�J TD�D�H�0RF�B�B �B(�A0�A8�G@�
8A0A(B BBBDd�0�B�H�E �E(�A0�A8�D`1
8A0A(B BBBK�
8A0A(B BBBK8`1B�B�F �A(�M@�
(A ABBGH�1F�B�H �E(�A0�D8�G`%
8A0A(B BBBH�1?H v02bE�D�G j
DAAUGA\42
F�B�D �A(�G@�
(D ABBIZ
(D ABBEA
(A DBBF@�2�F�E�B �A(�A0�FPi
0D(A BBBA0�2BF�D�A �DPy
 AABDL3�F�E�B �B(�A0�A8�D�5
8A0A(B BBBD\3BE�G0tA|3KhL�3�F�B�B �D(�A0�{
(A BBBGa
(C EBBKH�3�
F�B�E �B(�D0�A8�DpB
8A0A(B BBBD$,4)E�D�G IJAT4KE�l
G p4PE�^
EW
E<�4�F�B�B �A(�A0�I
(A BBBD8�4�F�A�A �d
ABAc
ABJL5�F�G�B �A(�A0�O
(A BBBIj
(A BBBG`5HIx5EgI�5DgI<�5nF�I�I �A(�A0��
(A BBBL�5NHf
A	$)?%Yt&��'��(�B�XB3BO�iP4v�����������*�1�I�T�w����������A���'�5�R�m�0{������������
�8Wa��}W���`_����	�Y����	
�	*�	8:�	X�
t�	���
��
��
�n��
��n?
 p�/?
H�
_@
Hi�
��
��
��
����
4�	0�3
�00T�@k0�;�0�;�N�@�N�7P?F�`�x����������)��y	)	�<	0�L	�p	��	��	��	0�	0
[/
0+F
[s
��
`g�
��
�
c"S0cO�lp�|������	������3�R�
d�I��y�I�+�P����+
�)
0�4
	(M
�p
I�
�i�
I�
��
Pq�%wE��XwxL����L� �P�� � >  �Q� rA"�!A�A"�$�P"��$"]%D $=Y]%�&�`%���&��(��&��(+�)E�(R�)m�+��)���+�,,^�+\�,,��.�0,W
�.:V0e�.��V0��0��IHe	H��0�:1
:1(�1D�1u�4��4�t5�t566;76V 6d76|)>�Z@6�� 	�)>�f>�0>6�f>�>?p>%V�>}�>��>%��>�&B��>V&B,qBPqBo�B��B��B��B��B�B4C<4CZ�Cv�C��C��C��C��C"DDDgqD�qD��D��D��D�D>�Db�D�E�E�hE�hE�E8�EY�IxM\�p��I�K�KMEKdM�lM�lM��M��MNN5�P�\ NdN`h�P��P��PU��P�>Q��PN�>Q�Q'�QCT]Tx�T��T��T��T!��T��Z��Z[4�ZzB[a/]~ [�/]��^�0]���^�W_W_5u_Qu_t�_��_��_��_�\` \`) �`E �`b �`} �`� �d� �d� Oe!	@!Oe%!�e=!�e[!iw!�eq�!i�!�i�!i��!�i�!j"j*"jF"Fj`" j&m"Fj�"jj�"Pj�"jj�"�j�"pj&#�j'#�jD#�jT#�jp#�j�#�j&�#�j�#
k�#�j�#
k�#6k$k&$6k:$ykX$yku$m�$m�$_o�$_o�$�s�\`oa%�s%t8%tR%)tj%tu%)t�%9t�%0t	�%9t�%?w&@t�&?w<&-xW&@w�e&-x�&z�&0x��&z�&+z' z3'+zT'>zs'0z�'>z�'Kz�'Kz�'�z�'�z(~Xa�z!)(0C(~a(}( ~��(�(*�(�(*�(��!)��F)ρi)��?)ρ�)
��)
��)C��)C�*a�3*a�Q*A�m*A��*���*P�G�*���*M��*���+M�++w�L+P�'`+w�~+���+��-�+���+��+��D�+�,-�6,�-D,-�\,ԙr,0��{,ԙ�,��,��,��,��-�-��.-1�G-�1S-1�l-n��-@�.�-n��-T��-p���-T��-���-`�S.��(.̟G.��Y.̟w.f��.П��.f��.~��.p��.~�/��/��+/��G/��a/��n/���/$��/����/$��/2��/0�02�*0��F0@�DU0��q0���0����0���0���0���0���0�1��V!1�D19�e19��1���1@ �1���14�!24�G2��k2���2���2���2o��2����2o�3M�.3p��:3M�[3��z3P�I�3���3���3���3	�3��4̴44��I4̴c4�{4��4e��4e��4I��4I�5�#5P��15�P5T�m5 �4}5T��5|��5`��5|��5���5��6�86��S
G6�h6���6 ���6���6W��6��g�6W�7v�27`�I7v�i7���7���7���7���7���7��8E�%8���<8E�\8[�z8P��8[��8n��8`��8n��8�
9p��9�49�N9M�f9 �-q9M��9���9P�n�9���9:��9��z�9:�:�3:@��@:�\:Y�v: �9�:Y��:{��:`��:{��:��:�;��3;��M;��e;��p;���;���;����;���;���;��*�;��<�'<�L<O�o<O��<n��<n��<���<��=Y�'=Y�F=q�c=q��=���=���=8�>8�*>i�K>i�s>���>���>���>���>�#?�H?I�k?I��?���?���?���?��@�;@�_@9��@9��@���@���@���@��A�/A�TA|�wA �\�A|��A���A���A�B�/B��QB��rB���B���B^EC����B^�B��B`.C�)C�BC�NC�kC��C��C��C��C��C�D�:D�UDnD�lzD�D�*E��D��DN�D	8�DNE�'EP>2E�LE�dE�E2�E�r�E	 �E	�E2�E�F@�F	2F�IFV^FVfFV�F��F��F��F���FG�-G�LG�^G�{G��G��G��G�?�G��GbHb%HbBHz]Hp
kHz�H�H���H�HbIb/I^$KI^$gI�$�I�$�I�$�I�$�I�&�I�J�&&J�1DJ�RJ�`J�nJ�|J��J��J��J�1�J	2�J	2�J[2K2K%K[2>K�2Kc`2PUK�2uKm3�Km3�KZ4�Kp3��KZ4�K5!L5HL95mL95�L�5�L�5�L�5�L�5�LNEM�MNEBM�EcMuM�%&'($�M�M�MX�M(�M��M�M��M��M*�MX�M<�M[�M^�M�Mo�M�M��M��M��M��M�N�	N�NNN!N0'N7-N83N>9NS?NpENkKN�QN�WN�]NcN�iNoN�uN�{N�N��N��N��N��N��N��N��N�N0�N`�N�N��N��N��N�N(�N>�Nl�NW�N��N��N�O�O�O�O�O�#O�)O/O5O!;O	AOGO(MO*SO,YO_OIeOUkO`qOpwOt}Ow�O{�O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O�P�P�P�P�P#P*P1P8P ?P%FP*MP/TP7[P<bPCiPLpPWwP`~Ph�Pr�P~�P��P��P��P��P��P��P��P��P��P��P��P��P��P��P��P�Q�
QQ	QQ&Q-Q 4Q%;Q*BQ0IQ6PQ=WQD^QIeQOlQUsQ\zQc�Qk�Qs�Qv�Q{�Q��Q��Q��Q��Q��Q��Q��Q��Q��Q��Q��Q��Q��Q��Q�R�
RRR"R()R40R77R;>RBERFLRRSRZZRbaRxhRtR�R�R�R

 !"#)*+�R�R�R�RS#S9SFSOS\ScSqSxS�S�S�S�
M�S�S�S�S�S
TT1T=TUTdTT�T�T�T�T�T�T�T�TUUU+U<UKUYUnU�U�U�U�P�U�U�U�U�UVV V6VGVVVcVnVyV�V�V�V�V�V�V�VW"W3W>WFWUWdWoW}W�W�W`0��W�W�W�0J�W��W@1`�W�1X�4�$X�5�0X;XFXQX^XmX{X�X�X�X�X0BA�X�B�X�B�X�B3YC4Y@CM#Y�C#�[3Y�C3KYD`Y DQtY�D�Y�D�Y�D�Y�D5�Y EH�YpEH�Y�E�
ZZ1Z�E�CZ`ZpMyrZ�M-~Z@QC�Z�Q��Z T��Z�ZU��Z�Z�Z�Z�Z[[�^w,[`_;[�_.O[�_ b[�_�n[x[``S�[�`�[�[�`��[�d��[�[Pe7�[@k9�[�k�\ m?\�s<!\D\Q\`\v\�\@z�\Pz��\�\0Z�\Ё=�\�3�\P��\p��]]�0]%]7]B]�)V]@�`v]����]�]@�Z�]���]�]�]�]�]	^д^�u"^p��0^8^I^��?W^�]^h^^�^�^�^�^����^���^��M�^ �/__P�_$_p�q2_��iG_]_j_}_�_�_�_`��_��i�_�_`��H(`@�)<`Y`p�1r`��)�`�`��1�` �)�`�`P�1�`��1a��1a�).a@�a<aJa��-Ua��-da��4xa��6�a��6�a��6�a��3�a���a����a�.�a���a	bb�J*b�:b��GbUb^b�$ibxb�b�b`R�b��b B�bp��b�b`$B�b�$K
cc%�%c7c�&�
Hc�1)Uc�2�fcwc`4��c 5�c@5E�c�c�5D�c�5n�c�c�cdd)dDdUdhd�sd�d�d�d�d�d�d�d�d�dePENe.annobin_string.c.annobin_string.c_end.annobin_string.c.hot.annobin_string.c_end.hot.annobin_string.c.unlikely.annobin_string.c_end.unlikely.annobin_string.c.startup.annobin_string.c_end.startup.annobin_string.c.exit.annobin_string.c_end.exit.annobin_str_capacity.start.annobin_str_capacity.end.annobin_rb_str_empty.start.annobin_rb_str_empty.endrb_str_empty.annobin_str_utf8_nth.start.annobin_str_utf8_nth.endstr_utf8_nth.annobin_rb_str_each_byte_size.start.annobin_rb_str_each_byte_size.endrb_str_each_byte_size.annobin_sym_to_sym.start.annobin_sym_to_sym.endsym_to_sym.annobin_get_actual_encoding.start.annobin_get_actual_encoding.endget_actual_encoding.annobin_get_encoding.start.annobin_get_encoding.endget_encoding.annobin_sym_printable.start.annobin_sym_printable.endsym_printable.annobin_mustnot_wchar.start.annobin_mustnot_wchar.endmustnot_wchar.annobin_empty_str_alloc.start.annobin_empty_str_alloc.endempty_str_alloc.annobin_enc_succ_char.start.annobin_enc_succ_char.endenc_succ_char.annobin_str_make_independent_expand.start.annobin_str_make_independent_expand.endstr_make_independent_expand.annobin_str_new0.start.annobin_str_new0.endstr_new0.annobin_str_new_static.start.annobin_str_new_static.end.annobin_rb_str_bytesize.start.annobin_rb_str_bytesize.endrb_str_bytesize.annobin_rb_str_getbyte.start.annobin_rb_str_getbyte.endrb_str_getbyte.annobin_rb_str_ord.start.annobin_rb_str_ord.end.annobin_trnext.start.annobin_trnext.endtrnext.annobin_chopped_length.start.annobin_chopped_length.endchopped_length.annobin_sym_empty.start.annobin_sym_empty.endsym_empty.annobin_sym_encoding.start.annobin_sym_encoding.endsym_encoding.annobin_sym_to_proc.start.annobin_sym_to_proc.endsym_to_procsym_proc_cache.16134sym_call.annobin_rb_str_enumerate_bytes.start.annobin_rb_str_enumerate_bytes.endrb_str_enumerate_bytes.annobin_rb_str_each_byte.start.annobin_rb_str_each_byte.endrb_str_each_byte.annobin_rb_str_bytes.start.annobin_rb_str_bytes.endrb_str_bytes.annobin_tr_setup_table.start.annobin_tr_setup_table.endtr_setup_table.annobin_rb_str_oct.start.annobin_rb_str_oct.endrb_str_oct.annobin_rb_str_hex.start.annobin_rb_str_hex.endrb_str_hex.annobin_rb_str_to_f.start.annobin_rb_str_to_f.endrb_str_to_f.annobin_rb_str_format_m.start.annobin_rb_str_format_m.endrb_str_format_m.annobin_must_not_null.part.3.start.annobin_must_not_null.part.3.endmust_not_null.part.3.annobin_rb_str_unlocktmp.start.annobin_rb_str_unlocktmp.end.annobin_rb_str_check_dummy_enc.start.annobin_rb_str_check_dummy_enc.endrb_str_check_dummy_enc.annobin_lstrip_offset.isra.12.part.13.start.annobin_lstrip_offset.isra.12.part.13.endlstrip_offset.isra.12.part.13.annobin_sym_call.start.annobin_sym_call.end.annobin_rb_str_subpat.start.annobin_rb_str_subpat.endrb_str_subpat.annobin_tr_find.part.17.start.annobin_tr_find.part.17.endtr_find.part.17.annobin_rb_str_match.start.annobin_rb_str_match.endrb_str_matchrb_intern_id_cache.14558.annobin_sym_match.start.annobin_sym_match.endsym_match.annobin_scan_once.part.23.start.annobin_scan_once.part.23.endscan_once.part.23.annobin_rb_str_to_i.start.annobin_rb_str_to_i.endrb_str_to_i.annobin_rstrip_offset.start.annobin_rstrip_offset.endrstrip_offsetisspacetable.annobin_rb_str_sum.start.annobin_rb_str_sum.endrb_str_sumrb_intern_id_cache.15879.annobin_fstring_set_class_i.start.annobin_fstring_set_class_i.endfstring_set_class_i.annobin_rb_str_force_encoding.start.annobin_rb_str_force_encoding.endrb_str_force_encoding.annobin_str_modify_keep_cr.start.annobin_str_modify_keep_cr.endstr_modify_keep_cr.annobin_rb_str_chop_bang.start.annobin_rb_str_chop_bang.endrb_str_chop_bang.annobin_rb_str_rstrip_bang.start.annobin_rb_str_rstrip_bang.endrb_str_rstrip_bang.annobin_rb_str_lstrip_bang.start.annobin_rb_str_lstrip_bang.endrb_str_lstrip_bang.annobin_rb_str_strip_bang.start.annobin_rb_str_strip_bang.endrb_str_strip_bang.annobin_rb_str_downcase_bang.start.annobin_rb_str_downcase_bang.endrb_str_downcase_bang.annobin_rb_str_swapcase_bang.start.annobin_rb_str_swapcase_bang.endrb_str_swapcase_bang.annobin_rb_str_capitalize_bang.start.annobin_rb_str_capitalize_bang.endrb_str_capitalize_bang.annobin_rb_str_upcase_bang.start.annobin_rb_str_upcase_bang.endrb_str_upcase_bang.annobin_rb_str_clear.start.annobin_rb_str_clear.endrb_str_clear.annobin_str_nth_len.start.annobin_str_nth_len.endstr_nth_len.annobin_str_offset.start.annobin_str_offset.end.annobin_coderange_scan.start.annobin_coderange_scan.endcoderange_scan.annobin_rb_enc_cr_str_copy_for_substr.start.annobin_rb_enc_cr_str_copy_for_substr.endrb_enc_cr_str_copy_for_substr.annobin_rb_fstring.start.annobin_rb_fstring.endfstr_update_callback.annobin_rb_setup_fake_str.start.annobin_rb_setup_fake_str.end.annobin_rb_fstring_new.start.annobin_rb_fstring_new.end.annobin_rb_str_coderange_scan_restartable.start.annobin_rb_str_coderange_scan_restartable.end.annobin_rb_enc_str_coderange.start.annobin_rb_enc_str_coderange.end.annobin_rb_str_hash.start.annobin_rb_str_hash.end.annobin_rb_str_hash_m.start.annobin_rb_str_hash_m.endrb_str_hash_m.annobin_str_succ.start.annobin_str_succ.end__PRETTY_FUNCTION__.14670.annobin_mustnot_broken.start.annobin_mustnot_broken.endmustnot_broken.annobin_rb_str_is_ascii_only_p.start.annobin_rb_str_is_ascii_only_p.endrb_str_is_ascii_only_p.annobin_rb_str_valid_encoding_p.start.annobin_rb_str_valid_encoding_p.endrb_str_valid_encoding_p.annobin_chompped_length.start.annobin_chompped_length.endchompped_length.annobin_rb_enc_str_asciionly_p.start.annobin_rb_enc_str_asciionly_p.end.annobin_rb_str_capacity.start.annobin_rb_str_capacity.end.annobin_rb_str_new.start.annobin_rb_str_new.end.annobin_rb_usascii_str_new.start.annobin_rb_usascii_str_new.end.annobin_rb_utf8_str_new.start.annobin_rb_utf8_str_new.end.annobin_rb_enc_str_new.start.annobin_rb_enc_str_new.end.annobin_rb_str_new_cstr.start.annobin_rb_str_new_cstr.end.annobin_rb_usascii_str_new_cstr.start.annobin_rb_usascii_str_new_cstr.end.annobin_rb_utf8_str_new_cstr.start.annobin_rb_utf8_str_new_cstr.end.annobin_rb_enc_str_new_cstr.start.annobin_rb_enc_str_new_cstr.end.annobin_rb_str_new_static.start.annobin_rb_str_new_static.end.annobin_rb_usascii_str_new_static.start.annobin_rb_usascii_str_new_static.end.annobin_rb_utf8_str_new_static.start.annobin_rb_utf8_str_new_static.end.annobin_rb_enc_str_new_static.start.annobin_rb_enc_str_new_static.end.annobin_rb_tainted_str_new.start.annobin_rb_tainted_str_new.end.annobin_rb_tainted_str_new_cstr.start.annobin_rb_tainted_str_new_cstr.end.annobin_rb_str_new_frozen.start.annobin_rb_str_new_frozen.endstr_replace_shared__PRETTY_FUNCTION__.13825.annobin_fstr_update_callback.start.annobin_fstr_update_callback.end.annobin_str_replace_shared_without_enc.start.annobin_str_replace_shared_without_enc.endstr_replace_shared_without_enc.annobin_str_replace_shared.start.annobin_str_replace_shared.end.annobin_rb_str_new_shared.start.annobin_rb_str_new_shared.end.annobin_rb_sym_to_s.start.annobin_rb_sym_to_s.end.annobin_str_replace.start.annobin_str_replace.end__PRETTY_FUNCTION__.13891.annobin_rb_str_to_s.start.annobin_rb_str_to_s.endrb_str_to_s.annobin_rb_str_b.start.annobin_rb_str_b.endrb_str_b.annobin_rb_str_new_with_class.start.annobin_rb_str_new_with_class.end.annobin_rb_str_times.start.annobin_rb_str_times.end.annobin_rb_str_succ.start.annobin_rb_str_succ.end.annobin_sym_succ.start.annobin_sym_succ.endsym_succ.annobin_rb_str_dump.start.annobin_rb_str_dump.end.annobin_str_new_empty.start.annobin_str_new_empty.endstr_new_empty.annobin_str_byte_substr.start.annobin_str_byte_substr.endstr_byte_substr.annobin_rb_str_byteslice.start.annobin_rb_str_byteslice.endrb_str_byteslice.annobin_rb_str_buf_new.start.annobin_rb_str_buf_new.end.annobin_rb_str_tmp_new.start.annobin_rb_str_tmp_new.end.annobin_rb_alloc_tmp_buffer.start.annobin_rb_alloc_tmp_buffer.end.annobin_rb_free_tmp_buffer.start.annobin_rb_free_tmp_buffer.end.annobin_rb_str_free.start.annobin_rb_str_free.end.annobin_rb_str_memsize.start.annobin_rb_str_memsize.end.annobin_rb_str_to_str.start.annobin_rb_str_to_str.end.annobin_rb_str_shared_replace.start.annobin_rb_str_shared_replace.end.annobin_rb_obj_as_string.start.annobin_rb_obj_as_string.endid_to_s.annobin_rb_str_dup.start.annobin_rb_str_dup.end.annobin_rb_str_reverse.start.annobin_rb_str_reverse.endrb_str_reverse.annobin_rb_str_reverse_bang.start.annobin_rb_str_reverse_bang.endrb_str_reverse_bang.annobin_rb_str_swapcase.start.annobin_rb_str_swapcase.endrb_str_swapcase.annobin_sym_swapcase.start.annobin_sym_swapcase.endsym_swapcase.annobin_rb_str_capitalize.start.annobin_rb_str_capitalize.endrb_str_capitalize.annobin_sym_capitalize.start.annobin_sym_capitalize.endsym_capitalize.annobin_rb_str_downcase.start.annobin_rb_str_downcase.endrb_str_downcase.annobin_sym_downcase.start.annobin_sym_downcase.endsym_downcase.annobin_rb_str_upcase.start.annobin_rb_str_upcase.endrb_str_upcase.annobin_sym_upcase.start.annobin_sym_upcase.endsym_upcase.annobin_rb_str_resurrect.start.annobin_rb_str_resurrect.end.annobin_rb_enc_strlen.start.annobin_rb_enc_strlen.end.annobin_rb_enc_strlen_cr.start.annobin_rb_enc_strlen_cr.end.annobin_str_strlen.start.annobin_str_strlen.end.annobin_rb_str_length.start.annobin_rb_str_length.end.annobin_sym_length.start.annobin_sym_length.endsym_length.annobin_rb_str_each_char_size.start.annobin_rb_str_each_char_size.endrb_str_each_char_size.annobin_rb_strseq_index.start.annobin_rb_strseq_index.endrb_strseq_index.annobin_rb_pat_search.start.annobin_rb_pat_search.endrb_pat_search.annobin_rb_str_enumerate_codepoints.start.annobin_rb_str_enumerate_codepoints.endrb_str_enumerate_codepoints.annobin_rb_str_each_codepoint.start.annobin_rb_str_each_codepoint.endrb_str_each_codepoint.annobin_rb_str_codepoints.start.annobin_rb_str_codepoints.endrb_str_codepoints.annobin_rb_str_strlen.start.annobin_rb_str_strlen.end.annobin_rb_str_modify.start.annobin_rb_str_modify.end.annobin_str_buf_cat.start.annobin_str_buf_cat.end__PRETTY_FUNCTION__.14311.annobin_rb_str_setbyte.start.annobin_rb_str_setbyte.endrb_str_setbyte.annobin_rb_str_succ_bang.start.annobin_rb_str_succ_bang.endrb_str_succ_bang.annobin_rb_str_modify_expand.start.annobin_rb_str_modify_expand.end.annobin_str_fill_term.isra.24.start.annobin_str_fill_term.isra.24.endstr_fill_term.isra.24.annobin_rb_must_asciicompat.start.annobin_rb_must_asciicompat.end.annobin_rb_string_value.start.annobin_rb_string_value.end.annobin_rb_str_plus.start.annobin_rb_str_plus.end.annobin_rb_str_replace.start.annobin_rb_str_replace.end.annobin_rb_str_init.start.annobin_rb_str_init.endrb_str_init.annobin_str_compat_and_valid.start.annobin_str_compat_and_valid.endstr_compat_and_valid.annobin_rb_str_squeeze_bang.start.annobin_rb_str_squeeze_bang.endrb_str_squeeze_bang.annobin_rb_str_squeeze.start.annobin_rb_str_squeeze.endrb_str_squeeze.annobin_rb_str_delete_bang.start.annobin_rb_str_delete_bang.endrb_str_delete_bang.annobin_rb_str_delete.start.annobin_rb_str_delete.endrb_str_delete.annobin_tr_trans.start.annobin_tr_trans.endtr_trans.annobin_rb_str_tr_s_bang.start.annobin_rb_str_tr_s_bang.endrb_str_tr_s_bang.annobin_rb_str_tr_bang.start.annobin_rb_str_tr_bang.endrb_str_tr_bang.annobin_rb_str_tr_s.start.annobin_rb_str_tr_s.endrb_str_tr_s.annobin_rb_str_tr.start.annobin_rb_str_tr.endrb_str_tr.annobin_rb_str_count.start.annobin_rb_str_count.endrb_str_count.annobin_chomp_rs.start.annobin_chomp_rs.endchomp_rs.annobin_rb_str_chomp_bang.start.annobin_rb_str_chomp_bang.endrb_str_chomp_bang.annobin_rb_str_justify.start.annobin_rb_str_justify.endrb_str_justify.annobin_rb_str_center.start.annobin_rb_str_center.endrb_str_center.annobin_rb_str_rjust.start.annobin_rb_str_rjust.endrb_str_rjust.annobin_rb_str_ljust.start.annobin_rb_str_ljust.endrb_str_ljust.annobin_rb_str_end_with.start.annobin_rb_str_end_with.endrb_str_end_with.annobin_rb_str_start_with.start.annobin_rb_str_start_with.endrb_str_start_with.annobin_rb_str_include.start.annobin_rb_str_include.endrb_str_include.annobin_rb_str_crypt.start.annobin_rb_str_crypt.endrb_str_crypt.annobin_rb_str_casecmp.start.annobin_rb_str_casecmp.endrb_str_casecmp.annobin_sym_casecmp.start.annobin_sym_casecmp.endsym_casecmp.annobin_rb_string_value_ptr.start.annobin_rb_string_value_ptr.end.annobin_rb_str_change_terminator_length.start.annobin_rb_str_change_terminator_length.end__PRETTY_FUNCTION__.14116.annobin_rb_string_value_cstr.start.annobin_rb_string_value_cstr.end.annobin_rb_str_fill_terminator.start.annobin_rb_str_fill_terminator.end.annobin_rb_check_string_type.start.annobin_rb_check_string_type.end.annobin_get_pat_quoted.start.annobin_get_pat_quoted.endget_pat_quoted.annobin_rb_str_scan.start.annobin_rb_str_scan.endrb_str_scan.annobin_string_for_symbol.start.annobin_string_for_symbol.endstring_for_symbol.annobin_rb_str_match_m.start.annobin_rb_str_match_m.endrb_str_match_mrb_intern_id_cache.14569.annobin_rb_str_s_try_convert.start.annobin_rb_str_s_try_convert.endrb_str_s_try_convert.annobin_rb_enc_nth.start.annobin_rb_enc_nth.end.annobin_rb_str_offset.start.annobin_rb_str_offset.end.annobin_rb_str_sublen.start.annobin_rb_str_sublen.end.annobin_rb_str_rindex.start.annobin_rb_str_rindex.endrb_str_rindex.annobin_rb_str_rindex_m.start.annobin_rb_str_rindex_m.endrb_str_rindex_m.annobin_rb_str_index_m.start.annobin_rb_str_index_m.endrb_str_index_m.annobin_rb_str_subseq.start.annobin_rb_str_subseq.end.annobin_rb_str_split_m.start.annobin_rb_str_split_m.endrb_str_split_m.annobin_rb_str_rpartition.start.annobin_rb_str_rpartition.endrb_str_rpartition.annobin_rb_str_partition.start.annobin_rb_str_partition.endrb_str_partition.annobin_rb_str_enumerate_chars.start.annobin_rb_str_enumerate_chars.endrb_str_enumerate_chars.annobin_rb_str_each_char.start.annobin_rb_str_each_char.endrb_str_each_char.annobin_rb_str_chars.start.annobin_rb_str_chars.endrb_str_chars.annobin_rb_str_enumerate_lines.start.annobin_rb_str_enumerate_lines.endrb_str_enumerate_lines.annobin_rb_str_each_line.start.annobin_rb_str_each_line.endrb_str_each_line.annobin_rb_str_lines.start.annobin_rb_str_lines.endrb_str_lines.annobin_rb_str_sub_bang.start.annobin_rb_str_sub_bang.endrb_str_sub_bang__PRETTY_FUNCTION__.14902.annobin_rb_str_sub.start.annobin_rb_str_sub.endrb_str_sub.annobin_rb_str_rstrip.start.annobin_rb_str_rstrip.endrb_str_rstrip.annobin_rb_str_lstrip.start.annobin_rb_str_lstrip.endrb_str_lstrip.annobin_rb_str_strip.start.annobin_rb_str_strip.endrb_str_strip.annobin_rb_str_chomp.start.annobin_rb_str_chomp.endrb_str_chomp.annobin_rb_str_chop.start.annobin_rb_str_chop.endrb_str_chop.annobin_rb_str_subpos.start.annobin_rb_str_subpos.end.annobin_rb_str_substr.start.annobin_rb_str_substr.end.annobin_rb_str_chr.start.annobin_rb_str_chr.endrb_str_chr.annobin_rb_str_aref_m.start.annobin_rb_str_aref_m.endrb_str_aref_m.annobin_sym_aref.start.annobin_sym_aref.endsym_aref.annobin_rb_str_locktmp.start.annobin_rb_str_locktmp.end.annobin_rb_str_locktmp_ensure.start.annobin_rb_str_locktmp_ensure.end.annobin_rb_str_set_len.start.annobin_rb_str_set_len.end.annobin_rb_str_resize.start.annobin_rb_str_resize.end.annobin_rb_str_conv_enc_opts.start.annobin_rb_str_conv_enc_opts.end.annobin_rb_str_conv_enc.start.annobin_rb_str_conv_enc.end.annobin_rb_external_str_with_enc.start.annobin_rb_external_str_with_enc.end.annobin_rb_external_str_new_with_enc.start.annobin_rb_external_str_new_with_enc.end.annobin_rb_external_str_new.start.annobin_rb_external_str_new.end.annobin_rb_external_str_new_cstr.start.annobin_rb_external_str_new_cstr.end.annobin_rb_locale_str_new.start.annobin_rb_locale_str_new.end.annobin_rb_locale_str_new_cstr.start.annobin_rb_locale_str_new_cstr.end.annobin_rb_filesystem_str_new.start.annobin_rb_filesystem_str_new.end.annobin_rb_filesystem_str_new_cstr.start.annobin_rb_filesystem_str_new_cstr.end.annobin_rb_str_export.start.annobin_rb_str_export.end.annobin_rb_str_export_locale.start.annobin_rb_str_export_locale.end.annobin_rb_str_export_to_enc.start.annobin_rb_str_export_to_enc.end.annobin_rb_str_freeze.start.annobin_rb_str_freeze.end.annobin_rb_str_cat.start.annobin_rb_str_cat.end.annobin_rb_str_buf_new_cstr.start.annobin_rb_str_buf_new_cstr.end.annobin_rb_enc_cr_str_buf_cat.start.annobin_rb_enc_cr_str_buf_cat.endrb_enc_cr_str_buf_cat.annobin_rb_str_cat_cstr.start.annobin_rb_str_cat_cstr.end.annobin_rb_enc_str_buf_cat.start.annobin_rb_enc_str_buf_cat.end.annobin_rb_str_buf_cat_ascii.start.annobin_rb_str_buf_cat_ascii.end.annobin_rb_str_buf_append.start.annobin_rb_str_buf_append.end.annobin_str_gsub.start.annobin_str_gsub.end.annobin_rb_str_gsub_bang.start.annobin_rb_str_gsub_bang.endrb_str_gsub_bang.annobin_rb_str_gsub.start.annobin_rb_str_gsub.endrb_str_gsub.annobin_rb_str_append.start.annobin_rb_str_append.end.annobin_rb_str_concat.start.annobin_rb_str_concat.end.annobin_rb_str_comparable.start.annobin_rb_str_comparable.end.annobin_rb_str_hash_cmp.start.annobin_rb_str_hash_cmp.end.annobin_fstring_cmp.start.annobin_fstring_cmp.endfstring_cmp.annobin_str_eql.start.annobin_str_eql.end.annobin_rb_str_equal.start.annobin_rb_str_equal.endrb_intern_id_cache.14437.annobin_rb_str_eql.start.annobin_rb_str_eql.endrb_str_eql.annobin_rb_str_cmp.start.annobin_rb_str_cmp.end.annobin_rb_str_upto.start.annobin_rb_str_upto.endrb_str_uptorb_intern_id_cache.14691rb_intern_id_cache.14715.annobin_rb_str_cmp_m.start.annobin_rb_str_cmp_m.endrb_str_cmp_mrb_intern_id_cache.14449.annobin_sym_cmp.start.annobin_sym_cmp.endsym_cmp.annobin_rb_str_drop_bytes.start.annobin_rb_str_drop_bytes.end.annobin_rb_str_splice_0.start.annobin_rb_str_splice_0.endrb_str_splice_0__PRETTY_FUNCTION__.14778.annobin_rb_str_subpat_set.start.annobin_rb_str_subpat_set.endrb_str_subpat_set.annobin_rb_str_update.start.annobin_rb_str_update.end.annobin_rb_str_prepend.start.annobin_rb_str_prepend.endrb_str_prepend.annobin_rb_str_insert.start.annobin_rb_str_insert.endrb_str_insert.annobin_rb_str_aset_m.start.annobin_rb_str_aset_m.endrb_str_aset_m.annobin_rb_str_slice_bang.start.annobin_rb_str_slice_bang.endrb_str_slice_bang.annobin_rb_str_buf_cat_escaped_char.start.annobin_rb_str_buf_cat_escaped_char.end.annobin_rb_str_inspect.start.annobin_rb_str_inspect.end.annobin_rb_str_split.start.annobin_rb_str_split.end.annobin_rb_str_setter.start.annobin_rb_str_setter.end.annobin_rb_str_ellipsize.start.annobin_rb_str_ellipsize.endellipsis.16002.annobin_rb_enc_str_scrub.start.annobin_rb_enc_str_scrub.endreplace.16056replace.16055replace.16053replace.16052replace.16054replace.16037replace.16036.annobin_rb_str_scrub.start.annobin_rb_str_scrub.end.annobin_str_scrub_bang.start.annobin_str_scrub_bang.endstr_scrub_bang.annobin_str_scrub.start.annobin_str_scrub.end.annobin_rb_str_symname_p.start.annobin_rb_str_symname_p.end.annobin_sym_inspect.start.annobin_sym_inspect.endsym_inspect.annobin_rb_str_quote_unprintable.start.annobin_rb_str_quote_unprintable.end.annobin_rb_id_quote_unprintable.start.annobin_rb_id_quote_unprintable.end.annobin_rb_to_id.start.annobin_rb_to_id.end.annobin_rb_to_symbol.start.annobin_rb_to_symbol.end.annobin_Init_String.start.annobin_Init_String.end__PRETTY_FUNCTION__.16195.annobin_Init_frozen_strings.start.annobin_Init_frozen_strings.endfstring_hash_type__PRETTY_FUNCTION__.16199.LC0.LC1.LC3.LC2.LC4.LC5.LC6.LC7.LC8.LC10.LC9.LC11.LC12.LC14.LC13.LC15.LC16.LC17.LC18.LC19.LC20.LC22.LC21.LC25.LC24.LC23.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC35.LC34.LC36.LC38.LC37.LC39.LC40.LC41.LC42.LC44.LC43.LC45.LC46.LC47.LC48.LC49.LC50.LC52.LC51.LC53.LC54.LC55.LC56.LC57.LC58.LC60.LC59.LC61.LC64.LC62.LC63.LC66.LC65.LC67.LC68.LC69.LC72.LC73.LC74.LC70.LC71.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.LC120.LC121.LC122.LC123.LC124.LC125.LC126.LC127.LC128.LC129.LC130.LC131.LC132.LC133.LC134.LC135.LC136.LC137.LC138.LC139.LC140.LC141.LC142.LC143.LC144.LC145.LC146.LC147.LC148.LC149.LC150.LC151.LC152.LC153.LC154.LC155.LC156.LC157.LC158.LC159.LC160.LC161.LC162.LC163.LC164.LC165.LC166.LC167.LC168.LC169.LC170.LC171.LC172.LC173.LC174.LC175.LC176.LC177.LC178.LC179.LC180.LC181.LC182.LC183.LC184.LC185.LC186.LC187.LC188.LC189.LC190.LC191.LC192.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_enc_get_from_indexrb_enc_from_indexrb_ascii8bit_encodingrb_enc_get_indexrb_enc_precise_mbclenrb_eArgErrorrb_raiserb_newobj_ofmemsetruby_xmalloc2memcpyrb_enc_associate_indexrb_int2bigrb_num2longrb_str_ordrb_enc_codepoint_lenrb_enc_ascgetonigenc_get_prev_char_headrb_sym2strrb_obj_encodingrb_sym2idrb_gc_writebarrier_unprotectrb_proc_newrb_block_clear_env_selfrb_ary_tmp_newrb_gc_register_mark_objectrb_ary_storerb_block_given_prb_ary_pushrb_yieldrb_ary_new_caparb_warningrb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_hash_arefrb_hash_asetrb_hash_new__stack_chk_failrb_str_to_inumrb_str_to_dblrb_float_new_in_heaprb_check_array_typerb_str_formatrb_out_of_intrb_str_unlocktmprb_eRuntimeErrorrb_enc_dummy_prb_eEncCompatErrorrb_isspacerb_funcall_with_blockrb_reg_searchrb_backref_getrb_reg_backref_numberrb_reg_nth_matchrb_hash_lookuprb_reg_matchrb_funcallrb_intern2rb_eTypeErrorrb_enc_fast_mbclenrb_scan_argsrb_num2intrb_fix2intrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_error_frozen_objectrb_to_encodingrb_enc_associaterb_enc_getmemmoverb_enc_tolowerrb_enc_toupperruby_xfreerb_enc_mbclenrb_enc_to_indexrb_enc_set_indexrb_fstringrb_check_typest_updaterb_setup_fake_strrb_cStringrb_fstring_newrb_str_coderange_scan_restartablerb_enc_str_coderangerb_str_hashrb_memhashrb_isalpharb_isdigit__memcpy_chkruby_xrealloc2__assert_failrb_default_rsonigenc_get_left_adjust_char_headrb_enc_checkmemcmprb_enc_str_asciionly_prb_str_capacityrb_str_newrb_usascii_str_newrb_utf8_str_newrb_enc_str_newrb_str_new_cstrrb_usascii_str_new_cstrrb_utf8_str_new_cstrrb_enc_str_new_cstrrb_str_new_staticrb_usascii_str_new_staticrb_utf8_str_new_staticrb_enc_str_new_staticrb_tainted_str_newrb_tainted_str_new_cstrrb_str_new_frozenrb_obj_classrb_freeze_singleton_classrb_str_dup_frozenrb_objspace_garbage_object_prb_str_new_sharedrb_sym_to_srb_str_new_with_classrb_str_timesrb_str_succrb_str_internrb_str_dumprb_utf8_encodingrb_isprintruby_snprintfrb_enc_copyrb_range_beg_lenrb_error_arityrb_str_buf_newrb_str_tmp_newrb_alloc_tmp_bufferrb_free_tmp_bufferrb_str_freest_deleterb_str_memsizerb_str_to_strrb_convert_typerb_str_shared_replacerb_obj_as_stringrb_any_to_srb_str_duprb_str_resurrectrb_enc_strlenrb_enc_strlen_crrb_str_lengthonigenc_get_right_adjust_char_headrb_memsearchrb_reg_search0rb_backref_set_stringrb_backref_setrb_str_strlenrb_str_modifyrb_eIndexErrorrb_str_modify_expandrb_must_asciicompatrb_string_valuerb_str_plusrb_str_replacerb_enc_codelenrb_rsrb_sys_failrb_enc_compatiblerb_toupperrb_string_value_ptrrb_str_change_terminator_lengthrb_string_value_cstrmemchrrb_str_fill_terminatorrb_check_string_typerb_check_convert_typerb_reg_new_strrb_ary_newrb_reg_regcomprb_funcallvrb_enc_nthrb_str_offsetrb_str_sublenmemrchrrb_obj_classnamerb_str_subseqrb_fsrb_ary_poprb_ary_new_from_valuesrb_enc_from_encodingrb_str_encoderb_reg_regsubrb_check_hash_typerb_str_subposrb_str_substrrb_str_locktmprb_str_locktmp_ensurerb_ensurerb_str_set_lenrb_bugrb_str_resizerb_str_conv_enc_optsrb_cEncodingConverterrb_obj_allocrb_econv_open_optsrb_econv_convertrb_econv_closerb_gc_force_recyclerb_str_conv_encrb_external_str_with_encrb_usascii_encodingrb_default_internal_encodingrb_external_str_new_with_encrb_external_str_newrb_default_external_encodingrb_external_str_new_cstrrb_locale_str_newrb_locale_encodingrb_locale_str_new_cstrrb_filesystem_str_newrb_filesystem_encodingrb_filesystem_str_new_cstrrb_str_exportrb_str_export_localerb_str_export_to_encrb_str_freezerb_obj_freezerb_str_catrb_str_buf_catrb_str_buf_new_cstrrb_str_cat_cstrrb_str_cat2rb_str_buf_cat2rb_enc_str_buf_catrb_str_buf_cat_asciirb_str_buf_appendrb_str_appendrb_str_concatrb_num_to_uintrb_eRangeErrorrb_str_comparablerb_str_hash_cmprb_str_equalrb_respond_torb_equalrb_str_cmprb_enc_sprintfrb_check_funcallrb_invcmprb_str_drop_bytesrb_str_updaterb_str_buf_cat_escaped_charrb_str_inspectrb_enc_unicode_prb_str_splitrb_str_setterrb_id2strrb_str_ellipsizeonigenc_step_backrb_enc_str_scrubrb_str_scrubrb_str_symname_prb_enc_symname_prb_str_quote_unprintablerb_id_quote_unprintablerb_to_idrb_intern_strrb_to_symbolInit_Stringrb_cObjectrb_define_classrb_mComparablerb_include_modulerb_define_alloc_funcrb_define_singleton_methodrb_define_methodrb_define_variablerb_cSymbolrb_undef_alloc_funcrb_undef_methodrb_sym_all_symbolsrb_obj_equalst_foreachrb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassInit_frozen_stringsst_init_table_with_size����������O����������*�����������������������������_�������������������������������������������������:���������d��������������������������������������3���������N�����������������������������X��������������������*���������������������������������������	���������S	���������o	*���������v	����������	���������\
����������
���������c���������{�����������������������������*���������(��������/���������K��������R�������������������
���������
���������2
���������I
����������
����������
+�
����������
,���������#,0���������i����������������������������������������,�����������,��������������������R����������������������������������������������������������������������������������������������������������;��������[��������������������������E��������s������������������������������������*�������������������*	��������"��������,���������5
��������B*��������M��������W�����������������������������*����������������������������'��������A��������O�����������������������������������Cp��������u���������*����������������������������������������������������������������$�������������������	��������������������������*���������
�����������������3��������A�������������������������������������������������3$U��������n��������������������������	������������������������9���������������������������$����������*	�����������������������������������C��������a���������������������������*	���������
���������������������������( ��������b*	��������i
��������s���������� ��������F��������� ���������� !��������� ����������!!���������!���������*#����������#"��������$
���������$����������$"��������#%#���������%���������&���������=&"���������&#���������'����������(#���������(
���������(��������M)$���������)
���������)*	���������)
���������)���������6*%���������*
��������^+%��������K,&���������,����������,
���������,����������.'��������6/
��������t/����������/
��������u0)���������0D�0*��������1&��������'1*,��������[1*,���������1(���������1���������1&��������2���������3
���������3����������4����������4
��������i5����������51���������51���������5/��������	6���������)60��������A7���������f72��������x73���������7����������74��������68���������_84���������8����������84��������9���������t9����������9����������9���������:���������):����������:3���������:2���������:4��������<;���������X;���������v;4���������;����������;����������;4��������	< ��������`<5���������<!���������<!���������</��������
=���������T=
��������o=����������=����������=���������
>�>�������� >��������%>6��������5>/��������M>��������X>*���������b>���������y>/���������>/��������?*7��������? ���������?8���������?8���������?���������@ ��������\@9��������i@/���������@:���������@8���������@ ��������`A8���������A8��������B���������TB
��������`B/���������B ���������B*,���������B=���������B'��������C*,��������+C���������[C*,��������tC���������CB���������CA���������C'��������DA��������D���������<DB��������\D*���������cD��������mD����������D*,���������D*,���������D*,���������D&��������E*,��������)E=��������yEA��������FM���������F����������F����������G'��������vHN���������H����������H��������&I��������vI����������I����������I�l�I���������I���������I6���������IL��������$JP��������kJ@���������JN��������{K���������LL���������L��������M��������5M'��������dM���������yMM���������M����������M���������N*,��������
N����������N'���������O�\�O���������O���������O6��������4P���������GP��������{P���������PM���������P*,���������P���������Q*,��������
Q���������XQ ��������dQM���������Q ��������RS��������FR���������nR����������R���������7S*���������>S��������HS���������tS����������S���������T*���������T��������T���������DTS���������T����������TU��������U ��������UX���������UB���������US���������VY��������RW����������W���������WZ���������W����������W���������X
���������X
��������eYY��������tY���������YZ���������Y���������Z��������OZ��������eZZ��������uZB���������ZS���������Z[���������[ ���������[S���������['���������\L���������\M���������\����������\���������]
���������]\���������^����������^����������^����������^]���������^*,���������^���������B_����������__��������`$��������3`DD`c���������` ���������`���������`���������a���������2b��������]b$���������c��������ed���������d���������d*	���������d
���������d����������d<�d��������^eM��������ke����������eS���������f����������f%��������3g��������Jg���������h'���������h����������h
��������big��������jj��������&j���������.jj��������Vjj��������vj���������~jj���������jj���������j����������jj���������jj��������k���������kj��������Uk*,��������]k����������k%��������l
���������l%���������m����������m
���������n����������om��������np%���������pX���������p
���������q%���������r��������t����������t9���������t/���������uo���������up��������$v9��������/v/���������wL���������wr���������w��������xs��������pxL���������x����������x����������x���������	y����������y����������y����������y����������y����������y����������y���������y���������fz���������z ���������z*	���������z
���������z���������{ ��������K{u���������{�,�{���������{��������|6��������W|5���������|���������H}���������k}����������}����������}*���������~��������
~���������N~��������Y~u���������~���������~*v���������~���������~������������������u��������? ��������y��������%�5��������E�*���������L���������V����������]�*���������d���������n����������u�*	��������|�
���������������������w��������
����������� ���������������������*	����������
��������ˁ���������ց ���������
���������*������������������	����������+�e��������u�y����������9���������*,������������������&����������]�&��������g�'��������X������������y�������������������$��������,�*	��������3�
��������=����������z�	�������������������{����������y����������/���������
���������*��������� ��������&����������-�*���������9�!��������C�����������y��������(�9��������:������������ ��������A�
��������i����������s�����������j��������R�y��������_�9��������A������������ ����������
��������ٍ�������������������]���������j����������y����������y����������9���������9��������.�9��������Ӑ�����������������������������B����������[�|����������������������������!�5��������d�:��������?���������(�|�������������������v������������|������������������ٖ���������$��������8�"��������P�����������������������|���������|��������9�5��������{�:������������������m��������������������������������$��������ə���������j��������O�j��������Қy��������ߚ9�������������������D�
����������/�������������������F�
����������y��������͝9��������?���������P�]����������y����������*}����������]��������l� ��������Ɵ�����������#�����������������N�$��������Q�M����������������������������������������
����������0����������������������y����������9��������'�*���������.�%��������8����������D���������������������̤����������j��������;����������Q�*���������X���������b����������;�8��������]�y��������j�9��������ܦ:����������:����������y��������ŧ9����������:��������W�y����������y����������&���������~��������"�A��������`�*���������g�'��������q����������x�(��������}�����������y��������©���������e����������r���������������������˪����������%����������%��������"�:�������������������«������������������������������y��������l��<x��������������������6����������*	����������
���������������������y��������Ѯ ������������������$� ��������=�*���������D�)��������N����������Ư%���������u���������*���������&�*��������0����������n� ���������������������������������������$�/��������5����������<�+��������F�*��������P����������i�)��������̱���������B�������������������������������8�*	��������?���������I����������d������������*����������,��������������������������������	��������������������A����������h�-��������m���������w���)����������]���������%��������Y�X��������t�
��������J�%��������6���������h�9��������s�/�������������������պ8���������:�������������������Z�:��������`�#��������j����������������������������T����������Ľ����������s������������������5����������<�.��������F�*��������P����������o�#�������������������9��������B���������M����������l����������������������s��������$����������<����������]����������d�.��������n�*��������x������������ ���������S����������L����������Q���������/�����������������&�*���������W���������������������������������������c��������������������������������/��������a������������������������������6����������A������������������������������������������������������q�����������������������������������������W���������h����������s������������/��������������������������������������I����������y������������9���������p��������4�o���������������������������������������������������������������
��������d����������|������������������������������������������������������O���������\���������f���������������������������������.����������*�������������������@����������y�������������������������������@����������|�L���������� �������������������8����������R�%��������e����������r���������������������������������������������������&����������1����������9����������Q����������c�0��������m������������*}��������������������L��������4�y��������X�*7��������k�9������������������������������������������������������������+����������e�1��������j�����������������������	��������������������2����������=������������������������������F�p��������e�o������������������+����������[�%��������t������������*	���������������������������������������������������� ��������$����������4�
�������������������3���������������������������������u��������������������!��������������������� ��������4���������K������������ ��������B�5��������v����������������������h������������������������������������������h��������.�y��������x���������������������6������������]����������*	�������������������������������*	����������
��������������������� ����������*��������������������������������	����������6��������1�j��������������������������������X��������)����������?� ����������S����������L����������M��������������������������������\����������������������������������������)����������@������������j����������]��������������������*	���������3������������������2����������<�*��������c� ��������t�����������<��������-�*	��������4�4��������>����������K�5��������R����������Y�*	��������`�
��������j���������������������� ������������������������������4�$����������5���������������������*���������������������������������*	����������
�������������������;����������h�=����������*�������������������������������e�����������������������������������������������������D�
��������V�/��������~�j���������������������������������������6� ������������������������������������������/�������������������������������@��������Q����������~������������B��������������������������������B��������1����������^����������i�B������������������������������y������������*���������������������������������B����������^��������������������'��������A����������N�����������������������'������������������������������`�
����������
����������/��������+����������8����������K� ��������V�*��������`����������g�*���������n����������x������������B���������&��������O�����������|��������4�
��������D�B��������i��������������������A������������]������������������;�^��������{���������������������������������������O�g������������������������������������������������"����������*�h��������k�*	��������r�6��������|�������������������������������h����������j�������������������$�M��������t������������������������������
�����������������
���������#���������5y��������I*	��������P��������Z����������y������������������*���������X���������c*���������m7��������z��������������������*����������8�����������������������������|�����������������������������������������������*���������5��������n��������z*����������9�������������������*����������:������������������ /��������+/�����������������������������������������������������������
�����������������:�������������������������������������O����������:���������4����������0��������5��������?4�:��������O������������������������������#���������������������������
	#	y��������0	9��������;	/���������	@���������	���������O
3��������u
3���������
3���������
��������� ;��������%��������/A���������I���������\�������������������j��������������������������������������
�����������������.y��������=����������������������������
y��������
/��������g
3���������
���������
��������"<��������'C��������/���������k��������s��������������������������������������=����������������������������>����������������$.��������a��������r��������������������������������������������������������0���������;������������������� ��������:!��������yL���������$���������*	���������
������������������
u��������d����������!��������� ��������= ���������!������������������|5���������������������������������������6������������������*������������������������������������y��������9��������3��������Y*v��������`?��������j���������q*v��������x@�������������������*v���������A�������������������y��������9������������������*v����������������������������*v���������B�������������������y���������y������������������2���������D����������\�����������������2���������}����������������������������$���������4���������D���������^]��������e*v��������lC��������v����������=��������]��������bD��������qZ��������yB�������������������E���������Z���������F���������Z��������
G��������Z��������/Y��������EH��������TZ��������^�������������������^�������������������������������������&��������2I������������������	 ���������H Y��������� I��������� ����������!���������
"J��������?"�P�"E���������"Z���������"B��������4#����������#����������#
���������#
��������$���������&$���������Z$��������w$y��������$A���������$����������$K���������$*���������$���������% ��������v%����������%���%>���������%����������%����������%���������&���������&��&&>��������8&���������C&���������T&
��������i&��n&S��������|&���������&
���������&���&����������&*v���������&B���������&���������'���������O'
��������_'&��������(���������u(����������(&���������('��������)
��������d)^���������)����������)@���������)����������)����������)����������*����������*����������*���*��+^��������f+@��������n+����������+����������+
��������.-����������-����������.���.^���������.����������.@���������.���������'/���������^/����������/���/���������K0���������`0���0^���������0���0��%1@��������-1���������f1����������1*����������1L���������1���������(2���������92{��������W2]��������x2����������2����������2]���������2����������2/��������'3B��������73���������a3���������y3����������3����������3����������3����������3!��������4@��������;4���������u4)��������z4����������4/��������	5���������)5����������5���������5*����������5���������6*���������
6*,��������6���������+6���������A6M��������F6���������\6N��������a6���������h6*{��������w6O��������6����������6P���������6����������6*����������6Q���������6����������6R���������6����������6S���������6����������6T��������7���������7U��������7���������$7*z��������37V��������87���������?7*T��������N7W��������S7���������i7X��������n7����������7Y���������7����������7Z���������7����������7[���������7����������7*n���������7\���������7����������7]���������7���������8^��������8���������8_��������8���������48��������98���������O8-��������T8���������[8*U��������g8;��������o8����������8`���������8����������8a���������8����������8b���������8����������8c���������8����������8d���������8����������8e��������9���������9f��������9���������.9g��������39���������F9h��������K9���������a9i��������f9���������|9j���������9����������9k���������9����������9l���������9����������9m���������9����������9*����������9n���������9���������:o��������:���������:p��������:���������0:q��������5:���������H:��������M:���������T:*���������`:r��������e:���������l:*W��������x:s��������}:����������:t���������:����������:u���������:����������:v���������:����������:w���������:����������:x���������:���������;y��������
;��������� ;z��������%;���������8;{��������=;���������P;|��������U;���������h;}��������m;����������;~���������;����������;���������;����������;����������;����������;����������;����������;����������;����������;���������<���������<���������<���������"<*���������1<���������9<���������K<��������P<���������f<���������k<����������<(���������<����������<*V���������<����������<����������<����������<����������<����������<����������<����������<����������<����������<���������=���������=���������=���������4=���������9=���������O=���������T=���������j=���������o=����������=����������=����������=����������=����������=����������=����������=����������=����������=����������=���������>���������>���������>���������#>���������6>���������;>���������Q>���������V>���������l>���������q>����������>����������>����������>����������>����������>����������>����������>����������>����������>����������>���������?���������?���������?���������"?���������8?���������=?���������S?���������X?���������n?���������s?����������?����������?����������?����������?����������?����������?����������?����������?����������?����������?���������
@���������@���������%@���������*@���������=@���������B@���������X@���������]@���������s@���������x@����������@����������@����������@����������@����������@����������@����������@*����������@����������@����������@����������@���������A���������A���������'A���������,A���������?A���������DA���������PAq��������UA��������\A*���������cA���������jA<zA����������A����������A����������A����������A����������A*����������A����������A����������A����������A���������B*���������B���������B���������B*���������/BQ��������7B���������JBR��������OB���������cBr��������hB���������oB*R��������|Bq���������B����������B����������B����������B����������B����������B����������B����������B����������B����������B;���������B���������Ca��������C���������-CP��������2C���������ICU��������NC���������eC��������jC����������CY���������C����������C����������C����������C\���������C����������C]���������C����������C_���������C���������D-��������	D���������Dt��������"D���������6Du��������;D���������ODv��������TD���������hDw��������mD����������D����������D����������DD�D*����������D*���������E*���������E*���������#E*���������2E��>E��������EE���������JE6��������[ECjE���������oE���������vED�E���E���������E����������E6��������������������������E��������������������������������������������������	����������
���������,���������������������������%���������
��������_��������:��������`��������N���������C=���������C=��������PD@���������TV���������`f��������2ei��������gj��������BjV���������jV���������jV��������2kV��������t���������%tn��������5tn��������Pwq��������Z���������������������W����������ȴ����������������������j������������������(�j����������j������������������H����������U�j��������w���������������������K����������&����������m���������������������e��������������������������������
����������E����������}��������������������������������5���������������������������������������������������^����������%����������2j���������4���������t5����������5����������5V���������D��������� ���B$,BPBX��B������������D�L�p�x�����������0�8�d�l�������������$�,�P�X��������������WD�LWpWx��W������	��	0�	8�	d�	l�	��	��
��	��
��
��
$�
,�
P�
Xn��
�n�n�?
�n�?
	?
	�
D	?
L	�
p	�
x	�
�	�
�	�
�	�
�	�
�

�0
�8
0d
�l
0�
0�
;�
0�
;�
;�
N$;,NPNX��N������������D�L�p�x)���)�)��
)
�0
�8
�d
�l
��
��
0�
��
0�
0�
[$0,[P[X��[��������cDLcpcx��c��������0�8�d�l������������I$�,IPIX+�I�+�+���+���ID�LIpIx��I�����w�w0w8LdwlL�L� �L� � �� $ ,� P� XA"�� �A"�A"�$�A"�$$]%D$L]%p]%x�&�]%��&��&��(�&�(0�(8�)d�(l�)��)��+��)��+��+�,,$�+,,,P,,X�.�,,��.��.�V0��.�V0V0�0DV0L�0p�0x:1��0�:1�:1��1:1�10�18�4d�1l�4��4�t5��4�t5�t5�6$t5,6P6X76�6�76�76�)>�76�)>)>f>D)>Lf>pf>x�>�f>��>��>��>�>�>0�>8&Bd�>l&B�&B�qB�&B�qB�qB��B$qB,�BP�BX�B��B��B��B��B��B��B�B4CD�BL4Cp4Cx�C�4C��C��C��C�C�C0�C8�Cd�Cl�C��C�D��C�D�D�qD$ D, qDP qDX �D� qD� �D� �D� �D� �D� �D!�D!�DD!�DL!�Dp!�Dx!E�!�D�!E�!E�!hE"E"hE0"hE8"�Ed"hEl"�E�"�E�"�I�"�E�"�I�"�I�"K$#�I,#KP#KX#M�#K�#M�#M�#lM�#M�#lM$lM$�MD$lML$�Mp$�Mx$N�$�M�$N�$N�$�P%N%�P0%�P8%�Pd%�Pl%�P�%�P�%>Q�%�P�%>Q�%>Q�%�Q$&>Q,&�QP&�QX&T�&�Q�&T�&T�&�T�&T�&�T'�T'�TD'�TL'�Tp'�Tx'�Z�'�T�'�Z�'�Z�'[(�Z([0([8(/]d([l(/]�(/]�(�^�(/]�(�^�(�^�(W_$)�^,)W_P)W_X)u_�)W_�)u_�)u_�)�_�)u_�)�_*�_*�_D*�_L*�_p*�_x*\`�*�_�*\`�*\`�*�`+\`+�`0+�`8+�`d+�`l+�`�+�`�+�d�+�`�+�d�+�d�+Oe$,�d,,OeP,OeX,�e�,Oe�,�e�,�e�,i�,�e�,i-i-�iD-iL-�ip-�ix-j�-�i�-j�-j�-Fj.j.Fj0.Fj8.jjd.Fjl.jj�.jj�.�j�.jj�.�j�.�j�.�j$/�j,/�jP/�jX/�j�/�j�/�j�/�j�/
k�/�j�/
k0
k06kD0
kL06kp06kx0yk�06k�0yk�0yk�0m1yk1m01m81_od1ml1_o�1_o�1�s�1_o�1�s�1�s�1t$2�s,2tP2tX2)t�2t�2)t�2)t�29t�2)t�29t39t3?wD39tL3?wp3?wx3-x�3?w�3-x�3-x�3z4-x4z04z84+zd4zl4+z�4+z�4>z�4+z�4>z�4>z�4Kz$5>z,5KzP5KzX5�z�5Kz�5�z�5�z�5~�5�z�5~6~6D6~L6p6x6*�6�6*�6*�6��7*7��07��87ρd7��l7ρ�7ρ�7
��7ρ�7
��7
��7C�$8
�,8C�P8C�X8a��8C��8a��8a��8A��8a��8A�9A�9��D9A�L9��p9��x9M��9���9M��9M��9w�:M�:w�0:w�8:��d:w�l:���:���:��:���:��:��:-�$;�,;-�P;-�X;ԙ�;-��;ԙ�;ԙ�;��;ԙ�;�<�<��D<�L<��p<��x<1��<���<1��<1��<n�=1�=n�0=n�8=T�d=n�l=T��=T��=���=T��=���=���=̟$>��,>̟P>̟X>f��>̟�>f��>f��>~��>f��>~�?~�?��D?~�L?��p?��x?���?���?���?���?$�@��@$�0@$�8@2�d@$�l@2��@2��@���@2��@���@���@��$A��,A��PA��XA���A���A���A���A��A���A�B�B9�DB�LB9�pB9�xB���B9��B���B���B4�C��C4�0C4�8C��dC4�lC���C���C���C���C���C���Co�$D��,Do�PDo�XDM��Do��DM��DM��D���DM��D��E��E��DE��LE��pE��xE̴�E���E̴�E̴�E�F̴F�0F�8Fe�dF�lFe��Fe��FI��Fe��FI��FI��F�$GI�,G�PG�XGT��G��GT��GT��G|��GT��G|�H|�H��DH|�LH��pH��xH��H���H��H��H��I�I��0I��8IW�dI��lIW��IW��Iv��IW��Iv��Iv��I��$Jv�,J��PJ��XJ���J���J���J���JE��J���JE�KE�K[�DKE�LK[�pK[�xKn��K[��Kn��Kn��K�Ln�L�0L�8LM�dL�lLM��LM��L���LM��L���L���L:�$M��,M:�PM:�XM��M:��M��M��MY��M��MY�NY�N{�DNY�LN{�pN{�xN��N{��N��N��N��O�O��0O��8O��dO��lO���O���O���O���O���O���O��$P��,P��PP��XP��P���P��P��PO��P��PO�QO�Qn�DQO�LQn�pQn�xQ���Qn��Q���Q���QY�R��RY�0RY�8Rq�dRY�lRq��Rq��R���Rq��R���R���R8�$S��,S8�PS8�XSi��S8��Si��Si��S���Si��S��T��T��DT��LT��pT��xT��T���T��T��TI�U�UI�0UI�8U��dUI�lU���U���U���U���U���U���U�$V��,V�PV�XV9��V��V9��V9��V���V9��V��W��W��DW��LW��pW��xW��W���W��W��W|�X�X|�0X|�8X��dX|�lX���X���X��X���X��X��X��$Y�,Y��PY��XY���Y���Y���Y���Y^�Y���Y^Z^Z�DZ^LZ�pZ�xZ��Z��Z��Z��Z�[�[�0[�8[�d[�l[��[��[��[��[��[��[�$\�,\�P\�X\�\��\�\�\��\�\�]�]ND]�L]Np]Nx]��]N�]��]��]�^�^�0^�8^2d^�l^2�^2�^��^2�^��^��^V$_�,_VP_VX_��_V�_��_��_��_��_�`�`�D`�L`�p`�x`��`��`��`��`�a�a�0a�8abda�lab�ab�az�ab�az�az�a$bz,bPbXbb�b�bb�bb�b^$�bb�b^$c^$c�$Dc^$Lc�$pc�$xc�$�c�$�c�$�c�$�c�&d�$d�&0d�&8d�1dd�&ld�1�d�1�d	2�d�1�d	2�d	2�d[2$e	2,e[2Pe[2Xe�2�e[2�e�2�e�2�em3�e�2�em3fm3fZ4Dfm3LfZ4pfZ4xf5�fZ4�f5�f5�f95g5g950g958g�5dg95lg�5�g�5�g�5�g�5�g�5�g�5�gNE$h�5,hNEPhNEXh�E�hNE�h�E � � � ��!�!�!�!�!t!H!6  : $> (B ,F 0J 4N 8R <V @Z D^ Hb Lf P@!T�!X�!\�!`�!d�!ht!lH!p�#t�#x�#|�#��#��#��#��#��#��#��#��#��#�@!�0 4PH�\�p��������0���(`d���	��	��
��
Pp�@
��
��
(�x0�@�P����<0h����0�`��Dp�����,�PP�0��P4�`��P�  $	!p	P"�	 $8
`%�
�&�($�)p�+�0,�.D`0x�0�@1��1
�4@
�5x
 6�
@6�
0>�
p>�>(�>t0B��B��B��B�C�@C(�CD�C`D| D��D��D��D��D E(pED�E��I�K MLpMl�M� N��P��P @QX�Q� T��T�U8�Zd [�0]�^,`_@�_`�_t�_�``��`��` �dXPe��e�ij, jHPjdpj��j��j��j�k�@k�kd m�`o��st40tH@t�@w�0x z00zD@zXPz��z� ~(0p���Ё���P�Hp�tP�����P���@�����0�� �4�`@��p��`���TП�p����������H0��@�������d ��� �� @�� ��<!@�x!���!���!p�"P�0"���"���"д�"��"p�(#P��# �$`�l$���$���$ �@%���%`��%���%���%��H&P�\&`�p&p��& �'P�8'��t'@��' ��'`�(��`(��(���(���(��)��,) �X)P��)p��)��D*`�X*���*���*@��*p��*�� +��H+ �p+P��+���+���+�,@�0,��D,��p, ��,���,��-�D-��p-���-`�-�.� .�P.��.�.�/</��/P�/�0�L0@�0�0`�0�d1��1��1�282p�2��2 3p`3`$�3�$�3%�3�&04�1X42t4`2�4�2�4p35`4d5 5|5@5�5�5�5�5�5PE.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rela.data.rel.ro.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@-�T-�l-��-��-�'��E"@��X�--^F3`FP=`F�h8@}�f-
S�b��]@�0-
|Ȱ�Ȱ��@8�0-��������@h�0-�p��p���@��0-2D��2м,.�� )@���-;��6@��0-H��U0��.������|��S��'��^��l������������� ��6�@���-+��w.�	�p-e��struct.o/       1690381920  1000  135   100644  54256     `
ELF>��@@-,

 "#$%��H�`tH��H��H�H����H�`tH��H��H�H��H��ff.����H�`tH�� H��H�H��H��ff.����H�`tH��(H��H�H��H��ff.����H�`tH��0H��H�H�� H��ff.����H�`tH��8H��H�H��(H��ff.����H�`tH��@H��H�H��0H��ff.����H�`tH��HH��H�H��8H��ff.����H�`tH��PH��H�H��@H��ff.����H�`tH��XH��H�H��HH��ff.����H���`tH����H����H�GH�D�fD��H���`tH����H����H�GH�D�fDAUATI��USH���H��H���H�EH���@fD�ƒ�IT$A�$L�*M��tCL���H����H��H�����uPA�$��/v�I�T$H�BI�D$L�*M��u�H���H��H���H�EH��H�MH��[]A\A]�H�L��H�5H�81��ff.�UH��SH���H�uH��H���H��H���H��H��[]�ff.�ATM��UH��SH��tqH��H��u9H��H���H��H�5L��H���H��t$H��H���H��[]A\Ð�H����fDH��H�5�	�H��[]A\�f�H���8���H���ATUSH���H��H���H��t[�H��H��I�����uH��L��H��[]A\�f�H��H��H�=1��L���H��H�����H�5H��H��1��ff.�AWAVAUATUH��SH��H��8��u
H�������H�5H��H���H�5�H���L�%�����H��H�5L��������L��H��H�5�1�H�H��H�5�L�uA�� �sI��L�eA��L�t$H�|$��E1�L�l$ ��O��H�H��L��L�D$�L�D$H�H H�D$ L��H�L$�H�L$E1�1�H��H���L�l$(H�D$ L���H���H�H��H��I���L��H�h H�D$ �E1�1�H��H��H���L�l$(H�D$ I��L9|$t=K�<�K�l?�I��I��	�2���H�1�L��H��J����j���DH��8H��[]A\A]A^A_�fDH�E�ƒ����<���H�€�H�}H�U�'���������H�������H�EL�e H�D$���fD@��uH�����tH��ƒ���t��u�H���D��H�A��H��H���`tH��
L�D�ʃ�H���f�H�rL��D���ff.�f���H���`tH��
H�wH�ǃ���H�wH����H��1�H�=��ff.���ATI��US�H���H���H��I�$��`tlH��
I�\$��H��~CL�$��DH�H��H��H���H��L9�tH�;��u�H���H����DH���[]H�DA\�fDI�\$I�D$�ff.����H9���@��uH�����t
�����	t
1���ATUH��SH���H��I���I9�uAH�E��`uXH�UH���`t\H��
��H9�uVH��H��H��[H�=?]A\��[1�]A\�f���f.�H��
��H���@H�C�H�=1��ff.����H9���@��uH�����t
�����	t
1���ATUH��SH���H��I���I9�uAH�E��`uXH�UH���`t\H��
��H9�uVH��H��H��[H�=]A\��[1�]A\�f���f.�H��
��H���@H�C�H�=1��ff.��������AUL�oATUSH��H�/H��%`uL�oL�fH�`uL�fH��u?H�oH��~F1��f�H��H9�t7I�4�I�|����u�H��1�[]A\A]��H��
����H���[]A\A]ø�f.�������AUL�oATUSH��H�/H��%`uL�oL�fH�`uL�fH��u?H�oH��~F1��f�H��H9�t7I�4�I�|��H��u�H��[]A\A]�f�H��
����H���[]A\A]ø�f.���AWAVAUATUS��H��H�T$���sL�.I��A����A�������I��H�@H��Lc�H�$�H�Ņ�t8E1��K�<���H��H��H�������I��M9�|�H�<$�H��I���I�D$I����H�t$L�����H��L��H���Q�������|H��H��[]A\A]A^A_�f�I������.���A�E���������Lc�A�H�@H��H�$�H������fDH�|$�f���H���r���fDH��1�1���s���H�H��H�5H�81������ff.�@USH��H��H�-�fDH�[H��t_H�H;tSH��H���H��t�H��H����u4H�����t,H��у���u�� t:H��H��H��[]���f�H�H�5H�81���H�@H��[]�D��U�)H��SH���H��H���.���H��H��H��w1H�H��H�{H��H��
��H	�H��H��H��[]��H���H��H�CH���H�kH��H��[]�fD��ATUH��S���tL1�L�e� @H��
��H9�},L��H�<�H���H�E��`u�H;]}
H�E���H��[]A\��H���[H��L��]1�1�H��A\�f���AVAUATUS����H��������1�L�eI���M@H��
��H9�}\L��H�<�L�4��H�����tL��H�E`uH�EJ�40L���H��H�E��`u�H;]}H�E�f.�[L��]A\A]A^�@�H���[H��L�8�]1�A\1�A]H��A^�1�1��ff.����AWAVAUATI��USH��H9���I���I�$��`��I�UM�t$��`��H��H��
��I9���1�M�}M��.�SI�D$H�,@��u	H�����uxH��I9�t/I�UI�$��`L��uI�MH��H�,��`u�I�D$�H��L��[]A\A]A^A_�fDI��I�UI��
A����`�]���I�M�^����H��L������u���I�$��`H��`�d���H�E��`H��`�S���H��L����C���H�H�5H�81��ff.���AWLc�H��AVI��AUATI��USH���L��H���b���H�����I9���H��N�,�1�I�T$M���DH��I9���I�,H��I�$`uI�D$H�,@��u�H�����t�H��L��H�T$H�$�H�$H�T$��u�I�$��`H��`u�H�E��`H��`t�H��L��H���H�T$H�$I9��{���fDI9�}H��L)�I�$`t#I��K�<��H���[]A\A]A^A_�f�M�d$��H�H�5H�81�����USH��H��H�-�f.�H�[H��tOH�H;tCH��H���H��t�H��H���H��t"�u6H�����t.�����u$H��[]�DH�H�5H�81��H�H�5H�81�����H���H��H������H���H���H��H���ff.�@��SH���H���H���`t3H��
��H��� tH����H9�u[�fDH�P��f.�H�K��H�H�5H�81��f�UH��SH��H���H�0H���� tYH����H��~e1�L�H�DH��H9�tOL��H��uH�H L��H9�u�H�E`uH�mJ�DH��[]�H�p�f�H��J�DH��[]�H��H�5H��1��ff.����SH��H��H��H�t$@���
@��tL@����H�H�H��%`H��xwH����H�CH��H9���H�[H��H��[��H�����t����������u�H�|$�H����H���H��H������@H��tSH��
��H�y6H�H��H�5H�81��@�H���<���H��
��H9�}5H���Q���H�CH��H��.����fDH��H������H��[�H�H��H�5H�81��H�|$�H�|$H�5H��1��ff.����H�@SH��H�xH��H�t6[�H���H��[H���@AUI��ATUH��SH��H���H�8H���� ��H����I�M��`��H��
��H9���H����1�L�@��H��H9���L��H��uH�p L�$�H9�u�L�����I�EI�E`uI�EJ�, @��u	H�����u-H��H��[]A\A]�fDI�M�t����H�x�P���H��L�����u�I�E��`H��`u�H�E��`H��`t�H��L����H��H�5H��1��H�H��H�5H�81��f.���ATI��H��UH��SH��H�t$@���D@����@����H��H�I�$H��%`H����H����I�D$H��H9��XL����I�D$I�$`uI�D$H�,�@��u
H�������H��H��[]A\�@H������q�������������Z���H�|$�H����H���H��L��H�����뤐H��tKH��
��H��O���H�H��H�5H�81���H������H��
������@I�D$H��H������DH��H��L���:���H��[]A\ÐH��L������
���I�$��`H��`�����H�E��`H��`���H��L�������H�H��H�5H�81��H�|$�H�|$H�5H��1����AUATUSH��H�������H��E1�L�c�H�������H���`tPf.�H��
��I9�}CL��H���L��H�`uH�SJ��H�ƿ1�I���H���`u�H�CI9�|�H��H��[]A\A]�H��
��I9�}�L��H���L��H�`uH�SJ�4�H��I���H���H���`u�H�C��H���H��H��1�[L��]1�A\H��A]���AWAVI��AUM�nATUS1�H���L��H���I���0H��
��H9�}<L��L�<�H��L��H���H��L��H���I���`u�I;^}
I�F��@H��H��[]A\A]A^A_�fD��AWAVAUI��ATA��USH��(�H����	H�=H���H��H�CH� tH�C��D$E����<#��L���I��I�E��`��I�EH�$1�I�GH�<$H�D$��� H�D$H��L�4�H��H�D$�H��I�����uL�������L���H��H����H�5H���I�EI�E`uI�EJ�<0H���H��H���H9$��H��tC�H�5H���I� �B���I�G �>���f�H��
��H�$�����|$#tʺH�5H����H�|$�H��H����6���fD�H�5H���@��u@H�����t7H�U�Ѓ���~A��u#I�����tI�E������t%H	�H�UH��(H��[]A\A]A^A_�@H��H���E���!���H��(H��[H�5]A\A]A^A_�f.��H��r��q�����ATI��USH���H��H���H�uH���� t[H����H��~d1�L�M��H��H9�tLL��H��uH�M L��H9�u�I�$`uM�d$[]K�A\�DH�u�f�I��K�[]A\�H���H�5H��H��1����������AUI��ATI��UH��SH��H���L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$H�|$�D$ H�D$H�D$ �D$0H�D$���L��L��H��H��I����H���[]A\A]�ff.���ATI��UH��SH��H���H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�|$�D$H�D$H�D$ �D$0H�D$�-�L��H��H��I��1��:�H���[]A\�ff.���ATUSH��H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�|$�D$H�D$H�D$ �D$0H�D$�i�H��H�H��t2L� H���H��L�����H��H����H���[]A\�DH�8����ff.���ATI��UH��SH���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�|$�D$H�D$H�D$ �D$0H�D$�{�L��H��H��H�H��H��H����H���[]A\�ff.����H�H��H��� tH��H�v��H��Hc�H9�u��H�v H�y��P���H�H��H��� tH��H�v��H��Hc�H9�u�H�v H�y��P���AUATUSH��H��H�t$xH��$�H��$�L��$�L��$��R�I��A��H�I9��A��
��H��$��D$H�t$ H�D$H�D$pH�D$E��~aL�L$�L$E1�1�H�|$�'f���A���L�H�H��H��A9�~��/v�H��H��H�H��H��A9��E��t�L$H��D���H�Ĩ[]A\A]�@L���H��H��H�D$ �H�EH�l$ H��� u7�H�u H��$��D$H�D$H�D$pH�D$�,���f.��H�u��L���ff.�f���H�SH�=H�0�H�H�H��H�2H��H�;�H�;�����H��H�5�H�;�����H���H�5�H�;�H�H�5�H�;�H���H�5�H�;�H���H�5�H�;1�H���H�5�H�;1�H���H�5�H�;H�H�5�H�;1�H�(�H�5�H�;1�H�����H�5�H�;1�H���H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H���H�5�H�;1�H��H�5�H�;H��H�5�H�;H��H�5�H�;�����H���H�5�H�;�����H���H�5�H�;1�[H�#�H�5����H��H�=�H�H�����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignduplicate member: %snew[]membersinconsistent structduplicate member: %libroken membersstruct size mismatchstruct size differsuninitialized structcorrupted structno member '% li' in structno member '%li' in struct#<struct :...>>,  =`%li' is not a struct memberStructinitializeinitialize_copy==eql?hashinspectto_sto_ato_hvaluessizelengtheacheach_pair[]=selectvalues_at__members__identifier %li needs to be constantredefining constant %li::%listruct size differs (%ld required %ld given)offset %ld too small for struct(size:%ld)offset %ld too large for struct(size:%ld)GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx� 0$D$X$l$�$�$�$�$�$�*�*8�B�B�D �A(�D0�
(A ABBA$H2A�D�D cDA8p�B�D�D �A
ABBc
ABJ(��B�A�A �{
ABNH�*B�B�B �B(�A0�D8�Gp�
8D0A(B BBBG$+f8CL-`,t�F�D�A �~
AGGD��r�A�D �C
�H�B�LACBJ���P ���D��r�A�D �C
�H�B�LACBJ���P ���L4�N�F�A �A(�D0U
(C ABBIT(F ABBA����L��N�F�A �A(�D0V
(A ABBJT(F ABBA����H��F�B�B �B(�A0�A8�FP�
8D0A(B BBBC0 �A�A�G d
EAMhAA0T�E�I�D @
DAIdDA4��F�A�D �Q
ABANKIL��F�B�B �A(�A0��
(D BBBEN
(K DDEEHUF�B�B �B(�D0�A8�D@�
8D0A(B BBBGH\OF�H�E �B(�D0�A8�DP
8F0A(B BBBC(��E�A�G c
AAF�HI�!HQnE�t
G4 �A�D�G f
AADU
AAA,XtE�J W
AI�
AA�<O�Q
HL8�FB�E�A �D(�G0�
(D ABBG@�F�G�D �D0�
 AABE�
 AABBH(-F�B�A �A(�G0�
(D ABBDa(F HDEDt�F�B�E �F(�A0�A8�F@a8D0A(B BBB`��F�B�B �E(�D0�A8�D`
8D0A(B BBBEX
8I0H(B BBBO8 �F�D�A �p
AFFQ
ABA\	8p�F�E�D �D(�J��(A ABB0��F�D�D �J�� AAB0��F�A�A �J��
 AABF0	�F�D�D �G�� AABH	@{\	@{8p	sF�B�A �A(�J��
(A ABBE�	9L��	$HW	!)?"Yt#��$��%� 7 F dD� $�D�t�P$�t���$!�?�[�$j����$��4�$�4d6@$Edc�p$������$�����*&�D*`*o*��0���B2%BS��P�	Z�
����r����r����*
  P)�I�g�+x��#��C�<�#�]0-&]Guf`x`��u�$����$�	0��	�$	C�	`	�p�
���	��
��
�F�F	�0	P�@	�[	�
t	
��	�
�	:�	:�	��	@��	�
�=
��N
�q
�
�
o�
 O�
o7\99�a�@!�a���9�Y��l����L�L��
PF1
�O
�k
��
��
�-�
��
Z�
��Z*�F�i�������e@eq" �" �!�!�!(�!L0"n0"�p"�p"��#��#�)&)&5T&"#$%!NS(X]bgl$q8vO{^�s�����H���x��������������������"�-�=�@�E�JR
W\ah"m(t.y4�:�@�F�LXh}�

 &'(�������
 -?Rbn��������
#5Kf|�������->Ugt|�����������*:FTan|������U��.p�BMpn_�tnz����������$3=KVa��u���	����p��0 �
 !�4�!@IW0"@gp"su���#9�����0&$.annobin_struct.c.annobin_struct.c_end.annobin_struct.c.hot.annobin_struct.c_end.hot.annobin_struct.c.unlikely.annobin_struct.c_end.unlikely.annobin_struct.c.startup.annobin_struct.c_end.startup.annobin_struct.c.exit.annobin_struct.c_end.exit.annobin_rb_struct_ref0.start.annobin_rb_struct_ref0.endrb_struct_ref0.annobin_rb_struct_ref1.start.annobin_rb_struct_ref1.endrb_struct_ref1.annobin_rb_struct_ref2.start.annobin_rb_struct_ref2.endrb_struct_ref2.annobin_rb_struct_ref3.start.annobin_rb_struct_ref3.endrb_struct_ref3.annobin_rb_struct_ref4.start.annobin_rb_struct_ref4.endrb_struct_ref4.annobin_rb_struct_ref5.start.annobin_rb_struct_ref5.endrb_struct_ref5.annobin_rb_struct_ref6.start.annobin_rb_struct_ref6.endrb_struct_ref6.annobin_rb_struct_ref7.start.annobin_rb_struct_ref7.endrb_struct_ref7.annobin_rb_struct_ref8.start.annobin_rb_struct_ref8.endrb_struct_ref8.annobin_rb_struct_ref9.start.annobin_rb_struct_ref9.endrb_struct_ref9.annobin_struct_enum_size.start.annobin_struct_enum_size.endstruct_enum_size.annobin_rb_struct_size.start.annobin_rb_struct_size.endrb_struct_size.annobin_struct_make_members_list.start.annobin_struct_make_members_list.endstruct_make_members_list.annobin_anonymous_struct.start.annobin_anonymous_struct.endanonymous_struct.annobin_struct_define_without_accessor.start.annobin_struct_define_without_accessor.endid_members.annobin_new_struct.start.annobin_new_struct.endnew_struct.annobin_setup_struct.start.annobin_setup_struct.endsetup_structrb_struct_s_members_mref_func.annobin_rb_struct_modify.start.annobin_rb_struct_modify.endrb_struct_modify.annobin_rb_struct_values_at.start.annobin_rb_struct_values_at.endrb_struct_values_atstruct_entry.annobin_rb_struct_to_a.start.annobin_rb_struct_to_a.endrb_struct_to_a.annobin_rb_struct_inspect.start.annobin_rb_struct_inspect.endrb_struct_inspectinspect_struct.annobin_rb_struct_hash.start.annobin_rb_struct_hash.endrb_struct_hash.annobin_rb_struct_eql.start.annobin_rb_struct_eql.endrb_struct_eqlrecursive_eql.annobin_rb_struct_equal.start.annobin_rb_struct_equal.endrb_struct_equalrecursive_equal.annobin_recursive_eql.start.annobin_recursive_eql.end.annobin_recursive_equal.start.annobin_recursive_equal.end.annobin_rb_struct_s_def.start.annobin_rb_struct_s_def.endrb_struct_s_def.annobin_num_members.start.annobin_num_members.endnum_members.annobin_struct_alloc.start.annobin_struct_alloc.end.annobin_rb_struct_each.start.annobin_rb_struct_each.endrb_struct_each.annobin_rb_struct_select.start.annobin_rb_struct_select.endrb_struct_select.annobin_rb_struct_init_copy.start.annobin_rb_struct_init_copy.end.annobin_rb_struct_initialize_m.start.annobin_rb_struct_initialize_m.endrb_struct_initialize_m.annobin_rb_struct_s_members.start.annobin_rb_struct_s_members.end.annobin_rb_struct_s_members_m.start.annobin_rb_struct_s_members_m.end.annobin_rb_struct_members_m.start.annobin_rb_struct_members_m.endrb_struct_members_m.annobin_rb_struct_members.start.annobin_rb_struct_members.end.annobin_rb_struct_aref_sym.start.annobin_rb_struct_aref_sym.endrb_struct_aref_sym.annobin_rb_struct_aref.start.annobin_rb_struct_aref.end.annobin_struct_entry.start.annobin_struct_entry.end.annobin_rb_struct_aset_sym.start.annobin_rb_struct_aset_sym.endrb_struct_aset_sym.annobin_rb_struct_aset.start.annobin_rb_struct_aset.end.annobin_rb_struct_each_pair.start.annobin_rb_struct_each_pair.endrb_struct_each_pair.annobin_rb_struct_to_h.start.annobin_rb_struct_to_h.endrb_struct_to_h.annobin_inspect_struct.start.annobin_inspect_struct.end.annobin_rb_struct_getmember.start.annobin_rb_struct_getmember.end.annobin_rb_struct_alloc_noinit.start.annobin_rb_struct_alloc_noinit.end.annobin_rb_struct_define_without_accessor_under.start.annobin_rb_struct_define_without_accessor_under.end.annobin_rb_struct_define_without_accessor.start.annobin_rb_struct_define_without_accessor.end.annobin_rb_struct_define.start.annobin_rb_struct_define.end.annobin_rb_struct_define_under.start.annobin_rb_struct_define_under.end.annobin_rb_struct_initialize.start.annobin_rb_struct_initialize.end.annobin_rb_struct_alloc.start.annobin_rb_struct_alloc.end.annobin_rb_struct_new.start.annobin_rb_struct_new.end.annobin_InitVM_Struct.start.annobin_InitVM_Struct.end.annobin_Init_Struct.start.annobin_Init_Struct.end.LC0.LC2.LC1.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC16.LC17.LC15.LC18.LC23.LC21.LC22.LC20.LC19.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_ident_hash_newrb_hash_tblrb_internrb_id2symst_insertrb_hash_keysst_clearrb_eArgErrorrb_raiserb_class_newrb_make_metaclassrb_class_inheritedrb_define_classrb_ivar_setrb_define_alloc_funcrb_define_class_underrb_str_to_strrb_is_const_namerb_to_idrb_const_defined_atrb_define_class_id_underrb_warnrb_mod_remove_constrb_str_quote_unprintablerb_name_error_strrb_class_new_instancerb_define_singleton_methodrb_vm_opt_struct_arefrb_method_for_self_arefrb_sym2idrb_add_methodrb_id_attrsetrb_vm_opt_struct_asetrb_method_for_self_asetrb_define_method_idrb_freeze_singleton_classrb_error_frozen_objectrb_get_values_atrb_ary_new_from_valuesrb_exec_recursiverb_obj_classrb_hashrb_hash_startst_hash_uintrb_num2longst_hash_endrb_exec_recursive_pairedrb_bugrb_eqlrb_equalrb_to_symbolrb_block_given_prb_mod_module_evalrb_error_arityrb_cStructrb_ivar_definedrb_ivar_getrb_eTypeErrorrb_newobj_ofrb_mem_clearruby_xmalloc2rb_yieldrb_frame_this_funcrb_enumeratorize_with_sizerb_ary_newrb_ary_pushrb_struct_init_copyrb_obj_init_copyrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_struct_s_membersrb_ary_duprb_struct_membersrb_struct_arefrb_check_idrb_eIndexErrorrb_int2bigrb_struct_asetrb_block_arityrb_ary_entryrb_yield_valuesrb_assoc_newrb_hash_newrb_hash_asetrb_class_pathrb_str_new_staticrb_is_local_idrb_is_const_idrb_id2strrb_str_appendrb_str_catrb_inspectrb_struct_getmemberrb_id_quote_unprintablerb_name_errorrb_struct_alloc_noinitrb_struct_define_without_accessor_underrb_struct_define_without_accessorrb_struct_definerb_str_new_cstrrb_struct_define_underrb_struct_initializerb_out_of_intrb_struct_allocrb_struct_newrb_ary_tmp_newrb_gc_writebarrier_unprotectInitVM_Structrb_cObjectrb_mEnumerablerb_include_modulerb_undef_alloc_funcrb_define_methodrb_define_aliasInit_Struct>���������I���������z��������������������������������������������������*�����������������������������������)��������4��������n��������x������������������������������������������������������	���������
��������
��������9���������@
��������H���������S��������Z��������a���������n������������������������������������*���������������������������������������������������������������W*��������g����������������������������������������������*�����������������������������������
��������!���������2��������������������������� ���������!���������"���������#���������!���������$��������%��������k ��������v ������������������	'��������K	 ��������V	 ���������	����������	'��������S
(��������)�����������������������������*��������������������������������������0+��������q��������������������,���������*�����������������������������-��������
��������$
*.��������4
/��������D
0���������
*1���������
����������
���������
2���������
3��������4��������(3��������L+��������x5���������6�������������������+���������8��������$5��������I9���������6�������������������-���������;���������<���������=��������*1�������������������������? ���������<���������=��������63��������Z*���������a���������k������������������*.���������/���������0���������*1���������������������������*1��������
�����������������)>��������I ��������Q>��������y ���������>���������*1����������������������������@��������v������������������"B��������3���������\*C��������f���������p��������y$���������*C������������������������������������������������������<D��������d@��������8<��������a=��������m���������w��������~*1���������������������������zB�������������������*C����������������������������$��������'<��������\=��������h*C��������r���������|�������������������������������������+���������@���������F��������G��������*H��������cG���������I���������5���������6�������������������J���������@��������G��������,K��������y ���������L�������������������M���������@����������������%N��������1O��������AP��������LQ��������X���������`R��������S���������Q�������������������R�������������������R��������S��������Q��������(���������0R���������Q�������������������@�������������������U�������������������V��������� *.��������� [���������!*.���������!��������,"^��������l"^��������Z#��������t#a���������#b���������#b���������#b���������#^���������#*d���������#���������$��������$*e��������$*.��������#$f��������+$g��������A$���������F$��������\$���������a$h��������p$:��������w$���������|$h���������$����������$h���������$����������$h���������$����������$h���������$����������$h���������$����������$����������$i��������%���������%h��������#%���������(%h��������;%���������@%h��������S%���������X%h��������k%���������p%h���������%����������%h���������%����������%h���������%*A���������%����������%h���������%*E���������%����������%h���������%����������%h��������&���������&h�������� &���������;&���������@&���������G&��������#��������
����������������K��������Y��������q���������&���������	&���������7���������7��������5?��������]?��������1A��������HA���������7���������R��������Y"��������%&h�������� ��� $, P XD� �D�D�t�D�tt�DtL�p�x���������084dl4�4�d�4�d�d��$d,�P�X��������������*D�L*p*x�*���BB0B8�dBl����r���r�r��$r,�P�X��������#���#	#	]D	#L	]p	]x	u�	]�	u�	u�	$
u
$0
$8
	d
$l
	�
	�
�	�
	�
�	�
�	�
�
$�	,�
P�
XF��
�F�F���F����
D�L�
p�
x:��
�:�:��
:
�0
�8
�d
�l
��
��
�
��
�
�
o$,oPoX�o���9��99aD9Lapax��a��������0�8d�l��L��L�L��$L,�P�X��������������ZD�LZpZx��Z��������0�8�d�l����e���e�e�" $e," P" X!�" �!�!��!�!��!�!0"D�!L0"p0"xp"�0"�p"�p"��#p"�#0�#8)&d�#l)&�)&�T&�)&�T& � � � � P� �(�08@@pH� 4 HP\�p�����@�p�����0LtP����(�<�P0d`x��0�	8�	��
�P$
X�
�@���` �p� �@p$�\���P��,�x��`$�`�t��p�0 	 !L	�!`	0"t	p"�	�#�	0&.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*�T*�l*��*��*�'�T&"@h�h*-'3'='�8@Ъ0*
S�=b�=�]@�0*
|�?��?��@0�0*��A��A��@`�0*�hC�hC��@��0*2<E�2�F�.�GP )@���*A0H.�>H�>H|>HS>H'>HJ>HX>Hk>H}>H�>H�@H �`H�	�@��@*(@R"+�	Ht���symbol.o/       1690381920  1000  135   100644  56064     `
ELF>@�@@/.

"$!% &'AWI��AVI��	AUATI��UH��SH��H��L�5I��� t{H����L9�vOL��L���I��H��t;��L��L��H�H���H��H�sH��[L��]A\A]A^A_����L��L��H��I����I�F�f�AWAVAUL�,7ATUSH���z��I��H�׉L$H��I�������M���~M��~yA�>@��~�H�
@��Hc�H�>��fDA�~@��DI�nA�L9�u1H��D��[]A\A]A^A_��A�F<=��<~tg�A��������I���ZA�F<=t=<~t9�D$@t�I�nI9�vvH�KXA���A�~*�e���DI�nA��[����A�F��=���?�����DA�~@��I�nA�L9��:I���P���A�}�=�E����L$I�t$�H��L���q������(���A����DA�~]��L��A��f�I�nI9�v�A�~�W߉���]���O��ɍQI�����7����Hc�)�H�5������I�FI9���A�FH�KXA��zf�A�F<<���<=�;���A�~>����I�nA��+����@��H�ھ
L���SXA�Dž����A�
�����A�~=�������EH�KX��<_tEH�ھ�х�u&�}�������H��H��L���H�H�I9������H�KX�E��H�ھ
�х�u��E��x�<_t�I9��p���<=tR<?t<!�`���D����������A���}���H�UH�EI9����}=A�H���#���f��D$D���B���H��A����H�KX<-tWH�ھI��х�u�o���f�A�?H�ھ�SX���V���I��M9�u�A����DI�nA��n���M�~M9�vUA�~H�ھ
�х�uA�F��x<_����H��L��L���H�L����A��P���H��A��=���A��W����AUA��ATUSH��(H�l$H�|$H���H�|$I��H�7�� u>H��H����D��H��L��H���N���H�l$H�T$H��([]A\A]�f�H�_��f.�UH��SH��H��H�=H�T$���tGH�l$H��H��@��t*H���u6H�����t-�E����u"H�E H��HD�H��[]�@H��1�[]�H���H��H��H�=H��1��H�H��H��	H��� tH����H9�r1��H�BH9�s�U��H��SH��H��H���H��u1�H��[]�f.�����H��H�4^�H��u���@H���vH��H9=r1��c���H��u�1���U1�H��SH��H��H�|$H�=H�t$���tH��[]�H�SH� tH�SH��H�=1��ff.�@UH��SH����xt1�H����[]ÐH���H����Å�u�H���=u���@=0u�H�H�5H�81�����UH��SH��H��@��t/@��uXH�����tO�����uEH�F �uH�����uH��H���H��1�[]��H�CH���[]�H�wH� tH�wH�=1��ff.�f�AUI��ATI��UH��SH��H��H���LF�H��H��@��u+H�����t"H��ƒ���tH�€�H�~H�t��t=H���H�=H��I��H���H��L��L���:���H��H��[]A\A]�@H��H�t$�H�t$�@ATA��USH������H��Hc�H���HD�������tE��t{�H��H���H�H�������H9�w%H��H��[H�H��H��H	�]A\H�������H���H�5H��H�H�81���H���H���H��H����u���AUI��ATI��UH���4SH���L��H��H�����u	H�����ugH�k@��u
H�������L�c H���H�=H��H��H��?H�C�H�=H���H��H��[]A\A]��H��ƒ���t�H�€�H�{H��x������o���H����b���f�H��H������]���H���`H��`�M���H�E��`H��`�<���H��H����,���ff.��ATH��US1�H��H�=H�T$���tH�\$��uH�����t
�����tH��H��[]A\�DH�����t�H�kH�CH��L�c H���i���H��A���L��H��H��H�H�8�5���H�����AUATUSH���H�l$H��H��H��H�߻!���H�=�1�H��H��H���I�������_t#��u�H��L��\$�H��H������H��H��u�H����.L�kx��C�k����t1��{@��H��H��L��H�����H�����I9�u���H�=H��H�����
H�����H�ھH�=���
H���h���H�ھH�=���
H���G���H�ھ	H�=���
H���&���H�ھ
H�=���
H������H�ھH�=���
H�����H�ھH�=���
H������H�ھH�=���
H�����H�ھH�=��H�����H�ھH�=��H���`���H�ھH�=��!H���?���H�ھH�=��1H������H�ھH�=��AH�����H�ھH�=��QH������H�ھH�=��aH�����H�ھH�=��qH�����H�ھH�=���H���y���H�ھH�=���H���X���H�ھH�=���H���7���H�ھH�=���H������H�ھH�=���H�����H�ھH�=���H������H�ھ
H�=���H�����H�ھH�=���H�����H�ھH�=��H���q���H�ھH�=��H���P���H�ھH�=��!H���/���H�ھH�=��1H������H�ھH�=��AH�����H�ھH�=��QH������H�ھH�=��aH�����H�ھH�=��qH�����H�ھH�=���H���i���H�ھH�=���H���H���H�ھH�=���H���'���H�ھH�=���H������H�ھH�=���H�����H�ھH�=���H������H�ھH�=���H�����H�ھH�=���H�����H�ھ	H�=��
H���a���H�ھH�=��
H���@���H��1�H�=���H���"���H�ھH�=���H������H�ھH�=���H�����H�ھH�=���H�����H�ھH�=���H�����H�ھH�=���H���}���H�ھH�=���H���\���H�ھH�=���H���;���H�ھH�=���H������H�ھH�=���H����H�ھH�=���H�����H�ھH�=���H����H�ھH�=���H����H�ھH�=���H���u�H�ھH�=���H���T�H�ھH�=���H���3�H�ھH�=���H����H��[]A\A]����H����^������H�������UH��SH��H���H��H��H��H��[]����SH���H��[H������SH�_H��u[�H�GH��H����H�=H��[�ff.�f���ATUSH����H��t[]A\�fDH���I���H��I9�tH�����uDL��H������H��H�����H��[��H�H��]A\Hc�H�H�8�K�H���H��H��H�����u�H�����t�H��ƒ���t�H�€�H�{H��z������q���H����d���ff.�f���ATUSH��@��tO@���H�������������������H�k H���t H��[]A\��H��H��[H��]A\ÐH�=L�cH�������H9���H��H��H�=H��H	�H�k L��H���n�H�=L����DH�kH�CH��L�c H���
�H��A���L��H��H��H�H�8���H���4����H��������H������}���H���H�5H��H�H�81�����ATH��I��H��UH��SH��H��H��@dH�%(H�D$81�H�|$��uH�����uDH���t�H��uoH��H��L����H���T�H�L$8dH3%(uNH��@[]A\�H��у���t�H�р�H�xH�t���u�H��H�D$�H�D$�f�H��������UH��SH��H���H��H��H��H��[]����SH���H��[H������SH����H��uH��1�[��H��[����H���v#@��uH��H;=w ��v�fDH��H��H���@1��ff.�f���H�����H��uH���f�H�xu�H�H�H�PH���fD��USH��H��H���w"H��p���H������H��[]�D�������H��ETuJ��u=�8�H��tH����H�5H��1��DH�ى�H�51���H������H��tjH����H�5H��H���H����H��tH��H��[]�@H��H�߾[]����H�5H��H��1��H�Hc�I��H��H��H�51��ff.�f���@��uH�����t
�����tH���f.�H�G�ff.���SH��PdH�%(H�D$H1�����H��H���R�1҃�t#H�L$HdH3%(H����H��P[�fDH��H�\$�H�t$H��� ��H��H����H��H�|$ H����uBH�����t:H��у���t-H�р�H�xH�t��uH��H�D$�H�D$fDH��� �H��H���I���H�D$H�D$H�D$�5���H�NH�vH�Q��t����f.���H���H��t&H� t
H�@H���@H��H����1�H����H�H�����H�������H9�wH�BH�H��H���ff.���H�SH�xH���H�=H�5J�H��H���H��[�f.���H���v��1���
����1��ff.�f���H���v��1�������1��ff.�f���H���v��1�������1��ff.�f���H���v��1�������1��ff.�f���H���v��1�������1��ff.�f���H���v1������f.�1��ff.�f���H���v��1�������1��ff.�f���@��tH� ��1���
���fDH��H���w�1����@��tH� ��1������fDH��H���w�1����@��tH� ��1������fDH��H���w�1����@��tH� ��1������fDH��H���w�1����@��tH� ��1������fDH��H���w�1����@��tH� 1������f�H��H���w�1����@��tH� ��1������fDH��H���w�1����ATUSH�H��H����tnH����t1H���I��H��tZH�EL�����[L��]A\�8��H�����tƋ����t
I�܃�u���H�C H��u	H�CH�1�[]A\�H���H�PH� tH�PH�H�5H�81��D��AUATUSH��H���t@H����tJH���I��H����H�EL���!�L�����H��H���HD�H��H��[]A\A]�@H�����t������t
I�܃�u��H�C �u�H�����uH�]�L�cH�CH��L�k L���A�L��A���L��L��H��H�H�8�
�H���H���H�PH� tH�PH�H�5H�81�����SH��H��0dH�%(H�L$(1�H��H��H��H���H��H����H���`�H�L$(dH3%(uH��0[��D��SH��H��0dH�%(H�L$(1�H��H��H��H���H��H����H���`��H��HD�H�L$(dH3%(uH��0[��f���H��1��A���
��H�������H��1��!�����H�������H��1�������H�������H��1��������H�������H�����������H�������H��1�������H�����@��H��1���1҃�w���H���A���҉�H���ff.�f���H����>������H������GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignlocalinstanceinvalidglobalattrsetconstclassjunk�..�...�**�+@�-@�<=>�>=�<=�==�===�!=�=~�!~�[]�[]=�<<�>>�::�&&�||non-symbol object %s:%lx for %li in symbol table%p can't remove str from str_id (%s)symbol table overflow (symbol %li)wrong argument type %s (expected Symbol)cannot make operator ID :%li attrsetcannot make unknown type ID %d:%li attrsetcannot make unknown type anonymous ID %d:%lx attrsetcannot make anonymous %.*s ID %lx attrset%s is not a symbol nor a stringinvalid encoding symbolinvalid symbol: %sfreezeinspectinternobject_idconst_missingmethod_missingmethod_addedsingleton_method_addedmethod_removedsingleton_method_removedmethod_undefinedsingleton_method_undefinedlengthsizegetssucceachproclambdasend__send____attached__initializeinitialize_copyinitialize_cloneinitialize_dupto_intto_aryto_strto_symto_hashto_procto_ioto_ato_sto_ibtbt_locationscallmesgexception_empty?eql?respond_to?respond_to_missing?<IFUNC><CFUNC>core#set_method_aliascore#set_variable_aliascore#undef_methodcore#define_methodcore#define_singleton_methodcore#set_postexecore#hash_from_arycore#hash_merge_arycore#hash_merge_ptrcore#hash_merge_kwd=GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�H�B�E�F �B(�D0�D8�G@J
8H0D(B BBBLHhXB�B�B �F(�A0�A8�DP�
8D0A(B BBBH8�vB�E�A �A(�DPS
(A ABBJ4��A�D�G0U
AAED
CAA((|r�F�J Q
AAKT((hQA�F�G0^
AAA(�oA�D�D Q
CAB4��E�D�G D
CAHL
FAA8��B�E�E �D(�G@s
(D ABBE,4�B�I�A �W
RBI8d$B�E�D �I(�D0w
(D ABBH0��B�D�A �F0v
 DABF8��F�B�A �A(�D@�(A ABB HT$()E�D�G IJAPE�Ll3E�J
A^8��F�A�A �N
ABGH
IBU8�IF�A�A �L
ABIH
DBB0�F�J�D �J`b
 AABD$8)E�D�G IJA`E�L|)E�S
HD�C�:HN
JY@�3E�A�G c
AAF�
DAID
IAE5 (E�D`G
AG L?H[
EH
HFp5�6L�i�#�#�#�#�###,0@0T0h0|0�0�04��F�A�A �u
DBMv
ABA8�F�B�A �A(�D0L
(D ABBE ,[E�G@H
AA PgE�G@T
AAtHQ�HQ�HQ�HQ� HT�HP3Hj HT#)?$Yt%��&��'��3�@ O�r��X����v�� 7��E h�� |������(��!�Q,!O�p0o���3����3��@�(�B�	���Z�	w�
��	$��
����
���9@x&9G`f`�����������9�T�m)�)�����)�)II5yPyi����
�
�C�@�C�)�F�a�{����%�%�f	f7	�S	�q	��	��	��	��	#	
#)
SG
Se
��
��
��
��
��
� 1 QPoP���������-�Kg������ �� �K!
K!9
�![
�!{
�!�
�!�
�!�
�!�
"":="[="}`"�`"�|"�|"��"�":�"$%&'#W\8afk`p+u2z:A�K�Y�h�u�������������������������"�-�=N]
dkry%�+�1�7�=�C�I�O�U�[�a�g�m�s�y���������/�A�T�q������������������H�x�(<	

 !"()*Mcp}�������*<Ebny�������8Xc��l~�����@ �`)��$�37L��Z�Idr0�}��)�0�P)��C��:��3��P5&�4�??�5S06fv�p#��#��#�#�0#�`#��#��0��0 0 P03�0E�0U�0d�p����� [�P!g��!��!�"� "@" !`"2�"3D�" T.annobin_symbol.c.annobin_symbol.c_end.annobin_symbol.c.hot.annobin_symbol.c_end.hot.annobin_symbol.c.unlikely.annobin_symbol.c_end.unlikely.annobin_symbol.c.startup.annobin_symbol.c_end.startup.annobin_symbol.c.exit.annobin_symbol.c_end.exit.annobin_set_id_entry.start.annobin_set_id_entry.endset_id_entryglobal_symbols.annobin_rb_enc_symname_type.start.annobin_rb_enc_symname_type.endrb_enc_symname_type.annobin_rb_str_symname_type.start.annobin_rb_str_symname_type.endrb_str_symname_type.annobin_lookup_str_id.start.annobin_lookup_str_id.endlookup_str_id.annobin_get_id_entry.part.1.start.annobin_get_id_entry.part.1.endget_id_entry.part.1.annobin_lookup_id_str.start.annobin_lookup_id_str.endlookup_id_str.annobin_unregister_sym.start.annobin_unregister_sym.endunregister_sym.annobin_sym_check_asciionly.start.annobin_sym_check_asciionly.endsym_check_asciionly.annobin_symbols_i.start.annobin_symbols_i.endsymbols_i.annobin_register_static_symid_str.start.annobin_register_static_symid_str.endregister_static_symid_str.annobin_intern_str.start.annobin_intern_str.end.annobin_dsymbol_alloc.start.annobin_dsymbol_alloc.enddsymbol_alloc.annobin_lookup_str_sym.start.annobin_lookup_str_sym.endlookup_str_sym.annobin_Init_sym.start.annobin_Init_sym.endsymhashop_tbl.annobin_rb_enc_symname2_p.start.annobin_rb_enc_symname2_p.end.annobin_rb_enc_symname_p.start.annobin_rb_enc_symname_p.end.annobin_rb_symname_p.start.annobin_rb_symname_p.end.annobin_rb_gc_free_dsymbol.start.annobin_rb_gc_free_dsymbol.end.annobin_rb_str_intern.start.annobin_rb_str_intern.end.annobin_rb_sym2id.start.annobin_rb_sym2id.end.annobin_rb_intern3.start.annobin_rb_intern3.end.annobin_rb_intern2.start.annobin_rb_intern2.end.annobin_rb_intern.start.annobin_rb_intern.end.annobin_rb_intern_str.start.annobin_rb_intern_str.end.annobin_rb_id2sym.start.annobin_rb_id2sym.end.annobin_rb_id2str.start.annobin_rb_id2str.end.annobin_rb_id_attrset.start.annobin_rb_id_attrset.endid_types.13795.annobin_rb_sym2str.start.annobin_rb_sym2str.end.annobin_rb_id_attrget.start.annobin_rb_id_attrget.end.annobin_rb_id2name.start.annobin_rb_id2name.end.annobin_rb_make_internal_id.start.annobin_rb_make_internal_id.end.annobin_rb_sym_all_symbols.start.annobin_rb_sym_all_symbols.end.annobin_rb_is_const_id.start.annobin_rb_is_const_id.end.annobin_rb_is_class_id.start.annobin_rb_is_class_id.end.annobin_rb_is_global_id.start.annobin_rb_is_global_id.end.annobin_rb_is_instance_id.start.annobin_rb_is_instance_id.end.annobin_rb_is_attrset_id.start.annobin_rb_is_attrset_id.end.annobin_rb_is_local_id.start.annobin_rb_is_local_id.end.annobin_rb_is_junk_id.start.annobin_rb_is_junk_id.end.annobin_rb_is_const_sym.start.annobin_rb_is_const_sym.end.annobin_rb_is_class_sym.start.annobin_rb_is_class_sym.end.annobin_rb_is_global_sym.start.annobin_rb_is_global_sym.end.annobin_rb_is_instance_sym.start.annobin_rb_is_instance_sym.end.annobin_rb_is_attrset_sym.start.annobin_rb_is_attrset_sym.end.annobin_rb_is_local_sym.start.annobin_rb_is_local_sym.end.annobin_rb_is_junk_sym.start.annobin_rb_is_junk_sym.end.annobin_rb_check_id.start.annobin_rb_check_id.end.annobin_rb_check_symbol.start.annobin_rb_check_symbol.end.annobin_rb_check_id_cstr.start.annobin_rb_check_id_cstr.end.annobin_rb_check_symbol_cstr.start.annobin_rb_check_symbol_cstr.end.annobin_rb_is_const_name.start.annobin_rb_is_const_name.end.annobin_rb_is_class_name.start.annobin_rb_is_class_name.end.annobin_rb_is_global_name.start.annobin_rb_is_global_name.end.annobin_rb_is_instance_name.start.annobin_rb_is_instance_name.end.annobin_rb_is_attrset_name.start.annobin_rb_is_attrset_name.end.annobin_rb_is_local_name.start.annobin_rb_is_local_name.end.annobin_rb_is_method_name.start.annobin_rb_is_method_name.end.annobin_rb_is_junk_name.start.annobin_rb_is_junk_name.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC17.LC18.LC19.LC20.LC21.LC22.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC66.LC67.LC69.LC65.LC68.LC70.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_ary_entryrb_ary_storerb_ary_tmp_newrb_enc_dummy_pruby_global_name_punct_bitsrb_enc_mbclenrb_string_value_ptrrb_enc_getst_lookuprb_builtin_class_namerb_bugst_deleterb_enc_str_coderangerb_eEncodingErrorrb_raiserb_objspace_garbage_object_prb_ary_pushrb_fstringst_add_directrb_freeze_singleton_classrb_usascii_encodingrb_enc_associaterb_str_ellipsizerb_eRuntimeErrorrb_str_duprb_newobj_ofrb_str_hashrb_hash_asetrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_cSymbolInit_symrb_ident_hash_newrb_gc_register_mark_objectrb_obj_hidest_init_table_with_sizerb_isalnumrb_enc_str_newrb_enc_symname2_prb_enc_symname_pstrlenrb_symname_prb_ascii8bit_encodingrb_gc_free_dsymbolrb_hash_delete_entryrb_str_internrb_sym2idrb_eTypeErrorrb_intern3rb_setup_fake_str__stack_chk_failrb_intern2rb_internrb_intern_strrb_id2symrb_id2strrb_cStringrb_id_attrsetrb_name_errorrb_name_error_strrb_str_catrb_sym2strrb_id_attrgetrb_id2namerb_make_internal_idrb_sym_all_symbolsrb_ary_new_capast_foreachrb_is_const_idrb_is_class_idrb_is_global_idrb_is_instance_idrb_is_attrset_idrb_is_local_idrb_is_junk_idrb_is_const_symrb_is_class_symrb_is_global_symrb_is_instance_symrb_is_attrset_symrb_is_local_symrb_is_junk_symrb_check_idrb_check_string_typerb_inspectrb_check_symbolrb_check_id_cstrrb_check_symbol_cstrrb_is_const_namerb_is_class_namerb_is_global_namerb_is_instance_namerb_is_attrset_namerb_is_local_namerb_is_method_namerb_is_junk_namerb_str_hash_cmp!@���������`��������������������������������������������*��������������������������+��������M�����������������������������������	��������#c������������������������������
�����������������	��������:��������T��������\��������j���������*�������������������
��������������������������(���������/	������������������������������������&	��������1	��������8	��������V	��������y	���������	����������	*���������	
���������	���������	���������	���������	���������	��������
��������
3
��������:
G
���������
���������
���������
��������
��������D��������o��������*������������������� ���������!�������������������"�������������������� �����������������#�������� $��������<>z$����������������������������$�������������������$�������������������$��������
���������	
$��������%
���������*
$��������F
���������K
$��������g
���������l
$���������
����������
$���������
����������
$���������
����������
$���������
����������
$�����������������$��������-���������2$��������N���������S$��������o���������t$�������������������$�������������������$�������������������$�������������������$�����������������$��������5���������:$��������V���������[$��������w���������|$�������������������$�������������������$�������������������$������������������$�����������������!$��������=���������B$��������^���������c$������������������$�������������������$�������������������$�������������������$�����������������$��������$���������)$��������E���������J$��������f���������k$�������������������$�������������������$�������������������$�������������������$�����������������
$��������)���������.$��������J���������O$��������k���������p$�������������������$�������������������$�������������������$�������������������$�����������������$��������1���������6$��������R���������W$��������s���������x$�������������������$�������������������$�������������������$�������������������$�����������������$��������q'���������)�������������������������;��������i*��������|����������������������������������S��������x����������+������������������*��������
�����������������*.��������%
��������d0���������$������������������-���������1����������������9'������������������*7��������u���������9�������������������:����������������������������;��������6�����������������9���������8���������?9���������6�����������������0��������Y���������1���������6�������������������������7DA��������K]B��������3R���������S���������*.�������������������
���������R��������f ��������� ��������� *��������� S��������� *.��������� ���������� 
��������!0��������G!1��������y!0���������!1��������}���������%���������&���������+��������%/��������E2��������u-���������-��������r6�������� ����$,�P�X���������� D�L p x�� ��������0�8!d�l!�!���!�����3$�,3P3X��3������	����	�	�
D�	L�
p�
x���
�����9�9098`d9l`�`���`������$�,�P�X�������������	�	)D	�L	)p	)x	��	)�	��	��	)
�
)0
)8
Id
)l
I�
I�
y�
I�
y�
y�
�$y,�P�X
���
�
�C�
�CC�DCL�p�x���������
�
�0
�8
%d
�l
%�
%�
f�
%�
f�
f�
�$f,�P�X��������������#D�L#p#xS�#�S�S��S�0�8�d�l������������ $�, P XP� �P�P���P����D�L�p�x���������08�dl����� ���� �� �K!$� ,K!PK!X�!�K!��!��!��!��!��!�!�!D�!L�!p�!x"��!�"�"�=""="0="8`"d="l`"�`"�|"�`"�|"�|"��"$|",�"P�"X�"��"��" � � � �p $(, 0$4(8,<0@4D8H<L@PDTHXL\P`TdXh\l`pdthxl|p�t�x�|��������������������h�������������������������������������L���� $(, 0$4(8,<0@4D8H<L@PDTHXL\P`TdXh\l`pdthxl�p�t�x�|���������������������������������������������������������� ��(_ l����, X�l��0���@8�h�	��
��@,`T�p�����0<d0�P�����P,�P�t��0�p������0`�0�D�X lP���������0� TP!x�!��!�"� "�@"�`"�" �".symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rela.rodata.rodata.str1.8.rodata.str1.1.rela.data.rel.ro.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@,�T,�l,��,��,�'��""@�X,-�#  3�#=�#�8@@��,
ST;bT;�]@0�0,
|(=�(=��@`�0,��>��>��@��0,��@��@��@��0,�B� @��,2xE�'2G�;�I6@��0,H0J.�.J�.J|.JS.J'.JQ.J_.Jr.J�.J�.J�0J �PJ0�@�p,*�R!-�	�sdx��time.o/         1690381920  1000  135   100644  117184    `
ELF>@�@@21

%'$(#)"*��H����H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��)ǁ�lLcǃ�u@H��(\��(L��H��H��H��H��H��H��H��I9�tHc�H�����@H�q=
ףp=
L��H��H��H��H��H��H��I9�t�Hc�H�����I�q=
ףp=
H��H��H��H��I��H��H��H��)�����G���ff.�f����8�fDHcw�OLcOL��lA���H�ףp=
ףL��H��L��H��?L�H��H)�H��H��H��I9���H�B�kW<Hc�iG�H�V�Hc�H��H��H��H�H��H��H��y�DH)�H��H�@HI�H��H��I��H�I����H�ףp=
ףL��H��L�I��?H��L)�I��H)�I��+��H�ףp=
ףL��H��L�I��?H��L)�H�H��k|����Hi��QH�H��f.�H�ףp=
ףL��H��L��H��?L�H��H)�H��H��H��I9����H�B����f.�H�����H)�H��H�ףp=
ףH��H��H�H��?H��H)�H�V��V���@H�ףp=
ףI��I��L��H��L�I��?H��I)�I�P���ff.�H�L�H���ɚ;~IH����&�.H��H��H��H��?H��H)�H��������H)�L9�|iHi�6e�I�H�L�H��DH��y�H����&�.I��I��L��I��?H��H��I)�H��I�A�H)�L9�Hi�6e�I�L�H�H��PH�H�5H�81��ff.�@@��t@��u4H��H��H�51���H�������H�����f�1�H9�����@��t@��u4@��uH�����t
�����
tkH���*1���I��H��I�H�t:M��t5H��xpM��x;H��I��H��p�H��x�H�@H�ylH���@��f��I��H��I���e���H��H9��R���H��H���fDH��H��M��y�L��H��H���*���I���H�H��H���ff.�f���U�8H���SH���H�H��H��H����S0H������S0H��[]�@��SH��H�?@��tH�{�H�{�H�{[����f�UH��H���S1�H��H��H�5�H��H��H��H��[]�f.�@��uH�����tH��ƒ���t��u�H���DAU1�I�պATI��H��USH��H�5�H��H���H��t-1�H��H���H�߾I�E�I�$H��[]A\A]�H���H�5H��H�H�81��f���H��H�|$H�|$�H�D$H���ff.�@H��@��t%@��tI��H��I�H�t~L��H�H��H��L9�tAH��H�51����uH�����t
�����tH���H�xu�H�@��H�@H�xH�D��f.�H��H����ff.�@UH��SH��H���H��H���H����H�p(A�����H��y	H��A�H���������H��I��I��H��I��?H�2H��L)�H��H��H)�H��I)�H��H��H��H��?E��H�<
H�|�j�Y�HH��H)�H��H��H)�H��H)�H��H��A��H��
L)�A��E��tD�A��;��A��<��D���tK���;�Y��<���K����S�?�����{���s�S��lHcȨ��H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9�����l���CH�
Hc{��H��9������s�C�C�H�Ⱥ�$I�������)�)�)��K�C H�H�C(H�C0H��H��[]�@�S��H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9��	�����m���CH�
�:�����C���S����H�H�C�C�P�k�SHcȨ��H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9�����l�C�C�H�����A��<��D�������������<���K����������f.��S�H���tu���K�S�f.���H�C�{�C�U���fDH�ףp=
ףH��H��H��H��?H�H��H)�H��H���mH��H9��8�������ClHc�u:H�ףp=
ףH��H��H�2H��H��?H��H)�H�H��H��H��H9�uCH�ףp=
ףH��H��H�2H��H��?H��H)�H�H��H��H��H9�H�HDЋC���CH����K�C������C�S�s�R����K����D��y����S�H��H�����u�H��[H���f.��H��H���H��[�ff.�H��H�|$H�=H��t#H�t$H�L$H���H�D$H����H��H����AUI��ATI��UH��SH��H��H�H��H���H��tDH�D$(H�|$0I�EH��tB�m���fo$foL$I�$foT$ H�D$0))KH�C0H��)S H��H[]A\A]�fDH�=������tH�H���@ATI��UH��SH�?H���H�EH�I�$1�[]A\Ð��H��1�1���F9Gu�F9Gt�����D��D�F9Gu�F9Gu�F9Gu�1��9u���ff.�H��AWAVAUATU��SH��H��XfofoGH�D$8H��foO L�t$PH�D$@�G H�T$�D$H�G0)T$P)D$`)L$pH��$����(L��$L�l$0f~�)T$P)D$`)L$pH��$���������H�<;�D$`H�D$PH�H�D$XL���i�I��H�D$0���9L��L������H����H��H�����L�T$0���M���UI���QL�T$8H�D$0L9�~OH9D$@~H���(	L��L���u���H����H��H���Q���L�T$0��������	L�T$8����p�H�|$8L���H��H���kH��H���������!�o9)�$��oY)�$��oa )�$�H�A0H��$����/�H�|$@L���H��H����H��H���������L�T$@���o)L�\$8A�)�$��oi)�$��oy )�$�H�A0H��$H��$�H�D$(H��$�H�D$ @I�KL9���E���A����A���FH�D$0I9���L9������L��L������H��H���!H��H�����L�\$0����*�oL�T$@L�\$8)�$��oa)�$��oi )�$�H�A0I�KH��$�L9��F���Hc{�S�sI�������$�A���QA���F��n����xI���A������)�)���++�$�����A��D��)�i�m��)���<1A�q����NI���4A�I�A��+���A��D��A����)�A���D)ʍ�S�K+�$�+�$�D�i�k�<i��QHc�Hc�H�H��;IӋ�$�IË��<D�)�H�I�H�D$L�1����t$\�����D$dlHc����H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H�H��H9���Hcɋ�9��e�D$\H�<;H�D$P�D$X����DH�|$8L����H��H�������H��%�L��L���H���O���H��H���l���L�T$0�������D$���KI�� H�l$HL�T$H�L��H���H��H�����x����*D�CH�t$0D�OD���D�����)R��A)�E9���D)Nj+i�L�T$H‹A+Ck�<�H�I)‹AL�T$H9CtI�€QL�T$HL9�t]�L��H���H��t@H��H�����L�T$0��u4H�D$HL9�LN�H�D$L�1�H��X[]A\A]A^A_�@L�T$0H�D$L���fDH��D$`H�D$PH�D$X�:���L���H�D$0H���u-fofoCfoK H�C0���fDH��n���@L��$L�l$0�L��L���H��tH��H���������fofoCfoK H�C0�Y���@H�|$@L����H������H�H�D$PH�D$X�r���H�H9�U���I�����@H�ףp=
ףH��H��H��H��?H�H��H)�H��H�H��H��H9�H�HD������L��H��?L�H�H��L��H��?L�H�H�L9�sH�L$0A�������L��L���H�������o1L�\$@M��L�\$8)�$��oy)�$��oq )�$�H�A0H��$�<���@L9�}3H�D$0A��d���I������L�T$@L�T$8H�D$0���DI��A�L�T$0�-���@I�� H�l$HL�T$H�L��H���H��H��������{�p����*L�T$0D�GD����D������)R��A)�A9���)��+i�H�t$H‹A+Ck�<�H�H)�H��H�t$H�q9stH-�QH�D$HL9������L��H���H�����H��H���:���L�T$0������H�D$HL9�LO�H�D$L����@H�|$ H�L$��H�L$K�H)�L9�H��uI�B�H�D$0A����f�L�T$8L�T$0���_����i���f�H�|$(H�L$�1�H�L$K�H)�L9�H����H�T$0E1����@�D$X��xx����H�<;�D$XH�D$P�j����L��L���H������H��H���$���L�T$0���������f�H�H9�_�������H�D$P�D$X����f�L�T$0����fDL�T$0�g���fDH�L$0H��E1�����D$T��x8��;~AH�<;H�D$P����L�T$@�N���fDM�����H�D$P����D$P��x��<�p����D$P<�c����D$P�V����@��t@��u4@��uH�����t
�����
tCH���+1���H�H�H�@H�H�xH�D?�f���UH��H���S1�H��H��H�5�H��H��H��H��[]�f.�@��t@��tH9�|������랸������ATI��UH��S�W%�F%�_$��?��?��?)��F$��?)��F#H�6k�<����_#H�?��)�i���N���tzA�D$!�U!1ƒ�t1�U!������8��%]�����QHc�[]H�DA\�fDA�D$"�U"1ƒ�t��U"����8��%]�����QHc�[]H�DA\�H�uI�<$����%]�����QHc�[]H�DA\����SH����t3H��]��}H�H�5H�81��f�H����H��[�f�H��]��H���A�����~þ�H���0�����y�H��[��S�G!�tM���<wDH���G"t;�G#��<w0tH�C$��?<;w#�C%��?<<wH�{@��t8H��~	H���5w~PH�H�5H�81��f�f�G$??t���fD������x�H�{@��u���5w�~�����y�H�{H��u[�fD[����f�SH��H�����5wH����H��H���u������x;H����������H�������5wH���c�H��H���8���1҅��‰�[�ff.�f�SH�5H����P0����t[�H���H�5H��H�H�81��ff.�@��H�������@0��<�HD�H������USH��H���n���H�5H��H�����uH��1�[]��H���@���H�}H�0H��[]�ff.���H������H�8H������ATUH��SH�����H�5H��I�����t7H������I�<$H�0�����t����H������[H��]A\�@H��H��[]A\��SH�5H����P0����u[�H���H�5H��H�H�81��ff.�@@��t@��u4@��uH�����t
�����
tCH���-1���H�H�H�@H)�H�xH�D?�f���@��uH�����t
�����tH�(kn���H����5w��H��H���fD��H���s���H�8���H��H���ff.�@UH��SH��H���H���7���H��H������o�oKH�oS P H�S0H�P0H��[]�@��SH��H9�t���H��[�f�UH��SH���H���
�H��H9�tH��H���g���H��H��[]�ff.�f�@��uH�����t
�����t�f�1Ҿ
�@AVH�H�AUATA��USH��H�� ��HEƒ�I���N���A��A��A����H��H���H���K���B�����
�,���#���"E����A�����Cf��H�|$�L$��L$f/��Y���X�,��D$Hc�H���ɚ;~�XH��ʚ;�D$�H,�f���H*�f.�zt]A����H�CH�D$H�H�5�D$H�8��f����GH�H��H��y
A���1�H�� H��[]A\A]A^�H�����t�����
t���t�A��A��������H�5H�L$�H��H�D$�H��4��H���H��H����1�H���H��H�D$�H�l$H��@����H�H��yA��uX1���5w�H��H�5����H�� H�[H��H��]A\A]A^�f�A�����Cf��f/��%���H�L��H�5H�81���H���H�����H���H���Z�����\��D$�,�Hc�H�������\�ʚ;H)�H���D$���H���H���`�����t\H��H9���H�ڸf��H��?H)�H��H��H	�H��H�D$�~D$f/�� ���A��A���9����H��H9�tAH�ڸA�H��?f��H)�H��H��H	�H��H�D$�~D$���f.�A�f��f�����H���L��H�5H��H�H�81��H��H9�tH�ڸH��H��?H)�H	�H�����fH~���ff.�@�������S����@��u	H�����u@��t5���x3!�9�u-[�@�����u�1Ҿ
�H����D���H�H�5H�81��f�AUATI��USH���H����H�H��H�Ӂ� tsH�x~t1�L�%�B�H��H����H��u'H�uI�<�������H�UH�ց� H��H��t?H��A�݁� t�H�}u�H�u�@���u��L��H��[]A\A]����H�EH��u'��1�H���0��	v�H��[]A\A]��H�E��f.�H��A�E[]A\A]Ð@��t:@��u=H��H���H��t0������t&@��t �����
u��H�����u�H���%1��H�@H�x)H�D?�uH�����t�����uH�xt/�fDH����uH�����t
�����tH���@H�@�H�xu�H�@��ff.�H��H��H�51����uH�����t�����t �����tH��ÐH�xu�H�@��H�xu�H�@�u�H�����u������H���C�����5wH�8�v����uH�����u�H��H���f������u�H��ÐUSH��H����tR���u;H��H���H��t^�؃���tT��tO�������wBH�
Hc�H�>��H��H��H��[]�H��H����H���iH���pH�5H����1�1�H���H��H��4��H�5H���wH�������H���H������@���o���������H����@����H��4���E������H�}�+���H�mH��[H��]�f.���������/���H�
Hc�H�>��fDH��H��H��H��u�H��tcH��t�E����t����������
�����H���H��H�H�5H�81��fD���������
�y���H��u�H��������������H�Hc�H�>��fDH���R���H�������H�=�H��H��i����H�=�H��H�� ���H�5H���H��H���=���H���F���H������@ATUSH���H����H��H�XH� �>H����x�pH���H���A�ą��UH�U�� �H�UH��tIH��	�4�{:�*�{�����{�����C���CD��P����+�����{������{������{:���{������{������C<5���S���S�J���Ci��Hk�<����AĀ;-t9A��$@���[]H�A\H�D�DH�X����H�������@��{[]D)�A\H�H�D�@H��[]A\���H�H�5H�81��ff.��USH��H��H������H��H�����H���l��P0H�hH�@ �����P0H��H��[]�f�AU1�I�պATI��H��USH��H�5�H��H���H����1�H��H����uH�����t�����tBf�I�E�H����uH�����t
�����t)I�$H��[]A\A]�f.�H�xu�H�@�H�xu�H�@��H���H�5H��H�H�81����H���S�H�L$H���5wH�8���H�$H���DUSH��H����tBH��H�L$H���5w����H�,$H�\$@��t^H���t>H��H��H��H�[]�fDH���X���t�H�H�5H�81��@H���H��H��[H��]�H���H���AWM��AVI��AUI��ATUH��SL��H��HA��H�t$�|L�d$0H�T$(H�߾�5wL���
���H�|$(H�T$0H��H�@����H�D$0���JH�EH�L��H�T$8��H��H��u1�H��H[]A\A]A^A_�f���I��L�T$H��H�}M�ዄ$�M��L��L��dA�P�AZA[L�T$H��u�H�E�8uA�:"u�H��
H�D$0H�\$�H�D$�Pf.�H��H�}L��L�ꋄ$�M��M��H��P�ZYH���@���H�}�H9\$��H�H���H�E�I��u�H��H�}H��M����$�L��L��PL�L$ �^_�H���`����t���H�߾�5w����L��I��H�E��H��H��������H�}I���I��tmH�D$H��M��M����$�L��L��dP�AXAYL�T$���H�T$�H�T$����@H�|$H��t
��L���L�d$0�<���ff.���H����H�L$H���5wH�8���H�|$��5w����H���f.�AUATUSH��H��(�f&��5wH�l$L�d$H��L���e���H�D$L��H��H�|$��H�C�G���H�|$H�D$�H�|$H�$���H�Ǩ����H��$I�H�<$�������)��C&у���	��K&@���c�A��D�������D���B�D���)�k�<)��C%��?��	ЈC%���Ⱦcu����)��C$k�<��)Ѻų����?	�D�����C#�K$H����D��)�H�|$��	ˆS#H�T$����H�|$�!���H�<$H�@�������H�;��+~��:,�	���Ⱥ�����������)�)�k�di����)�́�+~��9,������s�m�������)�)��4�iɵ)͉��;�Ⱥ��������D�$
A��D��A)�)�A�i�m)�͍EMc�f%�K�t-���C f%�	�f�C ��H�ףp=
ףH�L��H��L�A����L��H��H��?H)�H��L��H�=H��H��H)�H�H��HD��������
�4�H��9�~/�Ѓ���C!���	ȈC!��)�����C"���	ȈC"H��u�H�H�CH�CH��([]A\A]�����\���@�A�������L���fD��G�������@H��L��H�=H��H��?H)�H��H��H��I9��$���H��H)������3�����Ef%����C f%�	�f�C ��H�=H�����f�D������*�N���fDD�f��&����9���f���H�����H�L$H���5wH�8�~���H�|$�H���ff.�@H��@��uH�����t
�����
tkH��1���*��uH�����t�����t)�����tH���f.�H�xu�H�@��H�xu�H�@�t�����u�H�����u��D@��tH��H�t"x0�ʚ;H��H��pH��H��yD��5w�1������f.�H�Ⱥʚ;H��H��p�Hi�6e�H��H9�w�H��H�@H�yH���H�D	�f.�SH��H�� H�|$@��uH�����t
�����tj�E�H�L$H�T$�H���n��H�|$@��uH�����t
�����t ����H�|$H�����H�� [�H�u�H���1Ҿ
�H�H��H�D$�H�����U��SH��H��HH!B H�H�H�BH�BH�B��
��H�F H�~(H�D$0H�F@����H�D$H�FH�<$H�D$H�FH�D$H�FH�D$ H�H�D$(�����C&���	ЈC&�|�H�|$H�H���Z�C!�����C!H�|$H����C"�����C"H�|$1�H��t����ƒ��C#H�|$ ���	�1҈C#H��t��r��ƒ�?�C$H�L$0H�|$(��	�1҈C$H��t��t:H��u$�C%H�߃�	ЈC%� �H��H[]�f�H�s�����ƒ�?��H�����C%��	ЈC%��uH������t�������H������5wH���9�����H������H��H�C��H��H[]�f�������C"�����	ЈC"����������C!���	ЈC!���@H��H��H�H�A8L�IPH�A0L�APH�A(PH�A PH�AP1��H�|$0�K&H��0�'�������H�L$0�ƒ�?���H��1Ҿ
�H�����f���USH�����H�l$H���5wH�8H��H����H�|$����'���H��H�ھ�5wH���t�H�<$�H��[]�@H��@��uH�����t
�����
tCH��1���-��uH�����t
�����t	H���@H�xu�H�@����u���DH��@��uH�����t
�����
tCH��1���+��uH�����t
�����t	H���@H�xu�H�@����u���DUH��SH���r�H�����H�}H��H��t&H�@H�xH��H�t?H��[]�L���@H��[]Ð�H��H��H��[]�*���f.���AT1�USH��H�=�H���/���5wH�8H�����I��H�H�8�M��H��H�@ H��`0�L� ���K0�P0����	ʈP0H�SH�PH�S H�P H��[]A\�ff.��ATUH��H��S�������tz�tVH�����H�}H���b���I��H�H�8���H��H�@ �`0�L� �E0��<tw<��H��[]A\��H�����t������u�H�xu�H�@닐�uH�����t�����tzf.�H������H�}H���\����e����H�������P0����P0H��[]A\�H��H�m�����P0H�hH�@ ����P0H��[]A\�H�xu�H�@���USH��H���~��H�5H��H�����uH��H��H��[]���H�H�5H�81��f.���AV1�AUATUH��H�SH��H�L$�H�|$H����H��A�H�D$������5wH�8I����I��L������L��H��H�����H��H�����H��H���������H��H���H�L��H�����H��[]A\A]A^��H�D$���H���H��H����H���:����5wH�8I���j�I��H��tm�A��DH��H���E��H�H���(�����t�L��H���)��I����@H��L���������H��[]A\A]A^�H�H���j���A�����H�H�5H�81��f���USH��H���~��H�5H��H�����uH��H��H�����[]���f�H���H��H�}H�0���H���d��H��[H��]�fDAW��AVAUATI��USH��(H�?����H�L$H�T$�!H��I���(��H�|$@�����A��A�t$!A�T$"Ic�@��������ѿ��A�\$#A�t$$A�V�A�׃���?A��i�k�<�A�\$%��?�Hc�H�\��y�DD)�A���AI�����A��-�cD���D$�������Q����)��H�|$���a��A��+���Q�|$H�Ɖ����)��D�)�Hc�H�|?�^����L��H�����H��H���C���uH�����t�������f�H�����H����H��H����H��H���U���I�t$@��uH�����t
�����t_H���/���H��([]A\A]A^A_��A���r���D�����Q�݉���)Ճ���f�H�x�e���H�@�\���@H�~u�H�v�ff.�U1�SH���H�\$H�l$@H��H�D$�H��H���n��H���1Hc@H��H��������H�=H��H�H�D$H)�H��H�����HN�H����H�����D$TH�|$H�D$H�D$ lH�H�DH�D$�D$P�D�����D$1���	��T$L�D$1�D$2�����	��T$H�D$2�D$3�����	��T$D�D$3�D$4��?��	��T$@�D$4�D$5��?��	ЈD$5�����5wH�����H�=H���e�H��H�����H�Ǩ���H�Ĉ[]�f.����f�AUATUH��SH��H��X�������H�=�hH�=���H����H��H��������QL�l$L�d$H���5wL��L����H�|$H�l$@���H�H�|$L��L���u��H����HcD$$�L$,H�k�t$(H�CH���H����H��D$ �D�����C!���	��T$�C!�C"�����	��T$�C"�C#�����	��T$�C#�C$��?��	��T$�C$�C%��?��	ЍQ���S �C%f���C&f���	ʃ��f�S �T$0	����	ЈC&H�H�CH��H��X[]A\A]��H������������fDHc=H�|?��H��H����H��H����H��XH��[]A\A]�H��H����H��XH��[]A\A]����UH��SH��8�N��H���@0�ƒ���uM�u9H�;H������H��tCH�D$ foL$fo$H�C(�C0C���K��	�C0H��8H��[]�fDH������H�H�5H�81��ff.���H������H��H���G����USH��H��XH�7@���H��h�H�=�'H���G���H�=H����H���P�H��H���������H�;@��� H�H������Hc�H9��.�D$$�C!H�T$H�|$��D$0������D$ �C"���D$�C#���D$�C$��?�D$�C%��?�D$���H����H�[��uH�����t�������H�|$�K��H����H��H���H�H��X[]Ð�i�F�������H���6���H��X[]���S�������fDHc=H�|?�'�H��H�������f.��H������H�{�`���H�[�W���H���H��H�H�5H�81��f���UH��SH��8H��H�����H������H��H���ռ��H�P H�ǀb0�H��"���H��8[]�ff.���AT1�USH��H�H��H��L�D$�����H�<$H�5�H�<$��tb�%��H��H��L� �W���H�P H�ǀb0�L�"H�D$����M0�P0����	ʈP0H�UH�PH�U H�P H�D$H��[]A\�fD�����uH�����t�������f�H����H��H���ͻ��H�P �b0�H�*H��[]A\�f�H�<$�g��H�|$H�$�Y��H�D$�uH�����t�����t^fD��5wH�������H���^��H�<$H��@��uH�����t�����t.fD���H��H�����K���H�xu�H�@�H�u�H���H�x����H�@����ff.��AWAVAUATUH��SH��H�����PL�l$PL�t$ H���5wL��L���#�H�|$ L�d$PH��H�@���AH��H�|$L��L��H�D$��H���HcD$d�L$lL�c�t$hH�|$ H���H����H��D$`�D�����C!���	��T$\�C!�C"�����	��T$X�C"�C#�����	��T$T�C#�C$��?��	��T$P�C$�C%��?��	ЍQ���S �C%f���C&f���	ʃ��f�S �T$p	����	ЈC&H�@H���H�D?H�CH�$H�CH����H������������H��H�����H���TH�;@���H����BfofoK�!H�C )D$ )L$0H�D$@�,��H�Ǩ���A��D�C!�����*D��@���)������D���)�)Ѝ���R�gfff�t��i��������i�m�)�ɍqI�D���QA����Ɖ����A�ʉ����)�A)�D�ֺ�$I������2��)���)ȉ�)�A������Hc�H�Hc�H��H)�Hc�H�DH�|$ H�D$ �1�����5wH��������H�L�d$PH�D$H�L$H�H�T$L��H�|$H�D$�L���H����H�D$L�l$D�d$pH�$O�l-L���c�H��H���(�H��H�����H�����S&D��L�k�������	ЈC&H�$H�CH��H�Ę[]A\A]A^A_�fD����fD�A���2���H�=t.H�L�-D�d$pH�$O�l-�R���D1��@1��H�
L��H�H�=H��E�������V������H�;�t���fDIc�A��u2H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9�u6H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9����Hc�H�Hc�H�D����H����
�����k���fDH�L�|$L�t$L�l$PH�D$L��L�d$L��L��H�ƛF����L��H�D$�0���H��tL�l$D�d$pO�l-H�D$H�$���L��L��L��L��H�D$��H��u�E1�A���@UH��SH��8���H���@0�uG�u9H�;H���X���H��t=H�D$ foL$fo$H�C(�C0C���K���C0H��8H��[]�H���ȵ���H�H�5H�81��ff.�AVAUATUSH��H��H�?@����H������H�����H9��H��l��$��C!�����H�|$p�������$��C"���D$|�C#���D$x�C$��?�D$t�C%��?�D$p�C&����������E�1���$�H�T$�ʼ��H����H�[��uH�����t������y�H�|$�f��H����H��H���c�H��H�İH��[]A\A]A^�D���.��H�Ũ�SH�����H9�|�����H9���fDH��L�d$��L��H��H�����H����H�t$H�;��������C!�T$11ƒ����C"�T$21ƒ����C#�T$31ƒ��K�C$�T$41ƒ�?��C%�T$51ƒ�?�#�T$5��?��?8�rg@��L�l$@��H��H���F�L��H��I������H����H�H�5H�81����T$1������8�s�foD$foL$ ��H�D$0)D$@)L$PH�D$`��H��H���X�L��H��I���J���H��t�I��L��L�l$@L��H������uH�����t�������DH����H��H���m�L��H��H�������uH�����t�������DH���h�L��H���-�H��H��I���?����������L��H�����H�������C#2D$3����C$2D$4�?���C%2D$5�?��L��L���X���H��������C#2D$c��O����C$2D$d�?�?����C%2D$e�?�/���H�t$PH�|$ �C&��������IH�����H�����$��9���@�T$3����8��@��������L�������H�t$H�;�c����������	���fD�T$2����8�������H�����H�������������H����������������H����D���@H�x����H�@����@H�x�=���H�@�4���@�T$4��?��?8��`�������H�{H�t$�b�����tN��Q�d�H��H����L��H��H����H�����������DH�{�}���H�[�t���@H�{H�t$�2�����z�������D�����II��`�����UH��SH��8H��H����H���@���H��H������H�P H�ǀb0�H����H��8[]�ff.�AWAVAUATUSH��H��(H�H�t$�A��H�|$H�CA��A����H����L�d$H�L$�L��L�|$膯��H�|$L��L��y�q���H�|$@�����A��H�|$L��L��y�E���H�|$@������H�|$L��L��1����H�|$@�����H�|$A��A�������H���QE������t+�C$��?�����;~��<A���C$��?��	�@�k$E���K�S#�Ѓ�D�����������H�;�!��	ЈC#���H��H�����s ������H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9������8�C"L���D��D�C!�{ D���w��f�����у�Hc�E9��J�S"��f��f�����	����f�s 	ЈC"�s&����H�!�H�|$@��u%H�����t�����uH�uH�����H�{H������H�C��SH��H����H���5w~H�{��5wA�����H�C�S%��?D�����;~��<���C%��?��	ˆS%����f�������	ЈC#�C ������C"�ƒ����a�������	ЈC"�C ���f%�f��	�f�C �s&����H�Ⱥ%I�$����)�����у�	�K&H��([]A\A]A^A_�fD��<���8���D��<A���k���@������@�H�|$A��A�������H���A����g��A��H��H�D$�����A���i����A��P���H�|$������H���A��������H��H�D$��������	ЈC#H��([]A\A]A^A_�fDH���H����H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9��������>�C"L���D��������H��胾�����3H�s@���������5w�c�����������S%��?D�������f���fD%���H�;�
�C ����!H�H��������H�H��@��u8H�ףp=
ףH��H��H�:H��H��?H��H)�H��H���mH��H9�u:H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9�����fl�S f%�f���	�f�C �V����H�;���H��C %��
�C ����H�C��5wH��A���ü��H��H�C�����C"�L	A�������D	����K!�C"�C f%�	�f�s ����H�;�!�[�����H�H��@��u:H��H�
H�ףp=
ףH��H�:H��H��H��?H)�H��H��H��H9�uCH��H�
H�ףp=
ףH��H�:H��H��H��?H)�H��H��H��H9�H�HD��S!�Ѓ�������4����	�H��S!�����C"�������H���H�����H���H���#���ATUH��SH��0����H���@0�ƒ���u�uuL�c�DH������C0��<t�A�H�;H���\�H��tMH�D$ fo$H�{L��foL$H�C(CK����C0L�cH�C ����
�C0H��0H��[]A\�H�H�5H�81��f���AVAUATUH��SH��P�x���H�,$H��H���9���H�5H�<$�I��H��t$H�H�<$H�D$�H�t$1�H���H�5H�<$�I��H��t$H�H�<$H�D$�H�t$1�H���H�5H�<$�H�D$H��t$H�H�<$H�D$�H�t$1�H���H�5H�<$�H��H��t=H�H��1ҹH�=����H�D$�H�<$H���H�t$1�H���H�5H�<$�H�D$H��t?H�H�ƹH�=����H�T$1��H�<$H�D$�H�t$1�H���H�4$H���H���H�$H��� ��H��H�Q��H�������<1�E1��4��H��H��I	�H��u��B�zH��H��H	��zH��H	��zH	�A����PH�D$0L��H��H��I��H��I����H��	�H��H�L$ H��H��
�L	���L$A�����	�L$AH�у�H�����L$B�����	�H�5�L$B�L$CH�t$8���	�H���T$C�T$DH����	ʈT$DH��%��H��Hi�����T$E��?��H�D	�H�D$(�T$EH�������H!T$@I����H�|$��H�|$�H�L$H��� ��H����H�����8��@��@��	������Hk�d@��@��	wl�4��Hc�H�H�����@��<	wL��H�H�t6H�|$(�'���H�D$(�0L�����L��I�����L��H��蒤��H�|$(H�����H�D$(H�|$ ���H��I���ۻ��I���@0M�,$���A�D$0E������A�D$0H�|$H��t-�H�|$H�D$�H�T$H�5H��I�D$ �H��PH��[]A\A]A^��H�yH�Q���]����H�|��5w�1�����H�����L��H���y��H�����H��H���v��H��H������I�Ā`0�H�(�E���@H���7���H��H������H���[�������fDH�Q�;��������H�H�5H�81��H�4	H���`�����F0��<t<t	���@����ff.���UH��SH���޸��H��@0t%�C.���<�HE�H��[]��H��H���������UH��SH��莸��H��@0t%�C.���<�HE�H��[]��H��H���5�������UH��SH���>���H��@0t%�C.���<�HE�H��[]��H��H���������UH��SH�����H��@0t%�C.���<�HE�H��[]��H��H���������UH��SH��螷��H��@0t%�C.���<�HE�H��[]��H��H���E�������UH��SH���N���H��@0t%�C.���<�HE�H��[]��H��H���������UH��SH�����H��@0t�C.��<H�H����[]��H��H�������ff.���UH��SH��讶��H���@0�t#���¸��tH�CH��[]�f�H��H���U����C0��ff.�@��AW1�AVAUATI��H�USH��hdH�%(H�D$X1��L���%���H�t$ H�8H�����H�T$ ���H�L������I������H�|$(H��H�T$�����H�L$H�4$H��S㥛� I��H��?I�L��H��H��H)�Hi��I��I)�K�|-�������T$DH�|$PH���C0��<��HD���?�L$BI��H��H���D$EH�����H��%�H	��D$CL	����T$TH	��D$A�������
H�H	�L	�H	��L$P�L��H��I����H���H��uDH�5@��uH�����t�E������H��L���H�5�L���M��uZ�C0��<��H�{ H��t襣��H�5L��H���H�\$XdH3%(L����H��h[]A\A]A^A_�DH�gfffffffL��M��L��H��I��?H��H��L)�H��H�H)�H��H��H��H��H�|$H��?@�t$H��H)�H��H�ףp=
ףH�H)�L��H��L�H��L)�H��	�@��@�ƈL$@��H���H�5L��H����C0��<����L�������H�L$H�T$H��H��賜��H�|$��H��uH�5H��L�������H�|$�H���ҐH�UL���H�UH�5L����e���H�H�5H�81��H�H�5H�81������UH��SH��農��H��@0t�C.��<H�H��H��[]���@H��H���m�����ff.���UH��SH���n���H��@0t�C(H��[]%�H�D�H��H���%�������UH��SH���.���H��@0t�C.H��[]��H�D�f�H��H���������UH��SH�����H��@0tH�CH��[]�f.�H��H�����H�CH��[]�f.���UH��SH��螱��H��@0t�C)H��[]��H���H��H���U�������UH��SH���^���H��@0t�C*H��[]��H�D�f�H��H����������UH��SH������H��@0t�C+H��[]��H�D�f�H��H����������UH��SH���ް��H��@0t�C,H��[]��?H�D�f�H��H���������UH��SH��螰��H��@0t�C-H��[]��?H�D�f�H��H���U�������AWAVAUATUH��SH��H�t$L�d$0dH�%(H��$�1�L�d$(�1���H��@0�H�|$�H�|$��x�KH�|$�H������1H�|$�H�(H�D$�� �6H�hH��L�x�I��H���9M�4/A�>u1�H��L���H����1�1��H��M9���H�CH�$H�D$(H�D$�C0H��L�L��L����<����PL�D$H�|$H�t$(���Y^H��H�t$(H���L���H�|$(I�4L9�tH�t$�L�d$(H�t$I9�v/�>I��t�@A�?��I��M9�u�L��H��H)��H��$�dH3%(H����H�Ĩ[]A\A]A^A_�H��H��L�x���I��H������H�=1��H�|$(H��L���H�|$(H��L9�t���}���@L9�����L��H��H)��M9�������T���H��H���������C0H�t$L�CL���H�V<����H� tH�VH�|$(H��L��P�:���H��XZ�U����H�H�5H�81��AVI��AUI��H��ATI��USH�ĀdH�%(H�D$x1�H�l$H�l$�i���H���@0�tv��H�|$H��L�<L�CL��L�������P袾��ZYL��H�|$H���H�|$H��H9�t�H�L$xdH3%(H��u'H��[]A\A]A^�fDH��L�����C0�v����ff.�@��SH��賬���@0��<t�H��H�=[H�����H��H�=[H���������SH���H��H�=[H�������UH��SH���>���H���@0�t#��<t2H�{ H��tCH��[]�8����H��H������C0��<u�H���H�=[]�H���[]�@��UH��SH��X辫��H��@0���C-H���?H�DH�$�C,��?H�DH�D$�C+��H�DH�D$�C*��H�DH�D$�C)��H��H�D$ H�CH�D$(�C.��H�DH�D$0�C(%�H�DH�D$8�C.��<H�H�Ѓ�H�D$@����H��
H�D$H�H��X[]�f�H��H������/�����S1�H��H�H��H�L$�H�|$H��t6�Q���H��H�D$��H�t$H������H����H��[�f�H���X��H��[�f���S1�H��H�H��H�L$�H�|$H��t>���H��H�D$脨��H���L���H�t$H��H��茹��H����H��[�fDH��� ���H������H��[�f���AUATUSH��H��x��u[H��L�d$0�ޒ��H���6���1�L��`0�H��H�������H�|$0I�t$����H�EH��xH��[]A\A]�@H�H�L$0H��������H#D$ H	�L�IL�AH�D$ H�H�H�D$H�A0PH�A(PH�A PH�AP1��H�� H�|$0�v���H�|$8H�$�H��t�M�������D$!H�|$@���	к�D$!H��t�蟰���ƒ��D$"H�|$H���	�1҈D$"H��t��u����ƒ��D$#H�|$P���	�1҈D$#H��t��K����ƒ�?�D$$H�|$XH�D$��	ЈD$$H����I��I�t$�����ƒ�?�D$%H�l$`H�D$�L$&��	ЈD$%H��tAH�=H���/�H9��	H�=H�����H9����d$&�L��莦��H���֐��H���.���L�l$H�ŀ`0�H�I����L���T���L��H�����L��H�D$����L��H��H�E�ٶ��H��x[]A\A]�fD1�I������fDH�����H�D$�`���fDH�=��H��H��'���L���x��H��H�E����H��x[]A\A]Ð�D$&�����D$&����@H�=��H��H����H�=�ff.����SH�� H��?B��H��4�ׂ�CH��H��H��H��?H��H)�H��������H)�H9���Hi���H�H�Hi��H�<$H��H�t$H�t$�L���H�<$H�D$H�t$H�|$H�D$�O��H��H�H�8�=���H�P �b0�H�H�� [�@H��y�H��4�ׂ�CH��H��H��H��?H��H��H)�H��H�A�H)�H9�Hi���H�H��Q���H�H�5H�81��f���SH�� H�<$H��H�t$H�t$聋��H�<$H�D$H�t$H�|$H�D$���H��H�H�8�r���H�P �b0�H�H�� [Ð��ATUH��S@��u	H�����u6����I��H�H�8�/���H��H�@ �`0�L� H��u+H��[]A\������u�H�u�H��f�H���H���H��H�����H��H������H��[]A\�f.���H������H��H��H��H��S㥛� H��H��?H��H��H��H)�Hc��f���SH�5H�����u81�H��讧��H��H��[H��S㥛� H��H��?H��H��H��H)�Hc��DH�����H�8谴���ff.���SH�5H�����uH��1�[�=���DH��蠣��[H�8�g������S�H�=��H�=H���H�=��H�=H���H�=��H�=H���H�=H���H�=H���H�=H���H�=H���H�=H���H�=H��H�=H�H�H�0�H�H�H��H�2H��H�;H�5}����H�;1�H�����H�5�H�;�����H����H�5�H�;�����H�6��H�5�H�;�����H���H�5�H�;�����H����H�5�H�;�����H����H�5�H�;1�H�-���H�5�H�;1�H�����H�5�H�;1�H�
���H�5�H�;�H�B���H�5�H�;�H�����H�5�H�;1�H���H�5�H�;�����H����H�5�H�;�H�٣��H�5�H�;�����H����H�5�H�;1�H�F��H�5�H�;1�H�.��H�5�H�;�����H����H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H���H�5�H�;1�H���H�5�H�;1�H�;�H�5�H�;1�H�#�H�5�H�;1�H���H�5�H�;�H� ���H�5�H�;�H���H�5�H�;1�H�H�5�H�;�����H�2���H�5�H�;1�H���H�5�H�;1�H�B�H�5�H�;1�H���H�5�H�;1�H���H�5�H�;1�H�z�H�5�H�;1�H�"�H�5�H�;1�H�
�H�5�H�;1�H���H�5�H�;1�H�J�H�5�H�;1�H���H�5�H�;1�H���H�5�H�;1�H�r�H�5�H�;1�H���H�5�H�;1�H�R�H�5�H�;1�H�:�H�5�H�;1�H�"�H�5�H�;1�H����H�5�H�;1�H����H�5�H�;1�H���H�5�H�;1�H�"�H�5�H�;1�H���H�5�H�;1�H�R�H�5�H�;1�H���H�5�H�;1�H���H�5�H�;1�H��H�5�H�;1�H�����H�5�H�;1�H�ڹ��H�5�H�;1�H�¹��H�5�H�;1�H�ʴ��H�5�H�;1�H�����H�5�H�;1�H�j���H�5�H�;�H���H�5�H�;�����H���H�5�H�;��H����[H�5H���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignout of Time rangeUTC(NO-TIMEZONE-ABBREVIATION)gmtime/localtime errortime out of rangeutc_offset out of rangeargument out of rangeuninitialized %lialready initialized %litime intervaltime%s must be positive%f out of Time rangecan't convert %s into %snilto_rto_inttime out of system range17time + time?01negative ndigits givengmtime error%s11localtime errorlocaltimew errormarshaled time format differyear too big to marshal%Y-%m-%d %H:%M:%S UTC%Y-%m-%d %H:%M:%S %z%a %b %e %T %Yclock_gettime16dststd==!=quodiv<=>divmod*submicronano_numnano_denoffsetzoneTimenowatutcgmlocalmktimeto_ito_feql?hashinitializeinitialize_copylocaltimegmtimegetlocalgetgmgetutcctimeasctimeto_sinspectto_a+-succroundsecminhourmdaydaymonmonthyearwdayydayisdstdst?gmtoffgmt_offsetutc_offsetutc?gmt?sunday?monday?tuesday?wednesday?thursday?friday?saturday?tv_sectv_usecusectv_nsecnsecsubsecstrftime_dump_loadunexpected divmod result: into %scan't convert %s into an exact number"+HH:MM" or "-HH:MM" expected for utc_offsetTime#succ is obsolete; use time + 1year too big to marshal: %ld UTCformat should have ASCII compatible encodingstrftime called with empty format stringjanfebmaraprmayjunjulaugsepoctnovdec�����������������������������������������������������������������������������������������������;Zx����0N����:Yw����/M��������e��A�?�?GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx��0
D�X��pIPc��$�LE�N�D rAA�7E�c
H$�6A�L�I PJA+f8�B�L�G �A(�D0C
(A ABBAX!H X p�D[
Aw
E(�hA�D�G �
AAE�EA�]
RT�ID p
D8��B�E�D �D(�Gp]
(A ABBG(8?Z�D�D �YABdxBL�yL�B�B �B(�A0�C8�J�)
8A0A(B BBBE�m$�6A�L�I PJA(@,�B�D�D �
AGGo
AGA`AGpiE�x
Ch��A��
GA�sA�q�AA�\
A�)H`0RE�A�G _
CAHSAA4HL4LoF�A�D �J
DBEGAB�AA�\
A�m�JtN�!HQ$�LA�D�G }AAE�Q$(3A�D�D dDAP,Xd1B�P�B �D(�A0�GPT
0D(A BBBA�
0D(G BBBC�wH�k
EX�B�B�D �A(�D0�
(A ABBFb
(A ABBHT(E ABB8]Lu|_MhiDz
B�OHj
NN4��A�A�G N
DAD�
ADKD��B�A�A �T
ADKf
AELD
ABE$$GA�A�J uDA8L�B�L�G �A(�D0u
(A ABBK�+H b4��A�A�G0x
GAGt
DDD��rB�E�E �E(�A0�D8�G�v
8A0A(B BBBCW�c�G�B�A�[�F�A�y�X�K�A�a�Y�G�B�h6H m8��B�B�A �A(�GP�
(A ABBA�1H h��DQ
K�� 	�A�G0s
ADP(	�K�C�G`O
AAJt
AAJGhPpIxE�E�E�T`$|	\E�A�D0OAA�	kDG
E�	kDG
E<�	fA�D�D l
IAID
AABIGA(
�F�C�A �vABDH
-B�A�G �[
ABHy
ABDi
ABD(�
VE�A�G _
LAEX�
�F�D�B �A(�K0�D@�
0A(A BBBD�
0A(A BBBD0jE�A�G _
LAG`ADHL%B�G�B �B(�D0�A8�D`�
8A0A(B BBBA,��A�C�G�h
AAK\��B�B�A �D(�L�i
(A ABBDK
(D ABBDO(D ABB((�E�D�DPW
DAGTHI4l�A�A�Gp#
AAB^
AAH$�EE�D�DPuAA@��F�C�A �N0�
 AABGJ
 AABJL
|B�B�B �B(�A0�D8�J�p
8A0A(B BBBG(`
�A�D�DPQ
DAA@�
�B�B�B �A(�A0�J��
0D(A BBBF$�
EE�D�DPuAAd�
�B�B�B �B(�A0�A8�G`~
8A0A(B BBBG�
8A0A(B BBBG0`�B�A�D �DP�
 DABAD�/F�B�B �A(�D0�D�2
0D(A BBBH�%(�ME�D�D i
AAH(ME�D�D i
AAH(HME�D�D i
AAH(tME�D�D i
AAH(�ME�D�D i
AAH(�ME�D�D i
AAH(�EE�D�D ^
DAH($QE�D�D g
AAJLP�F�D�B �B(�K0�A8�D��
8A0A(B BBBF(�EE�D�D ^
DAH(�=E�D�D V
AAK(�=E�D�D V
AAK0$FE�D�D V
AAKSAA(X=E�D�D V
AAK(�=E�D�D V
AAK(�=E�D�D V
AAK(�=E�D�D V
AAK(=E�D�D V
AAKl4�F�B�B �B(�A0�D8�G���U�U�A��
8A0A(B BBBD��D�I�A�P��B�E�H �D(�A0�D�v�[�F�A�y
0A(A BBBG�HE�c
HP E�S<4|E�D�D d
AAMZ
MAHDFA(t�E�D�Dp�
AAJ(�nE�P @
AJLA(�~E�P K
AGTAt�DF�B�A �A(�G�Q
(D ABBEF�E�E�E�K��
(A ABBG`
(A ABBB pE�D0�
AE�_E�D0TA4��F�A�D �~
ABDBAB�>HNbE�d
g 9E�Y
JI@|E�h	&%9'Qj(��)��*���, 0B`0Z�v
�
�
�������1�A�Sf�Ic	`i|< ���l� L�H�l��p7�-�?�6D	PK�f�+���� ��	������!�1�E��B	XI�o���h��0��0���EE%E=�SPI\	Hg0
?w��)
����)
o
 o
:�
Rp
]�
r�
��
B��
�I��
y�I���Pm��	�!�6,�?(G(P(m)�0��)���0i��
^$��1^`��`s���!��A�!	Y	0)*	YB	�X	`Ra	�z	��	��	��	O�	�o�	O�	�
PA
�1

��mB

l
Z�
J�
Z�
��
`!�
��3�LJ�h������3 � 3�3 �l �@ ,l �$�)p 19	�@�$Y'%p�$wz'%�?&�0%��0�?&��&�@&]��&�'

�&u
'*
�'<
 'iA
�'Z
�'q
�'O{
�'�
|*�
�'��
	(�
	 �
|*D,!�*�0D,S�,tP,G��,��-��,���-��-��-+��-M.0�-�?M.`�0P.r��0�1��06�1��41�,�4E15\51f15z�5�@5���5�f6��5��f6�7p6�75�9K 7�T�9m<:��9\�<:��:�@:k��:�;��:k�;	�;, ;fB�;^<x<�M=� <-�M=��=�P=V��=N?�=�&N?@�?XP?jc�?��A��?%��A�wC�A�4	8M	@W	0twC�yE��C��yE�F��E��F9F" F19FHH]@F�eH�eH� HE�eH�4J�pH��4J��O@J|@P9	CR	c{�O�BP��O��BP��U�PP��U5V9�UEG5Ve�]�@V���]��^��]���^��c�^/
	�	x"	�.	p8	h@�c[�ct�c%��c�=d��cM�=d��d�@dM�d#�d>�dML�dj-e��dM�-e�}e�0eM�}e��e�eM�e3fL�eEXfwqf� fQ�qf�	j��f��	j�UjjEUj4�jK`j=U�jn�j��j=��j�&k��jF�&k�mk�0k=mk�k0pk=:�kS�kj�k=t�k�-l��k=�-l�ml�0l=�ml�=opl�(=oApX@o�bp{hp� pH�hp��p�pp ��p�q�p|q2rIq�Srsnr�rn�nr��r�pr~��r
4v$�rD.	G	`4v{^w�^w��w��w�Vx Vx. �xL �xk y� y� Iy� Iy� ̀'()*&� � !!
!1!H!Z!r!�#!�(!�.!�4! :! @! F!�L!�R!�X!(^!	d!j!
p!Pv!|!2�!3�!��!6�!C�!F�!]�!j�!m�!p�!��!��!��!��!�!��!��!��!��!�!�!"""""#"'$"+*"20"46"=<"FB"OH"VN"[T"`Z"d`"gf"kl"nr"tx"{~"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"�"�"#
####  #%&#*,#/2#58#:?#AF#LM#WT#\[#ab#ii#qp#zw#�~#��#��#��#��#��#��#��#��#��#��#��#�#�#�#$

 !"#$%+,-!$7$F$O$Z$e$p$}$�$�$�$�$�$�$�$%%(%.%:%J%a%t%�%�%�%�%�%�%@�%�%&&#&;&D&L&V&c&l&}&�&�&�&�&�&�&�&�&'''-'8'L'W'f'q'x'�'�'�'�'�'�'�'�'�;��'(���	((#(9(C(M(b(r(�(�(�(�(�(�(�(�(�(�(	)#):)H)R)@v^)`w_o)�w�)`x>�)�xb�)y9�)Py|�)�)�)�)�)*'*8*Q*.annobin_time.c.annobin_time.c_end.annobin_time.c.hot.annobin_time.c_end.hot.annobin_time.c.unlikely.annobin_time.c_end.unlikely.annobin_time.c.startup.annobin_time.c_end.startup.annobin_time.c.exit.annobin_time.c_end.exit.annobin_calc_tm_yday.start.annobin_calc_tm_yday.endcalc_tm_ydayleap_year_yday_offsetcommon_year_yday_offset.annobin_time_memsize.start.annobin_time_memsize.endtime_memsize.annobin_timegm_noleapsecond.start.annobin_timegm_noleapsecond.endtimegm_noleapsecond.annobin_time_overflow_p.start.annobin_time_overflow_p.endtime_overflow_p.annobin_eq.start.annobin_eq.endid_eq.annobin_mul.start.annobin_mul.end.annobin_time_s_alloc.start.annobin_time_s_alloc.endtime_s_alloctime_data_type.annobin_time_mark.start.annobin_time_mark.endtime_mark.annobin_wcmp.start.annobin_wcmp.endwcmpid_cmp.annobin_time_modify.start.annobin_time_modify.endtime_modify.annobin_divmodv.start.annobin_divmodv.enddivmodvid_divmod.annobin_validate_zone_name.start.annobin_validate_zone_name.endvalidate_zone_name.annobin_quo.start.annobin_quo.endid_quo.annobin_gmtime_with_leapsecond.start.annobin_gmtime_with_leapsecond.endgmtime_with_leapsecondcommon_year_days_in_monthleap_year_days_in_month.annobin_time_zone_name.start.annobin_time_zone_name.endtime_zone_name.annobin_zone_str.start.annobin_zone_str.endzone_strzone_tablezone_str_update.annobin_localtime_with_gmtoff_zone.start.annobin_localtime_with_gmtoff_zone.endlocaltime_with_gmtoff_zone.annobin_zone_str_update.start.annobin_zone_str_update.end.annobin_time_s_now.start.annobin_time_s_now.endtime_s_now.annobin_tmcmp.start.annobin_tmcmp.endtmcmp.annobin_find_time_t.start.annobin_find_time_t.endfind_time_t.annobin_add.start.annobin_add.end.annobin_cmp.part.7.start.annobin_cmp.part.7.endcmp.part.7.annobin_cmp.start.annobin_cmp.end.annobin_small_vtm_sub.start.annobin_small_vtm_sub.endsmall_vtm_sub.annobin_validate_utc_offset.start.annobin_validate_utc_offset.endvalidate_utc_offset.annobin_validate_vtm.start.annobin_validate_vtm.endvalidate_vtm.annobin_timew_out_of_timet_range.part.8.start.annobin_timew_out_of_timet_range.part.8.endtimew_out_of_timet_range.part.8.annobin_get_timeval.start.annobin_get_timeval.endget_timeval.annobin_time_utc_p.start.annobin_time_utc_p.endtime_utc_p.annobin_time_eql.start.annobin_time_eql.endtime_eql.annobin_time_hash.start.annobin_time_hash.endtime_hash.annobin_time_cmp.start.annobin_time_cmp.endtime_cmp.annobin_get_new_timeval.start.annobin_get_new_timeval.endget_new_timeval.annobin_sub.start.annobin_sub.end.annobin_rb_time_unmagnify_to_float.start.annobin_rb_time_unmagnify_to_float.endrb_time_unmagnify_to_float.annobin_time_to_f.start.annobin_time_to_f.endtime_to_f.annobin_time_init_copy.part.23.start.annobin_time_init_copy.part.23.endtime_init_copy.part.23.annobin_time_init_copy.start.annobin_time_init_copy.endtime_init_copy.annobin_time_dup.start.annobin_time_dup.endtime_dup.annobin_obj2vint.start.annobin_obj2vint.endobj2vint.annobin_time_timespec.start.annobin_time_timespec.endid_mul.annobin_obj2ubits.start.annobin_obj2ubits.endobj2ubits.annobin_month_arg.start.annobin_month_arg.endmonth_argmonths.annobin_mod.start.annobin_mod.end.annobin_timet2wv.start.annobin_timet2wv.endtimet2wv.annobin_wquo.start.annobin_wquo.endwquo.annobin_time_to_r.start.annobin_time_to_r.endtime_to_r.annobin_num_exact.start.annobin_num_exact.endnum_exactrb_intern_id_cache.13628rb_intern_id_cache.13630.annobin_utc_offset_arg.start.annobin_utc_offset_arg.endutc_offset_arg.annobin_time_set_utc_offset.start.annobin_time_set_utc_offset.endtime_set_utc_offset.annobin_wdivmod.start.annobin_wdivmod.endwdivmod.annobin_time_to_i.start.annobin_time_to_i.endtime_to_i.annobin_timew2timespec.start.annobin_timew2timespec.endtimew2timespec.annobin_rb_strftime_alloc.start.annobin_rb_strftime_alloc.endrb_strftime_alloc.annobin_time_subsec.start.annobin_time_subsec.endtime_subsec.annobin_gmtimew_noleapsecond.start.annobin_gmtimew_noleapsecond.endgmtimew_noleapsecond.annobin_time_nsec.start.annobin_time_nsec.endtime_nsec.annobin_wmul.start.annobin_wmul.endwmul.annobin_rb_time_magnify.start.annobin_rb_time_magnify.endrb_time_magnify.annobin_obj2subsecx.start.annobin_obj2subsecx.endobj2subsecx.annobin_time_arg.start.annobin_time_arg.endtime_arg.annobin_time_usec.start.annobin_time_usec.endtime_usec.annobin_wsub.start.annobin_wsub.endwsub.annobin_wadd.start.annobin_wadd.endwadd.annobin_timespec2timew.isra.5.start.annobin_timespec2timew.isra.5.endtimespec2timew.isra.5.annobin_rb_time_succ.start.annobin_rb_time_succ.end.annobin_time_add.start.annobin_time_add.endtime_add.annobin_time_plus.start.annobin_time_plus.endtime_plus.annobin_time_round.start.annobin_time_round.endtime_round.annobin_time_minus.start.annobin_time_minus.endtime_minus.annobin_timegmw_noleapsecond.start.annobin_timegmw_noleapsecond.endtimegmw_noleapsecond.annobin_init_leap_second_info.part.15.start.annobin_init_leap_second_info.part.15.endinit_leap_second_info.part.15known_leap_seconds_limitthis_yearnumber_of_leap_seconds_known.annobin_gmtimew.start.annobin_gmtimew.endgmtimew.annobin_time_gmtime.start.annobin_time_gmtime.endtime_gmtime.annobin_time_getgmtime.start.annobin_time_getgmtime.endtime_getgmtime.annobin_timegmw.start.annobin_timegmw.endtimegmw.annobin_time_s_mkutc.start.annobin_time_s_mkutc.endtime_s_mkutc.annobin_time_s_at.start.annobin_time_s_at.endtime_s_at.annobin_localtimew.start.annobin_localtimew.endlocaltimewcompat_common_month_tablenow.13833now_zone.13835now_gmtoff.13834compat_leap_month_table.annobin_time_localtime.start.annobin_time_localtime.endtime_localtime.annobin_timelocalw.start.annobin_timelocalw.endtimelocalw.annobin_time_s_mktime.start.annobin_time_s_mktime.endtime_s_mktime.annobin_vtm_add_offset.start.annobin_vtm_add_offset.endvtm_add_offset.annobin_time_fixoff.start.annobin_time_fixoff.endtime_fixoff.annobin_time_load.start.annobin_time_load.endtime_loadid_nano_numid_nano_denid_submicroid_offsetid_zone.annobin_time_get_tm.start.annobin_time_get_tm.endtime_get_tm.annobin_time_saturday.start.annobin_time_saturday.endtime_saturday.annobin_time_friday.start.annobin_time_friday.endtime_friday.annobin_time_thursday.start.annobin_time_thursday.endtime_thursday.annobin_time_wednesday.start.annobin_time_wednesday.endtime_wednesday.annobin_time_tuesday.start.annobin_time_tuesday.endtime_tuesday.annobin_time_monday.start.annobin_time_monday.endtime_monday.annobin_time_sunday.start.annobin_time_sunday.endtime_sunday.annobin_time_utc_offset.start.annobin_time_utc_offset.endtime_utc_offset.annobin_time_dump.start.annobin_time_dump.endtime_dump.annobin_time_isdst.start.annobin_time_isdst.endtime_isdst.annobin_time_yday.start.annobin_time_yday.endtime_yday.annobin_time_wday.start.annobin_time_wday.endtime_wday.annobin_time_year.start.annobin_time_year.endtime_year.annobin_time_mon.start.annobin_time_mon.endtime_mon.annobin_time_mday.start.annobin_time_mday.endtime_mday.annobin_time_hour.start.annobin_time_hour.endtime_hour.annobin_time_min.start.annobin_time_min.endtime_min.annobin_time_sec.start.annobin_time_sec.endtime_sec.annobin_time_strftime.start.annobin_time_strftime.endtime_strftime.annobin_strftimev.start.annobin_strftimev.endstrftimev.annobin_time_to_s.start.annobin_time_to_s.endtime_to_s.annobin_time_asctime.start.annobin_time_asctime.endtime_asctime.annobin_time_zone.start.annobin_time_zone.endtime_zone.annobin_time_to_a.start.annobin_time_to_a.endtime_to_a.annobin_time_localtime_m.start.annobin_time_localtime_m.endtime_localtime_m.annobin_time_getlocaltime.start.annobin_time_getlocaltime.endtime_getlocaltime.annobin_time_init.start.annobin_time_init.endtime_initrb_intern_id_cache.13973rb_intern_id_cache.13975.annobin_rb_time_new.start.annobin_rb_time_new.end.annobin_rb_time_nano_new.start.annobin_rb_time_nano_new.end.annobin_rb_time_num_new.start.annobin_rb_time_num_new.end.annobin_rb_time_interval.start.annobin_rb_time_interval.end.annobin_rb_time_timeval.start.annobin_rb_time_timeval.end.annobin_rb_time_timespec.start.annobin_rb_time_timespec.end.annobin_Init_Time.start.annobin_Init_Time.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC14.LC15.LC16.LC18.LC13.LC19.LC23.LC20.LC22.LC21.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC41.LC40.LC43.LC42.LC44.LC46.LC48.LC47.LC45.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.LC120.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_eRangeErrorrb_raiserb_funcallrb_int2bigrb_big_mulruby_xcallocrb_data_typed_object_allocrb_gc_markrb_cmpintrb_error_frozen_objectrb_check_array_typerb_ary_entryrb_obj_classnamerb_eTypeErrorrb_string_value_cstrrb_num_zerodivtzsetlocaltime_rrb_str_new_cstrrb_enc_str_asciionly_prb_locale_encodingrb_external_str_with_encrb_usascii_encodingrb_enc_associatest_updatest_init_strtablestrduprb_class_new_instancerb_big_plusrb_eArgErrorrb_check_typeddatarb_obj_classrb_typeddata_is_kind_ofrb_equalrb_hashrb_invcmprb_big_minusrb_Floatrb_obj_init_copyrb_to_intrb_str_to_inummodfrb_check_funcallrb_num2longrb_fix2intrb_num2intrb_check_string_typest_locale_insensitive_strncasecmprb_big_modulorb_Rationalrb_respond_torb_intern2rb_check_to_integerrb_enc_getrb_enc_dummy_prb_isdigitstrlen__errno_locationrb_strftime_timespecrb_strftimeruby_xfreeruby_xmallocrb_sys_fail_strrb_sys_failrb_scan_argsrb_time_succrb_warnrb_cTimerb_out_of_intrb_attr_getrb_generic_ivar_tablest_deleterb_rescuerb_copy_generic_ivarrb_string_valuerb_string_value_ptrrb_str_new_frozenrb_ivar_setrb_str_newrb_Integer__stack_chk_failmemchrrb_str_new_staticrb_str_catrb_warningrb_enc_str_newrb_usascii_str_new_staticrb_ary_new_from_valuesclock_gettimerb_id2symrb_time_newrb_time_nano_newrb_time_num_newrb_time_intervalrb_time_timevalrb_time_timespecInit_Timerb_cObjectrb_define_classrb_mComparablerb_include_modulerb_define_alloc_funcrb_define_singleton_methodrb_define_methodrb_define_private_methodrb_singleton_classz���\e�y�\�*,�������������������-���������\�.��������81��������?���������M2���������3���������3���������3���������L�.��������5��������=�B.��������M6��������`7��������q7���������8�������������������*9���������-���������:��������T!.��������};���������<���������=��������	��b	����������	��T��������>��������
?��������@��������1B��������<C��������\DwD���������E���������D�<���������=��������#
���������Y
F��������Y<��������f=���������<���������=����������������������<���������=��������?<��������J=���������<���������=��������lH�������������������<���������=��������p������<���������=���������<���������=��������#<��������.=��������9<��������D=���������L�.��������I*J��������P���������Z-���������*J�����������������
-��������o/���������/�������������������K��������L��������	���������*9��������-��������u����������M������������������M��������T���������\K��������rL��������y����������*9���������-���������S��������
 L��������u ���������| ���������!V��������0!���������>!���������\!����������!*,���������!����������!-��������"�6"W��������H"6��������_"7��������q"7���������"��".���������"*J���������"���������#-��������#X��������$#X��������4#���������V#���������t#X��������G$8��������Q$���������[$*9��������e$-���������$Y���������$U��������	%Z��������%*J��������%���������#%-��������>%[��������i%���%\���������&/��������*'T6'.��������!(���������c($x(W���������(�(_��������4)�@�)8���������)*9���������)����������)-���������)����������)��*���������*`��������'*8*���������=*`��������G*$S*���������[*a���������*[���������*b���������*b���������*c��������+d��������+d��������J+d��������[+d��������v+d���������+d��������/,*J��������6,���������@,-���������,��,.���������,6���������,7��������
-7��������a-8��������h-���������r-*9��������|--��������.*J��������.��������� .-��������,.X��������D.X���������.e���������.f��������+/g���������/h���������/i���������/j���������/g��������#0e��������40f��������n0h���������0X���������0k���������0l���������1Y���������1Y��������r2Y���������3�\�3��3���������4Z��������!4Z��������14Z��������a4��4�(5T��������m5.���������50��������7U��������<7���������Z9����������9m���������9U��������1:T��������m:.���������:Q���������:.��������;I��������q;/���������;����������;o���������;*p��������T<*p��������e=���������p=M���������=*9���������=����������=-���������=����������=m��������y>T���������>X��������9?*J��������@?���������J?-��������e?���������p?M��������@Y���������AZ���������Aq��������Br��������?B4IB<iB4/C4RCZ��������XC,qCY���������C;�C4�D���������	EX��������+E,�E*J��������F���������F-��������fF;|F4�G,�GX���������Gs��������H*J��������	H���������H-���������H����������Hm���������H����������HM�������� LY���������L�<9M����������MX���������MZ���������MN���������N3Nq��������:N���������DNKNRN�N�OX��������!O/��������3O���������-P*J��������4P���������>P-���������R*J���������R����������R-��������LTY��������UZ���������VY���������VY��������WY��������2WN��������X��ZZ��������ZZ��������QZZ���������ZX��������[���\��9]��n]���]X���������]X��������y^*J���������^����������^-���������^|�^t���������^|�^u���������^v���������^t_t��������_t_u��������-_v��������4_�=_t��������O_�]_u��������l_v��������s_l|_t���������_l�_w���������_u���������_v���������_d�_t���������_d�_w��������
`u��������`v��������(`x��������0`y��������a����������az���������b{���������b:���������bd�b|���������c*9���������c����������c-���������f����������fm���������g}���������gx���������gN���������g|!h|��������(ht5h|��������^hdih|��������&i}��������-i�8i|��������xiN���������il�i|���������i~���������i|���������it�i|���������i*J���������i����������i-���������i*J���������i���������j-��������j���������ly���������lb���������lb���������lc���������l{��������mb��������Am���������Sm����������m����������me���������mi��������n���������Tnb��������jn���������qn����������n����������ni���������n���������!o��������(o*J��������/o���������9o-���������o����������oi��������
p��������9pB��������Cp���������QpB��������[p���������ypB���������p����������p����������q���������
r���������rm��������}r����������rm��������.s����������s����������s����������sm���������t�t����������t���������t����������u����������u`���������u��������v���������v`��������v+v���������0vl���������v*p��������Iw*,��������Pw���������Zw-���������w*p���������w*p���������x����������xM��������y��������� yM��������]y���������by`��������ny���������uy\zy`���������y����������y`���������y����������yT�y`���������y����������y`���������y����������yL�y`���������y����������y��y`���������y����������y��y`��������z���������z�z`�������� z���������'z|,z`��������8z���������?ztDz`��������Pz���������Wzl\z`��������cz���������jzdqz*���������yz����������z*����������z*p���������z����������z����������z����������z����������z����������z����������z����������z���������{���������
{���������#{���������({���������>{���������C{���������V{���������[{���������n{���������s{����������{����������{����������{����������{����������{����������{����������{����������{����������{����������{���������
|���������|���������%|���������*|���������=|���������B|���������U|���������Z|���������p|���������u|����������|����������|����������|����������|����������|����������|����������|����������|����������|����������|���������}���������}���������}���������}���������3}���������8}���������N}���������S}���������_}*n��������f}���������k}����������}����������}����������}����������}����������}����������}����������}����������}����������}����������}����������}����������}���������~���������~���������)~���������.~���������A~���������F~���������Y~���������^~���������q~���������v~����������~����������~����������~����������~����������~����������~����������~����������~����������~����������~���������������������������������������������1��������6���������I��������N���������a��������f���������y��������~��������������������������������������������������������������������������������������������������������	�	������������������!�
��������&����������9���������>����������Q���������V����������i�
��������n�������������������������������������������������������������������������U.���������/���������0���������3���������4��������x/��������"A��������|
G���������.���������/���������I���������4���������N���������O��������KP���������.��������/��������	Q��������VR��������}R��������Z T��������h U��������t&]���������&.���������'^��������\6/���������?R���������p���������Ȁ��������� ����$,�P�X
���
�
���
����D�L�p�x�����08ldll�l���l������$�,�P�X�����������D�L�p�x�����������0�8Ed�lE�E���E�����)
$�,)
P)
Xo
�)
�o
�o
��
�o
��
	�
	�
D	�
L	�
p	�
x	I�	�
�	I�	I�	�
I
�0
�8
�d
�l
��
��
(�
��
(�
(�
)$(,)P)X��)�����^���^^�D^L�p�x!���!�!�Y
!
Y0
Y8
�d
Yl
��
��
��
��
��
��
O$�,OPOX��O�����
���

ZD
LZpZx��Z��������0�8�d�l����3 ���3 �3 �l $3 ,l Pl X�$�l ��$��$�'%��$�'%'%?&D'%L?&p?&x�&�?&��&��&�'�&'0'8�'d'l�'��'��'��'��'��'�|*$�',|*P|*XD,�|*�D,�D,��,�D,��,�,�-D�,L�-p�-x�-��-��-��-�M.�-M.0M.8�0dM.l�0��0�1��0�1�1��4$1,�4P�4X15��4�15�15��5�15��5�5f6D�5Lf6pf6x7�f6�7�7��97�90�98<:d�9l<:�<:��:�<:��:��:�;$�:,;P;X�;�;��;��;�<��;�<<M=D<LM=pM=x�=�M=��=��=�N?�=N?0N?8�?dN?l�?��?��A��?��A��A�wC$�A,wCPwCXyE�wC�yE�yE�F�yE�FF9FDFL9Fp9FxH�9F�H�H�eHHeH0eH84JdeHl4J�4J��O�4J��O��O�BP$ �O, BPP BPX �U� BP� �U� �U� 5V� �U� 5V!5V!�]D!5VL!�]p!�]x!�^�!�]�!�^�!�^�!�c"�^"�c0"�c8"�cd"�cl"�c�"�c�"=d�"�c�"=d�"=d�"�d$#=d,#�dP#�dX#�d�#�d�#�d�#�d�#-e�#�d�#-e$-e$}eD$-eL$}ep$}ex$�e�$}e�$�e�$�e�$f%�e%f0%f8%qfd%fl%qf�%qf�%	j�%qf�%	j�%	j�%Uj$&	j,&UjP&UjX&�j�&Uj�&�j�&�j�&�j�&�j�&�j'�j'&kD'�jL'&kp'&kx'mk�'&k�'mk�'mk�'�k(mk(�k0(�k8(�kd(�kl(�k�(�k�(-l�(�k�(-l�(-l�(ml$)-l,)mlP)mlX)=o�)ml�)=o�)=o�)p�)=o�)p*p*hpD*pL*hpp*hpx*�p�*hp�*�p�*�p�*q+�p+q0+q8+rd+ql+r�+r�+nr�+r�+nr�+nr�+�r$,nr,,�rP,�rX,4v�,�r�,4v�,4v�,^w�,4v�,^w-^w-�wD-^wL-�wp-�wx-Vx�-�w�-Vx�-Vx�-�x.Vx.�x0.�x8.yd.�xl.y�.y�.Iy�.y�.Iy�.Iy�.̀$/Iy,/̀ � � � �l*d(h(l(p(D(x(|( �($�(((*,�(0�*4�(8�(<�(@p(Dl*Hd(Lh(Pl(Tp(XD(\x(`|(d�(h�(l *p�(t�*x�(|�(��(�p(�t*�d(�h(�l(�p(�D(�x(�|(��(��(�p)��(��*��(��(��(�p(�p 4H\t�� � �p���  \�t�����P�<0
hp
|�
��
�P��00t0���`���0`8�P��P����`���, T@ hp ��$�0%<@&P�&l '��'��'��*(P,P�,��-��-�P.l�0�1�5�@5��5	p6,	 7�	�9�	@:�	�:�	 ; 
�;L
 <�
P=�
�=P?P�?��A��C,�EX Fp@F� H�pH
@Jd
�O�
PP�
�U�
@Vd�]��^��c��c @dL�dx�d�0e��e��e( fT�f�j�`j��j(�j\0k�pk��k��k0l8pl�@o� ppp8�pxq�r�pr��rt@v�`w��w�`x�x$yDPy.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rela.data.rel.local.rela.data.rel.ro.local.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@/T/l/�/�/'�̀"@�?�</-��3���=��4/8@�|�-/
Sİbİ�]@�0/
|�������@@�0/�l��l���@p�0/�@��@���@��0/2��2��).@�� )@�/;�6@��/P�H K@��H/c(�p0@�.�n��n�|n�Sn�'n�yn��n��n��n��n��p� ���X�@��X/-��X>0+	@d*P��transcode.o/    1690381920  1000  135   100644  118088    `
ELF>��@@/.

"$!% &'��%?=t��=t= ����%�=�����%@tH�H�����tHc�H�
��H���tHc�H�
��H���tHc�H�
��H��� tHc�H�
��H�ց�t!Hc�H�
��H���f����N���������f���H��H�H��%��ff.������H���Hc�H�>��@H���H���H���H���H���H���H���Hc�H�D?��UH��H��SH��H�=H�\$H�����t$H�|$H��H�����tH�D$H��[]�@H��1�[]�ff.�@AUATI��UH��H��SH��H�=H�\$H�����t-L�l$H��H��L�����t>H�D$H��[]A\A]�fD�H�=L��H��H�D$��f.�� �H��L��L� H��H�hH�@H�@H�D$�H�D$H��[]A\A]�ff.����UH��SH��H��H�t$H��H�;H�T$���u/��H�SH�;H��H�hH�H�H�SH�C�H��1�[]�ff.�@UH��SH��H�H�SXH�CHH��tH�XH��w-��H�CHH��wa�{<K�{@%H��H��[]��H�}X��f.�H�}P�H��H��[]�f�H�}8��DH�}X��D��ATI��UH��SH��H�H��t&Hc�L��H��H�����H�H��[]A\���A�H�L$�T$�|Hc��H�L$�T$H��DU�SH����O￸��0�h\Hc�H���@XH�H�@H�@H�@H�@ H�@(H�@0H�@8H�@@H�@H�@`�H�CdH�CPH�H�ClH��H�CxHǃ�Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�H��[]�ff.�f�AWAVAUATUH��SH��H��XH�T$H�L$������L�d$0L�-4����H�XH�H�D$@H�D$8�H��1�H�\$(H��H�D$0�I�D$H�D$�Xf�I�wH�=H�����t7L�t$(H��H��L�����uzI�GL��L��L��H�D$H�H�D$HL���L�|$8M��t I�H�D$8H��u�H�D$H�D$@��A�����H�|$0�H��XD��[]A\A]A^A_�fDI�WH�|$0H���L���H�|$8H��tDH�H�D$8�H�|$8H��u�H��E1���A��H�|$0H���H�t$(H��u�E���A��H��H�L$H�D$D���H�l$(H�|$0H��H���H�|$(H��u��<���A������;���ff.�I��ATM��UL��SH��H�W(L��H)�L)�H)�H9�}0H�H��H�8�x<3H�L��H���H�E�x<#H�U(H�E8H�I�$[]A\��H�}8��f�H�U(H�E8H�I�$[]A\�ff.��AWI��I��AVI��AUATUSL��H��XM�(L�'H�T$H�.A�E8D�L$�D$A�@����w_H�Hc�H�>��fDM��L��H)�H����H�CH��H���E�L��H)�H���xH�CH��M��H���E�fDA�EH�C(�C�D$t	I9.�>	L;d$�C�D$��I����L��H)�H����
H�Icu@I���H�yHH9���HcI@�H�sP��HM�~H�sPH����H�{XL�T$��H�C@L�T$H��H�CH��H�1�H���z@CH�SPH�s@�H���H�CHH9C@�_L��H)�H���ZH�H�C@H��z@H�p~�H�SP��L��H;L$�RI��M)�D$���CM��~*H�H�{8�x<~H�{8H{(L��L��H�L$�H�L$I��I�.Lk(��@HcL$I�x(L�l$M)�I�D=�D$t	H9���H9�~H)�I�I��H�D$�C1�M���a
H��x<��H�C8L��H�L��H�L$�H�s(H�L$L�H�D$H��I�I�.H���(
H)�H�K01�H�s(�+H���H�{XH���H��C�M�'I�.H��X[]A\A]A^A_ÐA�$�CM�\$�S I�u(��I�MH�<�D���F�A8���H�t$HH�CL�
H�t$ H�sXH�t$(H�ƒ�H����Ic�L�>��fDM����L��H)�H�����S$H�CH����H��IE��E��C$H�SI�M��H���C$���9�r�M�����DB8T�W�����L���D)�H���D>��HЋ��3���f�M��L��H)�H���nH�CH��M��H������0�E��Q����M��L��H)�H���n	H�CH��H���E�L��H)�H���@H�CH��M��H���E��	���f�M��L��H)�H����H�CH��M��H���E������M��L��H)�H����
H�CH��H���E��]���f.�M��L��H)�H���H�CH��H���E�L��H)�H���P���M���CM)�M��~0fDH�H�{8�x<~H�{8H{(L��L��L�\$�L�\$M��I�.Lk(H��X[]A\A]A^A_�M��M��I)�M���g	IcE@I�7I9��OL�D$HL��L��H��L�T$(L�\$ ���H�;A�L�CPH��L�\$ L�T$(HcW@I�����LM�~L�CPH�HH�KH�T$H�+
H�{XL�T$(L�\$ ��H�C@L�\$ H��H�CHL�T$(�����H�31�H���~@CH�sPH�K@�H���H�CHH9C@�d���L��H)�H���H�3H�C@H��~@H�H~�H�sP�M����M��L��H)�H����
H�C@H��H�HH�3�~@��H�sPH�K@�H���H�CHH9C@|����DM���y���M��L��H)�H���g
H�C@H��H�HH�3�~@�VH�sPH�K@�H���H�CHH9C@|����DM�������M��L��H)�H���H�McE@I�EpH�sH�zHL9��A	HcR@���HM���H�SPH����H�{XL�T$(L�\$ ��H�C@L�\$ H��H�CHL�T$(�����H��1���-���M��L��H)�H�����CH�������E�L��H)�H����H�CH��H���E�����f.�M��M��I)�M���XIcE@I�7I9���L��L�D$HL��H��L�T$(L�\$ ��H�3M�MxH�KPA�L�\$ L�T$(HcV@��LM�~H�KPH�~HH�T$HH�{XvH�{XL�T$(H��L�\$ A��H�C@L�\$ H��H�CHL�T$(���H��1������M��L��H)�H���>H�CH��H���E����f.�M��L��H)�H����H�CH��H���E�L��H)�H����H�CH��H������0�E��f�M��L��H)�H���xH�H�KP�x@~H�KPH�C@H�uH�PH�S@��EH�S@H�CHH��H9�������M������M���i����M��������C�M�'I�.H�C(�����L�YH�K�S �ȉK���L��D$�z���I9.�q���M���CM)�M��~-H��x<��H�C8HC(L��L��L�\$H���L�\$M��I�.Lk(�[����C$����H�I�U`H�yH�H�|$(L�T$8H��L�\$0��L�
L�\$0L�T$8H�C�w���M���CM)�M��~*H�H�{8�x<~H�{8H{(L��L��L�\$�L�\$M��I�.Lk(���I�7L�D$ L��L��H��L�T$8L�\$0��H�3I�MhH�T$HL�\$0H�~HL�T$8�cH�|$(L�T$8H��L�\$0��L�
L�\$0L�T$8H�C���H�{(M��HcL$M)�J�4/H9��"�g����D$�Y���I9.�P����CM�������H��x<�H�C8H�L��L��L�\$�L�\$�j���f�H�C@M9�s?L��1�H�{P��H�S@H�H��H���y@~H�sPH�JH�K@�H��I9�u�H�C@H��1�H�C@H�CH�,���f.�M���C M)�M����������DM���CM)�M���r������DH�D$L�I�I�.H�{(1������M���CM)�M���2����W���DH�{X���M���CM)�M�������'���DM���CM)�M���������DH�sP�]����H�sP�����C�M�'I�.�Y���f�M���C	M)�M����������DM���CM)�M���b������DM���CM)�M���B����g���DM���CM)�M���"����G���DH�C8�W���CM��~&H��x<�qH�C8H�L��L���H�C(L�H�|$I�?I�.H�C(��u�D�CM��~*H�H�{8�x<~H�{8H{(L��L��H�L$�H�L$I��I�.Lk(�&�fD�C�M�'I�.�	�f�H�{X���M���C!M)�M��~*H�H�{8�x<~H�{8H{(L��L��L�\$�L�\$M�I�.Lk(���M���C
M)�M���������M���C
M)�M����������M���CM)�M�����������M���CM)�M���[����M���CM)�M���p������M���CM)�M���U����z����CM�'I�.�E���M���CM)�M���(����M���M���CM)�M���
����2���H�{X����H�{X�d���H�SP�M���L��L��H��L�T$0L�D$HL�L$(L�\$ ���H�M�exH�{XH�T$HL�\$ H�yHL�L$(L�T$0vH�{XL�T$(H��M��H��L�\$ A��L�\$ L�T$(H���H����H�{XL�T$(H��L�\$ ��L�\$ L�T$(H�M����L��L��H��L�T$0L�D$HL�L$(L�\$ �M�H�3H�KH�{XM���H�T$HH�~HL�\$ L�L$(L�T$0vH�{XL�T$(I��H��L�\$ A��L�\$ L�T$(H��b�M���CM)�M��������M���C"M)�M���q������M���CM)�M���V����{���H�C8���H�{X����H�{X���H�{X���H�F��CH�L�\$H��H��H��H)�M���i���H�C8�Q���H�C8����H�H�5H�81��ff.�UI��I��H��AWAVE��AUI��ATI��SL��H��(I�P0dH�%(H�E�1�H����H�BH��H��H%�H)�H���H��H9�tH��H��$�H9�u����H�H�|$H�s8H���x<H�}�L�<��Hs(L�]�L�U��E��L��H�}�A��I��L��L��H�C0���L�U�L�]�����t8H�u�H�L��H�{8H)�x<~H�{8H{0H{(�M��L+}��M�L{0�L��E��I��L��L��L���y���H�]�dH3%(��u4H�e�[A\A]A^A_]��H�s8�8����H)�H�L������ff.�f�AWAVAUATUSH��XH�D$GH�<$H�t$(H�T$0H�L$L�D$ D�L$<H�D$HH����H�|$�fH�$L�@PA�x(uA�@(H�$�@`�p�Hc�A��H�RH��E�L(���~A����D�ɿH��H��@��s�������H�Hc�H�IH��L�A��0fD�J(���cL��H��H���su'H��0��A���EA�|$����u�E1�A����D�d$8f.�D�\$<�l$8E1�E���@�E�H�H�@H��H�L�xL�X9��)H�KL�CL�cL9�t>L��L��H��L�\$L)�L�D$�L�D$L�\$H��HKH�CI��M)�H�CL�cH�K L�SH�$E��9hdtA������A��t�D$8A����I�L�L��L��L��L�T$H�D$�p���L�T$���C(H�D$I;��A��U��w�H��c���tH�$�PdH�$�Ջ@`�p�9�~oH�$H�PPHc�H�@H��HӅ�����L�\$0L�|$(9�����L�T$H�L$ M�"����DA�����>���@M9"�DE��e����E��t;;D$8~5�l$8E1��z���f�H�$�@`�p����t�T$89��%���A���A��E��xRH�$H�HPIc�H�<@H��HϋG(��uZA�s�Hc�H�@H��H��fDH��H��0�BX��u1��A��u�H��$�������H��X[]A\A]A^A_�@��v�P���w�G(H��$�D�H��X[]A\A]A^A_�f�H�D$ H�D$HH�D$���@H�|$HH�D$0H�|$(�b���D�d$<A���#���D�L$<H��1�1���$�L�D$0H�L$(A����H�|$A������Z�Y��D��7����D$8���H�=1��AVAUI��ATI��U��SH��H���A��A�EA���A�<$������L��H���E��tc�H�5H���H�5���
���-�� �P��@�s���������H��[]A\A]A^�f���uL��H���E���w�����fD1�L��L��H��H�5�E���O����fDE���R���H�ߺ
H�5�H��[]A\A]A^��1�1��H�������H���H�ߺH�5�H��[]A\A]A^��H���H�5�H���H�5������H���H�5�H���H�5�� �����H���H�5�
H���H�5��@�����H���H�5�H���H�5����j���H���H�5�H���H�5�B���ff.��AUI��ATI��UH��SH��H�?���x!�lj��H��H��tH�@�f.�H��1��1�I�E��I�$H��[]A\A]�ff.�@��H���H�t$H�5H�L$�H������H��H���H�t$H�t$�H���ff.����SH���H��H�t$H�t$�H��H���H��[�ff.�@AVAUATUSH��H���Gp��t*��t%����WH��H��[]A\A]A^��H���L���H��L���H��I����{pH�$�.H���H���~J�|-�H��I���H�|$L���H�D$�H��H���L��H��H�=H��1��H��H�=�H�5H��H���GL��H���H�5H���tL��H��A��H�5�{p�LE�H���&��L��H���H����H�5I��H����L��H���H����H�5I��H����H��L���H������ySH�������h������H���H�5H��H����H��H���H��H��[]A\A]A^�f����H���H�5I��H����L��H����{���fD�H�=�H��H��:�����H�=�H��H����H���H����H���H�D$�H�=I��������_L���H�D$H�kL���H��L���L�����uH�sL������}H�|$�H��L��H�=H��1��H�ŋC`��~vE1�L�-�fDA��D9s`~ZIc�H�@H��HCPH�H�H��:t�H�PL��H��1����fDH�|$�L��L��H�=H��1��H��H�=H���H���H�����x
��L���H�5H���Z����
H�=�H��H��:���H���H��A��H�=H��H��1��H�������H�=�H��H������H�=�H��H�����H�=�H��H��l���H���H��A��H�=H��H��1��H��������H�=�H��H������H�=�H��H������H���L���H��I��I�H��L�����~H�H;��tH�D$H���i����W���fDL��L��H��A�V H�=��1��H�D$��ff.����H�5SH��H��tH��[��H�=�H��[H��H��ff.����H�5SH��H��tH��[��H�=�H��[H��H��ff.����H�5SH��H��tH��[��H�=�H��[H��H��ff.����H�5SH��H��tH��[��
H�=�H��[H��H��ff.����H�5SH��H��tH��[��H�=�H��[H��H��ff.����H�5SH��H��tH��[��H�=�H��[H��H��ff.����H�5SH��H��tH��[��H�=�H��[H��H��ff.����H�5SH��H��tH��[��H�=�H��[H��H��ff.����AUATUSH��H���H�5H��H���H��tSL�`L�hH��H��H�=1���L��L��H��H����H��H�5�H��H��[]A\A]�f�H��H��H�=1�[]A\A]�D��H�1��ff.�AWAVI��AUATUSH��H����I���1�I��H�@
H��H�D$�H��H�hH� tH�h�H�}
L��L��A��H�enc/tranH�E�s/f�E�H�t$H�����t,A���H��AN��I�H��[]A\A]A^A_�DH�����t�H��Ѓ���t�H�Ѐ��H�����t���H�{H�t���u�H������H��8t<SH�FH��H��t�xDt11�[�DH�FH�~H������H��u�1����1��DH�@H��[�f�SH���H��t[�H���[�����AUATI��UH��S��H��H�9t\A�<$H��u"�H�}H��Hc�H��[]A\A]�@���H���L��I�����H���L��H����H�t$�H�t$H�E�PXH�5H��H�H�81��f���ATUH��H�5S�H���+H�5H��H��A������H�m H����H�{H�uH9�t�E1���H�{H�uH9�t�E1���E1�E9��H�{(H�u(H9�t
�����H�U E1�H9S usH�{H�uH9�t	���u]�C`E1�;E`uR��~HL�CPH�}PI�H�H�H9u8��H�t@�0H���fDH�I�H��0H�H9uH9�u�A�L��[]A\�f�E1�[]L��A\������H��H�5�H��tH��H���{��f���fD��H��H�5�H��t!H���H��tH���f��H����!������H��H�5�H��t!H���H��tH���f��H���������UH�5SH���H����H�ÿ��{pH���9��1�H��H���H����H���H��t��H��H���H���H��t��H��H���H���H��tFH�����H��H���H���H���H����H��H���H��H��[]�������AVH�5AUATUS�H����H��1��I�ċE`��#�yf��H��L����9]`~XHc�H�@H��HEPH�L�(I�EI�}�8t����H���I�}I�����H���L��H�����[L��]A\A]A^�����ff.�@AWI��AVAUI��ATU��SH���G\9G`����I�}PI��Hc�H�@A�E`H��)�H�4H�|0H�H�@H���I�EP�`H�H�D$�I�HI��L�8�@H����I�WPH��tI�|$X��A�D$Ic<I�D$(I�D$0I�D$HI�D$@����Ic@����I�uPH�D$H�L� I��H�C A�E`L�s�PL�sL�s�C(A�U`I��:t9�}H��1�[]A\A]A^A_����9��Hc�H�RH��H�H�
H�	�9t�I�Uh�f��I�WPH��I�D$XH������I�$H�xH�����������I�D$P�5�����I�D$8������H�P�0Hc��A�]\I�EP�A���ff.�@�G��uZUH��H��H��SH�lj�H���0��H��t0H�pH��tH����H��[]����f�H�xH�p����H��H��u�H�������[]��ff.����y�tSH��H��IH��H�;�q����C[�@��ATUSH������H����H��H9����I��H�C�tG��H���D$�����x��� H�H%���H	�H�H��H��[]A\�@H�����t�H��H�����u�H���`H��`u�I�$��`H��`t�L��H����y�������H��H���H��H��[]A\�f�H���H��H��H��[]A\�f����H������=���H�3�� t&H�{H�sH�1�H�L$�HcT$����DH��H�{��H������ATUSL�gH��H�/L��H�����H�xu	H�X[]A\�H�L��H��H�5H�81��D��SH��tH���N��H�X[�H�H�5H�81����H�WhH�H��t
H��xDtH�@�fDH��@USH��H����8u-�H�
H�H�CH�S H�K(�CXH��[]�H��H�ChH�H�x�H�5H���H�5H�
��H҃�H����H�HE�H�5HE��f���SH�5�H��t4H�xH��t H�{(�H�s H�{H��[�fDH��������������ATI��US�WX��unA�D$`��~<1�Hc�H�@I�D$PH��H�<���I�D$PH�|H��t���A9l$`�I�|$0�I�|$P�[L��]A\�f�H���D�������GXS����H�G H��W`��~zL�OP���`L�RI��M�A0M��f�I��0I�H�
H�qHH��H�V`Hcq<HcI@HF�I��H�A��HO�H��Hу�HO�I�IH�H��t
I�Q H)�H�M��M9�u�HcO\H�WHH+W0[H�IH��H�H��f����P���fD���G`��tH�GP����H�H�@0H=���O��ff.����G`��tU��tQUSHc�H��H�GPH�(H�EH�U8�x<~H�U8H�E0HE(H��H)�H�4H���H)]0H��[]�f.��ff.�@��ATI��H�5U��H��SH���H������H��H�L$L��H�1��H�|$H��ty@��uc���H���9�N�Hc�1��I��H�pH� tH�p��H���H���H��tL���H��L��[]A\�������H�����������SH��H��H�� H�=H�T$���tDH�|$1�H�WH��H��u$H�T$H�5;�H�\$H�D$�H�D$H�� [�DH�� 1�[���H��(H�t$H�|$H�T$H�t$��H�|$�H��tH���8�H���H��(��H��(�ff.����G`��tH�GPH�H�H��:t�xDtH��1�H�5�l���@H��H�5�T���@���O`��t'�Q�Hc�H�@H��HGPH�H�L�A�8t�xDtH��H�5�������H��H�5������AWAVI��AUI����ATUSH��8H�D$0�T$H��H�D$�m���D$������D$A�}�D$��A�>��A�}��1�L�5�y��H�$M��I��H�<$�M��tR�D$M�oM�wA��D$���"H�\$��H�l��H��H9���H�3L������u�L���E1�H��8L��[]A\A]A^A_�L�����x���A�}u
A�>�E���H�L$ H�P��L��L��H�D$ �D$(���H�L$ �D$H�$������D$L�$$��L��I�l��
@I��I9�twI�$H�xu�H�xH�p�_�I��H��u�H�<$��1���f�D�d$E0�E'D�d$�D$A�����@L������d�������X���@�|$����I���f�H��H9�tGH�H�pH��uH�xH�p���H��A�W`L������u�L���H�<$����@H�<$��%���1��{��I������AWAVAUATM��UH��SH��H��8M���1�M���I��H����H�D$(H�+E1�L��H�t$ O�<H��M��H�\$ L�d$(H�T$H�D$H�t$�H�\$(L)�tV�T@L��H���I��H�L$H�T$L�E1�H�t$M�.L��H�\$(�H�\$(L)���I��M��x+K�,?M9�u�H���L��L��H��I�����M9�tL���L��E1��H��8L��[]A\A]A^A_�fDH��A�LE�1�M���I��H���}L���H�+E1�L��I��H�D$(H�D$(H�t$ O�>H��H�\$ H�T$H�D$H�t$�H�\$(L)��(�������G���L���H�D$pH��J���f�E1��@�����t��+���ff.���AWAVAUATUSH��H�$H��HH��H��I��I��dH�%(H��$81���CH��u21�H��$8dH3%(�#H��H[]A\A]A^A_��L��H��I������:H�l$(E1��S`��u{L�[0L�K0L�C8I��L�c@H�KHE1�M����I�<$H�H)�L9��MH��L���H�|$(I<$I�<$M��t	I��xDt_E���D���L����7���f��r�H�KPHc�H�@H��H�L�8I�?�Dt_L�HL�@L�XI��L�`H�H �b����x<I�W0I�w8~I�w8Iw(�I�G0I$I�G0E��������q����I��MW0������L�K0L�C8L�[0L�c@H�KH��f�L�|$0H��H��L��H�D$0M��L��L��PA�����ZYH���IL9�H�l$(A��I9�I����A!��}����I�0H��L��L�T$H�L$H)�L�L$L�$�L�$L�L$I�$H�L$I+II�$I�L�T$I�I�<$H�H)�L9�r^H�l$(�O���@L��H�L$L�D$L�L$L�$�L�L$L�D$L�$H�L$I�H�l$(I�I�$L�H�I�<$���@H��H�L$H)�L�D$L�L�$H��rDH��H���L�D$L�$H�L$H�l$(I�I�$H�I+I�$I�H�H�I�<$���E��tL�����������f���Hc�H�RH��H�L�HL�@L�XL�`H�H �5�����SH�wH��H��t#H�K(H�S H���[����������fD�k�H�s��DAWH�5AVAUATUH��SH��8H���dH�%(H��$(1�����FA��H���L���H�D$���H���M��H�\$L�%�!DH�D$I��H��H�D$H����A�L��H�߉�A�O�����A�G�A�G���1��H�ڋ
H����������!�%����t�H������D�H�JHD�H�
��@�H��H��H)������X�����E��tL��������H��$(dH3<%(��H��8[]A\A]A^A_�f�E��tL���1���H�\$ H��H���H���H�D$H���A�I��PH�5����I��XZM���j���H�D$H�ƒ�I9�t1L9��t(H���@���A�H���i����o���f.�H��� ���E1��?����f.���AWAVI��AUM��ATI��USH��H��H�GH�D$3H�T$D�L$H�D$8H���>H���%�D$I�npI��%����
�D$I�F8H�D$ H�D$4H�D$f�I�G0AAGAG A�F`����H�;L��H)�I�~0tGI�v8I�V@H9�t:H)�I��H9��W�L;I�F0I�F@I�F8�D$�eH�;L��H)�I�4$H�l$H)�H9�HO�H��t�D$�&H���H+I,$I�,$H9l$�X�D$�zA�FpA��B���H�H�@H��IFPH�pH����H�PH9���H�;L��H)�H��H)�H9��5�A�F`H+��H�H�@H��IFPI�~0H�PH�PH�Pt7I�V@I9V8t-H��H��M��L���t$D�L$,H�t$0����Y^�����D$twI�$H9T$��H��M��H��L��t$D�L$(L�����AYAZ����A�FpA��8DI�~0tI�V@I9V8�3�D$�]A�~`�R�D$H�l$L�|$(
A��@H��M��L��E��UH�T$H��L�����_AX��t�L�|$(�Ņ�A�np@�ƃ���@�u	����HcD$4H�@H��IFPH�H�I�FxH�9�y<I���H�yI�����H�H8I���H�H(H�@0I���I���@��tA������>��u)A�%��� ����0uL���C��������A��H��HD��[]A\A]A^A_�H��M��H��L���t$D�L$,H�t$0�����XZ���������fDH��M��H��L��t$D�L$(L��H�T$����A[��X����H�H8�����L���`������?����[���H�FA�I�$H�H�PH���A�Fp�1���fDI��H�\$8����H�D$L�d$8����A�FpA����DL���������������A�FpA�����DH��H�L$A��A�F`L�+H�L$��H�H�@H��IFPHHA�Fp����H��H�L$A��L�+H�L$A�FpIN8�O���@��AWAVAUATUH��H�5S��H��H��H�H���eL�t$I��H��I��H�D$(H���M��PL��H�E1�H�D$8PH�D$0P1�L�L$0�H�|$0H�� ��H��t@���0H�I��H�|$1�H��t@��� H��H�H�|$(H�D$ H���"H�����H�Ǩ�����L���H�<$tL���H�|$�H�|$��H�|$�MM����H�|$H��� �)H����I9���H���>M��I���M�����I9��H�$H����H��� ��H�AH��H�D$0��H�H�D$H� ��H��L�H�t$0L��A��H�L$8L�H�D$8�H�|$H�t$8A��H�GH� tH�GH)��H�<$H��t.H�H�T$H�t$0%H	H�GH� tH�GH)��H�|$��A���}H��������?H9��H�D$H�H�|$H��� �%H����I��H������H�H�5H�81��f.�����(����I�������H�|$(H��H�D$ H������1�H����H�5H��1��H�5H�|$ H�����@��������H�����E����f.�H�@�m����H�D$01��@���H�G�����H�AH�QH�D$0����fDH�|$L�������fDL�oM�������H�H�5H�81��I��$�H��t
H�|$�D�����H��H[]A\A]A^A_�f.�H�$�H�������H��� tH�XH���HL����H������H�H�5H�81��H�H�5H�81��H�H�5H�81���}���������ATH�5USH��H��0�H����1�1�I���H��H�ڿH��H�D$H�$H�D$H�D$H�D$ ���H9t'H9tH9tH9u!H��0H��[]A\�L�����H������H�=1��f���ATUSH��H��@H�t$H�5�H����H�|$I���1�1��H�|$H���H�t$H�ڿH�D$H�l$H�D$ H�D$(H�D$0����H9t0H9t'H9tH9t8H9u!H��@H��[]A\�L���<��H������H�=1��H�H�5H�81��f���AVAUATI��US���?������ t#H�5��t��[]A�$A\A]A^�@H�5H�=轮��L�pA�D$`��~��1�1�L�l@I���9fDHc��oH��0��H�@H��H��oIH�oQ P I9�t4I�T$PH�H�9L97u����I�D$PH�|H��0�A�l$`I9�u�A�$[]��A�$A\A]A^�DH�5�C���ff.����AUA��ATI��UH��H�=SH���D��L��H��H��H���$��H�ߺH�5�H�=H��H��[]A\A]����AWI��AVI��AUATUH��SH��H����8tH��L��I�����ufH���H��L��H��I���H�l$�CX��u1H�D$�CXL�cL�s(H�C 1�H��[]A\A]A^A_��H�{���DH��H��L��E1�H�D$E1�L��L��P��ZYI��H��tM��눃��ff.���USH��H�5H���H��ttH�|$H��H�\$�H�|$�H�t$H�HH��� t%H�VH�vH������tH��H��[]�fDH��H������H�=H�51������f���AWAVAUI��ATUS��H��H���gH�5H���H��tH;����H�5H���H�5H��tH9����� H���H��t�؃� ��D�H�5H���H��tZH;tK��0�H;tB<���uH�����t�������H�H�5H�81��f���0@H�5H���H������H;A����H;��H;�<H;��<�7�uH�����t������H�H�5H�81��DH�A��H��D��[]A\A]A^A_�@H���H�5H��H�H�81��DA��H�5H���H�$H����H���H�<$�H�<$=0�!�H�$�H�$H�5H��I���H�5H���H�$H��t3H���H���MH�$I����H�$H�5L���I��tL���M�e���DH�5H���I��H�$H��t�L��A��f�A�����@H�5H��E1��H�5H��H�����A��A��H��A���D��H�5H���H�����DE�H��A���D��E	��� H�����DE�H��uA��E���t����؀�D	�A���d���DA�� �S���@H���H�5H��H�H�81��DH�<$�H�������H�<$�H�������H�5H�<$����{��������I���l���H�H�5H�81��H�H�5H�81���H�<$H�D$�H�|$H�X�H�5H��H�H��H�81��ff.����1��DAWM��I��AVM��AUATI��UH��H��H�SH��@H�D$ P1�L�L$0�H�|$0ZYH���&H�|$�L�H�Ǩ���A��H�D$(I�<$��������H��H�}���xq���H��H��tqL�cH����H�BM�'I�H�D$pH�H�D$xH�H��$�H�T$(D�(H��$�H�H��8[]A\A]A^A_Ð�A���a���H���1�H��u�L��H�T$�H�T$I��H���~���H��H�T$�H�T$�h���f�L��1���#����H�|$H��uH�D$(E1����@H�t$(�A�������x���ff.����AWAVAUATUSH��xH�D$`L�l$8L�d$0PL��L��H�D$4PH�D$hPH�D$hPL�L$hL�D$`��H����HDŽ$�H�� H�t$HH�|$@H�L$h�	���H�l$hH���H�\$p�|$,H��艣��A�ǃ����H�}H���� ��H�}Hc�A��H9�����t6H�EH��uH�E E�F�Ic�H���u	H�����umC�t7�H��Hc��E��~+G�,7@H�;H���Ic�H��A��H���E9�u�H�D$hH��x[]A\A]A^A_�fDH�����^���@H��ƃ���u��� ��H�B H�8H�T$D�D$�H�T$D�D$H�@H� H�D$H�BuH�B H��H�8H�T$D�D$�H�|$H�p���D�D$H�T$H�pH��tIH��8�����~D����C�t7�H��D�D$Hc��D�D$E������H�B�Q����H�xH�pH�T$D�D$�9��D�D$H�T$H��H��u��T$,H�t$HH�|$@�L�d$pH�T$0L�l$pH��H�T$8�H�|$@�T$,H�t$H�H�������H����AUA��ATI��UH��SH������H��������H��ƒ���������H�5H���H��D��L��H���H��H��t2H��t,H���H�H�H�� u-H��H�s��H������t-H��H��[]A\A]��H�SH�s��fD�H��1����H�=1��ff.���AWAVAUI��ATI��H�5US��H��H���H��������H�D$hH�l$xL���L�t$pPH��L��H�D$hPH�D$HPH�D$HPL�L$HL�D$@����H�� H�L$h�T$`H�t$(H�|$ �I��H���5H�|$ H�l$0�?tGH���.H�D$8H���H�T$pH��$�H�T$pH�T$xH��$�H�T$xH�l$0�
DH�D$8I���L��I���M�} H�Ę[]A\A]A^A_�@I�<$H���I��H�������H�D$HH�8H�D$P�� ��H����Hc�H9����F���E1�I��I�E H�D$@H�D$H�D$HH�D$H�D$XH�D$��f�H����I9���L��L���H��H�D$@�H��H����H��� ��H����H��������H��1�H�$�H�T$H�t$H�|$hH�D$h���H�$�H���H�t$`H�T$PH�|$pH�D$p���H�t$`H�|$XE�O`�?uuH��D��H��L���D������I��I��� ����I�FI9��������fH�|$ H�D$(H�l$0I�I�G�D$`H�D$h����f�H��$�H�A��D�$L��$�D��$�DŽ$�轢��������$��Lc$�
I�WP��t!H�D$HH�D$0K�IH��H�H�H�H�D$ H�D$P1�H�D$8A�G`��H�H�@H��H�H�H�@H�D$(����H�y���b���H�|$H�H�D$X�H��H�D$`���DH�|$(����H�D$8���D����H�D$0���f�H�x�`����H�D$0H�H�D$8H��H�D$ H�D$(�~���H�T$`H�t$XH�=1��H�T$hH�T$xH�T$hH�T$pH�T$xH��H�H�T$pH�8�H���H�H�5H�81��H�t$`H�=1��H�T$hH��$�H�T$hH�T$pH��$�땋T$`H�t$(H�|$ �L��$�H�T$pH��$�H��H�T$x�H�H�5H�81����AWAVAUATUSH��H�H�T$8���dA��M�Ņ��@H�H�D$`����H�FA�H�D$hH�T$xH�|$`D��H��$�H�T$(���H��H�D$0H�|$X�.���H�|$h�D$P�L��$�H�T$pL��H�|$h����H��$�H�L$pL��$�H�D$H�D$xH�D$����H��tH;L$��H�|$t
�y��H�t$L�������H�+�� ��H�SH��H��$���H�MH�T$ H��H�L$�H�L$H�T$ H� H��L�`tL�`I�H�t$L��L��H�D$H�*D��L�d$xH�D$ �H��H���I���#A��u
I������(�D$WA�H�D$@H�EhA�H��tH�D�p@Ic�L��$�H�D$HfDL�D$H�L$(E1�L��H�T$ H��������|$W��H����H���H���H���L��H��$�H��H�D$@��H��$�H��4t
H���H���@���H��H���H���DH������H��L�xH��$�H�D$H�D$xH�D$������H�t$L������-���H�+H�H�D$I��� ����H�SH�kH��$��������W������N�������L�t$xH�D$HH��M)�L�cJ�0H�H��H�T$�H� H�T$tL�cM�I�L�t$xH�D$�u���DH�|$0�H��$��H��$�H�HH��� u=H��H����H�������)���H�H�5H�81��f�H�VH�v��fDH���H��$�H9D$ �wH�CH� tH�CH�T$xH���H�t$xH)��H�|$� H�D$8H��D$PH�Ę[]A\A]A^A_�f��H�D$`H���,E1�A���A��A��"���A��t
E�����H�|$hu��D$P�����fD�D$WH�D$@��DA�E��������H�5L���H��I���D$W�uH�����t������PL���H�
L���H�L$@H�������L���H�����H��H�Ÿ��HE�H�D$@�c����H�|$��D$PH�D$XH��$�H�D$`H�D$hH��$�H�D$h���f�E�������H���H�D$`���DA���k���H������
���H�D$�x�����H��������H���=�����1���f�I��tH�5L��H�L$�H�L$I��H��L��H���H��HD�H�\$8H����H�H�D$@�F����1��H�T$ H�5H)�H�H�81��H�t$L��D���H���fDAT1�I��E1�UH�1�SH��H��H�D$I���H�<$1ɉ�H��tH�t$���L�D$L��H�މ�����H��[]A\�ff.���USH��H������H�������H��ƒ���������H�T$H�\$�D����Ņ�xIH�t$H9���H�����H���D$�����xt!� H�H%���H	�H�H��H��[]����H�����u�H��� t=H�{H�sH�1�H�L$�HcT$��H�߉��H��H��[]�@H��H�{��H�4�H������SH��H��H�T$H�T$�U���H�|$H�މ����H��[���SI��H����H�� H�D$H�t$H�t$H�|$H�¿�>���H�|$H�މ��_��H�� [�f���USH��H�t$H�5�H����H��H�|$�H���H��H���H���H�|$1ҹH���H�H�D$�� t+H�PH�pH��H������t H���[]��H��H�p����H�H�5H�81������ff.���H��H�a���H�D$H�L$�Ζ��1�H�D$������H���ff.����Ǵ�����H��賴��H��uH���H�����AWAVAUI��ATI��UH��SH��XH�|$D�D$$H���YH�D$H�D$H�@hH��tH�Hc@@H�D$H�EH�D$8H�D$HH�D$(H�D$@H�D$0��@H����H���H�T$H)�I�4H9�sH��H���H��H���L�l$@K�T%H�E ��L�t$8H��H�T$M�<�D�L$$H�T$L�|$HH�L$(H�t$0M�H�|$�L�t$@H�t$HH��D$L��L)�L)�H�M��I)��H�|$��D$��u,H�]�� �'���H�]�%���fDL�u�h����H��XH��[]A\A]A^A_�fDH���H��H�D$H���H�������H����z���H�H�5H�81����AVI��AUE��ATM��UH��SH��H��H�� H�t$�H�D$H�pH� tH�pH��L�E��L��H���H�T$H�T$H�T$H�T$H���H	H�� []A\A]A^�ff.�f���H�I��A��� uH��1҃�H���DH�N1��ff.�f���E��A��ff.���H�A��� uH��A�1҃��DH�NA�1�����UH�5SH��H�H�-H�;H�U�H�UH�;H�5H��H�UH�;H�5H��H�-�����H����H�5H�H�}�H�}�����H�����H�5�H�H�;H�5H��H�5����H��H��H�=�H����H�5�H�=�����H���H�5�H�=�����H���H�5�H�=1�H����H�5�H�=1�H�S���H�5�H�=1�H�����H�5�H�=1�H�����H�5�H�=�����H����H�5�H�=�H����H�5�H�=1�H����H�5�H�=1�H�����H�5�H�=�H�����H�5�H�=�����H����H�5�H�=1�H�����H�5�H�=1�H�?��H�5�H�=�H�p�H�5�H�=�H��H�5�H�=�H�5�H�=�H�5�H�=��H�5�H�=�AH�5�H�=�aH�5�H�=�H�5�H�=�H�5�H�=�H�5�H�=� H�5�H�=�@H�5�H�=��H�5�H�=�H�5�H�=� H�5�H�=1�H�]���H�5�H�=1�H��H�5�H�=1�H�����H�5�H�=1�H����H�5�H�=1�H�����H�5�H�=1�H�Ѵ��H�5�H�=1�H�e���H�5�H�=1�H�����H�5�H�=1�H�����H�5�H�=1�H�Ѳ��H�5�H�=1�H�e���H�5�H�=1�H�����H�5�H��[]�f���H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�=H��H���H�H�����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignxml_text_escapexml_attr_content_escapexml_attr_quotecrlf_newlinecr_newlineuniversal_newline,%s to %sxml_textxml_attr_contentno-conversion with incomplete %s on %s%s followed by %s on %s%s on %serror_bytesreadagain_bytesincomplete_inputsource_encoding_namedestination_encoding_namesource_encodingdestination_encodingUTF-8U+%04X%s from %s to %s to %serror_char#<%s: uninitialized>#<%s: >invalid library name - (null)?�US-ASCII01UTF-32BE&#x%X;23:negative output_byteoffsetoutput_byteoffset too bignegative output_bytesizetoo long conversion resultconverter already finishedcode converter not found ()21:already initializeddecoration failed: %stoo big fallback string02:too big stringtoo long stringUndefinedConversionErrorInvalidByteSequenceErrorConverterNotFoundErrorencodeencode!Converterasciicompat_encodingsearch_convpathinitializeinspectconvpathprimitive_convertconvertfinishprimitive_errinfoinsert_outputputbacklast_errorreplacementreplacement===INVALID_MASKINVALID_REPLACEUNDEF_MASKUNDEF_REPLACEUNDEF_HEX_CHARREFPARTIAL_INPUTAFTER_OUTPUTUNIVERSAL_NEWLINE_DECORATORCRLF_NEWLINE_DECORATORCR_NEWLINE_DECORATORXML_TEXT_DECORATORXML_ATTR_CONTENT_DECORATORXML_ATTR_QUOTE_DECORATORincomplete_input?invalidundefreplacefallback[]xmltextattrinvalid_byte_sequenceundefined_conversiondestination_buffer_fullsource_buffer_emptyfinishedafter_outputpartial_inputnewlineuniversalcrlfcrlfeconvunknown transcoding instructionunexpected transcode last result%s to %s in conversion from %suninitialized encoding convertertranscoder from %s to %s has been already registeredoutput_byteoffset+output_bytesize too bigunexpected result of econv_primitive_convertreplacement character setup failedunknown value for invalid character optionunknown value for undefined character optionunexpected value for xml option: %liunexpected value for xml optionunexpected value for newline option: %liunexpected value for newline optionreplacement string is broken: %s as %srb_econv_open_opts called with invalid opthashnot a 2-element array in convpathadding conversion failed: %s to %snot fully converted, %td bytes leftGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx��0D�0XQA�G�D0u
AAEDCAH��B�B�D �G(�D@x
(A ABBGe(A ABB$�aE�D�G0LCA4�A�D�D v
DAL]
DAN08kF�D�D �D0a
 AABI$lA�F�D �AAL��B�B�B �B(�A0�D8�G�
8D0A(B BBBG4��E�D�D �P
ABHXABdEB�H�E �B(�A0�A8�G��
8A0A(B BBBBu
8A0A(B BBBA,��A�I
D��E�E�D�<
Ht�MB�B�B �B(�A0�A8�D�c
8A0A(B BBBEc
8A0A(B BBBCG�K�c�F�`,dB�B�E �D(�C0��
(A BBBCi
(A BBBHx
(A BBBI4�aB�E�D �D(�D0G(A ABB�(H _�$H [�1E�L ^AX�B�B�B �A(�A0�G@^
0D(A BBBH�
0D(A BBBCtDL�L
HU�DL�L
HU�DL�L
HU�DL�L
HU�DL�L
HUDL�L
HU4DL�L
HUTDL�L
HUHt�F�B�A �A(�G0c
(D ABBCD(M ABB�H��B�B�E �B(�A0�A8�DP�
8A0A(B BBBF$ ^M�U
F`�H�MH A�N
AI8h�F�B�D �D(�F@]
(G ABBI�AAK8�PF�A�K �!
ABJD
AEA�*HX
E?Ha
GI
A8?Ha
GI
A(X�E�H�D �
DAA<��F�I�B �A(�A0��
(D BBBAH��B�E�B �E(�A0�C8�DP
8C0A(B BBBH4eH�J�I W
F�A�GYFAA��H)K�XE�PdXB�A�A �D0d
 DABE^
 DABCL
 GABJ(�KF�A�A �a
ABA�0E�R
A	,(	�A�A�G t
AAA@	OE�p
K,\	�F�D�A �a
DBN�		�	�H��
X�	%(�	aP�A�G {AAK��0
�F�K�F �D0�
 DABH(4
pE�J0R
AFDC`
RH0|
DI�
L�
YH�
}F�B�E �G(�A0�A8�G��
8D0A(B BBBDH�
�B�B�B �B(�D0�D8�Gp
8D0A(B BBBG`@�F�B�B �B(�A0�A8�G� I�!P
8A0A(B BBBHY�!U�!L�!A�!�;A�]
R\�&B�I�B �B(�A0�D8�G�A
8A0A(B BBBJa�d�	P�A�� LF�B�E �E(�D0�A8�G���M�P�A�h�M�O�B�o�J�Q�B��
8D0A(B BBBDD�M�R�A�X�M�T�C�`��F�B�B �B(�A0�K8�I�Z�Q�S�F�U�q
8A0A(B BBBK0$
�F�H�A �GP}
 DABA0X
�F�A�A �G`�
 DABAL�
F�B�B �D(�A0�q
(A FBBE�
(A IBBF4�
iF�E�I �K(�D0x(D ABBT�F�E�E �B(�A0�D8�GP_
8A0A(B BBBITXX`FXAP(l�E�A�N0P
DAGH�tF�B�B �E(�A0�A8�FP
8D0A(B BBBE�T��B�H�E �B(�D0�N8�DxF�RxAp�
8A0A(B BBBB\P�F�B�B �B(�A0�A8�G�P�L�F�F�f��
8A0A(B BBBGL��P�E�D �D(�D0�
(D ABBHP����H0����\)F�B�B �E(�K0�A8�L�l�L�F�F�S��
8A0A(B BBBEL`�B�B�B �B(�A0�A8�G�R
8A0A(B BBBC,�bB�I�J �G0A AAB4�E�A�G0�
DADN
DAE0E�G bA8GE�L0tA(X�E�A�D0
FAH�5H l�	� HO
AL��F�B�B �E(�D0�D8�D�Y
8D0A(B BBBG<�F�E�E �D(�D0�JPX0A(A BBB\3p�9(�^E�H�D FAA��H�	#/H$e�%��&��':�W�g���>*�������	�	�&	�@	�Y	�u	��	�������Q�	��+�N�d��1��a�1��@�#�?KY�kfK�S�P�S�5�`�
51�S@�h����E��� �'�D�_�Mm��d"� d�d"��"�p"a��"#+�"(9	 B#a4#~#$�4#�q#�@#1�q#�)�#�/	xH	pa	hz	`�	X�	H�	P�	@�)	d)A	 )DX		8q	d)�	�)�	p)D�		0�	�)	
*(
�)D:
	(S
*s
T*�
*D�
	 �
T*�
�*
`*D(	A�*f�*��*D�	��*�D++D4	MD+w�+�P+D�	��+�;,
�+�
H)
;,I
R,g
@,x
R,�
]-�
`,�]-&�-J`-^a�-~�-��- ��-�m.��-��m.�.;p.N�.i�/��.P��/�
0��/*�
0O0/0?JO0o�0�P0?��0��1��0��1*Q2F�1�UQ2A4�`2��A4��4P4e#�4N�4w�4)��4�H6��4X�H6��6�6B�6e�6��6��6��77�+�7P�7s�7O��7�{8�{8��8��8	�8 Z9>Z9b�9��9��9��9��:d*:���:'P;RP;~�;�P;R��;��;�;@Y<gY<��>��>��@��>�	�@/_DS_D�D�`D;��D��F�D&�F;LYL��P� L��	���P�~Q�P�~Q/wR
+�Q�JwRj�S��S�	T�	T��T�T;�U,�T�^�U�Z�	@�	0�	8�	�	�	�	��	�	�	�	�	(&	<	�M	�\Z�Z�Z��[� Z���[�^-�[�E�^g�_��_��d��_)��d��k��d�
�k*�kE�kbS�krm�l�m�Pm�- m0�Pm��m	�m,bn)+�m�Mbnt�n��n��n��n	 �n+ �nJ �pg �p� 3q� 3q� sq� sq!�qA!�qe!�q�!�q�!>w�!>w�!�y$%&'#�!"	"("7"D"O""" '"�-"a2"d8"�>"bC"mI"vO"�U"["�a"Rg"Hm"ps"_y"w"��"��"��"��"��"=�"-�"X�"��"��"��"h�"��"��"��"��"��"��"��"��"��"#�	#�#�#2#�!#M'#h-#�3#(9#�?#(E#�K#�Q#�W#P]#Pc#�i#xo#�u#�{#��#��#��#��#��#��#��#��#�# �#7�#>�#F�#P�#e�#u�#��#��#��#��#��#��#�$�$�$�$�$�#$)$/$5$);$7A$IG$WM$dT$�[$�b$�i$�p$�w$�~$�$
�$�$�$$�$'�$+�$0�$5�$K�$`�$x�$��$��$��$��$��$��$�%�
%%&%;%O%

 !"()*`%v%�%�%�%�%�%�%�%�%&
&&#&,&=&D&T&_&k&}&�&�&�&�&�&�&�&
''!'�>'M'Y'i'{'�'�'�'��'�'�'�'	((-(H(O(](l(|(�(�(�(�(�(�(�()
))))8)E)d)�)�)�)�)P6K�)�)�60�)�6,*,*�7�;*�8�L*`9%a*�9ar**�*�*�*�:p�*�;L�*<Y�*`<}+�FL+&+�@�=+K+U+e+s+�+�+�+�+�+�+�+�R�+�Si�+�,T�/,:,�UtS,^,s,�,�,�,�,�,�,�,�,Z--!-�^�4-H-U-d-u-�-�-�-�-�-PmG�-pn5.�n	.�n ..�n�>.M.�p�d.@q3x.�q�.�q9�.�q^�.�.�.�.�.//�&/;/V/f/s/@w��/�/.annobin_transcode.c.annobin_transcode.c_end.annobin_transcode.c.hot.annobin_transcode.c_end.hot.annobin_transcode.c.unlikely.annobin_transcode.c_end.unlikely.annobin_transcode.c.startup.annobin_transcode.c_end.startup.annobin_transcode.c.exit.annobin_transcode.c_end.exit.annobin_decorator_names.start.annobin_decorator_names.enddecorator_names.annobin_econv_memsize.start.annobin_econv_memsize.end.annobin_econv_result_to_symbol.start.annobin_econv_result_to_symbol.endeconv_result_to_symbolsym_after_outputsym_incomplete_inputsym_invalid_byte_sequencesym_undefined_conversionsym_destination_buffer_fullsym_source_buffer_emptysym_finished.annobin_get_transcoder_entry.start.annobin_get_transcoder_entry.endget_transcoder_entrytranscoder_table.annobin_make_transcoder_entry.start.annobin_make_transcoder_entry.endmake_transcoder_entry.annobin_transcode_search_path_i.start.annobin_transcode_search_path_i.endtranscode_search_path_i.annobin_rb_transcoding_close.start.annobin_rb_transcoding_close.endrb_transcoding_close.annobin_trans_open_i.start.annobin_trans_open_i.endtrans_open_i.annobin_rb_econv_alloc.start.annobin_rb_econv_alloc.endrb_econv_alloc.annobin_transcode_search_path.start.annobin_transcode_search_path.endtranscode_search_path.annobin_transcode_char_start.start.annobin_transcode_char_start.endtranscode_char_start.annobin_transcode_restartable0.start.annobin_transcode_restartable0.endtranscode_restartable0.annobin_transcode_restartable.start.annobin_transcode_restartable.endtranscode_restartable.annobin_rb_trans_conv.start.annobin_rb_trans_conv.endrb_trans_conv.annobin_econv_description.start.annobin_econv_description.endeconv_description.annobin_enc_arg.start.annobin_enc_arg.endenc_arg.annobin_aref_fallback.start.annobin_aref_fallback.endaref_fallbacksym_aref.annobin_method_fallback.start.annobin_method_fallback.endmethod_fallback.annobin_proc_fallback.start.annobin_proc_fallback.endproc_fallback.annobin_make_econv_exception.start.annobin_make_econv_exception.endmake_econv_exceptionrb_intern_id_cache.14296rb_intern_id_cache.14298rb_intern_id_cache.14300rb_intern_id_cache.14303rb_intern_id_cache.14305rb_intern_id_cache.14309rb_intern_id_cache.14307rb_intern_id_cache.14324.annobin_ecerr_incomplete_input.start.annobin_ecerr_incomplete_input.endecerr_incomplete_inputrb_intern_id_cache.14888.annobin_ecerr_readagain_bytes.start.annobin_ecerr_readagain_bytes.endecerr_readagain_bytesrb_intern_id_cache.14883.annobin_ecerr_error_bytes.start.annobin_ecerr_error_bytes.endecerr_error_bytesrb_intern_id_cache.14878.annobin_ecerr_error_char.start.annobin_ecerr_error_char.endecerr_error_charrb_intern_id_cache.14873.annobin_ecerr_destination_encoding.start.annobin_ecerr_destination_encoding.endecerr_destination_encodingrb_intern_id_cache.14868.annobin_ecerr_source_encoding.start.annobin_ecerr_source_encoding.endecerr_source_encodingrb_intern_id_cache.14858.annobin_ecerr_destination_encoding_name.start.annobin_ecerr_destination_encoding_name.endecerr_destination_encoding_namerb_intern_id_cache.14863.annobin_ecerr_source_encoding_name.start.annobin_ecerr_source_encoding_name.endecerr_source_encoding_namerb_intern_id_cache.14853.annobin_econv_inspect.start.annobin_econv_inspect.endeconv_inspecteconv_data_type.annobin_econv_s_allocate.start.annobin_econv_s_allocate.endeconv_s_allocate.annobin_load_transcoder_entry.isra.1.part.2.start.annobin_load_transcoder_entry.isra.1.part.2.endload_transcoder_entry.isra.1.part.2.annobin_asciicompat_encoding_i.start.annobin_asciicompat_encoding_i.endasciicompat_encoding_i.annobin_make_encoding.start.annobin_make_encoding.endmake_encoding.annobin_search_convpath_i.start.annobin_search_convpath_i.endsearch_convpath_i.annobin_check_econv.part.8.start.annobin_check_econv.part.8.endcheck_econv.part.8.annobin_econv_equal.start.annobin_econv_equal.endeconv_equal.annobin_econv_last_error.start.annobin_econv_last_error.endeconv_last_error.annobin_econv_destination_encoding.start.annobin_econv_destination_encoding.endeconv_destination_encoding.annobin_econv_source_encoding.start.annobin_econv_source_encoding.endeconv_source_encoding.annobin_econv_primitive_errinfo.start.annobin_econv_primitive_errinfo.endeconv_primitive_errinfo.annobin_econv_convpath.start.annobin_econv_convpath.endeconv_convpath.annobin_rb_econv_add_transcoder_at.start.annobin_rb_econv_add_transcoder_at.endrb_econv_add_transcoder_at.annobin_rb_econv_add_converter.start.annobin_rb_econv_add_converter.endrb_econv_add_converter.annobin_rb_econv_init_by_convpath_i.start.annobin_rb_econv_init_by_convpath_i.endrb_econv_init_by_convpath_i.annobin_encoded_dup.start.annobin_encoded_dup.endencoded_dup.annobin_rb_register_transcoder.start.annobin_rb_register_transcoder.end.annobin_rb_declare_transcoder.start.annobin_rb_declare_transcoder.end.annobin_rb_econv_encoding_to_insert_output.start.annobin_rb_econv_encoding_to_insert_output.end.annobin_make_replacement.part.9.start.annobin_make_replacement.part.9.endmake_replacement.part.9.annobin_econv_get_replacement.start.annobin_econv_get_replacement.endeconv_get_replacement.annobin_rb_econv_close.start.annobin_rb_econv_close.end.annobin_econv_free.start.annobin_econv_free.endeconv_free.annobin_rb_econv_memsize.start.annobin_rb_econv_memsize.end.annobin_rb_econv_putbackable.start.annobin_rb_econv_putbackable.end.annobin_rb_econv_putback.start.annobin_rb_econv_putback.end.annobin_econv_putback.start.annobin_econv_putback.end.annobin_rb_econv_asciicompat_encoding.start.annobin_rb_econv_asciicompat_encoding.end.annobin_econv_s_asciicompat_encoding.start.annobin_econv_s_asciicompat_encoding.endeconv_s_asciicompat_encoding.annobin_rb_econv_decorate_at_first.start.annobin_rb_econv_decorate_at_first.end.annobin_rb_econv_decorate_at_last.start.annobin_rb_econv_decorate_at_last.end.annobin_rb_econv_open.start.annobin_rb_econv_open.end.annobin_allocate_converted_string.start.annobin_allocate_converted_string.endallocate_converted_string.annobin_rb_econv_insert_output.start.annobin_rb_econv_insert_output.end.annobin_output_replacement_character.start.annobin_output_replacement_character.endoutput_replacement_character.annobin_output_hex_charref.start.annobin_output_hex_charref.endoutput_hex_charref.annobin_rb_econv_convert.start.annobin_rb_econv_convert.end.annobin_econv_primitive_convert.start.annobin_econv_primitive_convert.endeconv_primitive_convertsym_partial_input.annobin_econv_finish.start.annobin_econv_finish.endeconv_finish.annobin_econv_convert.start.annobin_econv_convert.end.annobin_rb_econv_binmode.start.annobin_rb_econv_binmode.end.annobin_rb_econv_open_exc.start.annobin_rb_econv_open_exc.end.annobin_rb_econv_set_replacement.start.annobin_rb_econv_set_replacement.end.annobin_econv_set_replacement.start.annobin_econv_set_replacement.end.annobin_rb_econv_prepare_options.start.annobin_rb_econv_prepare_options.endsym_invalidsym_replacesym_undefsym_xmlsym_textsym_attrsym_newlinesym_universalsym_crlfsym_crsym_lfsym_fallbacksym_universal_newlinesym_crlf_newlinesym_cr_newline.annobin_rb_econv_prepare_opts.start.annobin_rb_econv_prepare_opts.end.annobin_econv_args.start.annobin_econv_args.endeconv_args.annobin_econv_s_search_convpath.start.annobin_econv_s_search_convpath.endeconv_s_search_convpath.annobin_rb_econv_open_opts.start.annobin_rb_econv_open_opts.end.annobin_econv_init.start.annobin_econv_init.endeconv_init.annobin_str_transcode0.start.annobin_str_transcode0.endstr_transcode0.annobin_str_transcode.start.annobin_str_transcode.endstr_transcode.annobin_str_encode_bang.start.annobin_str_encode_bang.endstr_encode_bang.annobin_str_encode.start.annobin_str_encode.end.annobin_rb_str_encode.start.annobin_rb_str_encode.end.annobin_econv_insert_output.start.annobin_econv_insert_output.end.annobin_rb_econv_has_convpath_p.start.annobin_rb_econv_has_convpath_p.end.annobin_rb_econv_make_exception.start.annobin_rb_econv_make_exception.end.annobin_rb_econv_check_error.start.annobin_rb_econv_check_error.end.annobin_rb_econv_append.start.annobin_rb_econv_append.end.annobin_rb_econv_substr_append.start.annobin_rb_econv_substr_append.end.annobin_rb_econv_str_append.start.annobin_rb_econv_str_append.end.annobin_rb_econv_substr_convert.start.annobin_rb_econv_substr_convert.end.annobin_rb_econv_str_convert.start.annobin_rb_econv_str_convert.end.annobin_InitVM_transcode.start.annobin_InitVM_transcode.end.annobin_Init_transcode.start.annobin_Init_transcode.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC14.LC8.LC10.LC13.LC9.LC11.LC12.LC16.LC22.LC21.LC25.LC28.LC29.LC27.LC30.LC17.LC18.LC20.LC19.LC15.LC24.LC23.LC26.LC32.LC33.LC31.LC34.LC35.LC36.LC37.LC39.LC38.LC40.LC41.LC42.LC43.LC46.LC44.LC45.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC57.LC59.LC56.LC58.LC55.LC54.LC60.LC61.LC62.LC66.LC64.LC65.LC63.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC74.LC75.LC76.LC77.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.LC120.LC121.LC122.LC123.LC124.LC125.LC126.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_st_lookupst_init_strcasetablest_add_directruby_xmallocruby_xfreeruby_xmalloc2st_locale_insensitive_strcasecmpst_foreachst_free_tablememcpymemmoverb_eRuntimeErrorrb_raise__stack_chk_failrb_bugrb_str_cat_cstrrb_str_catrb_str_catfrb_str_new_staticrb_to_encoding_indexrb_enc_from_indexrb_string_value_cstrrb_funcallv_publicrb_method_callrb_ary_new_from_valuesrb_proc_callrb_str_newrb_str_dumprb_sprintfrb_eInvalidByteSequenceErrorrb_exc_new_strrb_ivar_setrb_str_new_cstrrb_enc_find_indexrb_enc_from_encodingrb_intern2strcmprb_eUndefinedConversionErrorrb_enc_associate_indexrb_utf8_encodingrb_enc_precise_mbclenrb_attr_getrb_obj_classnamerb_check_typeddatarb_data_typed_object_allocstrlenrb_safe_levelrb_str_set_lenrb_require_saferb_freeze_singleton_classrb_enc_findrb_define_dummy_encodingrb_ary_storerb_assoc_newrb_ary_newrb_eTypeErrorrb_typeddata_is_kind_ofmemcmprb_ary_new_caparb_ary_pushruby_xrealloc2rb_obj_classrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_str_duprb_enc_dummy_prb_str_coderange_scan_restartablerb_register_transcoderrb_eArgErrorrb_declare_transcoderrb_econv_encoding_to_insert_outputrb_enc_str_newrb_econv_closerb_econv_memsizerb_econv_putbackablerb_econv_putbackrb_scan_argsrb_num2intrb_enc_associaterb_fix2intrb_econv_asciicompat_encodingrb_econv_decorate_at_firstrb_econv_decorate_at_lastrb_econv_openrb_econv_convertruby_xreallocrb_econv_insert_outputruby_snprintfrb_to_intrb_string_valuerb_str_modifyrb_str_capacityrb_str_drop_bytesrb_num2longrb_hash_arefrb_str_resizerb_error_arityrb_exc_raiserb_econv_binmoderb_econv_open_excrb_eConverterNotFoundErrorrb_econv_set_replacementrb_enc_getrb_econv_prepare_optionsrb_sym2strrb_enc_str_coderangerb_str_new_frozenrb_hash_newrb_hash_asetrb_check_hash_typerb_hash_freezerb_obj_is_procrb_obj_is_methodrb_respond_torb_econv_prepare_optsrb_to_encodingrb_out_of_intrb_econv_open_optsrb_check_array_typerb_ary_entryrb_str_tmp_newrb_enc_get_indexrb_enc_default_internalrb_obj_encodingrb_enc_str_scrubrb_str_shared_replacerb_error_frozen_objectrb_str_encoderb_econv_has_convpath_prb_econv_make_exceptionrb_econv_check_errorrb_econv_appendrb_str_buf_newrb_econv_substr_appendrb_econv_str_appendrb_econv_substr_convertrb_econv_str_convertInitVM_transcoderb_cEncodingrb_eEncodingErrorrb_define_class_underrb_cStringrb_define_methodrb_cDatarb_cEncodingConverterrb_define_alloc_funcrb_define_singleton_methodrb_define_constInit_newlineInit_transcoderb_internrb_id2symDB��������^C��������wD���������E���������F���������G����������������#�3�C�S�c�s����|��������������������|#���������:���������Y���������`|p�������������������������������������������������$���������������������������������������9���������f�����������������������������������������������������������|�������������������!���������2���������l��������������������������������������������������������������������	���������o
���������&�9
���������X���������������������i�����������7����������������������������*���������H���������������������������/�������������������0����������I������������������F ���������W J��������_ ���������f K��������� ���������� L��������� ���������!M��������!!���������=!���������T!���������c!D��������h!����������!����������!G���������!����������!N���������!����������!E���������!����������!N���������!����������!F���������!����������!N��������"���������"O��������%"���������,"N��������@"���������G"P��������T"���������["N���������"����������"����������"����������"�"���������+#���������\#���������g#����������#����������#���������$���������$���������)$���������4$���������A$Q��������K$���������U$���������Z$���������a$tx$���������$l�$����������$d�$����������$����������$\�$����������$���������%T%���������%%���������5%���������D%���������L%���������S%Dj%����������%����������%����������%L�%����������%R���������%����������%T�%S���������%����������%\&���������+&T��������E&���������`&���������w&����������&����������&U���������&����������&V���������&���������'���������'W��������'���������''��������/'���������>'���������L'��������S'<h'X��������m'���������w'<�'����������'Y���������'����������'Z���������'����������'t�'[���������'����������'d(\��������
(���������(l1(���������8(]��������E(���������`(^��������e(���������o(D�(_���������(����������(L�(���������(��������)`��������	)���������')4H)[��������M)���������[)4w),�)\���������)����������),�)$�)Z���������)����������)$*8*X��������=*���������K*g*�*^���������*����������*�*�*_���������*����������*+(+R��������-+���������;+W+��������x+S��������}+����������+���������+���������+<���������+���������+a���������+���������,b��������,���������*,c��������G,<��������~,���������,����������,	���������,����������,
���������,��������W-���������-
���������-��������.���������1.���������D.���������O.��������^.��������u.d���������.*���������.����������.<���������.���������.<���������.���������.���������/���������3/���������Z/���������/<���������/��������0<�������� 0��������[0<��������`0���������0<���������0���������0���������0���������0���������0���������1��������1���������$1��������<1���������L1��������f1���������v1���������1<���������1���������1���������1����������1��������2���������'2���������22���������2����������2����������2����������3���������4���������4���������04��������5��������/5��������65���������w5���������5���������5���������5���������5���������5����������5��������%6���������6*���������6e���������6����������6*���������6f���������6����������6K��������
7!��������7K��������"7g��������O7
��������V7T��������^7���������e7h��������l7T���������7i���������7g���������7<���������7���������7
��������98���������M8���������W8���������u8����������9���������:<��������:��������9:j��������@:'��������V:(��������`:%��������o:����������:&���������:)���������:*���������:%���������:|�:���������4;���������w;+���������;����������;K���������;K��������8<K��������P<K���������<K���������<���������4=-��������A=#��������d=���������o=���������>���������D>���������S>����������>#���������>����������>���������?.��������N?/��������o?0���������?/���������?����������?����������?����������?#��������#@.��������7@���������s@/���������@#��������A!��������ZA����������A����������A���������GB���������C���������wC����������C0��������D���������[D���������yD1���������Dk���������D���������El��������nE2���������Eh���������E1���������E���������F���������XFk���������F����������G����������G���������tH����������K����������K���������3L<��������BL��������rLm���������L'���������L3���������L(��������M4��������M4��������!M5���������M6���������M/��������N
��������QN7���������N*���������Nn���������N����������N*���������N8���������N8��������O�O9��������%O�9O9���������O:���������O*���������Oo���������O����������O)��������]P*��������dPp��������nP���������uP*��������|Pq���������P����������P*���������Pr���������P����������P;���������P<���������P���������P���������.Q�7Q�@Q�IQ�gQ<��������sQs��������zQ����������Q<���������Q���������Q4���������Q����������Q��������R�R�R�!R�*R�HR<��������TRs��������[R���������bR*��������iRt��������sR����������RG���������RF���������RK��������`S����������SE���������Su���������S����������Sv���������S����������S?��������/T!��������BT���������NT���������_T����������T����������T<��������U��������U4��������&UA��������GU@��������pU��������wUw��������~U����������U<�U9���������U,�U4�U9���������U,V9��������V"V9��������/V>ViV*��������pVx��������zV����������V��V9���������V��V��V��V��V*��������Wy��������W���������<WC��������CWz��������MW*��������WW���������jW,rW9���������W4���������WD���������WE���������WF���������W,�WG���������W$�W9���������WH��������X$XG��������XI��������3X$;X9��������sX�~X9���������X��X9���������X��X9��������YC��������#Y{��������-Y*��������7Y���������EYJ��������WYK��������gYpYL���������YF���������Y*���������Y|���������Y����������Y*���������Y}���������Y����������Y����������YA���������Y����������Y~���������Y*��������Z���������>Z��������UZ'��������wZ3���������Z(���������Z����������Z����������Z����������Z���������![*��������4[4��������H[���������i[����������[4���������[M���������[;���������\���������\���������
]��������h]N���������]N���������]��������H^>��������d^<��������w^>��������^<���������^O���������^,�^9���������^.��������_A��������2_@��������n_#��������w_���������~_����������_<���������_��������"`P���������`Q��������WaR��������daQ���������aR���������aR��������8cK��������Bc���������^c��������ec���������yc���������c����������cK���������c����������c���������d*��������d���������d<��������d*��������%d���������/d���������;d���������Bd���������vd>���������d<���������d*���������d����������d����������dO���������e���������fS��������KfP���������f/���������f
��������g"��������Gg#��������Og<��������\gT��������cg����������g����������gK��������h:��������Nh4��������[hA���������h1���������h*���������h����������h����������h#��������i
��������1iU���������i$�i9���������iJ��������jK��������6j��������}jV���������j���������j���������jD���������j,k9��������kW��������8k*9��������Nk;��������Zk���������dk*��������nk���������~k>���������k<���������k����������k'���������kM��������dlX��������vl��������}l����������l����������l���������l���������l��������mY���������m<���������m���������m4���������m!���������m
���������m����������mZ��������n1��������Hn*��������On���������Yn����������n<��������co6���������o:���������o
���������o6���������o/��������
p
��������p]��������lp_���������p)���������p*���������p����������p����������pE��������q^���������q����������q*e���������q*f��������rg��������r���������r��������!rg��������/r���������6r���������;rg��������Br*h��������Ur���������\r?��������eri��������|r����������ri���������r*j���������r����������rg���������rk���������rl���������rk���������r����������rm���������rk���������r����������rm���������rk��������s���������
si��������sk��������$s���������)si��������0sk��������@s���������Esi��������Lsk��������\s_��������asi��������hsk��������xs^��������}si���������sk���������s����������si���������sk���������s����������si���������sk���������s����������si���������sk���������s����������si���������sk��������
t���������ti��������tk��������,t���������1ti��������8tk��������Ht���������Mti��������Ttk��������dt���������iti��������ptk���������t����������ti���������tk���������t����������ti���������tk���������t����������tn���������tk���������t����������tn���������tk���������t����������tn���������tk��������u���������un��������uk��������u���������un��������&uk��������2u���������7un��������>uk��������Ju���������Oun��������Vuk��������bu���������gun��������nuk��������zu���������un���������uk���������u����������un���������uk���������u����������un���������uk���������u����������un���������uk���������u����������un���������u���������uS���������ui��������v��������vR��������vi��������v��������.v_��������3vi��������:v��������Jv^��������Ovi��������Vv��������fvX��������kvi��������rv����������vS���������vi���������v����������vR���������vi���������v����������v_���������vi���������v����������v^���������vi���������v����������vZ���������vi���������v���������w\��������wi��������w���������*w���������/wi��������Iw���������Pw���������Ww|\wq��������dwr��������kw���������rw<wwq��������wr���������w����������w4�wq���������wr���������w����������w,�wq���������wr���������w����������w$�wq���������wr���������w����������w�wq���������wr���������w����������w�wq��������xr��������
x���������xxq��������!xr��������(x���������/x4xq��������<xr��������Cx���������Jx�Oxq��������Wxr��������^x���������ex�jxq��������rxr��������yx����������x��xq���������xr���������x����������x��xq���������xr���������x����������x��xq���������xr���������x[���������x��xq���������xr���������xG���������x��xq���������xr��������yE��������y�yq��������yr��������yF��������"y�'yq��������/yr��������6y���������=y�Byq��������Jyr��������Qy���������Xy�]yq��������eyr��������ly���������sy�xyq���������yr���������y����������y��yq���������yr���������y����������y��yq���������yr���������y����������y��yq���������yr���������y���������������������9)��������`)���������)���������)���������)��������*��������)*��������P*��������y*���������*���������*���������*��������+��������@+��������i+���������+��������7,���������N,���������-��������� .��������:0���������z0����������7"��������c8����������8#��������T���������ZB��������a_.��������_q`��������oq`���������q`���������q`���������q`��������:wo�������� A���$,�P�X���������������D�L�p�x��������1�1018�d1l����K���K�K�S$K,SPSX5�S�5�5���5���D�Lpx����������0�8d"d�ld"�d"��"�d"��"��"�#$�",#P#X4#�#�4#�4#�q#�4#�q#	q#	)D	q#L	)p	)x	d)�	)�	d)�	d)�	�)
d)
�)0
�)8
*d
�)l
*�
*�
T*�
*�
T*�
T*�
�*$T*,�*P�*X�*��*��*��*�D+��*�D+D+�+DD+L�+p�+x;,��+�;,�;,�R,
;,
R,0
R,8
]-d
R,l
]-�
]-�
�-�
]-�
�-�
�-�
�-$�-,�-P�-Xm.��-�m.�m.��.�m.��.�.�/D�.L�/p�/x
0��/�
0�
0�O0
0O00O08�0dO0l�0��0��1��0��1��1�Q2$�1,Q2PQ2XA4�Q2�A4�A4��4�A4��4�4�4D�4L�4p�4xH6��4�H6�H6��6H6�60�68�6d�6l�6��6��6��6��6��6��7$�6,�7P�7X�7��7��7��7�{8��7�{8{8�8D{8L�8p�8xZ9��8�Z9�Z9��9Z9�90�98�9d�9l�9��9��:��9��:��:�P;$�:,P;PP;X�;�P;��;��;��;��;��;�;Y<D�;LY<pY<x�>�Y<��>��>��@�>�@0�@8_Dd�@l_D�_D��D�_D��D��D��F$�D,�FP�FXL��F�L�L��P�L��P�P~QD�PL~Qp~QxwR�~Q�wR�wR��SwR�S0�S8	Td�Sl	T�	T��T�	T��T��T��U$�T,�UP�UXZ��U�Z�Z�Z�Z�ZZ�[DZL�[p�[x�^��[��^��^��_�^�_0�_8�dd�_l�d��d��k��d��k��k��k$ �k, �kP �kX m� �k� m� m� Pm� m� Pm!Pm!�mD!PmL!�mp!�mx!bn�!�m�!bn�!bn�!�n"bn"�n0"�n8"�nd"�nl"�n�"�n�"�n�"�n�"�n�"�n�"�p$#�n,#�pP#�pX#3q�#�p�#3q�#3q�#sq�#3q�#sq$sq$�qD$sqL$�qp$�qx$�q�$�q�$�q�$�q�$>w%�q%>w0%>w8%�yd%>wl%�y = > ? @@Th|�4HP �$�	(�
,�0
4�8D<�@�DXH<LPP�T�X
\``dh�l�	p�t�	x\
|����h��@�d��
�����{�7��������(�������8�E�k�O�H���K��
�X�Q�U�Y�haeix��8� 4�H\����@<�pP�`�@ �� ��0 �p"��"�#�@#�#x )�p)��)�*�`*�*8+XP+x�+�@,�`,$`-L�-l�-�p.��.�/0<P0\�0��1�`2P4L�4h�4�P6��6	�6	7D	�7`	�7�	�8�	�8�	`9�	�9
:8
�:d
P;�
�;�
<�
`<�
�>D�@�`D��D$�F� L(
�P\
�Q�
�R�
�STp�T��U�Z� ZT�[��^�_d�d��k�l m<Pm\�m�pn��n��n��n �p`@qt�q��q��q�@w.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.rodata.rodata.str1.8.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@,�T,�l,��,��,�'��y"@X/@\,-�z3�zH=�zt%8@���#,
S�b��]@h�0,
|�����@��0,�ģ�ģ��@ȯ0,��������@��0,2l��@�@(�`,'2P�;��H 6@��H,N0ȱ.������|��S��'��W��e��x����������� ����@ж�,*���:-�	���/���util.o/         1690381920  1000  135   100644  40864     `
ELF>��@@0/

#%"&!' (1�����u������u�������u�������u������x��� ��@D��ff.��1���t��uP��tU����f��u�����u������u������u������u����u� Ð��D�����ff.�f�H��HcGL�WM��E�A�M�Y�D������� ��)‰��
����M9�sdA�Q���tb��D�lj�A��)����A��I�A�D	�����?H�� I9�s
A�A����	�H�����H!�H	�H�<$�$H����1҅�uj��D�ǁ��?H�� H	�H�<$�$H�����D��1�)�����?H�� M9�sA�Q���HA��A	�L	�H�<$�$H���D�lj�1�����?H�� �S�����ND�WA9���AWL�F1�AVAUATU�i�Lc�SH�_I��O�$0I�A�$E�D�HD��A��D$�E9���A��M��I��E1�1��I��A�S�E�
I��I��L�I�Չ�H�I�� I)�L��E�J�H�� H�у�M9�s�E�E���	I�V�H9�s$E�V�E��t�DD�
E��uH����H9�r�o�NA��A9���Hc�H��H�L��f�H9�sH��H���291t�rp��H�މD$�1��I��A�H��H��H�H)�H�ЉV�H�� ��M9�s�Hc�H���2��u*H�B�H9�v�J���t����uH����H9�r�o�D$�[]A\A]A^A_�@�w����D$�[]A\A]A^A_�1��DD�W�NA9��&�����fDU��SH����~;�����C�H�H�<�'H����h�XH�@H��[]��H�Hc�H��H��tH�0H�@H�4�H��[]�����H���C�H�H��'H�H��H)�H��H��H��H��H�H�� �M���H��H�H�
�Y���ff.�f�AUHc�1�ATUHc�SH��H��D�g��D�H��H�H�ʼnD�H��H�� A9��H��tD9c~&Icĉl�A�D$�CH��H��[]A\A]�f��C�x���H�sH�xI��HcCH���HcC��&H�H��H��Ic�H�L��l�A�D$�C�H��L����t���f.�UH���SH��H��(�D$�$����D$I��fH~�fH~�f~D$H�� ������։ρ���EωL$��tyH�|$�W�����uC�T$A�Q�T$E1���A�QA��A��E�A��tm������U�5)�L�ȉH��([]Ð�T$� )�����L$	�A�I����T$�DH�|$�����T$A�A�A�� A�Q��u�-2�EA�@�H�A�|��I���A��A)�L��D�H��([]�DAWI��AVAUATI��USH��LcoLcvE9�|D��I��Mc�I��Lc�C�.1�A9\$@��A|$����Hc�L�XI�,�L��I9�s@�H��H9�w�I�I��N�,�K�4�L9�r�^f.�I��I9�vKH��D�W�E��t�L��M��E1ɐI��A�P�D�1H��I��L�L�I�щQ�I�� L9�w�D�	I��I9�w���~�u�H�U���t�H���
��u��u�XH��[]A\A]A^A_��AU��I��ATUS��H��������M��tbH�-H����M��L�-�f��t@H�EH��tKH���t�H��L�����M��tKIcT$��qI�L��M�d�I�$I��u�H��L��[]A\A]�fDH��H���=���H�EH��I�����H�H��4�1�����I���D���f.�L��H�D$�H�D$I���F���fD����H��H�qH�EH�-H�E�����AVI��AUI��ATUH�nSHcFH�_D�gA)���H��H�H��
@H9��H��H���89:t���A�}�_���IcU1�D�`H�pI��L��IcVH�|��
�L��H���S�H��L�VH)ʋM�H)�H��A��A�R�H�� ��H9�w�I9�v;L��H��@H���V�H��H)�H��A�ӉW�H�� ��I9�w�I�q�H)�H��L�E��uf�H���A����t�D�@[]A\A]A^�DA��,���H��H��A�H��L��M��I�������1��i���H�@[]A\A]A^��AVA��AUA��A��ATUH��SH��D�e�E�E�A�\$9�~
����9������H�xE��~&A�v�H��H�L�DH���B�H9�u�H�|�HcUH�uL��A��tqA� E1�E)�D�D��H��H����D��D	‰W�D�F�A��I9�w�E��D�DE�HcUD�`��5H�
H�4�H�,�H�uH��[]A\A]A^�D�I9�vȥI9�w��f�H��H�D$�H�D$H��[]A\A]A^Ð��H��tX��A�<wLL�7I��1�@��0L��I��Hc�L	�M9�tA�D�I�A��v�I)�Ic�H�2�fDHc�H�2�1�1�H�2�f���AWAVAUI��ATUSH��H�T$H��tv�7I��N�$/I��1�H�-@��u%�]@H)�H��I����H	�M9�t:A�7@��t
H���H��u�L��L)�Lc�H�D$L�(H��H��[]A\A]A^A_ÐMc���1���E1���f���A�H���|AULc�E1�L�-ATA��UH��S��H��H�]�C�A�DA�����t/A9�~*L��I��pHM��I��L�I��sA�H��x�H��u�H)�[L��H�)]A\A]��E1�H�L���A��f���AVAUATUSH������A�Ճ�$��D�7H��I��H��D��E��u��H��D�3D��E����@�����u�A��+���SH�CA���0uzH�hH��A������fDD��H�L$L�D$H��H������H�T$H�H��HE�M��tI�,$�T$����H��H��A���HD�H��[]A\A]A^�DH��E��
DD�����H��1�[]A\A]A^�fD�P��߀�XuSH�XA��M���DA��-uTH�C�SA������������"H��H�����[]A\A]A^�E��uA����A�����E1�H��������UH��SH���H�XH���H��H��H���H��[]�ff.�f���U1�1�SH���H��t H��H���H��H���H��H��[]�H�=�ff.����AWAVAUATUSH��I��H��H�t$�H�
H�D$0�A�E<-�4��Hc�H�>���A�E�D$������I��1�<0���M��ƒ�/�A��9�'E1�E1�E1��-@C��D�tP�I��A�A���Ѓ�/���9��A��~�A���C��D�LP�����D$f�H�D$H��tH��D$��tfWH�Ĉ[]A\A]A^A_�DA�E�D$���(���f�H�D$H��t�H���I��A�E<-������D$1�<0�����A�E�ƒ�߀�X�0A�m@��t�@��H�=�H��t�I��@��0�ff�L�%�������$M���D$ �!fDA��L����T$H���4L)�f��I��E�}�����H*��Y��Y�X$�$�T$E��u��$��L������D�D$,E��1���߃�Eu;D��	�	������A�o@��+��@��-��I�W1ۍMЃ�	��L��1�E������+D$,f�E�҉D$(D��EDԺ�H*�A��AN�f�$A��	~&�B�H�
f��H��Y�D���H*��X��$A��d�\$(����:�|$(��%D)�;D$(|9�H��$L��D)�H��Y‹D$(A�D�H��Y��z���fD�D$(D�)ЉD$������tH�H��<$�Y<��<$�d$�D$�W=4���D$�������$1�1�H�
@�t
Hc��Y������u�fH~�@��HD$Hc���H�$H�$H�؉�H�� -PH�� H	�H�$�Y$fH~�f�$H�� ��%�=�|�=�|�`H���������D$H�$�<$�|$ ��H���*��0t�Mσ���
�z��0H�JD�_�A��	w:D�D�H��B�lG��9D�G�A��	v�H��H)�H������N�����CL����I�����@�$�\$ A�L$�9��81�������)ƒ�~�f����9��D�T$8��D�T$8H��D�p�@A��	�h
M�u	A�B�L�t$8M�l
H�D$@H��D��I��A�V��
H�ǃ�0�G�M9�u�A��H�|$@H��H�D$8L�l8E9�}9E�D$�H��E)�O�t�I��A�U��
H�ǃ�0��M9�u�H��D�d$,�|$(1�L�|$`A)�DI�IljD$8H�CH�D$HH�D$tH�D$XH�D$pD�d$,H�D$P�{���H�t$HH�xI��HcCH���H�t$XH�|$P�D$ �S��H����D�l$pI��H�I�GE����D$,E�t�D$8�L$tD+l$B�t)�A��3�����|	A�6A)�D$C�.A�D9�D��N�D9�AOƅ�~)�A)�A)Ƌt$,���I��~
H�����H��D�T$(E��~�t$8L�����I��E��~L��D���w�I��E��~L��D���d�I��H��L�����IcW�xD�PI���@9���H��H�pH�I�L�f�H9��H��H���9t��yM��L�|$`E���jH�������H�T$ �UH�$H�� A�Ё������8E�ME��u	���&L��D�D$ ��IcVD�D$ �HI��)х���H��H�pH�I�L�
@H9���H��H���9t����|$���t
D�������_
��p��H�$��M��L�|$`E���_
H�$H�‰�H�� �с������D�D$�����E��t!�с�����w��A�kA)�D����9���
�����H��H�� H�$��T$��t8H�P9�$H�D$�~D$�Y�fH~�f�$H��uH�D$0�"H��t HcU����H�
H�4�H�,�H�uM��t!IcT$���XH�
H�4�L�$�I�4$IcV���+H�
H�4�L�4�I�6HcS����
H�
H�4�H��H�3IcU���H�
H�4�L�,�I�u�$L�����f������H�t$xL��D�T$@���H�t$|L��f(�fI~���D�L$x�t$|A�UA+WfH~�D���D�T$@)�х��UfH~��D��H�� �H�� H	�H�D$@�~L$@�^��f/���E�����
H��?H�4$H�� ���������t$��tT���wL�f/�r&�,��
����f(�E����fH~�H�։�H�� ���)�H�� H	��d$ H�$�$fH~�H�� �����@H�� H�$�$�Y��X�fH~�f�$H�� H���9�u�L$����H��t HcU����H�
H�4�H�,�H�uM��t!IcT$����H�
H�4�L�$�I�4$IcW����H�
H�4�L�<�I�7IcU����H�
H�4�L�,�I�u�,$�l$ ���L���L$@��H��H��I����H��L$@��Hcu����H�=L��H�,�L�MH���h���f��D$8D�t$,D)����E1�E1�E1�fD��.����A�D�L$�4$��4$D�L$���fI�OA�WE�����D$,D��1�D�B�A��	��D�P�D$,I�σ�<�P��0A���DDЉ�A���B�L��G�4���E�9�����~�����G��E���f.��Y
f(�E��ufWfH~��,���DA�EI��<0t��j���f�D)Ή�)�fH~��H�� �H�� H	�H�|$@�~D$@���@��PH���4$H�$H�� �$H	�H�4$H�� �$�������H�� H�$�$�Y��X�fH~�f�$H�� �ց�������|��H��������H9T$ ��H�$����fD	����L��f��8�@H�������H�T$ H��� H����H���
����L����<���L���������P�<$H��H�� H	�H�<$�m���@H�������I�WA�o�F�D�w�<$�|$ ���f��,�f��*��\�E�����f/�wf/
����M��L�|$`����fDH�������L����-���I��
A�	����f��f/����Y
f(�fW���DI��E�}A��0t�A��H�=�H���r�f��������$�T$A��.�+E�uE�����E��H�=�D$ D����D$ H�����I�����T$��L�%D���D$ ��E���A��L���T$��T$H����L)�f��E�uI�����H*��Y��Y�X$f.T$ �$z�u��D$ M��L�%�D$�	E�wI��A��L��M���H��u��D$A���A��P���A�U�,)׉�����1�)ȃ�� I����BЃ�	���A��1�D���
D��	w<��I���DB�A�UA��rЁ�/~܃�	w�I��A�U��0��	v�����4�fW�"�����f���H*�����L��1�I���u�H�������H�$�@����f/��\����E����|$(��
�D�d$,H��$L��A)�Ic��^��]���0�I�ϹD)�DB�9I��A���0t�Jσ���M��1�A��^����D$,)��D)�ƒ�tHc�H�
�<$�^<��<$���D$��D$�����ƒ��[����$�|$1�1�H�5�@��t
Hc��Y��u��fH~�HD$H�$����H�$�k�T$H�� �����)��~���
��4�'�7H��4H�$�$f�f.��\$ �G��A�H�D$0�"������E����\$ fH~�H�� �����@H��H�� H�$�<$�X��<$����@1�����L��f���H��H�D$h�H�D$h�L$@H����E���D$,1��7�H�D$0L���"H��H�$�$�S�A���A��P������@E1�E1�E1�1��D$,E1�����
����E��I��A���w�H�������L������L�����H����{�L��L����$���D$ ����L��I���]�HcT$(H��$L���Y���B�T��z����E1҃�C��E�S�D$,I�OA�WD���y���E1��D$,���N�<�A�UI��������P�$�D$H�� H	�H�$�<$�|$ �&�D�¹������������H�� H	�H�$��H�������H�T$ ��H�$H�� I���0��D$�i���A��0�Z���I��E�u��A��0t�E�����E���6���D�\$�jE������������w��D$ E�u����Bσ�����0A��u~I��I��1�1�A��������O��D$ �E��$�:��|$ fH~�H�� �����@H��H�� H�$�\<$f.=f�<$����`����I��I�͸�C��E1�E�4S�%���H�D$0M��L�|$`�"H��H�$���E1�I��1��D$,���M��L�|$`���H�$�����H�������!�H!�H	�H�$����� ����!�H�� H�$����@��AWfH~�f(�AVH�� AUATUS��H��x�|$�t$ H�T$(L�D$0f�D$������f(�%�=��-f�f.���H�|$lf(�H�t$h�L$�$�W�����$�L$��I����fH~�fH~Ћt$h�D$XH�� ������H���?H�� H	�f��H�$�$f��*��Y
�\�Y�X�X�f/��D,���	�V�)�A��A����Ic�L��A�f/���A���D$L�D$8E����E���6D�d$E��$�D$��	�����~	��1�D$�|$���~�D$�D$H���|���h�D$ D$��D$\�����D$@O�����Hc����ef��e���H�D$(��0��f�H�\$0I��H��tH�@H�H��xL��[]A\A]A^A_�����fH~��H�؉�H�� H	‰�%�H�T$�T$=�����H�D$(fH~��'H�������H����	��nH�I���I�D�
H��H�����u�H�\$0H���E����C���@�D$L�D$8E���X���D�oA)�D�l$8E1�E���I����zf��|$�D$H���D$ ���V�D$\�x���D$@Hc����T$P�I��@ ��G�D$�T$P����
�É�H��������������f(��^1�L���tf�@��tHc׃��AY҃��u��^�D�\$LE��t�
f/��lf��D�L$@�*��Y��X
fH~�fH~�H�� ����@H�� H	�E���H�t$�|$@H�D$�G�f��I�oH�L��\$�A$��,�D�D$H�*ȃ�0�\�E���:�
A��^��\�f/�wx�-f(��\�f/��`
�����G��%I�|�f(��\�f/��3
H9����Y�f��H���Y��,��*؃�0�E��\�f/�v��F�D$���D$��T$ �I�NjD$l��x�|$�T$ �S������D$ ��\$\�\$@�T$X3��u	�6+D$h�\$8�A�É\$X�u���D$HH��H�H�C�t$8��~E��~D9��AO�)D$X)�A)ʼnt$8�4$��~R�D$H����	H���.��L��H��H�����M���Icv���[H�=L��L�4�M�I��D�����H��H�$H�H�GE���8@��tH�������H�D$� 
�D���}� )ƃ����)�t$Xt$8A��D$X��~
L�����	��I��E��~H�<$D�����H�$�l$L���UH�$HcAA9F�9H��I�vH�H�T�
@H9��H��H���
9t���D$L��1Ҿ
�h����D�\$HI��E���_�D$\�����D$@L��D�l$@L�$$�fDL��1Ҿ
�q��I��L��L��H�������0�E�A�V��uA�~�1��D)�D9�|�A��E1�L���D�\$����H�<$I��A�VHcG)…���	H��I�ND�\$H�H�T��H9���H��H���:98t��U���	�	f��t$h�|$lfH~����2�� ��� )�f~���f���D$X�H*�fH~�fH~�H�� �����H�� H	��7����D��D)d$8��D�d$E1�$���fD���aH�I���N�
f.��
H��H�����u�H�\$0H���%����#���@�D$L�D$8���B��������@)�������	������D$H�q���f���*��Y��X
fH~�fH~�H�� ����@H�� H	��\H�D$�L$f/�wrfW
f/���f�T$�|$�D$l����HcD$�L$ H��…���D$@������Y
f/L$��H�$1ۃD$I�oE1�A�1H�<$t'H�$Hc@���
H�H�4$H��H�4�H�H��t`M��t&L9�t!IcD$���	H�H��L�$�I�$HcC����H�H��H��H��@�D$ L���؉D$M��tIcF����H�H��L�4�I�H�D$(�\$�E�H�D$0H���.���H�(�&����f���A*�f.�z��A����������@D�T$@E����D�D$H�D$E�������D$8���#I��E���z�D$@L�|$ L�|$@��I�lH�l$8L��f�H�4$H�����D�uA��D�x0HcCA)�u:H��H�MH�H�T�f�H9�sH��H���290t�E�A��H�<$L���Z����x��u@HcP�u)�u5H��H�}H�H�L�	@H9�sH��H��D�	D9
t����HcP���qH�=H��H��H��|$���D$����	���E��x{D	�tvH�D$ L�`����E�|$�L9d$8��H��1Ҿ
�9��1Ҿ
H��H��L9������L��1Ҿ
H�����I��L�d$ ����E��y�I��H�D$ E��L�|$@A�NH�h��uA�~~z��~vL���D�\$���H�<$D�\$I��A�VHcG)…��cH��I�NH�H�T�DH9��dH��H���:98t�rA��9�\E��A��1H�D$ I��L��D��x����;��H��I���'���H�ljt$H��t$H����|$�\$H@��	މ����}����D$81ۉD$X����D$XA�D$8����t$������H��������Y�f(��CE1��1�L�f�@��tHc׃�A���AY҃��u�E���X���f(��O���f�D�����H�$@����E1�H�$�A�D$P��H��|��o��� )Ɖ������D$�����^���D�L$@E��u_H�<$1Ҿ���A�VH��H�$Hc@)…��AH��I�NH�H�T�fDH9�sH��H���:98t������D$ L��E1�؉D$����f�f(¸�C�f��4$L�����I�����DL����G������D$\�D$@�D$ ���Y�f�f.�����L��f���
f(��X�f/���\�f/�������@H�ŀ}�0H�E�t����f(¸��H�������H�D$�`���H�D$H�� ���L����D$XA��E��A��7������f.�H�߉��6��H������H�D$H�� ��u�����HcT$f(�f��I�oH���H�Ӄ��^��\$�,�f��*���0A��Y��\�f.����D$@�����D$@�%��I�L�
@H9����Y�f�H��f(��^��,�f��*��P0�U��Y��\�f.�z��]����A����v����G��%H��M�T���E�H��I9��K����Y�f��f��H���,��*ȃ�0�\�f.�z�������@�U��/L9����P�H��H�E���9t����2���D�U�H��H�E���0t�����I�������^�\$�fDL9����B�H��H�U�<9t���n���H�<$����H����S���D�T$@E�������\$\���,����%��f�ɋL$�*��Yčq��Y��X
fH~�fH~�H�� ����@H�� H	����s�A�1�D$�J���E1��B����{�%��H�sH�xH��HcCH����H�����I���M���A�0L���E��D$����E��I��L�|$@A��9��H�D$ A��L��I��L��D�����I��E��I��H�l$8L�|$@L���?�^�E��\$���L������A���U��:����T���H��1Ҿ
�6��H�ËD$\�����D$@�����X�f/����A�H���L���L��H�D$ I�ܺ9L���9�����D$����tM�D$\�<�H�L$ E��D��L�|$@E��I��H�iA��9t���1E��I��L��DO�D���������������D$\�l$�D$@�o���L��H�$�H�$I�����J�f.�H������������
����A������������fD�D$����t��D$\���A������������������T$f��D$I�Of(��^��,�f��*��P0A��Y��\�f.�{'�|$@�����H������Z�<)Ɖ����H���V�����ff.����H����AUATI��UH��SH��H���?@��u�gfDH���;���u��;@��,t�@��tCI���DA�},tI��A�}@��t	���t�L��H��L��H)�L���A�}@��u�H��[]A\A]����AWfH~�I��AVH�� AUM��ATLc�UH��SfH~�H�������f(�fT
f.
��f.��Tf.�H��H��4��uiH�\$�T$�YfH~�fH~�H��4-A�E��tH��A�|$Mc�Hc��H��A�T$�H�� ��
��B�4������.�-�A�E��u��A�A������<H��A���
H�� ���	�H�� I	�L�L$�D$�X��\�fH~�fH~�H�� ���)�A��N�0A���1��H�HL9�s-@��H���������t=@�q�D��A����	�L9�u�E��xJI�A�$M��tM�eH��[]A\A]A^A_�f.�%���A���H�� L��H	��M���A���Lc�A�T$�Hcʀ<0t��DA�����	��nH�
�IH����1H��H��@�2@��u�M���[���I�UH��[]A\A]A^A_ÐA���6������A����0f�M������H�PI�U�A�������aH�
�NH���f��1H��H��@�2@��u��[���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realigngetcwd}0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEFNaNInfinity��ؗ�Ҝ<3���#�I9=��D��2�����[%Co�d(h��7y�ACn����F��?�O8M20�Hw�Z<�s�Ou�?$@Y@@�@��@j�@��.A�cA�חAe��A _�B�vH7B��mB@�0�B�ļ�B4&�kC��7y�AC�؅W4vC�Ngm��C=�`�X�C@��x�DP����KD��M��D������������������������������������������������	�������

 !"#������

 !"#��������������������������������������������������������������������������������������������������������������������������������������?��7y�AC��?�?@�����A�5�����?5�5�?�5�����?�?aCoc���?��`�(��?�y�PD�?<�s�Ou$@@@�������`��������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�R0s$D(D�
Hg
I|
Dll�R�H�B �B(�A0�G8�d
0A(B BBBEK0A(B BBBD������H8������4��A�C�D v
AAHf
AAH8�B�G�A �D(�G0H
(D ABBJ4P+A�I�G@�
AABxAAD�B�E�B �B(�D0�A8�D@�8A0A(B BBB8�/B�G�A �A(�F@w
(D ABBGLhB�E�E �A(�E0�
(A BBBF@(A BBBT\B�E�I �A(�D0�D@�
0A(A BBBFf0A(A BBB�gH��F�B�B �E(�A0�A8�DPl
8D0A(B BBBB@�V�O�D �D(�O GBBI����N(����lX�F�B�B �A(�A0�D@�
0A(A BBBFg
0C(A BBBGO
0H(A BBBA$�3E�D�D cAA(�DE�E�D d
DAAL�F�B�B �B(�A0�A8�M�
8A0A(B BBBFLltF�K�F �B(�A0�A8�F�
8D0A(B BBBH<��O�B�D �D(�G0u(A ABBA����d��F�J�F �E(�D0�D8�IP�
8A0A(B BBBK�
8A0A(B BBBB	$%9%Qj&��'��(�RRR4�I`sQ�du�(y������������	 ��	�	����&��.�A�R�+V�j���|��	��/�	���	��
� 	h��
��
�:Ur�� !���g
�g
�((+cDc_�x���'��!�����(�`(��'�4=�H	A
4=)�=F�=`�@%&'($x}��(�0�8� �@�H�P����p�X�`�h�x������������
/C

 !"#)*+T	jqv�g� ��������p
����03�pD(��4:E�'tO@=�_�=�.annobin_util.c.annobin_util.c_end.annobin_util.c.hot.annobin_util.c_end.hot.annobin_util.c.unlikely.annobin_util.c_end.unlikely.annobin_util.c.startup.annobin_util.c_end.startup.annobin_util.c.exit.annobin_util.c_end.exit.annobin_hi0bits.start.annobin_hi0bits.endhi0bits.annobin_lo0bits.start.annobin_lo0bits.endlo0bits.annobin_b2d.start.annobin_b2d.endb2d.annobin_quorem.start.annobin_quorem.endquorem.annobin_Balloc.start.annobin_Balloc.endBallocfreelistprivate_mempmem_next.annobin_multadd.start.annobin_multadd.endmultadd.annobin_d2b.start.annobin_d2b.endd2b.annobin_mult.start.annobin_mult.end.annobin_pow5mult.start.annobin_pow5mult.endpow5multp5sp05.13741.annobin_diff.start.annobin_diff.enddiff.annobin_lshift.start.annobin_lshift.endlshift.annobin_ruby_scan_oct.start.annobin_ruby_scan_oct.end.annobin_ruby_scan_hex.start.annobin_ruby_scan_hex.endhexdigit.13406.annobin_ruby_scan_digits.start.annobin_ruby_scan_digits.end.annobin_ruby_strtoul.start.annobin_ruby_strtoul.end.annobin_ruby_strdup.start.annobin_ruby_strdup.end.annobin_ruby_getcwd.start.annobin_ruby_getcwd.end.annobin_ruby_strtod.start.annobin_ruby_strtod.endhexdigit.13902bigtenstinytens.annobin_ruby_dtoa.start.annobin_ruby_dtoa.endINFSTRNANSTR.annobin_ruby_each_words.start.annobin_ruby_each_words.end.annobin_ruby_hdtoa.start.annobin_ruby_hdtoa.end.LC0.LC8.LC2.LC6.LC7.LC9.LC5.LC10.LC11.LC12.LC4.LC3.LC1.LC16.LC13.LC14.LC15.LC17.LC19.LC18.LC20.LC21.LC22.LC23.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_memcpyfreeruby_scan_octruby_scan_hexstrchrruby_scan_digitsruby_digit36_to_number_tableruby_strtoulrb_isspace__errno_locationruby_strdupstrlenruby_xmallocruby_getcwdrb_sys_failruby_strtodldexprb_isdigitruby_dtoaruby_each_wordsruby_hdtoa���������+b�xS���������S��������S���������c������������������(�F�����������	��������^����������QF�����������*����������
��������� �����������������������������>���������J���������X���������������������������������������Y�����������������������������F���������Z��������nF�s����������F��[�������������������\������������������F�F�gF��F�4���������]�����]���������[���������^���������[�����������_����������d_��������uZ���������[����������������������������]`��������ka�����������������������������[���������_���������Z�������� F� ���������  [��������S F�a ���������� F�� ���������� \��������!F�.!����������!Z��������"b��������C"F��"F�
#F\$����������$c���������$_���������$����������$����������$����������$����������$���������%%F�l&d���������&e���������(f���������(g���������(h���������(i���������(F��)���������s*���������*FE*+���������S+F�}+j���������+F��+[���������+k��������%,F�V,_��������o,[���������,l��������-����������-�0����������0F>/1k��������T1m��������m1Z���������1F��1m��������2C2c2�2"4�5����������5F�#6F�\7����������7_���������8F��8l��������C9l��������:���������,:���������S:l��������u:k���������:���������_;���������I<���������x=����������=���������">n��������*>o��������B>e��������f>p���������>����������>����������>[��������@���������@FEs@����������@����������@F> X��R$,RPRX��R���������DL�p�x�����������0�8�d�l������������	$�,	P	X�
�	��
��
����
���D�Lpx�������g
�g
0g
8(dg
l(�(�c�(�c�c��$c,�P�X�'����'��'�4=��'�4=	4=	�=D	4=L	�=p	�=x	�@�	�=�	�@ T U V W�<@DHLPT X$D(H,L0P4T8p<t@xD|H�L�P�T�X�\�`�d�h�l�p�t�x�|������������������������������ 4`H�p���T����� 	`�
��� �\p
�0�p �p�'�@=�=.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.rodata.rela.data.rel.local.rodata.cst8.rodata.cst16.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@-qT-rl-s�-t�-u'��@"@�s�--�A3�A�	 =�A�	8@��-
STKbTK�]@��0-
|(M�(M��@؊0-��N��N��@�0-��P��P��@8�0-2�R�R� @h�P-,`V'@��-<hV�IW W00W.�^W�^W|^WS^W'^W`^Wn^W�^W�^W�^W�`W ��W`�@Џ�-+�\`.�	@ljȑ�variable.o/     1690381920  1000  135   100644  104320    `
ELF>@�@@-,

 "#$%����fD��H�H�yH�AH�H�AH�H�A �fD���ff.���H������H�y����H��tH����f.���H�:����USH��H�H��tH��H�{H�u�SH�[H��u�H���[]����H�H� u H;p}H�@H�4�H��4u 1��f�H���H��H�4�H��4t�H�JH�BH���ff.�@��� �fD�����uH�1��ff.�f�����uHUSH��H��uH�����tH��σ���t��H�H��H���H�H�EH��1�[]�DH�H���@��@��u	H�����uH��H��H�5�1��1�H��Ð1��ff.�f�AUATUH��SH��H��@��ujH�����taH��Ѓ�������~<��7H�GH�xH��tH�T$���u_@H��H��[]A\A]�f.���t��t�fDH�H��t�H��H��H�����t�H�<$H�T$H�����t�H�D$�fD�� t[L�oA��H�@H�8H���t���H�T$H������_���H�D$L9��Q���I�D�H��4�E����=���DL�gL�oH� �f���H���H�=H��1���H������H��t�f��ff.�@��H��tH�?������SH�H�{�S H�[(H��u�&fDH�[H��tH�{H��t��H�[H��u�1�[�ff.����SH��H���H�5H��H��1��ff.��UH��AUATSH��H��dH�%(H�E�1��?$t|�H��H�HL�hH��H���H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�d$H��H��I���A�$$I�|$�L��L����f��H�u�dH34%(uH�e�[A\A]]��ff.����SH���H��H�t$H�t$�H��1�H���H��[�ff.�f���SH���H��H���1�[�@����f.�������H��H���1�H���f���SH��H�?�H�{�H�{[�ff.�f�����������ATI��UH��SH�����u[1�]A\��L��H��H�+���H���[1�]A\�ff.��UH��SH��H�GH�5H�\$H�xH�����uH��1�[]�fDH�|$H�5�H��t�H��H��H�����t�H�D$H��[]�@AUATUH��SH��(H�GH�\$L�d$H�t$H�xH��L��H�D$�H�|$H��u.H�EH�5H��H�x���u#H��([]A\A]�����f�H�|$H�5�H�T$L��I��H���I�E����u�H�H��L��H�D$H�EH�x�H��([]A\A]����SH���H��[�ff.����wH�?��ATI��USH���p���H��u1�H��H��[]A\�DH�5H��H���H��t�H�(�H���H�E tgH�mH��td�}t^H�l$�1����Hc�H�t$H�F���H�=O�H���x���M���m���H�D$H���_���I�$�X����H���H�H�5H�81��f���H��H��H�?�H��H��fD��UH��SH��H�����uH��1�[]�fDH��H��H�[���1��H��1�[]�ff.���AWAVAUATI��UH��SH��8H�^���t(I�T$H9�t11���uH�����t������CH��8[]A\A]A^A_�@I�D$H9�tH��u�H��L��I���L�5I��f�H�C I;��H�@H�xH��tH�5L�������H�;�H����H�5H��H���L��H��I���H�[(H��u�@��u;H�����t2H�E�ƒ���t$H�€�H�}H�Ut��uH���fDI�l$�����H�<$��H�5H��H���L��H��I���L���y���f.�H�KH�yH�������L��@H9X tbH�@(H��u�I�D$H�T$H�58���H��H�,$H�D$H�D$H�\$ L�d$(�H�T$1�H���Q���I�T$��B���D1��6���f���ATI��UH��SH�����t�}u[1�]A\�f�H���L��H���[1�]A\�fDUH��SH��(H�?H��H�|$�f.��H�G��uH��H��H��u�H�D$H�EH��([]�H�C�H�{��f���H���GH��(����H���ff.�@��uH�����tH��ƒ���t��u�H���D�����t1��SH���H��H���1�[����UH��SH��H�����uH��1�[]�fDH���H��H���H��1�[]�ff.����@��u	H�����u
1��f.�UH��H��SH��H�����u
H�E��`H��`tH��1�[]�f�H���`H��`t�H��H��������H����H�=H���
H�=H���H�=H���H�=H��H�H������USH��H�GH�XH��t?H�l$H�5H��H�����tH�D$H��[]�f�H�5H��H�����u�H���[]�ff.���UH��H��SH��H�=H�T$�H�\$��tH��H��[]�@���0H���H�H�kH��H�H�=H�PH�H�H�PH�H�@H�P H��H�@(�H��H��[]�fD��H�=H��t1�H�5���f��ff.�@��AT�I��UH��SH��H��H��tH�H�$����H���H�H�XM��t1L�`H��t8H�H�hH�P H��H�D$H�$H��[]A\�@L�%L�`H��u�H�-����1�1����H�
1��ff.���H��tH��tH��H��1��DH�5H��u�H�H��H��1����AU1�H�ATUSH��(H��L�D$H���H���H���H�=H�T$H��H������L�d$H�D$I�<$H�_(H��u��H;Ct"H�[H��u�H��(H��[]A\A]�fD�W���t+H�t$�H�D$�H��(H��[H��]A\A]�fDH��(���H�D$����H��H��t!L�kH�sH����L��M��u�I�$�H���_���H�x(�J����Q���H�<$�H�<$H�5H��1��H���H�5H��H��1��ff.���U1�H�H��S��H��H��L�D$�����H�D$H��twH�<$�H���H��H�D$�uH�����tH��ƒ���t��ug� �H�H�5��H�J(H�pH�HH�L$�H�HH�B(H���[]ÐH����H��[]���H�D$�\���H�H�5H�81�����H�H�H�r�bff.���UH��SH��H�H�wH��H�SH��SH�C(H��t�S��tH��H��[]�D�CH��H��H�����H�=��H�l$H�$�H��H��[]�ff.�f���SH����H���H��[H���ff.�@��H�����H���H��H���ff.�@��H�H�
�H9H�HD��ff.�@��ATUS�1H���H�=L�d$H�5w�H��H����D$$��L��\$���H���H��H�����:u�H��H��[]A\����AUATUSH��H��H���H�=H�T$H��I�����t\L�d$I�EI�,$H9�t>�U��u�mu*H�}(H��t@H�_�H��H��u�H���I�E�I�$H��[]A\A]ÐH���H����H���H�=H��H�XH��I���I�E�H�H�5H�81��ff.����@��uVH�����tMH��ƒ���t@��t;H�H��t/H��H��H��H�T$���tH�D$H���D1�H��Ð1��ff.�f���H��H�=H��t-H��H�T$���uH���fDH�|$�H��Ð�ff.�@��H�=H��t
���u�D1�H�5���f���H��H�<$H�=H��tH�T$H�����uH���f�H�|$�H��Ð��H��H��H�=H�T$�1҅�uH��H���fDH�|$�H��H��H���ff.���H�H����ATUSH��H��@��uH�����tH��у���t��u0��uH�����tH��ƒ���t��uxH��[]A\��H�l$H��H�����t�L�d$I�D$����t�H�=H��H�����tVH�|$�L���H�=H��H������H���H��ƒ����o�����H��d���@L���H�=H��H������=���H������0���H��ƒ���������H�����@��U�4H��SH����H��H��4tH��H��[]�fD��H�����t�H���H�=H��1����f�SH����uGH�����t>H��ƒ���t1��t,��H����uH�����t�����t
f�H�C[�f.�����b�f���ATI��UH��SH��H����uVH�����tMH��Ѓ�������~(��#H�GH�xH��tH1����t=�fD��t-��t(fDH�=H��tH�l$H��H�����u1�H��H��[]A\�f�H�|$H��L�����t���D�� uCH� H��t�H�T$L�����t�H�D$H� u3H9C~�H�[H�<�4t����H�@H�8�f.�H���h���H������ATI��UH��SH��H�� ��uFH�����t=H��Ѓ����|��~`��[H�CH�xH��tL���H�� []A\�DH�=H��t�H��H�����t�H�<$L��H���H�� []A\�DH�=H��t���t���t�뼀� u3H�{ H��t�H��H�58�H�$H�l$L�d$�H�� []A\�@H���H�@H�8����SH��H��H�� ��u<H�����t3H��Ѓ���tv��~Z��UH�GH�@H��u41�H�� H��[�DH�=H��t�H�T$���t�H�D$H��t�H�XH�� H��H��[�@H�=H��t���t���t�뼀� u;H� t�H�VH��t�H�v1�DH�<�4tH��H��H9�r��i����H�|$�H�t$H�@H�8�C���H� t�H����ff.�@��UH��SH���H��H�5T�H��H���H��H��[]�ff.�@��AWAVAUATUSH��H��8H�|$H�t$����&H������H��H��ƒ��������H��ttH�������H��Ѓ�������������H�CH�l$ H�xH����H�T$H�t$ �����H�D$H��8[]A\A]A^A_ÐH�|$�H�|$��tH��H�51��@�H�|$H�5H��1��D��t7��t2H�=H�l$(H�D$H��tL�d$ H��L�������H���H�5H��H��1���� ��H�{ H��t�H�T$(H�����t�H�D$(H� u/H;C}�H�[H��H�H��4t�H�4H��8[]A\A]A^A_�f�H���z���H����L�l$ L�t$(H�T$L��L���A��I�E����t)E��������?���H���H�@H�8�Q���@H�=L��L��H�\$(�H�|$ ��H���H���H�5H��H��1��f���SH��H��H�t$H�5H��t#H�L$H�ߺ�H���H��H��[þ
H�=�H��H����ATUH��S��H��u1�[]A\�@H�5H���H��H��t�L�`�I9�u�H�SH��4tƸH��t�H�U븐��SH��H��H��t/H�GH�xH��tH��H�5H��H��H��[�f.�H�|$�H�|$H���ff.����UH��H��SH��H���H�H�H9���H9��„�uH��H���H�[H��u�H��[]���H��t?USH��H��H�H���H��H�5��H��H���H���H��H��[]����USH��H����u/H�D$H��1��H���H��H��H��[]��1�H�L$H��H�D$����u�H�CH�hH��t5H�}H���H��H�5/�H��H���H��H��[]�f.�1��H���@��H��twUH��SH��H��H�GH�xH��t1����uCH������H��H��t'H�CH�xH��t1�H�����uH�[H��u�H��1�[]�H���[]�@1��ff.�f���ATUSH��H����uMH�D$1�L�%���*f�H�CH�xH��tH��L���H�[H��tWH��u��H����1�H�L$H��H�D$����u��H��H�CH�xH��tH��H�5c��fDH��t;H�}H���H��H�5��H��H���H���H��H��[]A\�fD1��H��H��H��[]A\�f���SH��H���H��[H���@��ATI��H��H��UH��SH������u	H�����u��[]A\�DH��L�����u�I�$��`H��`u�H���`H��`t�H��L����USH��HH�H�t$H�H�|$ H�D$H�D$0H�@H�D$(H�D$8H�@H��tiH��H�T$H�5j�H���H�L$(H��tHH�kH�H�uH�D$H��t?H�H���H�CH�t$1�H�x�H�D$(H��H[]�H��H�[]�@�H�L$(H�EH�CH�p��AUATUH��SH��H��H��u
H�H�H�C�EH�xH����L�d$H�5L�����t9H�D$���H��������������H��[]A\A]��H�CH�5L��H�x���t}H�|$�H��H��I���e���H��u�1�H���U���H��u�M��t^H�CH�5L��H�x���tO�EH�D$�t���fDH��1�����H��[]A\A]�1�H�����H��� �����8���f�L����)���H�=1��D��H��H�t$���H��uH���H���H���AUI��ATI��UH��SH���X���H��H�D$H��u/H�EH�xH��t5H�5H�T$���t A�$H�\$H��H��[]A\A]�DH�5@��uH�����t�E����tw�H��H�=1��H�èu2H�����t*H��ƒ���tH�€�H�{H�t
��uH���H��H��H�5A��A�$H��H��[]A\A]�H���H�H�5H9�q���H�}H�t$L������H�pH� �O���H�p�F���fD��H��H�H�t$���H��tH���H���@��H���H��H������UH��SH��H���H��tH���H�H;uH��H�5H��1��fDH���H��H�5H��H��1��f���AWI��AVAUATI��USH��H�GH�xH��tH������+L��1��1�H��H���HI��I���H�CH�xH��tL��L�����tI��H��uH�ݐH�[H��u�M���H����L9���L�d$H���H������|A��uI�����tA�E����uM�mL���I��@��uH�����t�E����uH�m�H���L��H���L��H��H�=H��1�������t4H�$H��[]A\A]A^A_�f�L����H��H��tL������H�CH�t$1�H�x��M��u�L���L��H���H��H�5L��H��1����ATI��H��UH��S�H��H�����tH��L��[]A\�H��H�5H���f.���UH��SH��(H�|$H�t$�H�D$H��uZH�|$���t$H���H�|$H�5H��1�H���H�|$�H�|$H�5H��1���H��H�������@����H�������H�E�ƒ���������H�EH�xH��tH�T$H�t$���ukH��H���H��H��t(�H��H���H��H�5H��H��1����H��H���H��H�5H��H��1��f�H�D$H��([]�H���H���H�5H��H��1����H��H����H�t$�G���H��tH���H���@��H���H�H�t$H������H��t)H� tH�@H����H��H����1���ff.����@��t&@��u@������tVH��t`@��tjH���H�����u�H��t!H��u�H�H�8��H�H�8��H�H�8�@H�H�8�@H�H�8�@H�H�8�@��AWAVAUATUSH��H��(���UH������HH��Ń����7���.I��I�ԃ�tH���(���H�kH�uH����L��L��H���H��(L��[]A\A]A^A_�fD�� ��L�s M���
H�T$L��L������1�H�H�D$H�ց� �QH�{L�{I��I9�,H������ H�C4H�H�C4H�C 4L�kM�d�A���V���I������I���L��H������6���H���`H��`�&���I�$��`H��`����L��H�������DH�=H���PH�I��H��H�L$�L��L��H�|$��tU�����������A��������U���I�VH��H�T$H�������L��L���������멐�H�EH�CH�p�L���f.�L�kH������H��A�H��H��H�H������I�VH��H9�sH��H��H����H�{�H��H�L$�H�L$I��H�C��H���H�@L�0��@H���L�xM�7M�������I��I������H��H����@�H��H�L$�J��L��H���H�#���H�L$H�CI��I9�}K��I��H�4H��H9�u�H�KH�D$L�s H� �����L�k���H���H�H�5H�81��H��H��H��H�H�������������ff.�@��AUI��ATUH��SH��H�L�%H90��H�H��H�t$�1���H���H�5�H��H���L��H�����u2H�����t)H��ƒ���tH�€�H�{H�t��to��D$��t H��L��H���H��[]A\A]��L��L�%�H���H�5H��H����DH���H���H����ff.���AUI��ATUH��SH��H�L�%H90��H�H��H�t$��H����H�5H��H���L��H����D$��tO��u+H�����t"H��ƒ���tH�€�H�{H�t��t_H��L��H���H��[]A\A]�fDL��L�%�H���H�5H��H����DH���H���q���H����fD��SH��H���H�5H��[H���ff.�f���UH��SH��H��H���H��H��H��H��[]�@��AWAVI��AUI��ATUH��SH��(H�GH�$H�xH��t1�����]L��E1�L����I��H����L���I�GH�xH��t#1�H�����tL��M��u
M��f.�M�M��u�H����I��M����I9���H�l$M���H�����txH���uH�����t�����uH�{�H��A��uI�����tA�$����uM�d$L��H�L$�H��I���H�L$L��H�=H��1��A�����ttH������M�eI�t$H��tJH�$H��H���H��([]A\A]A^A_�L��M��u�@L���L����I��H��t�M������I�D$I�EH�p�I�FH�t$1�H�x��s�����AUI��ATI��H��UH��SH���H��H�����tH��L��H��L��[]A\A]�H��H�5H�������f.���UH��H��SH���H��H�5q��H��H���H��H��[]�ff.����H�GH�xH��t/H��H�T$���t
H�D$H���1�H���f�1��ff.�f�UH��SH��H���H��t:H��1�H�z4tH��[]��1�H��H�������H����[]�@H��1�[]����AVAUATUH��SH��H��@H�D$�D$�t�����uH��@E1�[L��]A\A]A^�DH�T$H��H���H��H�D$H��t��H��tH�t$H��tH�����t�H�|$H�5�I��H��t�H�x��H�T$L��H�=����M�uI���I9�uI�E�|$����I�����t
I�EH��4u&H�D$H�D$ H�D$H��@L��[]A\A]A^��H�\$(H�l$ H�D$0�A�}���Hc�H�t$ H�*��H�=�
��@�I�E�@����D��UH��SH��H���fDH�[H��t?H��H��������t�1�H��H������H��tH�5H���H��t
H�H��[]�H���[]�@AWI��AVI��AUATA��UH��S1�H��8H�D$(�L$D�D$H�D$I�����u0D	���A�������H��L�0I�����t�E1�H��L���H�����T$��t	�8��L�PI��4u{M9�taH�T$H��L�����tL�T$(H��8L��[]A\A]A^A_�fDH��L��M����H���L��H���I�����D$���,���M�v����E��t�H�H�I9�t�L9�u�H��L�T$�L��I���H��H���L��H��H�=H��1��L�T$�F���H���L��H���H��H�5H��H��1��@��E1����J���f.���E1��1��-���ff.�f���E1�1ɺ�
���ff.�f���A���������A��1�����f.���A�1ɺ���f.�AWI��AVA��AUA��ATI��U1�SH��H��D�D$H��u+�D	�urA�����ugH��H�H��t�L��H���H��uE��t�H�[뵐�T$��t�8t*H�x4u41�L��H������H��u"1�L��H�����uH��1�[]A\A]A^A_�H���[]A\A]A^A_�@��E1�������f.���E1��1����ff.�f���E1�1ɺ����ff.�f���AWAVAUATUSH��(H�|$�L�t$I��I� ��I��H�A�}H�(�CL������3A�<#�L��M��u�ufDH�����t<:u�H��L��L��L)���;:I��tpM����L��H�������H��L���H�ŨuZH�����tR�����uH���u�H�D$H�D$H�D$H��(H��[]A\A]A^A_���{:u/L�cL���M�v�
���H�H�T$H�5H�81��H�H��H�L$H�5L)�H�81��H�|$�H�5H��H�H�81��H�H�5H�81��ff.���H���H��H������ATUSH��H����H�t$��H�������H��ƒ���������H�CH��H�xH��tH��H�t$���ukH��H�����t,H���H��I���L��H�5H��H��1��f�H���H��I���L��H�5H��H��1��fD�H�<$L�gI��4t�H��L��[]A\�@H��H��A��G��H�<$��H���f���UH��SH��H�|$H�t$�H��u_H�|$���t)H�\$H���H�|$H�5H��H��1��H�|$�H�|$H�5H��1���H��H�����tH��H���H��[]�H���H�5H��H��1����A����������A��1����f.���A�1ɺ����f.���AVAUATUSH��H�t$H���zH��I���F��H�kH�}�7H�t$H���H��H����H�x4H�|$�&�D�mI��H�H9��H���L��H�=H��1��H�}H��t)�u��t"H� ��H��L��H�1��H�CH�t$1�H�x�H����DE1�����D�(H���H�t$H��EH�CH�x�L�eA��u
I��������I��H�E�uH�������H��[]A\A]A^�fD�E1�H�E�r����H��H���
��H��t8H�5H���H��H��t!L�h�I9�u�L�e��H�t$H��E1��0������H��H������b���H���`H��`�R���I�$��`H��`�A���L��H����1���@L��H����������H���`H��`���I�$��`H��`����L��H�������@L��H�=1������f�H��#���H���H�5H��H�H�81��@��SH��H�wH�?�<��H�SH�sH�;�1�[����AUI��ATI��H��UH��SH���H��H�����t"H��L��H��L��[]A\A]�f.�H��H�=���ff.�@��H�H��H��H�8����AVAUATI��H��UH��SH��H������H�����}��H��L���H��tH�x4t
H��[]A\A]A^ú4H��L���M�t$M�nM���H�5H�T$L������bH�1�1��H�5L��H��H�D$�L�l$A��u
I��������I��H�D$L�h H���I�ĨuEH�����t=H��Ѓ���t0H�Ѐ��I�$����t��I�|$I�$t
��uL���� �L� H���H�EH��1��EH�H�E4�H��L��H���H��[]A\A]A^�f.��I��I�F����L��L���������I�$��`H��`����I�E��`H��`��L��L������H�|$H�5�I������H�H�5H�81��H���H�5H��H�H�81��ff.��AWAVAUATUSH��(��tz~d�F�H��H��A��H�D$H�D$E1�H�$�DI��J�D�H�<$H�D$�I��H����H��H���H��tOD� I�EL;l$u��H��([]A\A]A^A_��H���H�=H��1��H��([]A\A]A^A_�E��t�L���H��H���H��H�5L��H��1��E��t�H�|$�H��H���H�|$H��H�5H��1��ff.���SH�ӹH��H�����H��[Ð��SH��1�H��H�����H��[�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignglobal variable `%li' not initializedundefined global variable %liInsecure: tainted variable traceinstance variable %li not initializedinstance variable %li not defined`%li' is not allowed as an instance variable nameclass path is not set properlyuninitialized constant %li::% liuninitialized class variable %li in %liclass variable %li of %li is overtaken by %liclass variable %li not defined for %liwrong class variable name %liprivate constant %li::%li referencedtoplevel constant %li referenced by %li::%liinvalid class path encoding (non ASCII)can't retrieve anonymous class %li%li does not refer to class/moduleconstant %li::%li not defined`%li' is not allowed as a constant nameno class/module to define constant %lialready initialized constant %lialready initialized constant %li::%liprevious definition of %li was hererb_define_const: invalid name `%s' for constantautoload must be constant name: %li%li with no argument is just ignored%li is a read-only variableempty file name::__autoload____classpath____tmp_classpath____classid__11can't alias in tracerconst_missing01ClassModule#<%s:%p>uninitialized constant % liwrong class variable name %scannot remove %li for %litoo many instance variablesundefined class/module %.*licannot remove %li::%liautoload_iautoload��������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�
0*DXl	��$�8E�A�D fFA�Q�
�(\I�A�D xCAF��83WW8P.B�B�A �D(�G@O
(A ABBK�(H_���DE�~�$E�$�A�C
E����
A(3E�L `AHE�Vdx	�HN�#E�Y�	�	4�DF�D�D �M
CBHVCB0 lA�D�D0d
CAGqAAHT�B�B�A �D(�DPT
(A ABBIa(A ABB�E�L�0��B�D�A �D0P
 DABFHO0EE�D�G M
CAGXCAHPF�B�B �B(�D0�D8�Dpy
8A0A(B BBBE4�JF�D�D �S
CBJTCB(�WA�D�D@y
AAD"HY+f,(Q�V0HDE�D�G M
CAGWCA(|ia�G�G Z
CAC�yHp0�bE�A�D0q
AACZFA0��E�G�D0^
DAElDA(!0<�F�I�D �G0M
 AABEp
��@L�uF�K�A �A(�DPy
(D ABBGe
(D DBBG4��E�M�F0�
FABN
AAH40HsE�D�D0h
DAFmDA|!E�T�!HQ�!,�xF�A�A �I0_ DAB8��F�B�A �A(�J@t
(A ABBB0cu ]
FFPAW R
GNp.�?H e
CN�EH a
GN@�LV�A�A �G0E
 AABH`���H0���(	^E�I�D R
DAG4	VA�TP	0d	0F�D�D �G0�
 DABCP�	�F�D�D �G@A
 AABFn
 AABFG
 AABE(�	E�J0w
DFl
GE$
1E�D�D ^DA`@
wF�B�B �B(�A0�A8�Gp�
8A0A(B BBBB�
8A0A(B BBBC �
]E�G o
DA(�
_F�A�D �M
ABE �
TE�G e
DK$ME�G�G wAA(@MJ�A�G mDAD��4l�E�A�G0f
DAHP
DAK4��J�D�G S
CADDFAE��<��F�A�A �G0�
 DABGK GABE�O(8mF�J�D �[
ABF4d�A�A�D`�
AAAD
FAEL�[B�B�A �D(�G@j
(A ABBH�
(A ABBD�-H T
DLL
JB�E�D �D(�D@F
(D ABBF�
(D ABBA\
,H ct
HI�
gE�D�G H�
�F�E�B �B(�D0�A8�DP4
8A0A(B BBBJ(�
FF�G�D �[
ABE($�E�D�D@L
AAAP,H chTH p
HH
H��H��F�B�B �B(�A0�A8�G`o
8D0A(B BBBG8�F�E�A �D(�D@�
(A ABBH8$
F�E�A �D(�D@�
(A ABBG`#E�V$|,E�D�J IJAH��F�B�E �E(�A0�D8�D`^
8A0A(B BBBA8�XF�E�G �D(�D0X
(J ABBE,$@4E�G�D ^DAhCU W
DF<�YA�D�G Z
AAHV
DAEDCAT�kF�B�B �A(�D0�Gp^
0D(D BBBF�
0D(A BBBH0 lE�D�G M
AAADFAHT�B�E�E �B(�D0�D8�Fp�
8D0A(B BBBG�����\�B�E�E �E(�D0�C8�GP�
8C0A(B BBBAD8F0A(B BBBx��H��F�B�B �B(�A0�A8�D`�
8D0A(B BBBIHI0F�A�A �G0�
 DABE(L�E�D�D0�
AAAx��@��F�B�B �A(�A0�D@Q
0A(A BBBG�(E�b8aF�E�G �D(�D0X
(J ABBOPXdTF�B�B �G(�D0�G@{
0A(A BBBA-
0A(A BBBK`�%B�B�B �B(�A0�A8�D`s
8A0A(B BBBAb
8A0A(B BBBA$E�Y@E�V	!-E"a~#��$��%+
C
N
r:�:�E�E�XX>i^i�����������8�31K�QV1xJ�@
�J�c�P�c�/p\C�Zo�3w���>�.�	�>h"hD�d���������D��$D$]�t0�~��3�3�3�\�@�\f%`/fLygp	uy��������#���/�	=�]�{�	���4��D�4���@l�2	0�`H	�/	�L	��\	�v	��	��	��	��	��	�
�4
��L
Ha
�s
��
��
��
	�
�E�
	�
'	4
	(	'-zO0Jdz����W�����"�;G+c;yh(@(�h��OpD���)
��i�)

�
0
	 >
	F
�
j
�
�
��
��
��9�`��������� Hhu�u�o�o����(A1X1qa�a�����-Lqs�s�����(	=�a?�?�������0>I>i��@V���������'�D�a�|��1�1��(�Hf	����� - =- Z} u} �,!�,!��!��!�"9�"R�"i�"�M#�M#�($�P#�($�%/0$[5�%P�%i�%�
'��%J�
'�<'�<'Y'+Y'O�'q�'��)��)��)��)�`+`+=�+a�+~�+��+��,��,�A0A03b1Yb1zz2�z2��2��2��2�2�45�4N5e�4X}5�&5�&5�d5�d5�59�5[6{�5Y�6��7�`B(��7��7�75�9Q8�`�9��9��9��9��9��9�9::`:�6:�6:�V:�V: ,;0 `:�C ,;h F;� F;� c;� c;� �;
!�;-!5=K!5=h!Y=�!Y=�!w>�!w>�!=?"=?/"Y?Y"Y?�"v?�"v?�"�?�"�?#\B-#\BO#�Bo#�B�#�B�#�B�#C�#C$tE)$tEM$�Fo$�E%�$�F�$�F�$�F�$�F"#$%!%%$%)%-.%03%=8%K=%]B%iG%(L%HR%lX%p^%�d%�j%�p%�v%�|%��%��%��%��%�%p�%@�%��%��%��%��%��% �%��%��%�%x�%P�%9�%��%��%h&�&@&&�&�&$&0&@&U&i&

 &'(z&*�&�&P�&`	�&p�&@�&p'�'*';0:'G'@(\'t''�'��'$�'�'�'�'�'�'�'( (*(6(B(M([(f(u((�(�(�(�(�(�(�(�())).)8)C)N)Y)g)�)�)�)�)�)�)0
y*�*�
b'* �7*D*R*�!h*��*�
�*��*�@�*u�*�*�*++,+��;+D+R+d+pp+�s|+!�+@!�+p!�+�x�+ ��+�+�+c�+�A,�.',?<,@ET,�L-0i,s,�^,�,��,�0�,���,��,1�,@w--�],-8-V- _k-}-�T�-�M�-0 M�-�-� ��-0!��-�!��-�"�-�"m..�%-*.5.@.',N.�,�Z.@'h.v.`'g�.�.�'��.�)F�.�)��.�.`+,�.�+T/�+�/ /+/8/B/P/[/j/x/P0�/�/�/p1
�/�/�/�2#�/�2,�/�2�0�4X0 5*005450p5CE0 6kV0d0k0v0�0�7l�0�0�9�0�9�0�9�0:�0 :�0@:10;!1P;21p;F1�;�W1b1q1�1�1@=�1`=�1�1�>��1�1@?2`? 2�?;2�?�H2X2e2s2�2�Ba�2C�2 CT�2�2�2�2�F	3�F.annobin_variable.c.annobin_variable.c_end.annobin_variable.c.hot.annobin_variable.c_end.hot.annobin_variable.c.unlikely.annobin_variable.c_end.unlikely.annobin_variable.c.startup.annobin_variable.c_end.startup.annobin_variable.c.exit.annobin_variable.c_end.exit.annobin_null_cache.start.annobin_null_cache.endnull_cache.annobin_rb_gvar_undef_setter.start.annobin_rb_gvar_undef_setter.end.annobin_rb_gvar_undef_marker.start.annobin_rb_gvar_undef_marker.end.annobin_rb_gvar_val_getter.start.annobin_rb_gvar_val_getter.end.annobin_rb_gvar_val_setter.start.annobin_rb_gvar_val_setter.end.annobin_rb_gvar_var_getter.start.annobin_rb_gvar_var_getter.end.annobin_rb_gvar_var_setter.start.annobin_rb_gvar_var_setter.end.annobin_trace_ev.start.annobin_trace_ev.endtrace_ev.annobin_obj_ivar_i.start.annobin_obj_ivar_i.endobj_ivar_i.annobin_autoload_i_memsize.start.annobin_autoload_i_memsize.endautoload_i_memsize.annobin_cv_i_update.start.annobin_cv_i_update.endcv_i_update.annobin_generic_ivar_update.start.annobin_generic_ivar_update.endgeneric_ivar_update.annobin_givar_i.start.annobin_givar_i.endgivar_igivar_mark_i.annobin_rb_ivar_lookup.start.annobin_rb_ivar_lookup.endrb_ivar_lookupgeneric_iv_tbl.annobin_rb_gvar_undef_getter.start.annobin_rb_gvar_undef_getter.end.annobin_rb_gvar_val_marker.start.annobin_rb_gvar_val_marker.end.annobin_rb_gvar_var_marker.start.annobin_rb_gvar_var_marker.end.annobin_mark_global_entry.start.annobin_mark_global_entry.endmark_global_entry.annobin_rb_gvar_readonly_setter.start.annobin_rb_gvar_readonly_setter.end.annobin_global_id.start.annobin_global_id.endglobal_id.annobin_rb_trace_eval.start.annobin_rb_trace_eval.endrb_trace_eval.annobin_gvar_i.start.annobin_gvar_i.endgvar_i.annobin_cv_list_i.start.annobin_cv_list_i.endcv_list_i.annobin_autoload_mark.start.annobin_autoload_mark.endautoload_mark.annobin_givar_mark_i.start.annobin_givar_mark_i.end.annobin_autoload_i_mark.start.annobin_autoload_i_mark.endautoload_i_mark.annobin_autoload_free.start.annobin_autoload_free.endautoload_free.annobin_autoload_memsize.start.annobin_autoload_memsize.endautoload_memsize.annobin_sv_i.start.annobin_sv_i.endsv_i.annobin_autoload_data.start.annobin_autoload_data.endautoload_dataautoload_data_type.annobin_autoload_delete.start.annobin_autoload_delete.endautoload_delete.annobin_reset_safe.start.annobin_reset_safe.endreset_safe.annobin_autoload_require.start.annobin_autoload_require.endautoload_require.annobin_check_autoload_required.start.annobin_check_autoload_required.endcheck_autoload_requiredautoload_data_i_typeautoload_provided.annobin_autoload_provided.start.annobin_autoload_provided.end.annobin_cv_i.start.annobin_cv_i.endcv_i.annobin_fc_i.start.annobin_fc_i.endfc_i.annobin_rb_local_constants_i.start.annobin_rb_local_constants_i.endrb_local_constants_i.annobin_remove_trace.isra.4.start.annobin_remove_trace.isra.4.endremove_trace.isra.4.annobin_trace_en.start.annobin_trace_en.endtrace_en.annobin_check_before_mod_set.isra.5.start.annobin_check_before_mod_set.isra.5.endcheck_before_mod_set.isra.5.annobin_list_i.start.annobin_list_i.end.annobin_ivar_i.start.annobin_ivar_i.end.annobin_tbl_copy_i.start.annobin_tbl_copy_i.endtbl_copy_i.annobin_Init_var_tables.start.annobin_Init_var_tables.endtmp_classpathclassid.annobin_rb_class_path_cached.start.annobin_rb_class_path_cached.end.annobin_rb_global_entry.start.annobin_rb_global_entry.end.annobin_rb_gc_mark_global_tbl.start.annobin_rb_gc_mark_global_tbl.end.annobin_rb_define_hooked_variable.start.annobin_rb_define_hooked_variable.end.annobin_rb_define_variable.start.annobin_rb_define_variable.end.annobin_rb_define_readonly_variable.start.annobin_rb_define_readonly_variable.end.annobin_rb_define_virtual_variable.start.annobin_rb_define_virtual_variable.end.annobin_rb_f_untrace_var.start.annobin_rb_f_untrace_var.end.annobin_rb_f_trace_var.start.annobin_rb_f_trace_var.end.annobin_rb_gvar_get.start.annobin_rb_gvar_get.end.annobin_rb_gvar_set.start.annobin_rb_gvar_set.end.annobin_rb_gv_set.start.annobin_rb_gv_set.end.annobin_rb_gv_get.start.annobin_rb_gv_get.end.annobin_rb_gvar_defined.start.annobin_rb_gvar_defined.end.annobin_rb_f_global_variables.start.annobin_rb_f_global_variables.end.annobin_rb_alias_variable.start.annobin_rb_alias_variable.end.annobin_rb_generic_ivar_table.start.annobin_rb_generic_ivar_table.end.annobin_rb_mark_generic_ivar.start.annobin_rb_mark_generic_ivar.end.annobin_rb_mark_generic_ivar_tbl.start.annobin_rb_mark_generic_ivar_tbl.endspecial_generic_ivar.annobin_rb_free_generic_ivar.start.annobin_rb_free_generic_ivar.end.annobin_rb_generic_ivar_memsize.start.annobin_rb_generic_ivar_memsize.end.annobin_rb_copy_generic_ivar.start.annobin_rb_copy_generic_ivar.end.annobin_rb_ivar_get.start.annobin_rb_ivar_get.end.annobin_cvar_front_klass.start.annobin_cvar_front_klass.endcvar_front_klass.annobin_rb_attr_get.start.annobin_rb_attr_get.end.annobin_rb_ivar_defined.start.annobin_rb_ivar_defined.end.annobin_rb_ivar_foreach.start.annobin_rb_ivar_foreach.end.annobin_rb_ivar_count.start.annobin_rb_ivar_count.end.annobin_rb_obj_instance_variables.start.annobin_rb_obj_instance_variables.end.annobin_rb_obj_remove_instance_variable.start.annobin_rb_obj_remove_instance_variable.end.annobin_rb_const_missing.start.annobin_rb_const_missing.endrb_intern_id_cache.14344.annobin_rb_autoloading_value.start.annobin_rb_autoloading_value.end.annobin_rb_mod_const_at.start.annobin_rb_mod_const_at.end.annobin_rb_mod_const_of.start.annobin_rb_mod_const_of.end.annobin_rb_const_list.start.annobin_rb_const_list.end.annobin_rb_mod_constants.start.annobin_rb_mod_constants.end.annobin_rb_cvar_defined.start.annobin_rb_cvar_defined.end.annobin_rb_mod_class_variables.start.annobin_rb_mod_class_variables.end.annobin_rb_iv_get.start.annobin_rb_iv_get.end.annobin_rb_st_insert_id_and_value.start.annobin_rb_st_insert_id_and_value.end.annobin_find_class_path.start.annobin_find_class_path.endfind_class_path.annobin_classname.start.annobin_classname.end.annobin_rb_mod_name.start.annobin_rb_mod_name.end.annobin_rb_tmp_class_path.start.annobin_rb_tmp_class_path.endrb_tmp_class_path.annobin_rb_class_path.start.annobin_rb_class_path.end.annobin_rb_class_name.start.annobin_rb_class_name.end.annobin_rb_mod_const_missing.start.annobin_rb_mod_const_missing.end.annobin_rb_cvar_get.start.annobin_rb_cvar_get.end.annobin_rb_cv_get.start.annobin_rb_cv_get.end.annobin_rb_mod_remove_cvar.start.annobin_rb_mod_remove_cvar.end.annobin_rb_class_path_no_cache.start.annobin_rb_class_path_no_cache.end.annobin_rb_class2name.start.annobin_rb_class2name.end.annobin_rb_obj_classname.start.annobin_rb_obj_classname.end.annobin_rb_ivar_set.start.annobin_rb_ivar_set.end.annobin_rb_set_class_path_string.start.annobin_rb_set_class_path_string.end.annobin_rb_set_class_path.start.annobin_rb_set_class_path.end.annobin_rb_name_class.start.annobin_rb_name_class.end.annobin_rb_iv_set.start.annobin_rb_iv_set.end.annobin_rb_cvar_set.start.annobin_rb_cvar_set.end.annobin_rb_cv_set.start.annobin_rb_cv_set.endrb_cv_set.localalias.16.annobin_rb_define_class_variable.start.annobin_rb_define_class_variable.end.annobin_rb_st_copy.start.annobin_rb_st_copy.end.annobin_rb_const_lookup.start.annobin_rb_const_lookup.end.annobin_autoload_defined_p.start.annobin_autoload_defined_p.endautoload_defined_p.annobin_rb_autoload_load.start.annobin_rb_autoload_load.endautoload_const_set.annobin_rb_autoload_p.start.annobin_rb_autoload_p.end.annobin_rb_const_get_0.start.annobin_rb_const_get_0.endrb_const_get_0.annobin_rb_const_get_from.start.annobin_rb_const_get_from.end.annobin_rb_const_get.start.annobin_rb_const_get.end.annobin_rb_const_get_at.start.annobin_rb_const_get_at.end.annobin_rb_public_const_get_from.start.annobin_rb_public_const_get_from.end.annobin_rb_public_const_get.start.annobin_rb_public_const_get.end.annobin_rb_public_const_get_at.start.annobin_rb_public_const_get_at.end.annobin_rb_const_defined_0.start.annobin_rb_const_defined_0.endrb_const_defined_0.annobin_rb_const_defined_from.start.annobin_rb_const_defined_from.end.annobin_rb_const_defined.start.annobin_rb_const_defined.end.annobin_rb_const_defined_at.start.annobin_rb_const_defined_at.end.annobin_rb_path_to_class.start.annobin_rb_path_to_class.end.annobin_rb_path2class.start.annobin_rb_path2class.end.annobin_rb_const_remove.start.annobin_rb_const_remove.end.annobin_rb_mod_remove_const.start.annobin_rb_mod_remove_const.end.annobin_rb_public_const_defined_from.start.annobin_rb_public_const_defined_from.end.annobin_rb_public_const_defined.start.annobin_rb_public_const_defined.end.annobin_rb_public_const_defined_at.start.annobin_rb_public_const_defined_at.end.annobin_rb_const_set.start.annobin_rb_const_set.end.annobin_autoload_const_set.start.annobin_autoload_const_set.end.annobin_rb_define_const.start.annobin_rb_define_const.end.annobin_rb_define_global_const.start.annobin_rb_define_global_const.end.annobin_rb_autoload.start.annobin_rb_autoload.end.annobin_set_const_visibility.start.annobin_set_const_visibility.endset_const_visibility.annobin_rb_mod_private_constant.start.annobin_rb_mod_private_constant.end.annobin_rb_mod_public_constant.start.annobin_rb_mod_public_constant.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC17.LC18.LC20.LC19.LC22.LC21.LC24.LC23.LC25.LC26.LC27.LC28.LC29.LC31.LC30.LC35.LC34.LC33.LC32.LC36.LC37.LC38.LC41.LC42.LC40.LC39.LC43.LC44.LC45.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouprb_gvar_undef_setter_GLOBAL_OFFSET_TABLE_rb_gvar_val_getterrb_gvar_val_setterrb_gvar_val_markerrb_gvar_undef_markerrb_gvar_var_getterrb_gvar_var_setterst_init_numtablest_foreach_saferb_obj_classrb_gvar_undef_getterrb_id_quote_unprintablerb_warningrb_gc_mark_mayberb_gvar_var_markerrb_gvar_readonly_setterrb_name_errorstrlenmemcpyrb_intern2rb_intern__stack_chk_failrb_ary_new_from_valuesrb_eval_cmdrb_id2symrb_ary_pushrb_mark_tblrb_gc_markst_free_tablest_memsizerb_is_const_idst_updaterb_check_typeddatast_deleteruby_xfreerb_set_safe_level_forcerb_require_saferb_check_typerb_safe_levelrb_ensurerb_eArgErrorrb_raiserb_feature_providedrb_is_class_idrb_id2strrb_cObjectrb_str_duprb_str_catrb_str_appendrb_freeze_singleton_classst_foreachrb_error_frozen_objectrb_is_instance_idrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalInit_var_tablesrb_global_tblrb_class_path_cachedrb_global_entryruby_xmallocst_add_directrb_gc_mark_global_tblrb_define_hooked_variablerb_define_variablerb_define_readonly_variablerb_define_virtual_variablerb_f_untrace_varrb_scan_argsrb_check_idrb_ary_newrb_str_quote_unprintablerb_name_error_strrb_f_trace_varrb_to_idrb_block_procrb_eSecurityErrorrb_gvar_getrb_gvar_setrb_gv_setrb_gv_getrb_gvar_definedrb_f_global_variablesrb_alias_variablerb_sym2idrb_eRuntimeErrorrb_generic_ivar_tablerb_mark_generic_ivarrb_mark_generic_ivar_tblrb_free_generic_ivarrb_generic_ivar_memsizerb_copy_generic_ivarst_insertrb_ivar_getrb_ruby_verbose_ptrrb_attr_getrb_ivar_definedrb_ivar_foreachrb_ivar_countrb_obj_instance_variablesrb_obj_remove_instance_variablerb_is_instance_namerb_const_missingrb_funcallvrb_vm_inc_const_missing_countrb_autoloading_valuerb_thread_currentrb_mod_const_atrb_mod_const_ofrb_const_listrb_ary_new_caparb_mod_constantsrb_cvar_definedrb_mod_class_variablesrb_iv_getrb_st_insert_id_and_valuerb_bugrb_mod_namerb_sprintfrb_cModulerb_class_pathrb_ivar_setrb_class_namerb_class_realrb_mod_const_missingrb_vm_pop_cfunc_framerb_cvar_getrb_cv_getrb_mod_remove_cvarrb_is_class_namerb_class_path_no_cacherb_class2namerb_obj_classnamerb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolruby_xrealloc2ruby_xmalloc2rb_set_class_path_stringrb_intern_strrb_str_new_frozenrb_set_class_pathrb_str_cat_cstrrb_str_new_cstrrb_name_classrb_iv_setrb_cvar_setrb_cv_setrb_define_class_variablerb_st_copyrb_const_lookuprb_autoload_loadrb_sourcefilestrcmprb_protectrb_jump_tagrb_autoload_prb_warnrb_const_get_fromrb_const_getrb_const_get_atrb_public_const_get_fromrb_public_const_getrb_public_const_get_atrb_const_defined_fromrb_const_definedrb_const_defined_atrb_path_to_classrb_enc_getrb_enc_dummy_prb_check_id_cstrrb_eTypeErrorrb_path2classrb_const_removerb_clear_constant_cacherb_mod_remove_constrb_is_const_namerb_public_const_defined_fromrb_public_const_definedrb_public_const_defined_atrb_const_setrb_compile_warnruby_xcallocrb_sourcelinerb_sourcefilenamerb_define_constrb_define_global_constrb_autoloadrb_data_typed_object_allocrb_eNameErrorrb_frame_calleerb_mod_private_constantrb_mod_public_constant*���������&*���������1*�����������������������������\��������������������������������������������������I���������P_��������Z����������������������������`�������� ���������U����������������������������������������������������������)���������I���������T������������������������������������������������)���������P,a����������Y\�������������������������������,���������!���������8Y\=���������P���������a,y��������������������Y���������������������������.���������7���������R����������*����������a������������������������������������������������-	����������	����������	*����������	$�	����������	����������	����������	b���������	���������
���������F
���������e
���������q
b��������|
����������
����������
���������B���������d���������o�������������������7���������U���������`�������������������������������������������������#
���������9
���������E
c��������L
���������Q
���������]
d��������d
,i
���������u
e��������|
$�
����������
f���������
�
����������
�
$�
����������
�
���������3���������=���������^���������k���������r*��������������������*����������*�����������������������������/���������K*���������s*����������*����������*����������*����������*���������g��������#���������+���������;���������K��������������������������������������@���������Kh��������U���������]���������dh��������q����������g������������������������������������������������6���������I���������Z*���������ai��������k�������������������!���������Q���������z*��������������������������������������������������������������������5���������<���������L��������������������������������������������������������������������������������*����������j�����������������8Q��������������������������������!���������6���������NX���������v�������������������'2���������@���������H��������OZ��������l������������������������������������'���������.k��������8���������m������������������#8���������a�����������������������������.���������CS���������f���������{��������������������3B���������k�������������������#	��������`�����������������������������
��������)l��������0���������9���������Em��������O���������e���������������������l����������������������������6���������\���������s�����������������������������������������m���������������������������������������������n��������
�����������������CY��������K���������\�����������������������������*��������� ��������J ��������_ ���������g ���������� ��������� ��������� o��������� ���������� ��������!���������#!��������U!����������!���������"���������"���������*"o��������/"���������?"���������^"���������u"���������"����������"����������"���������"����������"��������#���������G#���������Y#*����������#����������#�#$�#���������#���������$���������H$*���������o$$w$����������$�$����������$���������
%%���������t%����������%p���������%���������%����������%&���������+&q��������V&r��������]&���������&����������&�&����������&*���������&s��������'*!��������3'���������I'#��������q'%��������~'#���������'*����������'t���������'����������'"���������'u���������'����������'���������<(���������}(���������("���������("���������(����������(v��������)���������X)���������g)"��������r)���������|)w���������)����������)����������)����������)x���������)����������)���������*)��������*"��������$*y��������1*���������>*���������J*z��������T*���������g*����������*����������*���������*"���������*����������*{���������*���������+"��������+���������+y��������#+���������@+���������H+���������O+z��������\+����������+����������+#���������+*!��������7,*-��������C,*.��������S,*/��������c,*0��������s,*1���������,*2��������-��������J-����������-���������.���������.0.���������D.���������.����������.����������.���������/3��������4/���������L/���������a/���������q/���������{/�/4���������/���������0���������0*���������0|��������0���������g0*���������n0$~0*!���������0����������0b���������0����������0���������1!��������1#16��������+1���������21=1!��������L17��������\1����������1*����������1$�1*!���������1����������1b���������1����������19��������2!��������62;2���������C2���������J2U2!��������d2:��������t2����������2����������2�2���������3���������S3����������3���������3"���������3"��������4���������4v��������!4���������Q4���������4����������4����������4����������4���������5x��������5���������A5��������V5����������5����������5A���������5���������6C���������6D���������6Y���������6����������6E���������6��������H7���������S7���������n7���������y7���������7F���������7Y���������7���������S8*���������r8A���������8���������8B���������8����������8��������9*���������79���������B9"��������M9���������Z9}��������d9H��������v9����������9"���������9~���������9����������:*����������:A���������:���������;S���������;*����������;T��������$<U��������@<Q��������S<K���������<*V���������<���������<����������<*����������<����������<����������<���������=���������=*���������=��������� =*���������'=���������1=���������I=:���������=����������=Q���������=����������="���������=����������=���������>���������>"��������>���������&>���������1>Y��������D>���������s>����������>����������>[���������>"���������>����������>����������>����������>����������>���������?���������?X��������%?���������,?���������9?����������?A��������@���������@*���������"@"��������,@���������6@H��������b@���������i@`��������}@����������@����������@Y���������@a���������@b���������@���������@c��������A���������;AY��������CA���������TA��������^AY���������A����������A����������A���������B���������B���������%BH��������=B���������DB���������NB*V��������XB����������B_���������B����������B����������B����������BH��������C*���������=C���������cCA���������C_���������C,�C����������CY\�Cg���������C,�C����������C���������D:��������^D���������hD���������sD����������DY���������Dg���������D���������D����������D���������E���������(EY\-E���������<E*���������CEa��������ME���������UE���������\E���������fE*h��������pE����������E����������EA���������EY��������
Fi��������F���������F���������&F���������?FY��������GF���������RF"��������\F���������iF���������sFY��������}F����������F"���������F����������F���������z�������������������u���������������������������������������������������������������������������������������������������-���������]�������������������y ���������"��������U' ���������)&��������,+��������K,+���������2!���������2!��������5=��������U=R���������B_��������Cd�������� ^��
$,
P
X:�
�:�:�E�:�EEXDELXpXxi�X�i�i��i�0�8�d�l������������1$�,1P1XJ�1�J�J�c�J�cc�DcL�p�x�����>>0>8hd>lh�h���h������$�,�P�X��������$���$	$	�D	$L	�p	�x	3�	��	3�	3�	\
3
\0
\8
fd
\l
f�
f�
y�
f�
y�
y�
�$y,�P�X���������������D�L�p�x4���4�4��
4
�0
�8
�d
�l
��
��
��
��
��
��
�$�,�P�X��������������	D�L	p	x'�	�'�'�z'z0z8�dzl���������;$,;P;Xh�;�h�h���h���)
D�L)
p)
x�
�)
��
��
��
08�dl�������������$�,�P�X��������������D�Lpxu��u�u�ouo0o8�dol���������1$,1P1Xa�1�a�a���a���D�Lpx����ss0s8�dsl������������?$�,?P?X��?�����������>D�L>p>x��>��������0�8�d�l�������������$�,�P�X1���1�1���1���D�Lpx������0�8- d�l- �- �} �- �} �} �,!$ } , ,!P ,!X �!� ,!� �!� �!� �"� �!� �"!�"!�"D!�"L!�"p!�"x!M#�!�"�!M#�!M#�!($"M#"($0"($8"�%d"($l"�%�"�%�"�%�"�%�"�%�"�%�"
'$#�%,#
'P#
'X#<'�#
'�#<'�#<'�#Y'�#<'�#Y'$Y'$�'D$Y'L$�'p$�'x$�)�$�'�$�)�$�)�$�)%�)%�)0%�)8%`+d%�)l%`+�%`+�%�+�%`+�%�+�%�+�%�+$&�+,&�+P&�+X&�,�&�+�&�,�&�,�&A0�&�,�&A0'A0'b1D'A0L'b1p'b1x'z2�'b1�'z2�'z2�'�2(z2(�20(�28(�2d(�2l(�2�(�2�(�4�(�2�(�4�(�4�(5$)�4,)5P)5X)&5�)5�)&5�)&5�)d5�)&5�)d5*d5*�5D*d5L*�5p*�5x*6�*�5�*6�*6�*�7+6+�70+�78+�7d+�7l+�7�+�7�+�9�+�7�+�9�+�9�+�9$,�9,,�9P,�9X,�9�,�9�,�9�,�9�,�9�,�9�,�9-�9-:D-�9L-:p-:x-6:�-:�-6:�-6:�-V:.6:.V:0.V:8.,;d.V:l.,;�.,;�.F;�.,;�.F;�.F;�.c;$/F;,/c;P/c;X/�;�/c;�/�;�/�;�/5=�/�;�/5=05=0Y=D05=L0Y=p0Y=x0w>�0Y=�0w>�0w>�0=?1w>1=?01=?81Y?d1=?l1Y?�1Y?�1v?�1Y?�1v?�1v?�1�?$2v?,2�?P2�?X2\B�2�?�2\B�2\B�2�B�2\B�2�B3�B3�BD3�BL3�Bp3�Bx3C�3�B�3C�3C�3tE4C4tE04tE84�Fd4tEl4�F�4�F�4�F�4�F�4�F�4�F�4�F$5�F,5�F Z [ \ ]BR�@`B]hpp�x� 4H@\Pp`�p�������@�Pp<�T�@�p�����0,L@h`|p����������$@X�������� �T	�0���0@Lp���0
��
� ,�@t�������8pL���@�p��� 4T�t���@��	�8	@T	�h	��	��	�
D
@�
��
 �
��D0 p� �0!��! �"<�"hP#�0$��%
�%`
'x
@'�
`'�
�'�
�)(�)T`+l�+��+��,�P0(p1d�2��2��2��40 5D05lp5��5� 6$�7X8��9��9��9�:� :@:`:|0;�P;�p;��;@=`=P�>|@?�`?��?��?�`B�BTCh C��E(�FD�F.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*�T*�l*��*��*�'��F"@p
@;*-�G3�G8=�G458@�H�3*
S�|b�|�]@@|0*
|�~��~��@p|0*��������@�|0*�`��`���@�|0*28�62n�f.�� )@}�*A0��.������|��S��'��J��X��k��}�������� �؊X�@�}�*(0� :+�	P� 3���version.o/      1690381920  1000  135   100644  11360     `
ELF>�!@@+*

 !"#��H��H�=��H���H�=H���H�=�
�H���H�=H���H�=��H���H�=H�����H�=��_�H�=�H�=�:�H���H�=H���H�=�1�H���H�=H���H�=��H���H�=H�H��H���ff.���H��H�=�H�H�8H���f���H��H�=�1��GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignRUBY_VERSIONRUBY_RELEASE_DATERUBY_PLATFORMRUBY_PATCHLEVELRUBY_REVISIONRUBY_DESCRIPTIONRUBY_COPYRIGHTRUBY_ENGINErubyruby - Copyright (C) 1993-2018 Yukihiro Matsumotoruby 2.2.10p489 (2018-03-28 revision 63023) [x86_64-linux]�x86_64-linux2018-03-282.2.10GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�%H8'HZPH+B ]y!��"��##%=%^W}W�{ !"#��
��-�=�K�\�k��.	

$%&?%Lb�o������
�`;� 2��0'")`�=�M�.annobin_version.c.annobin_version.c_end.annobin_version.c.hot.annobin_version.c_end.hot.annobin_version.c.unlikely.annobin_version.c_end.unlikely.annobin_version.c.startup.annobin_version.c_end.startup.annobin_version.c.exit.annobin_version.c_end.exit.annobin_Init_version.start.annobin_Init_version.end.annobin_ruby_show_version.start.annobin_ruby_show_version.end.annobin_ruby_show_copyright.start.annobin_ruby_show_copyright.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupInit_version_GLOBAL_OFFSET_TABLE_ruby_versionrb_usascii_str_newrb_obj_freezerb_define_global_construby_release_dateruby_platformruby_descriptionruby_copyrightruby_engineruby_engine_nameruby_show_versionputsstdoutfflushruby_show_copyrightruby_patchlevelruby_api_version*@��������A��������B��������$��������,C��������3*D��������=A��������EB��������L��������TC��������[*E��������eA��������mB��������t��������|C������������������C������������������C���������*F���������A���������B��������� ���������C���������*G���������A���������B���������!���������C���������*H���������A��������B��������"��������I��������;*F��������@K��������G*L��������k*G��������pK��������wO��������!C��������SM�������� ��%$,%P%XW�%�W�W�{�W�{  
 
  <0T`.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@(#T($l(%�(&�(''�{"@��(-@3H=H�8@�P(
S<b<�]@�0(
|���@(0(������@X0(��
��
��@�0(2�w 
� "0�
.�"�"|"S"'"+"9"L"^"m"}( �H`�@�H(&��)>	X^ �compile.o/      1690381920  1000  135   100644  140064    `
ELF> @@0/

#%&"'!(����~t5�@t��������Ð� u,�t@H����@������@�������H����@������@�u�t(��������Ë��������D�t���������PH�=1��f�H��tME1��D�O`L�GXE��~%I;0tFI��1��fDI��I;p�t0��A9�u�H���A��H��u�PH�=1���1�D��Wd��ff.�f�AVAUATI��USH��t`H�H��A��D�j��[�]E�t$`E�l$dA\A]A^��HcھH���H��H�uI�D$XH����DA�E1��DUH��SH��H�H��t3���H�H�EXH�U`H�H���[]��H�=�H��H��ff.�H���H��tTH;��tK��@H��H���1҃?���H9��u�H�p ��tH��H�=��1���H�w H�=1��ff.���H��H��H���V+PH��+PH�8Hc�H�T�1�H���ff.�@��u:H�����t1H�u*H��H��Ѓ���t!��u�H��H������ uH���H����DH���f.�AVAUATI��UH��SH�� H�H�4$H�8H�T$H�w0�H��tmH��H���H�SHc�L�jL�rH�\L��D$�H��H��1ɿeI���jI��L��jL��L��E1�H���H��0[]A\A]A^�D�
H�=��I��I�Ƹ�ff.�f��O`H�WX��~&H;2t8H��1���H��H9r�t ��9�u�P��H�=1��D1��DH�����u�fD�ff.�SH��I��H��H��Mc�M��H��H���H�@ H�HH�PH����pxAPO�D�ZY�uH��H��H�D$���H�D$H��[�ff.�@AUATUSH��H�L�``H�������A�D$I��A�|$H��H�H��H��H��H9�w-�L�A�l$H��[]A\A]�f.������?wB�<H��H9�w�H����I�UI�$I��H�B`1�H��@�X����AWI���hAVI��AUE��ATM��UH��H��S��H��� ���L�8D�h�X�XXL�`M��t
A$�XX�XD���M��tUI�N H�H��uH��tP�UtH�@ H�@(�JH�@HH�@P4H�@`�Mt�P\H��[]A\A]A^A_ÐH�@��u�M��u�A��D�h�f�AWM��AVM��AUA���ATI��UH���SH��H��H�$H�L$�I���L��H���H�L$I��H���L�L$PE��L��H�4$L�������H��0H������H�@�@*D�hH�X(H�@ H��[]A\A]A^A_ÐLc�H��N �VB�����F 9�~bATUH��SH��L�f(��>uUH�H���H�4����I�$H��E1�H�C(E1�1ɾ�H������H�S(H�B�[]A\�f��É�H�=1��f.�AVL���AUE1�ATA��U��S��H��PL�D$@L�L$H��uEL���0����H�@�h�XL�h(D�` �@$H��P[]A\A]A^��Hc�H��$�L���D$ H�D$H��H�D$ H�D$���L�D$�t$1�I��H�L$1��!����L�H�I�T�H��A9�~��/v�H��H����@@���:����t$�1���fD��AVAUI��ATI��USH��L���H���H�*�%���H��H���A��L��L��H��A�H���o�����H��A�I�Ź�1����I�T$H����M��H��A��H�PH�B��jI�D$����I�T$H�PH�BI�D$H�H�C`X�Z[]A\A]A^�ff.���AU�H�ATI��UH��SH��H��D�jL�H�G`HLJ��1�D������H�SD��H��M�D$�H�PH�B�OH�C1����H�SH�PH�BH�CH���[]A\A]�f���AUI��ATUH��SH��H�5H��D�b���A�H��H�H���D��A�1����%���H�SM�ED��H��H�PH�B�H�C1����H�SM�ED��H��H�PH�B�OH�C1�����H�SD��H��1�H�PH�B�H�C1����H�SH�PH�BH�CH���[]A\A]�ff.�S�0H��H������H�����QpH�@�r�qp�PH�@ �@(�����`,�[�DATH�
UH���SH��H��H�H���H�T$H��H��I�����tH�\$H��H��[]A\��H���P���L��H��H��H���H��H��[]A\���@��u&H�����t�����tH���H��H��f�H���@���H9�tgH��uPH�����tH@��ujH�����taH��1у�uU����t=H��H��H�������H�����f���f.�1��DH��H���D������f�UH��SH��@��uH��H�����u
H��H��[]����u�H�E��`H��`u�H���`H��`t�H��H�����f�AWAVL�5AUATUSH��H�=H��X��D$H���%������������dHcCH�
H�=H�4�1��H�{(H����HcCH�
E1�E1�H��H�D$�H�D$0H�D$f.���tO�B�<����Ic�L�>��@H�C(J�<���H��H���A��H�D$Mc�N�,8A�}��H�|$(H�l$(�k�D�|$�H�5H��A��1�D���HcSH�D������L$H�[H������H�=�H��X[]A\A]A^A_��H�5H����W����H�C(J��H��H�x�H��H����+���H�C(H�t$N�,�L������kH�t$@H���]H������H�C(H��
H�5N�,��I�}H���?A�UH�5H��1�����DH�C(H�5H��J���P1����������H��H����^���fDH�C(J�<��H�5H���1���3�������H�C�����H��t�PH�5�1���c���fD�H�5H���A�U���f�H�=��,�����SH�5�1���
���DL��H�5H��1�������H�5H��H��1�����H�H�5H�81����H�5��H�H�81��fDUSH��H������H��H�����t:�������H�H�KH9u?H��H����H��H��[]��H���H����H�H�H9Ct�H�H�5H�81��D�����؃�����H��t+����H�H�H9Cu�H��H��[]��H�H�fDH�H9�{���H��H��[]�fDH����H���H�è�
�������@H�H��@H�H��@H�H�H�H9��������f�H�H���@H�H��Q����UH��H��H��SH��H���H�ǨtR�u3H���H��tW������tM@��tG�1�����uH��[]Ð��u.��EH���[]��H�����u�H��t*H��u�H�H��H��H�5H�81���1��@��H�~t1��f�AVAUATL�%UH��SH���H��I�$H�L��H���H�}�sH� uZH��H��H�1��I�$H���L���H��H���u	H�����u+L��1�[]A\A]A^�f�H��f.�H��L�����uI���`H��`tI�$�H���`H��`t�H��L�����fDAWAVAUI��ATUSH��H����L$H���\H�2H���I��H�D$H��H��A��9hht@�ƀu1I��I��A��A��i��MH�
D��Hc�H�>����hhH�WH��~eH��t`9hlt[H� �.H�R �M�A���L��Hc�H���(��hl1���H�SH�PH�BH�CI���fDH�@x�x��uH�CH�D$I�6�C���@�A���L��(1��D�H��H�D$H�CH�AH�HH�K�f.��A��G����5�A��D��1�A��L�����H�S1�H��L��H�PH�BL��H�C�[���A���&D��L��1���H�SI��D��L��H�PH�B�2H�C1���H�SH�PH�BH�CL�D$�D��L��11��X�H�S1�H��L��H�PH�BI�VH�EH�hH�k���I���H�@x�@����K�/L��1�D��1���H�SH�|$M�vH�PH�BH�GH�xH�{M���kKL���S�L��H�D$�F�M�~ H��M����KI�?H������(�����A��D��1�A��L����H�S1�H��L��H�PH�BI�WH�C���A�D��1���&L���B�H�SI��D��L��H�PH�B�2H�C1���H�SM� H�PH�BH�CM���X������fD��t@�H���[]A\A]A^A_ÐH����
1ɋph1���H�SH�PH�BH�C�뾐H�������I���f�H�|$HDŽ$�)�$�M�fA��H��H�H0)�$�HDŽ$��D$`HDŽ$�H�@0H��$�H��$�H��$�H�D$H��$���A!�A�A�H�L$ ���^W�A��%t!I�V H�t$H�L$`L��$�L���v�H��H��$�H��tH�SH�BH�PH��$�H�CH��$�H��tH�SH�BH�PH��$�H�CL��H�L$�I�H�L$H������$��J��%�{JD�L$`H��O�L	L���$�L�D$0L�����H�SH�PH�BH�CAYAZD�\$E���PJf�E������H�D$H;C�����x(�����H�@H�CH�@����@�H�=�H���I�vA��1�A�H��L���M�I�V1�H��L��I���	����
L��1ɉ�1��f�H�SH�=H�PH�BH�CH���4]�H��M��L��jI���)1������H�SH�PH�BH�C_AXD�L$H�|$A��E�����1ɉ�L��1����H�SH�PH�BH�C����@L��D�L$�;�I�V1�H��L��I���7����D$D�L$���/\M���3A��t�2��L��1��r�H�SH�PH�BH�C�D$���d\I�V�L$H��L������H�CH�|$A��I�D$L�`L�c�#���f�M�e �
H�=)�$�M���)�$��L��H���H���I�v A��L��A�H��L����L��I���7�L��I���,�L��H�D$��I�V �L��H��$�H�D$ H��$��	���I�V �L$H��I���L�L$L��L�|$`H��$�H�PHL�L$hH�D$pH��$�H�T$`H��$�H��$�H�PHH�CI�VI�GL�xL�{���H�CL�L$L�D$ I�AL�HH��$�L�KH����nI�AH��$�L�HH��$�I�@L�@I���L�CH�PHL�rM��t~I��L��$�L��@I�L���HDŽ$�H��H��$�I�FL��$�H��H��$�H��$��I���H��H�z�M�vM��u�I���H��$�H�|$A��H�PH�
���f.�I�V�L$H��L���}���H�|$A��H����A!�����DI���H�y(�LL��M����/��(L��I��H�CI�D$L�`I���L�cL�x(��L��H��H�@H�SL�xH�P��h H�B1�H�C葘���L��I����1L�@(1��0�H�S�(L��H�PH�BH�C�C��L$H�|$H�@H�SA���L�`�@ ����H�PH�BH�C�������
1ɉ�L��1���H�SH�PH�BH�C���@I���H�y(�LL����I�V1�H��I��H�CL��M���I�D$L�`L�c���1�L��H��蕗I����(L��L�x(�m����L��H�@H�SL�xH�P��h H�B�1H�CI���L�@1���H�SL���(H�PH�BH�C�
��|$H�|$H�@H�SA���L�`�@ ����H�PH�BH�C��������
1ɉ�L��1���H�SH�PH�BH�C�s���L�����L��I�����L��I�����I����
H�=H�D$I�E H�L$(H�D$ �H�t$ H���H���I�vA��L��H�L$(A�H����I�V1�H��H�D$ A�D$,L����A�D$,A�G,���A�G,H�CI�D$L�`L�c�>�H�CI�~ I�GL�xL�{t41ɺ��L��1���H�S1�H��L��H�PH�BI�V H�C���1�1҉�L��1��S�H�SH�L$H�PH�BH�AH�H�D$H�K���`VL�t$H�D$ I��I��H��$��L��$�I��H��HDŽ$�L��$�H��$�L��$��I���H��H�z�H��L��$�HDŽ$�L��$�HDŽ$�L��$��I���H��H�z�H�|$A���a����I���H�(��FL��M�����L���(I��H�CI�D$L�`I���L�cH�P(H�T$�>�H�T$H��L��H�@H�PH�S�H�P�h H�BI�VH�CI����HP�[�1�L��H������L��I����1L�@ 1���H�SL���(H�PH�BH�C��D�L$H�|$H�@H�SA���L�`�@ ����H�PH�BH�CE���?����
1ɉ�L��1��,�H�SH�PH�BH�C�����A�}��cI���H�H��H�H�H��H��I�EH�xH� tH�xH�1��H�I���M���L��L�"A��u
I������8LH����f�M���L��D�L$PI�D$H�D$0I�D$ H�D$8I�D$(H�D$@A�D$P�D$H���M���L��I�D$H�D$��L��I�G(M���I����L��I�G H�D$ ��L��H�D$(�x�D�L$PI��I���H�PH�@PHDŽ$�H��$�H��$�HDŽ$�H�PHA���[?I�~ �P?L��D�L$X���1��L��I��H�D$P�1��r�H�SD�L$XL�\$PH�PH�BH�C1ɺ
��L��1�L�\$XD�L$P�;�H�S1ɉ�L��H�PH�B�I�GL�x1�L�{��H�SL�D$��L��H�PH�B�1H�C1����L�\$XH�SD�L$PM��H�PH�BH�C�HRI�CL�XM�\$I�VH��L��M�c�L�cD�L$P�$�H�CH�L$D�L$PH�AH�HH�KA����bA����S1ɺ��L��1��S�H�SH��E1�A����L��H�PH�B�aH�Cj����H�SM���L��H�PH�BH�CX1�Z�2��H�SH�PH�BH�L$(I�~ 4H�AH�HH�K�.u1ɺ
��L��1���H�SH�L$ H�PH�BH�AH�H�D$H�K����PL�t$ I���H��$�H��I��HDŽ$�	I��L��$�L��$�HDŽ$�L��$��I���H��H�z�H��L��$�HDŽ$�
L��$�L��$�HDŽ$��I���H��H�z�I���H��HDŽ$�H�@(L��$�L��$�HDŽ$�H��H��$��I���H��H�z�H�L$0H�|$@I���H�|$A��H�PHH�HH�L$8H�x(H�RH�H �L$HH�PH�HP�5�DH��$�f�L��HDŽ$�)�$�L��H�D$H��$��x�L�t$(I��H�D$ �fD��s�G�����sH��1ɺ
L��1����I�V1�L��L��H�PH�BL��I�F�)�I�7A�1���&L��H���x��I�VI�7M��L��H�PH��H�B�2I�F1��J��I�VH�PH�BI�FH�m H����9L�}L��H�������v9L����H�U�L$L��I��H��$�H�t$I�D$L�`L��$��m�L��L�D$ L��1H���1����H��$�L�}H�PH�BH��$�M���rI�7H��H������(�����I�_1�L��L��H����H�3�2M��L��1�H���P��I�VM� H�PH�BI�FM��u����f�I���L��H�@0H�D$��L��I����I��H�CI�GL�xI�L�{H������	�BGI���L��H�L$(�#��H���I�vA��L��M���H�L$(A�H��L�T$ �b��L�T$ I�V 1�H��L��I�B0��H�CD�T$I�D$L�`L�cE����JI���H�|$I��H��$�H�x0L���H��HDŽ$�	H��$�L��$�HDŽ$�L��$��I���H��H�z�H�|$A�����f.�H��A��H�|$��A!NjD$������A���L��1����H�SH�PH�BH�C��f�H��$�)�$�)�$�)�$�)�$�)�$�)�$��H��$�H��$�H�L$0H��H��$�H��$�H�L$H��$�H�D$ �I�VH�
H�H����KH��L��1��|�M�~I�/H��H��������RI���H�H�H�H��H���I�7I�UH��H�zH� tH�zH��H�1�����f�f�L��$�L��HDŽ$�L��$�H��$�)�$�)�$�)�$�L��$�L�\$ L��$�L�L$(H��$�H�t$0HDŽ$�HDŽ$��i��L��H�D$�\��L��I���Q��L�T$M��L��I�VH�t$0I��L���vI�V�L$L��L�L$(L���*�I�V �L$L��L�\$ L����H��$�L�T$H���JH�SH�BH�PH��$�I�BL�PH��$�L�SH��tI�BH��$�L�PH��$�H�C�1M�����L��1��
��H�SH�PH�BI�D$L�`H��$�L�cH��tI�D$H��$�L�`L��$�H�|$M�gM�|$L�{A�����I�FM���H�x�H�=H��1��H���I�vA��L��A�H��L��� ��L��H��I��I�FH�H�H�NJ��
L��H��M�1�1��-��H�SA��I��H�PH�BH�CI�FH�x�H��M���AWI���)1��L������H�SH�PH�BH�CAZA[D�d$H�|$A��E������1ɉ�L��1����H�SH�PH�BH�C��f�I�FM���E1�H�x�H�=H��1��H���I�vA��L��A�H��L�����L��H��I��I�FH�H�H謉I�V H��L��H��A��A��D����H��DE�1���I�FH�x�Ic�H��M��H�TI���1�R��)L������H�SH�PH�BH�CA^A_�D$H�|$A�Dž�����1ɉ�L��1����H�SH�PH�BH�C�{�A����L��1��\��H�S���A�L��H�PH�B�H�C1��0��H�S1�H��L��H�PH�BI�VH�C��H��E1���j���L��A����H�SH�PH�BH�CXZ�L$H�|$A�Dž�����1ɉ�L��1����H�SH�PH�BH�C��@A����L��1��|��H�SI�~H�PH�BH�C����L��I���1��J��H�SI�~H�PH�BH�C����L��I���1����H�SH��E1���L��A��H�PH�B��H�Cj���H�SH�PH�BH�C^_D�D$H�|$A��E������1ɉ�L��1����H�SH�PH�BH�C��A����L��1��t��H�S���A�L��H�PH�B�H�C1��H��H�S1�H��L��H�PH�BI�VH�C��I�V1�H��L����H��E1���jA���L�����H�SH�PH�BH�CAYAZD�\$H�|$A��E������1ɉ�L��1����H�SH�PH�BH�C���I�~�H���I�v A��1�A�H��L���-��A���L��I�Ĺ�1��N��H�S1�H��L��H�PH�BI�VH�C���I�~����L��I���1����H�SM���L��H�PH�B�H�C1�����H�SH��E1�A����L��H�PH�B��H�Cj�_��H�SH�PH�BH�CA\A^�D$H�|$A�Dž�����1ɉ�L��1��r��H�SH�PH�BH�C�]�DI�~�H���I�v A��1�A�H��L������A���L��I�Ĺ�1����H�S���A�L��H�PH�B�H�C1�����H�SI�~H�PH�BH�C����L��I���1����H�SM���L��H�PH�B�H�C1����H�SH��E1��A���L��H�PH�B��H�Cj���H�SH�PH�BH�CXZ�L$H�|$A�Dž��,��1ɉ�L��1����H�SH�PH�BH�C��@I�V1�H��L��������1�A��L������H�S�t$H�|$H�PA��H�BH�C������1ɉ�L��1����H�SH�PH�BH�C��DH�|$I�VH��L��A��D�d$H����1�A!�E���[-����E1���L���1��5��H�S1ɉ�L��H�PH�B�H�C1����H�SD��H��L��H�PH�BI�VH�C������H��D�D$I�VH��A��H�|$L����1�A!�E���--�F��E1����L��1����H�S1ɉ�L��H�PH�B�H�C1��z��H�S1�H��L��H�PH�BI�VH�C����E1����L��1��@��H�S1ɉ�L��H�PH�B�H�C1����H�SH�PH�BH�C���L���x��I��I�FH�@H����vcH�H�����P����`c��9�WcI���E�Ed��L���'D+@Lc1�Mc�O�L	O�D���H�SM���L��H�PH�B�2H�C1��f��H�SH��L��H�PH�BI�VH�C����H�CH�|$A��I�D$L�`L�c�"�f�H��$�L��H��L���~M�FI�61�Lc�$���L��H��O�DO�L	����H�SD�T$H�|$H�PA��H�BH�CE�������1ɉ�L��1����H�SH�PH�BH�C���f�E�epI�N �?I�VI�vA�D$A�Ep�1�1�1�H���L��M���I�����H���L��A��L��A�H��L������Mc̺6��I��O�L	1��L�����H�SD�L$H�|$H�PA��H�BH�CE�������1ɉ�L��1����H�SH�PH�BH�C���f.�I�V1�H��L�����H��D�\$A��H�|$��1�A!�E����+���L��1��[��H�SH�PH�BH�C�F��fD1ɺ��L��1��-��H�SH��L��H�PH�BL��H�C�/~H��E1���j�`A�L�����H�SH�PH�BH�CA\A^�D$H�|$A�Dž������1ɉ�L��1����H�SH�PH�BH�C���f.�L��H��L���}H�|$�L$A��H����A!Dž��)H����
E1���jA��L������H�SH�PH�BH�CXZ�)��f�E�}pL��A�GA�EpI���H�D$�P��H���I�V1ɿeH�5���I���H�L$A��L��A�H��L�����McϺ6��I��O�L	1��L�����H�S�t$H�|$H�PA��H�BH�C���{���1ɉ�L��1��h��H�SH�PH�BH�C�S��H�ۋ|$A��H�|$��A!Dž��1��I�~��OL�����1ɺ
��H��$�L��1�HDŽ$����H�SH��L��A�H��$�H�PH�BI�VH�C�:e1ɺ ��L��1����H�S1ɉ�L��H�PH�B�H�C1����H�SH�PH�BH��$�H�CH���eTH�BH�PH��$�H�PH�BH�C�R��f�H��D�D$A��H�|$��A!�E���/��A�}L��T$u�{T@�8��9H�����H��u�
1ɉ�L��1�����H�SH�PH�BH�C�����M�f I�~M�~I�D$�H�|$ H���H�D$(�D$�D$0���%M���
%H����IH�H�D$H������(��IM����[M�_I�H��������L��1�A�H��$�L��H�����Q� to��@tjI�K��t.H;�$�tXH�FD�B�I��N���H��H9H��JSI9�u�H���H� �B��H���9[L�_Hc�I�H�������y���H��$�H�D$H�D$f�HDŽ$�)�$�H��$�H�\$8L��L�|$1�H�SL��L����eH�[ H��u�H�\$8H�T$ 1�H��L������D�|$E��u(I�6�1�L��1�H���$��H�SH�PH�BH�CD�L$0I�6Lc�L��O�D�1�M�H��I������H�SH�PH�BH��$�H�CH��tH�PH��$�H�BH��$�H�CH�|$(���I�4$H��H������E��GI�l$M�d$H��LcEO�DI�����V�L��A�1���M��H�SH��L��H�PH�BL��H�C�od�H�UH��L���YdH�m H��u�H�|$A������I�V�H��L���|��I�V�L$H��L���i��H��A��H�|$��A!�����f�I�~�I�V DŽ$�)�$�)�$�)�$�)�$�u3I�FH�H������[t H��tH�H������(��S�H��$�L��$�E1�L��H��$�L��$�H��$���pI�VI��H�H������[��-L��1�L��E1����1�I�~	�$���D$���u0H��$�H��tH�SH�BH�PH��$�H�CH��$�H��tH�SH�BH�PH��$�H�CD��$���L��E1�H��I�VL��jO�L	���H�SH�PH�BH�C^_1ɺ1���L���?��H�SH��A��H�|$H�PH�BH�C��A!�����H�|$D�L$A��H����A!�E�������E1����L��1�����H�SH�PH�BH�C����H�|$D�T$A��H����A!�E�������A���L��1����H�SH�PH�BH�C�n��fDH�|$D�\$A��H����A!�E���G���
1ɉ�L��1��4��H�SH�PH�BH�C����H��D�d$A��H�|$��A!�E�������1ɉ�L��1�����H�SH�PH�BH�C�����H��L��L����tH�|$�t$A��H����A!Dž������1ɉ�L��1����H�SH�PH�BH�C�s��I�~�H�|$�|$A��H��I�F��A!ׅ��D��I������L��1��+��H�SH�PH�BH�C���fDI�~�1ɺ��I�FL��1���H�SM�F��L��H�PH�B�H�C1�����H�SH��E1��A���L��H�PH�B�`H�Cj�C���H�SH�PH�BH�CXZ�L$H�|$A�Dž��k���1ɉ�L��1��X���H�SH�PH�BH�C�C��L��M���聻��H���I�vA��L��A�H��L���ν��A���L��I�Ĺ�1����H�SH��M��A���L��H�PH�B��H�Cj�l���H�SH�PH�BH�CXZ�L$H�|$A�Dž������1ɉ�L��1����H�SH�PH�BH�C�l��@L������L��H�D$����L��I������A���L��I���H�D$H���H�HL�d1�H���I����M������H�SL�D$��L��H�PH�B�2H�C1��׿��H�S1�H��L��H�PH�BI�VH�C�F��1ɺ��L��1�裿��H�SM����L��H�PH�B�3H�C1��z���H�SH�PH�BH�CI�H������Z��(M�����L��1��>���H�SH��L��H�L$H�PH�BI�VH�AH�HH�K1����L�t$��L���31�M����H�SE1���L��H�PH�B�H�C1��ɾ��H�SM���L��H�PH�B�H�C1�蠾��H�S���A�L��H�PH�B�I�FL�p1�L�s�l���H�SH�|$H�PH�BI�GL�xL�{A���E��DI�VE1�A��WH��A��L��1����I�V1�H��L��O�d$���H��D�t$A��H�|$��A!�E���W1ɺ��L��1��ڽ��H�S1ɉ�L��H�PH�B�H�C1�跽��H�SH�PH�BH�C���f�I�Vf�HDŽ$�)�$�H���	.H�:H��$�H��$�H������(�GE1�E1��L����]H��$�H��tH�SH�BH�PH��$�H�CD�d$E���h*H�|$A��H����A!����f.�H��A��H�|$��A!NjD$������I�~����L��I���1�诼��H�SH�PH�BH�C���f.�I���I�vD�gd�̸��I�V1�H��L��A)����D�\$E����*M;���WHL��1��H�����H;��u�Hc�L�LMcĺ1��O�D��L������H�SH�|$A��H�PH�BH�C�����D�L$E1�1�L��H��L���H\H�|$A��H����A!����I���H�|$A��I�VH��M�fH�A0H�D$ ��A!�H��tH�H������:�V3I����p,f��D$`L��H��$�)�$�H��$�HDŽ$�)�$�HDŽ$�HDŽ$�H�A01�H��$�H�D$H��$��y��M�I��A������f�I�FH�8H������T�C&��U��%����L��H�L�1�萺��H�SH�PH�BH�CI�FE1�I�~ L�`��81ɉ�L��1��W���H�SL��H�PH�BH�C��	��L��I���1��&���H�SI�~ H�PH�BH�C�S,I�V1�H��L�����H��I�V E1�jA����L��舸��H�S1ɉ�L��H�PH�B� H�C1�A^A_豹��H�SH�PH�BH�C�D$����CL����
��L��I���1��t���H�SH�|$A��H�PH�BH�C�U��DL���ȼ��I��I�H������!� #L��誼��I��I�V1�H��L�����1ɺ��L��1�����H�SM��H�PH�B�3H�CI�H������ t�2��L��1��Ƹ��H�S1ɉ�L��H�PH�B�H�C1�裸��H�S1�H��L��H�PH�BI�VI�GL�xL�{�
��H�CH�|$A��I�D$L�`L�cD�d$E���Q���1ɉ�L��1��>���H�SH�PH�BH�C�)��f�I���f�H��$�HDŽ$�)�$�DŽ$�H�H0HDŽ$�H��$�H�L$0H�@0A��&��8M���M9���DL��1�f.�H�����H;��u�T$ A����D$����EHcD$ E1�H�\$(L�t$8E��I��L��H�DH��D�Ed�I��D��L��1�E)�A��Mc�O�D�#���H��$�H�PH�BH��$�D9���I��H�\$(L��E��L�t$8A����¨��E���E���VIHcD$ E1�H�\$L�t$(M��H�DH�l$8D��H���E�Fd�I��D��L��1�E)�A)��Mc�O�D�q���H��$�H�PH�BH��$�A9���M��A��H�\$L�t$(H�l$8A���C�:�‰L$���+��S6���v)�� �:I�A����L��H������'�LE�1��յ��H�SH�PH�BH��$�H�CH��tH�PH��$�H�BH��$�H�CH�L$0�T$1�L��D��$�L��$�A��H�U����-��L��I���1��\���H�SH�PH�BH�C�D$���F"H�|$A���1���I�VL��1�H������|$����$H��A��H�|$��A!�I�~��A����L��1��ٴ��H�SI�~H�PH�BH�C��
��L��I���1�觴��H�SH�PH�BH�C���f�I�V1�H��L������D�L$E����"M�F �1����L��I���S���H�SH�|$A��H�PH�BH�C�4��@I�V1�H��L�����I�~�D�T$E���y#I�vH��$�H��$�L���̬�����	I����L��D��$�Lc�$�A)�O�L	1�Mc�O�D讳��H�SH�|$A��H�PH�BH�C����H�|$D�D$A��H����A!�E���g��M�F����L��1��M���H�SH�PH�BH�C�8���f�H��$�L��$�HDŽ$�)�$�)�$�HDŽ$�H��$�L��$�A��7�f*A��8�8*M�F����L��1�趲��A���L��H��$�A��H�PH�B�H��$�1��|���H��$�H�PH�BH��$�I���H��$�H�RxD�bE���
H��$�H9���8H��t H�SH�BH��$�H�PH��$�H�CH��$�H��tH�SH�BH�PH��$�H�CE1�1ɺE1ɾ�L��误����NI����L��1�趱��H�SH�PH�BH�CD�L$E����H��A��H�|$��A!����I�F�L$f�DŽ$�)�$�)�$�H�D$��� I�VH�H������[��1�H��L��E1�赽��I�F H�PH�H������)����KH��$�H��$�L��A��E1�H��$�E��A��O�L	�D$ L�L$(�z\L�L$(I��H��$�H��tH�SH�BH�PH��$�H�CO�����L��1�胰��H�SH��E1�D�$�L����L��H�PO�L$H�B��D��$�H�Cj��H�SH�PH�BH�CXZH�|$��I�F 1�H��L��H�P蠼��H��E1�L��jH�T$(A���蝮��H�SH�PH�BH�C_AXD�L$E���33��$����1�|$ u*� 1ɉ�L��1�裯��H�SH�PH�BH�C��$�H��I�OL�LE1�j����L������H�SL��H�PH�B�H�C1�Y1�^���F���H�SH�PH�BH�CH�|$A���'�����L$����H��A��H�|$��A!����@H�|$�t$A��H����A!Dž�����I���I�vD�gd����A)�M;��t �T$L��f�H�����H;��u�T$LcL$Mcĺ��O�D�L��1�O�L	�q���H�SH�PH�BH�C�\���@E�Ef�H��$�HDŽ$�)�$�DŽ$�HDŽ$�H��$�E����
I���H�H��H�H�H��H��I�EH�xH� tH�xH����DA�E����I���H�H��H�H�H��H��I�EH�xH� tH�xH����DI�V1�H��L�����D�D$E����E�epI�~A�D$A�Ep�Mc̺��I��O�L	1��L������H�SH�|$A��H�PH�BH�C��I�F L��H�@H�D$�[���L��I���P���I�VH�D$ H�H������[�<1�H��L��A��1���1ɺ��L��1�莬��H�SH��E1�M����L��H�PH�BH�CI�F H�Pj����H�SH�PH�BH�CXZH�|$��I�V1�H��L��輸��I�F H��E1�A�L����H�Pj趪��H�SH�PH�BH�C_AXD�L$E����-I�F H��E1�M����L��H�P j�r���H�SL��H�PH�B�H�C1�Y1�^��蝫��H�SH�|$A��H�PH�BH�C�~���fDL����E�epI��A�D$A�EpI���H�@x����c���L��H�L�1��+���H�SI�~H�PH�BH�C��	��L��I���1����H�SH�PH�BH�CI���H�@x������D$H�|$A�Dž�������1ɉ�L��1�諪��H�SH�PH�BH�C閼��fDI�VH��1�L�������t$����I�~����L��I���1��Q���H�SH�|$A��H�PH�BH�C�2���f�H�|$A��H����A!NjD$������E�epI�~A�D$A�Ep�Mc̺��I��O�L	�L��1��ک��H�SH�PH�BH�C�Ż��DH��A��H�|$��A!NjD$�������M�N����A�L��1�N���y���H�SH�PH�BH�C�d���@H��A��H�|$��A!NjD$���A���M�NM���� �
1ɉ�L��1��!���H�SH�PH�BH�C����@I�~�����	L���o���Mcepf�L��I��H��$�L��)�$�A�D$H��$�HDŽ$�A�Ep)�$�HDŽ$�H��$�H��$��[H��$�H���A.H�SH�BH�PH��$�H��$�H�CH��tH�PH��$�H�BH��$�H�CH��A��H�|$��A!NjD$�������1ɉ�L��1�����H�SH�PH�BH�C����I���H�@x����NL���K������L��I��IcEpM���PL�d1�A�UpM��4蜧��H�SI�~H�PH�BH�C����L��I���	1��j���H�SM���L��H�PH�B�5H�C1��A���H�SH�PH�BI�GL�xL�{H�|$A��H����A!NjD$���
����1ɉ�L��1����H�SH�PH�BH�C���f�M�F �1����L��I���¦��H�SH�|$A��H�PH�B�T$H�C��������1ɉ�L��1�艦��H�SH�PH�BH�C�t���@�t$��@��I�~ I�VH��L����	����ڲ��M�v M���-I�H������t�I�V �L$H��L��諲��H��A��H�|$��A!�����M��I�T$1�H��L���{���M�d$ M��u�M�F�1����L��O�D�¥��H�SD�t$H�|$H�PA��H�BH�CE��������1ɉ�L��1�臥��H�SH�PH�BH�C�r���f�H�|$A���a���D���H�=H��1���1�1�D��L��1��/���H�SH�PH�BH�C����f.�A��D��1�A��L�����H�SD��L��H�PH�B�H�CH�L�1�輤��H�SA�H�PH�BH�C�ܲ���L��L$L�t$(H��H��L������I�6L�D$ L��1�1�H���f���H�SH�PH�BH��$�H�CH��tH�PH��$�H�BH��$�H�L$ H�|$A��H�AH�HH�K������)�S8�A���L��1����H�SH�PH�BH�C���D�L$`A��A��D�L$`�s���D�L$`��1ɉ�L��1�蟣��H�SH�PH�BH�C銵��H��$�f�HDŽ$�)�$�H�D$H��$�M������1����L�D$�1��L��1�D�L$P�-���H�SE1�D�L$PH�PH�BH�C���H��A��H�|$��A!����胯��I�V1�H��L���r���A���L���1��Ƣ��H�S1ɉ�L��H�PH�B�H�C1�裢��H�SH�PH�BH�C鎴������I�V1�H��L�������1ɉ�L��1��e���H�SH�PH�BH�C�P����1ɉ�L��1��=���H�SH�PH�BH�C�(���I�F L��H��H�H�H�TI�F H�x��
��L��I���1����H�SH�PH�BH�C�׳��E1���,I�V1�H��L���J���H��A��H�|$��A!�A�}�.&�0A���L��1�耡��H�SD�L$H�PH�BH�CE���b����1ɉ�L��1��O���H�SH�PH�BH�C�:���H��tH�SH�BH�PH��$�H�CH��$�H��tH�SH�BH�PH��$�H�CH����E1���jA��L��腟��H�SH�PH�BH�CAZA[�����L��1�諠��H�SH�PH�BH�C閲���M����L��1��}���H�SH�PH�BH�C�h���M�fM����L��L��H��H��$�L��$���KH��$�L��$�H��D��$�H��tH�CH�PH�BH��$�H�C�1�1�M��E���L���̝���.L���I���1��ӟ��H�S�|$H�|$H�PA��H�BH�C��������1ɉ�L��1�蚟��H�SH�PH�BH�C酱��1ɉ�
L��1��r���H�SI�~H�PH�BH�C��	��L��I���1��@���H�SH�PH�BH�C����1ɺ��L��1�����H�S1�H��L��H�PH�BI�VH�C臫��H��I�VE1�jA����L��腝��H�SH�PH�BH�CXZ���A�E���
+����#I���H��twH���H��tkH�z(��0�����0����#��9f.�H���H��t/H��H�z(��0�����0���~#H���H��u�H�H�H��H�L��H��I�EH�xH� tH�xH�1��H�M���H��I���H�(@��u
H�������)H�L���龭��A�}�5!H�y��$L��M������1�L��H��I��H�CI�D$L�`L�c�LI����(L��L�x�s������L��H�@H�SL�xH�P��h H�B�1H�CI���L�@1����H�S�(L��H�PH�BH�C����H�|$H�@H�SA���H�PL�`�@ ����H�B�T$H�C��������
1ɉ�L��1�莜��H�SH�PH�BH�C�y���H�y �VL��M����ߟ��L���(I��H�CI�D$L�`I���L�cH�PH�T$�^���H�T$1�H��H�@L��H�PH�S�H�P�h H�BI�VH�C胨��1�L��H���&K���L��I����1L�@ 1��ś��H�S�(L��H�PH�BH�C�ؘ���t$H�|$H�@H�SA���L�`�@ ����H�PH�BH�C���i����
1ɉ�L��1��V���H�SH�PH�BH�C�A���1ɺ1���L���.���H�SH�|$�L�D$ H�PH�B�2H�Ct�3��L��1����H�S1ɉ�L��H�PH�B�H�C1��Ӛ��H�S1�H��L��H�PH�BI�VH�C�B���1ɺ ��L��1�蟚��H�S���A�L��H�PH�B�"H�C1��s���H�SH��M��E1����L��H�PH�BH�CI�F H�P j��H�SM����L��H�PH�B�1H�C1�AZA[����H�SH�L$ ��L��H�PH�B� H�AH�H1�H�K1����H�S1ɉ�L��H�PH�B�I�GL�x1�L�{踙��H�SD�d$H�|$H�PA��H�BH�CE��������1ɉ�L��1��}���H�SH�PH�BH�C�h���L�����L��I���՜��1ɺ��H�D$(L��1��=���H�SH�|$M��H�PH�B�2H�Ct�3��L��1�����H�S1ɉ�L��H�PH�B�H�C1����H�S1�H��L��H�PH�BH�CI�F H�P�O����D$ ��H�M�4G�D$���m ��$���� �|$ u*� 1ɉ�L��1��}���H�SH�PH�BH�C��$�H��I�OL�LE1�j����L�����H�S1ɉ�L��H�PH�B�H�C1�AZA[����H�SL�D$(��L��H�PH�B�1H�C1���H�SH�PH�BI�D$L�`L�cD�d$E���g!�$L��M����1�賗��H�SH�|$(H�PH�BH�GH�xH�{�[��1ɉ�L��1��~���M�H��$�I��H�PA��H�BH��$��g���L��L�����uI���`H��`��'H�顳��A��D$ A��}�I�6�1�L��1�A�H�����H��$�H�PH�BH��$������1ɺ��L��1��Ö��H�SM���L��H�PH�B�H�C1�蚖��H�SM���H�PH�B�1H�C�.��I�6�1�L��1�A�H���Z���H�SH�PH�BH�C��I�6�1�L��1�A�H���'���H�SH�PH�BH�C���I�VE1�H��L��H��$�L��$�HDŽ$��T1L��$�M����'�3M�����L��1�躕��H�SH�PH�BH�C�~��I�V H��1�L���$���I���L��H�L$(�Џ��H���H�L$(A��L��M���I�vA�H��L�T$ ����L�T$ H���A��L��I�B0I���L�@0j�˓��H�SH�PH�BA[A^邸��I���H�H�H�L��H���I�6I�UH��H�zH� tH�zH��H�1��H�I���M���H��H�*@��u
H������t%L��1�铤��H�P1�H��L����������
1ɉ�L��1��M���H�SH�PH�BH��$�H�CH��tH�PH��$�H�BH��$�H�CH��$�H��tH�SH�BH�PH��$�H�C��$������n1ɺ��L��1��œ��H�S���I�����L��H�PH�B�H�C1�蘓��H�SH��Mc�M�E1����H�PI��L��H�B��H�Cj����H�SH�PH�BH�CAXM�D$AY��#��L��1��2���H�S1ɉ�L��H�PH�B�H�C1�����H�SH�PH�BH�C�o���1ɉ�L��1����H�SH�PH�BH�C����1ɉ�L��1�迒��H�SH�PH�BH�C�7��1ɉ�L��1�藒��H�SH�PH�BH�C�p���1ɉ�L��1��o���H�SH�PH�BH�C��I�vH��$�H��$�L����������&����L��D��$�Lc�$�A)�O�L	1�Mc�O�D����H�SH�PH�BH�C����1ɉ�L��1��ؑ��H�SH�PH�BH�C�+��1ɉ�L��1�谑��H�SH�PH�BH�C�2����1ɉ�L��1�舑��H�SH�PH�BH�C����1ɉ�L��1��`���H�SH�PH�BH�C�����
1ɉ�L��1��8���H�SH�PH�BH�C����Mcĺ5���O�DL��1�����H�SH�PH�BI�GL�xL�{��Mc�M����4O�L	��L��1��ǐ��H�S1ɉ�L��H�PH�B�H�C1�褐��H�SH�PH�BH�C�D��1ɉ�L��1��|���H�SH�PH�BH�C�_���1ɉ�L��1��T���H�SD�L$H�PH�BH�C餣���1ɉ�L��1��'���H�SH�PH�BH�C���H�=��H��H�鬢���1ɉ�L��1��ߏ��H�SH�PH�BH�C�t����1ɉ�L��1�跏��H�SH�PH�BH�C�x����1ɉ�L��1�菏��H�SH�PH�BH�C���I��鸭��H��$�H��$��U�H�C���I�V�L$H��L���ћ��H�|$A��H����A!��)���Lc�A����O�L	�L��1�����H�SH�PH�BH�C��H�H������[�}��I�F H���p��H�0H������(�]��H�x�R��H�pH�H������:�;��H�|$ �/��H�Ax�x�!��H�~�1�H��L��I��I�F H�@L�`I�V���E1�E1�1ɺ��L�������GM���I���1�L���"���H�S�|$H�PH�BH�C�����1ɉ�L��1���H�SH�PH�BH�C�ߟ���I�VH�L$(M��H��L���*H�C�Ϭ��L���0���H�D$�D$����I�~ L�D$��2t�3��L��1��x���H�SH�PH�BH�C�D$����I�VM��tH�CI�GL�xL�{1�H��L���ƙ��A���L���"1�����H�SL��H�PH�BH�C��
L���I���1����H�SH�|$H�PH�BH�GH�xH�{1ɺ1���L��蹌��H�SH�|$A��H�PH�BH�C隞��A�Cd����A�L��L�\$8�D$(1��q���H��$�L�\$8H�PH�BH��$�A��� �;I���E�Cd��L��LcL$ ��D+@1�Mc�O�L	O�D����H��$�L�\$8H�=H�PH�BH��$��uL�\$8H����L��jA�E1��H��j���H��$�H�PH�BH��$�^_L�\$8I��������HcT$ H�\$8E1�L�t$@H�LH�l$HD��M��H�L$ H�@Hc�I�����L�4�L��蓇���\$(L��)���D��L��I���1�����Lc�L�L$ D��H��$�O�D�L��H�PH�B�H��$�1��ߊ��H��$�H�PH�BH��$�I���9(�X���M��H�\$8A��L�t$@H�l$HL�\$ H��C�L?A�jHc�E1���H�L	��L���#���H��$�H�PH�BH��$�XZL�\$ A����'�D$�5��HcD$ E�Cd���E+���L��L�\$Mc�L�L1�O�DL�L$(���H��$�L�\$H�PH�BH��$�A�����$����D$A����¨����A���E����|$8���	E����E1�H�\$@L�t$HD��D�t$8H�l$8L��f.�D�EdL�L$(�1��D��L��E)�A)؃�Mc�O�D�?���H��$�H�PH�BH��$�A9�u�I��H�\$@L�t$HH�l$8Mcǹ���O�DL��1�L�\$(���1ɉ�L��H��$�H�PH�B�H��$�1��ˆ��H��$�L�\$(H�PH�BA���H��$����I�V1�L������I�V1�L��L���	������I�V1�L�����I�V1�L��L����������A���L��N���1��,���H�SH�PH�BH�C����I���
�GI�����������L���p���L��H�D$8�c���H�D$HH��$�H��tH�SH�BH�PH��$�H�C�D$(H��H�\$PL�t$XL��������1ɺI��H��$�L��I�D$L�`1�L��$��i���H��$��L$L��H�t$0H�PH�BI�WH��$��̓��L�D$8��L��1�1��!���H��$�I�oH�PH�BH��$�H���9H�uH��H������(�-D�t$(L�|$@�3fDH�{�H�CI��I��4��H�|$ L���H���H�3I�}H��H� ��H��H�1��H�3�H��1�L��1��]���H��$�H�PH�BH��$�H�H������:��H�t$1�H��L��谒��H�uA�L��1���&H�����H�3M��H��$�L��H��H�PH�B�2H��$�1��ȅ��H��$�H�m H�PH�BH��$�H����H�]H�3H��H������9t]��:�����E1��
���@H�{�H�3�L��H�CI���1�H���M���H��$�H�PH�BH��$�����L�{D��������A���zI�����t(A�������A���1���A������"���H�L��H�0�H������H�3�;�����/�G����#H��1ɺL��1�葄��H�t$1�L��H��$�H�PH�BH��H��$����H�u�1�A�
�&L��H���E���H�uM��L��H��$��H��H�PH�B�2H��$�1�����H��$��D$(H�PH�BH��$�M� M����I�I��H��I����D���$���H�|$H1ɺD��H��$�H�\$PL�t$XH�GH�x1�H��$�L��艃��H��$��L$L��H�t$H�PH�BL��H��$����L�D$8�D��1L��1��A���H��$��L$(H�PH�BH��$�����
H�CH��$�H��tH�PH�BH��$�H�CH��$�H��tH�PH�BH��$�H�|$8H�|$A��H�GH�xH�{黔��H��,����D�t$(L�|$@���A�����������L��H�|$ L��H���H�3����AGH�|$`�f��f.�{cA�������A���^���I������B����L���H��I9��0L���H��?H)�L��H��H	�H��H�D$(�~D$(�u��D$`�f/�vf/���I������E1����L���+���1ɉ�I��L��1�蕁��H�SL��H�PH�BH�C�H�����jI��A�
�%L��1��X���H�SM����L��H�PH�BH�CX1�Z�3�-���H�SH�PH�BH�C���A�}L��u%��
f�H���H��t+H�z(�1����&����
H���H��u�H�H�H��H�H��H��I�EH�xH� tH�xH�1��H�I���H��I���H�0臅��H�H����p���1ɺ
��L��1��@���H�S���A�	L��H�PH�B�0H�C1�����H�SH�|$A��H�PH�BH�C�D$������1ɉ�L��1�����H�SH�PH�BH�C�Ƒ��A���E����|$8E����HcD$ E1�L�t$@D�t$8H�\$(L��H�DH�l$HD��H�D$�D�CdL�L$�1��D��L��E)�A)��Mc�O�D�G��H��$�H�PH�BH��$�D9�u�I��L�t$@H�\$(H�l$HA���D|$8��D�|$����I�V H��$�L��$�L���*H����D$����L��H��L���鯸��I�VL�D$(L��H��L���H�C鶝��H��$�f�HDŽ$�)�$�H�D$H��$�M���߶��H�T$ 1�H��L��1�����<���1ɺ ��L��1��=~��H�S���A�L��H�PH�B�"H�C1��~��H�SH�PH�BH�C�����1���A�L����}��H�S1Ƀ|$ H�PH�B�H�C��A����L��1��}��H�S1ɉ�L��H�PH�B� H�C1��}��H�S1ɉ�L��H�PH�B�H�C1��\}��H�S1ɉ�L��H�PH�B�H�C1��9}��H�S���A�L��H�PH�B�#H�C1��
}��H�S1ɉ�L��H�PH�B�H�C1���|��H�S1�H�PH�B�H�C��L��1���|��H�SH��E1�D��$�L��H�PO�L	H�BH�Cj����D$ �#���L��H�M�G1��v|��H�SH�PH�BH�C���H�H�H��H�L��H��I�EH�xH� tH�xH��7��1�1ɉ�L��L�D$�|��H�SL�D$H�PH�B�5���I���E�Cd��L��LcL$ ��L�\$ D+@1�Mc�O�L	O�D�{��H��$�L�\$ H�PH�BH��$�H�H���]L�\$ H��E1�H��jA�����L��H���*I���H�@xD�XE���]1ɺ/��L��1��3{��H�S�(I���H�PH�BH�C�Bx��D�T$H�@H�S�L�`�@ ����H�PH�BH�CE���ی���
1ɉ�L��1���z��H�SH�PH�BH�C鳌��H�H�H��H�L��H��I�EH�xH� tH�xH������I�6�L��I���1�H���Kz��H�SH�PH�BH�C�6���I���H�@x�0����	Mc̺4M���Mɉ�L��1�I���y��H�SH�PH�BH�CH��$�H��tH�SH�BH�PH��$�H�CI���H�@x����~��M�5���M��L��1�I���y��H�SH�PH�BI�GL�xL�{�A���z�?��I�H������7�,��H��$�H��tH�KH�AH�HH��$�H�CH�B(��ML��]��A����L��1��y��1ɉ�L��H��$�H�PH�B�H��$�1���x��H��$�H�PH�BH��$����L���fDH���H��t+H�z(�k
����`
���$���H���H��u�H�H�H��H�H��H��I�EH�xH� tH�xH�����#M����L��1�� x��H�SH�PH�BH�C�e���A���L��1�L�\$8��w��H��$�L�\$8H�PH�BH��$��-���1���A�L���w��H�S1Ƀ|$ H�PH�B�H�C��A����L��1��nw��H�S1ɉ�L��H�PH�B� H�C1��Kw��H�S1ɉ�L��H�PH�B�H�C1��(w��H�S1ɉ�L��H�PH�B�H�C1��w��H�S���A�L��H�PH�B�#H�C1���v��H�S1ɉ�L��H�PH�B�H�C1��v��H�S1�H�PH�B�H�C��L��1��v��H�SH��E1�D��$�L��H�PO�L	H�BH�Cj����#M����L��1��Lv��H�SH�PH�BH�C�k����@�r���I�K���2���H;�$��X���H�FD�B�I��N���H��H9H��JI9�u����f��H,�L�|	��A����L��"1��u��H�S1ɉ�L��H�PH�B� H�C1��u��H�SH�PH�BH�C���H�D$ �uH��L���r��I�61ɺL��1�H���Xu��H�SI�6L��L�L$HL�D$ �H�PH��H�B�7H�C1��#u��H�SH�PH�BH�C��H��雫��L���~x��I����(I��H�CI�D$L�`L�c�	r��H�@H�S�H�@�h H�PH�BH�C����L�T$���A���L��A��1��t��H�SH�PH�BH�C�j����#M�D$��L��1��Ot��H�SH�PH�BH�C鯯���"A���L��1��t��H�SH�PH�BH�C��$���M�D$��A��Ʒ��H��L������#��I���`H��`���H�E��`H��`���H��L�������E1�I�V1�H��L���#���O�$�01�I�����L���us��H�SD�D$H�|$H�PA��H�BH�CE���M����1ɉ�L��1��:s��H�SH�PH�BH�C�%���H�H�H��H�L��H��I�EH�xH� tH�xH�����D$ �O����1ɉ�L��1���r��H�SH�PH�BH�C���1ɉ�L��1��r��H�SH�PH�BH�CM��tI�GL�xL�{I�V1�H��L���~��A���L���1��Or��H�S1ɉ�L��H�PH�B� H�C1��,r��H�SL��H�PH�BH�C����L��I���
1��q��H�SH�L$��L��H�PH�B� H�AH�H1�H�K1���q��H�SH�PH�BH�C���E1�鿺��H�z�S���H�JH�H������:�<���I���H�x0�*���H�@x�x����H�y�I��I�F H�@L�`A��uL��L����m��I�V1�H��L����}��I�F 1�H��L��H�@ H�P�}���|$��E1�E1�1ɺ��L����n���FM���I���L��1���p��H�SH�PH�BH�C�q���I�~ �X���H�|$ �L���H�Ax�x�>���H�z�I�ĨuH��L���#m���+1�M����L���jp��H�S�|$H�PH�BH�C�O����1ɉ�L��1��<p��H�SH�PH�BH�C�'����
1ɉ�L��1��p��H�SH�PH�BH�C����H��$�H�L$H�L��L�t$XH�\$PH�AI�6H�H1�H��$�1�H���o��H��$��|$H�PH�BH��$���I�6L�D$8��1H���7��A�L��1���ho��H�SH�PH�BH�C�+���I�$��`H��`���L��L�������H�=�L�\$ H���H��L�����uI���`H��`��H��e���(A�!��L��1���n��H�SH�PH�BH�C�r�I�V1�H��L���7{���01���A���L���n��H�SH�|$A�ǃ|$H�PH�BH�C�f����1ɉ�L��1��Sn��H�SH�PH�BH�C�>���L���q��I���[��1ɺ
��L��1��n��H�S���A��L��H�PH�B�0H�C1���m��H�SH�|$A�ǃ|$H�PH�BH�C�����1ɉ�L��1��m��H�SH�PH�BH�C����H��I������zPM�A��@I�������E1��<����H�=�L�\$8H��i�I������L��1��3m��H�SE1���L��H�PH�B��H�CIc�ARL�jI���k��H�SH�PH�BH�CA[A_���E1��9�E1����I�6�
1�L��1�H���l��H��$�H�PH�BH��$�����1�E1�L�t$ ��H��L���y��M�v A��M��tI�VD9�~�1�H��L����x����A9�}9E1�D)��,I�7�
1�L��1�A��H���5l��H�SH�PH�BH�CA9�|�L��H��L���RH��A��H�|$��A!��}��H�E��`H��`�����H��L�������H�=H��1��H�=1���H�=H��1��H�=1��H�=1���H�=H��1��H�=1��I�~�H�=H��1��1ɺ ��L��1��2k��H�S���A�L��H�PH�B�"H�C1��k��H�SH�PH�BH�C����H�=H��1��I�~�H�=H��1���AWAVAUM��ATI��UH��SH��H��H�2I��I��A��A�F�S��H�I��Hc�H�>����
M�����H�uI��H����L��1��;j��H�SH�PH�BH�CH���[]A\A]A^A_��I��I�VE1�L��H��L���8���M�GM���;H�u�3�1�L��H����i��H�SM�v H�PH�BH�CM��u��M���I���H�uA�H���F���DH���
1�1��~i��H�SH��E1�H�uA�H�PH�BH��H�CAU��%�L��1��<i��H�SH�PH�BH�CXZ���D����fDH��1ɺ
1��h��H�SH�PH�BH�CH�E H�x�H�uH��A�	I��AUH���u���DH��1ɺ
1��h��H�SH�}H�PH�BH�C�H�uH��A�I��AUH���)���f��
H��1�1��^h��H�SH�}H�PH�BH�C�H�uH��A�
I��AUH������f�H��1ɺ
1��h��H�SH�}H�PH�BH�C�H�uH��A�I��AUH�����f�H��1ɺ
1��g��H�SH�uA�!H�PH�BH�CH�EL�1�A��5��H��H��I	�AUO�L	�,���@H�y��H�UE1�L��H��L�����H�uM�GL���31�H���8g��H�SH�}H�PH�BH�C�H�U1�H��L����s��������fDA�A��#t!E1�A��guH�EE1�H�H������[A��I���H�U H��tKE1�L��H��L��D�L$����H�uM�GL��3�1�H���yf��H�SD�L$H�PH�BH�CE���+H�UE1�L��H��L�����H�uM�GL���31�H���&f��H�S1�H��L��H�PH�BH�UH�C�r��H�}�H�uH��A�I��AUH�����H���
1�1���e��H�SH�uE1�H��A�H�PH��H�BH�CAU�R���f�H��H���L�1��e��H�SH�PH�BH�CH�}���������fD�
����fD�����fDH�u1ɺL��1�H���e��H�SH�}H�PH�BH�C�H�uH��A�#I��AUH�����L��D�L$�Uh��D�L$I�G�����Bh��I�G�L���f�L���(h��I��I�G���ff.��AWI��AVAUI��ATUH��SH��XL�v���I�A���&H��D$��g��H��H����g��H�u H�=I��H���H�t$�H�D$�H�t$H���H���1�1�1��\H�D$�H�L$E1�H��H�T$A�H���`���S,H�t$ �����S,A�T$,���A�T$,I�VL�sH�SH�ZI�^I�UI9�HD�H��I�T$L�bM�eI��H�D$8I�GH�D$ H��H�\$(L�d$0H�D$@�H���H��H�z�D�\$H��XD��[]A\A]A^A_�f.�AWAVM��AUI��ATI��UH��SH��H��H�2H��H������:a��9��������ua�Uf��H�UL��I��I��H��L�����H�CH�UM��L��H��L��I�GL�xL�{�x������]tU��^����\��1�H��H��L���n��H�u�31�M��L��H���Jb��H�SH�uH�PH�BH�CH��M��1�L��1��b��H�SH�PH�BH�CH���[]A\A]A^A_���ke��H�UM��I��H������f�H��M����AVAUI��ATUH��SH�� L�"L��H����������g����n��H�EH�XH��������v!f.�H�[H���������w�H�C(I���"L��D��L�0A�FD�@1�E�FMc�O�D�a��H�SH�XH�PH�CH�PH��tH�BA�F���1�D��L��1���`��H�UH�PH�BH�EH�� �[]A\A]A^�Df�H��L��)$H�D$H�t$�m��H�T$H�BH�RH�BH��tH�PH�D$H��t�H�UH�BH�D$H�PH�D$H�E����A�n�D��L��A��1��`��H�SH�XH�PH�CH�PH��tH�B�1�D��L��1���_��H�SH�XH�PH�CH�PH�����H�B�����f�H��t+ATI��UH��SH��H�R ���H�SL��[H��]A\����f��ff.�@AWAVAUE��ATU��SH��H�H�t$(H��H��H�|$H����H�T$L�D$ �t$4��)��H�D$`�D$8A�1�H�D$fDH�D$L�|$E1�f�)D$`H�D$xD��E��M��H�D$pA���gfDH���GE��tH�E1�H������9A�ă�uI�~ tBH�t$H�|$D�����-k��A��M�v A�����M����I�V��u�E��u��H�|$ t�H�H������+u�L�RM��t�I�H������(u�I�rL����H�H�qH������(��	H���^���H�H������9�K���H�F<t#��;���H������/���H������ ���H�A H�H H��u�I�RL�T$X������D$<��H�H�<���L$<E1ۉ\$PL�T$XH�x�l$TD�ۉH�L$ L�t$@L�t$L��H�D�d$LL�d$D�l$HI��H�E L��L��H�PH�EH�HHcÃ�I�L�1��i��H�E H�h H��u�A��D�l$HL�t$@D�d$L�\$P�l$TD9\$<�b���H�
��	H�5H�=�D��M��E��A�Ń���E����E����L�|$H�|$�����H�Ĉ��[]A\A]A^A_�@D��M��E��M� A��M��t�I�G E1�M�H�D$E��uS���c������u�H�D$hH��t�H�L$(H�QH�BH�D$hH�PH�D$xH�A�n���f�L�|$E1�E��t�H�D$hH���Q���H�|$(H�WH�BH�D$hH�PH�D$xH�G�-���Ic��I��H�D$I9�t:�\$<H��DH�CL��H�p�H�[ I9�u�H��H�\$�\$<H����L�|$I�WH�H������9��I�G H��t}H�@H�H������9t9�h�I�WH�H������9uHI�G H��t?H�@H�H������9u,H�rL�����M� L��I�GH�p�M� M��u�L�|$A��uKI�����tBI��ƒ���tH�€�I�~I�t
��uL���H�D$L��H���H�x��L$8���C�����t$4H�|$�1��M���nZ��H�L$(�D$8H�QH�PH�BH�A���1�E����������k�������H�|$�A�1���Z��H�|$(H�WH�PH�BH�G�R���E����D$8���=McƋt$4H�|$1��O�D���Y��H�T$xH�PH�BH�T$hH�D$xH��tH�|$(H�GH�PH�T$hH�BH�D$xH�GM�����t$4H�|$�1�A���_Y��L�t$(�t$41�H�|$I�VH�PH�B� I�F1��3Y��I�VL��1�H�PH�BL��M��I�FL�t$L���e��H��A�E1�j����t$DL���W��I�WH�PH�BI�GAXAY�D$8����McƋt$4H�|$1��O�D��X��H�T$xH�PH�BH�D$x�D$8����H�D$h�D$8H�������H�|$(H�WH�BH�PH�D$xH�G�������M��L�t$�t$41���L���(X��L�|$(�t$41�L��I�WH�PH�B�I�G1��W��I�WH�PH�BI�G�5���M����|$8�V���L�t$�t$4�1�A��L���W��H�|$(1�H�WH��H�PH�BL��I��H�GL���d��H��E1�L��j�t$D���A��V��I�WH�PH�BI�GH�ZYH����H��H��A�E1�jH�|$ ��t$D��U��H�|$8H�WH�PH�BH�G^_�D$8�F����t$4H�|$�1�A����V��L�|$(M��L�t$�t$4�I�WL��H�PH�B�I�G1��V��I�WH��E1�A��H�PH�B��I�Gj����t$4H�|$�1�A���WV��L�|$(M��L�t$�t$4�I�WL��H�PH�B�I�G1��"V��I�WH��E1�A��L��H�PH�B��I�Gj�t$D�T��I�WH�PH�BI�GXZ�"����t$4H�|$�1�1��U��H�T$xH�PH�BH�D$x�#����t$4H�|$�1�A���U��H�|$(�t$41�H�WH�PH�B� H�GH�|$1��\U��H�|$(H�WH�PH�BH�T$hH�GH��tH�PH�T$hH�BH�D$xH�GH��A�N��E1�jHcɋt$DA�H�|$ H�L	�S��H�L$8H�QH�PH�BH�AAZA[�S����D$8����H�|$��1�A��T��H�L$(H�QH�PH�BH�A���H�=�H��8���H�
��	H�5H�=�ff.��AWf�I��AVAUATI��USH��H�t$ L�L$@L�D$)D$ H�D$0)D$@H�D$PH�t$8L�L$XH���gH��H�:I��H��H������K�{H�D$`1�H�D$H������G����F�6��(��L�D$E1ɹL��L��H����Lc�O�l-A���~:�I�7�1�H��1�A��H���\S��H�T$XH�PH�BH�D$XD9�u�H�D$HH��tI�WH�BH�PH�D$XI�GA�$tH�D$(H��tI�WH�BH�PH�D$8I�GH�ĈL��[]A\A]A^A_���H��I�V1�L��H��A��X_����I�6�M��H��1�I��H����A���R��I�WH�PH�BI�GA�$���I�FH�t$f�1�I�VH��L�L$L�(H�t$x)D$`H�D$pI����^��I�6A��L�L$H��H������F������M�H��I��A��H��1��R��H�T$xL�L$H�PH�BH�D$xH�D$hH��t$H�T$HL�HH�D$HH�D$xH�PH����H�B��A�$M�vA��(��M����I�>����fDA��_���DL�L$H��A����V���f�H�R1�H��L�L$��]��M�vA�$L�L$M��tHI�>�W���f�H�D$X�i���E1�E1��L��L��H����H�L�lI���s���A��h���H�D$HA�����H�=H��1��ff.��AWf�AVAUATUH��SH��hH���H�|$H�pHH�D$ �T$)D$ H�t$H�D$0H�D$8H���:H��L�d$@f�H�{�5f�H��)D$@)D$P�S��H��I���S��H����L�d$XI��L�k�GM���DI��I�MH��u�I�ML�8L��H��H�@H�SH�H�I�EH���M�uH�PHH�D$XH�I�FL�pL�t$X�E\��H�D$XI�GL�xH�D$HL�|$XH��tH�T$8H�BH�D$HH�PH�D$XH�D$8H�[H������H���H�t$H�D$(H�rHH��tH�t$H�VH�BH�D$(H�PH�D$8H�FH��h[]A\A]A^A_���D$��u��fDAWAVAUI��ATI��UH��S1�H��L�BL�r I����A��uI������tA��������H�2��L��1��H���N��H�UH�PH�BH�EM��u7A�]H���[]A\A]A^A_�1�L��H��L����Z��M�v ��M��t�M�~I�H������:u�I��I�7�L��I�GI���1�H���N��H�UH�PH�BH�E�L��H�T$�H�T$I��H�B�&���fDATI��UH��SH��H��H�L$���LcD$I�4$1��H��H��O�D�M��H�SH�PH�BH�CH���[]A\ÐH��SH��H��H��H�փ���UtOH�H��tH��1���Y��1�[Ð�H���1�A��5M��H�SH�PH�BH�C�[�fDH��H���L�1��L��H�SH�PH�BH�C1�[�DATI��UH��SH��H��H�H��H������Tt��Uty��2tdH��1��:Y��[�]A\�H��H�s���H�{�H�3�	L��I���1�H���mL��H�UH�PH�B[H�E�]A\�H�{�f.�H��1ɺ1�H���+L��H�UH�3L��H�PH��H�B�H�EH�L�1��K��H�UH�PH�BH�E�M������SH���D�C8E��t+L�S01�L�
D��I�4�HcH�<�A�H�>D9�r�[��AWE1�AVAUATI��UH��SH��hH����?H�@x�W�D�x��v�PE1҅�A��I�\$D�HE��E1�D�XH����
D�$M��E���@��tsH�[H�������u�E����E����E��t΋S���J�����u�H�S(H�RH����H��u��CS�C �@�C,��<��<�v���H�[A��DD4$H���m���I�ZM��H����E1�E1�E1��FDI�|$��O��H����O��H�}H� ��H��H�D��1��H�[H��t7�������t��o��u��{ �t�H�[A��A��H��u�Ic�Mc��L��I���Hc}p�H�D$�Hc}t�hH�Eh�M�l$H�ExM���&�D$,E1�L�%�D$�D$D�$H�l$L��A�E�������"���M�mM��u�Hct$,I��H�l$E��H��D$DL�}0�D�U8H�|$�E��]<H�EP�A��E1�����@�{*���H�C(H��P�����H����
���v
����H�H��A�H
��H��!�7H����qL�T$�JD�\$f�H��H����G��D�\$L�T$�Y���fD�C��1�	H�{(H�SH�f�H�qH��u�DH�vH��t
�����w�H���������H��w�DD�E�A�A��v	H�@H��u�H9��qD�FH9���A��1��H�F(H�H9������H�H���o����HcCH�=D�sA��D<��T���@D�{�C$�@����A�EI�](��W� H�=��Hc�H�>��@�,$H�Ic�H�=H�D�H�H�Nj<�H�Ή|$0�G�A9E �?
H�D$P�	A�1�H�D$8B�7�D$@��t{D��L�l$ I��I��D��H��A�ƍA�<�|fD��Ic�L�>��I�t�B�D5H�I�4�@���.H�|$�$C��Ic�A�����u�DL�l$ A��L��A�E;D$tHcT$,H�\$H��H�Ӄ��BD�2�L$,�t$D�$�D$9�L�Dt$0�t$D�����I�T�H����H�R ��I�L��A$��u:H�D$ �pH�D$H�xH� �fH�H�1�H�L$H�H�L$H�y(����AB�T5+D$@Hc�H�I���9f�I�|��H�|$HcЋOpH��HWh9���B�D5H�I��Ic�A����������A�<�����H�l$L�l$ H�}A�uH� ��H�H�1��L���H�|$�H���L�rI��� ��H��I��HDž��Ã�����E1����x�H���I�ʼn�f�H��I���I��M�A�T$H�SH��RA�T$H�SH��RA�T$H�sI�t$H��t@��uH��H�$��@��H�$H�S H���IH��H���rH��L�q �R(�Q$A�L$�΃��	t��uH����A�T$L���A��E;}�Ic�I��H� �6���H�[ �1���DI�|��B�T5Hc�H�I���K���B�D5I�|�H�I��H�L$H�H�L$HH��!����I�D��t$0�l$XH�T$8�t$\H��H�50>��H�D$PH�D$H�H�D$H�u8H�����t0H��у���t#H�р�H�xH�t���&f.�B�T5H�@Hc�I������I�T�B�D5H�H��I���w����I�T��[���fDI�D�H�|$HcP\�oH�RH��H�WxH���oHI�oP Q �oX0Y0�o`@a@�ohPiPH�P`H�Q`�Wt9P\�B�D5H�I�����f.�A�E(����3�$���I�E1�H��t�P(A�E �����$)х���;D$tHct$,H�\$H��H�4���FD�6�|$,A�vIc�Hc�A��Hc��$H�D�$�D$H�L��p����H��n�����$�c����H���h����;$�V;D$tHcL$,H�t$H��H�΃��AD�1�|$,A�NIc��$A��HcɉD$H�D�H�D������$�A(�e���D��uH�x�������f�H��A�D ����fDH���H�B���t6����A��~)H���H�BH�4��f�H��H�
HcIH�
H��H9�u�H���H��h[]A\A]A^A_�1�H9������DH�CH�PH���I���H�B�@���fDI�vM�v HDž����R���������M���H�=1��f��$A�E(���@�$����A��/��L�KM�����A�1����L��vH�vH�����>����w�~�|$��2�����H�~(H�|$H�?�
D�A��A��v	H�H��u�H9��[�1��|$2����2�FH�D$H�I�QH��tL�J�C�P΃��5H�K(H�H�@H����0�V���v�H�@H�����8�W���w�x1���H�@(H�H�����H�S(H�H��tcH������CW�C �~�fDH�S(H�RH��tbH���`��CU�C �M�DH�������CV�C �%�D�CR�C �
�D�CT�C ��DH�;��$I�](��)�A�E�$������/���A�����H�CH��u��H�@H�����8�W���w�P�Jԃ�v	��*���H�@(H�H�x���H ��f.�E1�1���fD�Ɖ�H�=1��fD�pXH�=1���L�N(D�F H����0�CH��L�T$0D�\$,L�L$ D�D$H�L$�D$�4:��D�D$L�L$ �0H���H�L$H�@�@/�D$H��D�B �BD�CL�J(�B$H�T$D�D$��9��H�T$D�D$H�@H�s�D�\$,�@H��L�T$0D�@H�@ H�@(H�rH�KH�JtH�VH�JH�sH��tH�VH�HH�PH�BH�PH�������!��C,����,$���H��$+J�R����)щ$��H���H�D$H����H�{����H�;�H�{I����$��B�T;�I�](Љ$A�E�t�H�;�I�]()$A�E�\�$H���+Q�$�H�H��J)$�:�H�;�I�]($A�E�"�L�T$�HD�\$���f�H�8��#���L�T$�ED�\$��H�H��%H��k�����H�5Hc�H�>��L�T$�DD�\$�y�L�T$�>D�\$�e�L�T$�=D�\$�Q�L�T$�BD�\$�=�L�T$�@D�\$�)�L�T$�CD�\$��L�T$�AD�\$��L�T$�?D�\$���L�T$�;D�\$���L�T$�9D�\$���L�T$�8D�\$��L�T$�:D�\$��L�T$�<D�\$��f�H��Q��H��q����L�T$�KD�\$�R�I��H�l$L����0?��A�M A�uH�EH�xH� tH�xA��H�1��L���H�|$��l�1�1�E1��D$D�2�L�T$�LD�\$���L�T$�ID�\$��H�=1��H�=1����f���AWf�AVAUATUSH��L�o H�l$P)D$PH�D$`H�l$hH����I��H�6H��H����t0��e��A�}��A�EH�Hc�H�>���I�t$L����1��I�D$ H���=H�8H�H H��H�L$����A�LH�D$�@A�����~A���H�D$�D$4H�@ H�D$ H��u�D$4H�D$ H�D$H�H(H�L$H�HH��t^A�u`I�UX�������~/H;
��H��1���H��H;J�t��9�u����A���H�D$�@A���A���H�D$L�x@M���\�E1���\$(L�d$8H��M��H�D$�
�A��L����:��H��H��I��H���H�D$hH��L��I�T$�I�GL�xL�|$h�C��M�d$ A�NM��u�L��L�d$8�\$(�L$8�i:��L�|$A��H��H�D$(H��L���H�T$(H�D$h��L$8H�BH�PA���H�T$hIc�H��H�T$(�H�T$(I�I�wI���H��H�L$(�� �L$8u	H�|$H�w H�ljL$(�E���L$(~"I���H�BH����H��H�"�H��H9�u�H�|$�A���H�D$L�p0M������1�I���� �A���H�D$(�H�L$A�u`I���H�Q8I�MXH�z�������~-H;9��	H��1��fDH��H;y�t��9�u����E1�E1ɉ\$8L��L�d$@M��E��E�ΉP�D$�Vf�H�H������\������]t1҃�^��A��H��L��A��H���D�0�M�m M��t I�EH�PH���u�M�m �D$A��M��u�H�D$I��E��\$8M���L�d$@H�@8I�uXE�H�HH��tGA�}`�������~.H;��H�V1���H��H;J�t��9�u����A�FA��� �D$I�?A�FA�FD)�H�H��I�F�� �H������1�I��4I�FL�L$(�7�H����H9��H��H��M���I9�M�@HDƃ�I��I�Hc�� u�I;W��I�G ��DI�T$H��L��1�A�T$A�E������I���1ɺ/L��ph1��3��H�T$hH�PH�BH�D$hI���H�8��H�Ĩ1�[]A\A]A^A_�@L���0-���L��H��L����?���z����H�I�E`1�L��H��L���?��A�E�����T���f�1�A�A�1���L����2��H�T$h1�L��A��H�PH�B�0H�D$h1��2��H�T$hH�PH�BH�D$hI���H�8����H��L������
���DL���P,���I���I�}H��H� �#H�A�)H�
H�1���q����A�E�����������qI�T$1�H��L���>���4���f�1�1�H��L���q>��H�I�E`����fD��9u;H�R�������H��H��H�T$H�F.��H�T$H�j���@��\���fDL��H��H���>��H�T$(�9���L�t$I�~8teA��� � ��I�V8A�u`I���I�MXH�z�������~+H99�
H��1��@H��H;y�t��9�u�����PH�D$H�H��t�H��L���j=��H�D$H�PH��t�H��L���L=��L�D$ M���nA�u`I�EX��~#H�8L9�tRH�H1��f�H��L;A�tF��9�u�A���H�
�FH�5H�=ADž������D1�fDA���A���A�����u
��A���H�|$t9H�T$H9�t H���@H��H;P�t��9�����A���@A���L����'��A�E�������A����>u"A���u�\$4��u�ȀA���fDI���L���	3��M���L��H�CI����2��H��I�F A�G,���A�G,�C,����C,I���H�@xD�XE���H�D$hI�GI�T$1�H��L�xL��L�|$h�;��H�D$hH�CH�XI���H�\$hH�@xD�PE����L�d$pM��H���I��L��H�D$pL�t$xH��$�HDŽ$�L��$��I���H��H�z�L��H�D$p
L�t$xH��$�HDŽ$�H��$��I���H��H�z�����H�|$�Y���A�u`I�EX���5���H�8����@I���H�@xD�HE��� I�T$1�H��L���~:��I���H�@xD�@E������I�4$A�	H���(�L��1��-��H�T$hH�PH�BH�D$h����DI���H�@x�x����I�T$H��1�L���:��I���H�@x�p�������I�4$A�!H���f.�I����H�������I�}(��(�L���A�1��,��H�T$hH�PH�B���f�I�}(��(�L���A�1��,��H�T$hH�PH�BH�D$h���@I�}(��(�L���A�1��{,��H�T$hH�PH�BH�D$h���@I�4$�(�1�A�L��H���>,��H�T$hH�PH�BH�D$h�=���1����1��o�1����1�����H�=1���H�=H��1�����H��H��t��AV�AUATUSH���8��S8H�s0H��H��H����C8��H��tIE1�H�-E��N�$��1��fDH��H��Xt.Hc�L;$�u�H��Dl�J��D9k8w�[]A\A]A^�fDL��H�=1��ff.�@��Hc�H�H���ff.�f���ATUSH�L����H�=H���f�H�;H���H���H��H���L9�u�[H��]A\���AWAVI��AUI��ATUH��SH��(L�D$L�L$@��H�=H�D$ �H���H��H����H�=I���H���H��H����	H�=H���H���I�Uf�HDŽ$�I��H��$�)�$�H�D$XH��$��� ��H����Hc�H9���A�V`H�׾�T$H�T$�H�T$M�MDŽ$�I��I�FXA�F`D�D$��A�Fd1�����L�d$M��H�\$L��H�l$(D���0fD@����H�Hc�$�H��H�<ÍB��$�9�}9L��I�E uI�U H�H�<�I9�u���$�H���B��$�9�|�L�d$H�\$H�l$(�H�=�H���I���H��H���{3����tA����H�=�H���I���H��H���D3����tA����
H�=�H���I���H��H���
3����tA����
H�=�H���I���H��H����2����tA����H�=�H���I���H��H���2����tA���@A���YA���oD������`L��H���H���OA���EI�<$�������S�� ��H����Hc�A��H9��&�O������A�����	�A�����(���
��� �؃����H��H���H�������H��Ѓ������ �H��H����H�D$H�D$�D$(H��H�H9���A���� ��L�|$�H�=I���D�8�H���I���H��H��H�y�)1��I���I�VX�A+H�H��H�AE����H�CE�o�H�l$0E1�H�D$H���o@H�T$J�<�J��@��t%@����H�������������|HAH���I���E�L$H�I�G�AM9��PI��E��E��H�E u�H�U ��H�
H���H���H���-����I���������I���!���M�������H�L��H�5H�81��D��u����H���������H��t,H������H�H��H�5H�81����uݾH�=�H���H��H���H��uA�����H�=�H���H��$�H��H���E/����t"I���H���=��$��PA��� L��E1��T��L�l$D�|$I�EH�D$(H��$�H�D$0H��$�H�D$8�f�H����H9���H�D$(H�<�H�
�H��H��$�H��� ��H�x��L�x H�I�/H���VH9��H;-� H;-�#H;-�&H;-�)H;-��A�
I�H��tI�����H��H�l$ I�WL��H����&��I�WH��L��H�D$��&��I�W H��L��H�D$�&��I�(H���H�D$H�t$0H���L��$�H��H��$H��$�H�D$H��$H��H��$�I���H��H�z�H�D$8H��$��D$H��$�I�EHcT$�� �T���I;U�*I�E �V�����H�=�H����H�=H��H����H�=H��H����H�=H��H����H�=H��H����H�=H��H���H�H�H9����A�����DA�����DA����DA�	���DA�����DH�L$@H��� �?H��H����H�=H�L$(H�D$�AH�|$��
E1��D$M��M���cf.�I������eI�.������rD����L$@�N����H��� �zH����Hcʼn�H9��?��A����D$xI�FH��uI�F L� H�=H��$�L�������Hc�$�H�
;�t'I�H� ��H���t$H�1���T$I���E1�H�D$0����H�|$0�0H��$������L$H��$���H�L$H�@�XH�PL�`(�H �@$H�BH��$�I��L;l$�	H�D$(N�4�A��t(A�������A����
L����D$�fDH�t$ L��L����"��H��$�H�PH�BH��$��fDI�n����Hct$H��H�����L�l$hM��I�čE�1�H�D$PH��$�H�D$`L�d$HH�]L��H���H�
I��H��$�Hc�$����Q��L$89��}H�
H���(�B�<w`H�
��Hc�H�>��L���I�H� �gH���t$H��H�1����f�H������‰D$@H��T$@H�5H�81��@I�U�$��H�D$@H�=H�H H�@H�L$(H�D$������E1�H�=H�-H���J�|��H���L��H��I��H���I��Xu�H��n���f.��|$(H��H�l$0D)�H�L$0D�L$���l���Hc���H�L$0D�L$H�AD9L$(�F����D$Mc�H�KH�l$(N�,�L��H�L$��M��D)�I�DI��H��H�D$J��I����H�D$N�<0H�
�H�L���I��� ��H����H��u[I��I�?A�4H���L�`�M�I�$H���H�HL�N�<1I��L9t$��H� �q���H�C �m���H����I�I��M�?�f�I�GH��uM� �v���DH����M� I�?I���ÐH�����H�CH�D$��f�I�|$�V�fDI��H�l$(����H�D$HL�$�A��uDL��L������7I����H�D$HH���H�t$ L��L�����H�L$HH��DH9l$P�yH���u���L��A�����H��$�H�L$HH����H�D$HL��L�$�A���H�A9Ep�H��$�@���.���A�Ep�H�
H��L���H�L$HH���^����E1�H��I��H�D$8�H�
�H��$�H�H�H�
�H��H��$��H�\$pH�\$ H�l$xD��M��H��$��ODH����H9��H��L�$�UH��L���Hc�H������L��L��H��H���H��$�H�Hc��� u�H;p��H�@ L�$��H�
H��L���H��H��$��H���H�L$HH���>���A����M��I�H�D$HL��� ���I���H�H�=�H���L��H����H�=H��$��H���L��H����	H�=H�D$p�H���L��H����H�=H�D$x�H���L��H����H�=H��$��H���L��H���H��$�H�D$8I��H���DŽ$�H�D$pH����H�D$x�D$pH����H��$�H�D$xH����I����I��� �XH����H��Hc�H9���D�b�H��$�Ic�H�<��H��$�H��H��$������D��I�wL��$�E1�H��H��$�L��H��$�I��L��I��L��$�I���L��H� uH�C L�4(L���M�t,H��I9�u�L��$�H��$�H��$�L��$�H�L$xL��$�L��D��$��T$pH�t$8����H�L$HH�����f�A�����DŽ$�I���E�����M�|$H�\$L��1�L�d$ L��H� uH�S H�L��L��H���_��Hc�$�I���H��F��$�D9�|�H�\$�K�M��H�\$ L��H�5�!��H���H���I���H�8�
I���H��([]A\A]A^A_þ ��I�����H�D$`H�\$pH�l$xH��$�H��$�H�L$HL��H�D$8H��H����|���M��L�d$HL�l$h����������{���L��L������H�L$HH���=���H�����$�����H���H�D$8���H��L�����H�D$x�$���H����D$p���HDŽ$����H�t$XL��������H�D$x�D$pH�D$8HDŽ$�DŽ$����L���I���Z���H�H�5H�81��I�W���������|$E1��P���H�H�5H�81��H���H��$�H��$��H�5H��H�H�81��H�L��H�5H�81��H���H���H���ff.���H�H�H�Px1�H��tlH�JH��tc��r���v��uU�Q`��~'H�AXH;8t?H����H���f�H��H9x�t&H9�u�H�����P���v���t�1������f���H�H�H�Px1�H��tTH�RH��tKH����J`��~=H�BXH;8t/H���Q�H���f.�H��H9x�tH9�u�1��fD��f���H�H�������������H�H����������H�
����0����H�
%��� ��GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignunreachableget_dyna_var_idx: -1#$!block in %liblock (%d levels) in %li<compiled>get_local_var_idx: %dto_symSymbol-- raw disasm-----------------------------%-20s %04d %-65s(%4d)
<L%03d><ic:%d><callinfo:%li, %d><ch><%p>unknown operand type: %c, <L%03d>
[none]adjust: [label: %d]
dump_disasm_list error: %ld
ISEQ is requiredinvalid %+li Fixnum: %+li%li: undefined labelNODE_CASE: unknown node (%s)NODE_WHEN: unknown node (%s)unsupported: putundefInvalid breakInvalid nextInvalid redoInvalid retryrescue in ensure in dupInvalid returnInvalid yieldunknown dvar (%li)<class:%li><module:%li>singleton classsingletonclassdefined guard in compile.cnd_type(node) == NODE_ARRAYi == lensetup_arg: unknown node: %s
error: set_sequenceinsn_sp_increase: unreachableunknown labeliseq_set_sequence: adjust bugunknown scopeiseq->param.rest_start != -1nopoptkeyword#arg_restlead_numpost_numpost_startrest_startblock_startkwbitsto_aryArrayambiguous_param0kwrestwrong exception entryrescueensureretrybreakredonextinvalid exception symbol: %sunknown instruction: %lioperand size mismatchmidflagorig_argcblockptrkw_argunknown operand: %cLNNNNIKIGVSNVVISNCOOKKSKHOCCCVFLgetlocalsetlocalgetspecialsetspecialgetinstancevariablesetinstancevariablegetclassvariablesetclassvariablegetconstantsetconstantgetglobalsetglobalputnilputselfputobjectputspecialobjectputiseqputstringconcatstringstostringtoregexpnewarrayduparrayexpandarrayconcatarraysplatarraynewhashnewrangepopdupnswapreputtopnsetnadjuststackdefinedcheckmatchcheckkeywordtracedefineclasssendopt_str_freezeopt_send_without_blockinvokesuperinvokeblockleavethrowjumpbranchifbranchunlessgetinlinecachesetinlinecacheonceopt_case_dispatchopt_plusopt_minusopt_multopt_divopt_modopt_eqopt_neqopt_ltopt_leopt_gtopt_geopt_ltltopt_arefopt_asetopt_aset_withopt_aref_withopt_lengthopt_sizeopt_empty_popt_succopt_notopt_regexpmatch1opt_regexpmatch2opt_call_c_functionbitbltanswergetlocal_OP__WC__0getlocal_OP__WC__1setlocal_OP__WC__0setlocal_OP__WC__1putobject_OP_INT2FIX_O_0_C_putobject_OP_INT2FIX_O_1_C_insn_set_specialized_instruction: unknown insn: %dNODE_CASE: unexpected node. must be NODE_WHEN, but %sduplicated when clause is ignoredNODE_CASE: must be NODE_ARRAY, but 0NODE_WHEN: must be NODE_ARRAY, but 0Can't escape from eval with breakCan't escape from eval with nextCan't escape from eval with redoNODE_RESBODY: unknown node (%s)NODE_DASGN(_CURR): unknown id (%li)%s: invalid node in NODE_OP_CDECLcan't make hash with this node: %siseq_compile_each: unknown node: %soperand size miss! (%d for %d)iseq_set_sequence: ic_index overflow: index: %d, size: %diseq_set_sequence: ci_index overflow: index: %d, size: %dtoo large iseq_catch_table - %diseq_set_arguments: NODE_ARGS is expected, but %scompile/should not be reached: %s:%drb_vm_insn_addr2insn: invalid insn address: %p:opt param is not an array: %+likeyword default has unsupported len %+li:keywords param is not an array: %+liunexpected object for instruction
compile_array_keyword_argiseq_set_argumentsH�%(�%�C��GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx���4sSU8L{B�B�B �D(�A0�W
(F LBBH(�eA�D�D t
FAD�r�2Ob�fZ^PH��B�B�B �D(�D0�DPcXH`U0A(A BBBFPHKrV`(taA�V ](B0K(A ]A8��B�B�A �A(�D0E
(A ABBKH��B�J�E �E(�D0�K8�F@y
8A0A(B BBBBD(�B�E�E �J(�D0�H8�GP{8A0A(B BBB4p�`�A�D �UABC���F ���@��B�I�E �D(�C0�F�B
0A(A BBBID��F�B�E �D(�A0�g8b@k8F0A(A BBB44�F�Q�D �D(�G0e(F ABB4l�F�E�A �D(�N0�(F ABB�KA�I<�}B�H�I �Q0e
 DABH] DAB=aI�T(0WA�D�D V
DADL\�B�B�I �B(�A0�A8�N�K
8A0A(B BBBD@��A�A�G B
DAHz
DAId
DAG4��A�J�G z
AABQ
FAH<(�R�B�B �H(�D0�}
(A BBBJ�h��B�B�B �E(�A0�A8�J�}
8A0A(B BBBB��Q�_�B���H�g�B���f�c�C���G�i�B���S�a�B���G�i�A���f�V�A���G�j�B��f�W�B��f�V�A�7�G�j�B�y�L�d�A���I�[�A���f�V�A���f�V�A���I�u�B�;	�s�V�A�e�H�h�B�R�N�j�C���f�V�A�e�Y�V�B�V�V�`�C��
�L�e�B���I�f�A�X�f�k�B���N�o�B���f�S�B�{�j�W�G�m�G�s�A��M�s�A���I�v�C�x
�a�E
�H�P�
�a�EY	�F�[�B��$B�B�B �E(�D0�D8�GP
8F0A(B BBBH�X_`lXAPQ
XK`Ns
XK`Rs
XK`Rs
XK`RA
XI`N�
XK`Ia
XX`G�
XK`IH�fB�E�B �E(�A0�D8�D�A8D0A(B BBBH	YB�B�E �E(�D0�D8�G@�
8F0A(B BBBH@P	�B�B�E �A(�D0�DP�
0F(A BBBF zRx�P�����(
(�	1G�D�D �T�D�B���	$B�B�B �E(�A0�C8�G��
8C0A(B BBBE��K�h�B�L�H�q�A�M�N�i�A�j
�a�E]�d�Z�A���N�s�B�L�
�B�I�B �B(�D0�A8�G�<
8D0A(B BBBDL�
�B�F�B �B(�A0�D8�D�x
8A0A(B BBBIHH*B�B�B �E(�D0�D8�FPt
8F0A(B BBBD,�_B�D�D �G0D FAB$��D�j
Bq
Gr8��B�D�D �m
FBA@
JBD(HE�BLD�B�E�B �B(�D0�D8�D��

8A0A(B BBBD$zRx��������,	L�
F�F�B �B(�A0�A8�G�~
8C0A(B BBBE< 
�Z�G�B �A(�A0�}
(A BBBG`
(t
`F�A�A �MDBL�
�F�B�E �E(�A0�D8�G�S
8A0A(B BBBA�
�n,@T	$+B%]y&��'��(+�M�b��3��s�3���@{�:%f�e�	X�%���0r���8�2K�hV��f�V�#�`��#{-0KG{s��������a-�U�p���������?����?)�W@�x�`�����������	��!�	>W
��	�YW
vU�`
�� �U���`K��-7�}F-amz0=�m���p����W

	
W$	W
D	b	`
�s	���	 ��	�	��	 ��	�
l
��)
lG
jc
p�r
j�
��
p���
����
	@�
 ���
��Y`��3и*J�_WP�fd ��x`�$����	P�	H� �1���D� �$&D�B��\���������


�1
Q�V
Q�t
���
0�
	8�
���
��
�ʸ1ʸW��{���_��_���������3��bH��H�����P���
	���#��EP_��������������P�#P�I��m	0}	(�	 �	�	�	�	����g�g�4��R��r����������0�0�A@�%&'($fkp!u3z%M�X��n�u�|������������������	���������1�N_
{}""	(8.o4b:@@1F�L�R�X�^pdjp�v8|�����-�`�����������N�����������������,���@� :f$X*�0@6�<�B�H�N�T�Z�`�f�l�rpx�~����������!�'�-�2�n�T����������������7�.CW

 !"#)*+h~����������*5EZl�����������49G\it~����������(5CT^u���������(?LZi��H��������
 -<��R��`��`t�P����������,:���Jp�n[��l�} ��0�.annobin_compile.c.annobin_compile.c_end.annobin_compile.c.hot.annobin_compile.c_end.hot.annobin_compile.c.unlikely.annobin_compile.c_end.unlikely.annobin_compile.c.startup.annobin_compile.c_end.startup.annobin_compile.c.exit.annobin_compile.c_end.exit.annobin_iseq_calc_param_size.start.annobin_iseq_calc_param_size.endiseq_calc_param_size.annobin_get_dyna_var_idx.start.annobin_get_dyna_var_idx.endget_dyna_var_idx.annobin_iseq_set_local_table.start.annobin_iseq_set_local_table.endiseq_set_local_table.annobin_iseq_set_exception_local_table.start.annobin_iseq_set_exception_local_table.endiseq_set_exception_local_tablerb_intern_id_cache.16423.annobin_make_name_for_block.start.annobin_make_name_for_block.endmake_name_for_block.annobin_cdhash_set_label_i.start.annobin_cdhash_set_label_i.endcdhash_set_label_i.annobin_opobj_inspect.start.annobin_opobj_inspect.endopobj_inspect.annobin_method_for_self.start.annobin_method_for_self.endmethod_for_self.annobin_get_local_var_idx.isra.23.start.annobin_get_local_var_idx.isra.23.endget_local_var_idx.isra.23.annobin_iseq_add_mark_object.part.26.start.annobin_iseq_add_mark_object.part.26.endiseq_add_mark_object.part.26.annobin_new_child_iseq.start.annobin_new_child_iseq.endnew_child_iseq.annobin_compile_data_alloc.isra.27.start.annobin_compile_data_alloc.isra.27.endcompile_data_alloc.isra.27.annobin_new_callinfo.start.annobin_new_callinfo.endnew_callinfo.annobin_new_insn_send.start.annobin_new_insn_send.endnew_insn_send.annobin_insn_set_specialized_instruction.start.annobin_insn_set_specialized_instruction.endinsn_set_specialized_instructioninsn_len_info.annobin_new_insn_body.start.annobin_new_insn_body.endnew_insn_body.annobin_build_postexe_iseq.start.annobin_build_postexe_iseq.endbuild_postexe_iseq.annobin_for_self_aref.start.annobin_for_self_aref.end.annobin_for_self_aset.start.annobin_for_self_aset.endvars.17863.annobin_new_label_body.isra.28.start.annobin_new_label_body.isra.28.endnew_label_body.isra.28.annobin_register_label.start.annobin_register_label.endregister_label.annobin_cdhash_hash.start.annobin_cdhash_hash.endcdhash_hash.annobin_cdhash_cmp.start.annobin_cdhash_cmp.endcdhash_cmp.annobin_rb_obj_written.isra.33.start.annobin_rb_obj_written.isra.33.endrb_obj_written.isra.33.annobin_dump_disasm_list.start.annobin_dump_disasm_list.enddump_disasm_listinsn_name_infoinsn_operand_info.annobin_iseq_build_load_iseq.start.annobin_iseq_build_load_iseq.endiseq_build_load_iseq.annobin_int_param.start.annobin_int_param.endint_param.annobin_validate_label.start.annobin_validate_label.endvalidate_label.annobin_iseq_compile_each.start.annobin_iseq_compile_each.endiseq_compile_eachsetup_argsrb_intern_id_cache.17478add_ensure_iseqcdhash_typecompile_branch_conditioncompile_cpath.isra.36compile_dstr_fragmentscompile_dstrdefined_exprcompile_massign_lhscompile_array_compile_colon2rb_intern_id_cache.17382rb_intern_id_cache.17389compile_massign_opt_lhs.annobin_defined_expr0.start.annobin_defined_expr0.enddefined_expr0.annobin_defined_expr.start.annobin_defined_expr.end.annobin_compile_branch_condition.start.annobin_compile_branch_condition.end.annobin_compile_massign_lhs.start.annobin_compile_massign_lhs.endcompile_massign_lhs.cold.41.annobin_compile_massign_opt_lhs.start.annobin_compile_massign_opt_lhs.end.annobin_compile_array_.start.annobin_compile_array_.end__PRETTY_FUNCTION__.16772rb_intern_id_cache.16827.annobin_setup_args.start.annobin_setup_args.end.annobin_add_ensure_iseq.start.annobin_add_ensure_iseq.end.annobin_compile_dstr_fragments.start.annobin_compile_dstr_fragments.end.annobin_compile_dstr.start.annobin_compile_dstr.end.annobin_compile_cpath.isra.36.start.annobin_compile_cpath.isra.36.end.annobin_compile_colon2.start.annobin_compile_colon2.end.annobin_rb_iseq_translate_threaded_code.start.annobin_rb_iseq_translate_threaded_code.end.annobin_iseq_setup.part.39.start.annobin_iseq_setup.part.39.endiseq_setup.part.39iseq_setup.part.39.cold.42.annobin_rb_iseq_compile_node.start.annobin_rb_iseq_compile_node.end__PRETTY_FUNCTION__.16500.annobin_rb_iseq_original_iseq.start.annobin_rb_iseq_original_iseq.end.annobin_rb_insns_name.start.annobin_rb_insns_name.end.annobin_rb_insns_name_array.start.annobin_rb_insns_name_array.end.annobin_rb_iseq_build_from_ary.start.annobin_rb_iseq_build_from_ary.endsymRescue.17620symEnsure.17621symRetry.17622symBreak.17623symRedo.17624symNext.17625insn_table.17692.annobin_rb_dvar_defined.start.annobin_rb_dvar_defined.end.annobin_rb_local_defined.start.annobin_rb_local_defined.end.annobin_rb_parse_in_eval.start.annobin_rb_parse_in_eval.end.annobin_rb_parse_in_main.start.annobin_rb_parse_in_main.end.annobin_rb_method_for_self_aref.start.annobin_rb_method_for_self_aref.end.annobin_rb_method_for_self_aset.start.annobin_rb_method_for_self_aset.end.LC0.LC1.LC2.LC4.LC3.LC5.LC6.LC7.LC8.LC9.LC10.LC12.LC13.LC11.LC19.LC16.LC18.LC14.LC15.LC25.LC22.LC24.LC23.LC20.LC17.LC21.LC26.LC27.LC28.LC29.LC59.LC49.LC47.LC46.LC31.LC58.LC57.LC55.LC54.LC61.LC41.LC51.LC60.LC34.LC32.LC33.LC43.LC44.LC40.LC45.LC42.LC52.LC48.LC36.LC53.LC39.LC37.LC35.LC56.LC38.LC50.LC62.LC64.LC66.LC65.LC67.LC68.LC71.LC75.LC72.LC73.LC70.LC69.LC74.LC78.LC80.LC79.LC77.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC92.LC91.LC96.LC97.LC98.LC93.LC94.LC100.LC101.LC102.LC103.LC104.LC105.LC108.LC107.LC114.LC109.LC110.LC111.LC112.LC113.LC99.LC115.LC106.LC95.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_bugruby_xmalloc2memcpyrb_intern2rb_sprintfrb_hash_asetrb_ary_duprb_inspectrb_str_new_cstrruby_current_threadrb_vm_get_ruby_level_next_cfprb_vm_get_sourcelinerb_sym2strrb_node_newnoderb_iseq_new_with_optrb_str_new_staticrb_iseq_add_mark_objectrb_memerrorrb_fix2intrb_fstringrb_convert_typest_lookupst_insertrb_hashrb_str_hashrb_eqlrb_str_hash_cmprb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalputsrb_str_concatrb_string_value_cstr__printf_chkrb_str_catrb_id2strrb_str_appenddladdrrb_str_cat_cstrrb_str_catfrb_eSyntaxErrorrb_raiserb_cISeqrb_cTrueClassrb_iseq_loadrb_cFixnumrb_cFloatrb_cFalseClassrb_cNilClassrb_cSymbolrb_hash_arefrb_eTypeErrorrb_compile_errorrb_id2symrb_ary_new_from_valuesrb_ary_pushrb_hash_newrb_hash_tbl_rawruby_node_namerb_cObjectrb_is_const_idrb_eStandardErrorrb_hash_lookuprb_compile_warningrb_cNumericrb_obj_is_kind_ofmodfrb_dbl2bigrb_iseq_defined_stringruby_xmalloc__assert_failrb_ary_tmp_newrb_freeze_singleton_classrb_iseq_translate_threaded_coderb_vm_get_insns_address_tableruby_xcallocruby_xrealloc2ruby_xfreerb_sym2idrb_hash_foreachrb_fatalrb_iseq_compile_noderb_ary_clearrb_str_tmp_newrb_iseq_original_iseqrb_insns_namerb_insns_name_arrayrb_ary_newrb_obj_freezerb_iseq_build_from_aryst_init_numtablerb_num2uintrb_ary_entryrb_internrb_num2intrb_global_entryst_foreachst_free_tablerb_num2longrb_string_value_ptrrb_out_of_intrb_dvar_definedrb_local_definedrb_parse_in_evalrb_parse_in_mainrb_method_for_self_arefrb_method_for_self_aset�����������P�����������������P���������Q���������R���������T�Q�����������������S��������T|��������������������U��������V��������BX��������u*Y���������Z���������[���������\���������]���������^�����������������_��������h���������oP���������^���������Q���������a���������b���������b��������Fb|�����������P��������	c��������v
b���������������������d���������e��������f��������Rg���������i��������)
k��������Q
l��������g
b��������w
����������
m���������
���
����������
T���������
�Dn��������qo�������������������p���������b|�����������m�������������������q��������	r��������s��������1t��������Ou��������o���������xq�������������������v�������������������v���������n���������b�����������������v��������5���������Ap��������X���������`q��������s���������xm�������������������p�������������������v���������r�������������������v���������*w�������������������x�����������������*w��������x��������O*y���������*y���������*w�������������������x���������*y��������*z��������*y��������@{��������[*|��������k*}��������{*~���������*y���������*���������*�������������������b��������F*���������S���������]x���������*Y���������r����������������������������7k��������dl���������bLp���������(���������-_��������5c���������<���������������������_���������n���������c����������������������������� ���������� _��������� n��������� c��������	"���������"���������Y"���������l"����������#*Y��������$��������� $����������'����������'����������'���������(���������P(���������c(���������+c���������+����������+����������,����������,����������,���������-*Y��������1-���������W-���������^-���������H/r��������O/���������Y/T��������a/c���������/���������c0r��������j0���������t0T��������|0c���������0���������y2����������2���������M4r��������U4c���������4����������5r���������5c��������6���������:]���������:]���������:c���������<c���������<]���������B���������uEc���������Ec���������Fc��������K���������BM*����������M���������ON���������S����������Sr���������Y*Y��������Z���������6Z*Y��������jZ����������Z����������\*����������\���������r]����������]����������^���������Y`����������b����������b����������bP��������c*����������e����������gb���������h����������i*Y���������i����������i����������pk��������drc���������r*Y���������r���������#s���������*s����������w����������wS���������w<dyc���������z����������{K|L�|����������c��������3����������`����������g����������m�c���������*�������������������f�U��������~���������������������	��������������������_�����������*Y��������N����������U�����������b����������*Y�������������������D�D0�*Y��������d����������s����������j�*Y���������������������k��������0�l����������*Y������������������ȕ���������y�c��������G�c����������l���������������������S��������ǘDטk��������y����������~�S����������L��l�����������������������������P�������� ����������'�P��������,����������3����������=�P��������D����������K�P��������R����������Y�P��������^����������e����������o�P��������v����������}�P����������r���������������������P�����������������������������P��������
�r������������������P��������X�b�����������������������G����������������������������������������������������C�*���������ޢ���������������������_��������ǣn��������ϣc���������]������������������������������?�����������b,����������������������������������������,����������ʬ���������ެ���������%����������=������������4P����������U�S��������\�4h�b,t���������{�����������������������������������������P����������c���������c��������˺*���������Q����������ܻ*���������	�����������b|����������������������Q���������Q��������'����������9�Q��������]�b�վ���������O�b|��bD�����b|�������������������V�b����������������������������������������������������"�����������b��������N���������������������Z������������	���������������������b��������w�
��������~�P��������������������P��������������������b���������b��������<�b��������v�b����������b�S���������Z����������b����������l������������
����������P��������������������P��������K�b�o�������������������������������G�Q����������R����������������������������������������������������������������Q��������������������������������������������������l�bLx�����������������������������9����������L����������������������������������b���������b��������E�b��������������������P�������������������������������P��������,�Q��������F�R��������^�b|j����������������������P�����������������������������������(�X��������0�c��������;����������y����������������������S������������������������������������������S������������������������������������������S�������������������O�Q��������"���������'�S��������/����������Y���������^�S��������f����������������������S�������������������������������S������������������������������S������������������U����������f���������u�S��������}��������������������c����������j����������t�d��������|������������*���������������������x����������*�������������������x��������%� ��������*�S��������2����������=����������W�!��������\�S��������d������������"���������#��������
�d��������:�,V�$c�p�}�����{�������������������I����������\������������$����������S���������������������%����������,��S���������������������&����������$��S��������������������'���������
�S������������������!�(��������(�-�S��������5����������A�)��������H�M�S��������U����������\�c�,����������������������e����������b|��*���������������������b��������3����������:�b|f��|�b���W����������+���������������������*w����������,����������x�����������������6����������@���������G���V����������^����������p�f��������}�����������Q��������4�"��������@�#��������H�d��������~������������b��������������������b������������������#����������0�d��������C����������V����������]����������t�#��������{�"����������d����������V����������U��������$����������+����������8�d��������H����������P������������-����������S��������������������������������.����������S��������������������������������/����������S�������������������������������0���������S������������������(����������4�1��������A�S��������I����������T���������������������������������Q������������������������������������������`��������7�b��������A����������g����������{������������b�������������������*w��������"�2��������,�x��������:����������R�*���������Y�3��������c�x��������k�W���������������������4����������*w����������x����������*�����������5����������x�������������������������������������������*Y��������w�*Y����������*Y���������*Y���������T���������T��������)W��������1W���������`��������ih���������j��������h�������������������������������L���������� ����$,�P�X3���3�3���3���%D�L%p%x��%��������0�8Vd�lV�V�#�V�#�#�{$#,{P{X��{���������DL�p�x��������?�?0?8�d?l�������������	$�,�	P�	XW
��	�W
�W
�U�W
�U	U	�D	UL	�p	�x	-�	��	-�	-�	m
-
m0
m8
�d
ml
��
��
W
�
��
W
�
W
�
$W
,PX�������l���lljDlLjpjx��j�����D�
�
D�0
D�8
��d
D�l
���
���
��
���
��
��
�$�,�P�XQ����Q��Q�����Q�������D��L�p�xʸ���ʸ�ʸ���ʸ��0��8_�d��l_��_�����_����������$��,��P��XH�����H��H�����H��������D��L��p��x������������������0��8P�d��lP��P�����P��������g�$��,g�Pg�X���g�������������������D��L�p�x0����0��0��@�0�@� � � � �`��,�H $T(,\0�48<"@D*H.L|PbTtaXx-\\,`�(dt$hx$l|$p�*t�*x�"|d�@�$��� �E��`�d�`?��K�T�T��S��Z��Z�S��]��b��V�l[�O�O��M��L�����XP�\P��L��,��b��J�Z<Z�Y|Y�at^�`�K P_$�^(�U,�U0�U4<U8XF<F@�FD�<H8<L�:P`;T�cX�c\�c`�9d�ch9l|8p8t�cx�c|�c��6�|5��4��3��2��1��0�l�(`��]��c��J�K��H��H�4F��E��E�HE�@�?�D>�d�d�d�d��=��C��C�DH��������������B������� ��$��(��,Ģ0b�4,�80�<4�@H�DL�H �L~�P��T��X��\��`(�d,�h@�l��p�t<�x��|���������������ž�ƞ�ʞ�Ξ�Ҟ�֞�ڞ�ޞ������������������������
������������"��&��h��D�2�6�:�>�B����ģ ��$V�(Z�,^�0b�4f�8j�<n�@r�D<�H��LD�P��TL�X��\T�`��d\�h�l�p��tl�x�|t��x��|����������������R�� �����g������4������������,��0�����8�����@��@�����L��L��x����������h�l�p�p�t���� �$��(��,��0��4��8��<��@��D��H��L��P��T��X��\��`��d�h�l�p�t�x�|������������������������������ ������������t��P�����p��<�����D��������������������������������������������� ��$��(�,�0�4�8�<�@�D�H �L$�P(�T��X0�\��`8�d<�h@�lD�pH�tL�xP�|T��X��\��`��d��h��l��p��t��x��|����������������������������������������������������������������������������������� ��$��(�,�0�4�8�<�@�D�H �L$�P(�T,�X0�\4�`8�d<�h@�lD�pH�tL�xP�|T�����\�����������l�����t��x�����x��|��������x�����������������������n��1��V��1������������������
������!���p0 �(�0�8�@�H�P�X�`�h�p�x������������������������������������� �(�0�8�@�H�P�X�`�h�p�x������������������������������������� �(�0�8�@�H�P�X�`�h�p�x��������������������������������
,@ Q(b0n8z@�H�P�X�`�h�p�x���������������'�0�-�4�9�>�D�INZbm z(�0�8�@�H�P�X�`�h�p�x�������+�4�>�G�O�W�^�f�m�t�{������ �(�0�8�@�H�P�X` h'p.xA�T�g�z�� 8�P@���0����`L0d�x����,�t@����8�	p`
�`��0p4
``
� ��,plp ��P�	��T	 ��	��	 ��	`��
���
 �L��`���,�HP���
���$
�d
��x
���
P��
��p���0�D �X0�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rela.data.rel.ro.local.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@-6T-7l-8�-9�-:'�@�"@ȃ�;--�3�`=�8@��p-
Sb�]@��0-
|�
��
��@ �0-������@P�0-������@��0-2d�2.@ � )@���*-| );@)� 6@X��-N�.[0�..�/�/S/'/d/r/�/�/�/� / �@/h�@@-+�=p).O	g�H�debug.o/        1690381920  1000  135   100644  13952     `
ELF>�+@@,+

!"#$��I����	tB��u�H�=L����€���tR��H�H��H�81���	H�=L����€���u�H�H�H��H���f���1�9�|�DSH��ѾL�H�H�;�H�;��[�ff.����H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H��H�L$�H�D$H�D$ H�D$H��D$H�8�D$0�H����fD��ATUSH��H��9�|
H��H��[]A\ÐH��H���L�H�D$H���u;L�%H��1�H�I�<$�I�<$�H��H��[]A\�DH�|$�I���f���H��H��1��fD��ATUSH��9�|H��[]A\�f�H��H���L�%H��H�I���1�I�<$�I�<$�H��[]A\���ATUSH��9�|H��[]A\�f�H�)I��H��H�����I��L��I��H�I��H�H�81��H��[]A\�f����ff.���1�H�5����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realigngc_stresscore%*sDBG> %s: %s
DBG> %s: %li
DBG> %s: %s (%u)
unexpected debug option: %.*s
��������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx��0DQ�rL�K��@h�F�A�A �G0H
 DABBK
 DABF�4�`F�A�A �K
ABJ|AB4�gF�A�A �K
ABJCAB0D '<!Uo"��#��$��&�1�X�}������):I:l������B2!"#$ e
joty~�!�0�����	

%&'��)>�DV]��o~����� �@`���g�! 7GZjy�.annobin_debug.c.annobin_debug.c_end.annobin_debug.c.hot.annobin_debug.c_end.hot.annobin_debug.c.unlikely.annobin_debug.c_end.unlikely.annobin_debug.c.startup.annobin_debug.c_end.startup.annobin_debug.c.exit.annobin_debug.c_end.exit.annobin_set_debug_option.start.annobin_set_debug_option.end.annobin_ruby_debug_print_indent.start.annobin_ruby_debug_print_indent.end.annobin_ruby_debug_printf.start.annobin_ruby_debug_printf.end.annobin_ruby_debug_print_value.start.annobin_ruby_debug_print_value.end.annobin_ruby_debug_print_v.start.annobin_ruby_debug_print_v.end.annobin_ruby_debug_print_id.start.annobin_ruby_debug_print_id.end.annobin_ruby_debug_print_node.start.annobin_ruby_debug_print_node.end.annobin_ruby_debug_breakpoint.start.annobin_ruby_debug_breakpoint.end.annobin_ruby_set_debug_option.start.annobin_ruby_set_debug_option.end.LC1.LC2.LC0.LC3.LC4.LC5.LC6.LC7.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_stderr__fprintf_chkruby_initial_gc_stress_ptrruby_enable_coredumpruby_debug_print_indentfflushruby_debug_printf__vfprintf_chkruby_debug_print_valuerb_inspectrb_string_value_cstrruby_debug_print_vruby_debug_print_idrb_id2strruby_debug_print_noderuby_node_nameruby_debug_breakpointruby_set_debug_optionruby_each_wordsRUBY_ENCODING_MASKRUBY_NODE_LMASKRUBY_FL_USER19ruby_dummy_gdb_enums(��������3*M��������:)��������X*��������n*O���������*P���������*M���������+���������,���������N���������R��������f*M��������~T���������V���������+���������*M���������-���������N���������R��������W��������*+��������gZ��������n*M��������x.���������N���������R���������\���������*M���������/���������N��������IN��������6U��������._�������� '���$,�P�X��������������D�Lpx:��:�:��:�0�8d�l������2$,2 # $
 %
 & 4�P�l�� �@��4H .symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@)0T)1l)2�)3�)4'�2"@�!)-�3�=�48@�$�)
S(	b(	�]@8(0)
|�
��
��@h(0)������@�(0)������@�(0)2xB2�)�10�.�&�&|&S&'&:&H&[&m&|&�( �HX�@�(�)'�`	*L	��)�iseq.o/         1690381920  1000  135   100644  114776    `
ELF>��@@/.

"$!% &'��H�G H�@���H�G H�@���H�G H�@ ���H�G H�@���H�G H�@(�L�OP�<H��t\H��t^A�AI�QH9�tBI�Q�s�2@�
H9�t*H��H9�rH��L��H9�w�K�T�1�H��u�L�ʋB�1��DL����ff.���Hc�H��H��H�t6��H���ff.���S�H����H��H�[H���fDH��t;UH��SH��H�XH��tf�H��H��H��u�H��H��[]�f��ff.�@��H���kUSH��H��H����?H�0H��t
�H�C0H�{PH��t
�H�CPH�{XH��t
�H�CXH�{hH��t
�H�ChH�SxH��tB�Ct����1�fDHc�H�@H��H�|�H��t	�H�Sx��9kt�H����H���H��t�Hǃ�H���H��t�Hǃ�H���H��t0H�xH��t�H���H�@H���Hǃ�H����i���H��H��t�HǃH��H��[]����H���H���H�CxH���3����>���ff.���H����SH��H�@H�������H�{ H�������H�{H������\H�{H������+H�{H�������H���H�������H���H�������H�{HH�����umH���H�����uEH���H��t2H�{H������XH�;H������8H�{H������[�D�H���H��u���D�H���H�����t��ѐ�H�{HH������e�������H���H������5�����D�H���H�����������D�H�{H�������������H�{H��������������H�{H������n�������H�{ H������=��������[�f�����fD����fDUSH��H��H���H�/Hǃ����H�����uH���[]�H��H�=tH�5H��H�ٺ�H����
H�=�H��ǐUH��SH���H��u
H��H��[]�H��H���H�݅�u�H��H��[]���SH����H��[�DAT1�I��H�=UH��S�H���H��L��H��H���H��[]A\�������u61�������B�B��t�1��D�&�����f������D��H����H�����HcW`D�G8�G<I��H�I���H���H��t�0����������FH�H‹����H�H�4�H���H��t
�+PHc�H�t� HcOtHcWpH�IH��H��H��H���H�H��t#H�RXH��tfD�JH�H�DH��u�H��H��tL��fD��PH�=1��ff.�U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�AWI��AVAUATUSH���H�D$p�H�D$(�H�D$�H�D$P�H�D$H�H�D$h�H�=H�D$�BH�-L�%H���H�=�f.�I�<$I���H��H���H�E�H9�u�H�=H���#�H�=H�H���'�H�=H�H���+�H�=H�H���/�H�=H�H���3�H�=H�H���7�H�=H�H���;�H�=H�H���?�H�=H�H��t*�H�A�?�
A�H�Hc�H�>��H�=�
�H��H��H�=��H��H����H�=��H��H����H�=��H��H����H�=��H��H����H�=��H��H����H�=��H��H����H�=��H��H����H�=��H��H����H�H�D$x�A�O`1�L�l$(H��������?��@�*f.�H�=H�����H��L���IcG`H��H9���I�GXL�$�M��t�L���H���Ic`H��H)�H�t?H9�v��H���H�H�D$x�Y���H�H�D$x�H���H�H�D$x�7���H�H�D$x�&���H�H�D$x����H�H�D$x����H�H�D$x��H�H�D$x���f.�H�=�	�H��H���A�������t9Ic��H�=H�\H���!�H�|$H��H���A����tvIc��H�=H�\H���D�H�|$H��H���A����t9Ic��H�=H�\H�����H�|$H��H���A����t9Ic��H�=H�\H�����H�|$H��H���A����@t9Ic��H�=H�\H�����H�|$H��H���A�����S� t=I���H�=HcXH�\H����H�|$H��H���A�������L���I��A�G8M��I��I9���L�d$ L�|$`M�eH�
I�]Ic�Lc<�L���H�
J�4�H��H�D$�A�G����A�O�K�T�Mc�H�H�L$0H�
H+T$ E1�J��H��H�T$XH�L$8H�L$8B�41�V����H�
��Hc�H�>��H��u*H�����t"H�xu���������uH���H���H�;H���
������H�|$H�t$XH3����H�|$H���f.�H��L9t$0�2H�I��B���D$@��H�L9��1���1�H�=1��H�3H�|$H�t6��H�D$`H�3H�|$H+phH��H�t6��H�;�H�|$H����q���L�#�H�5bL��H��E1�H���H�\$@D��L�l$L��$�L�d$X�IH����H9��{D�CH���Mc�L���H���L��Hc�L����L��H��H���H�EHc�� u�H�E�H�H�x�H�|$H������H�@H�;H���
H�t?H�|$����H�+A��I��H�}�E�D$@H����	H�=H���T	�L��L��H���D�mH�=O�l-H���	�L��L��A�H���H�}H��t���I��H�=H���;	�L��L��H���H�EH���;	Hcl$@H�=H�l-H�����L��H��H���H�|$L�������L���L��H������I9���������f.�H�=H���&�H�|$�H�������E1�H��I����P��~/H�@Ic�A��H�<��H��H���I���D9h�D;(�|1�L��$�H��fDH�RIc�H�<��L��H��$��I���I��Hc�H�RH�4�H��4tL���L��H��A�����I���D9*�H��HcXH�=H�\H�����H�|$H��H���H�=H���?�H�|$H��H���A������A���D�eIc��H��E��~;L�l$H�,�E1�@I���L��J�4 I����H��H���L9�u�H�=H�����H�|$H��H���A������H�=��H��H����H�=��H��H�����H�=�
�H��H����H�=��H��H����H�=�
�H��H����H�=��H��H�����H�t$H�|$PI���H�D$`H�L$ �@8H��H9��~���L�|$`H�D$PH��$�I���H���������1�L�5�I��M���I��H��M�A�D$����
��Ic�L�>��H�=��H��H����H�=��H��H��I���H�=��H��H����H�=��H��H��\���H�|$H��H�\$@L��$�����H�H����H���H��H���I�D$H���H�x �A�H��H���H��L�d$H��H��I�L��A�u�'�H��H���A�uL����H��H���A�u L����H��H���A�u$H��H�t6�H�|$HH���I���HcH9��_����1�E1�1�I��H��$�H�D$�y�H����H9���H��H�T$H�|$��L�$����u{A�G<L9�vI�GPJ��9(t{L��L���I�<$�� t?H����Hc�H9����H��H��$�H��� �z���H;X}JH�@ �fDI�|$�f�H��$�L����p����pL��I��H�t6��l���H��$�H��$�H�|$H��$��Ic��H�H�\H����H���H�|$hH��H���Ic_dH�H�\H���fH���H�|$hH��H���Ic_H�H�\H���H���H�l$hH��H��H����(H�=�H�\$pH��H���H�߾�H�߾�H�߾�H��H���I�w H���I�wH���I�wH���I�w(H���H�t$xH���H�t$(H���H�t$H���H�t$HH���L��H���H�ĨH��[]A\A]A^A_�H�|$������H�H��������H�=�H��t���H�H���d����H�=�H��G���H�H���7����H�=�H�����H�H���
����H�=�H����H�H�������H�=�H�����H������H�=��H��H�����H�=��H��H�����I���o���H�=�	�H��H����H�=��H��H����Hc8E1��H��$�H�E�)L$@��~AD��H��$�M��H��$�A��Ic�H��A��H�t��H�ED9 �H��$�M��H�H����H���H��$�L��H����3����	H�=�H������
H�=�H��}����H�=�H��/�����e�H�=�H������H�=�H��E���H������H�=1��H�=1�����USH��H�G H�P H��tIH�HH�iH� tH�iH�ZH� tH�Z�H��H��H��H��[H�=1�]���H��H�=H��[1�]�@��S�H���H���H��tAH�C H�@H��t&�tH���[��H�����t�����u޸[��H���H��t�H����f.���USH����=H�=H�H��H�Ճ�H�����H��H��H����=H�=H�H�Ճ�H���{�H��H��H����=H�=H�H�Ճ�H���(�H��H��H����=H�=H�H�Ճ�H�����H��H��H����=H�=H�H�Ճ�H�����H��H��H����=H�=H�H�Ճ�H���/�H��H��H����=H�=H�H�Ճ�H�����H��H��H����=H�=H�H�Ճ�H�����H��H��H���Hc-H�=H�l-H��t>�H��H��H���H��H��[]ÐH�=��H��H��2���H�=��H��H��H�=��H��H��W���H�=�
�H��H�����H�=��H��H����H�=��H��H��^���H�=��H��H�����H�=��H��H����H�=��H��H��e�����SH�_ H�{ t��H��[�
�H�H�5H�81��D��UH��SH��H��@��u'H�����tH�u�����t0��u�H��H��H���H��H���H��1�[]�@�H����fDH���nH���MH����USH��@���sH�VH�H��H��H9�xfo)fo%)g��G H�=H���9�H��H���H���_H��u�H�=H�����H��H���H���ZH��u�CH�=H���n�H��H���H���H��u�CH�=H���x�H��H���H���.H��u�CH�=H���"�H��H���H����H��u�CH�=H�����H��H���H����H��u�CH�=H���V�H��H���H���\H��u�CH�=H�����H��H���H����H��u�CH�=H�����H��H���H��tH�Ǩ�I��C H��[]�f.�f��G ))G�Dfo
)fo)W��G ��@�����������@���k���H�H��`����H�G$@�H��H9�u������D�C�
���@�C���@�C���@�C���@�C�^���@�C����@�C����@H�=��H��H����H�=��H��H��h���H�=��H��H����H�=��H��H�����H�=��H��H�����H�=�
�H��H����H�=��H��H��4���H�=��H��H��r���H�=��H��H���������fDH�H�����H�H��r���H�H�5H�81��f���S�H��H��0�H��H������D$ fo$foL$�H��))
H��0[�AWAVAUI��ATI��I��USH��H���/H����H����t/M���FH��uH���H��[]A\A]A^A_�f.�1�1�1��V�L���I��H����uH�������H���H�@H���M��t�I�D$ H����fDH�1�1ɿVL�8H�H�0�H���I��H����uIH�����tAH��H��H�T$���u-H�T$H���`H��`uI���`H��`tL��H���DH���I�wpH�@H�@H��uhH���M���<���H��[]A\A]A^A_ÐL�n L���M���L��L���A��u
I������	I���H������fD1�1ҿV�L���I��H�@H�@L�x A��u
I�������L���L���A���A���I������4���L��L������!���I���`H��`����I���`H��`����L��L������H��L���������I���`H��`�����I���`H��`���L��L�������DL��L�����uI���`H��`tPI�D$ ����L��H���������I���`H��`����I���`H��`��L��L������I���`H��`t�L��L����@AWAVM��AUI��ATI��L��UH��SH��H��(HLJ��D$`����L���H��I���H��I������H���I��H�CA��I��L�D$�WL�kL�c A��u
I������TL�cH���L�s(H9�tL�` L���L�cA����Hǃ����H�C@��H���H��L���L���I��I�E�uH������P���H���I�E`H�BX�L���I��H���L�`A��u
I������MH�H�PXH�JH�H�T$h�@l����H�PxH�H�CHH��������H��(�[]A\A]A^A_��H�������H��H��H�T$�H�T$L�D$���YH�D$H���`H��`��f�M���.L��H���L������]L�kA���,���L��L�����uI���`H��`��L�������@I������4���L��L������!���I�E��`H��`����I�$��`H��`�����L��L������fDL��I���H���H�kI��I��I��A����H��H��H�D$����H��H��L�D$H�T$�H�T$L�D$H�D$�����������H������S���H��H���L���H��H�CH�uH�������H��� ���H�CH�����L�|$�n���fDL��L�����uI�E��`H��`��H������@L��L�����uI���`H��`��L���L�cL��L������s���I�E��`H��`�b���I�$��`H��`�Q���L��L����A���H���f�I�������H��L�����uI���`H��`�)L������DH�|$H�k����H����������H��L����������I���`H��`�����H�E��`H��`����L��H���L����u����I�E��`H��`�O���L��L����?����H��L�����uI�$��`H��`��H�kH�)����I�$��`H��`�_���L��L����O����I�$��`H��`�f���L��L����V����I�$��`H��`����L��L�������H�E��`H��`�/���H��H��L�D$�L�D$����H�E��`H��`�<���H��L����,���@��AUATI��USH��H�_@H�����tH��L��H��[]A\A]�DH����L���H��H�E@�uIH�����tAH��L�����u*I�E��`H��`uH���`H��`tH��L���fDH�]@@H�C�q�����AWM��AVI��AUI��ATUSH��(H�H�|$L�d$hH�8H�t$L�L$����M��M��L��H�h H��L��H���H�H��LD�AT�D$hPL�L$ H�t$(���XZH��H�t$�H������H��(H��[]A\A]A^A_�ff.���H��H�PAQM��A��H���ff.���H��H�M��A�Pj�H���ff.���AUATI��UH���SH��H�=H��H�H�H�@xH�@L����H�
H��H��QM��L��A�jH���H��[]A\A]���AUATI��U���SH��HH�D$H���L�D$H��L��H���1��H�\$H�<$�H��H�$�H�<$H�5I���H����H���H��L��H���H��H�\$H���H�t$H���}�H�4$����H�=L�$$I���SL��L��jH��E1�A�H���H��X[]A\A]�f.���AWAVAUI��ATUSH��H���H�H�T$XH�8�A��H�
H��H��I���1�H��H����H�
H�H����H�����v�H�����Q�H�����,�H���H�
�H�H����H��H�D$ �H�
�H�H����H��H�D$(�H�
�H�H����H��H�D$0�I��H��tH�
H��H���I�ƾH���H�$��HH�߾	�H�
�H�H���H�߾
H��H��$��H�
�H�H���H�߾H�D$8�H�
�H�H���H�߾H�D$@�H�
�H�H���H�߾
H�D$H�H�
�H�H���I�_ L�%H�D$PL���H���H��$�M���H�H�D$H����H�H�D$`H����H�H�D$hH���`H�H�D$pH���#H�H�D$xH����H�H��$�H����H�H���vH�
H���6H��$�H�L$H��H�T$�H�T$H�L$L9���H;D$tzH;D$`��H;D$h��H;D$p��H;D$x��H;�$���H9���A�H9�t2H��$��H�5H��H�H�81��@A�H�t$XI���H��LD���UL��H��ATL�D$M��H�t$8H�T$@�h�XZH��L�L$PL�D$HH�L$@H�T$8H�t$ �H���}��H���L��[]A\A]A^A_���
H�=H�T$�H�T$H��H����fD�H�=�H��H��j����H�=�H��$�H��5����H�=�H�D$xH����fD�H�=�H�D$pH����fD�H�=�H�D$hH��~���fD�H�=�H�D$`H��A���fD�H�=�H�D$H�����fD�H�=�I��H�����H������H�������H������H����}���E1������A�����DA����DA����DA����DA����DA��s���D��UH��AWAVAUATSH��xH�H������H�}�H��x���H���H�H������H��H������H�CxL�CxL������H������H���H�����H�=�H�E�H�BL������H������HDž�4H�x1��H�H�HH�`���H���������������H���������.�H��������`����H������H������H��H��p������H������H��h�����uH�����t�������H���������`���H������H������H��h����H��`���H���lH������H������H��h���H����H�@H����L���H�p ��p���L������jH��x���H��`����ZH������YH�U�H������H���H�qxH�e�[A\A]A^A_]�f������fD��H��0H�������PH�@H�������H�E�H������H���H������H�FxH�H�H���H�xH�X����
H�=���p���L������E1�H��H��x���jH��h���H��`����������`���H������H��h����H��`������H�H�H���ff.�f���UH��S���H��8H�D$H�D$H�D$ H�D$(�H�D$(H���H�L$PH�H�D$(P1�L�L$(L�D$ �H�t$ XZH��t8H�L$ H��uH�D$ �L�L$(H�T$E1�H�|$�H��8[]�
H�=�H��H�D$�D��H��A�E1���fD��I��A�H�Ѻ�fD��H�G H���H����f���H�G H�����:t�fDH�B�ff.���H��tH������ff.���ATH�Hc�USH��Hc�H�� H����A�<��H���Hc�H�>��DH���H�����I��I���GH�{�<�H�߃����������H��I��I���fDH��H���ZH�|$@��fDH��H�=1��H��H�� H��[]A\���H�;H��H�����sH�=1��H��H���H�CH��t�0H�=1��H��H���H�CH��t)H�|$H�oH�p H�=1��H��H����C�����H�=�H��H���H�=H��1��H���&���f.�H��H������EH�|$H���7�H�����f�H����H�|$HH�k ����H���H�|$H�����H�{�H���H�������H�=�H������H+_h1�H�=H��H���H���[����Mc�H�=1�I�K�4�H���4����H���H��M��u H���`H��uH�H��	DH�SH�H9���H�|$H����H�|$HH�������fD�	H�=�H������H���H������؃�����H���'���s���H�H��h���@H�D$@H�H��t1��H��H���H9�u�HcGdH�WX�UH)�H�<����H�������H���H�|$H�H�C�w���fDH�H������H�=1���H�|�H�����fDH�H����f��I�ċC��������[��/� ���@��������uv�H�=�L��H���H��H�������@�H�=�H��������H�=H��1��H��H��������H�=�L��H����i����H�=�L��H����C�@����H�=�L��H����C�����H�=�L��H����C���H�H��J����H�=�L��H����C����H�=�L��H����C����
H�=�L��H����C�U����
H�=�L��H����C�)���H�H������I��H��A��H���H��M���3���������I��H��A����ff.�@��AWM��AVAUATUH��SH��H��8H��1�H�|$(1�Lc�H�D$H�B��H�L$�D$H�N�4��H��H�5I��H�J��L��1�E1��A�1Ʉ�tPH�DD��I��A��H��H�L�H�AWPD�D$H�t$ H�|$�ZL��YH���Ic�M�A�8��L�\$H��L���M���A��1�H��tH�s�L���7���E��t>D9�t9I�$�� ��H�����F)�L��E��H�
1�H�5�I��H�|$(ulI�|$I�$ uU��D$H��8[]A\A]A^A_�D�H�5L��H�L$ L�D$�L�D$H�L$ A������I�|$뤐L��H�5�H�|$(L������f.�I�D$H��F�(���1��(���f.���AWAVAUATUSH��XH�_ dH�%(H��$H1�H�{ �1�1��H����I����C8�H��H�5�D$4�H����d��H��H���H�}�� ��L�mI��G���H�5H���H������H�5H���H���H����D�E����E1�L�-Mc�I��I�A�wA� E�O$E�G�F�A�O��
�IcD�L�>��f.�H�f�H��H�51�WH���I�^AXH���rH���A��D90�w����JH�5H���H�CXH�D$H�������A������ tH���D�Z�����A��t
H����rD�������@t���D���A��������H������Sd1�D���ASVH�5ARWH��AU��K`H��0���0H�D$PE1�L�d$8L�=H�D$(H��$PH�D$ H��$@H�D$H�D$@H�D$�p@I��A��I��M����L��H����|$@��H�E�� ��H����I)�M��~L��D��H�5H��1��A��D9s`�|H�L$Ic�1�H�<�蹼��H�|$(�f�I��1�)D$@�H�H�|$ �)�$@�H��������tD9�����D9���f�L���@tD9��H�=IE�L���t���D9���H�5D9�IN�M���tD9��L�
ME�D9�WH�
VIN�L�D$ �H�|$H�1��XZH�5�SdH��1�D)��L�eA�� �y���H�EL�`M���}����H�5H����|$@�t���H�T$H�5H��1��H�E�� �^���H�E�\���DL�d$8�H�5H���H��E1��D�|$4I��M��t%�L��M��H��L��H���H�I�M9�r�I�$1�Hc�� t6H����H9�}4L����H���
���H��H���I�$Hc�� u�I�D$H9�|�H��$HdH3%(H���4H��X[]A\A]A^A_�H����I��H��H��HH�}L)�H�E tH�}L�=��"���DH����@H����@H����@H����@H��|���@D����%���@����H��H����y���D��H�|$�)�H���H�H��H�1���������$���H�=1��H�H�5H�81���f���H������H��t
H��H�����H���fD����i�cH���Hc�H�>��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��H��P��1�H�=�ff.�@��AWAVI��AUATUH��SH��H�H�8艰��M�f H�X I��I�$L��H�{H��H��H�I��$H)�H)΁�H�����H�L���H���t'M9�$���H��udH��L��[]A\A]A^A_�f�L���A��u�I�����t�L��L�����u�I�E��`H��`u�I���`H��`t�L��L����D1�1�H��V�L���I��H����u:H�����t2H��L�����u#I���`H��`uI���`H��`tL��L���I��$�L���L�xM�~A��uSI�����tJL��L�����u+I���`H��`uI���`H��`tL��L����I��$�L����H�PL�` I�VM��tM�f A��uI��������L���H���@�������H������w���H��L������d���I�$��`H��`�S���H�E��`H��`�B���H��L����2���fDH�������@L��L������m���I���`H��`�]���I�$��`H��`�L���L��L����<���ff.����AWAVAUATUSH��H��(Hc���t$�I��H�H�D$H���L�5M��� �|$���E1�������D�l$���A9��	D)�IcՃ�H�,�H�DH��H�D$�L��L��H���H9l$��L����I���L��H��I���H�CXH�<(�H��t�H�CXH�<(�L��H�����H�CXH�<��L��H���I��L��L��A������D9��'���H�|$��H���H��Ic�H��I���H�CXH�<��H��t�����tXH�=H������I���L��H��H���Hc��H�CXH�<��H���"H��L���Hc������t$�����9�����H�,�L�tN�<��f�L��L��H���L9�tlH�|$��I���L��H��I���H�CXH�<(�H��t�H�CXH�<(�L��H���I����9��0�������H����H����L�5M����1��!L��L����H���9h��L����I���L��Lc�H��I���H���H�@J�<��H��t�H���H�@J�<��L��H����f.����� tcH�=H���U��I���L��H��H���H���HcPH�CXH�<��H����H��L�������@tXH�=H������I���L��H��H���Hc��H�CXH�<��H���1H��L���H��(L��[]A\A]A^A_�@��B�����H�CXJ�<��H��H��A���H��L������D9�����L����I���L��Mc�H��H���H�CXJ�<���H��t����H�,�L�|J��H�D$�+f�L��H���L��L���H9l$�����L����I���L��H��I���H�CXH�<(��H��t�H�CXH�<(�H���f��H�=�I��H�H����P���D���1�L�=M���~;(|'���DL��L����H���9(�����L����I���L��Lc�H��I���H���H�@J�<��H��t�H���H�@J�<��L��H�����H�=�L�5H�D$H�M������H�=�I��H����H�=��H��H���H���HcPH�CXH�<��H��H���H����DH�=��H��H����Hc��H�CXH�<��H��H���H�����f��H�=�I��H�H����[���f�Hc��H�CXH�<��H��H���H�����f�H�=��H��H��B�������1���
wRATH�US��H��H�,JH���}t'L�%I�$H��HH����H��H�H��tH��[]A\���H����u<H�����t4H��у���t'H�р�H�xH�t��uH��H�D$�H�D$H�H��H�D$�H�D$H��[]A\�f����I�$H��H�Y������AWAVI��AUATI��UL��SH��(H�H�T$D�|$pH�8L�$����L��L�h H��I�$I�}L��I�EI��$H��H)�I��H)΁����H�H�|$`�I���I�E �uH�������H�|$h�I���I�E�uH������O�|?I�E@A�}8�M�}(I����A�U8I�E0H��t0H��H��H��H��H�f.�H�OH��L�p�H9�u�L���A�}<��u|I���H��tHcH�xH��H���A������t4���Hc��A���I���H�ǍVH�4$Hc�H���L��1����H��(H��[]A\A]A^A_Ð��A�U<H�t$I�EPH��H����\����H��H��H�D$H�L$�������H�L$H�T$H���`H��`�����H���`H��`�����H��H������f�H��H��H�D$H�L$����?���H�L$H�T$H���`H��`�%���H���`H��`����H��H�������f���AWL�=AVE1�AUI��ATUS1�H��HH�o H�T$ H���H�|$<H�|$(I�ĸ9]8v��I��H��(t#Hc�A�9]8w�H��HD��[]A\A]A^A_�DD�SO��L�T$I�	L�L$��tÉ�H�L$A�����T$<M��tAH���L���H�T$ H�t$(��A�ՋT$<H�L$9�t��L�T$L�L$	�H�U0J��I�	���I����a�����UH��SH���H��H�5d���H��H���H��H��[]�ff.�@��UH��H��SH��H�����D$tX��D$��xuH��tNH��uR�D$H�T$H�5����H����D$��t^����HE�H��[]�@�릐�D$�H�H�5H�81��H�H�5H�81��H�H�5H�81��ff.���UH�5SH��H�H�H�H�8�H�H�5X���H��H��H�;1�H�A���H�5�H�-H�;1�H�5H���H�;H��1�H�5�H�;1�H�����H�5�H�;1�H����H�5�H�;1�H�H�5�H�;1�H�H�5�H�;1�H�H�5�H�;1�H�H�5�H�;1�H�H�5�H�;�����H�_��H�5�H�;�����H�D��H�5�H�;�����H����H�5�H�;1�H����H�5�H�;�H�v��H�5�H�;�H�[�H�5�H�;�H�@�H�5�H�;H���[H����H�5]�GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignset_backtracelabel_%lunoptopmethodblockclassrescueensureevalmaindefined_guardunsupported iseq type#arg_restoptlead_numpost_numpost_startrest_startblock_startkwbitskeywordkwrestambiguous_param0midflagblockptrkw_argorig_argcunknown operand: %cretrybreakredonext...arg_sizelocal_sizestack_max#<%s: uninitialized><%s:%s@%s>inline_const_cachepeephole_optimizationtailcall_optimizationspecialized_instructionoperands_unificationinstructions_unificationstack_cachingtrace_instructiondebug_level<main>11rto_aryArrayto_strStringto_hashHashto_symSymbolunsupport type: :%li<compiled>14%ld%lunil<is:%td>mid:%liargc:%dkw:%dblock:%liARGS_SPLATARGS_BLOCKARGFCALLVCALLTAILCALLSUPERSNEDARGS_SIMPLE|, <callinfo!%li><cdhash><funcptr>%04zd %-16s %*s(%4d)
BlockPostRestArg== disasm: == catch table
unknown catch type (%d)Opt=%ld%s%s%s%s%s[%2d] ?<%s>%*sNODE_SCOPENODE_BLOCKNODE_IFNODE_CASENODE_WHENNODE_OPT_NNODE_WHILENODE_UNTILNODE_ITERNODE_FORNODE_BREAKNODE_NEXTNODE_REDONODE_RETRYNODE_BEGINNODE_RESCUENODE_RESBODYNODE_ENSURENODE_ANDNODE_ORNODE_MASGNNODE_LASGNNODE_DASGNNODE_DASGN_CURRNODE_GASGNNODE_IASGNNODE_IASGN2NODE_CDECLNODE_CVASGNNODE_CVDECLNODE_OP_ASGN1NODE_OP_ASGN2NODE_OP_ASGN_ANDNODE_OP_ASGN_ORNODE_OP_CDECLNODE_CALLNODE_FCALLNODE_VCALLNODE_SUPERNODE_ZSUPERNODE_ARRAYNODE_ZARRAYNODE_VALUESNODE_HASHNODE_RETURNNODE_YIELDNODE_LVARNODE_DVARNODE_GVARNODE_IVARNODE_CONSTNODE_CVARNODE_NTH_REFNODE_BACK_REFNODE_MATCHNODE_MATCH2NODE_MATCH3NODE_LITNODE_STRNODE_DSTRNODE_XSTRNODE_DXSTRNODE_EVSTRNODE_DREGXNODE_DREGX_ONCENODE_ARGSNODE_ARGS_AUXNODE_OPT_ARGNODE_KW_ARGNODE_POSTARGNODE_ARGSCATNODE_ARGSPUSHNODE_SPLATNODE_TO_ARYNODE_BLOCK_ARGNODE_BLOCK_PASSNODE_DEFNNODE_DEFSNODE_ALIASNODE_VALIASNODE_UNDEFNODE_CLASSNODE_MODULENODE_SCLASSNODE_COLON2NODE_COLON3NODE_CREFNODE_DOT2NODE_DOT3NODE_FLIP2NODE_FLIP3NODE_SELFNODE_NILNODE_TRUENODE_FALSENODE_ERRINFONODE_DEFINEDNODE_POSTEXENODE_ALLOCANODE_BMETHODNODE_MEMONODE_IFUNCNODE_DSYMNODE_ATTRASGNNODE_PRELUDENODE_LAMBDAunknown node (%d)reqrestkeyreqkeykeyrest`pos' is negative`set' should be true/false`pos' is out of range.InstructionSequenceinspectdisasmdisassembleto_apathabsolute_pathlabelbase_labelfirst_linenocompilenewcompile_filecompile_optioncompile_option=ofiseqLNNNNIKIGVSNVVISNCOOKKSKHOCCCVFLgetlocalsetlocalgetspecialsetspecialgetinstancevariablesetinstancevariablegetclassvariablesetclassvariablegetconstantsetconstantgetglobalsetglobalputnilputselfputobjectputspecialobjectputiseqputstringconcatstringstostringtoregexpnewarrayduparrayexpandarrayconcatarraysplatarraynewhashnewrangepopdupdupnswapreputtopnsetnadjuststackdefinedcheckmatchcheckkeywordtracedefineclasssendopt_str_freezeopt_send_without_blockinvokesuperinvokeblockleavethrowjumpbranchifbranchunlessgetinlinecachesetinlinecacheonceopt_case_dispatchopt_plusopt_minusopt_multopt_divopt_modopt_eqopt_neqopt_ltopt_leopt_gtopt_geopt_ltltopt_arefopt_asetopt_aset_withopt_aref_withopt_lengthopt_sizeopt_empty_popt_succopt_notopt_regexpmatch1opt_regexpmatch2opt_call_c_functionbitbltanswergetlocal_OP__WC__0getlocal_OP__WC__1setlocal_OP__WC__0setlocal_OP__WC__1putobject_OP_INT2FIX_O_0_C_putobject_OP_INT2FIX_O_1_C_too large iseq_catch_table - %dYARVInstructionSequence/SimpleDataFormatuninitialized InstructionSequenceCompile option must be Hash/true/false/nilinsn_operand_intern: unknown operand type: %c| catch type: %-6s st: %04d ed: %04d sp: %04d cont: %04d
local table (size: %d, argc: %d [opts: %d, rest: %d, post: %d, block: %d, kw: %d@%d, kwrest: %d])
|------------------------------------------------------------------------
nilinstance-variablelocal-variableglobal-variableclass variableconstantmethodyieldsuperselftruefalseassignmentexpressionaGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�
0
D
X
l
�u�"KV�*E�](�AF�D�D fD�A�0��N�A�G QD�A�T ��,(*N��
F�H�A
�G(XA�A�G g
FAA0�@A�D�D N
DADVDA�E�Q(�9B�M�D �bABK��,WA�M
LH�B�E�B �B(�A0�A8�G��
8D0A(B BBBA0�|E�A�D |
JJFIKC �vE�s
HX
H(�E�A�D �
DAB;E�Y
E(8jE�D�G G
CAE<d�^�A�D 0AAK��@ ��x��X ���ME�L@zA`�<B�B�B �E(�H0�A8�GPp
8A0A(B BBBK
8A0A(B BBBBH(,B�B�E �E(�G0�D8�G`�
8F0A(B BBBI8t�F�B�D �A(�D0Q
(G ABBJP��F�E�E �E(�A0�A8�D`MhEpPhA`Y8D0A(B BBB%HHB R$%HQB I<DpF�B�D �I(�N0l8N@L(A ABB<�F�B�D �H(�Dp�xH�X(A ABB\�{F�B�B �E(�A0�A8�J���H�X�A�p
8D0A(B BBBI,$�E�C
P������
J4T�E�D�KPyXM`WXAPz
AAB����%�0��F�K�A �J@�
 DABIX$�F�E�B �B(�A0�D8�Gp�xA�UxDp�
8A0A(B BBBF��gF�B�B �B(�A0�A8�G�?�J�M�B���T�A�I�A�E�L��H�b�A�N
8A0A(B BBBA*HR
FI0�qHH�F�B�E �B(�A0�D8�D@x
8D0A(B BBBCH��F�B�B �B(�A0�A8�G`)
8D0A(B BBBEH��P�H�A �N0q AABD���H0���a
 AABCH,	�F�B�E �B(�D0�D8�D`�
8D0A(B BBBBHx	F�I�E �E(�A0�A8�F�D
8D0A(B BBBF$�	1E�D�D ^DA(�	�E�G�G0^
AAE(

E�H�D �FO	#%9$Qj%��&��'�

Dg�-�-�=�=M'MC�]Puj�����"���*�*�H�*q<0ANqg%~���%�Z�0*�Z��`	80�J b�@m �;V �;�y�@9�y�.&�K(�D�^��k��'��W�'��0�-	 ;	`�K �Z	Hs	@�	0�	8�	 �	(�	�		!	2	�K	�\	�u	��	��	��	��	��	��	�	�(	�A	�Z	xs�`�`��@ j�	h�	`�	X�	H		p		�5		�N		�g		�		@�		8�		0�		�		�		
	 /
	(H
	Pa
�}
|�
|�
|�
��
�v�
� .H$_	hx	`�	X�	P�	H�	@�	8	0'	(@ Y; p ;z; �� �� ��%�� �
	�
	�8
	�Q
	�j
	��
	��
	��
	��
	��
�%�%7�%MQ�%m)��%<�)�L/� ),�L/�/5�/Y�0{�0��0��0�1�1�1)�1L�2m�1��2�9�	0�	(�	 		4	M	f	�	��9�<�<
�<&<�5�<T�<q�<�=�=�7=�7=e=9e=X�=u�=�D�D�FF!�L= FgZ�Lw�L��L*��L�AP�AP�SS4�ZT	�m	��	��	��	x�	p�	��Z)�[M��^�[�G^�G^�P_�P_$�_H�_rb`�b`�}b$%&'#�����K�� �'�-�3�:AFo�} �&�,�2�8�>�DyJ�P�V \bhn�t�z����=�2�)� ���%�Y�\�G�g��������������z�P�x�
"$+1"8(?.G4L:S@ZFpL{R�X�^�d�j�p�v|��~��������������������������"�/�0�9�O�[����;A"F(K.�5�<�C�J�QkWP^Be8l-s#z�
�������������������������{�o�c�W�L�A5
* ")�0�7�>�E�L�S�Z�a�h�owvl}a�V�L�B�9�0�$��
���������������������	�|qe%Z,O3D::A,HOV�]�d�k�r�y������������y�q�h�\�O�C�8�-�#�����������!�(�/�6]=iD�K{RY�`�g�n�u�|��������
	�	�	�"	�(	�3	�@	�H	�L	�Y	�h	�x	��1

 !"()*B
O
e 
s0
�@
�������):IS`ky����������   / < G T k u � � � � � � � � !	!!!*!5!@!J!Z!n!y!�!�!�!�!�!�!�!"P/�#"0�8"�A"V"�0%b"�0%r"1p�"�"�"�"�"�"�"�"#�2{#%#1#<#S#_#9�{#�#�#�#�<�#=�# =�#@=%$p=$�=�6$A$M$T$d$o$~$�$�$ D��$�$�$�$�$ Fg�$�$%%%(%�L�7%PP�E%S�X%�Z�o%%�%�%�[��%�%�%P^&P_1&&�_�A&p`
K&V&l&�&�&.annobin_iseq.c.annobin_iseq.c_end.annobin_iseq.c.hot.annobin_iseq.c_end.hot.annobin_iseq.c.unlikely.annobin_iseq.c_end.unlikely.annobin_iseq.c.startup.annobin_iseq.c_end.startup.annobin_iseq.c.exit.annobin_iseq.c_end.exit.annobin_rb_iseq_path.start.annobin_rb_iseq_path.end.annobin_rb_iseq_absolute_path.start.annobin_rb_iseq_absolute_path.end.annobin_rb_iseq_label.start.annobin_rb_iseq_label.end.annobin_rb_iseq_base_label.start.annobin_rb_iseq_base_label.end.annobin_rb_iseq_first_lineno.start.annobin_rb_iseq_first_lineno.end.annobin_find_line_no.start.annobin_find_line_no.endfind_line_no.annobin_collect_trace.start.annobin_collect_trace.endcollect_trace.annobin_iseq_alloc.start.annobin_iseq_alloc.endiseq_allociseq_data_type.annobin_compile_data_free.start.annobin_compile_data_free.endcompile_data_free.annobin_iseq_free.start.annobin_iseq_free.endiseq_free.annobin_iseq_mark.start.annobin_iseq_mark.endiseq_mark.annobin_cleanup_iseq_build.start.annobin_cleanup_iseq_build.endcleanup_iseq_buildrb_intern_id_cache.16189.annobin_id_to_name.start.annobin_id_to_name.endid_to_name.annobin_iseq_eval.start.annobin_iseq_eval.end.annobin_register_label.start.annobin_register_label.endregister_label.annobin_line_trace_specify.start.annobin_line_trace_specify.end.annobin_iseq_memsize.start.annobin_iseq_memsize.endiseq_memsize.annobin_rb_threadptr_tag_jump.isra.8.start.annobin_rb_threadptr_tag_jump.isra.8.endrb_threadptr_tag_jump.isra.8.annobin_iseq_data_to_ary.start.annobin_iseq_data_to_ary.endiseq_data_to_arysym_top.16760insn_syms.16758insn_name_inforb_intern_id_cache.16775rb_intern_id_cache.16777rb_intern_id_cache.16779sym_method.16761rb_intern_id_cache.16781sym_block.16762rb_intern_id_cache.16783sym_class.16763rb_intern_id_cache.16785sym_rescue.16764rb_intern_id_cache.16787sym_ensure.16765rb_intern_id_cache.16789sym_eval.16766rb_intern_id_cache.16791sym_main.16767sym_defined_guard.16768rb_intern_id_cache.16805rb_intern_id_cache.16819rb_intern_id_cache.16821rb_intern_id_cache.16823rb_intern_id_cache.16825rb_intern_id_cache.16827rb_intern_id_cache.16845insn_len_infoinsn_operand_infocdhash_eachrb_intern_id_cache.16871rb_intern_id_cache.16873rb_intern_id_cache.16875rb_intern_id_cache.16884rb_intern_id_cache.16847rb_intern_id_cache.16841rb_intern_id_cache.16843rb_intern_id_cache.16817rb_intern_id_cache.16734rb_intern_id_cache.16918rb_intern_id_cache.16920rb_intern_id_cache.16922rb_intern_id_cache.16732rb_intern_id_cache.16730rb_intern_id_cache.16728rb_intern_id_cache.16726rb_intern_id_cache.16723rb_intern_id_cache.16882.annobin_iseq_inspect.start.annobin_iseq_inspect.endiseq_inspect.annobin_iseq_s_of.start.annobin_iseq_s_of.endiseq_s_of.annobin_iseq_s_compile_option_get.start.annobin_iseq_s_compile_option_get.endiseq_s_compile_option_getCOMPILE_OPTION_DEFAULTrb_intern_id_cache.16232rb_intern_id_cache.16234rb_intern_id_cache.16236rb_intern_id_cache.16238rb_intern_id_cache.16240rb_intern_id_cache.16242rb_intern_id_cache.16244rb_intern_id_cache.16246rb_intern_id_cache.16248.annobin_iseq_to_a.start.annobin_iseq_to_a.endiseq_to_a.annobin_cdhash_each.start.annobin_cdhash_each.end.annobin_make_compile_option.start.annobin_make_compile_option.endmake_compile_optionrb_intern_id_cache.16202rb_intern_id_cache.16205rb_intern_id_cache.16208rb_intern_id_cache.16211rb_intern_id_cache.16214rb_intern_id_cache.16217rb_intern_id_cache.16220rb_intern_id_cache.16223rb_intern_id_cache.16226.annobin_iseq_s_compile_option_set.start.annobin_iseq_s_compile_option_set.endiseq_s_compile_option_set.annobin_set_relation.start.annobin_set_relation.endset_relation.annobin_prepare_iseq_build.start.annobin_prepare_iseq_build.endprepare_iseq_build.annobin_rb_iseq_add_mark_object.start.annobin_rb_iseq_add_mark_object.end.annobin_rb_iseq_new_with_opt.start.annobin_rb_iseq_new_with_opt.end.annobin_rb_iseq_new.start.annobin_rb_iseq_new.end.annobin_rb_iseq_new_top.start.annobin_rb_iseq_new_top.end.annobin_rb_iseq_new_main.start.annobin_rb_iseq_new_main.end.annobin_iseq_s_compile_file.start.annobin_iseq_s_compile_file.endiseq_s_compile_file.annobin_rb_iseq_load.start.annobin_rb_iseq_load.endrb_intern_id_cache.16291rb_intern_id_cache.16294rb_intern_id_cache.16297rb_intern_id_cache.16300rb_intern_id_cache.16303rb_intern_id_cache.16306rb_intern_id_cache.16309rb_intern_id_cache.16312rb_intern_id_cache.16315.annobin_rb_iseq_compile_with_option.start.annobin_rb_iseq_compile_with_option.end.annobin_iseq_s_compile.start.annobin_iseq_s_compile.endiseq_s_compile.annobin_rb_iseq_compile.start.annobin_rb_iseq_compile.end.annobin_rb_iseq_compile_on_base.start.annobin_rb_iseq_compile_on_base.end.annobin_rb_iseq_klass.start.annobin_rb_iseq_klass.end.annobin_rb_iseq_method_name.start.annobin_rb_iseq_method_name.end.annobin_rb_iseq_line_no.start.annobin_rb_iseq_line_no.end.annobin_rb_insn_operand_intern.start.annobin_rb_insn_operand_intern.end.annobin_rb_iseq_disasm_insn.start.annobin_rb_iseq_disasm_insn.end.annobin_rb_iseq_disasm.start.annobin_rb_iseq_disasm.endrb_iseq_disasm.localalias.12.annobin_iseq_s_disasm.start.annobin_iseq_s_disasm.endiseq_s_disasm.annobin_ruby_node_name.start.annobin_ruby_node_name.end.annobin_rb_iseq_clone.start.annobin_rb_iseq_clone.end.annobin_rb_iseq_parameters.start.annobin_rb_iseq_parameters.endrb_intern_id_cache.16945rb_intern_id_cache.16946rb_intern_id_cache.16956rb_intern_id_cache.16964rb_intern_id_cache.16972rb_intern_id_cache.16973rb_intern_id_cache.16968.annobin_rb_iseq_defined_string.start.annobin_rb_iseq_defined_string.endexpr_names.16977.annobin_rb_iseq_build_for_ruby2cext.start.annobin_rb_iseq_build_for_ruby2cext.end.annobin_rb_iseq_line_trace_each.start.annobin_rb_iseq_line_trace_each.end.annobin_rb_iseq_line_trace_all.start.annobin_rb_iseq_line_trace_all.end.annobin_rb_iseq_line_trace_specify.start.annobin_rb_iseq_line_trace_specify.end.annobin_Init_ISeq.start.annobin_Init_ISeq.end.LC0.LC1.LC2.LC3.LC12.LC4.LC5.LC6.LC7.LC8.LC9.LC10.LC11.LC14.LC30.LC16.LC23.LC18.LC17.LC19.LC20.LC24.LC15.LC22.LC21.LC39.LC33.LC32.LC31.LC26.LC25.LC29.LC27.LC38.LC37.LC36.LC34.LC28.LC35.LC13.LC41.LC40.LC42.LC50.LC49.LC48.LC47.LC46.LC45.LC44.LC43.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC62.LC63.LC64.LC65.LC66.LC68.LC72.LC73.LC74.LC84.LC85.LC86.LC70.LC67.LC87.LC88.LC83.LC69.LC71.LC82.LC81.LC80.LC79.LC78.LC77.LC76.LC75.LC89.LC90.LC91.LC92.LC97.LC98.LC100.LC108.LC101.LC107.LC93.LC94.LC95.LC96.LC103.LC104.LC105.LC106.LC102.LC99.LC213.LC212.LC211.LC210.LC209.LC208.LC207.LC206.LC205.LC204.LC203.LC202.LC201.LC200.LC199.LC198.LC197.LC196.LC195.LC194.LC193.LC192.LC191.LC190.LC189.LC188.LC187.LC186.LC185.LC184.LC183.LC182.LC181.LC180.LC179.LC178.LC177.LC176.LC175.LC174.LC173.LC172.LC171.LC170.LC169.LC168.LC167.LC166.LC165.LC164.LC163.LC162.LC161.LC160.LC159.LC158.LC157.LC156.LC155.LC154.LC153.LC152.LC151.LC150.LC149.LC148.LC147.LC146.LC145.LC144.LC143.LC142.LC141.LC140.LC139.LC138.LC137.LC136.LC135.LC134.LC133.LC132.LC131.LC130.LC129.LC128.LC127.LC126.LC125.LC124.LC123.LC122.LC121.LC120.LC119.LC118.LC117.LC116.LC115.LC114.LC113.LC112.LC111.LC110.LC109.LC214.LC215.LC218.LC216.LC217.LC220.LC219.LC222.LC221.LC223.LC224.LC225.LC226.LC227.LC228.LC229.LC230.LC231.LC232.LC233.LC234.LC235.LC236.LC237.LC238.LC239.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouprb_iseq_pathrb_iseq_absolute_pathrb_iseq_labelrb_iseq_base_labelrb_iseq_first_lineno_GLOBAL_OFFSET_TABLE_rb_ary_pushruby_xcallocrb_data_typed_object_allocruby_xfreerb_gc_markrb_funcallvrb_exc_raiserb_intern2rb_id2strrb_str_symname_prb_str_inspectrb_securerb_iseq_evalrb_sprintfrb_str_internst_insertrb_fatalrb_ary_newrb_hash_newst_init_numtablerb_internrb_id2symrb_uint2bigrb_hash_asetrb_iseq_original_iseqrb_ary_new_caparb_ary_resurrectrb_bugrb_hash_foreachrb_ary_entryrb_fix2intrb_ary_storerb_ary_new_from_valuesst_lookupst_free_tablerb_str_new_staticrb_int2bigrb_str_resurrectrb_out_of_intrb_obj_classnamerb_obj_is_procrb_method_get_iseqrb_eTypeErrorrb_raiserb_cHashrb_hash_arefrb_cSymbolrb_num2intrb_cFixnumrb_cFloatrb_node_newnoderuby_current_threadrb_cObjectrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_fstringrb_ary_tmp_newruby_xmalloc2rb_str_cmprb_get_coveragesrb_hash_lookuprb_iseq_add_mark_objectrb_iseq_new_with_optrb_cISeqrb_iseq_compile_noderb_iseq_newrb_iseq_new_toprb_iseq_new_mainrb_scan_argsrb_get_pathrb_string_value_cstrrb_file_open_strrb_parser_newrb_parser_compile_filerb_io_closerb_realpath_internalrb_iseq_loadrb_convert_typerb_check_idrb_sym2strrb_iseq_build_from_aryrb_num2longrb_iseq_compile_with_optionrb_string_valuerb_parser_compile_string_pathrb_parser_compile_file_pathrb_iseq_compilerb_iseq_compile_on_baserb_iseq_klassrb_iseq_method_namerb_iseq_line_norb_insn_operand_internrb_inspectrb_ary_joindladdrrb_str_new_cstrrb_str_duprb_cFalseClassrb_cTrueClassrb_cNilClassrb_iseq_disasm_insnrb_str_catfrb_str_concatputsrb_str_catrb_iseq_disasmrb_str_appendruby_snprintfrb_str_resizememset__stack_chk_failruby_node_namerb_iseq_clonerb_iseq_parametersrb_iseq_defined_stringruby_current_vmrb_freeze_singleton_classrb_gc_register_mark_objectrb_iseq_build_for_ruby2cextrb_iseq_translate_threaded_codememcpyrb_iseq_line_trace_eachrb_iseq_line_trace_allrb_iseq_line_trace_specifyInit_ISeqrb_cRubyVMrb_define_class_underrb_define_alloc_funcrb_define_methodrb_define_singleton_method��������������������������T	���������	���������	���������	���������	��������.	��������T	��������p	���������	���������	���������	��������	��������!
��������9
��������Q
��������q
���������
���������
���������
���������
��������
��������A
��������Q
���������3�4�����������������������������
���������4�����������������.��������J���������T��������\��������m���������������������������E��������O��������Y��������c��������m��������w�������������������\��$�����������������������������D����������<		��������	,	4+	��������2	9	$G	��������N	U	c	��������j	�q		���������	��	��	���������	��	��	���������	��	��	���������	��	]���������	���������

��������
�
���������"

��������,
D8
���������B

��������L
<X
���������b

��������l
,x
���������

���������
�
���������

���������
�
���������

���������
��
���������

���������
��
��������
����������S�a��������l���������������������������������$'84S��������]
��������g�����������������������������������������
�
��������+
��������E
�X
��������h
���������
��
���������
���������
t�
���������
����������������2]�E��������L\]����������\�] � ��������2��������R]�u��������|!������������������������������������������������������"��������,#��������4$��������P%��������n��������{���������������������������d�������������������\��������$��������<TJ��������X��������qD����������������������������������������������l�����������������
��������8��������C��������|���������&���������������������������������������������
|��������(��������H�����������������������������������������������
��������������������
���������t	��������
���������$
��������.
��������8�D��������N
��������X�d��������n
��������x�����������]p���������
��������#
��������-l9��������C
��������M�Y��������c
��������m|y���������
������������������������������������������������������� ��������7��������N��������_��������l������������������'�����������������\��������u���������(���������<�������������������4�����������������,"��������5��������A��������F)��������V��������c��������p��������}����������������������������������������������������������������������������������������������������������'<��������A
��������HTi��������n
��������u�����������
��������������������
����������$����������
���������$����������������$
��������.\:��������D
��������NdX��������g��������q
��������{D����������
���������T������������������	L��������-��������>��������C
��������J,[��������`
��������g4x��������}
���������<�*������������������
���������������������������
���������L�+���������,������������������!������������������!��������>-��������S ��������a-��������l!������������������.���������/������������������������d3��������A��������G��������O\f��������t��������z�T��������������������L��������������������D���������
��������<2��������@��������FN4e��������s��������y�,��������������������$�������������������"���������
���������d#��������

��������$#$��������-
��������7,C%��������M
��������W4c&��������m
��������w<�'���������
���������D�(���������
���������L�)���������
���������T�*���������
���������\ ��������& *0��������- +��������7 1��������v  ��������� ��������� ��������� +��������� *2��������� ��������!!!�(!��������3!3��������O!�]!��������h!3���������!��!���������!3���������!��!���������!3���������!��!��������
"3��������'"�5"��������@"3��������]"�k"��������v"3���������"��"���������"3���������"��"���������"3���������"$��������,#��������7#A#u#*4��������#$'��������-$
��������7$�C$(��������M$
��������W$�c$"��������m$
��������w$��$$���������$
���������$��$#���������$
���������$��$%���������$
���������$��$&���������$
���������$�%)��������
%
��������%�#%*��������-%
��������7%�A%5��������S%*6��������c%*7��������r%*0��������y%,���������%1���������%���������%�%���������%L&8���������&*9���������&*:���������&8���������&;��������'<���������'8��������(;��������F(<��������W(;���������(<���������(;���������(;���������(<��������)<��������Z)=��������e)=���������)��������*>��������K*?��������_*���������**9��������+;��������P+@��������x+;���������+;���������+<���������+=��������E,;��������q,A���������,B���������,;��������-;��������9-;��������n-<���������-;���������-;��������.<��������H.<��������_.;���������.<���������.<���������.<��������/<��������C/<���������/>���������/;���������/<��������0*E��������[0���������0F���������0���������0D���������0���������0D��������+1-��������61*9��������M1)��������T1��������q1D���������1���������1.���������1J���������1K���������1L���������1/���������1M���������1N��������2$��������2O��������"2P��������B2Q��������N2-��������Z2)��������w2D���������2*E���������20���������21���������2S���������2#���������22���������23��������3S��������3#��������#3#��������83#��������M3#��������T34��������`35��������h3S��������z3#���������32���������33���������3S���������3#���������32���������33���������3S���������3#���������32���������33���������3S��������4#��������!4#��������(46��������447��������<4S��������T4#��������[40��������g41��������o4S���������4#���������44���������45���������4S���������4#���������40���������41���������4S���������4#���������40���������41���������4S��������5,,5$A5V5k5�5�5��5��5��5T��������U6U��������\68��������f6*0��������p61���������6V��������7���������7
��������!7�87��������=7
��������G7�X7��������]7
��������l7��7���������7
���������7�7���������7
���������7�7���������7
���������7�7����������7
��������	8 8���������%8
��������18$H8���������M8
��������W8,d8W��������t8W���������8W���������8W��������+9*9���������95���������9L��������:N��������M:Y��������m:Z���������:D��������;$��������a;*9���������;9���������;)���������;D���������;[���������;*9���������;��������I<��������`<:��������w<J���������<X���������<9���������<)���������=�\�=]��=��������>b��������^>;��������e>���������>���������><���������>���������>���������>=���������>���������>���������>>���������>��������?��������??��������?)��������)?c��������0?@��������:?��������W?d��������r?e���������?���������?���������?f���������?A���������?)���������?B��������@��������@C��������,@��������D@b��������b@*g��������w@*E���������@���������@D���������@)���������@b��������A*4��������eA��������{A*7���������AE���������A!���������Ab���������A*6���������A�������� BF��������%B)��������0Bc��������;B��������PBG��������UB)��������iB��������pBH��������zB���������B���������BI���������B)���������B���������BJ���������B)���������B���������BK���������B)���������B���������BL��������C)��������C��������C*h��������2CM��������7C)��������BC��������VCN��������[C)��������fC��������zCO��������C)���������C���������CP���������C)���������C���������C*i���������C ���������Cb��������D+��������SD]�gD�\pD)��������zDQ���������D��Dk���������Da���������Dl��������GER��������PES��������UEk��������tEm���������E?���������En���������ET���������En���������El��������\F)��������dF��������qF���������FU���������Fn���������Fl���������FT���������Fn���������FV���������Fn��������G]�cG��������wGW���������Gk���������GX���������Gn��������EHY��������RHk��������uHR���������Hp���������HZ��������Ik���������I[���������I\���������I]���������I^���������I_��������Jq��������
J`��������Jk��������HJa��������PJn��������gJb��������qJk���������JT���������Jn���������J���������Jj��������K#��������Kl��������sKr���������Ks���������K���������K���������K���������K���������K��������Ll��������?Lc��������FLq��������_Ld��������fL!��������mL*0��������tL+��������~L1���������Lt���������L]�Le���������Lf���������Lg���������Lh��������Mi��������Mj��������Mk��������Ml��������#Mm��������+Mn��������3Mo��������;Mp��������CMq��������KMr��������SMs��������[Mt��������cMu��������kMv��������sMw��������{Mx���������My���������Mz���������M{���������M|���������M}���������M~���������M���������M����������M����������M����������M����������M����������M����������M����������M����������M���������N���������N���������N���������N���������#N���������+N���������3N���������;N���������CN���������KN���������SN���������[N���������cN���������kN���������sN���������{N����������N����������N����������N����������N����������N����������N����������N����������N����������N����������N����������N����������N����������N����������N����������N����������N���������O���������O���������O���������O���������#O���������+O���������3O���������;O���������CO���������KO���������SO���������[O���������cO���������kO���������sO���������{O����������O����������O����������O����������O����������O����������O����������O����������O����������O����������O����������O����������O����������O����������O����������O����������O���������P���������P���������P���������P���������#P���������+P���������8P���������=P!��������kP*E��������
Q;��������5Q<��������MQ8��������uQ;���������Q<���������Q;���������Q<��������lR;���������R<���������R;���������R<��������1S��������;S�PS��S���������S���������S���������S���������S��������T��������T��������)T��������4T��������FT��������_T��������lT��������}T���������T���������T��T���������T���������T���������T���������T��������KU��������ZU��������gU��������uU���������U���������U���������U���������U�V��������V��������'V��������8V��������LV��������eV��������pV���������Vt�V���������V���������V���������V���������V���������VlW��������W��������W��������2W��������FW��������yW���������W���������W���������W���������W���������W���������W��������X��������#X��������6X��������CX��������QX��������^X��������uX���������X����������X
���������X��X|�X���������X���������X��������Y��������#Y��������<Y��������GY��������XY���������]Y
��������dY�pY��Y���������Y
���������Y��Y����������Y
���������Y��Y���������Y���������Y����������Y
��������Zt Z��������+Z��������HZ���������MZ
��������WZ|�Z���������Z���������Z����������Z
���������Zl�Z]��Z*y��������,[e��������g[z��������|[{���������[���������[*E��������-\e��������R\e���������\?���������\}���������\~��������]?��������?]~��������f]?��������]~���������];���������]<��������^;��������>^<��������Y^]�~^��������?_]|^_��������s_���������_$���������_��������	`5��������`*0��������$`���������.`1��������5`*0��������<`���������F`1��������M`*0��������T`���������^`1��������x`����������`*:���������`*����������`����������`*E���������`����������`����������`����������`*o���������`����������`����������`����������`���������	a���������a���������!a��������&a���������2a��������9a���������>a���������Ja��������Qa���������Va���������ba��������ia���������na���������za���������a����������a����������a���������a����������a����������a����������a����������a����������a����������a����������a���������b���������b���������b���������"b���������8b���������=b���������Sb���������Xb���������sb���������&��������j	���������	��������:
����������������7��������[��������x��������/���������<X��������=X���������Lo��������yb��������� ���
$,
P
X�
���-��--=D-L=p=xM�=�M�M��M�0�8�d�l����*���*�*�q$*,qPqX%�q�%�%�Z�%�ZZ�DZL�p�x ��� � �; ;0;8yd;ly�y���y������$�,�P�X'���'�'���'��	�	|D	�L	|p	|x	��	|�	��	��	 
�
 0
 8
; d
 l
; �
; �
� �
; �
� �
� �
�%$� ,�%P�%X�%��%��%��%�)��%�))L/D)LL/pL/x�/�L/��/��/��0
�/
�00
�08
�0d
�0l
�0�
�0�
1�
�0�
1�
1�
�1$1,�1P�1X�2��1��2��2�9��2�99<D9L<p<x�<�<��<��<��<�<�<0�<8=d�<l=�=�7=�=�7=�7=�e=$7=,e=Pe=X�=�e=��=��=�D��=�DDFDDLFpFx�L�F��L��L��L�L�L0�L8APd�LlAP�AP�S�AP�S�S��Z$S,�ZP�ZX�[��Z��[��[�G^��[�G^G^P_DG^LP_pP_x�_�P_��_��_�b`�_b`0b`8}bdb`l}b �	 � � ��90��	 5$�(�,�0�4v8�<�@�D�H�L�P�TGX�\`dDhlpt�x�|��������i���D�����>��A��A�\?��?��?��=��A�@�\>��A��>�H@��A��A��A��?��A��A�/>��K�`L��K�hL�KpL�KxLL�L�G P P$P(P,P0P4P8P<P@�OD�OH�OL�OP�OT�OX�O\�O`�Od�Oh�Ol�Op�Ot�Ox�O|�O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O�|O�xO�tO�pO�lO�hO�dO�`O�\O�XO�TO�PO�LO�HO�DO�@O<O8O4O0O,O(O$O O O$O(O,O0O4O8O<O@�ND�NH�NL�NP�NT�NX�N\�N`�Nd�Nh�Nl�Np�Nt�Nx�N|�N��N��N��N��N��N��N��N��N��N��N��N��N��N��N��N��N��Q1{	0��`1/h1�	p1�	x1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1/�1/�1�	�1�	�1�	�1�	�1�	1/1�	1�	1�	 1�	(1/01�	81�	@1�	H1/P1/X1�	`1/h1/p1�	x1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1/�1�	�1�	�1�	�1�	1�	1�	1�	1�	 1�	(1�	01�	81�	@1�	H1�	P1�	X1�	`1�	h1�	p1�	x1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1�	�1/�1/�1�	�1�	1�	1�	1/1/ 1(1�	01�	81�	@1�	H1�	P1�	X1
`1
h1&
p12
x1>
�1H
�1R
�1Y
�1a
�1k
�1|
�1�
�1�
�1�
�1�
�1�
�1�
�1�
�1�
�1�
�1�
1�
1�
1�
1�
 1(10181@1H1"P1*X15`1Bh1Hp1Tx1Y�1h�1�1��1��1��1��1��1��1��1��1��1��1��1��1�1111&1. 15(1<01C81J@1SH1\P1eX1s`1�h1�p1�x1��1��1��1��1��1��1��1��1	
�1
�1/
�1B
�1^
 4H \0p@�P����0��,0\`��� �@��0�L0����  <@ h� ��%��%, )xP/�0�0(�0H1��1��2(9X<��<�=� =�@=�p=��=( D� F�L4�LLPP�S��Z0	�[|	P^�	P_�	�_
p`.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.rodata.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@,�T,�l,��,��,�'�}b"@�	�l,-@c$ 3�c@ =�ct8@�v�,
S�yb�y�]@h�0,
|�{��{��@��0,��}��}��@ȋ0,�p�p��@��0,2D�z
2���.��@ )@(��,;�� 6@���,N0��.����|�S�'�W�e�x������� ��@
�@��(,*P��<-	��&Ȳ�vm.o/           1690381920  1000  135   100644  325744    `
ELF>0�@@10

$&'#(")@��t*@��uD������tZH��td@��tnH�G�f�H�����u�H��t!H��u�H�H�ÐH�H��DH�H��DH�H��DH�H��DH�H��D��HcB�H�JH�
H�RH�<�H�4�1����I��1���H��H��A��ff.����H��1�H����f���H��1�H��H�1��ff.�@��I��H�QH��1�H�1A��f.���H��I��H�IH��H�PH�01�A����H��I��H�IH��H�PL�@H�01�A��ff.�@��H��I��H�IH��H�PL�H L�@H�01�A��ff.���H��H��H�II��H�P�p(H��L�H L�@H�01�A��H���ff.�@��H��H��H�II��H�P�p0H���p(L�H L�@H�01�A��H���ff.����H��H��H�II��H�P�p8H���p0�p(L�H L�@H�01�A��H��(�f���H��H��H�II��H�P�p@H���p8�p0�p(L�H L�@H�01�A��H��(�fD��H��H��H�II��H�P�pHH���p@�p8�p0�p(L�H L�@H�01�A��H��8���H��H��H�II��H�P�pPH���pH�p@�p8�p0�p(L�H L�@H�01�A��H��8���H��H��H�II��H�P�pXH���pP�pH�p@�p8�p0�p(L�H L�@H�01�A��H��H�ff.�f���H��H��H�II��H�P�p`H���pX�pP�pH�p@�p8�p0�p(L�H L�@H�01�A��H��H�f.���H��H��H�II��H�P�phH���p`�pX�pP�pH�p@�p8�p0�p(L�H L�@H�01�A��H��X����H��H��H�II��H�P�ppH���ph�p`�pX�pP�pH�p@�p8�p0�p(L�H L�@H�01�A��H��X�@��H���ff.�@��1��f�����H���Hc�H�>��@H���H���H���H���H���H���H���H���H���H���H���H���H���H���H���H���H���H���H���H���H���H���H���H���H���1��ff.�f������u	H�1��f������H�H��@�ff.����1�H��t&H��8H��H��H)�H��H��HH��t�fDH����H��9�tF���t*��1���H�=�H��H�H�8H�����1���H�=�H���։�1���H�=�H���ff.���UH��H��SH��Hc�H���H��H��H��H��[1�]��f���H�5���H�5����H�=�ff.�H�0fH~�H9�tDfH~�H��<������tH��H��u!��fH~�H��H��H���fD�����ff.�@H��t�?
tfH��t�>
tDH9�tQH��t2H��t-�;u'H����	��H�Hc�H�>��f�1��DH�FH��t�H�pH9�u���H�GH��t�H�x닐H�FH9G����H���D1�H�NH9Ou�F 9G ������fDH�FH9G��������F9G�����f�H�vH��H����������D�뇉�H�=1��f���H�H�WH�5��H��H�B0H��fD��H�����ATI��UH��SH��@��t&@��uH�����t
�����t
�H���L��H��H���[1�]A\�ff.�UH��SH��H���H��t51��
H���H9�HM�H��H���H��HI�H���H��H��H��[]�ff.���U��SH��H���H�5H��H���H�t$H��H�D$�H��[]�f�H�G H9�wwL�G(N��I9�vjAVAUI��ATUSH��H9���H�H��I9�vOH9�wJH�F0H���f�H��PH�E0H����H9�u�H�����I��H�E0H��H��f�H�B�L�bI�EH������D�pdA�FH�H�<�@�H��A�F�ED�uE���!D��1���f.�Hcу�H�<�HcЃ�H�|�8D9�~�L�4�8H�H�H��H�8�J�T5L�eH�H�BI�M I�U0H�U I�UH�MH�EH�U(H�E0H��tx��uH�����tH�����t_[]A\A]A^�fDH������������������fD�XA��H��H�H�E�	���f.�H�E([]A\A]A^��E1����A�0����H�=H�w0�H�=1�����SH�w8H��Hc?�H�{H�����u_H�{H�����udH�{0H�����uiH�{(H��t)@��uH�����t
�����tH���H�����u[Ð[�f.��H�{H�����t��H�{0H�����t���DH�ATI��H��USH�8���H�Ń��)H�Hc�H�>���H�H���0L��H�5H���H���H��H�5H���H��[]A\�@H�H��u��H�=�H��H���H�H��u��H�=�H��H��l���@H�H���X����H�=�H��H��8����H�H��� ����H�=�H��H�����H�H�����H�=�H��H������H�=�H��H������H����AUATUH��SH��H�w H����H�_0H�G(H�{L�,�H)�H���L9�tx�H�{@L�c�H�{ �H�{(�M��t1L��A��uI�����tA�$����tfDI��$��H�{HH��t	�G�H��PI9�u�H���H�������H��tH���H������H���H�������H���H�������H��H�������H��H������SH��H������H���H������KH�}hH������H�}pH�������H����H���H���H�������H�}@H������|H���H������XH����H���H������H���H�����uxH;-t/H���t%H��tH���H���H���H��H���[]A\A]�f.��H���H���x����_���fD�H;-u���H��H�����������"f��H��H������t�����D�H��H������@�����D�H���H�����������D�H���H����������R���f�����fD�H���H�����������D�H�}@H������N����������fD�H�}pH������������H�}hH��������������H���H������|�����D���H���H�����������f.���S1�H��t#H����tH���H��t�H�H��[�@H�G(H���H���H��u���ff.���H���H�=H����H���f.���AUH��I��ATUSH��H�H�C0H�HPH�hXH�K0H�HH�HX�L��I���L��H���H�C0H�P�H�S0H�hH���[]A\A]�f���U1�H�SH��H�D$H�L$�����H�\$H������H�H���H9��gH��u1H;��H;��H����H��H��[]�H�=�H�5H��H���H;�UH�=�H�5H��H���H;�JH�=�H�5H��H����p����H�l$@����@��u
H�������H�H�5H�81��fD�H�=�H����H�=H��H����H�=H��H���H�H�H9������H�=�H��H��[H��]���E����u]DH���C����H���3���H�=�H��H��[H��]��H�=�H���?���@���������H���H�5H��H�H�81��f.�H���H��H��?H)�H	�H��H�D$��D$��f.�H��t+@��uH�����t
�����tH����f.�1��ff.�f�H��H�RH��t��ubH�����tYH�����uNH�H�H��PH��H9�w�7fDH��PH9�v(H�PH��t��uH�����tH�����u�@u�1��ff.����H�=H�G0H�w(H�� H�PP�`���H��t+H�@0H��uH��H��t�H��HE���1��ff.�f�H��H9:t|H�H98�H�H98�H�H98�H�H98tCH�H98twH�H98t{H�H;8tH�H;8����������f���f.���f.���f.���f.�� �f.��@�f.�UH��SH��@��uH��H�����u
H��H��[]����u�H�E��`H��`u�H���`H��`t�H��H�����f�AWI��AVI��AUATUSH��8D�&H�|$H�T$ �I�H��Ic�H�L$H�D$E����A�l$�H��E1�l$,L�4��f�I��K��K�t�H���I�EL9�u�H�D$H�H�D$L�l$H�L$ H��I)�HcD$,I�]H�\$H��H)‹H��D$��D)�H��8[]A\A]A^A_�A�D$�H�T$�D$,�SH��H��H��H�=H�T$���tH�����H�L$H�f	�JxH��[�ff.�H�GH��t	�8
�~USH���(H���� H��H�CH�E
H�E��oH�E�oKHH�CH��tQ�8tL�@�H�����H��t�H�kH��[]�f�����H�k�H��[]��H�sH����H�CH��t��f�UH��SH��H�����uH�H9t1�H��H��[]�H��H�����u�H�[H��u���fD�FtzAWAVAUATUSH��H�GL�`�H�P�H�WI��uH�FHH��[]A\A]A^A_��H��L��H���H��tEI�D$ H�CHL�e@H��[]A\A]A^A_�f�H�FH��tgH�W H�VHH�G8H�G@�f�D�{XL�sH�L��H�
H��D�{XI��L�sHH��tMH���H��t@M���r������t$H�G0H��u�H��H��t�H��H�FH�@H�FH�L���H�5H��H�H�81��ff.��SH��H��`H�O0H�Q��H��!t/��H��1u��FH��`[��H=�u�%�������<��u�t�H�C������t�H�C0�D$H�\$H�P H�D$ H�@HH�T$(H�PH�@H�T$0H�D$8�`@H���h�����[���H�G�������C����D$H�A H�\$H�L$ H�D$(H�D$0H�D$8H�|$�D$HH�D$@H�D$P4���������H�C������������D$�DH�G������������D$�Z���H�C������������H�A H�|$�t$�D$H�\$H�L$ H�D$(H�D$0H�D$8H�D$@H�D$P4�D$H��t$�M���f�U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�SH�W0H��H�z0H�H��t*L�C(H�K J��H9�sH9�u�H9B0tH��PH9�w�1��CH�9��H���H�{H�H���-���ff.�f���@��t6@��uH�����t
�����tH����1�H����1��ff.�f�ATI��UH��SH���A��u;M��~.I��I��I��N�d#fDH�SH�3H��H���L9�u�H��[]A\�H�
�-	H�5H�=�f���AT��USH�H�.H�C0H�PPL�`XH�S0H�PH�PXH�VHc�H���D���H�C0H�P�H�S0L�`H��[]A\�ff.��UH��SH��H��H���H�3�� t$H��H�S��H�����H��H��[]��H�S H�s��ff.���ATUH��H��SH�H��H�C0H�HPL�`XH�K0H�HH�HX�k���H�C0H�P�H�S0L�`H��[]A\���ATI��USH�H�C0H�PPH�hXH�S0H�PH�PX�L��H������H�S0H�J�H�K0H�j[]A\Ð@��u*H�����t!������H��u����f���SH�����t/H�E1�1�1�1�H�=�>L�1���[���H���H��L�I�[1�1�H���ff.��H��u�f.�UH��H��SH��H�����uH��[]ÐH�}�H��H���H��H��1�[H��H��]�f�H��tCATI��UH��S�G`1ۅ�~#�H�EXHc�L���H�4��j���9]`�[�]A\�1��D��AUATUSH��L�-I�E0I�} I�u(H�PP�v�H���H��H�D$�H�|$H�EH�GH����H�SL�d$H��uLf�H�s0H��uuI�M H��H9���I�}(H��H9�sH9�t�f�H��PH9C0u�H�SH��t��B`��~�1�@H�BXHc�L���H�4��z���H�S9j`�H�s0H��t�fDH�|$�H�|$H���H��H��[]A\A]�H�@H�l$H�X �
f�H�X H�{(H���p���H�CH��u��D��H����SH��H��tmH���H����H���H����H���H��t�H�CH��t	H;�tH���H��t�H���H;t([�fDH� H��t��H�C �x���DH�[��H��H�=1��H��H�=1��DH��t3�G��u$USH��H���?
t&H��H��[]��~���G��H�oH��t�H�}���H����@SH��H���H��H�5H��H�H�81��fDUH��SH��H��tBH;��t9H�^�H�H��u<�����H�H��u H�@H��[]�H���H�H��t�H��t�H��t%H�@ H��t�H��H�u�H��[]�f�H�@H��[]�DH���L�G(H�O H��PJ��H9�s!H�0H��t�H�p0H��uH��H��H��t�����ff.�f��fDH���uH���H��u�����@H���H�H9��teH����L�
H9wt4H�G0M�Q(I�Q H�J��H���fDH;G0t�H��PH9�r����H�GHH��t�H�@H�@H��H�W(�����tH�BH�@8H�@I�1��H�B�u�H�����t�H��΃���tр�HE��ȸ�����@��AUATUH��SH��(H�B8H�zPH�@H�p@��u	H�����u�H�mH��([]A\A]�H�H�Ӊƒ���u؋S\�� u8L�gL�o��:H� H��tKH�T$���t=H�D$�PL9�|R�S\�+L�oA���~$��Hc�L9�}I�D�H��4�u�����k���H�t$�H�t$H�@H�8�I�D��S\��@UH��SH��H��H� H��tH�?H�T$H�����t7H�t$H��t-H�FH��t$�8uH�=H���H��[]�f�H���H�=H��1�����AVAUI��ATUSH��H�R8H�FI�]PH�RH�h�L�r���?H������2H��у����!���I��u*A�M\�� ������Hc�H��u@H�SH�sH9�CH��L��H���H��I�D$H��I�D$H��H��[]A\A]A^�@H�s��DH�,�@��u�H�����t�H��H�����uH���`H��`t[I�D$�H��u;H�{ H���s���H�T$L������^���H�D$H=���w?��A�E\�E���H���H�@H�8�H�E��`H��`t�H��H����H���H�H�5H�81��ff.�f�AUI��H�w(H�� ATI��USH��H�W���1�1ҿVL��I���H��H�@H�@M����I�T$H��t�fDH��H��H��uzH�Z�H��t�I��H�] ��u
H�������H�E H��v6H�XH��t,H�]��u
H�������H�xtH�MH�H��H��[]A\A]�f�I�|$��I��H���fDM��t�I�U0H��t.�I�}��I��H���O���@H��H��H��u�H�Z�H��t��+���H��H������.���H�E��`H��`����I�$��`H��`����H��H������H��H�����u
H�E��`H��`t	H�E ����H���`H��`t�H��H�����DAVAUATI��UH��SH��t]H;��tTH�^�L�+I��uW�����I��I��H�H��u8M�fA��u	I�����u`[]A\A]A^�@H���L�+I��t�M��H��t�H��t"I�^ H��tpH�u�L��H��[]A\A]A^��M�fA��u�I�����t�L��L�����u�I���`H��`u�I�$��`H��`�t���[L��]L��A\A]A^�fD�H��I�F �u�H������t���H��L������a���I���`H��`�Q���H���`H��`�A���H��L����1���f�H���L�O(L�G H��PO��L9�s!H�0H��t�H�p0H��uH��H��H��t��M���ff.�f���H���u@H��H��H���t��H���ff.����H�G0H��u�H��H��t�H�����H�SH�8�H��H�H��H��p�H��[�ff.�PXH���H���ff.�f�USH��L�_0�l$0�\$@L�T$(I�C��Hc�I�\�PH9���H�G0�����]�I�\�fDI��I�B�I9�u�L�L�L$ I�S�H�T$8M�K�L�KM�K�I�[�I�s�I�K�I�C�I�C�I�S�M��u%H�O(H�W H��I9�r$I�C�H��[]�DM�C�H��[]�DI�S(I�S�H��[]Ð���L���i���HcL�GD�X�M�P�Ic�H)�I��L�WH��teSH��� uLL�H H�HH��I�DPH9�vJ1�H��~I��I�T��H��H9�u�I�A�L�WD�[��H��L�H������[���ff.�SH��H�w�Hc��H���H�CH��X�H��H�{(������H��H�H��H��H�pXH�C H�J�H�S0H9���H�K0H�HH��H�@�H�H�B�H�J�H�B�H�B�H�B�AH�B�H�B�H�B�H�B�H�B�ǃ�HǃH�C@�CL����Hǃ�Hǃ�Hǃ�[�fD��H�{(� ���D������AUATUSH��HcBXL�FL�Z8H��I)�I�CL�HIc��A�IdI��I��A9�����D)�H�L��H��H�@�H9�u�LcR\I�A0IciH�Z@N�,�H�G0L�RHL�bPH�l�PH�P�I��H9���H�W0H�QL�L�h�H�P�H�H�L�H�H�@�L�`�H�@�H�@�L�X�H��u9H�O(H�W H��H9�r8H�@�I���4L�FH��[]A\A]��H�X���f.�H�P(H�P���fDH���)��������ff.���AWAVAUATUSH��H��L�R8L�g0L�vLcjXI�BI�|$PM��H�hH�FH�{0%�D$H�� H�Ѕ��TI�t$XH�BPD���H�H�NE��~1E�A�I��1�M�xO�4��DL��M�,�L�l�L�hI9�u�J���EdD)ȅ�����H�D��H��H�A�H9�u�LcB\H�M0L�jPLcuN��H�JHL�B@�T$N�t�PH����Hc�M9���L�[0H�H�HL�O�H�O�H�G�H�o�H�W�L�o�H�G�H�G�L�W�M��u;H�S(H�C H��H9�r:H�G�I�t$XH���4[]A\A]A^A_�f�L�G���f.�H�G(H�G���fDH���)����H��1�H�T$�H�T$H�{0L�R8L�_�������ATH�G0USL�F L�X�L�IH�YE�PdL�!A�HH�pI��I�h0D�Hc�H�L�PI9���L�_0E����A�J�H�L��H��H�F�H9�u�H�qL�	H�h�H�p�H�H�L�@�H�@ȑL�`�H�@�H�@�H�@�H��u/L�G(H�w J�4�H9�r.H�@�H��tH�Q�[]A\��H�X���f.�H�p(H�p���fD����H���a�����PXH���!��H���f���AWI��AVAUI��ATUSH��H���B�`H�kH���k�kXL�c8L�KPH�K@I�E0M�t$H�[HE�F � ��H�PH�p�H��H�zXH9��I�u0H�rH��H�B�H�H�@�H�p�H�P�H�@�H�@�aL�H�H�@�H�@�L�`�H����I�M(I�U H��H9���H�@�E��x	A9����EI�OI�~��H�L��L�$H��H)�I�OH��A�VI�}0L�$H�WPI9���M�}0�@�H�Ĉ[]A\A]A^A_ÐH�H��f.�H�P(H�P��s����+���HcBXH�vD�X�L�V�Ic�H)�H��M�WH���x���H��� �H�x H�HH�,�I�D*PI9�v�1�H��~H��H�T�H��H9�u�I�A�M�WD�[X�#���I�U���A���� �@���H�D$@I�D$H�|$0H�L$H�D$PI�D$D�D$L�L$HL�$H�D$X�D$0 L�l$8H�D$`4H�D$p4�D$h�I�E0H�L$D�D$L�$����f.�D�uD�t$�I�Ic�H�$H��H�|$H�t$ �����E1��D$,H�D$H��H��L�$��
�I��K��J�t�H�<$�I�FL9t$u�I�WH�D$ L�t$H��I)�H�$I�HcD$,H��H)‹CXI�W�h+l$�kX���f�I�U���A����@���I�T$H�|$0H�$�D$0@H�T$PI�T$L�l$8H�D$`L�|$@L�L$HH�T$XH�D$p4�D$h�H�$���fDH��H�x�������D$H�T$���D$,����D��D�Ɖ��H�=1����AUATA��USH��H�H�C0H�PPL�hXH�S0H�PH�PX�G���wdH�H�.H�
H�H�<ƾ�A��H���H�5U��HD�HD�H��H���H�C0H�P�H�S0L�hH��H��[]A\A]ú��D��H��H���u)H�F�H��t�"@H�@�H��uH��H��H���t��2��H��tH���H�=�ff.����AWAVAUI��ATUSH��H����I��H�wH��I��I9�u<�H�{tH�MH�H�[ I�mL�m H��tyH�sL9���1�1ҿV�L�cH��L�`A��u�I�����t�L��H�����u�H�E��`H��`u�I�$��`H��`�w���L��H����g����I�EH��[]A\A]A^A_Ð1�1�L���V�L�cH��L�`A��u	I�����uuH�{tH�MH�H�[ H�] ��u	H�����uI�mH��[]A\A]A^A_�H��H�����u�H�E��`H��`u�H���`H��`t�H��H���븐L��H������x���H�E��`H��`�g���I�$��`H��`�V���L��H����F���ff.���USH��H��H�nH�{ H�u��H�E�H��H��[]�@��SH�FH��H�{ H�P�H�p��H��[�ff.���H��H�=1��H�H�H���D��H����H��t2H��4t,H�H98tH�H98tH�H98u
H��@H�H�WH�5���H��H�B0H��f.���SH����H�H�XH��(H�H��([���SH��(H��u�$DH�H��tH�{�t��H�H��u�[����ATUSH��(H��tML��(��EI��H�H��t2H�k�}u�H�}�>�H���H�+H��I�,$H���H��u�[]A\�f.���SH��H���H��[�fD��UH���SH��H���H�CH�hHH��[]����H��������S�H���H��t>H�CH��H�@HH���t-H��t��H�WH�RHH���tH��u
H�H��u�[�f�H��[�1�[����H��H� H��tH�?H�T$�1҅�tH�T$H��H���ff.�@��AVI��AUI��ATUH��SH��H��L�d$H��u��DH�[H����H�{ H��tH�?L��H�����t�H�D$H��t�H�PH��t�
��������HD�H���H��tTL��H��H1�#H��H�H��I�MH�I0H�Z H�jH�JH�
H�
H��t=H�HH��t4�9t/H�BM��tI�H��[]A\A]A^�fD1�1��w����H�B1���@I�EHD��O���ff.�@��H��H��H1�#H��H�H��H�
H9uH�OH�I0H9Ht�~���fDH9pu�H��tH�H H�
H�@ÐUSH��@��tT@��un�������H����@����H�nH�H9G uRH�EH�O(H9H0uDH��[]�fDH�����u�H��tqH��u�H�H�(�H�H�(H�H9G t�H�7H��H�W@H���H�k0H�C8H��	H�C`H�H�C H�EH�@0H�C(H��[]�fDH�H�(�I����H�H�(�9����H�H�(�)����H�H�(�����H��ATI��H!�UH��SH���t)H����uH9���1�[]A\�f�H��H��H��H��H	ШuH����t�H�������H��H	���H�������H�H�CH;t5H�H;��H;EuzH����ujH��H��[]A\�H;Eu�H����u��؃������K��������Ef.���������[�]A\�DH��L�����I�D$8H��t+H�P�4�:����H�
H9J��������4���H��H9�t-H�����f(��d���H��H9�tH������[���f���?���f��I������UH��H��SH!�H��H��xH�$�H�D$0H�D$ H�D$8H�D$@�t*H����uH9���1�H��x[]��H��H��H��H��H	ШuH����t�H�������H��H	���H�������H�H�CH;t6H�H;��H;EuzH����ujH��H����[���H;Eu�H����u��؃������K��������Ef.������
���H��x�[]�f�H��H�����H�D$8H��t+H�P�4�:����H�
H9J��������4���H��H9�t-H�����f(��e���H��H9�tH������\���f���@���f��J������SH��H��H��H��1��H9�tH�CH��t
�8t1�[ÐH�sH������1�[�H�FH�@H��tKUH��H��SH��H��H�v�H��tH�P�:
uH��H��H��H��[]�@1�H��[]��1��DATI��UH��SH��H��t5H�v�H��t&H�sL��H���H��tH�P�:
t	[]A\�@H�CH�@H��u�L��H��H��[]A\�9���f���H��tH�F�8
u�y���f�H���ff.����USH��H��H�l$H���H��tIH�P���
tVH��tH�T$H�H��tH�PH��t���tH��[]�DH��1�[]��H��t�H�T$H�H��[]�@H��H�ƿ����H��u��f�U��SH��H��H�|$H�t$�H��u1�H��[]��1�H��H���H��t݋��9�uԸ��ff.�����D����D��1��u���D��S��1��1�H��t>�����t���u/�Àt��u%f�H�@H��t'�8�u�����EЉ�[�f�1���ff.����SH��H��H�|$H�t$�H��uH��1�[���H��H����¸��t�H��[�ff.�@��H�vH�韽��ff.�@��UH�-SH��H�^�3��3��
��HcT�H�>��fDH�sH��H��[]�fDH��[]�f��sH��H��[]��H�sH��H��[]�fDH�sH���Hcs H��[H��]�f�H�SH��t�H�ZH���P���H�sH��H��[]�H�=1�����1�H���1�H��t�������H���ff.�AVI��H����
AUI��ATI��UD��SL��H�� ��4��uLA�L��L�,$�H��E1ɉl$H�D$H�H�OH��H�=5H�\$L�1��H��H�� H��[]A\A]A^���H��H�=�H��tW1��
H�����~D�P���u�lj��3D��H�H��H�81��f��=�(�H�H��tH���H��"�H�=H����D��H�H��tH�@0H��tH�@ �PH�H�5H�81��f���UH��SH��H���H�$1�H��tH���H��H��H�D$H�=��H��[]�f.���H��H��H�=�f.���AVI��AUATUH��SH��H�L�khL�cp�H�CpH�H����H�spH�ChH���H�t$L���L�kh�T$L�cpH��t�UH��[]A\A]A^��t�H�H���H�xH����D��SH�� H�H���H��tH;8u�UDH98tKH���H��u�H�<$H�=H�t$��H��H��H�D$�H���@H�p1�H����9�H�=�H��H���H��H�
��ff.�f���PXH�1�H��H��L�D$�H�t$H�<$�f���SH���H���H��H�����H�=H�G0H�w(H�� H�PP����H��tH�@H�PH���f.���H�H��H��f���H����H�W(H�G H��H9�s'H�FH��t	�H�~uH��PH9�r���H���1�Ð��H�O(H�W H��H��H9�s3�H�PH��t��uH�����tH�����uH��PH9�r�1��f���SH��PH�H�C0�@uH��PH�C0H��P[�DH�S�������@t�H�PHH�D$H��H�@ �$@H�\$H�D$H�BH�D$ H�BH�D$0H�D$(H�D$@4�D$8�H�C0���AWAVAUATUSH��8H�|$�eH�t$ H��H�T$(H��1�H�D$@�H�H�D$0H�C0H�\$H�D$H�H�|$0H�\$H�T$PH��$0H�D$P4H�G H���H�=�H�t$`H��$(H�BH�x1��H�H�HH�`H���H�\$H�|$(H�D$��H�P0H�L$0H�B@H�B H�J8H�L$H�|$ H�APH�D$��H�D$@H��$(H�|$H���H�D$@H��8[]A\A]A^A_Ð��H�D$�PH�@H���u���H�D$H����t\����H��$(H�L$H���H�D$H���H�xH���f�H�@0H�@0H��u�H��H��t�H���6���@H�L$HH;Hu�H�@H�t$H�D$@H�D$H�FHHdžH�D$8H�F0H9D$8�����xat~H�t$H��PH�F0H9D$8u����DH�L$HH;H�6���H�D$HH�D$8H�D$H�@0H9D$8t�xatIH�L$H��PH�A0H9D$8u�H�D$�@HHǀ�A�����H�D$H�@0�^���D�H�D$H�@0����H��(H�<$H�==	H�t$H��T$L��H�L$L���H��(�ff.����H��(H�<$H�=�H�t$H��T$L��H�L$L���H��(�ff.����AWAVAUATUSH��8H�H�D$8H�C0H�T$ H�T$PH�L$H�
�H�D$@H���H�|$HH��$0H��$(H�D$HH�t$H�D$PH�BH�\$H�|$`H�H1��H�H�HH�`H���H�|$HH�L$HA��H�t$ H�D$��H�D$81�H��$(H�|$H�t$H���H��t�H�D$8H��8[]A\A]A^A_�f.���H�T$�BH�BH��t���u�H�L$H�T$HH��H9Qu�H�D$@H�D$(H�D$H�@0H9D$(t�xat=H�t$H��PH�F0H9D$(u�H�L$H���H�@HǁH�D$81��1���f��H�D$H�@0���H��H�L$��T$��uH���H�H���H�xH�
��f.���UH��SH��H��H��t+�H���H��H��H��H��[]�f.�H�H�8���ff.�@��H����u4H�H�8�H�D$H��1�H�5$�H���f.�H�L$H�1��H�|$��fD��UH��SH��H��H�G0H9�t�xatH��PH�E0H9�u�H��[]�D�H�E0��ff.�f���H�H�@0P�ff.�@��UH���SH��H��H��@H�(H�PH��@H��[]�fD��USH��H�_ �H��H�D$�H�EH�D$H�l$H�@��H�X H�{(H���`��H�CH��u�H�|$�H�|$H���H��H��[]�fD��AWAVAUATUH��SH��(H�~ H�T$H�D$uvH�T$H�� A��H�����@D�c8L�t$I����oEH�|$H���oMH��HH�E D�c8D�k:H�C �C9�L�{(L�s0H��([]A\A]A^A_�H�=1��f���1��E���D��H��L�I��I�p0L���H��t6H�p L�H81�H�@@H�H���1�1�H��H���H�=�ff.�AVI��AUI��ATI��USH�V0H�2@����fDH��H��H�6@��t�H��H��tH�C H��t&H�H H��H�MI�[H��L��]L��A\A]A^���H�1�H��L��H��I�T$0H�H H�C H��H�MI���H�����H��H�T$�>���H���f���ATUH��SH��H�_0L�d$�H�U(H�E H��H9�r�-DH��PH9�sH�{t�H��L��H��H��P������@H��[]A\����AVAUATUSH��H�W(H�G H��H9�sH�~H��H��t	�8H�{u1H��PH9�r�H�D$H�H�5H�81���H���H�D$I��H��t�L�l$f.�L��H��H���"���I��L9�t:H�M(H�U H�CPH��H9�spH�[`H��u@H��PH9�s�H�xt�H���H�H�8�H��H�h I��H�CH�@L�uH�EH�D$H�E�f�EH��L��[]A\A]A^�1��^���ff.���UH��AWAVAUATSHc�H��hL�wL�%dH�%(H�E�1�H�H�E�H�E�����H�@ I��H��H�xL�h(H�}���~x�sHc�H��H����9H�E�H��x���H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%��L�L$I����f�H�E�L�M�H��x���I�I�yH��H��L�M��L�M�1�1�1�L���I�u L��L��M���A�H��H���H�CH��x���H�E��H�E�H�M�1�L��H���e��I�t$0H�U�L������H�U�I�I�WI�D$0PH�@ H��8H�M�dH3%(uRH�e�[A\A]A^A_]�DH�E�H�U�H��H��x����H�M�I������D1��@H)�H�L������D��H�=�H�w0������H��H�=�H�w0���@��H�=1�H�w0����f.���H��H�=1�H�w0�W�����H�=H�w0�H��tH�@H�@�fD��f���H�=H�w0�H��tH�@H�@H� uH��ÐH�@�ff.���H��H�=H�w0�H��tH��H����1�H���f���H��H�=H�w0�H��tH�p0H�xH���b��f�1�H���f���ATUH��SH��L�d$L���H��H��t	H�@�8
t#H��t	H�D$H�EH��H��[]A\�f���H��tH�xH�C�8
u�H��L���9�H���@��I��H�=SH��H�w0�L9@ uH�p0H�x�H9Xu[�f.�1�[�ff.����H��H�=H�w0�H��tRH�p0H�x�H��H��t6H�@H��t�H�JH��uH�R H��u�H���f�H��H��ø4��H�H�5H�81��f���PXH���Ѭ��H���f�PX1ҾH�=H������H��4uH�H���H�p����H���Hc�H�>�����H�=�J���f.���H�=�*���f.��H�=������H�=�����H�=�߫�����f���S�4���H��tH���H�=��H���H��H�H������PX�H��H�=腽��D��PXH��H��H�=�g������H��H�������t,H�GH�@8H�x H��tH�?H��H�5��H���DH���ff.���H�GH��u�Y�H9��tH���H��t{�uH�����t
�����tfH���H��t�H��tH�H��t9H���H���@H�OHH��t)H��tH�AH�@H�H��tH�AH���D1��D�H��tH��H��t�H����H�0�3�����H�
H��H��H��H�y0������USH��H�_0H�kH��t1H�;t<H���H�M H�uH����[H�=1�]�DH�CHH�@H�xH��uH���[]��H��H�CHH�x�H��H��H�=H��[1�]�f���AWE1�AVI�ιAUI��1�I��ATI��UH��L��E1�SH��H��H�L�{0�H�D$I�WA����A���D������7I���EA���KI�uH�D$H�zXL�@ H�C0H�H�H9���H�K0H�JH��H�B�L�2H�@�H�H�H�P�L�@�H�@�AL�h�H�@�H�@�H�@�H��tUH�p�L���H�C0PH��[]A\A]A^A_��I������X���I��t]M���I���H�H�0�>���DH�K(H�S H��H9�rH�@��DH�P(H�P��fDH�H�0����H�H�0��������H�H�0����f�H�H�0����H�H�0������H���tATL��(USH��(H��L9�tf�H�}�H�mL9�u�H��@H������H��XH�������H���H�������H���H�������H���H������TH���H������%H���H�������H���H�������H���H�������H�� H�����uqH��0H�����uNH���H��t�H���H���H����
�H��H9�tH�;H��t��H��H9�u�[]A\��H���H��u���H��0H�����t����H�� H������_������H���H������4������H���H������������H���H������������H���H�������������H���H������x������H���H������I������H���H������������H��XH�����������ff.���ATI��US��H��H��H�-�H���L��H����u:H�����t2H��у���D�H��s9��tH�р�H�xH�t��t/H���`H��H��[]A\������H����H��H�D$�H�D$�ff.����USH��H�H��0uH���[]�f�H���H��0H��H���H���[]�f.���H����AUATUSH��H��H��L��8HLJH��tH�}�H������H��@H��(Hǃ8H��0H��(H��tH�oL�/�H��A��H��H��u�H���M��tL���H���1�H�H��[]A\A]�f�1��ff.�f���Hc��?�P�H�H�<�����H��H�5���H�H��H�Ѓ��ff.���AT��USH����H�H��H���H�5H��H�H��L�`�H��L�`H��H�������H�=I���L��H��H���H�H�CpH���Hǃ�H�ChH��[]A\Ð��AWH�=AVAUATUSH��(H�H�0�L�-H��I�E�I�E���
��i�ƒ�����H���	<�)H�xH�-L�%L�=H�5�I�}�����H����H�5�H�H�8�H�H��I������H�n*H��H���H�߹H�D������H�߹H�[���H�߹H��"���H�߹H��!���H��1ɾ�H������H�߹H������H�߹H��������H�߹����H��������H�߹����H�������H��1ɾ�H��1ɾ�H��H��L���H�CH��H�C�L���H�I�}H�5L�0H�H��H�H��H��H�������	�ƒ�����	H����	<�0
H�xH�5�H�H�=H�0�H�
H��H���I�}H�5H��H����H�=�H��H����H�=�H��H����H�=�H��H����I�}H�5H���L�5�I��XH��H��������?H�T?H9��3�H�=H�T$�H���H�T$H��H���I��`H��������?H�T?H9����H�=H�T$�H���H�T$H��H���I��hH��������?H�T?H9��y�H�=H�T$�H���H�T$H��H���I��pH��������?L�t?H9���H�=�H���L��H��H���H���I�}H��H�5��H�=H�L�5�E1�E1��1�H��H���I�}L��H�H�D$�H��H�I�H�H�8�H�CH�D$�H�|$H�5H���H�H�|$I��H�H���L�sH�CpH�ChI��(I�� H�I��0H�CI��0H�I��8I��0�H�D$H�P H�C0H�PH�R0H�H�ShH�@(H�P �H�=H����1�H�}�+H�H�f��x1�袷��I�<$1Ҿ+蒷��H�1Ҿ+H�;�|���L�-1Ҿ+I�}�e���1�H�}�H��-f��z�B���I�<$��-�/���1�H�}�H�f��|�*����I�<$�E1��*���H�1���/f��~H�}�Ӷ��I�<$��/���H�E1�H�}��%fD���蛶��I�<$��%舶��H�E1�H�}���fD����c���I�<$����P���H�;����>���H�E1�H�}���fD����������H�H�8����I�<$������I�?�E1����ص��H�;����Ƶ��H�E1�H�}��<fD���衵��I�<$��<莵��H�H�}���fD����l���I�<$����Y���H�H�}��>fD����7���I�<$��>�$���1�H�}��H�f��������I�<$������1�H�;�	H���f����̴��I�}�	��蹴��1�I�}�
H�f�����薴���
��L�%I�<$�|���H�1����f���I�}�Y���I�<$����F���H�E1�I�}��AfD����!���H�;��A����I�<$��A���H�E1�I�}�
�QfD����׳��H�;�
�Q�ų��I�<$�
�Q貳��H�E1�I�}���fD���荳��H�;����{���I�<$�E1侗�e���H�E1�H�}��q1�fD����>���H�;��q�,�����qH�H�8�������H�f���H�H�8���H�;����ڲ��H�H�;���
fD���蹲��H��([]A\A]A^A_�fDH������|���H����H���i���H�H�8�^���f�H������3���H����H��� ���H�H�-L�%L�=H�8����D�I�������H���z����H�������H�����H�-L�%L�=H�}��f.�H�H�-L�%L�=H�8��@H�H�8�u���f�H�}�c����I�<$�S����L�%H�-L�=I�<$�*�f�H�H�8�����H�H�-L�%L�=H�8���@L�=H�-L�%I�?���I�?������USH��H�H��H�P(H�@ H�D�H���H�x@��u	H�����uH��[]�f.�H��H��H�����u�H�E��`H��`u�H���`H��`t�H��H��H��[]�@��U��SH�����H���H���kH��H���_H�}H��1��@H��H�E�HDž�H)�������H�H�{H��H�-H��H�Hǃ�H)�������H�H��(Hǃ8H�=H��0H��(ǃ������H�����H�=H��X�+����@�H�=H��`������H�=H��h��H��`�?H��pwHǃ`�H=�?wHǃp��H�H��8�H�]H��1��ɶ��H��H��[]�H��"�H�=H�������SH����H��0�H��X[�D��H�H����ff.�f���H�SH�H�8�H�����H�51�H���H�H����H�H����H�H�5[H������H���@��H���@��H�H�ff.�AWAVAUATUH�-SH��H���I.H�G0H�<$I��H�I�� @��I�GM�fI��L��H�h�H�$M�7I�oH�� H��H�L$H�҅��DRE��A����/E��A�����-H�$H�P(H�@ H��A���yMA����KA���t`M�W0M�A����[L��DH��H��H��t�I9��NaL��L�רu<�H��H��H��t�H��t-H9�t(H9�tBH��PH9��aH�{0H��t�H��H��u�H�C�8�
L�{��LH��H9�u�H�C�8u�H�ڹ��,��I�OI�WXI��I�GHcqdH�h�H���9M�7H�T�I�GH�rHD�H9��T_H�$H�� H�D$H�Ѕ���PH�$H�$A�GH�P0H�BPH�A0�l,H�JPH�PI��H�*H��I��H�P�!���I�VI�FL��L��I��I�H������PH�UH�H��H�U�cf���I�^I�FM��1�I�I��L���CH�މCX蘝��HcSXH�����H��H��H)�I�WH�4H�sP���H��L��H�<$�S`H��4�;I�WH�H��I�WA�d$���I�nI�^I�� I�GM�f��L�h�H�H���M�7H���I�oH�D$p����:���v+I��A��t$���W_H�������J_������<_A���U_I������H_A�E�����8_L��L��H�L$�L��L���7���H�L$H���RO����AL��H���H�L$H��@���U^H������H^�E�����9^E1�M���!:H�}H�L$�H�L$H9��:L���H�5H��H�H�81��@��I�FI�VL��I�I�ƅ��M�c@��M�nL��L�t$L��H���L��I�I��A�EL��A�EX苛��IcUXH�����I� I�o(M�gH��I�}PH)�I�WH�H����\H�EI��H�@@H��tI��H��I�0�����tI��tDH���H�L$ uH�����t	����>H��L�D$H�T$�H�T$L�D$H����\M�E0L��L��H���h�������{]����&\I�}0H����6H�
��A�E\ I�M`L��H��H�<$��H��4�:8H�SH�H�D$H��H�S�`f���M�fI�FL��H�����I�I��IcD$L��A�D$XH��H)�H��I�WH�4I�t$P����L��L��H�<$A�T$`H��4��7I�WH�H��I�W�e��I�^I�W I�FL��I�I��M��H�SPI�W0HcCH�CHL�
�CXA��u@I��M�	A��t�I�UI��H���������[M����[M�aA��uI�����tA�$�����8+A��$�I�mH��I�Q �L$H)�H���'*�D$A�A��$�~�@NH�$L�x0�C��OH�KH����N�SXA����:A;�$���L�L$���>L�uL���L�uH����=H�Ic�$�L�L$�� H����=H9x��=I�WH�T�PI9��R1҅�~+H�x�H��� I��uL�@ Hcʃ�M��L�D�9�|މSX�C\1�A�t$dID$0I�mLcl$E�T$I�yM�AD)�|$N�\�I�	H�H��H��ARH��I��jH�¡VL��ASPH�\$0H���ѫ��H�S0H��0H�I��I�� fD��I�FI�O0I�VL��M�fL��I��I�H��H)�H�9@��uK@����XH�������X�������XK�t$�H��u"�H�EH�H��H�E�c�D��s�1���fD��I�FI�WL�t$L����H�j�L�j�I�V��I��I�I�o�ʨ��3H��L���#�H�����u1�H�CH�H��H�CH�D$�`H�\$���fD��I�FI�WI�v L��I�NM��H�D$I�FI��L�B�I�7H�r�I�w�Ń��TYH�=��Hc�H�>��D��I�NI�vL��I�7I��H��I)O�`���I�GI�vM�FL��M��H�x�H��M�H�<�H�x�I�G�b���I�FI�vL��I�I��I�GH��H��H��H)�H�w�H�p�I�G�bf.���I�WI�vL��I��H�z�I�7H�z�I�W�a@��I�GI�vL��I��H�x�L�@�I�7L�@�H�x�I�G�a@��I�NI�FL��M��I��I�I�GH�4�H���&GH��H�H���H�H��H�P�H9�u�I�p�g���I�GI�~L��I��H�p�I�?H��H�p�H�p�I�G�a@��I�NL��I�oI��I��b���I�GI�VL��H�x�H�p�I�FI�oI��I��I�WH�H��I�W�e��L��I�^L�t$M��H��I�I��H�\$�H��H��H��L�$�H��t"I�EH��J�T J�4 I���H��u�L�d$I�EI��L)�H�(H��I�EH�D$�`fD��I�GI�^�M��H�
H�L��L�h�I�FI�oI�I��L���H���I6H�������4H�UH�H��H�UA�d$D��I�G�L��M��H�
H�H�h�H�@�I�oH�D$I�FH��I�I���H�|$�H�H�
I���H��I����5H���T5I9��15H��L���I�UH�H��I�U�cfD��M�VI�OI�FM��I�nM��I��E��H�y�H�Y�I�A��I�_Mc�H�|$xI�@��u
H������^$H�L$ D�L$L�T$L�D$�I�uH�L$ H�D�L$H�D$xL�T$L�D$I��L�I�u�� �Y"H��H�p��A����!H9���)1�1�H9�s'H�L�1�@L�H��H��H��L�S�L�L9�w�E����?H�D$xH��$�H�D$xA�`D��I�FI�~L��I�I���I�WH�H��I�W�c@��I�~I�FI�wM��I�I��H��H��H��I_H�H��I�_A�d$��I�F�"H�=L��I�I���I�WH�H��I�W�e@��I�FI��L��H�<$M�7��H��H�$��MH�@0I��H�I�� @��I�WI�FM�fL��I��L��H�r�H�J�I�H�B�I�GH���u��H�=H9u*H����uH���H�UH�H��H�U�cA�D$H�r�L��H�J�H�UI�t$PI�D$HA�D$X����L��H��H�<$A�T$`H��4u�H�$H�@0I��H�I�� f���I�GI�~L��L��H�p�I�FI�oI��I�H������A�H�SH�H��H�S�e��I�GI�^I�VL��I��M��L�h�I�oH��I�L���p���H�C8H��t
H�@�8�4 I�T$�CL��H��L�*H��I�T$H�CH�CXL�kP�,���H��L��H�<$�S`H��4�0I�T$H�H��I�T$�e���I�GI�VM�fL��I��L��H�p�I�H�P�H��I�W@��u
H������b&@����)H�=�����)H�FI��H��I��H1�I���0?H�H�K�e��I�WI�FI�^M��I��L��H�r�H�z�I�I��I�H���u}H�����ttH�
L�NL;	��?H�
L;	�18H�
L;	uDH�
���u4H�VH���;KH�B�����HD�H�L�EA�d$f.��CH�r�H��H�UH�sPH�CH�CX讴��H��H��H�<$�S`H��4��.H�}L�GH�L�EA�d$��I�GI�VM�fL��I��L��H�p�I�H�P�H��I�W@��uoH�����tfH�=L�FL;�p>H�=L;�o9H�=L;u6H�=���u&H�v�H����IH�FH��H�H�K�ef�H�p�L��H�CA�D$I�t$PI�D$HA�D$X踳��L��H��H�<$A�T$`H��4��-H�SH�JH�H�K�eD��I�GI�VM�fL��I��L��H�p�I�H�P�H��I�W@��uwH�����tnH�=L�FL;�J=H�=L;�z6H�=L;u>H�=���u.H�v�H���QIH�FH��H�H�K�ef.�H�p�L��H�CA�D$I�t$PI�D$HA�D$X踲��L��H��H�<$A�T$`H��4�
-H�SH�JH�H�K�eD��I�GI�VI�vM��I�nL��I��L�h�H�H�I�I�OA��u
I������L�)H��H�CH�L$�H�L$L��H��H�A�EH�CH�EH�EXL�mP�
���H��H��H�<$�U`H��4�+H�SH�H��H�SA�d$���I�oI�FI�vL��M�fL��I��L�m�L�E�H��I�I�oA��u
I�������H�EL�mH��H�CH�L$L�D$�L�D$L��L��H�EH�CL�@H��H�CA�D$I�D$HA�D$XM�l$P�;���L��H��H�<$A�T$`H�L$H��4I���%*H�CL�H��H�C�a���I�GI�VI�^M��I��L��H�x�H�p�L�h�I�H�P�I�W@��uCH�����t:H�
H�WH;��;H�
H;uH����u
L����GH�x�H�p�H��L�h�H�E�CH�{PH�߉CXH�CH�Z���H��H��H�<$�S`I��H��4�B*H�EL�(H��H�EA�d$@��I�GI�VI�^M��I��L��H�x�H�p�I�H�P�I�W@��u@H�����t7H�
H�WH;��9H�
H;uH����u��@H�x�H�p�H��H�E�CH�{PH��H�CH�CX药��H��H��H�<$�S`H��4��)H�UH�H��H�UA�d$f���I�GI�VI�^M��I��L��H�x�H�p�I�H�P�I�W@��u@H�����t7H�
H�WH;�}9H�
H;uH����u��@H�x�H�p�H��H�E�CH�{PH��H�CH�CX�Ů��H��H��H�<$�S`H��4��(H�UH�H��H�UA�d$f.���I�OI�FM�fL��I��L��H�q�H�y�I�H�Q�I�WH��H!��t/H����uH9���HM�H�H�BH�C�eH��I��H��I��L	����jL�A����U�������6�N�������`6�Gf.ȹHC�����I�WI�FM�fL��I��L��H�r�H�z�I�L�B�M�GH��H!��t/H����uH9���HN�I�@I�H�C�eH��H��H��H��H	�����H�������������1�N�������7;�Gf.ȸHG�����I�OI�FM�fL��I��L��H�q�H�y�I�H�Q�I�WH��H!��t/H����uH9���HN�H�H�BH�C�eH��I��H��I��L	����|L�A����g�������4�F�������B5�Of.ȹHC�����I�GI�VM�fL��I��L��H�p�H�x�I�L�@�M�GH��H!���t/H����uH9���HM�I�@I�H�C�eH��H��H��H��H	у���H�����|�������/�F�������L8�Of.ȸHG�����I�FM�fL��M��H�D$I�GL��H�X�H�@�I�oH�D$I�FH��I�I������I�D$8H��t
H�@�8��I�EH�L$H��L��H�H��H�H�I�EA�D$I�D$HA�D$XI�\$P輪��L��L��H�<$A�T$`H��4�$I�UH�H��I�U�e���I�GM�fL��L��H�H�L�h�I�FL��I�oI��I�H��L��H�L$�t���H�L$H��4�?&H�SH�H��H�S�e��I�GI�VM�fL��I��L��H�p�H�x�I�L�@�M�GH��H!���tPH����u@I��H��I�H�M��A��H���r$E���i$H��H�I��H�DI�I��L�C�eH��H��H��H��H	ʃ���H�������������u-�O������|6�F�H�0fH~�H9���0fH~�H��<��������9H���u0H��L�C�M���@��I�GI�VM�fL��I��L��H�p�L�@�I�H�H�I�OH��L!ƒ�tcH���~uSL��H��UH�H��H���['H���J7H�H��H��H9�yH��H�@H��7H�D�WH��L��H��H��H	ʃ���H���~���������,�FD��������5�AH�^��gm��H�K��fD��I�WI�NM�fL��I��L��H�B�H�r�I�H�J�I�OH��H!���tnH�=��|u^I��I�tHH�I�����-M���6H���\:H��������?H�I��H9������26L��H��H�DH�H�AH�C�eH��H��H��H��H	�����H�
��|���ƒ����#,�H�������3�F�Y��Vl��H�K���I�GI�VM�fL��I��L��H�p�H�H�I�H�P�I�WH��H!σ�tEH�=��zu5H�H�H�@H��I��H)�H���/H�DH�H�BH�C�eH��H��H��H��H	�����H���z���������)�F�ȃ����4�\A�{k��H�S�D��I�GI�VM�nM��I��L��H�X�H�p�I�H�P�I�WH��H!��tBH�
��xu2H��H��H��H��H1�H�H��H1�H���I0H�H�BH�EA�d$H��H��H��H��H	ʃ���H���x���؃����")�K�������2�F�X��j��H�U�@��I�WI�^M�fM�nI��H�j�I�I�o@����
@���������yH��t#@����H��4��6�M�����5�#��I�^I�FM�nL��I�I��M��H�H��tnH���H9$�TL�l$L�,$�%D�H�H��t=H����I9��I�� H��A��t�1�L����H�H��u�L�kI�T$L�*H��I�T$�eD��I�VI�FI�~L��I��I��H�H9uH��H�rI��H�QH�2H��H�Q� f.���I�WI�^I�nI��H�R�I�I�oH�������H�<$H�� H�D$H�Ѕ���)H��I��#@��I�WI�^I�nI��H�R�I�I�oH�������H�<$H�� H�D$H�Ѕ���)H��I��#@��H�<$I�nI��M�7H�� H�D$H�Ѕ��.I��I�� f���M�fI�GI�VL��L��I��H�H�I�|$4L�h�I�I�O��H�H+M�l$I�$H�L�)H�C�e��I�FI�nI�w0L��I�I�I��M���I��H��uS��=fDI�|$H��t:H����u%H�����tH��փ���t��uf.�I�$���CI��I�D$ H��u�H�=1��I�|$@��uH�����tH��ƒ����*H����<H���I�UH�H��I�U�c���I�WI�_ L��M�fI�NL�j�I�VI�oI��I����-<H������ <H��ƒ����<���<��u:L�C% I�PH�z0I9<$��1I�T$H����H�CH�sH9���L��H��H����efD��I� I�FI�NL��M�nM��I��I�@��u
H�������L���H��I�D$H�(H��I�D$�cfD��I�OI�vI�VL��I��H�I�I�7I�w0I�oH��uH��H��H��t�H�<$�	����cfD��I�w0I�FM�fL��I�VI��I�L��H��uf�H��H��H��t�M���RH�<$���H�UH�H��H�U�cfD��I�OI�VL��I�vI�G0L�A�I�NI�oI��I��х�~1�fDH���H��9�u�H��H)�L��g���I�VI�FI�vL��I�I��M��I�G0�х�~1��H���H��9�u�H��H)�H�I�@H�H��I�@�gf���I�VL��I�I��`@��I�FL��I�I��I�GH�H��I�G�a���I�FL��I�I��I�GH�H��I�G�af���I�G0I�NL��I�wH�H��H�~�I�vI�oH��I�7I��H)�H�8H�B����I�NI�wL��I�G0H�~�H��I�vI�oH)�I�7I��H�8�bD��I�FI�VL��I�I��I�G0H��H�H��H)�H�I�GH�H��I�G�f@��I�VI�0I�vL��I�7I��H��H)�I�WH�7H��H�r�I�W�af���I�FL��I�I��I�GH�UH��I�G�af���I�FI�vL��I�I��I�GH�0H��I�G�bf���I�VL��I�w I�I��I�WH�2H��I�W�af���I�FL��I�I��I�GH�H��I�G�af���I�WI�~L��H�r�I�VI�oI�I����cfD��I�FI�~L��I�I���I�WH�H��I�W�c@��I�OI�vL��H�y�H�Q�I�NI��I�I�o@���l4H������_4������Q4��cD��I�GI�nL�t$L�|$H�x�I�FI�oI��I�H���\@���4H�������3�������3H���H�L$H�QH�H�D$H��H�Q�`@��I�FI�w0L��L��I�H�D$I�GL�`�I�FI�oI�I���I��H��uI� 7@I�}H��t3H����uH�����tH��փ���t��uI�U����I��I�E H��u�H�=1��I�}@��uH�����tH��ƒ�����H����5H�t$L����c��I�nL��L�t$M��H��H�U�I�I��L�m�H�4�H�����H�T$H)�I�wH�<�H�T$H��H��t#f�L��I�D$H��I��H��H�4��I���u�I�D$H��H)�H�H��I�D$H�D$�`���I�FI�~L��I�I���I�WH�H��I�W�c@��I�vI�FL��I�I��I�GH���H��H�p�I�G�bf���I�FI�VL��L��I��I��������eI�w0I��H����+�4H��u	H�PH��u	H�@ H��u�H�CH�H��H�C�e��L��I�NI�~L�t$H��M��I�H��I��H�|$H��L�e�H�L$�H��H�����H��H��t%@I�EL��H��I��H�(H���I���u�H�l$�t$H��H��I)m�H��H���I�EH�(H��I�EH�D$�`@��I�GL��H�x�I�FI�oI�I���I�WH�H��I�W�eIc�1�H�$H��9D�HH�H��H��H��[]A\A]A^A_Ã���H�=1��f.����4A���4I�������3A�E������3L��L���p��H���K!��L��H�����H��@����2H�������2�E������2E1���H�<$��{��L��H��A����H��'�C$�]H��+��H��`�3H����h���H������j�H���o�H���f�M�����W��@J�\#�H����1�H��u�fDH9���H��H��H��H�KH9�u�E�����H9���L�D$�L�D$H����H�p H�P����#�#@����@����E��@��uH�����t	��������H�$�@H���H��f.�H��H��H�CH9�w��T���H�=H9x����L��H��H��H�������H�=H9x���H�T$H�t$H�����H��4���H��H��H�����H�B E1��@:���D$A��A������H�H�I9E���H�������L��H�t$H�L$L�D$�L�D$H�L$H��H�t$��(I�o��H�H�:I9}���H�������L��H�t$�H�t$H���x(I�OH�A��H�H��H��A��A��A����������C��)H�sH���*Hc{XI�EM�AI�	H��I��M�aH��H�H�D$I�A H����H�@ �x:��H�t$H�L$(L�D$ L�L$�|$�L�L$D�T$L�D$ H�L$(I��L�\$H��M�IL��D�T$��jH�|$I��H�G0�wXj�pjH�|$0�F���H��0D�T$1�L�\$H�L$A�D��I�t$L��A�T$H�$I]H�y0H�WPH�|$H�Q0I�]H��4�n/H�H��I�]�eH�������H��H	ʃ���H��������H�H�H9V��H;Q��H���z���������,�N�ȃ�����,�A�\�f(����H�������H��H	�����H�������H�H�H9V�zH;W�pH�����\�������,�O�������+�F�$�f.�H������kH��H	����\H������OH�H�H9F�;H;G�1H�������������*�O�������*�Ff.��HG���DH�������H��H	����H�������H�
H�SH;� )H�
H;��(H�
H;�sH���x�_H���H�U��fDH�������H��H	����H�������H�
H�	H9H��H;N��H�
��|���ƒ�����)�H��������H��H9��x&H���:e�����DH�������H�p�H�x�L��H�CA�D$I�t$PI�D$HA�D$X臐��L��H��H�<$A�T$`H��4��L�C��H�������
H�p�L��L�@�H�CA�D$I�t$PI�D$HA�D$X�,���L��H��H�<$A�T$`H��4�0H�KH�H��H�K�eH��ƒ����K�L�OI�QH�R0�� ��!H�GH�oH�D$H;��!H� L�L$H�L$H����!H��$�L�������!L�L$H��$�H;D$H�L$I�QH�R0�i'H�AH��r!DH�H�
H9N�lH�����XH���I�WH�JH�I�O�eH��1�H)��5��H�D��H��H9�u�H�����A�D$H�q�H�y�L��H�KI�t$PI�D$HA�D$X�Ɏ��L��H��H�<$A�T$`H��4��H�S��A�D$H�q�H�y�L��H�KI�t$PI�D$HA�D$X�{���L��H��H�<$A�T$`H��4��H�S� �H�p�H�x�L��H�CA�D$I�t$PA�D$XI�D$H�-���L��H��H�<$A�T$`H��H��4�m
L�C�@�A�D$H�r�H�z�L��H�SA�D$XI�t$PI�D$H�܍��L��H��H�<$A�T$`H��H��4�	
L�C�N�H�p�L��H�H�H�CA�D$I�t$PI�D$HA�D$X苍��L��H��H�<$A�T$`H��4��H�S���H�r�L��H��H�B�H�SA�T$I�D$HA�T$XI�D$P�:���L��H��H�<$A�T$`H��4�DH�K��H�p�L��H��H�X�H�EA�EI�EHA�EXI�]P���L��H��H�<$A�U`H��4��H�U�%�A�E���z���H�D$L��m���H�����H��������H��ƒ��������@���I�E(����H����������������H;xHD���DH���T�H������G�H��ƒ����6��@�#�H�E(���H��������������H;xHD����DH�p�L��H�CA�D$I�t$PI�D$HA�D$X踋��L��H��H�<$A�T$`H��4��H�SH�JH�H�K�e�H�� 0�������������H�Ef��H�D$�D$H��$��L$��L$f.�zKuI��$�f(�fT
f.
w*�
f/��	!f/�� �H,�H�l-H����g��L���H��$�H��H������:J��I��#I�m@I�uH���H�
p�I�E8I�M`M��u��M��$�M��tI��$�t�H�
A�H�����H�@������L9`����I�E@I�uH��H�xI�}0�I�M`I�E8����E1�I�EL�|$D��H�D$A���:�H����H9���H�D$H�<�H��D���T�H������F����I�EHc�� u�I;U��I�E ��H�$I�H�@0H�p0�I��H��u�q�M�d$ M���\I�$�u�I�D$ H��H���)H��$�L��L�d$ I��H�D$�DI�D$ L��H����I��L�)A���u�H�YH��t��H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� L���H���L��I��H���H�D$pH�X H�<$1�H���q��H���H�pI��H�w�5_��I�|$H���tH�I�$I�t$H�w�	_��I�D$I�t$ H���H�GH�w ��^��I�$�ĀtH���H��M����H�<$1�H���p��I���H�pI��H�w�^��I�|$I���tH�I�$I�t$H�w�z^��I�D$I�t$ I���H�GH�w �\^��I�$�ĀtI���H��I�0�s�KdI�WL�H�C0A��uf.�I��M�	A��t�H��I��E1�VH��jQH��R�1PH�\$0H���zt��H��$�H��$�H��$�H�C0H��0I��H�I��H���H��&��"H�����H�$H�@0I��H�I�� H�$H�@0I��H�I�� I�w0I��H���H�PH��t�>�H�HH����
H�@ H��u�� �H�H���L�l$H�$L��H��H�xH��H�=��H��H�I�|$H�CH��I�����L�l$L��謜��I����H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� H����W��H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� �H�sH9��~�L�,�H��L���\���eM�����H����H���H�I��I��H)�H��yE��tL�H�D�f��H�\$�x������
A��$�9������`I�wHc�H�D�PI9����q�Hc�A��H�D�A)�L��H�H�T�H�H��H9�u�KX���I�L���I�OH�A��L��H�T$�H�T$I�����H�D$H��$��H��$��H�����H��$��H�D$H��$��H�T$I���O��H��$��L��$�����I�GL��L��L�(H��H�H�I�GA�D$I�D$HA�D$XM�l$P�Ѓ��L��L��H�<$A�T$`H��4�r��H�$H�@0I��H�I�� H���H�<$�GH�:�H�����H�T$H��H������H��H��I���H��H���H������H�@H��4�`�L9�u�L�d$ H�$I�D$H�Q0H���	
�u>H�����t6H��΃���u)��@t$H�R(��uH�����t�
����uH;BHD�H��H������H���������"������H��L	ƒ��@�I�������3�H�H�H9V��I;P��H���~���������ND��������A@�^�f(��G��H�K��H��H	����V�H������I�H�H�H9V�5�H;W�+�H��������������O��������F��F��L�C�����H��H����H9��<��A��$��SXL��H�<$A���KL��H��H�L$�H�L$H���F���H����H�H��H���������E���s��H��H�4�L�D$H)��L�D$H��R���H���+�H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� H��$�I�w�L��L�A0�de������I�u�H�VH�I�U�c I�w0I��I�wH�VH��u��fDH�@ H����H�xt��H���I�w0H��Lc�H��uH��H��H��t�M����H�<$1���c��H����I�uH�VH�I�U�c L��H�L$�S=��H�L$H��H���1�H��H������"����H�|$�rI�u�H�VH�I�U�c I�w0I�H�L$�H�L$H��H��uJ��f�L�bI��t6L���u"I�����tI�4$A��A��A��t��uH����H��H�B H��u�1�H�=H�L$H�T$�H�T$H�L$L�bA��u>I�����t5I�$�ƒ���u'��@t"I�E(�uH�����t�����uL;`LD�I���`H���L��H���H��������H���I� H���H�����������H���H���H���H�������H�|$����������-���L��L�D$H�L$�;��H�L$I��H���1�L��H���H�L$L�D$H���l���G��������L���I� H���H����������f�I�G0H��uH��H��t�H����������H�I�U�c H��L�D$�L�D$I��I���0A���/I�������"A������L��L���H�H��������f���H�
�������H��� �H�~�„ҺHE�H�L�EA�d$H�=����r��H��� ��
H����H�DH�H�K�eH��f�H9��0��H��H��H��?H)�H	�H��H�D$�~D$���H��f��H9�����H�ڸH��H��?H)�H	�H��H�D$�~L$���H��f��H9��y��H���H��H��?H)�H	�H��H�D$�~L$�O��H��f�H9��'��H��H��H��?H)�H	�H��H�D$�~D$���H��f�H9��:��H��H��H��?H)�H	�H��H�D$�~D$���H��f��H9����H��H��H��?H)�H	�H��H�D$�~L$����H��f��H9�����H���H��H��?H)�H	�H��H�T$�~L$���H�=����}��H��� �H����H�DH�H�K�eI�0L��H�H��H��t1�H�H��H��H9�u�H��t%I9�s H9�u�pH;S0��H��PH9�w�1ҹ��A��$���<����L�uL�L$L���L�uL�L$H�����SXA��$����H�$H�@0I��H�I�� H��H9����<��H�$H�@0I��H�I�� H�E H�$�AH�8�1�H���I��#1�H���I��#H�$�@H��A�1�鶳��E���=L9���I9����L����H�H��H9������H9�u��Ƴ��H�$H�P0H�z �6���+���H��L�D$H)��L�D$H��8���H�$H�@0I��H�I�� H�$H�@0I��H�I�� H���H��H�$H�@0I��H�I�� �L�C����I�w0M�WA�:tiH�{�?��H�H��H���H9��H9S0u
�%�H��H�CPH9��rH9P0u�H�{`H��I9����I��A�:u��{���
H�H��H9�v"H9C0u�@H;C0�uH��PH9�w�H��H�=��H���L�S`H��P�0���H��f�H9��\��I��H��I��?L)�H	�H��H�L$�~D$�2��H��f�H9�����H���H��H��?H)�H	�H��H�L$�~D$�d��H��f��H9��:��I��H��I��?L)�H	�H��H�L$�~L$���H��f��H9�����H���H��H��?H)�H	�H��H�L$�~L$���H���L��I���L��H���I�W���L���L��H���L��H��H���L��H��L���E1����H�t$�H�t$I��H��H��L��H���H�SH�JH�H�K�eH�
����.��@���$��H���z��H�=�������H���I�WH�JH�I�O�eH�=����|���H���I�WH�JH�I�O�eH�
����o�������H��$��H�H��I��#H��H��H��H�I���L��H���I�W���H�
������H��� �B���������<���H�
����B��@���8��H�L������H�I�w�g1��I��I�� H����1����H�<$H�G�����������H�G0��$�H��$�H��$�I�G HDŽ$�H��$��4HDŽ$���tI�GH�@�H��$�H��$�HDŽ$�4DŽ$���c1�H���魭��1�H�������H���1Ҿ�
H��1���S���M��u
H�H�H��L��H�L$�L��H���L��H��H���L��H��L���H�L$H��E1�H�����H��H9���H��H��H��?H)�H	�H��H�D$�~D$�-��H����?��H��f��H9�����H���H��H��?H)�H	�H��H�D$�~L$�x��H��f�H9��r��H��H��H��?H)�H	�H��H�D$�~D$�H��H��H9��'H��H��H��?H)�H	�H��H�D$�~D$���H��$��{��H��f��I9��,��L�¸I��H��?H)�L	�H��H�D$�~L$���H��H9�����H�ʸH��H��?H)�H	�H��H�D$�\D$���H��f�H9�����H���H��H��?H)�H	�H��H�D$�~D$�����������H�<$E��H��H��L��L�L$�?L�L$�C\H�H���j���H���H�K�<�H��H�H��H�����H���L��I���L��H���H�K���H����H��H�I��H9����|���D�T$@L�L$(A��H�L$h�D$�Ic�I�wL�L$(��H��H�D$0D�T$@H�t$ H�|$8�PD�_�H�L$hH��E1�L��L�l$@H�\$HM��H��L�d$XM��H�l$hH��D�\$(L�L$PD�T$d�I��K�T�J�t�H���I�FM9�u�L�l$@H�\$HL�L$PL�d$XD�T$dH�l$hI�GH�T$8H�L$ H�|$0H��H)�HcT$(H�9H��H)�I�G�CX�P+T$�SX�C���H�sXL��D�T$ L�L$�^��D�T$ L�L$����H���wH�I��I��H)�H��y	E���x�H���o��m�@H��L�CH��H������H��I��I��H�I��H��H)�H����������H�<$�I���GS����H����I��'���I��+����;�H����H�{ L�D$H���
��H��H��$�H�L$�H�L$������H��$�L�D$I�D$I�@H�@0I�$������������H�@H�FH��	�H���H�SH�JH�H�K�eH�@H�FH����H���H�SH�JH�H�K�e�#H��L��H��H�H���{���H��������?H�I��H9������H�D$H�oH;�1HcAH;D$�i��H������B��L���H�=H��1���$��fD�4�A��H��D������H��H9���H��f��H��?H)�H��H��H	�H���	�H�ڹA�����I��`�
	��b�H��H�I��H�����H��H�I��H9�������/Z��I��&�����H���r�I������e�I�$�ƒ����S���H��$�H��$�1�����C��!�L��L��H�L$L�D$�L�D$H�L$�l���L���醺��H�CH�H���H+P0H������t�H�F�A��H�� D9��Z�8	u�xH9�v�xH9�w�Ic�H���D H9��1�H�ڹ���f�H�$I�H�@0H�p0�H��H��u�fDH�R H����H��u�H�J H��t{L�l$H��I��H�ˉl$�H�K H��H���%H��H��u�H�hH��t���L��H��H�T$ �H�T$ H��t�H�x4L��I��L�l$�l$���M�����H�BH�$H�Q0H���G�u?H�����t7H��΃���u*��@t%H�R(��uH�����t�
����u	H;BuH��L��H���H����H�$H�sXL�L$H�x0��X��L�L$����H�$H�SXL�L$H�@0H�xH�D$�A��L�L$����H�l�H��4�������fDH�ڹ���f����f��R��H��$����L��H��$�HDŽ$��H��4���H����������L���.���H�H�K�e�H�����H�$H�P0H�z �x'�����H��Hǀ�f���H�L�EA�d$H�H�K�ef��fH~��7�����L�����H��L�D$H�L$�H�L$L�D$H�@H�8�O����|$H�D$ �O��L$(����H�8A��$��� �uI��I��A��I�wHc�H�T�PI9������M��~D1�1�L�P��*�6f.�L��H�<���H�|�9�~Hc�L9�}H�8�� u�H�x ��1҉SX��H;V���H�
��x���H���H�U����H;V����H�
��x�����؃������K��������H��H9�����H���<������H��f�I9����L���}<�����H�l�H�AH��r���L���H��$�H��$��H�5H��H�H�81��H��f��H9��b�H���<��f(��Q�H��H9���H����;��f(�����H�
��H�5H�=�H��f�H9��>��H���;���1��H��f��H9�����;��f(����H��E������H��f��H9�����H���L;��f(�����L����X��f���c���DL�@���H��f�H9��2���H���;���%���H��f��H9�������:��f(�����H��f�H9��*��H���:�����H��f��H9�����H���:��f(�����H��f�H9��_�H���k:���R�H��f��H9��(��J:��f(���L�L$H�L$�H�L$L�L$H�@H�8����H�<$H�O H�=H)�H)�H��H��H��1��H�=1���L��l$L�l$�!���H�
�SH�5H�=�H�H�5H�81��H���H�H�5H�81��L���H�5H��H�H�81��H�|$ uH�����tA�����uI�hI�}P�H��H�5H��H�H�81��L���H�5H��H�H�81���H��H�=�1ҾH�=�H�=1��H�I��I�� H�=1��H���H�5H��H�H�81��L������H�=1��H�H�5H�81��H�=1���f�AWH��AVAUATUSH��XH���H�<$H�T$pH��$PH��$HH�BH��$�H�=%H�D$p4H�D$xH�x1��H�H�HH�`H���H�<$1�肜��H�D$H�$�@H�D$��u*H��$HH�4$H���H�D$H��X[]A\A]A^A_�H�$�@HH�$H�|$ H�|$H�@0�DH�$H��PH�C0H�H��t
H�HH�����xau�H�PH�@t�H�4$H�N�������@t�H�D$0H�@ H�|$�D$ @H�D$8H�BH�t$(H�D$@H�BH�D$PH�D$HH�D$`4�D$X�H�4$H�F0�U���DL�A0�|$1�L)ƒ�H����vw�|$L�����|$�e�|$��H�����D$�	M����H�<$1��u<��H�$H�P0H�BP�B��H�<$H�G0����f�H�t$H�vH9��w����|$�hL����@��H�|$H�pP�D$H�wH�G M��t�A����u���E1�E1�I�qE1�1��@��H�� 9�t+�nH9�s�nH9�r�>u�Hc�H��L�L�RD�Z D�b$M���!���HcqdH�PXL�h��9I�z K��H�T�L�@0L�XHH�H�rD�WdH�o0HD�H�t$I��J��E�b�H�PH�JH�2�wL�H(H�X D�Hc�H�t�PI9��_H�4$L�n0E��~"A��J�t�H��H��H�B�H9�u�J�L�H�QL�H�h�H�P�H�H�H�x�H�@ȱH�X�H�@�H�@�L�X�M����L�H���H�$�@HHǀ���DM������E�E������I�q1����H�� D9����D�VI9�s�D�VI9�rދD�S�A��u����M�������E�E�������I�q1�H�\$���H�� A9������D�VI9�s�D�VI9�r�D�A���1���A��u�H;Cu�Hc�H��A�T I��H�H�$Hǀ���fD�|$������������
M������E�E������I�q1��L9�����H�� D9����D�VI9�s�D�VI9�r�D�A��u����M��t6A���~/I�qE1�H���D�_I9�sD�_I9�r�?tSA��H�� A9�u�H�$H�t$HǀH�vH��H�t$���8��H�$H�@0P���@��=���Ic�H��L�L�WD�_ D�g$M��������DHc�HcydH��Lʃ9�r �R$I�4�H�0H�pXH�t�H�~HD��|$H��H�PtH�JH�HH�D$H�@H�H�$Hǀ�@H�6���H�4$H�N(H�V H��H9�r
H�@��U���H�P(H�P��H�����H�$�pH�@H�t$�����H�$H��H�D$�(�����;J��H�PH�JH�HH�D$H�@H�H�$Hǀ���H�4$�T$H�F0H�D$H��H��$HH���H�H���H�xH�9���AWAVAUATUSH��H�L�D$hD�L$dH�D$xH�D$hH�|$HH�t$0H�T$(H�L$@H��u�H�D$h��D$d�H�D$xH��$�H��$�HDŽ$�4����D$pH�D$x����D$tH�\$xH���H��$�H�5+H�\$ H��$�H�BH�p1��H�H�HH�`H���H�D$hH��4�qH�D$hH�D$H�D$(H���!H�5H���H�H�|$H�D$8H�L$�[H�D$H�@ H��H�D$H�D$hH�D$H��4�XH�D$�����kH�|$H�����t
�H�D$H�D$xL�D$A�H�T$H�t$���H�D$xHcL$dH�|$0���H�L	�H��$�H�D$xH�L$@���H�D$xH�L$���H����H��$�H�L$H�|$xH�T$��M��H�D$H�T$xH�H�R0�����B��������H���j<�2H�@H�B(H��$�H��$�H��$�H��$�H�|$8H�@ t�@`���kH�|$x�Y���H��$�H�\$ H���H�T$x�L$t���H�T$x�L$p���H�ĸ[]A\A]A^A_�D��H�D$ �PH�@H�����H��$�H�L$ H���H�D$x�L$t���H�D$x�L$p������TH�D$xH��H�D$8H�D$hH��4��H�|$8�H�|$8��H�D$�H�D$H�D$H�������H�������H�H�D$�D$������H�|$x1�1��H�D$H��� �����„�tsH�|$t$H�L$��uH������tH��у�����H�L$H�H�T$H�QH�D$ u	H�L$H�Q �� H�D$�cH��H�0H�|$H�2�/��H�|$8�@H�D$(H����H�5H���H�D$8H�H�D$H�t$8H�FH�D$H�������H�D$h�F�D$d�H�D$�q����H����������H����H���o���H�H��d���f�H�D$H�xH�|$H�����H�p�1�1Ҿ�VH�D$�H��H�D$H��$�H�D$H�@H�D$PH�C���H�D$H�xtH�D$H�H�D$H�H�D$H�T$H�@H�D$PH�B�uH�D$P�����0H�t$H�\$H�FH�CH�F H�D$PH�C �uH�D$P�����^H�D$H��Ā����H�D$H�����@H�D$xH�|$xH��$�H�p0�m��H�t$8H��m���H�D$H�D$xH�|$xH�p0�H���J�o@ �oH0H�D$8H�P@H�@)�$�H��$�H��$�H��$�H�T$HH�D$H�D$h)�$�H�D$H��$�H��4������H�=�H�D$����H�|$�H�D$���@H�H��[���f�H�D$P�����C���H�t$PH�|$����,���H�D$H�H�D$X��`H��`����H�t$PH�H�D$P��`H��`�����H�|$�����H�H������H�H�����H�H�5H�81��f�H�H�����H�H�����H�t$PH�|$��������H�D$H�H�D$X��`H��`�����H�t$PH�H�D$P��`H��`�����H�|$��v���fDH�t$PH�|$��������H�D$H�H�D$X��`H��`�q���H�t$PH�H�D$P��`H��`�W���H�|$��H���H�H���H�xH��0��H�@ ���H�L$H�y�������� ut��������9�����txH�D$H�H�L$P�� t[H��H�8��H�5H���H�t$H���H�|$8H�¾��H�D$H�����H�L$H�y���H�D$H�@ 랾H�=�H�|$H��1�1��H�D$H�H�L$P�� tH��H�H�|$1�1���H�D$H�@ ��ff.���AUATI��H�US��H��(H��L�l$H��H�D$ M��H��P1�L�D$�XH��Z�H�<$���:A�H�T$A�4H�4$L��H��LE�H�T$1�����H��([]A\A]�L�����t�H�|$@��t�A���fD�A���ff.���UH��S1�H��H��tH���H��H���I��A�1�H�H��H���H���[]�-���ff.�f���H�5���H�H��A�1�L�@H�0H�������f���SH��H�� H�H H�|$H�=����
H�5H�G0D�AdH�Y0L��qL�H�H�PL�_hD�Hc�H�t�PI9���L�O0E����A�p�H�t�H��H�B�H9�u�H�VH�H�X�H�P�H�p�H�H�H�@�AL�X�H�@�H�@�H�@�M��u3H�O(H�W H��H9�r2H�@����H�T$H�T$H�T$H�� [�L�P���f.�H�P(H�P���fD�=��H���Y���H�H�5H�81�����AT�USH��H�� H�-H�|$H�=�H��H�H�8�1�H��H��L�` I�$H�H H���%C��H�C �@d��~H�u0H�T$H���f��I�$H����H�T$H�T$H�T$H�� []A\�DAWAVAUATUSH��H�F8H�hH���nH�OPH��t=H�NHH�GPI��H��L�=I��D�uA��
�HD��Ic�L�>��fDH�FH��fD�u����H�SP�{X�L���)jf�I��$ H��A��$��H�Ĉ[]A\A]A^A_�DI�t$0�SXH�N�BH�H�D�PH9���H�CPL�AL�FH���~,�z�1�L�O�H��I�T�H�T�H�PH9�u�K��H�FL��H���.I�D$0L��H�H���f���D�{X���qH�uH�{P��+���I�D$XH�EH��L��H�K@H�SPM��H�p D�CX�sH�<^_���fDH�;L�{PL�s@D�KXH�KH�u H�<$I�\$0� ��H�SH�{�H��L�RXL9���I�|$0H�JH�JH��H�B�H�C�H�K�H�S�H�C�H�C�aL�{�H�C�H�C�H�C�M���!L�s؅�x	D9��}D��L��H�}L��UI�t$0H�VPH9���I�\$0�@����I�T$���A�$���@��H�\$@H�$H�|$0H�D$`H�$�D$0@L�d$8L�|$HH�\$PL�t$XH�D$p4�D$h�H�$���fD�{X����H�uH�{PI�U��v���fDA��
�vH�C@H�3H�xH�{@H���BH�S@�H�C8H���)I��$ H��A��$��H�hH�������f������fDHc{XL���H�;H�D$(�H�|$(H���H�CHH�L$(I�D$PH� tkH���CXH�{P��
�P�H�T$(H�T$0H�T$(��������H�CPH��D�CXM��L��H�p H�NH��sH�9ZY�[���H�I �f�1�L��H�$�H�$�R���f�I�T$(I�D$ H��H9�r
H�C�����H�C(H�C����D��H�=1��f�H�EH���}���H�C8H�h�}���fD��7��I�T$���A�$��� ���H�|$PH�|$0H�D$H�L$D�L$�t$H�\$@�D$0 L�d$8L�|$HL�t$XH�D$`H�D$p4�D$h�I�\$0H�D$H�L$D�L$�t$�s����H�=1��1�L���H�C8��H�3E1�A���SXH�{PA��L��A���W���H�=1�����1�1����D���f�AWAVAUI��ATI��UH��H����SH��H�T$�H����H�ø�tH�Ę[]A\A]A^A_�@H��L�}P�A�ƃ�����L��DN��H�T$H��H�D$H�D$H�D$H�t$ �D$(H�D$ �L�d$pH�D$`D�t$xH�\$XH�D$8�:���L�}PH����������W���D��H�����H�H�5H�81��ff.����AWAVI��AUA��ATUSH��H����H�-H�L$�
A���CD�������I���A���0M�fH��L��H��L���k�������I�~H���WfDH�T$H���I��H���wH�PH���j�
���_��
�&H�z�
�t����L�%A�D$<��H�D$H�T$H�t$ H���D$(H�\$ L�t$pH�D$`D�l$xL�|$XH�D$8����f�I�������I���YM����M�fH��L��H��L���k�������I����M����I�~H����I������7I�.H���@A��A��D���	��I��H��t{E��tvA���CH���I��M��L��H��H�H�5H�81���M�fH��L��H��L��������c����4H�Ę[]A\A]A^A_�@M��u�H���I��M��D��H��H�H�5H�81���L�=M�'H��L��L��H���E�����t�I�?H������4L�=H��M�'L��H���������X���I�?H�������H��L���t)��@1�H�ƿ�!K��H��tH�PH��t�:�����f.�L�L$E��H��L��H���L����N����fDL�=�3���@L�=H��1�M�'�V���@L�=H��M�'�	���f�L�=�������;M8�3���H�x�H�5H��H�H�81����������H�A�L$<H��p�H���E1�L��H�5H��H�H�81��H���I��M��L��H��H�H�5H�81��L�=�~���L�=�r���ff.�f���H�O�WH�wH�?�f���AWI��AVI��AUA��ATUSH��H����H�-L�D$L�L$�5A���kD������LI����A����M�fH��L��H��L����������I�~H����fDH�T$(H���I��H����H�PH�����
������
�^H�z�
�t����L�%A�D$<�oL�T$H��L��H�D$L�L$M��D����H�D$(L�T$L��H�t$0H���D$8H�\$0L��$�H�D$pD��$�L�T$hH�D$H���fDI�������I���aM���HM�fH��L��H��L���������I���}M���hI�~H������I������II�.H����A��A��D���K��I��H��t{E��tvA����H���I��M��L��H��H�H�5H�81���M�fH��L��H��L��������c����4H�Ĩ[]A\A]A^A_�@M��u�H���I��M��D��H��H�H�5H�81���H�H��L��H��L� L�������t�H�H�8H��������?@L�H��L�D$M� L��H���F���L�D$���F���I�8H���u���H��L���$��f�1�H�ƿH�D$�LF��H��tH�PH��t�:L�T$�r���L�L$M��D��H��L��1�H�D$��H���M��E��H��L��L����I������fDH�H��L��H��L� L������������H�H�8����fDL�H��1�M� L�D$�����H�H��H��L� L���;������@���H�H�8���@H�H��L��H��L� L���������
���H�H�8�w���fDL�T$�L�T$���z���H�A�L$<H��p������;M8�7���H�x�H�5H��H�H�81��H���E1�L��H�5H��H�H�81��H���I��M��L��H��H�H�5H�81��L����L�������H��xH��$�H�$L��H�t$PH���D$H�D$@�L$XL�L$8H�D$���H��x��AWE��AVAUI��ATI��U��SH��H����t<��ug�؃����YH���_����H�{H��uLL��H����!��f�H������H����H��u�H�H�8���H�H�8H��t�H�T$(L��L�L$�I��H����H�@H�����������
L�L��L�L$�CH�x�
�t����L�=A�G<��H�D$(H�t$0L��L���D$8L�l$0H��$�H�D$p��$�L�t$hH�D$H�y�H�Ĩ[]A\A]A^A_��H�{H���"���H�+H���$A��A��D������I��H��t@E��t;A���'L���I��I��L��H��H�H�5H�81��DM��u�L���I��I��D��H��H�H�5H�81���H�H�8�'���f�1�L���L�L$L�D$�A��H��H��tH�@H��t�8L�D$L�L$�����E1�L���L��H���I�����H�H�8����H�H�8����L�D$�L�D$���L���H�A�O<H��p��H�H�8������tCE��������A;P8��H�y�H�5H��H�H�81��fD��t�A��u�H�q@��uH�����t�����uH�vI��4t-L�ωT$H�L$L�D$�L�D$H�L$H���T$�g���A�����A�����L���E1�H��H�5H��H�H�81��L���I��I��L��H��H�H�5H�81��ff.���UH��AVAUI��ATI��H��SH�� H�U�H�dH�%(H�E�1��� ��H��H���H��A��H�B��0H9�tH��H��$�H9�u�%�t	H)�H�L�H�L$H�wH���H���D��L��L��H��H�A�H�@0L�H �4�����H�ZHc�A��H9�����eH��H��H�BH��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�L$H�w H����L���fDH��1��H�E�H�H�@�uH�����t�у���t	��H��� H�HtOH���L��L��A�H�@0L�H �E���H�U�H�U�H�U�H�u�dH34%(u H�e�[A\A]A^]�DH�H �H����D��UH��ATSH��PH�M�1�L�E�L�M�dH�%(H�E�1���@H�A�H�@0L�H ���H�]�dH3%(��H�e�[A\]�f.�H�ELc�H���E�H�E�I��H�E�H�E�I�BH��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�L$L�e�D�M�1�H���L�]�H��I��%fDE��H��A���M�M�L�@�I9�tA��/v�M��H��I��M�L�@�I9�u����D�M�����fDATUSH��H����H�G0H���H��jA�A��jj�p�v0�$��H��0�H�E0PI��H�5L��H���H�5H��tH��L��1��H����
H�=�H��H����I���ff.�UH����SH����D��H������H��H��H������f.�AWA��AVAUATUSH��H��hH���H�|$�0H�xH�L$P�HH�@L�D$@H�|$ �L$4�t$HH�D$(���?���D$0I��L�Ń�E1�H�D�H�D$A�G�H��H�D$fDM�&L���E��~1H9�'���H�JH;D��H��H;T$u�M����L���L��H���I��H��L;t$u�M���T�L$49L$H�e�D$HHcl$4E1�H�D$8L�l$ �D$L����A�G�)�H��H��I�Hl$@H�L$H�l$ H�D$L��M��I��@K�<�D��E���E��~)H;�S��@H�JH;D�t]H��H;T$u�H�D$(J��H��4��H�t$ J��I�EL9l$tTI����HT$H��D$0H�EH�4��HT$H�H�t$ �D$0J��I�EH�4L9l$u�H�D$P��� ��D;|$0��H�|$8uHcD$LH�DH�D$8HcD$HH�t$@H�L$8H��H��h[]A\A]A^A_�f.�H�D$ l$4J�������D����	D$L������I������fDH�T$����fDH�T$����fD�D$HH�t$@A�o�E1���H�L�,��I��E��~,L�|$�I��K��H��4tJ�4�L���I�FL9�u�M�e���DH�|$8tUH�|$8K�t-���X����H�D$8�D$L���f.��D$0�D$4�X����1�H�\$X�\$LH�D$8I����H��H�� t��s�H�t-�L�����H�\$X�c�����I��E��~,E�o�1��H��H�D$H�<�4tH�4�L���H�EI9�u�H�L��H�=�H�t$PH��H�����H�L��H�=��ff.��UH��H��AWAVAUATSH��H�u����H�}���H�U����H�M�D��x���dH�<%(H�}�1��E�����@��u���ىM�H�E�H�x0H�GH��p���H�E�D�`XH�E�Hc��A9��1D��Mc�L�U����K��L�I�T��H�H��H9�u�L�]�I��H�GH�E�H�@H�E�H����D�0E)��Ic�I��H��h����
Ic�H��H��H�BH��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�D$H��h���H���H��H�E��H�E��@����x���E��E1�������u
A���
A9����S�D9�����x����kH�E�H�p0Hc�H�~H�D�PH9��aM���@	D9�~.Ic�H�}�D)�H�H��H�T�DH�H��H9�u�A�ߋu�9�}HDžh��������)�A�ل���HDžh���DH�E�L�e�E1���������1ۨ����L���H�M�H�}�H���HcBHcH)�L��H�}�H����H�E�I��H�@�0H�P����A����@��H�E�H��p���H�@0H�H��H�u�dH34%(��H�e�[A\A]A^A_]�DE�|$�H�M�Ic�L�4�M�A�� �hI��A��Ic�I9���
��x���G�$���2���A���7���H�E��������@���������A���HDžh���D�E�A9����������������x����c
E��D+M�M��tI��� ��I�^Mc�A)�I9���E9��t
E)�E1��G����H��X���A���E��H��X���H��`���~LL�}�A�F��]�H�H�E�L��h���I��L��L��`���L�t��I�UH�3L��I��H���M9�u�]�H��h���H��`���H�E�H�8H�E��@�����m���DH�}�������E1�H��h���H�E�L�hA�E�x���~eL��`���I����X���L��L��h���D��P���M��L�m��f�H��I�T�I�t�L���H�CI9�u�L��`�����X���D��P���M���	H�E�H��h���E�gMc�J��H�E�E��E1��A9�����H�E����HDžh�����0����H�}�����M����
I��� �.H��I�V���|
H�<�L�,��H��h���H�E�H�������H�}��H�u�H��H���HE�H��h���H����
I�FI� uI�F J�t(�L���7���j���f�� �����H�E�H�M�H��h���H���Hc@L�$���H��h����I�$H�E�����@�L���H�E�H�M�Hc��L�$�H�E�H�pH�H��t
H�F H����I�$����DH�E�H�u�Hc��H��H�E�M����E����H�}�E1�H�H�E�����l����H�}����D9��uH�}�Hc��H�}�L��M����Ic�H���@Ic�A��I��D9��E1��9@H�M�H�u�Hc��H��H�E������x���M���4E���'H�4%HDž`���H��% Hc�x���H��H���(H��H��`���H���H��H)�H�}�H�4��H��L���H�E�����J����H�M�Lc��E9��TM�VI� uM�V H�M�Ic�A�x�D)�L��1��DH��Hc�I��I��H�JH9�u�E)�L�e�E1�E�������M�N����H��h���H����H�@H����H�xH��Hc�A��H9����?H��H�H��H��H��H��H���H)�H��H9�tH��H��$�H9�u�%���H�D$H�U�L�E�H���H�5���E�H�H�E�H�}�H��h����D9e�L�E��?L�u�H�U�D��H�}�L����A����?���E)�O�$�����@Hc�A)�H��I�H�M�H��������H�����
���Ic�L��E1�E1��H�0I��H��`���H��% ����Ic�L��E1��I��M���II��� ��H��H�ƒ�Ic�L��E1�H)�����H�H�}�1�H��H�M�H�P H�QH�O�������1@�������M��t_I��� �/H����H��uFI�FH�8�H�����H��� ��H��H�׃�Hc�A��H9���I��E1����A�������H�E�L�(L���H�u�L�.뤐H��`���H�XH�@ ����@L���H�8I��� �H����Hc�H9��zE�,?D9�~f��L��A���D9�u�E���������HDžh���A��9��2������H�E�����������������DIc���I�V�^����L���A�u�L��H���I��H��`���A�G�Hc�H�H��M�NH)�M��E��E���-�L��M�,A��L�,A��u	I�����u:A��H��E��E����I�6H��% E���H��u�I�F ��L��L��L��P���L��X����L��X���L��P�����u�I���`H��`u�I�E��`H��`t�L��L���L��P���L��X����d���fDL���A�u�E�艝X���I��A�G�Hc�D��H�M�VL��P���E��H��H)�M��I���
f�A��I��D��E���i���8L��I� uI�F O�$)��N�$(A��u�I�����t�L��L��L��`���L��x����L��x���L��`�����u�I���`H��`u�I�$��`H��`�r���L��L���L��`���L��x����T���M�A�� �I�~Hc�A��H9���M�^ Ic�Mc�I)�H��K�<��E9��H�A��A��I�H��D9�u�Ic�E1�H���d���H�x���L���H��h���I��H���M����I�>�� ��I�~Hc�H9��3E�$?H�E�����A��L��P���A�ŋ�X���E���O���A�G�HcЉ�H��H��M�<M�d�I)�f.�I�7L��I���M9�u�����E��L��H���E��~4A�G�HcЉ�H��H��I�\�M�<H)�I�7L��I���L9�u�I�6E1�H��% �q���1�1�E1���������L��H���E1��L���E����X������L���H��L)�H��I�����M��t(I��� �H����H��Hc�H9���E)�A�E����L�u�1�1�1�L����A������I��M�^A�����H�����n���H)�H�L����D9��'����6���f����E����H�}�A�G���`���H�L�,�I�}�H��h���H�E�H���(�H�}��H��H���HE�H��h���H�E�H��tXI�E��@��0�������H�x�
���I�~����I�F ����I�~���I�FH���R���I�~ H�W����D��`���A����L���H��I�����L���D�E�H�u���D��H�}���H�
��H�5H�=�E����E1����H�
�QH�5H�=�H�
��H�5H�=�H�
��H�5H�=������AWI��AVAUI��ATUSH��H��XHcJXH�R8H�RL�zA���~��H�0H�|$�C�$H�kH����D�cXA���D9����SH�K8�C\�Ѓ� ��u$H�{u�u��H�V��H�5���HE�H�S`H�QM�qMc�I�m0L�z���TIc��I��A�WdM)�H��I��9�����)�H�T��H��H�@�H9�u�Hcs\I�G0McGH�{@L��H�CHH�u�L�SPN�D�PH��L9���I�u0H�H�BL�]�H�E�H�U�L�}�H�E�L�U�H�E�H�E�H�M�H��u=I�U(I�E H��H9�r<H�E�I��M�qH��X�4[]A\A]A^A_��H�}���f.�H�E(H�E���fD�+��H�FH��H�t$E1�H��L��H)�H���'�D�cXH�K8�C\�CL�L$�� ���@I�AL�EPI��M�E0��I�� ��H��A����H�}XH�CPE���H�H�wE��~=E�J�I��I�AO�4�H�D$1��
�L��M�$�L�d�L�`I9�u�H�D$H�4�A�GdD)Ѕ��s��H�D�H��H�F�H9�u�Hcs\M�O0��McgHc�M��H�sHL�K@N�d�PH�[PH��M9�����M�]0H�0H�pM�P�I�p�I�@�M�x�I�P�I�X�I�@�I�@�I�H�M����I�U(I�E H��I9���I�@�H�}X�1���DH������Q�H��H�Hc�H)�L�_�H��L�^H�������H�0�� �[L�@ H�pL�$�K�D#PH9D$����1�H��~$@I��H�L�H��H9�u�H�D$M��L�X�SX�T����D�uL�L$0D�t$�Ic�L�L$0H��H�D$ H�D$��H��H�L$(H�pH�t$�
H�ك�L�l$8E1�L�$�H�\$HH��H��M��|$0I��L�L$@��I��K�T�J�t�L���I�FL9�u�H�D$L�l$8L�L$@H�\$HH�PH�D$(H�|$H��H)�H��H�|$ H�8HcD$0H�|$H��H)‹CXH�WD�`D+d$D�cX�q���@M�H��a����H��L�@�����I�@(I�@��=���H�����1�L��T$�M�E0H�K8�T$M�X�����D$H�T$���D$0�F���A��D��L��L����ff.�@AVAUATI��UH��SH��H��p����T$XL�D$H�D$H�D$H�D$8�~��L�o0A����;�������A���L�uL���L�uH����Hc��H�I���� ��H9x��I�UH�T�PI9�� E��~;1�1�L�H��Hc�H9�~(H��� L��uH�H H�у�H�L�A9���1�H��p[]A\A]A^Ð������9�t�}�I�uHc�H�D�PI9�����Hc�)�H�D�H�H�T��H�H��H9�u��fDH��H����H9��3�������T$XH��L��A���m�D��<�v���L�!L���L�e���H��u*�T$X�X���f�H��E������"������H�8�� tlI��I��A��I�uHc�H�T�PI9�v�M��~@1�1�L�H��&�2fDL��H�<���H�|�9�~Hc�L9�}H�8�� u�H�x ��1҉T$X���L�@�ff.�AWAVAUATUSH��xH�^H�؃��RH������EH�T$�M��I��M�ȉ�M��I����H�v ���ML�W0D���L�XI�JH��tH�V �z:�I�D$XA�!��~!@I��H��H��9��A����A���H��L��L�T$D�\$����HcT$L�T$I��H��M����H�s0H��KdA��IRL��I�E�sD)�H���I��I�D$0Hc�H�t�PH�x�H9���I�|$0���+��H�L�f�H��H�B�H9�u�H��$�L�	H�QH�X�H�\$L�@�H�P�H�H�L�p�H�X�H�@�H�@�L�x���I�L$(I�T$ H��H9��H�@����H��$�tI�D$0H��$�H�@0H�x�L���D�����|I�T$���A�$���tdI�T$0H�|$L�d$(H�D$H�T$0I�WH�|$8H�|$ H�T$@I�W�D$ H�D$PH�T$HH�D$`4�D$X�H�D$��H��x[]A\A]A^A_�@H��$�H�X������H��tH�F �x:��A���tM�1�M��t
I�@ H���I�T$0I�uM�D$XH�JH�z�H��L�QXL9���I�|$0H�|$H�qH�qH��H�A�H��$�H�B�H�r�H�J�H�Z�H�BȁH�z�H�B�H�B�L�B���H��$�H�z�H�sI����L��L��1��SI�D$0PH��x[]A\A]A^A_�@H�GXA�������f���$�A��E�A��A�����H�K0H��sdA��IRL��I�ED)�I�L$0H��H�y�I���C�H�H�D�PH9���I�|$0�����F�H�D��H��H�B�H9�u�H�|$H�PL�H��$�L�A�H�Q�H�A�H�Y�L�q�H�y�H�A�H�A�H�A�tPH��$�H�y�H��$�tH��$�H�x�L���}���H��x[]A\A]A^A_�fDH�P(H�P����I�t$(I�T$ H��H9�r5H�A�����I�t$(I�L$ H��H9�rH�B��K���H�Q(H�Q��g���H�J(H�J��1���Hc�L��L�D$L�T$�L�L$L�D$I���_���H�����I�D$���A�$���@���H�D$H�|$0H�|$ �D$ H�D$8I�GL�d$(H�D$@I�GH�D$PH�D$HH�D$`4�D$X����H�1�L��L��L�L$H��L�L$����H���8����UH��AWAVAUATSH��H��(�G8H�����H���H���������H���H�=�H�����H�u�H�E�H�BH������D������L������HDž�4H�����H�x1��H�H�HH�`H���H������x9t|H��L�ML������������H�����j������H�����H�����j����H�U�H�����H�� H�����H����9u����H������Q8H�e�[A\A]A^A_]Ð�@8H������A8�q�����H��0H������PH�@H���C���H�E�H�����H���H������x9u	�����F8H�H���H�xH��ff.�f���H��I��H�NAPA��H��D���H���ff.�@��UH��AWAVAUATI��SH��H��HH�}�dH�%(H�E�1��B��M�l$M���jE�l$XIc�H��H��H�BH��H%�H)�H���H��H9�tH��H��$�H9�u���~L�{L�L$I�D$PI���L��L��L�p H)��H��I�NI�I��A�EH�}�E��H�L��H��I)�L�{A�t$H�G���H�]�dH3%(��H�e�[A\A]A^A_]�DH)�H�L��t���f�HcBXH�vD�H�L�F�Ic�H)�H��L�CH����H��� �H�x H�HL��K�DPH9��
1�H��~#�H��H�T�H��H9�u�M�A�L�CE�L$X���f.�E�uD�u��H�KIc�H�E�H��H�M�H�}�������E1��E�H�E�H��H��L�4��@I��K��K�t�H�}��I�GL9}�u�H�SH�E�H�}�H��H)�H��H�}�H�8HcE�H��H)�A�D$XH�SD�hD+m�E�l$X��fDH��H�x������E�H�U����E���������UH��AWI��AVAUATSH��H��HH�}�dH�%(H�E�1��B��M�gM���cE�oXIc�H��H��H�BH��H%�H)�H���H��H9�tH��H��$�H9�u����L�sL�L$I���L��L��H)��H�}�H��E��I��D��I�O@I�WP��H�I��H�CI�G8H�GXH�@H�@H�p A�wH���H�]�dH3%(�tH�e�[A\A]A^A_]ÐH)�H�L��r���f�HcBXH�vD�H�L�F�Ic�H)�H��L�CH����H��� ��H�x H�HL��K�DPH9���1�H��~#�H��H�T�H��H9�u�M�A�L�CE�OX���E�4$D�u��H�sIc�H�E�H��H�u�H�M�������E1��E�H�E�H��H��L�,��@I��K�T�K�t�H�}��I�FL9u�u�H�SH�E�H�u�H�M�H��H)�HcE�H�H��H)�A�GXH�SD�hD+m�E�oX���f�H��H�x������E�H�U����E���,�������H��E1�I��tM�H H�=H�G0H�@0H�0@��uH��H�6@��t�H��tH��I�ȉ�j�vjH���H��(��(��ff.�UH��SH��HH�H�t$H�C0H�H0H���uH��H���t�H��tN�oH�t$)D$�oJ)L$ H�B H�D$0H�D$H�D$H��u@H��H��H��t�H��H��H�H��H�����H��H��4��H�}�� upL�E H�}Hc׉�H9���H�S0H�R0H�2@��uf�H��H�6@��t�H����H��H��E1�j�vH�P��H�� H��H[]�fDH��L�E���H�S0H�R0H�2@��u�H��H�6@��t�H��t-H��H��E1ɹj�vH�PL�D$(�#�H�� H��H[]��c'���ff.���AUI��ATUH��S��H��H����Hc�L��I���H��H��L��[H��]A\A]����ff.����SHc�H���H��H��[H�����AVAUI��ATI��UH��S��H�� ���t(���1H��L��4���H�� []A\A]A^�H�D$4�C����I�EH�|$H�D$�H�|$���������L�l$H�D$H�=1�L��H�D$���I��@��u	H�����u
I��tI��H�|$�H�|$�H�t$A��M��L��H���֪��H�� []A\A]A^�f�I�}@��t6���M�mL�l$I���]���H�|$��I���D��Ґ�����1�1���������ff.���ATI��U��H��SH�����H��L��[��H��]A\�T���@��H���D���@��H����H�=I��H�G0H�@0H��uDH��H��t�H��H��tH��E1�j�pjH��~�H��(���$��@��H��H�|$H�=H�G0H�@0H�0H���H�|$4tKH��ufDH��H�6@��t�H��tlH��E1ɹj�vH�jL�D$(��H�� H���@H��uH��H�6@��t�H��t$H��E1�E1�1�j�vH�j���H�� H����$��@��H��(�H�D$H����H�8�� uyL�@ H�xHclj�H9�uwH�=H�G0H�@0H�0@��u�H��H�6@��t�H��tJH��E1�j�vH�j�/�H�D$0H�D$(H�D$8H�D$(H�D$0H��HÐH��L�@��������F#��H�H�5H�81��ff.���UH��H��PH�u�H�U�H�M�L�E�L�M�dH�%(H�E�1���umH�=H�G0H�@0H�0@��uDH��H�6@��t�H���eH��E1�E1�1�j�vH�j�N�H�� H�}�dH3<%(�.��DHc�H��H��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�EL�D$�E�H�E�H�E�I���H�E���~b�W�I�ùL��M�L�H�uE1��"@��H����A�L�H�H�P�I9�t��/v�H��H��H��H�H�P�I9�u�E��t�M�H�H�P0H�R0H�2@��ufDH��H�6@��t�H��t)H����E1�H��j�vH�j��H�� �����O!��ff.�@AWH�I��AVA��AUM��ATI��H�=UH��SH��8H���HD��L��H���H�è����6�����JH���P���WH�{�!�����I�MH��H�L$�H�L$L��H��H���H�D$I�E�H�D$H�L9 ��H�t$L���H��8[]A\A]A^A_�fDH������u���H����H���b���H�H�8�W���f.�M�MH��L�L$�L�L$M��H��H����!1��H�D$�N���fDA�~�I�uHc���H�D$ �G����H�H�8�����H�H�8�����H�H�8����H�H�8����H�H�8����ATUSH�� ��t
H���<t/�tH�H�5H�81��H�����t�H�����u�H�L�%H�(A�D$<t8H���uH���teI��H��H�������H��tFH���H�T$H�t$�|$��|$H�t$��H�T$t�H�A�L$<H��p����@tH�H�(H��� H��HD��k���fD��PXH��H�GP��H��H��D���ǀɀ����f���PXH��H�������@��AWAVI��AUATUH��SH��H���B��M�fM����E�fXA�t$�E����I�F`�AoLc�t$�AoN�AoV I��H�|$8�Ao^0�Aof@H��$��AonPI�����H�C)L$PM��)D$@M)�)T$`)\$p)�$�)�$�J�8H�D$XH�D$8��t$H��H�D$@��H�{����H����$�H�{H��$���ts�����у����|H��������H�zL�d$@H��$�H���L��H��H��H�D$x�D$H��H�ĸ[]A\A]A^A_�H�����u�H���H��u�H�H�:�@A��L��Mc�I��M)�J�47L��H�{H�D$@����DH��$��������ƒ�����H����<�H�x��
�A��$H�|$8L{��@I��D$HH�D$@�
�DE�D��� �@��
DE�D��$�D������f�H�����u�H���nH���u���H�H�8�j���fDH�H�:�|����H�H�:�l����H�rXH������G����E�<$D�|$(�H�sIc�H�D$H��H�t$H�L$ ���	��E1��D$,H�D$H��H��L�,��	fDI��K�T�K�t�H�|$�I�GL9|$u�H�SH�D$ L�|$H��I)�H�D$I�HcD$,H��H)�A�FXH�SD�`D+d$(E�fX���H�H�:����H�H�8�U����H�H�:�l����H�H�:�\����H�H�8�%����H�H�8�����H�H�8�����H�H�8�����D$(H�T$���D$,�)���H�H�5H�81��H�L�C1���$�H��$�H�8M��L���H���@AWI��AVI��AUL�-ATA�USH��H��H�B8H�l$ H�M@H�$H���>���t@�s@��u	������u	��������A�~8AMv89��sH�x�7��
�V��IcT�L�>��D�C\E��tH��H�C`H��L��L����H�Ę[]A\A]A^A_ÐE��tH�T��H�C`H��L��L���B����E��tH���H�C`H��L��L���r��C�>H�sH����{X����C\E��t�CuH�{uH�
�H�C`H��L��L�����S���fD�C��H�sH�����{X�����C\E��t�CuH�E��H�C`H��L��L���3�����fDE��tH���H�C`H��L��L��������DH�@H�@H�@8H�xH�����oH�$)D$ �oKH�t$ )L$0�oS )T$@�o[0)\$P�oc@)d$`�okP)l$pH�C`H��H��$��H�D$XH�������CE1��A��A��D�ƒ� �@DE�H�;�
��D�C\�����I�w0I��H����H�xH����H�s@�H����H�3H�T$H���H��H����H�xH��H9C`�YH�D$�?
H�S8H�C@tnH�����fD�w��uyE��tH�-���H�C`H��L��L�������c���fDH�s@I� �H����H�C8E1����fDH�S8H�zH�GH���H�B�V���f.�����E��tH�;�H�C`H��L��L���)����H�=1��H�;�H�5H��H�H�81��H�SXI�����e���fDH�sXL�����A����H�SXI���������fDH�sXL��������I�wL��H��t�>tjH�@HH�������H�pH�T$�[���H�T$�����H�z�e���H�PH�C8H��t	�:�g���H�C8�����������B�C\���I�F L���I�v(H�4�L���@L;H�p���H��PH9�r�L���_����C\H��L��L���`���1�1��H�=1�����HcCXI�WL��H�KPH��H��H)������g������AWI��AVI��AUATUSH��H��H�FHcRXH��H�<�H)�A�G�YM�gM����A�GX���D$H���$�I�GHH�D$@�
H��$�I�GPH��$��������ƒ����WH���e<�mH�xL�d$@��
I�T$@�H�D$XH�D$xI�FH��XI9���IcWX��~H��H�}H���I�?�L��L��H��H�EA�G\I�F����5���H�ĸ[]A\A]A^A_�H������g���H��tH���X���H�H�8�M���fDH�H�8�8����H�H�8�(������H��L�X���Hc�H)�H��M�^H�������L�
A�� �fL�R L�JN�$�K�T#PI9�v�1�M��~!DI��H�L�H��I9�u�M�D�M�^A�wX�*���E�,$D�l$ �I�~Ic�H��H�D$H�|$H�t$���D�F�H��E1�H�l$(H��H�\$0L��I��L�t$8H��M��M��D�D$$�	fDI��J�T�J�t�L���I�FM9�u�L�t$8H�l$(H�\$0I�VH�D$H�L$H��H)�H��H�L$H�HcD$$H��H)�A�GXI�V��+D$ A�GX�_����H�H�8���f�H�H�8����H�H�8����I��L�RA�������D$ H�T$���D$$�T�����������H�A�H�@0L�H 邳��f�UH��AWI��AVAUA��ATSH��XH�M�L�5D�E�dH�%(H�E�1�I�FPE���I�FPH�E�H���
��D�bI��Ic�H��H����,H�E�H�E�H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%��H�\$H���L���Ic�H�u�H�{H�H���A����A����D�������I���A���I���
����H�E�H��D���
L��I�FP�H�}�udH�M�dH3%(��H�e�[A\A]A^A_]�f�I�����u�I��taM��u�H�H�8�H�E�L�]�H��H�E��L�]�H������H�}�H�E��H�E��DH)�H�L�����f.�H�H�8�)����H�H�8�����H�H�8�	����H�H�8����H�H�8����M�L��H��D��ɀ���D��H�u�H��D��ɀ����AVAUATU��SH��H�ĀL�%I�T$0H�B0H��u@H��H��t�H��L�j I�D$PH�BH�JH��t#���H�������H�������H�B(H����H�@H�@8H�xH�BHH�T$H�@H�|$L�pL���H��tOH�T$H�t$L��L�t$L�l$`H�T$PH�ډl$h�D$H�D$HH�D$(���H��[]A\A]A^�@H�ى�L��L��A� �r���H��[]A\A]A^�H�=1�����USH����~BH����H�vH���H�UH�5H���H�UH�5H���H��H��[]Ã���f�SH��H��H�����
H�D$��u0H�����t'H��ƒ���t��t��H�����
H��H�L$H�ߺ�H��[�f���AT1�USH��H�H�� H��L�D$H���H���H��H�؃�H��uzH��tM���T�؃�����H��������H�{�������1�H�� []A\�f�H�����u�H����H��u�H�H�8�@L�d$1�I����H��te�����؃����>H���d���H�{�ʀH�����������HE�H�� []A\�f.�H�����u�H���H��u�H�H�8�@H�<$�H�L$H�ߺH�D$H�D$��H�D$�H�� []A\�H�H�8�Z����H�H�8�����H���M��H�L$H��H�D$����LE�L�d$�H��������������DH�H�8����H�H�8�R����H�H�8�����H�H�8�2����H�H�8�"����H�H�8����H�H�8����H�H�8�����SH��H��H�wHc�H�sH��H�$�H�$H� t*H���CH�;��
�P�H��H�T$H�$H��[ÐH�I ��f.�SH��H��H�t$��t;��t���H�=1���H�H�0�H���?���������؃����H���6����H�{H�T$���H����H�T$H�t$ H�=H�\$p�D$(H�T$`H�T$H�D$ ��D$xH�D$XH�D$8���H�Đ[�@H�����u�H����H���o���H�H�8�d���DH�ĐH��[�@H�L$H�ߺ���H�Đ[��H�H�8�����H�H�8�����H�H�8���H�H�5H�81��f�H�H�8�����H�H�8������AWAVAUATUSH��H�|$H�t$ �T$H�D$8��D$4H�\$H�H�D$H������:�|$H��$H�D$@4�H�T$@H��$H�BH�5�H�\$PH�p1��H�H�HH�`H�D$H���H�D$ H��� ugH�D$ H�H H�PHc�H9���H�|$���H�D$8H�|$H��$H����|$4�H�D$8H��[]A\A]A^A_�fDH��H�H�����H�D$�pH�@H�t$���]���H�|$H��$H����|$4�H��T$H���H�xH���f�H����������H��ʃ�����������DL$�L$�������H��$ H��$�H��$H�BH�
�HDŽ$ 4H��$0H�H1��H�H�HH�`H�D$H���H�D$(H�E1�E1�1�H�t$�H���踉��H�D$8H�L$(H��$��|$4H����������H�D$(�xH�@H�|$��t�H��$�H�L$(�|$4H����H��T$H���H�xH���H���D��H�E1�H�@0L�H �U���D��L�
M�A0I�@0H��ufDH��H��t�H��I�APM�H I�HE1��	���f���H�I��tM�@ L�@PH�@0E1�L�H �צ�����H�H�OA��WH�wH�@0H�?L�H 餦��@��H�1�1Ҿ�A�H�@0L�H �y���f�UA��H��AWA��AVAUATI��SH��H��HL�-dH�%(H�E�1�H�E�H�E�4��tI�E0H�@pH�E�E����H�L�u�D�E�L��H�E��D�E�H����H��A��L�u�I�u0H�V0H���u@H��H���t�H��L�M�H��L��I�UPD��H�NH��蟥��L��H���H��H�M�dH3%(��H�e�[A\A]A^A_]��A����A����D�������I����A����I�|$��
D�E��D�E����H�<���uH�����tH�������@I�E0M�M(I�U H�}�H�pPJ��H9���H�PXH�BH9�uxD�E�L�u�H�U��H�U�D�E�H�E�H�BADž���
���@I������B���I���&M���/���H�H�8�%���L��fDL�u��D�E��D�E�H�E�A��~�Ic�H��H���wlL�u�L�u�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�L�L$I����&H�H�8���L�u�D�E�L���D�E�I��H�E�A�W�I�yD�E�Hc�H�sL�M�I�H���L�M�D�E�L������H�H�8�&���H�H�8����H�H�8����H�H�8���H�H�5H�81��H�I��D��L��1�H�8���H����fD����b���f���1��U���D��AWAVAUATUSH��H�D$ H�$L�%I�l$0H�E0H�H����H��H��uH��H���t�H���,L�kL���u�I�����t�A�EL�{L�3H�K ������A���E���M�\$XH�E��~H��tkH�I �y:taI�D$X�D$xH�D$h�D$(H�D$8H�D$X@����A������A��1�L��L���ũ��DI�D$X�D$xH�D$h�D$(H�D$8H�D$X@���A�!A�H�$H��L��L��D�L$L�\$D�T$���D�L$L�\$Hc�D�T$H�EI�l$0H��Ic�A�udL�CH�}�H��A�MIU0D)�I���Hc�H�L�PM���A��H9��iI�|$0�����N�H�L�H��H�@�H9�u�H�AL�H�U�H�E�H�M�L�m�L�M�L�u�H�E�H�E�L�]�M���eL�}���L��L�\$�{���L�\$�����I�T$���A�$��������I�T$0H�<$L�d$(�D$ H�T$0I�SL�t$8H�T$@I�SH�D$PH�T$HH�D$`4�D$X��@���f�A��H9��WI�|$0��~�N�H�L�H��H�@�H9�u�L�H�U�H�PH�U�H�E�L�m�L�M�L�u�H�E�H�E�H�E�M����L�}�L���z�����A�����~,Hc�H�L�PH9�����H��H�t�H�H��H9�u�A�!��I�T$(I�D$ H��H9���H�E�������I�D$���A�$���e���I�CH�|$0H�<$L�\$H�D$@I�C�D$ L�d$(L�t$8H�D$HH�D$PH�D$`4�D$X�L�\$�
������H�E(H�E�����H��tH�Q �z:��H�UH�KH�u�I�|$XL�BXH��L9�v�I�t$0H�JH�JH��H�B�H�E�H�M�H�U�L�m�H�EȁL�u�H�E�H�E�H�}�M��tQL�}�H��I�uA�1�1�1�A�UI�D$0P����A�����I�T$(I�D$ H��H9�r4H�E��$���I�L$(I�T$ H��H9�r
H�E��H�U(H�U��H�E(H�E���1�1��I�l$0���H�����1ҾH�=�A��A����ff.���AWAVAUATUSH��xL�%H�|$M�l$0I�E0H���u
�H��H���t�H���H�k@����H��������EL�[L�;H�S ������D���H�D$I�MM�t$XH��tH�R �z:��I�D$XA�H��$!E1��H��L��D�T$L�\$�G���HcT$�MdH�u0H�L�\$I��H��IUD)�M��L���Y�uI�D$0H�{D�$�L�H�Hc�H��A��H�t�PI9��M�L$0������H�L�f�H��H�B�H9�u�H�QH�9L�@�H�P�H�H�H�h�L�P�L�x�H�@�H�@�L�p�M����I�L$(I�T$ H��H9��lH�@���L����u���t{I�T$���A�$���tcI�T$0H�|$ H�$�D$ H�T$0I�VL�d$(H�T$@I�VL�|$8H�D$PH�T$HH�D$`4�D$X�H�$�fD�H��x[]A\A]A^A_�@L�X��K����H��tH�B �x:�H�|$I�UH�KI�E�M�D$XH�rXH��H9���I�D$0H�BH��H�B�H�
I�E�I�E�I�U�I�m�I�EȁM�}�I�E�I�E�M�E�M���QM�]�H�L$H�u�1�A��UI�D$0PH��x[]A\A]A^A_��I�D$XA�H��$��^���f�H�C�uD�$H���I��I�D$0Hc�A��H�t�PH�x�H9���I�|$0������H�L�fDH��H�B�H9�u�H�QL�	L�@�H�P�H�H�H�h�L�P�L�x�H�@�H�@�H�@�M��t3L�X�L���s��H��x[]A\A]A^A_��H�P(H�P����I�L$(I�T$ H��H9�r=H�@���K��I�T$(I�D$ H��I9�r%I�E�����H�P(H�P��t���I�E(I�E��n����H�t$L�$�M�l$0L�$H������@H�����I�D$���A�$������I�FH�|$ L�d$(�D$ H�D$@I�FL�L$0L�|$8H�D$HH�D$PH�D$`4�D$X����H���y�������AWAVAUATUSH��H��H�-H�E0H�H0H���u
�H��H���t�H��tF�oH�t$ )D$ �oJH�|$ )L$0H�B H�D$@H��u�H��H��H��t�H��H��H�H��H��荾��I��H��H�X���^L�u0I�F0H���ufDH��H���t�H���\L�cA���|I������oH�L�[H�S H�$A�$������A��$�L�}X�D$H���WH�B �x:E�A��A�¡�x:E�A��H�EX1�E1�L��I�NH��D�T$L�\$�`���HcT$A�L$dL�\$D�T$H��H��M����)�I�t$0H�IVL�CA��H�<�A�t$H�E0Mc�I���L�H�Hc�H�t�PI9��wL�M0������H�L�DH��H�B�H9�u�L�H�QH�x�H�<$H�P�H�H�L�`�L�P�H�x�H�@�H�@�L�x�M���WH�M(H�U H��H9���H�@���DI�A0H��L�h��o�����H�U���������H�U0H�<$H�l$XH�$H�T$`I�WH�|$hH�|$PH�T$pI�W�D$PH��$�H�T$xHDŽ$�4DŽ$��H�$�`H����������H��H����������I�E��`H��`�q���H���`H��`�a���H��L����Q�����H�Ĩ[]A\A]A^A_�f�A�!A�����L�X������H��tH�B �x:��I�VH�KI�F�L�EXH�rXH��H9��mH�E0H�BH��H�B�H�
I�F�H�$I�F�I�V�M�f�I�FȁI�F�I�F�I�F�M�F�M���M�^�I�t$A�1�1�1�A�T$H�E0P����I�t$0H�+L$A��IVL�CMc�H�<�A�D$H�u0I���L�N�H�H�D�PI9���L�M0���z�A�H�D��H��H�B�H9�u�L�H�PH�~�H�<$H�V�H�F�L�f�L�V�H�~�H�F�H�F�H�F�M��t"L�^�L�h�H���Om���?���H�P(H�P��+���H�M(H�U H��H9�r-H�F������H�U(H�E H��I9�rI�F�����H�V(H�V��I�F(I�F����1�1�L�\$�L�u0L�\$H������H���R���H�E�����������H�$H�|$PL�L$`�D$PH�D$hI�GH�l$XH�D$pI�GHDŽ$�H�D$xHDŽ$�4DŽ$��L�M0�A���H������Y�f���1�1��#	��AWAVAUI��ATUH��SH��H��X�T$D�D$L�L$H��u
H�H�I��A����I��I�����D$����H���H�CL�p8L�t$ M�f M��tM�$$H�T$@H��L���A�Dž���H�\$@L��H�CH��H�D$(�������EH�CH�����8�}H�D$(E1��8
A���H�����t�|$�M��H�H�XH��(H�H��(H���H���� H���L��H����H���D$��H��u���H�D$�CH�kH�C�uH������tL�kM��t#A�EA�E���I���0����H�L90u
H�����H���
��H�����E���DH��H��L���H��XH��[]A\A]A^A_�@�D$����7���H������H����H�����H���H�C�|$
L�p8L�t$ M�f �����M��tM�$$H�D$HH��L��H�����t H�|$HH��tH�GH�����8��L�c H�\$ I�����fDH��ƒ���t��u�D$����~H���H��ƒ����R����Ā�I���H���H��H����1���@H��tH������f.�H�߃L$�M�������I��I���&�H���t�w-H���t�H���t�H���M��������W���DH��t�H��u��@�D$������M������H�D$HI����M�vM�������I�~ H��tH�?L��H�����t�H�|$Ht�H���H�=H��1��E������fDH��������H�D$(D�HE���������D$0���������H��D�L$0�H�=H��1��H�D$(D�L$0��������T���H�D$(1�D�L$0H�x�D�L$0H��H���.���H�z�#���H�zPt!H���H�T$0�H���H�T$0A��H�D$(H�T$8D�L$0H�x�H�T$8D�L$0H�RH� H�ztH�zH��H�D��1�����L��H���u����s���H���h����L���I�EL���A���3���I������&���L��L���������H�D$ H���`H��`�����I�E��`H��`���L��L�������DM�mA�������M�mA��������H��L������y���H�D$ H�H�D$��`H��`�_���H�t$H�H�D$��`H��`�E���L����8���@H�=1�����H�D$(H�P�K������AWI��AVI��1�AUI��ATI��U��SH���Y����(I���H��I�GH��t�8
t3I�_�+L�k�C��
��H�
��Hc�H�>��fDH�@H�X��fD��ucH��L��[]A\A]A^A_ÐL�sA��uFI�����t=L��L�����u.I�$��`H��`u!I���`H��`tL��L���f.�H���H��t�L��L���t���|����H��C ����H�CH�����H�C�f�D�s�f.�L�sI�����u�H�����t�H��L������t���I�$��`H��`�c���H���`H��`�S���H��L����C���A�vI�H�C�F�s ���{H�Hc�H�>��DH�=L�sH�CH�w0�H��H�����H���������H�UH�H��H�DH�RH�D$H�$�H���L��H�CH��輝������L�s�$���H�`������H�������H��������H�\������H�������H�D������H�(����t���H������h���H�P����\���H������P���H�H����D���H������8���H������,���H�t���� ���H�8�������H��������H��������H�=1��H�=1��ff.�f����AH��(��w9H;tH�$��L$H���H��(�D1ɺ�H��(�H���H�5H�81��ff.�f���UH��SH��H��H� H��tH�?H�T$H�����t#H�|$H��t蔝��H���H��[]�DH��H��E1�1ɺ
�H��[]�@AVAUI��ATUSH��H�� H�GL�`8L���H��H���H=��;H���
�.I�|$ H��tH�?L�t$H��L������TH�l$H���FH�EH���9����.��
�
I�|$ H�\$H��tH�?H�t$L���H�EH�����8��L�����H�H�hH��(H�H��(H�E�8
��H����H�D$A��u1I�����t(I�E�ƒ���t��t��L����I��H�L$L���H�� []A\A]A^�f�H���H�=H��1�����f�L��H���u����+���H�@H��tH�@H��t	�8����L���H��H���H��H�5H��H��1��H��L����������������SH��H���H��[H������@��AUATUH��SH����~<�G�H��L�d$L�l�H�L��H�D$�H��t"H��H��H�����L9�u�H��H��[]A\A]�H���H�|$H�5H��1�H�����AWAVI��AUATA��U��SH��H��E��u^E1�H���H���H����H��H�=1��H���I��E������uXH��[]A\A]A^A_�f���@���H�=A�H�xH�HE�1���h���H���H��E��L��[L��]�A\H��A]A^A_�$���@E��H���H��L����Y���D�A��@�������H�H�5H�81��ff.���AUATUSH��H����H��I���H��H���H=���H���
��L��L�d$M��u�9H�[H���#H�{ H��tH�?L��H�����t�H�t$H��t�H�F���
������H��E1�1ɺL���H����!H�D$A��u1I�����t(I�E�ƒ���t��t��L����1I��L��L���H��[]A\A]�DH���H�=H��1������f�1ҿ�d��H��t7H�@H��t.���t'��
�8���H�@H��tH�@H��t�8����A��t:H�L���H��I���M��H��H��H��H�51��fDI�����t�I�U�Ѓ���t���u&H���t��H�H�5H�81����L�����o���H������c���������U���I��H��M������AUATUH��SH����~<�G�H��L�d$L�l�H�L��H�D$�H��t"H��H��H���L9�u�H��H��[]A\A]�H�t$H���@��AUI��ATI��H��USH��H�H�C0H�HPH�hXH�K0H�HH�HX�L��H���L���H�C0H�P�H�S0H�hH���[]A\A]�f�AWAVAUATUSH��H������F�H��A��H��H�D�L�l$8H�D$H�D$0H�D$H����H�D$ H��H��H�D$(�H�EH�|$H�D$0�I��H����H���(I���M�vM����I�~ H��tH�?L��L�����t�H�D$8H��t�H�pH�����������
��D; t>��uH��H��H�D$���H�D$L9�tAH�SL9r8t7E��1ɺL��H���H��H;l$�+���H��H[]A\A]A^A_�@D� H�@�8
uH�@D� H����H�VH��t?H�RH��t6�:t1D9 �z����fDH�|$ uH�|$(t�����tfD1�L��H���H�L�0M��u���M�vM��t�I�~ H��tH�?L��L�����t�H�D$8H��t����D�H���H�=H��1��H��H[]A\A]A^A_�H�t$0H���fD��ATI��U��H��SH���L���H�����H��[]A\�ff.���ATI��U��H��SH���L���1�H���I���H��[]A\Ð��SH�Ӆ�u�H�@H��[�f�H����H������H��[�f���H�SH���u�H�@H��[�H����H������H��[Ð��SH�Ӆ�u�H�@H��[�f�H����H�����H��[�f���SH�Ӆ�u�H�@H��[�f�H��1ɉ�H���Q���H��[�ff.����H�SH���u�H�@H��[�H��1ɉ�H���	���H��[�@��U�����H�5H�=SH���1�H�5���H�=�1�H�5H�=�1�H�5H�=������H�5���H�=������H�5;��H�=�1�H�5v���H�=�H�H������H�5H�;�H�;H������H�5�H�;�����H�>���H�5��H�=�H�;E1�1ɺH����H�=�E1�1ɺH�H��H�;�H�;�����H�H�5�H�H�-�����H�5H�;H���H�;H�����H�5�H�-H�;�����H�5H���H�;H�����H�5�H�H�=H�0������H����H�5H��H��H�=1�H��|��H�5�H�=1�H��|��H�5�H�=1�H����H�5��H�=��H�=H��H�H��[]�AWI��I��AVI��AUATUSL��H��8L�b M�hH�T$I�hI��$���I���6M������A��A��H�SI��$�H�U���H�{tH�MH�H�SH�U��u
H�������H�CH�S H�EH�U ��u
H�������H��ĀtH�M�H�EI��$�M��$�A��t0M��$�1�L��L��L���E����H��8[]A\A]A^A_�I�����t�L��H��D�D$�D�D$��u�H���`H��`u�I�E��`H��`t�L��H���D�D$���H�������H��H��D�D$H�T$�H�T$D�D$��uH�E��`H��`��I��$����f�H�D$H��L�L$H�D$(1��L�L$H�D$L�` �N���@L���L��L��E1�1�H���H��8[]A\A]A^A_�fDL��E1��E1�I���!���f.�H��H��D�D$H�T$�H�T$D�D$��uH�E��`H��`��I��$������H��H��D�D$H�T$�H�T$D�D$��u
H�E��`H��`t H�I��$��Ā��������H���`H��`t�H��H��D�D$�I��$�D�D$���f.�H���`H��`�T���H��H��D�D$�I��$�D�D$�^���fDH���`H��`�Y���H��H��D�D$�I��$�D�D$���H�H�5H�81��ff.���AWAVI��AUI��ATUH��SH��H�H�C0H�PPL�`XH�S0H�PH�PX�H��I���L��M��L��H�ƹ����H�C0H�P�H�S0L�`H��H��[]A\A]A^A_�ff.���AWAVI��AUI��ATUH��SH��H�H�C0H�PPL�`XH�S0H�PH�PX�H��I���L��M��L��H��1��s���H�C0H�P�H�S0L�`H��H��[]A\A]A^A_ÐUH��H���SH��H��H��t�M��H��A��H��H����H���H��uH��[]�f�H��H��H�D$�`��H�D$H��[]�@��H�RI�����SH������H����H�5H�;�H�;�H�t��H�5�H������H���H�5H�;�H�;�����H���H�5�H�;�H��H�5�H�;�����H����H�5�H�;�����H�����H�5�H�;�����H����H�5�H�;�����H��H�5�H�;�H�۸��H�5�H�;�H�@���H�5�H�;�H����H�5�H�;�H���H�5�H�;�����H�?���H�5�H�;�����H���H�5�H�H���������H�)���H�5H���H�H���������H�;���H�5H���H�1Ҿ�
H�;�H�;�
��
H�PI���M���H�;1Ҿ��H�;���H�PI���%���H�;1Ҿ��H�;�[H�P��I�����ff.����AWAVAUATUSH��(���I��H������o������a�����EI��H����L���H�����C�H�l$I�D�H�D$I�>M���H��M���M�M����I� H��tH�?H��H�����t�H�D$H��t�I��H�@H�����������u
M�d$M��u�L��I���I�W1�H��I��H�����L9t$�c���H��(L��[]A\A]A^A_��H�L�8M��u�B�M�M��t2I� H��tH�?H��H�����t�H�D$H���H���M�M��u�1�H��L����H�@�u���H�H�5H�81��ff.���AWAVAUATUSH��(H�<$H�t$H������L�$$H��A�H�l$L���M��tx�M���M�M��toI� H��tH�?H��H�����t�H�D$H��t�H�PH��tA�
��t:��
������M�d$H�ZD�(M��u��1�H��L���A��u�I�����t�A�$����u�H�L�0M��u��@M�vM��t�I�~ H��tH�?H��H�����t�H�D$H��t�H�PH��t��
���]����y���f�H�JH���s���H�IH���f����9�]���A��uI�����tA�����t,A��uD�(H�t$H�<$M��D�����H��([]A\A]A^A_�I�OH��t�H�qL9~8LD��H�H�5H�81�����ATI��USH��H��H�|$H�T$�H��t%L��H���H��H��H���H��H��[]A\�H�t$H������AVI��H��AUATI��USH�H�C0H�PPH�hXH�S0H�PH�PX�L��I���L��L��H���H�C0H�P�H�S0H�h�[]A\A]A^���AVAUATA��UH��SH��H����tr���Y�؃�����H���!���(H�{�������1҉�E���ƒ����H�����uVH�H�8�N�H�����uwH���H����H�{�����th1�E����H����H����H�{�ʀH�����������H��[��]A\A]A^�f.�H�{�������H���H�D$H�$E����A�H��D�⾙H���H�������H��[��]A\A]A^�f.�L�-��I�}���t�1�E��I�}���3���fD1�E��������H�H�8����H���A��H��H�$H���H�Ѓ�H�D$�U�����H���A�ă���A��&���@H�H�8��������������H�H�8�Q����H�H�8��@H�H�8�@H�H�8�N����H�H�8�>�����H�8�����H���e����H��I���H��I����#A��u3I�����t*I��ʃ����������.��LE�@H��L��1�H�=�I������I�E tgI�mI��H�������I�}@��tt���H�}H�E tH�}H�1������H�H�8�N����H�H�8�>���M�m I�mI���I��#�΃����M����=�������ff.�@��1��D��UH��SH��H��H��H�;H�����uH���4[]�H���@��H�H��GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignT_NONET_OBJECTT_CLASST_MODULET_FLOATT_STRINGT_REGEXPT_ARRAYT_HASHT_STRUCTT_BIGNUMT_FILET_DATAT_MATCHT_COMPLEXT_RATIONALT_NILT_TRUET_FALSET_SYMBOLT_FIXNUMT_UNDEFT_NODET_ICLASST_ZOMBIEmaininvalid epbreakredoretrynextreturnnoreason@exit_value@reason01non-hash or symbol givenglobal_method_stateglobal_constant_stateclass_serialunknown key: %lito_procProcvm.cargc % 2 == 0too many instance variablesto_hashHashrb_vm_get_cref: unreachableRUBY_GLOBAL_METHOD_CACHE_SIZEno self, no lifeuncaught throw %p11no block givenunexpected returnunexpected breakunexpected nextunexpected redo%li:%d:in `%li'`%li#%li' (cfunc)localsRubyVMnewstatEnvThreadOPTSdirect threaded codeoperands unificationinline method cacheINSTRUCTION_NAMESthread_vm_stack_sizethread_machine_stack_sizefiber_vm_stack_sizefiber_machine_stack_sizeDEFAULT_PARAMS<main>TOPLEVEL_BINDINGRUBY_THREAD_VM_STACK_SIZERUBY_FIBER_VM_STACK_SIZERUBY_FIBER_MACHINE_STACK_SIZEto_sinspectunexpected back-refvm_get_cvar_base: no crefno class variables available%s is not a class/moduleto_aArrayinsns.defRB_TYPE_P(kw_bits, T_HASH)%s is not a class%s is not a moduleunknown defineclass type: %dno block given (yield)vm_insnhelper.cescape_cfp->iseq == base_iseqbreak from proc-closure(eval): 13evalcalling insecure method: %libt_locationsset_backtracemissingunknownvm_args.cargs->argc > 0args->argc >= over_argcarg.argc == kw_lenargs_argc(args) == 0not an arrayundefined method `%s' for %smessageno id givenno method name givencheck_match: unreachableprivate attribute?@%li class moduleno class to undef methodlocal_variablesiterator?block_given?catchthrowloopinstance_evalinstance_execmethod_missing__send__sendpublic_sendmodule_execclass_execmodule_evalclass_evalUncaughtThrowErrorinitializetagvalueno class/module to add methodrespond_to?respond_to_missing?remove_methodundef_methodalias_methodpublicprotectedprivatemodule_functionmethod_defined?public_method_defined?private_method_defined?protected_method_defined?public_class_methodprivate_class_methodno class to make aliasrespond_to? is defined hereVM/threadVMVM/envcore_hash_mergevm_throw_startvm_exec_coreargs_reduceargs_pop_keyword_hashsetup_parameters_complexwrong number of arguments (%d for %d)wrong number of arguments (%d for %d+)wrong number of arguments (%d for %d..%d)rb_method_entry_eq: unsupported method type (%d)
wrong argument type %s (expected Proc)thread_free: locking_mutex must be NULL (%p:%p)thread_free: keeping_mutexes must be NULL (%p:%p)method `%li' called on unexpected immediate object (%p)undefined optimized method: %svm_call_cfunc - cfp consistency errorrb_clear_cache() is deprecated.rb_hash_method_definition: unsupported method type (%d)
RUBY_GLOBAL_METHOD_CACHE_SIZE was set to %d but ignored because the value is not a power of 2.
[FATAL] failed to allocate memory
rb_vm_make_proc: Proc value is already created.vm_make_proc_with_iseq: unreachableCan't create Binding Object on top of Fiber.Can't call on top of Fiber or Threadretry outside of rescue clauseRUBY_THREAD_MACHINE_STACK_SIZEinstance variable %li not initializedputspecialobject insn: unknown value_typeunimplemented defined? type (VM)superclass must be a Class (%s given)superclass mismatch for class %ssuper called outside of methodself has wrong type to call super in this context: %li (expected %li)implicit argument passing of super from method defined by define_method() is not supported. Specify all arguments explicitly.Stack consistency error (sp: %td, bp: %td)isns(throw): unsupport throw typea bit of bacon, lettuce and tomatoclass variable access from toplevelCan't eval on top of Fiber or ThreadNot a toplevel InstructionSequencevm_call0_cfunc_with_frame: cfp consistency errorvm_call0: unsupported optimized method type (%d)vm_call0: unsupported method type (%d)respond_to? must accept 1 or 2 arguments (requires %d)method `%li' called on terminated object (%p flags=0x%lx)method `%li' called on hidden %s object (%p flags=0x%lx)method `%li' called on unexpected %s object (%p flags=0x%lx)method `%li' called on broken T_???(0x%02x) object (%p flags=0x%lx)private method `%s' called for %sprotected method `%s' called for %sundefined local variable or method `%s' for %ssuper: no superclass method `%s' for %svm_call_method: unsupported optimized method type (%d)vm_call_method: unsupported method type (%d)vm_call_super: should not be reachedclass or module required for rescue clausemethod redefined; discarding old %liprevious definition of %li was hereredefining Object#initialize may cause infinite loopredefining `%s' may cause serious problemscall_cfunc_func: unsupported length: %drb_add_method: unsupported method type (%d)
arity out of range: %d for -2..15removing `%s' may cause serious problemsmethod `%li' not defined in %liattribute accessor as module_functionargument needs to be symbol or stringundefining `%s' may cause serious problemsundefined method `%li' for%s `%li'%li with no argument is just ignoredmodule_function must be called for modules%li%crespond_to?(:%li) is old fashion which takes only one parameterH�%�����������������C���������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx��0 DXl���!�%�1KN W�4KNF T7KN F(C0T ,:KNF C(C0T$P=KN F(C0C8C@T(x@KNF C(C0C8C@T(�CKN F(C0C8C@CHCPT,�FKNF C(C0C8C@CHCPT0IKN F(C0C8C@CHCPCXC`T44LKNF C(C0C8C@CHCPCXC`Tl������@�eDn
E$.E�G�J IJC(<Pd]x�mcpR
F�*�
H(�RF�D�D �~CB$UA�D�G CDA$(GE�F�G0rAAdPX�B�E �A(�A0�_�����H0������
(A BBBGY
(A BBBH ��E�i
BA
O,��I�G�A �o
ABEPO�B�A �D(�D0*
(H� A�B�B�O�����H0����`RE�n
E|&H]4�nF�H�A �A(�D0N(F ABBD��E�J�D0|
DAD@
DDH@
DDH&(3<tPSd�(xWA�D�D V
DADH��B�E�E �B(�A0�A8�Dp�
8A0A(B BBBA�BA�J uA<�S�A�L kAAC��H ��M
AAI(PJA�D�G [
DAD�|DH�B�B �B(�A0�A8�D@b
8A0A(B BBBHd8A0A(B BBBJ������`@������P������q@������ A�Gpn
AI0WA�M
LsA�dCgP,|wB�I�D �E
ABA(�TF�D�A �EAB(�RA�D�O g
DAH(	MF�A�G �{AB(0	OF�D�A �@AB\	>p	dE�s
HX4�	^Q�G�G M
AABXF�K�,�	KG�D�D �mFBD���8�	KF�B�A �A(�D@�
(D ABBD$4
�N�s
GlD�A�,\
\M�A�G ID�A�] ���
*A�<�
�A�D�D D
AAAi
HANHAA�
C�
�8�F�B�A �D(�DPm
(A ABBD(HyA�D�G0H
AAJ@t�F�B�E �A(�A0�D@�
0D(A BBBE8��B�M�D �A(�D0�
(D ABBJ`�gB�B�B �D(�D0�V
(A BBBEs
(A BBBF@
(D EBBKXCl$� �2L�e�AAD@��A�A�D �
AAFH
AAFL
AAB$
�d�L
HP�H�8
=A�
G8X
EF�B�A �A(�D0�
(A ABBIH�
�F�B�B �B(�A0�A8�GPR
8F0A(B BBBJ,�
B�E�A ��
ABIEADL,F�E�B �E(�A0�A8�J�6
8A0A(B BBBB8|�F�B�D �A(�D0�
(D ABBA�TH
A`��F�B�B �E(�A0�A8�D@�
8A0A(B BBBB_
8A0A(B BBBA$8,E�A�G YDA`"E�\|+Hb�
�f�0E�j�9E�s(�fF�A�A �ZAB E�P$<)E�I�G QAAd$xYE�H
CD
AC�1H h@�1F�E�E �A(�D0�G@�
0A(A BBBG�_4A�A�D Q
AAGw
AAGDH�E�G�D �c
ABJ�
ABEM
FBF8��E�G�J�O
AAI�
FAC�@E�i
BO4�[N�G�G [
J�A�FFAAH��4$gB�D�D �v
ABEWAB\$@p�E�A�G0C
AAFD
CAHQ
AAE(�RA�C�G0Z
AAI��dE�Q
J$<QE�G X
CI_Addx�E�H�D o
DAKD
AAJG
DALH
DAKT
ADG`
DAE�%JZ<��B�M�E �D(�D0�GP^0D(A BBB8�H�
AT7_$hFE�D�G0sAA�@��F�E�B �A(�D0�D@`
0A(A BBBB��E�D0.EAM   E�86L`
t?�N ��E�D``
AFL��F�B�B �B(�A0�A8�G�
8A0A(B BBBB4H0k(4H0kH@�F�B�B �B(�A0�A8�G��
8A0A(B BBBK�6H V
A(�QE�D�G V
JAO�ZH m
K(�CE�D�G `
AAF$0:E�I�D eAA$XzE�A�D0jDAH��F�B�B �B(�A0�D8�D`�
8A0A(B BBBA��eHL
E<��B�E�E �D(�A0�I
(G EBBF<H N,TiF�A�D �D0U AAB@�2F�B�B �A(�A0�D@
0D(A BBBA,��E�C
I������
F� 4H.\5p7H\
LF�7Ha
GF0�|F�A�D �D0p
 DABJ�DO�f
KC �HN
JG
A(EADDAAR`�t8E��EAI�EAD�EHn
JD���
< �E�A�D g
CJJU
FADYNCH`�F�E�J �K(�D0�J8�GP�
8A0A(B BBBI4��O�H�A �H
ABA���0��F�D�A �I0i
 DABL0VE�A�D U
FAJ^FA<L�O�B�A �A(�G0�(A ABBJ�����-�%HV(��F�F�A ��ABH��F�I�B �B(�A0�A8�D`�

8A0A(B BBBK00�E�A�D y
AAKoGA(d�E�F�D |
DAE�+E�e��oL�[����bB�B�B �B(�A0�H8�G���F�I�H�E�A�U�:&
8D0A(B BBBA�S�P�B�C�B�N���H�E�A�D�F�m�$zRx��������,
H�B�E�B �B(�A0�A8�G��
8A0A(B BBBALH�	B�B�B �B(�A0�A8�G��
8A0A(B BBBFD��F�B�K �A(�FPLXL`MXDPC
(A ABBD$�SE�D�F xFA 
 . 0 HE�G0�
AA,T �F�F�A �G@� AABl� �B�B�B �B(�A0�A8�G��
8A0A(B BBBF��Y�F�A�|�X�F�A�H� B�B�B �E(�D0�L8�G�g
8A0A(B BBBEL@!cF�B�E �E(�A0�A8�J�
8A0A(B BBBE�!L�!@F�E�E �E(�A0�A8�J�H
8A0A(B BBBE�!HH�L"B�E�B �E(�D0�C8�J�?
8A0A(B BBBH,\"�E�C
D��E�K��
F$�"JE�C
G��V
K4�"�B�A�A �T(J0S8B@CHCPI �"&A�F�L L#dB�E�B �B(�A0�A8�G�W
8A0A(B BBBK,\#�A�F
P������
FL�#qF�E�B �E(�A0�A8�G�}
8F0A(B BBBI@�#eB�B�B �D(�D0�G��
0A(A BBBB� $	B�B�B �B(�A0�A8�D�k
8A0A(B BBBE
8A0A(B BBBE
8A0A(B BBBG,�$�A�C
I�����
B�$!HI O,�$�E�C
H����D��
F, %yE�C
B�J�����
B$P%eHG C(B0LATx%�A�D�D`�hHpCxD�I`D
AAGhMpCxD�N`D
AAA4�%DF�E�A �D(�I0W(G DBB&E�RT$&uB�B�E �D(�D0�FPe
0A(A BBBD�
0A(A BBBJ(|&,F�D�F �OFB�&$�&\HxE C(B0LA<�&�H G(J0C8E@N D
E_(J0C8E@I D
A$$'�H0g8E@CHEPbB0 L'�E�C
�
FHp'�B�L�E �E(�K0�D8�Dp�
8A0A(B BBBG �'
B�A�A �D@�''EAD�'EADL(|F�B�E �B(�A0�D8�J�T
8A0A(B BBBDHh(�B�E�E �I(�G0�A8�J��
8A0A(B BBBB�(	L�(]F�E�E �B(�A0�A8�J�
8A0A(B BBBD)	,),@)mA�C
B�G��J��f
CXp)9F�B�B �A(�C0�G��
0A(A BBBEZ
0A(A BBBA(�)^E�A�D A
DAA�)gA�J ZAP*F�C�A �N@q
 AABC�
 AABK[
 AABA l*fE�G Q
AB4�*�A�J��
AEw
DE^
AIH�*�F�B�B �B(�A0�A8�G��
8A0A(B BBBG+(+G<+)P+,d+',x+�A�F
B�I���D��
H�+�+0�+�F�B�B �B(�A0�A8�G�|,MF�B�B �B(�A0�A8�D�G
8A0A(B BBBE�
8A0A(B BBBH�
8A0A(B BBBIL�,7F�B�B �B(�A0�A8�J�T
8A0A(B BBBJ�,
L�,yB�B�B �E(�A0�D8�G��
8D0A(B BBBEH8-SF�E�G �E(�D0�C8�DPo
8D0A(B BBBB�-cK0g
FP
A0�-lE�D�G0x
AAFYAA@�-�B�B�E �A(�A0�GPS
0A(A BBBC.	0.E�O8L.�F�B�A �D(�D@D
(D ABBA`�.BF�B�E �B(�D0�C8�G@O
8A0A(B BBBJL
8G0D(G EBBI8�.HF�B�A �A(�D@
(A ABBF8(/lF�B�A �D(�D@D
(D ABBA4d/nF�E�G �A(�D0K(F ABBd�/JB�B�B �B(�A0�A8�D�+
8A0A(B BBBE�
8A0A(B BBBA(02F�D�F �^AB(00/F�D�F �[AB\07E�X
CV|0?L�X
DV�07E�X
CV�04E�X
CS�0<L�X
DS(�0�E�T�D �AA`(1�B�H�E �B(�A0�A8�Gp�
8A0A(B BBBA�
8A0A(B BBBGD�1�F�B�E �E(�A0�D8�D@Y8D0A(B BBBD�1F�B�E �E(�A0�D8�D@V8D0A(B BBB02lA�L�G0p
AAJYAAP2
d2�E�nH�2�F�B�B �B(�A0�A8�D`
8D0A(B BBBHH�2�F�B�B �B(�A0�A8�D`�
8A0A(B BBBA03XF�D�A �G0q
 DABA8L3pF�H�B �D(�A0�S(A BBBX�3�F�B�B �D(�D0�G@�
0A(D BBBKZ
0A(D BBBK�3(�3<E�D�G \
FAA$4	%!3&I`'{�(��)���	��5�S� d�������������	#�0L&fs&�M�0�M�q�P!�q�/�%<�X�r�1��$��4�$�g�07g!�;p:H�e���=���0��@�0�s0Cs7�R�F`�}��I��l� L�l	�$p2�X�|����S����S�w`1wL�e�q�����@���E��eE ~;P.I~m����	�������		�		�"	�9	�C	�f	�	�]�	�	1�	 �	1
W	0
@H
W	s
�	�
`	*�
�
�	�
�	
�	&�	=�	RG�	`U
w
U�U
��
�`
G��
���
(�H6�N{
d��m{
� ��
��	h�	P�	X
	`,
	pE
	H^
 |
6�
6�
��
@R�
��#�&6�_>��n�>���@��	@�	8	0) Ec�����&���33.3b��@t����%M �h�g�W�g�P#p�BP}��PB�	���gF��`g���pJ��6�DX�'��'��0W;�X s�s� �S � C�S �� �` w !� F4!i� T4!��!
@!R��!��!�!M!�!E?"g�!O|?"�~"�@">�~"��"�"d0a�$�"NN#v�"^�N#��#�P#K
�#1�$S�#Kh�$��%��$���%�,&��%\,&@Z&l0&*�Z&��&�`&���&�C'
'CC'F<(pP'��<(�,)�@(��,)��)
0)y�)8C+U�)�eC+�+-�P+��+-��.0-g�.1�.N�.C^�./�/�@/�@/!r/Jr/j�/��/��/��0��/���0%1?�0�a%1xm2�01=�	��	��m2��3 p2E4 �3_ �5� �3�� �5� �6� �5� �6!�60!�6M!�:au�6h!�:�!�;�!�:��!�;�!�;"�;("�=N"�=s"�=�"�=�"">�"">�"[>#[>?#m>d#m>�#�>�#�>�#?$??$I?t$I?�$�?�$�?�$�?%�?&%	@H%	@k% @�% @�%y@�%y@�%�@&�@?&�An&�&�A�&_B�&_B�&C�&`B
'�L	'C8'HEQ'�C�]'HEy'HG�'HG�'�G�'PG@�'�G%(�GT(�G[v(�Gg�(�G�(WH�(WH!)�HH)�H{)'I�)'I�)�I�)0IR�)�I**�IW*�Iw*�I�*�I�*�I�*�I+�IC+�I`+�I�+$J�+$J�+�J�+0JQ�+�J,�J>,�Jb,�K�,�K�,�K�,�K-]L2-�K�P-@�<e-pWfx-]L�-M�-M�-WM�-WM".�MR.��.o.�M�.�M�.�M�.kN�.kN/#O3/	�E/#O_/^Ow/0O.�/^O�/�O�/�O�/�O�/�O 0�OB0�Oo0�O�0�O�0/P1/P-1~PX1~P}1Q�1Q�1�S�1�S�1T
2 ],2T<2DT]2@�r2DT�2�U�2�U�2&V�2&V�2�V3�V.3�VF3�VZQ3�fMY3�Vy33W�33W�3QW�3QW�3�W	4�W24XY4X4�X�rPY��4�X�4�X�4�X�4EY5�Xe"5EYD5�Yd5�Y�5Z�5Z�5�Z�5�Z6�[26�[Y6�]~6�]�6�]�6�]�6^�6^7&^.7&^M7I^j7I^�7~^�7~^�7�^�7�^�7�^8�^487_L87_|8�_�8�_�8`�8`
9�`&9�`K9�`n9�`�9�`�9�`�9�`:�a@:�am:�a�:�a�:b�:b�:)b;)bG;ubx;ub�;?c�;?c<Mc.<McZ<mc�<mc�<d�<d�<�e=�e*=rhB=rhr=4i�=4i�=�i�=�i>sj&>sjU>�j�>�j�>�j�>�j�>�k�>�k?Px(?�p@?�nT?@�i?����? H�?Px�?�x�?�x�?�z@�z*@�zG@�ze@�z�@�z�@_{�@_{�@l{�@l{A|{=A|{`A�{�A�{�A���A�{�b�A��A�L]�A�W�B@P	B&+B��DB0^B@
xB
�B���B���B���B���BU�	C���	CU�8C"�OC"�yC���C���C���C��D��1D��MD�gD��D���D���D���D���E�]�"E�"q|�0�OpPm5E��]E��E���E��E3��E3��EW� FW�JF�rF��F��F��F��F��F��F�		G�	#G:;G:_G��G@��G	x�G��G&�G&H�CH0d\H��Hy"�H`�HP�H��Hy"I�':I�']Ie*~I(e�Ie*�Iy0�Ip*	�Iy0J2$J2EJA2dJA2�J�4�JP2��J�4�JY7�J�4y�JY7K�79K�7TKb9mK�7�yKb9�K�9�K�9�K�9L�9LU;9L�9uGLU;kL�;�L�;�L�;�L�;�L�;
M�;%M�<;M�<YM�=uM�=�Mq?�Mq?�M_A�M�?�N_ADNjBnN`A
�NjB�N�B�N�B�N�BO�B)O�BIO<GgO�B|xO@G��O<G�O�L�O�L�O�L�O�L#P=PGP=PkPIP�PIP�PnP�PnP�P�R�P�RQT3QTVQ~TwQ T^�Q~T�Q�T�Q�Tg�Q�TRoW���T RoWBR�WbR�W}R�Y�R�Y�R{\�R{\�R�\S�\4S�\ZS�\S]�S]�SL]�SL]�Sw]Tw]%T
a@T
aYTapTa�T+a�T+a�T�f�T�f�T-lU-l)UgrLUgryU}r�U}r�U�x�U�ry�U�xVS|7VS|ZV�|{V�|�V<}�V<}�V8D�@}�W8*WIKWIkWl�Wl�W��Wp��W��W2�X2�(X��>X��aX���X��l�X���Xn��Xn��X��"Yp�J8Y��]Y��Y��2�Y��Y/��Y�/�Y/�Zg�+Z0�7:Zg�UZ��nZp�?zZ���Z��Z��7�Z��Z$�[�4[$�)[l�A[0�<L[l�h[��[��[���[���[��\2�C\2�g\���\���\,��\��l�\,�]=�4]=�T]Ēr]��X�]В��]Ē�]���]���]x��]x� ^ؖA^ؖh^P��^P��^!��^!��^;�_;�)_|�K_|�l_��&'()%�_�_��_��_��_��_��_��_��_��_��_|�_r�_j�_c�_\�_S�_J�_C�_;�_2�_)`!`
```P`(#`)`�/`5`�;`�A`G`M`�S`�Y`�_`�e`�k`�q`w`}`5�`I�`_�`l�`~�`��`��`��`��`��`�`H�`��`��`��`��`��`��`��`��`��`0a�a
aa$a�a�%a+a@1a'7ah=aiCa6IaHOaYUay[a�aa�ga�ma�sa�ya�a��a��a��a��a��a�a�a+�aE�aY�ar�a��a��a��a��a��a��a��a��aP�a[b`b�b�b� b 'b.b5b<bCb�JbBQb�Xb�_b`fb�mbftbp{bx�b%�b��b��b��b��b�b��b(�b��b��b�b*�b�b1�b4�b7�b0�b�cXc�c�c�c�#c<*c(1ch8cZ?cgFc}McuTc�[c�bc�ic�pc�wc�~c��c�c�c0�cX�c��c��c�c	�c��c@	�c1�ch	�c 
�c�	�c�	�c�	�cx
�cP
d�

d�
dd]d(&dJ-dP4dx;dcBd�IdkPdsWdj^d�ed�ld�sd�zd��d��d��d��d��d��d��d��d��d	�d�d �d,�d7�dJ�dU�dY�d_�d}�d�e�
e�e�e�"e�)e�0e�7e�>e�EeLe-SeGZe[ae�hepoe(ve�}e�e�e�e�e

 !"#$*+,�e�e�efff(f3f>fKfZfqf}f�f�f�f�f�f�	
�f�f�fggg%g3g@g�Hgcg	 wg�g�g�g�g�g�g�g�g �gh'h3hLhah~h�h�h�h�h�h�h�h�h�hiii�S.i9iCiLiWi`iki�i�{�i	�i�i�i�i�ijj�1j]j{j�j�j�j�j�j�j�jk#k2k'BkSk`knk�|k�k�k�k�k�k�k�k�k�kll�.$l / ;l@/2Wlilvl�l�l9x�l�l�l�6�l�lm�;Tm�;�-m�=,CmRm>"hmwm0>+�m�m`>
�mp>f�m�m�m�>0�m?9"nP?f8n�?Mn�?)bn@vn @Y�n�@1�n�@1�nB_�n�n�nPE��no`H$o�H�AoMo�Id^o�Jqo�J��o�o�o�K%�o�o`L��o�o�v�o��o M7pp`MF?pOpZp�Mqp��
�p�M��p�p�p�ppN��p�p`O �p�p�O6q�O#q�O
Aq	(]q�O?�q0PN�q�P��q Q��q�S4�qT4�qPT��q�U6r0VQ
r�VCr@W(r`W:8r�WzRr X�irvr�X�r�r�rZ�r Zi�r�Z2�r�rss�[�.s5sAsTshsys�]�s�]�s^�s0^�sP^.�s�^5�s�^7�s_7�s@_|t�_D't`�3t�`It�`�lt�a8�t�a�tb�t0bE�t�t�b��t@c
uPc7upc�Pu^ud�ou�e�zu�h��u�u�u�u@iV�u�i�v'v9vJvWv�j-wv�j%�v�H�v�v�j��v�v�v�k��vw�ww7wDwXwhw�}w�w��w�w�w�w�w�wxxPx�%x�x�1x@xRxex|x�z+�x�x�z�x�zo�x�x`{�xp{�x�{yy*y8yJy^ynyyy�y�y�y�y�y�y�y�yzzz z,z9zRz^zlz{z�z�z�z�z�z�z�z�z{{{+{5{M{X{i{~{�{�{�{�{�{�{�{|!|,|9|M|f|r|�|�|�	J�|�|�|�|�|�|}�c}!}-}8}L}c}n}�}�}�}�}�}�}�}`���}~~(~0�SC~��HP~ ��b~q~PP}~�~�~�~`�@�~�H�~��~�~-@T`ny 2!�`7e�p9D��9�`;,��;��;\�<���<���=�#�8�F�pB'^�f�t��R9�������Y������\р�\G��\)�P]'�a� a#�0l79�pr
W�i����|l����ҁ�yS��`|c��-�@	A�PR�d��Bl�}�����@�H����łԂ���p����/�H�0�
\�@��m�{��������P������ʃڃ0������	�	A�	.annobin_vm.c.annobin_vm.c_end.annobin_vm.c.hot.annobin_vm.c_end.hot.annobin_vm.c.unlikely.annobin_vm.c_end.unlikely.annobin_vm.c.startup.annobin_vm.c_end.startup.annobin_vm.c.exit.annobin_vm.c_end.exit.annobin_rb_class_of.start.annobin_rb_class_of.endrb_class_of.annobin_fill_keys_values.start.annobin_fill_keys_values.endfill_keys_values.annobin_call_cfunc_m1.start.annobin_call_cfunc_m1.endcall_cfunc_m1.annobin_call_cfunc_0.start.annobin_call_cfunc_0.endcall_cfunc_0.annobin_call_cfunc_1.start.annobin_call_cfunc_1.endcall_cfunc_1.annobin_call_cfunc_2.start.annobin_call_cfunc_2.endcall_cfunc_2.annobin_call_cfunc_3.start.annobin_call_cfunc_3.endcall_cfunc_3.annobin_call_cfunc_4.start.annobin_call_cfunc_4.endcall_cfunc_4.annobin_call_cfunc_5.start.annobin_call_cfunc_5.endcall_cfunc_5.annobin_call_cfunc_6.start.annobin_call_cfunc_6.endcall_cfunc_6.annobin_call_cfunc_7.start.annobin_call_cfunc_7.endcall_cfunc_7.annobin_call_cfunc_8.start.annobin_call_cfunc_8.endcall_cfunc_8.annobin_call_cfunc_9.start.annobin_call_cfunc_9.endcall_cfunc_9.annobin_call_cfunc_10.start.annobin_call_cfunc_10.endcall_cfunc_10.annobin_call_cfunc_11.start.annobin_call_cfunc_11.endcall_cfunc_11.annobin_call_cfunc_12.start.annobin_call_cfunc_12.endcall_cfunc_12.annobin_call_cfunc_13.start.annobin_call_cfunc_13.endcall_cfunc_13.annobin_call_cfunc_14.start.annobin_call_cfunc_14.endcall_cfunc_14.annobin_call_cfunc_15.start.annobin_call_cfunc_15.endcall_cfunc_15.annobin_vm_once_clear.start.annobin_vm_once_clear.endvm_once_clear.annobin_obj_respond_to_missing.start.annobin_obj_respond_to_missing.endobj_respond_to_missing.annobin_rb_type_str.start.annobin_rb_type_str.endrb_type_str.annobin_local_var_list_update.start.annobin_local_var_list_update.endlocal_var_list_update.annobin_env_memsize.start.annobin_env_memsize.endenv_memsize.annobin_vm_memsize.start.annobin_vm_memsize.endvm_memsize.annobin_rb_arity_error_new.start.annobin_rb_arity_error_new.endrb_arity_error_new.annobin_call_cfunc_m2.start.annobin_call_cfunc_m2.endcall_cfunc_m2.annobin_uncaught_throw_value.start.annobin_uncaught_throw_value.enduncaught_throw_valueid_value.annobin_uncaught_throw_tag.start.annobin_uncaught_throw_tag.enduncaught_throw_tagid_tag.annobin_main_to_s.start.annobin_main_to_s.endmain_to_s.annobin_rb_float_new_inline.start.annobin_rb_float_new_inline.endrb_float_new_inline.annobin_rb_f_loop_size.start.annobin_rb_f_loop_size.endrb_f_loop_size.annobin_rb_method_definition_eq.start.annobin_rb_method_definition_eq.endrb_method_definition_eq.annobin_rb_class_clear_method_cache.start.annobin_rb_class_clear_method_cache.endrb_class_clear_method_cacheruby_vm_class_serial.annobin_rb_f_notimplement.start.annobin_rb_f_notimplement.end.annobin_kwmerge_i.start.annobin_kwmerge_i.endkwmerge_i.annobin_get_param.start.annobin_get_param.endget_param.annobin_uncaught_throw_to_s.start.annobin_uncaught_throw_to_s.enduncaught_throw_to_s.annobin_vm_make_env_each.start.annobin_vm_make_env_each.endvm_make_env_eachenv_data_type.annobin_env_mark.start.annobin_env_mark.endenv_mark.annobin_make_localjump_error.start.annobin_make_localjump_error.endmake_localjump_errorrb_intern_id_cache.19721rb_intern_id_cache.19727rb_intern_id_cache.19725rb_intern_id_cache.19723rb_intern_id_cache.19718rb_intern_id_cache.19729.annobin_rb_thread_mark.start.annobin_rb_thread_mark.end.annobin_thread_memsize.start.annobin_thread_memsize.endthread_memsize.annobin_m_core_set_postexe.start.annobin_m_core_set_postexe.endm_core_set_postexe.annobin_m_core_set_variable_alias.start.annobin_m_core_set_variable_alias.endm_core_set_variable_alias.annobin_vm_stat.start.annobin_vm_stat.endvm_statsym_global_method_state.19305sym_global_constant_state.19306sym_class_serial.19307ruby_vm_global_method_stateruby_vm_global_constant_state.annobin_rb_float_value_inline.part.0.start.annobin_rb_float_value_inline.part.0.endrb_float_value_inline.part.0.annobin_vm_get_cref0.part.7.start.annobin_vm_get_cref0.part.7.endvm_get_cref0.part.7.annobin_vm_get_ruby_level_caller_cfp.isra.14.start.annobin_vm_get_ruby_level_caller_cfp.isra.14.endvm_get_ruby_level_caller_cfp.isra.14.annobin_rb_f_block_given_p.start.annobin_rb_f_block_given_p.end.annobin_vm_redefinition_check_flag.start.annobin_vm_redefinition_check_flag.endvm_redefinition_check_flag.annobin_rb_obj_written.isra.18.start.annobin_rb_obj_written.isra.18.endrb_obj_written.isra.18.annobin_vm_caller_setup_arg_kw.isra.21.start.annobin_vm_caller_setup_arg_kw.isra.21.endvm_caller_setup_arg_kw.isra.21.annobin_rb_vm_check_redefinition_opt_method.part.29.start.annobin_rb_vm_check_redefinition_opt_method.part.29.endrb_vm_check_redefinition_opt_method.part.29vm_opt_method_table.annobin_make_method_entry_refined.start.annobin_make_method_entry_refined.endmake_method_entry_refined.annobin_vm_search_const_defined_class.start.annobin_vm_search_const_defined_class.endvm_search_const_defined_class.annobin_vm_caller_setup_arg_block.isra.38.start.annobin_vm_caller_setup_arg_block.isra.38.endvm_caller_setup_arg_block.isra.38.annobin_hook_before_rewind.isra.40.start.annobin_hook_before_rewind.isra.40.endhook_before_rewind.isra.40.annobin_rb_threadptr_tag_jump.isra.41.start.annobin_rb_threadptr_tag_jump.isra.41.endrb_threadptr_tag_jump.isra.41.annobin_vm_iter_break.start.annobin_vm_iter_break.endvm_iter_break.annobin_kwcheck_i.start.annobin_kwcheck_i.endkwcheck_i.annobin_core_hash_merge.start.annobin_core_hash_merge.endcore_hash_merge__PRETTY_FUNCTION__.20121.annobin_m_core_hash_merge_ptr.start.annobin_m_core_hash_merge_ptr.endm_core_hash_merge_ptr.annobin_core_hash_merge_ary.start.annobin_core_hash_merge_ary.end.annobin_m_core_hash_merge_ary.start.annobin_m_core_hash_merge_ary.endm_core_hash_merge_ary.annobin_m_core_hash_from_ary.start.annobin_m_core_hash_from_ary.endm_core_hash_from_ary.annobin_singleton_class_for_eval.start.annobin_singleton_class_for_eval.endsingleton_class_for_eval.annobin_rb_f_loop.start.annobin_rb_f_loop.endrb_f_looploop_i.annobin_local_var_list_add.isra.48.start.annobin_local_var_list_add.isra.48.endlocal_var_list_add.isra.48.annobin_collect_local_variables_in_iseq.start.annobin_collect_local_variables_in_iseq.endcollect_local_variables_in_iseq.annobin_rb_f_local_variables.start.annobin_rb_f_local_variables.endrb_f_local_variables.annobin_thread_free.start.annobin_thread_free.endthread_free.annobin_release_method_definition.start.annobin_release_method_definition.endrelease_method_definition.annobin_rb_search_method_entry.part.60.start.annobin_rb_search_method_entry.part.60.endrb_search_method_entry.part.60.annobin_lep_svar_get.start.annobin_lep_svar_get.endlep_svar_get.annobin_vm_cfp_svar_get.start.annobin_vm_cfp_svar_get.endvm_cfp_svar_get.annobin_vm_search_superclass.isra.13.start.annobin_vm_search_superclass.isra.13.endvm_search_superclass.isra.13.annobin_vm_call_ivar.start.annobin_vm_call_ivar.endvm_call_ivar.annobin_add_opt_method.start.annobin_add_opt_method.endadd_opt_method.annobin_vm_call_attrset.start.annobin_vm_call_attrset.endvm_call_attrset.annobin_vm_cref_push.constprop.89.start.annobin_vm_cref_push.constprop.89.endvm_cref_push.constprop.89.annobin_lep_svar_set.start.annobin_lep_svar_set.endlep_svar_set.annobin_vm_cfp_svar_set.start.annobin_vm_cfp_svar_set.endvm_cfp_svar_set.annobin_rb_vm_ep_local_ep.start.annobin_rb_vm_ep_local_ep.end.annobin_rb_vm_control_frame_block_ptr.start.annobin_rb_vm_control_frame_block_ptr.end.annobin_ruby_vm_sysstack_error_copy.start.annobin_ruby_vm_sysstack_error_copy.end.annobin_vm_stackoverflow.start.annobin_vm_stackoverflow.endvm_stackoverflow.annobin_vm_push_frame.start.annobin_vm_push_frame.endvm_push_frame.annobin_vm_caller_setup_arg_splat.isra.53.start.annobin_vm_caller_setup_arg_splat.isra.53.endvm_caller_setup_arg_splat.isra.53.annobin_th_init.start.annobin_th_init.endth_initthread_recycle_stack_countthread_recycle_stack_slot.annobin_vm_call_iseq_setup_normal.start.annobin_vm_call_iseq_setup_normal.endvm_call_iseq_setup_normal.annobin_vm_call_iseq_setup_tailcall.start.annobin_vm_call_iseq_setup_tailcall.endvm_call_iseq_setup_tailcall.annobin_vm_set_eval_stack.start.annobin_vm_set_eval_stack.endvm_set_eval_stack.annobin_rb_error_arity.start.annobin_rb_error_arity.end.annobin_vm_call_cfunc.start.annobin_vm_call_cfunc.end.annobin_m_core_hash_merge_kwd.start.annobin_m_core_hash_merge_kwd.endm_core_hash_merge_kwd.annobin_rb_vm_get_cref.start.annobin_rb_vm_get_cref.end.annobin_rb_vm_rewrite_cref_stack.start.annobin_rb_vm_rewrite_cref_stack.end.annobin_rb_vm_opt_struct_aref.start.annobin_rb_vm_opt_struct_aref.end.annobin_rb_vm_opt_struct_aset.start.annobin_rb_vm_opt_struct_aset.end.annobin_rb_clear_cache.start.annobin_rb_clear_cache.end.annobin_rb_clear_constant_cache.start.annobin_rb_clear_constant_cache.end.annobin_rb_clear_method_cache_by_class.start.annobin_rb_clear_method_cache_by_class.end.annobin_rb_unlink_method_entry.start.annobin_rb_unlink_method_entry.end.annobin_rb_gc_mark_unlinked_live_method_entries.start.annobin_rb_gc_mark_unlinked_live_method_entries.end.annobin_rb_sweep_method_entry.start.annobin_rb_sweep_method_entry.end.annobin_rb_free_method_entry.start.annobin_rb_free_method_entry.end.annobin_rb_define_alloc_func.start.annobin_rb_define_alloc_func.end.annobin_rb_undef_alloc_func.start.annobin_rb_undef_alloc_func.end.annobin_rb_get_alloc_func.start.annobin_rb_get_alloc_func.end.annobin_rb_method_entry_at.start.annobin_rb_method_entry_at.end.annobin_rb_method_entry_get_without_cache.start.annobin_rb_method_entry_get_without_cache.endglobal_method_cache.annobin_rb_method_entry.start.annobin_rb_method_entry.end.annobin_vm_search_method.start.annobin_vm_search_method.endvm_search_methodvm_call_general.annobin_opt_eq_func.start.annobin_opt_eq_func.endopt_eq_func.annobin_rb_equal_opt.start.annobin_rb_equal_opt.end.annobin_check_redefined_method.start.annobin_check_redefined_method.endcheck_redefined_method.annobin_get_original_method_entry.part.64.start.annobin_get_original_method_entry.part.64.endget_original_method_entry.part.64rb_resolve_refined_method.part.62.annobin_rb_resolve_refined_method.part.62.start.annobin_rb_resolve_refined_method.part.62.end.annobin_rb_resolve_refined_method.start.annobin_rb_resolve_refined_method.end.annobin_rb_method_entry_without_refinements.start.annobin_rb_method_entry_without_refinements.end.annobin_check_definition.start.annobin_check_definition.endcheck_definition.annobin_rb_mod_protected_method_defined.start.annobin_rb_mod_protected_method_defined.endrb_mod_protected_method_defined.annobin_rb_mod_private_method_defined.start.annobin_rb_mod_private_method_defined.endrb_mod_private_method_defined.annobin_rb_mod_public_method_defined.start.annobin_rb_mod_public_method_defined.endrb_mod_public_method_defined.annobin_rb_method_boundp.start.annobin_rb_method_boundp.end.annobin_rb_mod_method_defined.start.annobin_rb_mod_method_defined.endrb_mod_method_defined.annobin_rb_method_entry_eq.start.annobin_rb_method_entry_eq.end.annobin_rb_hash_method_entry.start.annobin_rb_hash_method_entry.end.annobin_rb_method_basic_definition_p.start.annobin_rb_method_basic_definition_p.end.annobin_check_funcall_missing.isra.65.start.annobin_check_funcall_missing.isra.65.endcheck_funcall_missing.isra.65check_funcall_failedcheck_funcall_exec.annobin_Init_Method.start.annobin_Init_Method.end.annobin_rb_current_receiver.start.annobin_rb_current_receiver.end.annobin_ruby_eval_string_from_file_protect.start.annobin_ruby_eval_string_from_file_protect.endeval_string_from_file_helper.annobin_rb_eval_string_protect.start.annobin_rb_eval_string_protect.end.annobin_rb_eval_string_wrap.start.annobin_rb_eval_string_wrap.end.annobin_rb_throw_obj.start.annobin_rb_throw_obj.endrb_eUncaughtThrow.annobin_rb_f_throw.start.annobin_rb_f_throw.endrb_f_throw.annobin_rb_throw.start.annobin_rb_throw.end.annobin_rb_current_realfilepath.start.annobin_rb_current_realfilepath.end.annobin_rb_next_class_serial.start.annobin_rb_next_class_serial.end.annobin_rb_vm_inc_const_missing_count.start.annobin_rb_vm_inc_const_missing_count.end.annobin_rb_vm_get_binding_creatable_next_cfp.start.annobin_rb_vm_get_binding_creatable_next_cfp.end.annobin_rb_vm_get_ruby_level_next_cfp.start.annobin_rb_vm_get_ruby_level_next_cfp.end.annobin_rb_vm_pop_cfunc_frame.start.annobin_rb_vm_pop_cfunc_frame.end.annobin_rb_iterate.start.annobin_rb_iterate.end.annobin_rb_block_call.start.annobin_rb_block_call.enditerate_method.annobin_rb_check_block_call.start.annobin_rb_check_block_call.enditerate_check_method.annobin_rb_catch_protect.start.annobin_rb_catch_protect.end.annobin_rb_catch_obj.start.annobin_rb_catch_obj.end.annobin_rb_catch.start.annobin_rb_catch.end.annobin_rb_f_catch.start.annobin_rb_f_catch.endrb_f_catchcatch_i.annobin_rb_vm_rewind_cfp.start.annobin_rb_vm_rewind_cfp.end.annobin_rb_frame_pop.start.annobin_rb_frame_pop.end.annobin_ruby_vm_at_exit.start.annobin_ruby_vm_at_exit.end.annobin_rb_vm_env_local_variables.start.annobin_rb_vm_env_local_variables.end.annobin_rb_vm_make_proc_lambda.start.annobin_rb_vm_make_proc_lambda.end.annobin_rb_vm_make_proc.start.annobin_rb_vm_make_proc.end.annobin_vm_once_exec.start.annobin_vm_once_exec.endvm_once_exec.annobin_vm_make_env_object.start.annobin_vm_make_env_object.end.annobin_rb_vm_make_env_object.start.annobin_rb_vm_make_env_object.end.annobin_rb_vm_stack_to_heap.start.annobin_rb_vm_stack_to_heap.end.annobin_rb_vm_make_binding.start.annobin_rb_vm_make_binding.end.annobin_rb_binding_add_dynavars.start.annobin_rb_binding_add_dynavars.end.annobin_rb_backref_get.start.annobin_rb_backref_get.end.annobin_rb_backref_set.start.annobin_rb_backref_set.end.annobin_rb_lastline_get.start.annobin_rb_lastline_get.end.annobin_rb_lastline_set.start.annobin_rb_lastline_set.end.annobin_rb_sourcefilename.start.annobin_rb_sourcefilename.end.annobin_rb_sourcefile.start.annobin_rb_sourcefile.end.annobin_rb_sourceline.start.annobin_rb_sourceline.end.annobin_rb_vm_cref.start.annobin_rb_vm_cref.end.annobin_rb_method_entry_with_refinements.start.annobin_rb_method_entry_with_refinements.end.annobin_rb_vm_cref_in_context.start.annobin_rb_vm_cref_in_context.end.annobin_rb_vm_cbase.start.annobin_rb_vm_cbase.end.annobin_rb_vm_localjump_error.start.annobin_rb_vm_localjump_error.end.annobin_check_block.isra.69.part.70.start.annobin_check_block.isra.69.part.70.endcheck_block.isra.69.part.70.annobin_rb_vm_make_jump_tag_but_local_jump.start.annobin_rb_vm_make_jump_tag_but_local_jump.end.annobin_rb_vm_jump_tag_but_local_jump.start.annobin_rb_vm_jump_tag_but_local_jump.end.annobin_rb_iter_break.start.annobin_rb_iter_break.end.annobin_rb_iter_break_value.start.annobin_rb_iter_break_value.end.annobin_rb_vm_check_redefinition_by_prepend.start.annobin_rb_vm_check_redefinition_by_prepend.end.annobin_rb_vm_control_frame_id_and_class.start.annobin_rb_vm_control_frame_id_and_class.end.annobin_rb_thread_method_id_and_class.start.annobin_rb_thread_method_id_and_class.end.annobin_rb_frame_method_id_and_class.start.annobin_rb_frame_method_id_and_class.end.annobin_rb_thread_current_status.start.annobin_rb_thread_current_status.end.annobin_rb_vm_call_cfunc.start.annobin_rb_vm_call_cfunc.end.annobin_rb_vm_mark.start.annobin_rb_vm_mark.end.annobin_rb_vm_register_special_exception.start.annobin_rb_vm_register_special_exception.end.annobin_rb_vm_add_root_module.start.annobin_rb_vm_add_root_module.end.annobin_ruby_vm_destruct.start.annobin_ruby_vm_destruct.end.annobin_rb_thread_recycle_stack_release.start.annobin_rb_thread_recycle_stack_release.end.annobin_rb_obj_is_thread.start.annobin_rb_obj_is_thread.end.annobin_rb_thread_alloc.start.annobin_rb_thread_alloc.end.annobin_Init_VM.start.annobin_Init_VM.endm_core_set_method_aliasm_core_undef_methodm_core_define_methodm_core_define_singleton_methodvm_data_type.annobin_rb_vm_set_progname.start.annobin_rb_vm_set_progname.end.annobin_Init_BareVM.start.annobin_Init_BareVM.end.annobin_Init_vm_objects.start.annobin_Init_vm_objects.end.annobin_rb_vm_top_self.start.annobin_rb_vm_top_self.end.annobin_Init_top_self.start.annobin_Init_top_self.end.annobin_ruby_vm_verbose_ptr.start.annobin_ruby_vm_verbose_ptr.end.annobin_ruby_vm_debug_ptr.start.annobin_ruby_vm_debug_ptr.end.annobin_rb_ruby_verbose_ptr.start.annobin_rb_ruby_verbose_ptr.end.annobin_vm_exec_core.start.annobin_vm_exec_core.endvm_exec_coreinsns_address_table.17276vm_call_method_missingcheck_matchvm_call_super_methodargument_arity_errorsetup_parameters_complex__PRETTY_FUNCTION__.16343__PRETTY_FUNCTION__.17542vm_exec_core.cold.92.annobin_vm_exec.start.annobin_vm_exec.endvm_exec.annobin_eval_string_with_cref.start.annobin_eval_string_with_cref.endeval_string_with_cref.annobin_rb_f_eval.start.annobin_rb_f_eval.end.annobin_ruby_eval_string_from_file.start.annobin_ruby_eval_string_from_file.end.annobin_rb_eval_string.start.annobin_rb_eval_string.end.annobin_eval_string_from_file_helper.start.annobin_eval_string_from_file_helper.end.annobin_rb_iseq_eval.start.annobin_rb_iseq_eval.end.annobin_rb_iseq_eval_main.start.annobin_rb_iseq_eval_main.end.annobin_vm_call0_body.constprop.87.start.annobin_vm_call0_body.constprop.87.endvm_call0_body.constprop.87send_internalvm_call_iseq_setup.annobin_check_funcall_respond_to.start.annobin_check_funcall_respond_to.endcheck_funcall_respond_to.annobin_rb_check_funcall.start.annobin_rb_check_funcall.end.annobin_iterate_check_method.start.annobin_iterate_check_method.end.annobin_rb_check_funcall_with_hook.start.annobin_rb_check_funcall_with_hook.end.annobin_rb_vm_call.start.annobin_rb_vm_call.end.annobin_rb_call0.start.annobin_rb_call0.endrb_call0.annobin_rb_apply.start.annobin_rb_apply.end.annobin_rb_funcall.start.annobin_rb_funcall.end.annobin_raise_argument_error.start.annobin_raise_argument_error.endraise_argument_errorrb_intern_id_cache.16742.annobin_argument_arity_error.start.annobin_argument_arity_error.end.annobin_args_setup_kw_parameters.start.annobin_args_setup_kw_parameters.endargs_setup_kw_parameters.annobin_setup_parameters_complex.start.annobin_setup_parameters_complex.end__PRETTY_FUNCTION__.16569__PRETTY_FUNCTION__.16529__PRETTY_FUNCTION__.16735.annobin_vm_call_iseq_setup.start.annobin_vm_call_iseq_setup.end.annobin_vm_yield_setup_args.start.annobin_vm_yield_setup_args.endvm_yield_setup_args.annobin_invoke_block_from_c.start.annobin_invoke_block_from_c.endinvoke_block_from_c.annobin_vm_invoke_proc.start.annobin_vm_invoke_proc.end.annobin_rb_vm_invoke_proc.start.annobin_rb_vm_invoke_proc.end.annobin_vm_call_opt_call.start.annobin_vm_call_opt_call.endvm_call_opt_call.annobin_vm_call_bmethod.start.annobin_vm_call_bmethod.endvm_call_bmethod.annobin_rb_yield_block.start.annobin_rb_yield_block.end.annobin_yield_under.start.annobin_yield_under.endyield_under.annobin_rb_obj_instance_exec.start.annobin_rb_obj_instance_exec.end.annobin_rb_mod_module_exec.start.annobin_rb_mod_module_exec.end.annobin_specific_eval.start.annobin_specific_eval.endspecific_eval.annobin_rb_obj_instance_eval.start.annobin_rb_obj_instance_eval.end.annobin_rb_mod_module_eval.start.annobin_rb_mod_module_eval.end.annobin_rb_yield_values2.start.annobin_rb_yield_values2.end.annobin_rb_yield.start.annobin_rb_yield.end.annobin_rb_yield_splat.start.annobin_rb_yield_splat.end.annobin_rb_yield_values.start.annobin_rb_yield_values.end.annobin_make_no_method_exception.start.annobin_make_no_method_exception.endmake_no_method_exception.annobin_raise_method_missing.isra.72.start.annobin_raise_method_missing.isra.72.endraise_method_missing.isra.72.annobin_rb_raise_method_missing.start.annobin_rb_raise_method_missing.end.annobin_rb_method_missing.start.annobin_rb_method_missing.endrb_method_missing.annobin_vm_call_opt_send.start.annobin_vm_call_opt_send.endvm_call_opt_sendvm_call_method.annobin_vm_call_method.start.annobin_vm_call_method.end.annobin_vm_call_general.start.annobin_vm_call_general.end.annobin_vm_call_method_missing.start.annobin_vm_call_method_missing.end.annobin_vm_call_super_method.start.annobin_vm_call_super_method.end.annobin_rb_funcallv.start.annobin_rb_funcallv.end.annobin_method_missing.start.annobin_method_missing.end.annobin_rb_call_super.start.annobin_rb_call_super.end.annobin_uncaught_throw_init.start.annobin_uncaught_throw_init.enduncaught_throw_init.annobin_method_added.part.73.start.annobin_method_added.part.73.endmethod_added.part.73.annobin_obj_respond_to.start.annobin_obj_respond_to.end.annobin_check_funcall_exec.start.annobin_check_funcall_exec.end.annobin_check_match.start.annobin_check_match.end.annobin_rb_eval_cmd.start.annobin_rb_eval_cmd.end.annobin_rb_funcallv_public.start.annobin_rb_funcallv_public.end.annobin_rb_funcall_passing_block.start.annobin_rb_funcall_passing_block.end.annobin_rb_funcall_with_block.start.annobin_rb_funcall_with_block.end.annobin_iterate_method.start.annobin_iterate_method.end.annobin_rb_each.start.annobin_rb_each.end.annobin_send_internal.start.annobin_send_internal.end.annobin_rb_f_send.start.annobin_rb_f_send.end.annobin_rb_f_public_send.start.annobin_rb_f_public_send.end.annobin_loop_i.start.annobin_loop_i.end.annobin_catch_i.start.annobin_catch_i.end.annobin_rb_yield_refine_block.start.annobin_rb_yield_refine_block.end.annobin_rb_vm_get_insns_address_table.start.annobin_rb_vm_get_insns_address_table.end.annobin_rb_method_entry_make.start.annobin_rb_method_entry_make.endrb_method_entry_make.annobin_rb_add_method.start.annobin_rb_add_method.end.annobin_rb_add_method_cfunc.start.annobin_rb_add_method_cfunc.end.annobin_rb_add_refined_method_entry.start.annobin_rb_add_refined_method_entry.end.annobin_remove_method.start.annobin_remove_method.end.annobin_rb_remove_method_id.start.annobin_rb_remove_method_id.end.annobin_rb_remove_method.start.annobin_rb_remove_method.end.annobin_rb_mod_remove_method.start.annobin_rb_mod_remove_method.endrb_mod_remove_method.annobin_rb_attr.start.annobin_rb_attr.end.annobin_rb_undef.start.annobin_rb_undef.end.annobin_rb_mod_undef_method.start.annobin_rb_mod_undef_method.endrb_mod_undef_method.annobin_m_core_undef_method.start.annobin_m_core_undef_method.end.annobin_set_method_visibility.start.annobin_set_method_visibility.endset_method_visibility.annobin_rb_mod_private_method.start.annobin_rb_mod_private_method.endrb_mod_private_method.annobin_rb_mod_public_method.start.annobin_rb_mod_public_method.endrb_mod_public_method.annobin_rb_mod_private.start.annobin_rb_mod_private.endrb_mod_private.annobin_top_private.start.annobin_top_private.endtop_private.annobin_rb_mod_protected.start.annobin_rb_mod_protected.endrb_mod_protected.annobin_rb_mod_public.start.annobin_rb_mod_public.endrb_mod_public.annobin_top_public.start.annobin_top_public.endtop_public.annobin_Init_vm_eval.start.annobin_Init_vm_eval.end.annobin_vm_define_method.isra.82.start.annobin_vm_define_method.isra.82.endvm_define_method.isra.82.annobin_m_core_define_singleton_method.start.annobin_m_core_define_singleton_method.end.annobin_m_core_define_method.start.annobin_m_core_define_method.end.annobin_method_entry_set.isra.83.start.annobin_method_entry_set.isra.83.endmethod_entry_set.isra.83.annobin_rb_method_entry_set.start.annobin_rb_method_entry_set.end.annobin_Init_eval_method.start.annobin_Init_eval_method.endrb_mod_alias_methodrb_mod_modfunc.annobin_rb_mod_modfunc.start.annobin_rb_mod_modfunc.end.annobin_rb_alias.start.annobin_rb_alias.end.annobin_rb_mod_alias_method.start.annobin_rb_mod_alias_method.end.annobin_m_core_set_method_alias.start.annobin_m_core_set_method_alias.end.annobin_rb_obj_respond_to.start.annobin_rb_obj_respond_to.end.annobin_rb_respond_to.start.annobin_rb_respond_to.end.annobin_check_funcall_failed.start.annobin_check_funcall_failed.end.annobin_rb_ruby_debug_ptr.start.annobin_rb_ruby_debug_ptr.end.LC0.LC24.LC23.LC22.LC21.LC20.LC19.LC18.LC17.LC16.LC15.LC14.LC13.LC12.LC11.LC10.LC9.LC8.LC7.LC6.LC5.LC4.LC3.LC2.LC1.LC27.LC26.LC25.LC28.LC29.LC30.LC31.LC38.LC39.LC36.LC35.LC34.LC32.LC37.LC33.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC73.LC78.LC77.LC74.LC75.LC76.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC118.LC111.LC112.LC134.LC135.LC110.LC130.LC131.LC132.LC133.LC128.LC106.LC109.LC126.LC127.LC125.LC129.LC114.LC115.LC121.LC108.LC119.LC122.LC117.LC124.LC107.LC105.LC116.LC120.LC123.LC113.LC138.LC137.LC139.LC140.LC141.LC142.LC145.LC143.LC144.LC146.LC149.LC150.LC151.LC147.LC148.LC152.LC153.LC155.LC154.LC156.LC157.LC158.LC160.LC159.LC161.LC162.LC163.LC168.LC164.LC165.LC166.LC167.LC169.LC171.LC170.LC172.LC174.LC173.LC178.LC175.LC176.LC177.LC180.LC179.LC181.LC182.LC183.LC187.LC184.LC185.LC186.LC192.LC188.LC193.LC190.LC191.LC189.LC194.LC195.LC196.LC197.LC198.LC199.LC200.LC201.LC202.LC203.LC204.LC205.LC206.LC207.LC208.LC209.LC210.LC211.LC212.LC213.LC214.LC215.LC216.LC217.LC218.LC219.LC220.LC221.LC222.LC223.LC224.LC225.LC226.LC227.LC228.LC229.LC230.LC231.LC232.LC233.LC234.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolrb_sprintfrb_eArgErrorrb_exc_new_strrb_ary_new_from_valuesrb_ivar_getrb_str_new_staticrb_float_new_in_heaprb_equalrb_bugrb_class_foreach_subclassrb_f_notimplementrb_notimplementrb_check_typerb_hash_asetgetenvstrtolrb_attr_getrb_str_formatruby_xmallocrb_cEnvrb_data_typed_object_allocruby_current_threadrb_vmdebug_stack_dump_rawrb_gc_mark_valuesrb_gc_markrb_eLocalJumpErrorrb_exc_new_cstrrb_iv_setrb_id2symrb_intern2rb_thread_markrb_mark_method_entryrb_fiber_mark_selfrb_mark_tblrb_gc_mark_machine_stackrb_gc_mark_locationsrb_vm_trace_mark_event_hooksst_memsizerb_block_procrb_call_end_procrb_set_end_procrb_sym2idrb_alias_variablerb_scan_argsrb_ull2inumrb_eTypeErrorrb_raiserb_hash_newrb_sym2strrb_f_block_given_prb_cStringrb_cArrayrb_cHashrb_cBignumrb_cTimerb_cRegexprb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalruby_current_vmrb_safe_levelrb_const_defined_atrb_cObjectrb_obj_is_procrb_check_convert_typerb_obj_classnameruby_vm_event_flagsrb_threadptr_exec_event_hooks_and_pop_framerb_threadptr_exec_event_hooksrb_node_newnode__assert_failrb_singleton_classrb_special_singleton_classrb_block_given_prb_eStopIterationrb_rescue2rb_frame_this_funcrb_enumeratorize_with_sizerb_is_local_idrb_hash_tbl_rawst_init_numtablerb_hash_keysrb_hash_clearst_free_tableruby_xfreerb_id2strrb_eNotImpErrorrb_ary_entryrb_obj_classst_insertrb_id2namerb_ivar_setrb_error_frozen_objectrb_ary_storerb_ary_newrb_vm_ep_local_eprb_vm_control_frame_block_ptrruby_vm_sysstack_error_copyrb_eSysStackErrorrb_obj_allocrb_obj_copy_ivarrb_exc_raiserb_sigaltstack_sizeruby_xmalloc2rb_threadptr_execute_interruptsrb_error_arityrb_convert_typerb_hash_foreachrb_vm_get_crefrb_vm_rewrite_cref_stackrb_vm_opt_struct_arefrb_struct_arefrb_vm_opt_struct_asetrb_struct_asetrb_clear_cacherb_warningrb_clear_constant_cacherb_clear_method_cache_by_classrb_cBasicObjectrb_mKernelrb_unlink_method_entryrb_gc_mark_unlinked_live_method_entriesrb_sweep_method_entryrb_free_method_entryrb_define_alloc_funcrb_undef_alloc_funcrb_get_alloc_funcrb_method_entry_atrb_method_entry_get_without_cacherb_method_entryrb_str_equalrb_obj_equalrb_equal_optrb_hash_lookuprb_resolve_refined_methodrb_method_entry_without_refinementsrb_check_idrb_method_boundprb_method_entry_eqrb_hash_method_entryst_hash_uintrb_hash_procrb_method_basic_definition_prb_eNoMethodErrorInit_Methodstderr__fprintf_chkfwriterb_current_receiverrb_eRuntimeErrorruby_eval_string_from_file_protectrb_str_new_cstrrb_protectrb_eval_string_protectrb_eval_stringrb_eval_string_wraprb_module_newrb_obj_clonerb_extend_objectrb_throw_objrb_class_new_instancerb_throwrb_internrb_current_realfilepathrb_next_class_serialrb_vm_inc_const_missing_countruby_vm_const_missing_countrb_vm_get_binding_creatable_next_cfprb_vm_get_ruby_level_next_cfprb_vm_pop_cfunc_framerb_iteraterb_block_callrb_check_block_callrb_catch_protectrb_catch_objrb_catchrb_vm_rewind_cfprb_frame_popruby_vm_at_exitrb_vm_env_local_variablesrb_vm_make_proc_lambdarb_proc_wraprb_vm_make_procrb_cProcrb_proc_call_with_blockrb_vm_make_env_objectrb_vm_stack_to_heaprb_vm_make_bindingrb_cBindingrb_binding_allocrb_vm_get_sourcelinerb_binding_add_dynavarsmemcpyrb_iseq_newrb_free_tmp_bufferrb_alloc_tmp_buffer__stack_chk_failrb_backref_getrb_backref_setrb_lastline_getrb_lastline_setrb_sourcefilenamerb_sourcefilerb_sourcelinerb_vm_crefrb_method_entry_with_refinementsrb_vm_cref_in_contextrb_vm_cbaserb_vm_localjump_errorrb_vm_make_jump_tag_but_local_jumprb_vm_jump_tag_but_local_jumprb_iter_breakrb_iter_break_valuerb_vm_check_redefinition_by_prependst_foreachrb_vm_control_frame_id_and_classrb_thread_method_id_and_classrb_frame_method_id_and_classrb_thread_current_statusrb_class_pathrb_vm_call_cfuncrb_vm_markrb_vm_register_special_exceptionrb_obj_freezerb_gc_register_mark_objectrb_freeze_singleton_classrb_vm_add_root_moduleruby_vm_destructrb_fiber_reset_root_local_storagerb_vm_gvl_destroyrb_objspace_freeruby_mimfreerb_thread_recycle_stack_releaserb_obj_is_threadruby_threadptr_data_typerb_typeddata_is_kind_ofrb_thread_allocruby_xcallocrb_check_typeddataInit_VMrb_define_classrb_cRubyVMrb_undef_methodrb_define_singleton_methodrb_class_newrb_define_method_idrb_block_lambdarb_mRubyVMFrozenCorerb_define_class_underrb_cThreadrb_define_constrb_ary_pushrb_insns_name_arrayrb_binding_newrb_define_global_constInit_vm_backtracerb_uint2bigrb_vm_set_prognameInit_BareVMruby_mimmallocrb_objspace_allocInit_native_threadruby_thread_init_stackInit_vm_objectsrb_ary_tmp_newrb_vm_top_selfInit_top_selfrb_define_aliasruby_vm_verbose_ptrruby_vm_debug_ptrrb_ruby_verbose_ptrrb_autoload_loadrb_public_const_get_atrb_class_realrb_obj_is_kind_ofrb_check_array_typerb_hash_has_keyrb_fix2intrb_range_newrb_ary_concatrb_ary_to_aryrb_ary_resurrectrb_reg_matchrb_str_resurrectrb_hash_arefruby_float_modrb_thread_schedulerb_warnrb_cvar_getrb_gvar_setrb_gvar_getrb_const_setrb_public_const_get_fromrb_cvar_setrb_str_appendrb_reg_new_aryrb_ary_clearrb_obj_as_stringrb_const_get_atrb_reg_match_prerb_obj_notrb_obj_not_equalrb_hash_compare_by_id_prb_ary_plusrb_str_succmodfrb_iseq_clonerb_reg_last_matchrb_ensurerb_iseq_add_mark_objectrb_ary_duprb_reg_nth_matchrb_autoloading_valuerb_const_lookuprb_const_getrb_reg_match_lastrb_cvar_definedrb_ivar_definedrb_global_entryrb_gvar_definedrb_iseq_defined_stringrb_public_const_defined_fromrb_int2bigrb_big_minusrb_define_module_idrb_set_class_path_stringrb_big_plusrb_str_lengthrb_str_concatrb_funcallrb_define_class_idrb_class_inheritedrb_reg_match_postrb_big_mulrb_id_quote_unprintablerb_const_definedrb_check_funcallrb_dbl2bigrb_str_plusrb_inspectrb_string_value_ptrruby_binding_data_typerb_fstringrb_iseq_compile_with_optionrb_get_backtracerb_vm_backtrace_str_aryrb_usascii_str_new_staticrb_str_duprb_str_catrb_str_updaterb_f_evalrb_string_valuerb_check_safe_objrb_num2intruby_eval_string_from_filerb_iseq_evalrb_iseq_eval_mainrb_ary_unshiftrb_funcallvrb_method_entry_arityrb_eSecurityErrorruby_stack_checkrb_check_funcall_with_hookrb_vm_callrb_applyrb_ary_subseqrb_out_of_intrb_vm_backtrace_objectrb_keyword_error_newrb_check_hash_typerb_extract_keywordsrb_hash_duprb_ary_resizerb_ary_poprb_vm_invoke_procrb_yield_blockrb_obj_instance_execrb_mod_module_execrb_obj_instance_evalrb_mod_module_evalrb_yield_values2rb_yieldrb_yield_splatrb_yield_valuesrb_name_err_mesg_newrb_eNameErrorrb_raise_method_missingmemmoverb_str_internrb_call_superrb_to_symbolrb_cModulerb_eval_cmdrb_set_safe_level_forcerb_funcallv_publicrb_funcall_passing_blockrb_funcall_with_blockrb_eachrb_f_sendrb_f_public_sendrb_yield_refine_blockrb_vm_get_insns_address_tablerb_frozen_class_prb_refinement_module_get_refined_classrb_add_refined_method_entryrb_proc_get_iseqrb_iseq_first_linenorb_compile_warningrb_add_methodrb_ary_freezerb_add_method_cfuncst_deleterb_name_errorrb_remove_method_idrb_remove_methodrb_name_error_strrb_attrrb_check_attr_idrb_intern_strrb_id_attrsetrb_undefrb_class_namerb_method_name_errorrb_print_undefrb_frame_calleerb_print_undef_strInit_vm_evalrb_define_global_functionrb_define_methodrb_define_private_methodrb_method_entry_setInit_eval_methodrb_eExceptionrb_to_idrb_aliasrb_obj_respond_torb_obj_method_arityrb_mod_method_locationrb_compile_warnrb_respond_torb_ruby_debug_ptrruby_vm_collect_usage_func_registerruby_vm_collect_usage_func_operandruby_vm_collect_usage_func_insnG*H��������S*I��������c*J��������s*K���������*L���������*M���������U���������E���������F���������G���������H��������I��������J��������#K��������3L��������CM��������SN��������cO��������sP���������Q���������R���������S���������T���������U���������V���������W���������X��������Y��������Z��������#[��������3\��������C]���������^���������N��������*O�������� _��������%N��������7`��������<N��������gQ�������������a��������(b��������yUx)	U��������L	c��������S	V��������g	�	�	Y���������	Z���������	[��������
\��������!
]��������s
^��������z
��
R���������
_��������d`���������*a���������>|�b��������\`���������c���������d���������d���������V���������e��������Q
f��������c
f��������u
f���������
*g���������
h���������
U��
d�
e���������
i���������
j���������
f���������
i��������Lg��������!k��������+L;TLh��������Qk��������[Tk\�i���������k���������\�l�j���������k���������l�D�k���������k���������Dl��������
k��������d_e��������yf���������f���������f���������f���������m���������n���������n��������o��������+c��������Ip��������\q���������f���������f���������c���������f���������f���������f��������f��������1f��������Qf��������af���������f���������f���������f���������f���������f��������f��������hs���������t���������*u���������v���������c��������w��������w��������x��������Jm��������by���������<�4�,��z���������<�[���������4z��������4[��������$,16z��������=,H[��������}*{���������n���������|���������o���������k���������j���������p���������<�k���������j���������q���������4�k���������j���������,�<z��������I}��������[`z��������{�z���������~���������r���������*O���������|���������c��������#*I��������4*K��������D*���������T*���������d*���������p*���������|*M���������*����������*���������9���������a����������}���������[��������^�h��������������������`���������`��������	������������������}����������*����������������������������ss��������zt��������������������������������������u���������*{��������|��������7���������Z���������z�������������������L����������������������������= Z��������s Z��������� [��������� U� v��������� w��������� ���������� c��������U!Z���������!c���������!c��������"}���������"����������"*����������"����������"����������"j��������#���������%#���������0#j���������#c���������#}���������#����������$����������$���������8%���������[%���������c%���������j%c���������%����������%c���������%x���������%V���������%y���������%V��������&&���������8&���������B&z��������L&*���������V&|���������&����������'c��������q(^���������(���������)���������Q)���������t)�|)����������)����������){���������)V��������G*����������*����������*����������*���������+���������'+���������.+*O��������5+|��������?+|���������+����������,����������,����������,���������%-���������n-����������-���������9.���������[.����������.���������G/*���������P/���������Z/���������i/����������/����������/���������91���������A1���������Y1|s1�y1|V2���������{5����������6���������'7���������8���������K9���������z9}���������9[���������:����������:����������:}���������:V���������:c�������� ;~��������';��������5;���������Z;����������;����������;����������;V��������f<����������<����������<����������<���������Q=���������y=����������=����������=����������=���������>���������;>���������B>���������I>Q>g>�>*����������>*����������>*����������>�>�>�>`���������>���������;?m���������?����������?����������?Z��������.@Z���������@���������A���������CA���������]AhA�ABB&B�B�B*H���������B*I���������BC���������CCC*J��������SC*K��������cC*L��������sC*M���������C����������C���������D*K��������#D*���������9D���������^D����������D*����������E����������E���������F*K��������#F*���������9F���������MF���������_F����������F*���������dG����������G���������H���������H����������H���������FI���������iI����������I���������GJ���������lJ����������JU��J���������HK����������K����������KV���������K����������K���������Lj��������&L*���������FL���������kL���������pL\���������L]���������L���������L�L*����������L����������L����������L���������L����������L�L*���������M���������
M���������M���������'Mc��������BM*���������IM���������SM|��������qM����������M����������M����������M*����������Mc���������M���������N���������
N���������N���������*N���������WNc��������|Nc���������N����������NS���������N��N����������N����������N���������Oc��������9O���������LOy��������ZO���������iO���������qOj��������|O����������Oc���������O�O�O����������Pc���������P���������Q���������[Q���������bQc��������zQ����������S����������S����������S���������;T���������hTc���������U����������U��������Vc��������FV���������NVj��������sV*���������{V����������V*����������V����������V���������Vm���������Vy��������)W���������GWc��������uW���������zW`���������W}���������W����������W���������X���������pX`���������X���������X����������XV���������Xc���������X���������Y*
�������� Y��������<Y���������AYV���������Y*
���������Y���������Z*����������Z����������Z|���������Z���������s[*��������{[���������[���������[c���������\���������\���������
]��������"]���������]���������]���������]c���������]c��������^c��������:^c��������W^c��������`^����������^c���������^����������^c���������^���������_c��������_���������X_����������_���������_c���������_����������_���������`c��������$`���������6`����������`*����������`����������`|���������`����������`����������`#���������`c��������aU�-a���������Ma���������ha����������a����������a����������a$���������a����������ac��������bc�������� bc��������Wcc���������c���������c����������c����������c.���������c���������Hdc��������Qd��������Oe*H���������e*I���������e*J���������e*K���������e*L���������e*M��������%ff��������go��������)gr��������Bgf��������Ugf��������hgf��������gf���������gf���������gf���������gf���������gf��������hf��������!hf��������<hf��������Whf���������h����������h����������h2���������hP��������)i4��������Mi���������tij���������i[���������i7�������� j���������6j8��������Cj9��������Kj:��������Tj����������j|�j|�j��j=���������j>���������j@���������j=��������kb��������k=��������kc��������%kA��������<k}��������Hk���������Pkk��������^k���������ek����������k����������k*����������kC���������k*D���������k���������l*I��������
l*K��������l*M��������l��������� lE��������7l���������<lF��������Cl*���������KlG��������]l���������ylH���������lH���������lH���������lH���������lH���������lH��������mH��������%mH��������>mH��������WmH��������hm*t��������mmH��������~m*I���������mH���������m2���������m2���������m3���������m*J���������m����������m*����������mK���������m*a���������m���������n���������$nE��������+n*���������2n���������:nC��������An*L��������Ln���������Qn���������\n���������gnM��������sn���������xnS���������nN���������n����������nS���������nN���������n����������nS���������nN���������nO���������n����������nM���������n����������n}��������
o���������ok��������oj��������/o[��������Zo���������dok��������loj��������|o[���������o����������ok���������oj���������o[���������o����������ok��������pj��������p[��������p2��������%p���������*pM��������6p���������=pc��������Dp���������IpS��������ap��������op>ypb���������p=���������p*L���������pb���������p}���������p����������pi���������p����������pc��������"q3��������OqP��������Vq���������^qQ��������cq���������uq�|q����������q*����������q*����������q���������r���������=r���������sr����������r����������r���������$s*���������ms����������s����������s���������t���������Ot����������t����������t*����������t����������t���������7u����������u����������u���������v*���������*v���������8v*���������Yv����������v*H���������v*H���������v*I���������v*K���������v*M��������	wS��������wS��������)wS��������9wS��������Kw*I��������Rw*K��������Yw*M��������sw*J��������zw*I���������w*K���������w*M���������w*J���������w*K���������w*I���������w*M���������w*L��������x*L��������
x*I��������x*K��������x*M��������+x*M��������2x*I��������9x*K��������]x����������x����������xV���������xV��������Yyc���������y����������y����������y����������y���������BzW��������Iz���������UzX��������xz*����������z����������z����������z����������z����������z}���������z[���������z����������z*����������z���������{���������{���������%{���������1{F��������8{���������D{���������K{���������R{����������{����������{>���������}���������*b��������Wc���������d�����������������������������*{���������|��������������������e���������f��������C�g��������d�h��������3�U��i��������C�}��������u�[�������������������Ƈ�������������������.����������5����������Y����������j����������q����������y������������j��������&�k���������l��������(�Q��������P����������^�S���������*��������������������m���������������������m��������������������*���������3�*���������C�*���������O�����������*���������1�*���������A�*���������M�����������*���������)�*���������9�*���������E����������'�n���������n����������*�����������*���������‘���������ӑ[��������v�*�����������*����������������������o��������>�*���������R�*���������^����������l�N��������	����������R����������ٔ���������"�������������������������������z����������Ö���������j����������Ԙ����������p����������������������������������������*���������������������	��������������������������������q��������!����������&�q��������q�ǟΟ���������ޟ�������������������}������������r����������s��������{������������R����������t����������u���������v����������w��������ۦ���������<����������C�r��������~�x��������ͧn����������y��������>�n��������è���������>�[��������o������������z����������{��������ש|������������������+����������2�V����������}���������~�������������������=�*��������d�*���������¬*���������֬��������������������"�*���������6����������P�����������Q���������*K������������������|�*K��������������������*K��������*������������*K����������*���������Ȱ*���������ذ�������������������+�*K��������I����������������������*�������������������,��������������������A����������I����������S����������e����������|��������������������������������ŷ���������4����������ȸ�������������������������������b���������������������ֻ*J��������������������������������������������������׽����������Q��������*�Q��������Q�Q����������h��������Ծ��������������������b��������
��������������������������������ؿ*K�������������������g�*K���������������������p���������}��������R�Q��������d�c������������������M�h����������w�����������������������������q������������r����������w��������������������w������������������'�w��������/����������7����������X�����������w���������������������d����������e���������w��������]����������t��������������������������������`�f������������������������������l�Q����������T���������������������#����������������������������������������������������������������������������v������������������$����������/����������H����������g����������s�������������������������������������������������������������������h��������	��������������������"����������2����������`�������������������������������������������V����������c����������r�����������n���������������������*��������������������������������������������v�������������������8��������������������)����������4����������?������������}���������[��������@����������u�������������������������������n�a�����������������������������������������������������~��������\�����������������������[����������o��������q��������������������������������9����������k�����������������������������������������������������������������m����������������������������������*{����������|����������U,�������������������������������������������������������V���������������������V���������U<������������������������������#�*���������*����������4�|��������<����������C�*{��������J����������T�|��������\����������c����������m�*{��������w�|��������������������������������*{����������|��������������������������������*{����������|���������������������#�������������������#�������������������V��������(����������/�V��������7����������>����������H�*{��������R�|��������a����������h�V��������o�*���������v������������|���������������������V�������������������������������c����������c�����������������������������*�����������A��������$����������j�������������������� �^��������n��������������������"�*���������*�A��������a������������*H�����������������������������������������f����������k�����������������������*K�����������������������������#�*I��������3�*M��������B�*���������I����������S�|��������c�*L��������s�*J�����������������������������������������1����������=�c�������������������������������������������y������������������������������S������������������D����������n������������y�����������������������������������������	�h������������������H����������S����������e����������������������������������c����������*����������*{��������
�����������|��������7�c��������C����������H�k��������R�*���������Z�����������UD,�^�������������������I�����������������������������������������h�Q��������u�j����������������������������������������c����������j�V������������������3����������:�V��������D����������z������������V�������������������������������������������������������������/�j����������*O���������������������|���������c��������i������������c��������������������*��������������������|��������!����������4�*���������;����������E�|��������S�*I����������*J���������*K��������+�*H��������C�*L��������c�*M��������������������������������*�����������|�������������������������������������������������������������*����������|�������������������*���������
�����������|���������*H��������*�*J����������c������������������I�c��������p����������*��������������������|�������������������*�������������������|��������*I��������2*I��������K*J��������*K��������&*K��������;*H��������[*L���������*L���������*M���������*M��������������������������������������������������������%*���������/|��������7���������D���������N*���������X|��������`���������s*���������z����������|���������*H���������*J��������o*H���������*I�������������������c���������c�������������������*��������������������|�������������������*��������������������|��������*J���������*K���������*L���������������������������������������*M�����������������
���������*���������|��������le�����������������������������*����������|�������������������*��������������������|������������������c��������N	����������	c���������	����������	��������#
c��������6�����������������������������i���������t�������������������������������k���������t�����������j��������
j��������
N���������
j���������[��������2}��������][���������[���������}��������
[��������#[��������NN��������^c��������h���������m����������c������������������
���������}��������[��������\}���������[��������v��������������������������������������������������������������������Q���������Q�������������������*
�����������������Of���������f������������������
N������������������5���������k�������������������+���������e�������������������N���������������������������� }��������6 ���������G ���������!���������%!����������!����������!����������!����������!U\�!����������!����������!���������"UL!"���������("���������-"���������4"U|@"���������G"���������L"���������S"U|_"���������f"���������k"���������p"���������u"���������&}��������'[���������'���������|(f���������)f��������),���������^,����������,����������/Q��������B0���������N0*
��������c0���������1c��������3��������	4}��������Y4[���������4���������5���������6}���������6[��������U7��������x7c���������7c��������^9����������9Q���������9Q���������9���������L:���������V:���������y:c���������:����������:����������:h��������;���������1;���������@;���������Q;����������;c��������<c���������<f���������<c��������q=���������}=*O���������=����������=|���������=c��������?c��������h?���������?����������?����������?k���������?���������@���������@���������/@���������I@*���������_@����������@*H���������@����������@����������@Q��������A*I��������#A*J��������3A*K��������CA*L��������SA*M��������|A*O���������A����������A|���������A*����������Ac���������A����������A����������A���������B���������B���������/B���������4B���������BB*���������LB���������XB����������Bc���������C���������D���������[D*H���������D����������D����������D���������^E*H��������sE*J���������E*I���������E}��������F[��������cF*K��������sF*I���������F*L���������F*M���������F*K���������F*L���������F*J���������F*M���������F*O���������F���������	G|��������G*���������8G���������OGUp�I���������J���������!J���������;J����������Je��������/K���������6KV��������>K���������EK���������OK*���������YK|���������L����������L����������LV���������L����������L����������M����������M����������Mj��������>N*H��������SN*J��������cN*I��������O}��������qO[���������O*K���������O*L��������P*M��������WPc���������Pc��������BQj��������YQ���������Q����������Q���������R*H�������� R��������9R��������cR*J��������sR*I���������R*K���������R*L���������R*M���������R���������Rc���������S���������T���������TV��������=T���������HT�PT���������[T�cT���������zT����������Tj���������TR���������T���������U���������Uy��������U���������gU����������U*H���������U���������;V*H��������MV���������sV����������V*I���������V*I���������Vj���������V����������V*M��������W*M��������W*K��������#W*K��������3W*L��������CW*L��������SW*J��������cW*J���������WQ���������W����������W���������X���������
XV��������X*���������#Xe��������rX ���������Xc���������X*H��������+Y���������CY*I��������SY*K��������cY*M��������rY*{��������yY����������Y|���������Y*L���������Y*J���������Y����������Yc��������Z����������Z����������Z���������[���������[c���������[���������\���������T\���������[\c��������w\����������\c���������\c���������\c��������']c��������W]c���������]c���������]���������X^���������^���������C_����������_*H���������_���������5`*I��������M`��������{`���������`*K���������`*L���������`*J���������`*M���������`*O���������`����������`|���������`*���������a���������a��������Qac��������vc����������c���������d����������d���������ie����������fQ���������f����������f#���������fc���������h����������h��������� i����������kQ��������l���������Klc���������n����������n���������+o���������Lo����������o����������qQ��������Mr����������r*����������r���������
s���������csa���������s`���������s����������sj���������sw���������s`���������s����������s����������s���������;t*���������~t����������t���������u���������vu����������u����������u����������u���������v����������v����������v����������v����������vr���������v����������v���������w���������8w���������lw���������twh���������w����������w����������w���������x���������Rx����������x����������x����������x����������xr��������0y`��������byU��y����������y����������y���������z*X��������pz����������z����������zU��zc���������z���������{��������9{Q��������A{���������:|���������A|V��������H|���������O|V��������s|*X���������|����������|����������|*O���������|����������||���������|���������}���������1}���������^}����������}����������}���������~���������~`�������� ~���������J~j���������~R���������~����������~����������~����������~r���������~.��������
������������������!���������/���������\�����������������������������������������������������������!����������5����������<�N��������D����������q�����������������������������������������������������������������������������������*O��������$����������.�|��������_���������������������������������j��������4�R��������L����������d����������k����������u�r��������т��������ق����������������������������������������'���������5�*{��������<���������F�|��������S�R�����������������ă���������؃���������������������c��������7�w��������B����������J����������߄��������� ���������������������υ���������)����������3�*���������d����������������������������������������������������������������Ԇ�������������������=���������w�*���������������������������������������7�*���������D���������}����������������������������������������������������������������������������������������������Ȉ��������͈����������	��������������������
�������������������
��������������������*��������� �*���������,���������4����������>�*���������J�
��������O����������e���������j���������v���������{�k�������������������������������k����������*��������������������̉���������Ӊ��������؉���������߉*����������*�������������������������������������������������*���������*���������2����������D���������I����������P�*O��������W���������_�C��������r���������|����������������������������������������������������������������Њ���������Պ�������������������k����������������������k��������������������E����������r���������������������������������������������������7����������a�������������������������������<����������t������������*{��������������������|��������Ύc�������������������w��������^�c��������{�����������w������������������H�*���������[���������c����������y���������~������������*�������������������������������������������������ѐ��������֐��������� ������������������!�����������������"�"��������'���������=�#��������B���������X�$��������]����������s�%��������x������������&���������������������'�������������������đ(��������ɑ���������ߑ)���������������������������������������
� ���������������������������%����������8�"��������@���������G�*��������V����������~���������������������I���������x�����������������������*���������,����������T����������Y���������m�*{��������t�*��������~�|��������ϔ�������������������Y����������~�*��������������������c�*{��������j�+��������t�|���������������������������������������Ԗ�����������c���������w�������� �w��������.��������������������֗*M������������������4����������j����������z�j�������������������Ә*I�������������������*J��������$�j��������Y���������{�*K���������������������*H����������*L��������Ù*M��������ә*K���������*H���������a���������������������������k�,��������p�r����������h����������-��������ǚ	��������Ӛ*L���������*J������������������U�w��������`�
��������x���������������������P���������R���������R���������S��������T��������-T���������	W��������B
f��������rr��������i"���������q"����������"���������J#����������%����������&����������-���������..����������>W���������?���������@���������QD����������J���������K���������6K���������ZK����������K����������M���������bV��������5Y���������^��������gb)���������cN��������dN��������i3���������j����������vR���������x���������qzY��������[{^����������C����������C����������C��������S����������7��������� D���$,�P�X���������������D�L�p�x�����&&0&8Md&lM�M�q�M�q�q��$q,�P�X��������$���$$gD$Lgpgx��g��������0�80d�l0�0�s�0�s�s��$s,�P�X�����l��l	l	�D	lL	�p	�x	��	��	��	��	S
�
S0
S8
wd
Sl
w�
w�
��
w�
��
��
�$�,�P�XE���E�E�~�E�~~�D~L�p�x���������
�
�0
�8
d
�l
�
�
1�
�
1�
1�
W	$1,W	PW	X�	�W	��	��	��	��	��	�	�	D�	L�	p�	xU
��	�U
�U
��
U
�
0�
8�d�
l����{
���{
�{
� ${
, P X6� �6�6���6����D�L�p�x>���>�>��>�0�8�d�l����3���3�3��$3,�P�X�������gDLgpgxP�g�P�P��P�0�8gd�lg�g���g�����$�,PX'��'�'���'��� D�L p xS � �S �S �� S � 0� 84!d� l4!�4!��!�4!��!��!��!$�!,�!P�!X?"��!�?"�?"�~"�?"�~"~"�"D~"L�"p�"xN#��"�N#�N#��#N#�#0�#8�$d�#l�$��$��%��$��%��%�,&$�%,,&P,&XZ&�,&�Z&�Z&��&�Z&��&�&C'D�&LC'pC'x<(�C'�<(�<(�,)<(,)0,)8�)d,)l�)��)�C+��)�C+�C+�+-$ C+, +-P +-X �.� +-� �.� �.� �.� �.� �.!�.!/D!�.L!/p!/x!@/�!/�!@/�!@/�!r/"@/"r/0"r/8"�/d"r/l"�/�"�/�"�0�"�/�"�0�"�0�"%1$#�0,#%1P#%1X#m2�#%1�#m2�#m2�#�3�#m2�#�3$�3$�5D$�3L$�5p$�5x$�6�$�5�$�6�$�6�$�6%�6%�60%�68%�:d%�6l%�:�%�:�%�;�%�:�%�;�%�;�%�;$&�;,&�;P&�;X&�=�&�;�&�=�&�=�&�=�&�=�&�='�='">D'�=L'">p'">x'[>�'">�'[>�'[>�'m>([>(m>0(m>8(�>d(m>l(�>�(�>�(?�(�>�(?�(?�(I?$)?,)I?P)I?X)�?�)I?�)�?�)�?�)�?�)�?�)�?*�?*	@D*�?L*	@p*	@x* @�*	@�* @�* @�*y@+ @+y@0+y@8+�@d+y@l+�@�+�@�+�A�+�@�+�A�+�A�+_B$,�A,,_BP,_BX,C�,_B�,C�,C�,HE�,C�,HE-HE-HGD-HEL-HGp-HGx-�G�-HG�-�G�-�G�-�G.�G.�G0.�G8.WHd.�Gl.WH�.WH�.�H�.WH�.�H�.�H�.'I$/�H,/'IP/'IX/�I�/'I�/�I�/�I�/�I�/�I�/�I0�I0�ID0�IL0�Ip0�Ix0�I�0�I�0�I�0�I�0$J1�I1$J01$J81�Jd1$Jl1�J�1�J�1�J�1�J�1�J�1�J�1�K$2�J,2�KP2�KX2�K�2�K�2�K�2�K�2]L�2�K�2]L3]L3MD3]LL3Mp3Mx3WM�3M�3WM�3WM�3�M4WM4�M04�M84�Md4�Ml4�M�4�M�4kN�4�M�4kN�4kN�4#O$5kN,5#OP5#OX5^O�5#O�5^O�5^O�5�O�5^O�5�O6�O6�OD6�OL6�Op6�Ox6�O�6�O�6�O�6�O�6�O7�O7�O07�O87/Pd7�Ol7/P�7/P�7~P�7/P�7~P�7~P�7Q$8~P,8QP8QX8�S�8Q�8�S�8�S�8T�8�S�8T9T9DTD9TL9DTp9DTx9�U�9DT�9�U�9�U�9&V:�U:&V0:&V8:�Vd:&Vl:�V�:�V�:�V�:�V�:�V�:�V�:3W$;�V,;3WP;3WX;QW�;3W�;QW�;QW�;�W�;QW�;�W<�W<XD<�WL<Xp<Xx<�X�<X�<�X�<�X�<�X=�X=�X0=�X8=EYd=�Xl=EY�=EY�=�Y�=EY�=�Y�=�Y�=Z$>�Y,>ZP>ZX>�Z�>Z�>�Z�>�Z�>�[�>�Z�>�[?�[?�]D?�[L?�]p?�]x?�]�?�]�?�]�?�]�?^@�]@^0@^8@&^d@^l@&^�@&^�@I^�@&^�@I^�@I^�@~^$AI^,A~^PA~^XA�^�A~^�A�^�A�^�A�^�A�^�A�^B�^B7_DB�^LB7_pB7_xB�_�B7_�B�_�B�_�B`C�_C`0C`8C�`dC`lC�`�C�`�C�`�C�`�C�`�C�`�C�`$D�`,D�`PD�`XD�a�D�`�D�a�D�a�D�a�D�a�D�aE�aEbDE�aLEbpEbxE)b�Eb�E)b�E)b�EubF)bFub0Fub8F?cdFublF?c�F?c�FMc�F?c�FMc�FMc�Fmc$GMc,GmcPGmcXGd�Gmc�Gd�Gd�G�e�Gd�G�eH�eHrhDH�eLHrhpHrhxH4i�Hrh�H4i�H4i�H�iI4iI�i0I�i8IsjdI�ilIsj�Isj�I�j�Isj�I�j�I�j�I�j$J�j,J�jPJ�jXJ�k�J�j�J�k�J�k�JPx�J�k�JPxKPxK�xDKPxLK�xpK�xxK�z�K�x�K�z�K�z�K�zL�zL�z0L�z8L�zdL�zlL�z�L�z�L_{�L�z�L_{�L_{�Ll{$M_{,Ml{PMl{XM|{�Ml{�M|{�M|{�M�{�M|{�M�{N�{N��DN�{LN��pN��xN���N���N���N���NU�O��OU�0OU�8O"�dOU�lO"��O"��O���O"��O���O���O��$P��,P��PP��XP���P���P���P���P��P���P�Q�Q��DQ�LQ��pQ��xQ���Q���Q���Q���Q�R��R�0R�8R3�dR�lR3��R3��RW��R3��RW��RW��R�$SW�,S�PS�XS��S��S��S��S��S��S�T�T�	DT�LT�	pT�	xT:�T�	�T:�T:�T�U:U�0U�8U&dU�lU&�U&�U��U&�U��U��Uy"$V�,Vy"PVy"XV�'�Vy"�V�'�V�'�Ve*�V�'�Ve*We*Wy0DWe*LWy0pWy0xW2�Wy0�W2�W2�WA2X2XA20XA28X�4dXA2lX�4�X�4�XY7�X�4�XY7�XY7�X�7$YY7,Y�7PY�7XYb9�Y�7�Yb9�Yb9�Y�9�Yb9�Y�9Z�9Z�9DZ�9LZ�9pZ�9xZU;�Z�9�ZU;�ZU;�Z�;[U;[�;0[�;8[�;d[�;l[�;�[�;�[�;�[�;�[�;�[�;�[�<$\�;,\�<P\�<X\�=�\�<�\�=�\�=�\q?�\�=�\q?]q?]_AD]q?L]_Ap]_Ax]jB�]_A�]jB�]jB�]�B^jB^�B0^�B8^�Bd^�Bl^�B�^�B�^<G�^�B�^<G�^<G�^�L$_<G,_�LP_�LX_�L�_�L�_�L�_�L�_=P�_�L�_=P`=P`IPD`=PL`IPp`IPx`nP�`IP�`nP�`nP�`�RanPa�R0a�R8aTda�RlaT�aT�a~T�aT�a~T�a~T�a�T$b~T,b�TPb�TXboW�b�T�boW�boW�b�W�boW�b�Wc�Wc�YDc�WLc�Ypc�Yxc{\�c�Y�c{\�c{\�c�\d{\d�\0d�\8d�\dd�\ld�\�d�\�d]�d�\�d]�d]�dL]$e],eL]PeL]Xew]�eL]�ew]�ew]�e
a�ew]�e
af
afaDf
aLfapfaxf+a�fa�f+a�f+a�f�fg+ag�f0g�f8g-ldg�flg-l�g-l�ggr�g-l�ggr�ggr�g}r$hgr,h}rPh}rXh�x�h}r�h�x�h�x�hS|�h�x�hS|iS|i�|DiS|Li�|pi�|xi<}�i�|�i<}�i<}�i8j<}j80j88jIdj8ljI�jI�jl�jI�jl�jl�j�$kl,k�Pk�Xk2��k��k2��k2��k���k2��k��l��l��Dl��Ll��pl��xln��l���ln��ln��l��mn�m��0m��8m�dm��lm��m��m/��m��m/��m/��mg�$n/�,ng�Png�Xn���ng��n���n���n��n���n�o�o$�Do�Lo$�po$�xol��o$��ol��ol��o�pl�p�0p�8p��dp�lp���p���p2��p���p2��p2��p��$q2�,q��Pq��Xq,��q���q,��q,��q=��q,��q=�r=�rĒDr=�LrĒprĒxr���rĒ�r���r���rx�s��sx�0sx�8sؖdsx�lsؖ�sؖ�sP��sؖ�sP��sP��s!�$tP�,t!�Pt!�Xt;��t!��t;��t;��t|��t;��t|�u|�u��Du|�Lu�� ?	 @ A B�D8, � �$�(�,�0�4�8�<�@�D�H�L|PpTdX�\�`�d�h�llp`tTxH|��������0	�T	�X	�\	�0	�	������D�x��
��J�DK��J��J�8K�K�K�K�0K��K��K��a�da��a��a�0a�Ta����	���3��)�}� �$�(��,��0��4��8��<G�@��D��H��Lt�P�T$�XH�\�`u�d��hX�l��p�t HxDH|hH��H�(I�TI�DK�\H��J�H� J�Pz��z��z��z��y��y��y�4z�`z�Y|��{��{�.z��{��{�9|�1|�)|�!|�|�|�	|�|��{�{�{�{�{
|P����0� �(��0ؠ8�@��H(�PХX��`p�h@�p�x�����X��(������������Љ��������� ����������8�����p� H�(�0x�8�@�H�~P~X�}`P�h�p��x }��{�P��������P��������0��P��p��h��`��0��З���@�p���Г� 8�(`�0��8؏@؎H�P�X`�`��hp�p��xx��@�����x��8����������h��S��l��$�@ S�8��S����� 4�H�\�p���0�P������00pT�|��0���8 pp�����`������P,�@�T�h�| �@�`	��	��	
,`
T�
����
 d@�����@�,@@T�h |�p�P�Tp��40P�h �` �� �@!	�!4	�!`	@"t	�"�	�"�	P#�	�#8
�$`
�%�
0&�
`&�
'�
P'@(L0)x�)�P+�0-\�.p�.� /�@/��/��/
�0<
01\
p2�
�3�
�5�60�6��:��;��;<�=d>�0>�`>�p>��>�?�P?$�?@�?h@| @��@��@B`BL�C�PE�PG��G(�G``Ht�H�0I��I��I�I �I@0Jh�J|�J��K��K<`LX Ml`M��M��M�pN0O$`O<�OP�Od�Ox�O�0P��P� Q�S,TDPT��U�0V��V��V @W4`W\�W� X��X��XPY@ZX Z��Z��[��]�]$^80^LP^`�^t�^�_�@_��_`,�`H�`d�`x�a��a�b�0b��b�@cPc$pcdd��e��h@iP�i��j��j��j��k4Pxh�x��z��z��z�`{�p{�{�{�C��L���`��0� ��  ��4 ��X  �� ��� ��D!��!@��!`��!�"�`"�"�	�"@�"#0`#��#�"�#($$p*�$�0�$ 2�$P2$%�4T%`7|%�7�%p9&�9(&�9�&`;�&�;�&�;�&<('�<P'�=t'�?�'`A�'pB(�B(�Bl(@G�(�L�(�L)@P0)PPD)pPt)�R�) T�)�T*�Tp*pW�*�W�*�Y+�\,+�\@+�\T+ ]h+P]|+�]�+a�+ a�+0a,�f�,0l�,pr�,�r<-y�-`|�-�|�-@} .@4.PP.p�.��.@�,/��h/��/p�0��40�`00��0p��0���0��00�1p�,1��1���1@� 2��T20�h2@��2�2��3��P3��3P��30��3@�(4��.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.rodata.rodata.str1.8.rela.data.rel.ro.local.rodata.cst8.rodata.cst16.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@..T./l.0�.1�.2'���"@x��.-`�(3��� =��Tu8@PC�s.
S�b��]@�0.
|�����@0�0.������@`�0.�p�p��@��0.2D�"�@��x.'2�$o|1
; 1� 6@8�	.N�4 [5i0 5.�N5�N5SN5'N5rN5�N5�N5�N5�N5�P5 �p584�@P��.,�ih�/G	�a�H��vm_dump.o/      1690381920  1000  135   100644  26304     `
ELF>\@@+*

 !"#AUI��H��@ATUS��H�H��XdH�%(H�D$H1�H��H���Ã�P0L�%I�4$H�����H�T$HdH3%(u(H��X[]A\A]�L�%A�ſ
D��I�4$���ff.���AW�MAVAUATI��UH��H�=M��SH��L�=dH�%(H��$�1�I��H�E H�M(H��I9�����DL�%H��!t+��L�%H��tH��L�
H�ID�I��I�EH���&�uH�����t�������I�UH+P0L��H�T$H��H�T$�A�ƅ�t4I�EH�HH� �H��H�|$ E��1�H��H�U(H�E �I�?H��H�H���������L)�H��H��1��H�|$���H�L$I�?�1�H��I�MI�?H�1�H+M �H���H��I�?�H�KY�8��m4H��H��H��?H��H��H�H)�H�Hi�'H)ˀ|$ HE�H��1��I�?1�L��H���E����I�7A�E���
I��P�H�E H�M(H��I9���I�U0H��H)�xH���D$ H9�v�D$pH��A�EH��a�����L�%H=�������L�%H��q�����H=�L�
H�ID�I��I�EH������I�EHE1�H��t.H�@A�����H�x�H�|$ ��H�H��1��H�U(H�E �I�?H��H�H���������L)�H��H��1��I���H�=�����fDL�%H��1�'���H��AL�
H�ID�I���	����L�%H=������H=�L�
L�%ME�����I�?�H�L$ 1�H��I�7A�E�6���H��	�H�=�I�7����fDH�I����I�7�
�H��$�dH3%(u0H�ĸ[]A\A]A^A_�fDL�%�4���@E1�����ff.���H�H�8H�w0�Y���f���AW�AVI���AUATUH��H�=SH��L�-I�M�H����L�=�I�M��H�=��E��~o1��I�u�
���9]~RHc�I�}��L��L�d�8L�D�8+M1�M���M9�u�I�M��H�=��f�H�EH��t
H�h H���Z���I�MH����[H�=]A\A]A^A_�f���ATUSH��H��H�?�H�|$H�D$��H�-�H�=I��H�M�H�}L��1�H���H�C(H�sH�x �H��[]A\�f���H��H�5�H�p0H��H�����ff.����H��H�W0H�w H�����H�B0L�BH)�M��tA��tsH�
I+H0H��H�(I�����H��xH��H9�LF�H��L�BH��H)�H���������H��I)�H��I��H�PH�H�81��H���f�I������t�E�A��A���s����y������H��H�5�H��H��� �����AWAVAUATUSH��L�nM��twI+U0H�G H��I��H���������I��H�W(H��H)�H��H��~-E1�� A���I�W(I�G H��H)�H��H��A9�|�1�H�5��M��yH��[]A\A]A^A_��L���H��L��L��[H��]E1�A\H��A]1�A^A_�ff.����ff.���USH��H�5��H�-�H�X0H�=H�M�L�CH�1�H�}H���L�C0H�}H��H��1��H���[]�ff.�f���H���H�=�H�5H�����D��AWAVAUATUSH��H��(dH�%(H��$1�H�L� M����H�H�8H�w0��H�-�
H�u�H�MH����M�H�=�H���1�H�5���H�{xH�5�����H���H�5�����H���H�5���q���H���H�5���\���H���H�5���G���H���H�5���2���H�{hH�5��� ���H�{pH�5������H�{(H�5����H�{0H�5�����H�{8H�5�����H�{@H�5�����H�{HH�5����H�{PH�5����H�{XH�5����H�{`H�5���~�H���H�5���i�H�M��H�=�H�M�M�H�=��H�u�
�H�M�N�H�=�M����I��$H��� ��H�HL�@H��~�H�}H�1�1۾L�-L�=�H�u�
�H�M��H�=���H����H9��HH��L�4�A����A���lD������I���;A����I�~�L�A�� ��I��L�HA��H��H�}L���AV�1��XZ��I��$�Hc�H��� �U���H;H��H�@ L�4�A���[���I�������M�D��������A��A���[�����L�L��MD�L�D$�L�D$L�A�� �<I��H�PA��H��H�}�پR1�H��Y^�<���H�u�
�H�5H�=�I��H����H�M��H�=L�l$��;f.�L���L���H�M�L��H��H���H9�uL�����t�L���H�M��H�=�H��$dH3%(��H��([]A\A]A^A_��H��L�@���[���L�@L�HI������A�����I���M������H�H�8���fDH�H�8���f�A�� ��I��M�NA��H�}��H�1������f�H�-H�MH��������M�H�=��H�u�
�H�M�N�H�=�����@H�H�8���L�HH�PI�������A����H�H�8�����H�H�8����M�FM�NI������A��	����M�H�=��H�u�
�H�M�N�H�=��y����H�H�8�4����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign %3.3s: 0x%016zxTOPMETHODCLASSBLOCKCFUNCPROCLAMBDAIFUNCEVALRESCUE------(none)e:%06td E:%06tx %s:%d:%sc:%04td p:---- p:%04td s:%04td %-6s %s [FINISH]-- env --------------------
--
%04d: %08lx (%p) <- ep---------------------------
-- proc -------------------
self: %s
| Thread state dump:
pc : %p, sp : %p
cfp: %p, ep : %p
classmoduleRIPRBPRSPRAXRBXRCXRDXRDIRSIR8R9R10R11R12R13R14R15EFL

* Loaded script: %.*s
* Loaded features:

 %4d %.*s
 %4d %s:%.*s
 %4d #<%.*s:%p>
r/proc/self/maps* Process memory map:

-- Control frame information -----------------------------------------------
  [PC] %04td, [SP] %04td, [EP] %04td, [CFP] %04td
-- Machine register context ------------------------------------------------
-- C level backtrace information -------------------------------------------
-- Other runtime information -----------------------------------------------

GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�8�B�M�A �A(�M�K
(A ABBALX�F�G�B �B(�I0�N8�G�(
8A0A(B BBBG�D�F�G�J �B(�A0�K8�D@�8K0H(B BBB,~F�A�A �G0j AAB4$HW L�HWi UCp HP\��F�B�B �B(�A0�A8�D@�
8A0A(B BBBHL8G0E(E EDB�$��E�A�D qFA$+H\l<�F�B�B �B(�A0�A8�J�0�K�M�A���L�O�A��
8A0A(B BBBI	+B ]y!��"��#9�i����%�%
G<Gcn�n�����$S�������&�Q�z��s	�s	��		 �	=� !"#Z_e"jLpuS{l�v�����Z�c���@�.�:�r����3�E�����(����������
P),"@(R.�4q:u@yF}L�R�X�^�d�j�p�v�|����������������(�����d���j�����"����
3

$%&DZhou{��������0�P)p~BMb�${�� ��� ���		)	=	�Y	��v	�	+	�	�	�	��	�	�	�	�	



&
0
>
K
.annobin_vm_dump.c.annobin_vm_dump.c_end.annobin_vm_dump.c.hot.annobin_vm_dump.c_end.hot.annobin_vm_dump.c.unlikely.annobin_vm_dump.c_end.unlikely.annobin_vm_dump.c.startup.annobin_vm_dump.c_end.startup.annobin_vm_dump.c.exit.annobin_vm_dump.c_end.exit.annobin_print_machine_register.constprop.1.start.annobin_print_machine_register.constprop.1.endprint_machine_register.constprop.1.annobin_rb_vmdebug_stack_dump_raw.start.annobin_rb_vmdebug_stack_dump_raw.end.annobin_rb_vmdebug_stack_dump_raw_current.start.annobin_rb_vmdebug_stack_dump_raw_current.end.annobin_rb_vmdebug_env_dump_raw.start.annobin_rb_vmdebug_env_dump_raw.end.annobin_rb_vmdebug_proc_dump_raw.start.annobin_rb_vmdebug_proc_dump_raw.end.annobin_rb_vmdebug_stack_dump_th.start.annobin_rb_vmdebug_stack_dump_th.end.annobin_rb_vmdebug_debug_print_register.start.annobin_rb_vmdebug_debug_print_register.end.annobin_rb_vmdebug_thread_dump_regs.start.annobin_rb_vmdebug_thread_dump_regs.end.annobin_rb_vmdebug_debug_print_pre.start.annobin_rb_vmdebug_debug_print_pre.end.annobin_rb_vmdebug_debug_print_post.start.annobin_rb_vmdebug_debug_print_post.end.annobin_rb_vmdebug_thread_dump_state.start.annobin_rb_vmdebug_thread_dump_state.end.annobin_rb_print_backtrace.start.annobin_rb_print_backtrace.endtrace.15894.annobin_rb_vm_bugreport.start.annobin_rb_vm_bugreport.end.LC0.LC15.LC4.LC11.LC2.LC12.LC16.LC18.LC20.LC21.LC13.LC14.LC22.LC9.LC6.LC8.LC17.LC19.LC3.LC1.LC7.LC10.LC23.LC24.LC5.LC25.LC27.LC26.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC55.LC56.LC57.LC58.LC59.LC60.LC61.LC65.LC37.LC62.LC38.LC64.LC66.LC67.LC68.LC63.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_ruby_snprintfstderrfputsfputc__stack_chk_failrb_vmdebug_stack_dump_rawfwriterb_vm_get_sourceline__fprintf_chkrb_id2namerb_vmdebug_stack_dump_raw_currentruby_current_threadrb_vmdebug_env_dump_rawrb_vmdebug_proc_dump_rawrb_inspectrb_string_value_cstrrb_vmdebug_stack_dump_thruby_threadptr_data_typerb_check_typeddatarb_vmdebug_debug_print_registerrb_vmdebug_thread_dump_regsrb_vmdebug_debug_print_preputchar__printf_chkrb_iseq_original_iseqrb_iseq_disasm_insnrb_vmdebug_debug_print_postrb_vmdebug_thread_dump_staterb_print_backtracerb_dump_backtrace_with_linesrb_vm_bugreportruby_current_vmrb_backtrace_print_as_bugreportrb_class_namefopenfreadfeoffcloserb_cFalseClassrb_cFixnumrb_cFloatrb_cTrueClassrb_cNilClassrb_cSymbol2��������5���������C*���������O���������s*������������������������������3���������*�������������������4��������&5��������66��������=7�������������������8�������������������9������������������ :��������%���������3;��������G���������t<��������~=�������������������>����������������������������,?��������E@��������\A��������c7�������������������B�������������������9�������������������C�����������������D��������(E��������/7��������CF��������\7��������cG���������H�������������������I����������������������������J��������!���������7*���������pK��������|*��������������������L���������M�������������������������������������N��������!���������\O�����������������������������*����������P�������������������Q�����������������������������*�������������������R���������*��������������������*�������������������Z���������S�����������������������������*���������	���������	*���������	T��������'	���������;	U��������E	���������W	V��������c	����������	���������	����������	���������	*����������	*����������	���������
���������	
*���������
���������5
W��������:
���������J
X��������Z
Y��������o
Z���������
[���������
\���������
]���������
^���������
_���������
`���������
a��������b��������c��������/d��������Ae��������Sf��������eg��������wh���������i���������j�������������������k���������������������������������������l������������������2m��������Bn��������Io��������N���������\���������qp��������v�������������������
���������z
q���������
����������
r���������
����������
����������
s���������
t���������
���������u�������� ���������A���������X���������e���������q����������j������������������*���������*���������Rv��������^���������s*����������k���������������������������������������l�������������������*���������*���������*���������Mk��������R���������W���������e���������zl������������������*�������������������j��������������������	��������� 1���$,�P�X%���%�%�G�%�GGnDGLnpnx��n������08�dl����������$,�P�X��������s	���s	s	�	Ds	L�	p�	x���	�� - . / 0 \��0�Pp8�P t�����(�	@�	.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@(wT(xl(y�(z�({'��"@pB�(-d3�  =��8@PS(
S4b4�]@`X0(
|���@�X0(������@�X0(������@�X0(2�:2�!w)07#.�e#�e#|e#Se#'e#2e#@e#Se#ee#te#�h# ��#��@ Y8(&0&�)�	8V
XZ�vm_backtrace.o/ 1690381920  1000  135   100644  55704     `
ELF>X�@@-,

 "#$%����fD��HcGH�@H��(�ff.�H��AVI��AUATUSH�w0H�@ H�(H���`���H9�v[1�]L��A\A]A^A��f�H��M��I��I��H���������H)�L��H��H��H��H��A��H��~eH��H��H��H)�H��H��H��@H�;t	H��L��A��H��PH9�t0H�{u�{au�H�SHH�BH��t&H�PH��H��PL��A��H9�u�[]A\A]A^��H�R��f���H�L�FH�HcB�pH�@�rH�2H���L�@H�HH�G�f.���H�HcA�pH�@�qH�1H��H�PH�W�H�P��H�W H��H�r���H�H�H�@H��H��u
H�H�H��G�ff.�f����ff.���ATUSH��H�~H�6H�oH+w0L�g H��H�+�H�{L�CL��CH��[��]A\A��ff.����SH�?H��t	H��H��[���ATUH��SLcgM��tD1���H��I9�t/H�UH�[H�‹����w�H�BH��H����I9�u�H�}�H�} []A\�f���H����S�(H����H��H�[H���fD��ATI��USH��H�=���K�<dH�h H�CH��H�+�H�H�EH�B�B[]A\����ATI���UH���S�H�=H�H��H���L�#H�k[]A\�ff.���H�G H����t#��w
H�@H�@Ð��uH�@H��uݸ�PH�=1��ff.�f���H�G H����t#��w
H�@H�@Ð��uH�@H��uݸ�PH�=1��ff.�f���USH��H��H�/H����H�{L�CH��H��HD‹SH��[]H��A��f���AUA��I��ATUH�-SH��H��H��t
H�nH� uOL�%A�EI�<$��tLH��t{L�KH� tL�KH��H��H�1�[�]A\A]�DH�n�f.�H���M�D�D$H�=�I�<$D�D$A�EH��u�H��H��H�1�[�]A\A]�ff.���AT1�I��H�=UH��S�H��H��t+H��H��H�51��H��L��[]A\��H�5H�Ǻ�H��L��[]A\�ff.�f�H��1�H�T$����tH�T$��uH�����t
�����t
H��H���f�H�RH��H���@��ATI���UH��S�H�U 1�H��H���H������H�߾H���H�ߺ��H�ߺ��H��H�߾H���I�<$H��[]A\����AUI���ATUH��SI��I��H���H�U 1�H��H���H������H��H���L��H���H�E�H��tH���H�߾�H��L���I�}H��H��[]A\A]�f.���H�A��% H��t;L�IH� tL�IH�NH��tH�NH��1��f.�H�NH��tH�NH��1��SH�����t-��uH�[H��u�1�[���tH�=1��D�C[�H�{H�s�H+w0H����C[���H��H�G H�8���H��H�H�D�AUATUH��SH�����t$��������H�=1��@H�GD�oL�`H�X I�l$I�$ tI�l$H��L���H��H�5H��1��H��E�����H�5H���H����H�SH� tH�SH��H�51��H��H��[]A\A]�H�H�uH+w0L�gH��H�_ ��EA�ʼnE�A���f�H�H��tH�GL�`�Z���A��H�}�H��H���HD�����f.�H��D��H�51�������H��H�5�H��H��[]A\A]�fDH�A�H�H�@L��M���m���H�L� �^���D���'������H�G H�8������H��H�G H�8���H��H�����H��H�G H����t8��v&��u.H�z��H��HD�H����H�BH�@ H���H�=1��DAWAVAUATUSH��L�L$H����H��H����I��I��H��M���H�$A�$H��~]Hc�H9�}UH��E1��f.�Hc�H9�};��H�t$A��H�H)�H�@I�H�<�A��H�<$H���Ic�A�$H�3H9��H�$H��[]A\A]A^A_�f.�H�=1��f�H��(H�ҸH�|$H� HcOHD�H9�+I��H��E1�L��H�wL�W�����H�T$H�T$H�T$H��(�ff.�H��(I��H�ҸH�|$H� HcOHD�H9�(I��L����H��H�wL�����H�T$H�T$H�T$H��(�ff.�AWAVI��H���AUATE��UIc�S��H�5m���H��XL�|$0�L$H�
��H�D$@M���h�H�D$8L����H�L$L�D$H�D$ L�h H�1��������t H�|$��t^�H��X[]A\A]A^A_�f�l$IcUHc�H)�H��t�H�|$ E�����z���H�T$ H�T$0H�T$ H��X[]A\A]A^A_�@A�ME1�H�t$(L��)�Hc��H��tjH��t�H�t$(H�T$0H��DH�T$H�|$H��t�@��tbH��H���toH�H����H��x{H�t�R���@�;����\���fDH�t$@��tEH�H��x}IcUH�H)�����fD�H�T$H���f�H���H���H���H���H�H�5H�81��H��H�H�5H�81��H����ff.�ATA��UH��H�5S��H��������u+���t"E��H���E1�[1�]H��A\���f�[�]A\�fD��H�H��E1�A��H�8�j���f.���H�H��A�A��H�8�7������H��H�G H����t0��v��u&H�z�H��H���@H�BH�@H���H�=1��ff.�f�H��xH;}H�?H���PH�H�5H�81��f�U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f���H�GH��t3�uH�����t
�����tH�7H+p0H��H���f.�1��ff.�f���H�5���H��(H�H�
��H�c�I��H�5I�H�D$H�8�X�H�D$H��(�ff.���SH�_ H�CH��t[�@HcS1����H�C[������f.���SH�_ H�C H��t[�@1�1�����H�C [�f���UH�
��H��H���SH��H�5��H��(H�D$I����H�|$H��H������H��([]���UH�
��H��H�Z�SH��H�5?�H��(H�D$I���J�H�|$H��H���*���H��([]���H��8H���H�
:�H�D$ H�D$L�D$H�D$(H�H���H�5a��D$H�8���H��8�ff.����H��(H�H����H�
��H�T$I��H�d�H�5
�H�H�D$H�H�8��H��(��H��(H���H�
��H�D$H�I��H��H�|$H�5��H�8�@�H��(�ff.���H�1�1�H�8�I���f�����b���f���1��U���D��SH�H�5H�H�8H��H�5t�H��H��H�������ƒ����`H���v<�~H�xH�5�H�H�=H�
��H�B���H�0�H�H�=H�5�H��H��H���6����ƒ�����H����<��H�xH�5�H�=1�H���H�5�H�=1�H����H�5�H�=1�H�����H�5�H�=1�H�J�H�5�H�=1�H���H�5�H�=1�H�r���H�5�H�=1�H�f���H�5������H�5����H�=������H�5����[H�=�f�H��������H��tnH������H�H�8����fDH������&���H��t.H������H�H�8����fDH�H�8����H�H�8����H�H�8�g����H�H�8�W����H�H�8�G����H�H�8����H�H�8�'����H�H�8����H�H�8�w����H�H�8������AW1�AVAUATUSH��XH�H�|$ H�8H�t$(1�H�G0H�<$H�|$@H�D$H�H�H�D$P�� ��H�@H�D$`�H�<$L�D$8H�
��H�D$8H��H�5
��U�H�|$8�H�D$�D$�Y@H����H9�}iH�|$��H��H�D$�H��t"H��H�<$H���H�|$H�¾��D$H�D$Hct$H��� u�H�D$H�@H9�|�H�D$H�$H�T$pH��$PH�D$p4H�D$XH���H��$�H�
iH��$HH�BH�H1��H�H�HH�`H���H�|$@H�t$(H�D$ ��H�D$0H�$H��$HH���H�D$0H��X[]A\A]A^A_���H�$�PH�@H��t�H��$HH�$H���H�H�H���H�xH���DH��H�����B���f���H��H��H�w H���(���1�H��H���f.���H��H��H�w H������H��H������H��H��H�w H�������H��H������H��H��H�w H������H��H������H�G����AWI��AVA��AUATA��U1�SH��H�H�H�P(H�X0H�@ L�,�D9�}_L9�tZH�{H��tHH�3H��t@E��YH���Hc�I��H��t%H+w0H��H�L$H��H�$�H�$H�L$���H��PD9�|�H����[]A\A]A^A_�@A���f.�����������������������S�H�����t~H�èukH��Ѓ���tZ��tY��tTH�߾��H�èuH�����t
�����t.H���H���H��H�=[H��1��DH�[H��[��[�f���H���H��H��t&H�Ѓ�u*H��у���tH�к%HE�H����1�H��Ð������ATUSH���H��H��tGH���H��I���I��t.H��H�[H��H�L��H�=]HE�A\1��H��[]A\����ATUH��S�H��H���H��I���H��ttI9�toH�3H��� tAI�$H�s�� uDH����H)�Hc�H9�uJH�SH��tH�S[H��]1�H�=A\�I�$H������ t�I�T$�f�H��[]A\�H���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignlocation_absolute_path: unreachable-- Ruby level backtrace information ----------------------------------------
	from %s:%d:in unknown method
backtrace_collect: unreachablelocation_base_label: unreachablelocation_path: unreachableruby%s:%d:in unknown method
%s:%d:in `%s'
	from %li:%d:in unknown method
 `%li'
	from %s:%d:in `%s'
location_lineno: unreachablelocation_to_str: unreachable%s:%d:in unknown method`%s'location_label: unreachable02negative level (%ld)negative size (%ld)no such frameBacktracenewLocationlinenolabelbase_labelpathabsolute_pathto_sinspectcallercaller_locations#<%s:%p>.#%li%s%li%.*s%libacktraceframe_info��������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�
0LD�E�E�B �A(�A0�Z
(C EBBL�
(A BBBH�6�/��3�(�DF�A�A �tCB$ E�V(@nF�A�D �[ABl
�*E�](�IF�D�A �zAB(�BF�I�I �fAB�CuCu$>E�A�G iAAHD�F�H�A �H(�G@A
(M FBBJI(M FBB4�sF�M�D �i
ABM[AB�LD y
CH(��F�I�D �nAB4�F�J�A �D(�K0x(D ABBLp$``A�[
D\
D_� HPL��B�B�A �D(�D0�
(D ABBD�
(D ABBG�	 HP0[Hp
HL
AHP�B�B�B �B(�A0�A8�DP�
8A0A(B BBBK�RD0M�RD0M`�B�B�L �B(�D0�D8�M�l
8A0A(B BBBCy
8A0A(B BBBE40ZB�D�K �i
CENAFBh&|)�SHd
LL
A�.V�WA�M
�C�BH0y )E�N
EP@T'E�N
EN$tME�R�N@eAA$�ME�R�N@eAA�TH@K�OH0F�EH0| 4HE��
ULhF�D�B �B(�A0�A8�G��
8A0A(B BBBA�&HV�)HY�)HY)HY	H,�F�E�E �B(�D0�C8�DP�
8C0A(B BBBEx	�	�	�	�	$��E�l
OH
HF	OHx
HF$		48	hF�A�A �v
UFGDAB8p	�F�A�D �a
DKEd
ABA	!5Q"q�#��$�%9Y
w
�
�%��%�0�#?V� 6YVv��`/����������3&�R�|����4��D�4`@ .`L�h`nw�����
���
��*	H
4YII	WYv��`B�	�`H�����C3�RCoCC���P>���u
��u8�T�sc�|L�L�L���P��?�i�������p��`	`'	`H	�g	` y	��	K
�	���	K
�	Y

P
	&
Y
G
p
f
`
x
p
�
�
�
p
 �
�
�
�
�
[�
D�j�
����~�R��r� Rr<�]�q�����Z���
�&3
N
Ig
 )s
I�
��
PS�
��
��. �L7v�W�7�������9�]����&� &-WWW~�������(TUTq��������9.].�;�;�O�O"gGgx�����	�=�o��)�)999Z�y��	�	�A)e)�9�9�II;�c��?�?�IIS����p"#$%!����9�(� �H�jZsx���%�+�1�7�=�C�I�OU[�a*g8mBsFyOV�\�g�l�z�������������������

 &'(#9M^ny�����������	5ER^p��������(@C=�Ld�B{�)�0'�`M��M�T`O�E(: Q0r@��������7FQ^hv�P���p&��)�)%)G0	n@��	��	�� 	��0	 , @	J _ P�z � � � � � �O� @	� !Ph9!��U!.annobin_vm_backtrace.c.annobin_vm_backtrace.c_end.annobin_vm_backtrace.c.hot.annobin_vm_backtrace.c_end.hot.annobin_vm_backtrace.c.unlikely.annobin_vm_backtrace.c_end.unlikely.annobin_vm_backtrace.c.startup.annobin_vm_backtrace.c_end.startup.annobin_vm_backtrace.c.exit.annobin_vm_backtrace.c_end.exit.annobin_location_memsize.start.annobin_location_memsize.endlocation_memsize.annobin_backtrace_memsize.start.annobin_backtrace_memsize.endbacktrace_memsize.annobin_backtrace_each.start.annobin_backtrace_each.endbacktrace_each.annobin_bt_iter_iseq.start.annobin_bt_iter_iseq.end.annobin_bt_iter_cfunc.start.annobin_bt_iter_cfunc.end.annobin_backtrace_load_data.start.annobin_backtrace_load_data.endbacktrace_load_data.annobin_oldbt_init.start.annobin_oldbt_init.endoldbt_init.annobin_collect_caller_bindings_init.start.annobin_collect_caller_bindings_init.endcollect_caller_bindings_init.annobin_oldbt_iter_iseq.start.annobin_oldbt_iter_iseq.endoldbt_iter_iseq.annobin_backtrace_free.start.annobin_backtrace_free.endbacktrace_free.annobin_backtrace_mark.start.annobin_backtrace_mark.endbacktrace_mark.annobin_location_mark.start.annobin_location_mark.endlocation_mark.annobin_backtrace_alloc.start.annobin_backtrace_alloc.endbacktrace_allocbacktrace_data_type.annobin_bt_init.start.annobin_bt_init.endrb_cBacktrace.annobin_location_create.start.annobin_location_create.endlocation_createrb_cBacktraceLocationlocation_data_type.annobin_location_absolute_path_m.start.annobin_location_absolute_path_m.endlocation_absolute_path_m.annobin_location_path_m.start.annobin_location_path_m.endlocation_path_m.annobin_oldbt_iter_cfunc.start.annobin_oldbt_iter_cfunc.endoldbt_iter_cfunc.annobin_oldbt_bugreport.start.annobin_oldbt_bugreport.endoldbt_bugreport.annobin_oldbt_print_to.start.annobin_oldbt_print_to.endoldbt_print_to.annobin_get_klass.start.annobin_get_klass.endget_klass.annobin_collect_caller_bindings_cfunc.start.annobin_collect_caller_bindings_cfunc.endcollect_caller_bindings_cfunc.annobin_collect_caller_bindings_iseq.start.annobin_collect_caller_bindings_iseq.endcollect_caller_bindings_iseq.annobin_oldbt_print.start.annobin_oldbt_print.endoldbt_print.annobin_location_lineno.part.3.start.annobin_location_lineno.part.3.endlocation_lineno.part.3.annobin_location_lineno_m.start.annobin_location_lineno_m.endlocation_lineno_m.annobin_location_to_str.start.annobin_location_to_str.endlocation_to_str.annobin_location_to_str_dmyarg.start.annobin_location_to_str_dmyarg.endlocation_to_str_dmyarg.annobin_location_to_str_m.start.annobin_location_to_str_m.endlocation_to_str_m.annobin_location_inspect_m.start.annobin_location_inspect_m.endlocation_inspect_m.annobin_location_label_m.start.annobin_location_label_m.endlocation_label_m.annobin_backtrace_collect.isra.5.start.annobin_backtrace_collect.isra.5.endbacktrace_collect.isra.5.annobin_backtrace_to_str_ary.start.annobin_backtrace_to_str_ary.end.annobin_backtrace_to_location_ary.start.annobin_backtrace_to_location_ary.end.annobin_vm_backtrace_to_ary.start.annobin_vm_backtrace_to_ary.endvm_backtrace_to_ary.annobin_thread_backtrace_to_ary.start.annobin_thread_backtrace_to_ary.endthread_backtrace_to_ary.annobin_rb_f_caller_locations.start.annobin_rb_f_caller_locations.endrb_f_caller_locations.annobin_rb_f_caller.start.annobin_rb_f_caller.endrb_f_caller.annobin_location_base_label_m.start.annobin_location_base_label_m.endlocation_base_label_m.annobin_frame_get.isra.7.start.annobin_frame_get.isra.7.endframe_get.isra.7.annobin_rb_threadptr_tag_jump.isra.9.start.annobin_rb_threadptr_tag_jump.isra.9.endrb_threadptr_tag_jump.isra.9.annobin_rb_vm_get_sourceline.start.annobin_rb_vm_get_sourceline.end.annobin_rb_backtrace_p.start.annobin_rb_backtrace_p.end.annobin_rb_vm_backtrace_object.start.annobin_rb_vm_backtrace_object.end.annobin_rb_backtrace_to_str_ary.start.annobin_rb_backtrace_to_str_ary.end.annobin_backtrace_dump_data.start.annobin_backtrace_dump_data.endbacktrace_dump_data.annobin_rb_backtrace_to_location_ary.start.annobin_rb_backtrace_to_location_ary.end.annobin_rb_vm_backtrace_str_ary.start.annobin_rb_vm_backtrace_str_ary.end.annobin_rb_vm_backtrace_location_ary.start.annobin_rb_vm_backtrace_location_ary.end.annobin_rb_backtrace_print_as_bugreport.start.annobin_rb_backtrace_print_as_bugreport.end.annobin_rb_backtrace.start.annobin_rb_backtrace.end.annobin_rb_backtrace_print_to.start.annobin_rb_backtrace_print_to.end.annobin_rb_make_backtrace.start.annobin_rb_make_backtrace.end.annobin_rb_vm_thread_backtrace.start.annobin_rb_vm_thread_backtrace.end.annobin_rb_vm_thread_backtrace_locations.start.annobin_rb_vm_thread_backtrace_locations.end.annobin_Init_vm_backtrace.start.annobin_Init_vm_backtrace.end.annobin_rb_debug_inspector_open.start.annobin_rb_debug_inspector_open.end.annobin_rb_debug_inspector_frame_self_get.start.annobin_rb_debug_inspector_frame_self_get.end.annobin_rb_debug_inspector_frame_class_get.start.annobin_rb_debug_inspector_frame_class_get.end.annobin_rb_debug_inspector_frame_binding_get.start.annobin_rb_debug_inspector_frame_binding_get.end.annobin_rb_debug_inspector_frame_iseq_get.start.annobin_rb_debug_inspector_frame_iseq_get.end.annobin_rb_debug_inspector_backtrace_locations.start.annobin_rb_debug_inspector_backtrace_locations.end.annobin_rb_profile_frames.start.annobin_rb_profile_frames.end.annobin_rb_profile_frame_path.start.annobin_rb_profile_frame_path.end.annobin_rb_profile_frame_absolute_path.start.annobin_rb_profile_frame_absolute_path.end.annobin_rb_profile_frame_label.start.annobin_rb_profile_frame_label.end.annobin_rb_profile_frame_base_label.start.annobin_rb_profile_frame_base_label.end.annobin_rb_profile_frame_first_lineno.start.annobin_rb_profile_frame_first_lineno.end.annobin_rb_profile_frame_classpath.start.annobin_rb_profile_frame_classpath.end.annobin_rb_profile_frame_singleton_method_p.start.annobin_rb_profile_frame_singleton_method_p.end.annobin_rb_profile_frame_method_name.start.annobin_rb_profile_frame_method_name.end.annobin_rb_profile_frame_qualified_method_name.start.annobin_rb_profile_frame_qualified_method_name.end.annobin_rb_profile_frame_full_label.start.annobin_rb_profile_frame_full_label.end.LC0.LC1.LC2.LC5.LC3.LC4.LC6.LC8.LC7.LC10.LC9.LC11.LC12.LC13.LC15.LC17.LC14.LC16.LC18.LC19.LC20.LC22.LC21.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_ruby_current_threadruby_engine_namerb_iseq_line_noruby_xfreerb_gc_markruby_xcallocrb_data_typed_object_allocruby_xmallocrb_bugrb_id2strstderr__fprintf_chkfwriterb_sprintfrb_str_catfrb_io_writerb_str_catrb_vm_control_frame_id_and_classrb_ary_new_caparb_ary_storerb_ary_pushrb_enc_compatiblerb_enc_sprintfrb_str_inspectrb_ary_newrb_scan_argsrb_range_beg_lenrb_num2longrb_eArgErrorrb_raiseruby_threadptr_data_typerb_check_typeddatarb_id2symrb_sym_to_srb_ary_entryrb_vm_get_sourcelinerb_backtrace_prb_typeddata_is_kind_ofrb_vm_backtrace_objectrb_backtrace_to_str_aryrb_backtrace_to_location_aryrb_vm_backtrace_str_aryrb_vm_backtrace_location_aryrb_backtrace_print_as_bugreportrb_backtracerb_backtrace_print_torb_make_backtracerb_vm_thread_backtracerb_vm_thread_backtrace_locationsInit_vm_backtracerb_cThreadrb_cObjectrb_define_class_underrb_define_alloc_funcrb_undef_methodrb_cArrayrb_marshal_define_compatrb_undef_alloc_funcrb_define_methodrb_define_global_functionrb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolrb_debug_inspector_openrb_ary_reverserb_vm_make_bindingrb_debug_inspector_frame_self_getrb_debug_inspector_frame_class_getrb_debug_inspector_frame_binding_getrb_debug_inspector_frame_iseq_getrb_debug_inspector_backtrace_locationsrb_profile_framesrb_profile_frame_pathrb_iseq_pathrb_profile_frame_absolute_pathrb_iseq_absolute_pathrb_profile_frame_labelrb_iseq_labelrb_profile_frame_base_labelrb_iseq_base_labelrb_profile_frame_first_linenorb_iseq_first_linenorb_profile_frame_classpathrb_iseq_klassrb_ivar_getrb_obj_classrb_class2namerb_class_pathrb_profile_frame_singleton_method_prb_profile_frame_method_namerb_iseq_method_namerb_profile_frame_qualified_method_namerb_profile_frame_full_labelrb_out_of_int�*���������*����������������S��������� ��������� ���������!������������������!>#��������y!�������������������\�"�������������������$��������8���������?$��������d%�������������������*&������������������5���������:(��������_��������������������)�������������������*�������������������,��������-��������d.��������u/���������/���������/���������/���������/��������.��������/��������*/��������:/��������\/��������l/����������������������������(���������/$��������W�������������������$���������1�������������������2��������	���������	,��������<	���������C	*��������q	���������	%���������	����������	*���������	���������
,��������
*��������?
*���������
%���������
����������
$��������%4��������0�������������������$�������������������5��������
4��������}
6��������7��������47��������D7��������P*8��������W���������a9��������k*8��������r���������|9���������*:���������;���������*��������'*��������t<�������������������$���������*8�������������������9�������������������*��������-*��������k*&���������*���������*��������*��������H*N��������O���������V*O��������aP��������rwQ��������~�����������R���������*S����������T��������������������P����������������U����������������I���������NR��������U��������e���������jV��������q�������������������V����������������������������V����������������������������V����������������������������V����������������������������V�����������������
���������V��������%���������*W��������>���������n*X���������*X���������*Y���������*Z���������*Z���������*Y���������*[��������*[��������*\��������#*\��������3*]��������C*]��������j*���������F���������4���������_��������
>��������>��������2`��������D/��������<*��������`*�����������������Vr���������s���������t���������u�������������������r��������\y��������mq��������xw��������������������������������������k���������m���������z��������5��������l|��������\��������� ��������� ��������"��������'��������q'���������+���������+���������0���������0���������'���������'���������
3���������=���������>��������r���������A��������CW���������>���������>���������>��������%>��������h��������j��������%l��������5n��������Ep���������)���������v��������Ey���������)��������<)�������� ���
$,
P
X%�
�%�%��%�VDLVpVx��V��������0�8�d�l������������4$�,4P4X`�4�`�`���`����D�L�p�x
���
�
�Y
Y0Y8�dYl������������C$�,CPCX��C�����u���u	u	�D	uL	�p	�x	L�	��	L�	L�	�
L
�0
�8
�d
�l
��
��
�
��
�
�
`$,`P`X��`�����K
���K
K
Y
DK
LY
pY
xp
�Y
�p
�p
��

p

�
0
�
8
�
d
�
l
�
�
�
�
��
�
�
��
��
$�,PXr��r�r���r����D�L�p�x�����II0I8�dIl������������7$�,7P7X��7������������D�L�p�x�����&&0&8Wd&lW�W���W������$�,�P�XT���T�T���T����D�L�p�x�����..0.8;d.l;�;�O�;�O�O�g$O,gPgX��g������������D�L�p�x)���)�)�9)9098�d9l����	���	�	�$	,PX)��)�)�9�)�99ID9LIpIx��I�����?�?0?8Id?lI�I���I�����p$�,p � � � �G�`@`G�h�x 4H0� �`��������(@D`p�����`�� PH�����P�P�d�`���P
`
p
4�
T�
��� ��4�l�� �P�����@���$�D X0x`����`��$ 80L@lP�p����00@|�� �0�@�P	�(	@<	Pt	�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*T*l*�*�*'�p"@@��*-030=048@Ȩ�*
Sd:bd:�]@X�0*
|8<�8<��@��0*�>�>��@��0*��?��?��@��0*2�A�2�B�.�D� )@��*A0(E.�VE�VE|VESVE'VEJVEXVEkVE}VE�VE�XE �xE�	�@���*( O�#+	�rc!���vm_trace.o/     1690381920  1000  135   100644  63856     `
ELF>0�@@-,

 "#$%���0�fD��H��H�5��xH�H��H�Ѓ��f.�UH�-1�1�SL���A��EDD�lj�A��A�4����t��A�4�D��D��A����	���AD�H��H�� uʉU��[]�fDAUI��ATI��UH�-SH��H�GH�H��tH�C�s�uL�kH��A	t$H��u�H��[]A\A]ÐL�
I�E1�1�A�A�@D���T����t���T�	���E�H��H�� u�A�9�H���I�]�t���f���H��H�5H�|$�H�PH��tH�|$H�p��H���fDH�x H�T$���H���ff.���USH��H�H�(�H���H��H�mH��tl1�1��fDH�I��H��t�u�H�I��H��u�Hc�H�H�TH�DH��H�$H�D$�H��H��H���H��H��[]�fD���ff.����AWAVAUA��ATI��UH��SH��HH�L$L�$�H��A������H�=A�� t,�)H�=A��@tA���H�H�=HD��A�I��H��tH���I���H�<$Lc�H���H@����H�|$O�l-L�|$�L�t$L�l$ H���GH�D$(M��t	H�����H�D$0H�$�H���H��HD�H�T$H�D$8�H��H[]A\A]A^A_��H�=A���,���H�=A������A��H�H�=HD�����A��H�H�=HD����D��O���fDH����������H��Ѓ���t~��������������H�$����f�H�H��H�t$H�8�H�<$H���������������fDH�=�9���@H�GH�$�e���H��tkUH��SH��H���&DH�M H�UL��L�E(A��fDH�[H��t,��u�}�{t�L�KL�S�t�H��L��A��H�[H��u�H��[]�@�ff.�@��H��t/SH��H� �H�CH��tH�x[��[�fD��PXH�5H��H�H�81��f�AUA��ATI��UH��S��H������t���u#� �D�(�XL�`H�hH��[]A\A]�H�H�5H�81��USH��H����H��D��H�����H��H����}H�EH����
����E	��H��[]�f.�AWAVAUATUSH��(��D$�F���FH�T$ H�t$H�|$����H�|$�H�\$�D$<H�T$@H��$ H�D$@4H���H�L$PH�
�H��$H�BH�H1��H�H�HH�`H���H�\$(H�D$H�t$ H�8����D$H��$H�L$(H����D$<��u�D$H��([]A\A]A^A_��H�|$���@H�D$H�@��P� ���H�|$�8���������H�D$(�HH�@H�L$���p����Q���ff.��U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�SH��H�wH��H��tH�PH��H�RH�S@��C<[ÐH�C@�C<[�ff.�@SH�G(H��H��t#�uH�����t
�����t=�C8[�@H�W(H�w H��H�C(H��u�H�C(�C8[�DH�@H�C(�fD��AVI��AUATUS�����G�H��E1�L�l�H�}H�
�H��H�=H��H���9�H9��TH�=H���S�H9��nH�=H���m�H9���H�=H�����H9���H�=H�����H9���H�=H�����H9���H�=H�����H9���H�=H�����H9��
H�=H���)�H9��DH�=H���C�H9��^H�=H���m�H9���H�=H�����H9���H�=H�����H9���H�=H�����H9���H�=H���U�H9����Pf�H��A	�I9������������0�H���L��H�H���H�5H��H���H�h H�@H�@D� H�X(H��[]A\A]A^ÐH�=��H��H��H9��������M���DH�=��H��H��H9�����������DH�=��H��H��H9��x��������DH�=��H��H��H9��^�������DH�=��H��H��H9��D�����m���DH�=��H��H��H9��*���� �5���DH�=��H��H��H9������@���DH�=��H��H��H9������������DH�=��H��H����H�=��H��H��H9��������m���DH�=��H��H��H9��������5���DA����5���DH�=��H��H��H9��x�������DH�=�
�H��H��H9��^�������DH�=��H��H��H9��D�����}���DH�=��H��H��%�����(�F���H�H�5H�81��H���H�5H��H�H�81��ff.��
�NtH��H�֋P��H�8����@��H�W��P�H��H��H�t$H�$��H�$H�t$H�8H������AWAVAUATUH��SH��H�_L������tlM��t
A�$��uLH�CH���H��H�߃�PH����I���H�CH��H��H����3���H�CL�����PH��[]A\A]A^A_�f�M��u�H�H�H9Gt�H���D�sHA��H��L���L���CHH���H���H�CHǃ��PH���H��������tnHǃ�H�S��PH���L���H���E��t'H�S0�BtH���H���H���H��PH�S0H���H�{H������DH�CH��H��H���������t���H�CL��Hǃ���PH���D�sHH���L�������UH��H��SH��H���H��t#H��H��H��A�[��H�5*�]��H�H�5H�81��ff.����SH��H�5�H��H�����H��[�ff.����SH��H�5�H���H��t2H�
����H�RH��tH9Ju�
H�R���H��u�H��tH��H���
���H��[����SH�H��tH�{�H�[H��u�[�ff.����ATI��U��SH��H�5�L���H��A�[H��]A\��f.���U�SH����H��H��}H�H���H�EH������E	��H��[]�D��AUE��ATI��U��SH��H��H�5�H��E��L���H��H��[]A\A]���ff.���USH���q�H��H��}H�H���H�EH�������E	��H��[]�f.���UH�5H��SH���H��H�@H��t3H�x�A�H��H�5����CH���4[]�D�3�H��H�=�������UH�5SH��H���H�ߋh����t;��u'H�H�=H��H�پ[]�fDH������H�H��H��[]���D��S�f�H��H���H��[�fD��SH��H�5�H���H��t@H��1��f�H;ZtH�RH��tH��u�
H�R�����H��u�[�@1�[�ff.����UH��SH��H��H�5�1�H���H��u�:@H;YtH�IH��t'H��u�H��4tH;iu�	H�I�����H��u�H����[]��H�H�1�H���H��u�2f�H;ztH�RH��tH��u�
H�R�����H��u��D�ff.�@��SH�=��H���H��t!H���H��tH�ھ�H�=z��H��[�H�H�5H�81�����H�H�1�H���H��u�Bf�H;ztH�RH��t'H��u�H��4tH;ru�
H�R�����H��u��f��ff.�@��UH�5H��SH���H��H�@H��t+H�xH��H�5����CH���4[]�DH��H�=v����ff.�@��UH�5SH��H���H�ߋh����t;��u'H�H�=H��H�پ[]�fDH������H�H��H��[]���D��H�H�0H��(H��(H9�t<�H���H��t!���fD�H�@��H��u��H�	H9�u�1��ff.������B���f���1��5���D��AWAVAUATUS1�H��xH�H�|$ H�H�t$(H�D$H�D$8H�D$8�D$@H���H���É\$��H�D$8H����pH�|$8��D$0H�D$8H��$�H��$pHDŽ$�4�@H�D$4H�D$8H�t$8�@HH���H��$�H�
�H�t$H��$hH�BH�H1��H�H�HH�`H���H�D$H�|$(H�D$ ��H�D$�D$H��$hH�L$H����D$0����H�T$8H�D$@H9�����T$��t7�D$����H�D$8�T$4�PHH�D$H��x[]A\A]A^A_��H�D$8H�@��P�fD��H�D$�XH�@H�\$���S����5���@H�|$8��[����H�D$8H�T$@H����z���f.�H�D$8H�@��P�H���H�D$8Hǀ��$���H��T$H�H���H�xH�U�D��H�H�H���H��t�P��ff.�@����f���H�����@�M��=�lv2=��=�d=��1�H���fD=��=��=�u�H�=H��u�H�=��H��H��f�����vM����� �s��u�H�=H���w���H�=��H��H��W���fD�������=���H�=H���/���H�=��H��H�����fDH�=H�������H�=�
�H��H�����H�=H������H�=��H��H����H�=H�������H�=��H��H��y���H�=H���i���H�=��H��H��I���H�=H���9���H�=��H��H�����H�=H���	���H�=��H��H����H�=H������H�=��H��H����H�=H�������H�=��H��H����H�=H���y���H�=��H��H��Y���H�=H���I���H�=��H��H��)���H�=H������H�=��H��H������H�H�H���H��t�P�k�ff.���H�@4SH��tHcC<[H�D�fD���HcC<[H�D���H�H�H���H��t�P��ff.���H�G@H��4tÐSH���w�H�C@[Ð��H�H�H���H��t�P��ff.���S�G8H����u�|�H�{ H��u�[�@[�f���H�H�H���H��t�P�[�ff.����G8SH����u��H�C([�fD��H�H�H���H��t�P��ff.���SH��H�wH��H��tH�{H��[�f��[�f���H�H�H���H��t�P��ff.���H�G����H�H�H���H��t�P�[�ff.���AUH�5ATUSH���H�H�H���H������� ��v=�4��=�#=ukH���H��H��tZH���H���H��I���H��I���H��I��D��[L��]H��A\H�=1�A]����t`��t[��t�H���H���H��I���H��H���H��D��H��[H��]1�A\H�=A]�f.���@u�H���H���H��I���H��I���H��H���H��E��L��[H��H��]H�=A\1�A]�fDH���H��H���H��H��H�=[H��]1�A\A]���@H�5H�=��H�HD�H��1�[]A\A]�f���H���PtH�G0H��4tH���H�H�5H�81��H�=1��ff.���H�H�H���H��t�P���ff.���H����tH�G0H��4tH���H�H�5H�81��H�=1��ff.���H�H�H���H��t�P�k�ff.���H���0tH�G0H��4tH���H�H�5H�81��H�=1��ff.���AUI��ATI��U��SH��H�����uaH��0��H�H��H���H�5H��H���H�@ 4L�hL�`�(H�X(H��H��[]A\A]�H�5��f���S�H�5��H�=�H��H�p�H�5H�;�H�;�H�"�H�5�H�H�=H�0�H��H��H���2��Z�ƒ����lH���r<�zH�xH�5�H�=�����H���H�5�H�=�����H�h�H�5�H�=1�H���H�5�H�=1�H���H�5�H�1�H�=H�5�H�=1�H����H�5�H�=1�H�l���H�5�H�=1�H�����H�5�H�=1�H���H�5�H�=1�H�(���H�5�H�=1�H�\���H�5�H�=1�H�����H�5�H�=1�H����H�5�H�=1�H�(���H�5�H�=1�H�����H�5�H�=1�H�@��H�5�� ��H�H��H���ǃ�[��H��������H��t.H������H�H�8����fDH�H�8����H�H�8����H�H�8����H�H�8����H�H�8�{������H�L�M�AIc�����?D�Q���E���9�u�H����I��H�L�IH�qH�Q�A���Ð1��ff.�f���H�L�M�JMc��E��~:I���H;ptuA�H�H��0H��H��@H�� H9p�tVH9�u�A���XA�HD���A���A9�u�I���I����L�H�8L�PH�pH�P�A����D�A���Ð1��ff.�f���AWAVAUATUSH��H�H�<$H�T$ H�D$ 4H�H�� H�\$H��H����H�� H���H�|$H��H��$�H�BH�|$H��$HǃH�|$0H�=�H�x1��H�H�HH�`H����H�4$�J�������9�tSH�$������H�|$H��$�H���H�D$H���H!� H�D$H��H��[]A\A]A^A_�H�<$Hc�H��H���H�H�x�P���H�D$�@H�z���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignlineclassendcallreturnc-callc-returnraiseunknownaccess from outsideto_symSymbolc_callc_returnb_callb_returnthread_beginthread_endspecified_linea_calla_returnunknown event: %limust be called with a blocktrace_func needs to be Procenableddisabled#<TracePoint:%li %li>#<TracePoint:%li@%li:%d>#<TracePoint:%s>not supported by this eventset_trace_funcadd_trace_funcTracePointnewtraceenabledisableenabled?inspecteventlinenopathmethod_iddefined_classbindingselfreturn_valueraised_exceptionstattracepointCan not specify normal event and internal event simultaneously.#<TracePoint:%li@%li:%d in `%li'>#<TracePoint:%li `%li'@%li:%d>tp_attr_return_value_m: unreachabletp_attr_raised_exception_m: unreachableGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�
0&HW HjA�L�WA8l�B�E�D �H(�D0q
(A ABBB�UH i
G\(��E�A�D0�
DAGL�MF�B�B �E(�D0�D8�D�
8A0A(B BBBH(DqF�D�G XAAE�� p9J�Z
�LAG��AAK8�`B�E�D �D(�F0l
(A ABBA$�FA�A�R oAAHTB�B�B �B(�A0�A8�G��
8A0A(B BBBH`WA�M
|AA�m
BP �jA�j
Ej
F<�F�E�B �A(�A0�x
(A BBBB_y aH�B�B�B �B(�A0�D8�D@r
8A0A(B BBBC(dTA�G�G N
MME�$E�^�hE�b�$E�^(�6F�D�C �^DB$KE�F�D yAA48BF�E�D �C(�G0P(O ABB$pFE�A�D yAA(�pE�K�D w
FAF0�{E�H�G o
IAKZDA�E�TdE�V
EC$4oE�D�G ZCA\QpXE�z
A�a(�aE�K�D o
FAF0�{E�H�G o
IAKZDAd(L<KF�B�B �B(�A0�A8�I�f
8A0A(B BBBI�!\��PHE
K�%`�0J�J
LJ%`Q�M4%`H.E�^
EAh%`|H�Q�%`�7E�]
NF�%`�	�%`|�F�I�A �A(�D0�
(G DEKFy
(G DDIOz
(G GIDKW
(K DDBLb(C ABB�EHV
A�%`�BHS
A�%`�EHV
A8	�F�E�D �C(�D0]
(D ABBD@	?E��
I`	ct	�H�	KF�B�B �B(�A0�A8�G��
8A0A(B BBBD	!-E"a~#��$��%+
C
N
u6�H�6��@j 	�6�Q^j��v^���`U���d���d-�JpMZ��1��q�1�y�@9�y�5�J�j��`��F�F	F-�OPTd����W�Q-AJQs��`j������	p	h5	`N	Xg	P�	H�	@�	8�	0�	(�	 	/	H	a	z��?��_�?
		=	@�`		�	d�	T�	d�	�

p$"
�I
n
�h�
�
4�
4v*vK�j����f�f �B�e[��{�[�z�`�z
�C
�x
_�
_�
��
�+�X:h�������{"{7{Z�{�����Gj[�[�����)�J�i	��	��	��	��	��	x�	�	�1	�J	�c	�|	��	��	�����%%GPgP�u�P%�u���*�L�%a������%�%%<JcJ�u�P%�u���D�i�%�������%  %% <"\0 �o"�e"�e"��"p"%0�"\�"��"�#��"%#'e#Ge#h�#�	���#�?'�?'��'�'Kc(vc(��)"#$%!��"�+�1������9��M�T[
b�kr"{(�.�4�:�@�F�L@R'Xh^d�jBpvS|����o�~���������������������������������+?

 &'(P&h~������-;JVj��������"7Xhy��������$<@6U�Kg�B� F�pp��a����d��o `Q)  aH �d\ �� � K� `!� �� �P�  0!�#!�.9!0S!�7g!�!�!�	�!�!�! "E�!�!�"B" #E"p#�("$?6"P"["l"w"�"�"�"�"�"�"�"�"###@'c8#�'�V#p(K.annobin_vm_trace.c.annobin_vm_trace.c_end.annobin_vm_trace.c.hot.annobin_vm_trace.c_end.hot.annobin_vm_trace.c.unlikely.annobin_vm_trace.c_end.unlikely.annobin_vm_trace.c.startup.annobin_vm_trace.c_end.startup.annobin_vm_trace.c.exit.annobin_vm_trace.c_end.exit.annobin_tp_memsize.start.annobin_tp_memsize.endtp_memsize.annobin_rb_tracepoint_enabled_p.start.annobin_rb_tracepoint_enabled_p.endtp_data_type.annobin_recalc_add_ruby_vm_event_flags.start.annobin_recalc_add_ruby_vm_event_flags.endrecalc_add_ruby_vm_event_flagsruby_event_flag_count.annobin_clean_hooks.start.annobin_clean_hooks.endclean_hooks.annobin_tp_call_trace.start.annobin_tp_call_trace.endtp_call_trace.annobin_tracepoint_stat_s.start.annobin_tracepoint_stat_s.endtracepoint_stat_s.annobin_call_trace_func.start.annobin_call_trace_func.endcall_trace_func.annobin_exec_hooks_body.isra.2.start.annobin_exec_hooks_body.isra.2.endexec_hooks_body.isra.2.annobin_tp_mark.start.annobin_tp_mark.endtp_mark.annobin_get_trace_arg.part.4.start.annobin_get_trace_arg.part.4.endget_trace_arg.part.4.annobin_alloc_event_hook.start.annobin_alloc_event_hook.endalloc_event_hook.annobin_rb_threadptr_add_event_hook.start.annobin_rb_threadptr_add_event_hook.endrb_threadptr_add_event_hook.annobin_exec_hooks_protected.start.annobin_exec_hooks_protected.endexec_hooks_protected.annobin_rb_threadptr_tag_jump.isra.9.start.annobin_rb_threadptr_tag_jump.isra.9.endrb_threadptr_tag_jump.isra.9.annobin_fill_path_and_lineno.part.10.start.annobin_fill_path_and_lineno.part.10.endfill_path_and_lineno.part.10.annobin_fill_id_and_klass.part.11.start.annobin_fill_id_and_klass.part.11.endfill_id_and_klass.part.11.annobin_tracepoint_new_s.start.annobin_tracepoint_new_s.endtracepoint_new_srb_intern_id_cache.16185rb_intern_id_cache.16186rb_intern_id_cache.16187rb_intern_id_cache.16188rb_intern_id_cache.16189rb_intern_id_cache.16190rb_intern_id_cache.16191rb_intern_id_cache.16192rb_intern_id_cache.16193rb_intern_id_cache.16194rb_intern_id_cache.16195rb_intern_id_cache.16196rb_intern_id_cache.16197rb_intern_id_cache.16198rb_intern_id_cache.16199.annobin_exec_hooks_unprotected.start.annobin_exec_hooks_unprotected.endexec_hooks_unprotected.annobin_rb_threadptr_exec_event_hooks_orig.start.annobin_rb_threadptr_exec_event_hooks_orig.endrb_threadptr_exec_event_hooks_orig.annobin_thread_add_trace_func.start.annobin_thread_add_trace_func.endthread_add_trace_func.annobin_thread_add_trace_func_m.start.annobin_thread_add_trace_func_m.endthread_add_trace_func_m.annobin_thread_set_trace_func_m.start.annobin_thread_set_trace_func_m.endthread_set_trace_func_m.annobin_rb_vm_trace_mark_event_hooks.start.annobin_rb_vm_trace_mark_event_hooks.end.annobin_rb_thread_add_event_hook.start.annobin_rb_thread_add_event_hook.end.annobin_rb_add_event_hook.start.annobin_rb_add_event_hook.end.annobin_rb_thread_add_event_hook2.start.annobin_rb_thread_add_event_hook2.end.annobin_rb_add_event_hook2.start.annobin_rb_add_event_hook2.end.annobin_rb_tracepoint_enable.start.annobin_rb_tracepoint_enable.end.annobin_tracepoint_enable_m.start.annobin_tracepoint_enable_m.endtracepoint_enable_m.annobin_tracepoint_trace_s.start.annobin_tracepoint_trace_s.endtracepoint_trace_s.annobin_rb_thread_remove_event_hook.start.annobin_rb_thread_remove_event_hook.end.annobin_rb_thread_remove_event_hook_with_data.start.annobin_rb_thread_remove_event_hook_with_data.end.annobin_rb_remove_event_hook.start.annobin_rb_remove_event_hook.end.annobin_set_trace_func.start.annobin_set_trace_func.endset_trace_func.annobin_rb_remove_event_hook_with_data.start.annobin_rb_remove_event_hook_with_data.end.annobin_rb_tracepoint_disable.start.annobin_rb_tracepoint_disable.end.annobin_tracepoint_disable_m.start.annobin_tracepoint_disable_m.endtracepoint_disable_m.annobin_rb_clear_trace_func.start.annobin_rb_clear_trace_func.end.annobin_rb_threadptr_exec_event_hooks_and_pop_frame.start.annobin_rb_threadptr_exec_event_hooks_and_pop_frame.end.annobin_rb_threadptr_exec_event_hooks.start.annobin_rb_threadptr_exec_event_hooks.end.annobin_rb_suppress_tracing.start.annobin_rb_suppress_tracing.end.annobin_rb_tracearg_from_tracepoint.start.annobin_rb_tracearg_from_tracepoint.end.annobin_rb_tracearg_event_flag.start.annobin_rb_tracearg_event_flag.end.annobin_rb_tracearg_event.start.annobin_rb_tracearg_event.endrb_intern_id_cache.16129rb_intern_id_cache.16121rb_intern_id_cache.16117rb_intern_id_cache.16137rb_intern_id_cache.16119rb_intern_id_cache.16141rb_intern_id_cache.16123rb_intern_id_cache.16133rb_intern_id_cache.16125rb_intern_id_cache.16127rb_intern_id_cache.16135rb_intern_id_cache.16115rb_intern_id_cache.16131rb_intern_id_cache.16139.annobin_tracepoint_attr_event.start.annobin_tracepoint_attr_event.endtracepoint_attr_event.annobin_rb_tracearg_lineno.start.annobin_rb_tracearg_lineno.end.annobin_tracepoint_attr_lineno.start.annobin_tracepoint_attr_lineno.endtracepoint_attr_lineno.annobin_rb_tracearg_path.start.annobin_rb_tracearg_path.end.annobin_tracepoint_attr_path.start.annobin_tracepoint_attr_path.endtracepoint_attr_path.annobin_rb_tracearg_method_id.start.annobin_rb_tracearg_method_id.end.annobin_tracepoint_attr_method_id.start.annobin_tracepoint_attr_method_id.endtracepoint_attr_method_id.annobin_rb_tracearg_defined_class.start.annobin_rb_tracearg_defined_class.end.annobin_tracepoint_attr_defined_class.start.annobin_tracepoint_attr_defined_class.endtracepoint_attr_defined_class.annobin_rb_tracearg_binding.start.annobin_rb_tracearg_binding.end.annobin_tracepoint_attr_binding.start.annobin_tracepoint_attr_binding.endtracepoint_attr_binding.annobin_rb_tracearg_self.start.annobin_rb_tracearg_self.end.annobin_tracepoint_attr_self.start.annobin_tracepoint_attr_self.endtracepoint_attr_self.annobin_tracepoint_inspect.start.annobin_tracepoint_inspect.endtracepoint_inspect.annobin_rb_tracearg_return_value.start.annobin_rb_tracearg_return_value.end.annobin_tracepoint_attr_return_value.start.annobin_tracepoint_attr_return_value.endtracepoint_attr_return_value.annobin_rb_tracearg_raised_exception.start.annobin_rb_tracearg_raised_exception.end.annobin_tracepoint_attr_raised_exception.start.annobin_tracepoint_attr_raised_exception.endtracepoint_attr_raised_exception.annobin_rb_tracearg_object.start.annobin_rb_tracearg_object.end.annobin_rb_tracepoint_new.start.annobin_rb_tracepoint_new.endrb_cTracePoint.annobin_Init_vm_trace.start.annobin_Init_vm_trace.end.annobin_rb_postponed_job_register.start.annobin_rb_postponed_job_register.end.annobin_rb_postponed_job_register_one.start.annobin_rb_postponed_job_register_one.end.annobin_rb_postponed_job_flush.start.annobin_rb_postponed_job_flush.end.LC5.LC6.LC7.LC8.LC1.LC2.LC0.LC4.LC3.LC9.LC10.LC11.LC12.LC13.LC14.LC21.LC15.LC16.LC17.LC18.LC19.LC20.LC23.LC22.LC24.LC27.LC30.LC28.LC29.LC25.LC31.LC26.LC32.LC33.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouprb_tracepoint_enabled_p_GLOBAL_OFFSET_TABLE_rb_check_typeddatarb_objspace_set_event_hookruby_xfreerb_proc_call_with_blockruby_current_vmrb_hash_newrb_ary_new_from_valuesrb_hash_asetrb_sourcefilerb_str_new_cstrrb_sourcelinerb_binding_newrb_ivar_getruby_current_threadrb_thread_method_id_and_classrb_id2symrb_gc_markrb_eRuntimeErrorrb_raiseruby_xmallocrb_eTypeErrorrb_threadptr_reset_raisedrb_threadptr_set_raisedrb_vm_get_ruby_level_next_cfprb_vm_get_sourcelinerb_vm_control_frame_id_and_classrb_convert_typerb_block_given_prb_block_procruby_xcallocrb_data_typed_object_allocrb_intern2rb_eThreadErrorrb_sym2strrb_eArgErrorrb_mRubyVMFrozenCorerb_obj_is_procruby_threadptr_data_typerb_vm_trace_mark_event_hooksrb_thread_add_event_hookrb_add_event_hookrb_thread_add_event_hook2rb_add_event_hook2rb_tracepoint_enablerb_tracepoint_disablerb_yieldrb_ensurerb_thread_remove_event_hookrb_thread_remove_event_hook_with_datarb_remove_event_hookrb_remove_event_hook_with_datarb_clear_trace_funcrb_threadptr_exec_event_hooks_and_pop_framerb_threadptr_exec_event_hooksrb_suppress_tracingrb_tracearg_from_tracepointrb_tracearg_event_flagrb_tracearg_eventrb_tracearg_linenorb_tracearg_pathrb_tracearg_method_idrb_tracearg_defined_classrb_tracearg_bindingrb_vm_get_binding_creatable_next_cfprb_vm_make_bindingrb_tracearg_selfrb_fix2intrb_sprintfrb_tracearg_return_valuerb_bugrb_tracearg_raised_exceptionrb_tracearg_objectrb_tracepoint_newInit_vm_tracerb_define_global_functionrb_cThreadrb_define_methodrb_cObjectrb_define_classrb_undef_alloc_funcrb_undef_methodrb_define_singleton_methodruby_xmalloc2rb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolrb_postponed_job_registerrb_postponed_job_register_onerb_postponed_job_flush��������� 4��������D*5��������P���*5��������I6��������Q7��������k���������u4���������8���������*9���������:��������6;��������D<���������=�������������������������������������������������>���������>��������?���������8��������������������������������������������������������������������	@��������JA��������c*B��������sC���������D������������������RE�������������������*F���������G���������H���������*I�������������������G���������J��������NK��������L��������6M���������N������������������	���������	O��������	l(	D��������8	dF	D��������V	\d	D��������t	T�	D���������	L�	D���������	D�	D���������	<�	D���������	4�	D��������

,
D��������(
$6
D��������F
T
D��������d
r
D���������
�
D���������
�
D���������
���������
D���������
P���������
Q��������R�����������������"S��������)���������44��������c���������mT��������wl|D�������������������T���������d�D�������������������T���������\�D�����������������T��������T$D��������C���������MT��������WL\D��������{����������T���������D�D�������������������T���������<�D�������������������T���������4
D��������#
���������-
T��������7
��������C
���������M
T��������W
,\
D��������{
����������
T���������
$�
D���������
����������
T���������
�
D���������
���������T��������D��������3���������=T��������GLD��������k���������uT���������*U�������������������G���������V�������������������*W���������G���������*X�������� Y��������O*I��������V���������`G��������{*Z���������4���������*Z���������4��������%E��������S*Z��������X4���������*9���������*Z���������4��������5*9��������x����������4���������^���������_�������������������4��������`��������P��������*a��������*b��������;*`��������q`���������*Z���������4��������*Z��������4��������g*9���������f���������Y���������]��������*I��������
���������G��������'*9�������������������4���������e���������g�����������������4�������� a��������%P��������4*a��������;*b��������[*`���������*9��������**B���������J���������K��������@*B��������g*B���������$���������.T��������8�e�u���������T�����������������������T�����������������������T����������#���������-T��������7�CtS���������]T��������gts������������T�����������������������T�����������������������T��������������������T��������'�3�C���������MT��������W�c�s���������}T�����������������������T�����������|�����������T���������|�*B��������W*B���������*B��������*B��������W*B���������t���������*B�������� *B��������9 ���������F 4��������M *B��������� q��������� o��������� w��������� p��������� n��������� ���������!o��������!w��������!p��������!!n��������;!���������Y!o��������a!w��������l!p��������w!q���������!n���������!����������!v���������!n���������!����������!���������!���������!��������B"*F��������I"��������S"G��������Z"��������a"z��������w"*B���������"*F���������"���������"G���������"���������"z���������"*B��������B#*F��������I#��������S#G��������Z#��������a#z���������#��#R���������#����������#S���������#����������#4���������#*Z���������#4��������$��������$�������� $*���������3$��������;$���������Q$��������V$���������]$*���������d$��������l$���������v$�{$����������$��$	���������$����������$��$	���������$����������$��$
��������%���������%�%��������%���������#%�3%��������8%���������?%*2��������H%�O%
��������T%���������[%�k%��������p%���������w%��%���������%����������%��%���������%����������%��%���������%����������%��%���������%����������%��%���������%���������&�&��������&���������&�/&��������4&���������;&�K&��������P&���������W&�g&��������l&���������s&��&���������&����������&*9���������&����������&*����������&*���������'*���������'*���������#'*���������3'*���������G'*B���������'*B���������(*B���������6��������eE��������.c��������Nc���������f���������D��������n��������ko���������p���������D��������q��������kr���������u���������s�������� v��������� x��������B!x���������!x���������!x��������"x���������"y��������#{�������� ���
$,
P
X6�
�6�6���6���^D�L^p^x��^�����d�d0d8�ddl����1���1�1�y$1,yPyX��y��������FDLFpFx��F������08QdlQ�Q���Q������$�,�P�X?���?�?�	�?�				dD		L	dp	dx	��	d�	��	��	
�
0
8
4d
l
4�
4�
v�
4�
v�
v�
�$v,�P�X�����f��ff�DfL�p�x[���[�[�z
[
z0
z8
�d
zl
��
��
_�
��
_�
_�
�$_,�P�X�����������D�L�p�x{���{�{��{�0�8�d�l���������[$,[P[X��[������������D�L�p�x�����PP0P8udPlu�u���u������$�,�P�X��������%���%%JD%LJpJxu�J�u�u��u�0�8�d�l������������% $�,% P% X"�% �"�"�e"�"�e"e"�"De"L�"p�"x�"��"��"��"�#�"#0#8e#d#le#�e#��#�e#��#��#�?'$�#,?'P?'X�'�?'��'��'�c(��'�c(c(�)Dc(L�) � � � �&@ 4L@p��`���pH�t@�����Pd���`���@h�p����@�<�t �p���`�8�``t�� �����,@�`������� P�8�L�l�0�P������� 0 � "�p"��"��"� #	p#D	$d	@'x	�'�	p(.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*T*l*�*�*'��)"@���'*-{*3�*� =�*T8@X��*
S�Eb�E�]@�0*
|�G��G��@8�0*�|I�|I��@h�0*�PK�PK��@��0*2$M'2PO�.@PH )@��H*A0�P.��P��P|�PS�P'�PJ�PX�Pk�P}�P��P��P ��P�	�@�`*(�Z�%+2	@�m#p��thread.o/       1690381920  1000  135   100644  169728    `
ELF>��@@.-

!# $%&���ff.���H����t1H���H��t%H�OH;Ju�7�H9HtH��H�H��u��f�H��H�H���H���H����D��H�H�H�@��LH�H�Ѓ��ff.�f���H�H��1�H�����H���H�R��L�f���H9�t LJ�HLJHLJ��fD��1�H����H���ff.�@��H��H�H�Ѓ�x�ff.���H������H��1�H�v(H�xH���f.�H��1����uH��É�H�=�ff.�AUI��ATI��USH��XdH�%(H�D$H1�H�l$H�D$�H��H����Å�t$H�L$HdH3%(��uTH��X[]A\A]��L��L��H����Å�u�I�EI$H�t$H����Å�u�H�D$I)EH������UH��ATI��SH�����H���H�� dH�%(H�E�1����u
H������tnI���veL)�H����H��H9�sOH)�H��H��H��H%�H)�H���H��H9�tH��H��$�H9�u��u0H�D$H����@H�E�dH3%(uH�e�[A\]��H)�H�L����H�����uH��É�H�=�SH��@H�����t�u[É�H�=����H�ǰ��H�����uH��É�H�=�UH�oSH��H��H���k���H�C8H�CH��uH��H��[]��H�{@�_���H��H��[]�@H�����uH��É�H�=�H�����uH��É�H�=�ATA��UH��(SH��H������H��E��t;�H���H��t	H�����H��P����[H��]A\���f.����f.�SH���H��H�����u7H�$H�L$H��S㥛� H�H��H��?H��H��H)�H�SH��[�fDH��1��H��[�H�����uH��É�H�=�ATI��UH��SH��H��H��L�����t�t��nu[]A\É�H�=����H��H�5��H���H��HD�H���@��H��H�5�H�x`H�H��H�Ѓ��f���ATH�5I��U1�S�H��H���<���H�{`tH�����H��[]A\�DH�H�5L��H�(H�k`�H���H��tH�PhH���H�߽�?���H��[]A\����SH�H�5H���H9X`�[HD�Ð��USH��H��H��H�5�����H�������H��H��ƒ���tz��uuH�5H��������H���H��tD@��ubH�����tYH��ƒ���tL��uGH�5����ueH���H��H��[]�H���[]�H�H�5H�81��H�H�5H�81��H�H�5H�81��H�H�5H�81��@��H��H�5������HD�H���D��SH�5H����H��[Ð��H��H�5�Hc@8H��H�D�ff.���SH��H�5�1�H������‰��H��[�D��H��H�5����H�H��H�Ѓ�����H��H�5������t����H�H����øH���fD��H��H�5������HD�H���f���H��H�5�Hc��H��H�D�ff.�SH��@H�����t�u[É�H�=����SH�������Cp��~	H�{(���H��[�
���f.���H��H��H���1�H���fD�����USH����H����tdH���H�Ń��t:H��4H��H�8�H��H���1�H��ǃ�&���H���[]�f.�H�1�1�H�8�H������f.���ATUS�I��H�H�H�hH��(H��(H9�u�*DH�H9�t���w�H�sL���H�H9�u�L��[]A\�ff.���AUATI��USH���I��H�H�H�hH��(H��(H9�u�)@H�H9�tL9��u�H�sL���H�H9�u�H��L��[]A\A]�ff.�f�U��SH�H���H�މ��H��ty���0��tރ�uH��[]�H�=��S1��������t����߉�1�����t[�1��ff.���UH��SH���H�5H��H���H���H��tH��H�5v�H��H��[]����U�H���SH���H��H�H��H����H�CH��[]�ff.�������SH���H��H���1�[�@AUATUH��SH��H��H��t;I�Ժ4�I��1�I��4t3A��uI�����tA�E����t(�H��H����H��[]A\A]�DL��L���I�EH��t�H�@����t¸��ff.�����������UH��SH��H�|$H�t$�H�5H��H���H��tH���H��t1�H�����u1�H��[]�f.����f���UH��SH��H�|$H�t$�H��u1�H��[]�fDH�5H��H���H�xH��t�H���H�}1�H�����t�����USH��H�5�H���H��H�5���H��H���H��H��[]���ATUS@��uJH�����tAH�H�Ӊƒ���t1��u,H��H�5�H��I���H��L��[H��]A\�H�=�ff.����UH��SH��H�5�H��H���H��H��H��[]�ff.���H��H�5������t)��tM��H�=H�HF�H����H��1�H��t1�����H��H�������H�=��H�HD�H���ff.�f�UH��SH��H���H;u&H�H�EH�H�H��1�[]��H�t$H���s��u�H�$H�EH�D$H�H��1�[]�fDU��SH����9�t	H��[]�f�H��H�މ��H�����0��t�t�H�=��ATUSH�H��tJH�G8H��H�G8H�G8H��tlL�cH�k@@L��H���%�H�{u�H�C8H��H�C8�����uH�C[]A\�ǃ�H�{x�%�H�C[]A\���=����H�{t��ff.��ATI��USH����H�S`H����H�-L9�tH����H��[]A\���CpH�C`��aH�����I��$�I��$�H9�t@H�H�PhH�@hH9�u�H�Ch1�H�H��H�Ch[]A\��H�-�|���@H�{(�7��D��SH�5H���H�H��H�2����H��uH��[�H��H�H�5H�81��D��SH��H��t$H�w`H��t
����H��uH����H�{(�_�H��[�H��H�=1��DUH��SH��H��(��tW��ut1�H�����u_HiL$�H�4$H�)H�H���ɚ;~H��H��ʚ;H��������H9�HL�H��([]�@H�t$���u$H�t$H�L$�1��Hc�1�H�=�H�=�f.�H��(�H�����u+f�f���H*D$�Y�H*$H��(�X��DH�|$1��f�f���H*D$�Y�H*L$H��(�X��ff.�f�USH��HH�H�(H9��H�H��H�H9��
�D$H�|$ H�l$(�8����L$1�f.
��X���Eƒ���D$0�D$8uFH��H��t)@��u#@��uH�����t
�����tj�DH�CH��H[]�DH���H�t$ H�=�H�l$H��H�=>9H�D$H�D$H����H���y���H��H�[]�H�wH� �H���H�H�5H�81��H�H�5H�81��ff.���SH�5��H��H���|���H���[���ATI��U��H��SH��H�5���H�L$L��H��H�1��H�|$�H��t�H������H��[]A\�ff.��UH��SH�_H��H���+�H�����H��H��[]�u�DSH��H(H��@H�|$H�t$(H�D$H��t5H��H�6H����;HiP�H�D$����S���H�D$0H�T$8H�H�H��H�D$���H��H�L$H��H�y��H�|$�x�H�t$H���H���H�� H���H�D$ H��#��
tuH�D$H�|$Hǀ�Hǀ���H�\$H�{����H�CH;� tH�L$Hǁ�H�\$H�H�� H�H��@[�f�H�D$H�|$(H���t,H�t$H�T$0���c����1Ҿ����@H�t$�f��<������H95tH95t	H95u1��PH�H�5H�81��D��H9���SH���H��t"fDH�PhH�@`H�@hH��H��u�HLJ�H��H���H��u2Hǃ�ǃ�HǃHǃ�[�DH�5�H;X`u�fDH�PhH�@`H�@hH��H��u��f��ff.�@��SH���H��t.�H9t�=�e���H����[�H�=�$���H��tAH�H�
H�H�HH�PH��tH�BH���H�=H��9��v���H��"�H�=H����f.�H�?tJSH��H�=��H�;H�WH�GH�BH��tH�PH��H�=[��f��ff.�@U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�SH��H���H���H�{HH�H����Hǃ�_���ff.�@��UH��SH��H�5������uO���H��tCH�@H9�t@H�H9tSH��H��t/��1�H��ǃ�.�H��H��[]�1��H�H�5H�81��H���
���ff.�f���H�H�H�x�f���H���@��AVI�փ�@AUI���wI�A�UATA��U�����Ѝz~SHc�H����?I�H��Hc�H��H���HB�H���HC�H9�rA9�|A��E�e[]A\A]A^��I�>H��H)��H��1�I�H�<(�A�U�ff.�SH���?���u5H�����uG�;��{��;�C��{[�:�f.����x(�{���x/H�������H�=�0��H�=�0��H�=�0�f�USH��HdH�%(H�D$81�H��H��������@H����-�9�t#H�=����H�=�����������H�H��OH��H�=H�H�����uZ�H���H�D$8dH3%(u3H��H[]É��H�5H��H�H�81��������H�5H����H�=1�����H�SH�H�@0H�@H�XHH��tH�{t	[���H���H��� t>H��H����H9�}�H�@H��H�H�H��H9�t�H�DH�[��H;C}�H�[ ��@H��u���AVAUI��ATUH�պ4SH���I��H��4t\�uH�����u@��L��I��H���L��L��H���[H��L��]�A\A]A^�f��M�����u��אH��L��H��[]A\A]A^�f.���AUI��ATUS��H��H��H�5�I��H��H����H��� ��1�H�x@�Ņ��������L��H�L$1�H��H�H�|$H�0�H����H�\$�+�H����H9�}<H��H�<�H���H��uO��I��$Hc�H�H��% u�H;q}H�I ��1�H��[]A\A]�1���@���;����H���[]A\A]�H�H�5H�81����H�H�H�P���f���AUI��ATA��H��UH��SH���H��H�H�H�����t5L��D��H���H�5H���H���t&H��H��[]A\A]�H�H�5H�81��H���H�5H��H�H�81��@H��8��T9��AVAUATUH��SH����T9��JH�H��t"H�H;tH��[]A\A]A^�f�H��(L��(L9������u�H�� H��#��
u�L�-�,H�L9��|���u�H�� H��#��
u�H���H��t�L���I��H����I�F`H9�tH��t
L���R��A�Fp��t�L���@�H��[]A\A]A^���H��H�=H�H�$�H��H��H�D$��T����T��H��[]A\A]A^�H�=1��fDH��H��� t1���������f�H�x������ÐAWAVA��AUA��ATI��USH���H���H�5L��H���I�Nj������H���uA���H���H�HD�E����f�H��1�H�=L���I���H��uI���H��t�I��H���1�E��H�H�
HD�1�H��H��H�5�@��t\H��H��[]A\A]A^A_����H�H�HE�E���Z���1�1��I���H����E��u|@��u�H�����t�H�U�Ѓ����H��r�A���u���I������h���I�$�������V���%H	�H�U�E���fDD��D	�t�E�������H�
����I���H���c����I��H���Q����I�G�@E1�H�D$�BDH����I9�}�H�D$J��H��t�H�5H��1�L�$�L�$�:I��I��� u�M;G�Y���I�G ��������ff.�f�UH��SH��H�\$H����E0�H�����u�E0H��H���H�߉����uH��[]É�H�=�ff.�f���U�xH���SH���H�H��H��H���H��H�D$�B��H�{(�I���H�D$H��[]�ff.�f�AWAVAUATUSH��HdH�%(H�D$81�H�L�(I������H�������H�I�׉ƒ�����%H����I��H�5I���H��L���M����A���H���1�L������I���H����I��ǃH���H��(H��H�@Hǃ �#��H��P�'���H�C�L��`I��PwH���������L��H��H��L��H��H)�H��H������L��H�������1�H��������H�������H���H��H��H���H��A�������E����H�CH��(H�H��0H�SH��0H�H��8H��0L��H�L$8dH3%(��H��H[]A\A]A^A_��H���]���H�H�5H�81����H�=���H�=���H�=���H�=�ǃ�D���H�5H��H�H�81����H�=����SH���H��1�[H���%���D��UH��SH��H������H�5H���H�����H���H�����H�������H�H�P�� uH�P H�H�ZH� tH�ZH��u9H�@ H��H�8H��t5@��tj���H�H��H�5H�81��H��H�8H��u�H�H��H�5H�81���H��H��H��1�[]����D����H�H�5H�81��H�H�5H�81��ff.�@SH��H�����H�{@���H�{x���H�������H�CH�C8Hǃ�[����USH��H��H�5�H�߃�H��t4���������Lº��O‰��H��H�H�D[]�D��ʐ��H�1�L�F�'�H��H����H9�}9I��H�:t
H�H���Hc�� u�H;V}H�~ H��H�:u���@1��D��SH�1�H�=H���H���H�������=H���H�=���H�5
���[�ff.�@��ATUSH�� �H�=H�tH�� []A\�DL�d$H�|$L���^����trH�H�(H�-�L�����H���uH�T$H��Hc�H�D1�H��H��H��H��H)�H9ŸHC�H�H�� []A\�H�t$H�|$H�5H�=�{��H�� []A\�f����=�a����UH��SH��H��H�t$H�������uWH�D$H�$�H)�H=Pv&H9�H��HF�H)�H9���1�H9���!�H��[]�f�H���������H��H����DH��t#H��H����H)�H=Pw���1��ff.����9=�t9=t9=t1�9=���������SH������H������H�{x���H�{@���H�{���H���[���ff.�@���7��������������������'�����1�����D������f���UH��SH��H���H��t �H��H�_h��H��uH��H��u�H��[]�H��H�=1��ff.�@��H��H�����f���UH��SH��H��H�H�8�H��H��H��H��[]�
���ff.�f���H�������H�����fD��H��H�5��� ��#�H���Ѓ�
�@��H���=�H��tH�����H�����D1�H���f���H�����SH��H���ǃ[�������u
��D1��D��H��H�Hc�H�t6H��H�H�t$�H�$H�GH���E��H�����S�H��H�=H��H�H�H�$�H��H�D$H�CH�����H��[�f���SH���G<���H�H�uH��p�H��pH���H�{H�H�����ff.�@���W<�Ѓ�u���W<�ff.����W<�Ѓ�t��W<�ff.���H�ATUSH�H�hH��(H��(H9�tWA��1��H�H9�t>D9cLu�H�CH��H��x�H��1�ǃ�w��H��H9�u�[]A\�D[1�]A\�f���S��f������u�[���UH��SH��H�5����tFH��H��1�����������vH��H��[]�f�ǃ�H��H��[]�@�H��H��[]�f���SH���H�����tH��[�H�H�5H�81��ff.���H�H�H�@�ff.�f�AWAVAUATUSH��H�|$ H�t$H�T$0H�L$(D�D$DH�D$4�H���W���H�D$PH�H�H�D$HH���H�D$8H��t�uH�������H�L$HH�D$8H����H�t$PH�|$8H��H�D$H�H�D$HH�|$H�D$x�H��H��$�H�D$�T$DH��$�H�D$0H��$�H�D$(H��$�����H�=�H�|$x�4H���H��4H��$������D$8H�|$x�4�H��4t'H�|$0���uH������NH;D$0�kH�D$ H�D$p�D$8���UH�=�H�|$x�H���H��$�H��$�H�|$x���H�|$xH�L$lH�T$pH�5����H��$�H�|$xH�D$0H��$�H�D$������]H�=�H�|$xH����T$l���wH�D$0H9D$x����H�t$(H�|$H�D$ ��H�D$�d��H�\$�CH�CH�D$l����H��$xH�L$H��$�H��$�H���H�|$x��������T$l����H�D$H�Ĉ[]A\A]A^A_��H��$�H��$�H�|$x��H�H��$�H��$�HDŽ$�4H�0H���H��$�H�
*���H�t$H��$xH�BH�H1��H�H�HH�`H����D$lH�D$4fD1�H�t$(H�|$H�D$ ��H�D$���H�������D$8�������������H�t$0H���H��������D$8���D$D�O���H�|$xH���f�H�H�D$X�D$X�����i���H�t$PH�|$8�H�D$HH���a�����Y���H������M���H�H�D$X�D$X�����5����L����H��H�H�T$PH�5H�81��H�H�H���H�xH�Z�H�H�H���H�xH�@�������H�H�H�@H��H�@�f�������SH��H��H�5�H;t?H���H��tH�T$H�����uH���[��H�D$H��[�DH���H��[���SH��H��H�|$H�t$�H�ƸH��tH���H��[�f.���AUATI��UH��SH��H��H�5�����H�������I��H��ƒ���������L;%tYI���H��t$H��t_H��L���H��H��[]A\A]�fDH��t�H�t$1�L�d$�H��H��[]A\A]�@I���H��H��[]A\A]��H��I����H�=���UH��SH��H��H���H��H��H��H��[]�@��H�H�H�P�H��(H9�(t1���8���ff.��AWAVAUATUSH��H���H�4$dH�%(H��$�1�H�L$ H���H��(H�D$@H�L$H�\$H�|$�H�\$H�CH9���H�t$�=H��(H�D$H���H�D$�H�D$H�4$H���H�xH��(H�t$H���H�t$�"��H�L$H�AH9� tHǁ�H�\$H�H��$�HDŽ$�4H�� H���H�H��$�H��$�H�BH��$H�
�H�H1��H�H�HH�`H��(H�D$H���H���H�\$(H�D$H�L$H��$�H��H��H��H�X1��H�1�H�yH�P1�H�`�H�H�|$HH�D$H�H��1��>@��H�H��H�4$�/�H��t
�x�kH�<$�H��H�D$8H���]H�$H�H��$��A��$��Af��$��*f��$�H��$�H�D$0H�t$0�1��H�D$H���H���KH�|$ 1���H�\$H���H�CH�L$H��ǁ�H�$H9���H�D$@�uH�����tH�������H��$�H�L$(H���H�D$H���H����H�t$H�FH�H�VH�QH�
H��8����rH�D$H���H�$H��tDDH�$1�H�x����H�$H�P�������w
ǂ�H�$H�H�$H��u�H�|$�H�D$H�x��H�D$H���VH�D$H�pH���H�4$�m��H�D$H�xHLJ H������H�D$H�|$Hǀ�ǀ�HǀHǀ����H�|$����H�D$H�x�{��1�H��$�dH3%(�YH��[]A\A]A^A_�H��H�$���H��$�H�4$H��H�D$0�H�D$8Ƅ����H�<$1�����~���H�<$H�T$@��������H��H���H�@ HǃH�xH�$�H�L$H���H�Hǁ���D$0���}H�t$ H��� ��H��H�N�ƒ�H�4$H�|$E1��H�5H�L$�H���H�A���*��������������H�A0H��$�DŽ$�H��$�H��$�H�AHDŽ$�H��$�HDŽ$�HDŽ$�4HDŽ$�4DŽ$��H�\$H�C���fDH�x �H�D$H�@ ���H�D$ H�H �P����@��H�L$(�AH�AH���+���H�L$H��H�|$@����H�QH�D$Hǀ�H���
������fDH�A��������j���H�A0H�|$PH�L$X�D$PH�D$`H�AH�D$pH�D$hH�D$xHDŽ$�4HDŽ$�4DŽ$������H�H�0�H�t$H�VH���<�����L�/�������"����H�����u	H�D$@H�D$H�P���H��H�=H��(H�H�\$H�D$1��H�t$H�=1���1��ff.�f���SH��H��H������H������=H���H���H�����1�[��ATUSH��H������H�H�H�D$H9����H�����H��H�L$H�YH��H�kH�����H�C8H�CH�����������H�C8H����H�L�cxH����H��L���E�������u�ǃ�H����E��H�����H�����H�T$H�BH;� tH�L$Hǁ�H�t$H�H�� H�2H��[]A\�@H�{@�����:���f�H���8����H���˿���u���fDL���f�H��L����������u��Q���fDAWI��AVL��AUM��ATUSH��H�D$P�t$DH�D$H@A��A�� ��!��A�M9�u�A�� ��!����ЉӉՃ��������D$�'��tI�GL;��9����A������L����������D$@L�l$8L�|$0H�D$0Hc|$@H��H�|$ H��� ��H����H9��'H��H�|$ H��H�D$�������D$������H�|$���|$�H�D$H�xH�D$0H��L�(A�� ��I��H��A��H�D$(L�l$�H��� ��H��H�h��E1�E1�L;t$��A��H�D$H�|$(E1�Mc�L)�L�$�1�H����f�A��Ic�H9�}�H�t�L���H��t�H;�LH;�.H;���D$@���L�|$0L�l$8ALJ�T$�����A�����������H����H��A���HOڅ���H�����H���������f�I������f�H�|$ H;x�a���H�@ �5����H�D$H������a���H���DH�|$�K���H�H�8�E���f.�H�XH�h �|���H�XH�@ H�\$H�D$(�F����L$D������DL�|$0H�t$ L�l$8I���H�|$4����H�|$H��H��H���WH���MA�������wALJ�H�|$�DH�H�8���A���ALJ��D��L������u�A������H�Ĩ[]A\A]A^A_�H�H�8�+���H�H�8����H�H�8�
���I������(���H�H�8���I�G���A�������I�G0H�|$HL�|$X�D$PH�D$`H�@ H�D$pH�D$hH�D$xHDŽ$�4HDŽ$�4DŽ$�����L������H�H�5H�81��@���G<��u���ff.�@AVAUA��ATA��U1�SH��@��H����D���H������ �1���������H�� ��H�҅�t9�0�1��������tNH�� H�Ѕ�uNE��tb���9�uXE��uk1�H�����H��H��� u�H�x������u�ǃ��C<��u��H�����E��u�D���[]A\A]A^��H�{��T����T�X��1�H���.��H�S��T����T�e���fDH�x���������ǃ��K<�������H���S�����������S<��t����ff.����H��1�H�8�6���fD��H���H�8������H�1ҾH�8���fD��H����H���f�AVI��AUATA��USH��0D���H�|$H�4$H�T$蔹��H�$H�T$H��������H��H)�H9��H�H�T$HT$H�D$H�T$H��?B~H9���H��H��@BH�D$H�T$I��Adž�H��� �V1���������VI�� �H��A����H��H�\$ �f.�1����������I�� H��A����H��螸��H�T$H�L$ H9���H�D$H�t$(��H)�H)�H�$H�D$yH��H@BH�$H�D$E��t{A�����uoH��L�����I��H��� �X���H�x�������X���Adž�A��A�F<���O����L�������=���H9��\���E���H��0[]A\A]A^�H�x�����������Adž�A��A�N<��u\�L���t���A�������H�D$HD$H�L$H�D$H=?B����H�D$?B����A�V<��t��N���A����B���f���H�H��H���H�8�B���f���Hc�H��H�|?�H��H��H���ff.����H��H�H�71�H�WH�8���H���fD��ATUSH��H���gH�/L�g�d$����t�C��t(1ҾL���i������u�H���[]A\�f�����T$f/�w�\к?BH��������f/f(�sN�1�H��f/�s:�H,�f���H*��\��Y�,�Hc�H��yH��@BH��f�1�L������9����H��1�[]A\�D��H�
H�9H��H��� t#1��������t#H�� H�Ѕ�u2ÐH�x������u�LJ�H�9�W<��t���G<��uǾ��ff.�@AWI��AVI��AUI��ATI��UD��SH��(H���6f.�H����H���O���I�� H��A��t<H��蔳��I�� H��A#���u�H��t�A�G<��u�1�L���x��fD�Ao��H��AM���M����=���H���[]A\A]A^A_�f�H��1�[]A\A]A^A_�ff.�@AVI��SH��H��H��H�KH�����������tDI���I��Adž�L�t$���H��L�t$I��I�~蹲���H��[A^�ff.����AWAVAUI��ATI��USH���=�H����H��H���H���L���H�D$H����H�{���H�CH;� tHǃ�H�� H�H���L��(H�����L��Hǃ��v����oEL�����±�����u	�E���L��A��H�T$L��H��H��E1�I�����H��L��[]A\A]A^A_�H�=1��H��=�H�=H�����AWAVAUI��ATUD��SH��8H�H�t$L�0A�FL����H����H�t$A��L��E1�������I�ą���H�|$A��I�~A�$I���.��I�VL;� tIdž�L�� H�I���M��(L�0���L��Idž������oD$L��A���i���A���tO��u5I��H�
�� tl1����…�tmI�� H��A����A�$H��8L��[]A\A]A^A_ËT$A�����u���L��H�������f�H�z�����Adž�A��A�V<��u��L�����|���f�A�F<��t��m�����A��A������E1��4���@��AWAVAUATUSH��HH�H�t$H��$@H�0H�|$H�D$`4H����VLH�T$`H�L$pH�
�H��$8H�BH�t$H�H1��H�H�HH�`H���H�H�t$@E1�H�
��H�H��H�L$H��H�$����H�|$H�T$��H�D$8�H�$�H�D$(H�y�\$4���H�$H�AH;� tHǁ�H�$H�
H�� H���H��X��H�$Hǃ�H��(H��H�D$ �խ��H�$�oD$HH�|$ ������H�$�����H��$8H�|$H���H���GL����H��� ��H�x��������H�T$H�� H�$H�Ѕ���H�D$(�\$4�H�D$8H��H[]A\A]A^A_����H�D$�PH�@H���u���H��$8H�L$H���H��AL����H�H���H�xH���1�������P����D$@��������H�D$ǀ��H<���E���H�|$�����1���f.�H�ЋR<�������H�����������H��H�5��P<��u�H��H����@H���ff.���AVH�5USH�ĀH�H�<$H�H�\$H�\$�H�D$�@t��u
�� �LH�<$�H���uH�D$H�H�@`H;�9H�L$`H�t$pH�L$ H�t$0H9D$�=H�\$H�l$E1�H�5����H�L$ H�|$�D$\���H��D$<���H�$H��ǃ�H����(���H�C��T����T��T;�8��H�H�H��H�D$(���H��H�L$(H��H�y�L���H�D$�l$\�@pi�@BHc�1�H�T$H�z`��H�L$H�� H�T$@H��#���
����n������L�t$1�H��A�~X���L��I�~(H�T$xH�T$0H�D$p�B����H�$H��[]A^�H�=����H�D$�D$\dH�����H��H�T$1�H�P`H�D$�hpH���J���L�t$(I�~蜼��I�FL9� tIdž�H�L$(H�H�� H�D$H;H�
�L�t$I��(H��舩��foD$`H��A���ҩ��H�D$I�~Idž�H�@`H��t	���7H�T$���u
�L$<�����T����TH9D$����tGH�D$H��H��� tz1���������H�T$H�� H�D$HH�Ѕ���H�D$H�@`�9���H�t$H�~(蓪��1������������H����H�x�����H�H�5H�81��H�H�5H�81��H�<$H�5�H�T$H���H��tH�PhH�T$H������� ��H�D$H�xH�D$H�@`����z<� ���H�|$��P�����H�D$ǀ��x<t����f���AUI��ATA��H��USH��H�H�5H�(�H��tNH��L��D��H�����H9�tH���[]A\A]�H�� H�Ѕ�tۋC<��u�1�H������H�H�5H�81����AWAVAUATUSH��H�H�t$ H�D$H�H�D$����0H�|$ H�
�H��1�H�5+���H��H�D$ �H�D$H�t$ H���H�D$H��H��� � H�x������� H�\$H�T$0H��$H�D$04H���H�t$@H�5H��$H�BH�p1��H�H�HH�`H���H�\$H�D$��H�D$�D$,H��$H�t$H���H�D$H���H�D$H��H��� ��1����������H�L$H�� H�D$ H�Ѕ����L$,����H�D$H��[]A\A]A^A_Ð1�����������H�D$ǀ��������H�D$�xH�@H�|$,����������@H�x�������Q���H�D$ǀ��5���f�H�D$�P<���<���1�H�����-���H�H�5H�81��H��T$,H�H���H�xH�+���ff.���H�S1�H��*�H�� H�Ѕ�u[�fD�C<��u�H��1�[��ff.���SH����H��[�f���H����H���f���AWAVAUATUSH��H�H�H�D$ H�D$ H�@H�D$(H�T$(H�D$ H9���H�|$ �H�D$ H�D$H�D$(H��(H(H�D$H�$H9�tMH�$H9L$t-H�$�H���H�$1�ǀH���(���H�$H�H�$H;D$u����tH��[]A\A]A^A_�H�t$ H�T$0H��$H�D$04H���H�L$@H�
�H�t$H��$H�BH�H1��H�H�HH�`H���H�|$ 1��s���H�D$ H��H��� tx1����������H�T$ H�D$ H�� H�Ѕ�uuH��$H�T$H����!�����H�T$�BH�BH��t�H��$H�T$H����z���H�x�����H�T$ H�D$(H�=H��1��H�|$ �<u���&��q���H�D$ ǀH�D$ �H�|$ �<t��E���D��H�����u��H���H�H�5H�81�����SH�������H��H�C1���H�[�@��ATI��UH��S��X~���?Iں���Hc�H��H���HB�H���H��[I�D$H�uH��]A\�f���SH��H�H��t��H�C[�f.���H�OH��t#�H�ύP~��?I�1���Hc�H���@�ff.�@��UH�VH��S��H���x����ۍC?��I��H�u�������?H�)ѺH��H	�H��[]�@��9>~/���G?��H�vI���������?H�)�H�����H��H!�����1�9>~3���G?��H�vI���������?H�)ѺH��H�������f�����ATI��U��?H��S�Z~Iظ��H���Hc�H��H���HB�H���H��H��[I�D$]H��A\����ATI��UH��S��X~�H���?Iں���Hc�H��H���HB�H���H��[H�EI�t$H��]A\�D��AVM��AUA��ATI��UH��SH��H��tH�V���Զ��H�[H��tH�UH��A�}�軶��H�mM��tI�T$L��A�}�衶��M�d$M��L��H��H��D��[]A\A]A^���AWH��I��AVM��AUATI��UH��SH��H	Љ|$�gH�����D$I�WL���x��3���H�f���l$ H�M��tC����f��f���Ao6�I*N�Y
�I*)�$�L��$��X��X��L$ M��t
H�|$PL���H��t
H�|$`H���M��t
H�|$pL����L�t$H�D$H��$�H�D$@H�D$PH�D$H��fD1����������H�� H�Ѕ���H�D$D�(�D$���A��t
A��U��M��t
H�t$HL���H��t
H�t$(H���M��t
H�t$0L���H�|$to�Ь���\$ f�ɹ�\��H,�f(��H*�H��HH�H��$���\��Y�,�H�H��HH�H��$�H�D$`H�D$(H�D$pH�D$0H�H�t$@E1�H��H�����L�0L���b�L�D$L��H��|$L���I�~�D$A��H�D$A��D#(菮��I�FL;� tIdž�L�� H�
I���L�1���I��(Idž�H��H�D$8�{���H�D$8�o�$�H��A��轛��A���u��$�A���H��H��� ����H�x����������ǃ��K<�������H���e��H�D$D�(�D$��������M��t
H�|$P�H��t
H�|$`�M��t
H�|$p��D$H�ĸ[]A\A]A^A_�DH��t�D$H�V�x��Ӳ��H��t�D$H�UH��x�軲��M�������g���D�S<���K����Q����M��tI�8I�p��D$�o���f���D$�[���ff.���AWAVAUI��ATA��U��SH��hH�H�H����H�H�D$0HiB�H�D$8���f��f��H��I*M�Y
�I*UL�8L�l$0�X��X��L$H�D$@D�d$(H�D$H�D$(f�l$,H�D$f�1�H�t$E1�L��f�L$.H�׮��H��1���H�|$1�L���A�ą�y��(I��ҫ��I�GL9� tILJ�L�� H�5I���M��(L�>�6���L��ILJ��Ø���o\$HL��A���
���A���u�D$@A���H��H��� ��1����������H�� H�Ѕ��DE������(��t	��U�M�����p����d$f�ɹ�\��H,�f(��H*�H��HH�H�
H�T$0�L�9�\��Y�H,�H��HH�H�D$8�r���f�H�x�������K���ǃ��S<���D����H�����E���7���f.��T$.�� ��1����������f��E�������E�H��h[]A\A]A^A_�H�L�8����������H��h[]A\A]A^A_�@�C<���m�������f��I���l$�n�����	������ff.��H�����D�x1����xH���H�H�5H�81��1��ff.�@����D��H��1�����H������SH�����[�DH�߾[�:���f.���AWH�51�AVAUI���ATUSH�������H�-I��L�%f�H�=t@L��辕��H�H��t$f�H�H��tH�����H�[H��u�L�����H�H�L���L���m���H�� H��t�L��豕��H����E�H�=f�T$�$�f�D$��D$I�E0tS�d�L�����t[����w�H��R@uU�������H��1�[]A\A]A^A_ÐH��u�������L������}踜���=譜��뫉�H�=�ff.�f������uÐ�������H���=�^���H�=1����u�H��É�H�H�5H�81�����ff.�������t���k���ff.���H��H�5���H�H��H�Ѓ��ff.���H�=�@�����USH��H��H��uE�1��H�H�پH�=���H���1��H��H)�[]H�D�DH���H��H�T$H�$�1��H�H��H��H�=���H����f.���S1�H��H�H��H�L$�H�t$H���H��[�ff.���ATI��UH��SH���H��H�[L��H��]A\����SH�����tH�5H�ߺ4[�H�H�5H�81��f���S��H�5��Xt[����S1�H�轴��H��H�H���H�x H���H��[�f.���ATH�5USH���H����H�5H��H���H�H�2H9p`t~H�����B=��I������H��H��L!�H	�H��H����tI��L!�H��H	�H�{ H��t[]A\�fDH���H���u[1�]A\Ð[�]A\�H�H�5H�81��H�H�5H�81��fD��SH�5H���H���H�[����H�H�Ѓ����SH�5H���H�C H���H�[����H�H�Ѓ�����H��E1�1�����ff.�@��ATI��UH��SH��H���L��H��H��E1�[H��]A\�Ͽ��ff.�@��H��A�1�鬿��ff.����ATI��UH��SH��H���L��H��H��A�[H��]A\�l���ff.����AU�H�=ATUSH��H�H�(�H����	H�=H��H����H�=H��H����H�=H��H������H�d���H�5H�H�;�H�;�����H�����H�5�H�;�����H�����H�5�H�;1�H�\��H�5�H�;1�H���H�5�H�;1�H�H�5�H�;�H�����H�5�H�;1�H�i���H�5�H�;1�H�A�H�5�H�;1�H�H�5�H�;1�H�A���H�5�H�;�H�V���H�5�H�;�H���H�5�H�;�����H��H�5�H�;�����H�����H�5�H�;�����H�z���H�5�H�;�����H���H�5�H�;�����H�����H�5�H�;1�H�L���H�5�L�%H�;1�H�5L���H�;1�L��H�5�H�;1�L��H�5�H�;1�H�H�5�H�;1�H�H�5�H�;�H����H�5�H�;�H����H�5�H�;�H�����H�5�H�;1�H����H�5�H�;1�H����H�5�H�;�H�����H�5�H�;1�H����H�5�H�;�H�����H�5�H�;�H�/���H�5�H�;1�H�ז��H�5�H�;�H�L���H�5�H�;1�H�$���H�5�H�;1�H�̐��H�5�H�;1�H�����H�5�H�;�H�9���H�5�H�;1�H��H�5�H�;1�H�H�5�H�;�����H����H�5�H�;�����H��H�5�H�;1�H���H�5�H��H�H�0�L�%H�=I�4$�H�5v���H��H���1�H����H��H�5�1�H�����H��H�5�1�H�����H��H�5��H�w���H��H�5�L�mH���H�5H��I��@H��H����I�4$H�=�H�5����H��H��H�=1�H�����H�5�H�1�H�=H�5�H�1�H�=H�5�H�1�H�=H�5�H�1�H�=H�5�H�=�����H�7���H�5�H�=1�H�����H�5�H�=1�H�H�5��H�=�H�=H�H�H�0�H�H�}H����H�}�I���H�EH���蹆��H��(譆��H��P豪��1��1�DžH���HDž H������H��[]A\A]��H��[]A\A]顡�����H���=�H����H�����ff.�@��H�H�H�� �f.�H�AVI��AUATUSH�(L�mI��L��M��(�Ѯ��L���9���I��(L9�tDH��H��A��H�L9�u�M��0M��(L�eI��0L�eH�(I��0IDž8ADžT�H�����u
[]A\A]A^�@H���[1�]H�5��A\H��A]A^�ff.�@��H��H�=��������H�H�Hǀ�H���ff.���H�=%���������H���H�H�� H�=����D��H�H�=����H�Hǀ �ff.���AUI��ATI��USH���H�H��H�H��H�H�H�0�H��H���H��L��L��H�H��[]A\A]�ff.�@��AVUSH��H��|$L�0�t$I��L�4$���H��L�4$I��I�~I��(�Ѕ��H���H����t$�|$�H��I��P���
���H��肅��I�~�ٗ��I�VL9� tIdž�H�$H�H�� H���x	H��[]A^�1������������������GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignpthread_mutex_initpthread_mutex_lockpthread_cond_signalpthread_mutex_unlockpthread_cond_destroypthread_mutex_destroypthread_cond_waitpthread_cond_timedwaitnative_cond_broadcastthread localssleepabortingrununknown!%sclock_gettime()unsupported clockid %ld01unknown mask signatureuninitialized threadcan't alloc threaddead>#<%li:%p%c%li %s%spthread_cond_initpthread_attr_init(&attr)pthread_attr_destroy(&attr)can't create Thread: %smust be called with a blockalready initialized threadinvalid keeping_mutexes: %sexitkilled threaddeadlock; recursive lockingblock is needed.to_hashHashclosed streamruby-timer-thrthread_timer: selectwaiting count overflowwaiting count underflowneverimmediateon_blockinglocalsnewstartforkmaincurrentstopkillpasslistabort_on_exceptionabort_on_exception=handle_interruptpending_interrupt?initializeraisejoinvalueterminatewakeup[][]=key?keysprioritypriority=statusthread_variable_getthread_variable_setthread_variablesthread_variable?alive?stop?safe_levelgroupbacktracebacktrace_locationsinspectstream closedThreadGroupencloseenclosed?addDefaultMutexlocked?try_locklockunlocksynchronizeowned?__recursive_key__ThreadErrorthread_shieldmutexthgroupcan't move to the frozen thread groupcan't move to the enclosed thread groupcan't move from the frozen thread groupcan't move from the enclosed thread groupconsume_communication_pipe: read
rb_thread_wakeup_timer_thread - writeAttempt to unlock a mutex which is locked by another threadAttempt to unlock a mutex which is not lockedTarget thread must not be current threadTarget thread must not be main thread[FATAL] failed to allocate memory
native_stop_timer_thread - close(ttp[0])native_stop_timer_thread - close(ttp[1])setup_communication_pipe: Failed to create communication pipe for timer thread[FATAL] Failed to initialize pthread attr: %s
rb_thread_create_timer_thread: Timer thread was already created
[FATAL] Failed to create timer thread: %s
class or module required for rescue clauseuninitialized thread - check `%s#initialize'sleeper must not be more than vm_living_thread_num(vm)No live threads left. Deadlock?can't start a new thread (frozen ThreadGroup)pthread_attr_setstacksize(&attr, stack_size)pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED)pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED)already initialized thread - %salready initialized thread - %s:%dinvalid inspect_tbl pair_list for %+li in %+lithread_start_func_2 must not be used for main threadthread_start_func_2: locking_mutex must not be set (%p:%lx)[BUG] rb_thread_call_with_gvl() is called by non-ruby thread
rb_thread_call_with_gvl: called by a thread which has GVL.can't be called from trap contextrb_thread_terminate_all: called by child thread (%p, %p)stopping only thread
	note: use sleep to stop forevernative_thread_join() failed (%d)����������&�.>���ư>ꌠ9Y>)F�C����.Ae��AGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0kD#X'l*�����"DO
A8��B�E�D �A(�D�J
(A ABBH$(�A�C
B�K��
IP DM
Al)A�Y
A�
� DM
A0�LA�E�J Z
DAIMDA� DM
A DM
A($fB�D�H �}
DBO$P`A�L {
AGNAx DM
A(�?B�D�D �c
ABA�,Hc�'HX4��F�K�C �c
ABFEAB(/E�e4DE�A�J �
DAAD
FAA|+Hb�E�Y�"HT�+E�e�)HZ�:Hd
DI.He4%HWL)A�Y
Ah&E�\�HQ,��N�A�I V
FAK`��(�eF�A�A �YAB4�sF�B�D �A(�D0X(D ABB(0IA�C�K k
AAA\5A�l
A$xIE�D�D vDA$�BE�N�D hAA�	�E�V8��B�B�A �D(�G0T
(A ABBF4	H	(\gE�D�D0F
AAK(�mE�D�D0Z
AAG$�=E�A�D mDA,�dF�A�A �E
DBE$5E�D�D [GA 4�Ht
L_
I^0XjA�D�G0g
CAIeCA(�XA�C�D S
AAC8��B�A�A �]
ABD\
ABI8��B�D�A �m
ABIU
ABH0KE�j
ALKE�p
E(h�A�D�G@U
AAE�sD0r
Jn4�UA�A�D`�
AAFE
FAD�-E�g,	dF�D�F �D0K AAB$8	+A�D�K QDA `	�A�MP'
AJ�	;c �	�N�t
Fx��	�E�s
H�	QG�{��	WA�M

AA�((
�E�D�D i
DAAT
h
<|
�D�H�O �D(�N0�C
(A BBBI�
�A�p
O(�
A�A�D`�
AAA �L�\
HH
HT(�R�B�E �A(�I0�D
�(G� G�B�B�GZ�(A� B�B�B�L�@F�E�A �A(�I@�
(A ABBD\
(F ABBA�8��F�E�G �D(�D0M
(D ABBA| �W�B�B �A(�D0�D@j
0A(A BBBJ�0A(A BBBD�����H@�����K
0A(A BBBA�/H�]B�B�E �E(�D0�A8�DP�
8D0A(B BBBH
(
cA�D�D0I
AAA$@
SE�N�D0yAALh
�B�B�B �B(�A0�A8�D�
8A0A(B BBBD�
E�N(�
AE�D�G �
IAJHA�F(_E�A�G |
HAFH[\aE�WLx�F�A�A �D@Z
 AABF�
 AABDa AAB�(��E�D�G0K
AAC-	0AE�wL	`	t	�	��(�QE�D�D p
AAA�$3E�D�G SJA,HND,H^\7H_
IF|� E�Z��@H w�NE�S tA�QE�$48�M�A�A �h
ABFACBpE�W<�wE�D�D t
DAJN
DAEIDA�2E�T
A�L��B�B�B �B(�A0�A8�G��
8A0A(B BBBIL	`t	0�mE�G v
FHI
AFKA�6E�G hA\��F�B�D �D(�G@i
(D ABBGZ
(D ABBEK
(D ABBD$<,E�D�J IJAd4Lx�B�B�B �B(�A0�A8�G�D
8A0A(B BBBA�HE�B0��B�A�A �G0
 AABEL�B�E�I �E(�A0�A8�G��
8A0A(B BBBAh<|�B�B�E �D(�E0��
(A BBBI����HN@�B�E�B �D(�A0�D`�
0A(A BBBDTh$KN�*Ha<��F�A�A �G0E
 FABC� CAB��\��B�E�E �E(�D0�D8�K@�
8F0A(B BBBJD8C0A(B BBB$LtB�D�Q0YABHt9F�B�B �E(�D0�A8�DP�
8D0A(B BBBAH��B�B�B �E(�A0�D8�Dp
8D0A(B BBBA L4�F�B�B �B(�A0�A8�G��
8A0A(B BBBH�5H_
ID4�WF�H�A �D��
 AABD8��F�E�G �A(�D0z
(F ABBDL�F�B�B �B(�A0�A8�G��
8A0A(B BBBBhBL�]
GM�E�Q�HNH�KF�B�B �B(�A0�A8�G��
8A0A(B BBBD8HW
A$,E�f(@WF�D�D �uMBl&E�`�1$�LE�H�F vAA�8�>(�XH�D�G �uFE([F�D�D �yMB8D�F�E�E �D(�D0�\(A BBBL�"F�H�E �B(�D0�D8�G�d
8A0A(B BBBFd�$F�B�B �E(�D0�C8�D��
8A0A(B BBBDY
8A0A(B BBBE8AD]
AThHP�&E�M
FIH��F�K�B �J(�A0�A8�DP/
8C0A(B BBBB�mgk
A%0%HVH(\�E�A�G0{
DAK�2E�P [A(�/F�D�D �SGB�>E�\
E�E�R6E�pD(�F�H�A ��
ABGQ
CBBA
FBAp0E�[�8E�c�(�1F�D�D �XDB�(�4F�D�D �[DBH(�F�N�A �A(�D0h
(A ABBHD(A ABBt!HU�H��I�E�B �A(�A0��
(A BBBEI(C IEB�2He+,%4@qF�E�D �A(�D0R(A ABB0x�F�A�A �D0�
 AABA	")?#Yt$��%��&�-7\{k�{����#���C�']��
��*�
�!"!?BZ0hB�XHP�X�v�`�v�A�"Y�r_����_�@�`��@�`@ +`M�m`)������
���(� <�Wp�L|�0� �0�P0 /P\��Pf��� ��`� @)  :@_�@?�������	`H$	�D	ib	i�	��	��	��	��	�H�	�
�4
�+G
�f
�
��
�
2�
"�
2k:@+Rku��p)������:��	9�.K	m5	�	%�5	�i	�@	)�i	
�	8
p	&G
�	]
�	N�	q
�	�
f
�
�	��
f
�
�
�
S6�
sCSm��`I�	������5��98�IG�U9t��@B������	���.�KU
f��tU
�i
�`
	�i
y
8p
	Ny
m�
��
g��
�]��
m�	��]"�C`=W�}��d��E5E9�WP�h��Z��j�	0�Z*�X`Xy���d����d+"p�5+T{q{����K���v��v7�bJ�sN�iUHYU� N��U���`-�����d�@+a+u+���0������;+	�9	�I	�S�u����������:Y	��	`(�	�H�w�Q���W�WW3�U`Aj��S�S�w�`�w
�+�<�`5����5���@��N���� m��������6:��I6v� �@@�� �� � ;� WL!q� �~L!��"�P!��	��"#Z�"/�#�m%�#] m%0 �%O p%a �%� �%� �%c� �%!S&!&S)!S&K!)k!`&�~!�AH�!)�!;)�! )�!;)�!�*"@)A'"�*?"�*U"�*H^"�*�"?+�"�*_�"?+�"�+�"@+[#�+0#,P#	Hg#,�#�,�#�,�#�,�#�,"$�-G$�-g$�-�$�-�$�-�$�-�$1.%1.:%I.g%I.�%Y.�%Y.�%i.
&i.8&y.a&y.�&�.�&�.�&�.�&�.6'�.k'�.�'/�'/�'S/�'S/(z/I(z/n(�/�(�/�(�/�(�/
)0?)0s) 0�) 0�);0*;0:*�0a*�0�*�0�*�0�*!1+!1(+E1M+E1v+e1�+e1�+�1�+�1,2!,2G,�2k,�2�,�2�,�2�,�2�,�2-�7�Z3�#-	1-�7Q-�7o-�7	�-�7�-�7�-�7�-�7�-�7		.�7-.m8O.m8m.�8�.p86�.�8�.�9�.�9�.�9/�9,'/�9F/:c/:�/�A�/:��/�A�/B�/B(0�CO0 B�i0�C�0�H�0�C��0�H,1�HY1�Hv1tJ�V�H��1tJ�1�J�1�J2�J'2�Jc2�J�2�J�2�J�2�J�2�J3�M63K�D3�Mf3�M�3�M�3�M�3�M�3N4�M*4N54OT4Ox4�O�4�O�4�P�4�O��4�P5Q=5�PtS5Qz5YR�5YR�5
ThW`R��5
T6T16T[6,T�6,T�6�V�6�V7%W/7%WL7�[g7�[�7-\�7�[��7-\�7�^80\�#8�^E8"_e8"_�8G_�8G_�8g_�8P_�8g_
9�a/9�aM9�ai9�a�9,b�9,b�9�b�9�b�9�b	:�b#:�b;:�bT:Lck:Lc�:�c�:�c�:�c�:�c�:(d;(d;�d1;�dM;eg;e�;2i�;2i�;dl�;dl<�l9<plAN<�lo<�l�<�l�<�l�<�l�<m&=mB=�n\=k=�n�==o�==o�=Eo>EoA>uok>uo�>�o�>�o�>�o�>�o�>Vp?Vp2?�p�Y`p2K?�po?�p�?�p�?q�?�p>�?q@(q6@(qZ@fq|@H�@fq�@jr�@jrA�r*A�rRA�rxA�r�A�r�A�r�A1sB1s-BTsRBTs�B�s�B�s�B?{�B?{Ca{&Ca{FC�{dC�{�Ca|�C�{��Ca|�C�|D�|8D�|bD�|�D�|�D�|�D}�D}E�}$E�}=Eh~#$%&"TEYE^E&cE:hEOmEdrEzwE�|E�EP�E(�Ex�E��E��E��E��E��E��E��E��E��E��E8�E��E��E��E�E�E�Eh�E�F
FF�F)FH"F�(F.F�4F:F�@F@FF>LFpRF�XF�^FYdFXjFVpFjvFQ|Fc�Fp�F��F��FX�F(�F��F��F��F��F��F��F��F�F"�F'�F �FX�F��F�F �F(GG�GPG5GbGj$GQ*Gx0G�6G0<GoBG}HG�NG�TG�ZG�`G�fG�lG�rG�xG�~G��G��G�G�G�G�G�G�G#�G6�GJ�G[�Gn�Gy�G�G��G��G��G��G�H�H�H�H�!H�(H�/H�6H�=H�DHKHRHYH(`H.gH8nHLuHT|Hb�Hn�Hv�H��H��H��H��H��H��H��H��H��H��H��H�H�HI#I

 !'()4IJI^IqI~I�I�I�I�I�I�I�I�J&J;JQJ_JlJ~J�J�,�J�J�J�'�J���Jp/KKK5KAKSKpK�K�Kp
e�K�Z�K�K�K�K�K�K�KLL$L4LILjL�L�L�L�L�L�L�L�L�L�L�MM0KMM#M3M@MJMmMzM�M�M�M>X�M�M���M�M���M�M�M�M�M�SN!N;NJNSN[NiNuN�N�N�N�N�N�N�N�NO
OO&O7OCOYOsO�O�O�O�O�O�O�OPP&P�+a9PLP`PrP,��P�P�P�,�P-��P�--�P�-	�P�-A
Q@.	-QP.	JQ`.	dQp.	�Q�.�Q�.�Q�.Q�Q/�Q /3RR`/+R?R�/,UR�/7kRR�/�R0 �R 0�R@0@SS�0N/S>S�0QYSfS01~SP1�Sp1��S2�S 2w�S�22�S�2�STT'T8TGTTT�7cT8mxT�8��T�T�T�T�T�94�T�T�TUU
UU&U:ULUjU�U�U�U�U�U�U�U�U	VV#V6V@VNV[VfV�H�V�J�V�J�V�J�V�M�V�M$WW O�*W Q9BWT^W TyW0T��W�V5�W0WW�W�W�W�W�^B�W0_Xp_KX�a8-Xb,8XEX0bWUX�b&`X�b1kXcLuXPc8X�c>�X�cX�X0d[�X�d��X�Xe"�X@i$�X�X�X�l�X�lY�l&�X+Y�nmGYTY@oqYPo%�Y�o%�Y�Y�o�Y��Y�o�ZJ�Y�Y�p/ZqZ0q6+Z�<Zpq�RZpr0kZ�r8�Z�r�Zs1�Z@s�Z`s4�Z�s��Z�Z[)[J[U[e[z[�[�[�[@{!�[p{�[�[p|2�[\�|"\�|+3\E\�|%X\m\ }q�\�}��M.annobin_thread.c.annobin_thread.c_end.annobin_thread.c.hot.annobin_thread.c_end.hot.annobin_thread.c.unlikely.annobin_thread.c_end.unlikely.annobin_thread.c.startup.annobin_thread.c_end.startup.annobin_thread.c.exit.annobin_thread.c_end.exit.annobin_null_func.start.annobin_null_func.endnull_func.annobin_remove_from_join_list.start.annobin_remove_from_join_list.endremove_from_join_list.annobin_rb_thread_s_abort_exc.start.annobin_rb_thread_s_abort_exc.endrb_thread_s_abort_exc.annobin_rb_thread_s_abort_exc_set.start.annobin_rb_thread_s_abort_exc_set.endrb_thread_s_abort_exc_set.annobin_terminate_atfork_before_exec_i.start.annobin_terminate_atfork_before_exec_i.endterminate_atfork_before_exec_i.annobin_thgroup_memsize.start.annobin_thgroup_memsize.endthgroup_memsize.annobin_mutex_memsize.start.annobin_mutex_memsize.endmutex_memsize.annobin_mutex_initialize.start.annobin_mutex_initialize.end.annobin_exec_recursive_i.start.annobin_exec_recursive_i.endexec_recursive_i.annobin_native_mutex_initialize.start.annobin_native_mutex_initialize.endnative_mutex_initialize.annobin_get_stack.start.annobin_get_stack.endget_stack.annobin_reserve_stack.start.annobin_reserve_stack.endreserve_stack.annobin_native_mutex_lock.start.annobin_native_mutex_lock.endnative_mutex_lock.annobin_native_cond_signal.start.annobin_native_cond_signal.endnative_cond_signal.annobin_ubf_pthread_cond_signal.start.annobin_ubf_pthread_cond_signal.endubf_pthread_cond_signal.annobin_native_mutex_unlock.start.annobin_native_mutex_unlock.endnative_mutex_unlock.annobin_gvl_release.start.annobin_gvl_release.endgvl_release.annobin_native_cond_destroy.start.annobin_native_cond_destroy.endnative_cond_destroy.annobin_native_mutex_destroy.start.annobin_native_mutex_destroy.endnative_mutex_destroy.annobin_rb_threadptr_interrupt_common.start.annobin_rb_threadptr_interrupt_common.endrb_threadptr_interrupt_common.annobin_getclockofday.start.annobin_getclockofday.endgetclockofday.annobin_native_cond_wait.start.annobin_native_cond_wait.endnative_cond_wait.annobin_native_cond_timedwait.start.annobin_native_cond_timedwait.endnative_cond_timedwait.annobin_rb_thread_group.start.annobin_rb_thread_group.end.annobin_rb_mutex_locked_p.start.annobin_rb_mutex_locked_p.endmutex_data_type.annobin_rb_mutex_trylock.start.annobin_rb_mutex_trylock.end.annobin_rb_mutex_owned_p.start.annobin_rb_mutex_owned_p.end.annobin_thgroup_add.start.annobin_thgroup_add.endthgroup_addthgroup_data_type.annobin_thgroup_enclosed_p.start.annobin_thgroup_enclosed_p.endthgroup_enclosed_p.annobin_thgroup_enclose.start.annobin_thgroup_enclose.endthgroup_enclose.annobin_rb_thread_safe_level.start.annobin_rb_thread_safe_level.endrb_thread_safe_level.annobin_rb_thread_abort_exc_set.start.annobin_rb_thread_abort_exc_set.endrb_thread_abort_exc_set.annobin_rb_thread_abort_exc.start.annobin_rb_thread_abort_exc.endrb_thread_abort_exc.annobin_rb_thread_stop_p.start.annobin_rb_thread_stop_p.endrb_thread_stop_p.annobin_rb_thread_alive_p.start.annobin_rb_thread_alive_p.endrb_thread_alive_p.annobin_rb_thread_priority.start.annobin_rb_thread_priority.endrb_thread_priority.annobin_native_cond_broadcast.start.annobin_native_cond_broadcast.endnative_cond_broadcast.annobin_lock_interrupt.start.annobin_lock_interrupt.endlock_interrupt.annobin_keys_i.start.annobin_keys_i.end.annobin_rb_threadptr_raise.start.annobin_rb_threadptr_raise.endrb_threadptr_raise.annobin_rb_thread_list.start.annobin_rb_thread_list.end.annobin_thgroup_list.start.annobin_thgroup_list.endthgroup_list.annobin_consume_communication_pipe.start.annobin_consume_communication_pipe.endconsume_communication_pipebuff.15835.annobin_set_nonblock.start.annobin_set_nonblock.endset_nonblock.annobin_rb_thread_keys.start.annobin_rb_thread_keys.endrb_thread_keysthread_keys_i.annobin_thgroup_s_alloc.start.annobin_thgroup_s_alloc.endthgroup_s_alloc.annobin_thread_shield_mark.start.annobin_thread_shield_mark.endthread_shield_mark.annobin_thread_keys_i.start.annobin_thread_keys_i.end.annobin_recursive_pop.start.annobin_recursive_pop.endrecursive_pop.annobin_rb_thread_backtrace_locations_m.start.annobin_rb_thread_backtrace_locations_m.endrb_thread_backtrace_locations_m.annobin_rb_thread_backtrace_m.start.annobin_rb_thread_backtrace_m.endrb_thread_backtrace_m.annobin_rb_thread_key_p.start.annobin_rb_thread_key_p.endrb_thread_key_p.annobin_rb_thread_variable_p.start.annobin_rb_thread_variable_p.endrb_thread_variable_pid_locals.annobin_rb_thread_variables.start.annobin_rb_thread_variables.endrb_thread_variables.annobin_rb_thread_variable_set.start.annobin_rb_thread_variable_set.endrb_thread_variable_set.annobin_rb_thread_variable_get.start.annobin_rb_thread_variable_get.endrb_thread_variable_get.annobin_rb_thread_status.start.annobin_rb_thread_status.endrb_thread_status.annobin_native_thread_init_stack.isra.13.start.annobin_native_thread_init_stack.isra.13.endnative_thread_init_stack.isra.13native_main_thread.annobin_rb_thread_wakeup_timer_thread_fd.start.annobin_rb_thread_wakeup_timer_thread_fd.endrb_thread_wakeup_timer_thread_fdtimer_thread_pipe.annobin_gvl_acquire_common.start.annobin_gvl_acquire_common.endgvl_acquire_common.annobin_rb_mutex_unlock_th.start.annobin_rb_mutex_unlock_th.endrb_mutex_unlock_th.annobin_rb_mutex_unlock.start.annobin_rb_mutex_unlock.end.annobin_mutex_free.start.annobin_mutex_free.endmutex_free.annobin_native_cond_timeout.isra.19.start.annobin_native_cond_timeout.isra.19.endnative_cond_timeout.isra.19.annobin_timeofday.start.annobin_timeofday.end.annobin_thread_join.start.annobin_thread_join.endthread_join_sleep.annobin_thread_value.start.annobin_thread_value.endthread_value.annobin_thread_join_m.start.annobin_thread_join_m.endthread_join_m.annobin_gvl_acquire.isra.21.start.annobin_gvl_acquire.isra.21.endgvl_acquire.isra.21.annobin_native_sleep.start.annobin_native_sleep.endnative_sleep.annobin_handle_interrupt_arg_check_i.start.annobin_handle_interrupt_arg_check_i.endhandle_interrupt_arg_check_isym_immediatesym_on_blockingsym_never.annobin_terminate_atfork_i.start.annobin_terminate_atfork_i.endterminate_atfork_i.annobin_ubf_select.start.annobin_ubf_select.endubf_selectsignal_thread_list_locksignal_thread_list_anchor.annobin_remove_signal_thread_list.isra.30.start.annobin_remove_signal_thread_list.isra.30.endremove_signal_thread_list.isra.30.annobin_rb_threadptr_tag_jump.isra.31.start.annobin_rb_threadptr_tag_jump.isra.31.endrb_threadptr_tag_jump.isra.31.annobin_rb_threadptr_to_kill.start.annobin_rb_threadptr_to_kill.endrb_threadptr_to_kill.annobin_rb_thread_kill.start.annobin_rb_thread_kill.end.annobin_rb_thread_exit.start.annobin_rb_thread_exit.endrb_thread_exit.annobin_rb_thread_s_kill.start.annobin_rb_thread_s_kill.endrb_thread_s_kill.annobin_rb_fd_resize.isra.35.start.annobin_rb_fd_resize.isra.35.endrb_fd_resize.isra.35.annobin_setup_communication_pipe_internal.start.annobin_setup_communication_pipe_internal.endsetup_communication_pipe_internal.annobin_rb_thread_create_timer_thread.part.37.start.annobin_rb_thread_create_timer_thread.part.37.endrb_thread_create_timer_thread.part.37thread_timer.annobin_update_coverage.start.annobin_update_coverage.endupdate_coverage.annobin_recursive_push.start.annobin_recursive_push.endrecursive_push.annobin_rb_thread_pending_interrupt_p.start.annobin_rb_thread_pending_interrupt_p.endrb_thread_pending_interrupt_p.annobin_rb_thread_s_pending_interrupt_p.start.annobin_rb_thread_s_pending_interrupt_p.endrb_thread_s_pending_interrupt_p.annobin_thread_s_new.start.annobin_thread_s_new.endthread_s_new.annobin_rb_check_deadlock.start.annobin_rb_check_deadlock.endrb_check_deadlockpatrol_thread.annobin_rb_threadptr_pending_interrupt_active_p.part.45.start.annobin_rb_threadptr_pending_interrupt_active_p.part.45.endrb_threadptr_pending_interrupt_active_p.part.45.annobin_rb_thread_inspect_msg.constprop.54.start.annobin_rb_thread_inspect_msg.constprop.54.endrb_thread_inspect_msg.constprop.54.annobin_rb_thread_inspect.start.annobin_rb_thread_inspect.endrb_thread_inspect.annobin_native_cond_initialize.constprop.55.start.annobin_native_cond_initialize.constprop.55.endnative_cond_initialize.constprop.55.annobin_mutex_alloc.start.annobin_mutex_alloc.endmutex_alloc.annobin_thread_create_core.start.annobin_thread_create_core.endthread_create_corethread_start_func_1.annobin_thread_start.start.annobin_thread_start.endthread_start.annobin_thread_initialize.start.annobin_thread_initialize.endthread_initialize.annobin_gvl_init.start.annobin_gvl_init.endgvl_init.annobin_rb_thread_priority_set.start.annobin_rb_thread_priority_set.endrb_thread_priority_set.annobin_clear_coverage_i.start.annobin_clear_coverage_i.endclear_coverage_i.annobin_Init_native_thread.start.annobin_Init_native_thread.endruby_native_thread_key.annobin_ruby_init_stack.start.annobin_ruby_init_stack.end.annobin_rb_thread_wakeup_timer_thread.start.annobin_rb_thread_wakeup_timer_thread.end.annobin_ruby_stack_overflowed_p.start.annobin_ruby_stack_overflowed_p.end.annobin_rb_reserved_fd_p.start.annobin_rb_reserved_fd_p.end.annobin_rb_nativethread_self.start.annobin_rb_nativethread_self.end.annobin_rb_vm_gvl_destroy.start.annobin_rb_vm_gvl_destroy.end.annobin_rb_nativethread_lock_initialize.start.annobin_rb_nativethread_lock_initialize.end.annobin_rb_nativethread_lock_destroy.start.annobin_rb_nativethread_lock_destroy.end.annobin_rb_nativethread_lock_lock.start.annobin_rb_nativethread_lock_lock.end.annobin_rb_nativethread_lock_unlock.start.annobin_rb_nativethread_lock_unlock.end.annobin_rb_threadptr_interrupt.start.annobin_rb_threadptr_interrupt.end.annobin_rb_threadptr_trap_interrupt.start.annobin_rb_threadptr_trap_interrupt.end.annobin_rb_threadptr_unlock_all_locking_mutexes.start.annobin_rb_threadptr_unlock_all_locking_mutexes.end.annobin_ruby_thread_init_stack.start.annobin_ruby_thread_init_stack.end.annobin_rb_thread_create.start.annobin_rb_thread_create.end.annobin_rb_thread_check_trap_pending.start.annobin_rb_thread_check_trap_pending.end.annobin_rb_thread_interrupted.start.annobin_rb_thread_interrupted.end.annobin_ruby_thread_has_gvl_p.start.annobin_ruby_thread_has_gvl_p.end.annobin_rb_threadptr_pending_interrupt_clear.start.annobin_rb_threadptr_pending_interrupt_clear.end.annobin_rb_threadptr_pending_interrupt_enque.start.annobin_rb_threadptr_pending_interrupt_enque.end.annobin_rb_threadptr_pending_interrupt_active_p.start.annobin_rb_threadptr_pending_interrupt_active_p.end.annobin_rb_threadptr_signal_raise.start.annobin_rb_threadptr_signal_raise.end.annobin_rb_threadptr_signal_exit.start.annobin_rb_threadptr_signal_exit.end.annobin_ruby_thread_stack_overflow.start.annobin_ruby_thread_stack_overflow.end.annobin_rb_threadptr_set_raised.start.annobin_rb_threadptr_set_raised.end.annobin_rb_threadptr_reset_raised.start.annobin_rb_threadptr_reset_raised.end.annobin_rb_notify_fd_close.start.annobin_rb_notify_fd_close.end.annobin_rb_thread_fd_close.start.annobin_rb_thread_fd_close.end.annobin_rb_thread_wakeup_alive.start.annobin_rb_thread_wakeup_alive.end.annobin_rb_thread_wakeup.start.annobin_rb_thread_wakeup.end.annobin_rb_thread_current.start.annobin_rb_thread_current.end.annobin_exec_recursive.start.annobin_exec_recursive.endrecursive_key.annobin_thread_s_current.start.annobin_thread_s_current.endthread_s_current.annobin_rb_thread_main.start.annobin_rb_thread_main.end.annobin_rb_thread_s_main.start.annobin_rb_thread_s_main.endrb_thread_s_main.annobin_rb_thread_local_aref.start.annobin_rb_thread_local_aref.end.annobin_rb_thread_aref.start.annobin_rb_thread_aref.endrb_thread_aref.annobin_rb_thread_local_aset.start.annobin_rb_thread_local_aset.end.annobin_rb_thread_aset.start.annobin_rb_thread_aset.endrb_thread_aset.annobin_rb_thread_alone.start.annobin_rb_thread_alone.end.annobin_thread_start_func_2.start.annobin_thread_start_func_2.endthread_start_func_2.annobin_thread_start_func_1.start.annobin_thread_start_func_1.end.annobin_rb_thread_schedule_limits.start.annobin_rb_thread_schedule_limits.endrb_thread_schedule_limits.annobin_rb_threadptr_execute_interrupts.part.47.start.annobin_rb_threadptr_execute_interrupts.part.47.endrb_threadptr_execute_interrupts.part.47.annobin_rb_threadptr_execute_interrupts.start.annobin_rb_threadptr_execute_interrupts.end.annobin_sleep_forever.start.annobin_sleep_forever.end.annobin_rb_thread_sleep_forever.start.annobin_rb_thread_sleep_forever.end.annobin_rb_thread_sleep_deadly.start.annobin_rb_thread_sleep_deadly.end.annobin_rb_thread_sleep_deadly_allow_spurious_wakeup.start.annobin_rb_thread_sleep_deadly_allow_spurious_wakeup.end.annobin_rb_mutex_sleep_forever.start.annobin_rb_mutex_sleep_forever.endrb_mutex_sleep_forever.annobin_sleep_timeval.start.annobin_sleep_timeval.endsleep_timeval.annobin_rb_thread_wait_for.start.annobin_rb_thread_wait_for.end.annobin_rb_thread_sleep.start.annobin_rb_thread_sleep.end.annobin_rb_mutex_wait_for.start.annobin_rb_mutex_wait_for.endrb_mutex_wait_for.annobin_thread_join_sleep.start.annobin_thread_join_sleep.end.annobin_rb_thread_check_ints.start.annobin_rb_thread_check_ints.end.annobin_set_unblock_function.start.annobin_set_unblock_function.endset_unblock_function.annobin_blocking_region_begin.start.annobin_blocking_region_begin.endblocking_region_begin.annobin_rb_thread_call_with_gvl.start.annobin_rb_thread_call_with_gvl.end.annobin_call_without_gvl.start.annobin_call_without_gvl.end.annobin_rb_thread_call_without_gvl2.start.annobin_rb_thread_call_without_gvl2.end.annobin_rb_thread_call_without_gvl.start.annobin_rb_thread_call_without_gvl.end.annobin_rb_thread_io_blocking_region.start.annobin_rb_thread_io_blocking_region.end.annobin_rb_thread_execute_interrupts.start.annobin_rb_thread_execute_interrupts.end.annobin_rb_mutex_lock.start.annobin_rb_mutex_lock.end.annobin_thread_raise_m.start.annobin_thread_raise_m.endthread_raise_m.annobin_rb_thread_s_handle_interrupt.start.annobin_rb_thread_s_handle_interrupt.endrb_thread_s_handle_interrupt.annobin_rb_thread_schedule.start.annobin_rb_thread_schedule.end.annobin_rb_thread_run.start.annobin_rb_thread_run.end.annobin_thread_s_pass.start.annobin_thread_s_pass.endthread_s_pass.annobin_rb_thread_terminate_all.start.annobin_rb_thread_terminate_all.end.annobin_rb_thread_stop.start.annobin_rb_thread_stop.end.annobin_rb_fd_init.start.annobin_rb_fd_init.end.annobin_rb_fd_init_copy.start.annobin_rb_fd_init_copy.end.annobin_rb_fd_term.start.annobin_rb_fd_term.end.annobin_rb_fd_zero.start.annobin_rb_fd_zero.end.annobin_rb_fd_set.start.annobin_rb_fd_set.end.annobin_rb_fd_clr.start.annobin_rb_fd_clr.end.annobin_rb_fd_isset.start.annobin_rb_fd_isset.end.annobin_rb_fd_copy.start.annobin_rb_fd_copy.end.annobin_rb_fd_dup.start.annobin_rb_fd_dup.end.annobin_rb_fd_select.start.annobin_rb_fd_select.end.annobin_rb_thread_fd_select.start.annobin_rb_thread_fd_select.end.annobin_rb_wait_for_single_fd.start.annobin_rb_wait_for_single_fd.end.annobin_rb_thread_wait_fd_rw.start.annobin_rb_thread_wait_fd_rw.endrb_thread_wait_fd_rw.annobin_rb_thread_wait_fd.start.annobin_rb_thread_wait_fd.end.annobin_rb_thread_fd_writable.start.annobin_rb_thread_fd_writable.end.annobin_rb_threadptr_check_signal.start.annobin_rb_threadptr_check_signal.end.annobin_thread_timer.start.annobin_thread_timer.endsystem_working.annobin_rb_thread_stop_timer_thread.start.annobin_rb_thread_stop_timer_thread.end.annobin_rb_thread_reset_timer_thread.start.annobin_rb_thread_reset_timer_thread.end.annobin_rb_thread_start_timer_thread.start.annobin_rb_thread_start_timer_thread.end.annobin_rb_obj_is_mutex.start.annobin_rb_obj_is_mutex.end.annobin_rb_mutex_new.start.annobin_rb_mutex_new.end.annobin_rb_mutex_sleep.start.annobin_rb_mutex_sleep.end.annobin_mutex_sleep.start.annobin_mutex_sleep.end.annobin_rb_mutex_synchronize.start.annobin_rb_mutex_synchronize.end.annobin_rb_mutex_synchronize_m.start.annobin_rb_mutex_synchronize_m.endrb_mutex_synchronize_m.annobin_rb_mutex_allow_trap.start.annobin_rb_mutex_allow_trap.end.annobin_rb_thread_shield_new.start.annobin_rb_thread_shield_new.endthread_shield_data_type.annobin_rb_thread_shield_wait.start.annobin_rb_thread_shield_wait.end.annobin_rb_thread_shield_release.start.annobin_rb_thread_shield_release.end.annobin_rb_thread_shield_destroy.start.annobin_rb_thread_shield_destroy.end.annobin_rb_exec_recursive.start.annobin_rb_exec_recursive.end.annobin_rb_exec_recursive_paired.start.annobin_rb_exec_recursive_paired.end.annobin_rb_exec_recursive_outer.start.annobin_rb_exec_recursive_outer.end.annobin_rb_exec_recursive_paired_outer.start.annobin_rb_exec_recursive_paired_outer.end.annobin_Init_Thread.start.annobin_Init_Thread.end.annobin_ruby_native_thread_p.start.annobin_ruby_native_thread_p.end.annobin_rb_get_coverages.start.annobin_rb_get_coverages.end.annobin_rb_thread_atfork_internal.start.annobin_rb_thread_atfork_internal.endrb_thread_atfork_internal.annobin_rb_thread_atfork.start.annobin_rb_thread_atfork.end.annobin_rb_thread_atfork_before_exec.start.annobin_rb_thread_atfork_before_exec.end.annobin_rb_set_coverages.start.annobin_rb_set_coverages.end.annobin_rb_reset_coverages.start.annobin_rb_reset_coverages.end.annobin_rb_uninterruptible.start.annobin_rb_uninterruptible.end.annobin_ruby_kill.start.annobin_ruby_kill.end.LC0.LC1.LC2.LC3.LC4.LC5.LC6.LC7.LC8.LC10.LC9.LC11.LC12.LC13.LC14.LC18.LC15.LC16.LC17.LC19.LC20.LC21.LC22.LC23.LC25.LC24.LC26.LC27.LC30.LC28.LC29.LC31.LC32.LC33.LC34.LC37.LC35.LC36.LC38.LC40.LC39.LC41.LC42.LC43.LC45.LC44.LC49.LC48.LC47.LC51.LC46.LC50.LC52.LC53.LC57.LC56.LC55.LC54.LC59.LC58.LC63.LC62.LC61.LC60.LC64.LC65.LC66.LC67.LC68.LC69.LC70.LC71.LC72.LC74.LC73.LC75.LC76.LC78.LC79.LC77.LC80.LC81.LC83.LC84.LC85.LC86.LC87.LC89.LC88.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC99.LC100.LC101.LC102.LC103.LC104.LC105.LC106.LC107.LC108.LC109.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC117.LC118.LC119.LC120.LC121.LC122.LC123.LC124.LC125.LC126.LC127.LC128.LC129.LC130.LC131.LC132.LC133.LC134.LC135.LC136.LC137.LC138.LC139.LC140.LC141.LC142.LC143.LC144.LC145.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_ruby_current_threadpthread_mutex_initrb_bug_errnopthread_selfpthread_getattr_nppthread_attr_getstackpthread_attr_getguardsizepthread_attr_destroy__stack_chk_failgetrlimitpthread_mutex_lockpthread_mutex_unlockpthread_cond_destroypthread_mutex_destroyclock_gettimegettimeofdaypthread_cond_waitpthread_cond_timedwaitrb_thread_groupruby_threadptr_data_typerb_check_typeddatarb_mutex_locked_prb_mutex_trylockrb_mutex_owned_prb_eThreadErrorrb_raisepthread_cond_broadcastrb_ary_pushrb_make_exceptionrb_threadptr_setup_exceptionrb_eRuntimeErrorrb_exc_newrb_thread_listrb_ary_new__errno_locationrb_async_bug_errnofcntlrb_sys_failst_foreachruby_xcallocrb_data_typed_object_allocrb_gc_markrb_id2symrb_hash_lookup2rb_hash_delete_entryrb_vm_thread_backtrace_locationsrb_vm_thread_backtracerb_check_idst_lookuprb_ivar_getrb_hash_foreachrb_to_symbolrb_hash_asetrb_error_frozenrb_hash_arefrb_str_new_cstrgetpidrb_mutex_unlockruby_xfreerb_bugruby_current_vmrb_exc_raiserb_ensurerb_vm_make_jump_tag_but_local_jumprb_scan_argsrb_num2dbl_setjmprb_eArgErrorpthread_killstderrfwriterb_ary_clearrb_thread_killrb_exitruby_xreallocmemsetrb_cloexec_piperb_update_max_fdpthread_attr_initpthread_attr_setstacksizepthread_createstrerrorfprintfrb_sourcelinerb_hash_newrb_cModulerb_obj_is_kind_ofrb_class_inherited_prb_eTypeErrorrb_thread_allocrb_obj_call_initrb_class2namerb_eFatalrb_str_new_staticrb_obj_classrb_class_pathrb_sprintfrb_proc_locationrb_str_catfpthread_condattr_initpthread_condattr_setclockpthread_cond_initpthread_condattr_destroyrb_ary_tmp_newrb_ary_duppthread_attr_setinheritschedpthread_attr_setdetachstaterb_block_procrb_block_given_prb_fix2intrb_num2intInit_native_threadpthread_key_createpthread_setspecificruby_posix_signalruby_init_stack__libc_stack_endgetpagesizerb_thread_wakeup_timer_threadruby_stack_overflowed_prb_reserved_fd_prb_nativethread_selfrb_vm_gvl_destroyrb_nativethread_lock_initializerb_nativethread_lock_destroyrb_nativethread_lock_lockrb_nativethread_lock_unlockrb_threadptr_interruptrb_threadptr_trap_interruptrb_threadptr_unlock_all_locking_mutexesruby_thread_init_stackrb_thread_createrb_cThreadrb_thread_check_trap_pendingrb_signal_buff_sizerb_thread_interruptedruby_thread_has_gvl_ppthread_getspecificrb_threadptr_pending_interrupt_clearrb_threadptr_pending_interrupt_enquerb_threadptr_pending_interrupt_active_prb_threadptr_signal_raiserb_eSignalrb_threadptr_signal_exitrb_eSystemExitruby_thread_stack_overflowrb_during_gcrb_threadptr_set_raisedrb_threadptr_reset_raisedrb_notify_fd_closerb_thread_fd_closerb_thread_wakeup_aliverb_thread_wakeuprb_thread_currentrb_frame_last_funcrb_ident_hash_newrb_obj_idrb_catch_protectrb_hash_lookuprb_throw_objrb_thread_mainrb_thread_local_arefrb_thread_local_asetst_insertst_deletest_init_numtablerb_to_idrb_thread_alonerb_register_sigaltstackrb_string_value_cstrstrrchrstrlenprctlmemcpyrb_vm_ep_local_epruby_vm_event_flagsrb_vm_invoke_procrb_threadptr_exec_event_hooksrb_thread_recycle_stack_releaserb_fiber_startrb_ruby_debug_ptrruby_stopsched_yieldrb_mod_ancestorsrb_postponed_job_flushrb_cFalseClassrb_ary_delete_atrb_cFixnumrb_signal_execrb_get_next_signalrb_cFloatrb_cTrueClassrb_cNilClassrb_cSymbolrb_threadptr_execute_interruptsrb_thread_sleep_foreverrb_thread_sleep_deadlyrb_thread_sleep_deadly_allow_spurious_wakeuprb_thread_wait_forrb_thread_sleeprb_time_timevalrb_thread_check_intsrb_thread_call_with_gvlrb_thread_call_without_gvl2rb_thread_call_without_gvlrb_thread_io_blocking_regionrb_thread_execute_interruptsrb_mutex_lockrb_convert_typerb_yieldrb_ary_poprb_thread_schedulerb_thread_runrb_thread_terminate_allrb_thread_stoprb_fd_initruby_xmallocrb_fd_init_copyrb_fd_termrb_fd_zerorb_fd_setrb_fd_clrrb_fd_issetrb_fd_copyrb_fd_duprb_fd_selectrb_thread_fd_selectrb_wait_for_single_fdppollrb_eIOErrorrb_thread_wait_fdrb_thread_fd_writablerb_threadptr_check_signalrb_thread_stop_timer_threadpthread_joinrb_thread_reset_timer_threadrb_thread_start_timer_threadrb_obj_is_mutexrb_typeddata_is_kind_ofrb_mutex_newrb_cMutexrb_mutex_sleeprb_time_intervalrb_mutex_synchronizerb_mutex_allow_traprb_thread_shield_newrb_cThreadShieldrb_thread_shield_waitrb_thread_shield_releaserb_thread_shield_destroyrb_exec_recursiverb_exec_recursive_pairedrb_exec_recursive_outerrb_exec_recursive_paired_outerInit_Threadrb_intern2rb_define_singleton_methodrb_define_methodrb_vm_register_special_exceptionrb_cObjectrb_define_classrb_define_alloc_funcrb_obj_allocrb_define_constrb_eStandardErrorruby_native_thread_prb_get_coveragesrb_hash_tbl_rawrb_thread_atforkrb_reset_random_seedrb_thread_atfork_before_execrb_set_coveragesrb_add_event_hookrb_reset_coveragesrb_remove_event_hookrb_uninterruptibleruby_kill�*����������*��������������������Q�������������������������������������"��������=��������T��������[�����������������<��������E��������WR��������\���������l���������S����������������������������T������������������	��������'U��������,���������5
��������GV��������L��������������������������%
��������7W��������<���������Z��������vX��������{����������*������������������K\����������K\���������#*���������*K\9��������x*���������K\����������*������������������K����������0K�5��������_*��������fY��������p��������w*��������~Z������������������*���������[������������������*���������\������������������K�����������K���������*�������� ��������K*��������P��������{*������������������*������������������*�����������������	*�������� 	��������L	��������`	]��������e	����������	���������	���������	*���������
��������
��������C
*��������O
��������y
���������
*����������
���������
���������
*���������9��������g��������z��������� ���������^���������!���������"���������"���������#�����������������*����������������+$��������X%��������bK�m&���������(������������������)��������
*��������7
*���������
-���������
*���������
���������
.��������-��������#�./��������@(��������N.��������m�r/��������z���������0�����������/���������1���������_��������3�������� �%/��������01��������[*��������`��������y`���������a���������b���������c������������������,
<4jo6���������d���������7��������� ���������e���������!��������R�f��������g��������8K\@��������G*���������f*��������mh��������w���������h���������:�����������������>��������U#��������ai��������f:��������mj��������r#������������������k������������������l��������	*���������*;��������Tm���������<���������=��������>��������!<��������(*��������/n��������9��������@*��������Go��������Q��������h*��������m��������um���������*������������������p���������?���������m���������@���������*����������A��������S*����������������*B���������q������������������K\����������������������\"D��������.5W\^o*E���������r���������F���������G���������\�H���������\lI���������*������������������*���������
��������/K��������6*��������=s��������G��������g*���������L��������+M��������ON��������ZO��������bO���������P���������P��������� ���������t������������������� ���������u������������������� ���������v�������������������Q��������R��������6��������(��������4>6��������DJ�Y*;��������j�vS��������������������T���������w���������*E���������U���������G������������������T���������x���������y���������:��������*���������1V���������)���������W���������2���������2��������Y*��������^���������p���������?���������*X���������Y�������� Z��������k *[��������r z��������| ��������� *���������� \��������� *;��������� ]��������� *��������� ��������!*��������!{��������%!��������-!^��������4!|��������>!*��������H!���������!��!*����������!K\)"��������{"*_���������"}���������"`���������"~���������":��������(#a��������0#b��������7#*��������B#��������[#a��������m#b��������v#c���������#���������#c���������#d���������#����������#����������#����������#e��������$���������%$`��������;$`���������$����������$d��������6%���������D%e���������%f���������%g���������%h���������%i���������%����������%���������&%��������&K\-&&���������&*����������&*���������&��������'j��������3'k���������'Q���������'R���������'l���������'m��������(S��������(���������(n���������(*���������(����������(���������(����������(����������(����������(����������(����������(����������(����������(����������(T���������(����������(*��������)��������)���������)���������)��������))\��������Q)o��������`)*��������h)���������)d���������)p���������)*���������)����������)��������**��������*���������$*��������I*q��������T**��������[*���������e*��������l**��������s*���������}*���������**���������*��������+p��������9+q���������+*����������+D�+s���������+����������+D�+t���������+\,���������$,3,,,Y,*w��������c,<h,x��������w,���������,4�,4�,<�,�-���������-�-�-�.����������.:��������3/*���������;/\��������i/����������/*���������/���������/D�/���������0��������K0*����������0����������0*����������0`���������0����������0*;���������0<��������w1*����������1��������2���������02*��������52���������2����������2*���������2����������2���������2*���������43���������G3(��������S3*����������3����������3W���������32���������3���������4
4(��������4)��������D4)���������4�4(���������42���������4���������
55(��������5*���������5*����������6(���������6����������6���������#74��������h7���������r7*[��������~7����������7���������7*����������7*����������7*���������8*��������8��������868.���������8-���������8����������8*���������8��������	9(9���������R9����������9����������9_���������93���������9����������9*���������k:����������:D�:t��������;*����������;����������;���������
<���������l<���������*=����������=����������>����������>���������?*���������N?���������U?*����������?���������@����������@���������A���������A*���������'AY��������XA����������A����������A:���������A����������A:���������A���������A����������ADBt��������,B���������;B*���������\BA��������5C*���������iC���������.E����������E4���������E��E��E�)F*���������UF����������F*���������G���������_G<��������kG*����������G����������G����������G*����������G*����������G*���������H*����������H����������H*���������Hq���������H���������J*����������J*����������J*����������J����������M*����������M����������M*����������N����������N����������N���������'O*����������PA��������:QD?Q����������Q*���������$R���������+R:��������2R*E��������CR���������KRF��������URG��������wR*����������R ���������R*���������HT*����������T*����������T ��������.U*���������RV*����������V*��������W��������9WK\FW*���������\W��������~W���������W*���������@X*���������TXA��������Y�.Y��Y*����������Y��Z��Z*���������Z����������Z���������Z*���������Z����������Z���������ZK\[���������[*����������[*���������[��������\*��������\s��������)\��������H\*���������c\o��������w\����������\����������\����������\0���������\��������K]���������}]����������^*B���������^����������^���������^*����������^*���������9_���������>_���������Y_����������_*����������_���������`��������;`���������ca���������qa:���������a����������a����������a*���������a����������a��������b���������kb����������b9��������
dL��������odL��������`e*����������el���������e����������e����������e����������e ��������{f����������f����������f����������f���������g*���������Qg����������g*���������kh���������zh����������h���������
i���������!i���������]i*����������i*����������il��������j���������j ��������Pj*����������j ��������;k*���������Tk���������l*���������Sl ���������l����������l*����������l����������l���������l#���������l���������)m���������Dm���������JmYm��������cm\sm�m�mC���������m*;���������m���������nn;n���������Fn ��������bn�n����������n�n����������n!���������n��n�n�no�o���������o�(o*��������/o���������9o��������Vo`o��oK\�o����������o����������o8���������o����������o*����������o=��������p���������p���������-p8��������4p���������;p*���������Pp=��������mpp��������{p?���������p����������p����������p*8���������po���������p*����������p*��������q���������
q��������qK\q��������:q���������IqK��������Qq&��������]q���������yqK���������q���������qK\�q���������q*����������q���������r8��������=r*��������Dr���������Nr��������Ur*��������\r���������fr��������xrK���������r���������r8���������rK���������r���������r8��������s���������us����������s����������s*����������s���������s(���������s����������s��s���������s(���������s���������t�t��������
t(��������t��������� t�%t��������,t*���������?t���������Ft�Nt��������dt���������it��������t����������t���������t����������t���������t����������t���������t*����������t����������t���������t����������t���������t����������t��������u���������u��������#u��������*u���������/u��������Bu���������Gu��������]u���������bu��������xu���������}u���������u����������u���������u����������u���������u����������u���������u����������u���������u���������v��������v���������v��������#v*J��������/v���������7v��������Fv���������Kv��������Zv���������_v��������kv*���������rvc��������wv���������v*����������v����������v���������v����������v���������v����������v���������v����������v���������v����������v��������w���������w��������&w���������+w��������>w���������Cw��������Yw���������^w��������tw���������yw���������w����������w���������w����������w���������w����������w���������w����������w���������w����������w��������
x���������x��������"x���������'x��������3x��������:x���������?x��������Ux���������Zx��������px���������ux���������x����������x���������x*����������x����������x���������x*	���������x����������x
���������x���������x����������x���������x���������y��������y���������y��������/y���������4y��������@y��������Gy���������`y
��������ky���������py
���������y����������y���������y����������y����������y���������y*���������y����������y����������y���������y*���������y����������y����������y���������y*����������y����������y����������y���������y*8��������z���������
z���������z��������z���������,za��������1z��������8z���������Hz���������Mz��������Tz���������]z��������dz���������iz��������uz���������zz���������z����������z�z*���������z
���������z*���������zj���������zj��������{�J{DO{���������w{*;���������{*���������'|��������D|���������|*����������|*;���������|*;��������5}W��������<}�F}*���������S}*	��������[}2��������j}��������~}*����������}*����������}A��������~��������F~*���������d~#���������'��������e
+��������u
,���������2��������A4���������5���������5���������9��������	C��������sJ���������J���������2��������
2��������22���������+u���������-����������/I���������7����������7����������9����������M����������b����������bM��������$d����������d���������e����������p=���������p���������]|$���������|���������|��������}���������}=�������� P��$,PX{��{�{���{����D�L�p�x
���
�
�!
!0!8Bd!lB�B�X�B�X�X�v$X,vPvX��v�����_���__@D_L@p@x`�@�`�`��`�0�8�d�l������������$�,PX0��0�0�P�0�P	P	�D	PL	�p	�x	 �	��	 �	 �	@
 
@0
@8
d
@l
�
�
��
�
��
��
�$�,�P�Xi���i�i���i����D�L�p�x��������
�
0
8
2d
l
2�
2�
k�
2�
k�
k�
�$k,�P�X��������	���		5	D	L5	p5	xi	�5	�i	�i	��	i	�	0�	8�	d�	l�	��	�f
��	�f
�f
��
$f
,�
P�
XS��
�S�S���S����D�L�p�x9���9�9��9�0�8�d�l������������U
$�,U
PU
Xi
�U
�i
�i
�y
�i
�y
y
�
Dy
L�
p�
x]��
�]�]��]�0�8d�l��E��E�E��$E,�P�XZ���Z�Z���Z���dD�Ldpdx+�d�+�+�{+{0{8�d{l����v���v�v��$v,�P�XU���U�U���U����D�L�p�x+���+�+��+�0�8�d�l�������������$�,�P�X��������W���WW�DWL�p�xS���S�S�wSw0w8�dwl����5���5�5��$ 5, �P �X �� �� �� �� �� �� �!�!6D!�L!6p!6x!� �!6�!� �!� �!� "� "� 0"� 8"L!d"� l"L!�"L!�"�"�"L!�"�"�"�"�"#$#�",##P##X#m%�##�#m%�#m%�#�%�#m%�#�%$�%$�%D$�%L$�%p$�%x$S&�$�%�$S&�$S&�$)%S&%)0%)8%;)d%)l%;)�%;)�%�*�%;)�%�*�%�*�%�*$&�*,&�*P&�*X&?+�&�*�&?+�&?+�&�+�&?+�&�+'�+',D'�+L',p',x'�,�',�'�,�'�,�'�,(�,(�,0(�,8(�-d(�,l(�-�(�-�(�-�(�-�(�-�(�-�(�-$)�-,)�-P)�-X)1.�)�-�)1.�)1.�)I.�)1.�)I.*I.*Y.D*I.L*Y.p*Y.x*i.�*Y.�*i.�*i.�*y.+i.+y.0+y.8+�.d+y.l+�.�+�.�+�.�+�.�+�.�+�.�+�.$,�.,,�.P,�.X,/�,�.�,/�,/�,S/�,/�,S/-S/-z/D-S/L-z/p-z/x-�/�-z/�-�/�-�/�-�/.�/.�/0.�/8.0d.�/l.0�.0�. 0�.0�. 0�. 0�.;0$/ 0,/;0P/;0X/�0�/;0�/�0�/�0�/�0�/�0�/�00�00!1D0�0L0!1p0!1x0E1�0!1�0E1�0E1�0e11E11e101e181�1d1e1l1�1�1�1�12�1�1�12�12�1�2$22,2�2P2�2X2�2�2�2�2�2�2�2�2�2�2�2�2�23�23�7D3�2L3�7p3�7x3�7�3�7�3�7�3�7�3�74�74�704�784�7d4�7l4�7�4�7�4m8�4�7�4m8�4m8�4�8$5m8,5�8P5�8X5�9�5�8�5�9�5�9�5�9�5�9�5�96�96:D6�9L6:p6:x6�A�6:�6�A�6�A�6B7�A7B07B87�Cd7Bl7�C�7�C�7�H�7�C�7�H�7�H�7�H$8�H,8�HP8�HX8tJ�8�H�8tJ�8tJ�8�J�8tJ�8�J9�J9�JD9�JL9�Jp9�Jx9�J�9�J�9�J�9�J�9�J:�J:�J0:�J8:�Md:�Jl:�M�:�M�:�M�:�M�:�M�:�M�:�M$;�M,;�MP;�MX;N�;�M�;N�;N�;O�;N�;O<O<�OD<OL<�Op<�Ox<�P�<�O�<�P�<�P�<Q=�P=Q0=Q8=YRd=Ql=YR�=YR�=
T�=YR�=
T�=
T�=T$>
T,>TP>TX>,T�>T�>,T�>,T�>�V�>,T�>�V?�V?%WD?�VL?%Wp?%Wx?�[�?%W�?�[�?�[�?-\@�[@-\0@-\8@�^d@-\l@�^�@�^�@"_�@�^�@"_�@"_�@G_$A"_,AG_PAG_XAg_�AG_�Ag_�Ag_�A�a�Ag_�A�aB�aB�aDB�aLB�apB�axB,b�B�a�B,b�B,b�B�bC,bC�b0C�b8C�bdC�blC�b�C�b�C�b�C�b�C�b�C�b�CLc$D�b,DLcPDLcXD�c�DLc�D�c�D�c�D�c�D�c�D�cE�cE(dDE�cLE(dpE(dxE�d�E(d�E�d�E�d�EeF�dFe0Fe8F2idFelF2i�F2i�Fdl�F2i�Fdl�Fdl�F�l$Gdl,G�lPG�lXG�l�G�l�G�l�G�l�G�l�G�l�G�lH�lHmDH�lLHmpHmxH�n�Hm�H�n�H�n�H=oI�nI=o0I=o8IEodI=olIEo�IEo�Iuo�IEo�Iuo�Iuo�I�o$Juo,J�oPJ�oXJ�o�J�o�J�o�J�o�JVp�J�o�JVpKVpK�pDKVpLK�ppK�pxK�p�K�p�K�p�K�p�KqL�pLq0Lq8L(qdLqlL(q�L(q�Lfq�L(q�Lfq�Lfq�Ljr$Mfq,MjrPMjrXM�r�Mjr�M�r�M�r�M�r�M�r�M�rN�rN�rDN�rLN�rpN�rxN1s�N�r�N1s�N1s�NTsO1sOTs0OTs8O�sdOTslO�s�O�s�O?{�O�s�O?{�O?{�Oa{$P?{,Pa{PPa{XP�{�Pa{�P�{�P�{�Pa|�P�{�Pa|Qa|Q�|DQa|LQ�|pQ�|xQ�|�Q�|�Q�|�Q�|�Q�|R�|R�|0R�|8R}dR�|lR}�R}�R�}�R}�R�}�R�}�Rh~$S�},Sh~ L	 M N O/��`/�p�x0�/�� 4H�\�p���0�P�`����,`T@p`�������0(PT�| �@������,pH�������@�p� �8	P@	lp	��	��	�p
��
4``�|��@������8`
Lp
`�
��
�`��8P\��`���p40P�l�����`	�<	d	0�	��	�	��	��	
`,
�X
`l
��
��
@�
�,��@�� �� $P!��"�#
p%
�%D
&l
`&�
 )�
@)�* �*L@+`�+|,��,�-�- �-4�-P@.dP.x`.�p.��.��.��.�/ /0`/H�/`�/��/�0� 0�@0��0��001(P1<p1t2� 2��2��23P�7d�7x�7�8�p8��8@�9h�9|:��A� B�Cl�H��H��J��J��J��JKX�Ml�M��M� N� O��OP�Px Q�`RT$ T80T��V�0W��[0\l�^�0_�P_�p_�a(bD0bp�b��b�c�Pc��c��c0dH�d�e�@i<plX�ll�l��l� m��n@o Po4�oL�o`�o�`p��p��p�q0q,pqtpr��r��r�s�@s`s,�sx@{�p{��{�p|�|�|0�|D }|�}.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.data.rel.ro.local.rodata.cst8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@+�T+�l+��+��+�'�h~"@h��[+-03`� =`4S8@`"�Q+
S��b���]@�s0+
|h��h���@ t0+�<��<���@Pt0+������@�t0+2���2��.� )@�t�+A�8N0@�.�n��n�|n�Sn�'n�Wn�en�xn��n��n��p� �����@XuX+)8�b,�	�i�\���cont.o/         1690381920  1000  135   100644  47864     `
ELF>��@@-,

 "#$%��1�H��t+H��tH�G(HG H��H�0tH�W@H���f���H��tWS�?H����tH��H��t�H�H�{�tH�S(HS H��H�{0tH�K@H��H�[�f�1��ff.�f���H�1��ff.�AWH��AVH USH��(H�|$H��H�t$H�D$���������P�Hc�H��H��H�H�H�L$H��H9H��H��H�H�-H�@L�t$L�|$1�1�H�|$H�5I��0M��@I���L�M���Idž(�L��I��@H)�I��PH��([]A^A_��H�t$E1�1��A������"H�ź�H��H���t?H�-1�H��H������C���H�=H�51��H�=1���}�H�=H�5H��1��ff.�UH�H��AVSH��H�8�I�����rH��@H���H����H�PpH�@hI�V(I�F H�C I�~ H�sH���H�S(H�CpI�N H)�H��H�<�H�K H�CH�4��H�CxH�{8I�F0���A�F8���A�F<���A�FH���A���H���I���H���I���H��HI��H��(I���H���I���H���I���H��I���H��tH�C@H�s0H���H��8H�JH��81��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��H�ChH�G H�CpH�G(H��H���H��H���H��H���H������H��H���_����J���f���H����SH��H�hH��t
�H�ChH�H�8����tTH�H�H;��tH���H��t��tYH����H�{H��t
�H�CH��[�DH���H�{0H��t��H�C0�@�H�=1��f���H��t'S�?H��tH��H��t�H��[����@�ff.�@��H����SH��H��H�{H�H�{X�H�{H��tH�C(HC H�4��H�{0H��t(���t/H�{XH�5�H;��t	��t	[��H�{0H�C@[H�4��fD����H��t'SH��H��H��t	H�x�H��[�5���D�ff.�@USH��H�H� H��TH����^H������H�S H�hH�PhH�S(�H�PpH�S0H�Px�S8����S<����SH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��H���H��8Hǀ@H�SHǀHH�PXH��H��PH���HǀH��@HǀHǀHǀǀH�E H��[]�H�H�5H�81��H�H�5H�81���ATI��UH��S�Q����H��H�H�CH�H�ChH�@H��hH��H�{p�H�SpH�ChH��H�J�H�KxH�HH�B�H�J�H�B�H�H�B�H�B�H�B�H�B�H�B�H�B�H�B�Hǃ��L��(H��H��HǃHǃ[]A\�@��SH���H��[H������H��H�=H�1��H���/����ǀH���f.�UH��H��H�W8dH�%(H�E�1�H��t`H�E�H9�sWH)�H��H��H��H%�H)�H���H��H9�tH��H��$����t	H)�H�L�H�D$H���H�fD���ff.���AWAVAUATUSH��HH��|$H��H�t$H�5L� �H��I�D$H9EXuWI��$�H9��tH�H�5H�81��H��@H��t:I;�$�t0H�H�5H�81��H�H�5H�81��H��M��$�H�D$M����L��E1�@H�I��H��u�H�D$H�8��L��H�D$E1�f�H��I��H�8u�H����L��L��I��H)�Hk�HD$@M9�rL��H�L)�H9J�eH�H��I��u�M����H�D$E1�H�l$L�d$ M��L�XH�D$8H�\$(H��L��f�H�H�H���H��tH�3H�����tH�|$8�BI��H��M9�r�M��H�l$L�d$ H�\$(M���I�}1�H��A�UM�mI9�r�Ik�H�D$L�t$8H�X�L�l��E�H�H�H���H��t#I�uL�����tH�T$8H��4tI�}1���I��I9�u��D$�E��t(��u*H�D$H�H�EH��8H��I��$��������Hc|$H�t$���I��H��������<���H�D$1�L�8M���%����)���M��� ���L��E1��-���E1�M���h�������M�����H�H�5H�81��DAWAVAUATUSH��XH�H�|$(H�H���H�$��H�<$�H�H�D$H�H�H���H�D$�p���H�|$H�H��H�D$ �H�L$ H�|$H�D$HH�D$HH�AH�G H�AhH�G(H�ApH�G0H�Ax�G8����G<����GH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��H���H�L$0H��8H�GHǁ@H�AXH��HǁHH��PH���HǁH�<$H��@H�D$0HǁH�W0HǁH�@H�O H�D$8H�BH�t$0H)�H��H�F H�G(H�t$0H��H)�H��H�F(H�D$0�H�T$0H�L$0H�z(Hx H�L$�H�L$H�AH�D$0H�T$0H�zH�P H�$H��H�p �H�D$0H�T$0H�L$0H�RH�I H�<�H�P(H�$H�p0H���H�D$0H�L$0H�@hH�L$H��H�<$H���H��H9��pH�|$H)�H��H�G@H�D$H�D$H�W8H�x0H���kH�t$��H��H�D$H�T$H�x0H�D$H��H�p8�H�$H���H����1��fD��H��JH��u��Hc�H�T$0�H�T$�H�T$H�D$H��H�$H���H�$H��u@���H�4$H�D$H�\$�oFC�H�F)$H�C�H�H�$H����H�$H�xu�1��H�$H�B���H�D$0H�@H�D$@H�D$0�x���H�D$0H�@H�D$(�H�D$@H��X[]A\A]A^A_�H)�H�A8H�D$H��H�x0H�T$H�Q@H�������H�|$�����f�H�D$H�T$0H�|$PH�H��8H��8H�E���H�P1��H�H�PH�`H�D$(�H�D$8H��X[]A\A]A^A_ÿ�t���H�|$@�H�H�5H�81��H�H�5H�81��ff.�@��H��H�|$����H�D$�D$��tH�D$H����H�|$�H��Ð��H��H�5�H��t����HD�H���H�=H�5�f.�AVL�5AUATI��USM�.H����L��tI�EH��p��I�.����H�ChH�E H�CpH�E(H��H���H��H���H��H���H���H�CxH��HH�E0����E8����E<����EH������H���H���H���H���H��HH��H��(H���H���H���H���H���H��H���H��PI��t	L9��*A��$t"H��I���I��I�T$0H)�H��I�D$@I���H��0I��$@H��@I���IDŽ$H��H�� I��$ ���[]A\A]A^��H��@H���H��tuH�PpH�xhH�U(H�} H�C H�sH���H�S(H�CpH�M H)�H��H�<�H�K H�CH�4���]���I9��c���H�=1��DH��H���{���H�} �H�=1��@��UH�=$H��0H�H�T$PH��$0H�D$P4H�0H���H�t$H�D$H���H�L$`H��$(H�BH�x1��H�H�HH�`H�FHH�D$H���H�|$H��(H�GH�J �WH�D$H�T$(��H�L$ ~H� ��H��H�D$0�
H�D$HH�D$0H�D$H�|$ H�@H�D$H�Hǀ�H�T$H�L$E1�H�t$ H���H��Hǂ��T$(H��ǁH�L$0�H�L$H�T$H�AH��$(H���H�T$H�
H�BH�B0ǂH�D$0H���Hǂ0H�H���Hǂ�H��H�B@H�H�H�H���H�D$ �CH�D$ H�H���H�H��H�T$ H�L$(H����HǀH�D$ H�T$(H;����H�T$ H�D$(H�RH9PX�rH�T$ H�D$(H���H9���iH�D$(����H�D$8H�L$8H�T$ H�|$0H��8H���H�yH���AH���H�L$0H����H�R H�QhH�W(H�QpH���H��H�W0H�Qx�W8����W<����WH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��8H��Hǁ@HǁHH�t$0H�|$(����H�H�8H��tH���	�/H�D$0H;x0�(H�H�4��H�H�H�D$ H����x���H�L$ H�� H�D$(H�Ѕ���H�=1�����H�D$�8����6���H��$(H�L$H����G�H����u*H�|$�H�D$�����H�@ H�D$0�5����H��t�H�|$H�����H��H�T$(H9��I���H�=H�51��Hc�H�
��H���H�H�
H�:H�J����1�H����������H�|$ H���H�����H�=�H�5�H�|$ H�������H�|$ H���A����H��H�AH�L$8��������n�H�|$ H�D$0H���H������H�=H�51��H�=H�51��H�x�H�=1��H������AVAUI��H�5ATU��H��SH���H���5ǀI��H�H�L;���OH�CI9D$X�H���I9�$��A��$�<M��I��8H����A�n��t����Hc�L���H���I�FH���~H�C H�EhH�C(H�EpH���H��H�C0H�Ex�C8����C<����CH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��H���H��8HDž@HDžHL��H�����H�=H��tC���	��H;}0��H�H�4��H�H�H����z�H�B�NH�� H�҅���H��[]A\A]A^ÐI�EH���I�FH���������H��H���H���:���DHcЃ�H��H��H��H�H�
H�:H�J�I�����������I�E�h���fDH�=H�5��H�����urL��A�F����L��I�F�������1�H��H�D$�H�D$����H��Hc�L��[]A\A]A^�f������H���H�=H�51��H�=H�51��H�=H�51��H�=1�����H��tH��fD����H��H�5���H�H��H�Ѓ��ff.���UH��H��SH��H�H�H���H��tH��H��[]�@H�t$�H�T$H��H�����ff.�f���S�H�=1�H�H���H��[H���b�f���H�SH�H���H��t
H�@[���C�H���H��H�@[�ff.�@������AVAUI��ATU��H�5SH���H���(I��H�H�L;���LH�CI9D$X�H���I9�$��A��$�9M��I��8H����A�n��t����Hc�L���H���I�FH����H�C H�EhH�C(H�EpH���H��H�C0H�Ex�C8����C<����CH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��H���H��8HDž@HDžHL��H����H�=H��tC���	��H;}0��H�H�4��H�H�H����z�H�B�KH�� H�҅���H��[]A\A]A^�fDI�EH���I�FH���}������H��H���H���5���DHcЃ�H��H��H��H�H�
H�:H�J�D����������I�E�k���fDH�=H�5��H�����urL��A�F����L��I�F������1�H��H�D$�H�D$����H��Hc�L��[]A\A]A^�f������H���H�=H�51��H�=H�51��H�=H�51��H�=1�����AWAVAUI��ATU��H�5SH���H����H��I���e�8�\������L�5I�H���I9��RH�KI9L$X�lH���I9�$��lA��$�?M��I��H����I��$�A�o��t����Hc�L���H���I�GH����H�C H�EhH�C(H�EpH���H��H�C0H�Ex�C8����C<����CH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��H���H��8HDž@HDžHL��H���5�H�=H��tC���	��H;}0�#H�H�4��H�H�H����z�H�B��H�� H�҅��H��[]A\A]A^A_�@I�EH���I�GH���}�����H��H���H���5���DHcЃ�H��H��H��H�H�
H�:H�J�D�����������I�E�k���fDH�=H�5��H�������L��I�GL��A�G�������M�6I���H���v����1�I���I���^���fD1�H��H�D$�H�D$�����H��Hc�L��[]A\A]A^A_������H�=H�51��H���H�=H�51��H�=H�51��H�=H�51��H�=H�51��H�=1��ff.�@����H��H����ff.�f���AVI��AUATU��SH��L�%I�$H���H����L��M���pHǀL9����H�CI9D$X�KH���I9�$��KA��$��M��I��8H����A�m��t����Hc�L���H���I�EH����H�C H�EhH�C(H�EpH���H��H�C0H�Ex�C8����C<����CH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��H���H��8HDž@HDžHL��H����H�=H��tC���	��H;}0�H�H�4��H�H�H����z�H�B��H�� H�҅��7H��[]A\A]A^�f.�I�H���I�EH���z�������H��H���H���2���fDHcЃ�H��H��H��H�H�
H�:H�J�@����L��I9������H�=H�51����������I��8�����#��H���H��I�$����@H�=H�5��H�����ujL��A�E����L��I�E�U��.���1�H��H�D$�H�D$����H��Hc�L��[]A\A]A^�f������H���H�=H�51��H�=H�51��H�=1��fD������H��H�5�H��H��tH;��tH��H���H���@��SH��H��H�H��H��H�H�=H�0�H�5Y��H��H��H�H�=H�0�H�=�����H�1���H�5H��H�=1�H���H�5�H�=[�����H����H�5�f���H��H�H�=H�0�H��H��H��������ƒ�����H����<��H�xH�5�H�=�����H�Y��H�5�H�=�����H�:��H�5�1�H�5U�H�=H���DH�����u�H��t2H���}���H�H�8�r���f.�H�H�8�Y����H�H�8�I����H�H�8�9����H�H�8�)����H�H�8�������H��H�=�����H���H�5�H�1�H�=H�5�H�=1�H�M�H�5H���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignmachine_stack_cache size is not canonicalizedcan't alloc machine stack to fiber: %scontinuation called across threadscontinuation called across stack rewinding barriercontinuation called across fibercontinuation called from out of critical rb_ensure scopefiber_setcontext: sth->machine.stack_end has non zero valuenon_root_fiber->context.uc_stac.ss_sp should not be NULLfiber called across stack rewinding barriercannot resume transferred Fibermprotect failedIllegal root fiber parametercannot initialize twicenot running threaduninitialized fibercan't yield from root fiberrb_fiber_start: unreachablefiber called across threadsdead fiber calledterminated fiber resumeddouble resumeFiberFiberErroryieldinitializeresumeContinuationnewcall[]callcctransferalive?currentfibercontinuationGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�70cJ�SC�L8`�B�E�G �A(�DP�
(A ABBD��A�J
C��$��N�x
�Jh�A��1J�]� �N�j
HI�$1J�\�(@�A�A�D f
AAA(l�B�D�D ��AB�E�L�6Dq��A�C
0�F�B�B �B(�A0�A8�D�dB�B�B �B(�A0�A8�D�
8A0A(B BBBA�
8A0A(B BBBA�?H `
HN�FHj
A<�lB�I�B �D(�A0��
(A BBBH�E�N�X�F�B�L �A(�F0�D@
0A(A BBBB
0G(A BBBNx�%HV(�SE�G�D0Z
DAI�.E�a�AL�T
HX	X �F�B�E �A(�J0�D@�
0A(A BBBG�
0G(A BBBNd|!F�B�B �E(�A0�J8�DP+
8A0A(B BBBE$
8G0A(B BBBL�X��F�E�B �A(�C0�D@
0A(A BBBKD
0G(A BBBNT	h<Hs��E���OH�
J�cHV	!%9"Qj#��$��%�77,7I�d@cr������H���U,��S	�m	@��	��	�U�N�`��N�P�6QN 1YQr��`����1�1�1��@��0����H�e������&	��6�	�&	"�	F0	�]�	y���	�`H�������	�/3�?=/]v{v����l����	 �@�a��u���������)C]Cy~�~������	�	&	�G	#f	#�	�'�	�'�	�'�	�'�	�'
�+.
�+N
�+l
�+	}
�+�
,�
,�
�,
�,8/.a/.��."#$%!���0��-�E�����X���X�`� ��l�
����%�+�1�7
=CI"O/U3[8a;gBmKsRy����

 &'(���

��%
1
B
G
P
Y
`
i
}
�
�
�
�
�
�
�
�
�
�

+;IZhx�������0F��"Gj�����%���S�P.�A+��=�#!M�'�\�+<~,����������,O.>Xgr���0.c.annobin_cont.c.annobin_cont.c_end.annobin_cont.c.hot.annobin_cont.c_end.hot.annobin_cont.c.unlikely.annobin_cont.c_end.unlikely.annobin_cont.c.startup.annobin_cont.c_end.startup.annobin_cont.c.exit.annobin_cont.c_end.exit.annobin_cont_memsize.start.annobin_cont_memsize.endcont_memsize.annobin_fiber_memsize.start.annobin_fiber_memsize.endfiber_memsize.annobin_fiber_alloc.start.annobin_fiber_alloc.endfiber_allocfiber_data_type.annobin_fiber_initialize_machine_stack_context.start.annobin_fiber_initialize_machine_stack_context.endfiber_initialize_machine_stack_contextmachine_stack_cache_indexmachine_stack_cachepagesizerb_eFiberError.annobin_cont_restore_1.start.annobin_cont_restore_1.endcont_restore_1.annobin_cont_free.start.annobin_cont_free.endcont_free.annobin_fiber_free.start.annobin_fiber_free.endfiber_free.annobin_cont_mark.start.annobin_cont_mark.endcont_mark.annobin_fiber_mark.start.annobin_fiber_mark.endfiber_mark.annobin_fiber_t_alloc.start.annobin_fiber_t_alloc.endfiber_t_alloc.annobin_fiber_init.start.annobin_fiber_init.end.annobin_rb_fiber_init.start.annobin_rb_fiber_init.endrb_fiber_init.annobin_root_fiber_alloc.isra.5.start.annobin_root_fiber_alloc.isra.5.endroot_fiber_alloc.isra.5rb_cFiber.annobin_cont_restore_0.isra.10.start.annobin_cont_restore_0.isra.10.endcont_restore_0.isra.10.annobin_rb_cont_call.start.annobin_rb_cont_call.endrb_cont_callcont_data_type.annobin_cont_capture.start.annobin_cont_capture.endcont_capturerb_cContinuation.annobin_rb_callcc.start.annobin_rb_callcc.endrb_callcc.annobin_rb_fiber_alive_p.start.annobin_rb_fiber_alive_p.end.annobin_fiber_setcontext.start.annobin_fiber_setcontext.endfiber_setcontext.annobin_rb_fiber_start.start.annobin_rb_fiber_start.endterminated_machine_stack.annobin_rb_fiber_m_transfer.start.annobin_rb_fiber_m_transfer.endrb_fiber_m_transfer.annobin_rb_fiber_mark_self.start.annobin_rb_fiber_mark_self.end.annobin_rb_obj_is_fiber.start.annobin_rb_obj_is_fiber.end.annobin_ruby_register_rollback_func_for_ensure.start.annobin_ruby_register_rollback_func_for_ensure.end.annobin_rb_fiber_new.start.annobin_rb_fiber_new.end.annobin_rb_fiber_current.start.annobin_rb_fiber_current.end.annobin_rb_fiber_s_current.start.annobin_rb_fiber_s_current.endrb_fiber_s_current.annobin_rb_fiber_transfer.start.annobin_rb_fiber_transfer.end.annobin_rb_fiber_resume.start.annobin_rb_fiber_resume.end.annobin_rb_fiber_m_resume.start.annobin_rb_fiber_m_resume.endrb_fiber_m_resume.annobin_rb_fiber_yield.start.annobin_rb_fiber_yield.end.annobin_rb_fiber_s_yield.start.annobin_rb_fiber_s_yield.endrb_fiber_s_yield.annobin_rb_fiber_reset_root_local_storage.start.annobin_rb_fiber_reset_root_local_storage.end.annobin_Init_Cont.start.annobin_Init_Cont.end.annobin_ruby_Init_Continuation_body.start.annobin_ruby_Init_Continuation_body.end.annobin_ruby_Init_Fiber_as_Coroutine.start.annobin_ruby_Init_Fiber_as_Coroutine.end.LC2.LC0.LC1.LC3.LC4.LC5.LC7.LC8.LC6.LC9.LC10.LC12.LC11.LC14.LC13.LC17.LC15.LC16.LC18.LC19.LC20.LC21.LC22.LC23.LC24.LC25.LC26.LC27.LC28.LC29.LC30.LC31.LC32.LC33.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_st_memsizerb_data_typed_object_allocgetcontextrb_fiber_startmakecontext__errno_locationmmapmprotectrb_raiserb_bugstrerrorruby_current_threadmemcpyruby_xfreestdoutfflushmunmapst_free_tablerb_gc_markrb_thread_markrb_gc_mark_locationsruby_threadptr_data_typerb_check_typeddataruby_xcallocrb_eRuntimeErrorrb_eThreadErrorruby_xmalloc2st_init_numtablerb_block_procruby_current_vmst_lookuprb_ary_new_from_valuesrb_vm_stack_to_heapruby_xrealloc2rb_ary_tmp_newrb_exc_raiserb_yieldrb_fiber_alive_pswapcontextrb_vm_ep_local_eprb_vm_invoke_procrb_threadptr_pending_interrupt_enquerb_vm_make_jump_tag_but_local_jumprb_threadptr_execute_interruptsrb_exc_newrb_fiber_mark_selfrb_obj_is_fiberrb_typeddata_is_kind_ofruby_register_rollback_func_for_ensurest_insertrb_fiber_newrb_proc_newrb_fiber_currentrb_fiber_transferrb_fiber_resumerb_fiber_yieldrb_fiber_reset_root_local_storageInit_Contsysconfrb_cObjectrb_define_classrb_define_alloc_funcrb_eStandardErrorrb_define_singleton_methodrb_define_methodruby_Init_Continuation_bodyrb_undef_alloc_funcrb_undef_methodrb_define_global_functionrb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbolruby_Init_Fiber_as_Coroutined����������y�������������������<;�I�k������������������������������������������������������������������#���������*���������1���������9���������@��������G���������Q���������d*���������������������������������������k���������z*��������������������*�������������������������������������������������������������������?���������v���������������������������������������*����������������������������I*���������w����������*������������������������������*������������������������������*���������%�������������������������������y��������	����������	*����������	y\�	���������
*���������
���������'
���������D
*���������K
���������U
���������\
*���������c
���������m
���������S*���������m����������*�������������������g����������*������������������������������*���������
���������
'
*���������L
���������X
y\e
�������������������$���������T�����������������������������+�������������������.��������������������*������������������������������*�����������������������������&���������;y��������@���������f��������m���������r����������*���������(���������t�����������������������������������������������������������*�������������������$���������M�$�*����������*�������������$������������ 
������������������b�����������������������������������������������������������<���$����������&��������2���������7������������������������������������������������������������������������������������������������������������y�����������������-*�����������������������$������������ d<j�x$��������������������������������������N���������U��������\���������c���������j��������q���������x����������������������������������������������������������y������������������*���������.���������V���������]fy��������n����������*����������y������������������ *���������� ���������~!�!��!$�!����������!�! L"<R"�`"$�"���������"����������"����������"���������.#���������5#��������<#���������C#���������J#��������Q#���������X#���������_#��������f#���������m#���������t#���������{#����������#y���������#����������#*���������U$���������N%Y%�s%$�%����������%�% &<"&�0&$c&��������j&���������t&����������&���������%'��������,'���������3'���������;'���������B'��������I'���������P'���������W'��������^'���������e'���������l'��������s'���������z'����������'���������'����������'����������'����������'����������'*����������(����������)�)��)$�)����������)�) T*<Z*�h*$�*���������*����������*����������*���������*����������*���������;+���������~+����������+���������+����������+����������+���������+����������+����������+����������+����������+*����������+���������,*���������%,���������,,�=,*���������D,���������L,���������],b,���������i,*���������p,���������x,���������,�,����������,���������,����������,�,����������,����������,�,����������,*����������,����������,���������-	-���������-K-���������P-���������W-j-���������o-���������v-�-����������-����������-����������-*���������-*���������-*��������.*��������.*��������#.*��������;.N.���������S.���������Z.*���������c.j.���������o.���������v.�.���������������������������������������3������������������� �������������������#���������
'����������'���������c+����������+����������,����������-����������.��������� ~��7$,7P7X��7�����������UD�LUpUxN�U�N�N�N08QdlQ�Q���Q�����1$�,1P1X��1������������D�L�p�x&	���&	�&	��	&	�	0�	8�d�	l������������/$�,/P/Xv�/�v�v���v��	�	�D	�L	�p	�x	��	��	��	��	�
�
�0
�8
�d
�l
��
��
C�
��
C�
C�
~$C,~P~X��~�����������#D�L#p#x�'�#��'��'��'
�'
�'0
�'8
�+d
�'l
�+�
�+�
�+�
�+�
�+�
�+�
,$�+,,P,X�,�,��,��,�/.��,�/./.�.D/.L�. z { | }Z @``h`pPx 4@P�d��`�P� `(D@p������0	��	 ����0��� �|������P���$���#��'��'X�+l�+�,��,�0..symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.8.rodata.str1.1.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*�T*�l*��*��*�'��."@�z� *-S/3`/� =`/T8@h��
*
S�>b�>�]@�0*
|�@��@��@H�0*�\B�\B��@x�0*�0D�0D��@��0*2F�2�Gm.�I� )@ة�*A0(J.�VJ�VJ|VJSVJ'VJJVJXVJkVJ}VJ�VJ�XJ �xJ��@��`*(HP�+�	�h����ascii.o/        1690381920  1000  135   100644  8616      `
ELF>h@@)(	

 !"#GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignASCII-8BITGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�'< Uo!��"��# !"#��$8	$%I�[{����8a����.annobin_ascii.c.annobin_ascii.c_end.annobin_ascii.c.hot.annobin_ascii.c_end.hot.annobin_ascii.c.unlikely.annobin_ascii.c_end.unlikely.annobin_ascii.c.startup.annobin_ascii.c_end.startup.annobin_ascii.c.exit.annobin_ascii.c_end.exit.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupOnigEncodingASCIIonigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_ascii_mbc_case_foldonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_minimum_property_name_to_ctypeonigenc_ascii_is_code_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_match   
 
 01 2(30485@6H7P8X9`:h;p<.symtab.strtab.shstrtab.group.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.data.rel.ro.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property@&P&h&�&�&"�(�.�8��3@�0&	N�]��X@�0&wX�X��@�0&�,�,��@ 0&����@P0&2�	�	� @�P&'0`
.��
��
w�
N�
"�
0�
>�
Q�
c�
r�
��
 �
�'/	h$��us_ascii.o/     1690381920  1000  135   100644  9216      `
ELF>@@@+*	

 !"#��������GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignUS-ASCIIGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�-E a~!��"��#5W !"#lx���	$%&����6Vr���)S.annobin_us_ascii.c.annobin_us_ascii.c_end.annobin_us_ascii.c.hot.annobin_us_ascii.c_end.hot.annobin_us_ascii.c.unlikely.annobin_us_ascii.c_end.unlikely.annobin_us_ascii.c.startup.annobin_us_ascii.c_end.startup.annobin_us_ascii.c.exit.annobin_us_ascii.c_end.exit.annobin_us_ascii_mbc_enc_len.start.annobin_us_ascii_mbc_enc_len.endus_ascii_mbc_enc_len.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupOnigEncodingUS_ASCIIonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_ascii_mbc_case_foldonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_minimum_property_name_to_ctypeonigenc_ascii_is_code_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_match ��$,  
 
 4 5(60788@9H:P;X<`=h>p? .symtab.strtab.shstrtab.group.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.data.rel.ro.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@(P(h(�(�("�(�.�8�43@��(	N�]��X@p0(w�����@�0(������@�0(�p�p��@0(2D
	`
� @0P('0�
.��wN"0>Qcr� �00�@�(&`)3	`���unicode.o/      1690381920  1000  135   100644  371592    `
ELF>H�@@-,

 "#$%������w=�wH����B�������w��H�H�<���@������f������Hc�H�H��H�1�ø�����f.����H���ff.���AVAUATUSH��@dH�%(H�D$81�H9��I��H��I��1�I� ��N����H�
���U��,��,��Hc�A�FA9FtL��L��H���H�H�I9���L��L��H��A�V �P�?w�I��r��H�
�D$�A��D$�A��D$�A��D$�A��D$�A��<$��A�y�Ł��CL�-Hc�IcD���x0H�H�@8;u!H�sH�|$���uB�<#��@�!���H�L$8dH3%(��H��@[]A\A]A^�f�HcōU�A�����+wƃ�wiH�5��Hc�H�>��H�
����H�
����H�
����H�
����H�
����A�D����j����`�����D$H�
�A�����@��AWH��I��AVAUATM��UH��SH��L�*H��H�L$L��U �]A��9]tH�L$H��L��H�����Hc�IA�F�=~��D��D��H�������A��H��J�B�D����J�=U��H�H�H�Bf��xuH��H�5H��H��D;1u]�Q��t}1ۅ�~9H���B�1�H�H�L�,�L�4�A�}H��L��I���U0Hc��I�M9�u�H����[]A\A]A^A_�D�K�1���
��DH��A�TA�H�PH9�u���H�E0�yH��H��[L��]A\A]A^A_����AW�L�=AVAUATUH��SH��H��HH�T$<�|$,H�T$I�w�D$H�t$ ����L�|$L�t$Lcl$H��L�|$A�O�$�A�|$L���D$<�Ӆ�u{A�D$H��L��A�>�D$<�Ӆ�u^�D$��~kH�D$H�t$ N�l�L�x�D$��L�4�� H��L��A�?�Ӆ�uI��M9�t+A�|$H��L���Ӆ�t�H��H[]A\A]A^A_�fDH�T$�D$�D$9B�)���I��I��H�I9���L�t$�D$<iH���IL���Ӆ�u�H��L���i�D$<I�Ӆ��x����D$,@�gH�H�l$A�H�D$E1�E��~eH�l$H�L$�F�t�H��D����A�Dž��2H��DE9�tH�L$�H��D���Ӆ������A��H��E9�u�I��E9��H�D$H�D$H�H9���H�l$��0H�5H��Ӆ������H�H�l$A�H�D$E1�E��~cH�l$H�L$�F�t�H��D����A�Dž�utH���E9�tH�L$�H��D���Ӆ��<���A��H��E9�u�I��E9��H�D$H�D$H�H9�tD�h�u���H��H1�[]A\A]A^A_�D�����D�h���A�G����ff.�f���AWI��H��AVI��L��AUATM��US��H��H��hH�L$A�V A�nA��A9ntH�t$L��L����ʼn�A�E���@=~��D��D��H�
������A��H��4q�A�D����q�=U��H�H�
H�Af���xH��H�5H��H��D;)�\�Y�������`H�<�H��H�D>H�D$�D$$���zL�T$0H�L�L$$1�L��L�L�D�|�A�G�D�>=~�	D��D��������BA�PH�A�@�D��������Hc�A�P�=z��H�H�H�Bf����H��H��I��D;:���R��~$H��M�<�1��E�t�D�t�H��9���A��H��H��9��=����D$$�������m��D�D$(L��1�M�L�E��~5D�B�4L��HcËJ��H��H��I���(�@D�X�H9�u׉�H��L9�u�H�|$�G�P������O�Q�������H�5���<�����T�ǃ��<>�����4>�QkHc�H�5H�Vf��xWH�<���H�H�<�;uA;Ou<Hc�H���t���~-1��L�D9�tHcӃ�H��I���*�B�JH��9��H��h��[]A\A]A^A_�A�E�1�=~��D��D��H�5������B�NH��F�D�������Hc��N�=zeH�H�
H�Af��xRH��H�5H��H��D;(u:�X����H��L��H�<�1�fD�(H���@��t�H���p�9����3���Hc�I�H�D$L9�����L��H��L��A�V ���@�=~wg�ȉ�H�������A��H��4r�B����r�=U2H�H�H�Bf��xH��H�H��;u�xu�HA�FA9F��A�U�Ł����Q�����D��H�5���<D�����T�σ��<>�����4>�Q��Hc�H�5H�Vf��xnH��H�5H��H��D;*uV;JuQH��H�<��W��~BHc�D�G��H�4�I�4��.�FD�F��tHc�H�4�I�4��.�F�~�\�H��L$I�H�D$L9������L��H��L��A�V �L$A���@�=~wlD��D��H�������A��H��4r�B�D����r�=U4H�H�H�Bf��x!H��H�H��D;u
�xuD�@A�FA9Ft"H�t$L��L��D�D$�L$�D�D$�L$A�U���c�����Q���c����A�P���c�����D��H�5���<D�����T�σ��<>�����<>�D�ǃ��<>�D����4>�.�^���Hc�H�5H�Vf���F�����H�5H�RH��D;*�+���;J�"���D;B����Hc�H�IH�<֋W�������HcË��H��I���(�@�x��t$Hc�Hk�Hk�IċDA�,$A�D$A�D$�\����f��IA�,$A�D$�A�A�L$=~����A��H�=��A����BH��4GB�GƉ������H��G�=zmH�H�5H�Ff��xZH��H�=H�4�H�4�;uCD�FE��~:I��1��A�t�D9�tHc���H�<�I�<��/�G�wH��A9��A�����1������H�t$L��L���L$�A�U��L$Ł��&����������L�\$0D�|$(��1�I�SD�L$,D�l$M��H�<�A�G�L�4�I��f�M��E��~SE��~EL�D$A�:A�L��A�pHc�D�B ��H��H��I���(�@�x�pD�@9�u�L�D$I��M9�u�I��M9�u�D�l$H�|$�G�P���c�����O�Q���c����D�GA�P���c�����D��H�5���<D�����T�σ��<>�����<>��ǃ��<>�����4>�.�e���Hc�H�5H�Vf���M���H�<R��H�H�<�;�3���;O�*���D;G� ���Hc�H�@�t����
���1�@�L�D9�tHcӃ�H��I���*�B�JH��9�������A���|���1����1����1����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign////////////////////////////////////////////////
//////////////	///////////////////////////////////////////////////������������������������������������������������������	

������������:698+RRRRRRRRRRRRRRRRRRR43210/.-RRRR+R*RR
RRRRRRRRRRRRRRRR
RRRR%RRRRRRRRRRRRRRRRR%$#"!
RRRRRRRRR����������������������5&8%:0$49
	76321/
.-,+*)('!#" ������������������������{����ct	
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{({{{{{{{{{12���h�p*'yo/,&k.
�)�G5I�Y
?��!�������:����w��P����h�~�b�.���"j��a�%���g����s�@�ZSO\����H
z�lT�8�D��J7����w������������������jE
��%�e@���jXa�hl�$�d?�����^�������|"�b=���a8��{`��YZ���H
�f0��yQ���������tJ�hf����S���I�g1����R�����������@�^(���B��|d������t�������������C�a+���H\������A�_)���D�}L�j������UK�i����Tm����D	�b,���J��o���������3����n������E
�c-���Le����B�`*���F�~F�d.uU��N��h/�����?�]'����@f�����������}�q������Tp��->\&���>i������~�=��[%���<��Q�o4���Z���j�����M�k�����Vg��V���1�v��k���<��$�:�:��"d��6{G�e/����P���;�#����8����������c��������9��!���S4by+��������8�� �����2��w����������r�������)���������������r���a��
���_��������x����l�����
��������`��.�sN������������1�vP���^$qy�	P�2��Y5FMW]	��K����?�;D������A������������O@������E�67���*�oJ�������k������S�U�����)�nI����i���������O�m����XI����CN�l�������W��������9:������]��������9�������[��v����7�|�������0������uV�����_�������3�xR���(��u��
������������������2�wQ��}W&�ss3x��0�u������"��o+�pK�����=m����������'�gB
�����e��������&�fA	�����~cA
�����bT�������]�6}R�p�����[�����������P�n������Y����������������� �";��Kw��_ �����6�{������.v��4�yw�����*����?'����������/�tO��-����,�qL���������������(�mH��U�g����^�����iD��Y)���7��S�q�����\���������W�������`=�Z������9{��~X\��5��z,5�z����,�������z��$��Q�����������-�rM��������G �hC����lG���������'�t�������Z���������������������
�����������	�X������E������!�<�����#�c>���kF����I��#�x�C����M��:z2;�s���������%8rO������|������������������������!�n#�p���������������������
�����%�����������������������������������������������������������������������������[�����������������������0�����������J��������������������������������H����������G(������������������������&�����������������������������������������������������������/���������������<��������������������������5������������������������������������������������������������������������������������������������������������V������������������������������������N��������������������������������������������������������������������������������������������1������������������������.������������������������������*������������������������������������������������L������������T��������������������������������������������������������������������������������������������������+����������������>����������������B��3������R��������������������������������������������!������������������������������7������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������������������������������������������V�
{VVVVVVVVVVVVVVVVVVVVV�VVVVVVVVVVVVVVV~VVVVVVVVVV�VW_�1R����"#��F�ij�O3�VosN��������yH��C	���<���k�*���������.��-hP��R�g����r�* �g�Y��	=f�u��ftd gMl0�/��.w	��������������������������i����j�@iX�AjYE���`q����7`S@�� ^l�����5^R?������kh���W�?hWD��"��p��b���������9bTA����ml������Cl[F������r��d����;dUB���nx������OxaL���vx�$�Mv`K���rw��#�Ir^I�����u��!����V����\��������3\Q>��
j�����f��������=fVC���!oX�v����/XO<������������x����8���(6����t�����Kt_J���Yv#�"�0Yw�������T&������+TM:��
�����]�
���4]���������V�����-VN;����2�����������S|cN��!��z��
&�R��������)RL9�����i���e������<e�n������En�G���s)�������������p�������Gp]H����Zt�� �1ZP=�������|����U~dO��"��_{���(�6_��QzbM�� ��yA%���������W�eP��#�}|gQ��%���~k=��)z���j����(��;������7����~�������_��n�{B��z���s]��1����������t^��2�����
��6	���yc���7�������������?Z�i��=��Q���g������>g���r����0S�����*S9,��(����p|��.����^��m��4A�������������]���l����@�������L������[��j���>��������6������A��������4����l���*������0��2Y�~h��<�������������#������m���+$��"g�������J���&iS���'�������wa0�5������������.v`���4�������
���{eC�9����������"�0����?������o����-��y
�������E���.�-��I�������,�Q������Z����O���������3����������`��o���C������\�k��u?<�����$���:u_��3�������������q����/����$����R{���Lxb���6��	���N������zd��8��*��n�,�,��������hR���&*���������f���$3��}��*J��	}g��;��T�������[U�F�����T}�����������'Y�������������������
������	������b��q���E&����X�������y��5����Py����
�������>-��(���M��|f���:3������ �����a��p�	D@���.���������'�V���8�����1�)h����+��K���)'����������c���r��F�U��!�,U\�������X���7�2����D��w����!�Nw1�/�
������������������/����uG��s�Lu�Js����������+d�s���G������� f�����I@����%������������P��������'�������5��eH�t���H������%������K�������������oONGW�Fo���.W�������������P�B�������������m�������Dm\����B���9�����4���k���#���BkZ���;�����������aI��=���8a��[�������2[����F�q����E��Hq���>����������c������:c7��5�����������������������-���+��J�������������������������������������������D��������H����������������������M�������������������������������������������������������������������������������������������������������������<�������������������������K��������������C��������������:����8�����������}%��{��������������������������������~�������������������������������������������������������������������������������������/������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������1�����������������������������������������������	
�����������������������������������������
�~7{�x/�� A���s������������������"������������������������!��������
<3������������������������������������������������������)r.�3�������������������������8����?/����B1��������E�������������M�Ye��������^ ����a��������lr.������������t	��������������6�������������������������������������������������������������������v��������������������������������������������������������������������������+�����������������������������������������������������M������������BE�VYx������������_�e�����j���������s��������������������
�����.�����E�������������K����������������������������S��������	����������������������������������8���������@A������������E\������������������������������������������������MK����RKXo����]eX����������������������������������������������������jU��������{*�x����������������������������������������������������$�����������������������4��������������!���N��������������
��������N��������(+����4�����;���������������������@P������������GD��������`i���������������������nrsm��������w��m���������?�����������������������������������������������\����������������������������������������X���G�����
�����������������������������������������{��������&���������0:��������������������J|��������OR]��������W7��������������������\R����a��c�'���������������������������������������R�����������F���������������������������������C���������������������������
����=���������������2�������������7�����<�����������������������������A���������������������N^����q���������������������������������������������}B���������1�������������������������������������+�����������'����������������������������������������������������F�����������{�@���������C�������������������������������������������������������)��������������������������������������	�"�����+-����������������������������.j��������������������3�������������>�������������TdY�{V�������������`�������������h�����	�����������������������������������������������������W�������������������������������������������������������������������������������B����������t����������#�)4������������33<%����?�D ����L��������O��������U����[�j�p���������|J��������������������������������������������2�������������������������������������������������������������������5�����������������������������������������������������X�����������������������������������������������������������������������������������������������������������������#����������������u���������������
q���������������������������$�����)�8����;4I�������������YBag�����������������o^s^xi���������������������������������������������������������������}�������������#�q�����������������������������e�����s������������	�������������	���������������������������������!	����-	�����������������0	�=	�B	����������������������������M	�����W	�����u	���������	;�������������������������	���������	������	������	��������������	��������������������������	����������	��	��	�����������������������������
9��������
���������
�����(
���������H
6����W
C����������������������������������������o
�������������������������������������u
���������z
����������
o�������������������������
t�������������
r�
����������
&���������
'���������������������
5�
*�����
������
������������������
������
������
�������"�*)����;$H�P�XY]�e�m�u�}������������<�������������������������������������
����������#t4��������������������=g����C�M�_���������������������������������lsA�������3���������������v������������������������������������������������������������������������������������������
�����
�
=����5
��������?
xL
2X
�����������������\
�����w
Q�
����������
����������
�����������������
y�������������
,�
~�
w�����
O�
_�
������
�����������������������*����������������_��������&������������;�@Rd0��������������������oT��������w<����������������������������������������������������������%���������������������������������������������������������������c�����������������������������	���������������������������������.���������;�������������������������G�������������Q��������������������\�a���������f~����kbp���������������������~P����������������������g���������������i�����������������������������������������f�����������(�������������������������������������������������"������������������������������������������������������������������������������������������������@��������n������������b����
n��������������-�����>ECNYp����`G����f�{������������������������������������������������������������������������D���������y�������������J�������������I����������L����������������#��������������������������������������������������������������;���������������������������������������������������������������������",������������3�����������������E���������������������������������������������k������w�������������������[������������������������������������������������������������������������������������������D�{���������[��������������p��������������������������j��������������������������������%~������������������������-a����2���������������������7�����BL�Qk����VO����[���������������������e�������������h���������������������������������qfw��(�������������������������H�����1���������`������������������������������
����������/���������L�i���������r�w�������Q���������������`���|�������������p�����a�����Z�����������������8�Q��������������	f�����)�.�����������������8���������������������������������������������_�m�������������rn��������������������������O���������������������������������w���������������������$�������E�����k��������������M|��������'�,�������������H�Yo`A������������v?�������������>������������������������������������������������������������������������������������������������������9������������������������������������������������������������������������������$�����)r��������1����6�;A(������������Q�����������������_?u����������������������&���������������������z�������������������������������������������7�������������}�����������������������������������	M���������������������������(�4�������������������������F�������������������������K[��������e8��������������������������������������������������������������������������������������������)���������������W���������������������������������������������������������,�����T������������������������������������SZ����������������
����#.��������*S��������5���������DTI6��������������������[G��������������������jZr-��������}��������z�����"���������������������������������������������������������������������������������������������>�����������������v���������������������������������������%�:�F���������g����������������������������������������7@������������������������������������M�Y�������������j���������������������t���������h�������������������������������������=�������������s�����������������Y�������������/���������������������������������������������������_��������l&������������*����������������8�Gb������������������������������������������������R�������������������������Y���������������������������������������������������������������������b�f�k ����������������y-�����������������������������/�������������������������������������0�������������������������d�����������������������������������������������������������}�����������������������������������������������������������
���������������������������������a����������������������������%V����������������������������������������*H������������������������������������1V:���������������������������������������������������������������������������������������������������������������������������������������������Ch����������������I������������YP����������������������������������������������������������������������������������������������������o��������y��������������������������������������!���������������y�����������������������������������������������������������������������������������������������������������������������W���������������������������������������������������������������s�������������������������������������������������������������������������������l�����������������������������������������������������	u����������������������������������������������������������������\��������������������������������������������������������������������������������������������������������������������������������������������������������&d��������������������������������������������������������������������������������������������/�����������������������������������������A]������������R�������������������������������������c������������������������������������������������������������������������������������������������2�����������������q�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Y�����������������������������>��������������������������������L��������U������������5��������������������������������������������������������������������������������'m����������������������������������������������������5���������:���������������������������������D���������������������������������������������������������������������������������������������������������������������������������������������������������������������L�������������U�����������������������������������������������������������������������������ku������������������������������������������������qz������������������������������������{������i�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������c�������������������������������������������������������������0��������j��������������������������������#l��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������:k����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������C�������������������������������������������������������������������������������������������������K���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������T�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ue�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������J��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������H���������������������������������������������������������������������������������������������������������������������L�������������������������������������U���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������I�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Incnmncmcizccmcmaniinmanichaeanqaaizzzzqaacinchamscsmmandaicincuneiformcansmeinarmenianasciisinsamaritancszsinavestanincommonindicnumberformsincuneiformnumbersandpunctuationinthaiinipaextensionsmteiinspecialsinitialpunctuationinancientsymbolsinthaanainmiscellaneousmathematicalsymbolsalcinmusicalsymbolslmtailestermlinainlycianinmyanmarextendedalanaalnumintaithamincontrolpicturesinmiscellaneoussymbolsinmalayalamintransportandmapsymbolsinmiscellaneoussymbolsandarrowsinlinearainmiscellaneoussymbolsandpictographstaivietcwcmsinhalalatnlatinitalintamiltamlinlatinextendedcintailetaleinlatinextendedainlinearbideogramsnewtailuelnlinmeeteimayekextensionszlltinrunicincarianarmncariarmiinlatinextendedeincyrillicarmenianinmyanmarinnewtailuecarianmercarabicinmiscellaneoustechnicalinsyriacsamrzinhhansamaritanhanicwtincherokeeinsharadachammanichaeaninmahajanicntrlsinhinruminumeralsymbolsinethiopictamilmiaoinenclosedalphanumericstermchakmainsinhalashavianinosmanyainlatinextendedadditionalosmallthaimaththaainenclosedalphanumericsupplementethiconnectorpunctuationinlowsurrogatesinsinhalaarchaicnumberstaithamthaanalinearadiidcmeroiticcursivemandinmodiinmandaiccwlasciihexdigitdiaterminalpunctuationmendsindwarainwarangcitiinideographicdescriptioncharactersinemoticonsidsinsundanesepiindominotilespcloetitlecaseletterinopticalcharacterrecognitionidstshawcwcfidcontinueinphaistosdiscpeindeseretinspacingmodifierlettersinlydianpshirawhitespaceinscriptionalparthiancherinmathematicalalphanumericsymbolsincopticinhiraganainenclosedcjklettersandmonthsspaceoriyameromahjtirhsorainscriptionalpahlaviinarrowsmahajanijoincincopticepactnumbershanopalmintirhutapatwsinolchikiinlepchanolepcinoghamcoinnkoalphapsalterpahlaviinmroinpalmyrenecommoncfinmiaosodiacriticinsundanesesupplementintifinaghtifinaghodioidcmodidecimalnumberletterdashinsylotinagriinolditalicwspacedsrtideosiddhampermoidsinmahjongtileslolineseparatorimperialaramaicidstartinlaosharadalaolaoomongolianoalphainimperialaramaicncharinlatin1supplementprticprtnddeseretinoldturkicradicalcanadianaboriginalinmodifiertonelettersincaucasianalbaniancopticcasedlettersdinphoeniciansiddprivateusesundaneseinancientgreekmusicalnotationinsiddhamcasedprintininscriptionalparthianininscriptionalpahlavicoptinancientgreeknumberssaurashtramromrooinalphabeticpresentationformslowercasephlipatternwhitespaceinenclosedideographicsupplementspaceseparatorinmathematicaloperatorsomathlisuinpsalterpahlaviolditalichanunooinheritedlepchapinmongolianzpfinalpunctuationotheridcontinueshrdingranthataluotheralphabeticnoncharactercodepointage=1.1age=2.1closepunctuationletternumberage=6.1age=6.2teluage=3.1age=3.2age=5.1age=5.2age=2.0age=6.3inshorthandformatcontrolsinoldnortharabianage=6.0age=4.1ingeneralpunctuationage=3.0age=7.0age=5.0innabataeanage=4.0bamumcontrolinduployaninlatinextendeddinarabicrunicinelbasaninoldsoutharabianinbasiclatinformatinnumberformsinugariticseparatoridsbinaryoperatortagbanwabasssaurnbatintaixuanjingsymbolsjoincontrolotheridstartinbyzantinemusicalsymbolsintagsnabataeaninsuperscriptsandsubscriptsintibetaninsaurashtraothersymbolextinarabicpresentationformsainmiscellaneousmathematicalsymbolsbotherlowercasephoenicianlowerlinbpoinmyanmarextendedblimbinbraillepatternstibtcuneiformbalioldpersianoldpermicpfwordtibetanincyrillicsupplementelbainsupplementalmathematicaloperatorsinbalinesebengalicaseignorableincountingrodnumeralsothertirhutaothernumberbalineseelbasaninunifiedcanadianaboriginalsyllabicslowercaseletterethiopicgraningurmukhisundinethiopicsupplementinoldpersianinoldpermicothermathunassignedhmngnarbbraihanginsorasompengarabplrdingujaratibrahmirunrahexmongpaucsarbogamolowerpdnumberinbrahmiotherletteringothicphagspainletterlikesymbolsyihangulyiiitfnginsupplementalarrowscingreekandcopticxidcinsupplementalarrowsagothicgrextincombininghalfmarksdeprecatedinbassavahxidslinearbingeometricshapesphlpwarangcitiinblockelementsmodifierletterindingbatsdeppunctinhanunoobidicingreekextendedidsbassignedotherpunctuationinhangulsyllablesinarabicmathematicalalphabeticsymbolsinornamentaldingbatsinphagspalycimlyminarabicextendedarjnglycianinalchemicalsymbolsxdigitdigitxidstartinrejangmalayalamidstrinaryoperatorinvaivaivaiihiraganaingeorgianbraillegeorbrahglagoliticinkannadacakmkanahebrinshavianvsinchakmaoghamsylotinagriinunifiedcanadianaboriginalsyllabicsextendedinmeroitichieroglyphsgranthagraphemebasemathsymbolmymrinsupplementaryprivateuseareaamendekikakuiincjkcompatibilityformsinhalfwidthandfullwidthformsincjkcompatibilityideographsinkaithiavstinarabicsupplementtakrisyrcmeeteimayekmyanmaravestaninhanguljamoextendedagothinkatakanaincyrillicextendedaalphabeticsyriacideographicincjkstrokesinlinearbsyllabarytavtintaivietincjkcompatibilityideographssupplementinmeeteimayekkaliinyiradicalsluinoriyahebrewextenderinhighprivateusesurrogateslimbuinbuhidinethiopicextendedaxidcontinueinyijinghexagramsymbolslogicalorderexceptioninhebrewcyrlosmanyaphnxincombiningdiacriticalmarksinkanasupplementinlisuchangeswhencasemappedincombiningdiacriticalmarksforsymbolscwuphaginsmallformvariantsinpahawhhmongotheruppercaseinteluguincombiningdiacriticalmarkssupplementingeometricshapesextendedxpeobamuinbamummarkduplgraphdashpunctuationpatternsyntaxchangeswhentitlecasedinkharoshthiinkhmerjavasylougariticotherdefaultignorablecodepointsoftdotteduideoinphoneticextensionsinjavaneseinvariationselectorskaithicyrillicintakritakrjavanesebidicontrolcaucasianalbanianlydiinsupplementalpunctuationinphoneticextensionssupplementlydianoldturkicinvariationselectorssupplementkthiinhanguljamopatsyninlimbusorasompengoryainkhmersymbolsinglagoliticindevanagaridevakndainbengalisymboldevanagariinmendekikakuibenginvedicextensionsgraphemeextendkannadainbugineseolckmeroitichieroglyphsugarintagaloginbamumsupplementolchikiincurrencysymbolstagbinaegeannumbersintagbanwauppercasedefaultignorablecodepointglaginkatakanaphoneticextensionschangeswhencasefoldedinpaucinhauinprivateuseareapaucinhauspacingmarkkhmrkharinarabicpresentationformsbchangeswhenlowercasedtglginethiopicextendedincombiningdiacriticalmarksextendedoupperincjksymbolsandpunctuationbopopunctuationcombiningmarkinplayingcardsinbopomofohypheninkhojkinkonkooenclosingmarkopenpunctuationcurrencysymbolinverticalformshexmodifiersymbolinlatinextendedbkharoshthicherokeepahawhhmongcypriotincypriotsyllabarypalmyreneupperaghbgeorgiangujrgrbasegujaratihexdigitkhmeruppercaseletterinsupplementalarrowsbsurrogateunifiedideographnonspacingmarkothergraphemeextendindevanagariextendedorkhingeorgiansupplementoldnortharabiantagalogkhojbopomoforejangbuhdincjkradicalssupplementinkanbunvariationselectorinkangxiradicalsinhighsurrogatesinsupplementaryprivateuseareabogrextbatkinhanguljamoextendedbinbatakincyrillicextendedbinnoblockanyxsuxbugiinkhudawaditeluguchangeswhenuppercasedgrekguruparagraphseparatorbugineseinyisyllablesegypkhudawadiunknownbassavahinegyptianhieroglyphsbuhidinkayahliinmeroiticcursiveincjkcompatibilityoldsoutharabianquotationmarkinhangulcompatibilityjamoqmarkincjkunifiedideographsextensioncskincjkunifiedideographsextensionaincjkunifiedideographskatakanakayahliduployanincjkunifiedideographsextensiondinbopomofoextendedkhojkizyyyegyptianhieroglyphsincjkunifiedideographsextensionbbatakblankinboxdrawinggreekgurmukhigrlinkgraphemelink(`����/�/p�������p�����@		�
�
��P_��P���`�����$�/04�gpj�j�k�n�o���������P����������������������� ��� ���
������������@���?�ߦ�������������P���O��������������0����/����������`���_��O�����������������o�ok�k�j�j@jojh?j0/4$$ �#������_������O����PO����`O��`@_?�
�

_
�	�	 	?			��@_?0o/������P0O/����������@�?�������p���P�o�0�O� �/�����P����O���������������������������0�o��/������ߪ`���_������ߩ`��0�_��/������ߨ@��0�?��/� ���������@����?���Ϥ���N���M�M4�M3�32�2�1�1�1�1�1�1�1�101�11/1�0�0@0�00?0�/�//�/�.�...�-�-�-�-0---/-�,�,`,,,_,+�+*�*�)�)))�'�'�'�''�'&�&�%�%�%�%%%`$�$@$_$$?$#�#"�"�!�!P!�!!O!� � � � p �  o ����������O������ �����PO�����`@_ ?����������������
�


�����
�


�	�			��@_?����PO���0�/�p�o��P��O��bwz�������/1VY_a�����������
JM���-0>@[^^����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*9=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�������KP|���7;IM�������� EHMPWYY[[]]_}�������������� d f q t � � � � � � � !�!�!�#$&$@$J$`$s+v+�+�+�+�+�+�+�+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-B.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީ���6�@�M�P�Y�\�ª۪����	���� �&�(�.�0�_�d�e�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �-�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37�������������#0JPz���������'0coo6@U`g
578<<?UW���			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`
�
�
�
�
�
59UXrx�����H`~MRo�����46CPv��������=����(*02359<DGHKMWW]cflpt��������DPY���������� �#$n$p$t$0.4h8j@j^j`jijnjoj�j�j�j�jkEkPkYk[kakckwk}k�koDoPo~o�o�o���j�p�|�����������������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0����������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`���������֦�4�@����������������������������������	��	��
��
����������
��
 �����%wz~�������'1VY_a�����������
JM���-0>@[^^������	w	y		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*359=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�����KP|���7;IM������ EHMPWYY[[]]_}�������������� d f q t � � � � � � � !�!�!�#$&$@$J$`$�&'L+P+Y+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-;.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީߩ�6�@�M�P�Y�\�{���ª۪����	���� �&�(�.�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �&�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37��������� #0J���������
578<<?UW_			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`

59UXrxH`~MRo������46C�������� n#$b$p$s$0.4h8joDoPo~o�o�o������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R���������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0��������������������
��.�0�k�p�������:�@�H�P�Q�� �0�5�7�|������������������>�@�@�B��������=�@�C�P�g���@�E�O�����s���֦�4�@����������������������������������	��	��
��
����������
��
 �����%wz~�������'1VY_a�����������
JM���-0>@[^^������	w	y		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*359=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�����KP|���7;IM������ EHMPWYY[[]]_}�������������� d j q t � � � � � � � !�!�!�#$&$@$J$`$�&'L+P+Y+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-;.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީߩ�6�@�M�P�Y�\�{���ª۪����	���� �&�(�.�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �&�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37��������� #0J���������
578<<?UW_			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`

59UXrxH`~MRo������46C�������� n#$b$p$s$0.4h8joDoPo~o�o�o������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R���������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0��������������������
��.�0�k�p�������:�@�H�P�Q�� �0�5�7�|������������������>�@�@�B��������=�@�C�P�g���@�E�O�����s���֦�4�@����������������������������������	��	��
��
����������
��
 �����%wz~�������'1VY_a�����������
JM���-0>@[^^������	w	y		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*359=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�����KP|���7;IM������ EHMPWYY[[]]_}�������������� d j q t � � � � � � � !�!�!�#$&$@$J$`$�&'L+P+Y+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-;.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީߩ�6�@�M�P�Y�\�{���ª۪����	���� �&�(�.�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �&�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37��������� #0J���������
578<<?UW_			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`

59UXrxH`~MRo������46C�������� n#$b$p$s$0.4h8joDoPo~o�o�o������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R���������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0��������������������
��.�0�k�p�������:�@�H�P�Q�� �0�5�7�|������������������>�@�@�B��������=�@�C�P�g���@�E�O�����s���֦�4�@����������������������������������	��	��
��
����������
��
 ������wz~�������'1VY_a���������
JM���-0>@[^^	w	y		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*359=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq����������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�����KP|�������7;IM���� EHMPWYY[[]]_}�������������� d j q t � � � � � � � !�!�!�#$&$@$J$`$�&'�'�'�'�'L+P+Y+,.,0,^,`,�,�,%-0-e-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-1.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M˟�����ƤФ+�@�s�|��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީߩ�6�@�M�P�Y�\�{���ª۪ߪ��	���� �&�(�.�������������������-�0�m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �&�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37��������� #0J���������
578<<?UW_			9	?	?	








3
8
:
?
G
P
X
`

59UXrxH`~MRo�� n#$b$p$s$0.4h8j������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R������������+�0��������������������
��.�0�i�p�������:�@�H�P�Q�� �0�5�7�|������������������>�@�@�B��������=�P�g����������������� �%�(�+�-�-�0�3�5�@�E�O�����s���֦�4�@����������������������������������	��	��
��
����������
��
 ������wz~�������%1VY_a���������!^`
JM���-0>	9	<	N	P	U	X	r	y		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfq��������������������������������(*359=DFHJMUVXY`cfox����������������������������






(
*
9
=
D
F
H
J
M
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq������������HJMPVXXZ]`����������������Z_|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�����KP|����7;IM���� EHMPWYY[[]]_}�������������� d j q t � � � � � � � !�!�!�#$&$@$J$`$�&�&�&�&�&�&�&'''	'''')'K'M'M'O'R'V'^'a'�'�'�'�'�'�'�'�'�'�'L+P+Y+,.,0,^,`,�,�,%-0-e-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-1.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M˟�����ƤФ+�@�_�b�s�|������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީߩ�6�@�M�P�Y�\�{���ª۪ߪ������������������-�0�m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �&�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37��������� #0J���������
578<<?UW_			9	?	?	








3
8
:
?
G
P
X
`

59UXrxH`~�� n#$b$p$s$0.4����&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R������������+�0����
��.�1�1�=�=�?�?�B�B�F�F�J�N�W�W�_�_�y�y�{�|��������������1�@�H���֦�4���������������������������������	��	��
��
����������
��
 ������wz~�������#1VY_a���������!^`
JM���	9	<	M	P	T	X	r	{		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfq��������������������������������(*359=DFHJMUVXY`cfox����������������������������






(
*
9
=
D
F
H
J
M
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq��������������Y_���HJMPVXXZ]`����������������Z_|����v���� 6@S`lnprs������ w�� +0;@@Dmpt�������KP|����7;IM�� EHMPWYY[[]]_}�������������� d j q t � � � � � � � !O!S!�!�!�#$&$@$J$`$�&�&�&�&�&'''	'''')'K'M'M'O'R'V'V'X'^'a'�'�'�'�'�'�'�'�'�'�'L+P+T+,.,0,^,`,o,q,},�,�,�,%-0-e-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-0.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2C2P2�23�M�Mß�����Ƥ�+�@�_�b�s�|��������+�@�w���ĨΨ٨�S�_�_��6�@�M�P�Y�\�_�����-�0�j�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �&�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37��������� #0J���������
578<<??			9	?	?	








3
8
:
?
G
P
X
 n#$b$p$s$����&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R������������+�0�����֦��������������������������������	��	��
��
����������
��
 ������otuz~�����������1VY_a���������!:@^`
JMm����	9	<	M	P	T	X	p	{		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<CGHKMVW\]_afq������������������������������(*359>DFHJMUV`afo����������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIjq���������!#')*,269@Y����Y_���HJMPVXXZ]`����������������Z_|����v���� 6@S`lnprs������ w�� +0;@@Dmpt�������KP|����� EHMPWYY[[]]_}�������������� c j q t � � � � � � � !N!S!�!�!�#$&$@$J$`$�&�&�&'''	'''')'K'M'M'O'R'V'V'X'^'a'�'�'�'�'�'�'�'�'�'�'+ +#+,.,0,^,`,l,t,w,�,�,�,%-0-e-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-....�.�.�.�./�/�/�/0?0A0�0�0�01,111�1�1�1�1�1�12 2C2P2�23�M�M�������Ƥ�� �!��+�@�w�����-�0�j�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �#�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37� #0J���������
578<<??				








3
8
:
?
G
P
X
 n#$b$p$s$����&�*����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������֦��������������������������������	��	��
��
����������
��
 ������APotuzz~~��������������1VY_a�����������!:@^`
JMm��	9	<	M	P	T	X	p	}	}	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<CGHKMVW\]_afq������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIjq���������!#')*,269@Y����Y_���HJMPVXXZ]`����������������Z_|����v���� 6@S`lnprs������ w�� +0;@@Dmpt����������� EHMPWYY[[]]_}�������������� c j q t � � � � � � � !L!S!�!�!�#$&$@$J$`$�&�&�&'''	'''')'K'M'M'O'R'V'V'X'^'a'�'�'�'�'�'�'�'�'�'�'+,.,0,^,�,�,�,%-0-e-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-....�.�.�.�./�/�/�/0?0A0�0�0�01,111�1�1�1�1�1�12 2C2P2�23�M�M�������Ƥ���+�����-�0�j�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �#�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37� #0J���������
578<<??








3
8
:
?
G
P
X
����&�*����E��V��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������֦��������������������������������	��	��
��
����������
��
 ������6PW]otuzz~~�����������������1VY_a�������������!:@X`
JMO��	9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<CGHKMVW\]_afq��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIjq���������!#')*,269@Y������Y_���FHHJMPVXXZ]`������������������������ FHZa|��v���� 6@S`lnprs������ w�� +0;@@Dmpt��k��� EHMPWYY[[]]_}�������������� T W W _ c j q t � � � � � !;!=!K!S!�!�!�#$&$@$J$`$&&}&�&�&�&�&'''	'''')'K'M'M'O'R'V'V'X'^'a'�'�'�'�'�'�'�'�'
+�.�.�.�./�/�/�/0?0A0�0�0�01,111�1�1�1�12 2C2P2}22�23�M�M�������Ƥ����-�0�j������6�8�<�>�>�@�A�C�D�F����?�P����������� �#�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37? #0J�������
578<<??����&�*����V��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������֦��������������������������������	��	��
��
����������
��
 ������ "3P���O`otuzz~~�����������������1VY_a�������������!:@U`���
,0J��			9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02369<CGHKMVW\]_afp��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIjq���������!#')*,269@Y������Y_���FHHJMPVXXZ]`������������������������ FHZa|��v���� 6@S`lnprs���� w����� EHMPWYY[[]]_}�������������� R W W _ c j q t � � � � � !:!=!K!S!�!�!�#$&$@$J$`$�$%&&&&}&�&�&'''	'''')'K'M'M'O'R'V'V'X'^'a'�'�'�'�'�'�'�'�'�*�.�.�.�./�/�/�/0?0A0�0�0�01,111�1�1�1�12 2C2Q2{22�2�2�23v3{3�3�3�34�MN�������Ƥ����-�0�j������6�8�<�>�>�@�A�C�D�F����?�P����������� �#�0�F�I�R�T�f�h�k�p�t�v�������������������������� #0J%(M����&�*����T�V���������������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������֦��������������������������������	��	��
��
����������
��
 �����"3P���N`btuzz~~�������������������������1VY_a�������������!:@U`mp���
,0J��			9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02369<CGHKMVW\]_afp��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIjq���������!#')*,269@Y������Y_���FHHJMPVXXZ]`������������������������ FHZa|��v�������� w����� EHMPWYY[[]]_}�������������� F H M j p t � � � � � !:!S!�!�!�!"�"#{#}#�#$&$@$J$`$�$%�%�%�%&&&q&'''	'''')'K'M'M'O'R'V'V'X'^'a'g'v'�'�'�'�'�'(�(�.�.�.�./�/�/�/0:0>0?0A0�0�0�0�0�01,111�1�1�122 2C2`2{22�2�2�2�2�23v3{3�3�3�34�MN�����������������¤ĤƤƤ����-������6�8�<�>�>�@�A�C�D�F����?�P��������� �#�0�D�I�R�T�f�h�k�p�r�t�t�v��������^�a������������������� #0J%(M����&�*����T�V���������������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������֦��������������������������������	��	��
��
����������
��
 ����q"3P���N`btuzz~~�������������������������1VY_a�������������!:@U`mp���
,0J��			9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02369<CGHKMVW\]_afp��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIjq���������!#')*,269@Y������Y_���FHHJMPVXXZ]`������������������������ FHZa|��v�������� w����� EHMPWYY[[]]_}�������������� F H M j p t � � � � � !:!S!�!�!�!"�"#{#}#�#$&$@$J$`$�$%�%�%�%&&&q&'''	'''')'K'M'M'O'R'V'V'X'^'a'g'v'�'�'�'�'�'(�(�.�.�.�./�/�/�/0:0>0?0A0�0�0�0�0�01,111�1�1�122 2C2`2{22�2�2�2�2�23v3{3�3�3�34�MN�����������������¤ĤƤƤ����-������6�8�<�>�>�@�A�C�D�F����?�P��������� �#�0�D�I�R�T�f�h�k�p�r�t�t�v��������^�a�����������������������������������������������������	��	��
��
����������
��
����8��P�����E`atuzz~~��������������������OQ\^�������������1VY_a�������������!:@R`mp���������			9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02369<CGHKMVW\]_afp��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
:?[������������������������������������GIiq�����������������Y_������ EHMPWYY[[]]_}�������������� . 0 F j p t � � � � � !8!S!�!�!�!"�"###z#$$$@$J$`$�$%�%�%�%&&&o&'''	'''')'K'M'M'O'R'V'V'X'^'a'g'v'�'�'�'�'�'070?0?0A0�0�0�0�0�01,111�1�1�122 2C2`2{22�2�2�2�2�23v3{3�3�3�3N������-������6�8�<�>�>�@�A�C�D�F����?�P��������� �#�0�D�I�R�T�f�h�k�p�r�t�t�v��������^�a�����������������������������������������������������	��	��
��
����������
��
����8��P�����E`atuzz~~��������������������OQ\^�������������1VY_a�������������!:@R`mp���������			9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02369<CGHKMVW\]_afp��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
:?[������������������������������������GIiq�����������������Y_������ EHMPWYY[[]]_}�������������� . 0 F j p t � � � � � !8!S!�!�!�!"�"###z#$$$@$J$`$�$%�%�%�%&&&o&'''	'''')'K'M'M'O'R'V'V'X'^'a'g'v'�'�'�'�'�'070?0?0A0�0�0�0�0�01,111�1�1�122 2C2`2{22�2�2�2�2�23v3{3�3�3�3N������-������6�8�<�>�>�@�A�C�D�F����?�P��������� �#�0�D�I�R�T�f�h�k�p�r�t�t�v��������^�a�����������������������������������������������������	��	��
��
����������
��
���� ��P�����E`atuzz~~��������������������OQ\^�������������1VY_a�����������!:@R`mp���������			9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02369<CGHKMVW\]_afp��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
:?[������������������������������������������Y_������ EHMPWYY[[]]_}�������������� . 0 F j p t � � � � � !8!S!�!�!�!"�"###z#$$$@$J$`$�$%�%�%�%&&&o&'''	'''')'K'M'M'O'R'V'V'X'^'a'g'v'�'�'�'�'�'070?0?0A0�0�0�0�0�01,111�1�1�122 2C2`2{22�2�2�2�2�23v3{3�3�3�3N���-������6�8�<�>�>�@�A�C�D�F����?�P��������� �#�0�D�I�R�T�f�h�k�p�r�t�t�v��������^�a�������������������Vxy��������00WX``������������KL����./??\]_����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	






)
)
1
1
4
4
7
7
:
;
=
=
C
F
I
J
N
P
R
X
]
]
_
e
v
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�

))1144:;EFIJNUX[^^dex���������������������������������

)):<EEIINTWWZ_depw�����������������������������








;
<
E
E
I
I
O
V
X
_
d
e
v
x
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
;>\�������������������������������������HHmp��������������IINOWWYY^_����������������[\}��������

7?T_mmqqt������x����,/<?ACnou������__}~��������LO}��8:JL����������FGNOXXZZ\\^^~��������������e e r s � � � � � � � � �!�!�#�#'$?$K$_$t+u+�+�+�+�+�+�+�+�+/,/,_,_,�,�,&-&-(-,-.-/-h-n-q-~-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-C..�.�.�.�.�/�/�/�/@0@0�0�011.101�1�1�1�1�1�122�2�2�M�M͟������ǤϤ,�?���������������������,�/�:�?�x��Ũͨڨߨ����T�^�}��ΩΩکݩ����7�?�N�O�Z�[�êڪ���������'�'�/�/�`�c�f���������������������n�o��������7�7�=�=�?�?�B�B�E�E���@�O�������������.�/�S�S�g�g�l�o�u�u����������������������������'';;>>NO^��46�������������$/KO{����������(/dnp�7?V_h�		669;=>VV����		:	>	@		�	�	�	�	







4
7
;
>
H
O
Y
_
�
�
�
�
�
�
68VWsw������I_�NQp~������55DOw��������>����
))1144:;EFIJNVX\demou�������EOZ����������#�#o$o$u$�//4�g9j?j_j_jjjmjpj�j�j�j�j�jFkOkZkZkbkbkxk|k�k�nEoOoo�o�o�����k�o�}������������������'�(�����F���W�_�r���U�U�����������������������������������������:�:�?�?�E�E�G�I�Q�Q���������������������� � �#�#�%�&�(�(�3�3�8�8�:�:�<�A�C�F�H�H�J�J�L�L�P�P�S�S�U�V�X�X�Z�Z�\�\�^�^�`�`�c�c�e�f�k�k�s�s�x�x�}�}���������������������������,�/���������������������
��/�/�l�o�������;�?�I�O�R���-�/�~��������������K�O�z�z�����C�D��������t�������H�O�Z�_���������צ��5�?����������!/:@[^``{~�������������������� ' 0 > A S U ^ �!_$%u'�'�+..000 00000>�?�E�F�	
  ��  ( ) 
���<!!..??������d	e	JKbbghnn56		DE��Z[^_;<~< = G I ....<.<.00������������v�w�ΨϨ/�/�ȩɩ]�_�����R�R�V�W�������a�a�V
W
GH��AC����89;<����ABnjoj�j�j7k8kDkDk��������iq��!!.!.!�0�0@D��������������ij//IIhh������VVXXbb������--��q q H!I!|,|,"�#�V�W�������������&�'�Z�[�������������*�+�^�_�����	IIsswwyy��j o )#*# OO_`��e e d1d1�����������4�MN̟��������!�!�#�$�'�)�֦�4�@���.�.�.�./�/�/�/�/�/�/�/�	�	�	�	>>WW��������>
>
W
W
�
�
�
�
 
 .0/0����>>WW������e�e�n�r�����������������������������������������	��	��
��
����������
��
������������`!o!�$�$0�I�P�i�p�������������EEzz,jxx��q q   � � p!!�$�$|,},����p�p�����\�_�����@@��FF��

CC��66{{001050�0�0�0�0����ϩϩ��p�p�ݪݪ��p�p�]]��BkCk�^^``���������NPW]btuzz����YY����������KRWX������0J������<	<	M	M	Q	T	q	q	�	�	�	�	<
<
M
M
�
�
�
�
<<MM��MM����M
M
�
�
GLNN��557799>?������779:����������9;u|��44DDks��67x}��������,j�������������������,�,/./.*0/0�0�0�0�0o�o�|�}����������!���������ĨĨ��+�.�S�S�����������{�}���ª����[�_����� �-�>�>�@�@�p�p����������
�
��34ss��56��<<MMflpt����??���j�j�o�og�i�m�r�{���������������00!0)080:04�MN̟�m�p��֦�4�@�����EE����������KWY_pp��������0?��#%'),���	:	;	>	L	N	O	U	W	b	c	�	�	�	�	�	�	�	�	�	�	�	�	

>
B
G
H
K
L
Q
Q
p
q
u
u
�
�
�
�
�
�
�
�
�
�
>DGHKLVWbc����������>DFHJLUVbc������������

>
D
F
H
J
L
W
W
b
c
�
�
�
�
�
�
�
�
�
�
114:MM��������q�����+688;>VY^`bbghqt����__23RSrs���� +08����U^at5C��������$5�����$�$�-�-t�{�����#�'�������è&�*�G�R���������)�6�C�C�L�M���������������������������vz





8E����'2����,477��>DGHKLWWbc������0>@@��0k6kQo~o����0�I�P�i�p���09AFaf��!�&�A�F��^^��������  2 4 @ @ a d } ~ � � � � � � � � � � !!!!
!!!!!!$!$!(!)!,!-!/!1!3!8!<!?!E!I!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!##�#�#�#�#�#�#�#�#�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%&&@&@&B&B&`&c&m&n&�'�'�'�'�)�)�)�)�)�)a�a�c�c�h�h�<�<�>�>��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p�����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������V!!,,..:;??~~��������
��0>^^d	e	Z[
JKahmn��56����	DE��Z[]_;?~< = G I ....<.<.A.A.00����
�����v�w�ΨϨ/�/�ǩɩ]�_�ߪߪ����P�R�T�W�����������a�a�d�d�����WW		V
W
�
�
:?��GM��AC����8<����ABp$t$njoj�j�j7k9kDkDk����
""''����  9 : B.B.0000A�D�����b�c�
--����  ..�0�0c�c�
�
�e�e�--����  S S { { � � ""....:.;.@.@.000000�0�01�2�X�X�c�c�
�
� 
   * . f i ����������������������Pz��`�����
�
@j^j`jijnjojDPY��������
�
�
�
Pv6@U`g=kEkPkYk[kakckwk}k�k(*02359<DGHKMWW]cflpt'�j�p�|��������������j�j�j�j0coo��������������oDoPo~o�o�o�	�	�	�	�	�	46C@[^^MRo������H`rx@UX_`

@UW_�����������ͩЩ٩ީߩ����h8jФ��-0>0.459?��ª۪ߪ ^`|������6�@�M�P�Y�\�_� 	9	?	?	����0�S�_�_��-�/�/���ĨΨ٨�+�P7;IMO������@�w�				 �#$n$p$t$KP|








3
8
:
?
G
P
X
�����+�0-g-o-p---,.,0,^,�����������,�,�,�,(�(
578<<??����P����
&(:<=?MP]��Pmpt +0;@@DO`lnprs@S 4o��KUppQ	R	������������������ 
 � � *0-0�0�0�� �-�����g�i�{������������O0J#�����Ƥ�.�.�.�./�/0000!0)080;04�MN̟�m�p��֦�4�@������1-1�1�1�0�0�0�0�1�1�2�23W3f�o�q�����A0�0�0�0���� w�������������������� HJMPVXXZ]`����������������Z]|���-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-��	���� �&�(�.��.0/011�122`2~2`�|����������������������������������-%-'-'-----����`��GIlq���������������������������������������������:@[
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
��






:
=
D
F
H
J
N
W
W
`
c
f
u
y

����������������������������
(*9=DFHJMUVXY`cfox��������������������������������(*02359<DGHKMVW\]_cfw
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�








(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�		P	S	c	f		�����
JMO7
 ?AJV_joq���P����P����=�P���������p�t�v���`~����!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~�������������������������	�������6�8�<�>�>�@�A�C�D�F�O�1VY_a���������/++xx�-�-@�������$psuwz}��������������&*]afj�� EHMPWYY[[]]_}��������������&!&!e�e�@����E�!AZaz������������%,\bekwy��q q   � � *!+!2!2!N!N!`!�!`,,"�������������������0�Z�\�_�d�d���!�:�A�Z��@[`{���������������tt~~������@@`i��d	e	??������56����������   d f p t ~ � � � � !%!'!)!,!1!3!M!O!_!�!�!�!�#$&$@$J$`$�')s+v+�+�+�+�+�+�+�+.B.�/�/00000 00070<0?0�0�0�0�0�0�0�1�1�1�1 2_22�2X3�3�M�M�!�����0�9�.�.�ϩϩ[�[�>�?���0�R�T�f�h�k������ �;�@�[�e�p�p�������������37?��������������&�)�f�j�z��������������V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R������������+�0����������������������.�0�k�p����������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`������� (M	M	�	�	M
M
�
�
MM��MM��M
M
�
�
::��9:44��``DD����--��ĨĨS�S�����������?
?
FF��34��55��MM����??��� ~����pwz���������/1VY_a�����������������J`oq��������
/M�������$$((0>@X^^��	9	;	;	=	@	I	L	N	P	X	a	d	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
>
@
Y
\
^
^
f
o
r
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359==@@GHKL\]_afw��������������������������������(*9==ADXY`afox������������������������������






:
=
=
?
@
F
H
J
L
N
N
`
a
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
023?FO[������������������������������������46688:GIl����������,1188;<?WZ]apu��������������HJMPVXXZ]`����������������Z`|������� 156@Q`lnp��������������
 w������#&)+0138@@Dmpt�������UWWaacdmr������355;;=ACKPjt|�����������������+45;IM������������� EHMPWYY[[]]_}�������������� 
  ' / _ p q t � � � � � !�!�!�#$&$@$J$`$s+v+�+�+�+�+�+�+�+,.,0,^,`,�,�,�,�,%-'-'-----0-g-o-p-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-.B.�.�.�.�./�/�/�/0)000?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@�n�s�s�~��������������������������
��$�'�+�0�9�@�w���èΨ٨����%�.�F�R�S�_�|���������������ͩϩ٩ީ�����(�/�0�3�4�@�B�D�K�M�M�P�Y�\�{�}�������������������ªª۪������	���� �&�(�.�0�_�d�e�����������������������m�p���������6�8�<�>�>�@�A�C�D�F����?�P�����������0�R�T�f�h�k�p�t�v��������������������������
&(:<=?MP]��37�������������#0JPu���������'0coo6@U`g
578<<?UW���			9	?	?	�	�	�	�	






3
@
G
P
X
`
�
�
�
�
�
59UXrx�����H`~7GMRo������������&,,6CPrtv����������.23558=������(*02359==??ADGHKM]c��������������������������2;<>>ADPY���������������� �#$n$p$t$0.4h8j@j^j`jijnjoj�j�j�j�jk/k7kEkPkYk[kakckwk}k�koDoPo~o�o�o���j�p�|���������������������&�)�d�f�f�j�m��������������A�E�E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0����������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`�������֦�4�@����o������������K_pp��������0J����#%')-Y[�	:	:	<	<	A	H	M	M	Q	W	b	c	�	�	�	�	�	�	�	�	�	�	�	�	�	�	

<
<
A
B
G
H
K
M
Q
Q
p
q
u
u
�
�
�
�
�
�
�
�
�
�
�
�
<<>?ADMMVWbc����������>@FHJMUVbc����������������

>
>
A
D
M
M
W
W
b
c
�
�
�
�
�
�
�
�
�
�
114:GN��������557799q~����������-0279:=>XY^`qt��������]_24RSrs����������
�� "'(229;VVX^``bbels|��446:<<BBks����������������,367���������������� 
 � � �,�,--�-�-*0/0�0�0o�r�t�}�������������%�&�ĨĨ��&�-�G�Q�������������������)�.�1�2�5�6�C�C�L�L�|�|������������������������������������� �-���������vz





8
:
?
?
�
�
8F�����'+-4ss����/14467����<<>>@@WWflpt��������������������3:==?@���������j�j0k6k�o�o����e�e�g�i�n�r�{�����������B�D��������OO_`��  * . ` o d1d1�����������������s�z��y09AZ__az����������������������tvw{}�������������/1VYYa��������������� in���������JM�����-@[���c	f	o	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfoqq��������������������������������(*9=DFHJMUVXY`cfo����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
o
z

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:@NPY������������������������������������ )557799>GIlq�������IP����������HJMPVXXZ]`����������������Z]_iq����lo������ 4@S`lnprs��������
 w���� +0;Fmpt������ ^`|�������KPYks��7@IM}�������� EHMPWYY[[]]_}��������������������? @ T T q q   � � � � � � � � !!!!
!!!!!!$!$!&!&!(!(!*!9!<!?!E!I!N!N!`!�!,.,0,^,`,�,�,�,-%-'-'-----0-g-o-o--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-00!0/0105080<0A0�0�0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф�����+�@�o�t�}���������"�����������������'�@�s���ĨШ٨��������-�0�S�`�|�����ϩ٩����6�@�M�P�Y�`�v�z�ª۪ݪ�������	���� �&�(�.�0�Z�\�_�d�e���������������������m�p�������(�*�6�8�<�>�>�@�A�C�D�F����]�d�=�P����������� �-�3�4�M�O�q�q�s�s�w�w�y�y�{�{�}�}������!�:�?�?�A�Z�f�����������
&(:<=?MP]��@t��������0JPz�����������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	








3
8
:
?
?
`
|
�
�
�
�
�
�
5@U`r��HFfo�����46?Psvv����7����(*02359<DGHKMWW]cflpt����������@DDPY���������� �#$n$0.4h8j@j^j`jij�j�j�j�jk6k@kCkPkYkckwk}k�koDoPo~o�o�o���j�p�|�������������e�i�m�r�{�����������B�D��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p������������������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������֦�4�@�����!AZaz��������������������ptvw{}�������������/1VYYa����� Jnoq�����������/M���������$$((@X��	9	=	=	P	P	X	a	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	





(
*
0
2
3
5
6
8
9
Y
\
^
^
r
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359==\]_aqq����������������������(*9==XY`a������������������




:
=
=
N
N
`
a
z

�
�
�
�
�
�
�
�
�
�
022@F����������������������������������@GIl��*??PUZ]aaefnpu������������HJMPVXXZ]`����������������Z����lo������ 1@Q`lnp������ w������Pmpt���� T��3EK������#MOZ}������� EHMPWYY[[]]_}��������������������q q   � � !!!!
!!!!!!$!$!&!&!(!(!*!9!<!?!E!I!N!N!`!�!,.,0,^,`,�,�,�,�,�,-%-'-'-----0-g-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-00!0)0105080<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф������*�+�@�n���������"���������������������
��"�@�s������������
�%�0�F�`�|�����ϩϩ���������(�@�B�D�K�`�v�z�z�~�������������������ªª۪ݪ������	���� �&�(�.�0�Z�\�_�d�e����������������m�p���������(�*�6�8�<�>�>�@�A�C�D�F����]�d�=�P���������q�q�s�s�w�w�y�y�{�{�}�}����!�:�A�Z�f���������������
&(:<=?MP]��@t����0JPu���������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	






3
`
|
�
�
�
�
�
�
5@U`r��H7����&Prvv������+��(*02359==]a��������/DD�������� �#$n$0.4h8j@j^j�j�jk/k@kCkckwk}k�koDoPoPo�o�o���j�p�|����������T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������֦�4�@����r09AZ__az����������������������tvwz}�������������/1VYYa��������������� in���������JM�����-@[���c	f	o	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfoqq��������������������������������(*9=DFHJMUVXY`cfo����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
o
z

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:@NPY������������������������������������ )557799>GIlq�������IP����������HJMPVXXZ]`����������������Z]_iq����lo������ 4@S`lnprs��������
 w���� +0;Fmpt������ ^`|�������KPYks��7@IM}�������� EHMPWYY[[]]_}��������������������? @ T T q q   � � � � � � � � !!!!
!!!!!!$!$!&!&!(!(!*!9!<!?!E!I!N!N!`!�!,.,0,^,`,�,�,�,-%-'-'-----0-g-o-o--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-00!0/0105080<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф�����+�@�o�t�}���������"�����������������'�@�s���ĨШ٨��������-�0�S�`�|�����ϩ٩����6�@�M�P�Y�`�v�z�ª۪ݪ�������	���� �&�(�.�0�Z�\�_�d�e���������������������m�p�������(�*�6�8�<�>�>�@�A�C�D�F����=�P����������� �-�3�4�M�O�p�t�v�����!�:�?�?�A�Z�f�����������
&(:<=?MP]��@t��������0JPz�����������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	








3
8
:
?
?
`
|
�
�
�
�
�
�
5@U`r��HFfo�����46?Psvv����7����(*02359<DGHKMWW]cflpt����������@DDPY���������� �#$n$0.4h8j@j^j`jij�j�j�j�jk6k@kCkPkYkckwk}k�koDoPo~o�o�o���j�p�|�������������e�i�m�r�{�����������B�D��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p������������������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������֦�4�@�����AZaz��������������������ptvwz}�������������/1VYYa����� Jnoq�����������/M���������$$((@X��	9	=	=	P	P	X	a	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	





(
*
0
2
3
5
6
8
9
Y
\
^
^
r
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359==\]_aqq����������������������(*9==XY`a������������������




:
=
=
N
N
`
a
z

�
�
�
�
�
�
�
�
�
�
023@F����������������������������������@GIl��*??PUZ]aaefnpu������������HJMPVXXZ]`����������������Z����lo������ 1@Q`lnp������ w������Pmpt���� T��3EK������#MOZ}������� EHMPWYY[[]]_}��������������������q q   � � !!!!
!!!!!!$!$!&!&!(!(!*!9!<!?!E!I!N!N!`!�!,.,0,^,`,�,�,�,�,�,-%-'-'-----0-g-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-00!0)0105080<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф������*�+�@�n���������"���������������������
��"�@�s������������
�%�0�F�`�|�����ϩϩ���������(�@�B�D�K�`�v�z�z�~�������������������ªª۪ݪ������	���� �&�(�.�0�Z�\�_�d�e����������������m�p���������(�*�6�8�<�>�>�@�A�C�D�F����=�P���������p�t�v���!�:�A�Z�f�����������
&(:<=?MP]��@t����0JPu���������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	






3
`
|
�
�
�
�
�
�
5@U`r��H7����&Prvv������+��(*02359==]a��������/DD�������� �#$n$0.4h8j@j^j�j�jk/k@kCkckwk}k�koDoPoPo�o�o���j�p�|����������T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������֦�4�@����kAZaz�������79������������ "3:TVWYY[\`accefhiklooqruu}}����������EEpsvw{}�����������������/1Va�������yy}}���� EHMPWYY[[]]_}��������������������&!&!*!+!2!2!N!N!`!!�!�!�$�$,.,0,^,`,p,r,s,u,v,~,�,�,�,�,�,-%-'-'-----@�m�����"�/�2�o�y�����������������������!�:�A�Z�O��TAZ������

  ""$$&&((**,,..0022446699;;==??AACCEEGGIJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxy{{}}������������������������������������������������������������������������������������������

  ""$$&&((**,,..0022:;=>AACFHHJJLLNNEEpprrvv���������������������������������������������������/``bbddffhhjjllnnpprrttvvxxzz||~~����������������������������������������������������������������������������������������������������������������������

  ""$$&&((**,,..1V��������

  ""$$&&((**,,..0022446688::<<>>@@BBDDFFHHJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxxzz||~~��������������������������������������������������������������������������������������������������������������������������(/8?HMYY[[]]__ho������������������&!&!*!+!2!2!`!o!�!�!�$�$,.,`,`,b,d,g,g,i,i,k,k,m,p,r,r,u,u,~,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l���������������������������������������������������������"�"�$�$�&�&�(�(�*�*�,�,�.�.�2�2�4�4�6�6�8�8�:�:�<�<�>�>�@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l�n�n�y�y�{�{�}�~�������������������������������������������������������������������������������������!�:�'��Xaz������		

!!##%%''))++--//11335577::<<>>@@BBDDFFHIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwzz||~���������������������������������������������������������������������������������������������		

##%%''))++--//1133<<?@BBGGIIKKMMOTVWYY[\`accefhiklooqruu}}����������EEqqssww{}��������������������������������������0_aacceeggiikkmmooqqssuuwwyy{{}}����������������������������������������������������������������������������������������������������������������������		

!!##%%''))++--//a�yy}}		

!!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwyy{{}}��������������������������������������������������������������������������������������������������������������������� '07@EPW`gp}��������������������������N!N!p!!�!�!�$�$0,^,a,a,e,f,h,h,j,j,l,l,s,s,v,v,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,-%-'-'-----A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m���������������������������������������������������������#�#�%�%�'�'�)�)�+�+�-�-�/�/�3�3�5�5�7�7�9�9�;�;�=�=�?�?�A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m�o�o�z�z�|�|���������������������������������������������������������������������������A�Z�(O��Waz������		

!!##%%''))++--//11335577::<<>>@@BBDDFFHIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwzz||~�������������������������������������������������������������������������������������������		

##%%''))++--//1133<<?@BBGGIIKKMMOTVWYY[\`accefhiklooqruu}}����������EEqqssww{}��������������������������������������0_aacceeggiikkmmooqqssuuwwyy{{}}����������������������������������������������������������������������������������������������������������������������		

!!##%%''))++--//a�yy}}		

!!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwyy{{}}��������������������������������������������������������������������������������������������������������������������� '07@EPW`gp}��������������������������N!N!p!!�!�!�$�$0,^,a,a,e,f,h,h,j,j,l,l,s,s,v,v,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,-%-'-'-----A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m���������������������������������������������������������#�#�%�%�'�'�)�)�+�+�-�-�/�/�3�3�5�5�7�7�9�9�;�;�=�=�?�?�A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m�o�o�z�z�|�|���������������������������������������������������������������������������A�Z�(O��IAZ����

  ""$$&&((**,,..0022446699;;==??AACCEEGGJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxy{{}}������������������������������������������������������������������������������������������

  ""$$&&((**,,..0022:;=>AACFHHJJLLNNpprrvv���������������������������������������������/``bbddffhhjjllnnpprrttvvxxzz||~~����������������������������������������������������������������������������������������������������������������������

  ""$$&&((**,,..1V������

  ""$$&&((**,,..0022446688::<<>>@@BBDDFFHHJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxxzz||~~������������������������������������������������������������������������������������������������������������������������(/8?HMYY[[]]__ho����������������&!&!*!+!2!2!`!o!�!�!�$�$,.,`,`,b,d,g,g,i,i,k,k,m,p,r,r,u,u,~,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l���������������������������������������������������������"�"�$�$�&�&�(�(�*�*�,�,�.�.�2�2�4�4�6�6�8�8�:�:�<�<�>�>�@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l�n�n�y�y�{�{�}�~���������������������������������������������������������������������������������!�:�'��O''..::^^``�����������otuzz������YY������������@@K_pp������0J������-Y[�	:	:	<	<	A	H	M	M	Q	W	b	c	q	q	�	�	�	�	�	�	�	�	�	�	

<
<
A
B
G
H
K
M
Q
Q
p
q
u
u
�
�
�
�
�
�
�
�
�
�
�
�
<<??ADMMVVbc������>@FHJMUVbc������������

A
D
M
M
b
c
�
�
�
�
�
�
114:FN����������557799q~����������-0279:=>XY^`qt����������]_24RSrs������������CC�� "'(229;VVX^``bbels|����446:<<BBks����������������,367x}������������,jxx����������������    $ $ ' ' * . ` d f o q q   � � � � |,},�,�,o-o---�-�-/./.00*0-01050;0;0�0�0�0�0��������o�r�t�}��������������!�p�p���������������%�&�ĨĨ��&�-�G�Q�����������������ϩϩ��)�.�1�2�5�6�C�C�L�L�p�p�|�|���������������������ݪݪ��������[�_����������������� �-�R�R�U�U�����������>�>�@�@�p�p���������������vz





8
:
?
?
�
�
8F�������'+-4ss����/14467����<<@@flpt��������������3:==?@���������j�j0k6k@kCk�o�o��������g�i�s�����������B�D����� �AZaz����������������������EEpsvwz}�������������/1Va�������� EHMPWYY[[]]_}��������������������q q   � � !!!!
!!!!!!$!$!&!&!(!(!*!-!/!4!9!9!<!?!E!I!N!N!`!!�!�!�$�$,.,0,^,`,�,�,�,�,�,-%-'-'-----@�m�����"�������������������0�Z�\�_�d�e�����!�:�A�Z�O���T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p���������������0�I�P�i�p����++<>^^||~~����������������  2 4 @ @ D D R R a d z ~ � � � � � � � � � � !!!!
!!!!!!$!$!(!)!,!-!/!1!3!8!<!I!K!K!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�"## #!#|#|#�#�#�#�#�#�#�#�#�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%&&@&@&B&B&`&c&m&o&�'�')�*0+D+G+L+)�)�a�f�h�h�����<�<�>�>�\�\�^�^������T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R���������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~�������������������������  ���� 
 / / _ _ 00) ) ( (   ���� 
 ( ) / / _ _ 00����������������������	�	pp����y
y
446688������������@@��ajt|!!!!!	!!!!!!#!%!%!'!'!)!)!.!.!:!;!J!J!L!M!O!O!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!####"#(#+#{#}#�#�#�#�#�#$&$@$J$�$�$%�%�%�%�%�%&n&p&g'�'�'(�(+/+E+F+M+s+v+�+�+�+�+�+�+�+�,�,�.�.�.�./�/�/�/0000 0 06070>0?0�1�1�1�1�1�122*2G2P2P2`22�2�2�2�23�3�M�M��Ƥ(�+�6�7�9�9�w�y���������������7?y���������wx�
�
<k?kEkEk��������&�)�d�j�l��������������A�E�E��V��+�0��������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`�������@++<>||~~����������D D R R z | � � !!@!D!K!K!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�" #!#|#|#�#�#�#�#�%�%�%�%�%�%o&o&�'�'�'�'�'�')�)�)�)�)�)�)�*0+D+G+L+)�)�b�b�d�f�����\�\�^�^�������������������5�5�O�O�o�o�����������������^^``������������������uu���������������0�0�� �!�����[�[�����>�>�@�@���$$�����	�	�	�	�
�
��??��� � 8�8�����i�i��������$$++<>^^``||~~��������������������������uu�����������������	�	�	�	�
�
pp��y
y
??446688��������������@@��ajt|������������D D R R z | � � � � !!!!!	!!!!!!#!%!%!'!'!)!)!.!.!:!;!@!D!J!M!O!O!�!##(#+#�#$&$@$J$�$�$%g'�'�'�'�'�'�)�)�)�)�)�)s+v+�+�+�+�+�+�+�+�,�,�.�.�.�./�/�/�/0000 0 06070>0?0�0�0�1�1�1�1�1�122*2G2P2P2`22�2�2�2�23�3�M�M��Ƥ�� �!�����(�+�6�9�w�y�[�[�)�)���������b�b�d�f�i�i�������>�>�@�@�\�\�^�^���������7?y���������wx�
�
<k?kEkEk��������&�)�d�j�l��������������A�E�E��V���������������5�5�O�O�o�o������������������+�0��������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`�������K(([[{{::<<��    E E } } � � ##
#
#)#)#h'h'j'j'l'l'n'n'p'p'r'r't't'�'�'�'�'�'�'�'�'�'�'�'�'�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)".".$.$.&.&.(.(.B.B.00
0
00000000000000000?�?���5�5�7�7�9�9�;�;�=�=�?�?�A�A�C�C�G�G�Y�Y�[�[�]�]���;�;�[�[�_�_�b�b��!#%'**,,./:;?@\\��������~~��Z_����������	

jm��
��0>^^d	e	p	p	�
�
�
�
OOZ[������JO��`hmn��56����
DE����Z`��;?~����    ' 0 8 ; > A C G Q S S U ^ �,�,�,�,p-p-..............*...0.9.<.?.A.A.00=0=0�0�0����
��s�s�~�~����t�w�ΨϨ����.�/�_�_���ͩީߩ\�_�ުߪ��������0�0�E�F�I�L�P�R�T�W�_�a�h�h�j�k�����
�
�������� �<�<�a�a�d�e�����ooWW		?	?	P
X


�
�
9?��GM����@Ctu����8=����ACp$t$njoj�j�j7k;kDkDk������      9 9 ....	.	..... . .
��    : : ....
.
.
.
...!.!.H))]]}};;==��F F ~ ~ � � 	#	###*#*#i'i'k'k'm'm'o'o'q'q's's'u'u'�'�'�'�'�'�'�'�'�'�'�'�'�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)#.#.%.%.'.'.).).	0	000
0
000000000000000>�>���6�6�8�8�:�:�<�<�>�>�@�@�B�B�D�D�H�H�Z�Z�\�\�^�^�	�	�=�=�]�]�`�`�c�c�--����  ....:.;.@.@.000000�0�01�2�X�X�c�c�
�
�__? @ T T 3�4�M�O�?�?�4�������	�	rw��x~p
u
*3i|����p p t y � � P!_!�!�!`$�$�$�$v'�'�,�,�1�1 2)2H2O2Q2_2�2�2�2�20�5�3ux���� #X_y��		@
G
}
~
�
�
�
�
X_x��`~Re����[kak`�q���������`!�!�!�!00!0)080:0��@tAAJJ��$n$i09������`i����f	o	�	�	�	�	f
o
�
�
forw��fox~��f
u
�
�
PY�� 3@I��i|������FO������PY��@IPYp p t y � � P!�!�!�!`$�$�$�$v'�'�,�,00!0)080:0�1�1 2)2H2O2Q2_2�2�2�2�2 �)���0�5�Ш٨�	�Щ٩���P�Y������3@x���� #AAJJ����X_y��		@
G
}
~
�
�
�
�
X_x��`~Ro��6?��������PY����$n$`jijPkYk[kak`�q������������o������������K_pp��������0J����#%')-Y[�	:	:	<	<	A	H	M	M	Q	W	b	c	�	�	�	�	�	�	�	�	�	�	

<
<
A
B
G
H
K
M
Q
Q
p
q
u
u
�
�
�
�
�
�
�
�
�
�
�
�
<<??ADMMVVbc������>@FHJMUVbc������������

A
D
M
M
b
c
�
�
�
�
�
�
114:GN��������557799q~����������-0279:=>XY^`qt��������]_24RSrs����������
�� "'(229;VVX^``bbels|��446:<<BBks����������������,367����������������� � � � � � �,�,--�-�-*0-0�0�0o�o�t�}�������������%�&�ĨĨ��&�-�G�Q�������������������)�.�1�2�5�6�C�C�L�L�|�|������������������������������������� �-�����vz





8
:
?
?
�
�
8F�����'+-4ss����/14467����<<@@flpt��������������3:==?@���������j�j0k6k�o�o����g�i�{�����������B�D����������� � � � p�r��		;	;	>	@	I	L	N	O	�	�	�	�	�	�	�	�	�	�	

>
@
�
�
�
�
�
�
�
�
>>@@GHKLWW����������AD������������

>
@
F
H
J
L
W
W
�
�
�
�
�
�
�
�
>?+,1188;<VWbdgm��������������#&)+0138����UUWWaacdmr55;;=ACD����������������$+45����.0/0#�$�'�'�������èR�S�����������������/�0�3�4�M�M�{�{�}�}�����������������������,,������,.2355��>?ADGHKMWWbc��������������02;<>>������Qo~oe�f�m�r��o������������K_pp��������0J����#%')-Y[�	:	<	>	O	Q	W	b	c	�	�	�	�	�	�	�	�	�	�	�	�	�	�	

<
<
>
B
G
H
K
M
Q
Q
p
q
u
u
�
�
�
�
�
�
�
�
�
�
�
�
<<>DGHKMVWbc����������>DFHJMUVbc��������������

>
D
F
H
J
M
W
W
b
c
�
�
�
�
�
�
�
�
�
�
�
�
114:GN��������557799>?q���������+>VY^`bdgmqt������]_24RSrs����
�� +0;����U^`|��4Dks������$7��������������� � �,�,--�-�-*0/0�0�0o�r�t�}�������������#�'�������Ĩ��&�-�G�S�����������)�6�C�C�L�M�{�}����������������������������������� �-�����vz





8
:
?
?
�
�
8F���'4ss����,7��<<>DGHKMWWbcflpt������0@���j�j0k6kQo~o�o�o����e�i�m�r�{�����������B�D������nAZ����

  ""$$&&((**,,..0022446699;;==??AACCEEGGJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxy{{}}������������������������������������������������������������������������������������������

  ""$$&&((**,,..0022:;=>AACFHHJJLLNNpprrvv�����������������������������������������������/``bbddffhhjjllnnpprrttvvxxzz||~~����������������������������������������������������������������������������������������������������������������������

  ""$$&&((**,,..1V������

  ""$$&&((**,,..0022446688::<<>>@@BBDDFFHHJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxxzz||~~������������������������������������������������������������������������������������������������������������������������(/8?HMYY[[]]__ho����������!!!!!
!!!!!!!$!$!&!&!(!(!*!-!0!3!>!?!E!E!�!�!,.,`,`,b,d,g,g,i,i,k,k,m,p,r,r,u,u,~,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l���������������������������������������������������������"�"�$�$�&�&�(�(�*�*�,�,�.�.�2�2�4�4�6�6�8�8�:�:�<�<�>�>�@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l�n�n�y�y�{�{�}�~���������������������������������������������������������������������������������!�:�'����4�M�h����������������������������������
�
����8�9�;�>�@�D�F�F�J�P�l������������!�<�U�p������������4�V�n���������
����������������������������������� ?AJnoq���������/M�����@X��	9	=	=	P	P	X	a	r	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	





(
*
0
2
3
5
6
8
9
Y
\
^
^
r
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359==\]_aqq����������������������(*9==XY`a������������������




:
=
=
N
N
`
a
z

�
�
�
�
�
�
�
�
�
�
023@E��������������������������������@GIl��*??PUZ]aaefnpu������HJMPVXXZ]`����������������Z����lo������ 1@Q`lnp���� BDw������Pmpt���� T3EK������#MOZw������5!8!0-g-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-00<0<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟�����Ф������*�+�n�n��������������
��"�@�s������������
�%�0�F�`�|��������������(�@�B�D�K�`�o�q�v�z�z�~�������������������ªª۪ܪ������	���� �&�(�.����������������m�p�����(�*�6�8�<�>�>�@�A�C�D�F����=�P���������p�t�v���f�o�q���������������
&(:<=?MP]������0@BIPu������P�'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	






3
`
|
�
�
�
�
�
�
5@U`r��H7����&Prvv������+��(*02359==]a��������/DD������ �#0.4h8j@j^j�j�jk/kckwk}k�koDoPoPo���j�p�|����������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������֦�4�@����8����������ttzzYY@@������$$((q	q	FF������CC��x},jxx��q q   � � |,},o-o-/./.001050;0;0�0�0�0�0����������������p�p���������ϩϩ��p�p�ݪݪ��\�_�p�p�����@kCk�o�oqaz������		

!!##%%''))++--//11335578::<<>>@@BBDDFFHIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwzz||~�������������������������������������������������������������������������������������������		

!!##%%''))++--//1139<<?@BBGGIIKKMMO���qqssww{}��������������������������������������0_aacceeggiikkmmooqqssuuwwyy{{}}����������������������������������������������������������������������������������������������������������������������		

!!##%%''))++--//a�+kwy�		

!!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwyy{{}}����������������������������������������������������������������������������������������������������������������������� '07@EPW`gp}��������������������������
!
!!!!!/!/!4!4!9!9!<!=!F!I!N!N!�!�!0,^,a,a,e,f,h,h,j,j,l,l,q,q,s,t,v,{,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,-%-'-'-----A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m���������������������������������������������������������#�#�%�%�'�'�)�)�+�+�-�-�/�1�3�3�5�5�7�7�9�9�;�;�=�=�?�?�A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m�o�o�q�x�z�z�|�|�������������������������������������������������������������������������������0�Z�d�e�����A�Z�(O���3�N�T�V�g�������������������������7�R�k������������"�;�V�o������������������6�N�P�U�p�������������������uAZaz��������������psvw{}�������������/1Va�������+kwy� EHMPWYY[[]]_}��������������������!!!!
!!!!!!$!$!&!&!(!(!*!-!/!4!9!9!<!?!E!I!N!N!�!�!,.,0,^,`,{,~,�,�,�,�,�,-%-'-'-----@�m�����"�o�q�������������������0�Z�d�e�����!�:�A�Z�O���T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p���������������AZaz��������������������ptvwz}�������������/1VYYa����� Jnoq�����������/M���������$$((@X��	9	=	=	P	P	X	a	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	





(
*
0
2
3
5
6
8
9
Y
\
^
^
r
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359==\]_aqq����������������������(*9==XY`a������������������




:
=
=
N
N
`
a
z

�
�
�
�
�
�
�
�
�
�
023@F����������������������������������@GIl��*??PUZ]aaefnpu������������HJMPVXXZ]`����������������Z����lo������ 1@Q`lnp������ w������Pmpt���� T��3EK������#MOZ}������� EHMPWYY[[]]_}��������������������q q   � � !!!!
!!!!!!$!$!&!&!(!(!*!-!/!9!<!?!E!I!N!N!�!�!,.,0,^,`,�,�,�,�,�,-%-'-'-----0-g-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-/./.001050;0<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф������*�+�@�n���������"���������������������
��"�@�s������������
�%�0�F�`�|�����ϩϩ���������(�@�B�D�K�`�v�z�z�~�������������������ªª۪ݪ������	���� �&�(�.�0�Z�\�_�d�e����������������m�p���������(�*�6�8�<�>�>�@�A�C�D�F����=�P���������p�t�v���!�:�A�Z�f�����������
&(:<=?MP]������0@BIPu�������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	






3
`
|
�
�
�
�
�
�
5@U`r��H7����&Prvv������+��(*02359==]a��������/DD�������� �#0.4h8j@j^j�j�jk/k@kCkckwk}k�koDoPoPo�o�o���j�p�|����������T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������֦�4�@��������������Xxy��������00WX``������������KL����./??\]_����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	






)
)
1
1
4
4
7
7
:
;
=
=
C
F
I
J
N
P
R
X
]
]
_
e
v
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�

))1144:;EFIJNUX[^^dex���������������������������������

)):<EEIINTWWZ_depw�����������������������������








;
<
E
E
I
I
O
V
X
_
d
e
v
x
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
;>\�������������������������������������HHmp��������������IINOWWYY^_����������������[\}��������

7?T_mmqqt������x����,/<?ACnou������__}~��������LO}��8:JL����������FGNOXXZZ\\^^~��������������e e r s � � � � � � � � �!�!�#�#'$?$K$_$t+u+�+�+�+�+�+�+�+�+/,/,_,_,�,�,&-&-(-,-.-/-h-n-q-~-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-C..�.�.�.�.�/�/�/�/@0@0�0�011.101�1�1�1�1�1�122�2�2�M�M͟������ǤϤ,�?���������������������,�/�:�?�x��Ũͨڨߨ����T�^�}��ΩΩکݩ����7�?�N�O�Z�[�êڪ���������'�'�/�/�`�c�f���������������������n�o��������7�7�=�=�?�?�B�B�E�E���@�O�������������.�/�S�S�g�g�l�o�u�u����������������������������'';;>>NO^��46�������������$/KO{����������(/dnp�7?V_h�		669;=>VV����		:	>	@		�	�	�	�	







4
7
;
>
H
O
Y
_
�
�
�
�
�
�
68VWsw������I_�NQp~������55DOw��������>����
))1144:;EFIJNVX\demou�������EOZ����������#�#o$o$u$�//4�g9j?j_j_jjjmjpj�j�j�j�j�jFkOkZkZkbkbkxk|k�k�nEoOoo�o�o�����k�o�}������������������'�(�����F���W�_�r���U�U�����������������������������������������:�:�?�?�E�E�G�I�Q�Q���������������������� � �#�#�%�&�(�(�3�3�8�8�:�:�<�A�C�F�H�H�J�J�L�L�P�P�S�S�U�V�X�X�Z�Z�\�\�^�^�`�`�c�c�e�f�k�k�s�s�x�x�}�}���������������������������,�/���������������������
��/�/�l�o�������;�?�I�O�R���-�/�~��������������K�O�z�z�����C�D��������t�������H�O�Z�_���������צ��5�?����������������������  * . ` d f o ��������������s�z� [���xy��������00WX``�������������KL����./??\]_����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	






)
)
1
1
4
4
7
7
:
;
=
=
C
F
I
J
N
P
R
X
]
]
_
e
v
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�

))1144:;EFIJNUX[^^dex���������������������������������

)):<EEIINTWWZ_depw�����������������������������








;
<
E
E
I
I
O
V
X
_
d
e
v
x
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
;>\�������������������������������������HHmp��������������IINOWWYY^_����������������[\}��������

7?T_mmqqt������x����,/<?ACnou������__}~��������LO}��8:JL����������FGNOXXZZ\\^^~��������������  * . ` o r s � � � � � � � � �!�!�#�#'$?$K$_$t+u+�+�+�+�+�+�+�+�+/,/,_,_,�,�,&-&-(-,-.-/-h-n-q-~-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-C..�.�.�.�.�/�/�/�/@0@0�0�011.101�1�1�1�1�1�122�2�2�M�M͟������ǤϤ,�?���������������������,�/�:�?�x��Ũͨڨߨ����T�^�}��ΩΩکݩ����7�?�N�O�Z�[�êڪ���������'�'�/�/�`�c�f���������������������n�o��������7�7�=�=�?�?�B�B�E�E���@�O�������������.�/�S�S�g�g�l�o�u�u�������������������������'';;>>NO^��46�������������$/KO{����������(/dnp�7?V_h�		669;=>VV����		:	>	@		�	�	�	�	







4
7
;
>
H
O
Y
_
�
�
�
�
�
�
68VWsw������I_�NQp~��������55DOw��������>����
))1144:;EFIJNVX\demou�������EOZ����������#�#o$o$u$�//4�g9j?j_j_jjjmjpj�j�j�j�j�jFkOkZkZkbkbkxk|k�k�nEoOoo�o�o�����k�o�}������������������'�(�s�z�����F���W�_�r���U�U�����������������������������������������:�:�?�?�E�E�G�I�Q�Q���������������������� � �#�#�%�&�(�(�3�3�8�8�:�:�<�A�C�F�H�H�J�J�L�L�P�P�S�S�U�V�X�X�Z�Z�\�\�^�^�`�`�c�c�e�f�k�k�s�s�x�x�}�}���������������������������,�/���������������������
��/�/�l�o�������;�?�I�O�R���-�/�~��������������K�O�z�z�����C�D��������t�������H�O�Z�_���������צ��5�?���������Xwz�������/1VY_a�����������
JM���-0>@[^^����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*9=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�������KP|���7;IM�������� EHMPWYY[[]]_}�������������� d f q t � � � � � � � !�!�!�#$&$@$J$`$s+v+�+�+�+�+�+�+�+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-B.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީ���6�@�M�P�Y�\�ª۪����	���� �&�(�.�0�_�d�e�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �-�0�R�T�f�h�k�p�t�v��������������������������
&(:<=?MP]��37�������������#0JPz���������'0coo6@U`g
578<<?UW���			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`
�
�
�
�
�
59UXrx�����H`~MRo�����46CPv��������=����(*02359<DGHKMWW]cflpt��������DPY���������� �#$n$p$t$0.4h8j@j^j`jijnjoj�j�j�j�jkEkPkYk[kakckwk}k�koDoPo~o�o�o���j�p�|�����������������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0����������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`�������֦�4�@���� �������v09AZaz��������������������EEptvwz}�������������/1VYYa��������������� WYin���������?M�������,@X�����;	=	L	N	P	U	c	f	o	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
>
B
G
H
K
L
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359=DGHKLVW\]_cfoqq��������������������������������(*9=DFHJLUVXY`cfo����������������������������






:
=
D
F
H
J
L
N
N
W
W
`
c
f
o
z

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:@FMMPY������������������������������������ )@GIlq�����688;IPbehn����������������HJMPVXXZ]`����������������Z__����lo������ 3@S`lnprs���������� w���� +08Fmpt������ ^at������35CEKPY������5@IM}��������� EHMPWYY[[]]_}��������������������q q   � � !!!!
!!!!!!$!$!&!&!(!(!*!-!/!9!<!?!E!I!N!N!`!�!�$�$,.,0,^,`,�,�,�,�,�,-%-'-'-----0-g-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-/./.00!0)0105080<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф�����+�@�n�t�{���������"���������������������
��'�@�s���èШ٨��������*�0�R�`�|���������ϩ٩������6�@�M�P�Y�`�v�z�z�~�������ªª۪ݪ�������	���� �&�(�.�0�Z�\�_�d�e�������������������m�p�������(�*�6�8�<�>�>�@�A�C�D�F����=�P���������p�t�v�����!�:�A�Z�f�����������
&(:<=?MP]��@t����0JPz�����������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	








3
`
|
�
�
�
�
�
�
5@U`r��HEfo������26?Prvv������477����(*02359=DGHKLWW]c������������>@@DDPY���������� �#$n$0.4h8j@j^j`jij�j�jk6k@kCkPkYkckwk}k�koDoPo~o�o�o���j�p�|��������������T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p��������������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������0�I�P�i�p���֦�4�@����u09AZ__az��������������������tvwz}�������������/1VYYa��������������� in���������JM�����-@[���c	f	o	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfoqq��������������������������������(*9=DFHJMUVXY`cfo����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
o
z

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:@NPY������������������������������������ )557799>GIlq�������IP����������HJMPVXXZ]`����������������Z]_����lo������ 4@S`lnprs��������
 w���� +0;Fmpt������ ^`|�������KPYks��7@IM}�������� EHMPWYY[[]]_}��������������������? @ T T q q   � � � � !!!!
!!!!!!$!$!&!&!(!(!*!-!/!9!<!?!E!I!N!N!`!�!�$�$,.,0,^,`,�,�,�,-%-'-'-----0-g-o-o--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-/./.00!0/0105080<0A0�0�0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф�����+�@�r�t�}���������"�����������������'�@�s���ĨШ٨��������-�0�S�`�|�����ϩ٩����6�@�M�P�Y�`�v�z�ª۪ݪ�������	���� �&�(�.�0�Z�\�_�d�e���������������������m�p�������(�*�6�8�<�>�>�@�A�C�D�F����=�P����������� �-�3�4�M�O�p�t�v�����!�:�?�?�A�Z�f�����������
&(:<=?MP]��@t��������0JPz�����������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	








3
8
:
?
?
`
|
�
�
�
�
�
�
5@U`r��HFfo�����46?Psvv����7����(*02359<DGHKMWW]cflpt����������@DDPY���������� �#$n$0.4h8j@j^j`jij�j�j�j�jk6k@kCkPkYkckwk}k�koDoPo~o�o�o���j�p�|�������������e�i�m�r�{�����������B�D��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p������������������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������0�I�P�i�p���֦�4�@�����09AFafsAZ����

  ""$$&&((**,,..0022446699;;==??AACCEEGGJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxy{{}}������������������������������������������������������������������������������������������

  ""$$&&((**,,..0022:;=>AACFHHJJLLNNpprrvv�����������������������������������������������/``bbddffhhjjllnnpprrttvvxxzz||~~����������������������������������������������������������������������������������������������������������������������

  ""$$&&((**,,..1V������

  ""$$&&((**,,..0022446688::<<>>@@BBDDFFHHJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxxzz||~~������������������������������������������������������������������������������������������������������������������������(/8?HMYY[[]]__ho����������!!!!!
!!!!!!!$!$!&!&!(!(!*!-!0!3!>!?!E!E!`!o!�!�!�$�$,.,`,`,b,d,g,g,i,i,k,k,m,p,r,r,u,u,~,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l���������������������������������������������������������"�"�$�$�&�&�(�(�*�*�,�,�.�.�2�2�4�4�6�6�8�8�:�:�<�<�>�>�@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l�n�n�y�y�{�{�}�~���������������������������������������������������������������������������������!�:�'����4�M�h����������������������������������
�
����8�9�;�>�@�D�F�F�J�P�l������������!�<�U�p������������4�V�n���������0�I�P�i�p���
	
  ������ 
 ( ) / / _ _ 00�!#%*,/:;?@[]__{{}}������������~~��Z_������������	

jm��
��0>^^d	e	p	p	�
�
�
�
OOZ[:=������JO��`hmn����56����
DE����Z`��;?~���� ' 0 C E Q S ^ } ~ � � ##)#*#h'u'�'�'�'�'�)�)�)�)�)�)�,�,�,�,p-p-...0.B.0000000000=0=0�0�0�0�0����
��s�s�~�~����t�w�ΨϨ����.�/�_�_���ͩީߩ\�_�ުߪ����>�?���0�R�T�a�c�c�h�h�j�k����
������ �;�=�?�?�[�[�]�]�_�e�����ooWW		?	?	P
X


�
�
9?��GM����@Ctu����8=����ACp$t$njoj�j�j7k;kDkDk����Z ~�wz�������/1VY_a�����������
JM���-0>@[^^����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*9=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�������KP|���7;IM�������� EHMPWYY[[]]_}�������������� ' * d f q t � � � � � � � !�!�!�#$&$@$J$`$s+v+�+�+�+�+�+�+�+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-B.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީ���6�@�M�P�Y�\�ª۪����	���� �&�(�.�0�_�d�e�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �-�0�R�T�f�h�k�p�t�v��������������������������
&(:<=?MP]��37�������������#0JPz���������'0coo6@U`g
578<<?UW���			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`
�
�
�
�
�
59UXrx�����H`~MRo�����46CPv��������=����(*02359<DGHKMWW]cflpt��������DPY���������� �#$n$p$t$0.4h8j@j^j`jijnjoj�j�j�j�jkEkPkYk[kakckwk}k�koDoPo~o�o�o���j�p�|�����������������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0����������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`�������֦�4�@���� �����yaz����������		

!!##%%''))++--//11335578::<<>>@@BBDDFFHIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwzz||~�������������������������������������������������������������������������������������������		

!!##%%''))++--//1139<<?@BBGGIIKKMMO�������EEqqsswwz}��������������������������������������0_aacceeggiikkmmooqqssuuwwyy{{}}����������������������������������������������������������������������������������������������������������������������		

!!##%%''))++--//a��		

!!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwyy{{}}����������������������������������������������������������������������������������������������������������������������� '07@EPW`gp}��������������������������q q   � � 
!
!!!!!/!/!4!4!9!9!<!=!F!I!N!N!p!!�!�!�$�$0,^,a,a,e,f,h,h,j,j,l,l,q,q,s,t,v,},�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,-%-'-'-----A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m���������������������������������������������������������#�#�%�%�'�'�)�)�+�+�-�-�/�1�3�3�5�5�7�7�9�9�;�;�=�=�?�?�A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m�o�x�z�z�|�|�������������������������������������������������������������������������������0�Z�\�_�d�e�����A�Z�(O���3�N�T�V�g�������������������������7�R�k������������"�;�V�o������������������6�N�P�U�p�������������������]!~�wz�������/1VY_a�����������
JM���-0>@[^^����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*9=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|�������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�������KP|���7;IM�������� EHMPWYY[[]]_}�������������� ' * . 0 ^ ` d f q t � � � � � � � !�!�!�#$&$@$J$`$s+v+�+�+�+�+�+�+�+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-B.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީ���6�@�M�P�Y�\�ª۪����	���� �&�(�.�0�_�d�e�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �-�0�R�T�f�h�k�p�t�v��������������������������
&(:<=?MP]��37�������������#0JPz���������'0coo6@U`g
578<<?UW���			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`
�
�
�
�
�
59UXrx�����H`~MRo�����46CPv��������=����(*02359<DGHKMWW]cflpt��������DPY���������� �#$n$p$t$0.4h8j@j^j`jijnjoj�j�j�j�jkEkPkYk[kakckwk}k�koDoPo~o�o�o���j�p�|�����������������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0����������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`�������֦�4�@���� �����209`i����f	o	�	�	f
o
�
�
fo��fo��f
o
�
�
PY�� )@I����FO������PY��@IPY �)�Ш٨�	�Щ٩���P�Y��������fo��6?������PY����`jijPkYk�����		  ���� 
 / / _ _ 00XAZaz��������������������EEptvwz}�������������/1VYYa��������������� WY_n�����������?M�������,@X�����;	=	L	N	P	U	c	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
>
B
G
H
K
L
Q
Q
Y
\
^
^
p
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359=DGHKLVW\]_cqq������������������������������(*9=DFHJLUVXY`c��������������������������






:
=
D
F
H
J
L
N
N
W
W
`
c
z

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:@FMM����������������������������������@GIlq�����688;?Pbehn��������������HJMPVXXZ]`����������������Z__����lo������ 3@S`lnprs�������� w���� +08Pmpt���� ^at��35CEK��������5MOZ}��������� EHMPWYY[[]]_}��������������������q q   � � !!!!
!!!!!!$!$!&!&!(!(!*!-!/!9!<!?!E!I!N!N!`!�!�$�$,.,0,^,`,�,�,�,�,�,-%-'-'-----0-g-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-/./.00!0)0105080<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф������*�+�@�n�t�{���������"���������������������
��'�@�s���������
�*�0�R�`�|���������ϩϩ���������6�@�M�`�v�z�z�~�������ªª۪ݪ�������	���� �&�(�.�0�Z�\�_�d�e����������������m�p�������(�*�6�8�<�>�>�@�A�C�D�F����=�P���������p�t�v���!�:�A�Z�f�����������
&(:<=?MP]��@t����0JPz���������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	








3
`
|
�
�
�
�
�
�
5@U`r��HE����2Prvv������477��(*02359=DGHKLWW]c����������>@@DD�������� �#$n$0.4h8j@j^j�j�jk6k@kCkckwk}k�koDoPo~o�o�o���j�p�|��������������T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������0�I�P�i�p���֦�4�@����

ffi�ffl��B���B��������B�������B��R�T�BV�B��a��ff�fi�fl�h1�j�ss��st��t�w
�y
��nI�������B������B������B����P�B��B��������e��te�tk�tm�tv�~v������������������������� ���!���"���#���$���%���&���'���`���a���b���c���d���e���f���g���p��t��|��i0aAbBcCdDeEfFgGhHjJkK*!lLmMnNoOpPqQrRsStTuUvVwWxXyYzZ������������+!�������������������������������������������������x	

! #"%$'&)(+*-,/.325476:9<;>=@?BADCFEHGKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonqpsrutwvzy|{~}�C���������������=� ��������������������������������������������������������������������������������	

#"%$'&)(+*-,/.1032<;?~,@,BAGFIHKJMLONPo,Qm,Rp,S�T�V�W�Y�[�\��`�a��c�e��f��h�i�kb,l��o�qn,r�u�}d,����������D�����E�����qpsrwv{�|�}������������������������������E��������������������������������������&!�������������������������������������������0123456789:;<=>?@ A!B"C#D$E%F&G'H(I)J*K+L,M-N.O/PQRSTUVWXY	Z
[\]
^_a`cbedgfihkjmlonqpsrutwvyx{z}|~������������������������������������������������������������������������������������������������������������������������	

! #"%$'&)(+*-,/.a1b2c3d4e5f6g7h8i9j:k;l<m=n>o?p@qArBsCtDuEvFwGxHyIzJ{K|L}M~NO�P�Q�R�S�T�U�Vy}�}c,	

! #"%$'&)(+*-,/.1032547698;:=<?>A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`�cbedgfihkjmlonqpsrutwvyx{z}|~����������������������������������������������������������������������������������������������������������������������	

 (!)"*#+$,%-&.'/08192:3;4<5=6>7?@HAIBJCKDLEMQYS[U]W_`haibjckdlemfngop�q�r�s�t�u�v�w�x�y�z�{�|�}���������������N!2!p!`!q!a!r!b!s!c!t!d!u!e!v!f!w!g!x!h!y!i!z!j!{!k!|!l!}!m!~!n!!o!�!�!�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$0,,1,,2,,3,,4,,5,,6,,7,,8,,9,	,:,
,;,,<,,=,
,>,,?,,@,,A,,B,,C,,D,,E,,F,,G,,H,,I,,J,,K,,L,,M,,N,,O,,P, ,Q,!,R,",S,#,T,$,U,%,V,&,W,',X,(,Y,),Z,*,[,+,\,,,],-,^,.,a,`,e,:f,>h,g,j,i,l,k,s,r,v,u,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,-�-�-�-�-�-�-�-�-�	-�
-�-�-�
-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-� -�!-�"-�#-�$-�%-�'-�--�A�@�C�B�E�D�G�F�I�H�K�J�M�L�O�N�Q�P�S�R�U�T�W�V�Y�X�[�Z�]�\�_�^�a�`�c�b�e�d�g�f�i�h�k�j�m�l���������������������������������������������������������#�"�%�$�'�&�)�(�+�*�-�,�/�.�3�2�5�4�7�6�9�8�;�:�=�<�?�>�A�@�C�B�E�D�G�F�I�H�K�J�M�L�O�N�Q�P�S�R�U�T�W�V�Y�X�[�Z�]�\�_�^�a�`�c�b�e�d�g�f�i�h�k�j�m�l�o�n�z�y�|�{��~���������������������������������������������������������������������A�!�B�"�C�#�D�$�E�%�F�&�G�'�H�(�I�)�J�*�K�+�L�,�M�-�N�.�O�/�P�0�Q�1�R�2�S�3�T�4�U�5�V�6�W�7�X�8�Y�9�Z�:�()*+,-./01	2
345
6789:;<=>?@ABCDEFGH I!J"K#L$M%N&O'����������������������������������������������������������������iIAaBbCcDdEeFfGgHhJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz���������������������������������������������������������������ss	

 !"#$%&'()*+,-./2345679:;<=>?@ABCDEFGHI�nJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx�yz{|}~s�S�����T���V�W�����Y�[���`�c�i�h���o�r�u�������������������������������������������������������������������������������j������������������	

 �"#$%&'()*+,-./0123:e,;<=�>f,ABC�D�E�FGHIJKLMNOE�pqrsvw��������������������������������������������������������������������������������������������������������������������������{�|�}PQRSTUVWX	Y
Z[\
]^_0123456789:;<=>? @!A"B#C$D%E&F'G(H)I*J+K,L-M.N/O`abcdefghijklmnopqrstuvwxyz{|}~������������������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./1a2b3c4d5e6f7g8h9i:j;k<l=m>n?o@pAqBrCsDtEuFvGwHxIyJzK{L|M}N~OP�Q�R�S�T�U�V��e��-�-�-�-�-�-�-�-�-�	-�
-�-�-�
-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-� -�!-�"-�#-�$-�%-�'-�--	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�����������������������h1�t�w
�y
�a��a�ss������������������������������������������������������������������������������������������������	

( )!*"+#,$-%.&/'8091:2;3<4=5>6?7H@IAJBKCLDMEP�R�T�V�BYQ[S]U_Wh`iajbkcldmenfog��������������������������������� ��!��"��#��$��%��&��'�� ��!��"��#��$��%��&��'��`��a��b��c��d��e��f��g��`��a��b��c��d��e��f��g��p���������B��B������p�q������t���������B��B��r�s�t�u���������B��B�����v�w��������B��B�����z�{���|���������B��B��x�y�|�}���&!�*!k+!�2!N!`!p!a!q!b!r!c!s!d!t!e!u!f!v!g!w!h!x!i!y!j!z!k!{!l!|!m!}!n!~!o!!�!�!�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$,0,,1,,2,,3,,4,,5,,6,,7,,8,	,9,
,:,,;,,<,
,=,,>,,?,,@,,A,,B,,C,,D,,E,,F,,G,,H,,I,,J,,K,,L,,M,,N,,O, ,P,!,Q,",R,#,S,$,T,%,U,&,V,',W,(,X,),Y,*,Z,+,[,,,\,-,],.,^,`,a,b,kc,}d,}g,h,i,j,k,l,m,Qn,qo,Pp,Rr,s,u,v,~,?,@�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m���������������������������������������������������������"�#�$�%�&�'�(�)�*�+�,�-�.�/�2�3�4�5�6�7�8�9�:�;�<�=�>�?�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�y�z�{�|�}�y~������������������������e��������������������������������������������������f��\��a��l�������ff�fi�fl�ffi�ffl�st�st�tv�te�tk�~v�tm!�A�"�B�#�C�$�D�%�E�&�F�'�G�(�H�)�I�*�J�+�K�,�L�-�M�.�N�/�O�0�P�1�Q�2�R�3�S�4�T�5�U�6�V�7�W�8�X�9�Y�:�Z�()*+,-./0	1
234
56789:;<=>?@ABCDEFG H!I"J#K$L%M&N'O����������������������������������������������������������������Ii0i@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@������������0�����������0�����0������4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��0�0�0�0�0�0�0�0GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�N0&D@XF�B�B �A(�A0�DpU
0A(A BBBC\�mF�H�B �B(�D0�D8�DP�
8C0A(B BBBFs8D0D(B BBBd�#F�N�B �B(�A0�D8�G��
8A0A(B BBBG�
8C0A(B BBBALdr
F�H�H �B(�D0�A8�I��
8C0A(B BBBA!+B"]y#��$��%4N_ ����N�v�v�Q����`#�`$������%P�b��q�w0\��C�`%lR�� �`P#C]��`���� �����@���^�H�� D`
�'`��0���9���B���K`�TT���]��g��o ��x����� }��@j���i���V���V��V��E��B��`.���,��`
�T��t�@,�����`�,�`����L���d������4�����D �T��\ ��&��\,��1`��7`��=@�C�,I��DN��T��Z@�<`��Th���q`�|
��L�@���`����x��@u\
`d��P�%�?2�+�B +�b�"�u���`
D� ,���$��<�@4��L� �������$@�t��� �l$��t-��6��l@�tK��\X �lc�k`��r �<}����D� �t��������������`�$� �4��$	��D
	`�	�| 	��&	��4	��>	��I	���V	p�a	`�l	P�u	0��	�,�	���	��<�	p��	X��	@��	�4�	���	���	���	��$�	`�
@�
(�'
�6
��DD
��P
p�]
P�k
8�w
(�~
��
���
���
���
���
���
p��
X��
H��
0��
�$�
��,�
��
p�X�-@�:(�B�K��W��g��{������`��H��8�� �������������/p�7P�B0�R�[��q��~��,�x���t���,�������h��P��0������
��
��"
��/
��>
��L
p�_
P�j
0�w
��
���
��$�
���
���
��T�
 �l�
`���
 �4�
��4@����\+@��8`��D���W`�,j����������������@�d���\��L!���0@�,K�]��$r���{�����,�����������	����	���	�@������� xl k��]t
�O�
(�A<32|>"�I�,T��,_@�,j �u�������������������)��8x�Rh�aX�nH�{8��(������������������������*��6x�Bh�OX�]H�m8�{(�������������������������1��=x�Ih�WX�eH�q8��(���������������������.��Y��hx�xh��X��H��8��(����/��O��d��~��������������x�h�;X�YH�p8��(���������������E��a��}������x��h�
X�!H�.8�H(�W�o���������������'��6��E��Tx�th��X��H��8��(����5��S��p������������������x��h�X�+H�:8�K(�e�t������������������������1x�Hh�[X�rH��8��(����������:��\��v������������x�h�$X�3H�L8�e(�z����������������������$��3x�Eh�SX�aH�z8��(����������������� �� ��- ��J ��f x�| h�� X�� H�� 8�� (�� �� �� ��� ��!��*!��:!��H!��V!��d!��o!x�{!h��!X��!H��!8��!(��!�	"�"��#"��6"��A"��W"��f"���"���"���"x��"h��"X�#H�A#8�U#(��#��#��#���#���#��
$��6$��F$��`$���$���$x��$h��$X��$H�'%8�P%(�~%��%��%���%���%��D"#$%!&&'&<&P&	

 &'(a&N&�&�&P&�&��&�'6'Q'Y'j'�m�' #�'Pr
.annobin_unicode.c.annobin_unicode.c_end.annobin_unicode.c.hot.annobin_unicode.c_end.hot.annobin_unicode.c.unlikely.annobin_unicode.c_end.unlikely.annobin_unicode.c.startup.annobin_unicode.c_end.startup.annobin_unicode.c.exit.annobin_unicode.c_end.exit.annobin_onigenc_unicode_is_code_ctype.start.annobin_onigenc_unicode_is_code_ctype.endEncUNICODE_ISO_8859_1_CtypeTableCodeRanges.annobin_onigenc_unicode_ctype_code_range.start.annobin_onigenc_unicode_ctype_code_range.end.annobin_onigenc_utf16_32_get_ctype_code_range.start.annobin_onigenc_utf16_32_get_ctype_code_range.end.annobin_onigenc_unicode_property_name_to_ctype.start.annobin_onigenc_unicode_property_name_to_ctype.endasso_values.12934wordlist.13664uniname2ctype_pool_contents.annobin_onigenc_unicode_mbc_case_fold.start.annobin_onigenc_unicode_mbc_case_fold.endasso_values.12368wordlist.12380CaseFold_11_Table.annobin_onigenc_unicode_apply_all_case_fold.start.annobin_onigenc_unicode_apply_all_case_fold.endCaseUnfold_11_TableCaseUnfold_12_TableCaseUnfold_13_Table.annobin_onigenc_unicode_get_case_fold_codes_by_str.start.annobin_onigenc_unicode_get_case_fold_codes_by_str.endasso_values.12387wordlist.12399asso_values.12406wordlist.12418asso_values.12425wordlist.12437CR_NEWLINECR_AlphaCR_BlankCR_CntrlCR_DigitCR_GraphCR_LowerCR_PrintCR_PunctCR_SpaceCR_UpperCR_XDigitCR_WordCR_AlnumCR_ASCIICR_AnyCR_AssignedCR_CCR_CfCR_CnCR_CoCR_CsCR_LCR_LCCR_LlCR_LmCR_LoCR_LtCR_LuCR_MCR_McCR_MeCR_MnCR_NCR_NlCR_NoCR_PcCR_PdCR_PeCR_PfCR_PiCR_PoCR_PsCR_SCR_ScCR_SkCR_SmCR_SoCR_ZCR_ZlCR_ZpCR_ZsCR_MathCR_CasedCR_Case_IgnorableCR_Changes_When_LowercasedCR_Changes_When_UppercasedCR_Changes_When_TitlecasedCR_Changes_When_CasefoldedCR_Changes_When_CasemappedCR_ID_StartCR_ID_ContinueCR_XID_StartCR_XID_ContinueCR_Default_Ignorable_Code_PointCR_Grapheme_ExtendCR_Grapheme_BaseCR_Grapheme_LinkCR_CommonCR_LatinCR_GreekCR_CyrillicCR_ArmenianCR_HebrewCR_ArabicCR_SyriacCR_ThaanaCR_DevanagariCR_BengaliCR_GurmukhiCR_GujaratiCR_OriyaCR_TamilCR_TeluguCR_KannadaCR_MalayalamCR_SinhalaCR_ThaiCR_LaoCR_TibetanCR_MyanmarCR_GeorgianCR_HangulCR_EthiopicCR_CherokeeCR_Canadian_AboriginalCR_OghamCR_RunicCR_KhmerCR_MongolianCR_HiraganaCR_KatakanaCR_BopomofoCR_HanCR_YiCR_Old_ItalicCR_GothicCR_DeseretCR_InheritedCR_TagalogCR_HanunooCR_BuhidCR_TagbanwaCR_LimbuCR_Tai_LeCR_Linear_BCR_UgariticCR_ShavianCR_OsmanyaCR_CypriotCR_BrailleCR_BugineseCR_CopticCR_New_Tai_LueCR_GlagoliticCR_TifinaghCR_Syloti_NagriCR_Old_PersianCR_KharoshthiCR_BalineseCR_CuneiformCR_PhoenicianCR_Phags_PaCR_NkoCR_SundaneseCR_LepchaCR_Ol_ChikiCR_VaiCR_SaurashtraCR_Kayah_LiCR_RejangCR_LycianCR_CarianCR_LydianCR_ChamCR_Tai_ThamCR_Tai_VietCR_AvestanCR_Egyptian_HieroglyphsCR_SamaritanCR_LisuCR_BamumCR_JavaneseCR_Meetei_MayekCR_Imperial_AramaicCR_Old_South_ArabianCR_Inscriptional_ParthianCR_Inscriptional_PahlaviCR_Old_TurkicCR_KaithiCR_BatakCR_BrahmiCR_MandaicCR_ChakmaCR_Meroitic_CursiveCR_Meroitic_HieroglyphsCR_MiaoCR_SharadaCR_Sora_SompengCR_TakriCR_Caucasian_AlbanianCR_Bassa_VahCR_DuployanCR_ElbasanCR_GranthaCR_Pahawh_HmongCR_KhojkiCR_Linear_ACR_MahajaniCR_ManichaeanCR_Mende_KikakuiCR_ModiCR_MroCR_Old_North_ArabianCR_NabataeanCR_PalmyreneCR_Pau_Cin_HauCR_Old_PermicCR_Psalter_PahlaviCR_SiddhamCR_KhudawadiCR_TirhutaCR_Warang_CitiCR_Bidi_ControlCR_Join_ControlCR_DashCR_HyphenCR_Quotation_MarkCR_Terminal_PunctuationCR_Other_MathCR_Hex_DigitCR_Other_AlphabeticCR_IdeographicCR_DiacriticCR_ExtenderCR_Other_LowercaseCR_Other_UppercaseCR_Noncharacter_Code_PointCR_Other_Grapheme_ExtendCR_IDS_Binary_OperatorCR_IDS_Trinary_OperatorCR_RadicalCR_Unified_IdeographCR_Other_Default_Ignorable_Code_PointCR_DeprecatedCR_Soft_DottedCR_Logical_Order_ExceptionCR_Other_ID_StartCR_Other_ID_ContinueCR_STermCR_Variation_SelectorCR_Pattern_White_SpaceCR_Pattern_SyntaxCR_UnknownCR_Age_1_1CR_Age_2_0CR_Age_2_1CR_Age_3_0CR_Age_3_1CR_Age_3_2CR_Age_4_0CR_Age_4_1CR_Age_5_0CR_Age_5_1CR_Age_5_2CR_Age_6_0CR_Age_6_1CR_Age_6_2CR_Age_6_3CR_Age_7_0CR_In_Latin_1_SupplementCR_In_Latin_Extended_ACR_In_Latin_Extended_BCR_In_IPA_ExtensionsCR_In_Spacing_Modifier_LettersCR_In_Combining_Diacritical_MarksCR_In_Greek_and_CopticCR_In_CyrillicCR_In_Cyrillic_SupplementCR_In_ArmenianCR_In_HebrewCR_In_ArabicCR_In_SyriacCR_In_Arabic_SupplementCR_In_ThaanaCR_In_NKoCR_In_SamaritanCR_In_MandaicCR_In_Arabic_Extended_ACR_In_DevanagariCR_In_BengaliCR_In_GurmukhiCR_In_GujaratiCR_In_OriyaCR_In_TamilCR_In_TeluguCR_In_KannadaCR_In_MalayalamCR_In_SinhalaCR_In_ThaiCR_In_LaoCR_In_TibetanCR_In_MyanmarCR_In_GeorgianCR_In_Hangul_JamoCR_In_EthiopicCR_In_Ethiopic_SupplementCR_In_CherokeeCR_In_Unified_Canadian_Aboriginal_SyllabicsCR_In_OghamCR_In_RunicCR_In_TagalogCR_In_HanunooCR_In_BuhidCR_In_TagbanwaCR_In_KhmerCR_In_MongolianCR_In_Unified_Canadian_Aboriginal_Syllabics_ExtendedCR_In_LimbuCR_In_Tai_LeCR_In_New_Tai_LueCR_In_Khmer_SymbolsCR_In_BugineseCR_In_Tai_ThamCR_In_Combining_Diacritical_Marks_ExtendedCR_In_BalineseCR_In_SundaneseCR_In_BatakCR_In_LepchaCR_In_Sundanese_SupplementCR_In_Vedic_ExtensionsCR_In_Phonetic_ExtensionsCR_In_Phonetic_Extensions_SupplementCR_In_Combining_Diacritical_Marks_SupplementCR_In_Latin_Extended_AdditionalCR_In_Greek_ExtendedCR_In_General_PunctuationCR_In_Superscripts_and_SubscriptsCR_In_Currency_SymbolsCR_In_Combining_Diacritical_Marks_for_SymbolsCR_In_Letterlike_SymbolsCR_In_Number_FormsCR_In_ArrowsCR_In_Mathematical_OperatorsCR_In_Miscellaneous_TechnicalCR_In_Control_PicturesCR_In_Optical_Character_RecognitionCR_In_Enclosed_AlphanumericsCR_In_Box_DrawingCR_In_Block_ElementsCR_In_Geometric_ShapesCR_In_Miscellaneous_SymbolsCR_In_DingbatsCR_In_Miscellaneous_Mathematical_Symbols_ACR_In_Supplemental_Arrows_ACR_In_Supplemental_Arrows_BCR_In_Miscellaneous_Mathematical_Symbols_BCR_In_Supplemental_Mathematical_OperatorsCR_In_Miscellaneous_Symbols_and_ArrowsCR_In_GlagoliticCR_In_Latin_Extended_CCR_In_CopticCR_In_Georgian_SupplementCR_In_TifinaghCR_In_Ethiopic_ExtendedCR_In_Cyrillic_Extended_ACR_In_Supplemental_PunctuationCR_In_CJK_Radicals_SupplementCR_In_Kangxi_RadicalsCR_In_Ideographic_Description_CharactersCR_In_CJK_Symbols_and_PunctuationCR_In_HiraganaCR_In_KatakanaCR_In_BopomofoCR_In_Hangul_Compatibility_JamoCR_In_KanbunCR_In_Bopomofo_ExtendedCR_In_CJK_StrokesCR_In_Katakana_Phonetic_ExtensionsCR_In_Enclosed_CJK_Letters_and_MonthsCR_In_CJK_CompatibilityCR_In_CJK_Unified_Ideographs_Extension_ACR_In_Yijing_Hexagram_SymbolsCR_In_CJK_Unified_IdeographsCR_In_Yi_SyllablesCR_In_Yi_RadicalsCR_In_VaiCR_In_Cyrillic_Extended_BCR_In_BamumCR_In_Modifier_Tone_LettersCR_In_Latin_Extended_DCR_In_Syloti_NagriCR_In_Common_Indic_Number_FormsCR_In_Phags_paCR_In_SaurashtraCR_In_Devanagari_ExtendedCR_In_Kayah_LiCR_In_RejangCR_In_Hangul_Jamo_Extended_ACR_In_JavaneseCR_In_Myanmar_Extended_BCR_In_ChamCR_In_Myanmar_Extended_ACR_In_Tai_VietCR_In_Meetei_Mayek_ExtensionsCR_In_Ethiopic_Extended_ACR_In_Latin_Extended_ECR_In_Meetei_MayekCR_In_Hangul_SyllablesCR_In_Hangul_Jamo_Extended_BCR_In_High_SurrogatesCR_In_High_Private_Use_SurrogatesCR_In_Low_SurrogatesCR_In_Private_Use_AreaCR_In_CJK_Compatibility_IdeographsCR_In_Alphabetic_Presentation_FormsCR_In_Arabic_Presentation_Forms_ACR_In_Variation_SelectorsCR_In_Vertical_FormsCR_In_Combining_Half_MarksCR_In_CJK_Compatibility_FormsCR_In_Small_Form_VariantsCR_In_Arabic_Presentation_Forms_BCR_In_Halfwidth_and_Fullwidth_FormsCR_In_SpecialsCR_In_Linear_B_SyllabaryCR_In_Linear_B_IdeogramsCR_In_Aegean_NumbersCR_In_Ancient_Greek_NumbersCR_In_Ancient_SymbolsCR_In_Phaistos_DiscCR_In_LycianCR_In_CarianCR_In_Coptic_Epact_NumbersCR_In_Old_ItalicCR_In_GothicCR_In_Old_PermicCR_In_UgariticCR_In_Old_PersianCR_In_OsmanyaCR_In_ElbasanCR_In_Caucasian_AlbanianCR_In_Linear_ACR_In_Cypriot_SyllabaryCR_In_Imperial_AramaicCR_In_NabataeanCR_In_PhoenicianCR_In_LydianCR_In_Meroitic_CursiveCR_In_KharoshthiCR_In_ManichaeanCR_In_AvestanCR_In_Inscriptional_ParthianCR_In_Inscriptional_PahlaviCR_In_Psalter_PahlaviCR_In_Old_TurkicCR_In_Rumi_Numeral_SymbolsCR_In_BrahmiCR_In_KaithiCR_In_Sora_SompengCR_In_ChakmaCR_In_MahajaniCR_In_SharadaCR_In_Sinhala_Archaic_NumbersCR_In_KhojkiCR_In_KhudawadiCR_In_GranthaCR_In_TirhutaCR_In_SiddhamCR_In_ModiCR_In_TakriCR_In_Warang_CitiCR_In_Pau_Cin_HauCR_In_CuneiformCR_In_Cuneiform_Numbers_and_PunctuationCR_In_Egyptian_HieroglyphsCR_In_Bamum_SupplementCR_In_MroCR_In_Bassa_VahCR_In_Pahawh_HmongCR_In_MiaoCR_In_Kana_SupplementCR_In_DuployanCR_In_Shorthand_Format_ControlsCR_In_Byzantine_Musical_SymbolsCR_In_Musical_SymbolsCR_In_Ancient_Greek_Musical_NotationCR_In_Tai_Xuan_Jing_SymbolsCR_In_Counting_Rod_NumeralsCR_In_Mathematical_Alphanumeric_SymbolsCR_In_Mende_KikakuiCR_In_Arabic_Mathematical_Alphabetic_SymbolsCR_In_Mahjong_TilesCR_In_Domino_TilesCR_In_Playing_CardsCR_In_Enclosed_Alphanumeric_SupplementCR_In_Enclosed_Ideographic_SupplementCR_In_Miscellaneous_Symbols_and_PictographsCR_In_EmoticonsCR_In_Ornamental_DingbatsCR_In_Transport_and_Map_SymbolsCR_In_Alchemical_SymbolsCR_In_Geometric_Shapes_ExtendedCR_In_Supplemental_Arrows_CCR_In_CJK_Unified_Ideographs_Extension_BCR_In_CJK_Unified_Ideographs_Extension_CCR_In_CJK_Unified_Ideographs_Extension_DCR_In_CJK_Compatibility_Ideographs_SupplementCR_In_TagsCR_In_Variation_Selectors_SupplementCR_In_Supplementary_Private_Use_Area_ACR_In_Supplementary_Private_Use_Area_BCR_In_No_Block.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.grouponigenc_unicode_is_code_ctype_GLOBAL_OFFSET_TABLE_onig_is_in_code_rangeonigenc_unicode_ctype_code_rangeonigenc_utf16_32_get_ctype_code_rangeonigenc_unicode_property_name_to_ctypeOnigEncAsciiToLowerCaseTableonigenc_mbclen_approximatestrncmp__stack_chk_failonigenc_unicode_mbc_case_foldonigenc_unicode_apply_all_case_foldonigenc_unicode_get_case_fold_codes_by_str�50��������b0���������*8��������9��������N\#�\$�|��:��������*��������=\#I\#U\#a\#m\#�\#�;���������9���������U�j�w��w.\%Q�w�� CD%bD%v\� �9�������������wk\r\%���	

�"
� �
\�
��
\%p�����wC�X� ��1
�F
�w
9���������
<�/\�\%�:\%�9���������<�,\@4���������5�������� ��N$,NPNXv�N�v�v���v����D�L�p�x�����CC0C8�dCl�  
 
 �nf^bZRV Z$^(b,f0{48�<�H�  `
(`�0��8��@��H`�P��X��`�h �p��x�� }�@j���i��V��V��V��E�B�`.��,�`����@���`�`��`
 ��(��0��8��@��H��P �X��`�h��p�x`��`��@�������������@����������������`����@��`��x@u`d�P �?(�+0 +8�"@�H`
P X`�h�p@x�� �������@����� ��������������� ����`�� ���� �� �(��0��8��@`�H �P�X��``�h�p��x������������p��`��P��0����������p��X��@�������������`�@� (�(�0��8��@p�HP�P8�X(�`�h��p��x���������p��X��H��0����������p��X��@��(���������������`� H�(8�0 �8�@��H��P��X��`p�hP�p0�x�����������x�������������h��P��0�������������������p�P� 0�(�0��8`�@��H��P�X��` �h`�p �x������@�����@��`�����`����������������@����������@������ ��(��0��8��@��H��P�X@�`��h xp kx�]��O��A�2�"������@�� ���������������������������x�h�X� H�(8�0(�8�@�H��P��X��`��h��p��x������x��h��X��H��8��(��������������������������	��	x�	h�	X� 	H�(	8�0	(�8	�@	�H	��P	��X	��`	��h	��p	��x	���	���	x��	h��	X��	���	H��	8��	(��	��	��	���	���	���	���	���	��
��
��
x�
h� 
X�(
H�0
8�8
(�@
�H
�P
��X
��`
��h
��p
��x
���
���
���
���
x��
h��
X��
H��
8��
(��
��
��
���
���
���
���
��������x� h�(X�0H�88�@(�H�P�X��`��h��p��x(��������������x��h��X��H��8��(������������������������� x�(h�0X�8H�@8�H(�P�X�`��h��p��x���������������x��h��X��H��8��(�����������������
��
��
��
�� 
x�(
��0
X�8
h�@
X�H
H�P
8�X
(�`
�h
��p
�x
���
���
���
���
���
���
���
���
���
���
���
x��
h��
X��
H��
8��
(������� ��(��0��8��@��H��Px�Xh�`X�hH�p8�x(������������������������������x��h��X��H��8��(������� ��(��0��8��@��H��Px�Xh�`X�hH�p8�x(�������������� 4PH�\��� hP.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rela.rodata.rela.data.rel.ro.local.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*T*l*�*�*'��"@�c*-�3�=�t8@�i�*
S�b��]@�l0*
|�����@�l0*������@m0*�t�t��@Hm0*` � @xm�*��� @�n�.*00(.�V�V|VSV'V9VGVZVlV{V�X �x��@��*((�5+2	<�'���utf_8.o/        1690381920  1000  135   100644  16584     `
ELF>�5@@-,

 "#$%���H�H�
��xiL�GL9��|D�GH��H�J���xWL�GL9���D�GH��H�J���xUL�GL9�t|H���OH�1��<
����D�����������D��f���������D@��f�H���������������������H���������H����������1�H9�s1��?
���ff.����I�����������~������҃����f��H�w�)�����I�L��!��H���F�����?	�H9�u��������H���ff.�����L��I��H��H�������H�M�����xH����H���I��H��H��L���ff.�f�����ǀ���tL������t?�����t2����t%����t���y���%�-��f����ǀ���t>�����tD���������tX������������t	����!@�>��D��H�F�������?H���π@�x�)��f�������������?����ʀ���V��?�Ȁ�FH�F�@������?�����π����?��ʀH�F�V@�8H��)��@������������?����ʀ���V��?�Ȁ�F������?�Ȁ�FH�F�I���������������?����ʀ���V��?�Ȁ�F������?�Ȁ�F������?�Ȁ�FH�F����o����ff.�@��H��H9�v(�����t��H9�sH�������t��GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignUTF-8�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx��0DhXl�C�^�q�5!'<"Uo#��$��%��'�39E�c���x�h�x���)�S�7�{���C��n�^�n�0pq<�a%��5"#$%!�����	

 &'(�'Ro�����.annobin_utf_8.c.annobin_utf_8.c_end.annobin_utf_8.c.hot.annobin_utf_8.c_end.hot.annobin_utf_8.c.unlikely.annobin_utf_8.c_end.unlikely.annobin_utf_8.c.startup.annobin_utf_8.c_end.startup.annobin_utf_8.c.exit.annobin_utf_8.c_end.exit.annobin_mbc_enc_len.start.annobin_mbc_enc_len.endmbc_enc_lentransEncLen_UTF8.annobin_is_mbc_newline.start.annobin_is_mbc_newline.endis_mbc_newline.annobin_mbc_to_code.start.annobin_mbc_to_code.endmbc_to_code.annobin_get_ctype_code_range.start.annobin_get_ctype_code_range.endget_ctype_code_range.annobin_get_case_fold_codes_by_str.start.annobin_get_case_fold_codes_by_str.end.annobin_mbc_case_fold.start.annobin_mbc_case_fold.end.annobin_code_to_mbclen.start.annobin_code_to_mbclen.endcode_to_mbclen.annobin_code_to_mbc.start.annobin_code_to_mbc.endcode_to_mbc.annobin_left_adjust_char_head.start.annobin_left_adjust_char_head.endleft_adjust_char_head.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_onigenc_unicode_ctype_code_rangeonigenc_unicode_get_case_fold_codes_by_strOnigEncAsciiToLowerCaseTableonigenc_unicode_mbc_case_foldOnigEncodingUTF_8onigenc_unicode_apply_all_case_foldonigenc_unicode_property_name_to_ctypeonigenc_unicode_is_code_ctypeonigenc_always_true_is_allowed_reverse_match
.���������.��.��.��*Q���������O���������P���������R�������� 3���$,�P�X�����x��xx�DxL�p�x���������08ndln�n���n�����%$�,% / 0
 1
 2-� (0p8�@TH�PUXV`�h�pW 4�H\�p�����p��.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.data.rel.ro.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*4T*5l*6�*7�*8'�%"@�,�*-�3�=�48@X-�*
S
b
�]@�00*
|�����@10*��
��
��@H10*������@x10*2l�� @�1P*, 40.�.�.|.S.'.=.K.^.p..�0 �P��@�2�*( @+N	`'5�3�newline.o/      1690381920  1000  135   100644  11512     `
ELF>�!@@-,

 "#$%��1�f�1��@���D���
t@1�A��t ��
tHc��1H���@��@�
��O���
u���f��W�G����E��DˆG��
��ff.�f���1��?u�
��O��D��H��H�=�H�=�H�=H���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realigncr_newlinecrlf_newlineuniversal_newline$

��GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�0sDX0Hc!+B"]y#��$��%-Qh���s�����6�R�l@�������@�,"#$%!����
	

 &'(�0(>.annobin_newline.c.annobin_newline.c_end.annobin_newline.c.hot.annobin_newline.c_end.hot.annobin_newline.c.unlikely.annobin_newline.c_end.unlikely.annobin_newline.c.startup.annobin_newline.c_end.startup.annobin_newline.c.exit.annobin_newline.c_end.exit.annobin_universal_newline_init.start.annobin_universal_newline_init.enduniversal_newline_init.annobin_fun_so_universal_newline.start.annobin_fun_so_universal_newline.endfun_so_universal_newline.annobin_universal_newline_finish.start.annobin_universal_newline_finish.enduniversal_newline_finish.annobin_Init_newline.start.annobin_Init_newline.endrb_universal_newlinerb_crlf_newlinerb_cr_newlinenewline_byte_arraynewline_word_array.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupInit_newline_GLOBAL_OFFSET_TABLE_rb_register_transcoder�<�C�����������C������������������C�������� '��$,PX��������������D�L� # $
 %
 &"@("���"@�"@HX"@h"����� 4H�\�.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.data.rel.ro.local.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*(T*)l**�*+�*,'��"@ �*-�3�=�T8@��*
S�b��]@`0*
|�����@�0*������@�0*�p
�p
��@�0*2D+�� @ �*2`D :0�.����|�S�'�C�Q�d�v����� ��p�@�`*(h`+A	�U �setproctitle.o/ 1690381920  1000  135   100644  10240     `
ELF>�@@)(

 !������AWAVAUATUSH��H�H�$H���kH�H�(L�eM���o1�����ALc�J�|�u�Hc�I��A���H���I��H�L�8M���9E���<I�uA�F�L�,$L�4�H�t$H��1��@H�xI9�tI9�tL�+H��H��u�L���L�I9�u�I��L+,$M����L��E1��fDA��Ic�H�\�H��tH�xH9�u�H���H��ِH�$H�L$L�-E1�H)�H�
H�1�H���H�5L�>L��A��I��Ic�I�L�d�H��M��u�H�
HI��I�H��[]A\A]A^A_�@������fDH�H�(��I�U1�H�T$���H�D$L�-L�-H�H�$H��ff.�f���SH���H��$8H��$@H��$HL��$PL��$X��t@)�$`)�$p)�$�)�$�)�$�)�$�)�$�)�$�dH�%(H��$(1�H�H��u)H��$(dH3%(��H���[�f�H��$��D$H�\$ H�D$H��$0�D$0H�D$H��tH��H�L$�H���H�H�=H���H�
H9�HB
H9�vH�H�H�D�H��H9�u�H�H��0����GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�\N�B�B �B(�A0�A8�DP8A0A(B BBBE������HP������$|lE�G�	�
AJ	5Qq��� �!9_�	�	�	�	��| !��*

"#$;Rhpw~El���.annobin_setproctitle.c.annobin_setproctitle.c_end.annobin_setproctitle.c.hot.annobin_setproctitle.c_end.hot.annobin_setproctitle.c.unlikely.annobin_setproctitle.c_end.unlikely.annobin_setproctitle.c.startup.annobin_setproctitle.c_end.startup.annobin_setproctitle.c.exit.annobin_setproctitle.c_end.exit.annobin_ruby_init_setproctitle.start.annobin_ruby_init_setproctitle.endargv_lenargv1_addrargv_env_lenargv_start.annobin_setproctitle.start.annobin_setproctitle.end.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupruby_init_setproctitle_GLOBAL_OFFSET_TABLE_environcallocstrlenruby_strdupruby_vsnprintfstrlcpy__stack_chk_fail-*8��������m9��������w*8���������:��������:��������,9��������@IS*8��������e;���������*8���������*8���������������������=��������#+>��������2=Ig��������x?�������� ��$,PX|��|     �.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@&T&l& �&!�&"'�|"@��&-<3@ =@�8@X�&
S�b��]@H0&
|�����@x0&�|
�|
��@�0&�P�P��@�0&0$.�R�R|RSR'RR"R5RGRVRfX ~x�y@0&$'6	�8�strlcat.o/      1690381920  1000  135   100644  7992      `
ELF>�@@)(

 !��SH�����?��H�H����8tSH��H9�u�H��H)�H)�tMD�H��E��t'H��tD�H��H��H��D�E��u�H)�H�H���[�@H��H��H)�H)�u�H���H�H��[�1���H��1��GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�$�E�n
E]
A+B]y�� ��!� !3?Odx	

"#$����.annobin_strlcat.c.annobin_strlcat.c_end.annobin_strlcat.c.hot.annobin_strlcat.c_end.hot.annobin_strlcat.c.unlikely.annobin_strlcat.c_end.unlikely.annobin_strlcat.c.startup.annobin_strlcat.c_end.startup.annobin_strlcat.c.exit.annobin_strlcat.c_end.exit.annobin_strlcat.start.annobin_strlcat.end.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupstrlcat_GLOBAL_OFFSET_TABLE_strlen�2�������� ���$,�  
 
  .symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@&T&l&�&�&'��"@�&-a3a=d48@�&
S�b��]@�0&
|l�l��@�0&�@�@��@�0&�	�	��@(0&0�
.��|S'"5GVf ~8@y@X&$x�'0	@�p�strlcpy.o/      1690381920  1000  135   100644  7760      `
ELF>P@@('	

 ��H��H��tTH��tAH���f�I��I��I�I�t"H��D�@�H��D�A�E��u�H)�H���@H���f.�H���x�t�H���x�u���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�v+B]y���� v 3?Odx	!"#�v.annobin_strlcpy.c.annobin_strlcpy.c_end.annobin_strlcpy.c.hot.annobin_strlcpy.c_end.hot.annobin_strlcpy.c.unlikely.annobin_strlcpy.c_end.unlikely.annobin_strlcpy.c.startup.annobin_strlcpy.c_end.startup.annobin_strlcpy.c.exit.annobin_strlcpy.c_end.exit.annobin_strlcpy.start.annobin_strlcpy.end.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupstrlcpy ��v$,v  
 
  .symtab.strtab.shstrtab.group.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@%P%h%�%�%"�v(&.&8(43@`�%	N\]\�X@�0%w0�0��@ 0%����@P0%������@�0%0�
.��
��
w�
N�
"�
�
�
0�
B�
Q�
a�
 y0t@�%#0�&0	����addr2line.o/    1690381920  1000  135   100644  28320     `
ELF>`c@@-,

 "#$%��H���@�|$H�t$��H���f.���H���H�5H�=�H��H�����AWAVAUATUSH��H��$�H��$�H��$�L��$�L��$�dH�%(H��$�1�H��$0�D$XH�D$`H��$�H�D$hH���5�I��H�L$p�D$1�H�L$A��L�,$H�,$A)����������H��E�,/H�]��<%u�D�t$E��u܋t$XH�D$`D�l$1��D$0L�|$hE1�E1��t$4�UE1�E1�H�D$8E1��D$D�D$(�D$�D$@�D$L�D$ �D$$�D$K�D$J H�,$�B�L�c��<W�+
H�-��HcD�H�>��fDH��$�dH3%(D���{H��[]A\A]A^A_�@�(L�-�����S�D$DL���w���@�S�L���b����L�$$E����|$K�����E�}��C�s�����T$4E������/��Ѓ�A��T$4L���D$$��y	�t$ �\$$�SL������f��SA�L�����fDE����
�T$J�SL�������S��0�XЃ�	�H�,$L����H���|P����D�`�A��	v�H�,$�D$$E��D�D|$0�D$$�|$0�@���DL�$$E���-�|$K����/��F��D$XM�$��/����L��t$XL�0�D$$A��l$��DE�A�$L�=����A�<����A�$��A�<�����EA����A���m���DL�$$E���(�|$K��D$4A�A��D$���8E���G	��/��	����t$XL�H�H�D$(�ȃ��D$@�H�\$8L�|$(D��M���D$pH�l$�@H���EM9�r1M��L��1�I��I��H����t���H����EM9�s�H��H+t$H�\$8A��H�|$(A��1�D"t$@t�D$4���t
1҃���҃|$���D$ �%�|$J0��D$$)�9Ɖ‰�M�)�A��)щL$(�D$(�p��t$$��~6H�\$��f.�� ��������u�Dl$(�\$$H�\$D�l$�t$��t�-�Y����D$E��t/�|$4���|$4u�0�3����x�)����D$@E�w�E��~ ��0A������A���u�D|$E���6D�t$I��fDI��A��A������E�eE)�E�E��u�L$ �����D$�'����L�$$E���r�|$K���/����FA�,�D$X�l$��/���L��t$XH��D$pH��L�t$pH�D$L��H��H��1�H�
I��I���<A�>L9�s�@���G
M��f�����I��E��A�<$E)�E�@��u�D�d$E���f���H�D$1�A��HL�p�������D��M�n��H�H����A�NM�� ~�A�MM�u�� ~�M��A�MM�u�� ~���L�$$E���C�|$K����/�����L��t$X�8���@�S�D$ L�����@�SA�L������fDL�$$E���	
�|$K���T$$���D$@��/�����t$XL�H�E1��D$A��D$4H�D$(�:���f.��SA�L���Q���fDL�$$E����	�|$K��A�
�D$4
E�������f�D�d$E���bE���Y�l$(���ME���DD�T$DE���6D�L$@E������/�O
����t$XL�H�H�D$(f.��΃�@�t$@H���/H��E1��D$H�D$(�E���DL�$$E�����|$K��
��/������t$XL�L�8D�d$ H�M��LD�A��A��E���uL����l$$�p��D$()ʼnt$���„�t	E���O"T$ �T$ ����
A�?M�w�L$M�d�fDA�>I������M9�u�D$�t$D�|0�|$ �n���D�d$JD�m�@D��A������A���u�A��F���fD�S�D$L���_���@�SE���L��A��@���D�S�D$(L���'���@L�$$E�����|$K�D
A�
�D$4
���D�S�\$@����L���D$@����L�$$E�����|$K��	E1�A��D$4�6���f�L�$$E�����|$K�I	D�D$E���j��/������t$XL�H�Ic�E��H��$���@L�$$E�����|$K�G	E1�A��D$4���f�L�$$E����|$K��	E1�A�
�D$4
���f�L�$$E�����|$K�#	A��D$4���DH�,$L�$$E�����|$K��I��L�4$H;,$�I��A�|$����M9�u�D��H�$�D$)�D�<�2���f��L$0�D$$9Ή�M�)�A��)��|$ )ЉD$$�������D$(�������/������t$XL�H�H�D$(�ȃ��D$�D$@����DA�>@��t.�M��D)��f.���B�D=I��A�?@��u�I��A��������f.���/w{����t$XL�H�H�D$(���f��D$$�h����A����� ������u�D|$$�$���@H�D$`H�PH�T$`�*���D�0�~�D$�T���@H�D$`H�PH�T$`끋D$(������E�������D$D�������D$@������/�U����t$XL�����fD�������,��A�~A�G���� �M��E�oE)�f����G�|5I��A�>���� ����DD�|$���fDH�D$`H�PH�T$`����DE��L��E1��5�f��D$@L���D$@�D$L���E���E����|$D���
�L$@���@��/������t$XL�H�E���D$fD�(��f.�H�D$`H�PH�T$`�Z���DH�D$`H�PH�T$`���DH�D$`H��H���*H�D$`�l$H�PH�T$`�P�����/�l�Ѓ�A��T$4L���SL��D$0�.�H�D$`H�P�8H�T$`���H�D$`H��H��H�D$`L�"H�PH�T$`��fD��/�*����t$XL�H�Ic�H�E���^������V����>A�����w�D$0��~
A�?@���8�D$$������D$(�D$����E�����D$$D�d$J�h�DD��������u�T$(Dl$$�D$ D�l$���L����^�����S��0�XЃ�	���|$0L����H�T$8�D$KH��H��H�T$8���H�T$8�D$KH��H��H�T$8���H�D$`H�PH�T$`�P���H�D$`H�PH�T$`�����l$$�/���A��M������E���D$�N�E������L����"D$ �l$$E��D$ ���M�w1�L���B;D$0��H���~�uV�D$(�T$�l$$+l$(����~	E���x���"D$ �D$ �4����D$L���?��/������t$XL��������돃|$L�x��/������t$XL�H�H�D$(�����D$4�D$X������D$4�D$X���Q����D$4�D$X���r���H�D$`H�PH�T$`����D$4�D$X�������D$4�D$X�����D$4�D$X���
����D$4�D$X����D$4�D$X�������D$4�D$X���7����D$4�D$X�^����D$4�D$X���;����D$4�D$X�����D$4�D$X���M����D$4�D$X����D$4�D$X�����/�����L��t$X�����|$L����/������t$XL�H�E���D$D�(�@�H�D$`H�PH�T$`�����/������t$XL�HcH�D$(����H�D$`H�P�H�T$`����H�D$`H�PH�T$`�"�����/w����t$XL�H�E���D$D�(��H�D$`H�PH�T$`����H�D$`H�PH�T$`����H�D$`H�PH�T$`�(���H�D$`H�PH�T$`�S����D$0�T$�D$(�X���H�D$`H�PH�T$`�z���H�D$8H�D$`����H�D$`�b���E1��D$��H�D$8H�D$`��H�D$8H�D$`���H�D$8H�D$`�	�H�D$8H�D$`���E���a���H�D$`���H�D$8H�D$`�A�H�D$8H�D$`���H�D$8H�D$`�/���H�D$8H�D$`����H�D$8H�D$`���H�D$8H�D$`����H�D$8H�D$`�g�H�D$8H�D$`�H�H�D$8H�D$`�q���H�D$8H�D$`���f.�AWAVAUATUSH��(D�T$xHT$hD9��QI��Ic�A��H�L$pH��D)�L�$M�WdL�$H)�L�4��G�H�DL���DI��I��8M9��I�$I9�s�L9�s�E����H�D$`�8��H�ǽL�H���H�ƀ~H�Fu��@H�^1�H��1Ʉ�y'���H��H����H�H��F���x�@H���{�x�fDH���{�x�A9�tq��A9�|>�;H��u�H�D��H�=1�D�D$L�T$L�L$�L�L$L�T$D�D$I��E�FI��8M9������H��([]A\A]A^A_��H��I�~H�
H�tpH�$H�p�DH��H���u
�W@H���9u�H��H���xu�L��H�=1�L�L$L�T$D�D$�D�D$L�T$H�
L�L$L�I�����ff.�f�AW1�AVAUATUSH��L�9�|$H�=H�t$ 1��T$XH�L$8L�D$(D�L$�H�D$h���������1��lj��I��H����1�1����E1�A���L��1��H��H������8ELF�}I�G�S>H�@(A�oH��M�gH�L�D�S<f�����E1�1�E1�H��H�$L�L�-L�L@L�H�D$H�D$0���HD�H��@I9�t`��HL�Hڃ��L����uѹH��L����������NH�ֹL����€���LD�H��@I9�u�@�|$��UM����H�D$hM���"H�|$�H�D$I�T$ H���������I�L$L�PH��H��H�������B�H�4HcT$M�g H�LH�@L�\$(H�,�H�L$ H��L�,H)�M�t��D$��)�H�L�\���H��H9����F��<u�L�FM��tߋ|$9|$~�L�NL��L��M��H�L)�I9�@��H����@�u!�A���L�IL�H�H�A I�L�aH�H��H��8I9�u�H��H9��z���DH�<$�H�$HXH�@ H�H�D$`H9��3L�|$HD�+�����I9��/H��D�s
�sJ�+�{	H�$A�V��C@�t$0L�l�t$X�s��A�}H�D�|$@L��@�t$8u� f�H�Հ}H�Uu�H���zu�H�uH�t$H9$�.����E1�D)�A�H�t$PH�X�T$\�����@H�=Hc�H�>���H�D$0H��t+�D$Xt$H�xD�L$L�D$(H�L$8H�T$ �t$H��H�D$hH�Ę[]A\A]A^A_�@������H��L����������LH��H�=��H�|$0�€���HD�H�|$0����I������H���{�x�fDH;$srH���H�X��������1��L$0D)�H�t$P��I�H�D$8H�ŋD$M��A��D��L��P�t$0H�D$X�p �t$ H�t$@�|$<����H�� H;$r�H9\$`����H9\$`����H�5H�=1�������H���{��B���H���{�x��3����PH�X1�H��1Ʉ�y!@��H��H����Hc�H��P���x�H��D�<2����H�X�@1�1Ʉ�y!���H����H�H��C���x�@�/��)Ɖ���H�H)�������D$\1�t$@�D$XI��y���f��pH�X@�����@���&@����H���{�x��5���DH�X�@I�� ����PH�X1�H��1Ʉ�y$@��H��H�@��Hc�H��P���x�I�H��I�����D@�����D$A��D��L��M��A�E1�P�t$0H�D$X�p �t$ H�t$@�|$<���H�� ������?��H�H���o����L�kH������L�`H�X�K���H�H�=1���.���fDH�5H�=1������fDH�$�v����H�D$�e���fDH��H9\$`�2����X���DH�D$h�/���f�H���?M���6I�FH�uH���������H�D$H��H�e H�������B�H�|$pH�l$HL�,3H�@H�|$@H�t3L��H��I���E��<uMH�}tF1���H��t5�uHt$H��H��H��tH�t$@H��������H��I9�u�H�l$HH�D$hf�{�HED$hI�G M�����D$�����������H�=H��1�����D������@H�D$hM��u��D$���DL�t$I���?����������H�=H��1�����L�t$I���D$����H�D$xH�l$HH�D$h�����UH��AWE��AVI��AUM��ATI��S��/H��(H�}�H�=dH�%(H�E�1��H���pH�=M��@H��H���0H����������!�က��t�������D�H�pHDƉ�@�H��H)�H��H�HH��H���H)�H���H��H9�tH��H��$�H9�u���ML�L$H��H�5I���L�σ��E1Ҩ�������H�L�κH�=L�E�H����f����H�u��H�=��0��I�L�E�H��tH�B(I�P I�E��L��L���H�P I�M��H�1���H�E�dH3%(��H�e�[A\A]A^A_]�f����)���@�f�H���������f.����������DH)�H�L4����f.���H��1���H���������@��UHc�H��AWI���8AVAUATSH��H��x�}�dH�%(H�E�1���{�H�E�Hc�H�E���H�5H�=H��p����H��H����D�M�E���H�E�E1�L�p�E��X�H�E�H��x���H�E�H��h�����I�D$I��8I9���I��E�FE��E��u�K�<�H��x������t�H��p���H�M�H�H���HH9��+H���fDH9��H��H�H��u�H��0�H��`����H�U�H��`���H��tH�B(H�u�H�H �H�=H�E�I��8I�v�H�0�L�E��}�E��H��h����L���8�I�D$I9�����f.�L�m�O�d�H��I�U0H����L��H)�A�E���9M�MM���dI�}H��t	�?�2H��H�=P1��ZYDI�}0H��t�H�������taI��I��8M9�tTI�uM�I�E(H����H���b���L��H�=1����H�{H�s��{�H���H�]�H��tH�C(H�E��C��t���f�H�}��H��p����H�E�dH3%(�hH�e�[A\A]A^A_]�f�L��H�=1���
���f.�H�=1�����DP1�AQI��H�=�^_����DA��H�=1�����f�H�PH��H��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�d$H�5I���L����0��H�U�H��tH�B(L� L�E�H�M���}�A�����L��H�E���H����]���H��p���H��N���DH�E�I�H�E�I�F �l���H��p��������GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign/proc/self/exe(fmt null)
(null)lseek: %s
mmap: %s
.strtab.dynstr.debug_line.gnu_debuglinkUnsupported operation in %s
[0x%lx]
%s [0x%lx]
%s(%s+0x%lx) [0x%lx]
%s(%s+0x%lx) [0x%lx] ???:%d
%s(%s+0x%lx) [0x%lx] %s:%d
main/usr/lib/debug0123456789abcdefghijklmnopqrstuvwxyzUnexpected file number %d in %s
Unexpected directory number %lu in %s
Unknown extended opcode: %d in %s
Unexpected size of .debug_line in %s
%s(%s+0x%lx) [0x%lx] %s/%s:%d
GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�&H ]40HgLL�F�B�B �B(�A0�A8�G��
8A0A(B BBBEH�B�B�B �B(�A0�A8�D`h
8A0A(B BBBHt��	B�D�B �B(�A0�A8�G�
8A0A(B BBBE��D�H�D�R���D�H�D�R�0`\A�C
B�E�E�E�D��
C,�eE�F
B�O�����
J	!/H"e�#��$��%0&C&I&f`�	�`�F�F�c�Pc&)!>p�	I0!\Z)!z�#����#��'"#$%!	"("8'@,H2T8x>PDcJ#O.T�Z�`�f�l�r�x�~����

 &'(���00�`��%)0NAGLSY`qw�����#e����.annobin_addr2line.c.annobin_addr2line.c_end.annobin_addr2line.c.hot.annobin_addr2line.c_end.hot.annobin_addr2line.c.unlikely.annobin_addr2line.c_end.unlikely.annobin_addr2line.c.startup.annobin_addr2line.c_end.startup.annobin_addr2line.c.exit.annobin_addr2line.c_end.exit.annobin_putce.start.annobin_putce.endputce.annobin_main_exe_path.start.annobin_main_exe_path.endbinary_filename.annobin_kprintf.start.annobin_kprintf.end.annobin_fill_line.isra.1.start.annobin_fill_line.isra.1.endfill_line.isra.1.annobin_fill_lines.start.annobin_fill_lines.endfill_linesfollow_debuglink.annobin_follow_debuglink.start.annobin_follow_debuglink.endglobal_debug_dir.9222.annobin_rb_dump_backtrace_with_lines.start.annobin_rb_dump_backtrace_with_lines.end.LC0.LC1.LC2.LC4.LC3.LC5.LC8.LC9.LC10.LC11.LC14.LC13.LC12.LC6.LC7.LC21.LC20.LC16.LC15.LC17.LC19.LC18.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_writemain_exe_pathreadlinkkprintfhex2ascii_datarb_toupperstrlen__stack_chk_faillseekmmapdlopendlsymdladdr__errno_locationclosestrerrorstrrchrstrlcatcallocrb_dump_backtrace_with_lines__strcpy_chkmunmapfreememcpy\��������@��������G+��������L^��������S�����������������,���������`���������`���������a���������`��������x	-���������	b��������vc�����������������z���������.���������_���������/��������$0��������:_��������K/��������W������������������d���������e���������e���������f��������b1��������i2��������u3��������C\�4������������������5���������_������������������6���������_�����������������7��������	_���������g���������h�������� i��������i j��������r k��������y l��������� 8��������� _��������� k��������� j��������� k��������� l��������� 9��������� _��������[!��������o!m��������!��������"��������H"�W"��������b"��������h"�n"u"�|"�"��"
�"n���������"���������"n���������"o���������#c���������#o���������#o���������#���������#+��������$^��������$��������}$i���������$o��������%��������%q��������\%:���������%;���������%_��������&<��������&_��������)&r��������1&k��������9&s��������e&s��������q&s���������&=���������&_���������&>���������&_���������&?���������&_���������&@��������'_��������a'��������m't��������|'o���������'c�������� *��&$,&P&X`�&�`�`�F�`�FFcDFLcpcx)!�c�)!�)!��#)!�#0�#8�'d�#l�' & ' ( )@�`�� $(�,�0 4,8P<T@XD\H`LdPhTlXp\L`PdThXl\p`tdxh|l�p���x�|�������������������������������������������������������\����
��\ 
$|(
,<0�4	8�	<�	@�
D�H�L<
P@
T4X
\�`�d`hlDpt$x8|<����H�L� 80P`�P�pd0!��#.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rela.rodata.rodata.str1.8.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@*AT*Bl*C�*D�*E'��'"@J�	*-�(3�( =�(t8@�S�*
S4-b4-�]@�V0*
|/�/��@�V0*��0��0��@(W0*��2��2��@XW0*2�4��5� @�Wx	*'2h7�60'8.�U8�U8|U8SU8'U8?U8MU8`U8rU8�U8�X8 �x8��@a�*(8:�
+[	0E��a�prelude.o/      1690381920  1000  135   100644  9584      `
ELF>�@@*)

 !"H��A�E1����H��H������S�H�=���H�=H���H��H������H�=��9H�=H���H��H���k����H�=��'H�=H���H��[H���:���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignrequire 'rubygems.rb' if defined?(Gem)
<internal:gem_prelude>begin
  require 'unicode_normalize'
rescue LoadError
end
<internal:enc/prelude>class Thread
  MUTEX_FOR_THREAD_EXCLUSIVE = Mutex.new







  def self.exclusive
    MUTEX_FOR_THREAD_EXCLUSIVE.synchronize{
      yield
    }
  end
end
<internal:prelude>GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�(D\4�E��+B]y ��!��"/(U(n(���`������`:�0�( !"�)=	

#$%Nd��0��.annobin_prelude.c.annobin_prelude.c_end.annobin_prelude.c.hot.annobin_prelude.c_end.hot.annobin_prelude.c.unlikely.annobin_prelude.c_end.unlikely.annobin_prelude.c.startup.annobin_prelude.c_end.startup.annobin_prelude.c.exit.annobin_prelude.c_end.exit.annobin_prelude_eval.constprop.0.start.annobin_prelude_eval.constprop.0.endprelude_eval.constprop.0.annobin_Init_prelude.start.annobin_Init_prelude.endprelude_name0prelude_code0prelude_name1prelude_code1prelude_name2prelude_code2.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_rb_iseq_compile_with_optionrb_iseq_evalInit_preluderb_usascii_str_new;��������=\B>��������N�V>��������m�r>��������~\�>���������,�>������������������>��������$<��������  ��($,(P(X��(��  
 
  80.symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@'!T'"l'#�'$�'%'��"@0P'-�3�=��8@��'
Sb�]@p0'
|�����@�0'������@�0'��	��	��@0'�s 0�.�!
�!
|!
S!
'!
!
*!
=!
O!
^!
n(
 �H
P�@00'%�
�(:	��`�dmyext.o/       1690381920  1000  135   100644  7640      `
ELF>�@@('	

 ���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�)?Yt���� � +7G\p	!"#�.annobin_dmyext.c.annobin_dmyext.c_end.annobin_dmyext.c.hot.annobin_dmyext.c_end.hot.annobin_dmyext.c.unlikely.annobin_dmyext.c_end.unlikely.annobin_dmyext.c.startup.annobin_dmyext.c_end.startup.annobin_dmyext.c.exit.annobin_dmyext.c_end.exit.annobin_Init_ext.start.annobin_Init_ext.end.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupInit_ext ��$,  
 
  .symtab.strtab.shstrtab.group.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@%P%h%�%�%"�(�.�8�43@��%	N�]��X@x0%w�����@�0%������@�0%�h�h��@0%0<
.�j
�j
wj
Nj
"j
j
j
0j
Bj
Qj
ap
 y�
0t@8%#�
�&0	X�P�dmyenc.o/       1690381920  1000  135   100644  8160      `
ELF>`@@*)

 !"��H���H�=���t
H���D�H�=H���GA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1067GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignenc/encdb.soenc/trans/transdb.soGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-18)GNU�zRx�=HZ
FP)?Yt ��!��"�= !"+0
5AQfz	

#$%�=��.annobin_dmyenc.c.annobin_dmyenc.c_end.annobin_dmyenc.c.hot.annobin_dmyenc.c_end.hot.annobin_dmyenc.c.unlikely.annobin_dmyenc.c_end.unlikely.annobin_dmyenc.c.startup.annobin_dmyenc.c_end.startup.annobin_dmyenc.c.exit.annobin_dmyenc.c_end.exit.annobin_Init_enc.start.annobin_Init_enc.end.LC0.LC1.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupInit_enc_GLOBAL_OFFSET_TABLE_ruby_require_internal��������5��������0��������95�������� ��=$,=  
 
  .symtab.strtab.shstrtab.group.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame@'T'l'�'�''�="@`'-�3�=48@`�'
S4b4�]@�0'
|���@ 0'������@P0'������@�0'2�
"0�
.��
��
|�
S�
'�
#�
1�
D�
V�
e�
u�
 ��
8�@�'%0(3	@���lib64/pkgconfig/alt-ruby22.pc000064400000003427150402105710011663 0ustar00arch=x86_64-linux
sitearch=${arch}
prefix=/opt/alt/ruby22
exec_prefix=/opt/alt/ruby22
bindir=${exec_prefix}/bin
libdir=${exec_prefix}/lib64
includedir=/opt/alt/ruby22/include
MAJOR=2
MINOR=2
TEENY=0
ruby_version=2.2.0
RUBY_PROGRAM_VERSION=2.2.10
RUBY_BASE_NAME=ruby
RUBY_VERSION_NAME=${RUBY_BASE_NAME}-${ruby_version}
RUBY_SO_NAME=${RUBY_BASE_NAME}
RUBY_INSTALL_NAME=${RUBY_BASE_NAME}
DEFFILE=
archlibdir=${libdir}/${arch}
sitearchlibdir=${libdir}/${sitearch}
archincludedir=${includedir}/${arch}
sitearchincludedir=${includedir}/${sitearch}
ruby=${bindir}/${RUBY_INSTALL_NAME}
rubylibprefix=${libdir}/${RUBY_BASE_NAME}
rubyarchprefix=${rubylibprefix}/${arch}
rubysitearchprefix=${rubylibprefix}/${sitearch}
rubylibdir=${rubylibprefix}/${ruby_version}
vendordir=${rubylibprefix}/vendor_ruby
sitedir=${rubylibprefix}/site_ruby
vendorlibdir=${vendordir}/${ruby_version}
sitelibdir=${sitedir}/${ruby_version}
rubyarchdir=${rubylibdir}/${arch}
vendorarchdir=${vendorlibdir}/${sitearch}
sitearchdir=${sitelibdir}/${sitearch}
rubyhdrdir=${includedir}/${RUBY_VERSION_NAME}
vendorhdrdir=${rubyhdrdir}/vendor_ruby
sitehdrdir=${rubyhdrdir}/site_ruby
rubyarchhdrdir=${rubyhdrdir}/${arch}
vendorarchhdrdir=${vendorhdrdir}/${sitearch}
sitearchhdrdir=${sitehdrdir}/${sitearch}
LIBPATH=
LIBRUBY_A=lib${RUBY_SO_NAME}-static.a
LIBRUBY_SO=lib${RUBY_SO_NAME}.so.${MAJOR}.${MINOR}.${TEENY}
LIBRUBY=${LIBRUBY_SO}
LIBRUBYARG_SHARED=-Wl,-R${libdir} -L${libdir} -l${RUBY_SO_NAME}
LIBRUBYARG_STATIC=-Wl,-R${libdir} -L${libdir} -l${RUBY_SO_NAME}-static
LIBRUBYARG=${LIBRUBYARG_SHARED}
LIBS=-lpthread -ldl -lcrypt -lm 
DLDFLAGS=

Name: Ruby
Description: Object Oriented Script Language
Version: ${ruby_version}
URL: http://www.ruby-lang.org
Cflags: -I${rubyarchhdrdir} -I${rubyhdrdir}
Libs: ${DLDFLAGS} ${LIBRUBYARG_SHARED} ${LIBS}
Requires:
lib64/libruby.so.2.2.0000075500011730420150402105710010143 0ustar00ELF>P@��'@8	@&& p�&p�Fp�F�x� ��&��F��F  888$$�~&�~&�~&  S�td�~&�~&�~&  P�tdX~"X~"X~"��Q�tdR�tdp�&p�Fp�F�O�OGNUQTX-�T
Eɒ�rTD��73�
�$B$zp*��i"$DBb$�7d�0C*!�DH�DK	�-0D2B���@5H��"!I2�B@�	�,V	�8�OaoM�@��I��h%(��S�:L�";0����� \�
	�V�J�
=�p�Ab# 8@�HM%Em���L�PI
oH6�EJ
@R����b�K`H��HG�� d��܈#(v��B��dE �DX�`Pj��K�C���%G�H��=HlH$�#�F` @4�=dr{@\�*@�!Ԟ0=wFgD��P 2@(�!��E0����@���4AFY@)
�2�c�@F}q{��Aq!RհDB
9�,�.�H( ���#	�)|%N�<��	!��zH
Z%¬c�\@�P���-�@p%4@B	5B�')A��TقjA�t�Dh��`�@B ��%�<�BS2 
!�
	L
���&�!��B���$@]��r� P�l�#��82�R@P`�L0��I"��
�(�$�,R��@� �*@ ���*@��X��!�"�	�0%��4"4�$@ Ԕ2��!�ē('�P$T[��%����(5�ɐ�@�F��H�P ��0� @1��l��,�l�bH�9�`;��4@2�Ba@@0�!Hd�B	KtU��$fc��@5�@!"��E�
 	�(B!bL�;�DH��d!`��KM��H0Tk,�1Ѐy(S�X$!t@	!@*#Q�g�����Y�@ ��H�/�f($�^��AL4�'0;��F����5�X�`�02hw��
��A2G0�(� ��(J��(��
��µ�!�/+���.!$%'(+./1257;>?@ADEHKMOQRSTVWYZ\^`degiklnprstvwxy|�������������������������������������������������������������	
!#%&'),24579:<@BEGJMNPQRSUVW[\]^`bfjmpqstwx{~���������������������������������������������������������������������	 "#%&()+,-/456789;<=>?@ABCGIKLOPRVWXY[]^_bcegilmnopqrtwz{|}���������������������������������������������������������������������"#$&-/23468:<=?ABEHIKORUXZ\^abdfiklnopqtvwz{|~���������������������������������������������������������������������	
 "#$%&').24579:<?@CEIJLMRSUVXY[\]^`adfhilnorty{|�����������������������������������������������������������������	
 !"%'(+,.0127<=?CDFHJMQRTUVWY]^`bdefjknoruvy{|����������������������������������������������&@�i�FH�W�!}��
�oI⎞JL5����T�ȼ�n���9�~Lߔ���	�
򁾕�Ҍ�>��
z� ���R������!
�n�J^���~�j;�Gx6E+pn��ՂZ��Z�ַ��e�}v�&�$�L�C��V���%@���wR�B�ު<-��g<ਙ�I��[�d5�(
��]��7�GǏ0��~� oȧF�H@�|`�%f�$��}.-p�	��^��B-\�,�ɶ6�4{�Ư+-��o*��j0��(��17��BMV�m6TK�6k?$ݔ8L�"���UΖ7�<�	^c�(�=�lr
��*�fY$1��?}�pL<����p��1�BW�{R�U�F�6R�2釾�m~t���l���C�#_�����sQ{s����O�
�'qc�G滬`��œ��B�JO�CH�Q��N�jg����PR����\6s��/=�g��!�����?LHl;�d"a��9B�a`�.Q�1�}Ս�Λ��m�S�4��2�D#�2g��˾�n2�=�6نy)�����U%��zB��Tps���t"ߔ+��ȟʢ�[n>��b��R�%v�>���W)�$t%*dw'��?���v􃘸;��O�o�
�G`+o�� ��L?rXR�Rm��B��/�ц��CE�쬄����K�o! �7�	)�����J�֘�QŲ_4��LN��<�x��m3�O��8�g�.��"\^G|��ˀ���,��K-G]������$d?<GH�r��|���d�Z�K�%�C�)|�_١�jtg��fph�,�Ù�<܌���ұhV~Ƭ�.�n,{��V�2p�^y�$�s%�qK{�w����5���n-�o����Kc{q(�����j�W,ҳ֐�{�R~�A#{I����F������2���Y��S�%�F����tC�Q��]J��aEc���a���y�+��10���"�p�w�;�
I����tX�d��4�Lh�����{����i!�#\�,�Di���}�K�lT�kP����
�{��`�0Mi��]�w���u{L"�E�H�
iX�nu�տ��$����pHE	q݅�˜
E�Z�>�
���1��k>p������7���f����,�fV��Ž�V�L�\�6�Q��i�M�y�s����/R�o;.0��i����!D[��HE!�r�S���P���hY�/��mf>�*]�!�&b�Vw6��	-Dȸ���"
g��B�^K�xB5��a�;���!T��79X����-��w���M�
I`}l�@B��}�N��ybŲ�$H�S2���A>?l��AO��>�w�@ǿֶA�ɯj��H�ho�W�D��������M���Ϟ��@VM�����Y�Rs��"=eͤ�j��������m��Af�^�X�\}.��Mh,JN�<�+�9�����)�z������N�F����+R���u�M14��Z�U�3"Wd�1���5�4�ٳ&�S����e)HY��ƣ������uۏ
q���t�#Nѝ� ���8N����a�0����G�4H>�06
/��ā�쒦��aϲZX��[%Q�Qʰw�m%���%R�|i�"E�5ߗ�����H��a�7�V�jV �]3���Y��	V)2Շz4h�-�2R�ζ6q��Ϻ�x�Ú��ރ��6R�Η��R��#�ck�p|�7�����]����6F���s�߁e����'Y7K�[�
ޫ�<iY���A�(s���{�|���陆�O@H���Z���'��[#�n�[:��7�D(�u�i!�4�ΡIK�����l�#B#��']���/�S�x���H�j���W�,��Rp��t�(�A��B?�-?�y��ќ��9Z�s���}��xo���h5���P�Q!v�-U�q�YK�a2zR�?��~��&v�\H{���
�A�\��m��3�A��J�JSz�og���b��V�b�1��qXɰ-.:�3�󜔟�|�%�Ъ�J�nXȲqf���Ey�4푺���
��}��[T�g��Y����aZ�
O(y���H�(}n�!ɰ��5Q�>m����,󾁧�p�}��`��32��y)��l
��
����3�C*b|R��U�l����b�W��@}U��=U��I��@i�MMJF���C
'2?%�C����;|�36���c���>�u�`痝uȮ�7�6��G>���s~�6^��n�*C�E���.�K�n1p�;J�	�E&����M�4�rJ����uupm�����2���}���a���aC�|����2%�-E�8��蠭5N�0���++y���|���poUT��-����	q��E�3�o�\��#4a�{�"��n�J�d>e�A�{��\��L��[!s8W���=*Ht�I�?<0�1���g���FZ��D�������
���n�ɇ{�D�l^��R@2�{�L�:�?�cyC,���?�S��<fU$�h�P�u/Czg��6F�3�tdv��ǃL�'�����'�Gr�
��7i��3���O�t��Lj�6����4�B"7�`�1�y��
8����Il��T�l���,�ư\3�W��F{���1z�O�&���:����R������1�v�W�m���l?J��)鮢������~p�
4�X�&�r���E�ɔ�ẁ��0c��I�ֿ{+�d�m\����m,J�@j����)rޱ^��|w��i��J�0���s���O��\�m�뵠�F~�٩������J#��,�c-N��	)������~i��jwy�w���L���	�)� �n�fT����iE������r���4�2�AG2���$���XD��0�X���k�?W��y�	Z�i>���Wݻ�)x�a�r-�в��B���?�۪��}��d�+	�t��%f�����q��N,1�*��
3�Q�i�g՞[d�%ad�ǜ�e%v�ٺ�IPn
K(�����4
+�(lY���H��詼�-�;nRJ����B�J�mŊqB���~���[i�j�Q!�t���@	I�*GW
�A��g�!{�ތ��m��y
�͒i5k�7�-M�C�%kR7���I�p27�?���IE`���,:�#O{R�(
�ր�����2���k��aUHr���G]��c�
J�5�n���Y��U�$��g��"���et_�����U��(�:W�-���ze�z��@�̫���l����־)��P�-Jw����d��6���j�	r���b�p���b3i�̧�{I����Dѕa�Ġt���Ijmb�iY��Ȟ��IG\!�U����˝�3N��dU�lW�?���0/�Npn�[����Q���{N5�=�@e�<�J}a3Mـ5U�2��p��v\�~f����'���U>J�~�^����c����%��
ݠՄ�-m���v�=�=�'�D��ކ^�0�@$�_����s�:wVUO*p�mR[^5-\1Or�oΖ&Voݑ����c��+�؞{<���x�<����qiY��������+6�+R�pE�*���*��J�>J#;0�҂���ᔇ�m�x���=�azr��d+5w�T=K�������aX'Ӳ�[��/��
/��@��3�q�.z�A�{�c��ؘ�,�P���9��4c^� �X��i��ݗ�txgâbe:�v��K&MC
A��o���/{�}�L����c�ׁ�9p�k(�"����zI	����^	a�?�nV��/��qME��t��%9{��e
m��P�Tq��hҁq,p5@3y·4�D&E��눹6���[?�}�NگIڑ<<����b
m�u[��P��6���Z(51�T
���,:�C�
Y����o�g�َP2�H�J�ϰ���
R*P��,ގHw!o��j>��|x��� )YE۵����	��u@������p����x�s�sq��F��CS!by����`F�?�jj�ug�I��	!r�.���sR�/��+@�q�'�塅 �0
��Q��3��͌����o�Ƕ���x��h.��9d�؀���y=.%E���>:J�(A+�����7)���N3N
�^7@��b�i�����l0d���IǠ�ݳ�0�H�R�n���nI������1�j�o�ڊ
��R;�+�7��{H�(�$�����:ĈT�-�פ���s�����(�0d�IU���֗?�=I����`'QПw,�MD�Ɠ�})9�KQ)}���i�x��B�2?Y��Hl�B�ry���H'.���&S�)5������E�-�Cy����u`�6N�����oJ�(p�
�H���[�dH����av���9Ԙ֤� +�)u3��"E�Z�H�Ǐ͠�t:�1y�N�SKC��\;�E�6q7߸d��(�[�E���AY��9i8`!#{�U��3�<p=�]ga s�`�/��|U*�*q��	�j/��?<����K�ֿ�k�:�Kz��n���7ԂB��<�fI�dFz�g�'�c4@����pT�k]���A���5�(EcF��|ŝ0��[��0�F�m�Q��LN�G���|���
h�j��juʓ����L.���FfE�Cp�Fz�C��
D�l��ܜ���0�
�3FN���Q���
�d�c��:���f��Lz�9b���M\�\er���rj��8Fd�W���_?o�Q,�b��F9��Y̓�X5
g��1��x�+v���6}bVI|b=�Î,�B�P��|}�%�l�sP2�%a`��w�6�//Z+q�82
F�8����tL���-�mp��"}����c�IIL�KӬ��Ut���%��[U��xX5:��\$���RCA��P@n�hp��&����
�-�;��:��lAf^*Yk�_Ȉ��0��8d��4��K IK��FW�fg��*_a�������n�L��T&��F���'А��f8U@���*��LN�M��y��L^�5�{`�BA�v���!6���6dl�T�D�S�
�|�@3�J�5=
�n�6���37��<�)5ɨ]��{�T�o�!}����,��?5
.M�E��sv0j�����R��g~I���=xY:�x�n��M���K�!Ձ���I���q~fnH3s"*j܈;���>,�)�KN#��1Y|0ޡY��2��Ps�B���0�S|�"�?2�o�ć$��3�oe�xn5�=���w��
w�t��^L�3���>h�!0�g�m�zjڿg3ޱ���-��p�M4�H�+*�5�9��{}��N��ܪ�8����=�k�v$��<i��E[-\3�u���`�R
���@,0d|�1B���8:!ȱ}��p�8�A��>k�̝5�ˡx��u��45�OVe�",~
�4a-A�6�P�ldػ�����:bUj�Hx�e�0g\%Ԭ�>Cb��9�:DQ�n��m�B��!�fi+8�`QZ���dV���)�8�=5���ؠ��\L���\K���>�����GкO
w�V���4�cf��r-Oƙ����K�׉/cdj�ȅ�����M:<ٮ��������S3�u�[Yp�:z�*_n�B+#��:��g��S���w�KJ^���)g�L��H�?�=�>��9����o"�M����z#6��*[WI�⮪���8x]2I��<�ѵyAeq����[?>~hF�pL;>�+�c�i�E�\WajGq>O�5Uhp�+�cFU \.�\UG�+F`i$35Ij� 6G�7F�c�7r�,�6.�<i.�D�iE7i6>jI5�:_B�<I��c���>
,�E	m�E7��j�h�,m�](,P7�6oFi`�Fw>�	6 WF�,\;0j{?w5<>�kE#E�;?E�>�Y�}5hh[>0B�k�2�Z>�cX
�n!�i�hj�i<Gj>�+fD�l�j�@�h�.-|>�>;�i�5	F�c %,\b�n�I^�E�l�kP>�\�i,�\�Ed;%+�6�j`fjeE>4+kk�hUD`�X�7>�Fp+	-5�+,+�\�>�=j��i�F�E�6�+�EwDdnv;�Dm�X�j,k;�i�l,!�5Hh�E�Z&i�F.GJ>�hm +CF��+�c).�D�l�,�\5F	5V>��h�+�n8E�6�D�Dr>�jU>(7�n�,@EVGnE':?.vF�1, _>{EO>e>��X.!uEl�l-E�Z5hF"CG�E[<X�h�;� D>�S�E�$�jM*�9?# A�"c`Q`@F�C �
����9�r ��H�b�<��4�N	;e���ed^�J?c��DS �MC��
4�k`4q,�oe9 �G��,f�A�~RW�~A�H`HtQ�E�d`�	�b�;�	HH' \�VU�
!�1P�a�"�H�
�59����� �H�!�*��d=@Z�/��a�0��20@	�6p�	��S�W�7!@(.�g@��4���q& B	k1pY!3&Ѝq�%�:'`Z@�7��	A�;@a
��K�v3�%�x'�$K�*m�OK+p�	2�k0+�Y ��H"� HfI �F��lP+v2�.	� �W�p�	9��w�K����:`M
`�X��g{4�	$�C`�
+{N�%9�XеlT��	�T��NZ@���/��+*��%fB��4+`G�e ���S�K�_PXb�Zq1IP�&p���&�W���p�8@	
1�^�M(�\P	#�+�fL��2k	�bD6��K0�?�#��P%_P�$Px	A~T��$ G*70D�p�W
�=�(`m~�1@	a�)�	#+,�4��p�Dx"�HGp���>�T%`�E^��M�2`3	D�`D��_`F2�]���TR�H�U v�j�	x'0H��c1��?G@*�b@M��gP�7�a�e��h�m`�m�P!�Z10	
R0Ga��� �?pr��;�h
`�GXH�-�mR��^7W�S1KlPB8��4
0H�X��
�.�n�0p�C7 �	� ��v�<�
���1�4��	�� -���S�9p9�:T�^K	P!p(J$`>�[��D�$���:�n��F(�e�0d�B`C�'0�lG���+����J��@�a}P�o4��	2"M�	2�,�NE@0r�0"bP�DV@v����KD0�
Y�
0U��b��
��)U`X!�z�0��`?PQ��pO>�І�r N���$zC`�
��F���A�hT�H�@-�Fp�6�Pd� }y8\p���`kx�M0"^�O�@r��J��	�H�I�F>%Pc0���3�+pH�`=k�!p+�R^P�'�gb��#�00� �4@�	� 
Y!0�8��mm<@-AZ����:�G
��6�CL�"�H�U��5D�
8�0�a3K@�|&�K&"�H�S��\�A ��5`�>_f`�a7=�_ceG���@`i]xI�<�D&��8�:�K
Q��H�T���>0�J�G�KD��
a�N�E zM� ����=�
?006�#�F+yl�I$ZMp �PP��OpB�]��b10�b�H�@0YE�mVeP�O�+��	#�0��@HP�]�"pH�0Z�W�H;�O
UHH�Pm��Z@q)�\�X_0tFp�ttA`l�� O�W4�Bm( �#�OBT��}(�YK)�C��
>�c`K'�D\y` �{q:0d� W�(i�U�M$�I%�UcpE:=?�N��L L�@.	YK?0OPIF0�sI(@�b��v��	PZ3tp�7'^���A���ga`�m$�Jf"�H�0��=?�D�����@�n�!�<0Z
U0w�_�`�M�0���@S#�:@N
�5M0
L
���,�[�)�LP��fd�&�AQbHHE���\@��p���<�3�8Hk@�l�H?A0p-�p�o/?pN*�_Ѕ~)XH�����H�0��5� �H�`��G����I�x�f0�!_0N=]p�0C"�HE30^��mw=l�?J9�P&`m,�	�~ X@��5�L9�	
	>`��z3 w��9p?B}B�X��#0E5<�[�PPE03	�%�hPE�!�H�f��oIG 
��l@]��h'@H�[�)�M�"'�
 7m[�q1�f��a7Yp
g�N�s��F@��/�`E}G�
�"PH�
0�	�	hH�%Pv&t7�H��(]�9��p�-��
�@P�p�NP<i�`P���6 E�`�F�K`9�����3�W~h!���B`!@��T�Wp�L�D��B` =0e`R
1C�
�o.`�������-�p~Fm0�cY����|$qP�_�g��E�HP�J�0��AcbPH~�C�I�2}	�:PL
|�����u	��.�[!-�YxL�=)�j��[P6�a����-@�	s�p2>&#�P ��p��b���]��p`@H�L�?aC��
Gk��a: L�c��+Z`�C+9�	
�]+��	I/0�xL��#p=�H�G�H�k02�
05��f0�Q�P���a@�%�<�H50M
Y\P�tE�r��0��*�V��(��5	O�F0��SCI@b�K[�r-i���W!�`OH�\�J��=�d�VP������e�&+/ �	�J�5��`&��#�E�	 �|{�+�]@�5Ip���,�9�_��A��4mD�
��P�-e��	_Arg�)hHu)PHlcp),�G�K9�Q `:�HE@�;r3	�`4�p@���H�- lv�n��F�7 D>��aX��'Qa�g�WG�*mT�TN$O`>y��{)�`o��
@�l�4�	[�>P��b��1h2�-	F3.�G��5�BB�d H�A`�/�lP]+D�%�*�Y{ �(�q<.@��W8��Lv]��L�j�	�=0�n�d��	\`��/@�s_
P�R< �F;@4@z	J
H�L�TIc��bp= �=��'� ��Y�<7�8�
K1(І��P0Ec5 P		XHP[�L U
���,H\D��
p�mP��3 s		�4��	;[G�a�B �
=�)`H9�X�nB��_53�H���M{= �8�	�?W��(�b0;7�Wp�IN�Cm �)rY�C�7�	%<_0]s*0�W�0F(�7�H,����0oV�v�*0?��T�K�? 	#5J���G@Lj�R�J�yW�JG73^���%a0aL�d	J?8��	dCЖ
�N�H9HIB_�=0+�'0-)�;d
!P�M`#2� R1�)p)![�q1�(H	=|
��x�;FP��"�-�M=0���I��	Yli�_�FK+4:�9
>,%8H}ap�M.���J� oOY�L5I���AU0hP~.k
�R��-~P�D!��N�I��E�Z`p)"B03e0p�|Kp��^K��4�]%�sx1 `A�2�@	Z>@�sJ��4�a��RJ���[�:P�&a���&��B�ap����.�-�u(�=0��Zl�C8�; ^
`+U�!�`m	�$6p�i�?�'�X�H�L`	*;��^.X�Z	�Y+�H�%�ujs! ),�K@A5��'>H`�	�1��NW��(�pHp�����H�H
��6B�>+S���7@�	�M`9"��;0O
B�<�H��iq[ �H�dp�	�7 �	�RpI��+M+
4�w	�A	Vj^�J*�@kb@,+����	&��%I�;:H1�P0L0g��`_^�$ jT�4�	��J5us/����'��T���};�]
�V�vv�(�Cze��	�5�4/l�7W��`J;Pd��2@6	#4pSV��r-5���P�2�mJ��	�(�u��S��$��z�P@E
�b�;��_@�I�H(pq1��<"�p�[�)�cв&pЄpOP@mdN@%iU@-�\�	#>`!]�_�i@��,PJ&��Z/��b^*p�1Lp5;9�gM�.@�#�g��	g`��V�(� �4=a��`�J��QB���!xHe#@D$�7p�	U@Q��"q9�� XH�^0K�'p�%�;�f
Z_/��.��i�S@�=�R0J��!hHU3�p)dJ���< �ZZ ��Z���Q�E7�3	O66P`|�`��2'@^x9$s4�]0�}��H�0p9 )�N$rB�?/VPv�GH*@��Wc�'DbW�]!a7�Hp����J0�^�0P��+0s]�0)h�\��)���V?�O�+8P�	K�@��	�V@�(n7�H5P�
�S4�3�Sd)�H����q,:N�	;#@�QWY�C�0��f.�,xH�\�p*�`�D�I�P���J%zb�7dO]�!K �g��}�Zp' @f�_��kt�,�,MW��(5d0�)?PgUX6`�t�=��@[9
S�#`F+�0��&�0TP�
g
���E7��	IH��+U�4	���9��
��]�0z%1��a�c��Oe(��D@Y!�HT@���P;G@L_�'��HR)�^�)@�ZcO�?R����'`ra|"�A�f1P�M"�H�@c�*p���F����F`�[&�J:
��3.4�x	FZ@
[Y��1�W!R��-�" H�%�b
Q }#�JP�:�P��_JH_^!N4�C�@�\n���b@DQ�Y@`�%�x�/���S#D)|Z`�9H��=i@�'[T@�?
�$0��>+�;;-PA)HSy*��:�Pd���&�K����]���wi��K�3s		�]��Y�T��	�Y �4�.p��q�8u8W@�(O<]2�0��s#E�
�/�H,0.�c�*��c��1�p�
����H�`N%Ў	�WМv�K��H��=A�C �
:C0��W�cPoHPT`��H N6�Y�]�R�m �H�3P^�*0�6�5P���z*$ph4x	H�9@P}8`�a�Np	�5�B,� �uL�3Y�BNf[�v6M�j^H�-����q\��@�
0�UJ��q�8�
v�����?
����4��	�<0�
�6[0r)���cy+`�_@�p78PM��k$�T��fZ��|
��%�A`��#�F-/�I�T�:�M
0s;�]
Vv�v6P5�J1pd�PC�gp�B�< �
��'�b
]���k�z�	�,L��L0(��$��,�H�@	SGd�c`m�PHRK�����Y.�HS���* .fP�Kb*��d���m%�tufP�d�#pEl_��;g
E�k`]$�J/pG�	6`��E	�-)-��<�0��0qFGQ�E

`Q)5>
Q`����@?OX�5�Q�EblW��l�Y�_&8)�Y�g3@�HBV`v'I��0_]�Uv<`����5@�$�)@�)�����)\�90M�:RPHU�(�q��D���&@�I�V��(�90S��
��H�O�p�D�M!�L5���	"R�G�Zd`�)gp�PZ[�v6�jp	{J�=e*
�.���3�ETg��.� � �;:0:
C��Hp���.p^�#<0�$NN�$h�HH��R�20E	g�%c
�
��>(H�Y ^�.�19�Ёm6b ��)3@C����\�#80�	)0X!�Z`��E+�6	7��	��
L$�`��M ��S]��,�&���H�@	F#@x?m���k@�##�X!9P�D
�1pL
��G���z@�}�d�)~O	�pS�m�&HJ�Ha��3��|Q*���V@�(�k�w/�:$\����Q�F$�QG-�-�lR
 `;��	xH�����4�Px�e�6&] �K
X!'НW�``p��[��R�$�JP@	7f��F:5���]-�`)S�K�l�]%��L�^N70��� c3@���~�Z��dl`DXjg�M0vTy(�.���I>pD�>Pm	�@H�"P4�EK��(�J
BЅ�k?�V	�L�
?N#� OBLY >IB��|YT7@�	"ol�D[�7�	K�c�G@%W'�Zu��O	cm��N�M� Hv
�4�2�3		^�����A4�"H2���O�Q1N`=� �X�0CLtH0���&��	�;0���U�u4S�Q@{)� ��%�9�
/_��-:��M!y �O&;�@9�80Q/����*�=$�F-� { > i>q6,��H�Er`;A�p]^�^�J�3 ��/@�sD��
+�0S
.��0�>��y�6�	�5 C&S�V@.7@�	�7��%U�_	���Y:qU�
B�A�t�0g��0n����J��<�WP�b_`XX@s��v��
��Z�`��Bpg�P E
�@�����x?6#�A2D��
$�X �	0(�
P@Cx�F�3
Ъ:�6�E"f��B�`@	C�0mk�	_�]4K����_�FGM�		�.�D&� @;
��g��E�96
��?�ph@�KUP�� <ST �$� )�BP�e��	`\���1n�r
jH�H3`R0�*4I`*"?0N7a`��W�]!Oip���! ,�W�Hx%���J���U0v)-��ynR�H�X��<.�X!
��$(��	.2�CA�fw��Q1�U��(�_�F
�	�H��i�|�;m�30s	_�-�H�@�e
nБ#�?�k��Q@F�q(���+�M�"�� P},�CО
A">H&��8�;�c
3�`�a
h�c/`��EP.$)��}*��[5@�	cPE�1p`.>(�E�
4)�[��<*�j�O2P,	���F��(��O|�$�u>;�P
���O���sQO?d�)hH�m0�NpH�@`�X�+ ��|d��	Q&�0�C�
��
 �	u	�*1N�$#2���2� !gS ��lPP�n@NQ�a����D�������I�#��0 �Hk�s�8`M����P)m�!p�- �L7�OpA��p,
�$�jM�`�aT:�H�Np=�%`�|03�!�9VVpvh80�%o<��iZ���)���W�p14"`HBP�A����Nk�`<��gv[ЃJ+0�	�H:P:
���9%�V�(�*����[��BM@tJf@�ps-��
�H� ��+
=+�;�`
�s9@LFpS �.::
	(�x�0Q�"�7bKp���X���`sE�	H,��T�HHHcp%eu��!c.�9
(!!�$h�@ �td@+)� �"9�*p��>X��p3�J  �F�% k��i9S00�3�a�Up&�8�� [,�Ov0��A,Y�4�J��x�<ФK^=0.Y��`!��|	�,P�Z�"�73�#0�� �:d_&@�@3�L	L�U�u�����W �(��KA ��HL{��	��6PC1(0�!����M
���X"(H:2�`?CgP��?�g]sX�>^3�,�N�;�;�$	0H�?�p6C`�
44��e0FW��S7_*����Cp�
:�G
�`��qK0�+__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizedln_loadmemcpydlopendlsymruby_xmalloc__stack_chk_faildlerrorrb_loaderrordlcloserb_locale_charmapnl_langinforb_usascii_str_new_cstrrb_default_external_encodingrb_enc_to_indexrb_newobj_ofruby_xrealloc2ruby_xfreeruby_xmalloc2rb_ary_eachrb_block_given_prb_yieldrb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_scan_argsrb_num2longrb_int2bigrb_enc_copyrb_str_buf_appendrb_str_buf_newrb_str_catrb_inspectrb_usascii_str_new_staticrb_funcallvrb_ary_rassocrb_equalrb_ary_includesrb_exec_recursive_pairedrb_float_new_in_heaprb_warnrb_error_arityrb_eIndexErrorrb_raiserb_hash_lookup2rb_hash_asetrb_hash_startst_hash_uintrb_hashst_hash_endrb_respond_torb_eRuntimeErrorrb_yield_valuesrb_cmpintrb_eArgErrorrb_exec_recursiverb_check_string_typerb_check_convert_typerb_obj_as_stringrb_eqlrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_cFixnumrb_method_basic_definition_prb_cStringrb_str_cmprb_convert_typerb_hash_newst_updatest_free_tablerb_ary_entryrb_fix2intrb_cNumericrb_obj_is_kind_ofrb_obj_classnamerb_eTypeErrorrb_mem_clearrb_freeze_singleton_classrb_cArrayrb_obj_classrb_ary_freezerb_obj_freezerb_ary_shared_with_prb_ary_new_caparb_ary_plusrb_gc_writebarrier_unprotectrb_ary_newrb_ary_new_from_argsrb_ary_new_from_valuesrb_free_tmp_bufferrb_alloc_tmp_buffermemsetmemchrrb_ary_tmp_newrb_ary_freerb_gc_force_recyclerb_ary_clearrb_error_frozen_objectst_foreachrb_ary_modifymemmoverb_ary_pushst_deletest_lookuprb_iter_breakrb_cRandomrb_random_ulong_limitedrb_check_hash_typerb_get_kwargsrb_range_beg_lenrb_ary_sort_bangqsort_rrb_ary_replacerb_block_callrb_intern2rb_str_tmp_newrb_str_resizerb_eRangeErrorrb_ary_memsizerb_assoc_newrb_check_array_typerb_ary_assocrb_ary_cmprb_ary_storerb_ary_deleterb_warningrb_ary_catrb_ary_popst_init_numtablest_insertrb_num2intrb_ary_shiftrb_ary_unshiftrb_ary_subseqrb_ary_arefrb_yield_values2rb_ary_to_aryrb_ary_concatrb_bugrb_ary_resize__memcpy_chkrb_ary_duprb_ary_sortrb_ary_resurrectrb_ary_joinrb_string_valuerb_usascii_encodingrb_enc_associaterb_output_fsrb_ary_to_srb_ary_reverserb_ary_rotaterb_get_values_atrb_ary_delete_atrb_cObjectrb_define_classrb_mEnumerablerb_include_modulerb_define_alloc_funcrb_define_singleton_methodrb_define_methodrb_define_aliasrb_cBignum__assert_failruby_digit36_to_number_tablerb_cSymbolrb_cFalseClassrb_cFloatrb_cNilClassrb_cTrueClassrb_eFloatDomainErrorrb_isspacerb_invalid_strrb_usascii_str_newrb_big_eqlmemcmprb_big_hashrb_memhashrb_thread_call_without_gvlrb_thread_check_intsrb_genrand_ulong_limitedrb_big_mul_normalrb_big_sq_fastrb_big_mul_balancerb_big_mul_karatsubarb_big_mul_toom3rb_bigzero_prb_funcallrb_cmperrrb_big_resizerb_big_orrb_num_coerce_bitrb_big_xorldexprb_big_divrem_normalrb_num_zerodivrb_obj_hiderb_gc_register_mark_objectrb_big_newrb_big_clonerb_big_2comprb_big_normrb_uint2bigrb_big_andrb_big_modulorb_num_coerce_binrb_big_divmodrb_uint2inumrb_int2inumrb_absint_sizerb_to_intrb_absint_numwordsrb_absint_singlebit_prb_integer_packrb_big_packrb_big_lshiftrb_big_rshiftrb_integer_unpackrb_big_unpackrb_cstr_to_inumruby_strtoulrb_str_to_inumrb_must_asciicompatrb_string_value_cstrrb_str2big_poweroftworb_str2big_normalrb_str2big_karatsubarb_ull2inumrb_ll2inumrb_cstr2inumrb_str2inumrb_big2str_poweroftworb_big2str_genericrb_big2strrb_fix2strrb_big2ulongrb_big2longrb_big2ullrb_big2llrb_dbl2bigrb_big2dblrb_big_plusrb_big_minusrb_big_mulrb_big_divrb_big_idivfrexprb_big_powrb_rational_rawroundrb_complex_rawrb_big_cmpmodfrb_num_coerce_cmprb_num_coerce_reloprb_big_eqrb_cIntegerst_add_directrb_class_bootrb_cClassrb_internrb_name_classrb_const_setrb_check_inheritablerb_class_newrb_check_typerb_singleton_class_attachedrb_st_insert_id_and_valuerb_singleton_class_clonerb_st_copyrb_mod_init_copyrb_obj_init_copyrb_cBasicObjectrb_ivar_getrb_cModulerb_make_metaclassrb_class_realrb_define_class_idrb_class_inheritedrb_const_definedrb_const_getrb_define_class_id_underrb_const_defined_atrb_id2strrb_set_class_path_stringrb_class_pathrb_const_get_atrb_name_errorrb_define_class_underrb_module_newrb_define_module_idrb_define_modulerb_define_module_id_underrb_class2namerb_define_module_underrb_include_class_newrb_clear_constant_cacherb_clear_method_cache_by_classrb_frozen_class_prb_prepend_modulerb_mod_included_modulesrb_mod_include_prb_mod_ancestorsrb_define_method_idrb_define_protected_methodrb_define_private_methodrb_undef_methodrb_singleton_classrb_define_module_functionrb_define_global_functionrb_mKernelrb_aliasrb_define_attrrb_attrrb_any_to_srb_sprintfrb_exc_new_strrb_extract_keywordsrb_cHashrb_isdigitrb_block_procrb_fatalrb_class_instance_methodsrb_class_protected_instance_methodsrb_class_private_instance_methodsrb_class_public_instance_methodsrb_obj_singleton_methodsrb_exc_raiserb_check_funcallrb_rescuerb_exec_recursive_paired_outerrb_mComparable__ctype_b_locrb_cComplexrb_ivar_setrb_copy_generic_ivarrb_str_cat_cstrrb_str_concatrb_Stringstrchrstrpbrkrb_cstr_to_dblrb_mMathrb_str_to_dblrb_cRationalnucomp_canonicalizationrb_complex_newrb_complex_polarrb_str_modifyrb_backref_getrb_match_busyrb_backref_setrb_Complexrb_complex_set_realrb_complex_set_imagrb_marshal_define_compatrb_define_constrb_providerb_enc_mbclenrb_isalphaclosedirrb_protectrb_enc_precise_mbclenrb_enc_codepoint_lenrb_enc_toupperstrlcpyrb_enc_getrb_enc_dummy_prb_enc_str_asciionly_prb_str_coderange_scan_restartablerb_get_path_no_checksaferb_enc_compatiblerb_file_directory_prb_ascii8bit_encodingrb_filesystem_encodingrb_get_pathrb_jump_tagrb_memerrorrb_enc_str_newrb_check_safe_objrb_enc_from_encodingrb_enc_checkrb_external_str_new_with_encrb_str_new_staticrb_securerb_enc_path_skip_prefixrb_enc_path_endrb_str_encode_ospathrb_str_subseqrmdirrb_sys_fail_path_inchrootchdirrb_thread_currentrb_check_typeddatarb_eIOErrorrb_gc_markseekdirtelldirrewinddir__errno_locationreaddirrb_sys_failrb_str_dupdirfdrb_str_new_frozenopendirrb_to_encodingrb_gcrb_cDirrb_Arrayrb_ensureruby_xcallocrb_data_typed_object_alloc__lxstat__xstatrb_class_namerb_str_appendmkdirrb_dir_getwdruby_getcwdrb_tainted_str_new_cstrgetenvrb_str_new_cstrruby_globrb_globruby_brace_globrb_cFileeaccessdln_find_exe_rdln_find_file_rruby_strdupst_locale_insensitive_strcasecmprb_cEncodingrb_enc_set_dummyrb_enc_unicode_pOnigEncodingASCIIst_init_strcasetablerb_enc_from_indexrb_encdb_set_unicoderb_enc_set_baserb_enc_fast_mbclenonigenc_mbclen_approximaterb_enc_ascgetrb_enc_codepointrb_enc_codelenrb_enc_code_to_mbclenOnigEncAsciiToUpperCaseTablerb_enc_tolowerOnigEncAsciiToLowerCaseTablerb_ascii8bit_encindexrb_utf8_encodingrb_utf8_encindexrb_enc_sprintfrb_usascii_encindexrb_filesystem_encindexrb_default_internal_encodingrb_enc_default_internalrb_isalnumOnigEncAsciiCtypeTablerb_isblankrb_iscntrlrb_isgraphrb_islowerrb_isprintrb_ispunctrb_isupperrb_enc_registerrb_encdb_declarerb_enc_replicaterb_define_dummy_encodingrb_encdb_replicaterb_encdb_dummyst_insert2rb_encdb_aliasrb_isxdigitrb_tolowerrb_ruby_verbose_ptrrb_ruby_debug_ptrrb_errinforb_safe_levelrb_set_errinforb_enc_get_indexrb_sym2strrb_enc_str_coderangerb_eEncCompatErrorrb_obj_encodingrb_eEncodingErrorrb_enc_set_indexrb_enc_associate_indexrb_enc_find_indexrb_to_encoding_indexrb_enc_set_default_externalrb_enc_set_default_internalrb_find_encodingrb_enc_findrb_locale_encindexrb_locale_encodingrb_enc_default_externalrb_toupperrb_cEnumeratorrb_obj_allocrb_attr_getrb_obj_duprb_node_newnoderb_check_idrb_enum_values_packrb_eStopIterationrb_rescue2rb_hash_arefrb_sym2idrb_to_idrb_proc_callrb_call_superrb_out_of_intrb_fiber_currentrb_fiber_newrb_fiber_resumerb_fiber_alive_prb_proc_newrb_exc_newrb_fiber_yieldrb_need_blockrb_obj_is_procrb_enumeratorizerb_enc_str_new_staticrb_str_vcatfrb_str_catfrb_sourcelineruby_vsnprintffputsruby_descriptionruby_snprintfrb_cNameErrorMesgrb_gc_mark_locationsrb_eSystemCallErrorrb_iv_setrb_check_to_intrb_mErrnorb_stderrrb_io_putsrb_obj_clonerb_compile_warnrb_compile_warningrb_bug_reporter_addrb_sourcefilerb_bug_errnostrerrorrb_typeddata_inherited_prb_typeddata_is_kind_ofrb_str_newrb_exc_new_cstrrb_eSyntaxErrorrb_compile_error_with_encrb_compile_errorrb_compile_error_appendrb_vsprintfrb_eLoadErrorrb_eNameErrorrb_class_new_instancerb_name_error_strrb_eExceptionrb_eSystemExitrb_eFatalrb_eSignalrb_eInterruptrb_eStandardErrorrb_eKeyErrorrb_eScriptErrorrb_eNotImpErrorrb_cDatarb_eNoMethodErrorrb_eSecurityErrorrb_eNoMemErrorrb_enc_raiserb_enc_vsprintfrb_f_sprintfrb_enc_str_new_cstrrb_loaderror_with_pathrb_notimplementrb_exc_fatalrb_syserr_new_strrb_syserr_newrb_syserr_failrb_syserr_fail_strrb_sys_fail_strrb_syserr_fail_path_inrb_mod_sys_failrb_extend_objectrb_mod_sys_fail_strrb_mod_syserr_failrb_mod_syserr_fail_strrb_sys_warningrb_str_set_lenrb_str_buf_new_cstrrb_error_frozenrb_check_frozenrb_error_untrustedrb_check_trustedrb_check_copyablerb_set_safe_level_forcerb_iseq_eval_mainrb_hash_foreachrb_mod_const_atrb_mod_const_ofrb_const_listrb_mod_constantsrb_file_dirnamerb_eSysStackErrorrb_ivar_definedrb_hash_lookuprb_set_end_procruby_setupruby_init_stackruby_prog_initruby_executable_noderuby_exec_noderb_interruptrb_make_exceptionrb_frame_calleerb_write_errorrb_write_error2ruby_initrb_iv_getrb_obj_is_instance_ofrb_exec_end_procrb_trap_exitruby_finalizeruby_sig_finalizerb_gc_call_finalizer_at_exitruby_optionsruby_process_optionsruby_cleanupruby_vm_destructruby_default_signalruby_stopruby_run_noderb_hash_duprb_obj_call_initrb_define_virtual_variablerb_f_global_variablesrb_f_trace_varrb_f_untrace_varrb_eThreadErrorrb_eLocalJumpErrorrb_str_freezerb_is_absolute_pathrb_string_value_ptrrb_load_file_strrb_iseq_new_toprb_iseq_evalrb_autoload_prb_autoloadrb_find_filerb_filesystem_str_new_cstrrb_str_equalst_get_keyrb_feature_providedstrrchrrb_providedrb_loadrb_load_protectrb_find_file_ext_safest_init_strtablerb_find_file_saferb_setup_fake_strrb_require_saferb_f_requirerb_file_absolute_pathrb_requireruby_init_extrb_gvar_readonly_setterrb_define_hooked_variablerb_alias_variablerb_proc_lambda_prb_cProcrb_cUnboundMethodrb_mRubyVMFrozenCorerb_obj_setuprb_is_local_idrb_intern_strrb_cMethodrb_block_lambdarb_cBindingrb_binding_newrb_proc_call_with_blockrb_proc_arityrb_obj_is_methodrb_class_inherited_prb_obj_methodrb_method_call_with_blockrb_method_callrb_mod_method_arityrb_obj_method_arityrb_method_get_iseqrb_proc_get_iseqrb_iseq_parametersrb_iteraterb_undef_alloc_funcrb_str_inspectrb_cloexec_opengetgidgetegidgetgroupsrb_num2ulongrb_io_taint_checkrb_io_check_closed__fxstatrb_time_nano_newrb_io_check_initializedrb_obj_taintflockrb_num2uintfchownrb_str_ellipsizeunlinklchownutimesutimensatrb_mFileTestgeteuidgetuidftruncatefchmodumaskrb_thread_io_blocking_regionrb_thread_wait_forrb_insecure_operationrb_str_conv_encreadlinkrb_str_modify_expandrenamerb_time_timespecsymlinkrb_stat_newrb_cStatrb_enc_path_nextrb_enc_path_last_separatorgetpwnamendpwentruby_enc_find_basenamerb_str_new_sharedonigenc_get_left_adjust_char_headruby_enc_find_extnamerb_str_capacityrb_file_expand_pathrb_file_s_expand_pathrb_file_s_absolute_pathrb_path_checkrb_update_max_fdrb_find_file_extrb_cIOrb_f_notimplementrb_gc_enableclock_gettimegetrusagerb_eval_cmd__fprintf_chkruby_strtodrb_stdoutrb_io_writerb_obj_respond_torb_obj_idst_memsizeruby_native_thread_prb_thread_call_with_gvlstrtollrb_objspace_data_type_memsizerb_objspace_data_type_namerb_objspace_each_objects_without_setuprb_objspace_internal_object_prb_undefine_finalizerrb_define_finalizerrb_gc_copy_finalizerrb_gc_finalize_deferredrb_objspace_markable_object_prb_objspace_garbage_object_prb_obj_memsize_ofrb_generic_ivar_memsizeonig_region_memsizerb_str_memsizeonig_memsizerb_io_memsizerb_node_memsizeruby_stack_lengthruby_stack_checkrb_mark_setrb_mark_hashrb_mark_tblrb_objspace_marked_object_prb_obj_gc_flagsrb_during_gcrb_gc_countrb_gc_latest_gc_inforb_gc_statrb_mark_generic_ivarrb_gc_mark_noderb_objspace_reachable_objects_fromrb_gc_mark_valuesrb_gc_mark_mayberb_gc_mark_global_tblrb_mark_generic_ivar_tblrb_objspace_reachable_objects_from_rootposix_memalignrb_io_fptr_finalizeonig_region_freerb_gc_free_nodeonig_freerb_str_freerb_postponed_job_register_onerb_free_generic_ivarrb_objspace_each_objectsrb_gc_disablerb_gc_startmalloc_usable_sizerb_gc_register_addressrb_global_variableruby_xreallocrb_newobjrb_data_object_allocrb_gc_unregister_addressrb_mGCrb_hash_sizest_cleanup_safest_init_tablest_keys_checkst_values_checkrb_locale_str_newrb_tainted_str_newrb_str_buf_cat_asciist_foreach_checkrb_str_hash_cmprb_hash_freezerb_hash_ifnonerb_hash_set_ifnonerb_exec_recursive_outerst_hashrb_str_hashrb_hash_iter_levst_foreach_saferb_hash_delete_ifrb_hash_clearst_clearst_init_table_with_sizerb_hash_tblrb_hash_fetchrb_hash_delete_entryst_delete_safest_shiftrb_hash_deleterb_hash_update_byrb_env_path_taintedruby_setenvrb_env_clearruby_unsetenvrb_define_global_constst_numcmpwritevrb_econv_closefcloserb_funcallv_publicrb_iter_break_valueioctlposix_fadvisefdatasyncfsyncrb_fd_termrb_exec_async_signal_saferb_execarg_fixuprb_fd_initrb_time_intervalsyscallrb_thread_call_without_gvl2rb_econv_open_optsrb_econv_open_excst_locale_insensitive_strncasecmprb_econv_prepare_optionsrb_thread_interruptedrb_fd_zerorb_fd_setrb_fd_selectsendfilelseekpreadrb_thread_fd_selectrb_maygvl_fd_fix_cloexecfcntlrb_fd_fix_cloexecrb_cloexec_dup2dup3rb_cloexec_pipepipe2rb_cloexec_fcntl_dupfdrb_cloexec_duprb_eof_errorrb_eEOFErrorrb_rsrb_default_rsisattyrb_io_get_iorb_io_check_iorb_io_get_write_iorb_fd_issetrb_io_set_write_iorb_stdinrb_io_check_writablerb_io_read_pendingrb_io_read_checkrb_thread_wait_fdrb_io_wait_readablerb_econv_make_exceptionrb_econv_convertrb_econv_putbackablerb_econv_putbackrb_econv_check_errorrb_io_wait_writablerb_thread_fd_writablerb_mutex_synchronizerb_io_check_char_readablerb_io_check_byte_readablerb_io_check_readablerb_io_ungetbyterb_str_locktmprb_str_unlocktmprb_io_eofrb_str_encoderb_lastline_setrb_io_ungetcrb_fix2uintrb_enc_uint_chrrb_mutex_newrb_econv_str_convertrb_econv_asciicompat_encodingrb_io_closerb_thread_schedulerb_syswaitshutdownrb_io_bufwriterb_io_addstrrb_io_printfrb_io_printrb_output_rsrb_lastline_getrb_str_substrrb_io_flushrb_io_getbyterb_io_set_nonblockrb_io_getsrb_io_binmoderb_econv_binmoderb_io_ascii8bit_binmoderb_io_modestr_fmoderb_io_oflags_fmoderb_io_modestr_oflagsrb_check_to_integerrb_io_extract_encoding_optionfreopenfilenosetvbufrb_fdopenrb_io_synchronizedrb_piperb_close_before_execrb_prb_io_stdio_filerb_io_make_open_filerb_file_open_strrb_file_openrb_io_fdopenrb_reserved_fd_prb_execarg_getrb_execarg_addoptrb_fork_async_signal_saferb_thread_atforkrb_execarg_newrb_execarg_extract_optionsrb_execarg_setenvrb_getsrb_get_argvrb_readwrite_sys_failrb_mWaitReadablerb_mWaitWritablerb_str_setterrb_define_variablerb_set_class_pathrb_define_readonly_variablerb_generic_ivar_tablerb_path_to_classrb_get_alloc_funcrb_cRegexprb_reg_optionsrb_struct_membersrb_ivar_foreachrb_str_internrb_struct_s_membersrb_reg_new_strrb_struct_initializerb_marshal_dumprb_marshal_loadrb_to_floatlogrb_eMathDomainErroratanerferfcasinhcbrtacoshasinacoshypotsqrttgammaatanhlog2log10lgamma_ratan2ruby_node_namerb_parser_dump_treerb_Floatrb_remove_method_id__memmove_chkrb_eZeroDivErrorfmodrb_num2dblnextafterrb_dbl_cmprb_num2shortrb_fix2shortrb_num2ushortrb_fix2ushortrb_num2fixrb_num2llrb_num2ullrb_int_positive_powrb_float_valuerb_float_newrb_is_class_idrb_cvar_definedrb_cvar_getrb_mod_module_execrb_is_instance_idrb_obj_taintedrb_obj_untrustedrb_obj_frozen_prb_class_superclassrb_obj_untrustrb_obj_untaintrb_obj_trustrb_check_id_cstrrb_is_const_idrb_cvar_setrb_const_missingrb_ivar_countrb_obj_revealstrcmprb_obj_infectrb_class_get_superclassrb_Integerrb_check_to_floatrb_Hashrb_obj_instance_variablesrb_obj_remove_instance_variablerb_mod_namerb_mod_remove_constrb_mod_const_missingrb_mod_class_variablesrb_mod_remove_cvarrb_str_associaterb_str_associatedrb_uv_to_utf8ruby_global_name_punct_bitsrb_make_backtracerb_range_newrb_char_to_option_kcoderb_id_attrsetfputconigenc_get_prev_char_headruby_scan_hexstpcpyrb_memcicmprb_id2namerb_global_entryst_init_numtable_with_sizerb_enc_symname2_prb_intern3ruby_scan_octrb_rational_newrb_parser_compile_string_pathrb_parser_compile_stringrb_parser_compile_cstrrb_parser_compile_file_pathrb_parser_compile_filerb_parser_reg_compilerb_parser_append_printrb_parser_while_looprb_reserved_wordrb_parser_newrb_compile_stringrb_compile_cstrrb_compile_filerb_parser_end_seen_prb_parser_encodingrb_parser_get_yydebugrb_parser_set_yydebugrb_parser_mallocrb_parser_callocrb_parser_reallocrb_parser_freeonig_foreach_nameruby_scan_digitsrb_get_coveragesrb_last_status_getsysconfgetpwnam_rgetgrnam_rgetpidsetpgidrb_thread_sleepsetresuidsetsidsetgroupsinitgroupsgetpgidgetppidruby_signal_namerb_thread_local_arefexecleexeclsetuidsetreuidseteuidsetgidsetresgidsetregidsetegidrb_thread_sleep_foreversigfillsetpthread_sigmaskpthread_setcancelstategetresuidsigemptysetsigactionsigprocmaskgetresgidvforkrb_proc_timesrb_struct_newsetprioritygetprioritygetsidgetrlimitsetrlimitclock_getresgettimeofdayrb_last_status_setrb_waitpidrb_detach_processrb_thread_createrb_thread_local_asetrb_proc_execrb_execarg_initrb_execarg_run_optionsgetpgrpqsortexecveexecvrb_f_execrb_exitrb_f_exitrb_f_abortrb_spawn_errrb_spawnrb_mProcessrb_f_killrb_cThreadrb_struct_define_underrb_cStructrb_range_valuesrb_genrand_int32rb_genrand_realrb_random_int32rb_random_realrb_random_bytesrb_reset_random_seedrb_struct_alloc_noinitrb_cTimerb_sym_to_srb_cRangerb_struct_define_without_accessorrb_gcd_normalnurat_canonicalizationrb_Rationalrb_rational_numrb_rational_denrb_flt_rationalize_with_precrb_flt_rationalizerb_eRegexpErrorrb_str_to_strrb_enc_strlenrb_reg_match_prerb_reg_match_postOnigDefaultSyntaxonig_newOnigDefaultCaseFoldFlagonig_reg_initonig_error_code_to_stronig_compileonig_name_to_backref_numberrb_memsearchmemmemrb_reg_region_copyonig_region_copyrb_reg_backref_numberonig_region_resizerb_cMatchrb_reg_prepare_rerb_reg_adjust_startposonigenc_get_right_adjust_char_headonig_searchrb_reg_searchrb_str_offsetrb_str_lengthrb_reg_matchrb_str_sublenrb_reg_match2rb_reg_nth_definedrb_reg_nth_matchrb_reg_last_matchrb_reg_match_lastrb_reg_allocrb_reg_init_strrb_enc_reg_newrb_reg_newrb_reg_regcomprb_reg_quoterb_reg_regsubrb_enc_str_buf_catonig_noname_group_capture_is_activeonigenc_set_default_caseconv_tableonigenc_set_default_encodingonig_set_warn_funconig_set_verb_warn_funconig_reduce_nested_quantifieronig_node_freeonig_renumber_name_tableonig_name_to_group_numbersonig_scan_env_set_error_stringonig_node_new_anchoronigenc_strlenonig_node_str_setonig_node_new_stronig_node_str_catonig_node_list_addonig_node_new_altonig_node_new_listonig_get_default_case_fold_flagonig_set_default_case_fold_flagonig_bbuf_initonig_free_bodyonig_names_freeonig_transferonig_chain_link_addonig_chain_reduceonig_initonigenc_initonig_endonig_free_shared_cclass_tableonig_free_node_listonig_is_in_code_rangeonig_is_code_in_cc_lenonig_is_code_in_cconig_node_new_encloseonigenc_ascii_is_code_ctypeonig_parse_make_treeonig_new_without_alloconigenc_get_default_encodingOnigEncDefaultCharEncodingonigenc_get_right_adjust_char_head_with_prevonigenc_step_backonigenc_steponigenc_strlen_nullonigenc_str_bytelen_nullonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_apply_all_case_fold_with_maponigenc_get_case_fold_codes_by_str_with_maponigenc_not_support_get_ctype_code_rangeonigenc_is_mbc_newline_0x0aonigenc_ascii_mbc_case_foldonigenc_single_byte_mbc_enc_lenonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchonigenc_always_false_is_allowed_reverse_matchonigenc_mbn_mbc_to_codeonigenc_mbn_mbc_case_foldonigenc_mb2_code_to_mbclenonigenc_mb4_code_to_mbclenonigenc_mb2_code_to_mbconigenc_mb4_code_to_mbconigenc_mb2_is_code_ctypeonigenc_mb4_is_code_ctypeonigenc_with_ascii_strncmponigenc_with_ascii_strnicmponigenc_minimum_property_name_to_ctypeonigenc_property_list_add_propertyonig_st_insert_strendonig_st_init_strend_table_with_sizeonigenc_property_list_initOnigEncISO_8859_1_ToUpperCaseTableOnigEncISO_8859_1_ToLowerCaseTableonig_error_code_to_format__sprintf_chkonig_snprintf_with_patternonig_region_clearonig_region_setonig_region_initonig_region_newonig_get_match_stack_limit_sizeonig_set_match_stack_limit_sizeonig_matchonig_search_gposonig_get_encodingonig_get_optionsonig_get_case_fold_flagonig_get_syntaxonig_number_of_capturesonig_number_of_capture_historiesonig_copy_encodingonig_null_warnonig_strncmponig_strcpyonig_st_lookup_strendonig_number_of_namesonig_node_conv_to_str_nodeonig_node_str_clearonig_scan_unsigned_numberOnigSyntaxRubyonig_set_default_syntaxonig_copy_syntaxonig_set_syntax_oponig_set_syntax_op2onig_set_syntax_behavioronig_set_syntax_optionsonig_get_syntax_oponig_get_syntax_op2onig_get_syntax_behavioronig_get_syntax_optionsonig_set_meta_charOnigSyntaxPythonOnigSyntaxPerlOnigSyntaxPerl58_NGOnigSyntaxPerl58OnigSyntaxJavaOnigSyntaxGnuRegexOnigSyntaxGrepOnigSyntaxEmacsOnigSyntaxPosixExtendedOnigSyntaxPosixBasicOnigSyntaxASISmblenrb_gv_setsetproctitlerb_funcall_passing_blockrb_fsruby_each_wordsruby_incpushruby_init_loadpathrb_gv_getrb_load_fileruby_scriptrb_external_str_new_cstrruby_set_script_namestrstrruby_set_argvrb_const_removerb_iseq_new_mainrb_set_safe_levelruby_show_versionruby_show_copyright__printf_chkrb_iseq_disasmrb_argv0ruby_sysinitruby_safe_level_4_warningrb_secure_updatekillpgsigaltstackruby_posix_signalrb_str_conv_enc_optsrb_str_formatrb_enc_nthrb_check_symbol_cstrst_numhashst_init_strtable_with_sizest_init_strcasetable_with_sizest_keysst_valuesst_hash_uint32st_hash_startstrspnrb_funcall_with_blockrb_utf8_str_newrb_utf8_str_new_cstrrb_utf8_str_new_staticrb_str_dup_frozenrb_str_new_with_classrb_str_timesrb_str_succrb_str_dumprb_str_shared_replacerb_str_resurrectrb_str_strlenrb_str_plusrb_str_replacecryptmemrchrrb_str_subposrb_external_str_newrb_locale_str_new_cstrrb_filesystem_str_newrb_str_exportrb_str_export_localerb_str_export_to_encrb_str_buf_catrb_str_cat2rb_str_buf_cat2rb_str_comparablerb_str_drop_bytesrb_str_updaterb_str_splitrb_str_scrubrb_enc_symname_prb_to_symbolrb_sym_all_symbolsrb_mod_module_evalrb_struct_arefrb_struct_asetrb_struct_getmemberrb_struct_define_without_accessor_underrb_struct_definerb_struct_allocrb_symname_prb_is_global_idrb_is_attrset_idrb_is_junk_idrb_check_symboltzsetlocaltime_rmktimerb_time_succgmtimerb_time_newrb_time_num_newrb_time_timevalrb_register_transcoderrb_declare_transcoderrb_econv_encoding_to_insert_outputrb_econv_decorate_at_firstrb_econv_decorate_at_lastrb_econv_openrb_econv_insert_outputrb_econv_set_replacementrb_econv_prepare_optsrb_econv_has_convpath_prb_econv_appendrb_econv_substr_appendrb_econv_str_appendrb_econv_substr_convertrb_gvar_undef_setterrb_gvar_val_getterrb_gvar_val_setterrb_gvar_val_markerrb_gvar_undef_markerrb_gvar_var_getterrb_gvar_var_setterrb_gvar_undef_getterrb_gvar_var_markerrb_class_path_cachedrb_gvar_getrb_gvar_setrb_gvar_definedrb_cv_getrb_cv_setrb_define_class_variablerb_autoload_loadrb_const_get_fromrb_const_defined_fromrb_path2classruby_versionruby_release_dateruby_platformruby_copyrightruby_enginefflushruby_patchlevelruby_api_versionrb_iseq_new_with_optrb_iseq_add_mark_objectdladdrrb_cISeqrb_iseq_loadrb_iseq_defined_stringrb_iseq_translate_threaded_coderb_iseq_compile_noderb_iseq_original_iseqrb_iseq_build_from_aryruby_debug_print_indent__vfprintf_chkruby_debug_print_valueruby_debug_print_idruby_debug_print_noderuby_debug_breakpointruby_set_debug_optionrb_iseq_newrb_iseq_compile_with_optionrb_iseq_compilerb_iseq_compile_on_baserb_iseq_line_norb_iseq_disasm_insnrb_iseq_line_trace_eachrb_iseq_line_trace_allrb_iseq_line_trace_specifyrb_cRubyVMstrtolrb_cEnvrb_clear_cacherb_method_boundprb_current_receiverrb_eval_string_protectrb_eval_stringrb_eval_string_wraprb_throw_objrb_throwrb_catch_objrb_catchrb_frame_popruby_vm_at_exitrb_frame_method_id_and_classrb_applyrb_yield_blockrb_obj_instance_execrb_obj_instance_evalrb_yield_splatrb_eachrb_remove_methodrb_undefputcharfopenfreadfeofrb_backtracerb_debug_inspector_openrb_debug_inspector_frame_self_getrb_debug_inspector_frame_class_getrb_debug_inspector_frame_binding_getrb_debug_inspector_frame_iseq_getrb_debug_inspector_backtrace_locationsrb_profile_framesrb_profile_frame_pathrb_profile_frame_absolute_pathrb_profile_frame_labelrb_profile_frame_base_labelrb_profile_frame_first_linenorb_profile_frame_classpathrb_profile_frame_singleton_method_prb_profile_frame_method_namerb_profile_frame_qualified_method_namerb_profile_frame_full_labelrb_tracepoint_enabled_prb_thread_add_event_hookrb_add_event_hookrb_thread_add_event_hook2rb_add_event_hook2rb_tracepoint_enablerb_tracepoint_disablerb_thread_remove_event_hookrb_thread_remove_event_hook_with_datarb_remove_event_hookrb_remove_event_hook_with_datarb_tracearg_from_tracepointrb_tracearg_event_flagrb_tracearg_eventrb_tracearg_linenorb_tracearg_pathrb_tracearg_method_idrb_tracearg_defined_classrb_tracearg_bindingrb_tracearg_selfrb_tracearg_return_valuerb_tracearg_raised_exceptionrb_tracearg_objectrb_tracepoint_newrb_postponed_job_registerrb_postponed_job_flushpthread_mutex_initpthread_selfpthread_getattr_nppthread_attr_getstackpthread_attr_getguardsizepthread_attr_destroypthread_mutex_lockpthread_cond_signalpthread_mutex_unlockpthread_cond_destroypthread_mutex_destroypthread_cond_waitpthread_cond_timedwaitrb_mutex_locked_prb_mutex_trylockpthread_cond_broadcastrb_mutex_unlock_setjmppthread_killrb_thread_killpthread_attr_initpthread_attr_setstacksizepthread_createfprintfpthread_condattr_initpthread_condattr_setclockpthread_cond_initpthread_condattr_destroypthread_attr_setinheritschedpthread_attr_setdetachstatepthread_key_createpthread_setspecific__libc_stack_endgetpagesizerb_nativethread_selfrb_nativethread_lock_initializerb_nativethread_lock_destroyrb_nativethread_lock_lockrb_nativethread_lock_unlockrb_thread_check_trap_pendingpthread_getspecificrb_thread_fd_closerb_thread_wakeup_aliverb_thread_wakeuprb_thread_mainrb_thread_aloneprctlsched_yieldrb_thread_sleep_deadlyrb_thread_sleep_deadly_allow_spurious_wakeuprb_mutex_lockrb_thread_runrb_thread_stoprb_fd_clrrb_fd_copyrb_fd_duprb_wait_for_single_fdppollpthread_joinrb_mutex_sleeprb_thread_atfork_before_execrb_set_coveragesrb_reset_coveragesgetcontextmakecontextmmapmprotectmunmapswapcontextruby_Init_Continuation_bodyruby_Init_Fiber_as_Coroutineonigenc_unicode_is_code_ctypeonigenc_unicode_ctype_code_rangeonigenc_utf16_32_get_ctype_code_rangeonigenc_unicode_property_name_to_ctypeonigenc_unicode_mbc_case_foldonigenc_unicode_apply_all_case_foldonigenc_unicode_get_case_fold_codes_by_strstrlcat__strcpy_chklibpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6__environ__cxa_atexitld-linux-x86-64.so.2_edata__bss_startlibruby.so.2.2XCRYPT_2.0GLIBC_2.2.5GLIBC_2.3.3GLIBC_2.3.2GLIBC_2.3GLIBC_2.8GLIBC_2.14GLIBC_2.4GLIBC_2.9GLIBC_2.17GLIBC_2.3.4GLIBC_2.6	



	�n `�]�n�n ui	o�n ui	oqn@si	ori	oui	o�n ui	o	�nii
+oii
5o���
?oii

Joii
	To���^oti	ioii
uoui	op�F�x�F���F��F��F����F0 ��F�	��F��F�`�F��h�F�x�FP���Fp�ȁF��؁F�� �F��(�F��8�F����F���F���FЂF`
؂F<~"�F
p�F���Fp��F��`�Fvh�F��p�FP�x�F0���FȃF��؃F� �F4(�F0$0�F/8�F�#@�F�H�FpP�F�X�F0`�F'�h�Fp�F0�x�F���F3��F�#��F<���F ��FN��F@#��FV��F�"��F�ȄF�"ЄF�-؄F�"�F.�F`"�Fx0�F`
`�F h�F��p�FP�x�Fp���F@b	��F�v	��F�/ȅF��	ЅF��	؅F��	 �FnC(�F@�
0�Fp�
8�F��
��FwC��F�
��F@�
��F��
�F����F���F��(�F��@�F��X�F��p�F����F����F�k��F
MЇFa�F:��Fo_�Fo�0�FΙH�F:a`�F�`x�F|���F+���Fa��F��؈F`��F�k�F�m �F��8�F�P�F6Ih�F͘��F���FÙ��F�ȉF���FoV��FU��F��(�FCV@�F	lX�FZp�F���F���F����F��ЊFǔ�FO��F�p�F=_0�FDpH�F��`�F��x�F����F����F��ȋF�
ЋF�$
؋F��F�
�F�$
�F����F0$
 �F��(�F�
0�F 
8�F0���Fė��F%���Fӗ��Fޗ��F���F����F���F���F#�ȌF2�ЌFA�،FM��FX��Fg��Ft���F���F���F���F���F�� �FŘ(�Fј0�Fߘ8�F�@�F��H�F�P�F�X�F�`�F-�h�F>�p�FP�x�F_���Fm���F{���F����F����F����F����F����Fƙ��FҙȍFޙЍF�؍F���F��F��F*���F:��FH��FT��Fd��Ft� �F��(�F��0�F��8�F��@�F��H�F��P�F��X�F��`�FŚh�F̚p�F֚x�F���F���F����F���F
���F���F���F(���F-���F3�ȎF8�ЎF>�؎FC��FH��FM��FR���FW��F\��Fa��Ff��Fl� �Fq�(�Fw�0�F|�8�F��@�F��H�F��P�F��X�F��`�F��h�F��p�F��x�F����F����Fś��Fɛ��Fћ��F՛��Fڛ��F���F���F��ȏF�ЏF�؏F��F+��F9��FF���FS��F`��Fl��Ft��F� �F��(�F��0�F��8�F��@�F��H�F��P�F��X�F��`�F��h�F��p�F��x�F����F����F����FÜ��Fǜ��F˜��Fל��Fۜ��Fߜ��F�ȐF�АF�ؐF��F��F���F����F���F��F��F��F� �F�(�F)�0�F3�8�F<�@�F@�H�F �P�F-�X�FI�`�FW�h�F7�p�F[�x�F_���Fl���Fq���F|���F����F����F����F����F����F��ȑF��БF��ؑF˝�F՝�Fߝ�F���F��F��F�R�F���F�� �F�(�F
�0�F�8�F�@�F�H�F��P�F"�X�F&�`�F0�h�F>�p�F:�x�FI���FM���FW���Fd���Fd��Fg���F_���Fu���F~���F��ȒF��ВF��ؒF���F���F���F����F���F���F���F���F�� �F��(�FĞ0�FȞ8�F̞@�FОH�FԞP�FٞX�Fݞ`�F�h�F�p�F��x�F���F	���F���F���F���F&���F/���F5���Fo���F�ȓF;�ГFC�ؓFL��FT��F[��Fg���Fs��Fo��F���F���F�� �F��(�F��0�F��8�F�@�F��H�F��P�FşX�Fɟ`�F͟h�F؟p�F5�x�F���F���F���F����F���F���F���F����F���F�ȔF�ДF!�ؔF'��F2��F;��FC���F#��F��F	��FN��FV� �FT�(�Fk�0�F{�8�F��@�F�H�F^�P�Fj�X�Fq�`�Fz�h�F��p�F��x�F����F����F����F����Fà��FǠ��Fˠ��FϠ��FӠ��F�ȕF�ЕFߠؕF�}�F��F��F���F��F��F"��Fو�F*� �F/�(�F9�0�Fy�8�F=�@�F3�H�FK�P�FU�X�F`�`�Fk�h�Fv�p�F|�x�F����F����F����F����F����F����F����Fš��Fѡ��F�ȖF�ЖF��ؖF��F��F
��F����F��F"��F-��F���F4� �F>�(�FI�0�FT�8�Fa�@�Fk�H�Fr�P�Fy�X�F��`�F��h�Fe�p�F���F���F����F��F���F�-�F�-��FP*@�F`�H�F��P�F��X�Fp�`�F��h�F��p�F�6x�F����F����F����F����F����F�6��F�\��F����F��ȘF���F0�F@�F��Fl� �F@�F�P�F8`�F��p�Fp��F���F���F8��F���F�ЙF�F`�F��F��F �F@0�F�@�F�P�F�`�F p�FH��F���F���Fe
��F���F�КF��F��F��F��F �F0�F�@�F�P�F�`�F$�p�FQ���F���F���F��F��FЛF�F�F��F#�F( �F�10�F-@�F2P�F7`�F>p�FC��F���F���FI��FM�F���F���F���F@��Fp��F���F���F� �F0�(�F`�@�F H�FpX�F��F�8��FP���F���F�E�F@P�F�K`�F�
h�FPp�FpPx�F�P��F��ȞF@��F���FQK�FQK��F��Fz��FTK�FTK�F�
 �F�
(�F�
0�F�
8�FD�@�FD�H�F��P�F��X�FcK`�Fz�h�F*p�FcKx�Fz���F����F���Fz���FcK��F���F����FcK��Fz���Fz�ȟF��ПF��؟Fz��F���F���Fz���Fz��Fz��FWK�Fz��FQK �Fz�(�F[K0�F�_8�FcK@�F�_H�F�_P�F�_X�F��`�Fz�h�F+_p�F+_x�F+_��F]���F����F7��F_K��F�_��F�_��F�_��F�_��F�_ȠF�_РF�ؠF�_�F�_�F�_�F�_��F�_�F�_�F�_�FbK�FbK �F�_(�F�_0�F�_8�F�_@�F�_H�FcKP�F�_X�F�`�F��h�F��p�F�x�F���F���F���F����F����FaJ��F�-��FeK��FnK��FyKȡF�KСF�KءF�K�F�K�F�K�F�K��F�K�F�K�F�K�FL�F	L �FL(�F$L0�F,L8�F6L@�FDLH�FMLP�FVLX�F_L`�FhLh�FtLp�F�Lx�F�L��F�L��F����FL���F�L��F�L��F�L��F�L��F�L��F�LȢF�ТF�LآF�L�F��F�L�F�o��F�L�F�L�FM�FM�F$M �F*M(�F0M0�F5M8�F>M@�FKMH�FZMP�FiMX�FnM`�F�Mh�F�Mp�F�Mx�F�M��F�M��F�M��F�M��F�M��F�M��F�M��F�M��F�M��F�MȣF�MУF�MأFN�FN�FN�F"N��F.N�F7N�F?N�FPN�FaN �FuN(�F|N0�F�N8�F�N@�F�NH�F�NP�F�NX�F�N`�F6nh�F��p�F�x�F`���F��ȤFQKФFQKؤF��Fz��FTK�FTK��F�
�F�
�F�
�F�
�FD� �FD�(�F��0�F��8�FcK@�Fz�H�F*P�FcKX�Fz�`�F��h�F�p�Fz�x�FcK��F���F����FcK��Fz���Fz���F����F����Fz���F��ȥF��ХFz�إFz��Fz��FWK�Fz���FQK�Fz��F[K�F�_�FcK �F�_(�F�_0�F�_8�F��@�Fz�H�F+_P�F+_X�F+_`�F]�h�F��p�F7x�F_K��F�_��F�_��F�_��F�_��F�_��F�_��F���F�_��F�_ȦF�_ЦF�_ئF�_�F�_�F�_�FbK��FbK�F�_�F�_�F�_�F�_ �F�_(�FcK0�F�_8�F�@�F��H�F��P�F�X�F�`�F�h�F�p�F��x�F����FaJ��F�-��FeK��FnK��FyK��F�K��F�K��F�K��F�KȧF�KЧF�KاF�K�F�K�F�K�FL��F	L�FL�F$L�F,L�F6L �FDL(�FML0�FVL8�F_L@�FhLH�FtLP�F�LX�F�L`�F�Lh�F��p�FL�x�F�L��F�L��F�L��F�L��F�L��F�L��F���F�L��F�L��F�ȨF�LШF�oبF�L�F�L�FM�FM��F$M�F*M�F0M�F5M�F>M �FKM(�FZM0�FiM8�FnM@�F�MH�F�MP�F�MX�F�M`�F�Mh�F�Mp�F�Mx�F�M��F�M��F�M��F�M��F�M��F�M��F�M��F�M��FN��FNȩFNЩF"NةF.N�F7N�F?N�FPN��FaN�FuN�F|N�F�N�F�N �F�N(�F�N0�F�N8�F�N@�F`�H�F�P�F��X�F@�`�F�h�F��p�F�x�F���F����F8���F���F����F����FP���F ���F���F��ȪFh�ЪF8�تF���Fȗ�F��Fx��F�w�F�v�F(v�F�u�F0u �F�t(�F�t0�F�t8�FHt@�FtH�F�sP�F�sX�F�s`�FXsh�Fsp�F�rx�F�q��F�m��F�l��Fl��F�k��F`o��Fn��F�o��F0k��F�iȫF`�ЫF�ثF���F`��F���F����F@��F`��F���Fx��Fp� �F@�(�F�0�F �8�FP�@�F��H�F��P�F�X�F�`�FH�h�Fpp�F�~x�F�}��F�|��F�{��F�z��Fpz��F�y��F�y��F�x��F�x��FPxȬF��ЬF��جFH��F��FБ�F����Fx��F�p�F0��F�FP`�F6lx�F����F�pȭF�حF�� �FI�(�F��0�F��8�Fp���F)���F0���F`��F˅�F���Fж@�F��H�F ���F����F���F���F���F��`�F�h�Fep�F dx�F@_��F��ȰF`dаFPcذF_ �F�!(�F@�!0�F�!8�F��!@�F �!H�F �!P�F@x!X�F`e!`�F�`!h�F `!p�F�L!x�FPL!��F�8!��F�$!��F�$!��F�$!��F�!��F� ��F��!��F`� ��F�� ȱF`� бFP� رF�� �F�� �F � �F@� ��F � �F�� �F@� �F� �F`�  �F � (�F � 0�F�� 8�F �!@�F@� H�F�� P�F�`!X�F@� `�F�� h�F@� p�F� x�F�� ��F�} ��F`{ ��F�t ��F t ��F s ��Fq ��F�k ��F`k ��FPk ȲF@k вFk زF�f �F@�!�F@x!�F�L!��F�b �F X �F�E �F3 �F    �F`
 (�F
 0�F �8�F��@�F`�H�F��P�F�X�F@�`�F��h�F �p�F�x�F����F����F@���F���F����F���F����F����F����F�ȳF`�гF�سF`��F���F@��F����F`��F��F���F ��F� �F��(�F`�0�F�8�F��@�F��H�F��P�Fh�X�FP�`�F �h�F�p�F��x�F@���F ���F����Fp���F`���FP���F@���F`���F0���F �ȴF�дF�شF���F���F`��F0���F��F��F���F���F�� �Fp�(�F@�0�F �8�F�@�F�H�FІP�F��X�FP�`�F0�h�F�p�F��x�F���FЅ��F����F����F����Fp���FP���F0���F���F�ȵF�еF��صF���FP��F0��F���F��F��FЃ�F���F�� �Fp�(�FX�0�F@�8�F �@�F�H�F��P�F�X�F��`�F��h�F��p�F`�x�FP���F0���F���F���FЁ��F����F����F`���F8���F��ȶF��жF`�ضF@��F(��F��F���F��F��F��F��Fp �F`(�FP0�F08�F@�F�~H�F�~P�F�~X�F `!`�F�~h�Fp~p�F�}x�F`}��F�|��F z��F�u��F�u��FPL!��Fp��F�o��Fk��F jȷF`iзF iطF�h�F�g�F�g�F�g��Fpg�Fg�F�f�F@f�F@e �Fe(�F�d0�F�d8�F�b@�FpbH�F@bP�F@aX�F�N`�F`Eh�F�;p�F�1x�F&��F`��F���F���F`���F����F@���F����F����F��ȸF@�иF�ظF�o�F�$!�F�o�F�o��F�o�F�o�Fxo�Fho�FXo �FHo(�F8o0�F(o8�Fo@�FoH�F�nP�F�nX�F�n`�F�nh�F�np�F�nx�F�n��F�n��Fxn��Fhn��FXn��FHn��F8n��F(n��Fn��FnȹF�mйF�mعF�m�F�m�F�m�F�m��F�m�F�m�Fxm�Fhm�FXm �FHm(�F8m0�F(m8�Fm@�FmH�F�lP�F�lX�F�l`�F�lh�F�lp�F�lx�F�l��F�l��Fxl��Fhl��FXl��FHl��F8l��F(l��Fl��F��ȺFlкF�kغF�k�F�k�F�k�F�k��F�k�F�k�F�k�Fxk�Fhk �FXk(�FHk0�F8k8�F(k@�FkH�FkP�F�jX�F�j`�F�jh�F�jp�F�jx�F�j��F�j��F�j��Fxj��F����Fhj��FXj��FHj��F8j��F(jȻFjлFjػF�i�F�i�F�i�F�i��F�i�F�i�F�i�F�i�Fxi �Fhi(�FXi0�FHi8�F8i@�F(iH�FiP�FiX�F�h`�F�hh�F�hp�F�hx�F�h��F�h��F�h��F�h��F���Fxh��Fhh��FXh��FHh��F8hȼF(hмFhؼFh�F�g�F�g�F�g��F�g�F�g�F�g�F�g�F�g �Fxg(�Fhg0�FXg8�FHg@�F8gH�F(gP�FgX�Fg`�F�fh�F�fp�F�fx�F�f��F�f��F�f��F�f��F�f��Fxf��Fhf��FXf��FHf��F8fȽF(fнFfؽFf�F�e�F�e�F�e��F�e�F�e�F�e�F�e�F�e �Fxe(�Fhe0�FXe8�FHe@�F8eH�F@�P�F�X�F(e`�Feh�Fep�F�dx�F�d��F�d��Fp��F�d��F�d��F�d��FP���F�d��F�d��FX�ȾF�оFxdؾFhd�FXd�FHd�F8d��F(d�Fd�Fd�F�c�F�c �F�c(�F�c0�F�c8�F�c@�F�cH�F�cP�FxcX�Fhc`�FXch�FHcp�F8cx�F(c��Fc��Fc��F�b��F�b��F�b��F�b��F�b��F�b��F�bȿF�bпFxbؿFhb�FXb�FHb�F8b��F(b�Fb�Fb�F�a�F�a �F�a(�F�a0�F�a8�F�a@�F�aH�F�aP�FxaX�Fha`�FXah�FHap�F8ax�F(a��Fa��Fa��F�`��F�`��F�`��F�`��F�`��F�`��F`_�F���F�3��F w"�F�v"��F����F�3��F w"��F�v" �F��(�F�38�F w"H�F�v"p�F��x�F����F����F@���F�k	��F�=��Fp_�F��(�FR3��F����F5 �F��(�Fs�8�Fp�@�F��H�F��P�F�X�F@�h�F ���F���Fp��F�F`�F�-h�F�G��F��F��F���F~��F��F>�F>�F� �F�8�F���F�@�F7��F7H�F���F�P�F���F�X�F���F�`�Fa��Fah�F+��F+p�F��Fx�F
��F
��F^�F^��F�F��F�F��F`�F%p�F?x�F���F���F���FK��F���Fs��F���FU��F��F��F��Fp�F� �F�(�F��F�0�F�8�F�@�F�H�FP�F�X�F�`�Fmh�F�p�F�x�F���F���F���F
��F��F���F��Ft��F���F��F|��F��F`��F���Fp��Fu��F�F��F��Ff�F� �F�(�F90�F�8�Fl@�F,H�F�P�FX�Fi`�F�h�F�p�FOx�F(��F`��F ��F(��F���F���F��FW��F���F���F|��FB��F��F���F���F!��F}�F�F��F��F� �F2(�F�0�F8�Ff@�F�H�F�P�F�X�F<`�F�h�F|p�F�x�F��F��Fd��Fp��F��F���FV��F���F���F���F:��F8��Fd��F��F��F���F��F��F,�F-�F� �F�(�F-0�FF8�F�@�FH�FDP�F�X�F�`�F�h�FXp�F�x�F���F_��F���F��Fr��F���F���F=��F���F���F_��F_��F���F`��Fh��F-��F6�Fn�F��Fw�F0 �F�(�F�0�Fo8�F�@�F�H�FeP�FX�F}`�Fh�F�p�F�x�F��F���F3��F���F���FC��F.��F��F(��F���F��F���FA��F���F���F���F��F �F��Fh�F� �F�(�F�0�F�8�F#@�F�H�FYP�F�X�F0`�FDh�F�p�Fx�F��F<��F���F���F���F���F���F���F^��F.��F��F���F���F���F���Fr��F��F��F1�Fu�F%�F� �F�(�F#0�F�8�F�@�F}H�F�P�F �FX�F�`�F]h�F*p�F�x�F���FY��F���FN��F���F���FH��F'��F���FF��F���F��F���F���F���F0��F3�FE�F'�F��F� �F�(�Fh0�F�8�F�@�F�H�F�P�F*X�Fe`�Fh�F�p�F�x�Fs��F���F,��F���F���F���F���F���F-��F���F���F���FW��F���F���F���Fz�F�FN�F��F� �F�(�F�0�F�8�F�@�FhH�FP�F�X�F`�FSh�F=p�F�x�F���F���F���Fr��F
��F���FL��F��F���F��F���F��F��F�F� �F�(�F�0�F�8�Fq@�F�H�FqP�FX�F$`�F�h�Ftp�Fix�F���F��F��F���F���F��F���F,��F���F���F)��F���F<��F���FX��F=��F~�Fb�F��FV�F� �F�(�F�0�F�8�F8@�FUH�F�P�FX�F`�F�h�F�p�Fx�F��F���F��F���F5��FW��F���F���Fp��F8��Fo��F���F���F��FE��F���F �F��F��F�F	 �F�(�F
0�F�8�F�@�FH�F�P�F�X�FH`�Foh�FGp�Fx�F��F���F���F���F���F
��F���F��F���F���FV��F��F��F���Fv��F��F�F��F�F�F �F�(�F+0�F8�F�@�F�H�F�P�F�X�F`�F�h�F&p�F�x�F���F��FF��F���F��F
��F��F��Ft��F���Fr��F���FJ��F|��FJ��F��F��F�F�F��FS �F(�F�0�F�8�F�@�FH�F}P�F�X�Fd`�F-h�F~p�F
x�F���F���F��F���F���F���F���F���F���F<��F��F���F ��F���F��F��F��F�F��F!�F4 �F�(�F�0�F�8�F"@�F�H�F#P�FX�F
`�F$h�FHp�F�x�F��FW��Fl��F%��F��Fj��F&��FX��F���F'��F���F���Fq��Fi��Fp��F���F��F`�F)�FW�F� �F (�FT0�F�8�F�@�F�H�F@P�F�X�F~`�F#h�Fp�F�x�F{��F���FW��F^��F���F���F���Fw��FX��F���F|��FR��F���F*��F+��F,��F�F-�FN�F��F. �F�(�F�0�F)8�FC@�F�H�F�P�FKX�F�`�F/h�F�p�FUx�F��F^��F:��F���F0��F1��F���F9��F}��F)��F���F���F���F��F���F2��F��FT�Fi�F��F3 �F�(�F40�FY8�F�@�F
H�F5P�FQX�Fr`�FVh�Fmp�F�x�F���F;��F���F���F��F���F6��F���F���F���F7��F2��F���F���FO��F���F8�F9�FP�F��F< �F�(�F|0�F$8�F�@�FaH�F�P�FSX�F:`�Fwh�Fp�FRx�F���F��F���F���Fc��F���F��F;��F;��F<��F&��Fx��F
��Fk��F���F=��F��F>�F7�F�F� �F�(�F�0�F�8�F?@�F�H�F�P�F�X�F@`�Fh�Fp�FAx�F���F%��FB��F���F:��FC��FD��FR��FE��F���F���F<��Fd��F���F{��F���Fq�F��FF�F��F5 �F(�F�0�F�8�FG@�FSH�F�P�F�X�F�`�F�h�Fp�F�x�F+��F���F~��F���F,��F���FH��Fz��F���F���FI��F>��FJ��F���Fl��FK��F��F�F-�FL�F? �Fv(�F�0�F�8�F�@�F2H�F�P�FX�FM`�F�h�Ftp�FNx�F���F���F���F���FO��FP��F���F���F���F���F2��FQ��F���F��FR��FS��F\�FT�FU�F��F� �FB(�FV0�FW8�F�@�F�H�FgP�FIX�F�`�F�h�FHp�F�x�F���F���Fw��F���F_��F=��F��Fu��F��F��FX��F��FI��Fh��F���FY��FZ�F[�FL�F/�F �F�(�F�0�F\8�F]@�FBH�FtP�F�X�F^`�F�h�Fp�F�x�Ff��Fk��F=��F_��F���F}��F���F/��Fg��Fl��F`��F!��F���Fa��F���F���FA�Fb�F��F4�F� �Ft(�F�0�F8�F�@�FH�F�P�F�X�Fc`�F�h�Fdp�Fx�F���Fe��FG��Ff��F_��Fg��F���Fh��F���F$��F���Fi��Fj��F���F���Fk��Fl�F��F��F��FO �F6(�F�0�F�8�Fn@�F�H�F�P�FmX�F>`�Fh�F�p�Fnx�Fo��F���F*��F��Fw��F!��Fp��F���F���Fq��Fr��F5��Ft��F���F���F���Fy�F��F0�F@�Fu �F�(�F	0�F~8�F�@�FvH�F�P�F�X�F`�F�h�F�p�F�x�Fw��F9��Fx��Fy��F���F��Fm��Fz��F{��F	��F���F���F|��FA��F���FQ��F��F��F��F"�F~ �F�(�Fx0�F�8�F�@�FdH�FP�F�X�F�`�Fbh�F�p�F�x�F���F���F���F���F���F���Fv��F���F���F3��F9��F���F"��F���F���Fb��FL�FZ�F��FP�FT �F�(�F�0�FP8�F�@�F�H�F�P�F=X�Fe`�F�h�F�p�F1x�F���F��F���Fw��F���FC��F.��F���F��F)��FD��F���F��F���F��F���Fc�F��F��Fx�F� �F�(�F�0�F"8�F6@�FPH�F�P�FtX�F�`�FEh�F�p�F�x�F���F���Fn��F���F��F0��FM��F���F���FV��F���F���F\��F���F���FT��F�F��F�F��F� �F�(�Fk0�F�8�F�@�F+H�F&P�F�X�F�`�F8h�F�p�FYx�F���F���FF��F���Fx��F}��F���F���FJ��F���F���F��F���F	��F���F5��F��F5�F{�F��F� �F�(�F�0�F�8�F0@�F�H�F6P�FX�F"`�F`h�F�p�F�x�F9��Fb��F��F���F��FZ��F��F���F���F��F���F���F���F���F<��F��F��F��F��F@�F� �F�(�F�0�F�8�FA@�F�H�F�P�FUX�FQ`�F�h�F�p�F�x�F���FC��F���F���F��FD��F���F��FM��Fy��F���F���F���F��F���F���FZ�F��F
�F��F� �F[(�F.0�Fx8�F�@�F;H�F�P�F+X�F[`�Feh�F�p�F,x�F���F��F��F���F���Fy��F��FK��F���Fz��FH��F���F���FJ��F���F���F��Fa�F)�F��Fo �Fs(�F�0�F�8�FH@�F�H�F*P�F:X�F?`�F�h�F�p�F�x�F���F���F���F���Fs��F{��F���F���F���F���F���F���Fb��F���F���F���F��F��FX�F��F� �F�(�F(0�F	8�F�@�F�H�F�P�F�X�F]`�Fh�Fap�F�x�F���F���Fc��F?��F��F��F���FO��F���F���F���F���F���FO��F���F���F��Fv�F��F�F �F�(�F�0�F$8�F�@�F�H�F�P�F@X�Fc`�F�h�F�p�F?x�F���F���F���F`��F���F���F[��F���F���F���FE��F���F��F���F���F&��F��F��F��F��FM �F�(�F-0�F�8�FY@�F�H�F�P�FaX�F�`�FNh�F�p�F�x�F��F���F���F\��F���F���F���F���F���F���F��F
��F���F���F��F���F��F��F��F��FI �F�(�F�0�FA8�F�@�F�H�F8P�F!X�Fl`�F�h�F�p�Fx�F_��FT��F��Fs��F���F���Fv��F ��Fp��Fj��F\��F��Fa��F���Fp��F>��F��F��F��FB�F� �F"(�F�0�F�8�FB@�FH�F�P�F�X�F�`�F�h�F�p�F�x�F���F���F���F���F���F���F���F>��F���F���F���F#��F���F���Fl��F5��F��F��F��F��F� �F�(�Fk0�F�8�F�@�FH�FP�FhX�F�`�F�h�F�p�F�x�F���F���F��Fq��F��F���F���F���F���F��F(��F���F���F���F���F���F*�Fe�F]�F�F� �F�(�F�0�F�8�FB@�F�H�F�P�FX�F�`�F�h�F�p�F2x�F���F���F���F���F���F���F���F%��F:��F���F+��F���Fz��F���F���F	��F��F��F��F��F� �F�(�F�0�F�8�F�@�F�H�F�P�F|X�F�`�F�h�F�p�Fx�F���F���F���F���F���Fc��F���F\��F���F���F���FD��F���F���Fu��F���F��F��F��F��F �FG(�F�0�F
8�F @�F�H�F(P�F�X�F�`�F�h�F]p�F�x�F]��F���F���F���F���F���F���F���FJ��F���F���F3��FV��F���F��FU��F��Fk�F��F�F@ �F�(�F�0�FW8�F0@�F�H�FyP�F�X�F�`�F h�F�p�FNx�F;��F���FU��Fz��F���FR��F���F���FQ��F���F���F���F���Ff��F���F���F��F��F��FF�F� �F�(�F�0�F�8�F�@�F�H�F�P�F�X�FK`�F�h�F�p�Fx�F>��F���F���F��F$��F!��FO��F���F��F��F���Fd��F3��F��F}��F���FY�F"�F%�Fm�F6 �F�(�F?0�F[8�F@�FH�F�P�FX�F`�F�h�F�p�F1x�F��F���F���F4��FZ��F��F��F���F��F�F�F��F��F��F�Fx��F��F	�F��F��F �F`(�F
0�Fi8�FY@�FH�F
P�F�X�F�`�FLh�Fp�Fgx�Fk��F���F4��F���F���F���FQ��F
��F4��F�F�F��F�Fu�FC�F���F�F��Fj��H��H��PDH��t��H����5�TD�%�TD��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��������hb�������hc�������hd�������he�������hf�������hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!������hm��������hn��������ho������hp�������hq��������hr�������hs�������ht�������hu�������hv�������hw��q������hx��a������hy��Q������hz��A������h{��1������h|��!������h}��������h~��������h������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h��������h�������h�������h������h������h������h������h������h��q����h��a����h	��Q����h
��A����h��1����h��!����h
������h������h�������h�������h�������h������h������h������h������h������h��q����h��a����h��Q����h��A����h��1����h��!����h������h������h�������h �������h!�������h"������h#������h$������h%������h&������h'��q����h(��a����h)��Q����h*��A����h+��1����h,��!����h-������h.������h/�������h0�������h1�������h2������h3������h4������h5������h6������h7��q����h8��a����h9��Q����h:��A����h;��1����h<��!����h=������h>������h?�������h@�������hA�������hB������hC������hD������hE������hF������hG��q����hH��a����hI��Q����hJ��A����hK��1����hL��!����hM������hN������hO�������hP�������hQ�������hR������hS������hT������hU������hV������hW��q����hX��a����hY��Q����hZ��A����h[��1����h\��!����h]������h^������h_�������h`�������ha�������hb������hc������hd������he������hf������hg��q����hh��a����hi��Q����hj��A����hk��1����hl��!����hm������hn������ho�������hp�������hq�������hr������hs������ht������hu������hv������hw��q����hx��a����hy��Q����hz��A����h{��1����h|��!����h}������h~������h�������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h���������h��������h��������h�������h�������h�������h�������h�������h��q�����h��a�����h	��Q�����h
��A�����h��1�����h��!�����h
�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h��q�����h��a�����h��Q�����h��A�����h��1�����h��!�����h�������h�������h��������h ��������h!��������h"�������h#�������h$�������h%�������h&�������h'��q�����h(��a�����h)��Q�����h*��A�����h+��1�����h,��!�����h-�������h.�������h/��������h0��������h1��������h2�������h3�������h4�������h5�������h6�������h7��q�����h8��a�����h9��Q�����h:��A�����h;��1�����h<��!�����h=�������h>�������h?��������h@��������hA��������hB�������hC�������hD�������hE�������hF�������hG��q�����hH��a�����hI��Q�����hJ��A�����hK��1�����hL��!�����hM�������hN�������hO��������hP��������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q�����hX��a�����hY��Q�����hZ��A�����h[��1�����h\��!�����h]�������h^�������h_��������h`��������ha��������hb�������hc�������hd�������he�������hf�������hg��q�����hh��a�����hi��Q�����hj��A�����hk��1�����hl��!�����hm�������hn�������ho��������hp��������hq��������hr�������hs�������ht�������hu�������hv�������hw��q�����hx��a�����hy��Q�����hz��A�����h{��1�����h|��!�����h}�������h~�������h��������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h��������h��������h�������h�������h�������h�������h�������h��q�����h��a�����h	��Q�����h
��A�����h��1�����h��!�����h
�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h��q�����h��a�����h��Q�����h��A�����h��1�����h��!�����h�������h�������h��������h ��������h!��������h"�������h#�������h$�������h%�������h&�������h'��q�����h(��a�����h)��Q�����h*��A�����h+��1�����h,��!�����h-�������h.�������h/��������h0��������h1��������h2�������h3�������h4�������h5�������h6�������h7��q�����h8��a�����h9��Q�����h:��A�����h;��1�����h<��!�����h=�������h>�������h?��������h@��������hA��������hB�������hC�������hD�������hE�������hF�������hG��q�����hH��a�����hI��Q�����hJ��A�����hK��1�����hL��!�����hM�������hN�������hO��������hP��������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q�����hX��a�����hY��Q�����hZ��A�����h[��1�����h\��!�����h]�������h^�������h_��������h`��������ha��������hb�������hc�������hd�������he�������hf�������hg��q�����hh��a�����hi��Q�����hj��A�����hk��1�����hl��!�����hm�������hn�������ho��������hp��������hq��������hr�������hs�������ht�������hu�������hv�������hw��q�����hx��a�����hy��Q�����hz��A�����h{��1�����h|��!�����h}�������h~�������h��������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h�������h��ѿ�����h�������h�鱿�����h�顿�����h�鑿�����h�避�����h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��Ѿ�����h�������h�鱾�����h�顾�����h�鑾�����h�遾�����h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��ѽ�����h"�������h#�鱽�����h$�顽�����h%�鑽�����h&�遽�����h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��Ѽ�����h2�������h3�鱼�����h4�顼�����h5�鑼�����h6�遼�����h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��ѻ�����hB�������hC�鱻�����hD�须�����hE�鑻�����hF�遻�����hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��Ѻ�����hR�������hS�鱺�����hT�顺�����hU�鑺�����hV�遺�����hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��ѹ�����hb�������hc�鱹�����hd�项�����he�鑹�����hf�遹�����hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!������hm��������hn��������ho������hp�������hq��Ѹ�����hr�������hs�鱸�����ht�顸�����hu�鑸�����hv�選�����hw��q������hx��a������hy��Q������hz��A������h{��1������h|��!������h}��������h~��������h������h��������h���ѷ�����h��������h��鱷�����h��顷�����h��鑷�����h��遷�����h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���Ѷ�����h��������h��鱶�����h��顶�����h��鑶�����h��遶�����h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���ѵ�����h��������h��鱵�����h��页�����h��鑵�����h��遵�����h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���Ѵ�����h��������h��鱴�����h��顴�����h��鑴�����h��遴�����h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���ѳ�����h��������h��鱳�����h��顳�����h��鑳�����h��遳�����h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���Ѳ�����h��������h��鱲�����h��顲�����h��鑲�����h��遲�����h���q������h���a������h���Q������h���A������h���1������h���!������h���������h����������%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%}DD���%uDD���%mDD���%eDD���%]DD���%UDD���%MDD���%EDD���%=DD���%5DD���%-DD���%%DD���%DD���%DD���%
DD���%DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%}DD���%uDD���%mDD���%eDD���%]DD���%UDD���%MDD���%EDD���%=DD���%5DD���%-DD���%%DD���%DD���%DD���%
DD���%DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%}DD���%uDD���%mDD���%eDD���%]DD���%UDD���%MDD���%EDD���%=DD���%5DD���%-DD���%%DD���%DD���%DD���%
DD���%DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%}DD���%uDD���%mDD���%eDD���%]DD���%UDD���%MDD���%EDD���%=DD���%5DD���%-DD���%%DD���%DD���%DD���%
DD���%DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%}DD���%uDD���%mDD���%eDD���%]DD���%UDD���%MDD���%EDD���%=DD���%5DD���%-DD���%%DD���%DD���%DD���%
DD���%DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%}DD���%uDD���%mDD���%eDD���%]DD���%UDD���%MDD���%EDD���%=DD���%5DD���%-DD���%%DD���%DD���%DD���%
DD���%DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%�DD���%}DD���%uDD���%mDD���%eDD���%]DD���%UDD���%MDD���%EDD���%=DD���%5DD���%-DD���%%DD���%DD���%DD���%
DD���%DD���%��CD���%��CD���%�CD���%�CD���%�CD���%�CD���%�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%�CD���%�CD���%�CD���%�CD���%�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%�CD���%�CD���%�CD���%�CD���%�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%�CD���%�CD���%�CD���%�CD���%�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%�CD���%�CD���%�CD���%�CD���%�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%�CD���%�CD���%�CD���%�CD���%�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%�CD���%�CD���%�CD���%�CD���%�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%�CD���%�CD���%�CD���%�CD���%�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%�CD���%�CD���%�CD���%�CD���%�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%�CD���%�CD���%�CD���%�CD���%�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%�CD���%�CD���%�CD���%�CD���%�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%}�CD���%u�CD���%m�CD���%e�CD���%]�CD���%U�CD���%M�CD���%E�CD���%=�CD���%5�CD���%-�CD���%%�CD���%�CD���%�CD���%
�CD���%�CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD���%��CD�{����v����q���H�%H�%H�% H�%H�%H��H�<$H��H��H�t$H��H�D$1�H�T$ �H�D$
�H�D$8	H��H��H��H�D$(H���H�D$0�[����ֶ��H�%(�%H�%f�H�=��CH���CH9�tH�^�CH��t	�����H�=��CH�5��CH)�H��H��H��?H�H�tH�e�CH��t��fD�����=e�Cu+UH�=��CH��tH�=�gC�����d����=�C]������w������UH��H��AUATSH��H��dH�%(H�E�1�����g1�E1���H��u�H��H�τ�tH�O<.t�</�H��HD�IDЄ�u�H���	H)�H�BL�bH��H��H��H%�H)�H���H��H9�tH��H��$�H9�u�����%�L�l$I���A�E��I�}A�E�7��C�D%�H������I��H����H�5��H������H��t
H;��C��L��L�����H��H����1���L��H�]�dH3%(uTH�e�[A\A]]��H)�H�L��L���f.�H��H)�H�BL�b���D1�A�������Q���,���I��H��L��H�=�{1�赹��L��L�-���F������H��H��1�H���H��H��H��H�H�H��H��H%�H)�H���H��H9�tH��H��$���H��%�t	H)�H�L�H�|$H�QH�������L��I������X������H�������H��H������f���H�����H��H��闺������@��u'H�����tH��у���tH�к%HE��f���H��� t����H��?H��?���H���H��?H��?���ff.����H���������uH�1�H��f.����' 鲴��f�AVAUATI��UA��H��SH��H��~5M��u
H������#H�{ �H��蒿��H�C H�k[]A\A]A^ÐL�/L��% M��u
H�������L�sH����L��L��H����H9�L��HO�H���"��M��u]H�����tTD�����t)I�� D��L�+����t4I����H��I	�L�+�%�L�+D�����tA�� u�f�H�k[L��]A\A]A^�<��@D������F���H������L�w@L��H�CL�s �?����H��ƒ��������� ����H���H���I�����J��H�K��s.��t�S�H��у���t
H��_��H�H�C L�c���H�sL�@I��H�0��H�|1�H�|0�H��L)��H)���H�΃�r���1ɉσ�L�>M�89�r���@��u	H�����uIH�WH��H��?H�H�H���HL�H��������H)�H9�H��H��?H�
H�H����H��Ѓ���t���� u���t�H�GH��H��?H�H��fD��S1�H��H�|$�{��u9�uDH�H����H9�H�D$}>H��� H�D$t?H��H�<�H���>��H�D$H��� H�D$u�H�@H9�H�D$|�H��[��H�@ �f.�軸��H�����H�|$H��1�L��1�H��[�6�fD��ATUSH�/�� t]H��L�g��H��u
[1�]A\�fDH������uDH��~�1�I�$����t�~fDI�����unH��H9�u��H�oL�g H��t�뱐1�L�c�,�H����H9�}�L��H�<��(��H�����u H��H��� u�H;k�]���H�C ��@[�]A\�fD��AV1�I��H�γAUATUH��S��H��H�D$H�L$���������H�D$H�������H�H��~oI�I�����I�nf��� tS���tRH���tmL�`�H��tC1��"H��H����H9�}IH��H�<�H���A��I��� u�I;^}+I�F ��DI�~�H���[]A\A]A^��L���M���H������_���誶��H�����H���L��L�
H���+�H��[]A\A]A^�H���v���������������H��� tH����H��H�D?�@H�@H�H�y�鈨������f.�H���AWH�GAVAUATUSH��H� ��H��H�4$H�0H��I��H��I����H��H��A��H��1�H�D$�I�GI� uI�G L�4�H��~E��tH�4$H�����L��H�����A��uDI�����t;I��ƒ���t.��t)@��u#H�|$tH�E�ƒ���~>��H�EfDH��I9��s���H��[]A\A]A^A_�@H�G �����þH��r��f���AWAVAUE1�ATUSH��@��u
H������0���FH���1��1���H�5ްL�uH��蹾��I���t@H����H9���L��H�<�贻��I�Ǩu%H�����tH��ƒ���t���DE�@H��~;�H�5r�L���O���L��L��H��萬��H�E�� u�H;]}H�E �L��L��������H�5#�L������E��t/A��u)I�����t I�$�ƒ����H��r��I�$H��L��[]A\A]A^A_�fDH���H��������DE�������H��H�=���[]A\A]A^A_�+��ff.��H��xYtXAT�USH�?H)�H�,?H��L�d$�H��L��*H��H��H��H�T$����H9�u�H��[]A\�ø�fD��SH�H��� t`H����H��H��tH��� t)H����tH�2@��tEH�H��[�I���f�H�z~�H�R H�2@��u��f.�H�_�f.�H���X��H���U�SH��H)�H��H9�HO�H��x7H��H������H��H��H������H�5�CH�L$H��H�D$���H��[]�D��SH��� t[H����H��H� t H��H�>@��t H�H��t%H�t;�[�`���H�v H�>@��u����H��H��u۸[��H�_�f���SH��� tSH����H��H� t H��H�>@��t H��H�[����H�v H�>@��u��.��H��[H������f�H�_�f.���USH��H��� tvH����H��H� tpH��H�>@��tpH�xAH�D?H�D$H�-��CH�@H�xyH�|H�L$H�����H��[]�H���[]�@H�_H� u�H�v H�>@��u��i��H��H��x�H�@H��u���詢���p���@H��蘢��H���|�����AVI��AUL�oATI��US1�H��?H��H����H9�}YL��H�,�@��uH�����tH�E������tDH���� u�I;\$} I�D$ �Ð�� t+�t�H�E�-fD�[H��]A\A]A^��H�}~�H�E H��H�8L���V��H��u�I�$�ff.������TAUH�WATUSH��H�I��A�� uH�W H�NH� uH�N M����H�GI��I��H�n1�H��y���I�UH����H�с� ��H����H9���H9���I�T$H��uI�T$ H�4�H�H����H��H�H��H��H��H9�~{H�:H�1H9�t��[��H��t:I�$H�Ɓ� �k���I�UI�D$H�с� �m���I�UH9��p���1�H��[]A\A]ÐH��������@I�M �x����H���[]A\A]ø�f.���AVAUI��I�UATE1�UH�oH��SH��% tLH����I9�}]H��N�4�H��L����H��t:H��4uH��L���t���H��uI�UI��H��% u�M;e}I�E 뷐�[]A\A]A^�f�1���ff.����H9�tH���uH�����tsH��у���ufH�I��A�� tjH����I��A�� tOH����H9�u8H�WM��uH�W H�FM��tEH9�tH��H��H��H�=P�����f�1��DH�V�f�H�O�f.�H�F �f.���SH��H�D$H��tH��� ����tH��H�H�D$H��� ��������uRH��H�|$H����@��trH�H��~2H�D?H��H�D$���H�L$��*H���	���H��[��H��[�DH�~�{���H�v �j���@H����u������H���fD�ȭ�+����f���AUI��ATUSH��������1�E1�I�m��uUI�E�� �8H����H��H��H�D?[]A\A]�fDH����I9�}4H��J�<��`��H��H��H��I��I�E�� u�M;e}	I�E ��H�@H���H��H�D[]A\A]�DH�L$H�B�1��-�������u|1�1�M�e�3f.�H����H9�}�H�t$L��H�<��c���H��H��H��I�U�� u�I;m�l���H�t$I�E ��f�H��訜��H��[]A\A]�DH�=o�1��*��q���DH�@I�}H�x�������AWI��AVAUATUSH��H��� �H����������L�.�����wM�gI� �VI�GH�D$H�k�H��tGM�4�L��L���H��t_H��4tIH��H��t�I��� tyH��L�d$��H9�HO�H�k�H��u�H���[]A\A]A^A_�f�L��L������H��t�H��������?H���H��H�D-[]A\A]A^A_�f�I9oH��M�g IN_�>���H�Z�������������H�k�H���e���I�M�g�Gf�L��H�<�����H������h���I��� thH��H����H9�HO�H�k�H�������� u�I�G ��M�g ����H�=w�1�M�g�.�I� �{������I�_�f�H��H��[]A\A]A^A_�Z���f.����H�����H��L��E1�[1�]1�A\H��A]A^A_�c���1��g�����AWAVAUATUH��SH�����3����L�6��������L�eA�� u}L�eL�m H�E1�H�D$M��~PM�|�L��L���uH����H��4��H��tL�eA�� ��I��L�l$A��H��I9��H���[]A\A]A^A_ÐI��L�mA���z����H�=�1�����L�eA�� �L������L��L��腺��H���p���@H�@H���H��H�D[]A\A]A^A_ÐL�eL�m �U��������tw1�L�e�/�H����H9��3���L��H�<��l���H�����u�H��H�E�� u�H;]����H�E ���H��H��[]A\A]A^A_�J���f.��ۥ��H�����H��H��E1�[1�]1�A\H��A]A^A_�S���1��W�����AT1�U��SH��H��kH��H��L�D$������A�ą�t��tXH�$�tfH�H�H�с� H��x|H��tgH��H����H9���E��u|����H�D$H��[]A\��1�H�=����H�$�u�H�������HCx�f.�H9C~�H�S �8@H��t�H��H����H��q���E��t�H�<$���H��[]A\ÐH�SH��H��[]A\�H��t:H����H��I��H��H���H�5��IH�H)�H��H��CH�81�����L�CL��H����@AVAUI��ATL�fUH��S1��7f.�H����H9�}TL��L�4غ4H��L�����H��4tH��I�E�� u�I;]}$I�E ��fDL��L��H���ڻ�����[H��]A\A]A^�@��AUATUH��SH��H�?�� ��H��������H�5���1�L�mH������I���;f.�H����H9�}TL��H�<��H���t5H�H��L��H���B���I��H�E�� u�H;]} H�E H�<�����u�H�����H����f�L������H��[H�D]A\A]��H�}�N������H9���@��u	H�����u4UH��SH��1H��H���+�������H��1�[]�f.�H��ƒ���u�H�I��A�� utH�WH���� �yH����H9�ueH�WM��uH�W H�FH��uH�F H9�t.H��H��H��H�=���Q���H��H��H��[]�ߵ�����f�H�������@1��DH�F���ff.�@PXH�5
�H��H��CH�81��b���f���ATUSH�H�xu8H�/L�&H�ӿ1�L��H������L��H��H�����H�H�zu[]A\�����USH��H����H��������H��H9����' ���H��H��H��H��[]�fD�H���K���@��u"H�����tH�U�у���tH��_��H�UH�E H��H�]H�EH��[]�H�—CH�5�H�81��a���H���CH�5��H�81��I���f�SH���w���H�����H��L�E�[1�1�H��������ATI��US�������I�$�� uI�D$H�X�I�l$H��u&�Xf.�H��H����H9�HO�H�X�H��t4�� H��uI�D$ H�<�� ���I�$�� u�I�D$H9�HO�H�X�H��u�L��[]A\�f.�H��H�����w����[L��]A\����@��ATUH��S�����tdI�@1��(fDH����H9�}(H��L�x,H�|芸��H��H�E�� u�H�EH9�|�H��[]A\�@H��耑��H����[H��]A\���ff.����H��� t$������u$H��1�H�=���G����H�����tܾH�=� ���AWAVM��AUI��ATI��UH��SH��H��8H�D$H�$�DH����H9���H��~I��tL��L���ʖ��H�U�� H�EH��uH�E L�<�A��u!I�����tA�����������L�����H��tJH��L���o���A�H��H�EH�� �a���H�EH9��d���H��8[]A\A]A^A_�DH�
C�H�C��L�����H��tOH9�t~H�$L��H�D$H�=�L�l$L�d$ L�t$(����v���fDL����L���N����L�����A����3���H��L��H�D$���A�H�D$����H�%�CH�5��H�81��ē��@��H��H��H�>H�vH�HL�@��u1��+����H���H�ړCH�58�H�81��y���f�SH��觜��H������H��E1�1�1�H��[�,��ff.�������4AUI��ATI��U1�SH�_H���f�H����H9���I�$H�ց� ��H����H����H����H9���H����I�t$H��H�4�H��tH��H��uI�E H�<貓����t~H��I�EH���� �g���I�EH9��j���H���[]A\A]�f.�I�T$H���e�����H��t�H��x�H���z����I�t$ �Y���fDH��1�[]A\A]���f.�AWI��AVI��AUI��ATI��USH��H����H� ��L�g 1�1�1�M�����Hc�H��L9�}rI��L�I���u�H�����t�L��H��L�D$豭��L�D$��u�I���`H��`u�H���`H��`t�L��H���%���L�D$�fDI���t����H��[]A\A]A^A_�f�L�����I�$ u.M�d$ H��K�<�J��L��[]A\A]A^A_����I����f.���ATI��UHc�H��SH��H�������~M��u
H��[]A\ÐI��H��L��H��1�H�D$���H�D$�u/H�����t'H��у���t�� tH����H��H	�H��f�H�hH��[]A\�AVAUI��ATI��US1��WfDH����H9�}]�H��tH��xI�EH��uI�E H�,�H���d����4L��H��I��豸��H��4t+H��I�EH�� u�I�EH9�|�[L��]A\A]A^�H��L��L������������LAVAUATUSH��H��� ��H�H�_�� ��H��H����H9�HO�H����I��I��H�l$E1���H�����H��tI9�}I�UH��uI�U J�<�H���� ��H�����H��tL9�~I�FH��uI�F J��H�5��CH�T$H������H��uaI��I9�tSI�I�UH�с� �e���I�U�c���@H��H�H������ ����H�N�����I�F�l�����4H��[]A\A]A^�fD�4�f���ATUSH��H�H�x�AH�H�I��H�D$��t[�Ń�tT�B�t%�BtGH;\$�������؉��x���H�5��C�BH�,�CH�8��������@��u	H�����uJH�5˷CH�L$�H���ѫ��H�T$H��H���a����I�$H�x��H����[]A\�D�����u�H���CH�8H;{u�H�D$�u�H�����t������u�H;x�w���A�D$�t8A�D$������\���H�t$H���9�����DA�L$����P��H�5��CA�D$������tA�L$�������AVH�
]�H�]�AUATUSH��H���H��貐��I���:��H��M�f1�H�@H���Q�H���@@H����H9���L��L�,�H���	IH�B��L��L��H���$�����t H��I��� u�I;^}VI�F ���A��u�I�����t�L��H��������u�H�E��`H��`u�I�E��`H��`t�L��H��荠���H���H�}H�,$H��H��t
H�E����H��H�D$H�$H��H��[]A\A]A^��H�GH� uH�G H�4�H��t1�@H��H��H9�u�u	H������u�@UH��H��SH��H���L�����u
H�E��`H��`tH��[]�H���`H��`t�H��H��H��[]鷟���H�FH��xH��H�F@��u!H�����tH��ƒ���t��@H�DH�w@��u	H�����u�@UH��SH��H��详����u
H�E��`H��`tH��[]��H���`H��`t�H��H��H��[]������H�H���� H��xkH��tVH����H�¸H��t'H��xH9�}H��u#H� H���f.���f.�H��H����H�W�f.�H��tH��H����H��@H�W��f���SH��@��tH��H�[�F���fDH��註��H��[H���,���ff.����AWAVAUATUSH��8L�'H�|$A�� ��I��A���������H�D$(�D$E1�1�H�D$�M��-�fDH����H�������H�kE1�L9�}fL��H�|$H)�H��H��?H�H�H�H���s���H��I������I�Ǩt�H��������thL������A��A��E��t�I��L9�|�f��D$��H�L$H��� �H�L$H�QH9�����
H�|$H����I��H��8L��[]A\A]A^A_�I���D$A��'���f�H���CL��H�0螺��H����H�5�CH�L$�L��H�D$(�����L��H��蓼�����~�����tV�����������H�D$L�`�������V���襐��H������H�|$E1�1�1�H���)��I���$����A�I���g���f�H�������@A����L�����H�5ƐH��H�$CH�81���f���H��t1�DH��H��H9�u��ff.�AWAVAUATUSH��H����t2H�sH;s��H�CH��H��H��[]A\A]A^A_��H�����t�H��ƒ����&��@��H�ݩu����
�� ��L�{L�cM��M)�'1�����I��H��A���H��� L�}H�CH� uH�C H��H�MH�E L��HE�J�<��f���M���H��H����H�H�E������t��@H�H�kH������H��H���͡����H�EuH���`H��`�r�ƒ�������H�€�H�}H�U������������H���q������@H�sH;s���ƒ��������H
H��r���fDH�{ �����H�C �U����H�H���������H�ƒ��� ������H%�_��1�H�E����H�H�E�ƒ���t��@H�H�k���@H��A�A���I��I)��?���f.�H�k����H�{ ��i���H�C H�����DH�E�������f���H
H�E�W����% H�����H�ƒ�`H��`�~���H��H���Ș��H�E�j���ff.�@AVAUI��ATI��UH��H���' SH��a謅��H��H�E u?H�m L��J�L�I��1�H��I����H�H%���I	�L�#H��[]A\A]A^��H���f.��K���I��H��A��tWH���w���H�U�� �
H�U H�S H�UH�SH��H��I���;���Lk M����L�cH��[]A\A]A^�fDH�����tH��ƒ���t	H%�_��H�H������H�UH�ց� tcH�MH�K H�������H��σ���ty�� ��H����H����H��H��H��I��H����H	�H����Lk �Wf�H�M H�K H���������H��σ���u�����f�H��H�k H�������@H����������H��ƒ�������� ���H%���I��L	�H��Y���@H��u����fDH�U�7���ff.�@U1�H��H�Q�S��H��H�L$�2���H�L$��tXH�H�U�� tDH����H9�|0H��xHH)ʸ��H��HD�H��CH�0�k���H��[]�@H����H�U�f�H���X���H���H�\�CH�5܆H�81����ff.�����uHH��� u H�J�H��tBH�R H��H���DH��H�����t'H��H���fD����fD��������u0H�
��� uH�zt$H�R H��@H�����u��1������ff.�@UH��SH��H��� t/H��H�˃�H���M���H��H��H��[1�H��]�'����H�_��f.����w������1�@��usH��H��tjH�1��у���t[�� uVH��%@tL1�@��uDH��H��t;H�1��у���t,�� u'H��%@t1�H�VH9WuH�VH9W�HD����H�~CH��H�8�*�f.���AWH�
�I��H��AVH���AUATUSH���@���I�/I��� ��M�eH����A�� ��I��A��N�t%L������I�OH��I� uI�O I��H��1�H����I�MI�E uI�M I��L��H��H������u	H�����uL�sH��H��[]A\A]A^A_�fDH��ƒ���t�� t�H%���I��I	�L�3��@M�eI�oA�� �=���M�e�<���f.�AUATI��UH��H��SH��H���5���I��H���Z{��L��I�E ���D{��I�uL�EH�E uL�E H��~1��I�<�I�<�H�<�H��H9�u�A��u	I�����u$I�]L����1�H�}��H��[]A\A]�I�E�ƒ���t�� t�H%���H��H	�I�]�f��z��I�u �b���f���AVAUA�ATI��US��t���L�.A���QI�I�$�� ��I�\$H���$���H��H��~SM���L��H�H��I��M�t$I�$ uM�t$ L)�K��I��1�H��H����I��L��L��H��H����I�$H�� @��uVH�����tMH�M�΃���t?�� t:H����I�D$H����H��H	�H�E�(�H�����8���@H��tH����H�E[H��]A\A]A^�@I�D$��f�1�H�G�1�耇��I�$�� ���롐L��H�K�H��H�H��H)�I�����fDL���ح��I�$I��� ������c���H�����8���@��UH��SH��H��� ��H����H��蘖��H��~<H�UH�E uH�U H�pH� ��H��@H�
H��H��H��u�H�UH�с� �u>H�����t6H�0������t)�� t!H��u]H�UH����H��H	�H��DH��uH�UH�PH��[]�@H�������H�p �g����H�_�'���H�����ff.����颕��f���AVAUI��ATUSH��PH�t$(H�T$0H�L$8L�D$@L�L$H�o����D$I��H��$�H�D$H�D$ H�D$M����1�M�t$�0�ƒ�HT$�D$H�*H�,�@��u	H�����u4H��I9�tkL��I�$ uI�L$ �D$��/v�H�T$H�BH�D$�H��L���ŕ����u�I�$��`H��`u�H�E��`H��`t�H��L��H���8���I9�u�A��u	I�����uM�l$H��PL��[]A\A]A^�@I�$�ƒ���t�� t�H%���I��L	�I�$��f���UH��SH��H���;���H��~H��uH��[]�f.�I��H��H��H��1�H�D$���H�D$�u/H�����t'H��у���t�� tH����H��H	�H��f�H�XH��[]�D��UH��AWAVAUATI��SH��H��XH�u�dH�%(H�E�1���tmI�赸����tuH��� uIL�KM��x��I���M��u{H��H�M�dH3%(�jH�e�[A\A]A^A_]�I��I��A���L������I���@�����u����H������H�M��H��L����H���t����f�J�4�H�����H�E�H�E�H�E�H��H�E�H��H��H���H���H)�H9���H��H��$���@1��y���H��衙��H������f�E1�L�e��?�H����I9����H�CJ��L��I��H�E�胾��H���K���H��� u�L;k�����H�C ��%�t	H)�H�L�L�T$I���M��H��L�M�E1�E1��R���L�M�H�@H�E�I�D$�I�H�E�I��L;m���K��H�E�M9�~7�H�E�H�}�L��L��L�M�L�8�&���L�M���t~I��M9�u�DI��K��L�xO�<�M9��M��u�H�}�转��H��tCH�U�H�H�B����fDO�<��e����H�E�L�M�H��H�E��l���L�M�I������H�IuCH�5�H�81��u���s�����UH��AWAVAUATSH��H��XH�u�L�'dH�%(H�E�1�A�� ��I��A��踵������L�u�A����I�M���M��I����H�E�J�4�H�E�H���w]H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�L�T$I���M����H���H���I��H��E1��J�H�@H�E�I�F�I�EH�E�I��L;}��K�D�E1�H�E�M��~?�H�E�H�}�L��L��L�M�L�����L�M����OI��M9�u�f�I��K�D�H��K�D�I9��M��u�H�}�諪��H��rCH�M�H�H�AH��H�M�dH3%(�H�e�[A\A]A^A_]�@L�g�������_�����|��H����H�M��H��L����H���G����DL��蘥��I���1���K�D����f�1�艎��H��豕��H���c���f�E1�L�e��<�H����I9��7���H�CJ��L��I��H�E�蓺��H���[���H��� u�L;k����H�C ��H�lrCH�5�xH�81��r��薁��fD��UH��AWI��AVAUATSH��H��XH�u�dH�%(H�E�1����II�������QH��� �L�sM����M9���M���VE1�L�e�I����H��N�,����H�E�H�E�H�E�I����4H�E�I�EH��H�E�H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�L$I���M��H�E�I��1�I��L��M�H�@I�D$H��H�E��:���I�$����1�H�HI9�~I��H�0H��H�VH�L9�u�L��H�U�H�}�L��H�M��&�H�M����rH��tLH�A�I��H�1H�VH�I�L�H9�t)�DH��I�|�I�H�OI�L�L�H9��n���H��u�H�}�萧��H�yoCH�u�H�H�FfDH��H�u�dH34%(��H�e�[A\A]A^A_]�H����I9�}�H�CJ��L��I��H�E�����H���ϒ��H��� u�L;k}�H�C ��I��I��A��M������DL���X���I��萰����������Cy��H���k���H�M��H��L����H������6���1��!���H���I���H�������L��H���u���I�������~��H�QoCH�5�uH�81��o����UH��AWAVI��AUA��ATI��SH��hH�dH�%(H�E�1��� ��H�����˯������D��H�M�H��t1�L����z��H�}�H����@���#H�H�}�H9���H�}������{H�}��H�}���H�E�L�<�H�E�I�4H��x���H�����H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�L�L$I���M��L��M�E1���L��H��1�H�@H�E�����H�E�1�H��H�E�fDH��1�H)�L��@���H���GH��J��M�L)�I�
�I�EH;E��AI�DI��1�뱐H�Z�G������|����v��H���"���L��D��L��L���H���z����#�H�]�1�H�}�������L��H�u�dH34%(�zH�e�[A\A]A^A_]�E1�H�]��9�H����I9�}�I�D$J��H�޿I��H�E��ƴ��H��莏��I�$�� u�M;l$}�I�D$ ����+���H9�H�E�������@1��!���H���I���L���L����M���I��K��H�xA�����M�\1�H��~C@A�<u/H�u�H�}�I�L��L�U�H�M�L�]��j�L�]�H�M���L�U�tZH��H9�u�I�:A�?H��I�:����DH��x������H��jCH�]�H�H�C���DH���ȝ��I�����H��kCH�5�qH�81���k����z����H��1�����f���UH��H��1�SH�����1��H��H��H���D���u	H�����uH�kH��H��[]��H��ƒ���t�� t�H%���H��H	�H�+��ff.����@��uH�����tH��ƒ���t��`uH� �€��f��ff.�@H��tH�GH��H��t~H�G��SH���'���H��[�q��ff.�SH��H������uH�����tH��ƒ���t��H�[���SH������H������H��ƒ���tr��um�� uH�C��@u>�tH��[�f�H%���H�����u�H�{ ~�H�߾ �{���H��[�fDH���H���H��ƒ���t��� H��H���i��ff.���USH��H��(����H�������H��ƒ����������� ��H�{���������������X���H��H�@H���E��H��H�E1�H��tH�pH��H�H���� ��H��H����H9����ƒ����+���"H����H�C��@��H���R���H����%H��H�5�H���Xx��H�}H�l$H��t
H�E�
���H�D$H�D$H�D$H��(H��[]�@H��H����������H��(�[]Ð�[���H��H�@H���x��H�����H�S�#����H��H����H������=�����@�4����� �+���DH��H�t$�S���H�H�t$�ƒ��������� H����H���g��f.���ATUSH������H�������H��ƒ�����������@��L�c�� ��H�kH����I�|$��I�$�� �8H��H�K I�t$����H)�I�|$H�I�$ uI�|$ H�SH�4H��H�{ 袜��A��u$I�����tI�$�ƒ���t
�� I�$fDL����H��[]A\鴝@[]A\�H��H������H�s H�{��H�ƒ��� ��HE�H��H��H�轉��L�����H�H%���H	�H�+�@�H������H��H�sI��H� uH�s L���o���H�����H�kL�c �J���f.�I�T$H��H�H9�~�H�K I�t$ ���H����e��f.�USH��H��H�H�ʁ� ��H��H����H��������H�,0H)�H9��Y��u	H�����u#H���Kh��H�CH9���H��H��[]�@�ȃ���t��@tH��~H�CH�x��@H���h��H��Ѓ���t���� u���t�H�C�H�G�T���H����g��H��ƒ������� u)���H�CH��H��H)�H9��Q����H��H���M����:����H��tCH�SH�0�� t:H�xH��H)���H��H�H9��o����������H���Md��DH�S �H+P H�pH��H���H�C�f���H�idCH��H�5�jH�81��]d��ff.�f���AUATI��USH��H��H�/�� ��H�����H���	���I��H�CH� uH�C L�$�A��u	I�����ubH����u	H�����uH�kH��H��[]A\A]�fDH��ƒ���t�� t�H%���H��H	�H�+��@H�o�q����L��L��������u�I�E��`H��`u�I�$��`H��`�q���L��L���8x���a�����H��H��耞��1�H���f���AWH�
�hH��hAVAUATUSH��H���H��8�@g��H���z��I��H�E�� t$������t$H��8L��[]A\A]A^A_�fDH�}����u�自��H��E1�H�l$H�@H�����H��H�D$�oI���8f.�H����I9�}LH�CN�4�1�H��L��L�t$�:p����uI��H��� u�L;{}H�C ��fDL��L���m�����H�D$H�xH�D$ H��t
H�@�H���H�D$ H�D$(H�D$ ����@��AWH�
�gH��gI��AVH���AUATM�gUSH��(�e��H��脩��H��1�H�@H�����H���x��H�D$�DH����H9���L��L�,�H��L�4��A1�L��H���d`����uKI�H�� tbH�����H��t"H����H9���L��H��uI�G J�40H�|$�E���H��I��� �m���I;_}I�G �q���fDI�G�f.�H�}H�l$H��t
H�E���H�D$H�D$H�D$H�D$H��([]A\A]A^A_�f���w���fD��SL�FI�@�H�FM��t(H��~Hc�H������H��H��H�;艛���[��j��ff.�f���AVAUATUSH��蜠����tx�3w��E1�L�cH���.�H����I9�}DL��N�4�L���e���H�����tI��H��� u�L;k}H�C ��DL��H�������[H��]A\A]A^�@H��[]A\A]A^�P����AVAUATUH��S�������H�}�� u`H�}�z��1�L�eI���4@H����H9���L��H�<�L�4�謁��H�����u,H��H�E�� u�H;]}qH�E ��H������H�EH�� t9H�����H��tH��xCH9�}>L��H��uH�E J�40L������@H�E��f.�[L��]A\A]A^�@���f��g��H�����[H��L�����]1�A\1�A]H��A^�5���D��AUI��ATUSH��躞������I�}�� uVI�}�my��1�M�eH���)f�H����H9�}DL��H�<�H���t���H��H���)���I�E�� u�I;]}I�E ��@H������H��H��[]A\A]�f���f��H������H��L��1�[L�����]1�A\H��A]�c�����AWAVAUI��ATUSH��H��H�H���� ������I��Hc�I��A��M�$/I��A���H�������ƒ����t��@�kL�CI�H�Ɓ� ��I�PI�x�FL9��=H����H�KI�xH��uI�x H��H)�H��H9���H���k�H�ڃ�H������e�������W%H	��IH��H��[]A\A]A^A_����t�L�zHc�H��������H)�M�$/I9������H�$\CL��H�5>bH�81��\���H���^��H�CH��H��H)�I9���I��@{H�sH� uH�s J��H�<��9���I��1�L��H��H������M��u1H�����t(H��ƒ���t�� tH%���I��L	�H������L�c�����M����H�SH��H�T$���H� H�T$��H�{H��H��L)�H��H��H)�J��H�H��H��膐��L�CH��H��H)�H�K �5���L��H���M�������H������l���H��ƒ����[������ �Q�����B���H�S�=���H���(]��H��Ѓ���������� �������e���H�CH��H��H)��`���f.�H�{ H������@H����H���@���H�K �X���H����Y��UH��SH��H���\��H�H���� ��H��H����H9�~wH�t-��utH��������ƒ���t	H����H�k�ƒ���t5�� t)�H9�}0�� u+���H�{���1D�uyH9s�H��[]�H�CH�kH9�~�H������t�H��H��[]隦��f.�H�S�D����H�CH�kH9�|�몐H%���H��H	�H��K���H�S�S����H��ƒ����@���H�C�{���ff.���AWI��AVAUATUS��H��H�
QCL� ������L���)[��I�/�� u~I�oM�w H���}H��M�o�7@H����H9���L��I9���I��I��H�I��H�H��t=H��L��H����T��I��� u�I9o��I�W �fDH��M�w���z���H��L��[]A\A]A^A_�fD�o�Hc�H�<��h��H��u1�1���踊���H�t$I��H��H�ɁCH�T$1��M���H�$H��4LE��������DH�)WCH�5�]H�81��hW�����SH����Y��H��� �H��H�C1�H�у�H��H9�v]H��H�H��H��tH�H��H9�w�H��� u'H+s H�SH���H9�tH������H��[�@H�CH��H)�H������@H�C H�SH��H9�r�1����AVAUATI��UH��S��H��0H�D$ H�D$(�������a��H�L$L�D$L��H��\1���A��b�����`��������H���X��L�d$(M����H��������H�\$ H9���H��H)�I9���H�EI�H���� �dH�UL9���H���u/H�����t&�ƒ���t	H������t���L;e��H���}H�EH�U L��H)�H�<��y��H����H������sH�E�ƒ����a�� �XL��H%���H�\$ H��H	�H�E@E��t{I9���I�@�6fDH����H9�~iH�EL�4�A��u
I�������H��I9�tEH��L�x`H�|�Fw��I��H�E�� u�H9]~!H�E �fDH�L$H�T$(H��H���3��H��0H��[]A\A]A^�H��H��������H���P��H���L��H���p�����l���H�E��`H��`�[���I���`H��`�K���L��H���i���;���@A��H�L$1�L��L�L$L�D$��H��#�_���������H�M�� �H�MH�|$H�T$(H�t$ A���^��H���~���H�|$H���@����H�H�|$ H��y"H�E�� �CH����H�H�|$ ��H�|$H����@���H�H�|$(�����H�D$ H�E�� uVH�EH�D$(���I��rf.�H��L��H�U��H)�H�<��v��H�������L�eH�\$ ����H������H�������@��H������L��H�����H�EH���� ���H�D$ H�|$H������H�}�� t4H����H+|$ ����苄��H����H�E����H�}��H�sRCH�5eXH�81��R��f���AUATUSH��H��(�T��H��� t"H������H��(H��[]A\A]��H�kH��~�H���jH������I��H�@H��x	H��I�D$L�+I�,$A�� ��I��A��I�D$L�d$H�D$�� ��I�l$�֑��H��L�D$L��H�
��H���L��HDȺ��x��H���S��H�؃����#I������I�$�у������ ��I�L$H����H�������H��ƃ���t��@���� H�I�$H��I��1�H�߃�謾��H��Ѓ����WI�$H���� �NH��H����%�H	�H��d���H��H���k��H�KI��H� uH�K H��M��1�L���6���I�$H��H����H	�I�,$L�+A�� �u���L�k�t����H��ukH������.H��ƒ����=�� �MH�s I9t$ �4��H��I�$�� ���Cf�I�l$ �+���fDH�{ I;|$ t��e��I�$�� ��I�D$L�kH�C H��H����H�CH��H��uhI�����t_����t���I�$����t�� I�$H%�����H�ƒ�����HE�I�$H��MCH�I�D$H��(H��[]A\A]�fDH����I�$��I�D$ L�kH�C I�D$�e����H�C I9D$ �����H�{ �#����H�s I9t$ �����ƒ���t�� tH%�_��H���@��@t�H��������fDH��I��1�H�߃��D���I�$H����H�C�%���H��H�L$�C�H�H�L$�ƒ����C����D������ATUSH�����TH������GH�;�������6��I���'H��H�
oSH�oS�H����Q��H��H9���H� uH�x=H��ƒ�������`��I��A��@����L�cH��@H���p��H�I�ĉЃ���t	��`�p�� H�{uH�{ �b��H��Ѓ����$H��_��H�H�U�� �H��H��H�k ��H�SL��H�����H��[]A\��H�{�� uH�{ �>b��H��ƒ���t�� H�H�U�� tbH��H�M��1�I��H���z���M��ueH�H�E��H������ ��t�� uVfDH��t+H����H�CH��[]A\��H�M H�U�fDH�E��f.�L������fDH��u;H�EH����H��H	�H������H�U�� ���H�E H�UH�C ���f�H������@������� �����H�������H���0K����SH����H�߅�t\�M��H�5xuCH��t+H��E1�L����1�1��5\��H��H���P��H��[�D�H�=~Q���H��H�-uC�[�ʳ��f.���USH��H��H���+���H��ICH9t"H�;�� u$H�{�f��H��H��H���
P��H��H��[]�H���������AWAVAUATI��US�_Hc�H��8�|$H��H�$��K��H�<�H�D$ �f��H�D$(H�l$ H����G��H�E�� �L�t$ L��I���G��H�D$(H��� ��H�l$(H��H�D$ H�@H�D$(H�@H�D$ �uH�D$ H������%H�D$ H�XH�$I�H���I�FI��H�H��H9�u�A�L�-mOK�|��L��H�]O��M��K��I��L9�u�1���D�H��H9���ډ�����B�H����I��������1�I���Z@H����H��t_H��t4L9���H���t H����H����L��H�H��H9�������H��H��H9��2I��H��� u�H�HH��u�1��d��I��H�\$ H����p��H�H�\GC1�H%���H��� H�H�D$ H�|$(H�P��Y��H��BCH�D$(I��LD,$H�H�PH��8L��[]A\A]A^A_�f.�H�D$(H�h����f�H�l$ H���E��L�u ���f.�E1��%������u.����K��I��L9���K�<�H��� u�H�����t�A�����H�D$ H���������H�D$ H��� �����H�D$ H��H��H� ���H�D$ H	���H��~+L��H�H��H9����u���L��H�H��H9����b���DL��H�H��H9����J���DA�HcD$H��H�D�H�D$�A�H�H�D�H�D$H��E1��Nb��I��H��~(fDJct�K�<�I���O��L��H������L9�u�I����H�D$ �uH�D$ H������BL���"i��H�D$ ��RH�D$ H������AH�D$ H������-H�D$ H���H�D$ �uH�D$ H�������H�L$H�t$��D$����L$�0DH����H9���������N����H�����FHc�H�M��H�|�I��� u�I�Q�f�L��L����������5������}�������`��I���i���H�D$ H������<���H�D$ H� �����+���H�D$ H����������H�D$ H����H��DCH�5�KH�81��+E��H��ACH�5KH�81��E���E������H����uH�����tH��у���t��`uH�GH�����H��H�<$�H�t$H���b���H���ff.�f���H�
_JH�_J��$���@��AVAUE1�ATI��UH�oSH���YDH����I9���H��J�<��d��I��H��t+H��� tC��tI�FH�8L���=a��H��uC�I��H��� u�L;k}>H�C ��I�~~�I�F L��H�8�`��H��t�[L��]A\A]A^�f�A�[]L��A\A]A^�ff.���UH��H��SH���[c��H����H��H9�tiH��H��H�=ܳ��H����s��H��4tH��[]��H�E�� uGH�H�E�� tJH����H)�H��t��H����[]H��������H���[]�@H�H������ u�H�S�H���[]�ff.����ATUH��S1�莊��I���pf�H����H9�}s�H��tH��xH�EH��uH�E H�<��Ob��H��tjH��� tQH����H����H�PH��H�0L��H���c��H�EH�� u�H�EH9�|�L��[]A\�f�H�xuiH�@ H�P�H�UH�с� tJH����H��tH��xH9�}H��tYH��H�D�H��蔚H��H�5�KH��H��9CH�81��A��H�U�H�HH��ACH��H�5�KH�81��A��H����H�m �fD��H���Da��@��AVAUI��ATUH��SL�'H��A�� �SI��A��H���OH��������H9���H��I���C��A����H�CH9��-H�H�� L9�4tUH�CH��uH�C L�,�A��u
I������[]A\A]A^�DH��L)�H�pH�CH��uH�C J�<��0d��H�H��H�M�� M���H�����tv�ƃ���tlH��tgH%���H��H	�H�% H���`���f�H������1���H��Ѓ���� ������ ����������H�C�����H�K�
����L�gH�������L��H�xjH�����H��H���-��������L��H���[��������H���`H��`����I�E��`H��`�����L��H��[]A\A]A^�YT��H�j?CL��H��H�5�IH��H�81��X?��H�I?CH��H�5cEH�81��=?��ff.�f���AWH�GI��AVE1�AUI��ATUH��S1�H��H�D$�EDH����I9�}\H�D$N�$�H��L���\��H��u;I9�tL��H��L�����H��I��I��� u�I�GI9�}I�G �f�M����H9�t#H��L���h�H��L��[]A\A]A^A_�fD��~��A���t�H��H��[]A\A]A^A_��`��ff.���AVAUATUH��S�~������H��E1�L�u1��@���B�H��H����H9�}QL��L�,�L���r`��H�����tL9�tL��L��H�����I��H��H�UH�с� u�H;]}
H�E �@L9�t{H��~-�u2H�����t*�փ���t H��tH����I��L	�H�U[]A\A]A^�L�eH��[]A\A]A^��F��H����x��[H��L�h���]1�A\1�A]H��A^�}��D��f���SH���}��H�߅�t����H��[�f�[麥��f.���ATUH��S�`}��H��ti�d?��1�L�e�.@H����H9�}<L��H�<��0_��H��H��H��H��较��H�E�� u�H;]}H�E ��f�H��[]A\��[]A\�'������AVAUATI��UH��S��H��H����>������H��H�E��tL�� ��H�}�Q��H�EH����H%���H�E�~|������H��H��[]A\A]A^�fDH�����t��ƒ���t���`t���@t#�� uH������H�E�ƒ���t���� �1�H��L�D$L��H��A���-G�����4L�$$A����I�M����H��������I9���H����=��L��H��脈���{���������M������I��I��1�A��I���<M��tUH�E�ƒ���tG�� tBH��H%���H��H	�H�E@I9�����H�|�=]��H��H��H��H���ˁ��M��t�H�]��H�} H���t���H���}���H������p����ƒ����b������f.�1�H�=�?�"<��H��H��[]A\A]A^�f�L�$$A������L���Y��H�D$H�������H��H���`?������H�L$1�L��H��薮��@��u8H�����t/H�E�ƒ���t!�� tH%���I��I	�L�e����fDL�eH��H��[]A\A]A^�@L����k��I���-���H�=�B1���{���_���H��9CH�5?H�81��e9��H��9CH�5.?H�81��M9��ff.�f���AUI��ATI��UH��SH��H��� �}H����L��H�����H��L��L��I��H��L�����@��u	H�����uH�]H��H��[]A\A]�H�E�ƒ���t�� t�H%���H��H	�H�]��f.�H�_�f.���H��Hc�H����f��ff.���USH��H�����H������H��Ѓ���������H�с� uHH�s�H��t3H�<vH�n���`t=DH����H��@H�k�� tH��H��H��[]�H��H�����@��tH9�}�H�{���f�H�CH9�}�H������t�H�H�����H���H�Ѓ���t�H�с� �k���H�[ �|����H��H����H��H	�H��S���H����6��ff.�@AWI��1�AVAUATUSH��H�t$�H�T$(���I�7H��� �HH����1�E1��מ��H�D$�]]���L��H��H�$�H��H�D$(�H�D$8H�D$HcD$H�D$ f.�I��� t{H����I9�}|I�GN�,�M�fL���HV��H��H�D$H�x�H��t*�D$����H��� �gH����H9D$ ��H�|$L��M���eq��I��� u�M;w}I�G 뉐H��� ����������H�<$H�t$1�L�|$8�C��H����J�����H�I��H���J��I������f�H�D$(H�<$1�H��H�l$8��4�����?H�t$8H�<$��WG��L��H���p��H�@L���K�t$H��I��E1��p������H�{�����<���H�<$�g|��L���_o��H��H�D$H�X��u	H�����u^H�D$H��H[]A\A]A^A_ÐH���(g��I������H�SH��H��?H�H����f.�L���X0��H���\���I�w���H��H��I����P����u�I�H�$��`H��`u�H���`H��`�p���H�|$H���HI���^���H�4CH�5�:H�81��K4��H�<$�{��H��4CH�5�>H�81��*4��f.���U1�SH��H�~9H��H�L$�D$�?�����H������H��ƒ��������H�|$H����@��uk��?���ƅ�tkH�T$H���k����T$H�Ņ����uH�����uhH���D$�F��H��H���8���D$��tH�e���H��H��[]��z���ƅ�u��H��H��[]�fD������v���fDH��ƒ���t��� t��D$�@H�ǻ�+[��H�EH%����� H�EH��H��[]�H���x2�����S1�H��H�8H��H�L$�D$�I>��H�|$H��tn@��uH�>���ƅ�tHH�T$H���@����u H�����tH��ʃ���G�H��s<H��[�fD�y���ƅ�u�H�����H��[��������f���u�H�����t�H��փ���t���H	�H���������SH�����H�������H��ƒ����������H����H��ʃ���H�H��t@�� �� t;H��H����H��ufH�PH��H�H����H��H	�H�[�f��� H�KH��t!H����H��H�H�S[�fDH���F��H�PH�����H����H���H���0��ff.����USH��H��H�H�ǁ� ��H��H����H�ك�H�������ƃ�����H�Ɓ�H	����H��t_H��ueH�{ H�/��@tH�SH�z��H�C �*H��~ZH�H���{���H��ƒ�H�C ��t	�� uT@H�kH��H��[]ÐH�{�f.�H�S�@����H�����H�w�Oe��H��ƒ���u��H��H%������H���H	�H��f�H�H��ƒ��i���H���D/��@������ATUSH����3H������&H��ƒ�������1�H��裭��H�(I��� ueH�hH��Ѓ���t��@���� tcH��H�{��H)�H�4�H���hd��H��Ѓ���t�� uFfDH)kL��[]A\�@H������H���?���H�{ H�S�fDH��H����H����H)�H��H	�H��H�KH�ytH��HK �t���@�� H�{uH�{ H����Q��H��Ѓ���H����-��f���H��H���H�t$H�t$���H���ff.����ATI��UH��SH�H��� twH����H9�|tH��xoH��xjH9�},H)�L��H���g��H��t0H��H��[L��]H��A\�ԩ��@H�TH9��L����g��H��u�[�' ]H��A\�x/���H�GH9�}�[�]A\�ff.�f���UH��SH��H��������uRH���ueH�M�� uqH�ME1�H�T$H��H���*8��H��teH��tH�T$H�4$H���l��H��[]��E1�1�H�y�1��}8��H���t�H�H��H���5��H��[]�H������H����^��H��H���]5��H��[]�fDH�6@��t?H�H�SH�4$��t?H�H�T$H���`���H�E�� u=H�EH�H�4$�G���DH���p^��H���H���`^��H�4$H����H��������SH��@��tJH�H��xOH��� uH�SH���k��H��t[�fDH��H�߃���j��H��u�[��B��DH����]��H���H��+CH�5&2H�81��+����ATUH��S��k����td1�L�e�(@H����H9�}4L��H�<���M��H�����t H��H�E�� u�H;]}
H�E ���H�tH��[]A\�����[H��]A\錗��ff.����SH��@��tH��H�H��xH��1�[�i��@H���]��H����H�+CH�5d1H�81��*����ATUH��S�k����td1�L�e�(@H����H9�}4L��H�<���L��H�����t H��H�E�� u�H;]}
H�E ���H�tH��[]A\�?����[H��]A\鬖��ff.����UH��AWI��AVAUATSH���}�H�u�dH�%(H�E�1�H��� ��H����H��h����u������E�H�]�L�}�L��h�����I��L�d�H�E�H�E��L��1�H���h��I��M�7I��M9�tlI�H���9I��H��u�L���D��L�M�1�1Ҿ�H��I��H�E�L����L�m��d�H��4u�H���fc��H�5�3H��H�=!CH�81��)��L�}��i���E����$�D����]�H�M�L�}��E��C�L�l��CHc]�H�H��p���H�E�H��� ��@H����H9���H��p�����C��I��H�E�H�H��x����� ��H��H�4�L��L�4��c���U�L�}���X�
f.�H�����H��t#H����H9���H���TH��J�42L��I���@c��M9���I�H�H�ǁ� u�H�B�H�BH��h�������H��h���H���C��H��`���H���8�]�L��p���1ҍCH�H��X����C�H�]�L�l�I�G1�H��P���H��X���H��x����B��H��x���I��H��p���H��� H�E��LH��P���H�4�L��L�4��qb���E�L�}���?��H�����H��tH��xZH9�}UH��t0H��J�42L��I���,b��M9�tGI�H�H���� u�H�B�H�R ��f.�H�R ������f�H��`���L����a���E�HcU�H��H;�h��������H�]�dH3%(H��`����0H�e�[A\A]A^A_]þ�:���fDL���H��H�E��E�Hc]�H��� �x���H�E�H�@H9��w���HDž`����f�H��p���H�@ ���H�E�H�@ �u����E�D�hH�E�Ic�H��x���H��H���wYH�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�H�\$H����H��� W��H��I�GE1�D�m�L�m�H�E��E�Mc�D�p�I��� ��@H����I9���H�E�J���M�M��E��N��1�I��?H���C�}DH�����H��tE��uJI9�}EH��t8H��J�<H�|�H�BL9�tBH��I�L�H�H�Ɓ� u�H�A�fDH�I ��f��H�BH�|�L9�u�D�}�H��A����g��I�Mc�� �*���M;G}	I�G �/���H�}��1���H��x����[��� ����3��f.���SH��H����C��H��t	H��[�H�t$�H�\$�k��H��[�fDAWAVAUATI��USH��(H�L$H���FH�I��I���� �OH�_M���RL9�|
K�D%H9�~I��M)�H�|$E1�H��������H��4tB�I��L�8H�D$A�� �KI��A��H��������I�L)��� �H����I9���I9���L��L��K�l=L)����L��I��H)�I�FI� uI�F H�<��{F��M��~'H�L$H� ��H�I M��L��L��L���ϐ��A����I������xI��ƒ����g�� �^H%���H��H	�I�H�D$H�D$H�D$H��([]A\A]A^A_�H����M�������H��L��I�����@H��I�,L)�L)�H9���L���$��L���H�$u
I������!I�FH9��LM9�tcI�NI� uI�N K�D%H)�H�4�K�/H��H�<��-W��H�<$u&I�����tI��ƒ���t�� ��I�nM������H�t$I��H�^H� uH�^ L������L��I� ue����I�~ J�<�L��H���V������I�n����I�^����L�x����H���'�����k��I�~�DI��ȃ���������� �����������I�F���@H��L���o������H%���H��H	�I�.���H�l CH�5B'H�81��c ��L��H�Q CH�5n&H�81��H ��H����H�4 CH��L��H�5�*H��H�81��" ��f���SH��@����H�����t{H��ƒ���tn��uiH��H��%H�
�%��$��H��� u0H�x�„�tH�3�� t)H����H��1�H������H��[�������DH�s��H���2��f���ATU��SH������I�����H�������H��ƒ�����������t:H���tZH�H���t9H��H��?HÍ}�H��Hc��f��1�H��L��H������H��L��[]A\�@I�$�� t/H�����fDH��H�t$�Q��H�t$H���f�I�\$�L���Q������Q��@��UH��SH��H���������W���FH������9H�
�ȃ����(���H�>H��H�@��u.�� uJH�JH�T$H��A��3)��H��uNH�u@��t4H�H�UH���e��H�EH��[]�f.�H������H���P��H����H�MH�T$H��H�4$����H�EH��[]��u|H�����tsH��ƒ���tf��uaH�6@��t7H�H�UH�4$��t7H�H�MH��H�T$�s���H�EH��[]��H���xO��H���H���hO��H�4$H���H���������O�����H��@����H�������H��ƒ�����������@u`�� tH��|H%���H��H	�H�H���f��t1H�WDH9�}H�=�'1��]#��DH�wH����H�W��H�CH�5?#H�81��J��f.�������@��AVAUATUH��SH��H�� ���H�H�� �#I��I��A��I9���H��������H9���I��A��I9���I��M)�M��u1H�����t(����H��t	������t��DH;k��H����H�C J�<�L���>��M��usH�����tjH��ƒ���t]�� tXH%���H��H	�H�H�� H��[]A\A]A^�DM��uH�����t������tH��u�H����H�EL9�|EH�kH�� H��[]A\A]A^ÐL�c�����H��:f.�H�C�>����H�{ �H���'��H�kH�C �DH��H����i��H��� ���L�4�H�s I��H��L��L���:��H���B��L�#H�{L��L���C=��I����H��L	�H�� H�+H�� []A\A]A^�H�CH��H�5 H�81�����@��ATI��USH��� t}H����H���5��I�L$H��I�$ uI�L$ 1�I��H��H��跇��@��u	H�����uH�]H��[]A\�@H�E�ƒ���t�� t�H%���H��H	�H�]��f�H�_�f.���S��T��H��H���R��H��[�fD��AWAVAUATUH��S��H��H�gCH�T$L�(���oH�L$H�H�ׁ� tlI��I��A����ue1�I���H����H�QA�H��t#H���0H9��'H����H�I L�$�H��L��[]A\A]A^A_ÐL�q��t�H�L$H�*%��1�H���$��H�D$��H�H����I9�IN�H��H�@�H��	w.1�L�d$pM�~��L��L��H)����I��H��H9��H�|$H�H�ف� ��H����I9���H��
��H��~*H9\$p��1�H�T$p�
H9���H��H9�u�H9�HN�H����NH����H���CH�t$pH�T$xH��$�H9���H��I��I��I9�L�@H��M9�IO�H���bH�OH��H��$�H�OH� uH�O H��H��$�H� �H��H��H��$��H��$��^��I���>���@H��������@L��I�v��T��H�L$H�H�ׁ� H���������D�g�Ic�H�<��&��H���w���L�D$p�H��D��H�@CL��$�L��H��$�1��T��H�D$pH��4LE��4���H9�HN�H������H���H�������H��
���vQ��H�@I��H�D$H��$�H�D$M�|$I�$ uM�|$ E1�H��fDH��L��L)��J��L�I��H�H�T$K��H�H�D$K��I��L9�u�H�;CH�I�D$A���I������I�$�ƒ������� ��H%���H��H	�I�$���H������1��h0��I���z���H�_� ����H���]����H�D$xH�T$p1�H9�@��H�H���\H�O H��H��$�H� ��H��H��H��$��H��$��B\��I����f.�H�D$pH���H� H�4ǿ�\��I�������H���F����H������H�T$pH�T$ H��$�H����A�L�d$pL�D$ L��$�K��E1�H��H��I���DH��I��I�EH9�H��L9�u�I�EM��L��K�4�I�<�L�$L)�H���I��L�$J���K��I��L9�tTH��$��f.�A�����H�O���H�����I��I�������I�l$���fDH���.��I��H�pH� uH�p 1�L�D$ H��%���H��I��H��H��H��H9������H�T$H� u�H�R ��H� ����H�O ���H� ����H�
CH�5�H�81����ff.����ATI��U��H��S�N��L���H��H��諹��H��[]A\���S��M��H��H�����H��[�fD��ATUSH��H��H��� ��H��H���������R����uy��Y��H��H�@H���w��H��H���֗I��H���+L��H��I�D$�uH�������H�}H�,$H��t
H�E�X��H��H�D$H�$H��L��[]A\Ð�kY��H��H�@H���X���H��H���]�I����H������>���H����L��H��I��[]L��A\�f�H��L���u-�����Z���I�$��`H��`�I���H���`H��`�9���H��L����%���)���ff.����AWAVAUATUSH��H��� �.I��I��A��M���'H�<$�A�I�������H�� �QH�����H��tL9�~H�$H���MH��J�<�H�
(�L�D$H����L�D$I��H�M���$�� ��H��H����L9���H����E1��}f.�H�����H��tL9�~I�D$H��uI�D$ J��H�H�Ɓ� tQH�����H��tL9�~H�CH��uH�C J�<�L��I���V��L9�~)I�$H�Ɓ� u�I�D$�H�C�L���I��M9���H�$I��H�H�� �����H�$H�@���DI�l$����fDH�@ ������ tKH����I��L���I*��H��M���{���1�L���0*��H��H��H��H����U��I9�u�I�$���I�D$I���H��H��[]A\A]A^A_�L�wM������H��[]A\A]A^A_�J��H�uCL��H��H�5�H�81��f��fD��H��� tH��H�wH�ǃ���U���H�w H���U����AWAVI��AUATUSH��(H�H�t$�� �����„���E1�A��uI�����t��H��H��������DE�H�|$���E1�I�n�S�H����I9���H��N�<�L�����H���I9���H��� u&H����I�H�I���� u�M;n��I�F �H�P��f.�H��„��6���1�1��7?��H����H�|$�#��H�T$H��� �-I�H�Z�� �3H��H����H��H��H������f�H���0��H��E��t�� I��� ��H����H�t$H��L����_��H��(H��[]A\A]A^A_�I��� ��H����L)�H��H�<C�0��H����8��H��H������E��t%��u H�����tH��ƒ�������H�H�t$H��L��L���=_��1�H�t$M����L�D$H��L��L���D$�yv���O���@I�V�2����H��H��I����� ����I�NH�Q�����DI�F�2����H���������H��ƒ����H���������H�����H���6����+������AWAVAUATI��H��USH��H��� ��H���6����H�H�����?H��������I�,$H�H���� �H����H9��(H��L���E��H��H���r��I��I��A��uH�������I�oI�$�� ��H��I�L$��H����M��uCI�����t:I��ʃ�����A��u#I�����tI�$�փ���t��H	�I�H��L��[]A\A]A^A_�DH���`<��H��H������L���LD���' H�����I��I��A���i���H��L��H��[]A\A]A^A_��$���I�l$���fDI�\$I�L$ H���&���I��M��H��1�I��?L���w��I�I�L9�;I�GH�D$�H�L$H��H��M��L���zw��H�L9�I� u�I�O ��H9������I�OI� uI�O H��M��H��L��H)��2w�����DH��у����Z����� �Q���H��H����H��H	�H��<���D�H��������d���H�	CH�5�H�81����H��CH�5�H�81����ff.����S1�H��H��
H��H�L$�!��H�t$H��uH��CH�0H�t$H���_#��H��[�f����wr�����UH��SH��H��� tkH����H���
��H��~9H�UH�E t8H�L�H9�s!fDH�2H�9H��H��H�z�H�qH9�r�H��H��[]�H�U ��f.�H�_�f.�����E�����UH��SH��H���
��H��uH���[]�f.�H������H��H� ������H�;H�K�� ��H����H��~�H����H��H�H��H��~�L�G�L�R�L9�|iM��t'J��H9�sH��H�2H�8H��H��H�z�H�pH9�r�M���|H��H��[]�f��;��H�;H�K �� �x���H�{�v����J�<�H��H9�v&H���H�0L�
H��H��L�H�H�rH9�r�M��tJ��H9��`���J�<�H9��w���H�H�H��H��H�Q�H�GH9�r��T���H��H�w�H��H�H��H)�H����fD��UH��S�H����t��u%H���t5H�H��H���_��H��H��[]�D1�H�'1��`����fDH����7��H���ff.���AWLc�AVAUI��L��ATM��USH��N�4�H��8H�t$� ��H��H�D$(H�D$H�D$ H�D$M��%�sH�H��L��A��H��H���i@��H��L9�tPH�;@��u�H�L$H�T$A�H�t$���H��u@H�3@��tH��f.�H���7��H���H��8H��[]A\A]A^A_�fDH�T$ H�t$(H�D$H�H9�HN�H�$H9�}2I��L��L��I��A��H��H���?��L9<$u�H�$H�t$(Ht$ H9��2���H�E�� uH�EH)�H��H��`,������H������ff.�@��H�A��H��H��� tH��L��BD�ʃ�H���"��f�H�rL��BD���"��ff.�f���AVI��AUI��ATL�gU1�S1�H��8�H��H����H9�}AL��H��L9�tH9�tH��L���J��I�MH��H���� u�I�EH9�}I�E ��DH9�t��L��]A\A]A^�(����[]A\A]A^����AUATI��UH��SH��H��� ��H����A�L9�~WM��yI�xMH���|��H�MH�E uH�M H��J��L)�H�<H�tH��L�/�"8��@��tH�mH��L��[]A\A]�f�H�����t�H�E�ƒ���t�� t�H��H%������H���H	�H�E�DH�_�>������ATUSH��H������H������xH��ƒ����g���^H��������upL�eA��t&L��H�H���%��H��H��H��[]A\�f�H��� �lH�KH�T$H��E1�L�����H��H��t�H���RH�|$�UE1�1�H��1��
��L�eA���y����DH�>@���;H�H�<$H�}@���H�H�|$H����H�H�Ɓ� ��H�$H�CH����H9���H�H9�~H)�H�D$H��H����H�CH��uH�C H�4��vH��H��H���:��I��H�E�uH�������H�T$H�4$H�߹4���H��H��[]A\�f�H�$H����H���j���H�H�$�f���H���H��[]A\�fDH�������@L���p2��H���H�����[2��H������K2��H������K��H��H��[H��]A\�@H��H��������1���H�E��`H��`� ���I�$��`H��`����L��H��������H���K���ff.�AUI��ATUSH������I�����tI�E�ƒ���tq��ulA�1�I�m�(H����H9�}DH��H�<��!��H�����u H��I�E�� u�I;]}I�E ���H��L��M���B"����H��L��[]A\A]�L�����f.���SH���S?��H�߅�t[�6���fD[�zg��f.���SH���#?��H�߅�t����H��[�f�[�Jg��f.���SH��@��tH��H�[�!��fDH���0��H��[H���!��ff.����H�m�BATH�=�USH�0�BF��H�K�BH��BH��H�2H��;��H�;H�5<K���<��H�;�����H�(m��H�5f��l.��H�;�H�M���H�5��Q.��H�;�����H�R���H�5��-��L�%�BH�;�H�5�L���-��H�;1�H��g��H�5��p-��H�;H��H�5��J*��H�;1�H�N���H�5��B-��H�;1�H�f���H�5��*-��H�;1�H�.J��H�5��-��H�;1�H��I��H�5m�,��H�;�H�[c��H�5x��,��H�;�H��X��H�5?��,��H�;1�H�Hb��H�5�\�,��H�-%�BH�;�����H�5�H���,��H�;�����H����H�5��s,��H�;�H��r��H�5��X,��H�;�����H��_��H�5��=,��H�;�����H��{��H�5��",��H�;�����H�#{��H�5��,��H�;H�U�B�H�5� ��+��H�;H�b�B�H�5f��+��H�;�����H�2��H�5N�+��H�;�����H����H�58�+��H�;�����H����H�5#�+��H�;�����H��H�5�e+��H�;�����H����H�5��J+��H�;1�H���BH�5��2+��H�;1�H��d��H�5��+��H�;1�H��c��H�5��+��H�;1�H��M��H�5F��*��H�;H�FH�5%��'��H�;1�H��G��H�5��*��H�;�����H�=\��H�5p�*��H�;�����H�"\��H�5Z�*��H�;�����H��Y��H�5E�k*��H�;�����H���H�5�P*��H�;1�H��~��H�5�8*��H�;1�H���H�5	� *��H�;�����H��|��H�5��*��H�;�����H���H�5���)��H�;1�H��BH�5���)��H�;1�H���BH�5��)��H�;1�H�.���H�5��)��H�;1�H�F���H�5=I�)��H�;1�H�����H�5��r)��H�;1�H����H�5E�Z)��H�;1�H�^���H�5`�B)��H�;1�H�����H�5F��*)��H�;1�H�޺��H�55�)��H�;1�H���H�5%�(��H�;�����H���H�5��(��H�;H�=�B�H�5��(��H�;�H�5���H�5��(��H�;1�H���H�5��(��H�;1�H�U���H�5��y(��H�;1�H�����H�5��a(��H�;�����H�B��H�5��F(��H�;1�H�J�H�5��.(��H�;L��H�5��(��H�;1�H�k�BH�5|�'��H�;�����H�@���H�5g��'��H�;H�j�B�H�5Q��'��H�;H���B�H�5?�'��H�;H�����H�5��'��H�;�����H�H���H�5�|'��H�;H���B�H�5���a'��H�;H��B�H�5��F'��H�;H��B�H�5݄�+'��H�;�H���H�5�^�'��H�;�H����H�5�%�&��H�;�H�����H�5����&��H�;�H�+j��H�5b��&��H�;1�H�c�H�5L��&��H�;1�H�����H�59��&��H�;1�H��H�5'��w&��H�;1�H����H�5��_&��H�;�����H����H�5��D&��H�;�����H���H�5��)&��H�;�����H��S��H�5}�&��H�;�����H�/���H�5���%��H�;�����H�D�H�5���%��H�;�����H����H�5���%��H�;�����H�>G��H�5���%��H�;�����H����H�5x��%��H�;�H�؂��H�5r��l%��H�;�H����H�59��Q%��H�;�H��|��H�53��6%��H�;�����H�����H�5���%��H�;�H���H�5��%��H�;1�H�T��H�5����$��H�;�H����H�5���$��H�;1�H�A��H�5��$��H�;1�H�Yk��H�5��$��H�;1�H�AE��H�5���$���H�=��D:���H�=�H��C�,:���H�=sH�iC�:���H�=r�H�aC�9��[]H�KCA\�H��t#D�L��E��t�h�D�D��E��unH��u�1�H��u7�H���f.���H��;D�uSH���u�1��f.�H��t�D����t���H9�s�H��u�f��H9�v��DH��uѸ�D����f.�H��t-�H�GE1���t�Z@I��H�@�H���uI��I�PH9�u���I����A�	L9�vJ��H��f.��H��H9�u�1��I��A����A�ҸA��UA��SA����pD)�H����tlL�V�I)�L��H��I��1�H��A��uH��I��1�A�1�tJA�H�D$I�H�H�D$ L�H�D$(H�8H�D$0H�(H�D$8D�[]�f�H��H)�H��1��H�n�A������@��H�G ���H���@t,H����tH���H��?H��?���f���H�GH��u�fDH��H��?H��?���fD��H���@t4H����t�����H����f.���f.�H�t�H������H����fDATA��UH���*S�\�H��H�E��ta�� H�H��waH��H%���H	�H��@H�+��u+H�����t"H��ƒ���tH�€�H�{H�t��t6H��[]A\�fD���H�H��v��H���g��H�kH�C�DH����%���ff.�H���BSH����H�8�#���H��H�H�� ��@t41���H�X@��H��H��H��H���HD�H����H	�H�[�H�PH�1҅���H�ɹHE�H�P[�USH��H9��?L9��UL9�M��HcD$ LF�H��M��t(E1�fDB��C�,�H)�H�B��I��H�� M9�u�L9�rDL9�w'�]DB��I��H��A��H�� F��I��L9�t8H��u�H9�u~H9�uy1�H��[]�M9�vG��L)�B��I��H�� M9�u�H��t3I9�sJ��H��fD�����H��H9�u�H���[]�DH9�uH9�t�I9�sf�B��B��I��L9�w�L9��m���J��H��fD�H��H9�u�1��K���H�
��&H�5?�H�=A����H�
��'H�5 �H�=D�����@AWAVAUATI��UH��SH��H�7��@��H����I��I�$��@��H����I��H9ƺHM�H��H��H�3�BH�8����H�UI��H�E@uH�UM�D$I�$@uM�D$I�nI�@uI�nH��L��M��H��jH�����ZY��u4H��L��[]A\A]A^A_�f�M�|$L���g���L�oL���A���@H��H���5���I�&����ff.��SH9��+L9��L9���D�T$1�E����E1�H��t&�F��C��I�L�B��I��H�� L9�u�M9�w#�=f�C��H��H����H�� B��I��M9�tH��u�I9�uWI9�uR1�[�fDM��L9�v�H��tB��I��L9�v�I9�u1I9�u,1���@H��L��I��H��L��I���=����C��B��I��M9�w�L9�v�J��H��f��H��H9�u�1��z���H�
[�eH�5�H�=�����H�
<�dH�5��H�=�����ff.��ATUSH��H�6L�H��H��
L�Ƀ�9�A��H��
��A8�t$9�tH��[]A\�T���@H��H��[]A\�A����L�ʁ�@��H�G��@��H����H9���H��H���BH��A��H�8�'���L�I��A��@��I��L�CA��H�M��@��H��H�U��I�4$��@tdH��I�|$��H��j���XL��Z[]A\�L��H������@�Y���H�KH�qH9��\���H��tDI��A��I�q�F���I�t$I�|$�@H�MH�U�s���L�KL�C�K���H�GH�p����H��AUH��AT��I��USH��Ic�H��I��H�ʉ�H��H�hH��H��H�,H�`�BH��H�8���L�A��@��H�xL9���L�!�B1�1�D�S�I���xH��D�H	փ�~
�7�� H�� H��H��I9�rυ�t�7H��M��uH+xH��H9�u,H��[]A\A]�H�PH)�H����H�xL9��{���1���H�
����H�5�H�=e���AUMc�ATI��UH�Չ�SH��H��H��H�n�BH�8����L�PH�@uL�PM��t1�fDA��H��I9�u�H9���A�L��B��H��H9�to�1�I���x�I9�w,H��uGM9�v�H�
����H�5_�H�=j��3���I��H���9I��H��H�� ��I���f.�H��[]A\A]�DAVAUI��ATI��USH�H�
��@��H��H�jH����H��~+�D����t�.fD�t����u H��u�I�][]A\A]A^øt�fD1��� u��tI�����Ѓ�����H������u,H���BH�8�$f.�H�ZH�j�n���H�����taH�z1�H���\���H��I��H�xH�@uH�xH���
��I�~I�@uI�~H����M�4$�����I�][]A\A]A^�H��t,H��u�H���BH�8�H���BH�8�H���BH�8�q���H���BH�8�b���H�1�BH�8�S���f�UH��AWAVAUATI��L�SH��H�EH�}�H��x���H�E�H�E H��p���L��h���H��`���dH�%(H�E�1�H�E�H9���M��M9���L��H��L9���H���������I�QH��H��H��L9��0H�U�1����H��L9�u�H��x���E1�H)�H��X���H�E�H��H��H���J��H�E�M����H��M��M��H��H%�H���H��P���H��@����fDH�EL)�H�E�Lm�H�U�L�U�I�H�}�L��L�E�����H�E�HE��u�PI��L��L��L�E�H��p���L��L��`���A��L�E�L��M��L��L��L���$��L�U�XZI)���M9�H��h���L��N�,�IF�N�(H��x���M�4K�6L)�H9���L;e�9���H�}����H�E�H�E�H��H+�P���H�E�H9�tH��H��$�H9�u�H��@���%�t	H)�H�L�H�D$L�eH���H�E�H�E�����f.�1�H�U�M���1����<���@K�<H�}��uI��H��u�L��L��L��H��p���L�U�L��H�E�H��`���L�]���H�}�H�E�L�]�L�U�H��1�H��_AXt@��H��H9�u�H��H�E�L��L��jM��M��I�J�<(L�U�H���o���L�U�Y^I)��}���H��X���L�}�t"H��X���H��H���1�f���H��H9�u�M��t	H�}����H�E�dH3%(utH�e�[A\A]A^A_]�@H�u�H�}�L�U�L�E��;��L�eL�U�H�E�L�E�H�E��q���H��X����n����H�
���[H�5��H�=$�������H�
���ZH�5��H�=���[���H�
d��YH�5h�H�=���<���ff.��A�ɉ�A��H��A����pA����E��tOA���������H���t	��@��H��t{��H��H��H9�sQH��H��p+H����H��v�H���BH�5%�H�81��R�H���BH��H��H�5f�H�81��4�H�}�BH�5y�H�81���H�e�B1�H�53�H�81���H�K�BH��H�5.�H�81����H�0�BH�5��H�81����H��BH�5��H�81���H��BH�5��H�81���H���BH�5��H�81����Uf��f(�SH��f/�fT&���f.@��
f(�f.���,�1��*�f/�s���H���Y�H�kf/�s�H��1�H���Bf/��L$H�8���~��L$H�@H�ptC��H��t+fD�Y�f��H,ɉʉ�H���H*��\�H���u�H��[]�@H�p�f�f.p�f(�fW
L��(���H�5��H���BH�81��^�fDH�����1�1��<���H�5����H�5����fDAWAVM��A��AUI��ATI��UL��SH��L��H��x��$�H��$��|$L������L9�w�@H��L9���C���t�D��$�A��E�����D$���HH��$��II���?H���E��$���p��@����$����|$�9H����	H���A����	��$������&�L��$�H�Ł��|$L�I9��|I9�s	I9����D$�t$��uZH��x[]A\A]A^A_�D��$�A��I9������L��H��E���OH���F��$�%��D$1�������M��t���t��D$H��H��L��H�T$LRH�T$hRH��$�RH�T$pRH��$�R��$�H��$�L�L$pL�D$x�8��L$pA�L��$��M�L�$�H��0A��D$A���H�|$XL�H�|$Ht-E1�D�7I����@��ш��HcL$D��H�L9T$HwۋL$@��t���D!�ʉ�D!Ɉ�L$@�M9������LD$P�@�|$�uD�L$E���c�D$��v���L��H��L��1���H��x1�[]A\A]A^A_�fDH��H��L��H�D$LPH�D$hPH��$�PH�D$pPH��$�P��$�H��$�L�L$pL�D$x��M��1�1�L��$�L��$�H��0A�@L�d$M�M�H�T$XH�D$HL�H���41����?@D��)΃�~<E�I��I��I	�D�Hct$DL��H��H��H�H9D$H��L9�w�����I����f�H��$��!�����$������,@������M��A�������L)㋼$�H��I��H��H����H���|$I�ދ�$�H�D$ ��P�|$H9��L��L��L��L�D$0L�L$(L�l$8����L�L$(1�H��L�D$0H�L$8M�H+T$ tA��H��H9�u�|$��6�|$��D�\$E��tuM��tLH��L��M�L-�L��H��I9�vD��2H��H���p��JH9�r�I��H�I�M9�w�D�T$E��t$I�D��I9�sA�U�I��H��A�M��PI9�r�E�����D$����1��|$�1H����H���~���A���z���A�$���F�|$L)�A�UH���?N�����I���8�����D�\$@E��tIL9�vwD��)�~E� ��I���� I��L	�D��I�����D)�H��I��I��I!�H��D�"HcL$DH�H9�vfD�HcL$DH��H�H9�u�M9�tLT$P�5���DAD��f.�L�d$L9�v�@)��[���A���I��H��H	�H���B���L9��9����D$H�������D�D$E��������������	I��I9�sA�<$��t�L)����H���p���A�$�B�!Ѓ�����Z���@�|$t��$���KA�$L)�A�EH���+�������� ����D$� �����$���p�������L��L)��A�|�H�k���H��H��u�L��M��H��L��L��H�L$L�D$���L�D$H�L$1�L��H���c��|$�u���$���s���L��K�.M��t9�H��H9�u�A�E�h���I���A�EI����A�E����J���L9�u�E���%���H��L9��8���C�<4�-���������,���fDL)����H��u
1�A�<$������b���A�������A�$���[��L)�fA�E�D$H��������������������$��te1�H����H���A���A���=���A�$H�؅҉�ɉ�D�L)�A�UH����H�������H	�H����%���������Q���H���V������@���$���w�����0���I9���L��L��L������|$��������$�����H��A��G���H��L��L��L�D$(L�l$0A����H�L$0L�D$(�
���A���N���A�$H�؉�f���҉�D�L)�fA�UH���&���H
��H��������6���fD��$�������H��L��H�L$0L�D$(��L�D$(H�L$0�������E�������H�D$ A�H��H9��t���E1�A�<�A���c����A�$L)�H��A�EH��������H����������H��tI�T��H��ȉA�H9�u�D$���y���M���$������A���;���A�$��f�����A�$����A�|$����A�<$�����(���M��I�LH��I)��k���ff.�f�AWAVM��AUM��ATI��USH��H�|$�>��t
@��_��M��@��L��1�E1�M�G��t>��_��L�
��B@��A���x#9�}H��L��E1�A�8M��M�G@�Dž�u�1���tQH�D$H��I9�vA�x�_u��I��A�?@��t,�����u�A�?tH�|$H�5�����E��t#��u�L)�I�.I�]H��[]A\A]A^A_�fDA�_�l���ff.�f�ATUSH��PL�O dH�%(H�D$H1�H���6H��tuH���1�M��tEHc{HcKL�U�DH��1�H��H��A�1�A�9HcKH��H��H��H��u�LccLc H�D$HdH3%(��H��P[]A\�f�H�6M��u�H��t�LcKH�|$?A�@L����H��H��1�H��I��I��H��A��WI9�v�H��������A�@M)�L�H9�wu1�H�q��H�CH�xH� tH�x�H�{ ��tH�GH�C �-H�{ L��H�������.�����6�L�����H�
���H�5�H�=����H���BH�5
�H�81��}��ff.�f���SH���uiH�����tMH��ƒ���
u@H�H��H��
I�Ѓ�I��
A��A8�u#H�с�@t5H������@tH����H9�tUH��[��H;Vt1�H��[�H�W��f.�H�vH��H��t+H�������HD��DH��H����fDH���f���SH�7H����@t-H��
H����
�H�[H��
��H1�H�D�f�H�GH�H�4���ff.�H������uH��u��f.�1��ff.�f�H�7��@tH��H����H��t�H�wH�H��u��ff.�f�AWI��I��M��AVL�4�L��AUN�,7ATI��UH��SH��H��$�����M���$H���I����؃�p��@tU��tPI���)I��uTA����A�ȉځ��������^1҅���؃��w@I���qI���V�؃�����A���RM������%��u��ub�H��H��[]A\A]A^A_Ë�$�����J�T5��+�$��2�����	�t�� �����+�$���	�M����������H���Z���M���r���L�$H��L��L��H�D$��PH�D$8PH�D$PPH�D$@PH�D$XPL�D$HL�L$@�(��L�T$0L�\$`H��H�L$hL�|$X1�1�H�T$PM�L�L�T$HH��0O�;L�4$I��L�l$I��M��to�E1ɉ��*f��H�WH�� ��Hct$I��I�M9�t"H��A�H��H	ЍQ��͉�H����fD�|$�΅�uM9�tkM�H��O�;M��u�H���|$��t�A�A��D�Ƀ�A"D�����I��L	���~��� ������H�L��H���B�H�� H9�u��)�M9�u�L�4$L�l$H��uhI9��9����f�H���B�L9�r������t?�����M�����L��H���n���������L��H���+���(���fD�H���M�������B�D5���������ʉ�A��������ƺ��	���
�����������A�����؃����1����؃�p������M��H��L��A��L�$A��L����L��J�|=L)����HE��L�$��C�|:���1�������A���N�ك���t�L�ډ�L��H��H����PL�$I�׉L$H������L�$�L$�J�D5�H9�sH��2�8H��H���z��pH9�r�����tEM��t@I��I��E1�N�L�L��L��M9�s�0�:H��H���x��rH9�r�I��M�M�M9�uσ�����%�����������A�M����������f.���҃����E����A���h���A��ف���tωƺ��	�t�
����������A�f������A���������������҃���둾���L��H�������������I������L9�� ���H��H��ʉP�I9�w���������L��H���i�����������������������������H�
����H�5�H�=1������1��Y�E���������ff.�L9�vx1���tb��E1�1�M��tYf�F��L��L�tF��L�B��H�� I��M9�u�L9�v)fDH��tB��H�B��I��H�� L9�u��f�1��H�������PH�
����H�5O�H�=v��#��AWJ�	AVAUATUSH��H9�wuH��M��M��1�H��tf���H��H9�u�H��t8I��I��H��I)��A�H��H��M��L��H��I��H�����L9�u�H��[]A\A]A^A_�H�
����H�5��H�=���u��DH�	AVAUATUSH9��1�H��t@��H��H9�u�H����I��I����I��L�,�1���I��I9���D��H��M��t�L�ދD�I��M�L��H�� H�D�H�� H9�v9E��I��F��C�4�M��M��L�H�C��H�� I�H��IE�I��L9�u�H��t�A�t��H�A�D��H�� �l���AD�I��I9��g���f�J���H��tH��J�4�HЉH�� tL��[]A\A]A^�H�
r��H�5N�H�=}��"��f�PXH�
���H�5+�H�=�H�����ff.�AVAUATUSH�I�L�6L�/L�H�,M�L9��eH��u��H����A�l����t�H��1��fDI��H��H��tE�#E��t�H��u�1H��t(E�d��E��t��fDI��H��H��tE�"E��t�H��tE1�f�C�D�I��L9�u�M�l�I)�H9�sH��H��H��L��M��I��H��v)L�/1�L�6L�H�)M�I�[]A\A]A^�@1��_����H����A������P���!�t:H��u
A�:�I��M�йL��L��L���y���[�]A\A]A^�������H�<�1҃�M�D=)�1�H��t#DA�4�H��H	�A�D�H��H�� H9�u��I��A�0I�T=I)�t�1����H��L9�u��r���1�H�������1�M���\���DA�D�H��L9�u��@���H�,�L��L��H��I���I)�����1�DA�D�H��I9�u�����A�EI����1�f�A�D�H��L9�u������D���H�
}�� 	H�5q�H�=���E��D��w2I�� H�B�H��t$fD��I	�H�� I��D��H��I��H���u��PH�
Q���H�5�H�=������f�I�@H9�uJ��1�E1�E1�DB�4�H��I�D��H)�B�4�H�tB��H�� I��I�� M9�w�B��L)�H��PH�
����H�5��H�=���m��ff.�f���AWAVAUATUSH��(L�?L�gL�oH�_H�|$J��I�t�H�t$L��H)�H��H��H�D$�@H��E�t�I9���H�D$H�@ H����H�|$A�D���9���A�T��H�� H�1�H��A�ƅ�t�H�D$I�wM��L��D��H�,�H������H��t�DH��L��H��M��jM��L��H��A�����ZY��u�H��E�t�I9��`���H��(1�[]A\A]A^A_�DA������}���DH�D$H�X��ff.�f�PXH�
���IH�5+�H�=t�H�����ff.�SH����D9�snA�@�D��u0#�ø����E��tE���A��D)�A�ȉ��p�����[�@��E��H�J����H�� H�1�I���H��H��H���u�Ӊ�[�H�
���	
H�5��H�=���T��H�
���
H�5a�H�=���5��DATUSH��0H9��0L�$�B�D"����Y�l��9��.D�H�BE1�E��t��f.�M��H��H�@D�@�M�JN��E��t�I��J�L9���L)�L)�H�\$H�$H�T$H�D$ H�t$H��'w	H��'vDH��H�-���f�H��H��H�=���H��H�D$ 貿��H�D$ H��t�H��0[]A\�fDH������H��0[]A\��H)�L��H��H�������H��0[]A\�f�H��A�E1��6���H�
���*
H�5��H�=x�����H�
���,
H�5��H�=w����H�
z��+
H�5��H�=B����f�J�	H��H9�wQH��u=I��u7A��H��vYH��H�1�H��tD�D�H��H9�u�H���f�����H�����H�
���H�5?�H�=^����H�
����H�5 �H�=T�����@UA��H���@S1�H����H�����jH��H��j@E1�A�����H��[]�ff.�@UH��AWI��AVM��AUI��ATSH��hH�]L�]H�u�H�M�dH�%(H�E�1�H�E�L9�r��A�D��A9D����M��tI�FH)�H;E���M����H;]�v���	I�FJ��H�E�H��E�d�H�E�E���E��A���M���	I�VH9U���H��L��L��L�]��i�L�]�H�u�H��C��L��L���[���M��M��tBH�U�L��L��L�M��0�L�M�H�U�Lm�H)�t1�DA�D�H��H9�u�M��tBL�u�H�u�L��M��L�I)�I��L���A�H]�O�'L)�t1�f�A��H��H9�u�H�}���H�E�dH3%(�4H�e�[A\A]A^A_]�f�A� M��I�~��H9}�@��	��tb��t^H�4;H��H����9H�E�H�E�H��H�E�H��H��H���H���H)�H9��H��H��$���fDM������H�qH�����H�E�H�E�H�AH��H�E�H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�L$L��I�����H�qH�����H�E�H�E�H�AH��H�E�H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�L$I����%��H�T$H���H�E�L��L��M��M�	A�� ��1�1�D��M��t$fDA�<�H��H	�A�4�H��H�� I9�u�A��A�21�1�D��H��t A�<�H��H	���H��H�� H9�u�A��H�u�L��H��L�M��x���M��L�M��U���L��E1�D��H��L��L�M��C���L�M�����f.�H�}�����n���f�H�}�L��x���L�E�H�M���L��x���L�E�H��H�M�����H�U�H����?H�E�H�E�H�BH��H�E�H��H%�H)�H���H��H9���H��H��$���f.�H�}�L��x���L�E�H�M��(�L��x���L�E�H�M�I��L��H��L��L�]��T��L�]�H�u�H��B��H��L��H�E��B���M��L�M��������H�}�L��x���L�E�H�M���L��H�M�L�E�I��L��x�������H)�H�L�������t	H)�H�L�H�T$H�������H�
���U
H�5�H�=������f�H�u�H�}�L��x���L�E�H�M��4�H�M�L�E�H��L��x�������H��H�
���S
H�5��H�=������d�H�
m��T
H�5��H�=A��e��DAWM��AVI��AUI��ATUH��SL��H��8H�D$pH�D$H�D$xH�D$H��EwQM9�u$I9�uH��8L��L��H��[]A\A]A^A_��I��M��L��L��H��8H��[]A\A]A^A_�N���fDI��H�t$ I��L����M��L��I��L�L�D$A�D��D$,��L�D$H�t$ L�E�\�E��u>L��H�t$ L�D$�l�L�D$H�t$ I�G�D�E���8����|$,���,����D�T$,E���5I��H�t$ I��L����I��L��I��L�L�D$A���D$,��L�D$H�t$ L�E��E��tJ�L$,����M9�vyH�D$I��M��L��L��H��H�D$xH�D$H�D$pH��8[]A\A]A^A_�L��H�t$ L�D$��L�D$H�t$ I�C����t�D$,��u�M��M��H��L���|���H��I��M��L��H��L��H��P�t$ �t$ ����H��X[]A\A]A^A_�L��H�t$ L�D$��L�D$H�t$ I�C�<��!����L��H�t$ L�D$���L�D$H�t$ I�C�|���������ff.�f���H��8H�|$(H�|$(H�t$ H�t$ H�T$H�T$H�L$H�L$L�D$L�D$L�$I������tH��8ÐH�L$L�$L�D$L�T$H�t$ H�|$(H���vbI���������I�QH��I��H��H9�v�t$HL��t$H�MXZH��8�fDH��H�E���L��P�t$X�t$X���H�� H��8��t$HL��t$H���Y^�[����UH��AWAVAUATSH��H�]H����L��H��`���L���L�EH��0���H�]�dH�%(H�]�1�H9�H�E���L9���!ˆ����L9���J�	H;�0�����I���������I�QH��I��H��H�I��H�E�H9��AH�}�L�rH��K�vL�oL�<�H�K�DmH�wM�H��(���M9���O�RI��J�4�H����H�E�H�E�H��H��H�E�H��H���H)�H���H��H9�tH��H��$�H9�u�%�t	H)�H�L�H�D$H���H�E�fDH�u�H�BM)�H��L��p���H�<J�4�L�<H��h���I�<H�u�H�����H�H������H�H�H�����H��H�� ���H�FH�H��X���H�H��P���H�H�H����H��H���H�H��H�E�J��H�4H�u�H�H�H�u�H�u�H��x���H��`���H)�H�H��@���H�����HЀ����H��8����H���I)�L�����H�H�H�����H�����H��H�}�L��L��L��@���L��8���jH��`����W��H�U�M��L��L�����H��h���L���$���A[Z����H��H�}�M��L��jL�����L��H�����L��L��L��H��h���L��@����$L��8�������XZDž���Dž���1�1��DH��A��H�H	�H�QA��H�� I9�u�D�����E����H��L��L��M��jL��`���L��L���i��^_������������L��������������������H��h���H������H�E�H�������p���H�u�M��L��L�����x���H��`���H�� �������^_��p���H�U���x���M��L��L�����H��X���H��(�������H��X���H�}�AXAYD�T8E������p���H��h���L��M��H��(�����x���L������H��P������XH�u�H��P���Z�L0������p���L��M��L��L������x���L�����H��(���L���5���H�}�A^XA�D?������p���H�u�L�������x���L�����H��@���H��8���H��H������AZ�����A[9�����	H��H�}�L��M��jL��X���L��E1�H�������^_H�}�A�1�L��H���q������9�����oH��H�}�M��L��jL��P���L��H��X����I��A[A_Džp���H�u�H�U�1�H��@H�ʋ
H	�H��H��H�J�H�� H9�u㋵���9������H��H�}�L�M�L��jL�� ���L��E1�H��P�������_AXE9��#H��H�}�H�U�M��jL��L��I�����D��x���XZH�u�L�u�1�I�L���f�H�ʋ
H	�H��H��H�J�H�� H9�u�L�E��L��H�}���x���H��H������:�A�H�� tH�}�L���E���Džx���D9�p����.H��H�}�L�E�M��jL��L��H���O���AYAZ����A����H��H�}�L�M�L��jL��H���L��H�����Y^��x���9�p����2H��H�}�L�E�M��jL��L��H�����AZA[L�u�H�U�H�� ���L�����Lu�1�H�}�H�U�t�A��H��H9�u�H�E�H��H���I�H��H������H�M�D��p���I��M)�H�L��H���H��L)�H��H�E�E���-H��H�}�L�E�L��jL��M��H��L�]��ʿ��L�]�_AXM)�E����H��L�E�L��L��jL��M��L��L�]�蕿��L�]�XZD��x���L��H�}�L)�H}�E���QH��L�E�M��H��jH���Y���A[A\H�}�H��H�U�D�T�E��t�fD�|��H������H��u�L����H�u�H����H�����1�H��0���H��0���tf�A��H��H9�u�H�}��lH�E�dH3%(��H�e�[A\A]A^A_]�f�H��8���H�����H��@���H�����H�����H��������H��h���L��聸��H��H�}�M��jL�����L��H���B���M��L��L��L��h���H��@����$H��8����x���AYAZDž�����������9���L��L������Dž���Dž��������H��L��L��M��jL��`���L��L������ZY���>���L��L��躷�������Dž����)���H��L�����L�����L��jH���L��H������S���M��L��L��L�����H������$H������艺��AZA[���eH��M��L��L��H�����L�����jH�����L�����L��L�����H������H�����L���$�ʼ��Y^Dž���Dž���1�1�H������
�H�ы�H�H	�H�Q��H�� I9�u䋽������NH��M��L��L��H�����L���jH��豹��A[Z���$���H�����L���W���Dž��������H��L�E�M��H��jH���h���AXAY����H��L�E�L��L��jM��L��L��L�]��6���A_L�]�X�;���f.�H��H�}�L�E�L��jL��M��H��L�]����YL�]�^����f�H����H)�0���H��L�$�g���fDH��H�}�L�E�M��jL��L��H��豸��A^Z������H�}�L���Z�����p������fDH��H�}�L�M�L��jL��H���L��H���e���_AX���F���H�}�L��E1������2���fDH��H�}�L�E�M��jL��L��H�����A[A^������������fDH��H�}�H�U�L��jL��M��I�����Y^D��x���������H�}�L��脴��D������x������H��L�M�H�}�L��jL�� ���L��A�H��P���胷��AYAZ���K���H�}�L��E1��(����7���H��H�}�L��M��jH��X���L��L��P����:���ZYDžp����������H�}�L���ڳ��Džp����p���H��H�}�M��L��jL��X���L��A�H�����ܶ��AXAY������H�}�L��E1�聳������@H�}�������f.�H�}�L��A���P����H���H��L��L��M��H�����L���jH������Y^���@H�}�L�EL�M�H�M�H�U�L�U��+��L�EL�M�H�M�H�U�H�E�L�U��.�fDH������L���ɲ��H��M��L��H�����L�����jH��臸��L������M��H�����H�����H�����L���$蹵��AXAYDž���������������H�����L���N���Dž���Dž����a���萴��H�
q��oH�5��H�=޲�ѹ��H�
R��lH�5ްH�=��貹��H�
3��kH�5��H�=�蓹��H�
��*H�5��H�=���t���H�
���0H�5��H�=|��U���H�
ָ�6H�5b�H�=n��6���fDH��I��L��L��L9�w'H��Ev9H��I��I��H��jL��j�0�H���I��Ew�I��M���W��M9�uL9�uH��L���[��I��I��H��L���'��AUATUSH��(H�H�|$��@��H����I��H�$�BL�$�L��H�8谲��H�T$H��H�@tGH��H�}H�E@uH�}H��E3L��L������H�D$H�D$H�D$H��(H��[]A\A]�H�R�f�M��I��L��L��������DL�oL���a���ff.��AUATUSH��(H�|$H�4$H9��H���@��H�oH�H���@��H��H����I��H��
H��
H�H��H��H� �BH��1�H�8H�ރ�謱��H�T$I��H�@��H��L�$I�@t~I��I�}I�E@uI�}M��H��H����H�D$H�D$H�D$H��H�D$H�$H��(L��[]A\A]�f�H��H�H����H���@�2���L�fL���3���M�@�f�H�R�d�������H��(I��[]L��A\A]�f.���H��8H�|$(H�|$(H�t$ H�t$ H�T$H�T$H�L$H�L$L�D$L�D$L�$I���Z����u-�t$H�t$HL�L$L�D$H�L$ H�T$(H�t$0H�|$8��XZH��8�@UH��AWAVAUATSH��H�EH�}�H��x���H�U�H�M�L�E�H�E�dH�%(H�E�1�J�	H�E�H9��4M��L9M��H�E�H�L9���H�}�H�u�H9u�A��L9���A!�D��p���A����Dž8���Dž4���L��H��H9]���M��I��H;]�}J�4�H����(H�E�H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�L�l$L�}I���L�m�DH�E�H�}�H��H��L�4�jH�U�H��L�H��P���J�7N�2N�,0H�E�K�D5L��@���H��X���H�E�H)�I��H��H����ݯ��Y^Džt������9H�EH)؀�p���H��`���H�E�J�0H��h������uH�U�I��H��H�}�PL��I���r���XZH�}�L���4�����������t���H�u�H�}�L�����L�E�H�U�L����`���H�}�I��H���h���� ���L�U�L�E�I��H��H���$L��L��譱��L�E�I��H��L��H��L��$蒱��L�E�I��H�ى�p���H�E�H���$H��H���i���H�}�L��L�<�����XH��x���I��Z��`���L��L��P�����h���L)�H��H���I��H��@����i���H�}�I��H��H��M���$H�����YH��x���I��^I9�r
H�[H)�I��H��H��L��H��PL��X���L���°��L�E�I��L��L��L��L���$A��蠰��D��<���AYAZE��t!M��tA�Eu1��A�D�u	H��I9�up���+�t���A���t6H��H�[L�E�D�u�H��x���jA�H��X���H)�H��H���$���Y^��8��������4�������H�}���H�E�dH3%(�H�e�[A\A]A^A_]�f�I��L9��SDž8���H��H�}�Dž4����$���f�H��H�U�H�}�I��jL��P���H��H���ݬ��AZA[���q��`���L�E�I��H��H�}���h���L��H�U����D��t���_AXE���2�������H�}�H���D���Džt������DH�}��g������f�L�}�H��x���L�u�L�m�C��H�M�H��L)�K�|�M������H�}�H��L��L)�M�D$B��K�|��������DH��H�[E1�E1�H��x���H��X���jH)�H��H���ܫ��_AX�R���@Dž8���Dž4��������H�E�H��x���L�E�H�M�B��H�E�L)�J�<��I������@H�}��g��L�}H�E��*���f.�H�}�H��������t����w����c���H�
|���H�5ЦH�=�褯��H�
]���H�5��H�=ަ腯��H�
>���H�5��H�=���f���H�
���H�5s�H�=V��G������AUATUSH��(H�H�|$H�4$��@��H�$H��H��H�����@��I��I��A��H��
H��
J�\%H��H��H�~�BH��1�H�8H�ރ��
���L�$I��I�@��I��H�T$H�@tTH��I�}I�E@uI�}M��H��H���`��H�D$H�D$H�D$H��H�D$H�$H��(L��[]A\A]��H�R�f.�H�$H�oH���@�)���L�a�+���M�@�e������ATUSH�� H�H�|$��@��H����H���BL�$�L��H�8����H�T$H��H�@t@H��H�}H�E@uH�}H��L���/��H�D$H�D$H�D$H�� H��[]A\�@H�R�f.�H�_�{������AUATUSH��(H�H�|$H�4$��@��H�$H��H��H�����@��I��I��A��H��
H��
J�\%H��H��H���BH��1�H�8H�ރ��*���L�$I��I�@��I��H�T$H�@tdH��I�}I�E@uI�}H��M��H��H��H���Pjj� ���H�D$(H�D$8H�D$(H�D$ H�D$8H�D$ H��HL��[]A\A]�@H�R�f.�H�$H�oH���@����L�a����M�@�U������AUATUSH��(H�H�|$H�4$��@�-H�$H��H��H�����@�'I��I��A��H��
H��
J�\%H��H��H�^�BH��1�H�8H�ރ����I��L9���I����L�$I�@ugH�T$M�@H�@tgH��I�}I�E@uI�}jM��H��H��j�=���H�D$H�D$(H�D$H�D$H�D$(H�D$H��8L��[]A\A]ÐH�T$I��H�@u�H�R��L��H��H9��]���H��BH�5C�H�81�艖��f�H�$H�oH���@����L�a������AUATUSH��(H�H�|$H�4$��@�H�$H��H��H�����@�I��I��A��H��
H��
J�\%H��H��H��BH��1�H�8H�ރ��z���I��L9���I����H���������I�T$H��H��H��H9���L�$I�@umH�T$M�@H�@tmH��I�}I�E@uI�}jM��H��H��j����H�D$H�D$(H�D$H�D$H�D$(H�D$H��8L��[]A\A]��H�T$I��H�@u�H�R�H�$H�oH���@���L�a���H�L�BH�5ͤH�81����ff.���H���@t$H��H�¸��u�f��w��u!H��u)�f�H�W�H��t�H�O�	��t1��DH��t��u���������ff.����SH��H��������tH�H��c����ډ�[�@��uZH�����tQH��ȃ���
uD��@��H�GH��t�H�w�6��uH��t�H��������u��� �����t��[���1���H�߾>�g���H�����uӺH��1���<�F���1�[H�������ډ��DH��H�����9�����������h���H��H���u���D��UH��SH��H��H�7��@t%H����H��H����H	�H�3H��[]�H��wbH��H����H�H��H	�H��@H�3H��t�H��H�K����������l���H�3H��%@�.�H�tiH�H�����H�3H�CH��%@H��t4�L�����H�������oCH�S H�PH�#����H�CH�kH��[]�D�H���˹��H�3H�CH��%@�f.�H�I��H�S��H�t�H�t�H�sH��H)��I)Ƀ��������1҉у�M�	L�9�r�������C����S�‹D��D�����SH�7H����@tQH����H��H������H���@tH��
H�S���[�f�H�CH�P�H�CH���[��H�GH�p�fDH��H�7I����@tH��H���讝����uH���DH�wH�蓝����t�L��H���C���H���u	�� H��f����H���AVAUATUSH��H�� H�|$����H���EH�D$H���@��H��H����H�tH�D$H�o�BH��
���$H�8����$H�@H�puH�p1�H��tf���H��H9�u�H�T$L�JH�@uL�JL�D$L��L�L������1�1�M��t#�A�<�H��H	�A��H��H�� I9�u�A�H�l$H�l$H�T$H�� []A\A]A^�fDH�|$H�7H��xs��@��H�GH9�v^H�l$H�t$�$H������$A��H�D$H�@L�`uL�`H�T$H9���E��u@H�� �[]A\A]A^���� u��@uPH�wH�H��t��޽����u�H������;���fDH�@�o����H��H�����F���f�H��H�����H���BH)ډ$I��1�H�8L���C����$H�@H�xuH�xE��I�4�L��H�$A��E��E��A�����H�$D��H������H�$���H���BH�5ޚH�81��N����y��f�H��x#u	H���D��H��1���H���M���DH�މ�H����H���/���ff.�@H��H�?������
t����@��H�pH�PH��u�f.�H�����L����t�H����D�F�Mc�E��I��I��J�
N�L
�1�M)�@D�H�� H��L�L9�u�� uEH�@H9�wEH��H�D�DH��H�PH�����a���D��f.�H��������?H9�v�H��H��H�D$�P���H�D$H���fD��AWAVAUATUSH��HH�|$H�t$@��u>@��uH�����t
�����
t%H�|$�|����H��H[]A\A]A^A_��H�l$H�t$(H���Σ��H�\$A����5L�d$H�t$0L��諣��H�\$(L�t$0A��L9��UL�D$L�l$I�@�{I��I�E@�{I��E��H��BL�D$LE�1�D�$H�8L���t���D�$L�D$H�@H�puH�pH����1��A��AL���H��H9�u�I9�~fDA�T�D	���H��I9�u�1�E	�H��H�$@������H�l$8H�T$L�d$8H�$H�T$������H����������H���K���H��H[]A\A]A^A_�@H�T$H�L�d$(H�����H�T$0H9��p���M���}H��H�*H��?I���@�|L�jH�jH���HL�H���B1�H�8H���K���H�HH�@uH�HM����H�SH���w�DH�sH���:A�t�	�H�� �4�H��I9�u�E���
L��I9�|�8��H��H�� H9�}(H�sH��w�E���WD������H��H9�|�1�E	�H��H�$@������H�T$0H�T$8H�$H�T$0�������M���H��L�l$L�D$L�t$(H�\$0L��I��D��L�D$E��A��L�l$I�@�����M�@I�E@�����M�m����H�\E��HD������H��L�j���|����H9������*���f�E��u�A�t��4�H��I9��E��u�H9�����H��H����H��H9�u����@1��N���1�E����������E��������I9�~��ff.�@��AWAVAUATUSH��HH�|$H�t$@��u>@��uH�����t
�����
t%H�|$�^����H��H[]A\A]A^A_��L�d$H�t$(L��讟��H�\$A����-L�l$H�t$0L��苟��H�\$(L�|$0A��L9��5L�D$H�l$I�@�[I��H�E@�[H��H�фB1�L��D�$L�D$H�8�[���D�$L�D$H�@H�puH�pH���81�fDA��3L���H��H9�u�L9�}��T�D1��H��L9�u�1�E9�H��H�$@���h���L�d$8H�T$L�l$8H�$H�T$�����H����������H���4���H��H[]A\A]A^A_�DH�D$H�H�l$(H��H�D$0L� H��?I��A��@�dI��L�xA��I���LL�H���B1�H�8L���G���H�HH�@uH�H1�H��~/�A�4�1�H�� �4�H��H9�u�L9�}hH��f.�D��1�H�� �4�H��I9��H9�~AfDA�4�D1�4�H��H9�u�I9�~#D��H��J��D1�f.��2H��H9�u�1�E9�H��H�$@������H�T$0H�T$8H�$H�T$0�������j���H��H�l$L�D$L�|$(H�\$0L��I��D��L�D$E��A��H�l$I�@�����M�@H�E@�����H�m����L�xL�`���1�����f�SL�H��L�Ɂ�@��L��L�GH��H�Ѓ��nH���fDE��E��uH��H��H��u�H9��UH���,H�CL�Cf�H����A�L��H�¾ H����t	�Ƀ�Hc�H)��&�H��5��H��6�W1�1�H��H9��V���I��I�4�f�f���Y�f��H���H*��X�H9�u�H��A��H��tH����s@A�����A��D���!�@��@������t�D!����u�X���Y‰�f���H*��X�H��t���P���L�DA�� ufW��[�DL��L�CH��H�Ѓ�����f.�H������L�L�Ɂ�@H��u����f�H�GL�GH���L������f.�H��1�E��E���/���H����!���H�J�H��H�����f��4�����ff.�@��AWAVAUATUSH��8H�H�t$H��I��H�|$A��@��H��H����L�d$I�$H�ǁ�@��H��H����L�~M��uL�~H����I��H��u�KfDH���;E�l��E��t�H��t�E�\��E��uVH��u��.���H��8[]A\A]A^A_��I�l$�|���fDH�_�K����M�d$�v���fDH9�r�uA�|��A9|��r�H��
H��
L�-�~BH�{H��H��H�<$H�4$H��I�}1ʃ��b���I��H�@�"H�@H�D$H�D$I�}H��H�H��
���.���I��H�PH�@uH�PUI��H��M��ATH�t$H�|$�/��I�AYAZ��@��H��I�V��H��H��u�-f.�D��E��uH��H��H��u�H9���I�M��@��H��I�U��H��H��u� �<���uH��H��H��u�H9�r{H�D$H�D$(H�D$H�D$H�D$(L��L��H�D$肭��H��8[]A\A]A^A_�H�@H�D$����f�I�NI�V�/���I�MI�U�n���L���Ȳ���F���L��踲���x����n}��ff.�AWAVAUATUSH��(��@��H�ՍW�L�5��BLc�Hc�H��H��H�L�I��H��t7H��tH��H��H�H���BL�H��H�UH��([]A\A]A^A_��������"�#H�����L�,�H������D$H�}|BH�8����I��H�@I�@tML�(Lcl$L�l$I��L���
��I��H�T$L��I�H���BM�J��O�<�����K���/���fDI�G�f�H�T$������H�����H�I���@t@H��H�P��H��H��u� �<���uH��H��H��u�H9�rH�d$�Y����H�HH�P�fDL�������ۉ�1���H�=���t���迻��ff.�@AWAVAUATUSH��H�|$H�L$0L�L$(H���'I��H��I��L���������E����H�L$A�@��D$<D�I��@�A�q�Hc\$<H�
��BLc�H�L$ L��H��L�H�H��H�
��BH�L$H����L��L�*H��L�H�H�\$H��H�D$@A��@�L�jL�zD�T$<H�D$xH�\$@H�D$HE����I��L�t$H�l$ �@I��L�zA��E����E��M9�r!�uH�|$L��L��L���"������ZH�D$E�r�Ic�D�hA�u�Lc�L��H��L�H�H�T�H����L��L�*H��J�8H�D$L�N��A��@�f���L�jL�zE���j���L�t$L��M9�r0A���L��L��L��L��D�T$�~���D�T$�����L�|$I� H��t"H�D$@�0H�H)�H��H���7���I_ H�L$(H�|$L��L���;���H�Ĉ[]A\A]A^A_�f�H�D$H�x H��t׋HA��@���q�Mc�L�
��BHc�L���BL�L$ H��L�\$H��H�J� I�<�tOH�ؾ0H��H�H�D$L�H��H��茑��H�D$HX �c���fDI��L�zA������E�����"��H�G���L�4�H�R�Hc,�H�GxBH�8�߉��I��H�@I�E@��L�0H��BH�D$L������H��H�L$ L��H��H�L�L�,�H�L$H�,��̎��H�D$H�x ����fD�|$<������"�OH�����J�,�H���B���D$H��wBH�8�0���I��H�@I�E@�-H�(HcD$H�D$H�'�BH�D$L��L������H��H�|$H�L$L�H�D$ H�H�<�L��L�,�����H�D$ H���U���E������"��H����N�,�H��B���D$ H��vBH�8�{���H��H�@H�@uH�BL�(Lcl$ H��H�T$ �r���L��H�T$ H�L$H��L�H��H�H�T�L�,�H�D$ �e���H�D$ H�T����fDA�R�Lc�J�<H�|�H����L��H��L�I�H�D$N�,�����L�H��A��@tLI��H�xA��L��M��u�)fDD��E��uH��H��H��u�L9��mM��&���DL�PH�x�fDL�t$L��D9T$<t9H�D$H�x H��t+H�l$@�0D�T$H)�H�H���v���H�D$D�T$Hh J�,�I�D$E�L/�E���-E��A����H��L��L��L��C��D�T$H�D$�l���H�D$D�T$M�.L)�H��u�i�H���^A�L����t�I9��Ld$0H�|$(E��H��M��L��D�T$M)�L�H�|$L��H)��b���D�T$A�T.���t���C�D�����;I��u�L�L$(H�|$E��L��L��L�������J���D���hL�\$P��"��H�C���N�,�H�N�B���D$ H�?tBH�8�ׅ��L�\$PH��H�@H�@��L�(Lcl$ H��L�\$PH�T$ �Ľ��L��H�T$ L�\$PH��H�L$L�H��L�H�T�L�,�H�D$ 貊��H�D$ L�\$PH�|��h���fDLd$0H�D$(E��1�M��H�|$L��D�T$M)�L�L������M��D�T$����������M)������H�L$0L��I�tK�L�H9��E1�1�D��M��t�C�<�H��H	�B�4�I��H�� M9�u�A��O�\�E1�1�D��DC�<�H��H	�C�4�I��H�� M9�u�A�3L��H�ƉL$ L��D�T$<H�D$���H�D$E1�L��D�L$ M�.L��L��L)�L�\$D��H�D$跰��D�T$<L�\$H�D$�X���H��H�T$ ���H�T$ �|���f�H�B�9���I�E�$���I�E����DL�Ld$0L9��]H�
���HH�5��H�=ł�p���A�R�Hc�H�<H�|�H����L��L�\$ H��L�H�H�L$L�,����L�\$ L�H��A��@��I��H�xA��L��M��u�+�D��E��uH��H��H��u�L9���M��_���A�P���@�A
Lc�L�\$ J�<0I�<�H���
H��H��H�I�H�D$J�,�����H�I���@��H��H�P��H��H��u�*�D��E��uH��H��H��u�H9��7H�����A�P���@��	Hc�H�L$ H�H�<�H���L��H��L�H�H�D$H�,��L��H�8I���@tjH��H�P��H��H��u�,f�D��E��uH��H��H��u�H9���H�D-H�D$����L�PH�x����H�HH�P����H�xH�P뗅��~L�\$XH�L$P��"��H�؇��N�,�H��B���D$ H��oBH�8�l���H�L$PL�\$XH��H�@H�@uH�BL�(Lcl$ H��L�\$XH�L$PH�T$ �O���L��H�L$PH�T$ H��L�H��H�H�L$H�T�L�,�H�D$ �=���H�D$ L�\$XH�L$PH�|��N������O��"��H����L�,�H��Hc,�H�oBH�8褀��I��H�@I�@uI�GL�(H���BH�D$I��L��薸��I��H�D$ L��H�L$I�M�N�<�J�,�蒅��H�D$ J�<��V������G��"�H�l���N�,�H�w�B���D$H�hnBH�8����H��H�@H�@uH�BL�(HcD$H�D$H���BH�D$M��H��H�T$@���I��H�T$@H�|$H�L$M�H�D$ I�J�<�H��J���Մ��H�D$ J�<��0���M���:����Q���H�\$@��H��L�\$PH�T$ �-���L�\$PH�T$ �1���L���������L���	����G���A�R�Hc�H�H�|$ H�|�H����L��H�L$PH�L$H��L�\$XL�HD$ L�,����H�L$PL�\$XH��H���@��H��L�R��H��H��H��u�)fDE��E��uH��H��H��u�H9���M��G���A�P���@��Hc�H�|$ H�H�<�H����H��H��H�H�H�D$H�,��\��I��H���@�H��I�O��H��H��H��u�(DD��E��uH��H��H��u�H9��wH��t���A�P���@�L��Hc�H��H�L$L�H�H�L$ H�<�H��BH�D$H����L��L�l$H��L�I�H�D$N�,����H��H���@teH��L�B��H��H��H��u�$�E��E��uH��H��H��u�H9���K�D-H�D$�k���H�zL�R�i���I�WI�O���H�zL�B럅�����"��H�B���N��H�M�B��L�D$@�D$H�9kBH�8��|��L�D$@I��H�@I�E@uI�EL�HcD$H�D$xL���´��L��H�T$xH�L$ H��H�=��BL�HD$H�|$H��L��L�,�H�D$@訁��H�L$ H�D$@H�<�������HL�\$hH�L$`��"�&H�s���N��H�~�B��L�T$X�D$PH�jjBH�8�|��L�T$XH�L$`I��L�\$hH�@I�E@uI�EL�HcD$PH�D$xL��L�\$`H�L$X�߳��L��H�L$L��H�T$xH��L�HD$ H��L�l�H�D$P�Ѐ��H�D$PL�\$`H�L$XH�|��a���������"�RH�����H��H���Lc,�H��iBH�L$H�8�2{��H�L$I��H�@I�@uI�GH�L�l$xI��L���&���I��H�D$ L��I�H�
�BI�H�L$N�<�H�D$xJ������H�D$ J�<��a���H��L�\$XH�L$PH�T$ 聞��L�\$XH�L$PH�T$ ����H��H�T$�`���H�T$�9���L���N����|�����H�T$xA�p���H���q��I��H���@tGH��I�W��H��t(H���D��E��uH��H��H��u�H9��9H�d$x����诨��I�GI�W�H�T$HD��A�r�L�\$XH�L$P��H������H�L$PL�\$XI��H���@��H��I�}��H��t(H���D��E��uH��H��H��u�H9���H�d$x���D��H�T$xA�p���H���~��I��H���@tIH��I�}��H��t"H���
����uH��H��H��u�H9�r!H�d$x�}���I�EI�}�\���I�EI�}�L���؜����L��L�\$XH�L$P�Ĝ��L�\$XH�L$P�T���L��譜�����D��H�=>z1��q����H�=.z1��q��D�‰�H�=z1���p����D��H�=z1���p��H�
J|�ZH�5^uH�=�w�2~���
���ff.�f�UH��AWAVAUATSH��H�}�L���l���dH�%(H�E�1�H��A��@�H��I��H��p���A��M��M����H��p�����I����F�l��E��t싅l���D�p�A��"��H��������I9��Ic�L�%��BL�5ēBH��H��x���H��H�I��H����H��x���I�_L��`���H��H��I��H��H�H�M�H��H��X���I�I�E1��?�H��H����I9�r?E�|$A��A�OH�CH���dH��I��E��H�H�ׁ�@u�H�pI9�s�H�M�H��x���L� }L�
9~L��`���H�	M��E��H��
H����I9����M���l���A��D�M��M�L�E�H�E�H�E�H�E�Mc�H���_H����I�H�]�K�47H��H����tH�]�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�L�\$I���H��p���L��J���f���E1�H�}�E��L��L��H����H�}��
H������fDH�;H���kM�&���L�H��A��@tlI��H�xA��L��M��u�'fD����uH��H��H��u�L9���H��H�U�M��`���H�U�M�fH�SH���lz��H�C����L�@H�x�fDH�OL�H��p�����@�M���l���D�M��M�L�E�H�E�H�E�E���@���H��p���H�}�1�L������H�]�H�]�H�E�H�E��H�}�H�u�H�GH� tH�GH)��Rw��H�]�H�E�H�E�H�M�dH3%(�(H�e�[A\A]A^A_]�@H��H�U�����H�U����E���_H��x�����H�
WzL�$�H�
l{���E�H�_bBH�8�s��H��H�@H�@��L� Lce�H��H�U���H�U�M�&H�H���x��H�;����fDH��y��L�4�H��zHc�H��aBH�8�s��H��H�@H�@uH�BL�0H��L�5��BH�U��w���H��x���H�U�H��H��H��H�H��I�I�H�H�M��gx��H�M�H����H�P�����H�=K�w����|���f�H�B�����H������I������H�{�H��tyM�f��Ϳ��L�H��A��@tEI��H�xA��L��M��u�'�D��E��uH��H��H��u�L9�rM����L�@H�x�H��H�U��#���H�U���A��u~H��x�����H�
oxL��H�
�yLc$�H�y`BL�E�H�8�
r��L�E�H��H�@H�@uH�BL�H��H�U�����H�U�M�f�H�S�H���w��H�{�����H�{�H��tdM�f��ƾ��H��H���@tFH��L�B��H��H��H��u�&E��E��uH��H��H��u�H9���M��s���H�zL�B�A����H��x�����H�
ywL��H�
�xLc$�H��_BL�E�H�8�q��L�E�H��H�@H�@uH�BL�H��H�U�����H�U�M�f�H�S�H���v��H�{�������l����AH�=1r1��
i��H��H�U��~���H�U��8���H�{�H��t}M�f�袽��H��H���@tBH��H�z��H��H��u�%f�D��E��uH��H��H��u�H9��DM��I���H�BH�z��p��H�'^BH�5�qH�81��a��A����H��x�����H�
<vL��H�
QwLc$�H�F^BL�E�H�8��o��L�E�H��H�@H�@uH�BL�L�e�H��H�U��ϧ��H�U�H�E�H�S�H��I�F���t��H�{���H��X�����l���A�t$���H������H��H���@tpH��H�z��H��t$H���D�$�E��uH��H��H��u�H9�rFH�e��l���H��`B��l���H�5?nH�81��y`��H��H�U��͒��H�U����H�BH�z�H��H�U�讒��H�U���UE��H��AWAVAUI��ATI��SH��H����h���L�E�dH�4%(H�u�1�J�4�H�E�H�����H�E�H��@���H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u���AH�D$H���H�E�H�E�H�}�L�5I�BH��H�H��`����EH�}���Hc�L���H��H��P���H��H�M�<�I���hMc�D��M9�AF�1�L9���L�}��1�LcUL��VBL�}��DI��H��I9�tS�C�I���x�H��I��Hƒ�u�A��H��H�� H��A�TM9��H��D��1�I9�u��L�}�H�E�H9��e	H���6H��P���H�'�BDžl���A�H��H��H�H��I�4H�H��X���H�E�H��p���H��8���f�H�E�O�d-H�]�E1�J��H�E�I�GH��x����nI�LE���@�hH��H��x�����H��M��L��L�]�H�E���H��H�E�L��jL�]�L��M��H��H��M���p��Y^M�L)�L9u���H�E�H�}�N��L�N�I9��u���I9��I�I��LE�M)��@��H��H��x�����H��H��L�]�M�H�E��Z���H��H�E�H��jL�]�H��M��H��H��L)�M���o��XZL9u��i�����l���D�pA��A��H��p���L�xI���]H��p���M��H��X���L;e���H�E�H�}�D��l���H�}�H�E��t���@D�پ1�����I�OI�W���I�OI�W�#���H��`���L��H��H��H��L���d�����H�}���H�E�H�E�@H�E�H��`����|0���u6H��H�E��@�t��H�����#H��u�H�E�HDž`���H��XB��h���H�u�H�8�fj��H��H�xH�@uH�xH��`���H�u���~��H�}���H�}�dH3<%(H����H�e�[A\A]A^A_]�f�H�8H����H��X���H�����H�I���@tnH��H�P��H��H��u�'@D��E��uH��H��H��u�H9���L��H��¡��L��p���H��X���L��M�oH�X��n��M�����H�HH�P�H��`���H�E������L���"��H��P���H��o�D�]�L�<�H��p����E�H��WBH�8�i��D�]�H��H�@H�@uH�BL�8H��D�]�H�U��
���H��P���H�U�HcM�H��H��H�H�=�BH��M�<H�H��I��m��M�?D�]����H��@����ސ���b���H�E�D�M�H��H��@���貋��D�]�H�E��]�����l���������L���"��H��P�����H�=�nL�<�H�=�oHc�H��VBH�8�$h��I��H�@I�E@t=L�8L���(���L��p���H��X���L��M�/H��,m��I�?���H)�H�L����I�E�L��蘋������H��p���H�x�H����H��X���H�X�讴��I��H���@tBH��I�M��H��H��H��u�"D��E��uH��H��H��u�H9�r*H��A���I�UI�M��HDž`���H�E�H�E����L������̃�l�������L���"�pH��P�����H�=3mL�<�H�=HnHc�H�=UBH�8��f��I��H�@I�E@uI�EL�8L���՞��L��p���H��X���L��M�o�H�X���k��I�����H��p���H�x�H��thH��X���H�X��}���I��H���@��H��I�U��H��H��u�,f�D��E��uH��H��H��u�H9��$H��X�����l�������L���"�`H��P�����H�=#lL�<�H�=8mHc�H�-TBH�8��e��I��H�@I�E@uI�EL�8L���ŝ��L��p���H��X���L��M�o�H�X���j��I������I�EI�U����H��p���H�x���H��X���H�X�H��p���H�x��T���I��H���@tWH��I�U��H��H��u�#@D��E��uH��H��H��u�H9�rH��L���L���������L��贈����I�EI�U몃�l�������L���"�#H��P���H�5�j�H�=lL�<�Hc��H��RBH�8�d��I��H�@I�E@uI�EL�8H�]�L��脜��H��p���H��X���L��L�h�H�E�H�F��i��������l���H��8����}���U��H���-���I��H���@�}H��I�U��H��t!H���	�<�uH��H��H��u�H9�rVH�e��h���@�u�AH�=1e1��
\��H�
�g�H�5�`H�=�b�[i���6�����c��I�EI�U�L���O����ff.�f���H��QB1҅�H����H�8�Sc����ATUSH�H����@��H��H����H��
����ts�����؃�����H��������H�{H����b��H��H�sI��H�@uH�sI�|$I�$@uI�|$�8w��L��[]A\�H�����u�H��t1H��u�H�%SBH�8�H�o�X����H�YRBH�8�|����H�INBH�8�l����H�MBH�8�\����H��QBH�8�L����H��TBH�8�<������SH�����H��� u+H� �uH�����tH��[����[�fDH� ��������H��H� t��H������H� H�����H���c���L�A��@��M��H�PI��A��M����L�Ɂ� tP1�fD��uH��L9�u�H��H�D$����H�D$L�I����L��uLH�����tDH��H�����f�J�<�����H�4:�f�L��L�V�H9�u�f���u*H��L9�u�H�����H���DH�PL�@�O���H�:�
f.�H��H�q�H9�u�I�� L��i������������@��uH�����t
����H���ff.����H��NBSH����H�8�?`��H��H�H�� ��@t0H��H�XH�H����H�����H��H	�H�[��H�PH�1�H����H��H�P[����H��x�Bk��f�H��H���4k��H� ���H����AUI��ATUSH��(H�H�|$��@�ZH��H�oH����H���TH��H��MBA�LM�H��
H�8��L���T_��L�@H�@��H����UM���E1�1���H�<��T�M���I��D��I�� H)�I�IH�H��C��H�� H9�u�L9�|)�}DD��I�� H)�A�4�H��H�� L9��YM��u�H���(H��A�D������I9��H��H�$轾��H�T$H�$H��� �2H� �H�T$H�T$H�T$�uTH�����tLH�������BL�@����H�_H�oH�������H�@L��H��L9���H�D?H��([]A\A]�fDH������I�I��H��A�8I��H�� H9�|�c�փ�L��H��A�T��H�� L9�tIH�y�T�I��H��u��@�T�H��A��H��H9��L9�����A��H��L9�|����L��M9�������H�����������[J���=���H� �������M��t1�1��T���1ɿ�I�y���1��fDAUATUSH��H��(H�H�|$��@�RI��L�oI��A��M���KI���H�*KBIM�H��
H�8��H��H���\��L�@H�@��M����A�U�H����E1�1��DH�4�A�T�H����I�ɉى�H�� H�H�9I�IH��C��H�� I9�u�L9�~9H��u�DH���H�щ�H�� H�>H��A��H�QH�� H9��H�T$H�T$H�T$�uH�����tH���[���H��([]A\A]�A�T�H��A��H��I9����fDL�@�����L�gL�oM�������H�@H���H��(H�D[]A\A]�@H������I�Y��H��A�0H�� L9����A�T�H�KH���g����׃�H��H��A�T��H�� I9�u�L9��
���K��I�\$�I��H�YH��t�H9����I��H���H9�������H����G�����H�������H��t$1�1����I���K��I�Y�H��I�I����L�»�ff.�@��AWAVAUATUSH��HH�|$H�t$@��u>@��uH�����t
�����
t%H�|$�&���H��H[]A\A]A^A_��H�l$H�t$(H����b��H�\$A����=L�d$H�t$0L���b��H�\$(L�|$0A��L9���L�D$L�l$I�@��I��I�E@��I��E��H��GBL�D$LD�1�D�$H�8L���tY��D�$L�D$H�@H�puH�pH����1��A��A#L���H��H9�u�I9�~fDA�T�D!��H��I9�u�E��H��H�$��1�E��@��!��w���H�l$8H�T$L�d$8H�$H�T$������H����������H���C���H��H[]A\A]A^A_�@H�l$H�L�l$(�H�l$0�m���M����H��H��?I��H�E@��H�mE��A��I�����A�E����H��FB1�D�$H�8�4X��D�$H�@H�HuH�HM����H�SH���w�q�H�sH���b�t�!�H�� �4�H��I9�u�L��L9�}a@H�sH���BD��!�H�� �<�H��I9�u�I9�~5��t�D!��4�H��I9��I9�~E!�DD�4�H��I9��D��H��H�$��D!��߷��H�T$0H�T$8H�$H�T$0��m��������H��L�l$L�D$L�|$(H�\$0L��I��D��L�D$E��A��L�l$I�@�M���M�@I�E@�M���M�m�H���H���i����1�E�������H�@H�xDH�D���@L��M���T���D1��^����L9������I9��������H���zC���?���1����ff.�AWI��AVI��AUI��ATUSH��(H�H�ׁ�@�wH��H����H���@�QH��H�NH����H���%f�H���D�\��E��t�M�aH���/H����H��t
E�T��E��t�H9��'�H���BH���MH���CI�$H�)M��tXH��
H��
�L�L$H��H��H��CBH��1�H�8���GU��L�L$H�@H��H�p�oH��1�H��H�I�MM����I�H�lCB�H��
H�8���T��H��H�pH�@uH�pH��1�H��H�I��v���YC��f�H�^H�N���I�i����M�a������|��A9|������M��t1�L�L$�A��L�L$I�EM��tM�H��(�[]A\A]A^A_�f.�M����H��
H��
L�UL�L$H��L��H�L$1�H�qBBL�T$��H�8�T��L�T$H�L$H�@I��L�XL�L$uL�XM���:I�H�+BBH��H�L$L�\$H��
H�8L�T$���S��L�T$L�\$H�@H�PH�L$uH�PH�D$L��I��M��SL��QH��蟅��M��Y^H�D$t[I�?��@��H��I�O��H��H��u�*�D��E��uH��H��H��u�H9��vM�}M�������H�8��@��H��H�H��H��H��u�'@D��E��uH��H��H��u�H9��I��W���DE1�E1�A�M������S1�I��M��QL��1�L��贄��X�ZM����������H�xH�H�t���I�I�O����H��
H��
�H��H��H��H��@BL�L$H��1�H�8���%R��L�L$H�@I��H�xuH�x1�A��H��L��L�L$�ǀ��M��t!���[]��L�L$I�I��� I�tPH� M���j���M�}�a���H�p���H��H�D$�yu��H�D$���L��H�D$�bu��H�D$�s���H� ����ff.�@AUI��ATI��UH��SH��H�I��A��@�:H��H��H�Ѓ���H�WH���fDD��E��uH��H��H��u�H9��-M����H�EH�UH��H��H����� ��t	����Hc�H�ÀH)���H�T$1�L��H���e���L)�H�������H���|BH�|$袼�����[B��H�0fH~�H9�tWfH~�H��<��������H��u:H��H��[]A\A]�DH��H��H��H�U��H��H���:����[O��H��[]A\A]�H�GH�WH����������f.�H��H������H������DH���s��H�MI��A��@���D��L��N��H��[]A\A]�H��H��H��[]H��A\A]�f�UH��SH��H��H�I��A��@��H��H��H�ȃ���H�NH���DD��E��uH��H��H��u�H9���M��uHH�CH�KH��H��H����� ��t	����Hc�H��@H)�uOH��H��H��[]�f���fDH��H��H��H�K��H��H���fDH�FH�NH���U����DH��H��H�T$踱��H�T$H���fDH���@r��H�I��A��@�A���ff.�AUI��ATI��UH��SH��H��H�L$���I�UI�$H��
H��
����8�tH�|$H���@tiH����ti�O��uH��t\�Nn����uSH��t���:��H�}1�H���
S��H�EH��t:H�|$L����R��H�H��[]A\A]�@H�GH��uH��tH�D$H�H��[]A\A]��H�W���u��p���f���SH��H��@��u.@��uH�����t
�����
t#�%H���w��H��[�f�H��H��%:��H��H�L$1�H�����H�D$�u�H�����t�H���j���H��[�@��UH��SH��H��������ujH�����ta�����
uWH��H�L$H��H���L���H�\$��u
H�������H�<$@��uH�����t���H��H���j��H��[]�H�IhBH��t4H��H���v��H��[]�f.�H��H��59��H���n���D�H�=ZK�G���H��H��gB�H���p���H���c������UH��SH��H����uk��uFH�����t=�����
u3H�L$1�H��H���Q���H�D$�u/H�����t'H������H��[]ÐH�9gBH��t$H��H����u��H��[]�f�H��H��e8��H��띾	H�=�J����H��H��fB���SH��H����u(@��u6H�����t-�����
u#H��[�>i��fDH��8��H��[H���$i���?l��H�57JH��H�f4BH�81��4<��@��H��������?H9�w
H�D?���V��ff.���H�@H�x
H�D?���{7��ff.���SH��H���/n���tcH��H��?H�H1�H)�H��H�L$H�L$H�� H��H�D$�H��H9�sW�P���t��҃����Hc�H��t���H)�H)�H��[�@H���@u@H�HH�@H��H�H9�w��H9�t+�P���u��� ��H��
H�H����1�H��t��H��[�ff.�f�ATUSH���@t4H����t4H�GH��I��H�����uG1��[}��H�����Lf�H�_H��uH��[]A\��H�GH��I��H��H�����t�������H�H)�H������u>H�UH�E@uH�UH�C�1�f.���H�� H��H�H���u�H��[]A\�H��6BL��H�5sJH�81��9��f�ATUSH���@t4H����t8H�GH��I��H�o��u?1��j|��H�����D�H�_H�oH��uH��[]A\�H�E�H��I����t�������H�H)�H������u&H�C�1��T�H�� H��H�H���u�H��[]A\�H��5BL��H�5�IH�81��(9�����H���@tTH����t;H�WH�����tX�҃���Hc�H)�H��������?H9�w^H�D����f.�H�GH��t�H�OH��H�Q����u�H��1��I{��H��������?H9�wH�DH���H���xR���H��H���dR��@��UH��SH��H����u
H�����������H��H�H���~H�ƃ����H�����H�U��@upH;us}H�m�L���L��!π� u=�����>H��t-�MH�ELŅ�t�&fDH���P����H9�u�u(H���[]�@H��H��H����H9�r��� uظH��[]�@H��ƒ���
�!����� t�I��A��@��H��H�KH����tpH���DD��E��uH��H��H��u�H9���M����H�CH��t1H�{H��H�W�������҃���Hc�H)�H������ueH�5�DH���������fDH����h���t������������H�{H�KH���C����H����t�H�SH���v���H�U����H���h��H�I��A��@�5���1�H����x��H�����^���ff.����H����AVAUATUH��SH��H��pH�t$�x��H��������H9�wHHcT$H��H)�1�H��I��H��t
H)�H��I��H���tH��tL�#H��p[]A\A]A^�f.�D�d$H�l$ H�l$<H�t$H��L�t$TH�D$�D$D�d$��u���H��L��A�L�mH��u��E��u6L�d$DH�t$ L���u���t$H��uL�L$D�����;2��H������H��L��A�L��j��L�D$ �D��_AX�D�L$\���7L�l$LH�l$`jA�ATL��M���H���hu��XZfD�L��E1��Pc�����0H�L$0j@A�H��jA����1T��AXAY��H�D$0�������H����������|$\�����t$XA���u �D$T�����D$T;D$D�A�N�$�H�l$`�L��L��H���T��J�D%H�T$p@H���@�H9�u�D�D$DL��1�L��H��L�l$L�q���D$P�D$L����T$X�����D$T����H�D$`H�l$`L�l$LH�D$hH�D$L���H��A�H��H��j��L�D$$�E��AZA[L��H�L$(j@A�A�j����R��H�D$0H+D$8I��A]A^�i�����D$L�D$PH�D$`H�l$`L�l$LH�D$h�#����D$X9D$HH�D$TvH�D$L��D1�H�l$`L�l$LH�D$hH�t$DH�D$`H�T$L����A��n���@��H����d���twH��H��?H�L$H�H1�H)�H��H�T$H�� H��H�D$��t	�1�p���u*H��H9�r�H9�t	H��H9�tR1�H���H��H9�sߋ��t�H��H9�u��.fDH���@u8H�HH�@H��H�H9�v��p��f���P�����H�����fDH��
H�H����ff.���AVE��AUM��ATI��UH��SH��H�� H�D$H�|$H�D$��c����H�D$��tIH�x4H�D$�H�t$AVM��I��H��AU�P��H��0[]A\A]A^�fDH�ؿ������fDL�L�ҁ� H�����A��@tH�pL��H����H����H�pH�P�fD��A��E1���m��f�AV��I��AUATA�����UDE�1�SIc��~C��H��I� ��H��������H9���H�u1��`@��I��H�PH� tH�PI�H�Z% H�������+�A�H��H��L��E)�A��Mc��Mm��H��t#H�+H�}FD�H���
�K�H9�u�[L��]A\A]A^�f�H��x'H��1��?��I��H�XH� �{���H�X�r���H��/BH�5<H�81��|/��ff.��UI�҉�SH��H��H���@��H�������O��uH����H��� ^������E1�H��A�BL�׹��Zl����y���؅�t=����H�D$H��w~H�$H��;��H�߉�H����H	����H��[]�@��~CH�H������� t	@�H��[]�@H�GH��t�H�W����?����T���@H�D$H��v��H��*BH�5f<H�81��S.����H��SH���u#��uH�����t
�����
tBH���`���t�H��xD��H��H�߃�H���0����u(H�����t H��[���H�¾H���h����t�[�f�H��1��f���H��SH���u#��uH�����t
�����
tBH���`���t�1�H�xG��H��H�߃�H��補���u(H�����t H��[�n���fD1�H��H�������t�[�DH�ؾ�fD��AWI��AVI��AUI��L��ATE��L��A��UD��SH��(H�<$L��H�D$�J��1�H��������I��I9���J��L)�I��H�hH�����)�H����A����H�\$QM��M��ATH�T$L��H��H���[��A��XZA����a�D$�\$H��H�� H��9E���H��������?H9��H�\H��(H��[]A\A]A^A_�fDH�	)B1�H��L$H�8�:���L$H�@H��L�PuL�PQM��M��L��ATH�T$L��H��L�T$�Z��AXAY���A��L�$t_H���E���H�A����E����� H�E�������M���H������@���H��耝��H���0����H����H���mA���D$�\$H��H�� H��
H��A�������xH��H��H9�����H��'BD��H���H�8���9��H��H��H�xH�@uH�xH�t$��M��H�A������E���������H�E������H���@��H��H�S��H��H��u�E���D�<���uH��H��H��u�H9�����H���\������f.�L��L��L��L��H��I�̓���H��H��L��H��I��H��H�H)�H�̓�H��H��H��H9�rKHH��H)ȉ�H����H)�H��������H9�����H�*BH�5Q:H�81��)���H)ȉ�H����H)���H���@��H��H�{H����H�������(X�����������H��蠗��A��u�H�#������E���&�������f.������fDI��H��������!�H�sH�{�}���H�KH�S�Y���H��%B1ҾH�8�Z7��H��H�@H�@uH�CH�T$H�H�CH�@uH�C�@A����������fD��A��1ɺ��T��f.���USH��H��8H�t$�j��H��H�D$�H��tAH� ���D$H��������H9�w/H�H��H)�H��������?H9���H�D?H��8[]��H�l$H�\$$�D$H�t$H���-h��H��H�߹A�L�:��kg��H��H��H��jA���L�D$�U7��XH��ZA�B1ɺ���S��H��8[]�f�H���8����t$�D$H�|$��t6���D$����f.�H�|$���fD�A��H��8[]�@H���D$1�H�|$�������AWI��AVAUATA��U��SH��H��8H��u�f�I��A�?��R��A�Å�u�A�<+tdA�<-�v���~���������
�����]D�]�A��"vpH��&B��H�54H�81��F&��fDI��A�A��PՁ�u�E���|�H��8[]A\A]A^A_�f.�<0���A�<0��H��B���x�9�}�����D$���D$A� L��D�\$��A)��T3��Ic�L�L$(D�\$H��H��@��L��H��L�D$ D���D�\$�OP��H�t$(A��Lc\$L��l$�ZH�=;H�L$ 1�Nc�I�D�M��I��H�H��E��H��H��I��L��U����ZY���H��������H���	�������@A�GI�W����0tV��_�G�BL�z����0t;I�փ�_�O�_��D�\$��P��D�\$����A�F���I��L���BL�r����0t;I�׃�_u�BL�z����0t׃�_t�L��M��I�օ���A��a���DH�������0t���_�R������I��E1�����@<0�&�����A��
���E1��L�L$(��L��D�\$L��L�L$�;M��H�D$H�D$(I9�sH�8L�L$D�\$@��_����E��u_H��������?H9D$�H�D$E��uH��H�D�[���E��t�I9����8� ��O����H�D$(��H�PH�T$(�x@��u��H��A��H��L���9������A�GI�W���<BLD�����A�<0����A�GL��M�W���<XID�I����A�G��B<6w^H�?4��Hc�H�>��I��A�����I��A�����I��A��
���I�������A��x���A�<0�j���A�GL��M�W���<OID�I���M���A�������A)��A��"��A�H�
�B�9����������Չl$���8���H�L$ H��E��L���77������A�<0���A�GL��M�W���<DID�I������A�M�������8����H�5.H����Y��I���2���H�|$�~;��E��tH� �X���M��I������H� ����A��������L��M��I��������UH��AVA��AUA��ATSH�]�H��0H�}�H��dH�%(H�E�1�H�E��7��H�}��w8��E����H�E�H�L�`�� ��L�`M���H�XA�<t2H�CH=��2H��H�}��fR��L��I��H��L���C��A�D��D��L������H�}���H�M�dH3%(��H�e�[A\A]A^]��H�����I��H����H�E�H��� �_���@H����A�<t�H�CL��H�U�H�U�H��H��H�E�H��H%�H)�H���H��H9�tH��H��$�H9�u��uWL�d$I�������f�E1������H�}�H�E��cV��H�E�����f.�L���e����H)�H�L���P.����AW�F�AVAUATU��SH��8H�|$��"���^�A��A!���H�|$L�t$�T$A��6��L���{���T$�8-I��uL�hE1���L�L$ ��L��L�D$H���I��H�T$ L��t��A� ��A)�H�L$E��L��D���4��L�t$(H�T$�uH�����tH��裐��H��8[]A\A]A^A_�H��B��H�50,H�81��j��f.���AWAVAUATU��S�^�H��8H�|$��"��H�|$L�d$A��A��5��L������8-I��uL�hE1�L�L$ L�D$D����L��H��Hc���H��1�A��D��H��3Hc4�H�D$H�D�H��H�T$ L��L�H��4��L�d$(H�T$�uH�����tH��譏��H��8[]A\A]A^A_�H��B��H�5:+H�81��t��@��AWAVAUATU��S�^�H��8H�|$��"��H�|$L�d$A��A��4��L������8-I��uL�hE1�L�L$ L�D$D����L��H��Hc���G��H�L$1�H��H��2D��Hc4�H�D�I��H��H�T$(UL�L��L�膼��L�d$8H�T$ZY�uH�����tH��趎��H��8[]A\A]A^A_�H��B��H�5C*H�81��}��ff.�f���H��������?H9�w
H�D?���+��ff.���H�@H�x
H�D?��H��x�f+��fDH��H���T+��H� ���H������1҅���� ����1҅���������'����������@����USH��H�I��A��@��L�GL�OM����L���E��E��uH��H��H��u���H��L9���M����H�SH�CH��u�]H��tW�L����t�U���"��H��������H9����E���H�߅�tWH��[]����@I��L�OI��A���[���H���H�=��[]��L��@�P��H��H�S���i���H��[]��DH����L��H�I��A��@�.���H��BH�5�*H�81��^��H��B��H�5
(H�81��D��@��S�
H��H����uH�߉��a;��H��[�H�L$H�|1��%��H�|$@��t�Ea��H�߉��+;��H��[�D�%��H�߉��;��H��[�ff.���SH�5�'H������H��� uH��yH��H9�u
[�fDH��[�H�BH�5-*H�81��k��ff.���SH�5z'H���l��H��� tH��x[�DH��y+H��H9�t�H��BH�5�)H�81����@H��[���SH�5'H�����H��� uH��yH��H9�u
[�fDH��[�H�DBH�5�)H�81����ff.���SH�5�&H�����H��� tH��x[�DH��y+H��H9�t�H��BH�5�)H�81��L��@H��[���H���6���uH�����tH��H���+���H�����H��裒��f(�fT
�.f.
�.w
H����1�H�=&�D$����D$f��f/�w�#H������.H���ff.���@��t6H��H��H��?H�H��H1�H)�H�H����H��
��8��(�3��H��@����H������������
�'�����tw����H�t$�?��H�t$�NH�0�X�fH~�H9���fH~�H��<��������H��H����H���@�����u`H�t$�L?��H�t$f��H��H9�t�H��H��H��?H)�H	�H��H�t$�~L$�Z���f.������tp�+H���HO������H����#���fH~�H��H��H���I���f����)����5���H������)���H��H�����H�t$�|>��H�t$�>���f���@��t6H��H��H��?H�H��H1�H)�H�H����H��
��8�����H��@����H������������
������tw����H�t$��=��H�t$�\FH�0fH~�H9���fH~�H��<��������H��H����H���������uXH�t$�|=��H�t$H��H9�t�H��H��H��?H)�H	�H��H�t$�\D$�^���fD�����te�-H���M���K��H���/"���fH~�H��H��H���U���f�1��	(����D���H������8���H��H���)���H�t$�<��H�t$�M���D��SH��H��@���
��@��tb������H��H�t$�y<��H�t$f��H��H9�tlH��H��H��?H)�H	�H��H�t$�~L$�Ef.�H�����tw�����
������t���udH��H�t$�;��H�t$�N�Y�H�0fH~�H9�t}fH~�H��<������tyH��H��uZH��[�@����tnH��H�ߺ*[�K��fDH��H��u��H��H���:o���u�H�����t�H��H��[����H��[�v ��fDfH~�H��H��H�����H�t$�0;��H�t$����fDSH��H�� @������@����������H��/��H��H9���H��H��H��?H)�H	�H��H�T$�~L$f.
�(�}H���L$�:���L$�^���!��H�� [�H�����tg�����
t3�����k�����uXH��/���N�H��H��-
��H��H�T$1�H�����H�D$�u�H�����t�H���r���뇃�����H���\J��H�� [�fDH��H�t$��9��H�t$f��H��H9�t%H��H��H��?H)�H	�H��H�T$�~L$�^�H�0fH~�H9�t'fH~�H��<������t;H��H�������������DH��H�t$�K9��H�t$�N�fH~�H��H��H������}����
��H��/�(���H��H�t$�9��H�t$�2���ff.�f����/����f���UH��SH��H��H��:BH��tH��H��H��[]����H�=���U��H��H�u:B����UH��SH��H��(�k���f(���~H�f(�fTo&f.�&f��H*��x�^�H�0fH~�H9�t0fH~�H��<��������H��H��u	H��([]�f�H��(f(�[]��������H������������
���ڃ���tt�����Cf.���f(�fT�%f.�%�H���H�|$�+���5�,���G-���L$H��(H��[H��]�Q�Hc�����@�؃���uXH��H9���H�ڸH��?H)�H��H��H	�H��H�D$�~D$f.��_���H�������؃���t�H��8BH��t:H��(H��H��[]�9G��f�H���	��H��H��(H��[]�����H�=L�S��H��H�e8B�H��H��(H��H��[]H���f.�f(�fTt$f.�$f��
������DH���D$�:6���L$�~<$�\$f(�fT�f.�wfT�f.������H���;�����H����AU���AT��UH��SH��H�����Z@��u
@H�����u/�urH�l7BH����H��H��H��[]A\A]�E��fD������a��
u�H����~��H�è�*��H����ƒ�������t�I��I���1ҾH���~��H=wI��H=��H�=�1��N��f���I*�H���L$��4���L$��"��H�0fH~�H9�trfH~�H��<�������}H��H��uKH��[]A\A]�L�%Y6BM�����H���P��H��H��L��H��[�]1�A\A]�T��@H��[]A\A]�q���H���[]A\A]�H�=�1���M��H���*4��f(��"���H�E�KH�� H��������@��H������D�UE��u&H������H���L$�:���L$������f(��L$����L$f.�z�����L�%a5BM���'�H���c<�����fDH��H�EH�� H9�u{f��H���I���H���G3��H��?H��H��H��[]H��A\A]H��þH�=��2P��H��H��4B�X���H�EH�������H�UD�
E�������� ���H�޹H��?H)�H��H��H	�H��H�L$�~L$����H�=2��O��I��H�Y4B����H�@1��I��I�H����H���Ye��L!�L��tiH����H��H���
f��H�8��@��H��H�H��L��H��H��u�.fDD��E��uH��H��H��u�L��H9�r~fDH���o�����<���H������0���H��H��[]A\A]�){��f�L��H!�H�H��uH�������L��H!�H�H��t�H���fDH�xH�H�P���H��H�D$�#;��H�D$�q����H�=��xN��I��H�3B�������H���31��H�0fH~�H9�tOfH~�H��<������tH��H��u,H����fH~�H��H��H��H���f.�H���������S���H�� �����Ff.��Jf(�fT
�f.
���f/�v[H�����H�� [�f��D$�D$���H��H���T���L$f�f.���Eф�u�H��u�f/�v�H�� �[�H��H9�t1H��H��H��?H)�H	�H��H�D$�~D$�3����f�H��H�|$�o��f(���R����D$�f/�����f/������H,�H�H9������Z���f�f/��L���f/ȸ������������fD��UH��SH��H����tc@��t-@��t>H�H�H9�<�}H�����H��[]��H�����t��Jx��H��@��u�H�E�� t�H���[]�@��u;H�����t2H��ȃ���
tm�ڃ���t��u H��H��H��[]����D�؃���t�H�_0BH��tH��H��H��[]��+����H�=0�oK��H��H�-0B��H�7H��I��A�� ��H��
��8��F���������@tKH��H�S����@t(H��H�}��� ��M��u��H�H�D����DH�uH�}��fDH�KH�S�ff.�ATI��U��SH�������unH�����te�����
���ڃ���t��uRH��L�����H��t'H���K��������ty���t_��1�[H��]A\�fD�؃���t��<��t�����>��tYH��L��[]A\��=��f�H��L������{�����x��f.������D����{����x���fDH�Q.BH��u��H�=W�I��H��H�1.B�{���@H�.BH���g����H�=&�wI��H��H��-B�G����������f�����r���f�����b���f���1��U���D��S���H�� �����Ff.�zf(�fT
�f.
f��v1�H�� [�@f��f�H��H�|$�L$�M���L$f.�z�u��D$��tt�
�f/�w�f/�w��H,�H��H9�u���H��H9�t�H��H��H��?H)�H	�H��H�D$�~D$�3�����[��H�� H��H��[� ��ff.���UH��SH��H������H��@����H9���H�H�����H�H�UH��E1�H��
I�Ѓ�I��
A��A8�uYH�ׁ�@��I��H�UA��@��H��E1Ƀ�H9�u'H��H�pH����H�}�f��E1Ʌ�uA�H��L��[]��H������Q����vs���G������u;H�����tRH�H�؉ʃ���
�;�������t ��tH��H��H��[]�@���؃���u�H��H��H��[]���D�؃���u���@H��I�Ƀ�A��@����H;P�F���H��H�p����f�H�}�������UH�=�SH��H��BH�0�H��H�y�A�����H�=�H��H�5�H��k0��H�;H��H�5��E-��H�;�H����H�5��:0��H�;1�H�����H�5��"0��H�K�AH�;�H�5���0��H��AH�;�H�5�.��/��H���AH�;�H�5�g��/��H�z�AH�;�H�5p��/��H�-/�AH�;�H�5
CH���/��H�Q�AH�;�H�52~�}/��H��AH�;�H�5E
�b/��H�;H��H�5�
�K/��H�;�H���H�5
�0/��H�;�H�A�H�5r
�/��H�F�AH�;�H�59�.��H��AH�;�H�5���.��H�x�AH�;�H�5g��.��H��AH�;�H�5<
�.��H�;1�H�}���H�5ε�.��H�b�AH�;�H�5�v.��H���AH�;�H�5��[.��H�;�H����H�5ʉ�@.��H�9�AH�;�H�5��%.��H�-��AH�;�H�5�H���.��H�;�H�����H�5#���-��H�;�H�m���H�5M��-��H�;�H�B���H�5l�-��H�;�H����H�5�-��H�;�H��H�5�-��H�e�AH�;�H�5��i-��H�z�AH�;1�H�5u]�Q-��H�;1�H���H�5��9-��H�;1�H�ݩ��H�5��!-��H�;1�H�ũ��H�5��	-��H�;1�H����H�5B!��,��H�;1�H����H�5���,��H�;1�H��
��H�5{�,��H�;1�H��
��H�5h�,��H�zpBH��GH�������H�H��H9�u�H��H9�u�H��[]�f.�UH���SH��H�����H�UH�H�JH�@H��tH�HH�	H�pH�IH�q(H�BH�CH��H�P(H��[]����H��H��H���ݗ1�H���fD��AVE1�AUATUSH�F�8
u]L�hH��H��I��M��t^H�@� �T���oH��L��H���oKH����AoUL���Ao][���[D��]A\A]A^��H��H��H��A��T����f���AUATI��UH��SH��H��tOH�FH��8
t{H�}1�L��������uH�CH��t:�8t5�H�}L������H��1�[]A\A]�DH��H�}1�������u�H�}L��H���������H��1�[]A\A]�fD1ҿL�n�bH��H��t��E���b���L9ku��W���f���ATI��UH��SH��@��t
@��t#H��H�}H��t.L��H�����[1�]A\�@H�����tԋ����u�����A��H��H�E��f.�SH���g5��H��[H���+5��ff.���H��tH���u1��DH��H�����1�H���D��H��t1��H��H�����1�H���ff.�f���H��t1��H��H���d���1�H���ff.�f���H��t1��@H��H���4���1�H���ff.�f�UH���SH��H�����H�UH�H�JH�@H��tH�HH�	H�pH�IH�q H�BH�CH��H�P H��[]��U��H��SH��H��H��`H������PH���H��H�EH��H�@H�@H�E H�EH�h8H�H�@H�@ H�@(�)gH�C0H�EH�@@H�@HH��H��[]����AWAVI���AUATI��USH��H������oH��H�CH�EL�kM�<$A��u	I�����urH�[��u	H�����u(I�|$H��L���	��H��1�[]A\A]A^A_��H��L��������u�I���`H��`u�H���`H��`t�H��L���F���@L��L�������uI���`H��`t
M�<$�j���@I�E��`H��`t�L��L�������ff.���AWAVAUATI��UH��SH��H��(H�FH��t���t&�H��L��H���&�H��(1�[]A\A]A^A_�DH�@H��H����H�sH�L$H��L�h H�D$H�CH�@H����QL�t$M���M���A��u	I�����u*D�L��1�L��H���o�H�D$H�D$H�D$�e���L��L���m����u�I���`H��`u�I���`H��`t�L��L����
���@��H��tH��4u�����ff.���H�OH�Q H��t7SH��H�:H�OH�
H��tH�	H�IH�Q �L��H�KH�A [�fDH�A �ff.�@��H�OH�Q(H��t7SH��H�:H�OH�
H��tH�	H�IH�Q(��
��H�KH�A([�fDH�A(�ff.�@��USH��H�GH�XH��tH��fDH�;H�[��H��u�H��[]�ff.���SH�GH�XH��tfDH�;H�[����H��u�[�D��SH�GH�XH��tfDH�;H�[����H��u�[�D��AUATI���USH��H��AH�0���H��M��u{H�@E1�����H�����H�EH�EH�k ��u6H�����t-H���у����H��H�Ѓ�M��u����H��H��[]A\A]�DH��M�����A��I��4uH�C4A��h���H��L�����L�cM���P���I������C���L��H��������0���H���`H��`� ���I�$��`H��`����L��H���,������I������H���I�$�������6���%H	�H��&����UH��H��SH���?��H��H�����H��H��H���&6��H��AH��H��H�8H��HD����H��H��[]���H��@��u,H�����t#H��ƒ���u��uIH�0�AH;8t%H����q"��H�5�	H��H���AH�81��f�H���AH�5X
H�81��N�H�o�AH�5�	H�81��6�fD��S�H�����H���V��H��[�M��ff.�f���@��uFH�����t=H��ƒ���t0��t+SH��H��H�_H�sH��tH����[������H�L$H�<$���H�<$H�L$H�CH�GH�p���AVAUATUSH��H�_��uH�����tH��ƒ���t��uH��H��[]A\A]A^�@H��I��H��1��h���I��H�E������H��L�����I��I�D$��L�sM����I�D$H�CM�t$H�PHH�pI�VHH��tL���_��I�FH�CH�xt7M�t$�&��H��H�5|���L�$$I�FI�D$H�@H�D$H�CH�x���I��4tL��L���������I������I�EI�EM�l$ H�{ H��tH�?L��H�5���L�����I�|$L������H������I����������I�$�ƒ����������I�$���fDH���������H��L���	��������I�$��`H��`�����I���`H��`�����L��L���u�����L��M�d$�������I������{���L��L������k���f�L���x���I��4uI�D$4�c���@L��L������M�t$A���E���I������8���L��L���N�����%���I�$��`H��`����I���`H��`����L��L�������D���4�B���f���ATUH��SH��H����uiH�����t(�������H9��gH��H���>��z@H9��MH��H���$�H���*H��uSH�n�AH��Kf�H9��H��H��������s�؃�����H��������H�C�uH�����tH��ƒ���t��u*H���x�I��H�C�uH������!H��L���f��L�eM���	H�CH�CH�UH�xH�RHH�PHH��t��4��H�CH�@H�xH��t�Y�H�CH�@H�{ H��t
�2H�C H�EH�pH����L�cH������I�D$H�.�BH���EH�$H�CI��1�L��H�x����H���BH����H�$H�C1�L��H�x���H�ϥBH����H�$H�C1�L��H�x���H�EH�xt6L�c���H��H�5r�I�D$H�CH�$H�@H�D$H�EH�x����H�E H��tDH�8t>����I������I�D$I�$L�c H�} H��tH�?H��H�5������H��H��[]A\�fDH���AH�H9��H�{��H9���@���M���H������@���H��ƒ����/������&���H���AH�5�H�81���H�����I��4uH�C4���DH��L���U�L�cA������I����������L��H������������H���`H��`�����I�$��`H��`�����L��H������u���fD�H�=���0��H���B�-����
H�=b�0��H��B����H�=0�0��H�ȣB���H��AH�����H��H��������u)H���`H��`uI�$��`H��`tL��H���M���DL�c����H���AH��K���f�H�9�AH��3����H���AH��#����H���AH�����H�2�AH�5:H�81���H��AH�5H�81�����AUATUSH���4H���	��I��H��A����H�������H��ƒ���t��H�EH��H���>��L�kH��H�kH��L9��������uH���`H��`��fDI�}@��u&H�����tH��ƒ���t���z�L���@���I��L�mA����I�����t}L��H���;����unH�E��`H��`uaI�E��`H��`tTL��H������GH��H���u��L�kH�kL9��\���H�mH�[��u'�H������������u	H�[��t�H�{@��u
H�������H�����H��H��u]H�EM��u*H�����t!H�U�Ѓ�����H����H��H��[]A\A]�@H��u�H���AH�H��t�H����H��4uH�E4�@H��H����H�]���w���H������j���H��H���������W���H�E��`H��`�F���H���`H��`�6���H��H���\����&����H��ƒ�������������������H9�����H�[����f.�H�E�����H����������H����������%H	�H�U�����1����u$H���`H��`uH�E��`H��`tH��H�����H�mH��H������,������K��L9��z���M�m�|���H�E��`H��`�0���H��H���]���� ������AV1�H�=��AUATUS�F�L�%��AH�=ewH��I�$�,�L�-m�AH�=�H��I�E��L�5��AH�=+�H��I���H�-��AI�$�H�=��H�E�+��I�}H��H���*��H�]H�[��uMH�����udI�H�XM�mH�]I�]H�������M�$$H�]I�\$H�������[]A\A]A^ÐI�H�XI�EH�XI�$H�X[]A\A]A^�H��H�����M�6H�]I�^��u�H������{���H��L���m����uI���`H��`��M�mH�]I�]��u�H������W���H��L���0����uI�E��`H��`��M�$$H�]I�\$���;���H������.���H��L������������I�$��`H��`�
���H���`H��`�����H��L��[]A\A]A^�Q����H���`H��`�G���H��L���5����7���H���`H��`�e���H��L�������U�����AWAVAUATUH��SH��H�������L�gL���A��H�ètJH�]H��H���
��L�����H�hH�k@��u
H�������H��HH��[]A\A]A^A_�fDH�����t�H��ƒ���t��H�H�]H��H��������u�H�E��`H��`�{���H���`H��`�k���H��H���6����[�����4���H�Ã�H�D$��H�������H��ƒ���t��H�H��H�����L�mL9��=H�]H��H���.�����u*H�E��`H��`uH���`H��`tH��H�����fDI�}@���RH������EH��ƒ����4���+���!���L9��M�eL�cA��u.L��H���bfDH��H�����L�mH�]L9�u�H�[L�}A��t'�DA�������M�A����I�����u�M����H���AH�(H����(H�CH�|$�
���H����������H��Ѓ����H�����f�H�C�����H����������H������������%H	�H������4�
��I�ă�H�D$��L��L����
��M�}M�eM9��aI�@���3H������&H��ƒ������������L9���M�wM�t$A���L��H���H����
L��L���������
I�$��`H��`��
I���`H��`��
L��L���X����
I���������I�$�ƒ���t��I�$L��L����	��M�}M9���M�eL��L���g����������I�E��`H��`���I�$��`H��`����L��L���������D�4���I�ƃ�H�D$��I�����t|I��ƒ���t��I�L��L���V	��I�WI9���M�wL��L��H�T$ ����H�T$ ��uPI���`H��`uDI���`H��`t8L��L��H�T$ �4�H�T$ �!DL��L������I�WM�wI9���H�z@��uRH�����tIH�������t<��t7��H�T$ ���H�T$ H9�uH�JH��I�NH��������4H�T$(���H�T$(H����H�D$ �+H�������H��ƃ���t��H�H��H��H�T$0H�L$(�&��H�T$0H�L$(L�BL9��8H�JH��H��L�D$8H�L$0H�T$(���H�T$(H�L$0��L�D$8uFH���`H��`u:H���`H��`t.H��H��L�D$8H�L$0H�T$(���L�D$8H�L$0H�T$(DI�x@����H�������H��ƃ����|��tw��L�D$8H�T$0H�L$(�>���L�D$8H�L$(H�T$0L9�uJM�@�c@H��H��H�T$0H�L$(���H�T$0H�L$(L�BH�JL9��h���H�I��L��H�T$0H�L$(�N�H�T$0H�L$(I��L�AA��u~I������tuH��L��H�T$0H�L$(L�D$8�4���H�L$(H�T$0��uMH�L�D$8��`H��`u<I���`H��`t0H��L����H�T$0H�L$(�f�H������������u	H�R��t�H�z@��u&H�����tH��ƃ���t�����H��H�L$(�s�H�L$(H��H���H�AH�|$ �nH��H��tEH�1������H�Q��u+H�����t"H��׃���t��H	�H�1f�I�NH��t�f�I�������A�����u
M�A��t�I�@��u$H�����tH�������t����D�4���H����H�D$ �eH�������XH��ƃ���t��H�H��L��H�L$(����M�GH�L$(M9���I�OH��L��L�D$0H�L$(�J���H�L$(L�D$0��uI���`H��`��@I�x@��u&H�����tH��ƃ���t�����L��H�L$(���H�L$(I��L�AA��u)I������t �I�������A�����u
M�A��t�I�@��u$H�����tH��ƃ���t���"DL��H�L$(�K�H�L$(I��M����H�AH�|$ ��H�������
H��Ѓ�����H�A�u H�����tH��ƃ���t%H	�H�L��H�L$ ���H�L$ H��4� I�F4@H�|$��L��H��tCI��ʃ����:I�V��u)H�����t H��փ���t��H	�I��M�t$�v���fDI�@��u6H�����t-H�������t ��t����L9�uI�o�����4�&��H�Ń�H�D$uyH�����tpH�E������t��H�EL��H���`��M�oM9���I�oH��L������uLI���`H��`u@H�E��`H��`t3H��L���L��&f.�L��H�����M�oI�oM9��tI�}@��uJH�����tAH�������t4��t/����L9�u M�eL�eA����L��H����f��4�&��I�ă�H�D$��I�������I�$������t��I�$L��L���X��M�uM9��;M�eL��L������u(I�E��`H��`uI�$��`H��`tL��L���C�I�~@���BH������5H��ƃ����$�������L9��M�FM�D$A��u2L��H��f�H��t$�VfDI�������A�E����u
M�mA��t�I�}@��u#H�����tH�������t
����@L����I��M���|
I�D$H�|$�L��H��tFI�4$�������I�L$��u*H������t!H�	�σ���t��H	�I�4$�L�eH����M�gA��t(�l	@A�$�����X	M�d$A���I	I�����u�M���7	H�p�AL�8M���H�EH�|$��H��������H�U�Ѓ����9H�E�u)H�����t!H�������t%H	�H�U�H���x��H��4��H�C4�c�L��L�����M�uM�eM9�����M�d$�C���f.��4�F��I����H�D$ ��I��������I��ƃ���t��I�L��L��L�D$(�u���M�NL�D$(M9��*M�FL��L��L�L$0L�D$(���L�D$(L�L$0��uI���`H��`�w@I�y@��u&H�����tH��ƃ���t����L��L�D$(�[�L�D$(I��M�HA��u)I������t �I������[A�����u
M�vA��t�I�~@��u$H�����tH��ƃ���t����DL��L�D$(���L�D$(I��M����
I�@H�|$ ��
L��H��t=I�0������\I�H��u#H������tH�	��t
��H	�I�0�M�D$�F���fDL��L��L�D$(���M�NL�D$(M9�M�F�����M�@�����H��H���E����5�H���`H��`�%�H�E��`H��`��H��H������@M�d$M�}A��t&�@A�������M�A����I�����u�M����H��AL�(M���1I�D$H�|$�	L��H��tPI�$�ʃ����H��r7�I�T$��u&H�����tH��փ���t��H	�I�$L�cH�����L��H���(������H���`H��`���I�$��`H��`���L��H�����s��I�@��u6H�����t-H�������t ��t����L9�uM�o���4���I�Ń�H�D$��I�������I�E������t��I�EL��L������M�wM9��_M�oL��L���D���u(I���`H��`uI�E��`H��`tL��L����@I�~@���rH������eH��ƃ����T���K���9�L9��8M�FM�EA��u2L��H��H��t#�fDI�������A�����u
M�A��t�I�@��u$H�����tH��ƒ���t���DL���0�I��M����I�EH�|$��I������l���I�U�Ѓ����
I�E�u)H�����t!H�������t%H	�I�U�L�����I��4��I�D$4����L��L���%���M�wM�oM9������M�m�����4���I����H�D$ ��I��������I��ƃ���t��I�L��L��L�D$(���M�NL�D$(M9��'M�FL��L��L�L$0L�D$(�"�L�D$(L�L$0��uI���`H��`�W@I�y@��u&H�����tH��ƃ���t�����L��L�D$(��L�D$(I��M�HA��u)I������t �SI������sA�����u
M�vA��t�I�~@��u$H�����tH��ƃ���t����DL��L�D$(�#�L�D$(I��M���I�@H�|$ �L��H��tEI�0�������I�H��u+H������t"H�	�σ���t��H	�I�0f�M�E�����L��L��L�D$(� ���M�NL�D$(M9�M�F�����M�@�	����L�c���M�eL��L���q���uI�E��`H��`�MM�d$L��L���L��D����M���I�H���AH�H���gI�F�?��H������H��4�p���H��H�����H�k���f.�I�|$@��u%H�����tH��ƒ���t����fD�4���I��I��A����H�������H��ƒ���t��I�L��L������M�t$M9��r
M�|$L��L���N���uI�$��`H��`�lf�I�~@��u&H�����tH�������t���T
�L�����I��M�wA��u,I�����t#�
DI������+A�$����uM�d$A��t�I�|$@��u)H�����t H��ƒ���t����f.�L���X�I��M���I�GM����I������A���I��Ѓ����	I�G�u%H�����tH�������t%H	�I�DH������I��4�!H�E4��M�t$���fDL��L���E�M�t$M9��'M�|$���DM���)���H��AL�8�S���L�e�<��L���h��I��4�����L��L�����M�l$����f�M���J�H���AL�(�s��H��L��H�L$(��M�GH�L$(M9�I�O���H�I�a��H�m���I�N���H����H�@�AH��M��H�����I��4�����H��L���S��L�}��f.�M�����H���AL� �����M�v���L���H��I��4��I�E4�����L���(��I��4�I�D$4�m�M�D$��fDM�������H�p�AL�0�����M�E�g����M�����H�@�AL�0����M���!�H� �AL�8�U��L��H�L$ ���H�L$ H��4���H��L��H�L$ �$��H�L$ I�N��fDH��H�T$0H�L$(�>��H�T$0H�L$(H��4�H�A4���DL��L������M�l$A���[�I������N�L��L�������;�I�$��`H��`�*�I�E��`H��`��L��L���q���	�@L��L���]��M�}A���s���I������f���L��L�������S���I�E��`H��`�B���I���`H��`�2���L��L������"���fDL���0��I��4�?I�G4����H��H��H�L$0H�T$(����H�T$(H�L$0H�Q�����H��������H��H��H�L$(H�T$0���H�L$(���d�H�H�T$0��`H��`�O�H���`H��`�?�H��H���N��H�L$(�*�@M�|$M�����f�H��H�L$(�c��I��4H�L$(��H�A4���L��L�D$(�3��I��4L�D$(��I�@4�U��L��L�D$(���I��4L�D$(�I�@4����L��L�����M�gA�������I������}���L��L��������j���I���`H��`�Z���I�$��`H��`�I���L��L���B���9���D�H�������@H��L�����H�L$(L�yA����I�������H��L���J�H�L$(�����H���`H��`���I���`H��`���H��L�����H�L$(���L��L�����L�D$(M�pA�������I����������L��L�����L�D$(�������I���`H��`�����I���`H��`�s���L��L���2��L�D$(�^����L��L�����L�D$(M�pA�����I������s�L��L���J�L�D$(���[�I���`H��`�K�I���`H��`�;�L��L�����L�D$(�&��H�]H��H��������uH�E��`H��`�H�[H��H�������L��L��H��������R�H�E��`H��`�A�I�$��`H��`�0�L��H��� ��� ��H�������@H��L��H�L$ �P�����P�I�H�L$ ��`H��`�;�H���`H��`�+�H��L��������H������`�@�H���	����@L��L��L�D$ ���������I�$L�D$ ��`H��`���I���`H��`���L��L���7���{�f�L��L��L�D$ ��������I�EL�D$ ��`H��`���I���`H��`���L��L��������f��H�������@�H���	�������@I�oH��L�������uI���`H��`��H�mH��H�������~�L��L������������I���`H��`�����I���`H��`���L��L���;������fD�H������T�@�H������`�@�H�������@M�wL��L���9����uI���`H��`�M�vL��L�������H��L��H�L$(L�D$0���H�L$(���?�H�L�D$0��`H��`�*�I���`H��`��H��L���_��H�L$(��DL��L��L�D$(L�L$0���L�D$(���N�I�L�L$0��`H��`�9�I���`H��`�)�L��L�����L�D$(��@L��L��L�D$(L�L$0�;��L�D$(�����I�L�L$0��`H��`���I���`H��`���L��L�����L�D$(�l�M�oL��L��������uI���`H��`�M�mL��L�������-������L9����M�|$��M�eL��L�������uI�E��`H��`��M�d$L��L���l���P�H�JH��H��H�L$0H�T$(�N��H�T$(H�L$0��uH���`H��`��H�IH��H��H�T$0H�L$(���H�L$(H�T$0�/����^��L9��5�I�O��M�|$L��L��������uI�$��`H��`�LM�L��L����������	��L9����M�v��I�OH��L��H�L$(���H�L$(��uI���`H��`�cH�IH��H��H�L$(�V��H�L$(�������L9����M���������L9��=�M�m�?�M�FL��L��L�D$(���L�D$(��uI���`H��`��M�@L��L��L�D$(����L�D$(�A�M�FL��L��L�D$(���L�D$(��uI���`H��`�AM�@L��L��L�D$(���L�D$(�>���L�D$0L�L$(����L�L$(L�D$0I9����M�I�����L�L$0L�D$(���L�L$0L�D$(L9��W�M�I�c���L�D$0H�L$(�j��L�D$0H�L$(L9����M�@����H�T$0H�L$(�:��H�T$0H�L$(H9��'�H�R�3�H���`H��`����H��H���C������������L9���M�d$���L�D$(����L�D$(L9���M�v� ���H�L$(���H�L$(L9����M������L�D$(���L�D$(L9���M�v��I�$��`H��`���L��L�������H�E��`H��`��H��L���r�����I���`H��`���L��L���R���}�I���`H��`���L��L��L�L$0L�D$(�(��L�L$0L�D$(�y�H���`H��`�A�H��L��L�D$0H�L$(����L�D$0H�L$(��I���`H��`�}�L��L��L�L$0L�D$(���L�L$0L�D$(�Y�I���`H��`����L��L���������I�$��`H��`�d���L��L���u���T���I�E��`H��`���L��L���T������H���`H��`�o���H��H��H�L$0H�T$(�*��H�T$(H�L$0�K���I���`H��`�����L��L��������I���`H��`�����L��L��L�D$(����L�D$(���I���`H��`�:���L��L��L�D$(���L�D$(� ���H���`H��`�����H��L��H�L$(���H�L$(�s���H��L��H�L$ �m���H�L$ I�NH����������H��L��H�L$ ���������I�H�L$ ��`H��`����H���`H��`����H��L��������H���B��H��4���H��H�����H�k@���!��H��������H��H���'�������H���`H��`����H�E��`H��`����H��H���������H��H��胿��H�k�H��L���r���L�}I��������L��H����������H�E��`H��`���I���`H��`���L��H���"����L���U��I��4���L��L������M�l$A�����I��������L��L���9�������I�$��`H��`�{�I�E��`H��`�j�L��L������Z�L��L��蔾��M�l$�H������I��4���H��L���p���L�}A��������L��H�L$ ���H�L$ H��4����H��L���6���H�L$ I�N���������ff.�@USH��@�����H��������@����@��t/H���%H����H���"H��H�=��1�豽���H�����tȋ�����H����H�k@��u H�����tH�E�ƒ���t	����H��H���U��H��H��H����ƒ���tO����H������t,H�MH��H��[]�fDH�I�AH�(H���:���H��H��[]�f�H��uúH�����t�H�M�΃���t��H�MH��ƒ���u��f�H�9�AH�(�@H���AH�(�@H���Z���H������M�������H���#��H9������H��ƒ����^�����t�@H���������H�U�у���~��H�UH��ƒ��Q�����H��������H�@�AH�5��H�81��������USH��H��H��u
H��AH�H���<��H�sH��H�����H��H��[]���UH��SH��H��H��u
H�ܭAH�H�5�mBH��tH��H��H�ߺ[1�]���D�	H�=C��7���H��H�UmB��ff.���AVI��AUATI��US����L�-j�AH��H��I�}�����ugM��tJL��H�����H��H��H���a<H��H���6���I�}H��H���7�H��L���L���H��[]A\A]A^�L��H�=n�1�����DI�}H�����H�èu;H�����t3�����u)H�{�J��L9�t�H���AL��H�5��H�81��j���H���AL��H�5:�H�81��O���ff.�@��AUI��ATI��UH��SH���������M��tWL��H�����H��H����L��H��H��賾��H��H��L���5��L��H���J�H�����H��H��[]A\A]�@H����L��H���M�H��H�=s�H��1�����}���@H��L���%���H�èu<H�����t4�����u*H�{�#��L9�t�H���V�H�5V�H��H��1��R��H���:�H�5&�H��H�Q�AH�81�����ff.�@��UH��SH��H��H�����H��H��H��H��[]��@��U�SH��H�J�AH�0�����H���e��H���-��H�CH�H��H�] H��[]�@��UH��SH���n��H��H��H����H��H��[]�fD��ATUS����L�%��AH��H��I�<$�����t1I�<$H���]�H�èuKH�����tC�����u9H��[]A\�@H�����H��H��H���R9I�<$H��H���3��H��[]A\�H�����H�5��H��H��AH�81�踰�����ATI��UH��S�����t1H��L���.�H�èu^H�����tV�����uLH��[]A\�DH��� ���H��L��H��H�����H���G�L��H��H�����H�����H��[]A\�H����L��H���&��H��H�5+�H��H�*�AH�81�������SH��H���p��H��[H�����@��AWAVAUI��ATUH���SH��H�L�AH�0���H�ËE����uH�mL�eI�|$��I�D$H����I�L$H�SM�d$8H�BH�JL���֬��H���ά��I�D$ H�C M����H�CE1�I��A��uXH�����tO�E������H�kH��H���A����u1H���`H��`u%H�E��`H��`tH��H�������H�k��u5H�����t,H��у�����M�����M��u����H��H��[]A\A]A^A_�H��M��蕸��A��I��4uH�C4A��'����H��L���%���L�kM������I����������L��H���`�������H���`H��`����I�E��`H��`����L��H�����������H��r	M���<�H��H�Ѓ�����f��+��I�D$L�eI�D$H��� ���@���I�D$L�eI�D$�����L�}L�{A�������I����������L��H��������r���H���`H��`�b���I���`H��`�R���L��H�����B���fDI������i���I�E�������W���%H	�H��G���f�H���������H�E�ƃ���t%H	�H��у�������������f�H�����u����f�AWI��AVI��AUATUSH��H��(H�GH�@8H�h H��tH�mM����H���D$E1�H��H�D$@I�GL9x8�H��tI�G H��t	H;(��H�SH��t>1��"fD��uI�G H9B �UH�RH��t�����u�H�R�H��u�I�vL�����I��H����I�FH�D$A�������L��L���!�����u$H�|$tH��ƒ���t�Ā�wfDI�G H��tH�H��tH�@�����DD$�D$I�GM��H�@H��tH�@�����DE�M�M�������D$����E�����D$H��([]A\A]A^A_�I�L���l����F����L���ش��L���H�D$I��4u7I�F4H�D$����M���LD�M���M����u����L��L���E���H�|$M�n�����I����������L��L���}���������I���`H��`�����I�E��`H��`�y���L��L������i����������H�����E���������H���oxI� H��tH�?H��H�5ɭ���4���H�|$�`���I������S���I�E�ƒ����A���H
I�E�2����D$��������D$�����ATUH��SH��I���J��A��u	H�����uk�H�����@��u8H�����t/H�U��у����H��H�Ѓ�M��u	��u5DH�EH��H��H�p8�m�����x=[]A\�@�����u��@H�����t�H�������t�%H	�H�U�H���AH�5�H�81�蔨��@��AUATUH��SH��H���g���H��������u	H�����u4H�CH;X8��H��H��H��������_uVH��[]A\A]�H��Ѓ����H��r�@��u�H�����t�H�E������t�%H	�H��fDH��H��[]A\A]�)fDH�޿���H��I���0���L�kM��uwI�D$M����H�CH�CL�`8H�C �I�D$ �"��I������I�EI�EL�k I�|$ H��tH�?H��H�5c���讶�����f�L���H���I��4uI�D$4�v���@L��L�����M�l$A���X���I������K���L��L��������8���I�$��`H��`�'���I�E��`H��`����L��L��艻������@H��踰��I��4uH�C4���DH��L���U���L�cA������I���������L��H�������uH���`H��`tLH�CL��H��L�`8�l���������H���`H��`�����I�$��`H��`�~���L��H���غ���n���I�$��`H��`t�L��H��軺���H�"�AH�5�H�81�������ATUSH���м��I��H�CH�h8DH�[H��t7H9�t�����u�H�s@��u�H�����tՋ����u�L�����L��[]A\����UH��SH��H��H�����H�EH��u�&�H�@H��t�����u�H9Xu�H��[]�ff.���USH��H�����H��H��u�6@H�CH9X8t6H�[H��t�����u�H�sH������H�[H��u�H��H��[]�@H��H���������E1���?@��ATA��UH��SH��H�����D��H��H��E1�[H��]A\�?ff.�@��ATA��UH��SH��H�����D��H��H��A�[H��]A\�|?ff.����ATA��UH��SH��H���g���D��H��H��A�[H��]A\�<?ff.����SH��H���0���H��A�1ɺH��[�;���H��t&H��t�H��t&�DH�y�AH��DH���AH��DH�9�AH��D��H�uGH�GH��t>H�@H�@8H��t1�u-H�����t%H��у���tH�с�H��u��H��ff.���USH��@��u`H�����tWH�o@��u5H�����t,H�E�ƒ���t��tH����H���!���H9�t	@�H��H��[]�f�H��tH��t-H��u�H�H�AH�(��H���AH�(H��[H��]�@H�A�AH�(H��[H��]�@��AWAVAUATUH��SH��H���H��@��uH�����tH�E����tH��HH��[]A\A]A^A_�fDH�{@��u.H�����t%H��ƒ���t��t���1���H9�t�@�4���H�Ń�H�D$��H�������H�E�ƒ���t��H�EH��H������L�kL9��kH�kH��H���d�����u(H���`H��`uH�E��`H��`tH��H���ܵ��@I�}@���BH������5H��ƒ����$������Y���L9��M�eL��L�eH��A��uH���nL�{A��t"��A�������M�A����I�����u�M����H��AL� M���S*H�EH�|$�R���H������E���H�U�Ѓ�����H�E��'���H���������H��������
���%H	�H�U����H��H���u��L�kH�kL9������H�m�����4����I�ă�H�D$�ML��L���2��M�}M�eM9���I�@��u'H�����tH��ƒ���t���H��4�v��I�ƃ�H�D$�EI������8I��ƒ���t��I�L��L�����I�WI9���M�wL��L��H�T$ ����H�T$ ��uI���`H��`��#H�z@��u&H�����tH�������t������4H�T$(���H�T$(H����H�D$ �KH�������>H��ƃ���t��H�H��H��H�T$0H�L$(����H�T$0H�L$(L�BL9���H�JH��H��L�D$8H�L$0H�T$(�A���H�T$(H�L$0��L�D$8uH���`H��`�$fDI�x@��u&H�����tH��ƃ���t�����L��H�T$0H�L$(足��H�T$0H�L$(I��L�AA��u&I������t��H������������u	H�R��t�H�z@��u&H�����tH��ƃ���t����!�H��H�L$(�3���H�L$(H��H���jH�AH�|$ �NH��H��t<H�1������H�Q��u"H�����tH��׃���t��H	�H�1I�NH��t �I�������A�����u
M�A��t�I�@��u$H�����tH�������t���aD�4�~��H����H�D$ �]H�������PH��ƃ���t��H�H��L��H�L$(���M�GH�L$(M9��_I�OH��L��L�D$0H�L$(����H�L$(L�D$0��uI���`H��`�R"I�x@��u"H�����tH��ƃ���t����L��H�L$(蛱��H�L$(I��L�AA��u)I������t �pI�������A�����u
M�A��t�I�@��uH�����tH��ƃ���t	��� L��H�L$(� ���H�L$(I��M���EH�AH�|$ �AH�������)H��Ѓ�����H�A�u H�����tH��ƃ���t%H	�H�L��H�L$ 訤��H�L$ H��4��#I�F4�H�|$�4
L��H��tCI��ʃ�����I�V��u)H�����t H��փ���t��H	�I��M�t$H����M�}A��t%�A�������M�A���{I�����u�M���iH�b�AL�(M���M#I�D$H�|$�1L��H��tHI�$�ʃ�����I�T$��u,H�����t#H��փ���t��H	�I�$f�L�e����I����������I�$�ƒ���t��I�$L��L������M�}M9��
M�eL��L���7������~���I�E��`H��`�m���I�$��`H��`�\���L��L��袭���L���DI�@��u&H�����tH�������t���w��4���I�ă�H�D$��I�������I�$������t��I�$L��L����M�wM9���M�gL��L���d�����uI���`H��`��I�~@��u&H�����tH�������t������4���I�Ń�H�D$�m
I������`
I�E������t��I�EL��L���H���I�NI9��1M�nL��L��H�L$ 跳��H�L$ ��uI���`H��`�-fDH�y@��u&H�����tH��ƃ���t������4H�L$(�Y��H�L$(I����H�D$ ��
I��������
I��ƃ���t��I�H��L��H�L$0L�D$(�~���H�L$0L�D$(L�IL9���L�AL��H��L�L$8L�D$0H�L$(�ٲ��H�L$(L�D$0��L�L$8uH���`H��`�|I�y@��u$H�����tH��ƃ���t���<DL��H�L$0L�D$(�V���H�L$0L�D$(I��M�HA��u&I������t��H�������������u	H�I��t�H�y@��uH�����tH��ƃ���t	����H��L�D$(�ګ��L�D$(H��H���(I�@H�|$ �ML��H��t<I�0�������I�H��u"H������tH�	�σ���t��H	�I�0M�EH��t�f�I�������A�����u
M�vA��t�I�~@��u$H�����tH�������t���aDL������I��M���#
I�EH�|$�8L��H��t?I�u������}I�M��u$H������tH�	�σ���t��H	�I�u�M�l$H���zM�wA��t%�A�������M�vA����I�����u�M����H�ʍAL�8M���xI�D$H�|$��I��������I�$�Ѓ����

I�D$�u!H�����tH�������t%H	�I�$H���؝��I��4�qH�E4�k�L��L���E���M�wM�gM9��t���M�d$����f.�L�e����I�@��u&H�����tH�������t������4�f���I�Ń�H�D$��I�������I�E������t��I�EL��L��蘼��M�wM9���M�oL��L��������uI���`H��`�f�I�~@��u&H�����tH��ƃ���t������4趾��I����H�D$ �%I�������I��ƃ���t��I�L��L��L�D$(���M�NL�D$(M9��LM�FL��L��L�L$0L�D$(�J���L�D$(L�L$0��uI���`H��`��I�y@��u"H�����tH��ƃ���t����L��L�D$(�ӧ��L�D$(I��M�HA��u)I������t �I������\A�����u
M�vA��t�I�~@��uH�����tH��ƃ���t	����L��L�D$(�X���L�D$(I��M���T	I�@H�|$ �L��H��t<I�0������	I�H��u"H������tH�	�σ���t��H	�I�0M�EH��t�p
I������A�����u
M�A��t�I�@��u$H�����tH��ƒ���t����DL��舦��I��M����I�EH�|$��I������|���I�U�Ѓ�����I�E�u!H�����tH�������t%H	�I�UL������I��4�3I�D$4�3���L��L��腹��I�WM�wI9���M�v�;�M���9�H�H�AH�H���'I�F�����H��蠙��I��4����H��L���K���L�e�,�f�I�~@��u&H�����tH��ƒ���t������4�f���I��I��A���FH������:H�������t��I�L��L��蜸��I�NI9��M�~L��L��H�L$����H�L$��uI���`H��`��f�H�y@��u&H�����tH��ƃ���t���+�H��蘤��H��I�O��u,H������t#�fDI������A�����u
M�vA��t�I�~@��uH�����tH�������t	����L���%���I��M���I�GM����I����������I��ȃ�����
I�G�u H�����tH��ƃ���t%H	�I�L��躗��I��4��I�D$4�m���f�L��L���%���M�wM�oM9������M�m���L��L�����I�NM�nI9����M�m����M�t$��fDH��H��H�T$0H�L$(軶��H�T$0H�L$(L�BH�JL9���H�I���M�d$���fDL��L���u���I�NI9���M�~���M������H�?�AL�8�2����M�l$����fDL��蘖��I��4�����L��L���C���M�l$��M���2���H��AL�0�\����L��L��L�D$(���M�NL�D$(M9�M�F�.���M�@����H��L��H�L$0L�D$(諵��H�L$0L�D$(L�IL�AL9��j���M�@�����H��L��H�L$(�p���M�GH�L$(M9�I�O���H�I�a�I�N��H���>�H�'�AH��t���H������Y�@L���x���I��4�����L��L���#���M�|$�$���M�������H�ɄAL�0����L��H���V�������H�E��`H��`�n�I�$��`H��`�]�L��H������M�@L����I��4�aI�E4�e���L���є��I��4��I�E4����L��H�L$ 譔��H�L$ H��4��H��L��H�L$ �N���H�L$ I�N���M���!�H��AL�8�P�M�E����H���F�H�σAH��u�M�������H���AL�0����M�E�^���L��L���ې��M�uA������I���������L��L�����������I�E��`H��`���I���`H��`���L��L��聞�����@H��H�T$0H�L$(覓��H�T$0H�L$(H��4��H�A4�k�L��L���:���M�}A�������I��������L��L���t���������I�E��`H��`����I���`H��`�����L��L���������H������^�@L�����I��4��I�G4����H��H��H�L$0H�T$(茏��H�T$(H�L$0H�Q�����H��������H��H��H�L$(H�T$0賤��H�L$(���l�H�H�T$0��`H��`�W�H���`H��`�G�H��H������H�L$(�2�@L��L���]�������I�$��`H��`���I���`H��`���L��L���ɜ�����@M�~M����L��L�D$(���I��4L�D$(�&I�@4���H��H�L$(轑��I��4H�L$(�~H�A4��L��H�L$0L�D$(菑��H�L$0L�D$(H��4��I�@4��L��L���#���M�wA���D���I������7���L��L���]������$���I���`H��`����I���`H��`����L��L���ʛ����D�H�������@H�kH��H�������uH���`H��`�.H�mH��H���֢����L��L���f���L�D$(M�pA���T���I������G���L��L��蛢��L�D$(���/���I���`H��`����I���`H��`����L��L������L�D$(��f�H��L�����H�L$(L�yA����I��������H��L������H�L$(�����H���`H��`���I���`H��`���H��L��肚��H�L$(���L��H��L�D$0H�L$(�[���H�L$(L�D$0I�H�����H���������L��H��L�D$(H�L$0股��L�D$(�����I�H�L$0��`H��`��H���`H��`�o�L��H�����L�D$(�Z�L��L���-������s�I�$��`H��`�b�I�E��`H��`�Q�L��L��蘙���A��H������R�H��L��H�L$ �̠������I�H�L$ ��`H��`���H���`H��`���H��L���4��������H���9���@�H������o�@��讟��L9��}�M�g��M�eL��L���-�����uI�E��`H��`�e	M�d$L��L���������H��������L��L��L�D$ �؟�����h�I�EL�D$ ��`H��`�R�I���`H��`�B�L��L���?����2�f.�L��L��L�D$ 耟�������I�EL�D$ ��`H��`�z�I���`H��`�j�L��L������Z�f���薞��L9����M�wM�t$A�����L��H�����H���������f.�H��L��H�T$0H�L$(L�D$8�֞��H�L$(H�T$0���+�H�L�D$8��`H��`��I���`H��`��H��L���4���H�T$0H�L$(���DM�gL��L���q�����uI���`H��`�<M�d$L��L���M������H���d��7�@�H�������@�H���y��I�@H��L��H�L$�����h�I�H�L$��`H��`�S�H���`H��`�C�H��L���X����3�������L9��-�M�o�������L9��a�M�nM�l$A�����L��H����M�wL��L���S�����uI���`H��`�}M�vL��L���0����k�H��L��H�L$(L�D$0����H�L$(�����H�L�D$0��`H��`�t�I���`H��`�d�H��L���y���H�L$(�O��L��L��H�L$8L�D$(L�L$0讜��L�D$(H�L$8���c�I�L�L$0��`H��`�N�I���`H��`�>�L��L��H�L$0����H�L$0L�D$(���L��L��L�D$(L�L$0�;���L�D$(���v�I�L�L$0��`H��`�a�I���`H��`�Q�L��L��螔��L�D$(�<�@��H�T$ �A���H�T$ H9���H�JI�N����H��H�����������L9��3�M�~�3�M�nL��L��苛����uI���`H��`�XM�mL��L���h�����M�oL��L���T�����uI���`H��`��M�mL��L���1����D���肚��L9����I�O�+����f���L9��=�M�FM�EA����L��H�������H�L$ �0���H�L$ H9��Z�L�AM�EA���H�L��H����H�JH��H��H�L$0H�T$(苚��H�T$(H�L$0��uH���`H��`�H�IH��H��H�T$0H�L$(�T���H�L$(H�T$0����H�T$8L�D$0H�L$(茙��L�D$0H�L$(H�T$8L9��,�M�@�B�M�~L��L�������uI���`H��`��M�L��L���ٙ���T����*���L9����M�v��������L9����M�����H�L$���H�L$H9����H�I��L�AL��H��L�D$0H�L$(�]���H�L$(L�D$0��uH���`H��`��M�@L��L��H�L$0L�D$(�&���L�D$(H�L$0���M�FL��L��L�D$(����L�D$(��uI���`H��`�M�@L��L��L�D$(�֘��L�D$(��I�OH��L��H�L$(踘��H�L$(��uI���`H��`��H�IH��H��H�L$(苘��H�L$(����L�L$0L�D$(�͗��L�L$0L�D$(I9��Z�M�I�f���H�L$8L�L$0L�D$(蘗��L�L$0L�D$(H�L$8L9����M�I����L�D$0H�L$(�c���L�D$0H�L$(L9��(�M�@�4���H�T$0H�L$(�3���H�T$0H�L$(H9��`��H�R�l��H�E��`H��`���H��H���;���������I9��6�M�v�8�I�$��`H��`��L��L������	�I���`H��`�I��L��L��H�T$ �ُ��H�T$ �/����H�L$(耖��H�L$(L9�����M�������H�L$0L�D$(�U���H�L$0L�D$(H9����H�I�����L�D$(�*���L�D$(L9��7�M�v�C�I�$��`H��`�����L��L���7����z���I�E��`H��`���L��L��������I�E��`H��`���L��L��H�L$ ��H�L$ ��I���`H��`�F�L��L���ˎ��H�L$�1�I�$��`H��`�����L��L��襎�����H���`H��`����H��H��L�D$8H�L$0H�T$(�v���L�D$8H�L$0H�T$(���I���`H��`�s���L��L���G����c���H���`H��`����H��L��L�D$0H�L$(����L�D$0H�L$(�z��I���`H��`�2�L��L��L�L$0L�D$(���L�L$0L�D$(��I���`H��`�t�L��H��L�L$8L�D$0H�L$(谍��L�L$8L�D$0H�L$(�F�H���`H��`�M���H��L��H�L$(�|���H�L$(�3���I���`H��`����L��L��L�D$(�R���L�D$(���I���`H��`�Y���L��H��L�D$0H�L$(�#���H�L$(L�D$0�5���I�E��`H��`�#���L��L���������H���`H��`����H��H��H�L$0H�T$(�Ό��H�T$(H�L$0���I�E��`H��`�����L��L��裌�����I���`H��`����L��L��背�����L��L���s~��M�|$I������l�L��L��趓�����Y�I�$��`H��`�H�I���`H��`�8�L��L���"����(�H��L���~��L�eI���������L��H���V���������H�E��`H��`����I�$��`H��`����L��H��������H��L��H�L$ �}��H�L$ I�NH�������F��H��L��H�L$ ������.��I�H�L$ ��`H��`���H���`H��`�	��H��L���N������L��聀��I��4�i�L��L���,}��M�l$A������I���������L��L���e������p��I�$��`H��`�_��I�E��`H��`�N��L��L���Њ���>��H������I��4�+�H��L���|��L�eA���������L��L���|��M�l$�i���L�����I��4��L��L���i|��M�|$A���e����L��H�L$ ���H�L$ H��4����H��L���.|��H�L$ I�N�������t������ATA��UH��SH�����D��H��H��H��[]A\����D��AUA��ATI��UH��SH��H���1���H��D��L��H��H��[]A\A]�V���fD��H�
uA��H��H��H�8饫��D��ATI��USH��H������L��H������H��H��[H��]A\�ݱ��ff.�f���ATA��U��SH��H���ؑ��D���H��E1�[H��]A\鑶�����H�5-BSH��H��t|��tW�����؃�����H��������H�{1���H��1�H��tH�RH��t�:tZ[��H�����u�H��tYH��u�H��rAH�8뷾H�=�z�_���H��H�u,B�d���H��qAH�8�@H�1tAH9B��[���DH��mAH�8�`���f�H��lAH�8�H����H�)qAH�8�8����H��sAH�8�(������UH��SH��H��H��� txH��H�V��H��u7H�
H��$H��H�=9�1��ܡ��H��H�sAH�8H��[]�z��@�H�=x诤��H��H��褍��H��_H����H�~u�H�V ���ATUSH��H�H�$H�D$H�CH��t
H�@����uH�H��H��[]A\�f.�H��H��I����.L��H�5�w��H���p���L�d$L�eM��tH�ClAH�[H;uH�$H��H��[]A\�f�I�\$��u�H�����t�H��L������u�I�$��`H��`u�H���`H��`t�H��L���j�������AWA��AVAUI��ATI��USH��xH�L$XL�D$`L�L$h�:H�D$ ����D$L��Å����1��D$<*�kE1�<:u�BA�H���D$<&u�D$�B�����+�D$D9���H��$��D$(H�D$0H�D$@H�D$8}-E��t(E�o�Ic�I�<�H���S�L$�����E��L�L$8�����S�H�|$0L��E1�M�T��T$(E1�I���։T$�(��A���L�H�	H��tH�H�H��L9�t��/v�L��A�I������T$E��t�t$(��E��tL�D$0L��D��D$E1�E1�)��-��A���L�H�	9�~2H��t
Lc�O��L�������~*��/v�H��A�H��H�	9��H��t�H���E��t�T$(E��tH�|$0�T$������~rH�|$8݋T$(E1�H�L$0E1��,D��A���H�H�H��t
Hc�I�4�H�0��9�t��/v�H��A�H����DE��t�T$(E��tH�L$0��E��t+�D$(��/���ƒ�HT$8�D$(H�H��tH�T$ H��D$����A9��]H��xD��[]A\A]A^A_�@E��D$(A)�D��)߃�/���ƒ�IщD$(I�����H��H�T$tHc�Hc�I�4�����H�T$H�D������A�}A�]�ѝ����0I�U�D$�����A�EA�}��0�D$訝��I�U������A�mI�UA�E�D$��0����fD�D$(��/���ƒ�HT$8�D$(H�*�5�������H�E���L�L$0I�AI�H�D$0������H��H�T$����蔄��H�T$H�����H�T$0H�BH�D$0�z���D�}��H�D$ H�������H�|$ �:k��H�|$ �ED�H��HD�H�D$ ���f.�H�T$0H�BH�*H�D$0�j������5����m��H�E����@�D$D$D9��:����2���f.��zH�T$�B���H�T$����u'�B�D$H���g���f�1ۋT$(H�|$0�|����j�BH���D$��0�9���E�����|$u�T$T$�t$D���#���L��H�=��1��r���f�AWA�AVM��AUATA��U��SH��H�������t�����D�|$I��H�$��H��tkDH�C H��tH�8H��tL��H�5}p���({��H��Ѓ���u@��u+E��t!��uH�����t��t��uf�E��t	H�[H��u�荂��H�<$L��H��H����z��H�<$蒲��H��H��[]A\A]A^A_�H��H��p1�1���v��H�$�����&���H�C1�H�@8H9�H��@��E1��
�����L�q��1�����ff.���L�%q��1����ff.���L�5q��1����ff.���L�Eq��1��n���ff.�����t7��uR�Ѓ���thH��tr��t}H�RL��p����(����H�����u�H��t!H��u�H�EiAH���H��hAH��@H�ydAH��@H�IcAH��@H��gAH��@H��jAH��x��������t7��uR�Ѓ���thH��tr��t}H�RL�"p����x����H�����u�H��t!H��u�H��hAH���H��gAH��@H��cAH��@H��bAH��@H�9gAH��@H�	jAH��x��������t7��uR�Ѓ���thH��tr��t}H�RL��o��������H�����u�H��t!H��u�H��gAH���H�)gAH��@H�cAH��@H��aAH��@H��fAH��@H�YiAH��x������ATUSH��H�� ����H�D$���_�����؃�����H��������H�[H�CH�h8茎��1�H�D$H�D$H���‰T$H��������H������H��у����
���H�U H��t"H�:H��tH�T$H�5_l���
w��H�D$H��H��toH�[H��tf��uaL�d$f�H�����tJH��Ѓ���t=��u��u3H9�t H�C H��tH�8H��tL��H�5�k���v��H�[H��t��t��8~��H�|$H�5,m��H��H���qv��H�|$�7���H�� H��[]A\�H����������H��tUH�������H��eAH����DH���1����DH�L$H�l1��Er���@���H��dAH��h����H��`AH��X����H��_AH��H����H�YdAH��8���H�*gAH��)���f�������u	H�����tX��t3��u^�Ѓ���tdH��tn����H�RL�l�������H�����u�H��tQH��u�H��dAH��Ͽ�F���fDH�)dAH��@H��^AH��@H��cAH��@H��_AH�����H�YfAH��p���P�1��T���@��AW�A��AVI��AUM��ATI��USH��HH���L$(LD��D$,��y���D$,�L$(M��t*�D$(B�8��~��L��I�T�H�4H��H9�u�E���A�G�1�H�$H�D$8H�D$H�D$0H�D$�&f.�L��H�����H�EH;,$��H��I�<����I��M��t6H�D$0L��H�D$M��tI�L!H�T$H�t$H���:r��L�D$���mH��u��L�D$�e��L�D$H���{����!L�D$H�T$H��L���c��L�D$��t�H�EH;,$�`����H���3D�|$�T$(M���D$�D$��������H�D$81�H�$H�D$0H�D$�>f�L���x H�$H�t$H���gq����tH�D$8I�D��D$��9l$(~KB�\=Hc�I�<��ʞ��H�D$0M��u�L��H�D$ �# H�$H�t$ H���Bb����u���9l$(�D�D$,��u$�|$tI�D$H��t7H�@1�H��M��t0H9�rX�D$H��H[]A\A]A^A_ÐH�D$8I�D��,����M��u�1��T$���D$����H�=��H����H��蜛��L��D|$(�oH��E��~6A�G�I�l�H�D$8H�$I�>I���ٝ��H�4$1�H��H�D$8�6p��I9�u�H�=1BtCH�5(B1�1�1�L����s���uH�����t
�����t2H�ebAH�5�{H�81��b���H�=�{�ç��H��B�H�=�{H�����H���Ӛ����H���H�|$��uH��H�5�BH�L$��a���H���ff.����UH��H���S1�H��H��H�5�B�
s��H��H��H���L�������HN�H��[]�D��UH��H���S1�H��H��H�57B�r��H��H��H�����H��H�[]H��?���ff.����UH��H���S1�H��H��H�5�B�jr��H��H��H��謕��H��H�[]H��?H�Ѓ��f���UH��H���S1�H��H��H�5�B�r��H��H��H���\�������HO�H��[]�D��H9�t/H��1�H�*H�<$H�=OH�t$H��貕��H���D��f���H��H�=�y1��:���1�H�=�y�,���1�H���D��SH�WH��H�7H�=:H���i��H��tH�SH�3H��蝔����t	1�[�D�[�f���H���H�t$��uH�5�BH�L$��}��H���ff.�@��UH��SH��H�����H�����tH��1�[]�f.�H��H���u���H�¸H�����u�H��[]�ff.�f���USH��H��@��u	H�����u1H���Lo��H��H������H��H�5yH��H��^AH�81��^�������t�H���ј��H����ff.����UH��H��H��SH��H�=����H������H��4t(H��t"H��H��H���4���H����[]H�H�D�@H���[]�@��SH�=�x����H��^A�H�����H��H�5�lH����H�;�H�;���H�5�ύ��H�;�H����H�50l贍��H�;�H�e���H�5Oz虍��H�;�H�����H�5�k�~���H�;�H����H�5�w�c����H�=�e�"���[H�bB�f���H�G����H�G����1��f���H��������fD��H����*1��xn�����U��*1�SH��H��H�H���Kn��H�{��*H��1�H���0n��H��H��H��[�+1�]�n��AVA��AUI��ATI��USH�/�]�c���H�8���W��u[1�]A\A]A^�f�A��.���_uKE��u�H��A�H�iI�m�Q�WH�Ӏ�tՀ�_t�I�$E1��H�8I�$I�M��f�E��tH���I�mH���}_t�[�]A\A]A^�@����b���f���U1�1�SH��H��H�5(B�m��H�5$BH��1�H��1��l��H��H��[H��]����ff.�����f.���H�wH����ff.�@��H��XA��H��H�5�BH�8�Ay�����UH��SH��H��H���C}��H��� tSH����H��uhH�CH�H�5�BH��訡��H� t?H��H�H�5�BH��艡��H��H��[]��H�SH��uH�C ��H�[ H���H��ZAH�5�tH�81��>Z��ff.���USH��H��H�wH����H��H��H���xg��H��H��[]�ff.���SH��H��H������t7H�H�{H�$�����t3H�H��H�D$�>q��H��H�D[�H���؋����fDH���ȋ����fD��U1�1�SH��H��H�H�5B�j��H�{H�5�B1�H��1���j��H��H��[H��]�7T
���H�wH��ff.�@ATI��UH��SH��H��������@@��uH�����t������@����H����H�}A��H�5_�H��H����r��H�5XB1�1�H�}�3j��H��A��H��H���2V��H��� urH��H�S���<������tsH�ߺH�5���k��H��H��[]A\�f�1����<��i��H���a���H�}A��H�5ΆH���\���H�CH�P�H�C�<蓇����u��H�5��H���;k���t���fD�Gf.�����fP��u���@H��H9�����H���H��H��?H)�H	�H��H�|$�~D$�fD��U�H��H�=/�SH���b���H�5CRAH��H���0���H��H����T��H�ߺH�5s��j��H��H��[]����H�5URA��ATA��UH��SH�H���8.ukH�EH��D��H���.H�H�E�]�����t9H���T�H�EH��D��H���/H�H�E�2�������f.�H�m[]A\�fD������t�H��<.t��ƒ�߀�EuKH�U�H�H�EH�PH�UH���JՁ�u�PH�H�EH��D��H�������t�H��</�P���[�]A\�fDS�/H���f��H��umH�5=qH������H��tI1�H����_��H�0fH~�H9�tcfH~�H��<������t7H��H��u@[�fDH��1Ҿ
[�R��H��1�[���
DfH~�[H��H��H���D[�"c��f���H������H������H������H��@��tH��x(�H���1����<�f��H��t�H�5BH��tH��PAH�8H�����fD�H�=p����H��H��
B����H���.�V��H�@H�@H���f�����H���������Gf.���@��uH�����t�������@��tH��x.�H���f�1����<�e��H��t�H�5
BH��tyH��OAH�8H������fDH��H9�t�H���H��?H)�H��H��H	�H��H�D$�~D$H��f.��n���fP���]���H�5�BH��u�@�H�=�n�/���H��H��B�g���H���*������ATI��H�5xBUSH��L����n��H�C�uH��H�����uhH�5IBL���n��H��H�C�uH�����uH��[]A\�fDH��H���o����u�H���`H��`u�H�E��`H��`t�H��H���g���H��H����n����u�H���`H��`�y���H�E��`H��`�h���H��H���Mg���X������H��KASH��H�H�0����H����H�{@����@��tPH�5�B1����c��H��t[H�{@��uH�����t
�����tnH�5?B1�1�[�}c��DH�����t������
t��u�H�G�tH��t�H�1NAH��H�5glH�81��Q��DH��t���f�1Ҿ
[�CN����H��JASH��H�H�0����H����H�{@����@��tPH�5�
B1����b��H��t[H�{@��uH�����t
�����tnH�5W
B1�1�[�b��DH�����t������
t��u�H�G�tH��t�H�AMAH��H�5
lH�81��P��DH��t���f�1��iQ��H�0fH~�H9�t%fH~�H��<������tH��H��u[�[�^��fH~�[H��H��H������H�uIASH��H�H�0�Ղ��H��uxH�{@����@��t<H�5�	B1����a��H��tGH�{H�5$	B1�1�[�ja��f.�H�����t������
t��u�H�G�tH��t�H�LAH��H�5ojH�81��}O��DH��t��ِ��AT1�1�I��U��SH��H��T�[��H��HAH�{H�0���H���|H�{@����@��t@H�5�B1����`��H��tKH�5BH��twH�{L��[��]A\�5m��DH�����t������
t��u�H�G�tH��t�H�9KAH��H�5�iH�81��N��DH��u�H�5�BH��u���H�=�i�?���H��H��B�i�����ATUSH��H�@����@��uH�����t�����
t*���UH�5�B1����_��H���LH�C�u\�uH�����t�����
t-����H�5nBH�ǹ1���b_��H��u%H�CH�{H��[]A\�	�f�H��H��u�H�{H�5EB1�1��$_��L�%�FAH�{H��I�4$�-���H����H�{I�4$����H����@����H��������E������1�H���M��H�0fH~�H9�t'fH~�H��<��������H��H��t[[]A\�Z��f.�H�G������H�������H�{H�5eB1�1��D^��L�%�EAH�{H��I�4$�M��H��u8H��[]A\�H���s����DH�5�B[H��1�]1�A\�]��f�H�{I�4$���H��u����f�H�P���j���H��������\���H��H��H��H���y������UH��SH��H��H��H��IAH�0�~��H��u	1�H��[]�H�E������ƒ����.H���4<�|H�PH�C�����L��������H���<�4H�@H9�u�H�E�������ƒ����7H���<<��H�LAH���H������h���H����H���U���H�
JAH��J���f�H������p���H���zH���]���H��IAH��R���f�H�IAH��	����H�����u H����H��uH��IAH��	DH�PH�C�tL����������EH���h<uPH�!KAH��H@H��HAH�����f�H�����u H���9H��uH�"IAH��	DH�@H9�����@��t	���%H�5mB1�H��H���c[��H����������H�HAH��-����H�	HAH��@H��BAH��!����H��BAH������H�iGAH������H�YGAH����H��CAH�����H��CAH�����H�	JAH�����H��IAH��y���H�ZBAH�����H�KBAH�����H��FAH��p���H��FAH����H�>CAH�����H�/CAH��C���H�H�H9��������H��AAAVAUI��H��ATUH��SH�0H���={��H��u`���g��uH�����t�����
t?����1���H��H�5�B��Y��H��t�`BI����DH�5yB1�1�H���Y��H����H�5]B1�1�H���Y��H����H�5AB1�1�H���mY��H����H�KH�}�1��+�KY��H�KH�}�I�ƾ-1��/Y���.L��H���I��I��H�X��u
H�������M�t$A��u
I������^[L��]A\A]A^�f�H�5�B1�1�H����X��H���(����!f�H�}H�ٺ1��+�X��H�mH�þ.L����H��I��H�h@��uGH�����t>H��H���c����u/I�$��`H��`u"H�E��`H��`tH��L���[��f.�I�\$���D���H������7���H��L���b�����$���I�$��`H��`����H���`H��`����H��L���&[�����H�K��+1����W��H�K�H��I�ƾ-�w���DH��H����������L��L���%b���������I�$��`H��`�~���I���`H��`�n���L��L���Z���^���@H��H����a�����/���I�$��`H��`����H���`H��`����H��L���IZ�����@H�C��<����J���ff.�@��H�E?AATUH��SH��H�0H����w��H��u;���ZH������M������?H��H��[]A\�q���H�5A�A1�1�H���mV��H��t�@��uZH�����uH����H����H�}�.�F��I��H�X��u	H�����uSI�D$H��[L��]A\�;q��@��u"�����tdH��t|@��u�H�%EAH�8�H��BAH�8�@H��H���e`����u�I�$��`H��`u�H���`H��`�����H��L����X���q���H�==AH�8�C���H��BAH�8�4���H��AAH�8�%���H�0>AH�8����H���s��H��H���s��H��H�5#_H��H��;AH�81��C�����AVH�5�A1�1�AUATUSH��H��T��L�cH��H��<AH�0���������I������tH���{����L�kH����u��H��ua@���?@��uH�����t�E����
t=���\1���H��H�5^�A�aT��H��t��AL���1H�5	�A1�1�L���5T��H��tH�5�A1�1�H���T��H��uYH�5�A1�1�L���T��H���,H�5��A1�1�H����S��H����I�|$H��1��+��S��M�d$H�ž.L���D��H��L�`A��uEI�����t<L��H���1^����u-H���`H��`u!I�$��`H��`tL��H���V��f�H�k@��u<H�����t3H��H����]����u$H���`H��`uH�E��`H��`tH��H���ZV��H��[]A\A]A^�fDH������A���H���yH���.���H�a@AL�(�#���f�H�M��+1���R��H�M�L��I�ƾ-1��R���.L��H����B��H��H�h@��u
H�������L�sA���I���I������<���L��H����\�����)���H���`H��`����I���`H��`�	���L��H���XU�����H�MI�|$�1��+�Q��H�MI�|$�I�ƾ-�9���H��>AL�(����f�H��H���U\�����<���H���`H��`�,���H�E��`H��`����H��H���T������@H�A:AL�(���f�H��H���������H��=AL�(���f�H�i@AL�(�k����H�E������f���AVH�5�A1�1�AUATUSH��H���P��H�5�AH�{1�H��1���P��I��H�|8AH�0����������I������tH���x����L�kH���q��H��uf@���<@��uH�����t�E����
tB���Y1���H��H�5;�A�>P��H��t��AL���.�H�5�A1�1�L���
P��H��tH�5�A1�1�H���O��H��uYH�5��A1�1�L����O��H���$H�5��A1�1�H���O��H����I�|$H��1��+�O��M�d$H�ž.L����?��H��L�`A��u=I�����t4L��H���	Z����u%H���`H��`uI�$��`H��`tL��H���R���H�k@��u<H�����t3H��H����Y����u$H���`H��`uH�E��`H��`tH��H���:R��H��[]A\A]A^�fDH������D���H���yH���1���H�A<AL�(�&���f�H�M��+1���N��H�M�L��I�ƾ-1��{N���.L��H����>��H��H�h@��u
H�������L�sA���I���I������<���L��H����X�����)���H���`H��`����I���`H��`�	���L��H���8Q�����H�MI�|$�1��+��M��H�MI�|$�I�ƾ-�9���H��:AL�(����f�H��H���5X�����<���H���`H��`�,���H�E��`H��`����H��H���P������@H�!6AL�(���f�H��H����������H��9AL�(���f�H�I<AL�(�n����H�E������f���AV1�AUI��H��
ATUSH��H��L�D$��F������H�$��uk����H�����������
tK�ڃ���tA��t<��t7H��4AH��H�0�m��H���PH�5'�A1�1�H���SL��H���4H�\$����ZH��3AH��H�,$H�0�Dm��H���{H�5��A1�1�H���L��H��tH�5��A1�1�H����K��H��uWH�5��A1�1�H����K��H���_H�5��A1�1�H���K��H���H�}H�ٺ1��+�K��H�mH�þ.L����;��I��H�h@��uBH�����t9H��H���V����u*I�$��`H��`uH�E��`H��`tH��L���}N��DI�\$��u<H�����t3H��L���U����u$I�$��`H��`uH���`H��`tH��L���2N��H��L��[]A\A]A^�f����_�����[H�43AH��H�0��k��H����H�5q�A1�1�H���J��H���~H�=2AH�\$H�,$H�0H���k��H���U����������21���H��H�5@�A�CJ��H���������AI�������2���@�؃������������DH�,$��@��uV@��u
H�����������t;H�J2AH��H�0��j��H����H�5��A1�1�H���I��H����H�,$H�O1A��H�D$H�0�j��H���`����<���fDH�K��+1���VI��H�K�H��I�ƾ-1��;I���.L��H���9��I��H�X��u
H������*M�t$A������I���������L��L���S������I�$��`H��`���I���`H��`����L��L���K�����f�H�KH�}�1��+�H��H�KH�}�I�ƾ-�;���DH������������
t����t��t	�������H��/AH��H�,$H�0�Ui��H������H���������������
������������H�C����H�����������fDH��H���}R��������I�$��`H��`�����H���`H��`�����H��L����J�����@H��H���y����U��������������,����H�/AH��H�,$H�0�zh��H�����1���@�U����
�����������������~������:����p���H��-AH�5QH�81��^5��ff.���UH��SH��H��H��H��2AH�0��g��H��uiH�2/AH��H�0��g��H��tH�5s�A1�1�H���F��H������t
@���'H�5x�AH��H��1�H�ߺ[]�hF���H�}H�K@��t��u%H�5>�A1���:F��H��uH��1�[]�@H�H�H9�u�H�}H�K@��t	����H�5��A1����E��H��t�H���[]�f�H�}@��tN��tIH�H�H9�u�H�}@����@��uH�����t�����
�f�����tp���H�5y�A1�H�ٺ�rE��H���4�����H�H�H9������^���@H�H�H9������F���H���=�����H�G����H���#�������ff.����AVH�5��A1�1�AUATUSH����D��H�{H�5��A1�I��1���D���tH��L��H�H��tH����/L��1��D��H��H�{H�5j�A1�1��D��H���*H��1��rD��H�{H�5g�A1�H��1��[D���tH��H�H��tH��L���/1��4D��I��H�{H�5��A1�1��D��L��*�H��1��D��I��H��+AH�0�������o��I������tH���p���wL�kH����d��H��uf@���@��uH�����t�E����
tB���I1���H��H�5k�A�nC��H��t���AL���.�H�5�A1�1�L���=C��H��tH�5��A1�1�H���%C��H��uYH�5��A1�1�L���
C��H���$H�5��A1�1�H����B��H����I�|$H��1��+��B��M�d$H�ž.L���3��H��L�`A��u=I�����t4L��H���9M����u%H���`H��`uI�$��`H��`tL��H���E���H�k@��u<H�����t3H��H����L����u$H���`H��`uH�E��`H��`tH��H���jE��H��[]A\A]A^�fDH������D���H���aH���1���H�q/AL�(�&���f�H�M��+1����A��H�M�L��I�ƾ-1��A���.L��H���1��H��H�h@��u
H�������L�sA���I���I������<���L��H���K�����)���H���`H��`����I���`H��`�	���L��H���hD�����H�MI�|$�1��+�A��H�MI�|$�I�ƾ-�9���H��H���}K�����T���H���`H��`�D���H�E��`H��`�3���H��H����C���#���@H�i)AL�(�����H��H���4��������H�A-AL�(���f�H��,AL�(����H��/AL�(�~����H�E�����f�AVH�5��A1�1�AUATUSH���@��H����H�{�#�H�{H���W�H���*H��1���?��H�{H���T�H�{I���ȇ�*L��H��1��?��H��H��H��+AL�(H�J'AH�0�`��H��ue@���;@��uH�����t�E����
tA���1���H��H�5B�A�E?��H��t���AI�܅����H�5��A1�1�H���?��H��tH�5��A1�1�H���>��H��uWH�5��A1�1�H����>��H����H�5��A1�1�H����>��H���@H�{H��1��+�>��H�[H�ž.L����.��I��H�X��u
H�������I�l$@��u
H�������[L��]A\A]A^��H��[]A\A]A^�@�H�M��+1���&>��H�M�H��I�ƾ-1��>���.L��H���[.��I��H�X��u
H�������M�t$A���p���I������c���L��L���[H�����P���I�$��`H��`�?���I���`H��`�/���L��L����@������f�H�MH�{�1��+�g=��H�MH�{�I�ƾ-�;���DH��H����������H��H����G�����;���I�$��`H��`�*���H���`H��`����H��L���1@���
���@H��H���}G�����Z���I�$��`H��`�I���H���`H��`�9���H��L����?���)���@H��L���5G�����*���I�$��`H��`����H�E��`H��`����H��L���?�����H�E��$��������AVH�5��A1�1�AUATUSH���%<��H����H�{�3�H�{H����H�5��A1�H��1���;��H���*H��1���;��H�{H���Q�H�{I���%��*L��H��1��;��H��H��H��'AL�(H�G#AH�0�\��H���f@���D@��uH�����t�E����
tB���1���H��H�5;�A�>;��H��t���AI�܅����H�5��A1�1�H���
;��H��tH�5��A1�1�H���:��H��uWH�5��A1�1�H����:��H����H�5��A1�1�H���:��H���HH�{H��1��+�:��H�[H�ž.L����*��I��H�X��u
H�������I�l$@��u
H�������[L��]A\A]A^��H��[]A\A]A^阁�H�M��+1���:��H�M�H��I�ƾ-1��9���.L��H���K*��I��H�X��u
H�������M�t$A���h���I������[���L��L���KD�����H���I�$��`H��`�7���I���`H��`�'���L��L���<������f�H�MH�{�1��+�W9��H�MH�{�I�ƾ-�;���DH��H����������H��H���C�����;���I�$��`H��`�*���H���`H��`����H��L���!<���
���@H��H���mC�����R���I�$��`H��`�A���H���`H��`�1���H��L����;���!���@H��L���%C�����"���I�$��`H��`����H�E��`H��`����H��L���;����H�E������������AV1�AUI��H�!�ATUSH��H��L�D$�2�����FH�$��uk���H������������
tK�ڃ���tA��t<��t7H�* AH��H�0��X��H���H�5g�A1�1�H���7��H����H�l$��@���	L�$$H���=�����*L��H��1��V7��H��H�������*L��H��1��47��H��H��H��AH�0�?X��H��ub�����uH�����t�����
tA���@1���H��H�5��A��6��H��t�b�AI���5�H�5y�A1�1�H���6��H��tH�5a�A1�1�H���6��H��uWH�5I�A1�1�H���u6��H���,H�5-�A1�1�H���Y6��H����H�}H�ٺ1��+�86��H�mH�þ.L���&��I��H�h@��uGH�����t>H��H���@����u/I�$��`H��`u"H�E��`H��`tH��L���9��f.�I�\$��u<H�����t3H��L���R@����u$I�$��`H��`uH���`H��`tH��L����8��H��L��[]A\A]A^�f.�@����H��������U����
��������������������������H��AH��H�0�:V��H���oH�5��A1�1�H���4��H���SH�l$L�$$�r�����؃��������C���D����u��B���L�$$D��A��uVA��u
I�����������t;H��AL��H�0�U��H����H�56�A1�1�L���b4��H����L�$$H�D$�����f�H�K��+1���&4��H�K�H��I�ƾ-1��4���.L��H���[$��I��H�X��u
H�������M�t$A���I���I������<���L��L���[>�����)���I�$��`H��`����I���`H��`����L��L����6�����f�H�KH�}�1��+�g3��H�KH�}�I�ƾ-�;���DH��H����=�����S���I�$��`H��`�B���H���`H��`�2���H��L���I6���"���@H��H���<��������A�$����
����������w������n������*����`���DH�C�����H�#AH�5�<H�81��� ��f.���H��AAVAUATUH��SH�0H��H���|S��H����H�MH�{�1��+�:2��H�MH�{�+I�ĺ1��2��H��H��AH�0���X������I������tH��������L�kH����R��H��uF@���d@����H��������E����
t����H�E��0DH�5I�A1�1�L���u1��H��tH�51�A1�1�H���]1��H��uYH�5�A1�1�L���E1��H����H�5��A1�1�H���)1��H����I�|$H��1��+�1��M�d$H�ž.L���R!��H��L�`A��u
I������HH�k@��u
H�������H��[]A\A]A^�DH���������H���iH�������H�	AL�(����H��AH��H�0�Q��H��tH�5*�A1�1�H���V0��H���H��H�ߺ+[]A\A]A^�W��DH�MI�|$�1��+�0��H�MI�|$�I�ƾ-1��/���.L��H���I ��H��H�h@��u
H�������L�sA������I�������L��H���I:�������H���`H��`����I���`H��`�����L��H���2������H�9AL�(����H��H���������AL��������}���fDH�{1�H���+L�c�/�����������ڃ�����H��������H�"AH�:�f.�1���H��H�5��A�.��H���X��������H�M��+1���.��H�M�L��I�ƾ-�m���DH�����uH���qH���JH�{[L��]H��A\A]A^���DH�iAL�(�F����H��H���8�����>���H���`H��`�.���H�E��`H��`����H��H���!1���
���@H��H���m8��������H���`H��`��H�E��`H��`���H��H����0������@L��H���%8���������H���`H��`�����I�$��`H��`�����L��H���0���t���@H��AL�(�^���f�H��AL�(�F����H��AH�:����H��AH�:���H�{AH�:���H�LAH�:���H��AH�:���D��H��AAVAUATUH��SH�0H��H����M��H����H�MH�{�1��-�,��H�MH�{�-I�ĺ1��n,��H��H�AH�0���X������I������tH��������L�kH���CM��H��uF@���d@����H��������E����
t����H�E��0DH�5��A1�1�L����+��H��tH�5��A1�1�H���+��H��uYH�5i�A1�1�L���+��H����H�5M�A1�1�H���y+��H����I�|$H��1��+�W+��M�d$H�ž.L�����H��L�`A��u
I������HH�k@��u
H�������H��[]A\A]A^�DH���������H���iH�������H�YAL�(����H�9AH��H�0��K��H��tH�5z�A1�1�H���*��H���H��H�ߺ-[]A\A]A^�Q��DH�MI�|$�1��+�f*��H�MI�|$�I�ƾ-1��I*���.L��H�����H��H�h@��u
H�������L�sA������I�������L��H���4�������H���`H��`����I���`H��`�����L��H���-������H��AL�(����H��H�������6�AL��������}���fDH�{1�H���-L�c�l)�����������ڃ�����H��������H�rAH�:�f.�1���H��H�5�A�)��H���X��������H�M��+1����(��H�M�L��I�ƾ-�m���DH�����uH���qH���JH�{[L��]H��A\A]A^�E��DH��AL�(�F����H��H���3�����>���H���`H��`�.���H�E��`H��`����H��H���q+���
���@H��H���2��������H���`H��`��H�E��`H��`���H��H���)+������@L��H���u2���������H���`H��`�����I�$��`H��`�����L��H����*���t���@H��AL�(�^���f�H�IAL�(�F����H�9AH�:����H�
AH�:���H��AH�:���H��AH�:���H��AH�:���D��H�=AAVAUATUH��SH��H�0H���H��H��uOH�`AH��H�0�H��H��tH�5��A1�1�H����&��H���dH��H��[�*]A\A]A^�N��@H�KH�}�1��*�&��H�KH�}�I�ľ*1��s&��L���-H��1��\&��H�KH�}��*I��1��@&��H�KH�}�I�ž*1��$&���+L��H��1��
&��H��H��
AH�0@���f@�����I������tH���U@���kL�mH����F��H��uR������u
H������1���H��H�5��A�%��H��t��AL����fDH�5)�A1�1�L���U%��H��tH�5�A1�1�H���=%��H��uYH�5��A1�1�L���%%��H���<H�5��A1�1�H���	%��H����I�|$H�ٺ1��+��$��M�d$H�þ.L���2��H��L�`A��u
I�������H�]��u
H������J[H��]A\A]A^�fDH����������H���	H�������H��AL�(����H�}H�ٺ1��*�H$��H�}H�ٺI�ľ*1��-$��@���k@�����������H����@���[H�0AH�:�P�H�K��+1����#��H�K�L��I�ƾ-1��#���.L��H�����H��H�X��u
H�������L�uA������I���������L��H���-���������H�E��`H��`�����I���`H��`�����L��H���h&�����H�KI�|$�1��+�#��H�KI�|$�I�ƾ-�9���H��AL�(����f�H��H���\����@����H�����uH����H���jH�}[L��]H��A\A]A^�E��D�����
�
���������H�C�������H��H����,���������H�E��`H��`�����H���`H��`�����H��H���Y%���r���@L��H���,�����E���H�E��`H��`�4���I�$��`H��`�#���L��H���%������H��H���],�����3���H�E��`H��`�"���H���`H��`����H��H����$������@H��
AL�(����H�9
AL�(����H��AL�(����H�AH�:���H��AH�:���H��AH�:���H�|
AH�:�|���H��	AH�:�m���D��AWAVAUATI��USH��H��H��(L�-N	AI�u�A��H��tL�5yAH��I�6��A��H���uH��AH��H�0��A��H����H�-�AH��H�u�A��H����H�uH���A��H����H�2
AH��H�0�wA��H��������H��H�H����L�$$H�����M��M��I���t@A����D������G	I���M	A���c	I�|$�.�4��I��L�hA��u
I������JI�o@��u
H������{H��H��H��H��?H��?H�DH��H�H9���I�OI�o�1��*��]��H���*H��1��F��I���*H��1�H���+��I���*I��1�H�����L���-H��1����I��A������M������I���IM�����H�IAH�8����I�uH����?��H����H���AH��L���	F��H�$H�$H��([]A\A]A^A_�f�H�5��A1�L��1�L�t$�h��H�5q�A1�L��I��1��R��H�{��*H��I��1��7��L���L�|$H���fH�{��*H��1��
��H���-H��1�����H���eL���L�|$H���eH�{��*H��1����H�KL��I�ƾ*1����L���+H��1����I��A����A���@D������8	I����	A����	M�d$L�5�AL�������*H��H��1��'��L��H�����H��*�H��1����I�6H��H���>��H��uR������u
H�������1���H��H�5��A���H��t�I�AH�,$������DH�5a�A1�1�H�����H��tH�5I�A1�1�H���u��H��uWH�51�A1�1�H���]��H���H�5�A1�1�H���A��H����H�}H�ٺ1��+� ��H�mH�þ.L���l��H�$H�h@��u
H������H�$H�X���K���H������>���H��H��I���e&�����(���I�H�D$��`H��`����H���`H��`����H�<$H���������L�5)AH�{I�6�<��H�����H�{@����@���H�����������
���������H�G������H�������H�[���f.�H�5��A1�1�H����������uH�����t�����
�1������QH�5��AH�ǹ1�����H������H�5o�AH��1�1����H�����1���H�߾>�j��H����H�L�$$H��H���-����������)���!H�����������
�^�������H�C��I�����f�I����������I����M���~���H�IAL�5rAL� �t���f.�H�5q�A1�1�H�����H�����H��AH��H�0�:��H����H�5��A1�L��1��f��H�5o�A1�L��H��1��P��H�ٺ�*H��1��9��H��H�ٺH�5�AI��1����H��A���LA����D�������I����A����I�\$L�������*H��H��1����L��I���t����*H��H��1����L��H��H���O���H�$��H�5_�AH��1�1��s��H�5<�AL��H�ÿ1��U��H�5>�AH�ٺH��1��<��H�$���H�5$�A1������H����������1���H��H�5�A����H���4���A����A���eD�������I����A���~I�|$�.���H�$H�@H�@���f.�H�IAH�8����L��H���"���������I���`H��`�����I�E��`H��`�����L��L���q���r���@H��L���!�����r���I���`H��`�b���H�E��`H��`�Q���H��L���)���A���@H�<$L���1��*����H�$H������� ���DH�Y�@H�8�����H��AH�8����H�Y�@H�8����H��AH�8���H�P������H�H�������H�@������H�H����������H�K��+1�����H�K�H��I�ž-1�����.L��H���T��H�$H�X��u
H������`H�$L�hA���3���I������&���L��H��H���M ��������H�H�D$��`H��`�����I�E��`H��`���H�<$L���������fDH�KH�}�1��+�O��H�KH�}�I�ž-�*���H��AL�5�@L� ����H��H���s����W���H��H���M����������
�O���������H�C��:����H��H��I���j��������I�H�D$��`H��`�����H�E��`H��`�����H�<$H���������H�����g���H��H��I������������I�H�D$��`H��`�u���H���`H��`�e���H�<$H���s���T���L�5�@M�&����I������`���I����M���M���H�xAH�8�C���H���@L�5��@L� ���H�3AL�5|�@L� �~���I���������I��t_M������H�!AH����H��AL�5;�@L� �=���H�=91��D�����H�9AH�8���H�*AH��t���H��@H��e���H��@H��V���H�mAH�8�x���H��@H�8�i���H�OAH��)���H�`�@H�����H�Q�@H�8�<���I�>�4������AWAVAUI��ATUSH��L��H��H��@H�-��AH�0��3��H����H�-O�@H�{H�u�3��H����A�I�}H�5��A1�1��o��I�}H�5|�A1�I��1��X���t
A���:H��L��1���>�3��H���)I�MI�}�1�H�5�AI��A�������*H��H��I��1�������+�H��1�����I�}��*H��1����I��E���qL���*H��1����H�5s�A1�H��1����H�5P�AL��H��1��n��L��H��H�5,�AI��1��R��M�������p�ڃ�����H�������H�XAH�:�tH�I�L9�����I�MI�}�1�H�5��AI��A��������*H��H��I��1�������+�H��1����I�}��*H��1����I��E���0H�5a�A1�H��1��u��H�5>�AL��H��1��\��L��H�߾*I��1��B��H�5�AL��H��1��)��M������'�ڃ����xH�������H�/�@H�:��H�I�@L��H�0��0��H��tH�5��A1�1�L�����H���=H��H��L��H��[]A\A]A^A_�7���H�{H�u�0��H����I�}H�u�0��H������I�}H�uE1��t0��H��A�������H�{L��1��*�(��H�{��-H��1����H�5ٶAL��H��1����H�{L���*I��1�����H�{��+H��1�����H�5��AL��H��1����H�uI��M����������H��������H���.����H���@H�(��H�{L�{L���*1��<��L����-H��1��%��H�5�AL��H��1����H�{L�{L��H�D$��*1���
��L����+H��1���
��H�5��AL��H��1��
��M���"�����ڃ����H���*��� H���@H�:�f�H�{H�55�AL��1���V
��H�{L��H�5�AH�ź1��9
�����������ڃ����H���/����H�?�@H�:���H�����uH����H��uH�Q�@H�(�@H�kL����-��H��uwA��uaA��uI�����tA�����
tW����1���L��H�5p�A�s��H��t.��A��t$H��L��[]A\A]A^A_�f�L��H��t��H�5�A1�1�L���-��H��tH�5�A1�1�L�����H���\H�5ͳA1�1�L�����H����H�5��A1�1�L������H����I�OI�|$�1��+���I�OI�|$�H�þ-1����I�ž.H�����I��L�hA��u
I�������I�\$������H�������H��L�����������I�$��`H��`����H���`H��`�����H��L���Y�����@H�����uH����H��uH�q�@H�:�@H�{L��H��H��[]A\A]A^A_鋰��H�����uH���{H��uH�)�@H�:�@H�{L����H�����uH���aH��uH��@H�:�@H�{H�T$�y���f.�H�����uH���lH���EH�{H���G����I�|$L���1��+�
��M�l$H���`���f.�H���@H�:����H���@H�:�m����H���@H�:�%����H���@H�(�����.H������H��L�`A��u
I�������L�{I��A������I���������L��H���������H���`H��`���I���`H��`����L��H���m�������I�O��+1���	��I�O�L��H�þ-�I���DL��H���}�����b���I�$��`H��`�Q���I�E��`H��`�@���L��L�������0���H�i�@H�:�a���H�}���H�}���H�}����H���@H�:����H���@H�:��H���@H�:�e���H���@H�(�v���H��@H�:���H���@H�(�X���H���@H�:���H���@H�:����H���@H�:���H�h�@H�:���H�9�@H�:���H���@H�:���I�G��v����d���L��H���F��������H���`H��`����I�$��`H��`��L��H���
�����ff.�f���AWAVAUI��ATUSH��L��H��H�f�@H�-�AH�0�O(��H���FH�-��@H�{H�u�2(��H���yA�I�}H�5�A1�1�����I�}H�5��A1�I��1������t
A����H��L��1���>���H����I�MI�}�1�H�5|�A�����*H��H��I��1��u����+�H��1��\��I�}��*H��1��D��I��H�؃�H�D$E����H�{L��1��*���H�{��-H��1����H�5ޭAL��H��1�����H�{L���*I��1�����H�{��+H��1����H�5��AL��H��1����H�|$H�uI���E���	��H������tH���
����H�kL���p&��H��uSA����A����I�������A�E����
t&����I�E�tDH�����H�5��A1�1�L������H��tH�5��A1�1�L������H����H�5��A1�1�L�����H����H�5i�A1�1�L�����H����I�|$L���+1��s��M�l$H�þ.H����I��L�hA��u
I������I�\$��u
H������=H��L��[]A\A]A^A_�H�I�L9��_���I�MI�}�1�H�5۫AI��A��������*H��H��I��1�������+�H��1����I�}��*H��1����I��E����H�5i�A1�H��1��}��H�5^�AL��H��1��d��L��H�߾*I��1��J��H�5+�AL��H��1��1��H�uI��M����������H��������H��������H�-�@H�(�DH�I�@L��H�0��#��H��tH�5��A1�1�L�����H����H��H��L��H��[]A\A]A^A_�*���H�{H�u�#��H���q���I�}H�u�#��H���[���I�}H�uE1��t#��H��A���E����L���*H��1��)��H�5�A1�H��1����H�5��AL��H��1����L��H��I��H�5ЩA�D���H�{L�{L���*1�����L����-H��1����H�5��AL��H��1����H�{L�{L��H�D$��*1��s��L����+H��1��\��H�5=�AL��H��1��C��M���������ڃ�����H��������H�I�@H�:��H�{H�5ݨAL��1������H�{L��H�5��AH�ź1�����������?�ڃ�����H�������
H���@H�:��1���L��H�5b�A�e��H���d�����A���V�������f�H���������H���H������H���@H�(����I�M��+1�����I�M�L��H�þ-1�����I���h���I�MI�|$�1��+���I�MH��I�|$��-�fDH�����uH���[H��uH���@H�:�@H�{H�T$H��H��[]A\A]A^A_�����H�����uH���"H��uH���@H�(�@H�kL���< ��H��u_A����A��uI�����tA�����
t;���^1���L��H�5̦A����H��t�\�A�������@H�5y�A1�1�L�����H��tH�5a�A1�1�L�����H����H�5E�A1�1�L���q���H���(H�5)�A1�1�L���U���H����I�|$L������L��H�����������I�$��`H��`����I�E��`H��`�����L��L���8�����H��L������������I�$��`H��`�����H���`H��`�����H��L����������@H�����uH����H����H�{H������I�OI�|$�1��+�f���I�OH�����f.�H��@H�:�����H�	�@H�(�
����L��H���l����U����H���@H�(���f��.H���S�H��L�`A��u
I������^L�{I��A�������I����������L��H���P�����{���H���`H��`�k���I���`H��`�[���L��H������K����H���@H�(�	����H�)�@H�(����L���@����I�O��+1���&���I�O�L��H�þ-�+���D�.H���[�H��L�`A��u
I������L�kI��A�������I����������L��H���X���������H���`H��`�s���I�E��`H��`�b���L��H�������R����H�A�@H�:���f�H���@H�(���H�}����H���@H�:����H���@H�(����H���@H�:���H���@H�(���H���@H�:�u���H�v�@H�:�f���H�G�@H�:�W���H���@H�:�H���L��H���e��������H���`H��`����I�$��`H��`�����L��H���������I�G������N���L��H������������H���`H��`����I�$��`H��`�n���L��H���|����^�������=��A�D��H�=�@ATI��UH���.SH�8�^�H��L�`A��u	I�����uXH�k@��u	H�����u
H��[]A\�DH��H���]����u�H���`H��`u�H�E��`H��`t�H��H�������L��H���%����u�H���`H��`u�I�$��`H��`t�L��H������p������H�m�@AVAUATUH��SL�(H��H���@H��H�0�B��H��u]���l��uH�����t�����
t<����1���H��H�5ՠA����H��t�e�AI����f�H�5��A1�1�H�����H����H�5e�A1�1�H�����H����H�5I�A1�1�H���u���H����H�KH�}�1��+�S���H�KH�}�I�ƾ-1��7����.L��H����I��H�X��u
H�������M�t$A��u
I������f[L��]A\A]A^�f.�H�5��A1�1�H������H��� ����!f�H�}H�ٺ1��+���H�mH�þ.L�����I��H�h@��uGH�����t>H��H�������u/I�$��`H��`u"H�E��`H��`tH��L�����f.�I�\$���<���H������/���H��L�����������I�$��`H��`����H���`H��`�����H��L���&�������H�K��+1������H�K�H��I�ƾ-�o���DH��H�����������L��L���%���������I�$��`H��`�v���I���`H��`�f���L��L������V���@H��H���������'���I�$��`H��`����H���`H��`����H��L���I������@H�C��4����J���ff.�@����B��f������-��ff.�f���AVH���@AUATI��UH��H��SL�(�\�����*H��H��1��u���L��H���*���H��*�H��1��S���H��H��H���@H�0�^��H��ua���h��uH�����t�����
t@����1���H��H�5�A���H��t���AI����fDH�5��A1�1�H�����H����H�5}�A1�1�H����H����H�5a�A1�1�H����H����H�KH�}�1��+�k�H�KH�}�I�ƾ-1��O�.L��H����I��H�X��u
H�������M�t$A��u
I������^[L��]A\A]A^�f�H�5��A1�1�H�����H���(����!f�H�}H�ٺ1��+���H�mH�þ.L����I��H�h@��uGH�����t>H��H���3�����u/I�$��`H��`u"H�E��`H��`tH��L�����f.�I�\$���D���H������7���H��L���������$���I�$��`H��`����H���`H��`����H��L���F������H�K��+1�����H�K�H��I�ƾ-�w���DH��H����������L��L���E����������I�$��`H��`�~���I���`H��`�n���L��L������^���@H��H��������/���I�$��`H��`����H���`H��`����H��L���i������@H�C��<����J���ff.�@UH��AWI��AVAUATL�e�SH��H��X�u�H�}�dH�%(H�E�1����H�pH����yL�e�H��H�E���H��H��H��H%�H)�H���H��H9�tH��H��$�H9�u���ML�t$I���L�u���&��I��H��H�]��H��H��H��DJ u�QՁ���A�H�M�H�E�H�QH�U��Q��߃�I���
H�E��u�H�U�H��H�U�H�E��?����Å���H�E�L����&���I��H�E���ʃ�߃�I������@�"�Aը���L�E�A�H�E�H�E�H�PL�E�H�U��x�����<I��<J�zH�U��u�H�}�貇��L�E������zH�E�L���蕈��H�U�H���:�����<I�@�ǃ�߃�J�o�L��1��o��I��gf.�H��1�<-H�M�@��H�4�������>��I�H�E�I�M�0H��Dq tH��H�E��0H��Dq u����"]�����L�������H�}�dH3<%(��H�e�[A\A]A^A_]�����<Iu1H��H�u���o����L���X��H�]�I������@<Jt��%����H)�H�L����f.�H��L��H�E�����H�E�L����A����H���D��I��9���@�L���+��I����1���-@��H�4�����H��L��H�U����I�����H�PH�M�H�U��@�PՁ�u�H�E�H�E�H�U��u�H�M�H�}�襅��H�M���H�E���9�!���H��H�M��3�H�M��T�I�E�DP�����H���c���L��H���x�I����Z�������@��H�������-����������L���-��I��"�����ATUH��SH����H�]�� uWH��L�e��1�H��L������H����A�<u?H�T$�L���]�������H�D$H��[]A\��L�eM��tLH�]륐H���x�H�E�� tL�eH�EA�M��u�L�%��@H��L�e���D�|���H���@H�5�H�81��3��H�|�@H��H�52�H�81�������AU1�I��H���ATU��SH��(H��L�D$��H�<$����uH�|$�����H��H����H�<$@��u!H�����t������2f.�H�|$@��uH�����t������fDH�����H�$����H�������������L�d$A��u0DI�����tA�$�����H�$��uH�����t�������L�%��@I�4$��t^H�����H����H�$H�t$L���H�D$H�D$H�D$�\���H��([]A\A]ÐL�d$A���i���L�%��@I�4$��u�H���9��H����H�5ђAH�<$1�1���H����H�$�DI�4$H�|$���H���c���H�5��AH�<$1�1���H��tH�5y�AH�|$1�1���H���,���H���@�.H�8����H�|$��*H�@H��H�@1��]�H�<$��+H��1��E���I�4$H�<$�S��H�������H�<$H�
H��H�A�������f����wH���@H�|$H�0���H����L�%C�@H�$I�4$�G���fDH�i�@H�{H�0��
��H���4L�d$A���������H�9�@I�|$H�0�
��H������I�|$@���k@��u H�����t�����
��������mH�5/�A1����&�H���n���I�D$H�D$�_���fD�S���H�$����f.��;���H�D$�����H�|$@����@��u H�����t�����
��������H�5��A1�����H�������H�$fDH���,����H�{@��ub@��u H�����t�����
���������H�51�A1����(�H���{���H�CH�$�n���H���/����z���H���W�����H���A�������H�G�����H��������G���H�G�����H�����������H�G�����H��t����H�"�@H�5+�H�81�����f���SH��H���O�H��� uWH��H�{���<uH�T$1��J���H�D$H��[��H����H��� u@H��H�{���D�fDH�{H��uH�=��fDH�C�<t��@H�{H�C�H��u���D��H��H���@H�<$�H�H�t$H�����H�����UH��SH��H�w@��uH��H�����u
H��H��[]����u�H�E��`H��`u�H���`H��`t�H��H�������UH��SH��H�w@��uH��H�����u
H��H��[]����u�H�E��`H��`u�H���`H��`t�H��H���#��Đ��AV�H�=��AUATUS�����H�= �H�ȍA�����H�=�H���A�����H�=��H���A����H�=c�H�h�A����H�=��H�H�A�{���H�=��H�(�A�c���H�=�H��A�K���	H�=n�H��A�3���H�=-�H�ȌA����H�=lH���A����H�=��H���A�����H�=��H�h�A�����H�=��H�H�A����H�=��H�(�A����H�=��H��A���H�-��@H�={�H��AH�u���H�^�@H�5�}��H��H��$��H��������ƒ����c	H���y	<��	H�xL�%��@L�-��@H�5)����H�������ƒ�����H���X	<��	H�xH�5���P��H�;�����H�����H�5���e��H�;�����H�v���H�5l��J��H�;�����H����H�5���/�������H�5�v��H�=Z�����H�;H�5�����H�;H�5�����H�;H�5�����H�;H�5�����H�;H�5s����H�;H�5�����H�;H�5���~��H�;H�5�O�o��H�;H�5���`��H�;H�5��Q��H�;H�5���B��H�;H�5_��3��H�;H�5���$��H�;H�5�����H�;H�5�����H�;H�5�����H�;H�568����H�;1�H�<s��H�5��p��H�;1�H�4s��H�5���X��H�;1�H�s��H�5~��@��H�;1�H�Đ��H�5���(��H�;�H�9���H�5�]�
��H�;�H�δ��H�5����H�;�H�c���H�5�7����H�;�H����H�5v����H�;�H�m��H�5|����H�;�H����H�5�����H�;�H����H�5���k���H�;�H����H�5���P���H�;�H����H�5���5���H�;1�H�ɀ��H�5������H�;1�H�����H�5������H�;1�H�)r��H�50����H�;1�H��u��H�5�����H�;1�H��u��H�5����H�;1�H��u��H�5�����H�;1�H�is��H�5�����H�;1�H�Qs��H�5'��u���H�;1�H��r��H�5l��]���H�;1�H�ъ��H�5���E���H�;1�H�����H�5���-���H�;1�H�q��H�5G����H�;1�H�����H�5����H�;1�H�qt��H�5�����H�;1�H��s��H�5�-����H�;�H�����H�5-����H�;1�H��v��H�5�����H�;1�H�v��H�5�����H�;1�H�Fs��H�5����H���@H�;H�5T�H������H�Ur��H�5��H��I����H�;H�
�y��L��H�p���J�H�;1�H��z��H�5������H�;1�H��{��H�5�����H�;1�H��|��H�5������H�;�����H�S}��H�58����H�;1�H�kw��H�5m����I�}1�H�b�H�5T����H�}1�H�9�H�5;��m���H���@1�H�}���H�5�H�8�N���H������ƒ����H���c<��H�x�����H���H�5��O�H�}1�H��v��H�5�����H�}1�H��n��H�5�����H�}1�H��n��H�5�����H�}1�H��n��H�5�����H�}1�H�nv��H�5�����H�}1�H�Uv��H�5���i���H�}1�H�<v��H�5���P���H�}1�H��o��H�5:��7���H�}1�H��o��H�5е����H�}1�H��o��H�5�����H�}1�H��u��H�5@����H�}1�H��u��H�51�����I�<$1�H�Vv��H�5ȼ���I�<$1�H�=v��H�5�����I�<$1�H�$v��H�5�����H�;�.�{��H�;H�5H�@H��H�@���[H�=��]A\A]A^��DH���������H����H������H�:�@H�8���f�H���������H����H����H�
�@H�8���f�H����������H��tNH���t���H���@L�%�@L�- �@H�8�i����H�	�@L�%��@L�-��@H�8�D���L�-��@L�%��@I�}�*���f�I�}�[����I�}�0����H���@H�8�5����H���@H�8�
����I�<$�����I�<$���L�%I�@L�-b�@I�<$���f�H���@L�%"�@L�-;�@H�8���H���@H�8����H���@H�8����H�y�@L�%�@L�-��@H�8�D���H�Y�@H�8�u����H�I�@H�8�J������H��H�H�Ѓ��ff.���H��H��H�WH�wH���H���ff.�f�H��t;USH��H��f�H�;H�kH��t�?��H��H���4��H��u�H��[]���ff.�@AWAVI��AUI��ATM��UJ�,SH��H����tVH�}���I��H��tmH��L��L����A�/H��I�,I�<L��L���s�A�/H��L��[]A\A]A^A_�@H�}��I��H��tH��L��L���9���E1��ff.�AV��E1�AUI��ATI��U��SH���H�s��t<[t@~&<\tb<]u>E1�H���H�s��u�H��[]A\A]A^Ð</uE��u�H��[]A\A]A^�A���L��L��H���B���Hc�H��f.���u��{uH��H��[]A\A]A^��H�s�|������H9���AWAVL�wAUATI��USH�������I����1�A���?tb~H��[t[��\uC��tjI�~�L��L�����H�I�|�L9�s�L�w��u�H����[]A\A]A^A_���*t���[����AE���H��[]A\A]A^A_�@H��M9�v�I���f.�1��D1���@��SH��H��t
H�?H��t���H��[����ff.�f���H��H�~H�=��H�T$���D$H���f.���H��H��H�OH�H�H�5݉1��L>�H���f�AW��AV��I��AUA��ATA��UA��SH��hH��D$H��H�|$0��H��H�t$8H�$�D$�J��I�.L�<H���;��H�D$(H�D$ H�H�D$�A��u
�}.��A��I��D����L$<?�~<[��<*���|$t<\��<I���E���b�L$H����</��A�$��t{</twH�$L��L���H����~dLc�H�D$H)�I9����D$��tHL�4$1�L��L��L������L�������H�t$1�H��L������L��������9���@H�|$ tH�|$(�LH�D$0L� H�D$8H�(�H��h[]A\A]A^A_��I��A�D$I�T$<*t�H�T$ <\u�|$�H�L$ �„��>D�T$HE���-��/�'�U���"��/�L�d$ H�l$(<?�����D�E���P���</uD�L$HE���>���H�$H�t$H��I�\$�D���H�H�A�D$I���3�����E������</uD�D$HE�������M�l$M9�����E�t$A��!���D$LA��^��1�L�d$@H�l$A��L���E����H�D$H�t$H)�I9�L��H��A������tY�t$E1�tNL�4$H�t$1�H�|$L�����L��������L��1�L��H��A������L�������D�3A9�A��E��H��A��]�2A��\u�|$�YE���hH�$L��H���	���Lc�J�\-I9��HD�3A��-�"����C<]����L�s<\u�|$�[���H�$L��L�����Hc�I�E���L�T$H�t$I)�M9�'L��H��H�L$XL�T$P���L�T$PH�L$X���#I9�|H�t$H��L���v�����H�|$H�$1�H�t$����|$A�Ņ���H�$1�L��H�����A9��0H�$1�L��L���o���E1�D9�D�3A�����@A�<$�6���H�|$ ��������@D�uH��E�������fDH�|$ L�d$@H�l$�r����y���DD�3�H�����}���H�D$0H�L$ H�H�D$8H�(H��h�[]A\A]A^A_�DD�3A����f�M�l$E�t$�D$L�6������E��u	<\u�S���.u�H�D$(H�D$ ����@D�3E1����@H�l$(H�$H�t$H�����L�d$ H�H�H�l$(A�$����L��H��L��������
���M�L�A�$�|���f.�L�s�C���H�4$����H�$1�L��H��A����H�4$�����A9������H�,$L��L��1�H����H���������f.��L$LD��I��L�d$@H�l$9������L��H�������H�$H�t$H��I������H�H�A�E���@I�L$A�T$����H�$H�t$H��M����H�H�A�$����H�D$0H�H�D$8H�(1��_���H�D$0L� H�D$8H�(A�$��t2�T$H�����</�����-���H�D$0L� H�D$8H�(A�$��u�1��
���@AWAVAUA��ATI��UH��SH��H��8H�|$ H��H�T$(����H�D����D$A����H�D$(H�$E1�H�D$H�D$ H�D$A�<$*��H�t$H�|$H��D�����A�ą���H�<$��M�����T$A���u*<.u&�f.�L��H��H���B���H�I�A���t</u�t}H�$I��L�|$(I��H�D$ A�<$*�j���A�|$*�^���A�|$/�R���I����A�|$*uI��A�|$�/uL�d$ A�<$*L�$$t�L�|$(����f.�A�H��8D��[]A\A]A^A_��L�t$(A���u#�%�L��H��H���r�H�I�L�t$(A���t</u�H�T$ �:u���������������L�bI�NL�d$ H�L$(�s����H�t$(H�|$ H��D���{���A���Y���AWI��AVA��AUATM��USH��XH�<$�t$H�T$H�L$����I�,A�����1�E1�A���2�<}u<������L��L��H����H�I�A���tF<{u҅�t.����f�A��t�<\u�A�I�GtI���fDM����fDM��t1�H��X[]A\A]A^A_�f.�H�t$H�<$L��H�D$H��X[]A\A]A^A_���M��t�H�<$����H��H��H�D$ �i�I�Ƹ����M��t�H�4$L��L��H)�H��H��H�D$8H�D$(�
��H��L�H�D$HI�GH�D$@�D$��M9���L�t$0M��A��I�FH�$I9��{L�4$1��*<{����L��L��H���G�H�I�M9���A�<,uх�u�H�4$L��H�|$HH)�H���v��H�T$ H�D$0H\$8H�t$@H)�H�<��H�L$H�T$M��t$H�|$0��������M9��N���L�t$01��fD<}u���W���A���M���<\�E���I��M9��8���H�\$8L��H+$L�t$0H�H�\$(�M��H�\$8L�t$0L��H+$H�H�\$(H�4$H�|$H���H�T$ H�|$(H�t$@H)�L����H�L$M��L��H�T$�t$�������H���L���$袵���$H��X[]A\A]A^A_�L�t$0H�\$81��L�t$0��ff.���AWAVI��AUATI��UH��SH��H�^H��蹾��H9����}tA�H��D��[]A\A]A^A_�f�H��I�������u�E�oA��u�L���o����u�H��蓽����u?L���D$�?��H�L$H��L��I�4I���8�I9�u��|$u�f�A�L$H�SH� tH�SH��L��E1�������A���M������U1�H���SH��HH�\$L�L$L�D$H���������H��1�����H�|$����H�D$H�|$H������H���H�T$H� uPH��H�|$H� u.H����H���@����¸��tH�\$ H�D$1�H��H[]�f�H���f.�H�R�f.�H�|$@��u}�p����H���F��H�|$���H�D$@���I���H�|$H�D$(�l$0�ڼ��H�|$H�L$ I��H� uDH��H������������U���H��H�[]�fD�#�������1��8����H��f.���U1�H��SH��H�=+�H���b���H��H��H��[]须���ATI��H��U��SH��PH�t$�&���H�����H9�����H9���H��L�d$@H�D$0H�D$H�\$HH�D$H�|$��H�D$H�D$0���H� t7H�H���H�L$I�؉t$ H�T$H��H�D$���H��P[]A\ÐH����f.��+��H���l���蛷��H���N���AWAVA��AUI��ATI��USH�����H��M��~L1�I���DH��I9�t7I�|�L�|$H�<$�d���D��H��H��H�$������t΃��t!���b��f�H��H��[]A\A]A^A_�fD���AWAVAUATUSH��(H�|$�t$@��u
H������7H�D$H�D$���H�D$����L�|$E1�H��M�7A�� ��f�I��A��M9���M�oM�L���P���L��H���5���H��L��H���ǻ���T$H��H���������L�|$M�7A�� uoL��H��H�Ӄ�I9�}|L�����I�OH��I�DH�H9�w��H��H9�t�8t�H��H)�I��A�� �D���M;g}-M�o�J���DI�_I9�}L������I�OH��I�D�H��(H��[]A\A]A^A_Ë����������,������H�����H�|$H�����������t���������ff.����ATI��UH��SH�����H��L��H������[H��]H��A\�m�ff.�f���SH������u\H�H�D$H��t.H�\$H������H�|$�w���H�|$�]��H���E����8u01�1��G���H����7H��[�f�H�D$��D1�1�����H�|$H���:7H��[ú1��h��AVAUATUH��SH��H��H�$��H��H�D$H�<$�O���H��H�$��I��H�$H��� uTH��L�`��M�,L��L��L���7�L��L��H�����H�<$L)�H9�|-���H�EH��[]A\A]A^��L�`H�X�fDH�<$H��1����H��H�$�f���H��H�|$H�t$����H�|$H� uH���b�����x�H���@H���H�t$H�=���i�f���H��H�|$H�t$���H�|$H� uH���Ҳ�����t�H���H���H�t$H�=&��	�f�SH��H� uH��z�����x[�@H���H��H�=�����ff.���SH��H�����hiAH�=��@�CtH�{[����D�ü��H�{[H���@����f�H��@��u2H�����t)H��ƒ���t��uH�5�`@�?��H�8t
H���迮��H��@H�5��H�81�������S���H�8H���{��H��[�ff.�f���H�������UH��SH��@��t-H��H�H���?���H��H�8�$��H��H��[]�f.�H����H������SH�����H��[�ff.���H�����H�8�k��H��H���O���ff.�@��SH�����H�8���H��[�fD��USH�����H�����H�}�H�����H��u���u-H���[]�H�XH���T���H�UH��H��H��[]�?��1������H��H�5!_@���H�xH��tH���9��f��H���fD��H�����H�8�[�����tH�H��H�D�H�=����ff.���AVAUI��ATI��US��H�� H�=�fAuH��fAH����H��fA貯��H�l$��L��I��L�D$H��1�H���O���H�|$H����H�l$H�|$葨��H��H�D$���H�|$I���'���H��H�D$�j���L��H�5^@H�D$�f��H�8H��H��t����H�|$L�sH�H�CL�wH� u)L���ٷ��H�H��t-L�kH�� L��[]A\A]A^�DL�wL��謷��H�H��u���������veH�l$H�=��L��H�D$���@L�D$�1�H�5eeA�@�H�|$H��4��H�������I������f.���L���#���H�H���F����D�H�=Fp��H��dAH��dA�U���ff.��UH��S��H��H�5�dAH��t9H�
�@H���H�8�5��H�5�\@H��H������H��H��[]�f��H�=$��H��H�edA���H�����H�=�@H��H�����H��H���f���fD��ATI��U���SH�����H��H��[@H����L���H��H���/�������uH��[]A\�fDH�=�@H��H��[H����]A\���ff.���U�H���SH���T�H��H�z[@H��H����H�H�CH�CH��[]ÐAUI��ATA��H��H��UH���SH��(轷���Å�xH��(��[]A\A]�f.��{�������ƒ�����t�E��y�H���H��1�H�l$H�=�H�$L�l$����ff.��AWA��M��AVA��AUATUSH��H�<$�t$$L�D$(M9���L��1�1�1�E1�E1�H�=��f.�H�2�F��uH�F��@��w$Hc�H�>��f.�A�f.�H��I9�w�H�<$�L$D�T$����D�T$�L$H�D$H�$�8�rE����E����	Є���D��	��	H�$H���8HE�H���߳��H�D$0H���dH�L$(L���l$8L�|$HH)�H��H��H�D$@I�G�H)�H��L�d�HcD$$HD$H�D$PH��$�H�D$X@H�|$0���H���P�T$8��t�x.���x�9��$Pt�H�XH�������T$$H�<$H��H�t$I�����I��H����H�D$P�D$����L�H�D$H�|$@�h��I��H���I��H�L$HH�D$(H9���L��L��I�����v1I��L9�tbM�<$A�G��u�|$uL�;H��M�A�G��wϋ�$PH�T$H��$hI�?�F���u�I�GI��H��H�C�L9�u�DI��I��$hM��M��L����$h����$h��$hP�L$(�9���H�� L����苣��L��胣�����{���H�|$0�����@A����D��~���fD��n���fDA��]���D��A���A��A��A��A ���A�����L��$�E����H�4$L�ʿ�L$�=���L$���:�:��$�E1�A�A�%�=@A�„�t@D�T$H��$hD�D$H��$`H�<$��$X�Å���D�T$D�D$A�A����E�����T$$H�t$E1�H�
�VH�<$�#��H����H��H��$hH�D$H��$`��$XH�L$��H�������ujE�����a���踤������ƒ�����tF��$P��y;H���H�\$hH�D$`H��$hH�t$`1�H�=D��H�D$p����f.�1�H����[]A\A]A^A_�f.�E��t�L�t$(L��L)�H��H�D$8�C��H�D$HH����H��L��1�M9���@H��xHC�H��H��H�A�I9�w�I�G�H�L$HH+D$(H��L�|�H��I9�����$PH�h�\$X���L$@�f�H��L9|$��H�]�H�l$H��t�L�#L������I��H�@H��H�D$���I��H����H�T$L��H���8���D$@���H�|$8�R��H�D$(H���tH�L$(H�CL�aH�L9�sUH�l$0D��$Pf�H�]H��t/H��$hH�;D��L���a���uH�CH�EI��I�D$�H��I9�w�H�l$0H�<$L�D$L��T$$H�t$���L��H���ş��H���������M��H���$h���$h��$h��$hPL�t$HM��� ���H�� H��A���q���L���i���E�������D��H�|$H�S������H�$�L$H��螯���;D�T$H�D$��E1�1�1�E1�E1�A����!��j���1�L�hL���b����T$$H�<$L��H�t$I������I��H��t2H�D$PL�H�D$��$P�������D$�����0���f�H�|$0�����������@f�x.������\$8�v���E1�E1�E����E����	�������$PL��$�H�<$D�D$H��$hL��D�\$0L�L$�I���A�…�u���$�D�D$%�=@�*=�L�L$D�\$0�]������GH��$hH��$`H�<$��$X�Å��N����?���DH��$h��$PL��H�t$X����D$��������$��L$8%��L$=@�����1�=���ۉ\$���A�K�.����L�|$0L��$hM��L�t$PH�\$L��H�l$(H��<\u.M��M)�L9�tL��L��H���3��L�A�}M�u��M��L��L��H���P��H�I�A�E��u�H��M��H�l$(L�|$0H�\$L�t$PI�MH��L)�H�D$I9��D���L)�L��H�������1���1������a�������ƒ����������$P������H���H�D$`H�$H�D$h���L��������E�������E����E����E1�E1�1�	����H�=h�1�觥���\$X���H��M��H�l$(L�|$0H�\$L�t$PI�M�'���A��>���L��������ӛ���q���������g���H�|$(�����赛���S���D�����H�D$�.������������AWAVAUM��ATUSH��H��X�t$ H�T$(H�L$0H�����?/�I��1��=��H�D$H�������t1���H�|$����9�r�H�D$L���(�q���L�H�D$L9��8E�4$E���BH�D$H�D$$M��H�D$8H�D$��;�5I��M)�I�~���H��H����H��L��L���^���H��B�01��E1�H�M�;t	H���H�t$H�UH�T$H�.H9\$�D�3E����I�߿�7��H��H����I�GH9D$v
A��*��D�t$ H�t$L��L��D�����L��D��L��H��H���Z��A�ă�w�D$$������I��M)�I�~����H���L��L��H��耿��H��B�01�A����������A�<$����L��L�s�T$ H�t$L��L������T$ L��L��H��I��������v����L�g����DA�*����A�/����f.�A�GI�WI��</uI��A�</t�<*uA�*uA�/t��EL���H�E�D$$�Q���fD����H�T$HH�T$8H�T$H���H�D$HH�D$@H�D$H�H�|$H�"��H�|$������s���H��X��[]A\A]A^A_�f��A���C��H��t��E�����PH�T$H�H�H�|$HH�@t�AU�����1��t$8��t$8�D$8PL�|$8L�D$XL��L�L$p��H�� H�|$H�����L���ח���_���f�E1�1��o����H��踗����������H�������H�T$HH�T$8H�T$fD��>������������@��H��I��H�N�vH��������H��tHc�1��J�f.�H�81����fD���G��t-H���-�SAuH��@H�?����H�����f���ATH�53K@USH��虲��H�xuBH�5CSAH��tH��1�[1�]1�A\��@�H�=�����H��H�
SA���H�=ԵH��蜦��I����������؃�����H��������H�{譾��L��H��貹���L��H�5Y�����H�uL��蒹��L��H�5�N���L��[]A\�fDH�����u�H��tAH��u�H���@H�8�H�ٖ@H�8�����H���@H�8�o����H�I�@H�8�_����H���@H�8�O����H�	�@H�8�?������ATI��UH��S�������t7H������H��H�=�H��H���ԭ��[�]A\�f.�����H���3��H���L��[E1�]H��A\���ff.����UH�9g1���SH��H��L�D$H���(�����tCH����H�<$H� uH�����C������t?H���[]�f�H���f.�H�|$@��t
�p�����@�3������H�4$H�=L����ff.�@��SH��f1�1�H�� H��L�D$��������H�<$荶��H��tWH�8H�D$�� u7H�p H�x����H��H�D$H�D$H�D$�����u4H�� H��[�@H��H�p����H�<$���E�H��������t�H�߻�\���H�� H��[�H�|$@��t�p�����S���f��+������>���@��ATI��US�p����t\L����H�8H���٭��H�}�/H�XH���t���H�UH��H���e��H���-���H�}H��t7����H��u�L��[]A\�f��˞��H������[L��]E1�1�1�H��A\�M��H�f�@H�5�H�81��U���D��USH�����H��H�����H������H��H��裠��H��軪��H��H��[]Ð���g�����ATI��U���SH��0H�D$H�\$���1�H��L��H�8����q�������H�=d����H����H�����H�D$�pNA��$�����uIH�|$��H��0�[]A\�������t躡��H9��@t�1�H�=���������t����H�����H�t$H�Q����D$ H�D$H�D$H��H�=e�H�D$���H��0[]A\�f�H�\$H�|$��H��H�D$蔨��H�D$�4���f.�H�=q�����H������H��@H�5\�H�81�蓓����AUI��ATI��UH��S����H���ܩ��H����L��[L��H��I��]A\A]����ff.�@��ATI��UH��SH��H�� 薩��H���H��I��H����L�$$H�l$H�D$���t���t������fDH�� []A\���C�����AUI��ATI��UH��S����H��(������H��H��I��H�z���L�,$L�d$�\$�8��H��([]A\A]�ff.�f���H��(���H�$H�7���H�L$H��t$���H��(Ð��H�m�@SH�=�H�0�E��H�N�@H�/�@H��H�2H����H�;H�5����H�;�����H�{�H�5T��o��H�;�����H�����H�5���T��H�;�����H��H�5���9��H�;�����H���H�5Ϙ���H�;1�H�B�H�5Z��v���H�;1�H���H�5���^���H�;1�H���H�51��F���H�;1�H�����H�5���.���H�;1�H�2�H�5�����H�;1�H�
���H�5�����H�;1�H���H�5�����H�;1�H���H�5������H�;�H��H�5�����H�;1�H�g�H�5�����H�;�H�,�H�5w����H�;1�H���H�5�K�h���H�;�����H�Y���H�5�����H�;1�H�1���H�51�����H�;1�H����H�5����H�;�H����H�5����H�;�����H�S���H�5��w���H�;�H�8��H�5߬�\���H�;�H���H�5��A���H�;�H���H�5���&���H�;�����H�g��H�5M�����H�;�����H�|���H�5����H�;�����H�Q���H�5��տ��H�;H���@�H�5O�躿��H�;�H�k��H�5;�蟿��H��@�����H����H�5$�H�;�}���H�;�����H����H�5��b����H�=��"�H�=��"�	H�=���"�H�=���n"�!H�=���]"�H�=�[�K"f.��AWAVAUATUSH���D�D$H����I��I��H��I�����H��L9���A�$��.�vL��/�d�t$���nH�D$0I��H�D$�jfDH�SL��H�����H�T$H���w�����u1�D$���w�D$H%�=@t�H���Z������RA�>��M�~�:L���'���I��H����M��M��H��M)�tHA�?~��M9�rBM)�L��H��L��L�L$ L�\$�C���L�\$L�L$ H��L�A�~�/t�/H��I9��$���H)�dH��dHF�H��>H��eI��H�1BHB�H��d�	H�
B�dH��H��M��PH�=��1�脎��A�>ZY� ���1�H���[]A\A]A^A_�@�/L���3���H��L��H��u��u���L������M�4���I����A�/��H�=�L�\$肇��L�\$H���vH��L�\$ H�D$�™��H�t$L�\$ I9�H���H��d�d�HF�I��H�*AwH��=1�D��H�
x=���f�H�=l�����H��uM��H�����@A�T$��.�{���A�T$�p���fDH��dH�
�@H�=L��dHF�H�=�HF�1�� ���1����f�H������H��H�D$�Ә��H�t$I9�I������M��L��H��M)�L�L$����J�L=L�L$����M��H��H��L�\$(I)�H�L$I��L�L$ �٭��H�L$L�\$(L�L$ H�I���[���I��I��M��H���H���ff.���AUATI��UH��SH��H��H��t$H��L��H��H��A�[]A\A]���fDH�=|�蔅��H��H��t
�g��I��H��u	H�5��L��H��H��A�H�����L��H�D$�R���H�D$H��[]A\A]�f���H��H�}�HD�E1��v���fD��H����S��H�=�CAH��tHc��y���H��t[É�H�=ب1��q�����H�=�1��a�������G����AWAVLc�AUATUH��K�vSH��H�qCAL�<�H���tH��I�����H��?�_I�7M��L��H�����h�����@I�_H����H�����oE�oMK�oU S �o]0[0�oe@c@�omPkP�ou`s`�o}p{pL�cH�=�BAL��L��D�kxI�_�u���H�-�BAH��uD��H��[]A\A]A^A_��L��H���5���H��u�H��@H��H�^:@H�8���L��H��H���X���fD���I�_I��I�H��������辩��H��H������f�H�{H��H��H�H��H�CxH)�����H�����f�������@���fDAUATUS��H��Hc-�AA9�|H����[]A\A]�@��D�gH�=�AA��DI�A��Ic�H�4@H����I��H��t;D��1�)�H�H�@H�DmI�|�H������L�-aAA��D�%dAAH��[]A\A]û�����z���UH��SH��H���6AA�x�F�����x"�$AAH��H��H�ލx�[]�x����H�������[]�@��H�����H�$�ڝ��H�=�@AH��H�5yH�D$����H�$H���fD��H��@ASH�xH���ȡ��H�=�@AH�5�H��H���ϕ��H��[�f.���H�G H�x鿉��ff.�@��S1�H��1�H����ȑ��H�C [H�x銉��f.���S1��D���H�5%@AH��H���2���H��[�ff.�f�PXH������H�5f�H��H��}@H�81�誅��f.���PXH���aK���SH��H������u*H�����t"H��у���tH�р�H�xH�t��tH��H�����H��1�[�fDH��H�D$�[���H�D$��@��92t1��DSH��H��胈���u<H�����t4H��у���t'H�р�H�xH�t��uH��H�D$���H�D$H�{H�����H��1�[�ff.�@��H��t�x�������f���f.���1�H��t�Gx%����ff.�����G{���@���ff.���Hc�H�
B>AH��H�RH��H�R�Jx�ff.����G|���D��H���
����H�=>A�H�|@1�H�r�N���H��x@�H�r�9���H�Rx@�H�r�$���1ҿH�5Ф����1ҿH�5Ƥ���1ҿH�5�����1ҿH�5������1ҿH�5������1ҿH�5�����1ҿ	H�5�����1ҿ
H�5�����1ҿH�5z��y����=AH���f.��k���H��<A���ff.�@��H��H�=�<At>��x*���9=�<A~H��<AHc�H�H��H�@H��Ð1�H���f��|$�g����|$볐��H������H|H���f.���AWLc�AVI��AUATUH��L��SH��L�bL�*L���ӊ��H��H��tzL���r����t&H��H��L���0���H��1�[]A\A]A^A_��H�����t�H��у���t�H�р�H�xH�t���u�H��H�D$���H�D$�f.������H��H��t�H�pL�������t�H�{�؄��H�èu9H�����t1H��ƒ���t$H�€�H�{H�t��uH���O����H��L��L���*������D��H��H�D$H��t2H�=;At(H��H�=;AH�T$������t�D$H�������������UH��SH�����H������������Hc�H�RH��:AH��H�JH�B�@{t�IxH��[]�ff.�@��H�E:AH��t��H���H�=:E����H�:AH����UH��S��H��H�����Hc�H��H��[H�TH��]������������ATI��UH��SH��L)�~Hc�H9�[]A\�f�HcUH9�H��O�[]A\�ff.���H9�v/UH��SH��H)�H���H��Hc�H9�}��)Ɖ�H��[]�D������f���H9����yAVAUI��ATI��UH��SH��t9H��L��H���k���A�ƅ�~TH��L��H��S ��wCM��tE�u[]A\A]A^ÐH��蘙����u��E��xM��t�A�E[]A\A]A^�fD�����뿃��D��AUATUSH��H9�v;I��H��H��H��I���َ����~;M��tA�EI�D$ H��L��H��H��[]A\A]��H��~@H�5ܟH�81��:~��H��~@I�T$H�5̟H�81��~��ff.�f���H��1��"���f���U��SH��H���V(��tH��[]�H�,~@H�K��H�5��H�81���}��D���f(f���Hcǃ�H�
~@�����Hcǃ�H�m{@�����H��7AH��tH�@�H���_���H�h7AH�@H���ff.�@��1��f���H�57AH��tH�@ �H������H�7AH�@ H���ff.�@����fD��H��6AH��tH�@8�H�����H��6AH�@8H���ff.�@��AVAUATUH��SH���H�.@H9Gu|H�_ H��t{H���x�����葼��H9�ug�CL��-H��L�-�L�%�L�s��ME�C{MD��Z���H��肨��M��M��L��H��H��[1�]H�5��A\A]A^�
��H������H�t@H�5ʝH�81���{��ff.�f�����fD��H��H�=��������H�H���ff.�f���H������H����騻�����H���@H��t���=��@��x�H���u���H�v�@H���f���H���ӷ��H��H���W�������'������H�t@AVH�=֜AUATUSH�0����H�ov@H�5 ���H��H��U���H��������ƒ�����H����<��H�xH�5q��ҹ��H�;1�H��H�5���Z���H�;1�H�����H�5���B���H�;1�H���H�5-��*���H�;1�H��H�54�����H�;1�H��H�5"����H�;1�H�>H�5����H�;�H��H�5��ǩ��H�;1�H���H�5�w�?���H�;1�H��H�5��'���H�;1�H���H�5ԛ����H�;�H��H�5����H�;�H�EH�5~��٩��H�;�����H�
�H�5���.���H�;�H�O�H�5��裩��H�;1�H��H�5]�苩��H�;�H�lH�5S��p���H�;1�H����H�5M��X���H�;�H��H�5C��=���H�&w@H�;1�H�5=��%���Hc=�2A�ٓ��H�@H��H��H��2A�?����
�2A��~KE1�L�-{2AL�%d*@@I�UIc�H�;A��H�@H��L��H�p莶��H��H���c���D95D2A�H�;H�
�[1�]�A\A]A^�,���@H������j���H��t-H���[���H��v@H�8�P���fDH�1v@H�8�;���H�"r@H�8�,���H��p@H�8����H��u@H�8����H�ex@H�8���ff.�f���1���wH�u@Hc��xf��
���ff.�@��1���wH��t@Hc��xf������1���wH��t@Hc��xf�����ff.�@��1���wH��t@Hc��xf�����ff.�@��1���wH�Vt@Hc��xf�����ff.�@��1���wH�&t@Hc��xf�����ff.�@��1���wH��s@Hc��xf�����ff.�@��1���wH��s@Hc��xf�����ff.�@��1���wH��s@Hc��Dx���f���1���wH�vs@Hc��xf��	���ff.�@��1���wH�Fs@Hc��xf��
���ff.�@UH��AWAVAUATI��H��SH��(dH�%(H�E�1�襬��A�<$H�E�����E���t(H�E�dH3%(�4H�e�[A\A]A^A_]�fDA�<$辌��A�Dž���1�M��A��*fD�[�����uA�<_�3A�>�£����AE�I��A�>@��u�M��M)�I��?�o���H�Pp@H�U�L��H�8�ɺ�����Q���I��?�G����]�A���g�A�<$��1�M��A�>A��@��D������	����0���A�>��AE������EE�I��A�>@��u�M��M)�L�����L�H��?����H�pH��H��H��H%�H)�H���H��H9�txH��H��$���fDH�io@H�U�L��H�8����m���D�����M��M)�I��?�P���A��������E�A��W������t	H)�H�L�L�l$L��I���L���1�@��t	���@��tD�fD�H����t���E���to�������A�}L��@��t(f��ۡ����tH�H�Ls@��H���;@��u�H�kn@H�U�L��H�8����o����A���z���A�}�~�����uRA�}M��@��t!D�����uA�$_I��A�<$@��u�E���L���H��m@H�U�L��H�8�m����1���I�EH�
�r@�<A�}�A��1�A�����I�<I�|
D9�r�I�|L�������@��AUATI��UH��SH������xK�lj��
���H��H�pI��������u_A�E��tA�E{ueL��H����+�H����[]A\A]�fDL��H���]��lj�贱��H��H�����H����[]A\A]�@H��L��H��[]A\A]�#�H��q@H��H�5
�H�81��(q�����SH�����x���H���H��[H���|���@1�H�������ff.����ATUH��SH�������yOH��H����A��H�H�@H��*AH��H�PH�h�E{t�JxD���Ͱ��H��H������D��[]A\�H��p@H��H�5A�H�81��_p��ff.�@��SH��賆��H��H���h���H�
Q*AHc�H�RH��H�R�Jx[�f�ATI��UH��S��xb��H��L�����Å�x2Hc�H�@H�*AH��H�PH�h�E{u������L��H���=�����[]A\�fD�Jx����{�������AUATI��UH��H��SH���t�H����j�A�Ņ�x#��蜯��H��D��H��[H��]A\A]�4���@1�L��������f���USH��H������臅����H��H�����H�
#)AHc�H�RH��H�R�JxH��[]�fDUSH��H��t]H�����{|��H��?wMH�=�(AHc�H�
4�H��謩����tH����[]�����Ѯ��H��H������H����[]�D������ɐ��UH��H��SH��H���X���xH��H���[]�d���@H��1���H��H��[��]�F���fD��1���wH��k@Hc��xf�����ff.�@��Hcǃ�wH��k@���AWH��1�AVAUI��H�=m�ATUSH��辜��I����o��L�8�{��L�0I�$�� �H��I�\$��I�l
H9�w�FfD�_H��H9�t4�;��{����t��;������t��;H����x���C�H9�u��A��u
I��������8o��H��{��H��p��H���8���L����.Z���o��L�8��z��H��L�0�������L���������Hc�H�
�&AH�RH��H�R�r���}H��[]A\A]A^A_�I�D$I�T$H�XH�l���I�$�Ѓ����A���H�Ѐ��I�$�����)�����I�|$I�$�������
���L���R�������������y���AUATUSH���.H�&A����Hc�H�RH�\�H�����&A��~%H;Xt8��H�RH���
H��H;XtH9�u�H�������[��]A\A]���CI��I����uH�sxH�{�n�����x�A�,$����I�uH�ډ����A�,$H����[]A\A]��H�?H��[]A\A]�f���fDUSH��@��ulH�����tc�����uYH�uRH�@H9GuEH�_ H���r���lj��(���H9�u+�C��tH����[]�H��H�sxH�{[]���D�����H����[]�f.���SH������H�������H�H�ىƒ�������tI��H��������[�H�59$AH��� H��1�1�1���{��H��H��t9H��fDH�yuH�"@H9A��H�H������u��w������[�f���u�H����H��H�H�ىƒ����N���H�5�#AH��t`1�1�1�H���B{��H���H���H��H��H�y�n����z���f��+�H��H������H�Ǩt9贰��[�f�H��[�'�����H�=�����H��H�-#A��Ku��[�f��H�=��߮��H��H��"A�����H���C���H�����(������AWAVAUI��ATI��USH������L����	��������Ņ�����9����ب����I���Ψ��I��A�����D$A�GA��u
I��������D$��ueL���
�����uYA�~uRL�������uF�|$��u��t<�t$�������M���"L���Gr��9��v��t�=tE1�H��L��[]A\A]A^A_�I������J���I�$�D$�ƃ����8����� ��I�|$����u��D$����fDI�u�D$������������ ��I�}@���D$@��������+���L�����������L���m����MD��/���@�L$��uH�D$������L���<q�����F�H��[]A\A]A^A_����D�����,���L���q���T$�Å������M������������fD���@���0�����u����ff.����UH��SH��H���K���H��tH��[]�H���m��H��H�h�l��H�54�H�PH�	b@H��H�81��f��ff.����H����u$H�����t����������@��u��ueH�����tߋ
����ոH��`u#��t�H�zu�H��@H9Bu�f.�H��H���t���H��tH��H���Ü����t۸�D�H���fD�H��`�c������G���H��<���H�2@H9G�+����9�����H���S�����x%���H�����/��H�]@H�5��H�81���d���SH�������xH�C [�H������D��SH�������xt
1�[�f�H�����H���@���¸��t�1��֐��H������@xH��H��'H��?���U��SH��胤��H��twD�@xH��D��1���u?�C��tH��H��[]�f.�H�sxH�{�����u�H�sH�=�1��\i��H�e`@H�KA�����H�5!�H�81���c��H�@`@��H�5�H�81��c��ff.�f����G������UH��SH����u^H�����tUH�E�ƒ���tG��uBHcމ�������~#H�uH��H��?�H	�H�]H��[]�fDH����H��[]��H����b�����AVAUATUSH�����H�������H��ƒ���������H��Hc�����A��9�t\���h���I��H�E�n��0��tnH%���H�D���͢���pD9�t
�����tk��~&H�H��H%��?�H	�H�+H��[]A\A]A^����H���6�H��[]A\A]A^�f.�A��u�L����|����uE�n��D��H��1��s�
놐H�E�n�V���H���a��ff.����SH��H����h��H��[��饝��D��SH��H������H��[��酝��D��UH��SH������x"�lj����H��t,�P��tMH����[]�@H��H��[]��f.������t�H��a@H��H�5E�H�81��-a��DH�pxH�x������y�H��H�=��1�1��D����f���H��H�|$�����x
H���DH�|$��l��H�D$H��t;H���g���xu-H�|$�sg��H���k{����uH�|$�
^��H������H��ø�����f���H���#[��1�H�H�$�{��H�=�AH��H�55��H�D$�o��H�D$H��ÐSH��H�\$H�|$H���)v��H�|$��f���xu,H�|$��f��H����z����uH���k]��H���s���H��[�H�6`@H�5��H�81���_��D��SH�����xH�C [�f�H���h�����x��[�ܟ��H��_@H��H�5��H�81��_���ATI��U1�S�?�H��@��H��tGH��菝��H���wf��H�CH�=xAL��Hc�H�
����4���H�=AH9�t>��[]A\Ð�����H�GH���څ��H�=3A����H����p��H��AH9�u��U���H�=AH�
W��H�5�Hc��ș����[]A\Ð��H��tH��H��H�=�A� ���PH��^@H�5qH�81��^�����S1�H��H�=o�:`��H���RY��H��[�ff.�f���H��H�ʀH�={�@���fD��S1�H��H�=G��_��H���҂��H��[�ff.�f���SH��H�t$����H�|$H���P[��H��H�����������H��[����@��u	H�����u%SH��H���a�����xD=���t6��[����fD�����u�H�~u�H��@H9Fu�H���fD�[�H��]@H��H�5t�H�81��>]��ff.����g������SH������xH�C [�f�H�������x��[�,���@1�[�@��UH��SH��H��������yCH�=�AtH���5�����x!H��H�߉�[]��������f�H�������[]�H��\@H��H�5K|H�81��i\��f���H���Ӓ�����I�H��逜����S�H��H��W@H�8�Ӎ��H�D$H��tH�|$��yY��H��聒����I�H�=>������xH����[�@H�=	AHc�H�
O��H�5�Ö��H����[�ff.���H���Ӗ��H�����؛�����H��AH��t���=�A��xH��襛��H�vAH���f���]��ff.���H��裌��H��H���w�������������Hcǃ�wH�m[@�����H��H��H�=A�Jj��f.���H�F �Ð��H�4�4�ff.�@��ATI��US�`[��H��H��V@H�8��h��H�5�AH��H��tOL��H���d���H�5eAH��tXH��H���M���I��H��1�L��1Ҿ��"k��H��[]A\�f.��H�=d}�ߟ��H��H�A��H�=S}迟��H��H��A���SH�5AH��1�H�1�1��bk��H�[�ff.�f���AVAUI���ATI��US���H��H���	W��H��H� ����V��H�5mAH�kH����L���t��H�5IAI��H����L���}���L�mI��1�H�EL�Y<1�L��H�E4��H�E�i��H���V��H��H� u6�qV��H�[ H�KH��tH�{���1��nj��[�]A\A]A^��;V��H����D�+V��H�5�AH�k H���7����H�=�{�V���H��H�|A������H�=�{�/���H��H�MA������AVI���AUATI��US�d�H��H���U��H��H� ���U��H�5�AH�kH����L���s��H�5�AI��H���L���}s��H�5�AH�EH����L������L�uI��1�H�EL�M<1�L��H�E���h��H���U��H��H� u:�T��H�[ H�KH��tH�{���1��h��[�]A\A]A^�@��T��H����D�T��H�5AH�k H�������H�=�z�ޜ��H��H��A�����H�=yz跜��H��H��A������H�=Bz菜��H��H��A������ATI��UH��S��H��H�D$������������IW��I��H��R@H�8��d��H�5PAH��H����H��H���I���H�5*AH�l$H����H��H���)���H�5AH��t]L��H������I��H��1�L�����1Ҿ���f��H��H��[]A\�L��H�L$��1�H��bA��za���O���D�H�=Ay����H��H��A��H�=y�_���H��H�mA�L����H�=�x�?���H��H�UA����H��U@H�5�zH�81��HU�����ATI��UH��S��H��觕��H�L$����1�H��ZL����`�����H�(Q@H�8�Pc��H���U��H�5�AI��H���5L��H���ʛ��H�5{AL�d$H����L��H��誛��H�5KAH����H��H��菛��I��H��1�L�p1Ҿ��de��H��H��[]A\��L���H�a1��_��H�vP@H�8�b��H�5�AL�d$H��H���q����H�=�w���H��H��A�Q���fD�H�=�w这��H��H��A�F���H�=�y1���������D�H�=nw臙��H��H�eA����H�=1w�_���H��H�EA�����ATI��UH��S��H��������/1�H�L$H��X��L���^������H�hO@H�8�a��H�5�
AH��H����H��H��������S��H�5~
AH��H����H��H�����H�5X
AH�l$H��tNH��H���ә��I��H��1�L��1Ҿ��c��H��H��[]A\�@H�=�x1��ڔ���V���D�H�=�v�O���H��H��A��H�={v�/���H��H��A�V����H�=Jv����H��H��A����H�yR@H�5vH�81��R�����AVI���AUATI��US�$�H��H���iO��H��H� �	�TO��H�5mAH�kH���	L���Xm��H�5IAI��H���eL���݁���H�EH����H�5AH�UH���L��讁��H�EH�EL�u H��tH��� j��H�EI��L�R71�1Ҿ�L���!b��H���N��H��H� u=�N��H�[ H�KH��tH�{ ���1��b��[�]A\A]A^���[N��H���D�KN��H�5dAH�k H��������H�=�t�v���H��H�<A�����H�5AH��tdL���l��H�5�
AH��H�UH������H�=t�$���H��H��
A����D�H�=�s���H��H��
A�{����H�=�s�ߕ��H��H��
A�|�����AVI���AUATI��US��H��H���YM��H��H� �	�DM��H�5%
AH�kH���	L���Hk��H�5
AI��H���5L���-k��H�5�	AH�EH����L���k��H�EH�EH�EL�u H��tH���h��H�EI��L��61�1Ҿ�L���`��H���L��H��H� uH�L��H�[ H�sH��t!H�{��{��H�{ ���H��1��`��[�]A\A]A^�fD�KL��H���D�;L��H�5	AH�k H��������H�=�r�f���H��H��A������H�=�r�?���H��H��A����H�=kr����H��H��A�����SH��H��H�t$誎����t.L�L$H��1�1�L��=���^��H�D$H��[�fD�3W��H���[���H�L$H��L���H��词��H��[�f���AUI��ATA��UH��SH����d��L��D�⾁H��I��L�LMH���t^����u!H�����tH��Ѓ����H��sH��H��[]A\A]�@��u�H�����t�H�E������t�%H	�H���fD��H��H�5)A1�1��Ȉ���H��4HD�H���fD��AV1�AUATI��H�JRUH��S��H��H�D$H�L$�lX���7�������L�l$I���A����I�M�����c��L��61�1�I��I����L��H�@�O]��I�.�� ��H����M�fH��thI���tBf.�I��M��~OH��~�1�L��I� uI�F H�<�H���n��H9��I���u�H���H�����L���$~��I��M���N���H���[]A\A]A^�I�n�t����T��H��� ���H���L��L�!H���y���H��[]A\A]A^�I����������U1�1�SH��H��H�5�A�#���H��4��H��H��txH��t[H��� tCH����tHH�;H��t?@��taH�H��~iH��H�L?�1�H��[�*]�\��f�H�{~	H�[ ��PVH��[]�X��DH���[]�@�}��H���fDH���[]�ff.����U1�H��1�S�dH�����H��1�1�H��I����L�L<�W[��H�CH��[]�ff.����U1�1�H��S��dH��蠀��H��訊��I��H�チ��L��H�-BLD�1�1���Z��H�CH��[]�D��U1�1�H��S�4�dH���@���H���H���I��H�チ��L�4'H��ALD�1�1��Z��H�C�H��4HD�H��[]����U1�1�1�SH���dH������H���ۉ��I��H�チ��L�H��ALD�1�1��#Z��H�CH��[]����U1�1�H��S��dH���p��H���x���I��H�チ��L��H��ALD�1�1��Y��H�CH��[]�D��AT1�I��H�NUH��S��H��H�L$�IT��������tx1�1Ҿ4�d��~��1�1�L��DH��I����L���OY��H�{ u0H�D$H��tH�5fAH��1�1�1���Y��H��[]A\��H�CH��[]A\��SQ��H���{���H���L��E1�H���؇��H��[]A\�ff.�@��ATI��USH��H�D$��u\�?���H�-L�����ID�H�t$1�1ҿd�~��I��L��1�H��I��1Ҿ��nX��HcC H��[]H�DA\�@H�L$H�T1��S��H�-�C�ɇ����t�H�=�L1��w����D��ATI��UH��S�=^��1�L��dH��H���x}��I��耇��M��H�チ��L��CH�uCLD�1�1���W��H��[]A\���S��H��H���>���H��H�����[�ff.����S��H��H������H�����tH�C �[�f.���S��H��H���މ��H�����u�[�H�C�P��f���S��H��H��讉��H�����u�[�H�C�bP��f���S��H��H���~���H�����t�[�H�C�2P��f���S��H��H���N���H�����uH�C �[�H�C �����H�H�H!�H��H�C��O��ff.���AWHc�I��AVAUATUH��SH��� ���I��H����B��L��I� �-��B��I�^�����E�H��L�l���H�EH��L9���H�}��d��I��H��u�H�-F�@H����DH�;���e�����L��H���E���H�{��H��H��1��_V��H�C�L9�u��1�������1�L���W�{��L��0I��L��1�1Ҿ��jU��H��L��[]A\A]A^A_���ۄ������1�L���W�z��A�L�R2I���D�A��I�^ ����f.��H�=@h�ω��H��H�5�@����[��1�L��WH��I���Fz��L��/I���<������Z��1�L��WH��I���z��L��1I������H�;�s��H�5�iH��H��;@H�81��tC��@��ATUH��SH��H��H�t$����H�H����迃����t[�^H��A���{^��A��H�ٿd��A��H��D	����zy��H��1�1�I��L��2����S��H���[]A\Ð�L��H���C~��H�L$H��L���H��藂��H��[]A\�fDH����t��H���K���H��B@H�5�fH�81��B����ATUH��SH��H��H�t$����H�H�����ς������H���]��I���]H��L��d�����	����x��H��1�1�H��I����L��2��R��H�{H��� uH������uH��H��[]A\�f��������t��:d��H��H��[]A\�fD��J��H���}��H�L$H��L���H���_���H��H��H��[]A\�H���s��H������H��A@H�5�eH�81��HA�����UH��SH��H� ��H��H�����H�H����H�5�@H��1�1��|��H��H��4��H����H�@�H)�H9���H�L	H���+1��LR������H��H��1��0R��H�޺H���pu������HD�H��H��[]�f.�H�v H����:���H���r��H���-����H��H��[]ÐH����;��H���`���H�i@@H�5VdH�81��@�����UH��SH��H� ��H��H�����H�H����H�5�@H��1�1��w{��H��H��4t~H��txH��������?H�{�H�xuH�L?H���+1��Q��H�L�H�5��@H��H��1�[]�P��H�v H����r���H���q��H���e����H���[]�@�:��H���H�_?@H�5YcH�81��>��ff.�AWAVAUATUSH��H�H�D$hH9GH�Ę[]A\A]A^A_�H�_H��H���0<��H�H�]H��� ���<��H�CH�D$�}4H�]H�D$`H�H���}4H�H��H�D$H��H�\$H��H��H��H��H�\$PH��$�H�D$X����A�����H�t$@�t$|�|$x�D$<H�t$`H�T$�|$xH)�H��H��?H�1�H�H�H�D$H�t$H�Ɖу�H�4H�49�r�D�D$<H�H�E��t��H�T$H�T$H�t$H�<�H�pH�|$(H�H��H�J�T/�J�T(�H)�H)�D$@���r��1҉у�L�L�9�r�H�t$(H�H��H�J�D+�J�D.�H��H�vH��H)�H)�D$@���r��1҉у�L�L�9�r�H�D$ H�D$`H�D$0I��L�d$L+d$ M9�|JH�D$H�|$H��H�t$(I��L�<�L���U(�}0��t�؅���� L�d$I��L+d$ M9�}�H�D$H�t$0H9��kI9��bH�D$0H�D$L�d$HN�+H�|$H�t$(H�l$pL�D$L�d$@H�NjD$|�l$xA�ƒ�A��A��1��ƒ�H�<H�<9�r�D�t$<H�<1�H�E��t	���E��tD�4fD�4H��E��t��H�H�yI��H��H�J�D.�J�D)�H��H)�I)�D���r!H�L$(��1�A�փ�K�7J�79�r�H�L$(H�L�vI��I��H�I�C�J�D.�H��L)�I)�D���r H�L$(��1҉׃�I�?I�>9�r�H�L$(H�D$I��HL$PHt$XL)�HD$0I9�~L9D$H���H�l$pH�t$0H9t$h�/H�D$ HD$0H�D$`H9D$h���H�]H���y8��H�H�]H��� �	�a8��H�SH�\$H�D$0H�uH�}H��H��H�uH��H�E H�Ę[]A\A]A^A_�b����t$x1��ƒ�I�H�9�r�L$<H�L���t��H�D$0H�D$H�t$H��I�wH�H��H��I�J�T(�K�T/�I)�L)�D|$@A��A��rA��1҉у�L�L�D9�r�H�H�pI��H��H�J�T+�J�T(�H)�I)�D$@���r��1҉у�I�<H�<9�r�H�D$0����@�t$x�ƒ�I�H�9�r�t$<H�L���t��H�L$H�D$I�wH��I��H��H�H��I�J�T(�K�T/�I)�L)�D|$@A��A��rA��1҉у�L�L�D9�r�H�H�pI��H��H�J�T+�J�T(�H)�I)�D$@���r��1҉у�I�<H�<9�r�H�D$ ���H�D$0H��H�D$�����X6��H�S ���J6��H�C H�D$�-���ff.��AVAUATA��U��SH��H��@@����H�H�4$H����������H��������H9���H��H�<�H��H�D$H�T$�9��E�侁H��H�D$H��H��\I��H�D$(H�3]L��+HD�1�1�H�D$ 4D�d$0�D$4H�D$8��H��H�����H�\$L�t$(H�3�� ��H����I��H���,5��H��H� �<�5��H�{ I��L��L��� _���L�k�pDH��H����H9�}sH����4��H��H� ���4��L��H��L�4��4��H��H� ���4��L��H��I�H��?H�H��H�H��H�3H��� u�H�CH9�|�H����H����H���^��E���H���u���H��������H9���H�<�H��H�D$H�|$��7��H�D$ 4H�D$�v����H��I��H��D�d$0H�HD�E��H��Z�D$4L�*H�D$(H�^ HD�1�1�H�D$8�G��H���)���H�\$L�t$(H�3�� ��H����I��H���n3��H��H� ���Y3��H�{I��L��L���b]��E�����H�r4@H�H�CH��@H��[]A\A]A^�H����g��H������1���P��H��@H��H��[]A\A]A^�fD��2��H�{���f�L�k�Q�����2��H�S ����f��2��H�C ���f�H�CI��I��?I�I��V���f.��{2��H�{ ����f�H�CH��H��?H�H����H�#5@H�5OYH�81���4��H�5@H��H�5 YH�81��4�����AU1�I���4ATA���dUH��1�SH����j��L��H�L$D��H��H��91��
@��H�t$H��tH��1����H��[]A\A]�D�t��I��L��*��uL�v*1�1�H�チ�D��H�C�H��4HD�H��[]A\A]�f���AU1�I���4ATA���dUH��1�SH���&j��L��H�L$D��H��H�91��J?��H�t$H��tH��1�1�����H��[]A\A]����s��I��L�+��uL��*1�1�H�チ�5D��H�C�H��4HD�H��[]A\A]�f���AUI��ATA��UH��SH����z��L��D�⾁H��I��L��1H����C����u!H�����tH��Ѓ����H��sH��H��[]A\A]�@��u�H�����t�H�E������t�%H	�H���fD��AT1�I��H��8USH��H�\$H��I��H���>����th��������H�L$H�4$H�-�,��d�h��1�I��1�H��L��I�����B��H�C�H��4HD�H��[]A\�@�cr����u�H���.��H�$H����H�L$�4H�-�+H�$4��H�$4H�L$�4H�-O,�[���f.��q����uGH���.��H��uH�L$H�4$H�-j+�&���DH��H�-V+�l��H�4$H��H�D$����H�=�61���2���H���l��H���F�����U��H��H��SH���yt��H��H���P��H��tH��H���_��H���[]ÐH��H���l��H���[]�f���H��H��1�1����H��H����h��ATI��U��SH���9��H����k��L���H��L�H�[H��]A\�<p��ff.����ATI��U��SH���p����t'L���H��E1�L��!���A��H��[]A\�H��L��[��]A\�o���ff.�@SH���'9��H���Ok��H��E1�1�1�H��[�o��ff.����USH��H���.p����t2��F��H��1�1�I��L���H���w@��H��H��[]�DH��H��[]�z���f.�SH���8��H���j��H��L�%�[1�1�H���o�����USH��H���o����t2�5F��H��1�1�I��L����H����?��H��H��[]�DH��H��[]�z���f.���USH��H���>o����t2��E��H��1�1�I��L�����H���?��H��H��[]�DH��H��[]����f.���USH��H����n����t2�uE��H��1�1�I��L�D)��H���'?��H��H��[]�DH��H��[]���f.���USH��H���~n����t2�E��H��1�1�I��L�D)��H����>��H��H��[]�DH��H��[]�Z���f.���AUATI��UH��S��H���n��L��H��߅�ty����H��H��� uAH�]L�mH��y%�Af�L��H�<�H����O��H���t"H�E�� u�H�E ��H��H�����@H��L��[]A\A]�f.�H��[]A\A]�q������USH��H���nm����tB�D��1�1ҿdH��H���Ac��H��1�1�I��L�`���=��H��H��[]�@H��H��[]���f.���ATI��US@��tOH��H�H��xQ�C��H��1ҿdH��H����b��L��1�1�I��L�i���/=��H��[]A\��H���h^��H���H�l,@H�5�2H�81��,��ff.���ATI��U��SH���kl����t71�1�1��d�Gb��L���H��I��L�e���<��H��[]A\�H��L��[��]A\����ff.�@��UH��SH���k����tZ�B��H���B��H��1ɿdH����a��H�チ1�H��I��L�%1��-<��H�sH�{H��[]�W��f.�H��H��[]���f���ATUH��SH��H�D$��uT�ok��L�%���t|H�T$1ɾ�d�>a��M��H��1�H��I��1Ҿ��;��H�CH��[]A\��H�L$H�R71��=6��L�%F&�k����t�H�=�/1��l���D�3��H����e��H��E1�1�1�H���)j��H��[]A\���ATI��US@��t_H��H�H��xatBH���jE��H��1ҿdH��H���u`��L��1�1�I��L������:��H��[]A\�f�[1�]A\�%E��DH���\��H���H�*@H�5l0H�81��)��ff.�AWAVAUATUSH��M�8I��4u!I�8I�pI�PI�HH��[]A\A]A^A_�1�I��I��H�����L��I��L����:��L��L��H���'^����yL�#L�sL�c���1�H��L���:��L��H��H����]����~�H�kL�kH��[]A\A]A^A_����ATI���US���H��H���@&��H��H� ���+&��H�k�"i������H�E4L��I��1�H�E41�L����H�EH�EH�E 4H�E(4�?9��H�} H��4uEH���%��H��H� u!�%��H�[ H�sH�{[]A\��T����%��H����DH�U(I��H��H���N����@�c%��H�k �Zh�����8����
1��H���5c��[L��]L����1�1�H��A\�g��ff.���AT1�I�ԺUSH�.��H�H��H���9��I�T$H�zuH��H��H��[]A\�J\��H�'@I�T$8H�5�KH�81��='��ff.�f�AVAUATUSH�H��4uH�:H�1[]A\A]A^�H��1�I��I��H��H���I���\��H��H��H����[����yI�mI�$L���1�H���v\��H��L��H���[����~�M�4$[]A\A]A^��AVAUATUSH�H��4uH�:H�1[]A\A]A^�1�I��I��I�����H��H���8��H��H��H���B[����yI�mI�$���1�L��H����7��H��L��H���[����~�M�4$[]A\A]A^���AU�4�4�4ATI���dUSH���V\��H��H�$H�D$H��L�h�qm��H�C4H�C 4H���)f��I�م�trL��L�h1�1Ҿ��z6��H�{ H��4u8H�SH��4t1�H���l��H�S�H���{l��H��H��[]A\A]�DH�KL��H���	�����L��L�V1�1Ҿ��6��H�{ H��4t�H�KL��H���_����z���f.���USH��H�zu1H�.H����1�H��H���b6��H��H��H��H��[]�Y��H�W$@H�5=IH�81��$��fD��AT1�I��H��)UH��S��H��H�L$�0����d����tpH�t$H��uE1ɺ�4�d�Z��L��1�1�H��I����L�f�5��H�CH��[]A\�@L����N�H��[]A\�D�+-��H���S_��H���L��L����H���c��H��[]A\���USH����wUH��uH�6H��H��[]�[���1�1Ҿ�d�Y��H��1�1�H��I����L�|�W4��H�EH��[]ú1��@V����UH��SH���c����tz�k��1�1�L�ZH��I����H���4����u>H�����t5H��Ѓ���~l@��u"H�����tH�E������t%H	�H�H��H��[]�f.��+��H���#^��H��H��1�[L����1�H��]�wb����H��r����S��H��H����e��H�����tH�CH��4tH��t�[��H�C�[�H�C�|,��ff.����AT1�I��H�~'UH��S��H��H�L$�-���tb����tpH�t$H��uE1ɺ�4�d�?X��L��1�1�H��I����L�V�2��H�CH��[]A\�@L��1ɺ���H��[]A\���*��H����\��H���L��L�D��H���<a��H��[]A\���AT1�I��USH��H�.H��H����V��I�T$H�zuH��H��H��[]A\�U��H�� @I�T$8H�5�EH�81��� ��f���AWAVAUATUSH��H���Va�����I��A��u
H���������7��I��I�F� �!����H��I���g��1�1�1��d��V��H��I��
M�l$��M��1�M�t$L��1�H��I�D$ �,1��I�t$ M�l$H���II�u�� ��H��H���H���}I�}��I�u�M�}�IH��H���H9��uL��H��L�4�H��?H�H�L�4�A��u
I������I�uH���� u�I�EH9���I�U ��I�uH���m���I�} H���fDH��������H���у����H��H�Ѓ�M��������������H����������H������������%H	�I�$���@H��ƒ����'����� �qH��������?H�{H9�����H��:��I������L��L����:��I�u�����H���`H��`����I���`H��`����L��L���F3������H���L���rF��H�@H�I�EA��u7I�����t.I�U��у����H��H�Ѓ�H��u����H��L��[]A\A]A^A_�DH��H��?H�H�뇐I�\$H�H����E��H��L���uL������&��H���#Y��H��H��1�[L����]1�A\H��A]A^A_�o]���H�I�}��M��H�
������
E���`���H����H�����I������B���I�$�������0���%H	�I�U����H��@H�5�AH�81����ff.�����t��tHc��d��H��@��f.���AUH��I��ATU��SH��H���2��H��H� �����L�c��L���?��I�L$H��H��4��H�5��@I�<$I���1��.��H��H��I������H��H� uh����L�c M��thI�L$I�|$�1����-��H�����H��H� �����L�c H�t$�H�l$�c��I�D$��[��L�cM��u�I�|$H���W��I�l$H���[]A\A]��+��L�c �	���f�I�D$H�t$�H�D$�7c��I�D$H���[]A\A]�f�����L�c�d���f���AUH��I��ATA��USH��H�����H��H� �����H�kD��L������H�}I��H����H���DV��H�}L��H�5�@H��u	H�}��1�1��y,��H��H�����@���G��H��H� u#�6��H�C ��u#H���[]A\A]�fD���H�C��t�H�HH�x�1����,��H������H��H� u^����H�[ H�CH���[]A\A]�D���H�k ����f.�H�t$�H�D$�a��H�E����{��H���D��ATH��I��U��SH��H���T��H��H� ���?��H����L���a��H�{H��H����L�CH�5��@H��H�;I�����1��+��H�{H�����tMH��tH��H�{ �1�����*��H�t$�H�l$��`��H�CH���[]A\�f�H��t�H���RT��H���[]A\�@�{��H�[ �7���f�H�����1��|*���^�����1��d*���F���ff.�@��AVH��AUATI��U��SH��H�����H��H� �0���H�=��@H��H���0��S��H�=��@I��H�����S��L���I������L�CI��H��I���iH�5B�@H�;�1��)��H��L9���H��tqL9�tl@���@��uH�����t�E������@H�{H���gH����4��H���1H�{L����R��H���[]A\A]A^�H�{H��t�H�s�MD��H�{ ���H��1��)��H�CH�C�����H�=��@H�[ H������H�=�;��\��H��H�l�@����H�{H����H�t$�L�d$�^��H��H���C��H�{ ���H��1��k(���!���fDH�5��@H�;�1��J(��H�����f�H�=O;�
�_\��H��H���@�1���H�sH�{�CC��H�{ ���H��1��'��H�kH�t$�L�d$��]��H�C���f.�H�s�B��H�{ ���H��1��'��H�CH�C���f.�H���@��H� t/H�@�8_����H�{@H�5,<H�81����f.�H����f.���U��H��H��SH���9��H��H��H���P��H����7��H���[]����U��SH��H��H�����H�{ H��tH�{H���sP��H���[]��H���7��H�����uH�C ��fDH�{ u�H���[]�ff.�f���H�F H��tH��H�F ��DS��H��H���b��H�{H����O���[�ff.�@��AT��I��H��UH��S���W��H�����tH������L��H���O��[�]A\����f.���S��H��H������H�{H���bO��H�k t�[��_��ff.�@��ATUH��S��H��0H�FH�D$H�FH�D$H�D$H��� H�D$��H�8H����H���/��H���1�H�D$L�d$ �N��H�|$1�H���Z���f.�H�H����H9���H�D$H��� H�D$��H��H�<���H�D$H��� H�D$��H��H��L��E1�L��H�Z���H�=3���H�D$(H��@L�1��]/��H�t$ H��4��H�|$�$N����H�D$Hc�H��� H�D$�H���H�@H9��N���H�D$H����H�t$H�|$��M��H��0�[]A\��H�@ H�<��1���H�|$��M����H�@ �)����H�D$H� t"H��H���H�D$ �5���H�@ ��f.�H�xH���J���H�|$�v4��H��0�[]A\����ATI��U��SH�� H�FH�^ H�D$H�FH�D$H�CH�F H�D$H��� H�D$�H�8H����H����,��L���E1�H�D$H�,��
��H�|$1�H���X���\DH�H����H9�}fH�D$H��� H�D$��H��H��H��� tkH��H����H9�}{H�|$H�4(�EL��A��H�D$Ic�H��� H�D$u�H�@H9�|�H�D$H��thH�t$H�|$�	L��H�� �[]A\�H;X}H�@ �@H�@ �p����H�|$���K������@H�xH�����H�|$��2��H�� �[]A\����S��H��H������H�ڿ[H��1���E��ff.���AT��UH��SH��H�^L�f H�����H��H��� tdH����L9�taH��� K��H��� t H����L9�tH���[]A\�fDH�CL9�u�H�}u8H��H��[]A\�2���H�CL9�u�H��H�t$�z ��H�t$�H����J��H��H��H��[]A\��1��D��AV��AUATI��USH�nL�n H����
��H��H���dJ��H�}�� t(H��A�H����L9�t"[L��]A\A]A^��H�]A�L9�u�H���Y1��I�|$I��tH���*��I�D$L��[]A\A]A^�DH���85��[L��]A\A]A^�ff.����H����H���.
��H���0���H���ff.����SH�^ ��H�CH�F H���	��Hcӿ[H��H�T1���C��ff.�f���U��SH��H��H�nH���	��H��H���+��H��uH���[]�H�C�,��ff.����AVH��AUATI��U��SH���4��H��H� �����H��L����A	��H��I���0��H�k I��H��4��H��H�C 4H��1����L�s(����L��H��H���4B����u0I��M��I��L��L��H��L����[�]A\A]A^��y�L��I��H��L��M��I���f.��k
��H�[ �G���f�H�C �L�k([]A\A]A^�f.���AU��ATUSH��H��H���U��H��I���/��H�kI��H��4uL�k�L�cH��[]A\A]�DH�Ǻ��1�H�����H��L��H���;A�����H���[]A\A]����U��SH��H��H�������s4H�Ņ�uoH�{ 4H�D$t1H��H�s H�|$�S(�S0��t�؅�y3�K4H�{��tH�t$�G��H�{H���G��H�CH��H�CH;Ct4H���[]��H���.��H�{ 4H�D$u��f.�H�����H���[]�ff.����AU��ATUSH��H��H�����H��I���-��H�kI��H��4uL�k�L�cH��[]A\A]�DH�Ǻ��1�H�����H��L��H����?����x�H���[]A\A]����AT��USH��H���k��H�k I��H��4tfH��H�C 4H��1�����/��L��H��H���q?����u%I��H�KH�SH��L�����[�]A\�Dy�L��I��H����H�C �[]A\�f.���AT��USH��H������H�k I��H��4t^H�C 4H��H��1��?��L��H��H����>����u"I��H�KH�SH��L����[�]A\�f�y�L��I��H����H�C �[]A\�f���U��SH��H��H���9��H�KH��H��4uH�kH���[]�@H�Ǻ��1�����H�SH��H���5>�����H���[]�D��U��SH��H��H������H�SH��H��4uH�kH���[]�@H�ƿ1��>��H�SH��H����=�����H���[]�f.���U��SH��H��H���Y��H�KH��H��4uH�kH���[]�@H�Ǻ��1����H�SH��H���U=����x�H���[]�D��U��SH��H��H������H�SH��H��4uH�kH���[]�@H�ƿ1��=��H�SH��H����<����x�H���[]�f.���S��H��H���~��H�����u�[�H�C���f���S��H��H���N��H�����tH�CH��4tH��t�[��H�C�[�H�C���ff.����S��H��H������H�����u�[�H�C�r��f���S��H��H�����H�����t�[�H�C�B��f���S��H��H�����H�C�%��D��AT��UH��H��SH���g��H��H���,)��H��H��I������uH�����u2H�t$�H�\$�.N��L��H��H���'��H���[]A\�f������u�H��H���A����f���U��H��H��SH������H��H���(��H�����tH�}H���JA��H���[]�fDH�}��f���U��SH��H��H�����H�SH��H��4t|H�{ @��t@��uDH�����t;�����u1��A��H�{H��H��1��.��H�CH���[]�fDH�<$H��H�l$蒅H�CH���[]�f�H�CH���[]���S��H��H������H�sH��4tH�¿1���:��H�C�[�f.���U��H��H��SH�����H��H���^'��H�����tH���[]�f.�H��H���?��H���[]�f���U��H��H��SH���9��H��H���&��H�����uH���[]�f.�H��H���?��H���[]�f���S��H��H������H�sH���B!��H��uH�C �[�H�C �����H�H�H!�H��H�C�B��f���U��H��H��SH�����H��H���N&��H�����uH���[]�H�]H�E �
��f���S��H��H���>���H�sH��� ��H��tH�C �[��U��H��H��SH���	���H�}���H��H��1�����H�����uH���[]�f.�H�}H���T>��H���[]����U��SH��H��H�����H�{���H��H��1��n��H�����uH���[]�f.�H���(%��H�{H����=��H���[]���AV��AUATUSH��L�fH���#���H��H����$��I�|$�8L�kI�E �&I�} �I��H�C H��IE L�0A��u
I�������L�kI�UI�E uI�U H�C H��H�l@��t!H�C H��H�C H��tO[�]A\A]A^ÐH�����t�H��L�������u�I�E��`H��`u�H�E��`H��`t�H��L���s��렐H�sL���40��H�C �[]A\A]A^�fDL��L��������;���I�E��`H��`�*���I���`H��`����L��L���	���
���H��@H�5�%H�81����ff.����U��SH��H��H�����H�����H��� ��H��tbH��� u+H�PH��u8H�@ H�PH�0H���!��H���[]�f�H����H��u
H�PH����H��@H�5C'H�81��q��H���)YH�5'H��H���?H�81��N��ff.���ATI��U��SH���K��L�������H��H���V;��[�]A\�ff.����SH�=�$��>��H�@�����H����H��H�56H���/��H�;�����H�����H�5�M�/��H�;�����H����H�5�/��H�;1�H����H�5}�|/��H�;1�H����H�5��d/��H�;�H�%���H�5$�I/��H�;�����H�Z���H�5��./��H�;�����H�_���H�5p!�/��H�;�����H�D���H�5�#�.��H�;�����H����H�5���.��H�;1�H����H�5�#��.��H�;1�H����H�5ɸ�.��H�;1�H�1��H�5��.��H�;1�H����H�50N�}.��H�;1�H����H�5P#�e.��H�;1�H�)��H�53#�M.��H�;1�H���H�5$#�5.��H�;�����H����H�5#�.��H�;�����H����H�5#�-��H�;1�H�c��H�5yM��-��H�;1�H����H�5�"��-��H�;�����H���H�5>�-��H�;1�H�����H�5�"�-��H�;1�H����H�5��-��H�;1�H�����H�5�"�l-��H�;1�H����H�5n"�T-��H�;�����H�e��H�5�!�9-��H�;�����H����H�5N��-��H�;1�H���H�5&"�-��H�;�����H����H�5T!��,��H�;�����H�L��H�5�!��,��H�;1�H����H�5�!�,��H�;�H�	���H�5�!�,��H�;�H���H�5
�,��H�;�����H�s��H�5�!�g,��H�;�����H����H�5�L,��H�;�����H����H�5z!�1,��H�;�H�����H�5j!�,��H�;�H�����H�5Z!�+��H�;�H�����H�5I!��+��H�;�����H�A���H�5,��+��H�;�H�v��H�5��+��H�;1�H����H�5��+��H�;�H����H�5��w+��H�;1�H�k��H�5��_+��H�;�����H�`���H�5&�D+��H�;�����H�����H�5� �)+��H�;�����H�ڥ��H�5� �+��H�;�����H�O���H�5� ��*��H�;1�H�G���H�5t ��*���H�=��@���H�=5�H��@�@���H�=�H���@�j@���H�=>yH���@�R@��[H���@�f���H��H�H�Ѓ�P�ff.���1�H����H���ff.�@����fD��H������U�PH���SH���t@��H��H��?H��H���?8��H�4H��[]Ð��U�H���SH���4@��H��H�z�?H��H���7��H�4H��[]Ð��U�H���SH����?��H��H�ګ?H��H���7��H�4H��[]Ð��SH��H�?�p"��H�{�g"��H�{�^"��H�{ �U"��H�{(�L"��H�{0�C"��H�{8�:"��H�{@[�0"����H�?�$"��@��H�?�"��@AWAVAUATUH��SH����L�D$��H�������H�EI�׉ƒ���������I��H��H�5��?A��M�����H��H��tyL�0L���8��H�CE��uJH�D$PH�CH�C H�C@H��H�C(4H�C04H�C8L�kHH��[]A\A]A^A_�H�t$Ic��?��H�C�H�����H�F�?H�5�H�81����DAVM��AUI��ATA��UH��SH��H�=
)A���H��D��H��jM��M��H��H�����ZY[]A\A]A^�D��SH��H�5Q�?���H��tH�8H��4t	H��[���H���?H�5kH�81��M���ff.�f���SH�����H��[�ff.���H�Ή��:��f���H�5��@�@'����H��I��H��H��H�5��@��L��
�����H���ff.���SH�5�@1�1�L�i����H�5��@1�H��H���=��H��[�ff.���H���S=��H��H���f.���ATL�aUL��H��S�Z�����9���4H�����tH�5�@H�}��L���r���[H��]A\�D��H��H�5��@�M��ff.�f���H�5m�@1�1��|��ff.����SH�qH�ˍz��<9��H�;�H�5]�@H��1��C���[�ff.��H��H�5��@� ��H�5�@1�1�H���-1���H��4HD�H���ff.���H������H��H�5Ѱ@1�1���0���H��4HD�H���fD��UH��H��SH��H�5i�@���H�5]�@H��H��� tZ�}��H��H���tZH�H���6���H��H��tq�uYH�@H�xjH�LH��H��1�[�-]�+���#��H�@ H���u�H���&��H���f.�H��H)�HH�H�l-H��H��[]�f�H�����H�����UH��H��SH�����H�5��@H��H�����H�5r�@H��H��� tO���H��H�8@��tOH�H��t$��tH��H�H9�|H�@H�x5H�\?H��H��[]�fD�C��H�@ H�8@��u���%��H���@H��[]��ff.�f���AUI��ATA��UH��SH��H�9H�5��@�#��H�5�@H�}H�MH��H��A�T$�ID��v����tIH�H�߸4H��t)H��������?H�x9H�T?H�5]�@H�}��9���H��[]A\A]�@H���%��H����c�H����ff.���AUH�q�z�ATUH��SH���6��H�èuH�����tH��ƒ�����H�5ĭ@H���4����upH��H�m�$��I��H����1�L�`�4�H����H9�}qL��H��H�5έ@H��1��H�����I�E�� u�I;]}AI�E ��fDH�5��@H��������y���L�MH�5��@1�1�L�����H�����H���[]A\A]�E1�L�c�8�H����I9�}�L��J��H�}�1�H�5#�@I���
��H��� u�L;k}�H�C ��fDH�5��@H��H��1������H���[]A\A]����AWAVI��AUATA��UH��SH��L�)H�5c�@L���3!��H��H���H�;�� ��H����H�����A���H��E��~A����I�vH��E1�L�c��+���M�H����I9�}\H�e�?L�L��J�4�E1�1�H�7���H�=p���1�I�����H��H���+��H��� u�L;s}H��?L�H�C �@H�5ѫ@H��L��1�����H���[]A\A]A^A_�I�vIc��7��H���<���@H�CH�x����H�}�� utH�}���E1�H��H�EH�D$�>f.�H����I9�}TH�5%�@H�D$J�<�1�1�I�����H��H���*��H�E�� u�L;}}H�5�@H�E ��H������H�5��@H��L���.6���C���f���AWAVI��AUATI��USH��L�)H�5f�@L���6��H������H�I�@H��H�@H�D$J�;H�$I�>�� ��H����H����	��I�t$E1�M�fH��H����)���-H����I9�}LL��J�<�H��I���9���H��H���)��I��� u�M;~} I�F ��f.�H���x ���R���H�5٩@1�H��L�����H�<$x`H�D$H�TH�5g�@L���4��H���[]A\A]A^A_�I�FH�x�*���H�@1�H�D$H�$���f�H�|$�F�H��뛐��AT�z�I��H�qUSH���6�H�5�@�L��H��H��1��
���H�����u[�]A\��H�;H�5��@H��1������[�]A\�ff.�f���AT�z�I��H�qUSH����H�5��@�L��H��H��1����H�����u[�]A\��H���H��H�;�H�5i�@H��1��O���[�]A\�D��U�z�H�qSH��H���7�H��H�����H�����tH���[]��H�;H�5�@H��1�H��[�]������U�z�H�qSH��H�����H��H�����H�����uH���[]��H�;H�5��@H��1�H��[�]������AVAUATI��USH�� ����Lc�j��I�}Hc�H9���I����L��H��H�D$��&����PH�t$H� u2H�v ���.��H�T$H�T$H�T$H��4t]H�� �[]A\A]A^�H����f.�H�|$L��L�����H�t$H� t���H�t$H�t$H�|$��.����P����;�ff.����G�AVAUATU��S����I��H���K+������M�eA���uM�uH�=�@��H�5U�@1�1�M��L���H��H���t���H��H��H��AVH���@E1�E1�1���H�5ե@XH��ZL���P1��H��[]A\A]A^ú��%��H�~�?H�5�H�81���ff.�f���H��1�H�=���ff.���AWH�5�?AVAUA��ATUSH��H������H��H���$��I��H���%H�}4�E����H�5�@H������I��H��uL�mL���!��L��H�=�H��1��y��H��L�mL�uH�5��@I�����H��H��tAH����H�Ǿ���H���H��H��H�5�ML���q���H��L����H�5o�@H���7��H��ID�H����H��� �zH�XH�h H�����L��M��M��H�5�OH��A��I������H��L�m�L������L��H���e	��H���<H�5��L�����M��uHM��tCI�$�Ѓ����1A��u+I�����t"I�E������t%H	�I�$�H��H����r���f��H�56�L���\���H��L��[]A\A]A^A_�f.�H���x��H�=H��1�����I�Ĩu�H�����t�H��ƒ����H��r���I�$��L���(��H��H�=�[H��]1�A\A]A^A_�y��f�H��H�h���~���L���H��H������H�5�IL���q��M������������H�������ff.��UH��SH��H�~8H����H�����H�{H�D$H��uL���H�=XH��H�C �,��H�C(4H�CH��H�T$��.'��H�{8H��uH��[]�fD��H��t�H�{��H�CH�C H�C(4H�C04�S����AVI��AUI��ATUH��SL�f��L���}�L��L��H�E��~L��Hc���-��L��H��[�]1�A\A]A^���f�H��H�5U�?����H��tH�84tH���H��?H�5
H�81������AWAVAUATI��US��H��H������{Hc�H������1�H�=Z�I���*��H�=��@I����H�5,�?H��I���q���H��t:L�8L��L���~ ����~Hc�L��L���|��H�}H��L��[]A\A]A^A_��H�[�?H�5xH�81���f.���USH��H��H9�t.H�����H������H�57�?H��H������H��tH�UH�H��H��[]�H���?H�5 H�81���ff.�H��H�5��?���H��tH�84tH���H���?H�5�H�81��H����UH��H��SH��H�5y�@��~
H�1��H��E1���H���.�H���$����uH��H��[]��H���h���H����H�E@H��H��[]�f�AVAUI��ATUH��SH����H��I���/���L��I�����H�5��@H��H���*��H��t,H�5��@H��H���z*��M�l$HH��[]A\A]A^�f�H�5ɞ@1�H���O*����ff.�f���USH��H��(H�|$�H�t$H�t$��*��H���#��L���H�L$H�5��@��H�V���I��H�=4ALD�����H��1�H������H��([]�f.���ATUSH��H�� ��H�|$��H��H�H����tbH�5K�@H�L$I�ٺH�=�AL��H�l$�V�I��H��H�\$�*��L��H��H���o���H�� []A\�fDH�l$H�|$E1��H�5_�@H��H�D$�&�I��랐H���8���V���H�<�?H�5��H�81����ff.���AUI��ATLc�USH��H�T$�2"������L����H��M����1��f�H��H��H�����I9���I�|��>��H��u�I9�~0I�l�fDH�5�@H�}�������H��H��I9�u�L��L����(��L��H��H�5ל@H�L$I��H�=KA���H��H���H������H��[]A\A]ÐL��D���'��H��[]A\A]�f.�L����H�}���H�5�H��H���?H�81�����UH��SH�����H��H�@HH��tH�sH�;H��H��[]��H�KH��tH��� t7H��H�����f�1�1�H�{@H�5ٛ@����H��4uH�C@H��[]��QH�I ��ff.�@���g������UH��SH���^���H�5��@1�1�H�8H�����H�CH��H�C H�C(4H�C04H�C8H��[]�fDUH��SH��H�����H�HH�pH��tRL�A�� u.H�yHc�A��H9�u>H�I H�8H��I��I��D��[]�,�@I��H��A����f.�1�E1����T��@UH��SH�����H��H�@(H��4t
H��[]�fDH��H������H�C(H��[]�f���H�����H��H���7�����SH���#���H��H�@(H��4tH�F(4[�@H��[����ff.�@��UH��SH��H������H�5�@1�1�I��L�fH��H��H�D$�"��H�5�H��H��?H�8��
��H�5��@H��H�E8H���$��H�t$�����H��[]����ATH��I��US��H���G���Hc�L��H���i%��H�t$�H�D$���H�E0H��4tH�E04H��[]A\�f.�H���[]A\�f���AVAUATUHc�S��~mH��I���"���H��H������H�xI��H���H��� ugH�GH�Hc�H9�ux���H��L��H��I���Z��M�u�����uH��[]A\A]A^ÐH���h����t�H��H��1�[]A\A]A^�?����H������L��H���]$��I���H��������SH������H�x04uH�X0�[�H���?H�5CH�81��i��f���UH��SH��H9�tlH�����H�����H�xH��u\H�5]�?H���E���H��t`H�H�H�SH�PH�SH�@H�PH�S@H�@(4H�P@H�SHH�@04H�PHH��H��[]�H���?H�5�H�81����H�	�?H�5�H�81�������ATA��UH��H�5�@SH�9H�����H��HDŨtdH�H��t4H��������?H�x�H�xYH�T?H�;H�5��@�E"��[�]A\�H�;H�5ޖ@H�KA�T$��p���[�]A\�fDH���H
���fD���H���fD��H��H�|$�^����t;H�5��@H�L$E1ɺH�=AL�8��1ҾH������H���H���?H�5AH�81�������H��H�|$������t;H�5#�@H�L$E1ɺH�=�AL����3�1ҾH���d���H���H�x�?H�5H�81�������H��H�|$�~����t;H�5��@H�L$E1ɺH�='AL�8����1ҾH����H���H��?H�5�H�81�������H��H�|$�����t;H�5C�@H�L$E1ɺH�=�
AL�(��S�1ҾH�����H���H���?H�5�H�81��7�����H��H�|$�����t;H�5Ӕ@H�L$E1ɺH�=G
AL�H����1ҾH������H���H�(�?H�5AH�81��������H��H�|$�.����t@H�5c�@H�L$E1ɺH�=�	AL����s�H�,��H����H���H���?H�5�H�81��R��f���USH��H��(��H�|$tiH��H�H��xhH�t$�H�\$����H�5ӓ@H�L$I��H�=L	AL�]����H�����H��H���H����H��([]��H���
���H��?H�5Q�H�81����ff.�@��u1H�����t(H��ƒ���u�� tH����t>H��u(H��H�?H���DH�GH��tH��u	H� ����t�������Ȑ��H�������H��H���r���f���H���S���1�H��H���U���D��SH��~#Hc�H�����H�ڿ[H��1��u��DH��1�H��[��]��ff.�f���1�H����H���ff.�@��ATH�5ۑ@U��SH�9H�����H��t>H��t[�]A\�fDL�c��H�;H�5�@L����}�[�]A\���L�cL������H�����u�H�5h�@H�;�����밐��USH��H��������H�5��?H��H�����H��t
H�(H��H��[]�H���?H�5�H�81����ff.�f�USH��H����u?H�����t6H��ƒ���t)��u$H��H��H�5ʇ?�u�H��tH�(H��H��[]�H������H���?H�5��H�81��#����SH��H����u ��������H��H��H�D$�f���H��[�1�H�L$H�����H�|$����H��t.�I����uH�t$H���(���H��[�f�H�='�1�������H�|$���H�5W�H��H���?H�81��{��ff.���AVAUI��ATUH��S��H��L�%��@������th���@�
��H�=s�@I�����L��H������I�ƅ�tH�}H��ur1�H��I���L��WL��L��E1��
��H�� []A\A]A^���H�=��1��
��L�u��uH��1ۿ�@L�e��H����fDH�59�@�\�H�}�Å��t���������t,@��uH�����t
�����tk����H���C���H��H9�t�H���H��?H)�H��H��H	�H��H�D$�~D$f.q�z������맺1���������G�؃��������f.���AVM��AUI��ATA��UH��H�5�ASH���i��H�����t!M��L��D��H��H��[]A\A]A^���DH���?H�8�a��H��D��H��jM��M��H��H���t��ZY[]A\A]A^�f���E1����@��AT1�I��H���UH��S��H��H�L$��������t`H�|$H��u=H�D$�1�1ҿd�I��L��H�5�H���7�H��[]A\�fD�#��H��H�D$��f�����H���
��H���L��L���H���\��H��[]A\���H��1�1��0�����SH��H��H�t$������t&H�T$H��H�5G�����H�D$H��[���[��H�����H�L$H��L��H������H��[��UH��H��SH��H�5)�@��~
H�1��H��E1���H�����H���6����uH��H��[]��H����H���`��H�E@H��H��[]�f���AT�����H�~���H�5��USH���?H�;�V��H�;�����H�W���H�5D��;��H�-l�?H�=:�H�u�D��L�%M�?H�F�?H��I�4$H��
��H�;H�5������H�;�����H�y���H�5�����H�;�H�n�H�5�����H�;�����H�C�H�5j����H�;1�H�+���H�5�����H�;�H� ���H�5���t���H�;�����H�5���H�5���Y���H�;�H���H�5���>���H�;1�H���H�5C��&���H�;1�H�J�H�57�����H�;1�H��H�5l���H�;1�H�����H�5�����H�;�H�/�H�5������H�;1�H���H�5�2���H�;1�H���H�5�����H�;1�H���H�5���{���H�;H�5��H���	��I�<$1�H����H�5��H���@�I���H�=��@�����H�F�H�5k��*���H�=k�@�����H���H�5L�����H�=L�@�����H���H�5�����H�=-�@1�H����H�5������H�=�@1�H����H�5g���H�=��@1�H�t�H�5~����H�=�@1�H�X�H�5k��|���H�=��@1�H���H�5|��`���H�=��@1�H���H�5!��D���H�=��@1�H�$�H�5���(���H�=i�@�H���H�5���	���H�=J�@�����H�&�H�5Q����H�=+�@�H��H�5������H�=�@1�H�;�H�5�����H�=�@�H�L�H�5�����H�=�@1�H���H�5���t���H�=��@1�H�D��H�5���X���H�=��@�����H����H�5���9���H�=z�@�����H����H�5������H�=[�@�����H����H�5�����H�=<�@�����H�h��H�5u�����H�=�@H�2�H�5����H���?H�=��H�0����H���?1�H�542H��H�H������H�UH�;H�5�����I�4$H��H���@�t��H�=��@H�5�����	��H�=��@�����H����H�5s��2���H�=k�@�H�/�H�5_�����H�=L�@�����H�P�H�5����H�UH�;H�5H����H�5
��H��H��@�k	��H�=��@1�H���H�5�����H�=�@�����H���H�5�D���H�=��@�����H�=��H�5��q���[H�=��]A\�����H��H�=$.���H�=�H��@���H�=�TH��@��H�=k�H���@��H�=RDH���@��H�=��H���@�}�H�="�H���@�j�H�=�fH���@�W�H�=X0H�A�@�D�H�=��H�&�@�1�H�=-��%�H�=�H��@��H�=H]H��@��H�=��H�ф@���H�=rjH���@���H�=��H���@���H�=k�H���@��H�=�@H���@���H�=��H�R�@��H���e��H�6�@H���e���D��H��H�H�Ѓ��ff.���H����AWA��AVM��AUM��ATI��H��1�UH��1�SH���G��H��M��t$L��H����E��uG�H�5"�H�����H��tH��H����L��L��H�����H��H��[]A\A]A^A_�D��H�5��H��1��D���f�SI��I��H����1�H�5,��F����H�5�yH��H���?��H��[�\fDAVAUI��H��1�ATI��1�US�v��H���EH��uHH�ߺ	H�5������L��L��H���F��H�ߺH�5'y����H��[]A\A]A^�fDH�����H��H��A���*�H��E��u�H�5��H������@H��D��H�5��1��D����f�AUH��I�պATI��UH��H�=)�SH��dH�%(H��$1�H���K��L��L��H������H��H���=���H��1�H�
��?H�������H��H�����H��$dH3%(uH��[]A\A]��O��ff.�@��@ATI��US��~'H��@1�fDH�sL����H��9-��@�[L��]���H�=�A\�{��ff.���H�5��@SH��H��tH��1�1�1�[�m��D�H�=����H��1�1�H��H���@[1��>��ff.���H�5�@SH��H��tH��[����H�=���/��H��[H��H���@���ff.����H�5}�@SH��H��tH��[�c����H�=���
��H��[H��H�I�@�<���ff.����H�5�@SH��H��tH��[�����H�=3��
��H��[H��H��@���ff.����H�5ŀ@SH��H��tH��[����H�=r$�?
��H��[H��H���@��ff.����H�5e�@SH��H��tH��[�s��H�=�%��	��H��[H��H�1�@�L�ff.����H�5e�@SH��H��tH���$�H��H���ٟ��u%H��[þH�=��	��H��H�%�@��H��[�����H��8�H�t$�H�T$H�L$�
�H�T$H��H�H�T$H�PH�T$H�PH���?H��v?H�8���H�T$H�T$(H�T$H�T$H�T$(H�T$H�T$H�T$(H�T$H��8�D��H�w�����AUI��ATUH��SH��L�%E@M����H���?H��H�3���H��tuL9+t`H�5@H��tH�����H��H����H�5�~@H����L���������H9�����uH��1�[]A\A]��H���[]A\A]�L��H������t�H�5�~@H��u��H�=&�����H��H�r~@�a���D�H�=�����I��H�U~@����H��H�����H�����b���f.��H�=����H��H�~@�!���1�1�L��H��1��?��H��������S1�H��H���H��H�L$�!��H�T$H��H�5`��=�H�ߺH�5���)�H��H��[���U�SH��H����~
��Hc�H�,����H��H��H�5!���H��H��[]�ff.���U�SH��H����~
��Hc�H�,�H�����H��H��H�5)���H��H��[]�ff.���ATUH��S��H����~:H�>H��tcH��t%H�t$��H�t$H��I��tH�����@H����A����$��L��H��H�5�!��H��H��[]A\�fDH����A��Ɛ��H�5|@SH��H��t,H���4�H��u�[��H��[�w���H�=����H��H��{@���H9���AVAUATUH��SH��H������H��I�����I9��hL�%q{@�D$M����L�-Q{@M��tTH��H�T$H�=e���H�ŋD$����H��4t{H���c���H��I���X���I9�tsH��1�[]A\A]A^�@�	H�=M����I��H��z@��H�=8����L�-�z@I��H��z@M���a���������@L��1�1�H���Q���I��H��4�q���H��1�1�L���5���H��H��4�U�����H����L��H���p��H���4���H���?���H��H���T��H������H���[]A\A]A^�f�H����C�H��I�����H�����f.���1�1Ҿ
���ff.�ATI��UHc�SH��H��H�=8z@H�T$讼����ujH�s�?L��H�H���?H�8���H�D$��tl��suH���@H��H�T-H�5�����H�T$H�=�y@H���P��H�D$H��[]A\�f�H�I�?H�T$L��H�8�I��H�D$H��[]A\�H���@H���@��UHc�SH��H��(H�=my@dH�%(H�D$1�H�T$�ӻ����tH�D$H�L$dH3%(u3H��([]�H�l$��H���1�H�����H��������b��f�H�������H���������������������������������	����
������������
�o�����������������������������������������������������������������������}�� ����!�{��"����#����$�p��%���&����'����(�t��*�c��+�2��,�!��-���.����/����0����1����2����3����4����5����6�w��7�f��8�U��9�D��;�3��<�"��=���>���?����@����A����B����C����D����E����F�x��G�g��H�V��I�E��J�4��K�#��L���M���N����O����P����Q����R����S����T����U�y��V�h��W�W��X�F��Y�5��Z�$��[���\���]����^����_����`����a����b����c����d�z��e�i��f�X��g�G��h�6��i�%��j���k���l����m����n����o����p����q����r����s�{��t�j��u�Y��v�H��w�7��x�&��y���z���}������������������|����~����{������s����_���t����H���HE��H����H���H�(��H���H����H�
��H�1��H���H���H���H���H���H�v��H���H���H����H���H����H����H����H����H����H����H�~��H�n��H�`��H�Q��H�B��H�-��H�,��H���H���H����H����H����H����H����H����H����H����H�\��H�_��H�g��H�i��H�h��H�l��H�p��H�u��H�y��H�{��H�z��H�|��H�{��H�{��H�{��H�{��H�z��H�~��H���H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����H����ff.���UH��S��H��謵��H�8t��H���[]�fDH�q�?H���H�����H���[]���ATUH��S��t'��uH9t��H��I������L���H��H����H��[]A\�f�ATUSH��dH�%(H��$1�H���?H�(H����I����A��H��H���L��1�����Hc�H��L��H���"�H9�t)H�N�?H�ھL��H�(H����H9øHE�H��$dH3%(H��u4H��[]A\�H��H��1�L��虮���|���1�I���r�������D��H�5=n@SH��H��tLH���D�H��t-H�Ǩu�����ԃ�	�t1�[�@�+����ԃ�	�u�[�f.��H�=g����H��H��m@���ATUS@����@����������&H���,@���2L�g�I���H��H��� ����������������H�5��H���|��L��H������H��H��趲���H��H�5���R��H��H��藲��H�ߺH�5
g�3��H��[]A\�H������Y���H��tUH���J���H�ů?L� �?���DH�}�����N���L���P��[]H��A\�T�@H�ٮ?L� �����H�ɪ?L� ���H���?L� ����H�9�?L� �����H�	�?L� �������H�5l@SH��H��tH���D�H��t7H��[����D�H�=�����H��H��H��k@�
�H��u��t2��u}�؃����H��tI��u4H�}�?H�8�,�H�����uH��t1H��uH���?H�8�H�{[�6��fDH�Y�?H�8��@H���?H�8��@H���?H�8��@H�y�?H�8�@��ATI��U��SH��H���H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$��ڰ��H�8t9H��$�L���H��H�D$H�L$H�D$ �D$�D$0H�D$�k�H���[]A\�ff.�@��ATI��U��SH��H���H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�����H�����t9H��$�L���H��H�D$H�L$H�D$ �D$�D$0H�D$��H���[]A\�ff.����SH��H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$��X���H�8t>H��$�1�H�T$H��H�D$H�D$ �D$�D$0H�D$�,�H���$AH���[�ff.���SH��H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�蘮��H�����t>H��$�1�H�T$H��H�D$H�D$ �D$�D$0H�D$�i�H���a@H���[����Hc�h@1����#�BH����h@H��h@H¸H�:H�r����UH��SH���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H�e�@1�H�H��t���H�������H���D���H��H�����H��$�H�T$H��H��H�D$H�D$ H�D$�D$�D$0��1��zoH�����]�ff.�f���ATI��UH��SH���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H�u�@1�H�H��t���H��������H���T���H��H�����H��$�H�T$L��H��H�D$H�D$ H�D$�D$�D$0��H���nH�����q�ff.����ATUH��S��tH�����x�I��H��t��L��H��H�=��H��1�褰������H��H�=��H��1�艰��H��1�H�=_��x������U���H�5��SH���H���۱��H����H���
���H�޿H��躱��H�����H�5�Z�蛱��H������������H��H��H���HD�H��誶��H�޿H���Z���H��xp�H�5�Z��?���H��xUH�ä?H���k���H�޿H������H��x1�H�5IZ�����H��x��H�5O������P����H�5t���ʰ��H���l�����ff.�@��UH��SH���H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$����H��H���?�H��$�H�T$H��H��H�D$H�D$ H�D$�D$�D$0��1��lH���?����f.�����w'Hc�H���H��H�P��8HD���1��ff.�f���H��t6@��u @��tZ@��t4H��t^H�a9H��u;ÐH�/���H�
9��H�����t����t
H��t����f�H����H��8����H��tH9�u�H9�tH�0H��u�1�����f���1�@��uH�����t�����uH�t
�f�H��H��#�������H�����fD��USH��H��H��H���h�H�5�b@H��H��tH��H��H�ߺ[1�]鑷����H�=���H��H�]b@����UH��H��SH��H���h���H��H��H��[H��]�t��@��USH��H��H�|$H�t$脻��H�5�a@H�l$H��t#H��H�ߺ1�����H��[]�f.��H�=>���H��H��a@�AUATUH��SH��H��@H�H�����L�cxH�CxH��H���t5H��u`H�I�?H��H�8�>���L�cxH��H��[]A\A]��H��t[H��H�5\V����H����8L�cxH��[]A\A]��{����H�5/VI��H���Է��H��L��L���F���q����H���?�
H�5z�H�8���H���ff.����H���I��H��L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�L�L$I��L��H�D$��H�D$ 1��D$ �D$0H�D$����H���g���H����ff.�@��H���H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�L�L$I�Љ�H�D$H��1�H�D$ 1��D$�D$0H�D$�>��H�����H����ff.���H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$H�D$ �D$0H�D$���H������H����UH��SH��H��?H�8�x���H�5^@H��H��tH��H����H������H�=%���H��H��]@��f���SH��H��H���H�T$@H�L$HL�D$PL�L$X��t:)D$`)L$p)�$�)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$ H�D$0�D$0H�D$(���H��H�$����H��H�D$H�K�?H�胺��H�����ff.���SH��H��H���H�T$@H�L$HL�D$PL�L$X��t:)D$`)L$p)�$�)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$ H�D$0�D$0H�D$(���H��H�\$H�$H���?H�軹��H���C����AUH�=��ATUSH��H�\�?H�0�<�H�=�?H��?�����H��H�5�VH����H�;�����H���H�5�V����H�;�����H�=��H�5����H�;�H��H�5?����H�;1�H�z�H�5����H�;1�H����H�5���v��H�;1�H���H�5���^��H�;1�H�R��H�5���F��H�;1�H�*��H�5t��.��H�;�H��H�5m����H�;1�H�w��H�5H����H�3H�=T���H�-ݗ?�����H�9��H��H�5�H�E����H�}1�H�i��H�5e���H�}1�H���H�5����H�3H�=���H���?H�3H�=��H���H�}�?H�=��H��H��s�H�ܞ?H�3H�=��H��Z�H�-C�?H�=��H��H�E�@�H�A�?H�uH�=��H��&�H�O�?H�uH�=��H���H�ݝ?H�=��H��H����H���?H�uH�=��H����H�:�?H�3H�=��H���L�%Y�?H�=z�H��I�$��H�ߖ?I�4$H�=h�H���L�-U�?�H�=��I�E� �I�}E1�1ɺH�����I�4$H�=-��J�H�;�?H�uH�=*�H��0�L�-9�?�����H����H��H�5/�I�E����I�}1�H�=��H�5�����H���?I�}H�5#�H��W�L�%��?�H���H��H�5/I�$�!��I�<$�H�H�5��u��I�<$1�H��H�5}��\��I�<$�H��H�5���@��I�<$�H�p��H�5�����I�uH�=<��4�L�%
�?�����H���H��H�53�I�$����I�<$1�H����H�5Ik����H�uH�=�����H�n�?H�3H�=��H����H�-�?H�3H�=��H���H��?H�uH�=��H���H��?H�5��H�H��H��?H�8��H�/�?H�����H�uH�=��H��W@�P�H�	�?�����H�]	H��H�5O�H����H�;1�H����H�5������H�;�H����H�5p��h��H�="�����H��?H�5�H�=B�H�H�������[]A\A]������SH��H��H���H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�T$�D$H�D$H�D$ �D$0H�D$����H��H���h���H�������SH��H��H���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$H�D$ �D$0H�D$��H��H���à��H���[��ff.���UH��SH��H����u2H�����t)�����uH�{uLH�{�����t2H�C H��[]�H����H�MH��H��?H�5<�H�81����H�CH�MH���H�������ff.���AUH�5CL?ATUSH��8�Ʊ��H�(H���9H�XI���D$H���@H���&H���}H�=^�?H�T$H�����I�ŋD$���JI��tI�E �VI�}A~H�����I��H� �7I�}H�����?#tM��tL������I���H�=3*�d��I�źH�5k�L���-������������؃�����H��������H�{�a���L��H���f���H�l$I�D$H�t$�L�l$ H�D$��H��H��8H��[]A\A]�f�H�=w)�[���@H�=M)�K���@H�����u�H���}H���z���H�-�?H�8�o���D���������H�Y�?H�8�K����I�}�����H���?H�8�+����H�	�?H�8�����H���?H�8�����H�	�?H�8�������������H9�twATUH��H��SH�����H���?H9t	[1�]A\�f�H��H�5�I?�a���H��H�5�I?1�I���M���H��H�tI�<�<���H��t�H��H��u�[�]A\���f.�SH��H������H��������������H���q��utH��ƒ�����H��1�H�{% H�����)H9�}GH��H���uZH������tQH�	����uFH��H��u�H;S}H�K ��fDH���Hq��tH��H��[�H�t$�H�\$������H�F�?H�5'�H�81��
���ff.�f���H��t�������f.���AVAUATUSH��H��`H�->Q@H�����������[�؃����]H���C���JH�{H���޶������H���?L�(H�U�@L�0H����L�%��@A�$ ��H���>��A�$@�H����H���1���H��`[]A\A]A^�@H������y���H��t]H���j���H�
�?H�8H���B�����tTH���?L�(H���@L�0�m���D�	H�=
����H��H�P@���H�	�?H��H�8�����u"H��H��1�1�1�����H��`[]A\A]A^�@H��`�[]A\A]A^�fDH���?H�8����H���?H�8����I�V���A����@���I�V0H�|$H�D$@H�D$�D$@L�t$H�T$ H�\$(H�l$0L�l$8H�D$P4�D$H謒H�D$���f�I�F���A��� �a���I�F0H�|$L�t$�D$ H�D$ H�\$(H�l$0L�l$8H�D$@4H�D$P4�D$H�>�����f�H�I�?H�8�W����H��?H�8�G������SH��H��H��tH���'���H��H��H�5X�[���@����f.���SH���c���H��H�5i�H��H��?H�81��ő��D��AVI��AUA��H��ATUSH��H�� ����H��H�u�?H9(�|I��L��L�D$D��L��H���1�����H�5�M@H����H�����H�D$H�-��H��tH�Ǩ�����������H���ē��H��H�����H�<$H��u_L��H�,$����H�T$H��H�5��ʻ��H�� H��[]A\A]A^�f.��H�=����H��H��L@�S���L��訦��H�T$I��H��tH�5c�H��1�蹠��1�L��H�5�XH��襠��@���\���H������O���H�U�Ѓ����LH�$��1���H������%���H�����������%H	�H�U����f�I��1�L�L$L��L�D$L��D��H�l$H��_藛��A����H�t$H����@����H�H�=JL@H�T$�����tDH�l$����H��������������H�k@��uH�������@H�D$����fD�s���������@H�4$@���]���H�t$H�$H���_���H�-ſ���@H���H���H���?����H��������@H��H���������m���H���`H��`�]���H�E��`H��`�L���H��H��艣���<���H�ņ?H�5P�H�81�茎��ff.����SH��H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$��D$H�D$H�D$ �D$0H�D$葐��H��H�T$H��豻���H����@��UH��SH��H���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$��D$H�D$H�D$ �D$0H�D$���H��H�T$H������H��H�������PXH���Q���H���	���H�5
�H��H��?H�81����ff.���PXH���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$H�D$ �D$0H�D$����H��H���?H�8蜓��H�����@��SH��4�1@��t{@������������H����@�������9�����weHc�H��H�_�H�H�;tN��H��H�5�H��H�Ճ?H�81�裋��H�����u�H����H��u����u�[�@H�=��1��J���f.���u�H�u�H�U������X���[������@���[ú���0���[ú��� ���[ú������[�H�=)�1��‘��f���H��H�t$����H�t$�H���,���H������S���H��tH��������H��[�<���ff.��SH��藊���8���t	H��[�b���H��tH��H�=+�1��,���H��;��SH���W����8�H��u��t+�H��[�ȵ����u�H��tH�sH� t
H�s�H�5�;H�=��1��Ɛ��fD��PXH���ѯ��H������f���PXH���a���H�����f���PXH������H�����f���PXH���1���H���i��f���S��H��H��u*H��:��u8H��H�R�HD�1�H��H�=��������uH��tGH� u8H���ȺH�$������H�D$����H��H���S���H������H�R�H�:�ff.����UH��SH��H���ˈ��H��H�ߋ0��X������UH��H��SH�����H��H��H��譈��H���e���D��UH��H��SH������H��H��H���}���H���5���D��UH����H��SH������H��H��H���K���H��������UH����H��SH��虳��H��H��H������H��������ATI��USH���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�腇��H�Ë(�{���H�����uH���[]A\�fDH��$�L��H�T$1�H�D$H�D$ �D$�D$0H�D$�:���H�0I��� uLH����H��L���I��������L��H�5�H��1����L����+H���[]A\��H�@H�p��fD��AUI��ATI��USH���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$��U���H�Ë(�K���H�����uH���[]A\A]�@H��$L��H�T$L��H�D$H�D$ �D$�D$0H�D$�	���H�0I��� uKH����H��L���������q��L��H�5�H��1��͕��L�����+H���[]A\A]�DH�@H�p��fD��UH��H��SH���;����H�5D�H��H��褘��H��H������H��H����ff.���PXH�5
�H��H���?H��H�81����ff.���PXH��@��t8@��uR������t`H��tf@��tlH�WH�i�?H�5õH�81�訄��H�����u�H��tH��u�H���?H���H��?H��H��~?H��H��}?H��H�]�?H��H�1�?H��ff.����@��uH�����tH��ƒ���t��u�H���������ff.����ff.���@��uNH�����tEH��ƒ���t8H����uf@��u!H�����tH��у���tH��H!��uH�����H�|$�ƶ��H�|$��~�H��}?H�WH�5��H�81��a�������ff.����H��1�H�5���z��H�5����i��H�5����X��H�5����G��H�5����6��H�5X���%��H�5i�����H�5^�����H�5S������H�5J��	����H�5?��
����H�55�����H�5+�����H�5!��
���H�5������H�5���{��H�5����j��H�5���Y��H�5���H��H�5׬��7��H�5����&��H�5������H�5r�����H�5Z������H�5B������H�5*������H�5�����H�5������H�5�����H�5ʯ����H�5����|��H�5����k��H�5��� �Z��H�5n��!�I��H�5V��"�8��H�5=��#�'��H�5��$���H�5��%���H�5��&����H�5Ԯ�'����H�5���(����H�5ٱ����H�5���*���H�5}��+���H�5e��,���H�5K��-�}��H�53��.�l��H�5��/�[��H�5��0�J��H�5��1�9��H�5ҭ�2�(��H�5���3���H�5���4���H�5���5���H�5t��6���H�5\��7����H�5C��8����H�5*��9���H�5İ�#���H�5��;���H�5��<�~���H�5Ь�=�m���H�5���>�\���H�5���?�K���H�5���@�:���H�5r��A�)���H�5Y��B����H�5@��C����H�5*��D���H�5��E���H�5���F����H�5��G����H�5ȫ�H���H�5���I���H�5���J���H�5{��K����H�5a��L�n���H�5I��M�]���H�50��N�L���H�5��O�;���H�5���P�*���H�5��Q����H�5̪�R����H�5���S���H�5���T���H�5���U�տ��H�5f��V�Ŀ��H�5N��W賿��H�54��X袿��H�5��Y葿��H�5���Z耿��H�5��[�o���H�5é�\�^���H�5���]�M���H�5���^�<���H�5e��_�+���H�5G��`����H�5)��a�	���H�5
��b���H�5��c���H�5Ԩ�d�־��H�5���e�ž��H�5���f贾��H�5~��g裾��H�5b��h蒾��H�5I��i聾��H�50��j�p���H�5��k�_���H�5���l�N���H�5ݧ�m�=���H�5§�n�,���H�5���o����H�5���p�
���H�5k��q���H�5Q��r���H�54��s�׽��H�5��t�ƽ��H�5��u赽��H�5��v褽��H�5Ѧ�w蓽��H�5���x肽��H�5���y�q���H�5���z�`���H�5k��}�O���H�5N���>���H�50����-���H�5�������H�5���|����H�5ޥ�~���H�5å�{���H�5�����ؼ��H�5�����Ǽ��H�5m���趼��1�H�5ѫ証��1�H�5ɫ蚼��1�H�5ë茼��1�H�5���~���1�H�5���p���1�H�5���b���H�5���_�Q���1�H�5���C���1�H�5���5���1�H�5���'���1�H�5������1�H�5������1�H�5�����H�5�������H�5��1��޻��H�5��1�H���̻��f.�f�H�GHH��t	H�@H�@�L�GM����H�Jp@L��H�0@��uH�����t
�����tnH�N(H�F H��H9�sI9�tH���DH9Pt2H��PH9�w�H���H��uH9��tH���H��u���H�@HH��t�H�GHH�@H�@�H�B ��H��HD����H�GHH��tH�@�L�GM����H�~o@L��H�0���uH�����t
�����tjH�N(H�F H��H9�sI9�tH���DH9Pt2H��PH9�w�H���H��uH9��tH���H��u���H�@HH��t�H�GHH�@�H�B ��H��HD���ff.��H��n@H�H�H0H�P(H�@ H�yPH��H9�t
H��t�3���1��ff.�f�H�O(H�W H�G0H��H9�r�yf�H��PH9�vgH�PH��t��uH�����t�2����t�fD���tA��u�H�p0H�V��uH�����t�:����t�@��u�H�F��fD1��DH�@0H���ff.�@��H��m@L�L���:���H��tH�ÐI������H��H��m@L�L������H��t)H�8H��tH������H���fDI����ff.�@H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$H�D$ �D$0H�D$�t���H���	H����@��SH���ӌ��H��[H���G����ATUSH��H�� H�?L�&H��tJH���H�GH��o�oO)$)L$�����|$�)���H�$1�H�|$��H�;L�eH��u�H�� []A\��AWAVAUATUSH��H�l@H�01�H�t$H����H���H�T$0H�|$H��$H�L$@H�
�H��$H�BH�D$04H�H1��H�H�HH�`H��H����D$,H�D$H�\$H��$H�H�wH�C1��H�H�|$H�CH�D$H�cH�@x���H��$H�T$H����D$,H��[]A\A]A^A_�f���H�T$�BH�BH�D$,���t�������fDS�ʻ��H�5A@H��H��tH��1�1�����H��H�C[�f��H�=:�菹��H��H��@@����AWI��AVAUA��ATUSH��H��H�-�@@H����L�%v@@M����E����E�u�J��D�t$M��H�$M�l�I�>�I��觕��M9�u�HcD$H��M�,I�D�H+$I��f�I�}H�ٺH��1�I��薄��I�}H��L��1�耄��M9�u�H��H��[]A\A]A^A_�f��
H�=>�����L�%�?@H��H��?@M��� ����H�=!��T���I��H�r?@�������D���U���D��AWA��AVAUATI��UH��SH��L�-?@M����L�5�>@M����A�_�E������M��I�D�H�D$f�I�?�I���_���L9|$u��Hc�H��L��M�<�1���I�?�a���I�?H��L��1��L������u�H��H��[]A\A]A^A_�D�H�=%��O���L�5@>@I��H�>>@M���@����	H�=�A�_�� ���I��H�>@E���%���t��V���fD��AWA��AVAUATI��UH��SH��L�-�=@M����L�5�=@M����A�_�E������M��I�D�H�D$f�I�?�I���/���L9|$u��Hc�H��L��M�<�1���I�?�1���I�?H��L��1��������u�H��H��[]A\A]A^A_�D�H�=�����L�5=@I��H��<@M���@����H�=��A�_���I��H��<@E���%���t��V���fDUH��SH��H��H�vH��u[�����t	��uyH�[H�5�<@H��tLH������H��tH��H��H�5�<H��[]����fDH��[]�f�����f��H�=I��?���H��H�u<@�H���K���H�5t�H��H�rg?H�81��@o����UH��SH��H����u	H�����u"�H��腑��H��H������H��H��[]Ë����u���@��AUI��ATI��U��SH������qH��H�Gj?L9 ub1�E1�H��tF�H�kH��uH��tH��H���2���M��LD�H�[ H��u�M��tH��L����H��H��[]A\A]�`���H��L��L���[]A\A]�٥��f���USH���Q���H���I�H��t7H���+�H�sH��uH��tH���=���H�[ H��tH�{ u�H��H��[]���UH��SH��H����u	H�����u"�H���%���H��H���:���H��H��[]Ë����u���@��H���#�H��t
H��H���ю����H���fD��H�Ed@H�H�H0H�P(H�@ H�yPH��H9�t9H��t4H���{�H��tH��H��銨��f.��H���fD��f.���H������H��u�H���@H��H���4���@U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f���H�Ec@ATUSL� I�|$puH�we?[]A\H�������1�H�=u�H����m��I�T$pH���[]A\����f.�UH��SH��H�9@H�t$H����H�|$��G��tU@��tn@�����������H����@����H�}H���������H�|$��GH�D$H�L$H��H���*���H��[]�H�����u�H����H��u�H�aj?H�8�@�
H�=�����H��H�=8@�6����H�yi?H�8�c����H�t$H������H��[]�@H��k?H�8�;���f�H�d?H�8�#����H��h?H�8�����H�e?H�8�����AUI��ATUS��H����������`H��H��[]A\A]����FL�&�H�8a@H�H��pI9�t�A��u#I�����tH�{h?H�I9D$��DI�M�
L���ǥ��H��H��4�����y���H�g?H��H�0蠜��H��tz���Y���I�uH������H��H��[]A\A]��L�&I��tg���H���L���u��H��tqH��H�7i?H�8��p��H��H��f?H��H�0�*���H�����H��a?H�58�H�81��Ii��f���f�L������1������1������H�,a?H�5��H�81���h����H��H��_@I��L�L���3�H��tH�8H��tL��H�����f�I����H��h?H�5��H�81��h��ff.�@AWAVAUATUSH��hH�T$8�D$LH�D$8H�|$�t$0H�L$H�D$H����H�D$8H����H�|$4��H�|$8H�D$H9�tH��tH�T$H�5H5@���胚��H�D$H�����@����D$LH�D$8H����H�
�^@H�D$8H�H;�p�����H�\$H��$�H��$`HDŽ$�4H�
lH���H�\$ H��$�H��$xH�BH�H1��H�H�HH�`H���H�|$�
�����H�|$8�K��H����H�|$�����H�L$ �AH�AH��t�H��$xH�t$ H���H�D$8H��tH�D$8H�\$H����t��H�����u;H�|$膩���b�|$0tH��@���tH��h[]A\A]A^A_�H�D$H��H�|$H��t�H�__?H�0����H��u�H�D$H��$�H��$`HDŽ$�4H�D$8H�]@H�0H���H��$�H��H�t$(H��$XH�BH�X1��H�H�HH�`H���H�D$H�|$8Hǀ�p��H�t$H�|$H�D$H�D$8H����D$L����H�|$8�ן��H�L$H�T$H��1�H�=a���H��$XH�L$(H������H�e?1�1�H�8� ���H�|$4H�D$8����H�|$8H�5{2@莐��H���-���H�|$�{�H����H�H�|$8H9��	���H�������H�582@������H������1���H�#c?H�2H9p����H�|$8�����H�������@H�
�[@H�D$H�D$8H�H9�p�H�|$8H�T$���s���H�|$8H�T$���_����p���H��H�D$8H�D$8��oH�D$8H������H�|$4����H�D$8�$�����H�D$(�PH�@H�T$������H��$XH�T$(�|$H���u#H��Z@H�t$H�H��`H9��H�|$襦H��Z@�T$H�H���H�xH�����?H�D$H�D$8�u*H�D$8H�����tH�D$8H�����t
H�D$8H���tH�|$8� |��H�D$8H�|$8H�T$���7���H�|$8H�t$�(�������H�L$H�A��������o���H�A0H�|$PH�L$X�D$P�H�D$`H�@ H�D$pH�D$hH�D$8H�D$xH��$�HDŽ$�4DŽ$��b����H�D$8H������H�|$8�ǜ��H�T$H��H�=��1������ǰH�D$8����H�D$H���=���H�-Y@H�L$H�H��H��`H����H�Y@�H�H���H�xH�H����D$LH�|$8�D$4�6���L�D$�L$4H��1�H�T$H�=���w��V���H��X@�H�H���H�xH���ATH��US��H��H�-�X@H�t$H�D$��L�eH��L������H�}��A�D$<H���H��H��f���AWAVAUI��ATI��USH��H�1X@H�H�x0�u�H���PH�x �-�L��脃��H��-@H��txH��L���=���I��H����H��-@H��ttH��L������I��H����L��L���!���H��H����L��H����H��H��[]A\A]A^A_���H�=Y��O���H��H�e-@�h����H�=���/���H��H�=-@�l����K�H��L��H��I���:����E���D���H��M���7H�@H�݃�uH�����tH��ƒ���t	�̀H�H�5�,@H����L��H���զ��H�5�,@H���uL��H��躦��L��L��H�����L��L�����H���?H��tb�u^H�����tV�H�ǃ���uIH;Xu0���fD��u3H�����t*�
H�׃���uH;Z�����H�WH��u�f.�H��u
H������H��H������H�kI��H�D$H�@L�h@H��u,�DI�G1�H�AH�mM��L�h@H���^@��u(H�����tH�E������t��@H�Ef.�I�wH��蔂��I��H��t�L���h��L��L���yh��M�gL��A��u�I������y���L��L��L�$$�z��H�$���^���I���`H��`�N���I�$��`H��`�=���L��L���r��H�$�)������H��L��H��I�����!���DH���h��H��L����g��L�kA�������I����������L��H����y���������H���`H��`�����I�E��`H��`�o���L��H���[r���_���fDH�T$L��L���~�����L��� ����H�=������H��H�
*@�k����H�=a����H��H��)@�0���H��у��������@H�����H�=]?H�5�H�81���\��H�%]?H�5ŀH�81���\��@��AVAUATI��UH��SH����t��H���H�BHE�H��L�-�u�N���I��@��uH�����tH�E����H��uLD�L���B
M��M��H��H��H�5l�L��1��Br��f���AUATL�%"uUH��SH��H�����I���uH�����tH�����H�uLD�H���sA
M��L��H��H��H�50�1��In��f���AVAUATI��UH��SH����t��H���H�B
HE�H��L�-�t�N���I��@��uH�����tH�E����H��tLD�L���A
I��M��L��H��H�5ĔL��1��Bq��f���AUI��� ATI��USH����|��H��H��Q@H�H�xpt6H�/(@H�-((@L�+L�cH�C� ����CH�]H��[]A\A]�fDH�(@H�-�'@�����SH��'@H��t�H�{迃��H�[H��u�H��'@H��tf.�H�{藃��H�[H��u�[�ff.����1�H�5�H�=J"釅������N'@��t
1���AWAVAUATUSH���%'@H�|$��������Y����_P
H��P@H�T$ H��$H�D$ 4H��H�0H���H�t$H�L$0H��$�H�BH�X1��H�H�HH�`H����D$�3�Ϗ��H�PP@H�ǀH�D$H�\$H��$�H���H��[]A\A]A^A_���H�|$�GH�GH�D$��u��@��H��t?H��t!H���H�t$@��u-H����1�1�H��t��@���������H�t$��1�H��t��H���fD��H��H�|$H�|$�i~��H�|$�O�H���f.���ATUH��SH����u	H�����u\�H���z��H�I��I������������������H���~z��H�H��u�H��M��u	�@H���H�Ѓ���t���u[]A\�fD��t�H�߾��fs��H�=l��u&H�����tH�����t*��t%��H��oHD��h��H�=�p��H�=�p��H�=p��D��I��H��4t#H9�u�DH�5�$@L���I���f�H��I�����H��t'H�L9�uH���f�H�5a$@L��H���
���DI����ff.�@��PXH��H�|$H��tH�t$1ҿ�*�H�D$H�t$�4��������PXH��H�|$H��tH�t$1ҿ���H�D$H�t$������H��H��V?H�H�5QCH�81��IV��f������f���UH��H��SH��hH�-	M@H�5��@H�]H�C0H�xHL�H H��PL�GH�H�C0�@u-�H���`�H�}��C<H���H��H��H�s�����@��@t�H�|$0H�|$H�L$H�$�D$@H�\$H�D$ L�L$(L�D$8H�D$@H�D$P4�D$H�<UH�L$H�$�a���ff.���AUATUH��S��H������D�o�Ic�L�$�A��t#H�$4A�4H����<\��L��H�����I�����t�A�$����u�I�D$H��t�H�@����t�H�=p!@��H�c!@L��I��1�H�t$�����H�D$�G���I�D$L�$$H��tH�@�����u���E����I��4t,H��T?H�5�H�81��TT��H�$4A�4�:���H�)K@L�L�����H��t$H�H�D$H��tH�l$�����1����I���־H�=8~軙��H�� @�%���D���������H��J@��H�H���H�xH�����H��H��J@H�H�x0�աH����H��������S�����t�=T��H�=���H��H���Y��H��[�H��S?H�5��H�81��>S��ff.���駓�����H��蓓����tH���1ҾH�=�v�����AWAVAUATUSH��xH��I@L��$`L��$hH�H�T$H�T$`H�C0H�|$H�=�H�t$H��$@H�D$0H��H�D$8H�D$@H���H�L$ H��$8H�BH�$H�D$`4H�t$pH�x1��H�H�HH�`H���H�|$1�H�L$��H�D$8H�<$H��$8H���H�D$8H��x[]A\A]A^A_����H�$�pH�@H�t$,��t�H�D$8H��tD�|$,�!H��$8H�$H���H��H@�T$,H�H���H�xH����H�t$0H�<$���|$,u�H��$��D$H H�D$PH��$@H�D$Xf��D$H��/���ƒ�HT$X�D$HH�2H����H�$H���ك��H��t�H�D$8H�|$tH�$H�|$ H�T$H��1���H�D$8H�D$@H�$H��H��$8H�������H�T$PH�BH�D$P�x���D��H�D$8H�$Hǀ�K���H��$8H�$H������ff.�@��H�eO?E1�L�1��l�����AWAVAUATUSH��H��H�
G@H�t$8H��$H�0H�T$(H��$0H�D$HH�F0H�|$0HDŽ$04H�D$PH���H�t$ H�D$XH���H��$�o�H�D$X�o��o�(H���H���o�8)D$`�o�HH�D$)T$p)�$�)�$�)�$��o�X�o�h�o�xH����o��)�$��o��)�$��o��)�$��o��H��$ H�B)�$�)�$�)�$)t$)�$H��$@H�X1��H�H�HH�`H����D$DH�|$H��$H�H�]H�G1��H�H�GH�D$0H�gH�|$8��H�D$HH�\$H�L$ foD$`foL$pfo�$�fo�$�H��$ �fo�$�fo�$�Kfo�$�fo�$�S fo�$�fo�$�[0fo�$fo�$H���H�D$Xc@kPs`{p��������H���H��$H���H�T$(H��t�D$D�H�D$HH��[]A\A]A^A_�fD��H�T$ �BH�BH�D$D�������H�t$PH�|$ �J��������,�ff.����AWAVAUATUSH��8H��C@H�|$H��$0H�H�T$@H�T$PH�t$H���H�$H�D$ H�D$0H�D$0H���H���H�|$`H�=�H��$(H�BH�D$8H�L$HH�D$P4H�x1��H�H�HH�`H���H�|$1�H�L$��H�D$ �D$H�4$H��$(H�|$HH���H��H�D$(H�D$0H���1��T$@H�D$(H�4$H���D$��u6H�D$ H��8[]A\A]A^A_���H�$�PH�@H�T$��u��a���H��B@�T$H�H���H�xH������H��B@H�H�x0���f���H�uB@H�H�x0����f�USH�����H���|��H��t �Ņ�u"H��H��H�=s1�[]����H��[]Ð�_��H��t&H�����H����H��H��[H�=��1�]���f�H����H��1�[H�=��]����AWAVAUATUSH��XH��A@H�D$H4H�8H���G<H�|$(�D$DH�\$H�D$P4H�D$X4H���WH���H�T$pH��$P�G<H��$�H�
�H��$HH�BH�D$p4H�H1��H�H�HH�`H��H���H���H�D$0H�\$8H�|$�1���H�D$HH�D$HH����H�D$HH��� H�D$H�w��������H�D$HH��� H�D$H�pH�@ H�8H��������D��H�T$(�BH�BH���j���H�D$HH��4��H�D$PH��4tH�D$XH��4��@H��$HH�T$(H���H�D$H���D$D	B<H��X[]A\A]A^A_�����H�|$0��D$��D$�����kH�|$�n�|$�0H�D$H�@H�D$PH�D$PH��4�H�5�@H��u�H�=s�k���H��@H��H�|$1�1��C���H�D$XH��4��H�D$X�uH�D$XH�����tH�D$XH�����tH�|$X�4T��H�D$XH����H�D$XH��� �JH�D$XH��H�D$`H�D$XH��� H�D$X�H�H����H�D$h�T�H�|$8����H�|$�mH�|$���H��F?H����DH�Z�H�D$`H�D$hH�DG?H�T$PH;uH�D$hH���rH�|$P�Bm��H�$H�D$hH���vH�D$hH�D$H�$H�H�T$�� ��H�$H�@�8#H�T$h��
HE$H�|$`H�$�Db��H����H�T$`H��H�=�uH��H�D$H)�H�L$�h��H�|$��H�|$XH�T$1�蹋��H�����H�<$�vH�|$��H�T$hH�t$H�D$`H�|$XH��H+T$H)��u���H����H�T$`H�D$h�|�
�����SH�D$HH�������H�D$HH��� H�D$H��H�H����H�D$H�xD?H�D$PH9H�D$�D$H�������H��
H�$H�D$ �kf�H��H�$H�4�@��uH�����t������?H�<$���|$��H�|$H�$	��H�L$H9$�6���H�D$HH��� H�D$Hu�H�@ �fDH�x�����H�������H��������w��H�$�v��H�<$�����aH�4$H�=2������H�=�{��f�����H�bC?H�����H�=�s�f��H�<$��H�=~��f���a���@H�$����fDH�t$ H�=j{1��=��H�D$H��H�$���H�=;{1�������DH�@H�D$�3���H�=s�&f��H�D$H�|$X�}���H�=��f��H�<$�[�H�=Gs��e���d���f.��H�=���V�����f.�H�<$���x���H�@���H�D$XH�@���H�D$H���H�4$��H�=��1��J�����H�~D?H�������H�=��1��&���n���H��<?H����H�kA?H����H��=?H����@���g������H���|����uH����E�����[���ff.�AUA��ATUSH��L�%�9@I�,$H�������D�������H�
V}��Hc�H�>��fDI�$H��H��;?H�0H���cu��H��tVH��H�5G��=��H�Ǩ�D�ω����H���e�H����[]A\A]��H�����[]A\A]�fDH�Y@?H��H�0��c��H��t!H��H�5ey��-=��H��u���+�����@���H�=�x�c���m���f.��k���H�=�x��c���H���D�K���H�=�x��zc���(���D�+���H�=l{��Zc������D����H�=�x��:c�����D���H�=~x1�����������[M�������D��H�=nx1��H����AW1�AVAUATUSH��H�D$HH�D$�4t���D$$H��7@H�T$0H��$H�D$04H�
�H�H��H�\$H�D$(H���H�t$@H��$H�BH�H1��H�H�HH�`H��H���H�\$H�D$H�t$H�=�
@����H�t$H�=�
@���H��$H�L$�|$$H����O��H�D$(H�T$H��H��[]A\A]A^A_���H�D$�xH�@H��t�H��$H�t$H�������H�D$H��tH��H�D$(H�t$H�D$0H����:���ff.�@AWAVAUATUSH��H��H�q6@H�T$H��$�H�D$4H�0H���H�t$H�|$ H��$�H�BH�X1��H�H�HH�`H�����T��H��$�H�L$H����CW���n>H��[]A\A]A^A_���H�|$�GH�GH��u����H���3����D��H��5@H�HǀH����o����AWAVAUATUSH���|$H�|$(H�t$H�D$(�_d��H�h5@H�L$0H��$H�D$04H�=�H�H���H�\$H�t$@H��$H�AH�x1��H�H�pH�`H���H�H��$H��H��H�
xH�H1��H�H�t$�|$H�PH�`�0���H�D$(H�t$H��$H���H�D$(H��[]A\A]A^A_���H�D$�HH�@H�L$��uH�~4@�h���������<�|$�b���H�H�H������AWAVAUATUSH��H�44@�|$LH�8H��H�<$H�D$H�4@H�D$ �<}H�<$H��H�D$H��3@H�D$ 苻H��3@H�T$`H��$H�D$`4H�
GH�0H���H�t$(H�\$pH��$8H�BH�H1��H�H�HH�`H��3@H���H�D$ H�$H��$H��H�L$H��H�{H�A1��H�H�AH�� H�aH�D$H�Ѕ��%H�$H�t$(H�|$XH��$8H��H���H������ǃ0���H�D$XH�\$��a��H�5�2@H��$@H��$HDŽ$@4H�
_H�H���H�\$0H��$PH��$H�BH�H1��H�H�HH�`H�$H���HH�D$H�$H��$H�\$H��H��H�C1��H�H�CH�c���H��$H�T$0H��$H�=pHDŽ$ 4H���H�$H��$ ǀ�H��H�D$PH��1@H�0H���H�t$8H��$0H��$�H�BH�x1��H�H�HH�`H���H�$H��$H�L$H��H��H�A1��H�H�AH�a萫H�D$XH�$�|$LH��H��H�D$�K����D$LH�$�D$HH�D$@HcD$H�D�PH�D$H�����tv�uH�H�D$�D$����t^H�D$@H�|$H�D$H��2?H�0�l��H���*H�D$@H�|$H�D$H��7?H�0�l��H���Q�D$L��u�D$L�|$���D$H�$H��H�t$�[?��H�t0@H�HǀH�$H��H�L$�j��H�5J0@H�$H�>H��H�\$�yH��$�H�T$8H���H�$H��H�|$�脹H�$HH�D$H�D$ H�8�(����D$�����D$LH��[]A\A]A^A_�fD�D$�����H�L$8�AH�AH��uyH�$HH�D$����D��H�t$(�FH�FH���8���������H�T$0�BH�BH���	�������H�$�|$HH�D$��=���G����T$L��������D$L���H�<$1��]�������H�$HH�D$�����H�$HH�D$�����H�$HH�D$��H�$H�|$H�5c�HH�D$�2��H��H�$HH�D$@��t\��~���D$L�D$����H�$H�|$H�5�nHH�D$�b2��H��H�$HH�D$@��t�~���D$����GC����@C����ff.���PXH���q2�����:v��f.���SH��H��H�t$�J1����tH���[�����72��H��[Ð1��)2���D$H��[�ff.�@��H��-@L�M�J0�@I�J(I�R I��PH��I9�s
L�����H��t��D��AWAVI��AUI���ATL��USH��H���X���H���X��I�nH���I��xL��H���eU��H��H���HH��tY�uUH�����tMH�‹����u@H;^u1����u)H������t �9H�ʃ���uH9Y�cH�JH��u���aH���Y��H��I��H�@L�h@�2��L����2��H�C H�[I�G I9��	M��H��u7�@I�D$1�H�[H�BI��H��L�h@��I9���������u%H�����tH��ƒ���t��@H�f�I�t$H����X��H��H��t�L����>��L��H����>��I�l$H��@���y���H������l���H��L��H�l$��P��H�T$���O���I�$��`H��`�>���H�E��`H��`�-���H��L���?I��H�T$����DI�~H��L��L��[]A\A]A^A_�U��H����������H��ƒ����������@H��v�������H��I�F�u@H�����t8H��L���P����u)I���`H��`uH�E��`H��`tH��L���H��DL��������o����H���/��H��I�F�tI�H%����I��d���@H�����t�H��L���O����I�uH�ƒ�`H��`tI�n��@H��[]A\A]A^A_�H�U��`H��`t�H��L���G��I���@��H��H��H��H��H�����1�H�����UH��SH��H��H���CU��H��H������H��+?H�8H��[]�sL����UH��SH��H��軰H��)@H�H�z0H�r(H�R H�OPH��H9�t0H�x u0H��t
H���u!H��H���g���H��H��[]�DH�x t�H��1?H�53lH�81��)2��f���UH��SH��H���+�I��H��(@H�L�P0H�P(H�@ M�JPH��I9�t-����H��u-M��tI9Zpu:H��L������H��H��[]��ӹ��H��t�H�W1?H�5�kH�81��1��H�?1?H�5�kH�81��~1��ff.���H�5m�?SH��H��tH��[�a���H�=�g�w��H��[H��H�9�?�la��ff.����AUI��ATA��UH��SH��H��'@H�H�{0�6L��D��H��H�CPH�C0��H�HH��[]A\A]�O��f���SH���Cx��H��[H���m�����SH��H��H����0��H��[����H�e'@H�H���f.���SH��H��uH�;'@H�H��[��H�Y-?H�0��b��H��u�H�E(?H�5tgH�81��0��ff.����H��&@L�L���J���H��tH�ÐI������UH����H�5����SH�=1gH���w��1�H�5����H�=��w�������H�5K��H�=g��Z�������H�53��H�=�f�Z��H�5p,?1�H�=�f�Z��1�H�5Y��H�=�f�Z��1�H�5���H�=�f�xZ��1�H�5����H�=�f�cZ��H��*?�����H�н��H�5�fH�;��^��H�;�����H�����H�5�f��^��H�;�H�����H�5|d�U��H�;�H����H�5/d��T��H�;�H�����H�5+d��T��H�;�H���H�58f�T��H�;�H�;���H�5$f�T��H�-�'?H�5
fH�}�m��H�}H�5f�m�����~�H�;1�H�ҿ��H�5�e�^��H�;�����H����H�5�e�{^�����H���nu�������H�r���H�5�eH���T����H���Fu���H�����H�5seH����S��H��-?�����H�ع��H�5yeH�8�y]��H�5�(?�����H�=ge�X��H�5R%?�����H�=Me�X��H��)?H�Fe1�H�0�Ѵ�H�=mW��r��H�a�?H��[]�f���H����@��H��#@H�H����f.�AWAVAUATUSH��XH��#@�|$H�H�t$H�T$ H���H�D$@H���H�D$8��_��H�}A��� �:H������-��1�H�D$H�EH�D$(��f�H����H9���H�D$(L�4�L�,�E1�A��uI�����tA�E1�����A��D��L��貆H��L�@H� tL�@E��t)�|$�n�D$���������H�D$�����H�D$ ���ufE��uf�D��L���0��H����H��I���X&��H�|$L���f��H��H�E�� �
���H;]��H�E �����E��t�L��H�t$0�&��H�t$0��L��H�t$0�T��H�t$0���U���H�D$��E���fDA�8~�&���H�D$8H�H��H�L$0�� u	H�D$8H�@ J�4(H�|$�	f���I���@H�\$H���S=��H�D$@H���H���H���H��X[]A\A]A^A_��/��fDL��H�t$HL�D$0�S��L�D$0H�t$H��������a����H�}�������SH��H��@��u	H�����uH���?��H���[�f�H��H�t$�CR��H�t$H���?����@ATUSH��H��0H�|$H��H�D$�:L��H�|$��+L��H�|$�!'��H�T$I��H�� @L��H�H���H���(��H�|$H���~@��u(���K��H�|$H���d��H��0[]A\��H�|$ �(�H�\$(�o��H�t$ �H�D$H��H��iW��H�T$L��H����:��H��0[]A\�L����O��H��H��H����:��H��0[]A\ÐAWAVI��AUATUSH��H�|$H�|$�PM��H�|$H��H��� �H����H�\H�$�H9���PҀ�w��PҀ�vH���H9�u�<.HE$L�e�A�LD��H�s�H9�w!�{�/u�R��~�/tRH��H�^�I9�u�L���.���M��tH�|$L��1�H)��l��L��H������H��[]A\A]A^A_�H��H��H��@H�$H)�I��H)�H���l��L��H������M��t"L��H�|$L��H)�H���l��L��H�����H�|$�>���H�G���H�$����ff.��ATL�%O@USI�$H�����uH�����tvH��ƒ���ti��udH���"��H��H���gb��H��� u7H�CH�t�H��H���*���I�$[]A\H���H����?,���H����H�t�H����H�&?H�5paH�81��&��ff.�AWAVAUATUSH��8H�GpHLJH�|$H�D$@H�GhH�t$H�D$H���PH�GpH�D$H�T$PH��$0H�D$P4����D$<H�,@H�0H���H�|$`H�=>H�t$ H��$(H�BH�x1��H�H�HH�`H���H�\$H�|$����2��H�t$��H�D$�,��H�=aH�D$(�63��H�L$(H�T$E1�H��H�|$�4��H�\$H�ǃ���H=��H�|$ H�\$�H��$(H��H����D$<���H�D$HH�ChH�D$@H�Cp�D‰D$�D$H��8[]A\A]A^A_�@��H���k��H�|$H�Gh�C��H�|$H��H�GpH�h�0%�������H�D$ �xH�@H�|$������H�|$ H�T$�4H��$(H����D$<�|$���H�D$HH�BhH�D$@H�Bp膤H���B���H�T$�D$H���)�����SH���s�H�{H�@H� tH�{[�ta��@�����tCSH��H�>H��u�"�H����1���t[�@�;�H����1���u�H�;�9���[��ff.�@��ATUSH�/��t!H��1�H�=_��e��[1�]A\�f�H��I��1�H�ֿd1��Y��H��I�$�MJ��H�1�[]A\���SH��H��H�|$H�t$� ��H�ƸH��tH��� &��H��[�f.���SH���S�H��t
H��H��[�@�[�f���USH��H��H��(H�T$�b��H��H�D$H�D$H�|$����H�D$H�PH� tH�PH��H���^)��H��(�[]�f�AWI��H��AVAUM��ATI��UH��SH��.H��(D�D$�!3��H��tI��H��L��I)�K�<7��#����tcI�<�I9�u�DH���I9�t�PҀ�w�<.t1�H��(H��[]A\A]A^A_�@I��M)�L9��H)�H��L���g#����u�I)�M��~C�|7�/u��|$s���|$r��1�M��H�l$��E1�I)�I�E�� tjH����I9��y���I�EJ��H��H�D$�F��H�\$H��� uOH����I9�uM���D���L��H��L����"�����.���I�EI���� u�M;e����I�E ��H�S�f.�J�t5�H�=\L�����������+����J�t5�H�=+�L���f.���ATUH��SL�bH���i.��I�T$H9�|/L�KD�CL��H��H�H�����H��tH�k �[]A\�[1�]A\�f�U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�U��H��SH��H��@H�+H���C�����t��t*H�;��H���H��H�e���DH��[]�f�H���X��@��SH�I�1�H�� H�\$L�D$H���<+��H�\$H�|$���H��H��H�D$�-4��H��H�D$��5��H��u H�|$H� t=H����t6H�D$1�H��H�D$����@������H�� �[�f�H���H�5wZH��苙��ff.���UH��SH��H����H���@��H��tH��H��H��H��[]���H��?H�5�YH�81�����H��(H�D$H�|$H�D$���H��H�D$�4��H��tH��(�H�|$H�5�Y����H�=@H�H����f.���ATUSH��H�@H�H���H�����W��H��t*H���H����H��ulH���H��[]A\�@H�T$H�t$1��D$�D$���T$�����D$����Hǃ�H���H��[]A\�@�D$�D$�J��H��H���P.��H��I���3��H���L����7��H����H�T$H�t$�L����R��1���DHǃ�H���H��[]A\�DH�T$H�t$��D$�D$��H���H��[]A\�@�KJ��H��H���-��H��I���U2��L���H���H��[]A\�fDH�T$H�t$������ff.�@AWAVI��AUATUSH��H�t$�T$ �L$L�D$(H�D$@M��tI�L����)��H�|$H��H������)���L$ H)�1���H�\$����r�D$$H��@L� M��$�I��$�L���U��H����I��$�H�T$@L������H�D$@H���NH�L$H1�E1�H�L$0�uH������H���)H�I�WI� uI�W H��H�|$0H�D$H��?��H��H�D$HH�0�� ��L�`H�D$L9���H��L��H�������ta�T$����M����H�L$H�AI9���D�D$$M��L��L��H���G���H��tjH��� ��H�@H���D$H�H�D$L�A�����<.u2H�|$���D$ �V���N�D$ ������H��H�D$@����f.�E1�H�>@H�H���H���#�D$L�d$P����H�D$L�t$PH�D$X�D$$�D$`M���L�d$PH�56���H��L�l$hH�D$pL���])��H�D$pH����H�L$(H��tH�H�t$H�����H�=(U������y�sH�Ĉ��[]A\A]A^A_�H����I���=����H��у�������� ��H����H9������H��H������f�L��L��H���b@����tH�L$(H���N���H�D$P�A���fDH�D$H��t	�8��H�D$H�x�4��I��L�hH� tL�hH�\$L��L��L�5��>H����;��H��1�L�|$L�I��H�5TL��H�D$I��H���f.�I��K�4�H�����H����F��H��L��L���?����t�L��L�|$1�L���)��H�L$(H��tH�D$PH�H��������r���fD1��u���f�I��$�1�H�5��E1��g'��H�D$PL�d$0I��$�L�t$8I���_H����H9�}eH��H��� ��L��I��H�D$P�-��H�|$PI9�tH��H��H���^��H�|$P�_��H�|$PH�tA����H�EIc�� u�H�EH9�|�H�H@L�d$0L�t$8H�H���H�������i���H�D$�D$$�)���fDH�|$������u�f���f.����I�����L��I��H�\$�H�5�RL�|$H���,E��L��L��H����=������H�ߺH�5�R�E��L��L��H����=���Å���1�L����'������H;h����H�@ ����D����I���D���H����H�B�r����L��H�=}���€����x����L��H�=�Q��€����t����T���D�L��H�=YQ������b������1�L���+'��H�L$(H������H�D$PH�������ATI��.USH��H���(���;.H�D$H��tCH��t�/H���!&��H����M��1ɺ1�H���������H��[��]A\��{/tH�s�H�=�P�����u�H���C��H������H����H�D$H�D$H��� uxH�\$H���_���f��H�=DPH�������tf�H�=�H�������t�H�=*PH��������&���M��1�1�H���#����H�D$H�X���f.�M��1ɺH����ff.���1��)��D��H�����H��H�������S���d�����[H�����f���AWAVAUATUSH��H��
@H�$H��$H�T$0H�H�|$�t$H���H�L$@H�
�H�D$(H��$H�BH�\$H�D$04H�H1��H�H�HH�`H������H�D$(H�T$H��$H���H�2
@H�t$(�T$H�8��H�4$H��t�H��[]A\A]A^A_���H�T$�BH�BH��u%H�|$�S�H�D$(H�|$H��$H����H��$H�|$H����f���AWAVAUATUSH��hH��	@�D$@����H��t$H�|$8H��H�\$HDŽ$�4H�D$HH���H�D$PH��$X�E��H��$��D$DH��$`H�BH�
�H��$�H�H1��H�H�\$H�HH�`H����|$�� ��H�D$8H�D$`H�|$8���1�H�D$8� ��H�|$8�&��H�H�D$H�D$XH�$�� �H�D$H�@H�$H�<$�.�$��H��H�D$ H��t�/�="��H���4H�<$L�D$p1�1�1������$��r�<H�D$�T$H�|$hH�5/�>H�D$h�T���D$������t�$���H�D$hH� ��H�@H�$H�<$�.��#��1҃l$H�<$L�D$p�H�����q����H�D$hH�D$X�T$H�D$X��H�D$���$sH�D$H����H�0H�t$ �� ��H��H�D$ H�h@H�H���H�|$(H����H�t$ H�T$x�i������H�D$x��\H������PH��у����?H������d�/H�@H�D$0�ْH�t$ H�|$(H��H�D$x��!��H�D$0��H���H�D$ �H�D$ H�D$PH���H�D$P�8t[�$��r���suJ蕩H�T$1�H�57�H��I��輒H�@H��ZH�tH�=�A@�J���H�|$����D$@�	f���H�D$�HH�@H�$������1�H��$XH�T$H�t$PH���H��tH��@H���H�H����C���|$D����$��uH�D$HH�T$H���D$@�$�$H��h[]A\A]A^A_��H��H�$���H��H�$�t����4$��uQH�|$hH� ��H��E1��1�1�������f.���$�����H�|$pH��tn���H�D$H�D$X�X���f.�H�|$p����� �������H������FH�|$x�ܐH���H�����H�D$P�D$@�c������H��H�D$(H�t@H�H���H�|$ �H4��H�D$ �>�H�t$ H�|$(H��H�D$x�7���z���f�H�t$ �H�=�H�������H�t$ �H�=k������t H�t$ �H�=�H������4H�D$pH�t$ H�<$1�I��1�H�D$(�e����H�D$H�H�$�� ��H�D$H�@H�T$ H�|$1�H)��Q���H�5ۻH��H�D$h����H�|$h@��u7H�����t.H��ƒ���t!H�€�H�H�t���S��t$��N��H�D$hH��tmH� �H��H�$H�<$�.���L�D$(H�<$�1�H������tH�|$p�2���H�D$hH�D$H�D$X�$s������$�P���@H�D$pH�t$ H�<$1�I���H�D$(�����&�t$H�|$�N��H�D$hH���*���H� �[H��H�$H�<$�.�7��L�D$(H�<$�H�ƺ����tH�|$p�l���H�D$hH�D$H�D$XD�$r�J���@H�D$H�@H�D$ �^���DH��t����H�������H�D$ H�D$x聍H�t$xH�|$(H��������f.�H�t$ H�=�E1��M��H�~	?H�8�����f�H�|$pH��������-���1���H�|$pH�����������S���H�|$1������H�����H�����H�@H�$���H�@H�$���� ?��H�|$h���fD��SH����H��H��0dH�%(H�L$(1�H���(��1�H���������ø����M��G��H�L$(dH3%(uH��0��[��i��f���SH���������x*��[H�H�Ѓ��H�5@H�H���H�zH����H�5�DH��豃�����SH���S<��H��[���x�����ATUSH���wH��t+H���B*��I���<��L��H�߉��m%��[��]H��A\�/��H�=HD1��!�����S�&7��H�èu*H�����t"H��ƒ���tH�€�H�{H�t��t�;��H��[������DH���=����fD��AUI��ATUSH��H��L�%�?I�$H����U����u)H��t4H��L��H��H��[H�7�]A\A]�
=��DH��[]A\A]�D����H��I�$H������U�H�=�CSH��H���?H��{M��H�
�?H����H�=�CH��H���k���H�=%C�JM��H��H����K���
H�=
C�.M��H��H���K���n��1�H������1�H������1�Hǃ�H�5��H���H�=�B�O��1�H�5��H�=�B�O�����1�H����C��H������������H�5�H�=7#H����2��H�5a�>�H�=nB��1���H�5����H�=^B��1��H�?�H�u�H�5PBH�;�f6��H�;�H���H�5;B�K6���H�5O�H�=B�1���H�5��H�=B�k1��1��t��H�e8@H��H��[]����f.�D���@�fD��H�G �x:H�H�Ѓ��f.���1�H����H���ff.�@��H�G H�H�@ H�@�ff.����H������H��H�H�Ѓ�0�ff.���SH��H�(H�����u{H�{0H�����u^H�{ H�����uAH�;H�����u%H�{H��t@��uH�����t
�����tC[Ð�.����f��.���f��-���f���-���{���fD[��-��f.���H��t�2��f��ff.�@��H�W H�G(�BH�PH�M�?H�H��(H�H��(����ff.��AWI���AVI��AUI���0ATM��UL��SH��H�T$�J��H��>L��H��H���ZB��L�T$H�k� L�{I��L�L�k�%���(H�C H����@L�pL�hH�@�^%���H�EL�pH�	�E%��H�C(H�C H�@�@A��u"I�����tI�$�Ѓ��� �H��sH��L��[]A\A]A^A_�A��u�I�����t�I�E������t�%H	�I�$�ff.�f���SH�� H�|$�@�$��H���>H��H�D$H��H�@ �o�oHK�oP S �oX0H��>H�8[0�A��H�T$H�C H�T$H�T$H�� [����AUH�5��>I��ATUSH������0�H����H��H�j�>H��H��H��>H�8�@��H�4� I��H�EH�C��#��H�C H�U �o�oJHH�BH��t�@H�E�H�CH�EH�C�#��H�C(A��u"I�����tI�$�Ѓ����H��sH��L��[]A\A]�A��u�I�����t�I�E������t�%H	�I�$��D��H��H�5��>���H�@�uH�����t
�����t
H���DH�@��f���H��H�5A�>�L��H�H���@��SH��H��?*��H�{�6*��H�;�.*��H�{ H��t
[��.�[�fDH��tKH��H�GH�PH�$t(H���蜽H�D$H���ZH��H���DH�D$��D��f.���H�E?1�1Ҿ�H�81����f���H��H�5a�>�l��H�@ H�@H�xH���;�����H��H�51�>�<��H�xH���;��ff.�@SH��H�\$�@H�PH��t�:uH�D$H�rH�xH����`H��u�H��[�f���H���>1�1Ҿ�H�8����@��AV��AUA��ATUS��1���)�H��Hc�����H�=��?I��H������:��L�t$�L��H�D$�F��H�ŨuH�����u6��tf.�H��L���e:����u�E��xCH��L��[]A\A]A^�H��ƒ���t�H�€�H�}H�Ut���u�H���
4���H�=!�?H��t\�7:��L���A��H�D$�bF��Ic�L��H����E��H��L��[]A\A]A^�@H�=���OD��H��H���?����H�=�y��/D��H��H���?���AUH�5S�>ATI��USH���S���H����!���H�5�H���r��L��H���-��H��H���<���H�5�,H���H��H�E L�`A��u*I�����t!I�$�ƒ���t���
f.�H�}L�-|��p#��H��H���E���L;euL��H������H�}�{1��H��H���P��H�E H�@H�xH9}t!�Y1��H�5�wH��H��1��u
��H�E H�@�8thH�ߺH�5[����H��H��[]A\A]�fD�H�5�cH���\��L����"��H��H������H�5*_H���5���A����H�5�8H������f.�L����C��H�}I��H��4��H9�t]�
��H��H���-����H�5DcH������L��L�-�c����H��H������H�5�^H��������fD���H��L�-�cH���������@L��L�-�����H��H������b������ATUSH������L�#H��H���r���H��L��H���?��H�}H���h%����u&H�����tH��ƒ���t��tH��H�����H��[]A\�D��SH�5��>���H�xH���2��H�3H�����H�s H���eH���T;��[H�D�ff.�f���H�5@7�0�����H�587� �����AUATL�%��UH��SH����*��H�
7I��H�E H�X�x:LE�H������uH�����t�������@E1�H�{PtH����z�H����A��A��H�KM��H��L��H�=�61��)��@��u;H�����t2H�U��t$��t�uH�����tH���~9��H�H��[]A\A]��L��H��L��1�H�=Z6�)�����H��r��ATI��H��UH��S���H�mH��H��tH�������t4H��[]A\�fDH���@9
��u�H��H��L��H�547H��1����H���-�������SH��H��H�t$H�t$�u���H��tJH�S H�H�r H�V(�J`��~)H�RXH;t1H����H���@H��H;B�tH9�u�H�VH��u�1�H��[�H���[�D��SH��H��H�t$H�t$���H��tJH�S H�L�B I�P(�z`��~+H�rXH;tIH��1��f�H��H;F�t0��9�u�I�PH��u�H�|$H��H�5O61�H���
��D1�Hc�I�D�8H��[����UH��SH��H��(H�t$H�t$�Q���H�D$H����H�} H�L�J I�Q(�J`��~0L�BXI9���q��H���f�H�JI9D�t5H��H9�u�I�QH��u�H�T$���rH�H��(H��[]��H��8L�H�H��(H��[]��H�|$�-��H�D$�Y����8��D��H�G H�8�0n��AT1�I��H��US��H�� H��L�ML�EH�������{H��L�d$�H�� []A\�D��H��tgSH��H�?H�����u?H�{H�����uH�{H�����u[�[� ��f�� ��H�{H�����t���@����H�{H�����t���@�ff.�@H��4tZATI��U��SH��������u0��L��H�ߺM���A�����[]H�����A\�����[1�]A\�f�1��ff.�f�AWAVAUI��ATUSH��8H�t$(D�|$pH�L$L�D$L�L$H����H�GI��H���������L��H��A�L�t$(�W�H�\$(����H�SH�XH�R8H��H�jL��H���L]I��H���xI�BH���k����`A��u�E�"E��t�D���t��D$x���eH��H��苙��I�����t'I�U�Ѓ���t��u��uM�mL9�tA��tо0�L�T$ �;��H�|$H��>H��I���M3��M�l$� H��H�D$I�$H�D$(I�D$H�D$I�D$�n��L�T$ �I�D$ �Ao�AoJH�H��I�D$(I�D$ H�@�@@��uIH�����t@H�U�Ѓ����H��r'��u"H�����tH�������t%H	�H�UH��8H��[]A\A]A^A_�H�\$L��DH���/��H�t$D��H��H���]�����u�T$x��u3��f.�L�L$L�D$H��H��H�T$L����H���1�H��H�����AVE��AUI��ATI��UH��SH��H��H��H�T$�8[jM��I��AVH�t$L��H��H���;���H�� []A\A]A^�ff.���AUH�5S�>ATUH��SH���S��H��H�@�H�D$����u	H�CH�D$L�`M��tSH�sH�T$L���ZI��H��t:H���*-��L�CjL��jH�L��I��H�t$���ZYH��[]A\A]��H���[]A\A]����ATUH��SH��H�|$H�t$�2�H��ueH���O��H��H����H�T$1�H��H���������H�|$�T(��H�
�>H��H��I��H��L�
H�����H��[]A\�DH��H���=O��I��H����H��H���QH����H��L���QH�x��H��L���kQH�H���tl��
uH�QH��t^H�RH��tU�:tPH�m�>jH��I��jL��H��L�
L���R���ZYH��[]A\�H�|$��H�|$H��H�5V/H��1�����H����H��H�5:/H��H��1��E��DU�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�H��t;@��uEH�����t<H��ƒ���u/H������euH��H9GtkfD�����1�������������u1ɋ��������0��ȉ�������t�H����R��������SH�H��H�5,�>�7	��H��[H�@ H�x�	f�H��t;���
��L�q0��Ic�L�>��D�W���������1��@�1������@H�W����������u1����������0@�����������tKH����J1҅������H�GH�@ H�x�_�����G ���P�����f.��P��H�=--1�����ff.�H��H�5��>���H�t$H�@ H�x�����T$��9��E�H�����f.���H�����H��H�H�D��AUA��ATUH��SH��H�i�?L� I�\$0H���<H��H����H�^ H��tlH9kuH��H��[]A\A]�H���(�H��H�h@��u�H�����t�H��H���W
����u�H���`H��`u�H�E��`H��`t�H��H�������DH��A��H��L��[]A\A]�e�H�{P�;H��H��t&E���Q���H�D$H�=
,1���/��H�t$�4���H���>H�5�+H�81��y�f���H�u�>1�H�8����ff.���ATI��U��SH�� H�Z H�T$H�C�uH�����t�����tD@���@u7E1�H���?��L��H��H�8�5>H�T$H�T$H�T$H�� []A\�D�S-����t�H�D$H�D$��H�D$L�@ �D��H���>�H�8�������ATI��1�U��H��S���L���H��H���2��H��[]A\Ð��AVH�5c�>AUATUSH���e���0�I���2��H��������n�؃�����H��������H�{H��>H���J*��L�3H��I���|�L��L��H���/��I�|$L���q���AoE� E�AoMM�AoU U �I
��H�E I�U �o�ob`H�@H��t�@��
��H�E(L��[]A\A]A^�f.�H�����u'H����H���7���H�M�>H�8�,���DH�{H�%�>H���m)��L�3H��I����L��L��H����.��I�|$L�����H��ƒ����������	���H��L���/������f.�H��>H�8����H�	�>H�8����H���>H�8����H�y�>H�8�x����H�I�>H�8�h������AWAVAUATUSH��H�5X�>I��A��H���X��L�hI��L���u
I�������M�������"�؃����<H��������H�CI9���L��H�����H����H��u I�����tI�E�ƒ���t	���{L���k��H�5\(H��H���>H�81���H�����u�H����H���{���H�}�>H��p���DA�E�����$����0��/��H�:�>H��H��H���>H�8�u'���Ao$� I��E�AoL$M�AoT$ U �
��H�E I�T$ �o�ob`H�@H��t�@M��tm�����؃�����H���,���CL�{H�u������}H�]�L�}�
��I�D$(H��L��[]A\A]A^A_�@H�����u�H����H��u�H�Q�>L�8�@H�I�>H�5�&H�81���H�	�>H������L����H��tSI���n���H�Q�>H���f�H�9�>L�8�2����H�	�>H������H���>L�8�����L��L�����I������DH���>H����f�H�i�>L�8�����H�9�>H��l����H�)�>L�8����H���>L�8������SH��>H���|%��H�C [�fD��H��H�5ћ>�|���H�H��H�Ѓ��ff.���S� H����I-��H��H�/�>[H���%��fD��H���>SH��H�8���H�K H�P H�1H�2H�qH�rH�q�IH�rf�J[Ð��ATUSH�����L�#H��H�����H��L��H���4*��H�}H��������u&H�����tH��ƒ���t��tH��H���}�H��[]A\�D��H���?H�8H�w0�_f����'	�����H�W H��H�R(H�R H�B8�@��H��H��(H�H�4$H�|$H�w �� t@H��H�H��H�n�?E1�H�8�6H�T$H�T$H�T$H��H�T$H�$H��(�H�PH�H H�����v�H���>H�5�!H�81��'����H��(I��H�|$��I�p E1�H�$H��tL�A H���?H�щ�H�8�%6H�T$H�T$H�T$H��H�T$H�$H��(�D��SH��H��H�G H�t$H�x���H�S �z:t9D$�����҄�D�H��[�f��|$������҄�D�H��[�f���H���s��H��H�H�D����SH��H� �?H�H�x0�d2H��tfH�xH��H�t$�>�H�S H��u�T$�������D�H��[ÐH�J �T$H��t�y:u������„��D�H��[��9�����H��>H�5�H�81������SH�^ H�s����H�s(H������H�s[H��H��������SH��1����H��H�����H���^#��[H�D����H��H�5A�>����H�H��H�Ѓ��ff.���AVI��H��AUATA��H��U1�SH��H����aH��t�hA����A����I�>�f"��I�~I��H�<$���H�<$H�������H����H�$L�p M�fL9�t}A��udI�����t[A�$����tbL��H���t
��H�����uOI�$�ƒ���t	����L���
��H�5�!H��H�T�>H�81��"�f�L��H���%
��H�����t�I�V ��L��H���L����cH��H�D$H�$L���O��H��[]A\A]A^�f�H�<$���H����H�<$���L�` H�$H��I�D$�uH������-L���L���H��������I�\$fA�D$9A��L��H���ty���d���H�,$H����(��E1��L��H��H���Iy�=���@���H�<$H���e������H�5�H��H� �>H�81����fDI�>� ��I���)��H��H�$�#���@H������D���H��L������uI���`H��`thH�$� ����I�n H���(��1�L��H��H���ď�|����������������DH�q�>H�5jH�81��8�H���`H��`t�H��L�������|�����D�����H�+�>H�5�H�81�����f���U��SH��H���?H�H�XpH��u!H��>��H�H��H��[]����H�=i1�H�t$�m�H�t$H����H��[]�x������UH��S��H��H���&��H��H���H��[]�F���fD��UH��H��SH��H���8���H����@����@���+������=H���c@���IH�E���������ڃ�����H���;���H�SH9�uIH��H�5��>����H�m H�[ H�} H�s �EH��t!H�CH9Eu�H�H9Mtf�1�H��[]��H������Z���H����H���G���H�Y�>H��<����H������a���H����H���N���H�)�>H��C����H�i�>H��3����H�Y�>H�����H�)�>H������H��>H������H���>H����H���>H�����H���>H�����H���>H������H���>H��|����H���>H�������ATUH��SH����u	H�����u4L�%=�H�����H��H����I��L��H��H��H�5'1���H��ƒ���t���uL�%%���t�묾�H������t$�u�H��H���H��t��ƒ���t�<u�w���H������k�����������Z���H��L�%E��R���ff.�@AUATA��USH��H��H�|$H�t$������������ڃ�����H��������H�kH���>L�*H��ukH�T$D��H��H���h�����H�|$���M��H��H��H��I��H�����H��[]A\A]�@H�����u�H��tAH��u�H���>H�*�E��L��H��H��H�����H��[]A\A]ÐH���>H�*�W����H���>H�*�G����H���>H�*�7����H�Y�>H�*�'����H�)�>H�*����H�t$H������@��1����D������f���SH��H��H�|$H�t$���H��t&H���>H��A��4H�
H��� �H��[�H�t$H���]���ff.�f���SH��H��H�|$H�t$�E��H��t#H�!�>H��E1��4H�
H�����H��[�H�t$H��������UH��AWAVAUATSH��8H�1�?������H��H������H�5:�>H�����H������Dž������H������&�H������H�84H���?H�������HDž�4H�H�����H���H�E�����u.H�����H�����tH��ƒ���t���yf�H���H�]�H�����H�BH��H�X1��H�H�HH�`H�����H���H�����H������H�81�H��tH�F H�GPH������H�H�������H������H��L������L�H H�PQ������H�0�H�����H�����XH�E�ZH�����������H�����H�e�[A\A]A^A_]���H��0H������XH�@H��������7���H�E�H�����H���������x�����2�H����������H�H���H�xH��f�H������H�H�����������Z����[�������������v��������g���H��>H�5!H�81�����ff.�@��AUM��ATI��USH��H����������؃����9H���?���FH�SH�;�>H9tfH�t$�H�\$��
��H��H������H��H� t~���H�sL��L�����H��H�T$H�$H��[]A\A]�f�H�+�� tMH�����@H������e���H��tuH���V���H���>H��K���D�C��H�s �DH�kH������M���H���>H��H�5�H�81����@H���>H����f�H���>H������H���>H������H�I�>H�����H��>H�������ATI��UH��S��������uL��H���[]A\��������H����fD��H��H�H�t$���9D$t��H���ff.�f���H�����1�H��tH�xH�t$���T$����9�Eщ�H���f.���@��t&@��u@������tVH��t`@��tjH�����H�����u�H��t!H��u�H�U�>H�8��H���>H�8�����H���>H�8�@H�Y�>H�8�@H���>H�8�@H���>H�8�@��H��H�5�>���H�@ H�P���t.��uH�z1�H����f.�1�H���f�H�BH������H�W H�BH��t�z:���҉H��t�uH�����t
H���t
�@H�%H������eu
H�U���H9Pt1��@SH�xH����H��t�[�ff.���H��1��1�H��H�����D��B���v��tB1���tH������H�H��u7�ÐH��H�1����H��H�����DH�GH�����@����ff.���H��H�5a�>�l�H�@ H�xH���k���ff.���SH��H��H�t$�j�H��t�t$H�����H��[�H���������Q��H��[�ff.���ATH�5�>UH��S���H��1�H���H�=6��H�����I��H�@ �@9H�H�SH�H�PH�@(H�h H�C H�MH�HH�U���t'1���uH�y1���H�E(L��[]A\�f�H�AH�E(L��[]A\���SH����H��t1�H��[���H���(�[���p����AWAVAUATUSH��L�g I�\$M�t$(����H�����t~H��ƒ�����H��>H�8���H�h I��I�D$0L�uH�EH�����t
�����t_H�CH���H�E�c�H������f�EH��L��[]A\A]A^A_�DH���>H�8�q�H�h I��L�uI�D$0H�EH��u�1�H�Ef�E��H������e�HH�9���H9C�7H�{�v�H��H��tNM�V �hdI��A��McjA9�|gH�(�>H�8���H�h I��I�D$0L�uH�EM����������fDH���>H�8��H�h I��I�D$0L�uH�E�@����I�VI�~1�L�$���D�EMc�I��J�<�@L�D$���L�$A�UH��I�F �EHc��AoB�L�I8I�r8I�B�iL��H��A�AoJ D)�H�AI I�B0H�$H�A0��Hc�J�|��k�H�$L�D$N�t�8��H��>H�5H�81������H��tH�H��t����f���f.���H���s��H��tH�xH��t
H�����@�H���ff.���@��t&@��u@������tVH��t`@��tjH��@H�����u�H��t!H��u�H��>H�8��H�Y�>H�8�a����H�I�>H�8�@H��>H�8�@H���>H�8�@H���>H�8�@��H��H��H�=���1�����ATI��UH��SH�� H�<$�H�t$H��H�T$���H��H��I�D$ D�`:����H�����H��H�=�;��H�P D�b:H�� []A\�f.���AUI��ATA��UH��SH��H�B H�t$H�x���D��H�L$L��Hc�H�B�1��{��H�|$H��u0H�\H�\$���H��H��H���#���H��[]A\A]������H��I������H��t�T$A9�|���tD9�|H�\$뫉�D���G�����UH��S��H��H���Y���H��H���H��[]����fD��AVAUATM��USH� ��H�nH�^H�F Hc�H��L�0���H��H���
��I��H���T��I�]�� tsL��H�������H�H9�pI�u�� u)I�uI�U H�������[L��H��]A\A]A^����H��I�U����H�F H�(H�XH���d���@L��I�]���H�H9�~�I��u[L��L��H��]A\A]A^���f�H�=��1��R����H�Y�>H��H�5VH�81����D��ATL�%�>H�=�USI�4$����H���>H��H�����H�;�����H� ��H�5���4���H�;�����H�E��H�5V���H�;�����H�*��H�5�V�n���H�;�����H���H�5���S���H�;�����H����H�5�E�8���H�;1�H����H�5�� ���H�;1�H���H�5�����H�;1�H���H�5`���H�;1�H����H�59�����H�;1�H�\�H�5�*���H�;1�H����H�5����H�;H���H�5�����H�;1�H���>H�5��z���H�;1�H�^���H�5��b���H�;�����H�C���H�5��G���H�;1�H�K���H�5��/���H�;1�H��H�5$^����H� �>H�=�H�0�!��H���>1�H����H��H�5H�����H�;1�H����H�5�����H���>H�=lH�0����H���>�H��H�H�\�3QH�5�>1�H�=����H�5g�>1�H�=G��I�4$H�={�y��H�"�>H��H��w��H������$�ƒ����fH���|<��H�xH�5��d��H�;�H���H�5�����H�;�H���H�5I�����H�;1�H�B��H�5�(���H�;1�H�J��H�5����H�-��>H�;�����H�5�RH�����H�;�����H�!���H�5��e���H�;H�����H�5�S�N���H�;1�H����H�5��6���H�;1�H����H�5z�����H�;1�H����H�5j�����H�;1�H����H�5c���H�;1�H����H�5S�����H�;1�H����H�5�'���H�;1�H�R��H�5����H�;1�H���H�5����H�;1�H����H�5o�v���H�;1�H�
�H�5��^���H�;1�H����H�5S[�F���H�;1�H����H�5.�.���H�-�>H���>�H�51hH�}����H�}�H���H�5����H�}�H�?��H�5w#����I�4$H�=�����H�T�>H��H����H���6����ƒ�����H����<��H�xH�5m�����H�;�H��H�5���S���H�;�H���H�5���8���H�;1�H����H�5D&� ���H�;1�H����H�5x}����H�;1�H�L��H�5m��H�;1�H����H�54�����H�;1�H�|��H�5$����H�;1�H����H�5�%���H�;1�H�<��H�5u���H�;1�H���H�5k�x���H�;�H�	��H�5X�]���H�;1�H���H�5��E���H�;1�H���H�5:Y�-���H�;1�H����H�5����H���>�H�R�H�5&H�;���H�;�H���H�5���H�;�����H���H�5G!�
�H�}�����H�-�H�5>!���^H���$��[]�����H���H�5!H��A\���DH��������H��tnH������H�n�>H�8����fDH������ ���H��t.H������H�>�>H�8����fDH�y�>H�8���H�i�>H�8����H�Y�>H�8�g����H�I�>H�8�W����H��>H�8�G����H�	�>H�8����H���>H�8�'����H���>H�8����H�i�>H�8�q����H�Y�>H�8������H���>SH�=�H�0�u��H���>H��H��s���H��� ��H�ƒ����bH���h<�pH�xH�5���`��H�;1�H����H�5Xz���H�;1�H�,��H�51z���H�;�����H�Q��H�5\c��H�;1�H�)��H�5���H�;�H����H�5���H�;�H���H�5��g�H�;�H����H�5��L�H�;H�����1�H�5���4�1�H�5K��[H�=���n�fDH����������H��t6H�����H��>H�8���fDH�Q�>H�8����f�H�9�>H�8����H�	�>H�8����H���>H�8����H�y�>H�8������H��H�H��%��ff.������fDUH��SH������xH��uH�������u
H��H��[]�H���;�H�SH�5�H��H���>H�81�����ff.����H�w>1��N���ff.�ATI��UH��SH��H9�r�J@H��L��H���j���H�H�H9�s.�;/u�H�CH9�v �{/t�/f.��8/uH��H9�u�H��[]A\�f.�H���H���fDATUH��SH��H�����H��H��I�����H�{H� tH�{L��H���4����H��H�����H��[]A\�ff.����H��1�1����H��H���UH��AWAVAUATS��H��8�}�dH�%(H�E�1�H�E��N�9��v�Q�;E��h�
A�L�e�f�Ic�H��H�����L�e�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%���L�|$I���L��D����A�ƃ��tA9�uE�H�}������k���1�A���tCA��Ic�I���fDH���U�9P��A��E��y�1�H�}���f.�H�U�dH3%(��H�e�[A\A]A^A_]�fDL���0�I���N����L���(���H�E��W���H)�H�L�����f.���f�H�}���p���L��E����E��]����������AVH�5�s>AUI��ATUS���H�����L�%�r>1��y��H�5]�L�5��H�����L��H����H��H�������H�5dCH�������Wf�I�4$H�����H��L�����L��A�T$��H�H��1�H�5�H���]��H����H��I��H��t��H�5��H���b��I�4$H���6��H��L���F��L��A�T$H��u(���H�H��H�5{�H��1�������H���Z���H�����H��H���s��H���f����H�5�rH������@��u"H�����tH�U�Ѓ���8�H��s-[H��]A\A]A^ÐH���X��H����H���H��H���V���A��u�I�����t�I�E������t�%H	�H�U�DL�����[H�=��]H��A\1�A]A^���ff.�@��SH���_�H�XH�����sH��������tH�t$pH�|$h��H�Đ[�H�sH�=����fD��SH����H�XH���3��sH�������tH�t$`H�|$X��H�Đ[�H�sH�=c�&���fD��SH����H�XH������sH���3����tH�t$PH�|$H�?�H�Đ[�H�sH�=�����fD��S�F�H�XH���j��H�{H��t�[�[H���"�f��[�f���UH��SH�����H�XH���/��Cu9�sH�������tCH�@H�|$0H�x H�ĘH�D?[]Ð1�H���62�@苵��H�Ę[]�H�sH�=N�����H���w�?����H��H�����AUI���ATI��UH��S�����H�����H��t
H���\���ý����I��t
L���G����L���
��L�`L���A�A�|$����3���tH���[]A\A]�I�t$H�=��=���ff.�f�ATI��UH��S�!����8t{�H�=��k���L��H���˺��H��H������H�5?�H������H��蟺��H��H�����H�5�H�ߺ����H��H�=������H���d���H�=m�H�����D��SH���ø����x[�H��H�=3��^���ff.���SH��H��R�0����x[�H��H�=��&���fD��SH��H��R�0�����x[�H��H�=�����fD��SH��2�A���x[�H��H�=q�����ff.����ATI��USH��H�� ���>H�*���}H��t[H�EH�uH��S㥛� H�$H��H��?H��H�EH�D$H��H)�H�uH��Hc�H��H�T$H��?H��H��H��H)�Hc�H�L$H��L�������x=H�� []A\�D1�H��H�꿜����N�����y������8&u�&�>�T���H��H�=w����f�H�Q�>AT��A��UH��H��H��SH��H�8��D��H��H��H�t�>[]A\H�8��UH��SH��H��H�7�� uiH����H�����H����H��H�C�uH�����uO��u+H�����t"H��ƒ���tH�€�H�{H�t��t_H��H��[]�DH�w�f.�H��H���%����u�H���`H��`u�H�E��`H��`t�H��H������y����H������fD��H�=�%�=�t]H�=�=@tOH�=9�= tAH�=<�=`t3H�=;�=t%H�=d�=�t=�H�=�H���HE�驸��f�PXH�5�H��H�4�>H�81�����f���H��H�5k>���H��t�@H��H��6H��?������ff.�@��H��H�5�j>����H��t�@H��H��5H��?����o���ff.�@��H��H�5�j>���H��t�@H��H��4H��?����/���ff.�@��H��H�5Aj>�L��H��t �@�%�= �HD�H������f���H��H�5j>���H��t �@�%�=`�HD�H������f���H��H�5�i>����H��t �@�%�=��HD�H����b���f���H��H�5�i>���H��t �@�%�=��HD�H����"���f���H��H�5Ai>�L��H��t �@�%�=�HD�H������f���H��H�5i>���H��tH�x0H�H��������f���H��H�5�h>����H��t �@�%�=��HD�H����r���f���H��H�5�h>���H��t �@�%�=@�HD�H����2���f���H��H�5Qh>�\��H��t�xH���������fD��H��H�5!h>�,��H��t
�@ H��H�D�����D��H��H�5�g>���H��t
�@H��H�D����D��H��H�5�g>����H��tH�����H�@H��H�H!�H����e���D��H��H�5�g>���H��t
�@H��H�D��5���D��H��H�5Qg>�\��H��t�x �O��H�H��H�Ѓ�����f���SH�5g>���H��t�X����9ø[HD�����ff.���UH�5�f>H��SH������H��tlH��������u�CIt#H���[]�@H���x���H��t�C@u�1�H��[]�@H������H��u�Cu�1���f��Cu�1����!������UH�5Df>SH��H���G��H��t\H���:����tH�����H��t�E�t&H���[]��H�����H��u�Eu�1�H��[]�@�Eu�1���������UH�5�e>SH��H������H��t\H�������tH���~���H��t�Et&H���[]��H������H��u�Eu�1�H��[]�@�E u�1����!������H��H�5Ae>�L��H��t@H�x0H��tH�@H�xH�D?H���D�H���fDH��釪������f���H��H�5�d>����H��t0H�x0H�@H�xH�D?H���f.�H���7����r���f�SH�5�d>���H��t�X�ƽ���9ø[HD���?���ff.�@��UH�5Td>H��SH���W��H��t|H���z�����u�CIt#H���[]�@H���x���H��t�C@u�1�H��[]�@H�5�c>H�����H��t&�x �����u�Cu�1���fD�Cu�1��������UH�5�c>SH��H�����H��tlH���ڼ����tH�����H��t�E�t9H���[]��H�5ic>H���q��H��t&�x �d���u�Eu�1�H��[]Ð�Eu�1����������UH�5$c>SH��H���'��H��tlH���J�����tH���^���H��t�Et9H���[]��H�5�b>H������H��t&�x �����u�Eu�1�H��[]Ð�E u�1����q������H��H�5�b>���H��tH�ppH�xhH������A������H��H�5ab>�l��H��tH�p`H�xXH�����������H��H�51b>�<��H��tH�pPH�xHH����������H��H�5b>���H��t0H�x@H��������?H9�wH�D?H���f.�H��������f���H��H�5�a>���H��t0H�x8H��������?H9�wH�D?H���f.�H���g���B���f���H��H�5aa>�l��H��t0H�x(H��������?H9�wH�D?H���f.�H�������f���H��H�5a>���H��t0H�xH��������?H9�wH�D?H���f.�H���������f���H��H�5�`>����H��t(H�8H��������?H9�w
H�D?H���H������Z���f.�H��H�5u`>���H��t�@H��H�%�H����"���f���SH�5D`>H���L��H��t�@t	H��[��[����ff.����SH�5`>H�����H��t�@tH��[�h�����[���@��ATUH��SH�����H��H���b���H��u[H��]A\�H�5�_>H�����H��tIH�5�_>H��H�hXL�``���H��t-H;hXt��[]��A\H������H���@�L;``u����ff.���USH��H��H9���H���£��H�{ H��t
蔾��H�C H�} tg�����H�U �o�oJH�oR P �oZ0X0�ob@`@�ojPhP�or`p`�ozpxp�o����H�C H��H��[]�@��ATI���USH�������tCH�L�����H�hH���,���EtC1�L���l �}H���A�����x[�]A\�H���H��H���H�uH�=����H��>H�5��H�81��ۧ��ff.�����fD����fD����fD��UH���SH��H������H�߃�t>�����H�����H�hH���S���}���	�����tH���[]���[������H�uH�=���G����UH��S���H���G����tC��u]H�}@��u$����������H����Hc�[]H�D���������1�����É����Hc�H��H�D[]ú1��������AUATI���USH��H�����H�߃�������L��l$���H�XH���7���S�T$�C��L�l$L�%Z�L��L��������yB�6������t~M��
u@��tjH��1�[]A\A]�D��Uu0�SL��L���ͯ����x�H���[]A\A]�f���t�H�sH�=x�����ñ�����=���@1�����\��H���t���f�1�L����S�8���ff.���SH������H��H��������H��t@H�5�r?H��th1�1�H�����H�|$H��4HE�H�\$�	���H�D$H��[�fDH�����t�H��ƒ���t��ue�H�؃���t�H�51r?H��u��H�=����H��H�r?�x���@H���_���H������R����H�؃���u��t����#����AVAUATI��U��SH��H��H�>H�t$H���������{�I�����H��t.���I9�t$菺��I9�t����I��I9�t
H�������tq�H�\$L9�t)��w��~ ��uH�����tH��ƒ���t��uSH���e�H�|$�+���H�|$���H��[]A\A]A^�@H���������Q����H��L��L�����H���z����%��DU��SH��H������H����H��H��[]����ff.�f���1����AWAVAUATI��USH��HH�H�t$�� ������M�l$��1ۄ�tE��H��H����H9�}IL��H�<�H�|$(@��uH�����t�������H��
H���� u�I;\$}I�D$ �DH�|$�,H���D��H��H�@I�$����I�L$A�1�H�$H�L$(H�L$H�L$0H�L$�f�H����H9��PH�$H�<�H�|$(@��� @���#�������H��H���H���@����������8E����H�|$�5���H�3�� ��H��L�{��I��H����H�|$�[H���K���K�4/L��H����H�t$(H� �BH�V�:/�K�8��@H��H���Ժ��H�t$(H��I�����L��H��詬��I�$�� ����I;l$�1I�D$ H�<�H�|$(@�����H�������������H�3E1�H�D$(�� ����L�{L�kH��� ���H�t$(H������H�t$(�X������u�L9��H�D$H�T$H�|$0L��H�=9H�D$8���H�D$(���DH�t$H�����H�t$H��I����L��H��踫��H�t$(����fDH�VH��������:/�����L)�H��H���d��H�t$(���f.��������fDH�!�>H�H�CH��HH��[]A\A]A^A_�H������G���H��ʃ����A���,���I����������ƒ�������%H	�H�I�$���f�H�|$�V���H�T$H��� ��H�BI�$�� ��H����H��H��H����DH��M�l$��1ۄ��L���1�1��s���H���������H�T$(H��� t>H�BH�I�$����fDI�$H������ �x���I�L$H�Q��u���fDH����뽾H����������H�Ğ>H�5��H�81��c�����H��H�5�k?����ff.�f�����uH�H9�tH�vH����PH�l�>H�52�H�81�����ff.���SH���3��H��[���x����ATA��U���S��H��H�����D9�uQH���DH�;@��uH�����t
�����t
H�\$蚙��H��EH���A9��H��[]A\É��D���Q�����H���d���@��H����USH��H��(H�|$��h��H�|$�H�
D�H�����H��t5H�����H�hH�������uH�ڿ�A��H��([]�f.�H�l$H�l$H�|$�̘��H��H�D$�o���H��H�D$����H�ڿH���B��H��([]�ff.���H��H��H���*���1҅�x�D$%�=@�HD�H��H�Ę�f���H��H��H�t$H�t$ �����xH��$�H��$����H�ĸ�H�D$H�D$H�|$���H�=��H��H�D$���f.���H��H��H�t$H�t$ �s�����xH��$�H�|$x���H�ĸ�H�D$H�D$H�|$著��H�=
�H��H�D$���ff.�f���H��H��H�t$H�t$ ������xH�t$pH�|$h���H�ĸ�H�D$H�D$H�|$�$���H�=��H��H�D$� ����SH��H��H�� H�������x:H��$�H�������x&H��$�H9$u�H��$�H9L$t@1�H�� [�ff.�f���H��H��H���:���1҅�x�D$%�= �HD�H��H�Ę�f���H��H��H�����1҅�x�D$%�=`�HD�H��H�Ę�f���H��H��H�����1҅�x�D$%�=��HD�H��H�Ę�f���H��H��H���z���1҅�x�D$%�=�HD�H��H�Ę�f���H��H��H���:�����x
�|$ �����u1�H����H��ff.���SH��H��H�������x
�\$�<���9�t1�H�Đ[�D�����H��H��H�t$H�t$ �����x4H�@H�|$PH�xH�D?H�ĸ�fD�S���H�ĸ�H�D$H�D$H�|$觔��H�=��H��H�D$�����H��H��H���*�����x>H�|$0�H��tH�@H�xH�D?H�Ę��ӓ��H�Ę��H�Ę�ff.���H��H��H�����1҅�xH�|$0H҃�H��H�Ę�ff.�f���H��H��H���z���1҅�x�D$%�=��HD�H��H�Ę�f���H��H��H���:�����x.�T$���uH�Ę�H�H�Ę%�H����H�Ę�ff.���H��H��H��������x.�T$���uH�Ę�H�H�Ę%�H����H�Ę�ff.���H��H��H���z���H�ĘH�H��?H�Ѓ��fD��SH��H�5��H��H��>H98t/H�_�>H�0H9�tg@��uH�����t
�����t>H�5��H��H�=-�1�����H��H����H�ĐH�[H��?H�Ѓ��fD�#���H�����t�H�5H��ff.�@AUATUSH��(H�|$����H�D$H�D$H�|$A�d�d�ȑ��H��H�D$�k���H�D$葘���d1�H���R���H��L�h�6f�H��H���t���H9�uLE�H��H���A���Ic�H��H�����L��H�E tH�uH�|$H� t�H�H���(���H9�t�H��xH��H���s���H��(H��[]A\A]�1�H���[���H�t$H�=���
��f.���H�����@��USH���H��H�l$H�t$����H�l$H�|$譐��H��H�D$�P���H��H�D$��H�T$�H���!��������H�{ H��t
���H�C �����foD$foL$ HfoT$0P fo\$@X0fod$P`@fol$`hPfot$pp`fo�$�xpfo�$���H�C H�Ĩ�[]�H�t$H�=������f���U�SH��H��(H�t$������tOH�H�l$H�l$H�|$蘏��H��H�D$�;���H��H�D$�ސ��H��H���ø����xH��(�[]�H�����H���H�t$H�=G��R��f���S�H�� H�t$H�$�T��H�D$H�D$H�|$����H�D$H��H�D$H�<$���H�|$H�$蜧��H�<$H�D$莧��H�|$H�D$�/���H�|$H���"���H��H�������xH�� �[�H�4$H�|$�z��f.�AVL�vAUI��ATI��UH��S1�H���TH����H9�}tL��H�<��X���H�D$H�|$���H�D$H�D$H��� u7H�|$H��H�t$L��H��A��H�E�� u�H�EH9�}H�E ��H�D$H�x��DH��[]A\A]A^���S�H�����H��1�H�=R���-���[H�D�fD��UH��S���H��(������H��L�L$L�D$H���H��1�����H�<$�����H��t�3���H�|$�D$�����H��t����H�t$H�T$H�=����D$���H��(H�D[]�@��UH��S���H��(�7����H��L�L$L�D$H�.�H��1�臜��H�<$�����H��t裟��H�|$�D$�����H��t芟��H�t$H�T$H�=����D$����H��(H�D[]�@��UH��S���H��(�����H�L$H��L�D$H���1����H�|$@��t/���H�t$H�T$H�=Y���D$���H��(H�D[]�@�+�����f���ATI��U���SH��P�%���H�\$��L��H�KL�L$1�L�CH���p���H�|$H��u
1�H�|$ t(���H�|$ H�D$0H�T$8���H�T$HH�D$@H�D$0H�t$H��H�D$H�=������H��P[H�D]A\�ff.����U�SH��(H�\$H�t$H�$�n���H�\$H�|$H���,���H�l$H�D$H�<$����H�|$H�$軣��H�<$H�D$譣��H��H�$�Q���H��H���F���H��H��軠����xH��(�[]�H�4$H�|$���ff.�f���U�SH��(H�\$H�t$H�$辿��H�\$H�|$H���|���H�l$H�D$H�<$�i���H�|$H�$����H�<$H�D$���H��H�$衋��H��H��薋��H��H�������xH��(�[]�H�4$H�|$����ff.�f���S�H��H�\$H�t$����H�\$H�|$�щ��H��H�D$�t���H��H�D$����H�T$�H���՛�����t�|$(����H�Ġ[�H�t$H�=�����ff.�f�US��H��H�|$H�l$�聾��H�l$H�|$�B���H��H�D$���H��H�D$舊��H�T$�H��趴��1҅�x#\$(��H�H�҃�H�ĨH��[]���H����o���ff.�@��H����O���ff.�@��H����/���ff.�@��S�H��H�\$H�t$蠽��H�\$H�|$�a���H��H�D$����H��H�D$觉��H�T$�H���e���1҅�x�D$(%�=��HD�H�ĠH��[�ff.����S�H�� H�\$H�t$����H�\$H�|$�ԇ��H��H�D$�w���H��H�D$�����H������H�� H�[H��?H�Ѓ��ff.���S�H�� H�\$H�t$裼��H�\$H�|$�d���H��H�D$����H��H�D$誈���H�����H�� H�[H��?H�Ѓ��ff.���S�H�� H�\$H�t$�3���H�\$H�|$��H��H�D$藟��H��H�D$�:����H�����H�� H�[H��?H�Ѓ��ff.���S�H�� H�\$H�t$�û��H�\$H�|$脆��H��H�D$�'���H��H�D$�ʇ���H���
���H�� H�[H��?H�Ѓ��ff.���S�H�� H�\$H�t$�S���H�\$H�|$����H��H�D$跞��H��H�D$�Z����H�����H�� H�[H��?H�Ѓ��ff.���S�H�� H�\$H�t$���H�\$H�|$褅��H��H�D$�G���H��H�D$����H���-���H�� H�[H��?H�Ѓ��ff.���AUATUSH��8���A��H�>I��@��uxH�����toH��ƒ���ub�� tMH�~VH�W����u\�1��Y�������H�*�>��H�5;�H�81��Lj���H�W��u�D@��uR�Ŕ�������t���H�=��>���H��tAL��D�����C�<3w*H�����Hc�H�>��fD���������H�=�����H��tPI�D$D��L��H�D$�;�H�|$H��$�����������C����M�N��A�e��-����H�=m��~���H��tPD��L�����I�|$H�t$�j�����I�|$H��$��P���x|��=t_��>����<ty��������������'t��\uH���
fDH��8H���>��H�5��H�81��/�����H��$�H9L$ht@1�H��8[]A\A]øH��$�H9L$h|���f.��H��$�H9L$h��f.�I�t$1��$��f�I�|$H��$��^���x���$��ޕ��9��v�����n���@I�t$1��<����Y����I�|$H��$�����1����4�����$��������HD������I�t$1����������I�t$1���������I�|$H��$�����1���������$������`�HD�����I�|$H��$��^���1����������$������ �HD��c����I�t$1�脋���Q����I�|$H��$���H�H��?H�Ѓ��'���DI�|$H��$������1���������$��������HD�����I�|$��������@I�|$��i������@I�t$1��4�������I�t$1��\�����I�|$H��$��>���1����d�����$�������HD��C����I�t$1�����1����I�t$1��������I�|$�������@I�t$1��\�������I�t$1��d��������I�|$H��$�����1��������H��$�H������fDH��$H��$������x���fDH��$�H��$�����X���fDH��$H��$�˻���8���fDL��D���P�I�T$I�t$1���������1����H�D$H�D$H�|$���H�=��H��H�D$������USH��H��H�<�>H�(H��tb���j����o�oKH�oS P �o[0X0�oc@`@�okPhP�os`p`�o{pxp�o��H����H��H��H��[H�`8>]���f.���USH���H���f���H���Χ��H�XH������H�CH��t2H�����H�pH� u+H��H���#������tH���f���H�Ę[]�@H�p��H�sH�=������f���USH���N���H��H�XH�������sH���߭�����tH������H�Ę[]�H�sH�=���x������S�H��H�\$H�t$�p���H�\$H�|$�1}��H��H�D$�ԕ��H��H�\$H�D$�r~��H�ڿH���2������tH���u���H�Ġ[�H�t$H�=0����ff.���SH��H��H�D$H�t$H�D$�|��H�\$H��H��H�D$�H���xH������H�Ġ[�H�t$H�=�����f���ATUSH��H9�s-H��I��� �H��L��H�����H�H�H9�v�;/u�H��[]A\�ff.���H������AUATUSH��H9�s}H��H��I��E1���H��L��H���z���H�H�H9�v.�;/u�H�CH9�v �{/t�2f.��8/uH��H9�u�H��L��[]A\A]�@I��H���I��H���E1���ff.�AWI��AVI��AUATUSH��H�|$ H��H�t$H�L$D�D$@D�L$D�،��I�>I��܅��H�D$H�pL?H�D$(H���_I9���H�D$pH�D$0H�D$`H�D$8L��I��H��@H�T$L��H��蘈��I��H��I��I)�I9�v�8/t	�A�}/uI��M9�u�M��I����H�D$H�8I��u	�;.�D�W���I��H�D$ H�I�$�� u{H����H9�|yH��L��L��詑��H�|$L���,���H��H����H�|$(蕹��H9���H����H�L$H�L��M9��(���H��[]A\A]A^A_�fDI�D$H9�}��H�5�{L���*����n���D�;.t�H�D$H�8�2���fDL���`���H�pH� tH�pH�T$0�����������$�%�=���L���h���H�|$H��H��蘞��H�D$L� �/����{.�����H�D$ H�(H��� uWH����H9�����H��H�H�T$H�4H���v����H��H)�H��H�D$ HD�H�0H�D$H�8H��,������H�GH9������H�H��H�D$`H�|$(����H�|$L��H���ޝ��L����H��H�PH� tH�PH��H�T$PH�L$H� ���H�L$HH�T$PH��� ��H��I��A��J�H9����:/��H���
@�8/�gH��H9�u�I��I)�M��L�D$H��L�t$H��H�\$E1�D�D$@�}H�|$ A��L��H���m���H�D$8H�D$hH�;H�D$`�Ɛ��L��L��H���������	H�=5��b���H�D$(H��H?����L�Y�9����{���8���D$@�����D$D���}��H�D$L� �<���H��H�L$P���H�L$PL�D$H1�H�D$XH��L��H�L$`L�D$P���H��H�D$HH�D$H�8脔��L�L$XH�L$HL�D$PI9�tH��H��L��L�D$H�-���L�D$HH��H�D$H�H�D$ L����H�����H�����L��H�=��豺���z��L��H�=���(藺�����H9�s1��?/��H��w������UH��SH��H��H� u/H��Ι��H��t'H�p H��轹��訦��H��H��[]�fDH���荦��H�Fz>H��H�5��H�81���y��f���SH��H�=���u��H��tH��H��[�[���H�z>H�5ͺH�81��y����AWAVAUATUSH��HH�|$�H�t$�T$H�D$0譪��H�D$H�D$8H�|$�iu��H��H�D$�\���H�|$H�D$(H��t!H�D$H�D$8�=u��H��H�D$�0���H�D$H�D$(H��� �L�l$(H�D$(H�(I��H����H�|$(L�L�����L9��BA�}/t�6D�;/�H��H9�u�H�|$(H��1�H��L)�E1�1�茽��H�D$8H��L�/A�� �|I��L�wA��L�l$ M��+��L��L��H���}���I9��$����L�d$8L�t$ I��M��tE1�A�H��L��L��L������H��tE1�A�L��H��L��L�����D�D$L��H��L��A�L�����H�D$8�u(H�����t H��у������H����H��H[]A\A]A^A_��I9���H�|$H����L�/A�� ��L�wL�o�+~��M�L��M9���A�>/t���}/�~H��I9�u�L��H�|$1�L��L)�E1�����H��H�D$8L�/A�� �����DL�wL�o���H�D$(L�hH�D$(H�h����I��L�wA���_����I9��	����H�D$0H�D$0H��� ��L�l$0H�D$0L�0I��I��A��H�|$0O�|5�<}��M9���A�}/��L����8/u{H��I9�u�H�|$0L��1��3���H��H�D$8���fDH�pH�|$8L)�H�t$ �z������DH�D$0L�hH�D$0L�p�n���f���H��.���DI��I��M)��D1��
���M��E1��l���H������I���q���ff.���H��H�6E1�H��L�D$�2���H�4$H�|$1�����H���ff.�f���H��H��D1�H��L�D$��H�4$H�|$����H���f.���AWAVI��AUATI��UH��SH��(H�t$H����H�A�L��/u�H�����/t��u@H�D$����L�{��H�L$H��tH�H��t	H�D$H�EH��(L��[]A\A]A^A_ÐL�L��H��H��H�D$�~��I��H�����8/uf�I��A�?/t�H�t$L��L���f���I��L)�H�D$M9�s&A�L��<.t�9f��<.u)H��I9�u�H�D$�H���fD諁������fDE1���H�t$<.H��L��LD�����H�H�I9�w�L��L)�M��HDD$���I���R������AW1�H�6CAVAUATUSH��XH�\$0H�L$(I���#������H�|$(�@���H�t$0H��H�D$(H��tR�8���H��H��t@H�T$(H��� uVH��H�z��H�D$@t�?uVH������H��X[]A\A]A^A_�DH�|$(�y��H�T$(H�D$0H��H��� t�H�BH�D$@H��t�H�z�?t�H�T$@H�t$8H��褳��L�d$@I��M����H�|$0��H�|$(L�d$8H��� ��H����L9��QL��L��趱��H�t$(H��H�$腫��H�$��5���H������)���H��ʃ����H���
����H�T$(�������H�������H��փ��������H	�H�����H���؇��H�|$0�n����_���f�H���(o��I��H�D$0L�A�� �I��A��L�d$@M����M����O�H�D$8H��L��L�l$$L��L�L$L��L�$H�D$�t���Hc|$$L�$H��H�T$H�D$L�L���t���L�L$��*��M9�}AL�d$8M��tnH�\$HH�|$(H�D$0H��� �{���H�G�y���L�d$8�u���fDM��K�'L��H��M)�L�L$O�/L��L�$苓��L�$L�L$I9���L�d$@L�d$8�DL�H�����D$HD$$H�I9��O����|$.t|O�4'L�4$M9�syM��fDH�4$L��H��L���f���9D$HcD$$MD�I�L9$$w�M)�M������D��������fDL��L��L��M���oq�����N�������L�d$����L�4$�f���ATUSH��H�|$誏��H�|$H�D$�+m��H�|$I��H�/�� ��H�����Xv��L�L��I9�sA�<$/t�@�;/uH��H9�u�H��I�L$H�S�H��H��H9�LG�H����y��H��HD�I9���L)�L��H��胮��H�t$H��H���S�����u!H�����tH��Ѓ���(�H��sH��H��[]A\ÐH�o�J����H�D$�u�H�����t�H�������t�%H	�H��D�H�=?�诠��H��H��H��[]A\���H�����@��SH��H��H�t$�J���H�t$�H�D$���H�|$H��詏��H��H������H��[����AWAVI��AUATI��USH��H��H����H�H�,L��H��H���wx��I��H����I��A���/t�L����.uH�����.t�E1��u$�m��/t+L��H��H���U���H�H����t��.u�I�����M��t#M��t>M9�t9I�EH��L)�H9øHE�I�H��L��[]A\A]A^A_�M��t�f�I�����I���J���D��z���
���fD��SH��H�� H�t$�ڌ��H�|$H�D$�[j��H�|$H��H��� ��H����H�D$�s��H�t$H��H���v���H�T$H��~kH)�H�|$H��英���uAH�����t9H��ʃ���~RH�T$��u"H�����tH��փ���t��H	�H�H�� [�H�G�w����1�1��y��H�� [Ð�H��r����H��H��H�=��?�:���f.���1��?/�����AWA��AVI��AUATUSL��H��HH�|$8�L$(�n��H�|$8H�D$ �H���H�|$8I��L�'A�� �pI��A��K�D%H�D$�Ir��L�H�D$A�� �TI��H�kA��M��H�D$81ɉL$�uH������jA�}~u	E����L���”������I�����L$(I��D���L������H�t$8H��茄��H��H���qv��L�A�� ��H�kL�cJ�t%H��H9�s�}/t�@�?/uH��H9�u�H��H�T$M���©��I���aDM��DI��A�>/t�L��L)�I��I9���L��/N�|-H���/���L��H��贗��H�t$8H���׃��H��H���u��L9�sA��/�4M��H��I)�L���{���I�UL9��~A�/H��H��H�T$ �Z���H�T$ I9��,H�CA�GA�M��H�D$(���t1��.����/��H�T$H�t$L���X���H�I�A���u�M9���1�A�?@��L�H9���}/H��t�fD�x/uH��H�PH9�u�I9�����INjD$��t%��u H�����tH��ƒ����)��H�L��H��H)��o���H�|$8H��蒂��H�#���H��HH��[]A\A]A^A_�f�M�M9�s�L��H��H�k�)z��H� �H���H�k�?���A�EM�}</�w���oH�T$H�t$L���Ur��I��I��M)�M9���L��L��H���u���H�#���L��H��賕��H�t$H����s��H��H�����H�{H� tH�{赑�����UH�fh>H�8M����H��L�L$8H�|$M��D��H�@�1�號��f�H���H��������D��D$�x���f�M�I9�v�L��H��H�k�	y��H� tH�kN�|-���f�M�L9�s�L��H��H�T$ H�k��x��H� H�T$ tH�kN�|-�J����A�U�����/�I���I�FA�VM9���I���F���fDM9�rM�nA�VM���*���f.�L��H��H)�H�rH�T$ �9���M��H�T$ M)�J�DL9�s,I��L��L��L�\$ L��轉��L�\$ M�A�/��M�L9�s�L��H��L�\$0H�T$ ��w��H�T$ L�\$0H� �,H�kL�|�f���.�������/�^����������L�g����H�kL�c���L��H��M)�H)�H�rH�T$�V���H�T$J�D2L9�r:�M�L9�s�L��H��H�T$H�k�$w��H� H�T$tH�kL�|I��L��L��L��M�計��L��H��H)������DM�M9�s�L��H��H�k��v��H� ���H�k���I��H�kA��M���c���@H�l$(����fD1�H��M���{���A�}tM�uH��E1�E1��"�����DI��M��I)�I�U����DI��A�VM������L�A�� �oI��H�kA��M��N�|%�D$�[��������H��H�D$8H��H�D$�&r��H��I���u��H�L$ I��I��H�D$H9�tfH��L��H���l��H�|$H��I����}��H�L$ I��H�D$H9�t6H��L��H���x���H�0I��� �)H��L�H��I���M�M9�r�L��H��L�L$L�{�4u��H� L�L$tL�{L��L��L���Ć��H���Ly��I��t
1�L���t��H�t$H���o��L�K�4'A�� uCI��H�k�D$A��M�����H�E�����H�5�1��Ic��H�kL�c���H�kL�c�D$�S���A�H�T$L��H���m��H��t(M�nA�VI��M���*����H����������A�/L����L�HL�`�����USH��H����^��H��H��tH���^��H�þ1�讔��H�޹1�I��H�����H�0H��� uH����H����s��H��H��[]�f�H�p��f.���H��H��t0H��L�D$H��11���m��H�t$H�<$����H����H�8�����H���ff.���UH���SH��1�H�����H��H��1�I��1�����H�0H��� uH����H���s��H��H��[]�H�p��f���USH��H���]��H��H��tH���}]��H�þ1��n���H�޹H��I����V���H�0H��� u H����H���r��H��H��[]��H�p��f���H��H��t0H��L�D$H��01��l��H�t$H�<$�|}��H����H�8��c}��H���ff.�S�H��1�谒��H��1�1�I���[��ff.�AWAVAUATUSH���H�D$H�|$H�ljt$H�D$��]��H��H���ى������H�l$H�M�� �'H�MH��L�4L�d$01���f��I�ŋD$���D$�;�L��L��H���rj��I��H��t�E/M���=I9��4A�L��L��H�޿�m���A�Dž�u��D$H�����@u�H�����D$����u�H��輗������L��L��H����i��I���t���fD�ӌ��H��I���ȍ��L��H����t���H�5�\H���r��H��H��H�]�Zy��H�MH�l$�� ��H��������@�H���+���������L$H���H��H�H�=7��ɋL$HHD�1����H��u\H�D$H�D$(H�D$�A�H���D��[]A\A]A^A_�DH�]�H����T$�L$H��tH�H��H�=ʟ蕠���E/�H��H��H�=��1��w�����D��H��toATUH��S��k��L�d�
@H�kI9�r?�:H���n��H��H��H��ID�H��H)��2����H���U�����u�[]A\�@[�]A\�fD��f���UH��1�H�����SH�=����1�H���9\�����t$H�É�����H��޿�ˉ����t���0u��H�Ę��[]�@�D$1�%�=�@����f.���AWA��AVAUI��ATUH��SH��h�Z��H�}���8~I��M�e�5H���}����Å�uA�>.uAA�F<.��</u0E��~k1�L���A�����u]H�>W>L��H�5��H�81��\��f�H�D$HH�D$(H�D$X�L>��H�D$HH���FfD1�H��h��[]A\A]A^A_�DL�����I��M�4$A�� uxI��A��H�uH��t�1�M�|$�fDL��L��H���y���H�t�H��t�L���Gv��L��I�$ tI�|$�@�����t�I�uL����]���I�E�^���@M�t$�f�L������I��H�E��~=A��u7I�����t.�ƒ���t$��tH�V>L��H�5V�H�81��t[��@M�t$�� tM�t$M�eE�������1�L��������������DI�}����I��H�@H��� ��H����H�D$ ��v���H��I���Җ��H�uH�D$H���JL��\$<H�L$PH��L�l$0H�D$I�FH�$H�l$H��L��M��1���t��A���@H����H9���H��H�<�H�l$XH�|$PD�����H�H�D$P�� ������„�uPL��M��1�1�H���N�H�<$I� tI�~�x�������M��uH�|$tI��ƒ���t��I�H��H�D$HH��� �S���H;X}%H�@ �X���A�F���f�H�x���o���H�t$ L������H�D$H�L$H�D$H�4�H������\$<1�L����j��H�D$(H�D$XH�D$H���L�l$0L��I�u����\$I�E������I�D$H�D$ �8���@��UH��SH��H���k���H��H��H�߉�[]鈜�����AVAUATUS��H��0H�|$H�|$�_V���8~H����H���k���A�ą�tLE1��~H�|$1��A������:H��������tXH�\$E����H��0H��[]A\A]A^���}.u�E<.u�E</t�H�D$H�D$(�#:��H�D$H����1�H��0H��[]A\A]A^�H�|$�����~B�u>H�����t6H��у���t)��t$H��H��R>H�5ۚH�81��W��f�H�t$H���c���H�D$H� uH�hA����fDH�hA������E1�L�d$ �Ns���H��H���n����K@H����I9���H��J�<�L�d$(H�|$ �����H�H�D$ �� u2����„�u1I��H�D$H��� u�L;h��H�@ �@H�x�„�t�H�|$I��1�1�H��L�u��H�E tL�uL���6�����t���~1�H���T�����tlH�t$H���C���H������H������H��H���%���H��0H��H��[]A\A]A^�f�1�H��1���g���,���H�Q>H��H�5b�H�81��dV��L���K���ff.����SH��胉��H��[���Ș�����ATH�=3�US����L�%MT>H��Q>H�=F�I�4$H�����H��V>H�5]O>�H�=��H������H�5����H�=�r�����H�5���H�=�r����H�5���H�=Ϙ�ў���H�5U��H�=��蹞���H�5=���H�=��衞���H�5���H�=��艞���H�5-��H�=y��q����H�5����H�=p��Y����H�5���H�=h��A����H�5��H�=\��)����H�5
���H�=U������H�5����H�=�����H�5-���H�=+�����H�5����H�=�x�ɝ���H�5=���H�=�豝���H�5պ��H�=�虝���H�5}���H�=ۗ聝���H�5���H�=ɗ�i����H�5
���H�=���Q����H�5����H�=���9����H�5]���H�=���!����H�55��H�=���	����H�5���H�=}����H�5���H�=m��ٜ���H�5����H�=]����H�;�H����H�5����H�;�H���H�52��ۃ��H�;�H�L��H�5����H�;�H�����H�5�襃��H�;�H�6���H�5�芃��H�;�H�����H�5��o���H�-K>H�;�H�5��H���Q���H�;�����H����H�5C�6���H�;�����H���H�5������H�;�����H�l���H�5{�����H�;H�����H�5\����H�;�����H�����H�5H��΂��H�;�H����H�5@�賂��H�;�H����H�5�蘂��H�;�H����H�5��}���H�;�����H����H�5�n�b���H�;�����H��H�5�Y�G���H�;�H�x���H�5���,���H�;�����H�m���H�5������H�;�H�����H�5�m���H�;H��K>�����H�5z��ہ��H�;H�qJ>�����H�5k����H�;�����H����H�5^�襁��H�;�����H�f��H�5L�芁��H�;�����H�K��H�5=��o���H�;�H�@�H�5+��T���H�;�H���H�5��9���H�;�H�:���H�5������H�=7N荂��H���c��H�;H�5ݔH��H��?茖��H�;H��?H�5��v���H�;�H���H�5��軀��H�;�����H�����H�5�U蠀��H�;�H�5���,����H�=���k]��H���b��H�;H�5i�H������I�<$1�H���H�5E����H�;1�H�l��H�5�����H�;1�H�����H�5{����H�;1�H����H�5x��p��H�;1�H�����H�5~��X��H�;1�H��H�5=��D��H�;1�H�ؔ��H�5}s�,��H�;�H�}���H�5����H�;�H�R���H�5��~��H�;�H�w���H�5k��~��H�;�H�<���H�5d��~��H�;H�5[��q���I�<$H��H�3�?讋��H�='�?�H�5:�趔��H�=�?�H�5)�螔��H�=��?�H�5�膔��H�=߀?�H�5��n���H�=ǀ?��H�5��V���H�=��?�H�5��>���H�=��?�H�5ϒ�&���H�=�?�H�5������H�=g�?�H�5�����H�=O�?�H�5���ޓ��H�=7�?�  H�5���Ɠ��H�=�?� H�5t�讓��H�=�?�  H�5b�薓��H�=�?�H�5P��~���H�=�?�H�5A��f���H�=�?��H�51��N���H�=�?�H�5 ��6���H�=�?�H�5�����H�=w?�H�5�����H�=_?�	H�5����H�=ϔ�2P��H���J_��H�=3?H�5ёH���Ē��H�;1�H���H�5�{�||��H�;1�H�Б��H�5Oi�d|�������H�5��H�=���w��H�}E>H�;H�5<�H��ӑ��H��I>H�5%���H��H�躊��H�;�H�;���H�5@S�{��H�;�H�Т��H�50S��{��H�UL>H�;H�0���H�;�H����H�5HT�{��H�;1�H���H�5��{��H�;1�H�#���H�5Ր�{��H�;1�H�ˣ��H�5Ȑ�o{��H�;1�H�S���H�5���W{��H�;1�H�˙��H�5Ex�?{��H�;1�H�s���H�5Ah�'{��H�;1�H�+���H�5K<�{��H�;1�H���H�5<<�z��H�;1�H�����H�5'���z��H�;1�H����H�5���z��H�;1�H�����H�5��z��H�;1�H�Û��H�5�n�z��H�;1�H�۞��H�5��z��H�;1�H�s���H�5ҏ�gz��H�;1�H�+���H�5B��Oz��H�;1�H���H�5?��7z��H�;1�H�����H�5E��z��H�;1�H��H�5��z��H�;1�H����H�5OQ��y��H�;1�H�����H�5ȍ��y��H�;1�H�?���H�5���y��H�;1�H�����H�5��y��H�;1�H����H�5���y��H�;1�H�����H�5���{y��H�;1�H�/���H�5���cy��H�;1�H�����H�5���Ky��H�;1�H�����H�5���3y��H�;1�H�W���H�5���y��H�;1�H�����H�5v��y��H�;1�H�'���H�5o���x��H�;1�H�ߕ��H�5����x��H�;1�H�����H�5E��x��H�;1�H�����H�56��x��H�;1�H�G���H�5��x��H�;1�H�?���H�5
��sx��H�;1�H���H�5���[x��H�;1�H�����H�5��Cx��H�;1�H�7���H�5܋�+x��H�;1�H�ߓ��H�5΋�x��H�;1�H�����H�5���w��H�;1�H�/���H�5����w��H�;1�[H�֒��]H�5��A\��w�����AUI��ATU1�S1�H��H��>?H�L��8f.�I��$�H9�vhI��$�H��t6H��H�L�H;)r��H�D�H��H9(vvH��u�H��H�H�H9�s�(H��H�H9�wH��H9�w�H���[]A\A]�H�x0Hc@H�ͺ(I�MH��H�4�A�U���P���H���[]A\A]�H9�v�H��H����H��=?H�H��8�`�ÐH��H��t�ʃ���t)��t
1�H���������w���@��u�H�����t΀�t��ff.�H���������H��H��H%�����?L�H��H��H��H��H����?H��M�I�HHH��r/H�I��A��`I��`u+�x���H��I	��H���H����I��H��I��A��A��E��A��Mc�L	�H�A��u˾��H��I	��H����ff.����ff.���H�=<?H�H��8H������H�<?H�H��8�Q�Ѓ���QH��?H��?�����H��H�VH�NH��H�8��f���H�H��H1��ff.���H��;?H�H��8��@H�H�Ѓ��f.���H�};?H�H��8ǀ@HǀP����H�M;?H�H��8ǀ@HǀP��SH�GH��H��H��H9W wH�C [�fDH�H��H���H�CH�S�TA��H�CH�C [�f.���H�=E?1�H�5��GS���S�GH������GH��:?H�8H��(t��Hi���H��H���HCX�f��H*��
 ��Z�Y�f/����H,��Y��H��k>H9�HB�f/�H�����H,�H��k>H�C(H�CHHǃH9�HB�H�� H�C8H�C@H�C0H��t1H�P8H��u�@H��H�BH��u�H��H�C H�H�C0H�C [���\��H,�H��?�j���D�\��H,�H��?�&���DH�ƒ�f�H��H	��H*��X����f.�H�P8�f.�SH����j>H��tH�޿�>J����tJ��j>H��1���{��f��u!f�f���H*D$�YO��H*$�X�H�Đ[�@f�f���H*D$�Y��H*$H�Đ[�X��fD��SH��H�?1�H�5���P��H�;迈��H�{[鵈��D��H��H�w�WH�?�Ic���H���ff.�@���~t1��H��H����1�H���ff.�f���PXH�5.H��H�XA>H��H�81���@��ff.���H��H��H��A>A��H���H�81�腀��1�H���ff.���H��H��H�׺��a��1�H��ÐUH��H��SH��H�==?��_��H��H��t
�9?��t
H��H��[]�H��H��H�=k�1��t���H���?H��[]�AUI��ATI��U1�SH��(�$�T;��H��t�8H��uH��(��[]A\A]�f.�H�t$H����a���;t6H�D$�8u,f/$���D$��A���\$H�����u?1���A��1�H�����t�H�Q@>I��L��H����H�81��5���i���H�)@>f(�L��1��$�AM�H�!�H�8��~���0�����$�6A���$H�����u�A]������H��?>�AMf(�L��H���H�8��~���$�ff.����H��H�5�=�W��H�@H�@H��H��H��xH�D?H����H���oX��ff.�@��SH�5��=H���kW��H��H�)5?H�H��8H�$�NU��H�{H��H�5�)H�D$�M��H�D$H��[�ff.���SH�5d�=H���W��H��H��4?H�H��8H�$��T��H�{H��H�5p*H�D$�&M��H�D$H��[�ff.���UH�5�=SH��H��H�m4?H�H��8�V��H�5O%H�xH����L��H��H��[]�f���UH�5��=SH��H��H�4?H�H��8�FV��H�5/&H�xH���L��H��H��[]�f���UH�5d�=SH��H��H��3?H�H��8�U��H�5'H�xH���3L��H��H��[]�f���ATUSH�����������؃�����H��������H�{�9b��H��H�5��=I���wU��H��H�=��L��H��1��Pk��H�}H��H��tH��H�5��K��H�CH� tH�C�#H�ߺH�54��]O��H��[]A\�DH������q���H��t-H���b���H��:>H�8�W���DH�):>H�8�C����H�6>H�8�3����H��4>H�8�#����H��9>H�8�����H�Y<>H�8�������ATH�BI��UH��SH��H� tH�B�8#���H�5�iH���N��H�CH� ���#L��A��u
I��������K��I��L��H����[��H�ߺH�5N��@N��H��@��u	H�����uf�IK��H��H��H���[����u4H�����t+H��Ѓ���p�H�����H����[1�]A\�H�C�O�����Ӂ��H���fD�Á��I���L���H�5�?H���M������@A��u1I�����t(I�$�΃���t��H	�H��Ѓ����h���@���m���H������`���H�E�������N���%H	�H��>���A���%���I�����u��������AWH�?AVAUATUSH��H�e0?H�L$H�H��81��E��L�l$����L�d$H��$L��f�H�H��H9�u�H���H���.H���1�L��1ېH�LcAH�A0K��H�4�H9�r�-fD��H��(H�D�H9�vH�H��u�H��(H��H9�w�H��L�I9�u�I����I�EH��tH�@������H��������?H9��YH�l-H�=M?H���$��s��H�|$H��H���Y��H��������?H9���H�\H�=?H�����s��H�|$H��I��������?H��H�-���aY��1�M�4�H�YH��w`�HcD�H�>��DH�=�?H����Ks��I��M��t!K�T6M9�wIH�|$L���Y��H�� ��H��M�4�H�YH��v�M��t�H�t�K�T6H��I��M9�v�fDL���xQ��H���H�=q?H��u�H�=����#}��H��H�Q?�d���@H�=I?H���P���H�=Y����|��H��H�%?�0���H�=!?H��� ���H�=!���|��H��H��?����H�=�?H����H�=���|��H��H��?����H�=�?H�������H�=���_|��H��H��?���H�=�?H�������H�=w��/|��H��H��?�p���H�=�?H���`���H�=@��{��H��H�]?�@���H�=Y?H���0���H�=
���{��H��H�5?����H�=1?H������H�=�~�
�{��H��H�
?���H�=	?H������H�=�~�	�o{��H��H��?���H�=�?H�������H�=]~��?{��H��H��?���H�=�?H���p���H�==$��{��H��H��?�P���H�=�?H���@���H�=�}���z��H��H�m?� ���H�=i?H������H�=�}��z��H��H�E?��H�=A?H�����H�=�}��z��H��H�?���H�=?H�������H�=M}��Oz��H��H��?���H�=�?H�������H�=}��z��H��H��?�`���H�=�?H���P���H�=�|���y��H��H��?�0���H�=�?H��� ���H�=�|��y��H��H�}?����H�=y?H����H�=k|��y��H��H�U?����H�=Q?H�������H�=2|��_y��H��H�-?���H�=)?H�������H�=�{��/y��H��H�?�p���H�=?H���`���H�=�{��x��H��H��?�@���H�=�?H���0���H�=ˀ���x��H��H��?����H�D$H��[]A\A]A^A_�H�=����x��H��H��?����A��uI�����tA�E�����A���H��*>H�5�zH�81��2��f�H�=�z��?x��H��H�-?�)���H���XL��H���	���H�=�z��x��H��H�?���H���(L��H�������y��H�D$�u���L�����L��H�5_�H���gA���V���1��.���ff.���H9�twATH��(UH)�H��SH��H��L�d�(H��f�H�\$H�|$����u'H�uH��tH�|$�Jd��H��tH�|$�S��H�EH��(L9�u�H��1�[]A\�f�1��ff.�f���H�-(?H�H��8��@��tpH��XH��tdH��HH�Rf�H��H�AH�Tf��XH��0H9�u�H�0fH~�H9�u�>��fH~�H��<������tH��u�H���H��H��H���f�AWAVAUATUSH��H�s'?H�L��8A��@M��X��tM��uH��[]A\A]A^A_�H��I���H��1�H�=�yE1�L�-��C_��H��H��ӾxH�=W��=��H��H���f�K�v�
t�I��L��H��I�HL���YHH�H(H�P �@L�@���^��H��H���M9�r�H��[]A\A]A^A_���H����u,H�=->H�8H�|$H�5�'>����H����H�L$H��41��;��H�|$��ff.���S1��S��H�5�'>H��H�����H��[�ff.�f���U�SH��H��H��%?H�H��8�8`��H�������H������U����	�H�؈UH��[]�ff.��H���������H���?H%���L�H��H��H��H��H����?I����1�H�H��rH��A�H$�H�H���H���������H����?H%���H�0H��H��H��H��H����?H����1�H�H��rH�рN$�H��ff.��AWAVAUATUSH��H��8H��� ��������H�D$�a��E1�L�sL�l$H�L�d$H�-;�H�D$ �v@H����I9���L��J��H�PH� uH�H H�QH�H�T$H� tSH��H�8�t��L��L��H��H��D$H�D$ ��O���D$��u2I��H��� u�L;{}0H�C �f.�H�@ �f.����j����@H��8[]A\A]A^A_ÐH�~���������H��H�t$H�|$��ht��H���P?��H�D$����fDH����AWAVAUATUH��SH��H��(H�D$L�|$H�D$�Cf�I�$H��(A�n A�FH�H�P8H�SH�X8L��H��H���M��tWI��H�CL�kI�����M�4$H��tH�{ ��H��8H�t$L��H�\$��9����t�H�t$H������o����H��([]A\A]A^A_�f��ff.�@ATI��U1�SH��0�fDL����H��H�3H��u�[]A\���US�H��H�R"?H�H��8H����]��u����]H��[]�H��_?�8u�@H�"?H�H�B�������t�H��XH�B0�<$H��H�D$H�@ H�T$H�D$H�D$ H�D$(H�t$0H�D$@4�D$8�*H��X�ff.�@H��@��u H�����tH��ƒ���t
��u%H����qZ��H�5Z}H��H��*>H�81��f*���*���H�5!�>SH��H��t�H���s\����t$[�D�H�=���o��H��H��>��H���Sd��H�5}H��H�R*>H�81��)�����@��tF������t@��uH��H��H�����t�DH�@H�x	H�D?��C%��H���e��H��H��H��H���f���H��tOSH��H��H�?H�D$�l��H�{HD$�l��H�;H�T$H�5Q�HD$�8��H�D$H��[�@1��DAWAVAUI��ATI��USHc�I��H����uHcA����A����I�������A�E����������H�5.Q>�H����H�=r�sn��H���d���H�=rH��P>�Sn��H����c���H�=�qH��>�3n��H����c���H�=�qH���>�n��H���c���H�=��H���>��m��H���c���H�="�H�`�>��m��H���kc���H�=�qH�8�>�m��H���Kc���H�=nqH��>�m��H���+c���H�=UqH��>�sm��H���c���H�=�OH���>�Sm��H����b���	H�=qH���>�3m��H����b���H�=qH�p�>�m��H���b���H�=�pH�H�>��l��H���b���H�=,�H� �>��l��H���kb���H�=�pH���>�l��H���Kb���H�=�pH��>�l��H���+b���H�=vpH���>�sl��H���b���H�=^pH���>�Sl��H����a��H�5�N>H�]�>H���>���GDH9���I���uH��L���G��H�5��>H��%H9���H�;�>H��uH�'�>����L���NG��H�5W�>H�ځ�@H9��EH��A�L��IEׁ� �G��H�5+�>H��H9��H��L��IE��F��E��u@H�5��>H9���I��t*A�$H���>��t<H�k�>HE[�>L���F��H����L��H��[]A\A]A^A_��H�5�M>L��A�H���w���H�g�>�������H�O�>�������H�7�>�������H��>��������� �HE��>�y����H;-9�>tH;- �>���� H;-�>H�������@1�H���?���H���[]A\A]A^A_ÐH���>���j���H�q�>���Z������HE��>�E���H�a�>�����H�I�>������H�1�>������H��>����������HEH�>���H�>H�56mH�81���#����@H���*���f.�A�$H���>���U�����H���>HE��>�>���H���M��H�5]mH��H��#>H�81��q#�����SH��(H��H�A?H�D$H�L$H�H��81���.��H�T$��t H��tJH��DH�{1����H��[�f���t��u	H�����u-H�>H�5@lH�81���"��D�j��H��H�D$말�����t���t���ff.�@��AT�I��U��SH���E����u0I�|$��H��u[�]A\��H��H��[]A\�A�������@U��SH���c��u�\����t+H��H�= �[�M��H��">H��H�5H�81��"��H��">H�پH��kH�81��a����%a��DPXH�=u�"�H��H��">H��:a�����`��AWAVI��AUI��ATUSH��(����I��1�M��tA�<$uH��([]A\A]A^A_��H�t$1�L����@��H�l$I���]�K���&v}1Ʉ���H�L$�Ih��H�L$H���H��H�l$�]�����DX u��'#��H������$M��L��H�iH��!>�H�81��`��1��J����H��H��H�H����H�@@H���H�H!��I���H�E�H��H�D$�]H��H��������������Nf�H��u+L��M��~[�^"��H������I�����@H��������1�H��H��H��I9��I9��L��H��I���D�"��H�������1�H��([]A\A]A^A_�DH�E�@H�����H�D$�]H��H��������L����DH�E�H����H�D$�]H��H�������������G���f�H��M�M��L��H� >j�H��rH�81���^��X1�Z�G���H��>M�M��L��H��h�H�81���^�����D�!��H���������M��L��H�!r����@��AWAVAUATUSH����5��H�D$H��?H�L��8A��@����I��X��I��������?E1��@fH~�H��<�������HI��H����H�=�>H�����Y��L��H��H���b?���CH�0fH~�H9���fH~�H��<��������I��H����H�=��>H�����%Y��L��H��H���>��H�{ L�l?L9���H�=n�>H���U��X��L��H��H����>��H�{(L�l?L9�� H�=1�>H�����X��H��L��H���>��H�{H�\?L9���H�=��>H���k�X��H��H��H���X>��H�=��>H���(�cX���H��I��H���/>��H�|$H���X��M9�X��K�dH��I�H�d��D�+H���vd��D���DH���q�H�=��>I��H�����W��L��H��H���=���CH�0fH~�H9�����*��H�=2�>I��H������H�=Kf��a��H��H��>��fD��)��H�=��>I��H���>���H�=f��a��H��H���>�����H�=-f��a��H��H�}�>���H�=�e��oa��H��H�e�>�u����5��H���X���H�=�e��?a��H��H�=�>����H�=le��a��H��H�=�>�����;5��I������H�=\e�
��`��H��H���>����5��I���n���H��I��I��I�����@H��I��I��I���
���@H�D$H�D$H��[]A\A]A^A_�AVAUATI��USH��H�� H�?L�l$H�H��8H���M��L��L�d$H�H�DH�D$�b��I�ĨuH�������H��8H�T$H���G������L�t$M�.A�� u^I�^ M�nM����1��f�H��H��I9��H�;1�L�����x+��H��t�L�#H�� []L��A\A]A^�I��I�^A���f�H��ƒ����T���H�€�I�|$I�$�>������5���L���N���(���L��L���T��H�� L��[]A\A]A^�DL��L�d$��`��H��8H��H�@H���46��H�� L��[]A\A]A^�@��ATUH��H�5o�=SH���2��H��I���;�H���3�I�t$H���&���I�t$H������I�<$H��H��H�H���M��I�|$H��H���*��H��[]H��A\����S1�H�'���H��H��L�D$�$��H�<$����t!H�|$��H�t$H�<$���H��[����H�<$H��H�D$�z���H��[�@��H;�rH��H;�wsH���������H��H��H��H��H��H��H)�uOL���I9�vCI�L���H��M��M�H0L9�r#�*f.�H�H��M��M�H0L9�sH��H9�r�1�ÐH��L��f.�IcPH��I��H9�rH�QI���fD���tŃ��H�@tHH��H%���H��A$t6H���������H���?H��H��H��H��H��H����H���q���H��H���y9��1�H���f���H;��I��H;�wsH���������H��H��H��H��H��H��H)�uOSI���H9�v>H�M���H��M��M�Q0L9�r�-DH�H��M��M�Q0L9�sH��H9�r�1�[�1��DH��H��f�IcQH��I��H9�rH�QH���fD���tŃ��I�x@tEH��H%���H��A$t3H��������́�?H��H��H��H��H��H����H���t����S8��1�[�ff.�@��H;��I��H;�wsH���������H��H��H��H��H��H��H)�uOSI���H9�v>H�M���H��M��M�Q0L9�r�-DH�H��M��M�Q0L9�sH��H9�r�1�[�1��DH��H��f�IcQH��I��H9�rH�QH���fD���tŃ��I�x@tHH��H%���H��A$t6I���������H���?H��I��H��H��H��H����H���q���H��1�H����CJ��1�[�ff.�@��H�:H;��|H;�wsH��I��H���������H��H��H��H��H��H)�uLSH���H9�v;H�L���H��M��M�H0L9�r�*f�H�H��M��M�H0L9�sH��H9�r�1�[�1��DH��H��f�IcPH��I��H9�rH�QH���fD���tŃ��H�@tHH��H%���H��A$t6H���������H���?H��H��H��H��H��H����H���q���I�z�N��1�[����L�I;���I;���H��I��H���������H��H��H��H��H��H)�u`USH��I���H9�vBH�DI���H��L��M�Q0L9�r!�8�H�H��L��M�Q0L9�s,H��H9�r�H��1�[]�1��DH��H��f.�IcQH��I��H9�rH�QH���x������t����I�x@tEH��H%���H��A$t3H��������́�?H��H��H��H��H��H����H���d���H��I�{�LM��H��1�[]���UH��H�5a�=SH��H��?H�H��8�*��H��H�T$H�x���������H�t$H;�rzH;�wqH���������H��H��H��H��H��H��H)�uML���I9�vAI�L���H��I�<�L�G0L9�r�4@H�
H��I�<�L�G0L9�s,H��H9�r�@�H��H��[]ÐH��L��f.�HcWH��I��H9�rH�PI���}������t����H�{@t�H��H%���H��A$t�H���������H���?H��H��H��H��H��H������H���HD��b���ff.�f���H���s����H���HE�H���ff.����H�-?ATUSH�H���H��8�H��H�H����H����H���������ȃ�����H��I��H���������H��H��H��H��H��H��H��H��H)�H����H;�r[H9�rRH��uML���1�I9�v?I�2L���H��I�<�L�G0L9�r�H�H��I�<�L�G0L9�stH��H9�r�H��>L��H�5�YH�81��9��f�[H��]A\��H���8��H�����H���C��H����H��[]A\�cJ��H��L��DHcwH�4�I�4�H9�rH�pI���3���������i�����u!H�:>L��H�5FYH�81����fDH�}@tDH��H%���H�0�F$t2H���������H�ʁ�?H��H��H��H��H��H��ƀH��s�H�y����H��
>L��H�5�XH�81��'��H��
>L��H�5�XH�81����ff.����H��� ��+��H��6>H�H���f.���H��?���H�H��8�xÐ��H�uH�GH�@H��tH� ��f�1��ff.�f���1�H�uH�GH��ff.�����H�lh��Hc�H�>��@H��Z��H�[��H�PV��H�9V��H�!V��H�V��H��U��H��U��H��U��H��U��H��U��H�uU��H�]U��H����H�T���H�.U�H�U��H�U��H��T��H��T��H��T��H��T��H��T��H�rT��H�ZT��H�AT��H�O%��SH��H���'��H��u	H�|�[�H��[�'��ff.�f���H���������ATUSH�^ H��I�ف�?I�����H��H��I�I��H��I��J�D�HH��r5H��I����?I�����H��H��I�H��H��H��H��ȀH��s[]A\�fD@�����@��u3�������
H����@���
H��4���f�H��H�����3���I���tk���u,�؃�����H��������H��4uS�H�����M��H�^H��H�>H�81��I���E[]A\ÐH�����uH��tt�H��t��;���H�����uH��t^�H���C�������9�����z�����%�����f����������R���������>�������f���H�H�ȃ�`H��`�YI���������ATUSH�^ H��I�ځ�?I�����H��I��I�I��H��I��J����H����H��H��H%�����?L�H��I��H��H��H����?H��M���I����I���H����@����H�����uH���T�H��t�ȃ�H��H�����4���I��������u0�؃�����H��������H��4���;��H�����M��H�O\H��H��>H�81���G���E[]A\�f.����@���X���������tMH��te@��tsH��4�3�����.����H������h���H��tc�H���T����T���������@�����6����������"������������������������AWf�AVAUATUSH��XH��>H��D$H�D$(D$8L��8H�2H�$H�D$L�d$H�D$�(���D�l$E����I�\$8H����I���������A��f.�H�[@H����D�C$A��u�C��~�L�S0��1�E1�H��1�I�r(L��L���f�H��(��?H��I��H��H��H��H��H�Ã�?H���H��sH�PHH���AE�H���H��s	��A�H��I9�u�A�D$u	E���RA���G������>���H���H��H�=�Z1����fDI�|$@��A�D$��<t,I��$�H�T$8H9���I��$�H�T$@H9���A��$���uCI��$(I��$01�H��t�H�@H��H��u�H�T$(H9��dH9��[H��X�[]A\A]A^A_��A��$���uDM��$�I��$(I�|$I�0H)�H9|$ �mA�D$��<�%����`����A�D$��<�����H�=�Z1����I����������A��D;k��L�S0Ic�H��I�4�H���?H��I��H��H��H��H����H��s�@����@���������H���@����H��4���>�����H��N�H��H��>H�81���C���L���H�=HX1��
��H�=�Y1��
��H�
}���H��1�H�=^X�
��H�����u�H��t H��u��녿�{�����q�����g���H�I>��H��X�H�81��1C��I�t$I��$(H�=�XI�$�H�T$ H)�1��
���������	����������S1�H��H�5v�j��H��[�1J�����H��H�<$H��H�t$����H���f����'������SH��H��H���>H�|$��H�H��8uIH�����t@H�������t3��u.H��8H�t$1��K��H��ƒ���t$H�H��H��[�H��������H�����@��UH��SH��H���k��H�����H��H��H��[]�R�f���@��uH�����tH��ƒ���t��u�USH��H��H���>H�T$H�H��8H��8�����u)��uH�����tH��ƒ���t�H�H��[]�f�H��8H�T$H���L���f.���1�����D��1�@����H�����t|���tu��tpH��>H�H��8H�x@tSH��H%���H�0��F$tAH��������́�?H��H��H��H��H����H��ƀH����f.���f.���H���>H�H��8H�x@tTH��H%���H�01��F$u��H��������́�?H��H��H��H��H����H��ƀH��H�Ѓ��1��ff.�f���UH��SH������H��H����H�H���ƃ����	H�Ł�������H�=r[��Hc�H�>��fDH�C H��tH�8H��H��t�B��H�H�CH��tZH�xH������B��H�H�CH�8H��t��B��H�H�CH�xH��t�B��H�H�CH�xH��t�B��H�H��PH�E(H��[]�DH��1�[]���3��H��H��ƃ��)���H�[H��t�H�����HcS$H��H�l0H��D�� u�H�{t�H�CH�l�뉐H���(��H��x���H�{H���k����*��H��^���fDH���X��H��H���H�{H���;�����A��H��.���fD��`��������f���@����H�{����H�CH�l����fDH�{H�������!��H�����fDH���C��H����H��H�=�T1������H���H��H����H�8H���S����o���ff.�@��H���>H�H��H��H��tH�H���H+�H���ff.�f���1��f���H��t7H��H�D�>H�5�,H�T$H�H��8H�D$���H�����ff.�@��H��t7H��H���>H�5�+H�T$H�H��8H�D$�\��H�����ff.�@��H��t
H�G����u�@H��H���>H�5�*H�T$H�H��8H�D$���H������H���������H��H�������?H��H��H�H��H��H��H��Ȁ��H����ff.�f���H���������H��H����?H�����H��H��H�H��H��H��H����H��s�@�����H���������H��I����?I�����H��I�2H��I��H��I����I����?J�DHH�H��r"H�A�I��I�Ѓ�`I��H��`tL�L	ÐH�Q�>L��H��H�H��8L�J!��J���H�H��s-H���H�H��sH��H����]��I�J�DH�L	�H������AUA��ATI��USH��H��(dH�%(H��$1�H�=+�>�UH���������H��H�ށ�?H�����H��H��H�H��H��H��H�D�HH��s)H��$dH3%(�H��([]A\A]�@H�D$����H�����uH�����H��t�;��H��H�l$����H��E��H��H��D1�M���`���H�T$H��H��H�=N�>�������H�D$H�PH�T$H�=,�>H������6�������u��؃�����H�������H��4�R�����M���f��k�H�=t���H���>�����H��H����������!�%����t������D�H�WHD����H��H)�H�_H���J#����s5������t�U���t
���T=�f�T8��H�T$H��������H��H�L�H�L��K������H���H������r���fD��b���fD��R���fD��B����U�߉�T=��T8��z����E��D��H���������H��H�������?H��H��H�I��H��I��J�D�HH��s9H��H����?H%���H�0H��H��I��H��I����H��J	D�HH�'��f���H���������H��H�������?H��H��H�H��H��H��H�D�H��H���H��H����fD��H��1���uH��H��tH���`H��`�HE��D��H�=�>ATI��UH��SH��usH���>H���mH���>H���>H����H���>H���>H����H���>H�y�>H���hH�a�>H�R�>H���1H�:�>H���������L��L��H%�����?H�0H��H��H��H��H����?H��H�DHH��r	H����1�I�<$L���L�����`H��`�|I�8H��sH9�sQH�=��>H�|�H��I�9H��sH9�s3H�=��>H�|�H��H���H��sH9�sH���>H�T�H��[]A\�H���>H�E��f���H9�s�H�=d�>H�|�H���j���fD�H�=�@�w;��H�X�>�v����
H�=�@�W;��H��>����H�=3?�7;��H���>�{����H�=B@�;��H���>�D����H�=@�:��H���>�
���ff.���H���������UH��S��?H��H���>H�L��8H��H%���H�0H��H��H���`I��H��I����I����?H��`��H�����N���H�J!��J!DHA�AtFI�H��H��J!��I���H�H�F8H�GH�~8H��[]�f.��F$uJ!��I!�DJ���H��sI���H�����N���H�J!��J!DHA�A�b���J!���fDM���A���M��t;��~$I;;tD�Z�H��H���H��I;|�t5Hc�H9�u�M���A���M��u�H�=KJ1��\���@1�fDI��4I!�����H�E�>AT1�I��U1�SH�H�@H��XH���Dr��H��t(H��H� tL��H��[]A\�S.��H�x�~��\�H��H��H���..��L��H��[]A\�.��ff.�@��������H���>H�H��8�@�������H�}�>H�H��8H������H���
��H��������?H9�wH�DH���f.�H��H���D��@��H��>H��1�H�H��8H��DH�x���fD��H���>AVAUH�=��>ATUSH�H��H��8�����)H���������������t	���A�L�53�>I��������?I�6H9���I���H���H�T?L9��FL�����H�5��>H9��fH���H�T?L9��1L�����H�5�>H9��IH���H�T?L9��L���\��H�5��>H9��,H���H�T?L9��L���/��H�5��>H9��H���H}XH�T?L9���L�����H�5_�>H9���H�}H��(H��H)�H�T?L9���L������H�5,�>H9���H���H}XH��H+}H�T?L9���L�����H�5��>H9���H��(H�T?L9���L���Z��H�5�>H9���H���H�T?L9��}L���-��H�5��>H9��}H��H�T?L9��hL�����H�5��>H9��`H�}PH�T?L9��VL������H�5g�>H9��FH���H�T?L9��AL�����H�5B�>H9��)H���H�T?L9��,L���|��H�5�>H9��H���H�T?L9��L���O��H�5��>H9���
H�}H�T?L9��L���%��H�5ֿ>H9���
H���H�T?L9���L�����H�5��>H9���
H�}H�T?L9���L������H�5��>H9���
H�}H�T?L9���L�����H�5m�>H9���
H��pH�T?L9���L���w��H�5H�>H9��g
H��xH�T?L9���L���J��H�5#�>H9��J
H���H�T?L9���L�����H�5��>H9��-
H���H�T?L9��xL������H�5پ>H9��
H���H�T?L9���
L������H�5��>H9��cH���H�T?L9���
L�����H�5��>H9���H��H�T?L9���
L���i��H�5j�>H9���H��H�T?L9���
L���<��H����H���Z���H����I�6H��H9��4���H���[]A\A]A^ÐA��������H���=H�5	:H�81���f�H;�>��
H;�>��
H;�>��
H;�>��
H;��>��
H;��>��
H;�>��
H;�>��
H;�>��
H;�>��
H;߼>��
H;ڼ>��
H;ռ>��
H;м>��
H;˼>��
H;Ƽ>��
H;��>��
H;��>��
H;��>��
H;��>��
H;��>��
H;��>��
H;��>�U	H;��>��
H;��>�O���H���u�����#��I�6H���������H�5��>H�����@����H�5��>H������@����H�5|�>H�����@����H�5l�>H�����@���H�5\�>H���!���@���H�5L�>H���E���@�{��H�5<�>H���Z���@�c��H�5,�>H���o���@�K��H�5�>H�����@�3��H�5�>H�����@���H�5��>H�����@���H�5�>H�����@����H�5ܺ>H������@����H�5̺>H�����@���H�5��>H�����@���H�5��>H������@���H�5��>H��� ���@�s��H�5��>H���5���@�[��H�5|�>H���J���@�C��H�5l�>H���_���@�+��H�5\�>H���t���@�H�=v��.��H���o$���H�=�3H�|�>�.��H���O$���H�=�3H�d�>�.��H���/$���H�=�3H�L�>�w.��H���$���H�=�3H�4�>�W.��H����#���H�=�3H��>�7.��H����#���H�=�3H��>�.��H���#���H�=�3H��>�-��H���#���H�=�3H�Ը>��-��H���o#���H�=�3H���>�-��H���O#���H�=�3H���>�-��H���/#���H�=p3H���>�w-��H���#���H�=`3H�t�>�W-��H����"���H�=V3H�\�>�7-��H����"���H�=H3H�D�>�-��H���"���H�=@3H�,�>�,��H���"���H�=�3H��>��,��H���o"���H�=3H���>�,��H���O"���H�=3H��>�,��H���/"���H�=�2H�̷>�w,��H���"���!H�={=H���>�W,��H����!���'H�=�=H���>�7,��H����!���H�=�2H���>�,��H���!���H�=�2H�l�>�+��H���!���H�=�2H�T�>��+��H���o!���H�=+=H�<�>�+��H���O!���H�=e2H�$�>�+��H���/!���H�=W2H���>�w+��H���!���H�=M2H���>�W+��H���� ���H�=C2H�l�>�7+��H���� ���H�=22H�T�>�+��H��� ���H�=2H�<�>�*��H��� ���H�=
2H�$�>��*��H���o ���H�=�1H��>�*��H���O ���H�=�1H��>�*��H���/ ���H�=�1H�ܴ>�w*��H��� ���H�=�1H��>�W*��H�������H�=�1H�̴>�7*��H�������H�=�1H���>�*��H������H�=�1H���>�)��H������H�=y1H���>��)��H���o��H�x�>��+��I��H��H���>�*��L�����H�j�>H�5��>L�����H���>H�5��>L�����H���>H�5��>L������H�8�>H�5��>L������H��>H�5��>L�����H��>H�5u�>L�����H��>H�5g�>L�����H��>H�5Y�>L���y��H���>H�5K�>L���c��H��>H�5]�>L���M��H���>H�5O�>L���7��H��>H�5A�>L���!��H��>H�53�>L�����H��>H�5%�>L�����H���>H�5�>L������L���'�����f��{���H�5��>H�����@�c���H�5��>H������@�K���H�5��>H������@�3���H�5��>H���0���@H�{ ��I�ܻ�^��H����:���@H����*���@H�������@H����
���@H���HEX��H�EH��(H��H)����fDH���HEXH��H+E��DH��(��@H�����@H����@H�EP�}��H����j�@H����Z�@H����J�@H�E�=��H����*�@H�E���H�E�
��H��p��@H��x���@H������@H������@H�����@H����@H�5A�>H��t#H��I�ܻ�����1��w�H�=u����0%��H��H���>���H�5�>�H��� 
��H�5�)H��H�?�=H�81�����D��H��H�A�1�H�D$H�L$�l�H�|$��tH��tD��H�D$H���D@��tZ@��u	H�����u3H���=H�5�(H�81��k���3'��H��H�D$�f������t��t����#�H��������?H9�wH�D�x���f.�H�������a�����@��t.@��uH�����t
�����tH�����1�H���D����ATH���>UH�-��>SL� H�EH��8�C t
�CuT�c�H�EH��hH��t	A�D$<�t*H�<�=�"�H�=�1H�����������A�D$<�<��1�����ff.�SH��H���GtBH���������H��H���?H%���H�8H��H��I��H��I����H��J	���Hc��;��t!H����J���H�4�H��[��H���H��tdH���H��H���H���H���H;��sH���H����H���1�H������H�4�H��[����H�t$�a��H�t$H��u����f�H���������H��H��H%�����?L�H��H��H��H��H����?H��I�LHH��r.H�I��A��`I��`tM���H��I��rH��@H��@H����ԭ��@H��`A�H���I��M	��H����GtI���H��r��5���DH������USH��H��H���H����H���H��ujH���������H��H�؁�?H%���H�H��H��H��H��H����?H����H�H��r6H��H��H��H�脕��H��H��[]���fD����f�H��[]�f�H�PH�0H��H��[]��ff.�AUATI��UH��SH��H��H���`H��`�HD�H���H��ǃ���u	H�����u]������to���H�s@��uH�����tL�����H��ǃ�����H�5�6��Hc�H�>�����t��t�H����H��ǃ��@H����H��t�uH�����tH��L���L���H��[]A\A]ÐH�s@��uH�����tL���%���H�s@��u�H�����t�L���
������� �L�kH�[M��~�1��H�4�@��uH�����tL������H��L9�|��k����H�s @��uH�����tL�����H�sH���<����b���H�{H��tH�T$H�5KL�d$��H�s @���8�������fDH�{H�C��H�����H�{ ������DH�k H��t6H�}H��t-I��$�uA�D$�aH�T$H�5�L�d$��H�CH�������H�xH��t$H�G����tH�T$H�5L�d$�[�H�CH�xH��tH�T$H�5"L�d$�8�H�s@���_����)���D%`H=`�������f.�H��uH�����t��@����f��� �WH��L�k��H��H������1�fDI�t�@��uH�����tL�����H��H9�u����fD��`��H��
H����H�ŐH��H����f���H��H�s�@��u�H�����t�L��H�����H���u��8���@H�CH���'���H�p@��uH�����tL���X���H�CH�pX@��uH�����tL���9���H�CH���@��uH�����tL������H�CH���@��uH�����tL�����H�CH�px@��uH�����tL������H�CH���@��������p���@���s����H�
�$I;�$��I;�$wH���������H��H��H��H��H��H��H)�u[M��$�I9�vGI�M��$�H��I�4�L�F0I9�w&�fDH�
H��I�4�L�F0L9���H��H9�r�H�
�#��H��H�=�-1����fDH��A�����H�kH�[����H�kL�k ���H��H�=�#1������H�@H���k����J����q�H;E�����H�EH�}���H��L��HcVH��I��H9�rH�PI�����H�=�,1��i��H�
#�4���H��H�=!#1��L��ff.����@��uVH�����tMUH��H��SH��H�
"�>H�D$H��H�	H�$H��8H���H���H�����H���H��[]��ff.�@��AWAVAUATUSH��L�!H9��.I��I��I��H��fD��������H���������H��I�؁�?I�����H��H��H��H����H����?I�|$@tI��B$tH���H����I�EL��H�5֎��H��H�D$L�$���I�] H�L�$H�D$��`H��`��I�0H�|HH��sH���H�����A�D$t8I�H���H��s'H���H��rI�] L��H�5K��H�����L�L9����H��1�[]A\A]A^A_�I�0I�E(H�|HH��sH���H��sI�E0A�t$��@���g���H��`�]���L��H�5���H��L�$H�D$���H�D$L�$�4���@L�I�EL9��O����f���f.�UH��SH��H����uH�����tH�����H��t*H�^/�;
w�Hc�H�>��H�CH���@��t1H��[]��H�CH��t�H�XH��u���@H�s@��u�H�����t�H��H��[]�'����H�s@��t��@��H��H��H�VH�vH�8�5���1�H���ff.���H���>H�WH�wH�H��8���ff.���@��u&H�����tH��H�:���1�H���f.�1��ff.�f���USH��H��H�vH�:@��uH�����tH���E���H�}H�s@��uH�����t�)���H��1�[]���UH��SH��H��H�:�uH�����tH��H����H�}��uH�����tH�����H��1�[]���H���>ATUSH�L��8H��~-H��H�,�H�3@��uH�����tL����H��H9�u�[]A\���@��u&H�����tH��H��H�:�^�1�H����1��ff.�f���H��@��u#H�����tH�K�>H�H��8��@�ff.�@��H��c���H;���H;���H���������H��H��H��H��H��H��H)�u`L���I9�vTI�L���H��M��M�H0L9�r"�9f�H�H��M��M�H0L9�s,H��H9�r�������t��u2ÐH��L��f.�IcPH��I��H9�r�H�QI���x�����ff.�ATUSH��H)�H��H��H9�t#I��H��H�uL��H��H�����H���u�[]A\Ð��H��H9�sH���>H�H��8H��H�������H��H���H9�sH���>H�H��8�c����ff.�@AWAVAUATUSH��H��$H�|$H�D$0H��H�t$ H�D$81��H�H�D$@H�d$HH��H�\$ H�D$(H��H���H�D$H�D$0H�$H��$�H�D$f�H�$H�|$H�0����H�$H�$H;D$u�H�t$(H�T$H9�s
H�|$���H��[]A\A]A^A_�@���o������H���>H��H�H��8�s���ATUH��SH��H��H�{�>HLJ�L� H��t
H�WH�H��I��$I�|$�iRI�D$H�0H��t@��uH�����tH����H��8H���H�H�EH��tH�G������H��H��L��H�E�Q���H��H�E�H��H���H��H�EH��t'f.�H�H�8���H�[H��u�H����H��H�E��q��H��H�E���H��H�E�s�H��I�|$H�E�*H��H�EH��[]A\�f.�H�T$H�5D���H�\$�������DH��t H�G����tH�T$H�5���H�\$�k��H��L���P����G��H���H�������&q���1����I�|$��)H��[]A\�f���USH��8H���>H�|$H�H�t$ H�t$H�4$H��8H�k���H�D$H��H���H���H�����H���H��8[]�ff.�@��AUATUSH��H��>H�H��81��CuH��[]A\A]�fDI���������H��H��H%�����?H�H��I��I��H��I��A��I��A��?J��	�L����J��	�L����H��I��H��I�������?I�4$H��I��I��H��I����?I��J��.�L�I����H���`H��`uxH�MH�σ�`H��`thJ�|.HH��rNH��`�H�M��H��J	�.�H���H�H��s2J��.�H��r$H��H����������H���H������H���[]A\A]�fDJ�L	HL��r�H���`H��`t8Hǃ�H�H��r�H��H��H��H��K���H���c���`���H���H��t�H��H�߉T$�N�I�$�T$J��(��ff.����H��>H�H��8�AteI���������H��H��H%�����?H�0H��I��H��H��H����?H��L���I��s,H���H��rH��H�����H���`H��`t��K���ff.�USH��H���H�oPH��H��H9�s(H��H�<�H��u$��H���H��t3H���H��[]�DH��H������H��tH�������AVAUATI��UH��SH��H�_xH����H�SH�C@H��tH�B@H�C@H��tH�PLcCH�s8I�D$xH�CH�C@H�CI��$�M)�$�H�EH�kH�C@H��tH�XH�]H�E0LE8H��tH�EH�C(H�]H��[]A\A]A^�DH�|$��?�@�������L�l$M���v�(����H��H���NM��$�L�(I��$�M����L��1��	H�JH9�vH�H��H�4�L;.w��pH��H9�w�L�4�J�47I9�v(I)�J�|7J���#���I��$�M��$�L�M�MI��H�H���������L��M��$�I��$�H��H��H��L��H��H)���A��?A����I��$K�H��tzI9�ruI;�$vI��$L�K0H�s8�SI�]I9�t2L���
f.�H��H�y(H�qH��H�H9�u�K�t�H�s8�S�(���L�����D�3�M��$�fD�()кgfffI�D��D)ȍ��?�����)�Lc�O��I���.���H������L��H�=1��@��AWAVAUATUSH��H���GtIH�GHH���4H�P(H�WHH�W(H�P(H�G(1�H��[]A\A]A^A_��H���Ȁ���Hi���H+��HCX�{H��L���~H����w�=H���nf���H*��Y����f/����H,�H���H���H����f��H*��Y�f/��D�H,�H���I9���H���H���I��I)���f��I*��Y��=f/��R�H,�H���=H��tI���������H��I��H��L�H9�HG�H�SPH�H)�H�11�H9�H����H�H)�H����(���H���H���(H���H���H���H���H9�v���H9�v�����C��O���1����D$�%����D$�6���@I9�v�H���H+���e�H���������H���H���H���H����o���1��a���1�H�������L�s8�c�M����M�~0M���H���������L����?H��H��H��H��I)�I���H�D$�f�I��
I��L9d$�I�,$I#l$�t�M���f.�I��(H��t�@��t�L��H�������@H��H��f��H���H	��H*��X��z�����\��H,�H��?���D�\��H,�H��?�c���DH��I��f�H��A��L	��H*��X��\���fD�\��H,�H��?���DL��L��f�H���H	��H*��X��c����H��H�s H��H����Y������@M�v@M�������L���H����'�����H�I�4�H��4tH�����L���M�����������u�I���H���I�6I���H������L���H�������ff.��H���������AUATUSH��H���>H�H��8H��H�%1�=H�EPH��H9�rH��[]A\A]�f�H��H��L�m E1�H)�H�������@L��H��I���1���L9�u�HDž�H��[]A\A]�fD����~��H��H�5��=H�=e�Y������AH�5��=H�=p�>��������������H�5r�=H�=t���H�5g�=H�=|����f�H�5X�=H�=�|��H�5M�=H�=p�ٝ��H�5B�=H�=r�Ɲ���^�H�5/�=H�=��;��H�5$�=H�=]蘝����tH�%�>H��=H�H��8H��H�5��=H�=?�b������H��H�5��=H�=���~��H�5y�=H�=w
�-�������H�=�1��������f�H�5Q�=H�=!
����������H�=v1��������f���H�m�>H�
f�=AVAUL�-�=ATH������USH�H��8��E1�����CH���H��L�s ��	�H����������CH���=H��L��H��H��H���H���h���I���v�L��H��I������L9�w�H���f�Hǃ��Hǃ�H���Hǃ��������H����H���H���H���H���H��H�����u�H���H�E�>H�(L�����	Hc��~�L��H���������z����h��H��8[]A\A]A^��x���H���G���u�n�����t1�H�=!H�����C�����ff.���PXH���!�����H���>SH�H��8H��`H��HH���v+Hǃ`���%���H��H��HH��t3H��`H�R1�H������HǃXHǃP[�������1��5D��ATUSH�@�H��H��HH��t�9���HǃHH���H��tf�H�o�g��H��H��u�H���H����H���H��tB1�L�$�H��H���H��H���I�<$�̸��L���ĸ��H���H���H9�w�謸��H�CPHǃ�Hǃ�HǃHǃH�CXH�C8H���H��t@H����L���H��H��u�H��[]A\�8���H�=�1����f.���UH��SH��H�H��tH��1�H�5oy�����H������H��H��[]�4��@AWAVAUATUSH��XL�f M���eD��@H�t$(I�����E����1����D$@���D$D@I�D$@H�L$(A�M��$�I�t$0M��$��D$H�A H�D$8IcD$H���?A�d$$�H���D$L���D$H���������H��L��L�l$0L�t$H��H��H����H��H��I	D�L��H��������́�?H��H��H����H��I��I��M	T�H��H��H��H)�H��H�$�I��H�$
L9l$�II�mH���t�H�$A�D@����H����������A�G ����L��H���.�	H�߃�H�|$ u H�����t��t���	f�H��H��H%�����?H�H���������H��H��H��H��H�t�H��H�>��?H��sL��H��H��H!�H�H��΃�����H�=��Hc�H�>��DH�{ H��t�j���H�CH�xH��t	�h���H�CH�HH��t'H��1�H�L$HH�5+�u��H�L$HH���8���H�CH�8H��t	�'���H�CH�xt"�H�߃���������H�CH�@H���2��H������H�{H��t�<��H�C@H�|$ �TH������GH��ƒ����6���.H�I��0H�CH�C H�CI��0�D$H��(H�������fDH�{ H���{���H�{��H�CH���c���H�����H�H�CI��0H�CI��0�f.�H�CH���#���H�H�5�=H�C I��0H�SH�CI��0�Q���fDH�CH�����H��1�H�D$H����H�D$HH�x(H��t
����H�D$HH������H�|$ ������H�I�D$8�D$H�CI�\$8������@�w���H�{H���j�������`����� �W�����DH������C���H�����3���H�{H���#���莽������f�H���8������H�CH�xtH�����H�CH�@H�����H��聿��H�{���H�C���H�{H��������v�������H���h�������`���������f��D$����fDL�t$L�l$0�t$�T$�Ao�AU�Ao^A]�Aof Ae I�F0I�E0Hc�A�T$I�Hc�I��HcD$I�(H��At$ I��0��A�t$ t>A�����u3H�d�>H�8t&1�1�H�5���~������A�\$ A�T$@IcD$�9�u�t$@���������L$DI�D$8��� H��t$H�t$(Hc��D$DH�F(I�D$(L�f(I�L�d$8M�������H�L$(A��@H�y �B��t-I��PH��t!�Cf��f/���I��0��H�D$(H�x��H��X[��]A\A]A^A_�f.�I�D$(�s���f�H�޿ ����H������B���fDI�L$�l$@I�T$@H��t	H�Q@I�T$@H��tH�JH�L$(L9a��H�|$(I�W`I�D$H�o0H)G8I�T$I�WxI�T$@H��tL�bM�gxI���I�������H�����H��ƒ��������H�����@H��PH���1����@f/[������0p���A������f�H�Q�L����H�SH�BH�������H����;����B@�B��������@�k����P���fDH��X1�[]A\A]A^A_��H������H�L$(H�AI�D$(L�a����A��D@�'����A���$�mo���$f/��!f��XC�C�����tJI��PH��t>I���I+��I���H��H��H�P H��Hi�H��H)�H��H�pH�P(I�x�I�� I9�voI���H��vbM�o`���f�H9�tL�$�H��H��H9�v:I���L�$�M9l$u�IcL$A9L$u�I��H)�I;� wVH9�u�@I���I9��sI���A�G��A�g�A��@����\�����H��H�=�	1��C���I��I�t$I�D$@H��t	H�F@I�D$@H��tH�pM;gxtPH��I)��I�<$I���I���I����Z���L���R���I�������1��誄���W���I�Gx�H�=�1�豶��H�=2	1�裶��UH�o SH��H���Gt-��k��H�{@t�H��H������H�{@u�H�{(t6H��[]��k��H�C@H��tf��H$H�@@H��u�H��H�����H�{(u�H���H��u=H�CPH��H��H;������H��H����}�H���H��u	�|��@H��H��H��H���H��[]���ff.��AWAVL���AUATUSH��H��H�GH�G��I���������@L���H���f.�E1�H���,������=�����Hc�H�,�H��4��H��H��I������H��H�������?H�uH��I��H��H����H��H��H��H!���H���H��L)�L�H=���H����b���H����I���N���fDH���H��t8������������H�H�4�H��4t�H���0��H���H��u�L���Li��H���$�H��H��[]A\A]A^A_���fDH���H������L���i��H�������������fDH���H���H�(H���H������H���H���������H���H���H�2H���H������H���H����������f.������O��	�H����OH���"AWAVAUATUSH��H��X��(u
�=�y>��t"H�{ �?�H��X[]A\A]A^A_��� A���K�C�-�C�@��������;ǃ�A	�A�D����E��DD�������u���b�c���t
�C���CD�‹�@�� �H�CDE�H���H���H���D��DH�����tgH��XH��HH�UH��XH����H��`H9���H�Rf�H��H�T�H��PBB �C��%A	�D�1�H�CH�H9��QH����f��H*��Y��=�
'�f/����H,�H���=H�H��t	H9����{�JHǃ��D uaH��H����f��H*�����q�=�\��^�X��^�f/����H,�H�7�=H9�HB�H���C@���@��tH��PH��tH�E��g���EH���H�k8Hǃ�H�D$�C��ƃ�@�sE����H�����H���������H��x@�sHǃ�H�<H��H��H��Hǃ�Hǃ�H��H�J1�H��H��H���H���H��t{f.�f�e$�������HDž�����HDž ������HDž�H�m@H��u�1�H���U���C�;H�D$H�����@��tEH��PH��t9�M�$�zf���$f/���f��E�E�\�h�E�C�f�c�H��X�[]A\A]A^A_�fD1��DH����@���2���CA���	ȈC�$���@�ȁH��p�CH���H��H���H��u���H�m@H������E$�����	Шt�H�u0L�l$H���������L���L��H���?H��H�EHH��L��I���H�PpH��H#P�H��H��Hǀ�H�W�I9�u�L)�I�E8�e$�I��H�$��I��I��
L9,$�S���M�uM��t�M���DI��(I��t�A��t�L��H�������@D�D$�$�[��$D�D$�����������C��	ȈCE����������f�H����f��H*��Y.�
ֽf/���H,�H�P�=H9�HB€{H������H��H9�������� H����f��H*��Y/�=f/����H,�H��=H9�HG�H������fDH�{(�����H���H�k H���^H�{PH�WH��H9�����H��H����=��H���H���n���H��H��H��H�������S���f�H����������\��H,�H��?���D�SD�����	ʈS�����\��H,�H��?�m���DH�ƒ�f�H��H	��H*��X��+���f.�H�Ѓ�f�H��H	��H*��X��T���f��\��`����H�� ����H�ƒ�f�H��H	��H*��X��1���f�H�ƒ�f�H��H	��H*��X��[���f��\��H,�H��?�/���DH���H�4IH��H��`H��D�$���D�$H��HH����H��X���fD�\��H,�H��?���D1��@��x�������1����x������1��D�D$�$�x��D�D$�$����Hǃ`d��D�$���H��cD�$H��H�G����@��L����H��H��H��H����m����)���H�=$��W��������� ���f.�H�@�Gu�u�USH��H���O �Gum�u9H�{@H�k tfDH��H����H�{@u�CuX�c�H��[]�DH���H��Hǃ���H�{@H���H�k u��f�1���w���C�fD1���lw���f.���AUI��ATI��USH��H�m�>H�H��8�]H�������MH���L�,$��L�d$��tH���Z��H��[]A\A]�f��H�t[��H�=mZ������H��[]A\A]�ff.�f���SH��H�� ����H�D$�n���tZH�D$H�=�o��H�t$H�D$H�D$���H�|$H��������?H9�wH�� H�D?[��蛻��H�� [�D�˪��H������H�L$H��E1��H���K�H�� [�DH�L$H�Ħ1�����U������USH��H��>H�H��8�]H������MH������H��[]H��?H��?���f.���H�͗>SH�H��8H���r���H�߹[A�����@��H���>SH�H��8H���2���A��H�ߺ��������t[�f�H��[�t�����H�������H���f���Gt�@AVA��AUE��ATA��U��SH��H�� �Q���u=�x����t\H��H�=	H�$D�l$D�t$D�d$�l$���H�� []A\A]A^ÐH���X���E���D��D��H����H�� []A\A]A^��}���G@u
�f�SH�������t3H���H�߹[A��H��H������E�����[�ff.�L�OH9���H)�I��tLH�wI9�I��H��LG�M)��M�H9�u�L��H��H9�I��H��HG�I)��M�H9�u߃�t
�f�SH��H�H9Gw*�1��Cu*����tAH�{@t:H���2���H�H9Cv	�����u�[�fDH)��I1�H���H��A�1�1�1�[����ff.�ATUH��H��SH���N���H��I���s���[L��H��]1�A\����ff.�f�H��>H��H�H��8�f.���H��t��D�ff.�@��AWAVAUATI��H�5T=UI��SH��8H�|$L�|$H�l$ 謶��H�T$(L��L�d$H�8H���T�����tNH�|$(H�l$ H�H��t2L�wH�l$ M�,ƐI�H�{1�H��I��H�D$ ����M9�u�H�|$(H��t�"���H�{L��H��L�d$ �����uH�D$H��8[]A\A]A^A_�fDH�t$H�;L��L�d$ H��������f���H��tH��H�����1�H���@1��ff.�f�ATI��USH��H��xI�HD�L����H�����H��H��t@H��舷��L��1�H���&���H��[]A\�fDH�=���y���f.�A���L�������tH���G��H��t
H���D����끐��H�͒>H��H�H��8�3�����ATI���UH��SH���e���H�L� H�hH�PH�[1�]A\�ff.�f���UH���SH��H�_�>H�H��8����H���H�(H�PH���H��[]�ff.����������H��H��H��t
H��1�H��H9�uH��>H��H�H��8�Z���PH�B�=H�5��H�81�������H���>ATUSH�L��8H��t2H��1�H��H��H��H9���H��y]H�=n��Ix�����L����H�޿�&���H��H��t6H��膵��L��1�H���$���H��[]A\�@�HD��DA���L�������tH�޿躷��H��tH�������H�B�=H�5��H�81�����AVAUI��ATUH��SH��H��xZH��tfH��txH���ش��L��I������H��H���"��I��H��tjL��貴��L��L��H���O���[L��]A\A]A^�H�=���w��H��u�[H��L��]A\A]A^���@����E1�[]L��A\A]A^�@A���L�������tH��H�����H��tI���]���������L���fD��H�
��>H��H��H��H�	H��8����ff.�f���H�
��>H��H��H��H�	H��8���ff.�f���H��I��H��H��tI��H��1�H��L9�uH�>�>H��L��H�H��8�a���PH���=H�5R�H�81��(������1�����ATU�S��tIH�>I��H�H��tiH�G�L��@L�L9�tL��H��H��L9�u�H��H��t51�H9�w��[]A\��H�s�����H�I�$��[]A\�@H��t�~��������AUI��ATI��USH����tHH��H�3H��H�nH��H�����H��H�(L�,H9�t=I�$H��1�[]A\A]�D���1�芾���H�(L�,H9�u�H���[]A\A]�f���AVAUATUSH�D�wD�oD�g�oH���J�E��D��H��D������[]H�A\A]A^�ff.����AUH��ATUSH��8H�L�>H�D$H�L$H�H��81����H�|$H���H�=�c>uJH��c>H���H��c>H��c>H���EH��c>H��c>H���H��c>H�|$L�D$�1ҽH�5zc>�u��H�D$H��4t1�H�����@��H�D$A�H��4t
E1�H�����A��H�D$ A�H��4t
E1�H�����A��H���
�A�D���D��H���������t2H��8�[]A\A]�f.�A�A���DH���`i��H��8�[]A\A]þ	H�=T����H��b>�����H�=M����H�`b>�����H�=����H�Hb>���AWI��AVI��AUI��ATM��UH��SH��HH�d�>H�H��8�C�`��L�{ M���!I�GH�C H��H���M�OI��~����~)A��u#I�����tI��ƒ���t
��I���� M�wM�oM�g tH�C�Cu\H��HL��[]A\A]A^A_�f�H���������L��L����?H%���H�0H��H��H��H��H����H��H	D�H��L����Kh���f�� ���@�
���H�|$H����1�1�1�A�H����L�L$������譭��DH�C(L�S H��t3H�P(L�x8H�C0H�S(H�@8�@M�������H����fDH�{@���K �C�B�����uH���H����L��H��L�L$L�T$� ���CL�T$L�L$��H�C(�c�H���[��������uH���H����1�1�1�A�H��L�L$L�T$��L�T$L�L$�������H�C(�����Ct��K �C�!H���Hǃ�H�D$0H�CHH����H�s(1��H�Ɓ��#H��H�P(HH�SHH�p(H�C(H��uڅ���Hc�L�l$ E1�I��L�d$(L��M��H�D$H���H�D$8H���H�D$H���H���1������������H�H��H��4t�H��H��H�T$I���ص��H�T$I���������H��H�����%�?H�2I��H��H����H��H��H��H!���H���H+D$L�H9D$�Z���H���I��M��L��L�d$(L�l$ ��H�D$0H����C����L�L$L�T$1���]e��L�L$L�T$��H���H���H�H���H������H���H���������I��M��L��L�d$(L�l$ H�|$8L�L$L�T$��K��H�����L�T$L�L$���E���H��L�L$L�T$�<�L�T$L�L$�$���H��L�L$L�T$��L�L$L�T$����H��L��H��L�L$H���L�T$���L�L$L�T$����1��L�L$L�T$�Gd��L�L$L�T$���H��L��H��L�L$H���L�T$�8��L�T$L�L$����H���H���L���H��L��H��L�L$H���L�T$���H�C(L�T$L�L$�H�1���1��L�L$L�T$�c��L�L$L�T$������H�=����C1�觕�����E1�1�1�1�1�����ff.����E1�1�1�����S���<H����V�I��H��HD�H��1�H�������H���H	�H�[�ff.�f���SI��H��H�� H��uH�� H�߾[�z���f.�H�t$�H�L$H�T$�g���H�L$H�T$L�D$�fD��SI��H��H��H��u$H�r@H��H�߹[H���H������fDH�4$�H�T$����H�T$L�$�f.���U�H���SH������H��H��C=H��H�����H���dz��H�迳��H�=\>H�CH��t���H��H������H�CH��H��[]ÐH�=�������H��H��[>����H��H��耢��1�H���f���AWAVAUATUSH��H���>H�H��8H��L����>��A�E��tH��[]A\A]A^A_�f�H����`��L��0M����H��I��L�t$��H��8�MH�G����toL��H�5f�H�$虛��H�$H��t;H�;H�sH�|$�^��H��81�L���ޙ��H�CH��H�$莡��H�$H��u�H��8H�G����u��M(�E��H������H���J��H�X0Hc@H��L�4�L9�r9�{fD��u#H�{ tH�{tH���=H����@H��(I9�vD�����u�H�CH��t�H�H�Ɔ=H�C H��0H�SH�CH��0H��(I9�w�I��L;���R����E�H��0�e�H����H��8���1�HDž8A�EH��[]A\A]A^A_��H����H���?���H���g9H���.���H�{H�t8H�CH���tVH���
���H�H��0H�CH��0����H�CH�@H�C�f.�H���]���?���H�{ 跟�����f�1����^���9����1���^�����H�
��
H�5V�H�=M��������H���>H�H��8H���H�AH99u�1f�H�PH98tH��H��H��u��H�QH������@H���H�����f���釳�����釆�����ATH�=�US���H�-͇=�����H���H��H�5�H�E膹��H��=H�}1�H�5��m���H���=H�}1�H�5P��T���H�}1�H�WC��H�5��;���H�}�H�{Y��H�5#�����H�}1�H����H�5�����H�}�����H�����H�5�����H�}�����H��d��H�5���θ��H�}�����H���H�5���"�������H�=��H��螥��H���v���QH��H���F���H�=���z���H���R���1H��H���"���H�=���V���H���.���qH��H�����H�=���2���H���
���H��H���ڨ����u
H������hH�}H��H�5_����H�}H�5b����1�H�|B��H�5V�H��H���ʷ��1�H��H��B��H�5'�買��1�H��H�Vh��H�5)�蚷��1�H��H��B��H�5~�肷��1�H��H�6��H�5W��j���1�H��H�~W��H�5_��R���H�߹����H�W��H�5���7���1�H�NU��H��H�5������H�=����������H�g�H�5��H��H���e���H�߹����H���H�5���J���H�߹����H��m��H�5���/���H�߹H���H�5f������H��H��u��H�5^����H�R�=�H�N�H�0�~
H�o~=1�L�%F�=H�5I�H�8L��輵��H�
�=1�L��H�52�H�8衵�������H��H��K��H�5�膼��H��~=H��H�5�H��
��H�5��H��H�����H�߹H�<l��H�5���@���H�߹H�1s��H�5��%���H�߹H��t��H�5���
���H�߹H�{t��H�5 ����H�߹H�`t��H�5z��Դ��1�H��H�H��H�5�輴��1�H��H��G��H�5g�褴��1�H��H��G��H�5:�茴��1�H��H�0G��H�5,��t���1�H��H��F��H�5��\���1�H��H�PF��H�5ڝ�D���1�H��H��E��H�5Z��,���1�H��H�pE��H�5e�����1�H��H�XE��H�5'�����H��H�-�H�5_��1���H�
�=H��H�0����H�}1�H��|��H�5���F����њ��H�}H�5��H��H�������
H�=w��e
H��H��迾���H�=f���e
H��H��裾���H�=d���e
H��H��臾����u+H�����t"H��ƒ���tH�€�H�{H�t��tG[]A\�f�H��ƒ��������H�€�H�{H��s������j���H���
����]���DH��[]A\��@����u H��H��H�R�P���D�H�����f����G1��D��H�:�H�r�ff.�@����fD��H���tH�B H�H�J(H�1��@H�H�B H�JH�1��ff.�@��H�W�H��tH�BH���D���g�����H�GH��tH�@H��H��H���ø�f.���H������H���tH�H�B H�J(H�1��@H�H�B H�JH�1��ff.�@��UH��SH��H��L�H�?I�@��t*H��H�6A�PH�UH�C H�S(H�EH��1�[]��H�B H�zH�EH��1�[]���H�H�WH�@H��4����H�GH��t#H��t=H9��HD��f.�1��ff.�f�����fD��H�}}=H�H�9t$1�f.���Hc�H�<�u�H�D�D��f���H�=}=H�H�8H�����PXH�5��H��H��=H�81�����f�����tH�H�B H�H�J(H�1��P���ff.�����f.�����tH�H�B(H�H�B H�1��P�~���ff.���USH����t-H�H��H��H�6H�?H�P�PH�H�E H�U(H�H��1�[]��0������ou!@��uH�����tH��ƒ���t�� u1��f�SH��H��4�ޔ��H��ƒ���t���H�1�[����H�H��tH��1��}����u1�H���D1��D�H���fD��H���3���1�H���ff.����H��H������1�H���f���AV�G�AUATUS��H������H��I��L�6�Ծ��A�ą�t��t8I�}H��tH��L���D}����uFE��u[��tzH�EH��[]A\A]A^�DH�=I�1��B���I�}H��t)H��L���|����tH�$H��[]A\A]A^�f�L���H���H��[]A\A]A^ú�蜰��H�=�x=1�L���+���H�D$H�D$H��t1H�|$�A�l��H�5<�H�D$H�9y=H�T$H�81��Z}��L������H�D$�ff.�@��uH�����tH��ƒ���t��u�H����|��DSH������H�{t[�fDH�=�3=�ܿ��H�C[�fDUSH��H����H�߉��8�����tH��uH��[]���E��v��H�5W���1�H��t=��H�81��|�����H��H��1�H�������H�������H��������H��H��1�H������H�������H��������S1�H��H��H���趱��1�H�����tH����[�ff.����UH��SH��H��H�7H���uH�B H�rH�EH��1�[]ÐH�UH���1��M���H�UH�C H�S(H�EH��1�[]�@��USH����t2H��H��H�
H�H�71������H�H�E H�U(H�H��1�[]�����ff.���H��H��1�H����ư��1�H���ff.�@��ATUH��SH�Ӆ�tH�H�B H�H�S([H�E1�]A\�DI��H�?�Տ��I�$H�CH�H�C [H�E1�]A\�ff.���H�GH��tcATUH��SH�XH��H���͕��I��H��t;H��H�m�)���I�t$I�$ uI�t$ H��4H���5���L��H���:]��L��[]A\�f�1��y���f���H�GH��tcATUH��SH�XH��H���M���I��H��t;H��H�m詰��I�t$I�$ uI�t$ H��4H������L��H���\��L��[]A\�f�1����f���SH���c���H������1�H�����tH����[Ð��H���3���H���ۛ��1�H���@��SH������H��H���x���1�[�@��ATI��H��UH��H�:SH���4���1�H�����u
[��]A\�L��H���ť���H�C��[]A\�D��H����H�������H�����f���ATI��H�:UH��SH���Ǖ��1�H�����u
[��]A\�fDH��L���U����H�C��[]A\�D��SH��H�rH���|���1�H��tH����[�D��UH��H��SH��H��H�2�E���1�H��t	H�k�H����[]�ff.����UH��H��SH��H��H�{H�T$��v����t�CH�t$H��u,�������1���tH��H��[]�f��x��������@��USH��H�wt=H�H�;H��t41�f��=����H��H��H��H�;H��u�H��H�D-[]�fDH���[]�@��ATUS�C���I��H�t=H�(H�]H��tHD�=H��談��H��t$H)�H��H���(���H��H���}���H��L������H��H�]H��u�L��[]A\�ff.�f�SH��t*H���R���H��H���׈��H��H���,���H��[���H��[�fD��USH��聍��H��H�Os=H�H�;H��t3@�=���H��tH�x���H��H���e���H��H�;H��u�H��H��[]�ff.�@��AUATUSH���
���I��H��r=H�(H�}H��tb��=�v���H��H��t<H�x����H�}H��I��H)����H��H���8���L��H���]���L��H���°��H��H�}H��u�H��L��[]A\A]����AUH��ATUSH���:���I��H����H����|��H�&r=H�(H�}H����M�l$� �H����H9�tdH��H�}H��t_�=蝅��H��t�H�XH��茂��I�$�� t�I;D$u�I�t$H��H���,v����u�A�H��L��[]A\A]�@L����H��E1�[L��]A\A]����AVAUATUSH��H�|$H�t$�a���H�|$��{��H�Hq=L� I�,$H����L�l$M�u�DH����H9�t|I��I�,$H��tw�=H��躄��H��t�H�XH��詁��I�M�� t�I;Eu�I�uH��H���Ku����u�H)�H��H�s�����H��H���]���H��H��[]A\A]A^�DL���H���H��[]A\A]A^�ff.���U1�H��SH��H�=S�H��袵��H��H��H��[]�������AVH��AUATUS�,��H����H��I���z��H�p=L� I�,$H����M�u�#f.�H����H9�ttI��I�,$H��to�=H��芃��H��t�H�XH���y���I�M�� t�I;Eu�I�uH��H���t����u�H)�H��H�s����[L��]H��A\A]A^�U���DL����[�]A\A]A^�f.����H�=+��[���ff.���AV�AUATUS����H�5��H���v���L�-o=I��I�]H�;H�����=L�5�蛂��H��H��tQ�L��L���3���H�3H��L��H)��"���H�5���L������H�}�%���H������L��H���Bs��H��H�;H��t<�=�,���H��I9]t��H�5�vL��迄��H���s���H��H�;H��uĺH�5�L��薄��A��u"I�����tI�$�ƒ����H��s[L��]A\A]A^�f���I�$�����H��H�кH�<$H��H�t$H������1�H���DH9���ATH��A��UH��SH��H�� ��u	H�����u5�aH���X�����tH��H��E�����q����uq1�H�� []A\Ð�����u�H�WH��tH�BH��H�KH��t=H�qH��H9�u�H��t1H�H9u�H�L$H��H��H��H�=� D�d$腠���H��u�H�� �[]A\�D����H�� []A\�f.���f.������f���1����D��ATI��USH���
���H��H��� ��H���������H�5�tH���v��H��H���q����u	H�����u-H�5 �H���fv��L�����H��H����p��[1�]A\�@H��Ѓ������H����H�5��H���v��L���a��H��H��H���p��H��Ѓ�����@��u�H�����t�H�E������t�%H	�H��r���DH�{��������H��H��襧������@���n���H������a���H�E�������O���%H	�H��?�����H���_���[1�]A\�f.���H��H��H��H��H������1�H������@��uH�����tH��у���t��@u�DH�G �ff.�����t��f�H�5?>1����f���H��H�H���4H�56H�x�����u
�H���H�m=H�5a�H�81��Gm�������u`USH��H��H�H�RH�h�SH�H9juF��t
��t�H��[]�f���u�H�����t�H�
�΃���t܀� H�
��D��H�{l=H�5��H�81��l��f.���H9���@��t�����H����tRH��4��H��4��@����H��uH�����t
�����ttH���km������H�����fDH�����t������u�H�ff=H�H9Wu�@��u�H������x���������j���H;V�`������D�@��t%@���w���H������j���������\�����1�ø�����ff.�@UH��SH��H����H�5�<>tX�����؃�����H������H�{襍����uJH�5�<>H��H��1�H�ߺ[]��|��f�H�����u/H����H����H�{�[�����t�H�C H��[]�@H�{�?�����t�H�H�C �у���t׀�@t�H��4toH�50<>I��H��H��H���1�[]�=|��DH�i=H�8�@H��d=H�8�y���f�H��c=H�8�a����H�yi=H�8�Q������S���fDH�9h=H�8�1����H�	k=H�8�!������UH��SH��H��H�H��tH�T$�
i����tH�D$H��[]�DH��H���M���H��[]�fD��AULc�ATL��I��USH��H������H��M��~(N�,�DH�3L��H���y��H��H���Ƥ��L9�u�H��H��[]A\A]�����wSH�B ��u'H�����tH�
A��A��A��t��@t	��u��fDL�H�5�:>H��H�Ǻ1��z��P�1�����SH���7r��H���_���H��L�U�[1�1�H��鸨�����AUATI��USH���:�����tf��1�I��H�h�"fDH����H9�},H��H�<�H������I�E�� u�I;]}
I�E ���H��L��[]A\A]�f.�H��L��[]A\A]�>���ff.���AV�G�AUATU��SH������H�I��H�D$肨��A�ą�t	����H�|$��}��H�|$�no��H�D$H��� H�D$��H�PH�D$H��� ��H�\$H��1�H���Ђ��H���8H����b��I��H�����H�=��H�������u�[�=��������L����H��H��H��[]A\A]A^��H�H�D$H�H������ �b���H�D$H�X�]����H�=9p1��2������DE��uc����I�]H��H��[]A\A]A^�fDL���x������������=�J���DL���xw��H��H���-y���@����H�|$���H���&������O���H��f=H�56�H�81��Gf��H�b=H�T$H�57�H�81��*f��f.���AUATI��USH��芦����tf��1�I��H�h�"fDH����H9�},H��H�<�H���T���I�E�� u�I;]}
I�E ���H��L��[]A\A]�f.�H��L��[]A\A]���ff.���AVI��AUATUS������l�|��I��H�Mb=L�(I�]H��tcf��=H����u��H��H��t8H��H��H)��]w��H��H���w��H��L���G���H�}�N�L��H���3���I��I�]H��u�血��1�I�\$����I�$�� tE�H����H9���H��H��I�TH�4�1�H���<���I�$�� u�I;l$}tI�L$ H��H�T���H����H9�}LH��H��I�tH�<H������H��识��I�$�� u�I;l$}I�T$ H��H�t��[L��]A\A]A^�@�3m��H���[���[L��]L�O�A\1�A]1�H��A^魣��ff.�f���H�GH��t
H�@����u�H�=��騕���H��1�H�=d�/���ff.�@SH���l��H���Ϟ��H��L�e�[1�1�H���(������������t"H��H��H��H��H	�H1���H��H9�t�H����zH��?H)�H��H��H	�H��H�D$��L$�f/�s�H,�H1�돐�T$��\��H,�H��?��f.�ATUSH��H��0H�|$H�H�$H��H�D$H�D$4H�D$ H�D$(4�l���H�l$A��H��uH�l$ H��u]H��0D��[]A\�f�@��u�H�����t�H��H���V~����u�H���`H��`u�H�E��`H��`t�H��H����v���@@��u�H�����t�H��H���~����u�H���`H��`�u���H�E��`H��`�d���H��H���~v���T���f���AVAUI��ATUH��SL�gH��D�w�^�M��tIH�2U=I9$tL��蔛��H��[=H9tpH�1�E��~6H��L��H�����[H��]A\A]A^�f�E��mH�CH��tRH��T=H9uH�����DL���0���H�1[=H9u�H����E��H���H���HN�념H�=y=褣��H�C��y�f���AT1�I��H��UH��H��SH����-���H�����t
[1�]A\�fDH��H��L��誁��[1�]A\���AT1�I��H��UH��H��SH����ݕ��H�����u
[1�]A\�fDH��H��L���Z���[1�]A\���H��H��H��H��H���7���1�H�����H��H��H��H������1�H�����H��H��H�׋RH��H�5����H����HN�H����1�H���f���H��I��H�:H�rH��H���L�ƋG��H����HO����1�H���D��H��H��H�׋RH��H�5E���H���HN�H���p���1�H���f���SH��H�|$H�t$��t��H�|$�nf��H�D$H��� H�D$u\H�H����H�D$H��� u5H�\$H��1�H����y��H��u3H����Y��H��H�H��H��[���f�H�D$H�X��DH�P�H��^=H�5A�H�81��R^��f���SH��H�|$H�t$�8t��H�|$�e��H�D$H��� H�D$ulH�H����H�D$H��� uEH�\$H��1�H���"y��H��uCH���5Y��H�ǸH��t蓈��H�|$H��薊��H��[�H�D$H�X�DH�P�H��]=H�5��H�81��]��f���USH��H�|$H�t$�ws��H�|$�d��H�D$H��� H�D$��H�H�D$H�H������ ��H�\$H��1�H���Yx��H����H���hX��H��H�����H�=3�H�������u��=��xh��tH���,�H��H��H��[]��H���m��H��H���Uo��H��H��[]�H�PH�D$H��� �W���H�D$H�X�R���DH���8����������b�=��u��@�H��H��[]�H��\=H�5(�H�81��9\��f���ATLc�USH���=s��H��E��~&N�$�H�3�H���o���H��H���4���L9�u�H��[]A\�����wn�����H�G ����UH��SH��H�w @��uH��H�����u
H��H��[]���w����u�H�E��`H��`u�H���`H��`t�H��H���Cp�����S�(�Q]���H��H���1{��H��[�ff.����ATI��UH��S����I��tH�
��H��L��蜟��H��H����H���׈��H����H�����H��H���z��@��uH�����tH�E�ƒ���t��@H�EH��[]A\��@��uH�����tH�E�ƒ���t��H�EH����Rz��H��[]A\�L���B���H�5��H��H�iR=H�81��7Z�����UH��SH��H������H��H���z����uH�����tH��ƒ���t��H�H��H��[]�D��ATI��U��H��SH������C�����tO��um�Z��H��H������H��H���y����uH�����tH��ƒ���t��@H�H��[]A\����w(���tI�4$H���Fy��H��[]A\�1�1����3����1����%���D��H��H��H�=n�1��f���u%�uH�����t
�����
tH���b����t�H���f���E1�H��H�t$A�@����H��������H#T$��H�D��y�H��H�D�ff.����UH��SH��H��軇��H��H�$诇��H��1ҾH�D$�ۀ��H1H��1�[]�ff.�@��H�����H�5H���tq��H��H���(������H��@��u	H�����u11�H��4t@��tS�������}���H��?H���fD�����t.������
����t'���H���DH���f�諍���f���������t�G�h�H��H��f�H9�t�H���H��H��?H)�H	�H��H�|$�~D$�fDH�G�D�����{h��H��+������G����H��(1�H�t$H�5��H�T$H��H�<$�I�����uH��(�H�iV=H�5´H�81��V�����H�t5H��(�GH��H�<$H�=��H�t$H��H�T$H����Vl��H��(Ð�ff.�@��SH���Ö��H�߅�t,���H�{tH��H�5���H���{��H��[�f�[��f.���USH��H���n���H�߅�tW����H�CH��t9H�@H��H��t-H��H�5C��H���+{��H�CH�PH��H��H9�tH��[]ÐH���[]�@H��[]��D��USH��H�����H�߅�tG�"��H�CH��tIH��H�5���H��H�h�z��H�CH��H�PH��H��H9�tH��[]�fDH��[]��DH���[]�@��SH���s���H�߅�t,���H�{tH��H�5���H���>z��H��[�f�[�J�f.���SH���c��H�{H��t"H�G����t�C��~1�H�5 ��H����y��H��[��P��H��[�fD��H�W�H����H�B������ATH�
H=UH��SH��H��0H�I��H9�tQH�HH�51��H�t$ L��H�L$(H�L$ H�
H�L$H����H�<$H�|$H�=�H�l$H�D$�i��H��4u;L��H��H�5���H�,$H�D$�y��H�D$H��0[]A\�fD��H��H���U���H��0[]A\�@����H��H�4$H��H�5���H�D$�x��H�D$H���f���SH��H9�t,H��H�
�H�
9��XW��1�H�5� H���wx��H��[�f���SH��H�GH�D$H��tmH�@H��uH��[�DH���H����¸��t��xn��H�T$��~H�5���H���x��H�D$H��[�@H�5���H����w�����H��1�[���H��H�t$H��H�5���H�$�w��H�$H�����ATUH��SH������H9���H��H�
6��H���IV��H��H�p H����q��H�؃�@��u~H�����tuH�U�у���tg��@tbH��uH�����tH��ƒ���t��@H��L�eH���4|��M��tH�CH��tNI�$H�H��H�5��H����v��H��[]A\�DH��u�H�����t�H��ƒ���t���H��DH�==�,���H�C�fD��UH��SH��H�����H��H��H�
&���@U��H���x���H�څ�t!H��H�5���Rv��H��H��[]��H��H�5��1v��H��H��[]����SH���si��H��[H���g������SH��������t?�:l��1҃�~H��H�59����u��H��[��H��H�5����u��H��[�@�{Y��H��裋��H��L�9��[1�1�H�����ff.����SH��胐����tH��1�H�53���^u��H��[�f�H��[�g����SH���C�����tH��1�H�5���u��H��[�f�H��[�'����H��H�4$H��H�5:��H�D$��t��H�D$H���f���U1�H��SH��H�=ӭH��肑��H��H��H�,$H�D$H�5����t��H�D$H��[]������u(SH��H��H�H�5����^t��H�[�f���f.���USH��H�GH��tmH�XH��H��H���[���H�5���H��H�D$��g��H�D$H��uH��蕎��H��H�D[]�f�H�T$H�5���H����s��H�D$��D1����H�5r���H��H�D$�g��H�D$�ff.�������UH���SH���q���H�5ԭH���Ma��H�5F��H��H��H���Hs���H�5��H���$a����u>H�����t5H��Ѓ���~Q@��u"H�����tH�E������t%H	�H�H��H��[]���H�=���o����H��r��ff.���UH��SH��H�G1�H��tH�xH���lh��H�5���H��H��H���wr����u!H�����tH��Ѓ����H��sH��H��[]��@��u�H�����t�H�E������t�%H	�H���fD��AVAUATUH��S��u=H�B1�H��tH�xH����g��H�5~��H��H��H����q��H��[]A\A]A^�@A��H�>I��@��ua�\X��A��E����H�E1�H��tH�xH���hg��H�5!��H��H��H���sq��A�E���+E��y�H�5W>1�1�H���3j��끐�+���A���fDH�H�5/>L��D��H�DH��I��j��H��[]A\A]A^�D[H��]A\A]A^�P�����ATUS�G��tH���9��H�{t]�(1��fM���H��H���Fk��H�CH�pH�8H����S��H�5,��H��H�EH��I���p��H�{�a���L�cH�EH��[]A\�H��J=H�5)�H�81��J��D��UH�-�>=SH��H��H�GH��tH9(tH�����H�CH��H�(�'���H��H��[]�ff.�f���UH��SH��H���K��H��H�
��H�Z�N���H��H����l��H9���H�EH�{H����H��t	�|���H�EH���a��H�CH�@������H�؃�@��ubH�����tYH�U�у���tK��@tFH��u!H�����tH��ƒ���t��@H�DH�u H���i��H��H��[]�f.�H��u�H�����t�H��ƒ���tŀ�H��DH���a�����E��H�؃�@��u��W���f�H������H�؃�@��u��5������H��C=S�(H�8�'K���H��H���i��H��[�f���SH��H�����������K��H�����u)贐��H�SH��tH�B������H��[��H�����H�	C=H�2H9�t1H��fDH�J H��tH�	H��tH�A������H�RH9�u��u#H�����tH��ƒ���t
��Eu�H�{ �\���H��H�=�1��t������H�SH���G����P���D�SQ��H���{���H��H��1�L���1�H��[�Ї��H��H��H�D$H�5>��Im��H�D$H��[�fDH���z����B���f.���SH��H��������t#�f���H�SH��t
H�B����uH��[�DH��H��[��H��H��H�D$H�5��l��H�D$H��[�fD��AUATUSH�����I��H�D=H�(H�}H��tZ��=�W��H��H��t4H�x�E��H�}H��I��H)��#Y��H��H���xY��L��H��L���h��H��H�}H��u�H��L��[]A\A]�ff.�@��H���S���H��H���WN�����AWAVAUATUSH��H����������)���E1�I�����H��H�h�LDH����I9�}dH��N�4�L����I��H��tH��L��1���{��H�����uI��H��� u�L;k}H�C �DL��L��L���"g����H��L��[]A\A]A^A_�fD��N��H������H��H��1�[L�
��]1�A\H��A]A^A_�g������UH��SH���>���H��H�5��H��H����j��H��H��[]�ff.�@��USH����H�����H��H�5?�H��H���j��H��H��[]�f.���USH��H���.��H�??=H9uH��H��[]��蛌��H�{H��H��t
H�G����ue��u?H�����t6H��ƒ���t)��@t$@��uH�����tH�E�ƒ���t��@H�EH�s H��H���Rd��H��H��[]���[��H�E�D��USH��H��H�/�k~����H��H���F��H���u	H�����u)H�s H����c��H�{H��t
H�G����uJH��H��[]�H��ƒ���t��uF��@t�@��u�H�����t�H�E�ƒ���t���@H�E��kZ��H�EH��H��[]�DH��H����P��H��ƒ���u��b���ff.���SH����@��H�CH��t
[��H�=��<�$���H�C[�ff.���H�GH��t�f�SH��H�=�<��H�C[�f.���H�
�H����t���@��H���S��@��AVAUATUH��SH�Ӄ�tiA��@�����(H���D���H��I���ob��E��~,1���CL��H�H�T�HcÃ�H�t��c��A9��[L��]A\A]A^�f�H�>�xR��I��H��t7�(H���"D���H��I���b��I�}H��t���X��I�D$�DH�}�a��H��H��uH�/B=H�5��H�81���A��H�߾(L�m1��C���H��I���a���jf�H����H9��B���L��L�4�L���Qa��H����H�H�с� tIH����H��uT�H��tAH��H�0L���b��H��H�E�� u�H;]����H�E �fDH�PH��u&�H�@ �H��u_H�PH��f�H��uGH�x H�W��L��蘙��H��H�=�JH��1�����1�H�=ß���H�=��1�����`���H��@=H�5
�H�81��@��ff.���SH��H��H�H��tH�T$�q?����t
H�D$H��[�f�H��H��[����H�wH�?�4�i��ff.������h��f���H��H���H�t$H�t$�q���H���ff.����ATUSH��H��H�H�4$H��tD�CL�d$H��~�4L��H���5k����u1H�{L��H���rM����tH�D$H��[]A\�H���4[]A\�f���u�H�����t�H��ƒ���tǀ� H��ff.�f���UH��SH��H�����H��H���s��H��4t
H��[]�����¸��t�H��H��[]�ra��f���SH��H�����H�{H��t�CH�$4��u'H��H�V��Q����u;H�߾���H��[�@H�5���H��H���c��H�4$H��4t�H���lr��H�t$H�<$�>k��H��[����H���Cr���H��4HD�H��Ð��ATI��UH��SH��H�� ����H�
;��L��H����KB��H��t.H��H��H�5y��H�$H�l$�[c��H�� H��[]A\��H��H��H�5���6c��H�� H��[]A\�f.���S�v���H�=o1=H��臀��H�CH��[�ff.���H�=E1=�`�����H��H�=21=�E��ff.�f����>f=��xÐH��H�=hl�8��H����b���������f=H���D��SH��H��t��9E����u'[���w����t�H�="�H��1���k��H���r��H�=�H��1���k��H���r��DUSH��H�|$H�|$�R��H�|$�!D��H�D$H��� H�D$��H�H�D$H�H������ ��H�\$H��1�H���}W��H��u{H�߽�7��H��t9H���~��1�H��H���Ay���H�=HkH�������u
��d=H��H��[]�H�PH�D$H��� �{���H�D$H�X�v���H�<=H�5��H�81��;��D��US1�H���o��H�D$�l�H�H����H9�}pH�D$H��� H�D$toH��H�4ؿH�,�����H��tH�D$H��� H�D$tMH��H�<(���H��H�D$H��� H�D$u�H�@H9�|�H��>H��[]�H�@ �f.�H�@ �f.���UH��SH��H�����H�D$H9���H��H�
ϚH���1۾��>��H�T$H�5�H���_���<f.�H�H����H9�}>H�D$H��� H�D$t?H��H�<�H�����H�D$H��� H�D$u�H�@H9�|�H��H��[]�f�H�@ �f.���USH��H��6=H�H�H��tl�=H���J��H��tZH)�H��H���L��H��H���iL��H�{H� tH�{�5��H�����H��H����H��H��H��[]�_f���H���[]�ff.����ATUSH��H����y���������1�1�H�D$H�D$H�@f�H�D$H��� H�D$�JH�H����H9��DH�D$H��� H�D$�IH��H�4ؿL�$��G��H����H�T$H��� H�T$�H��J�4"�H��1��Pn��H�������H�D$H��� H�D$��H��B� usH�D$H��� H�D$��H�@ J� ����tOH�D$H��� H�D$�	H��J� H�����t&H�D$H��� H�D$��H�@ J� H� �����H�D$H��� H�D$tvH��J�< ���.���H�����DH�@H9��������HE<	>H��[]A\�H�@ ����H�R �����H�@ �����H�@ �f�H��������@��H����r��H��H��1�[L�����]1�H��A\�w��DH�@ ���H���������SH���w��H�߅�t���H�x>[�fD[����f���ATUSH��H���Lw������菿��1�1�H�D$H�D$H�@f�H�D$H��� H�D$�JH�H����H9��DH�D$H��� H�D$�IH��H�4ؿL�$����H����H�T$H��� H�T$�H��J�4"�H��1��k��H�������H�D$H��� H�D$��H��B� usH�D$H��� H�D$��H�@ J� ����tOH�D$H��� H�D$�	H��J� H�����t&H�D$H��� H�D$��H�@ J� H� �����H�D$H��� H�D$tvH��J�< �����H�����DH�@H9��������HE�>H��[]A\�H�@ ����H�R �����H�@ �����H�@ �f�H��������>��H���3p��H��H��1�[L�"���]1�H��A\�t��DH�@ ���H���������SH����t��H�߅�t���H��>[�fD[�R��f���UH��H��SH�����H��H��tH��H��[]���t����t�H���V����ff.�f���USH��H�t$H�$H���#H�|$��I��H�|$�_;��H����I��H�<$�N;��H�\$H��� ��H�SH�[1�H����N��H����H�<$H��� ��H��H�o��1�H���N��H����H��H���yp���H�=�bH�������u(H�$��u	H�����uMH����X���������\=H�$H��H��[]�f�H��H�����K���H�WH�o�l���H��ƒ���t���t���[=�f�H��H������H��H��[]�H��2=H�5��H�81��2��H��2=H�5-�H�81��{2��ff.���UH��SH��H����r����uH��H�޿�G���H��1�[]�fDH�޿���H��H�޿H��1���g��H��뺐��UH��H��H��SH���H����H��H����2��H��uH��1�[]��H��H���D��H��1�[]�ff.����1���n��D��AU�H�=��ATUSH���Qw���H�=��H��>�9w���H�=��H��>�!w���H�=	:H��>�	w��L�%j*=H�=�H��>I�4$�;y��H�-D1=H�e+=H��H�uH��n��H�;H�5����o��H�;�����H� �H�5^��da��H�;�H���H�5�7�Ia��H�;�����H����H�5�7�`��H�;�H���H�5�7�`��H�;1�H���H�5ǐ�k`��H�;1�H�����H�5t��S`��H�;1�H�G�H�5�7�;`��H�;1�H���H�5�7�#`��H�;1�H�W��H�5g7�`��H�;H�X7H�5Y7��\��H�;�H�6���H�5s>��_��H�;H��*=�H�5I��_��H�;1�H���H�5ˏ�_��H�;�H�ؿ��H�57�_��H�;�����H�����H�5�6�q_��L�-,=H�;�H�5�6L���S_��H�;L��H�5���<_��H�;�����H����H�5u��!_��H�;�H����H�5i��_��H�;1�H�
���H�5Z���^��H�;�H����H�5L���^��H�;�H�4��H�5u�^��H�;�H�I��H�5q6�^��L�-�.=H�;1�H�5�RL���^��H�;1�L��H�5�y�n^��H�;1�H�����H�56�V^��H�;1�H�z��H�5�~�>^��H�;1�H�"��H�5�~�&^��H�;1�H����H�5�~�^��H�;1�H�r��H�5�5�]��H�;1�H�J���H�5tG��]��H�;1�H�����H�5�U��]��H�;�����H����H�5�5�]��H�;1�H���H�565�]��H�;�H�D�H�5�5�x]��H�;1�H�D'=H�5�5�`]��H�;1�H�T��H�5s5�H]��H�;1�H���H�5L��0]��H�;1�H����H�5;5�]��H�;1�H���H�5X5�]��H�;1�H����H�5G5��\��H�;1�H��*=H�5M5��\��H�;1�H�D�H�5?��\��H�;�H�y��H�5+��\��H�;�H�N��H�5�4�\��H�;�H�C��H�5���g\��H�;�H����H�5��L\��H�;�H����H�5�4�1\��H�;�H����H�5�4�\��H�;�����H�g��H�5�4�[��H�;�H���H�5h4��[��H�;�H�Ѭ��H�5�P��[��H�;�H�����H�5L��[��H�;�H�+��H�5:��[��H�;�H�����H�5��t[��H�;�H����H�5��Y[��H�;1�H�]�H�5�`�A[��H�;1�H�U���H�5ߋ�)[��H�;1�H���H�5K4�[��I�<$�h9��H�uH��H���=�5+��H�=v�=�H�R��H�5`��f[��H�=W�=�����H����H�5;2�G[��H�=8�=�H�����H�52�([��H�=�=�H�����H�5ڞ�	[��H�=��=1�H����H�5 2��Z��H�=�=1�H����H�5�z��Z��H�=�=1�H�a���H�5�z�Z��H�=��=1�H����H�5�z�Z��H�=��=�H�����H�5'2�zZ��H�=k�=1�H�Z���H�52�^Z��H�=O�=1�H���H�5�1�BZ��H��"=1�H�=*�=H�52�&Z��H�=�=1�H���H�5�1�
Z��H�=��=1�H���H�5�1��Y��H�=�=1�H���H�5^���Y��H�=�=1�H���H�5I1�Y��H�=��=1�H��H�5�0�Y��H�=��=1�H���H�5u��~Y��H�=o�=�H���H�5D1�_Y��H�=P�=�H�|��H�5>��@Y��H�=1�=1�H�`���H�5�/�$Y��H�=�=1�H���H�5Ԉ�Y��H�=��=1�H�h���H�5�/��X��H�=�=1�H���H�5�/��X��H�=��=�H�����H�5�x�X��H�=��=�H�����H�5�/�X��H�=��=1�H�b���H�57L�vX��H�=g�=1�H�F���H�5�r�ZX��H�=K�=1�H�j���H�5v/�>X��H�=/�=1�H�n���H�5(A�"X��H�=�=1�H����H�5�O�X��H�=��=�����H�3��H�5�/��W��H�=�=�H�D��H�5�/��W��H�=��=�H�%��H�5JL�W��H�=��=�H���H�5���W��H�={�=�H�����H�5���kW��H�=\�=�H����H�5b��LW��H�==�=�H�I���H�5L��-W��H�=�=1�H�M��H�5���W��H�=�=1�H�1��H�5�-�V��H�=�=�H���H�5�.��V��H�=�=�H���H�5�.�V��H�5��=H�=��D��H��H�5y���H�=����[]A\A]�����H���c���N贮�_��ڿ�ժ������%�����q��������'
	�R��蝭��$���C����N'������B�O�zP�]�Y�;��F��!������G���!	�}���XY����a����	�����Z���߯�:B�e��{�;��Ɯ��P����H����0��H�����������t
1�������€�@��@E‰€���E‰ƒ�@��E��ff.���H�G H�@H�D�ff.���H�H�@ H�@H�D�ff.���H�G �xRH�H�Ѓ��f.���H�G H�@ ���H�H�@ H�@ ���USH��H��Hcw0HcW4Hw(��o,��HcK4H9�~6H�����H��xH��C0)‰S4�#���H��H��[]�f.�H�C01�H��H��[]�ff.����H���s����H��HD�H���f���H�WH�w�?��+��ff.�f���H�WH�w�?�+��ff.�f���SH��0H�H�OH�wHcC4�S��tiHc{0H{(H�D$H�D$H�|$H�=�H�t$ H��H�L$(�$H�D$�D$��,��H���tHcK4H��H9�?H�C0H)�H��0[�fDH�t$H�=,���H�t$�T$H�L$ �,��H��0[�)�C01��S4H��0[���SH��H�� H�GH�O�H��H�= H�L$�$H�D$�>,��H�CH�� �4[�ff.�@���WH�w�?�~&��ff.�ATE1�US�jL��~!H��Hc�I��H9�$HcsHHs@�WW��kH)kLL��[]A\�f�Lc�L����fDATI��USH�/H��� ukH����H�{@thHcSLLcCPH�*H��I9���HcsHH�{@H��H9���)��I�t$�CH�KLI�$ tI�t$H�[H��]H�A\�V��f�H�{@H�ou�H�{h�tYH�CHH�����aHc�H9�}Hc�H���CP��H��H�C@�W���@I)�H�L��RV���KL�CPH�{@)��`�����C%���% ���H�� =H�5o�H�81�� ��ff.�@SH��H��H����L����x�D$%�=���H�Đ��[�H��H�=��f`��fD��H�WH�w�?��;��ff.�f�AUATA��USH��H��Hc��H����H�*I��H��Hc�H����H��H���;3��@��u-H�����t$H�E�ƒ������H����H�s`H���+��������A�4<���D)≓�uǃ�H��H��[]A\A]���������9�~�H���Hc�Hc�H��T���fDH���x^��H��I�E�A���@��H�E�d���@��h���ff.�SH��H���H��t��!��Hǃ�H���H��t�_4��Hǃ�[�f�SH�����H���H��t�!��Hǃ�ǃ�[�ff.�@��SH��H�(�3��H��[�3��fD���H�=�+��ff.�UH��SH��H��H�?tN�4��H��� t!H�PH9�}$H)�H�}H��H��[]��I��H����H9�|�H��H��[]��5��fD1�1��G+��H��H�EH��H��[]�I��f�SH����u	H�����uH�v`H��tEH���
)��H��[��H��ƒ����H��r����H����N��H��H���(��H��[�ff.�UH��SH���A��A��H��u��uDE��u��?t'�]H��[]�D��?tH��[]�f����]H��[]�E��u�H��t6�zuH�׉t$�t7���t$��t�H��=H�5��H�81����@�t$�M���t$�xuщt$��M���t$H���ff.���H�G H�x(H��t��J��f.���f.���H�H�@ H�x(H��t�J�����f.���H���'��H��H��ff.����H���?�3��H��H��f.�SH��H���H��t���Hǃ�H���H��t���Hǃ��C�����C��1��H�ChH��H�C`�CpH�Cx[���ff.�@��H��tH�(H��tH����(��H��H��Y�@1��D�X�f.�AWAVE��AUI��ATI��UH��SH��H����H��E1��B1��H9�tXH����H9���H��t1H��t+A��u����I�,$I�]H��[]A\A]A^A_�A��A	�E���HE�I�$I�EH��[]A\A]A^A_�f.��K��H���0��H9�tA��f�����V��H���_���H��A����H���ff.���H�������H�@H��ÐAUATUH��SH��H�7�� uHH��L�gH���H��M�,�n ��H�T$L��L��H����B�����|t!H��H��[]A\A]�L�gH�_�fDHc|$H)�L�H���X��H�¨u�H�����t�H��ȃ���~1@��u�H�����t�H�E�ƃ���t�%H	�H�
���H���p����ff.�@SH��H�|$����H��H��t	H��H��[�H�|$�6��H�=�H��1��Z��H��H��[�ff.��AVAUATUSH�H�����t��t'H��[]H�A\A]A^��1�[]A\A]A^�D�H��t�I��H��A��I���4$��H��H����I�$E����A��	���2A�����A�����!A����H����/��H�E �+H�EH9��H�MH�Q��H�EH�E �B���H�E�9����A������L��H����?����?H�_fDH���X/��H�E�� u�H��H�ƒ�H9���H�U���z����A��t�~pA��t�A���$����	�fD�A��t��E��t����@A���A��}�A��
t��A���W�����DA��u��DH��H���(��H�UH��H���� �E���H�E����H��[]A\A]A^�H������fD��H�H�w��/��ff.���USH��H��H�t$�iI������H�T$H��H���t0H��uBH�C H�x(H��t	�+��H�C H�@(H��H��[]�H��t�H��ƒ���t��uoH�|$�+��H�k H�}(H��t	�M+��H�k H�|$H�E(H� t3H��Z<��H�E(H��H��[]�@H�D$H���Z���f.�H�����5��D��H��H�:�����ATI��UH��S���o��I�T$ H��H��H�z��[]A\�>��D��H��H�WH�w�?����H���ff.�@��ATI��U��SH���KU����uH��L��[��]A\�&.��fDH�����H�=�|H��H��1���V����f�SH��H�I H��I��L�+H�yH�щ�H���Z%��H��4tH�C �@Q[�f.���U��SH��H��H�F H��H�h�W��H�C �xP�tH9huH���[]ÿ4����ff.���H�O H��1�H�yH�H��H�APH)���X���H�H�B H�H�@H�@H�p H���ff.�f���U�XH���SH���Z��H��H�J�<H��H����Q��H�H�CH�CH�C H��[]�f���SH��H�?�`<��H�{�W<��H�{ �N<��H�{H[�D<��@��AUI��ATI��USH��H��H�-B�=H���3����tI�$H��[]A\A]�H���M��H��I����F��L��H���F��M��H��H�5<{H��H��
=H�81�������H��H�WH�w1��?�')��H��H����H���OH�WH�w�?�6,��H��H��ff.�@H��H�=L�=uH�?�=
L�D$�1�H�5,�=�P��H�D$H���D��H���� ��H��H��f���H����H��H��H��f���H�OH��H�7H���'��fD��S�+��H���R����u
H��[�DH�=�=H��H��[H�k�V'��fD��SH��H� �/A��H�{0�&A��H�{@�A��H�{P�A���[�ff.�f���H���y1�H���ff.����H�5��=SH��H��tL1�1�H���L��H��4tH�����u(H��=E1�H��H��H��H�=4L�1��
-��H��[�D�H�=���_V��H��H�U�=���H�55�=SH��H��tH��1�1�� L��H��[��H�=���V��H��H���=��ff.���UH��SH��H��H�5��=H����H���H@���u4H�����t,H���u�� t*H�x
uH�closed sH�@H9t0H����H���H����H��
u�H�closed sH��H9uЁxtreauǀxmu�H��H��[]���H�=rA�?U��H��H�-�=�P�����H������H���3���H���f���H���<$H�=�H�t$H���ѝH���ff.����SH���H�ĀH�\$ H��H�D$L�KH��PL�C1����H�|$XZH��uRH�D$8H�{ �P��H�{0�G��H�{@�>��H�{P�5��H��H��H�(���H�=A/�l$��H��[�fD���H�D$H�D$H�T$H�D$8�D��AWAVA��AUATI��USH��h�S��H��������\?��E���aA���oM�<$A����I�A�^�L�|$A����L�l$�7fDL�����#��H�|$�S��H�|$�%��L���!��H�D� ���t4Hc�M�|�I�?���H�D$H��u�I�?@��t3H���H�|� ���u�A����H��|Jc�H�>����?��H����fDL��A�^��t?��H�D$A���@���H�|$1��.���N�H�=�u1���������D�t$P�t$P1�L�L$PL�D$HH�L$@H�T$8H�t$0H�|$��-��ZYH����H�@H���H��hH�D[]A\A]A^A_��H�t$ H�|$1��-���DH�L$0H�T$(1�H�t$ H�|$�]-���L�D$8H�L$01�H�T$(H�t$ H�|$�8-���j���L�L$@L�D$81�H�L$0H�T$(H�t$ H�|$�-���=���fDH�������H�T$(H�t$ 1�H�|$��,������DH���h��H��h[]A\A]A^A_�1��P��H��=H�5�lH�81����H��=H�5�tH�81����f�������t
��tn��ty��tT��t/��tPH��=��H�5MlH�81��@��H��I����H� lH�lHE���H��9��H�s:��H��k������@��@t5��������H�)���uX��H�):H��HD��������u2����@�ǀuoH��k��u��H��kH�hkHD����tkPH��
=��H�5�kH�81��@
��H�Wk��uс�H�"kH�YkHD��@H�Ek��u���H��jH�#kHD��@H�ZE@���{�����H�?HH�{�HD��fDH��j@���K�����H�q8H��jHD��fD��H��H��1�H�����H�=���"��H��tH���HD�H���f��k	���H�����H���f�H���t�DAVAUATUSD�gpH�GhH�OxA����H��tpL�hH�G`L�pH����D��L��L���q%��H���H��tQ���HDž�M󉵘Hc���90��H���[]A\A]A^�f�L�5:�M���L��D��L���V?��H���nA��ff.�H��� uH����H9�u
�H�GH9�t�UH��SH��H��� ��H��H��H��[]�}5��ff.�f�ATI��UH��H�SH��H��0H�|$H�|$��H�|$H�wH� tH�wH�H�T$H�\$H�t$H�5N@L�d$ ��
H�D$H��x	H��0[]A\�I�t$H�=5y�G��SH��H��u�:�-��H��t8H)�H��1�H��
[��H�ߺH�5�x�E��[�������f�H������H��1�H��~���ff.�AWAVI��AUI��ATE1�UH��SH��XH�t$dH�%(H�D$H1�H��tD�!�:H������H���KL�xH)�H��t
H��*�}M��tE�e�����H��H�=�n1�1���H��M��tA�?-��A���A�H�T$E��L��L��H���f�H�D$HdH3%(�XH��X[]A\A]A^A_�H��H���������H�D$H��H��+H��H����&��H���D�<����M��tE�e��xF���/F��H���K����L���X<������A��u9��=������E��I���4�����������1�����A��H��H���_���@H���0��H��H��H�������tH�C�A��H��H��)v9H��E1���;�����D����L��H�=fm1�E1��lG������H��L�L$H��+H��L���%���DH�������DAVI��AUI��ATUSH��H�� �opH����H���4H�����I��H��tH���k���x�qL����H�L$E1�1�H�T$H����H�D$H�L$H�T$H�{���4�H�D$�kpH��H�C`H�D$H�ChH�D$H�Cx��H�� []A\A]A^ÐI��H���5�L��H�D$���H����H��� tFH�x��L����H�T$H�D$H9�����H�t$L���������Q���f.�H����H��u�H���8-u�H�D$1�H�D$H�D$�H�L$H�T$E1�1�1��z�H�D$��@L���p�H�D$H9D$�p���H�D$�b���f�H�@�f.�L����	��H���������w���I�|$I�$ tI�|$H�T$H�t$1���������ff.���H��H�OH�WH�wH�?�����H���f.�H��u
�f�UH��SH��H��H�5��=�x��H��t�U��������H�����uMH�5N�=H���F���UH��t��������H�����u#����tH��[]�fD���U뫃��U��H�Q=H�52kH�81�����H�9=H�58cH�81�����H�!=H�5kH�81����H�	=H�5!cH�81����H��=H�5�jH�81������ATUH��SH9�toI���8���I�D$ H�] �o�oHK�oP S �oX0H�{ [0�o`@c@H�@PH�CP���H�C H�] H�{(H��tH�C(��'��H�C(H��[]A\�f���SA��1��
H���H��H�\$ H���H�H��H��D��H�D$ P1�L�L$ L�D$�g��H�D$H�|$ H�D$0H�D$H�D$8XZH����@��ttH�H�|$0H�|$H����@����H�H�|$8H�{P���H�=�pH��H��H�6j�1��H�|$PH�@H�xMH�ĐH�D?[���S2��H���fDH�D$0����H�|$H���{���H�D$8�����D�{���H�Đ[�f��2��H���[���ATA��UH��S�������t1ۃ�Ut��[]A\�@H�}��:4����t�H�uE��t
H��D���h��H�=I��4+���f�AUL�o`ATUH��SH�_PH���f�1�L���v�����tBH���z���}$H���?����}PE1�1�H��1��}A��A��t�E1�H��D��[]A\A]�@H��H�E8������E@��f�AWAVAUATUSH��H��8�w �H�T$�
+���Ń��t+�D$(1�%�=�t1H��8��[]A\A]A^A_�DH��_H�C8�����C@�А�s$H��$���*���Ń��t�L�sL�kL�t$I�����L�|$�s �{$L��I���tyL����.��I��M��~M)�Lc0M��ս�b���I���u�H�s`1������Ņ�u�������8�����&�/�����t+H�
G_�C@D��H�K8����D1��i.��I���@H���(�������U�������I���tL�l$@M)��0���D�s���1����{ H�����H���t
L�l$@I)�����U��t�H�
�^�S@��H�K8�{���ff.��PXH�5�nH��H��<H�81����f�SH�����H���?8��H��E1�1�1�H��[�<��ff.��H��1�1��d�@AWM��AVAUATA��USH��H��HH�D$ H�$H�L$H�D$�{ I�����H�T$H�4$L���9��I��M��tPI���uJL�s`D��L���{�����u��R���H�D$���t>��&��I���H��bH�
�]�C@HE�H�S8H��HL��[]A\A]A^A_�fDH�kP�#f���(������\���L��D����������H������{ H�������{PE1�1�1�H��E��u��>���H�%]H�CH���E��uH�T$H�4$�-��I������DH�$H�t$�|$ ��H�=
��H�D$(H�D$H�D$0�&��I������fDH�8�H�C8H�D$��C@����ff.�AWAVAUATUSL��$���H��H�$L9�u�H��HdH�%(H��$8@1�H�GH��H���H�D$H�G�D$/H�D$ H������W(�D$(����H�D$0H�l$H�D$H�C`H�D$H���|$/��H�|$��$H��H���?��D$(����L�t$ H�T$H��1�M�����I��H��~yI�L�t$ M��E1�E1��H�D$�{$L��J�48�\��H���tHc�A�HC0I)�tgMc���f�H�t$1�������u����������H���H������u�H��$8@dH3%(��H��H@[]A\A]A^A_��H��L)�H�|$�HE����H�T$I�����H��1����I��H���%����@�@���fDH��_�C@H�S8�m���D�#���H�t$ 1���{ H���k��H�D$ H���t-�D$(H�D$ �����?���f.��D$(�(����E�D$(������H�*ZH�C8�D$(�C@����x�����SH�������uH���g���1�[���SH��H����t �?��H�S H�H�BH�B�[�fD�K����f���SH�@��t�]?��H�S H�H�BH�B[�D���H�S H�H�BH�B[���ATUSL�gM���H���H�=l�7��H��������"�؃����$H���*���AH�{�H��H��H���M��H�5�[�H���
��I�t$H��unA�T$����H�5�XH��1��`��[H��]H�5Q�A\�x
���H�����u�H����H���s���H�
�<H�8�h���DH�����A�D$��y��	H�5�gH���
���f�[]A\�>����H�5�gH����	���W����H���<H�8���H���<H�8����H�Y�<H�8�����H���<H�8�����H��<H�8����1�H9=�=tEH9=��=�t7H9=��=tNH9=��=t=H;=��=�tH��@��u���H������#=��H���fD��f���f.���9=�=r�S�����H��H����!����t
����8	t,�=9�v���l=�f=9�r�H�Đ[É�H�=�^1�����ff.�f�ATA��U��SH��H����	���l$H��1�H�����H��H�=�H�$D�d$���y�
��������v0H��H�=.f��4�����A���f1��H��D��[]A\�f.��[0��1�H��H�����H�=x�C�A�ą�x����%1�����U1����SH���x������tY�‰Ã����N�9�uH��[]��1��ھ���@������u��F�8��6���ډ�H�=�]H��1�����%�8�6����H�=�]H��1�����ff.���S��� ����[�l0��ff.����U��1�SH���+���Ã��t��~
��=��u���l ��H����[]��1����������t����u���= ���-_=H����[]��i�8�6����H�=A]H��1�����ff.�@��H��H�H� uH���W�wH���
�H��H��H�@��f.�ATUSH��H�$H��1ҾH�=fTdH�%(H��$1���Ń����H����H���I��H��H���tpL�$H��	�d@H�XL��H)�H��	~P�
H���
��H��t>�;FDSiu�f�{zeu΀{:u��H�{�
1���������	���f.��������	��H��$dH3%(��uH��[]A\�������f.���ATA��US9�t1����~
��=��u(��D��������t2���x����[]A\����@�������u���8&t
�������fD�Z=��D�����������USH��H���-=��tI��/���Ń��tH����[]���#�8&u���=H����	��������	���Ń��t��;����{���H����[]�ff.������=AT��A��U��S��t'�1�����Ã��t4��~��[]A\��1�1��w����Ã��t���9����[]A\�f��k�8t�������[]A\�f.�D��1���1��2����Ã��t��
=�ff.�@������f���H���wH�W�?��t1����H��H��D�����H��H��f.���PXH�5eQH��H�0�<H�81���ff.���@��uH�����tH��ƒ���t	��uH���H����ff.���H��t�PH�.�<H�5�PH�81���ff.�f���SH�������C��x[���DUSH��H�������CL��t�C t
H��[]�fD������sLH�ŋ{��Hc��%��H��xH�CHH��[]Ð�E��t�u��K �ff.���S���H�XH���J��H�{ht#H�{`H��t
[�%��@���[H���%��f��[�f�AUATM��UH��SH��H��(H���<H�D$H�H�D$���$��H����L�����L�`L�����H�|$�~�M�d$`I��M���eH�D$M9�tMH������=H�D$�H�<�<H9�hL��1�1��/�H�5�H��H�D$��H�D$H�|$H�EH�����H��t@��tZH��H�H�H��([]A\A]�fDL�l$L�D$1�L��H������H�D$H��t�L������H�D$H������닐���H�H��([]A\A]�DH�H��uH�D$�[����H��H�t$���H�t$H��t`H�D$���fDH��� t`H�x����A�|$����L���!����H�D$�����������I�����H�H�D$H�D$�@���fD���u����I�MH�X�<H�5AVI�T$H�81����f���USH��H��(��uH�����t
�����tH��H�5�=��H���
��H��([]�H�L$L�L$1�L�D$H��M�C���H���;��H�hH���o��H�L$H�T$H��H�t$�x�H��(H��[]�ff.���ATI��UH��S����H�XH���!���CI�����u
�CH��[]A\�D%�����CH��[]A\���SH�_H�������C[%��H����ff.����S�v��H�XH�����H�{hH��uH�{`�CtH��t"[��!��@H��u����H����f��[�f���S���H�XH���J��HcS���tH�D[�fD��AT1�I��H�ӹUSH��0H�L$L�D$����H�D$H�|$H�D$@�����K1���ſ�/��H�t$1�Hc��@��L��H�����L�`L�����A�T$H�t$ H�=���H�\$(�T$ �l$$��H�Ã��t��t:���H�D$�uH�����t
H��у���t4H��0Hc�H�D[]A\����%�����k������K���@�� tH�HH�PH��Hʀ:u%��f�H��H�H����I�t$H�=Z�")��H�K�<H�5\SH�81����f.���AT1�UH��H�r�SH��@H�L$L�D$�i�H�D$H�\$H�D$����H������H�t$�H������H��I���'��H�hH���[���UH�t$ H�=���H�\$(�T$ L�d$0�9��xrH�T$��uH�����t
H�
�΃���t%H��@H�[H�D]A\�DH���(���H���b����� tH�JH�q�H�JH�9u$��f�H��H�r����H�uH�=�X��'��H��<H�5RH�81���ff.���AU1�E1�ATUSH��H�,�H��H��L�D$�&����H�,$@����H�H���
��H�XH���8���C�t�{L������������uD�?�D��H����{I�����H���tZH�@H�x3H��H�D[]A\A]��K4��t�H�=�H1��)���f�H���X�H��[]A\A]�DA�$��t�H�sH�=�W�&��H������H���$���H�|$�F�A������H�g�<H�5OHH�81��V�fD��S���H�XH���*���C[H��=H��?���f.���S����H�XH���
���{�b�[��H�H�Ѓ��@��SH�_H����
��HcC[H�D�@��H�
�'H�lH����@��H�
�'H�LH��4*��@��H��H�G H�xH�����t����H��H�����fD����H��H�����ff.�@��H��H�G H�xH�����t���H��H���F���fD�{��H��H���O��ff.�@��H���t���@��SH��H����H�CH�@XH��HE�H��[�ff.���H�G H�xH�����t�6�PH���<H�5�&H�81��}�ff.�f���AV1�AUATUSH��H��H��@H�L$L�L$L�D$���H�T$��t$����H��������������H;ö=t9H;��=t0H;��=t'H;��=tH;�=tH;n�=���H��E1��e�H���m	��H�hH�����H�|$H��t@����H�I��H�|$E1�H��t@��tzH�I��H�\$H;(�=t|H;�=��H;
�=��H;�=��H;ص=��H;õ=��H��@�[]A\A]A^��S��I���u����C��H�\$H;��=I��u���E�D$ �1*���UH�t$ H�=b���D$$L�l$(L�d$0��I�ƅ�t�H�uH�=�DI��1�L��L�����D��H������f��	�f���f���y���fD��i���fD��Y���H�W�<H�5WDH�81��.�H�O�<H�5'DH�81���fD��SH����H9�tH�@H��t�P��yH�[H�������C��x1�[���[�f���AUATE1�USH��H��H�����A���<�H9�t&H���?��H�hH���s	��H��t
D�mE����H�����H�XH���M	��H��t�k��yH���[]A\A]Ð1�����B����t%�ƒ�D9�t҃���D	��1������u�H�sH�=�Q�!���1��D��������t.�ƒ�D9��]�����D��D	��1��������=���H�uH�=3Q� ��ff.���USH��H����H9�t H���!��H�hH���U��H��t�}��yIH�����H�XH���5��H��t�{��x1���=����t6�t)H���[]��1�������t�u�H��1�[]�H�sH�=WP� ��H�uH�=GP����f���UH��SH���^�H���f��H�XH������CH�����t���CH��H��[]�fD��CH��H��[]����S��H�����H�XH���B���C[H��<H��?���f���AWH�G AVAUATUSH��H��hL�/L�wH�D$H�GL�l$@H�D$0H�GH�D$(I���z�D$ E1�H�D$H�D$H�l$(H���>H�$I���4L�D$0H�$A�|$H�T$H�t$�������T$ �	��������H�|$H�������H��H�����H�|$���l���H��H�����H�<$���Q���H��H���f��H�|$��H�EH�E uH�E L�8H�CPH�\$ E1�H�D$L�l$@L��H�l$0�lDH����I9�}mL��L����H��I����H���f��H�hH������}H�t$�����u�}H�t$�����tL��H�����I��I�E�� u�I�EI9�|�H�\$ H�l$0H�|$��H�EH�E uH�E H��H�E1�L�l$(H�\$H�D$H�C0H�D$�ZH����I9�}]L��L�����H��I���V�H����H�����H�XH�������{H�t$�������I��I�E�� u�I�EI9�|�H�\$H�<$��H�E H�E uH�E H��H�E1�H��@H�l$H�D$�H����I9���L��L���%�H��I����I��H�����L��H������H�@H��H�$���H�$H�ދx�%����uyI9�t$H�����L�hL������A�}H�������uPI��I��� �h���I�FI9��k���H�l$H��hH��[]A\A]A^A_�@H�|$L����������fDH�|$L�������f�I�m�L��E1�����H��E1�L���D$ I��L�4$�pf�H����H9�}|L��H�<���H������L�pL�����A�~H�t$�6��A�NL��uA�����tA�~H�sP�D$ ���A�FA9�DL�H��I�E�� u�I;m}I�E �DH�D$L�4$H�D$�D$ ������H�D$XH�D$PH�D$PH�D$0���D�L��E1����H�C@H�\$HM��H�$I�FH�D$8�f.�H����I9���H�D$8J�<���I��H�����L��H������H�XH������{H�4$�$���CA9�DL�I9�t,H�����L�xL������A�H�4$����A�GA9�DL�I��I��� �i���M;n}I�F �o���f.�H�\$H����fDH��E1���H�C0H�$D��H�D$H��H�mI���S@H����I9�}dH��J�<���H�����H�����L�hL�����A�}H�t$�>��A�E9�L�I��I�$�� u�M;|$}I�D$ �f.�A��H�$����@1��)�H��H�����H�|$�q���1���H��H������H�<$�o���1����H���h���1����ff.�@��UH��SH��H��H��G�H��H��u&H�UH�BXH�JX�H��HD�H��[]��H�����H����ff.�USH��H�G H�hH���<H9(t)H��@��t-H�5~�=H��tI1�1�H������H�C �@P�H��[]�fDH�����tʋE����u��H������D�H�=���g��H��H��=�ff.���H�W H���zPt�zQt	��H��H�|$�2���H�D$H�P �BQH�����SH���#����Ct�CL��u[�@H��[�'�H��<H�5H�81����ff.�@��SH��H��H��0H�t$��u
H���������H�D$H���X�H���`���H�XH�����H���|��H�|$���S4H�D$��u~H��� tNH�HH�@�SH�t$H�=��H�D$H�L$ �T$�D�H�T$H�T$H�T$H���tOH��0H�D[�@H��H��H�у�몋�����H����M���D1�H�=N8�:��H�D$�j���H�sH�=�E�����������u�GL�f����GL��t�@�������S��x=��������t!��Ut1���t[����[�@�������[��U��DAUATUSH��H��8H�@��D�kLE��u_L�d$H�-�����{�X�������HcCPH�K@L��H��SH�L$�T$H�D$ ����H��x�H�D$u`H�CHA������E1�H��8D��[]A\A]��H�{hH�GH��tD�CP��"���H�C@�Q���f�H���h���H�D$�CH�CLH��8D��[]A\A]ËC%��H�H�� ��H�����% ��돋sH�=�6�/��H�sH��H��tH�����H��H�=�E���ff.�AW��AVAUATUSH��8D���Lc���t$E9��H��H���E���&Hc��A�A9���H�|$ HcSLIc�L�t$(H�|$�Uf�H����d�I��H����D9��������HcSLIc������Lc��H���Lc[HL�{@Lc�I�I�H���D�L$M�H�t$N�,L��L�L�|$ L�l$(�?��H�����H�D$ L)�CH)CLH�D$(L)���������=���HcsHHc�H����D$H)։�Hs@�����D$)CHCL����fDLJ�1���������'���H��H�D$�K���H������L�\$���tHcSLHc�����H���H��tsHc��E1�1�L��Hc��H���L�\$H�Hc��H�L�1�H�l$(�>��H�D$(H���H)����4��D9��L�\$tfDA�H��8L��[]A\A]A^A_�Ic�H�4H���	��D���Lc��1�ǃ�H�������AWAVAUATUH��SH��(H�hH�T$��E1�L�l$H�|$A��L��1�����1�H������8�L��H��E1���1�H������H��H��t
H����H��t'�����t�E��t�H�|$1��4�������@H����E���H�|$H�����H��([]A\A]A^A_��G
�?���L�w`I��M���,M�� H�|$�D$LD�L�|$E1�1�L���#�����L��H�|$H��H��H)��*��H��H	���H�H�|$H���~����|$0t'H�D$H� uVH�xH�4L�L��L���
��I�H�|$I9�e� I�� ����EL���w���H������j���f.�H�xH�4�fDH�|$1�������H�|$1����H�|$H���Ʊ��HcL$H�H���H	�H�H��([]A\A]A^A_����I�����������tE��uL��H������H���#��H�|$1��w��������ff.�@H�������H��tH��uH���H������f�AUATUSH��H��(H�h�HH�D$H�k`H����1�H���h���Hc����t=Hc��H���H��H�H�H�����A�ă�������9���'H���@���H��u�H�D$�����uH���3���H�D$H��([]A\A]�Hc��H��H����E��������H�D$�EH�0H��([]A\A]�f.���H�T$��H��苭��A���H�|$� H���߯��H�H���H	�H�H��([]A\A]�@�G
�����H�����������}��H�C@HcSHH�<HcsLH�H��H����Hc{HH{@A�Ņ���9CL����0�S���CH�kLI��H��L���Y���D�S���H���9���Hc��Hc��H��0H���H�H�H��`��H��H�T$��聬��H�|$����H��蟭��H�D$����}����H�� �.�H�|$������H�GH� tH�GH�H��?H�Ձ�H������������HcsL�q���CLI��L�h� H��L���I�tH���Z�������H����������HcsH�Hs@L���+��I�$�CH�kL�� t�I�|$I�t$H��H���c�HcSH��H�C@H�<�O����?�F�������
���CHI�ăkL�o�����?���Hc� �
��DkHI��D)kL�H����0�>������0� HN��)���H��<H�5�-H�81��	��f�AWAVAUATUH��SH��8dH�%(H��$(1�H�h�ML�e`M����A�D$1�H��L�l$�D$�y���f�Lc��L��M��tdHc��H���|$I��ui�?
���S�H��H��8�f�H���?
u
��)��D$H9�u�)�1�H�������Lc��L��M��u�H���%���H���{���1��m�I�L��L��L���?��
t �I�L��L��L��L�����
u
HcD$I�M9�w�M)�1�H��D��D�|$)É�蔩���s����H��$(dH3%(��H��8[]A\A]A^A_�H�\$ �G
�����f�HcULH��u!H���O�H������4���HcULH��t�HcEH�HE@H��HF�8
�v������
�H���8
u'��u�H��H�����H��u�H�uH�=�:�	��f�Hc�H��H)�H���Ϧ��H���f�����@�;���I���������ff.�AWI��AVAUATUSH��H��8�BLH�4$��tiH��E1�H���f�K�<'H��H���a���H��~H��I�H)�H����H��H���?�H�����y�H�$H)�H��8[]A\A]A^A_�DH�,$H����H�D$L�t$L�-Ƨ��H�D$M�$�y6�{�.���tB�SL��L��L�d$H�l$ �T$���H��u���H��HD$H)�H��~ H���H��8H�����[]A\A]A^A_�f�H)�H$H��8[]A\A]A^A_�1��7�����SH��H�WH�wH�?���H�C�4[�ff.�f���S��x=���P�����t!��Ut1���t[��3���[�@������[����DUSH��H������K4��uH��1�[]�f�H��H�-�������S4��;�����H��tFH��������t��{�r���tNH���v��C4��~�H���H��uËSH��H���U����H���H��H�5�����*����H�������[]�@��SH�����CtK�C4��u6H�{XH��u[���H�XH�����H�������y�1���
��@H�������y���H���<H�5F(H�81����f.���SH�����������u[�H���<H�50H�81����ff.�@���w�����SH�� H�t$��H�XH���1�H���I��H�|$H��t'@��u0H�|$���H�|$���H�|$H���G���H�� �[�@�C��H�|$��D$�0��H��H�D$��fD��AT1�UH��H�b�SH��0L�d$H��M���X��H�$���H�H��L���]���H��uH�D$H��0[]A\�f.�H����H�hH���L�H���d���EL�����}���H���)�H��L�����H�|$�T�EH�L$�D$H�AH� tH�AH��<H�t$H�D$H�=o���H�\$ ����L�d$ I�����H�|$L���i���M��uH��`H�D$��/���H������#���H��у���~)��H�����fDH�����H�������H�����������H�S�<H�5�%H�81��B��H�uH�=3�R��f���UH��SH���������H����H�XH�����f��CL��)H������CL��tZH������y�H��H��[]�@HcSHH�K@���CL�r�sHH�<H���H���%�������H���x��fD���H�����H��H��E1�[1�1�H��]�;��ff.���S1�H��H�=�,�z�������u!H�="�=H��t%���H��1�1�H��[�@�H��[�����H�=�$�	���H��H�ݓ=���S��H�XH����H�����������u�CL��t	1�[�DH����H���H���y�[�ff.�f�AWAVI��AUATUH��SH��hH�|$0H��H�T$@�
�H�XH���>�H���v��H��H��?I��u���yH�s`H�t$H����H�м<H�t$0H92u���8H�|$��H�D$0H���sH��� ��H�D$0H�@H�D$(H����H�D$0�D$HH�@H�D$8H�D$(H��H�t$8D�4�D$H�D$ A����D$ODH�{h��1�H���;����@f�L��H��L�����D��D)��L)��8H���3�H����D���E��t�Hc��Mc�H��H��~L9�}Lc�M��H��L��D��H�L$���H�L$H���kI���q���L��H������I���l���fD�1�H���9�H��H��� t~H�}������H���|H�Ւ=�CH�t$@H�R ���CH9r�CH�H�B�f�H��tqH�T$1�1����H��H��hH��[]A\A]A^A_�������fDH����H�D$(��H�D$0�D$HH��H�D$8H�D$(H���1����E�H�D$�H�{h������C
�����H�|$�FH�D$�x�����H�|$�T��A�ą��RH�C`H�D$�u����C%�D$��D�t$��H�������LckLL��M����HcKHHK@I��H��~I9�LO�t$L��L���B��I��L)�H��M��LE�I����I�$�� unH����I��K�t5L���7��L��I�|$I�$ tI�|$H�L��H��L)�蟛��M����H�����CL���:���H���z��-���DM�t$�f�L���(�L��H��I����1�����H���X����D$I���.H��L���{���H��H����D$���������DD�t$I�$H��% ��H��I�t$H����D�,E9���H���;H��I�t$��H�,H�|$H�U�H���z��D�|$ E����H�T$H��H�����������A���D�|$ ��H)�D�hMc�I���,L��H��L�����D��L)�D)��A����GI�$E��H��% H����H����H;L$(�����I�t$H�I��H�|$L+|$(L�����I9��c���H�|$0t�|$O��H�T$(H�t$8L������D$���H���)���I�$H��% H������@I�t$I�l$H�����fDI�L$H;L$(���I�t$H��Z���I�t$I�T$H��D�,E9��h���1�����DL��H���u���I������DD�t$����fD�����fDH�t$0H��� ��H��H�V��H9T$8����H9D$(�����H�o�<H�5sH�81�论��fD�D$A����V����D$H�K���H�����>���fD�D$HA�����H�D$(H�D$8�����H�D$�G����H�D$0H�t$8H;p�\���H�@�R���H����H�D$�@�D$H���Z�H�=�k���H�|$I���5�1�L��H����H�D$0���H�t$0H�H��������ƒ�����H�€�H�~H�� %H����I��H����I��pL��I���*���H��L��詛��HcT$\H�t$@H��H�H%���H	�H���=H�E�CH�R ���CH;r�����H�BH��H�BH�B����H�D$0H��� u+H�t$0H���D$H��H��H�D$(H��H�t$8�(���H�D$0�D$HH�pH�@H�t$8H�D$(H������H�|$�_���������H�5?j�H�D$(H�t$8H�D$0����H���f�������xH�C`H�D$�I���H���������H�D$����H�D$\�D$\H�D$I��H�D$ �f�H�����������D�kLE����HcKHIc�HK@�
H��H��H�L$���H�L$H��I��t
I��I)�A��Ic�C�D%�D$I����Hct$L�����I�GI� tI�GIc�H��H��H��g����|$\0t5Hct$I� uOI�GH�H�l$H�L$ H�T$H�<(��H�H�l$M�������D�kLD�d$E���
���H���������I�GH��H��H���L���DkHI��D)kL�u����D$���ff.�@SH��I��H��H�L$H�����H�t$H�<$H���'���H��[Ð��S����H��H��苳��H��[�fD��S���H��H���k���H��tH��[����ff.���UH��SH���	�H������}H�UH�u�X���H��H������H��u�H���[]�ff.���USH��I��H��H�L$H������H�|$t7���H����H��H����H�t$H�<$H���4�H��u�H��H��[]�H��<H�5~ H�81�茵��ff.����H�WH�w�?�m���ff.�f���ATI��U��SH��H��������tSL��H�L$H��I�؉����H�t$H��u�af�H�����H�t$H�<$H����H��u�H��H��[]A\�D�+���H���S�L���H��E1�H����H��H��H��[]A\�H�
�<H�5�H�81�詴��f���AT1�I��UH��S��H�=��������u)H�=b�=H��t5���H���L��[H��]A\���@L��H���[]A\�����H�=��	���H��H�
�=�ff.���ATUSH��H�t$���H�XH������H������H�t$H����@����H�k`H����H�����H����~�H�D$H�{h��H�(�� ��H������H��A���K���Hc��Hc����)�H�H9���Hc��H���H��H9���H�t$D)�Aԉ��D���H� ��H��H�H��H��~�H���[]A\�H��@��uH�����t�����
��H�|$����H�|$�\���H�{hH�D$�����C
����H��H������DH�hH���������H���<H�5RH�81��w����H�v�L����H)�H�H����������H���)������H�t$H���^���fDH�k`H��t���H������H�D$�M���fD�[�H�|$H���Ґ��USH�����H�XH�����H�����H�khH��t�CL��t-H��H��H��[]���@H�k`H��u���H�ŋCL��u�H���h����fD��H�����H��tH���胿����USH��H������H�hH���"��H���Z���H���t�m����EH��H��[]��+����EH��H��[]�ff.���S���H�XH������H������HcC[H�D����AWAVAUATUH��SH��dH�%(H�D$1������H���6��H�XH���j��H��袴���CL����H�{hA��r1�H������@Hc����tKHc��H���H�S`I��H�<H����H�H��p���A�ă�������9���^H�����H��u�H�����E���H��H�T$dH3%(�@H��[]A\A]A^A_�H��A����H�{h�>�����A��E�D)��D���H�|?�����������L�k`��Hc��H���Hc��I��H�<M��t�H�1�H�L���=�D�������fD�C���H���k�E1�1�1�H��H����������C
�����L�k`M���I��f.�H���h��������HcCHHcsLL��H�{@H�H�H���A�ą�~<�CLA9��HcSHH�{@Hc�L��H�H�H�1���DcHD)cL��H�|?����됃����}�A��A����DcLA��~M���#f�Hc�A)�I�E��~H�������xVIc�H��L��������L��L��L���F�����~2L��L��1�L�������H�|?�F�������,��I�����L�k`H���<I�UH�5C�H�81�蔭��H���<H�5�H�81��|����g������S1�H��H�=��������u!H�=R=H��t%��H��1�1�H��[�`��H��[�g����H�=�����H��H�
=���ATI��US�p�L��ty���H�XH������H������H�khH��t?�CL��uH������fDH���(��H��H������H��u�L��[]A\��H�k`H��u�����H���D[]A\釯�����S1�H��H�=��������u!H�=:~=H��t%��H��1�1�H��[�P��H��[�����H�=��	���H��H��}=�SH������xH���������H��[�1����@��ATUH��S@��tH��H�H���Q��H�hH�����谫��H���I�����1�H�ދx��H��xH�@H�x>[H�D]A\�@A�$��t�H�uH�=��X��H���h��H���w���[H��]A\鴦��@��ATUH��S���H�XH����������H���I�����1�1��x�R���H��x=H�~=H�@ H9huHcSH)PH����CtH��請��[�]A\ÐA�$��t�H�sH�=����AUA��ATUH��SH��@��tzH��H�H�����H�hH���0���[���H���I���:���D��H�ދx蜽��H��xH���[]A\A]��A�$��t�H�uH�=%���H�����H���|�����S1�H��H�dyH��H��L�D$�^���1҃�tH�4$H���+���H��[�DH�|$�V�������f���USH���!��H�hH���U��H���m����1��x�μ��H��H��x&HcELH)�H�@H�x0H��H�D[]�@�;������t�H�uH�=2�%�DH��H��[]钤��f�UH��SH���wHc_L�H���0����u�D$%�=�tH�� H�ĘH��[]��H������x(�}�1�����H�T$0H9�|�H�H)�H��HI��1��e�D��AT1�I��H���USH��H�l$H��I�����H�$H��������H�H���)H��H���ډ��L�����H�hH������H�����H�����EL��t^H�|$H��H��1�輟��H�|$H��H���\����H��t(H�D$�uH�����tH��у�������H�H��[]A\ÐH���h���fDH�����H���B���H�|$1���H�D$H��[]A\�fDL������H�XH�����H���T���H�l$H���'���H��H��H�����H��[]A\þH���g����\���H�5�<H��H�5�	H�81��Ѧ�����H�WH�w�?�]���ff.�f���S�F���H���N��H�XH�����H�������x�SH��H�=�����d�����x�[�1��b�H�sH�=O�r�f���USH�����H��H������H�XH�����H���2����x4�SH��H�=��������uH���[]�@H��H��[]�:���1����AWAVI��AUI��ATE��UH��SH��H��(�޶��L��M���JH�{(H����E���L�K4Hc�Hcs8J�*H9���H�l$I��L��E1�H�$�T�L��H�5&����A���H9���H���I�H)��d�����{��������H�����M9���H���K�&H�l$H�D$H��u�L��軁���f�E����H�C0�� �C8 �Y��H�C(�`���H���H���\'H�{(�K4H������Hc�Hcs0H�Ѕ�t1������C0H�L��L������Dk4L��H��([]A\A]A^A_�f��C���������H��������H��(H�����[]A\A]A^A_ËC�uQH�C0�� �C8 ���H�C(����H���H���&�C�(����J������;���HcS4H������@H����HcC4H�{(����ff.�AWAVAUATA��UH��SH������H��H���\���H��H����H����H�U�� �
H�}������H������H�XH�����H����L�k`M�����w���I9���������@H���H����H�{hH���[���H��H����H���H����H������H��H�U@����H��������Ѓ�����H�Ѐ�H�}H�E�CH��H��ujH���}��H�U�\��������������H��H��[]A\A]A^A_���C
�����Cp�������H������H�H��� �2H��H�u��E��H��H�����H�����H�T��D�kpL�s`ǃ�L�{xD����D$M���'��I9�L�sh�M��uL�s`I�~�c�H����A����H��M�vH�D$D���L������L�D$H���D�kpH�KxL��L��L�D$A���D��薽��L�D$H��H��H�����H���H����H������H�����H���H��H����������H�UH�u����H�5�s=H��H��1�H�ߺ[]A\A]A^A_����f�M��������H�5
R�T$L��ǃ�Hǃ�H���ż��H��H���H���0Hǃ��C��[������R���H��軦���xuH��警��H��襺��������H��蕦��H�5�H�PH��<H�81�蹟��f��Cp�uO�D$L���Hǃ����Hǃ����L�k`�ߵ��I9������H�{`���DA����L���I�~L�5�PD������M��H������@H���-���H�sH�=U�(��L��D��L������H������H�5�P�T$H�����H���������1��5���D���WH�wH�?����ff.�f�AWI��AVAUATUSH��h�t$dH�%(H��$X1�H�(���W4H�\$(�TIco0I�O(Hc�E1�I���1�H�L�H�,1�H��H�l$(��H�T$(H)�AW4A�W4��t:��v5����IcG89�u�L���������A�W4IcG8�f.��D$�����H��$XdH3%(��H��h[]A\A]A^A_�fDH�D$(L�d$PH�D$I��$H�\$0H�D$H�-�y��I���L�D$1�1�H�L$E1�L�d$(��A��L9d$(u,A���b���A���X���A��t�f���W���fDM���YH�D$(A�WH��H��L�t$8L)�T$0H�D$@���H�T$(L)�H9�t�A�H��I�LI�貸����t^A�w����I���H��t��H��t�A�WH�D$(1�H��H�=7y��L�t$8L)�T$0H�����H�D$@誵�����T$�����������HcH�D���f�I����4����p�����L$���X���H�=�
���H��H��<H�8�n����:�����@AWAVAUATA��USH��H��H���D�oL�7�gH���H��t@��tuD��H������H�ŋC4����H��A��E��t|H���ww���C�C����H��ƒ�S�uA��~M���L����H��[]A\A]A^A_ÐH��H�5�H�$�D$�����S4H�Ņ�t+H��A��H���+����yE��t�-���Hc(H�l-D�C�C����H��ƒ�S�u
A����H����A���e������]���@��tW@���������t+H��H���H��t@��t�E����
������H���p������fDH��t�E����
t��u��f���I��@����H����A�$H�sH�=��=��DH��A��M��t{E�������1�H�����L��H�=�}��蚘��������E��������Hc(H�l-@���g�������D�ә��I���r����Ù��I��H��踥���b���D�,$E��u+1�H��H�����H�=�}��������x����fDD�,$D���$������ff.�@H�G H��t��DSH���'���H�{@H��t
蹮��H�C@H�{(H��t
裮��H�C(H��[�Bz��f���ATUSH��耨��H9�tH�xH��t�W��ysH�[H��t1�k��x*�����1�H��A�����E��u"1�H���X����C��uI[�]A\���[��������t��K�����t���u��fD������@���{����C�[]A\�f.���ATI��US谧��H��H��赽��H�XH�����H�s�{�]w����uI�CuoI9�uH���&��[�]A\�@L���p���H�XH��褿��H�CX�c���fD�{��ã����x3�C�ƒ�S�u�[H��]A\����H�m�<H�5�H�81��\���H�sH�=1�l��ff.����AUATUH��SH���ڼ��H�XH������H�s�{�v����t6�{1��4��������C�ƒ�S�t+H���[]A\A]�DH���p���I��H9�u�CucH��H��[]A\A]���H���X���L�hL��茾���CH��1�A�E�CL�m�c�H�CXI�\$�/���H���[]A\A]�H�X�<H�5�H�81��G���H�sH�=��W�����SH��H�����H���g���[���USH��H���W(��u4�C,��uHH�{P����H�k8H��ueH�SHH��uDH���[]�fDH�/H�}謽��H������C,��t�H�kH�}落��H�������H���<H�5��H�81��~���處���S@H���l��ff.�����wH�?������ATI��UH��S���H�XH���!���H���	��H��L��[H��E1�]1�A\�2�f���H���H�t$H�5Gh=H�L$�=���H������SH������H��[�ff.���SH���C���H��H������[Ð��AUATI��USH������~TH��H�6A��H��1��#@H���<H�0H��tL��蘓��H�3H��L���膓��D9�|�H���<H�0H��uH���[]A\A]ÐL���X���H���[]A\A]���{��H�\$A�H��H�D$�g�����H��H�q�<H��9����H���ff.�@��AWAVAUI��ATUSH��(���S�$�G�H��L�t�H�D$H�D$�}I��I��A����L�{H����������H���A�D$����Hc�I�D$�K�4'H�H��H�T$H��I�<�P�����
������t{H��L9���H�]��uH�����t
�����t#L��H��H�=��x���H��u�H�}誝��H��L��H�����H�;�� �-���L�cM��tL�{�0���H�9�<L��H��H�0貑��L9��s���H��(�[]A\A]A^A_�D1�C�|'�
���9���H��<H��H�0�n�����H���t��������ff.�f���AUATUH��SH����u{�Ʊ��I��1�I��tX1�L�d$�/f�H����H9�}<I�EH��H��L��H��H�D$�s���I�E�� u�I;]}I�E ��fD�H��[]A\A]���H�=����H�t$H��H�D$����H���[]A\A]����ATL�%ӎ<US��I�<$H9�tVH��H�5�b=H��tH���[]A\�Y���f��H�=����I�<$H���H��[]H�zb=A\�#���H����[]A\邒��f���SH������H��[H��������UH��SH��H����uH�����t
�����tHH���u0苜���H�|$�D$���H��H��荏��H��H��[]������f�1��H�����H����ff.����SH��H���<H�t$L�I9�tSH�5�a=H��tH�L$�L���%���H��[���H�=�����L�H��H�Ba=��L�����H��[�f���AWI��AVAUATUSH��HH�H�D$H�GH�D$�Ŝ��H��b=I�G0I�G`H�D$H9���H�Ǩ��H�5a=H���y�����lH�mb=�����E1�H�|$A�o H9���@��u
H������pH�5�`=H����裯������H�|$@��u
H������NH�D$H�D$ 贊���H�t$ H�D$(�H�D$H�D$ H�h�<H�D$0mH��ߧ��A�G,H�D$H��I�G����H�XH���:���H���"��D�kH��E�o$�rr��I���H���/������I�tD����A����I�_P��H������H��D������1�L��H�����H�=Q����|���H��H�[]A\A]A^A_��H������k��������t	���X����H�ǃ���tQH�T$H�T$ H��肉���H�t$ H�D$(H�D$H�D$ H�6�<H�趦��A�G(H�D$H��I��޲��L�`L������L���*���A�l$H�|$H�a`=A�o H9�����I��A�G$����tmI�����A� ��H�h�<E1�1�1�L��H�=L�1��������H�D$�����H�������������f������E1��v���M���Mct$LE���q1�A�����I�GL�t$H���t	L9���L������L��H��H�D$葝��L�L$I�yI� tI�yL��L��L�L$�i��H��L�L$�mI��� �9I�QI�qE1�H��L����H����I�GMw0H��������L)�I�G���@�H�=���o��H�|$H��H�p]=�[����������b���fD�����t	���}���������������H��H�D$I�G�����H�=����H�|$H��H��\=�C���M�����Mct$LE���������@I��!���A� �����I������H� �<H�59�H�81�迊���H��I�q������I��H�D$�J���H�|$L���É��I�GMw0H����a���L)�I�G�N���H�^�<H�5��H�81��M���1��F��fD��AWAVAUATUSH���@H�����L�c�{ �H��L�kL�5C]=L�����GDM����I��@A�@MN��{ ����@H���'���H�UH�E tH�UL��M��H�޿����I��H�����H����H��H�����K�T=I���LE�H�{H��計�����H�HC0I)�L95�\=t]H�CH����G����{ �A�@�[���H�;1�K�L?I��L��赚��L95V\=u�H��u�H���[]A\A]A^A_�f�H�E�� u'������t���f�H�������f���H�}����H�;L���{������V���L�5�[=H�C�J���辖��ff.���SH��H����u(H�	�<H�8H�|$H��虇��H���[�fDH�L$H���1����H�|$��ff.�����tHSH���tH����蓇��H��H���8����[ÐH�����t؋����u�H�v�<H��ɐ��f.���@��uH�����t
�����tH�5�Z=1�1��3���USH���%���H��H���*���H�XH���^����C�u�u+H��H��[]�f�H���X�����x�C���H���@�����1��'�������R���f���ATUS賬��H�XH�����H������CL����H�����H#CH�H9�t/H���o�����x{HcCH�kL�P�SHH�S@[]�A\H�D�H�-1�<H�}@��u�H�����t������u�����L�`L���S���A�D$t�H�}貪���H���8����_���[�]A\�fDAUATUH��SH���~���H��tXH��H=���vwH=���H=�u(H���K���I��H��tH=��L��H���K���H��H���@���H���h���H�XH��蜭��H�ChH��[]A\A]�f�H��u�H�����I��H��t�H��u�H���˹��I��H��t�H=���L��H���˅���p���fDH��蘹��H���c���H=���H��H��藅���G���f�H���h���I��H���0���H=w����H���G���H������H=��H��H���F�������H������I��H����H������H����H����H��H�������H��������f�H��A�����L�`L���F���H���ޕ��D��H�����H��苻��H��H��L��[�]H��A\A]�.��fDL��H��A�臄��H��诩��L�`L������H��A�蓩��L�`L���ǫ���|���H���*���H���j���H=�t/H��H���-����R���H��A��J���L�`L���~����3���H��A��+���L�`L���_�������f.���H��賷��H��tH����s�����ATI��UH��S�ݨ��H�XH������H���I���H��L��[H��]A\�W������SH���1��������t%��t[�D���{���1��Ԋ�����u�H�sH�=d�����ff.�@��H�M~<H��H�����H�8������H��twS�GH��H�G��yTHǃ�H�{@H��t
���H�C@H�{(H��t
�՗��H�C(H���uc��H��轗���[�fD�����@1��ff.�f���UH��SH��HcWPHcG8Hc��H���H���H�H��t�({H�H���H��t�{H�H��H��[]����UH��SH���.���H�XH���b���H���H��t���H���H��t�p����������C�����CH��H��[]���SH��H�?�Ј���SH�sH�;[�����USH��H��讦��H�hH�����H���*e��H��H��[]���SH���#���H���k���H9�tH������H��[�f���S�H�O<r��<w����<at"H�Ԁ<H��H�5��H�81��p���<+u�����tH��<:t:~�<bu$�����u��%=t���[��<tu�������%=�����H��t1�H���ox���ځ���Eډ�[�fD���u���fD��e���ff.�����1�����t
H�Q����ƒ�@��E‰€���E‰€ʀ��@E��ff.���H���S���H�����hZ�����ATH��N1�USH�� H��H�l$L�L$I��H���ӊ��H�\$H�<$E1��"{��H�|$H�$H��uKH�|$��H��t�΍����H�\$H�<$�����D��H��H�$蝉��H�� H�[]H�DA\�DH�5�茨��H��t&H�Ǩt����A���D諊��A���fDH���x���H�|$���H����{��H���^���A���S���fD��H��u1��AWAVAUI��ATI�ԺUH��SH��H��H�5"Q=���H�5&Q=�4H��I���ަ���4H�5Q=H��I��H����车��H��H��4�I��4A��I��t����H�8��E����L���һ��I��H��4��H��u��8�H���h���H�D$H��tH�|$��z���8-u�xt�H��耻��L9�HD�H��E1�L��H��L���0b���H��[]A\A]A^A_�@L���w�����8H���I��4tH�Y�1�L��H�=���#���E���0���E1��3���f�I��4��I��tPL��計��H�D$H����H�|$�z��L��L��H��H���nu��H���[]A\A]A^A_�f.�H��1�[]A\A]A^A_���3���H��H��4t�I�����[~��E1�A�4H�8�u�������L���H���E1�L��H��H��1��a�������I��tK�~��H�8�<���L��A��v�����������	���H������I�����1��n���E1�����L���ҹ��I��1��T������AWAVI��AUA�ATUL��SH��H��xH�1�H�t$1�L�d$LH�D$PH�D$XH�L$H��H�L$`L�D$ E1�H�$H�L$�1`��H�|$PH�D$P�D$0H�D$(H��ur�D$LE1�H���L��H���Dx��D�D$LA��t�T$0���
A��twH�5�M=H��踊��H��H��t_H�|$P��H�D$PA�H��t�H�5���v���H���,H�D$PH�Ǩ�藆��A��D���L����D$L�Z���H�5yM=H���A���H�T$H��tH��tH�:�+H�L$H��D$LA��A��tA��A��A����DE�H�T$H�4$L��H��襴����t�D$0����H��H�t$hD�������H�L$`H�T$X��L���\��H�D$PH�L$ I�H�D$D�8�D$L�H�D$X�]H�EH�D$`H�EH�D$hH�EH��x[]A\A]A^A_�����A�����L�|$(L���S���H�|$P�ـ��L���v��H��H�D$8�$����ljD$L�D$4�5T��H�T$8�:A��H�����D�D$4H��tfH�T$H�4$H�xL����q��H��tkL��H���0v���D$0���D�D$0�6���D�D$0H�$1�H�L$H���]���D$0�����A��ujH�L$H�$1�H���]���y���f��D$L�Ã�t�������E�H�D$h����H��x<H�5��H�81��:x��f.�蛎��D�D$L�H�mx<H�5��H�81��x��H�Ux<H�5Z�H�81���w��@��AW1�AVAUATUH��H���SH��XL�d$ H�\$L�L$(M��H���h������OH�\$0H�|$�s��H��H�D$�C���H�]H���H�|$ H�T$(u
H���?L��H�L$L�L$01�L�D$�����C�|$���foD$0�{C`foL$@KpH�|$�3����SH�C�����C��L�#�|$H�CHM�����mk��H�{H� txH�L��H������H���8H�;� ����C������H�w<H�;H;8�sH�To<H;8��H��XH��[]A\A]A^A_Ð����!Ш�.����DH���f�H�|$���H�������H��褅��H��I�����H�XH������L���՛��L�`L���	���L9��}����C��H�
�o<H�H;��H�
�n<H;tH�
�v<H;��A�|$@������j���{H����j��H�SH� �#H��H��H��u<I��H�5[�H�81��u���H��舮�����f������H�{���(����s��A���[�����x/D���������f.��{�8P���D$����3u��D��D�(�،��E���l���H�SD��H�=��謈��@H�ߨ�
�����1��x�I���A�T$E1����x���?�CI�L$I�t$ D�{%	�A�T$�C�SA�T$�SA�T$H��������H�KH�s D9�ty���A����H�;H�����T$�����T$H�D���C�������/������vD��诰��D�{D����A�D$t	M�����C���L������H��H�E��:���H������.���H��H�����������H�E��`H��`�
���H���`H��`�����H��H���b������D������H��H�E����D�t$��H���~��H��C����1�� ��?����������H�sH�=�1��E����m����{�Xx�����]���H�;1�� �������A����f��۫���������1�輷��@H�s D9������D����豊������D���1������@�u�H�C����@L���x�����x�A�T$���f.�H���y���_���L���H���1��x詅��A�T$I���d���@A�|$@�������@���@�r��H���I�����1�L���x�]���H��yA�7��uZA�L������1�L���x�5���H�������A��������I�t$H�=M�谱��H�sH�=M�蠱��H�R����H�sH�=$�臱�����UH��S��H���,���H��tH��[]��[q�������v1��*���f.��ˬ��H�����H��u���f.���SH���ӆ���K[�ff.�f����g������UH��SH���.s���Ã��t'��u�}�K����}�C���H����[]�f.��p�������w��,���H����r�������AU1�ATUSH��H���H��H�L$L�L$ �D$L�D$��{��H�|$(譧�������HcD$(L�l$@H�l$H�\$@H��L��H�=�Y��H�D$PH�DH�D$H�{����L$I�ą��XH��脕��H�XH��踗��H�D$H��H�t$`H�=�l��H�\$`H�D$hH�D$H�D$pH�D$ H�D$x�!����T$����HcD$,L��H��H�=Y��H�D$PH�DH�D$H���I�ŋD$����L����H�hH���(���H�����H�|$ H�t$�ql���D$	CL��	EL���ܛ��H��脯����uH�ĈH��[]A\A]��H�=�k<H��H�L$0H�]��L�d$0L�l$8賄��H��뾋|$,腆��I��tL������|$�΃���|$,�e���L���]���|$贃���|$(�K����|$,�B����|$虃��1��b���f���AUA��ATI��US��H���-P�<�_{��D9�AL�9�L�9�~�eD�C9�L��9�|QI��tHc�L��H�t6�c���H�����u�1�����u�����tȨu�����߉�1���u����H��[]A\A]�ff.�f���USH���!~��H���x��H�2k<H��H�;@��uH�����t
�����t#H���l��H�i<H�;H�0H��[]�l��H�H�5�@=蠏����uH�;���H�;H�����H��h<H�;1�H�0H��[]�v��fD��AUATUSH��D�'L�oE��~-A�D$�L��I�l�f�H�;H���ď��H9�u�A��tQ�A��~Ic�L���S���H��H�9j<H�8@��uH�����t
�����tH��H��[]A\A]��I�]��轐����ff.���SH�Lk<H��?=H9tH�@�@��yH��l<H��[�H�镫��D�[���H�;[H���?k��ff.�@��SH���y��H��[H���g~�����SH�� H��j<H�|$H�t$H�8H�?=H9�tH�@�@��yTH�el<H�H��� t2H�^H�~H�ھ���H9�sH�D$H�D$H�D$H�� [�H��H�~�����j��H�� [�ff.�f���H�H��t�SH����$F�����_���{H���g��H�[�ff.�f���S�H���N���H�{tH������H�{�6���H�C���d��������H�H�PH�@H�@H�@ H�@(H�@0�@8H�@@H�@H�@PH�@XH�@`H�@h�@pH�@xHǀ�Hǀ�Hǀ�ǀ�Hǀ�Hǀ�Hǀ�Hǀ�Hǀ�H�C[�ff.�@AWI��AVE��AUA��ATI��UL��SH��A�pI��L$I�HH�|$�ZL��L��蒡��foEL��H�ËD$C`foM�CKp�n~��D��D��H�CH���t���C���n����t�K0�D$uH��L��[]A\A]A^A_ÐL�������fDAUI��ATI��H��USH��H��8����:H�߉ʼnD$�y��H��tMH�\$H�L$H�SH�xH���a���L$����C��I��L��L��A�������H��8[]A\A]��@��u2H�\$H�L$A��1�H��H���pM���D$ H�D$(�D��~���l$��ff.�f���UH��SH��(H�D$H�|$H�D$�/d���H��H�D$H��h<H�8�j��H��H��H�@H������H��([]�fD��UH��SH���N����H��H��h<H�8�i��H��H��H�@H��H��[]���ff.�AUATUSH��H��H��XH�l$L�l$(L�d$ H��M��H��H�D$M��P1��s��H�l$@XZH�|$H�l$0�Mc��H�T$I��L��H�L$L�D$L��H�D$��H�|$(A��H��t��u��A���L$�T$I��H��H�t$�*���H��XH��[]A\A]�ff.��AVA���AUI��ATA��H��US�h��H�@H��H��诞��D��D�`H��D�p��k����t�K0M��tL�����H���y��H�CD������[H��]A\A]A^����H�}d<ATA��A��USH��H�(H��t$�H�=ߔH�������t
H��f<H�(D�����H��H��[D��]��A\� ���AWAVAUATUSH��H��XH�uc<�D$H�8@��uH�����t������DH�k �UPH�} ��t@H����EQ<��<tP����u�EPH��X[]A\A]A^A_�fDH����H��� ��H����f�MPH�H�L$0L�|$(H�L$H��$�H�L$��f.�����������u��L��H�D$(�Nb��H�|$(H�k �y��L��H�E�4b��H�|$(I��H��� ��H����H����1�1��fo��H�k A��H�}(�LH�b<H�8@��uH�����t������mDH�T$D���覐��H�C H�l$(H�@(�8�xH������H��H�C H��H�p(�U~��H�uH�E tH�uL���k�������H�|$(���A�n��H�T$���A���+����t$HD���o����t$L�T$P;�$�u
;�$���D��艜��������r���$���L�l$(I�E ��I���c���8����H�t$(H��H�=��H��1�胥��D���{��D���{��L���c��H�k H�} H��� ����H�������f.�H��V���A�}-�K���H��]<H�C H�:H�x(H�x�kH�=��1�����DL��� c�����������b���8�\���H�t$(H�=�H��1��Ƥ��D���Nz���N���f�M�m��������������f�UPH��\<�H�=�H�H�E�o��H�EH�k H�}(t#1�H�=
��P���H�q5=H�
�_<H�k H��UP�t���f�H;=Q5=������.������f�H�-�b<D��L��H�U���I��H�K_<L� �D$����H�UL�{ D��L�����I�GH�C H�xI��tL��躋��H�C H�x�xR������L�`L���7���H�k H�}0tl�oE0�oM@L��AD$`AL$p�nB��H�k �EQ�UP���D�#a���8輣��H�t$(H��H�=E�H��1��#���D���x�����fDA�d$p�����D�e��H�C H�x�V���fD�S���H�hH��臈���E�����D$����D�EQ��+����H��� tp���„������EQ�$�����EQ1�����DH�a<D��L��H��N���H�EH�C H�x���DL���g���_���H����ff.�AUATI��U��SH��H��H�B L�h�S@��uH�m[<H��Z<H�H9��H��L����Ũ��H�S H��up�zQ���H���Y���H�C �@QH���y�����tuH�C H�xH�Z<H;8u�@��uH�����t������t���L���a�%���H��t/H�S I��L�jL�jH��[]A\A]�@�ˣ���a���fDH���[]A\A]���S���H��H����[��H��[�fD��H�
2=H9�tH��aH����|��fDSH�����H��H���[��H��[�ff.�@��ATI��U��H��SH���h�����tIH�C L���H�P�Rr��H�C H�x���H�hH������H�C �oE`�oMp@0H@H��[]A\�H�T^<H�5��H�81���]����SH����H�C H�xH��X<H;8u'@��uH�����t
�����tH��[�`��D[�{��f���SH�����H���k���H�C �xQ�t�@QH�@H��[���SH���s���H�C [H�@�f���SH���S���H�C [H��f.���SH�H���0���H�C [H�����SH�G H���@R����H�C H�xH��W<H;8u'@��uH�����t
�����tH��[�`��D�a��H��[�fD��SH�����H�C H�@����tO�xPtOH�����H�C H�xH�0W<H;8u#@��uH�����t
�����t
H��[�_������H��u1�[�f��[�f���SH��H��H�t$�*�����t^H�C H�xH��V<H;8u@��u,H�����t#�����uH�t$����H��[�f�H�t$H�ڿ�~F��H��[�H�\<H�5V�H�81��[����SH�������tEH�C H�xH�8V<H;8u+@��uH�����t
�����tH��1�1�[�F��D[�:���H��[<H�5�H�81��2[��f���ATI��U��H��SH���(�����tUH�C H��U<H�@H;u0�uH�����t
�����tH��L��[��]A\�E��f�[L���H��]A\���H�[<H�5��H�81��Z�����SH�����tEH�C H�xH�8U<H;8u+@��uH�����t
�����tH��1�1�[�E��D[�ʰ��H��Z<H�5(�H�81��2Z��f���UH�-n�SH��H���7f.�1�1�����H���}H�S �zQ�tsH���ˁ��H�C �@QH������tqH�C H�x@��uH�����t
�����tFH�5/,=H��u��H���m���H��H�,=H�C H�x�v���fDH��[]�f�苧���_����g�����UH�-��SH��H���7f.�1�1��7���H����H�C �xQ�tsH�����H�C �@QH�����tWH�C H�x@��uH�����t
�����tFH�5W+=H��u��H��蝞��H��H�;+=H�C H�x�v���fD�H��[]�@����_���fD��SH�����tOH�C H�,S<H�@H;u#�uH�����tH�����tH��[�[��H�����H��t[���[��Tf��@��UH�-^�SH��H���_f.�@��uH�����t�����t\�H�5I*=H��td1�1��ˀ��H��uEH�C �xQ�tsH�����H�C �@QH�����tWH�C H�xH�HR<H;8t�覥��H��t�H��[]�f��H���3���H��H��)=H�C H�x�x���@H���[]�ff.����ATI��U��H��SH���(��teH�C H��Q<H�@H;u�u<H�����t4H�����u)H�ډ�L�����H��H����S��H��tH��[]A\�H��L��[��]A\�oA����d��f.���US��H��H�=�)=H9�t`H��H�5&(=H��tH��H���[]�t��f��H�=R�����H�=�)=H���H��'=H��H��[]�~t��fDH��H����[]������AWAVA��AUI��ATUSH��H��H�B L�`�m��H���H����H�S L�H�BH�BH�������H�C ��H�xH�cP<H;8uf@��uH�����t�����tMDH�5�'=H��t\L��D���q~��I��H�S L��H���BQ����H�E�� �n���H�E�l���DH��L��D���2���H��I���}���D�	H�=��ߚ��H��H�m'=H�C H�x�|�����@PH��H��[]A\A]A^A_�f.���US��H��H�=(=H9�t`H��H�5^&=H��tH��H���[]��r��f��	H�=���O���H�=�'=H���H�&=H��H��[]�r��fDH��H����[]�8������AV1�AUA��ATI��U1�SH��H�fZH��I��H�L$M���_��H�|$tI�,$@���6H�H�<$tL����i��H�<$1��9e��I�D$H���������H�C H�PH�iN<H;����uH�����t�������H��L��D���>>��H�<$H��tdH��tnH���Ft��H�|$t^H�$E��~7H��� u}H����H9�~#H)�H��Hc�H�DI�$�:����b���H�$H��[]A\A]A^ÐH�$H��u�fDH�C �xQ�t�H����z��H�C �@Q�����L��D���u����R���H�PH9������룐H�����H�������UH�-��SH��H��������u�Q�H��1�1���=��H������t(H�=�$=H��u�H���/���H��H��$=��H��H��[]�fDH��H��[]�RU��f���S1�H��H�=7��Z���蕒����u!H�=b$=H��t%�p���H��1�1�H��[� p��H��[�7����H�=���蟗��H��H�$=���UH�-��SH��H���'�����u�Q�H��1�1��=��H������t(H�=�#=H��u�H��	�?���H��H��#=��H��H��[]�fDH��H��[]�bT��f���S1�H��H�=���j���襑����u!H�=j#=H��t%而��H��1�1�H��[�0o��H��[�7����H�=׳�	诖��H��H�%#=���UH�-u�SH��H���7�����u�Q�H��1�1��<��H������t(H�=�"=H��u�H��	�O���H��H��"=��H��H��[]�fDH��H��[]�rS��f���S1�H��H�=Ͼ�z���赐����u!H�=r"=H��t%萋��H��1�1�H��[�@n��H��[�7����H�=���	迕��H��H�-"=���AUL�-��ATI��U��SH��H���>�����u�X�H��L����;��H������t'H�=�!=H��u�L��	�N���H��H��!=��f�H��H��[]A\A]�f��X��H���Ê��H��L���H��E1�[H��]A\A]����fD��AT1�I��UH��S��H�=߽�R���荏����u)H�=B!=H��t5�h���H���L��[H��]A\�m��@L��H���[]A\����H�=���	臔��H��H�� =�ff.���SH����H�C H�@I<H�@H;t[�D�uH�����t
�����t�H��[�Q��f���SH���S���tVH�C H��H<H�@H;u+�uH�����t
�����tH��1�1�[��8���H�XH����u��HcC[H�D�H�2N<H�5�H�81���M���AUI��ATI��UH��S��H���t����L��H��������H��H���Fs��H�hH���zu��L�eH��H��[]A\A]����AWAVAUI��H��ATUSH���\��L9���H��I��L���G��L����r��H�XH���u��L���0���L��H���uq���C�oC`%����E`�oKp�E�CMp�E�C�EH�CH��tH�EH�C D�{H�E D���ڋ��A�ƅ�y7��L����P�v��t1�訑����K���D��裋��A�ƅ�x�D���$���D�uH��舠���1��x��_��H��H��yQ�EuqL����[��I9�uH��L��[]A\A]A^A_�@H���e��H�5=H��H�EXH��tUH��L���������+L��H����
���1�H�ދx�p_���Et�L���S��L���z[��I9���������H�=ׯ臑��H��H��=�ff.���AU1�ATI��H�w�USH��XH�\$H�L$�D$L�L$ I���W��H�T$ H��1�H�L$L�L$0L�D$���H�|$@����腒���ʼn��q�����]���1��&S���D$����Z��袇���|$��g��H�|$���#D$��7H�|$ H����L���؂��foD$0foL$@H�Éh�D$H��C`�CKp��+���{�O����u3L�-D<I�}��p��9�u?I�EH��D$
u`H��XL��[]A\A]��K0��f.��kV��������@L�-�B<I�}�p��9�t�L�-�J<I�}�|p��9�t��D$
t�L������H��XL��[]A\A]�H�5�=��Y��H�������L$����fD�D$���H�J<H�5��H�81��I��1�討��H��B<�H�t$(H�D$(-H��b��H���~���ff.���ATUSH�zu`�G���I��H�Ӄ�vH��L�����H��[]A\�@I�<$H�
���H�Gx輍��H��t�I�$H��L��[��]A\�a���H��H<H�5#�H�81���H��f���ATI��U��H��S�+W��L���H��H������H��[]A\�AWAVAUATI��UH��S��H��dH�%(H��$�1�H��u~H�D$E1�A��f�H�l$ H�����A��)D$P)D$`)D$p)�$�)�$�L�t$(�\$0H�D$4H�D$<A���WA����A��t/H�|$��}��D�U��I��H���q���H�H�D$�p���f�L�|$ I��R����x�M��tHcT$8�H��H�T�B���H���H�T$H��H�=I8���$j���D$����H�D$(H�|$L�D$PL��A�PH�5	8��H�H �pX���Ń���m�؃���������|$8A������^��D�|$4H�[E<�H�8�I��H�@H��I�����H��D�xH��؃�(�AM����fAo$I`fAoT$Qp�iH�L$E���6H��$�dH34%(L���H�ĸ[]A\A]A^A_�f�H�|$覂�Ņ������C���D$0�ƒ������=�|$8�$^���|$4���VH��=A�H�x��n��H��=H�x�n���_���DL�|$ I��}������I��y}�����VM���6���HcT$<�H��H�T�a�������@L�|$ I��:}���������M�������HcT$4�H��H�T�"�������DH��C<���փ�(H�8�nG��H�@H��H���k}��H�L$H�5=D�p�XH�iX�a�H����H��L���,����i�����|$4A�������\��D�|$8��������(����Ip�����E���|$4H�Ë(�\���|$8�\��A��tf�|$P�+�����H�|$P诉����|$8�o\���|$<D�|$4�a\��D�t$@�]�����H�=���?���H��H�=�)����|$<�'\���|$@�\������|$@�\���|$<��t1��T���|$<�[����|$4��[���|$8��������PT���|$8��[�����1��;T���|$4�[������|$<��x�[���|$@��x�[���|$4��x�[���|$8��x�y[���|$��X���R���C���|$<H�Ë(�X[���|$@�O[���+�i����UH��S��H��H�H�|$�� uHH����H��uH�W�:-�t�H�t$��	f��H��H����l���H��[]�DH�u�H�W�AVAUI��ATU��SH��@H�\$ H�t$H�|$H��H�$I��H��L�D$H�L$�1��H�<$H��t�Q����L����(��I��H��t/�l$�|$�7��H�ډ�L������H��@[]A\A]A^���D�t$D�d$H�BC<H�8�RD��A��I��D��H�@D��L��H���s��H��@[]A\A]A^�fDAVAUA��ATI��UH��SH��H��H�>H��H�<$H�D$�>��H��A�U�H�EH�$�UH�]I���H�5�=L���Q��H����H�
yGH�yG�H����E��H�I��� ��H�@H�XH�������H����B��H�4$I��H���|��L��L��M�t$�p��I�$ uM�t$ H�"B<�H�8�-C��L����H�@I��H�����L�mL���g��H��[]A\A]A^�@H����H���q����H�<$L�������H�EH��[]A\A]A^�f���m�H�����H�EH��[]A\A]A^�H��@<H�5��H�81��p@��AT1�A��H���UH��S��H��hH�D$ P1�L�L$ L�D$��K��H�|$(ZYH�����*<��H�D$H�5F=H���P��H��u%H�|$����H�5!=HD�H�|$�;a��H�T$H�L$ H������E����H�D$0H����H�T$H�\$@H��t@H�\$@H�T$HH�=n���H�T$H���D$H�D$@�D$P�b���D$��ucH�D$0H�T$H��H��H�D$@H�=�����D$PH�T$HH�t=<�/U��H��`[]A\�fD���H�D$����H�|$0�6����C���H�|$0�Wl���|$�.T��ff.�����r���f���1��e���D��UE1�1�H��SH��H��hH�D$P1�jL�L$(�SJ��ZYH��H�l$ H�T$��H���j���H�D$0H��thH�T$H��tDH�T$HH�t$@H�T$H�=.����D$H�D$@�D$P��`���D$��u6�|$ t%H�D$0H�Y<<H��H��H�=L����T��H��h[]��D$ ��H�|$0�Lk���|$�#S����UE1�E1�1�SH�6�H��H��8H�D$P1�j�uI��ZYH��H�l$H�T$��H�����H�D$ H��tH��;<H��H��H�=
����xS��H��8[]Ð��AUE1�E1�1�ATI��H���U��SH��H��8H�D$P1�j�H��A��XZ��}����tNH�l$H�T$H��D��H������H�D$ H��tH�D;<H��H��H�=������R��H��8[]A\A]���+F��H���Sx��H�ى�L��E1�H���|��H��8[]A\A]�D��UE1�1�H�YS1�H��H��8L�L$�IH��H�;H�\$�8���
H�=ߠH��I��H�;��H���c���H�D$ H��t;H��1�H�t$����H�\$�T$H��u(H�a:<H�t$H��H�=R����
R��H��8[]�fD1�H��薑��H�D$ ��ff.�@��ATUSH��H�|$H�t$��Q��H�|$�[C���DH�|$1Ҿ�E���H��t_H��H���Ta��H�hH���c��H��蠒���H��H���j��H��I����h��H����P��H���A��H��L��[]A\�f�1�1���H��H��I��[]L��A\����AWAVI��AUI��ATA�U�S��H��HH�D$���)��t����I�FH�D$I�>H�|$�Z��H��H�D$H����H�8�� ��H�xH������fH�p 1��x]��H��H�D$H�D$ H�D$H��t%H��tH��H���L��H��I��tL��H���+p��L�d$ H��L�D$H��M��1�H�|$謾���<$�.���t$H��L���u�H��H����L�hA��u
I������i�|z�����4H��HH��[]A\A]A^A_�f�H��H�p���1���D��Ic�H�<��J��H��H����A������I�>D����I��I��H���������I�����D�y�����������[��H�7<H�8�]��H�[8<H�8�]��1���;��@L�t$L���3O��H�|$�@��H�T$H��� t4H�zu
H�R�:-������L�����[��H���h���fDH��H����H��t���DA�������H�=�5<H��H��H��'���N��H������L��H����T���������H���`H��`�t���I�E��`H��`�c���L��H���9M���S���1�H��@�ǍW�w��-k��H��8<H�5s�H�81��%8��D��ATUH��S��H������L�%�	=M����H�}L���X����t7H�}�S�H�ML���$V��H���Lx������H��H��[]A\��H�}H��H�D$H�<$�3��H�$H��t�H�����H��t[H�EH��5<��H��H��;���H���fD�H�=���}��H�}I��H��=L���	X�����J����|���@H�	8<H���H��t%��H��H��H��[]A\�DH�=4<H��H��H��%����L��H��H��H��[]A\����H�}2<H��1<H�=
=H�H9uoH���Lf�H��	=H�@ H�x�\{��H��uVH��	=H�R �zQ�t}H�z�c��H�=�	=H�G �@Q�h����u��H���f.�H��1�1��t��@H��H�D$�#3��H�t	=H�J H�AH�PH�D$H�QH�QH���fD�H�D$��2��H�D$H���ff.�@��S�H��H�s0<H�D$H�\$H�H���I��H�;3<H�޿H��I��H��4<H�޿H��I��H��[�ff.���H��=H�@ H�@(�ff.����UH��SH��H��=H�X H�{(H��t�J��H�k=H�X H�C(H��tH����[��H�C(H��[]�ff.�@��H�-=H�@ H�@ �ff.����ATI��US��H����4���(�M��tL���c��H�D$��t0��u��ta��stzH��H��1<H�8�,k����H�=��1��<;����tq��stH��H�`.<H�8�k��H��=�H�t$�M��H���"m��H��=�H�t$�|M��H���m��H�m=�H�t$�^M��H����l��H�_=�H�t$�@M��H����l���AWE1�1�AVAUA��ATUH��H���SH��HL�d$D�D$H�L$M���9?��H�\$����H�H���?H��L���4��H�D$�u+H�����t#H��у������H����H����X��H�hH���[��H���$>��H����E��u�UL���{H�|$H� ��H�H��H������H������L�t$ L�=A��E��t%H����I���f�E�����}��X�����WL��H���\���EH�|$�D$ H�GH� tH�GL��L��H�D$(H�\$0��	H�D$0H��x�H�|$H��H�D$��)��H�D$H��u!H��H�[]A\A]A^A_�H�|$H���)��H�D$H��H[]A\A]A^A_��H���
����H��� d��H���`������1���8���D$����H�==H��tJ�m��H��H[]A\A]A^A_�fD��H��U���DH���hY��H�|$H� �}����i����H�=�
�w��H��H��=�H�uH�=m��Pq��H�y1<H��H�5�H�81��1��H�5��1��3���AV1�A��AUATA��UH��SH��H��H��0I��H�L$M���<��H�<$tL���F��H�$H�EH���������H�C H�PH�Q+<H;����u
H�������E1�1�H�t$�H�0<H�=Q��D�d$H�l$L�1�H�\$ �L��H��uyH�C �xQ���H���X��H�C �@QH�@ H��� u`H�x����upH�$H��u91�1��y=���.�������d���f�E1�D��H��D������H��t�H��0[]A\A]A^�@������H�<$H��t1��@����=���������f���1��u���D��H��E1�1����H��tH����~=��ff.���ATE1�I��1�UH��1�H��S��H��H�D$L�L$�:��H�|$H��u(E1��L��H����+���H��t9H��[]A\�@���H��u΍{�L��H��A�����H��[]A\���<�����AT1�E1�UH��H��SH��H��L�D$H�D$�:��H�|$H��t���E1�H��A��H�$��u
H�������H���'9��H��H����=��H����S��H�hH���V��H����k��H���g������H���E��H��� t0H�SH�s�}�P6��H��H�DH���t:H��[]A\�f�H��H�s����������c����i���D�-���8uJE��tUH�=��<H��t��h��H��[]A\��H�=���
�'s��H��H�]�<��1��Dr��H�uH�=I��Tm��H�5ӑ���/����AWH�=ˑAVAUATUSH��H�,<H�0�u��H��,<H�=��H��H��t��H�p,<�H�=��H��r���H�=c�H�=�|r���H�=�H��<�dr���H�=Q��Sr���H�=F�H���<�;r���H�=:�H���<�#r�������H�5���H�=2�H�i�<�W�������H�5�H�=���lW�������H�5�H�=u��TW�������H�5���H�=ِ�<W���H�5Л��H�=��$W�������H�5����H�=��W�������H�5���H�=����V�������H�5���H�=����V�������H�5���H�=����V�������H�5���H�=h��V���H�5`�H�=-*�V�������H�5��H�=|t�|V��H�}+<�����H�����H�5�H�8�
[��L�%;$<H�=��I�4$�s��L�5+<H�)<H��I�6H���g��H�;H�5���j��L�-(<H�;H�5��I�E�nj��L�=�\=H�;H�5��H�-�$<I�H�E�*p��I�uH��H��<�g��I�H�;H�5x��p��H�uH��H��<�bg��H��<H�;H�5b��lp��H���<H�;H�5d��Vp��L�=?\=H�;H�5f�I��o��I�uH��H�o�<�
g��I�H�;H�5V��o��H�uH��H�R�<��f��H�;H�5����fh��H�;�����H����H�5�E�;Z��H�;�����H����H�5�� Z��H�;�����H�1���H�5���Z��H�;�����H���H�5���Y��H�;�����H��H�5Ԏ��Y��H�;�����H���H�5F�Y��H�;�����H�%�H�5��Y��H�;�����H�*�H�5���~Y��H�;�����H��H�5n��cY��H�;�����H���H�5s��HY��H�;�����H���H�5@��-Y��H�;�����H����H�5���Y��H�;�����H����H�5��X��H�;�H�hC��H�5�/��X��H�;�����H�='��H�5��X��H�;�����H����H�5W/�X��H�-W$<1�H�5N%<H�=��H��H���"���H�=����Y��L�=�#<L�-�"<H��I�I�E�;��H�$<I�?H�@��u/H�����t&H��ƒ���tH�€�H�H�t	���H��1�H�=+�L���H"��H��1�L��H�=��4"��H�5�#<H��1�H�=��"��H�=<H�5�%<H�=��2o��H�;�H����H�5S.�W��H�;�����H����H�5����V��H�;H�#<�����H�5����V��H�;�H�"���H�5��V��H�;H�t<�����H�5lj�V��H�;H�i!<�����H�5���V��H�;�����H�q��H�5(.�eV��H�;�����H��p��H�5��JV��H�;1�H�c��H�5��2V��H�;1�H�&y��H�5
��V��H�;1�H�Nu��H�5��V��H�;�����H�Sq��H�5����U��H�;1�H��c��H�5`r��U��H�;1�H�cy��H�5���U��H�;1�H�;x��H�5y��U��H�;�H��N��H�5i��U��H�;�����H��`��H�5W��iU��H�;1�H�m?��H�55B�QU��H�;H�&BH�5A�+R��H�;1�H�/��H�5Ug�#U��H�;1�H�g~��H�5��U��H�;1�H��~��H�5���T��H�;1�H�wE��H�5܊��T��H�;�H��D��H�5Ɗ�T��H�;1�H��s��H�5���T��H�;�H�Is��H�5���T��H�;�����H�~n��H�5~��rT��H�;�����H�#���H�5k��WT��H�;�����H�����H�5^��<T��H�;�����H���H�5���!T��H�;�����H��{��H�5���T��H�;�H�'���H�5����S��H�;�����H�<m��H�5È��S��H�;�����H�Am��H�5���S��H�;1�H��q��H�5��S��H�;1�H�i"<H�5ʉ�S��H�;1�H�	r��H�5���mS��H�;1�H����H�5���US��H�;H��<�H�5}��:S��H�;H��#<�H�5l��S��H�;H��<�H�5�*�S��H�;1�H�8 <H�5����R��H�;1�H�`y��H�5҆��R��H�;�����H��x��H�5���R��H�;�H�5����h��H�;�H�5��h��H�;�H�5��h��H�;�H�5؈�h��H�;�	H�5Έ�h��H�;1�H�9w��H�5��=R��H�;1�H��x��H�5?�%R��H�;�H�Vv��H�5?�
R��H�-�!<H�;1�H�5u�H����Q��H�;1�H��H�5b���Q��H�;1�H�?A��H�5O���Q��H�;�H��?��H�5C��Q��H�;1�H�l���H�5���Q��H�;1�H�t?��H�5���xQ��H�;1�H�,���H�5
��`Q��H�;1�H�4���H�5���HQ��H�;1�H�;��H�5��0Q��H�;1�H�;��H�5��Q��H�;1�H�,���H�5͇�Q��H�;1�H��:��H�5����P��H�;�����H�99��H�5����P��H�;�����H�N<��H�5���P��H�;�����H��7��H�5���P��H�;�����H�H6��H�5o��|P��H�;1�H�6��H�5��dP��H�;1�H�x(��H�5�'�LP��H�;1�H�p5��H�5C�4P��H�;1�H��1��H�5�B�P��H�;�����H�4��H�5��P��H�;1�H��4��H�5���O��H�;�H��4��H�5҆��O��L�=<H�=ʆL���(��H�9<H�H�
���H�8����H�-3<1�H�
z��H�=��I�H���X��H�)<H�H�
���H�8���L�-[<1�H�
:��H�=m�H�EL�����H� <H�H�
X��
H�8�I��H�
��1�H��H�=A�I�E����H�EI�7H�=-�H�P�<I�EH�=�<H��Q=�Q=��H�uH�=
��A=��I�uH�=��1=��I�<$�B��I�4$H��H��H����S��H��H�5�
���#]��I�6H���[��H�߹����H�i
��H�5�%�]N��H�߹H����H�5�%�BN��1�H��H���H�5�%�*N��H��H�%H�5p%�K��1�H��H����H�5^��M��1�H��H����H�5�:��M��1�H��H����H�5�9��M��1�H��H� ��H�5�_�M��1�H��H��8��H�5��M��H�߹����H����H�5D%�M��H�߹����H����H�52��fM��1�H��H����H�5��NM��1�H��H����H�5)��6M��1�H��H�z��H�5��M��H�߹����H����H�5��M��H��1�H����H�5|i��L��1�H��H����H�5����L��1�H��H����H�5���L��H�߹����H�l��H�5P��L��H�߹����H��H�5Y��L��H�߹����H���H�5~��jL��H�߹����H�K��H�5[��OL��H�߹����H�0��H�5�#�4L��H�߹����H�E���H�5��L��H�߹����H����H�5��K��1�H��H����H�55���K��1�H��H�z��H�5���K��1�H��H�����H�5��K��1�H��H���H�5؁�K��1�H��H��H�5��K��H�߹����H�G���H�5W�kK��1�H��H�����H�5+�SK��1�H��H�����H�5.8�;K��H�߹H�����H�58� K��1�H��H�d���H�5���K��H��1�H�L���H�5w���J��1�H��H�Խ��H�5����J��1�H��H�l���H�5���J��H�߹H��H�5`��J��H��<H�߹����H�5w�J��H�߹H�ۉ��H�5�}�oJ��H�0<H�߹����H�5�}�TJ��H�%<H�߹����H�5���9J��1�H��H�ݼ��H�5���!J��1�H��H�ż��H�5JI�	J��1�H��H�����H�5{U��I��1�H��H�eB��H�5U���I��1�H��H�-���H�5%��I��1�H��H�Ż��H�5��I��1�H��H���H�5���I��H�߹H�"!��H�5��vI��1�H��H�
���H�5߀�^I��H�߹H���H�5р�CI��1�H��H��3��H�5�;�+I��1�H��H��3��H�5�;�I�������H��H�����H�5�}�H��1�H��1��\2��H�5=�<H�=u�H�/�<�B]��H�5#�<H�=�y�?7��H�
� ��H�1�H�5�<H�==��~��H��<H�`���H�5��<H�=�H���Z��H���<�H�="GH�h ��%��H�
��H� ���H�EH�5��<H�=����H��H���H�5��<H�=�������H��<�����H����H�59H�8�G���H�=�D�]��H���LS���H�=~H���<�]��H���,S���H�=~:H���<�t]��H���S���H�=L:H���<�T]��H����R���H�=��H�y�<�4]��H����R���	H�=H�Q�<�]��H���R���H�=�~H�)�<��\��H���R���H�=�}H��<��\��H���lR���	H�=�~H���<�\��H���LR���H�=�~H���<�\��H���,R���
H�=�~H�a�<�t\��H���R���H�=>
H�9�<�T\��H����Q���H�=R~H��<�4\��H����Q���H�=;~H���<�\��H���Q���H�=$~H���<��[��H���Q���H�=BH���<��[��H���lQ���H�=�H���<�[��H���LQ���H�=/�H���<�[��H���,Q���H�=LCH�y�<�t[��H���Q���H�=	|H�Q�<�T[��H����P��H�5�<H��[]A\A]A^A_�fD�J�����fD��H��H�H�Ѓ�8�ff.���H��H�H�Ѓ�P�ff.�PXH�5�H��H�$
<H�81�����f�PXH�5�H��H�,<H�81�����f���SH�>H����=��H�{��=��1�[���SH��H�(H��t��>��H�{0�>��H�{@[�����[�ff.�ATI��UH��SH��H��H�z@H�D$4H��tH�T$H���P������H�}0H��L���	&���EH��th��u-H�����t$H��Ѓ��H���vJ��~o��H�f�H�D$H��4t+�u'H�����tH��у����H��r���H�H��H��[]A\�fDH�}0H�T$L���w%���i���f��H��r��AUATI��UH��SH��H��� tXH��H����L�mH��!�3L��H��L��H�4��}��H��tH�E�� u�H�E ��f�H��L��[]A\A]�f�H�^�f.���ATI��H��UH��H��SH���D>��H��t[1�]A\��L��H��H����Y��[1�]A\�ff.�SH��H��H�t$��N������H��� t=H�KH�SH��~pH��t:H��ud�9Eu_H�T$H��t
1�H�����D�H��[�f�H��H�K���H�encoding�����H9u�H�|$���H���H����������f�SH��H�H��t
�'��H�CH�{(H�CH�C H�CH��t4�Y��H�C(H�{0��X��H�{@H�C0H��t
��X��H�C@[�ff.�@��SH���s���H��[�
'��f.�UH��SH��H�H��H��H���$��H�}HcE0HH�H��t�� uH��[]��H�{�~�H���N��H��H��1�[]�^"��ff.���SH��H�H��t'�j��H�{�a��H�{ ���H�;[��9���[�fDS1�H��H��H����H�D$�%��H�H��tH�T$H�5!H������H�D$H��[�ff.�PXH�5j�H��H��<H��H�81��?��ff.�@SH��H�|$H�~8H��u
H�D$H��[�f�H��H�5��<H�L$��G.��H�{(u�H�=`����@AWAVAUATUSH��(H���H��H�>H��@��uRH�����tIH��ƒ���u<H�V �� ��H�GH)�H9���H�H�H����N��Hk I���W@H�CL�cH��	M����L9��H��I�� M)�H= HO�H�@L9�IL�H��6H�DH�L$�H�D$H�5��<�F-��H�{(�`H�$H���MH����$��H�$H��� ��I��I��A��M9��!�KH�uH��������KHH�{ L��H{��M��H�4$I��H� ��H��L��L����!��M9�}sH�4$I)�M�H� �\H�vH�{L�L���I1��L�c�KH�{ H��H{�pM��Hk H)kI��H��(L��[]A\A]A^A_�L�p�=����H�CH�C ��fDH�v�\����1�1��?��I���f.�H�@H���H�D-H�L$�H�D$H�5B�<��+��H�{(��H�D$H����H�|$�Y#��L�|$I��� u|H��H����H9����SHA��uI�����t��%��	Ѓ�EЉSH���D�Ё���	ʃ�E��R���H������H���x��H�;���I�W�f.�H����H)�H9�!H���%����H���8��H�;������H�=/s����ff.�@@��uH�����t�����uH���H��H��<H��H�5n~H�81��4��@��H��t1�H�5N������f��ff.�@SH������uH�����t�����u[�H�(<H��H�5~H�81�����@AVAUATI��UH��SH��H�����H�=G�<H�T$H���
����uH������H��H��H��[]A\A]A^�L�l$H������I�}I�����H��H��tI�EH�EI�<$H��tL��H�����H��H��[]A\A]A^����H��I�$��f�SH��H�H��tJ�>R��H�CH�{�-R��H�{ H�CH��t
�R��H�C H�{(H��t
�R��H�C([����SH�����H��[�: ��f.�AUATUSH��(dH�%(H�D$1�H��H��H��H���3H��H����H�G���H��y���H�\$H������@�<H��Lc���H�����H��H��	u��T$A�	H��L�l$I��	f��H���T$�H��L���u���L9�u�H�D$dH3%(��H��([]A\A]ÐH��H�|$��D$�9��������H��@�|$H�|$�����@��H�|$�T$H������D�ˆD$�E���D��ڈT$�3������H�O<H�5�{H�81��	��fDATI��USH���PE����~l�lj��3I��H��H��t[1���tC��t_I�<$H��tfH�uH�T$������uH�}�;7��H�uI�<$H��H�D$���H�D$H��[]A\��H���[]A\�f����f��
��I�$�D��UH��SH��H�����H9�tH���<H��t2H9�u
H��1�[]�@H��� <��H��t�H�EH��1�[]�D�H�=�5��M��H���<H9�t��f�ATI��UH�nSH��H� tH�nH���}���xu"H���o��H���g"����u�}#t&H��[]A\�H���;H��L��H�5|H�81��w��H���;H��L��H�5�yH�81��Y��f�ATUSH����>��H�=l H���u	H�����u,H���D���H�����H��I����(��I9�u!H��[]A\�@�����H��HD��H��;H��H�5xyH�81�����AWf(�AVAUATUSH��H��XfT
sdH�%(H�D$H1�f.
�vyf��H��f/�wD���H�ھH�=-y����H�D$HdH3%(��H��X[]A\A]A^A_�����H�ھH�=�x�����f.���f��f.�zdub�
�H���^�f/�w%��[���H�ھH�=���w��d���f���6���H�ھH�=vk�R��?���DH�L$H�T$1�1�L�D$� h�L$I�Ņ�t
�D$ -�H�l$D�|$L)�A9�
A�����A�UHc���D�a�T ��~
Mc�B�D$ .D�aL�t$ Ic�Hc�A�L�I�u�1(��Ic�� 1�H)�A�O�H��wL��a��A�L��Mc����H��L���X���H��L��L���z��g���DE��kHc�D�aL�t$ �D 0�AIc�H�L��D .E����Hc�L��A��'��듐H�����H�ھH�=2w�����f.�Mc�Hc�L�t$ L��L�L�‰L$D)�L�D$�K'���L$E�$���-���E�|$L�D$Mc�Hc�Ic�B�D$ .F�d=L�K�t�'�����D����t1��ƒ��09�r�E)�Ic�L��6�������f�SH��H��H�?@��u	H�����u>H�SH�CH��iH���0H�S H�JH��H�K H�CH�C�H��[�fDH��ƒ���u�H�S �� �~H9W��H�H�BH�C ��f�H��u�H�� � H�L$H�5��<HO�H�TH�T$��[!��H�{(�EH�$H���CH������H�4$�CHH�@��uH�����t�׉с���	���E��CH�� t4H�VH�vH�{�%��H�$H��� ��H����1ҹ���H��H������H�51�<1�1�� ��H�{(��H�����u/H�����t'H��у���u�� ueH�H���t	��@H�Ǩt!�\I��H����[�H�B�k���������f�H����H9�~%H���{���H�x~�H�H�H�=_h�O�������H�=�g�9�f�AWAVAUATUH��SH�����L��������~a�X���z������E1�1�M��~+f.�H���h���B��I��H�H��H	�M9�u�H��H��[]A\A]A^A_�D�����{~m�؃�~Lc�E1�H�����A����t��F�<�L��H��I��D��H��H��H!����D��H�H��H	�M9�u��1��z���f���Hc��f���DHc��Y�����H���;H�5 uH�81��^��ff.�SH��H�����H�{(H�T$H���B�����tH�D$H��[�H�l<H�5�rH�81����ff.�ATM��UL��SH���>�����������ڃ����H���$���+H�K�tK����ƒ�����H����<�H�PH9��
I�|$�[]A\�DH�����u�H��tjH��u�H�n�;H���f�H������x���H��t-H���i���H�=�;H�
�^���DH�y�;H�
�J����H�i�;H�
�:����H�Y�;H��Z����H�I�;H��J����H��;H��:����H�	�;H�
����H���;H������H���;H�
�����H�i�;H�
�����H�Y�;H����H��;H��H�5PsH�81��V���H���;H��H�5qH�81��;���ff.�AUA��ATA��UH��SH��H��H�z H��tH�T$�����������������؃�����H��������H�[D��H��H���zH��H�|$D�d$�C�H���[��H���C���H��H���H��[]A\A]�DH�\$���t���H�����u�H��t+H��u�H�o�;H��f.�H���;H��i����H���;H��Y����H�i�;H��I����H�	�;H��9����H��;H��)����AWAVAUATUSH��H�|$(H�D$@���
I��H�t$hH�~D�b�H�t$(H�T$HD�d$p������H�|$(H����H����H���k@���1@����H����u
H��������������|
H���A�G0H��uH�����tH��с���	ƒ�E�A�G0H�5��<��,.������	H�5��<H�|$(��.��A�Ņ��sMc�H�|$(H�L$PM��H�5��<O�d$�L�
H�D$XL�d$P���H�D$P���H�������H�������I�_(H�|$(H���O�H�|$(H�T$@H��I����H�|$PH��H���*�H�|$PH�T$XH��I���u�H��H����	H�D$XH�D$@H�|$?L���M���D$?IH����H�t$(�u1�L�����H�|$PH��� �u	H��L�o��L��H���'�L��H��L���I�H���h	I�H�t$(H�WH������-f�H�|$X�L���D$X@�	�H�|$HL�����H�Ĉ[]A\A]A^A_�f.�H��H��H��H��vH�����D��L��H���)�����H�|$XL����D$XF����H�|$XL����D$X0�y��x���@H�|$XL����D$XT�Y��X���@H�|$XL����D$Xi�9�H�|$(L��H����(���@������ ���L���J�	���DI�H�t$(H�\$XH�WH���V��H�|$(I�w(�(�H�|$(H�T$@H��H�D$ �q�H��H�D$(H�x�`��H�=��<H��H��������tCL�t$(H�D$XL���PI� H�D$(H���;L��H���
��H�|$(L9�tH�|$@�H����H�|$(H�7�������	H�EqHc�H�>��H�5`�<��*�����	H�5G�<H�|$(1�1�L�
�kM���O���H�t$(L���dH�ù����D��L��H���7����H�D$(H�D$XH�D$(H�������H�T$ H�t$@H�L$`H����
���H�M�;L��H�0�L���H���D$X/�e�H�|$(�k7��A��H�D$(H�xH��� �aH��L�o��I��L��L����L��L��L����L���H��D�t$X���B���L���H���D$Xl���L�t$(I�H�� H��҃���+��@��H����I��I�FH�D$H�L$J��L�`��D�I��t�A����u�Ic�I��h�T$X�L��H��L�D$�b�L��L���'�L�D$M�`�M��u���@I��H�D$I����l���H�D$M��A��D$D�0A��L���H�߈L$X�L$���L$L��H�߾�l$X���A��u�|$����A��t�A��@��uH�����t�����D$XcL���H����H�|$(��H�D$PH��� �.H��H�X��I��L��L���/�L��L��H���Q�H�D$PH�D$XH�D$P�}���H���;L��H�0�k
H�D$(H�x ���uH�����tH��ƒ���t	��@�;L���H���D$X}���H�D$(1�H�@H��tH�xH��L����H�|$(H�T$`H�5�
���H�D$(H�x H������D��L����������L���H���D$Xf�w�H�T$(�Ѓ������BL���������D$Xm���L��H����S�c���H�T$(H���`��H��
��H�D$H�\$L��H�����H�|$(��"��I��H���0���I�EE1�H�D$I�E �|H�T$J�<�L��J���H�T$(H�`�HH��H�<L��D��I������L9t$u�����H���;L��H�0�L���H���D$X[�a�H�T$(H��� �eH����H��L��H��E1���H�T$(H��QfDH����I9��X���H��J�<�L��D���u���H�T$(H��� �H��H����H9��;I���� u�L;j����H�R �H���L���o���L�d$(I�$ ��I�T$I�L$H���1�1�f�H�<�4tH��H��H9��H�t$hH���/�H�������H�T$`H�5�L�������}���H���;L��H�0�kH��L����D$X"��H�|$(H��� ��H��L�g��H��L��H����L��H��L���������f�I�H�t$(H�WH���+��H�|$(M��1�H�5��<L�
a1���H�t$(L��1ɿUH�D$P��H�|$PD��L������r���fDI�GH��H�PH��H������L��H�|$X��D$Xf�;�H�D$(�ƒ������@L��������fDH���u���M��H���M���@H�_L�o���H�J����H�t$@H�L$`L��H����~���L���H���D$XI����V���H��f�H9��j���H���H��H��?H)�H	�H��H�D$�~D$�@���H�R���I�U ���1�����L�`H�X��������H��I�G H�D$(���H�BH�D$����I�L$��}���H�_L�g����I�FM�FH�D$�7���H�Z���L�gL�o���H��f�H9��_���H�ѸH��H��?H)�H	�H��H�D$�~D$�5���L���H���D$X{������H�t$h1��>����H��;H�5�bH�81���H���;H�5�bH�81���H�?���H��H�5�bH��H���;H�81��s�H���;H�5�dH�81��[�H�|$(�A��H�5�dH��H�h�;H�81��6�H�W�;H�5@dH�81���H�?�;H�5hdH�81���H���;H�5+bH�81��������H�5;bH��H��;H�81����ff.�H��tZAUATI��UH��SH��H��L�.H��tFH��tA�Dn��H���)��L��H���a�UI�4$H��H��[]��A\A]�u�D��H�=�<H��u�H�=,��4��H��H��<�ff.�@AWAVAUATI��USH��H��8H�~L��H�T$����t7H�|$�H���D$;���H�|$H���C�H��8[]A\A]A^A_�@L������H��H���H�s(H����I��H��tH������=��A�L�t$H�ھL���D$:���L�}A�� uI��H��A��H��L����H��L��H������H�{L��H�WH���/
��I���B���H�޿H�\$�D$ �k�I�VI�vL���+���H��8[]A\A]A^A_�@L�}H�m�fDL�t$H�ھ�D$IL���N���0���H���;1�H�5`H�81���ff.�@UH��H��SH��H�=oH����H����2��H��H��[H��]�,���ff.��AUATUH��SH��H��H��ȃ���t@��tV��uCL�l$@H�{����H��L��I���D$e���H��L���d���H�[�����t�H��[]A\A]�H�����t���t��t�H�WH�O H�B8H���4��H�	H�A����uQH�RH��tH�zwAH9�t.H�P H����3��H�H�B����u"H�@H�@H��tH�xwH�_����$���H�c�;H�5�^H�81��*�f.�ATI��UH��SH��@����@������������H����@����H�_H�ߺH�����H�����H��L9�t*�H�|$H���D$C�A��H���I�H��H������H��[]A\�DH�����u�H��t!H��u�H���;H��H���;H��y����H���;H��i����H���;H��Y����H�)�;H��I����H���;H��9����ATI��UH��H�qSH���j��H�SH�sL���*���H��tH��H��H�5�[]A\�/����[]A\���AU1�H�[�ATUS��H��8H�L$L�L$L�D$�C�������A����������8���/��H���;1�H��H���'��H�CH�D$ ����H�C轫���C01�H�CH�C H�C(����H�H��L�d$(H�ھ�D$(L�����H�ھL���D$(���H�|$D��H�����H�{H���!H�����H�D$ H�D$(H�D$ H��8H��[]A\A]�@H�l$@���H���!�8��.��1�H���;H��H����&��H�CH�D$ ����H�C�ɪ���C01�H�CH�C H�C(����H�5ػ<H��H���������H�kH�5��<1�1�H���#��H�{����H���;H��NH�5�ZH�81����@H�|$A�����H��u'H�l$����DH�3���H�;1���������@��t��.��A����H����.��A�������A����Q�����UH��SH��H��H�s�R�T��SH�sH���E�H��1�[]�ff.����AUATI��UH��SH��H���f��H9�tH���<H��t[H9�t
H������H��uH��1�[]A\A]�@L�mH���4"��H��L������UH�uL����H��1�[]A\A]�D�H�=s�W,��H��<�ff.�AUATUH��SH��H�>H��tI��I��H��L���Z���uH��H��H��[]A\A]�DH�$��t7�����؃�����H������uH���;H�8�DH�����tWH�{�.�H�=�<L��H�l$H�������t
H�$H��H��PI�<$H�t$1���H��H��[]A\A]��H��tHH��u�H���;H�8�f�H���;H�8�@H���;H�8�n���H�J�;H�8�_���H���;H�8�P���AWAVAUATI��UH��SH��H��H�D�A��"��[��H��]Hc�H�>��@H���X�I���,��H�S0I�n�H��H�rH��H���V��I��H�CH�hH�CM����
fDH��H���H��I���L��L��H������H�CH�P�H�SH���u�H�CA��}�0
H�s@L����H���HH���@��H�51�<�H��H���Y������H����H��H���.��H�D$0M��tH��1�H���A�$H�5�<H�L$0�H���&��H�{(�H�S0H��H�rH��H���E��H��I����H�=K�<H�T$8H������tH�D$8L��H��PI��L��H���F��I��I��4�SH��HL��[]A\A]A^A_�@H���x��H��A����H��H�<I���N��A��-A�"H�Ÿ"DE�H�}H�E tH�}1ɺL���w��1�H��I���J�H�C0L��H��H�pH���d��H�s@H��D�S���H��H�����I���@���H�{0�4L�c@H�oH��H���t�H���H�����1�L��H�������H�������������H��H��H������1�H��H��H����L��H���d���@H����H��H���5��H��H���
�H��H�����M��tA�$����H�S0H��H�rH��H���h��H�s@H������@H���0�H��H������H�hH� tH�h�H�=VTH����€�����	�H�=3TH����€����
�H�=TH���
W���€����<
�f(���H��H�C0H��H�pH�����H�s@H���E���DH���H��I����I��H����	A��uI�����tA�E�����z
L��L���N��L��H������H��1�H���v���I���$�������� ���H�����L��H����H�E�� u�H�}����f.�H������H�s@H�|���f.�H��L�k@�4H���,��H�T$0L��H�D$0H��I���P�����H��������������H�S0H��H�rH��H���h��H�5��<�H��I����������1�H��H���|���H�5}�<H�L$8L��H�D$8����H�{(��L��L������H������H��H���}��H��H���R��M���[���A�$���O���H�^�;H��H�5\VH�81��"��f�H�s@1��M���DH���H�����I��I��A��uH�����tH��ƒ���t	����H��1�H�����I�Ĩ�zH������n����P����]��tI�t$L�����H�����uXL�����A�$�������u0�������	H���	<�	H��4�	H���9���
M�l$M�������I����������L��L���I����������I�$��`H��`�����I�E��`H��`�o���L��L�����_����M���OA�4$H����A�$H���3$��H�s@H�������H�s@����f�H������H��H�����H��I�����H�{0�4�D$8A��H�oH��H����M��tH�t$8H��L����A�$�|$8����I�}�� ��H��M�]��H���`L�L��L��E1�I����A��@H��E1�H��H���H9����J���4w�M��I��M���ML�fA�����H��I��L���H�C0H��H�h����H��H��H�����H��H��H������H�s@H������H�����H�{0H�T$8H���7������	H�|$8H������I�����f.�H�����H���"��I���x����H�s@��
���f�H�{0�4H�oH��H����H���
H�����H��I��H�D$���L��I�����I�Ĩ��H������������	��H�|$�n��I��H��� ��H����L9���K�D?�HCH��H��L��1����L��H�D$�i���H�$I�FH�D$M��]��f�H�D$H�<����H��I����	L��H��I���Y���H���
H��H����H�<$H�����H�kI9���I� u�I�F �H�����H��H�����H��H���z�M�������A�4$���w���H���;H��H�5LQH�81��J��f.�H�t$8H��H���D$8��D�D$8I��E�������H��1�H���	���DH���h��H��I���=���H�S0I�m�H��H�rH��H���c��I��H�CI�D�H�CM��t(fDH��H����L��H������H�kH���u�L��H�s@��H��H���O��H�CI������f�H��L�k@�dH���\��H�T$0L��H�D$0H��I�����I��H��tH��H�����H�5
�<�L���H�����H�C0H��L��H�pH�����H��I���H�5Ь<H�L$8L��H�D$8�!���H�{(��L��L���K�H�|$8H�5���I��H������L��H���i��I��H������H�|$0�=H����������H���;D��H�5kLH�81��X���A��ujH��H���x���fDL)�L�����D��L���B�����DL�|$H�4$L����H�s@L����H��H�����H�CI���s�H�N�E1�����@H��E1�L�����f�I�F�o�����
R�k���H������W���H���^�H���?����@����1�H��������
������M�]I�}�H���H��H��������H���KL��H��������1��t��H���$���H����H�t$0H��H�$����H�$f(�H��� �SH��H����L�d$0�L$8L��H)�H)�tH�h�H��~A�<$���L$8H�0fH~�H9��T���fH~�H��<������uH��H��H���;���H���&���H���#����1�H����I�Ĩ����������I���A����I�|$I9���@��uH�����tH��ƒ���t	����L���b��H���(D�������H�H����H��H���5��H�E�� u�H�}����1��V���H�@���H������i���H���H���V���H�|�;H�8�L����������	���������������H���;H�8����H�\�;H�5&IH�81����f(�H�|$,I��E1�fT���$��%�/��H�|$8�%��T$8�$�H����A�T$H��I�L$H	��QH��L�aH	�H��H���AH	�H��v`� f�A)��$H���H*�D���L$����$H���L$�X��T$8~:A�$H��tH���j���L���I�����A�T$H��I��H	���D$,f(��$�x��E���$f��f/�vfW���D$8����H�|$���M��L��H�5�IH��H���;H�81����H���;H�8���H���;H�8�r���H�S�;H�8�c���H���;H�8�T���H���;H�5:GH�81��D��H���;H�5IH�81��,�����L��H�5�HH��H�c�;H�81��	��H�*�;H��H�5`JH�81�����H�=�F���L�����H�5�IH��H���;H�81����H�=*��S��H�|$�y���H�5vFH��H���;H�81����H�����H�5�HH��H���;H�81��k��H�|$�1���H�5RHH��H�x�;H�81��F��H�g�;H�5�EH�81��.��H�w�;H�5�EH�81����H�=z����L������H�5�HH��H��;H�81�������1���@AUATA��USH��H���+��H��H������I��H�C(L��H�hH�������u&H�{(L��H���g�E��u"H��L��[]A\A]�@�L���C
���ːH������H�h�H��~��H��H���<H��I���Q���L��H���v���H���u؅�~�L�������H��L��[]A\A]�@��U1�SH��H��H�������;t��Iu'H�߽�����;u��uIH��H��[]�k����:t#��H���;H�5CHH�81����f�H����H��[]���H���;H�5:HH�81��h���AWI��H��AVI��AUI��ATUSH�����H��~pH���#���L�����M��tA�H��tHL������1�L��I�����L��H��H���<�����y�L������H��L��H������H��u�H��[]A\A]A^A_�ff.�f���AT1�H�F�USH�� H��L�D$�>��H�<$�u��H���SH�$1�����P�H�$����H���;1�H��H���
���kHH�D$H�$H�C H����H�C(蠑��H�C@H�C0H�C8H�CH�CH���$��H��A�������A���t���k����H�����t��uqH�D$H��tH�C8�1�H���s�H��H��蘼��H�D$H�D$H�D$H�� H��[]A\�DH����������H��с�����E����f�A���1��H�=�F�p���j���H�5�<H�<$�������H�5ɡ<H�<$�������H�5��<H�<$1�1��	���P��U��H���;1�H��H���!���CHH�D$H�$H�C H��!�H�C(����H�C@� H�C0H�C8H�C�"�H�C�m���H���a���A��E��H�w�;�H�5;EH�81��9���$���@��AWI��AVI��AUI��ATI��USH���]��H���|� H����H�=��<H��L� L�xL�pL�hH��tH��H��H��[]A\A]A^A_����;�1�H�����H��H�P�<H���;H�8�I�H���a�H�=2�<�H���;H�5�@H�81��p����SH�=�@�_���H�=��H������H�=��H�8�<����H�=��H��<�����H�=z�H���<�����
H�=E?H�؟<����
H�=�?H���<����H�=@H���<����H�=&V�z���H�=�1H�g�<�b���H�=12H�G�<�J���H�=$2H�'�<�2���H�=2H��<���H�߹����H�{�H�5}>H�ݞ<�(��H�߹����H�i���H�5���
��H�߹����H�N���H�5Q?����H�ߺ	H�5E?���H��[�H�5>?���f���H��H�<$1�H��@��H�t$H������H���D��H��H�|$H�t$�����H���f.�DATI��USH��H��A��u4H��H����������t+H�����H�Ã���t�C�K��������1�H��H9���H�ڸH��H��?H)�H	�H��H�\$�~D$f��f/��!f.�{l��H��txxf���H*��Y
G�X�H��[]A\�f�H��ƒ���
ts�؃����k����L������/����=����1������u��N�H��[]A\�DH���f��H��H	��H*��X��s���f.��� t�1Ҿ���H=��p���L�`�H��������?K�t$I9�w-H���3��H�Ã���t?��u
H������A���L���y���L����H����H�b�;H�5�BH�81����L���y������SH��1���H�� H�L$L�D$�
��H�|$��f(ȃ�tjH�0fH~�H9�tFfH~�H��<������tH��H��u#H�� [�DfH~�H�� H��[H��H��Ðf(����H�� [ÐH�|$�D$�p����L$�^��w��������H��������@��uH�����t
�����tH���I�H�ƃ���t^�F����H�0fH~�H9�t0fH~�H��<������tlH��H��u
H����H������H��H9�tQH��H��H��?H)�H	�H��H�t$�~D$�n����fH~�H��H��H��H���f.�H���H������H��������@��uH�����t
�����tH���9�H�ƃ���t^�F�D�H�0fH~�H9�t0fH~�H��<������tlH��H��u
H����H�������H��H9�tQH��H��H��?H)�H	�H��H�t$�~D$�n����fH~�H��H��H��H���f.�H���H������H��������@��uH�����t
�����tH���)�H�ƃ���tv�F�$�H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H������H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH���)�H�ƃ���t^�F�t��H�0fH~�H9�t0fH~�H��<������tlH��H��u
H����H�������H��H9�tQH��H��H��?H)�H	�H��H�t$�~D$�n����fH~�H��H��H��H���f.�H���H������H��������@��uH�����t
�����tH����H�ƃ���tv�F����H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H������H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH����H�ƃ���tv�F�D���H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H������H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH����H�ƃ���tv�F�D���H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H������H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH����H�ƃ���tv�F��H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H������H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH����H�ƃ���tv�F����H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H������H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH����H�ƃ���t^�F�Ĺ��H�0fH~�H9�t0fH~�H��<������tlH��H��u
H����H�������H��H9�tQH��H��H��?H)�H	�H��H�t$�~D$�n����fH~�H��H��H��H���f.�H���H������H��������@��uH�����t
�����tH���	�H�ƃ���tv�F����H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H������H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH���	�H�ƃ���tv�F��H�0fH~�H9�tHfH~�H��<������tH��u/H��H����H��H��H��H����H������H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�V���ff.�@����H��������@��uH�����t
�����tH���	�H�ƃ������F�
�f/������H�0fH~�H9�tJfH~�H��<������tH��H��u'H���f�fH~�H��H��H��H���f.�H������H��H9�t1H��H��H��?H)�H	�H��H�t$�~D$�B����H�1�;H�5�4H�81��X������ATI��U��S��H��H����t)@��uH�����t
�����tH�������H�Ã�L��A��uZ����ǃ�tZ�C�L���H�0fH~�H9�txfH~�H��<������ttH��u_H��H��[]A\�@�����ǃ�u�H��H9�t�H�ؾH��H��?H)�H	�H��H�\$�~D$�r���H��[]A\�#��H��H��H��[]H��A\�ff.�����H��������@��uH�����t
�����tH����H�ƃ������F�
M6f/���f/��������H�0fH~�H9�t#fH~�H��<������tH��H��tH���P��H��H��H��H��H���@H��H9�t1H��H��H��?H)�H	�H��H�t$�~D$�J����H��H���H��;H�5�2H�81����������H��������@��uH�����t
�����tH����H�ƃ������F�
5f/���f/����� ��H�0fH~�H9�tLfH~�H��<������t"H��H��u)H���@H�-DT�!�?H��H��H��H��H���f�H������H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�2���H���;H�5�1H�81��϶��ff.�@��S���H�� ����@��uH�����t
�����tH���H�H�ƃ������FH�|$�*��Hc\$H�0fH~�H�\H9�tTfH~�H��<������t H��H��u1H�� H��[���@H��H�� H��H��[H��H�����@����H�� H��H��[��H��f�H9��U���H��H��H��?H)�H	�H��H�t$�~D$�+���ff.�@��ATA��UA��H��SH��H��A��t+@��uH�����t
�����tH����A��H��A���������@��uH�����t�E����tH�����H�Ń������MA�����C���H�0fH~�H9�tRfH~�H��<������tH��H��u/H��[]A\�fDfH~�H��H��[]H��A\H���fDH��[]A\�K��H��f��H9��_���H��H��H��?H)�H	�H��H�l$�~L$A���:���H��f�H9��(���H�ڸH��H��?H)�H	�H��H�D$�~D$��������H��������@��uH�����t
�����tH���y��H�ƃ���t~�Ff��f/���f.���f.��Q���H�0fH~�H9�t/fH~�H��<������t{H��uH��H����f(�H������H��H9�t�H��H��H��?H)�H	�H��H�t$�~D$�N����t��X���f�H��H��H��H���H���;H�5�-H�81�跲���T$���T$���������H��(�����J@��uH�����t
�����tH���)��H�ƃ�����Nf(�fT	�f.)�vfP���@f��f(�H�|$�T$�$�v���T$�$f.�z2u0�D$f/��f/�vf(��\���Q/f/�w[f(��*��H�0fH~�H9�tgH��H��<������tH��uPH��H��(�H��H��(H��H�����,�H�.��H���H�0fH~�H9�u�H��(����fDH��H9�t1H��H��H��?H)�H	�H��H�4$�~$���f�f��f������H���;H�55,H�81��۰��ff.�����H��������@��uH�����t
�����tH���Y��H�ƃ������F�
�-f/���[�f/���f.���f.�{I�<���H�0fH~�H9���fH~�H��<������upH��H��H��H����u��f�H���Ž��DH��H9�taH��H��H��?H)�H	�H��H�t$�~D$�2����H��t+H���r���f��C������H���Y���f�H��H���H�2�;H�5�*H�81��Y���f���ATI��USH��H��A��u8H��H���������t/H������H�Ã���t�C�O��������1�H��H9���H�ڸH��H��?H)�H	�H��H�\$�~D$f��f/��yf.�������H����f���H*�H�0�X�fH~�H9�tfH~�H��<�������H��H��uXH��[]A\ÐH��ƒ���
ts�؃����3����L������������1������Z������H��[]A\鵻��DH���f��H��H	��H*��X��9���f��� t�1ҾH�����H=��m���L�`�H��������?K�t$I9�wJH�����H�Ã���t\��u
H������>���L���:���fH~�H��H��[]H��A\H���L���6��H���H��;H�5�(H�81�����L���!������ATI��USH��H��A��u8H��H���������t/H�����H�Ã���t�C�O��������1�H��H9���H�ڸH��H��?H)�H	�H��H�\$�~D$f��f/���f.����[��H��t��f���H*��Y
�)�X�H�0fH~�H9���fH~�H��<�������H��H��uZH��[]A\�H��ƒ���
ts�؃����#����L�����������1�������J������H��[]A\�e���DH���f��H��H	��H*��X��+���f��� t�1ҾH���\���H=��m���L�`�H��������?K�t$I9�wJH��萨��H�Ã���t\��u
H������>���L���*���fH~�H��H��[]H��A\H���L������H���H���;H�5�&H�81��ɪ��L�����������H��(���D$��tv@��uH�����t
�����tH���E��H�ƃ���tJ�Ff(�fT
)�f.
I�vsfP������������H��(H�����DH��H9�t1H��H��H��?H)�H	�H��H�t$�~D$�f.�f�H�|$����H�0fH~�H9�tVfH~�H��<������t*H��H��u3Hct$H��(H�t6�h���H��H��H��H������C���H����H�/�;H�5p%H�81��V���fD��ATA��UA��H��SH��H��A��t+@��uH�����t
�����tH������A��H��A���؃�������uH�����t
�����tH�����H�Ã������Kf�Ҹf.���E�A�����Ef.¹��E�!„�t5fP��t2H��h!��IfP��H��h!��IHE�H��[]A\�fD�3��H�0fH~�H9�t/H��H��<��������H��uH��H��[]A\ÐH��[]A\�ӵ��H��H9�tyH�غH��H��?H)�H	�H��H�\$�~L$�����H��f�H9�����H��H��H��?H)�H	�H��H�D$�~D$�����A��t*�f��f�����H��H��H��[]H��A\�f�1�H9�������f��f���~������H�
�;H��H��H�8������H��;H��H�8�J�f.���H�͢;H��H�8��f.���H���;H��H�8����f.���H���;H��H��H�8�����H�m�;H�����ff.�f���H�M�;H��H�8��f.���H�-�;H��H�8��f.���SH�=S"��H��;H���;H�5�UH��H�H���H���;H�;H�56�H�H��h!��I��H�;H�5��H�J��XT�-���H�;�H�Q���H�5�!���H�;�H���H�5�!�z��H�;�H���H�5�!�_��H�;�H���H�5�!�D��H�;�H�5�H�5x!�)��H�;�H���H�5b!���H�;�H�o�H�5L!����H�;�H�4��H�57!����H�;�H�)��H�5"!���H�;�H��H�5
!���H�;�H��H�5� ���H�;�H���H�5� �l��H�;�H���H�5� �Q��H�;�H����H�5� �6��H�;�����H����H�5� ���H�;�H���H�5t ���H�;�H���H�5^ ����H�;�H���H�5I ����H�;�H�;�H�53 ���H�;�H���H�5 ���H�;�H�5�H�5 �y��H�;�H���H�5��^��H�;�H���H�5��C��H�;�H���H�5��(��H�;�H�y�H�5��
��H�;[�H�=���H�5������H��u�H�5��:���f.�USH��H��H�����H��H��t'H��H�5C�����H��H��H��[]�B���f�H��H�ߺ[H�5 ]�ֵ��fDAWAVAUATUH��SH��H��(H��twI��A�����M�4$L��H�����9���L��H�5�'H��H��H��1��N���H�ߺH�5�S�j���I�<$H������i��]H�
#I��Hc�H�>��苟���H�5E'H���'����H�5kSH������H��([]A\A]A^A_�H��H��E�����@���H�"H�5['H��1�許���H�5SH���Ĵ��H�5B'H��蕻��I�L$D��H��H������H�E�� �NmH����H�p�H��育��H��([]A\A]A^A_�H��H��E�����诞��H��!H�5�&H��1������H�5�RH���3���H�5�&H������I�L$D��H��H���A���H�E�� �d_H����H�p�H����H��H���6���E��H��H�� H�H�5D&HD�1�萰���H�5RH��謳��H�5*&H���}���I�L$D��H��H�����H�E�� �EiH����H�p����E����yI�|$���H��H��蝝��H�B H�5�%H��1������H�5yQH���!���H�5�%H����I�L$D��H��H���/���H�E�� ��mH��H�ƃ�H��H���ܰ��H��H���!���E���EdH�/H�53%H��1�耯���H�5,%H��蜲��I�t$H���?����H�5�PH���{���H��H�����H� H�5�$H��1��(����H�5�PH���D���H�5�$H������I�L$ D��H��H���R���H�E�� �}\H����H�p��{���H��H��E���~�A���H�gH�5\$H��1�詮��H�5Z$�H���ű��I�t$H���h����H�5�OH��褱�����H��H��E����|�ۛ��H��!H�5�#H��1��C����H�5�OH���_���H�5�#H���0���I�L$D��H��H���m���H�E�� �[kH����H�p�H������H��H���b���E��H��H�f!H�I!H�5p#HD�1�輭���H�50OH���ذ��H�5Q#H��詷��I�L$ D��H��H�����H�E�� ��jH����H�p�H��薮��H��H���ۚ��E��H��H��H�� H�5�"HD�1��5����H�5�NH���Q���H�5�"H���"���I�L$D��H��H���_���H�E�� �3jH����H�p����H��H��E���dg�N���H��1H�5i"1�H��趬���H�5b"H���ү��I�t$H���u����H�5	NH��豯��H��H�����H�����H��H��E����j�֙��H�qH�5�!H��1��>����H�5�MH���Z���H�5�!H���+���I�L$D��H��H���h���H�E�� �piH����H�p�H������H��H���]���E��H��H�
H��H�5k!HD�1�跫���H�5+MH���Ӯ��H�5Q!H��褵��I�L$D��H��H�����H�E�� ��hH����H�p��
���H��H��E���(~�И��H��H�5� H��1��8����H�5�LH���T���H�5� H���%���I�L$D��H��H���b���H�E�� �sXH����H�p����E�������H��H���Q����H�5' H������H�5�,H���٭���H�5LH���ŭ��H��H���
����H�5�H��覭���
H�5m,H��蒭���H�5�KH���~���H��H���×���H�5�H���_����H�54,����E���2���H��H��芗���H�5`H���&����H�5�+H�������H�5VKH�����H��H���C����H�5H���߬���H�5�+H���ˬ���H�5KH��跬��H��H������H�5�H��蘬���
H�5Q+�X���H��H��E������Ö��H�hH�5�H��1��+����H�5�JH���G���H�5�H������I�L$D��H��H���U���H�E�� �DXH����H�p�H������H��H���J���E����WH�0(H�5\H��1�詨���H�5UH���ū��I�t$H���h����H�5�IH��褫��H��H�����H�MH�5H��1��Q����H�5�IH���m���H�5�H���>���I�L$ D��H��H���{���H�E�� ��VH����H�p����H��H��E����c�j���H��H�5�1�H���ҧ���H�5~H�����I�t$H����H�5%IH���ͪ��H��H������H��H�5-H��1��z����H�5�HH��薪��H�5H���g���I�L$ D��H��H����H�E�� �-cH����H�p�����H��H��E����q蓔��H��H�5�H��1�����H�5oHH������H�5�H�����I�L$D��H��H���%�H�E�� ��bH����H�p�H���է��H��H������E��H��H��H�XH�5(HD�1��t����H�5�GH��萩��H�5H���a���I�L$D��H��H����H�E�� �bH����H�p����H��H��E���+g荓��H��H�5�H��1�����H�5iGH������H�5�H�����I�L$D��H��H����H�E�� �6`H����H�p��H�E����gH��H������H�H�5)1�H���v����H�5"H��蒨��I�|$訥��H��H���͒���H�5�FH���i���H��H��讒��H�TH�5�H��1������H�5�FH���2���H�5�H������I�D$ D��H��H��H�H�<�H�E�� ��PH����H�p�H�����H��H���1���E��H��H��H�=*H�5?HD�1�苤���H�5�EH��觧��H�5%H���x���I�D$ D��H��H��H�H ��H�E�� �DPH����H�p����H��H��E���li蠑��H�oH�5�H��1������H�5|EH���$���H�5�H�����I�L$D��H��H���2�H�E�� ��XH����H�p��[�H��H��E���cf�!���H��H�5<H��1�艣���H�5�DH��襦��H�5H���v���I�L$D��H��H����H�E�� ��]H����H�p�H���c���H��H��訐��E��H��H�qH��(H�5�HD�1������H�5vDH������H�5�H�����I�L$D��H��H���,�H�E�� ��[H����H�p��U�H��H��E���Yv����H�H�56H��1�胢���H�5�CH��蟥��H�5H���p���I�L$D��H��H����H�E�� ��OH����H�p�H���]���H��H��袏��E��H��H�kH��H�5�HD�1�����H�5pCH������H�5�H�����I�L$D��H��H���&�H�E�� �SH����H�p��O�E���)fH��H������H��H�50H��1��}����H�5�BH��虤��H�5H���j���I�L$D��H��H����H�E�� �JMH����H�p�H���W���H��H��蜎��E��H��H�DH�0H�5�HD�1�����H�5jBH������H�5�H�����I�L$D��H��H��� �H�E�� ��LH����H�p��I�E�������H��H�������H�5�H��諣���H�5�!H��藣���H�5�AH��胣��H��H���ȍ���H�5�H���d����H�5y!H���P����H�5�AH���<���H��H��聍���H�5WH�������H�5N!H���	����H�5MAH�����H��H���:���H��� ���E������H��H�������H�5�H��趢���H�5n H��袢���H�5�@H��莢��H��H���ӌ���H�5�H���o����H�5A H���[����H�5�@H���G���H��H��茌���H�5bH���(����
H�5 ����H��H��E����z�S���H�MH�5nH��1�軞���H�5/@H���ס��H�5PH��訨��I�L$D��H��H�����H�E�� �<MH����H�p�H��蕟��H��H���ڋ��E��H��H��H��H�5�HD�1��4����H�5�?H���P���H�5�H���!���I�L$D��H��H���^�H�E�� �;KH����H�p���H��H��E���^�M���H�GH�5hH��1�赝���H�5)?H���Ѡ��H�5JH��袧��I�L$D��H��H�����H�E�� ��WH����H�p�H��菞��H��H���Ԋ��E��H��H��
H��H�5�HD�1��.����H�5�>H���J���H�5�H������I�L$D��H��H���X�H�E�� �HWH����H�p���E���
\I�|$��HZH��H���;���H�LH�5VH��1�補���H�5OH��迟���H�5�&H��諟���H�5�=H��藟��H��H���܉��E��H��H�H��H�5�HD�1��6����H�5�=H���R���H�5�H���#���I�L$D��H��H���`�H�E�� �]VH����H�p���H��H��E����b�O���H�H�5jH��1�跛���H�5+=H���Ӟ��H�5LH��褥��I�L$D��H��H�����H�E�� ��SH����H�p�H��葜��H��H���ֈ��E��H��H��
H��H�5�HD�1��0����H�5�<H���L���H�5�H������I�L$ D��H��H���Z�H�E�� �@SH����H�p���H��H��E����`�I���H�CH�5dH��1�豚���H�5%<H���͝��H�5FH��螤��I�L$D��H��H�����H�E�� ��OH����H�p���H��H��E����K�ʇ��H��
H�5�1�H���2����H�5�H���N���I�t$H������H�5�;H���-���H��H���r���H�l
H�5�H��1��ڙ���H�5N;H�����H�5tH���ǣ��I�L$D��H��H����H�E�� ��JH����H�p��-�H��H��E���ek��H��	H�5H��1��[����H�5�:H���w���H�5�H���H���I�L$D��H��H����H�E�� ��FH����H�p�H���5���H��H���z���E��H��H�4H�p
H�5�HD�1��Ԙ���H�5H:H����H�5nH�����I�L$ D��H��H����H�E�� �6FH����H�p��'�H��H��E���nO���H�kH�51�H���U����H�5H���q���I�D$ H�5'H�ߋP1��(����H�5�9H���D���H��H��艅��H��H�5�
H��1����H�5e9H���
���H�5�
H���ޡ��I�D$ D��H��H��H���H�E�� ��NH����H�p�H���Ș��H��H���
���E���NH�M-H�5
H��1��l����H�5
H��舚��I�D$ H�5&H�ߋP1��?����H�5�8H���[���H��H��蠄��H�AH�5�H��1������H�5|8H���$���H�5�H�����I�D$ D��H��H��H�H�.�H�E�� �3MH����H�p�H���ޗ��H��H���#���E����KH��+H�55H��1�肖���H�5.H��螙��I�D$ H��H�p�=��H�5�7H���y���H��H��较��H��+H�5�1�H���&����H�5�H���B���I�D$ H��H�p ����H�5u7H������H��H���b���H��+H�5}1�H���ʕ���H�5vH�����I�D$ H��H�p(���H�57H�����H��H������H��H�5!H��1��n����H�5�6H��芘��H�5H���[���I�D$ D��H��H��H�H@��H�E�� �lJH����H�p�H���D���H��H��艂��E��H��H��	H�}H�5�
HD�1�����H�5W6H�����H�5}
H���О��I�D$ D��H��H��H�H0�	�H�E�� ��IH����H�p�H��蹕��H��H�����E��H��H��	H�H�5
HD�1��X����H�5�5H���t���H�5�	H���E���I�D$ D��H��H��H�H8�~�H�E�� �<IH����H�p���E����H��H���m����H�5C	H���	����H�5�H������H�595H�����H��H���&����H�5�H���–���H�5UH��讖���H�5�4H��蚖��H��H���߀���H�5�H���{����H�5�;�E���N�H��H��覀���H�5|H���B����H�5�H���.����H�5r4H������H��H���_����H�55H������H�5sH������H�5+4H���ӕ��H��H�������H�5�H��贕���
H�59�t�E�����H��H�������H�5�H���{����H�5�H���g����H�5�3H���S���H��H������H�5nH���4����H�5H��� ����H�5d3H������H��H���Q���H�5'H������$H�5�$���E����tH��H�����H�H�53H��1�耑���H�5�2H��蜔��H�5H���m���I�L$D��H��H�����H�E�� ��=H����H�p�H���Z���H��H���~��E��H��H��H��H�5�HD�1�����H�5m2H������H�5�H�����I�L$D��H��H���#��H�E�� �==H����H�p��L��E�������H��H���~���H�5�H��讓���H�5(
H��蚓���H�5�1H��膓��H��H����}���H�5�H���g���� H�5�H���S����H�5�1H���?���H��H���}���H�5ZH��� ����H�5�	H�������H�5P1H�����H��H���=}��H�j� ���H��H��E���~l�}��H��H�58H��1�腏���H�5�0H��衒��H�5H���r���I�L$D��H��H�����H�E�� ��=H����H�p�H���_���H��H���|��E����<H�VH�5�H��1������H�5�H������I�D$ H��H�p����H�5R0H�����H��H���?|��H�H�5Z1�H��觎���H�5SH���Ñ��I�D$ H��H�p �b���H�5�/H��螑��H��H����{��H��H�5�H��1��K���H�5��H���g���I�D$ H�pH���aLH���>LH�������H�5�/H���/���H��H���t{��E��H��H���H��H�5�HD�1��΍���H�5B/H�����H�5hH��軗��I�L$D��H��H�����H�E�� �7@H����H�p��!��H��H��E���Q��z��H���H�5H��1��O����H�5�.H���k���H�5�H���<���I�L$D��H��H���y��H�E�� ��EH����H�p�H���)���H��H���nz��E���_EH�H�5�H��1��͌���H�5yH�����I�t$H������H�5 .H���ȏ��H��H���
z��H���H�5(H��1��u����H�5�-H��葏��H�5
H���b���I�D$ D��H��H��H�H���H�E�� ��DH����H�p�H���K���H��H���y��E��H��H�{�H�Z�H�5�HD�1�����H�5^-H������H�5�H���ו��I�D$ D��H��H��H�H���H�E�� �DH����H�p��9��E������H��H���x���H�5�H��蛎���H�5
H��臎���H�5�,H���s���H��H���x���H�5�H���T����H�5P
H���@����H�5�,H���,���H��H���qx���H�5GH���
����H�5
����E���itH��H���8x��H�.H�5SH��1�蠊��H�5Q�H��輍��I�t$����E��t�H��H����w���H�5�H��莍���H�5�H���z����H�5�+H���f���H��H���w���H�5��H���G����H�5�H���3����H�5w+H������H��H���dw���H�5:�H�������H�5WH������H�50+H���،��H��H���w��H�����H��H��E����s�v��H��H�5�H��1��e���H�5��H��职��I�D$ H�p���E���w���H��H���v���H�5��H���K����H�5H���7����H�5{*H���#���H��H���hv���H�5>�H�������H�5�H�����H�54*H���܋��H��H���!v���H�5��H��轋���H�5����H��H��E����a��u��H��H�5�H��1��P����H�5�)H���l���H�5�H���=���I�L$D��H��H���z��H�E�� ��6H����H�p�H���*���H��H���ou��E��H��H��H���H�5}�HD�1��ɇ���H�5=)H�����H�5^�H��趑��I�L$D��H��H������H�E�� ��4H����H�p�H��裈��H��H����t��E��H��H�E�H�K�H�5��HD�1��B����H�5�(H���^���H�5�H���/���I�L$ D��H��H���l��H�E�� �V4H����H�p����H��H��E���
a�[t��H�*�H�5v�H��1��Æ���H�57(H���߉��H�5]�H��谐��I�L$D��H��H������H�E�� �^5H����H�p����E������H��H����s���H�5��H���x����H�5d�H���d����H�5�'H���P���H��H���s���H�5k�H���1����
H�5-�H�������H�5a'H���	���H��H���Ns���H�5$�H������H�5����E������H��H���s���H�5�H��豈���H�5s�H��蝈���H�5�&H��艈��H��H����r���H�5��H���j����H�5;�H���V����H�5�&H���B���H��H���r���H�5]�H���#����
H�5�����E���yjH��H���Nr��H�
H�5i�1�H��趄���H�5b�H���҇��A�T$ 1�H��H�5d茄��I�|$ H�5�	uH�5�H���~����H�5�%H��芇��H��H����q��H���H�5�H��1��7����H�5�%H���S���H�5�H���$���I�L$D��H��H���a��H�E�� �T0H����H�p�H������H��H���Vq��E��H��H��H�9�H�5d�HD�1�调���H�5$%H���̆��H�5J�H��蝍��I�L$D��H��H������H�E�� ��/H����H�p����E���{���H��H����p���H�5��H���e����H�5.�H���Q����H�5�$H���=���H��H���p���H�5X�H�������'H�5
H���
����H�5N$H�����H��H���;p���H�5�H���ׅ���H�5�
H���Å���H�5$H��诅��H��H����o��H��H�5�1�H���\����H�5�H���x���A�T$ 1�H��H�5
�2���I�|$ H�5GuH�5-H���$����H�5�#H���0���H��H���uo��H�Q����E������H��H���Uo���H�5+�H�����H�5��H���݄���H�5!#H���Ʉ��H��H���o���H�5�H��誄���0H�5^	H��薄���H�5�"H��肄��H��H����n���H�5��H���c����H�5����H��H��E���qY�n��H���H�5��H��1�����H�5j"H������H�5��H�����I�L$D��H��H��� ��H�E�� �60H����H�p�H���Ё��H��H���n��E��H��H���H���H�5#�HD�1��o����H�5�!H��苃��H�5�H���\���I�L$D��H��H�����H�E�� ��/H����H�p�H���I���H��H���m��E��H��H�H�H�B�H�5��HD�1������H�5\!H������H�5��H���Չ��I�L$ D��H��H�����H�E�� �/H����H�p��;��H��H��E���`g�m��H���H�5�H��1��i���H�5� H��腂��H�5��H���V���I�L$D��H��H�����H�E�� �S0H����H�p�H���C���H��H���l��E��H��H�Q�H���H�5��HD�1���~���H�5V H�����H�5|�H���ψ��I�L$D��H��H�����H�E�� ��/H����H�p��5��H��H��E���:c�k��H�*�H�5�H��1��c~���H�5�H������H�5��H���P���I�L$D��H��H�����H�E�� �3/H����H�p�H���=��H��H���k��E��H��H�K�H���H�5��HD�1���}���H�5PH�����H�5q�H���ɇ��I�L$D��H��H�����H�E�� ��.H����H�p�H���~��H��H���j��E��H��H�X�H�;�H�5	�HD�1��U}���H�5�H���q���H�5��H���B���I�L$ D��H��H�����H�E�� �.H����H�p����H��H��E���K_�nj��H�h�H�5��H��1���|���H�5JH������H�5k�H���Æ��I�L$D��H��H�����H�E�� �-H����H�p�H���}��H��H���i��E��H��H���H���H�5�HD�1��O|���H�5�H���k��H�5��H���<���I�L$ D��H��H���y��H�E�� ��,H����H�p����H��H��E����]�hi��H� �H�5��H��1���{���H�5|�H����~��M�t$M����(I�����(�H�A��L$H�L$
�;DI��K�t�H���X��D9|$~�H�5��H���~��I�GL;|$uʺH�5�H���n~��H��H���h��E��H��H�b:H���H�5��HD�1��
{���H�5�H���)~��H�5��H�����I�L$ D��H��H���7��H�E�� �t)H����H�p�H����{��H��H���,h��E��H��H���H��H�5:�HD�1��z���H�5�H���}��H�5 �H���s���I�L$D��H��H�����H�E�� ��(H����H�p�����E����NH��H���g��H���H�5��H��1��z���H�5{H���#}��H�5��H����I�L$D��H��H���1��H�E�� �&H����H�p��Z��E��t�H��H���$g���H�5��H���|���
H�5��H���|���H�5�H���|��H��H����f���H�5��H���y|���H�5��H���e|���H�5�H���Q|��H��H���f���H�5l�H���2|���H�5q�H���|���H�5bH���
|��H��H���Of��H�s����E����\H��H���/f��H�K�H�5J�H��1��x���H�5H���{��H�5,�H��脂��I�L$ D��H��H�����H�E�� ��$H����H�p�H���qy��H��H���e��E��H��H��H���H�5��HD�1��x���H�5�H���,{��H�5��H�����I�L$D��H��H���:��H�E�� �:$H����H�p��c��E�������H��H���)e���H�5��H����z���H�5��H���z���H�5�H���z��H��H����d���H�5��H���~z���H�5��H���jz���H�5�H���Vz��H��H���d���H�5q�H���7z���H�57�H���#z���H�5gH���z��H��H���Td��H�S�� ���E���yMH��H���4d��H�*�H�5O�1�H���v���H�5H�H���y��I�t$H���[���H�5�H���y��I�|$��0#H��H����c��H��H�5��H��1��8v���H�5�H���Ty��H�5��H���%���I�L$D��H��H���b��H�E�� �%"H����H�p����E������H��H���Qc���H�5'�H����x���2H�5qH����x���H�5H����x��H��H���
c���H�5��H���x���#H�5bH���x���H�5�H���~x��H��H����b���H�5��H���_x���%H�5CH���Kx���H�5�H���7x��H��H���|b��H��H�5��1�H����t���H�5��H���x��I�t$H������H�57H����w��I�|$���!H��H���b��H����C���E������H��H���a���H�5��H���w���H�5��H���w���H�5�H���lw��H��H���a���H�5��H���Mw���#H�5��H���9w���H�5}H���%w��H��H���ja���H�5@�H���w���H�5'����H��H��E���Y?�1a��H�t�H�5L�H��1��s���H�5
H���v��H�5.�H���}��I�L$D��H��H������H�E�� ��'H����H�p�H���st��H��H���`��E��H��H���H���H�5��HD�1��s���H�5�H���.v��H�5��H���|��I�L$D��H��H���<���H�E�� �!'H����H�p�H����s��I�|$ �H��H����^�%`��E��H��H��1H�s�H�53�HD�1��r���H�5�H���u��H�5�H���l|��I�L$ D��H��H��詿��H�E�� �H0H��H�ƃ�H������E���~XH��H���_��H���H��H�5��1��q���H�5��H���u��I�|$�/r��H��H���T_���H�5HH����t���ؿ��H��H��E��t��+_���H�5�H����t���(H�5+H���t���H�5�H���t��H��H����^���H�5��H���t���H�5H���lt���H�5�H���Xt��H��H���^���H�5s�H���9t���H�5|�H���%t���H�5iH���t��H��H���V^��H�i����H��H��E����K�6^��H�;�H��H�5N�1��p��H�ߺH�5G��s��H�ߺH�5�M�s��I�T$H��1�H�5���`p���H�5�H���|s���d���E���{�H��H���]���H�5��H���Os���H�5��H���;s���H�5H���'s��H��H���l]���H�5B�H���s���H�5��H����r���H�58H����r��H��H���%]���H�5��H���r���H�5z���H��H��E���j7��\��H���H��H�5�1��To���H��H�5���pr��I�D$H�t$H���D$$�D$�D$�0y���H�5�H���<r���$���E���?���H��H���s\���H�5I�H���r���H�5��H���q���H�5?H����q��H��H���,\���H�5�H����q���#H�5\�H���q���H�5�H���q��H��H����[���H�5��H���q���H�5�����E���SUH��H���[��H���H�5��1�H���n���H�5��H���0q��I�T$H��1�H�5>���m���H�5^H���q��H��H���K[��H�E�H�5f�H��1��m���H�5'H����p��H�5H�H���w��I�L$D��H��H���ݺ��H�E�� �+H����H�p�H���n��H��H����Z��E��H��H���H�>�H�5��HD�1��,m���H�5�H���Hp��H�5��H���w��I�L$ D��H��H���V���H�E�� ��H����H�p�����E�����H��H���EZ���H�5�H����o���H�5��H����o���H�5H���o��H��H���Y���H�5��H���o���
H�5��H���o���H�5�
H���ro��H��H���Y���H�5��H���So���H�5c�����E������H��H���~Y���H�5T�H���o���H�5
�H���o���H�5J
H����n��H��H���7Y���H�5
�H����n���6H�5��H���n���H�5
H���n��H��H����X���H�5��H���n���H�5=�H���xn���H�5�H���dn��H��H���X��H���H�5��1�H���k���H�5��H���-n��I�T$H��1�H�5;���j���H�5[H���n��H��H���HX��H������E����H��H���(X���H�5��H����m���!H�5��H���m���H�5�H���m��H��H����W���H�5��H���}m���
H�5�H���im���H�5�H���Um��H��H���W���H�5p�H���6m���H�5�����E���/@H��H���aW��H�r�H�5|�H��1���i���H�5=H����l��H�5^�H���s��I�L$D��H��H����H�E�� �NH����H�p�H���j��H��H����V��E��H��H��H���H�5��HD�1��Bi���H�5�
H���^l��H�5��H���/s��I�L$D��H��H���l���H�E�� �yH����H�p�長��E�������H��H���[V���H�51�H���k���H�5��H����k���H�5'
H����k��H��H���V���H�5��H���k���H�5A�H���k���H�5�	H���k��H��H����U���H�5��H���ik���H�5�H���Uk���H�5�	H���Ak��H��H���U��H���� ���H��H��E���H=�fU��H�`�H�5��H��1���g���H�5B	H����j��H�5c�H���q��I�L$D��H��H�����H�E�� ��H����H�p�H���h��H��H����T��E��H��H���H���H�5��HD�1��Gg���H�5�H���cj��H�5��H���4q��I�L$ D��H��H���q���H�E�� �>H����H�p�隵��H��H��E���n3�`T��H�&H�5{�H��1���f���H�5<H����i��H�5]�H���p��I�L$ D��H��H����H�E�� �H����H�p�H���g��H��H����S��E��H��H���H���H�5��HD�1��Af���H�5�H���]i��H�5��H���.p��I�L$D��H��H���k���H�E�� �wH����H�p�H���g��H��H���`S��E��H��H�T�H��H�5n�HD�1��e���H�5.H����h��H�5T�H���o��I�L$D��H��H�����H�E�� ��H����H�p��
���E�����H��H����R���H�5��H���oh���H�5��H���[h���H�5�H���Gh��H��H���R���H�5b�H���(h���#H�5��H���h���H�5XH���h��H��H���ER���H�5�H����g���H�5M��}�H��H��E���.�R��H���H�5'�1�H���td���H�5 �H���g��I�D$ H��H�p�/����H�5�H���kg��H��H���Q��H���H�5��H��1��d���H�5�H���4g��H�5��H���n��I�L$D��H��H���B���H�E�� �eH����H�p��k���E����BI�|$�0PH��H���%Q��H��H�5@�1�H���c���H�59�H���f���H�5��H���f���H�5�H���f��H��H����P��H�)�H�5��H��1��.c���H�5�H���Jf��H�5��H���m��I�L$ D��H��H���X���H�E�� �PPH��H�ƃ�H��H���d��H��H���JP��E��H��H���H���H�5X�HD�1��b���H�5H���e��H�5>�H���l��I�L$D��H��H���ί��H�E�� ��H����H�p����H��H��E���I3�O��H���H�5��H��1��%b���H�5�H���Ae��H�5��H���l��I�L$D��H��H���O���H�E�� ��H����H�p��x���E���0���H��H���>O���H�5�H����d���"H�5�H����d���H�5
H���d��H��H���N���H�5��H���d���H�5"�H���d���H�5�H���kd��H��H���N���H�5��H���Ld���H�5F�H���8d���H�5|H���$d��H��H���iN��H���H�5��1�H����`���H�5}�H����c��I�|$�a��H��H���(N���H�5H����c��H��H���	N��H����V���E���T�H��H����M���H�5��H���c���H�5F�H���qc���H�5�H���]c��H��H���M���H�5x�H���>c���H�5��H���*c���H�5nH���c��H��H���[M���H�51�H���b���H�5��H����b���H�5'H����b��H��H���M��H����z�E�����H��H����L���H�5��H���b���!H�5��H���|b���H�5�H���hb��H��H���L���H�5��H���Ib���H�5��H���5b���H�5yH���!b��H��H���fL���H�5<�H���b���H�5�����E������H��H���-L���H�5�H����a���H�5b�H���a���H�5��H���a��H��H����K���H�5��H���a���H�54�H���na���H�5��H���Za��H��H���K���H�5u�H���;a���
H�5��6��H��H��E����>�fK��H�`�H�5��H��1���]���H�5B�H����`��H�5h�H���g��I�L$D��H��H�����H�E�� �QH����H�p��!���E���H�H��H����J���H�5��H���`���H�5	�H���o`���H�5��H���[`��H��H���J���H�5v�H���<`���H�5��H���(`���H�5l�H���`��H��H���YJ���H�5/�H���_���H�5����H��H��E���*� J��H��H�5;�H��1��\���H�5��H���_��H�5"�H���uf��I�L$D��H��H��販��H�E�� ��H����H�p��۪��H��H��E���%�I��H�F�H�5��H��1��	\���H�5}�H���%_��H�5��H���e��I�L$D��H��H���3���H�E�� �fH����H�p�H����\��H��H���(I��E��H��H�e�H���H�56�HD�1��[���H�5��H���^��H�5�H���oe��I�L$D��H��H��謨��H�E�� ��H����H�p��թ��H��H��E����C�H��H�@�H�5��H��1��[���H�5w�H���^��H�5��H����d��I�L$D��H��H���-���H�E�� �_
H����H�p�H����[��H��H���"H��E��H��H�_�H�T�H�50�HD�1��|Z���H�5�H���]��H�5�H���id��I�L$D��H��H��覧��H�E�� �qH����H�p��Ϩ��H��H��E���dE�G��H�JH�5��H��1��Y���H�5q�H���]��H�5��H����c��I�L$ D��H��H���'���H�E�� ��
H����H�p��P���H��H��E���{�G��H�<�H�51�1�H���~Y���H�5*�H���\��I�t$H���=����H�5�H���y\��H��H���F��H�sH�5��H��1��&Y���H�5��H���B\��H�5��H���c��I�L$ D��H��H���P���H�E�� ��H����H�p��y���H��H��E�����?F��H�e�H�5Z�1�H���X���H�5S�H����[��I�t$H���f����H�5��H���[��H��H����E��H���H�5�H��1��OX���H�5�H���k[��H�5��H���<b��I�L$D��H��H���y���H�E�� �H����H�p�H���)Y��H��H���nE��E��H��H�H���H�5|�HD�1���W���H�5<�H����Z��H�5b�H���a��I�L$ D��H��H����H�E�� �<H����H�p�����E���ӱ��H��H����D���H�5��H���}Z���/H�5�H���iZ���H�5��H���UZ��H��H���D���H�5p�H���6Z���H�5��H���"Z���H�5f�H���Z��H��H���SD���H�5)�H����Y���H�5����H��H��E���٧���D���H�5��H���Y���H�5Z�H���Y���H�5�H���Y��H��H����C���H�5��H���oY���H�5��H���[Y���H�5��H���GY��H��H���C���H�5b�H���(Y���H�5u�H���Y���H�5X�H���Y��H��H���EC��H������E�����H��H���%C���H�5��H���X���H�5�
H���X���H�5�H���X��H��H����B���H�5��H���zX���H�5	�H���fX���H�5��H���RX��H��H���B���H�5m�H���3X���H�5���7���E���P���H��H���^B���H�54�H���W���!H�5f�H����W���H�5*�H����W��H��H���B���H�5��H���W���H�5B�H���W���H�5�H���W��H��H����A���H�5��H���lW���H�5�����W��H�=�H��1���J��DH�EH�p��?���H�EH�p�院��H�EH�p�鴲��H�EH�p��y���H�EH�p��i���H�EH�p��Y���H�EH�p��I���H�EH�p����H�EH�p��,���H�EH�p�����H�EH�p�����H�EH�p��-��H�EH�p��	��H�EH�p����H�EH�p����H�EH�p���H��H���@��H���H�5��H��1��S���H�5��H���$V���H�5�����H��H���X@��H���붺H�5��H����U���d��H�EH�p��O���H�EH�p��B���H�EH�p����H�EH�p���H�EH�p�����H�EH�p��3���H�EH�p�����H�EH�p���H�EH�p��4���H���H�5��H��1��)R���H�5��H���EU��I�D$ H��H�p����H�5x�H��� U��H��H���e?��H�b�H�5��1�H����Q���H�5y�H����T��I�D$ H��H�p 舞���H�5�H����T��H��H���	?��H�&��!��H�EH�p��9��H�EH�p�隠��H�EH�p����H�EH�p����H�EH�p����H�EH�p��²��H�EH�p�� ��H�EH�p�黟��H�EH�p�鮟��H���H�5��H��1���P���H�5��H���T��I�t$H��话���H�5C�H����S��H��H���0>��H����B���H�EH�p�麧��H�EH�p��0���H�EH�p��\��H�EH�p�����H�EH�p��	�����=���H�5��H���zS���H�5A�H���fS���H�5��H���RS��H��H���=���H�5m�H���3S���%H�5��H���S���H�5c�H���S��H��H���P=���H�5&�H����R���H�5��H����R���H�5�H����R��H��H���	=��H��H�5$�1�H���qO���H�5�H���R��I�D$ H��H�p�,����H�5��H���hR��H��H���<��H����H�EH�p�麝��H�EH�p����H�EH�p�頝��H�EH�p��_��H�EH�p�����H�EH�p��y���H�EH�p����H�EH�p��_���H�EH�p��R���H�EH�p��E����<���H�5��H���Q���H�5��H���Q���H�5��H���Q��H��H����;���H�5��H���oQ���H�5��H���[Q���H�5��H���GQ��H��H���;���H�5b�H���(Q���
H�5��H���Q���H�5X�H���Q��H��H���E;��H���H�5`�1�H���M���H�5Y�H����P��I�t$H���l����H�5�H���P��H��H����:��H�N��v���H�EH�p���H�EH�p����H�EH�p����H�EH�p��ӛ��H�EH�p��ƛ���:���H�5q�H���7P���
H�59�H���#P���H�5g�H���P��H��H���T:���H�5*�H����O���H�5�H����O���H�5 �H����O��H��H���
:���H�5�H���O���H�5��H���O���H�5��H���O��H��H����9��H��H�5�1�H���.L���H�5�H���JO��I�t$H������H�5��H���)O��H��H���n9��H�����H�EH�p��{���H�EH�p��n���H�EH�p��a���H�EH�p��T���H�EH�p�����H�EH�p��I��H�EH�p��-���H�EH�p���H�EH�p����H�EH�p�����H�EH�p���H���H�5�H��1��;K���H�5�H���WN��I�t$H������H�5��H���6N��H��H���{8��H�0
鶛��H�EH�p�鈙��H�EH�p��{���H�EH�p��n���H�EH�p��*���H�EH�p�钵��H�T�H�5I�H��1��J���H�5B�H���M��I�D$ H��H�p�Q����H�5��H���M��H��H����7��H��H�5�1�H���:J���H�5�H���VM��I�D$ H��H�p ����H�5��H���1M��H��H���v7��H���H�5��1�H����I���H�5��H���L��I�D$ H��H�p(虖���H�5-�H����L��H��H���7��H�������H�EH�p��˲��H�g�H�5�H��1��iI���H�5�H���L��I�D$ H�5�H�ߋP1��<I���H�5��H���XL��H��H���6��H�����H�EH�p��d����6���H�5U�H���L���H�5��H���L���H�5K�H����K��H��H���86���H�5�H����K���PH�5��H���K���H�5�H���K��H��H����5���H�5ǽH���K���>H�5��H���yK���H�5��H���eK��H��H���5��H���H�5Ž1�H���H���H�5��H���.K��I�D$ H�5��H�ߋP1���G���H�5Y�H���K��H��H���F5��H���鸯��H�EH�p��D���H�EH�p��F���H�EH�p��9���H�EH�p��c���H���H�5!�H��1��nG���H�5�H���J��I�t$H���-����H�5��H���iJ��H��H���4��H�t�霺��H�EH�p�����H�EH�p�鮕��H�EH�p�顕��H�EH�p�����i4���H�5?�H���J���H�5�H����I���H�55�H����I��H��H���"4���H�5��H���I���%H�5:�H���I���H�5��H���I��H��H����3���H�5��H���wI���H�5e�H���cI���H�5��H���OI��H��H���3��H��H�5��1�H���E���H�5��H���I��I�t$H��軒���H�5O�H���H��H��H���<3��H�ε�P�H�EH�p��h���H�EH�p��<���H�EH�p��/���H�EH�p�����H�EH�p�������2���H�5��H���H���H�5
�H���rH���H�5��H���^H��H��H���2���H�5y�H���?H���)H�5��H���+H���H�5o�H���H��H��H���\2���H�52�H���G���H�5��H����G���H�5(�H����G��H��H���2��H�x�H�50�1�H���}D���H�5)�H���G��I�t$H���<����H�5��H���xG��H��H���1��H����w���H�EH�p��ʒ��H�EH�p��j���H�EH�p�鰒��H�EH�p�飒���x1���H�5N�H���G���H�5m�H���G���H�5D�H����F��H��H���11���H�5�H����F���#H�5��H���F���H�5��H���F��H��H����0���H�5��H���F���H�5��H���rF���H�5��H���^F��H��H���0��H���H�5��1�H���C���H�5��H���'F��I�t$H���ʏ���H�5^�H���F��H��H���K0��H����4���H�EH�p��X���H�EH�p��7���H�EH�p�飔��H�EH�p��1���H�EH�p�鎖��H��H����/��H��H�5�H��1��[B���H�5��H���wE��H�5�H���HL��I�L$D��H��H��腏��H�E�� u5H��H�ƃ�H��H���6C��隥��H�EH�p��@���H�EH�p�鍐��H�EH�p��ϺH�5��H���D��鱳���H�5`�H����D��阳���&/���H�5��H����D���H�5-�H���D���H�5��H���D��H��H����.���H�5��H���{D���!H�5��H���gD���H�5��H���SD��H��H���.���H�5n�H���4D���H�5��H��� D���H�5d�H���D��H��H���Q.��H�ٳ�v���H��H���:.���H�5�H����C���H�5A�H����C���H�5�H���C��H��H����-���H�5ɵH���C���"H�5[�H���{C���H�5��H���gC��H��H���-���H�5��H���HC���H�5��H���4C���H�5x�H��� C��I�|$���-H��H���Y-��H�k��a����H-���H�5�H����B���"H�5��H����B���H�5�H���B��H��H���-���H�5״H���B���#H�5��H���B���H�5��H���uB��H��H���,���H�5��H���VB���(H�5��H���BB���H�5��H���.B��H��H���s,��H�;��!����b,���H�58�H���A���H�5��H����A���H�5.�H����A��H��H���,���H�5�H���A���H�5|�H���A���H�5��H���A��H��H����+���H�5��H���pA���H�5H�H���\A���H�5��H���HA��H��H���+��H������H��H���v+���H�5L�H���A���!H�5��H���@���H�5B�H����@��H��H���/+���H�5�H����@���H�5Z�H���@���H�5��H���@��H��H����*���H�5��H���@���H�5ͻ�3���*���H�5��H���Z@���H�5q�H���F@���H�5��H���2@��H��H���w*���H�5M�H���@���*H�5o�H���?���H�5C�H����?��H��H���0*���H�5�H����?���H�5X�H���?���H�5��H���?��H��H����)��H�{��Ø����)���H�5��H���t?���H�5��H���`?���H�5��H���L?��H��H���)���H�5g�H���-?���FH�5i�H���?���H�5]�H���?��H��H���J)���H�5 �H����>���H�5�H����>���H�5�H���>��H��H���)��H�������H��H����(���H�5°H���>���H�5�H���t>���H�5��H���`>��H��H���(���H�5{�H���A>���H�5V�H���->���H�5q�H���>��H��H���^(���H�54�H���=���%H�5���ؚ���4(���H�5
�H����=���H�5>�H���=���H�5�H���=��H��H����'���H�5ïH���=���H�5�H���u=���H�5��H���a=��H��H���'���H�5|�H���B=���H�5ټH���.=���H�5r�H���=��H��H���_'��H�#�麕���N'���H�5$�H����<���H�5�H����<���H�5�H����<��H��H���'���H�5ݮH���<���H�5޻H���<���H�5��H���{<��H��H���&���H�5��H���\<���H�5��H���H<���H�5��H���4<��H��H���y&��H�.��+����h&���H�5>�H���<���H�5]�H����;���H�54�H����;��H��H���!&���H�5��H���;���4H�5	�H���;���H�5��H���;��H��H����%���H�5��H���v;���H�5"�H���b;���H�5��H���N;��H��H���%��H����?����%���H�5X�H���;���H�5b�H���
;���H�5N�H���:��H��H���;%���H�5�H����:���H�5ܴH����:���H�5�H���:��H��H����$���H�5ʬH���:���H�5��H���|:���H�5��H���h:��H��H���$��H�������$���H�5r�H���8:��� H�5,�H���$:���H�5h�H���:��H��H���U$���H�5+�H����9���H�5��H����9���H�5!�H����9��H��H���$���H�5�H���9���H�5!�H���9���H�5��H���9��H��H����#��H�#��!��H��H���#���H�5��H���L9���H�5��H���89���H�5|�H���$9��H��H���i#���H�5?�H���9���&H�5�H����8���H�55�H����8��H��H���"#���H�5��H���8���H�5z�H���8���H�5��H���8��I�|$��"H��H����"��H�a��-����"���H�5��H���Z8���H�5E�H���F8���H�5��H���28��H��H���w"���H�5M�H���8���!H�5��H���7���H�5C�H����7��H��H���0"���H�5�H����7���H�5ճH���7���H�5��H���7��H��H����!��H���Q�����!���H�5��H���t7���H�5S�H���`7���H�5��H���L7��H��H���!���H�5g�H���-7���)H�59�H���7���H�5]�H���7��H��H���J!���H�5 �H����6���H�5٫H����6���H�5�H���6��H��H���!��H�6��Ϳ���� ���H�5ȨH���6���H�5��H���z6���H�5��H���f6��H��H��� ���H�5��H���G6���7H�5��H���36���H�5w�H���6��H��H���d ���H�5:�H���6���0H�5<�H����5���H�50�H����5��H��H��� ��H������� ���H�5�H���5���H�5ĭH���5���H�5��H���5��H��H�������H�5��H���a5���H�5��H���M5���H�5��H���95��H��H���~���H�5T�H���5���H�5]�H���5���H�5J�H����4��H��H���7��H�Ǣ����&���H�5��H����4���H�5�H���4���H�5��H���4��H��H�������H�5��H���{4���5H�5O�H���g4���H�5��H���S4��H��H������H�5n�H���44���H�5@�H��� 4���H�5d�H���4��H��H���Q��H�&��q����@���H�5�H����3���H�5R�H����3���H�5�H���3��H��H������H�5ϥH���3���H�5(�H���3���H�5��H���m3��H��H������H�5��H���N3���H�5�H���:3���H�5~�H���&3��H��H���k��H�ߣ�%����Z���H�50�H���2���H�5�H����2���H�5&�H����2��H��H������H�5�H���2���H�5̲H���2���H�5��H���2��H��H�������H�5��H���h2���H�5��H���T2���H�5��H���@2��H��H�����H�p��@}���t���H�5J�H���2���H�5t�H���1���H�5@�H����1��H��H���-���H�5�H����1���H�5F�H���1���H�5��H���1��H��H�������H�5��H���1���H�5b�H���n1���H�5��H���Z1��H��H�����H�����������H�5d�H���*1���H�5p�H���1���H�5Z�H���1��H��H���G���H�5�H����0���4H�5/�H����0���H�5�H���0��H��H������H�5֢H���0��� H�5 �H���0���H�5��H���t0��H��H�����H����������H�5~�H���D0���H�5��H���00���H�5t�H���0��H��H���a���H�57�H���/���H�5��H����/���H�5-�H����/��H��H������H�5�H���/���H�5��H���/���H�5��H���/��H��H������H�v���������H�5��H���^/���H�5H�H���J/���H�5��H���6/��H��H���{���H�5Q�H���/���)H�5C�H���/���H�5G�H����.��H��H���4���H�5
�H����.���H�5̫H���.���H�5�H���.��H��H������H���͈��H��H�������H�5��H���r.���H�5¡H���^.���H�5��H���J.��H��H������H�5e�H���+.���H�5��H���.���H�5[�H���.��H��H���H���H�5�H����-���H�5Z�魱������H�5�H���-���
H�5=�H���-���H�5��H���-��H��H�������H�5��H���s-���0H�5�H���_-���H�5��H���K-��H��H������H�5f�H���,-���%H�5�H���-���H�5\�H���-��H��H���I��H�������H��H���2���H�5�H����,���H�5��H���,���H�5��H���,��H��H�������H�5��H���,���H�5I�����H��H������H�5��H���W,���.H�5c�H���C,���H�5��H���/,��H��H���t���H�5J�H���,���+H�5L�H���+���H�5@�H����+��H��H���-���H�5�H����+���H�5���e�������H�5ٝH���+���H�5�H���+���H�5��H���w+��H��H������H�5��H���X+���-H�5d�H���D+���H�5��H���0+��H��H���u���H�5K�H���+���H�5M�H���*���H�5A�H����*��H��H���.��H����f~������H�5�H���*���H�57�H���*���H�5��H���*��H��H�������H�5��H���r*���;H�5�H���^*���H�5��H���J*��H��H������H�5e�H���+*���8H�5_�H���*���H�5[�H���*��H��H���H��H�ޔ鵥���7���H�5
�H����)���
H�51�H���)���H�5�H���)��H��H�������H�5ƛH���)���AH�5��H���x)���H�5��H���d)��H��H������H�5�H���E)���0H�5��H���1)���H�5u�H���)��H��H���b��H����u����Q���H�5'�H����(���H�5�H����(���H�5�H����(��H��H���
���H�5�H���(���H�5ϜH���(���H�5��H���~(��H��H�������H�5��H���_(���H�5��H���K(���H�5��H���7(��H��H���|��H�l������k���H�5A�H���(���H�5+�H����'���H�57�H����'��H��H���$���H�5��H���'���H�5šH���'���H�5��H���'��H��H�������H�5��H���y'���H�5��H���e'���H�5��H���Q'��H��H�����H����[�������H�5[�H���!'���%H�5��H���
'���H�5Q�H���&��H��H���>���H�5�H����&���!H�5n�H����&���H�5
�H���&��H��H������H�5͘H���&���H�5,�H���&���H�5��H���k&��H��H�����H�x��X�������H�5u�H���;&���H�5l�H���'&���H�5k�H���&��H��H���X���H�5.�H����%���7H�5x�H����%���H�5$�H����%��H��H������H�5�H���%���0H�5i�H���%���H�5��H���%��H��H�������H�5��H���f%���0H�5Z�H���R%���H�5��H���>%��H��H������H�5Y�H���%���H�5n�H���%���H�5O�H���$��H��H���<��H�Α�����+���H�5�H����$���
H�5��H���$���H�5��H���$��H��H�������H�5��H���$���&H�5��H���l$���H�5��H���X$��H��H������H�5s�H���9$���H�5(�H���%$���H�5i�H���$��H��H���V��H�/��o��H��H���?���H�5�H����#���H�5ϙH����#���H�5�H���#��H��H���
���H�5ΕH���#���2H�5x�H���#���H�5�H���l#��H��H���
���H�5��H���M#���H�5V�H���9#���H�5}�H���%#��I�|$��H��H���^
��H���H�5y�1�H�������H�5r�H����"��I�t$H���l���H�5�H���"��H��H���
��H���H��H�5�1��n��H�ߺH�5��"��H�ߺH�5��v"���H�5��H���b"���X�������H�5~�H���D"���H�5��H���0"���H�5t�H���"��H��H���a���H�57�H���!���H�5m�H����!���H�5-�H����!��H��H������H�5�H���!���H�5>�H���!���H�5�H���!��H��H������H�v��h��������H�5��H���^!���	H�5�H���J!���H�5��H���6!��H��H���{���H�5Q�H���!���DH�5�H���!���H�5G�H���� ��H��H���4��H�ג�ǡ���#���H�5��H��� ���H�5�H��� ���H�5�H��� ��H��H����
���H�5��H���x ���H�5��H���d ���H�5��H���P ��H��H���
���H�5k�H���1 ���H�5��H��� ���H�5a�H���	 ��H��H���N
��H�3��۟��H��H���7
���H�5
�H�������H�5~�H������H�5�H�����H��H����	���H�5ƑH������ H�5�H���x���H�5��H���d��H��H���	���H�5�H���E���H�5�� ���H��H���y	���H�5O�H������
H�5.�H������H�5E�H������H��H���2	���H�5�H�������+H�5j�H������H�5��H�����H��H�������H�5��H������!H�5S��K�������H�5��H���]���H�5ېH���I���H�5��H���5��H��H���z���H�5P�H������6H�5��H������H�5F�H������H��H���3���H�5	�H�������(H�5��H������H�5��H�����H��H������H�����H��H�������H�5��H���q���H�5J�H���]���H�5��H���I��H��H������H�5d�H���*���'H�5^�H������H�5Z�H�����H��H���G���H�5�H�������H�5?�����H��H������H�5�H������H�5u�H������H�5�H�����H��H�������H�5��H���l���H�5��H���X���H�5��H���D��H��H������H�5_�H���%���H�5ז�)���H��H���Y���H�5/�H������H�5��H�������H�5%�H������H��H������H�5�H������6H�5��H������H�5޹H�����H��H�������H�5��H���g���H�5<��֬������H�5w�H���=���H�5ȍH���)���H�5m�H�����H��H���Z���H�50�H������&H�5�H�������H�5&�H������H��H������H�5�H������8H�5�H������H�5߸H�����H��H������H�7��Ɨ������H�5��H���W���H�5�H���C���H�5��H���/��H��H���t���H�5J�H������H�5�H������H�5@�H������H��H���-���H�5�H�������H�5(�H������H�5��H�����H��H������H�	��F���H��H�������H�5��H���k���H�5��H���W���H�5��H���C��H��H������H�5^�H���$���H�5��H������H�5T�H�����H��H���A���H�5�H�������
H�5[��؋������H�5�H������H�5y�H������H�5�H�����H��H�������H�5��H���l���H�5L�H���X���H�5��H���D��H��H������H�5_�H���%���H�5�H������H�5U�H�����H��H���B��H���@����1���H�5�H�������H�5'�H������H�5��H�����H��H�������H�5��H������H�5�H���r���H�5��H���^��H��H������H�5y�H���?���H�5ŽH���+���H�5o�H�����H��H���\��H����¹���K��E��H��H���H���H�5Y�HD�1�����H�5Q�H������H�5���a��H��H�����H��H�5�1�H���]���H�5	�H���y��I�t$H���`���H�5��H���X��H��H�����H����H��H�����H��H�5��1�H�������H�5��H���
���H�5(�H������H�5:�H������H��H���'��H����\���H�EH�p�鱯��H��H�����H���H��H�5�1��k��H�ߺH�5����H�ߺH�5\��s���H�5��H���_���~b��H��H�����H�D��H��H�����H����Ku��ff.�@��ATI��H�=�U����S�"���H�=*�H�����L���H��H���_��H��[]A\�fD��H�H������At-��bt��t�H�H��t�����f�H������H� H��t�����f���H�H������At5��bt 1���tÐH�WH��t�H�H���H�G H����H� H�H�Ѓ�H�f���USH��H��H�H������b� H�u�Hc�H�>���H��)��H�{�)��H�C H��[]�H�o H��tFH�}H��t�)��H�}H��t�s)��H�}@H��t�e)��H�}0H��t�W)��H�}8H��t�I)��H�CH��[]�fD1��@H� �')��H�C�|���fDH��)����DH�G�]����H���(��H�{��(��H�C �;���DH�C H�H�4��W"��H�{�(��1������H�{�W>��H�{�N>��H�{ �E>��1����f.�@���4�fD��H��������fD��1��f���H9���HD��f.���H��H��H��Ð����fD��H�H��H����ff.���H�����HE��ff.������H��H����ff.���H��H�5:�;H��H�1�����ff.�@��H���/1��������H���1���%����H���HD�H���ff.���H���1���%�b���H���HE�H���ff.���1�1Ҿ�1��,��ff.��USH��H��@��u	H�����u1H����
��H��H���7��H��H�5��H��H�i�:H�81��7��������t�H���e7��H������PXH��H�wH�?���f.�ATI��UH��S��H��H�H�>H�5��;H�$H�|$�����u����1�H��[]A\�fD��H�����H��H�U���H��H�=+���HD��"2��H��4���uH�����u<����H��t�H�=��1��>��1�H�=ǧ�>��H��1�[]A\��H��у���u��� tnH����H��u�H�PH�I�$H� t^H��H�H�E��1����1�H�=o��">��H�=��1��>������H������H�x�9���H�P �H�@ H���H���:H�5�H�81����ff.�f���H��(�H�|$H�t$H�|$H�D$�V���H�L$H�|$1���-����H��(�fD��PXH���a5��H�5��H��H�8�:H�81�����fD��H�@H��H�H�zH�xH�D?�D�s�����H��H��H��?H�H1�H��H�@H)�H�xH�D?Ð�;���ff.���H�@H��H�H��H��H9�x	H�D?�����H��AUH��?ATUSH��H1�H)�H��@����H��?I��I��H���I��������?I��I�������fD@��trH��t,M9���H���tH��~tM���L��H�H��L9�����uyL��H��u�L��H��E��LE�H�@L��-K�\$H��H��[]A\A]�@H�;H9�w/H��H���s���M����L��H�H��L9�����t�DH�@H���H�l6H�����H��H���u��H�Ã���t���uH�����t������d���I���Z���L��H��E��LE�L����H��H��H��[]A\A]���f.�L��H�H��L9������DL��H�H��L9�������DA�E1��P���H����H���:���H��L��[]A\A]����H�5u�;SH��H��t,1�1�H��1���	��H������HE�H��[�f.��H�=���=��H��H�%�;���UH��SH��H��H�5��;H��tLH��H�ߺ1��r	��H���*H��1��[	��H��H�ߺH��[�-1�]�>	��fD�H�=<v�W=��H��H���;�ff.�H�������
wf/�v
f/asH���F��fD�H,�H��H�DÐ��SH��H���/��H��[H����#��@��SH���/��H�ٺ[H�Ǿ/1����ff.���H��H��?�H�H1�tH�Ҹ@H��?)�H�H�DÐ��SH��H��H��
)���t)H�xH��>~H��x�[�f�H��s�[�H���8���u�H��� u���f.���H��H9�tt�uX�u<H�����tT�����
tj�����t*��t%H���H�Ǿ�1����@�����u�H����fD1��D�����u���@��f.�H��H���e��D��ATI��USH��H�t$�6������H�L$A��udL���0�H�������H��1���-���H�L$H��1���<H������H��t�H��tzH��L��[]A\�@��t�L��H�H�H��H9��f.�H�|-H���r��H9�~���#���H���K0��H�L$L��L�|_�H���4��H��[]A\�H�t$H�����f���ATI��USH��H�t$�5������H�L$A��udL���0�H�������H��1���+����H�L$H��1���>H������H��t�H��tzH��L��[]A\�@��t�L��H�H�H��H9�|�f.�H�|-H���b��H9�}������H���;/��H�L$L��L��^�H���3��H��[]A\�H�t$H���
��f���H�������H��HE�H���ff.�f���H����_��ff.�@��UH��H��SH����2��H��H���:��H��H���E���H���M-��H��H���'��H��H�5��H��H��:H�81����@H����tH��������H9�v.H���@�����H9�v�H�7�:H��H�5͞H�81���H��:H��H�5z�H�81���H����tH�����v3H���f.�H����v�H���:H��H�5ޞH�81��<�H���:H��H�5��H�81��!�H�����uH�����uiAT�UH��SH��L�'���H�E�u<�uH�����tH�����
t%H�3@��u@��u2H�����t)�����
u[�]A\�@H�����
u���L�������SH��H�|$H��H�4$��uv@��uH�����t�����
��H��H�|$����H�5��;H�$H��tH�|$H�ٺ1����H��[�f��H�=����6��H��H�u�;��H�@H3|$H�H�xH��H�D?[�fD�c�멐H�t$�&��@��SH��H�|$H��H�4$��uv@��uH�����t�����
��H��H�|$�L���H�5��;H�$H��tH�|$H�ٺ1�����H��[�f��H�=��5��H��H���;��H�@H|$H�H�xH��H�D?[�fD��멐H�t$�,���@��SH��H�|$H��H�4$��uv@��uH�����t�����
��H��H�|$�|���H�5�;H�$H��tH�|$H�ٺ1����H��[�f��H�=E��/5��H��H���;��H�@H#|$H�H�xH��H�D?[�fD���멐H�t$��0���@�~%�f(�f(�fT�f.-���f�f.���f(�fT��\�fT��X�f(��^�fT��X��
��^��Y��]�f(�f(�f��ttf/�sD�vf/�f(�w2�\���f(�fT�f.����h@�r�������f�f/� vn���fT��@f/�w��X��~�f(�f(�fT�f.���v+�H,�f��fU��H*�f(����f(�fT��\�fV��X��@���fT��fD��@��u6@��uH�����t
�����
tM���+1������H�@H�H�GH�x
H�D�@H�����������fD��@��u6@��uH�����t
�����
tM���-1�����H��H�H9�tH�D?�H���@H����������a����&�fDUH��SH��H��?w9�?H��)�H��H��u6H�@��H��H�xSH��H�D-[]��H��������?H9�w!H�\6H�����H��H��H��[]�k,��H���0��H����H��H��[]��f.���H��H�@��t8H�txIH��>~H��H��?H����H���@��H�H�D�DSH��H���\�H��[H����H��H�����D��ATUH��S�,������@��t2I��I�M��~M�1�f�H��H��H����
��L9�u�H��[]A\���-f�H���
��H�߹1���+���H��1�H���<H�����H�����u�H��[]A\�D�+�H���S&��[H��L�]1�1�H��A\�*��f���SH����tH��~.H��[��1���H�߾<�'���H�����tҸ[����H������H������H��������fD��@�����@��u1��������H����@����H��4�����@��t`�@��u-�����tsH����@����H��4�����9�tD1�ÐH�����u�H�����H��u�뛐H�����u�H�����H��u�빐�{���멐��`���fD��f���@���fD��n���fD�� ���fD��N���fD�����fD���fD�����fD��������t�Gf.��{F1��H���H9�t�H���H��H��?H)�H	�H��H�|$��~D$�f.?�z��u��D��������t"�Gf.���HJ��f.�H��1�H9�t�H���H��H��?H)�H	�H��H�D$��~D$�����������t:�Gf(�fT
���f.
��vf��1�f.���H�������@H���H9�t�H���H��H��?H)�H	�H��H�|$��~D$��ff.�f���������t2�Gf(�fT
�f.
�wf.��z�1��DH���H9�t�H���H��H��?H)�H	�H��H�D$��~D$��D����H��(����t>�Gf.���D${H�|$��*���H��(H�D�u�H�D$��H��H9�t�H���H��H��?H)�H	�H��H�D$�~D$�f.�S��H����H����t>�F�H�߸H����p�� H�����H��t�H��H��[�f�H��f�H9�t�H��H��H��?H)�H	�H��H�t$�~D$�fD�����������G�Q�f(����fT�f.�w+�
��f/�v^f/u�rT�H,�H�D���H,�f���%/�fU��H*�f(����f(�fT��\�fV��
-�f/�w��
���f.�H��H9�t1H���H��H��?H)�H	�H��H�D$��~D$��.������f.���H���C��H��H�����������������G�1�f(��ՔfT�f.�w+�
k�f/�v^f/U�rT�H,�H�D���H,�f��f(��%�fU�f(��H*����fT��X�fV��

�f/�w����f.�H��H9�t1H���H��H��?H)�H	�H��H�D$��~D$��.������f.���H���#��H��H��������USH��H��@����@�����������1H���G@���MH�W��tT�����ك�����H������*H�KH9�ty���H��H�����H��H��[H��]���H�����u�H���}H��u�H�
��:H�	�@H������n���H��tEH���_���H���:H��T���DH��H��H��[]�7���H���:H��(����H���:H������H�
��:H�	�;����H�
��:H�	�+����H�
i�:H�	�����H�Y�:H������H�
��:H�	����H���:H�����H���:H�����H�
��:H�	���������������Gf��f/�v"�W�f(��%��fT�f.���f/�w'�
��f/�vxf/q�rn�H,�H�D�@��f(����fT�f.�v��H,�f��f(��%
�fU�f(��H*����fT��X�fV��
�f/�w����@�H,�f���-�fU��H*�f(����f(�fT��\�fV�f/��4����V���fDH��H9�t1H���H��H��?H)�H	�H��H�D$��~D$�����f��H,�H�DÐ��H������H��H���w�����������t"1�@��uH��H��t�1�����t�@������tf�G��t�Nf.�{	1��fD�u��H��f��H9�t�H��H��H��?H)�H	�H��H�D$��~L$��fDH��f�H9�t�H���H��H��?H)�H	�H��H�|$��~D$��b�����H�����t-�������H��H9�u&f��Ef.�H������������uZH���H��H��?H)�H	�H��H�D$��~D$��D$�������G�D$��L$��D$�f.�{41�ÐH9�t-H���H�Ǿ�1��$�@H��H���%��Duʸ�������
t։����������u��@�����D$��i���H��f�H9��W���H���H��H��?H)�H	�H��H�D$��~D$��-���f���AWAVAUATUSH��XdH�%(H�D$H1��������`�Gf(�fT
_�f.
���f.���H�T$H�L$1�1�L�D$�?
�T$I����1�1��g��H��L�d$�L�t$ L��L��M)�A��AN�Lc�L������L����D$���9��H����D�kA�����D$"0D�kIc�L��H���D$!.�5�D$H�5j�H��P�1�����E�H�=g���H���K����f��H���H�=��f/�HF����H��H�L$HdH3%(H����H��X[]A\A]A^A_�H��H9���H���H��H��?H)�H	�H��H�D$�~D$�h�����������H�5��H���S�H�M�� �~H�]HcD$L��H��H)�H��,�H�}H�E tH�}�T$H��0H���Hc��q�HcD$H)�H��I���<A����M������A��A����C�D>�fB�D;������S�I�v�Hc�I�~�����K���L��L��H����L�eA�� ��I��A��Hct$H��H��L)�L��R�H�EH�E tH�E�T$I�9����.0fA�$�L���f���Lc�)�K�4&K�|&Hc�����SL��H��Hc�B�D$ .�������@f�����L�e�f����H����H���w���f�H�D$ H�SH��H�J�D<H)�I)�J�D;�I�I��I�������I��1�I�H�H��L9�r����)�L��0Hc����D$)�H�I��
���fD�H�=<�����H���I���A��C�D>�B�D;��5�����fDATUSH��0dH�%(H�D$(1�H����A��H��H��A��tR��f.���u H�����t���������
�KH�����H��H���r���}�؃���u�H��H9��7H�ڸ�
h�H��?H)�H��H��H	�H��H�D$�~D$f/�woH�|$H���}�H�5��H��H�4�:H�81����f�H��H�H��t
H��H��?�UH�L$(dH3%(��H��0[]A\��C�
وf/�v�f/s�r�f��H��t�
�UE1�f/�f��A��D�ef/�r'�
G�f/�r�\��H,�H��?�{���fD�H,��k���fDH�����H���T���H�H��
H�����U�>���1�H���3���f��f��H���:H�5v�H�81���������SH��������t21���H�߾<��H�����������uIH��[�@H�����tŋ����
u�H��:�<H�8�����t�H�H��
H�����DH�5�;H��t<H��1�1�[���H�Q�:�<H�8�4������R���H��H��?�k����H�=8����H��1�[H��H���;1��8��AWAVAUATA��U��SH��H��A���0f��*��Y��\�f/�v�H��H��[]A\A]A^A_���ݿ
Hc����I�Ũ������t�A��uI�����tA�E����t���L��1��/�z�L��H�߾%I��1��`���-H��H��I��1��F�H��E��������H������������
��H�_�:�<H�8��������H�H��
H������1�1��Q���f�f���*��Y���H*��\��f/�������ݿ
Hc����I������H�Y�:�<H�8�<������H��1����<1��Y�H������þ<��tH�5X�;H����1�L���L���%�H������0���H��L��H��[�+]1�A\A]A^A_���@I�L��H��?L�H�H�x+H�H�I��L��H�@L�x`K�l-����fDH)�H�I��L��I������H�=f����H��H���;�A����H��?�����H��L��[]A\A]A^A_�J��f.���AVH��1��AUATI��%USH�����H��H����H��t[H��]A\A]A^�f�A��A�������1���H�߾<��H�����tiA���/A��uI������L@1���L��>��H������������`E��������f�1���H�߾>�7�H���������������A���YA����I�������A�$����
��H�;�:�<H�8�����I�$H��
H�����f�H�����t�����
��1���H�߾<��H���������H������'��������
����H���:�>H�8��������H�H��
������fD1���L��<��H���������������[L��H��]�-A\1�A]A^���@L�-��:�<I�}�����1���H�߾<��H��������I�}�>�X���@���1�H�����X���L�-I�:�>I�}�+������1�M�������fDA�$����
�����H���:�>H�8���������I�$H��
�����@H�Y�:�<H�8����K���H� �.����k���f�H�������,���f�L�-��:����@H���:�<H�8�l���l���L��H��?������PXH�5�~H��H��:H�81�����ff.�Uf(�H��SH��H��(f.���f��f(�f.��f.��~-H�f(�fT�z^u\�5\�f(�f.�v
fT�f.�v�\��^�f(��Y�f/�v�X��\.��EH��t�H��([]�f�f(��5��fT�f.�vf.�wf(��fDf(�f(��t$�|$�\$�$�4��$�\$f���|$�~-w��t$�<���@�MH���j�����a�����������fDH���I��H��xGH��x*H�H��H��H��H)�yH�H��M��tI�H��tH�9ÐH��H�H��H������H��xH�H��H��H��H)�H����DH��I��I��H�I����P���f���ATI���UH��S��H��uXH�ԡ;H��t/L��H���/1��P��H��1�[H��]1�A\�=��D�H�=���W��H��H���;����fD��ATUH��SH���]��H��H��I���_���[L��]H��A\������@��t&H�������H9�@�H��x6�>1��D�@��u!H�����tH��у���
u1��� �������SH����uC��uH�����t
�����
tSH��1����<�B��[H����������@H���:�<H�8�����t�H��?H��[��H�Q�:�<H�8����t�H�[H��
H�������SH�ӺH��H�|$H�|$H�4$H�����H�$H�|$1�H�޺���H��[�ff.���SH��1�H��H�|$H�|$H�4$H���������uH��H��[�f.�H�$H�|$�1�H���8��H��H��[H���ff.����H9�t_@��t!H�H�1�H9���H�������f.�@��u:H�����tA�����
tG�����t'��t"���>�fD��f������u�����������u���@SH�H�����H��[H��������ATI��1�UH��SH��H��H�|$H�|$H�4$H�������t'H�$H�|$1��L���'��H��t	H��[]A\�H��H���}�ff.�f���H��H���:�$�D$H�8�>���D$�@�u*H�����t"H��у���tH�р�H�xH�t��tH���H��H�D$�#���H�D$��ff.��AUI��1�ATI��UH��H��H�P-SH��8L�L$�g��H�|$A��H����H�}��~
H�������H����H�]H����������tC1���H�߾>����H����������Ã�I�<$��H��8��[]A\A]ÐH�����t������
u�H���:�>H�8�Y���t�H�H��
���f�H���;H�t$L�D$ 1ҹH�D$H�|�;H�D$�b��H�D$ H��4��E���H�\$(I�$H��4����H�]H������H�E�H���:�>H�8�������1�H�����Ã�I�<$�
������t$�������I�$H��8��[]A\A]�fD��������f�H�\$(H��4�b���A���P���H� �:H�5�vH�81����H��:H�5�vH�81����H���:H�5�vH�81����H���:H�55vH�81��w�����H�f�H�0�H*�fH~�H9�tDfH~�H��<������tH��H��u!��fH~�H��H��H���fD������H���S���
S����H�0fH~�H9�tRfH~�H��<������tH��H��u/H���f.�fH~�H��H��H��H���f.�H���G�����H�������
c��f��H�0fH~�H9�tRfH~�H��<������tH��H��u/H���f.�fH~�H��H��H��H���f.�H��������������tbH�WH�0H��?H��H9�t7H��H��<������tH��H��u�DH��H��H��H���H�T$��D$��@��H��H9�H��t�H��?�H��H)�H	�H���t���f���������trH�WH�0H��?H9�tAH��H��<������tH��H��u ��H��H��H��H���H�quH�T$��D$����f�H��H9�t�H���H��H��?H)�H	�H���d���f���SH��H�� @��t~H�f���H*Ή؃������CH�t$1����D$H�0fH~�H9���fH~�H��<�������-H��H����H�� [�@@����H������������
������t{�������N�����Q���H��f�H9��?���H�ڸH��H��?H)�H	�H��H�\$�~D$����@�;��H�� [�D�����uPH��f��H9�����H��H��H��?H)�H	�H��H�t$�~L$���D�����t�H�ߺ%�	���H�� [�fH~�H�� H��[H��H���f�H���x�f(��M���ff.�@��UH��SH��H��8����H�f���H*ˉ�������EH�t$H�|$���D$�����D$H�D$ H�0fH~�H9���fH~�H��<�������{H��H����H�D$(H�t$(H�|$ ���H��8[]�DH��f�H9��a���H��H��H��?H)�H	�H��H�l$�~D$�7������uSH������������
���ڃ���t8��uQ���K��������q�����+���F���fD�؃���uH��H9�uAf�����fDH���;H��tTH��H���!���H��8[]�f.��؃���u�H�ڸH��H��?H)�H	�H��H�\$�~L$�A���@�H�=�����H��H�5�;�fH~�H��H��H�����f�H���8�f(���ff.�@��H��(@���@�����������H��f��H9�t%H��H��H��?H)�H	�H��H�D$�~L$H�f�H�t$�H*�1��6��D$H�0fH~�H9�t'fH~�H��<��������H��H��t]���H��(�H�����t/�����
��������=�����u�N�f���@������/����%�h���H��(�H�H�1�H�L$��H�|$H�@H�x
H�D?H��(�軺���f�fH~�H��H��H���DH�H�t$苺��H�t$H��螿���ff.����H�������������H�f�f��H���H*�H9�t%H���H��H��?H)�H	�H��H�T$��~L$�H�0�X�fH~�H9���fH~�H��<��������H��H������H�����t@�����
��������I�����u)H�f��H�H*��r���f������ta�+H������f�H�H�H�H�@H�xH�D?�f��[���#���H��H��H��H���H��H���E��H�f��H*�����@��@���SH��@�����������H�f�H���H*�H9�t%H��H��H��?H)�H	�H��H�t$�\D$H�0fH~�H9���fH~�H��<��������H��H����H��[�@H�����t?�����
��������N�����u,H�f��H*��\F�s����������}H���-[�C���H�H�H�@H)�H�xH�D?�f�H��[����fD雷��H��H��H��H���B���@H�H���u���H��H��H��[�5��H�f��H*����@��@����UH��SH��H��@��t0������bH���;H���2H��H��H��[]�q�H������������
����������u�H��f��KH��H*��^�H�0fH~�H9���fH~�H��<�������H��H��ukH��[]�@H�f�H�f��H�0�H*��H*��^�fH~�H9�t6fH~�H��<��������H��H��u��H��[]�5��D���������H�f��H*��J@�H�=�����H��H�]�;���H��f�f��H��H��H*�H9�����H�ڸH��H��?H)�H	�H��H�\$�~L$���fH~�H��H��H������f.�fH~�H��H��H���fDH��0���H��H��H��[]韩��ff.�@��UH��SH��H��8������t2�ڃ�����H�m�;H���VH��H���9�H��8[]�f�H�����������
���ڃ����_��u��KH��f�H�t$H�H�|$�H*����D$�T����D$H�D$ H�0fH~�H9���fH~�H��<�������9H��H����H�D$(H�t$(H�|$ �2�H��8[]�H��H�H�L$(H�T$ H���H�|$(H�@H�xtH�\?H�@H�|$ H���H�|?H�����H��8[]��؃���tmH��;H��������H�=�����H��H��;���fD�S���H���fD�s���(���fDH��f��H9������H�غH��H��?H)�H	�H��H�\$�~L$�j����fH~�H��H��H������f.��˲��H������H�踲��H��H��荽���������UH��SH����tnH��H�uH��H��[]�@H�H��H����pH����H����H��������?H�H��H9������YH��H��[]H�D?�f�����H�������������
���ʃ���t|����H�f��I�H*��Y�H�0fH~�H9�t+fH~�H��<�������XH��H������H��[]���f.��ȃ���udH�f�f��H���H*�H9��{���H�ȺH��H��?H)�H	�H��H�T$�~L$�Q���f��ȃ�����H���*H��[]�o��H��H9�������۰��H��H���а��H��H��[H��]�o���H��~#H��H�H��H9����X���f�H��������?H�H��H9����5���fDH��H�H��H9�������fDH��H��H��H�����@H��H��H��[]����H�f��H*�����fD��ATUH��SH��H�����
�����؃�����������P�U����Kf�f/��?f(��$�T$蛴���$f.�z�T$�L�%u�;M���<H���W�H��H��L��[H��]�1�A\�J��f.�H������G��������
���؃����9������0���H���;H���H��H��H��[]A\�[���H�f�Ƀ��H*˃����E����H�0fH~�H9�t0fH~�H��<������tFH��uH��H��[]A\�@H��[]A\���f(��f.�H��?H��H��H��[]H��A\ÐH���H�����f(ȃ��X���fDH��f�H9��@���H��H��H��?H)�H	�H��H�,$�~$������H�=n����H��H���;����H��H9��M���H�ڸH��?H)�H��H��H	�H��H�$�~$����f�H��f��H9������H��H��?H)�H��H��H	�H��H�$�~$�s���fD�H�=ƺ�W���I��H��;����H��(@����@��t��������Y�H��(�@H�����������u�H��/�EH��H9��IH��H��H��?H)�H	�H��H�D$�~L$f.
���H�f�����2a�H*��^�f(�fT�f.�v3�H,�f���%��fU��H*�f(����f(�fT��\�fV��s���H��(�fDH�H�1�H�T$���H�|$H�@H�xjH�D?H��(�������
������tP����H��/������������H��H�H�������H���T������s������fDH��/�����H�f�f��H���H*�H9�t%H��H��H��?H)�H	�H��H�D$�~L$�^�H�0fH~�H9�t'fH~�H��<������t^H��H�������������NH��/�:���H�f��H*��H�H�t$裪��H�t$H���v�����fH~�H��H��H�����H�f��H*��*�������ޫ��ff.���UH��SH��H��H���;H��tH��H��H��[]�����H�=$-�?�H��H���;�����/���f���H��@��ur@��t4�����uT�������$�O�����F�^�H������������
�������t���t��*H������������"�OH�f��H*��Y�H�0fH~�H9�tlH��H��<��������H��uQH��H�����������J�_�\$H������YD$H�0fH~�H9�u�H����@���������*H����@H��f��H9�����H���H��H��?H)�H	�H��H�T$�~L$����H��H��H��H����H��f��H9�����H���H��H��?H)�H	�H��H�D$�~L$����H��f�H9������H��H��H��?H)�H	�H��H�D$�~D$�f����H��H9�t$H���H��H��?H)�H	�H��H�D$���f���d$����ff.���H��@����@��tP�����up��������G�����\FH�0fH~�H9���H���,���@H������������
�������t���t��-H���0����������GH�f��H�0�H*��\�fH~�H9������H��H��<��������H���a���H��H��������������-H����@H��f�H9����H���H��H��?H)�H	�H��H�T$�~D$�����H��H��H��H����H��f�H9�����H���H��H��?H)�H	�H��H�D$�~D$����H��H9��X���H��H��H��?H)�H	�H��H�D$�\D$�.���������t>�_�\$H���;���T$H�0�\�fH~�f(�H9���������H��H9�t!H���H��H��?H)�H	�H��H�D$�f���d$�@��H��@��ur@��t4�����uT�������$�O�����F�^�H������������
�������t���t��+H�����������"�OH�f��H*�H�0�X�fH~�H9�tlH��H��<��������H��uQH��H�����������J�_�\$H�������XD$H�0fH~�H9�u�H���ĵ��@���������+H�����@H��f��H9�����H���H��H��?H)�H	�H��H�T$�~L$����H��H��H��H����H��f��H9�����H���H��H��?H)�H	�H��H�D$�~L$����H��f�H9������H��H��H��?H)�H	�H��H�D$�~D$�f����H��H9�t$H���H��H��?H)�H	�H��H�D$���f���d$����ff.���ATI��UH��SH�H��H����tSH��H�H���H�����H������H����H����H��[]A\�f�����H������������
���ڃ����������Kf�f.��rH���H���/�KH���yf(��L$�B����L$f.�z�XH�-�y;H���P�L������fD�؃���u&H��H���H9������9�H�qy;H����H��H��L��[]A\�%��D�؃���u�H�ڸf�H��?H)�H��H��H	�H��H�D$�T$f.���H����H���-H�ڸH��?H)�H��H��H	�H��H�D$�~L$�����H�=���O�H��H��x;�H���1���H�߾%���H����H���[]A\��f��H*��ʺ��H�0fH~�H9�tifH~�H��<��������H��uLH�����f.�H�ڸH��H��?H)�H	�H��H�\$�~L$f/�v���H��[]A\�p������J���H������Y���H�-�w;H�����L����H��H��H��H��[�]1�A\���H��������i���f�H��H��[]A\���H������H��������H���:�<H�8�X�����1���H�߾<�w���H�������������H�������H���R���H��H��H��[]A\����H���^���H����O�����H�=���?�H��H��v;���H��������y���H��H��H��������H�=^����H��H�]v;���H�-Yv;H��������H�=.���H��H�5v;�h���H�H��
H��������ff.�f���SH��@��uy@��t3�����uS�������C�G�����N�efDH������������
�������t���t�H���/[�O�����H������7�Gf���H*��^�H�0fH~�H9���fH~�H��<��������H��ucH��H��[�H��H���u���؃����P�K�^�H�0fH~�H9�tfH~�H��<������t~H��t�f(�H��[�C�������������H���/[�c��H��f�H9������H���H��H��?H)�H	�H��H�L$�~D$����H��H��H��[H���fDH��f�H9������H���H��H��?H)�H	�H��H�D$�~D$����H��f��H9��x���H��H��H��?H)�H	�H��H�D$�~L$�N���H��f��H9������H�غH��H��?H)�H��H	�H��H�D$�~L$�q�����H��1�H�t$�L���D$H��Ð��H��f(��D$f�f.�zu	H�D$H�|$��Z���H��H�D���f.�z&u��f/��w�1�f.���H�D���@��f.���������tl@��uH�����t
�����tS�����tI@��u	H�����u0�Ѓ���t0����H�������D�1�A��A��tË����u�ATA��UH��SH��H�� �P���H���$�C���H���D$�5����L$D��f(��D$f(��$褮��fT=l�f.=��f(�wc�d$f��f.�zuusH�0H�$H9���H��H��<��������H��H���\@H������1��f.
�����H�� �[]A\�f�1�f�I�0H��f/�wi��f/D$����t�D$fH~�L9�trfH~�H��<������tqH��H��uVH���L$H���%���f��L$�H*�f/��e����\$f���Y�f/��X$s��t$f/����z����L$�&����L$�fH~�H��H��H���H�0H�$H9�t!H��H��<������tLH��H��t
�$�ͩ��H���u��������$趩��H�����H��H��H��H�����H��H��H��H���f���AVAUATI��U��SH��H�� ������|H�L$��H�T$L�����H�|$���������ك�H�����tZH�T$�������wH�t$1�H����������H��蘽��H�L$H��1���+蟬��H����H�t$H�T$�������@��uH�����t������8��tK��tF��tAH�I��H�I�I��I������L9�|K�|$M��	���M9�}�H�� H��[]A\A]A^�1�H�������u�I��H��H��<�$L���̼��H�L$L��1���+�ӫ��I��H�L$1��H��L��蹫��H�����t���J���H���r��L���H��L�3H������H�� []A\A]A^�K�|$M��Q���M9�~��C���H��H��H��@H��H�H���)�����H�t$1�H�������������k����Ff(�fT
:�f.
Z������fP��uO����������
����H��H9�����I��I��?L)�I��I��L	�H��H�D$�~D$독�u��I���ff.����AWAVAUATUSH��@��t
@������A��I��I����H������@��uH�����t��������D�������A��u
I�������D�������A��uI�����tA�$����tt���L���b����L��H���"����������qA�>1�L��L��H��覩��H���������A������c����L���8���L���D$�*���H���$�����$�T$D��蚨��f(�fT
^�f.
~���
��f/����
��f/����H,�H�l-H��H��[]A\A]A^A_���i���H�I����H��H�H�H����H��H)؃�H��H������H�I��H�xH��������?H�l?H9�v�H��[]A\A]A^A_����\��H,�H��?�f���DH��[]A\A]A^A_鵦��D��H��[]A\A]A^A_�e���DA�<�j���DH�0fH~�H9�t�fH~�H��<��������H��H��������H�-k;H��L��1���-躧��H��L��H��1�襧��H��E��tOH��L���*1�膧����+H��H��1��o���L��L��H��1��Z���H������L���H��H��1�[�]�+A\A]A^A_�'����H��I��H)��O���f�H��H��H��H�����ff.����H� tH��H�61�H������.���fDH�v ��f���H� tH��1ɺH�6����H�v 1ɺH�6���ff.�f���H��8dH�%(H�D$(1�H��uH�D��������@��uH�����t�����t<��
t\���H��H����@��t�H��H�H�L$(dH3%(��H��8��G�
p�f/�vgf/Z�r]�H,���k����f�H��H9�taH����
)�H��?H)�H��H��H	�H��H�D$�~D$f/�w�H�D$H��H��苭��H�5�@H��H�B�:H�81�谓��1��;���H�ʋ:H�5k@H�81�葓���|���ff.����SH��@��t2H���t7H�H��x
[鬦��@H��H��>~/H��[H��?H���f��{��H���u��Ύ��H��[H���R��f���[H�H�D?�@��1��e���D��PXH�+�H�
�AH�5
@H��H��H��HI�H�X�:H�81��ƒ��fD��SH��H��H��tH�>�� uDH�FHcЉ�H9�uCH�v �1�1�H�L$H�����H�T$H�4$1�H���l���H��[�fDH��H������H��苐��ff.���H���s��Hc�H9�uH���H���^���ff.���H��@��tH��H�Hc�H9�uH�����#����H������f���USH��H��(��'�؃����Q�Sf(��3���H��([]�@1�H�L$H����5�����u�H�|$@���a茝���Ņ��"�؃������S��t�f(�H�|$�T$����T$f(�fT�f.��,f.��"�L$���!���ك�9��f���e��T$�*��v����T$�D$�Y�f(��]����L$H�0�^�fH~�H9���fH~�H��<��������H����H��H��([]�f�H��H9�t1H�غH��H��?H)�H	�H��H�\$�~T$�{����f���k�����[���������t��D$f�҃������H��(H��[]Ð�ȺVUUU����)Ѓ�9�~ޅɍAH����9��:��������s������fDH��H��H������H��H9��i���H�غH��?H)�H��H��H	�H��H�T$�~T$��H���x�����H��螸�����f���UH��S��H��H�����H��H���H��[]�&���fD��U��H��S��H��H�������G������uGH������������
�|�ڃ���t,��uE�Kf/��H��1�[]�D�؃���uH��H9���f����f�H��b;H����H��H��H��[]����H��H���
����t�H���a���؅�������f�H��f�H9�����H���H��?H)�H��H��H	�H��H�D$�~D$���@�؃����Z���H�ڸH��H��?H)�H	�H��H�\$�~L$f/������H���[]���H�=֛�'��H��H��a;���������H���������G@����@��tU������
H��f��H9�t%H��H��H��?H)�H	�H��H�D$�~L$f/�wi1�H���f�H������������
t)�����t������Nf/�v��)f�H��H��H���b����t�H������؅�y��H���fDH��f�H9�����H���H��?H)�H��H��H	�H��H�D$�~D$���@����������<H���|��ff.����U��H��S��H��H�������G������uGH������������
�|�ڃ���t,��uE�Kf/��H��1�[]�D�؃���uH��H9���f����f�H��_;H����H��H��H��[]����H��H������t�H���Q���؅����|���f�H��f�H9�����H���H��?H)�H��H��H	�H��H�D$�~D$���@�؃����Z���H�ڸH��H��?H)�H	�H��H�\$�~L$f/������H���[]���H�=Ø���H��H��^;���������H���������G@����@��tU������
H��f��H9�t%H��H��H��?H)�H	�H��H�D$�~L$f/�wi1�H���f�H������������
t)�����t������Nf/�v��)f�H��H��H���R����t�H������؅�~��H���fDH��f�H9�����H���H��?H)�H��H��H	�H��H�D$�~D$���@����������>H���l��ff.����U��S��H�����(�Gf.��aH��H��@����@����H������2�����
������������}Df(�fT
�f.
,��nH�5�\;H���1�1�H���D$����H��4�BH������D$��1�f/֞��H��H������[]�@������z���H��H9��}f���fDH��H��������H��[]�fDH��H9���H���H��?H)�H��H��H	�H��H�D$�~D$�����������H�ڸH��H��?H)�H	�H��H�\$�~L$H��[]颜��f��	H�=	6�D$�����D$H��H��[;���@�KH��[]�`���H��H��H�ﺆ[]�ڬ��f.�H�����H����[]H�H�D��f������H��H��H���b���1��D$����f/=�w�ЙHc�H�D�������ff.���@��tH�H�H9���1��@UH��SH��H��@��uFH�����t=�����
tk�����t��u.H��H���}��H���tjH��tdH��1�[]�@�؃���t�H�Z;H��tRH��H��H��[]�!������f.�H�����H��H���-���H��������H���[]�D�H�=�����H��H��Y;���@��tH�H�H9�|k1���H��@��u6H�����t]�����
ts�����t#��t�<H���f���fD�����u��|��H���ta1�H���@��f.������tк<H�������H�H�t$����H�t$H���&���H�������y��H�����@��tH�H�H9���1��@UH��SH��H��@��uFH�����t=�����
tk�����t��u.H��H����{��H��H��ufH���[]��؃���t�H�'X;H��tRH��H��H��[]�A������f.�H��8��H��H���M���H��������y�H��1�[]���H�=ۑ�/��H��H��W;���@��tH�H�H9�k1���H��@��u6H�����t]�����
ts�����t#��t�>H��醼��fD�����u���z��H��ta1�H���@��f.������tк>H���8����H�H�t$�3~��H�t$H���F��H��������~��H�����SH��H����uH��H��[��H�L$H��1����H�|$@��t"�}����"t�H�߉�荫��H��H��H��[Ð�+�����~�H��蟺��H��H��H��[���SH��H�t$�=����t$H��H�����H��H��[�D��@��tfUH���<SH��H�H��H��:H�8����uG�<1��H�ߺ����1�H�����@��H��肎��H��H��[]���+���H��?H����ff.�@��PXH�[�H�
0H�5e.H��H��H��HI�H��}:H�81����fD��H���#���H��H9�uH���H�����ff.�f���H��@��tH��H�H��H9�uH���fD�Ӳ����H���Y���f���SH��H�t$�ͦ���t$H��H���ލ��H����[�fD��@��tfUH���<SH��H�H��H��~:H�8胢����uG�<1��H�ߺ覑��1�H�����@��H���r���H����[]�f��|��H��?H����ff.�@��@��tH���f�H�����H�@H�x
H�|H��H���H��H�	|:H�5�,H�81��p����H��8dH�%(H�D$(1�H���xH��H�@��u@������tX@��u
H�������H���bH���Y�}�����H�H�L$(dH3%(�0H��8�f�H��H9���H����
�H��?H)�H��H��H	�H��H�D$�~D$f/�vbf/��rX�H,��fD�����t.��
�����?���H��v:H�5F,H�81��L~��@�G�
c�f/�w�H�D$H��H�����H�5�+H��H��z:H�81��
~��f.�H���X�����1����f��|������H��u:H�5p+H�81��}��詌��H��u:H�5�+H�81��}�����H��8dH�%(H�D$(1�H���hH��H�@��uY������th@��u)H�����t ���������
�"���XH���6H���-葯��H���y���H�L$(dH3%(�H��8�H��H9���H����
U-H��?H)�H��H��H	�H��H�D$�~D$f/�vZf/ϓrPf/��r#�
Óf/�r�\��H,�H��?�i���f��H,��]���fD�G�
�,f/�w�H�D$H��H���
���H�5�*H��H��x:H�81��2|��f�1�����f��˞�����H�7t:H�5�)H�81��{�����H�t:H�5*H�81���{��H�t:H�5�)H�81���{��f���AUA��ATUH��SH���g���=p�����A�ą���=o�����Hc�H��1��Ƀ��H��H�E0H�sH� tH�sH��D���H�3�� t.H�{H�sH�H��蛋��A9�u&H��H��[]A\A]��H��H�{��H���H��w:H�MD��H�5
*H�81���z��H�rw:D��H�5*H�81���z��fD��H��A��I��H��H�t$I���r�����t>H�/w:H�8A��tL��H�5�)1�H��z��f.�H�5�)1��rz��f�E��t;A��t�1�D���F���fDI�:�x���H��t;�|$H������H���f��D$=�w5�D$H�|$���w�������s���뾐�K�����f�諶��H��u�H�gv:�T$H�5D)H�81���y��f.���H��X�V�dH�%(H�D$H1�H��H���"��H����A�xm�D$AHc�H�L$AL���
�H��H�H�y�H��Hc�A��Q�H��u�E��u��|��H�t$HdH34%(uWH��X�D�G�-H�y���fDH��A��D�H�=������H�>y:��H�5��H�81���x���Ƈ��fD��S�
H��H����uH�߉�豮��H��[�H�L$H�~1��E���H�|$@��t�տ��H�߉��{���H��[�D苄��H�߉��a���H��[�ff.�����}�����SH��H��H�|$H�|$H�4$H�����H�$H�|$1�H�޺覉��H��[���AU�H�=k�ATUSH��豽���H�=��H��L;虽��H�=G'H��L;H��v:H�0�̿��H��r:H�=5'H�H�t:H�0謿��H��t:H�=&'H�H��p:H�0茿��L�%uq:�H����H��H�5�&I�$�F���H��w:I�<$H�0�C���I�<$�H��{��H�5c~����I�<$�H�����H�5}����I�<$1�H�����H�5�����I�<$1�H��w��H�5�&�ɦ��I�<$1�H�<{��H�59�谦��I�<$�H��w��H�5%蔦��I�<$�H�T���H�5�}�x���I�<$�H�X��H�5���\���I�<$�H�\���H�5���@���I�<$�H�����H�5��$���I�<$�H�~��H�5w�����I�<$�H��}��H�5x����I�<$�H�<���H�5���Х��I�<$1�H�3���H�5X�跥��I�<$1�H����H�5C�螥��I�<$1�H��w��H�5��腥��I�<$1�H�Hv��H�5���l���I�<$1�H�?v��H�5"%�S���I�<$1�H�����H�5%�:���I�<$1�H��|��H�5�$�!���I�<$1�H�d���H�5�����I�<$1�H�k���H�5
����I�<$�����H���H�5��Ӥ��I�<$1�H�v���H�5�躤��I�<$�����H����H�5Đ螤��I�4$H�=o$讼��L�-�t:H��I�E諫��I�E�������ƒ����9H���_<�wH�xH�-�r:H��m:H�5(�艳��I�}1�H�܉��H�5�#����I�}1�H�#v��H�5�����I�}1�H��u��H�5���ޣ��I�}�H�.��H�5�#�£��I�}�H�~��H�5�#覣��I�}1�H�����H�5�#荣��I�}1�H�Ѕ��H�5���t���I�}1�H�����H�5y�[���I�}1�H����H�5���B���I�}�����H�b���H�5!#�&���I�}1�H�����H�5���
���I�}1�H�����H�5ӎ��I�}1�H�����H�55��ۢ��I�}1�H�~���H�5׎�¢��I�}1�H�e���H�5Ď詢��I�}1�H�L���H�5��萢��I�}�����H��H�5���t���I�uH�=��脺�������H�����H�5�yH��H�E�E���H�}H��yH�5�y����H�}1�H��w��H�5������H�}�H�5���H�5�����H�}�H�����H�5���ݡ��H�}�H�ͺ��H�5r����H�}�H�Q��H�5_o襡��H�}�H����H�5>�艡��H�}�H�	���H�5ܴ�m���H�}�H���H�5��Q���H�}�H�ѷ��H�5�5���H�}�H�u���H�5v����H�}�H�y��H�5<z���H�}1�H� v��H�5����H�}1�H�v��H�5p�ˠ��H�}�H�kz��H�5H诠��H�}�H�Oz��H�5+蓠��H�}�H����H�5y�w���H�}�H��H�5�&�[���H�}�H���H�5�~�?���H�}�H���H�5ٌ�#���H�}�H���H�5�~����H�}1�H�
q��H�5+'���H�}�H����H�5�n�ҟ��H�}�H���H�5Yx趟��H�}�H�&~��H�5-~蚟��H�}�H��x��H�5��~���H�}�H����H�5�v�b���H�}�H�B���H�5�}�F���H�}1�H�ɧ��H�5�}�-���H�}1�H�@p��H�5e�����H�}1�H�'x��H�5�}���H�}1�H�p��H�5����H�}1�H�%p��H�5�}�ɞ��H�}1�H�,p��H�5o}谞��H�}1�H��s��H�5��藞��I�4$H�=�觶��H��H�謥��H�;@���@���5������tH���Q@����H�H�56�藭��H�;�H�5"�S���H�;�H�5�?���H�;�kH�5�+���H�;�H�5�����H�;H�����H�5�����H�;�H�5����H�;H�›���H�5��׳��H�;�iH�5��ó���+�V{��H�;H�5��H��褳���T��7{��H�;H�5[�H��腳��H�;H�5�H����l�����x�z��H�;H�5�[H���M����m���z��H�;H�5DH���.���H�;1�H����H�5Jt���H�;H�;tH�5,t���H�;�H��u��H�57{赜��H�;1�H�i���H�5&{蝜��H�;�H�n��H�54�肜��H�;�H�����H�5'��g���H�;�H����H�5���L���H�;�H�}��H�5�i�1���H�;�H��m��H�5�����H�;�H��m��H�5Xz���H�;�H�\���H�5O����H�;�H�A���H�5Qz�ś��H�;�H����H�5�y誛��H�;�H�+���H�5�t菛��H�;�H�0���H�5
z�t���H�;�H����H�5�y�Y���H�;�H�z�H�5�s�>���H�;�H���H�5Z!�#���H�;�H�4��H�5�y����H�;�H����H�5�����H�;�H����H�5Qy�Қ��H�;�H�����H�52r跚��H�;1�H�ۃ��H�5��蟚��H�;1�H�3���H�5#y臚��H�;1�H�����H�5y�o���H�;1�H�����H�5�x�W���H�;1�H�����H�5�?���H�;1�H�s���H�5��'���H�;1�H�[���H�5i�����H�;1�H�S���H�5����H�;1�H�[���H�5���ߙ��H�;�����H���H�5��ę��H�;1�H�����H�5ׅ謙��H�;1�H�P���H�5�蔙��H�;1�H�����H�5��|���H�;1�H� ���H�5p�d���H�;1�H�X���H�5��L���H�;1�H�Т��H�5��4����H�=�����H�=��H��=;�ۮ��H��=;H��[]A\A]�f�H����������H����H�������H��g:H�8�~����H������m�H��tNH���^�H��g:H�-g:H��a:H�8�S��H�-�f:H��a:H�}�4�f�H��b:H�-�f:H��a:H�8��H��b:H�8����H�}����H�ia:H�-�f:H�;���f.�H��e:H�8����H��e:H�-Rf:H�+a:H�8��H��h:H�-2f:H�a:H�8�~�H��h:H�8�^������������t
�G�@H��H9�t)H���H��H��?H)�H	�H��H�|$��~D$��f��ff.���H�0fH~�H9�t@fH~�H��<������tH��H��u�@fH~�H��H��H���fD�t����H9���HD��f.���H��H��H����ff.�f���H��������fD����fD��H��Ð��H��H��HE��ff.�����fD��H��H��H����ff.�f���1��f�����fD��1��f�����fD��H9�t/H��H��1�����Ow��H��t�H������f���H9�t/H��螂���H��uH��H���@�H��H����H���ff.�@��H��H��1������v��H��H��H�H����Ð��SH��H�����1��v��H��[�ff.�@��H��H��1�����dv��H��H��H�H����Ð��H�������tH�H���T��H��H�D�f.�H��踖��H���0��H��H�D�fD��H9���H�����H�������H��у���t������H�VH�r8H��tjH9�t_L�O L�F H��H��M9�u�Jf.�H9�t;L9B t5H�RH��u�H��u�DH9�tH��L9J tH�QH��u����H��t�H��L�% L9N u�1��PH��[:H�5*H�81��xc�����H9�t�r���f�1��ff.�f���UH��1��SH���H��H����t����u	H�����uH�����H��H��[]�@H��ƒ���t��u�H��H��[]�ff.����SH���S���H��[�ff.���釪������H�=��體��ff.����H�=��鋔��ff.����H�=t��k���ff.���1�1��S�����1��u���D��UH��SH��H�|$H�t$��^��H��H��uH�|$����t2H��H��[]�@H�������t8H��H�����H��H��H��[]�H�|$�RGH�|$H�5~H��1��,t��H����GH�5eH��H��1��w����UH��SH��H�|$H�t$�$^��H��uOH�|$�u���t!H���)���H�|$H�5EH��1�H���s��H�|$��FH�|$H�5�H��1��s��H��H��������tH��H���6l��H��[]�H���GGH�5�H��H��1���v����H��H�|$�N�����u
�H���H�T$H�t$�����H���f���1���{��D��UH��SH��H�|$H�t$�$]��H��uH�|$赟��t2H���[]�DH��H��襓����t2H��H����{��H��[]�H�|$�EH�|$H�5AH��1��r��H���WFH�5(H��H��1��v����UH��SH��H�|$H�t$�\��H��H��uH�|$����t2H��H��[]�@H��������t8H��H�����H��H��H��[]�H�|$�EH�|$H�5�H��1���q��H���EH�5�H��H��1��`u����UH��SH��H����tl�H�5yH���r���H�5NH���tr��H�CH� tH�C�#��u!H�����tH��Ѓ���-�H��s"H��H��[]�H��H�56������@��u�H�����t�H�E������t�%H	�H��ff.�����������!�b`��f���1�@��u)H��H��t H�1��у���tH�к%HE��f.���S1�H��H�=o��_��H��[�e������@��u'H�����tH��у���tH�к%HE��f���1�@��uH��H��tH�1��у���t�H�к%HE��fD@��u&H�����t������H�� tH���H��H�qU:H�5�H�81��8]������H9�tG@��u<H�����t3�����u)H������H��t*H��H�H����H������f.��H���fD��H�GH��t;�u1H�����t)�����t�LH�����t0�����u6H�@�t��DH�	U:H98u��fDH���HD����PH�nT:H�5�H�81��5\��D��@��u!H��H��H�����t�����uH������H��H�"T:H�5�H�81���[��f���H9�t�D1��ff.�f���@��u	H�����u
H���f�H��у���t��u�~��u��H���@�H��s�H���P�[����S1�H��H�=��]��H��[�����SH����n�����u&H�����tH��ƒ���t��t��u��H�H��[�H���Z��fD��S1�H��H�=��\��H��[�Q������AW�G�AVAUATUSH��8����H�D$H�H��H�D$(��t	H�NH�L$<���uH������xH�|$(�~��H�|$(H�D$�a���xH�D$�(H�|$�u�����H�|$(H��� �L�GH�L$N�,L9��������L�yM9�s<:��L�|$L��M9�w�1fDI��M9��A�?:u�L9��aM��H�T$H��I)�L���.��H��H+t$A�?:I���M���L���x}�����L��H��H�D$�����k��q������H��L��背��H��M9��kH�؃�H�D$�vH�|$(�>H�5]H��H�CQ:H�81��Y���H��I��A������������z���H���ړ���H�|$(�U��H���O1�H��8[]A\A]A^A_�fDM��L9��IM��H�T$H��I)�L���~��H��H+t$I��M����H�|$(L���e���H�èu2H�����t*H��ƒ���tH�€�H�{H�t
��uH���l����}��o����tH�������P���H���=H�5�
H��H��1��j���[x�����$���H��L��舛��H��M9������H��8�[]A\A]A^A_��H������}����������������g���DI�oL9�s,A�:u%I�����H��H��H�D$����t;��o��H����H�|$(H��H�5�1���i���y:�H���H�tP:H��>����w��H��[���H�qW:H�5*	H�81��W������L���I=H�5�L��H��1��l��D��SH���c����t
��[�fDH��訕1�[���‰��ff.�f���SH���s����t
��[�fDH���h�1�[���‰��ff.�f�AUI��ATUSH��H��@��tJI��@��uH�����t
�����t.H���b��H��H��tjH��A��H��tHH��[]A\A]�����H���H�߅�tH��[]A\A]��������H���h;L��H��H��1��Hh���S;L��H��H��1��3h��H��M:H��H�5H�81��U�������~xAU�G�ATL�l�L�%�UH��SH��H��f�H�;L��H��H�o���H�5�������A�1�H��H��苗��L9�u�H���[]A\A]�fD��f.�����~xAU�G�ATL�l�L�%5UH��SH��H��f�H�;L��H��H����H�5����S���A��H��H�����L9�u�H���[]A\A]���f.�����~xAU�G�ATL�l�L�%�UH��SH��H��f�H�;L��H��H�O���H�5��������A�1�H��H���k���L9�u�H���[]A\A]�fD��f.���UH��H��H�
�SH��H��H�ϒH�5؎�S���H��H��H���e`��H��H��[]�ff.���UH��H��H�
	SH��H��H�_�H�5X�����H��H��H�����H��H��[]�ff.���UH��H�
YSH��H��H��H�o�H�5�����H��H��H��H��[]���ff.�@����uH�FH��t
H��t�C���AT1�H�=EE1�UH��SH���T��H�;H�C����H�
�
H�����H�5����A���,���D��H��H��A��Ӕ��[�]A\�f���H��H��HE��ff.���H��H��HE��ff.���H���uMH�����tEH��у���t8��u3H�р�H�H�t#��uH��H�|$����H�D$H���fD����SH���w��H��[�Jd��f.���USH��H���~p��H��H�X��u	H�����uH��H��[]��H��H���m����u�H�E��`H��`u�H���`H��`t�H��H���f�����ATUSH��H�z�2L�%�I:H��I9$���uyH�2J:H�(H�l$H��u=H�CH�uH���]��H�|$H���<���H�����H��H��[]A\��H����Z��H��H���Z��H�k@��tcH�l$�@H�L$H��U1��%\��H�|$�o��H�l$I;,$�j���H�}�_���H�rH:H�5�H�81��9P��f�H�����t�H��H���\l����u�H���`H��`�u���H�E��`H��`�d���H��H����d���T���H�H:H�5hH�81���O��ff.�@��AW�G�AVAUATUSH��8����H�H��A�H�D$(��tL�f<���uH�������H�|$(�s��H�|$(H�D$�V���xH�D$�fH�|$�i�����TH�|$(H��� �}L�GH�L$N�,L9��l����aL�yM9�s<:��L�|$I��L��L�d$f�M9�w�fDI��M9���A�?:u�I9��M��H�T$H��I)�L���t��I��H��H+D$A�?:H�$�����2H������%������M���XH�4$H�|$(L���7���I�Ĩu0H�����t(H��ƒ���tH�€�I�|$I�$t	���~�}�e������L��������H�{��
�Ap������L���a���H��H����w��H��M9�����H��8H��[]A\A]A^A_�H��I��A���w������������H���r�����H�|$(� J��H��H����H��I�����������H���f.�M��I9���M��H�T$H��I)�L���r��I��H��H+D$H�$���f.�L����p�����0H�|$L��H��t�
���H������D�k���H������I�oL9�sA�:uI���#���H�|$(H��H�51��_��L��躁���u���H�t$(H���xv��H������y:�s���H��E:H��i�����H�����H�|$(��1H�5q�H��H�WD:H�81��%L��L���1H�5�L��H��1��^��H�$H�|$(1����L��H�5��L��H��1��b^��H�+L:H�5�H�81���K��f.�L���2H�5FL��H��1��a�����~��D��@����@����������H��� @���&H�FH��tmATI��UH��SH���~����tNH�EH�E ���8-���H�5�PH���h^��L�����H��H�5�H��H��1��[��[1�]A\�f�1��DH������u���H��teH���f���H��I:H��[���DH�I:H��G���f�H�E�8-�g����#�H�5\�H����]���_����H��D:H�����H��C:H�����H�9H:H������H�	K:H��������S@��t}@������������H����@����H�_H���]�H�@H�@8H��t,H9�t[H�P H9S u�O�H9�tCH9S t=H�[H��u�H��[��H�����u�H��t8H��u�H��H:H����H��[�fDH��G:H��l���H��C:H��]���H��B:H��N���H�,G:H��?���H��I:H��0���D��H��H��H���{��ff.���UH��SH��H������@������������H����@����H�{�rn��H��H�=Q�H��1��w���u1H�����t)H�0�������H��H�҃�H��u��uyH��[]�f�H�����u�H��t!H��u�H�UG:H�8�H��F:H�8�z����H��B:H�8�j����H�YA:H�8�Z����H��E:H�8�J����H��H:H�8�:����H������z���H��у����i�����H	�H�0�X������SH���Cx��H��t~��tY�����؃�����H������tsH�{�:m��H��H�=��H��1��fv��H��H�=��[H����q��H�����u�H��taH��u�H�EF:H�8�H��[野���H�yE:H�8�@H��G:H�8����H�9@:H�8�r����H��D:H�8�b����H�9A:H�8�R������H���uH�����tH�G�@��USH��H����u	H�����u
H��H��[]�H��H�s@��u�H�����t�H���b����u�H���`H��`u�H�E��`H��`t�H��H���[�����USH��H��H�H�w@��uH��H�����u:�Ey����~!��uH�����tH��ƒ���t��H�H��H��[]�D�b����u�H���`H��`u�H�E��`H��`t�H��H���Z��뗐��H��H��1�����$W��H�������H�������H��H��t@H���u����u	H�@H��u���D��@��t&@��u@������tVH��t`@��tjH���f���H�����u�H��t!H��u�H�D:H�8��H�YC:H�8�f���H�I?:H�8�@H�>:H�8�@H��B:H�8�@H��E:H�8�@��ATUH��SH9���@���H�������H��ƒ���������H��@��tb�@��u-�������H����@����H��4tO���9�uMH���N~��H��I���C~��I9�u5H��[]A\�fDH�����u�H��ta�H��u��D��H��;:H�5��H�81��C�����f���|���fD��l���fD��\���H���C��ff.���UH��H��SH�����H��H���}���H9øHD�H��[]��AW�tE1�AVAUL�-��ATI��UH��SL��H��D�2H�t$�L$�A��H��A��
���A8�u�H��H���3a����u�Ic�H��I�tH����1�1�L���^~��H��4tH��[]A\A]A^A_�f��D$����A��H�-�H�@�HM�I����I��tsH�
��M��u2H�c::L�D$H��H�5�H�81��"B��f�H���_��H���f���L���H|��L�D$H��H�5�H��H�::H�81���A����C���H�
��H�
�����fDAUI��ATI��UH��SH����{��L��H����{��H��M��I��PH��9:H��H��H�5��H�81��tA��@ATUS@��uV@��uH�����t
�����
t=H��H���H��H�5�����I��H�9A:L��H�0��s��H��tL��[]A\ÐI��[]L��A\�L��H��H�5��H���0���SH��H����tK�����؃�����H��H���H��t;��t6�������w)H���Hc�H�>��@H�����u�H��t9H��uʅ��t$��H���`L���t$H��tH��H�ߺ[�$=��@��tdH��@:H�5��H�81��4@��@��u�H��H��[���uЉ؃���tJ�C�
Wf/�r
f/WsEH��[��O��H�	8:H�5Z�H�81���?�����|���H��H9�uIf�1�H���H�5|�H���x���H���e���H��H��H�5Z[[�
���f.�H�ڸ�
xVH��?H)�H��H��H	�H��H�D$�~D$f/��A����2��������t7H����u>H�~H�t$@��uW�*K��H�t$H�>��H�������1�H�>����@E1�1�H�y1��}J��1��H������������H�t$�ff.����ATUH��SH��H� u
H�H���|H�E uRL�e1�M��H�E H�KL�cH�C H�#���[]A\��L����e��H�uJ��H���7a��H���f��oECH�E H� H�C []A\��S��H�CH�CH�C �b���ff.�USH��H������H�������H��ƒ���tu��upH%��H��H��H�H���H	�H��,E��H��H����J��H��H����8��@��uH�����t�E����tH��[]�DH��H��H��[]���H���m��H�5��H��H�>5:H�81��=��ff.����U1�1Ҿ�
S1�H���N��H����G��H���Fn���xt H���B����tTH��H��[]�f.�H��H���eW����u�H���YC��H9�t�H���|B����u�H�a8:H�5��H�81��p<��H�I8:H�5*�H�81��X<�����ATUSH����u H�����tH��ƒ���t
�����H���
��I��H��t�
H�=��n��L��H���sL��H��H���9��H�5^s�H���4O��H�5�;H��tPH���l��H���8L��H��H���]9��H��H�5���N��H��[]A\ÐH���Xa��[]H��A\�\l��@�H�=�q�7���H��H�=;��H�=V��Wm����H��H����V���uH�����t
�����tH��艂��H��H����[���\���H���K��H��H����[���D������UH��SH���^��H��H���S��H�@H�@8H��t*H9�t%H�P H9S u�DH9�tH9S t	H�[H��u�H��H��[]�f���@��u!H�����tH��Ѓ����H��s�@@��u�H�����t�H�������t�%H	�H�����PXH�5D�H��H�@2:H��H�81��:��ff.���ATUSH�H��uH�2:H98ut��u	H�����u<H���G��H��H������H��H����s��H��I���h[��I9�uMH��[]A\�H��ƒ���t���t�H��1:H�5�H�81��n9��H��1:H�5��H�81��V9��H�w1:H�5��H�81��>9���	���f���ATUH����SH����H��������Gs��H���_G��H��H�H��H�ށ�H�H�EH%���H	�H��UG��I��H�C�uH�����u:H��H�����H��H�ߺ�1��@J��H�E%H	H��[]A\�@H��H���T����I�$uH���`H��`t!�ƒ���t���t�H��L���a���DH�ƒ�`H��`t�L��H���M��I�$���h��H�5w�H��H�=0:H�81��8��ff.���USH��H����H��uEH�����t<�r��H���5F��H��H��H�����H��H���1��PI��H��H��[]��g��H�5�H��H��/:H�81��7��fD��ATI��U��H��S��E��L���H��H���{}��H��[]A\���H�G����SH���;����tH��[�f.�H���[����u�H���\H�5U�H��H��1��xI�����@�����@��u1�������	H���@���H��4����9���AUA��ATI�̹UH��L��SH��H��H���X�tD��u'�ƒ�����H��t<��H��4ty���A9���H��[]A\A]�H�����u�H�����H��u���f�H������X���H�����H���@����@���fDH���@�덐����fD�����fD�����fD���fD����fD��2���fD����fD�����fD�����H��L��H��H���u�D��@�����@��u1�������	H���@���H��4�+���9�u	����AUA��ATI��1�UH��L��SH��H��H����H��t�u,H�������A9��H��[]A\A]�f.���uىƒ�����H��tS<��H��4u���fDH���@H������H���H�����H���0����0���fD��h���fD�����fD�����fD���fD��(���fD�����fD�����fD����fD����H��L��H��H����D��SH��@��uK@��uH�����t
�����
t2H��1�H�5���H��H�>3:H��H�0��e��H���HD�H��[�f���H�5Z�����H�5J���\����1���D��AWAVAUATUSH��H�|$dH�%(H�T$x1�H������I���
fDI��A�?��^����u��u
A�?0�!H�D$(L��H��H�D$�|T���$�2���8"H�D$�H�D$(I9��F�8��I9��L�l$0M��I�ME�fDL9�vI��A��I��A�~�I9�r�A�I�]ED��t$<_�,I�OI9�����A�GI�τ�u�A������|$00��H�t$L���S��H�D$�$���"��M���	f�H�D$���"��H�D$xdH3%(�$��H�Ĉ[]A\A]A^A_�DH�D$(�L��H�
��H�=��L)�H��N�H���HN�1���2��H�D$�H�D$(I9���������x���H�|$H�5z��7i���A���I��A�GI������f���t4M9�t��R`����t�A�M�g�@`����t�A�GM������I��A�<_�����I��A�<_t��o����A�G���<X����f���$����H�t$L���ER��H�D$�$�8"��H�D$(L9�����H�������8@��u�*�H�PH�T$(�x@��t�\����H�D$(u�8����H�D$��4���f���$�:����D$1���<X��f���$����H�t$(L)�H��(H�
8�L��1�H�=���F1��H�D$����H�
��L����H�t$(L)�H��~<H�
��L��1�H�=���0��H�D$����L�l$01�M������H�
��L����H�D$�L�8�H�L$H�5V��H�D$(L)�H��N�H�w�LN�H�/:H�81��.���=��ff.����UH��AUATA��SH��8H�}�H�}�dH�%(H�E�1�H�E��hD��H�E�H��� ��H��L�h��E��t1�H��L���kI��H���A�|��H�����H�E�H�E�H�CH��H�E�H��H%�H)�H���H��H9�tH��H��$������t	H)�H�L�H�L$H���L��H��H���P���I��D��L���7��H�}�u?H�E�dH3%(utH�e�[A\A]]�DL�hH�XM��t�E���(����
���DH�}��E��d���E��H�}�H����^��H���n���H�m-:H�5��H�81��-���;�����H��@��tR@����������H��t6H���H��tI@��tC�������w6H��Hc�H�>��DH��H���H�����u�H����H��u�H�
;H��G�H���0��@�U��H�0fH~�H9�t!H��H��<������teH��H��t�H���9��D��,��H�0fH~�H9�u���H�f�H�0�H*�fH~�H9�u��fDH��H��H��H��H���H��#:H�5L�H�81��+��ff.����H���4d��@��������tT@��u	H�����u;H�|%:SH��H�0� ^��H��t1H��H�
�9H��F[��/��������u�H���H�7�H��tH�D�H��tH�S�H��uH��H�"#:H�5��H�81���*��H����Z����ff.�@��������tb@��uH�����t
�����tIH��$:SH��H�0�V]��H��t!H��H�
9H��E[��o��D�[�f�H���ff.����H��@��tR@��ul��������H��H���H��tQ@��tK������������u/�GH���DH�����u7H����H��u(��kb���ƒ���tq�@H�����������������uĉ�����u�H��H9�tkH���H��H��?H)�H	�H��H�|$�~D$H��ÐH��H9�t1H���H��H��?H)�H	�H��H�T$�~D$H����f�H���H�(!:H�5�H�81���(��H�!:H�5��H�81���(�����SH���4��H��t[�H��H�

0H�w[���,��ff.����H���d;��@��SH��H���?H��H��t	H��[�H�
�/H�#.�H����l��H��u�H�t$�H�\$��o���f���H���4��@��H��tCSH���=8��H��t[�D��u=H�����t4H��ƒ���u'�� uH�{����t[�o��fD������H���W��H�5n�H��H��:H�81��'��ff.���H���$9��@��AWAVAUATUSH����@��H��:1�H�����H�5~.H�;�M��H�;H�5�����e��H�;�H�<���H�5�5�W��H�;�H�!���H�5���V��H�;1�H�)���H�5H���V��H�;�H�����H�5����V��H�;�H�#���H�5\��L��H�;�H����H�5����L��H�;�H���H�5���L��H�=���ee��L�5�:H�-�&:H��I�>H�E�Xc��L�%�:�H�����H�5?I�<$�uL��H��!:�H�����H�5�[H�;�SL��H�;�H�d���H�5�[�8L��H�;�H�I���H�5�[�L��H�;�H�.���H�5q��L��H�;�H����H�5����K��H�;�H�����H�5����K��H�}1�H����H�5���cU��H�}H��!:�H�5�3�GU��H�}�H�W���H�5d��+U��H�}�H�;���H�5K��U��H�}�H����H�5n,��T��H�}1�H�6���H�5����T��H�}�H�:���H�5O-�T��H�}1�H�$:H�5�=�T��H�}1�H���H�5���T��H�}1�H�%:H�5���sT��H�}1�H�. :H�5���ZT��H�}1�H�����H�5���AT��H�}H�:�H�5q+�%T��H�}�H����H�5_��	T��H�}�H���H�5R���S��H�}1�H�H!:H�5U���S��H�}1�H��:H�51��S��H�}1�H��":H�5!��S��H�}1�H�� :H�5��S��H�}1�H��:H�5���pS��H�}1�H�;:H�5���WS��H�}1�H��:H�5A��>S��H�}1�H��":H�5�*�%S��H�}1�H��#:H�5p*�S��H�}1�H�O��H�5O*��R��H�}H����������H�5����R��H�}H�|:�����H�5U��R��H�}H�0��������H�5K��R��H�}H�ĸ�������H�5A��R��H�}H�X��������H�55��gR��H�}1�H��!:H�5+��NR��H�}�H�����H�5"��2R��H�}�H����H�5��R��H�}�H���H�5��Q��H�}H��:�H�5���Q��H�}H��:�H�5���Q��L�-S :H�}�H�5�L���Q��H�}L��H�5���Q��H�}1�H�����H�5���rQ��H�-�:�����H�=��H���L��H�����H�=���L�������H�5�H�=��{L���H�5���H�=�<�cL���H�5w���H�=so�KL���H�5���H�=�&�3L���H�5W���H�=���L��I�6H�=;���h��H�-%:1�H�,���H��H�5|<H�E�P��H�}1�H����H�5/�P��H�}1�H�#���H�5�'�gP��H�}1�H�����H�5�'�NP��H�}1�H�����H�5�'�5P��H�}1�H�����H�5x'�P��H�}�H�����H�5��P��H�}�H����H�5�(��O��H�}�H�t��H�5[.��O��H�}1�H�����H�5���O��H�}��V��H�}@���p@�����������H���6@���lH�L�=a:L�-z:H�5M;�^���H�=��=��H�;1�H�q��H�5(��%O��H�;�H���H�5�-�
O��H�;�H����H�5�-��N��H�;�H�����H�5e'��N��H�;�H�U���H�5o;�N��H�B:H�;�H�5-�N��H�;�H����H�5���N��H�;�H�D��H�5�,�hN��H��:H�;�H�5�%�MN��H�;1�H���H�5�%�5N��H�;H��%H�5{%�K��H�(:H�;1�H�5���N��H�:H�;�H�5t&��M��H��:H�;1�H�5�}��M��H��:H�;1�H�5U��M��H�;�����H����H�5D���C��H�;�����H���H�5.���C��H�;�����H���H�5��C��H�;�����H�\��H�5��C��H�;H�5�����[��H�;1�H�U���H�5j$�)M��H�;�H�ʹ��H�5s��M��H��:H�;�����H�5����L��H�4:H�;�����H�5����L��H�A:H�;�����H�5���L��H�F:H�;�����H�5���L��H��:H�;�����H�5zT�L��H�;�����H����H�5���lL��H�;�H����H�5u��QL��H�;�����H�r���H�5d��6L��H�G:H�;�H�5X��kB��H�t:H�;�H�5J��L��H�:H�;�����H�5=���K��H��:H�;�H�52���K��H�;�H�+���H�5-��K��H�;�H����H�5%��K��H�;�H�U���H�5��yK��H���	H�;�����H�5��^K��H���	H�;�����H�5��CK��H�;1�H�w���H�5��+K��H��:I�<$1�H�57�K��H��:I�<$�����H�5�6�J��I�<$�����H����H�5"��J��H��:I�<$1�H�5���J��I�<$H�5v����QY��I�<$H�50P�Z��I�<$H�5RP��Y��I�<$H�5'P��Y��I�6H�=��b��H�[:H��H��Q��I�6H�=J��qb��1�H�����H�5�!H��I��6J��I�?H��!H�5|!�G��I�?�H�����H�5��J��I�?�H�����H�5�"��I��I�?�H�����H�5b(��I��I�?�P��I�?@���j@����������H��t@����H�H�5�5��X���H�=N���7��I�6H�=e��a��1�H�����H�5� H��I�E�FI��I�}H�� H�5� �F��I�}�H����H�5��I��I�}�H����H�5�!�H��I�}�H����H�5n'��H��I�}�P��I�}@��tX@����������0H���V@���|H�H�5�4��W��H��1�H�=a�[]A\A]A^A_��6��H�����u�H����H��u��fDH����������H��t}H�������I�}���H����������H�������H�������L�-!:L�=�:I�}����H�Y:L�=�:L�-�:H�8�y���H�}�/����H�}�)����H�:H�8�	����H�	:H�8�����H��:H�8���H��:H�8�����H��:L�=b:L�-{:H�8���I�?����L�=9:L�-R:I�?����f.�H��:H�8�y����H��:H�8�s����H��:L�=�:L�-:H�8���UH��SH��H��H�5��:�G���uH�����t
�����t"H�5��:H��H��H��[]�]��f.�H��H��H��[]�/E��ff.�@AWH��AVAUATUSH��8L�6H�|$dH�%(H��$(1�A�� ��I��H�^A��I�H�����E1�1�I9��H�D$ L�=��I��H�D$�kf.��x�@��v<v_<=t[<
���D �+I��H��f�I9�~H�B�D =�
E1��D 
H��H���PH��I9�tk�H�r<~v��D =�H�zI��H��L�����A��D4 ���A��D< �DH�t$H�|$H��H�L$�(��1�H�L$I9�u�M��~H�B�D =H���D 
H��HH��$(dH3%(uzH��8[]A\A]A^A_�H�� t2H��	t,�D E1��+H������f�H�|$H�t$ �(�����D =��D4 H�r�H����H�^L�v�S����f#��fDSH���S���u H�����tH��ʃ����H��s[Ð��u�H�����t�H��փ���t��H	�H�[��AWAVAUATUSH��H�$H��(H�<$H��I��D�D$dH�%(H��$1���u���D$=L�5��E1�L�l$�I�����K�T=H��L)�H�����3I��I��H��H���������0��A��B��C����@����<@��	�Hc�A�46@�r��s�����?@��@��	�H�A��B�A�6�B�I���v���H��L)�H���OI����I��tq�D$��u]H�<$L��L���7&��I���7H��$dH3%(�H��([]A\A]A^A_ÐH�<$L��L��E1���%�����B�D<
I�����L$���B�L<����0A���A�B�D<I�GB�T<I���L�D$���P������������0��A�B�T<�S�������<��A�	��L$H�B�T<A�B�D<I�GI���L�D$������D����B L�5��D$`A��D$��H�<$L��L��E1��$������ ��H�=��1��e��D��AWAVAUATUSH��xH�t$PH�|$X��Q��H�|$X�D$4�Q'��H�|$P�G'��H�T$XH��� ��H��L�z��H�T$PM�,H��� ��H�JH��H�L$`��D�T$4H�H�D$ H�D$E��u�(��H�D$ �L�t$`L9t$��I�FH�D$`A�>����<��L�t$`��u����D$E1��D$��#�E�&D��A��<tP��A��>tDA��_���t$H�=0��!��H����I��A�L�t$`L�t$`E�&D��A��<u��t$H�=��D�D$(�� ��D�D$(H���JD�L$E����I�FH�D$`A��D$�DA��!�s���L9t$�@��*��I��M��A�L�t$`M)��C�<S��H����Hc�H�>��DE1����D$��t	1�>@��L��L)�H�H��L9���H�H�H�L$E����D�t$4L��H)�E��H�L$8@��H����!�@�|$H������L��L�|$(Lc��H�l$D�|$4�������E��D�A���DH��L��e1��H�E�H��~6H��1�E��L��H���D;��E��u�H�|$ H��L���I��H�E�H���H�t$�L�|$(H��HH�I��I��M��M�|$�����H�D$ H��� ��H����H�t$8H�|$ H�t0���fU��L�t$`L9t$�f���H�D$ H��x[]A\A]A^A_�f�E1������fDE1����n���E��u�1��A��R���f.��C�E1�A�<S����H�D$PH�PH� tH�P��H�=��1��e�����H�T$L9������A�>
�����I�F�f�H���x�
�����I��H�D$`H9�u��u���@��D�D$E1���<����@D�D$A�ą�A���l����C
��H�|$`H�t$`�
�I���v6��I��H��xE�D�D$E���1���H�n	:H�5��H�81�����DI�D$�H�D$�D$H�D$8M�����������f.�I����H�D$ H�@�+���H�JH�BH�L$`�r���L�zH�B�@�����A�����L��M���g���M9��^���A�I����x�L���A��H)��8���T$4����H���.��I��L���L��D�t$4H�-{�H��������?L)�L9�LN��M�����M9�����I�?@����@��@��@�� �=���L��L)�H9��GH��:H�5x�H�81��n��fDL��L)�H���x���M�7�I��M����L$4����H���-��L�t$`�J���E1�������L��H�D$`L)�H���x�*tL9�IO�H��1����L�HH� tL�H1�H��~$���uA�/I�������0A�H��H9�u܋T$4����H���-��L�t$`���L��H�T$XL��L)�L9�LN�L�������L$4����H����,��M�L�t$`�u���L��L��L)�L9�IO�I�,7I9��0A�?u�%��;�wH��H9�u�H�T$XL��D�L$����t$4D�L$����H���c,��D�L$L9�L�t$`H��E��I��LD����H�D$XH� ��H��L��H)�L9���M)�L�t$`���L��H�T$X1�L)�H������I��H� �H�pM9�r�fD�I��H��M9�vtA�I�W<=u�I9�tfI�OA�GL9�s<
��<
��H�=�:���8���t3H��I9�t+A�O�<�����t��I��H��	��F�M9�w�L��L��L)�I�$ ��L��I+t$I��L���6��H��H��L�����1�L���D8��I�$�t$4H%���H
 I�$���"L����*��L�t$`���L��L)�L9������H��:H�5y�H�81��;��L��L)�H��L9��mE���RI)�H�X�M��L�d$HD�d$4��E����!шL$(H����H�\$L��L�|$8I�0I��L�l$@D�|$4L�l$ �fDH��H���,*��H���ti�Ef�H���D$�L$�D$h�Z�fH~�L9���
fH~�H��<��������
L��H����
E��u�H��L��H���B��H���u�L�|$8H�D$L�l$@M�|��|$(�>���H�D$ H��� ��
H����H�t$H���L��L)�H��L9��gH�p�H�t$E����\$4L��H)ƅ�H�t$H��H����!ʈT$(H���M�@L��L)�H��L9���H�p�H�t$E����D�\$4L��H)�E��H�t$H��H����!ʈT$(H���}�*�����A����L��H�D$`L)�Hۀx�*tL9�IO�H��1��&��L�PH� tL�P1�L�
l�H���G�������uA�/I������A�	A�H��H9�u֋T$4������H�|$ H����@��L�t$`���L��L)�H��L9��}H�p�H�t$E����D�L$4L��H)�E��H�t$H��H����!ʈT$(H���a�%���fDE���7���1�����L��H�D$`L)�H���x�*tL9�IO�H��1����L�HH� tL�H1�H���@���@��uA�/I�������0A�H��H9�u�����L��L)�L9�LN�K�T'�L��I9�w"��uH�����uH��J�4 H)�I9�v�H�T$XL����|$4������H�|$ H���?�����H�D$XH��� �8H����I9���H��N�< L�t$`�J�L��H�T$XL)�H�@H��H�pHI�1�H����H�H�D$H�x�� t	H�D$H�xM9���A�E1���H߀�?��D�� I�O��?J�4�� ��H����H9�~	H��H��L)�L�\$hH���|fDH��I��LN�I9���D�1�E�P�A��@�8D�E1�A�h�@��@��E1��T$hD��D�T$iD�D$jE��t1�A�Ѓ�G�F�9�r�L)�L�H���I9��!I��H�\$H���Q0��D�D$4E����H�t$H�|$ �>��L�t$`���E1����0�L��H�D$`L)�Hۀx�*tL9�IO�H��1����L�PH� tL�PE1�L�
��H��)����fD����Hc�A�C�I��L9������A��u�A�/I�������L��L)�H��L9��{E���I)�D�T$4H�X�M��L�d$H��E����!шL$(H������H�\$L��L�|$8I�0I��L�l$@D�|$4L�l$ �H���0$��H��H����e����Ef�H��ȉD$�ZD$fH~�L9��fH~�H��<��������
L��H����
E��u�H��L���<���L��L)�H��L9��
H�p�H�t$E����l$4L��H)ƅ�H�t$@��H����!ʈT$H����	�
@E1�����Q��A��<�L��\$4H�l$ L)�H��L9�LN���H���#��I��M�����L��L)�H�����M�7�I��M������u�H���;���L��H�T$XL)�H�@H�pH��	HI�1�H�����H�8H��H�p�� tH�p�=4�:H�
��:��
M���
M9���fDA�D�A���u-M9�w���M9���I��A�D�A���t�M9���A�GI�WD�A���u*I9�w�DI9��H���D�A���t�I9��.L�z�R�<H�Ѓ����M9�w*�f�I��A�D�H��A�����M9��|<=u�A���tA�����
f�H�;�� H�CH��tH�CH��H)��?,���|$4����H�|$ H���:��L�t$`���@E1�1��k���fDA�� H�iA��?M��I��I��D	�E��I9���D�qE�f�A��@��A�n L�a��?I��H��I��E	�A��M9���D�qE�~�A��@�sE�F H��A��?A	����A�P H����I9������E1����@H�T$H�RH9��Q����U���f��<
t<
t
H��I9������<
��I��<
t&�P߀�?�����H�L$I��H�����f.�I��M9�������A��A��M9��
<=�
A�WM�WH������usM9�w,�f.�I��A�H������uKM9���<=u��f.�I��H�|?E��t�}��I���$�@H��H�|$ �#8����M9��K<=�CD��A��H��M�z��A��A	�D��A����D�F�D	�A	�D�N��V�M9���������fDA�
�b�H��f.�L�z���@����L����L)�H9����A�GH�r�M�O��������:I�M���"DI��A�G�������H����?H	�L9�u�H;|��kH9���������H�����H�5��:H�|$X��+��H�������H��� ��H��H�P��H�
H9�w�fDH��H9���H�2@��u�H�����t�H��σ���uԀ� H�NtH�NL9�u�H9�������	@H�|$ H���[6����fDM�������L��H�;I�ׁ� ���@H�QI9���
�AH�������H9��[����[	@@���������M��A��M���	fDM��A�����
A�����
D��B����	�A����	�D��A��H����M��D	؈F�H�;�� �A���H�����L�t$`�K�H�5�:H�|$X�U*��H��H������H�O�9H�5@�H�81����H�P H�@H���M���@����@��������#�I�D$��D$(H�D$H��H�D$HM���������S���'�fDfH~�H��H��H����H�D$ H�@�N�H�pM9����L��1���DH�|$ H��D�L$�f4��D�L$�>�H�@�f�I�D$�H�D$�D$(H�D$HM����L�t$L��L�|$8H�0L�l$@L�|$ I��M��D�t$4�DH���0��I�E�M��~GI��H�H��H�H9�t]H��H��<������tcL��H��uCE��u�H��L���3��I�E�M���f�H�t$�L�|$8L�l$@H��HI�M�|���H�T$�D$����fDH��H��H��H���L;`��H�@���I�D$�H�D$�D$(H�D$HM�����L�t$L��L�|$8H�0L�l$@L�|$ I��M��D�t$4�fDH�����I�E�M���+���I��H�H��H�T$hH9�t/H��H��<������t5L��H��uE��u�H��L���2���H�T$�D$�����fDH��H��H��H����I�D$�H�D$�D$H�D$@M����L�t$L��L�|$(H�0L�l$8L�|$ I��M��D�t$4�f�H���8��I�E�M��~RI��fnH���Z�fH~�H9���fH~�H��<������t~L��H��unE��u�H��L���1��I�E�M���H�t$�L�|$(L�l$8H��HI�M�|��|$�R�H�D$ H��� �H�D$ H�@H�t$@��fD����닐fH~�H��H��H���t���M9����A�I�W�I9��.����%A�WM�G�����M9��A�@��=�M�O�@F�A�����A���H��A����D	؈F�������A	�	ˆV�D�F�M9��E���A�I�R�I9��������A�WI���M9��s����jA�I��@��=�`�<9A��M9��G����>M��I��E�G�M9��?���A��=�5����������	�H�N����	�A���F��H�;H��M�ρ� ���I�D$�H�D$�D$(H�D$HM�����L�t$L��L�|$8H�0L�l$@L�|$ I��M��D�t$4�@H�����I�E�M�������I��H�H��H9�t4H��H��<������t:L��H��uE��u�H��L���/����H�T$�D$�����fDH��H��H��H���I�D$��D$(H�D$H��H�D$HM�������fD�C����fDfH~�H��H��H����H�|$ L���.��L�t$`�`�I�D$L��I��H)��t������H�������I����H�X��D$(H�D$HH�\$H�������I������I�����I���R���H�X��D$(H�D$HH�\$H��������DH��L)���M��I�OI9���A�=�����H�N��	������H�;H��M�ǁ� �V�H�|$ H���-��L�t$`�[�H��H��@��H��H9�u�1��A�H�����H��H��@u����H��� ��H��H�Z��L�I9�w��fDH��I9���H�+@��u�H�����t�H�E������u�H��H�M�� tH�ML9�u�H����H����I9��ZI9���H���9H�5��H�81��I�M��B��A��H��D	ȈF�H�;�� �+�H�k�9H�5ʬH�81��
�1���1������H�BH�Z H������H�-�9H�5��H�81����D��H�
z�H��9H�5��H�81���D��H�
h���H���9H�5��H�81���H��9H�5��H�81��n�H���9H�5D�H�81��V�M�����H���9H�5L�H�81��6�A����/���I��A�����������H����f�L��L��L�D$H�T$�[0��H�T$H��H��H�����L�D$�t���H�E�b���H�;M�ׁ� ���L���|�H��9H�5ΫH�81���H���Y�ff.����U1�H��SH��H�=�H���1��H��H��H��[]������S1�H��H�=���1��H�53�:H���{���[H��HD��ff.����H����H�����H������H������H������H������MH��H�����H��H����?�Ȁ�GH��H����?�Ȁ�GH��H����?�Ȁ�GH���?H���΀��?@�w�Ȁ�G��D@�7���H��H�����H���?H���΀��?@�w�Ȁ�G��@H���?H���΀��@�w���@H��H�����H��H����?�Ȁ�GH���?H���΀��?@�w�Ȁ�G��@H��H�����H��H����?�Ȁ�GH��H����?�Ȁ�GH���?H���΀��?@�w�Ȁ�G��PH��9H�5�H�81��k�ff.���AWAVAUI��ATUSH��H�t$HH�|$HdH�%(H�D$x1��)��H�T$HH��� ��H�JH��H�L$X��H�1�H�D$ ���H�D$I�E�� ��H����I��L�|$X�D$8L��1�H�D$@M��I��@L9l$ �>H�t$HH��� ��H��H�N��H�H9D$ �oI�EH�D$XA�E��A�ĉD$<���L�l$X�Ņ�u�A���D$�D$0�D$A��#��
L��E��A��H��H��A�E�ljD$(<<tP��<>tF<_���t$H�=ǯ���H���)I���D$0L�l$XL�l$XA�E�ljD$(<<u��t$H�=y��l���H���C�T$���I�EH�D$XA�E�D$�<!�~���H��H��D��E��I��@��*��A��H�=��ƉD$�	���E1�H����
I�UH�T$XA��U�*�A��mtA��u�DD$8�D$8A�D$�<S��
H�Ȫ��Hc�H�>��A��D$��t	1�>@��M����M�n�M������Mc�H�l$p�M)ƃ���D$I�GH�D$�Tf�H�D$H��D�L$E1�L��H�|�H��H�|$`��'��H�|$L��H������M9��I��I����nI� u�I�G 뤽A��?���A��4����|$0E�1�A��A������M��A��H�l$0��H�\$L�t$t&L�D$D�d$hL�d$hH�|$�L���2���L�D$H�-&�M��L�l$I��	~%��
H��L��I��
���I��	�M��H�|$L��H�5�����L�l$XL9l$ ����H�|$@��H�D$��%�D$8���b���pH�L$xdH3%(H�D$��H�Ĉ[]A\A]A^A_�A�����M����I�n�M���M�oM)�L�d$hL�l$L�l$�\@H�D$H��H�|�H�|$`����ƒ�����
�@�L��L���D$h���I9��NH��H�����I� u�I�G �I�GM�$H�D$M���1�1�I�n�����M���bI� �mH�D$H��H�|�H�|$`����1�H��H�D$`�	���I��H��H��u�A�1��<'��H�I��� �H��H�p��H�|$`A�A���%�����u���^I��� ��I�vI����J�.���H��H��H)�H��w�I��� �aI�vI�VH�|$I�����I9����L�l$X�~���M��~�M�f�M���DM)�H�l$pL�l$�4DH�PH�H�T$pH��L���T���M9�t�I��I����I�GI� uI�G H��H�|�H�|$`�}���ƒ���u�H��1�H9�t�H���H��H��?H)�H	�H��H��w���M���7���I�n�M����M�oM)�L�d$hL�l$L�l$�^f�H�D$H��H�|�H�|$`����ƒ����bf��Z@�L��L���D$h�k���I9�����H��H����I� u�I�G �I�F�H�D$M����I�GI� uI�G H��H�KL�5d�1�H�L$H�D$`H���	L�l$XA�D$�A�}�*�`
<'�wH�5����Hc�H�>��H�D$H�H�� ��H�L$L��H�IH)�H����L)�I��H����L�l$X�l���H�D$H�pI9���H�|$L)��e��L�l$X�C���I�F�H�D$M���	I�GI� uI�G H��H�|$`L�D$(H�kH�D$`���H�D$`L�D$(H��� ��L�hL�pM����A��m��H�|$L��L��mH���c��L�l$XL�t$���I�P�M������I�n�M���j
I�M�oH�L$`L)�L�l$L�d$hL�rL�l$@H�L$�m�H�D$H��H�D�H�D$`H���KH�D$hM���[H�t$`L���$��H�|$�L���2���I�.H���gH��H�����I��� u�I�G �I�n�M����I�GI� uI�G H�<�L�D$L�cI��L���c�L�D$�HH�|$H��H�D$`I��LN�L������L�l$X���M�������I�n�M���LM)�L�d$hL�l$�?Df���ZPf~�ʉT$hL��L���U���I9������H��H�����I�GI� uI�G H��H�|�H�|$`�z���ƒ���u�H��1�H9�t�H���f��H��H��?H)�H	�H��H�D$�Zd$f~���b���M����I�I�W�� uI�W H��L�D$H�T$`H���BI�n�1����M�����I�n�M���9M)�L�d$hL�l$�Bf.�f���ZHf~ʉT$hL��L���?���I9������H��H�����
I�GI� uI�G H��H�|�H�|$`�d
���ƒ���u�H��1�H9�t�H���f��H��H��?H)�H	�H��H�D$�Z\$f~��d���H�D$H�H�� H������H����H������M�����M�f�M���8
M)�H�l$pL�l$�9f�H�PH�T$pH��L���G�M9������I��I�����	I�GI� uI�G H��H�|�H�|$`�l���ƒ���u�H��1�H9�t�H���H��H��?H)�H	�H��H���s����|$<�������R�D$iD�d$hL�d$hH�T$HL��H�=��1��	�L�l$X�w��A��M�DD$8�D$8��H�NH�F�r�I�vH�������I�vI���V������DH�PH�p���I�G ����H�|$�>��H�|$`H�D$h�O��M����������I�����f�@�����A��A��L$�����|��H�|$XH�t$X�
�I�����I��A�E�����H���9H�5ĚH�81������L$8���E��D$8M�������I�n�M���M)�L�d$pL�l$�>�H����	L���?�L��L��Hc���I9��h���H��H�����I�GI� uI�G H��H�|�H�|$`����H��H�D$`H��u�H�����H���f.�H�T$ I9����A�}
��I�E��H���x�
�j�I��H�D$XH9�u��X�H��f�H9��L���H�¹H��H��?H)�H	�H��H�D$�~D$�"����H��f�H9������H�¹f�H��H��?H)�H	�H��H�D$�ZD$�b����t$H�="�� �A�H��MD���L�l$@I��L�l$X��M�u�f�H�JH�BH�L$X�)�H��������H��Ѓ����H�D$H����H��������H����������%H�L$H	�H���DH�|$��q���|�H��L��H����H)�H���f���I�����H�|$`L�D$(��H�T$`L�D$(H��� ��L�rH�jH�L$������H�����������H�1������A�I��������������H�����������ƒ����u���%H�L$H	�H��`���DH�|$`���H�T$`L�D$H��� �3H�RI9���I�I�n�1��v���H��L�h��I��M�������-I���M���hL�|$(D�d$H�l$H�l$f.�L9�M��L��A�LN�D��H��L��M)�M��9��M���H�l$L�|$(L�l$XL�t$H���p�<'�H�5ɜ��Hc�H�>��L�d$h�L$H���1��L���L�����H�\$�H���
��H�H�D$H%���H
H��y�H�t$@H�|$�����B�H����H������H��L�rH����H������I��?~�?A��u����H�VUUUUUUUL��I��?H��H��L)�H�@���I��L9��I�@H�UI��I��?I�H��H��?I�H�H�I)�H��� E1�H�D$hH�]H�l$0A�D��H�D$(M���#��	����	�A��t5����I��L9����C�|.��\���C�D.�u����	�A��u�H�t$(H�|$�D$h1�����I��L9���I)�I�@I��I��?I�I�H���jL�|$(L�e1�H�\$hA�M���I���M9�t5�€ʀC�D.�E�A��u�H�|$H��I���D$h��k�1�M9�u�M��L�|$(H�\$L�t$@������L�D$�у���D$h���I��L9��I�@H�UI��I��?I�H��H��?I�H�H�I)�H����E1�H�D$hH�]H�l$0A�D��H�D$(M���&C�D.���	��	�A��t2����I��I9��@�C�|.������u�C�D.���	�A��u�H�t$(H�|$�D$h1��s��I��L9��SI)�I�@I��I��?I�I�H����L�|$(L�e1�H�\$hA�M���I���M9�t2C�T.���	�A��u�H�|$H��I���D$h���1�M9�u�M��L�|$(H�\$L�t$@�������L�D$�у������I9���L��H�|$H��L����L�l$XA�}�*u0�H�5��A��ZuH�|$�}�L�l$XH�\$L�t$�Q�H�\$L�t$�B��H���������fDH�)�9H�5r�H�81�����L��E1��U���L��E1����L��E1����L��E1����H�|$H��L��L�D$(���L�D$(I)�M��I��	~2A��AH���H�ĘHE�H�|$�
H��I��
��I��	�A��AH�5��H���L��HE����L�l$XH��L�t$�\�H���9H�5��H�81����1��m���1���E1����H�/�9L��H�5͓H�81�����H�
��H�
�9�T$(H�5��H�81������H���9H�5H�H�81����H�	�9H�5�H�81��p��H�
!��H���9H�5y�H�81��O���H�=�1����H���9H�5L�H�81��"��H���9H�5��H�81��
��f.���H��H���9�H���H�5��H�8����H��9�H�C��H�5��H�8�����
H���:H���H��~1���|�*tIH��H9�}���*t��-t�H��H9�|�1��fDH�PH9�}�|-t H����f.��|�-u�H�D��|�-u�H�D�H��tsSH�H��1�H������(��6wV��H�pH��H��u:��t1���t/H�_�H��t!fDH�{�����tH�[ H��u�[���f�H��tKH�1�H������9��-w<��H��H�� H��u H�8H����������f.���H�F H�FH�@H�@ H�H��tLH�H H��H��tH�QH�NHHH�r H�V H��tH�@ H�RH�P1���H�@ H�p1��DH�21��f.���H��t7HcGXH���H H��t#�H�JH��(H��tHcIH��H�RH��u�Ð1��ff.�f�1��������9��t	1��fDUSH��H���H���H��H9�rH���[]��H��H9�t��;�?�����u�H��1�[]�f�USH��H��H�N H�GH�H�Op�� ugH�QH��H�����H�HSH�kH������H������H�H�����H���3�H�����H��H��[]���DH�QH�AH�����H���H���H�BH9���S�
��@����{�1���$t[�fD�Z�߃�-���C߃�]w/�S�مҍBI���������H�)�H�
z�9����rj@���q����u]��_tX��xT���]���uI1�[�DH����YLJ�[���Z��@u�H�BH9�v��Z���[[�f�1��ff.�f�D�GT�WXH�G`A�0�OT9�|JUSH��@�9���WXH����H��Hc��2��D�CTH�C`H��A)�[]Mc�L��f.�Mc�L��f�HcGTH�W`�H�OT@�4�wX9wT}�D�SH����wXH�`Hc�����H�C`[�S���H���GT�G\H�G`H��t3�{X
[���CX<��<H���w��H�C`[Ð�GX<��<����H�C`�@AUI��ATU��H��S��H��H������L�c0L������H��H�ډ�[H��]L��A\A]��ff.�@AUM��ATA��USH��H�����A��H��u�{tH��H��[]A\A]�H���`���u�H������=t����L9�u����H9�t����H��H��������AVAUATUH��H��SH��H�� ���������A���t���xH����H��������}H���H��H��tTH�E�� t[I��I��A��M��~;1�L�u�L��H�<�D��H���	��I9�tH�E�� u�H�E ��f�H�� []A\A]A^�L�m�H�sH�=z�1����H�D$H���9H�H�$�p����H���H�=8H�D$1��`���H�|$H�������H���v��H���.��H��H�=��1��-���H�D$�fD��UH��SH��H�������uH��[]�H��H��H��[]����ff.�@L���I��H�=j�L�������u�I�1H��L��H���1�H���
�ff.�f�AUATI��USH��H�?H��u�~f�H��H��tmH�_H�o �{��H�I�,$H�����P���w�1҃�XH�C��H�pH�CH�x�X��H�{I���<��H�{�3��H�L�kH��怀�9H�H��u�H��[]A\A]�UH���SH���}���H��H�H�C�=�H�kH�H��H��[]�ff.��ATA��UH���(S�,�1�H��H���H�C���H�E��u?1��x���H�C�o��H�����ug1�H�CH�E(H�C H���[H�E(]A\�@��6���H�C�EH��u�H����H�=�������t����H�����t�1�����fD��ATI��USH�`H��t�W�I��$�H��t,f.�H�{H��t�2�H�kH���&�H��H��u�[L��]A\��f�USH��H��H�����tDH��H�Hcw;wt�V�SH�,�H��[]�fD���wHc�H���C��HcsH���H��1�H�=������f�ATI��U��SH��H�������� trH����H���
��=���nA��$�H���l��I��$�A��$�A��L�HH�
^�1�I��$�����H��[]A\�fDH�������H9�u�H�����=t���H��H������fD���H��H�����H��[]A\��H�t$H�T$���'��H�3H������t89t$tH���*��=�"����t$H�����H��[]A\�f.�H��������@UH��SH��H�����H��臕�H��uH����[]�H���h�����H���H�
�����H���I��1��
��H��1҉�[]ÐAUATI��UH��S��H��������L��H��I�����������L��H����q�H��H��tH��H��[]A\A]�f.������H������L��I�����I��t5L������H�5TyH�����L��H���q������H���M��1����H���H�
������_������ATU��SH��u:1�1ҿ9L�c���Hc��H�H����H	�H�I�$��[]A\���=���H���@UH��H��S�Ӻ:H����uH����H��H��[]�u���D�H����
���<��ff.��UH��SH��H��H���L��1�H��gH�����Hc��H�H����H	�H�H��[]�f�H����ATI��UH��SH�H��H������GtK��K�B��F��1�H��H�޿F�w���Ic�$�H�H����H	�H�[]A\��H�H������(u�H�v1ɺ�(�,���Ic�$�H�H����H	�H�H H�H��H��tH�QH�MHHH�j H�U H���H�JH�P H�JH�CH��䀀�FH�H���h���@H�H������(�$���H�VH�H������(�
���H�J H��H��tH�AH�MHJH�h H�E H����H�HH�B H�HH�SH�����DH�vH��t���H�CH��[]A\�fD1ɺH��(����Ic�$�H�H����H	�H�H�CH�����DH���@H�P H�j���H�B H�h�m���ff.�AUI��ATI��USH��H�H����H���H���������������B~X������ukH�CH�S H���yL�cH����L��L��L�c �}���H�[ ��t-H��t(H��H��fD��uH�CL�`H�X��u�H���[���H��[]A\A]�@���~%��,����\u�I�$H��[]A\A]�@��u�H�{ H�CtL�cH���k���@H�SH���L�cH���L��L�����L�cH�[�2���H�CH�SH����L�cH��u�H�Å����������fDH�CH�S H������H������L�c H����DH�[I�$��������H�[I�$�����������H��u����fDH����L�cH���p���1�1�1��\���Ic��H�H����H	�H�I�$���H���2���H�������L�cH�������SH��H��H����H�H��H������:����;td1ɺ�(�#�����fHc��H�H����H	�H��H����Hc��H�H����H	�H�H��[�f���H���fH�H��[�fDH�~H�t$�J���H�����H�t$H�FH��䀀�9H�H��H��[�@1�1Ҿ��9�v���ff.�f�AU�	ATI��USH��H�=لH��H�-��9H�M�?��L9�w9I)�I��N�lcL�%�_��H�}L��1�H���V��L9�u�H�uH���
[]A\A]���f�UI��H�
S�H��AWAVAUI��ATSH��(H������dH�%(H�E�1����H����s��M���I���I9��A�>
I����sM���fDA�|$�
t
I��I�D$�H9�s�I9���L���
D�;
t	H��H9�r�H��L)�H���"L�=DqM��H��F~-L��L)�H���PH��L�!qL)�H���H��L)�H�AH��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�t$H��L��L�E�I���H�M�L���	�H�M�L�E�1�H��I���M��1�I�1�H�
wN�APM���%��I���XL��YL)�L9�v��8	t� H��H9�u�Hcƒ�H�=�wL��Hc�A�^1�A�L���8��1�H�}�dH3<%(��H�e�[A\A]A^A_]�I�}p���H��I�VL��H���	�L�|sH������I�}pL�=is����I�V�L��H��H�����M���I������I���M�fI9��m���A�>
�����^���fDL��L��L)��������ff.�f�UH��H���SH��H��H������H�UH��tH��H��[]�f�H��H�5v�����H��1�[]��AUI��ATE1�UH�-�SH��H��H����H�H������,w#HcD�H�>��H��H�C H��u�H�[H��u�H��A�[D��]A\A]��H�[A���@H�[��f.�E����H��E1�[D��]A\A]�fDH�sH�C H����H��uH���U���f�H�FH��tH��H�H������t�H�sL���	�����t�H�[ �L���@���H���1�H�U�A�����H��D��[]A\A]�f�L��H�5:����H��D��[]A\A]�H������AUI��ATUH��SH��H��H���"H�H��������H�VH��u��H�BH��tH��H�H������t�I��H��H���'���M����I�EH��������I�uH��u�@H�FH��tH��H�H������t�I��H������L��1ɺ�(�~�Hc��L��#H�H����H	�H��H�H���Q�Hc��H�H����H	�H�H��[]A\A]�I��H���/���L���1�E1��x���1�E1������AVAUA��ATI��UH��SH����H�H��������H�ZH��u��DH�CH��tH��H�H������t�H��H������H�H��H����D9�tHL��D��1��{�Hc��H��H�H��%�H	�H�H��[]A\A]A^�1����1���I���H�H����D9�uI��I�vH��u�1�L��1�D����Hc��H�H����H	�H�I�FH��[]A\A]A^�H���7���ff.��ATUH��SH��H���H�H������uhH�NH��u�]H�AH��tH��H�H������t�I��H��H�����H��1�L��#�e�Hc��H�H����H	�H�[]A\�I��H���1�E1�����AWAVAUATUSH��H��� u~H��L�~��H���H��tH9�trI�H)�I���
�E1�I��I��H��L���
���L��L��H�PL)�H��HE�H�H��I���H��[]A\A]A^A_����L�~H�^�fDH���[]A\A]A^A_�@��SH��H���H�����H�{h�
�H�{p��H�{x��H������H������H�����H�����H�;[��ff.�@ATA��UH��H��SH���{��H���H� u+H��A��H���[H��D���H�=�v]A\�"�f�H�[��f.�AUI��ATA��UH��H�5;t9SH��(H�|$H�|$���L��H��H�*���H���Hǃ�����Hǃ�H�ChHǃ�Hǃ��o
D��H��H�߉CH����H�T$H�T$H�T$H��([]A\A]�ff.���H���4���@D�GE��~+H�H;2t3H��1���H��H9r�t�ȍHD9�u�1��f���ø�fDHc�H��s9SH��H�Ё��&�H�4z1����H�޿)[���D�H�z1����H�޿)[����ff.�@���u�fDUH��H��y1�S��H��H�-@�9H�}�7���H�}���L���H�uH���
[]�x���H�H�H����H�H��H	�H��AVI��AUM��ATI��UH��S1�H���tH��H����HD�L����H��L���H���C�Ic�$�H��H�H����H	�H��H�L����H�H��Ic�$���H��H	�H�H��vH��H���6���[H��]A\A]A^�f.�UH��H��SH��H��H���thH����HD�H��tZH��H��H�¿"��Hc��H��H�H��%�H	�H�H��vH��H�����H��H��[]�f�1�H��u�1�1�1���9�Hc��H��H�H��%�H	�H�H��H��[]�H������H�H��H������u:H�GH��u�/f.�H�PH��tH��H�H��H������t�ɀH��H����fDI��H�?I��H�����t�����¸��t�DI�y1�H�����t�L�������������UH��SH��H��H��tH�H������Kt81�1�H�޿-�/�Hc��H�H����H	�H�H��[]�fD���H���H�
��1����H��������ff.�f�H��H�Ѓ���4t9��5u,���D�1�H�
�v���H���H�����������L�1�H�
jv���H���H����L���ff.��H��tH��tH�H������Kt�fD���H���H�
�1����H�������AUI��ATI��UH��SH��H��E��ujI�$H�+1�H)�x<t$�	��
t��
uWH��tQ�|+
u f.�H��H��L��袲��������H��[]A\A]���C����t�H���;@��u�댐H��1�[]A\A]�UH��SH��H��H��茾��H��H)ƸH9�v(@�;	u�P��H����H����H9�u�H��[]�ff.�f�UH��SH��H��H���,���H��H)�H9�w�/�H��H9�t�< t�<	t�H���[]��H��1�[]���>"tH��tnSH���]���H)�[��H��1��Q��'t�~0��,tЀ�\uF�y\H�Qu�H��H��t��H�������"uH��t�Ð��H���`���H���f.�AWHc�AVAUI��ATUH�-m9SH��H��XL�d�H�|$1�H�t$L���9���H�D$�����I�UI��H��dL�d$ �P=������¹���څ�Iѹ�+)�A�́��DO�D9���Hc�D�$A�L�5���f�H��A��A9�~cIc�A�4F9�u�t�H�=�f�<G��t�A��teH�t�A�@1��D$J�t� �t���L�I����H��LcD$A��A9��fDA����H�
�D��L�|$Hc�H�>��D�A�H��rH�l$H���H�D$H9(��H�D$1�H�(��
H��H���ЈE��tA�S<%u�su�D9�}�H�t� H��D�aH��D�D$���Ic�D�D$H���E��u�H��X1�[]A\A]A^A_�D�E1�H�4r�V���H��X�[]A\A]A^A_��H�D-H9�s&H�D$H�����H��X�[]A\A]A^A_�fDH�L$H�H��X�[]A\A]A^A_ø)H��������5H�ׁ�����/H�������;H������H�wq���1�D�D$1�聺��L�|$D�D$�|���f�AWAVAUATUSH��H�H�H�@H��H��H�������D�bE1�D��H��������I���{�Hc����Ic�H�xH��I�EH��H�H�0�Y��E�T$E��~ZI�EA�W�L�(H�@H�M��I��L�HM�$��@I��L�M��tL��L�������uIc�A��L�\�L��M9�u�E�b�D9�@Hc�H�]H��H��[]A\A]A^A_��E1�H��tD�xC�'�*���1���@H��Ic�D��譸��H����AUATA��USH��H��H���H���H���H�x�費����~N��D��H���a���u�H���Lc�J�D-H�����tH������L��H��H�����H��D��[]A\A]�H������1�H�
�o���H���A�����L�B�-��ff.���ATI��UH��S�H��<Tt
~F<ftF<tuH�5�<H��迩����tk���I��L��1�H���H�Go[]A\����fD<Fu�H�5�<H���}�����u�1��������	Ј��[]A\�f����f���AUATI��USH��H��H��~.�|�-H�j�L�j�t/A�|�-L��tDH��H��H��[]A\A]�A�u���fDJ�<.�H�5�n������u���DM�l��H�5}nL�������t��H�5nnL�������u�H��u��H�5KnL���y����H��H���^����S����xuH��H��������uH��[�H�Y�9H�5nH�81�����USH��H��H�wh���H��H��tH�����H��u2H��H��uH��H��[]�@����H��H��[]�@H���H������H��H����H��H��t��@USH��H��H���H���H9�tlH�JH������<
tH����[]�fDH;��s
�z
������
;��~ˉ��H���H�}1��_���DH�GxH�GxH��u%H���H�h�����H���������~Hǃ�H����������� u6H�PH��H�����H�H�CpH����
���������H�PH�HH������H���
H������H���H�C�����H���������������f�U��S��H���H��L�L�OL�_@I������tFI�����tH��L���C��uoH��L���4��u8M�RM�IM��t#@��tM�[I������u�1�I��tGH����[]�E1���M��t�P�I�Hc�H�,�?H����[]�fDH�����[]�H��H��[]�^
@ATI��UH��SH������H�����tcM��t^I�4$H��H������#��=wHH�o�Hc�H�>��f�H�
�jf�H��D�#H�}1��3H�{���D�#[]A\�DH�
�j���H�
�7��H�
[7��H�
7��H�
|j��H�
bj�|���@H�
�2�l���@H�
[Z�\���@H�
UF�L���@H�
;7�<���@I�|$H�G�H��h�C���H�b�Hc�H�>��@�˥��H��H������I�4$���fDATUH��SH��豦��H�����tH��tH�H������t[]A\��H�{ t�L���H���H�SH��L���1���H�[ H�{ u�[]A\ÐH���'��H��1�H��tH� tH�R1��:_��H���H����f.�USH��H��H�/H�}���H�EH�+H�}����H�EH�+H�}H��t����H�EH�+H�EH��[]�@AVAUATI��UH��� S�8��L��H��L� ���L���L����CL��L���m�L��L��L��C��CH��H�CH��[]A\A]A^�ff.�SH��H�?H��t诸��H��[馸��fDAWI��AVAUI���HATUSH��H��8����H�$H�L$�D$�G�1ҿA1�H��I��H�D$(���H��H�D$Hc��H�H��H��H�L$ ��H	�H�M�~(M�n0M���#1����1�I�����H���DH������M�m M��t I�EH�x�H�pu�L�����M�m M��u�H����H�H�vHcAH��H��H������HD�H��H��tHc~H�H��H��H�D$ H�$H=��aM��1�I��tA�|$I��1�I���21�H�|$����9��1)�E1��Q��I�$Ic�A��H�4�H���H�8���1�M��tA�D$A9�|�E1��"@H�EIc�A��H�4�H���H�8����1�M��t�EA9�|�M��tL�����M��tH����H���H�t$ H�8���H�<$�RH�|$�&H�t$ 1�1ҿ/�C��Hc��H�H����H	�H�L$(H�H�A8H�$H�H�D$���H�D$H��8[]A\A]A^A_�f.��u���������������������Q����H�$H��t�H���L�t$H�8M�����G������H�ΉG���H���L��H�8���H�4$1�1ҿ/�b��Hc��H�H����H	�H�L$(H�H�A8�"���f.�H���H�t$H�8�<������H���H�4$H�8���H�|$�������H�4$����f���H�=�d1��<���ff.��H����AWAVAUI��ATUSH��L�>H�*�B;F��D�`�1�L�5�t���]�H��I�<�H��tGH�|�x?H��
t6H���v@��u
�����uI�<������t�I�}L��H��1��=���H�CL9�u�H��[]A\A]A^A_�D�H�=@t1��q����USH��H��H���H�PH�hH��t$H�pH�������H���H�xH�����uOH�8H�����t����H���H�xH�����t����H���H�P H��H�S(讳��H���H��[]�����H����f�USH��H��H���H�hH��t/H�pH��H����t���H���H�PH�RH�PH�����uXH�8H�WH�H�����t�p���H���H�xH�WH�PH�����tH��[]�I���f�H��[]�f�H���(���H����ff.�@ATUH��SL���H��I�$�f�����H���H�H��tH��H9�u�[]A\���L�g����L����fDUH��H��SH��H��H�H�x�E��H�H�xH��tHcuH��[]�*��f.�H��[]�f�AUATA�USH��H��t$H��I��H��H��H���F��H��t!H��H�����H��D��[]A\A]��A���H�����H��L�`�Ԣ��I���A���H�
�qL�@I���M��1�E1��G�H��1��=���H��1��3���H��D��[]A\A]�DSM�Q D�H��tSH�FHc�H9�ukH�v A�BI�2M��tGI�@Hc�H9�uOA�BI�@ I�BI�@I�BL��I�J I�R@D�[��A�BI�2M��u�A�B1�I�B�H���t���@H��H�OI��H�L�WH��t:L�II������u�Pf.�I�AH�����tDI��H�RM��tM�RM��u�1�H�����tH��L���i����E�H���L��I��@H��tbH�����uAI������tdL��L���-�����M��tG��tCI���H�H�,�?�H����H��L�����¸��t��L��H����R
���u���1��n���ff.�f�UH����H��SH��H��H����H�
4�Hc�H�>��f�H����4��1�1ҿ9H����;��Hc��H�H����H	�H�H��[]�f.�1�1�1��[��1�1�1��\�1�1�1��]�1�1�1��^�Hcw\1�1ҿ9H�t6�y���f�H������1�1ҿ:H���S���H������������H��Hc�H�>��@1�1�H��3�����1�1�H��2����H������1�H��0H������fD1�1�H��1����H���H�GH�����tH�xt1�H�����u|H���H���!�����tXH9��tz1�1�H��.�c������H���!��H������H�
]nH���I��1��\��1��D���1�H��1��%����H9��t<1�1�H��/���H���������H���H��mH��1��$����[���H��������H���H��mH��1������AVAUATUH��SH��H����I��H��L�kH�����H���ty1ɺ�(���Hc��L��H��I��H�H��%�H	�I����L��L��#H���^��Hc��H�H����H	�H�H�CH��[]A\A]A^�@H�KL�����1�H�ڿ H�����Hc��H�H����H	�H�[]A\A]A^��1�1�1����H�KL���<���1�H�ڿ!H�����Hc��H�H����H	�H�I����V���D������G����H���D�3���L�h �*����H���H����ATI��UH��SH��H����H�5z|Hc�H�>���H�5p[�D��1�[]A\�DH�5	l�,��[1�]A\�DH�5�Z���[1�]A\�DH�5�Z���[1�]A\�DH�5�Z����[1�]A\�DH�5�Z����[1�]A\�DH�5�Z���[1�]A\�DH����K�؃����=H��{Hc�H�>��@1��D1�L��H�޿�.��Hc��H�H����H	�H������U@��u�E<���GH�5cZH�����1�����H���x��L��H�޿H����1�L��H�޿�{���fDL���H��I�CL��H�������H�x�������uB1�H��L��������H���H���������H���H���H�����1�L��H�޿�����H�����H������H�
%jH���I��1�����1�����D�;�����uH���H���H�����1�L��H�޿�|���1�L��H�޿�j���1�L��H�޿�X���ff.�AVAUI��ATI��USH�6H��H��H������:m��9}p����M�uL��I�FH�H������,H�<H���H�H������ubH�CI�^ H�EH��[]A\A]A^�f.���[��wxH��1�H��H�
hXI��$�H�W��[H��]A\A]A^��1�H��1ɿ���Ic�$�H��H�H��H�[%�H	�H�H���h���fD1�1�L���_��Ic�$�H��H�H��H�m%�H	�H�EI��tWL��H��I���y������@�˓��H��������H�3H�
�WH��~1�I��$�H����������DI������AWAVAUI��ATUSH��1�H��(H���"H�CH��H��?H�H��K���H�D$I��H�D$H�D$�H��L��L�����H�$H����H�kH���L�{ M����I�G I��H�$H�EH������9u�L�uH�T$L��L��輏����t�H�D$H�MH�XgI���L�EH�0H��1�H�����H�D$I�WH�X H�CH��tH����H��L���A���H�CH�$H���K���H�5����H�T$L��蜟��L���d��H�t$1�1ҿ+���Ic��H�H����H	�H�H��([]A\A]A^A_��H�5����H�T$L���<���L�����H�t$H��tJH�V H��H��tH�BH�SHVH�X H�C H��tH�PH�F H�P�e���@H�F H�X�T���H���I����H�������ATI��USH��H��H��t^H�C H��H��tH�hH�C1ɺ�(���Ic�$�H�H����H	�H�H�E H�S H�BH��[]A\�f�1ɺ�(�?��Ic�$�H�H����H	�H���f�ATI��UH��SH����H�H��H������Gtc��KtF��(t11ɿG����Hc��H�H����H	�H�[]A\�fD[]A\����H�v���H�CH��[]A\�H�v1ɺ�(���Hc��H��H�H��H����H	�H�L�����H�CH��䀀�FH�H��[]A\�1ɺL��(�B���ff.��SH��H��tH�H������#t����wH�VH��[�D��gu�H�s ����H�C H��[�f�UH��1�SH��H��H���1�����1ɺ�;H�����Hc��H��H�H��H����H	�H�H��H��[]���f�ATI��UH��SH��H�6H��H������>t1H�
H��H������;�{��>����:��H��[]A\ÐH���1�1��`���1ɺ�;H�����Ic�$�L��H�H��H����H	�H�H������H�MH��H��H������;tM��>t)��:u�H�C H�@H�PH��tH�H������:��H��H��L�����H��[]A\�f�H�uH����H�C H�@H�PH��tH�H������:�n��1ҿ:��(H�M1��&��Ic�$�H�H����H	�H�H�S H�EH��H��tH�BH�UHSH�h H�E H���fH�PH�C H�PH��[]A\�f.�H�u��:��H������;�b����9�����:����H����H�CH��;H�3������;�������:����H�sH�UL���^���t*H������H��[]A\�f.�H��H�s�4���u H��1��֐��H���ΐ�����f�H�CH��H��H�E譐������H�r�f.�H�BL��H��H�������t�H�Ef�H�EH�U H��HCH�C H�@H�P H�E H�PH�C H�P�5����H�C H�h�B���ff.�ATUSH��
tkH��H��H���v@��tnL���I�CH�����tkH�xtdH��L���i��A�ą�ua�H��L������u^H���H���O���uKA�D��[]A\�f.�H���(���t���f�H��L������t�H�5gOH�������H���(������H���H�`H��1�誒��H���H��H�x臾��H���H�xH���q���Hc��H��?�b����[���ff.�f�SH���vv��H�����wiH��oHc�H�>���H�5)`�$��1�[����H��[�fDH�5�_���1�[�H�5�_����1�[�H�5a_����1�[�H�5	`����1�[�ATUH��SH���5H�H��H��H�������g|U��PL�FM���L���˳������I�0H���H��t1�H�
�_H���@���H�UH��H����f�����T��H�
	oHc�H�>��L����H�=-�L��������{H�=�]:H�����f��H�5�]:I��H���{L��1ҿ0褽��Hc��H��7H�H����H	�H��H�1��x���Hc��H��H�H��%�H	�H�EH��[]A\�H�E�uH������\H��H���1�H�
;MH��H��s�I���H��[]A\ÐH�5�^�4��H�UH��H���������H�uH���D���H�uH��H�E�4���H�EH��[]A\�����H���1�H��L赢��H��[]A\�DH�uH���H�uH��H�E�I��H�EH�EH��H������W����Xu
�䀀�ZH�EL����H�=|�L�����������H�}����L�lj�������uj��ueH�uH�
LL��1�H��rH���������H����������H��KH��H������H�E�䀀�6H�E�Q���@ƃ��B����H���H������0���L����r�����䀀�YH�E����f�H��H�
HKL��1�H��H��q�q����a���@�H�=��
���H��H�[:�e����H�=^�
��_��H��H��Z:�%���H���,ATI��UH��SH�H��H�����fDI�T$H��tH�I��H������t�L��H��������9uA�D$u[L��H��]A\���DH��H�N\L���.���H�=WZ:H�������H�5:Z:H��H����H��1ҿ0�7���Hc���(H�H��H����H	�1�H���	���Hc��L��#H�H����H	�H��H����ڹ��Hc��H�H����H	�H�[]A\�1��H�=��
����H��H��Y:�:����H�=��
����H��H�eY:�2����SH��H��tH�H��H������Kt5��(tH��[�H�{ t��H�؀�*H�[�H�[��f.����H���1�H�
�V���H�������H�H��H������U��SH��H��D��H�����������H���H���H9���H�BH����2@��@��
tnH�{u4H���H����
�z�H��PX��u�H����@�<_t���x�H���H�B�H���H;��v
�z�
�#1�H��[]�DH;��s
�z
������
;���h������H���H��V1�����H���fDH�CxH�CxH��u$H�{u�H�{h��H���E��H���������~iǃ�H����������� u/H�PH��H�����H�H�CpH������f.�H�PH�HH����������H���
H����}����z�
����H��1�H�������H���H�C1�H������f���H)�A�A I�yAVM�qAUM�)ATI��UH��SL����H����A�<$@��_t@��xL��A�VX��twH���~�E���
wv�U���H�5�{��t
A�D$��(A�<$A�@�����ȃ�2w9H�H�@H��79H�4�@:>u#H��I�|$������u[1�]A\A]A^�fDL��H��L�������t�H��L��L���`���I���1�H��H���l������I���H��������H��蕺��1�1ҿ9H��脵��Ic���(H�H��H����H	�1�H���V���Ic��H�5PU:I��H�H��%�H	�I�$H����L����L�Ẑ�#H������Ic��H��L��I��H�H��%�H	�1�I�$��L��L��H����H����H�����H�sH����H��tH��L���&�H�C1�1Ҿ�9菴��Ic��H��L��I��H�H��%�H	�1�I�$��L��L��H���7�H����H���6��H�sH���H��tH��L����H�C[1�]A\A]A^�f.�H��蘱��A���I���H��UH��1������G���@1�1�1���г��Ic��1��H�H����H	�1�H�1�H�C袳��Ic��H�H����H	�H�H�C������H�=�C����H��H�eS:�/����H�C�����H�C���H������H������AUATE1�USH��H��L���L��H9��tOH�JH����<
�������t	��i����r��@����A����H��H9��u�H�CxH�CxH��u0H�{�t$��H�{h��H������t$H���o������7ǃ�H����������� ��H�PH��H�����H�H�CpH�������@��yLL���E1�H��D��[]A\A]�@H;���[�z
�QH���
H���f��������u���_t�H���H�B�H���H;��v
�z�
�s��.u�H�����H�PH9��v�x蔪�����Z���H�5�SH��H�-P�v���H���H�C��H�CH���!���H���H����
�z�H��PXH�����u�B�<_t�����H9����H�BH����:
u�H;��s
�z
�����;���y������H���H��1�袖���]���D����
;����������H���H�%O1��f�������H�PH�HH�������@A	�1��t���fD�������D�z�
�����H��H����s���H���H�CH������H�CxH�CxH��u"H�CH�������H�{ht�H���S��H��t������~cǃ�H����������� u)H�PH��H�����H�H�CpH����~���@H�PH�HH�����������H��H�CH�����ff.��AWI��AVAUATA��U��SH��8H�t$���MI���I;��s�9{thH�T$(�H���V���H�|$(H��A���tM���I�FI������:����E���:��L���.����+f�H�D$(H�D$fD���tI9����H�yI����9
�H�T$�踆��H�t$(A��H����=���I���H�I����������E���yI9�����<}�����I���H�BI����:
u\I;��s
�z
��A���A;��~9A���I���H�:L1��{����f��L��蓦��A��H��8D��[]A\A]A^A_�@Lc�L���m���L)�L��H��H��輙��E���cI���I;����< �����<	������������1L��艦��I���I9���z���I�GxI�GxH��u(I��I�h��L���6��H����A������-ALJ���A���A���H��� ��H�HH��I�����H�H�yI�GpI���I����9
���I;��s
�y
�MA���A;������A���I���H��J1����I�������H�D$覔��H�T$E��H�L$H���I�������@�\�F����uL���9������@H�HH�PI����*���@��L�������F���f�A�������@H�5d;L��E1��^�������f�H�‰�L���s������fD���H�T$H�E�������H�‰�L���E������H�5;L��E1�����{���f�H�yI����y����}L���S���I���I;������I�GxI�GxH��u(I��%���I�h��L�����H����A�������ALJ�H���A���A����� u_H�PH��I�����H�I�GpI����C���DH�5QLL��E1��������I���I�GH��I������H�PH�HI����A����j���H���g���H��I����@���I���I�GI����%���USH��H��(H���H���H9�tdL�GL����<
t"�HЀ�H��L�
[��Ic�L�>��f�L;��������
;����H��(��[]�H�CxH�CxH��u:H�{H�T$�t$��H�{h�5H���X���t$H�T$H��������~kǃ���������H��� ��H�xH��H�����H�H�CpH�������
�3���H���
H����5���������@���&H��H�5�J1��5���H��(��[]�@�
��fD����fD�����fD�����fD� ���fD����fDH�t$H���k���H�|$�ŸD��z���fD��j���fDL;���H���L�@L����8L��@��
��@��-����H���H9��������y�
���y�
���H��H��������@������L;���"I�xH���A�H��<
��<-�8L���L9��������f�H�xH�HH�������@���H���H�,E1��m����\����H���H9��s	�?
�CH�T$������H�D$H������D�
�
���fD�	���fDH���H;���,H�yH����<
��D��A��\��A��?�(������������f�L;��s
�x
����;���D������H���1�H�D�`���H���H�A�����H�CxH�CxH��u:H�{����H�{h��H��H�T$�t$����t$H�T$H���������~���ǃ�H�8�������� ��H�HH��H�����H���H�H�CpH����?���H���H�CH����a���H;���AH�yH����<
��<\�����.����Ȁ���=���f�H9��v
�yu������H�����%����
���fDH;��s
�y
�}���;��������H���1��
H��B�ˉ�����fDH�CxH�CxH��u:H�{�~���H�{h�VH��H�T$�t$����t$H�T$H���2�������ǃ�H�8���������� �TH�HH��H�����H�H�CpH����-���f�H;��sA�x
�����;���+������H���H��A1��ψ��H���L�A�����H�CxH�CxH��u:H�{�}���H�{h�UH��H�T$�t$����t$H�T$H���1�������ǃ���������H��� uyL�@H��L�����L�H�CpH����>���H�HH�xH���H����O�����
�����H��H������H�HH�xH����������n���L�@H�HL���눋���S���H9��v
�yu�v�����H����������|���H;��s
�y
�M�����;���R������H���1���H��?�>����-���H�CxH�CxH��u:H�{�����H�{h��H��H�T$�t$����t$H�T$H�����������ǃ�H�8���������� uPH�HH��H�����H�H�CpH�����������H�HL���I���H���
H����_���H�HH�xH���뱋���y���I�HI�����H���H�CH�������H����H�������UH��AWAVI��AUM��ATM��S��H��h�u��U�dH�%(H�E�1�I��E�H�E�L���H�E�H�E�H�E�H�E�H�E�f�I���I9�tMI�QI���E�9A��
�K����D9���I�$D��L���
���M���I���I9�u�I�FxI�FxH��u(I�~��I�~h�p
L��踿��H���W
A������oAdž���A���A���H��� �.L�HH��M�����L�I�FpI��������D9}���D�M�I���A��A��#u	E���XA��\���y��$�E��*A�ǀ�����I�UH�E�H9�tsH�}��XM����E����DI;��sA�y
�<A���A�
A;�������A���I���H��<1�����f�����E��o���@M����I�$H����H��I�$�C���DL�HH�PM�������@A������@<
��D�����;E��u�\L���
���f.�I�UH�E�H9��H�}����L�xH�U�L���dt��H�U�H�E�L�BL��L�E��Lt��HE�H��L�E�H�pH��-H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�D$L��H�LcH���H�E�I���:@I���H�A�H�E�H9���H�QI����<
��<\�B<u����E�����\L��A�u�������f�I9����������$@�ƃ�@��@�����{��A�#���fDH�HH�U�H��H�M��s��H�U�I��L�BL��L�E��s��H��H�M�L�E�I�I�wI��-L��I���L)�H���H9�tH��H��$�H9�u�%���H�D$H�
bH���H�E�I��L��1��Ha��L��L���}��������D�����������I���H�P�I���I;���iH�E�I�EH�M�dH3%(D����H�e�[A\A]A^A_]�@I��A�
M����O���f.�D��L���Ÿ������d���A������@I���H9�s
�y
��D�}�A���A��A;����E����}�
�)I���I9��s
�z�
��E1�H9���L�IM����<
��<C���<c�(<x��H�u�L���ե��H�u�H���<�����M���Hc�I)�H��x�����@I�FxI�FxH��u6I�~����I�~hD��x�����
L���2���D��x���H����
A�������Adž���A���A���H��� �uH�HH��I�����H�I�FpI������@�E�������\L��蹒�����H��I���f��E�tA�
�z���H)�H�L��X���E���n����\L��A�
�e����K���A����=���A���I���1�H�U7D��x����~��E��t!�}�
�@I���I���H�J�����D��x���A�
E�����E��.D;}�������t	A9�������\L���Ǒ��I���L�H�M���M;���X����x�
�N����x�
�D���L�H�M����4���H�HH�PI�������M�H�u��L�������U����D���M�}H�E�M���I9����H�M�H�}�I���u�H�HL��p���H��H��x����n��M�GH�E�L��L�E��n��HE�H��L�E�H�pH��-L��p���H��H%�H)�H���H��H��x���H9�tH��H��$�H9�u�H��%�t	H)�H�L�H�D$H�y]L�M�H���H��I��H�E�1��\��L��L�����L�M�����@�x�
������x�
�����H��I����s���I���H�P�I���I;��v�x�
u�x�
uH��I����E��)H�U�1�L�����A������A�
����<M��D���\L��辏��D��L��賏��M����E����Q���M�}H�E�I9��@���H�M�H�}�I������H�HL��p���H��H��x�����l��M�GH�E�L��L�E���l��HE�H��L�E�H�pH��-L��p���H��H%�H)�H���H��H��x���H9��g���H��H��$�H9�u��M���D<
�<��������PЀ�����I���H�U��H����|��H�E�H���I����pHc�H�H��x���I���H)�I��L������H��x���L��H���c���M������I���I�FA�����I������M;��s�y
uL�IM����{���A���A�
A;���B���A���I���H�31��Qz���!���I�FxI�FxH��uLI�~u+I�~htL��赴��H��u0I���I�FI���H�5z6L��A�������������A�����~UAdž���A���A���H��� uH�HH��I�����H�I�FpI����U���A������n���A����H�A�A�#I���I;���G����y�
�=����y�
�3���H��I����#���@H�HH�PI���낾\L���Œ������D���ň����������A�������M;���;I�QI���A�	H�Ѐ�
���-�5�L��L��x������L��x���A�Q�f�A��PI���I;���9H�JI����<
��D��A��\��I�������A���L���M;����I�QI���A�	H�Ѐ�
�m��-���L��L��x���A���<���L��x���A�Q�f�A��P�N���H��x���A�������L��A�����H��x����Q�f�����I;��s
�z
�2A���A�
A;���|D��L���$���M����l�����z�
����H�J�I�������I�FxI�FxH��u(I�~�1���I�~h�L��跱��H����A�������Adž�H���A���A����� ��H�PH��I�����H�I�FpI����1���I;��sA�y
�A���A;����M���M9���{����x�
�q����x�
�g���H��I����W���H�PH�HI����y���I�FxI�FxH��u(I�~�'���I�~h�L��議��H����A�������Adž���A���A���H��� �zL�HH��M�����L�I�FpI����n���I�FxI�FxH��u(I�~�����I�~h�oL������H���]A�����~A���Adž�H�A���A����� ��L�HH��M�����L�I�FpI����.���A�������A���I���H��-1�D��x�����t��D��x����U���I���I�FA�����I�����A���I���1�H�d-�t��I���L�H����I�AI����L�HH�PM����E���H��A�
I�������L�HH�PM������A����H����E�����D9}�t,I������f��I���I�FI��������$<Y���H�=WA��Hc�H�>��fDAWA��AVI��AUATUSH��HdH�%(H�D$81��G0萇��A�GՃ��+1�A��0���$1�E1�L�-PBA�G҃�7��IcD�L�>��@���DD��I���I���H9��NH�OI���D�?H��A��
u�I;����A���A;���MI���I9������t(L�l$���1�L��H�?�R��L��L�����IcFTI�V`�E��������L���x���è�Hc<$E�fTI�n`H����H�A�H�wMc�I�T$�f���1�H��
�'S��L��
H���j��H��H��謝���<H�Ɖ�L���j���H�\$8dH3%(��H��H[]A\A]A^A_��I������!���GI���H9���H�JI����<
�[�؃�+���eD��L��A����Q�����L���G����CՃ�E��7���@D��L��1��#����!���fD���{����$I���	���I9����H�BI����*@��
�)���R����$���sA�FT�.L��A���$评����L��1�裄�����fDI�FxI�FxH��u(I�~���I�~h�ZL���Y���H���AA������(Adž���A���A���H��� ��H�xH��I�����H�I�FpI�������f��
�5���H�WH��I���I9���B����z�
�8����z�
�.����Lf�I�FxI�FxH���I�~u/I�~htL��腪��H����I���I�FI���IcFTI�V`�f��L�����I�~`1Ҿ
���aP����L��H���$����U����A�������@I;��s
�z
�VA����
�
A;���W���`������D��L��A����Ă����L��1�踂�����I;��s
�z
�A����
A;�������A���I���H��'1���n�����I�FxI�FxH��u(I�~�P
I�~h�6
L���!���H���$
A�����~A���Adž�H�A���A����� �.H�PH�HI���H�I�FpI�������@I�FxI�FxH��u(I�~�I�~h��	L��艨��H����	A�������Adž�H���A���A����� ��H�PH��I�����H�I�FpI������f�H�xH�PI�������@D��L���
���I���I���H9��6���H�AI���D�	H��E��A��
�����I;��s
�y
��A���A;���w	�$I���E1�1�I���H9������z�
�����z�
����1�H��I�������fDA���I���H�c%1��l��I���H�z����@I�~`1��r���$�P���$�8"H����H�0fH~�H9�t0fH~�H��<�������H���;H������q]���;H������@A�nTI���I;����H�QI���D�	A��
�D�ȃ��<X�)I;����I���H�PI���D� A��
��D���_����t1�A��_�
����I���H�B�I���I;��v
�z�
��IcFTI�V`�A9nT�����
�L�����I�~`1Ҿ���z���H�PH��I���������f�A�������@A���I���H��#1��L$��j���L$����I;�����y
��H��A�
I����A�Gȃ���
D����߃�Et
A��.�K�0L��1��}������f.�I�FxI�FxH��uI�~��I�~htL��赤��H��u_I���I�FA��I����p���A���A�
A;���V���A���I���H��"1���i���5���DA�������Adž���A���A���H��� ��H�HH��I�����H�I�FpI����k������y|���������I���I���H�Q�I���H9�v
�y�
�$H���$���H�PH�HI����g���@A�������Adž���A���A���H��� ��H�HH�PI���H�I�FpI����X���fD<B�I;���		H�JI����2H��@��
���N�1ۃ���I���I9��s
�x�
��IcFTI�V`�A9nT�����l	1��$E1��,����H���;H��H��H�������H�HH��I������(���f�I�N`A���H�H1�I�����T���E�$�E������_���FЃ�wxL��1��-{��I���I;����H�JI����2H��@��
u�I;��s
�z
��A���A;������A���I���H��1��g��I���H�P����H���
�
I������H���
I������A����.���I;��s
�x
��
A���A;��~A���I���H�T1��f��A�
���E��D����߃�D�A��_tV��OuDI;����H�BI���D�
A��
��
E��A��_��D���Py������A�GЃ������1�A��_�A�GЃ�	�uA��7�ZD��L��1��y��I���I;���{H�JI���D�:A��
u�I;��s
�z
��A���A;����	IcFT9���	I���H�J�I���I;��v
�z�
��I�V`����(����L�����I�~`1Ҿ�����I�FxI�FxH��u(I�~��
I�~h��
L��蜟��H���r
A�����~A���Adž�H�A���A����� ��H�PH��I�����I���H�I�FpI�������H�QE1�H��1�I����$���I���I�FI����j�I�FI���H�J�I���1��$�?���I���I����������I�F���fDA����������I���IcFTI���H�J�9��KI���H9�������z�
������z�
�����H��1��$E1�I�����fDA���1�E1�1�I���H�4�wc��I���I����$H�J��]���I;����I���H�PI���D� A��
��D���Dv����t1�A��_�0���"
I���H�P�I���I;��v
�x�
�	IcFTI�V`�A9nTta���������H�HH�PI����<���H�J�I������A������I���H�z��{�I���I�FI���H�5L��胅��1��"�I�FxI�FxH��u(I�~�$I�~h�L��轜��H����
A�������Adž�H���A���A����� �DH�PH��I�����H�I�FpI��������������_�'���I���I���H�Q�I���H9�v
�y�
�^H��1���H��A�
I���D���xU��������D��L��1���t��I���I;����H�JI���D�"A��
�����I;��s�z
t�A���A�
A;��~�A���I���H��1���`���p���I;��s
�z
�aA���A;���1��H���I�FxI�FxH��u(I�~�F���I�~h�1	L������H���	A�������Adž�H���A���A����� ��H�PH��I�����H�I�FpI������I���H�B�I���I;�����z�
����z�
�����@H�B�I���I;���0����z�
�&����z�
����H��I�������@1�H�5�	L��诂�����I�FxI�FxH��u I�~��I�~htuL�����H��tgA������sAdž�H���A���A����� ��H�PH��I�����H�I�FpI����i����_����I���I�FI���IcFTI�V`�A;nT�T����L�����I�~`1Ҿ����H�PH�HI������I���H9�v
�z�
��I�V`1�E1���$�o�I;��s
�x
�rA���A;��~A���I���H��1��%^��A�
���A�������H�PH�HI���I����C���H��A�
I���D���p��������D��L��1��eq��I���I;����H�JI���D�"A��
�|���I;��s�z
t�A���A�
A;��~�A���I���H�1��W]���p���I�FxI�FxH��u(I�~�I�~h�^L��賗��H���LA�����~A���Adž�H�A���A����� ��H�PH��I�����I���H�I�FpI����h����z�
�M�H��I����=�I�FxI�FxH��u(I�~�!�I�~h�pL�����H���^A������=Adž�H���A���A����� �7H�PH��I�����H�I�FpI�������A���I���1�H����[��IcFT9��M�������I���I���H�J�����DH�PH�HI����u����_�G���H�PH�HI����w���A��������x�
� �H��I�����I;��s
�z
��A���A�
A;���
D���Kn���������A���t%I���H�P�I���I;��v
�x�
�EL�������L�����lw����A������I�FxI�FxH��u(I�~�=���I�~h����L���,���H���
���A������%Adž�H���A���A����� �|H�PH��I�����H�I�FpI�����������IcFTI�V`��E���b��M�H�PH�HI���I����+���H�PH�HI��������x�
���H��I�������I�FxI�FxH��u(I�~����I�~h��L���%���H����A������JAdž�H���A���A����� �
H�PH��I�����H�I�FpI����}����y�
�����H�Q�1�H����A�������IcFTH��I���9��c�����D�_����H�PH�HI������H��A�
I�����A���I���1�1�H�S�X��I���H�P���z�
�=H��I�����H�B1�H�����A�������H�BH�����H�PH�HI�����A������A���I���H��1��
X�������y�
���H�Q�H��������������H��A�
I�����H��A�
I�������x�
�����H��I������A����I���I�FI���IcFTI�V`�A;nT�%������I��I���I�FI������I�V`���I���I�FI���IcFT9������������I���I�FI�����I���I�FI������I���I�FI���IcFTI�V`�A;nT����*�z�
�(�����IcFT9�~A������������A��������-�ff.�@��ATA��UH��SH��H��H�|$H���~���H�|$D��H��H��H��[]A\�s�����U��SH��H��H�|$H���TJ��H�|$H����H��H��[]�B��ff.����ATI��Hc�UD��SH��H�|$H���~x��L��H���J��H�|$H����H��H��[]A\���f���AUI��ATA��UH��H�5�8SH��(H�|$H�|$��Q��H��H�Y���H���L�khHǃ�Hǃ�Hǃ���	D��H��H�߉CH����H�T$H�T$H�T$H��([]A\A]�ff.�f���U��SH��H��H�|$H���$I��H�|$H����H��H��[]�\G��ff.����AVI��AUI��ATUH��S����;����L��H��I����m�������L��H����L
H��H��tH��[]A\A]A^���{;����H����g��L��I�E�u��H��[]A\A]A^�fD��AVAUATUSH��H���H�5��8E1��P��H�kI��H�EH������h��H�=�
:H���>�I{��H�5r
:I��H���L��1ҿ0�m��Ic�$��(H�H��H����H	�1�H���Xm��Ic�$�I��H�H��%�H	�H��:I�H��tL��1��$� m��Ic�$�H�H����H	�H�H��tH��H��L���r���M����I�EL�kH��[]A\A]A^�DH�=�:I��H�mH�������G��H�=�
�{��H��H�]:�a����H�=ٛ
��{��H��H�E:����H�=��
��{��H��H�-:���H�CH��[]A\A]A^���AWAVAUATUH��SH��H��� H�5��8A��A��E1��N��H�]I��H�H������h�E����H�=�:H�����uy��L�=�:H�$M����H�=j:H�����Ly��H�5M:H��H���91ҿ0�k��Ic�$��#H�H��H����H	�1�H�L���`k��Ic�$�H�5�
:I��H�H��%�H	�I�H����H�$L����"k��Ic�$�H�H����H	�H�H���NH��H��L���p���H��E����L�5u
:M���H�=]
:H����_x��H�5@
:I��H����L��1ҿ0�j��Ic�$��#H�H��H����H	�1�H�L���pj��Ic�$�H�H����H	�H�H����H��H��L��辠��H��1�H��1���*j��Ic�$�H�H����H	�H�M��t2I�EL�mH��H��[]A\A]A^A_�I��H�[E������H�E��f�H�=l�
��y��H�=H	:I��H�F	:H�����H�=�
���x��H��H�	:���D�H�=�
��x��H��H�	:�-����H�=��
H�D$�x��H�L$H��H��:���fDH�=~�
��x��H��H��:�_����H�=w
�_x��I��H��:�/���H�=��
��?x��H��H��:����H�=�
�x��H��H�=:����H������H���]�������ff.���U�F�S1�H����
wc�F�H�.��t
�O�
�D��1��B��ƃ�2.Hc�H���8H�vH�,�H�uD:uH��H���P����HD�H��H��[]�ff.�@��S� ���w��H��H�@H�@H�@ H�@(H�@`H�@4H�@<H�@DH�@LH�@THǀ�Hǀ�Hǀ�H�����H���Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�HǃH���O��H��H���81�H���[��n��ff.���ATA��UH��H��SH������H���A��H����k��D��H��H��[H��]A\�y��f���ATA��USH��H��Hc��Wo��H��H����@��H���k��D��H��H��H��[]A\�x��ff.�@��ATA��UH��SH��H���Fk��D��H��H��H�D$H�|$H��[]A\�6e��fD��H��H�5��8�H�����H��H��?H��?���D��H��H�5��8�lH��H���H���f��ff.����H��H�5Q�8�<H�����H��H��>H��?���D��SH��H�5!�8�H��H�����������	ʈ��H��[����AT1�I��UH��1�SH��b�e��Ic�$�H��H��H��H�H��%�H	�H��(P��I�$H�CH�k []A\����AUI��1�ATI��USH��1�H��H��b�d��Ic�$�H��I��H��H�L��H��%�H��H	�H�E�t��I�,$H�EH�] H��[]A\A]���AVI��AUI��ATI��UI��H��SH�H��t<H��t7H���f�H�[H��t'H9ku�L��H���E��H�{ H�CuH[]A\A]A^�f�1�1��b��c��Ic��L��H��H��H�H��%�H	�H���D��I�]H�CL�c []A\A]A^�fD��SH�H��H��t"H;pu�A�H9_tH��H�xH��u�H��[�B��DH�PH�GH�� 3��H��[�B��H��H����ff.�@��AWI��AVAUATUSH��H	dH�%(H��$8	1�H��$�HDŽ$��H�D$8H��$������
H��$�E1�H�D$�L��$p�D$0�D$����H�D$(H�$D�t$I��L��M��L�d$ I���D$H�L$H�,$fA�H�	H�T�I9���M��I)�I�I��H��'�l
H='�'L��HF�H��H�T$H�t�1��H��H���;
O�|-H��H��I��L��I���N��H�D$H�t$ L��H�,CH�H��H�$�N��H�D$(I9�tL��L���
Z��H�$N�t;�N�|-�L�l�A��$���M9��m�H�l$ H�$�D$�����H�-��Lc�B�Dm�D$=�����A��$����|$��>D�D$E����1��D$���^HcD$=�+��H�o0�B9���H�|�D�BE���NA�������A��E���fDH�I+9H�L$�H���
H�81��.j��M9��a�H�l$ H�$A��$�����H�+9�L$�H�l�
H�81���i�������H���F�hE���kMc�H���B�(���D$�D$@�)�H�I��A��$��&
A��v��H��E��Jc�H�>��I�o�I�H��u颿@H�EH��tH��H�EH������t�H��L���l��H����H�H������t�@H��H�H������u	H�CH��u�H��L����k��H���X�H�EH��H������9����Ұ��?���ư1�H��7�Q_��Ic�$�H��H�H��H��%�H	�H�EI�W�H�H������9��H�R����H������w������iH��H�T$@L��$��,/��H�T$@H�5���HDŽ$�H��$�H��$�HDŽ$�H�zH��DŽ$��AS����$���1�1Ҿ�9�p^��Ic�$�H�H��H����H	�H��=t��H��$�H��H��t$�(t��H����H��tH��H��L��蜔��H��1�1Ҿ�9�^��Ic�$��(H�H��H����H	�1�H����]��Ic�$�H��H�D$@H�H��H�D$H%�H	�H�=�9H��#�H���9H�=��9H�D$H��H�5��9L�����H�L$@H�T$H�#H���b]��Ic�$�H�H��H����H	�H��/s��H��$�H��H��t+H�D$@�s��H�T$@H���k�H��tH��L��臓��H��H�=�9�#�H�5��9L��H�T$@�R���H�T$@�H��H����\��Ic�$�H��I��H�H��%�H	�I��r��H�����L��H��L������H��H��H���B�,h�D$H�H��I)�I)�M��A��$�����o���A�6M�}I�]H�H����B���+wHc�H�5b+f;V�XH����B�D$I���d���HcD$�=awH��
��T$0�����|$0u�D$�������D$����L��H���
M����Ic��DU=���t��=�+wH�H�
�*f�<A��L;,$�H�B"H��I��I���4PL���;o��E�uA��$�t�H�<$L����c���D���PI�\$H��$�HDŽ$�4I�D$H����H�H�KI��$�H������(�8H�C�L$@H��$�H�D$P��D$H�����L��H�L$��{��H�L$�‰ȃ��D$�[
9T$H�GL��T$�nT���D$@�T$t	��#�����t6I��$�H�P�I��$�I;�$�v�x�
u�x�
uH��I��$�H�D$P�T$HL�C L��t$@L��$�H������������[�H�3I�D$H��A��$��D$@��H����I�|$�)��I�D$A��$��D$BA�D$0��HcT$H�
���@�|$a~�\$���/���H��#9H�
��
�H�K�
H�81��b��H��#9��H�8�l��H��#9�
H�0��<������A��$�A�\$0L�t$@ADŽ$��D$X�D$PL�l$HL���z��A�ō@����H�=kHc�H�>��f��D$0�����D$0A��$��H��$�I��D�D$�D$����I��y���f�H���F�hE���������|$��\����L$0��������\$H��$�H��$�L���H��H�t$H�D$0�r���…��sH�57�
���mL��T$�/a���T$���;���M��M��H�5��
L����a���H�)"9��H�=��
H��`�����H�
~D�AE��� ���H��$�M��I�oI�GA��$��p�I��D�D$�D$0�S���@M���|$�t2HcD$=a�H�2	��D$�t$L��H�=/�
�k��A�����L�%�H�,�
L�4$L;,$t�I�EL��H��I��A�4D��j��M9�u�H�|$(H9<$tH�4$L����N��H��$�H;t$8tL����N��H��$8	dH3%(�����H��H	[]A\A]A^A_�f�L�=� 9H�
;�
H�K�
1��I�?�_��I�?����i��I�7�
�9��A��$�����H�<$L���^�����DH�-i 9A�I�H����F�hH��
1�D�L$HH�}�=_���D$@D�L$H�������L�d$XE1�L�t$@A��H�\$PD��@D�cH�}�1�H��
D����^��H��H�
��H�}B�h�D��H��4A��h��H�u�
�9��E9�u�L�t$@D�L$HH�\$PL�d$X�	����H�<$L����]��������D$���H�i9��H�=��
H��^����H�A9��H�=$�
H���]���}�H�{�P�D$���@H��$�L����]������H�-�9H�
��
H�n�
1��D�D$H�}��]��H�}����g��H�u�
�8��D�D$���H�����I�\$H�K��@t7A�D$0�	�E�A�D$ �9�I��$�I��$�H9�s	�8:��H�߻p�#���D$\A��$�I�D$A�D$0���?���L���H�=��
�g���D$�������H�H��$��� �?H��H�Q��H��H�D$@H�BL��H�D$H��D$X�� ���D$P�t�������I��$�H�GI9�$�����D$X�M�I��$�L�t$X1�L�t$HL�|$`D�|$PH�D$L�l$P�7H��M��$�I9�vA�E�<
��<
uI��f�L��H)�H���!H��H��H���/��I��$�I9��#I�D$xI��$�I�D$xH��u*I�|$���I�|$h��L���s��H���3�A��$����jADŽ$�A��$�H���A��$��� �)H�HH��I��$���H�I�D$pH�AI��$�I��$��9
��H�L$@H�t$E��L��I��$���i�����	�I�|$pH� �����H����f�I��$��s#��I��$�H��I9������H�5��H���[.��I��$����fDH9�v
�y
�y�A;�$��R���A��$�I��$�H���
1��-7���/���I�E�H9��;���A�}�
�0���I���"���H�HH�PI��$�����A��$����L�t$XL�|$`L�l$PI�D$I��$�H��tH����8��H���a ��A��$�L�D$H1�H�
R�
I��$�A��$�I��$��]_��I�t$L����G��A��$�����H�AH�QH��H�D$@������T$X��E���T$X�������H�\$@L���@q��������E����u��H�\$9T$H�������ҁI��$�H�P�I��$�I;�$����x�
��A��$����D$ ������H��$�H;t$8tL���G��H��$�L������H��$�H����H�t$H�|$0L����Bi��H��$����8���H�{ ���D�T$E������D$@���I�D$L��H�D$P�H��H��$��D$HH�D$XH��$��D$@H�D$`L���p�������)���������o���L$��H�D$8L��M��M��H�5��
HDŽ$��H��$��W�����M��$�I��$�L��H)�H���ӅL���{E�������I��$�I��$�A�\$0�Át	���<�����%=���E�D$LE������L�t$@L�l$HA��$���ADŽ$�A�D$0���D$
�O�A�\$0�D$P���A��$�L�t$@L�l$H���K�L����E���D$���҄�#L���2G��L���n�����	�A�D$0L�t$@D�l$L��L�l$H�A�ԁ%=�ā�ln��A����=����L$PA�D$0���0t���S���t
A��s���%�������A�D$0A���t(I��$�H�P�I��$�I;�$�v
�x�
�����u�����A��$�������L��D�l$L�t$@L�l$H�m��A��A�D$0���‚A�D$0A��@�ؔA����B�I��$�H�P�I��$�I;�$�v
�x�
�@�A��$��}����A�D$0L�t$@D�l$L�l$H�A���%=���L���m������=�
����t(I��$�H�P�I��$�I;�$�v
�x�
���T$PA�D$0���0t���&�%���������A�D$0u���,�A��$�������D��L�t$@L�l$HL���r����D$A��$������L��D�l$L�t$@A�D$0L�l$H�=l����.�D����t8I��$�H�J�I��$�I;�$�v
�z�
�6����C������A��$���A�D$0���'�L��D�l$L�t$@L�l$H�k������:�{�A�D$0�
����D$@�.@���L$@�������"����'���1ɺ'��)�:J��Ic�$�H�H����H	�H�I�D$A��$��eA�D$0��D$Q���r�D�l$L�t$@��A��$�L�l$HA�D$0ADŽ$����8�A�D$0L��D�l$L�t$@L�l$H�D$H��j����<�D$@A�D$0�X����n�A�D$0�|$@=�_��|$@<���|$@����I��$�H�P�I��$�I;�$�v
�x�
���A��$��x����I��$�I��$�H�SH9����H�=
�H����€������x�>������I��$�H�Ǣ
I��$�L����i�������}I��$���=u�M��$��H��L�������u�I�@H9�tA�x�!>��I��$���t�I��$�A�\$0�R�A�D$0L��D�l$L�t$@L�l$H%�������A�D$0�Bi����=�ڟ��>�m�����N�I��$�H�P�I��$�I;�$�v
�x�
���A��$��w���8�L��L�t$@L�l$H��h��L����A���@L���@A����@��������~�Ӊ׉T$@�0=�����k~�D$6�T$@���@�����*�I�|$��I��$�I��$��
�z�H��PX��uI��$��@���x<_����L���������A�D$0I��$�Ict$TI�|$`�d��I�T$H�HcD$H����A��$����*�A�D$0L�t$@D�l$A�D$4L�l$H�����A�i}�����U}���0t$%D$P��ۃ�)��^���JDD$�D$A��$�I�d$ A�D$0I�d$(����I�D$ D��D�l$L�t$@L�l$HH�ƒ�A�l$4H��H	�I�D$ I�D$(H�ƒ�H��H	�I�D$(A��$�����)���A�D$0���&�L��D�l$L�t$@L�l$H�f������*�ƞ��=������t(I��$�H�P�I��$�I;�$�v
�x�
�M��t$PA�D$0���0t	@�����A�M~�����9~��u	@�����~%�������A�D$0A��$����Y�L��D�l$L�t$@L�l$H��e��A��A�D$0����}A�D$0A��@���A�����I��$�H�P�I��$�I;�$�v
�x�
���A��$��|�����D�l$L�t$@��A��$�L�l$HA�D$0����A�D$0L�t$@L�l$H�t
�T$X�@��t1��0@��H��1ɺ'�)�f��C��Ic�$��D$RH�H����H	�H�I�D$A��$����(�A�D$0L�t$@D�l$L�l$H�A��x������x�0tD�T$PE���c���A��$�A�D$4I�d$ I�d$(��A�D$0��L��D�l$L�t$@L�l$H�Nd������&�����=������t(I��$�H�P�I��$�I;�$�v
�x�
�ō�t$PA�D$0���0t	@������A��{������{��u	@�����{%�������A�D$0A��$������I�D$(A�t$8D�l$L�t$@L�l$HH�I�D$ A�D$DH�A��$�����tA;t$4��A�t$0I�L$ I�T$(����z@��:�6���� �A�D$0�_�D$K�W�L���c����
����D�l$L�t$@L�l$H���I��$�H�P�I��$�I;�$�v
�x�
���A��$��������I��$�L�t$@D�l$L�l$HH�GI9�$���L���*;��A�D$0L�l$@M��A�܋\$�D$H�۸��L��DH��_�������yL���,b��I�}��u4I���I����
�z�H��PX��u�I����@���x�<_t��\$�D$D��M��L�l$@��!�؄��?�τ�|$�t(I��$�H�P�I��$�I;�$�v
�x�
���IcD$TI�T$`�A�D$T��~��I�T$`H��<!��<?��A�D$0�t>L���Va����=������t(I��$�H�P�I��$�I;�$�v
�x�
���I�D$`�8�#!�������7�D$E�\$0A��t
D�L$XE��tA��0tI��$�I��$�H9�s	�8:��E�T$TM�L$`����A��q�{��|$X���� A�D$0I��$�Ic�L������H��I�D$H��D$H�u�|$3���HcD$H���A��$�����A�D$0L�t$@D�l$L�l$H������� �A��$��L$X�����T�A�D$0 ���9�L��D�l$L�t$@L�l$H��_��A�D$0��]wA�D$0��@����=�����~�������_�I��$�H�P�I��$�I;�$�v
�x�
���A��$�������L��D�l$L�t$@A�D$0L�l$H�7��I��$�I;�$���|H�yI��$����
��{�‰D$@�B�<]��{H�
Z�
��Hc�H�>��D�l$L�t$@L�l$HA�D$0�LxL����^���Ã���D�I��$��	��H��PX����L���R7��I��$�I��$�H��$��z����H�¾
��PX������_����\���I��$�I;�$�s���u�������H��$�1�L��H���n���L����6��I�T$`IcD$T1��Ict$TI�|$`M��$�H��$��U7��1�1ҿ:H��I�\$�<��Ic�$��D$?H�H����H	�H�H��@A��$�A�D$0�����I�D$ D��L�t$@A�D$0L�l$HH�ƒ�H��H	�I�D$ I�D$(H�ƒ�H��H	�A�T$DI�D$(�B�A�D$DA��$�����ۃ��Æ�ҺZE׉T$�M�D�l$L�t$@L�l$HA�D$0��7{A��$���A�D$0����L��D�l$L�t$@L�l$H�\����|����=���A�T$0����ҁ����A�T$0������I��$�H�P�I��$�I;�$�v
�x�
���A��$��y����A�D$0L�t$@L�l$H�t
�|$X�B��t��0��H�H��H��B1ɺ"�)�f�:��Ic�$��D$RH�H����H	�H�I�D$A��$�����L��D�l$L�t$@L�l$H�[����=�Z�A�T$0����҃���A�T$0���� �I��$�H�P�I��$�I;�$�v
�x�
�h�A��$��z���}�I�|$I��$�uCI��$��
�z�H��PX���)�I��$��@�����<_�
�I��$�A��$�H��A��$�1�I��$�E��H�
K�
�nH��A�\$0���D$0�����>���������������������<��������������������������{���~�q���!�g���N�]�����S���%�I���/�?���*�5���*�+���-�!���+������
�������I;�$����I��$�H�PI��$���\$@��
��I�|$�rI��$�I��$��
�z�H��PX��uI��$��@���x<_�7�$L���1���_L���1���t$@L��������R�A��$����{���$L���v1���\$�\$@�����0�����|���L���S1��I��$�I;�$��mwH�BI��$����
u�I;�$�s
�z
�F�A��$��
A;�$�~�A��$�I��$�H���
1��@���o����D$@0�$L����0�������$L���0���-L���0��I��$�I;�$��*�H�BI��$����
���I�|$�N�I��$�I��$��
�z�H��PX��uI��$��@�<_t������L���T���������I��$�Ict$TI�|$`I�\$��	���D$5H��6A��$��������u1�1��5I�\$�6��Ic�$��D$AH�H����H	�H�H��BA��$����Z��I��$�H�P�I��$�I;�$�v
�x�
����D$@_L��$�N/���t$@L���B/������A��$�H�����H!�H	�����I�w�I����#�Z5��H�H��IcG���H��H	�H����A��$�H�����H!�H	����I�I�w�1ɿ#�5��Ic�$�H�H��H����H	�H��`��I�71ɺ�(��4��Ic�$�H�H��H����H	�H��)��1��"��I����I�1�1��K�4��Ic�$�H�H��H����H	�H�����I�G�I�I�D$(����I�\$(H�DI�D$(���I�w�H���̈L���dl��I�w�L��H���o��I�H��tH�BH��H�����I�w�1�H��tL���+l��1ɺH�ƿ(��3��Ic�$�H�H����H	�H�I�H��tH�BH��H���-��I�I�_�H�����H�XH�����I�7H��u�"�H�FH��tH��H�H������t�I�7L���?��I�71ɺ�(�N3��Ic�$�H�H��H����H	�H����I�G�H��t:H��L���Gk��1ɺ�(H���3��Ic�$�H�H����H	�H�H���X��I�w�H���N�L���j��I�w�L��H���m��H���,��I�_��#��I�G�H��t:H��L����j��1ɺ�(H���2��Ic�$�H�H����H	�H�H������I�w�H���ׂL���{j��I�w�L��H���m��H�����I�_����I�_����I�7H��u�#�H�FH��tH��H�H������t�I�7L���*>��I�H���V��1�1�1��\��1��Ic�$�H�H��H����H	�H��#��I����I�W�I�w�#I��1��H�H��IcG���H��H	�H�����A��$�H�����H!�H	�����I�W�I�w�#I��=1��H�H��IcG���H��H	�H����A��$�H�����H!�H	��y��I�_�I�H�C �i��I�w�I�L���H��I�O�I�W�#I�w�I���0��Ic�$�I�w�H�H����H	�H�H�C I�H�����H�����H����D�����I�w�I�L���$H��I�O�I�W�#I�w�I��[0��Ic�$�I�w�H�H����H	�H�H�C I�H������H������H���jD�����I�W�I��#I�w��0��Ic�$�H�H��H����H	�H��U��I�W�H�H������-�p�H�r I�L���gG��I�I�w�H�s H�����H����C���
��I�_�I�o�I��$��PL��1�H��H��H���p/��Ic�$�1��H�H����H	�H��H�1��D/��I�w�L��H�H��IcG��H��H	�H��~[�����I�_����I����I�_��w��A�G�I�_�I��$�I�/A�D$8I�G�H�ƒ�H��H	�I�D$(�K��H��H��1�H���.��Ic�$�1��iH�H����H	�H��H�1��.��I�w�L��H�H��IcG��H��H	�H���Z������I��$��S��A��$�I�H�����H!�H	����I�_����I�\$(I�D$(���A��$�H�����H!�H	��x��H�����A�T$8H!�A�D$4H	Ӄ�A�D$4A�D$8�L��I��$��gS��H���7��1��0��I�/H���$��H���v
@���w�A��$�H���+��I��$�A��$�H�
�
I��$�I��1��O<������1�����1�����IDŽ$�I�_����1����IDŽ$�1����ADŽ$����I�A��$�H�C H�H�@H�@H�@H�@ H�@@A��$��9��I�O�M�1�1�M�G�I��$��uZ��H�����I�I�O�A��$�H�C H�H�@H�@H�@H�H H�@@A��$�����I�W�M�1�1�M�G�I��$��Z��H�����I�I�O�A��$�H�C H�H�@H�@H�@H�@ H�H@A��$��[��I�O�I�W�1�I��$�M�M�G��Y��H���5��I�I�w�I�O�A��$�H�C H�H�@H�@H�@H�p H�H@A��$�����I�w�M�E1�1�I��$�1��'Y��H������I�O�I�w�1�I��$�M�M�G��Y��H�����1�1�1�L���Q��I�w�E1�1�I��I��$����X��H���m��I�O�I�w�E1�1�M�I��$��X��H���H��I�W�I�w�1�I��$�M�M�G��X��H���"��I�W�I�w�E1�1�M�I��$��]X��H�����I�O�I�W�I��$�I�w�M�M�G��5X��H������I�O�I�W�E1�I��$�I�w�M��X��H�����1�1�1�L���P��H�����I����I�1�1�L���P��H���y��I�W�I�1�L���P��H���`��I�w�I�1�L���gP��H���G��I�W�I�w�L��I��LP��H���,��I�1ɿEH������)��Ic�$�1��H�H����H	�H��H�1��r)��Ic�$�H�H��H����H	�H�����H�����1�1���:)��Ic�$�H�H��H����H	�H����I�w�1�L���\��I�1ɿEH���(��Ic�$�1��H�H����H	�H��H�1���(��Ic�$�H�H��H����H	�H�� ��I�71�L���;\��1�1��H���(��Ic�$�H�H��H����H	�H�����I�1ɿEH������Q(��I�w�Ic�$�H�H����H	�H��H�1��#(��Ic�$�H�H��H����H	�H��x��I�w�H�����1ҿ��'��Ic�$�H�H��H����H	�H��>��I�w�1�L���X[��I�1ɿEH���'��I�wؿIc�$�H�H����H	�H��H�1��x'��Ic�$�H�H��H����H	�H�����I�71�L����Z��I�w�1ҿH���5'��Ic�$�H�H��H����H	�H����I�71�1ҿ�'��Ic�$�H�H��H����H	�H��V��I�w�I�L���a��H���?��I�71ɺ�(�&��Ic�$�H�H��H����H	�H����I�_����I�71�L���Z��H������I�����I��I�I�o�H������A<��H�����H��L���g��H��H��H�ƿ�*&��Ic�$�I�w�H�H��H����H	�H�H���v��H���F:���i�����H������W��I��$H���F��H�EI��$�H��
M��$�I��$H��L��L�D$XH�L$P�6>��;EtZE��$�D�ME9�D�L$HD�T$@t?L�D$XH�L$PH�t
L��H���Z>����u�}uA��$�D�T$@D�L$H�E�H���_�����I�_�I�H�C���I�7H��u�H�FH��tH��H�H������t�I�7L���*1��I�w�I�L���`��H���K��I�G�L��H�0H�P��;��1�1�1���$��Ic�$�H�H��H����H	�H����I�7H��u�H�FH��tH��H�H������t�I�7L���0��I�O�I�W�L��I�w�M��8��H�����I�W�I�w�1ɿT�'$��Ic�$�L��H�H��H����H	�I�H�I�W��*9��H���j���#�`���"�V��� �L���!�B��I�/H�EH����t�����ƒ����,�H����<���H��4����0���V����ӄH�
~�
Hc�H�>��A�D$0I�w�L����*��H�����A�D$0I����I�71�1ҿ3�%#��Ic�$�H�H��H����H	�H��z��I�71�1ҿ1��"��Ic�$�H�H��H����H	�H��F��I�?�f0��I�71ҿ0H���"��Ic�$�H�H��H����H	�H��	��I�G�I�D$ I�G�I�D$(I�G�I�D$A�G�A�D$0A�G�A�D$DI�G�H��t$H���H�H������>�H��:H��r,1�H��1��>�&"��Ic�$�H�H����H	�H�H���{��I�w�I���L���/��H���_��I�w�I���L���/��H���C��I�w�I��<L���g/��H���'��I�w�I���L���K/��H�����I�w�I��>L���//��H������I�w�I���L���/��H������I�w�I��&L���.��H�����I�w�I��^L����.��H�����I�w�I��|L���.��H�����I�7��L���'1��H���g��I�7��L���1��H���O��I�w�I���L���s.��1ɺ��#H��� ��Ic�$�H�H��H����H	�H����I�w�I���L���(.��H������I�w�I��%L���.��H������I�w�I��/L����-��H�����I�w�I��*L����-��H�����I�w�I��-L���-��H���x��I�w�I��+L���-��H���\��I�w�H��u�$f�H�FH��tH��H�H������t�I�w�L����+��I�7H��u�"�H�FH��tH��H�H������t�I�7L���+��I�I�w�1ɿX�_��Ic�$�H�H��H����H	�H�I�W�H������H�H������9�����B����I�H������H�H������9�p���B�f��I��$�H��L���Y��I��$��F��fDI�w�H��u� DH�FH��tH��H�H������t�I�w�L����*��I�7H��u�"�H�FH��tH��H�H������t�I�7L���*��I�I�w�1ɿW�G��Ic�$�H�H��H����H	�H�I�W�H�������H�H������9������B�w���I�H���k���H�H������9�X����B�N���I��$�H��L���X��I��$��.���fDI�G�L��H�0H�P��4��1�1�1�����Ic�$�H�H��H����H	�H����I�W�I�w�1ɿT�V��Ic�$�L��H�H��H����H	�I�H�I�W��Y2��H�����I�7H��u�"�H�FH��tH��H�H������t�I�7L���*)��I�O�I�W�L��I�w�M��C1��H���C���I�W�1�1��U���Ic�$�L��H�H��H����H	�I�H�I�W��1��H�����I�7H��u�%f.�H�FH��tH��H�H������t�I�7L���(��I�O�I�W�L��I�w�M��0��H��飿��I�7H��u��H�FH��tH��H�H������t�I�7L���:(��I�O�I�W�L��I�w�M��S0��H���S���I�7H��u��H�FH��tH��H�H������t�I�7L����'��I�W�I�w�L��I��M��H������I�7H��u� DH�FH��tH��H�H������t�I�7L���'��I�w�H����H�I�H������K�›L���o��I�W�H����
�H���u
I�G��I�w�H������Ic�$�I�w�H�H��H����H	�H�H���C���H���/���6���I�7H��u�@H�FH��tH��H�H������t�I�7L����&��I�w�I�L���[V��H�����I�w�H��u�#�H�FH��tH��H�H������t�I�w�L���y&��I�1�1���(��I�w�Ic�$�H�H����H	�H��H�1����Ic�$�I�w�L��H�H����H	�H��H�I�W�I�G���K��H���8���I�w�H��u� DH�FH��tH��H�H������t�I�w�L����%��I�1�1���x��I�w�Ic�$�H�H����H	�H��H�1��J��Ic�$�I�w�L��H�H����H	�H��H�I�G��T��H��錼���`邼��I�w�I���L���&��H���f���I�w�I���L���&��H���J���I�7�~L����(��H���2���I�7H��tL���
Z��H�ƺ!L����(��H���
���I�w�I���L���.&��H�����I�w�I���L���&��H���һ��I�w�I���L���%��H��鶻��A�D$PI�H��u�h�H�@H����hH�H������t�1�1�H�ƿ`����Ic�$�H�H��H����H	�H��H���A�D$P�:���I�W�I��L���&��H������I�W�I��L���&��H������I�w�H��u�"�H�FH��tH��H�H������t�I�w�L���#��I�w�I�I�o�H��tL���X��H��H��H���&��Ic�$�I�w�H�H��H����H	�H�H���r���H���B+���e���I�w�I�1ɿE����Ic�$�1��H�H����H	�H��H�1����Ic�$�H�H��H����H	�H�����I�?���1�1ҿ9H���r��Ic�$�H�H��H����H	�H��ǹ��A�D$0I�鶹��A�D$0I�饹��I�I�w�1ɿT���Ic�$�H�H��H����H	�H��o���H��1�1��T����Ic�$�H�H��H����H	�H��;���I�1�1��U���Ic�$�H�H��H����H	�H�����H�5�
L�������I�L��H�0H�P�,��1�1�1���Y��Ic�$�H�H��H����H	�H�鮸��E�\$@E��u
E�T$<E��tH�5��
L���C��I�1�1��U���Ic�$�1��H�H����H	�H��H�1�����Ic�$�H�H��H����H	�H��+���I�w�I�L�����H������I�O�I�w躑�g���Ic�$�H�H��H����H	�H��ڷ��I�71�L���G��H��H�������1�1�1���9��Ic�$�H�H��H����H	�H�鎷��I�71�L���G��H��H���u���1�1�1������Ic�$�H�H��H����H	�H��B���I�w�I�L�����H���+���A�l$@��u	A�\$<��tH�5�
L������I�w�I�1ɿT���Ic�$�1��H�H����H	�H��H�1��S��Ic�$�H�H��H����H	�H�騶��I�w�I�L�����H��鑶��I�L��H�0H�P�7*��1�1�1�����Ic�$�H�H��H����H	�H��L���A�D$@��u	A�D$<��tH�5/�
L������I�1�1��U���Ic�$�1��H�H����H	�H��H�1��v��Ic�$�H�H��H����H	�H��˵��A�D$@��u	A�D$<��tH�5��
L���b��I�w�I�1ɿT���Ic�$�1��H�H����H	�H��H�1�����Ic�$�H�H��H����H	�H��H���I�w�I�L�����H���1���I�w�I�L�����H������I�w�I�L�����H������I�O�I�w躑�g�t��Ic�$�H�H��H����H	�H��ɴ��I�71�L����D��H��鴴��I�71�L����D��H��韴��I�w�I�L���XK��H��鈴��I�71ɺ�(���Ic�$�H�H��H����H	�H��Q���I�W�I�w�L���	K��H���9���I�w�1ɺ�(���Ic�$�H�H��H����H	�H�����I�_����I�1ɿEH������j��Ic�$�1��H�H����H	�H��H�1��>��Ic�$�H�H��H����H	�H�铳��H�����1�1�����Ic�$�H�H��H����H	�H��[���I��S���H�54�
L�����1�1�1�����Ic�$�H�H��H����H	�H�����Ƅ$�$I��H�@��$�H��$�H������I�w�1ɿOH���[��Ic�$�H�H��H����H	�H�鰲��I�I�w�1ɿO�%��Ic�$�H�H��H����H	�H��z���I�I�w�1ɿN����Ic�$�H�H��H����H	�H��D���A�D$0��6���I�W�I��$�H��tH�����H��L���E��I��$�1�1�1�����Ic�$�H�H��H����H	�H��ֱ�����̱�����±����鸱���&鮱���^餱���|隱��I�1�1��P���Ic�$�I�w�H�H����H	�H�H��tH��L���bD��H���R���A�D$0��D���I�1�1��P�
��Ic�$�H�H��H����H	�H�����I�7H��u�!fDH�FH��tH��H�H������t�I�7L�����I�W�I�w�L��I��o?��H��鿰��I�7H��u� DH�FH��tH��H�H������t�I�7L���R��I�_�I�H�C�z���I�7H��u�#�H�FH��tH��H�H������t�I�7L���
��I�O�I�W�L��I�w�M��#!��H���#���I�_�I�7H��tH�H���������H��tL����M��H��H�ڹ��j��Ic�$�H�H��H����H	�H�鿯��I�7H��u� DH�FH��tH��H�H������t�I�7L���R��I�O�I�W�L��I�w�M��k ��H���k���I�7H��u�$f�H�FH��tH��H�H������t�I�7L�����I�G�H���TnI�H��L������I�W�H����&nH���u
I�G��I�w�H����g��Ic�$�I�w�H�H��H����H	�H�H�������H�����馮��A�D$@��u	A�D$<��tA��$�I��$�H���
1����I�W�1�1�1���
��Ic�$�1��aH�H����H	�H��H�1���
��Ic�$�H�H��H����H	�H�����I�_�H��u� DH�CH��tH��H�H������t�I�7H��tL����K��H��H��1ҿ�S
��Ic�$�I�7H�H��H����H	�H�H�������H���p��铭��I�_�H��u�H�CH��tH��H�H������t�I�7H��tL���EK��H��H��1ɿ��	��Ic�$�I�7H�H��H����H	�H�H��� ���H����������I�_�I�7H��tH�H��������H��tL����J��H��H�ڹ��Z	��Ic�$�H�H��H����H	�H�鯬��I�H��u� DH�BH��tH��H�H������t�1�1�����Ic�$�I�w�H�H����H	�H�H��t6H�H������t�%f.�H��H�H������u	H�VH��u�1�H�¿���Ic�$�H�H��H����H	�H����I�w�I�_�I�o�H��tL���I��H��H��H���G��Ic�$�I�w�H�H��H����H	�H�H�������H���c��醫��I�W�I�w�#I����Ic�$�I�w�H�H��H����H	�H�H���E���H������8���I�w�I�L���a��I�O�I�W�#I�w�I����Ic�$�I�w�H�H����H	�H�H�C I�H�����H���ת��H������ʪ��I�W�I�w�#I��=��Ic�$�I�w�H�H��H����H	�H�H�������H���Y���|���I�w�I�L�����I�w�I�G�I�H�F H�s H���P���H��� ���C���I�_�I�H�C �3���I�1�1��$���H�H��IcD$\��H��H	�H�����I�_�I�o�I��$��E#��1�H��H��H���e��Ic�$�1��H�H����H	�H��H�1��9��I�w�L��H�H��IcG��H��H	�H��s2��醩��I�D$ H�DI�D$ �r���I�W�1�1������Ic�$�H�H��H����H	�H��=���I�W�I�w�1ɿ���Ic�$�I�w�H�H��H����H	�H�H�������H��������I�w�I�_�H��tL����F��H��H�ڹ��N��Ic�$�I�w�H�H��H����H	�H�H�������H���j��鍨��I�l$ 部��I�D$ H�DI�D$ �o���I�w�I�_�H��tL���BF��H��H�ڹ�����Ic�$�I�w�H�H��H����H	�H�H������H����������I�l$ ����I�D$ H�DI�D$ ���I�w�1ɺ�(�a��Ic�$��H�H��H����H	�1�H�1��5��Ic�$�H�H��H����H	�H�銧��I�_�遧��I�7L���J��1�1ҿH������Ic�$�H�H��H����H	�H��B���I�7L���OJ��1�1ҿ
H�����Ic�$�H�H��H����H	�H�����I�7L���J��1�1ҿ,H���o��Ic�$�H�H��H����H	�H��Ħ��I�7L������I�7H��H�������H�������H���p��铦��I�1�1��&�
��Ic�$�I�7H�H��H����H	�H�H���W���H���'���J���I�w�I�L���s��I�O�I�W�#I�w�I����Ic�$�I�w�H�H����H	�H�H�C I�H����H�����H������ܥ��I�w�I�1ɿE�Q��I�w�Ic�$�H�H����H	�H��H�1��#��Ic�$�H�H��H����H	�H��x���I�I�w�1ҿ����Ic�$�H�H��H����H	�H��B���I�w�I�L���;��1�1ҿH�����Ic�$�H�H��H����H	�H����I�71�1ҿ�v��Ic�$�H�H��H����H	�H��ˤ��I�1ɿEH������=��I�w�Ic�$�H�H����H	�H��H�1����Ic�$�H�H��H����H	�H��d���I�w�H�����1ҿ����Ic�$�H�H��H����H	�H��*���I�1�1�����Ic�$�H�H��H����H	�H����I�I�w�1ɿT�k��Ic�$�H�H��H����H	�H����I�_�鷣��I�G�I�_�I�D$(饣��A�D$0闣��I�D$(I�I�D$(遣��1��z���A�D$0�l���I�G�I�W�I�D$(H����rH�
H��H��������uIcG��H��H	�H�1�1����Ic�$�H�H��H����H	�H�IcO��H��H	�H����I�D$(A��$�I�H�����I�D$(H!�H	�麢��I�1�1��$�1��Ic�$�H�H��H����H	�H�醢��I�71�1ҿH��Ic�$�H�H��H����H	�H��R���I�I�w�H�H������(u)H�H��H������HuH�^H�H������(�.uL������H������I�O�H�H��H������HuH�qH�H����I���(��SH��L���09��H�����I�I�w�H�H������(u)H�H��H������HuH�^H�H������(�AtL���A��H���q���I�O�H�H��H������HuH�qH�H����I���(��IH��L���8��H���.���I�71�1ҿH��Ic�$�H�H��H����H	�H����A�D$P���1�1�1��-�d��Ic�$�H�H��H����H	�H�鹠��1�1�1��-�1��Ic�$�H�H��H����H	�H�醠��I�w�L�����H���r���1�1�1��,���Ic�$�H�H��H����H	�H��?���I�w�L����4��H���+���I�_�H������1�1�1��)��Ic�$�H�H��H����H	�H����I�1�1��U�b��Ic�$�H�H��H����H	�H�鷟��I�I�G�H�C 駟��1�1�1��\���Ic�$�L��H�H��H����H	�H��Y=���!L��H�����H���Y���I�w�H��tL���0=��H�ƺ!L������H���0���A�D$PI�G�H��u�UG�H�@H���GGH�H������t�1�1�H�ƿ`�s��Ic�$�H�H��H����H	�H��Ȟ��I����I�G�I�L��H�p ����I�I�G�H�C 非��I�w�I�_�I�o�H��tL���l<��H��H��H����Ic�$�I�w�H�H��H����H	�H�H���E���H������8���I��I���1�1ҿ9H����Ic�$��(H�H��H����H	�1�H���t��Ic�$�L��H�H��H����H	�H�H���4��H��黝��I�o�H�EH��H������:��`1ɺH��(I����Ic�$�L��H�H��H����H	�H�H���(4��H���X���I�_�I�H����`H���?���H�{tH�z�7fH�K H��H��tH�AH�JHKH�P H�B H���p`H�PH�C H�P��I�I�O�A��$�H�C H�H�@H�@H�@H�H H�@@A��$�騜��I�G�H��u� DH�PH��tH��H�H������t�H��$�H��$�L��H���*���I�_�H��$�I��$����1�H��H��H����I�wȿMIc�$�H�H����H	�H��H�I�W���L��H�H��IcG���H��H	�H��o#��I�G�A�l$<I��$��Л��A�D$<1�L��A�D$0�?���I��$�IDŽ$�鞛��1�闛��I�_�鎛��1�1�1��)���Ic�$�H�H��H����H	�H��[���I�w�I�H��tH���TgH��L���S4��H���3���I�w�H�H������>�2gH��I�w�L����1��H������1����I�H��u��f�H�CH���ۚ��H��H�H������t��Ě��I�?H����c�+
��I�w�H����cH��tH��L���-��H��鎚��I�H��tH�����H���v���1�1�1�����Ic�$�H�H��H����H	�H��C���I�w�L�����I��$����I�_��!���I�H���cA�L$H����AH�H������u�Z�H�BH��tH��H�H������t�I�I��$�I��$�����I�I��$H���<A�NA@H��H�B H��u�H�BH��u��H�HH��tH��H�H������t�H�BI��$�H��I��$��Y���A�|$H�A�D$0����wL�����'���I�W�I��#I�w���Ic�$�H�H��H����H	�H����I��$��
��A��$�I�H�����H!�H	��˜��I�7L���$��H��H�������1�1�1���#��Ic�$�H�H��H����H	�H��x����2�n����0�d����1�Z���I�7H��tL���26��H�ƺ!L������H���2���I�7H��tL���
6��H�ƺ!L������H���
���I�7H��u�#�H�FH��tH��H�H������t�I�7L�����I�H���Ɨ��1�1�1��\�>��Ic�$�H�H��H����H	�H�铗��I�鋗��I�w�I�L���'��H��t,1�H��1��D����Ic�$�H�H����H	�H�H���C���I�7H�����L��IDŽ$��M'��H��t,1�H��1��D���Ic�$�H�H����H	�H�H�����I�w�I�L��IDŽ$��&��H��t,1�H��1��D�C��Ic�$�H�H����H	�H�H��阖��I�L��H����3��I��$�H��H�:��I��$�I��g���I�I�o�H�P H��H�EH�E H��tH����tH��L���?)��H�E I�?�s���&���I��$��H�:H�����tHcGH��H�RH��H��tHcZH�H��H��H����I��$�H�@H������<DH�x�1DI�o�1�1�H�޿/�1��Ic�$�H�޿BH�H����H	�1�H��H�E���Ic�$�H�H��H����H	�H�I�G�H�C �K���I�71ɺ�BIDŽ$����Ic�$�H�H��H����H	�H�����I��$�I�H�8H����I��$�I����I�7L���/2��I��ϔ��H�5��
L��1��v���鹔��H�5:�
L��1��`���飔��H�5�
L��1��J���鍔��I�酔��I�_�H���H��H�P H��u�I�H�P �d���I��\���I�w�I�L��IDŽ$��i$��1�1��CH�����Ic�$�H�H��H����H	�H��
���I�w�I�L��IDŽ$��$��1�1��CH���i��Ic�$�H�H��H����H	�H�龓��I��$��H�8H�����tHc_H��H�PH��H��tHcBH�H��H��H���!��t���I�7L���/��I��a���I�_�H��H��u�P����H��H�P H��u�I�H�P �0���I�H���v	����@H�5$�
L������I�H��L���&/��I��$�H��H�8��I����I��$��H�8H�����tHc_H��H�PH��H��tHcBH�H��H��H���F�陒��I�H���v��tH�5i�
L���1���I�H��L���.��I��$�H��H�8��I��P���I�_�H���H��H�P H��u�I�H�P �/���1��(���I�� ���I�H�H������+�?H�CH��tH�x�?1���������I�W�I��L���Y���H���ɑ��I�W�I��L���=���H��魑��I�7H��u�H�FH��tH��H�H������t�I�7L���B���I�w�I�L����)��H���c���I�7H��u��H�FH��tH��H�H������t�I�7L�����I�w�I�L���)��H������I�w�I�1�L���"��H�������5��H�������A��$����H�5b�
L���J���͐�����H����������A��$������H�5"�
L�����阐���˸�H����������A��$��w���H�5lL�������c���I�7H��u��H�FH��tH��H�H������t�I�7L�����I�H���&���1�1�1��\���Ic�$�H�H��H����H	�H���1�1�1��
�k��Ic�$�H�H��H����H	�H����A�D$0I�\$I�D$餏��I�_�I�/H���SNH�������H�H��H������:�kN��;tB1ɺ��;����Ic�$�L��H�H��H����H	�H�H���%��H��H��H��L����%��H������1�����I�w�I�H��tH���NH��L���	(��H�����1����I�w�I�H��tH���[H��L����'��H��麎��1�鳎��I�G�H�x����I�_�H���"��I�W�I�w�L��H�CH��䀀�9H��B%��H���r���1��k���I�W�I�w�L���#%��H���S���1��L���I�_��C���1�1�1��)���Ic�$�H�H��H����H	�H�����I�_�����1�1�1��)���Ic�$�H�H��H����H	�H��ԍ��I�_�H�H��H������>��YI�_��䀃�;�@?��fH�I�w�H��L���]$��H��鍍��H�����A�T$0A�D$0H!�H	��j���I�\$I�D$�W���H�����A�T$DA�D$DH!�H	��4���I�D$ I�\$(I�I�D$ I�D$(����I�G�I�1�1��>I�D$�~��Ic�$�H�H��H����H	�H��ӌ��I�H�H��H������HuH�ZH�H������(HE�餌��I�71ɺ�(���Ic�$�H�H��H����H	�H��m���I��t_1�1�1��_����Ic�$�I�w�L��H�H����H	�H��H��$��I�W�I�G�H��tH���"GH��L�����I�G�I�O�I�W��I�7�z��Ic�$�I�w�H�H��H����H	�H�H���XH�������H�����鰋��I�W�I��I�w��#��Ic�$�H�H��H����H	�H��x���A�I�_��D$@H���l`H�H��H������:�4`��;tt1�H�޺�(���Ic�$�1�1�H��H�H��%�H	�I��$�H��߬�H�ٺ�;H���z��Ic�$�H��H�H��%�H	�H�H��L$@H�s��H�€�?��@��HE�H���H�CH��t
��L����H�k H����5L�t$HI��L�l$PI��H���E1�M�m M����5I�UH�H������:u�H�Z�T$@L��H�������l!M���c!I�vH���U!L9�tH�vH��L�����������1�H���u��I�E I�}I�F �4��L��M���)���g���I�G�H���]VH�H��H������:�9V��;�"V1ɺH�ƿ(�$���=Ic�$�H�H����H	�H��H������Ic�$�H�H����H	�H�H���G���I�w�I�O���H��tH�H������[��D�#���Ic�$�H�H��H����H	�H�I�w�H�����H������߈��I�_��ֈ��1�1�1��)�N��Ic�$�H�H��H����H	�H�飈��I�H���cTH�H������>�@TH���|���I�?���1�1ҿ9H������Ic�$�H�H��H����H	�H��@���I��8���I��0���I�_��'���I�w�I�H��tH���|TH��L���!��H�����I�_�I�o�I��$��B��1�H��H��H���b��Ic�$�1��H�H����H	�H��H�1��6��I�w�L��H�H��IcG��H��H	�H��p��郇��I��$��	��A��$�I�H�����H!�H	��V���I�_�I�o�I��$����1�H��H��H�����Ic�$�1��H�H����H	�H��H�1����I�w�L��H�H��IcG��H��H	�H������چ��I��$����A��$�I�H�����H!�H	�魆��H�5փ
L��1��T�闆��1�1�1�L���	��A��$�H��H�@ H�H�@H�@H�@H�@ H�@@A��$��>���I�A��$�H�C H�H�@H�@H�@H�@ H�@@A��$���I�O�M�1�1�M�G�I��$��/��H���υ��1�1�1��'�G��Ic�$�H�H��H����H	�H�霅��I�1�1��&���Ic�$�H�H��H����H	�H��h���I�w�I����#����H�H��IcG���H��H	�H��3���I�W�I�w�1�I��$�M�M�G��m��H���
���I�W�I�w�E1�1�M�I��$��H��H�����I�O�I�W�I��$�I�w�M�M�G�� ��H�����I�O�I�W�E1�I��$�I�w�M����H��附��1�1�1�L�����H��郄��I��{���I�1�1�L�����H���d���I�W�I�1�L���k��H���K���I�I�w�I�O�A��$�H�C H�H�@H�@H�@H�p H�H@A��$�����I�w�M�E1�1�I��$�1��=��H���݃��I�O�I�w�1�I��$�M�M�G����H��鷃��I�O�I�w�E1�1�M�I��$���
��H��钃��I�I�O�A��$�H�C H�H�@H�@H�@H�@ H�H@A��$��G���I�O�I�W�1�I��$�M�M�G��
��H���!���I�W�M�1�1�M�G�I��$��]
��H�����1����I�71�L�����H�����I�71�L�����H���̂��I�7L�����H��H�������1�1�1���-��Ic�$�H�H��H����H	�H�邂��I��z���I�_�H��H��u	�i����H��H�P H��u�I�H�P �P���I��H���I�7H�����L���^��H��t,1�H��1��D���Ic�$�H�H����H	�H�H�����I�_�A�D$0ADŽ$��߁��1��D$0�Ё��I�_��ǁ��A�D$0ADŽ$�魁��A�G�I�_�A�D$0ADŽ$�A�D$L醁��H�����A�T$LA�L$0A�D$LH!�H	��Z���I�W�I�w�L��I��_��H���?���I�w�H����)H�H���Ѓ���@u/��H��(H��s ��UDH�FH��tH��H�H������t�I�w�L�����>)A�D$0�΀��I�7H��u�@H�FH��tH��H�H������t�I�7L���b�I�H�������1�1�1��\���Ic�$�H�H��H����H	�H��[���H�5�
L�����G���A�T$<1�L��A�D$<H�����H!�H	��������H�����A�T$@A�D$@H!�H	����I�o�I��$�I�_��:���1�1�H��H���[��I�w�QIc�$�H�H����H	�H��H�H���,��L��H�H��IcG��H��H	�H��
���}��E�L$@E��u
E�D$<E��tH�5��
L����1�L������A��$�H�����H!�H	��3��I��$��H�
H������tHcAH��H�RH��H��tHcj��H����1ҿB1�1�H�D$HH���^��M�G�H��Ic�$�H��H�I��$�H��H�|$@%�H	�H�I�H��������=�P���'����'1�1�H��/����I�w�1ɿ(I��Ic�$�H�L�D$@H��%�H	кI����Ic�$��H�H��H����H	�1�H�1����Ic�$�L�D$@L��H�H��H����H	�H�L���B��H�C 1�1�1�L������E1�H��1�I��H��I��$����H�\$HI�W�H��1�H�����Ic�$�1��	H�H����H	�H��H�H�H�kI�O�����Ic�$�I�w�H�H��H����H	�H�H���2}��H�����%}��I�l$ �}��1��}��I�w�L��I��-�1ɺ�(H���y��Ic�$�L��H�H��H����H	�H�H�����H���|��A�D$@1�L���8��I��$�IDŽ$��|��I�_�I��$�����1�1�H��H�����I�w�RIc�$�H�H����H	�H��H�1�����L��H�H��IcG��H��H	�H�����"|��A�|$@��u	A�t$<��tH�5i�
L����1�L�����A��$�H�����H!�H	���{��I�_�I��$��!���1�1�H��H���B��I�wؿSIc�$�H�H����H	�H��H�1����Ic�$�I�w�H�H��H����H	�H�H��vH���4�L������A�G�A�D$@A�G�A�D$<�={��A�D$0��/{��I�G�H��u�@H�PH��tH��H�H������t�H��$�H��$�L��H�����I�_�H��$�I��$��)�1�H��H��H���I��Ic�$�1��LH�H����H	�H��H�I�W����L��H�H��IcG؁�H��H	�H����I�G�A�l$@I��$��Zz��荢�H������Hz��A��$��9z��H�5'j
L������%z��1�1�1�����Ic�$�H�H��H����H	�H���y��I�w�L���^���I��$��q��I�_���y��I�_�I�W�I�O�H��H���#"H�޿�3��Ic�$�H�H��H����H	�I�H�H��t-1�H�ƿ���Ic�$�H�H��H����H	�H�I�w�H���Ky��H���Ay��H�����4y��I�W�I��$�H��tH����<H��L�����I��$�1�1�1�����Ic�$�H�H��H����H	�H���x��I�?H����V�;�I�w�H����VH��tH��L�����H���x��I�H��tH����H���x��I�H��u�yx���H�CH���kx��H��H�H������t��Tx��I�_��Kx��1�1�1������Ic�$�H�H��H����H	�H��x��1�1�1��
���Ic�$�H�H��H����H	�H���w��1�1�1���]��Ic�$�H�H��H����H	�H��w�����H�������w��A��$���w��H�5ѶL������}w��谟�H������kw��A��$��\w��H�5n�L�������Hw���{��H�����tA��$�tH�5
<L�����A��$�H�����H!�H	��w���6��H�������v��A��$���v��H�5�f
L���K�����v�����H�������v��A��$���v��H�5f
L�������v���̞�H�������v��A��$��xv��H�50f
L������dv��@M��M��1��{��L��������#���D$XH��$�L�t$L�|$XI��L�|$@�D$`L�l$@A���2D��I��$�D�D$PL��I��$�H�T$H�s��������t(I��$�H�B�I��$�I;�$�v
�z�
�hM��E1�1ɺ
D��L���&2��������
��L���:�L������I��$�I;�$�tiH�JI��$��<
�?���I;�$�s
�z
��A��$��
A;�$�����A��$�I��$�H�Yp
1�蚷���I�D$xI�D$xH��u*I�|$��SI�|$h�d#L�����H���R#A��$����*ADŽ$�A��$�H���A��$��� u(H�PH��I��$���H�I�D$pI��$����H�PH�HI��$��ـz�
�����H��I��$��}���L�t$XL�|$`L�l$PI�t$L���/��1�1�H������)���Ic�$�M�D$H��H��:�?H��L�D$��H	�1�H�1�I�D$�J��Ic�$�L�D$�D$>H�H����H	�H�I�A��$����v��A��$������1�D�D$I��H�K�8H��]
H�
Ua
H�;�5��HcD$H�
��
H�;�4A�=�H�3�
�p���D$0�s��I�T$`IcD$T�L$@�Ict$TI�|$`M��$�H��$��"��1�1ҿ:H��I�\$�\��Ic�$��D$>H�H����H	�H�H��?A��$����u��H�T$XH�t$`������_D��$���$�E����D\$@�D$H�\$@����0��z���z��H��I��$���|��A��$��D$ ���u��D�D$PH�L$@I��$�H�T$H�����O{��I�t$L�����A��$���I�D$�pA�D$0�D$\��t���|$�M��M��H�$���v���w��M��M����v��A��$����D$ ���wt��H��I��$��R���A��$�H�
�p
1�I��$�I��$����I�|$�v��I�D$��s����L���N���~��A��$�H�
�p
1�I��$�I��$��b��I�\$H�K�0y��M��M��H�$��v��	D$�d~���D$D$H�D$���t(I��$�H�P�I��$�I;�$�v
�x�
��"IcD$T��tUI�T$`L���H�
�]
�H�(HI��$�A��$�A�|$TLN�A��$�M�L$`1�I��$����D$@H�\$PI�|$����D$��Q��I�D$�r��Ict$TI�|$`M��$��L$`H��$�L�t$L�|$XL�l$@���1�1ҿ:H��I�\$�;��Ic�$��D$>H�H����H	�H�H��?A��$����~r��I�|$L�t$L�|$XL�l$@�C{���r{��Ict$TI�|$`M��$��L$`H��$�L�t$L�|$XL�l$@�]��H������x�
�A��$����D$ ���q����A��A�����A��$�I��$�H�
s
1�A��$�I��$��,���S���H�{ �;{��A��$�H�C�������D$ ���q��L���.���D$����#L�����L���
��������[�D$G�e���A��$�1�L�t$@H�
o
I��$�A��$�I��$�L�l$H�{��A��$����"i��H�tD�l$P��H��H���MA�L���z����5|���H��/v�I�D$pL�t$@A��$�L�l$HI�D$xI��$�I��$��|��H�HH9�v
�x:��u��L����I�|$�r螙��D$^A��$�I�D$A�D$0���2p��A��=��IA��>�%O�A�D�����0�L$P���0t����
A�D$0A���t(I��$�H�P�I��$�I;�$�v
�x�
�}N��u����NA��$��}���o���^�D$J�Ƃ��A��$�I��$�1�H�
�q
A��$�I��$����A��$����eg���|$\�rt���D$=B��n��=^������R}���{���I��H���z��L��H��H)��a���H���z��H�D$hL)�H�D$`L�h�L��$�L�d$M��~>A�L���@���t<<;wH��H��r���ͽ�tH��I��u�L��$�L�d$�y��I��A�$<;wH��H��r��艽�tYM���
I��I��t�A�>�m��u�A�<:�d���L�d$x�A�~�L����M��M��M��M�~I��u��m���I��I���t����Z���f�M��L�l$@A��$�����e��A�D$0駈��A�D$0�_�D$K�m����tADŽ$�A�D$0�|}���c�D$O�O����a�D$M�ˁ��A��=�2.�A���������L$P���0t��u]A�D$0A���t(I��$�H�P�I��$�I;�$�v
�x�
�[.��u���(.A��$��|���l��A���L$HD�D$@���D�D$@�L$H��u�A��$�I��$��+H��k
D�D$���D�D$A�D$0A����{-I��$�H�P�I��$�I;�$�v
�x�
�q-A���־���A��$��D�D$����k��H�����D$ I��$�A��$�����k��M���Q��A��$��uA�D$0���k�����{���0t��T$P��{��I��$�I;�$���AH�BI��$��
��
�uA��1Ƀ�-��B��'t��`����L��L$X襾���L$XL����W����9�����L���������@I��$�I;�$�tjH�BI��$��
��
u�I;�$�s
�z
��@A��$��
A;�$�~�I��$�H��b
1��L$XA��$��'��L$X�i���I�D$xI�D$xH��u*I�|$��?I�|$h��?L���{�H����?A��$�����ADŽ$�A��$�H���A��$��� �cH�PH��I��$���H�I�D$pI��$�������t(I��$�H�P�I��$�I;�$�v
�x�
��>��uD�\$PE����>A��$��vA�D$0���i��A�D$0�������A���0t�\$P��t��葸���A��$��WA�D$0�D$C���!i��A��D�D$蔚�D�D$���^�)A��(t&�]A��[tA��{�2�>A��<tD��E1�D��1ɾ�)���f	�Hc��5��Ic�$��D$RH�H����H	�H�I�D$A��$����{h��I;�$�s
�y
�G;A��$��D$@
A;�$���I�|$u;I��$����
H��PX�������I��$��@����l���<_�d���I��$�H�P�I��$�I;�$�v
�x�
��#A��$�D�D$@1�H�
�i
I��$�A��$�I��$����A��$�����_��I�D$xI�D$xH��u*I�|$��!I�|$h��!L����H����!A��$�����ADŽ$�A��$���A��$�H��� �MH�HH��I��$���H�I�D$pI��$�醂��L�������t-��@t(I��$�H�P�I��$�I;�$�v
�x�
�3A��$���A�D$0���f��I�D$xI�D$xH��u*I�|$��9I�|$h��9L����H����9A��$����ADŽ$�A��$�H�0��A��$��� ��H�PH��I��$���H�I�D$pI��$����A�D$0L������]��L������=��@����@I��$�A��$�H�J���I��$�I;�$��m@�z�
�*F�S�D$��}e��fDA��A�<"�PM��E���A�<;�<"���腴���I��I��u�L�t$pE��E1�L�d$xH�D$`I)�H����H��L��D��$��o��H�D$`D��$�H�8�� H�|$x��
H�xL��H��D�D$x���D�D$xH�D$`H�H�\$x�� H�Xt	H�D$`H�X1�M��~H؀8-u�_A��Ic�I9��H�aD8H�=��L��H�D$xL��M��I��L��H������t-H�D$xH�D$xH�=pD8H9���H�8L��L�����u�L�d$pH��L��M��I��I)�H�D$xH�@H��tL��L��H�|$��I��H�D$hH���
H��L���R��H�D$hH�8H�|$p�� ��H�xL��L���ک�H�L$hH�D$xH�9H�@H�QH�|$p�� t	H�|$hH�WH��H�|$����M����H�D$L��H��D�D$xH���輎�D�D$xH�D$`���L�t$pE��M��E��A�<;t���o��t
I��I��u�E����M�~I���%CA�N��"��?L���!M��M�l$�M�����HH�Ѐ�"��H�P��\u�H�HI��H��H����1ɺ/��)�(��Ic�$��h�D$TH�H����H	�H�I�D$A��$����ib��A��$���A�D$0���Jb��I��$�I;�$�s	�8=�{���t$L���T����4{��A���L$HD�D$@�M��D�D$@�L$H����A��$�I��$��-H��`
D�D$腎�D�D$A�D$0A����/=I��$�H�P�I��$�I;�$�v
�x�
��@A���<��A��$��Z�����D$`�ea��A��$����|$\�c��aY���L��������.�u
�����:I��$�A��$�H�J���I��$�I;�$���:�z�
��:�Q�D$���`��E1�I��$��H��K
�@������x��A��$�I�D$��A��$����X��A�D$0�\`���x�
��t��H��I��$��t��H�PH�pI��$��A���A��$����1ɺ`��)诹�Ic�$��g�D$SH�H����H	�H�I�D$A��$�����_��A����y��A�B���
��y��A�B�����<A�IH��~
�<
D�A�1A���2����2��y��Hc�H��:8Hk�H�T$pH�L�A:0�wy��I�yI�pD�T$hD�\$`L�L$@L�D$P�֠�L�L$@D�\$`��D�T$h�?y���CA�ÀL�D$PH�T$pA�D$0�?�tADŽ$�Hk�H�:8L�A��$�A�P������@A���T$��V��A�X�\$9���V��A�D$0��V��f��D$4�Qx��I��$�H�P�I��$�I;�$�v
�x�
�);A��$�I��$�A��A��$�I��$����|$6A��$��]<1�H�
Na
���A��$����HV��A��$��y���	^��A��$��E�D$�����]�����T$H�L$@����T;A�D$0�L$@�T$H�k�������IA��$�����]��I��$�I;�$�sxI��$��:�
H��PX��uI��$����x<_��y��I��$�H�P�I��$�I;�$�v
�x�
��<A��$��uA�D$0���]����\��y����L���.����y��A�D$0����\��A�D$00u���	���z���H��y
Hc�H�>���L���G�����Zy���E~��D��L���N���
A��I��$�D��D�D$H��PX��u[I��$�D�D$�x�xHA����t��)A��(t�]A��[t�}A��{�$�S���/wH�
cy
Hc�H�>��H�5�F
L���¾��A��$����)T��A�D$0L�������=������~I��$�H�P�I��$�I;�$�v
�x�
�f!A��$��M�D$����[���x�
�1r��H��I��$�� r��I��$H����!H��L���a�H��I��$����1�H��1�H���´�Ic�$�L��H�H����H	�H�I��$����
X��Ict$TI�|$`�6A�D$0I��$���I�T$�D$5H�A��$�����Z��1����L���}�H���W��H�5�_
L���V���I�_��W��H��tAA��$�I��$�H�^
1��
��I�W�H��tH����H��L���]�H��H��I�H��H������H������1�1�1��\诳�Ic�$�I�7H�H����H	�H�H��tH��L����H�����1�1�H��/L�D$@�c��L�D$@1�L��H�Ic�$���H��H	�1�H�1�I�@I�G�H�CH�C ���E1�1�1�I��H��I��$����������"�5�I�|$��+I��$��L$X�
I��$��z�H��PX�L$X��uI��$��@���x<_�}+L��L$X莬���L$XL������=�����L����������.I��$�I;�$���,H�BI��$����
��+I�|$u/I��$��x��
H��QX��u�I��$��@�<_t���x�I��$�H�P�I��$�I;�$�v
�x�
�2,�"IcD$TI�T$`�I��$�I+�$�I�L$pIct$TI�|$`H�D$I��$�I��$�H�L$@I��$��t��H�L$@H�T$�(H���}��Ic�$�H��H�I�D$H����H	�H�A��$�����`�x+�f�D$R�W��H�} L�t$HH��L�l$P��T��H�H�sL��T$@�䀀�9H��O���H�C�nT��A��$�I��$�H��O
1����I��$���H�D$`H�x�c�H�T$pH�D$pM�l$�E��L�pM��������H�T$pI������рx�
�@r��H����I��$�A��$�����V��I��$�I��$�1�L�d$`L�-�t
A��H�D$H��H�D$H)�H��~{�C�Pƀ�5w]��IcT�L�>��H����H����H����H���H���H���L�sA��H�5^�H���ʷ���L�����L�s�q��u���L�d$`�Na�����E�D$��V��1�遗��I�G��|��I�G��7}��1ɺ1��(�`��Ic�$�L��H�H��H����H	�H�H���w�H���R��H�����uH����H�����0���V����aH�
Lt
Hc�H�>��I��$�H�GH�����tH�x�B���H���+������/I��*���1�H�E�uH�����tH������:O��H��t<H�H������9��/|'��?��w1�H��H�޿8�O��1�L��H��虺��1ɺH�޿(�E��Ic�$�H��#H�H����H	�H��H����N��I�o�1�1�H�޿.�ʻ���+�b��I��$�L�t$I�D$L�|$XL�l$@I��$��(]��L�t$XL�|$`L�l$P�\��H�5FT
L���ֶ����b���z�
��b��H��I��$��b�����t(I��$�H�P�I��$�I;�$�v
�x�
��.A��$���A�L$0���S��A��$��R�D$����S��A��$��z���S��I�D$�Y�D$EH�^A��$�A�D$0���RS��A�D$0�`�D$LADŽ$��+S���x�
��r��H���zI��$�A��$����R���x�
�]q��H���yI��$�A��$�����R��H�HH�PI��$���A��$��q�A��$��XA�D$0�D$D���R��D�l$P����+H��/���L�������.���I��$�I��$�H�J����tI��$�H9�v
�z�
��+H��H�B�A�\$0I��$�H9���R���z�
��R���z�
��R��H��I��$��R��I�G��Bw��I�D$�Y�D$EH�&A��$�A�D$0���Q����@�t$H�L$@����
A�D$0�L$@�t$H�Eh��A��$������qQ����9H�{H����H�CI�_����L����H���>N��A�D$0�����I�D$�Y�D$EH�|A��$�A�D$0���P��A�D$0L�������=�y!����R!I��$�A��$�H�J���I��$�I;�$��U �z�
�/ �N�D$��P���x�
����H��I��$�����A�����D�A�D$0�yj���@L���}���L����������A��$�I��$�1�H�
�R
A��$�I��$��{��A��$����"H��L�������=�O���t(I��$�H�J�I��$�I;�$�v
�z�
�U�D$H�u�|$P�A��$��U�D$����O��L���1����>�������I��$�H�P�I��$�I;�$�v
�x�
�yA��$��L�D$����(O��A��$��w���O��L�������=�7����I��$�A��$�H�J���I��$�I;�$����z�
���V�D$��N��A��$��K�D$����N���x�
�8`��H���wI��$�A��$����dN��A��$��P�D$����FN��A��$��J�D$����(N��A��$��x���N�����p]��I��$�H�P�I��$�I;�$��N]���x�
�D]���x�
�:]��H��I��$��)]��1ɺ"���\��H�PH�HI��$���A��$��[�A��$��D�D$����qM��I�D$�Y�D$EH�*A��$�A�D$0���>M��L����������=�����t(I��$�H�P�I��$�I;�$�v
�x�
��t$PA�D$0���0t	@�����Au3����t#��u	@����F�D$��+a���b�D$N�a����@�t$H�L$@�ț�tnA�D$0�L$@�t$H�`��I�D$�Y�D$EH��A��$�A�D$0���=L����@�t$@�L$�m��tHA�D$0�L$�t$@�1���A��$�1�I��$�H�eI
�a�x�A�D$0�D$M�a`��A��$�1�I��$�H��H
�b�nx�A�D$0�D$N�,`�������t%A�D$0��������tMA�D$0�~�_��A��$�1�I��$�H�RH
�
x�A��$�H��H
1�I��$���w��A��$�1�I��$�H��H
��w�A��$�H�HH
1�I��$��w��r���A��$��|����J���x�
����H��I��$�����A��$��L�D$����J���x�
��Z��H���xI��$�A��$����J����跙���`���\�D$H�~`���x�
�h_��H���|I��$�A��$����0J���z�
t$�V�D$��J���V�D$��J��H���V�D$�I��$���I��A��$��V�D$�����I��I�D$�Y�D$EH��A��$�A�D$0���I�����И�tEA��$��U�D$����mI���Љ׉T$@蠘������D$8�T$@�k[��A��$�H�8G
1��UI��$���u�A��$�1�I��$�H�SG
�u��D$�A��$�����H��I;�$�s�x
t\A��$��D$@
A;�$���i��A��$�I��$�H��@
1��1����i���x�
�_l��H��I��$��Nl��H���D$@
I��$��i��A��$�H�!I
1��I��$��t�A��$�1�I��$�H�<I
��t�A��$����H���>A��<���D��E1����H�����L�������L���q�������d���oi��L���{��1�1�L��H��$�H���$�ƃ����H��$�L���y����@d��1��$�c���A��$�1�I��$�H�F
�c�t�A�D$0�D$O�E^���H�=�0
H�T$@���H�T$@H��@9�C��H���C��L���D���H�=�0
���H��@9�B���H�=��ί�H��@9�B��1�L��蘬��H�����H�H��������@��H��L���q���1���H���	B��D��L�d$`�A�F<=t<:��Q��M�n�M��M�nL9l$��Q��A�~袕�u��t�L���<-t<_t����w�tH��H9\$w�L)�L��L��H���$���L��H���y��H��H�pH� tH�pL��譚��1�H���cz��Q��H�D$hH�x��H�D$L��L��H����)q�H�D$h��I��$�I�D$I��$��D$@�������H��L���N����?��1�L���?���H�EH������9�0�����?�����1��r?��H��1�1Ҿ�1���y�H�E�.B��H�H��H�H����H�=�I
1��o�ƒ���t�@fW�~�@�H��H9�tjH�ƺH��H��?H)�H	�H��<H��H�T$@�D$@fW�~fH~�fH~�H��<��H9�t����t4H��H���H����bu��>����
���G�����=���fH~�H��H��H���
���H���9A���x�
�X��H��I��$��G��D�l$L�t$@L�l$H�K\���䀀�;H��α��H����������������1�I�G����1�1�1��)�I��Ic�$�H�H����H	�H�I�G��x���H���C�1�1Ҿ�9�
��Ic�$��(H�H��H����H	�1�H���ۜ��9Ic�$�H��H�D$`H�H��H�D$@%�H	�1�H�1�衜�Ic�$��(H�H��H����H	�1�H���r��Ic�$�H��/H��H�H��H�L$@%�H	�1�H�1��?��Ic�$�I�w�H�8H����H��L��H	�H��H�����1�1�H��/H�D$P��Ic�$��#H�H�Ɓ�H��H	�H�L$@H����ʛ�Ic�$�H��H�H����H	�H��H�1�蝛�Ic�$��9H��H�D$hH�H��H�D$X%�H	�1�H�H��c81�H�0�^��Ic�$��(H�H��H����H	�1�H���/��Ic�$�I��H�H��%�H	�H�=5;9I���H�%;91�1�H��/L�D$pH�D$X���Ic�$�H�8H��H����H���#H	�H�L$@H���譚�L�D$p�#H�H�Ɓ�H��Ic�$�H��H	�L��H�H�T$X�u��1�H��/I��Ic�$�H�L�D$@H��%�H	�1�I��B��Ic�$��#H�H��H����H	�1�H��A���Ic�$��#H�H��H����H	�H�L$`H������L�D$@�Ic�$�H�H��H����H	�1�H�L��诙�Ic�$��H�H�Ɓ�H��H	�1�H�H�T$h耙�Ic�$�H�|$PH�H����H	�H�H�������H��H��L���������H���<����H�}��9H�E�IDH�EI�o���H�C H�P�<��H���p���H�=�
L�D$X�Q��L�D$XH�
99����A��$��M�D$����A?��I�D$�Y�D$EH��A��$�A�D$0���?��I�D$�Y�D$EH�+A��$�A�D$0����>��A��$��D�D$����>���x�
����H��I��$��t��A���ڍ�t1A��$��|���>���x�
����H��I��$����A��$�H��=
1��|I��$���j�A��$�1�I��$�H��=
��j�A��$����>��D��1ɾ�)���g	�Hc��r��Ic�$��D$SH�H����H	�H�I�D$A��$����=��D��1ɾ�)��	�Hc����Ic�$�H�H����H	�H�I�D$L���%�������諌�u���I��$�A��$�H�J���I��$�I;�$����z�
��j�D$V�=��D��1ɾ�)���e	�Hc��s��Ic�$��D$QH�H����H	�H�I�D$A��$�A�D$0����<��D��1ɾ�)���h	�Hc����Ic�$��D$TH�H����H	�H�I�D$A��$����V<��D��1�1��)���f	�Hc�蹕�Ic�$��D$RH�H����H	�H�I�D$A��$����;��D��1ɾ
�)��	�Hc��d��Ic�$�H�H����H	�H�I�D$L���l����������u���I��$�A��$�H�J���I��$�I;�$����z�
���i�D$U�Z;��D��1ɾ
�)��	�Hc�返�Ic�$�H�H����H	�H�I�D$L���ǵ�������M��u���lI��$�A��$�H�J���I��$�I;�$��,�z�
�
�k�D$W�:���z�
tB�i�D$U�:���i�D$U�:��A��$��i�D$U���m:��H���i�D$UI��$��O:���x�
����H���M�D$�I��$�A��$����:��I��$���H���i���I�G��`���H�J H�H������(�����H�IH�H������+�����H�Q钙��H���a��D��1ɾ�)��	�Hc��#��Ic�$�H�H����H	�H�I�D$L���+�������豈�u���<I��$�A��$�H�J���I��$�I;�$�vj�z�
tH�l�D$X�!9���z�
t�j�D$V�	9��H���j�D$VI��$���8���z�
���l�D$X��8���l�D$X�8���z�
tB�k�D$W�8���k�D$W�8��A��$��k�D$W���u8��H���k�D$WI��$��W8���j�D$V�E8��A��$��j�D$V���'8��A��$��l�D$X���	8��H���l�D$XI��$���7��A��$��G�D$�����7���x�
�}�H���L�D$�I��$�A��$����7��I�D$�Y�D$EH��A��$�A�D$0���f7���z�
���H��I��$���H��L������鰫��I��$�1�1��U�1�1ҿ:H��蚐�Ic�$�H�H����H	�H��n���H��鯘��L�����H��龘���}���H��L���}��H��H�H��H�������H�����I�w�H����3���ϧ��H��釫���怀�=H��1����怀�<H��#���I��$�1�1��9U�1�1ҿ<H�����A�D$0L��D�l$L�t$@L�l$H%�������A�D$0�װ����=����~t|��>tY��t>I��$�H�P�I��$�I;�$�v
�x�
��A��$��t����5��A��$��t���5��A��$��Z�D$F���5��A��$��O�D$����~5��L���'�����=������I��$�A��$�H�J���I��$�I;�$�v\�z�
t>�H�D$��"5���x�
�2���H���tI��$�A��$����4���z�
t$�H�D$���4���H�D$���4��H���H�D$�I��$��4��A��$��H�D$����4��A��$��I�D$����r4��I�D$xI�D$xH��u*I�|$�!X��I�|$h��L���`���H����A��$���~A��$�ADŽ$�A��$�H�A��$��� �>H�PH��I��$���I��$�H�I�D$pI��$���T��1�1��\鎍���x�
����H��I��$�����H���
I��$��MU��I;�$�s
�z
��A��$��
A;�$��V��A��$�I��$�H��+
1���r���U��I�D$xI�D$xH��u*I�|$��I�|$h��L���$���H����A��$���~A��$�ADŽ$�A��$�H�A��$��� uNH�PH��I��$���I��$�H�I�D$pI��$�I��$��'U��H���
I��$��)U��H�PH�HI��$�I��$��I��$�I�D$I��$�A��$�H�J��I��$���I;�$��2���z�
�	2���z�
��1��H��I��$���1��I��$�H��H��I��$�I;�$�v��x�
u��x�
u�H�P�I��$��r���I��$��\$H�P�I��$�I;�$�v
�x�
������T��IcD$TI�T$`H��$�L��$��A�D$T�
�p�I�D$`Hc�H�x���$�uuHc�H=���?wj1�1��4I�\$蕊�Ic�$��D$@H�H����H	�H�H��AA��$�����0���x�
�J���H��I��$��9���I�L$`H��2
1�A��$�I��$��+p�1��l���I��$�I�D$I��$��CT���z�
�2�N�D$��Y0���N�D$��G0��H�C H��tMH�@H�JHKH�P H�B H��t'H�PH�C H�P�
-��A��$������/��H�C H�P��,��H���H�C H��tTH�@H�JHKH�P H�B H��t.H�PH�C H�P�,��H�PH�HI��$�I��$����H�C H�P�,��H���A��$��N�D$����l/��I�D$�Y�D$EH��A��$�A�D$0���9/��H���N�D$�I��$��/��H�[H��tL������H��H��1ɿ�y��Ic�$�H�H��H����H	�H���+��A��$�I��$�H�

1�A��$�I��$�����kX��H��L���������+��I��$�I��$�H��跴���j+��I��$�L�ED��H�
��H��2
��m��b��H�5�3
L�����I�w�H���+����5���H���	y����H�s�T$@L���9H��و��H�C�*��I��$�1�1��L�T$@L��H��谈��1�1ɿ9H���O��Ic�$�H��H�H��%�H	�H��*��I��$�H�P�I��$�I;�$�v�x�
tT���I��$�A�D$0H�J�I��$�I;�$��S=���z�
�I=���z�
�?=��H��I��$��.=���x�
u�H��I��$��H�y�D$@
I��$����I;�$�s
�z
��A��$��
A;�$��
��A��$�1�I��$�H�%
�Kl�I��$�����I��$��\$I�D$I��$������\$�����I�L$ �qA�D$0A�D$8A�t$4I�T$(�D$]�L,���g�D$S�:,���x�
����H��I��$����I�D$xI�D$xH��u&I�|$����I�|$h��L���
���H��trA��$���~A��$�ADŽ$�A��$�H�A��$��� u[H�PH��I��$���I��$�H�I�D$pI��$�I��$����I��$��"I�D$I��$�����H�PH�HI��$�I��$��H�B�
I��$��V�����Zz��h���A��$�I��$�H�K+
�W�A��$�H�+
1�I��$��W��)����x�
�	���H��I��$����I��$�I�D$I��$�A��$�I��$�H�
/0
1�A��$�I��$����A�D$0�_:��H�[H��tL���5��H��H��1ɿ�Ã�Ic�$�H�H��H����H	�H��'�����Xy���A�D$0�{��@��H���
I��$��ƾ��I;�$�s�z
tA��$�A;�$�$1ɻ
�D��H��1ɻ
I��$��,��A��$�H��!
1��
I��$��i�1����I�D$xI�D$xH��u*I�|$���I�|$h��L���h���H����A��$���~A��$�ADŽ$�A��$�H�A��$��� ��H�PH��I��$���I��$�H�I�D$pI��$�I��$��P���I;�$��"I��$�H�PI��$����
���ٹ �;���I��$�I�D$I��$����A��$�1�I��$�H�'
�U�A��$�H�z%
1�I��$���T�����H�PH�HI��$�I��$��,���I;�$�s�x
t!A��$�A;�$�*� �
�g��H��� �
I��$��L��A��$�H��
1��
I��$��2g� ���I�D$xI�D$xH��u"I�|$�����I�|$htxL��艡��H��tjA��$���~A��$�ADŽ$�A��$�H�A��$��� uNH�PH��I��$���I��$�H�I�D$pI��$��?���I��$�I�D$I��$��Z���H�PH�HI��$�I��$��L�t$@L�l$H�����z�
t@I��$��p��I�D$�Y�D$EH�-A��$�A�D$0���k&��H��I��$��,���z�
tB�Q�D$��B&���Q�D$��0&��A��$��Q�D$����&��H���Q�D$�I��$���%��1ɿF�i�Ic�$�H�H����H	�H��d��1�1ɿ)�;�H�H��Ic�$���H��H	�H�I�w���c��1�I�G��c��H�5�*
L���&����.��H�C�����H���������H������q���M��1��X��H��鈩��I�G������S�D$��%��A��$��S�D$����$��A��$��T�D$�����$���x�
����H��I��$�����H���}�����	1���@���n���L�t$XL�|$`L�l$PI��$��G-��A��$��E�D$����o$���x�
��1��H���}I��$�A��$����C$��A��D�D$@�L$H�rs�D�D$@���0���A�D$0�L$H�0��L�t$L�|$XL�l$@��,��I�D$�Y�D$EH�%A��$�A�D$0����#���s�s�@U�A���sE���ٺ������x�
�[0��H��I��$��J0��A����r���A��$������g#��A��$�����Q#���x�
����H��I��$�����2U�L�|$p�����x�
��0��H��I��$���0���H�!B
�E��I��$�H�GH�����t$H�xt�H����������I��$�H��蜪������A��$��4�D$3���"��A��$��}���"��A��$��/1��hI��$�H�e!
�O�1ɺ/��)��{�Ic�$��D$TH�H����H	�H�I�D$A��$����"��A��$��4A�D$0�D$3����!��1�H�
�$
�D��A��$�������A��$�I��$�1�H�
A
A��$�I��$����A��$�������sA��$�I��$�H��
1���`�����r�ֹf�Ϲv�ȹn�t뺀x�
�y���H��I��$��h���A���Tp�tXA��$��}��� ��A��$��dA�D$0�D$P���� ���x�
�4���H��I��$��#���A��$�H�y 
1��}I��$��EM�A��$�1�I��$�H� 
�'M�A��$����e ���x�
�,��H��I��$����I�D$�Y�D$EH�/A��$�A�D$0��� ��I�T$L��H�T$�`�H�T$H��C�D$A��$������L�|$pM��鱺���x�
�_9��H��I��$��N9��I��$�I��$�H9�s��΃�@��>��8����=���=L���r��IcD$TI�T$`�D$3��9���z�
t-�S�D$��M���x�
�Y8��H��I��$��H8��H���S�D$�I��$�����x�
�7��H���I��$�A��$�������A��$�H�J 
1���I��$��vK�A��$�1�I��$�H�e 
�XK�A��$������H�HH9�v
�x:�n8��A�D$0L���#���Ict$TI�|$`I��$�I�\$�gK��D$9H��:A��$����5��A�T$8��tA;T$4tlA�D$ u6A�D$(tA�� tyD�ڃ���ۃ�����\$ۃ��������D$����H�HH9��17���x>�'7���,������A�D$8A�T$4�D$�����D$���D��AVAUATUS�wHH�����6���H���H��������H9���H�rH����
H��
����#�E���u(H���H)�H��~�z�u�z����H���H9���,H�{p�F�H���Hǃ��KH1����,�����H�߃�	Ј���������1�HǃHǃ�CHH�CHǃ�Hǃ�Hǃ�H�CxH�Cp��uMH��H���iH���H��t.H�U1ɿh�u�Hc��H�H����H	�H�H�EH��[]A\A]A^�H9�������z!�����������D�x�
�����x�
�����H��H������@H;��s
�z
�����;���s������H���H��
1���Z�H���H�P��H�����{q������H�-|9L���H����L�%M78H��I�<$�i^���Hǃ���H����H�=�k������^���L����r~�I��I��I��tE1�H�x�8L���&���@�?�H����������@H�CxH�CxH��u(H�{�����H�{h�H���a���H���������~Mǃ�H����������� u;H�PH��H�����H�H�CpH������fD�����H�PH�HH������1�1�1��\�(s�Hc��H��H�H��%�H	�H�E���fDH�BH�������[�H���H���H��H���H����~���H���H�CH����c����I�<$H�����H�Ũ� ���H�������������������"S�H��L��I��H���A]�L�����M����������H���1�1��7��I��f.�H��L����v��u싫������H�=6
�O��H��H��9�T�����~Hc����I��L��L��L���\����1��<�I����f���H�%29H�H�@@�ff.�f����ff.������fD���+�����+������fD��H���WH�w�?�q�H��H��H��1���H�5~����
�dY�H�59H����H��H�59�
�;Y��F�H���M�ff.�f�ATA��USH���?�c��A��wkH�?,Hc�H�>��DH�5�)H�߽�\|�tH�5})H���I|�u*��;A��u6�DH���;@��t�h�u������[]A\��H���;@��t��WQ�u��֐H�5��H�߽	��{�t��fDH�5X(H�߽�{��t���H�5�yH���{�Ņ��[����{���fDH�5�fH�߽�|{��4����T����H�5(H�߽�T{������,����H�5�'H�߽�,{����H�5�'H�߽�{��������H�5�'H�߽��z������H�5�'H�߽��z������H�5�'H�߽
�z��l�������H�5�'H�߽�z��D���H�5�'H�߽�pz��(���H�5'H�߽�Tz������,������SH���3�H����q��~D���Oڅ�~ ��9�~Hc��
�`8[H�D�f.���[Hc��
�`8H�D�H��78��H�56+H�81��t7�@�~`8��x�DH����Rq�x�\`8H����J`8�H���ff.����H�����H��H�H�D��AWAVAUATUSH��XH�|$@��uH����B�H��uH�|$�E�H��X[]A\A]A^A_�H�|$�&4�H�}I��H����L�oH� tL�o��G�H���6�L�t$I���"H�D$ H�$�G�A�?"��H������H�}H���%b�H�}L�oH� tL�o�{G�H��H�4$M��H��L��L���ch�u�H�D$H��tU�@H��X[]A\A]A^A_��F��o�H��H��H�øHH�H���g�I���7���H���l�H�=��z�H��58L��H�5|H�81��5�D��UH��SH��H�D$H�l$H���m���H����3l��H��H�D[]�DAWAVAUATUSH��HH�|$@��uH���A�H��uH�|$�C�H��H[]A\A]A^A_�H�|$�v2�H�}I��H����L�oH� tL�o�0F�H���4�L�t$I���"H�D$ H�$�G�A�?"��H������H�}H���u`�H�}L�oH� tL�o��E�H��H�4$M��H��L��L����q�u�H�D$H��tU�@H��H[]A\A]A^A_��E�6n�H��H��H�øHH�H����e�I���7���H����j�H�=��y�H�I48L��H�5�H�81���3�D��UH��SH��H�D$H�l$H���m���H����j��H��H�D[]�DUH��SH���J�H��H�@H���_�H��H�5�H����B�H��H��[]���SH��H�?�C@u�z\�H�{�q\�H�{�h\�H�{�_\�H�{ �V\�H�{(�M\�H�{0�D\�H�{8�;\�H�{H�2\�H�{`�)\�H�{h� \�H�{p�\�H�{x�\�H����\�H���[�[�D��UH��SH��H�<$H��H�t$�0�=H��H���BC�H��u?H�t$H��tH�|$��/�H�t$H�<$�:_�H��H�@H���m�H��1�[]�H��28H��H�5&H�81��32���SH��H��H�<$H��H�t$�/�H��H���HL�H�5K�H���TE�H�|$�Z/�H��H���L�H�ߺH�5���+E�H��1�[���H�����b��:�H��H�H�D�ff.�f���H����b�1�1��%o�x
�H���1��`v�AUI��ATI��USH��H��(�D$�`1�H�ŋ��tv��uaA�E�P�A�U��BH��t(�;D�m��H�{��H�D�m�|$M��u���������H��([]A\A]�D�ke�tw�H��u���f�L��H	�t8H�=I-8H�T$��2S�D$M��tA�$��t�H���k����fD��6P�H��(1�[]A\A]�f��D$�l�D$�^����yE�f�AUA��ATI��UH��SH���
�C0�8uH��L��D����K�H��H��x�H��H��[]A\A]�f.���PXH����
��X2�H�L$H�<51��u;�ǃ�u�H�D$H��t�1�H��t�H�Ǩt	��v����;�����H���E�H����H�D����H���]�H����H�D�������H�������8�xH���1��.t�ff.���H���U�H����H�D����H���C>�H����H�D����H����`��	H�xH�H��H�D�1��s�f���U1�1�H��AVAUATSH�� dH�%(H�E�1��W����Hc�A��L�e�H��H�����L�e�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%���H�\$H���H��D���W�A�ƃ��tz�E�I��E��~'A�F�L�t�fD�3L��H��H�t6�
i�I9�u�L���d�L��H�M�dH3%(u3H�e�[A\A]A^]ÐL���X_�H�����H)�H�L��j���1��{r��f<�fD��UH��AWI���AVAUATSH��HH�}�L��dH�%(H�E�1�H�E��O�I��� ��H����H�]�H�M�Hc�A��H9��d���;E��cH�E�H�4�H�E�H�E�H����H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%���L�l$I���E��~`H�E�1�L�e�D�p�I�GH�E��)�H�E�H�<�L������A�D�H�CI9�t*H��I� u�I�G ��I�GH�E��
���L�e�@L����b�H�}�L���DD����H�}���b�H�}��9���H�U�dH3%(u@H�e�[A\A]A^A_]�H���]�I���3����H)�H�L�����H����)��:�� �H�5���H��+8H�81��v+�1��op�ff.�@��ATI��H��USH�� H�\$H�t$H�D$H�����H�߉��a�H�|$�O��H���un�uL���Y���H�� []A\�1��o�f���H����\�1���g�xH�H��H�D�1��o���H�����[���i�H��H�H�D�ff.�f���H�5
9�Z�AT1�I��US��Hc�H�5��:��}�݃��E<��t7��uK[]A\É��5�H����H�‰�1�L��H�5^�J:��u���1�H�5oL���2:��t�[L��]�H�5WA\�B=�f�����F5�H��t!H�‰�H�5�L��1���9��Y���fD��H�5�L��1���9��;������H�5�L��1��9��'������H�5�9�E���H9�tSH��H�5�9��D�H��[H���[F���f���H�5�9��\�H����B�<v�� u#H��f.�H���D�B�A��v� t��tvH��tAL�NH� tL�NH��E1�H�@1�H�5?H�=3�h����H���@H��E1�H�1�H�5H�=�Nk����H���@�(�������H���ff.�H����Y��8��uH���H��'8H�5%H�81��(�ff.���UH��SH�����H�\$H��H�D$H�����H�߉��^���i�uH���[]�1��l�ff.�f���AUI��ATI��UH��SH��H�D$H�\$�6���H��H���{�L��H�މ��n�H��L��A���`�H��A���%^�D��D�����0�uH���[]A\A]�1��-l�ff.�f���ATUSH��H�����H�l$H��H�D$H�����H��A���]�D�����H��H��[]A\�@��ATUH��SH���l���H�\$H��H�D$H����H��A���h]����D����	0�xH��H��[]A\�1��rk�f���ATI��UH��SH��H�D$H�\$���H��H���@�H��L����3�H��A���\�D�����V�uH���[]A\�1��k�D��UH��SH�����H�\$H��H�D$H�����H�߉��\���m�uH���[]�1��j�ff.�f���USH���A�����4���;��9�u/�=�N89�t}� �����e��H�\	��u@H��H��[]�fD��H�\���e�t���8�
CN8�f����8H�="8H���H��[]��:��%�1����i�fD��S����!4����:�ډމ��?.�x�؉�M8[H�D�1��i�D��AVAUATI��USH���8���H�l$L��H�D$H���o�H����5[��:�tT�����9iM8A��A��DE��b:�9�DE��3��D��9�D��E��-�x(�3M8H��L��[]A\A]A^��ډމ��}-�y�1���h�f�H����"U�|�8��uH���H�|#8H�5H�81��#�ff.���UH��SH�����H�\$H��H�D$H���5�H�߉��KZ����Y�uH���[]�1��]h�ff.�f���AUI��ATI��UH��SH��H�\$H�$�7���H��H��H�D$���H�߉���Y�H��L��H�D$��H��A���Y�H��L��H�D$��H��A���Y�H���Y�D��D����62�uH���[]A\A]�1��g�ff.���ATUH��SH�����H�\$H��H�D$H����H��A���(Y����D�����1�xH��H��[]A\�1��2g�f���USH��H���.���H�l$H��H�D$H����H�����X�����߉��m1�x��H��H�D[]�1���f�@��ATI��UH��SH��H�\$H�$���H��H��H�D$�H�H�߉��^X�H��L��H�D$�*�H��A���?X�H���7X�D����R�uH���[]A\�1��Df�@��UH��SH���>���H�\$H��H�D$H�����H�߉���W���f�uH���[]�1���e�ff.�f���S����qG���zN�ډމ��?0�x�؉�I8[H�D�1��e�D��AVAUATI��USH�����H�l$L��H�D$H����H����5W��6�tT�����9aI8A��A��DE���M�9�DE���F��D��9�D��E��/�x(�+I8H��L��[]A\A]A^��ډމ��}/�y�1���d�f���ATI��US���{F���M��9�u6�5�H89���H�t6L���#����.`��H�l	��uCH��[]A\���L��H�l-H�t6���_�t���8�
{H8�f����8H�=W8[�H�r]A\�*5��U�1���(d��SH��H�|$@��up@����@��u	H�����ugH�
aH�����c�H����H���}D�H�XH���F�H�{X���C��xvH�H�DH��[�f���e���f������u�H�|$�,�H;�8t#H;�8t*H;�8u@��f.���f���H��8H�5�H�81��!�H�j8H�5�H�81��	�H�R8H�5�H�81����AVAUATI��UH��SH��H������u	H�����u8H�����L��H���J�H��H�@H����X�[H��]A\A]A^�fDH��ƒ���u�E1�L�k�Gf.�H����H9�}�L��H�<�A���4���L��H���J�H��H�@H���vX�H�Ic�� u�H;S����H�C ��34�H��H�@�-��������t��t	�,-�@��f�AWH�AI��AVAUATI��U1�S��H��(H�t$H�D$��DH����H9��0H�D$L�4�I�FI� uI�F H�8��c�H�|$Lc�I��O�L	L��L�L$�;�L�L$H�������M9|$p��M;|$`��M;|$x��I�FI� uI�F H��H�H�|$L���Z=�D9�AL�M;|$`t,M;|$xt%H��I��� �5���I;o}oI�G �;���fDM�FI� uM�F I��I�8�c�9�L��@H�|$�L����<��@H�|$H�����L����<��m����H��(��[]A\A]A^A_�H��8D��H�5H�81��D�@AVI��AUI��ATI��U��S�.�Hc؃��u �;�8	��1ۉ�[]A\A]A^�D���W�M�l$`M��tHc�H�\H�|?H���G�L��H�@H���V�I�l$hH��t-H�߾1��~G�H��H�@H����U��[]A\A]A^��1�H�@H��I�D$h�f��1�H�@I��I�D$`�g���fDM���7���M���.���L��H�5��L���H������S���(����@�9�t�ډ޿�����)�x�C8��[�������މ��b)�y�1���^����H���^�8���H����H�D�ff.�f���ATUSH��H��H��H�D$H�l$H���(�H��A���=P�D���E���H��H��[]A\�f�S�����(�9�t�ډ޿�����"�x�?B8��[�������މ��"�y�1��^����H�����8���H����H�D�ff.�f���ATUSH��H��H��H�D$H�l$H����H��A���mO�D���E���H��H��[]A\�f���ATI��US��1��|>�H�Ņ�t5��u7I�<$��H��H���6�1��U>�[H)�]A\H�D����Y��ݺ1����K�ff.�I�Ѕ�~f�F�L�L��H�7H��tKI�H��tBH��H9�}H��H���	fDH��H�H��H��H��u�H��tH��H�H��H�I�H�H��I�H��I9�u��f�AVI��AUI����ATM��UH��L��SH����m���I�:H���qH��������IcEH����&�.H)�H��H��?H��H��H)�H9������OLi�ʚ;IcEI�����I���������C�H��I��L�L��,M����L��H�H��L9�����uEH��L��I9���H�H��t�M9���H���t�H���M����L��H�H��L9�����t��k��5w��*H��1��"(�IcM��+H��1�H�L	�(�I���DL��H�H��L9����\���DI�$L��M����H�[]H��A\A]A^H�����L��H�H��L9�������DH���>����H9�������������5w��*H��1��j'�IcM��+H��1�H�L	�M'�I�ƅ�~9E1�J�|�H��t�`�L����*H��1��'�I��I��D9��I�<$�4�[L��]H��A\�A]�/1�A^��&�DH��[]H�A\A]H��A^H��H����D����fD����fD����fDAVAUATUSH��H�D$pH�|$0H�D$ H��$�H�D$(H��$pH�t$H�T$8H�L$@L�D$L�L$�D$PH�D$H�H�)8H�8��8�H��8H�8��8�H�|$ �7���,H�T$(H�t$ �����H�t$H���#���H�T$dH�t$XH�|$T�H:�����D$X;D$d�A�Y�Å���f�H�D$H��$��8�+�H�}HDŽ$�DŽ$��4����A�A�L��$ �AD��$�uH��$ v1�H�������vA��A�A��A��D��A��
�?1�L��D������u��X�H�Ë��t�H�|$H��t$H�L$H��tH��H�5��kA�f�H�L$�D$lH�l$lD�a�@���uq�H��D���A�H��x�H�|$t'H�|$tH�D$H�L$�D�H���U �H��H��u����;u�H�t$H��D�����H��x���@�D$l�f.�1�H��$���<���H�T$H�t$H�|$@H�D$8�Ѕ��6�A�H�Ë�����1�H��
��������H�|$t�H�|$t�H�T$H�5�H�|$�2@����H�Ë�����������;D$T�����H�T$hH�t$`H�|$\�����j�D$`;D$h�����;D$\�x����L����Å��v�����$p1�H��D� � ���H�t$(1ҿ�����D�e��!H�t$H�|$0H�T$P������x��������H����[]A\A]A^Ð1��i�f�H�|$�����H�|$�����H�T$H�5�
�����H�|$�~���H�|$�r���H�T$H�5�
����EH�=i�
�xU�EH�=j�
�iU�H�=u�
�]U���v�H�=K�
��HU���a�H�=&�
��3U�H�=
�
�'U�H�=@�
�U�ff.�ATI��I��L��UL��H����SA��L�����f�f���I*$�Yz�*M�X�E��~#A�C�L��I�D�f��H���H*J��Y�H9�u�H�0f���H*�^�fH~�H9�tHfH~�H��<������tH��H��u%[]A\�fH~�[]H��A\H��H���f.�[]A\���AUI��ATI��UH��SH��H��H�=;�8�~J�H9���H�=�8�iJ�H9���H�=�8�TJ�H9���H�=��8�?J�H9���H�=��8�*J�H9���H�=��8�J�H9���H��tH�=��8�I�H9���H�uM��1�H��L��H��[]A\A]�S���I�$ʚ;H�uM��H��L��H��[]A\A]����I�$���fDI�$@B�fDH�uM��1��DI�$@BH�uM���o����I�$�H�uM���O���H�8H��H�5��
H�81��
�ff.����H��h��G�f�f��H�|$@�H*��H,��H*��L$�E�f�H�0�H*D$@�^D$fH~�H9���fH~�H��<��������H��H����f�H�D$H�0�H*D$H�^D$fH~�H9���fH~�H��<��������H��H���rf�H�D$ H�0�H*D$P�^D$fH~�H9��4fH~�H��<�������lH��H���	f�H�L$(H�0�H*D$X�^D$fH~�H9���fH~�H��<��������I��H����H�T$ H�t$1�L�D$0H�=��8���H�T$H�T$8H�T$H�T$ H�T$8H�T$ H�T$(H�T$8H�T$(H�T$0H�T$8H�T$0H��h�f.�fH~�H��H��H���w���f.��K��c���fD�;�H�L$(I���V���fD�#�H����������fDfH~�H��H��H���h���f�H��I��I��I������@H��H��H��H�����@��H��H�5A�8�|&�H�Ǩt� R�<��HE�H����������H��H�5�8�<&�H�Ǩt��Q����H�H������������H��H�5��8�%�H�Ǩt�Q�H��H��8H��?����[�H��H��8H��?���ff.���H��H�5q�8�%�H�Ǩt%�PQ�����<�HN�H���D����f���UH��SH��H�5�8�W%�H�Ǩt(�P�H�����t(��P�H��!�[]H�H�D�@��H�����u���H��!�[]H�H�D�@��UH��SH��H�5��8��$�H�Ǩt@�P��H���t!�|P��H��Hc�[]H�D�f��+�����������S�H���:�H�߃�t�!P���E�xH�[H�D�D������1��M����H��H�5��8�,$�H�Ǩt��O�¸��tH������¸��u�H��H�%�H���f���H��H�5��8��#�H�Ǩt-�pO�¸��u��H�%�H��H���������ff.�@��H��H�51�8�l#�H�Ǩt%�O�¸��u�փ�H���H�����������H��H�5��8�#�H�Ǩt5�N�‰Ѹ������~
H�%�H��H���f.��[�������U�H��SH��H���V8�H�߃�t>�YN��H���t�JN�Ɖ��D�x&H���[]Ð�����������1��K�H��H�|$@����@����������H���@��t#H��4�������
��~+�����}0�H� ��H���f.�����H�|$��	H�=��
H����€���t9�
H�=��
H����€���tH�ƹ
H�=��
�������H�����H���DH�����t?�����
t�o������D�����u!@��tH��H��H��u��H���k�H�|$H��t�H�D$�/���fDH�@�*���H��8H�T$H�5��
H�81��:�f.���AT�I��UH��SH���U6�H�߃�tM�XL�H�����tM�IL��L��A��t�9L�‰���~�x2[�]A\�����������H�����u������1��I���AT�UH��SH����5�H�߃�tX��K��H���t9�K�������I����A�$��u,H�[]H�DA\���S������C���1��I����ATH�5��8UH��S�94�H�ǨtR�=K��H�5D�8H���|�H�Ǩt%� K��1��'���I��H���8��L��[]A\���������������UH��S���H���4��H�L$H��H��1���H�|$H��t$@��u,�i���"�x%H��H�H�D[]�H�D$��mJ����1��H�f���AUATUSH��I��A��H��H�5y�8�,3�H���H�Ǩ������H�5)�8H���a�H�Ǩ���J�A��M�������$�؃����VH���d���kH�{�/�H�=��
H��1��q1�D���H��H������H�ߺH�5t���H��H��[]A\A]���sI���L���@H�����u�H���%H��u�H�8H�8�z������A���5���M��t;����؃����H������uUH��8H�8�Mf�H�����u7H����H��u(H��8H�8� @H��7H�8��f�H�{�g.�H��H�=�B[H��]1�A\A]�L0�@H���7H�8���f�H��7H�8����H��8H�8����H���7H�8�@H�Y�7H�8�@H�I�7H�8�Z����H�9�7H�8�e����H�	�7H�8�U����H��H�|$@����@����������tyH��ts@��tH��4tg�����
tR~3��uF�*�H�xH� ��1���������H�����u#H�|$��H����@��u�6�H��Ð��H�|$H��t3H�D$��f�H�����t׋����
t~����l�����u�@��t��G�H���DH�x�_���H���7H�T$H�5�
H�81���f���S�H��H���0�H������H����?�xjH��������?H�|$H�\?H9�w+H��������?H�<$H9�w(H��H�|?�+�H��[�D��H����fD��H��H����+�H��[�H�=��
��C�ff.���UH��S���H��8�0��1�H�L$L�L$L�D$H��H���U
�H�|$H�|$uH�|$����H�|$H�D$ ���H�|$H�D$(���H�t$ ���/�xH��8�[]�H�=��
�HC����SH���1�H��@H��L�D$��	�H�<$@����@��uH�����t�������@��up�
��H�\$0H����)���3H�D$ ʚ;H�D$8�D$H�D$0H�D$H�=p�8�9�H�L$H�T$ H9���H�|$H���[�H��@[�D��D����H�=Y�8��8�H9$�H�=;�8�8�H9$�DH�=�8�8�H9$�VH�=��8�8�H9$��H�=��8�|8�H9$�*H�=��8�f8�H9$�X�D$H�\$0H�D$H�D$ @B�����1�H����f��f��f�H�0�*T$�H*L$�Y
+�
�H*D$ �X��^�fH~�H9�t'fH~�H��<������tFH��H��������
�H��@[�H�D$H�\$0�D$�H�D$ ʚ;�e���@fH~�H��H��H���w���f�H�D$H�\$0�D$H�D$ ʚ;�%���@��D$H�\$0H�D$�5�f��H*��H,�H�D$ ���H�=H�
�@���1���@�f���SH��1�H���H��L�D$��H�<$@����@��uH�����t
�����tw@��ua�L��H�\$PH���=���,H�D$ ʚ;H�D$X�D$H�D$PH�D$H�L$H�T$ H�|$H����H���[���B����H�=��8�$6�H9$��H�=��8�6�H9$��H�=m�8�5�H9$��H�=G�8��5�H9$�(H�=9�8��5�H9$��H�=�8�5�H���^��H9$�����H��H����pH��H�\$PH�SZ��/�DH�D$ @BH��	H��H��H��Hi�ʚ;H�T$H)��L$���H�\$P1�H����
���H�D$ ʚ;H�D$PH�D$iD$X��D$���D1���H�����H�D$H�\$P�D$H�D$ ʚ;�o����H�\$PH���1�H�����H�t$PH�|$XI�SZ��/�DH��H��	H��I��H��H��H��H��	Hi�ʚ;H)�H��I��H��Hi�ʚ;H�H�L$H)Ǎ>�D$=�ɚ;v-ʚ;H���D$H�L$���2�f��H*��H,�H�D$ ���f�H�|$0��0�H��H�����H�¿H�\$PH�SZ��/�DH��	H��H��H��Hi�ʚ;H�T$H)��L$�\2�f��H*��H,�H�D$ �L���@H�\$P1�H���2�uiH�T$`H�D$hHT$PD$XH�T$=?B~H��-@BH�T$H�D$ ʚ;i���D$��H�=��
��<�H�=H��<�H�=��
��<�H�=��
�<�H�=���<�H�=x�
�<��1��<���ATH�s�8U��H�=1�8SL� �����Hc�H�5��8I�D$@H�TH���R>�Hc�[]I�|$@H�TH�5��8A\�5>�D��H��8H�H�@@�f���AWAVA��AUA��ATUH�-&���SH��H��I��1�H�����L��H��D�4$H�\$D�l$�v��A�Dž�y7���8uUH���8H�8H�� H�Ѕ�t���1���P�@��uH��D��[]A\A]A^A_�f��;���' ���DA����������US��H��H�l$�1�H�����t��s��H��[]�ff.����AU�ATA�����USH���2'�L�l$�
�H��H���8H�H�@@�!����Hc�H�|?H���"�H��H����0�1�L��D���3���u���8
uH��H��[]A\A]�1��}:�ff.�f���ATI��U�����S���H�� �&��u,H�t$�ډ������H�H�DtMH�� []A\�@��H�L$L�D$L��H�P�1���H�|$@��u8��Ń�t81���H���8H�H�@@H�� �[]A\��<�Ń�u�H�|$1�H���W����~���K���1��9���S����H��tH�����H��[H���<!�@�[Ð��USHc�H�=���H��H���T��H�5��8H�TH��H���]�H���8H�]��u	H�����uH��H��[]�f.�H��H���5�u�H�E��`H��`u�H���`H��`t�H��H�����ff.���S�H����$�H�߃�t��:�[����;�f���[����;���ATUSH�����H��1��F�������D� H���Ը����D�#[]A\�f.���H�V�H��tVH�B����tDSH��H�<$H��H��H�D$���H��H�5mH���e�H�D$H��[�f.�������H�5U�7�����AWAVAUATUSH��hH�|$H�t$H�T$��H����#�H�\$��������؃����H�����t#H��4�������tt�'����H�|$����H��H����H9q�8�s�E@�
H�|$H������1�H�����M@�ED�H�D$�H�|$H�|$(@����D@������������H����@���<H��4���������wzH���
Hc�H�>��@H���������H��h�[]A\A]A^A_����u�H�|$H�|$(@��t�f���fD���>����DH������y�����H��H�D$(H�������H�D$(H��H��H�}`H������H�E`H�D$H�D$@H�D$H��h1�[]A\A]A^A_�@H�����H�5��
H��������H9��8��H9��8��H9��8�H9��8�hH9��8�Z���H9��8��H9��8�rH9��8��H9��8������EA�j���H�\$@H�|$H�D$@H��苺��H��A���&�D�eX�MA���1���H��H�D$0H�D$(H��� �H����H���
H�D$0H�D$@���H�|$(�H�D$0�<��H�D$8H���
�uH�����t������sH���!�H�D$8H�|$(�A�I���H��tH���!�I��H�|$0���H�@H�D$@H�D$8L�d$PH�D$HH�t$@��6�H��H�@H�}pH������H�Ep���H�D$0H�|$0H�D$@���H�D$0����H������I����������;H��ƒ����aH�D$0��H�|$(���H���lH;��8��H;��8��H;��8��H;��8�8H�}`�H�����H�E`�+�����������fD����H�D$8H����H�@H�D$@H�D$8H�D$PIH�D$H���f�H�x�����@��t%@�����H������������������H�=��8�(�H�|$0H9������H�|$(����H���	��H�}xH��H���*��H�Ex�M����@����Q4�����Hc�H�?�7H�5��
H�81�����fD�}@�UH�D$H�D$@H�|$����H��H�D$�m�M@�H��H�D$�|�H�@H��������H�}h�H�����H�Eh���fDH���h��H�x���Lc�A�������L�mHM����H�|$��H��H���H��� �ZH����H���^H��������1�H�����H���K�H�߾H�����H���3�H�t$@O�d$�H�l$HL�d$@H�D$P�P3�L��H�@H����&�������E@�����H�D$�����ƒ���	ЈE@���DH�D$8����f�������H���2�t*H���r2�t�������H�������������f�H�D$8�H�D$0�'���D��������E@� �q�� H�D$�����ƒ��	ЈE@���H�SH����H�������1�H���d��H����H�����H�}`�H�����H�E`�����H�@I��H�EH�!���H�|$�'���U@�������EP�U@�h���H�}`�H���+��H�E`�N���H�|$�x�H���=���E1�L�s�_�H��H����I9�}xH���Y��H��H� tM�H��L��J�<����H��I���1�t
L����0�u*H�A��H��Mc�� u�H�S�@���H�C �H�H���� H����H����I9��P���H�D$8H�D$0�w���H�D$��Y����EA�����H�\$@H�|$H�D$@H������H��A�����D�eT�MA�$���H�����H��������H�|$8�6��H���)�H�H�DH�D$8�w���H�D$�����H�C�8���H���7H�5��
H�81��y��H���7H�5��
H�81��a��H���7H�5{�
H�81��I��H���7H�5~�
H�81��1��H�z�7H�50�
H�81����H�b�7H�5k�
H�81����H�J�7H�5��
H�81�����H�2�7H�5q�
H�81�����H��7H�T$(H�5�
H�81����H���7H�5��
H�81����ff.����ATI��UH��SH��H��H��H�;�,�tH�{H��tL��H����[1�]A\�/�L��H��H�CH���������SH��H��H��H���+�t6��t9��uH�����t
�����t!H�B�7H�5��
H�81�����1�[�@H�!�7H��H�5?�
H�81����ff.�f�AWAVAUATUSH��H�$H��X�t$H��L��I��H�T$ M��L�L$(dH�%(H��$H1��t��H�xH��H�H��Hǀ�H��1�H)�������H�I���I��tL���{���H����T$D�e@��H����A��A	�D�e@H�D��D�d$% ����H�]L�cH����E�<$E1�E1�E���5D�d$1�A��D�e@�e	�I��H�@H� �gH�s���t)<	t< �fDH���< t�<	t���L�eI�|$I�$ tI�|$��H�@H�E�E@�fDH�D$(H�D$8H�D$(H��$HdH3%(��H��X[]A\A]A^A_��A��	t[M��MD�A��H�=��
�s��H��toM��u��A��=t�E1�A��/A��I�����w���I��E�<$E����A�� u�M��t�M��u
M��M)��DA��H�= �
���H���/���M��u�1��fDH�]H�zH����1�H�T$@���H����H����H�E�E@����H�}���|$H�\$8H�D$8��Hc�H����H��H�@H��I�����H�MH��� �mH�QH�AH�T$0L�$L�t$0I9�v1D�L��L�����L�|$0L�����I�DH�D$0L9�rԺH��L����L�m�#���H�z����L�cE1�E1�E�<$E��������c���DI�GH�����H�@��������L�l$(L���П��H�5����L��H���N�����M������L��L)�M��LD�I�F�H�������H�D$E1�f�H�D$L��L��J� H�:�
H��L��H�L$N�<L������H�L$��uQC�<7�>���fDL9������H�L$�H�E�2���H�QH��H�T$0�����H�s���Dx�L�aL9d$�g����H���1���I��H�@�D$��~_�D$L�l$ H�\$8��M�|��H����H��H��L��I�����M9�t(I�EH��H�D$8���H�L$8H��� t�H�QH����L�e�E@�[������fDH���tB<	u	�<<	tH�����u�H��H)�L�����H�5��L�����H�����1���H��H�% �������ff.���UH��AWAVLc�H��L�}�AUI��ATM��I��SH��X�U�H�M�dH�%(H�E�1�����H�E�I����kL�}�I�FH��H�E�H��H%�H)�H���H��H9�tH��H��$�H9�u����H�\$H���L��L��H���X�E����E�l$�Ic�H�<�@����H����������H�E�H����E���kH�;@����H�����������H�E�H��tH��A���4H�E�H�;E1���H��tjH��� �|H����H���H�PH��H�U�H�L�e�L��H��u��H�}����L������H�}��k��H�E�L�pH� tL�pI��1ҐL��U��5��I�<$���I�<$�3��L��I��I�D$����U���D9�|�M���.����H�}�H��u%�E�H�;��tA��������HE�DE�L�M�L�E�H��D��H�M����L���t�H�E�H�U�H�H�U�H�U�H�u�dH34%(��H�e�[A\A]A^A_]��H�;E��H�E�@���]���H�E��z���L��L����H������DH�x��H�@ H�H��H�U����f��;�����H�t�7L��H�5��
H�81������L�3I� uI�����M�v����H)�H�L��;������E1���D���r�H���7H�5M�
H�81��j��f.���AUA��ATI��U���SH���#�H�ĥ7H��H��7H�8��D��L���H�@H��H����H��H��[]A\A]�f���USH��H������H��1�H��tH���+���H���H��[]�ff.�f���AWAVAUATUSH��XH�|$8���H��H�D$ �W$�H�K`�����H�ʼnT$0H��tH��H��臿���D$0H�|$ H�OhH��t�T$0H���i����D$0H�|$ H�OpH��t�T$0H���K����D$0H�\$ H�KxH�����T$0H��H���&���L�cx�D$0M����I�D$E1�H�D$(I�$�� �H����I9��xH�D$(N�<�I�GI� uI�G H�8�"�H�D$I�GI� uI�G H��H�8��"�H��Hc�I�ƉD$4H�\H�����D�4$H�D$H�ƨu$��H����H;D$��H�D$@��tJH��H�t$�u"�H�t$��x4H��H�t$�_"�H�t$H��$�_��H��I�$�� u�I�D$�@H���XD94$u(I�$I���� ���M;l$}pI�D$ ��fDLc4$L���O�t6L���!�Hct$L��H��H�t6����H��L��H��L����H��H�����I�Ǩu�����H�D$ �T$0�P\H�P`H�h H��tDH��� ��H����H�@1�H��H���b�H��H�@H��H���\�H�D$ H�h8H�L$ �A@L����$��<t)M��u$H�D$8H�D$HH�D$8H��X[]A\A]A^A_�fD<� H���7H�5ʰ8H�8���H�
�9�H�d�H�����H�@H��H��E1�L�d$H�<���H�$I�FH�D$I��� t{�H����I9���H�D$J��H� tiH�hH��L�(I��tlH�<$L��H������@��u
H�������A��u
I�������I�I���� u�M;~}\I�F J��H� u�H�@ H�(H��L�(I��u�H�<$1�L��H�l$H�n���@�S �H��H�@M������L�d$H1��#��H��H�@I���0���L��H�5���H�����H�C�H��tH�@H��H�<����I�]H��H�@�� ��I�EH��H�D$H��H�H9�v0@�L��H���8��L�t$HL���{��I�DH�D$HH9�rԺL��H��H�D$H���H�D$ H�h(L�h0����H�������H���7�T$4H�5u�
H�81��j��f.�H�B�3����I�EH�D$HI�]�J���fDH��H���m���:���H���`H��`�*���H�E��`H��`����H��H�������	���@L��H���%������H���`H��`�����I�E��`H��`���L��H���������@H���7�T$4H�5.�
H�81����ff.����AWAVAUATUH��SH��H��hH�$H�L$H��t6H�~H��1�H�Hdž�H��H)�������H�H�F �E@��L�uHM���]�E@�3L�u`M���^L�uhM�����E@��`< tH�U �u\���L�mpM���L�mxM�����}@�	�EA��5	��I	E1�H��tHH�S`H��t?H��� ��	H�BH�,@1�E1�H��H����H��H�@I��H����L�c8H��hD��[]A\A]A^A_�E1�M�fH��tTH�=g�
1��V��(����H����I9�����L��J��H� tCH��H�8�4�������dI��I��� u�M;n����I�F J��H� u�H�@ ��H��t+��K@�H��I����L��H�@H������H���H� �TH�����A�ƃ�������H�<$H��t~H�T$H��ttH�5�������D�eDA��������H��t�K@�D�CDE���8����D�����A�ƃ������H�<$tH�|$��f.�A������p���DI�FE1�L�|$0H�l$(H�D$H�D$@H�D$�SH����I9��
H�D$J�,�H�EH�E uH�E H�8@���X��A��H����L��D�������
H�EH�E uH�E H�H�|$0H�D$@H��������?H9��)H�D?H�|$8H�D$HH��������?H9���H�D?H�t$�H�D$P�n�H�{HH��H�@H������
�H�MH�E�� uH�E H��H�8@��tpH��H�H�D$0H�U H��uH�U H��H�:@��tsH��H�L��D��H�D$8�����I��I��� �����M;n��I�F ���f��+��H�M�� �����A��������댐��������fD��������fDH�D$ ����H�t$ H�@H��H�CH���DI�L�e8�� ��M�nI�$ ��I��M����J����H�\$ M��L��H�L$1�H�l$I���hDI�GJ�,0H�EH�E uH�E H��H�8�j�H�U�H�E uH�U H�:H���J�H�C���C�L9t$�4I�I���� u�I�G �f��}P���H��������K@�CP���I�EH�l$(I�UE1�H�D$H�D$0H�D$ �� ��H����I9���H�D$J�,�H�EH�E uH�E H�8��H�E ��H��H�mH�E ��H�EH�D$0H�EH�8@�����b�A��H�E H�E uH�E H��H�8@���|�7�A��H�D$ H�D$@H�|$0����H��H�D$0���H�D$0H�xH� tH�xD��D��1���A�ă�������-��D$�H��H����I9���H�D$J��H� ��H;h��H��H�8��I��A9���H��tH�L$H�$H�މ��ݳ�����U���D��D���Z����iD����I��I�U�� �h���M;}}#I�E J��H� �v���H�@ H;h�v����D$���"���D���{����1I�U�� �
���M;}��I�E ����f��D$�z������A������H�m H��H�mH�E ����H�E H�H��H�T$0H�8@�������D��A���
���@I�EH�l$E1�H���@H����I9���H��N�<�I�GI� uI�G H�8� �I��I� ttI��I�?��I��H��tH�L$H�$H��D���\���������D��D���������D��I���
�I�E�� �g���M;e�
I�E �g���@M� I���fDH�\$M��A�����I�����A�M����uA;M�$A����D�����P���t[D���	�I�EE�uM�}H���u$�3@���q	�H�C�����H����H�@I�ċs�;����u�fDH�<$H������H�T$H������H�5��
A���������)���fD�}X���
�EA�������}T�
������H�<$H���o���H�T$H���a���H�5��
A���q������@H�����H�����x���@I��I��A��I�$ �Y���M�d$�S���D���A�����H�l$H�\$ H����H�
�����L��L�����M�������K�DmI�|$E1�M��L�T$��O�M��E1��DE��tSL�FM9��fK�A��H��H�RH��I��D+y�L9��CJ�4A��H��H�vI��D+�PI��E��u�H�I9�r�f.�H��I9�s;H�t�L9����;t��H��;�L�pH��H��L9�r�I�FH�H��I9���E1�DL��H�@M�<�A�?���t}DI�uqA�GH��t"H�L$H�$H�މ��������}���A�GA�?�����������A���I�GA�����H���tH�@H�@M�<�I�l�A�?���u�f�I�EM9������I���[���H�I�FH��I9��8���I���X����H������H�7��H�<$H������H�D$H�������H��H�5��
������f�H�l$(�I�fDH�l$��fDH�<$H���s���H�D$H���e���H��H�5��
�v���Q����H�
	����L��L������n���@��1���L$ ����L$ ������t���ω�1��������A�E����I��L9l$�o���H�\$A������D���S������f.�H�<$H�����H�T$H�����H�5������@H�<$H���s�H�D$H���e�H��H�5��
�v���Q�H�T$H�<$H�5�
�[����fD���Y��A�ƃ�����H�<$H����H�T$H����H�5����l�H�l$(���fDH�<$H�����H�D$H�����H��H�5�+�����H�<$H�����H�D$H�����H�����H�<$H�����H�T$H���s�H�5��
A�������H�<$�D$H���M�H�T$H���?�H�5$�
�S��D�L$E����H�<$�D$H����H�T$H����H�5��
���D�D$E���i�ff.���AUH��H��1�ATUSH��H�������H�k(�C@��H�CE1�H��tL�`H� tL�`H�sH�^H� ���T��I��M���H����H�E ��H��H��L��H���O��A�E��uzH�t�
L�#H�s�H�C���H�;H� t,H�H��蠜��H�������[]A\A]�H�vH�^�j���H����f.�H��L���
�A�E��t|��A�EH�������[]A\A]�@H�mH��L��H�����A�E��u�H�ï
L�#H�s�H�C�H��t@H��H�=��
�o������E���DH�~�
L�#H�s�H�C�H�=g�
�
��\������AUf�ATUSH��xdH�%(H�D$h1�)D$H�l$)D$ )D$0)D$@)D$P�f��H��H�$���H�<$H�����H�5G����
L�+�*��PH��H��H��8����^��H�5ߚ8�
D� H�����H��D�#H�D$�|$H�$�
H���	�DL���������G�����AWAVAUATUH��SH��H��t��D$L�%��8L�l$�;f.����I�<$D�8I�������E�>��M1�L��H��������uOH��7H�8���H�a�7H�8���蜈����Å�u�I�<$��賈��H����[]A\A]A^A_�f��������f���ATUH��S���H���5��H��H��L�D$H�)���1����H�s�7H�8�+��H��7H�8���1�H�l$L�$$�����������uW調�������1�����Ã������u/H���~��I�������H��t�H��[]A\�fD1����1ҾH�=��
�=��Ń��tʉ���1����f�����Z�����N��~�������f�Hc�H�D�fDH�=��
����H��t��y�H�=A�
��D1ҾH�=�
��Ń��tщ��7��1�������������������~����:������H������1��g������tM��u�I����u�H���fDH�H��H�D�H�=�7H�T$�4���|$�u��H�=t�
���f���PXH��H���8H�H���tAHc��H�|?H�<$H�=���%��H��H�D$H���7H����H�������ff.����H����1���DH�L$H���1����ǃ�u�H�D$H��t�1�H��t�H�Ǩt
�p���@�3����ff.�@��SH��������u:H�Ӷ8H�H��u��l��@�s|����Y��f�H�H��H��H�$H�D$���H���7H�޿H��B��H�s�7H�޿H�$H�����H���[��1��?��ff.�@��H��1�H�t$���H������AWAVAUI��ATI��USH��XH�t$H�T$ L�D$L�L$H��t�L�|$HL���\��D$0�����I������"�D$0����L�L$L�D$L��L��H�L$ H�T$觩��A�ƅ����|$L�S��\$HH�t$D����.���I��H��x^�l$DH����H�|$��H�|$t$H�T$L�|$��H��L�����H��xA�f��������4��I�����#��ߋ(I�ĉl$D����M���Ic�L��H�=M�h��A�,$A�����H��XD��[]A\A]A^A_�@�����M��t��ǽ�I���f�軽�L��1�H�D$(��D$4H�D$PH�D$8D�uDIc�L��H�t6����H�����tX�E�P9�M����Hc�L��H�t6���H�����u�}������A�ƃ��tG����}����D�u�fDH��H9l$8�x���H�D$(�L$4��'���D����������|$H���|$L������DATI��UH�պSH�����H��H�$���H�<$H������H�K H��M��H�|$I��H�5�������H��H�T$H�$H��[]A\�ff.�f���ATUH��1�S���H��H�!�8H�H�@@�����1�1�H��I���P����Å�~j1�H�t$������tvL������5��H�5>�8H���v��H�Ǩu����H�H��[��]A\������f�L���c����t�H��[]A\�H�=:�
�u�D��ATf�USH��pdH�%(H�D$h1�)D$H�l$)D$ )D$0)D$@)D$P���H��H�$�,��H�<$H���`��H�K H��I��H�|$A�PH�5���L�#���H��H�T$H�$���t#H�L$hdH3%(H�H�Du,H��p[]A\��|$uL�����f�H���������H���C��H���f���������1�1������AU1�H�=ϧ
ATUSH��H�5�7�=�1�H�5d���H�=��
�(�L�-��7�����H�=�ZL���M��1�H�5����H�=��
�8�����H�5��H�=n�
� �����H�5t���H�=��������H�5<���H�=�
�������H�5���H�=,�
����L�%a�7�����H�=��L�����H�-Ƶ7�����H�=��
H�����H�=��
�F��H��7�H�5�
H��H��X��H�;�H�5Ԧ
�D��H�;�����L��H�5�Y���H�;1�H�����H�5~�
�u��H�;�����H�f���H�50�
�Z��H�;�����H�ˈ��H�5M�
�?��H�;�����L��H�5���(��H�;�����H��H�5+�
���H�j�7H�;�����H�50�
�f��H�;�����H����H�5�p�K��H�;�����H����H�5��
�0��H�;�����H����H�5�
���H�;�����H�v��H�5ץ
���H�;1�H����H�5ȥ
����H�;�H���H�5��
����H�p�7H�;H�5��
H��N��H��H�T�8����H�H�8�������ƒ����
H���0
<�8
H�xH�5W���H�=�81�H����H�5��
�<��H�m�7H�;H�5"�
H����H�ԍ8������ƒ�����H����<��H�xH�5���<��H�=��8�H�i���H�5V����H�=n�8�H�ڬ��H�5��
���H�=O�8�H�+���H�5����H�=0�81�H�����H�5B��c��H�=�81�H�C���H�5���G��H�=��81�H�'���H�5���+��H�=܌81�H�����H�5S�
���H�=��81�H����H�5��
����H�=��81�H�C���H�5�
����H�=��81�H�����H�5ϣ
���H�=l�81�H����H�5��
���H�=P�81�H�ߪ��H�5��
���H�=4�81�H�3���H�5��
�g��H�=�81�H�w���H�5���K��H�=��81�H�˪��H�5h�
�/��H�;1�H�c���H�5[�
���H�;1�H�K���H�5B�
���H�;1�H����H�5/�
����H�;1�H�K���H�5�
����H�;�H���H�5�
���H�;�H�u���H�5��
���H�;�����H�����H�5ޢ
�~��H�;1�H�����H�5͢
�f��H�;�H�����H�5��
�K��H�;�H����H�5��
�0��H�;�H�5��
�L��H�;�H�5��
�8��H�;�H�5��
�$��H�;�H�U���H�5y�
����H�;�����H���H�5h�
���H��������H�;H�5J�
H��H�����H�;H��H�5A�
��H�;H��H�5=�
��H�;�H�58�
��H�;�	H�5.�
��H�;�H�5&�
�m��H�;�H�5�
�Y��H�;�H�5�
�E��H�;�H�5�
�1��H�;�H�5	�
���H�;�H�5�
�	��H�;�H�5��
��H�;�
H�5��
���H�;�H�5�
���H�;�H�5�
��H�;�H�5�
��H�;�H�5ۡ
��H�;�H�5١
�}��H�;1�H�A���H�5q�
�5��H�;�H�V���H�5��
���H�;1�H���H�5G�
���H�;�H���H�5��
����H�;1�H�K���H�5
�
����H�;�H�����H�5M�
���H�;1�H�8���H�5�
���H�;�H�����H�5 �
���H�;�H����H�5�
�f��H�;1�H�����H�5��
�N��H�;�H�σ��H�5�
�3��H�;1�H�z��H�5ˠ
���H�;�H�y��H�5��
���H�;�����H���H�5i�
����H�;1�H�٩7H�5�`����H�;�H�5��
���H�;�H�5��
���H�;�H�5V�
��H�;�H�5[�
��H�;�H�5_�
��H�;�H�5a�
��H�;�	H�5b�
�q��H�;�
H�5b�
�]��H�;�H�5e�
�I��H�;�H�5`�
�5��H�;�����H�v���H�5ț
����H�;�����H�����H�5��
����H��1�L�
-�
jH�;L�(�
H�
�
H��
H�5�
���ZH�5
�
YH��H�1�8H�J�7H�8�������7���H�;H�5ݟ
�j�7���H�;H�5̟
H���8���H�=��81�H�/���H�5��
H���8���H�=��81�H����H�5��
���H�=��81�H�`��H�5r�
����H�=}�81�H�d��H�5V�
����H�=q�8�H����H�5;�
���H�=B�8�H�����H�5�
���H�=3�8�H�����H�5�
�k��H�=�8�H�����H�5�
�L��H�=��8���H�מ
H�5�
H�����H�=��8��H���
H�5��
H�����H�=��81�H����H�5��
����H�=��81�H�����H�5��
����H�=y�81�H��r��H�5x�
���H�=M�81�H�����H�5\�
���H�=A�81�H�����H�5Q�
�|��H�=�81�H�L���H�55�
�`��H�=	�81�H�����H�5(�
�D��H�=��81�H�D���H�5�
�(��H�=��8�H��w��H�5�
�	��H�=��8�H�y��H�5՝
����H�;H�5Н
���1�H��}��H�5��
H��H�y�8���H�=m�81�H�}��H�5��
���H�=Q�81�H�p}��H�5��
���H�=5�81�H�}��H�5w�
�h��H�=�8�H�E���H�5��
�I��H�=��8�H�����H�5��
�*��H�S�7H�=��8�H�5"�
H�����H�=��8H�ڹH�5�
����H�=��8�H�څ��H�5��
����H�=�8�H�{���H�5ޜ
���H�=`�8�H�,���H�5ǜ
���H�=A�8�H�����H�5��
�q��H�="�8�H�����H�5��
�R��H�=�8�H���H�5��
�3��H�=��8H��1�H��H�5t�
[]A\A]���H�������H��tnH���	�H��7H�8��fDH������l�H��t.H���]�H�ީ7H�8�R�fDH��7H�8�=�H�	�7H�8�-�H���7H�8��H��7H�8��H���7H�8�y�H���7H�8���H�I�7H�8�Y�H�9�7H�8���H�	�7H�8��H���7H�8�)���H���H�=t����H�=H���8���H�=H�d�8���H�=��
H�D�8���H�=ښ
H�$�8�g��H�=˚
H��8�O��H�=�dH��8�7��H�=��
H�Ā8���H�=�
H���8���H�=��
H���8����H�=��
H�d�8����H�=��
H�D�8���H�=�H�$�8���H�=J�
H��8���H�=�H��8�w��
H�='�
H��8�_��H�= �
H��8�G��H�=�
H��8�/��H�=�
H�d8���H�=ҙ
H�D8���H�=̙
H�$8����H�=ƙ
H�8����!H�=�
H��~8���H�=��
H��~8���H�=��
H��~8���$H�=˝
H��~8�o��(H�=۝
H�d~8�W��$H�=�
H�D~8�?��H�=a�
H�$~8�'��H�~8H�����S�A���+���+�@H��D����D1�i�e�lD�D��H��ou�H���	��pD�LJ�	H���	A�p�DM�E1�1��Hc���L��D����D1�Mc�i�
fA3B�F�A��E���o~D���	�D�D9�DN�A��u��o���A�H�D��Hc�H�4�D����D1�i�e�X]3)ȃ����pu
���	����u���[�ff.����	�����	��~=H���	H�FH���	����1‰��%�V,�1‰��%��1Љ��1��f��H��L���H��LJ�	pA�߰��%�A���B�����D	�A����A��EE�3�4H��D1��J�L9�u�L���	A�߰�%�A���B�����D	�A����A��EE�3�t���H��D1��J�L9�uȋ%��с��	ȹ߰����E�3�01Љ��	���ff.�@S����A������f�f��[A�����A*��YE�
�*��X��Y=�
�@��H��H�H��%�	�ff.����Hc5�8H�D�ff.�@Sf�1Ҿ	H��H�|$H�=�
�I��yeH�|$1��I��H�T$H�L$H�D$1J3H�� 1ȉ����{8H�t$�J���
�{8H�L$1�1NH�� 3N1ʉVH�İ[�f��É��g��H�T$ �޿���u�D$8%�= t���k���a���fDH�t$����?����ff.�f�H��(��wfo�D$�H��)$A�B1ɺ���H��(�f���SH��H��H�����H�����H��[�ff.���A�B1ɺ�pH�=�z8�^��ff.�AUATUSH��H��H��8�+��1Ҿ H�D$H�|$襵�H��H����H�|$L�d$E1�H�¹A�BL������1�H��������H�����1�i�e�l���H��ou�H���	ǃ�	H���	H�D$H��8[]A\A]þH��L�d$���H�|$H��E1�A�B�H��I���5��1�)Ѓ�tA�|��t9��L��H�����M9�t�L���Y��H�D$H��8[]A\A]�H��u�L$�0���H���1�)Ѓ�tM��몉�L��H���8����K�����H�Uy8H9�t������H�?�t��@U1�H��AWI��� AVAUATSH��HH�}�L��dH�%(H�E�1��
��H�E�H�4�H�E�H�E�H����yH�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%��@H�\$H���L�u�A�BE1�H�޹L��L��N�$�����L��H��H�E�H�}���L�}�A�E1��5fDA��H�}��,���D!�E��t
A9�r�A��E��C��I��I���tSF�,�E����D��H��H��H	�H��H��H	�H��H��H	�H��H��H	�H��H��H	�u�1�C��I��I���u�H�u�1�A�BL���-��H�}�H���q��H��H�M�dH3%(u=H�e�[A\A]A^A_]�A������0���DH���(��H������H)�H�L�����=��ff.�f�SH�� �&���������H��A�A1ɺ��$�D$���H�|$A�A1�H�ú�H� H�D$�`��H��H���%��f�uPH��H�t$E1��A�A����D$f�f�ɿ����H*��D$�Y���H*��X��ݞ�H�� [����H��H�5Qg7�|��Hc��	H��H�D�ff.���H��H�5!g7�L��1ɺH��H�xA�B�p���ff.�f���H��H�5�f7���H�H���@��AVAUATI��USH��H�5�f7���H��L��H���Ģ�H�����H��� t?H��H�{��H��t<H����H��t>H�ǝ7H�5%�
H�81��f��fDH�CH�{ H��u�A��nf.�L�uH�?A�BE1���pL��A��h�����	H��L��I����	H���	�c��H�EL��[]A\A]A^�L�oH�_L�uH�?E1�A�B��pL������t)H��H�H=pv�H��7H�5Z�
H�81�苜�H��蠬���ff.���UH�5Te7SH���z��H��蝷�1ɺH�}A�B�pH�����H��H���d��Hc��	H��H�t6�P��H�uH���D��H��H��[]�f.���AUI��H�5�d7ATA��H��USH��H�����H��E��uZ��u~H�����tuH��ƒ���th��ucI��L���7���L������H�$H��H�}���H�EH��H��[]A\A]�DH��H�ΠL��D��1����H�4$H���U��H�4$�H��������SH����uCH��H�����H�����H�$H��H�=�r8H��r8�&���H��r8H��H��[�fDH��H�F�1����H�4$�f���U��	H���SH���$��H��H��c7H��H������H�H��[]ÐI��AVI��AUI	�ATI��L��UH��H��SI	�L��H��I	�L��H��I	�L��H��I	�L��H�� I	�M��E��I�� 1�M��uM��u-H��[]A\A]A^�DH����H��H�� L!�I9�r�M��t�H������H	�L!�I9�r�H��[]A\A]A^�UH��H��S��H��(H�t$��tXH�tCy��u=H��H���H��t H������H��������?H9���H�DH��([]�DH��(�[]�@�K��u�H�|$H� u��u��E��H�D$H�Ǿ螠�H�D$�tUH�H��H���t��H��t�H�����H�@H��s���H��茔��k����H���ز��W���H��H�����H�T$H�T$H�T$�5����PX�H��H�~�7H�D$CH�t$H���H�������AUATUH��SH��H�����H��I�����I9�t1�H��[]A\A]�f.�H��H�5&a7�Q��H�5a7H��H���?��H�5�o8H��H��tpH�}H�ٺ�O��H�����t�L�cL�m��	L��L��诳�u�H���	H���	L)�L)�H9��g������	9��	�U�����M���f��H�=(��_��H��H�5o8�p�����ATUSH��H9�tPI���(��H�5Q`7H���y��H�5B`7L��H���g��;H��H���H�Hc��	H��H����	H���	H��[]A\��H�=�x8tH��n8�fDSH��H��H����H���p�H�=�n8H����H��n8H��H��n8[�ff.�f�H��7H98t$SH�5�_7H�����tH�C [�f.��k���1�[�@AWAVAUATUSH��H��X���7������	L�6I��I���_D�����t3A��uI�����tA�����tH�5e�L�����H����L��趤�I��H����������AWf(�fT��f.���y	f.��o	f/����H�{��H�0�Y�fI~�I9��0fH~�H��<�������M���I���!H�{�H���o���I��I���UH��XL��[]A\A]A^A_�H�z�7�H�0fI~�I9�tfH~�H��<��������M��t�豢�I���@H�D$HL�l$@L��H�D$@4H�L$<H��L��H�$�D$<�֏�tH�D$H�-H��H�D$�[����A����L������@I��I��I��M������@���I������H��I9��PL���M��H��?I��H)�I	�I��L�$�~$�+���f�H�|$HL���-�9��I��H���Y���H�D$HH���K�����H�����A��uI�����tA�E������H�5�L���p��H�D$HH��H�������HcD$<H�H)��!A�t#H��H������H��������?L�|H9���L�|$HH�t$@H��@���/A����D��A��u?������L��H���H��t#A��tA�����
����t"����H��H�$��+�
��I��M���r����&���f�L���X��H�D$HH�����ƒ������H�~.�f(�fT�f.F���H�|$@)T$�	��f(T$�ƒ������@f(�fT�f.
���f.����YhBH�|$)T$ �D$賽��D$f(T$ �ƒ������HfT�f.���~f.��t�Y
Bf��f(ؽ�X��\��\$H�D$Hf/��b�T$<�L$H�߅��=���L$�����Y�H�0fH~�H9�t+fH~�H��<��������I��H��������I������f�I��I��I��M�����@H�t$@@��uu�H�=��
�L��I�<$H��谛�H��H��蕱�H���7H��H�8���H�����H�������
�SH�t$@�@��t�A���a���DI������n���I���t���M���x���A�����
t5���[�������H�����H���FH�|$@�?���@L�����I���A����D��A���l���H�@M��H�I�J�<H���L�|?�}���f�f.���^f.��T�%�?f���d$����H��H9��H���H��H��?H)�H	�H��H�T$�~L$����L�|$H����fD����L$���f.��.����(����D$<���}���I��H�t$@L�D$HM��H��@�����������fDH�T$H�у������J�ƒ����w�@H�0�X�fH~�H9�tH��H��<�������H�������9��I�������\�>H�0�Y��X��XD$fH~�H9�u���� �����H��H�T$���H�T$�������L$<����H�׾�h��H������D$<�m���H��H9��>H���H��H��?H)�H	�H��H�T$�~L$����H��H9��H���H��H��?H)�H	�H��H�T$�~D$�5���H��I��I��I��M������H�D$H�0����ۈ�I���|���H��f�H9��w���H���H��H��?H)�H	�H��H�$�~$�O���H��f��H9��%���H�ֹH��H��?H)�H	�H��H�$�~$���H��警�I���o���H��I��I��I��M���X���f��f������f��p���H���@��H���s���H��H����I��H�D$H�����1��4����ff.�@��UH��S��H������H��H���H��[]���f���UH��H�5�T7S��H��H�����H��H���H��[]�_���ff.�@��AVAUATI��U��SH��@��H�X������H�L$(H���1�L���2��H�|$(H��twL�d$8H�l$0H�D$04H�L$$L��H���D$$�|��tL�l$8�-L�������H�|$(蔽�H�D$(H��t1�H��H���<�H��uNfDH����H�0fH~�H9�t'fH~�H��<��������H��H��t舘�H��@[]A\A]A^�H�|$8H���-���H��H���V���H�D$8H���H��������@��uH�����t�E������H�5��H�����H�D$8I��H������OHcD$$I�I)����t&H��L���|�H��H��������?H9��fH�D?H�D$8H�t$0H��@��������¨u<�����H��H���H��t <t�����
����t����H��L���+辧�H���7���H��@[]A\A]A^��H�����H�D$8H����ƒ������H�~ޟf(�fT�f.���H�|$0)$躴�f($�ƒ������@f(�fT�f.
����f.����Y9L��)T$�$�h���$f(T$�ƒ�����HfT�f.f��Nf.��D�Y
�8f��f(ؽ�X��\��$�u�fH~�H��@H��[]H��A\A]H��A^�f�H�t$0�@���T���H������a���H���>���H���j��������
�����J��������H��ƒ���
��H�t$0��@����������@H���P��H���^H�T$8�у������J�ƒ����`�@H�0�X�fH~�H9�t)H��H��<��������H��H���b���������H��������f.���f.����%@7�f���$$H�D$8f/��_�T$$�L$H�߅�uf�i��L$�����Y�H�0fH~�H9�t+fH~�H��<��������H��H���v����"���l���D�c��L$�H�D$8�R���fDH�|$0���fDH��H9���H���H��H��?H)�H	�H��H�$�~$���D�¨�(���H�H�H��H�@H�H���H�D?���DH��H9��eH���H��H��?H)�H	�H��H�$�~$�?���Df.��6����0����D$$�������H��H�t$0H�D$8H��@���a�����]���f��\h5H�0�Y��X��X$fH~�H9����������fD�� ����L��跂�������L$$���iL������I��A���_�D$$1��p���f.�H��H9��H���H��H��?H)�H	�H��H�$�~$���DH��H��H��H���t���@H�D$8����f.������fDH��f�H9������H���H��H��?H)�H	�H��H�$�~$�f����H��f��H9��;���H�ֹH��H��?H)�H	�H��H�$�~$������{�����fH~�H��H��H������f����f��f�����L�����I�����L��H������I����u�D��H����H��H�x���fD��H�����H��H�x���fD��SH�����H��tH��H�x[�A��1�[�ff.����SH��H�����H��tH�x���H��[�H�5aZ8H�L$�H��H�H�D$谠�tH��H�[�H���h���fD��SH����H��tH�x[�D��@H�5�Y81�1�H���]��H���e��f��f/�wf/�s[�H�p~7H�5�x
H�8��ԁ�H�U~7H�5�x
H�8�蹁�f���ATUH��SH��H�����H��t$1�H��tH�xH����H��H��H��[]A\�f�H�}���H�5@Y8H�L$H�ߺH�D$號�H��豳�I�Ĩt:H��H�L���L�����u5H9�s�H��}7H��H�5Gx
H�81�����H�����H���H�t}7H��H�5�w
H�81��؀����AWAVAUATUH��SH��H��(��H�D$H����H��1����I��H� tH�hH��~]H�D$H��L�uL�hH��H��L�d�L��M�^��D��I��A�C���M9�u�M�sM9�u�H��H��H�l�H��H��H��#H��(L��[]A\A]A^A_ÐH�h�|����H�|$H�H������H���E���H9�u��H�@H�x+H�DH�5�W8H�L$�H��H�D$��I�����H���<{���f.���SH��H�����tH�H��[H���ݷ�DH��蠱�H��[H���ķ�@��L�I��H�GI�uespemosH�arenegylI��H�modnarodM1�I�I1�H1�H�setybdetH1�L9�tuf�H��H�~�I�H��
L1�I�� H1�I�H��L1�I�H��I�H��L1�L1�I�� I�I�H��
H��L1�I�� L1�I�H��I�H��L1�L1�I�� I1�I9�u�H��H�=�u
��Hc�H��8H�>��f�A�PH��H	�A�PH��H	�A�H	�H1�J�<	H��
I�H��H1�L1�H�� I�H�<8H��H��H��H��L1�H1�I�� H�H��
J�H1�H��H1�H�� H�H��H�H��H1�H�� H1�H1���H�H��
H�H��H1�H1�H�� H�H�H��H��H1�H�� H1�H�H��
H�H��H1�H1�H�� H�H�H��H��H1�H�� H1�H�H��
H�H��H1�H1�H�� H�H�H��H1�H��H1�H�� H�H��
H�H��H1�H1�H�H��H1�H��H1�H�� H��H1���A�PH��0H	�A�PH��(H	�A�PH�� H	�A�H	����f���SH��H��H���l��H�޺H�=�T8�x��H���@��f�H�=�T8)$H�����H�=�T8A���z��H�={T8��I�� I	�L�CT8�^��H�=_T8�!T8�L��H�=MT8�T8�:��H�=3T8�T8舰�H�!T8H��[�ff.���H��S8H�Ð��H��H��H�=�S8���f.���H��]8H��S8�D��USH��H�=�S8@��u
H������|�����H�5p�H�=�r
������H�5��H�=�r
�̦�H��t7H�=�r
H�0���H��s7H�5��H��H����H�;�����H�N��H�5s��2��H�;�����H�#�H�5lr
���H�;�H�x���H�5����H�;1�H����H�5Nr
���H�;�H�U�H�5��ɪ�H�;1�H�M��H�5����H�;�H����H�5����H�;1�H�J��H�5�Π�H�;1�H���H�5�q
趠�H�;�H���H�5��K��H�;H�1C7H�5*R8蕸�H��H����H�;H��H�5K�
�H��H�;�����H����H�5Qq
荪�H�;�����H���H�57q
�r��H�;1�H����H�50q
�Z��H�������ƒ����9H���O<�gH�x1�H����H�5�Ο�H��to����ƒ����H���<�/H�xH��1�H����[H�5�p
]速�����
�v���H�v7H�0裁��b���fDH�����u�H��tZH��u�H�x7H�8�f�H������=���H��t>H���.���H��w7H�8�#���fDH�w7H�8�����H�	s7H�8�F����H��r7H�8����H��v7H�8�&����H��q7H�8�����H��q7H�8�����H�Iv7H�8����H�9v7H�8����H�	y7H�8����H��x7H�8�������H��H�=Qo
茕�H�=��H��O8�y��H��O8H���	���f���H�G �H��HE��f.���H�G����H�G����H�OH�5�Y8�1�H�?���f���PXH�5o
H��H��w7H�81��Nw�ff.���UH��SH��H��H�5�X8H��tH��H��H�ߺ[1�]鬈�@�H�=�Ǽ�H��H��X8��ff.�UH��H��1�S�H��H��H�5�X8�^��H��tH��H��H��蚫�xH��1�[]�DH���[]�ff.��UH��H��1�S�H��H��H�5�X8��H��tH��H��H���:����tx1�H����[]�@���f���ATUH��SH��L�gH������tL��H��H�C ����t������u[1�]A\Ð�[�����t�[�]A\�ff.�f�AVI��AUI��ATUSH�_L�gH�G ����u0�{fDH��E1�1�1�L��A��H�5�W8H��1�1�1����H��L��H�������u�[]A\A]A^��E1�1�1�L��H��A�Ճ�t�H�5TW8H��1�1�1��Ɔ�H��L��H������Ņ�u�[]A\A]A^�f���H��1�H�=�雟�ff.���ATUH��SH���H�}H����H��I��蕥�1�H�E ����H�5�)��H��H��H�����L��H���g���u!H�����tH��Ѓ����H��sH��[]A\�f�@��u�H�����t�H�E������t�%H	�H���fD��AUATUSH��H��H�-n7L�gL�oH�uL��账�H��uH���[]A\A]��H�uL��茦�H��t�1�H�C ����L��L����H���[]A\A]������w������AWAVAUI��ATA��UH��SH��H�ZA��A�����߳�uE��tH��L��D��[]A\A]A^A_���DL�eH�5UU8H��1��L��軄�H��L��H����A�Ņ���H�E ����tDE����E����A����E����H��H�H9��
H�\�H��H��H��[]A\A]A^A_�f�H��l7H��H�0�N��I������(���H�E ��������M����������f���f�H�Yr7H��H�0��H���F���H�Vj7H�5�j
H�81��r�DH�!r7L��H�0�Ƥ�H���!���H�j7H�5�j
H�81���q�DH��H�߹1�[�]�-A\A]A^A_�Y��f�H���������H��[]A\A]A^A_�3m���ATI��UH��SH���t2H�H��~7H�}L��覬�H�{��[Hc�H�|?H�}]A\�@H��耣�H�����{�fD��UH��SH��H��H�>@��tH�G�H�H��t1H���[]�fD���-1�肂�H�H��u�H���Q��H�CH�H���[]�ff.���H���#��H���f���AVAUATUH��S�L�gL�oH��t/H� ��H�v H�gj7H�H�0H���	��H����1���H�߾<�ǁ�H����1���H�߾>襁�H����L�5j7L��I�6誢�H��u%[�]A\A]A^��H���i����I�6L���u��H��t�1�H�E ����H��L��[L��]��A\A]A^���DH�����H���8���H��o7H�5g
H�81��`o�H��o7H�5AH�81��Ho��H��H�55Q81�1����H�������H��4��H����!��f���UH��SH��H��H�>@��tH�G�H�H��t1H���[]�fD���-1��b��H�H��u�H���A��H���)��H�CH�H���[]�fD��H�����H����H��Ð��USH��H��H�G ����@��@����H�{H��肝�t^H�H��H��耇�H�{H���d��tPH�H��H���b��H�s �H��H��HE��I��H�����H��H�D[]�DH�����H���H�����H�����UH���!SH��H��f7H�8�o�H�U H�5�O8H��H��艴�H�UH�5�O8H���v��H�UH�5{O8H���c��H��H��[]�f�����������u1������t'@��uH�����t������t��
u���f�H�	g7SH��H��H�0誟�H��t
�[�fDH��f7H��H�0膟�[H�������ff.���ATUSH��H��H�oL�gH�t$H��L	�tZH�t$H�������tH�|$L��H�C ����t�����u1�H��[]A\�������t�H���[]A\�f�H�������u�L��������u�H�5f�H�����H���u���H�5M�L���Е�H���\���@��uH�����tH�U�Ѓ���tH�t$�蚲��Y���A��u�I�����t�I�$������u�H�с� �*H����H���„�t�H�Ɓ� ��H����H������t�H�D$H�������v���H������j���H��׃����Y���H�ׁ� ��H����������������H��uiH���MH��uUI��A�$H��uAH�����@������������8�8��p���H�C �����K���8��C����U���H�@�M�d$�H�m�H�PH������H���u�������I�|$������H�}������f�H�Id7SH��H�0��H��t1�[�@H�5IL8H��[�����AWAVI��AUATA��UH��SH��8耪���H�]L�mE���oH�D$��tYA��tSL�d$A��tHH�E I�I�H��H��I��H�I9��h�H��I9�~XH�|���J�#H9�~��C��tc��uH�����uED1�H�T$L��H��H�E ����������A�ą��`H��H��8[]A\A]A^A_�fD�����u�fDA��tA��u�I�����t�A�E����u�L��L�l$ ��L�%�J8H�D$ H�D$H�E H��HE�H�D$H�D$H�D$(M���|H��责�H�L$M��L��L������H���uy�H���@���DH�L$L��D��1�H��m�t�H�hb7H�|$H�0���H�|$H���E1����<��y�H���`H�|$1����>�y�H������H�Ch7H�5�H�81���g�f�H��a7H��H�0莚�H����H�E I��H��H��M�A��MI��<�Mf�L��A�����H�L$Ic�1�H�|?��*�y��+H��H��1��x�I��1�L��L��L����x�H�����u����f.��kp�H��蓢�L��D��H��L�����H�����H��8[]A\A]A^A_�@�c��H��H�D$���fDH�5.�H��豐�H������H�5�L��蘐�H�����H���r�I��H����H�E �L�l$H�\$ H�D$ H��HE�H�D$H�D$H�D$(H�?H8H��tJH�L$I�ٺH��L����L���+w�H������H�=���I��H��G8�d����H�=��ϫ�H��G8�H�������tDH�D$H�T$ H�5��H��H�D$ H�D$(���~���H�f7H�5d]
H�81��e�H��莕�H�5b]
H��H��]7H�81��e���AUATUH��SH�������H�]L�e��t]A��tWH�E I�H��H��H��I��H�H�O�,$I9�~f�H��H��H��萇�I9�u�H��H��[]A\A]�D������tjH����p�I��H���UH�E �H�5�F8L�$$H��HE�H�D$H���H��E1�L���L���u�H��H��[]A\A]�H�����t����������f�A��t'A���f���I������Y���A�$�����I���L���;��L�%�E8H�$H�E H��HE�H�D$M����H���	��H��E1ɺL�W���L��H����t�H���F���@�m�H���3��H��1�1�L��H��荣�H��[]A\A]�f��H�=x�_��H��H�UE8����H���(�����t<1�H�5��H����H���S����H�=0���I��H�E8�7���H��� ��H�5�Z
H��H�G[7H�81��c�D����t(H�G ����H��Z
H�=�Z
HD��i��f�ATUSH��H��Ps�H�{H���Ds�H��I��虓�1�H�C ����H�5���H��H��H���u�L��H���k��@��u>H�����t5H�U�Ѓ���~6��u"H�����tH�������t%H	�H�UH��[]A\���H��r��ff.�����uH�B�UH��S��H��H���n�H��H���H��[]���f.�S1�H��H��nH�� H�L$�um�H�|$H�|$@��t5H��|�L�L$H��1�L��1Ҿ�H�D$�{r�H�D$H�� [�軓�H����fD����uH�B��{���ff.���ATI��UH��S��軡�uo��uSH�]L�e�1�H�5EC8H��L���r�L��H��H�����PuH�E �����HE�H��[]A\�DH��L���[]A\����L���[]A\隧�f.��H��[]A\�����uhUH��SH��H��H�vH��}�H��u
H��1�[]ÐH�sH�}�}�H��t�H�E ������H�C ������8�u�H���[]����f.���H9�tOUH��SH��H��H��H��Y7H�0蹒�H��uH��[]�DH��H��H��H��[H�=s]�M��D��f���H9�tOUH��SH��H��H��H�YY7H�0�Y��H��uH��[]�DH��H��H��H��[H�=���]���D��f�����uhUH��SH��H��H�vH��_`�uH��1�[]�f�H�sH�}�C`�t�H�E ������H�C ������8�u�H���[]�f���f.�PXH�5�V
��1�H����t����SH� u
H���<eH��[�����f�H��x3H�0H9�t\H��H��<����tmH��H��u>�DH�0H��H��?H9�t!H��H��<������tH��H��t�H�|$��D$���k�H��H��H��H���H��H��H��H�����AWAVAUATUH��SH��L�gL�oA��t
E��A���pD������qA��uI�����tA�$�����Rf�D������AA��u
I������L���6�����L���&�����L���Ə�L��H��軏�I���Ý���H�E ������M��E1��H�5A?8H��1�L���n�L��H��H�������H�-�>8H��L��1���+�sn�H���H��1��\n�H��I���1�H�Ũ��H���<H���������L��1��+�n�H���O����A�E���������L�����ƒ������@f(�fT�rf��fH~�fI~�H��f/�LG�L��訔�ƒ����"�@f(�fT�rf��fH~�fI~�H��f/�LG��K���3H�E H��H��I��M9��QM��E1��Kf�L)�H��H��?H�H�L�H�����H���}�H�ŨufH����H������L�{M9�}nL��L��H��H��?H��?8�L��u�H��L9���L��H��H��L)�H��H��?H�H�H���DH���X����H���H�����t�I��M9�|�M9���E���G�H��H��[]A\A]A^A_�H������hH��������
���M���u���DI��A��&���f�K�<H��H��?H�H�����f.�M��A��2���f�H�YT7H��H�0��H�����H��1��H�5G<8�k�H��H������������f.�H��S7H��H�0螌�H���%�H��1��H�5�;8�Zk�H��H��蚎��Z�����f.���b�H�����H��H��E1�[1�]1�A\H��A]A^A_�C��I�I�L�l$�Й�t�H�E H��H��H�T$�H�D$L9���I���$�NL)�H��H��?H�H�L�H�\-H���{�I�Ǩ�5H���[H������L�eM9���L��L��H��H��?H��?8�L��u�H��L9��.L��H��H��L)�H��H��?H�H�H���L��H��[]A\A]A^A_����L����1��-�j�I���,����|���E1�L�����H���z�H�è��H��t�H������L���H�,R7H��H�0�ъ�H������H��1�H�5:8�i�H��H���͌������@�����������H���������L������������I�����DI��D�4$���@K�D%H��H��?H�H��\���f�H�iQ7L��H�0���H�����L��1��H�5W98��h�L��H���
���@������e���f.�L��H���t�H����E����������fDH��E1�H9���H���H��H��?H)�H	�H��H�$�~$���f.�H��E1�H9��j���H���H��H��?H)�H	�H��H�$�~$����f�H�����L���n���L9d$���$K�\$���S����I���H���x�H�ŨutH���5���H������$���H�P7H��H�0詈�H���0�H��1��H�5�78�eg�H��H��襊������������������H����������H���՜����H���Ȝ����H��踜������������$K�\$H����w�H�ŨupH���a���H������P���H�0O7H��H�0�Շ�H��t`�H��1��H�5"78�f�H��H���Չ�����������������H��������H��������H��蘄�H�5a^H��H��L7H�81��T�L���u��H�5�L
H��H��L7H�81��jT�H���L���AUI��ATI��UH��SH��H��H�4$��H�T$t��u"1�H��H����H�=���诉�H���tH�C H�`thL�(A��uM��uzH���`uJH�CH�(@��u
H�������H���`t@H�CL� A��u
I�������H��[]A\A]�H�C�f�H�CH���fDH�CH���fDL��H���o�H��s���H�ƒ�`H��`�c���I�U��`H��`�R���L��H���h��?���f�L��H���eo��g���H���`H��`�W���I�$��`H��`�F���L��H����g��6���@H��H���o�H������H�ƒ�`H��`���H�U��`H��`����H��H���g������,��ff.����S1�H��H�T"H�� H�L$L�L$L�D$�^�H�{ u/H�L$�H�T$H��H�t$H��HE�����H�� �[��L�ff.����ATUS@����H��H��������������H�!K7H�H9F��H� H����H�5�38H���_m�I��H�CH�`uH�CL� A��u
I�������H�5�38H���&m�I��H�CH�`uH�CH��L� A��u
I�������H�5Y38H����l�H��H�C H�`uH�CH��H�(@��u
H�������H��[]A\�L��H���Em��h���H���`H��`�X���I�$��`H��`�G���L��H���e��7���@L��H���l��]���H���`H��`�M���I�$��`H��`�<���L��H���ie��,���@H��H���l��R���H���`H��`�B���H�E��`H��`�1���H��H���!e��!���H�]H7H�5bH
H�81��$P��?�ff.�@��AUA��ATI��UH��SH��H��I7H�8�J^�A��L��H��H�H��H��H�у��l���H��H��[]A\A]�ff.���AWAVAUI��ATI��UH��SH��H��H�CI7H�0�C��H��t>1�L�{L�sH�C ������M�}M�4$�EH���[]A\A]A^A_�f.�H�5Q18H���p�tH�5618H����o�uH��1�[]A\A]A^A_�f�H�5181�H��1��`�H�5�081�H��I��1��w`�H�5�08I��H��t 1�1�H���\`�H����������B����H�=�F
�g��H��H�}08��ff.���AVAUI��ATE��UH��SH��H�� H�L$H�T$H�t$�I���L�t$A��tmH�D$I��tuH�L��M��xzH��H�HIȃ|$H��A�����uH9�dH9�HO�H)ѸI�UHHȸH�MH�� []A\A]A^��L�����I��H�D$�u�H�����L��M��y�H��L��z���E��u*H�� �[]A\A]A^�f�H�� 1�[]A\A]A^�I��H��I7�|$H��
H�
�H�5�E
HD�H�8L��1��<M�ff.����U�H�=�USH�����H�=K�
H�*/8�͒�H�=�H�
/8赒�H�=X�H��.8蝒�H�=4E
H��.8腒�H�=s�H��.8�m��H�=A�
H��.8�U��H��H�-�E7L�
�D
jL���H�
�H�uH�P.81�H����H�=�D
�y�H��E7H��H�ZH�^L7YH�2�5��H�uH�;H�
����H�P���;o�H�;�����H�l���H�51S��{�H�;�H�!�H�5!S��{�H�;�H��H�5SZ�{�H�;�H�k��H�57Z�{�H�;�H�p�H�5�R�{�H�;1�H���H�5���l{�H�;1�H���H�5S�T{�H�;�����H�%�H�5_g�9{�H�;1�H�-�H�5ST�!{�H�;1�H�e��H�5��	{�H�;1�H�]��H�5u���z�H�;�����H�r�H�5`R��z�H�;�����H���H�5KR�z�H�;�����H�\�H�5o�z�H�;�����H���H�5�4
�z�H�;1�H�Y��H�5�n�mz�H�;1�H����H�5�Q�Uz�H�;1�H�I��H�5�Q�=z�H�;1�H�a��H�5xB
�%z�H�;�H�f��H�5;o�
z�H�;�H�K��H�5wR��y�H�;H���[H����H�5RB
]��y�f.�@��H�G����H�G����H��������fD��SH�5T,81�1�H�_H��[�H�5L,8H�ٺH��1���Z�H�5#,81�[H��1���Z�fD��H�OH�5,8�1�H��Z���H�OH�5�+8�1�H��Z���UH��SH��H�$+8H��t7H�5+8H��tRH��1�1��_Z�H��H��1�H��[1�]�JZ�f.��H�=�A
�_��H�5�*8H��H��*8H��u��H�=Ld�8��H��H��*8�ff.����UH��SH��H�t*8H��t7H�5`*8H��tRH��1�1��Y�H��H��1�H��[1�]�Y�f.��	H�=�@
迍�H�5*8H��H�*8H��u��H�=�c蘍�H��H��)8�ff.��UH��AWI��AVI��AUATSH��H�u�H�H�U�dH�%(H�E�1�苎�D�M�L� I���A�DD�jH��D�M��U�D�M�H�pH�E�H���D�M�H�E�wiH�E�H��H�E���T�H��D�M�H��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�|$H�����H���x�I�M�eD�M�H��I����@��_uJE��t�����H��I��3H��A�DttӀ�_t�M��tA��A�1�I�I��M�e�ȅ�tH���I�H���{_t�A�1Ҿ
�nC�H�M�H�}�H���|�H�M�dH3%(��u(H�e�[A\A]A^A_]�fDH�E�1�H���1����T���USH��H��H�wH��r�H��H��H���(S�H��H��[]�ff.���AT�I��H�=^�
US�w�I�|$H���U�H�5 C
H��H���X�I�|$��U�H��H���B�H��H����B�H�ߺH�5~��X�H��[]A\�@��SH��H��H��Kt�t7H�H�{H�$�7t�t3H�H��H�D$�n\�H��H�D[�H���w���fDH���v���fD��H�eE7��H��H�5�'8H�8��b�AT��I��U��H��SH�� ��tH�GH�|$�)a�5�D�D$�X��ST�Hc�H�\I�$H�]H�� []A\�f.�H��f�H9�t�H���H��H��?H)�H	�H��H�|$�~D$�fD��H������H������������t:�Gf(�fT
qZf.
�Zwf.�z1�1��x���H���@H��H9�t�H���H��?H)�H��H��H	�H��H�T$��~D$��ff.�@��������t2�Gf(�fT
�Yf.
ZwWf.�zQ1�1�����H��H9�t�H���H��H��?H)�H	�H��H�D$��~D$��f.���f.���UH��SH��H��M�H�5C@
H��H����U�H�}�jM�H��H���@�H��H��[]�D��SH��H�@��tnH��H��x"H�KH�5+%8�1�[��S�fDH�CH�5�$8H�[H��1�1��S�H�5�$8H�ٺH��1��S�H�5�$81�[H��1��S�1����<�jS�H��u�H�{�v���ff.����H���/�C�H�@H�@H���f���ATI��H�58$8USH��L���]�H�C�uH��H�����uhH�5	$8L����\�H��H�C�uH�����uH��[]A\�fDH��H���U]�u�H���`H��`u�H�E��`H��`t�H��H����U��H��H���]�u�H���`H��`�y���H�E��`H��`�h���H��H���U��X������ATUSH�_H�o����E1�H����H�߹�1��*�R�H��@��tH��H��t+��tH��H����H��H���+1���Q�H�ù�H��1��*�Q�H�5�"8�H��H��1��Q�M��u_[]A\�f.�A�H�5�"8H��1�1��gQ�H���D������H��1��<�?Q�I��H������뷐H�5i"8[H��1�]1�A\�Q�f�H���B������UH��SH��H��������tz1���H��H�54"8��P�H����H��H�ٺ�/1��P�H��@��uH�����t�E������H�5�!8H��H��1�[1�]�mP�DH������y��������
t����X1���H��H�5�!8�-P�H���f����f�H��H�u`��uH�����t�������H�5-!81�H��1���O�tH��H�H��t9H��H��H��[�/1�]�O�@H��������f�H��H��[]�fD1�H����>�H�0fH~�H9�t'fH~�H��<��������H��H��t�H��[]�pK�1�H���v>�H�0fH~�H9�t'fH~�H��<������tNH��H���"����&K������H�C��&���H����������fH~�H��H��H���#���fH~�H��H��H�����f.���UH��SH������H������{H�E�ƒ����i���`H��H���"_�H�H��% ��H�SH���9H�K H�QH�:@����@��u
H�������H�5l81�����M�H��u}H�% H����H�CH�H�5�8H���'��H� t~H��H�H�5�8H�����H��H��[]�fDH����H����H�SH�:@���X���H��u�H�
77H�5j�H�81��;�f�H�C �n����H�[ H���y��������
�<���������H�W���&���H��t�����H���
;�H��;7H�5|4
H�81��B;�f�AWA�AVA�AUATU�SH��8H�4$H�5�8H�|$H�T$ H�L$(H�D$H���XDH�|$1�1��L��I�ă�t
�$��H�$1���<L���VL�H���5��L��1��-E���1L�A��H��@�����H���H��L$�����3��uH������1�H���*H��1���K�I�ă�E��tL��H��t*��tL��H����L��L���+1��K�I��D�t$A��A����L��H��m�L$���A��uH������w�L����*H��1��AK�I�Ń�E��t
H�|$H��t,��tL��H����H�L$L��1��+�K�I�ŋD$����H��H����H�<$H�پ-1����J�H�5�8H�$H�$H������1��J�I��H�|$H�ٺ1��-�J�L�t$H��H�5d8H���H�ٺ�1��_J�H�5P8I��L�|$H�$M��L��H��������H�=�T�\~�H��H�8���D���D$����H��H���@������H�����������E����
���f�E����M��D�t$A��A���(�����T$���L���H��H��(A��u"I�����tA�����
�Jf.��D$�����H�=�S�}�H��H�-8����A�f.�H�<$H�پ-1���I�H�58I��H��H���J����H�=,S�!}�L���H��8H��1���H�I���'���H�$H�H�H9��h��������H��H����A���EL��H��LD��1H���~����D$I�����f�H���f���I��E�������L��D�l$H�������D�t$D��A�����D$�|���L��H���@H��������D$I�����f.�H�5�8H��t$H�$��1���G�H�\$H�D$�=����H�=�Q��{�H�$��H��8H��1��G�I��H��H������H�\$L�t$���f�H�������E����H�D$H���%D�t$M���&���f�L�l$�6���fDE��u#L�l$�-����L��A�H��ME��o���H�D$H����D�t$L�l$��������
�����E����L�l$���������
��������DH���H���*L��1��F�H��A��tL��H����@��tH��H��tL���+H��1��MF�I��H�D$ �l$L�0��A����L��H�������A��uI�������f.�L��L����*1���E�I�ą�tH�D$H���dA��tL��H��tH�L$�L��1��+�E�H�D$H�D$(H�|$H�8H��8[]A\A]A^A_�@��t�L��H���A���n���I������a���A�����
�R���f���t�H�L$H��H��HE�H�D$뉐H���&����;������{���L��H�H��u+@��uH�����t�E����
�O�����E����H���3����H���@H���������tH�D$H����M������@M���D$�t���L�������I���.����L�d$���fDA��a���A�$����
�E�����H�D$H����E1��0���M���.���L�|$�p���@�����H��H��Z������a���A���R���I������E���A�$����
�5����5���ff.�AW1�AVAUI��ATUSH��H�w7H��(H�L$�=�H�27H�|$H�0�d�H����H�L$H�5�8�1���_C�A��H��A����H��A���u5��uH�����t
�����
tH���*H��1��	C�I��H��*7L��H�0�d�H��toH�|$@���pH��y�H��(H��[]A\A]A^A_�@��t�H��H���@��u�H�����t��EA�����
�k����f�H��17L��I��A��H�0�c�H���L��A��I��M���$�����؃�����H�������jH�{�/�t2�H��L�hA��u
I������ZH�CE��tH��H�H��tH��H���/1���A�H��H�|$@����H��������uH�����t�������H�5�8H��1�1��A�H������1����<�ZA�H���{�����q����I��H�������(���fDH����������H���)H�����H��.7H�8����f�1����<��@�H�����������@I��H����������fDH�y-7H�8����L��H���5K������H���`H��`�����I�E��`H��`�r���L��H���C��b���@M��t3�����؃�����H���Y��uH�f/7H�8��H�����t?H�{�/�i0�H��L�`A��u
I�������H�AI������H���H��u�H�B-7H�8�DH��.7H�8���f�H�I'7H�8�H��1Ҿ
�*�H�����DH�!'7H�8�K���f�H�),7H�8�>����H��+7H�8�#����L��H��H�D$��I�H�L$���4���H���`H��`�$���I�$��`H��`����H��L���7B�H�L$���DH��'7H�8���H�2+7H�8���H��'7H�8���H�<%7H�5�%
H�81��-�����uH���P�H�
I�����@����uH���p�H�
i����@����uH���0�H�
)����@����uH���`�H�
Y��d���@��AUATI��UA��H��SH��H�����M��tG�؃�����H���1\�H��H���&\�H��H�5�GH��H�J$7H�81��,��H�����t������
���ڃ����#���������u�L�%%7H�{I�4$�^�H��uQH�{@����@��uH�����t�����
t*���H�5�81����=�H���S�H���(�H��H��H��[]A\A]�X��@��tz@���`�������H����@���.H�}�/�-�I��H�XM��u
H������'I�EH��H��L��[]A\A]�W�f.�H�����u�H����H��u�H��)7H�8�@H������[H�}�/�},�H��L�hA��u@I�����t7L��H���F�u(H���`H��`uI�E��`H��`tL��H���?�@H�CH������H�������L�k@���q���@�����������H����@���R���H��*7H�8�G���fD@��urH�����ti�E����u^1�H���*�H�0fH~�H9�t+fH~�H��<�������nH��H�������07�H������H�5!81�H��1���:�H������DH���
H�������H�6(7H�8���fDH�q'7H�8�r���f�H�Y#7H�8�����H��)7H�8�����H�9'7H�8����H��H���D�����I�E��`H��`�����H���`H��`�����H��L���a=����@H�G�����H���L�����fDH��!7H�8�?���f�H�9&7H�8�'���I�<$���H�!&7H�8���H��"7H�8���H��H��H��H�����fD��AVAUA��ATI��USH��A��uJ@��u
H�������H��!7L��H�0�pZ�H���QH�5�
81�1�L���49�H���5H��'7L��H�0�9Z�H���A��A����H��H�E���H������L��1��<L����8�H����H��H���@���@��u!H�����t�E����
����y1���H��H�5�	8�n8�H����H��[H��]A\A]A^�fD1���H�߾<�78�H���nH�5g	8H��1�1�L���8�A��H��A��E���QM����E���-�����u H�����t�����
��������1���H��H�5 	8�7�H����[H��]A\A]A^�fDH��H���%1�H���~7�H���t�H��H�t�@��t�H��?H��H1�H)�H����,@H�@H���H�l?[H��]A\A]A^�@A�H�5S81�L��1��7�H�������A��u
I�������H�58L��1�1���6�A��I��A�����L��E�������1���L��<�6�H��������s���D�����
����H��$7L��H�0�W�H��t;A��A���~��H��1��<L���:6�H�������x���@A�$�����3���L��1Ҿ
�9!�A��I��A�����f.�E1�����H��?L��H��H1�H)�H�x[H����H���q����
�H��H�H��H��H��u��S���H��H���'��������[]A\A]A^�s�H��H��u�H������H��H����fDH��H�H��H��H��u���H�C��r����d����H���H������H�E������H��������{���H�w7H�5.
H�81��>#�fDH��H�����ff.�f���ATA��UH��SH��A����@����H������������
��������J���A��urH�}@���n@���dH������W�����
�����@H�WH�C����H���G�f��؃�����H�5S8H��H��[1�]A\��3�DH�}@����@��uH�����t�����
t*����H�581����3�H����H�E�t	H�H��t1�[]A\��H�}H��H��H!ب��H�5�81���83�H��tŸ�@@���H��������E������1�H���8"�H�0fH~�H9�t+fH~�H��<�������lH��H������.�H���@H�G�����H������E������u:H�����t1�����
�����uH�C�����H����������@1���H��H�5�8�-2�H�����������H�5I8H��1�1��2�H��H�ٺH�5[8����fDH�5I81�����1�H��tSH�C����uH�����t�����
�3���H�5�8H�ǹ1���1�H���E���H�}H�C@��t���H�5�8H���1��L1�H������H�}H�K@�����������H�H�H9���������@H���w������f�H��H��������p����H��H�CH�������i���H��H������H�}@���T���H�H9��<����b���DH�H�H9��#����Y���H�H����H�P��t	H���?���H�}����H�C���H��H��H��H���J���ff.��AW��I��AV��AUI��ATI��UD��S��L��H��(H�T$�D$A��/��	H�t$D�������D$�L$��L��H���������H������H��1��<M��H���/�H����H�5�81�H��1��/�H��D�D$E����A��u
I������\
1���L��H�5�8�Q/�H�����|$����L�t$1����<L���/�H���]	H�5N8H�|$1�1��/�I�����D$�L$����M��M�����T$����A��u
I�������	L�Ϲ�1�H�58L�L$�.�L�L$H����H�5�7L��L��1���x.�L��H��H�5��7I��1��\.�I��A���L��H��cA���9A��uI�������fDL��L���*1��	.�I��H�5O�7H��H��1����-�H�56�7H�|$L��H�ú1���-�ڃ���H��H����Ń����uH������5DH��H�Ǻ�*1��-��H�Ã�A����A����D�������n
I����
A����M�g����H��H�H���w���b�������BH��7H�5�H�81��T�@D�L$E������������I��?H�M��I�I��I1�M)�H��sH���2
H��H���)
L��H��?I��M1�I)�M���]M����A�L��M���
H��H�I��H��L��H�I��I��H����H����H����H���
H�����H����H���8
H��������H�I��H9�������H��L�L$���L�L$H��L�����H��H���1��H���O����L��H���l���@����@��u!H�����t�E����
�����
1���H��H�5�7�h+�H�����|$L��������H�T$�t$H�����H��������L��1��<M���+�L�L$H��� L��H���l���A����A��u!I�����tA�����
�<���
1���L��H�5�7L�L$�*�L�L$H���M������fDL��H���%1�L���v*�I��A��t�L��H�����@��t�M��H��I��?L1�L)�H���	�4	@H�@H��-H�l?����1���L��<L�L$M���)�L�L$H������H�5"�71�L��1�L�L$��)�L�L$I�����@L��L����%1�L�L$�)�L�L$M��I��A��t�L��H������A��t�I��?L��L1�L)�H����5DH�@H��EL�t?��������H��gA������I����������A�$����
����A����D���M���H��H������8���H������+��������
����D�A���2����I������Q���I���	M���>���H��7L� �3����H��1���H�5�7�U(�H���]����H�5}�7L��1�1��1(�H�5j�7H��1�I��1��(�H�è�@I��A��u
H�������1���H��H�5L�7��'�H���6��7��uBI��L��A��L��/��I��I��H�h@��u
H������I�\$M���
H��(L��[]A\A]A^A_�����X����W���1���L��<�G'�H����H�5w�71�L��1��+'�I�ƃ��D$���tH��H��������e���������
t6����H�C�t%H�H��uH�C�tH�H�����L��/M����I��L�hA���I������
I�\$M��f.�H��������H��L���1�����I�$��`H��`����H���`H��`�����H��L���t)���������H���O�D$M�ĉl$H�ˉ����f�H���^�����H�Ã��p���f�H������������H��H�H�������M�����M����������H��1��<H���%�H��������1���L��<�_%�H����L��l$I��1�H���:���f�A�����
�4������i���I�A����������A�����
�M����������I�F��8����*����1�H���<����V����H�������M�����fD@��@��H��H�H���IZ���L�����������w���H�I
7L� �3����H�97L� �#����H�D$H��?H��H1�H)�L��H���H����H�������	fDH��H�H��H��H��u����H��H��?H��H1�H)�H��H��$H����H��������H��H�H��H��H��u����H�5�7L��1�1��#�H�5��7L��1�I��1�I���#�l$��H����L��M��f�H��L���.�����I�$��`H��`����H�E��`H��`�����H��L���&����L��H�����������H��H������������
�I���j����H����H��
7L� ���f�H��H�����H�����@H��H�������H���D���@L�������H��7L� �C����I��H�I��L��H��u�����I��H��L��H�I��H��u�L��H�I��I��H��H�I��I��H���nM���eI����I���9I����?M����M���H��������H�I��L9������L��L�D$L�L$���L��I�����L��H���h'�L�L$L�D$I���4���fDH��7L� �S�I�\$M������A�E����
�P��k��������
���ջ���fDH��H��H�������I����H����fDH��H�H��H��H��u����H���fDH��H�H��H��H��u����H�E��a���H���l����S���fDI�F�����H���
����
���fDH��H�������H��H���g��������I��H�@H��PH�\�݃����f�H���#����H������L��H��M�������L��I��H�H��H��I��@��H��H�I��I��H��t	@�������A��j�O�l-�d�fDH�@M��L�y�L��L�D$L�L$�	�L�L$L�D$I���'�f�M��1�A��t���I������O�l$���M����H��H�I��L9����[���H����H��H�I��H9�����H�\�݃���H���		��H�Ã���H��H�I��L9������H��H�I��H9������A��K�H��������H�I��L9������H��������H�I��H9�����f���AVAUATUH��SH����e���\H������O�����
��ڃ����[���R���+L�cD����s@���G@���I��I��t�E����
�-����1���H��H�5.�7��H����L�cH�[D���M��uH���(H����L�u����L��H�H���L��S������dH���mM��H��A��L���/�
�H��I��H�h@��u
H�������M�fM����H��[]A\A]A^�D�؃���tH��H��[�/]A\A]A^�ND�fD@��ujH�����ta�E����uV1�H�����H�0fH~�H9�t'fH~�H��<�������0H��H��t'��H����H�5��7H��1�1��U�H��H�ٺ[�/]1�A\A]A^�6�fDH�UH�uA�/H��A�[H��]A\A]A^���f�H��H��u�H��7H�5�H�81��@
�1���H��H�52�7���H����L�cH�UH�uH�[A�/I��L���L��H��t�����L��1���H�5��7�u�H���Q����H�5��7H��1�1��Q�H�5��7L��1�H��1��;�I�Ĩ��M��A��uI�����tA�$����
����tj1���L��H�5[�7���H���[���7����������f���u������H��H�[H�H���H�UH�u��I�D$�tH�H��uI�D$�t	H�H��t�L���/I����
�I��H�XA����H�������M�fL��fDI������"���L��H����$�����I���`H��`�����I�$��`H��`���L��H���4������L�c��H�[��D������$H���@@���&���H��7L�2����f�@���RH�_7L�2����H��H�����H��L��H��H���$��>���I���`H��`�.���H�E��`H��`����H��H���p��
���@��@��H��H�H����N������������������fDH�uH�UH�[@���6���H��H�H���&���������H��H�H���
���D�������fDH�Q7L�2����H�7L�2���H���:���H��7L�2���H�<7L�2����M�fL���%���H��H��H��H����I��I��������USH��@��uhH����t �����t~H���*[]�n?�fDH�����t׋����
t-�����tK��tF��u�H�NH�WA�*L�F�DH�WA�*A�H��H�wH��[]�V�fDH��@��u_H�����tV�����uL1���H�0fH~�H9�t'fH~�H��<��������H��H��tJ�]��H�5Y�71�1���t,H��H�uDH��uH�����t�����
u��.DH��H��H�Ǻ[�*1�]���H��u�H��H��[]�fH~�H��H��H���D��AWAVAUATUH��SH��H����uI��u
H�������H��6H��H�0�7�H����H�5��71�1�H���C�H����H��7H��H�0�H7�H���7A��A��u^@��uH�����t�E����
tL����1���H��H�5E�7���H��t#H���[]A\A]A^A_��H��H��t�A��A���C��uH�����t�����
t)����1���H��H�5��7�g�H��u�E���I1���H��<�@�H���7H�5p�71�H��1��$��H��A��I�ľ<1�A����H���E1�I���+D��u	H�����uRH�5�7H��1�1����H�����������
�9���H�7H��H�0�5�H���p���������u�H��1Ҿ
��H���H����I��I������E���1���H��<�2�H����M��� E��I��I���\DI��I�������H��1��<I�����H���'H�5�71�H��1����A��I��A��E����A��u
I������1���L��H�5��7L�D$��L�D$H���E��tL��H�H��tH��L����/1��P�H��E��t8H��H���@��u@��uPH�����tG�E����
u<@��K�@��t*H��H��.��uH�����t�����
t�fDH��H�ٺ�*1����H��H�5?�7H��H��1�[1�]A\A]A^A_��DH��u����A�$����
t$������I�D$A��A��tH�����@E1�E���<A��u>I������t5A�����
tw��u%I�@�tjH��ue�E��M�����DL��1���H�5b�7L�D$���L�D$H��t#��@L��L�Ǻ�%1����M��I��A��t�E��L��A��H��2���E��t�I��?L��L1�L)�H�����f�H�@H��}L�D?E��A�����@H�E����������H��H�M���YL��H��t�H�H1�H��H)��@H��L��I��H�H��H��u��1���H�߾<���H����E1�I��I������H�����H�����fDI��I��M���B����P���@H�C��2���H��������$���H��6H�5��H�81����fDH�5��71�H��1��U�A��I��A��M���c���E��I���u����L��H����������L��H������D����I����������A��I��A���d���@I��L��H��������D���@H��H���(fDH��H�H��H��H��u�����H���H���!���H������fD��AWA��AVAUATUH��SH��H��A��uJ@��u
H�������H���6H��H�0�Z0�H���;	H�5r�71�1�H����H���	H�~�6H��H�0�#0�H���A��A����@��u!H�����t�E����
�����1���H��H�5�7��H����A���H��1��<E1���H��tH�5��7H��1�1��h�A��H��A��E���H���!E���7@��u!H�����t�E����
�%���\1���H��H�5n�7��H����H��L��H��[]A\A]A^A_�)��H�EA��A��tH��� ���f�E1�E������u H�����t�����
�P���/1���H��H�5��7�t
�H���#E���"H��A�H�H������1���H�߾<�4
�H������H�5d�7H��1�1��
�H��E������H��H������������uH�����t�����
tT����1���H��H�5(�7��H��t+H�����fDH��H�ߺ�%1�H����H��@��t�H��H��������t�H��?H��H1�H)�H��.���H�@H���H�\?�;���H��H���g���E������H��1��<A���H�����A�A����f���u
H�������H�5��7H��1�1���A��H��A�����@�����
�N���H��6H��H�0�,�H����A��A�������H��H��������F����H�C�tH������E���?1���H��<�&�H���n1���H�߾<��H���sI��E1�I���D���������H��1Ҿ
��A��H��A������@I��I��E����1���H��<�
�H���M����I��E��I���A��u"I�����tA�$����
�a���91���L��H�5��7D�D$� 
�D�D$H���*E��tL��H��H�H��tH��L���/1���	�H��E���H��H���@���M@��uH�����t�����
�0�H�ٺ�*1��	�H�5�71�H��1��y	�I��E������H��H�E������H��H��?H��H1�H)�H��H��bH��H��u
�
DH��H�H��H��H��u�����H��H���V����|����I��I��E1���H�߾<���H����E��I��H�5�71�H��1�D�L$��D�L$A��I��A���@E�������H��H��?H�H��H1�H)�H���[A�� ����k��H���k���H��A�H��H���	���fDE1�����H��H��H������H��H�H��H��H��u����H��H�M����L��H���]H�H1�H��H)��H��L��I��H�H��H��u��8�H�E���������H�5��71�H��1����H��A��I�ľ<1�A��D�L$�t�D�L$H�������I��E1�E�����L��H���9���E����A��uI�����tA�E����
t\��� 1���L��H�5p�7D�L$��D�L$H��t)�;�L��L���%1�M�����I��A��t�E��L��A��H������E��t�I��?L��L1�L)�H��g���H�@H��L�l?E��A���Z���@H���B�������f.�M���I��E��I�����f�H��H�����D1�A�����H�C��y���H���E����k���H�w�6H�5.�H�81��>��fD@���.���H��H��"������H��������������
������H�5�71�1���H��I��H�E���!�������f�H�5��71�H��1��]�A��I��A��M���~���E��I�������H�������H�5��71�1���H��I��H�E��������k���I�D$A��A�������H������@E1����H�������H��������y���f�L��H�����E��M�����f�H�������H�����fDE1�I�����D��@���fD�c��A��I��A���B���@I��L��H���T������@I���2���H��H���BfDH��H�H��H��H��u��{���H���H�����I�E��'���H���5�������H���L���ff.��AW��I��AVM��AUE��ATA��I��UH��SH��8D�L$A��A����H�|$�D$��E���VH��H�@���
E����M��H���S1���L���<L�D$(L��D�L$ �;�D�L$ L�D$(H���LH�5a�71�L��1�L�D$(D�L$ ��D�L$ L�D$(A��H��A��E���L��H���PE����
��uH�����t�����
tA����1���H��H�5
�7L�D$(D�L$ ��D�L$ L�D$(H����M��H���*����hL���%1��T�L��I��A��t�L���H�u�H��A���1���L���<��H����H�5G�71�L��1���A��I��A��E�������L��M�������E�����A��u
I�������01���L��H�5�7D�L$(L�D$ ��H���2H�5��71�H��L����y���H��H����t$����A��uI�������fDH��L���*1��)�I��H�5o�71�H��L����
��eH��H��9@��uc@��u
H������HH��H���*1����H�ʼn���|$+����tH��H��tL��H���-1���I��H�5��71�H��L����w�H��D����D$��1���L��<�K�H����H�5{�71�L��1��/�I�ǃ��D$E���<H���U�T$����A��u
I������4	1���L��H�5F�7���H���YH�5�7H��L��1����H��I��H�5��7�L��1������0H��H����ƒ��Y�uH�������f�H��H�Ǿ*1��I���H�Ń�H�D$��4���	�D$������H�|$���|$�
H�D$L�h����H��H�H������4�������0H�c�6H�5ÛH�81����f��L$���d���L��H��p��P���H������D��������
�6���fDA��?���D�ƒ������H��H���@������H����������M����
���������fDH��1���H�5r�7��H���3����H�5�7L��1�1����H�5
�7H��1�I��1���H�Ũ�I��A��u
H������:1���H��H�5��7���H���6
���7��u@I��L��A��L��/���I��I��H�X��u
H�������I�mM���DH��8L��[]A\A]A^A_�f.����X����9���H�D$H��������H���uH�|$����H�R�6L�(����f.�L��H�E����H���f�����H��1��<M����H����L��H������������uH�����t�����
t-����1���H��H�5��7�2��H����H���(@@����L����%1����L��I��A��t�L��H�u�H������fD1���H�߾<���H�������H�5��7H��1�1���H�����@�������H��H��z������H���������������
����������E����
t5�������H�E�t$H�H��uH�E�tH�H�������fDL��/M���p��I��L�`A���?I������BI�mM��H����������H��L���p������I�E��`H��`�����H�E��`H��`�z���H��L������j���fDE���W���H��H�E������H��H��?H��H1�H)�L��H���H����	H����H�@H���H�\?A��A�����fD����A��tL��H����L��H���+1����I���W����H���v�����H�����f�H����������H���f����{����H��H�H���$�������M���[���M��E1����DE�������H�H��L��H�H��?I��H��H1�H)�H���H����	H��H��� H�@H��
	H��H�H��H��H����L�l-H��������H����H���
H�����H���
H����
H��������H�H��H9������fH��H�L$ H�t$���H�t$H��H�����H��H���)��H�L$ H�ÐH��H�H��H��M����H����I���=H����	I����%M����	H���
H��������H�I��H9�������H�����L��H������H��H����H��A��A���|$+��E��tH��H��t��-H��1���H��A��A��H�5��7L��L��1����E��H��A��E����1���H�߾<D�D$�^��D�D$H����I��E���\M���uE���A��u!I�����tA�����
�m���|	1���L��H�5]�7���H���@H�50�7L��H��1�����L��I������A�����
�:����������I�G��%��������A�����
�������I�@�����|��1�H���������H��H�������A��� ����'���DH�����I�����fDH���&����|$+H���N�������@��@��H��H�H���+��������\������H�C��4�H���+�E��L����DH�C��c���H���Z���L������H�9�6L�(�e����L�D$ D�L$(E���t�H��H��t���H�	�6L�(�5����L��H��?H��H1�H)�H��H���H����H��u)H�@H��>H�\?����f�H��H�H��H��H��u���fDH��H�H��H��H��u��i���L��M��f.�H��L���5���T���I�E��`H��`�C���H���`H��`�3���H��L�����#���@H��H�����������M��H��I��?L1�L)�H����H�@H�xZH�\	�8��M��H��I��?H��L1�L)�H����~H�@H�x/H�\	A��A���,�fDH�����H������H�����A��H��A����f�H�)�6L�(�u�H��H�������H������@H��H���o���H���>���@L�������I�����H�y�6L�(��H��H�H��H��H��u�����H�1�6L�(���f������
�r�ʽ��fDI�mM������@A�$����
�`��+��U����
������@H��H��H���d���H���<���f�H���fDH��H�H��H��H��u��]���H���fDH��H�H��H��H��u���H��H���H������H��H���H������H��H�E���QH���0��L��1��<I�����H����L��H�������A���uA��uI�����tA�E����
t-����1���L��H�5��7�^��H���9L���$@���6L����%1��2��L��I��A��t�L��H�u�I���/���fDI��H�@H���H�L	�
����1���L��<����H�������H�5��7L��1�1����I���p���H�5�71�H��1�D�D$���D�D$A��I��A���/���@H���9���H���u����H�\���fD�����fDH�@H��H�y�H��H�L$� ��H�L$H�����H��H�L$ H�t$���H�L$ H�t$I��H��H�H��H��H���������؃�E������tH��H������+���H��1�����f�H��H��?H��H1�H)�L��H��;H����H��u)fDH�@H��L�l?�\���H��H�H��H��H��u���fDL��H������M���-���@I��?I��H��L1�L��L)�H��t�H���Q�H��H�H��H��H��u��k���H��H�������A�������H����H��H�H��H9�������H����H��H�I��H9����\���K�L$�{���H�\6���H���N��H���a����A��I���R���H��H����H������H��H�H��H9����]���H��H�I��H9������H���A���H��H�������H��������H�I��H9������H��������H�H��H9�����H�����H������H���B���I�G���������I�E�����H���M�������@��@��uf@��t�����tv�-��@H�����tߋ����
t5�����tK��tF��u�H�NL�FA�-H�WH�w�&�fDH��H�WH�wA�-A���@SH��@��u^H�����tU�����uK1�����H�0fH~�H9�t#fH~�H��<������tDH��H��t ���H���H�5��71�1��X��H��H�ٺ�-1�[�@��H��H��H��H����ff.�@��@��uf@��t�����tv�+�l�@H�����tߋ����
t5�����tK��tF��u�H�NL�FA�+H�WH�w���fDH��H�WH�wA�+A����@SH��@��u^H�����tU�����uK1����H�0fH~�H9�t#fH~�H��<������tYH��H��t)�`���fDH�5Y�71�1����tH��H��tH��H�Ǻ�+1�[����@H��[�fH~�H��H��H������AWAVAUATUSH��H��(��tIA��I��A��tQH��yjH�5�7H��1�1����L���H�����H�5��71�H��1��q��H��H��(H��[]A\A]A^A_�@1���H�߾<�?��H��u�H�L$H���
��1�L���2��H�5��71�1�H�|$�
��H�D$�tH��H���H����-H��1�����H�l$A��I��A��@���E��tH��H��tH���+H��1����H��E��t
@����H�5�71�H��L���y��H������L��H�L$H�T$H���{���L�d$L�t$��t<E�����؃����eH���{����H�[�6L�(�H�����uoH���]H��u`H�q�6L�(�X@E��I��H���9���f.�L��H��H�H�H9��K����H���fDH��H������H�����@L�kD�����L��H�H����@����BH�5��7L��1�1��O��H�5��7L��1�I��1��9���I�ă�E��A���L1���L���<���H���BH�5;�71�L��1�����A��H��A������L��M���5E������u
H������61���H��H�5�7���H���2H�5۸7H��L��1���y��H��L��H�5��7I��1��]��H�Ũ�RI��A��uiH�����ta�����
t��uRH�E�tH�H����D�/L��M���h��H��L�pA���\I������eH�k�p@1���H��H�52�7����H��t�ҷ7I��L��A�����:����/L�����H��L�pA��u
I������qH�kM������H����������H��H��������H���`H��`����H�E��`H��`����H��H���h����������H���6H�5�H�81��`��L���1�H�5b�7����H���m���DL��H����JH�������1���L��<���H����L��H�5ն71�L��1����H�����������
t�������H�C����@���N@����H��������E����
����u{H�E���H����fDH���v����I��H�A��H���D����'����L��L��H��H���<����i���f�L�������1���H��H�5�7���H��t%�{���H��H���%1�H���n��H���t�H��H�����@��t�H��?H��H1�H)�H��~���H�@H��-H�l?���L��H������|���H���`H��`�l���I���`H��`�\���L��H������L���D@��@��H��H�H���A����H�	�6L�(�
����H�i�6L�(����H�Y�6L�(����L��H��?H��H1�H)�L��H���H����H���"����H��H�H��H��H��u�������L��1��<L�����H���B����r���fDH��H�������������H���Q���H��H��u�H�����H�y�6L�(�-����H��H����fDH��H�H��H��H��u��k���H�k�+���H���H���h���L��H�����������p���H�E��I���H�H���<������ff.�@��AWAVAUATUH��SH��H��H��L�%��6I�4$�5�H��tL�-��6H��I�u��H����H�
�6H��H�0��H����I�4$H�����H���4A�߉�A���U��t0����tQH��7H��H��H��[]A\A]A^A_���H�����tNj����
������t
��t��u�@��uH�����t�E������
H�5j�7H��1�1��&��H��H�5|�7H�ٺH��1�[]A\A]A^A_����H�{@���"@��u H�����t�����
�����T
H�5%�71������H������H�[���f.�L�-9�6H��I�u��H�������H�}@���N
@����H�����������
�}������hH�G��h���H�H���[���H�G��O���H�H���B���fDH�}@���r@��u H�����t�����
�����H�5-�71������H���3H�}@���F@����H�5�71��H������y��H��tH���6H��H�0��H����H�}@����
@��u H�����t�����
�j�������
H�5��71����
��H���@������1�H��@��H��H��HO�H�|?�����@����@���
�������
H����
@����
H�}�/����H�@I��H�@H��L��[]A\A]A^A_��H�ؿH�H���,����A�A���urH�}H�5��7H��1�����H�}H��I��H�5b�7�1����I��A��D�������A��uI�����tA�$������A��E��@���@����������iH���c	@���H���6H�H�D$���������H������������
�O�������H�C��:�����f�H�5Y�71�H��1��
��H�}�H�5]�7H��1�����H�5,�7H��1�I��1�����H�}H�������H�51�71������H��������f.�1���H��H�5�7���H�������@@���@���n�������	H����	@���_
H�}�/���I��H�@H�@���@A��A��t'A�������I������~���I�E�����n�����DH��[]A\A]A^A_���@H�H���������fDH�����u'H����H��uH��6H�H�D$��H�EH�D$E����L��H�H����f.�����ZH�5{�7L��1�1��/��H�5h�7L��1�I��1����A��I��A��E��A���j1���L��<����H����H�5�71�L��1�����A��H��A��E���:L��M���1E���M���\H������O�����
�e���8H�C��P@H���C�H�5��7H��L��1���?��H��L��H�5}�7I��1��#��H�è��H�Ń���H������������
t&����H�C�tH�H���j�H�|$�/L�����I��L�p����I�������I�\$@H���������H��L��� �������I�$��`H��`���H���`H��`����H��L����������1���H��H�5��7�%��H������@���"@��uH�����t�E����
t_���R1���H��H�5A�7����H��t6��f.�@����H��H���%1�H�����H���t�H��H�u��/����L��H�5��71�L��1��j��H�����f�1���H��H�5��7�E��H��t�R�7H��M����������H�|$�/�z��I��L�pA��u
I������(I�\$H���y����U���D������H�y�6H�5�tH�81��(���L���1�H�5"�7���H���M���DL��H�E����H�������1���L��<�g��H������L��L��H�����H��H���P��������H��H���H����������@��@��H��H�H�����f�L���5����H��H���K���H�����@L��H���m������I�$��`H��`�����I���`H��`�����L��L���������@@��@��H��H�H���)���f�H�G����H�H���~�H�G��r�H�H���e����f�H�ٽ6H�H�D$���@H�H���G�����fDH���6H�H�D$�u���@L��H��?H��H1�H)�L��H���H����H��u)fDH�@H��UH�l?�C���H��H�H��H��H��u���fD��L��1��<L���d��H�����������fDH���������H����H�����H���6H�8����H��?H��H1�H)�H����L���H���f.�H��H�H��H��H��u��#���1�H�=��
�j�@��uH�����t�E�����vH�5ݥ71�H��1����H�ٺH�5�7H���n�f�H��H�H�������H������H������T�����K��H�����H��H�������H���t���H���6H�H�D$���H��H��������H�Ӽ6H�H�D$����H���6H�8���H�G�tH�H��uH�G�t
H�H���I���H������!�����
�[���
�H�G��F�H�H���9�H�G��-�H�H��� ����fD1�H�����H�0fH~�H9�t+fH~�H��<�������nH��H������B��H�����I�\$�u���H���S���H�߹�1�H�5Z�7����H����H������.�H����H����H�.�6H�8��I�}�_���H�E������H����������H�ܾ6H�8�6���H�=�6H�8�'���H��1����%1��J��H����H������@����@���H�������H����@����H�}�/�W��I��H�XH�@�j�H��6H�8���L��H���i�����������H��H��H��H����H�q�6H�8��H�����u�H��� H���x���H���6H�8�m���H�C������H�H�����������H�G����H���7��r�1�H���l��fH~�H��<H9�t'fH~�H��<������tbH��H���Y�������O���I�}�I�H���6H�8����H���6H�8�+�H��6H�8��H��6H�8�
�fH~�H��H��H����I�}���H���6H�8�t���H�μ6H�8�e���H�/�6H�8�V���H��H�����ff.����AUI��ATUSH��H����u7A����D������nH��7H��L��H��[]A\A]�r��f�H�C�t
H�H���L�������A��A�����؃����H������NH�{�/���H��L�hH��uI������g�H�A��I������6���A�E����
�S���D�����������������I�MH�k�ȃ�@����H�{������M�EA����I��I�����M������uH������t�����
��H���*1����H��H�{����I�E����H��H��@�uY�uH�����t�����
tCfDH���H�Ǿ*1��I��tH��H��tH��H���-1��&��H��@����H��H���'�����H��H�H���
H�����tgH�{�/A��A���*��H��L�hH��u
I�������H�AE��t	����H�5�7�H��H��1�[]A\A]�{��H����H��u�H��6H�8�/赽�H��L�hH������A��A���{���f�H���6�/H�8�|��H��L�hH���H�A�[����H�H��H)�H�����H��[]A\A]�fDH�{H��L!��NL��H�5'�7����f.���ukH�����tb�����uX1�H��辻�H�0fH~�H9�t'fH~�H��<��������H��H��t��n��H���x���fDH�5a�7H��1�1����H���W���DH��L��H�L$���H�L$���B����1�I���������L��H��H�D$�s��H�L$�������fDH���`H��`�����I�E��`H��`���H��L��H�L$����H�L$����D�������H��H�ut@�������H�����������E����
�����H�{�����������H�5��7H����������H��H���H���:����L���D������H��H���@���j���H������]��������
�O������f.�H�I�6H�8�2����H��6H�8�"����H�I�6H�8�����H�I��L)�H���x����T���@H���6H�8����H���������I��I��F���I���d���H���|���H�������H��������`���H�M���LH���CI����H���yI�����M���DH����H��������H�I��H9�������H��莳�L��H��胳�H��H���(��H�{M�EH��L��H�H��;���H���2���H����H�H��H����H���tqH����H���*H��������H�H��H9�����tF���H��I����L��H��������I��H�@H���H�H��H���U���H��H�@H�x-H�H��H���W�����)���H��H��H��H�������}���/���H�����H��?H�I��H9������K�$H��H������H��~}�H��?H�H��H9�������H��� ��H�{M�EH������H��?H�I��H9����Y����H��?H�H��H9�������H��������H�I��H9����&���H��������H�H��H9������f.���AUA��ATA��A��UH��SH��H��A����1����<�b��H��tH�5��7H��1�1��J��A��H��A��E���H����E������u H�����t�����
�����xH�߹�1�H�5R�7����H��H��t[H��H��[]A\A]��H��H�E���AH���S���1���H��<���H����H��H���r@����@��uH�����t�E����
t-����1���H��H�5��7�:��H���EH���@H�ٺ�%1����H��H���t�H��H�� ���@��t�H��?H��H1�H)�H��1�kH�@H���H�|	���fD1���H��<���H���h���H�5ϖ7H��1�1����H���M���H��?H��H��H1�H)�H���H���H��u,H�@H�xmH��H�|?[H��]A\A]��H��H�H��H��H��u���fDH��H��[H��]A\A]��H��H�������H��H��H��[]A\A]�H��H��[]A\A]�Ʈ�fDH��H��u�H���_���H��H��H������H��H�H��H��H��u����H�C����������H���H�����H�E��#����Z����H��������=N�7�D��AUATUSH��H�_H�o@���x@����������� H���.@���4L�o��tCI��I�M���l��r���tQ���+H�N�6H�5�`H�81���DH��1���H�5��7�}��H���%�����H�5��7H��1�1��Y��H�5��7H��1�H��1��C��H�è����u
H�������1���H��H�5x�7���H��t
��7I��u<L��/I���I��A��I��H�h@��u
H�������I�\$M����H��L��[]A\A]�����h������H����������H���QH�������H��6L�(���f������
t6���'���H�C�t%H�H��uH�C�tH�H���!����L��/I���p��I��H�hA���_H�������I�\$DH���������H��L���p������I�$��`H��`�����H���`H��`���H��L�����������I��I�I��������u���H�A�6L�(���f�@��@��H��H�H������������?����~���H���6L�(�A����H��L������B���I�$��`H��`�1���H�E��`H��`� ���H��L��� ������H���6L�(���f�H��6L�(�����H��6L�(����I�\$���fD��H���6ATI��UH���/SH�8�ΰ�H��L�`A��u	I�����uXH�k@��u	H�����u
H��[]A\�DH��H������u�H���`H��`u�H�E��`H��`t�H��H���E���L��H�����u�H���`H��`u�I�$��`H��`t�L��H���
���p�����������tj@��uH�����t
�����tQ���7SH��u3H�
��
H�Ҧ����H��H�Ǻ�/1�[�[���������@H��H�5��7�1��2��f���AWAVAUI��ATI��US��H��H�/�6L�0����H��H�H���w����������E��A����1���L��<賾�H����L����/L��M���HE����@��u
H�������1���H��H�5ɏ7�\��H����H�5��7H��L��1���:��H�ٺL��H�5x�7I��1����H�è�KI��A��uH������f1���H��H�5P�7���H��t��7I��L��A����u4�/L�����H��L�hA��u
I�������H�]M���vH��H��[]A\A]A^A_�@L��1���H�5�7�e��H���
����s���H�5��7L��1�1��A��H�5z�7L��1�I��1��+��E���I�ă�A���J���L��H�����H���?��L��1��<L��L�����H����H��H���x���������u H�����t�����
�����]1���H��H�5�7肼�H��tjH���"���D��L��1��<L���T��H�������H�5��71�L��1��8��H�����H��H�ߺ�%1�H�����H��@��t�H��H��������t�H��?H��H1�H)�H��V��H�@H��H�\?�p���H�5��71�L��1�譻�A��H��A�����fD�����
t6�������H�C�t%H�H��uH�C�tH�H���������/L��M��訫�H��L�hA����I������
H�]fDH������}���H��H������j���H�E��`H��`�Y���H���`H��`�I���H��H������9����I��H�A��H�����������E����
����������H�E����������@��@��H��H�H���r����L��H��?H��H1�H)�L��H���H����H���R����H��H�H��H��H��u��;���H��H����������L��H������J���H�E��`H��`�9���I�E��`H��`�(���L��H���������賣�H���X���H��H���o���H�����@H��H����fDH��H�H��H��H��u����H�]�L����H���H���{����H�C��!���H�����������fDL��H������ �������H���6H�5VH�81��P��AWAVAUATA��UH��SH��H��8H�|$�?��H��I��H��	@H�|$�7H���Dq u�N�A�?��u	H�|$D����H�\$���H�D$(H�EH�D$�8.uHH��H�L$D��H��H�T$ �D$H�D$��^������1�H��8[]A\A]A^A_�f�1�H�T$D��H���^����t�H�|$��;��H�EH�D$���.t���߀�EuRH�PH�T$D�xA�WՁ���H��1�H�T$(D��H��H�D$�Y^�����g���A��-���A��-��H�L$(H����H�5Ј7��1��_��H�}�t7H��H��{@��u@��uOH�����tF�����
u<@��H�@��t*H��H����uH�����t�����
t��H����*1��ܶ�H��H�}H�D$�8/�OI�M��H�D$�0H���Dq u�E����@����H��8!�[]��A\A]��A^A_�f.�HcL$H�5ԇ71���H�L	�^��I��H�ED�����t$���t3H��H��A��u!I�����tA�����
�Jf�H��L����*1���H�L$ H�E��tH��H��t$�tH��H����H�Ǻ�+1�迵�T$H�E��tL��H�H��tH��L����/1�萵�H�EH�D$�����H��1�H�T$(D��H��H�D$�
\��������H�L$(��tH��H�H��tH�}��/1��*��H�EH�D$�U���@1�H�T$(D��H���[�����n������f�H�5)�7H�}1�1��ܴ�H�E�M���H����������H�5��7H�|$(1�1�諴�H�D$(�����L��H�up�u"��|���H������p��������
�b���H�D$ H�E���H��H������������H���F���H���U���fDH������� ���H�������H�L$ L�}L�����'���H��H��L�������?���fDH������H�E����H�D$ H�E�tH��H���������H�E���ff.�@ATUH��SH���`��H�]�� uwH��L�e��1�H��L�����H����A�<u_H��L���O�������H�$�ƒ������uH�����t
�����tlH��[]A\�fDL�eM��tlH�]념H���8��H�E�� t'L�eH�EA�M���z���L�%�R
�n���DH��L�e���D�T���H�,�6H�5\�
H�81����H�4�6H�5��
H�81��Ӡ�H���K��H�|$H�D$�L��H�5%�H��H���6H�81�衠���AW1�AVI��H�1pAUATU��SH��8H��L�D$�#��H�$H���Q���<�uH�����t������"f�H�D$�uH�����t������q
�����H��H�����H�<$�������>@���H�|$�������Q@��u#H�����t������4����H��� ��H�$��uH�����t�������L�=��6I�7����H���5��H����H�$H�L$H�t$ ��L�D$H��nH�D$ H�D$H�D$(1�����yH�\$��uL��uH�����t�����
�CI�7H�����H����
H�5؁71�1�H��脰�H���g
H�-�6H��H�u���H���/
L�d$H�\$A����A��uI�����tA�$����
�I�7L���A��H���
H�5Y�71�1�L�����H����H�uL�����H���L�d$L�l$L��1���H�5?�7�¯�H���j��������H�B�6H�5�LH�81����H������������������������H�$����fDL�l$A����A����I�������A�E����
��H���6L��H�0�0��H��u+A�E������L��1Ҿ
���I��fDL�l$A��H�D$�r�������H�5�7L��1�1�覮�H�5�7L��1�I��1�萮�I��D��E���A���r1���L��<�a��H���PH�5�71�L��1��E��A��H��A�����3L��M���LE���b@��u
H�������1���H��H�5]7���H���7H�507L��H��1���έ�H�ٺL��H�57I��1�貭�H�Ũ�/I��A��uH������J1���H��H�5�~7�w��H��t��~7I��L��A����u4�/L��豝�H��L�hA��u
I������'H�kM���ZH��8H��[]A\A]A^A_��I�7H�|$�#��H�����H�5;~7H�<$1�1����H��tH�5"~7H�|$1�1��̬�H�������H�L$H�$��tH��H�H���{���H�ߺ�/1�葬�H���_���f�I�7L�����H���X	H�5�}71�1�L���Y��H���<	H���6L��H�0�^��H���U���A��u
I���������H�5K}7L��1�1����I���'������L��1��<L�����H�������H�5}71�L��1��ȫ�H��E�������H��H�������������H�����������
������H�C���H���m�H�5i|7H���x1�1��G��H�|$H�$�����������H�51|7H��� 1�1����H�D$���DL��H����JH���������L��1��<L��L���Ҫ�H���
������@H�|$�����H�5�6H�5��H�81���@H�����H��tH��6H�<$H�0���H���c���H�<$H�
��
�H������H���!��������
t6�������H�E�t%H�H��uH�E�tH�H���������/L��M���X��H��L�hA���WI������H�kfDH����������H��H���X�������H���`H��`�v���H�E��`H��`�e���H��H���Ĭ��U����I��H�A��H����������H�uL���l��H���{L�d$L�l$L��H�H���^���@��@��H��H�H���G���fDL������H��H��u%H���	���H��H�ߺ�%1�H���֨�H��@��t�H��H�������t�H��?H��H1�H)�H����0H�@H��H�\?����E����
��������]���H�E����������������H��6H�|$H�0�S��H����L�=��6H�$I�7����L��H��襲�����H���`H��`�����I�E��`H��`�����L��H��������@A��u
I�������H�5�x7L��1�1�袧�I�ă�L�d$L�l$��������L���D1���H��H�5�x7�e��H��������_����H�xH���6H�0�]��H���t���H�D$H�x@����@��u H�����t�����
�D�������H�5\x71������H������H�D$H�@H�D$�����H�xH�e�6H�0����H�����H�$H�x@���@��u H�����t�����
�����"H�5�w71����T��H���k�H�$H�@H�$�Z�f.���u
H�������H�5Gw7H��1�1����H������H�=3�
���H�|$H��H��v7����H�=�
���H�<$H��H��v7�d���@L��H��?H��H1�H)�L��H���H���H������D�s��H�����H�-ѓ6H��H�u�u��H�����@���������H��1Ҿ
�[��H�����H�uL���4��H���$���A�$�����C���L��1Ҿ
���I��B���fDH��H��uH���(����H��H�H��H��H��u�������H�D$�A�f�H�k�����H������H����f�H��H�H��H��H��u����H�|$@����@��u H�����t�����
������H�5tu7��1���H�$H������L�=W�6I�7����H��H���o������L��H���\�����������H�H�$H��u��s���H����������H���?�����H�GH�$�t�H�H���z���H�G��n���H�H���a���� ���H�W���]�H������O�H�W���b�H���D����T�H���6H�5L�H�81��\��ff.����SH��H��迨�H��� uwH��H�{���<u>H�T$1����H�D$�ƒ������uH�����t
�����txH��[�H����H��� uHH��H�{���D�fDH�{H��uH�=aB
�fDH�C�<�t�����H�{H�C�H���U�����H���6H�5Ҝ
H�81��a����USH��H�T$H���K��H�\$H��H�H����CH�5|r7H��H�\H����H�ٺ�1�觡�H�<$H������H��[]�@H�-Ir7H����H�51r7H��tTH�<$H�ٺ1��a��H��1�H��1��R��H��[]�H�5	r7H����H�<$1�1��+��H��[]�@�H�=�
�?��H��H��q7��H�=3�
���H�\$H��H��q7�[����H�=��
���H��H�mq7�����H�=�
����H��H�]q7�X����������f���S1�H��1�H�=�
�x��H�߾[���f.������}��ff.�f���H��1�H��
1��(���H���E��D��H��H��6H�<$�H�H�t$H����H�����H�G����H�G����AT1�1�UH��H��SH��H�5q7莟�H�èt	H����H�ٺ�-H��1��g��I��@��tH��H��tH�ٺ�+H��1��?��H��A��t��uAH�5�p71�H��L�����H��t4H�5p7H��tgH��1�1���H��[]A\�f�L��H��H�H�H9�t�H�L$H��H��L����Q��H�t$H�<$���H��[]A\�DI��H���i���D�H�=Ө
���H��H��o7�y�����AVAUATUH��SH�� H�T$H���0H��H�<$@���"@��u!H�����t�H�\$����
t+����H�5�o7��1����H�\$H��u
��tDH��xaH�5�n7H����H�<$H�ٺ1��ܝ�H�����H�� []A\A]A^�f�1���H�߾<觝�H���H�$A��A���}��*�1��w��A��H��A��H�L$��tH��A�H��t��-�1��?��I��H�5
n7H����L���1�����H��I�ƾ-1���L��H���1��I��E��t
H�ؿH��tH�߹�1��+�Ü�H��L�����H��A��t���H�5n71�H��L��莜�H����H�5Nm7H���H��1�1��i��H�� []A\A]A^�@�H�=<�
�w��H��H�m7�I����H��H�\$����H�5�l7H���#����H�ȻH�������H���c����~���L��H�H�H9��Q���H�L$H�T$H��L����N��H�t$H�|$����H�� []A\A]A^�D�H�=��
���H��H�]l7�T���H�5Yl7H�\$H���|�������fD�H�=��
���H��H�l7����H�GH�\$��&���H���'����������ATI��U��SH��H����tWH��xp1�H�L$H�Ď
��L�����uH���^��H��[]A\�DH�t$H��賖�H��[]A\�f.�1���H�߾<藚�H��t�H�5l7H��1�1����L���H���R���H�5�k71�H��1��_��H��[]A\�fD��H��H�T$�N�H�D$�ƒ���t�uH�����t
�����tH���H���6H�5͔
H�81��\��ff.����AV�H�=ږ
AUATUS���H�=��
H�@k7����H�=�=H� k7����H�=��
H�k7���H�=�
H��j7���H�=�
H��j7���H�=_
H��j7�s��H�=a7H��j7�[��H�=�
H�`j7�C��H�=��
H�@j7�+��H�=)�
H� j7���H�=]�
H�j7���
H�=�����H�=�H��i7����L�-�6H�=�H��i7I�u���H���6H�5&E��H��H��k��H������(�ƒ�����H����<�H�xL�%�6L�5��6H�5p�
����H���g��7�ƒ����IH����<��H�xH�56�
������H�5{A��H�=�o��H�;1�H�S<��H�5���H�;1�H�K<��H�5�~���H�;�H�`���H�5��Ե�H�;�H����H�5y�蹵�H�;�H���H�5O�
螵�H�;�H��x��H�5=�胵�H�;�H��x��H�5C�
�h��H�;�H��E��H�5��
�M��H�;�H�����H�5q�
�2��H�;�H����H�5��
���H�;�H��a��H�5��
��H�;�H�mX��H�5c�
���H�;�����H�2X��H�5۠
�ƴ�H�;�����H��W��H�5Ơ
諴�H�;�����H��W��H�5��
萴�H�;�����H��W��H�5��
�u��H�;1�H�	B��H�5<�
�]��H�;1�H�A;��H�5�
�E��H�;1�H��:��H�5�
�-��H�;�����H���H�5��
���H�;1�H��>��H�5�
��H�;1�H�>A��H�5F�
���H�;1�H�6>��H�5&�
�ʳ�H�;1�H��=��H�5�
���H��|6H�;H�5�GH��9��H��F��H�5�
H��H���˩�H�;H��H�
�A��H��?��蒦�H�-k�6�H�_[��H�5^|H�}�?��H�}�H�/~��H�5E|�#��H�}�H�3���H�5&|���I�}1�H��:��H�5�{���I�}1�H��9��H�5�{�ղ�I�}�H����H�5��
蹲�H�}1�H��>��H�5�{蠲�H�}1�H�9��H�5�{臲�I�<$1�H��>��H�5r{�n��I�<$1�H�!?��H�5d{�U��I�>1�H���H�5!�
�=��I�>�����H���H�5��
�"��H�}1�H�%�H�5�
�	��H�}�����H��H�5n�
���I�<$1�H���H�5��
�Ա�I�<$�����H�D���H�59�
踱�H��{61�H�X�H�5��
H�8虱�H���^��f�ƒ����xH����<�H�x�����H���H�537蚧�[H�=cz]A\A]A^醗�fDH�����u�H����H��u�H�2�6H�8�DH����������H����H�������H��6H�8���f.�H������,���H��tNH������H��6L�%�y6L�5{6H�8�����H��~6L�%�y6L�5�z6H�8���L�5�z6L�%�y6I�>����f.�I�>�����I�>�����H��~6H�8�����H��~6H�8����I�<$�����I�<$����L�%9y6L�5Rz6I�<$�S���f�H��}6L�%y6L�5+z6H�8�-���H��}6H�8�?����H��}6H�8�N����H�i�6L�%�x6L�5�y6H�8���H�I�6H�8�����H�9�6H�8������H�H+1�H��t
�����D��@��1�@��u)H��H��t H�1��у���tH�к%HE��f.�����~*�B�H)�H�T�DHcH��H��L�H�8H�pH9�u�1��ff.�AWL�7L�NAVAUATUSH��H�D$L��$f.�L�H��I9�u�H��L9�s@D�M��I)�H��N�L�I9�u�H�,2L�<
L9�wNH�T$I��I��D�/H�����EH\�J�,#L9�w!D:+u�L��H��L���ә�u�H��H+D$�H�����H��[]A\A]A^A_�ff.����S�
��0�H�@H��H�@H�@ ���H�CH��[�ff.�UH��H��SH���/��H��H�X�#��H�5wH�PH�1y6H��H�81��D}�@��H�=%w1��n��ff.���H��1�H�=/w�J��H�����H�==w1��.��ff.���H��1�H�=Gw�
��1�H�����H��1�H�=�i���ff.�AWAVI��AUATUSH��H�H9����8\H�X�~H9���I��E1�H�|E1��H�k��0<H���Hc�H�>��fDH9���{-H�k�E���\H9����E����H�]<\�YA�H9�u�@�ZH�5�xL���4������D�	E��t��E��u#I�,$H��[]A\A]A^A_É�H�݃�E��D�f����@����f��
�f��
�f��\�f�E����H�CH9��P�{-�F�K���:H����\�g���A�����@H��H��H�T$H��H)�H9޾HB��Չ�H�L$H��H���LH́��������ZH�5(xL�����������������fD����fDH�SH��H��H)�H9�H�T$�HB�荘�H\$H��H���|���D�ZH�5�wL��脨�����k����ZH�5@wL���f������M���@�ZH�5�tL���D������+����ZH�5�vL���&������
����ZH�5�vL�����������H�������ZH�5�vL�������������ZH�5|=L���ħ�����ff.��UH��AWAVI��AUATSH��hH�}�H�H�u�HcRH��H�M�L��x���I��L�M�dH�%(H�M�1�H�E�H�BH��H%�H)�H���H��H9�tH��H��$�H9�u����H�\$1�H���H��腎�H�E�H�U�H�u�H��H�E���������A����A�D$�A�H��H�E��3H�U�H�u�H�}���������B�;A��I��L;}���N�,;L��H��Mc�L��苈��|�L��L��H���x�����A��u�����A�H�}�L��H���I��H��x���H�H����L9�u/H�E�H�M�H�1�H�M�dH3%(��H�e�[A\A]A^A_]�H�}��ZH�5Zr���D�����뽐Mc�L��H��J�4#�·���m���H�}��ZH�5�t谥�����f�H)�H�L��j���f�H�]�H��t�1�H���vs�H�}��H���e���/���H��x���L�0� ���H�sL��H���B��������o���迅�ff.�@AWAVAUI��ATL�$UH��SH��L��H��H��HH�$H��L�D$dH�%(H�L$81�H�L$(�D$(�1��}��H���/u�D$L9���L�t$,H�D$0H�$H�D$'H�D$�}D��/�����.H��D���UX����H��	D���UX����D��L�<$H��s1��L���5r�L��L���%��HcD$,H�L9�sXH��L��L��H�����A�ǃ�\�k���Hc|$,H�L9��l���H��L���/��D$,H��L��Lc�L��L��Lj�L9�r�f�H�D$8dH3%(��H��H[]A\A]A^A_�DHcT$,H��L��興��^���H�t$L���D$'\�i��HcT$,H��L���Y���/���@H��L��H���B��D$,����H�|$��H��L��H��U �T$L����C���H���`��L$(�����	��!���L9���I��L�t$,�(D��/t~H����UX��tmHcD$,I�M9�sqH��L��L��L���|���u�H;l$uCL��H��L���Ҭ�H�I���D�;�D$,�����Hc�H��L���R���(���H���r�D$���H�$H��L���-���h���賂�AWI��AVI��L��AUI��ATU��SH�����H���W��I��H����L��H����H�5'qH���̆�M��L��L��L��H������D$
/@��uUH�t$
H�F@��t�iH����t�xH���H���`��H�Al6H��H�8�nz�H��[]A\A]A^A_��H�t$
�D$mH�F���K��I���H���ATI��U��SH���y�H�;�� u$H��H��H�{��[M���H��]A\����DH�sH�{��fD@��t:@��uH�����t
�����t!��t
H��o6��@H��l6����K��ff.���H��H�
�oH��o�鱶���SI�PHH)�L���Lz�H��H���1��1�[�ff.�f�UH��AWAVAUATSH��HL�GdH�%(H�E�1�E�p E���vA�@I���E�A9@$��I�|$L�E��Mx�L�E��xH�E��=�E�H���H�H��H��H��H���H)�H��H9�tH��H��$�H9�u�%�t	H)�H�L��E�H�\$H����2��I�p1�H��1��L�I��M��x)H��A�~A��L�I�PL�Hc�H��L�Ic�I��H��H9�u�L�κH��L�E�H�
\�L�M��u�M�d$L�M�L�E�I�$ �@I��E��~UA�F�I��L��E1�H��H�DH�E�DM�/H�U�L�M�I��L�E�M�L���"��L��L�E�L�M�I�M�w�L9}�uʋE������E�M�X1�I�������L���f�I�@(H�xH��L� L�`L9���M�4;M��x�M��1�fDI9��^��I�D5L��H��H��H��H�H+
H����I�@(L��1�L�,xH�BI�EI�@L�48f�H9����H�H��H��H��L�<L��I+H����I�GH��I�EL9��]���A�@ H�E�dH3%(�EH�e�[A\A]A^A_]�I�x(Hc�L�E�H���|�L�E�I�@(A�X$�S���fD~H�p�
���DH��DH9���H�M��H��H��H��H�L+*M������~�I��H���D~H�H�
���DH��DH9���H�L��H��I��I��I�I+7H������~�H��H���DM�d$����U������E�M�HI�P(I�x��H�4�1��I�H�BH�H�LBH��H9�u�A�@ ���E1�������|��d���i��f���AWM��AVI��Hc�AUATI��UH��SH��H�t$��H��E��~.A��E1��@I��JcT�L��H��H�T蘴�I�UM9�u�H�t$L��L)�诬�H��L��H��衎�H��1�[]A\A]A^A_���SH��H��t
�
蘏�H��[鏅�ff.�@PXH�5�jH��H�$e6H�81���l�f���H� tH�G�P����f.���H� tH�GHc@H�D�P������H��tvSH� H��t~H�GH�@H��H���tJH�1��j���u:H�����t1H��у���t$��t�uH�����tH��у���~��H�[�f��þH��s�[��������H���ӭ�H��H���f����H����SH� H����H�GH�PH�:���H�H�@H�H�0�� tNH�WH)�蒰��u:H�����t1H��у���t$��t�uH�����tH��у���~0��H�[ÐH��������f.��[þH��s�[��������H�����H��H���W�����H�z t��H��H�RH��L��3Hcr��闉�P����AWAVAUI��ATE1�US��H����u
I�������I�} ��M�}A�Ic�څ�M�mH��A;_}aDI�WHc�H�4�H���tgI�WL��H��H)��D��E��t�uH�����tH��у���fI��s`H��H���e���A9_�H��H��[]A\A]A^A_�f.��H���3���̐I�E��H��������DE��,���@��H�����������f���1�����DH�t H�GH��tH� u�fDH�xu�PH��a6H�5?gH�81��`i���SH�����H�C[�@<H��?H��?���ff.�@AUA��ATUH��H��SH��H���Us�=0�H���b���H���o�H��I���o�xt9H�EL9`H��E��tH�E���H��L��[]A\A]�f�H���ho�H���`��u�@��u�H�����t�H�E�ƒ���t��t�H�EH�xHL9�t��u^� ��uUH���r�=uFH�EL�`H�e����~�I9��k���H���jr�=�X���I�t$H�=c1��L���@���H��H���|�H���n�H�5��
H�PH�2h6H�81���g��AWI��AVI��H��AUATUH��SH���qn�I���d��H�5MeH����z�H���H��I��H����H����A�}���ӓ�H��H����r�M��L��L��L��H����H�5�dH���z�H�����H�E�P<���H�t$H���t�iH����t�xH����|$�*H�Eth�H�5�H���,z��tTH��H��[]A\A]A^A_�D���H��H��� r�L��L��H��M��L������H�55dH����y��u�H�����t�H��Ѓ���
�H��r�f�@������H������r���H�E�������`���%H	�H��P����H�t$�D$mH�F���D�c��I���o���L��蠀��p���H��H�����p����H��������SH��H������H��H�5

H��H��^6H�81��e�fD��H�tUH�GH��tLH�0�� t!H�HH��t8H�pH��H���y���f�H��H�HH����H���Z���f.�鋬�ff.���SH���c���H���k�H�{H�7�� u\H��H����H���)m��u:H�����t1H��у���t$��t�uH�����tH��у���~ ��H�[��H�wH��fD�H��s�[���H9��sATI��USA��uH�����t
�����t[1�]A\�@H��H�����H�����H�H���u
H���������t
H��%L9�u�H�CH�M�@<9A<u�H�MH��� �H����H��H�sH��� ��H����H9��i���L�eI��A��A����H��������A9��:���H�MH�H�ǁ� ��H����H��H�CH�pH� tH�pH����H�y�����[�]A\�@H�u������������I�������������f.�H�F�"����H�I���H�Q�a���H�y�z���H������ ���H�����H�A�����UH��SH�����H�}H�EH�7�X<�� u,H��H������y�H��H���{�H��[H��]�S��H�wH���fD��H�����H��H�D�f���UH��SH���Ω�H��H���S���H�}H��H�5����H��H��[]�fD��UH��SH����x�H��H������H�}H��H�5����H��H��[]�fD��UH��AWAVAUI���ATSH��HdH�%(H�E�1����H�5=_H���t�L��I���h�L��H�E����L��L���Y��I�}I�EH�7�@<I��A�� �3H��L�wH����A��H����A�>(��A�~?L�
�g��@I�NM��L��H)�A�҃�i���XA�����LH��A	�L9�u�D�1�A��)�HL�qD��H�����L�]�L�ڨt�E�mI�S�t�iH���t�xH����}���D������tAA���E�-I�CA��t�E�mI�CA��t�iH��A��t�xH���L��L���8z�H�5��
L���Ds�H�E��x�6�L��H�5�
�"s��-��L��H���2k�H�}���L��1�H���w��L�I��A�� ��I��H�pA��N�<H�}�I�W�L���4��H��I)�I�WH��H���H)�H���H��H9�tH��H��$�H9�u���	H�T$H��H���H��H�U�L�����I�4$�� �*I�t$L)�L���Ep�H�M�H��L��L��E1���H�u�L��L���!r�L��L�����A��u0I�����t'I�$�Ѓ������H���}fDH�u�dH34%(L���eH�e�[A\A]A^A_]�H��~A��-t<A��)�H��L�qH��~�y(u
�y?�T���D��L�]�����H��H���A�҃�i��w�A����t���H��A!�H��u��F���fDL�wH�_����H���������H�pL�xI��4����H���Xx������H�M�H��L��L��E1����H�5��
L����p����f�L��L��L�]��w�L�]������L�]�A��:tgM����H��L�wA��H������H)�H�L����A������I������r���I�E�������`���%H	�I�$�O���H�T��:)u�L�]�H��H�M�H�U���^�H�H�E���^�H��H�M�L�]�L�E�H�U�H�H�V6jL�qL��1�L��L�]�L����H�}��E�XZ�:d��u^�U�H�u�L�]���H�0u!D������L�]����L�wH�_A�����I�}I�EH�7�@<I��A�� ������j�AUH��(��ATUH��SH��H=���H������H��H��w:H�l$
��H�hY1��H���
X�H��H���n�1�H��[]A\A]�L�l$
H��I��L���o�H��L��Hc���n�I�$H��t�z�H9�u!1�H��[]A\A]���z�I�$1���ZH�5WVH��臉��������ZH�5�XH���i������d���ff.�@AWI��1�AVAUI��ATI��USH��H��XL�$�~�A�|$H����M�eL��H���-f�H�D$=L�|$@H�D$H�D$>H�D$ H�D$H�D$H�D$f�L9��L��H��L����j���H�t$@�����>��H�~H�|$@��D$=<\��H9��iH�FH�D$@�N�QЈL$=��H�GL��Z��Ic�L�>���H�޸H�T$H)�H��HG��x��L$=H����H�D$@H��H�D$@�!��I9���L�$H�|$@M��H��L��H���>����KfDL�|$@L9������f��D$I�u���@H����H����d��3f.�H9��w�~{��L�~L9���H�T$�H���h�H�|$H��H�$L��H��H��������L�|$@�^���fDI�}�ED$�D$H�t$ �H��L$?�D$>\�
l�L�|$@� ���H�t$�H����k��	���f�Lc�H��L����k�I�EL|$@L�|$@H��t/I9�����H�<$�Z�H�5S蜆��#f.�M�e����H�������H��XH��[]A\A]A^A_�DL���r��4���I�E�6���H�<$�Z�H�5�U�&���@H�$H�|$@H��L�t$@�
���D$=<��cH�T$@L��H��L)���j�L�|$@�����L�vL�t$@L9�w�I��L9�t
A�>莃�u�L�d$(L�d$E1�DH��L��L��L)��7f�H�T$HH����H����H�$I�H��L��H���
�������L9�w�I��L9�t
A�>���u�A��f.�M�eL���m���@H�<$�Z�H�5�S�������L�d$(E��t}L�t$@L9�tM�~L�|$@A�>}�����H�<$�Z�H�5�T迄��C���f.�H�<$�ZH�5-T蛄������H�<$�ZH�5��{����H�<$�ZH�5(T�d����f�AWAVI��AUI��ATI��UD��SH��H��XL�$H�D$(�Al�H�D$����H�������H��ƒ����q���h��}H�{�ZL���>p���L�$H�L$(L��L��K�t5�m���H�D$ H���L�|$(M���M9���@������� L;|$�m����L��H�߃��`�H�L�d$ ���I�$�� ��H��I�D$��H�D$H�T$H�LN6���t$L� �~�H��H���_H��L6M��L��H��t$��4_�L�\$0A�ą���H��L�\$�W\�L�\$Ic�H�<$L��1�A������KS�H�C�fD��� L9d$����L��H�߉T$�_�@���T$uH�|$(M��t
H�M�������H����fDI�D$H�D$I�D$H�D$�����H�T$H�t$L��H��D��$�L��$�L�\$H���{�L�\$��A������H�kL��L��L����[�H���	5H��H�C�uH�����unH�D$ H�D$0H�D$ H��XD��[]A\A]A^A_�D��� �T$@��tL��H���^�T$�	���D��H��H��I���^�T$����@H��H���-o�u�H���`H��`�s���H�E��`H��`�b���H��H���g��R����L��H�߉T$�!^�T$�y����H�<$�ZH�5�MA������Հ�����H�<$�ZH�5�MA�����赀����H�����L�\$0����A���������H����Q�H�MJ6H�5nPH�81��R�H��L6H�5:PH�81��Q�ff.��AWAVA��AUE��ATM��UH��SH��H��H��(H�t$�X�I��A�� ��H�t$H��� tlH�VH�vAUL��I��E��ATH�����ZY��u(H�����tH��ʃ���r�H��sg�H�T$H�T$H�T$H��([]A\A]A^A_�f�H��H������g�I9�H�$�e���H�|$�T[�H�$=u>I���H����H�T$��u�H�����t�H��փ����|�����H	�H��k����ZH�5WLH��������\���ff.�f���H� H��tH��t
���1���k�P�c���H���&�^R�H�@H�@H�@ H��ÐAWAVAUATUSH��H�$H��L�7L�NH�D$L��$�L�H��I9�u�I��L9�r0��Eiɡ A�@D���I��L�\�M9���E�M��M)�A��A���v�A���v�A���w Eiɡ A�@A�A�@Eiɡ D��A��A���w�Eiɡ A�@A�A�@Eiɡ D�Diȡ A�@D��]���H�,2L�4
L9���H�T$I��H��D�?I���Bf��E��=�v=�wHi�� �M���Ld�K�,,L9���E:<$u�L��L��H���j�u�L��H+D$�jD=�w!i�� �M��Mi�� �����=�w�i�� �U�M�iС �E�i�� ��f���H�����H��[]A\A]A^A_�f�ATUSH��H�_ L�gH�t$H����H�|$@��tw@���|��������H����@��ttH��4�������u[H�|$�.K�H��H���c[�H�{L��H��H�T��d�~nH��[]A\�f�H�����u/@��tA�̔�H��[]A\���u+�w�H�D$�������t���t����[Y�H��[]A\���H�M6H��H�5�HH�81��M�f���UH��SH������H�} H�Ut]��x?9B~:H�RHcظH�<�x H������H�UH��H��HB(H�@H�DH��[]É�H��L6H�5KH�81��L�������UH��SH���N���H�} H�Ut\��x>9B~9H�RHcظH�<�xH���o��H�UH��H��HB(H�H�DH��[]É�H� L6H�5�JH�81��L����f���UH��SH������H�} H�U�~��x`9B~[Hc�H�BH�<�x8H������H�UH��H��HB(H�pH�8H��[]H�t6H�|?�ux�DH����[]�[x��H�zK6H�5�IH�81��qK��\��ff.����1�L�
cR���D�H��A�G�D)�uH9�u�1��ff.������f����AWAVAUATUSH��H9�IL��H��I��tNH��~qH���A�@����H����H��H��H��L���m�H��uef�H�������H��L���ef�����H��H��[]A\A]A^A_�H��1�[]A\A]A^A_���7H��L���e�H��t�H��L)�[]A\A]A^A_�H�t$H�<$�zi�H�<$H�t$H9�t|H��H��L��[]A\A]A^A_�S����utD�/H�����H)��]���H��H�L�H��L�tJ�f�H��I9�����D:mu�H�uH��L���~e�u�H���U���f�H��H��L��[]A\A]A^A_�G������b���D�/H�����H)����H��H�L�H��L�t��@H��L9������D:mu�H�uH��L���d�u��{���D�����ntA~��stj��uuM������eu3�
���f��� � �fD��i�����1���v ��D����fDH�QO����ff.����UH��SH��H���P���t
1�H��[]�@���H��H���O���uݸ������ff.���USH��H��(H�t$H9�tu��B�H�D$H�kH�PH�pH��H�SH�P H�S �n���H�D$H�H�A ��tGHcuH�}(9u$|RH��H�q(H���j�H�D$�E H�D$H�D$H��(H��[]�f.��E H��(H��[]����~T�HcuH��H�E(H�D$�u$H�H��a����������@��uH�����tH��ƒ���t��@H��f���S�ƈ�H��H��tH����]�H��[���AWAVAUI��ATI��UH��SL�H��荈�H���
H�ètLL�pL�h�H�@ L���߀�I�FL� I�FH�(A�F H��H��[]A\A]A^A_��^�I��I����L�sL�k�H�C L��膀�I�FL� I�FH�(A�F M��t�H��Ѓ����H��r�A���}���I������p���I�E�������^���%H	�H��N����H��ƒ����\�����@�S���H��>6H�8�����L�pL�hH��H�@ L�����I�FL� I�FH�(A�F ������I��I���,���ff.����AV�	E1�f�AU�ATI��USH��dH�%(H��$�1�H�GH�|$P)D$@H�D$H�$1��H�fD�L�����I��H�$L9hH��L���!��I�D$H�$I�D$H�0�� ��H�XH�pH�l$@H�L$H�L��I��H����H�D$H����H��=6L�
H�$�J<H��� uyH��H�p��H��H��H�M��L�t$(AV��m�ZY��uyH�D$H�D$H�D$H�$H��$�dH3%(u3H�İ[]A\A]A^�f�H��H�X���D���H�pH�P��R�H�D6H��H�5CBH�81��C�Hc�L��H��1��B�I�T$H��� uH����H��L��H��H������H�r��ff.���ATA��UH��SH��1��(��E��tSH��H��H��~=�xt7H�M�� uYH����H9�}"H��H��~VH�H�TH��H���G�H)�H��H��[]A\�H�U�� uH����H)��H�U��f�H�MH9�}�H�mH���H�T
L�@hH�tH��H��A���D��AWAVI��AUATUH��SH��H���L$D�D$dH�%(H��$�1�H��� �H��L�n��L9��M���H��H���q�I��H�EH�D$L9��U��I��H������[I�GH�D$H�D�D$H���� E��uH���#H��H����I�H���H�sH�CJ�6H��H�M��L��jL�L$�r�^_I��L9d$��H�} ��L���lI�M���+I�����t�L��������H���TI������G�D$���I�GI�o L���@ �Y�M��I��M����I��Ѓ����+@����H�������H�E��������%H	�I��f�H�sH��J�6����@H����������H��������������@����f�f�H�D$ A�)D$ )D$0H�D$�c���DL�nH�F���H�D$ H9D$��I����N�I������X�H��$�dH3<%(L����H�ĸ[]A\A]A^A_ÐH�}��G�L�e�b���fDH�m �R���fDH�E ���fDH�s�����H����I������S���I��ƒ����B�����I��7���fDH��86H�8���L�t$H�xI��L���f�1�L��A���U�E�����L$M��A������I�GI�o L���@ �W�M����������T$����I�GI�o L���@ �UW�����H����������@H�|$1��U��o����H���S�I�GM��u�M��I��t>I��Ѓ�������u(H�����tH�������t%H	�I��I�GI�o L���@ �V�����@H���@S�I�G�f.�H���(S�I�G�����I��ƒ���~s��I����1�H�|$P�JIc��H�\$@f�H��)D$@�<�H�EH��� uSH��H�xH�΃�H��H������@�H���9�������@�H���*����y����_L���W�H�pH�x���A�����AUI��ATUSH��H�>H���}I��H�����H��I�$H��tx(H��H���݀�H��H��H��H��L��[1�]A\A]��n�H���؃�H�Ǩu!�H�H�H�y�H��H��[]A\A]��������$U�H�������ff.���H��1�H�t$H�t$�7���H�ƸH��xH�|$�0q�H�DH���fD��U1�H��H��SH��H��L�D$H����G�1҃�tSH��H������H��x`��}�H��H����R�H��u
H��H��[]��{|�t�H���o^�H����f.�H�T$��t6H�H��H���x���H��y����$T�H��H��[]�f.�H����m�H���]�����SH��H��1����H��t H��1�1�H���Ym�[H��?H�Ѓ��D��S�1�[�f.���UH��SH���m�uH��H�����t
�����t��{S�H��[]��H��1�1�H����l�H�ƸH��x�H���o�H��H�D[]����H��t6H�~ tGH�V��J9�~$��x+H�BHc��H�<���HD�ø�f.�υ����P�R��f���H����SH�~ H����H�V��J9�~n��xoH�BHc�H�4��H���tTH�BH��H�{H)��~�u<H�����t4H��ʃ���~L��u"H�����tH��փ���t��H	�H�[�υ�������f.��H��s�[��~��ff.���UH��AWAVI��AUATSH��(dH�%(H�E�1��s�H����p�I�^ H��H����H����I�FH��HcPI��H��H�BH��H���H)�H��H9�tH��H��$�H9�u�%�t	H)�H�L�L�l$1�H�M�I���L���N�H�{L��H�5͹����c��n\�H�5WU
�H���K�H�M�H��I��H���hY�E�����L��I��1�H�5R�
��K��cH�ǃ��eX�L��H���9�A9�tqH�5&�
�L���K�I�uH����I�UL���xK�H�5��
L��I���`K�L�����v<�H��u��H�5��
L����9K�A9�u��H�5��L��� K��fDH��L��H�=d�
1��f�I��H�M�dH3%(L��uZH�e�[A\A]A^A_]É�H�5z�L��1��G��P����L��1�H�E���;�H�M�H�=�5H��1�H���Jf�I���� F���H��H�����;�ff.�@��AUATUSH��H�z �|I��1�H�Ӊ�L�D$L��H��I���B�H�|$��H�<$@����@����H������������t�����`�H�$L���[�H��H�C H����H�xH�4$�Sv�H����H�$H��� ��H����H�C H�KH�H��H�x�lM���H�މ��:�H��[]A\A]���S}�yo�1�H�����L���H���B�H��[]A\A]�fD������t�H��t�@���$���H��4�����f.�H�P�T����H�<$��|�H�މ��9���f��H�g56H�$H�5l1H�81��Z5�f.���SH����~1�H�L$H��:
��@�t#�v�H��H��tH���K�H��H��[�@��v�H��H��t�H�t$H����H�މ��c9�H����ff.���H��1��B9�f���SH����T�H�{ ��H������uAH�����t8H��у���t+��t&�u"H�����tH��у���~u��H��H�S��u:H�����t1H��у���t$��t�uH�����tH��у���~��H�[�1�1��A��d���f��H��s�[��H��r��{�������ff.���H���u�H��H����S����H��tfH� teH�GH�HH�9�tQ�P�B�Hc�H�<�u*��~&��Hc�H����H�:�A������H��A��u�tH������7�f���P�$��@��H����t�H��H���'j����AU�	f�ATUSH��H�|$H�|$0H�l$dH�%(H��$�1�)D$ H�D$�H�1�f�H���H�H�|$H�7�� unH��L�g��I�4L�l$ �M9�H�L$M��H��H��L�����H�l$H�T$�H��t:H��$�dH3%(H��u8H�Ę[]A\A]�fDL�gH�w�fDH�|$L��1��I���H����@�ff.�@��H�]06H�8�}�ff.�f���AU�	f�E1�ATE1�A��UH��SH��H��xdH�%(H�D$h1�H�|$I��)$�H�1�L��f�H�������uH�T$hdH3%(H��u!H��x[]A\A]�H��L��D��苾��H���Sj��>@�ff.���U��SH��H���|I�H����H��H��[]�R�f���AW�	f�A��AVAUATUSH��H��dH�%(H��$�1�H�|$@)D$0H�D$ �H�1�f��)G�I��H��� �����„���D��E1�E1�1���у��L$H�L$(H�L$H�L$0H�$��H����H9��H�CH�<�H�|$(�7�|$H��tI9�tH�|$(�m:�=�^L��H�|$H�T$�F�H�D$(H�T$H�0�� ��H��H�x��L�$H�H�L$ ����H����H�D$ H��tH9�t	H����H��H�t$(M��u4H���J�I��H�A��Ic�� �&���H;S}0H�C �+����L��� 1���fDH�xH�p�o���H��tH��L����:�D��L���]j�H��$�dH3%(u~H�Ĩ[]A\A]A^A_��H�{���a���H�I/6H�$H�5�H�81���.�H�HH�UH�5+H��'6H�81���.�H��'6H�5N*H�81��.��=�H��.6H�5G-H�81��.�ff.�@��AWAVAUA��ATI��UH��SH��H��xdH�%(H�D$h1�I���F�H�|$H��M��I�ƹ	1�E���H�f�1�L��)$H��f�L��jj���ZY��u"H�T$hdH3%(L��u+H��x[]A\A]A^A_�H��M��D��L��H������H����f��<����ATA��UH��SH���D�D��H��H��H��[]A\�^�D��AWAVA��AUI��ATA��UH��SH��xdH�%(H�D$h1��E�H�|$�	f�H��1�)$�H�1�f�H��tqI��E��M��D��L��H��H���/����uk��u&H�����tH��ƒ���tH
H��H�t$hdH34%(H��uJH��x[]A\A]A^A_�fD1�1��?:�H���f.�L��D��H���͹��H���j���~;�ff.���USH��H��H�=�7H��tWH�WH��� tkH�BH��� unH��H����H9�u0H�/H��������H�������}9�tAf�1�H���&g�H�'7H��H��H��[]�f�H�H������ t�H�K�H��� tPH�SH�sH�-�7H�}H� uDH���{G�u��DH����g���t������g�H����T����H��H�s���H��f.���AWAVAUATUSH��H��8H�|$�2�H��H���&1�A��H��H��� ��H��L�p��L�L�l$,L�=-L9�vBDH��L��H��L���/T��tZ��	��twIc�L�>���HcD$,I�I9�r�H�|$�E�H�D$E����H�D$H��8[]A\A]A^A_��L��H��H���2c�H�I��H�D$L�pH�X�M���fDH�D$H�0�� �H��
��>1��i�I��H�D$E�����V�L��H���5�H�D$H�8L�`H�|$�� t	H�D$L�`H�D$H�H�pH�L$�� t	H�D$H�pL��L��H)���L�H�D$H�H�L$�� �HH��L��H)�I�L9��~L�=g-H��L��H��L����R�����|HcD$,L�M0IƍA���tw/Ic�L�>��fD�L$L��H��\A��L�M0�L$H�I�L��H���A��H�I�I9�r�H�D$H�H�T$�� ��H��H�\$L��H)�H���W:�H�ب�A���H������5���H��Ѓ����H�D$�����H���������H������������%H	�H�D$H����L��H��\A��H��nH�I�L��U0H�I��<���DL��H��\A��H��tH�I�L��U0H�I�����DL��H��\A��H�� H�I�L��U0H�I�����DL��H��\A��H��rH�I�L��U0H�I����DL��H��\A��H��fH�I�L��U0H�I��|���DL��H��\A��H��vH�I�L��U0H�I��L���DH�D$H�@���f�H�t$H�|$�`��/���@H�D$H�@H�D$H�4����H�D$H�@����f��S�H�|$H���2��^���f�H��H��L���_�H��������1��H��A�A�H�PH9�u�I�I�����H����������ff.����SH�G H��t5H��t[�f.�H��H��1���*�H���+�H���1�H�C [��H������H9���@��uH�����t
�����
t
1���ATUH��SH��H�H�v�@�H��ttH���\���H��I���Q���L��H���v���H��tQH�mL�cHcEA;D$u>H��I�t$H�}H���A�u!I�t$H�}H���pA�u��D1�[]A\�f���f.���USH��H��H��z[�H���\�H��H�����H�����H��H���>�H�[H��Hcs�t>�HcsH�{H��H���<�H��H���U>�HcsH�{H��H���<�H��H���6>�H����d�H��H�D[]�f���H��H����;���H��H����)�ff.�@AWAVAUI��ATUSH��HH��� ��H����H�D$H�|$��H�|$�1��H�H�|$H�D$(��L��1�E1�E1��-�1�H�D$H��H�D$8H�D$8H�D$f.�H�
�!H��!��h�H�D$0H�D$0H����H�|$0�*�xH���=M���$L9��aH�|$0�!��H�D$0M��tE���H�|$��]H�|$(H�t$0Lc���t.�YD�L9|$��L��L���3,�H��H�D$8��+���@����{\�H�t$0H�|$(�D�L��L���,�H�D$8H�|$(H�5�+
���I*�H�|$8����H�|$�8�H�|$8�)�H�|$8H���)�x��M����L9��qH�|$8��<���H����'�H�D$0���f.�I�������H���H=������H�D$0�u H�����tH��ƒ���t��fA����@I���u���H�|$8�(�H����<��I���H�|$8�(�tA��B���DH�D$H���*H9��&���H�KH�P�r@H�GH�D$H�|$�`����H�=� �:/�H�t$8�H�D$8H� 6H��;�H��H[]A\A]A^A_�DM����H�|$(L����,�H�t$(�H��6H���:�H��H[]A\A]A^A_�f.�1�L���*�H�
��H�H��H���e�H��u��H��腮��H���=&�1�H���\��H�D$H��t3H9��#������f�H�\$���H�D$H��tI���5���H�\$����7�I������H�� 6I�T$H�5H�81�� �H�D$I�T$H�HH�� 6H�5�H�81��Z �H�KI�T$��ff.�@��SH�H��� t8H����H������t1�H����(�H����?�H��uH��[�]���DH�~����fDH��[�?���ff.�@��SH���#���H�CH�[�@<��������E����� ��E�����H���3_�H��H�H�D����AW�	f�E1�AVAUATUH��SH��xdH�%(H�D$h1�H�|$)$�H�fD�H9�taH��H�����H���w���H�CH�0�� thL�hL�`H��I���^�H��A���%�jL��M��jH��E��L��H������ZY��u9H�T$hdH3%(H��u7H��x[]A\A]A^A_��H��L�h��I���H��L��L��L���ϸ���j-�f.���AW�	f�E1�AVAUA��ATUSH��dH�%(H��$�1�H�|$0)D$ �H�A�E�fD�����H�.I��H��@��uH�����t�E�����d@A��tJI�~@����E1�H�����A��A����I�~��I�H�|$H�D$�7B��DE1�H�|$H�l$�B�H�l$ H�t$E1�E1�H��D��H�������������H��H��$�dH3%(��H�Ę[]A\A]A^A_�@I�.��sd�A���M���I�~�A����߀�N� �k3�H�|$A�� H�D$I�H�D$�pA�H�L$H��H���A���H�|$H��� ��H����H�l$ jE��H��jI�����ZY�����,���@A����H���޲��H���&\�A��H�EH�0�� ��L�hL�pH��H�l$ �#�jL��H��jI��E��H��L��I���-��^_������L��L��L���e$�H��D��H��H�D$�2���H���T�f.�H�W�0����H��H�=~1��^�I�H�|$H�D$�M@��*����H��L�h��I���E���DH�=W1���]������D���cN�H�|$H��D��蓨��H���[T��F*�fD��H�
�H�!���_�@��AWI��AVAUATE1�USH��XH�|$8H�t$ H�T$H�L$0�!�L��H��H�$�!�{H�D$(�wH�D$8H��� �0H��L�p��H�D$LL�1�H�D$L9��9M��f.�E�����D$LA��������Hƃ����LcL$LO�,��\��L9���L��L)�H����H�$L��H���?�E�����D$LA�E�������H��ȃ����HcT$L�A�M�|��E��H�=�Hc�H�>��@1�H�L$M��;A}YH�QH�H�4�H����VH�QH��H�D$ H�8H)�H��H�|$�� t	H�D$ H�@H�H�L$(H��M����>�DI9�����H����I9���H��XH��[]A\A]A^A_�L9�v#E���z�D$LA�?<�����L��H�$L��H��L)�M���`>��fDH�$L��H��M���F>��q����H�D$0�L$M��H���Z���H�x�1#��I����L$�A�����DH�t$�VH�N�B�Hc�H�<�u(��~$��Hc�H�ѐ��H�:�@�ƅ���H��@��u������M������H�|$ H�D$H�H�@H��� �H��H�w��H)����H�D$H�@H�H�D$ H�0H�t$�� ��H�p�m���f�H�$H�T$H��L���,A���k���H�$L��H���P�H�I��J���f.�M���8����H�$H�T$H��L����@�����~���H�$H��L���2P�Lc�O�|�M���DH��H�T$�#;�H�T$H������fDH�D$ H�p���f�H�t$ H�NH�vH��H�L$H)����Lct$LM�L9��,H��M��D��L�<$I���;D�D$LA�E�������Hƃ�>t6HcT$L�����I�M9�����u�H�T$L��L��L����?�>u�L��A��H��L9���H�D$8L��L)�H�8H��H�|$�� t	H�D$8H�@L��H�|$8H)��L[�H�|$0I����H�D$0L��H�x�,V�H����H�D$0H�L$L��L��H�x�Z-���Lct$LO�|5����L��L��L���N�Hc�I�M9��!���H��6H�5�H�81����H�$H�T$H��L����>�<���v���f�H�D$8L�pH�X����L)�H�$L��H��H����:�����H�l$8����H�<$E1��0�A���r���H�D6L��H�5JH�81��8����UH�=�SH��H�(6H�0�0]�H�16H�=H���(�H�=+
6��:�H�='����" �H�=����&�H�����H�5���H�=Y�
��\�1�H�5��H�=��\�1�H�5����H�=z�\�1�H�5i���H�=h�\�1�H�5D�H�=�
�x\�H�a���H�5z���H�=<�^\�H����H�5 ���H�=%�D\�H���H�5���H�=�*\�H�-K
6H�=�H�u�#\�H�d6H�5���H��H��R�H�;H��6�����H�5��_D�H�;�H���H�5�x�DD�H�;�H���H�5��)D�H�;�����H�J�H�5��D�H�;�����H���H�5m��C�H�;�H�$���H�5}
��C�H�;�����H���H�5n
�-C�H�;�H���H�5^
�C�H�;1�H�ְ��H�5s
�B�H�;�H�{���H�5Z
��B�H�;�H�`���H�5]!
��B�H�;H��6�H�5��
�B�H�;�H�
��H�5&!
�B�H�;1�H�j6H�5��
�vB�H�;�����H���H�5��[B�H�;1�H�����H�5�
�CB�H�;1�H�����H�5�
�+B�H�;1�H����H�5(�B�H�;1�H�����H�5�A�H�;1�H�_�H�5	��A�H�;1�H��
6H�5��
��A�H�;1�H�����H�5��A�H�;1�H�ׯ��H�5�3
�A�H�;1�H����H�5��A�H�;�H�5��W�H�;�H�5��W�H�;�	H�5��wW�H�;�!H�5��cW�H�;�AH�5��OW�H�=@�6�cE�H�uH�=��#Y�H�
6H�5%���H��H��O�H���?��g�ƒ����yH���<��H�xH�5�,
�P�H�;�H�x��H�5�
�@�H�;1�H���H�5��t@�H�;1�H�ȿ��H�5~2
�\@�H�;1�H�����H�5�4
�D@�H�;1�H�h���H�5W[
�,@�H�;�H�
��H�5}o�@�H�;�H�r��H�5���?�H�;�H����H�5_�
��?�H�;1�H����H�5,
��?�H�;�����H����H�52�
�?�H�;1�H�ܥ��H�5��?�H�;�����H�����H�5�
�u?�H�;1�H�96H�5��]?�H�;1�H�y6H�5��E?�H�;1�H�y��H�5�
�-?�H�;1�H����H�5q
�?�H�;1�H����H�5�
�>�H�;1�H���H�5	o
��>�H�;�H���H�5E
��>�H�;H���[H�f�H�5C
]�>�f�H���������H��t.H������H��
6H�8����fDH��6H�8����H��6H�8����H��6H�8����H�96H�8�~����H�	6H�8�n����H��H�o�odH�%(H�D$81��oO�oG �ofH�G0)$g�on )L$o H�V0)D$ H�W0D�H�D$0NF H�F0E��u�O��tH���u�F��tH�D$8dH3%(uGH��H�fDH�FH+FH��H�F H�FH�H�F��@H�GH+GH��H�G H�GH�H�G��/�ff.�@Hc�A��1�H�D1�H��E��t1�H���������@��t3���t�
��u�H�P��H��w�H�9����@H�P��H��w�H����DUH��H��SH��H�������w_Hc�H�>��f�H�{H��������u	H�[H��u�H��[]ËC=t��=t= uH�[�����v�1��Ƀ{uHcC�D��CH�[�y���fD�CtvH�s(�SH�CH��HD��~\��H��1�L�D��Hc�T���~	Hc�����H��L9�u�KH��1�[]��=�q���H�[�^���@1��Ѹ/����#���f.�SH��H�������w9Hc�H�>��H�{������u	H�[H��u�[��H�[�����v�1�[�fDH�[�f��C[%���$/�ff.�@UH�8SH��H�������wjHc�H�>��@1�H�{����9�L�x)H�[H��u�H����[]�f��C��tRF1�@���H����[]�f��C�u=H�[ �����v�1�H����[]Ð�k��t�H�[�p�����t��u�H�[�]�����fDH����
��AWAVAUATI�ԉ�UH��H�5nSH��H��(Hc�H�>��@���g���^fD1�H��(��[]A\A]A^A_�DH�E1���@I��L�t$I�}L��L���i�������u�H�D$I9�tH9EvH�EM�mM��u��@M��$�I�D$hM��LD�G��z���L�G(H�GM��LD�IcA;D$\��I�|�L��H��L�D$�������@����{�4���L�D$Ic@A9D$\|ZA�L�t$I�|�L��L��L�D$������������H�D$H9EL�D$vH�EA��D9{����Ic�Ic�A;D$\~��0���������G�������H�L��H���F�������������CL�E1҅�t!H�����Hc�1�H��H��H��I9�sL��H��H�U�_���D�G�����.������=����G��H�G 1�H�E�&���@L�t$H�{L��L�������������H�D$HEH�[H��u����H� �C�t:�G����H�G 1�H�E����DH�GH+GH�E����H�{L��H���A��������f.�H�L��H���!��������q���H�E�KH�C �`���fD1ɉ��ff.�H����
��AWAVAUATI�ԉ�UH��H�5�SH��H��(Hc�H�>��@�G���R�>��u�G�_H�G(H�E�1�H��(��[]A\A]A^A_�DI�D$Hc@H�E��f�M��$�D�I�D$hM��LD�A����H�w(H�G�WH��HE�H�D$��~�HcL�l$A9D$\|II�<�L��L�����������j���H�D$H9EsH�EA��D9{�K���H�|$Ic�Hc�A;D$\~��0����0���fD�G������H�L��H�������������H�uH��������C�����1҅�t!I�����Hc�1�L��H��L��H9�sH��H��H�U���L�l$I�����H�{L��L���-������������H�D$H�UH�����H�����H��H�H��H9�IG�H�EH�[H��u��T���@H�GH+GH�E�A����L�l$H�{L��L�������������H�D$H9EsH�EH�[H��u����D�G�trH�E����1������t	������H�{L��H���S��������@L���J���H�L��H���1������������H�E�KH�C(���fDH� L��H���������l���f.�1ɉ��ff.�AUA��H�5�ATA��U��SH��H���D������|����wLHc�H�>��f�H�{��D��D�������u	H�[H��u�H��[]A\A]���kt�H�[H��u�f�1���@D�ct�H�[�@H�[�{�����믐�������AVAUATI��U��H�SH��H��Hc�H�>��DA�H�{��L�������������H�[A!�H��u�H��D��[]A\A]A^��E1�L�t$�H�{��L���b�����xm��thA	Ņ�u1�H�[H��u��DH�{L��L���Q�����u<H�|$t����W����������1��� ��H��[]A\A]A^�@H� ������H��[]A\A]A^��H��������u��S1������@�W1���u���t11��������D��t8H��1�[]A\A]A^�f����WH����O����c��U���fDH�{��L���2����<���1��f.�UL�
T
H��SH��H�������w[Ic�L�>��f�H�{H��������u	H�[H��u�H��[]ËC=t~4=t= uH�[�����v�1���@�CH�{��uH���=u�H�[�����H��C�m�����
�c�H�{�ʸ#�����UH��	SH��H�������w:Hc�H�>��@�C=t��=t= uH�[�����v�1�H����[]Ð1�H�{���H�[	�H��u�H����[]ÐH�{ �w����Ņ�tǁK�H����[]Ð�C1�u���u���H�{�C�?����c����=�y���H�[�f���ff.��ATH��UH��SH�������wuHc�H�>��E1������H�[H��txH�{H�������u�A���fD�C=t��=t= uH�[�����v�@E1��$�CH�{��t]H���U���A�ă��CDE�D��[]A\��H�{H���,���A�ċC��u�A��u��C0��=t�����t����C�������Ct���H�{�C�{����A��[]D��A\�DAVI��AUL�-�ATI��UH��SH��H������wwIcD�L�>��@H�{H��L�������u	H�[H��u�H��[]A\A]A^���C=t��=t= uL�sH�[�����v��1��@�{H�CtfL�sH���a���f�L��H�{H��L�k�-���H�sL9��t����>�k���H�߉D$��D$�V���f�=�{���1��B���fD�Ct"�M�Q�UHcKA���S�{���f��S���g���I�H��H�C�6�I����f.�UH��AVI��AUI��ATI��SH���J\dH�%(H�E�1�H��AH�H��H��H%�H)�H���H��H9�tH��H��$�H9�u���-H�\$�H����~HcЃ���9�}�H�U�H��L���E��������I�>H��������E�E\��M�MhE���EDH�?Hcփ�H�<у�A9�|+HcЋ���~�I���H��H�<H��u�L��I�<��@A�}��A�Ef�����t��������A	UH��H�� u�A�E`H��L��A�E\A�D$�$
�H�u�dH34%(u#H�e�[A\A]A^]��H)�H�L������M
�ff.�f�������ATH�iUH��SH��H��Hc�H�>��H�{H��������uH�[H��u�1�H��[]A\�@H�{H�������u�H�[H��u�1����W��t����t
1��� u�H�{H���Y���H��[]A\�H��G���H��[]A\�fDL���H�FhM��LD�HcG�����V`��~#H�V�B�t�u�/����B����;E\��I��H�C H�����H�E�K�Ɖ�H�EP���ʃ�O։UH�C(1�������/���1�����DH�wH�WH9�t�H�}HH�L$�
;�~H��t
H�E�@	tH�D$Hc�C�c���f.�H�KH�S�$���H����$����l���H�KH�S�'���H���l�'����M���H�KH�S�&���H���M�&����.���1����?
��AWAVAUI��ATD�aUH��H�OSH��H���Hc�H�>�����/���&fD1�H����[]A\A]A^A_�D�E1���DH�D��H�T$L�|$�j���A�Ɖ���u�H�[H��t2H�{D��L��L���F�������u�H�[�D$9D$�DE�H��u�E����1�A�������f���@L�gH�wL9��O����I�UH�B9BtL���,'�H�sH��EI�L9�w�����D������G9G�	���H�D��H�T$�����������SHc|$��tH�����Lc�1�H��I���H9�s��A�ЉU�����G�����������������G���G01ɉE���fDL�t$A�����H�{D��L��L�����������[���HcT$HcuH��H���t_H���tYH���H9�AGljEH�[H��u��$���@�G�u"H� D��H��L�����������f��������fDD���H�{��f��D$1ɉE����f�H�D��H���a�������������E�K�C0��������������G�N���9���AWI��AVAUL�n$ATI��USH��Lcv �_ H�t$M�M9�s}�f�A�D$A9D$tL��L��L���%�����M9�v?��~;I�M��Lc�)�fD�Q���I��C�T$�Lc�9���I9�@��H��@��u�M9�w�A�_ A�WM9�uBH�|$A�G�O%A�OG�ɹD�A�WA�GH��[]A\A]A^A_��A�_ A�WA�G1��ԉO��ff.�ATA��UH��S�W�wH��Z9�v#fD�9�w��uH���&�H�EH��t�UD�$1�;]v�][]A\ø������f�AUI��ATI��UH��SH���G�wH�?�9�v"D�9�w��u�&�H��H�EH��t&�EH�L��L����1�;]v�]H��[]A\A]ø������ATI��UH��S�W�wH��Z 9�v#fD�9�w��uH���%�H�EH��t)�U�Ao$H��AoL$H1�;]v�][]A\ø������fDATI��UH��S�W�wH��Z9�v#fD�9�w��uH���?%�H�EH��t�UD�$1�;]v�][]A\ø������f�ATA��UH��S�W�wH��Z9�v#fD�9�w��uH����$�H�EH��t�UfD�$1�;]v�][]A\ø�������ATA��UH��S�W�wH��Z9�wD�$1�;]v�][]A\��9�w��uH���o$�H�EH��t�U�˸������f.�U��SH��H�������tH��[]�DH����H��[]�p���AVI��AUI��ATI��D��UHc�L��S���O�L��É��C�����
tf�؃��t��t�C�w���t3L��1�L��H��H���H���L��L��L���Z���[1�]A\A]A^��L��L��������H��L���
����ff.�I�����	��
t�ƒ��t��u�B��D���������B��ff.�f�USH��H��H���?w3�Hc�H�>����G��~H�G H����H��?v�1�H��[]���u�H���f��G��tp~^��t��u�H��fD1�H�OH9Ov/H����t(�Gu"�C<�HE������HD�H��[]�fD��t�1��f���@�G�k<H��H��C<�����k<��ff.�H�GL�H�>H�vH���t|L)�H��cvSH���tbH)�H��cv,�9�|�����I9���I9�G����H����p�����L�
��A�A��H���u�1���1�H���u��fD�J ����H��I�ҋV I�������q��l�F$�����u��H�52��4FA�B$A�����u�A�H�=�D�G��A�@D��DЃ��F��D�A�s���A�B��Ʌ�~=��~L��L�������~*�AoA�AoJAK�AoR AS �AoZ0A[0H����ff.�@H�H���tOH���tII��H�I��L9�H�����HG�H�H�H���t9H���t3H��H�H��H9�H�����HG�H��DH�����H�H�H���u�H�����H��f.�AU1�ATUH��SH��H��H�H�T$� �����u�T$�UH��[]A\A]�f.���������u�H��@@��H�]H��D�eL�kH������H�]L�kH�]H��u�3H�SH�PH�CH�[H��tD����H��u޸�����w���@A�� t1��c�����EH�mH��t��EH�mH��u���fD������)���ff.�AVAUATUS�F ��tHcO ��tH�H9tAH�����H�H�GH�GH�G�G �G$[]A\A]A^��H�^H9_u�I��H��H�����������F$E1�8G$��L�g$f�I�U�B9BtIc�I�4L������A�VHc��|$@8|$uyE�FD��Ic�A���t
$@8t$u]A9�u�HcK A��9�~MD;u }{Ic��T$8T$t��C1ɋC�UD�s ��xN��x	ЉC�U�E!C��t$!S����E1���U��t�D9u �D9s ��K��C����D��|����S�E1��E��u��AWI��AVI��AUI��ATI��U�SH���_ M9�sj��eA�GA9GtL��L��L������E��~�I�T$A��Hc�A)�f��J���I��A�L6$A�Hc�9�A��I9�@��H��A��u�M9�r�A�^ H��[]A\A]A^A_�ff.��AWL�=���$AVI��AUL���ATL��UH��SH��H��XdH�%(H��$H1�H�H�����H�F0H�FpH���H�FH�FH�FH�F H�F(�F8�F<H�FXH�F`H�Fh�Fx�F|Hdž�Hdž�Hdž�dž�Ɔ�L���H�H�H�EH�SH�C H�UH�EH���H���H�UH�EH���H���E�&A��
��H�
x�D��Hc�H�>��I�~(��	H�EE1�HcPHc@H�SH��H��$HdH34%(D���,H��X[]A\A]A^A_�@H�}H��$PL�l$M��H�|$I��H��I�|$H��H���)������aM9���H��$`I!UH�sI�}H�T$�D$���H�T$H�sXI�}X���H�T$H���I������A���L�n��D$������$@���c	I���H��$(H9��K	L�]H��$0I;��sI���H9�sI���1�1�H�����<�v	AƄ��H��w��uA�{�A�R�H��H��u�H��$8I!��A���H��$PH��$XI;MsI�MI;UvI�UM�d$M�������fDA���0����H�U L���H�BhM��LD�A�F��*M�V(I�FH�t$(M��LD�IcI�<��O��A�ą�����IcH�U H�t$0I�<��?�A�ą������A�~��
H�D$@H�\$A�L�l$8H���R�IcH�U H��I�<�������=���H�D$8H9D$(vH�D$(H�D$@H9D$0sH�D$0A��E9^�]
Ic�H�U L��M�<�IcI�<������t����f.�H��$PI�~H��H��H�D$���A�ą���McND��A�����	A�FA�…��
�?H��H�t$�H���$���~|��$���tq��tf�{8��H�t$L�kD�d$A�I��H��H���
@�{8I�T$H��L��A����A�FD9�}�D�d$A�VA9�}�C0A��Lc�9�t�C0�CpH��$P���>�CpH�����Ic�1�H��H��H9�vH��H��A����	1�E��t&H�����1�H��$XH��I��H��H9�sI��H��H�3H�S����H�ED�xA����Hc@Mc�H�E1�L�s����I�VI�vA�FH�MI��I)�������H�{�!����C41�M���1	L�;H�CHcC8L9��#����C0�����A�F���K�}����A�F4��A�F4���=A�F1ɨtI�N H������tI�V(H�E1�H�S���@A�F���[��=�2I�~H��$PH������A�ą��s���D��$�E����	�o�$h�o�$x���o�$����o�$�����D��$@ǃ�E������H��$(�$L���H�����A�F��5H�C����E1�����DH�E foEL�l$L�|$@foMH�l$H�D$`H��$P)D$@H��)L$PI�~L��H���
���A�ą��w���H��$XH��$PI�wL����H�D$H�{H��$X�KL�hH��u�$`�CL�CXD�Sp�K��$dL�D$A��A	�%	�H����$�AD�D�K0�C���+H���bD��$x��$|A	�D��$xH���'	���$|��$@��~)H��$0u	�$8H��t�Cp�C0��~E���iE���@H�UH�sXL��� �H�UXH�sXL������L��$X���M��t5D9�~D���H���H�����H�sL�����L��$X��$@��tO�����t0��������~5����~H�|$H���������~H��$(�$H�|$�H�H��$PH�sL��H���O�M�vM����������D��������E1��f���fD~F=tE1�=�I�����P������������������ ���C�@�� u���f��?L��H���H����D��t��P�E1�����됃��a����DD��$@E��~	H����H���1�������@I�~H��H������A������H�������f�H������H�U�BH��*���f�A�F�0���1ɿL�
w���ȉ������H�A�T�t>���u4��H�U�Ƅ�uH��u�z�A�I��H��H��u�H�E1�H�C����f.��$H�|$L���H��3���I�~H��H����A�ċC��u
�C��|���H�U A�N�r$����������„��S�����?�C�H���A������������@��$�������o�$��o�$��o�$�o�$������������@A�~E�A��A��A�~�*������I�~ D�m�G�EH��H����D�mA����H�{�O��C4M��tGI�F����u6H�u�Ƅ�����u�~�H�f��P��L�;L�{���H�uH�{L���P�Ƅ$�H�����HDŽ$hHDŽ$pHDŽ$xH��$�DŽ$��B���f�A�FD�mI�~�E�
���@%D��$@	���$|E�����H��$0��������DH�sXL����L��$X�G�����CE1��=�DH�uL��H�{X����H��$0�q����s���@H�}H��$Pu
I�F�8��A�F1���tH�����Hc�1�H��H��H9�vH��H��1�H��$X��H������=H��$PHc�H�����H����������E�fE���A��E1��	f�H�EI��E��H�¾D���PX��tHB��3�u=A��H�U�BƄ3�uM��u�z�H�W�B�p��I�VM9�u��L���I�v�}I�VH�m����u6Ƅ�A�����u�}A�H�
��D�AD��L�l$@����I��L��UH���`�����M�uD�d$I��H��I�D�L�l$8H��f.�L��L��A�>A�T$0�T$8���u4Ƅ������u
A�|$�H�Y��4P��I��L9�u�D�d$L������E�FE�������C�E��̀�CE�VMcN1�E��������D��$�E��������o�$��o�$����o�$����o�$������Q���1���E1���H�EE��H�¾D���PXE9�~��uHB��3�u=A��H�U�BƄ3�uM��u�z�H�=�B�p��I��I��u��.���H�\$H�D$(H�H�D$0H�C�����@�CE�VMcN����M��A��^�A��������AWH��AVH)�AUI��ATUSH��hH�|$H�4$H�L$8L�L$0H�D$H=��y�D$@�HM��L��I��fD�H��H9�u�H�|$�D$H�D$(�mH��$PL�|$XM��H�D$0H�D$rH�D$HH�D$H��H�D$P��$�H�t$Ht$(H�t$ ��tH�D$8M��H�L$0H�$�8A�WH�D$E�wE9wtH�4$H�|$ L���c�A��H�\$ H�<$IcƋL$H�H��H)�H9�DB������$TunD;�$PudH�D$0L�d$`M��H�h�D$��H��H�D�I���#fDI9����}u)H��I��D9suH��L��L��}A�W0A9�t�fD�H��h[]A\A]A^A_�H�D$0H�H���SH�|$H���|$H�OD�H��H9�u�H��$P�D$H�D$@H�D$rH�D$PH�D$H�D$(H��H�D$X��$�H�t$Ht$(H�t$ ��tH�D$8M��H�L$@H�$�8A�UH�D$E�}E9}tH�4$H�|$ L�����A��H�\$ H�<$Ic�H�H��H)�H9NjD$DB�������$T�����D;�$P���H�D$@L�t$`H�h�D$��H��L�d��)�L9�t[�}�����H��I��D9{�����H��L��L���}A�U0A9�t������[�H�|$0H�H�������������e���E����H�D$0�L$H�|$(�T$HL��A�L�\$XH�4�H��H�\$P)�I��H�l$ I�A��I��H�4sI���I���*I)�M��E��)�A��I�2��~@�H��A��H9�u�H��H��L9�u�Ic�HL$(H�D$(H9D$�4���1����E�����|$H�L$(�\$@H�t$H�G�L�\$PH�l$ H��H��)�L�l$XI��H�4VI��I��A�V�I��I�I)�M�@�E��)�A�LI�0��~�H��A�LH9�u�H��H��L9�u�Ic�HL$(H�D$(H9D$����1�����ff.�AWAVAUATUSH�����
�_H�
4���H��I��Hc�H�>��fDH�H���S�����x5�E=���<=����
= t��H����[]A\A]A^A_�f.�E1�H�}L���Q����Å�x�H�mA�H��u�D���f.�E1�E1�H�}L�������Å�x�H�mA�A�FH����A�������s���fD�	�G�^���H�W(H���|H�NH��y�y�R�\�2���D�_�G �#����\����f�D�oD�wH��o�������H�U�:�J��E����A������U�����U0����X�����GH�����H���������Å��}����E���������uV�C���EE��Q���@�GL�wL�_���M9��1���H��L��1ҿ[L)�]A\A]A^A_�,�@���������fD�\
���1�����1��d���f��H����H�GH��(�����1H��H9�u��Z���D�]E�������A����E��u��U�����������X��������2��fD�Y
�=�����U���/�ЉӃ�2�-�}��u�U0���U���D�EE��u�H��X
H9Uu������=��������DC��A�\E���f.�M9��������L�fH���D$��E�|$�D$E9|$tL��L��L����L�]A��Ic�E��I�M9�r(�ef��|$uCIc�D��1��l���E��E��M�M9�v<McT$E9T$tL��L��L���R��L�]Lc�E9�u�E��͐������f�Ic��T$D���������f.�D�ME�������n���fDH�m�}	�xH�}L���.����Å������H�mH���UH�}L���������s����\H�}�����E��r���D���E@�`���H�mL��H�}�����Å��F����E���؃��5������-������������F<����M����u��2�‰�D�UE��tAH�} t3�\�����!����fD�E�n<�F<�2���A�l$<�����H�}(uƍ\
����u��������X�M)����Ӎ�z����!�2�����f���H�}(t�E�X�S����E�X�G���������=����AWAVAUATUSH��hH�|$H�t$H�rH�T$(H�RdH�%(H�L$X1�H�4$H)�L�46H�T$L���3��H���H�T$H��N�<0I��H�D$@M��H�D$H�D$8H�T$8H�D$ H9$��H�D$L�t$H�|$H�$H�L��H�t$ �?I���P8��~[��L��M�t�fD�EH��L�j�L9�t5L��M9�w�O�,$H��L�����H��tIJ� H��N�<"M���f�H�T$8H9$�l���H�|$(L��H������H�߉$�V��$��H���H�����H�L$XdH3%(uH��h[]A\A]A^A_ø����������ATI��H��H��UH��SH�����H��tKH�u`H�}HH��H���O�����u�KI�$H��[]A\�f.�H�߉D$���D$H��[]A\ø������AWAVE1�AUATUSH���G����H�OH�_A��H�$H�\$H9���H�|$`I��1�L�l$qH��$�H�D$H�D$H�D$xH�D$ H�D$@�D$PH�D$Xf.�I�GHL�$$A�`H�L$I��H�T$L��PHA�ƅ���I�WHHcj9jtH�t$L����Hc�E��tO;�$�����$���H�D$A�V�H��H��H���f�;(��H���x���H9�u�H���LH�4$H��H�H��H�l$(��A�ƅ��H�D$(H�$H;D$�&���H��t+I�w`I�HH���������H�T$H�t$(H9��!H�L$@H�D$H�|$`H��HE�E1�H��H���r���H�����H�ĘD��[]A\A]A^A_�DA�F�D$P�D$P���$H��tI�w`I�HH��������u�KH�|$ u,H�D$H��t"H��1��a��H�D$ H����H�D$ H�D$@9�$��,H�D$A�V�H��H��H���DH��;h��H9�u�1�1��E�H�D$0H���mH�D$�D$TH�D$8H�<$Hc�H�H��H�D$(����H����H�L$0H�AH�L$A�F�H��H�D�I��H�D$H1�1����I��H��tZA�D$1ۅ�.��DH�L��L��I�T��u'��A;\$��I�GHHc�L��A�|�H��P0��y�L���S�H�|$A������C�H�|$@�9��J���@1�1��G
�H�D$8H���o1�1����H��H����L�d$81�1�I�D$�
�H�D$0H����H�CL�d$�D$T����D1�1���	�H��H���X���Ic$9��H�$H�4H9t$�L�sH�D$8H�\$8H�XI��L9d$H������|$T�=H�|$ H���VH�t$�0��H����H�D$1�H�@H�D$ ����f�H�|$ uhH�t$H��t^1����H�D$@H�������1�1�����H��H���JH�D$@H�D$ H�|$ H�����H����H�\$�N���f.�1�1����H��H���H�|$ H�D$�����H�D$0L�sH�\$0H�X���H�T$H�|$XL���O�������1�L���=��H����H�t$xH��H�D$h�"��H�T$hH���9H�S���H�D$ H��tH�t$H������H�������1����H�D$H�D$@���H�|$xL��������u:H�|$H�t$x��H�|$ ��H�|$ ���H�������H�|$x��A������\����K�m���H�$H�D$(H���C����V���H�|$A������o��H�D$@������H�D$8H�D$���H�|$ �{���H�t$�"���H��A������*�����H�t$1����H�D$@H��t_H�D$@H�t$xH�D$ �4���H��H�$���H�$H�����H�|$x������H������l���H����H�|$x���U���H�|$x��H�|$�������?
��AWH��AVAUATUH��SH��H��8�Hc�H�>��H�{H����������uH�[H��u�D1�H��8��[]A\A]A^A_�DI��E1�f�I�|$H���#�M�d$A�M���A��
��@�WH���[������u�L�k H�[(D�u��KH�C9���
Hc���1�H��H�H��D�0L�h�������c����D�oL�wL�OA���	M9��A���L��H��E1��L)�L���h�����#�����G�����H�(����H�FH�x�
����
�H�����H�[(H��s�����SH�3H�����������fD����G�_1���@�ƅ�����H���=�������fD�F<�V�H��������d���f��G ���F<��������	�5H�����������)���HcsH�������������H�C(H�SH��HD‹S�������Hc��H��H��H�0H��H)�L�$0��H���L$L9�������3H��L$�����t݉����fD�G=���
�$=�p��= ��
�R=@�_�����=�Q����=H���������=���D�wD�oH��w����������C���r�{��hL�cA�<$�YD�sE1�E��~#DH��L�������������A��E9�u�E<��H�{(�W���;�H���T�����������H�C(�H��H�p��������fD�G����
���+������������N����G���K�E,��������� M„��`�8H���������������sH���R�����������H�{H�������������S�K�E0�����ƃ������NƁ����������:H���R������������sH����������������XH���&�����q�������O=����������������?����)H���������+���f��� ����@�&������������-H����������@=��=������=����D�GE����
�'H���X��������D�aE��DD�D�d$A�����D�sE���D�s0E���|	���D�cL�kE1�E�����A���L$E9���H��L��L$������t܉�����D�����=�
����TH������������C�����D$,Hc�H��������������H�{H���q��������f.�DmA������1@D��+U�?H��D�������������H�[H���s���H�{H����H�{t�P�@H���`�������H���H�{H����������2���H�{u��$���@�H������������@��#�k����/H����������@D�WE�����%H���~����������NH���c�����������H�{H���M�������������OH���6���������.H��������f���@�YH����������K����sH����������6���L�cA�<$	��
I�|$H���h���������M�d$�D$M���Z
I�|$H���?�A�ʼn������I�|$����������L$H��H�[�q�n�����������H�{H���X������������D��?H��������������H�CH��H�x�$������o���D�����H�����H�sH���������B����_�����������{�2H����������������H���R�������D�sA������A�փ�2�kL�{E1�@H��L���u������������A��E9��D�[E����D�|$H�{ A�W�*	�BH����������|���H�C �H��H�p�u��H�{D��H���������N���������?H��D)��G�����2���M9��'���A��L�~HD���A�O�D$���D$A9OtL��L��L��L�L$����L�L$��Hc�A��M�$M9�rE�
��|$udHc�E1�H��D��L��������������M���A��I�M9���Ic_A9_t#L��L��L��L�L$�L$�v��L�L$�L$Hc�D9�u��뾐�6H����������K����MD�m<�UH�ED�aA��A9�v*fD�A9�w��U��H���t��H�EH���y
�MD�,D;evD�eHcs0H�����������L�gH�O(L���H��H9�����D�(E��t�����H���V��L��H������������H�[(H��s�r���SH�3H��������o�D�H������t���fD�4H���������
���@�G@��L�wE�nM�fE��~&1�H��L����������A9�u�M�fH��L���<��������Q�@H��L$�����������I�~H���h�������AH���Q���������L$������?H��)�������z���s��u�S0���n���H�H9C�-D�u�EH�����������)�D��H���l���E������t$H�������������U8D�cD�{���H�E@D9���Ic�A���H�{H��H�к���DD�D�8D��D�`�;�������C����}$������IH���2�������z�D��H��������h�fD������A������AA�ƃ�2����D�u�D����H�������U�ED�bA9����A9�w��EH�}���[��H�EH���V�UH�1�D;e���D�e���f�Hc�D�D$H��D��L���������D�$	H��Ic�H�����H���D�c�H�C��H���(��� ����G�^<H��F<��]<���Y�RH����������B�H�{H���������,�SH����������u	��2�aL�{A���&����F�����ʾ?H�������������H�{H���{�����7H���g������3H���S����������H����������WH���+�������s�E�KH��p	�s�	��������Q�H�{H�����?H��P�C����������&�@H�E�,�����*H���������D�OE���	�&H����������H����UH��P������������C�����D$,Hc�H������������H�{H���5������}��VH���������i���+H���������N�@�,H��������6�@����S�(H����������H��X���������P�PH������������H�{H������������QH���q��������H���]��������1H���K��������0H���7�������E)�E��E��~YA�����G�l��A)�A��E1�A�DD��@H���X��������@�H�{H����������*�A��E�E9�u�1�����@H��L$������������L$�?H������������H�{H���|�������������D�|$�?H��D��趿���������H�{D��H����������������@H��D)��~������i�H�{(���CH���_��������G�H�C(�H��H�p�@���H�{D��H���������������?+T$H�����������H��蝾�������� H��艾��������"H���u��������!H���a�����������H�{ ����?H��蕾�����������x��H�������������7�H��������H��ƒ������N„��\�9H���ѽ���������sH���\�������H�{(�c�����?H��������^���� ���H���JH�E@�E8���H�{H�T$,H���]��������������D$,���@H��蚽���������H�{D��H��������i�������?+T$H���a������L�H�{H�T$,H�������������.��D$,�A�H���Ƽ��������H��Hc�T$H���Y��H��tp�T$H�E@�U8������<H��艼�����2��;H���u���������C�'�����GH���Y������"������������������������������|�1ɉ��D��t<AUATA��UH��SH��H��H��D�n�J�����tH��[]A\A]�f�����sH���m�����uՃCH��H������u�A��t(A��t:A��tDH��D��H��[]A\A]�/�����KH���{�����u���D�LH���c����搾MH���S����֐��H���5��f���H���5�81����UH��SH��H��H��uH��]1��EH��[]ÐH���h��H�EH��u۸���������H��tSH�����H��[�E��D�ff.�@��H��toSH��H�?H��t���H���H��t���H���H��t���H���H��t���H�{@H��t�ժ�H���H��t�T��H��[�������1�H��ttDH�?��t
�WH��H���H��t
H���H)�H�H���tH��H���tH��H�@tHcO8H��H���H�H��u�����H��tHcH��H�� �1��D��UH��SH��H���G�����d��H�EH�{H��H��H�H���H���H)�H)ށ������H�H��H��[]鲩�f����
f.�H��H���H��u�H����f���UH��SH��H���H��u
�uDH��H��H���H��u�Hǂ�H���G�������H�H�}H��H��H�EH���H���H)�H)�������H�H��H��[]���f�H��[]�f������6��t
1���H�����6襾�1�H���ff.���AUA��ATI��U��SH��H���a�6����H����M������%�=���A�@�C����L�cH	�L�CP��D�k`���@�CdE�Hǃ�Hǃ�Hǃ�Hǃ�H�H�CH�CX�C<1�H��[]A\A]��L�D$�&��L�D$�C����m����Ӹ���̸�������H���������1��b�6H���ff.�f���D�1�H��E��A9�v1A���D;4�v�2f.����D�DB94�r ��9�r�1�A9�v
�1�94���É�D���HA������SH�Ӄ�3���w+������H��T������ƒ��C[E��H�S(1�H��t�H�:�-�������ƒ��C[E�����SH����H���yH�T$��H��Q(H�T$��H����[�'���AWA��AVI��AUA��ATA���I��UH�-��SH��H��8�;	w+�HcD�H�>��fDA�D$<t�C�NfDE1�H��8D��[]A\A]A^A_�E1�1�H�{D��L��L��D�L$�t���H��D�L$A�������EL�S��u%�-f.��}uH�m�E���
��t�E��L��A���A��H�[H��u��a���f�A��H�{L��D��L�����A�Dž��:���H�[H��u��)����I���L�[(I�Fh�{H��HD�H�CM��LD؅������A�E�f\A9���A�V$A�FL��1�A���Hc�I�4��D9���E��A��A	у���AN�E��A�V$�A��A	�����AN�A�F�C tA�N D�A��D��A��A�� AM�A�N Hc��H�L��I 9{��Q���f�A��H�kt�K�C���������D���9CuD���L��L��H�����A�Dž�������E����D�kA����H�uH�}A�����I��I)�L�t$��H��H�D$H��������EM��F�D�`I��d�\H�UH�uH�|$���A�Dž���Lt$D��E9�uȋCD9��.����D)kH�|$1��ˤ�H��H���*H��H��E1�豗��H��H�����H������H��A������������f.��C����������������C��A�F`����I�F�@���A���A�/�������C=tv��=�E= �r���H�{��3���D�L$���A�Dž��M����,I�VL��H���m���A�Dž��-����;D�L$���@D��H�{L��L������A����������A��tA�F�S���Ѓ��� M�A�FH�{L��D��L���f���A�����fDE��H�kA���A��E���)������=�����H�{��E1�D�EE������}����L��L��D�L$�Q���D�L$H��t
H�P�:tH�E(�}�	�}�EE��H�kA���A�����f�A�0�������D�s�����K���������H�E H������H�C H�E ���L��H�����A�����DH�t$(L��H�����A�Dž������H�|$(��C�N���f��CA�l$<L��D��H�{L��A�D$<��A�l$<A���?���@H�{��3���D�L$賞��A�Dž�������I�VL��H���3���A�Dž����;D�L$������X���DH�kL��D��L��H���k����}A��������}�������}������U�������H�E����������K@�}���f��CH������A�Dž��a��������C����H�{L���G���H�C �9���A������D)�D)k�C����H�}�������1�L��D�L$����D�L$H��H�D$�����1�L��L�����D�L$L�\$H��I�������A�A������������~���I�sI�{H9��m����������+���S���A�C�H���A�G�=���I�WI�GH)�H)�H9�HF�1�Hc�H9������H��:L�t�D�L$���D�L$H��I�����H@H��H��D�L$舒��L�}D�L$����f.�H�|$��������E�������H�E�8�����A�D$<�����1�1�D�L$�1��I��H���:H��H������1�L�����D�L$H��H�E��@D�L$�O��H����D�L$H�EH�kE��A���A������f�H��H�\$E1�H��譑��H���%������A���������H�|$A�������������������*��L��M��I������������tB��������փ������A�CA9G�����A�CA9G�t���A�CA9G�f����U���A��V���A�I�C(�JH���>���A�K��tR�0���A������I�D$H�ωL$�D�L$L�\$H��PX�L$L�\$��D�L$������Ⱥ����H�A�T�u��A�S1ɿ�փ��!��tE�D�t0A�G���������t&��A����A��H�E�D�t˅�t���A�Gt��p���I�{(tbI�(�^���A�G�S����B���I�D$H�ωL$�D�L$L�\$H��PX�L$L�\$��D�L$��������&��������u���H����1��i��w2I�D$H�ωL$�D�L$L�\$H��PX�L$L�\$��D�L$u/�ʸ����Hc�A#D�A�CuR�����������~�����A�u�I�D$H�ωL$�D�L$L�\$H��PX�L$L�\$��D�L$t�붅�u��C���L���k��A������[�A��%���I�L$HA�H�A trD�L$H��H�L$��H�L$���H��財�D�L$��t~A�G����������I�D$HD�L$HcpH��H��P I�|$HL����貰�D�L$�������L�AXD�L$H��H�L$L�D$��H�L$�L�D$��H��A��D�L$��u�1�A����w���ff.����AWAVI��AUI�͹ATUSH��H��8dH�%(H��$(1�L�d$`L���H�M��tI�ED�[L��$D��$ �C����E���H�ָH��H�T$L)�H�HD����H�T$�����J�CM��H��L��H�CL�|$�C8L��H�C@���Ņ��"��$���~H�T$p�B��L�t$��$����t�C$L��H��L����Ņ�� �T$x�D$|�����	ЉS(�C,�C<�0�H����K0Hǃ�H�CdH�ClH�CtH�C|H��t���C<Hǃ�H�SHH�|$�D$HL�d$P�C`L��$0H�T$@L��H�T$0�D$LH�D$8H�D$0�����Ņ��d��$@��$D�Љ�%���	�Cl�tH��$0H�CpH��$8H�CxD��$hE��D��$�E���`H�{HI�t$I�T$X�թ����$ Hc�$h����D��$d��E������������������~I��$�I�|$���ݨ���������I��$�H���I��$���H��H���J�H9�u�H��$H��$�CdH���H���H���t���Kh��$��$���� 	�	�����9f��l$ H�D$(����H�P�B��E1��<@F�< ;kv�kA��H�|$(D;t$ ��Ic�H��H�H�P�B��Lc �sD�zH�A�l$9�s�f.��9�w��sH�����H�H��u�H�|$(�����H��t�s��L�t$H��$�H��tM��tH�T$hI�EH��$�I�UI�EL���H��H��$H��t�&��H��$(dH3%(����H��8[]A\A]A^A_��C����@�H���[���D��$�E�������D�[E���=D�S0E���0D�K,E�����C4��f.�H�|$����C�T���H��H�SHH�K`H���jH���L���L���軽����XZ������$X��$\���� 	�	����$��������H�|$(H������������f�Hc�H�����H����H�D$(L��H�D$ L���l$$�D$ H��$������Ņ�u�H�|$L��菖���Ņ��u���H�|$L��踔���Ņ��^�����$�L�t$�C$�
���f.��C=����;�$���L��H��L���ۘ��L�t$�Ņ������������$�	���f���u|��$\��$X�� ��	�	��H��$H��t�ޒ�HDŽ$H�|$H���E���Ņ�����D��$�E������H�|$(H������藒�����f�H���x��H���H���{I�t$<H��H���(��H�4(H��H�CHH���H��H��Pp��$dA�ą�����$h�u�����CdH��$HH��$PH���H���H������H���H+��ЉCh����@�|-����D��$ ���E��������	�H��$8���������� 	ʉ�������C4�����f�L�t$L��蓈�����(���@��$h��u�������Cd����H��1�H���\����!��1��P�����������H��H�SHH�K`H���jH���L���L����Q���ZY��������E�����Cd����C4���#���H��H�SHH�K`H���jH���L���L�����A_��X���8����E��t���H��H�SHH�K`H���jH���L���L���觹��Y^���
�����Z�����������贡�H�ǽ�������L�t$�������������AUATI��UH����L��SM��H��H��H�Š5L�l$0����tH��[]A\A]��H��L��L��H��H��E1�[E1�]A\A]釺����AWM��AVM��AUI��ATI��U��SH����H���C��H�H��tdH�<�5��M��L��H�Nj肜�Ņ�t$H�;贙�H�H����[]A\A]A^A_�@H�L$@H�;E1�E1�L��L�����Ņ�t�뻽��������1��f���H�m�5H�Ð��H�]�5H�81��ff.�@��UH��SH��H�����
���|�H��[]�f�H)�H����)�[]�ff.�@��AUI��ATI��L��UH��H��L��SH��H���UhH��I9�v
�E9EuH�H�H��H��[]A\A]��H��H��L���¿�H�H���ff.���AVI��AUM��ATI��L��UH��H��L��SH��UhH��I9�v1M��tI�E�E9EtH��L��H���b��H�H�H��[]A\A]A^ÐM��t�H��I�E[]A\A]A^����H��I��H9�vH�r�L�OhH��L��H��A��D1��D��H��tXAUH��ATUSA�X�H��E��~7I��H��I��H9�w�%������tH9�sH�p�L��L��H��A�T$hH��u�1�H��[]A\A]�1��ff.����AUATI��USH��H����~#I���i�f�H��L��L����_��H�HÃ��u�I9ܸHC�H��[]A\A]�ff.���AUATUSH��H9�s=I��H��H��E1�H��L��H��A����H�H�H9�w�H��D��[]A\A]�fDH��E1�[D��]A\A]�ff.�@��ATI��U1�SH��;u;A�D$��t"H�S~+�{t
�#�:u��H����u��[]A\��Ict$H��L���H��Z��H�H����ATI��UH��SH����;u;A�T$��t"H�K~+�{t
�#�9u��H����u�)��[]A\�fDIct$H��L��H����H�H��ff.����ff.���I��H�GhH��H��H��L������AWA�aAVA�AAUI��ATI��USH���H��H�l$�fDD�{D�3H��D�|$L��H��D��A�Յ�u&D�t$L��H��D��A�Յ�uH�
"�H9�u�H��[]A\A]A^A_�ff.�����P���v)�P�1���wH�H���� �A��H�H���� �A��ff.����AWAVA��L��AUA����1�ATM��UL��SH��L��H���0��uYE��~gA�E�L�l$L�|��*���{L��L��D$�Յ�u#H��L9�t-�CL��L��;�D$�Յ�t�H��[]A\A]A^A_�@1�E��t�H�t$L��H�ssH�D$�����@��A���L�T$���P���wvH�I�A��� A�BA�8SuI��tEI�@I9�v<A�@���<Su0H�A�B�I�B��H�A�JI���f��P���w(H�I�A��� A�BA�8st����<�u��u_��~>��N9�t�9�t7H���W�H�<��f.���N9��s���H��9�tH9�u�1��H�A�RI���H�ssH�I�zH�SSI�I�BI�zH�� I�B(I�B<H�SsI�BD�I�z0����������fD��1�H9�s1��?
���ff.����H�H��5����H��ff.�@����fD���������fD�����w	@�>��PH��5��H�5�8
H�81��p����H��������fD��1��f���1���wH�ֆ5�����x������UH��SH��H���w9wtH��H��H������H�}�E��~&H9�v!H����H9�vH���J���ȍJ)�9��H��[]�ff.���ATUSH�*�E��xH�
��5�A��H�[]A\ÐL��I�ԋG9GtH��H��H��脷�~%�x�1��f�H���t
@�4H�qH9�u�Hc�I$[]A\�ff.�@������v���%�-��ff.��������u����u1�����������UH��H��SH�ZH�����t��"H��H�Z@�0�G9GtH��H��H��蠶�Hc�H��H)�H9�u
H��[]�H�p�����ff.�@��UH��SH�ZH�����tW����H��H�Z����H�C���tV��+H�X@�0�G9GtH��H��H�����Hc�H��H)�H9�u7H��[]�H����u����tH��H���DH9�u�H��H���H�p���������v7�Ѓ��t
1���t�D��H��H��H����R(����H����ÐH��5�����p����ff.����f.���E����AVI��AUATI��USH��H9�s]A�@�H��L�l�0�I���E9EtH��L��H����H�H�M9�t4I9�vH��L��H��U A�)�t�[��]A\A]A^�A�[]A\��A]A^Ð1�[]��A\A]A^�1҉��ff.���E����AWI��AVAUI��ATUSH��H��H9�sA�@�I��H�-9�5L�d�-f�I��A�FA9FtL��H��L���D��H�I�M9�tJL9�v=L��H��L��A�V ��H��DA��T)�t�H����[]A\A]A^A_�fDA���f�1���1҉�����AWAVAUI��ATI��UH��SH�2�L���H���R��A�Ƹ��H��L9�t7�D9�u�H�KE��L��L��H���*��u֋CH��[]A\A]A^A_�@H���!���[]A\A]A^A_�ff.����AWAVI��AUM��ATI��UH��SH��A�A�H�9�;M�υ�u~���H�L$H��t~H���R��H�L$H����H�A�A�]Hc�L�4�I�<$td�CH��A�E�M��KI�<$H��Hc�H�T膇�1�H��[]A\A]A^A_�D�H�L$Hc�H��H��u�H��蔭�H�L$�D����I�$H��tA�]냸����������f.���1�H����H�������H��*�������H��"�������H�4�H��o����>��H��H��m����$H���H�����H���H�ΛHE��fDH����6dH�������H�E�H�������H��H�����H����H���H�R�H�ٜHE���H����vTH��H����j��H���H����SH����FH���H��H���HE���H�&�H����=H��H����H�����H���H���H�ΝHE���H�y�H�����H�]�H�����H���H�a�H���	HE���H�!�H�����H�
�H����uH���H�!�H���HE���H��H����F-H�f�H����3H�-�H�ɛHN��f�H��H����H����H���H���H���HE��H�Y�H�����H�T�H�i�HN��@H��4�����YH�b�H��0�������H�7�H��.����zH�t��mH��,���H��H��HE��@H�G�	H��8����;*H��H��6����%H��H��HN��H��H�����H�0���H���H���H��HE��H�	�H��2�����H���H��HN��f�H�a�H��&�����*H�#�H��$����}H���H���HN��H�A�H��(���tWH���H���HN��DH�Q�H�� ���t/H�i�&H��p���H�ϗH��HE��DH�����H�ɖ��H�i���H�9���H�C���H�ʙ��H�ʘ����AWH���AVI��AUATUSH��H�4$H��$�dH�%(H�D$h1�H��$��D$(H�D$0H�D$pH�D$8H��w�H��uiH�<$1�薿�H��H��t&H�=�u5H�����L��H��Lc�L��L��M��x��A�H�T$hdH3%(���H�Ĩ[]A\A]A^A_�@H�D$8�D$(H�@L� L�hH�hA�|$�I9���E1�H�D$@1�H�|$M��H�D$M�����D�S=��vD�[
A����A��D�T$��D��H�
P��H�������A��H�D$J�<01��L��{E��1�Hc��H|$H�����H�
��#��D�T$D��A�GA9GtL��L��H���c��H�Lc�H�M����I9���L��L��H��A�W M��A�ă��*�����B�D4@�I)�H�|$@�H��I��A�MN�1�Mc�L��L�D$耜�I��L�D$��H�<$L�D$H�l$@豽�L�D$L��I��M��A�$��tI�T$<%t!I�ԈH��A�$��u���D)�����f�A�D$I�T$<nu�H��L��H���c��H��L����I����L�t$1�I9����b���fDH�D$E��H�
��H�����A���D�\$J�<01�D�T$���L�t$�{E��A��Hc�H�
w�1�L�E���H������y��Hc|$D��H�
N���H������A��L�1��N��{E��1�Hc�H�
��H�����L��'��D�\$D�����f.��..�A.H��f�A����E1�������ff.�f���AWI��AVI��AUI��L��ATM��USHc�H��H��(H�L$`��L��L)�H�H�D�H9�wH��([]A\A]A^A_�L���v��H�=�q5L��A�: /�?��Lc�M�M9��H�\$�&f�A�\A�I��I��A�G�M9���A�<\��</t�L��L��L���u���DA�E�D$A9EtL��L��L���P��D$A�E�L$L��D�$���J�$)�~]H��D�E��1�H�
���H����H�=q5H���f��P���~�H�DL��H��@�H9�u��$M�|)��HcL$���HI�I�M9������/fA�H��([]A\A]A^A_��A�\I�nM�GA�EA9EtL��L��H��L�$�h��L�$�p����H�N�A�A�H��H9�u�L�NN�t
O�<���@A�>L��I�nA�UX��uA�>L��	A�UX��tSA�I��I��A�G��L����D$���@����H�1�H���f�H��A�A�H�PH9�u�Hc�H�EI�I��
���E���H��H�
��,��H�=�o5H�����P���~)H�DL��H�ޤH9�u�M�|I�����M��I�����I�����D��H�����t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$��D$0H�D$H�D$ H���D$0H�D$ H�D$P���H����f.�f�AWAVAUI��ATU��SL��H��H�H�T$(L�t$@L�d$`H�L$ dH�<%(H�|$x1�J�<H�D$8H��H�|$H�|$(H�|$H�|$8H�|$H9D$��M��L��H��H�t$��A�U8M��L��H��A��H�t$��A�U8A9�uHE��~8�D$`8D$@u8A�G�L��I�LL�����2@80uH��H��H9�u�H�D$(�@1�H�\$xdH3%(u&H�Ĉ[]A\A]A^A_�H�D$8H�\$ H�����[��ff.�I���������AWI��AVAUI��ATI��USH��(L�7H�*H�H�L$L�L$L)�H��H��L��I9�ty�GX6K���t��H9�wTH��L��L�\$H��L�$H���h��L�$L�\$H��H��tfL)�H�1�H�I�/I�MI�$H��([]A\A]A^A_�f�D9�tSH���fDI�8u�H��H�$H���ʞ�H�$H��t"L��H��膗�H���L;t$tH�D$M�0L������뗸�됐A���AVAUATI��US��H��I��E��H��H��H��L��S ��
t[HcC9CtH��H��L���$��H�M�,L9�vH��H��L��S ��
��H��H��L��S������[]A\A]A^��E��u+[�]A\A]A^�D[H�GH��H��]L��A\A]A^��H��L��L��H���O��H��t�H��H��H��S ��
�����H��H��L��S ��
�g����f�UM��H��AWAVAUATSH��H��@����GH��8���D�g�w<L�oHH��x���H��(���L�7L��P���dH�%(H�]�1ۍX������w`��X���A�\Hc������H����d��H��P���H�H��H���H����H��H��H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�H�D$H��H���HDž���H���H�� ���H��P���H�}�H�@H��H��H�E��H��H��H��H%�H)�H���H��H9��,/H��H��$���@L��p������H��P���L��p���H��H�� ���H�>H��H��H����X2H�FH�}�H�����H��H��H�E�H��@���H�� ���H�������X����@4��\���Ic�H�4�Hc�H��H��h���H��p���1���x*��X���H��h���L��p���@HcЃ�I��H��9�}�H��H���H�5e�HDž0�������L�%��H�pH��(���H��(�@�H��`���I��H�E�H�u�A�f�I�^<Y��Ic�L�>��H��P���L9x(�5<L9�8�����-L��L�����L��H��x���A�UL��������E������t(L��L�����L��H��x���A�U L�������
��>L�}�H�E�L;�x����$A�FI��I�^<Y�T���H�E�H;�H���t*H�u�H��P���H���������H)�H�H��H��H��H�CH�����HDž0����H��t�m�H�]�dH3%(H��0�����NH�e�[A\A]A^A_]�L��`���������0t/� tH��(���H9E���M�����tH��x���H9E���:H�E�H;�H���t*H�u�H��P���H���������H)�H�H��H��H��H�CH�����H���K����K���H�u�1�H���H��(���t��	��H��(��ы��u���7/����H�E�H�U�I��Ic^�H)�H���86�H��(L�p�H�E�H��@���HI������H�E�H�u�fDH��(���tM��t����-���u�H�HHcPH��(H��h���H��H��p���H�HHHcP0H�Ӌ��u���\���H�E����fDH�P�@H��H�R؀8t�H�E��|A�vH�E�I��1ɉ���=tI=	�����H��H�P؋@�=uۅ�u�9r��-H��(�=t�=u�f.����E�FH�u�I��1�D��H���@=tI=	�����H��H�P؋@�=uۅ�u�D9B�p-H��(�=t�=u�f����H�E�H�u�H��(���tM��t���,���u�H�HHcPH��(H��h���H��H��p���H�HHHcP0H�Ӌ��u�H�E��H�m�(A�FI�����H�E�H�U�M�^A�^H)�H���2Hc�H��`���L�xH��(L��@�H�P�L�P�H�X�H�E�A�FM���h���IcFL�����M�t�C}�A�L�}�L������?���H�E���\���������ttH�u��H��(���������v)����)���u�H�HHcPH��h���H��p���H��H�H HcPH���f.����l)H�ȋP�H�H؄�t�H�M�H��L�pL�xL�PH�@ L�}�H��`���A��{���A�FL��`���I���g���I�FH�}�M�^1�H��p���H��L��L�<�H�u�H��D���H9�sH��(��ƀ�)1�D9H���H9�r�H��@���D�I,��D��A�����f��AO�L�h�������-H)�H���������H��H��I�H�E�H)�H����.��H��(�_�H�}�A�FM�����I�FH��p���I��L�<�A��y���I�FA�vH�}�1�H�����H�M�A��H��f�H9�sH��(��Ā�\(1�9s���H9�r�H�E�H)�H���d3A��L�H��h���I��������̉GI��H����H�H�p���H�2H�wH�0H�w H��H��(H)�H�}�H��I��H�0H��H)�H��I��H�A�FL��������A�FE�FL��L��H��x���H��8���L�����I�^	������
��L�����H��I���`AH�E�H�U�H)�H���.+H��P���H��H���H�U�H�u�H�}�L�����L�HI�������*��H�E�H;�H�����-H�U�H��P���H)�H�H���������H��H��H�S�-E�FH��x���L��L��H��8����U��H�E�H����8H��x���H��8���H��L��I�^�+��L�}�I��A�FI���w���A�FH�U�M�^A�^�����H�E�H)�H����;H��H+U�H�� ���H��H��L�<�H���������H��H�ωXH��@���H��(�@�H�S@L�X��@�B�:H�E����!7H�U�H)�H���49L�}��H��(H��`���Lc����L�X�L�x�L�P�M�H�p�H�E�A����A�FH�U�M�^A�^�����H�E�H)�H����9H��H+U�H�� ���H��H��L�<�H���������H��H�ωXH��@���H��(�@�H�S@L�X��@�B�4:H�E����96H�U�H)�H����8Hc����L�}��H��(H��`���L�P�L�L�x�H�P�H�X�H�E�A�FM������I�^A�A8F�u)H�E�H�U�E�^H)�H����2Ic�H��`���L�xH��(H��@�H�P�L�P�H�x�H�E�A�FI���b���A�^A�A8F��#L9�x�����#H�E�H�U�M�^H)�H����>Hc�H��`���L�xH��(L��@�H�P�L�P�H�X�H�E�A�FM�����I�VH�� ���I��L�<�H��H�U�K��H�ʋZ�KH��@����JHC@;H�i%H�u�H�ZH�U�H��H)�;�2(H����?�H��(L�z�H)�H�U�H����2H�E��H��(H�Z�H�B�H��`���L�R�H�B�H�U�L������'v�A�L�}�L������#�H�E�A�^M�^1�H�H��(�
��0t ��Pu�1�9Z��H��(΋
��0u�9Zuͅ��Y$���M�^H�E�A�N��H�Ёx�0H�P�u�9H�u�L9x���%A�FM����H�E�H�U�M�^A�^H)�H���b.�0H��(�X�L�x�H�E�A�FM���U�I�VH�� ���I��H�u�H��H��H�U�H��H�ʋzL�E��OH��@����JHG@L��H)�;H}M;�''H����>H�U�L�vH��(L��H��`���L�~��F�H�F�H��L�V�H��H)�H�u�L�pH��@H��P���H��H���H�U�H�u�H�}�L�����L�HI��������$H�u�L������H��(H�^�L�����H�u��Ft�A�L�}�L������B�H�E�fDH��(���t�
H��(���u�u��
A�FI����H�E�H�U�H)�H���F+�H��(H�E�A�FI�����H�E��H��(���t�
H��(���u�u�L�xL�P�
L�}�A�FI���w�H�E�M�^A�vH���DH�сy�0H�Q�u�9q�u�L9y���6A�FM���4�H�E�H�U�M�^A�^H)�H���+Hc�H��`���L�xH��(L��@�H�P�L�P�H�X�H�E�A�FM�����H�E�H�U�H)�H���~'H��`����H��(H�@�L�x�L�P�H�p�H�E�A�FI����H�E�H�U�M�^I�^H)�H���n)H��h�����L�xH��p����PH����H��H���������H�PH�H�P H��H+U�H��(H��H�E�H��H�A�FM����I�GH9�x����l8IcEL��A9EtH��x���L��L���֏�H�U�H�H�H�E�H;�x������H�U�M��A�FI��I����H�E�L9�8����l�L��L�����L��H��x���A�U L�����=e�L���������7H�}�H;�x�����;L�����L��H��x���A�U L�����d�L���������7A�FL�}�I����H�E�L9�x������L�����L��H��x���L��A�U L�����d�L��������l7H��8���H9E���;L��L�����L��H��x���A�U L�����Zd�L���������-A�FL�}�I���z�L9�8�����/I�E L9�x����K5L�����L��L��H��x�����L�����c�L�����L��H��x���A��L��A�U L������c�A9���*H�E����L9�8�����/I�E L9�x����5L�����L��L��H��x�����L�����xc�L�����L��H��x���A��L��A�U L�����Nc�A9��+:A�FL�}�I��L������m�I�GH9�x�����5L��H��x���L��A�U L�����b���5A�EA9E�j)H�HE�M��H��H�E�A�FI��I����I�GH9�x����5L��H��x���L��A�U L�����b���5A�EA9E��(H�HE�M��H��H�E�A�FI��I����H�E�L9�8����V�L��L�����M�}XL��H��x���A�U L����A��L���������4H�}�H;�x����.7L�����M�}XL��H��x���A�U L����A��L��������J4A�FL�}�I����H�E�L9�x������I�MXL��L��L�����H��x���H�����A�U L��H��������L��������p4H��8���H9E��G8L��L�����M�}XL��H��x���A�U L����A��L���������*A�FL�}�I���O�L9�8����\,I�MXI�E L9�x����|1L�����L��L��H��x���H�������L��H��������L�����L��M�}XH��x��������L��A�U L����A��9������'H�E���L9�8����F+I�MXI�E L9�x����61L�����L��L��H��x���H�������L��H��������L�����L��M�}XH��x��������L��A�U L����A��9�����&7A�FL�}�I��L�������I�GH9�x����2I�MXL��H��x���L��H�����A�U L��H�������х��o2A�EA9E�?&H�HE�M��H��H�E�A�FI��I����I�GH9�x�����1I�MXL��H��x���L��H�����A�U L��H�������х��/2A�EA9E��%H�HE�M��H��H�E�A�FI��I���(�H�E�L��I�^H�����H�E�H�����H�E�H�������fDI�<H;�x����KH�}�H9�x�����.�A8F��IcEI��A9EtH��x���L��蝈�L�U�H�H���I�z�H��P���L��H��H�����H�E�H������H�E�H���H�E�H�����I�<H;�x�����H�}�H9�x����T.H�E�H�U�H)�H���\H��`���L�PH��(I���@�H�X�H�x�H�p�H�E�IcEA9EtH��x���L���؇�L�U�H�H���x���I�z�H��x���L9���7H��P���L����I��L����I��H�~H�u�H�����H�}�H�����H�}�H������H���H�E�H�U�H)�H���BH�}�H��`���L�pH��(�@�Ic]H�x�L�P�H�p�H�E�A9]tL��L�����H�}�Hc�H�I9��?D�����E1�H��L��H��8���L���u����'+L�U�I�H�U�L9��]���L��L����L����M��A�FI��I����@H��x���M��L9���I�^L����M��H�����H�]�H�����H�]�H������H�]�H���L��M��I���A8G�3H�}�Ic]A9]tL��L���(��H�}�Hc�H�I9��XD�����E1�H��L��H��8���L�������)L�]�L�H�]�L9�r�M��L����I��A�FM��I��M�����@��H�E�9�X����v�H��p���H��H��H�����'H��h���H��H�����*H��@����v,A���A��A��f��AN�@��tL�u�H��I��H�@H��@����v0A���A��D�Ƀ�f��O΄�tL�]�H��I��H�RH)�I�H�<H9�x����mH��H)�H���@%H�U�H���H�H�rH�u�:
t�H�E���E�~1�I��E����H�E�M��L��@���E��H�����I�H��p���I��H��H��H�����H��h���H��H�����E�E,D��A������f��AO�@��tL�E�H��I��H�RE�E0D��A������f��AO�@��tH�}�H��H��H�@L�}�H)�D�����I��I�H��x���H9�rE�����L��I��L�}�H�����L���������L������D��������/��A9�����M��H�E��h�A�FI����������3H�u�L��h���1�L��p���L��@���I�I��I��H��H����I��H�����A�y,A����A��A��f��DO�E��t	H��H�D�A�y0A����A��A��f��DO�E��t	H��H�T�H��H)�I�H9�x����)#L��H�<�f.�H��H���J�8H��kH��H)�H���L�������M��H��x���H�U�I���@I��A�GA9GtL��H��L���e��H�L�H;E�r�L��M�������I�Nj������)��H�I�9������M��A�L�}��-�L9�x����pD�����H��x���L��L��H��8���A�L������s��L��������D/L�}�IcEA9E��I�L9�x����0H�E��������v�L�����L��H��x���H�}�A�U L�������
�C/M�E H�M�IcEA9Et>H��x���H��L��L������L�����H������<��L������L�����H�����H�L�����H�<L��H��x���A��L�������
�2/A�EA9Et H��x���L��L��L������ڀ�L�����H�L�H9�x����/H�E����I�FH��h���I��L�<�A���H�E�H�u�E�NA�^	H�P�H9��N�HDž����K�M�TN1��)���	��A9���H��(H9����:��uԃ���H��P���L9x(�'H�E�������P���L9�x�����H��P����@�6&A�FI������L9�8�����H��P����@�&A�FI�����L9�x�����D�����H��x���L��L��H��8���A�L��������L���������(A�FL�}�I���^��A�NH�E���9�X�����H��p���H��L��I�����,H��h���H��H�E�H������H��@����@,�ǃ����f��NDŽ�tL�U�H��I��H�PH��@����@0�Ã���ك�f��N�����I)�K�H9�x����4&L�U������Mc�L��L��x���L���������_H�E��E�H�E�H�U�M�^A�^H)�H���F��L�x�PH��H��h���H���H�4H�p���H���������H�H�HH�
H�H H��H+M�H��(H��H�E�H��H�H�����A�FM������A�NI�^���"���I�WH�E�H9�x������A�A8F��!I�GH�E�A�GA8F�'H�U�M��A�FI��I�����IcFI��H��L�B�4:H9�x�������A�I�ND)�����I��I��L�}�A8G�t�H�E���I�GH9�x����%A�A8^�d!I�WH�U�A�_A8^��%I�WH�U�A�wA8v��I�WH�U�A�A8~��*M�WL�U�A�_A8^��*H�E���@I�GH9�x�����$A�7A8v�� I�WH�U�A�wA8v�7%I�WH�U�A�wA8v�<M�WL�U�A�_A8^��(H�E���I�GH9�x����5$A�?A8~�T I�WH�U�A�_A8^�%M�WL�U�A�wA8v��H�E���I�GH9�x�����#A�A8^� M�WL�U�A�wA8v�sH�E��~�I�WA�FH�U�A8�H;�x����A�FM��I��I�����H��(���L��H)�H9�0������������tH��P���H9s0����H�s0H�C8H��P���H��0���H�{H���c��H��`���L��8���L9�IG�M)�L)�C��$���X���D����*��L�M��H��p���L��@����uA�S,A�׃�A��A����AN�L��h���O�DŽ���K��I�T�L)�A�A�S0A�Ѓ�A��A����ANЄ�t	H��I�D�L)�A�B��9�X����>%Lc�J��N��H����v���I���I�NI�V9�X�����H��p���H�<��~H��h���H�<��lA�FI�����I�GH9�x�����!A�������������"I�^!A�EL��A9E�XH�M��H�A�F!I��H�U�I�����I�GH9�x�����H��x���L��L���py���%�L�s�����A�EA9EtH��x���H�}�L���>y�H�}�H�H�4H��x���H9��BH��H9���Hc����H��x���M��I�H�u�I��A����A�V�RH�L�H9�x����7I�N���N!A�A8F�tI�GH�E�A�GA8F��%I�GH�E�A�GA8F��'�B�H�D@I�L��H��I��L�}�I9��� A�8��'H�PH�U�A�w@8q��'H��H�E�A�G8At�H�E��	���I�GH9�x����� I�FA�]L��H�����A9]tH��x���L���w�H�}���Hc�H�E�H�H�u�H;�x�������L��A�U H������߉��t���"A�F	M��I��	L�}����H��x���I�GH9�rlL�M�L�U�H��M��L��L�����L�֋����A�U8H�U�H;�x���w:���&�u�A8vu(��L�����M�tH��I��L9���%A�8t�H�E����IcVA�N��Hc�L�H9�x�����I�F	���A�7A8v	����I�wM�t
H��I��H�u�L9���H���~�@88t�H�E����Ic^I��L�I9���I�GH9�x���rL�M�H�����L�U�L��M��H��x���M��L��L��L����������A�U8H�U�H;�x���w<��L�������$�u�A86u$��I�LL��I��H��I9���$�8A8>t�H�E�����I�GH9�x�����A�7A8v�I�WH�U�A�_A8^��I�WH�U�A�wA8v��I�WH�U�A�A8~��#M�WL�U�A�_A8^��$I�WH�U�A�wA8v��#H�E��D��@I�GH9�x�����A�A8^�WI�WH�U�A�A8~�M�WL�U�A�A8~�I�WH�U�A�_A8^�Z H�E�����I�GH9�x����H��x���L��L����t���H�U��
����@��@������"IcF!H��M��H�U�I��M�t%A����H��x���L��L���t��%!H�}�H�GH9�x�����������A�EA9EtH��x���L���Bt�H�}�H�H�4H�E�H;�x�������H�u�L�sL��A�U L�����K���Hc����M��L�}�I�A����I�GH9�x����7A�������������I�^!A�EL��A9E��H�M��H�A�F!I��H�U�I�����I�GH9�x�����A�EA9E�!Lc�L��J�H9�x�����D�����H��x���E1�L��H��8���L��������L���������H�U�L�M��H�U�I��A�FI�����A�V�H�L�H9�x����QI�N���\A�FA8�|I�GH�E�A�GA8F�3 �B�I�TFL��H��I��L�}�H9��A�?@89�� H��H�E�A�G8At�H�E��J��f�I�GH9�x�����H��x���L��L���Mr��5H�U��
����@��@�����o IcF!H��M��H�U�I��M�t%A����H��P����@�&A�FI���������HDž���H�D$H���H�H�� ���H��H�}�H�E�H��H�������CH�M�tA����McvI�A����f�H�HHcPH��h���H��H��p���H�H HcPH���E��DH�PH���l��.��fDH�p�HcP�H��h���H�4�H��p���H�P�Hc@�H��H���i��f.�������D9H���������������f.�=����9s�|�����������l��@���]��������E�D�Z���9�E�F
I�~E9�tfDI9���D�H��E9�u�H�zH�������f���9�������H�E�����H�E�H�U�H)�H���iH��`����H��(H�X�H�x�L�P�H�p�H�E��)�H�PH���l����H�PH���l��&��L�����L��P���L�����H��H���H������H���H����������EH�E�H�}�L������R�L9z��H�U�H)�H����
�PH��(�X�H�E�A�FM���D������H�E�H�U�H)�H�����H��(L�x�H�E�����H���������I��L+}�I��L��H��H���#��H���������H��H+]�H��H��H��H�����L�pH�E�H)�H���U	�	H��(H�u�A����H�E��[��H�E��R��H�E��I��H��$�H9�tH��H��$�H9�u�H��	H��$	H�D$H���H��H���H�E�HH�E�H�� ���H������`��H�E�H�U�H)�H���'H�����H�}��H��(H��`���L�X�H�X�H�x�H�p�H�E���H�E����H�E����L�����A����z��A�<?�6<@���F<�#A�FM�s���H�U�H;�H���t*H�}�H��P���H���������H)�H�H��H��H��H�VH�����H��t��x����W;�x���H�H��0����.��H�E�L�����Hc����H��`���L�PH��(�@�H��x���H�H�x�H��8���L��H�P�H�U�L�}�H�P�L��H�E��gp�L�}�I��A�F	I�����H��P���H��H���L���H�����H�����H������L�HI���������d��H�E�H�}�L����E���H����	�H��(I��L�z�H�U����A�FI���1��H�@I��a��L�����L��P���L�����H��H���H�����H������H����_�����yH�E�L������p�L�r���H��P����@�|A�FI�����H��P����@�UA�FI�����H�E��Q��H�E�L�������M��L�����E��I��H��x���H�E��
�I��A�EA9EtL��H��L���-k�H�L�H;E�rڋ����A�G�M��L�����)��H�I�A9��c�A�L�}����A�FI������H�u�L��A�U L�����}B���
Hc����M��L�}�I�A����H��P���H��H���H�U�H�u�H�}�L�����L�HI��L�����������)	��H�U�H;�H���t*H�E�H��P���H)�H�H��H���������H��H��H�SH�����H��t��x����O8�x���Hc�H��0����%��H��P���H��H���H�U�H�u�H�}�L�����L�HI��L������V�����m��H�U�H;�H���t�H�E�H��P���H)�H�H��H���������H��H��H�V�Z���H��P���H��H���H�U�H�u�H�}�L�����L�HI��L�����������u�H�E�L�}�L�����L��������H��P���H��H���H�U�H�u�H�}�L�����L�HI�����������H�U�H;�H�����H�E�H��P���H)�H�H��H���������H��H��H�W�D�Z���w�E�F
I�~E9�t@L9��\�D�H��E9�u�H������A�H�����H�RH��x���I��I)�L)�I9��8��A�NL�}����BH9�sAI�wH�J�H�u�A:���I�W�H���q�H�U�H��@:r�����H;����u�H�E�M�������M��H��x���M��H�E��
f.�I��A�GA9GtL��H��L����g�H�H�U�L�H9�r׋����M��M��I�׍H�M�t
A����H��P���H��H���H�U�H�u�H�}�L�����L�HI���������~A��H�U�H;�H���t*H�E�H��P���H)�H�H��H���������H��H��H�SH�����H��tH���B5�Ic�H��0������H�E�����H��P���H��H���H�U�H�u�H�}�L�����L�HI��L������F�����O���H�E�L�}�L�����L������;��H�E��r��H�E��i��H��P���H��H���H�U�H�u�H�}�L�����L�HI�����������H�U�H;�H���t*H�E�H��P���H)�H�H��H���������H��H��H�VH�����H��tH���?4�Hc�H��0������H��P���H��H���H�U�H�u�H�}�L�����L�HI��L������L������U���H�E�L�}�L�����L��������H��P���H��H���H�U�H�u�H�}�L������L�HI��D���������������H�}�L�}�H�M�D�����L�������A��H��P���H��H���H�U�H�u�H�}�L�����L�HI������������H�u�L�}�L������b���H��P���H��H���H�U�H�u�H�}�L�����L�HI��L������Q����������H�E�L�}�L�����L������G��H�E��}��H��P���H��H���H�U�H�u�H�}�L�����L�HI��L��������������H�E�L�}�L�����L�������H��x���L��L���<d�H�u�Lc����H�E����H�E����I��I��A����I�^!��I�^!��L�M�K��I��L�@�7�H�E����H��x���L��L����c�H�U���H��x���H�}�L���c����H��x���H�}�L���c��~��A�FI�����H��x���H�}�L���tc��7��H��x���H�}�L���\c����H��x���L��L���Ec�H�U���I��H�E�I��A��8��A�FL�}�I��L������ ��A�FL�}�I��L��������H��x���L��L��L�������b�L�����H���H��P���H��H���H�U�H�u�H�}�L�����L�HI��D������������H�E�L�}�D�����L���������H��P���H��H���H�U�H�u�H�}�L�����L�HI���ͽ�����XH�U�L��������H��P���H��H���H�U�H�u�H�}�L�����L�HI��舽���������H�E�L��������H)�H�L���H�E�L�}�L��������H��P���H��H���H�U�H�u�H�}�L�����L�HI���!������9���H�U�L������-��H�E�L�}�L��������H�E�L�}�L��������H�E�L�}�L�����L�������H�}�L�}�L�����L��������I��H�E�I��A��'���H��x����I��A�EA9EtL��H��L����`�H�H�U�L�H9�r�A�FM��I��I�����H�E����H�E����H�E����M�} IcEA9Et"H��x���L��L��L������`�L�����H�I�<L�����L��H��x���A��L�������
�����H�E��-��H�E��$��H�E����H�E����H�E��	��H�E����H�E����H�E�����H�E�����H�E�����H�E�����H�E�����M)�E��[�H�E����H�E����H�E����A�FL�}�M���˿��A�FL�}�M��麿��H�E��y��L��x�����I��A�EA9EtL��L��L���u_�H�H�U�L�H9�r�M���I��I���f���H��8���H��H9�x����CL��H��x���M�}XL�����H��8���A�U L����A�ׅ���A�FL�}�I��L���������H�E����I��M��A�I)����H��x���H9�8�����L��H��x���M�}XL�����H��8���A�U L����A�ׅ���
A�FL�}�I��L�����酾��H��x���H9�8����UL��H��x���H��8���L�����A�U L�����4��W
A�FL�}�I��L������&���H��8���H��H9�x����*L��H��x���H��8���L�����A�U L�����3���A�FL�}�I��L������ý��M�W�麽��H�E��y��H�E��p��H��P���H��H���H�U�H�u�H�}�L������L�HI��L��������������H�E�L�����L�������y��H��P���H��H���H�U�H�u�H�}�L������L�HI��L�����葸���������H�E�L�����L���������H�E����H�E����L��P���H�E�H��H���H�U�H�u�H��L�����M�HL����L�����H������H���H������������H�E�H�M�H��H���������L�<�L����L�����H��H+U�H)�H��H��H�� ���H��H������L�����L��P���L�����H��H���H������L����H���H�����y�������H�E�L����L��������H�E����H�E����H�E����H�E����H�E����H�E��|���H�E��s���L��P���H�E�H��H���H�U�H�u�H��L�����M�HL����L�����H������H���H�����˶�������H�E�H�M�H��H���������L�<�L����L�����H��H+U�H)�H��H��H�� ���H��H������L�����L��P���L�����H��H���H������L����H���H�����4�������
H�E�L����L��������H�E��d���H�E��[���M�W��I��鄺��H9����L�����H�]�A�L��@�����H��(H9�����:u�H�r H�����	A�~0�JA����A��A����AN�@��t	H��H�t�H�JH��H9t��c	L9������DE��H�E�鲾��A�FM��I��I���׹��A�FM��I��I���ù��H�E�邾��H�E��y���H�����L��H��x���L��L�������L��H�������х���A�FL�}�I��L������a���H�����L��H��x���L��L�������L��H�������х���A�FL�}�I��L���������L��H��x���L��L�������L�����.��uA�FL�}�I��L������̸��L��H��x���L��L�������L�����g.���A�FL�}�I��L�����釸��A�FM�s�y���H�E��8���H�E�H;�H���t*H�}�H��P���H���������H)�H�H��H��H��H�CHDž0�����Թ��H�E����H�E��߼��H�E��ּ��H�E��ͼ��H�E��ļ��H�E�黼��H�E�鲼��H�E�驼��H�E�頼��H�E�闼��H�E�鎼��H�E�酼��H�E��|���H�E��s���H�E��j���H�E��a���H�E��X���M�W��I��遷��H�E��@���H�E��7���H�E��.���H�E��%���H�E�����H�E�����H�E��
���H�E�����H�E����H�E����H�E����H�E��ݻ��H�E��Ի��H�E��˻��H�E��»��Lc����L�}�I�A����H��P���H��H���L����H�����H������H���L�HI���������H�E�L������H�E��T���H�E��K���H��P���H��H���H�U�H�u�H�}�L�����L�HI��L�����迱�������H�E�L�}�L�����L���������L�WL�_I�M�;D��X���E���I���L��`���L�u��H�����H��0���L��@���H��p����wA�U,A�׃�A��A����AN�L��h���O�DŽ�txK��I�T�H+�8���H�A�E0�ƒ������N�H���t	H��I�T�H+�8���I���9�X��������Lc�J��H�<M�L�H�?��i���I�H���L+�8���L��H�E���H�E����H��0����R���A�FL��x���I������H��P���H��H���H�U�H�u�H�}�L�����L�HI���F������'H�U�H�u�L������0���I��H�E�I��A�馴��H9����H�}�A�H�����H��(H9����:u�H�r H������H��@����J�0A����A��A����H��AN�@��tH��H�����H�L�H�rH�����H�4�H9L����L9������DE��y���H��P���H��H���H�U�H�u�H�}�L�����L�HI���H������`�H�u�L�}�L�E�L���������I��H�E�I��A�餳��A�FL��x���I��鐳��H�E�M��H�PIcFH�U�I��M�tA��l���H�E��+���H�E��"���H�E�����A�FL��8���I���=���A�FL��8���I���)���A�FI������A�FI������H�E��η��H�E��ŷ��A��H�U�H;�H���t*H�E�H��P���H)�H�H��H���������H��H��H�VH�����H��tH���� �Ic�H��0���髳��H�E��_���H�E��V���A��H�U�H;�H����D�H�E�H��P���H)�H�H��H���������H��H��H�V��H�E��
���H�E�����H�E����H�E����I��H�E�I��A�����H�E��Ҷ��H�E��ɶ��H�E����I��H�E�I��A����H�E�飶��H�E�隶��H�E�鑶��H�E�鈶��H�E�����A�FL�}�I��馱��A�FL�}�I��镱��L9�����Z�H��H�BH9�x��������O��H�E��.���I��M��A�I���T���H�E�����H�U�H;�H������H�u�H��P���H���������H)�H�H��H��H��H�S��H�E��ʵ��H�E����H�E�鸵��H�E�鯵��H�E�馵��A����"�闵��HDž0�������H�E�郵��H�E��z���L�����A�FM��鞰��L�����A�FM��銰��M��1��7��H�E��?���H�E��6���H�U�H;�H�����H�]�H��P���H���������H)�H�H��H��H��H�W���A�FM��I������H��@���L��x���H�M������H�xH�=��������H�E�鴴���/�H�U�H;�H������H�}�H��P���H���������H)�H�H��H��H��H�S�Y���H�U�H;�H����N�H�E�H��P���H)�H�H��H���������H��H��H�W��H�U�H;�H�����H�u�H��P���H)�H�H��H���������H��H��H�S���DAWI��AVAUATUH��SH��H��L��H��$�H�t$0M��H�L$PH�D$@H��$�L�L$H�D$HdH�%(H��$�1�H�D$pH�D$8H�D$hH�D$�{d�~�CdH�5|=Hc�H�>��fDL���L�cHM9�rPA�����L��I��L��L�l$�fD��<��H��H��L��L����Q�I9�v�DE1�H��$�dH3<%(D����H�Ę[]A\A]A^A_�f�H���H����s`L�cHH�D$H)�I���t$ H��H)�I9��=M9�w�H�\$XH�\$8L�t$(M��fDL�|$hL9t$vfM��M��H��H��H�t$�|$ A�T$8��~AI�U�|$pA8}����I��H�LH�C�f�H��I���x�A8}��jH9�u�L9l$w�L�t$(H�\$XM��M���������������� �L9���H�{HD�C<H��L��H�T$0A��Q�������H�{HH�t$H��L���UP�I��H��������|���@H���L���H�D$H�D$H��L�kHL)�H)�I9���M9��A���H�t$H�\$ H��H��L)�H�D$L��M��L�d$�@H��H��L��L����O�I9������A�?@88u�I�OH9�s2H�P�xA8u�H�|$H�48�H���z�@89u�H��H9�u�H9�u�H�\$ I�����H���L���I��H�D$M)�H����QH��L)�M��I9��GM9��f���L��L�|$L�l$�M9����L��H��A8$t���:@8>��H��H��L9�u�I���'����L�d$0M9�t>H�{HH��L��L���N�H�{HD�C<E1�H��L��H��I��耧�����L����H���A�H��������L��L�t$HL��H�t$H)�H+��H��H��H�|$@H�H�{HI����I��x���DL��H��H�|$A�UhI�������L��H��H�|$A�T$hI��M9�������7����H�D$PL)�H��c�������LE�H���H����D��H��H����
H��H9�u������Y���Hc�L�@�2H������u�H��L)�M��I9��@����f�H�t$L��H��L���]M�I��H9D$(�������f.�tx�H���L�CHL��Hc�L��H)�H��H��A�PhI9����C���L��I��M���B���f.�H�CHH��H�|$H���PhI�����A�����������(�I�����ff.�AWAVAUI��ATUH��SH��H���H��$�H�t$`H�T$H�D$pH��$�H�L$8L�D$(L�L$xH�D$hdH�%(H��$�1�H��tHI��H�WHH�H�݋B��t3H9���
H���@I�UH�B9BtL��H���YH�H�H�H9�r�H��$�L��$�I��H�D$@H�D$A�}dwA�EdH�=07Hc�H�>��f�M��L�l$XM��M���L;|$(�L��I+��H9D$8wRA������a����� �OH�L$L9��AI�}HE�E<A�L��H�T$`�&������I�UH�B9Bt
H�t$L���uG�Lc�L�|$@O�4�6���@I���I�]HL;t$(s^A�A����]L�d$L�|$(I��H��H�\$�@A�A�<���E9EtH��H��L���F�H�I�M9�wѐ1�H��$�dH34%(�H�ĸ[]A\A]A^A_�DH�\$`L9�tFH�D$@L�t$H��L��I�}HH��L��HE��CJ�I�}HE�E<E1�L��H��H���
��������f�I���M��H����H�D$xH�|$hL�8t5I�}HL9|$8��
H�D$@H�t$`L��H�L$H��HE���I�H�|$hH�H�t$pL��I+��H������@I���A�}`I���I�mHH�D$H���|$0H�|$(H)�H�L$HH�L$H��H�D$PH��H�H��H)�H9�HC�I����"	I9������L�l$XM��I��fDH�D$PL��$�L�|$HI�lH�EH�D$ L9|$�E���M��L��H�T$ H�t$�|$0A�V8��~�I�W��$�A8u/��I��I�LI�D$�H9�t�H��I���p�A8w�t�I�EH9������H�D$X�UM��H���Hc,��L9�v(A�FA9FtL��H��L���D�H�I�L��L)�H9��L9������M������f�I���I���A�u`H�L$(H�D$H��I�]HH)��t$0H�t$L�<H�|$HI�,L9�LF�I���L�|$ ��I9��@���H��L�l$PH�D$XH�D$XL�mL�|H�D$HL��$�H9D$vhI��I��L��L��H�t$�|$0�S8��~EI�V��$�A8����I��I�LI�D$�H��I���p�A8v���H9�u�L9t$w�L�l$P���@A�E`I���I���H�t$�D$H��M�}HH)�H�DH�t$(H9�HF�H�D$ I9��T���L��L�l$0M��I��I��L��$�I9�vkH��M��L��H�T$H�t$�|$A�T$8��~FH�S�3@8�$�����H��I�LI�G�DH��H���p�@8s���H9�u�I9�w�L�l$0M�����I���I���H�L$(H�\$H�w�M���H��H)�H�M�H9�HF�M����I9��o�����A:9u/M��H9��E���H���DH9��2���H��I���A8t�I�AH9��*���A�AIc�I�I9�r�����@I���I���H�t$M�}HH��H�|$H)�H�\H�D$(H9�HF�A�GA;G��I9�����H�EL�l$L�d$ I��M��M��I���2f.�A�FA9FtH�t$L��L���vA�H�I�I9��x����EA8$u�I�t$M9�tL��L��L)��-�u�M��L�l$L�d$ M���(���DI���H�|$(I���H�L$H�p�H�D$H��I�]HH�t$0H)�I��H�I)�H�t$ H9�LC�I�����M9�����L�l$HM��L�d$PM��H�D$ I�4H�D$�@�8u/H�D$0H9��XH���H9��GH��H���8@8:t�I�GI9��z���H�D$H�VM��H���Lc4���M9�v&�C9CtH��L��L���5@�H�I�L��L)�I9��M9��,���M���X���@A�D$A9D$tH�t$L��L����?�H�I�L;t$ ���������L9l$ ����H�D$P�UH���Hc�H�H9l$ ��������fDH����~���L��H)�H�D$xH�H;T$8�-H�\$hH���W���H�D$@H�t$`I�}HH�L$H��HE��C�H��0����L�l$HL�d$P�,����L�d$M������I9��'����ML�|$L�EL�l$ L�d$0I��Hc�L��M)�A����I�M9����E8&u�I�vH9\$tL��H���q+�u�L�l$ L�d$0���fDI9��������A:9u/M��H9������H���DH9��r���H��I���A8t�I�AH9��j���A�AA���I�I9�r��O����M9��?���L�l$HM��L�d$PM��H�D$ I�4H�D$�8H�u1H�D$0H9������H���fDH9������H��H���8
t�I�GI9������FH�L$HM��D����	@M9�v&�C9CtH��L��L���=�H�I�L��L)�I9��M9������M���U���@H9l$ �u���H��L�l$PH�D$XL��I��H���H�D$XM�l$M�<H�D$HL��$�H9D$vdI��I��H��L��H�t$�|$0�S8��~AI�NA�6@8�$�uH��I��H�TH�E��H��I���p�A8v�uH9�u�L9t$w�L�l$PI����DL9l$ �����A�D$H�|$P���I�L9d$ �<�������I9�����L�l$Xf.�H�D$PL��$�L�|$HM�,I�EH�D$ L9|$�)�I��L��H�T$ H�t$�|$0�U8��~�I�OA�?@8�$�u0��I��I�TI�D$f�H9�t�H��I���x�A8�t�I�FH9����A�EH�|$XM��D����	@L9�v&�E9EtH��H��L���;�H�I�L��L)�I9��L9����M������@H�L$H�t$8L���?�H�|$hH��9����H�\$hH�L$I�}HH�t$8I���E�H�L$xH�H������H�;����H�t$@H�L$8H��I�}HH��HE�H��H�L$�>�H�|$hH����H�l$8��M����������G��~1L�G�p�H�1�H������
�H��I��H�HH��H9�u����AV��
AUATUH��SD�'�
�wM�E��tkA9�|E1�[D��]A\A]A^���Lc�H�I��L���<�H��txH�EH�}L���<�H��tcE1�H�E�]D��[]A\A]A^��Lc�I��L���5�I��H�EH��t L���4�H�EH��t7�]D��[]A\A]A^�A������W���H�}A��������H�}����:���L��A��������'���f.�����xNAUA��ATA��UH��SHc�H��9~&H�EIc�Ic�H��H�EH��1�H��[]A\A]��s�`D�y������@��H�H�GH�GH�G�ff.����S� �4�H��H��tH���Q�H��[�ff.����H��tWU��SH��H�����~"H�H��t���H�{H��t�����uH��[]�f�H��H��[]��f��ff.�@��H9�tgUH��SH��H���v�cC�u>�{��~4L�SL�M�O�1�L�CH�u��H��I��I��I��H��H�PH9�u�}H��[]�f.��ff.�@�����5�D���=��51����AVAUI��ATI��UH��SH��H��PH�D$D�L$ L�D$(H�L$0H�L$8H�D$@����M��t	A��tPH�}HL��H��L���:�L�L$H��L��I��L��H���Ք��I��H�|$H��t�S�H��PL��[]A\A]A^��GL��L�D$�p�-B�tLc�M��u���L�D$L���#��v���fD��AWI��AVM��AUI��ATI��UH��SL��H��H��$�t��$���L9��L9����El��t	M9���M9�����$�H�\$pH�D$P�D$`H��$�L�|$xH�D$hHDŽ$�����L9���E1�L9�vH�}HL��H��L���9�I�‹Md����H���L��HcMhH)�H����H�����L�I9�IB�H�D$H9���H�D$8L�t$(L�|$PM��H�D$ H�D$HH�D$H�D$@H�D$�t$L��H��L��t$H��L�L$0L�D$�p�A[Z����H�D$8H9�vL�t$HH��M��H;\$@v�`�H��M��H��L��L��H���ɒ��H���tH��xW�E<�H�UH�B9BtL��H���4�H�I��H�H9T$@s�I��H��H9\$(�I���@�E<�H�����H�|$PH��tH�D$���H�D$�E< t/H��$�t$��$�uH��$�H�D$� �H�D$H�Ę[]A\A]A^A_��I�ދ�$�H�\$pH�D$P�D$`H��$�L�|$xH�D$hHDŽ$�����D�EdE���QL�d$M9�vH�EHL��L��L��H���PhH�D$H���L��HcUhL)�H�����H9������H�L$HL�t$ L�|$PH�L$H�L$@H�L$H��t$L��H��t$I9�L��L�L$IF�L�D$0�z�^_�������H�D$HH9�HG��Jf�H�}HL��H��L���7�M��H��L��I��L��H��I�����H���tH���n����E<�#L��H9\$@v�H;\$ �>���H����U���f.��GH��$��p�>���H�H���a����H���D��8L9��_���L�s�T���fD�uh���!��$�E1�L�L$PH��H�D$PL�-�!�D$`L��L��L��H��$�L�l$pL�l$xH�D$hHDŽ$��������H����l���H���t����E<�y1��H�|$PH�������H�D$�@�H�D$���fDH9�����H�D$HL��L��M��PL��H��H�D$HPL�L$���ZY����H�D$PH�D$fDH�}HL��H��L���V5�L�L$H��L��I��L��H��I���*���H���tH��������E<�iL��M9�s����@L�|$PM��L�|$��H��M��H��L��L��H���َ��H���tH���c����E<�H�UH�B9BtL��H���	1�H�I��H�L9�r�����L�L$L��L��L��H������H��������H������L��L)�E<�����@H��$�����H��$�L)��q���f����L9��/L9�����$�L�sH�\$pE1�H�D$P�D$`H��$�L�|$xH�D$hHDŽ$�����L9��*�������f.�H��$��S����fDH��L)�����DL�t$�'���fD�ttM��L��H�EpL)�H9�rNH�UxL9���L��H)�H9�vL��H)�I9���I�V�L��H)�H��L��H)�H��H9�LB�L9��"���H�������������Ā�������������M9�r�M��L�����H9��_���L�T$M��H��L��jL��H��H�D$HPL�L$H��AYAZ���-����ElL�T$��@�����H�L$PM��H�L$�DM9�������ElI��L���uH�\$xL�L$H��L��L��H���O���H���tH�������E<�����H�UH�B9BtL��H���.�H�L�<�Elu�H�}H�9f.�M9��w���H�}H�G9GtH��L��L���=.�H�}HH�L��I�D�E<E1�L��L��H��謊����t��3���L��L��L)�H)�H9���I)�M��H9�vL�EHL��L��L��H)�L��A�PhH��L9��s����G���H�}HL��L��A�L���`0�L��I��H�EHL��L�L$H��P�������L�L$H�}HL��L��A�L��L�L$�0�L�L$H��H��H�D$t�E=�tH�EHL��H��P L�L$��
tCM9�����I9��L�������H9������'���H�}HH��L��L���X�H��H�Ep�Q���H�MHL�A HcA9At0H�|$H��L��L�L$ L�D$H�L$��,�L�L$ L�D$H�L$H�H�t$L�L$H��H�<L��A��L�L$��
LDL$�R������H���D$PAQM��I����H��Ð��H�GH�����G<�����G`����H�GP�����G����1��f����o�oNO�oV W �o^0_0�of@g@�onPoP�ov`w`�o~pp�D���ff.���H�OL��H�?H�VI��I)�L)�I9�u=H9�v9�A�)�u-��@�A�4H��)�uL9�u��f����1��f.���H�H�w1�H9�s.fDHi��H���J�H�H9�u�H��H��H��fD�ff.�@��SH��H�H�NL�JL�B�V��~H�N H�>L�VI�L��Ѕ�u
[���C�[�fD��H��H�w1�i��H���J��H9�u�H�WH�wi��H���J��H9�u�G����H�Ð��UH��SH��H��H�>�h��H�{ H��t�Z��H���R��H���J��H���[]�ff.�H��tSH��H�?H��t���H��[����ff.�@��UH��SH��H��tH�~(H��H��t���H�����H��tH�����H���[]�ff.��ATUS�G\�X�����H����~m�Gd9�fH���H��tgD�$Ic�H���+�H�����u\�^D9�}+A�L$�Hc�)�H��H�H�L�DH�H��H9�u�H���D�ed�]\��[]A\���A��#��oEh�oMx�o���o��HP X0�z���� ���뱻�����ff.��AW��AV)�A��AUATUSH��(L�/H�|$H�t$�D$I9���M��A��E1��_D�Cй���D��H)�H��H��H9��BA��L�����A�WX������0A�H9l$��A��A�����I��A�G����L��H�t$L��A�W ��A�GA9GtH�t$L��L���'�H�L�����I�lA�WX����L�����A�WX���;���L���
��A�WX�KɍS�����HD�����f.�L���߾
A�WX�SɃ�W��E�A�H9l$�2���f�D;t$UH�D$H�(D��H��([]A\A]A^A_��A�]�*���fDL����H��(�����[]A\A]A^A_�L��E1�뤸�����ff.�f�AWAVAUATUSH��H�H�|$H�4$H9���I��D�b�1��f�L��H�4$H��A�V A��A�FA9FtH�4$L��H���f&�H�L��D��L�<A�VXA��7wK��tGA�Eй�����H)�I��H��H��H9�rZA�,�L9<$v@A��A���t6L��A�F���v���D�+녉�H�|$H�H��[]A\A]A^A_����L����f�H�������[]A\A]A^A_�1���USH��H���H��$@H��$HL��$PL��$X��t@)�$`)�$p)�$�)�$�)�$�)�$�)�$�)�$�dH�%(H��$(1�H�l$ H�SH�K(H��$L�C0I��H��H�D$H��$0H����D$�D$0H�D$ H�D$P�{��H���XZH��t:���H��H���
1���H��$(dH3%(u#H���[]�fDH��H�=d�
1��7����H��H�Q�4H9j5tH�G�@% = t�@H��1�H�5�����AVAUATUSH��H�L�jH�L$H9��/A�EH��H��I�����qH��L��A�U H�L$A��A�EA9EtH��L��H����#�H�L$H�H�<H�EH�|$A��MtMA��c�A��C�)��D����A�v�����L�J��Ic�L�>��fD�@��H9���A�E���XL��H��A�U H�|$A��A�EA9EtL��H���!#�H�|$H�H�H�|$A��-�FH9��3A�E���L��H��A�U H�|$A��A�EA9EtL��H����"�H�|$H�H�H�EH�|$D9p��A�ހˀ�I�<$H����[]A\A]A^�DD�1�����@��H9���A�}�ZL��H��A�U A��A�EA9EtH�|$L��H���3"�H�HD$H��H�D$A��-��H9��;A�E����L��H��A�U H�|$A��A�EA9EtL��H����!�H�|$H�H�H�|$A��?��H�ED9p�~D�����������y����c�����/�D�7�f.��D�������A��AA�������H�3�4H9L5������9��H�����t��H�5]H��1��m���H�|$�s�����f���fDD�7����D�7����D�7�����	�&���fD�����fD�����fD����fD�
���fD�����fD�@% ��ۃ�k�������
�����������@H��H�|$H������Å������A��H�|$�[����H��H�|$H�������Å��Z���A��H�|$�;���f�������:���������0���������&���������������O����X���f.�ATI��UH���S��H�EH��t1A�t$H��H������Ņ�uA�T$H�;I�4$�S�I��[]A\ý������ff.����~~&L�F 1�Hcȃ�I��Hc9�<��99F�1��fDu�HcF���F1�Ð�W�G��tF��t��u-1������D@����W��t1�������D��������f.���u�G��t4��������D���fD��u˃�������D��f���f.�����V9WuH�H9t�fD�F9G������8�F�fDUH��SH��H��H�-�5H��t(H�H��5�H�hH�XH��[]�f����H��u���@H���5S��H��tAH�H���5H������XH��@H�HH�@�@4[���K���H��u�[�@H��H���5H��t@H�H�v�5H�H�@H�@H�@H�@ H�@(H���f����H��u���@H�)�5H��tH��H��5�H�����H��t�H����H���5ATA��U��S��H��tYH�H���5H�H�@D�`�hH�@H�@ H�@(�@0��t�@@[]A\�f.��+���H��u���@H�1�4H9J5t0SH���7��H�����tH�C�@t
����t[�D��
H��H�5����1�[�;���ff.�AWAVAUATUSH��H�|$9�sI����D�yA���A	��D�eD9�tK�ۍCE��I��H�I�,�����u�����)�A��D��t�H�|$�������uA	�D�eD9�u�H��[]A\A]A^A_��AWI��A��AVA��AUATUSH��H��(9�wA��A��L�+M����I�E1�E�W��L�`��E����9�s2�4;��L6E;�v�"D�3��|	E9����9�r�s��A���t@�׉�E�^9�s4D�T=A��C�E9�w���B�L��<	E9���A��D9�r��)�<�<$��'�������<M��I��A�:E��tKE�CG��E9�r>A9�sE9�w4L��L�T$�t$�L$�T$����L�T$I�E�t$�L$A�:�T$A9�DG��|-�A�<�A9�DB����A�u���Z�j9�v9A��f�E�A9�r�A9�t'D��H�ljT$��I�EH����E�e�T$D��D�bA9�v#�A9�w�A�uH�����I�EH����Hc�D�<(E;e��A�uI�E9�s"�9�r�A�uH����I�EH���qMc�F�4 A9]��A�uI�E��w#���v�A�uH���M�I�EH���0�$�1�A�}wA�EH��([]A\A]A^A_É���Y�����D��A���iD�����DE�e�8����A�]�g����D������D��D��A�u9��n���)�D�$�C�,9�v5f��9�r�A�uH��D�D$D�T$�t�D�T$D�D$H��I�E�MIc�Ic�Ic�H�H��9�A;mv[I�EA�uA�m���D�$�D��A�|$E�SA���`���A�UHc�D�\$H�)�Ic�H����D�\$E)�E)eI�E�����D�D$L�$��L�$D�D$H��H��H����H��D�D$L�$����e����UH�EL�$D�D$��w9f.�҃�v��U��H��L�L$D�$�S�D�$L�L$H��H�Et1��}w�EL�+1�1�I�EL�`E���I����������������3�������ff.��9�vH�F�@%@���$5���+���ff.�AWH��M��AVI��AUATU��SH��H��L�d$`L�l$XA�$��t9������wA�$�D$PE��+A�E1�H��[]A\A]A^A_�fD��|$PA9}��9������A��H�pH�$DB�H�|$hD�L$D��D�\$����H�$���H�t$hA�H�x(������x�M��D�L$�jD�\$�I�vD�$H�|$hD������H�t$hE1�I�~(������D�$���-�4����A�U�����A��ҍrA��I�A��A����Hc΋|�B�D���D)�����(Hc�	׉|�M����������P��I�����0�����Hc�)���A	D����D��������H�t$hH�(D�$A���������v���M��D�$�Z����H�t$hE1�I�~(������D�$���9����C�����������������9�s$H�D$hH�@�@
@��A�$��@H�|$hH�pD�$����M��D�$tԋH�|$hI�v�����D�$�DH�|$hD�L$H�$�m����H�$D�L$�ҍrA��I�A��A����Hc΋|�B�D���D)�������H�t$hH�x(A�D�$�������S���M��D�$����5����5����7����p����-���f.�AWAVAUATI��UH��SH��H�1҃����H��tuL�.E�uI��E��~eE�1��fDA���tz��A�WA9�tF�CH�E�|�Hc�A�L���9�r�A�L��H���l�����t�H��[]A\A]A^A_�f�H��L��H��A�[�����]A\A]A^A_�,���@H��1�[]A\A]A^A_��AWAVAUI��ATI�ԉ�UL��SH��8A��D$���H����D�D$ 1�A��D$$HcD$ L�t�A;��9�w�@	σ��xA;so9����ۍCA��D��I�A��A����B�H���I�D�D)ыx���t�L��T$��H�D$�t$�6���H�D$�L$�T$�x	ωxA;r��t$ �F��H��t$ �\���9t$$�C���9��.E1�I�](�%�A��A��Mc�B�T���D9|$�"G�4?A�FH��L�9�vЃ�A�L��H�������t���L$��A�������H��Hc�H�H�t�L�D�H�t$(D�>�s�t$$E;8��A9�r%�f�	�A���xA�A9���D9���E��A�GE��D��AI�A��A����C�H���I�D�D)ًx���t�L��T$ L�D$H�D$�t$���H�D$�T$ L�D$�L$�x�v����D$�������f.��������1�H��8[]A\A]A^A_��\$$9\$�������H�D$(9sI�}(A�L���e��u��\$$9\$~��D$M�u(�\D�lfDHc�A�L��L���L��C�H��T�����u�����A9�u��f���f.�H��8I�}(L����[A�]A\A]A^A_���1ۅ�t�A��DA	���D�x9����ۍC��E��I�������3H���I�D�)�xA��D��t�L��T$H�D$�e�H�D$�T$�x��AVAUATUL��SH��L�d$0H	�I�uAD	�u1�[]A\A]A^Ð1҃[L����H�����]��A\A�A]A^��fDH��H����H������u_H�D�+H��E��ubH��H���m���u�E��t�E1��C�6A�L��H��P��������`���A��E9�u��P���@H�D�+H��E��u�H��L��H��H���u����D��H��A�Љ�DE��������u[H��]A\A]A^����[L��H��]A\A]A^�*���f.�I�H���H����AWAVAUATUSH��8L�/H�L�L$A�}D�0L�D$I��H�D$ L�x�|$���������D$E1�D�E��t{D�t$ E��f�C�6�L$H��A����E�$�����1��fD9�w�UD9�w+��A9���Hc�A�L��CH�A�l�9�w�A9��!A��D;t$ u�1�H��8[]A\A]A^A_�D����1��DH��t��t�H��L�������b�D$�D$��t�L�l$(L�d$�D$H�|$(�H��D�,����,�E��toH�D$ �P�H9�r`L��1�A��H���@�H�ЋT����L�A9�r6D9�r)D9�H�|$A�L��AG�A9�AC��L��� �����D9�u�I��D$�D$;D$�`������H��L����fD��A9�v89������H�t$H�|$A�D�T$���D�T$���u������@A���g����A9������H�t$H�|$D��D�T$A���D�T$���\���H��8[]A\A]A^A_�L��M��I��D��D�t$�D$���@AWL�GL�^AVAUATI��USH��H��X�oD�NL�jL�w(H�$L��D��A��H�V(��A��t1�H�|$D�|A��D�<H��H�� u��t$1�L�\$0�D�|A��E�<H��H�� u�1�A�4!4H��H�� u�1�L9�t��4�tH��H�� u�E��tzL��H�s(�H��H9�u�A�}��A!�A��tXH��H��L��1�ATE1�L��L�L$��H�|$A��XZE��uH�{(L���x��H��XD��[]A\A]A^A_�fDA�}t)M��I��D��L�����A�Dž�u��uH�<$�fDE1��A�}H�4$H�T$L��H�D$����H�<$A�����H�|$H�<$�g���AWL�^AVAUATI��USH��H��H��X�o�D�NH��L�jL�s(H�$E��A��H�V(A��A��t$1�H�L$�D�|A��D�<H��H�� u�E��t#1�L�\$0fDD�|A��E�<H��H�� u�1��A�4	4H��H�� u�1�H9�t��4�tH��H�� u�E��tjH��H�K(�H��H9�u�A�}��A!�A��tHL��M��I��1�1����H�<$A��E��uH�{(L������H��XD��[]A\A]A^A_�DA�}t9H��H��L��D��ATL��L�L$���A��XZE��u��uH�<$��E1��A�}H�4$H�T$L��H�D$��H�<$A���>��H�|$H�<$�X���AWAVAUA��ATI��U��S��H��I�X�L$H�T$(H�t$$L�$H��S`����������|$E�A��A�������H��^o�A�E����E1�A��D	�A�EA��A����H�ډ�D���SX��u�D��D��H�M�,�D��A�u���t�H�<$�D$��A�u�D$���t$L�D$(�L$$���cH�\$0H�$D���D$4H�D$8H��H�D$@H�D$HH�D$PH�D$X�����E���~H�4$H�l$`�D$dH�D$hH�D$pH�FH�D$xHDŽ$��xHDŽ$��H�}(A��1����H�$H��H�����H��$�H��t
�D$�<���D$���H�|$XH��t�$����$H�Ę[]A\A]A^A_�f�H�<$H�D$��H�D$�PA	�D�xA��A����H�ډ�D��SX��t�D��E��D��A��H�I���PD��t��@�������wE����E1���@	�A�EA��A��tlH��D���S(��~�H�ھD���SX��tE9��D��D����H�M�,���A�u���t�H�<$�D$���A�u�D$뗋T$��t�1������D$��t�{t�1҃{H�4$I�|$(��A��������������H�$D��L���a����@A�E����E1�A��fD	�BA��A���y���H�ډ�D��SX��tE9��D��D��H�I��D���r���t�H�<$H�T$�D$���H�T$�D$�r�H�<$H�T$�D$��H�T$�D$�r	�BA��E9����H�ډ�D��SX��t�D��D��H�I��D���r���t�뤽�A	�D�xA��E9������H�ھD��SX��t�D��A��D��A��H�I���PD��t�H�<$H�D$��H�D$�P�H�<$H�t$h�1��p����H�4$H�{(E1�������������H�$H��L���-�������������ff.�AWAVAUATUSH��8L�6L�iL�aL�t$(I9���A�D$H�L$H��H��H�4$����L��L��H��A�T$ L�t$(A��A�D$A9D$tL��L��H����L�t$(H�D�}I�H�EL�t$(�EA��]��A��-�FE9}��A��[�Z�A��&usA�E@�4I9��+L��H��L��A�T$ ��&��L�t$(�E�>f�E�>�V�����1�H��8[]A\A]A^A_�f��E�H�$L�3H��8[]A\A]A^A_�fDA�E
 ��I9��eA�D$����L��H��L��A�T$ L�|$(��A�D$M��A9D$tL��H��L���L$�P�L�t$(�L$H��EIƍAЉML�t$(��H�'H�H�
Hc�H�>��fD�E��;������*���fDA�E�
I9��L��H��L��A�T$ ��:��H�|$(A�D$H�|$I��H�}A9D$tL��H����L�t$(H�I�L�t$(I9���f.�L��H��L��A�T$ Mc|$��E9|$tL��H��L���D$�B��L$Lc�M���:�pL��H��L��A�T$ ��]tBA;EtL9�v7M���@L9�v)A�D$A9D$tL��H��L�����H�M�4L9��j���H�D$H�D$(A�E@t)�EL�t$(����A�M���8���@H�|$H�5�����L�t$(�E���I9��r���L��H��L��A�T$ ��{A�E�'� �G���1�H�|$(M��H��������"H�T$(��E�EI9�I��D��E��B���A�E��H��EH�E�����H��EH�E�����E�H�E���I9������A�E@�����H�|$(M��H�޺��������Q�UH�T$(��E�EI9�I��D��E��u����E�H�E	�\���A�E�����E�H�E�8����E�H�E����H��EH�E�����H�	�EH�E����I9�s�L$L��H��L��A�T$ �L$��{�yH�|$1���H�5��
���L�t$(�E���A�E��I���H�|$(L��H��L�|$(�v��=��L�t$(��E�EM9�D‰E��<���H�T$H�|$(H��L�|$(����������9E�����EL�t$(��E���L9�vCL��H��L��A�T$ ��]u0A�D$A9D$tL��H��L�����EL�t$(����A�D$A9D$tL��H��L���]��H�I�L9������p���f.�H�|$(A�D$A9D$tL��H���$��H�|$(H��EL�4��D���A�U���w���A�D$A9D$tH�|$(L��H�މL$���A�U�L$H�HD$(�EI��H�D$(1���P�����E�����A�|$�mL��H��L��A�T$ A��H�|$(A�D$I��A9D$tL��H���b��H�|$(H�H�A��^�G���1��}I�����E�E�s����@����A�D$A9D$tH�|$(L��H�����H�|$(M��1�H��H�HD$(�b��A�Ņ���H�|$(H9�s"L��H��A�T$ L����A�T$X����IcD$A9D$tL��H��L����H�H�|$(L�H9������H9��~���L��H��A�T$ ��}�j���A�D$A9D$tH�|$(L��H���U��H�HD$(�EI���E�D�m�k���������=���E�.����.����*����8���� ����o��������,�������@��H�=��4�@���ff.���1����D�H��D)�u
��)ȅ��1����SH��H)�H��[�fDH���p���[�f.���H��H�=��4����ff.�f���H��H�4$H��H�T$H���$��H���ff.�@��AVI��AUI��ATI��UH���SH�����L��H��L�0H��H��L�h���uH��[]A\A]A^ÐH�߉D$����D$H��[]A\A]A^���SH��H�XH��t1�H�5F������H�{XH��t��H�CX1�[����H��8H�OX1��D$H��t-H�GHH�4$H�5V��H�|$H��H�T$H��H�D$ �|��D$H��8���H�XH��t#H��H��H�5����P��1�H���f�1��ff.�f���H�WX1�H��tH�BH���f���US�'���H��H�XH�D$H��t+H��H�L$���H�D$H��t�X��t1��tH�@ H�EH����[]�H��H�EH����[]��H�EH����[]�ff.�@��SH��H��H�L$�J�xCtUL�D$��tB�P�Lc�H��t(Lc�H�{K��@Hc1H�<��H��u��H�����u�C��H��[�DA�H��[ø���������1��G<�t�SH���W��¸��~H�SP�B�t	�C<����[����H����UH�-��
SH��H���;	w�HcD�H�>��H�{(H��t�b��f�H�I�5H�B�5H�H��[]��H�{H��t��B����H�{H��u���D�C��t�H�{H��t�H�C H9�u��D�Cu�H�{(H��t�����f.�H�{���H���5H���5H�H�[H���6����e���@�ff.�@��H�=��5H��t(S�H�H�n�5�y��H��H��u�1�[�D1��D��������SH��H��1�����H��tH��u�f�H��H�SH��u�H�C[�ff.���UH��SH��H��H��5H��t$H�H�ڧ5�	H�hH�XH��[]�D�k��H��u���@UH��SH��8�yH�T$H��H�BH�$H�D$ H�AH�t$H�5�H�D$H���P@�Å�u*H�t$H��tH�}��H��t%H�EH��8��[]�DH�|$�V��H��8��[]�H�|$������>����ff.����H��5S��H��t-H�H��5�������XH�@H�H[���{��H��u�[�@���������AW1�AVAUATUH��SH)�H��(H����L�GH�OI��I��HcGH��M��I)�N�d=��~yM�l$L9�}uH�C I�|$H9���L�L$H���H��H���t��L�L$H��H����J�|=L��L���c�H�kL�1�D�kH�kH��([]A\A]A^A_�I���L��L��L���,�H�k1�L�H�kH��([]A\A]A^A_����L�L$H�����fDL�L$H�L$L�D$���L�D$H�L$H��H��L�L$t-L��H��H��L�L$��L�L$J�|=L��L�����=���������D���fDATI��UH��SH�/�5H��tBH�H� �5H�C �L��H��H�CH��H�CH�C��u$H��[]A\�@���H��H��u�H��[]A\�H��1������@UH��H����SH��H��H�\$	H��P0��xH�H��H��H��?��H��[]����H�G ��w�GH�GH�G�ff.�@��UH�o SH��H���G��tH�H��t
H9�t�5��H�kH�kH�CH��[]�ff.���ATI��UH��SH����L��H��H��[]A\�����������AWE1�AVI��AUI��ATUS��H��(L�!L�y�T$H�iI�|$M��t��A��ƒ>��8��P�|$��H����K��uE1�H��(D��[]A\A]A^A_�f��M��A��uދD$1��7H�\$�(H�H��H�����IA�O9L$�A��I�D$D��H��A�<�H��P0H�E��u�H�4H������H��H���$�H��f�H���D�D$���D�D$��tH�E�7���E���1���I�D$A��x7���w/�о��E1�����H�	t�����E����@E1�H�}(��L�����E1������L�������A��A�Gt
��A��E��I�|$����I�] 1�H���"�H�I�E H�H��t3H��I�E �o���fDH��D$���D�D$�V���f.�A������A���D��AWAVAUATUSH��L�'H�|$I9���I��I��1��wL��L��L��A�V ��A�FA9FtL��L��L�����H�L����M�<A�VX��tI�Cк���H)�H��H���������H���H��H9�rC�D��,CM9�vOM��A�F��u�A�$�@��H�L$L�!H��[]A\A]A^A_��H�������[]A\A]A^A_�@��M����1��DAWAVAUATUSH��HM�H�L�!A�jH�D$8��H9�r(����A�H��HD��[]A\A]A^A_��H�T$I��H��L��L�D$H�<$��u!H��A�T$ �P؃�����|��I�UL�|$8H��L���d��A��=����H�$H�L$8E1�H9�9H9��A�D$���D�L$H��L��H��A�T$ H�L$8D�L$A��A�D$I��A9D$t1H��L��H��D�D$,D�L$ H�L$�N��L�T$8D�D$,D�L$ H�L$H�I�L�T$8A��,�6E���}H�L$8E��A�H9��fA�D$����D�L$H��L��H��A�T$ H�L$8D�L$A��A�D$A9D$tH��L��H��D�L$���H�L$8D�L$H�H�<H�D$H�|$8H��tfD9x��A�D$���LD�L$L��H��A�T$ H�|$8D�L$A��A�D$A9D$tL��H��D�L$�C��H�|$8D�L$Hc�H�H�L$8A��}��A���t	E9���H�D$H�$�D�HD�hH�D$8H�����I�UH��L��L�T$ D�L$�g��A��=����H�L$8L�T$ D�L$I9�u]A�����E�������fD���X���A������S���DD��
����H�D$H��@t�A�E1����@E1��A���A���������DD�9�d����D�?����A�7������A�6����������H��I�����H��Hc������x`��x\H�H���
H�@H�A�<�wl��H�@�
Hc�H�>��f�H�I�pI�@H�����A�@H�F�FH���@H�FA�@I�@H�����I�@H�FH��H�����fDH�I�pI�@H�����A�@H�F�F��I�p�f��oA�oNAH�oV AP H�F0I�@0�f.�H�FA�@I�@H�����I�@�S���DH�FA�@I�@H�I�@�+���D��H�=��5H��t0H��1�H�5�������H�=�5��1�H�m�5H���1��ff.�f���H�W8H�O@�AWAVAUATUH��SH��HM�pL�>A�H�t$D��$�H�L$L�D$L�L$ ��(��A�����<�R��{A�}�DE�L�|$8I9��7A�F���5L��H��L��A�V ��A�FA9FtL��H��L�����H�I�D9���L����A�VX�����)���A���cL9�wZ�1f�L��H��L��A�V A��A�FA9FtL��H��L�����H�L�E9��jA��)�`H9���I��A�F��u�E�/�D��'�DE��������-��L����A�VX���QE1��D$,L��L9�w<����D��D�L$(��A�Ņ��>D�L$(L��D��A�VXH9�vzI��A�F���L��H��L��A�V A��A�FA9FtL��H��L��D�L$(� ��D�L$(H�I�E9���A��)��I�FXL��E���b����D���H9�w�E��t,H�|$8L��H���^��H�L$ ����F�)�D$,�H�D$H�(H�D$H�1�H��H��[]A\A]A^A_��A�>���DA������A�)���D�(������fDE������A�����DE9�ID��9���@I��H�D$H�|$L����H������Y���f��D$,L9������L�������)���A���n���L�|$8A��D$,����L9��K�����H9�LF���I��)����n����*��������8�������ff.�@AWAVAUATUSH��L�'L�jH�<$H�T$I9���H��M���P�L��H��L��A�U A��A�EA9EtL��H��L�����H�I�A��}t\A�G؃�v#A��{A��vH9�vdI��A�E��u�E�>�f�H�$�!���L� H�|$L��L������H����[]A\A]A^A_ÐL��L��L��A�UP��H�$��yL� �@H�$1�L� �DH��M��1��@AWH��M��AVAUATUH��L��SL��H��H�H�H�|$H��H�t$(H��H�L$L�����D$8A�Ń��!E����A��uyH�D$L�s0L�kL� M9��A�E����
L��L��L��A�U ��A�EA9EtL��L��L��$���$H�Iă�]u�H�5�H��A������E���H�T$H�H����H�$E1����H�D$�D$lH�H�D$xA���DH�D$t�D$XH�D$@H�D$0H�D$ L�t$A���H�
��
D��Hc�H�>��DD�uA�E1�H�CD��H��P(����1Ƀ���H�T$hSE��H�D$tPH��$�PQL�D$@D��H�t$(H�|$ �.��H�� A�Ņ���E����D�mA���]����|$lL�t$���3
L�|$0M��t]H�,$H��L��H�����A���H�}(�'���M���H�l$@H��L��H���k��A���0I�~(I����L�<$H�$�t$8�B����
���BM��tA�N�B�D$����t_H�C�@
tUH�$H�x(�%H�C1��
H��PX��t1H�C�
H��P(��H�$�B�@	�dH�$�HH�D$xH�\$E1�H�H��D��[]A\A]A^A_�L�t$A�����H�D$H�$H9t
H�$H�x(����M��t�H�D$(L90t�I�~(�����L�d$xI��M��H��H��$�H��$�L���j���A���H��$�L�t$����H��$������n���D�D$lE���H�|$0�D$l�fL�4$H�|$0H��L������A����I�~(�N���L�t$M����H�|$@H��L�����A���GI�~(����H�$�D$X�@H�@H�@H�@H�@ H�@(H�D$�@H�@H�@H�@H�@ H�@(L�d$x��L�d$xL�sM9��L��L��L��� �����D$<D�+L���
A�D�l$HM���
DE�EI�ML��L��L���I���1I��H���
I9�u�M9�vOA��	@M9�v>L��L��L��A�V ��:����]t#A�FA9FtL��L��L������H�I�A��u�H�5�H��E1�E1��H���H�ED�uH�D$x����fD��UI�؋uH�<$���V��A�Ņ��+���H�|$H��t)�u��t!��UI�؁��&��A�Ņ�������D$l����
��uo�D$p��tf�����T$hH�4$A��ҍB��I������Hcȋt��:D���)�����qH�<$	�H��t�H�t$H��t	T���D$lL�d$x�D$pH��L��L��H�����A�Ņ��%���L�t$�`���D�}�����H�CH��P(A�Ń�����x�1��ME1�H�T$hSE��H�D$tPH��$�PVL�D$@H�t$(H�|$ ����H�� A�Ņ��n���L�t$�����D$l�����������L�d$xH��L��H��L������A�Ņ��:�����t"��tH�C�@
��v	H�5M�
H���:���E1�A�-A����fDL�d$xH��L��L������A�Ņ��"����UH�<$1�I�؉��/������A������H�|$H��������UD��I��1����A�Ņ����������H�S�M�B��t�u�t$<����1����L�t$A���������}^�]���D�UE���P���H�t$H��L��H������D$8A�����fD�+���H�T$(H�H����I���/���f�L��L��L��A�V ��^��L��L��L���������2���fD���w����T$hH�$A�H��H�x(�����A�Ņ������H�D$H���B����T$hH�x(E1�H�މ��e��A�Ņ��"���H�D$L�t$H�$H;��������fD��a���fDH��$�H�<$H�����A�Ņ�����H��$�H���PH�|$H�����H��$�A�����H��$����E����������L�d$xH��L��H��L���:��A�Ņ���������|������d����D$l���H�t$x��$�H�t$P����A�D�l$HL�d$xI��M���>fDH�S����t$<A;u�yA�E��B��4�I��D9r�iH��L��L��L��D�������y�L�t$A��E���K����H�T$hSE1�1�H�D$tPH��$�P��$�PL�D$@H�t$(H�|$ ����H�� A�Ņ���������fDA�$�]���fDH�|$t1H�D$H�D$@H�$H�D$0H��$�H�D$H��$�H�$���H�$H�D$0H��$�H�$f�H�$�D$XL�d$xH�D$�@H�@H�@H�@H�@ H�@(���f�A�FA9F�RH�I�M9������A�F����L��L��L��A�V A��A�FA;FtL��L��L�����A��]�H���L�t$A���������DM��L��L��L��A�
D�l$HL�T$H葤�A�L��L��H�
?�
H��I������u�L�T$H1ɋT$<I��A��0H�<$A��A�rD�l$P���L$\�Z��A�Ņ���H�|$L�T$HtA�r����t
�|$Pu]IcFA9F��I�I�L�d$x��@H��$��k��H��$��^���f���f�L��L��L���������L$\�T$<I��H�|$���A�Ņ�t��E���@���A�����������A�FA9FtL��L��L�����H�L��L��I�L���5���k����D$<�����H��� ����T$hH�4$�ҍB��I������Hcȋt��:D���)����S���@L�d$xH��L��H��L��D�u���A�Ņ��|�����tD�L$XE1�A�E����H�5��
H��E1�A��o�����H�5n�
H���[���1��g���A������i�L��D�l$HE��BD9��DD�BD9�tH��$�Ic�H����A��D9��E9���A���HH�CH��$�H�wH��P �A����L��A��D�l$H�A��E1�L��D�l$H�v���H�T$hSE1�1�L��H�D$tPH��$�P��$�PH�|$ L��$�荼��H�� A�Ņ������H�D$PH�D$xA����D�l$<L�d$xM��E��DH��L��L��H�����A��E9�u�D�l$<E1��"���E�,$�L���L��L��L���q��H�I�IcFA9F����L��L��L���P��H�����H�$��BM�����A�f��B�D$���_�E1�D��$�1��Q�L�t$A�����H�D$0�T$8�@��taH�T$0���BH�$��H�$L�t$H�D$0H�D$0H�\$H�$H;�����A���\�A������Q�L�t$A������d�H�\$0��C�!�H��H�@H��(������H��H9�u���L�t$A�2�������E��E1����L�t$A�������H�x(A��
H�޺
臺��A�Ņ�������H��说����f.�AWAVAUI��ATUSH��XH�
M�xH�t$I�pH�T$(L�D$H�t$ H�L$H�L$HH�L$@��(�����x��<�W��{�}�E�L9l$��A�G���OH�|$L��L��A�W H�|$HA��A�GA9GtL��L���C��H�|$HH�H�H�D$HA9���L���D��A�WX�Ņ���D$L�d$H1��D$8��L��D��A���(fD���ЉD$����)���L��L�d$HM9���A�W����L��L��L��A�W H�|$HA�W��A�G9�tL��L�����H�|$HH�Hlj؃�H�|$H��)��A9�����-���L$I�GXL�����[������Ѕ��(���D��]�����'�E�����A��-�L���D��A�WXL�d$H�D$����D$8�(�������@�D$���A�$L������D��|$A�މ�������D9��|A�FՃ��/1�A�GA��-H�L$H@�ōl-�����H��L��L��A�W H�L$HA��A�GH��A9Gt'L��H��L��D�L$<H�L$0�%��H�T$HD�L$<H�L$0H�H�L$0�D��H�L��H�D$HA�WX����H�L$0L��L��H�L$HH�L$HH��H�L$0�^��H�L$0������H�|$�G0A�GH�|$H���H�L$0L��L��A�W H�|$HH�L$0��A�GA9GtL��L��H�L$0�o��H�|$HH�L$0H�H�H�|$H9����)���H�T$H�|$L����'��H�D$�@,H��X��[]A\A]A^A_�f.������D$���TH�|$@L��L���|����t��D$81�H�L$����H�\$H�Q,���)yH�T$�R\�D����H�t$ �F t.H�t$9F\��H���L�~hHc�H��ID�H�<���H�t$��F(�F�FH�D$(1�H�����fD�>���fDD��I��A�މ����H�|$D�7���f�H�D$�8����@,����f.�M�������)�O���fD�D$�D$8���D�	�i����H�D$H�\$H�@,H�L$HH�D$H�t$L��H�xH����
H�L$ L�T$H�A tAL�\$�P�L��M�L�A�{\M�Ch@Hc9�qI���H��ID�H�<�t\H��I9�u�H�L$��A(��tLH�t$�FL�V ���L�d$H�D$�D$8����L�d$@����f��0������fD�AA��A�Y���fD�T$��u_H�D$H���@,���@�/���H�D$�*����@,�?���H�T$H�|$L��'����'����>������M�������;����AWAVI��AUI��ATUH��SH��HH�L�yH�4$L�aH�\$0H9���A�GA�A�FI�^����H��L��H��A�W H�\$0��A�GA9GtH��L��H��L$���H�\$0�L$H�H�H�\$0A9L$��A�NA�F��uA�H�<$H�H��H[]A\A]A^A_�DA�$��t7A9L$�<A9L$�A9L$�vA9L$ ��A9L$$���	��s��H�5	�
Hc�H�>��E�\$A���`���H9���A�GI�^���YD�\$L��H��H��A�W H�L$0D�\$A��A�GH��A9Gt1H��L��H��D�L$D�\$H�L$���H�\$0D�L$D�\$H�L$H�E�NH�A�A�A�FH�\$0��U��	H��
Hc�H�>����t��������A�����A�E����A����DA�Eud�@H��L��H��A�W H�\$0��A�GA9GtH��L��H��L$���H�\$0�L$H�L��1���H�H�\$0A�WXH�\$0�������H9������A�G��u���fD�����A����@H9���
L��H��H��A�W ��?�s
A�D$�g
H�\$0A�GH��A9G��H�H�H�|$0H9���L��H��A�W ��#��
A�GH�|$0��tL��H��A�W A�GH�|$0A9G��H�H�H�\$0H9���A�G���:H��L��H��A�W H�\$0��A�GA9GtH��L��H��L$�z��H�\$0�L$H�H�H�\$0A9L$����)u��M���f����wA����������A��������wA��������lA��y���@����A��d������@�A��L���������A��1���@���OA������H�$I�U(H9��A�����������H9������A�G��tH��L��H��A�W A�GH�\$0A9GtH��L��H���$��H�\$0H�H�H�\$0�P���A������1�A�EA�	����A�F�	�[���fDA���D����A�EA�	���������A�F�	�����A�������A�
�
����L��H���U��H�|$0�,���L��H���=��H�|$0�e���H�����A�
I�FH9���H��L��H��A�W H�\$0��?��H9���L��H��H��A�W ��+�8H�\$0A�I�F �H���H�A�
I�F�f�H�����A�
I�F�k���fDH�a�4H9z�4��I�E�@�FA�����fDI�MH�|$0L��H��M�E�����������H�\$0�
������lA����A�����A�$L�D$0���1�A��0H�|$0L����H��L�D$���������"H�\$0L�D$�A�A�FL9�D�A�F�����A�$����A�����A�$�	A����H9���A�����A�$��@�+	A�����A�$���	A����H�|$0L��H��D�L$H�L$0H�L$蝥�H�L$D�L$=���
A�$��
A�U\��	~9���
A�D$ t&9��I���H����Hc�H�<���A�FH�\$0�A�A�FI�F(����H9��
A����A�$� ��	A�����A�D$�A�����A�D$�k
A����A�T$��tmA��/D�\$L��H��H��A�W D�\$��H�\$0A�GA9Gt L��H��H�߉L$D�\$���L$D�\$H�HD$0��{�XH�\$0A�T$H�\$0I�؀��"
A��#���A�$���	A�����A�$�@�x
A����A�D$���A����A�$��@�HA�����A�D$�lA����A�D$ �WA����A�$�� ��A����A�$��VA��x���A�$��@�A��c���H9�s D�L$L��H��H��A�W D�L$��{��1�D��H�5�
L�����H�\$0A�����A�D$��A��	���A�D$�A����A�$ ����A����A�D$@�$A�����A�$� �A����A�$�@�5A����A�D$���A����A�$��-A��u���A�$��}A��^���A�$�����A��K���A�$���A��6���A�$���A�����A�$�� �A��
���A�$������A���H�|$0L��H��H�L$0�-��������A9F��
A�FH�\$0�A���A��X�����������fDA�1���f�A�$�����A�G��tH��L��H��A�W A�GH�\$0A9GtH��L��H��追�H�\$0H�I�F H�A��*�DA�T$A�H�\$0��t\����A�G��tH��L��H��A�W A�GH�\$0A9GtH��L��H���R��H�\$0H�H�H�I�F A���� �Y������P����fD1�H�f�H�5�
L���P���H�\$0A��x�H�L$0H9�vL��H��H��A�W ��P��H�\$0A�$��u&H�\$0A��=�A��5�A�D$	��������A�H�\$0���� ��������D�H����A����H�|$0H9���L��H��A�W �ƒ�R�D$����&�����L�D$0I�UL���B�1����|$0t���A�GA9GtL��L��H����L�D$0H�I�<H�|$0H9���L��H��A�W ��)��A�GA9GtH�|$0L��H��費�H�HD$0�D$,H�D$0H��H�D$8H�D$8I�^A�H�\$0I�F �D$,A�F,A�F(����1�L���A�WX���Z���L�D$0I�EL���@�I����H�L$8H�t$0ARH��PL�ÿ(M��L�L$<����A[]���l�����)�����I�E�@@����A�GA9GtH�|$0L��H���˺�H�HD$0A�H��H�D$0�YL��H��A�W ��A�GA9GtH�|$0L��H��L$臺�L$H�HD$0I��H�D$0��=��
��>�����H�L$8H�t$0PH��jM��(L�L$<���ZY�����H�D$8A�M�~I�F �D$,A�F,A�F(H�\$0A���|$&����A�GA9GtL��H��L�����H�HD$01�L�D$0���H�A�I�F��5�A���$�A�
�
��L��H��H��A�W ��{A�$��� �MH�\$0A����I�MH�|$0L��H��M�E���������H�\$0�������x���A���A�	�	A�F��A�	�	A�F�s��@A�H��I�F��U�A���D�A�EA�	A�F�%P=����A�F�	��A��I�F��A�����A�EA�	A�F%A�F�	���A����A����H�	A�I�F���A�	�	A�F�i�A�	�	A�F�P�A�EA�	A�F%A�F�	�*��@A�H��I�F���A����A�D$@�+A����A��I�F	���A�A�H�L$0���4�A�GA9GtL��H��H�����H�HD$0H��A����������A��0�JA�GA9GtL��L��H�����L�D$0H�I�A��S�A��I�F�:�A�EA�	A�F@%P=����A�F�	�	�A��D�\$L��H��H��A�W L�D$0D�\$A��L��A�GA9GtL��L��H��D�\$�:��L�D$0D�\$H�M�L�T$0A��<t8A��'t21�H�5��
L���X���A���A��I�F�l�D�\$�D$,����I9��L��H��L��A�W D�\$��0���+��A�GA9GtH�|$0L��H��蓵�H�HD$0�L�D$0�|$,M����H�D$8A�^,L��A�I�F �D$,M�VA�F(����A�t`H��L��H��A�W ��L�d$0A�GA9GtL��H��L�����H�HD$0��<t-��'t(1�H�5n�
L��L�d$0�=���H�\$0A��e���H�T$0M��H��L����������J�H�\$0A��6�1��#���A�GA9GtH�|$0L��H��萴�D�\$H�HD$0H��H�D$0H9���D�\$L��H��A�W A��(t|D�\$vfA��<tRA��{uA��D��A�}A9�u�A�GA9GtH�|$0L��H��� ��H�HD$0�D$,1�I��H�D$8I�����A��D��A�>�A��'�'DD��A��D��A�)�A��(t�vaA��<t�A��{�t���1��v���1�L�T$H�L$8H��M��H�t$0AWD��jL�L$<�]��ZY����L�D$0L�T$����D�#����1�A��'����1���������I�^IcGA9GtL��H��H���4��H�H�A���A�T$���]�A�GA9GtH�|$0L��H����A�T$D�L$H�HD$0A�H��H�D$01�A��P����A�F��C�A�tHL��H��H��A�W A��L�D$0A�GL��A9GtL��L��H��臲�L�D$0H�I�A��^tBA����D�#��H�T$0M��H��L���{D�\$�\������A�T$D�\$�~�1�A�~L����A�FA���1�H�|$0M���H���u������YH�T$0�A�A�FH9�H��D�A�F��R��@�N���A�GA9GtH�|$0L��H��許�H�|$0M���1�H��H�HD$0���A�ą���H�|$0H9�s#L��H��M�oXA�W L�����A�Յ���IcGA9GtL��H��H���:��H�H�|$0H�H9�vH9�rA���L��H��A�W ��}u�A�GA9GtH�|$0L��H����H�HD$0A�H��E�f��[��o����X��,����N�I�Uh���0����;�A�L���)��8����&�L����|$A�WX��t1��J�D$L�D$0D�X�L��A���w�I�E�@�i�A�GA9Gt'L��L��H��L�D$D�\$�5��L�D$0H�L$D�\$H�I�<H�|$0H9�sH�L$L��H��A�W H�L$A��H�L$L���D��A�WX�����|$-H�L$uH�L$0H�\$0H�L$8M��H��H�t$0W�(jL�L$<�{��AXAY���+�H�D$8I�^A�H�\$0I�F �D$,A�F,A�F(����H�T$0M��H��L���(�d�����:������A����H�|$0M���H��蕆�����|>�v���H�T$0�A�A�FH9�H��D�A�F��o������.����d��AWAVAUI��ATUSH��H��H�L$dH�%(H��$�1��H�9�t$���#A��H���
M��L��Hc�H�>��1�1��G���D�I�EH��$�dH3%(D����H�Ę[]A\A]A^A_�@I�A�@�3D�NE���}L�t$H�{I�6���I�EH��u,��fD�����SH�uI�}�7�������H��L��L��H����������u�H�sI�I�}�q�����L�|$`�CI�WL��H�ֈD$`H�T$�X���H���
�HA�I�E�0����'
�CI�}L��H�T$�D$`���xKA��H�U�JD9�!�B9�tI�EH�pH�x���A9��"H�t$H��L��H������y�A������ˏ��I�EH����E1�H�t$H��L��H����A�����M���A�A����@���1ҋsA���{��輏��I��H���p�C A�GH�I9G�sM�UA����b����L��L�T$�@���L�T$Hc�L�׉L$�,���A�G@L�T$A��umA�B@ufH�E�@t\Ic�H�5�
Hk�Hȋ���tD���H��z4H9�4t+H�dF4H�5�
H��D�\$ H��1��
���L�T$D�\$ E��x�L$����A��A����M�W�S$��t�謍��H���AL�xI��M�}���H�|$L��L������A��������D$�̍��I��I�EH���D�L$1�1�I��H��D��������%����{D�L$��tA�N�E�$���A������H��L��L��L���G���A����������g����I�AM�qH�|$H�t$�HH�D$L��L�L$ H�A��H�D$(H���?fDH��L��H��S A��HcC9CtH��L��H���b��H�L�tE9���L��I9�w�L�l$H�\$H�l$ M��M��DH�|$(L������I�EH���H�D$L�0E1��;���fDH�L$H�t$`H�����A�ƅ��
I�u�F�	H�F(H���H��8��D�xD;x��A���wD��D�������H��T������DE�E1�B�T��ti�J�����A������ȁ�UUUU��%UUUU������3333%3333Љ����%Љ�����%�������F�<�I��I�� u�A����:H���2��H�|$`�(��1�1�迷��A�����I�EH���l���H�uD���5H�D$M�qH�8H�|$PI9���A�L��L�ƉD$A�V ��?��D�uA�ƀ���褊��H���D�pH��I�E��~��A���D$L�����I�ED�HI�}�)L�t$PH��L��H��L������A���������I��H�|$`M��L��H���A������I�EH�T$`�8��H�PI�M�A�������H�D$PH�L$E1�H����fDD�v(E��x�v,��tA��A���E\E�tE����H��[5L�{ H�SH���gH�H�
}[5D�pE1�H�
H�@ H�PL�xI�E�EX�g���f��~��	��������A������������D�uH��~A��H����H�H��Z5H�D�pE1�H�D�xI�E��@I�A�@���������1�1��x���I�E�����s���I�EH���f1�1������蘉��H���OI�UE1�H�PI�E���I�AL�t$z�
L��H��P0A��������H�EMc��
K�4>H��P0A���������Hc�L��L�L��Դ��I��H���>�H�o���I��H���H�E�x��I�~(A��
H��
����H�E�@|��1�L�����H��H����H��L��H�D$�շ�H�L$H��H�����H�D$腇��H�T$H��I��I�E��H�PE1��i���@��F��I�EH���K���f�A��������DI�A�@|���݇��I��H���wD�u�����A��I��H���(D�pE1�I�EL�x�����~��I�EH��t��SE1��P���f�D�~�~0H�v�V�NA��~H�s L�5~X5M���
I�H�kX5I�E�~I�F(��tA�F��tA�N A�~0E��~`A�W��}\H��L�MhL�D�@Hc9�H���H��ID�H�<���H��L9�u�1�A������A�T�H��A9��M�uE1����1�1�����I�EH��������SH�uH�����A��������L�t$���fDA�������L��蕭�DI�E�3�����u�H�EH�T$XH�t$PH���P`A�ƅ��l�E�_H�D$X�8�QH�EH�=W5H�D$`�C�D$h�C�D$lH����H�t$`L���r�������T$P�KL�|$X�T$�L$�<����L$�T$H��I���H�����t�HI�FI�FI�FI�F ���M���A���~uD�\	A�A�A�IIc�Hc�A��I�<�;wB9�w	�E9�t>���pA��I�A��A��B�������Hc�D)�E��A��E	T�;v�A��E9�u�A��ɉL$������H���t����L$L�8���H�HI�F(M�u�A�N轜�foD$`H�=�U5L��H���r����DM9�����H��L��L���S ��E����L��I��I��L�l$H�\$H�l$ A�FA9FtH��L��L��H�L$�%��H�L$H�L�4M���������@A��E1��P�DH�#�
H�=j4H�r��PPA�ƅ��~
I�}��������H�|$`�EtH��H��L������A������H�|$`�Ҫ����DL�t$PH��L��H��L���B��A������I��M��L��H��L���A�������H�D$PH�L$A�H��`�A�2�����DIc�H�t$H���'��H�t$H�������I�F(1�����H��A9���%���@H�|$`���E���f�fDH�E�@�&���H�|$PA�FA9FtL��L��蘟�H�|$PH�H�H�|$PI9��A�F���xL��L��A�V H�|$PA��A�FA9FtL��L��D�\$�G��H�|$PD�\$H�H�A�C�H�|$P��W�VH���
Hc�H�>��H�E�@�7�D$%����A�~�D$��L��L��A�V A��A�FA9FtH�|$PL��L��D�\$��D�\$H�HD$P1�L�l$L���
M��H�\$ A�̋\$D�|$I��D�ݍE׃�O��Ic�L�>��A�H�|$PI9���A�F���vL��L��A�V H�|$PL��
��A�FA9FtL��L���(��H�|$PL���
H�H�H�|$P넃�)����:u���L��H�\$ E�?�EM��L�t$PH��L��L��H��L�l$�D$���A�����e�I��H�|$`M��L��H���ZD�}A�����;�����H���8����L$E1��HH�T$`I�EH�L$H�PH�D$PH���E����������I�G�@�pE���g������I�G�@�QE��������I�G�@���E���������I�GA���@�t	E������E������pE1��L���I�G�@��E�����矀��*���I�G�@��E����������E����
�����H�E�@ ��A�~��
L��L��A�V A��H�|$PA�FH�|$A9FtL��L���%��H�L��HD$P�D��A�VX����A��<tA�����A��'���H�D$PH�L$XD��I��H�t$PL��H�D$ARjL�L$\薴��A[A_A�����W�A�~H�|$P�
L��L��A�V A��A�FA9FtH�|$PL��L��耛�H�A�����HD$PA��)�	�H�}HH�T$XH�L$`H�t$聭��*H�UH�|$`�B t8D�M\1�L�EhHc4�D9��~H���H��ID�H�<��eH��9�ҋ��D$L�"}��I�EH�������T$LH�|$�P���I�E�H�~�H�E�@@��A�~�b
L��L��A�V A��A�FA9FtH�|$PL��L��D�\$�}��D�\$H�E1�HD$PA��<��H�D$PH�L$XI��L��H�t$PH��D��H�D$ jL�L$\����Y^A�������H���p��A���D$L�����D����D$(A��~����	L�uHL�T$XI�FXH�D$ L��H+D$H�D$H���.
H�D$`H�|$ H���zH�t$L��H�L$`D�L$<L�T$0�h�L�|$`L�T$0D�L$<M���cA�G����
H�U�B	�z��A�G���E
E�wA9��
A�GI�W ��H�D���D�u�b{��H�������L$L�HD�pI�E�H���|$(t
���	E�E`���
��I�E��H�EE1��@��l���A������e�H�E�@��t騀tXA�~�6
L��L��A�V A��L�|$PA�FA9FtL��L��L��D�\$�{��D�\$A��<�
A��'��	L�|$P�D�u�z��H�����D�pH��I�E�n��A���D$L�����A����I�ED��D�H���	E����)z��I�E������I�E��A�~�%D�\$L��L��A�V D�\$��L�|$PA�FA9Ft L��L��L��D�\$�L$薗�D�\$�L$H�HD$P��=���!�H�E�@������L�|$PE1����f�A�N��l�H�t$(�L$ �T$�|$�x���|$�T$H��I�ƋL$ H�t$(������H�T$��x��H�T$H�������H�t$H��L��H��E1����A��I�E�`��
�f.��;y��A�����I��I�EH���5��M�sI��1�H�ǁ��L���A������D�CE�����A�N����x��I��H����I��1�1�D��H������E1�A������A�O�x��I��H����1�1�I��D��H��H�D$�̎��L�T$��A����1҃�1��y��L�T$H��I���HL�P1�H���w��H��H���9H��L��H�D$�w��H�T$H��H���
�H�D$�w��H�L$H��I��I�E��H�HE1���@L��D�L$L�T$莟�L�T$L��聟�1��z��1��s��1��l��D�L$E������K�I�v�
�
H���#y���U�M�N(H��A���L�Ϻ�L�L$�J~��L�L$A�H��) �( L���*~����A������$�1�1�E1�L��H�L$H�T$�ў�L���ɞ�H�L$H��輞�H�T$H��诞��Z�1�1�E1�E1�E1�L��H�L$H�T$L�T$膞�L�T$L���y��L���q��H�L$�f.���u��H���5���H�|$`D�L$�>��D�L$��E���Z�I�rI�zH9��I�H�EHcH9H�H��H��H��H)�H9��#�H��H��L�T$�T��L�T$H����I;B���I�rH��L�T$H�D$�V���H�T$L�T$H���
A�Bt�H�{$I�RI�G��I�}1��u��I�EH����1�L��H�D$�t��H�T$H�BH����L�h�9�H�P�8�D���C$����L���H��/��HcQ;U\�b�H���H�uhH��HD�H������:	���1�1��}���I��H����1�H�����I��H����H�|$`H����I��H����I�EL�p��1�1�E1����M���Z�I�F(��
H�=g,4�k�H�3F5H���M���A�����������A�������A�������A��H�A��=�A�G��u�A�G�'�L��L���~������0��kq�I�E1�1�E1��*���1�1��!��������M����A�������D�?�����������E1����D�L$0�Æ�D�L$0H�D$ I�FX�(D�L$0�6��D�L$0H��I�����I�FHD�L$0HcxI��H|$���D�L$0H���ZH�T$H�t$H��D�L$0趄�E��D�L$0I���$H�|$A�N�H�8H�LH��L��H��H9�u�M�H�|$ L��L��D�L$�Ye�H�D$D�L$I�G I�GI�GE�O����A�"������D����D��V�H�D$H�L$XL��I��H�t$P�(H�D$PPjL�L$\�٨��A��XZE�����H�E�@ t!HcD$L9E\|BH���H����H�<�t+��q��I�EH������T$L�P�i�����A�0����:�1�E1����1����1�E1�E1�����1�E1������ �}�I�E����u}�I�E��E�I� D�L$Ic�H��蔑�H����I�G D�L$E�w����� D�L$�*��I�G H�����A�WD�L$A�G�D�H�����A�G���s����q���H�=�]4H9=ƈ4��H�5A)4H��D�\$ H��H��H�5�(4L�T$L��H�5
1���h��D�\$ L�T$���D�����H�A�HD$P��A��M��L��H�\$ L�l$D�|$�gp��H�����D�pH�t$H��H��H�T$PD�uI�EH��@L��E����A��������H�L$I��H�|$`M��D��H���D�uA���������I�EH�T$`D�H�P�W��1�1�����H��L�T$衍�L�T$H�I�RI�rH��H)�H9����H9����H�E�����o��H��t0L�xI������I�R����so��H��tL�xI���K���L���j��A��������H�L$XH�T$�'���H����A�'������H�Uh����H�T$L�Ѿ%���H���ρ�A�%����t��E1�L���	��L�����I�}��I�EA������E��A�*����:��D�?��H�D$I���L���Z�A��������AWAVM��AUM��ATI��U��SH��H��(H�L�|$H�4$L���l���…�����9�H�|$���u��
uH�;H��(��[]A\A]A^A_��1���m��H�H�X�#1��D$��m���T$H�H�X��t�9�t���
t�H�4$��M��M��L��L�������…�x@H�|$�?u�H�;H�D$H�XH��u�;H��H�KH��u�H�\$H���f�H�|$�$裕�$�B���H����AWAVA��AUM��ATM��UH��SH��H��(H�H�D$H�<$H��H�D$���H�|$L�$��A��xCA9�t1��
tD�7��A������������D�A��H��(D��[]A\A]A^A_ÐI�:��H�|$����@1�L�$�
��L�$I�H��H�$fDL��L��H��H���W���A�Dž�x�H�|$M��M��H��D��H�����A�Dž�x�H�|$1�贜�H�$H�H��H�$A��
t�D93�?����N������AWAVI��AUI��ATI��UH��SL��H��XH�yXH��t1�H�5�_���Hj�H�CL�|$H��L��H�C L��H�CXH�C`�E<H�C8��E`H�C@�CH�EHH�ChH�CH�EPH�CpL�s(H�CxHǃ�Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�ǃ�H�CL�c0H�kHI�EL�t$L�t$L��������-1�I��M��L��L��L�������x�CX��$�S\1��D�S\�UH��X[]A\A]A^A_��D�#��j��H��t7D�`�@I�UH�P�S\��x'H���H��hH��HD�H�I�E1�뢋S\�����똸�����f.�@��H��tH��R4H�81��f.�H��R4H�=rW4H�81��ff.�����o�oNOH�F H�G ����7�f����w�����w�����w������f����G�����G�����G���������wH�
;�
��Hc�H�>����W$1��f��W 1��f.��W1��f.��W1��f.��W1��f.��W1��f.���H������1��f�����fD��H��N5H�H���f.���H������HE�H�:����H��H��wH�G�
H���f�AUI��ATUH��SH��H�!N5H�L������t~�<:u@H���E<:t�t^�EH��<:te��u
�_�<:tH�߾����_V�H�H����u�H��H)�H��H�����H��A��L��H��������u�H��[]A\A]��1���@��SH���#Y�H��H���a�H��[���H�GH� t	H�GH��t�8.u�x/t��t�H���ff.����H��H�=�����ff.�f�ATI��USH�H��t!L���y��H��H�@H��[]A\�"��f�H���l�H�EH��H�@���USH�_H��H� tH�_H���!��Ņ�x���ԕ�H���Lp�u$H����[]�H�(U4H��H�5&�
H�81��dU�H�
U4H��H�5�
H�81��IU�f���AWAVAUATUSH��H��L�/H���i�H�|$H�D$�}R�H�=��
D�cH��H���������H��O4L�t$H�(H�k H��L��H�=�#�C�Lw�H�ËD$����E��tH��u3H�TO4H9(uH�ĨH��[]A\A]A^A_�f�H���ȁ���fDL����~�H��t�H��H�=����r��f�1�1�H���TT�A�Dž�xb��L�t$�ѐ�L��D���聀�uB�D$(%�=@tKH��1�D���r�H������H��N4H9(tH���4��|$�i��S�8菖�H�|$H���R����S���m��H�|$H���0����H��H�|$H�t$�i�H�D$H�0�� u1H��H�P��Hc�H9�u(1�H�=0�
�N�H�D$H���fDH�PH�p��H���vQ�fDH��觅�uH�����t�����uH���H��H��tH�����H��H�K4H�5��
H�81���R�ff.����ATI��U��SH�$65H��t/���L���H��H���y�H��H���O�H��[]A\���H�=T
�G��H��H��55�ff.���SH��55H��t'����H��1�1�H���;y�H��H���0O�H��[��H�=�~
���H��H�m55�ff.���ATI��U��SH�D55H��t/���L���H��H����x�H��H����N�H��[]A\���H�=�~
�w��H��H��45�ff.���ATI��U��SH��45H��t/�B���L���H��H���bx�H��H���WN�H��[]A\���H�= ~
���H��H�}45�ff.�AU1��ATUSH��H���H��T`���g�A���w�A���~�D9�t�K(A9�t?�K(��uGH��G5H�����C`�����Cp�����CPH��H��[]A\A]����tŋC(��t�D�S$����C$�H����u��u?�� H���H��J4H��H�5X�
H�81��NP�H��J4H��H�5%}
H�81��3P�H��J4H��H�5J�
H�81��P��AUI��ATUH��SH��H��H��uH���]�H��H��H���2��H�+I��H��t$H�5P35H��t+1�H��L���Ya�H��u0L�#H��[]A\A]�D�H�=�|
�_��H��H�35�H�,O4H�L��H�5}|
H�81��eO�D��AUI��ATI��U��SH������Hc޸H�=�~
L��H��H��HN�H9���€�����H��
�
H�=&|
L��HN�H9���€��������CH���H�=�:
L��HN�H9���€���������H���H�=�{
L��HN�H9���€����1H��H�=�{
L��HN�H��H9��������H���H�=�i
L��HN�H9�������yH��
�
H�=]{
L��HN�H9�������`H���H�=>{
L��HN�H9����������HH���H�='{
L��HN�H9������u#A�MH��[]A\A]�f���	~[���2L���H�=�}
1�迏�H��H�=�}
1�[]A\A]駏��A�MH��[]A\A]�A�M�f�Hc޹
H�=Vz
L��H��
HN�H9���������A�MH��[]A\A]�@A�MH��[]A\A]�H��H�5z
L��HN�H���FN��t���fDA�M ����fDA�M@����fDA�M����H��H�=�y
L��HN�H��H9������t��������9���f.�HcθH�=�y
L��H��HO�H9�����������A�M�z������I��A����HcƹH�=ay
L��H��HN�H9����������H���H�=8y
L��HN�H9��������toA��t%H���H�=�pL��HN�H9������tWL��D��H�=Z|
1�黍����HcθH�=�x
L��H��HO�H9������u��
���
�@�����Ð��I��A����HcƹH�=qx
L��H��HN�H9����������H���H�=Hx
L��HN�H9��������toA��t%H���H�=�oL��HN�H9������tWL��D��H�=�{
1��ˌ����HcθH�=�w
L��H��HO�H9������u��"����"��@�ÐAWAVAUATUSH��(H�H�|$��I��H�A5L�8�{�H�-�-5I��A���ALJ��D$H����L�d$H����������H���Z�L��H��H�D$�-U�H��C4H�|$H�H�G@��u,H�����t#H��у���tH�р�H�H��t��t[L��H��L���g�H��� �y���H�{�y���H�D$H��D$A���H��([]A\A]A^A_���;~��f��H�=��迎�H��H�],5�����H�=l,5St-H��C4H��H�8����H��?5H��H��]�H��[�H�MH4H�5v
H�81��H�ff.��AWAVAUATUSH��HH�|$��D�L�(H�D$A�� ��I��L�pA���%H�D$(H�D$�I��I�F�H�|$H�D$(�l�8-H����I���x-�OH�D$(�}H�]@���V@��=�:I��E1��1@��_t
�5V��RA�I�G@��t'@��=��I��@��-u�A�A�I�G@��u��E$E����H�t$(H���>��M���5���H�L$H��� tH����L)�H�X��H�AH�D$L)�H�X�H��tH�|$H���"X�H���u�H�D$�����H��H[]A\A]A^A_�f��I��tu�H�D$(�E$E���g����E���[���fD<-u�_H�����u��>���f��x������<����EH�}�u�H�D$(�E$����H�D$L�hL�p M���/����O����#H�=�w
��S�=L��H��H�D$0�V�H��t;H)�H��H��H���Y�I�F��H�t$0H�D$8H�EA4H��}_�H����H��H���:`����AWH�FL��AVAUATUSH��8H�$M���`
L�fM���S
A�<$-�H
A�t$@���9
�L$I��H�-�
H�|$I�\$L�5��
@��y��@��HcD�H�>��fDD�T$E����A�E�{tH��H����S����L�4$I��I�FH�$M��~M�fM��tA�<$-uA�t$@���i���H�D$H��8[]L)�A\A]A^A_�D�|$���NA�M, �sH��@��y�@���D@���t�����$H�MD4H�5�v
H�81��D�@H�SH�T$�F�H�T$H��sH������f�A�M H�S�����sH�����@�D$����A�U(A�u$H�=�q
��A�E����A�E���A�U(A�u$H�=]�
�l�{��I���cH�D$H��8[]A\A]A^A_�@D�L$E��u0A�EA�EH���3����f.�D�D$E��t�H�/C4@��H�54v
H�81��jC�f.��D$��u�H�1>4A�EH�H��?4H��sH������D�\$E��u�A�U(A�u$H�=��I����H�{�
��L�4$����@�D$���^���A�M,H�D$L)�H��8[]A\A]A^A_��D�d$E���,���A�U(A�u$H�=Sp
��{I�G��pI�}@H��I��L�4$H���~H���\�I�}@�H�5�
�U��.���fD�[P�H��H��[D�H��3���@�D$�������A�M,@H���3���D�T$E���t���A�EH���3�_���fD�{H�K�.H�T$(H�ϾH�L$�_�H�T$(H�L$H����H�L$�C�H�L$H�H���f.�I�uh1�H��H��n
H�=�c�S��3�����{H�K���A9E$}A�E$�1H������D$�������A�u$A�U(H�=�n
H����A�E�3�u���@A�U(A�u$H�=�|�d�{��I�������H�$H�xH��tH�5L��g�L�4$I��I���~���fDD�D$E������I���{L�4$�X���H��H���$N�1�H��H���7{�H��?4H��0�����C��������A<4����Ic�L�>��@�{��I����	H�$H�PL�pH���x	H�׾:H�$�P�H�$H��H���NH9��E�{��H���:H���jP�I��H���DH9��A�x��A�|$-H�sm
I�HH�m
H�5�m
HE�H� ?4H�81��f?�fDD�L$E�������{�xI���.	H�$H�XL�pH���	�;�	H����M���I��������|$���n���H�T$(H�߾�"]�H�T$(H�=�����u
H���H�|$'��D$'�}�H��94H��3����@�C���~<
�lL�s�
H�5�k
L����������H�5�k
L����������H�58l
L����������C���6<-�.<=��H�{�{L�4$�����%I�UH�5��I���@����f.��{������
����@Hх��"�������H�L$�?�H�L$H�H���1���H�)=4H�5�o
H�81��h=��A�M,A�E ����fDH��I��L�4$H������H�5��������f�H����H�$I�}@I��L�pH�XH�������1��sJ�I�}0H��I�E@�i���H��j
I�E0�Y����H��74H�����D�L$���NA�M,I��L�4$�r���f.�H��I�uXH�=�^H)��j����H�$I�}xI��H�sL�s�L��/���H�=�]��j�I�}XI�EHuI�EX�sH������H�SL�4$�����{�����L�l$I��L��L)��#���f.�H�sI�}xI�����L�4$���fDH��L�4$���H�T$(�H��H�L$��Y�H�T$(H�L$�H��HD�H��F���H�L$�=�H�L$H�H������������H�5ڊL����������H�5G	L�������u�C	���S<=�K�H�5(i
L����������H�5i
L����������C��t<=��H�S�����{L�4$����tH�U:4H�5^l
H�81��:�@I�uX1�H�=�\�n��i����H�I��H��<�L�4$H��,����C����<-��<=�����H�{	�{	L�4$������I�UH�5��I���M<����H�=�g
���H�=�[���H�=K����H�{������I���>H�w94H�5�g
H�81��9�fD�H�=S�
�G�H�x44H����H��I�uhH��H�$H)�H�=�[�c�L�$����I�uh1�H��I��H�=�[�A��$�H�{	������I���H��84H�5xj
H�81��9�fD�C����<=���H�5�h
L����������T$���|A�M,I��L�4$��H�S
��tG�{
L�4$���������H�V84H�5j
H�81��8�DH�$H�xL�pH�����~���I��t�H�$H�PL�pH�����H�S�����{L�4$������I�uh1�H�=�ZI������H�$H�xL�pH��������H�5Gf
L����������H�5e
L�������u]�D$���lA�M, I��L�4$��I��u"H�[74H�54i
H�81��7�f.�H�$H�PL�pH�����1����H�5��L�������u�C���~<=tzL��H�=td
�U��
�|$��H�D$A�M,L)��D�A�E I���'9�L�4$H����I��t_H�$H�PL�p1�H�������%����|$�H�{�����{L�4$������I�U,H�5@�I����8��j�L�4$��H�064H�5Jd
H�81��o6�H��H�=d
1��]�H�64L��H�5-i
H�81��C6�H��54H�5�c
H�81��+6�H��54L��H�52h
H�81��6�H�=�c
1��R]�H��54H�5Ad
H�81���5�I��tH�$1�H�yH����H��H�$��L�4$����H�d54H�5�g
H�81��5�AWA��AVI��AUATI��USH��(H�D$�
fDI��A�<$�a�u�A�<$uH��([]A\A]A^A_�L���B�H�xH�D$��P�1�I����P�I�E H�T$H��I�EtI�E� H�XH��L��H��L�d$�X�L��H��H�D$�BH�;tmDH��L��H�\$�#H��;@��u�If�H���;@��t4��`�t�;t&�H���	DH���;�`�u�;u�H�]�� ��H�����L��H��H�D$�G�H�E uxL�eH��tLD��L��L��H���/�H��~5H)�H��~-M�$�I�$�8-tH�P�I�$�@�-I�$�xt�H��I���H��1��:E�L��1��0E�H��([]A\A]A^A_�L�e�H�]H���R���ff.���H��t�B��f��ff.�@��H��tH�5����������H��tH�5����������AWAVAUATUS��H��H�=�8��@�I��H��)5H�H��������H�=ia
��x�H��6I�Ā;t@@H���@�H��H��I���r�L��J�\+I��H��H���y�L��H����m�;u�H�=�7L����q�H���-E�H�=a
H���Ix�H��H��H��+4H�8H��[]A\A]A^A_�^�fDH�=�`
�-�H���7���H�5T��H�������#������1�����D��UH��SH��H�|$0���H���~m�H�=��H�l$H�\$H�$�D$�e�H��H����H�={��H���G�H�ĸ[]�f���H���`�H��H���W>����H��t?USH��H�R(5H�+�b0�H�H��H��H��H��[]�������USH��H�(5H�+�a�H�H��H��H��H��[]�d�@��AWAVAUATUSH��8H�D�oL�gH�o H�D$H�G�_H�D$H�?5H�$H����E����A�|$P����H�@+4H9(����O�I��H�����H�=_
��=�L��I���g�L�4$M��H��H���1�L����A�L�|$��H��H�t$L���N?�L��H���CQ�L��H��H��1��A�H��H��8[]A\A]A^A_��'p�I��H���m���1�1��Q=�L��H��H���C;�H�t$��H��H�|$H��8[]A\A]A^A_�Q8�I�D$HH�D$I�D$XH�D$ I�D$hH�D$(��E�H����f�H�4$�H��H��1��A���EA�D$����A�T$(A�t$$H�=�]
���A�D$@H����s�H���\L�(��I��M��A�� �-L��H����H��~ŀx#u�H�xH�@�8!u�H�5j]
��t�H��t���H�xM���7I�GH�H�I�G�I��� �9H��I�G��HЀ8
u�H�59]
�t�H��tH�x1�L�������H�=]
��;�H��H����.�GH���.�H�|$uI�|$HH���OH�|$ uI�|$XH���*H�|$(uI�|$hH���A�D$,�����Q���I�|$8�#Y�I�|$x���8���@H�x�����H�x�?#�����H�G�����H�=~��ns�H�$H�5����)0�I���
���L��I�OH�����I��� ����I�GI�WH�����H���a�H��G��H��u.H��'4H9(��H����hZ�����1����H��H���|-�����2��A�D$p����#��A�D$`�������H��#5A�D$PH�������H�=O[
1��2�H���a�H��Ct.�H���D���H��H���-��4������t���H���8q�H��t;L�(I��A�� u3H�xH�5�Z
��Nr�H�xH������������1��%���H�xH�5�Z
��r�H�xH���F�����ff.����S�.�H�
O��1�H�=�Z
H���&���-�H�
2��1�H�=�Z
H���&���-�H�
��1�H�=iZ
H���t&��-�H�
�)4H���H�=KZ
H���R&��}9�H�=;Z
H���>4��i9�H�=.Z
H���*4�H�+"51�H�
Z�H�=Z
H�H���&�H�31�H�
8�H�=�Y
H����%�H��%41�H�E��H�5�Y
H�;��a�H�;H�5�Y
�H�0����a��6'�H�=�Y
[H���6I�fD��ATA��USH��H���	'�H��H���Q�E��~]A�D$�L�d��H�;�p)�u,H�����t$H��у���tH�р�H�xH�t��t"f�H��H��H���qe�L9�u�H��[]A\�H��H�D$�C_�H�D$��ff.��AWAVAUATUSH��H�$H��xH�t$Hc�H��dH�%(H��$h1��D$H��t1�H��I����)�H�I�Ɖl$H�D$H�� 5L� �C,��(	�C��H�{H���C,��h��xH�{@�}D�\$E���7�C �D$����H�=�W
H�{0�W�H�C8H� �H��H�C0�{$��h���{$����*,�+�H��H��5H��H�H���Y4�H��5H�H���c;��Nd�H�D$ �C, �H�{XH���:H�{hH���H�{HH�����{`H��x�h�H���_�H���Y#�{p��x�h�H���_�H���
M��Cp����H�{8H��E1��3�H�{8��:�H�5H�L���I�NI�H�L$�k�H����I9���H�D$J�<�N�,���X�H��H���W3�I��I� ��H�D$N�(A��u
I��������I�I���� u�M;~�%I�F ���k$�������H�=�V
�"�H�����L�{HL�kX�H��H�khH�CXH��H�ChH�CH��M��tL�{HM��tL�kXH�������H�kh���H�D$H�8H�{0H���C�?�:D�SE�����l$H�D$���DI�F �����L��L��L�D$(��B�L�D$(��I������H�ƃ�`H��`���I�0��`H��`����L��L���U;������)�C����(�H�=�T
�l�L�-|4H��I�}�*�H�t$�|$��-�D�E��~H�����H�5�	5H����I�}�1Y�H�{@I��H���QH��5H��H�L���CP��x���f�H�{@H���C1�C,�����6L����P�I�E H�S@�H�s0H�|$ H�H�@ A��$�H��I�D$x�:]�A��$�I�D$xI��H�{8�P�C, ���{`��x�e�H��H���\�H���# �{p����ce�H���k\�H����I��>�M���5D�E��~H���u���C�C,@���{�����s���.�s,�ƀ��I�E L�C8�H�H�@ A��$�H��H�{@I�D$x��L��L����8�A��$�I�D$x�C-�EH�D$�CL�%���H�-���L��H�=�S
��HE�1��Jl�SL��H�=�S
��HE�1��0l�KL��H�=�S
��HE�1��l�{$�(�H�D$H��$hdH3%(�XH��x[]A\A]A^A_Á�L���\�H�[!4H��H�;��"�H�;�H�먐H�C0�8-��I�E H�L$ H�=�H�H�L$0�D$@H�@ H�\$HA��$�H��I�D$xH�C8H�D$8�*W�H�t$0H���H��H�=����9�A��$�I�D$xI�����DH�@�����0�C,��H����������S&�H�{@�����H�{0����H�=�V
1��$��B���DH�=�Q
�a��>��������H�
t5�CPH����������Cp��������C`����H�=�Q
�h�H��H��5�.�����H���Cf��o���fD��^�H���������F����H�s0�H�=�P
������K����L�ƿ�'���L�C8H���-���H�=lP
H�{0�����I�E �KL���SH�|$ H�H�@ A��$�H��I�D$x�PH����A��$�H�5���I�D$xH�=/N
I���L����H�57��H�=N
�{L�1�H�5���H�=�M
�fL����H�5:��H�=�M
�NL��+���f�I�E H�|$ L��H�H�@ A��$�H��I�D$x�FA�A��$�I�D$xI������@�x�����S(�s$H�=�O
������H�{8�K�H�{x�.�����f���H��5�H�5�S
@�ʼn�1�A�@��H�L�=~�3L�%��
��L�5��
�hS���H�
	S
H���
L��Q�t�D�O���~XL���E1�P��1�W�VH�5�N
AR�S�H�� L9�t<A�GI�OI��A�
����L�H�Hȅ�u�E1�E��L��1�A)��fD������L�5a�3��H�-�
I�^PH�
�R
L�-��
I������H�H�D�O��|:�Hȃ�OA�M��1�A)�P��1�I��ARW�VH�5N
�RR�H�� L9�t9A�vA�F
I��f.�M��E1��1�����f�H�=�M
�#�H�SR
E1�A�PH���H�5�M
UH�H��jP1���Q�H�� E1�H�BR
PH��A�	�UH�H��H�5YM
jP1��Q�H�� ��?���H�=�M
�"��)���H����P��S���H�==M
H�l$`�T�H�C0H��t(H��H�D$�H��H�8�/,�H��H�C0H�����H�=�L
��H��H��H�D$H�8�+�H��H�C0H�������H�D$H�8H�{0����u,�D��ATUH��S��H�=L
H���~H�>H��K
H��HD��n^�H�/5H�H���H2�H�	4H��H��0�H�����H���H����H���I����H��L��[]A\����AUATU1�SH����H�\$�[5H�H��1�H�T5�I��u���1�8	@��H�ھ�E1���H��u��E1�8	A��H�ھ���H��t$D���uu����H�Ĩ[]A\A]���[�8	u�H�\$���H�߽�5�uË|$��3�E�����|$����������H�\$1�H��D����4�A�Ņ��n����|$�3�l$���Y�����1�D���+�|$�q3��?���@H�\$H���{4��k���H�Ĩ[]A\A]�D��+�|$��t�����������+�|$�G�������3�����DH���4�����|$��2�D$���p�����A����A������USH��@��t0�+b��H��5H�(�U89�X��t#9�]8H��[]����&�����H�=�X
1��b�]8H��[]�H��4H�5�X
H�81��p�H��4��H�5�W
H�81��V�fD����fD��H�%5H��@8�ff.���H���SM�H��H�H�D����H��5H��x8�ff.���H��5H�9x8}���x8�PH�4H�5�W
H�81���ff.���US��H����L�9�}H��[]�@�K.�H��H��t3�L�H�߉��dM��H�5#W
H��H��4H�81��G���{L�H�5$W
��H��4H�81��!����ff.���PXH����-�H��t#H����L�H�5+W
H��H�k4H�81����H�Z4H�5#W
H�81�����SH����K�~ ��uH�����tH��ƒ���t��u[��88����H�����H�5N���H�=�V
�r`�f�UH��H�=�V
SH���3H����H��H�;H��tH���6�u�CH��[]�fDH��1�[]�ff.�@Hc�H��4�����4����H������H���ZVf.�ATUH��S��H��@I��I�|$�8�H�,$H��wYDŽ$�������th��t{H��$�L�����H�������xH��$�H��@H��[]A\��DŽ$���t��u����$��DH��u�DŽ$��D���f�US��H���#���H���t1�H��t
H�Ɖ�����H����[]É���ff.�@H��HH��H�Z�4H���:_�H�"�4�H��H����UH�=bV
H���SH��H�����H�UH��1�H�5�T
�Zk�f.�H���H��H��H9�t
H��H9�t�RH�

5H�:H���H�QH��H9�uH���H���H�~�4H���4��HX���UH�=�U
H���SH��H�����H�}H���c���H�UH��1�H�5'T
�j�ff.���UH�=[U
H���SH��H�����H�}H������H�UH��1�H�5�S
�Nj�ff.���SH��1�H��H��H�$H�K� �H�޿��[�H��[����H�5#L�����ATUH�-��3S1��\�H�=8S
I���	fD�]�0C�Hc�L��H��H�TH����5�H�}H��u�L��[]A\��U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�AWAVAUATUSH��H��
5H�H�� H�$H�D$ @��tH��[]A\A]A^A_�DH��H�L$0�t$H�5�H�� H���H�|$H��$H��$H�AH�D$04H�|$@H�p1��H�Hc�H�pH�`H�DH���H�D$H�D$H�t$(�H�D$(�Z�T$H�|$H���.5�H��$H�$H�T$ H���H�
5H�H�� �!�����H�$�PH�@H��t�H��$H�$H���H��	5H�L$ H�H�� H���H�xH�A������t6H�5mR
H�^�3�
@;xt$H�pH��H��u�1�H�=NQ
�A�H�5�P
H�=5Q
1��A���AVAUATU��SH��H�D$�������0E�I��H�5�uI��I�}�
<�H�D$H��t����H�Ǩu_�*�Ã�A�U���I�EH�D$H�t$��X�Hc�L��H�5IH�T�<�H��L��[]A\A]A^���X����I�}H�|$���=���@����@��uH�����t
�����t{H�|$�a'�L�l$I�mI�E tI�m�H�5�R
H����A�ƅ�u/H��H�������Å�tNH��H�=�O
1��@�H�D$����f�A�����;�I��H�D$념������H�D$���H�4M��H�
{R
D��H�5�O
H�81���H��4��H�5cO
H�81����:���fD��H��H����t@�W�t>H�=P
H�	�3��9Bt
H�zH��H��u�H���>�D�K��H�=�N
����AUI��ATA���USH���BA�A�D$�����I�}H�|$@����@��uC��������H����@����H��4���������������V��@�1��t��t��t��t����H�O
H�
�3��9X�H�PH��H��u�H��4��H�5�O
H�81�� �H������d���H�|$�3�H��H��H�=�P
�b�H�U��HD�H��������N����H�=?M
H����À��ۅ���A���*M�mI�����H�x5H�(���.L���I����1�I��4��M����1�H��H�L����A��H��L��[]A\A]�fDH�y4H�5�N
H�81�����+8�H�D$H�hH� ���H�h���@L�����H�D$H����H�|$��#�H�|$�M�L�l$I�EH�� �=H����H���$H�uN
Hc�H�>���K�I��H��trH�Q5H�5����H�(�����������H����	Hc�H�SH��L�dI��tI��4tjM������H���7�H�=QL
��I�����I�����t�I�E�ƒ����s������j���H�[4H�5L
H�81����f��H�=)K
�/�I���J����H�����1�H���A�H9��$����H�=�K
���I������I�}��I�EH�
vM
Hc�H�>��H����I�u�H�=uK
L����€����������A��r���H���PI�u�H�=K
L����€������j���E1�1��>���H��� I�E�H�=�J
H����€���t��H�=�J
H����€�����H�ƹH�=�J
�������L�����I�u�H�=�I
�����u�A�4H�5]����I�u��A��t'A�������I���������A�E��������L���5�H�D$H����H���u�������H���@����H�=�I
�F�I���a���I�u�z���I�u���I�E����E1�w+H��K
��Hc�H�>��H�5�����H�5������1�������D���G=��H��
4H�5I
H�81��=
���v���H���@�H�w
4H�5;I
H�81��
�H�|$H��� uAH�WH)�tH����H)�H��H����N�H�D$H��H�,
4H��H�5�H
H�81���	�H+ot�H�G��ff.������t+H�YI
H�J�3��;ztH�BH��H��u��H��G
�D��S1����2(��[��f.���AWAVAUATI��US���H����l:��:M�,$A���]I�������L�����I��H���M�}L��M�E% H�D$tM�EE1�A�8-M��u
M�pA�L���L�D$H�=kJ
D�L$�
�I�V��LD�L���2�D�L$L�D$��������E��E����H�O�4E1�A�����H�H�D�4H�H9��?���D�k��D$H��I���%�
H�D$H�D$ H�D$�=��SO�A9�u	E��������*-���H�CI9��H��I�<�@��u������A���~D����������I�������A���KI��4�y���M�}D�������.���5���m����O������H�|$��H�T$1���L$��L$��x5H�D$ H���4���H�/�H9�t����A,�����1���K�f������H�C�D$I9������@�D$������H���GoH���H�D[]A\A]A^A_É���ו���f�D�k��ݻI���)���M�lj��:1��i���H�CI9�t�H��I�<�@��u��g����L���X0�I���=���L���xM������H��4H�H��蚄�A������A�ǃ��A����A!�����������8�I�<$�5�H�5PE
H��H�4H�81���L��L)�t#H�|$u6L��H����H)�L��H���~J�I��H��4L��H�5�D
H�81��p�I�E��f.���H����N?�@=@L�H���ff.����H��HH���H��t<�H�$�?�@H��H�t$ =@�D$L�H�H�D$�G�H��H�H�=�E
��@����������4�D���=z�41���t:�H�
d�4�f�H��H��At�4��Ѕ�t�Hc��,��-A�4�@1��D��H�=�4H�H���H��u�DHǀ����1������H���4Hc�H��HH���H��u'��w���H��
�u)�t�`B���H��4t�����H�ω����E��E��H�������H���H9�t
H����1��H������UH�=�B
SH���WB����H�5+�H�=�B
H���.�H�߹����H�
�H�5�B
�!:�1�H��H�5�H�5=
�	:�H�߹H�z�H�5�B
��9�H��4�����H�k�H�5
H�;��2�H�;1�H���H�5�9�2�H�=-�sH�H�=?B
H���_H�H�;H��H��H����?�H�4�����H�;�H�5�	H�8�\2�H���t%�1�H�޿��H�5^���D�����H�5E���+�����H�5,��������H�5��������H�5���������aH�5���
������:H�5��������H�5��������H�5����|�����H�M�4H�8�%���H�5~���T�������
�=���un1���]�H���tNH��w9H��4H�Hǀ�H���"�H��1ҿ��H�Ĉ[]�H�ƿ����H�=�@
1���H�=�@
1���H�=�@
1���H�=�@
1��q�H�=n@
1��c�H�=X@
1��U�H�=B@
1��G�H�=,@
1��9�H�=@
1��+�H�=@
1���H�=�?
1���H�=�?
1���L�G�+��y�޸-�G��	��H��A�gfff�L�ɉ։�A��L�I�A�����)��A)�D�؃�0�A���cσ�0H�A�A�Q�H9�s_L���
f.��H��H���V�H9�u�H�D$H)�L�H)��fD��H�Gu��0A�0H)��DI���G0H�G��L����ff.���AWH��AVI��AUATUSH��L�oI�mI�E�� tI�EI�}��L�bM����M�>I�^��0I)�K�'H9�r�H�H9�s�H��L��H�T$Hc���I�EI�MH�T$H%���H	�� I�mukI�^H�*L��H�]H�uH��H��H���!�H��H�I)�u�I�I�EI�E u%H)�L��H���+�H��1�[]A\A]A^A_�fDI�E��f�I�M�H��3H�5�?
H�81����f���H���bAVI��AUE��ATI��UH��SH��H�_H�:H�{H�|$�gA��+����H�D$A�� �H��H���=�H����H��H���	�H�|$��H�L$H��� ��H��H�A��I�$H�M@��uAH�����t8H�3���������u"H������tH���t��H	�H�3H��[]A\A]A^�D�
�H��H��H�D$��<�H���Q���H����H�|$I����H�|$�"L��A�H���B(�H�D$I�����DH�AH�Q�3���1��DH��� �H�D$����fD�H���O����#���H��3H�5>
H�81��T��@��H�~t�G�t
1��f.�AWAVI��AUATI��USH��L�.H�WM�}I�mI��f�H��t!��u.H)�I�I)VtRI�T$A�D$H��u�M�}I�mI����@H9�H��I�<$L��HF�H����H��I)\$1�I$I�I)Vu�H��1�[]A\A]A^A_��SH��1��W0H�C�C[�fDAWAVAUATUSH���GH�|$H�T$(dH�%(H��$�1�f�$��f��
�:L��$��D$4I��L�\$L��L��$�HDŽ$�DŽ$�H�D$H�D$@�D$DH�D$8H�D$ A�E����L��%u�fDA��%��H��D�eE��u�I��M)���H��$���$�L�+H��L�s�L�H��$���$���~(H���?H�|$H��$�������}H�\$Lt$ E���]Ƅ$�A�����H�EE1��D$D���(L�h�E�Z��H�
�=
Hc�H�>��fDI��M)�t��?��������H�D$�@@H�����HDD$ H�D$ H��$�dH3%(H�D$ ��,H�Ę[]A\A]A^A_�H�D$L�X8M��tD����P��uA�}��$��D��H�D$(������	A��@�8��/�!H�|$(�ƒ��HWHcH��H��$�H���	����$��
A�����D��E��@��A���<$H����E���,1�E1�L��$���H�|$(���/�g����HO���D$��y�؉D$A��fDL���f�����H�t$(H�:
H�D$H�A����	��/���ƒ�HV�H�H��$�H��t
A���8�Ƅ$�1�A����&���D�<$E��H�����A����
�/���X����E1�L��$���D�<$A����CD�T$@H�t$(�F=��E�ƒ�HV�F�
f(�fT)�L$8f.C�5D�4$f��A��f/�����$�1�A�L�% 9
�f1�@��I���DE�A�m��MЃ�	v�D$�E�Z�!������C@��$PƄ$�E��1�1�D�<$A��A�L��$PL��$�@��tI��L��$�E��tI��L��$�L9�M��D�$LM�A��u$HcD$L)�Hc�Hc�H9������H��~������$���H��$�H�CH��H�C�H��$�H�P��$�H��$�����$���~CH����H�|$H��$�H�L$XD�T$P�f������>���H�\$H�L$XD�T$P�E����H��$�H�CH��H�C�H��$�Ƅ$�0H�P��$�@��$�H��$�����$���~=H���0H�|$H��$�H�L$XD�T$P�����������H�\$H�L$XD�T$P�A�����H+�$�Hc�A��H9��Y�����$�H��$��w��H��~������$�t	H��$��<$H�s��E����H��$�H��H��$������|$4��A�$H��Ƅ$�.H�C��$�H��$�H�H��$���$�����D�AH���\$4H�w��~m�S�I��D��$�Hc�L�'H�H�WH��$�A����H���SH�|$H��$��|������T�����$�H�|$H��$�D�AH�wD�d$@D+d$4E����H��$�H�HcT$DH�H�WH��$�D��$�A����H����DŽ$�Hcl$H�t$�$��I9�IM�Hl$ ���$������Ƅ$� ���H�t$(���/��ƒ�HV�L�"H�2Y
E��M��LD�A��A�����Mc�1�L��L��L�$��L�$H��t
L)�Hc�L9�LL�Ƅ$�1�1�D�<$����H�|$(���/���ƒ�HW�H�A��H�=q4
1�A��H�|$H�A�H��$��xƄ$�D�<$L��$PH�|$HM��7�H��I����H���A�$u�M��7M)�Mc��f���H�D$(�A���kA��@����/��H�|$(�ƒ��HW��\H�|$(�A������/��ƒ�HW�H�H�t$ H�0A�E������H��$������H�|$H��$��������A���&���A��@����E���EA��D�<$A��������H�t$(A��F=�������H�t$(H�VH�BH�F���H�D$(�A���6A��@����/��H�|$(�ƒ��HW��'D�<$E���I���A��A��D�<$D�T$@�3���H�t$(���/���ƒ�HV����$P���A���A���Ƅ$�+�4���A�π�+���A�mI�E��*�]#�M�E1҃�	w&fDC��H��D�TM��h��MЃ�	v�E��DH�I���U���E����A��D�<$A�����A��z���H�D$(A�����/�NH�|$(�ƒ��HWH�H��H��$�H�������H��Ƅ$�-H��H��$�A�����D��E��Ic�@��A���4$�-H��	��L��$PH��M��7H��y:H���������L��$PH��M��6H��H��H�H)�H��H�׃�0��$�I���������f�H��I��I��H��H��H�H)ǃ�0A�<$H��H��u�M��7M)�Mc��7���A�����H�D$(A�����/��H�|$(�ƒ��HWH�H��$��
���H�D$(A�����/�wH�|$(�ƒ��HWH�H��$�����H�t$(H�W0
H�D$H�A���0���A��@����/��H�|$(�ƒ��HW�����@���hH��$�H�L�#H�SH��$���$���~(H���n���H�|$H��$��g���?�H�t$Hcl$�$u7H��$�I9�IM�Hl$ H����DŽ$�H�\$���DH��L)�Hc�A��H9����H��$�H��~���~���$����lL��4
H�,$L�t$H��$�L�l$H��M��H�\$���yH����A��A��~aH���AL�.H�FH��$���$���~�H����H��H���c���;��$�A��H��$�L���yA���M��H�,$L�l$Mc�L�L�L�fH��$���$�������H������H�|$H��$�������������HcD$L)�Hc�Lc�H9����H������������H��$���$����wH�93
L��$�L�d$PH�މl$XD��H�l$I��D�t$hM��L�l$pL�l$H�L$`��D�WH���σ���~`H���OL�&H�FH��$���$���~�H���oL��H���������$���H��$�L��D�W���L��l$XH�L$`Lc�D�t$hL�l$pH��L�d$PL�CI�H��H�S�L��$�D��$�A������M���H�|$H��$�H�L$P�����\�H�\$H�L$P����DH�|$H��$��V��������)�f���e���l$8f�f.���	��	�|$4�
H�=(�H��H�CH�;H��$���$���~(H����H�|$H��$���������H�t$�D$4�\$@D�`�9�}1�D�d$@��f��A)�E���=���H��$���$�A���L�t$H�l$L�l$PH�1
H��$�I���D�GH����A��A���jH���OL�.H�FH��$���$���~�H����H��L���	��������$�H��$�H��D�G�f���H�v0
��H��$�L�d$PI��L�d$�l$XH�\$D��D�t$`I��L�l$hI���D�OI��������~_�wH��M�)I�AH��$���$���~�H����L��L���M����%���$���H��$�I�ٍO���A��L��L�d$P�l$XD�t$`L�l$hL��H�Ic�H�H�SH��$���$����?H�����p��1�I���:���f��1�L���
����A�1�L���J����d$8f.����$�T$8f��A���D$P�AN�1���f@�ǃ�f/��D$4��
�|$8f��f.���	��	f��-�����|$`�^�f/�GˆD$hA��D�T$XA���A��A���aH�T)
�t$4H�=8)
HE��D$`H��$�H��$�L��$���_D�T$XI��H��$��7L��D�T$XL��$PƄ$PL)�L����L����D�$D�T$XH��$�L)�A��I�H��$�t?HcT$4L���f��H9�s)�H�HH��$��0H��$�H9�r�L)�H���L$4��$�A��G��
����D
�E��D��N�9��.
9t$4��E����D$PLcֽg�$D�4$A���|$h��
��$�1�M���[��|$4��
A�$H��Ƅ$�.H�C��$�H��$�H�H��$���$�����D�AH���\$4�l$8f�H�w��f.�z��
Hc�I��D��$�H�L�'H�_H��$�A���X
H���IH�|$H��$�����������$�H�|$H��$�D�AH�wD�$$A���e�\$@��+\$4���R����H�',
L�|$PL��$�H�l$L�l$XI��A��H�\$�D�AH����A��A���2H���qL�?H�GH��$���$���~�H����L��H�����������$�H��$�H��D�A�H��$���$����SL��+
L��$�L�d$XH�މl$`��H�l$M��D�t$pM��L�l$xL�l$D�T$PH�L$h�fDD�_H���σ���~`H���OL�&H�FH��$���$���~�H����L��H���D�������$���H��$�L��D�_���M��D�T$P�l$`Hc�H�L$hD�t$pH��L�l$xL�d$XH�SH�H��L�C�H��$�D��$�A�����H���BH�|$H��$�H�L$XD�T$P�������H�\$H�L$XD�T$P��fD1�A�L����DŽ$�H�\$���H�D$ f�����E��$�%�H��L�#H�CH��$���$����
H��D�AH�s ��H����H�|$H��$�����������$�H��$�H�|$D�A��DŽ$�H�\$�l�DŽ$�H�\$���A���]L�t$H�l$L�l$PH�)
H��$�I���f�D�AH����A��A��~^H���qL�/H�GH��$���$���~�H��tyH��L���&��������$�A��H��$�H��D�AA���L��L�l$PH�OMc�H�L�L�gH��$�D��$�A���2A��H�qH���v�A�1�H���B���H���vH�|$H��$������e���$�H��$��KH�\$��D��$�E�����S
HcT$4L�#D9���
H�H�SH��$���$���~0H���/H�|$H��$��������D��$�H�t$D+t$4E�����$���H��G��$�H�FH�H��$��SH����$�H��$�����H���;�H���7H�|$H��$��z����R���$�H��$�H�|$D�A������/��H�t$(�ƒ��HVH�H�����H�t$(H�VH�BH�F���T$4�����D$4I��H�\$A�L��$���H�sH�H��$�D��H��A��H���w�A��D�<$D�T$@��H�|$(H�WH�BH�G���D$@D�<$�~�H�t$(H�NH�AH�F��H�t$(H�VH�BH�F�:�A��@����/�
H�t$(H�VH�BH�FH��T$ f���H�|$(H�WH�BH�G����/�9H�|$(�ƒ�HW���h���/�1H�|$(�ƒ�HW�������/�H�|$(�ƒ�HW���y�H�t$(H�VH�BH�F�`�H�t$(H�VH�BH�F��H�t$(H�VH�BH�F����d$8�D$h�d$`�[����$��T$4uYH��}
H��H�CH�H��$���$��������DŽ$��H�\$���$����H��H���yH�CH�H��$���$����
HcT$4L�&��$�H�H�VH��$�����
H���,H�|$H��$������h�H�t$D�$$A����D�t$@D+t$4��fuD�$�E�����H��$���$�A���
H��#
H��$�H���D�GH����A��A����
H���GH�.H�FH��$���$���~�H����H�|$H������������$�H��$�H�t$D�G�f�D�$A��L��$PI��7�
�L���L�g�����0H���W�u�0���E�����H��M��7A�D$�0I)�I��Mc���Ic����Ƅ$�-1ɾ-A�L�%�
���Ƅ$�-1ɾ-M�����A��A����f�T����E	��
�D$PE�T2�fMc҉$�
����$�3���H��L�#H�CH��$���$�����H���[H�|$H��$��~�����V���$�H�|$H��$�D�CH�w���\$4�l$8f��f.��u�oH�|$1�A�H�w���c������l
L�t$H�l$L�l$PH��!
L��$�I���D�IH��������z	H���qL�/H�GH��$���$���~�H��tSL��L��������{���$�H��$�H��D�I�fW���D$h-�T$`�^�1�A�H���
�1�A�H���f����-�
������UD�4$��H��$���$��{��E��A�‰D$D�D$4A��Aƒ�A��tA��Mc�D�$$�(�t$4�D$`H��$�H��$�L��$���;D�T$XI�����gA�e�EAD��Ń�H��$��ꉴ$�����A�‰D$D�D$4Aƒ��$t	�D$@A���D$PMc҉$��E��1�H�����A�����H�|$A�1�H�w�����0��$�A�L��$����H���q�H�|$1�A�H�w��D�4$��$�1�A�L�%��A����Hc�I��H�\$A�L��$�H��$�H�sD��H��A��H�����H�t$(H�VH�BH�F�:���H�t$(H�VH�BH�F������$P0u1�d$`f�ۿf.�@��E�@��t�+t$4��$����$�Hc�H�H9����L$4��� ���E����	A���D$P�fM҉$I����H�t$(H�VH�BH�F��.��H�t$(H�VH�BH�F���L��������$�D�<$1�I��H��$��P�H�t$(H�VH�BH�F����/��H�t$(�ƒ��HVH��T$ ����H�t$(H�VH�BH�F���H��$�DŽ$�H��$�HcD$DH��$�H��$�H�D$H�p��H�t$(H�VH�BH�F�%�H�t$(H�VH�BH�F�U�H�t$(H�VH�BH�F��l�Ic։�$�H�H�SH��$�������H��=H��I�H�FH�H��$���$����H���(H�|$H��$��B���������$�D��$�H��$�H�t$�K�T$4L�&��$�D)�Hc�H�H�VH��$�����H���H�|$H��$�����������H�t$D�$$A���_�D�t$@D+t$4��fuD�$�E���?�H��$���$�A����H�
H��$�H���D�@H����A��A����H���xH�.H�FH��$���$���~�H���XH�|$H�������������$�H��$�H�t$D�@�A��gA)�DOЋD$PDT$4Mc҉$��I��H��$���DŽ$�H�\$(���/���Ѓ�HC�H�D�$H��$�H��$�D��$��H�|$H��$�1�A��Ƅ$�I��H���*��Lc$E��H��$�A��A����TI9��9Lc�D�<$1�1�H�\$����H��D�AH�s ���H��H���yH�CH�H��$���$���~BH���H�|$H��$������������$�D��$�H��$�H�t$�yA��E�������H�
A�����l$PH��$�H����yH��D��A��A����H��D�AH�.H�FH��$�D��$�A��~�H����H�|$H�������������$�H��$�H�t$�y�HcD$4L��$�DŽ$�H�t$H��$�H��$�H���1��������H�t$(H�VH�BH�F�=���H���H�|$H��$��{�����S��Hc�$���$�H��$�H�t$I�֍K���H�t$(�ƒ�HV����H��$���$�A����H��
H��$�H�l$I���D�GH����A��A����H���GL�&H�FH��$���$���~�H��tSH�|$H�������������$�H��$�H��D�G�1ɿH�t$�,���DŽ$�H�\$���1�A�H���d���L��L�l$PL�WHc�H�H�H�_H��$�D��$�A���5�E�AI�rD��L���a�D��L��L�l$XL�|$PH�OHc�H�H�H�_H��$�D��$�A���E�����L��L�l$PH�Ic�H�H�VH��$�D��$�A���(���H�|$1�A�H�w���DŽ$�H�\$����H��7H�t$IԹHDŽ$�H��$��H�����&���DŽ$�H�t$�l��D$4L��$�DŽ$�H�t$D)�H�H��$�H��$�H���+���E��1�H�t$���H�\$(H�CH�PH�S�8���E��1�H�t$�\���H��l$PMc�H�L�L�vH��$���$�����H������D�_L�+
�~��yL�
�7�H��Ic�H�H�FH�H��$�D��$�A�������H��H��
�7�D�WH��
�L�H�\$H��$�D�$H�����������L�[8D�$�0���D�<$1�1�H�\$���I��D�<$1�H�\$���1ɿH�t$�%���H������H�|$H��$�������r����$�H��$�H�t$�{��DŽ$�H�t$���D$PA���fMc҉$��L��Ic�H�H��H�F�H�H��$�D��$�A���3�H����H�|$H��$����������H�t$��DŽ$�H�t$����D$PLc։$�
�DŽ$�H�t$���H��H�K
���I��E��H�9
�A���H�|$(�7��/wC���HO�7�1A��I��DI���D�GH��
���DŽ$�H�t$�]�H�|$(H�OH�qH�w�D�GH��
���D�GH��
�����}��Icʃ�
t.�����������E��A���?�D�@H�|
�s����0��ff.�f�H�������t?��~!H���H�s�3����H�5X
H�81����H�W�3��H�5
H�81�����H�=�3��H�5�
H�81�����f.�AWAVAUATUSH���)H9���H��I��I��I��A�/��/���������uD��D�D���)�9�|2H���l�I9�t\�;L��A�T$X��t(�����433�����t�H��1�[]A\A]A^A_�fDI9�vA�/H��H��[]A\A]A^A_�fDH�a�3H�5r
H�81����H�����t
���tH���H�6�3��H�5�
H�81�����H��3��H�5S
H�81����f���H��~UH��HH��H��H��H�<$�H�|$H��H�D$H�D$ H�%��f�L$H�D$0H�D$8���H�$�H��HÐ������f.���H��I��H�L$xL��$�L��$���t@)�$�)�$�)�$�)�$�)�$�)�$�)�$�)�$E����H��$ I��H��H�|$ H�D$H�D$`H�T$H�D$�f�D$0H�G��H�|$8H�|$ �D$�D$0L�T$(L�T$@H�D$PH�D$X���H�T$ �H��ø������f���AWAVAUATUSH��XH��$�H��$�dH�%(H��$H1��G1�DŽ$��D$xH�F�H�D$`H��HDŽ$�4�|$|�uH�������H��$�H��H��$����H��$��c��H��$�H�D$0���H�H��$��� ��
H��L�`��I��xH�D$���H��$�I��H���|�I�FI� tI�FH�xH�H��H�@pH)��Hx1����H�I�Hc�$�H���H	�I�L9d$�E-�D$HA�xE1�L���D$\L��M��H�D$8�H�D$I���A�?%t	I��L9�w�L����0H)�M�,L9�@H�L9�~�H��L��H�L$Hc�H�T$����I�H�T$H�L$H%���H	�I��� �vI�FH�D$(H�\$(H��J�<#�<���$�0tHH�D$8L9�}>H��H�T$0J�4+H��$�H�H����Hc�$�H�I�H�\$8H%���H	�I�L;|$�X%I�G�4�D$A�H�D$H��$�H�D$PH��$��D$ ����H�D$@DŽ$�����A�W��{�UH�5�
��Hc�H�>��H�l$�D$���-A�M�e��0I9�|@H�I9�}�H��L��Hc����I�H%���H	�I�FI��� tI�FB�(%H�L$H��H9L$��I��%���DH��4��"��H��$�������u&H�����t�����
������(fDH��4��H���&��ƒ����:�Hf.���$f(�fT�f.=���f�L�=<
DŽ$�f/���D$�����������+�D$@��D$ ��
�D$ �
�H�|$��<��H9|$s]�D$h}L�|$L�l$pH��$�L�l$0L��$�H�\$M��M��I���l$h�f�A8,$��L��L��H���8��H�I�L9�w�H���3H�5�
H�81��f��fD�D$� �1+����*���D$H�D$�PH��H�D$��{�����f.�H�D$0���H��PX����	H�D$H�5�
�H�?�3H�81�����D�D$ ��*�D$��w*H�D$�L$�PH��H�D$�0���fDH�L$@H�T$0DŽ$�H�t$H�|$���H�D$H���*H�D$���$�5�D$ ��)�D$��D*��$��L$ �D$ ���f.��D$� �*����)������@�D$��j)H�D$D�|$DŽ$�A���x*L�@��	H�L$PH�T$0L��H�t$���H�D$H����)H�D$D�|$��)�����D$� �q)���9)���;���@�D$� �Q)���)������@�D$ ��(�D$��?)H�D$H�L$@DŽ$�H�T$0H�t$H��H��H�D$ �J���I��H����(�8$�)
D�|$\�|$HD����A�GD;|$x�
)HcT$\H�|$`�D$\H�D$ L�|$H�<׉T$HH�D$H��$�@��� 
��D$ �D$ ��� 
�L$ A�W����f.�H��4����p��H���U��H��$�L�8�u.H�����t&D������tA���DT$|�T$|fDA�� ��L�xL��L���l���$�=0tL9l$8��H��$�L���s��H�D$0�D$`��H��$�H��� �XH��H�z��H�4H�T$0��H���R(�D$@tcHc�$�H9�}VH��$�H��� ��!H��H�yH�ƃ�H�H�L$0����H��$�I��Hc�$�H� �H!H��I)�A��|$��0@�� �2HcT$ H��H9��!)����L$�|$ �0O�d=L9�fDH�I9�}�L��H��Hc��2��I�I�~H%���H	�I��� tI�~H��$�H�pH� tH�pL�L�����H��$�H��$�H��$��D$ ���"H�t$0L������H�L$H��H9L$�`����D$HM������@H��4��H�����H��$�H���H��� ��H��H�x��H�4H�T$0���H���j&H��$�H��� ��H��H�z��H�4H�L$0H��$������H��$�H��$�H��$���$����$&E�&A��0�D$ �-�D$�H�L�H9�|
DH�H9�~�H��L��Mc����I�I�vH%���I	�M�&A�� tI�vH�D$0L��H��P0Lc�$��|$ O�$*�����D�l$ A�A����0Mc�O�|%L9�@H�L9�~�H��L��Hc��"��I�H%���H	�I��� �� I�FJ�< L�� M���b�����DH��4�
H�D$H��$��D$P��H���6w2�H��H�@ @H���$H��1�H��@�Ɖt$PH�D$(�D$���H��H��$���6��5�ƒ�����H��H���H���<�H�������
�r��
��H�D$�<b���
<o��<x�
H��$��
���H�H��$�L�xH�ׁ� tL�xA�7@�t$h@��-���D$�M!�l$ ��D$h+H���(!H����H�|L)�Hclj�H9��:"�D$P��DŽ$�
�D$@��!�$��@I�FH�D$(����H��$�H�H�D$@H�D$�<b����<o��<x��H�D$@H�����D$���D$�� �l$ Ƅ$��D$h ������H��$��ƒ�����@�,�f/��eH��$��ƒ�����@����H��$�H��$���)���H��$������f�H��������H��$����H��$����L�`H�P��I��A���i���H�=��	H�|$(<b�\����2H�=>Z
H�|$(<o�B���<xA�H�l�	LD�L�|$(�%���H�~�3H�5\�	H�81�����D$@-��D$ ����9D$ ���HcT$ A�N�$*��0I9�|�H�I9�}�H��L��H�T$(Hc��%��I�H�T$(H%���H	�I��� I�^tI�^Iݾ L���d���D$@�D$�$��tA�E�D$ M���H�I)�I�A�fA�EA�GA�E�R�H�xH�pH��J����D$@��!���H���H��������DljD$|�N�H9|$����D$h>�+�H��H�L$@H�T$0L�D$hH�t$H��DŽ$���L�D$hH��� �8$���|$H�t$\L�D$���|$\;|$xL�D$�G��HcT$\H�|$`�D$\H�<׉T$HH��$�L�D$@������L�D$��$���y
D�|$A��A�πI�@A�PD�|$H�D$���$�H��4���|$H���Hc�$�;D$x�)H�|$`�D$H����H��H�D$�PH��H�D$�^��$��|$H��Hc�$�;D$x��H�|$`�D$H����H�<�I�GH�D$H��$�@��������D$ �D$ ������L$"�\$ �����\$\�|$H���\��C;\$x�tHcT$\H�L$`�D$\H�щT$H����H�=_�	H�|$(<B����<XA�H�=�	LD�L�|$(��<B�+<X�p���A���E1�DŽ$�H��$�H��$����H��H=�����D$P����H���HD�1����A�H�E)�H��$�Mc��� �IH�PH�pH��$�A�����1��1fDH��L�~H����H9�}9I�?H�5��H���
��
H��$�H�I��A�� t�L�~H;~|Dž��8�D$�#�l$ �D$h+�D$@�L��M��M��L�l$pL��H+t$H��$�L��$�H��������F�D$pI�����D$H�����|$H��H��$�H��4�H��$�H�D$��H�T$0Hc�H�x�D��I��H��tH��$��4H�����H��H��4�X�|$h}�uI�GA�W�D$H����H�D$�u�A���0O�$/I9�|	�H�I9�}�L��H��Hc��*��I�I�~H%���H	�I��� tI�~H��$�H�pH� tH�pL�L�����H��$�H��$�H�t$0L��H��$�������tB�D#�A�J�D#�f�A�W�P�=�H��H9�taH���H��H��?H)�H	�H��H�D$(�~L$(���\$\�|$H�����C;\$x�HcT$\H�L$`�D$\H�щT$H�@�f��H�D$D��$�D�Ƅ$%�D$�mL��$M�|$�D$tA�+I���D$tA�-I���D$tA�0I���D$tA� I���\$�� �5�D$@��H�D$E�A�G��D$���<E���9D$ �r���jD�|$ A�A����0Mc�K�/H9�	�H�H9�~�H��L���L$Hc��4��I��L$H%���H	�I��� I�^tI�^L�L��f(�L��H�߸��H���@��M�d��<B��
<X��A���A�H�D$@DŽ$��r����|$x�IH��$�H�t$HH�8�g��H�t$HH���%H��$����H��$��1��Ǯ�H��$����H�zH�rH���H���{H��1����A�H�E)�H��$�Mc��� ��H��H�p��H��$�A�������1��2�H��L�~H����H9�}9I�?H�5��H���
��
H��$�H�I��A�� t�L�~H;~|lj��D$h���|$@M����H����H�|L)�Hc׉�H9��2�T$P��D�d$@��!ˆ�$�E��t
��$��l$ H�D$�8X�H�|$(tLH�D$(�x�*	D�\$@E���/	�D$��@���~��t
9�$��	H�|$(���)D$ �D$��J���		��$�9�}&H�|$(@�ƃ���@��t���,��$��؋|$ )�HcǍx��D$P�|$ H�D$p�D$���|$h��	H�D$(H����	��$�E�&)�A��0H�L�H9�H�H9�~�H��L��Mc����I�I�VH%���I	�M�&A�� tI�VD�L$@E����
��$��j
�D$��B���
A�Hc�N�$+%0�D$I9�|fDH�I9�}�L��H����I�HcT$I�~H%���H	�I��� tI�~L�H��L�����H��$�H��$�H��$�H�D$pA�L��0H9�|H�H9�}�H��L��Hc��*��I�H%���H	�I�FI��� tI�F�|$P������|$ L�L�� ��H��)…��Hc|$ ���HI�M�d�f�H�zH�rH����|$ ��H�L�H9�
f�H�H9�}�H��L��Mc�芿�I�I�vH%���I	�M�&A�� tI�vH�D$0L��H��P0Lc�$�O�$*���HDŽ$��D$@uDŽ$��|$A����A���|$@A�����xH���7D	�|$hH��$��^
L�=_�4M����
Hc�$��
���H��$��L��H��$��1����H�ߺH��$��*H��$��v���+H��$�H���\��H��$��L��H���D���D$PH�D$(H��H���ȷ�H�H��$��� �5
H��H����Hc�$�HD$(Lc|$ A��NH9�Hc�HM��|$hH������0��H�I9�IM�L�H9��H�H9�~�H��L��Hc�貽�I�I�NH%���H	�I��� tI�NE���t	�t$@���H
M��E1�L��$�I��� �<	H��I��H��H\$(Hc�$�J�<!H9����0��$�I��M�M��~
B�!.I��I���T$P���^Hc�$�H��H9��
��~2H)�J�<!L�L$(I�4H�L$ ���L�L$(H�L$ Hc�$�I�I��D$ t	M9���H��$�H��$�H��$��8�L��$Ƅ$#M�|$���H�D$(1��D$@�lj|$P�D$����w�A���A�H�D$@DŽ$����A���E1�DŽ$����H��$��ƒ������@f/���r�H��$��Ѓ�����H,BH�D�_����C�H�H;�$��E����H�|$@�a����X���H��H�p����H9��k���H���H��H��?H)�H	�H��H�D$@�~D$@���f�H9����H���H��H��?H)�H	�H��H�D$@�~D$@���T$ ��Hc�N�<*I9�|@H�I9�}�H��L��H�T$Mc��ݺ�I�H�T$H%���L	�� I��?I�FJ�<(� M�����E�&��$�A��0���H���M������D$@D	�D$h�x�����$��|$HH�D$���Hc�$�;T$xH�D$�H�t$`I���D$H����H�<�H��$��O�Hc�L�H9�|H�H9�~�H��L��Hc����I�I�VH%���H	�I��� tI�V�D$�H���t!J�*I��J�4)H�� H��H9�u�A�Í�0�D$�����T�HcD$A�L��0H9�|H�H9�~�H��L��Hc�耹�I�I�VH%���H	�I��� tI�V�D$�H������M�T$J�"J�4H�� H��H9�u�M�$
�b�A���E1�DŽ$����A���A�H�D$@DŽ$���������A�?0��H�D$(�D$��J��������D$ �D$PH�D$p��$��D$ �����D$����H�D$pE�&L�A��0H9�@H�H9�~�H��L��Mc��R��I�H%���I	�I�FM�&A�� tI�F�|$ D�T$PL�w�E������ ��H��)…��Hc|$ ����W�HIlj�)�M�l�|$hHclj|$P�p�H�D$p�t$ �l���E�&I�UA��0H9�@H�H9�~�H��L��H��$�Mc�蒷�I�H��$�H%���I	�I�FA�� M�&tI�F�|$hB�<(H�D$(I��H������H��蘳�E�&Hc�N�*A��0I9�|
f�H�I9�}�L��H��L�D$hMc�H��$��
��I�I�~L�D$hH��$�H%���I	�A�� M�&tI�~H�t$(L�L�D$h�~��L�D$hM���t���H�~H~�K��$��p���$�9�����I��B�D*�0��$��H���$�9�������$��7��t������@�Ǎ|.��$��p���$�9��h���fDI��B�|*���$��H���$�9���?���I�MA��0H9�|
DH�H9�}�H��L��H�L$(Mc��ݵ�I�I�VH�L$(H%���I	�A�� M�&tI�VA�..fF�*I����H�L�H9�������H�H9�}����H�|$(H�\$8H��$���$�H�T$0J�4/H�����$��0H�I�H�\$8H%�����t
��$�Hc�H	�I����H���;��H���F��\$\�|$H������C;\$x��
HcT$\H�|$`�D$\H��H�|$H�щL$H����\$\�|$H���b���C;\$x�z
HcT$\H�L$`�D$\H�щT$H���\$\�|$H���+���C;\$x�C
HcT$\H�|$`�D$\H�׉T$H�-��H�߃��~�B���H�t$0������$��I�H�PH�p�0�H�\$(IXM�@�����+A����M�eB�)A��D$@�t���H�@����I�t$ L��D��1�L)�H� �	�L$(D�D$连�L�����D�D$�L$(I�H�D$E�A�G��D$���<E�1��$����L$ I�t$ L��1�L)�H�A
�L$PD�D$@D�L$(�N��L��薯��L$PD�D$@I�D�L$(�}����L�D$�^�A�?@�����H��\$PH�\$0L��I���H��H������E��}@��u�\$PL����D$H���H��$�H��$�H��$��L$x9L$\}(��t$�P��H������I�N��H������:L��L���v��D$|��t&A��u I�����tI��ƒ�������I�H��$HdH3%(L���H��X[]A\A]A^A_Ãl$ �D$h-�D$@���D$ ��DŽ$�L�=���V��f(�H��$��L$DŽ$���#���$��L$���(�i��������������$��������I�Hc‰T$PH�D$(�%�H��L��H�L$(H)�L�D$ ���Hc�$�H��L�D$ H�L$(H)�H��I�N�/��|$�D$h���|$@����l$ �D$@�D$h �{��H�==
�X��I��H�V�4��蔫���}���H��A�����H��D�d$hH����A�M�l$��0I9�|H�I9�}�H��L��L�L$ Hc�脰�I�I�NL�L$ H%���H	�� I�tI�NB�!0I��M����H�R���H�yH�qH��u��� �%���H9��J�H���H��H��?H)�H	�H��H�D$@�~D$@��H��$�H��� �����E�.H)�L�A��0H9�|H�H9�}�H��L��L�D$(Mc�L�L$ 讯�I�I�NL�L$ L�D$(H%���L	�� I�tI�NJ�<!�0L�L$(Hc�$�L�D$PH)�H�L$ �г�Lc�$�H�L$ H��L�D$PI)�M�L��J�<!I����L�L$(H�L$ Hc�$�I��V��t$PH�؃l$ H�D$@���D$h-@��$�L��$H�L$@H�1��@L��L���ԙ�H����������!�%����t���D$@M��DŽ$�
�����D�H�SHDډ�@�H��D)��T�I�F��I�F�i��f(�H��$��L$DŽ$��譹��$��L$�������iɒ��2 ����
����)ȃ�����l$ Ƅ$��D$h+����H�����H��$�H��$����H�Ã���I���l$ ������>��H9��_�H�ѸH��H��?H)�H	�H��H�D$@�H,D$@H�D�/�H�D$�F�8X�fE�����A�?0�x�1ۅ�����$��\$@�n�H�5 �	H�=׈	1�������A���� �-D��
���M)�D$�A�D$  K�<M��I��A�%0�D$H9�H�H9�~�H��L���Ӭ�I�HcT$H%���H	�I��� ��I�F�t$ J�<(L��������H��$�H�t$h�k��H�t$h������L�H��1�1Ҿ��X��A�����H��D�d$h�X�H�xHx�����D$���l$ ��D$h ���Hc�H��H�|$p���|$P�D$ ����D$\E1��.���A�L�|$�D$H�����
��Ƅ$��D$h����I�F�����D$  �D$tHcD$@�D$ 0I)�M��L��L�L$M)�K�\=J�4)H�<���L�L$N�$����H���$�������1�A�?0������D$h�����H�3�3H��	H�5ӆ	H�81��˙�趨����L�D$�L$pH���	H�z�3H�|$0H�01��K��H��3H�5��	H�81�胙�H�̙3H�5�	H�81��k��H���3H�5l�H�81��S��H���3H�5��	H�81��;��H���3H�5{�	H�81��#��H�l�3H�5b�	H�81����H�T�3H�5��	H�81����H�<�3H�5��	H�81��ۘ�H�$�3H�5X�	H�81��Ø�H��3H�5��	H�81�諘�H��3H�5��	H�81�蓘�H�ܘ3H�5��	H�81��{��H�Ę3H�5��	H�81��c��H���3H�5��	H�81��K��H���3H�5��	H�81��3��H�|�3��H�5��	H�81����H�\$L�t$0H�t$L��H�SH��L���h��L�L$L��R�T$pA��H�0�3I�I�A)�I��RH���	H�01��t��L�����L�D$�L$pH�q�	I��H��3H�|$0H�01��C��D�L$HL�D$H���	H�˗3�L$pH�|$0H�01����L�D$�L$pH�4�	H���3H�|$0H�01�����f�����~H���H�vH����PH�n�3H�5��	H�81��
��ff.�f���AU�I��ATI��UH���xSH��Xf�D$H�D$ H�D$x胺�H��H��t�}��H��H���&��H�\$H�CH� tH�CH�$L��H��L��H�CH�4���H�D$0H�X���H�D$8H�D$@���H���3H�4$H�H�CH�CH� tH�CH��H)�臧�H��XH��[]A\A]�H�b�3H�UH�5��	H�81���ff.�f���H���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�T$�D$H�D$H�D$ �D$0H�D$�5��H����ff.�f���H��H��1����ff.�@��H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�t$�D$H�D$H�D$ �D$0H�D$�@��H�������ATUH��SH��H��`H�|$H�|$�o��H�|$�U��H�|$�H�D$0f�D$ 蘥�H�D$H�D$H�H�D$(�� ��H����H�LL�`H�|$H��H��H�@H�Ô��H�D$@H���H�L$H�D$HH�D$P����H�|$H�t$L�gH�GH� tH�GH)����H�D$H��`[]A\�f.�H�HHH�r�����H���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�T$�D$H�D$H�D$ �D$0H�D$����H����f.�L�O �GtVI9�H��IF�H��tR��H��E1�E1�L�_O�\M9�u��uL�H��I��I��I9�u�H��H)�H����H�<�M��u1��@H9�s��H��DI�QI9�u��uH�H��M�I M��tH9�r�H)�H���fDL�O �GtVI9�H��IF�H��tR��H��E1�E1�L�_M�M9Cu��uM�[H��L�Z�I��I��I9�u�H��H)�H���H�<�H9�r1��@M��t��H��DM9Au��uI�QH��H�P�M�I M��tH9�r�H)�H���@��1�f.�����t<��t8D�J�D�B A��D�I�AB�A��D�A AB�H��9�t�9�������D���u�1��������D����ŝ���t(�r�H���J ��Bщ�H1�Hi“���u��@����1�H9������H��H��H��H��H	�H1��f�AUATUSH��J��H��t%H��I��I��H9uKH�sH9�tH�1�L����u4H��H��[]A\A]�f.�H�pI9�t'I�U1�L����tH�[H�CH��tH;(u���@H�CH��H��H��[]A\A]�ff.�H��tVH��H��H!�H9���H��H��H	�H��H��H	�H��H��H	�H��H��H	�H��H��H	�H��H�� H	�H��H9�s@H��H��H	�H��H��H	�H��H��H	�H��H��H	�H��H��H	�H��H�� H	�H���PH��3H�5)�	H�81��\��ff.��ATUH��SH�GH�x�,���H�}L�$�H��L��蕦�L��1�H�����H�U H�]H�EH��t$I��H�C�H�
H!�I��H�1H�rH�H�R H��u�[]A\�ff.�L�G H�GI��w"M�HO�@J��L�O H�pH�PH�H�GÐAWI��AVAUATE1�USH���o�o�oO�oW H�\$`H�L$)\$`�o`L�l$P)D$0)d$p�oh )L$@)�$��op0)T$P)�$��ox@H�T$(�W)�$��o@PH�t$ ���)�$��oH`)�$��oPp)�$��o��H�_H��)�$��T$@�6��H�xH��H��H�H��H�@x1�H)�����H�H��$�H�l$HH�D$8H�D$L�SH��0H��L�s�L�T$H�$���H�$L�T$H�σ�H�|�L�L�XH�H�L�PL�pI�EL�h L�`(I��H;\$u�fod$0H�T$@H�D$XH�@ fol$@A'I�Gfot$PH��AoH��Aw H9�w}�0H�X�H#\$�z��I�WH�t$H��H�
H�HH�I� H�0H�t$ H�pH�t$(H�ptOI�W(H�@ H�P(H�B I�G(I�GH��[]A\A]A^A_��L������I�G�r����I�G(I�G H�@(H�@ �ff.���ATI���0UH��S踭�H�`H��H��L� ���C��t*H�{��\��H�C H�CH��H�C([]A\�H�����H������1��E��D��H�=�3�����H��H�=�3���ff.�f���H�=U3�P����H��H�=B3���ff.�f���H�=3� ����H��H�=3齓�ff.�f����GuoATI��U1�SH�tBfDI�D$H��H�8H�H��t�H�_�g��H��H��u�H��I;l$r�I�d$I�D$ I�D$([]A\�H�gH�G �f���SH���Æ�H�{�
��H��[�����H�GH���GuH�WH��H�RH�PH���f.���AW1�AVI��AUATI��USH��H��H�H���RI��Cta1�H�{ u9H��1�[]A\A]A^A_��H�pI9�tH�1�L����tqH��H;k s�L�lmH�CI��L�L;8u����H�CH�sL��L��H��L�@�M!�����H��t�M��t<H�@I�H���[]A\A]A^A_�fDH9k �V���M��tH�CJ�D(I�H���[]A\A]A^A_�f���AW1�AVI��AUATI��USH��H��H�H���RI��Cta1�H�{ u9H��1�[]A\A]A^A_��H�pI9�tH�1�L����tqH��H;k s�L�lmH�CI��L�L;8u����H�CH�sL��L��H��L�@�M!�����H��t�M��t<H�@I�H���[]A\A]A^A_�fDH9k �V���M��tH�CJ�D(I�H���[]A\A]A^A_�f���AWI��1�AVAUATI��USH��H��H�H���RI��Ctq1�H�{ uIL��L��L��H�����H��1�[]A\A]A^A_�fDH�pI9�twH�1�L����tiH��H;k s�L�lmH�CI��L�L;0u����H�CH�sL��L��H��H�h�L!�I�����H��tKL�x�H��[]A\A]A^A_�H9k �N���H�CN�|(H���[]A\A]A^A_�f�H�CH�SH��H��H9�w\�0蒨�H�SH��H�
H�HH�H�{ L�0L�`L�xtFH�S(H�@ H�P(H�B H�C(H�C1��X���f.�H���8���H�CH�h�L!��H�C(H�C H�@(H�@ �ff.���AW1�AVI��AUATI��USH��H��H�H��H�L$�RI��Ct|1�H�{ uTL��H�D$��L��L��H��H���(���H��1�[]A\A]A^A_��H�pI9�twH�1�L����tiH��H;k s�H�TmH�CL�<�L�L;(u���@H�CH�sL��L��H��H�h�L!�I�����H��tKL�pH���[]A\A]A^A_�H9k �C���H�CN�t8H���[]A\A]A^A_�f�L��H�D$��H�SI��H�CH��H��H9�w_�0赦�H�SH��H�
H�HH�H�{ L�(L�`L�ptIH�S(H�@ H�P(H�B H�C(H�CH��1�[]A\A]A^A_�H���X���H�CH�h�L!��H�C(H�C H�@(H�@ �ff.���AV1�AUI��ATI��USH�H��H���RI��C��H�CH�SH��H��H9�w_�0H�h��ѥ�H�SL!�H��H�
H�HH�H�{ L�0L�`L�htZH�S(H�@ H�P(H�B H�C(H�C[]A\A]A^�@H���x�H�C�f�L��L��H��H��[]A\A]A^����H�C(H�C H�@(H�@ H�C[]A\A]A^�f.���AVAUATUSH��L�o�0���H��H�����o�L���oc`�ok h ���H�EH�����C��H�[ H��tsL�e E1�I���M@�oH�U�oKH�HL!��oS H��P H�
H�HH�L�p(I��I�$H�[ L�` H��t'�0�M��H��u�H��1�����[H��]A\A]A^�f�H�E(H��[]A\A]A^�H�sH��H��H�s�h��[H��]A\A]A^�H��1�������AW1�AVAUI��ATUH��SH��H�T$H�H�>�RI��E��H�EH��L!�H��H�EL�$�I�$H��u)��H�U1����tL�cH�[H����I�}H�sH9�u�H�CI�$H�C H�S(H���=H�P(H��tH�B H9] �VH9](�<H�L$H�mH��tH�CH�H�CH��I�EA����H��D��[]A\A]A^A_�fDH�D$E1�H��t�H���f�1�H�} M�}u
�ِH��H;] s�L�$[H�EI��L�L;0u�H�pI9�tH�M1�L�����u�H9] v�H�EH�L$L�H��tH�@H�H�EL�H�@I�EH�E A�H�mH��H�E H9��=���H�MH)�H�@H�D[H��H�4�J�<!�ܵ������H������H�E H�E(����f�H�U(����H�E ������AW1�AVI��AUATI��UH��SH��H�T$H�H�>�RI��A�F��I�FH��L!�H��I�FH��H��t*@H�{H9�tI�4$H9�t6I�1����t+H�[H��u�H�L$1�H��tH�H��[]A\A]A^A_�H�C H�S(H���H�P(H��tH�B I9^ �8I9^(�I�nH�L$H�CI�$H��tH�CH�H�k�H�kH��[]A\A]A^A_�@1�I�~ M�<$u�\���fDH��I;^ �H���H�[I�FH��H�L;(u�H�pI9�tM�H�$1�L��A�H�$��u�I9^ �
���I�FH�L$H�H��tH�@H�I�FH�H�@I�$IV�I�nH�jH�jH�H��[]A\A]A^A_�f�H�����I�F I�F(���f�I�V(�����I�F ������SH�G������H��H��@��L�@ H�XH�K�I#L��I�	I9�u�,@H��H�yI9�u�L�IH�OI�	H��tH�OH�
H�WH�O(H�H�W H����H�J(H��tH�Q H9x ��H9x(��H�h����[�f�H��tH�OH�
H�xH�WH�H�X H�hH�S��H�P H��t�H�xH�RH��H�w�y����1�H��t���H�[�fDH���[���H�@ H�@(�^���f.�H�H(�K����H�P �1����L���������G��L�_L�G 1�I�K�f�H��L9���H��H�PH91u�H�RI���/DH9qtL�@�oH��O��AL�QM�QH��H��L9�r�H�WH�G H���H	�H�G�AVI��AUE1�ATUH��SH�tR�I�FN�$�I�<$H��u�-DL�gH��H��tH�_H9ou�I�$�I��H��H��u�I��M9nw�[]A\A]A^��ff.����AW1�AVI��AUATUSH��H��H��8H�H�t$H�L$H�D$(�RI��C��H�k L�d$H����1���H��H;k �rH�TmH�CL�<�L�L;(u�H�pI9�tH�1�L����u�H9k ��H�SL�A�L�bH�BL�d$H�D$(H�t$(H�|$D��H�T$A��A��C��������uE����E1�H��8D��[]A\A]A^A_�@H�CH�sL��H��H�T$H�h�L!�I����I��H����L�`H�@A�L�d$H�D$(L�D$H�t$(H�|$D��H�T$A��L�D$A��E��tkA���s���E���g���H�CH��H�H��t%I9�u�jfDI9��WH��H�BH��u�A��*����L�d$E1�����L�t$H�L$(E��t)M9�tM�pI�H���L�d$E1��9���H�kH�CH�T�H��H9��'H��L!�0H�L$�ٚ�H�SH�L$H��H�2H�pH�H�{ L�(L�pH�H��H�S(H�@ H�P(H�B H�C(H�C�\���f.�H�CH�sL��H��H�T$H�h�L!�I����I�����fDH�t$H�T$(E���H�CH�LmH��I9�tH�pH�P��fDH�BI�PH�I�@ I�P(H��t`H�P(H��tH�B L;C ��L;C(��H�kL�������DH��H�L$��H�CH�L$H�h�L!����fDH��u�H�C H�C(�f�H�C H�kH��H�C H9�����H�{H�LmH)�H��H�@H�4H��H�|�����
���L��H��������H�C(H�C H�@(H�@ �o���H�S(�����H�C ���L�d$E1��q���f.���AWI��AVAUATUSH��(H�o H�t$H�T$H�L$�G��1�H��toL�[I�GN�,�L�M��L�pL;t$t=H�(H�p1�1�H�T$L��L�L$A��A�G������������tI�w H��H9�r�@1�H��([]A\A]A^A_��H��t�H�}H;|$�tI�GH�u1�H�T$L�T$H�X�1�H#]A��A��A��t�E���AA���WA����I�GH��H9�u�H�@H9��H��u�H�T$1�1�1�H�\$�Ӹ�G���DI�GI�W J�<(H��H�H��uL�\$L9_�
���H9�r�KH��I��H9�s;I�GJ� H9�u�J�t I9�tI�L��1��I�W ��u�H��H9������fDH���Y���1��H��I;_ �D���I�WH�[H��H;(u�H�pI9�tI�1�L�����u�I�w H9��h����
����M�GH�D$I�oM�I�@I�@I��2���I�GI�WH��H#EH��H��u�eDH�@H��tWH9�u�H�E H�U(H����H�P(H��tH�B I;o ��I;o(��H�L$I�oH�EH�MH�MH��H�������I� ��������A��I�GI�wH��L��L��H�X�H!�I���E�H��A�������H�������H�m �H���Y���I�G I�G(�\���I�W(�S���I�G �@���f���AWAVAUATI��UH��SH��H��L�o �Gt{E1�M��tXO�H�CL��N�4�L�H�L�hH�p1�H�$L��1��C�����"��t��t
H�C I��L9�w�H��1�[]A\A]A^A_�f.�M��t�1�1�I�uI�}L��Ճ�t������H�CH�SH��I#EH��H�H����L9�u��H��H�BH��tlL9�u�H�BI�UM�u H�I�U I�E(H���9H�B(H��tH�P L9k �IL9k(�6H�kL��M�����fDM�������H�{ �*����������������DH�C H�kH��H�C L9�����H�{L)�H�@J�t7H��L��J��H�C L9��Z����������x���M�m �o�����D$H�CL��H��H�sL�@�H�$I!�H�����D�T$H��I���W���A���M���~A�������A���"����2���DE��t�����H������H�C H�C(����H�C(���H�S ���ff.���E1�1����f���I�ȹ����ff.�@��E1�1����f���I�ȹ�o��ff.�@���ᆳ�H�H��vFH����[����H�V�H��L�L��L�H��H��L��L��H��L1�H��H1�L9�uۃ�H�
�	Hc�H�>���1��WH��(H	��WH�� H	��OH��H	��OH��H	��WH��H	��H	�H1�H����[����H��H��H��
H1�H����[����H��H��H��H1��D1��@1��@1��@1��@1��n�����OH��0�U�����SH���#}�H�ߺŝ�[H�����f�����H�>H����[����H��H�f����S�H1��f.���H����[����H�H�y�j��p$H��H�� H��H1�H�H��H1��ff.���H��Y�f�8�H��H����[����H��H1�H��H�9��hF��H1��ff.����H������1��C��D���t;E��t6D�Q�D�I A��E�P�AB�A��E�H EB�H��D9�u%H9�u�1��D���u�1�E�������@A9�������@U�SH��H��H�o�O��E��yD�1�)ǃ��|����$I���4:����)��Ⱥ�$I�������)�)�)���)ȉ��@Hȃ�w�H��au'��H�����{��H��H��[]�f.���u�H�C0foK�Q�H�fofoS )L$H�D$0�D$)$���ɹ)T$ D�HcȉD$H��lH�t$�T$����H�ףp=
ףH��H��H��H��?H�H��H)�H��H���mH��H9�tjH��D$����{���7���f.��C������t���������D�H��H[]���f������F����DH�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9�����l�V��������F�H��H[]���ff.�AW�!�1�AVAUATUH��SH��%H��(H�?�}�H���+��D�e!�U&D�m D�}"D�pdA���M#�u$A��D�E%H�}A����A������?��A��A��A��?A��A��@��tDH�H�ED�{D�cD�sD�kD��s�KD�K�S H�{(H�C0H��([]A\A]A^A_�fD�T$D�L$D�D$�t$�L$�]��T$D�L$H��D�D$�t$�L$�f�AWAVAUATUSH��(H��$`H�L$L�D$L�L$(H�D$ dH�%(H��$1�H����H��H����H�|$��H��H����I���%H���3{�H����L�t$M��t �ۖ�I9�t�р�I9�t�l�I9�uf�H�D$I�H��H�D$�E����L�q�L��M9���H�L$pL�|$8H�L$0�*fD�I��H��H��A�D$���mL9��T<%u��UI��E1�E1�E1�I�����H�
'�	M�g��z��H�=>�	��Hc4�H�>��E��DN�A���uIc�H�DH�D$pL�D$xA��0���H�=[�	E������v�H�t$0�H���2p�H�l$H�|$hH�D$h�f�H)�H��H��H���}��H9��S@�+i��"1�H��$dH3%(��H��([]A\A]A^A_�M��M��I)�L��H����I�l$���f.�H���Xv�H��H9��!����f�H9\$w��t���@L�|$8H;\$�`���H���L)��_���f���$hH�l$D�T$@H�r�	PH)�t$(L�L$8L�D$H�L$ H��H���&���Y^H������I9��QH;\$�����H��I9����L��H��H��H)�H�<+�U�� H��H��D�T$@I�oE��DD�L�A���}�����H�l$��$hD�T$@H�˰	PH)�t$(L�L$8L�D$H�L$ �K���A��H�t$0�
L��D�L$PD�\$HD�T$@�h��D�T$@D�\$HH�
��	Lc�H�D$pD�L$PL�x���k����	E��DN�H�D$H9�����I��Mc�I)�I�A�I9����J�I�oH�D$@H�D$ H���H�HA��	�9L��H��H�<�	1�� c�A�U�H�{	�0Hc��{|�H�\$@���A�WD�L$XD�\$PD�T$H���������H�ψT$@�&w�H�������M���T$@D�\$PH�
��	D�T$HD�L$X���E���i���A�WA��M���m���H�D$A��~
A���.H9�����H)�H��H�����%I�oH�����H�5�L��D�L$HD�T$@�W�H�������A�<z���I�A��D�L$HH�
�	A�WD�T$@����A��tA��A��H�D$�@&�D$@��<��
��D�L$HD�T$@H��H�r�	H�,PH���s�D�T$@D�L$HH��H���
�I�o�4���H�D$D�@%�<A��?A��<DO�E��DN�A���DE�A��0��H��	E���H�t$D��H)�1�H���+a�������H�H��H�l$��$hD�T$@H��	PH)�t$(L�L$8L�D$H�L$ �W���H�L$ A���E��D��LN�H���5E��L�DE�A��0�H�O�	E���H�t$1�D��H��H)��`���c�����������H�D$D�@$�;A��?A��;DO�E��DN�A���DE�A��0���H�Ƭ	���H�l$��$hD�T$@H�ʬ	PH)�t$(L�L$8L�D$H�L$ �h���H�D$D�@"�A��DD�E��DN�A��DE�A��0�t����H�L$E��DN�A��D�A"DE�A��DD�A��0H� �	H��	HE��<���H�D$�D�@ �nA��A��nDO��E��DN�E���h���H�D$D�@#�A��A��DO�E��DN�A���DE��r���H�D$A��@#�D$@��t�D���A��DO�<A�P�DG��H�D$�@!A���D$@�A��A��A��DO��E��DN����H�D$A��~
A����
H9�����H)�H��H�������
I�oH������A��tA��A��H�D$�@!��&
���<�
��D�L$H��D�T$@H�H��H�G�	H�,P�P���H�5�F4H���7H�D$���D�L$HD�T$@H�81��s�D�T$@D�L$H�ƒ��<
E��DN�A��DE�H�I��A��0���H�7�	����$h����
H�5F4H����H�D$1�D�\$HD�T$@H�x1��r�D�T$@D�\$H��YH�H��A�H��y	H��A�����A���S
A����A����H�D$A���DL�H9������H)�H��Ic�H�V�H9��n���A�M�H��H�=x�	Mc�D�\$HH�|�j�Y�HD�L$@H��H��D�T$PH��?H��
H)�A�� H��H�C�	HD�L��H��1��\������D�L$@H�D�\$HE��yH��D�T$PH�T�A�� HE��-H�|�j�Y�HH�H��H��H��H��?H��
H)�Li�A��A��L)�I��u	E���r���L��D�D$HH���������H��L��D�\$@H��?J�,*H��H)�E����H�t$�:L�K1���H���	L��L�L$PL)��[���6���L�L$PH�L��D�D$HI�H��H��H)�H��H)���D������D�\$@A������H�t$�:H�k1�H�-�	H��H)��F[������H�H�\I�o���A�WD�L$XD�\$PD�T$H��������H�=�	�T$@�Oo�H�������M���T$@D�\$PH�
�	D�T$HD�L$X��E��H�t$0H�|$DN�A���D�T$@DE��5��$�E1�D�T$@�H+�$�����?����Ⱥ�$I���D�
��A��A)��#���H�l$0E��H�|$DN�A���D�T$@H��DE����H����D�T$@A������E��H�t$0H�|$DN�A���D�T$@DE����$���$�D�T$@�ҍB��Dƒ�E1�)�����~����:���H�D$����%D�T$HH�81�D�L$@��n�D�L$@D�T$H�H��D�L$HD�T$@���_��D�T$@D�L$HA������E����A�WA��M��E1�E1���E�π�p�G��P��H�D$H�-7�	��@#�D$@��<H�EHC�A���wI9��nH�D$H9��p�H)�H��I9��`�I)͸ E��H��DD�L��H�L$@L�A���r�H�L$@H��H��H��A��H�L$@I�l$�9�A��H�L$@�*A���L�,�f.�H��I9�����;�ۊ��t��;�_����H�l$��$hD�T$@H��	PH)�t$(L�L$8L�D$H�L$ �v�H�l$��$hD�T$@H�
�	PH)�t$(L�L$8L�D$H�L$ �B�H�D$H�t$0D�T$PD�L$HH��H�(�D�H�|$0�*�H�L$D�L$HD�T$P�I!�ʈL$@�����a��u	��3��	A�G�������I��D��I�L��H��?��E��N�A��A��DE�A��0�������DH�D$D�@#�A��A��DO����H�D$A��@#�D$@���x���D���A��DO�<A�P�DG��X���H�l$��$hD�T$@H���	PH)�t$(L�L$8L�D$H�L$ ��H�D$�D�@&�A��A��DO�A��uE��AO�A��0�ZH��	E���JH�t$H)�����H�D$L�D�ƒ��/�I�D��L��H��?��E��N�A��A��DE�A��0�R����_���A��H�D$u
A���+H9��r�H)�H��H���a��	I�oH���f�E�����A�WA��M����E���g�A�WA� M���i�E��A��tA��A��H�D$�@&�D$@��<�.���H��H���	H�,P�E���E��A��tA��A��H�D$�H�-�w	�@!��������<�
��������H�H��H�#�	H�,P���A��tA��A����$h����E�ϹH�-��	���A���uE��AO�H�D$�@&�D$@��D�����DD�����H�D$H9���H)�H��H9���������DH���L�,�f.�H��I9�����;�{o��t��;�_c���E�ϹH�-~v	����H���	����	1�I�gfffffffD)�t DH��H��?��I��H��H)�H��9�u�I��H��D��H�R�	L��1��S�H�\$@�F��\c�D�L$HD�T$@A���-�E��DN�A���uIc�H�DH�5�;4H�D$pH����H�D$���D�T$@H�81��wh�D�T$@H�D$xA��0�T��H�=��	�X�H�D$H�hH���g�H�|$�]D�L$HD�T$@�&�A�1�A���A�������H�D$A���AM�H9��=�H)�H�ƍAH�H�V�H9������� �1����H��%D�L$HD�T$@�g�D�L$HD�T$@H�E��I���DN�A���DE�A��0�����H�-�t	�"����������H���1��+D�T$@�<g�D�T$@D�L$HH���s���A�������A��A��E�����L������H�=�	D�L$HD�T$@���D�L$HD�T$@H��H�':4��H�+:4H���@H�|$(�H�ƹ1�D�T$@�f�D�T$@�ƒ�������H9����H)�Ic�H��H9����E�Ҹ A�m�H��DD�Hc�H��H�A���{j���H9����H)�Ic�H��H9��z�E�Ҹ A�m�H��DD�Hc�H��H�A���5j��P�H9��G�H)�Ic�H��H9��4�E�Ҹ A�m�H��DD�Hc�H��H�A����i����A��
�I������E��DN�A���uIc�H�DH�D$pH�l$xA��0�j�����H�D$A���DL�H9����H)�H��Ic�H�V�H9����A�M���H�t$1���H�Ŝ	H��H)���O������a��H�D$A��	�	DL�H9��E�H)�H��Ic�H�V�H9��/�A�M���1��f�H��H��d���|
���y�D�T$PD�L$H�U�H��H�D$@�y��H�t$@H�T$A��"H���\~�D�L$HD�T$PH� H�ptH�pH��$��dD�L$HH��D�T$@���D�T$@D�L$HH���F�H��D�\$HD�T$@輄�D�\$HD�T$@H����H�=xnD�\$HD�T$@���D�\$HD�T$@H��H�174��H�=��	D�T$@���D�T$@H��H��64�������uK�T-H�T$pH�D$xA��0�y�� ����H�=��	D�T$@蜗�D�T$@H��64���H�|�j�Y�HH��H��H��H��?H��H��
H)�Hi�H9��!���H���������H��H��H�*H��H)�H��H��H)�H��H��H9������H�D$A��	�	DL�H9��)�H)�H��A�EH�H�V�H9������H���1��-D�L$HD�T$@�b�D�L$HD�T$@H������H�|$(1��E���%L�T$PL�L$H�Zb�A��L�L$HL�T$PI��~DH�\$PM��D��H�ǹ�5w�1��*��	� b���M��A��I��L�L$HH�\$PE��tF�H��H�A��u�L�Ǿ*1�L�L$PH���L�T$H��a�L�L$PL�T$HI��H��44H����H�ƹ1��L��L�T$PL�L$H�a�L�L$HL�T$P�tH�I���q���O�T�L�L$HH�=��	L�T$pH�D$x�.]�H�t$0�H���V�H�|$hH�D$h�L�L�L$HH��H��L����}�H�\$@�u��H�=�	L�T$XL�L$PL�D$H� ��L�T$XL�L$PH�44L�D$H�(���E�����^�E1�E1�I����f���H���D$Pj��H������H���D$PAQA����H��ÐH��� t0@��u"H�����t�ƒ���t�@@tH�G�H�G ��)�H��ff.���H��� u����H��?H��?���H���H��?H��?���ff.��H��H��H�:H)�H��~H��8H9�v&������t	H��t
H��H��H9�u�H�:�f�L�HI��I��I��L9�s%@��������H����H)�I9�u�L��I���H���n���L�H��L��H��H��L	�H��L!�I��I��L�I��I��L�I��I�� Lу�H)�I9�w��&���ff.���H��� uH��
��>H����H�GH�D�fD��H������tK��u>H��� u~H���t.H����V��uw�~uq�~�uk���u:����@���H��� t(H�~~�H�v�<�tV<�u�~�t\�b��H���t�H����f�H�~~�H�v���uЀ~uʀ~�u�<�u�����f��~�u��������fDH��H�?H������t�	���f�H��H��H�t$�?��H�t$H��������ff.�@H9�s{AUI��ATUH��SH��H���+fDH��L��H��U H����UX��tL�I9�v+H��L��H����[�Lc�E���H��1�[]A\A]��H���[]A\A]ø�f.�H�������xH���H�PH�qK3H�5p�	H�81��K����%�M�f�AWAVI��AUI��ATL�f�UH��SH���z��M��x>J�D%M��8��GL��H�U��f��|�H�Du$�DH��H���u�H���[]A\A]A^A_Ð�J�t-L��H����Z��~)H�L9��	L��H�|��H)��`��l���@L9��_�������V���L��H�tL��H���xZ�����H��u�H�L������_�����H�7H���CZ����H��H��L��A�V L��D�`D��A�V(����H�L9�����L��H��D��A�V0L��H��H����Y����H��[��]A\A]A^A_ÀJ�t-L��H����Y�������H�L9������H���[]A\A]A^A_�M��H�{I)��.���H��1�[]A\A]A^A_ÐAWL�<AVI��AUATA��UHc�SH��H��L9�H�IO�A��I���� tJ�T=H�����I�</�_p�H�sH��H��� u`H��L����k�H��H�M��u
H�������H%�?��H�J�<)�A����H�KL�kL�{ H��[]A\A]A^A_��H�sH��t��DH�wM��uH�����t�ƒ���tH%���H�H�KL��H���)k�J�<(�A����H�L��H��H%�?��H	�H�3H��[]A\A]A^A_��ƒ���t�� H�H��H%�?��H��?���փ���HD�H�����@H��1�H�L$�i]�H�L$�����H��1��N]��q���f�AUATUSH��H���4I��%��I���KI�H�Ÿ)�H�L9���H�EM����H�� M��t!H�}H��ubL��L���j�H�EH�� H��t%L�mH�}L������H��H��[]A\A]�L��H%�?��H��H	�H�E�� u�H�}�ĐH�}�f.�H%���H
H�E�b���L�m Hc��L��n�H�EH�E@��uH�����t��H�ƒ��� ��HE�H%�?��H�E����@Hc�1��[��K���H�rF3H�5#�	H�81��F�AUATUSH��H����H��I��H��A��H��tl�%��G�H��H�hL�`H�h H���t+H%�?��H
@H�D��H��葁�H��H��[]A\A]�H�����t̉�H�ƒ��� ��HE��������H��H��1��H���H���H��E3H�5^�	H�81��LE�ff.����H��� uH����H��H�D?�@H�@H�H�y��@����SH��@��tzH�H�H�� H��xFH��t!H�S�H9�}
H�[�3H�D[�@H����H�¸H��H9�|�[�fDH��u3H����H�¸H�y�[�DH���v�H���y����H�S�H��y���[�ff.����SH������H�3�� u(H��H�{��H�H��1��0y�[��H�D��H�{H�sH���ATUH��SH��H�����tR����{;{t8��H�E(H��{�Ѕ�~�C�S9����H����[]A\�fD�H�{H�sH9���L�d$H��L���l��\t\H�sH�{H��L���qx�Hc|$H��L��H{H�s�CH�{�rl��-uH�sHc|$H{H9�r;�CH��[]A\��H�{HcD$H�sH�H9�s�H�CH���f.�H�{H��L����w��HcD$HC�C9�vOH�C3H�:��w��v!H�5�	1��B�DH�������[]A\É�H�5��	1��zB�f.���K�J���f�AVAUATUSH���0���H�3I��� uRH��H�k��H�H��s[1�]A\A]A^�@H��H��L��H����t�I��H��t�H9�w*L��[H)�]A\A]A^�H�kH�sH�H��r��fD1�L��H��H���k��
u�H��L��H��L���t�I��H��t�1�L��H��H����j��
MD�돐��H���k�H��� u�����H��H��?H��?���f�H�x��H��H��?H��?������H���Sk�H��H���'X����AUATUSH��H��H�=?&4��H���}�L�-*&4H����¯�DzH��H��H��H��L��H��?H��H)�H��H��H�H�BH)�L�$	�4>�I�EL�-�%4L��� t9�>�I�}J��L�$L�lI9$u)I�mH��[H��]A\A]����=�I�} ��DH��H�=N�Y��H��H���nZ�I�$H��I�mH��[]A\A]�����vA�H��H�D%4��S���H�=.%4������ff.��AVI��AUATUS���N���������E1�M�f�?DH����I9�}E��tXL��H��tI�FJ�4(H��H���H���z�I��I�H�� t�I�FI9�|���[ID�H��]A\A]A^�DL��H��tI�FJ�<(H���H���a����tDI�>�� tI�~�XZ�H���B���H�������H�=q�	1�1��@������S���
����H�H���.z�[L��]L�r�A\1�A]1�H��A^�~���1����D������f�AWI��AVAUATUL��SH��x�T$H�L$L�D$dH�%(H��$h1�H��� ��H��L�GH�D$@H��L�D$P���D$HLƨ��H�t$X�����t$���A��tAƇ�D$1��D$/�D$(L�t$`L��I����H��H9�u�E1�1�L�d$@H��L������ƒ����������D$�D`��H�GL�GH�D$@�D$HH��I�4L�D$P��H�t$X���:���H�T$<H��L���mf��^�!����|$HcD$<HD$P�����D$��D$/�D$(�!����D$/1��D$�D$(L��I��fD�H��H9�u�A�����H��uc�L$��u#H�D$H�H��uA�������D$(����H�D$L�(L��M����H�D$H�H��������L�DM��t)L��L��L�D$ �L�L�D$ H������;D$(�u����L��H���U]��`���1�fDA���tA�<��A�H��H=u�H��u�|$/tH�D$H�H��$hdH3%(ufH��x[]A\A]A^A_ÉT$ �a��T$ H��H�D$L�(H��"����T$ �A��T$ H�������D$�D$/��D$�D$(�n����1J���1Ҿ�����8���1Ҿ��7���H��1���;�H�0fH~�H9�tMfH~�H��<������tH��H��u*H���DfH~�H��H��H��H���f.�H���wH����SH��H��H�� H�t$�WZ�H�D$H��tLH�8�� u1H�p H�xHc�H9�uIH���IA�H�T$H�T$H�T$H�� [�@H��H�p����H�t$H�ڿ�A�H�� [��S8�PXH�5t�	H��H�L:3H�81���9�f���@��u*H�����t!H��ƒ���t�t
H%����H�H���H��H�a93H�5b�	H�81��9�SH���WT��u[�H�j53H�SH�5g�	H�81��u9�DH9�v_AVI��AUI��ATUH��SH��H��L�d$�@HcD$H�H9�vH��L��L��H���Jn���Se��u�H��H��L)�[]A\A]A^�1��f�����~H�ȃ�H�IH�8��;�PH�.93H�5W�	H�81���8�ff.�f�UH��1�H��SH��H��1�H���j�H��yH���[]�@�[z�H��H��H���mA�H��H��[��]��<�ff.�f�ATI��UH��SH�\6H��u:H��u1�[]A��$A\���f�H��H���W�H��t�[1�]A\��H��H���eW�H��t�H��u
[�]A\�H��H���EW�H��u���ff.�f���UH��SH��H����u+H�����t"�����t]��uH��H��H��[]�r[�f�H�5�4H��tH��H��H�ߺ[1�]�I�@�H�=���'}�H��H�]4��H�l/3H�5σ	H�81��37���SH���Ca�H��[H���G����AVAUI��ATUSH����x�H�hI��H�UH�EH�H9tnI�EHc}��tI�$R�}I��~(�fD��L����3;�L��H����q�;]|�[L��]A\A]A^��[L��]1�A\A]A^�:�fDH���P�H��� t8H�UH�KL�2L9�~HH�{H�4L�H���5g�H�I�M�u�U����H�UH����L�2L9�~
H�{H�4��I��M�u�!�����SH��H����tHH�L$H�T;1��A�H�|$@��uB��A�ƅ�y$H�63��H�5sCH�81��5�D�
H��1��i2�H��[���|����AVI��AUI��ATI��USH��H������M����M9����%0=tdH��L�����xu�Q�H��L��H��L��L����g�H��H��t1�L��L��H���$j��tЉ��)a��u�L��H)�[]A\A]A^�fDL��H�F�	fD�S���t�<t�H��I9�r����[1�]A\A]A^�D��AWAVAUATUH��SH��(�D$����L�mA�� �RI��L�eA��L�,$H�$L��A�I�������?M�41�M9���@�H��H�I9�t]L9�v�H�LL���1��+�E�I��H�E�� ��H�UI9���H����H9$���1�H��H�I9�u��T$����I���*H���uLcd$H�5�4O�d$H���3L���1��E���-H��1��D�L����&H��1���D�I��H��(L��[]A\A]A^A_�f�L9e�H�E�>���DH�EL�eH�$����H��t�H�LL���1��+�D�I���DH�L$H�<81��u>�H�|$@��u"��>��A�DI�D�d$�$������y��ܐ�L$���@����|$��?H�������H��H��H!�L�|������H�=�9�x�H��H�m4����H�LL���1��+�C�I���j���H��13H�5��H�81��1����H�W��u	H�����u
1���UH��H��SH��H���M��u
H�E��`H��`tH��1�[]�f�H���`H��`t�H��H���iF������SH����tH���1�H�����t�H��ƒ���tߩu$��u�H���no�H��H���<�H��H�#���[�H��03H�51�	H�81��1�ff.�@USH��H����tH���0�f.�H�����t�H����ƒ���t֩uP��u�� t(�@@t!H��H�k�d7�1�H�ߋHH���t�H���0��0u	H%���H�H��[]�H�03H�5{�	H�81��Y0�f���USH��H���>���H��� u����„�uH��[]�fDH�{��„�t�H����H��� tGH�CH�kH��H��6�HcP�E��GH�H�؉с�0��t�H���H�H��[]�H��H��?��H��H	�H��� u�H�k뢐1�H���VE��@��AUATUSH��H���j���H���B�H�+I��� ulH��L�c��I�,L��L��H�����H��~ZH)�H��� t'H�kIcUI�<,���SH��H��[]A\A]�DH��H%�?��H��H	�H���L�cH�k�fDH���H��[]A\A]�D1��D�����AUATUSH��H�����H���r�H�;I��� ��H��L�k��H��I�t-M��tL9�vL��L�����H���H��H��[]A\A]�H)�I�tL��H���c�H��� t5H�kIcT$I�|-���~�1���C��fDL�kH�k�fDH��H%�?��H��H	�H��ff.���AWAVAUATUSH��H�����H����I��H��� ��H��L�k��H��M�t-M����M9���L��L��L����L��L��H��M�DI��L��L�D$����M��L�D$$H���H��H��[]A\A]A^A_��H)�M��~L)�L��L��H���wb�H��� ujH��H%�?��H��H	�H�IcT$I�|-���~�1��B�뗐L�kH�kM�t-M���7���L��L��L��H���)���H���a���H)�H��� t�H�k�ff.�@��AWAVAUATUH��SH��(�f���H���>�H��I����H�E�� ��I��H�]%0I��A��I�=��H������x��A�}�7�D$I9���H�D$E1�H�D$� ���A��w�� A���H��L9�sK�t$��t
��ƒ�v�H�T$L��H��L����`�L��
A�Ɖ�A�UX����HcD$H�L9�r�E��teH��(H��[]A\A]A^A_�DH�]L�e%0I�=�!���E1�I9�v+D��у�A��w�� A��H��I9�w�E��u�H��(�[]A\A]A^A_�fDL��D��M�}0�iH�L��H�މ�A��A��J���L���E�������D$������AWAVI��AUATUSH��(H�|$���L���i��H��H�����M�.A�� ��I��I�nA��I�E1�L�t$I9�w)�DH�ھD��SX��u~HcD$H�I9�vRL��L��H��H���8_�H�ھ
A�ĉ�SX��t�H��D��L�{0�uG�H��H�ډ�A��HcD$A�H�I9�w�E��t2H�D$H��([]A\A]A^A_�fDH��D��L�{0�^���H��(�[]A\A]A^A_�@H�D$H�hL�hI�������AWAVAUATUSH��H��(H�<$�R���H���*��H��H����H��� �3H��H�[��L�$��L�t$H��L��H��L���(^�H���ljD$�UX�L$��A����HcD$H�I9�w�fDHcD$H�I9�vRL��L��H��H����]�H��
A�ʼn�UX��t�H��D��L�}0�F�H��H���A��HcD$A�H�I9�w�E��tH�$H��([]A\A]A^A_�f�H��(�[]A\A]A^A_�@��H��L�}0�z]�H��H���A��HcD$A�H�I9��E����fDH�$L�`M��t�H�XH��t�I�����f���AWAVAUATUH��SH��(����H�����H��I����H�E�� ��I��H�]%0I��A��I�=��H���\���x��A�}�7�D$I9���H�D$E1�H�D$� ���a��w�� A���H��I9�vK�t$��t
��ƒ�v�H�T$L��H��L���"\�L��A�Ɖ�A�UX����HcD$H�I9�w�E��teH��(H��[]A\A]A^A_�DH�]L�e%0I�=�!���E1�I9�v+D��у�a��w�� A��H��I9�w�E��u�H��(�[]A\A]A^A_�fDL��D��M�}0�[�L��H�މ�A��A��J���L����@�������D$������SH����tH���%�H�����t�H��ƒ���tߩ����u�� t
�@@t>fDH%���H�H�C�H������xtZH�H%���H
 H�H��[�H�{�;�H�H�CH�C�ƒ���u�H��H��?��H��� t�1��@H��� ��H���?��u�H�H%���H
H�H��[�H��$3H�5'v	H�81��%�DAWAVI��AUI��ATUSH��H��HcAL�:�����QI��9�tO����L9�sHI�o�M��u�ffDH�E�H��tWH��H��L��L���F]�H�H�I9�w�I����I��H�L9�L��M�}HF�H��[]A\A]A^A_�@L���I��������H���>���j���M����L9���fDJ�;I9����;��I����H�SH��H��H9�w�fD�}xQH��H9�u�H��H��H9�r�H��H9�vH���������H�
t�H��H9�r�vfDH��H9�sg�}y�H��H)�I)�L��L��H��I���\�Hc�H�I9�v	M���B���M��H��M�}IE������H9�sH��H��H9�r��I�E���H���M�}L������UH�H��SH��H��H�T$E��t6H��tH9�sH��H��H)�[]��H��H��H��[H)�]��H�T$����@AUI��ATI��UH�,7SH��H��H���)���9A�|$tAH9�r�
�H�H�H9���L��H��H���2���H���0[]A\A]�L����<��u�I���-H�CH��H9�r��H��H9��r�;y�I���������@L��H��H���22��~�H�H�H9�tjH��H)�H��~HH�CH��H9�s�;x�H��H9�u�H��H��H9�r�@H��H9�vL�(t�H���H9�v�;x�H��H9�u�H��� []A\A]�f.�I��~*H�CH��H9�r�sH��H9�tg�;y��H��DH9�r�!f�H��H9�t�;y��H��H9�w!H���[]A\A]��H��H9�t߀;y�����DH��H��H9�s�H���������H�t�H��w���H��H9�w��q���H��H��H9�s�H���������H�t�q����H��g���H��H9�w��\���f�UH��SH��H��H�6H��������H����O�H��� uQ�������uP�E%0=t}= u$H�������x��H�H%���H
 H�H��[]�H�{����t�H������xu�H���~��H���V:��u�H�H%���H
H��fDH���H��H�H��[]�H���[���0����H���(��H���:��H��\����� ��H��H�SH����H�4
H��~TH�JH��H9�s��:����H��H9�u�H��H��H9�s"H���������H�9t�R�H�9uLH��H9�w�f�H9�s�:����H��H9�u�H%���H
H�����f�H�SH�KH�4
�e���H���f.���AT�USH��H����@��u	H�����uIL�d$H�--DH�=�4L��H��H��H�\$�.S�H�D$H��4t�H��[]A\�f.�H��Ѓ���t�H��� t���fD��ATI��UH��SH��H����$�H�kH�L�cH��H�k H
 @H�H��3H�H�CH��[]A\�fD��H��8dH�%(H�D$(1�H��3H�|$H��H�$ �@H�H�t$H�t$ H�D$����H�T$(dH3%(uH��8�� ,���AWI��AVAUATUH��SH���90��H��I��I���$��tZA�|$�I��L9�r���H�I�M9���L��L��L���$-������0E�I)�A�E�U�A�} t>M��I)�I��~rH�EH��H9�r�;H��H9�t/�}y� A�E�fDM��I)�H��L��[]A\A]A^A_�L��H��H9�sH���������H���H��fDI9�w�1�H��I9�t'�}y���I)�M��A�E ����r���fDL���6�D$������M��I)�I���CH�EH��H9�s�}H��y�l@�;xcH��H9�u�L��H��H9�s(H���������H�t�8f�H��-H��H9�w�I9�w�@H��I9����;y�fDL��L��H���z+�H�������������H�H�I9�����L��H)�H��~FH�CH��H9�s��;x�H��H9�u�L��H��H9�r�@H��H9�vH�t�H���I9�w���fDH��I9�������;y��Y����H��V���H��H9�w��Q���H����������0ED$H)�I��A�E��A�} ����A�E����H������f���H���%0��UH��H��S�Ӄ�H���������*Z�x~H���4��t�0�0�-@H������H�u�� t:H�uH�}H������Hc�H�UH���H	�H�UH��[]�fD��H��H�}����U���k���ff.����ATI��SH��H�H������tk��uO1�I�4$�� t!I�t$I�|$�0�H��H1�[A\��H��I�|$���0�H��H1�[A\�@L���#�=t�Hc��@�U���ff.�@��H����N�H��H�D�f�AW1�AVAUATUSH��xH�H�|$(�D$bf�D$f�D$h�� u1H����H�T$8H�|$8u3H�D$(H��x[]A\A]A^A_�f�H�D$(H�@H�D$8H�|$8t�H�\$(H������H�I��H��H�$�� �H��H�D$ H�D$ HD$8H�D$@�H�D$I��H�D$bL�t$iH�D$H�D$T����H�D$H�D$XDH�L$H�t$ L��L���[J�I��H������u4H�|$t,H�D$�8�(���A�}��F�������H�t$L��L���'�Hc�H��~�M�dL��L��L��A�W L����ʼn�A�WX����L�����A�WX�����D$�H��L��L���7�L��H��L��������@��t���@H��L��H�k�L���9�I�D-L�$$�D$H�D$0�H��L��L���7�A���I��H��@H�D$0H�݀8�'H����H��H���u�L��H��L��L��1��39�|$�x����|$�H��L����H�|$X�6�L��H+D$ H�\$@�H�D$HL�l$�D$T�/����L�$$L��L��L���&���{���L��L��L��A�W ���f����H�L���ωL$PA�W(���N���H�H9��C����L$PL��L���A�W0L��L��L���%������L��H�4$L��A�W L���t$��A�WX��������D$����(H�4$L��L���n%��~"Hc�I9�tzL��1�H)�L���*����DH9����������~���H��I�t-L��L��� %���u#H��u�H�ڿL�1��s*��F���fDH��H�}H)���@H��L���-���DL��L��L��A�W L���t$��A�WX������������H�D$�8��C����A�}��$����������D$�,���H�l$XH���4�L��H��H��������1��I���f�H�D$(H�@H�D$ ����D�|$T�L�t$��L�l$bL�d$iL��M��I��H�L$H�t$ L��L���`F�I��H����H�t$L��L����#�Hc�H��H��~�H��L��L���4�L��H��L���H�����o��uH��L��L���<6�I�tL��L���|#�9�tL��H��L���
��A���H��L��L���3�H�\$@L��H+D$ H�D$H�0���DH�\$(H����H�Hc@�� ��H�L$(��uH������t�у���t	��@��H�\$(H�l$@�Hl$8H�{H�4(��H�k H�CH��� ��H�D$(H�XH�D$HL�t$@H�T$8L�$H)�K�<4L���G�H�t$bL��L���G�H�L$(H��� �|H��H%�?��H��H	�H�A�GH�<+�����H�|$(�����fDH��L��L����4��p���D�H�l$@Hl$8)�Hc�H9�4H�D$(H�X�B����H�D$(H�h�DL���8,���q������H�<(���8�H��H�D$(H��� uxH��H�p��H��H���G4�H��H�D$(H�HH�X�t)H�H�L$(H%�?��H�H�i ���Hc�1���&�����H�L$(H�H������tɉ�H�ƒ��� ��HE��H�D$(H�XH�p�H�
�d	��
H�5a]	H�=c]	�$��SH�����=0t[�H���f��H�5$2H�PH��3H�81��j�f.���H����=�HE�H���ff.���H���c�=0�HE�H���ff.�AWAVAUATUSH��(H�H�t$�� �H��L�o��H��tOH��3I��M�dH�H9D$���o�H�|$I��H�/�� t,H�oH�OH��t/H�$H9���H��(H��[]A\A]A^A_�H��H�O��H��u�IcF���M9�w��@L9���IcFI��L��L��L��L��H)���1�L��L��H��H��A�V����IcFH��H)�L9�r�H��L��L���1�1�H��L��H��H���8��
HD��L�oH�_����{�H�$HcPD�t)�H9�u'H����H�4)H��H�$H��PH�$����H�t$L��H�$�(�H�|$I����H�$=0����E:t�����M��I)�H��~H��L��H���)�������L��L��L��L����0�I9��[H�D$H�D$H�D$�w���f�A��
�e���fDL����H��Hc@��LA�D$�<
t<
�8���I�\$�L)��+���DI�\$�L9�vA�|$�
uI�\$��L)������L��L��L��H��H)��<0�H��L��H��H��U��HcELE�L��H)�L9�s`L��L)����DM9������A�|$�
t���f�A�|$�
t I��A�|$�
u�I�\$�L9��o�����DI��M9�w��DL��L��H���/�1�L��H��H��I��M)��6�M)�L��
ID��0���H)��(���f.���SH���s����xt
1�[�f�H���8'��u�H����[=�����ff.�@��SH����H��[�p�g������H�m3H��H���H�8���f���S�VK�H��H���;�H�H��H���H��H�[�ff.�f���H�
3SH��H���H�8�A���H��H���G�H��[�ff.����H��t?USH��H��H��H��H��3�KH�8���H��H��H�����H��H��[]�fD�J���SH��tH�����H��[H���rJ��
��ff.�f���S�9�H��H���:�H�H��H���H��H�[�ff.�f���S�F9�H��H���F�H��[��USH��H��t%�~H��u!H���@�H��H��H��H��[]����g��H��
3H�5<W	H�81��_
�ff.�@��H��3H��H��1�H�8�%��D��H�m3H��H���H�8���f���H�M3H��H���H�8����f���UH��SH��H��H����H��H�މ�H�3H�8H��[]���ff.���H����H�u H�����tH��у����H��sH���f.���H������H����7�u H�����tH��у����H��sH���f.���H������AWAVAUATUSH��H����uH�����tH��ƒ���t��tH��H��[]A\A]A^A_�f�H���B�H�H��� ���Ѓ�������@��L�c L�kI�$�� �]I��I�D$I��I)�A��L�sL��L)�L)�I�����t"�΃���tL��H�΃���H	���M��H��I9l$��H��%M)��
�L��H���BI��H��LhLpA��H���H��%��	�I��H��H�A��u$H�����t�ƒ���t�� H�Ef.�H%�?��H��H�EH��� �GH�CH�EH�CH� tH�CH�EH�C H�E H�%@H	�H�EH�H�k H%����H�M��u
H������I�ƒ���t4��@H��,�H��H�s�H�ǃ�萿��I��H��H�A��H���ƃ�����H���6�H�EH�H%�����0H	�H�EM��ujH�����ta�ƒ�����H��ʃ���t��H	�H�E�ƒ���t/H��H���H�}H�U������������H���;��v����H���m����H�������@H���xB���@����M+l$M�|$�����H���}���H��΃����Z����g���H��H���"��H������H�ƒ�`H��`�����H�U��`H��`�����H��H����H��m���fDH��H1���l���H������tH��H������t9��I���L�����L���A�H�����H�߉L$�A�L$��H�
vY	��H�5�Q	H�=R	�n�ff.���AUATI��USH��H���uHH�H��I��H��%`H=`tW���H�H�� H�I�$I�EH�EH��1�[]A\A]�@H��������I�$H���[]A\A]�@�c���H�3�� ��H��H�{��H����H��u�H������w����у����i���H�р�H�xH�t`H��H�ʁ��G���H��H�D$�A9�H�D$H��-���@I�$4H���[]A\A]��H�sH�{�j���H�����ATUH��SH�H��H�с� ��H��I��H����H����A������H�M��tt% I��H��tOH�EH�uH�PH�{M��tH�{�a&�H�E�� �,H����H�H��H��?��H	�H�H��[]A\ÐH��H�u��H����H����������ƃ����q���H%���H�H�UH�с� �^���f�H�~I����A�����5���H����H��M��u!H�����tH��ƒ���t�� H�DH�E�� twH�EH�CH�EH�E tH�EH�CH�k @��u	H�����uVM������H���������H��ƒ����������@H���@H�E�����H������H��H���-��u�H���`H��`u�H�E��`H��`t�H��H�����r���UH��SH��H�����H�uH������t/H���G1�H�H�UH%�����0H	�H�H��H��[]�@H���=����@��SH���;�%H���F�H��H���{����u H�����tH��ʃ����H��s[�D��u�H�����t�H��փ���tށ�H	�H�[����S�*�%H��H��2H�8��H��[H����AUATUH��SH��H��H��� ��H��%`H����H=`��L�e L����)I��H�A��uH�����t��H�ƃ�H�� ��HE�H%�?��H�SH�H�EH�E tH�EH�CL�c H��u
I������uM��tHH�uH�������LH���/�H�H�UH%�����0H	�H�H��H��[]A\A]�DH�����t�H��ƒ���t��@H�H�H�u�Ѓ����H��r�@���z���H������m���������_�����H	�H�3�J���f.�I���������I�$�ƃ���������������H�
AS	��H�5�K	H�=�K	�I�f�%`H�VH=`�b���H��H������H�u������H����������H��Ѓ����%�������H����:������L��H�������x���H���`H��`�h���I�$��`H��`�W���L��H���1��G���ff.����USH��H���n8�H�o�2H�:H9�uH��H��[]�D�%��H��H��H���H���H��H��H��[]�ff.���UH���%SH��H��2H�8��H��H��H����H�E%HH%���H�H��H��[]�f���AUATI��UH��SH��H���4�H��D�h�7�H��L��H��[D��]H��A\A]�ݵ��ff.�f���AWAVAUI��ATUSH��@����H�H���FI�]H�ف� H���?H����H����L��H����1�L��Hc@H�T��D$H�D$�7'�H��H��� �8L�}H��tuI�M�� �rH��I�u��I��I��L��L����I��?I�I�M9�|�K�<7L��L��M��n�M9�~�H��K�<7L��L)��W�H�E�� ��H��H%�?��H��H	�H�EI�<�|$��4@��u*H�����t!H�U�Ѓ������H����L��H�����H��H��[]A\A]A^A_��H��������H�H��H��ulH����H9������H��2H�5�H�81���@L�}H������H�]�D���f.�H���-�H���2���I�]�X����I�]H9��D���땐M�uI�u���A���2���I������%���I�E����������%H	�H�U����fDH�T$1������H��2H�5�H�81������USH��H��H��� u[H��H�w��H���$�H��H��H���:��@��u"H�����tH�U�Ѓ���-�H��s"H��H��[]��@H�WH�w�fD��u�H�����t�H�������t�%H	�H�U����H���$�H���+�H��H���o@�ff.�@��AWAVAUI��ATUSH��H�v�I����M�EI9�H�D$�D$A�� ��I��I�mA��N�dA�I9�vgL�l$M��@�]L�e���v�i��#�8�M9�v!�U��$@�ǀ�@@��@�u��{u�I�L��L9�r�L�l$A�~�"I�~��I�lI��L��1�L���T#�M�EI��A�� �0I�]M�EI�I�GI� tI�GL�T(�"H�hI9��v��L�c��"�H��\�?��#����
���
���	�#���R�����������o�����\eH��L��f�U���f���\t*��"t%���n'��t*I��L������fD�C�<w�I��L�����D��y�|$u=I��L�����f�I�mM�E����I��I�]A�������L��L��H������~�L��L��H��A�V ��tf�I����u��k�I��Hc�L��.���D�E\L��H���U�L9�������"H�]f�EA�~��I�NL��H�D	1�H)�H���V���a
�I��I�EL��L��%I	�W�I�H%���H
I�H��HL��[]A\A]A^A_�H�EM9�v)�S��$@�ƀ�@��@�u��{uH�U�E\H��H���E#L��H���=�����\nH��L��f�E��!����\rH��f�]�L���	���A�\tH��L��fD�]�����L��L�T$���L�T$������������A�\fH��L��fD�M����f�L��L��������������\aH��L��f�M�����\vH��L��f�}��i����\bH��L��f�u��Q�����L�T$ ��L�D$�L$�T$(��$�L�M�L$L����L�D$L�T$ uHL���E\L)�H�D$L;t$tEH�t$L��L��1�L�T$ H��L��L�D$�q��L�T$ L�D$�����T$(L��UL�����L��L��H��L�T$8L�L$0�L$(L�D$ �.�L�D$ �L$(L�k���L�L$0L�T$8���D$�q���L��L�T$0H��L��L�L$(A�V L�L$(H�t$H�xA	��1�Hc\$L��L�L$����L�L$L�L����L�L$L�D$ L�T$0I�,�
���ff.�@U1�1�H��SH����H��H��H���@-��u!H�����tH��Ѓ����H��s
H��H��[]�@��u�H�����t�H�E������t�%H	�H���fDAVAUI��ATI��UH��SH��� �SH��L�w��L9��M���M����K�T%H��L)�H9�LO�M�M����H�����+PHc�L9�}K�D%H9���L��L��H����H��H�uH�������$H���"�H��� tLH�{�„�uL�UH%�����0����H�H�U��H	�H�H��[]A\A]A^�fD���„�t�H���t����x��H�H%���H
 H��fDI�������H��[]A\A]A^�fDE1�E1����DL�wH�_���H���8�H��H���],�%H�����H��H���E�H��LhL�`����DH
H�����f�H���(.�������H��訥��H������.���H�H%���H
H��������UH��SH��(�����G����{H���������H��H���H��t�؃���t��t
�����tsH�M�� u\H����E1�H�T$H�t$H��H�L$�9��H����H��tH�T$H�t$H���H���H��([]ÐH�����u�H�M�� t�H�M��H�H�޺H���
���H��t�H��� uO����HD�H��([]�f�H�^��t?H�H�6@��tkH�H��H�����H��([]�fDH�x�HD�H��([]�H��H�t$�{"�H�t$H��뭐���W���H���_"�H���M����H���H"�H��닺���"�@��U�%SH��H��H��2H�8����H�����H��HLߨuH�����tH��ƒ���t�� H�EH�] H�{���H�E�H��H��[]�f���H���1�1����ff.���SH��H����
�H�H� uH��[�fDH�@[�f���H�H�H��u�@H��������SH��H��H���u<H�����t3�ƒ���t)� u2�� t�@@ufDH�{�W�H��[Ð�� u�H��[�DH�=��3H�t$1�H�\$�h��H��� tɉƒ���u��@��H����u,H�����tH��у���t��`@H�� t�fD1��DSH�_ ����Hc@H�[�ff.�f���H�
!H�q<	��4��@��H9��cAVAUATUH��SH��H��譡��I��H�EA��A��0����H�������H�3A��A��A�������NI��A���~�� t��@@��f�A���@���\I��IcUA�� �H�ǹH��)у�Hc�H9��A����H����H�3H�EI��A�� M����H��H�u��H�H�{M��tH�{���H�E�� �cH����H�H��H��?��H	�H�L��H��Mc����H�H%���I	�L�#[]A\A]A^�f���H�{��H�3H�CH�CH�EA��A��A�����L�����I��IcUA�� ����H�})�Hc�H9���H��� A��HE�H�EH��?��H�3H�E ��H�CH�E�� ��H��L�u ��H�C@����H�������H�EL�s �ƒ���t	��@��H�E�ƒ���tvH%���H�EH�E�H�e�?�����DH�E����HUH�u�a���H�EH�CH�E�� �Y���H�EL�u H�C@���\���L�s H�E% H��t�H�E�DH�����H�����������ƒ��������%H	�A��H�3H�EA���n���f.�A��u	I�����u/���������H��@H�3��@�� I���y���L��H����H�3��u�H���`H��`u�I���`H��`t�L��H�����H�3�H���2H�5B;	H�81�� ����UH��SH����u	H�����uuH�5F�31�1�H����uFH�����t>H��у���u1H��u"H�����tH��΃���t��H	�H�H��[]�H��H��[]�
1�f.������u�H���ϐ��UH��SH���#�%H���a��H��H��H����H��H��[]�f���H��� �`H��������_AWAVAUATUH��SH�����H�UH�$�� �@H�U1�H���Z�I��H�EH�� ��I��H�]I��A��N�<I�6H���� ��I��I����0A��O�dH���I��I��A��A��Lc�E�������H��L$�;����L$�x���� ��H�$�x�F�D$ �(f��D$Lc�H��M)�L��L�L����I9���H�$L��H��� ��Ā;�IL$�L$빐H������������H�������@H�$H��L����H��Lc�M)�L��L�L���
�I9�w�I�6H�EA� H��H�� �� fDH��ucH����H�UH��H��H%�?��H	�H��I��KfD��M�fMf��0H�������H�}A������H�]L�}I��/���H��t[H�EI�FH�E%H	�I�H�uH��������L���h�I�H%���I	�L��M�.H��[]A\A]A^A_��H������H��H�ƒ��+����Lc�I9�v�H���C�I��A�$I9�u�I�6H�EH��H�� �� ����DH���p"���Y���f�I�6H�ELcl$H��H�� �� ���H�<$���������D$����ff.�@��SH�H���� ��H��H�����„���%0=t+H���c����xtH���5���H��H���z'�H��[�DH���X���H��� t@H�CH�SH�T�H9�v�fD��2H��H��@�p��JH9�r�H��[�f�H��H�C��H�T��fDH��„��Q���H�����H��[�ff.���S��H��H������H��[�fD��S���H���~�H��H�����H��[�+�f.���S�V�H��H�����H��[�fD��S�v�H���.�H��H���Ӻ��H��[��*�f.���S��H��H��蛷��H��[�fD��S�&�H�����H��H���s���H��[�z*�f.���S��H��H�����H��[�fD��S��
�H����H��H���û��H��[�**�f.���UH���%SH��H���2H�8�o��H��H��H����H��H��[]����AWAVAUATI��UH��SH���B9BtPI�փ�t`E1�L9��\@H��L��L��I����H�H�I9�w�H��L��[]A\A]A^A_�f.�Hc�I)�J�D!�H�H��I����H�����u�L9���I���������E1�}��@L��H)�H��~lH�EH��H��H9�r�f.��;xiH��H9�u�L��H��H9�r�@H��H9�vL�8t�H��I9�w3f.�I��,����I9�v�H���H��I9�v׀;y�H��H)�I�L��L��H��I����Hc�H�I9������}�6���H����f�E1�������AWAVAUATI��USH��H����B9B��I��I�σ���E1�H9�voE1��f.�H�A� I��H�L9�s0L��L��H�������A�0IcEH�I9�IB�I��L9�r�A���tH��L��[]A\A]A^A_�f�A����Hc�I)�J�D!�H�H��I����H������(I9��0E1��;��L��H)�H����H�CH��H��H9�w�fD�}xQH��H9�u�L��H��H9�r�H��H9�vH���������H�t�H��L9�r�H��I9�v�}y�H��H)�I�L��L��H���z���~6A�H�H�\�� A�I��L9�����;�=���H����H�]�0��DI9�vH��H��I9�w��A���uA�I����f�I9��(���E1��t���A���uA�E1��e���E1��]����AWAVAUATUH��SH��H���%0=�~I���"����xtlM����H�E�� ��I��L�mI��A��M�Á�0�\$ufH�L$L��L��L���C���H��HcD$��t$H�UH���H	�H�E�H�]�� tH�]H��H��[]A\A]A^A_ÐH�������A�D$A9D$td�� t|����1�M9����L��L��L��H����H�I�M9�w��f�L�mL�uM��,���H������I�����Hc�M)�J�D1�H�H��H���U�����[��I9��A�D$�l����L������]���������I���������1�M9���f.�A�}��L��L)�H����I�EL��H��L9�w��}xMH��H9�u�L��H��H9�r�H��H9�vL�8t�H��I9�w�MDH��I9��;�}y�H��L)�H�L��L��H��H�����Lc�I�M9��S����;���fDM9���L���f.�L���1�����M9�v�I���������1�A�}��L��L)�H����I�EL��H��L9�w��}xIH��H9�u�L��H��H9�r�H��H9�vL�8t�H��I9�w�`�H��I9�vO�}y�H��L)�H�L��L��H��H���
�Lc�I�M9��W����O���f�M9�vL���fDL����H��-���L��L)�H��:1�M9�����f�A�E%�=���I����H�M9�u����I�UL��1�H��H��L9�v%@A�E%�=���I����H�L9�u�I��H9�s�H�DI�EI��H��H��H��H	�H��H!�H��H��H�H��H��H�H��H�� Hƒ�H�L9�w��-���ff.�@��H��1����H�@H�xH�DH����H��H���d��@��H�����H��H���!�����!��AWI��AVA��AUATUH��SH��H��(�%0=��H�|$�:���L�T$�x��L��H������H��I���u��L�T$=0��E���LL��L��L�T$���L�T$E1�I��L��H��L�T$D�D$�|���L�T$D�D$I��H����I)�M9���M�*A�� ��I��M�zA��K�/H�D$H��tE����I�I��M����L�3A�� �xI��H�CA��H�D$L�t$I��� �FH����H)��Bf.�M�,H�L$L��L��L�����I9��@H��L)�H)�H����H�I��H�t$H�|$M��H��L����I��H��y�H��(L��[]A\A]A^A_�fDM�zI�BL�H�D$����L��H��L�T$�8��H��I������=0tVL�T$A�M�*A�� u_I��A��E���m���L�;A�� u2I��M��A��H���x���L��o���DI������L���@L�K�H����M�j�f.�I�Z����H�CH�D$H�CH�D$���f�I����E1��=����H�t$H��L��L��L�T$L�L$裴��L�T$L�L$H�����������tA��1��̔��@AUATA�̹UH��H��SH��H��H������I��E��tlH��xxH���P��H��� uxH����L��H���F������u<H�����t4H��ʃ���~X��u"H�����tH��փ���t��H	�H�H��L��[]A\A]���6����@H�S�f.��H��r��AWAVAUA��ATI��USH��(�H�|$%0=���P����x��H�|$�l��H�(H�D$�� ��H�XH�hH�H������I�������E���<H9��JE1�H�D$H�$�DH�tL���3�HcD$H�H9�v0H�$L��H��H����
��E��u�H�|�C��HcD$H�H9�w�H�D$H�D$H�D$E��uM���DL�d$D��L��訕��I��H��(L��[]A\A]A^A_�H��H�X��H�� ���DE��t3H�|$L������H�����I��H9��"���H�D$H�D$H�D$뜐���������N��H���v�H�|$1�1�L�V���H�����I���a���fD1�H�=&	���H9������H�D$H�D$H�D$����D��1�����D�����f���1�����D��USH��H����tH�����fDH�����t�H��ƒ���tܩu@��u�� t&�@@tH��H�k����1�H�ߋHH�����H�H%���H�H��[]�H���2H�5
%	H�81�����ff.�AWAVAUI��ATI��UH��SH��(���@�D$H�E�� ��H��H�U��I�����L9�wH�L��H)�I9�LF�H���q��M����H�UH�ց� ��H�] L�EH�MH��������L)�H9��lN�<)L9���}%H��������?H9�~�`H9��WH�I9��H���&@��upH�����tg�Ѓ���t]��@tXH�
�&	��H�5�	H�=�	���f�H�UH�E����H�ѻL�E+\$H��Hcۃ��8����Hct$H�}�H�L$H����H�] H�L$H�EH�E�� ��L�EK�0I���I�<L��LE�L�D$L���G��H�EL�D$�� uAL��H%�?��H��H	�H�EK�<8�|$�wH��(H��[]A\A]A^A_�D1���@L�}��f��+D$H�H9�|XL�E�p����L��I���H�HI�H���H��������f.�HcT$1��T���x����Hc|$�H�L$H����L�EH�L$I��A�� tgL�EH�uL��L��H�L$L�D$�?��L�D$@��H�L$H�EH�EL�EuH�����t��H�ƒ��� ��HE�H%�?��H�] H�E���I��H�uA���H� �2H�5�	H�81����ff.�@��AUATI��UH��SH��@����H�H��L��A��ts���A��H���c��H�UH��% ueH����H��H��H9�bH9�~]H�H��HH�H��tH�mD�lH��L��[]A\A]��H����f.��+��A���fDH�UH��H��H9�~�H���2H��H�5	H�81�����fDH����H���4�����SH�����H������H��[�fD��ATUH��SH���M��HH�H�� u,H��H����H������u	H�����uH�����H�s��f.��ǃ���t۩����u�H��t)�@@t"H��H�����H�H%���H�[]A\�fDH��t�Lc�L�$.H��������L)�H)�H9�~aM�H��uI���H%���H�[]A\�H�{�L������L�c H�CH�H%���H�[]A\�H���2H�5�	H�81��v��H���2H�5�	H�81��^��H��2H�5h	H�81��F��fDAUI���ATA��UH��SH��H���S��H9�}NHc���H� t-H�[H�<+�A����H��H��[]A\A]�f.�H����f.�@��t
H���r��f�H�����t�H��ƒ���t�����u�� t��@@t�I�(��~%�8H�Hu-A�T$�H�D��H���y�uH9�u�H��L��H��[]A\A]�H��L�k���1�H�ߋHL�����������Ic�1������!���H���2H�5#	H�81������S���xH��uH������u[�H���2H�SH�5U�H�81�������H��uH�����uSH��H���a��H�[�@�����u��ff.�f���AWAVAUATUSH��HL�t$ H�|$(L��H�t$ �W��H�t$ H�|$(����I��H�D$(H��� �dH��H��H�D$H�D$ ��H�(�� �aH��H��H�D$��H�+A�O1�H�D$H��H�/�2�L$H�8�k���I��L�`H� tL�`H�t$H��L������H�t$I�<H�����H�|$L�|$��H�T$ H�D$(L��H�H%I	E���L������H�T$(I�EH�H%�����0������ t9I�EH�D$(H�D$8H�D$(L�t$8H�D$ H��HL��[]A\A]A^A_�f.�H�T$ H��H�� H���0Hc�H	���HD��fDH�HH�XH�D$ H�L$H�(�� �����H�pH�hH�t$���DH�T$ H���0H	��I���f�HcT$1��D������ff.�@��SH��H����H�t$urH�����tiH��ƒ���t\�����uLH9\$tmH�|$���H��ƒ���t.�uX��u"�� t�@@tH�t$H���1��H��[�H�����H�{�g��H�CH�C��DH��H��[�H�P�2H�5�	H�81����ff.�@��SH��H����H��H��[��1�H�L$H�������u�H�t$H�������f�USH��H��H�|$H�|$���H��H�D$�K��=0t^H�|$=t��|��H9�ueH�D$H��[]�f��|���{H��uH������t�H�MH���2H�SH�5��H�81����H���2H�T$H�5+	H�81����H�H���AWAVAUI��ATA�USH��H��h�|$,dH�%(H��$X1��H�D$8H�D$@%0=tH��E1��{���xA�ċt$,���I���D$,E1�D�x�H�D$HH�D$H�D$@H�D$H�D$8H�D$H�D$PH�D$ �	fDI��K�D�H�|$H�D$H���H�t$HH���4��H�|$HH��E��t#�%0=t�d{��E1�H�|$H�xA��1�L�D$E��H�L$H�t$ ��I���Ո��I�FM9�u�H���D���H��� �@H��L�k��M�t�:1Ƀ}��M��E����H�D$HA�����H�D$H�D$PH�D$ M9���H�\$L��E��A���"�D9���A��H��I��M9�s]E��tA��ƒ�v�H�T$H��L��L����A��D9��VI9�tD��D�T$H��H��U0D�T$HcD$HE��H�I�M9�r�I��H�\$H�����@A�����H��� �LH�SM��I)�H��H����L9�t+H%�?��I��I	�H��L��fDL�kM��u?��H��$XdH3%(�nH��h[]A\A]A^A_�f.�L�KM��t�1Ƀ}O�t
�����H��M���K���������E���n���M9�����������|$,�@A���I��M9������I��A�E���9�u߅�~�΀|4Pu��ЋD$,��~6A�����H�L$@H�T$8D��D�T$H�t$ 蟌��D�T$���l���HcD$H����M��L+CL9C���L�CH�����H���x��H���d����L$,�����D��|P���������D��|P�����1��-���f�Hc�1�L���3���&����I��f���ATI��U��H��S���L���H��H�����H��[]A\���AWAVAUATI��UH��SH��hdH�%(H��$X1�H�H�D$8H�D$@�� �$��������H�D$HE1�D�w�H�D$H�D$8L�l$@L��H�D$H�D$PH�D$�f�H��I��H�|$H�D$H�z��H�t$HH�����1�H�L$��H�t$H�|$H��I��M��I���Ʉ��H�SI9�u�H��L���5���1�A��L�mA�� �L�eL�mM��D$$E�A��A��M9���H�l$(I��L����+����|P��L9�tA�$I��H��L9�sl��t�E�ƒ�v�H�T$L��L��H����A��=��-H�L$@H�T$8�ljD$H�t$����D�L$�����D$$HcD$HH�L9�r�H�l$(H������@A�$���#H�E�� ��H�UH%�?��I)�I��L	�H%���Mc��T$$I	�H��L�u��u�H��$XdH3%(��H��h[]A\A]A^A_�f�H�zt�H�z�����@I��L�eA��M��x���@L9�t
L��L��D��A�W0HcD$H� I�A��DD���������|P�������fD�\$$�y����L+eL�e����L���������������Hc�1�L��������������������ff.����ATI��U��H��S���L���H��H�����H��[]A\�AWAVAUATUS�H���H�H�|$0H�$�$H��$�%0H��$��L$=t�6t��1ۃx��L��$�L���=��H��$��0��H�D$0H��� ������H��$�H�
�� ��H�z�„���L�t$0H��$�%0�$L���c��H��$�L��I��H�D$@�K��H��I9�tH��$�H��$��.��H��H��$�H��� �H��H�zH��H��$���H����H��$�����D$lH��$�H��� ��H�QH��H��$���D�\$lH�HDŽ$�H��$�DŽ$�HDŽ$�DŽ$�E����L��$�L��$�L���H��I9�u�H�D$L��$�H��L���z��A��A�����A���wwBDŽ�������ѐH�L$0H�ytH�y�U���f��H���[]A\A]A^A_�f�����„��?���H�T$0L������H�|$t D��H�|$�H�t6�I���D���@��H�D$��L��$�@H��L����y�����u�D��$�A�}�tE�eI��M9�u�$L�|$0��� L��E��$苌��M�A�� ��I��M�D�T$A��K�H�D$(�E�D$xE����M��Hc\$x�J�<3H�\$p����L;|$(I��H�D$ ��H��$�H�l$8H��L�|$M��M���D$h�����D$LH�D$XD�d$|�F@�������������A!�;\$h�E�� D$H�L$(�$H9L$�oH�\$@H�t$(H�T$XH�|$H�����H�t$8�D$H9������1��Lc�Hc�$�HD$�D$�<$A��=��_���H�|$H��t=�t$H�t6���H���L�|$l��uH�Ǩ��]�Ã���*���f�1�H�L$@H9L$8�D$h�������|$�D$P��A!�H�D$ L)�I�H�D$`L��L9�|+�M��H��J�t=����L9�}�I��H�D$`L�H�D$ H�D$8H�t$ �|$H��P0�\$P��tH�t$ H�|$L���8�����DD$L�D$LE�� D$H�L$(Ld$ �$H9L$�����H�\$ M��H�l$8M��L)�H�D$0H�H�D$�� �"H�D$ �|$x���H�L$0L�iH�H�Y����H�L$0H%�?��H�L�q �D$L���d���Hc$=0tH�L$0H�H��H�$H���H	�H�H�\$0H��H���
��H���*���H�D$0D�L$L�xL�pK�7H�D$(�E�D$xE�������}tH�|$�������D$LL;|$(����� E1�D�D$l�4$H�|$(�+DA���A���u��G�I��I9��(A�H�Ћ������t�E��t�E�'E����f.�Lc�$�Ic��J���H�t$8���d��\$hLc�\$�D$P�D$L���H�QH�AH��$��E���H�BH�zH��H�4H��$���H��$������H��$�H���t���^����Hc�$�H�$�H;�$������H��$��D$l���H��$�H��$�������H��H9�u�L��$�L��$�H�D$�H��L���t��A��A���txH��L���t��A�ǃ��uD��$�A���v(H�|$t@D��D��H�T?H�|$H�t6����@H��D��F���������E����H�D$�E1��p���H�������-�����H�ƒ��� ��HE�������������H�D$0H�x�~������D�D$l�\$|E���������D�L$L�4$���H�\$(f�H��L)��H*��Y
	HcD$xH�D$p�L,�J�<0���I��I9���H��$��D$LH�L$XL�|$H�l$ H�l$pD�d$hI��@H�\$@H�t$(H�T$XH�|$H���D��H�t$ �D$H9���������Lc��D$=��a��������9H�t$ �����\$�D$8Lc��D$LL��L)�I�H�D$PL��I9�,�M��H��J�t5���I9�~�L�d$PI��I�H�\$L9�t7H�D$ L��|$H��P0�T$8��tL��L��H���!����D$8DD$L�D$L�$��u�|$� F��$Hc�$�M�HD$H�L$H;L$(����L��H�l$ M��L)�H�D$0H�H�D$�� ���|$xA�����H�T$p1�L���������I��1��D$L븐1�H�L$@H9L$ ���D$8����H�|$u�L$l��t؋\$h���Lc�$��j����t$H�|$H�t6���H��tɋt$l��u�H�ǨtB����L���1��D$L����H�T$p1�H������� ���H�D$0H�x����%����#����
���ff.������B�f���1��5�D��ATI��UH��S���L��H��H��H����H��[]A\�ff.�@��ATI��UH��S�]��L��H��1�H��H�����H��[]A\�f���AWAVAUATUSH��X�|$dH�%(H��$H1�H�D$(H�D$0����H�L�l$8A��H��L��H�t$H�D$8���H�t$8H���}��H��A���hH�|$8H��� �H������%L�d$@H�L$(I�ٺL�D$0L��� u��H�E�� ��H��L�}H�¸��I�,��E1��{��L9���H�D$$E1�H�D$���|@A��I��I9�sTE��t	A���v�H�T$H��H��L���=��=��:H�L$0H�T$(L����z����HcD$$A��I�I9�r�Ic�H�DH��$HdH3%(�9H��X[]A\A]A^A_�f�H����H�����������{����H���H��A�ą���L�l$8I�E ��I��M�uH��L��L���Sp����H��膼�=0�oH�T$$L��H��L���H��H�U��� �`H������%���H�MH�H9�vH��@8q�uA��H9�u�Ic�H�D������|@��������fDL�}�M������H�mH�������L�E1��{�(���H��E1��F���A������L�\$H�D$(L�|$0I��L�d$@H�|$8H��M���L��L�\$H�D$�r���D$L�\$��M�sI�D�H�D$DI�L��I��H�D$8���H�t$8H�����H�L$M��1�H�|$8I��L��H���br��L9t$u��6�������H�|$8����M�m�S���H�M�H������H�UH�������H�����}��|$����l��ff.��H����w>u-H�H�D$H��uH���f�H�|$�F��H�D$H���@H��2H�H��ú1��
��ff.�f���AUI��ATA��H��USH��H����~��H��� uIH����H��H��~!L��D���_���H��tH��H��辟��H9�)�H��[]A\A]�f�H�k�f.�H��� uhH��H��?��H��H	�H��� uSH�kH��H�� ��HcP�E��CH�H�؉с�0��t�H���H�H��[]A\A]��H�CH�k�fD1�H�������@AW1�AVA��AUATUSH��H��XH�l$HH�T$H�L$@I��H�v~�|$$�x��H���b��H�\$@H�D$�@�D$8���H��|$$�H�D$A��L�-f4H�t$H�|$���H���vH9��mH)�E1�A��ltA��r�oI��I��?I�I�M��L)�H�D$0H�D$H�D$(H��ǁ�0�|$<H���4�� �H�D$H�@H�D$H��������L��H�I��H��H��H�I��H�H��H�H��H9��:H��H�T$(H��HT$0H)�H9��H�H+t$H9��H�D$H�|$L�4���L$8L��1�H���e��I��H�HH� tH�HH���;H��H��L��M)��G��H��H�M9�~�M��~L�|$(H��L��L���$��H��L�H�D$H�0H�t$(�� ��H�pL�|$H��L������I�H���L��H��L��I�����L)�I9�~�H��~H�\$0L��L��H��I����|$8A���I��� �I�FI)�H��I��H%�?��L��H	�I�H�D$H�%H	�H�T$HI�H��tH�T$HH���H	�I�H�t$L��襷�|$$���D$<Hc�=0tI�H%���H	�I�H��XL��[]A\A]A^A_�H����H�D$����L��M�t-D�D$L��H�H�L$L��I��讈��D�D$L��L��H�D$(H��H�L$H�I��茈��H�D$0H�D$H��� �{����@M+~M�~���H�D$H�p�a���f�H���H��H�t$HH�|$����H�D$H�D$HH��� �[H�D$HL�hH�D$HH��� H�D$H�TH�(H����H�|$HH�t$�{��H�|$H�D$I�ċ%0=t�^���x�����D$H��t	M���.���H���2H�5��H�81�蔪�@H������H�������|$<t(1ҁ|$< �Z���H�D$HH�%0=��H�D$HH�%0�D$<�����A�uL��H��I�����|����A�uH��L���п�H��L����DH�|$����I�����fDI��1����fDL�l$HI�����f.�H�h����HcT$81�L���a������ �v���H�˩2H�5��H�81��j��f.����c�R���f����r�B���f����l�2���f������uAW�G�I��AVL�rAUL�l�ATUH��SH��L�d$�~DH��H����H�|$L�M��A�� ��L��H����H9�|;M����H��L����H�M��u|L��H����H��H�H��H���a��H9�t|I��M9���I�L��H�D$�o��H�t$H�����H�MI��A�� �V���H�u�W���DH�W�k����H�_H����H�uH�M�_���H�t$H��� u3H��H����H�������\���H���[]A\A]A^A_�@H�VH�v��fDH��1�[]A\A]A^A_�1��ff.��������AV�G�I��AUL�jATL�d�USH��H��H�l$�K�H��H�t$��H��H��� uiH��H��H�ƒ�H9�|H��ucL������tdI��M9�ttI�H��H�D$���H�t$H����H�H�ǁ� t�H�t$H�KH��� t�H�VH9�|�H�vH��t�H�{����u�H���[]A\A]A^��H��1�[]A\A]A^�1��ff.���SH��H��H�|$H�t$�u��H�t$1�1�H�������H����HD�H��[�ff.����SH��H��H�|$H�t$�%��H����Z��H�|$��Z��H�t$H�H�� �|H�������u|H�{H� tH�{H��W	H��HD�H��t;H�v�>tO�~tI�g��H��tWH���*��H�T$H�H��H	H��[�H����f.�H�~�����H���2H�5-�H�81��[��H�=���O��ff.�@��AWAVAUATUSH��H��HH�|$ H�|$(H�t$(���H�t$(H�����H����I��H��� �jH�t$ H�|$(L�vH�nH�L��� �kI��H�_%0I��A��I�=�dH�|$ �X���x�KI9���L9���H�D$8H�D$H�D$<H�D$�HA������A���D$����9D$��D�|$8HcD$<Ic�H�I�L9��@I9��7H�T$L��H��L���X��H�T$L��L��H�߉D$�A��D�L$A��E��x��y�L��H��L�����L��L��H�߉D$8���LcL$8H��L��Hc�A�ljD$<A9�D�L$IN��z��D�L$����E9��4Ic��F���@H�|$(H��L�sH��H���L��� �����H�_L�g%0I�=�������0��tD�W���x������3@I9�v/A�>@:;t����;A�����A9���I��H��L9�w�H�D$ H��� ugH��H�L$(��H��H��� ufH����H���H9�t	H�����H��H[]A\A]A^A_�@x�H��H�[]A\A]A^A_�f.�H�D$ H�L$(H�PH��� t�H�I�@|��@r��@H�|$(H����H��H�[]A\A]A^A_�ff.����@��t@��u@H�����t7�����u-USH��H��H�����H��H�����H��H��[H��]�����f.���H��賷�H� u
H��H��ÐH�@H������H��A���I���R��Hc�L�Hc�I��I)�A�� ucL��H����I�L9�}A��H��u!I������tD�؃���t
A����1�L��H���W��f.�A9�|{H���fDH�w��I�L9�|�H��u<I������t3D�߃���tA��@@tA9�}���D�߃���uED��D)�Hc�H)�I�@ A9�}�I�x�
fDI�xH�����r���1�H���B��f�A��@t�H�
p��H�5�H�=�蘴�H��2H�5R�H�81��0����AWAVAUATUSH�����H�(I��� uSH��L�hH��軦��D�xI��A��s1�H��L�����H��uCA�|-��H��L��[]A\A]A^A_�H��L�hH�h�h��D�xI��A��#M��u�H�ߟ2H�57�H�81��~��fDIc�M�D-H�D$L�I9�r)L��H��DH���x�u6D��)�څ��H����H��D��H��L��[L��]A\A]A^A_����L��H��L��L�$���L�$H�H�H�D$H�I9�s��fDL���ж�I�$�� uH��M�l$��A�D��M�l$I�D$��H���2H�5�H�81�蜞�ff.����AUA��ATUSH��H��H��� u4H��L�g��H��H�����H��D��H��L��H��[]A\A]���L�gH�o��fD��H�
A�H�������@ATA��USH����u)H�����t �����tv��uH��[H��]A\�fDH����H��H��tWE��uH��[]A\�f.�H�����=0u�1�H�����H�5�eH��H���2H�81��|��@H����H���ӿ�뚐��AWAVAUATUSH��H��H��(H�H�D$�� ��H��L�{��H�$�E1�H���������H��I���e������H�T$H�T$��u.��DH�SI9��@H����L��H9$�,M��H�T$�H��L�����H��x:H�t$H���e��H��H��t$L�l$�
��H��� t�L9{��H�C�f�H��y3H��(H��[]A\A]A^A_�f�H�CL�{H�$������H��H��L�������;��I��H�D$H�$�-DH�4$H����d��H��H��t-L�l$L��L���#��M��H�T$�H��L���;��H��y�H��yL���N���f��H��H��L���
����H�D�2H�5%XH�81�胛�@��u	H�����uSH���X��H��t[Ë����u�H���H�s�2H��H�5��H�81��7�����AUA��ATUSH������L�%(�3H�H��H�M������uH�����t���������tH���Ŧ�H����H���s��H��H��H��D��L����H��H��uH��H��[]A\A]������t�H��H��[]A\A]��D�H�=��/��I��H�m3�R���H���}�����H��H�D$螼�H�D$�Y��������D��H�����@��H��H�T$H�T$��t��H���@��ATA�UH��S�H��%0=t�M��E1�xA��H���M��H�3�� u#H��H�{��H�[E��H��H��]A\�{v��H�{H�sH���ff.���AWAVAUATUSH��H���%0=��H���M���xtwH��xrL�}L�mA�� uuH��A��0M�t��L��I�ċ@A9D$tdA�� ts����1�M9����L��L��L��H���n��H�I�M9�w�H��H��[]A\A]A^A_�f�L�m�f.�Hc�H�D�H�H��H����fD�÷�I9��
A�D$�u���L�������n���A��A�����I���������1�M9����A�}��L��L)�H����I�EL��H��L9�w��}xMH��H9�u�L��H��H9�r�H��H9�vL�8t�H��I9�w�MDH��I9��;�}y�H��L)�H�L��L��H��H���2��Lc�I�M9��S������fDM9���L���f.�L���1����M9�v�I���������1�A�}��L��L)�H����I�EL��H��L9�w��}xIH��H9�u�L��H��H9�r�H��H9�vL�8t�H��I9�w�`�H��I9�vO�}y�H��L)�H�L��L��H��H�����Lc�I�M9��W�������f�M9�vL���fDL����H����H��81�M9�������A�E%�=���I����H�M9�u��n���I�UL��1�H��H��I9�s%@A�E%�=���I����H�L9�u�I��H9�s�H�DI�EI��H��H��H��H	�H��H!�H��H��H�H��H��H�H��H�� Hƒ�H�L9�w��/����AWAVAUATI��UH��SH��H��(���H��I��號�=0�FL�}D��%0=�{H���I���x�eL��H��E1�觵��I��L��H��虵��I9���L��L��L)�H)�H9�LL�L��M���H�E�� �DH�}M���@H��L�d$N�'��L�<E����M��tM9�MG�L�3L��� ��I��A��L��M����L�}A�� ��I��L�eA��K�<H�$H����H���M)�I�P�D$�fDL)�H��H����t$L�����I��H���H�$H��L��L���Ƕ�I9�u�L��H��L��贯�L��L)�u�H��H�����H��([]A\A]A^A_�L�}A�� uI��A�A�����L�}A��}����H�}M��uGH��� t/H�SH�s�B�����H��(��[]H��A\A]A^A_��H��H�s����L�}L�d$N�'I�E���}���H�T$L��L���n��I���e����H��(H�����[]A\A]A^A_�f�L�s�c����L�eH�EL�H�$H���~���H�[�y���ff.�@��AVI��AUA��H��ATUSH��H���oF��H��H��I������H��L�D$L��H��H�b1�D�������H�4$H���H����H������������������H�3A���%0=tH����E��E1�H�3�xA���� �9H��H�{��H�L��H����n��H�<$H�޹H�����H��H���q��H��xU@H�@H���H��H�D[]A\A]A^�H���h��H��H����H�$H��H������H��y�H���[]A\A]A^�DH�D$�twH�H�4$H���H��x-H9�HO�����f�H��訌�H��[]A\A]A^�H�y�H��u�H�����t�H�����������<���p����H������fDH�{H�sH�����H�<$��H�51�H��H���2H�81��|��ff.����AT1�UH��H�`S1�H��H��L�D$����0H�4$@����H������������������1�H��蔰��H9����EA�%0=tH��E1��C���xA��H�4$H���W��H�u�� �/H��H�}��H�E��H��H���l��H�<$1�H��H���z��H��H���?��H���uHH���[]A\�H���P��H��H����H�$1�H��H��貴��H��H�����H���t�H�@H�xrH��H�D[]A\�@H�\$��tnH�H�������1�H��耯��H������H�$��b���H������V���H������G�����&���8����H���H��H��[]A\��H�����H���H�}H�uH�����H�<$�_��H�5	�H��H���2H�81��T��@��ATI��UH��SH�� H�|$���+HHc�H9���H�|$J�T%H��� uvH����H9���H�GJ�4 H���^��H��H�D$H�D$H�D$H�t$H���m����u!H�����tH��Ѓ���L�H��sAH�� H��[]A\�DH;WtZH�G�@H�|$H� �x���H�G�s���DH�D$�u�H�����t�H�������t�%H	�H��D�C��H���+��H��L`H;h�>���H�h�5������AW1�AVAUATUSH��H�<�H��hH�L$HL�D$P蓘����D$7�D$0H�$H���@��H�|$HH�D$ H��uH��2H�8H�|$HH����1��}��H�D$H������蕣�I��H��� �H�CH�D$H�CH�D$HcD$0�D$E1�1�H�D$(DH�|$H1�L��H�����I��H��������L�pM9���I�FI�vH�H9��H�|$���|$�ML;d$��I���D$�@H�|$P@��uo�З�D$0�D$0��~o�|$0�D$7H�$����H��� ��H�{�����71�蹦�I�����H��H�K��H�L$H�D$�����D$0�D$0���H�D$P�D$7H�$�U���H�D$HH��� �8H��H����H�����8 �����L�+I��A�� ��I��H�CH��A��H�D$I���=��L;l$��H�D$XL�|$(L�d$1�H�\$8A�H�\$ I��H�D$�>f�蛶�L��H+T$����H�D$PH��tHcL$0H;$��H�T$E1�M9�vBL��L��H��L���C��HcT$X��I�E��u��?��L��H+L$A�ƅ��H�L$M9�w�L�|$(H�\$8H�D$PH�H�ց� �1�������t>H���IH���FH�SH9��IH��H)�H�����H��L������H�D$PH��u�|$7I�_�H��hL��[]A\A]A^A_��L��H��H��H)��7��L��H���|��I�FH�(A�~A�+�VfDH)�H�����H��L���J��IcFI��L9�~-I�FJ�4�H���t�I�FJ��H9�u�H��誔�����H�D$PH��tH�$H�$H9L$(����I���D$�i����H���_����H��������H��H��H��� uB���������L���[��I��� u�I�GH������I�O H�Q�H��H��� t�H�x����H�D$H�t$H�T$ J�< H����D$H�I����H�T$H�|$8H��H�L$H)�����H�|$(H���	��H�|$PH�L$thH�$H��A��p���f�H�{������H�D$H�t$H�T$ H�<(H��e��H��H��L��Hc��T��L��H���������H��A��
���H�CL�kH��I�H�D$�n��=�w���L;l$��H�D$1�E1�L�4$H��H�\$H�
f�I��H��L�<$L���2�����H�D$PH��tHcT$0L9���L��1�M9�t$I��A�D$�M���I)��u���uiL��M9�u�H��L�<$H�\$H�D$P���H�D$P����L$0��H���#H����H9����������������@L���~����H�|$H��H)����H�<$H���T��H�|$PH�
w���I��L����6���H����9��H�|$HH���;u��H�|$HH�H��H�Ɓ� �����„����}��H����H�yH�qH�H�D$XH��H���î�� u&H�T$HH��� ��H����HcT$XH9��m����s��I��H��� ��H�KH��I��H�L$A��I�H�D$HL�0A�� ��H��I��H�D$A��H���_t��H�t$HH��肞�HcL$0H�l$L�|$H�\$ I��H�L$(H��L9�sGL��H�|$M��H��H)�L���U��H��H��x&L�<+L��H��L��L�����I9���H��I9�w�H��L�|$H�\$ H�D$PH+l$���H����H9������H���#���H�����L������H�SH9��������H����f���H�����L��H���L��H�D$P����譎�H�D$H�y���H��H�yH�ƃ�H��J��������X���H�|$ H��H��H+t$���H�|$H�����H�D$PM�.L�H������H�$H�$H9L$(�����H��L�|$H�\$ ���H�CL�cH�D$I��0���H�HH�@H�L$I���A���L�|$(H�\$8�V���H�t$X�H�\$X����I�����H�D$P1��.���H���ɝ�����H�L$HH�H�Ɓ� �D���H��L�<$H�\$���H�B�k���H�x�n���H�@����ff.�f���AUI��ATUSH��H��(H�7�� �5H����I��A��u
I�������L���X��H��H���IL��H�����H��H��H�����H����H��H�����I��L��1�H�����H�H�l$H�$�� tMH�SH�uL)�� uPH����H)�H��L�����H��H�D$���H��([]A\A]��H��H�u��L)�� t�H�u�@A�E����� ���L��H��L���m��I��H��x-�@��1�H�����H���3���fDL�g�����H������H��H�$����H��H�\$H�D$����H��([]A\A]�L����H�5��H��H�!y2H�81����ff.�@��ATUSH��H��1�H�� ��H�ŨuH�������1�1�H��H������I��H����L��1�H���|��H�H�l$H�$�� tKH�SH�uL)�� uNH����H)�H��L��C��H��H�D$����H�� []A\��H��H�u��L)�� t�H�u�@������N���1�1�H��H�����I��H��x4H��H���G��H��M���6���H��� uD����������H��H�$�{���H��H�D$�n���H��H�D$�<��H�� []A\�H�}���f�AWAVAUATA��USH��8H�|$H�|$�`��H�(H�D$�� �H��L�h��H�����I��衿����E����H�D$H�%0=��= ��I�D-1�H�D$H��P@H�D$H�D$(H�D$E��H�D$HE$H�$H�$H��8[]A\A]A^A_�DH�<$H���Թ�L�H9�~�H�t$I�|L���*��H�|$H��Lc�L���W��E��u�H���ڠ����E����H�|$L���ʞ��H��肙�H�$����f�L�hH�h���I�D-1�H�D$H��'�"���f.�H�<$H���$��L�H9�����H�t$I�|L��趮�H�|$H��Lc�L�����E��u�H���&���@�ۆ�H�����H�|$1�1�L���H���[��H�$���f�H�=Q�1�E1��/��J���f.���1�����D�������f�AWA��AVAUATUH��S��H��HH�T$(H�T$����H��w2H�H�D$0�t�����E���sH�|$0��E1�H�|$(�ڑ�H�H�D$(�� �)H�HH�@H�D$ H�$H�I��H�|$0蘒�H�t$0L�6A�� �cI��A��H�,x2H�|$(H;3�����I��M���5H�D$0H�H� �HH�H�D$H��H9��w�E��tK�6��H�|$0H�D$�1���H�\$H�t$(H���3��H�\$H�D$H��H[]A\A]A^A_�f.��K��������H���&��H�|$(E1�H���H��聻�H�D$�f.�H��H����H�$L�$H�T$ ����1�H�=��2}�H�|$0����H�|$(�̝��Y����H�L$0H���1��݆��/�����D$H��,	A�H��A�}�]L��H���B��L��H�D$0�5��H�|$0�1�H��豲�L�0H�D$0A�� ��H�HL�pH��H�,$D�|$I��L9�sJL��M��H��L��H)�L��H���&��H���}H�\L��H��L��H����~�H9���H��L9�r�L��D�|$H)�L9��GE��H�D$HDD$H�D$�<���f.�L�v����H��I��H��A���K���@H�H�D$H��H9��/��������L$L��uaH��H�|$(H��H+4$H)�覾�T$��tNH�|$H�����H����f�L��L��H��A�U��t�H��L��L���!��H�H�L9�r��DH���؛�H�T$(H��� u3H��H9$uH����H9D$ t�H��x2H�5�5H�81��y�H�$H9Bu�H�B���D�|$H�|$(H��H��H+4$�׽�E��t2H�|$H�����H�D$(H�D$8H�D$(������{�I���U���H���(����fDL���X������������ff.���1��E���D����2���f���AWAVAUATI��U��SH��H��H��1���@�ƃ�����9��������D$H�D$I�<$�����I����QH������DH��ƒ����3�������1�H��L������I��H���QD�+�i��L��A��0H�P��uI�����tM�7D�������H�JL�!H�JL�1����H�|$��H���mH�|$8L��H���M|�H��H��H�D$8�
��H��H���\H����H��H���~��H�D$8H��ʁ�T$�T$A�U�����/w:�ʁ�0��0�6A�� ��E1���f.�M��M)�� �yH��H��H�D$��I��H��� �:H����I��M9��oJ�,"L)�L�L�KM9�t#L��K�4 K�<'L�L$L�L�L)�螫�L�L$H�t$K�<!L���(��H��� �H��H%�?��H��H	�H��� ��H�CH��H��|�HcP�E���0H��T$Mc�H%���H	�I	�H��L�+H��H[]A\A]A^A_�DH���Hu��I�|$H�|$8��H�D$H����H�D$81�H�%�D$�O���f.�H��H�[]A\A]A^A_�@L�SM9�?K�,"L)�L�L�K����@H�HL�xH�L$���fDH�kH�C����H��L�D$ L�T$�{�L�T$L�D$ HcpH��� �D�ƒ���t	��@��L��H�{�L�D$ L)�L�T$L�L�H�誁�H�k L�D$ H�CL�T$H��� �G��������H��1���x�I��H��� �_H��H�K��H�L$ H�D$���
L��袖�H���
�H�D$8H��� ��H�SH9T$ ��H��H����H9T$���ƒ����7������.���H�t$8H��豳�H��H�������H���'��L�;H��A�� ��I��H�KA��H��H��L��H�L$��P��H�L$=�dL��J�<1H��L)��P��=�GH�|$8�$'��H���+���@H�L$ H9K��H�S�0���L��L��H��L)���H�|$H�����H��H�D$8��}�H�D$8����H�CH�D$ H�CH�D$����I����������A�����LD|$�r����H�|$8螈��'���f�E1�����L��L)�)�L�H�L�H9��
���H�<.����L�L�T$I��L�D$ A�� ��I��H�sA��L��L��L�D$(L�T$ L�L$�!��L�L$H�k L�T$ L�D$(H�CH�L�K��H�ƒ��� ��HE�H%�?��H��^���A���(����A��b���DH�KL�{����1�H���f������A�� u/I��A��M�H�|$����@������A�����M�w��f�L�KH�s��������'��H��p2H�5�-H�81��q�H��p2H�5)�H�81��q�H�|$8��$��H�UH�5�H�HH��l2H�81���p�H�
v���H�5x�H�=z����ff.���ATI��U��H��S�{��L���H��H���+���H��[]A\���UH��SH���N$��H�]�� u5H��H�u��H�H��H����:��H��~&H��H��H��1�[H)�]� ��H�uH�]��fDH��H��[]���f���ATUH��SH��� u]H��L�gH�Ӄ�H����#��I�4M��t.L9�v)H��L���^6��H��~H)�H��H��H��[]A\餴�@[H��]A\鄠�@L�gH�_�fD��AWAVAUATI��USH���V#��I�$H���� ��H��I�l$��H��L�|��I9�A��E1�A�u%H��H��L��H�L$�5��H�L$H�H��I��A��L��H��L���9��H�� E��tH��L��[]A\A]A^A_�͟�DH��L�H��L��[L��]H)�A\A]A^A_鶳�fDI�l$I�\$�W������SH���3���H��tH��H���^��H��1�[H���t��@H��[�W�����SH���,��H��1�[H���E��D��AWAVAUATI��USH��8H�H�H�|$H�t$�� �rH����I����!��H�|$I��H�L�o�� tL�oH���:M���HD؁�0�����!���x��H�D$O�L=H�|$H���%tH��� �H�WH9���H����H�%0= �VIcFA;Fu|H�T$H��I�lI9���H��I)�L��L9�HN��)f�H�l$L9�~H����H�+L9�~L��H)�xdL�H�D$I�$H�D$(H�D$H��8H��[]A\A]A^A_�@L��H�T$L��L��L�L$��G��L�L$H��I9��G1�H�|$~�D1��@L�����L�H�l$�e���1��fDH��IcNH�H9�HO�H��� ��H����H9�|0�f�L��L��L��L�����I��H���{���H�D$H�P�H�T$H9��M���_���L���-f�L��H��L��L��L�L$H���ƞ�L�L$H��H���-���H���L��H)����DH�wH��H�VHI�H���U����L���8���H�l$H9��~���1����H�������@H��E1�L��L��H���lH��H���K���@L��L�L$���HD$H�D$�����H��I�lL�L$����H�|$���fDL�L$�f��L�L$I9������H�T$L��L�����H�|$H���1���L�L$H�T$(H��H�\$(L�����H)�H�����@��ATUSH�� H�$H��H�|$�#��H���BH�|$I���Mq�H�$+HHc�H9���H�|$I�4H��� u\H��H�O��H�H9�tYL��蹔�H�t$H�èuH�������H�D$H�D$H�D$H����I��H�� H��[]A\�fDH�OH�GH�H9�u�I)���H��H���%��%H����k�H��H���
h��H�t$H��L`H�$H�C��H�|$�U���fDH��Ѓ���~S@���X���H������K���H��������:���%H	�H��*���H�� �H��[]A\���H�������ff.�@���1���{���UH��SH��(�����G�����H���tFH�H�޺H���{�H��tH��� ��H�x�„�t�H��([]�f���u3H�����t*��������u�H��H���/���D1�H�����E1�H�T$H��H�t$H��H�D$�as�H��t|H��t�H�T$H�t$H����z��o����H�H�^�uH�����t
�����t{��tFH��t[H�H��H��H���z�H��([]��������	���f�H����H������H��H�t$���H�t$H��H��u�H���̙�H����H��H��H���.�����D1�1�H��H���Ɍ��H��������H���'��������#����UH��S��H��H���9��H��H���H��[]���fD��@��u&H�����tH��ƒ���t�u
H
H�H���PH�tf2H�5�H�81��f���ATI��UH��SH���ʕ�H��H��^2[L��H��]A\�q|���AVAUATUH��SH���)m�D�`��tH���f��H�����t�H��ƒ���tک����u�%`H=`twMc�H��N�t-��]w�I9�zH��� u8H��H%�?��H��H	�H��� u$H�{H��A�� []A\A]A^��H�kH�{��fD[L��]1�A\A]A^�v{�H�Oe2H�5�H�81��e�H��H��H�=�p1��Zl�H�#e2H�5��H�81��be�f���AWAVAUATUSH��H���&H��@��u	H�����uH����d�H��ƒ���t��	��u�I��H��I����� ��E1�L�'�@@L�gA��H���k�D�pH��� uNI9�t.Mc�I�/H��WH��H%�?��H�|+H��H	�H��A��_H��H��[]A\A]A^A_�f�Mc�I�4/H��~cE����I9�t�H��D��L��H��L)��1��H�CH�<(H�k�A��~�L��1��z��L�'I��A�A���8���f.���H�K����t	H%���H�I9�L��L�CHO�H��~H��L��H�L$���H�L$I��I�<(�A����H�H��H��?��H	�H�+E������H���8y����H�C H9�/H)�H��HN�H9�I9�����H�C����DH�{��jp�H�k H�C��DL��1�H�L$�x�H�L$�b���H�hc2H�5�H�81��c�H��b2H�5�H�81���b�ff.�@��AWAVAUATUSH��XH�|$ H���I��I��A��M��H���M9���A�|$��y�I9�� H�D$ H��� ��H�D$ H�XH��1�贡�H�ŨuH������iH���3H�8�p�I�t$D��L��H�@I�}H�D$0�~�H��H�$H���UH�D$0H�P H�D$ H�H�T$�� ��H��H�D$H�D$H�\$(E1�L�t$HL�d$8H�D$@H�H�D$H�D$@H�D$�Rf�H��������1�H�|$(H��I��L)�H9�vH��1�I��I��H��H���H��HB�H�H����r�L�eH�E tL�eK�<H�T$H�<$E1�H�t$H�L$HM�L������u:L�|$HL�l$@H��L+l$M)�L���m��M��t	M���O���H���u����H�\$0H�<$�D$L�d$8H�C ��c�H���f�D$����H�l$ H��XH��[]A\A]A^A_�DH�����&���@L���H{�����H�|$ �j�=����H�\$ H���;��I9�t�H���.��L��H��H���k��fDH�D$ H�@H�D$�<���DH�t$HH�EH�E tH�EH)�H���^��L��H���sk��7���fDH��Ѓ���~SH�D$ ��}���H������q���H��������`���%H	�H�U�O���H�|$ �Vf�I�����fD�H���(�������A�1��ߊ�ff.�@��UH��SH��H��請�H9�t&H��H���j����H��H��H��[H��]�r}�f�H���Hi�=t��lu�H��H���qj�H��H��[]����SH���#g�u H�����tH��у����H��sH��H��[�S�����H������UH��SH��H�����H��H��H��H��[]������USH��H��辏�H��H����k�H��H��H��H��[]�ߊ�ff.�@��UH��SH��H���`�H��H��H��H��[]駊����USH��H���~`�H��H���k�H��H��H��H��[]�o��ff.�@��UH��SH��H���`�H��H��H��H��[]�7�����USH��H���^`�H��H���k�H��H��H��H��[]��ff.�@��USH��H��螎�H��H�����H��H��H��H��[]�o{�ff.�@��USH��H���_�H��H������H��H��H��H��[]�/{�ff.�@��UH��SH��H�����H��H��H��H��[]�z����@��uFH�����t=H�7�����t0��u(S�� t'H�wH���m�H��[��n�f.�H���@H������ff.�@��H��tx	�0���H���PH�T\2H�5�H�81���[���ATUH��S�i�H��I����L��H��H��H���tx�H��[]A\�ff.��AWAVM��AUI��ATA��UH��SH��(H�H�4$H��H��A��A��A����� ������%0���E�E9�����t	E���iM���0E�E9��$���A���j��t�� tE1�M���M����Lc�H�4$L��H�����D��H��肊�H�EH%���L	�H�EH��(H��[]A\A]A^A_��H�}���5���D��D�D$�˚�D��H�D$辚�D�D$H��H�D$�x��M��t�H�E�� ��H�}��D�D$����H�4$L��H����v�D��H���։�H�ELcD$H%���L	�H�E�J����������IfDD�D$�>��D�D$A��H�E�f���DD�����H�<$L��H���!7��A��M���}�������A��AE�EE����D�����6���H�|$D�D$H�T$�,t�H�T$D�D$�����z���H���t�H�T$D�D$������E��tb��u'H�E�t	A��t\H��D�D$�Mc�D�D$��M������������� ����A�����AE�����H�<$L���#6��A���M�������A����D�����D��H�D$�Ԙ�H��H�D$H�JH�5�xH�PH�VT2H�81��lX�H��X2H�5f�H�81��TX�@��USH��H��t"H��H��H����e�H��H��H��[H��]��t��
��f.���ATI��UH��SH��H���_�L��H��H��E1�[E1�]��A\�-���ff.�f���UH��AWAVI��AUATSH��(H�H�}�I��dH�%(H�M�1�I��H�E�D����E�����}�轗�xH����HcCH��H��H��H%�H)�H���H��H9�tH��H��$�H9�u����A�>L�d$I���@��tPf.�D��H��I��D��轌�H��L��D��A��S0H�}��M�Ic�E1�A� L���#���A�>@��u�H�E�H�M�dH3%(umH�e�[A\A]A^A_]��H���Xq��� ���L���8d�M�H�}�E1�A�H��L������賒�E�����H)�H�L������5e�D��UH��SH��H��(H�H��A��H��A��0��D�D$��tw�� ubH��H�s��L�L$H���B���H�@��u"H�����tH�M�ʃ���Z�H��sOHcT$H%���H	�H�H��(H��[]�@H�SH�s�fDH��D�D$�ۑ�H�D�D$���m���@��u�H�����t��ƒ���t�%H	�H�EH��ff.�@AWAVAUATUH��SH��H��x�L$T��t��������胕���/�$�D$PH�D$HH�;��ƶ�������1�H��H��H�D$�/}��I��H���[H�EH�l$X�� ��H����H�x�Qx�I��H�E�� ��H��H�]��H�\$8H�D$@H���D��L��H��I��H�D$ ��_�I�H���A�~�T� H	�H�D$�D$����E1�I�H��H���H�D$(H�\$H�\$8H�\$�A�H��H�|+H��H�|$��H9��!�L$H�|$H��H���?|��I��H���sI��苕�H�|$H�xuH�|$(tH�\$H��у����A�H�W�|$PL�"H�WH����T$P�����t$���?H�D$H�|$H����H��H�|$hH���[X�|$�I��u1�L9D$h���D$E�(L��A��D,$D�,$L)��L��L���T�I9���H�EH���� ����H�uH�UH�H�t$H9�����H���9H�UH9��?H�|$�L��H���{���L$T����L��H��I��荔�H�UHc$H�\$XH	�H�H��xL��[]A\A]A^A_��H�u�� �xH����H9�~�H�}H�H�T$ H����H�uLc�H�E tH�uH�L$ H�L��L��L��Ew�����H�L$ H�t$L��L�D$0�)w�L�D$0�����H��L)�L��H��觖�H�|$HH���a�H���\�I��H�E�� ��H�UH9T$8��H����H9D$@��M9��H���H�Q2H�5�H�81��PQ�� �H����D�D$PI�E�����D$����f�L�D$h�D$���fDH�D$8H9E�oH�E�t���H��1��fU�H���^s�H����[�I���/���fDH�uH9�����H�}H�����H�|$(�Q���H�t$�H�H�D$0�D$0����HE��,�����|$P�����H�D$�u���D�L$TA�E������H�����I������@H�D$H�P���f�H�~H�|$h�R`��D$PH�D$HH���ZH�D$hH�%�$����fDH�EH�D$8H�EH�D$@�]���f�H�EH�x����H�����H��I�G�teI�H�EL�|$X%D	�$�����H��H�ƒ�H9������H�L$ H�t$H)�L���t����H�EH���� �|���fDH�����t�H��L���ek�I���u�H�Ѓ�`H��`�t���H���`H��`�d���H��L����c��Q���fDH�|$ �i������������X�H���/��E1�H�ٺH��H��艎�I���7���H�|$h�d��D$P���H�3N2H�5H�81��rN�f���ATI��U��H��SH���X��H��L��[��]A\����f���1����D��SH��H��H�|$H�t$�d�H�t$H���O�H��[�f���UH��AWAVAUI��ATSH��H��(dH�%(H�E�1����I��A��uHA��uI�����tA�E����
t]L��H���n�H�M�dH3%(�,H�e�[A\A]A^A_]�H�u�L���4�����tPH��I2L��H�5��H�H�81��RM�f�H�u�L��������t H��I2H�5��H�81��(M���y�I9��BL�+A�� �"M��I��A���}�L��A��0襂��=p����z����=o������@H��H�H��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�D$�M�L��}�H���H��H�E�A�T$0Lc}�H�}�L��J�t?�\�M�9���H��K�47�]�H�{H� tH�{H�u�L�L���!o�A����Mc�H�H%���I	�L�+H���H���f.�L�s�����UĈUÁ����H�uúH���
_�}�v��b�H��H���W�H�H%���H
 H���}ĀM�I���I�� �b����NZ�I�L$H��G2H�5Z��U�H�81��>K�U�H��G2H�5Y�H�81��#K���H��� �����„���H��� txH�~����uyAUH��I��ATI��US�Ã�H������H���Ճ�����9�t\L����T�L��A����T�A��tX=��H��1�[]A\A]�������t���DH����S����H��[]A\A]��=t���r��xu����;�L���h����Y�����[��I�$���6������9��x�b������(��H���d�������fD��UH��SH��H���ˇ���t,H�UH�с� t+H�H�U�� u.H����H9�tS�H����[]�DH�H������ t�H9Su�H�sH�}H��tH�}�e�1҅���H����[]�DH�s��f���ATI��UH��S�b��u&I�$H���Ã���tH�EH������t))É�[]A\�fDL���0���H�EH������u�H�������@ATUSH��� u|H��H�H�Ӄ��� uvH����H9�t1�[]A\��I��H��荆��t�H�}H�E tH�}I�t$I�$ tI�t$H9�tH���d��u���H�H�_�� t�H�FH9�u�뙐��H9���@��t5UH��SH��H��H�5:-3H��tMH���h��1���u%H��[]�fDH�����t‹����u�����H��H��H��[]��d���H�=�w�g��H��H��,3���f���H9�t/H���uH�����t
�����t�1��D�����f���H9���AUATUSH��H�/�� tVH�H�GH�o�� uYH��H�NI��I����H9�tVH9�H��H��H��HN��b��t=BH�������[]A\A]�DH�H��H�G���� t�H�NH�^I��I��H9�u�H9�t~�H���[]A\A]�L��L��荄��u)I�$H������tAI�EH������t!9���s���H��1�[]A\A]�1��DL��耂�9���@L���p����ff.����AW1�AVAUI��ATU��SH��H��H��8L�d$L�D$L���Q��V����>L�|$H�-�*3I��A��H����L���[�H�t$H���,_�H��I����O�1�=��H�H���� ��H�{������H�t$H�H�ǁ� ��H�~���������HH�CH��tH�C��D$ H����H�v�.@8��6u	E���+L�l$ fDL��L���0M�H���Xg��D$ M����@8������D$ ���H����H�������8�������H�CH��tH�C�8�t����H�D$H� �H�@�8�s��tcH�;�� ��H��L�k��M�d=Hclj|$H9���M9�w�zf.�I��M9��cA�}�s��u�DH�t$H���3}����E����H��8H��[]A\A]A^A_�fD�H�=���w��H��H��(3������L�H����~�H��E1�L���H���P��H���H����H��������DH������H�|$1�1�H��1�L�l$ ��T�H��I���s�H�D$ H��DL���]�H���/���H�|$ M��u%H�t$�k]�H����H�|$ �Xe�����1�1�1�H���bT�H�|$ I���5e�I������L��L�t$ �X�H�t$H�|$ �]�H�������H�|$ H�I��A�� uBH�t$H��H��H����� u<H����H9��{���M��u6���+����f���fDH�t$H�OH��� t�H�V��f�H�������0���H�|$ 1�1�1�H���S�H�|$ I���`d�I������L��L�t$ ��W��>���@H�|$�K�1�=���#����H�D$L� A�� t_L�hL�`M�M9�w�}DI��M9�toA�}�q��u��l���@L�kH�{M�d=����fDH���%����I��L�hA��M������D$ @8������3���1Ҿ
H���=�H�|$1Ҿ
I���=�I��A��t���A�<M��uL�5�%3M����H�=���%D�H���=S�I��HcD$H�DH�D$ H�D$ H�D$�:�H�t$L���L�d$(�QG�H����b�L��1�1�H��1���Q�I��1�L��L��L����Q�H��u��V����l�I�I�I��M9��?���u	E���4���H�-͍D�T$L��H��L��1�I���C�H���Xb�M9������u�E��t����H�=1N肅�I��H��$3����=�ff.���UH��SH��H����u	H�����uBH�5s$3H��tN1�1�H���{�uH�����t
�����tLH��H��H��[]��������u�H���nx��/@�H�=(o�ׄ�H��H�$3�H��H���=x�H��H�H�D[]�ff.�@��@��t@��u@H�����t7�����u-USH��H��H���h�H��H���h�H��H��[H��]����f.���AWAVAUATUSH��H��H��� u#H��L�gH������tH����=��L�gH�o��u�H�����tډƒ���tЩ����u�H9�H��HN�I��H)��D�+PH�Hc�H9�|p��A��L�{H�ƒ�H����K�44L��A��`@��HE�H��H��H%�?��H	�H��H��s�A�� tIA�/H��H�#���H��[]A\A]A^A_�%`H=`tH���cR�LsH�kM��L�s�f�L����R��H��<2H�5@�H�81��=�ff.�AWI��I��AVI��AUI��ATUSH��(H��� ��H����L����H�D$H��L	���L��L�L$�T�I�/L�L$�� ��I�OI�oL9���I��M)�I�L9��-L9�} M��yL��H�<)1�H�L$H���8R�H�L$H��~(I�uI�E �|J�<1H��H�L$�q�H�L$I��� �JL��H%�?��H��H	�I�L��I���B�HcPA�$����H�|$u)I�����t I��Ѓ�����H���	H��([]A\A]A^A_�f.�H��I�O��L9�����L��L�L$�OB�L�L$HcpI��� ��I�ܸM)�)�I�H�I9��I�OK�4H��J�<3L�L$H)�H�H�H�L$�p�L�L$H�L$���f�H�Y�4����L��L���e|�H�|$����H��([]A\A]A^A_�f.�M�g����I�u�{����A�����I��������I�E����������%H	�I�����H�|$u	I�����u_I��I��L�L$M)�I�L��pG�M�g L�L$I�GI��� ����I�O����fD1�L����O�����f��ƒ���t���@t�H�
ڍ��H�5��H�=���2N�f�J�<&��ba�I�L�L$I��� urH��I�w��H��L��L�L$H�L$�\�H�L$H�|$I�GL�L$I�OI�uI�����t��H�ƒ��� ��HE�H%�?��M�g I������I�OI�w�fDAUATI��1�USH��H��H��H��H�L$1��k�H������z�L��H��H����A�H�U�J9�~y��xiH�rHc�H�,�H�����H�BH�|$L�$���N�H�t$H��I)��JR�H�L$L��H��I��H�����L��H���D�H��[]A\A]�fD���9�~�닉�H�k82H�5Z�H�81��b8�H�S82H�5/�H�81��J8��H�982H�5?�H�81��08���AWAVA�AUI��ATUH��SH��H��(�H�L$%0=t���E1��xA��H����H�|$��M�H�t$H���\Q�H��H��I���NX��L9��eM����H9���L)�H��H�����H��� ��H�{L�{L�l$I�I�E����M��tM9���M������ ��H��H�l$H����L�lM��I�T-E�����H�T$L��L��L���
��H��H��f�I��H�{L�l$I��I�A��I�E���p���H�T$L��L������I��H��U���f�I�T-H9������
���DM���� ��H��H����L�|H�l$I�T-E���Z���H��t
I9�s+M��u#�� ��H��H�KH�ƒ�H���L��H�K�� tH�KL��L)�H��H)�H�L$����L��H���A�H�����0��tD1ҁ� tjH%���H	�H�H��([]A\A]A^A_��L��H��H9�}I�����DH�T$H���0��0t�Hc��DL�{L{����H�T$H���0��uȺ �v���H�KH�SH��(���L�kLkM������H�A52L��H�5k�H�81��55�H�&52H��H�5E�H�81��5�f.���H��H�|$H��H�4$�J�H�|$��J�H�$H�|$1�1��v�H�D$H��Ð��UH��SH��H��@��t*H�H���t2H��H��H��1�H��?H���u�H��H��[]�H����f�H��H���u�H��H��H��[]�NU�ff.���AUATI��USH��H�������G�����H�H�n��u{��u H�����t����������1�L���T��H�T$H��H��A�H���?�H���*H�T$H�4$H��L���t�H��H��[]A\A]��H��H�H��L����t�H��H��[]A\A]�@H�6H�kL�k@��tW@����H�@����H�L��H��L���t�H�kH��[H��]A\A]�DH��H��L������Z���H�����t������u�L��H��L������D1�1�H��L���YX��H��xvL��H���g�1�H��I���\S��H��L��L��H����s���fDH����d�H�����H����d�H���3���H����d�H�3H���������^e�H�_22H�5��H�81��V2�fD��AV�G�AUATUS��H�� ��wpH�H��A�H�$��uH�FA�H�D$H��I�����H��L��������I��H��t1�1��8q�{H��L��J���v���H�� L��[]A\A]A^ú��d����ATI��USH��0dH�%(H�D$(1���tm��~��������H�\$��H��1��
H���-�H���?�H��L��H��H����M��H�L$(dH3%(��H��0[]A\�H�\$��w!H��.�
H��1��[-��f�H�?�
H��1��:-��z���DH�\$��H�
1��
H���-��S���fD���t$�
`�t$��t�H�\$��H��1��
H����,������^?�ff.���AWH��AVAUATUSH��XH�H�|$I��I��dH�<%(H�|$H1�A��H�$A���jD���Rp�1�H����S�H�$�l�H��H�D$��.�{�D$�D$��H�|$�H�D$�x���,\�H�D$L�<$H�t$L���&;�H�5��L���[��H�D$L� A�� ��I��H�hA��I�H�t$D���a�I��H9�t�T$����H��I9���L�|$:@L��L��H���?�Lc�E����L��L��H��I�A�U A���D$D$��A��"�A��\�	A��#��M9���L��L��L��D�D$ �#?�D�D$ ����L9l$�#�D$��A���N���FD��D�D$ ��]���,L��I9��8���H9�vH��H�<$H��H)��yZ��H�$�H�5`�H���aZ��H�D$H�%H	H��H�L$HdH3%(��H��X[]A\A]A^A_�A�@����E���H�5ĀHc�H�>��f.��eH9�wCH�<$�L���L$;�D$:\L��L����Y��I9��r����5���D�rH9�v�fDH��H�<$H��L$ H)��Y���L$ ��f�f��v�f��n�n���fD�t�^���fD�b�N���fD�a�>���fD1�L��L��L��� b�D�D$ ��$����@���u��{�,���f�H9���H�<$�D�D$ H�5����X��L9l$���D$D�D$ ����A�@����IH�
�Hc�H�>��H9��wIcUL��H)�H��H�I9�B��x�H�|$ H�T;�������H�\$(L�4$H���H��)L��1��
H���(�L����9�L��L��H���-X��H9�u�H�\$(H�D$ H�\H���>����H��L���2���DH��H�<$H��D�D$ H)���W��D�D$ ����H�D$H�hL�`I��5���H���h*�D$�B����H�D$�D��D�D$ H��PX������D$D�D$ �����fDD�D$ H9����T$H�<$D��L��L���|����t����H�|$��E���M����R���f�H��H�<$H��H)��W���r���f�H���E����H�|$���D$���+\�H�D$����H�|$�f�A�����fDH��H�<$H��D�D$ H)��V��D�D$ �5����b9�f���SH��H�� H�|$H�|$�U@�H����X�H�T$H�t$�H�D$�$���H�� [�ff.���H��t@��uH�����t�����uH�:�PH����]�H�5FxH��H�"2H�81���)�D��AVAUATI��USH���y0�H�+I��� u3H��L�s��M����IcEI��H9�|"H��[]A\A]A^�fDH�kL�s��fDL��I�4.L��L����A�H��L)�H9�t�I��EA�}��L��H�=�|�;9�L��H���p`�H�߹[1�]H��A\A]A^��`�fDA�H��H��L��L���Z�H����L)�1�H��H���m�A�}H����L���
`�H�={|H���8�H��1�H���t`�H��H���iI����@L���8C���6���H��L��H�50|��R�L��H��H����3����A����DL����B���f����H�5�{H���t;����H�(2L��H�5vH�81���'�@��AWAVI��AUATI��USH��8H�H�t$H�$�$�Dh��0�D$,����I����
�������H�D$�D$,L���=B����L���.�Icl$A�ǃ��7H�L$H��� ��I��H�YI��A��I�H�D$H�|$t0I���I��� �H��I�N��H�L$H�T$DH�L-I��H�$H�L$ I9�w�Df�H�I�M9�swL��L��L���7����7���H�<$Mct$�L9��7L��I�/L)�L9�IO�I��H9D$ ��H�t$H���%H�T$H�<$�C�I��M9�r�H�<$��I9��� H�D$L�4$L��HcT$,H�%H	�I	�2-�L�����U�I�H�D$H%���H	�I��Tf������t<I����L��L���\��L��H�D$����I�Ƌ%�D$,�n@���1���H�$H�$H��8[]A\A]A^A_�H�D$H�8�� ��H�����(I�H�$L9�����L��H�<$H��H)��A����@L��L��L���-�H���G�L��H����[��H��с�	L$,�� ukH��H�p��H�<$�A����f�H)�I��H9�}(DK�7L��L��H���.5����R���I)�L9�|�K�7�A���@H�D$H�x�5���f�H�PH�p�fDH�L$H�YL�iI��B���H�<$��I9�w8� M9��$���H�t$H����H�T$H�<$��@�����f�L��H�<$H��H)���@��A����A����A����1�H��wA��L�=�w��ID�H�LIH�L$H�T$����H�D$H��� ��H����H���oG�H�$I9��:����m���H�D$H�M9�u�H%���H�L$H
 H�����L��L��L��L)��+�H����E�L��H���#Z��H��с�	L$,�� ��H�PH�pH�<$��?����L����=�D$ ��t/Icl$���I�NH�L$I�NH�L$���H�D$H�x�2���H�D$H�0�� �aH�XH��H����H�,H�D$H�|$tCI����I��� �yI�NH�L$H��H����H�L$��01Ɂ����L$ H���BH�CH��H9�v(�;I��y���A�?��I��L9�u�I��I��L9�s+H���������H�t��DH���H��I9�w�L9�w�@I��L9��A�?y�H�$A��DH�A� I�L9��L��H��L���1����}���H�<$Mct$�IL9��mH��I�_L)�L9�IO�A�H����H�t$H���UH�T$H�<$��=�T$ � ��LD�H��H)�H����H�CH��H9�v"�;I��y�M���f�A�?�A���I��L9�u�I��I��L9�r�'�H��I9�vH���������H�t�I��DI9�sA�?�����I��L9�u�H�<$�kH9��ZIc��K���H��H�p���>���H�D$H�XH�@H�,���H�D$H�
tH�L$�I����I���H�D$H��� ��H����H����C�H�$L9������L��H�<$H��H)��<��|���L��L��L���6(�H���^B�L��H���V��I��H���	T$,�� uxH��I�v��H��H�<$�U<�I�%0= � LD��^���L�p�fDK�7L��L��H����/�������I��I��u�I�_���H�D$H�x�'���I�VI�v�H�D$H�
�rH�L$�(���I���"���H�<$�HI9�wuL9��v���H�t$H���9H�T$H�<$� �;�D$ ��IE����A�Ic�H���H�D$H�$H	�H��	���H�<$��L9��
���L��H)�H�<$H���1;��t���H�D$H�
-rH�L$�j���L9������A�I9�t��� uvH��H�����A�H�$�!���H�D$�������I�NH�L$I�NH�L$���1�A��H��q���L$ ����H�L	H�L$H�
�qHD�H�T$�d���H�D$H�x�H�D$H�0�j���H��L��L��L)��%�H���@�L��H���dT��H��H���	T$,�� u:H��H�s��H��H�<$�:�H�� %0= IE�����I���M���H�SH�s�ʻ�i���I�����H�D$H�0�Q���H�c2H�5�oH�81���H�D$H�0���D��UH��SH��H�����H��H��H��H��[]������SH�Ӆ�t,��u.H�6H���t@�H��tH��H���CV�H��[�fD��պ1��eO�D��SH�Ӆ�t��u3H�6H���$@�H��t[�@�H���@�H��u�H��[�M�1��O���AVAUATUSH����X�I��H����H������H�3I��� t*L�kH�kM9�t0H���&�=t!1�[]A\A]A^�H��L�k��H��M9�u�L���U)�H9�u�L��L���<��t�I�t-L��L���������������L�I���c�����ATUS�sE�H��H���(���H�߅�ua�L;�H�(H��� t>H�hH�uH��L�c�z,�H� tL�cI�|$H��L���mP�A�$:H��[]A\�H���������H�+�� uPH��L�c��1�H�uH���#�H��H�xH� tH�x�:H��L��H���=�H��[]A\�f�L�cH�k�fD��AV�AUATUSH����<��W�I��H���~H�����H�3I��� t0L�sH�kM9�t6H���[$�=t'H��[]A\A]A^�:�@H��L�s��H��M9�u�I�4.L��L�������t�H��[]A\A]A^�fD�3K�I���u���ff.���H���M�H��H���'������@��t6@��uH�����t
�����tH����}��H��H���hO���kU�ff.���@��t6@��uH�����t
�����tH���}��H��H���_��H���ff.����AVH�=VgAUL�-2ATUSI�u��`�L�%>2H�2H��I�4$H��U�H�;H�5����AW�H�;�H��~��H�5��I�H�;�����H��N��H�5��kH�H�-�2H�;�H�5�H���MH�H�;�H����H�5� �2H�L�532H�;�H�5�&L���H�H�;L��H�5�&�G�H�;�H�n��H�5]��G�H�;1�H�&���H�5�w��G�H�;�H�{r��H�5�D�G�H�H2H�;�H�5F��G�H�U2H�;�H�5*�yG�H�;�H����H�5�Z�^G�H�;�����H�?���H�5͢�CG�H�;�����H���H�5��(G�H�;�H�I�H�5��
G�L�5�2H�;1�H�5 bL����F�H�;1�L��H�5/;��F�H�;1�H����H�5F}��F�H�;1�H�:��H�5v�F�H�;�H����H�5���F�H�;�����H�T{��H�5
�xF�L�52H�;1�H�5��L���]F�H�;1�H��F��H�5�d�EF�H�;1�L��H�5O��1F�H�;1�H�eF��H�5�d�F�H�;�����H����H�5���E�H�;�����H����H�5���E�H�;�����H�$���H�5���E�H�;H��H�5&�E�H�;1�H���H�5�E�H�;1�H�m���H�5|��E�H�;�H�r��H�5�{�fE�H�;�H��D��H�5�c�KE�H�;�����H��#��H�5�c�0E�H�;�����H�����H�5�c�E�H�;�����H�F���H�5�c�D�H�;2H�;1�H�5���D�H�;�����H����H�5�0��D�H�;1�H����H�5K#�D�H�;1�H�c��H�5��D�H�;1�H�K��H�5�D�D�H�2H�;1�H�5��gD�H��2H�;1�H�5���OD�H�;1�H�c0��H�5�b�7D�H�;1�H��/��H�5�b�D�H�;1�H��/��H�5�b�D�H�;1�H�+/��H�5�b��C�H�;1�H��H�5�b��C�H�;1�H�K�H�5�b�C�H�;1�H�C�H�5�b�C�H�;1�H���H�5{b�C�H�;1�H�S��H�5mb�wC�H�;1�H�+��H�5Yb�_C�H�;�����H�@���H�5�W�DC�H�;�����H�Ś��H�59w�)C�H�;1�H����H�5�_�C�H�;1�H�ŕ��H�5�x�B�H�;1�H�M>��H�5�x��B�H�;1�H��)��H�5���B�H�;1�H��,��H�5��B�H�-�
2H�;�H�5�7H���B�H�;H��H�5�|B�H�;�H�]��H�5'J�aB�H�;�H�l��H�5�_�FB�H�-�2H�;1�H�5,aH���+B�H�;1�H��H�5a�B�H�;1�H����H�5�+�A�H�;�H�`k��H�5l��A�H�;�����H�5j��H�5�`��A�H�;�����H��h��H�5�`�A�H�;�H�?t��H�5�`�A�H�;�����H�Dh��H�5�`�xA�H�;�����H�h��H�5�`�]A�H�;�����H��g��H�5u`�BA�H�;�����H�����H�5>�'A�H�;�����H����H�5�=�A�H�;1�H�����H�5�=��@�H�;�����H�5���H�5�=��@�H�;1�H�=���H�5�_�@�H�;1�H�����H�5�_�@�H�;1�H����H�5�_�@�H�;�����H�"���H�5�_�v@�H�;�����H�����H�5�_�[@�H�;1�H����H�5[��C@�H�;�����H�$`��H�5v_�(@�H�;1�H�L�H�5f_�@�H�;1�H�T�H�5M_�?�H�;1�H�l�H�5=_��?�H�;�H�A[��H�5�l��?�H�;�H��Z��H�5_�?�H�;�����H��N��H�5��?�H�;�����H�0K��H�5�^�t?�H�;�����H�[��H�5�(�Y?�H�;�H�jZ��H�5�^�>?�H�;�H�?Z��H�5�^�#?�H�;�����H��J��H�5�^�?�H�;�����H�yF��H�5q^��>�H�;�����H�^���H�5�q��>�H�;1�H�&��H�5pq�>�H�;1�H�^���H�5�q�>�H�;1�H��9��H�5nq�>�H�;�����H����H�5�]�o>�H�;�����H�P���H�5�3�T>�H�;�����H����H�5��9>�H�;�H�J���H�5�]�>�H�;�H�_���H�5�]�>�H��	2H�;1�H�5���=�H�;�H�\��H�5l]��=�H�;1�H����H�5�O�=�H�;1�H�|���H�5K]�=�H�;1�H�4���H�5C]�=�H�=��GS�H�-�2H�=+]H���2H��H�E�2�H��H�=
]�#�I�uH�=Po�SU�H�-2I�4$H��H�E�,J�H�}�CD�H�}@����@����������-H���3@��tH�H�5�(�-L�H�v2H�}1�H�5�\�D=�L�%ͥ��H�}�H�51L���<�H�}L��H�5�}<�H�}1�H��H�5��d<�L�%�2H�}1�H�5�L���H<�H�}1�L��H�5
\�3<�H�}1�H����H�5[�<�H�}1�H�����H�5[�<�H�}1�H����H�5]H��;�H�}1�H����H�5���;�H�}1�H����H�5Ԩ�;�H�}�H����H�5+�;�H�}�H�ji��H�5�8�~;�H�}�H�>��H�5���b;�H�}�����H�"���H�5Ж�F;�H�}�����H����H�5�0�*;�H�}1�H�]0��H�5<V�;�H�}1�H�D0��H�5I/�:�H�}1�H�[��H�5���:�H�}�H����H�5U
��:�H�}1�H��&��H�5TY�:�H�}1�H��&��H�5BY�:�H�}1�H�$&��H�52Y�x:�H�}1�H��%��H�5$Y�_:�H�}1�H���H�5]��F:�H�=��2H����H�H�5<��[]A\A]A^���H������.���H��t5H������H�	2H�8����DH�Q2H�8����f�H�92H�8����H�	2H�8�����H��2H�8����H�
J]�.$H�5<VH�=dY���f���H��H�=��2u��H�=r�1��H���2H���H�
�\�5$H�5�UH�=*Y��f���H�`tH��H��H�H����H�`tH��H��H�H��H��ff.����H�`tH�� H��H�H��H��ff.����H�`tH��(H��H�H��H��ff.����H�`tH��0H��H�H�� H��ff.����H�`tH��8H��H�H��(H��ff.����H�`tH��@H��H�H��0H��ff.����H�`tH��HH��H�H��8H��ff.����H�`tH��PH��H�H��@H��ff.����H�`tH��XH��H�H��HH��ff.����H���`tH����H����H�GH�D�fD��H���`tH����H����H�GH�D�fDAUATI��USH���>��H��H���cK�H�EH���@fD�ƒ�IT$A�$L�*M��tCL���B$�H���B�H��H���z��uPA�$��/v�I�T$H�BI�D$L�*M��u�H���ϋ�H��H����H�EH��H�MH��[]A\A]�H��2L��H�5�[H�81��+�ff.�UH��SH���r)�H�uH��H�����H��H���hG�H��H��[]�ff.�ATM��UH��SH��tqH��H��u9H��H����M�H��H�5�2L��H���L�H��t$H��H���9D�H��[]A\Ð�+K�H����fDH��H�5�	�D�H��[]A\�f�H���8���H���ATUSH���-�H��H���)DH��t[��D�H��H��I���%��uH��L��H��[]A\��f�H��H��H�=�[1��,G�L���T@�H��H��� ���b�H�5[[H��H��1��>�ff.�AWAVAUATUH��SH��H��8��u
H�������H�5��2H��H���xK�H�5�H���	C�L�%:2�����H��H�5M L����4�����L��H��H�5����4�1�H�H��H�5�Y�4�L�uA�� �sI��L�eA��L�t$H�|$��E1�L�l$ ��O��H��`H��L��L�D$��L�D$H�H H�D$ L��H�L$��?�H�L$E1�1�H��H��赛L�l$(H�D$ L���CB�H����>�H��`H��H��I��趼L��H�h H�D$ �u?�E1�1�H��H��H���b�L�l$(H�D$ I��L9|$t=K�<�K�l?�??�I��I��	�2���H���11�L��H��J���J��j���DH��8H��[]A\A]A^A_�fDH�E�ƒ����<���H�€�H�}H�U�'���������H����7�����H�EL�e H�D$���fD@��uH�����tH��ƒ���t��u�H����D��H�A��H��H���`tH��
L�D�ʃ�H���� �f�H�rL��D���� �ff.�f���H���`tH��
H�wH�ǃ��I�H�wH��I���H��1�H�=��k,�ff.���ATI��US��;�H����0�H���@8�H��I�$��`tlH��
I�\$��H��~CL�$��DH�H��H��H����H��L9�tH�;�0�u�H���z3�H����DH���8A�[]H�DA\�fDI�\$I�D$�ff.����H9���@��uH�����t
�����	t
1���ATUH��SH���;�H��I���:�I9�uAH�E��`uXH�UH���`t\H��
��H9�uVH��H��H��[H�=?]A\�0��[1�]A\�f���f.�H��
��H���@H�C�H�=�U1���ff.����H9���@��uH�����t
�����	t
1���ATUH��SH���!:�H��I���:�I9�uAH�E��`uXH�UH���`t\H��
��H9�uVH��H��H��[H�=]A\�0��[1�]A\�f���f.�H��
��H���@H�C�H�=�T1��,�ff.��������AUL�oATUSH��H�/H��%`uL�oL�fH�`uL�fH��u?H�oH��~F1��f�H��H9�t7I�4�I�|����u�H��1�[]A\A]��H��
����H���[]A\A]ø�f.�������AUL�oATUSH��H�/H��%`uL�oL�fH�`uL�fH��u?H�oH��~F1��f�H��H9�t7I�4�I�|��I�H��u�H��[]A\A]�f�H��
����H���[]A\A]ø�f.���AWAVAUATUS��H��H�T$���sL�.I��A����A��������I��H�@H��Lc�H�$�B�H�Ņ�t8E1��K�<��g=�H��H��H���4����I��M9�|�H�<$蚂�H��I�����I�D$I����H�t$L�����H��L��H���Q����|=���|H��H��[]A\A]A^A_�f�I������.���A�E�����������Lc�A�H�@H��H�$�A�H������fDH�|$�f���H���r���fDH��1�1��l��s���H���1H��H�5�QH�81��L�����//�ff.�@USH��H��H�-x�2�fDH�[H��t_H��1H;tSH��H���X'�H��t�H��H����u4H�����t,H��у���u�� t:H��H��H��[]���f�H���1H�5ZQH�81����H�@H��[]�D��U�)H��SH���i��H��H���.���H��H��H��w1H�H��H�{H��H��
��H	�H����H��H��[]��H���"�H��H�CH����H�kH��H��[]�fD��ATUH��S�`;��tL1�L�e� @H��
��H9�},L��H�<�H���4�H�E��`u�H;]}
H�E���H��[]A\����H����5�[H��L��]1�1�H��A\�I:�f���AVAUATUS����H����:�����W�1�L�eI���M@H��
��H9�}\L��H�<�L�4���H�����tL��H�E`uH�EJ�40L���#5�H��H�E��`u�H;]}H�E�f.�[L��]A\A]A^�@���H���5�[H��L�8�]1�A\1�A]H��A^�e9�1�1��l,�ff.����AWAVAUATI��USH��H9���I���
��I�$��`��I�UM�t$��`��H��H��
��I9���1�M�}M��.�SI�D$H�,@��u	H�����uxH��I9�t/I�UI�$��`L��uI�MH��H�,��`u�I�D$�H��L��[]A\A]A^A_�fDI��I�UI��
A����`�]���I�M�^����H��L������u���I�$��`H��`�d���H�E��`H��`�S���H��L���
��C���H�T�1H�5�MH�81����ff.���AWLc�H��AVI��AUATI��USH���-2�L��H���b���H�����I9���H��N�,�1�I�T$M���DH��I9���I�,H��I�$`uI�D$H�,@��u�H�����t�H��L��H�T$H�$��H�$H�T$��u�I�$��`H��`u�H�E��`H��`t�H��L��H����H�T$H�$I9��{���fDI9�}H��L)�I�$`t#I��K�<���H���[]A\A]A^A_�f�M�d$��H�"�1H�5�LH�81�����USH��H��H�-�2�f.�H�[H��tOH�X�1H;tCH��H����!�H��t�H��H����H��t"�u6H�����t.�����u$H��[]�DH�i�1H�5*LH�81��0��H�Q�1H�5'LH�81�������H���!�H��H���w1����H���#0�H���� �H��H���O1�ff.�@��SH����/�H��� �H���`t3H��
��H��� tH����H9�u[�fDH�P��f.�H�K��H���1H�54LH�81��R��f�UH��SH��H����#�H�0H���� tYH����H��~e1�L�H�DH��H9�tOL��H��uH�H L��H9�u�H�E`uH�mJ�DH��[]�H�p�f�H��J�DH��[]�H��H�5�JH��1��,�ff.����SH��H��H��H�t$@���
@��tL@����H�H�H��%`H��xwH����H�CH��H9���H�[H��H��[��H�����t����������u�H�|$���H����H���i/�H��H������@H��tSH��
��H�y6H���1H��H�5�JH�81����@��%�H���<���H��
��H9�}5H���Q���H�CH��H��.����fDH��H������H��[�H�X�1H��H�5�JH�81��L��H�|$����H�|$H�5hIH��1���ff.����H�@SH��H�xH��H�t6[�+��H�����H��[H�����@AUI��ATUH��SH��H���X!�H�8H���� ��H����I�M��`��H��
��H9���H����1�L�@��H��H9���L��H��uH�p L�$�H9�u�L�����I�EI�E`uI�EJ�, @��u	H�����u-H��H��[]A\A]�fDI�M�t����H�x�P���H��L���4��u�I�E��`H��`u�H�E��`H��`t�H��L�����H��H�5�GH��1��5�H���1H��H�5|HH�81����f.���ATI��H��UH��SH��H�t$@���D@����@����H��H�I�$H��%`H����H����I�D$H��H9��XL����I�D$I�$`uI�D$H�,�@��u
H�������H��H��[]A\�@H������q�������������Z���H�|$�b��H����H���,�H��L��H�����뤐H��tKH��
��H��O���H�l�1H��H�5rGH�81��`���"�H������H��
������@I�D$H��H������DH��H��L���:���H��[]A\ÐH��L���E���
���I�$��`H��`�����H�E��`H��`���H��L��������H���1H��H�5�FH�81����H�|$�6��H�|$H�5�EH��1�����AUATUSH��H���/����H��E1�L�c���H������H���`tPf.�H��
��I9�}CL��H����L��H�`uH�SJ��H�ƿ1�I���$�H���`u�H�CI9�|�H��H��[]A\A]�H��
��I9�}�L��H����L��H�`uH�SJ�4�H��I���y�H���!�H���`u�H�C����H����)�H��H��1�[L��]1�A\H��A]�C.���AWAVI��AUM�nATUS1�H���6�L��H�����I���0H��
��H9�}<L��L�<�H��L��H�����H��L��H���P�I���`u�I;^}
I�F��@H��H��[]A\A]A^A_�fD��AWAVAUI��ATA��USH��(��'�H���K%�	H�=�CH�����H��H�CH� tH�C��D$E����<#��L�����I��I�E��`��I�EH�$1�I�GH�<$H�D$��� H�D$H��L�4�H��H�D$�2)�H��I�������uL��������L���� �H��H���
�H�5#�H���,�I�EI�E`uI�EJ�<0H���-��H��H���
�H9$��H��tC�H�5�H�����I� �B���I�G �>���f�H��
��H�$�����|$#tʺH�5%rH�����H�|$��H��H�����6���fD�H�56�H���\��@��u@H�����t7H�U�Ѓ���~A��u#I�����tI�E������t%H	�H�UH��(H��[]A\A]A^A_�@H��H���u�E���!���H��(H��[H�5�A]A\A]A^A_���f.��H��r��q�����ATI��USH�����H��H���&�H�uH���� t[H����H��~d1�L�M��H��H9�tLL��H��uH�M L��H9�u�I�$`uM�d$[]K�A\�DH�u�f�I��K�[]A\�H�����H�5AH��H��1�����������AUI��ATI��UH��SH��H���L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$H�|$�D$ H�D$H�D$ �D$0H�D$���L��L��H��H��I����H���[]A\A]�ff.���ATI��UH��SH��H���H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�|$�D$H�D$H�D$ �D$0H�D$�-�L��H��H��I��1��:�H���[]A\�ff.���ATUSH��H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�|$�D$H�D$H�D$ �D$0H�D$�i�H��H�'�1H��t2L� H�����H��L�����H��H����H���[]A\�DH�8����ff.���ATI��UH��SH���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H�|$�D$H�D$H�D$ �D$0H�D$�{�L��H��H��H�3�1H��-�H��H����H���[]A\�ff.����H�H��H��� tH��H�v��H��Hc�H9�u��H�v H�y��P�@����H�H��H��� tH��H�v��H��Hc�H9�u�C�H�v H�y��P�����AUATUSH��H��H�t$xH��$�H��$�L��$�L��$��R�I��A��H�I9��A��
��H��$��D$H�t$ H�D$H�D$pH�D$E��~aL�L$�L$E1�1�H�|$�'f���A���L�H�H��H��A9�~��/v�H��H��H�H��H��A9��E��t�L$H��D���B��H�Ĩ[]A\A]�@L�����H��H��H�D$ �(��H�EH�l$ H��� u7���H�u H��$��D$H�D$H�D$pH�D$�,���f.�����H�u��L�����ff.�f���H�m�1SH�=�;H�0�E-�H�N�1H���1H��H�2H��"�H�;�1�H�;�����H��H�5��v�H�;�����H���H�5����H�;�H�L�H�5����H�;�H���H�5.���H�;�H���H�5���z�H�;1�H���H�5�D�b�H�;1�H���H�5���J�H�;H���H�5���$�H�;1�H�(�H�5����H�;1�H�����H�5r���H�;1�H���H�5���H�;1�H����H�5%���H�;1�H����H�5�.��H�;1�H���H�5g���H�;1�H��H�5:4��H�;H���1�H�5�n�q�H�;H���1�H�5���V�H�;�����H���H�5W��;�H�;�����H���H�5S�� �H�;1�[H�#�H�5�8�����H��H�=s9�|�H�=�2H�����f.�f�AWI��AVI��	AUATI��UH��SH��H��L�52I��� t{H����L9�vOL��L���\��I��H��t;��L��L��H�H���)�H��H�sH��[L��]A\A]A^A_�o)������L��L��H��I���M)��I�F�f�AWAVAUL�,7ATUSH���z��I��H�׉L$H��I�������M���~M��~yA�>@��~�H�
49@��Hc�H�>��fDA�~@��DI�nA�L9�u1H��D��[]A\A]A^A_��A�F<=��<~tg�A��������I���ZA�F<=t=<~t9�D$@t�I�nI9�vvH�KXA���A�~*�e���DI�nA��[����A�F��=���?�����DA�~@��I�nA�L9��:I���P���A�}�=�E����L$I�t$�H��L���q������(���A����DA�~]��L��A��f�I�nI9�v�A�~�W߉���]���O��ɍQI�����7����Hc�)�H�5��1������I�FI9���A�FH�KXA��zf�A�F<<���<=�;���A�~>����I�nA��+����@��H�ھ
L���SXA�Dž����A�
�����A�~=�������EH�KX��<_tEH�ھ�х�u&�}�������H��H��L�����H�H�I9������H�KX�E��H�ھ
�х�u��E��x�<_t�I9��p���<=tR<?t<!�`���D����������A���}���H�UH�EI9����}=A�H���#���f��D$D���B���H��A����H�KX<-tWH�ھI��х�u�o���f�A�?H�ھ�SX���V���I��M9�u�A����DI�nA��n���M�~M9�vUA�~H�ھ
�х�uA�F��x<_����H��L��L����H�L����A��P���H��A��=���A��W����AUA��ATUSH��(H�l$H�|$H���1�H�|$I��H�7�� u>H��H����?��D��H��L��H���N���H�l$H�T$H��([]A\A]�f�H�_��f.�UH��SH��H��H�=�2H�T$�3���tGH�l$H��H��@��t*H���u6H�����t-�E����u"H�E H��HD�H��[]�@H��1�[]�H���5�H��H��H�=�6H��1����H�	2H��H��	H��� tH����H9�r1��H�BH9�s�U��H��SH��H��H���9��H��u1�H��[]�f.�����H��H�4^���H��u���@H���vH��H9=l2r1��c���H��u�1���U1�H��SH��H��H�|$H�=>2H�t$����tH��[]�H�SH� tH�SH��H�=61����ff.�@UH��SH���R��xt1�H����[]ÐH���8��H���0��Å�u�H�����=u���@=0u�H���1H�5�6H�81��1����UH��SH��H��@��t/@��uXH�����tO�����uEH�F �uH������uH��H��� �H��1�[]��H�CH���[]�H�wH� tH�wH�=|61��}��ff.�f�AUI��ATI��UH��SH��H��H���LF�H��H��@��u+H�����t"H��ƒ���tH�€�H�~H�t��t=H��轻��H�=~2H��I��H���(��H��L��L���:���H��H��[]A\A]�@H��H�t$��H�t$�@ATA��USH������H��Hc�H���HD�������tE��t{��H��H�����H��2H�������H9�w%H��H��[H��2H��H��H	�]A\H�������H���C��H�5�3H��H���1H�81��8���H���
�H����H��H������u���AUI��ATI��UH���4SH������L��H��H���e���u	H�����ugH�k@��u
H�������L�c H�����H�=2H��H��H��?H�C��H�=�2H�����H��H��[]A\A]��H��ƒ���t�H�€�H�{H��x������o���H���n
��b���f�H��H���e����]���H���`H��`�M���H�E��`H��`�<���H��H�������,���ff.��ATH��US1�H��H�=$2H�T$�����tH�\$��uH�����t
�����tH��H��[]A\�DH������t�H�kH�CH��L�c H���i���H��A�����L��H��H��H�-�1H�8�5���H�����AUATUSH���}��H�l$H��H��H��2����H�߻!���H�=�1���1�H�G2�J��H��H�@2����F�I�����9���_t#��u�H��L��\$���H��H������H��H��u�H�B0���.L�kx��C�k����t1��{@��H��H��L��H�������H�����I9�u���H�=/TH��H���v���
H�����H�ھH�=a��U���
H���h���H�ھH�=�$�4���
H���G���H�ھ	H�=Q&����
H���&���H�ھ
H�=������
H������H�ھH�=q1�����
H�����H�ھH�=�����
H������H�ھH�=�����
H�����H�ھH�=!��n��H�����H�ھH�=���M��H���`���H�ھH�=���,��!H���?���H�ھH�=͋���1H������H�ھH�=�����AH�����H�ھH�=�����QH������H�ھH�=K9���aH�����H�ھH�=~S���qH�����H�ھH�=���f���H���y���H�ھH�="�E���H���X���H�ھH�=��$���H���7���H�ھH�=tt����H������H�ھH�=�/�����H�����H�ھH�=y/����H������H�ھ
H�=������H�����H�ھH�={�����H�����H�ھH�=s��^��H���q���H�ھH�=C��=��H���P���H�ھH�=&6���!H���/���H�ھH�=z����1H������H�ھH�=�����AH�����H�ھH�=n!���QH������H�ھH�=i2���aH�����H�ھH�=��w��qH�����H�ھH�=8�V���H���i���H�ھH�=N��5���H���H���H�ھH�=(�����H���'���H�ھH�=�������H������H�ھH�=������H�����H�ھH�=������H������H�ھH�=�[����H�����H�ھH�="�o���H�����H�ھ	H�=ԇ�N��
H���a���H�ھH�=�6�-��
H���@���H��1�H�=u�����H���"���H�ھH�=f������H������H�ھH�=�������H�����H�ھH�=q,����H�����H�ھH�=\,����H�����H�ھH�=O,�j���H���}���H�ھH�=6,�I���H���\���H�ھH�=,�(���H���;���H�ھH�=,����H������H�ھH�=	,�����H����H�ھH�=�+�����H�����H�ھH�=�+����H����H�ھH�=�+����H����H�ھH�=�+�b���H���u�H�ھH�=�+�A���H���T�H�ھH�=�+� ���H���3�H�ھH�=�+����H����H��[]A\A]����H����^������H�������UH��SH��H�����H��H��H��H��[]�����SH�����H��[H��������SH�_H��u[�H�GH��H����H�=^�1H��[���ff.�f���ATUSH����H��t[]A\�fDH���x��I��� ��H��I9�tH�����uDL��H���!������H��H�����H��[��H�H��]A\Hc�H�C�1H�8�K�H���0��H��H��H�������u�H�����t�H��ƒ���t�H�€�H�{H��z������q���H���2��d���ff.�f���ATUSH��@��tO@���H���������������������H�k H���t H��[]A\��H��H��[H��]A\ÐH�=�1L�cH�������H9���H��H��H�=��1H��H	�H�k L��H���n�H�=��1L�����DH�kH�CH��L�c H���
�H��A�����L��H��H��H���1H�8���H���4����H��������H������}���H���$�H�5k&H��H���1H�81�������ATH��I��H��UH��SH��H��H��@dH�%(H�D$81�H�|$�H��uH�����uDH���t�H��uoH��H��L�����H���T�H�L$8dH3%(uNH��@[]A\�H��у���t�H�р�H�xH�t���u�H��H�D$��H�D$�f�H����������UH��SH��H���+��H��H��H��H��[]������SH���C��H��[H���W����SH����H��uH��1�[��H��[�w����H���v#@��uH��H;=��1w ��v�fDH��H��H���@1��ff.�f���H�����H��uH���f�H�xu�H��1H�H�PH���fD��USH��H��H���w"H��p���H������H��[]�D�������H��ETuJ��u=�8�H��tH����H�5_$H��1��]��DH�ى�H�5t$1�����H������H��tjH����H�5Y�H��H���_��H����H��tH��H��[]��@H��H�߾[]������H�5�#H��H��1�����H�"Hc�I��H��H��H�5$1����ff.�f���@��uH�����t
�����tH���Z��f.�H�G�ff.���SH��PdH�%(H�D$H1��"����H��H���R�1҃�t#H�L$HdH3%(H����H��P[�fDH��H�\$���H�t$H��� ��H��H����H��H�|$ H�����uBH�����t:H��у���t-H�р�H�xH�t��uH��H�D$��H�D$fDH��� �H��H���I���H�D$H�D$H�D$�5���H�NH�vH�Q��t������f.���H�����H��t&H� t
H�@H���@H��H����1�H����H�%�1H�����H�������H9�wH�BH��1H��H���ff.���H���1SH�xH������H�=��1H�5J�H��H������H��[�f.���H���v��1���
����1��ff.�f���H���v��1�������1��ff.�f���H���v��1�������1��ff.�f���H���v��1�������1��ff.�f���H���v��1�������1��ff.�f���H���v1������f.�1��ff.�f���H���v��1�������1��ff.�f���@��tH� ��1���
���fDH��H���w�1����@��tH� ��1������fDH��H���w�1����@��tH� ��1������fDH��H���w�1����@��tH� ��1������fDH��H���w�1����@��tH� ��1������fDH��H���w�1����@��tH� 1������f�H��H���w�1����@��tH� ��1������fDH��H���w�1����ATUSH�H��H����tnH����t1H�����I��H��tZH�EL�����[L��]A\�8��H�����tƋ����t
I�܃�u���H�C H��u	H�CH�1�[]A\�H�����H�PH� tH�PH�>�1H�5�H�81����D��AUATUSH��H���t@H����tJH������I��H����H�EL���!�L�����H��H���HD�H��H��[]A\A]�@H�����t������t
I�܃�u��H�C �u�H������uH�]�L�cH�CH��L�k L���A�L��A�����L��L��H��H��1H�8�
�H���H�����H�PH� tH�PH� �1H�5�H�81�������SH��H��0dH�%(H�L$(1�H��H��H��H�����H��H����H���`�H�L$(dH3%(uH��0[��u��D��SH��H��0dH�%(H�L$(1�H��H��H��H���3��H��H����H���`��H��HD�H�L$(dH3%(uH��0[��	��f���H��1��A���
��H�������H��1��!�����H�������H��1�������H�������H��1��������H�������H�����������H�������H��1�������H�����@��H��1���1҃�w���H���A���҉�H���ff.�f���H����>������H����É�H����H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��)ǁ�lLcǃ�u@H��(\��(L��H��H��H��H��H��H��H��I9�tHc�H��#����@H�q=
ףp=
L��H��H��H��H��H��H��I9�t�Hc�H��#����I�q=
ףp=
H��H��H��H��I��H��H��H��)�����G���ff.�f����8�fDHcw�OLcOL��lA���H�ףp=
ףL��H��L��H��?L�H��H)�H��H��H��I9���H��"B�kW<Hc�iG�H�V�Hc�H��H��H��H�H��H��H��y�DH)�H��H�@HI�H��H��I��H�I����H�ףp=
ףL��H��L�I��?H��L)�I��H)�I��+��H�ףp=
ףL��H��L�I��?H��L)�H�H��k|����Hi��QH�H��f.�H�ףp=
ףL��H��L��H��?L�H��H)�H��H��H��I9����H��!B����f.�H�����H)�H��H�ףp=
ףH��H��H�H��?H��H)�H�V��V���@H�ףp=
ףI��I��L��H��L�I��?H��I)�I�P���ff.�H�L�H���ɚ;~IH����&�.H��H��H��H��?H��H)�H��������H)�L9�|iHi�6e�I�H�L�H��DH��y�H����&�.I��I��L��I��?H��H��I)�H��I�A�H)�L9�Hi�6e�I�L�H�H��PH�ȸ1H�5H�81��/��ff.�@@��t@��u4H��H��H�5ơ21�����H�������H�����f�1�H9�����@��t@��u4@��uH�����t
�����
tkH���*1��7���I��H��I�H�t:M��t5H��xpM��x;H��I��H��p�H��x�H�@H�ylH�����@��f����I��H��I���e���H��H9��R���H��H���fDH��H��M��y�L��H��H���*���I���H�H��H���ff.�f���U�8H���SH���4�H���1H��H��H�����S0H������S0H��[]�@��SH��H�?@��tH�{���H�{���H�{[����{����f�UH��H���S1�H��H��H�5ӟ2���H��H��H��H��[]���f.�@��uH�����tH��ƒ���t��u�H��腹�DAU1�I�պATI��H��USH��H�5��2�J��H��H���o��H��t-1�H��H���\��H�߾I�E�K��I�$H��[]A\A]�H���T��H�5=H��H�{�1H�81��I��f���H��H�|$H�|$虶�H�D$H���ff.�@H��@��t%@��tI��H��I�H�t~L��H�H��H��L9�tAH��H�5��21���k��uH�����t
�����tH���H�xu�H�@��H�@H�xH�D��f.�H��H�����菵�ff.�@UH��SH��H���_��H��H��蔺�H����H�p(A�����H��y	H��A�H���������H��I��I��H��I��?H�2H��L)�H��H��H)�H��I)�H��H��H��H��?E��H�<
H�|�j�Y�HH��H)�H��H��H)�H��H)�H��H��A��H��
L)�A��E��tD�A��;��A��<��D���tK���;�Y��<���K����S�?�����{���s�S��lHcȨ��H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9�����l���CH�
�Hc{��H��9������s�C�C�H�Ⱥ�$I�������)�)�)��K�C H�*H�C(H�C0H��H��[]�@�S��H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9��	�����m���CH�
��:�����C���S����H�H�C�C�P�k�SHcȨ��H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9�����l�C�C�H�����A��<��D�������������<���K����������f.��S�H���tu���K�S�f.���H�C�{�C�U���fDH�ףp=
ףH��H��H��H��?H�H��H)�H��H���mH��H9��8�������ClHc�u:H�ףp=
ףH��H��H�2H��H��?H��H)�H�HH��H��H��H9�uCH�ףp=
ףH��H��H�2H��H��?H��H)�H�NH��H��H��H9�H��HDЋC���CH����K�C������C�S�s�R����K����D��y����S�j��H��H���Ϲ��u�v��H��[H���zT��f.��+��H��H���0��H��[�ff.�H��H�|$H�=8�2H��t#H�t$H�L$H�����H�D$H����c��H��H��2���AUI��ATI��UH��SH��H��H�E��H��H���z��H��tDH�D$(H�|$0I�EH��tB�m���fo$foL$I�$foT$ H�D$0))KH�C0H��)S H��H[]A\A]�fDH�=�������tH�H���@ATI��UH��SH�?H������H�EH�I�$1�[]A\Ð��H��1�1�����F9Gu�F9Gt�����D��D�F9Gu�F9Gu�F9Gu�1��9u���ff.�H��AWAVAUATU��SH��H��XfofoGH�D$8H��foO L�t$PH�D$@�G H�T$�D$H�G0)T$P)D$`)L$pH��$����(L��$L�l$0f~�)T$P)D$`)L$pH��$���������H�<;�D$`H�D$PH�H�D$XL���i�I��H�D$0���9L��L������H����H��H�����L�T$0���M���UI���QL�T$8H�D$0L9�~OH9D$@~H���(	L��L���u���H����H��H���Q���L�T$0��������	L�T$8����p���H�|$8L���ֲ�H��H���kH��H���������!�o9)�$��oY)�$��oa )�$�H�A0H��$����/�2��H�|$@L���e��H��H����H��H���������L�T$@���o)L�\$8A�)�$��oi)�$��oy )�$�H�A0H��$H��$�H�D$(H��$�H�D$ @I�KL9���E���A����A���FH�D$0I9���L9������L��L������H��H���!H��H�����L�\$0����*�oL�T$@L�\$8)�$��oa)�$��oi )�$�H�A0I�KH��$�L9��F���Hc{�S�sI�������$�A���QA���F��n����xI���A������)�)���++�$�����A��D��)�i�m��)���<1A�q����NI���4A�I�A��+���A��D��A����)�A���D)ʍ�S�K+�$�+�$�D�i�k�<i��QHc�Hc�H�H��;IӋ�$�IË��<D�)�H�I�H�D$L�1����t$\�����D$dlHc����H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H�H��H9���Hcɋ�9��e�D$\H�<;H�D$P�D$X����DH�|$8L����H��H�������H�3
�%���L��L���@��H���O���H��H���l���L�T$0�������D$���KI�� H�l$HL�T$H���L��H�����H��H�����x����*D�CH�t$0D�OD���D�����)R��A)�E9���D)Nj+i�L�T$H‹A+Ck�<�H�I)‹AL�T$H9CtI�€QL�T$HL9�t]�(��L��H���]��H��t@H��H�����L�T$0��u4H�D$HL9�LN�H�D$L�1�H��X[]A\A]A^A_�@L�T$0H�D$L���fDH��D$`H�D$PH�D$X�:���L���@��H�D$0H���u-fofoCfoK H�C0���fDH���n���@L��$L�l$0�F��L��L���{��H��tH��H���������fofoCfoK H�C0�Y���@H�|$@L����H������H�H�D$PH�D$X�r���H�H9�U���I�����@H�ףp=
ףH��H��H��H��?H�H��H)�H��H�,H��H��H9�H�ZHD������L��H��?L�H�H��L��H��?L�H�H�L9�sH�L$0A�������3��L��L���h��H�������o1L�\$@M��L�\$8)�$��oy)�$��oq )�$�H�A0H��$�<���@L9�}3H�D$0A��d���I������L�T$@L�T$8H�D$0���DI��A�L�T$0�-���@I�� H�l$HL�T$H�r��L��H��觫�H��H��������{�p����*L�T$0D�GD����D������)R��A)�A9���)��+i�H�t$H‹A+Ck�<�H�H)�H��H�t$H�q9stH-�QH�D$HL9���������L��H�����H�����H��H���:���L�T$0������H�D$HL9�LO�H�D$L����@H�|$ H�L$��H�L$K�H)�L9�H��uI�B�H�D$0A����f�L�T$8L�T$0���_����i���f�H�|$(H�L$�1�H�L$K�H)�L9�H����H�T$0E1����@�D$X��xx����H�<;�D$XH�D$P�j�������L��L����H������H��H���$���L�T$0���������f�H�H9�_�������H�D$P�D$X����f�L�T$0����fDL�T$0�g���fDH�L$0H��E1�����D$T��x8��;~AH�<;H�D$P����L�T$@�N���fDM�����H�D$P����D$P��x��<�p����D$P<�c����D$P�V����@��t@��u4@��uH�����t
�����
tCH���+1�����H�H�H�@H�H�xH�D?�f��ۡ����UH��H���S1�H��H��H�5Ë2讷�H��H��H��H��[]����f.�@��t@��tH9�|������랸������ATI��UH��S�W%�F%�_$��?��?��?)��F$��?)��F#H�6k�<����_#H�?��)�i���N���tzA�D$!�U!1ƒ�t1�U!������8��%]�����QHc�[]H�DA\�fDA�D$"�U"1ƒ�t��U"����8��%]�����QHc�[]H�DA\�H�uI�<$����%]�����QHc�[]H�DA\����SH����t3H��]��}H��1H�5�H�81�蒤�f�H����H��[�f�H��]��H���A�����~þ�H���0�����y�H��[��S�G!�tM���<wDH���G"t;�G#��<w0tH�C$��?<;w#�C%��?<<wH�{@��t8H��~	H���5w~PH�C�1H�5XH�81����f�f�G$??t���fD������x�H�{@��u���5w�~�����y�H�{H��u[�fD[����f�SH��H������5wH����H��H���u������x;H�����������H�������5wH���c�H��H���8���1҅��‰�[�ff.�f�SH�5Xq1H��� ���P0����t[�H���*��H�5eH��H��1H�81��Ϣ�ff.�@��H�������@0��<�HD�H������USH��H���n���H�5�p1H��H������uH��1�[]��H���@���H�}H�0H��[]�^��ff.���H������H�8H���W�����ATUH��SH�����H�5Fp1H��I���k���t7H������I�<$H�0�����t����H������[H��]A\�@H��H��[]A\�!C�SH�5�o1H��谺��P0����u[�H�����H�5�H��H���1H�81��_��ff.�@@��t@��u4@��uH�����t
�����
tCH���-1�鷲��H�H�H�@H)�H�xH�D?�f�鋜��S��@��uH�����t
�����tH�(kn���H����5w��H��H���6��fD��H���s���H�8���H��H�����ff.�@UH��SH��H�����H���7���H��H������o�oKH�oS P H�S0H�P0H��[]�@��SH��H9�t���H��[�f�UH��SH���"��H���
�H��H9�tH��H���g���H��H��[]�ff.�f�@��uH�����t
�����t���f�1Ҿ
�T��@AVH�%�H���AUATA��USH��H�� ��HEƒ�I���N���A��A��A����H��H���H���K���B�����
�,���#���"E����A�����Cf��H�|$�L$�.���L$f/��Y\����XO�,��D$Hc�H���ɚ;~�X��H��ʚ;�D$�H,�f���H*�f.�zt]A����H�CH�D$H�ۚ1H�5��D$H�8��9��f����GH�H��H��y
A���1�H�� H��[]A\A]A^�H�����t�����
t���t�A��A��������H�5Ƀ2H�L$�H��H�D$�v��H��4��H���t��H��H����1�H���]��H��H�D$�K��H�l$H��@����H�H��yA��uX1���5w�H��H�55�2�����H�� H�[H��H��]A\A]A^�f�A�����Cf��f/��%���H�L�1L��H�5��H�81�����H�����H�����H�����H���Z����M�\��D$�,�Hc�H�������\���ʚ;H)�H���D$���H�����H���`�����t\H��H9���H�ڸf��H��?H)�H��H��H	�H��H�D$�~D$f/�� ���A��A���9����H��H9�tAH�ڸA�H��?f��H)�H��H��H	�H��H�D$�~D$���f.�A�f��f�����H�����L��H�5��H��H���1H�81�臛�H��H9�tH�ڸH��H��?H)�H	�H�����fH~���ff.�@�������S����@��u	H�����u@��t5�h���x3!�9�u-[�@�����u�1Ҿ
�—�H����D�����H�*�1H�5?�H�81��ɚ�f�AUATI��USH��螦�H����H�H��H�Ӂ� tsH�x~t1�L�%s��B�H��H����H��u'H�uI�<���������H�UH�ց� H��H��t?H��A�݁� t�H�}u�H�u�@���u��L��H��[]A\A]����H�EH��u'��1�H���0��	v�H��[]A\A]��H�E��f.�H��A�E[]A\A]Ð@��t:@��u=H��H���H��t0������t&@��t �����
u�8���H�����u�H���%1����H�@H�x)H�D?�uH�����t�����uH�xt/�fDH��诔�uH�����t
�����tH���@H�@�H�xu�H�@��ff.�H��H��H�5z~21���V��uH�����t�����t �����tH��ÐH�xu�H�@��H�xu�H�@�u�H�����u������H���C�����5wH�8�v����uH�����u�H��H���I��f������u�H��ÐUSH��H����tR���u;H��H���H��t^�؃���tT��tO�������wBH�
�Hc�H�>��H��H��H��[]�H��H����H���iH���pH�5}2H����1�1�H���4��H��H��4��H�5�|2H���wH��������H���H������@���o���������H����@����H��4���E������H�}�+���H�mH��[H��]�f.���������/���H�
�Hc�H�>��fDH��H��H��H��u�H��tcH��t�E����t����������
�����H���Y��H��H���1H�5`�H�81��N��fD���������
�y���H��u�H�=(�������������H���Hc�H�>��fDH���R���H�������H�=)����H��H�E{2�i����H�=�����H��H�-{2� ���H�5�H���q��H��H���=���H���F���H������@ATUSH���T��H����H��H�XH� �>H����x�pH�����H�����A�ą��UH�U�� �H�UH��tIH��	�4�{:�*�{������{�t�����C���CD��P����+�����{�B������{�1������{:���{�������{�������C<5���S���S�J���Ci��Hk�<����AĀ;-t9A��$@���[]H�A\H�D�DH�X����H�������@��{[]D)�A\H�H�D�@H��[]A\���H�
�1H�5��H�81�謓�ff.��USH��H��H������H��H�����H���l��P0H�hH�@ �����P0H��H��[]�f�AU1�I�պATI��H��USH��H�5'y2�ʤ�H��H�����H����1�H��H���؛�uH�����t�����tBf�I�E�H��诛�uH�����t
�����t)I�$H��[]A\A]�f.�H�xu�H�@�H�xu�H�@��H���{��H�5d�H��H���1H�81��p����H���S�H�L$H���5wH�8���H�$H���DUSH��H����tBH��H�L$H���5w����H�,$H�\$@��t^H���t>H��H��H��H�[]�fDH���X���t�H�-�1H�5��H�81��̑�@H�����H��H��[H��]�H������H���AWM��AVI��AUI��ATUH��SL��H��HA��H�t$�|L�d$0H�T$(H�߾�5wL���
���H�|$(H�T$0H��H�@����H�D$0���JH�EH�L��H�T$8��˞�H��H��u1�H��H[]A\A]A^A_�f�����I��L�T$H��H�}M�ዄ$�M��L��L��dA�P��A��AZA[L�T$H��u�H�E�8uA�:"u�H��
H�D$0H�\$�H�D$�Pf.�H��H�}L��L�ꋄ$�M��M��H��P�LA��ZYH���@���H�}���H9\$��H�H�����H�E�I��u�H��H�}H��M����$�L��L��PL�L$ �A��^_�H���`����t���H�߾�5w����L��I��H�E��y��H��H��������؏�H�}I���I��tmH�D$H��M��M����$�L��L��dP�n@��AXAYL�T$���H�T$��H�T$����@H�|$H��t
�(���L���8��L�d$0�<���ff.���H����H�L$H���5wH�8���H�|$��5w����H���f.�AUATUSH��H��(�f&��5wH�l$L�d$H��L���e���H�D$L��H��H�|$��H�C�G���H�|$H�D$�H�|$H�$���H�Ǩ�����H��$I�H�<$�������)��C&у���	��K&@���c�~��A��D�������D���B�D���)�k�<)��C%��?��	ЈC%���Ⱦcu����)��C$k�<��)Ѻų����?	�D�����C#�K$H����D��)�H�|$��	ˆS#H�T$����H�|$�!���H�<$H�@���������H�;��+~��:,�	���Ⱥ�����������)�)�k�di����)�́�+~��9,������s�m�������)�)��4�iɵ)͉��;�Ⱥ��������D�$
A��D��A)�)�A�i�m)�͍EMc�f%�K�t-���C f%�	�f�C ��H�ףp=
ףH�L��H��L�A����L��H��H��?H)�H��L��H�=��H��H��H)�H�~�H��HD��������
�4�H��9�~/�Ѓ���C!���	ȈC!��)�����C"���	ȈC"H��u�H���H�CH�CH��([]A\A]�����\���@���A������ۗ��L���fD��G�������@H��L��H�=��H��H��?H)�H��H��H��I9��$���H��H)������3�����Ef%����C f%�	�f�C ��H�=Z�H�����f�D������*�N���fDD�f��&����9���f���H�����H�L$H���5wH�8�~���H�|$�4��H���ff.�@H��@��uH�����t
�����
tkH��1���*���uH�����t�����t)�����tH���f.�H�xu�H�@��H�xu�H�@�t����s��u�H�����u��D@��tH��H�t"x0�ʚ;H��H��pH��H��yD��5w�1������f.�H�Ⱥʚ;H��H��p�Hi�6e�H��H9�w�H��H�@H�yH���0��H�D	�f.�SH��H�� H�|$@��uH�����t
�����tj�E�H�L$H�T$�H���n��H�|$@��uH�����t
�����t ����H�|$H�����H�� [�H�u�H���1Ҿ
贅�H�H��H�D$�H�����U��SH��H��HH!B H�a:H�H�BH�BH�B��
��H�F H�~(H�D$0H�F@����H�D$H�FH�<$H�D$H�FH�D$H�FH�D$ H�H�D$(�����C&���	ЈC&�|�H�|$H�H���Z�C!�����C!H�|$H����C"�����C"H�|$1�H��t����ƒ��C#H�|$ ���	�1҈C#H��t��r��ƒ�?�C$H�L$0H�|$(��	�1҈C$H��t��t:H��u$�C%H�߃�	ЈC%� �H��H[]�f�H�s�����ƒ�?��H�����C%��	ЈC%��uH������t�������H������5wH���9�����H������H��H�C��H��H[]�f�������C"�����	ЈC"����������C!���	ЈC!���@H��H��H�UVH�A8L�IPH�A0L�APH�A(PH�A PH�AP1����H�|$0�K&H��0�'�������H�L$0�ƒ�?���H��1Ҿ
���H�����f���USH�����H�l$H���5wH�8H��H����H�|$����'���H��H�ھ�5wH���t�H�<$�+��H��[]�@H��@��uH�����t
�����
tCH��1���-���uH�����t
�����t	H���@H�xu�H�@��軌�u���DH��@��uH�����t
�����
tCH��1���+诖�uH�����t
�����t	H���@H�xu�H�@��軐�u���DUH��SH���r�H�����H�}H��H��t&H�@H�xH��H�t?H��[]�L���@H��[]Ð���H��H��H��[]�*���f.���AT1�USH��H�=�����H���/���5wH�8H�����I��H�%~1H�8�M��H��H�@ H��`0�L� ���K0�P0����	ʈP0H�SH�PH�S H�P H��[]A\�ff.��ATUH��H��S�������tz�tVH�����H�}H���b���I��H��}1H�8���H��H�@ �`0�L� �E0��<tw<��H��[]A\��H�����t������u�H�xu�H�@닐�uH�����t�����tzf.�H������H�}H���\����e����H�������P0����P0H��[]A\�H��H�m�����P0H�hH�@ ����P0H��[]A\�H�xu�H�@���USH��H���~��H�5�P1H��H�����uH��H��H��[]���H��z1H�5k�H�81��J��f.���AV1�AUATUH��H���SH��H�L$�ʍ�H�|$H����H��A�H�D$������5wH�8I����I��L������L��H��H�����H��H�����H��H���������H��H���H�L��H�����H��[]A\A]A^����H�D$���H��螳�H��H����H���:����5wH�8I���j�I��H��tm�A��DH��H���E��H�H���(�����t�L��H���)��I����@H��L���������H��[]A\A]A^�H�H���j���A�����H��1H�5��H�81�袀�f���USH��H���~��H�5�N1H��H�����uH��H��H�����[]���f�H���H��H�}H�0���H���d��H��[H��]�ָ�fDAW��AVAUATI��USH��(H�?����H�L$H�T$�!H��I���(��H�|$@�����4��A��A�t$!A�T$"Ic�@��������ѿ��A�\$#A�t$$A�V�A�׃���?A��i�k�<�A�\$%��?�Hc�H�\��y�DD)�A���AI�����A��-�cD���D$�������Q����)��H�|$���a��A��+���Q�|$H�Ɖ����)��D�)�Hc�H�|?�^����L��H�����H��H���C���uH�����t�������f�H�����H����H��H����H��H���U���I�t$@��uH�����t
�����t_H���/���H��([]A\A]A^A_��{��A���r���D�����Q�݉���)Ճ���f�H�x�e���H�@�\���@H�~u�H�v�ff.�U1�SH�����H�\$H�l$@H��H�D$�i��H��H���n��H���1Hc@H��H��������H�=Ec2H��H�Cc2H�D$H)�H��H�����HN�H�c2���H�����D$TH�|$H�D$H�D$ lH�H�DH�D$�D$P�D�����D$1���	��T$L�D$1�D$2�����	��T$H�D$2�D$3�����	��T$D�D$3�D$4��?��	��T$@�D$4�D$5��?��	ЈD$5�����5wH�����H�=Ub2H���e�H��H�����H�Ǩ�躈�$b2H�Ĉ[]�f.�������f�AUATUH��SH��H��X�������H�=�a2�hH�=�a2���H����H��H��������QL�l$L�d$H���5wL��L����H�|$H�l$@���H�H�|$L��L���u��H����HcD$$�L$,H�k�t$(H�CH���H����H��D$ �D�����C!���	��T$�C!�C"�����	��T$�C"�C#�����	��T$�C#�C$��?��	��T$�C$�C%��?��	ЍQ���S �C%f���C&f���	ʃ��f�S �T$0	����	ЈC&H���H�CH��H��X[]A\A]��#��H������������fDHc=Q`2H�|?��H��H����H��H����H��XH��[]A\A]�H��H����H��XH��[]A\A]����UH��SH��8�N��H���@0�ƒ���uM�u9H�;H������H��tCH�D$ foL$fo$H�C(�C0C���K��	�C0H��8H��[]�fDH������H�?z1H�5#�H�81���y�ff.���H������H��H���G����USH��H��XH�7@���H��h�H�=%_2�'H���G���H�=_2H����H���P�H��H���������H�;@��� H�H������Hc�H9��.�D$$�C!H�T$H�|$��D$0������D$ �C"���D$�C#���D$�C$��?�D$�C%��?�D$���H����H�[��uH�����t�������H�|$�K��H����H��H���H�H��X[]Ð�i�F�������H���6���H��X[]���S�������fDHc=�]2H�|?�'�H��H�������f.��[��H������H�{�`���H�[�W���H���4v�H��H�:x1H�5�dH�81���w�f���UH��SH��8H��H�����H������H��H���ռ��H�P H�ǀb0�H��"���H��8[]�ff.���AT1�USH��H�GH��H��L�D$������H�<$H�5�E1���H�<$��tb�%��H��H��L� �W���H�P H�ǀb0�L�"H�D$����M0�P0����	ʈP0H�UH�PH�U H�P H�D$H��[]A\�fD�����uH�����t�������f�H����H��H���ͻ��H�P �b0�H�*H��[]A\�f�H�<$�g��H�|$H�$�Y��H�D$�uH�����t�����t^fD��5wH�������H���^��H�<$H��@��uH�����t�����t.fD���H��H�����K���H�xu�H�@�H�u�H���H�x����H�@����ff.��AWAVAUATUH��SH��H�����PL�l$PL�t$ H���5wL��L���#�H�|$ L�d$PH��H�@���AH��H�|$L��L��H�D$��H���HcD$d�L$lL�c�t$hH�|$ H���H����H��D$`�D�����C!���	��T$\�C!�C"�����	��T$X�C"�C#�����	��T$T�C#�C$��?��	��T$P�C$�C%��?��	ЍQ���S �C%f���C&f���	ʃ��f�S �T$p	����	ЈC&H�@H���H�D?H�CH�$H�CH����H������������H��H�����H���TH�;@���H����BfofoK�!H�C )D$ )L$0H�D$@�,��H�Ǩ�����A��D�C!�����*D��@���)������D���)�)Ѝ���R�gfff�t��i��������i�m�)�ɍqI�D���QA����Ɖ����A�ʉ����)�A)�D�ֺ�$I������2��)���)ȉ�)�A������Hc�H�S�Hc�H��H)�Hc�H�DH�|$ H�D$ �1�����5wH��������H�L�d$PH�D$H�L$H�S�H�T$L��H�|$H�D$�L���H����H�D$L�l$D�d$pH�$O�l-L���c�H��H���(�H��H�����H�����S&D��L�k�������	ЈC&H�$H�CH��H�Ę[]A\A]A^A_�fD�S�����fD�#~�A���2���H�=hW2t.H�W�1L�-PW2D�d$pH�$O�l-�R���D1��@1��ɗ�H�
"�1L��H�W2H�=W2H�W2�E�������V������H�;�t���fDIc�A��u2H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9�u6H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9����Hc�H��Hc�H�D����H������
����kl��k���fDH�Y�L�|$L�t$L�l$PH�D$L��L�d$L��L��H�ƛF����L��H�D$�0���H��tL�l$D�d$pO�l-H�D$H�$���L��L��L��L��H�D$��H��u�E1�A���@UH��SH��8���H���@0�uG�u9H�;H���X���H��t=H�D$ foL$fo$H�C(�C0C���K���C0H��8H��[]�H���ȵ���H�p1H�5��H�81��o�ff.�AVAUATUSH��H��H�?@����H������H�����H9��H��l��$��C!�����H�|$p�������$��C"���D$|�C#���D$x�C$��?�D$t�C%��?�D$p�C&����������E�1���$�H�T$�ʼ��H����H�[��uH�����t������y�H�|$�f��H����H��H���c�H��H�İH��[]A\A]A^�D���.��H�Ũ�SH�����H9�|�����H9���fDH��L�d$��L��H��H�����H����H�t$H�;��������C!�T$11ƒ����C"�T$21ƒ����C#�T$31ƒ��K�C$�T$41ƒ�?��C%�T$51ƒ�?�#�T$5��?��?8�rg@��L�l$@��H��H���F�L��H��I������H����H��m1H�5��H�81��Wm���T$1������8�s�foD$foL$ ��H�D$0)D$@)L$PH�D$`��H��H���X�L��H��I���J���H��t�I��L��L�l$@L��H������uH�����t�������DH����H��H���m�L��H��H�������uH�����t�������DH���h�L��H���-�H��H��I���?����������L��H�����H�������C#2D$3����C$2D$4�?���C%2D$5�?��L��L���X���H��������C#2D$c��O����C$2D$d�?�?����C%2D$e�?�/���H�t$PH�|$ �C&��������IH�����H������$��9���@�T$3����8��@��������L�������H�t$H�;�c����������	���fD�T$2����8�������H�����H�������������H����������������H���	w��D���@H�x����H�@����@H�x�=���H�@�4���@�T$4��?��?8��`�������H�{H�t$�b�����tN��Q�d�H��H����L��H��H����H�����������DH�{�}���H�[�t���@H�{H�t$�2�����z�������D�����II��`�����UH��SH��8H��H����H���@���H��H������H�P H�ǀb0�H����H��8[]�ff.�AWAVAUATUSH��H��(H�H�t$�A��H�|$H�CA��A����H����L�d$H�L$�L��L�|$膯��H�|$L��L��y�q���H�|$@�����}��A��H�|$L��L��y�E���H�|$@����Q���H�|$L��L��1����H�|$@�����&��H�|$A��A�������څ�H���QE������t+�C$��?�����;~��<A���C$��?��	�@�k$E���K�S#�Ѓ�D�����������H�;�!��	ЈC#���H��H�����s ������H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9������8�C"L�}���D��D�C!�{ D���w��f�����у�Hc�E9��J�S"��f��f�����	����f�s 	ЈC"�s&����H�!�H�|$@��u%H�����t�����uH�uH�����H�{H������H�C��SH��H����H���5w~H�{��5wA�����H�C�S%��?D�����;~��<���C%��?��	ˆS%����f�������	ЈC#�C ������C"�ƒ����a�������	ЈC"�C ���f%�f��	�f�C �s&����H�Ⱥ%I�$����)�����у�	�K&H��([]A\A]A^A_�fD��<���8���D��<A���k���@�r�����@�q�H�|$A��A�������H���A����g��A��H��H�D$�����q�A���i����A��P���H�|$������H���A��������H��H�D$��������	ЈC#H��([]A\A]A^A_�fDH���h��H����H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9��������>�C"L�����D��������H��胾�����3H�s@���������5w�c�����������S%��?D�������f���fD%���H�;�
�C ����!H�H��������H�H��@��u8H�ףp=
ףH��H��H�:H��H��?H��H)�H��H���mH��H9�u:H�ףp=
ףH��H��H��H��?H�H��H)�H��H��H��H9�����fl�S f%�f���	�f�C �V����H�;���H��C %��
�C ����H�C��5wH��A���ü��H��H�C�����C"�L	A�������D	����K!�C"�C f%�	�f�s ����H�;�!�[�����H�H��@��u:H��H�
��H�ףp=
ףH��H�:H��H��H��?H)�H��H��H��H9�uCH��H�
��H�ףp=
ףH��H�:H��H��H��?H)�H��H��H��H9�H�.�HD��S!�Ѓ�������4����	�H��S!�����C"�������H���x��H�����H���h��H���#���ATUH��SH��0����H���@0�ƒ���u�uuL�c�DH������C0��<t�A�H�;H���\�H��tMH�D$ fo$H�{L��foL$H�C(CK����C0L�cH�C ����
�C0H��0H��[]A\�H��a1H�5��H�81��ba�f���AVAUATUH��SH��P�x���H�,$H��H���9���H�5G2H�<$�i��I��H��t$H��F2H�<$H�D$�\�H�t$1�H����n�H�5�F2H�<$�,��I��H��t$H��F2H�<$H�D$�^\�H�t$1�H���n�H�5�F2H�<$���H�D$H��t$H��F2H�<$H�D$�\�H�t$1�H���`n�H�5IF2H�<$谐�H��H��t=H�0F2H��1ҹH�=����H�D$�Օ�H�<$H����[�H�t$1�H���
n�H�5�E2H�<$�Z��H�D$H��t?H��E2H�ƹH�=����H�T$1��}��H�<$H�D$�o[�H�t$1�H���m�H�4$H���4m�H���u�H�$H��� ��H��H�Q��H�������<1�E1��4��H��H��I	�H��u��B�zH��H��H	��zH��H	��zH	�A����PH�D$0L��H��H��I��H��I����H��	�H��H�L$ H��H��
�L	���L$A�����	�L$AH�у�H�����L$B�����	�H�5��L$B�L$CH�t$8���	�H���T$C�T$DH����	ʈT$DH��%��H��Hi�����T$E��?��H�D	�H�D$(�T$EH�������H!T$@I����H�|$��H�|$�Ԃ�H�L$H��� ��H����H�����8��@��@��	������Hk�d@��@��	wl�4��Hc�H�H�����@��<	wL��H�H�t6H�|$(�'���H�D$(�0L�����L��I�����L��H��蒤��H�|$(H�����H�D$(H�|$ ���H��I���ۻ��I���@0M�,$���A�D$0E������A�D$0H�|$H��t-�Wr�H�|$H�D$�Z�H�T$H�5�B2H��I�D$ ���H��PH��[]A\A]A^��H�yH�Q���]����H�|��5w�1�����H�����L��H���y��H�����H��H���v��H��H������I�Ā`0�H�(�E���@H���7���H��H������H���[�������fDH�Q�;��������H�wT1H�5��H�81��>\�H�4	H���`�����F0��<t<t	���@����ff.���UH��SH���޸��H��@0t%�C.���<�HE�H��[]��H��H���������UH��SH��莸��H��@0t%�C.���<�HE�H��[]��H��H���5�������UH��SH���>���H��@0t%�C.���<�HE�H��[]��H��H���������UH��SH�����H��@0t%�C.���<�HE�H��[]��H��H���������UH��SH��螷��H��@0t%�C.���<�HE�H��[]��H��H���E�������UH��SH���N���H��@0t%�C.���<�HE�H��[]��H��H���������UH��SH�����H��@0t�C.��<H�H����[]��H��H�������ff.���UH��SH��讶��H���@0�t#���¸��tH�CH��[]�f�H��H���U����C0��ff.�@��AW1�AVAUATI��H��^USH��hdH�%(H�D$X1���d�L���%���H�t$ H�8H�����H�T$ ���H�L������I������H�|$(H��H�T$�����H�L$H�4$H��S㥛� I��H��?I�L��H��H��H)�Hi��I��I)�K�|-�������T$DH�|$PH���C0��<��HD���?�L$BI��H��H���D$EH�����H��%�H	��D$CL	����T$TH	��D$A�������
H�H	�L	�H	��L$P�k��L��H��I���}e�H��� u�H��uDH�5�=2@��uH�����t�E������H��L���˞�H�5�=2�L��跞�M��uZ�C0��<��H�{ H��t襣��H�5V=2L��H��胞�H�\$XdH3%(L����H��h[]A\A]A^A_�DH�gfffffffL��M��L��H��I��?H��H��L)�H��H�H)�H��H��H��H��H�|$H��?@�t$H��H)�H��H�ףp=
ףH�H)�L��H��L�H��L)�H��	�@��@�ƈL$@��H�����H�5�<2L��H��贝��C0��<����L�������H�L$H�T$H��H��賜��H�|$��s�H��uH�58<2H��L���]������H�|$越�H���ҐH�UL���4��H�UH�5<2L���!���e���H�eV1H�5��H�81��V�H�MV1H�5l�H�81���U���d����UH��SH��農��H��@0t�C.��<H�H��H��[]���@H��H���m�����ff.���UH��SH���n���H��@0t�C(H��[]%�H�D�H��H���%�������UH��SH���.���H��@0t�C.H��[]��H�D�f�H��H���������UH��SH�����H��@0tH�CH��[]�f.�H��H�����H�CH��[]�f.���UH��SH��螱��H��@0t�C)H��[]��H���H��H���U�������UH��SH���^���H��@0t�C*H��[]��H�D�f�H��H����������UH��SH������H��@0t�C+H��[]��H�D�f�H��H����������UH��SH���ް��H��@0t�C,H��[]��?H�D�f�H��H���������UH��SH��螰��H��@0t�C-H��[]��?H�D�f�H��H���U�������AWAVAUATUH��SH��H�t$L�d$0dH�%(H��$�1�L�d$(�1���H��@0�H�|$�*i�H�|$��Y�x�KH�|$��Y�H����m���1H�|$�h�H�(H�D$�� �6H�hH��L�x�Y�I��H���9M�4/A�>u1�H��L����m�H����1�1��`�H��M9���H�CH�$H�D$(H�D$�C0H��L�L��L����<����PL�D$H�|$H�t$(���Y^H��H�t$(H���e�L����_�H�|$(I�4L9�tH�t$�g�L�d$(H�t$I9�v/�>I��t�@A�?��I��M9�u�L��H��H)��7e�H��$�dH3%(H����H�Ĩ[]A\A]A^A_�H��H��L�x�XX��I��H������H�=b�1��KS�H�|$(H��L���Y�H�|$(H��L9�t��f��}���@L9�����L��H��H)��d�M9�������T���H��H���������C0H�t$L�CL���H�V<����H� tH�VH�|$(H��L��P�:���H��XZ�U����_�H�Q1H�5m�H�81��P�AVI��AUI��H��ATI��USH�ĀdH�%(H�D$x1�H�l$H�l$�i���H���@0�tv��H�|$H��L�<L�CL��L�������P袾��ZYL��H�|$H���X�H�|$H��H9�t�e�H�L$xdH3%(H��u'H��[]A\A]A^�fDH��L�����C0�v�����^�ff.�@��SH��賬���@0��<t�#|�H��H�=M�[H�����|�H��H�=�[H���������SH����{�H��H�="�[H�������UH��SH���>���H���@0�t#��<t2H�{ H��tCH��[]�8����H��H������C0��<u�H���H�=��[]���H���[]�@��UH��SH��X辫��H��@0���C-H���?H�DH�$�C,��?H�DH�D$�C+��H�DH�D$�C*��H�DH�D$�C)��H��H�D$ H�CH�D$(�C.��H�DH�D$0�C(%�H�DH�D$8�C.��<H�H�Ѓ�H�D$@����H��
H�D$H��H��X[]�f�H��H������/�����S1�H��H�OSH��H�L$�Y�H�|$H��t6�Q���H��H�D$��H�t$H������H����H��[�f�H���X��H��[�f���S1�H��H��RH��H�L$�Y�H�|$H��t>���H��H�D$脨��H���L���H�t$H��H��茹��H����H��[�fDH��� ���H������H��[�f���AUATUSH��H��x��u[H��L�d$0�ޒ��H���6���1�L��`0�H��H���T�����H�|$0I�t$����H�EH��xH��[]A\A]�@H�H�L$0H��������H#D$ H	�L�IL�AH�D$ H��H��mH�D$H�A0PH�A(PH�A PH�AP1���W�H�� H�|$0�v���H�|$8H�$�H��t�M�������D$!H�|$@���	к�D$!H��t�蟰���ƒ��D$"H�|$H���	�1҈D$"H��t��u����ƒ��D$#H�|$P���	�1҈D$#H��t��K����ƒ�?�D$$H�|$XH�D$��	ЈD$$H����I��I�t$�����ƒ�?�D$%H�l$`H�D$�L$&��	ЈD$%H��tAH�=�02H���/肆�H9��	H�=b02H�����d��H9����d$&�L��莦��H���֐��H���.���L�l$H�ŀ`0�H�I����L���T���L��H�����L��H�D$����L��H��H�E�ٶ��H��x[]A\A]�fD1�I������fDH�����H�D$�`���fDH�=����H��H��/2�'���L���x��H��H�E����H��x[]A\A]Ð�D$&�����D$&����@H�=)��觏�H��H�5/2���H�=�5輎�ff.����SH�� H��?B��H��4�ׂ�CH��H��H��H��?H��H)�H��������H)�H9���Hi���H�H�Hi��H�<$H��H�t$H�t$�L���H�<$H�D$H�t$H�|$H�D$�O��H��H�C1H�8�=���H�P �b0�H�H�� [�@H��y�H��4�ׂ�CH��H��H��H��?H��H��H)�H��H�A�H)�H9�Hi���H�H��Q���H�+E1H�5o�H�81��H�f���SH�� H�<$H��H�t$H�t$聋��H�<$H�D$H�t$H�|$H�D$���H��H�JB1H�8�r���H�P �b0�H�H�� [Ð��ATUH��S@��u	H�����u6����I��H�B1H�8�/���H��H�@ �`0�L� H��u+H��[]A\������u�H�u�H��f�H���H���H��H�����H��H������H��[]A\�f.���H������H��H��H��H��S㥛� H��H��?H��H��H��H)�Hc��f���SH�5�1H���O��u81�H��讧��H��H��[H��S㥛� H��H��?H��H��H��H)�Hc��DH�����H�8谴���ff.���SH�5$1H���LO��uH��1�[�=���DH��蠣��[H�8�g������S�H�=#U�Z��H�=o�H�7,2�B��H�=<b�1��H�=�H�,2���H�=�N���H�=
TH��+2���H�=��H�,2�؋�H�=ȤH��+2��H�=��H��+2訋�H�=��H��+2萋�H�=�H��+2�x��H�=��H�e+2�`��H�=u�H�J+2H��>1H�0蓍�H��E1H�e?1H��H�2H��g��H�;H�5}������H�;1�H�����H�5A	�u�H�;�����H����H�5`M�u�H�;�����H�6��H�5,��u�H�;�����H���H�5���ou�H�;�����H����H�5գ�Tu�H�;�����H����H�5���9u�H�;1�H�-���H�5p`�t�H�;1�H�����H�5S�yt�H�;1�H�
���H�5E`�at�H�;�H�B���H�5�L�Ft�H�;�H�����H�5�K�+t�H�;1�H���H�57��t�H�;�����H����H�59K�s�H�;�H�٣��H�5)K��s�H�;�����H����H�5����s�H�;1�H�F��H�5���s�H�;1�H�.��H�5Ħ�s�H�;�����H����H�5���ws�H�;1�H����H�5v��_s�H�;1�H����H�5d��Gs�H�;1�H���H�5U��/s�H�;1�H���H�5;��s�H�;1�H�;�H�5cJ�r�H�;1�H�#�H�5CJ��r�H�;1�H���H�58J��r�H�;�H� ���H�5f��r�H�;�H���H�5Yq�r�H�;1�H��=1H�5��r�H�;�����H�2���H�5�^�fr�H�;1�H���H�5��Nr�H�;1�H�B�H�5�f�6r�H�;1�H���H�5J��r�H�;1�H���H�57��r�H�;1�H�z�H�5�-��q�H�;1�H�"�H�5]/��q�H�;1�H�
�H�5��q�H�;1�H���H�5��q�H�;1�H�J�H�5Ϡ�q�H�;1�H���H�5���vq�H�;1�H���H�5���^q�H�;1�H�r�H�5���Fq�H�;1�H���H�5��.q�H�;1�H�R�H�5l��q�H�;1�H�:�H�5[��p�H�;1�H�"�H�5N���p�H�;1�H����H�5A���p�H�;1�H����H�5.��p�H�;1�H���H�5��p�H�;1�H�"�H�5��p�H�;1�H���H�5���np�H�;1�H�R�H�5��Vp�H�;1�H���H�5ߟ�>p�H�;1�H���H�5џ�&p�H�;1�H��H�5���p�H�;1�H�����H�5���o�H�;1�H�ڹ��H�5����o�H�;1�H�¹��H�5����o�H�;1�H�ʴ��H�5z��o�H�;1�H�����H�5e��o�H�;1�H�j���H�5R��~o�H�;�H���H�5>��co�H�;�����H���H�5�[�e�H�;�І�H����[H�5�[H���te�@��%?=t��=t= ����%�=�����%@tH�x�H�����tHc�H�
n���H���tHc�H�
m���H���tHc�H�
c���H��� tHc�H�
W���H�ց�t!Hc�H�
I���H���f����N���������f���H��H�H��%��ff.������H�Ч��Hc�H�>��@H��$2��H�q$2��H��$2��H�y$2��H�a$2��H�I$2��H�1$2��Hc�H�D?��UH��H��SH��H�=�#2H�\$H���p<��t$H�|$H��H���\<��tH�D$H��[]�@H��1�[]�ff.�@AUATI��UH��H��SH��H�=�#2H�\$H���	<��t-L�l$H��H��L����;��t>H�D$H��[]A\A]�fD�c>�H�=<#2L��H��H�D$�Y��f.�� �F^�H��L��L� H��H�hH�@H�@H�D$�|Y�H�D$H��[]A\A]�ff.����UH��SH��H��H�t$H��H�;H�T$�;;��u/���]�H�SH�;H��H�hH�H�H�SH�C�Y�H��1�[]�ff.�@UH��SH��H�H�SXH�CHH��tH�XH��w-��H�CHH��wa�{<K�{@%H��H��[]�7Q��H�}X��f.�H�}P�Q�H��H��[]�	Q�f�H�}8�P��DH�}X��P��D��ATI��UH��SH��H�H��t&Hc�L��H��H�����H�H��[]A\���A�H�L$�T$�|Hc��sb�H�L$�T$H��DU�SH����O￸�f\�0�h\Hc�H���@XH�H�@H�@H�@H�@ H�@(H�@0H�@8H�@@H�@H�@`��a�H�CdH�CPH�H�ClH��H�CxHǃ�Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�H��[]�ff.�f�AWAVAUATUH��SH��H��XH�T$H�L$��{�����L�d$0L�-4����/[�H�XH�H�D$@H�D$8�;�H��1�H�\$(H��H�D$0�^V�I�D$H�D$�Xf�I�wH�=�2H���=8��t7L�t$(H��H��L���&8��uzI�GL��L��L��H�D$H�kH�H�D$HL���N�L�|$8M��t I�H�D$8H��u�H�D$H�D$@��A�����H�|$0���H��XD��[]A\A]A^A_�fDI�WH�|$0H���U�L���N�H�|$8H��tDH�H�D$8�N�H�|$8H��u�H��E1���A��H�|$0H���O7�H�t$(H��u�E���A��H��H�L$H�D$D���H�l$(H�|$0H��H���7�H�|$(H��u��<���A������;���ff.�I��ATM��UL��SH��H�W(L��H)�L)�H)�H9�}0H�H��H�8�x<3H�L��H���Z�H�E�x<#H�U(H�E8H�I�$[]A\��H�}8��f�H�U(H�E8H�I�$[]A\�ff.��AWI��I��AVI��AUATUSL��H��XM�(L�'H�T$H�.A�E8D�L$�D$A�@����w_H��Hc�H�>��fDM��L��H)�H����H�CH��H���E�L��H)�H���xH�CH��M��H���E�fDA�EH�C(�C�D$t	I9.�>	L;d$�C�D$��I����L��H)�H����
H�Icu@I���H�yHH9���HcI@�H�sP��HM�~H�sPH����H�{XL�T$��H�C@L�T$H��H�CH��H�1�H���z@CH�SPH�s@�H���H�CHH9C@�_L��H)�H���ZH�H�C@H��z@H�p~�H�SP��L��H;L$�RI��M)�D$���CM��~*H�H�{8�x<~H�{8H{(L��L��H�L$�j�H�L$I��I�.Lk(��@HcL$I�x(L�l$M)�I�D=�D$t	H9���H9�~H)�I�I��H�D$�C1�M���a
H��x<��H�C8L��H�L��H�L$�j�H�s(H�L$L�H�D$H��I�I�.H���(
H)�H�K01�H�s(�+H���H�{XH���H��C�M�'I�.H��X[]A\A]A^A_ÐA�$�CM�\$�S I�u(��I�MH�<�D���F�A8���H�t$HH�CL�
R�H�t$ H�sXH�t$(H�ƒ�H����Ic�L�>��fDM����L��H)�H�����S$H�CH����H��IE��E��C$H�SI�M��H���C$���9�r�M�����DB8T�W�����L���D)�H���D>��HЋ��3���f�M��L��H)�H���nH�CH��M��H������0�E��Q����M��L��H)�H���n	H�CH��H���E�L��H)�H���@H�CH��M��H���E��	���f�M��L��H)�H����H�CH��M��H���E������M��L��H)�H����
H�CH��H���E��]���f.�M��L��H)�H���H�CH��H���E�L��H)�H���P���M���CM)�M��~0fDH�H�{8�x<~H�{8H{(L��L��L�\$�Sg�L�\$M��I�.Lk(H��X[]A\A]A^A_�M��M��I)�M���g	IcE@I�7I9��OL�D$HL��L��H��L�T$(L�\$ ���H�;A�L�CPH��L�\$ L�T$(HcW@I�����LM�~L�CPH�HH�KH�T$H�+
H�{XL�T$(L�\$ ��H�C@L�\$ H��H�CHL�T$(�����H�31�H���~@CH�sPH�K@�H���H�CHH9C@�d���L��H)�H���H�3H�C@H��~@H�H~�H�sP�M����M��L��H)�H����
H�C@H��H�HH�3�~@��H�sPH�K@�H���H�CHH9C@|����DM���y���M��L��H)�H���g
H�C@H��H�HH�3�~@�VH�sPH�K@�H���H�CHH9C@|����DM�������M��L��H)�H���H�McE@I�EpH�sH�zHL9��A	HcR@���HM���H�SPH����H�{XL�T$(L�\$ ��H�C@L�\$ H��H�CHL�T$(�����H��1���-���M��L��H)�H�����CH�������E�L��H)�H����H�CH��H���E�����f.�M��M��I)�M���XIcE@I�7I9���L��L�D$HL��H��L�T$(L�\$ ��H�3M�MxH�KPA�L�\$ L�T$(HcV@��LM�~H�KPH�~HH�T$HH�{XvH�{XL�T$(H��L�\$ A��H�C@L�\$ H��H�CHL�T$(���H��1������M��L��H)�H���>H�CH��H���E����f.�M��L��H)�H����H�CH��H���E�L��H)�H����H�CH��H������0�E��f�M��L��H)�H���xH�H�KP�x@~H�KPH�C@H�uH�PH�S@��EH�S@H�CHH��H9�������M������M���i����M��������C�M�'I�.H�C(�����L�YH�K�S �ȉK���L��D$�z���I9.�q���M���CM)�M��~-H��x<��H�C8HC(L��L��L�\$H���4b�L�\$M��I�.Lk(�[����C$����H�I�U`H�yH�H�|$(L�T$8H��L�\$0��L�
ΖL�\$0L�T$8H�C�w���M���CM)�M��~*H�H�{8�x<~H�{8H{(L��L��L�\$�a�L�\$M��I�.Lk(���I�7L�D$ L��L��H��L�T$8L�\$0��H�3I�MhH�T$HL�\$0H�~HL�T$8�cH�|$(L�T$8H��L�\$0��L�
�L�\$0L�T$8H�C���H�{(M��HcL$M)�J�4/H9��"�g����D$�Y���I9.�P����CM�������H��x<�H�C8H�L��L��L�\$�`�L�\$�j���f�H�C@M9�s?L��1�H�{P��H�S@H�H��H���y@~H�sPH�JH�K@�H��I9�u�H�C@H��1�H�C@H�CH�,���f.�M���C M)�M����������DM���CM)�M���r������DH�D$L�I�I�.H�{(1������M���CM)�M���2����W���DH�{X���M���CM)�M�������'���DM���CM)�M���������DH�sP�]����H�sP�����C�M�'I�.�Y���f�M���C	M)�M����������DM���CM)�M���b������DM���CM)�M���B����g���DM���CM)�M���"����G���DH�C8�W���CM��~&H��x<�qH�C8H�L��L���U^�H�C(L�H�|$I�?I�.H�C(��u�D�CM��~*H�H�{8�x<~H�{8H{(L��L��H�L$�]�H�L$I��I�.Lk(�&�fD�C�M�'I�.�	�f�H�{X���M���C!M)�M��~*H�H�{8�x<~H�{8H{(L��L��L�\$�]�L�\$M�I�.Lk(���M���C
M)�M���������M���C
M)�M����������M���CM)�M�����������M���CM)�M���[����M���CM)�M���p������M���CM)�M���U����z����CM�'I�.�E���M���CM)�M���(����M���M���CM)�M���
����2���H�{X����H�{X�d���H�SP�M���L��L��H��L�T$0L�D$HL�L$(L�\$ ���H�M�exH�{XH�T$HL�\$ H�yHL�L$(L�T$0vH�{XL�T$(H��M��H��L�\$ A��L�\$ L�T$(H���H����H�{XL�T$(H��L�\$ ��L�\$ L�T$(H�M����L��L��H��L�T$0L�D$HL�L$(L�\$ �M�H�3H�KH�{XM���H�T$HH�~HL�\$ L�L$(L�T$0vH�{XL�T$(I��H��L�\$ A��L�\$ L�T$(H��b�M���CM)�M��������M���C"M)�M���q������M���CM)�M���V����{���H�C8���H�{X����H�{X���H�{X���H�F��CH�L�\$H��H��H��H)�M���i���H�C8�Q���H�C8����H��$1H�5�H�81��%�ff.�UI��I��H��AWAVE��AUI��ATI��SL��H��(I�P0dH�%(H�E�1�H����H�BH��H��H%�H)�H���H��H9�tH��H��$�H9�u����H�H�|$H�s8H���x<H�}�L�<��Hs(L�]�L�U��^G�E��L��H�}�A��I��L��L��H�C0���L�U�L�]�����t8H�u�H�L��H�{8H)�x<~H�{8H{0H{(�M��F�L+}��M�L{0�L��E��I��L��L��L���y���H�]�dH3%(��u4H�e�[A\A]A^A_]��H�s8�8����H)�H�L������m2�ff.�f�AWAVAUATUSH��XH�D$GH�<$H�t$(H�T$0H�L$L�D$ D�L$<H�D$HH����H�|$�fH�$L�@PA�x(uA�@(H�$�@`�p�Hc�A��H�RH��E�L(���~A����D�ɿH��H��@��s�������H�Hc�H�IH��L�A��0fD�J(���cL��H��H���su'H��0��A���EA�|$����u�E1�A����D�d$8f.�D�\$<�l$8E1�E���@�E�H�H�@H��H�L�xL�X9��)H�KL�CL�cL9�t>L��L��H��L�\$L)�L�D$�\W�L�D$L�\$H��HKH�CI��M)�H�CL�cH�K L�SH�$E��9hdtA������A��t�D$8A����I�L�L��L��L��L�T$H�D$�p���L�T$���C(H�D$I;��A��U��w�H��c���tH�$�PdH�$�Ջ@`�p�9�~oH�$H�PPHc�H�@H��HӅ�����L�\$0L�|$(9�����L�T$H�L$ M�"����DA�����>���@M9"�DE��e����E��t;;D$8~5�l$8E1��z���f�H�$�@`�p����t�T$89��%���A���A��E��xRH�$H�HPIc�H�<@H��HϋG(��uZA�s�Hc�H�@H��H��fDH��H��0�BX��u1��A��u�H��$�������H��X[]A\A]A^A_�@��v�P���w�G(H��$�D�H��X[]A\A]A^A_�f�H�D$ H�D$HH�D$���@H�|$HH�D$0H�|$(�b���D�d$<A���#���D�L$<H��1�1���$�L�D$0H�L$(A����H�|$A������Z�Y��D��7����D$8���H�=�1��&�AVAUI��ATI��U��SH��H���A��A�EA���A�<$������L��H���9�E��tc�H�5�H���2�H�5g����
���-�� �P��@�s���������H��[]A\A]A^�f���uL��H���8�E���w�����fD1�L��L��H��H�5��Y.�E���O����fDE���R���H�ߺ
H�5��[1�H��[]A\A]A^��1�1��_+�H�������H���8�H�ߺH�5���1�H��[]A\A]A^��H����7�H�5���H����0�H�56�������H���7�H�59��H���0�H�5��� �����H���z7�H�5��
H���0�H�5؂��@�����H���K7�H�5��H���W0�H�5������j���H���7�H�5߁�H���(0�H�5z��B���ff.��AUI��ATI��UH��SH��H�?�E��x!�lj���\�H��H��tH�@�f.�H��1����1�I�E��I�$H��[]A\A]�ff.�@��H���H�t$H�5G2H�L$�E�H������H��H���H�t$H�t$�I�H���ff.����SH���H��H�t$H�t$�pc�H��H���U(�H��[�ff.�@AVAUATUSH��H���Gp��t*��t%����WH��H��[]A\A]A^��H���L���H��L���Z�H��I���|(�{pH�$�.H���H���~J�|-�dZ�H��I���I(�H�|$L���H�D$�c�H��H���X�L��H��H�=�H��1���I�H��H�=�N2�""�H�532H��H���GL��H���a�H�5
2H���tL��H��A��a�H�5�2�{p�LE�H���&��L��H���Wa�H�����H�H�5�2I��H����L��H���-a�H����H�H�5r2I��H����H��L���a�H����wP��ySH����gP���h������Z�H��� Q�H�52H��H����H��H���`�H��H��[]A\A]A^�f�����Y�H����P�H�5�1I��H����L��H���s`��{���fD�H�=�~�'_�H��H���1�:�����H�=�~�^�H��H���1���H���H����]X�H���H�D$�H�=tFI��������_L���&�H�D$H�kL���H��L���,7�L�����uH�sL���7���}H�|$��H��L��H�=��H��1��G�H�ŋC`��~vE1�L�-&F�fDA��D9s`~ZIc�H�@H��HCPH�H�H��:t�H�PL��H��1��X(���fDH�|$��L��L��H�=�}H��1��G�H��H�=L2H���M�H���H���^N��x
��L���S�H�5	�1H���Z����
H�=�}�]�H��H��1�:���H���H��A���H�=�|H��H��1��F�H�������H�=�|�']�H��H��1�����H�=�|�\�H��H���1����H�=||��\�H��H�u�1�l���H���H��A��[�H�=|H��H��1���E�H��������H�=�|�\�H��H���1�����H�=L|�_\�H��H��1������5�H���L���H��I��I�H��L���&��~H�H;��tH�D$H���i����W���fDL��L��H��A�V H�=�{��1��#E�H�D$��ff.����H�5-�1SH��H��tH��[�#F��H�=L{�[�H��[H��H���1�E�ff.����H�5�1SH��H��tH��[��E��H�=�z�O[�H��[H��H���1�E�ff.����H�5}�1SH��H��tH��[�E��H�=�z�Z�H��[H��H�I�1�\E�ff.����H�5%�1SH��H��tH��[�3E��
H�=�z�Z�H��[H��H��1�E�ff.����H�5�1SH��H��tH��[��D��H�=\z�_Z�H��[H��H���1�D�ff.����H�5u�1SH��H��tH��[�D��H�=�y�Z�H��[H��H�A�1�lD�ff.����H�5�1SH��H��tH��[�CD��H�=�y�Y�H��[H��H��1�D�ff.����H�5�1SH��H��tH��[��C��H�=-y�oY�H��[H��H���1��C�ff.����AUATUSH��H���ZC�H�5�0H��H���x,�H��tSL�`L�hH��H��H�=��1��GB�L��L��H��H����H��H�5G��p&�H��H��[]A\A]�f�H��H��H�=�T1�[]A\A]�A�D��H���01��.Q�ff.�AWAVI��AUATUSH��H����I���N �1�I��H�@
H��H�D$��Q�H��H�hH� tH�h�E�H�}
L��L��A��H�enc/tranH�E�s/f�E�V5�H�t$H���?��t,A���H��AN��$�I�H��[]A\A]A^A_�DH�����t�H��Ѓ���t�H�Ѐ��H�����t���H�{H�t���u�H���F����H��8t<SH�FH��H��t�xDt11�[�DH�FH�~H������H��u�1����1��DH�@H��[�f�SH���*�H��t[�H���X?�[���Q���AUATI��UH��S��H��H�9t\A�<$H��u"�?�H�}H��Hc�H��[]A\A]�X�@���H���;H�L��I�����H���(H�L��H���=��H�t$��'�H�t$H�E�PXH�5�{H��H��1H�81���f���ATUH��H�5/�0S�)�H���+H�5�0H��H��A�������H�m H����H�{H�uH9�t�.�E1���H�{H�uH9�t�.�E1���E1�E9��H�{(H�u(H9�t
�Y.����H�U E1�H9S usH�{H�uH9�t	�+��u]�C`E1�;E`uR��~HL�CPH�}PI�H�H�H9u8��H�t@�0H���fDH�I�H��0H�H9uH9�u�A�L��[]A\�f�E1�[]L��A\������H��H�5��0�L(�H��tH��H���{��f���fD��H��H�5��0�(�H��t!H���H��tH���2F�f��H����!������H��H�5q�0��'�H��t!H���H��tH����E�f��H���������UH�54�0SH���'�H����H�ÿ�)�{pH���9��1�H��H���lU�H����ZU�H���H��t�<�H��H���9U�H���H��t�<�H��H���U�H���H��tFH����0M�H��H����T�H���H���H���M�H��H����T�H��H��[]�������AVH�53�0AUATUS�&�H����H��1��$�I�ċE`��#�yf���;�H��L����}H�9]`~XHc�H�@H��HEPH�L�(I�EI�}�8t����H���YD�I�}I�����H���ED�L��H���9���[L��]A\A]A^�����ff.�@AWI��AVAUI��ATU��SH���G\9G`����D.�I�}PI��Hc�H�@A�E`H��)�H�4H�|0H�H�@H����A�I�EP�`H�H�D$�-�I�HI��L�8�@H����I�WPH��tI�|$X��A�D$Ic<I�D$(I�D$0I�D$HI�D$@����Ic@����I�uPH�D$H�L� I��H�C A�E`L�s�PL�sL�s�C(A�U`I��:t9�}H��1�[]A\A]A^A_����9��Hc�H�RH��H�H�
H�	�9t�I�Uh�f��,�I�WPH��I�D$XH������I�$H�xH������������,�I�D$P�5�����,�I�D$8������H�P�0Hc���A�]\I�EP�A���ff.�@�G��uZUH��H��H��SH�lj�H���0��H��t0H�pH��tH����H��[]����f�H�xH�p����H��H��u�H�������[]��ff.����y�tSH��H��IH��H�;�q����C[�@��ATUSH������H����H��H9����JD�I��H�C�tG��H���D$��E���&J�x��� H�H%���H	�H�H��H��[]A\�@H�����t�H��H����%��u�H���`H��`u�I�$��`H��`t�L��H���]��y�����K:��H��H���>E�H��H��[]A\�f�H���(:�H��H��H��[]A\�f����iI�H����#���=���H�3�� t&H�{H�sH�1�H�L$�C�HcT$����DH��H�{��H������ATUSL�gH��H�/L��H�����H�xu	H�X[]A\�H��1L��H��H�5�sH�81���D��SH��tH���N��H�X[�H��1H�5ZnH�81��P���H�WhH��H��t
H��xDtH�@�fDH��@USH��H���r�8u-�H�
��H��&H�CH�S H�K(�CXH��[]�H��H�ChH�H�x� �H�5I5H���J�H�5�mH�
35��H҃�H����H��mHE�H�5a&HE��f���SH�5$�0� �H��t4H�xH��t H�{(� �H�s H�{H��[��fDH��������������ATI��US�WX��unA�D$`��~<1�Hc�H�@I�D$PH��H�<���I�D$PH�|H��t���A9l$`�I�|$0�o�I�|$P�e�[L��]A\�Y�f�H��G��D���	�����GXS����H�G H��W`��~zL�OP���`L�RI��M�A0M��f�I��0I�H�
H�qHH��H�V`Hcq<HcI@HF�I��H�A��HO�H��Hу�HO�I�IH�H��t
I�Q H)�H�M��M9�u�HcO\H�WHH+W0[H�IH��H�H��f����P���fD���G`��tH�GP����H�H�@0H=���O��ff.����G`��tU��tQUSHc�H��H�GPH�(H�EH�U8�x<~H�U8H�E0HE(H��H)�H�4H���U(�H)]0H��[]�f.��ff.�@��ATI��H�5��0U��H��SH��� �H������H��H�L$L��H�S
1���H�|$H��ty@��uc����H����9�N�Hc�1��C�I��H�pH� tH�p��H����4�H���H��tL����H��L��[]A\���K����H���P��������SH��H��H�� H�=��1H�T$�0��tDH�|$1�H�WH��H��u$H�T$H�5;�H�\$H�D$�X�H�D$H�� [�DH�� 1�[���H��(H�t$H�|$H�T$H�t$��H�|$�F�H��tH���8�H����:�H��(��H��(�ff.����G`��tH�GPH�H�H��:t�xDtH��1�H�5��l���@H��H�5ڴ�T���@���O`��t'�Q�Hc�H�@H��HGPH�H�L�A�8t�xDtH��H�5���������H��H�5}�������AWAVI��AUI����ATUSH��8H�D$0�T$H��H�D$�m���D$������D$A�}�D$��A�>��A�}��1�L�5���y��H�$M��I��H�<$���M��tR�D$M�oM�wA��D$���"H�\$��H�l��H��H9���H�3L������u�L�����E1�H��8L��[]A\A]A^A_�L���88��x����A�A�}u
A�>�E���H�L$ H�P��L��L��H�D$ �D$(���H�L$ �D$H�$������D$L�$$��L��I�l��
@I��I9�twI�$H�xu�H�xH�p�_�I��H��u�H�<$���1���f�D�d$E0�E'D�d$�D$A�����@L���X7���d������	A��X���@�|$����I���f�H��H9�tGH�H�pH��uH�xH�p���H��A�W`L������u�L����H�<$�	����@H�<$���%���1��{��I������AWAVAUATM��UH��SH��H��8M���1�M���"�I��H����H�D$(H�+E1�L��H�t$ O�<H��M��H�\$ L�d$(H�T$H�D$H�t$�D�H�\$(L)�tV�T@L��H����I��H�L$H�T$L�E1�H�t$M�.L��H�\$(��C�H�\$(L)���I��M��x+K�,?M9�u�H���
!�L��L��H��I���Y"���M9�tL�����L��E1��8�H��8L��[]A\A]A^A_�fDH��A�LE�1�M���!�I��H���}L��� �H�+E1�L��I��H�D$(H�D$(H�t$ O�>H��H�\$ H�T$H�D$H�t$�B�H�\$(L)��(�������G���L����H�D$pH��J���f�E1��@�����t��+���ff.���AWAVAUATUSH��H�$H��HH��H��I��I��dH�%(H��$81��n��CH��u21�H��$8dH3%(�#H��H[]A\A]A^A_��L��H��I���@���:H�l$(E1��S`��u{L�[0L�K0L�C8I��L�c@H�KHE1�M����I�<$H�H)�L9��MH��L���z �H�|$(I<$I�<$M��t	I��xDt_E���D���L������7���f��r�H�KPHc�H�@H��H�L�8I�?�Dt_L�HL�@L�XI��L�`H�H �b����x<I�W0I�w8~I�w8Iw(���I�G0I$I�G0E��������q����I��MW0������L�K0L�C8L�[0L�c@H�KH��f�L�|$0H��H��L��H�D$0M��L��L��PA�����ZYH���IL9�H�l$(A��I9�I����A!��}����I�0H��L��L�T$H�L$H)�L�L$L�$�t1�L�$L�L$I�$H�L$I+II�$I�L�T$I�I�<$H�H)�L9�r^H�l$(�O���@L��H�L$L�D$L�L$L�$�U�L�L$L�D$L�$H�L$I�H�l$(I�I�$L�H�I�<$���@H��H�L$H)�L�D$L�L�$H��rDH��H����L�D$L�$H�L$H�l$(I�I�$H�I+I�$I�H�H�I�<$���E��tL�����������f���Hc�H�RH��H�L�HL�@L�XL�`H�H �5����	�SH�wH��H��t#H�K(H�S H���s�[����������fD�k�H�s��DAWH�5�AVAUATUH��SH��8H���dH�%(H��$(1��<���FA��H���L���H�D$���H���M��H�\$L�%2`�!DH�D$I��H��H�D$H����A�L��H�߉�A�O�����A�G�A�G���1����H�ڋ
H����������!�%����t�H������D�H�JHD�H�
�_��@�H��H��H)��1����X�����E��tL���������H��$(dH3<%(��H��8[]A\A]A^A_�f�E��tL����1���H�\$ H��H���H���H�D$H���A�I��PH�5 ����I��XZM���j���H�D$H�ƒ�I9�t1L9��t(H���@���A�H���i����o���f.�H��� ���E1��?����J�f.���AWAVI��AUM��ATI��USH��H��H�GH�D$3H�T$D�L$H�D$8H���>H���%�D$I�npI��%����
�D$I�F8H�D$ H�D$4H�D$f�I�G0AAGAG A�F`����H�;L��H)�I�~0tGI�v8I�V@H9�t:H)�I��H9��W��L;I�F0I�F@I�F8�D$�eH�;L��H)�I�4$H�l$H)�H9�HO�H��t�D$�&H���>�H+I,$I�,$H9l$�X�D$�zA�FpA��B���H�H�@H��IFPH�pH����H�PH9���H�;L��H)�H��H)�H9��5��A�F`H+��H�H�@H��IFPI�~0H�PH�PH�Pt7I�V@I9V8t-H��H��M��L���t$D�L$,H�t$0����Y^�����D$twI�$H9T$��H��M��H��L��t$D�L$(L�����AYAZ����A�FpA��8DI�~0tI�V@I9V8�3�D$�]A�~`�R�D$H�l$L�|$(
A��@H��M��L��E��UH�T$H��L�����_AX��t�L�|$(�Ņ�A�np@�ƃ���@�u	����HcD$4H�@H��IFPH�H�I�FxH�9�y<I���H�yI�����H�H8I���H�H(H�@0I���I���@��tA������>��u)A�%��� ����0uL���C��������A��H��HD��[]A\A]A^A_�H��M��H��L���t$D�L$,H�t$0�����XZ���������fDH��M��H��L��t$D�L$(L��H�T$����A[��X����H�H8�����L���`������?����[���H�FA�I�$H�H�PH���A�Fp�1���fDI��H�\$8����H�D$L�d$8����A�FpA����DL���������������A�FpA�����DH��H�L$A��u�A�F`L�+H�L$��H�H�@H��IFPHHA�Fp����H��H�L$A��-�L�+H�L$A�FpIN8�O���@��AWAVAUATUH��H�5��0S��H��H��H��H���eL�t$I��H��I��H�D$(H���M��PL��H��XE1�H�D$8PH�D$0P1�L�L$0�?��H�|$0H�� ��H��t@���0H�I��H�|$1�H��t@��� H��H�H�|$(H�D$ H���"H�����$�H�Ǩ���>���L����H�<$tL����H�|$��	�H�|$��H�|$�MM����H�|$H��� �)H����I9���H���>M��I���M�������I9��H�$H����H��� ��H�AH��H�D$0��H�H�D$H� ��H��L�H�t$0L��A��H�L$8L�H�D$8�y5�H�|$H�t$8A��H�GH� tH�GH)��c�H�<$H��t.H�H�T$H�t$0%H	H�GH� tH�GH)��+2�H�|$��A���}H��������?H9��H�D$H�H�|$H��� �%H����I��H������H���0H�5�VH�81��Z��f.��7���(����"�I�������r"�H�|$(H��H�D$ H������1�H����H�5��1H��1����H�5��1H�|$ H�����@���������H�����E����f.�H�@�m����H�D$01��@���H�G�����H�AH�QH�D$0����fDH�|$L���������fDL�oM�������H���0H�5{UH�81��;��I��$�H��t
H�|$��D�����H��H[]A\A]A^A_�f.�H�$�H�������H��� tH�XH���HL����H������H��0H�5	UH�81����H���0H�58ZH�81����H���0H�5UH�81��~��}���\!�������ATH�5�0USH��H��0�e�H����1�1�I����H��H�ڿH��H�D$H�$H�D$H�D$H�D$ ���H9��1t'H9��1tH9d�1tH9k�1u!H��0H��[]A\�L�����H���&����H�=qY1����f���ATUSH��H��@H�t$H�55�0��H����H�|$I���j�1�1����H�|$H���4�H�t$H�ڿH�D$H�l$H�D$ H�D$(H�D$0����H9��1t0H9��1t'H9��1tH9��1t8H9��1u!H��@H��[]A\�L���<��H����%����H�=�X1����H�
�0H�5RSH�81����f���AVAUATI��US���?������ t#H�5[Q��t��[]A�$A\A]A^�@H�5-QH�=�轮��L�pA�D$`��~��1�1�L�l@I���9fDHc��oH��0��H�@H��H��oIH�oQ P I9�t4I�T$PH�H�9L97u����I�D$PH�|H��0�\�A�l$`I9�u�A�$[]��A�$A\A]A^�DH�5hP�C���ff.����AUA��ATI��UH��H�=RSH�����D��L��H��H��H���$��H�ߺH�5�M��H�=I2H��H��[]A\A]�w�����AWI��AVI��AUATUH��SH��H���M��8tH��L��I���*-��ufH���~�H��L��H��I����
�H�l$�CX��u1H�D$�CXL�cL�s(H�C 1�H��[]A\A]A^A_��H�{����DH��H��L��E1�H�D$E1�L��L��P��ZYI��H��tM��눃��ff.���USH��H�5и0H���7�H��ttH�|$H��H�\$��H�|$���H�t$H�HH��� t%H�VH�vH���5����tH��H��[]�fDH��H������H�=�2H�5�U1��������f���AWAVAUI��ATUS��H��H���gH�5��1H���P��H��tH;��1����H�5{�1H���+��H�5d�1H��tH9����� H���
��H��t�؃� ��D�H�5�1H�����H��tZH;��1tK��0�H;��1tB<���uH�����t�������H��0H�5TUH�81����f���0@H�5{�1H���{��H������H;W�1A����H;?�1��H;*�1�<H;�1��<�7�uH�����t������H�n�0H�5UH�81��
��DH�A��H��D��[]A\A]A^A_�@H����H�5YTH��H��0H�81�����DA��H�5��1H����H�$H����H����H�<$����H�<$=0�!��H�$�>/�H�$H�5��1H��I����H�5y�1H���9��H�$H��t3H���w��H���MH�$I����H�$H�5<�1L���\�I��tL���^�M�e���DH�5�1H�����I��H�$H��t�L��A��f�A�����@H�5��1H��E1���H�5��1H��H�����A��A��H��A���i��D��H�5_�1H���H�����DE�H��A���B��D��E	��� H�����DE�H��uA��E���t����؀�D	�A���d���DA�� �S���@H��� �H�5�RH��H�?�0H�81�����DH�<$���H�������H�<$���H�������H�5��1H�<$�|���{��������c-�I���l���H���0H�5�QH�81��s��H���0H�5�QH�81��[�����H�<$H�D$���H�|$H�X���H�5SRH��H�y�0H��H�81����ff.����1��%��DAWM��I��AVM��AUATI��UH��H��H�5ISH��@H�D$ P1�L�L$0�w��H�|$0ZYH���&H�|$�L��H�Ǩ�����A��H�D$(I�<$�0��������$�H��H�}����xq���$�H��H��tqL�cH����H�BM�'I�H�D$pH�H�D$xH�H��$�H�T$(D�(H��$�H�H��8[]A\A]A^A_Ð�K+�A���a���H�����1�H��u�L��H�T$�D��H�T$I��H���~���H��H�T$�#��H�T$�h���f�L��1����#����H�|$H��uH�D$(E1����@H�t$(�&��A�������x���<�ff.����AWAVAUATUSH��xH�D$`L�l$8L�d$0PL��L��H�D$4PH�D$hPH�D$hPL�L$hL�D$`��H����HDŽ$�H�� H�t$HH�|$@H�L$h�	���H�l$hH���H�\$p�|$,H��艣��A�ǃ����H�}H���� ��H�}Hc�A��H9�����t6H�EH��uH�E E�F�Ic�H���u	H�����umC�t7�H��Hc��])�E��~+G�,7@H�;H����Ic�H��A��H���2)�E9�u�H�D$hH��x[]A\A]A^A_�fDH�����^���@H��ƃ���u��� ��H�B H�8H�T$D�D$���H�T$D�D$H�@H� H�D$H�BuH�B H��H�8H�T$D�D$��H�|$H�p���D�D$H�T$H�pH��tIH��8�����~D����C�t7�H��D�D$Hc��N(�D�D$E������H�B�Q����H�xH�pH�T$D�D$�9��D�D$H�T$H��H��u��T$,H�t$HH�|$@��L�d$pH�T$0L�l$pH��H�T$8��H�|$@�T$,H�t$H��H�����������H����AUA��ATI��UH��SH������H��������H��ƒ���������H�5h�1H��� ��H��D��L��H����H��H��t2H��t,H������H�H�H�� u-H��H�s��H���J����t-H��H��[]A\A]��H�SH�s��fD�[�H��1������H�=�L1��~��ff.���AWAVAUI��ATI��H�5'�0US��H��H����H��������H�D$hH�l$xL���L�t$pPH��L��H�D$hPH�D$HPH�D$HPL�L$HL�D$@����H�� H�L$h�T$`H�t$(H�|$ ��I��H���5H�|$ H�l$0�?tGH���.H�D$8H���H�T$pH��$�H�T$pH�T$xH��$�H�T$xH�l$0�
DH�D$8I���L��I���M�} H�Ę[]A\A]A^A_�@I�<$H���,��I��H�������H�D$HH�8H�D$P�� ��H����Hc�H9����F���E1�I��I�E H�D$@H�D$H�D$HH�D$H�D$XH�D$��f�H����I9���L��L�����H��H�D$@��H��H����H��� ��H����H��������H��1�H�$�K��H�T$H�t$H�|$hH�D$h���H�$�H���!��H�t$`H�T$PH�|$pH�D$p���H�t$`H�|$XE�O`�?uuH��D��H��L���D������I��I��� ����I�FI9��������fH�|$ H�D$(H�l$0I�I�G�D$`H�D$h����f�H��$�H�A��D�$L��$�D��$�DŽ$�轢��������$��Lc$�
I�WP��t!H�D$HH�D$0K�IH��H�H�H�H�D$ H�D$P1�H�D$8A�G`��H�H�@H��H�H�H�@H�D$(����H�y���b���H�|$H���H�D$X�J��H��H�D$`���DH�|$(��	����H�D$8���D�	�����H�D$0���f�H�x�`����H�D$0H�!�H�D$8H��H�D$ H�D$(�~���H�T$`H�t$XH�=�H1��M
�H�T$hH�T$xH�T$hH�T$pH�T$xH��H�j�0H�T$pH�8�m��H����H�N�0H�5oHH�81�����H�t$`H�=�A1���	�H�T$hH��$�H�T$hH�T$pH��$�땋T$`H�t$(H�|$ ��L��$�H�T$pH��$�H��H�T$x��H���0H�5KAH�81��l������AWAVAUATUSH��H�H�T$8���dA��M�Ņ��@H�H�D$`����H�FA�H�D$hH�T$xH�|$`D��H��$�H�T$(���H��H�D$0H�|$X�.���H�|$h�D$P�L��$�H�T$pL��H�|$h����H��$�H�L$pL��$�H�D$H�D$xH�D$����H��tH;L$��H�|$t
�y��H�t$L�������H�+�� ��H�SH��H��$���H�MH�T$ H��H�L$����H�L$H�T$ H� H��L�`tL�`I�H�t$L��L��H�D$H�*D��L�d$xH�D$ �a��H��H���I���#A��u
I������(�D$WA�H�D$@H�EhA�H��tH�D�p@Ic�L��$�H�D$HfDL�D$H�L$(E1�L��H�T$ H��������|$W��H�������H���H���H���e��L��H��$�H��H�D$@��H��$�H��4t
H���H���@���H��H������H�����DH�������H��L�xH��$�H�D$H�D$xH�D$������H�t$L�������-���H�+H�%�H�D$I��� ����H�SH�kH��$��������W������N�������L�t$xH�D$HH��M)�L�cJ�0H�H��H�T$�e��H� H�T$tL�cM�I�L�t$xH�D$�u���DH�|$0����H��$����H��$�H�HH��� u=H��H����H���j�����)���H���0H�5�=H�81��y��f�H�VH�v��fDH���h��H��$�H9D$ �wH�CH� tH�CH�T$xH���H�t$xH)��|�H�|$� H�D$8H��D$PH�Ę[]A\A]A^A_�f���H�D$`H���,E1�A���A��A��"���A��t
E�����H�|$hu��D$P�����fD�D$WH�D$@��DA�E��������H�5��1L���Q��H��I���D$W�uH�����t������PL���#�H�
L���H�L$@H�������L�����H�����H��H�Ÿ��HE�H�D$@�c����H�|$��D$PH�D$XH��$�H�D$`H�D$hH��$�H�D$h���f�E�������H�����H�D$`���DA���k���H���8����
���H�D$�x�����H���������H�����=�����1���f�I��tH�5S�1L��H�L$���H�L$I��H��L��H������H��HD�H�\$8H����H���0H�D$@�F����1���H�T$ H�5�AH)�H��0H�81����H�t$L��D���~
�H����fDAT1�I��E1�UH�71�SH��H��H�D$I�����H�<$1ɉ�H��tH�t$����L�D$L��H�މ�����H��[]A\�ff.���USH��H������H�������H��ƒ���������H�T$H�\$�D����Ņ�xIH�t$H9���H������H���D$������xt!� H�H%���H	�H�H��H��[]�����H���)���u�H��� t=H�{H�sH�1�H�L$�
�HcT$��H�߉���H��H��[]�@H��H�{��H�4�H��������SH��H��H�T$H�T$�U���H�|$H�މ����H��[���SI��H����H�� H�D$H�t$H�t$H�|$H�¿�>���H�|$H�މ��_��H�� [�f���USH��H�t$H�5�0���H����H��H�|$�O��H�����H��H�����H����H�|$1ҹH���	�H�H�D$�� t+H�PH�pH��H��������t H���[]��H��H�p����H�$�0H�5�7H�81���������ff.���H��H�a���H�D$H�L$�Ζ��1�H�D$������H���ff.����Ǵ�����H��賴��H��uH���H���@	���AWAVAUI��ATI��UH��SH��XH�|$D�D$$H���YH�D$H�D$H�@hH��tH�Hc@@H�D$H�EH�D$8H�D$HH�D$(H�D$@H�D$0��@H����H���	��H�T$H)�I�4H9�sH��H�����H��H�����L�l$@K�T%H�E ��L�t$8H��H�T$M�<���D�L$$H�T$L�|$HH�L$(H�t$0M�H�|$��L�t$@H�t$HH��D$L��L)�L)�H�M��I)��o��H�|$�e�D$��u,H�]�� �'���H�]�%���fDL�u�h����H��XH��[]A\A]A^A_�fDH���p��H��H�D$H���H�������H������z���H���0H�5�5H�81��s����AVI��AUE��ATM��UH��SH��H��H�� H�t$�T��H�D$H�pH� tH�pH��L�E��L��H���z�H�T$H�T$H�T$H�T$H���H	H�� []A\A]A^�ff.�f���H�I��A��� uH��1҃�H���]�DH�N1��M�ff.�f���E��A��.�ff.���H�A��� uH��A�1҃���DH�NA�1�������UH�5j4SH��H���0H�-��0H�;H�U��H�UH�;H�5V4H�(2��H�UH�;H�5U4H�2��H�-"�0�����H����H�5F4H��2H�}��H�}�����H�����H�5&4��H���0H�;H�54H��"�H�5����H��H��2��H�=�2�H����H�5�3���H�=~2�����H���H�5�3��H�=_2�����H���H�5P����H�=@21�H����H�5O����H�=$21�H�S���H�5�3���H�=21�H�����H�5x1��H�=�11�H�����H�5l1��H�=�1�����H����H�5B3��H�=��1�H����H�5J��a��H�=��11�H����H�5��E��H�=v�11�H�����H�5�2�)��H�=Z�1�H�����H�5�2�
��H�=;�1�����H����H�5�2���H�=�11�H�����H�5�2���H�=�11�H�?��H�5�2��H�=�1�H�p�H�5�2��H�=�1�H��H�5��u��H�=��1�H�5}2��H�=��1�H�5r2�u�H�=v�1��H�5j2�]�H�=^�1�AH�5]2�E�H�=F�1�aH�5S2�-�H�=.�1�H�5M2��H�=�1�H�5C2��H�=��1�H�582���H�=�1� H�5<2���H�=�1�@H�5;2��H�=��1��H�582��H�=��1�H�532��H�=��1� H�562�m�H�=^�11�H�]���H�5�.�!��H�=B�11�H��H�5�.���H�=&�11�H�����H�5�.���H�=
�11�H����H�5�.���H�=�11�H�����H�5�.��H�=�11�H�Ѵ��H�5#.��H�=��11�H�e���H�5.�y��H�=��11�H�����H�5.�]��H�=��11�H�����H�5.�A��H�=j�11�H�Ѳ��H�5�-�%��H�=N�11�H�e���H�5v-�	��H�=2�11�H�����H�5�0���H��[]�R�f���H���s��H�=�0H�E�1�P��H���(�H�=АH��1�5��H���
�H�=�H�Ǯ1���H�����H�=�0H���1���H�����H�=�RH���1����H����H�=u0H�^�1����H����H�=/,H�;�1���H����H�=�H��1���H���k�H�=(0H���1�x��H���P�H�=#0H���1�]��H���5�H�=0H�g�1�B��H����H�=0H�D�1�'��H����H�=9-H�!�1���H�����H�=�/H���1����H�����H�=�+H�۬1����H����H�=&+H���1���H����H�=�*H��1���H���x�H�=�*H��1���H���]�H�=~/H�Ϭ1�j��H���B�H�=�*H���1�O��H���'�H�=V/H���1�4��H����H�=E/H�n�1���H�����H�=//H�K�1���H�����H�=[WH�(�1����H����H��1H�����f.��1�����u������u�������u�������u������x��� ��@D��ff.��1���t��uP��tU����f��u�����u������u������u������u����u� Ð��D�����ff.�f�H��HcGL�WM��E�A�M�Y�D������� ��)‰��
����M9�sdA�Q���tb��D�lj�A��)����A��I�A�D	�����?H�� I9�s
A�A����	�H�����H!�H	�H�<$�$H����1҅�uj��D�ǁ��?H�� H	�H�<$�$H�����D��1�)�����?H�� M9�sA�Q���HA��A	�L	�H�<$�$H���D�lj�1�����?H�� �S�����ND�WA9���AWL�F1�AVAUATU�i�Lc�SH�_I��O�$0I�A�$E�D�HD��A��D$�E9���A��M��I��E1�1��I��A�S�E�
I��I��L�I�Չ�H�I�� I)�L��E�J�H�� H�у�M9�s�E�E���	I�V�H9�s$E�V�E��t�DD�
E��uH����H9�r�o�NA��A9���Hc�H��H�L��f�H9�sH��H���291t�rp��H�މD$�1��I��A�H��H��H�H)�H�ЉV�H�� ��M9�s�Hc�H���2��u*H�B�H9�v�J���t����uH����H9�r�o�D$�[]A\A]A^A_�@�w����D$�[]A\A]A^A_�1��DD�W�NA9��&�����fDU��SH����~;�����C�H�H�<�'H���d��h�XH�@H��[]��H�q�1Hc�H��H��tH�0H�@H�4�H��[]�����H���1��C�H�H��'H�,�0H��H)�H��H��H��H��H�H�� �M���H��H�H�
��0�Y���ff.�f�AUHc�1�ATUHc�SH��H��D�g��D�H��H�H�ʼnD�H��H�� A9��H��tD9c~&Icĉl�A�D$�CH��H��[]A\A]�f��C�x���H�sH�xI��HcCH������HcC��&H�9�1H��H��Ic�H�L��l�A�D$�C�H��L������t���f.�UH���SH��H��(�D$�$����D$I��fH~�fH~�f~D$H�� ������։ρ���EωL$��tyH�|$�W�����uC�T$A�Q�T$E1���A�QA��A��E�A��tm������U�5)�L�ȉH��([]Ð�T$� )�����L$	�A�I����T$�DH�|$�����T$A�A�A�� A�Q��u�-2�EA�@�H�A�|��I���A��A)�L��D�H��([]�DAWI��AVAUATI��USH��LcoLcvE9�|D��I��Mc�I��Lc�C�.1�A9\$@��A|$����Hc�L�XI�,�L��I9�s@�H��H9�w�I�I��N�,�K�4�L9�r�^f.�I��I9�vKH��D�W�E��t�L��M��E1ɐI��A�P�D�1H��I��L�L�I�щQ�I�� L9�w�D�	I��I9�w���~�u�H�U���t�H���
��u��u�XH��[]A\A]A^A_��AU��I��ATUS��H��������M��tbH�-g�1H����M��L�-t�1�f��t@H�EH��tKH���t�H��L�����M��tKIcT$��qI�L��M�d�I�$I��u�H��L��[]A\A]�fDH��H���=���H�EH��I�����H�F+H��4�1�����I���D���f.�L��H�D$裹�H�D$I���F���fD����H��H�qH�EH�-n�1H�E�����AVI��AUI��ATUH�nSHcFH�_D�gA)���H��H�H��
@H9��H��H���89:t���A�}�_���IcU1�D�`H�pI��L��IcVH�|��
�L��H���S�H��L�VH)ʋM�H)�H��A��A�R�H�� ��H9�w�I9�v;L��H��@H���V�H��H)�H��A�ӉW�H�� ��I9�w�I�q�H)�H��L�E��uf�H���A����t�D�@[]A\A]A^�DA��,���H��H��A�H��L��M��I�������1��i���H�@[]A\A]A^��AVA��AUA��A��ATUH��SH��D�e�E�E�A�\$9�~
����9������H�xE��~&A�v�H��H�L�DH���B�H9�u�H�|�HcUH�uL��A��tqA� E1�E)�D�D��H��H����D��D	‰W�D�F�A��I9�w�E��D�DE�HcUD�`��5H�
>�1H�4�H�,�H�uH��[]A\A]A^�D�I9�vȥI9�w��f�H��H�D$���H�D$H��[]A\A]A^Ð��H��tX��A�<wLL�7I��1�@��0L��I��Hc�L	�M9�tA�D�I�A��v�I)�Ic�H�2�fDHc�H�2�1�1�H�2�f���AWAVAUI��ATUSH��H�T$H��tv�7I��N�$/I��1�H�-(@��u%�]@H)�H��I����H	�M9�t:A�7@��t
H���Y��H��u�L��L)�Lc�H�D$L�(H��H��[]A\A]A^A_ÐMc���1���E1���f���A�H���|AULc�E1�L�--�0ATA��UH��S��H��H�]�C�A�DA�����t/A9�~*L��I��pHM��I��L�I��sA�H��x�H��u�H)�[L��H�)]A\A]��E1�H�L���A��f���AVAUATUSH������A�Ճ�$��D�7H��I��H��D��E��u��H��D�3D��E����@������u�A��+���SH�CA���0uzH�hH��A������fDD��H�L$L�D$H��H��������H�T$H�H��HE�M��tI�,$�T$����H��H��A���HD�H��[]A\A]A^�DH��E��
DD����˶��H��1�[]A\A]A^�fD�P��߀�XuSH�XA��M���DA��-uTH�C�SA�����������k���"H��H�����[]A\A]A^�E��uA����A�����E1�H��������UH��SH�����H�XH�����H��H��H������H��[]�ff.�f���U1�1�SH�����H��t H��H���m��H��H�����H��H��[]�H�=m#�|��ff.����AWAVAUATUSH��I��H��H�t$�k��H�
T#H�D$0�A�E<-�4��Hc�H�>���A�E�D$������I��1�<0���M��ƒ�/�A��9�'E1�E1�E1��-@C��D�tP�I��A�A���Ѓ�/���9��A��~�A���C��D�LP�����D$f�H�D$H��tH��D$��tfW'�H�Ĉ[]A\A]A^A_�DA�E�D$���(���f�H�D$H��t�H���I��A�E<-������D$1�<0�����A�E�ƒ�߀�X�0A�m@��t�@��H�=�"�i��H��t�I��@��0�ff�L�%�"������~��$M���D$ �!fDA��L������T$H���4L)�f��I��E�}�����H*��Y��Y�$�X$�$�T$E��u��$��L���r�����D�D$,E��1���߃�Eu;D��	�	������A�o@��+��@��-��I�W1ۍMЃ�	��L��1�E������+D$,f�E�҉D$(D��EDԺ�H*�A��AN�f�$A��	~&�B�H�
^"f��H��Y�D���H*��X��$A��d�\$(����:�|$(��%D)�;D$(|9�H�"�$L��D)�H��Y‹D$(A�D�H��Y��z���fD�D$(D�)ЉD$������tH�H��!�<$�Y<��<$�d$�D$�W=4���D$�������$1�1�H�
,!@�t
Hc��Y������u�fH~�@��HD$Hc���H�$H�$H�؉�H�� -PH�� H	�H�$�Y$fH~�f�$H�� ��%�=�|�=�|�`H���������D$H�$�<$�|$ ��H���*��0t�Mσ���
�z��0H�JD�_�A��	w:D�D�H��B�lG��9D�G�A��	v�H��H)�H������N�����CL����I�����@�$�\$ A�L$�9��81�������)ƒ�~�f����9��D�T$8��D�T$8H��D�p�@A��	�h
M�u	A�B�L�t$8M�l
H�D$@H��D��I��A�V��
H�ǃ�0�G�M9�u�A��H�|$@H��H�D$8L�l8E9�}9E�D$�H��E)�O�t�I��A�U��
H�ǃ�0��M9�u�H��D�d$,�|$(1�L�|$`A)�DI�IljD$8H�CH�D$HH�D$tH�D$XH�D$pD�d$,H�D$P�{���H�t$HH�xI��HcCH�����H�t$XH�|$P�D$ �S��H����D�l$pI��H�I�GE����D$,E�t�D$8�L$tD+l$B�t)�A��3�����|	A�6A)�D$C�.A�D9�D��N�D9�AOƅ�~)�A)�A)Ƌt$,���I��~
H�����H��D�T$(E��~�t$8L�����I��E��~L��D���w�I��E��~L��D���d�I��H��L�����IcW�xD�PI���@9���H��H�pH�I�L�f�H9��H��H���9t��yM��L�|$`E���jH�������H�T$ �UH�$H�� A�Ё������8E�ME��u	���&L��D�D$ ��IcVD�D$ �HI��)х���H��H�pH�I�L�
@H9���H��H���9t����|$���t
D�������_
��p��H�$��M��L�|$`E���_
H�$H�‰�H�� �с������D�D$�����E��t!�с�����w��A�kA)�D����9���
�����H��H�� H�$��T$��t8H�P9�$H�D$�~D$�Y�fH~�f�$H��uH�D$0�"H��t HcU����H�
?�1H�4�H�,�H�uM��t!IcT$���XH�
�1H�4�L�$�I�4$IcV���+H�
��1H�4�L�4�I�6HcS����
H�
ڒ1H�4�H��H�3IcU���H�
��1H�4�L�,�I�u�$L�����f������H�t$xL��D�T$@���H�t$|L��f(�fI~���D�L$x�t$|A�UA+WfH~�D���D�T$@)�х��UfH~��D��H�� �H�� H	�H�D$@�~L$@�^��nf/���E�����
{�H��?H�4$H�� ���������t$��tT���wL�f/�r&�,��
+�����f(�E����fH~�H�։�H�� ���)�H�� H	��d$ H�$�$fH~�H�� �����@H�� H�$�$�Y��X�fH~�f�$H�� H���9�u�L$����H��t HcU����H�
�1H�4�H�,�H�uM��t!IcT$����H�
ڐ1H�4�L�$�I�4$IcW����H�
��1H�4�L�<�I�7IcU����H�
��1H�4�L�,�I�u�,$�l$ ���L���L$@��H��H��I����H��L$@��Hcu����H�==�1L��H�,�L�MH���h���f��D$8D�t$,D)����E1�E1�E1�fD��.����A�D�L$�4$���4$D�L$���fI�OA�WE�����D$,D��1�D�B�A��	��D�P�D$,I�σ�<�P��0A���DDЉ�A���B�L��G�4���E�9�����~�����G��E���f.��Y
(Xf(�E��ufW��fH~��,���DA�EI��<0t��j���f�D)Ή�)�fH~��H�� �H�� H	�H�|$@�~D$@���@��PH���4$H�$H�� �$H	�H�4$H�� �$�������H�� H�$�$�Y��X�fH~�f�$H�� �ց�������|��H��������H9T$ ��H�$����fD	����L��f��8�@H�������H�T$ H��� H����H���
d�����L��谣��<���L��蠣�������P�<$H��H�� H	�H�<$�m���@H�������I�WA�o�F�D�w�<$�|$ ���f��,�f��*��\�E������f/�wf/
�����M��L�|$`����fDH���������L������-���I��
A�	����f��X�f/����Y
�Uf(�fW����DI��E�}A��0t�A��H�=�ѵ�H���r�f����������$�T$A��.�+E�uE�����E��H�=��D$ D���{���D$ H�����I�����T$��L�%�D���D$ ��E���A��L���T$�%���T$H����L)�f��E�uI�����H*��Y��Y�X$f.T$ �$z�u��D$ M��L�%�D$�	E�wI��A��L��M��讴�H��u��D$A���A��P���A�U�,)׉�����1�)ȃ�� I����BЃ�	���A��1�D���
D��	w<��I���DB�A�UA��rЁ�/~܃�	w�I��A�U��0��	v�����4�fW��"�����f���H*�����L��1�I���u�H�������H�$�@�����f/��\����E����|$(��
�D�d$,H���$L��A)�Ic��^��]���0�I�ϹD)�DB�9I��A���0t�Jσ���M��1�A��^����D$,)��D)�ƒ�tHc�H�
_�<$�^<��<$���D$��D$�����ƒ��[����$�|$1�1�H�5��@��t
Hc��Y��u��fH~�HD$H�$����H�$�k�T$H�� �����)��~���
��4�'�7H��4H�$�$f�f.��\$ �G��A�H�D$0�"������E����\$ fH~�H�� �����@H��H�� H�$�<$�X��<$����@1�����L��f���H��H�D$h�`��H�D$h�L$@H����E���D$,1��7�H�D$0L���"H��H�$�$�S�A���A��P������@E1�E1�E1�1��D$,E1����E�
�P����E��I��A���w�H��躝�����L��譝����L��蠝���H��蓝��{�L��L��胝��$���D$ ����L��I���]�HcT$(H���$L���Y���B�T��z����E1҃�C��E�S�D$,I�OA�WD���y���E1��D$,���N�<�A�UI��������P�$�D$H�� H	�H�$�<$�|$ �&�D�¹������������H�� H	�H�$��H�������H�T$ ��H�$H�� I���0��D$�i���A��0�Z���I��E�u��A��0t�E�����E���6���D�\$�jE�����������p�w��D$ E�u����Bσ�����0A��u~I��I��1�1�A��������O��D$ �E��$�:��|$ fH~�H�� �����@H��H�� H�$�\<$f.=�f�<$����`����I��I�͸�C��E1�E�4S�%���H�D$0M��L�|$`�"H��H�$���E1�I��1��D$,���M��L�|$`���H�$�����H�������!�H!�H	�H�$����� ����!�H�� H�$����@��AWfH~�f(�AVH�� AUATUS��H��x�|$�t$ H�T$(L�D$0f�D$������f(�%�=��-f�f.���H�|$lf(�H�t$h�L$�$�W�����$�L$��I����fH~�fH~Ћt$h�D$XH�� ������H���?H�� H	�f��H�$�$f��*��Y
��\c�Yc�Xc�X�f/��D,���	�V�)�A��A����Ic�L�$�A�f/���A���D$L�D$8E����E���6D�d$E��$�D$��	�����~	��1�D$�|$���~�D$�D$H���|���h�D$ D$��D$\�����D$@O�����Hc����ef��e���H�D$(��0����f�H�\$0I��H��tH�@H�H��xL��[]A\A]A^A_�����fH~��H�؉�H�� H	‰�%�H�T$�T$=�����H�D$(fH~��'H�������H����	�i��nH�
I���I�D�
H��H�����u�H�\$0H���E����C���@�D$L�D$8E���X���D�oA)�D�l$8E1�E���I����zf��|$�D$H���D$ ���V�D$\�x���D$@Hc����T$P費�I��@ ��G�D$�T$P����
�É�H��	�������������f(��^�1�L�V	��tf�@��tHc׃��AY҃��u��^�D�\$LE��t�
a�f/��lf��D�L$@�*��Y��X
ffH~�fH~�H�� ����@H�� H	�E���H�t$�|$@H�D$�G�f��I�oH�L���\$�A$��,�D�D$H�*ȃ�0�\�E���:�
6IA��^��\�f/�wx�-��f(��\�f/��`
�����G��%�I�|�f(��\�f/��3
H9����Y�f��H���Y��,��*؃�0�E��\�f/�v��F�D$���D$��T$ �ع�I�NjD$l��x�|$�T$ �S������D$ ��\$\�\$@�T$X3��u	�6+D$h�\$8�A�É\$X�u���D$HH��H�H�C�t$8��~E��~D9��AO�)D$X)�A)ʼnt$8�4$��~R�D$H����	H���.��L��H��H�����M���Icv���[H�=�~1L��L�4�M�I��D�����H��H�$H�H�GE���8@��tH�������H�D$� 
�D���}� )ƃ����)�t$Xt$8A��D$X��~
L�����	��I��E��~H�<$D�����H�$�l$L���UH�$HcAA9F�9H��I�vH�H�T�
@H9��H��H���
9t���D$L��1Ҿ
�h����D�\$HI��E���_�D$\�����D$@L��D�l$@L�$$�fDL��1Ҿ
�q��I��L��L��H�������0�E�A�V��uA�~�1��D)�D9�|�A��E1�L���D�\$����H�<$I��A�VHcG)…���	H��I�ND�\$H�H�T��H9���H��H���:98t��U���	�	f��t$h�|$lfH~����2�� ��� )�f~���f���D$X�H*�fH~�fH~�H�� �����H�� H	��7����D��D)d$8��D�d$E1�$���fD��N��aH��I���N�
f.��
H��H�����u�H�\$0H���%����#���@�D$L�D$8���B��������@)�������	������D$H�q���f���*��Y��X
fH~�fH~�H�� ����@H�� H	��\�H�D$�L$f/�wrfW
��f/���f�T$�|$�D$l����HcD$�L$ H�x�…���D$@������Y
�f/L$��H�$1ۃD$I�oE1�A�1H�<$t'H�$Hc@���
H��z1H�4$H��H�4�H�H��t`M��t&L9�t!IcD$���	H�Yz1H��L�$�I�$HcC����H�9z1H��H��H��@�D$ L���؉D$M��tIcF����H��y1H��L�4�I�H�D$(�\$�E�H�D$0H���.���H�(�&����f���A*�f.�z��A����������@D�T$@E����D�D$H�D$E�������D$8���#I��E���z�D$@L�|$ L�|$@��I�lH�l$8L��f�H�4$H�����D�uA��D�x0HcCA)�u:H��H�MH�H�T�f�H9�sH��H���290t�E�A��H�<$L���Z����x��u@HcP�u)�u5H��H�}H�H�L�	@H9�sH��H��D�	D9
t����HcP���qH�=zx1H��H��H��|$���D$����	���E��x{D	�tvH�D$ L�`����E�|$�L9d$8��H��1Ҿ
�9��1Ҿ
H��H��L9������L��1Ҿ
H�����I��L�d$ ����E��y�I��H�D$ E��L�|$@A�NH�h��uA�~~z��~vL���D�\$���H�<$D�\$I��A�VHcG)…��cH��I�NH�H�T�DH9��dH��H���:98t�rA��9�\E��A��1H�D$ I��L��D��x����;��H��I���'���H�ljt$H���t$H����|$�\$H@��	މ����}����D$81ۉD$X����D$XA�D$8����t$������H�#��������Y�f(��CE1��1�L���f�@��tHc׃�A���AY҃��u�E���X���f(��O���f�D�����H�$@����E1�H�$�A�D$P��H��|��o��� )Ɖ������D$�����^���D�L$@E��u_H�<$1Ҿ���A�VH��H�$Hc@)…��AH��I�NH�H�T�fDH9�sH��H���:98t������D$ L��E1�؉D$����f�f(¸�C�f��4$L�����I�����DL��� ���G������D$\�D$@�D$ ���Y�f�f.�����L��f���
�=f(��X�f/���\�f/�������@H�ŀ}�0H�E�t����f(¸��H�������H�D$�`���H�D$H�� ���L����D$XA��E��A��7������f.�H�߉��6��H������H�D$H�� ��u�����HcT$f(�f��I�oH�����H�Ӄ��^��\$�,�f��*���0A��Y��\�f.����D$@�����D$@�%����I�L�
@H9����Y�f�H��f(��^��,�f��*��P0�U��Y��\�f.�z��]����A����v����G��%i�H��M�T���E�H��I9��K����Y�f��f��H���,��*ȃ�0�\�f.�z�������@�U��/L9����P�H��H�E���9t����2���D�U�H��H�E���0t�����I�������^�\$�fDL9����B�H��H�U�<9t���n���H�<$�]�����H���P���S���D�T$@E�������\$\���,����%Y���f�ɋL$�*��Yčq��Y��X
�fH~�fH~�H�� ����@H�� H	����s�A�1�D$�J���E1��B����{�%��H�sH�xH��HcCH���i��H�����I���M���A�0L���E��D$����E��I��L�|$@A��9��H�D$ A��L��I��L��D�����I��E��I��H�l$8L�|$@L���?�^�E��\$���L��������A���U��:����T���H��1Ҿ
�6��H�ËD$\�����D$@�����X�f/����A�H���L���L��H�D$ I�ܺ9L���9�����D$����tM�D$\�<�H�L$ E��D��L�|$@E��I��H�iA��9t���1E��I��L��DO�D���������������D$\�l$�D$@�o���L��H�$�3��H�$I�����J�f.�H������������
����A������������fD�D$����t��D$\���A������������������T$f��D$I�Of(��^��,�f��*��P0A��Y��\�f.�{'�|$@�����H������Z�<)Ɖ����H���V�����ff.����H����AUATI��UH��SH��H���?@��u�gfDH���;����u��;@��,t�@��tCI���DA�},tI��A�}@��t	讳��t�L��H��L��H)�L���A�}@��u�H��[]A\A]����AWfH~�I��AVH�� AUM��ATLc�UH��SfH~�H�������f(�fT
ʝf.
���f.��Tf.ʝ�H��H��4��uiH�\$�T$�Y�fH~�fH~�H��4-A�E��tH��A�|$Mc�Hc��E��H��A�T$�H�� ��
��B�4������.�-�A�E��u��A�A������<H��A���
%�H�� ���	�H�� I	�L�L$�D$�X��\�fH~�fH~�H�� ���)�A��N�0A���1��H�HL9�s-@��H���������t=@�q�D��A����	�L9�u�E��xJI�A�$M��tM�eH��[]A\A]A^A_�f.�%���A���H�� L��H	��M���A���Lc�A�T$�Hcʀ<0t��DA�����	�צ�nH�
t��IH����1H��H��@�2@��u�M���[���I�UH��[]A\A]A^A_ÐA���6������A���i��0f�M������H�PI�U�A������=��aH�
���NH���f��1H��H��@�2@��u��[��������fD��H�
�0H�yH�AH�f|0H�AH���0H�A �fD���ff.���H������H�y����H��tH����f.���H�:����USH��H�H��tH��H�{H�u�SH�[H��u�H���[]����H�H� u H;p}H�@H�4�H��4u 1��f�H���H��H�4�H��4t�H�JH�BH���ff.�@��� �fD�����uH�1��ff.�f�����uHUSH��H��uH�����tH��σ���t��H�H��H���%��H�H�EH��1�[]�DH�H���@��@��u	H�����uH��H��H�5�1�踎�1�H��Ð1��ff.�f�AUATUH��SH��H��@��ujH�����taH��Ѓ�������~<��7H�GH�xH��tH�T$����u_@H��H��[]A\A]�f.���t��t�fDH��r1H��t�H��H��H��趀��t�H�<$H�T$H��血��t�H�D$�fD�� t[L�oA�謻�H�@H�8H���t���H�T$H���_����_���H�D$L9��Q���I�D�H��4�E����=���DL�gL�oH� �f���H���Sg��H�=,�H��1��‚�H������H��t鲿�f��ff.�@��H��tH�?鏿������SH�H�{�S H�[(H��u�&fDH�[H��tH�{H��t��I��H�[H��u�1�[�ff.����SH��H���f��H�5�H��H��1��<��ff.��UH��AUATSH��H��dH�%(H�E�1��?$t|觍�H��H�HL�hH��H���H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�d$H��H��I���A�$$I�|$蟢�L��L���T���f����H�u�dH34%(uH�e�[A\A]]��L��ff.����SH���H��H�t$H�t$����H��1�H�����H��[�ff.�f���SH���s��H��H���8��1�[�@����f.���������H��H�����1�H���f���SH��H�?�Ч�H�{�ǧ�H�{[齧�ff.�f��������������ATI��UH��SH���:���u[1�]A\��L��H��H�+���H���3��[1�]A\�ff.��UH��SH��H�GH�5o1H�\$H�xH���|��uH��1�[]�fDH�|$H�5<M0���H��t�H��H��H����|��t�H�D$H��[]�@AUATUH��SH��(H�GH�\$L�d$H�t$H�xH��L��H�D$�H��H�|$H��u.H�EH�5sn1H��H�x�W|��u#H��([]A\A]���˒���f�H�|$H�5�L0�/��H�T$L��I��H���܊�I�E����u�H�n1H��L��H�D$H�EH�x賊�H��([]A\A]����SH��胋�H��[�ff.����wH�?���ATI��USH���p���H��u1�H��H��[]A\�DH�5qK0H��H���v��H��t�H�(�H��豞�H�E tgH�mH��td�}t^H�l$�^��1������Hc�H�t$H�F���H�=O���H���x���M���m���H�D$H���_���I�$�X����H���H�|0H�5��H�81��{�f���H��H��H�?���H��H��fD��UH��SH��H���{���uH��1�[]�fDH��H��H�[���1��d��H��1�[]�ff.���AWAVAUATI��UH��SH��8H�^����t(I�T$H9�t11���uH�����t������CH��8[]A\A]A^A_�@I�D$H9�tH��u�H��L��I���î�L�5�s0I��f�H�C I;��H�@H�xH��tH�5�k1L���y����H�;�w��H���O��H�5�?H��H��踍�L��H��I���*��H�[(H��u�@��u;H�����t2H�E�ƒ���t$H�€�H�}H�Ut��uH���6��fDI�l$�����H�<$�Ǫ�H�5?H��H���0��L��H��I��袚�L���y���f.�H�KH�yH�������L��@H9X tbH�@(H��u�I�D$H�T$H�58���H��H�,$H�D$H�D$H�\$ L�d$(�Ĉ�H�T$1�H���Q���I�T$��B���D1��6���f���ATI��UH��SH�����t�}u[1�]A\�f�H���X��L��H�����[1�]A\�fDUH��SH��(H�?H��H�|$�f.��H�G��uH��H��H��u�H�D$H�EH��([]�H�C���H�{��f���H���GH��(����H���ff.�@��uH�����tH��ƒ���t��u�H����w�D�����t1��SH���g��H��H���,��1�[����UH��SH��H���+���uH��1�[]�fDH��� ��H��H�����H��1�[]�ff.����@��u	H�����u
1��f.�UH��H��SH��H��蜓��u
H�E��`H��`tH��1�[]�f�H���`H��`t�H��H���	�������H��蓝�H�=��H�@�1�˼�
H�=m�H�h1購�H�=C�H��g1蛼�H�=K�H��g1胼�H��g1H������USH��H�GH�XH��t?H�l$H�5�g1H��H���u��tH�D$H��[]�f�H�5ig1H��H���^u��u�H���[]�ff.���UH��H��SH��H�=Y�1H�T$�u�H�\$��tH��H��[]�@�螗�0H��著�H��q0H�kH��H�H�=	�1H�PH��s0H�H�PH�lp0H�@H�P H��H�@(蠒�H��H��[]�fD��H�=��1H��t1�H�5����f��ff.�@��AT�I��UH��SH��H��H��tH�H�$����H���-��H�H�XM��t1L�`H��t8H�qm0H�hH�P H��H�D$H�$H��[]A\�@L�%�l0L�`H��u�H�-�s0����1�1��o���H�
�r01��~o�ff.���H��tH��tH��H��1��Uo�DH�5Ar0H��u�H�}r0H��H��1��0o���AU1�H��CATUSH��(H��L�D$H�����H����p�H���H�=Q�1H�T$H��H���s���L�d$H�D$I�<$H�_(H��u��H;Ct"H�[H��u�H��(H��[]A\A]�fD�W���t+H�t$�H�D$�?��H��(H��[H��]A\A]�fDH��(���H�D$����{��H��H��t!L�kH�sH��耮��L��M��u�I�$�H���_���H�x(�J����Q���H�<$�X��H�<$H�5Y�H��1��w��H���?Y��H�5@�H��H��1����ff.���U1�H�gBH��S��H��H��L�D$�[~����H�D$H��twH�<$�.��H��薶�H��H�D$�uH�����tH��ƒ���t��ug� ���H�H�5��H�J(H�pH�HH�L$�H�HH�B(H���[]ÐH����n�H��[]����r�H�D$�\���H�zl0H�5c�H�81���q���H�H�H�r�bff.���UH��SH��H�H�wH��H�SH��SH�C(H��t�S��tH��H��[]�D�CH��H��H�����H�=��H�l$H�$�G��H��H��[]�ff.�f���SH����H���;��H��[H���߁�ff.�@��H�����H�����H��H���o��ff.�@��H�H�
�l0�H9H�HD��ff.�@��ATUS�1H��躇�H�=Ӥ1L�d$H�5w�H��H����|��D$$��L��\$���,��H���ī�H��H��艫��:u�H��H��[]A\����AUATUSH��H��H���'��H�=P�1H�T$H��I���o��t\L�d$I�EI�,$H9�t>�U��u�mu*H�}(H��t@H�_�g��H��H��u�H���W��I�E�I�$H��[]A\A]ÐH�����H��谫�H���3��H�=��1H��H�XH��I���z��I�E�H�
o0H�5>�H�81��Lo�ff.����@��uVH�����tMH��ƒ���t@��t;H�`1H��t/H��H��H��H�T$�n��tH�D$H���D1�H��Ð1��ff.�f���H��H�=�_1H��t-H��H�T$�m��uH���fDH�|$�Ƙ�H��Ð�ff.�@��H�=m_1H��t
�j_1��u�D1�H�5���z�f���H��H�<$H�=5_1H��tH�T$H���|��uH���f�H�|$�V��H��Ð��H��H��H�=�^1H�T$�m�1҅�uH��H���fDH�|$�&��H��H��H���ff.���H��^1H����ATUSH��H��@��uH�����tH��у���t��u0��uH�����tH��ƒ���t��uxH��[]A\��H�l$H��H���Pl��t�L�d$I�D$����t�H�=^1H��H���*l��tVH�|$�L��L���ԃ�H�=�]1H��H����~����H�����H��ƒ����o�����H��d���@L��舃�H�=�]1H��H��趉���=���H������0���H��ƒ���������H�����@��U�4H��SH����H��H��4tH��H��[]�fD�[n�H�����t�H���uR��H�=��H��1���m���f�SH����uGH�����t>H��ƒ���t1��t,��H�����uH�����t�����t
f�H�C[�f.�����b�f���ATI��UH��SH��H����uVH�����tMH��Ѓ�������~(��#H�GH�xH��tH1��_j��t=�fD��t-��t(fDH�=!\1H��tH�l$H��H���$j��u1�H��H��[]A\�f�H�|$H��L���i��t���D�� uCH� H��t�H�T$L����i��t�H�D$H� u3H9C~�H�[H�<�4t����Ӥ�H�@H�8�f.�H���h���H������ATI��UH��SH��H�� ��uFH�����t=H��Ѓ����|��~`��[H�CH�xH��tL���~v�H�� []A\�DH�=[1H��t�H��H���	i��t�H�<$L��H���Fv�H�� []A\�DH�=�Z1H��t���t���t�뼀� u3H�{ H��t�H��H�58�H�$H�l$L�d$�u�H�� []A\�@H����H�@H�8����SH��H��H�� ��u<H�����t3H��Ѓ���tv��~Z��UH�GH�@H��u41�H�� H��[�DH�=Z1H��t�H�T$�h��t�H�D$H��t�H�XH�� H��H��[�@H�=�Y1H��t���t���t�뼀� u;H� t�H�VH��t�H�v1�DH�<�4tH��H��H9�r��i����H�|$�Ƣ�H�t$H�@H�8�C���H� t�H����ff.�@��UH��SH���^�H��H�5T�H��H���i��H��H��[]�ff.�@��AWAVAUATUSH��H��8H�|$H�t$�d���&H������H��H��ƒ��������H��ttH��������H��Ѓ�������������H�CH�l$ H�xH����H�T$H�t$ �=u����H�D$H��8[]A\A]A^A_ÐH�|$膦��H�|$��tH��H�5��1��y�@�L��H�|$H�5/H��1��}y�D��t7��t2H�=�W1H�l$(H�D$H��tL�d$ H��L����e����H���M��H�5u�H��H��1��|�� ��H�{ H��t�H�T$(H���e��t�H�D$(H� u/H;C}�H�[H��H�H��4t�H�4H��8[]A\A]A^A_�f�H���z���H����L�l$ L�t$(H�T$L��L���s�A��I�E����t)E��������?���H���0��H�@H�8�Q���@H�=�V1L��L��H�\$(�s�H�|$ ���H���ee�H���K��H�5�H��H��1��{�f���SH��H��H�t$H�5hV1H��t#H�L$H�ߺ豃�H���Y�H��H��[þ
H�=����H��H�%V1���ATUH��S��H��u1�[]A\�@H�540H���!~�H��H��t�L�`�Pr�I9�u�H�SH��4tƸH��t�H�U븐��SH��H��H��t/H�GH�xH��tH��H�5H��q�H��H��[�f.�H�|$���H�|$H���ff.����UH��H��SH��H���H��]0H�H9���H9��„�uH��H���ӌ�H�[H��u�H��[]���H��t?USH��H��H�H���R�H��H�5��H��H���Mp�H���%��H��H��[]��#���USH��H����u/H�D$H��1��,��H��褒�H��H��H��[]��1�H�L$H��h�-o�H�D$����u�H�CH�hH��t5H�}H���~�H��H�5/�H��H���r�H��H��[]�f.�1��y~�H���@��H��twUH��SH��H��H�GH�xH��t1��b��uCH������H��H��t'H�CH�xH��t1�H����a��uH�[H��u�H��1�[]�H���[]�@1��ff.�f���ATUSH��H����uMH�D$1�L�%���*f�H�CH�xH��tH��L���n�H�[H��tWH��u�赈�H����1�H�L$H��g��m�H�D$����u�荈�H��H�CH�xH��tH��H�5c��Nn�fDH��t;H�}H���'}�H��H�5��H��H���"n�H����H��H��[]A\�fD1���|�H��H��H��[]A\�f���SH��H����H��[H���}�@��ATI��H��H��UH��SH���4s���u	H�����u��[]A\�DH��L���m}��u�I�$��`H��`u�H���`H��`t�H��L����u��USH��HH�+Z0H�t$H�H�|$ H�D$H�D$0H�@H�D$(H�D$8H�@H��tiH��H�T$H�5j�H���m�H�L$(H��tHH�kH��Q1H�uH�D$H��t?H��Q1H���@z�H�CH�t$1�H�x�<n�H�D$(H��H[]�H��H�[]�@軆�H�L$(H�EH�CH�p��AUATUH��SH��H��H��u
H�<Y0H�H�C�EH�xH����L�d$H�5�P1L����^��t9H�D$���H��������������H��[]A\A]��H�CH�5�P1L��H�x�^��t}H�|$蓛�H��H��I���e���H��u�1�H���U���H��u�M��t^H�CH�5OP1L��H�x�C^��tO�EH�D$�t���fDH��1�����H��[]A\A]�1�H�����H��� �����8���f�L���ؒ��)���H�=��1��e�D��H��H�t$���H��uH���H���x��H���AUI��ATI��UH��SH���X���H��H�D$H��u/H�EH�xH��t5H�5fO1H�T$�\]��t A�$H�\$H��H��[]A\A]�DH�58v@��uH�����t�E����tw�H��H�=��1���H�èu2H�����t*H��ƒ���tH�€�H�{H�t
��uH�����H��H��H�5�N1A��A�$H��H��[]A\A]�H���ȗ�H�Y0H�5vH9�q���H�}H�t$L������H�pH� �O���H�p�F���fD��H��H��]0H�t$���H��tH����H���@��H����~�H��H��闔����UH��SH��H���{�H��tH���~�H��U0H;uH��H�5��H��1��.o�fDH���p��H��H�5��H��H��1��	o�f���AWI��AVAUATI��USH��H�GH�xH��tH���c[���+L��1��1�H��H���HI��I���H�CH�xH��tL��L��� [��tI��H��uH�ݐH�[H��u�M���H����L9���L�d$H����]�H������|A��uI�����tA�E����uM�mL���h��I��@��uH�����t�E����uH�m�H���8��L��H���A��L��H��H�=��H��1��]�����t4H�$H��[]A\A]A^A_�f�L����H��H��tL������H�CH�t$1�H�x��h��M��u�L��赀�L��H���*A��H��H�5�L��H��1���p���ATI��H��UH��S�:x�H��H��蟢��tH��L��[]A\�e�H��H�5��H���p�f.���UH��SH��(H�|$H�t$�W�H�D$H��uZH�|$�P�����t$H�����H�|$H�5��H��1�H���l�H�|$�?��H�|$H�5��H��1��xl��H��H��������@����H�������H�E�ƒ���������H�EH�xH��tH�T$H�t$�og��ukH��H��蠋�H��H��t(�C�H��H���?��H��H�5��H��H��1��ao���H��H���?��H��H�5��H��H��1��9o�f�H�D$H��([]�H���X�H���T?��H�5��H��H��1��o���H��H����H�t$�G���H��tH��詉�H���@��H���sz�H�dY0H�t$H������H��t)H� tH�@H����H��H����1���ff.����@��t&@��u@������tVH��t`@��tjH��A��H�����u�H��t!H��u�H�5W0H�8��H�yV0H�8���H�iR0H�8�@H�9Q0H�8�@H��U0H�8�@H��X0H�8�@��AWAVAUATUSH��H��(���UH������HH��Ń����7���.I��I�ԃ�tH���(���H�kH�uH����L��L��H���q�H��(L��[]A\A]A^A_�fD�� ��L�s M���
H�T$L��L���V���1�H�H�D$H�ց� �QH�{L�{I��I9�,H������ H�C4H�H�C4H�C 4L�kM�d�A���V���I������I���L��H���r���6���H���`H��`�&���I�$��`H��`����L��H���*k�����DH�=1G1H���PH�I��H��H�L$�,��L��L��H�|$��tU��g����������A��������U���I�VH��H�T$H�������L��L����r��������r�멐�+|�H�EH�CH�p�L���f.�L�kH������H��A�H��H��H�H������I�VH��H9�sH��H��H����H�{�H��H�L$�Rb�H�L$I��H�C��H���X��H�@L�0��@H���@��L�xM�7M�������k{�I��I������[{�H��H��E1���@�H��H�L$�F|�J��L��H���w�H�#���H�L$H�CI��I9�}K��I��H�4H��H9�u�H�KH�D$L�s H� �����L�k���H���S�H��T0H�5��H�81��-T�H��H��H��H�H�������������ff.�@��AUI��ATUH��SH��H�M0L�%�D1H90��H��T0H��H�t$�1���H��虄�H�5��H��H���g�L��H���wt��u2H�����t)H��ƒ���tH�€�H�{H�t��to��D$��t H��L��H���J��H��[]A\A]��L��L�%>D1�9��H��葎�H�5"D1H��H������DH���h�H���H��� ���ff.���AUI��ATUH��SH��H��K0L�%�C1H90��H�fS0H��H�t$��H���y��H�5�H��H����e�L��H���l�D$��tO��u+H�����t"H��ƒ���tH�€�H�{H�t��t_H��L��H���1��H��[]A\A]�fDL��L�%&C1�o�H���y��H�5
C1H��H�����DH���h��H���q���H������fD��SH��H���0��H�5�B1H��[H��魘�ff.�f���UH��SH��H��H���o�H��H��H��H��[]�t��@��AWAVI��AUI��ATUH��SH��(H�GH�$H�xH��t1��MP���]L��E1�L����I��H����L���I�GH�xH��t#1�H���	P��tL��M��u
M��f.�M�M��u�H����I��M����I9���H�l$M����R�H�����txH���uH�����t�����uH�{�Ov�H��A��uI�����tA�$����uM�d$L��H�L$�v�H��I���6��H�L$L��H�=m�H��1��Q�A�����ttH������M�eI�t$H��tJH�$H��H����i�H��([]A\A]A^A_�L��M��u�@L���L����I��H��t�M������;v�I�D$I�EH�p�I�FH�t$1�H�x�x]��s�����AUI��ATI��H��UH��SH���m�H��H���f���tH��L��H��L��[]A\A]�
\�H��H�5d�H���He�����f.���UH��H��SH����e�H��H�5q��H��H���f^�H��H��[]�ff.����H�GH�xH��t/H��H�T$��M��t
H�D$H���1�H���f�1��ff.�f�UH��SH��H�����H��t:H��1�H�z4tH��[]��1�H��H���#�����H����[]�@H��1�[]����AVAUATUH��SH��H��@H�D$�D$�t�����uH��@E1�[L��]A\A]A^�DH�T$H��H���H��H�D$H��t��Y��H��tH�t$H��tH���"l��t�H�|$H�5�0�f�I��H��t�H�x��H�T$L��H�=����p�M�uI����Z�I9�uI�E�|$����I�����t
I�EH��4u&H�D$H�D$ H�D$H��@L��[]A\A]A^��H�\$(H�l$ H�D$0�D��A�}����[�Hc�H�t$ H�*��H�=�
��b��@�3Z�I�E�@����a�D��UH��SH��H���fDH�[H��t?H��H��������t�1�H��H������H��tH�5�0H���e�H��t
H�H��[]�H���[]�@AWI��AVI��AUATA��UH��S1�H��8H�D$(�L$D�D$H�D$I�����u0D	���A�������H�1E0�L�0I�����t�E1�H��L�����H�����T$��t	�8��L�PI��4u{M9�taH�T$H��L���q���tL�T$(H��8L��[]A\A]A^A_�fDH��L��M����W��H���؆�L��H���]u�I�����D$���,���M�v����E��t�H�gD0H�I9�t�L9�u�H��L�T$�e1��L��I����p�H��H���O1��L��H��H�=ھH��1��(��L�T$�F���H���&1��L��H���p�H��H�5��H��H��1���`�@��E1����J���f.���E1��1��-���ff.�f���E1�1ɺ�
���ff.�f���A���������A��1�����f.���A�1ɺ���f.�AWI��AVA��AUA��ATI��U1�SH��H��D�D$H��u+�D	�urA�����ugH��B0�H�H��t�L��H�����H��uE��t�H�[뵐�T$��t�8t*H�x4u41�L��H������H��u"1�L��H������uH��1�[]A\A]A^A_�H���[]A\A]A^A_�@��E1�������f.���E1��1����ff.�f���E1�1ɺ����ff.�f���AWAVAUATUSH��(H�|$�dO�L�t$I��I� ��I��H��A0A�}H�(�CL���.c���3A�<#�L��M��u�ufDH�����t<:u�H��L��L��L)��m�;:I��tpM����L��H���lh����H��L��虋�H�ŨuZH�����tR�����uH���u�H�D$H�D$H�D$H��(H��[]A\A]A^A_���{:u/L�cL���M�v�
���H��?0H�T$H�5��H�81��{G�H��G0H��H�L$H�5޽L)�H�81��XG�H�|$��,��H�5_�H��H��G0H�81��3G�H�|G0H�55�H�81��G�ff.���H���u�H��H���S����ATUSH��H����H�t$��H�������H��ƒ���������H�CH��H�xH��tH��H�t$�oT��ukH��H����f��t,H����,��H��I���9l�L��H�5��H��H��1��b\�f�H���,��H��I���
l�L��H�5s�H��H��1��6\�fD�;f�H�<$L�gI��4t�[�H��L��[]A\�@H��H��A��G��H�<$��H���E�f���UH��SH��H�|$H�t$�dB�H��u_H�|$蕄����t)H�\$H���dk�H�|$H�5ȹH��H��1��W�H�|$�*��H�|$H�5¹H��1���W��H��H���5i��tH��H���I�H��[]�H���w+��H�5��H��H��1��#[���A����������A��1����f.���A�1ɺ����f.���AVAUATUSH��H�t$H���zH��I���F��H�kH�}�7H�t$H�����H��H����H�x4H�|$�&�*��D�mI��H�s=0H9��H���i�L��H�=�H��1��V��H�}H��t)�u��t"H� ��H��L��H��1��c`�H�CH�t$1�H�x�Q�H���gY��DE1���c���)��D�(H���t�H�t$H��EH�CH�x�fU�L�eA��u
I���������I��H�E�uH�������H��[]A\A]A^�fD�i�E1�H�E�r����H��H���
��H��t8H�5!0H���)\�H��H��t!L�h�XP�I9�u�c�L�e��H�t$H��E1��0������H��H���^���b���H���`H��`�R���I�$��`H��`�A���L��H���iW��1���@L��H���^�������H���`H��`���I�$��`H��`����L��H���!W�����@L��H�=�1��g������f�H��#���H���_(��H�5��H��H�&:0H�81���A�@��SH��H�wH�?�<��H�SH�sH�;�n�1�[����AUI��ATI��H��UH��SH���1_�H��H���e��t"H��L��H��L��[]A\A]��m�f.�H��H�=��衃���ff.�@��H�}:0H��H��H�8�g�����AVAUATI��H��UH��SH��H���d���H�����}��H��L���	�H��tH�x4t
H��[]A\A]A^ú4H��L���m�M�t$M�nM���H�5�11H�T$L���?���bH��01�1���~�H�5�11L��H��H�D$�{]�L�l$A��u
I���������f�I��H�D$L�h H���n�I�ĨuEH�����t=H��Ѓ���t0H�Ѐ��I�$����t��I�|$I�$t
��uL���u� �a�L� H���s�H�EH��1��EH��0H�E4�~�H��L��H���Q�H��[]A\A]A^�f.��f�I��I�F����L��L���[������I�$��`H��`����I�E��`H��`��L��L���T����H�|$H�5�0�?X�I������H�`?0H�5ԴH�81��>�H���G%��H�5P�H��H�:0H�81���>�ff.��AWAVAUATUSH��(��tz~d�F�H��H��A��H�D$H�D$E1�H�$�DI��J�D�H�<$H�D$�2;�I��H����H��H����H��tOD� I�EL;l$u��s^�H��([]A\A]A^A_��S�H���$��H�=��H��1��?�H��([]A\A]A^A_�E��t�-^�L���U$��H��H����c�H��H�50�L��H��1���S�E��t�]�H�|$�_#��H��H���c�H�|$H��H�5��H��1��+P�ff.���SH�ӹH��H�����H��[Ð��SH��1�H��H�����H��[�@��H��H�=Y=0��WM�H����O�H�=�H���[�H�=�70�
�/M�H���O�H�=سH���[�H�=A70��M�H���O�H�=³H���`[��H�=���O[�_�H�=���>[�H�=�80�:�L�H���EO�H�=��H���[�H�=o<0�1�L�H���O�H�=��H����Z�H�=80��mL�H���N�H�=t�H��e0H��H���Z�ff.���H��H�=!80��@�H��40H�8H���if�f���H��H�=�;0�@�1��%{�D����~t5�@t��������Ð� u,�t@H����@������@�������H����@������@�u�t(��������Ë��������D�t���������PH�=7�1��B�f�H��tME1��D�O`L�GXE��~%I;0tFI��1��fDI��I;p�t0��A9�u�H���A��H��u�PH�=�1��A��1�D��Wd��ff.�f�AVAUATI��USH��t`H�H��A��D�j��[�]E�t$`E�l$dA\A]A^��HcھH����a�H��H�uI�D$XH���G]��DA�E1��DUH��SH��H��+1H��t3���a�H�H�EXH�U`H�H���[]��H�=���H��H�=+1�ff.�H���H��tTH;��tK��@H��H���1҃?���H9��u�H�p ��tH��H�=����1��gh��H�w H�=��1��Nh�ff.���H��H��H���V+PH��+PH�8Hc�H�T�UZ�1�H���ff.�@��u:H�����t1H�u*H��H��Ѓ���t!��u�?t�H��H���3I��+I��� uH���g�H����DH���f.�AVAUATI��UH��SH�� H�W/1H�4$H�8H�T$H�w0袧H��tmH��H����H�SHc�L�jL�rH�\L��D$�Bb�H��H��1ɿeI���}n�jI��L��jL��L��E1�H����r�H��0[]A\A]A^�D�
H�=9���JE�I��I�Ƹ�ff.�f��O`H�WX��~&H;2t8H��1���H��H9r�t ��9�u�P��H�=�1��M>�D1��DH�����u�fD�|�ff.�SH��I��H��H��Mc�M��H��H���H�@ H�HH�PH����pxAPO�D��q�ZY�uH��H��H�D$���H�D$H��[�ff.�@AUATUSH��H�L�``H�������A�D$I��A�|$H��H�H��H��H��H9�w-�L�A�l$H��[]A\A]�f.������?wB�<H��H9�w�H�����]�I�UI�$I��H�B`1�H��@�X���P�AWI���hAVI��AUE��ATM��UH��H��S��H��� ���L�8D�h�X�XXL�`M��t
A$�XX�XD���M��tUI�N H�H��uH��tP�UtH�@ H�@(�JH�@HH�@P4H�@`�Mt�P\H��[]A\A]A^A_ÐH�@��u�M��u�A��D�h�f�AWM��AVM��AUA���ATI��UH���SH��H��H�$H�L$�I���L��H���^|�H�L$I��H���N|�L�L$PE��L��H�4$L�������H��0H������H�@�@*D�hH�X(H�@ H��[]A\A]A^A_ÐLc�H�F��N �VB�����F 9�~bATUH��SH��L�f(��>uUH�H���H�4����I�$H��E1�H�C(E1�1ɾ�H������H�S(H�B�[]A\�f��É�H�=)�1���:�f.�AVL���AUE1�ATA��U��S��H��PL�D$@L�L$H��uEL���0����H�@�h�XL�h(D�` �@$H��P[]A\A]A^��Hc�H��$�L���D$ H�D$H��H�D$ H�D$���L�D$�t$1�I��H�L$1��!����L�H�I�T�H��A9�~��/v�H��H����@@���:����t$�1���fD��AVAUI��ATI��USH��L���H���H�*�%���H��H���Y��A��L��L��H��A�H���o�����H��A�I�Ź�1����I�T$H����M��H��A��H�PH�B��jI�D$����I�T$H�PH�BI�D$H�H�C`X�Z[]A\A]A^�ff.���AU�H�ATI��UH��SH��H��D�jL�H�G`HLJ��1�D������H�SD��H��M�D$�H�PH�B�OH�C1����H�SH�PH�BH�CH���[]A\A]�f���AUI��ATUH��SH��H�5��H��D�b���A�H��H�H���D��A�1����%���H�SM�ED��H��H�PH�B�H�C1����H�SM�ED��H��H�PH�B�OH�C1�����H�SD��H��1�H�PH�B�H�C1����H�SH�PH�BH�CH���[]A\A]�ff.�S�0H��H������H�����QpH�@�r�qp�PH�@ �@(�����`,�[�DATH�
'UH���SH��H��H�(�H���G4�H�T$H��H��I���/��tH�\$H��H��[]A\��H���P���L��H��H��H���A�H��H��[]A\���@��u&H�����t�����tH����^�H��H��f�H���@�e���H9�tgH��uPH�����tH@��ujH�����taH��1у�uU����t=H��H��H���F0����H�����f���f.�1��DH��H����G�D������f�UH��SH��@��uH��H�����u
H��H��[]���J��u�H�E��`H��`u�H���`H��`t�H��H���kC���f�AWAVL�5��AUATUSH��H�=�H��X�,3��D$H���%������������dHcCH�
�0H�=̦H�4�1��]�H�{(H����HcCH�
�/E1�E1�H��H�D$�H�D$0H�D$f.���tO�B�<����Ic�L�>��@H�C(J�<���H��H���H+�A��H�D$Mc�N�,8A�}��H�|$(H�l$(�k��*�D�|$�H�5�H��A��1�D���`�HcSH��D������L$H�[H������H�=����1�H��X[]A\A]A^A_��H�5�H���T@��W����H�C(J��H��H�x��`�H��H���M��+���H�C(H�t$N�,�L���@���kH�t$@H���]H����F����H�C(H��
H�5G�N�,���?�I�}H���?A�UH�51�H��1��r<����DH�C(H�5��H��J���P1��L<���������H��H���)��^���fDH�C(J�<��3s�H�5��H���1��<��3�������H�C�����H��t�PH�5Ť�1���^��c���fD�H�5�0H����>�A�U���f�H�=���40��,�����SH�5\��1��^��
���DL��H�5�H��1��T;������_�H�5;�H��H��1��/;����H�S$0H�5�H�81���*���H�5���H�0$0H�81���*�fDUSH��H������H��H�����t:�������H��)0H�KH9u?H��H����H��H��[]��H���H����H��)0H�H9Ct�H��#0H�5��H�81��-*�D�����؃�����H��t+����H�S)0H�H9Cu�H��H��[]��H��'0H�fDH�!)0H9�{���H��H��[]�fDH����H���n�H�è�
�������@H��'0H��@H��"0H��@H��(0H�H��(0H9��������f�H��#0H���@H�	*0H��Q����UH��H��H��SH��H���8�H�ǨtR�u3H���H��tW������tM@��tG�1�����uH��[]Ð��u.�p�EH���[]��H�����u�H��t*H��u�H�� 0H��H��H�5�H�81��(��1��@��H�~t1��f�AVAUATL�%C1UH��SH���H��I�$H�L��H���*\�H�}�sH� uZH��H��H���1��&�I�$H���L���H��H���u	H�����u+L��1�[]A\A]A^�f�H��f.�H��L����C��uI���`H��`tI�$�H���`H��`t�H��L���X<���fDAWAVAUI��ATUSH��H����L$H���\H�2H���I��H�D$H��H��A��9hht@�ƀu1I��I��A��A��i��MH�
��D��Hc�H�>����hhH�WH��~eH��t`9hlt[H� �.H�R �M�A���L��Hc�H���(��hl1���H�SH�PH�BH�CI���fDH�@x�x��uH�CH�D$I�6�C���@�A���L��(1��D�H��H�D$H�CH�AH�HH�K�f.��A��G����5�A��D��1�A��L�����H�S1�H��L��H�PH�BL��H�C�[���A���&D��L��1���H�SI��D��L��H�PH�B�2H�C1���H�SH�PH�BH�CL�D$�D��L��11��X�H�S1�H��L��H�PH�BI�VH�EH�hH�k���I���H�@x�@����K�/L��1�D��1���H�SH�|$M�vH�PH�BH�GH�xH�{M���kKL���S�L��H�D$�F�M�~ H��M����KI�?H������(�����A��D��1�A��L����H�S1�H��L��H�PH�BI�WH�C���A�D��1���&L���B�H�SI��D��L��H�PH�B�2H�C1���H�SM� H�PH�BH�CM���X������fD��t@�H���[]A\A]A^A_ÐH����
1ɋph1���H�SH�PH�BH�C�뾐H�������I���f�H�|$HDŽ$�)�$�M�fA��H��H�H0)�$�HDŽ$��D$`HDŽ$�H�@0H��$�H��$�H��$�H�D$H��$���A!�A�A�H�L$ ���^W�A��%t!I�V H�t$H�L$`L��$�L���v�H��H��$�H��tH�SH�BH�PH��$�H�CH��$�H��tH�SH�BH�PH��$�H�CL��H�L$��]�I�H�L$H������$��J��%�{JD�L$`H��O�L	L���$�L�D$0L�����H�SH�PH�BH�CAYAZD�\$E���PJf�E������H�D$H;C�����x(�����H�@H�CH�@����@�H�=:�//�H���7��I�vA��1�A�H��L���M�I�V1�H��L��I���	����
L��1ɉ�1��f�H�SH�=�1H�PH�BH�CH���4]�\�H��M��L��jI���)1������H�SH�PH�BH�C_AXD�L$H�|$A��E�����1ɉ�L��1����H�SH�PH�BH�C����@L��D�L$�;�I�V1�H��L��I���7����D$D�L$���/\M���3A��t�2��L��1��r�H�SH�PH�BH�C�D$���d\I�V�L$H��L������H�CH�|$A��I�D$L�`L�c�#���f�M�e �
H�=0�)�$�M���)�$��p-�L��H����H���m��I�v A��L��A�H��L����L��I���7�L��I���,�L��H�D$��I�V �L��H��$�H�D$ H��$��	���I�V �L$H��I���L�L$L��L�|$`H��$�H�PHL�L$hH�D$pH��$�H�T$`H��$�H��$�H�PHH�CI�VI�GL�xL�{���H�CL�L$L�D$ I�AL�HH��$�L�KH����nI�AH��$�L�HH��$�I�@L�@I���L�CH�PHL�rM��t~I��L��$�L��@I�L���HDŽ$�H��H��$�I�FL��$�H��H��$�H��$��e�I���H��H�z�uY�M�vM��u�I���H��$�H�|$A��H�PH�
���f.�I�V�L$H��L���}���H�|$A��H����A!�����DI���H�y(�LL��M����/��(L��I��H�CI�D$L�`I���L�cL�x(��L��H��H�@H�SL�xH�P��h H�B1�H�C葘���L��I����1L�@(1��0�H�S�(L��H�PH�BH�C�C��L$H�|$H�@H�SA���L�`�@ ����H�PH�BH�C�������
1ɉ�L��1���H�SH�PH�BH�C���@I���H�y(�LL����I�V1�H��I��H�CL��M���I�D$L�`L�c���1�L��H��蕗I����(L��L�x(�m����L��H�@H�SL�xH�P��h H�B�1H�CI���L�@1���H�SL���(H�PH�BH�C�
��|$H�|$H�@H�SA���L�`�@ ����H�PH�BH�C��������
1ɉ�L��1���H�SH�PH�BH�C�s���L�����L��I�����L��I�����I����
H�=X�H�D$I�E H�L$(H�D$ �(�H�t$ H�����H�����I�vA��L��H�L$(A�H����I�V1�H��H�D$ A�D$,L����A�D$,A�G,���A�G,H�CI�D$L�`L�c�>�H�CI�~ I�GL�xL�{t41ɺ��L��1���H�S1�H��L��H�PH�BI�V H�C���1�1҉�L��1��S�H�SH�L$H�PH�BH�AH�H�D$H�K���`VL�t$H�D$ I��I��H��$��L��$�I��H��HDŽ$�L��$�H��$�L��$��a�I���H��H�z�U�H��L��$�HDŽ$�L��$�HDŽ$�L��$��3a�I���H��H�z�T�H�|$A���a����I���H�(��FL��M�����L���(I��H�CI�D$L�`I���L�cH�P(H�T$�>�H�T$H��L��H�@H�PH�S�H�P�h H�BI�VH�CI����HP�[�1�L��H������L��I����1L�@ 1���H�SL���(H�PH�BH�C��D�L$H�|$H�@H�SA���L�`�@ ����H�PH�BH�CE���?����
1ɉ�L��1��,�H�SH�PH�BH�C�����A�}��cI���H��1H��H�H�H��H��I�EH�xH� tH�xH�Α1��\�H�I���M���L��L�"A��u
I������8LH����f�M���L��D�L$PI�D$H�D$0I�D$ H�D$8I�D$(H�D$@A�D$P�D$H���M���L��I�D$H�D$��L��I�G(M���I����L��I�G H�D$ ��L��H�D$(�x�D�L$PI��I���H�PH�@PHDŽ$�H��$�H��$�HDŽ$�H�PHA���[?I�~ �P?L��D�L$X���1��L��I��H�D$P�1��r�H�SD�L$XL�\$PH�PH�BH�C1ɺ
��L��1�L�\$XD�L$P�;�H�S1ɉ�L��H�PH�B�I�GL�x1�L�{��H�SL�D$��L��H�PH�B�1H�C1����L�\$XH�SD�L$PM��H�PH�BH�C�HRI�CL�XM�\$I�VH��L��M�c�L�cD�L$P�$�H�CH�L$D�L$PH�AH�HH�KA����bA����S1ɺ��L��1��S�H�SH��E1�A����L��H�PH�B�aH�Cj����H�SM���L��H�PH�BH�CX1�Z�2��H�SH�PH�BH�L$(I�~ 4H�AH�HH�K�.u1ɺ
��L��1���H�SH�L$ H�PH�BH�AH�H�D$H�K����PL�t$ I���H��$�H��I��HDŽ$�	I��L��$�L��$�HDŽ$�L��$���[�I���H��H�z�hO�H��L��$�HDŽ$�
L��$�L��$�HDŽ$��[�I���H��H�z�O�I���H��HDŽ$�H�@(L��$�L��$�HDŽ$�H��H��$��<[�I���H��H�z�N�H�L$0H�|$@I���H�|$A��H�PHH�HH�L$8H�x(H�RH�H �L$HH�PH�HP�5�DH��$�f�L��HDŽ$�)�$�L��H�D$H��$��x�L�t$(I��H�D$ �fD��s�G�����sH��1ɺ
L��1����I�V1�L��L��H�PH�BL��I�F�)�I�7A�1���&L��H���x��I�VI�7M��L��H�PH��H�B�2I�F1��J��I�VH�PH�BI�FH�m H����9L�}L��H�������v9L����H�U�L$L��I��H��$�H�t$I�D$L�`L��$��m�L��L�D$ L��1H���1����H��$�L�}H�PH�BH��$�M���rI�7H��H������(�����I�_1�L��L��H����H�3�2M��L��1�H���P��I�VM� H�PH�BI�FM��u����f�I���L��H�@0H�D$��L��I����I��H�CI�GL�xI�L�{H������	�BGI���L��H�L$(�#��H���[�I�vA��L��M���H�L$(A�H��L�T$ �b��L�T$ I�V 1�H��L��I�B0��H�CD�T$I�D$L�`L�cE����JI���H�|$I��H��$�H�x0L���H��HDŽ$�	H��$�L��$�HDŽ$�L��$��W�I���H��H�z�9K�H�|$A�����f.�H��A��H�|$��A!NjD$������A���L��1����H�SH�PH�BH�C��f�H��$�)�$�)�$�)�$�)�$�)�$�)�$��W�H��$�H��$�H�L$0H��H��$�H��$�H�L$H��$�H�D$ ����I�VH�
��/H�H����KH��L��1��|�M�~I�/H��H��������RI���H��1H�H�H��H���"�I�7I�UH��H�zH� tH�zH��H�Վ1��
����f�f�L��$�L��HDŽ$�L��$�H��$�)�$�)�$�)�$�L��$�L�\$ L��$�L�L$(H��$�H�t$0HDŽ$�HDŽ$��i��L��H�D$�\��L��I���Q��L�T$M��L��I�VH�t$0I��L���vI�V�L$L��L�L$(L���*�I�V �L$L��L�\$ L����H��$�L�T$H���JH�SH�BH�PH��$�I�BL�PH��$�L�SH��tI�BH��$�L�PH��$�H�C�1M�����L��1��
��H�SH�PH�BI�D$L�`H��$�L�cH��tI�D$H��$�L�`L��$�H�|$M�gM�|$L�{A�����I�FM���H�x�@�H�=��H��1��;�H����I�vA��L��A�H��L��� ��L��H��I��I�FH�H�H�NJ��
L��H��M�1�1��-��H�SA��I��H�PH�BH�CI�FH�x�xG�H��M���AWI���)1��L������H�SH�PH�BH�CAZA[D�d$H�|$A��E������1ɉ�L��1����H�SH�PH�BH�C��f�I�FM���E1�H�x�y?�H�=҅H��1��x:�H�����I�vA��L��A�H��L�����L��H��I��I�FH�H�H謉I�V H��L��H��A��A��D����H��DE�1���I�FH�x�fF�Ic�H��M��H�TI���1�R��)L������H�SH�PH�BH�CA^A_�D$H�|$A�Dž�����1ɉ�L��1����H�SH�PH�BH�C�{�A����L��1��\��H�S���A�L��H�PH�B�H�C1��0��H�S1�H��L��H�PH�BI�VH�C��H��E1���j���L��A����H�SH�PH�BH�CXZ�L$H�|$A�Dž�����1ɉ�L��1����H�SH�PH�BH�C��@A����L��1��|��H�SI�~H�PH�BH�C��D���L��I���1��J��H�SI�~H�PH�BH�C�D���L��I���1����H�SH��E1���L��A��H�PH�B��H�Cj���H�SH�PH�BH�C^_D�D$H�|$A��E������1ɉ�L��1����H�SH�PH�BH�C��A����L��1��t��H�S���A�L��H�PH�B�H�C1��H��H�S1�H��L��H�PH�BI�VH�C��I�V1�H��L����H��E1���jA���L�����H�SH�PH�BH�CAYAZD�\$H�|$A��E������1ɉ�L��1����H�SH�PH�BH�C���I�~�;�H����I�v A��1�A�H��L���-��A���L��I�Ĺ�1��N��H�S1�H��L��H�PH�BI�VH�C���I�~�B���L��I���1����H�SM���L��H�PH�B�H�C1�����H�SH��E1�A����L��H�PH�B��H�Cj�_��H�SH�PH�BH�CA\A^�D$H�|$A�Dž�����1ɉ�L��1��r��H�SH�PH�BH�C�]�DI�~�O:�H�����I�v A��1�A�H��L������A���L��I�Ĺ�1����H�S���A�L��H�PH�B�H�C1�����H�SI�~H�PH�BH�C�9A���L��I���1����H�SM���L��H�PH�B�H�C1����H�SH��E1��A���L��H�PH�B��H�Cj���H�SH�PH�BH�CXZ�L$H�|$A�Dž��,��1ɉ�L��1����H�SH�PH�BH�C��@I�V1�H��L��������1�A��L������H�S�t$H�|$H�PA��H�BH�C������1ɉ�L��1����H�SH�PH�BH�C��DH�|$I�VH��L��A��D�d$H����1�A!�E���[-����E1���L���1��5��H�S1ɉ�L��H�PH�B�H�C1����H�SD��H��L��H�PH�BI�VH�C������H��D�D$I�VH��A��H�|$L����1�A!�E���--�F��E1����L��1����H�S1ɉ�L��H�PH�B�H�C1��z��H�S1�H��L��H�PH�BI�VH�C����E1����L��1��@��H�S1ɉ�L��H�PH�B�H�C1����H�SH�PH�BH�C���L���x��I��I�FH�@H����vcH�H�����P����`c��9�WcI���E�Ed��L���'D+@Lc1�Mc�O�L	O�D���H�SM���L��H�PH�B�2H�C1��f��H�SH��L��H�PH�BI�VH�C����H�CH�|$A��I�D$L�`L�c�"�f�H��$�L��H��L���~M�FI�61�Lc�$���L��H��O�DO�L	����H�SD�T$H�|$H�PA��H�BH�CE�������1ɉ�L��1����H�SH�PH�BH�C���f�E�epI�N �?I�VI�vA�D$A�Ep��7�1�1�1�H���7�L��M���I�����H�����L��A��L��A�H��L������Mc̺6��I��O�L	1��L�����H�SD�L$H�|$H�PA��H�BH�CE�������1ɉ�L��1����H�SH�PH�BH�C���f.�I�V1�H��L�����H��D�\$A��H�|$��1�A!�E����+���L��1��[��H�SH�PH�BH�C�F��fD1ɺ��L��1��-��H�SH��L��H�PH�BL��H�C�/~H��E1���j�`A�L�����H�SH�PH�BH�CA\A^�D$H�|$A�Dž������1ɉ�L��1����H�SH�PH�BH�C���f.�L��H��L���}H�|$�L$A��H����A!Dž��)H����
E1���jA��L������H�SH�PH�BH�CXZ�)��f�E�}pL��A�GA�EpI���H�D$�P��H����I�V1ɿeH�5���I���N5�H�L$A��L��A�H��L�����McϺ6��I��O�L	1��L�����H�S�t$H�|$H�PA��H�BH�C���{���1ɉ�L��1��h��H�SH�PH�BH�C�S��H�ۋ|$A��H�|$��A!Dž��1��I�~��OL�����1ɺ
��H��$�L��1�HDŽ$����H�SH��L��A�H��$�H�PH�BI�VH�C�:e1ɺ ��L��1����H�S1ɉ�L��H�PH�B�H�C1����H�SH�PH�BH��$�H�CH���eTH�BH�PH��$�H�PH�BH�C�R��f�H��D�D$A��H�|$��A!�E���/��A�}L��T$u�{T@�8��9H�����H��u�
1ɉ�L��1�����H�SH�PH�BH�C�����M�f I�~M�~I�D$�H�|$ H���H�D$(�D$�D$0���%M���
%H����IH�H�D$H������(��IM����[M�_I�H��������L��1�A�H��$�L��H�����Q� to��@tjI�K��t.H;�$�tXH�FD�B�I��N���H��H9H��JSI9�u�H���H� �B��H���9[L�_Hc�I�H�������y���H��$�H�D$H�D$f�HDŽ$�)�$�H��$�H�\$8L��L�|$1�H�SL��L����eH�[ H��u�H�\$8H�T$ 1�H��L������D�|$E��u(I�6�1�L��1�H���$��H�SH�PH�BH�CD�L$0I�6Lc�L��O�D�1�M�H��I������H�SH�PH�BH��$�H�CH��tH�PH��$�H�BH��$�H�CH�|$(���I�4$H��H������E��GI�l$M�d$H��LcEO�DI�����V�L��A�1���M��H�SH��L��H�PH�BL��H�C�od�H�UH��L���YdH�m H��u�H�|$A������I�V�H��L���|��I�V�L$H��L���i��H��A��H�|$��A!�����f�I�~�I�V DŽ$�)�$�)�$�)�$�)�$�u3I�FH�H������[t H��tH�H������(��S�H��$�L��$�E1�L��H��$�L��$�H��$���pI�VI��H�H������[��-L��1�L��E1����1�I�~	�$��Q4�D$���u0H��$�H��tH�SH�BH�PH��$�H�CH��$�H��tH�SH�BH�PH��$�H�CD��$���L��E1�H��I�VL��jO�L	���H�SH�PH�BH�C^_1ɺ1���L���?��H�SH��A��H�|$H�PH�BH�C��A!�����H�|$D�L$A��H����A!�E�������E1����L��1�����H�SH�PH�BH�C����H�|$D�T$A��H����A!�E�������A���L��1����H�SH�PH�BH�C�n��fDH�|$D�\$A��H����A!�E���G���
1ɉ�L��1��4��H�SH�PH�BH�C����H��D�d$A��H�|$��A!�E�������1ɉ�L��1�����H�SH�PH�BH�C�����H��L��L����tH�|$�t$A��H����A!Dž������1ɉ�L��1����H�SH�PH�BH�C�s��I�~���H�|$�|$A��H��I�F��A!ׅ��D��I������L��1��+��H�SH�PH�BH�C���fDI�~���1ɺ��I�FL��1���H�SM�F��L��H�PH�B�H�C1�����H�SH��E1��A���L��H�PH�B�`H�Cj�C���H�SH�PH�BH�CXZ�L$H�|$A�Dž��k���1ɉ�L��1��X���H�SH�PH�BH�C�C��L��M���聻��H�����I�vA��L��A�H��L���ν��A���L��I�Ĺ�1����H�SH��M��A���L��H�PH�B��H�Cj�l���H�SH�PH�BH�CXZ�L$H�|$A�Dž������1ɉ�L��1����H�SH�PH�BH�C�l��@L������L��H�D$����L��I������A���L��I���H�D$H���H�HL�d1�H���I����M������H�SL�D$��L��H�PH�B�2H�C1��׿��H�S1�H��L��H�PH�BI�VH�C�F��1ɺ��L��1�裿��H�SM����L��H�PH�B�3H�C1��z���H�SH�PH�BH�CI�H������Z��(M�����L��1��>���H�SH��L��H�L$H�PH�BI�VH�AH�HH�K1����L�t$��L���31�M����H�SE1���L��H�PH�B�H�C1��ɾ��H�SM���L��H�PH�B�H�C1�蠾��H�S���A�L��H�PH�B�I�FL�p1�L�s�l���H�SH�|$H�PH�BI�GL�xL�{A���E��DI�VE1�A��WH��A��L��1����I�V1�H��L��O�d$���H��D�t$A��H�|$��A!�E���W1ɺ��L��1��ڽ��H�S1ɉ�L��H�PH�B�H�C1�跽��H�SH�PH�BH�C���f�I�Vf�HDŽ$�)�$�H���	.H�:H��$�H��$�H������(�GE1�E1��L����]H��$�H��tH�SH�BH�PH��$�H�CD�d$E���h*H�|$A��H����A!����f.�H��A��H�|$��A!NjD$������I�~�8,���L��I���1�诼��H�SH�PH�BH�C���f.�I���I�vD�gd�̸��I�V1�H��L��A)����D�\$E����*M;���WHL��1��H�����H;��u�Hc�L�LMcĺ1��O�D��L������H�SH�|$A��H�PH�BH�C�����D�L$E1�1�L��H��L���H\H�|$A��H����A!����I���H�|$A��I�VH��M�fH�A0H�D$ ��A!�H��tH�H������:�V3I����p,f��D$`L��H��$�)�$�H��$�HDŽ$�)�$�HDŽ$�HDŽ$�H�A01�H��$�H�D$H��$��y��M�I��A������f�I�FH�8H������T�C&��U��%����L��H���/L�1�萺��H�SH�PH�BH�CI�FE1�I�~ L�`��81ɉ�L��1��W���H�SL��H�PH�BH�C�)�	��L��I���1��&���H�SI�~ H�PH�BH�C�S,I�V1�H��L�����H��I�V E1�jA����L��舸��H�S1ɉ�L��H�PH�B� H�C1�A^A_豹��H�SH�PH�BH�C�D$����CL���(�
��L��I���1��t���H�SH�|$A��H�PH�BH�C�U��DL���ȼ��I��I�H������!� #L��誼��I��I�V1�H��L�����1ɺ��L��1�����H�SM��H�PH�B�3H�CI�H������ t�2��L��1��Ƹ��H�S1ɉ�L��H�PH�B�H�C1�裸��H�S1�H��L��H�PH�BI�VI�GL�xL�{�
��H�CH�|$A��I�D$L�`L�cD�d$E���Q���1ɉ�L��1��>���H�SH�PH�BH�C�)��f�I���f�H��$�HDŽ$�)�$�DŽ$�H�H0HDŽ$�H��$�H�L$0H�@0A��&��8M���M9���DL��1�f.�H�����H;��u�T$ A����D$����EHcD$ E1�H�\$(L�t$8E��I��L��H�DH��D�Ed�I��D��L��1�E)�A��Mc�O�D�#���H��$�H�PH�BH��$�D9���I��H�\$(L��E��L�t$8A����¨��E���E���VIHcD$ E1�H�\$L�t$(M��H�DH�l$8D��H���E�Fd�I��D��L��1�E)�A)��Mc�O�D�q���H��$�H�PH�BH��$�A9���M��A��H�\$L�t$(H�l$8A���C�:�‰L$���+��S6���v)�� �:I�A����L��H������'�LE�1��յ��H�SH�PH�BH��$�H�CH��tH�PH��$�H�BH��$�H�CH�L$0�T$1�L��D��$�L��$�A��H�U����-��L��I���1��\���H�SH�PH�BH�C�D$���F"H�|$A���1���I�VL��1�H������|$����$H��A��H�|$��A!�I�~��A����L��1��ٴ��H�SI�~H�PH�BH�C�0$�
��L��I���1�觴��H�SH�PH�BH�C���f�I�V1�H��L������D�L$E����"M�F �1����L��I���S���H�SH�|$A��H�PH�BH�C�4��@I�V1�H��L�����I�~��D�T$E���y#I�vH��$�H��$�L���̬�����	I����L��D��$�Lc�$�A)�O�L	1�Mc�O�D讳��H�SH�|$A��H�PH�BH�C����H�|$D�D$A��H����A!�E���g��M�F����L��1��M���H�SH�PH�BH�C�8���f�H��$�L��$�HDŽ$�)�$�)�$�HDŽ$�H��$�L��$�A��7�f*A��8�8*M�F����L��1�趲��A���L��H��$�A��H�PH�B�H��$�1��|���H��$�H�PH�BH��$�I���H��$�H�RxD�bE���
H��$�H9���8H��t H�SH�BH��$�H�PH��$�H�CH��$�H��tH�SH�BH�PH��$�H�CE1�1ɺE1ɾ�L��误����NI����L��1�趱��H�SH�PH�BH�CD�L$E����H��A��H�|$��A!����I�F�L$f�DŽ$�)�$�)�$�H�D$��� I�VH�H������[��1�H��L��E1�赽��I�F H�PH�H������)����KH��$�H��$�L��A��E1�H��$�E��A��O�L	�D$ L�L$(�z\L�L$(I��H��$�H��tH�SH�BH�PH��$�H�CO�����L��1�胰��H�SH��E1�D�$�L����L��H�PO�L$H�B��D��$�H�Cj��H�SH�PH�BH�CXZH�|$��I�F 1�H��L��H�P蠼��H��E1�L��jH�T$(A���蝮��H�SH�PH�BH�C_AXD�L$E���33��$����1�|$ u*� 1ɉ�L��1�裯��H�SH�PH�BH�C��$�H��I�OL�LE1�j����L������H�SL��H�PH�B�H�C1�Y1�^���F���H�SH�PH�BH�CH�|$A���'�����L$����H��A��H�|$��A!����@H�|$�t$A��H����A!Dž�����I���I�vD�gd����A)�M;��t �T$L��f�H�����H;��u�T$LcL$Mcĺ��O�D�L��1�O�L	�q���H�SH�PH�BH�C�\���@E�Ef�H��$�HDŽ$�)�$�DŽ$�HDŽ$�H��$�E����
I���H���0H��H�H�H��H��I�EH�xH� tH�xH�\���DA�E����I���H���0H��H�H�H��H��I�EH�xH� tH�xH��[���DI�V1�H��L�����D�D$E����E�epI�~A�D$A�Ep��Mc̺��I��O�L	1��L������H�SH�|$A��H�PH�BH�C��I�F L��H�@H�D$�[���L��I���P���I�VH�D$ H�H������[�<1�H��L��A��1���1ɺ��L��1�莬��H�SH��E1�M����L��H�PH�BH�CI�F H�Pj����H�SH�PH�BH�CXZH�|$��I�V1�H��L��輸��I�F H��E1�A�L����H�Pj趪��H�SH�PH�BH�C_AXD�L$E����-I�F H��E1�M����L��H�P j�r���H�SL��H�PH�B�H�C1�Y1�^��蝫��H�SH�|$A��H�PH�BH�C�~���fDL����E�epI��A�D$A�EpI���H�@x����c���L��H�m�/L�1��+���H�SI�~H�PH�BH�C��	��L��I���1����H�SH�PH�BH�CI���H�@x������D$H�|$A�Dž�������1ɉ�L��1�諪��H�SH�PH�BH�C閼��fDI�VH��1�L�������t$����I�~�����L��I���1��Q���H�SH�|$A��H�PH�BH�C�2���f�H�|$A��H����A!NjD$������E�epI�~A�D$A�Ep�k�Mc̺��I��O�L	�L��1��ک��H�SH�PH�BH�C�Ż��DH��A��H�|$��A!NjD$�������M�N����A�L��1�N���y���H�SH�PH�BH�C�d���@H��A��H�|$��A!NjD$���A���M�NM���� �
1ɉ�L��1��!���H�SH�PH�BH�C����@I�~������	L���o���Mcepf�L��I��H��$�L��)�$�A�D$H��$�HDŽ$�A�Ep)�$�HDŽ$�H��$�H��$��[H��$�H���A.H�SH�BH�PH��$�H��$�H�CH��tH�PH��$�H�BH��$�H�CH��A��H�|$��A!NjD$�������1ɉ�L��1�����H�SH�PH�BH�C����I���H�@x����NL���K������L��I��IcEpM���PL�d1�A�UpM��4蜧��H�SI�~H�PH�BH�C�����L��I���	1��j���H�SM���L��H�PH�B�5H�C1��A���H�SH�PH�BI�GL�xL�{H�|$A��H����A!NjD$���
����1ɉ�L��1����H�SH�PH�BH�C���f�M�F �1����L��I���¦��H�SH�|$A��H�PH�B�T$H�C��������1ɉ�L��1�艦��H�SH�PH�BH�C�t���@�t$��@��I�~ I�VH��L����	����ڲ��M�v M���-I�H������t�I�V �L$H��L��諲��H��A��H�|$��A!�����M��I�T$1�H��L���{���M�d$ M��u�M�F�1����L��O�D�¥��H�SD�t$H�|$H�PA��H�BH�CE��������1ɉ�L��1�臥��H�SH�PH�BH�C�r���f�H�|$A���a���D���Y��H�=b[H��1��(���1�1�D��L��1��/���H�SH�PH�BH�C����f.�A��D��1�A��L�����H�SD��L��H�PH�B�H�CH���/L�1�輤��H�SA�H�PH�BH�C�ܲ���L��L$L�t$(H��H��L������I�6L�D$ L��1�1�H���f���H�SH�PH�BH��$�H�CH��tH�PH��$�H�BH��$�H�L$ H�|$A��H�AH�HH�K������)�S8�A���L��1����H�SH�PH�BH�C���D�L$`A��A��D�L$`�s���D�L$`��1ɉ�L��1�蟣��H�SH�PH�BH�C銵��H��$�f�HDŽ$�)�$�H�D$H��$�M������1����L�D$�1��L��1�D�L$P�-���H�SE1�D�L$PH�PH�BH�C���H��A��H�|$��A!����胯��I�V1�H��L���r���A���L���1��Ƣ��H�S1ɉ�L��H�PH�B�H�C1�裢��H�SH�PH�BH�C鎴������I�V1�H��L�������1ɉ�L��1��e���H�SH�PH�BH�C�P����1ɉ�L��1��=���H�SH�PH�BH�C�(���I�F L��H��H�H�H�TI�F H�x�u�
��L��I���1����H�SH�PH�BH�C�׳��E1���,I�V1�H��L���J���H��A��H�|$��A!�A�}�.&�0A���L��1�耡��H�SD�L$H�PH�BH�CE���b����1ɉ�L��1��O���H�SH�PH�BH�C�:���H��tH�SH�BH�PH��$�H�CH��$�H��tH�SH�BH�PH��$�H�CH����E1���jA��L��腟��H�SH�PH�BH�CAZA[�����L��1�諠��H�SH�PH�BH�C閲���M����L��1��}���H�SH�PH�BH�C�h���M�fM����L��L��H��H��$�L��$���KH��$�L��$�H��D��$�H��tH�CH�PH�BH��$�H�C�P�1�1�M��E���L���̝���.L���I���1��ӟ��H�S�|$H�|$H�PA��H�BH�C��������1ɉ�L��1�蚟��H�SH�PH�BH�C酱��1ɉ�
L��1��r���H�SI�~H�PH�BH�C���	��L��I���1��@���H�SH�PH�BH�C����1ɺ��L��1�����H�S1�H��L��H�PH�BI�VH�C臫��H��I�VE1�jA����L��腝��H�SH�PH�BH�CXZ���A�E���
+����#I���H��twH���H��tkH�z(��0�����0����#��9f.�H���H��t/H��H�z(��0�����0���~#H���H��u�H��0H�H��H�L��H��I�EH�xH� tH�xH��K1����H�M���H��I���H�(@��u
H�������)H�L���龭��A�}�5!H�y��$L��M������1�L��H��I��H�CI�D$L�`L�c�LI����(L��L�x�s������L��H�@H�SL�xH�P��h H�B�1H�CI���L�@1����H�S�(L��H�PH�BH�C����H�|$H�@H�SA���H�PL�`�@ ����H�B�T$H�C��������
1ɉ�L��1�莜��H�SH�PH�BH�C�y���H�y �VL��M����ߟ��L���(I��H�CI�D$L�`I���L�cH�PH�T$�^���H�T$1�H��H�@L��H�PH�S�H�P�h H�BI�VH�C胨��1�L��H���&K���L��I����1L�@ 1��ś��H�S�(L��H�PH�BH�C�ؘ���t$H�|$H�@H�SA���L�`�@ ����H�PH�BH�C���i����
1ɉ�L��1��V���H�SH�PH�BH�C�A���1ɺ1���L���.���H�SH�|$�L�D$ H�PH�B�2H�Ct�3��L��1����H�S1ɉ�L��H�PH�B�H�C1��Ӛ��H�S1�H��L��H�PH�BI�VH�C�B���1ɺ ��L��1�蟚��H�S���A�L��H�PH�B�"H�C1��s���H�SH��M��E1����L��H�PH�BH�CI�F H�P j��H�SM����L��H�PH�B�1H�C1�AZA[����H�SH�L$ ��L��H�PH�B� H�AH�H1�H�K1����H�S1ɉ�L��H�PH�B�I�GL�x1�L�{踙��H�SD�d$H�|$H�PA��H�BH�CE��������1ɉ�L��1��}���H�SH�PH�BH�C�h���L�����L��I���՜��1ɺ��H�D$(L��1��=���H�SH�|$M��H�PH�B�2H�Ct�3��L��1�����H�S1ɉ�L��H�PH�B�H�C1����H�S1�H��L��H�PH�BH�CI�F H�P�O����D$ ��H�M�4G�D$���m ��$���� �|$ u*� 1ɉ�L��1��}���H�SH�PH�BH�C��$�H��I�OL�LE1�j����L�����H�S1ɉ�L��H�PH�B�H�C1�AZA[����H�SL�D$(��L��H�PH�B�1H�C1���H�SH�PH�BI�D$L�`L�cD�d$E���g!�$L��M����1�賗��H�SH�|$(H�PH�BH�GH�xH�{�[��1ɉ�L��1��~���M�H��$�I��H�PA��H�BH��$��g���L��L������uI���`H��`��'H�顳��A��D$ A��}�I�6�1�L��1�A�H�����H��$�H�PH�BH��$������1ɺ��L��1��Ö��H�SM���L��H�PH�B�H�C1�蚖��H�SM���H�PH�B�1H�C�.��I�6�1�L��1�A�H���Z���H�SH�PH�BH�C��I�6�1�L��1�A�H���'���H�SH�PH�BH�C���I�VE1�H��L��H��$�L��$�HDŽ$��T1L��$�M����'�3M�����L��1�躕��H�SH�PH�BH�C�~��I�V H��1�L���$���I���L��H�L$(�Џ��H������H�L$(A��L��M���I�vA�H��L�T$ ����L�T$ H���A��L��I�B0I���L�@0j�˓��H�SH�PH�BA[A^邸��I���H��0H�H�L��H������I�6I�UH��H�zH� tH�zH��H�yJ1��R��H�I���M���H��H�*@��u
H������t%L��1�铤��H�P1�H��L����������
1ɉ�L��1��M���H�SH�PH�BH��$�H�CH��tH�PH��$�H�BH��$�H�CH��$�H��tH�SH�BH�PH��$�H�C��$������n1ɺ��L��1��œ��H�S���I�����L��H�PH�B�H�C1�蘓��H�SH��Mc�M�E1����H�PI��L��H�B��H�Cj����H�SH�PH�BH�CAXM�D$AY��#��L��1��2���H�S1ɉ�L��H�PH�B�H�C1�����H�SH�PH�BH�C�o���1ɉ�L��1����H�SH�PH�BH�C����1ɉ�L��1�迒��H�SH�PH�BH�C�7��1ɉ�L��1�藒��H�SH�PH�BH�C�p���1ɉ�L��1��o���H�SH�PH�BH�C��I�vH��$�H��$�L����������&����L��D��$�Lc�$�A)�O�L	1�Mc�O�D����H�SH�PH�BH�C����1ɉ�L��1��ؑ��H�SH�PH�BH�C�+��1ɉ�L��1�谑��H�SH�PH�BH�C�2����1ɉ�L��1�舑��H�SH�PH�BH�C����1ɉ�L��1��`���H�SH�PH�BH�C�����
1ɉ�L��1��8���H�SH�PH�BH�C����Mcĺ5���O�DL��1�����H�SH�PH�BI�GL�xL�{��Mc�M����4O�L	��L��1��ǐ��H�S1ɉ�L��H�PH�B�H�C1�褐��H�SH�PH�BH�C�D��1ɉ�L��1��|���H�SH�PH�BH�C�_���1ɉ�L��1��T���H�SD�L$H�PH�BH�C餣���1ɉ�L��1��'���H�SH�PH�BH�C���H�=�>���	�H��H�_�0鬢���1ɉ�L��1��ߏ��H�SH�PH�BH�C�t����1ɉ�L��1�跏��H�SH�PH�BH�C�x����1ɉ�L��1�菏��H�SH�PH�BH�C���I��鸭��H��$�H��$��U�H�C���I�V�L$H��L���ћ��H�|$A��H����A!��)���Lc�A����O�L	�L��1�����H�SH�PH�BH�C��H�H������[�}��I�F H���p��H�0H������(�]��H�x�R��H�pH�H������:�;��H�|$ �/��H�Ax�x�!��H�~����1�H��L��I��I�F H�@L�`I�V���E1�E1�1ɺ��L�������GM���I���1�L���"���H�S�|$H�PH�BH�C�����1ɉ�L��1���H�SH�PH�BH�C�ߟ���I�VH�L$(M��H��L���*H�C�Ϭ��L���0���H�D$�D$����I�~ L�D$��2t�3��L��1��x���H�SH�PH�BH�C�D$����I�VM��tH�CI�GL�xL�{1�H��L���ƙ��A���L���"1�����H�SL��H�PH�BH�C�r��
L���I���1����H�SH�|$H�PH�BH�GH�xH�{1ɺ1���L��蹌��H�SH�|$A��H�PH�BH�C隞��A�Cd����A�L��L�\$8�D$(1��q���H��$�L�\$8H�PH�BH��$�A��� �;I���E�Cd��L��LcL$ ��D+@1�Mc�O�L	O�D����H��$�L�\$8H�=r�0H�PH�BH��$��uL�\$8H����L��jA�E1��H�7�0�j���H��$�H�PH�BH��$�^_L�\$8I��������HcT$ H�\$8E1�L�t$@H�LH�l$HD��M��H�L$ H�@Hc�I�����L�4�L��蓇���\$(L��)���D��L��I���1�����Lc�L�L$ D��H��$�O�D�L��H�PH�B�H��$�1��ߊ��H��$�H�PH�BH��$�I���9(�X���M��H�\$8A��L�t$@H�l$HL�\$ H��C�L?A�jHc�E1���H�L	��L���#���H��$�H�PH�BH��$�XZL�\$ A����'�D$�5��HcD$ E�Cd���E+���L��L�\$Mc�L�L1�O�DL�L$(���H��$�L�\$H�PH�BH��$�A�����$����D$A����¨����A���E����|$8���	E����E1�H�\$@L�t$HD��D�t$8H�l$8L��f.�D�EdL�L$(�1��D��L��E)�A)؃�Mc�O�D�?���H��$�H�PH�BH��$�A9�u�I��H�\$@L�t$HH�l$8Mcǹ���O�DL��1�L�\$(���1ɉ�L��H��$�H�PH�B�H��$�1��ˆ��H��$�L�\$(H�PH�BA���H��$����I�V1�L������I�V1�L��L���	������I�V1�L�����I�V1�L��L����������A���L��N���1��,���H�SH�PH�BH�C����I���
�GI�����������L���p���L��H�D$8�c���H�D$HH��$�H��tH�SH�BH�PH��$�H�C�D$(H��H�\$PL�t$XL��������1ɺI��H��$�L��I�D$L�`1�L��$��i���H��$��L$L��H�t$0H�PH�BI�WH��$��̓��L�D$8��L��1�1��!���H��$�I�oH�PH�BH��$�H���9H�uH��H������(�-D�t$(L�|$@�3fDH�{�W���H�CI��I��4��H�|$ L���	��H���H�3I�}H��H� ��H��H�;1����H�3�H��1�L��1��]���H��$�H�PH�BH��$�H�H������:��H�t$1�H��L��谒��H�uA�L��1���&H�����H�3M��H��$�L��H��H�PH�B�2H��$�1��ȅ��H��$�H�m H�PH�BH��$�H����H�]H�3H��H������9t]��:�����E1��
���@H�{���H�3�L��H�CI���1�H���M���H��$�H�PH�BH��$�����L�{D��������A���zI�����t(A�������A���1���A������"���H��/L��H�0���H������H�3�;�����/�G����#H��1ɺL��1�葄��H�t$1�L��H��$�H�PH�BH��H��$����H�u�1�A�
�&L��H���E���H�uM��L��H��$��H��H�PH�B�2H��$�1�����H��$��D$(H�PH�BH��$�M� M����I�I��H��I����D���$���H�|$H1ɺD��H��$�H�\$PL�t$XH�GH�x1�H��$�L��艃��H��$��L$L��H�t$H�PH�BL��H��$����L�D$8�D��1L��1��A���H��$��L$(H�PH�BH��$�����
H�CH��$�H��tH�PH�BH��$�H�CH��$�H��tH�PH�BH��$�H�|$8H�|$A��H�GH�xH�{黔��H��,����D�t$(L�|$@���A�����������L��H�|$ L��H������H�3����AGH�|$`���f��f.�{cA�������A���^���I������B����L���H��I9��0L���H��?H)�L��H��H	�H��H�D$(�~D$(�u��D$`���f/�vf/��������I������E1����L���+���1ɉ�I��L��1�蕁��H�SL��H�PH�BH�C����H�����jI��A�
�%L��1��X���H�SM����L��H�PH�BH�CX1�Z�3�-���H�SH�PH�BH�C���A�}L��u%��
f�H���H��t+H�z(�1����&����
H���H��u�H���0H�H��H�H��H��I�EH�xH� tH�xH�.1��'��H�I���H��I���H�0臅��H�H����p���1ɺ
��L��1��@���H�S���A�	L��H�PH�B�0H�C1�����H�SH�|$A��H�PH�BH�C�D$������1ɉ�L��1�����H�SH�PH�BH�C�Ƒ��A���E����|$8E����HcD$ E1�L�t$@D�t$8H�\$(L��H�DH�l$HD��H�D$�D�CdL�L$�1��D��L��E)�A)��Mc�O�D�G��H��$�H�PH�BH��$�D9�u�I��L�t$@H�\$(H�l$HA���D|$8��D�|$����I�V H��$�L��$�L���*H���+��D$����L��H��L���鯸��I�VL�D$(L��H��L���H�C鶝��H��$�f�HDŽ$�)�$�H�D$H��$�M���߶��H�T$ 1�H��L��1�����<���1ɺ ��L��1��=~��H�S���A�L��H�PH�B�"H�C1��~��H�SH�PH�BH�C�����1���A�L����}��H�S1Ƀ|$ H�PH�B�H�C��A����L��1��}��H�S1ɉ�L��H�PH�B� H�C1��}��H�S1ɉ�L��H�PH�B�H�C1��\}��H�S1ɉ�L��H�PH�B�H�C1��9}��H�S���A�L��H�PH�B�#H�C1��
}��H�S1ɉ�L��H�PH�B�H�C1���|��H�S1�H�PH�B�H�C��L��1���|��H�SH��E1�D��$�L��H�PO�L	H�BH�Cj����D$ �#���L��H�M�G1��v|��H�SH�PH�BH�C���H�J�0H�H��H�L��H��I�EH�xH� tH�xH�v1�7��1�1ɉ�L��L�D$�|��H�SL�D$H�PH�B�5���I���E�Cd��L��LcL$ ��L�\$ D+@1�Mc�O�L	O�D�{��H��$�L�\$ H�PH�BH��$�H��0H���]L�\$ H��E1�H��jA�����L��H���*I���H�@xD�XE���]1ɺ/��L��1��3{��H�S�(I���H�PH�BH�C�Bx��D�T$H�@H�S�L�`�@ ����H�PH�BH�CE���ی���
1ɉ�L��1���z��H�SH�PH�BH�C鳌��H���0H�H��H�L��H��I�EH�xH� tH�xH�x/��������I�6�L��I���1�H���Kz��H�SH�PH�BH�C�6���I���H�@x�0����	Mc̺4M���Mɉ�L��1�I���y��H�SH�PH�BH�CH��$�H��tH�SH�BH�PH��$�H�CI���H�@x����~��M�5���M��L��1�I���y��H�SH�PH�BI�GL�xL�{�A���z�?��I�H������7�,��H��$�H��tH�KH�AH�HH��$�H�CH�B(��ML��]��A����L��1��y��1ɉ�L��H��$�H�PH�B�H��$�1���x��H��$�H�PH�BH��$����L���fDH���H��t+H�z(�k
����`
���$���H���H��u�H�b�0H�H��H�H��H��I�EH�xH� tH�xH�<&����#M����L��1�� x��H�SH�PH�BH�C�e���A���L��1�L�\$8��w��H��$�L�\$8H�PH�BH��$��-���1���A�L���w��H�S1Ƀ|$ H�PH�B�H�C��A����L��1��nw��H�S1ɉ�L��H�PH�B� H�C1��Kw��H�S1ɉ�L��H�PH�B�H�C1��(w��H�S1ɉ�L��H�PH�B�H�C1��w��H�S���A�L��H�PH�B�#H�C1���v��H�S1ɉ�L��H�PH�B�H�C1��v��H�S1�H�PH�B�H�C��L��1��v��H�SH��E1�D��$�L��H�PO�L	H�BH�Cj����#M����L��1��Lv��H�SH�PH�BH�C�k����@�r���I�K���2���H;�$��X���H�FD�B�I��N���H��H9H��JI9�u����f��H,�L�|	��A����L��"1��u��H�S1ɉ�L��H�PH�B� H�C1��u��H�SH�PH�BH�C���H�D$ �uH��L���r��I�61ɺL��1�H���Xu��H�SI�6L��L�L$HL�D$ �H�PH��H�B�7H�C1��#u��H�SH�PH�BH�C��H��雫��L���~x��I����(I��H�CI�D$L�`L�c�	r��H�@H�S�H�@�h H�PH�BH�C����L�T$���A���L��A��1��t��H�SH�PH�BH�C�j����#M�D$��L��1��Ot��H�SH�PH�BH�C鯯���"A���L��1��t��H�SH�PH�BH�C��$���M�D$��A��Ʒ��H��L��� ����#��I���`H��`���H�E��`H��`���H��L��茼�����E1�I�V1�H��L���#���O�$�01�I�����L���us��H�SD�D$H�|$H�PA��H�BH�CE���M����1ɉ�L��1��:s��H�SH�PH�BH�C�%���H��0H�H��H�L��H��I�EH�xH� tH�xH�(����D$ �O����1ɉ�L��1���r��H�SH�PH�BH�C���1ɉ�L��1��r��H�SH�PH�BH�CM��tI�GL�xL�{I�V1�H��L���~��A���L���1��Or��H�S1ɉ�L��H�PH�B� H�C1��,r��H�SL��H�PH�BH�C�����L��I���
1��q��H�SH�L$��L��H�PH�B� H�AH�H1�H�K1���q��H�SH�PH�BH�C���E1�鿺��H�z�S���H�JH�H������:�<���I���H�x0�*���H�@x�x����H�y��I��I�F H�@L�`A��uL��L����m��I�V1�H��L����}��I�F 1�H��L��H�@ H�P�}���|$��E1�E1�1ɺ��L����n���FM���I���L��1���p��H�SH�PH�BH�C�q���I�~ �X���H�|$ �L���H�Ax�x�>���H�z�%���I�ĨuH��L���#m���+1�M����L���jp��H�S�|$H�PH�BH�C�O����1ɉ�L��1��<p��H�SH�PH�BH�C�'����
1ɉ�L��1��p��H�SH�PH�BH�C����H��$�H�L$H�L��L�t$XH�\$PH�AI�6H�H1�H��$�1�H���o��H��$��|$H�PH�BH��$���I�6L�D$8��1H���7��A�L��1���ho��H�SH�PH�BH�C�+���I�$��`H��`���L��L���������H�=�Z����L�\$ H���0��H��L���E���uI���`H��`��H��e���(A�!��L��1���n��H�SH�PH�BH�C�r�I�V1�H��L���7{���01���A���L���n��H�SH�|$A�ǃ|$H�PH�BH�C�f����1ɉ�L��1��Sn��H�SH�PH�BH�C�>���L���q��I���[��1ɺ
��L��1��n��H�S���A��L��H�PH�B�0H�C1���m��H�SH�|$A�ǃ|$H�PH�BH�C�����1ɉ�L��1��m��H�SH�PH�BH�C����H��I������zPM�A��@I�������E1��<����H�=�X�.��L�\$8H�ʒ0�i�I������L��1��3m��H�SE1���L��H�PH�B��H�CIc�ARL�jI���k��H�SH�PH�BH�CA[A_���E1��9�E1����I�6�
1�L��1�H���l��H��$�H�PH�BH��$�����1�E1�L�t$ ��H��L���y��M�v A��M��tI�VD9�~�1�H��L����x����A9�}9E1�D)��,I�7�
1�L��1�A��H���5l��H�SH�PH�BH�CA9�|�L��H��L���RH��A��H�|$��A!��}��H�E��`H��`�����H��L��辴�����Գ�H�=E!H��1�裦�H�=l 1�蕦�谳�H�=�!H��1����H�=e1��q��H�=b 1��c���~��H�=
H��1��M��H�=t1��?��I�~�V��H�=�H��1��%��1ɺ ��L��1��2k��H�S���A�L��H�PH�B�"H�C1��k��H�SH�PH�BH�C������H�=�H��1�軥�I�~����H�=c H��1�补�AWAVAUM��ATI��UH��SH��H��H�2I��I��A��A�F�S��H��$I��Hc�H�>����
M����躲�H�uI��H����L��1��;j��H�SH�PH�BH�CH���[]A\A]A^A_��I��I�VE1�L��H��L���8���M�GM���;H�u�3�1�L��H����i��H�SM�v H�PH�BH�CM��u��M���I���H�uA�H���F���DH���
1�1��~i��H�SH��E1�H�uA�H�PH�BH��H�CAU��%�L��1��<i��H�SH�PH�BH�CXZ���D����fDH��1ɺ
1��h��H�SH�PH�BH�CH�E H�x�Q��H�uH��A�	I��AUH���u���DH��1ɺ
1��h��H�SH�}H�PH�BH�C���H�uH��A�I��AUH���)���f��
H��1�1��^h��H�SH�}H�PH�BH�C���H�uH��A�
I��AUH������f�H��1ɺ
1��h��H�SH�}H�PH�BH�C�e��H�uH��A�I��AUH�����f�H��1ɺ
1��g��H�SH�uA�!H�PH�BH�CH�EL�1�A��5��H��H��I	�AUO�L	�,���@H�y��H�UE1�L��H��L�����H�uM�GL���31�H���8g��H�SH�}H�PH�BH�C���H�U1�H��L����s��������fDA�A��#t!E1�A��guH�EE1�H�H������[A��I���H�U H��tKE1�L��H��L��D�L$����H�uM�GL��3�1�H���yf��H�SD�L$H�PH�BH�CE���+H�UE1�L��H��L�����H�uM�GL���31�H���&f��H�S1�H��L��H�PH�BH�UH�C�r��H�}�l��H�uH��A�I��AUH�����H���
1�1���e��H�SH�uE1�H��A�H�PH��H�BH�CAU�R���f�H�ђ/�H���L�1��e��H�SH�PH�BH�CH�}���������fD�
����fD�����fDH�u1ɺL��1�H���e��H�SH�}H�PH�BH�C�n��H�uH��A�#I��AUH�����L��D�L$�Uh��D�L$I�G�����Bh��I�G�L���f�L���(h��I��I�G���ff.��AWI��AVAUI��ATUH��SH��XL�v���I�A���&H��D$��g��H��H����g��H�u H�=�I��H���H�t$�H�D$袥�H�t$H���ŕ�H���y��1�1�1��\H�D$�h��H�L$E1�H��H�T$A�H���`���S,H�t$ �����S,A�T$,���A�T$,I�VL�sH�SH�ZI�^I�UI9�HD�H��I�T$L�bM�eI��H�D$8I�GH�D$ H��H�\$(L�d$0H�D$@���H���H��H�z���D�\$H��XD��[]A\A]A^A_�f.�AWAVM��AUI��ATI��UH��SH��H��H�2H��H������:a��9��������ua�Uf��H�UL��I��I��H��L�����H�CH�UM��L��H��L��I�GL�xL�{�x������]tU��^����\��1�H��H��L���n��H�u�31�M��L��H���Jb��H�SH�uH�PH�BH�CH��M��1�L��1��b��H�SH�PH�BH�CH���[]A\A]A^A_���ke��H�UM��I��H������f�H��M����AVAUI��ATUH��SH�� L�"L��H����������g����n��H�EH�XH���~������v!f.�H�[H���������w�H�C(I���"L��D��L�0A�FD�@1�E�FMc�O�D�a��H�SH�XH�PH�CH�PH��tH�BA�F���1�D��L��1���`��H�UH�PH�BH�EH�� �[]A\A]A^�Df�H��L��)$H�D$H�t$�m��H�T$H�BH�RH�BH��tH�PH�D$H��t�H�UH�BH�D$H�PH�D$H�E����A�n�D��L��A��1��`��H�SH�XH�PH�CH�PH��tH�B�1�D��L��1���_��H�SH�XH�PH�CH�PH�����H�B��������f�H��t+ATI��UH��SH��H�R ���H�SL��[H��]A\����f��ff.�@AWAVAUE��ATU��SH��H�H�t$(H��H��H�|$H����H�T$L�D$ �t$4��)��H�D$`�D$8A�1�H�D$fDH�D$L�|$E1�f�)D$`H�D$xD��E��M��H�D$pA���gfDH���GE��tH�E1�H������9A�ă�uI�~ tBH�t$H�|$D�����-k��A��M�v A�����M����I�V��u�E��u��H�|$ t�H�H������+u�L�RM��t�I�H������(u�I�rL����H�H�qH������(��	H���^���H�H������9�K���H�F<t#��;���H������/���H������ ���H�A H�H H��u�I�RL�T$X������D$<��H�H�<��M��L$<E1ۉ\$PL�T$XH�x�l$TD�ۉH�L$ L�t$@L�t$L��H�D�d$LL�d$D�l$HI��H�E L��L��H�PH�EH�HHcÃ�I�L�1��i��H�E H�h H��u�A��D�l$HL�t$@D�d$L�\$P�l$TD9\$<�b���H�
X��	H�5�H�=��0��D��M��E��A�Ń���E����E����L�|$H�|$�����H�Ĉ��[]A\A]A^A_�@D��M��E��M� A��M��t�I�G E1�M�H�D$E��uS���c������u�H�D$hH��t�H�L$(H�QH�BH�D$hH�PH�D$xH�A�n���f�L�|$E1�E��t�H�D$hH���Q���H�|$(H�WH�BH�D$hH�PH�D$xH�G�-���Ic��9��I��H�D$I9�t:�\$<H��DH�CL��H�p����H�[ I9�u�H��H�\$�\$<H����L�|$I�WH�H������9��I�G H��t}H�@H�H������9t9�h�I�WH�H������9uHI�G H��t?H�@H�H������9u,H�rL�����R��M� L��I�GH�p�>��M� M��u�L�|$A��uKI�����tBI��ƒ���tH�€�I�~I�t
��uL������H�D$L��H���H�x����L$8���C�����t$4H�|$�1��M���nZ��H�L$(�D$8H�QH�PH�BH�A���1�E����������k�������H�|$�A�1���Z��H�|$(H�WH�PH�BH�G�R���E����D$8���=McƋt$4H�|$1��O�D���Y��H�T$xH�PH�BH�T$hH�D$xH��tH�|$(H�GH�PH�T$hH�BH�D$xH�GM�����t$4H�|$�1�A���_Y��L�t$(�t$41�H�|$I�VH�PH�B� I�F1��3Y��I�VL��1�H�PH�BL��M��I�FL�t$L���e��H��A�E1�j����t$DL���W��I�WH�PH�BI�GAXAY�D$8����McƋt$4H�|$1��O�D��X��H�T$xH�PH�BH�D$x�D$8����H�D$h�D$8H�������H�|$(H�WH�BH�PH�D$xH�G�������M��L�t$�t$41���L���(X��L�|$(�t$41�L��I�WH�PH�B�I�G1��W��I�WH�PH�BI�G�5���M����|$8�V���L�t$�t$4�1�A��L���W��H�|$(1�H�WH��H�PH�BL��I��H�GL���d��H��E1�L��j�t$D���A��V��I�WH�PH�BI�GH��|0ZYH����H��H��A�E1�jH�|$ ��t$D��U��H�|$8H�WH�PH�BH�G^_�D$8�F����t$4H�|$�1�A����V��L�|$(M��L�t$�t$4�I�WL��H�PH�B�I�G1��V��I�WH��E1�A��H�PH�B��I�Gj����t$4H�|$�1�A���WV��L�|$(M��L�t$�t$4�I�WL��H�PH�B�I�G1��"V��I�WH��E1�A��L��H�PH�B��I�Gj�t$D�T��I�WH�PH�BI�GXZ�"����t$4H�|$�1�1��U��H�T$xH�PH�BH�D$x�#����t$4H�|$�1�A���U��H�|$(�t$41�H�WH�PH�B� H�GH�|$1��\U��H�|$(H�WH�PH�BH�T$hH�GH��tH�PH�T$hH�BH�D$xH�GH��A�N��E1�jHcɋt$DA�H�|$ H�L	�S��H�L$8H�QH�PH�BH�AAZA[�S����D$8����H�|$��1�A��T��H�L$(H�QH�PH�BH�A���H�=�?�W��H��y0�8���H�
���	H�5H�=謜�ff.��AWf�I��AVAUATI��USH��H�t$ L�L$@L�D$)D$ H�D$0)D$@H�D$PH�t$8L�L$XH���gH��H�:I��H��H������K�{H�D$`1�H�D$H������G����F�6��(��L�D$E1ɹL��L��H����Lc�O�l-A���~:�I�7�1�H��1�A��H���\S��H�T$XH�PH�BH�D$XD9�u�H�D$HH��tI�WH�BH�PH�D$XI�GA�$tH�D$(H��tI�WH�BH�PH�D$8I�GH�ĈL��[]A\A]A^A_���H��I�V1�L��H��A��X_����I�6�M��H��1�I��H����A���R��I�WH�PH�BI�GA�$���I�FH�t$f�1�I�VH��L�L$L�(H�t$x)D$`H�D$pI����^��I�6A��L�L$H��H������F������M�H��I��A��H��1��R��H�T$xL�L$H�PH�BH�D$xH�D$hH��t$H�T$HL�HH�D$HH�D$xH�PH����H�B��A�$M�vA��(��M����I�>����fDA��_���DL�L$H��A����V���f�H�R1�H��L�L$��]��M�vA�$L�L$M��tHI�>�W���f�H�D$X�i���E1�E1��L��L��H����H�L�lI���s���A��h���H�D$HA�����ݘ�H�=��H��1�謋�ff.��AWf�AVAUATUH��SH��hH���H�|$H�pHH�D$ �T$)D$ H�t$H�D$0H�D$8H���:H��L�d$@f�H�{�5f�H��)D$@)D$P�S��H��I���S��H����L�d$XI��L�k�GM���DI��I�MH��u�I�ML�8L��H��H�@H�SH�H�I�EH���M�uH�PHH�D$XH�I�FL�pL�t$X�E\��H�D$XI�GL�xH�D$HL�|$XH��tH�T$8H�BH�D$HH�PH�D$XH�D$8H�[H������H���H�t$H�D$(H�rHH��tH�t$H�VH�BH�D$(H�PH�D$8H�FH��h[]A\A]A^A_���D$��u��fDAWAVAUI��ATI��UH��S1�H��L�BL�r I����A��uI������tA��������H�2��L��1��H���N��H�UH�PH�BH�EM��u7A�]H���[]A\A]A^A_�1�L��H��L����Z��M�v ��M��t�M�~I�H������:u�I���c��I�7�L��I�GI���1�H���N��H�UH�PH�BH�E�L��H�T$�c��H�T$I��H�B�&���fDATI��UH��SH��H��H�L$���LcD$I�4$1��H��H��O�D�M��H�SH�PH�BH�CH���[]A\ÐH��SH��H��H��H�փ���UtOH�H��tH��1���Y��1�[Ð�H���1�A��5M��H�SH�PH�BH�C�[�fDH�Iz/�H���L�1��L��H�SH�PH�BH�C1�[�DATI��UH��SH��H��H�H��H������Tt��Uty��2tdH��1��:Y��[�]A\�H��H�s���H�{��H�3�	L��I���1�H���mL��H�UH�PH�B[H�E�]A\�H�{�f.�H��1ɺ1�H���+L��H�UH�3L��H�PH��H�B�H�EH�8y/L�1��K��H�UH�PH�BH�E�M������SH���cD�C8E��t+L�S01�L�
mD��I�4�HcH�<�A�H�>D9�r�[��AWE1�AVAUATI��UH��SH��hH����?H�@x�W�D�x��v�PE1҅�A��I�\$D�HE��E1�D�XH����
D�$M��E���@��tsH�[H�������u�E����E����E��t΋S���J�����u�H�S(H�RH����H��u��CS�C �@�C,��<��<�v���H�[A��DD4$H���m���I�ZM��H����E1�E1�E1��FDI�|$��O��H����O��H�}H� ��H��H��D��1���|�H�[H��t7�������t��o��u��{ �t�H�[A��A��H��u�Ic�Mc��h��L��I���X��Hc}p�H�D$�5��Hc}t�hH�Eh�3��M�l$H�ExM���&�D$,E1�L�%W�D$�D$D�$H�l$L��A�E�������"���M�mM��u�Hct$,I��H�l$E��H��D$DL�}0�D�U8H�|$�E�'��]<H�EP�A��E1�����@�{*���H�C(H��P�����H����
���v
����H�H��A�H
��H��!�7H����qL�T$�JD�\$f�H��H����G��D�\$L�T$�Y���fD�C��1�	H�{(H�SH�f�H�qH��u�DH�vH��t
�����w�H���������H��w�DD�E�A�A��v	H�@H��u�H9��qD�FH9���A��1��H�F(H�H9������H�H���o����HcCH�==D�sA��D<��T���@D�{�C$�@����A�EI�](��W� H�=���Hc�H�>��@�,$H�Ic�H�=K/H�D�H��H�Nj<�H�Ή|$0�G�A9E �?
H�D$P�	A�1�H�D$8B�7�D$@��t{D��L�l$ I��I��D��H��A�ƍA�<�|fD��Ic�L�>��I�t�B�D5H�I�4�@���.H�|$�$C��Ic�A�����u�DL�l$ A��L��A�E;D$tHcT$,H�\$H��H�Ӄ��BD�2�L$,�t$D�$�D$9�L�Dt$0�t$D�����I�T�H����H�R ��I�L��A$��u:H�D$ �pH�D$H�xH� �fH�H���1�H�L$H�_x�H�L$H�y(����AB�T5+D$@Hc�H�I���9f�I�|����H�|$HcЋOpH��HWh9���B�D5H�I��Ic�A����������A�<�����H�l$L�l$ H�}A�uH� ��H�H�
�1��w�L��詎�H�|$蟎�H���L�rI��� ��H��I��HDž��Ã�����E1����x�j��H���I�ʼn�f�H��I���I��M�A�T$H�SH��RA�T$H�SH��RA�T$H�sI�t$H��t@��uH��H�$��@��H�$H�S H���IH��H���rH��L�q �R(�Q$A�L$�΃��	t��uH����A�T$L���A��E;}�Ic�I��H� �6���H�[ �1���DI�|����B�T5Hc�H�I���K���B�D5I�|�H�I��H�L$H讳�H�L$HH��!����I�D��t$0�l$XH�T$8�t$\H��H�50>��H�D$PH�D$H��H�D$H�u8H�����t0H��у���t#H�р�H�xH�t���&f.�B�T5H�@Hc�I������I�T�B�D5H�H��I���w����I�T��[���fDI�D�H�|$HcP\�oH�RH��H�WxH���oHI�oP Q �oX0Y0�o`@a@�ohPiPH�P`H�Q`�Wt9P\�B�D5H�I�����f.�A�E(����3�$���I�E1�H��t�P(A�E �����$)х���;D$tHct$,H�\$H��H�4���FD�6�|$,A�vIc�Hc�A��Hc��$H�D�$�D$H�L��p����H��n�����$�c����H���h����;$�V;D$tHcL$,H�t$H��H�΃��AD�1�|$,A�NIc��$A��HcɉD$H�D�H�D������$�A(�e���D��uH�x�������f�H��A�D ����fDH���H�B���t6����A��~)H���H�BH�4��f�H��H�
HcIH�
H��H9�u�H��肺�H��h[]A\A]A^A_�1�H9������DH�CH�PH���I���H�B�@���fDI�vM�v HDž����R���������M���H�=�1��Y��f��$A�E(���@�$����A��/��L�KM�����A�1����L��vH�vH�����>����w�~�|$��2�����H�~(H�|$H�?�
D�A��A��v	H�H��u�H9��[�1��|$2����2�FH�D$H�I�QH��tL�J�C�P΃��5H�K(H�H�@H���-��0�V���v�H�@H�����8�W���w�x1���H�@(H�H�����H�S(H�H��tcH������CW�C �~�fDH�S(H�RH��tbH���`��CU�C �M�DH�������CV�C �%�D�CR�C �
�D�CT�C ��DH�;�`��$I�](��)�A�E�$������/���A�����H�CH��u����H�@H�����8�W���w�P�Jԃ�v	��*���H�@(H�H�x���H ��f.�E1�1���fD�Ɖ�H�=��1��>x�fD�pXH�=��1��'x��L�N(D�F H����0�CH��L�T$0D�\$,L�L$ D�D$H�L$�D$�4:��D�D$L�L$ �0H���H�L$H�@�@/�D$H��D�B �BD�CL�J(�B$H�T$D�D$��9��H�T$D�D$H�@H�s�D�\$,�@H��L�T$0D�@H�@ H�@(H�rH�KH�JtH�VH�JH�sH��tH�VH�HH�PH�BH�PH�������!��C,����,$���H��$+J�R����)щ$��H�����H�D$H����H�{����H�;�!��H�{I�����$��B�T;�I�](Љ$A�E�t�H�;���I�]()$A�E�\�$H���+Q�$�H�H��J)$�:�H�;趶�I�]($A�E�"�L�T$�HD�\$���f�H�8��#���L�T$�ED�\$��H�H��%H��k�����H�5/�Hc�H�>��L�T$�DD�\$�y�L�T$�>D�\$�e�L�T$�=D�\$�Q�L�T$�BD�\$�=�L�T$�@D�\$�)�L�T$�CD�\$��L�T$�AD�\$��L�T$�?D�\$���L�T$�;D�\$���L�T$�9D�\$���L�T$�8D�\$��L�T$�:D�\$��L�T$�<D�\$��f�H��Q��H��q����L�T$�KD�\$�R�I��H�l$L����0?��A�M A�uH�EH�xH� tH�xA��H���1��"l�L�����H�|$����l�1�1�E1��D$D�2�L�T$�LD�\$���L�T$�ID�\$��H�=$�1��t�H�=B�1���s��"�����f���AWf�AVAUATUSH��L�o H�l$P)D$PH�D$`H�l$hH����I��H�6H��H����t0��e��A�}��A�EH�i�Hc�H�>���I�t$L����1��I�D$ H���=H�8H�H H��H�L$����A�LH�D$�@A�����~A���H�D$�D$4H�@ H�D$ H��u�D$4H�D$ H�D$H�H(H�L$H�HH��t^A�u`I�UX�������~/H;
��H��1���H��H;J�t��9�u����A���H�D$�@A���A���H�D$L�x@M���\�E1���l�\$(L�d$8H��M��H�D$�
�A��L����:��H��H��I��H���s��H�D$hH��L��I�T$�I�GL�xL�|$h�C��M�d$ A�NM��u�L��L�d$8�\$(�L$8�i:��L�|$A��H��H�D$(H��L�����H�T$(H�D$h��L$8H�BH�PA���H�T$hIc�H��H�T$(�%��H�T$(I�I�wI���H��H�L$(�� �L$8u	H�|$H�w H�ljL$(�k��E���L$(~"I���H�BH����H��H�"�H��H9�u�H�|$趐�A���H�D$L�p0M������bk�1�I��訅� �A���H�D$(�\��H�L$A�u`I���H�Q8I�MXH�z�������~-H;9��	H��1��fDH��H;y�t��9�u����E1�E1ɉ\$8L��L�d$@M��E��E�ΉP�D$�Vf�H�H������\������]t1҃�^��A��H��L��A��H���D�0�U��M�m M��t I�EH�PH���u�M�m �D$A��M��u�H�D$I��E��\$8M���L�d$@H�@8I�uXE�H�HH��tGA�}`�������~.H;��H�V1���H��H;J�t��9�u����A�FA��� �D$I�?A�FA�FD)�H�H��I�F�� �H������͏�1�I��4I�FL�L$(�7�H����H9��H��H��M���I9�M�@HDƃ�I��I�Hc�� u�I;W��I�G ��DI�T$H��L��1�A�T$A�E������I���1ɺ/L��ph1��3��H�T$hH�PH�BH�D$hI���H�8��H�Ĩ1�[]A\A]A^A_�@L���0-���L��H��L����?���z����H�I�E`1�L��H��L���?��A�E�����T���f�1�A�A�1���L����2��H�T$h1�L��A��H�PH�B�0H�D$h1��2��H�T$hH�PH�BH�D$hI���H�8����H��L������
���DL���P,���I���I�}H��H� �#H�A�)H�
��H�k�1���d��q����A�E�����������qI�T$1�H��L���>���4���f�1�1�H��L���q>��H�I�E`����fD��9u;H�R�������H��H��H�T$H�F.��H�T$H�j���@��\���fDL��H��H���>��H�T$(�9���L�t$I�~8teA��� � ��ū�I�V8A�u`I���I�MXH�z�������~+H99�
H��1��@H��H;y�t��9�u�����PH�D$H�H��t�H��L���j=��H�D$H�PH��t�H��L���L=��L�D$ M���nA�u`I�EX��~#H�8L9�tRH�H1��f�H��L;A�tF��9�u�A���H�
���FH�5�H�=��ADž������x�D1�fDA���A���A�����u
��A���H�|$t9H�T$H9�t H���@H��H;P�t��9�����A���@A���L����'��A�E�������A����>u"A���u�\$4��u�ȀA���fDI���L���	3��M���L��H�CI����2��H��I�F A�G,���A�G,�C,����C,I���H�@xD�XE���H�D$hI�GI�T$1�H��L�xL��L�|$h�;��H�D$hH�CH�XI���H�\$hH�@xD�PE����L�d$pM��H���I��L��H�D$pL�t$xH��$�HDŽ$�L��$��S��I���H��H�z�Н�L��H�D$p
L�t$xH��$�HDŽ$�H��$��	��I���H��H�z膝�����H�|$�Y���A�u`I�EX���5���H�8����@I���H�@xD�HE��� I�T$1�H��L���~:��I���H�@xD�@E������I�4$A�	H���(�L��1��-��H�T$hH�PH�BH�D$h����DI���H�@x�x����I�T$H��1�L���:��I���H�@x�p�������I�4$A�!H���f.�I����H�������I�}(�g��(�L���A�1��,��H�T$hH�PH�B���f�I�}(�'��(�L���A�1��,��H�T$hH�PH�BH�D$h���@I�}(���(�L���A�1��{,��H�T$hH�PH�BH�D$h���@I�4$�(�1�A�L��H���>,��H�T$hH�PH�BH�D$h�=���1����1��o�1����1�����H�=J�1���f��s�H�=��H��1���f����H��H��t��AV�AUATUSH���8�@��S8H�s0H��H��H��覂�C8��H��tIE1�H�-.�E��N�$���1��fDH��H��Xt.Hc�L;$�u�H��Dl�J��D9k8w�[]A\A]A^�fDL��H�=~�1��e�ff.�@��Hc�H��1/H���ff.�f���ATUSH��1/L����u�H�=?�H���f�H�;H���4��H���<@��H��H�����L9�u�[H��]A\�0q���AWAVI��AUI��ATUH��SH��(L�D$L�L$@���H�=(1H�D$ ���H��赙�H��H���*n�H�=�wI����H��莙�H��H���n�	H�=|�H���ϣ�H���g��I�Uf�HDŽ$�I��H��$�)�$�H�D$XH��$��� ��H����Hc�H9���A�V`H�׾�T$H�T$���H�T$M�MDŽ$�I��I�FXA�F`D�D$��A�Fd1�����L�d$M��H�\$L��H�l$(D���0fD@����H�Hc�$�H��H�<ÍB��$�9�}9L��I�E uI�U H�H�<�I9�u���$�H���B��$�9�|�L�d$H�\$H�l$(�H�=9�腢�H�����I���H��H���{3����tA����H�=��N��H�����I���H��H���D3����tA����
H�=�����H��诗�I���H��H���
3����tA����
H�=�����H���x��I���H��H����2����tA����H�=��詡�H���A��I���H��H���2����tA���@A���YA���oD������`L��H���H���OA���EI�<$�������S�� ��H����Hc�A��H9��&�O������A�����	�A�����(���
��� �؃����H��H���H�������H��Ѓ������ �H��H����H�D$H�D$�D$(H��H�H9���A���� ����L�|$�H�=)�I���D�8�7��H���ϕ�I���H��H��H�y�)1��I���I�VX�A+H�H��H�AE����H�CE�o�H�l$0E1�H�D$H���o@H�T$J�<�J��@��t%@����H�������������|HAH�����I���E�L$H�I�G�AM9��PI��E��E��H�E u�H�U ��H�
y�H�����]�H��耕�H���-����I���������I���!���M�������H�QQ/L��H�5��H�81��Y�D��u����H���������H��t,H������H�Q/H��H�5��H�81���X���uݾH�=q�肞�H�����H��H���h�H��uA�����H�=M+�P��H�����H��$�H��H���E/����t"I���H���=��$��PA��� L��E1��T��L�l$D�|$I�EH�D$(H��$�H�D$0H��$�H�D$8�f�H����H9���H�D$(H�<�H�
�]�H��]�\�H��$�H��� ��H�x��L�x H��H0I�/H���VH9��H;-�H0� H;-�H0�#H;-�H0�&H;-�H0�)H;-�H0��A�
I�H��tI�����K��H��H�l$ I�WL��H����&��I�WH��L��H�D$��&��I�W H��L��H�D$�&��I�(H���e�H�D$H�t$0H���L��$�H��H��$H��$�H�D$H��$H��H��$�C��I���H��H�z��H�D$8H��$��D$H��$�I�EHcT$�� �T���I;U�*I�E �V�����H�=o��H��藑�H�=eH�lG0�ߛ�H���w��H�=z�H�DG0进�H���W��H�=��H�G0蟛�H���7��H�=�H��F0���H�����H�=��H��F0�_��H����H��F0H��F0H9����A�����DA�����DA����DA�	���DA�����DH�L$@H��� �?H��H����H�=$F0H�L$(H�D$�AH�|$��
E1��D$M��M���cf.�I������eI�.������rD����L$@�N����H��� �zH����Hcʼn�H9��?��A����D$xI�FH��uI�F L� H�=eE0H��$�L���=S����Hc�$�H�
��;�t'I�H� ��H���t$H�	�1��R�T$I���E1�H�D$0����H�|$0�0H��$������L$H��$���H�L$H�@�XH�PL�`(�H �@$H�BH��$�I��L;l$�	H�D$(N�4�A��t(A�������A����
L��茚�D$�fDH�t$ L��L����"��H��$�H�PH�BH��$��fDI�n����Hct$H��H�����L�l$hM��I�čE�1�H�D$PH��$�H�D$`L�d$HH�]L��H���y[�H�
R�I��H��$�Hc�$����Q��L$89��}H�
f"/H���(�B�<w`H�
\���Hc�H�>��L����b�I�H� �gH���t$H��H�#�1��P���f�H������‰D$@H�YK/�T$@H�5;�H�81���Q�@I�U�$��H�D$@H�=�B0H�H H�@H�L$(H�D$������&x�E1�H�=
�H�-E$/H���J�|��o�H�����L��H��I��H���Lc�I��Xu�H��B0�n���f.��|$(H��H�l$0D)�H�L$0D�L$���l���Hc���x�H�L$0D�L$H�AD9L$(�F����D$Mc�H�KH�l$(N�,�L��H�L$��M��D)�I�DI��H��H�D$J��I����H�D$N�<0H�
rV�H�mVL����T�I��� ��H����H��u[I��I�?A�4H���L�`�~��M�I�$H���H�HL�N�<1I��L9t$��H� �q���H�C �m���H����I�I��M�?�f�I�GH��uM� �v���DH����M� I�?I���ÐH�����H�CH�D$��f�I�|$�V�fDI��H�l$(����H�D$HL�$�A��uDL��L������7I����H�D$HH���H�t$ L��L�����H�L$HH��DH9l$P�yH���u���L��A�����k��H��$�H�L$HH����H�D$HL��L�$�A���H�
[�A9Ep�H��$�@���.� ���A�Ep�H�
��H�Ѱ�L����R�H�L$HH���^����i��E1�H��I��H�D$8�f�H�
O/�H��$�H�H�9TH�
+T�R�H��H��$��̉�H�\$pH�\$ H�l$xD��M��H��$��ODH����H9��H��L�$�UH��L���Hc�H������L��L��H��H���6o�H��$�H�Hc��� u�H;p��H�@ L�$��H�
��H�ɯ�L����Q�H��H��$�贉�H��蜑�H�L$HH���>���A����M��I�H�D$HL��� ���I���H�H�=*����H��譈�L��H���"]�H�=T�H��$����H��聈�L��H���\�	H�=-�H�D$p��H���X��L��H����\�H�=�H�D$x藒�H���/��L��H���\�H�=��H��$��k��H�����L��H���x\�H��$�H�D$8I��H���DŽ$�H�D$pH����H�D$x�D$pH����H��$�H�D$xH����I����I��� �XH����H��Hc�H9���D�b�H��$�Ic�H�<��m�H��$�H��H��$������D��I�wL��$�E1�H��H��$�L��H��$�I��L��I��L��$�I���L��H� uH�C L�4(L���t��M�t,H��I9�u�L��$�H��$�H��$�L��$�H�L$xL��$�L��D��$��T$pH�t$8����H�L$HH�����f�A�����or�DŽ$�I���E�����M�|$H�\$L��1�L�d$ L��H� uH�S H�L��L��H���_��Hc�$�I���H��F��$�D9�|�H�\$�K�M��H�\$ L��H�5�!��H���Y�H���~��I���H�8�
I���H��([]A\A]A^A_þ �腐�I�����H�D$`H�\$pH�l$xH��$�H��$�H�L$HL��H�D$8H��H��聎��|���M��L�d$HL�l$h����������U��{���L��L������H�L$HH���=���H���UX��$�����H��聅�H�D$8���H��L�����H�D$x�$���H��芐�D$p���HDŽ$����H�t$XL��������H�D$x�D$pH�D$8HDŽ$�DŽ$����L���{�I���Z���H�!B/H�5��H�81��H�I�W�����T������|$E1��P���H��@/H�5��H�81��yH�H����X�H��$�H��$���l�H�56�H��H��A/H�81��AH�H�b@/L��H�5��H�81��&H�H���^F�H���VF�H���NF�ff.���H��>0H�H�Px1�H��tlH�JH��tc��r���v��uU�Q`��~'H�AXH;8t?H����H���f�H��H9x�t&H9�u�H�����P���v���t�1������f���H�U>0H�H�Px1�H��tTH�RH��tKH����J`��~=H�BXH;8t/H���Q�H���f.�H��H9x�tH9�u�1��fD��f���H��=0H�������������H��=0H����������H�
����0����H�
%��� ����I����	tB��u�H�=��L����€���tR��H�9G/H����H�81��#���	H�=T�L����€���u�H�o/H�H��H��)0��f���1�9�|�DSH��F/�ѾL���H��H�;諅�H�;�3p�[�ff.����H���H�t$(H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��$�H��H�L$�H�D$H�D$ H�D$H�F/�D$H�8�D$0�D�H����fD��ATUSH��H��9�|
H��H��[]A\ÐH��H���eU�L���H�D$H���u;L�%�E/H��1�H���I�<$肄�I�<$�	o�H��H��[]A\�DH�|$�A�I���f���H��H�#��1���Y�fD��ATUSH��9�|H��[]A\�f�H��H���5x�L�%�D/H��H�T�I���1�I�<$���I�<$�hn�H��[]A\���ATUSH��9�|H��[]A\�f�H�)I��H��H������W�I��L��I��H��D/I��H���H�81��q��H��[]A\�f����ff.���1�H�5����E�f.�@��H�G H�@���H�G H�@���H�G H�@ ���H�G H�@���H�G H�@(�L�OP�<H��t\H��t^A�AI�QH9�tBI�Q�s�2@�
H9�t*H��H9�rH��L��H9�w�K�T�1�H��u�L�ʋB�1��DL����ff.���Hc�H��H��H�t6�}�H���ff.���S�H����Ɉ�H��H��/[H��門�fDH��t;UH��SH��H�XH��tf�H��W�H��H��u�H��H��[]�W�f��ff.�@��H���kUSH��H��H����?H�0H��t
�NW�H�C0H�{PH��t
�8W�H�CPH�{XH��t
�"W�H�CXH�{hH��t
�W�H�ChH�SxH��tB�Ct����1�fDHc�H�@H��H�|�H��t	��V�H�Sx��9kt�H����H���H��t�V�Hǃ�H���H��t�V�Hǃ�H���H��t0H�xH��t�gV�H���H�@H���PV�Hǃ�H����i���H��H��t�(V�HǃH��H��[]�V����H���U�H���H�CxH���3����>���ff.���H����SH��H�@H�������H�{ H�������H�{H������\H�{H������+H�{H�������H���H�������H���H�������H�{HH�����umH���H�����uEH���H��t2H�{H������XH�;H������8H�{H������[�D�kh�H���H��u���D�Sh�H���H�����t��ѐ�;h�H�{HH������e�������h�H���H������5�����D�g�H���H�����������D��g�H�{H�������������g�H�{H��������������g�H�{H������n�������{g�H�{ H������=��������[�Rg�f��Kg����fD�;g����fDUSH��H��H���H�/Hǃ����H�����uH���[]�H��H�=�40tH�5{40H��H�ٺ��[�H���v�
H�=�l�Z��H�K40�ǐUH��SH���rq�H��u
H��H��[]�H��H���5!��H�݅�u�H��H��[]�P]���SH����nn�H��[��T�DAT1�I��H�=��UH��S�l�H��萃�H��L��H��H����N�H��[]A\�������u61�������B�B��t�1��D�&�����f������D��H����H�����HcW`D�G8�G<I��H�I���H���H��t�0����������FH�H‹����H�H�4�H���H��t
�+PHc�H�t� HcOtHcWpH�IH��H��H��H���H�H��t#H�RXH��tfD�JH�H�DH��u�H��H��tL��fD��PH�=z�1���b�ff.�U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�AWI��AVAUATUSH���7R�H�D$p�-R�H�D$(�ӂ�H�D$�R�H�D$P�R�H�D$H赂�H�D$h�[a�H�=�00H�D$�BH�-�-0L�%R/H���H�=��f.�I�<$I���#X�H��H���u�H�E�H9�u�H�=O-0H���#��u�H�=2-0H�00H���'�u�H�=-0H�-0H���+�u�H�=�,0H��,0H���/�u�H�=�,0H��,0H���3�iu�H�=�,0H��,0H���7�Mu�H�=V,0H�W,0H���;�1u�H�=*,0H�+,0H���?�u�H�=�+0H��+0H��t*�t�H��+0A�?�
A�H�b�Hc�H�>��H�=��
�'�H��H��+0�H�=����
�H��H�,0���H�=A����~�H��H��+0���H�=�����~�H��H��+0���H�=�Q��~�H��H��+0���H�=���~�H��H�P+0���H�=���j~�H��H� +0���H�=&���J~�H��H��*0���H�=����*~�H��H��*0���H��*0H�D$x�A�O`1�L�l$(H��������?��@�*f.�H�=Y*0H�����ks�H��L���0s�IcG`H��H9���I�GXL�$�M��t�L����k�H���Ic`H��H)�H�t?H9�v��Q�H���H�K-0H�D$x�Y���H�"*0H�D$x�H���H�*0H�D$x�7���H��)0H�D$x�&���H��)0H�D$x����H��)0H�D$x����H��)0H�D$x��H��)0H�D$x���f.�H�=~��	��|�H��H�E)0��A�������t9Ic��H�=)0H�\H���!�+r�H�|$H��H���W�A����tvIc��H�=�(0H�\H���D��q�H�|$H��H���W�A����t9Ic��H�=�(0H�\H�����q�H�|$H��H���W�A����t9Ic��H�=?(0H�\H�����tq�H�|$H��H���DW�A����@t9Ic��H�=�'0H�\H�����7q�H�|$H��H���W�A�����S� t=I���H�=�'0HcXH�\H�����p�H�|$H��H���V�A�������L���M�I��A�G8M��I��I9���L�d$ L�|$`M�eH�
��I�]Ic�Lc<�L���gP�H�
(0J�4�H��H�D$�?p�A�G����A�O�K�T�Mc�H�H�L$0H�
�
/H+T$ E1�J��H��H�T$XH�L$8H�L$8B�41�V����H�
����Hc�H�>��H��u*H�����t"H�xu���������uH���G�H���H�;H���
������H�|$H�t$XH3����H�|$H���jo�f.�H��L9t$0�2H���I��B���D$@��H�L9��1���1�H�=4�1��:�H�3H�|$H�t6�o��H�D$`H�3H�|$H+phH��H�t6��n��H�;�o�H�|$H����n��q���L�#�J�H�5bL��H��E1�H����X�H�\$@D��L�l$L��$�L�d$X�IH����H9��{D�CH���Mc�L���<�H���xz�L��Hc�L����L��H��H���,z�H�EHc�� u�H�E�H�H�x�^n�H�|$H���!n����H�@H�;H���
H�t?H�|$�m����H�+A��tz�I��H�}�E�D$@H����	H�=~$0H���T	��m�L��L��H���S�D�mH�=O$0O�l-H���	�m�L��L��A�H���S�H�}H��t���I��H�=$0H���;	�m�L��L��H���TS�H�EH���;	Hcl$@H�=�#0H�l-H�����Hm�L��H��H���S�H�|$L���l�����L���m�L��H����l����I9���������f.�H�=y#0H���&��l�H�|$�H���R�����oH�E1�H��I����P��~/H�@Ic�A��H�<��l�H��H���Yl�I���D9h�D;(�|1�L��$�H��fDH�RIc�H�<��Pl�L��H��$��{x�I���I��Hc�H�RH�4�H��4tL����k�L��H��A������k�I���D9*�H��HcXH�=�"0H�\H������k�H�|$H��H���Q�H�=b"0H���?�k�H�|$H��H���Q�A������A���D�eIc��dK�H��E��~;L�l$H�,�E1�@I���L��J�4 I����H��H���k�L9�u�H�="0H�����,k�H�|$H��H���P�A������H�=���^u�H��H��!0���H�=@��>u�H��H�l!0����H�=��
�u�H��H�t!0���H�=����t�H��H�\!0���H�=���
��t�H��H�,!0���H�=����t�H��H�!0����H�t$H�|$PI���
j�H�D$`H�L$ �@8H��H9��~���L�|$`H�D$PH��$�I���H���������1�L�5���E�I��M���I��H��M�A�D$����
��Ic�L�>��H�=����	t�H��H�/ 0���H�=����s�H��H�W 0�I���H�=�G���s�H��H��0���H�=����s�H��H��0�\���H�|$H��H�\$@L��$���h����H�40H����H���i�H��H����h�I�D$H���H�x �A�H��H���h�H��L�d$H��H��I�L��A�u�'�H��H���|h�A�uL����H��H���eh�A�u L����H��H���Nh�A�u$H��H�t6�=h�H�|$HH���0h�I���HcH9��_����C�1�E1�1�I��H��$�H�D$�y�H����H9���H��H�T$H�|$��L�$��+��u{A�G<L9�vI�GPJ��9(t{L��L���g�I�<$�� t?H����Hc�H9����H��H��$�H��� �z���H;X}JH�@ �fDI�|$�f�H��$�L���@g��p����pL��I��H�t6�'g��l���H��$�H��$�H�|$H��$��s�Ic��H��0H�\H����H���g�H�|$hH��H����L�Ic_dH�I0H�\H���fH����f�H�|$hH��H���L�Ic_H�0H�\H���H���f�H�l$hH��H��H���wL�(H�=[��8�H�\$pH��H���Ff�H�߾�9f�H�߾�,f�H�߾�f�H��H���f�I�w H���f�I�wH���e�I�wH����e�I�w(H����e�H�t$xH����e�H�t$(H����e�H�t$H���e�H�t$HH���e�L��H���e�H�ĨH��[]A\A]A^A_�H�|$��e�����H��0H��������H�=s���o�H��0�t���H��0H���d����H�=���o�H��0�G���H��0H���7����H�=E��o�H�b0����H�^0H���
����H�=���do�H�=0���H�90H�������H�=���7o�H�0����H���d����H�=p���o�H��H�0����H�=����n�H��H�0����td�I���o���H�=(��	�n�H��H��0���H�=���n�H��H��0���Hc8E1��D�H��$�H�E�)L$@��~AD��H��$�M��H��$�A��Ic�H��A��H�t��c�H�ED9 �H��$�M��H�30H����H���c�H��$�L��H���I��3����	H�=����m�H��0�����
H�=͵��m�H��0�}����H�=���m�H��0�/����n#��e�H�=���m�H�A0�����H�=��km�H�t0�E���H���a����%�H�=��1��O.�H�=�1��A.���USH��H�G H�P H��tIH�HH�iH� tH�iH�ZH� tH�Z�W�H��H��H��H��[H�=�1�]�V���V�H��H�=�hH��[1�]��U�@��S�H���X�H���T�H��tAH�C H�@H��t&�tH���[��H�����t�����u޸[��H���A�H��t�H����f.���USH���!n�=�O/H�=;0H�H��H�Ճ�H�����a�H��H��H���kG�=�O/H�=�0H�H�Ճ�H���{�fa�H��H��H���8G�=yO/H�=�0H�H�Ճ�H���(�3a�H��H��H���G�=JO/H�=�0H�H�Ճ�H�����a�H��H��H����F�=O/H�=L0H�H�Ճ�H������`�H��H��H���F�=�N/H�=0H�H�Ճ�H���/�`�H��H��H���lF�=�N/H�=�0H�H�Ճ�H�����g`�H��H��H���9F�=�N/H�=�0H�H�Ճ�H�����4`�H��H��H���F�Hc-_N/H�=`0H�l-H��t>�	`�H��H��H����E�H��H��[]ÐH�=e���?j�H��H�]0�2���H�=���j�H��H��0�H�=����i�H��H��0�W���H�=���
��i�H��H��0����H�=Q���i�H��H��0���H�=���i�H��H��0�^���H�=���i�H��H��0����H�=����_i�H��H�m0���H�=x���?i�H��H�U0�e�����SH�_ H�{ t��T�H��[�
�H�^/H�5��H�81��%#�D��UH��SH��H��@��u'H�����tH�u�����t0��u�66�H��H��H���^�H��H���
^�H��1�[]�@��\�H����fDH���nH���MH����USH��@���sH�VH��/H��H��H9�xfo�K/)fo%�K/)g��K/�G H�=�0H���9�]�H��H���2�H���_H��u�H�=}0H�����o]�H��H����1�H���ZH��u�CH�=?0H���n�9]�H��H���1�H���H��u�CH�=0H���x�]�H��H���x1�H���.H��u�CH�=�0H���"��\�H��H���B1�H����H��u�CH�=�0H�����\�H��H���1�H����H��u�CH�=G0H���V�a\�H��H����0�H���\H��u�CH�=	0H�����+\�H��H���0�H����H��u�CH�=�0H�����[�H��H���j0�H��tH�Ǩ�I�g�C H��[]�f.�f��G ))G�Dfo
�I/)fo�I/)W��I/�G ��@�����������@���k���H�� /H��`����H�G$@�H��H9�u������D�C�
���@�C���@�C���@�C���@�C�^���@�C����@�C����@H�=|���d�H��H�}0���H�=D����d�H��H�e0�h���H�=���d�H��H�]0���H�=X���d�H��H�0����H�=J���d�H��H��0����H�=
��
�_d�H��H��0���H�=Ѭ��?d�H��H��0�4���H�=n���d�H��H��0�r���H�=8���c�H��H��0�����;*����fDH�y/H�����H�I/H��r���H�/H�5{�H�81����f���S�H��H��0�N�H��H������D$ fo$foL$�JG/H��) G/)
)G/H��0[�AWAVAUI��ATI��I��USH��H���/H����H����t/M���FH��uH���H��[]A\A]A^A_�f.�1�1�1��V�S�L���I��H����uH�������H���H�@H���M��t�I�D$ H����fDH��01�1ɿVL�8H��/H�0�S�H���I��H����uIH�����tAH��H��H�T$�8��u-H�T$H���`H��`uI���`H��`tL��H���%1�DH���I�wpH�@H�@H��uhH���M���<���H��[]A\A]A^A_ÐL�n L���M���L��L���A��u
I������	I���H������fD1�1ҿV�R�L���I��H�@H�@L�x A��u
I�������L���L���A���A���I������4���L��L���7���!���I���`H��`����I���`H��`����L��L���/����H��L���E7������I���`H��`�����I���`H��`���L��L���/�����DL��L���6��uI���`H��`tPI�D$ ����L��H����6������I���`H��`����I���`H��`��L��L���B/����I���`H��`t�L��L���&/��@AWAVM��AUI��ATI��L��UH��SH��H��(HLJ��D$`����L�����H��I�����H��I������H���I��H�CA��I��L�D$�WL�kL�c A��u
I������TL�cH���L�s(H9�tL�` L���L�cA����Hǃ����H�C@��_�H���H���L���L���I��I�E�uH������P���@�H���I�E`H�BX�0�L���I��H���L�`A��u
I������MH�H�PXH�JH�H�T$h�@l����H�PxH��0H�CHH��������H��(�[]A\A]A^A_��H�������H��H��H�T$�4�H�T$L�D$���YH�D$H���`H��`��f�M���.L��H���\Q�L������]L�kA���,���L��L���$4��uI���`H��`��L�������@I������4���L��L����3���!���I�E��`H��`����I�$��`H��`�����L��L���S,����fDL��I�����H���H�kI��I��I��A����H��H��H�D$����H��H��L�D$H�T$�W3�H�T$L�D$H�D$�����������W�H������S���H��H���46�L���H��H�CH�uH�������H��� ���H�CH�����L�|$�n���fDL��L���2��uI�E��`H��`��H������@L��L���2��uI���`H��`��L���L�cL��L���c2���s���I�E��`H��`�b���I�$��`H��`�Q���L��L����*��A���H���f�I�������H��L���2��uI���`H��`�)L������DH�|$H�k����H����������H��L���1�������I���`H��`�����H�E��`H��`����L��H���$*�L����u����I�E��`H��`�O���L��L����)��?����H��L���=1��uI�$��`H��`��H�kH�)����I�$��`H��`�_���L��L���)��O����I�$��`H��`�f���L��L���t)��V����I�$��`H��`����L��L���L)�����H�E��`H��`�/���H��H��L�D$�)�L�D$����H�E��`H��`�<���H��L���(��,���@��AUATI��USH��H�_@H�����tH��L��H��[]A\A]�O�DH����+�L���H��H�E@�uIH�����tAH��L����/��u*I�E��`H��`uH���`H��`tH��L���^(�fDH�]@@H�C�q�����AWM��AVI��AUI��ATUSH��(H��/H�|$L�d$hH�8H�t$L�L$����M��M��L��H�h H��L��H���H��</H��LD�AT�D$hPL�L$ H�t$(���XZH��H�t$�U6�H������H��(H��[]A\A]A^A_�ff.���H��H�1</PAQM��A��pM�H���ff.���H��H�</M��A�Pj�@M�H���ff.���AUATI��UH���SH��H�=ΠH��H�	0H�H�@xH�@L�����H�
�;/H��H��QM��L��A�jH����L�H��[]A\A]���AUATI��U���SH��HH�D$H���B�L�D$H��L��H�J���1��L�H�\$H�<$�
�H��H�$���H�<$H�5�OI���_.�H���L�H���X�H��L��H����F�H��H�\$H���>�H�t$H���}�H�4$���z��H�=��L�$$I����SL��L��jH��E1�A�H����K�H��X[]A\A]�f.���AWAVAUI��ATUSH��H���H�/H�T$XH�8�A��H�
dH��H�a�I�����1�H��H���F�H�
�@H��^H����H�����v�H���	��Q�H������,�H�����H�
$p�H���H���4�H��H�D$ ��H�
�?�H�B^H����H��H�D$(��H�
�?�H�^H�����H��H�D$0�X�I��H��tH�
�?H��]�H����I�ƾH���$�H�$��HH�߾	��H�
4^�H�@qH���`�H�߾
H��H��$����H�
��H��H���-�H�߾H�D$8��H�
�n�H���H����H�߾H�D$@�~�H�
q�H�lH�����H�߾
H�D$H�Q�H�
D�H�?H����I�_ L�%0H�D$PL���H���H��$�M���H��0H�D$H����H��0H�D$`H����H��0H�D$hH���`H��0H�D$pH���#H�t0H�D$xH����H�W0H��$�H����H�70H���vH�
0H���6H��$�H�L$H��H�T$�,
�H�T$H�L$L9���H;D$tzH;D$`��H;D$h��H;D$p��H;D$x��H;�$���H9���A�H9�t2H��$��'7�H�5��H��H�/H�81����@A�H�t$XI���H��LD���UL��H��ATL�D$M��H�t$8H�T$@�h�XZH��L�L$PL�D$HH�L$@H�T$8H�t$ �UM�H���}��H���L��[]A\A]A^A_���
H�=�H�T$�R�H�T$H��H��0���fD�H�=����Q�H��H��0�j����H�=����Q�H��$�H��0�5����H�=&��Q�H�D$xH�c0���fD�H�=���Q�H�D$pH�C0���fD�H�=�$�WQ�H�D$hH�#0�~���fD�H�=M��/Q�H�D$`H�0�A���fD�H�=Y��Q�H�D$H��0����fD�H�=����P�I��H��0����H���8=����H���(=�����H���=����H���=��}���E1������A�����DA����DA����DA����DA����DA��s���D��UH��AWAVAUATSH��xH�!0H������H�}�H��x���H���H�H������H��H������H�CxL�CxL������H������H���H�����H�=�H�E�H�BL������H������HDž�4H�x1��H�H�HH�`���H���������������H���������.��H��������`������H������H������H��H��p�������D�H������H��h�����uH�����t�������H���������`���H������H������H��h�����H��`���H���lH������H������H��h���H����H�@H����L���H�p ��p���L������jH��x���H��`����gC�ZH������YH�U�H������H���H�qxH�e�[A\A]A^A_]�f��O�����fD��H��0H�������PH�@H�������H�E�H������H���H������H�FxH��/H�H���H�xH�X����
H�=9��O��p���L������E1�H��H��x���jH��h���H��`����B�������`���H������H��h�����H��`������H�\�/H�H���]@�ff.�f���UH��S���H��8H�D$H�D$H�D$ H�D$(�S8�H�D$(H���H�L$PH���H�D$(P1�L�L$(L�D$ ��H�t$ XZH��t8H�L$ H��uH�D$ �L�L$(H�T$E1�H�|$�x�H��8[]�
H�=�~��H��H�D$�D��H��A�E1���6�fD��I��A�H�Ѻ��fD��H�G H���H����f���H�G H�����:t�fDH�B�ff.���H��tH������ff.���ATH���.Hc�USH��Hc�H�� H����A�<��H�*���Hc�H�>��DH����@�H�����I��I���GH�{�<�H�߃�����������H��I��I���fDH��H���ZH�|$@��fDH��H�=��1��4�H��H�� H��[]A\����H�;H��H�����sH�=��1���3�H��H����?�H�CH��t�0H�=r�1��3�H��H����?�H�CH��t)H�|$H�oH�p H�=F�1��u3�H��H���?�C�����H�=�	��H��H���C�H�=D�H��1��23�H���&���f.�H��H������EH�|$H���7�j2�H�����f�H����H�|$HH�k ����H���H�|$H�>�����H�{�7�H���4�H�������H�=����H������H+_h1�H�=�H��H���g2�H���[����Mc�H�=�v1�I�K�4�@2�H���4����H����H��M��u H���`H��uH�/H��	DH�SH�=/H9���H�|$H����H�|$HH���>�����fD�	H�=ݑ�'�H������H����H������؃�����H���'���s���H�</H��h���@H�D$@H�H��t1��H��H���H9�u�HcGdH�WX�UH)�H�<����H�������H���H�|$H�7=�H�C�w���fDH�1�.H������H�=��1����H�|�6�H�����fDH�/H����f���I�ċC��������[��/� ���@��������uv�H�=�	��L��H���<�H��H���a<�����@�H�= ���H���������4�H�=��H��1���/�H��H���<������H�=ҏ�A�L��H���;��i����H�=��� �L��H����;�C�@����H�=���
�L��H���;�C�����H�=[���
�L��H���;�C���H�>�.H��J����H�=���
�L��H���Z;�C����H�=_��
�L��H���6;�C����
H�=Ҏ�]
�L��H���;�C�U����
H�=���9
�L��H����:�C�)���H��.H��������I��H��A��H����H��M���3���������{9�I��H��A����ff.�@��AWM��AVAUATUH��SH��H��8H��1�H�|$(1�Lc�H�D$H�ٙB��H�L$�D$H���.N�4��l�H��H�5�I��H�h�.J��L��1�E1���A�1Ʉ�tPH�DD��I��A��H��H�L�H�AWPD�D$H�t$ H�|$���ZL��YH���.��Ic�M�A�8��L�\$H��L���M���A��1�H��tH�s�L���7���E��t>D9�t9I�$�� ��H�����F)�L��E��H�
Ư1�H�5T��7�I��H�|$(ulI�|$I�$ uU��D$H��8[]A\A]A^A_�D�H�5?L��H�L$ L�D$��L�D$H�L$ A������I�|$뤐L��H�51����H�|$(L��������f.�I�D$H��F�(���1��(���f.���AWAVAUATUSH��XH�_ dH�%(H��$H1�H�{ �1�1��
�H����I���+.�C8�H��H�5>��D$4�0�H����d��H��H���i��H�}�� ��L�mI��G���H�5?�H�����H������H�5ދH�����H���H����D�E����E1�L�-�Mc�I��I�A�wA� E�O$E�G�F�A�O��
�IcD�L�>��f.�H��f�H��H�5ݑ1�WH���
�I�^AXH���rH���A��D90�w����JH�5J�H����H�CXH�D$H�������A������ tH���D�Z�����A��t
H����rD�������@t���D���A��������H������Sd1�D���ASVH�5O�ARWH��AU�:�K`H��0���0H�D$PE1�L�d$8L�=��H�D$(H��$PH�D$ H��$@H�D$H�D$@H�D$�p@I��A��I��M����L��H���x�|$@��H�E�� ��H����I)�M��~L��D��H�5��H��1��
�A��D9s`�|H�L$Ic�1�H�<�蹼��H�|$(�f�I��1�)D$@�H�H�|$ �)�$@�H��������tD9�����D9���f�L���@tD9��H�=�IE�L���t���D9���H�5��D9�IN�M���tD9��L�
�ME�D9�WH�
ވVIN�L�D$ �H�|$H��1���XZH�5���SdH��1�D)��r	�L�eA�� �y���H�EL�`M���}����H�5�H���l�|$@�t���H�T$H�5��H��1��	�H�E�� �^���H�E�\���DL�d$8�H�5o�H����H��E1��L�D�|$4I��M��t%�L��M��H��L��H���d'�H�I�M9�r�I�$1�Hc�� t6H����H9�}4L����%�H���
���H��H�����I�$Hc�� u�I�D$H9�|�H��$HdH3%(H���4H��X[]A\A]A^A_�H����I��H��H�I	�HH�}L)�H�E tH�}L�=�
��"���DH������@H�����@H������@H����@H��~�|���@D����%���@����H��H������y���D��H�|$�)�H���H�H��H���1��v���������$���H�=~�1����H��.H�5X�H�81�������f���H������H��t
H��H���a)��H���fD����i�cH�����Hc�H�>��H�Ί�H����H����H����H����H�l��H�X��H�C��H�.��H���H���H���H���H�щ�H����H����H����H����H�u��H�a��H�M��H�9��H�%��H���H����H���H�؈�H�ƈ�H����H����H����H�q��H�^��H�H��H�3��H���H�
��H����H�߇�H�͇�H����H����H����H�|��H�j��H�X��H�G��H�6��H�"��H���H����H���H�І�H����H����H����H����H�u��H�c��H�P��H�<��H�*��H���H���H�0o�H���H�Ӆ�H����H����H����H����H�m��H�T��H�>��H�(��H���H���H���H�ل�H�Ƅ�H����H����H����H�u��H�b��H�R��H�A��H�-��H���H���H���H�ރ�H�̃�H����H����H����H����H�q��H�^��H�K��H�9��H�'��H���H���H���H����P��1�H�=����ff.�@��AWAVI��AUATUH��SH��H�I�.H�8艰��M�f H�X I��I�$L��H�{H��H��H�I��$H)�H)΁�H�����H�L���H���t'M9�$���H��udH��L��[]A\A]A^A_�f�L���A��u�I�����t�L��L�����u�I�E��`H��`u�I���`H��`t�L��L�����D1�1�H��V�(�L���I��H����u:H�����t2H��L���'��u#I���`H��`uI���`H��`tL��L����I��$�L���L�xM�~A��uSI�����tJL��L����
��u+I���`H��`uI���`H��`tL��L���H��I��$�L����H�PL�` I�VM��tM�f A��uI��������L���H���@�������H������w���H��L���0
���d���I�$��`H��`�S���H�E��`H��`�B���H��L�����2���fDH�������@L��L�������m���I���`H��`�]���I�$��`H��`�L���L��L���A��<���ff.����AWAVAUATUSH��H��(Hc���t$�{�I��H�Q�/H�D$H���L�54�/M��� �|$���E1�������D�l$���A9��	D)�IcՃ�H�,�H�DH��H�D$�L��L��H����*�H9l$��L���*�I����
�L��H��I���*�H�CXH�<(�f#�H��t�H�CXH�<(��*�L��H���*���H�CXH�<��*�L��H���h*�I��L��L��A���V*���D9��'���H�|$�m*�H���@
�H��Ic�H��I���*�H�CXH�<���"�H��t�����tXH�=��/H�����*�I����	�L��H��H����)�Hc��H�CXH�<��{"�H���"H��L���)�Hc������t$�����9�����H�,�L�tN�<��f�L��L��H���Q)�L9�tlH�|$�r)�I���E	�L��H��I���')�H�CXH�<(��!�H��t�H�CXH�<(�8)�L��H���(�I����9��0�������H����H����L�5��/M����1��!L��L����(�H���9h��L���(�I����L��Lc�H��I���d(�H���H�@J�<��!�H��t�H���H�@J�<��g(�L��H���,(��f.����� tcH�=��/H���U�0(�I����L��H��H����'�H���HcPH�CXH�<�� �H����H��L���'�����@tXH�=g�/H������'�I����L��H��H���~'�Hc��H�CXH�<��* �H���1H��L���V'�H��(L��[]A\A]A^A_�@��B�����H�CXJ�<��S'�H��H��A���'�H��L���	'���D9�����L���"'�I����L��Mc�H��H����&�H�CXJ�<���H��t����H�,�L�|J��H�D$�+f�L��H���&�L��L���y&�H9l$�����L���&�I���i�L��H��I���K&�H�CXH�<(��H��t�H�CXH�<(�W&�H���f��H�=T�0�I��H���/H����P���D���1�L�=��/M���~;(|'���DL��L�����%�H���9(�����L����%�I����L��Lc�H��I���%�H���H�@J�<��9�H��t�H���H�@J�<��%�L��H���U%���H�=�~��/�L�5 �/H�D$H��/M������H�=���/�I��H���/���H�=3e��/�H��H���/��H���HcPH�CXH�<��$�H��H���$�H����DH�=�}��//�H��H�]�/���Hc��H�CXH�<��$�H��H���q$�H�����f��H�=�9��.�I��H��/H����[���f�Hc��H�CXH�<��L$�H��H���$�H�����f�H�=����.�H��H���/�B�������1���
wRATH�Y�US��H��H�,JH���}t'L�%T�/I�$H��HH����H��H�H��tH��[]A\���H����u<H�����t4H��у���t'H�р�H�xH�t��uH��H�D$�%�H�D$H�H��H�D$��H�D$H��[]A\�f����A.�I�$H��H�Y������AWAVI��AUATI��UL��SH��(H���.H�T$D�|$pH�8L�$����L��L�h H��I�$I�}L��I�EI��$H��H)�I��H)΁����H�H�|$`��I���I�E �uH�������H�|$h��I���I�E�uH������O�|?I�E@A�}8�M�}(I����Y�A�U8I�E0H��t0H��H��H��H��H�f.�H�OH��L�p�H9�u�L���,�A�}<��u|I���H��tHcH�xH��H���m	�A������t4���Hc���
�A���I���H�ǍVH�4$Hc�H���-	�L��1����H��(H��[]A\A]A^A_Ð��
�A�U<H�t$I�EPH��H������\����H��H��H�D$H�L$�������H�L$H�T$H���`H��`�����H���`H��`�����H��H���^�����f�H��H��H�D$H�L$����?���H�L$H�T$H���`H��`�%���H���`H��`����H��H��������f���AWL�=�AVE1�AUI��ATUS1�H��HH�o H�T$ H���~��H�|$<H�|$(I�ĸ9]8v��I��H��(t#Hc�A�9]8w�H��HD��[]A\A]A^A_�DD�SO��L�T$I�	L�L$��tÉ�H�L$A�����T$<M��tAH���L���H�T$ H�t$(��A�ՋT$<H�L$9�t��L�T$L�L$	�H�U0J��I�	����I����a�����UH��SH�����H��H�5d���H��H���i��H��H��[]�ff.�@��UH��H��SH��H�����D$tX�*�D$��xuH��tNH��uR�D$H�T$H�5����H�����D$��t^����HE�H��[]�@�s��릐�D$�H�g�.H�5�wH�81��.��H�O�.H�5�wH�81����H�7�.H�5�wH�81����ff.���UH�5�wSH��H��.H�H�F�.H�8�f(�H��.H�5X���H��H��M!�H�;1�H�A���H�5����H�-�.H�;1�H�5iwH���z�H�;H��1�H�5Yw�f�H�;1�H�����H�5���N�H�;1�H����H�5݂�6�H�;1�H�ʞ��H�5_��H�;1�H�ž��H�5A&��H�;1�H�����H�5�[���H�;1�H�����H�5�v���H�;1�H�����H�5�v��H�;�����H�_��H�5���3�H�;�����H�D��H�5����H�;�����H����H�5�v��H�;1�H����H�5yv���H�;�H�v��H�5mv���H�;�H�[�H�5v��H�;�H�@�H�5�u��H�;H���[H����H�5Ė]�s�@��t*@��uD������tZH��td@��tnH�G�f�H�����u�H��t!H��u�H���.H�ÐH���.H��DH���.H��DH���.H��DH�Y�.H��DH�)�.H��D��HcB�H�JH�
H�RH�<�H�4�1����I��1���H��H��A��ff.����H��1�H����f���H��1�H��H�1��ff.�@��I��H�QH��1�H�1A��f.���H��I��H�IH��H�PH�01�A����H��I��H�IH��H�PL�@H�01�A��ff.�@��H��I��H�IH��H�PL�H L�@H�01�A��ff.���H��H��H�II��H�P�p(H��L�H L�@H�01�A��H���ff.�@��H��H��H�II��H�P�p0H���p(L�H L�@H�01�A��H���ff.����H��H��H�II��H�P�p8H���p0�p(L�H L�@H�01�A��H��(�f���H��H��H�II��H�P�p@H���p8�p0�p(L�H L�@H�01�A��H��(�fD��H��H��H�II��H�P�pHH���p@�p8�p0�p(L�H L�@H�01�A��H��8���H��H��H�II��H�P�pPH���pH�p@�p8�p0�p(L�H L�@H�01�A��H��8���H��H��H�II��H�P�pXH���pP�pH�p@�p8�p0�p(L�H L�@H�01�A��H��H�ff.�f���H��H��H�II��H�P�p`H���pX�pP�pH�p@�p8�p0�p(L�H L�@H�01�A��H��H�f.���H��H��H�II��H�P�phH���p`�pX�pP�pH�p@�p8�p0�p(L�H L�@H�01�A��H��X����H��H��H�II��H�P�ppH���ph�p`�pX�pP�pH�p@�p8�p0�p(L�H L�@H�01�A��H��X�@��H���ff.�@��1��f�����H�0~��Hc�H�>��@H��)��H��)��H�0%��H�%��H�%��H��$��H��$��H��$��H��$��H��$��H�o$��H�U$��H�=$��H�=���H�$��H��#��H��#��H��#��H��#��H��#��H��#��H�k#��H�R#��H�:#��H�!#��1��ff.�f������u	H�1��f������H�H��@�ff.����1�H��t&H��8H��H��H)�H��H��HH��t�fDH����H��9�tF���t*��1���H�=�~���H��H�%�.H�8H���)���1���H�=�~���H���։�1���H�=E~��H���ff.���UH��H��SH��Hc�H���%!�H��H��H��H��[1�]��f���H�5��/������H�5��/�������H�=�f���ff.�H�0fH~�H9�tDfH~�H��<������tH��H��u!��fH~�H��H��H���fD����������ff.�@H��t�?
tfH��t�>
tDH9�tQH��t2H��t-�;u'H����	��H��zHc�H�>��f�1��DH�FH��t�H�pH9�u���H�GH��t�H�x닐H�FH9G����H���D1�H�NH9Ou�F 9G ������fDH�FH9G��������F9G�����f�H�vH�����H����������D�뇉�H�=�|1��i��f���H�E/H�WH�5��H��H�B0H�+/�6��fD��H���#����ATI��UH��SH��@��t&@��uH�����t
�����t
�H���s��L��H��H���E��[1�]A\�ff.�UH��SH��H�����H��t51��
H����H9�HM�H��H���H��HI�H���H��H��H��[]�ff.���U��SH��H����H�5��/H��H�����H�t$H��H�D$�0��H��[]�f�H�G H9�wwL�G(N��I9�vjAVAUI��ATUSH��H9���H�H��I9�vOH9�wJH�F0H���f�H��PH�E0H����H9�u�H�����I��H�E0H��H��f�H�B�L�bI�EH������D�pdA�FH�H�<�@�(��H��A�F�ED�uE���!D��1���f.�Hcу�H�<�HcЃ�H�|�8D9�~�L�4�8H�w�.H��.H��H�8�u�J�T5L�eH�H�BI�M I�U0H�U I�UH�MH�EH�U(H�E0H��tx��uH�����tH�����t_[]A\A]A^�fDH������������������fD�XA��0��H��H�H�E�	���f.�H�E([]A\A]A^��E1����A�0����H�=�/H�w0腏H�=Np1�������SH�w8H��Hc?�\��H�{H�����u_H�{H�����udH�{0H�����uiH�{(H��t)@��uH�����t
�����tH���H�����u[Ð[���f.���H�{H�����t���H�{0H�����t����DH�)�.ATI��H��USH�8�����H�Ń��)H��uHc�H�>���H�Q�/H���0L��H�5)H�����H���f�H��H�5H�����H��[]A\�@H���/H��u��H�=�o��H��H���/��H���/H��u��H�=�o�[�H��H���/�l���@H���/H���X����H�=�Y�'�H��H�}�/�8����H�y�/H��� ����H�=,o���H��H�U�/����H�!�/H�����H�=/n��H��H���/�����H�='Y��H��H���/�����H����AUATUH��SH��H�w H����H�_0H�G(H�{L�,�H)�H������L9�tx�H�{@L�c��H�{ ��H�{(��M��t1L��A��uI�����tA�$����tfDI��$��K��H�{HH��t	�G���H��PI9�u�H���H�������H��tH���H������H���H�������H���H�������H��H�������H��H������SH��H������H���H������KH�}hH������H�}pH�������H�����~H����~H���H�������H�}@H������|H���H������XH������H���H������H���H�����uxH;-��/t/H���t%H��tH����H���H���@��H��H���[]A\A]�Z�f.���H���H���x����_���fD�k��H;-$�/u���[��H��H�����������"f��;��H��H������t�����D���H��H������@�����D��H���H�����������D���H���H����������R���f������fD��H���H�����������D��H�}@H������N�������k�����fD�[��H�}pH������������;��H�}hH����������������H���H������|�����D�����H���H�����������f.���S1�H��t#H����tH���H��t���H�H��[�@H�G(H���H���H��u���ff.���H�����H�=lW�H������H���f.���AUH��I��ATUSH��H���/H�C0H�HPH�hXH�K0H�HH�HX��L��I�����L��H���"�H�C0H�P�H�S0H�hH���[]A\A]�f���U1�H��SH��H�D$H�L$�*�����H�\$H������H�a�/H���H9��gH��u1H;:�/��H;%�/��H����H��H��[]�H�=�.��H�5�/H��H���:��H;��/�UH�=��.��H�5��/H��H�����H;��/�JH�={�.�V�H�5��/H��H�������p����H�l$@����@��u
H�������H���.H�5�H�81��N��fD�H�=�g��H����H�={gH�,�/���H����H�=qgH��/���H���_�H��/H��/H9������H�=��.�|�H��H��[H��]���E����u]DH���C����c�H���3���H�=Y�.�,�H��H��[H��]��H�=1�.��H���?���@���������H���U��H�5H��H�t�.H�81����f.�H���H��H��?H)�H	�H��H�D$��D$��f.�H��t+@��uH�����t
�����tH����f.�1��ff.�f�H��H�RH��t��ubH�����tYH�����uNH�H�H��PH��H9�w�7fDH��PH9�v(H�PH��t��uH�����tH�����u�@u�1��ff.����H�=�/H�G0H�w(H�� H�PP�`���H��t+H�@0H��uH��H��t�H��HE���1��ff.�f�H�)�.�H9:t|H���.H98�H���.H98�H�H�.H98�H���.H98tCH�\�.H98twH�@�.H98t{H�T�.H;8tH���.H;8����������f���f.���f.���f.���f.�� �f.��@�f.�UH��SH��@��uH��H�����u
H��H��[]������u�H�E��`H��`u�H���`H��`t�H��H���[����f�AWI��AVI��AUATUSH��8D�&H�|$H�T$ ��I�H��Ic�H�L$H�D$E����A�l$�H��E1�l$,L�4��f�I��K��K�t�H���L��I�EL9�u�H�D$H�H�D$L�l$H�L$ H��I)�HcD$,I�]H�\$H��H)‹H��D$��D)�H��8[]A\A]A^A_�A�D$�H�T$�D$,�SH��H��H��H�=�/H�T$����tH�����H�L$H�D�/f	�JxH��[�ff.�H�GH��t	�8
�~USH���(H������ H��H�CH�E
H�E����oH�E�oKHH�CH��tQ�8tL�@���H���/����H��t�H�kH��[]�f�����H�k�H��[]��H�sH����H�CH��t��f�UH��SH��H������uH���.H9t1�H��H��[]�H��H������u�H�[H��u���fD�FtzAWAVAUATUSH��H�GL�`�H�P�H�WI��uH�FHH��[]A\A]A^A_��H��L��H�����H��tEI�D$ H�CHL�e@H��[]A\A]A^A_�f�H�FH��tgH�W H�VHH�G8H�G@�f�D�{XL�sH�L��H�
�H�hz��D�{XI��L�sHH��tMH���4��H��t@M���r������t$H�G0H��u�H��H��t�H��H�FH�@H�FH�L������H�5��H��H��.H�81�����ff.��SH��H��`H�O0H�Q��H��!t/��H��1u��/�FH��`[��H=�u��/%�������<��u��/t�H�C������t�H�C0�D$H�\$H�P H�D$ H�@HH�T$(H�PH�@H�T$0H�D$8�`@H���h����o�/�[���H�G�������C����D$H�A H�\$H�L$ H�D$(H�D$0H�D$8H�|$�D$HH�D$@H�D$P4�`���������H�C������������D$�DH�G������������D$�Z���H�C������������H�A H�|$�t$�D$H�\$H�L$ H�D$(H�D$0H�D$8H�D$@H�D$P4�D$H��t$�M���f�U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�SH�W0H��H�z0H�H��t*L�C(H�K J��H9�sH9�u�H9B0tH��PH9�w�1��CH�9��i��H���H�{H�H���-���ff.�f���@��t6@��uH�����t
�����tH������1�H����1��ff.�f�ATI��UH��SH������A��u;M��~.I��I��I��N�d#fDH�SH�3H��H�����L9�u�H��[]A\�H�
Ad�-	H�5�\H�=�\�Y��f���AT��USH�޶/H�.H�C0H�PPL�`XH�S0H�PH�PXH�VHc�H���D���H�C0H�P�H�S0L�`H��[]A\�ff.��UH��SH��H��H�����H�3�� t$H��H�S��H�����H��H��[]��H�S H�s��ff.���ATUH��H��SH��/H��H�C0H�HPL�`XH�K0H�HH�HX�k���H�C0H�P�H�S0L�`H��[]A\���ATI��USH�ε/H�C0H�PPH�hXH�S0H�PH�PX��L��H������H�S0H�J�H�K0H�j[]A\Ð@��u*H�����t!������H��u�������f���SH������t/H�0�.E1�1�1�1�H�=�>L�1����[���[��H����H��L�I�[1�1�H�����ff.��H��u�f.�UH��H��SH��H�����uH��[]ÐH�}�z�H��H�����H��H��1�[H��H��]���f�H��tCATI��UH��S�G`1ۅ�~#�H�EXHc�L���H�4��j���9]`�[�]A\�1��D��AUATUSH��L�-�/I�E0I�} I�u(H�PP�v�H�����H��H�D$���H�|$H�EH�GH����H�SL�d$H��uLf�H�s0H��uuI�M H��H9���I�}(H��H9�sH9�t�f�H��PH9C0u�H�SH��t��B`��~�1�@H�BXHc�L���H�4��z���H�S9j`�H�s0H��t�fDH�|$�A�H�|$H������H��H��[]A\A]�H�@H�l$H�X �
f�H�X H�{(H���p���H�CH��u��D��H����SH��H��tmH���H����H���H����H���H��t���H�CH��t	H;�tH���H��t�Ѹ�H�����H;b�/t([�fDH� H��t����H�C �x���DH�-�/[��H��H�=�`1����H��H�=�`1���DH��t3�G��u$USH��H���?
t&H��H��[]����~���G��H�oH��t�H�}���H���V���@SH��H�����H��H�5Z`H��H���.H�81�膺�fDUH��SH��H��tBH;��t9H�^�H�H��u<�������H�H��u H�@H��[]�H���H�H��t�H��t�H��t%H�@ H��t�H��H�u�H��[]����f�H�@H��[]�DH���L�G(H�O H��PJ��H9�s!H�0H��t�H�p0H��uH��H��H��t�����ff.�f��fDH���uH���H��u�����@H���H�H9��teH����L�
5�/H9wt4H�G0M�Q(I�Q H�J��H���fDH;G0t�H��PH9�r����H�GHH��t�H�@H�@H��H�W(�����tH�BH�@8H�@I�1��H�B�u�H�����t�H��΃���tр�HE��ȸ�����@��AUATUH��SH��(H�B8H�zPH�@H�p@��u	H�����u���H�mH��([]A\A]�H�H�Ӊƒ���u؋S\�� u8L�gL�o��:H� H��tKH�T$�1���t=H�D$�PL9�|R�S\�+L�oA���~$��Hc�L9�}I�D�H��4�u�����k���H�t$���H�t$H�@H�8�I�D��S\��@UH��SH��H��H� H��tH�?H�T$H��蛶��t7H�t$H��t-H�FH��t$�8uH�=ذ/H���@��H��[]�f�H���X��H�=A]H��1�������AVAUI��ATUSH��H�R8H�FI�]PH�RH�h�L�r���?H������2H��у����!���I��u*A�M\�� ������Hc�H��u@H�SH�sH9�CH��L��H����H��I�D$H��I�D$H��H��[]A\A]A^�@H�s��DH�,�@��u�H�����t�H��H������uH���`H��`t[I�D$�H��u;H�{ H���s���H�T$L�������^���H�D$H=���w?��A�E\�E���H��� ��H�@H�8�H�E��`H��`t�H��H������H���e��H���.H�5,H�81�蝵�ff.�f�AUI��H�w(H�� ATI��USH��H�W���1�1ҿVL��I������H��H�@H�@M����I�T$H��t�fDH��H��H��uzH�Z�H��t�I��H�] ��u
H�������H�E H��v6H�XH��t,H�]��u
H�������H�xtH�MH�H��H��[]A\A]�f�I�|$��I��H���fDM��t�I�U0H��t.�I�}��I��H���O���@H��H��H��u�H�Z�H��t��+���H��H���m����.���H�E��`H��`����I�$��`H��`����H��H���������H��H���(���u
H�E��`H��`t	H�E ����H���`H��`t�H��H�������DAVAUATI��UH��SH��t]H;��tTH�^�L�+I��uW��������I��I��H�H��u8M�fA��u	I�����u`[]A\A]A^�@H���L�+I��t�M��H��t�H��t"I�^ H��tpH�u�L��H��[]A\A]A^�!��M�fA��u�I�����t�L��L���"���u�I���`H��`u�I�$��`H��`�t���[L��]L��A\A]A^���fD����H��I�F �u�H������t���H��L�������a���I���`H��`�Q���H���`H��`�A���H��L���.���1���f�H���L�O(L�G H��PO��L9�s!H�0H��t�H�p0H��uH��H��H��t��M���ff.�f���H���u@H��H��H���t��H���ff.����H�G0H��u�H��H��t�H�����H��.SH�8���H��H�j�/H��H��p��r�H��[�ff.�PXH�����H���M��ff.�f�USH��L�_0�l$0�\$@L�T$(I�C��Hc�I�\�PH9���H�G0�����]�I�\�fDI��I�B�I9�u�L�L�L$ I�S�H�T$8M�K�L�KM�K�I�[�I�s�I�K�I�C�I�C�I�S�M��u%H�O(H�W H��I9�r$I�C�H��[]�DM�C�H��[]�DI�S(I�S�H��[]Ð���L���i���HcL�GD�X�M�P�Ic�H)�I��L�WH��teSH��� uLL�H H�HH��I�DPH9�vJ1�H��~I��I�T��H��H9�u�I�A�L�WD�[��H��L�H������[���ff.�SH��H�w�C���Hc�����H���H�CH��X�Ӧ/H��H�{(������H�٦/���/H�H��H��H�pXH�C H�J�H�S0H9���H�K0H�HH��H�@�H�H�B�H�J�H�B�H�B�H�B�AH�B�H�B�H�B�H�B�H�B�ǃ�HǃH�C@�CL����Hǃ�Hǃ�Hǃ�[�fD����H�{(� ���D������AUATUSH��HcBXL�FL�Z8H��I)�I�CL�HIc��A�IdI��I��A9�����D)�H�L��H��H�@�H9�u�LcR\I�A0IciH�Z@N�,�H�G0L�RHL�bPH�l�PH�P�I��H9���H�W0H�QL�L�h�H�P�H�H�L�H�H�@�L�`�H�@�H�@�L�X�H��u9H�O(H�W H��H9�r8H�@�I���4L�FH��[]A\A]��H�X���f.�H�P(H�P���fDH���)��������ff.���AWAVAUATUSH��H��L�R8L�g0L�vLcjXI�BI�|$PM��H�hH�FH�{0%�D$H�� H�Ѕ��TI�t$XH�BPD���H�H�NE��~1E�A�I��1�M�xO�4��DL��M�,�L�l�L�hI9�u�J���EdD)ȅ�����H�D��H��H�A�H9�u�LcB\H�M0L�jPLcuN��H�JHL�B@�T$N�t�PH����Hc�M9���L�[0H�H�HL�O�H�O�H�G�H�o�H�W�L�o�H�G�H�G�L�W�M��u;H�S(H�C H��H9�r:H�G�I�t$XH���4[]A\A]A^A_�f�L�G���f.�H�G(H�G���fDH���)����H��1�H�T$�H�T$H�{0L�R8L�_�������ATH�G0USL�F L�X�L�IH�YE�PdL�!A�HH�pI��I�h0D�Hc�H�L�PI9���L�_0E����A�J�H�L��H��H�F�H9�u�H�qL�	H�h�H�p�H�H�L�@�H�@ȑL�`�H�@�H�@�H�@�H��u/L�G(H�w J�4�H9�r.H�@�H��tH�Q�[]A\��H�X���f.�H�p(H�p���fD����H���a�����PXH���!��H�����f���AWI��AVAUI��ATUSH��H���B�`H�kH���k�kXL�c8L�KPH�K@I�E0M�t$H�[HE�F �$�/ ��H�PH�p�H��H�zXH9��I�u0H�rH��H�B�H�H�@�H�p�H�P�H�@�H�@�aL�H�H�@�H�@�L�`�H����I�M(I�U H��H9���H�@�E��x	A9����EI�OI�~��H�L��L�$H��H)�I�OH��A�VI�}0L�$H�WPI9���M�}0�9�/@�H�Ĉ[]A\A]A^A_ÐH�H��f.�H�P(H�P��s����+���HcBXH�vD�X�L�V�Ic�H)�H��M�WH���x���H��� �H�x H�HH�,�I�D*PI9�v�1�H��~H��H�T�H��H9�u�I�A�M�WD�[X�#���I�U���A���� �@���H�D$@I�D$H�|$0H�L$H�D$PI�D$D�D$L�L$HL�$H�D$X�D$0 L�l$8H�D$`4H�D$p4�D$h�q�I�E0H�L$D�D$L�$����f.�D�uD�t$�2��I�Ic�H�$H��H�|$H�t$ �����E1��D$,H�D$H��H��L�$��
�I��K��J�t�H�<$�[��I�FL9t$u�I�WH�D$ L�t$H��I)�H�$I�HcD$,H��H)‹CXI�W�h+l$�kX���f�I�U���A����@���I�T$H�|$0H�$�D$0@H�T$PI�T$L�l$8H�D$`L�|$@L�L$HH�T$XH�D$p4�D$h�7�H�$���fDH��H�x�������D$H�T$���D$,����D��D�Ɖ����H�='L1������AUATA��USH��H�؜/H�C0H�PPL�hXH�S0H�PH�PX�G���wdH�H�.H�
�H��\H�<ƾ���A��H���H�5U��HD�HD�H��H������H�C0H�P�H�S0L�hH��H��[]A\A]ú��E��D��H��H���u)H�F�H��t�"@H�@�H��uH��H��H���t��2��H��tH���H�=�A�ܫ�ff.����AWAVAUI��ATUSH��H����I��H�wH��I��I9�u<�H�{tH�MH�H�[ I�mL�m H��tyH�sL9���1�1ҿV����L�cH��L�`A��u�I�����t�L��H�����u�H�E��`H��`u�I�$��`H��`�w���L��H������g����I�EH��[]A\A]A^A_Ð1�1�L���V�_��L�cH��L�`A��u	I�����uuH�{tH�MH�H�[ H�] ��u	H�����uI�mH��[]A\A]A^A_�H��H���˿��u�H�E��`H��`u�H���`H��`t�H��H���C��븐L��H��蕿���x���H�E��`H��`�g���I�$��`H��`�V���L��H������F���ff.���USH��H��H�nH�{ H�u��"��H�E�H��H��[]�@��SH�FH��H�{ H�P�H�p�����H��[�ff.���H��H�=�H1��j��H�r�.H�b�.H���D��H�L�.���H��t2H��4t,H��.H98tH���.H98tH���.H98u
H��.�@H���.H�WH�5���H��H�B0H���.���f.���SH������H�Ϙ/H�XH��(H�H��([���SH��(H��u�$DH�H��tH�{�t����H�H��u�[����ATUSH��(H��tML��(��EI��H�H��t2H�k�}u�H�}�>�H�����H�+H��I�,$H���Զ�H��u�[]A\�f.���SH��H���H��[馶�fD��UH���SH��H���V��H�CH�hHH��[]����H������`����S�H�����H��t>H�CH��H�@HH���t-H��t��H�WH�RHH���tH��u
H�H��u�[�f�H��[�1�[����H��H� H��tH�?H�T$�R��1҅�tH�T$H��H���ff.�@��AVI��AUI��ATUH��SH��H��L�d$H��u��DH�[H����H�{ H��tH�?L��H���ܞ��t�H�D$H��t�H�PH��t�
��������HD�H���/��H��tTL��H��H1�#C�.H��H�<�.H��I�MH�I0H�Z H�jH�JH�
5�.H�
H��t=H�HH��t4�9t/H�BM��tI�H��[]A\A]A^�fD1�1��w����H�B1���@I�EHD��O���ff.�@��H��H��H1�#��.H��H���.H��H�
��.H9uH�OH�I0H9Ht�~���fDH9pu�H��tH�H H�
H�@ÐUSH��@��tT@��un�������H����@����H�nH�!�.H9G uRH�EH�O(H9H0uDH��[]�fDH�����u�H��tqH��u�H�%�.H�(�H�i�.H�(H���.H9G t�H�7H��H�W@H�����H�k0H�C8H��	H�C`H���.H�C H�EH�@0H�C(H��[]�fDH�	�.H�(�I����H�ٖ.H�(�9����H�y�.H�(�)����H�I�.H�(�����H��ATI��H!�UH��SH���t)H�*�/���uH9���1�[]A\�f�H��H��H��H��H	ШuH��/���t�H�������H��H	���H�������H��.H�CH;t5H��.H;��H;EuzH���/���ujH��H��[]A\���H;Eu�H�f�/���u��؃������K��������Ef.���������[�]A\�DH��L�����I�D$8H��t+H�P�4�:����H�
"5�H9J��������4���H��H9�t-H�����f(��d���H��H9�tH������[���f���?���f��I������UH��H��SH!�H��H��xH�$�H�D$0H�D$ H�D$8H�D$@�t*H�+�/���uH9���1�H��x[]��H��H��H��H��H	ШuH��/���t�H�������H��H	���H�������H��.H�CH;t6H��.H;��H;EuzH���/���ujH��H������[���H;Eu�H�e�/���u��؃������K��������Ef.������
���H��x�[]�f�H��H�����H�D$8H��t+H�P�4�:����H�
"3�H9J��������4���H��H9�t-H�����f(��e���H��H9�tH������\���f���@���f��J������SH��H��H��H��1����H9�tH�CH��t
�8t1�[ÐH�sH������1�[�H�FH�@H��tKUH��H��SH��H��H�v�K���H��tH�P�:
uH��H��H��H��[]�@1�H��[]��1��DATI��UH��SH��H��t5H�v�4��H��t&H�sL��H������H��tH�P�:
t	[]A\�@H�CH�@H��u�L��H��H��[]A\�9���f���H��tH�F�8
u�y���f�H���ff.����USH��H��H�l$H���V���H��tIH�P���
tVH��tH�T$H�H��tH�PH��t���tH��[]�DH��1�[]��H��t�H�T$H�H��[]�@H��H�ƿ����H��u��f�U��SH��H��H�|$H�t$�F��H��u1�H��[]��1�H��H���#���H��t݋��9�uԸ��ff.�����D����D��1��u���D��S��1�����1�H��t>�����t���u/�Àt��u%f�H�@H��t'�8�u�����EЉ�[�f�1���ff.����SH��H��H�|$H�t$�E��H��uH��1�[���H��H���p��¸��t�H��[�ff.�@��H�vH�韽��ff.�@��UH�-�8SH��H�^�3�d��3��
��HcT�H�>��fDH�sH��H��[]�6��fDH��[]�f��sH��H��[]����H�sH��H��[]���fDH�sH�����Hcs H��[H��]�Ү�f�H�SH��t�H�ZH���P���H�sH��H��[]馮�H�=�;1��(�����1�H���Q���1�H��t�������H���ff.�AVI��H����
AUI��ATI��UD��SL��H�� �H��4��uLA�L��L�,$�<��H��E1ɉl$H�D$H���.H�OH��H�=5H�\$L�1���H��H�� H��[]A\A]A^���H��H�=1輏�H��tW1��
H��蘶��~D�P���u�lj�.��.�3D��H���.H��:�H�81�����f��=ʽ.�(谱�H���.H��tH���H���.�"�H�=�H��O�����D��H���/H��tH�@0H��tH�@ �PH�J�.H�5[0H�81�艓�f���UH��SH��H�����H�$1�H��tH�����H��H��H�D$H�=��ѵ�H��[]�f.���H��H��H�=G�.骵�f.���AVI��AUATUH��SH��H��/L�khL�cp�ֱ�H�CpH�É/H������H�spH�ChH����H�t$L���B��L�kh�T$L�cpH��t�UH��[]A\A]A^Ð��t�H�u�/H���H�xH����D��SH�� H�P�/H���H��tH;8u�UDH98tKH���H��u�H�<$H�=/H�t$�蝟�H���/�H��H�D$�t��H�����@H�p1�H����9�P��H�=Ɉ/�H��H���H��H�
��ff.�f���PXH�Ha1�H��H��L�D$�@��H�t$H�<$貖�f���SH�����H������H��H��萖���H�=E�/H�G0H�w(H�� H�PP����H��tH�@H�PH���f.���H��.H��H�ں.�f���H��/���H�W(H�G H��H9�s'H�FH��t	�H�~uH��PH9�r���H���1�Ð��H�O(H�W H��H��H9�s3�H�PH��t��uH�����tH�����uH��PH9�r�1��f���SH��PH�@�/H�C0���/@uH��PH�C0H��P[�DH�S�������@t�H�PHH�D$H��H�@ �$@H�\$H�D$H�BH�D$ H�BH�D$0H�D$(H�D$@4�D$8詏H�C0���AWAVAUATUSH��8H�|$�eH�t$ H��H�T$(H��1�H�D$@����H�j�/H�D$0H�C0H�\$H�D$H袘�H�|$0H�\$H�T$PH��$0H�D$P4H�G H���H�=�H�t$`H��$(H�BH�x1��H�H�HH�`H���H�\$H�|$(H�D$��H�P0H�L$0H�B@H�B H�J8H�L$H�|$ H�APH�D$��H�D$@H��$(H�|$H���H�D$@H��8[]A\A]A^A_Ð��H�D$�PH�@H���u���H�D$H����t\����H��$(H�L$H���H�D$H���H�xH���f�H�@0H�@0H��u�H��H��t�H���6���@H�L$HH;Hu�H�@H�t$H�D$@H�D$H�FHHdžH�D$8H�F0H9D$8�����xat~H�t$H��PH�F0H9D$8u����DH�L$HH;H�6���H�D$HH�D$8H�D$H�@0H9D$8t�xatIH�L$H��PH�A0H9D$8u�H�D$�@HHǀ�A��������H�D$H�@0�^���D����H�D$H�@0����H��(H�<$H�==	H�t$H��T$L��H�L$L���!��H��(�ff.����H��(H�<$H�=�H�t$H��T$L��H�L$L�����H��(�ff.����AWAVAUATUSH��8H�d�/H�D$8H�C0H�T$ H�T$PH�L$H�
�H�D$@H���H�|$HH��$0H��$(H�D$HH�t$H�D$PH�BH�\$H�|$`H�H1��H�H�HH�`H���H�|$HH�L$HA��H�t$ H�D$��H�D$81�H��$(H�|$H�t$H���H��t�H�D$8H��8[]A\A]A^A_�f.���H�T$�BH�BH��t���u�H�L$H�T$HH��H9Qu�H�D$@H�D$(H�D$H�@0H9D$(t�xat=H�t$H��PH�F0H9D$(u�H�L$H���H�@HǁH�D$81��1���f����H�D$H�@0���H��H�L$�N����T$��uH���H���/H���H�xH�
��f.���UH��SH��H��H��t+�&��H�����H��H��H��H��[]���f.�H���.H�8����ff.�@��H����u4H�u�.H�8蕘�H�D$H��1�H�5$菷�H���f.�H�L$H�t�1�譕�H�|$��fD��UH��SH��H��H�G0H9�t�xatH��PH�E0H9�u�H��[]�D�S���H�E0��ff.�f���H���/H�@0P�ff.�@��UH���SH��H�O�/���H��@H�(H�PH��@H��[]�fD��USH��H�_ ���H��H�D$蠯�H�EH�D$H�l$H�@��H�X H�{(H���`��H�CH��u�H�|$�=�H�|$H���`��H��H��[]�fD��AWAVAUATUH��SH��(H�~ H�T$H�D$uvH�T$H�� A��H�����@D�c8L�t$I������oEH�|$H���oMH��HH�E D�c8D�k:H�C �C9���L�{(L�s0H��([]A\A]A^A_�H�=!/1����f���1��E���D��H��L��~/I��I�p0L���2���H��t6H�p L�H81�H�@@H��.H�����1�1�H��H���ǿ�H�=�.�{��ff.�AVI��AUI��ATI��USH�V0H�2@����fDH��H��H�6@��t�H��H��tH�C H��t&H�H H��H�MI�[H��L��]L��A\A]A^���H�).1�H��L��H��I���I�T$0H�H H�C H��H�MI���H�����H��H�T$�>���H���f���ATUH��SH��H�_0L�d$�H�U(H�E H��H9�r�-DH��PH9�sH�{t�H��L��H��H��P������@H��[]A\����AVAUATUSH��H�W(H�G H��H9�sH�~H��H��t	�8H�{u1H��PH9�r�H�D$H���.H�5Y-H�81�����H���0���H�D$I��H��t�L�l$f.�L��H��H���"���I��L9�t:H�M(H�U H�CPH��H9�spH�[`H��u@H��PH9�s�H�xt�H���H���.H�8聞�H��H�h I��H�CH�@L�uH�EH�D$H�E��`f�EH��L��[]A\A]A^�1��^���ff.���UH��AWAVAUATSHc�H��hL�wL�%�{/dH�%(H�E�1�H�H�E�H�E�����H�@ I��H��H�xL�h(H�}���~x�sHc�H��H����9H�E�H��x���H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%��L�L$I����f�H�E�L�M�H��x���I�I�yH��H��L�M����L�M�1�1�1�L���d��I�u L��L��M���A�H��H�����H�CH��x���H�E�芺�H�E�H�M�1�L��H���e��I�t$0H�U�L������H�U�I�I�WI�D$0PH�@ H��8H�M�dH3%(uRH�e�[A\A]A^A_]�DH�E�H�U�H��H��x������H�M�I������D1��@H)�H�L��������D��H�=�y/�H�w0������H��H�=�y/�H�w0���@��H�=�y/1�H�w0����f.���H��H�=�y/1�H�w0�W�����H�=uy/H�w0���H��tH�@H�@�fD��f���H�=Ey/H�w0��H��tH�@H�@H� uH��ÐH�@�ff.���H��H�=y/H�w0�X�H��tH��H���]�1�H���f���H��H�=�x/H�w0��H��tH�p0H�xH���b��f�1�H���f���ATUH��SH��L�d$L����H��H��t	H�@�8
t#H��t	H�D$H�EH��H��[]A\�f��k����H��tH�xH�C�8
u�H��L���9�H���@��I��H�=x/SH��H�w0�U�L9@ uH�p0H�x���H9Xu[�f.�1�[�ff.����H��H�=�w/H�w0��H��tRH�p0H�x�V��H��H��t6H�@H��t�H�JH��uH�R H��u�H���f�H��H��ø4��H�
�.H�5�'H�81��I��f���PXH���Ѭ��H���)��f�PX1ҾH�=�H���������H��4uH��v/H���H�p����H��"��Hc�H�>�����H�=g'�J���f.���H�=��*���f.��H�=_������H�=Y�����H�=R�߫�����f���S�4������H��tH�����H�=�u/��H���H��H�H������PX�H��H�=�u/腽��D��PXH��H��H�=�u/�g������H��H�������t,H�GH�@8H�x H��tH�?H��H�5��H�����DH���ff.���H�GH��u�Y�H9��tH���H��t{�uH�����t
�����tfH���H��t�H��tH�H��t9H���H���@H�OHH��t)H��tH�AH�@H�H��tH�AH���D1��D�H��tH��H��t�H����H�0�3�����H�
ut/H��H��H��H�y0������USH��H�_0H�kH��t1H�;t<H���XH�M H�uH����[H�=��1�]�=��DH�CHH�@H�xH��uH���[]����H��H�CHH�x蓴�H��H��H�=H��[1�]���f���AWE1�AVI�ιAUI��1�I��ATI��UH��L��E1�SH��H��H��s/L�{0蛯�H�D$I�WA����A���D������7I���EA���KI�uH�D$H�zXL�@ H�C0H�H�H9���H�K0H�JH��H�B�L�2H�@�H�H�H�P�L�@�H�@�AL�h�H�@�H�@�H�@�H��tUH�p�L���H�C0PH��[]A\A]A^A_��I������X���I��t]M���I���H��z.H�0�>���DH�K(H�S H��H9�rH�@��DH�P(H�P��fDH��y.H�0����H��u.H�0��������H�qt.H�0����f�H�	y.H�0����H��{.H�0������H���tATL��(USH��(H��L9�tf�H�}���H�mL9�u�H��@H������H��XH�������H���H�������H���H�������H���H������TH���H������%H���H�������H���H�������H���H�������H�� H�����uqH��0H�����uNH���H��t��H���H���H���s�
�H��H9�tH�;H��t��ʢ�H��H9�u�[]A\�跢�H���H��u��褢�H��0H�����t���荢�H�� H������_������r��H���H������4������W��H���H������������<��H���H������������!��H���H���������������H���H������x��������H���H������I������С�H���H�����������赡�H��XH�����������ff.���ATI��US��H��H��H�--o/��H���؊�L��H����u:H�����t2H��у���D�H��s9��tH�р�H�xH�t��t/H���`H��H��[]A\駋������H����H��H�D$���H�D$�ff.����USH��H�wn/H��0uH���[]�f�H���ز�H��0H��H��覘�H���[]�f.���H����AUATUSH��H��H��L��8HLJH��tH�}��2H������H��@H��(Hǃ8H��0H��(H��tH�oL�/�t�H��A��H��H��u�H���6�M��tL��艺�H���Q��1�H�lm/H��[]A\A]�f�1��ff.�f���Hc�m/��?�P��m/H��m/H�<���Ӌ���H��H�51T.�~��H�H��H�Ѓ��ff.���AT��USH����f��H��S.H��H���4��H�5�S.H��H��l/H��L�`�׎�H��L�`H��H������p��H�=.I���\��L��H��H���~��H�_l/H�CpH���Hǃ�H�ChH��[]A\Ð��AWH�=�AVAUATUSH��(H�hn.H�0�H��L�-�p.H��I�E�E��I�E���
��i�ƒ�����H���	<�)H�xH�-Fs.L�%n.L�=�u.H�5�����I�}�����H����H�5-��0��H�1m.H�8���H�H��I�������H�n*H��H���u�H�߹H�D������u�H�߹H�[���u�H�߹H��"���hu�H�߹H��!���Ou�H��1ɾ�H������9u�H�߹H������ u�H�߹H��������u�H�߹����H���������t�H�߹����H��������t�H��1ɾ�H��k.�t�1ɾ�H��H�Nt.�t�L�����H�CH��H�C�م�L�����H��r.I�}H�5hL�0H�Ml.H�譸�H�Vo.H��H��+��H�������	�ƒ�����	H����	<�0
H�xH�5�����H��k.H�=�H�0�º�H�
Kp.H��H���諉�I�}H�5c�H��H��襸�H�=����H��H��虭�H�=����H��H���}��H�=���H��H���a���,��I�}H�5�H���9��L�5�h/�͹�I��XH��H��������?H�T?H9��3�H�=sH�T$蕷�H���-��H�T$H��H����I��`H��������?H�T?H9����H�=;H�T$�H��H�����H�T$H��H��谒�I��hH��������?H�T?H9��y�H�=H�T$��H��蓬�H�T$H��H���c��I��pH��������?L�t?H9���H�=�賶�H���K��L��H��H�����H���e��I�}H��H�5����H�=C�H��g/L�5�g/�~�E1�E1��1�H��H��苣�I�}L��H��N.H�D$�î�H��H�iN.I�H��m.H�8觮�H�CH�D$�	��H�|$H�5�(H�����H�g/H�|$I��H��f/H���L�sH�CpH�ChI��(I�� H�I��0H�CI��0H�I��8I��0芃�H�D$H�P H�C0H�PH�R0H�H�ShH�@(H�P �ݒ�H�=žH������1�H�}�+H��h/H�Hf/f��x1�袷��I�<$1Ҿ+蒷��H��i.1Ҿ+H�;�|���L�-�m.1Ҿ+I�}�e���1�H�}�H��e/�-f��z�B���I�<$��-�/���1�H�}�H��e/f��|�*����I�<$�E1��*���H��e/1���/f��~H�}�Ӷ��I�<$��/���H�Qe/E1�H�}��%fD���蛶��I�<$��%舶��H�e/E1�H�}���fD����c���I�<$����P���H�;����>���H��d/E1�H�}���fD����������H��j.H�8����I�<$������I�?�E1����ص��H�;����Ƶ��H�Wd/E1�H�}��<fD���衵��I�<$��<莵��H�d/H�}���fD����l���I�<$����Y���H��c/H�}��>fD����7���I�<$��>�$���1�H�}��H��c/f��������I�<$������1�H�;�	H�uc/��f����̴��I�}�	��蹴��1�I�}�
H�?c/f�����薴���
��L�%�f.I�<$�|���H�
c/1����f���I�}�Y���I�<$����F���H��b/E1�I�}��AfD����!���H�;��A����I�<$��A���H��b/E1�I�}�
�QfD����׳��H�;�
�Q�ų��I�<$�
�Q貳��H�Cb/E1�I�}���fD���荳��H�;����{���I�<$�E1侗�e���H��a/E1�H�}��q1�fD����>���H�;��q�,�����qH��d.H�8�������H��a/f���H�i.H�8���H�;����ڲ��H�ka/H�;���
fD���蹲��H��([]A\A]A^A_�IfDH������|���H����H���i���H�Ji.H�8�^���f�H������3���H����H��� ���H�i.H�-ch.L�%<c.L�=�j.H�8����D�Ӄ�I�������Ã�H���z���賃�H������裃�H�����H�-h.L�%�b.L�=cj.H�}��f.�H��c.H�-�g.L�%�b.L�=4j.H�8��@H��c.H�8�u���f�H�}�c����I�<$�S����L�%Yb.H�-rg.L�=�i.I�<$�*�f�H��f.H�8�����H��f.H�-Bg.L�%b.L�=�i.H�8���@L�=�i.H�-g.L�%�a.I�?���I�?������USH��H�g_/H��H�P(H�@ H�D�H���H�x@��u	H�����uH��[]�f.�H��H��H���r���u�H�E��`H��`u�H���`H��`t�H��H��H��[]��|�@��U��SH������H�����H���kH��H���_H�}H��1��@H��H�E�HDž�H)�������H�H�{H��H�-s^/H��H�Hǃ�H)�������H�H��(Hǃ8H�=TH��0H��(ǃ������H�����H�=�H��X�+����@�H�=#H��`������H�=H��h��H��`�?H��pwHǃ`�H=�?wHǃp��X�H�{]/H��8�ǣH�]H��1��ɶ��H��H��[]��H�4g.�"�H�=��H��˥�聥���SH�]/���H��0�~g�H��X[�D��H��\/H����ff.�f���H�_.SH��\/H�8�5t�H�����H�5&m1�H���H��\/H����;��H��\/H����(��H��lH�5�l[H���q����H���@��H���@��H�=\/H�ff.�AWAVAUATUH�-�@.SH��H���I.H�G0H�<$I��H�I�� @��I�GM�fI��L��H�h�H�$M�7I�oH�� H��H�L$H�҅��DRE��A����/E��A�����-H�$H�P(H�@ H��A���yMA����KA���t`M�W0M�A����[L��DH��H��H��t�I9��NaL��L�רu<�H��H��H��t�H��t-H9�t(H9�tBH��PH9��aH�{0H��t�H��H��u�H�C�8�
L�{��LH��H9�u�H�C�8u�H�ڹ��,��I�OI�WXI��I�GHcqdH�h�H���9M�7H�T�I�GH�rHD�H9��T_H�$H�� H�D$H�Ѕ���PH�$H�$A�GH�P0H�BPH�A0�l,H�JPH�PI��H�*H��I��H�P�!���I�VI�FL��L��I��I�H��Y/�����PH�UH�H��H�U�cf���I�^I�FM��1�I�I��L���CH�މCX蘝��HcSXH�����H��H��H)�I�WH�4H�sP���H��L��H�<$�S`H��4�;I�WH�H��I�WA�d$���I�nI�^I�� I�GM�f��L�h�H�H���M�7H���I�oH�D$p����:���v+I��A��t$���W_H�������J_������<_A���U_I������H_A�E�����8_L��L��H�L$�n�L��L���7���H�L$H���RO����AL��H���u��H�L$H��@���U^H������H^�E�����9^E1�M���!:H�}H�L$��H�L$H9��:L���7b�H�5�xH��H�>Y.H�81��a�@��I�FI�VL��I�I�ƅ]�/��M�c@��M�nL��L�t$L��H���L��I�I��A�EL��A�EX苛��IcUXH�����I� I�o(M�gH��I�}PH)�I�WH�H����\H�EI��H�@@H��tI��H��I�0�����tI��tDH���H�L$ uH�����t	����>H��L�D$H�T$�ݒ�H�T$L�D$H����\M�E0L��L��H���h�������{]����&\I�}0H����6H�
��A�E\ I�M`L��H��H�<$��H��4�:8H�SH�H�D$H��H�S�`f���M�fI�FL��H�����I�I��IcD$L��A�D$XH��H)�H��I�WH�4I�t$P����L��L��H�<$A�T$`H��4��7I�WH�H��I�W�e��I�^I�W I�FL��I�I��M��H�SPI�W0HcCH�CHL�
�CXA��u@I��M�	A��t�I�UI��H���������[M����[M�aA��uI�����tA�$�����8+A��$�I�mH��I�Q �L$H)�H���'*�D$A�A��$�~�@NH�$L�x0�C��OH�KH����N�SXA����:A;�$���L�L$���>L�uL����}�L�uH����=H�Ic�$�L�L$�� H����=H9x��=I�WH�T�PI9��R1҅�~+H�x�H��� I��uL�@ Hcʃ�M��L�D�9�|މSX�C\1�A�t$dID$0I�mLcl$E�T$I�yM�AD)�|$N�\�I�	H�H��H��ARH��I��jH�¡VL��ASPH�\$0H���ѫ��H�S0H��0H�I��I�� fD��I�FI�O0I�VL��M�fL��I��I�H��H)�H�9@��uK@����XH�������X�������XK�t$���H��u"�H�EH�H��H�E�c�ȣ�D��s�1���fD��I�FI�WL�t$L����H�j�L�j�I�V��I��I�I�o�ʨ��3H��L���#�H�����u1�H�CH�H��H�CH�D$�`H�\$���fD��I�FI�WI�v L��I�NM��H�D$I�FI��L�B�I�7H�r�I�w�Ń��TYH�=����Hc�H�>��D��I�NI�vL��I�7I��H��I)O�`���I�GI�vM�FL��M��H�x�H��M�H�<�H�x�I�G�b���I�FI�vL��I�I��I�GH��H��H��H)�H�w�H�p�I�G�bf.���I�WI�vL��I��H�z�I�7H�z�I�W�a@��I�GI�vL��I��H�x�L�@�I�7L�@�H�x�I�G�a@��I�NI�FL��M��I��I�I�GH�4�H���&GH��H�H���H�H��H�P�H9�u�I�p�g���I�GI�~L��I��H�p�I�?H��H�p�H�p�I�G�a@��I�NL��I�oI��I��b���I�GI�VL��H�x�H�p�I�FI�oI��I��i�I�WH�H��I�W�e��L��I�^L�t$M��H��I�I��H�\$�i��H��H��H��L�$�H��t"I�EH��J�T J�4 I���z�H��u�L�d$I�EI��L)�H�(H��I�EH�D$�`fD��I�GI�^�M��H�
�`H��^L��L�h�I�FI�oI�I��L��蘝�H���I6H�������4H�UH�H��H�UA�d$D��I�G�L��M��H�
`H�x^H�h�H�@�I�oH�D$I�FH��I�I���#��H�|$�H�C^H�
�_I�����H��I����5H���T5I9��15H��L�����I�UH�H��I�U�cfD��M�VI�OI�FM��I�nM��I��E��H�y�H�Y�I�A��I�_Mc�H�|$xI�@��u
H������^$H�L$ D�L$L�T$L�D$�F}�I�uH�L$ H�D�L$H�D$xL�T$L�D$I��L�I�u�� �Y"H��H�p��A����!H9���)1�1�H9�s'H�L�1�@L�H��H��H��L�S�L�L9�w�E����?H�D$xH��$�H�D$xA�`D��I�FI�~L��I�I���Fj�I�WH�H��I�W�c@��I�~I�FI�wM��I�I��H��H��H��d��I_H�H��I�_A�d$��I�F�"H�=L��I�I���c�I�WH�H��I�W�e@��I�FI��L��H�<$M�7��H��H�$��MH�@0I��H�I�� @��I�WI�FM�fL��I��L��H�r�H�J�I�H�B�I�GH���u��H�==P.H9u*H��L/���uH���y�H�UH�H��H�U�cA�D$H�r�L��H�J�H�UI�t$PI�D$HA�D$X����L��H��H�<$A�T$`H��4u�H�$H�@0I��H�I�� f���I�GI�~L��L��H�p�I�FI�oI��I�H�,L/�����A�y�H�SH�H��H�S�e��I�GI�^I�VL��I��M��L�h�I�oH��I�L���p���H�C8H��t
H�@�8�4 I�T$�CL��H��L�*H��I�T$H�CH�CXL�kP�,���H��L��H�<$�S`H��4�0I�T$H�H��I�T$�e���I�GI�VM�fL��I��L��H�p�I�H�P�H��I�W@��u
H������b&@����)H�=K/�����)H�FI��H��I��H1�I���0?H�H�K�e��I�WI�FI�^M��I��L��H�r�H�z�I�I��I�H���u}H�����ttH�
N.L�NL;	��?H�
iR.L;	�18H�
�M.L;	uDH�
uJ/���u4H�VH���;KH�B�����HD�H�L�EA�d$f.��CH�r�H��H�UH�sPH�CH�CX讴��H��H��H�<$�S`H��4��.H�}L�GH�L�EA�d$��I�GI�VM�fL��I��L��H�p�I�H�P�H��I�W@��uoH�����tfH�=M.L�FL;�p>H�=kQ.L;�o9H�=�L.L;u6H�=wI/���u&H�v�H����IH�FH��H�H�K�ef�H�p�L��H�CA�D$I�t$PI�D$HA�D$X踳��L��H��H�<$A�T$`H��4��-H�SH�JH�H�K�eD��I�GI�VM�fL��I��L��H�p�I�H�P�H��I�W@��uwH�����tnH�=L.L�FL;�J=H�=sP.L;�z6H�=�K.L;u>H�=H/���u.H�v�H���QIH�FH��H�H�K�ef.�H�p�L��H�CA�D$I�t$PI�D$HA�D$X踲��L��H��H�<$A�T$`H��4�
-H�SH�JH�H�K�eD��I�GI�VI�vM��I�nL��I��L�h�H�H�I�I�OA��u
I������L�)H��H�CH�L$�Պ�H�L$L��H��H�A�EH�CH�EH�EXL�mP�
���H��H��H�<$�U`H��4�+H�SH�H��H�SA�d$���I�oI�FI�vL��M�fL��I��L�m�L�E�H��I�I�oA��u
I�������H�EL�mH��H�CH�L$L�D$���L�D$L��L��H�EH�CL�@H��H�CA�D$I�D$HA�D$XM�l$P�;���L��H��H�<$A�T$`H�L$H��4I���%*H�CL�H��H�C�a���I�GI�VI�^M��I��L��H�x�H�p�L�h�I�H�P�I�W@��uCH�����t:H�
�M.H�WH;��;H�
~I.H;uH�F/���u
L���Yp��GH�x�H�p�H��L�h�H�E�CH�{PH�߉CXH�CH�Z���H��H��H�<$�S`I��H��4�B*H�EL�(H��H�EA�d$@��I�GI�VI�^M��I��L��H�x�H�p�I�H�P�I�W@��u@H�����t7H�
&M.H�WH;��9H�
�H.H;uH�.E/���u�(^��@H�x�H�p�H��H�E�CH�{PH��H�CH�CX药��H��H��H�<$�S`H��4��)H�UH�H��H�UA�d$f���I�GI�VI�^M��I��L��H�x�H�p�I�H�P�I�W@��u@H�����t7H�
�G.H�WH;�}9H�
JL.H;uH�fD/���u谈��@H�x�H�p�H��H�E�CH�{PH��H�CH�CX�Ů��H��H��H�<$�S`H��4��(H�UH�H��H�UA�d$f.���I�OI�FM�fL��I��L��H�q�H�y�I�H�Q�I�WH��H!��t/H��C/���uH9���HM�H�H�BH�C�eH��I��H��I��L	����jL�rC/A����U�������6�N�������`6�Gf.ȹHC�����I�WI�FM�fL��I��L��H�r�H�z�I�L�B�M�GH��H!��t/H��B/���uH9���HN�I�@I�H�C�eH��H��H��H��H	�����H��B/������������1�N�������7;�Gf.ȸHG�����I�OI�FM�fL��I��L��H�q�H�y�I�H�Q�I�WH��H!��t/H�B/���uH9���HN�H�H�BH�C�eH��I��H��I��L	����|L��A/A����g�������4�F�������B5�Of.ȹHC�����I�GI�VM�fL��I��L��H�p�H�x�I�L�@�M�GH��H!���t/H�JA/���uH9���HM�I�@I�H�C�eH��H��H��H��H	у���H�A/����|�������/�F�������L8�Of.ȸHG�����I�FM�fL��M��H�D$I�GL��H�X�H�@�I�oH�D$I�FH��I�I������I�D$8H��t
H�@�8��I�EH�L$H��L��H�H��H�H�I�EA�D$I�D$HA�D$XI�\$P輪��L��L��H�<$A�T$`H��4�$I�UH�H��I�U�e���I�GM�fL��L��H�H�L�h�I�FL��I�oI��I�H��L��H�L$�t���H�L$H��4�?&H�SH�H��H�S�e��I�GI�VM�fL��I��L��H�p�H�x�I�L�@�M�GH��H!���tPH�Z?/���u@I��H��I�H�M��A��H���r$E���i$H��H�I��H�DI�I��L�C�eH��H��H��H��H	ʃ���H��>/������������u-�O������|6�F谨�H�0fH~�H9���0fH~�H��<��������9H���u0H��L�C�M���@��I�GI�VM�fL��I��L��H�p�L�@�I�H�H�I�OH��L!ƒ�tcH�*>/��~uSL��H��UH�H��H���['H���J7H�H��H��H9�yH��H�@H��7H�D�WH��L��H��H��H	ʃ���H��=/��~���������,�FD��������5�AH�^��gm��H�K��fD��I�WI�NM�fL��I��L��H�B�H�r�I�H�J�I�OH��H!���tnH�="=/��|u^I��I�tHH�I�����-M���6H���\:H��������?H�I��H9������26L��H��H�DH�H�AH�C�eH��H��H��H��H	�����H�
�</��|���ƒ����#,�H�������3�F�Y��Vl��H�K���I�GI�VM�fL��I��L��H�p�H�H�I�H�P�I�WH��H!σ�tEH�=</��zu5H�H�H�@H��I��H)�H���/H�DH�H�BH�C�eH��H��H��H��H	�����H��;/��z���������)�F�ȃ����4�\A�{k��H�S�D��I�GI�VM�nM��I��L��H�X�H�p�I�H�P�I�WH��H!��tBH�
:;/��xu2H��H��H��H��H1�H�H��H1�H���I0H�H�BH�EA�d$H��H��H��H��H	ʃ���H��:/��x���؃����")�K�������2�F�X��j��H�U�@��I�WI�^M�fM�nI��H�j�I�I�o@����
@���������yH��t#@����H��4��6�M�����5�#��I�^I�FM�nL��I�I��M��H�H��tnH���H9$�TL�l$L�,$�%D���H�H��t=H����I9��I�� H��A��t�1�L������H�H��u�L�kI�T$L�*H��I�T$�eD��I�VI�FI�~L��I��I��H�Cl.H9uH��H�rI��H�QH�2H��H�Q� f.���I�WI�^I�nI��H�R�I�I�oH�������H�<$H�� H�D$H�Ѕ���)H��I��#@��I�WI�^I�nI��H�R�I�I�oH�������H�<$H�� H�D$H�Ѕ���)H��I��#@��H�<$I�nI��M�7H�� H�D$H�Ѕ��.I��I�� f���M�fI�GI�VL��L��I��H�H�I�|$4L�h�I�I�O��H��j.H+8/M�l$I�$H��7/L�)H�C�e��I�FI�nI�w0L��I�I�I��M���{���I��H��uS��=fDI�|$H��t:H����u%H�����tH��փ���t��uf.�I�$���CI��I�D$ H��u�H�=�1�蘂�I�|$@��uH�����tH��ƒ����*H����<H���QK�I�UH�H��I�U�c���I�WI�_ L��M�fI�NL�j�I�VI�oI��I����-<H������ <H��ƒ����<���<��u:L�C% I�PH�z0I9<$��1I�T$H����H�CH�sH9���L��H��H���a��efD��I� I�FI�NL��M�nM��I��I�@��u
H�������L���Z�H��I�D$H�(H��I�D$�cfD��I�OI�vI�VL��I��H�I�I�7I�w0I�oH��uH��H��H��t�H�<$�	����cfD��I�w0I�FM�fL��I�VI��I�L��H��uf�H��H��H��t�M���RH�<$���H�UH�H��H�U�cfD��I�OI�VL��I�vI�G0L�A�I�NI�oI��I��х�~1�fDH���H��9�u�H��H)�L��g���I�VI�FI�vL��I�I��M��I�G0�х�~1��H���H��9�u�H��H)�H�I�@H�H��I�@�gf���I�VL��I�I��`@��I�FL��I�I��I�GH�H��I�G�a���I�FL��I�I��I�GH�H��I�G�af���I�G0I�NL��I�wH�H��H�~�I�vI�oH��I�7I��H)�H�8H�B����I�NI�wL��I�G0H�~�H��I�vI�oH)�I�7I��H�8�bD��I�FI�VL��I�I��I�G0H��H�H��H)�H�I�GH�H��I�G�f@��I�VI�0I�vL��I�7I��H��H)�I�WH�7H��H�r�I�W�af���I�FL��I�I��I�GH�UH��I�G�af���I�FI�vL��I�I��I�GH�0H��I�G�bf���I�VL��I�w I�I��I�WH�2H��I�W�af���I�FL��I�I��I�GH�H��I�G�af���I�WI�~L��H�r�I�VI�oI�I���	L�cfD��I�FI�~L��I�I���j�I�WH�H��I�W�c@��I�OI�vL��H�y�H�Q�I�NI��I�I�o@���l4H������_4������Q4�g�cD��I�GI�nL�t$L�|$H�x�I�FI�oI��I�H���\@���4H�������3�������3H����H�L$H�QH�H�D$H��H�Q�`@��I�FI�w0L��L��I�H�D$I�GL�`�I�FI�oI�I��豔��I��H��uI� 7@I�}H��t3H����uH�����tH��փ���t��uI�U����I��I�E H��u�H�=X�1���{�I�}@��uH�����tH��ƒ�����H����5H�t$L���F�c��I�nL��L�t$M��H��H�U�I�I��L�m�H�4�H�����H�T$H)�I�wH�<�/s�H�T$H��H��t#f�L��I�D$H��I��H��H�4���Y�I���u�I�D$H��H)�H�H��I�D$H�D$�`���I�FI�~L��I�I���r�I�WH�H��I�W�c@��I�vI�FL��I�I��I�GH���H��H�p�I�G�bf���I�FI�VL��L��I��I��������eI�w0I��ɒ��H����+�4H��u	H�PH��u	H�@ H��u�H�CH�H��H�C�e��L��I�NI�~L�t$H��M��I�H��I��H�|$H��L�e�H�L$�8�H��H�����H��H��t%@I�EL��H��I��H�(H���~�I���u�H�l$�t$H��H��I)m�>��H��H����]�I�EH�(H��I�EH�D$�`@��I�GL��H�x�I�FI�oI�I���A�I�WH�H��I�W�eIc�1�H�$H��9D�HH�Im�H��H��H��[]A\A]A^A_Ã���H�=��1��=�f.����4A���4I�������3A�E������3L��L���p��H���K!��L��H������y�H��@����2H�������2�E������2E1���H�<$��{��L��H��A����H��'�C$�]H��+��H��`�3H���]0��h���H������j�H���o�H���f�M�����W��@J�\#�H����1�H��u�fDH9���H��H��H��H�KH9�u�E�����H9���L�D$�VL�L�D$H����H�p H�P����#�#@����@����E��@��uH�����t	��������H�$�@H���H��f.�H��H��H�CH9�w��T���H�=���H9x����L��H��H��H�������H�=8��H9x���H�T$H�t$H�����H��4���H��H��H�����H�B E1��@:���D$A��A������H�r..H�I9E���H��*/������L��H�t$H�L$L�D$���L�D$H�L$H��H�t$��(I�o��H�..H�:I9}���H��*/������L��H�t$謲�H�t$H���x(I�OH�A��H�H��H��A��A��A����������C��)H�sH���*Hc{XI�EM�AI�	H��I��M�aH��H�H�D$I�A H����H�@ �x:��H�t$H�L$(L�D$ L�L$�|$�z�L�L$D�T$L�D$ H�L$(I��L�\$H��M�IL��D�T$��jH�|$I��H�G0�wXj�pjH�|$0�F���H��0D�T$1�L�\$H�L$A�D��I�t$L��A�T$H�$I]H�y0H�WPH�|$H�Q0I�]H��4�n/H�H��I�]�eH�������H��H	ʃ���H��������H�F+.H�H9V��H;Q��H��(/��z���������,�N�ȃ�����,�A�\�f(����H�������H��H	�����H�������H��*.H�H9V�zH;W�pH�*(/����\�������,�O�������+�F�$�f.�H������kH��H	����\H������OH� *.H�H9F�;H;G�1H��'/������������*�O�������*�Ff.��HG���DH�������H��H	����H�������H�
�).H�SH;� )H�
l*.H;��(H�
�..H;�sH��&/��x�_H���m�H�U��fDH�������H��H	����H�������H�
).H�	H9H��H;N��H�
{&/��|���ƒ�����)�H��������H��H9��x&H���:e�����DH�������H�p�H�x�L��H�CA�D$I�t$PI�D$HA�D$X臐��L��H��H�<$A�T$`H��4��L�C��H�������
H�p�L��L�@�H�CA�D$I�t$PI�D$HA�D$X�,���L��H��H�<$A�T$`H��4�0H�KH�H��H�K�eH��ƒ����K�L�OI�QH�R0�� ��!H�GH�oH�D$H;��!H� L�L$H�L$H����!H��$�L���.-����!L�L$H��$�H;D$H�L$I�QH�R0�i'H�AH��r!DH�!(.H�
H9N�lH��$/����XH����3�I�WH�JH�I�O�eH��1�H)��5��H�D��H��H9�u�H�����A�D$H�q�H�y�L��H�KI�t$PI�D$HA�D$X�Ɏ��L��H��H�<$A�T$`H��4��H�S��A�D$H�q�H�y�L��H�KI�t$PI�D$HA�D$X�{���L��H��H�<$A�T$`H��4��H�S� �H�p�H�x�L��H�CA�D$I�t$PA�D$XI�D$H�-���L��H��H�<$A�T$`H��H��4�m
L�C�@�A�D$H�r�H�z�L��H�SA�D$XI�t$PI�D$H�܍��L��H��H�<$A�T$`H��H��4�	
L�C�N�H�p�L��H�H�H�CA�D$I�t$PI�D$HA�D$X苍��L��H��H�<$A�T$`H��4��H�S���H�r�L��H��H�B�H�SA�T$I�D$HA�T$XI�D$P�:���L��H��H�<$A�T$`H��4�DH�K��H�p�L��H��H�X�H�EA�EI�EHA�EXI�]P���L��H��H�<$A�U`H��4��H�U�%�A�E���z���H�D$L��m���H�����H��������H��ƒ��������@���I�E(����H����������������H;xHD���DH���T�H������G�H��ƒ����6��@�#�H�E(���H��������������H;xHD����DH�p�L��H�CA�D$I�t$PI�D$HA�D$X踋��L��H��H�<$A�T$`H��4��H�SH�JH�H�K�e�H�� 0�������������H�Ef��H�D$�D$H��$��L$�<��L$f.�zKuI��$�f(�fT
[@f.
{@w*�
�@f/��	!f/�@�� �H,�H�l-H�H /���g��L���+��H��$�H��H���H(���:J��I��#I�m@I�uH���7���H�
p�I�E8I�M`M��u��M��$�M��tI��$�t�H�
A�H�����H�@������L9`����I�E@I�uH��H�xI�}0�ȉ��I�M`I�E8����E1�I�EL�|$D��H�D$A���:�H����H9���H�D$H�<�H��D���T�H������F����I�EHc�� u�I;U��I�E ��H�$I�H�@0H�p0�Ă��I��H��u�q�M�d$ M���\I�$�u�I�D$ H��H���)H��$�L��L�d$ I��H�D$�DI�D$ L��H����I��L�)A���u�H�YH��t��H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� L����n�H���L��I��H���#4��H�D$pH�X H�<$1�H���q��H���H�pI��H�w�5_��I�|$H���tH�I�$I�t$H�w�	_��I�D$I�t$ H���H�GH�w ��^��I�$�ĀtH���H��M����H�<$1�H���p��I���H�pI��H�w�^��I�|$I���tH�I�$I�t$H�w�z^��I�D$I�t$ I���H�GH�w �\^��I�$�ĀtI���H��I�0�s�KdI�WL�H�C0A��uf.�I��M�	A��t�H��I��E1�VH��jQH��R�1PH�\$0H���zt��H��$�H��$�H��$�H�C0H��0I��H�I��H���H��&��"H���E���H�$H�@0I��H�I�� H�$H�@0I��H�I�� I�w0I�����H���H�PH��t�>�H�HH����
H�@ H��u�� �H��$.H���L�l$H�$L��H��H�xH��H�=��H���:�H�I�|$H�CH��I���~i���L�l$L��謜��I����H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� H���_��W��H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� �H�sH9��~�L�,�H��L���\���eM�����H����H���H�I��I��H)�H��yE��tL�H�D�f��H�\$�x������
A��$�9������`I�wHc�H�D�PI9����q�Hc�A��H�D�A)�L��H�H�T�H�H��H9�u�KX���I�L����g�I�OH�A��L��H�T$�^�H�T$I�����H�D$H��$��H��$��j�H�����H��$��H�D$H��$��bj�H�T$I���O��H��$��L��$��;j����I�GL��L��L�(H��H�H�I�GA�D$I�D$HA�D$XM�l$P�Ѓ��L��L��H�<$A�T$`H��4�r��H�$H�@0I��H�I�� H���li�H�<$�GH�:�H���&���H�T$H��H��������H��H��I���*.�H��H������H������H�@H��4�`�L9�u�L�d$ H�$I�D$H�Q0H���	
�u>H�����t6H��΃���u)��@t$H�R(��uH�����t�
����uH;BHD�H��H���zT����H���MX�������"������H��L	ƒ��@�I�������3�H�T.H�H9V��I;P��H��/��~���������ND��������A@�^�f(��G��H�K��H��H	����V�H������I�H��.H�H9V�5�H;W�+�H�?/�������������O��������F���F��L�C�����H��H����H9��<��A��$��SXL��H�<$A���KL��H��H�L$�pc�H�L$H���F���H����H�H��H���������E���s��H��H�4�L�D$H)��:g�L�D$H��R���h��H���+�H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� H�$H�@0I��H�I�� H��$�I�w�L��L�A0�de������I�u�H�VH�I�U�c I�w0I��xy��I�wH�VH��u��fDH�@ H����H�xt��H����e�I�w0H��Lc�H��uH��H��H��t�M����H�<$1���c��H����I�uH�VH�I�U�c L��H�L$�S=��H�L$H��H���CZ�1�H��H���J���"����H�|$�rI�u�H�VH�I�U�c I�w0I�H�L$�x��H�L$H��H��uJ��f�L�bI��t6L���u"I�����tI�4$A��A��A��t��uH����H��H�B H��u�1�H�=#�H�L$H�T$�_�H�T$H�L$L�bA��u>I�����t5I�$�ƒ���u'��@t"I�E(�uH�����t�����uL;`LD�I���`H���Y�L��H���
O�H��������H���X�I� H���+H�H�����������H����X�H���`�H���b�H�������H�|$����������0��-���L��L�D$H�L$�;��H�L$I��H���}X�1�L��H���p}��H�L$L�D$H���l���G��������L����=�I� H����N�H����������f�I�G0H��uH��H��t�H����������H�I�U�c H��L�D$��W�L�D$I��I���0A���/I�������"A������L��L���o��H�H��������f���H�
P/�������H��� �H�~�„ҺHE�H�L�EA�d$H�=/����r��H��� ��
H����H�DH�H�K�eH��f�H9��0��H��H��H��?H)�H	�H��H�D$�~D$���H��f��H9�����H�ڸH��H��?H)�H	�H��H�D$�~L$���H��f��H9��y��H���H��H��?H)�H	�H��H�D$�~L$�O��H��f�H9��'��H��H��H��?H)�H	�H��H�D$�~D$���H��f�H9��:��H��H��H��?H)�H	�H��H�D$�~D$���H��f��H9����H��H��H��?H)�H	�H��H�D$�~L$����H��f��H9�����H���H��H��?H)�H	�H��H�T$�~L$���H�=/����}��H��� �H����H�DH�H�K�eI�0L��H�H��H��t1�H�H��H��H9�u�H��t%I9�s H9�u�pH;S0��H��PH9�w�1ҹ��A��$���<����L�uL�L$L���L8�L�uL�L$H�����SXA��$����H�$H�@0I��H�I�� H��H9����<��H�$H�@0I��H�I�� H�E H�$�AH�8�1�H���SrI��#1�H���CrI��#H�$�@H��A�1�鶳��E���=L9���I9����L����H�H��H9������H9�u��Ƴ��H�$H�P0H�z �6���+���H��L�D$H)�� _�L�D$H��8���H�$H�@0I��H�I�� H�$H�@0I��H�I�� H���H��H�$H�@0I��H�I�� ��$�L�C����I�w0M�WA�:tiH�{�?��H�H��H���`�H9���_�H9S0u
�%�H��H�CPH9��rH9P0u�H�{`H��I9����I��A�:u��{���
H�H��H9�v"H9C0u�@H;C0�uH��PH9�w�H��H�=�������H���L�S`H��P�0���H��f�H9��\��I��H��I��?L)�H	�H��H�L$�~D$�2��H��f�H9�����H���H��H��?H)�H	�H��H�L$�~D$�d��H��f��H9��:��I��H��I��?L)�H	�H��H�L$�~L$���H��f��H9�����H���H��H��?H)�H	�H��H�L$�~L$���H�����L��I�����L��H����I�W���L�����L��H���H�L��H��H��� �L��H��L���2A�E1����H�t$�k�H�t$I��H��H��X�L��H��� �H�SH�JH�H�K�eH�
|/����.��@���$��H��E��z��H�=Q/�������H���D[�I�WH�JH�I�O�eH�=#/����|���H���[�I�WH�JH�I�O�eH�
�
/����o��������H��$��9[�H�H��I��#H��H��s�H��H�I���e�L��H����I�W���H�
�
/������H��� �B���������<���H�
d
/����B��@���8��H�L���zZ����H�I�w�g1��mI��I�� H����1���$���H�<$H�G�����������H�G0��$�H��$�H��$�I�G HDŽ$�H��$��4HDŽ$���tI�GH�@�H��$�H��$�HDŽ$�4DŽ$��f�c1�H����l魭��1�H���l����H���}L�1Ҿ�
H��1���#��S���M��u
H�s.H�H��L��H�L$�7�L��H���F�L��H��H�����L��H��L���Q>�H�L$H��E1�H���^S���H��H9���H��H��H��?H)�H	�H��H�D$�~D$�-��H����-��?��H��f��H9�����H���H��H��?H)�H	�H��H�D$�~L$�x��H��f�H9��r��H��H��H��?H)�H	�H��H�D$�~D$�H��H��H9��'H��H��H��?H)�H	�H��H�D$�~D$���H��$��{��H��f��I9��,��L�¸I��H��?H)�L	�H��H�D$�~L$���H��H9�����H�ʸH��H��?H)�H	�H��H�D$�\D$���H��f�H9�����H���H��H��?H)�H	�H��H�D$�~D$�����������H�<$E��H��H��L��L�L$�?L�L$�C\H�H���j���H���t�H�K�<�H��H�H��H�����H���S�L��I���H�L��H����&�H�K���H����H��H�I��H9����|���D�T$@L�L$(A��H�L$h�D$�$W�Ic�I�wL�L$(��H��H�D$0D�T$@H�t$ H�|$8�PD�_�H�L$hH��E1�L��L�l$@H�\$HM��H��L�d$XM��H�l$hH��D�\$(L�L$PD�T$d�I��K�T�J�t�H��� 0�I�FM9�u�L�l$@H�\$HL�L$PL�d$XD�T$dH�l$hI�GH�T$8H�L$ H�|$0H��H)�HcT$(H�9H��H)�I�G�CX�P+T$�SX�C���H�sXL��D�T$ L�L$�^��D�T$ L�L$����H���wH�I��I��H)�H��y	E���x�H���o��m�@H��L�CH��H������H��I��I��H�I��H��H)�H����������H�<$�I���GS����H����I��'���I��+���D��;�H����H�{ L�D$H���
��H��H��$�H�L$�w�H�L$������H��$�L�D$I�D$I�@H�@0I�$������������H�@H�FH��	�H����H�SH�JH�H�K�eH�@H�FH����H���y�H�SH�JH�H�K�e�#H��L��H��H�H���{���H��������?H�I��H9������H�D$H�oH;�1HcAH;D$�i��H������B��L����H�=�~H��1����$��fD�4�A��H��D�������H��H9���H��f��H��?H)�H��H��H	�H���	�H�ڹA�����I��`�
	�S��b�H��H�I��H�����H��H�I��H9�������/Z��I��&���+���H���r�I������e�I�$�ƒ����S���H��$�H��$�1��77���C��!�L��L��H�L$L�D$�e,�L�D$H�L$�l���L�����醺��H�CH�H���H+P0H������t�H�F�A��H�� D9��Z�8	u�xH9�v�xH9�w�Ic�H���D H9��1�H�ڹ���f�H�$I�H�@0H�p0�e��H��H��u�fDH�R H����H��u�H�J H��t{L�l$H��I��H�ˉl$�H�K H��H���%H��H��u�H�hH��t���L��H��H�T$ ����H�T$ H��t�H�x4L��I��L�l$�l$���M�����H�BH�$H�Q0H���G�u?H�����t7H��΃���u*��@t%H�R(��uH�����t�
����u	H;BuH��L��H����!�H����H�$H�sXL�L$H�x0��X��L�L$����H�$H�SXL�L$H�@0H�xH�D$�A��L�L$����H�l�H��4�������fDH�ڹ���f����f��R��H��$����L��H��$�HDŽ$��cD�H��4���H����������L���.���H�H�K�e�q�H�����H�$H�P0H�z �x'�����H��Hǀ�f���H�L�EA�d$H�H�K�ef��fH~��7���^$���L�����H��L�D$H�L$�/B�H�L$L�D$H�@H�8�O����|$H�D$ �O��L$(����H�8A��$��� �uI��I��A��I�wHc�H�T�PI9������M��~D1�1�L�P��*�6f.�L��H�<���H�|�9�~Hc�L9�}H�8�� u�H�x ��1҉SX��H;V���H�
�.��x���H���:�H�U����H;V����H�
�.��x�����؃������K��������H��H9�����H���<������H��f�I9����L���}<�����H�l�H�AH��r���L�����H��$�H��$���*�H�5��H��H�q�-H�81��?�H��f��H9��b�H���<��f(��Q�H��H9���H����;��f(�����H�
���H�5��H�=��$�H��f�H9��>��H���;���1��H��f��H9�����;��f(����H��E������H��f��H9�����H���L;��f(�����L����X��f���c���DL�@���H��f�H9��2���H���;���%���H��f��H9�������:��f(�����H��f�H9��*��H���:�����H��f��H9�����H���:��f(�����H��f�H9��_�H���k:���R�H��f��H9��(��J:��f(���L�L$H�L$�>�H�L$L�L$H�@H�8����H�<$H�O H�=U�H)�H)�H��H��H��1���
�H�=f�1���
��L��l$L�l$�!���H�
��SH�5��H�=����H��.H�5�H�81���H���P�H���-H�5 �H�81���L����H�5�H��H���-H�81��e�H�|$ uH�����tA�����uI�hI�}P�|=�H��H�5��H��H�P�-H�81���L���&�H�5�H��H�-�-H�81���H��H�=ן观��1ҾH�=ߡ蔂��H�=A�1��	�H�I��I�� H�=�1��	�H���2�H�5�H��H���-H�81���L������H�=d�1��T	�H�.H�5�H�81��\�H�=}�1��.	��fK�f�AWH��AVAUATUSH��XH���H�<$H�T$pH��$PH��$HH�BH��$�H�=%H�D$p4H�D$xH�x1��H�H�HH�`H���H�<$1�肜��H�D$H�$�@H�D$��u*H��$HH�4$H���H�D$H��X[]A\A]A^A_�H�$�@HH�$H�|$ H�|$H�@0�DH�$H��PH�C0H�H��t
H�HH�����xau�H�PH��5/@t�H�4$H�N�������@t�H�D$0H�@ H�|$�D$ @H�D$8H�BH�t$(H�D$@H�BH�D$PH�D$HH�D$`4�D$X�H�4$H�F0�U���DL�A0�|$1�L)ƒ�H����vw�|$L�����|$�e�|$��H�����D$�	M����H�<$1��u<��H�$H�P0H�BP�B��H�<$H�G0����f�H�t$H�vH9��w����|$�hL����@��H�|$H�pP�D$H�wH�G M��t�A����u���E1�E1�I�qE1�1��@��H�� 9�t+�nH9�s�nH9�r�>u�Hc�H��L�L�RD�Z D�b$M���!���HcqdH�PXL�h��9I�z K��H�T�L�@0L�XHH�H�rD�WdH�o0HD�H�t$I��J��E�b�H�PH�JH�2�wL�H(H�X D�Hc�H�t�PI9��_H�4$L�n0E��~"A��J�t�H��H��H�B�H9�u�J�L�H�QL�H�h�H�P�H�H�H�x�H�@ȱH�X�H�@�H�@�L�X�M����L�H���H�$�@HHǀ���DM������E�E������I�q1����H�� D9����D�VI9�s�D�VI9�rދD�S�A��u����M�������E�E�������I�q1�H�\$���H�� A9������D�VI9�s�D�VI9�r�D�A���1���A��u�H;Cu�Hc�H��A�T I��H�H�$Hǀ���fD�|$������������
M������E�E������I�q1��L9�����H�� D9����D�VI9�s�D�VI9�r�D�A��u����M��t6A���~/I�qE1�H���D�_I9�sD�_I9�r�?tSA��H�� A9�u�H�$H�t$HǀH�vH��H�t$���8��H�$H�@0P���@��=���Ic�H��L�L�WD�_ D�g$M��������DHc�HcydH��Lʃ9�r �R$I�4�H�0H�pXH�t�H�~HD��|$H��H�PtH�JH�HH�D$H�@H�H�$Hǀ�@H�6���H�4$H�N(H�V H��H9�r
H�@��U���H�P(H�P��H�����H�$�pH�@H�t$�����H�$H��H�D$�(�����;J��H�PH�JH�HH�D$H�@H�H�$Hǀ���H�4$�T$H�F0H�D$H��H��$HH���H�1�.H���H�xH�9���AWAVAUATUSH��H��.L�D$hD�L$dH�D$xH�D$hH�|$HH�t$0H�T$(H�L$@H��u�Vx��H�D$h�<,�D$d�H�D$xH��$�H��$�HDŽ$�4����D$pH�D$x����D$tH�\$xH���H��$�H�5+H�\$ H��$�H�BH�p1��H�H�HH�`H���H�D$hH��4�qH�D$hH�D$H�D$(H���!H�5��-H���9�H�H�|$H�D$8H�L$�[H�D$H�@ H��H�D$H�D$hH�D$H��4�XH�D$�����kH�|$H�����t
�H��H�D$H�D$xL�D$A�H�T$H�t$���H�D$xHcL$dH�|$0���H�L	�B��H��$�H�D$xH�L$@���H�D$xH�L$���H����H��$�H�L$H�|$xH�T$��M��H�D$H�T$xH�H�R0�����B��������H���j<�2H�@H�B(H��$�H��$�H��$�H��$�H�|$8H�@ t�@`���kH�|$x�Y���H��$�H�\$ H���H�T$x�L$t���H�T$x�L$p���H�ĸ[]A\A]A^A_�D��H�D$ �PH�@H�����H��$�H�L$ H���H�D$x�L$t���H�D$x�L$p������TH�D$xH��H�D$8H�D$hH��4��H�|$8��b�H�|$8��H�D$�'�H�D$H�D$H�������H�������H�H�D$�D$������H�|$x1�1��>�H�D$H��� �����„�tsH�|$t$H�L$��uH������tH��у�����H�L$H�H�T$H�QH�D$ u	H�L$H�Q �� H�D$�cH��H�0H�|$H�2�/��H�|$8��/�@H�D$(H����H�5*�-H�����H�D$8H�H�D$H�t$8H�FH�D$H�������H�D$h�F�D$d�e��H�D$�q����H����������H����H���o���H�j�-H��d���f�H�D$H�xH�|$H�����H�p��P��1�1Ҿ�VH�D$�x,�H��H�D$H��$�H�D$H�@H�D$PH�C���H�D$H�xtH�D$H�H�D$H�H�D$H�T$H�@H�D$PH�B�uH�D$P�����0H�t$H�\$H�FH�CH�F H�D$PH�C �uH�D$P�����^H�D$H��Ā����H�D$H�����@H�D$xH�|$xH��$�H�p0�m��H�t$8H��m���H�D$H�D$xH�|$xH�p0�Dd��H���J�o@ �oH0H�D$8H�P@H�@)�$�H��$�H��$�H��$�H�T$HH�D$H�D$h)�$�H�D$H��$�H��4������H�=ٓ�&�H�D$����H�|$����H�D$���@H���-H��[���f�H�D$P�����C���H�t$PH�|$�R���,���H�D$H�H�D$X��`H��`����H�t$PH�H�D$P��`H��`�����H�|$������H�)�-H������H���-H�����H�J�-H�5s�H�81����f�H�y�-H�����H���-H�����H�t$PH�|$��������H�D$H�H�D$X��`H��`�����H�t$PH�H�D$P��`H��`�����H�|$����v���fDH�t$PH�|$�1�������H�D$H�H�D$X��`H��`�q���H�t$PH�H�D$P��`H��`�W���H�|$���H���H���.H���H�xH��0��H�@ ���H�L$H�y�������� ut��������9�����txH�D$H�H�L$P�� t[H��H�8�#�H�5� H����H�t$H����H�|$8H�¾��9�H�D$H�����H�L$H�y���H�D$H�@ 랾H�=� �P��H�|$H��1�1���2�H�D$H�H�L$P�� tH��H�H�|$1�1���2��H�D$H�@ ��ff.���AUATI��H��US��H��(H��L�l$H��H�D$ M��H��P1�L�D$���XH��Z�8�H�<$���:A�H�T$A�4H�4$L��H��LE�H�T$1�����H��([]A\A]�L������t�H�|$@��t�#8�A���fD���A���ff.���UH��S1�H��H��tH����H��H���	�I��A�1�H�_�.H��H���H���[]�-���ff.�f���H�5����H��.H��A�1�L�@H�0H�������f���SH��H�� H�H H�|$H�=��.����
H�5�-H�G0D�AdH�Y0L��qL�H�H�PL�_hD�Hc�H�t�PI9���L�O0E����A�p�H�t�H��H�B�H9�u�H�VH�H�X�H�P�H�p�H�H�H�@�AL�X�H�@�H�@�H�@�M��u3H�O(H�W H��H9�r2H�@����H�T$H�T$H�T$H�� [�L�P���f.�H�P(H�P���fD�=��H���Y���H��-H�5ژH�81��������AT�USH��H�� H�-��.H�|$H�=��d4�H��H���-H�8�!�1�H��H��L�` I�$H�H H���%C��H�C �@d��~H�u0H�T$H���f��I�$H����H�T$H�T$H�T$H�� []A\�DAWAVAUATUSH��H�F8H�hH���nH�OPH��t=H�NHH�GPI��H��L�=$�I��D�uA��
�HD��Ic�L�>��fDH�FH��fD�u����H�SP�{X�L���)jf�I��$ H��A��$��H�Ĉ[]A\A]A^A_�DI�t$0�SXH�N�BH�H�D�PH9���H�CPL�AL�FH���~,�z�1�L�O�H��I�T�H�T�H�PH9�u�K��H�FL��H���.I�D$0L��H�H���f���D�{X���qH�uH�{P����+���I�D$XH�EH��L��H�K@H�SPM��H�p D�CX�sH�<^_���fDH�;L�{PL�s@D�KXH�KH�u H�<$I�\$0�� / ��H�SH�{�H��L�RXL9���I�|$0H�JH�JH��H�B�H�C�H�K�H�S�H�C�H�C�aL�{�H�C�H�C�H�C�M���!L�s؅�x	D9��}D��L��H�}L��UI�t$0H�VPH9���I�\$0� /@����I�T$���A�$���@��H�\$@H�$H�|$0H�D$`H�$�D$0@L�d$8L�|$HH�\$PL�t$XH�D$p4�D$h��H�$���fD�{X����H�uH�{PI�U�1��v���fDA��
�vH�C@H�3H�xH�{@H���BH�S@��K��H�C8H���)I��$ H��A��$��H�hH�������f������fDHc{XL���$2�H�;H�D$(��%�H�|$(H����H�CHH�L$(I�D$PH� tkH���CXH�{P��
�P�{�H�T$(H�T$0H�T$(��������H�CPH��D�CXM��L��H�p H�NH��sH�9ZY�[���H�I �f�1�L��H�$�DH�$�R���f�I�T$(I�D$ H��H9�r
H�C�����H�C(H�C����D��H�=�1��R��f�H�EH���}���H�C8H�h�}���fD��7��I�T$���A�$��� ���H�|$PH�|$0H�D$H�L$D�L$�t$H�\$@�D$0 L�d$8L�|$HL�t$XH�D$`H�D$p4�D$h��I�\$0H�D$H�L$D�L$�t$�s����H�=ْ1����1�L����BH�C8��H�3E1�A���SXH�{PA��L��A���W���H�=ʒ1��;����<�1�1��3��D���)�f�AWAVAUI��ATI��UH��H����SH��H�T$�$I��H����H�ø�tH�Ę[]A\A]A^A_�@H��L�}P���A�ƃ�����L��DN��#�H�T$H��H�D$H�D$H�D$H�t$ �D$(H�D$ �L�d$pH�D$`D�t$xH�\$XH�D$8�:���L�}PH����������W���D��H�����H�}�-H�5�H�81����ff.����AWAVI��AUA��ATUSH��H����H�-��.H�L$�
A���CD�������I���A���0M�fH��L��H��L���k�������I�~H���WfDH�T$H���G��I��H���wH�PH���j�
���_��
�&H�z�
�t����L�%�.A�D$<��H�D$H�T$H�t$ H���D$(H�\$ L�t$pH�D$`D�l$xL�|$XH�D$8����f�I�������I���YM����M�fH��L��H��L���k�������I����M����I�~H����I������7I�.H���@A��A��D���	��I��H��t{E��tvA���CH���,�I��M��L��H��H�1�-H�5��H�81�����M�fH��L��H��L��������c����4H�Ę[]A\A]A^A_�@M��u�H����I��M��D��H��H���-H�5a�H�81�����L�=��-M�'H��L��L��H���E�����t�I�?H������4L�=��-H��M�'L��H���������X���I�?H�������H��L���t)��@1�H�ƿ�!K��H��tH�PH��t�:�����f.�L�L$E��H��L��H���L����N����fDL�=�-�3���@L�=��-H��1�M�'�V���@L�=��-H��M�'�	���f�L�=Y�-�������;M8�3���H�x�\�H�5��H��H���-H�81��A����������H��.A�L$<H��p��H����E1�L��H�5�H��H��-H�81�����H�����I��M��L��H��H���-H�5�H�81�����L�=��-�~���L�="�-�r���ff.�f���H�O�WH�wH�?�I�f���AWI��AVI��AUA��ATUSH��H����H�-E�.L�D$L�L$�5A���kD������LI����A����M�fH��L��H��L����������I�~H����fDH�T$(H���B��I��H����H�PH�����
������
�^H�z�
�t����L�%��.A�D$<�oL�T$H��L��H�D$L�L$M��D����H�D$(L�T$L��H�t$0H���D$8H�\$0L��$�H�D$pD��$�L�T$hH�D$H���fDI�������I���aM���HM�fH��L��H��L���������I���}M���hI�~H������I������II�.H����A��A��D���K��I��H��t{E��tvA����H���l�I��M��L��H��H�q�-H�5ҋH�81��H���M�fH��L��H��L��������c����4H�Ĩ[]A\A]A^A_�@M��u�H����I��M��D��H��H��-H�5��H�81������H�9�-H��L��H��L� L�������t�H��-H�8H��������?@L��-H��L�D$M� L��H���F���L�D$���F���I�8H���u���H��L���$��f�1�H�ƿH�D$�LF��H��tH�PH��t�:L�T$�r���L�L$M��D��H��L��1�H�D$��H���M��E��H��L��L����I������fDH�)�-H��L��H��L� L������������H��-H�8����fDL���-H��1�M� L�D$�����H���-H��H��L� L���;������@���H�\�-H�8���@H�)�-H��L��H��L� L���������
���H��-H�8�w���fDL�T$���L�T$���z���H���.A�L$<H��p��������;M8�7���H�x���H�5+}H��H�?�-H�81����H����E1�L��H�5��H��H���-H�81����H���|�I��M��L��H��H���-H�5��H�81��X��L�q�-���L���-������H��xH��$�H�$L��H�t$PH���D$H�D$@�L$XL�L$8H�D$���H��x��AWE��AVAUI��ATI��U��SH��H����t<��ug�؃����YH���_����H�{H��uLL��H����!��f�H������H����H��u�H���-H�8���H���-H�8H��t�H�T$(L��L�L$�_=��I��H����H�@H�����������
L��.L��L�L$�CH�x�
�t����L�=��.A�G<��H�D$(H�t$0L��L���D$8L�l$0H��$�H�D$p��$�L�t$hH�D$H�y�H�Ĩ[]A\A]A^A_��H�{H���"���H�+H���$A��A��D������I��H��t@E��t;A���'L���9�I��I��L��H��H�>�-H�5��H�81����DM��u�L����I��I��D��H��H��-H�5��H�81������H�A�-H�8�'���f�1�L���L�L$L�D$�A��H��H��tH�@H��t�8L�D$L�L$�����E1�L���L��H���I�����H���-H�8����H�I�-H�8����L�D$���L�D$���L���H�
�.A�O<H��p��H���-H�8������tCE��������A;P8��H�y��
�H�5<yH��H�P�-H�81����fD��t�A��u�H�q@��uH�����t�����uH�vI��4t-L�ωT$H�L$L�D$�0�L�D$H�L$H���T$�g���A�����A�����L���;
�E1�H��H�5.�H��H�<�-H�81����L���
�I��I��L��H��H��-H�58�H�81�����ff.���UH��AVAUI��ATI��H��SH�� H�U�H�dH�%(H�E�1��� ��H��H���H��A��H�B��0H9�tH��H��$�H9�u�%�t	H)�H�L�H�L$H�wH���H���Z��D��L��L��H��H�'�.A�H�@0L�H �4�����H�ZHc�A��H9�����eH��H��H�BH��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�L$H�w H����L���fDH��1���H�E�H�H�@�uH�����t��t	��H��� H�HtOH�@�.��L��L��A�H�@0L�H �E���H�U�H�U�H�U�H�u�dH34%(u H�e�[A\A]A^]�DH�H �H���:������D��UH��ATSH��PH�M�1�L�E�L�M�dH�%(H�E�1���@H���.A�H�@0L�H ���H�]�dH3%(��H�e�[A\]�f.�H�ELc�H���E�H�E�I��H�E�H�E�I�BH��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�L$L�e�D�M�1�H���L�]�H��I��%fDE��H��A���M�M�L�@�I9�tA��/v�M��H��I��M�L�@�I9�u����D�M�������fDATUSH��H����H�G0H���H��jA�A��jj�p�v0�$��H��0�e�H�E0PI��H�5��L��H����H�5|�.H��tH��L��1����H����
H�=^���H��H�B�.����I���ff.�UH����SH����D��H������H��H��H������f.�AWA��AVAUATUSH��H��hH���H�|$�0H�xH�L$P�HH�@L�D$@H�|$ �L$4�t$HH�D$(���?���D$0I��L�Ń�E1�H�D�H�D$A�G�H��H�D$fDM�&L����E��~1H9�'���H�JH;D��H��H;T$u�M����L���F�L��H����I��H��L;t$u�M���T�L$49L$H�e�D$HHcl$4E1�H�D$8L�l$ �D$L����A�G�)�H��H��I�Hl$@H�L$H�l$ H�D$L��M��I��@K�<�D��E����E��~)H;�S��@H�JH;D�t]H��H;T$u�H�D$(J��H��4��H�t$ J��I�EL9l$tTI����HT$H��D$0H�EH�4��HT$H�H�t$ �D$0J��I�EH�4L9l$u�H�D$P��� ��D;|$0��H�|$8uHcD$LH�DH�D$8HcD$HH�t$@H�L$8H��H��h[]A\A]A^A_�f.�H�D$ l$4J�������D����	D$L������V��I������fDH�T$����fDH�T$����fD�D$HH�t$@A�o�E1���H�L�,��z�I��E��~,L�|$�I��K��H��4tJ�4�L������I�FL9�u�M�e���DH�|$8tUH�|$8K�t-�����X����H�D$8�D$L���f.��D$0�D$4�X������1�H�\$X�\$LH�D$8I����H��H�� t��s�H�t-�L�������H�\$X�c�������I��E��~,E�o�1��H��H�D$H�<�4tH�4�L�����H�EI9�u�H�n�.L��H�=��_]�H�t$PH��H�����H�H�.L��H�=@,��ff.��UH��H��AWAVAUATSH��H�u����H�}���H�U����H�M�D��x���dH�<%(H�}�1��E�����@��u���ىM�H�E�H�x0H�GH��p���H�E�D�`XH�E�Hc��A9��1D��Mc�L�U����K��L�I�T��H�H��H9�u�L�]�I��H�GH�E�H�@H�E�H����D�0E)��Ic�I��H��h����
Ic�H��H��H�BH��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�D$H��h���H���H��H�E�����H�E��@����x���E��E1�������u
A���
A9����S�D9�����x����kH�E�H�p0Hc�H�~H�D�PH9��aM���@	D9�~.Ic�H�}�D)�H�H��H�T�DH�H��H9�u�A�ߋu�9�}HDžh��������)�A�ل���HDžh���DH�E�L�e�E1���������1ۨ����L���H�M�H�}�H���HcBHcH)�L��H�}�H����H�E�I��H�@�0H�P����A����@��H�E�H��p���H�@0H�H��H�u�dH34%(��H�e�[A\A]A^A_]�DE�|$�H�M�Ic�L�4�M�A�� �hI��A��Ic�I9���
��x���G�$���2���A���7���H�E��������@���������A���HDžh���D�E�A9����������������x����c
E��D+M�M��tI��� ��I�^Mc�A)�I9���E9��t
E)�E1��G����H��X���A�����E��H��X���H��`���~LL�}�A�F��]�H�H�E�L��h���I��L��L��`���L�t��I�UH�3L��I��H�����M9�u�]�H��h���H��`���H�E�H�8H�E��@�����m���DH�}�������P�E1�H��h���H�E�L�hA�E�x���~eL��`���I����X���L��L��h���D��P���M��L�m��f�H��I�T�I�t�L���k��H�CI9�u�L��`�����X���D��P���M���	H�E�H��h���E�gMc�J��H�E�E��E1��A9�����H�E����HDžh�����0����H�}�����M����
I��� �.H��I�V���|
H�<�L�,����H��h���H�E�H�������H�}��X��H�u�H��H���HE�H��h���H����
I�FI� uI�F J�t(�L���7���j���f�� �����H�E�H�M�H��h���H���Hc@L�$���H��h�������I�$H�E�����@�L���H�E�H�M�Hc��L�$�H�E�H�pH�H��t
H�F H����I�$����DH�E�H�u�Hc��H��H�E�M����E����b��H�}�E1�H�H�E�����l����H�}����D9��uH�}�Hc��H�}�L��M����Ic�H���@Ic�A��I��D9��E1��9@H�M�H�u�Hc��H��H�E������x���M���4E���'H�4%HDž`���H��% Hc�x���H��H���(H��H��`���H���H��H)�H�}�H�4��C��H��L���H��H�E�����J����H�M�Lc��E9��TM�VI� uM�V H�M�Ic�A�x�D)�L��1��DH��Hc�I��I��H�JH9�u�E)�L�e�E1�E�������M�N����H��h���H����H�@H����H�xH��Hc�A��H9����?H��H�H��H��H��H��H���H)�H��H9�tH��H��$�H9�u�%���H�D$H�U�L�E�H���H�5���E�H�H�E�H�}�H��h����M��D9e�L�E��?L�u�H�U�D��H�}�L����A����?���E)�O�$�����@Hc�A)�H��I�H�M�H��������H�����
���Ic�L��E1�E1���H�0I��H��`���H��% ����Ic�L��E1���
�I��M���II��� ��H��H�ƒ�Ic�L��E1�H)��(����H���-H�}�1�H��=��H�M�H�P H�QH�O�������1@�������M��t_I��� �/H����H��uFI�FH�8�]��H�����H��� ��H��H�׃�Hc�A��H9���I��E1����A�������H�E�L�(L���
��H�u�L�.뤐H��`���H�XH�@ ����@L����H�8I��� �H����Hc�H9��zE�,?D9�~f��L��A����D9�u�E���������HDžh���A��9��2������H�E�����������������DIc���I�V�^����L�����A�u�L��H���I��H��`���A�G�Hc�H�H��M�NH)�M��E��E���-�L��M�,A��L�,A��u	I�����u:A��H��E��E����I�6H��% E���H��u�I�F ��L��L��L��P���L��X�������L��X���L��P�����u�I���`H��`u�I�E��`H��`t�L��L���Q��L��P���L��X����d���fDL�����A�u�E�艝X���I��A�G�Hc�D��H�M�VL��P���E��H��H)�M��I���
f�A��I��D��E���i���8L��I� uI�F O�$)��N�$(A��u�I�����t�L��L��L��`���L��x�������L��x���L��`�����u�I���`H��`u�I�$��`H��`�r���L��L���W��L��`���L��x����T���M�A�� �I�~Hc�A��H9���M�^ Ic�Mc�I)�H��K�<��E9��H�A��A��I�H��D9�u�Ic�E1�H���d���H�x���L���^��H��h���I��H�����M����I�>�� ��I�~Hc�H9��3E�$?H�E�����A��L��P���A�ŋ�X���E���O���A�G�HcЉ�H��H��M�<M�d�I)�f.�I�7L��I�����M9�u�����E��L��H���E��~4A�G�HcЉ�H��H��I�\�M�<H)�I�7L��I�����L9�u�I�6E1�H��% �q���1�1�E1����������L��H���E1��L���E����X������L���&��H��L)�H��I�������M��t(I��� �H����H��Hc�H9���E)�A�E����L�u�1�1�1�L����A������I��M�^A�����H�����n���H)�H�L����D9��'����6���f����E����H�}�A�G���`���H�L�,�I�}���H��h���H�E�H���(�H�}��ǽ�H��H���HE�H��h���H�E�H��tXI�E��@��0�������H�x�
���I�~����I�F ����I�~���I�FH���R���I�~ H�W����D��`���A����L����H��I�������L���S��D�E�H�u���D��H�}���H�
Vc��H�5r^H�=u^�.��E����E1����H�
c�QH�5C^H�=U^���H�
(c��H�5$^H�=a^����H�
	c��H�5^H�=/^���謼��W�����AWI��AVAUI��ATUSH��H��XHcJXH�R8H�RL�zA���~��H�0H�|$�C�$H�kH����D�cXA���D9����SH�K8�C\�Ѓ� ��u$H�{u�u��H�V��H�5���HE�H�S`H�QM�qMc�I�m0L�z���TIc��I��A�WdM)�H��I��9�����)�H�T��H��H�@�H9�u�Hcs\I�G0McGH�{@L��H�CHH�u�L�SPN�D�PH��L9���I�u0H�H�BL�]�H�E�H�U�L�}�H�E�L�U�H�E�H�E�H�M�H��u=I�U(I�E H��H9�r<H�E�I��M�qH��X�4[]A\A]A^A_��H�}���f.�H�E(H�E���fD�+��H�FH��H�t$E1�H��L��H)�H���'�D�cXH�K8�C\�CL�L$�� ���@I�AL�EPI��M�E0��I�� ��H��A����H�}XH�CPE���H�H�wE��~=E�J�I��I�AO�4�H�D$1��
�L��M�$�L�d�L�`I9�u�H�D$H�4�A�GdD)Ѕ��s��H�D�H��H�F�H9�u�Hcs\M�O0��McgHc�M��H�sHL�K@N�d�PH�[PH��M9�����M�]0H�0H�pM�P�I�p�I�@�M�x�I�P�I�X�I�@�I�@�I�H�M����I�U(I�E H��I9���I�@�H�}X�1���DH������Q�H��H�Hc�H)�L�_�H��L�^H�������H�0�� �[L�@ H�pL�$�K�D#PH9D$����1�H��~$@I��H�L�H��H9�u�H�D$M��L�X�SX�T����D�uL�L$0D�t$��Ic�L�L$0H��H�D$ H�D$��H��H�L$(H�pH�t$�
H�ك�L�l$8E1�L�$�H�\$HH��H��M��|$0I��L�L$@��I��K�T�J�t�L���+��I�FL9�u�H�D$L�l$8L�L$@H�\$HH�PH�D$(H�|$H��H)�H��H�|$ H�8HcD$0H�|$H��H)‹CXH�WD�`D+d$D�cX�q���@M�H��a����H��L�@�����I�@(I�@��=���H�����1�L��T$�zM�E0H�K8�T$M�X�����D$H�T$���D$0�F���A��D��L��L����ff.�@AVAUATI��UH��SH��H��p����T$XL�D$H�D$H�D$H�D$8�~��L�o0A����;�������A���L�uL���0��L�uH����Hc��H�I���� ��H9x��I�UH�T�PI9�� E��~;1�1�L�H��Hc�H9�~(H��� L��uH�H H�у�H�L�A9���1�H��p[]A\A]A^Ð������9�t�}�I�uHc�H�D�PI9�����Hc�)�H�D�H�H�T��H�H��H9�u��fDH��H����H9��3�������T$XH��L��A���m�D��<�v���L�!L�����L�e���H��u*�T$X�X���f�H��E������"������H�8�� tlI��I��A��I�uHc�H�T�PI9�v�M��~@1�1�L�H��&�2fDL��H�<���H�|�9�~Hc�L9�}H�8�� u�H�x ��1҉T$X���L�@�ff.�AWAVAUATUSH��xH�^H�؃��RH������EH�T$�M��I��M�ȉ�M��I����H�v ���ML�W0D���L�XI�JH��tH�V �z:�I�D$XA�!��~!@I��H��H��9��A����A���H��L��L�T$D�\$����HcT$L�T$I��H��M����H�s0H��KdA��IRL��I�E�sD)�H���I��I�D$0Hc�H�t�PH�x�H9���I�|$0���+��H�L�f�H��H�B�H9�u�H��$�L�	H�QH�X�H�\$L�@�H�P�H�H�L�p�H�X�H�@�H�@�L�x���I�L$(I�T$ H��H9��H�@��"�.��H��$�tI�D$0H��$�H�@0H�x�L���D������.�|I�T$���A�$���tdI�T$0H�|$L�d$(H�D$H�T$0I�WH�|$8H�|$ H�T$@I�W�D$ H�D$PH�T$HH�D$`4�D$X��H�D$��H��x[]A\A]A^A_�@H��$�H�X������H��tH�F �x:��A���tM�1�M��t
I�@ H���I�T$0I�uM�D$XH�JH�z�H��L�QXL9���I�|$0H�|$H�qH�qH��H�A�H��$�H�B�H�r�H�J�H�Z�H�BȁH�z�H�B�H�B�L�B���H��$�H�z�H�sI����L��L��1��SI�D$0PH��x[]A\A]A^A_�@H�GXA�������f���$�A��E�A��A�����H�K0H��sdA��IRL��I�ED)�I�L$0H��H�y�I���C�H�H�D�PH9���I�|$0�����F�H�D��H��H�B�H9�u�H�|$H�PL�H��$�L�A�H�Q�H�A�H�Y�L�q�H�y�H�A�H�A�H�A�tPH��$�H�y�H��$�tH��$�H�x�L���}���H��x[]A\A]A^A_�fDH�P(H�P����I�t$(I�T$ H��H9�r5H�A�����I�t$(I�L$ H��H9�rH�B��K���H�Q(H�Q��g���H�J(H�J��1���Hc�L��L�D$L�T$���L�L$L�D$I���_���H�����I�D$���A�$���@���H�D$H�|$0H�|$ �D$ H�D$8I�GL�d$(H�D$@I�GH�D$PH�D$HH�D$`4�D$X�z����H���-1�L��L��L�L$H��'��L�L$����H���8����UH��AWAVAUATSH��H��(�G8H�����H���H���������H���H�=�H�����H�u�H�E�H�BH������D������L������HDž�4H�����H�x1��H�H�HH�`H���H������x9t|H��L�ML������������H�����j������H�����H�����j����H�U�H�����H�� H�����H����9u����H������Q8H�e�[A\A]A^A_]Ð�@8H������A8�q�����H��0H������PH�@H���C���H�E�H�����H���H������x9u	�����F8H�ͥ.H���H�xH��ff.�f���H��I��H�NAPA��H��D���H���ff.�@��UH��AWAVAUATI��SH��H��HH�}�dH�%(H�E�1��B��M�l$M���jE�l$XIc�H��H��H�BH��H%�H)�H���H��H9�tH��H��$�H9�u���~L�{L�L$I�D$PI���L��L��L�p H)�����H��I�NI�I��A�EH�}�E��H�L��H��I)�L�{A�t$H�G���H�]�dH3%(��H�e�[A\A]A^A_]�DH)�H�L��t���f�HcBXH�vD�H�L�F�Ic�H)�H��L�CH����H��� �H�x H�HL��K�DPH9��
1�H��~#�H��H�T�H��H9�u�M�A�L�CE�L$X���f.�E�uD�u����H�KIc�H�E�H��H�M�H�}�������E1��E�H�E�H��H��L�4��@I��K��K�t�H�}�����I�GL9}�u�H�SH�E�H�}�H��H)�H��H�}�H�8HcE�H��H)�A�D$XH�SD�hD+m�E�l$X��fDH��H�x������E�H�U����E����������UH��AWI��AVAUATSH��H��HH�}�dH�%(H�E�1��B��M�gM���cE�oXIc�H��H��H�BH��H%�H)�H���H��H9�tH��H��$�H9�u����L�sL�L$I���L��L��H)��e��H�}�H��E��I��D��I�O@I�WP��H�I��H�CI�G8H�GXH�@H�@H�p A�wH���H�]�dH3%(�tH�e�[A\A]A^A_]ÐH)�H�L��r���f�HcBXH�vD�H�L�F�Ic�H)�H��L�CH����H��� ��H�x H�HL��K�DPH9���1�H��~#�H��H�T�H��H9�u�M�A�L�CE�OX���E�4$D�u����H�sIc�H�E�H��H�u�H�M�������E1��E�H�E�H��H��L�,��@I��K�T�K�t�H�}��J��I�FL9u�u�H�SH�E�H�u�H�M�H��H)�HcE�H�H��H)�A�GXH�SD�hD+m�E�oX���f�H��H�x������E�H�U����E���,����w�����H��E1�I��tM�H H�=T�.H�G0H�@0H�0@��uH��H�6@��t�H��tH��I�ȉ�j�vjH���H��(��(��ff.�UH��SH��HH��.H�t$H�C0H�H0H���uH��H���t�H��tN�oH�t$)D$�oJ)L$ H�B H�D$0H�D$H�D$H��u@H��H��H��t�H��H��H�H��H�����H��H��4��H�}�� upL�E H�}Hc׉�H9���H�S0H�R0H�2@��uf�H��H�6@��t�H����H��H��E1�j�vH�P��H�� H��H[]�fDH��L�E���H�S0H�R0H�2@��u�H��H�6@��t�H��t-H��H��E1ɹj�vH�PL�D$(�#�H�� H��H[]��c'��辥�ff.���AUI��ATUH��S��H��H����Hc�L��I������H��H��L��[H��]A\A]����ff.����SHc�H�����H��H��[H�����AVAUI��ATI��UH��S��H�� �d���t(���1H��L��4���H�� []A\A]A^�H�D$4�C����I�EH�|$H�D$萼�H�|$����������L�l$H�D$H�=S�.1�L��H�D$���I��@��u	H�����u
I��tI��H�|$�+��H�|$豭�H�t$A��M��L��H���֪��H�� []A\A]A^�f�I�}@��t6�1���M�mL�l$I���]���H�|$�»��I���D��Ґ�˱����1�1����������{��ff.���ATI��U��H��SH�����H��L��[��H��]A\�T���@��H���D���@��H����H�=�.I��H�G0H�@0H��uDH��H��t�H��H��tH��E1�j�pjH��~�H��(���$��@��H��H�|$H�=��.H�G0H�@0H�0H���H�|$4tKH��ufDH��H�6@��t�H��tlH��E1ɹj�vH�jL�D$(��H�� H���@H��uH��H�6@��t�H��t$H��E1�E1�1�j�vH�j���H�� H����$��@��H��(����H�D$H����H�8�� uyL�@ H�xHclj�H9�uwH�=К.H�G0H�@0H�0@��u�H��H�6@��t�H��tJH��E1�j�vH�j�/�H�D$0H�D$(H�D$8H�D$(H�D$0H��HÐH��L�@������諡��F#��H���-H�59CH�81��N��ff.���UH��H��PH�u�H�U�H�M�L�E�L�M�dH�%(H�E�1���umH�=��.H�G0H�@0H�0@��uDH��H�6@��t�H���eH��E1�E1�1�j�vH�j�N�H�� H�}�dH3<%(�.��DHc�H��H��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�EL�D$�E�H�E�H�E�I���H�E���~b�W�I�ùL��M�L�H�uE1��"@��H����A�L�H�H�P�I9�t��/v�H��H��H��H�H�P�I9�u�E��t�M�H���.H�P0H�R0H�2@��ufDH��H�6@��t�H��t)H����E1�H��j�vH�j��H�� ����d���O!��ff.�@AWH�EAI��AVA��AUM��ATI��H�=��UH��SH��8H���HD�����L��H���I��H�è����6�����JH���P���WH�{�!�9�����I�MH��H�L$�@��H�L$L��H��H���
��H�D$I�E�H�D$H���-L9 ��H�t$L�����H��8[]A\A]A^A_�fDH������u���H����H���b���H�b�-H�8�W���f.�M�MH��L�L$���L�L$M��H��H����!1�蠱�H�D$�N���fDA�~�I�uHc����H�D$ �G����H�9�-H�8�����H�)�-H�8�����H���-H�8����H���-H�8����H�i�-H�8����ATUSH�� ��t
H���<t/�tH���-H�5d?H�81��O��H�����t�H�����u�H�5�-L�%�.H�(A�D$<t8H�$K��uH�@K��teI��H��H�������H��tFH������H�T$H�t$�|$�X��|$H�t$��H�T$t�H���.A�L$<H��p����H����@tH�ʙ-H�(H��J�� H�K�HD��k���fD��PXH��H�GP��H��H��D���ǀɀ����f���PXH��H��.������@��AWAVI��AUATUH��SH��H���B��M�fM����E�fXA�t$�E����I�F`�AoLc�t$�AoN�AoV I��H�|$8�Ao^0�Aof@H��$��AonPI�����H�C)L$PM��)D$@M)�)T$`)\$p)�$�)�$�J�8H�D$XH�D$8��t$H��H�D$@��H�{����H����$�H�{H��$���ts�����у����|H��������H�zL�d$@H��$�H�����L��H��H��H�D$x�D$H��H�ĸ[]A\A]A^A_�H�����u�H���H��u�H���-H�:�@A��L��Mc�I��M)�J�47L�����H�{H�D$@����DH��$��������ƒ�����H����<�H�x��
�b��A��$H�|$8L{�y��@I��D$HH�D$@�
�DE�D��� �@��
DE�D��$�D������f�H�����u�H���nH���u���H���-H�8�j���fDH�ٕ-H�:�|����H�ə-H�:�l����H�rXH������G����E�<$D�|$(���H�sIc�H�D$H��H�t$H�L$ ���	��E1��D$,H�D$H��H��L�,��	fDI��K�T�K�t�H�|$�!��I�GL9|$u�H�SH�D$ L�|$H��I)�H�D$I�HcD$,H��H)�A�FXH�SD�`D+d$(E�fX���H�ɓ-H�:����H�٘-H�8�U����H�Y�-H�:�l����H�)�-H�:�\����H���-H�8�%����H�)�-H�8�����H���-H�8�����H��-H�8�����D$(H�T$���D$,�)���H�4�-H�5�9H�81��ә�H�̘-L�C1���$�H��$�H�8M��L���H�����@AWI��AVI��AUL�-=ATA�USH��H��H�B8H�l$ H�M@H�$H���>���t@�s@��u	������u	��������A�~8AMv89��sH�x�7��
�V��IcT�L�>��D�C\E��tH��H�C`H��L��L����H�Ę[]A\A]A^A_ÐE��tH�T��H�C`H��L��L���B����E��tH���H�C`H��L��L���r��C�>H�sH����{X����C\E��t�CuH�{uH�
�H�C`H��L��L�����S���fD�C��H�sH�����{X�����C\E��t�CuH�E��H�C`H��L��L���3�����fDE��tH���H�C`H��L��L��������DH�@H�@H�@8H�xH�����oH�$)D$ �oKH�t$ )L$0�oS )T$@�o[0)\$P�oc@)d$`�okP)l$pH�C`H��H��$��O���H�D$XH�������CE1��A��A��D�ƒ� �@DE�H�;�
��D�C\�����I�w0I���H����H�xH����H�s@���H����H�3H�T$H�����H��H����H�xH��H9C`�YH�D$�?
H�S8H�C@tnH�����fD�w��uyE��tH�-���H�C`H��L��L�������c���fDH�s@I� ����H����H�C8E1����fDH�S8H�zH�GH���H�B�V���f.�����E��tH�;�H�C`H��L��L���)����H�=�B1�膜�H�;���H�55H��H��-H�81�胕�H�SXI�����e���fDH�sXL�����A����H�SXI���������fDH�sXL��������I�wL��H��t�>tjH�@HH�������H�pH�T$�[���H�T$�����H�z�e���H�PH�C8H��t	�:�g���H�C8�����������B�C\���I�F L���I�v(H�4�L���@L;H�p���H��PH9�r�L���_����C\H��L��L���`���1�1��B��H�=�@1��$����%��HcCXI�WL��H�KPH��H��H)��������g������AWI��AVI��AUATUSH��H��H�FHcRXH��H�<�H)�A�G�YM�gM����A�GX���D$H���$�I�GHH�D$@�
H��$�I�GPH��$��������ƒ����WH���e<�mH�xL�d$@��
I�T$@�U�H�D$XH�D$xI�FH��XI9���IcWX��~H��H�}H���n��I�?�f��L��L��H��H�EA�G\I�F����5���H�ĸ[]A\A]A^A_�H������g���H��tH���X���H���-H�8�M���fDH���-H�8�8����H��-H�8�(������H��L�X���Hc�H)�H��M�^H�������L�
A�� �fL�R L�JN�$�K�T#PI9�v�1�M��~!DI��H�L�H��I9�u�M�D�M�^A�wX�*���E�,$D�l$ ���I�~Ic�H��H�D$H�|$H�t$���D�F�H��E1�H�l$(H��H�\$0L��I��L�t$8H��M��M��D�D$$�	fDI��J�T�J�t�L��軲�I�FM9�u�L�t$8H�l$(H�\$0I�VH�D$H�L$H��H)�H��H�L$H�HcD$$H��H)�A�GXI�V��+D$ A�GX�_����H�Q�-H�8���f�H��-H�8����H���-H�8����I��L�RA�������D$ H�T$���D$$�T�����������H�u�.A�H�@0L�H 邳��f�UH��AWI��AVAUA��ATSH��XH�M�L�5>�.D�E�dH�%(H�E�1�I�FPE���I�FPH�E�H���
��D�bI��Ic�H��H����,H�E�H�E�H�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%��H�\$H���L���
��Ic�H�u�H�{H�H��蓲�A����A����D�������I���A���I���
螱���H�E�H��D���
L��I�FP�k��H�}�udH�M�dH3%(��H�e�[A\A]A^A_]�f�I�����u�I��taM��u�H���-H�8�H�E�L�]�H��H�E��|��L�]�H������H�}�H�E��s��H�E��DH)�H�L�����f.�H��-H�8�)����H�ٌ-H�8�����H���-H�8�	����H�I�-H�8����H��-H�8����M�L��H��D��ɀ�����D��H�u�H��D��ɀ����AVAUATU��SH��H�ĀL�%Ԅ.I�T$0H�B0H��u@H��H��t�H��L�j I�D$PH�BH�JH��t#���H�������H�������H�B(H����H�@H�@8H�xH�BHH�T$H�@H�|$L�pL���l�H��tOH�T$H�t$L��L�t$L�l$`H�T$PH�ډl$h�D$H�D$HH�D$(���H��[]A\A]A^�@H�ى�L��L��A� �r���H��[]A\A]A^�H�=�91�觓����USH����~BH����H�vH�����H�UH�5�.H�����H�UH�5��.H���y��H��H��[]Ã���R��f�SH��H��H������
H�D$��u0H�����t'H��ƒ���t��t��H��蹧��
H��H�L$H�ߺ�O��H��[�f���AT1�USH��H��[H�� H��L�D$H���x��H���p��H��H�؃�H��uzH��tM���T�؃�����H��������H�{���խ����1�H�� []A\�f�H�����u�H����H��u�H�a�-H�8�@L�d$1�I����H��te�����؃����>H���d���H�{�ʀH������������HE�H�� []A\�f.�H�����u�H���H��u�H���-H�8�@H�<$���H�L$H�ߺH�D$H�D$��H�D$蹨�H�� []A\�H�Ɉ-H�8�Z����H���-H�8�����H�����M��H�L$H��H�D$����LE�L�d$�[��H��������������DH�Ɋ-H�8����H���-H�8�R����H��-H�8�����H�	�-H�8�2����H���-H�8�"����H���-H�8����H���-H�8����H��-H�8�����SH��H��H�wHc���H�sH��H�$���H�$H� t*H���CH�;��
�P�s��H��H�T$H�$H��[ÐH�I ��f.�SH��H��H�t$��t;��t���H�=)1�诏��H�A�-H�0�y��H���?���������؃����H���6����H�{H�T$������H����H�T$H�t$ H�=@.H�\$p�D$(H�T$`H�T$H�D$ ��D$xH�D$XH�D$8���H�Đ[�@H�����u�H����H���o���H��-H�8�d���DH�ĐH��[�@H�L$H�ߺ�����H�Đ[��H�	�-H�8�����H�ـ-H�8�����H�Y�-H�8���H��-H�5�4H�81��Y��f�H�I�-H�8�����H���-H�8������AWAVAUATUSH��H�|$H�t$ �T$H�D$8�?��D$4H�\$H��}.H�D$H������:�|$H��$H�D$@4萕�H�T$@H��$H�BH�5�H�\$PH�p1��H�H�HH�`H�D$H���H�D$ H��� ugH�D$ H�H H�PHc�H9���H�|$��蟤�H�D$8H�|$H��$H����|$4��H�D$8H��[]A\A]A^A_�fDH��H�H�����H�D$�pH�@H�t$���]���H�|$H��$H����|$4蔔�H��|.�T$H���H�xH���f�H����������H��ʃ�����������DL$�L$�������H��$ H��$�H��$H�BH�
�HDŽ$ 4H��$0H�H1��H�H�HH�`H�D$H���H�D$(H��{.E1�E1�1�H�t$�H���踉��H�D$8H�L$(H��$��|$4H���薓�������H�D$(�xH�@H�|$��t�H��$�H�L$(�|$4H����X��H�q{.�T$H���H�xH���H��襂�D��H�E{.E1�H�@0L�H �U���D��L�
%{.M�A0I�@0H��ufDH��H��t�H��I�APM�H I�HE1��	���f���H��z.I��tM�@ L�@PH�@0E1�L�H �צ�����H��z.H�OA��WH�wH�@0H�?L�H 餦��@��H�uz.1�1Ҿ�A�H�@0L�H �y���f�UA��H��AWA��AVAUATI��SH��H��HL�-,z.dH�%(H�E�1�H�E�H�E�4��tI�E0H�@pH�E�E����H�L�u�D�E�L��H�E���D�E�H����H��A��L�u�I�u0H�V0H���u@H��H���t�H��L�M�H��L��I�UPD��H�NH��蟥��L��H���T��H��H�M�dH3%(��H�e�[A\A]A^A_]��A����A����D�������I����A����I�|$��
D�E��n��D�E����H�<���uH�����tH�������@I�E0M�M(I�U H�}�H�pPJ��H9���H�PXH�BH9�uxD�E�L�u�H�U��)��H�U�D�E�H�E�H�BADž���
���@I������B���I���&M���/���H�i�-H�8�%���L��fDL�u��D�E����D�E�H�E�A��~�Ic�H��H���wlL�u�L�u�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%�t	H)�H�L�L�L$I����&H�-H�8���L�u�D�E�L���O��D�E�I��H�E�A�W�I�yD�E�Hc�H�sL�M�I�H���q��L�M�D�E�L������H��y-H�8�&���H�;~-H�8����H��z-H�8����H���-H�8���H�^�-H�5 H�81���H��~-I��D��L��1�H�8���H���۸��Ǝ�fD����b���f���1��U���D��AWAVAUATUSH��H�D$ H�$L�%{v.I�l$0H�E0H�H����H��H��uH��H���t�H���,L�kL���u�I�����t�A�EL�{L�3H�K ������A���E���M�\$XH�E��~H��tkH�I �y:taI�D$X�D$xH�D$h�D$(H�D$8H�D$X@����A������A��1�L��L���ũ��DI�D$X�D$xH�D$h�D$(H�D$8H�D$X@���A�!A�H�$H��L��L��D�L$L�\$D�T$���D�L$L�\$Hc�D�T$H�EI�l$0H��Ic�A�udL�CH�}�H��A�MIU0D)�I���Hc�H�L�PM���A��H9��iI�|$0�����N�H�L�H��H�@�H9�u�H�AL�H�U�H�E�H�M�L�m�L�M�L�u�H�E�H�E�L�]�M���eL�}�ձ.��L��L�\$�{�����.L�\$�����I�T$���A�$��������I�T$0H�<$L�d$(�D$ H�T$0I�SL�t$8H�T$@I�SH�D$PH�T$HH�D$`4�D$X�|�@���f�A��H9��WI�|$0��~�N�H�L�H��H�@�H9�u�L�H�U�H�PH�U�H�E�L�m�L�M�L�u�H�E�H�E�H�E�M����L�}�L���z�����A�����~,Hc�H�L�PH9�����H��H�t�H�H��H9�u�A�!��I�T$(I�D$ H��H9���H�E��U�.�����I�D$���A�$���e���I�CH�|$0H�<$L�\$H�D$@I�C�D$ L�d$(L�t$8H�D$HH�D$PH�D$`4�D$X�S{L�\$�
������H�E(H�E�����H��tH�Q �z:��H�UH�KH�u�I�|$XL�BXH��L9�v�I�t$0H�JH�JH��H�B�H�E�H�M�H�U�L�m�H�EȁL�u�H�E�H�E�H�}�M��tQL�}�H��I�uA�1�1�1�A�UI�D$0P����A�����I�T$(I�D$ H��H9�r4H�E��$���I�L$(I�T$ H��H9�r
H�E��H�U(H�U��H�E(H�E���1�1����I�l$0���H�����1ҾH�=�����A��A����ff.���AWAVAUATUSH��xL�%�p.H�|$M�l$0I�E0H���u
�H��H���t�H���H�k@����H��������EL�[L�;H�S ������D���H�D$I�MM�t$XH��tH�R �z:��I�D$XA�H��$!E1��H��L��D�T$L�\$�G���HcT$�MdH�u0H�L�\$I��H��IUD)�M��L���Y�uI�D$0H�{D�$�L�H�Hc�H��A��H�t�PI9��M�L$0������H�L�f�H��H�B�H9�u�H�QH�9L�@�H�P�H�H�H�h�L�P�L�x�H�@�H�@�L�p�M����I�L$(I�T$ H��H9��lH�@����.�L����u�����.t{I�T$���A�$���tcI�T$0H�|$ H�$�D$ H�T$0I�VL�d$(H�T$@I�VL�|$8H�D$PH�T$HH�D$`4�D$X�wH�$�fD�H��x[]A\A]A^A_�@L�X��K����H��tH�B �x:�H�|$I�UH�KI�E�M�D$XH�rXH��H9���I�D$0H�BH��H�B�H�
I�E�I�E�I�U�I�m�I�EȁM�}�I�E�I�E�M�E�M���QM�]�H�L$H�u�1�A��UI�D$0PH��x[]A\A]A^A_��I�D$XA�H��$��^���f�H�C�uD�$H���I��I�D$0Hc�A��H�t�PH�x�H9���I�|$0������H�L�fDH��H�B�H9�u�H�QL�	L�@�H�P�H�H�H�h�L�P�L�x�H�@�H�@�H�@�M��t3L�X�L���s��H��x[]A\A]A^A_��H�P(H�P����I�L$(I�T$ H��H9�r=H�@���K��I�T$(I�D$ H��I9�r%I�E�����H�P(H�P��t���I�E(I�E��n����H�t$L�$��M�l$0L�$H������@H�����I�D$���A�$������I�FH�|$ L�d$(�D$ H�D$@I�FL�L$0L�|$8H�D$HH�D$PH�D$`4�D$X�t���H���y�������AWAVAUATUSH��H��H�-�k.H�E0H�H0H���u
�H��H���t�H��tF�oH�t$ )D$ �oJH�|$ )L$0H�B H�D$@H��u�H��H��H��t�H��H��H�H��H��荾��I��H��H�X���^L�u0I�F0H���ufDH��H���t�H���\L�cA���|I������oH�L�[H�S H�$A�$������A��$�L�}X�D$H���WH�B �x:E�A��A�¡�x:E�A��H�EX1�E1�L��I�NH��D�T$L�\$�`���HcT$A�L$dL�\$D�T$H��H��M����)�I�t$0H�IVL�CA��H�<�A�t$H�E0Mc�I���L�H�Hc�H�t�PI9��wL�M0������H�L�DH��H�B�H9�u�L�H�QH�x�H�<$H�P�H�H�L�`�L�P�H�x�H�@�H�@�L�x�M���WH�M(H�U H��H9���H�@����.�DI�A0H��L�h��o�����.��H�U���������H�U0H�<$H�l$XH�$H�T$`I�WH�|$hH�|$PH�T$pI�W�D$PH��$�H�T$xHDŽ$�4DŽ$��qH�$�`H����������H��H���Ѝ�������I�E��`H��`�q���H���`H��`�a���H��L���<���Q�����H�Ĩ[]A\A]A^A_�f�A�!A�����L�X������H��tH�B �x:��I�VH�KI�F�L�EXH�rXH��H9��mH�E0H�BH��H�B�H�
I�F�H�$I�F�I�V�M�f�I�FȁI�F�I�F�I�F�M�F�M���M�^�I�t$A�1�1�1�A�T$H�E0P����I�t$0H�+L$A��IVL�CMc�H�<�A�D$H�u0I���L�N�H�H�D�PI9���L�M0���z�A�H�D��H��H�B�H9�u�L�H�PH�~�H�<$H�V�H�F�L�f�L�V�H�~�H�F�H�F�H�F�M��t"L�^�L�h�H���Om���?���H�P(H�P��+���H�M(H�U H��H9�r-H�F������H�U(H�E H��I9�rI�F�����H�V(H�V��I�F(I�F����1�1�L�\$�ʶ�L�u0L�\$H������H���R���H�E�����������H�$H�|$PL�L$`�D$PH�D$hI�GH�l$XH�D$pI�GHDŽ$�H�D$xHDŽ$�4DŽ$��onL�M0�A���H������Y�f���1�1��#	��AWAVAUI��ATUH��SH��H��X�T$D�D$L�L$H��u
H�fg-H�I��A����I��I�����D$����H�����H�CL�p8L�t$ M�f M��tM�$$H�T$@H��L����l�A�Dž���H�\$@L��H�CH��H�D$(�������EH�CH�����8�}H�D$(E1��8
A���o�H�����t�|$�M����H�<d.H�XH��(H�H��(H��觨�H���O�� H���Ҏ�L��H���׆��R��H��c.��D$��H��u���H�D$�CH�kH�C�uH������tL�kM��t#A�EA�E���I���0����H��e-L90u
H�����H���
��H�����E���DH��H��L���>~�H��XH��[]A\A]A^A_�@�D$����7���H������H����H�����H�����H�C�|$
L�p8L�t$ M�f �����M��tM�$$H�D$HH��L��H����j��t H�|$HH��tH�GH�����8��L�c H�\$ I�����fDH��ƒ���t��u�D$����~H���V��H��ƒ����R����Ā�I���H����9�H��H���)�1���@H��tH������f.�H�߃L$���M�������I��I���&�H���t�w-H���t�H���t�H��軅�M��������W���DH��t�H��u��@�D$������M������H�D$HI����M�vM�������I�~ H��tH�?L��H���li��t�H�|$Ht�H���Xk�H�=H��1��w��E������fDH��������H�D$(D�HE���������D$0���������H��D�L$0���H�=PH��1��k�H�D$(D�L$0��������T���H�D$(1�D�L$0H�x��~�D�L$0H��H���.���H�z�#���H�zPt!H���H�T$0�P&��H��踰�H�T$0A��H�D$(H�T$8D�L$0H�x�H��H�T$8D�L$0H�RH� H�ztH�zH��H�'�D��1��r����L��H���u����s���H���h����L���I�EL���A���3���I������&���L��L����������H�D$ H���`H��`�����I�E��`H��`���L��L���j}�����DM�mA�������M�mA��������H��L��蕄���y���H�D$ H�H�D$��`H��`�_���H�t$H�H�D$��`H��`�E���L����|��8���@H�=�1��:�����H�D$(H�P�K������AWI��AVI��1�AUI��ATI��U��SH���Y����(I���\��H��I�GH��t�8
t3I�_�+L�k�C��
��H�
��Hc�H�>��fDH�@H�X��fD��ucH��L��[]A\A]A^A_ÐL�sA��uFI�����t=L��L���b���u.I�$��`H��`u!I���`H��`tL��L����{�f.�H��].��H��t�L��L���t���|����H��^-�C ����H�CH�����H�C�f�D�s�f.�L�sI�����u�H�����t�H��L��謂���t���I�$��`H��`�c���H���`H��`�S���H��L���{��C���A�vI�H�C�F�s ���{H��	Hc�H�>��DH�=�\.L�sH�CH�w0�4��H��H�����H���A������H�UH�H��H�DH�RH�D$H�$�S��H���r�L��H�CH��輝������L�s�$���H�`������H�������H��������H�\������H�������H�D������H�(����t���H������h���H�P����\���H������P���H�H����D���H������8���H������,���H�t���� ���H�8�������H��������H��������H�=�1��{k�H�=�1��mk�ff.�f����AH��(��w9H;�\-tH�$��L$H���r���H��(�D1ɺ�\���H��(�H��d-��H�5H�81��d�ff.�f���UH��SH��H��H� H��tH�?H�T$H���b��t#H�|$H��t蔝��H���}�H��[]�DH��H��E1�1ɺ
����H��[]�@AVAUI��ATUSH��H�� H�GL�`8L���n~�H��H���H=��;H���
�.I�|$ H��tH�?L�t$H��L���Qb���TH�l$H���FH�EH���9����.��
�
I�|$ H�\$H��tH�?H�t$L����p�H�EH�����8��L���|��s��H��Y.H�hH��(H�H��(H�E�8
��H�����H�D$A��u1I�����t(I�E�ƒ���t��t��L���}�I��H�L$L��菀�H�� []A\A]A^�f�H���8c�H�=�H��1��W�����f�L��H���u����+���H�@H��tH�@H��t	�8����L���}��H��H���ҕ�H��H�5xH��H��1���w�H��L������������������SH��H����H��[H������@��AUATUH��SH����~<�G�H��L�d$L�l�H�L��H�D$��]�H��t"H��H��H�����L9�u�H��H��[]A\A]�H���I��H�|$H�5�H��1�H���ps���AWAVI��AUATA��U��SH��H��E��u^E1�H���)�H��軔�H����H��H�=�1�谏�H��訖�I��E������uXH��[]A\A]A^A_�f�����@���|��H�=-A�H�xH��HE�1��b��h���H�����H��E��L��[L��]�A\H��A]A^A_�$���@E��H���H��L���
����Y���D���A��@�������H�`-H�5�H�81��_�ff.���AUATUSH��H����H��I���mz�H��H���H=���H���
��L��L�d$M��u�9H�[H���#H�{ H��tH�?L��H���4^��t�H�t$H��t�H�F���
������H��E1�1ɺL���	���H���Q��!H�D$A��u1I�����t(I�E�ƒ���t��t��L���Hz�1I��L��L����|�H��[]A\A]�DH���_�H�=�
H��1�觠�����f�1ҿ�d��H��t7H�@H��t.���t'��
�8���H�@H��tH�@H��t�8����A��t:H�wL���Ӄ�H��I���HD��M��H��H��H��H�5��1���s�fDI�����t�I�U�Ѓ���t���u&H��v��t��H��U-H�5��H�81��]��L���)y��o���H������c���������U���I��H��M������AUATUH��SH����~<�G�H��L�d$L�l�H�L��H�D$��Y�H��t"H��H��H�����L9�u�H��H��[]A\A]�H�t$H����@��AUI��ATI��H��USH��H��S.H�C0H�HPH�hXH�K0H�HH�HX�Ř�L��H��蚙�L���Rv�H�C0H�P�H�S0H�hH���[]A\A]�f�AWAVAUATUSH��H������F�H��A��H��H�D�L�l$8H�D$H�D$0H�D$H����H�D$ H��H��H�D$(�H�EH�|$H�D$0�X�I��H����H���(I���M�vM����I�~ H��tH�?L��L����Z��t�H�D$8H��t�H�pH�����������
��D; t>��uH��H��H�D$���H�D$L9�tAH�SL9r8t7E��1ɺL��H���j�H��H;l$�+���H��H[]A\A]A^A_�@D� H�@�8
uH�@D� H����t��H�VH��t?H�RH��t6�:t1D9 �z����fDH�|$ uH�|$(t�����tfD1�L��H�����H��S-L�0M��u���M�vM��t�I�~ H��tH�?L��L���Y��t�H�D$8H��t����D�+o�H���@��H�=��H��1��\�H��H[]A\A]A^A_�H�t$0H����fD��ATI��U��H��SH��蘡�L���H�����H��[]A\�ff.���ATI��U��H��SH���X��L���1�H���I���H��[]A\Ð��SH�Ӆ�u���H�@H��[�f�H����H������H��[�f���H��R-SH���u�x��H�@H��[�H����H������H��[Ð��SH�Ӆ�u�?��H�@H��[�f�H����H�����H��[�f���SH�Ӆ�u���H�@H��[�f�H��1ɉ�H���Q���H��[�ff.����H��Q-SH���u���H�@H��[�H��1ɉ�H���	���H��[�@��U�����H�5�f��H�=��SH��螃�1�H�5���H�=��艃�1�H�5���H�=���t��1�H�5����H�=���_������H�5���H�=���G������H�5;��H�=��/��1�H�5v���H�=c����H�[P-H��P-�����H�5I�H�;訇�H�;H�V-�����H�59�荇�H�;�����H�>���H�5b���}�H�=`��1��H�;E1�1ɺH���l��H�=�����E1�1ɺH��W-H��H�;�?�H�;�����H�P��H�5�����H�}R-H�-6V-�����H�5��H�;H���߆�H�;H�����H�5���Ȇ�H�-Q-H�;�����H�5��H��誆�H�;H�����H�5|�蓆�H��V-H�=t�H�0蝞�����H����H�5�]H��H��O.�[��H�=�O.1�H��|��H�5F��?��H�=�O.1�H��|��H�5���#��H�=�O.1�H����H�5k]���H�=���ƛ�H�=o�H�cO.讛�H�OO.H��[]�AWI��I��AVI��AUATUSL��H��8L�b M�hH�T$I�hI��$���I���6M������A��A��H�SI��$�H�U���H�{tH�MH�H�SH�U��u
H�������H�CH�S H�EH�U ��u
H�������H��ĀtH�M�H�EI��$�M��$�A��t0M��$�1�L��L��L�����E����H��8[]A\A]A^A_�I�����t�L��H��D�D$��p�D�D$��u�H���`H��`u�I�E��`H��`t�L��H���Ji�D�D$���H�������H��H��D�D$H�T$�~p�H�T$D�D$��uH�E��`H��`��I��$����f�H�D$H��L�L$H�D$(1���`��L�L$H�D$L�` �N���@L���h��L��L��E1�1�H�����H��8[]A\A]A^A_�fDL��E1��5��E1�I���!���f.�H��H��D�D$H�T$�o�H�T$D�D$��uH�E��`H��`��I��$������H��H��D�D$H�T$�so�H�T$D�D$��u
H�E��`H��`t H�I��$��Ā��������H���`H��`t�H��H��D�D$�g�I��$�D�D$���f.�H���`H��`�T���H��H��D�D$�g�I��$�D�D$�^���fDH���`H��`�Y���H��H��D�D$�Hg�I��$�D�D$���H�wJ-H�5N�H�81��>R�ff.���AWAVI��AUI��ATUH��SH��H��H.H�C0H�PPL�`XH�S0H�PH�PX���H��I�����L��M��L��H�ƹ����H�C0H�P�H�S0L�`H��H��[]A\A]A^A_�ff.���AWAVI��AUI��ATUH��SH��H�nH.H�C0H�PPL�`XH�S0H�PH�PX���H��I���v��L��M��L��H��1��s���H�C0H�P�H�S0L�`H��H��[]A\A]A^A_ÐUH��H���SH��H��H��t�M��H��A��H��H����H��G.��H��uH��[]�f�H��H��H�D$�`��H�D$H��[]�@��H�RI�����SH��P-�����H����H�5��H�;�y��H�;�H�t��H�5��^��H��K-�����H���H�5h�H�;�v�H�;�����H���H�5���qv�H�;�H��H�5=��Vv�H�;�����H����H�5/��;v�H�;�����H�����H�5=�� v�H�;�����H����H�5��v�H�;�����H��H�5u���u�H�;�H�۸��H�5����H�;�H�@���H�5���d�H�;�H����H�5���I�H�;�H���H�5���.�H�;�����H�?���H�5����H�;�����H���H�5���~�H��E.H����u������H�)���H�5�H���u�H��E.H����G������H�;���H�5�H����t�H��K-1Ҿ�
H�;覯��H�;�
��
H�PI���M���H�;1Ҿ��~���H�;���H�PI���%���H�;1Ҿ��V���H�;�[H�P��I�����ff.����AWAVAUATUSH��(���I��H������o������a�����EI��H����L���H�����C�H�l$I�D�H�D$I�>M���3��H��M���M�M����I� H��tH�?H��H���tL��t�H�D$H��t�I��H�@H�����������u
M�d$M��u�L��I��谔�I�W1�H��I��H�����L9t$�c���H��(L��[]A\A]A^A_��H�F-L�8M��u�B�M�M��t2I� H��tH�?H��H���K��t�H�D$H���H���M�M��u�1�H��L���������H�@�u���H��D-H�5��H�81��^L�ff.���AWAVAUATUSH��(H�<$H�t$H������L�$$H��A�H�l$L���f�M��tx�M���M�M��toI� H��tH�?H��H����J��t�H�D$H��t�H�PH��tA�
��t:��
������M�d$H�ZD�(M��u��1�H��L������A��u�I�����t�A�$����u�H��D-L�0M��u��@M�vM��t�I�~ H��tH�?H��H���@J��t�H�D$H��t�H�PH��t��
���]����y���f�H�JH���s���H�IH���f����9�]���A��uI�����tA�����t,A��uD�(H�t$H�<$M��D�����H��([]A\A]A^A_�I�OH��t�H�qL9~8LD��H��B-H�5*�H�81��hJ����ATI��USH��H��H�|$H�T$��F�H��t%L��H���ω�H��H��H��葇�H��H��[]A\�H�t$H���������AVI��H��AUATI��USH��@.H�C0H�PPH�hXH�S0H�PH�PX���L��I���܅�L��L��H�����H�C0H�P�H�S0H�h�[]A\A]A^���AVAUATA��UH��SH��H����tr���Y�؃�����H���!���(H�{���k����1҉�E���ƒ����H�����uVH��I-H�8�N�H�����uwH���H����H�{���6k��th1�E����H����H����H�{�ʀH���t��������H��[��]A\A]A^�f.�H�{����j����H���҃�H�D$H�$E����A�H��D�⾙H���f�H�������H��[��]A\A]A^�f.�L�-yF-��I�}�[j��t�1�E��I�}���3���fD1�E��������H�9B-H�8����H���(��A��H��H�$H���H�Ѓ�H�D$�U�����H���K�A�ă���A��&���@H��@-H�8���i�����������H�YF-H�8�Q����H�)E-H�8��@H��G-H�8�@H�Y@-H�8�N����H�F-H�8�>�����I�H�8�����H���e����H��I���Iw�H��I���-���#A��u3I�����t*I��ʃ����������.��LE�@H��L��1�H�=��謈�I������I�E tgI�mI��H�������I�}@��tt臍��H�}H�E tH�}H���1��b�����H�	D-H�8�N����H�i@-H�8�>���M�m I�mI���I��#�΃����M����=�����Q���ff.�@��1���w�D��UH��SH��H��H�见�H�;H���Lf��uH���4[]�H���d~�@��H�=<.H�f.�@AUI��H��@ATUS��H���H��XdH�%(H�D$H1�H��H���gA�Ã�P0L�%�E-I�4$H���}Y��H�T$HdH3%(u(H��X[]A\A]�L�%�E-A�ſ
D��I�4$��^���S�ff.���AW�MAVAUATI��UH��H�=4�M��SH��L�=:E-dH�%(H��$�1�I��σ�H�E H�M(H��I9�����DL�%}uH��!t+��L�%��H��tH��L�
'�H���ID�I��I�EH���&�uH�����t�������I�UH+P0L��H�T$H��H�T$�`A�ƅ�t4I�EH�HH� �H��H�|$ E��1�H�V���?�H�U(H�E �I�?H��H�b�H���������L)�H��H��1����H�|$���H�L$I�?�1�H�5����I�MI�?H�+�1�H+M �H���ł�H��I�?�H�KY�8��m4H��H��H��?H��H��H���H)�H���Hi�'H)ˀ|$ HE�H��1��q��I�?1�L��H�����X��E����I�7A�E���
I��P�\�H�E H�M(H��I9���I�U0H��H)�xH���D$ H9�v�D$pH��A�EH��a�����L�%��H=�������L�%@1H��q�����H=�L�
�H���ID�I��I�EH������I�EHE1�H��t.H�@A�����H�x�B�H�|$ ��H���H��1���=�H�U(H�E �I�?H��H�x�H���������L)�H��H��1��$��I���H�=Q�軀�����fDL�%c�H��1�'���H��AL�
4�H���ID�I���	����L�%`�H=������H=�L�
��L�%1�ME�����I�?�H�L$ 1�H��-腀�I�7A�E�6���H��	�H�=�����I�7����fDH�I����I�7�
�Z�H��$�dH3%(u0H�ĸ[]A\A]A^A_�fDL�%��4���@E1�����O�ff.���H��6.H�8H�w0�Y���f���AW�AVI���AUATUH��H�=�SH��L�-�@-I�M�7�H����L�=���I�M��H�=0���E��~o1��I�u�
���Y�9]~RHc�I�}��L��L�d�8L�D�8+M1�M���
�M9�u�I�M��H�=���~��f�H�EH��t
H�h H���Z���I�MH����[H�=O�]A\A]A^A_�R~�f���ATUSH��H��H�?�9O�H�|$H�D$�<�H�-n?-�H�=�I��H�M�~�H�}L��1�H����<~�H�C(H�sH�x �k���H��[]A\�f���H��H�5Q-�\W�H�p0H��H�����ff.����H��H�W0H�w H�����H�B0L�BH)�M��tA��tsH�
I+H0H��H�(I�����H��xH��H9�LF�H��L�BH��H)�H���������H��I)�H��I��H���PH�a>-H�81��W}�H���f�I������t�E�A��A���s����y������H��H�5a-�lV�H��H��� �����AWAVAUATUSH��L�nM��twI+U0H�G H��I��H���������I��H�W(H��H)�H��H��~-E1�� A���R;�I�W(I�G H��H)�H��H��A9�|�1�H�5p���p�M��yH��[]A\A]A^A_��L���0U�H��L��L��[H��]E1�A\H��A]1�A^A_�Kk�ff.����ff.���USH��H�5O-�ZU�H�-�<-�H�X0H�=��H�M�{�L�CH�1�H�}H������{�L�C0H�}H��H����1��{�H���[]�ff.�f���H���H�=<5.��I�H�505.H�����u9D��AWAVAUATUSH��H��(dH�%(H��$1�H�F2.L� M����H�;2.H�8H�w0����H�-<-�
H�u�UU�H�MH����M�H�=G��z�H���1�H�5�����H�{xH�5�������H���H�5�������H���H�5�����q���H���H�5�����\���H���H�5�����G���H���H�5����2���H�{hH�5q���� ���H�{pH�5c�������H�{(H�5U�����H�{0H�5F������H�{8H�57������H�{@H�5)������H�{HH�5�����H�{PH�5
�����H�{XH�5������H�{`H�5�����~�H���H�5�����i�H�M��H�=C��y�H�M�M�H�=
��x����H�u�
�S�H�M�N�H�=-���x�M����I��$H��� ��H�HL�@H��~�H�}H�>�1�1۾L�-s�L�=�Q�x�H�u�
�S�H�M��H�=��Fx���H����H9��HH��L�4�A����A���lD������I���;A����I�~�8^�L�A�� ��I��L�HA��H��H�}L���AV�1��x�XZ��I��$�Hc�H��� �U���H;H��H�@ L�4�A���[���I�������M�D��������A��A���[�����L��PL��MD�L�D$�]�L�D$L�A�� �<I��H�PA��H��H�}�پR1�H����Bw�Y^�<���H�u�
�Q�H�5�uH�=���gp�I��H����H�M��H�=��L�l$�v��;f.�L���L���<�H�M�L��H��H���dv�H9�uL���wX��t�L���[B�H�M��H�=e��1v�H��$dH3%(��H��([]A\A]A^A_��H��L�@���[���L�@L�HI������A�����I���M������H�V5-H�8���fDH��4-H�8���f�A�� ��I��M�NA��H�}��H�J�1���u����f�H�-�6-H�MH��������M�H�=;��&u����H�u�
��O�H�M�N�H�=^��t�����@H��.-H�8���L�HH�PI�������A����H�93-H�8�����H��/-H�8����M�FM�NI������A��	����M�H�=��jt��%���H�u�
�O�H�M�N�H�=���=t��y����H��5-H�8�4����C�f.�f�����fD��HcGH�@H��(�ff.�H��AVI��AUATUSH�w0H�@ H�(H���`���H9�v[1�]L��A\A]A^A��f�H��M��I��I��H���������H)�L��H��H��H��H��A��H��~eH��H��H��H)�H��H��H��@H�;t	H��L��A��H��PH9�t0H�{u�{au�H�SHH�BH��t&H�PH��H��PL��A��H9�u�[]A\A]A^��H�R��f���H�L�FH�HcB�pH�@�rH�2H���L�@H�HH�G�f.���H�HcA�pH�@�qH�1H��H�PH�W�H�P��H�W H��H�r���H��).H�H�@H��H��u
H�K\-H�H��G�ff.�f����ff.���ATUSH��H�~H�6H�oH+w0L�g H��H�+�l�H�{L�CL��CH��[��]A\A��ff.����SH�?H��t	H���G�H��[��G���ATUH��SLcgM��tD1���H��I9�t/H�UH�[H�‹����w�H�BH��H����
[�I9�u�H�}�Z�H�} []A\��Z�f���H���Z���S�(H����x�H��H��-[H����o�fD��ATI��USH��H�=K.���K�<dH�h H�CH��H�+�R�H�H�EH�B�B[]A\����ATI���UH���S�w�H�=�J.H��-H��H���Zo�L�#H�k[]A\�ff.���H�G H����t#��w
H�@H�@Ð��uH�@H��uݸ�PH�=��1��}7�ff.�f���H�G H����t#��w
H�@H�@Ð��uH�@H��uݸ�PH�=]�1��-7�ff.�f���USH��H��H�/H���(d�H�{L�CH��H��HD‹SH��[]H��A��f���AUA��I��ATUH�-�^SH��H��H��t
H�nH� uOL�%�0-A�EI�<$��tLH��t{L�KH� tL�KH��H��H���1�[�]A\A]�Uo�DH�n�f.�H���M�D�D$H�=����n�I�<$D�D$A�EH��u�H��H��H�Q�1�[�]A\A]��n�ff.���AT1�I��H�=;�UH��S�^�H��H��t+H��H��H�5-�1��?�H��L��[]A\�.��H�5��H�Ǻ�B�H��L��[]A\��-�ff.�f�H��1�H�T$� ������tH�T$��uH�����t
�����t
H��H���f�H�RH��H���@��ATI���UH��S�xI�H�U 1�H��H���7u�H������H�߾H���u�H�ߺ��
u�H�ߺ��t�H��H�߾H����t�I�<$H��[]A\�h����AUI���ATUH��SI��I��H����H�H�U 1�H��H���t�H������H��H���t�L��H���rt�H�E�H��tH���H�߾�Pt�H��L���@t�I�}H��H��[]A\A]�Jh�f.���H�A��% H��t;L�IH� tL�IH�NH��tH�NH���1��l�f.�H�NH��tH�NH�D��1��`l�SH�����t-��uH�[H��u�1�[���tH�=��1��=3�D�C[�H�{H�s�H+w0H����e�C[���H��H�G H�8���H��H�H�D�AUATUH��SH�����t$��������H�=m�1��2�@H�GD�oL�`H�X I�l$I�$ tI�l$H��L���k�H��H�5�H��1��.�H��E�����H�5��H����>�H����H�SH� tH�SH��H�5�1��y;�H��H��[]A\A]�H�H�uH+w0L�gH��H�_ �d��EA�ʼnE�A���f�H�H��tH�GL�`�Z���A��H�}��^�H��H���HD�����f.�H��D��H�5Ra1���:������H��H�58���=�H��H��[]A\A]�fDH�a!.A�H�H�@L��M���m���H��S-L� �^���D���'������H�G H�8������H��H�G H�8���H��H���J���H��H�G H����t8��v&��u.H�z��]�H��HD�H����H�BH�@ H���H�=g�1��0�DAWAVAUATUSH��L�L$H����H��H����I��I��H��M���@�H�$A�$H��~]Hc�H9�}UH��E1��f.�Hc�H9�};��H�t$A��H�H)�H�@I�H�<�A��H�<$H���Md�Ic�A�$H�3H9��H�$H��[]A\A]A^A_�f.�H�=��1��/�f�H��(H�ҸH�|$H� HcOHD�H9�+I��H��E1�L��H�wL�W�����H�T$H�T$H�T$H��(�ff.�H��(I��H�ҸH�|$H� HcOHD�H9�(I��L����H��H�wL�����H�T$H�T$H�T$H��(�ff.�AWAVI��H���AUATE��UIc�S��H�5m���H��XL�|$0�L$H�
��H�D$@M���h�H�D$8L����H�L$L�D$H�D$ L�h H��-1��M3������t H�|$��t^�>�H��X[]A\A]A^A_�f�l$IcUHc�H)�H��t�H�|$ E�����z���H�T$ H�T$0H�T$ H��X[]A\A]A^A_�@A�ME1�H�t$(L��)�Hc��/2�H��tjH��t�H�t$(H�T$0H��DH�T$H�|$H��t�@��tbH��H���toH�H����H��x{H�t�R���@�;����\���fDH�t$@��tEH�H��x}IcUH�H)�����fD�X�H�T$H���f�H���X�H���H���X�H���H��&-H�5�JH�81��+&�H��H�q&-H�5��H�81��&�H����ff.�ATA��UH��H�5-S��H���?�����u+���t"E��H���E1�[1�]H��A\���f�[�]A\�fD��H��.H��E1�A��H�8�j���f.���H�U.H��A�A��H�8�7������H��H�G H����t0��v��u&H�z�`�H��H���`�@H�BH�@H���H�=��1���+�ff.�f�H��xH;}H�?H���-�PH�%-H�5��H�81��$�f�U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f���H�GH��t3�uH�����t
�����tH�7H+p0H��H���]�f.�1��ff.�f���H�5%-�p,���H��(H��.H�
��H�c�I��H�5I�H�D$H�8�X�H�D$H��(�ff.���SH�_ H�CH��t[�@HcS1����H�C[������f.���SH�_ H�C H��t[�@1�1�����H�C [�f���UH�
��H��H���SH��H�5��H��(H�D$I����H�|$H��H������H��([]���UH�
��H��H�Z�SH��H�5?�H��(H�D$I���J�H�|$H��H���*���H��([]���H��8H���H�
:�H�D$ H�D$L�D$H�D$(H�O.H���H�5a��D$H�8���H��8�ff.����H��(H��"-H����H�
��H�T$I��H�d�H�5
�H�H�D$H��.H�8��H��(��H��(H���H�
��H�D$H��.I��H��H�|$H�5��H�8�@�H��(�ff.���H�u.1�1�H�8�I���f�����b���f���1��U���D��SH��-H�57�H�n-H�8H���f�H�5t�H��H��:.�_�H��:.������ƒ����`H���v<�~H�xH�5�<�.`�H��-H�=X:.H�
��H�B���H�0��C�H�H�=8:.H�5���4f�H��H�:.�W�H�:.��6����ƒ�����H����<��H�xH�5=<�_�H�=�9.1�H���H�52��"P�H�=�9.1�H����H�5���P�H�=�9.1�H�����H�5���O�H�=s9.1�H�J�H�5O��O�H�=W9.1�H���H�5�c�O�H�=;9.1�H�r���H�5�&�O�H�=9.1�H�f���H�5�&�zO�����H�5����H�=t��J�����H�5����[H�=b��J�f�H��������H��tnH������H�>-H�8����fDH������&���H��t.H������H�-H�8����fDH�I-H�8����H�9-H�8����H�)-H�8�g����H�-H�8�W����H��-H�8�G����H��-H�8����H�y-H�8�'����H�i-H�8����H�9-H�8�w����H�)-H�8������AW1�AVAUATUSH��XH�.H�|$ H�8H�t$(1�H�G0H�<$H�|$@H�D$H����H�H�D$P�� ��H�@H�D$`�4�H�<$L�D$8H�
��H�D$8H��H�5
��U�H�|$8��[�H�D$�D$�Y@H����H9�}iH�|$�R&�H��H�D$�@&�H��t"H��H�<$H���
���H�|$H�¾�hd�D$H�D$Hct$H��� u�H�D$H�@H9�|�H�D$H�$H�T$pH��$PH�D$p4H�D$XH���H��$�H�
iH��$HH�BH�H1��H�H�HH�`H���H�|$@H�t$(H�D$ ��H�D$0H�$H��$HH���H�D$0H��X[]A\A]A^A_���H�$�PH�@H��t�H��$HH�$H���H�@.H�H���H�xH���DH��H�����B���f���H��H��H�w H���(���1�H��H����$�f.���H��H��H�w H������H��H���$����H��H��H�w H�������H��H���g$����H��H��H�w H������H��H���7$����H�G����AWI��AVA��AUATA��U1�SH��H�.H�H�P(H�X0H�@ L�,�D9�}_L9�tZH�{H��tHH�3H��t@E��YH���Hc�I��H��t%H+w0H��H�L$H��H�$�lT�H�$H�L$���H��PD9�|�H����[]A\A]A^A_�@A���f.����'������'������'������'������'�����S���H�����t~H�èukH��Ѓ���tZ��tY��tTH�߾��5�H�èuH�����t
�����t.H���"T�H����F�H��H�=Ώ[H��1���H�DH�[H��[�SQ��[�f���H���S��H��H��t&H�Ѓ�u*H��у���tH�к%HE�H����1�H��Ð���'�����ATUSH�����H��H��tGH���]�H��I���tI�I��t.H��H���[H��H��L��H�=�]HE�A\1���G�H��[]A\����ATUH��S�"�H��H���%<�H��I���6�H��ttI9�toH�3H��� tAI�$H�s�� uDH����H)�Hc�H9�uJH�SH��tH�S[H��]1�H�=��A\�`G�I�$H������ t�I�T$�f�H��[]A\�H���`����0�fD��H��H�5�,�1�xH�H��H�Ѓ��f.�UH�-HL.1�1�SL�|2.��A��EDD�lj�A��A�4����t��A�4�D��D��A����	���AD�H��H�� uʉU��[]�	�fDAUI��ATI��UH�-2.SH��H�GH�H��tH�C�s�uL�kH��A	t$H��u�H��[]A\A]ÐL�
�K.I�E1�1�A�A�@D���T����t���T�	���E�H��H�� u�A�9�	�H���k,�I�]�t���f���H��H�5��,H�|$��/�H�PH��tH�|$H�p��H���fDH�x H�T$���N�H���ff.���USH��H�7
.H�(�^�H���H��H�mH��tl1�1��fDH�I��H��t�u�H�I��H��u�Hc�H�H�TH�DH��H�$H�D$�]�H��H��H���(7�H��H��[]�fD���ff.����AWAVAUA��ATI��UH��SH��HH�L$L�$�H�H��A������H�=��A�� t,�)H�=��A��@tA���H��LH�=�.HD��C�A�I��H��tH���C�I���xF�H�<$Lc�H���H@����H�|$O�l-L�|$�L�t$L�l$ H���GH�D$(M��t	H�����H�D$0H�$�H���H��HD�H�T$H�D$8�L�H��H[]A\A]A^A_��H�=r-A���,���H�=ߤA������A��H���H�=�-HD�����A��H�#�H�=�-HD����D�c7��O���fDH����������H��Ѓ���t~��������������r/�H�$����f�H��
.H��H�t$H�8�	���H�<$H������������N����fDH�=��9���@H�GH�$�e���H��tkUH��SH��H���&DH�M H�UL��L�E(A��fDH�[H��t,��u�}�{t�L�KL�S�t�H��L��A��H�[H��u�H��[]�@�ff.�@��H��t/SH��H� �;�H�CH��tH�x[��;��[�fD��PXH�5��H��H�<-H�81���f�AUA��ATI��UH��S��H������t���u#� �4�D�(�XL�`H�hH��[]A\A]�H�Y
-H�5�H�81�� �USH��H����H��D��H�����H��H����}H�EH����
����E	��H��[]�f.�AWAVAUATUSH��(��D$�F���FH�T$ H�t$H�|$����H�|$�xTH�\$�D$<H�T$@H��$ H�D$@4H���H�L$PH�
�H��$H�BH�H1��H�H�HH�`H���H�\$(H�D$H�t$ H�8����D$H��$H�L$(H����D$<��u�D$H��([]A\A]A^A_��H�|$�S��@H�D$H�@��P� ���H�|$�8���������H�D$(�HH�@H�L$���p����Q���ff.��U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�SH��H�wH��O��H��tH�PH��H�RH�S@���C<[ÐH�C@�C<[�ff.�@SH�G(H��H��t#�uH�����t
�����t=�C8[�@H�W(H�w H�����H�C(H��u�H�C(�C8[�DH�@H�C(�fD��AVI��AUATUS�����G�H��E1�L�l�H�}H�
^�H�)q�L�H�=%).H��H���9�dJ�H9��TH�=�(.H���S�FJ�H9��nH�=�(.H���m�(J�H9���H�=�(.H�����
J�H9���H�=�(.H������I�H9���H�=d(.H������I�H9���H�=>(.H�����I�H9���H�=(.H�����I�H9��
H�=�'.H���)�tI�H9��DH�=�'.H���C�VI�H9��^H�=�'.H���m�8I�H9���H�=�'.H�����I�H9���H�=Z'.H�����H�H9���H�=4'.H������H�H9���H�='.H���U�H�H9����Pf�H��A	�I9������M������
�0�H���S�L��H���,H���ZK�H�5��,H��H���&�H�h H�@H�@D� H�X(H��[]A\A]A^ÐH�=c���R�H��H��&.�H�H9��������M���DH�=�%��GR�H��H��&.��G�H9�����������DH�=Ȝ��R�H��H�E&.�G�H9��x��������DH�=�����Q�H��H�&.�hG�H9��^�������DH�=Ϩ��Q�H��H��%.�0G�H9��D�����m���DH�=	���gQ�H��H��%.�F�H9��*���� �5���DH�=���/Q�H��H�E%.�F�H9������@���DH�=�B��P�H��H�%.�F�H9������������DH�=����P�H��H��$.���H�=Q���P�H��H��$.�0F�H9��������m���DH�= ���gP�H��H�e$.�E�H9��������5���DA����5���DH�=���P�H��H�$.�E�H9��x�������DH�=���
��O�H��H��#.�xE�H9��^�������DH�=����O�H��H��#.�@E�H9��D�����}���DH�=`���wO�H��H�U#.�%�����(�F���H��	-H�5K�H�81��n	�H���3�H�5�H��H��	-H�81��K	�ff.��
�NtH��H�֋P��H�8����@��H�W��P�H��H��H�t$H�$��H�$H�t$H�8H������AWAVAUATUH��SH��H�_L������tlM��t
A�$��uLH�CH���H��H�߃�PH����I���H�CH��H��H����3���H�CL�����PH��[]A\A]A^A_�f�M��u�H�-H�H9Gt�H���D�sHA��H��L���L���CHH���H���H�CHǃ��PH���H��������tnHǃ�H�S��PH���L���H���E��t'H�S0�BtH���H���H���H��PH�S0H���H�{H������DH�CH��H��H���������t���H�CL��Hǃ���PH���D�sHH���L�������UH��H��SH��H����4�H��t#H��H��H��A�[��H�5*�]��H���,H�5��H�81���ff.����SH��H�5��,��H��H�����H��[�ff.����SH��H�5��,��H���H��t2H�
����H�RH��tH9Ju�
H�R���H��u�H��tH��H���
���H��[����SH�H��tH�{�'/�H�[H��u�[�ff.����ATI��U��SH��H�5��,���L���H��A�[H��]A\��f.���U�SH����H��H�j�-�}H�H���H�EH������E	��H��[]�D��AUE��ATI��U��SH��H��H�5@�,�K�H��E��L���H��H��[]A\A]���ff.���USH���q�H��H��-�}H�H���H�EH�������E	��H��[]�f.���UH�5��,H��SH����H��H�@H��t3H�x�A�H��H�5���p6��CH���4[]�D�3�H��H�=��������UH�5$�,SH��H���G�H�ߋh��
��D��t;��u'H���,H�=	-H��H�پ[]���fDH��,�����H�H��H��[]���D��S�f�H��H���[
�H��[�fD��SH��H�5��,��H���H��t@H��1��f�H;ZtH�RH��tH��u�
H�R�����H��u�[�@1�[�ff.����UH��SH��H��H�5)�,�4�1�H���H��u�:@H;YtH�IH��t'H��u�H��4tH;iu�	H�I�����H��u�H����[]��H���-H�1�H���H��u�2f�H;ztH�RH��tH��u�
H�R�����H��u��D�ff.�@��SH�=��H���l$�H��t!H���.0�H��tH�ھ�H�=z��5E�H��[�H�A�,H�5�H�81������H��-H�1�H���H��u�Bf�H;ztH�RH��t'H��u�H��4tH;ru�
H�R�����H��u��f��ff.�@��UH�5t�,H��SH����H��H�@H��t+H�xH��H�5���F��CH���4[]�DH��H�=v��)���ff.�@��UH�5�,SH��H���'�H�ߋh�<��wA��t;��u'H�p�,H�=�,H��H�پ[]��fDH��,�����H�H��H��[]���D��H�}�-H�0H��(H��(H9�t<�H���H��t!���fD�H�@��H��u��H�	H9�u�1��\"�ff.������B���f���1��5���D��AWAVAUATUS1�H��xH��-H�|$ H�H�t$(H�D$H�D$8H�D$8�D$@H���H���É\$��H�D$8H����pH�|$8�B�D$0H�D$8H��$�H��$pHDŽ$�4�@H�D$4H�D$8H�t$8�@HH���H��$�H�
�H�t$H��$hH�BH�H1��H�H�HH�`H���H�D$H�|$(H�D$ ��H�D$�D$H��$hH�L$H����D$0����H�T$8H�D$@H9�����T$��t7�D$����H�D$8�T$4�PHH�D$H��x[]A\A]A^A_��H�D$8H�@��P�fD��H�D$�XH�@H�\$���S����5���@H�|$8�A�[����H�D$8H�T$@H����z���f.�H�D$8H�@��P�H���H�D$8Hǀ��$���H���-�T$H�H���H�xH�U�D��H���-H�H���H��t�P��ff.�@����f���H�����@�M��=�lv2=��=�d=��1�H���8�fD=��=��=�u�H�=\.H��u�H�=w4��B�H��H�<.�f�����vM����� �s��u�H�=/.H���w���H�=���mB�H��H�.�W���fD�������=���H�=�.H���/���H�=`��%B�H��H��.����fDH�=q.H�������H�=���
��A�H��H�M.����H�=�.H������H�=x���A�H��H�e.���H�=.H�������H�=s���A�H��H��.�y���H�=.H���i���H�=����_A�H��H��.�I���H�=�.H���9���H�=���/A�H��H��.����H�=�.H���	���H�=����@�H��H��.���H�=y.H������H�=x����@�H��H�U.���H�=).H�������H�=a���@�H��H�.���H�=I.H���y���H�=S���o@�H��H�%.�Y���H�=�.H���I���H�=���?@�H��H��.�)���H�=�.H������H�=���@�H��H�e.�����H��-H�H���H��t�1�P�k�ff.���H�@4SH��tHcC<[H�D�fD���HcC<[H�D���H���-H�H���H��t�;�P��ff.���H�G@H��4tÐSH���w�H�C@[Ð��H�e�-H�H���H��t�a�P��ff.���S�G8H����u�|�H�{ H��u�[�@[�4�f���H��-H�H���H��t��-�P�[�ff.����G8SH����u��H�C([�fD��H���-H�H���H��t�1
�P��ff.���SH��H�wH��g��H��tH�{H��[�)r��f��[�f���H�E�-H�H���H��t�q��P��ff.���H�G����H��-H�H���H��t���P�[�ff.���AUH�5��,ATUSH����H���-H�H���H������� ��v=�4��=�#=ukH���T,�H��H��tZH���S9�H���>�H��I���`�H��I���u�H��I��D��[L��]H��A\H�=b�1�A]�A&���t`��t[��t�H���8�H���a>�H��I����H��H����H��D��H��[H��]1�A\H�=�A]��%�f.���@u�H���8�H���>�H��I����H��I���u+�H��H����H��E��L��[H��H��]H�=ѭA\1�A]�%�fDH���x��H��H���}�H��H��H�=k�[H��]1�A\A]�O%���@H�59�H�=v���H�1�HD�H��1�[]A\A]�%�f���H���PtH�G0H��4tH���H���,H�53�H�81����H�=:�1���ff.���H���-H�H���H��t��P���ff.���H����tH�G0H��4tH���H�
�,H�5��H�81��L��H�=�1����ff.���H��-H�H���H��t��P�k�ff.���H���0tH�G0H��4tH���H���,H�53�H�81�����H�=b�1���ff.���AUI��ATI��U��SH��H�����uaH�".�0��:�H�d�,H��H����2�H�5R�,H��H���w
�H�@ 4L�hL�`�(H�X(H��H��[]A\A]�H�59�,�D
��f���S�H�5��H�=���S�H���,�H�p�H�5e�H�;��#�H�;�H�"�H�5V���#�H���,H�=R�H�0��;�H��H�>.��*�H�2.��2��Z�ƒ����lH���r<�zH�xH�5Y�2�H�=�
.�����H���H�5:��#�H�=�
.�����H�h�H�5��#�H�=�
.1�H���H�5!�#�H�=�
.1�H���H�5pB��"�H�U�,1�H�=l
.H�5�B��"�H�=Y
.1�H����H�5��"�H�==
.1�H�l���H�5��"�H�=!
.1�H�����H�5���t"�H�=
.1�H���H�5�!�X"�H�=�.1�H�(���H�5��<"�H�=�.1�H�\���H�5Ԩ� "�H�=�.1�H�����H�5�.�"�H�=�.1�H����H�5���!�H�=y.1�H�(���H�5����!�H�=].1�H�����H�5��!�H�=A.1�H�@��H�5!S�$"� ��H�k�-H���H���ǃ�[��H��������H��t.H������H�^�,H�8����fDH���,H�8����H���,H�8����H�Y�,H�8����H���,H�8����H���,H�8�{������H���-L�M�AIc�����?D�Q���E���9�u�H����I��H�L�IH�qH�Q�A���Ð1��ff.�f���H�U�-L�M�JMc��E��~:I���H;ptuA�H�H��0H��H��@H�� H9p�tVH9�u�A���XA�HD���A���A9�u�I���I����L�H�8L�PH�pH�P�A����D�A���Ð1��ff.�f���AWAVAUATUSH��H���-H�<$H�T$ H�D$ 4H�H�� H�\$H��H����H�� H���H�|$H��H��$�H�BH�|$H��$HǃH�|$0H�=�H�x1��H�H�HH�`H����H�4$�J�������9�tSH�$������H�|$H��$�H���H�D$H���H!� H�D$H��H��[]A\A]A^A_�H�<$Hc�H��H���H�H�x�P���H�D$�@H�z���D���ff.���H����t1H���H��t%H�OH;Ju�7�H9HtH��H�H��u��f�H��H�H���H���H����D��H���-H�H�@��LH�H�Ѓ��ff.�f���H���-H��1�H�����H���H�R��L�f���H9�t LJ�HLJHLJ��fD��1�H����H���ff.�@��H��H�H�Ѓ�x�ff.���H������H��1�H�v(H�xH���f.�H��1��1��uH��É�H�=�����ff.�AUI��ATI��USH��XdH�%(H�D$H1�H�l$H�D$�"�H��H������Å�t$H�L$HdH3%(��uTH��X[]A\A]��L��L��H���*�Å�u�I�EI$H�t$H�����Å�u�H�D$I)EH���H(�����UH��ATI��SH�����H���H�� dH�%(H�E�1��,��u
H������tnI���veL)�H����H��H9�sOH)�H��H��H��H%�H)�H���H��H9�tH��H��$�H9�u��u0H�D$H����@H�E�dH3%(uH�e�[A\]��H)�H�L������H���W1��uH��É�H�=�����SH��@H���`��t�u[É�H�=ʢ������H�ǰ��H�����uH��É�H�=�����UH�oSH��H��H���k���H�C8H�CH��uH��H��[]��H�{@�_���H��H��[]�@H���"��uH��É�H�=L����H�����uH��É�H�=A�����ATA��UH��(SH��H������H��E��t;�H���H��t	H�����H��P����[H��]A\���f.����f.�SH���H��H������u7H�$H�L$H��S㥛� H�H��H��?H��H��H)�H�SH��[�fDH��1��f��H��[�H������uH��É�H�=g����ATI��UH��SH��H��H��L�����t�t��nu[]A\É�H�=:������H��H�5��,���H���H��HD�H���@��H��H�5Q�,��H�x`H�H��H�Ѓ��f���ATH�5#�,I��U1�S��H��H���<���H�{`tH�����H��[]A\�DH�)�-H�5��,L��H�(H�k`�C�H���H��tH�PhH���H�߽�?���H��[]A\����SH���-H�5��,H���H9X`�[HD�Ð��USH��H��H��H�5��,������H�������H��H��ƒ���tz��uuH�5��,H��������H���H��tD@��ubH�����tYH��ƒ���tL��uGH�5<�,�G���ueH���H��H��[]�H���[]�H�5�,H�5΢H�81�����H��,H�5�H�81�����H��,H�5ƢH�81����H���,H�5��H�81����@��H��H�5��,������HD�H���D��SH�5t�,H���|���H��[Ð��H��H�5Q�,�\��Hc@8H��H�D�ff.���SH��H�5!�,�,��1�H������‰��H��[�D��H��H�5��,����H�H��H�Ѓ�����H��H�5��,�������t����H�H����øH���fD��H��H�5��,������HD�H���f���H��H�5Q�,�\��Hc��H��H�D�ff.�SH��@H�������t�u[É�H�=g��������SH�������Cp��~	H�{(���H��[�
���f.���H��H��H�����1�H���fD�����USH����H����tdH�����H�Ń��t:H�Y�-�4H��H�8���H��H����1�H��ǃ�&���H���[]�f.�H���,1�1�H�8���H������f.���ATUS���I��H���-H�H�hH��(H��(H9�u�*DH�H9�t���w�H�sL�����H�H9�u�L��[]A\�ff.���AUATI��USH����I��H�P�-H�H�hH��(H��(H9�u�)@H�H9�tL9��u�H�sL���c�H�H9�u�H��L��[]A\A]�ff.�f�U��SH�%�-H���H�މ���H��ty����0��tރ�uH��[]�H�=<��'9��S1���������t����߉�1������t[�1��{'�ff.���UH��SH���~��H�5g�,H��H���l��H���H��tH��H�5v���H��H��[]����U�H���SH���(�H��H�
�,H��H���O ��H�CH��[]�ff.����
����SH���#�H��H�����1�[�@AUATUH��SH��H��H��t;I�Ժ4�^
�I��1�I��4t3A��uI�����tA�E����t(�H��H���5�H��[]A\A]�DL��L����I�EH��t�H�@����t¸��ff.���闿������w������UH��SH��H�|$H�t$�t��H�5;,H��H�����H��tH���H��t1�H������u1�H��[]�f.����f���UH��SH��H�|$H�t$���H��u1�H��[]�fDH�5	.H��H�����H�xH��t�H����H�}1�H������t�����USH��H�5��-��H�����H��H�5���H��H���=�H��H��[]���ATUS@��uJH�����tAH�H�Ӊƒ���t1��u,H��H�5Z�-�%��H��I���z�H��L��[H��]A\��H�=�����ff.����UH��SH��H�5�-���H��H���,�H��H��H��[]���ff.���H��H�5�,�������t)��tM��H�=��H�{�HF�H���O
��H��1�H��t1�����H��H�������H�="���H�
�HD�H����ff.�f�UH��SH��H����H;��-u&H���-H�EH���-H�H��1�[]��H�t$H���s��u�H�$H�EH�D$H�H��1�[]�fDU��SH����-����9�t	H��[]�f�H�?p�H�މ��:��H�������0��t�t�H�=U��4��ATUSH�H��tJH�G8H��H�G8H�G8H��tlL�cH�k@@L��H���%�H�{u�H�C8H��H�C8�����uH�C[]A\�ǃ�H�{x�%�H�C[]A\���=-����H�{t��ff.��ATI��USH����H�S`H����H�-��L9�tH����H��[]A\���CpH�C`��aH�����I��$�I��$�H9�t@H�H�PhH�@hH9�u�H�Ch1�H�H��H�Ch[]A\��H�-Y��|���@H�{(�7��D��SH�5Լ,H���<��H��-H��H�2����H��uH��[�H��H�.�,H�5��H�81�����D��SH��H��t$H�w`H��t
����H��uH����H�{(�_�H��[�F��H��H�=��1��u��DUH��SH��H��(��tW��ut1�H������u_HiL$�H�4$H�)H�H���ɚ;~H��H��ʚ;H��������H9�HL�H��([]�@H�t$�>���u$H�t$H�L$�1�� �Hc�1�H�=������H�=�����f.�H��(�H�������u+f�f���H*D$�Y8�H*$H��(�X��DH�|$1����f�f���H*D$�Y�7�H*L$H��(�X��ff.�f�USH��HH�C�-H�(H9��H�(�-H��H�H9��
�D$H�|$ H�l$(�8����L$1�f.
����X���Eƒ���D$0�D$8uFH��H��t)@��u#@��uH�����t
�����tj��DH�CH��H[]�DH���H�t$ H�=�H�l$H��H�=>9H�D$H�D$H����X��H���y���H��H�[]�H�wH� �CY��H���;�H�l�,H�5m�H�81��#��H�T�,H�5��H�81����ff.���SH�5�,�����H��H���|���H���[���ATI��U��H��SH��H�5Ŷ,�����H�L$L��H��H��1��E��H�|$� �H��t����H������H��[]A\�ff.��UH��SH�_H��H���+�H�����H��H��[]�u�DSH��H(H��@H�|$H�t$(H�D$H��t5H��H�6H����;HiP�H�D$����S���H�D$0H�T$8H���-H�H��H�D$������H��H�L$H��H�y��H�|$�x�H�t$H���H���H�� H���H�D$ H��#��
tuH�D$H�|$Hǀ�Hǀ���H�\$H�{����H�CH;� tH�L$Hǁ�H�\$H���-H�� H�H��@[�f�H�D$H�|$(H���t,H�t$H�T$0���c����1Ҿ����@H�t$�f��<������H95}�-tH95l�-t	H95[�-u1��PH���,H�5/�H�81��e��D��H9���SH���H��t"fDH�PhH�@`H�@hH��H��u�HLJ�H��H���H��u2Hǃ�ǃ�HǃHǃ�[�DH�5��,����H;X`u�fDH�PhH�@`H�@hH��H��u��f��ff.�@��SH���H��t.��H92�-t�=^�,�e���H����[����H�=��-�$���z��H��tAH�~�-H�
g�-H�H�HH�PH��tH�BH���H�=��-H�N�-�9��v���H���,�"�H�=(H��T��
�f.�H�?tJSH��H�=?�-��H�;H�WH�GH�BH��tH�PH�����H�=�-[��f��ff.�@U�H�VH�JH��H�n1��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��f�SH��H����H���H�{HH�H����Hǃ�_���ff.�@��UH��SH��H�5��,�������uO���H��tCH�@H9�t@H�]�-H9tSH��H��t/���1�H��ǃ�.�H��H��[]�1�����H�^�,H�5��H�81����H���
���ff.�f���H���-H�H�x���f���H�����@��AVI�փ�@AUI���wI�A�UATA��U�����Ѝz~SHc�H����?I�H��Hc�H��H���HB�H���HC�H9�rA9�|A��E�e[]A\A]A^��I�>H��H)����H��1�I�H�<(���A�U�ff.�SH���?���u5H���}���uG�;��{��;�C��{[�:�f.�����x(�{����x/H����������H�=���0�������H�=;��0�|�����H�=X��0�i��f�USH��HdH�%(H�D$81�H��H���O������@H���j�-D�,�?��9�t#H�=$�,����H�= �,��������,���-����H���-H��OH��H�=��-H�H���v���uZ���-H���
�H�D$8dH3%(u3H��H[]É��r�H�5�H��H�q�,H�81��W������x����A�H�5:�H����H�=�1��G�����H�E�-SH�H�@0H�@H�XHH��tH�{t	[����H���H��� t>H��H����H9�}�H�@H��H�H�H��H9�t�H�DH�[��H;C}�H�[ ��@H��u����AVAUI��ATUH�պ4SH����I��H��4t\�uH�����u@�[�L��I��H������L��L��H�����[H��L��]�A\A]A^���f��M�����u��אH��L��H��[]A\A]A^�z��f.���AUI��ATUS��H��H��H�5�,���I��H��H����H��� ��1�H�x@�Ņ��������L��H�L$1�H���S��H��,H�|$H�0�O�H����H�\$�+�H����H9�}<H��H�<�H���l��H��uO��I��$Hc�H�H��% u�H;q}H�I ��1�H��[]A\A]�1���@���;����H���[]A\A]�H��,H�5*{H�81�������H���-H�H�P���f���AUI��ATA��H��UH��SH���W��H��H��-H�H�����t5L��D��H����H�5�,H�����H���t&H��H��[]A\A]�H���,H�5-�H�81��7��H���?��H�5�H��H�V�,H�81����@H��8��T9��AVAUATUH��SH����T9��JH��-H��t"H���-H;tH��[]A\A]A^�f�H��(L��(L9������u�H�� H��#��
u�L�-%�,�,H�L9��|���u�H�� H��#��
u�H���H��t�L���S��I��H����I�F`H9�tH��t
L���R��A�Fp��t�L���@�H��[]A\A]A^���H�!�,�H�=-�H�H�$�I��H��H��H�D$��T����T��H��[]A\A]A^�H�=��1��f��fDH��H��� t1���������f�H�x������ÐAWAVA��AUA��ATI��USH���t�H�����H�55�,L��H���:��I�Nj������H�����uA���H�~���H�i�HD�E����f�H��1�H�=ȃL�����I���H��uI���H��t��I��H���1�E��H�7|H�
��HD�1�H��H��H�5�����@��t\H��H��[]A\A]A^A_����H�=�H���HE�E���Z���1�1����I���H����E��u|@��u�H�����t�H�U�Ѓ����H��r�A���u���I������h���I�$�������V���%H	�H�U�E���fDD��D	�t�E�������H�
9{����I���H���c����~��I��H���Q����I�G�@E1�H�D$�BDH����I9�}�H�D$J��H��t�H�54�H��1�L�$�H��L�$�:I��I��� u�M;G�Y���I�G ��������ff.�f�UH��SH��H�\$H������E0�H���6���u�E0H��H���`��H�߉������uH��[]É�H�=���M��ff.�f���U�xH���SH�����H��,H��H��H����H��H�D$�B��H�{(�I���H�D$H��[]�ff.�f�AWAVAUATUSH��HdH�%(H�D$81�H�˾-L�(I������H�������H�I�׉ƒ�����%H����I��H�5��,I�����H��L���M����A���H���1�L������I���H������I��ǃH����H��(H��H�@Hǃ �#��H��P�'���H�C�L��`I��PwH���������L��H��H��L��H��H)�H��H�������L��H�������1�H���=������H���x�����H���H��H��H������H��A�������E����H�CH��(H�H��0H�SH��0H�H��8H��0L��H�L$8dH3%(��H��H[]A\A]A^A_����H���]���H��,H�5=�H�81�����H�=ʅ����H�=|�����H�=>��q���H�=�~�c��ǃ�D���1�H�5�~H��H���,H�81��V���H�=�~�(���3����SH���3O��H��1�[H���%���D��UH��SH��H������H�5�,H�����H�����H���H��������H�������H�H�P�� uH�P H�H�ZH� tH�ZH��u9H�@ H��H�8H��t5@��tj����H���,H��H�5�H�81��`��H��H�8H��u�H���,H��H�5��H�81��8���H��H��H��1�[]����D�3����H�@�,H�5{}H�81����H�(�,H�5�yH�81�����ff.�@SH��H�����H�{@���H�{x���H�������H�CH�C8Hǃ�[����USH��H��H�5|�,���H�߃�H��t4�
��������Lº��O‰��H��H�H�D[]�D�C���ʐ��H�1�L�F�'�H��H����H9�}9I��H�:t
H�H���Hc�� u�H;V}H�~ H��H�:u���@1��D��SH���-1�H�=#�-H��3�����H���H�������=��-H���
��H�=�-���H�5
���[��ff.�@��ATUSH�� ���H�=��-H���-tH�� []A\�DL�d$H�|$L���^����trH�k�,H�(H�-i�-��L�����5�H���uH�T$H��Hc�H�D1�H��H��H��H��H)�H9ŸHC�H��-H�� []A\�H�t$H�|$H�5��-H�=��-�{��H�� []A\�f����=Z�,�a����UH��SH��H��H�t$H�������uWH�D$H�$�H)�H=Pv&H9�H��HF�H)�H9���1�H9���!�H��[]�f�H���������H��H����DH��t#H��H����H)�H=Pw���1��ff.����9=��,�t9=��,t9=��,t1�9=��,����������SH������H������H�{x���H�{@���H�{���H���[���ff.�@���7��������������������'�����1�����D������f���UH��SH��H���H��t �H��H�_h��H��uH��H��u�H��[]�H��H�=y1��O��ff.�@��H��H�����f���UH��SH��H��H�ټ,H�8�!I��H��H��H��H��[]�
���ff.�f���H���3�������H�����fD��H��H�5�,����� ��#�H���Ѓ�
�@��H���=�-����H��tH�����H�����D1�H���f���H��������SH��H����ǃ[�������u
��D1��D��H��H�)�,Hc�H�t6H��H�H�t$�H�$H�GH���E��H�����S�H��H�=݅H��H���,H�H�$�5��H��H�D$H�CH�����H��[�f���SH���G<����H�[�-H�uH��p�b��H��pH���H�{H�H�����ff.�@���W<�Ѓ�u���W<�ff.����W<�Ѓ�t��W<�ff.���H�ճ-ATUSH�H�hH��(H��(H9�tWA��1��H�H9�t>D9cLu�H�CH��H��x���H��1�ǃ�w��H��H9�u�[]A\�D[1�]A\�f���S��f����Y�����u�[���UH��SH��H�5<�,�G����tFH��H��1�����������vH��H��[]�f�ǃ�H��H��[]�@�H��H��[]�f���SH���C��H�����tH��[�H�׻,H�5IuH�81�莻�ff.���H�e�-H�H�@�ff.�f�AWAVAUATUSH��H�|$ H�t$H�T$0H�L$(D�D$DH�D$4舄�H���W����H�D$PH���-H�H�D$HH���H�D$8H��t�uH�������*}�H�L$HH�D$8H�����H�t$PH�|$8H��H�D$H���H�D$HH�|$H�D$x���H��H��$�H�D$�T$DH��$�H�D$0H��$�H�D$(H��$�����H�=��-��H�|$x�4H�����H��4H��$������D$8H�|$x�4���H��4t'H�|$0���uH������NH;D$0�kH�D$ H�D$p�D$8���UH�=�-�9��H�|$x�H�����H��$�H��$�H�|$x���H�|$xH�L$lH�T$pH�5�����,��H��$�H�|$xH�D$0H��$�H�D$������]H�=��-���H�|$xH���-��T$l���wH�D$0H9D$x����H�t$(H�|$H�D$ ��H�D$�d��H�\$�CH�CH�D$l����H��$xH�L$H��$�H��$�H���H�|$x��������T$l����H�D$H�Ĉ[]A\A]A^A_��H��$�H��$�H�|$x��H�O�-H��$�H��$�HDŽ$�4H�0H���H��$�H�
*���H�t$H��$xH�BH�H1��H�H�HH�`H����D$lH�D$4fD1�H�t$(H�|$H�D$ ��H�D$���H���0������D$8�������������H�t$0H������H��������D$8���D$D�O���H�|$xH��蒼�f�H�H�D$X�D$X�����i���H�t$PH�|$8�)��H�D$HH���a�����Y���H������M���H�H�D$X�D$X�����5����L����T��H��H��,H�T$PH�5~wH�81��Զ�H���-H�H���H�xH�Z�H���-H�H���H�xH�@���������H�u�-H�H�@H��H�@�f���������SH��H��H�5]�,�h��H;y�-t?H���H��tH�T$H���6���uH���[��H�D$H��[�DH���H��[���SH��H��H�|$H�t$腲�H�ƸH��tH�����H��[�f.���AUATI��UH��SH��H��H�5��,������H�������I��H��ƒ���������L;%��-tYI���H��t$H��t_H��L�����H��H��[]A\A]�fDH��t�H�t$1�L�d$����H��H��[]A\A]�@I���H��H��[]A\A]��[��H��I����H�=Im�3����UH��SH��H��H���H��H��H��H��H��[]���@��H�u�-H�H�P�H��(H9�(t1���8���ff.��AWAVAUATUSH��H���H�4$dH�%(H��$�1�H�L$ H���H��(H�D$@H�L$H�\$H�|$���H�\$H�CH9���H�t$�=H�-H��(H�D$H���H�D$�C��H�D$H�4$H���H�xH��(H�t$H���H�t$�"��H�L$H�AH9� tHǁ�H�\$H�I�-H��$�HDŽ$�4H�� H���H�H��$�H��$�H�BH��$H�
�H�H1��H�H�HH�`H��(H�D$H���H���H�\$(H�D$H�L$H��$�H��H��H��H�X1��H�1�H�yH�P1�H�`�H�H�|$HH�D$H��H��1��>@��H�H��H�4$�/�Z��H��t
�x�kH�<$���H��H�D$8H���]H�$H�H��$��A��$��Af��$��*f��$�H��$�H�D$0H�t$0�1����H�D$H���H���KH�|$ 1���H�\$H���H�CH�L$H��ǁ�H�$H9���H�D$@�uH�����tH�������H��$�H�L$(H���H�D$H���H����H�t$H�FH�H�VH�QH�
H��8�����rH�D$H���H�$H��tDDH�$1�H�x����H�$H�P�������w
ǂ�H�$H�H�$H��u�H�|$��H�D$H�x��H�D$H���VH�D$H�pH���H�4$�m��H�D$H�xHLJ H������H�D$H�|$Hǀ�ǀ�HǀHǀ����H�|$����H�D$H�x�{��1�H��$�dH3%(�YH��[]A\A]A^A_�H��H�$���H��$�H�4$H��H�D$0����H�D$8Ƅ����H�<$1�����~���H�<$H�T$@��������H��H���H�@ HǃH�xH�$�z���H�L$H���H���-Hǁ���D$0���}H�t$ H��� ��H��H�N�ƒ�H�4$H�|$E1��N��H�5w�-H�L$�H���H�A���*��������������H�A0H��$�DŽ$�H��$�H��$�H�AHDŽ$�H��$�HDŽ$�HDŽ$�4HDŽ$�4DŽ$��D���H�\$H�C���fDH�x ��7��H�D$H�@ ���H�D$ H�H �P����@��H�L$(�AH�AH���+���H�L$H��H�|$@����H�QH�D$Hǀ�H���
�������RfDH�A��������j���H�A0H�|$PH�L$X�D$PH�D$`H�AH�D$pH�D$hH�D$xHDŽ$�4HDŽ$�4DŽ$��)�������H�5�,H�0���H�t$H�VH���<�����L�/�������"������H�����u	H�D$@H�D$H�P���H��H�=�mH��(H�H�\$H�D$1�蜳�H�t$H�=�m1�艳�蔻�1����ff.�f���SH��H��H������H������=��-H�����H���H�����1�[��ATUSH��H�������H��-H�H�D$H9����H���0����H��H�L$H�YH��H�kH�����H�C8H�CH�����������H�C8H����H�L�cxH����H��L���E�������u�ǃ�H����E��H�����H�����H�T$H�BH;� tH�L$Hǁ�H�t$H��-H�� H�2H��[]A\�@H�{@�����:���f�H���8�������H���˿���u���fDL���f�H��L����������u��Q���fDAWI��AVL��AUM��ATUSH��H�D$P�t$DH�D$H@A��A�� ��!��A�M9�u�A�� ��!����ЉӉՃ��������D$�'��tI�GL;��9����A������L����������D$@L�l$8L�|$0H�D$0Hc|$@H��H�|$ H��� ��H����H9��'H��H�|$ H��H�D$�������D$������H�|$���|$�H�D$H�xH�D$0H��L�(A�� ��I��H��A��H�D$(L�l$�^��H��� ��H��H�h��E1�E1�L;t$��A��H�D$H�|$(E1�Mc�L)�L�$�1�H����f�A��Ic�H9�}�H�t�L��跸�H��t�H;��-�LH;��-�.H;x�-���D$@���L�|$0L�l$8ALJ�T$�����A�����������H����H��A���HOڅ���H���-����H���������f�I�������f�H�|$ H;x�a���H�@ �5����H�D$H������a���H���DH�|$�K���H�Ҧ,H�8�E���f.�H�XH�h �|���H�XH�@ H�\$H�D$(�F����L$D������DL�|$0H�t$ L�l$8I�����H�|$4����H�|$H��H��H���WH���MA�������wALJ�H�|$���DH�a�,H�8���A���ALJ��D��L��覢��������u�A������H�Ĩ[]A\A]A^A_�H��,H�8�+���H���,H�8����H��,H�8�
���I������(���H�;�,H�8���I�G���A�������I�G0H�|$HL�|$X�D$PH�D$`H�@ H�D$pH�D$hH�D$xHDŽ$�4HDŽ$�4DŽ$�蹥�����L������H���,H�5~^H�81�败�@���G<��u���ff.�@AVAUA��ATA��U1�SH��@��H����D���H������ �1���������H�� ��H�҅�t9�0�1��������tNH�� H�Ѕ�uNE��tb���9�uXE��uk1�H�����H��H��� u�H�x������u�ǃ��C<��u��H�����E��u�D���[]A\A]A^��H�{��T����T�X��1�H���.��H�S��T����T�e���fDH�x���������ǃ��K<�������H���S�����������S<��t����ff.����H�Ś-�1�H�8�6���fD��H���-��H�8������H���-1ҾH�8���fD��H���S��H���f�AVI��AUATA��USH��0D���H�|$H�4$H�T$蔹��H�$H�T$H��������H��H)�H9��H�H�T$HT$H�D$H�T$H��?B~H9���H��H��@BH�D$H�T$I��Adž�H��� �V1���������VI�� �H��A����H��H�\$ �f.�1����������I�� H��A����H��螸��H�T$H�L$ H9���H�D$H�t$(��H)�H)�H�$H�D$yH��H@BH�$H�D$E��t{A�����uoH��L�����I��H��� �X���H�x�������X���Adž�A��A�F<���O����L�������=���H9��\���E���H��0[]A\A]A^�H�x�����������Adž�A��A�N<��u\�L���t���A�������H�D$HD$H�L$H�D$H=?B����H�D$?B����A�V<��t��N���A����B���f���H���-H��H���H�8�B���f���Hc�H��H�|?�{��H��H��H���L��ff.����H��H�Q�-H�71�H�WH�8���H���fD��ATUSH��H���gH�/L�g�d$����t�C��t(1ҾL���i������u�H���[]A\�f�����T$f/�w�\к?BH��������f/ܶf(�sN�ƶ1�H��f/�s:�H,�f���H*��\��Y b�,�Hc�H��yH��@BH��f�1�L������9����H��1�[]A\�D��H�
%�-H�9H��H��� t#1��������t#H�� H�Ѕ�u2ÐH�x������u�LJ�H�9�W<��t���G<��uǾ��ff.�@AWI��AVI��AUI��ATI��UD��SH��(H���6f.�H����H���O���I�� H��A��t<H��蔳��I�� H��A#���u�H��t�A�G<��u�1�L���x��fD�Ao��H��AM���M����=���H���[]A\A]A^A_�f�H��1�[]A\A]A^A_�ff.�@AVI��SH��H��H��H�KH�����������tDI���I��Adž�L�t$襺���H��L�t$I��I�~蹲���H��[A^�ff.����AWAVAUI��ATI��USH���=��-�m��H����H��H���H���L���H�D$H����H�{���H�CH;� tHǃ�H�� H���-H���L��(H�����L��Hǃ��v����oEL�����±�����u	�E���L��A��H�T$L��H��H��E1�I�����H��L��[]A\A]A^A_�H�=�]1����H���,�=�H�=i]H�����G���AWAVAUI��ATUD��SH��8H�Ւ-H�t$L�0A�FL����H����H�t$A��L��E1�������ћ�I�ą���H�|$A��I�~A�$I���.��I�VL;� tIdž�L�� H�X�-I���M��(L�0���L��Idž������oD$L��A���i���A���tO��u5I��H�
�� tl1����…�tmI�� H��A����A�$H��8L��[]A\A]A^A_ËT$A�����u���L��H�������f�H�z�����Adž�A��A�V<��u��L�����|���f�A�F<��t��m�����A��A������E1��4���@��AWAVAUATUSH��HH��-H�t$H��$@H�0H�|$H�D$`4H����VLH�T$`H�L$pH�
�H��$8H�BH�t$H�H1��H�H�HH�`H���H���-H�t$@E1�H�
��H�H��H�L$H��H�$����H�|$H�T$��H�D$8荙�H�$�H�D$(H�y�\$4���H�$H�AH;� tHǁ�H�$H�
�-H�� H���H��X��H�$Hǃ�H��(H��H�D$ �խ��H�$�oD$HH�|$ ������H�$�����H��$8H�|$H���H���GL����H��� ��H�x��������H�T$H�� H�$H�Ѕ���H�D$(�\$4�H�D$8H��H[]A\A]A^A_����H�D$�PH�@H���u���H��$8H�L$H���H���-�AL����H�H���H�xH���1�������P����D$@��������H�D$ǀ��H<���E���H�|$�����1���f.�H�ЋR<�������H�����������H��H�5qu,�|��P<��u�H��H����@H���ff.���AVH�5�w,USH�ĀH��-H�<$H�H�\$H�\$� ��H�D$�@t��u
�� �LH�<$�N��H���uH�D$H���-H�@`H;�9H�L$`H�t$pH�L$ H�t$0H9D$�=H�\$H�l$E1�H�5����H�L$ H�|$�D$\���H��D$<���H�$H��ǃ�H����(���H�C��T����T��T;�8��H��-H�H��H�D$(�8����H��H�L$(H��H�y�L���H�D$�l$\�@pi�@BHc�1�H�T$H�z`��H�L$H�� H�T$@H��#���
����n������L�t$1�H��A�~X���L��I�~(H�T$xH�T$0H�D$p�B����H�$H��[]A^�H�=x�-����H�D$�D$\dH�^�-����H��H�T$1�H�P`H�D$�hpH���J���L�t$(I�~蜼��I�FL9� tIdž�H�L$(H�ȋ-H�� H�D$H;��-H�
�L�t$I��(H��舩��foD$`H��A���ҩ��H�D$I�~Idž�H�@`H��t	���7H�T$���u
�L$<�����T����TH9D$����tGH�D$H��H��� tz1���������H�T$H�� H�D$HH�Ѕ���H�D$H�@`�9���H�t$H�~(蓪��1������������H�ݲ-���H�x�����H�̓,H�5]UH�81�胓�H���,H�54MH�81��k��H�<$H�5t,�{��H�T$H���H��tH�PhH�T$H������� ��H�D$H�xH�D$H�@`����z<� ���H�|$��P�����H�D$ǀ��x<t����f���AUI��ATA��H��USH��H���-H�5�p,H�(�ë�H��tNH��L��D��H�����H9�tH���[]A\A]�H�� H�Ѕ�tۋC<��u�1�H������H�|�,H�5KH�81��3����AWAVAUATUSH��H��-H�t$ H�D$H�H�D$�y����0H�|$ H�
��H��H���1�H�5+���H��H�D$ �.��H�D$H�t$ H������H�D$H��H��� � H�x������� H�\$H�T$0H��$H�D$04H���H�t$@H�5H��$H�BH�p1��H�H�HH�`H���H�\$H�D$�葳�H�D$�D$,H��$H�t$H���H�D$H���ߥ�H�D$H��H��� ��1����������H�L$H�� H�D$ H�Ѕ����L$,����H�D$H��[]A\A]A^A_Ð1�����������H�D$ǀ��������H�D$�xH�@H�|$,����������@H�x�������Q���H�D$ǀ��5���f�H�D$�P<���<���1�H�����-���H�
�,H�5�IH�81�詏�H���-�T$,H�H���H�xH�+���ff.���H�e�-S1�H��*�H�� H�Ѕ�u[�fD�C<��u�H��1�[��ff.���SH���S�����H��[�f���H������H���f���AWAVAUATUSH��H�ą-H�H�D$ H�D$ H�@H�D$(H�T$(H�D$ H9���H�|$ ����H�D$ H�D$H�D$(H��(H(H�D$H�$H9�tMH�$H9L$t-H�$�H�����H�$1�ǀH���(���H�$H�H�$H;D$u�����tH��[]A\A]A^A_�H�t$ H�T$0H��$H�D$04H���H�L$@H�
�H�t$H��$H�BH�H1��H�H�HH�`H���H�|$ 1��s���H�D$ H��H��� tx1����������H�T$ H�D$ H�� H�Ѕ�uuH��$H�T$H����!�����H�T$�BH�BH��t�H��$H�T$H����z���H�x�����H�T$ H�D$(H�=�NH��1��˓�H�|$ �<u���&��q���H�D$ ǀH�D$ �H�|$ �<t��E���D��H���s���u�*��H���H���,H�5�NH�81��h�����SH�������H��H�C1���H�[�@��ATI��UH��S��X~���?Iں���Hc�H��H���HB�H��衭�H��[I�D$H�uH��]A\���f���SH��H�H��t�Z���H�C[�f.���H�OH��t#�H�ύP~��?I�1���Hc�H���D��@�ff.�@��UH�VH��S��H���x����ۍC?��I��H�u�������?H�)ѺH��H	�H��[]�@��9>~/���G?��H�vI���������?H�)�H�����H��H!�����1�9>~3���G?��H�vI���������?H�)ѺH��H�������f�����ATI��U��?H��S�Z~Iظ��H���Hc�H��H���HB�H��迡�H��H��[I�D$]H��A\�H�����ATI��UH��S��X~�H���?Iں���Hc�H��H���HB�H���]��H��[H�EI�t$H��]A\���D��AVM��AUA��ATI��UH��SH��H��tH�V���Զ��H�[H��tH�UH��A�}�軶��H�mM��tI�T$L��A�}�衶��M�d$M��L��H��H��D��[]A\A]A^�p����AWH��I��AVM��AUATI��UH��SH��H	Љ|$�gH�����D$I�WL���x��3���H��-f���l$ H�M��tC����f��f���Ao6�I*N�Y
2��I*)�$�L��$��X��X��L$ M��t
H�|$PL���e���H��t
H�|$`H���S���M��t
H�|$pL���A���茈�L�t$H�D$H��$�H�D$@H�D$PH�D$H��fD1����������H�� H�Ѕ���H�D$D�(�D$���A��t
A��U��M��t
H�t$HL�����H��t
H�t$(H�����M��t
H�t$0L�����H�|$to�Ь���\$ f�ɹ�\��H,�f(��H*�H��HH�H��$���\��YJ�,�H�H��HH�H��$�H�D$`H�D$(H�D$pH�D$0H�/~-H�t$@E1�H��H�����L�0L���b�L�D$L��H��|$L���{��I�~�D$A��H�D$A��D#(菮��I�FL;� tIdž�L�� H�
�}-I���L�1���I��(Idž�H��H�D$8�{���H�D$8�o�$�H��A��轛��A���u��$�A���H��H��� ����H�x����������ǃ��K<�������H���e��H�D$D�(�D$��������M��t
H�|$P�ѵ�H��t
H�|$`�µ�M��t
H�|$p賵�D$H�ĸ[]A\A]A^A_�DH��t�D$H�V�x��Ӳ��H��t�D$H�UH��x�軲��M�������g���D�S<���K����Q����M��tI�8I�p����D$�o���f������D$�[���ff.���AWAVAUI��ATA��U��SH��hH��{-H�H����H�H�D$0HiB�H�D$8���f��f��H��{-�I*M�Y
$��I*UL�8L�l$0�X��X��L$H�D$@D�d$(H�D$H�D$(f�l$,H�D$f�1�H�t$E1�L��f�L$.H�׮��H��1���H�|$1�L���9��A�ą�y�]��(I��ҫ��I�GL9� tILJ�L�� H�5�z-I���M��(L�>�6���L��ILJ��Ø���o\$HL��A���
���A���u�D$@A���H��H��� ��1����������H�� H�Ѕ��DE����莃�(��t	��U�M�����p����d$f�ɹ�\��H,�f(��H*�H��HH�H�
z-H�T$0�L�9�\��Y�y�H,�H��HH�H�D$8�r���f�H�x�������K���ǃ��S<���D����H�����E���7���f.��T$.�� ��1����������f��E�������E�H��h[]A\A]A^A_�H�Iy-L�8����������H��h[]A\A]A^A_�@�C<���m�������f��I���l$�n����)���	������ff.��H�����D�x1�跆��xH���H�ǁ,H�5�;H�81�趁�1����ff.�@����D��H��1�����H������SH���|����[�DH�߾[�:���f.���AWH�5-;1�AVAUI���ATUSH��踥��,���H�-�,I��L�%��-f�H�=8�-t@L��辕��H�'�-H��t$f�H�H��tH�����'��H�[H��u�L�����H��w-H�L���L���m���H�� H��t�L��豕��H������E�H�=��-f�T$�$�f�D$�5�,�D$I�E0tS�d�L���a���t[�6����w�H��R@uU���,������H��1�[]A\A]A^A_ÐH��u�������L���	�����}踜���=��,譜��뫉�H�=�9�
��ff.�f����N�-��u�~�,���u�,���H���=W�,�^���H�=�-1��`���u�
�-H��É�H�l,H�5�AH�81��#����ff.�����,�Ğ-��t���k���ff.���H��H�5�_,�L���H�H��H�Ѓ��ff.���H�=-�-�@�����USH��H��H��uE許�1�葤�H�2|,H�پH�=���H���S��1��l��H��H)�[]H�D�DH����~�H��H�T$H�$�O��1��8��H��{,H��H��H�=���H�����f.���S1�H��H�_�H��H�L$葉�H�t$H���d��H��[�ff.���ATI��UH��SH���z��H��H�H|,[L��H��]A\道���SH������tH�5�z,H�ߺ4[�J{�H��},H�5/3H�81��R}�f���S��H�5�],�]��Xt[����S1�H���-轴��H��H�c],H���k��H�x H���Ϧ�H��[�f.���ATH�53],USH����H����H�5y],H��H���ޕ�H��s-H�2H9p`t~H�����B=��I������H��H��L!�H	�H��I��H����tI��L!�H��H	�H�{ H��t[]A\�fDH���`��H���u[1�]A\Ð[�]A\�H��{,H�5M6H�81��|�H��{,H�56H�81��{�fD��SH�54\,H����H�����H�[����H�H�Ѓ����SH�5\,H���̔�H�C H��輮�H�[����H�H�Ѓ�����H��E1�1�����ff.�@��ATI��UH��SH��H��觢�L��H��H��E1�[H��]A\�Ͽ��ff.�@��H��A�1�鬿��ff.����ATI��UH��SH��H���G��L��H��H��A�[H��]A\�l���ff.����AU�H�=�4ATUSH��H��q-H�(�g��H����	H�=�4H�T�-�G��H���ߵ�H�=�4H�D�-�'��H��迵�H�=�2H��-���H��w,�����H�d���H�5�H��-H�;螪�H�;�����H�����H�5��胪�H�;�����H�����H�5qg�h��H�;1�H�\��H�5_�P��H�;1�H���H�54�8��H�;1�H��y,H�54� ��H�;�H�����H�5?g���H�;1�H�i���H�5sA���H�;1�H�A�H�5�3�թ�H�;1�H�I���H�5aw轩�H�;1�H�A���H�5�3襩�H�;�H�V���H�5�3芩�H�;�H���H�5�3�o��H�;�����H��H�5|3�T��H�;�����H�����H�5a3詨�H�;�����H�z���H�5�莨�H�;�����H���H�5���s��H�;�����H�����H�5"~�X��H�;1�H�L���H�5���@��L�%!w,H�;1�H�5�eL���%��H�;1�L��H�5�2���H�;1�L��H�5@��H�;1�H��x,H�5m3���H�;1�H�v,H�5�2�ͧ�H�;�H����H�5<貧�H�;�H����H�5藧�H�;�H�����H�5"��|��H�;1�H����H�5���d��H�;1�H����H�5�e�L��H�;�H�����H�5
2�1��H�;1�H����H�5�����H�;�H�����H�5�1��H�;�H�/���H�5�1���H�;1�H�ז��H�5�1�˦�H�;�H�L���H�5�1谦�H�;1�H�$���H�5�1蘦�H�;1�H�̐��H�5�1耦�H�;1�H�����H�5�0�h��H�;�H�9���H�5�0�M��H�;1�H��H�5r1�5��H�;1�H�I���H�5����H�;�����H����H�5`����H�;�����H��H�5-����H�;1�H���H�5+}�ϥ�H��u,�H��0H�0�T���L�%�n,H�=�0I�4$载�H�5v���H��H���+��1�H����H��H�5�s�s��1�H�����H��H�5�0�[��1�H�����H��H�5�0�C��H�w���H��H�5�0�(��L�mH���|��H�5�0H��I��@H��H����,��I�4$H�=l0���H�5����H��H�c�-�v��H�=W�-1�H�����H�5�{躤�H�n,1�H�=2�-H�5$0螤�H�r,1�H�=�-H�50肤�H�3r,1�H�=��-H�5��f��H�s,1�H�=ި-H�5_,�J��H�=˨-�����H�7���H�5�a�+��H�=��-1�H�����H�5�/���H�=��-1�H����H�5�����H�=�/貹�H�=�/H��-H��r,H�0���H��s,H�}H����H�}�I���H�EH���蹆��H��(譆��H��P豪��1���t�1�DžH����t�HDž H����-���H��[]A\A]��H��[]A\A]顡�����H���=��-�]��H����H�����ff.�@��H��i-H�H�� �f.�H��i-AVI��AUATUSH�(L�mI��L��M��(�Ѯ��L���9���I��(L9�tDH��H��A��H�L9�u�M��0M��(L�eI��0L�eH�(I��0IDž8ADžT���H�����u
[]A\A]A^�@H���.�[1�]H�5��A\H��A]A^�o��ff.�@��H��H�=��������H��h-H�Hǀ�H����ff.���H�=%���������H�}h-��H�H�� H�=���酴�D��H�Mh-H�=����H�Hǀ �k��ff.���AUI��ATI��USH����H���-H��H�h-H��H�H�Aj,H�0�Q��H��H���2��H��L��L��H�Nl,H��[]A\A]鿆�ff.�@��AVUSH��H��g-�|$L�0�t$I��L�4$����H��L�4$I��I�~I��(�Ѕ��H���H����t$�|$蛕�H��I��P���
���H��肅��I�~�ٗ��I�VL9� tIdž�H�$H�g-H�� H���x	H��[]A^�1������1�H��t+H��tH�G(HG H��H�0tH�W@H���f���H��tWS�?H����tH��H��t�ز�H�H�{�tH�S(HS H��H�{0tH�K@H��H�[�f�1��ff.�f���H��P,1�鎭�ff.�AWH��AVH USH��(H�|$H��H�t$H�D$��������-�����P�Hc�H��H��H��-H�H�L$H��H9H��H����-H�H�-{�-H�@L�t$L�|$1�1�H�|$H�5�I��0M��@I���L�M���Idž(�’�L��I��@H)�I��PH��([]A^A_��Kn�H�t$E1�1��A������"H�ź�}�H��H���t?H�-ˎ-1�H��H���֥���C���H�=Ǎ-H�5h21���m�H�=j01��t�}�s��H�=��-H�5}0H��1��m�ff.�UH�xd-H��AVSH��H�8�I�����rH��@H���H����H�PpH�@hI�V(I�F H�C I�~ H�sH���?��H�S(H�CpI�N H)�H��H�<�H�K H�CH�4����H�CxH�{8I�F0���A�F8���A�F<���A�FH���A���H���I���H���I���H��HI��H��(I���H���I���H���I���H��I���H��tH�C@H�s0H���d��H��8H�JH��81��H�H+Bt2H��H��H=�v���H��H-�H=�w��H��H�b��H�b��H�ChH�G H�CpH�G(H��H���H��H���H��H���H������H��H���_����J���f���H����SH��H�hH��t
�!��H�ChH�*d,H�8�ʕ���tTH�Mb-H�H;��tH���H��t��tYH����ԝ�H�{H��t
�ƀ�H�CH��[鵀�DH��褀�H�{0H��t�薀�H�C0�@�H�=�/1��q�f���H��t'S�?H��tH��H��t���H��[����@�ff.�@��H����SH��H�覓�H�{H識��H�{X蔓�H�{H��tH�C(HC H�4��
��H�{0H��t(���t/H�{XH�5@H,�K��H;��t	��t	[��H�{0H�C@[H�4�龌�fD����H��t'SH��H��H��t	H�x��H��[�5���D�ff.�@USH��H��`-H� H��TH����^H�������H�S H�hH�PhH�S(�H�PpH�S0H�Px�S8����S<����SH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��H���H��8Hǀ@H�SHǀHH�PXH��H��PH���HǀH��@HǀHǀHǀǀH�E H��[]�H��g,H�5�,H�81��)h�H�Zh,H�5�,H�81��h�ATI��UH��S�Q����H��H��^-H�CH�H�ChH�@H��hH��H�{p�W��H�SpH�ChH��H�J�H�KxH�HH�B�H�J�H�B�H�H�B�H�B�H�B�H�B�H�B�H�B�H�B�Hǃ��Ѝ�L��(H��H��HǃHǃ[]A\�@��SH����g�H��[H������H��H�=�-H�^H,1��G��H���/����ǀH���f.�UH��H��H�W8dH�%(H�E�1�H��t`H�E�H9�sWH)�H��H��H��H%�H)�H���H��H9�tH��H��$����t	H)�H�L�H�D$H���H�fD���ff.���AWAVAUATUSH��HH�]-�|$H��H�t$H�5�G,L� ��H��I�D$H9EXuWI��$�H9��tH��e,H�5�(H�81���e�H��@H��t:I;�$�t0H�Xe,H�5)H�81��e�H�@e,H�5�(H�81��e�H��M��$�H�D$M����L��E1�@H�I��H��u�H�D$H�8��L��H�D$E1�f�H��I��H�8u�H����L��L��I��H)�Hk�HD$@M9�rL��H�L)�H9J�eH�H��I��u�M����H�D$E1�H�l$L�d$ M��L�XH�D$8H�\$(H��L��f�H��[-H�H���H��tH�3H���c��tH�|$8�BI��H��M9�r�M��H�l$L�d$ H�\$(M���I�}1�H��A�UM�mI9�r�Ik�H�D$L�t$8H�X�L�l��E�H��Z-H�H���H��t#I�uL���b��tH�T$8H��4tI�}1���I��I9�u��D$�E��t(��u*H�D$H�H�EH��8H��I��$��������Hc|$H�t$�5����I��H��������<���H�D$1�L�8M���%����)���M��� ���L��E1��-���E1�M���h�������M�����H��b,H�5�&H�81��c�DAWAVAUATUSH��XH��Y-H�|$(H�H���H�$��H�<$���H�т-H�D$H��Y-H�H���H�D$�p��� ��H�|$H�dD,H��H�D$ ���H�L$ H�|$H�D$HH�D$HH�AH�G H�AhH�G(H�ApH�G0H�Ax�G8����G<����GH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��H���H�L$0H��8H�GHǁ@H�AXH��HǁHH��PH���HǁH�<$H��@H�D$0HǁH�W0HǁH�@H�O H�D$8H�BH�t$0H)�H��H�F H�G(H�t$0H��H)�H��H�F(H�D$0�H�T$0H�L$0H�z(Hx H�L$脈�H�L$H�AH�D$0H�T$0H�zH�P H�$H��H�p �؃�H�D$0H�T$0H�L$0H�RH�I H�<�H�P(H�$H�p0H��訃�H�D$0H�L$0H�@hH�L$H��H�<$H���H��H9��pH�|$H)�H��H�G@H�D$H�D$H�W8H�x0H���kH�t$��Im�H��H�D$H�T$H�x0H�D$H��H�p8���H�$H���H����1��fD��H��JH��u��Hc�H�T$0�H�T$�Q��H�T$H�D$H��H�$H���H�$H��u@���H�4$H�D$H�\$�oFC�H�F)$H�C�H�H�$H����H�$H�xu�1��`�H�$H�B���H�D$0H�@H�D$@H�D$0�x���H�D$0H�@H�D$(�H�D$@H��X[]A\A]A^A_�H)�H�A8H�D$H��H�x0H�T$H�Q@H�������H�|$��N�����f�H�D$H�T$0H�|$PH�H��8H��8H�E���H�P1��H�H�PH�`H�D$(�H�D$8H��X[]A\A]A^A_ÿ�t���H�|$@�?��H�p^,H�5#H�81��'^�H�X^,H�5�"H�81��^�ff.�@��H��H�|$����H�D$�D$��tH�D$H����H�|$�F��H��Ð��H��H�5!?,��v�H��t����HD�H���H�=v}-H�5o"�z]�f.�AVL�5WT-AUATI��USM�.H����L��tI�EH��p��I�.����H�ChH�E H�CpH�E(H��H���H��H���H��H���H���H�CxH��HH�E0����E8����E<����EH������H���H���H���H���H��HH��H��(H���H���H���H���H���H��H���H��PI��t	L9��*A��$t"H��I���I��I�T$0H)�H��I�D$@I���H��0I��$@H��@I���IDŽ$H��H�� I��$ ��m���[]A\A]A^��H��@H���H��tuH�PpH�xhH�U(H�} H�C H�sH���~�H�S(H�CpH�M H)�H��H�<�H�K H�CH�4��`~��]���I9��c���H�=<1��
b�DH��H���{���H�} �H�=�1���a�@��UH�=$H��0H��Q-H�T$PH��$0H�D$P4H�0H���H�t$H�D$H���H�L$`H��$(H�BH�x1��H�H�HH�`H�FHH�D$H���H�|$H��(H�GH�J �WH�D$H�T$(��H�L$ ~H� ��H��H�D$0�
H�D$HH�D$0H�D$H�|$ H�@H�D$H�Hǀ����H�T$H�L$E1�H�t$ H���H��Hǂ��T$(H��ǁH�L$0����H�L$H�T$H�AH��$(H���H�T$H�
�y-H�BH�B0ǂH�D$0H���Hǂ0H�H���Hǂ�H��H�B@H�by-H�3P-H�H���H�D$ �CH�D$ H�P-H���H�H��H�T$ H�L$(H����HǀH�D$ H�T$(H;����H�T$ H�D$(H�RH9PX�rH�T$ H�D$(H���H9���iH�D$(����H�D$8H�L$8H�T$ H�|$0H��8H���H�yH���AH���H�L$0H����H�R H�QhH�W(H�QpH���H��H�W0H�Qx�W8����W<����WH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��8H��Hǁ@HǁHH�t$0H�|$(����H�|w-H�8H��tH�.x-��	�/H�D$0H;x0�(H�Ww-H�4��҉�H�7w-H�4w-H�D$ H����x���H�L$ H�� H�D$(H�Ѕ���H�=�1��]����H�D$�8����6���H��$(H�L$H����G�H����u*H�|$�*���H�D$�����H�@ H�D$0�5����e��H��t�H�|$H������H��H�T$(H9��I���H�=$v-H�511��&V�Hc�H�
Lv-��H����v-H�H�
v-H�:H�J����1�H���?����������H�|$ H���H�����H�=�u-�H�5腅�H�|$ H�������H�|$ H���A����H��H�AH�L$8��������n�H�|$ H�D$0H���H������H�=:u-H�51��<U�H�=%u-H�5v1��'U�H�x���H�=�1���[�H��������AVAUI��H�5^6,ATU��H��SH���m�H���5ǀI��H��K-H�L;���OH�CI9D$X�H���I9�$��A��$�<M��I��8H����A�n��t����Hc�L����H���I�FH���~H�C H�EhH�C(H�EpH���H��H�C0H�Ex�C8����C<����CH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��H���H��8HDž@HDžHL��H�����H�=as-H��tC�t-��	��H;}0��H�Ds-H�4�迅�H�$s-H�!s-H����z�H�B�NH�� H�҅���H��[]A\A]A^ÐI�EH���I�FH���������H��H���H���:���DHcЃ�H��H��r-�Rs-H��H�H�
�r-H�:H�J�I�����������I�E�h���fDH�=)r-H�5����H�����urL��A�F����L��I�F�������1�H��H�D$�1���H�D$����H��Hc�L��[]A\A]A^�i��f������H��螊�H�=�q-H�5�1��Q�H�=rq-H�5�1��tQ�H�=]q-H�5�1��_Q�H�=�1��1X���H��tH��nz�fD����H��H�5�2,�Y��H�H��H�Ѓ��ff.���UH��H��SH��H��G-H�H���H��tH��H��[]�b�@H�t$�>w�H�T$H��H�����ff.�f���S覕�H�=�p-1�H��1,H���ގ�H��[H���b�f���H�UG-SH�H���H��t
H�@[���C�H���H��H�@[�ff.�@����t����AVAUI��ATU��H�5i1,SH���i�H���(I��H��F-H�L;���LH�CI9D$X�H���I9�$��A��$�9M��I��8H����A�n��t����Hc�L�����H���I�FH����H�C H�EhH�C(H�EpH���H��H�C0H�Ex�C8����C<����CH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��H���H��8HDž@HDžHL��H����H�=~n-H��tC�3o-��	��H;}0��H�an-H�4��܀�H�An-H�>n-H����z�H�B�KH�� H�҅���H��[]A\A]A^�fDI�EH���I�FH���}������H��H���H���5���DHcЃ�H��H��m-�jn-H��H�H�
�m-H�:H�J�D����������I�E�k���fDH�=Im-H�5���}�H�����urL��A�F����L��I�F������1�H��H�D$�Q���H�D$����H��Hc�L��[]A\A]A^鉔�f������H��辅�H�=�l-H�5�1��L�H�=�l-H�5�1��L�H�=}l-H�5�1��L�H�=�1��QS���AWAVAUI��ATU��H�5�-,SH���me�H����H��I���e�8�\������L�5C-I�H���I9��RH�KI9L$X�lH���I9�$��lA��$�?M��I��H����I��$�A�o��t����Hc�L���G��H���I�GH����H�C H�EhH�C(H�EpH���H��H�C0H�Ex�C8����C<����CH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��H���H��8HDž@HDžHL��H���5�H�=�j-H��tC�ck-��	��H;}0�#H��j-H�4��}�H�qj-H�nj-H����z�H�B��H�� H�҅��H��[]A\A]A^A_�@I�EH���I�GH���}�����H��H���H���5���DHcЃ�H��H�j-��j-H��H�H�
�i-H�:H�J�D�����������I�E�k���fDH�=yi-H�5���Hy�H�������L��I�GL��A�G�������M�6I���H���v����1�I���I���^���fD1�H��H�D$�Y���H�D$�����H��Hc�L��[]A\A]A^A_鏐������H�=�h-H�5C1��H�H��豁�H�=�h-H�5�
1��H�H�=�h-H�5
1��H�H�=ph-H�5�
1��rH�H�=[h-H�5�1��]H�H�=�
1��/O�ff.�@����H��H���齈�ff.�f���AVI��AUATU��SH��L�%�>-I�$H���H����L��M���pHǀL9����H�CI9D$X�KH���I9�$��KA��$��M��I��8H����A�m��t����Hc�L�����H���I�EH����H�C H�EhH�C(H�EpH���H��H�C0H�Ex�C8����C<����CH���������H���H���H���H���H��H��HH���H��(H���H���H���H���H���H��H���H��8HDž@HDžHL��H����H�=zf-H��tC�/g-��	��H;}0�H�]f-H�4���x�H�=f-H�:f-H����z�H�B��H�� H�҅��7H��[]A\A]A^�f.�I�H���I�EH���z�������H��H���H���2���fDHcЃ�H��H��e-�bf-H��H�H�
�e-H�:H�J�@����L��I9������H�=Ie-H�5V
1��KE���������I��8�����#��H���H��I�$����@H�=�d-H�5R
��t�H�����ujL��A�E����L��I�E�U��.���1�H��H�D$����H�D$����H��Hc�L��[]A\A]A^�9��f������H���n}�H�=Wd-H�5�	1��YD�H�=Bd-H�5�1��DD�H�=�	1��K�fD���g����H��H�5!",�,]�H��H��tH;��tH��H���H���@��SH��:-�H���}�H��d-H��H��H��<,H�=9	H�0��H�5Y��H��H��c-�*��H��B,H�=	H�0蔋�H�=ec-�����H�1���H�5��H�Cc-��s�H�=?c-1�H���H�5sJ�2s�H�=#c-[�����H����H�5��s�f���H��H�9<,H�=�H�0���H��H��b-�z�H��b-�������ƒ�����H����<��H�xH�5�^��H�=�b-�����H�Y��H�5���}r�H�=vb-�����H�:��H�5���^r�1�H�5U�H�=�H���m�DH�����u�H��t2H���}���H�BA,H�8�r���f.�H�y@,H�8�Y����H�i<,H�8�I����H�9;,H�8�9����H��?,H�8�)����H��B,H�8�������H��H�=�a-�����H���H�5T�q�H�2:,1�H�=�a-H�5���}q�H�=na-1�H�M�H�5�H����q�f.���������f�������w=�wH�����B�������w��H�7#,H�<����G�@������f������Hc�H�
#,H��H�1�ø�����f.����H���k�ff.���AVAUATUSH��@dH�%(H�D$81�H9��I��H��I��1�I� ��N����H�
@>,���U��,��,��Hc�A�FA9FtL��L��H���@o�H�H�I9���L��L��H��A�V �P�?w�I��r��H�
)�D$�A��D$�A��D$�A��D$�A��D$�A��<$��A�y�Ł��CL�-�)Hc�IcD���x0H�ѰH�@8;u!H�sH�|$��@��uB�<#��@�!���H�L$8dH3%(��H��@[]A\A]A^�f�HcōU�A�����+wƃ�wiH�5���Hc�H�>��H�
/(����H�
#(����H�
(����H�
(����H�
�'����A�D����j����`�����D$H�
�'�A�����M�@��AWH��I��AVAUATM��UH��SH��L�*H��H�L$L��U �]A��9]tH�L$H��L��H���cm��Hc�IA�F�=~��D��D��H��������A��H��J�B�D����J�=U��H�H�WH�Bf��xuH��H�5�{H��H��D;1u]�Q��t}1ۅ�~9H���B�1�H�H�X{L�,�L�4�A�}H��L��I���U0Hc��I�M9�u�H����[]A\A]A^A_�D�K�1���
��DH��A�TA�H�PH9�u���H�E0�yH��H��[L��]A\A]A^A_����AW�L�=>(AVAUATUH��SH��H��HH�T$<�|$,H�T$I�w�D$H�t$ ����L�|$L�t$Lcl$H��L�|$A�O�$�A�|$L���D$<�Ӆ�u{A�D$H��L��A�>�D$<�Ӆ�u^�D$��~kH�D$H�t$ N�l�L�x�D$��L�4�� H��L��A�?�Ӆ�uI��M9�t+A�|$H��L���Ӆ�t�H��H[]A\A]A^A_�fDH�T$�D$�D$9B�)���I��I��H�syI9���L�t$�D$<iH���IL���Ӆ�u�H��L���i�D$<I�Ӆ��x����D$,@�gH�"H�l$A�H�D$E1�E��~eH�l$H�L$�F�t�H��D����A�Dž��2H��DE9�tH�L$�H��D���Ӆ������A��H��E9�u�I��E9��H�D$H�D$H�&H9���H�l$��0H�5�%H��Ӆ������H��H�l$A�H�D$E1�E��~cH�l$H�L$�F�t�H��D����A�Dž�utH���E9�tH�L$�H��D���Ӆ��<���A��H��E9�u�I��E9��H�D$H�D$H�� H9�tD�h�u���H��H1�[]A\A]A^A_�D�����D�h���A�G����ff.�f���AWI��H��AVI��L��AUATM��US��H��H��hH�L$A�V A�nA��A9ntH�t$L��L����h�ʼn�A�E���@=~��D��D��H�
N������A��H��4q�A�D����q�=U��H�H�
�H�Af���xH��H�5�vH��H��D;)�\�Y�������`H�<�H��H�D>H�D$�D$$���zL�T$0H�L�L$$1�L��L�L��#D�|�A�G�D�>=~�	D��D��������BA�PH�A�@�D��������Hc�A�P�=z��H�H�<H�Bf����H��H��I��D;:���R��~$H��M�<�1��E�t�D�t�H��9���A��H��H��9��=����D$$�������m��D�D$(L��1�M�L�E��~5D�B�4L��HcËJ��H��H��I���(�@D�X�H9�u׉�H��L9�u�H�|$�G�P������O�Q�������H�5[����<�����T�ǃ��<>�����4>�QkHc�H�5��H�Vf��xWH�<���H��H�<�;uA;Ou<Hc�H���t���~-1��L�D9�tHcӃ�H��I���*�B�JH��9��H��h��[]A\A]A^A_�A�E�1�=~��D��D��H�5�������B�NH��F�D�������Hc��N�=zeH�H�
8H�Af��xRH��H�5�!H��H��D;(u:�X����H��L��H�<�1�fD�(H���@��t�H���p�9����3���Hc�I�H�D$L9�����L��H��L��A�V ���@�=~wg�ȉ�H��������A��H��4r�B����r�=U2H�H�	H�Bf��xH��H�4sH��;u�xu�HA�FA9F��A�U�Ł����Q�����D��H�5'����<D�����T�σ��<>�����4>�Q��Hc�H�5i�H�Vf��xnH��H�5tH��H��D;*uV;JuQH��H�<��W��~BHc�D�G��H�4�I�4��.�FD�F��tHc�H�4�I�4��.�F�~�\�H��L$I�H�D$L9������L��H��L��A�V �L$A���@�=~wlD��D��H�
������A��H��4r�B�D����r�=U4H�H�{H�Bf��x!H��H��qH��D;u
�xuD�@A�FA9Ft"H�t$L��L��D�D$�L$��b�D�D$�L$A�U���c�����Q���c����A�P���c�����D��H�5�����<D�����T�σ��<>�����<>�D�ǃ��<>�D����4>�.�^���Hc�H�5��H�Vf���F�����H�5=H�RH��D;*�+���;J�"���D;B����Hc�H�IH�<֋W�������HcË��H��I���(�@�x��t$Hc�Hk�Hk�IċDA�,$A�D$A�D$�\����f��IA�,$A�D$�A�A�L$=~����A��H�=����A����BH��4GB�GƉ������H��G�=zmH�H�5�H�Ff��xZH��H�=2H�4�H�4�;uCD�FE��~:I��1��A�t�D9�tHc���H�<�I�<��/�G�wH��A9��A�����1������H�t$L��L���L$�`�A�U��L$Ł��&����������L�\$0D�|$(��1�I�SD�L$,D�l$M��H�<�A�G�L�4�I��f�M��E��~SE��~EL�D$A�:A�L��A�pHc�D�B ��H��H��I���(�@�x�pD�@9�u�L�D$I��M9�u�I��M9�u�D�l$H�|$�G�P���c�����O�Q���c����D�GA�P���c�����D��H�5�����<D�����T�σ��<>�����<>��ǃ��<>�����4>�.�e���Hc�H�5��H�Vf���M���H�<R��H�@H�<�;�3���;O�*���D;G� ���Hc�H�@�t����
���1�@�L�D9�tHcӃ�H��I���*�B�JH��9�������A���|���1����1����1����f.�@���H�R�H�
��xiL�GL9��|D�GH��H�J���xWL�GL9���D�GH��H�J���xUL�GL9�t|H���OH�1��<
����D�����������D��f���������D@��f�H�����������������������H�����������H�y����������1�H9�s1��?
���ff.����I�����������~������҃����f��H�w�)�����I�L��!��H���F�����?	�H9�u��������H����X�ff.�����L��I��H��H����ws����H�M�����xH��+,���H���I��H��H��L���?�ff.�f�����ǀ���tL������t?�����t2����t%����t���y���%�-��f����ǀ���t>�����tD���������tX������������t	����!@�>��D��H�F�������?H���π@�x�)��f�������������?����ʀ���V��?�Ȁ�FH�F�@������?�����π����?��ʀH�F�V@�8H��)��@������������?����ʀ���V��?�Ȁ�F������?�Ȁ�FH�F�I���������������?����ʀ���V��?�Ȁ�F������?�Ȁ�F������?�Ȁ�FH�F����o����ff.�@��H��H9�v(�����t��H9�sH�������t��f.����1�f�1��@���D���
t@1�A��t ��
tHc��1H���@��@�
��O���
u���f��W�G����E��DˆG��
��ff.�f���1��?u�
��O��D��H��H�=�,�J�H�=,�J�H�=Y,H����I�������AWAVAUATUSH��H�H�$H���kH�'',H�(L�eM���o1�����ALc�J�|�u�Hc�I��A���H���G�I��H��&,L�8M���9E���<I�uA�F�L�,$L�4�H�t$H��1��@H�xI9�tI9�tL�+H��H��u�L���>7�L�I9�u�I��L+,$M����L��E1��fDA��Ic�H�\�H��tH�xH9�u�H���6�H��ِH�$H�L$L�-J-E1�H)�H�
J-H�J-1�H�J-��H�5&,L�>L��A��I���O�Ic�I�L�d�H��M��u�H�
�%,HI��I�H��[]A\A]A^A_�@������fDH��%,H�(��I�U1�H�T$���H�D$L�-`I-L�-aI-H�JI-H�$H�WI-�ff.�f���SH���H��$8H��$@H��$HL��$PL��$X��t@)�$`)�$p)�$�)�$�)�$�)�$�)�$�)�$�dH�%(H��$(1�H��H-H��u)H��$(dH3%(��H���[�f�H��$��D$H�\$ H�D$H��$0�D$0H�D$H��tH��H�L$�H���W3�H�0H-H�=1H-H���U�H�
H-H9�HB
H-H9�vH�H-H�H�D�H��H9�u�H��G-H��0�����5�@��SH�����?��H�H����8tSH��H9�u�H��H)�H)�tMD�H��E��t'H��tD�H��H��H��D�E��u�H)�H�H���[�@H��H��H)�H)�u�H���4�H�H��[�1���H��1��f.�D��H��H��tTH��tAH���f�I��I��I�I�t"H��D�@�H��D�A�E��u�H)�H���@H���f.�H���x�t�H���x�u���f.���H���@�|$H�t$��-�H���f.���H���H�5|F-H�=���`-�H�iF-�H�����AWAVAUATUSH��H��$�H��$�H��$�L��$�L��$�dH�%(H��$�1�H��$0�D$XH�D$`H��$�H�D$hH���5�I��H�L$p�D$1�H�L$A��L�,$H�,$A)����������H��E�,/H�]��<%u�D�t$E��u܋t$XH�D$`D�l$1��D$0L�|$hE1�E1��t$4�UE1�E1�H�D$8E1��D$D�D$(�D$�D$@�D$L�D$ �D$$�D$K�D$J H�,$�B�L�c��<W�+
H�-����HcD�H�>��fDH��$�dH3%(D���{H��[]A\A]A^A_�@�(L�-�������S�D$DL���w���@�S�L���b����L�$$E����|$K�����E�}��C�s�����T$4E������/��Ѓ�A��T$4L���D$$��y	�t$ �\$$�SL������f��SA�L�����fDE����
�T$J�SL�������S��0�XЃ�	�H�,$L����H���|P����D�`�A��	v�H�,$�D$$E��D�D|$0�D$$�|$0�@���DL�$$E���-�|$K����/��F��D$XM�$��/����L��t$XL�0�D$$A��l$��DE�A�$L�=������A�<����A�$��A�<�����EA����A���m���DL�$$E���(�|$K��D$4A�A��D$���8E���G	��/��	����t$XL�H�H�D$(�ȃ��D$@�H�\$8L�|$(D��M���D$pH�l$�@H���EM9�r1M��L��1�I��I��H������t���H���[J�EM9�s�H��H+t$H�\$8A��H�|$(A��1�D"t$@t�D$4���t
1҃���҃|$���D$ �%�|$J0��D$$)�9Ɖ‰�M�)�A��)щL$(�D$(�p��t$$��~6H�\$��f.�� ��������u�Dl$(�\$$H�\$D�l$�t$��t�-�Y����D$E��t/�|$4���|$4u�0�3����x�)����D$@E�w�E��~ ��0A������A���u�D|$E���6D�t$I��fDI��A��A������E�eE)�E�E��u�L$ �����D$�'����L�$$E���r�|$K���/����FA�,�D$X�l$��/���L��t$XH��D$pH��L�t$pH�D$L��H��H��1�H�
��I��I���<A�>L9�s�@���G
M��f�����I��E��A�<$E)�E�@��u�D�d$E���f���H�D$1�A��HL�p�������D��M�n��H�H����A�NM�� ~�A�MM�u�� ~�M��A�MM�u�� ~���L�$$E���C�|$K����/�����L��t$X�8���@�S�D$ L�����@�SA�L������fDL�$$E���	
�|$K���T$$���D$@��/�����t$XL�H�E1��D$A��D$4H�D$(�:���f.��SA�L���Q���fDL�$$E����	�|$K��A�
�D$4
E�������f�D�d$E���bE���Y�l$(���ME���DD�T$DE���6D�L$@E������/�O
����t$XL�H�H�D$(f.��΃�@�t$@H���/H��E1��D$H�D$(�E���DL�$$E�����|$K��
��/������t$XL�L�8D�d$ H�K�M��LD�A��A��E���uL����)�l$$�p��D$()ʼnt$���„�t	E���O"T$ �T$ ����
A�?M�w�L$M�d�fDA�>I������M9�u�D$�t$D�|0�|$ �n���D�d$JD�m�@D��A������A���u�A��F���fD�S�D$L���_���@�SE���L��A��@���D�S�D$(L���'���@L�$$E�����|$K�D
A�
�D$4
���D�S�\$@����L���D$@����L�$$E�����|$K��	E1�A��D$4�6���f�L�$$E�����|$K�I	D�D$E���j��/������t$XL�H�Ic�E��H��$���@L�$$E�����|$K�G	E1�A��D$4���f�L�$$E����|$K��	E1�A�
�D$4
���f�L�$$E�����|$K�#	A��D$4���DH�,$L�$$E�����|$K��I��L�4$H;,$�I��A�|$����M9�u�D��H�$�D$)�D�<�2���f��L$0�D$$9Ή�M�)�A��)��|$ )ЉD$$�������D$(�������/������t$XL�H�H�D$(�ȃ��D$�D$@����DA�>@��t.�M��D)��f.���B�D=I��A�?@��u�I��A��������f.���/w{����t$XL�H�H�D$(���f��D$$�h����A����� ������u�D|$$�$���@H�D$`H�PH�T$`�*���D�0�~�D$�T���@H�D$`H�PH�T$`끋D$(������E�������D$D�������D$@������/�U����t$XL�����fD�������,��A�~A�G���� �M��E�oE)�f����G�|5I��A�>���� ����DD�|$���fDH�D$`H�PH�T$`����DE��L��E1��5�f��D$@L���D$@�D$L���E���E����|$D���
�L$@���@��/������t$XL�H�E���D$fD�(��f.�H�D$`H�PH�T$`�Z���DH�D$`H�PH�T$`���DH�D$`H��H���*H�D$`�l$H�PH�T$`�P�����/�l�Ѓ�A��T$4L���SL��D$0�.�H�D$`H�P�8H�T$`���H�D$`H��H��H�D$`L�"H�PH�T$`��fD��/�*����t$XL�H�Ic�H�E���^������V����>A�����w�D$0��~
A�?@���8�D$$������D$(�D$����E�����D$$D�d$J�h�DD��������u�T$(Dl$$�D$ D�l$���L����^�����S��0�XЃ�	���|$0L����H�T$8�D$KH��H��H�T$8���H�T$8�D$KH��H��H�T$8���H�D$`H�PH�T$`�P���H�D$`H�PH�T$`�����l$$�/���A��M������E���D$�N�E������L����"D$ �l$$E��D$ ���M�w1�L���B;D$0��H���~�uV�D$(�T$�l$$+l$(����~	E���x���"D$ �D$ �4����D$L���?��/������t$XL��������돃|$L�x��/������t$XL�H�H�D$(�����D$4�D$X������D$4�D$X���Q����D$4�D$X���r���H�D$`H�PH�T$`����D$4�D$X�������D$4�D$X�����D$4�D$X���
����D$4�D$X����D$4�D$X�������D$4�D$X���7����D$4�D$X�^����D$4�D$X���;����D$4�D$X�����D$4�D$X���M����D$4�D$X����D$4�D$X�����/�����L��t$X�����|$L����/������t$XL�H�E���D$D�(�@�H�D$`H�PH�T$`�����/������t$XL�HcH�D$(����&!�H�D$`H�P�H�T$`����H�D$`H�PH�T$`�"�����/w����t$XL�H�E���D$D�(��H�D$`H�PH�T$`����H�D$`H�PH�T$`����H�D$`H�PH�T$`�(���H�D$`H�PH�T$`�S����D$0�T$�D$(�X���H�D$`H�PH�T$`�z���H�D$8H�D$`����H�D$`�b���E1��D$��H�D$8H�D$`��H�D$8H�D$`���H�D$8H�D$`�	�H�D$8H�D$`���E���a���H�D$`���H�D$8H�D$`�A�H�D$8H�D$`���H�D$8H�D$`�/���H�D$8H�D$`����H�D$8H�D$`���H�D$8H�D$`����H�D$8H�D$`�g�H�D$8H�D$`�H�H�D$8H�D$`�q���H�D$8H�D$`���f.�AWAVAUATUSH��(D�T$xHT$hD9��QI��Ic�A��H�L$pH��D)�L�$M�WdL�$H)�L�4��G�H�DL���DI��I��8M9��I�$I9�s�L9�s�E����H�D$`�8��H�ǽL��0-H���H�ƀ~H�Fu��@H�^1�H��1Ʉ�y'���H��H����H�H��F���x�@H���{�x�fDH���{�x�A9�tq��A9�|>�;H��u�H�B0-D��H�= �1�D�D$L�T$L�L$���L�L$L�T$D�D$I��E�FI��8M9������H��([]A\A]A^A_��H��I�~H�
{�H�tpH�$H�p�DH��H���u
�W@H���9u�H��H���xu�L��H�=��1�L�L$L�T$D�D$�"�D�D$L�T$H�
�L�L$L�e/-I�����ff.�f�AW1�AVAUATUSH��L�9�|$H�=//-H�t$ 1��T$XH�L$8L�D$(D�L$�F�H�D$h���������1��lj��_!�I��H����1�1����H!�E1�A���L��1��>�H��H������8ELF�}I�G�S>H�@(A�oH��M�gH�L�D�S<f�����E1�1�E1�H��H�$L���L�-��L�L@L���H�D$H�D$0���HD�H��@I9�t`��HL�Hڃ��L����uѹH��L����������NH�ֹL����€���LD�H��@I9�u�@�|$��UM����H�D$hM���"H�|$�H�D$I�T$ H���������I�L$L�PH��H��H�������B�H�4HcT$M�g H�LH�@L�\$(H�,�H�L$ H��L�,H)�M�t��D$��)�H�L�\���H��H9����F��<u�L�FM��tߋ|$9|$~�L�NL��L��M��H�L)�I9�@��H����@�u!�A���L�IL�H�H�A I�L�aH�H��H��8I9�u�H��H9��z���DH�<$�H�$HXH�@ H�H�D$`H9��3L�|$HD�+�����I9��/H��D�s
�sJ�+�{	H�$A�V��C@�t$0L�l�t$X�s��A�}H�D�|$@L��@�t$8u� f�H�Հ}H�Uu�H���zu�H�uH�t$H9$�.����E1�D)�A�H�t$PH�X�T$\�����@H�=ٶHc�H�>���H�D$0H��t+�D$Xt$H�xD�L$L�D$(H�L$8H�T$ �t$H��H�D$hH�Ę[]A\A]A^A_�@������H��L����������LH��H�=Z���H�|$0�€���HD�H�|$0����I������H���{�x�fDH;$srH���H�X��������1��L$0D)�H�t$P��I�H�D$8H�ŋD$M��A��D��L��P�t$0H�D$X�p �t$ H�t$@�|$<����H�� H;$r�H9\$`����H9\$`����H�5*-H�=d�1��������H���{��B���H���{�x��3����PH�X1�H��1Ʉ�y!@��H��H����Hc�H��P���x�H��D�<2����H�X�@1�1Ʉ�y!���H����H�H��C���x�@�/��)Ɖ���H�H)�������D$\1�t$@�D$XI��y���f��pH�X@�����@���&@����H���{�x��5���DH�X�@I�� ����PH�X1�H��1Ʉ�y$@��H��H�@��Hc�H��P���x�I�H��I�����D@�����D$A��D��L��M��A�E1�P�t$0H�D$X�p �t$ H�t$@�|$<���H�� ������?��H�H���o����L�kH������L�`H�X�K���H��'-H�=�1��s��.���fDH�5�'-H�=9�1��S�����fDH�$�v����H�D$�e���fDH��H9\$`�2����X���DH�D$h�/���f�H���?M���6I�FH�uH���������H�D$H��H�e H�������B�H�|$pH�l$HL�,3H�@H�|$@H�t3L��H��I���E��<uMH�}tF1���.�H��t5�uHt$H��H��H�H��tH�t$@H��������H��I9�u�H�l$HH�D$hf�{�HED$hI�G M�����D$�����c���
����G�H�={�H��1��������D��������@H�D$hM��u��D$���DL�t$I���?����������G�H�=�H��1��e�����L�t$I���D$����H�D$xH�l$HH�D$h�����UH��AWE��AVI��AUM��ATI��S��/H��(H�}�H�=a%-dH�%(H�E�1��-�H���pH�==%-M��@H��H���0H����������!�က��t�������D�H�pHDƉ�@�H��H)�H��H�HH��H���H)�H���H��H9�tH��H��$�H9�u���ML�L$H��H�5�$-I���L�σ��E1Ҩ�������H��L�κH�=e$-L�E�H�Z$-���V$-��f�L$-�߯�A$-�N
�H�u��H�=$-�9
�0�� �I�L�E�H��tH�B(I�P I�E��L��L���H�P I�M��H�1���H�E�dH3%(��H�e�[A\A]A^A_]�f����)���@�f�H���������f.����������DH)�H�L4����f.���H��1���H����������@��UHc�H��AWI���8AVAUATSH��H��x�}�dH�%(H�E�1���{�H�E�Hc�H�E��z�H�5�"-H�=�H��p����	�H��"-�H����D�M�E���H�E�E1�L�p�E��X�H�E�H��x���H�E�H��h�����I�D$I��8I9���I��E�FE��E��u�K�<�H��x����?��t�H��p���H�M�H�H���HH9��+H���fDH9��H��H�H��u�H��0�H��`�����H�U�H��`���H��tH�B(H�u�H�H �H�=�!-H�E�I��8I�v�H�0�62�L�E��}�E��H��h����L���8�I�D$I9�����f.�L�m�O�d�H���I�U0H����L��H)�A�E���9M�MM���dI�}H��t	�?�2H��H�=�P1����ZYDI�}0H��t�H�������taI��I��8M9�tTI�uM�I�E(H����H���b���L��H�=L�1��I����H�{H�s�#2�{�K�H�����H�]�H��tH�C(H�E��C��t���f�H�}���H��p�����H�E�dH3%(�hH�e�[A\A]A^A_]�f�L��H�=˩1�����
���f.�H�=��1�������DP1�AQI��H�=a��t��^_����DA��H�=|�1��W�����f�H�PH��H��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�d$H�5[-I���L���O!�0����H�U�H��tH�B(L� L�E�H�M���}�A�����L��H�E���H����]���H��p���H��N���DH�E�I�H�E�I�F �l���H��p���������f.��H��A�E1����d��H��H���H����S�H�=���z
��H�=�H���f
�H��H������H�=���J
�9H�=^�H���6
�H��H���k����H�=��
�'H�=ΪH���
�H��[H���:���f.����f.����H���H�=�������t
H���D�H�=�H�������H��+1��8���H��H���ruby_xmallocincompatible library versionInit_/opt/alt/ruby22/lib64/ruby/site_ruby/2.2.0/opt/alt/ruby22/lib64/ruby/site_ruby/2.2.0/x86_64-linux/opt/alt/ruby22/lib64/ruby/site_ruby/opt/alt/ruby22/lib64/ruby/vendor_ruby/2.2.0/opt/alt/ruby22/lib64/ruby/vendor_ruby/2.2.0/x86_64-linux/opt/alt/ruby22/lib64/ruby/vendor_ruby/opt/alt/ruby22/lib64/ruby/2.2.0/opt/alt/ruby22/lib64/ruby/2.2.0/x86_64-linux/opt/alt/ruby2201[...][, given block not usedsort reenteredarray size too bigrecursive array jointo_aryArraynegative array sizerepeated permute reenteredcombination reenteredindex %ld too bigmodified during shuffle02argument too bigsort_bytoo big to productproduct reenteredflatten reenteredattempt to drop negative sizeattempt to take negative sizenegative length (%ld)can't set length of shared negative sample numbernegative argumenttry_convertinitializeinitialize_copyinspectto_sto_ato_hfrozen?eql?[]=fetchfirstlast<<pushpopunshiftinserteach_indexreverse_eachempty?find_indexrindexreversereverse!rotaterotate!sortsort!sort_by!collect!map!select!keep_ifvalues_atdeletedelete_atdelete_ifrejectreject!ziptransposereplaceclearfillinclude?<=>slice!rassoc|uniquniq!compactcompact!flattenflatten!shuffle!samplecyclerepeated_permutationrepeated_combinationtaketake_whiledropdrop_whilebsearchany?**block supersedes default value argumentindex %ld outside of array bounds: %ld...%ldnegative array size (or size too big)wrong argument type %s (must be numeric, true, false or nil)repeated combination reenteredwrong element type %s at %ld (expected array)wrong array length at %ld (expected 2, was %ld)index %ld too small for array; minimum: %ldtried to flatten recursive arraywrong argument type %li (must respond to :each)probable buffer overflow: %ld for %ldelement size differs (%ld should be %ld)�bignum.cxn <= znblen <= num_bdigitsxn + yn <= znxn <= ynunsupported flags specifiedword order not specifiedunexpected word orderbyte order not specifiedunexpected byte orderinvalid wordsize: %zutoo big wordsize: %zutoo big nails: %zu-InfinityNaNInteger()xn <= 2too big numberdp <= dezn > ynxn * 2 <= znzn == yn + 12 <= base && base <= 360 < xnx_higher_bdigit < yyn < znBDIGIT_MSB(yds[yn-1])zds[zn-1] < yds[yn-1]qds ? (xn - yn + 1) <= qn : 1rds ? yn <= rn : 12*n < xnt1ds[t1n-1] == 0t2ds[t2n-1] == 0t3ds[t3n-1] == 0yn < 2 * xnqn + bn <= xn + wnqn <= bninvalid radix %di == num_bdigitsdivmodremaindercan't coerce %s to Bignumshift width too bigunsigned longunsigned long longBignum out of Float rangefdivin a**b, b may be too big>=<=coerce-@modulo^>>===to_fabsmagnitudebit_lengthodd?even?(size_t)(dp - BDIGITS(z)) == num_bdigits!KARATSUBA_BALANCED(xn, yn) || !TOOM3_BALANCED(xn, yn)too big numwords * wordsize: %zu * %zu0 <= shift && shift < BITSPERDIGyn < xn || (xn == yn && yds[yn - 1] <= xds[xn - 1])unexpected bignum length for karatsubaunexpected bignum length for toom3too big power number requested: maxpow_in_bdigit_dbl(%d)**(2**%d)bignum too big to convert into `string'bignum too big to convert into `%s'too big to unpack as an integerbignum out of range of unsigned longbignum too big to convert into `long'bignum out of range of unsigned long longbignum too big to convert into `long long'
������������������������������������������������������������������
������������������������������������������������big2str_karatsubabig2str_2bdigitsstr2big_karatsubastr2big_normalmaxpow_in_bdigit_dblstr2big_poweroftwobary_unpack_internalbigdivrem_restoringbary_divmod_normalbary_mul_balance_with_mulfuncbigdivrem_mulsubbary_small_rshiftbigdivrem_single1bary_mul_toom3bary_addcbary_subbbary_mul_karatsubabary_mul_singlebary_short_mulbary_small_lshiftbary_mul_precheckbary_sq_fastbary_muladd_1xNbary_mul_normal�!�)R���@����eg��Aa"P�yB6�!�)R����#NJ9�?�V�(M�M�brsx�}�9w�=��'[��!~�^�'�\<��]ۮ��2���ļI���-@��{YXVq�`77���)�42����xd�n"�_�p�=8��#<Z�+�se��Y�6�A݁�� W�
�	_O��%,�D!q\n�%g�.��A?(






0123456789abcdefghijklmnopqrstuvwxyz����������������?�=�A����C���Csuperclass must be a Class (%s given)can't make subclass of singleton classsuperclass mismatch for class %sno super class for `%s', Object assumedno super class for `%li::%li', Object assumedcan't make subclass of Classcan't copy the root classalready initialized classcan't copy singleton class__tmp_classpath____classpath____classid__BasicObjectModulecan't define singletonunknown immediate %pinherited%s is not a class%li is not a class%li is already defined%s::%s is not a modulecyclic include detectedcyclic prepend detected%s keyword%s: %libad scan arg format: %skeysunknown keywordunknownComparable#== will no more rescue exceptions of #<=> in the next release.Return nil in #<=> if the comparison is inappropriate or avoid such comparison.comparison of %li with %li failedComparablebetween?marshaled complex must have an array whose length is 2 but %ldcan't convert %li into Integercan't convert %li into Rationalinvalid value for convert(): %+lican't convert nil into Complex.eEPIcan't convert %li into Floatrationalize%s can't be coerced into %snot a realstring contains null byteto_cComplexquoto_ito_r@real@imageallocatenewrectangularpolarfloorceilroundsteptruncateimaginaryimagabs2anglephaseconjugateconjmarshal_dumpmarshal_loadcomplex.soclosed directorydirfdcontinuous RECURSIVEs#<HOMELOGDIRHOME/LOGDIR not setDirforeachfilenoto_pathpospos=getwdpwdchrootmkdirrmdirunlinkglobexist?exists?fnmatchfnmatch?FNM_NOESCAPEFNM_PATHNAMEFNM_DOTMATCHFNM_CASEFOLDFNM_EXTGLOBFNM_SYSCASEDir.exists? is a deprecated name, use Dir.exist? insteadconflicting chdir during another chdir block�;�p9�<�+C�<�;�dir_initializedir_chdirdir_s_chrootdir_s_mkdirdir_s_rmdirdo_lstatdo_opendirdo_statopenpath: pathname too long (ignored)
	File "%.*s"%s
/usr/local/bin:/usr/ucb:/usr/bin:/bin:.openpath: pathname too long (ignored)
	Directory "%.*s"%s
	File "%.*s"%s
rb_enc_from_encoding_index(%d): no rb_encoding_listrb_enc_from_encoding_index(%d): not created yetwrong argument type %li (expected Encoding)encoding %s is already registeredincompatible character encodings: %s and %sencoding index out of bound: %dwrong encoding index %d for %s (expected %d)failed to load encoding (%s); use ASCII-8BIT insteadinvalid name encoding (non ASCII)default external can not be nilsetting Encoding.default_externalsetting Encoding.default_internalUTF-16BEUTF-16LEUTF-32BEUTF-32LEUTF-16UTF-32UTF8-MACEUC-JPWindows-31Jempty stringinvalid byte sequence in %sinvalid codepoint 0x%x in %s (autoload) (dummy)broken Encoding#<%li:%s%s%s>filesystemnamesdummy?ascii_compatible?replicatename_listaliasesfinddefault_externaldefault_external=default_internaldefault_internal=locale_charmapenc/%s.sointernal_encodingexternal_encodingunknown encodingfailed to load encoding (%s)encoding %s is not registeredunknown encoding name - %lilocaleslicewhen_enumslicewhen_predsliceafter_enumsliceafter_patsliceafter_predslicebefore_sep_predslicebefore_initial_stateslicebefore_sep_patslicebefore_enumerableno block givenchunk_enumerablechunk_categorizechunk_initial_stateto_enuminvalid sizeinvalid slice sizemin_byminnegative size (%ld)too big size%s reenteredsort_by reentered_alone_separatorEnumerablegrepdetectfind_allflat_mapcollect_concatinjectreducegroup_byall?none?minmaxminmax_bymember?each_with_indexeach_entryeach_sliceeach_conseach_with_objectchunkslice_beforeslice_afterslice_whenboth pattan and block are giveninitial_state given for slice_before.  (Use local variables.)initial_state given for chunk.  (Use local variables.)wrong argument type %s (must respond to :each)symbols beginning with an underscore are reservedwrong element type %s (expected array)element has wrong array length (expected 2, was %ld)unallocated enumeratoruninitialized yielder#<%li: uninitialized>#<%li: ...>#<%li: %+liuninitialized generatorunallocated yielderunallocated generatoruninitialized enumeratoriteration reached an endfeed value already setcan't copy execution contextenum_forEnumeratornext_valuespeek_valuespeekfeedLazylazyforceStopIterationGeneratorYielderenumerator.soreceivermemotried to call lazy new without a blocktried to call lazy drop_while without a blocktried to call lazy take_while without a blocktried to call lazy reject without a blocktried to call lazy select without a blocktried to call lazy flat_map without a blocktried to call lazy map without a blockwrong argument type %s (expected Proc)Enumerator.new without a block is deprecated; use Object#to_enumwarning: [BUG] 
%s

causebtErrnobt_locationsmessageE%03dEPERMENOENTESRCHEINTRENXIOE2BIGENOEXECEBADFECHILDEAGAINENOMEMEACCESENOTBLKEBUSYEEXISTENODEVEXDEVEHWPOISONERFKILLEOWNERDEADENOTRECOVERABLEENOMEDIUMENOKEYEMEDIUMTYPEEKEYREVOKEDEKEYREJECTEDEKEYEXPIREDECANCELEDEDQUOTEREMOTEIOEISNAMENAVAILENOTNAMEUCLEANESTALEEINPROGRESSEALREADYEHOSTUNREACHEHOSTDOWNECONNREFUSEDETIMEDOUTETOOMANYREFSESHUTDOWNENOTCONNEISCONNENOBUFSECONNRESETECONNABORTEDENETRESETENETUNREACHENETDOWNEADDRNOTAVAILEADDRINUSEEAFNOSUPPORTEPFNOSUPPORTEOPNOTSUPPESOCKTNOSUPPORTEPROTONOSUPPORTENOPROTOOPTEPROTOTYPEEMSGSIZEEDESTADDRREQENOTSOCKEUSERSESTRPIPEERESTARTEILSEQELIBEXECELIBMAXELIBSCNELIBBADELIBACCEREMCHGEBADFDENOTUNIQEOVERFLOWEBADMSGEDOTDOTEMULTIHOPEPROTOECOMMESRMNTEADVENOLINKEREMOTEENOPKGENONETENOSRETIMEENODATAENOSTREBFONTEBADSLTEBADRQCENOANOEXFULLEBADREBADEEL2HLTENOCSIEUNATCHELNRNGEL3RSTEL3HLTEL2NSYNCECHRNGEIDRMENOMSGELOOPENOTEMPTYENOSYSENOLCKENAMETOOLONGEDEADLKERANGEEDOMEPIPEEMLINKEROFSESPIPEENOSPCEFBIGETXTBSYENOTTYEMFILEENFILEEINVALEISDIRENOTDIR%s:%d: %s: errno == 0 (NOERROR)%s: %s (%s)%s: %s (%d)undefined errno[ASYNC BUG] errno == 0 (NOERROR)
Fixnumcompile error@pathbacktrace_locationsset_backtraceSystemExitsuccess?fatalSignalExceptionInterruptStandardErrorTypeErrorArgumentErrorIndexErrorKeyErrorRangeErrorScriptErrorSyntaxErrorLoadErrorNotImplementedErrorNameErrorto_strNoMethodErrorRuntimeErrorSecurityErrorNoMemoryErrorEncodingErrorCompatibilityErrorSystemCallErrorwarninvalid value for %s: %+liunknown errorinvalid instance type @ %lirb_sys_fail(%s) - errno == 0 -- can't modify frozen %scan't modify frozen %liInsecure: can't modify %liNOERROREWOULDBLOCKEDEADLOCKEAUTHEBADRPCEDOOFUSEFTYPEENEEDAUTHENOATTRENOTSUPEPROCLIMEPROCUNAVAILEPROGMISMATCHEPROGUNAVAILERPCMISMATCHEIPSECECAPMODEENOTCAPABLEname_err_mesg%li() function is unimplemented on this machineundef leaked to the Ruby spacewrong argument type %s (expected %s)unknown type 0x%x (0x%x given)rb_sys_fail_str(%s) - errno == 0rb_sys_fail_path_in(%s, %s) - errno == 0backtrace must be Array of Stringwrong argument type %s (expected %s)ObjectClassModuleFloatStringRegexpArrayHashStructBignumFileDataMatchDataComplexRationalniltruefalseSymbolFixnumundefNodeiClass[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

compare_by_identityextend_objectextendedprepend_featuresprependedappend_featuresincluded__refinements__exception object expected$! not setException `%li' - %li
__activated_refinements____refined_class____defined_at__ private protectedcalled without a block%li:%d:in `%li'%li:%d: unhandled exception
	from %li
	 ... %ld levels...
: unexpected return
: unexpected next
: unexpected break
: unexpected redo
: unexpected throw
signoUnknown longjmp status %dassigning non-exception to $!$@raisefailglobal_variables__method____callee____dir__includeprependrefineusingmodule_functionnestingconstantsextenduntrace_varexception reenteredwrong argument type %s (expected Module)main.include in the wrapped load is effective only in wrapper moduleexception class/object expectedException `%li' at %s:%d - %li
Exception `%li' at %s - %li
can't pass a Proc as a block to Module#refineundefined%s method `%li' for %s `% li'undefined method `%li' for %s `% li'method `%li' for %s `% li' is %sonly cause is given with no arguments: retry outside of rescue clause
main.using is permitted only at toplevelModule#using is not permitted in methodsModule#using is not called on self���|������܃�������l��$LOADED_FEATURES is frozen; cannot append featureCan not set autoload on singleton classloading in progress, circular require considered harmful - %s<top (required)>%s is already registered.rbcannot load such file.o./cannot infer basepath$-I$LOAD_PATH$"$LOADED_FEATURESrequirerequire_relativeautoloadautoload?$:.so.o (not-implemented)@reason@exit_value (lambda)#<%s:%p@%li:%d%s>#<%s:%p%s>too many arguments (%lu)to_procaritylambda?bindingcurrysource_locationLocalJumpErrorSystemStackErrorstack level too deeplambdaoriginal_nameownerunbindsuper_methodpublic_methodUnboundMethodpublic_instance_methodBindinglocal_variableslocal_variable_getlocal_variable_setlocal_variable_defined?wrong local variable name `% li' for %lilocal variable `%li' not defined for %liundefined singleton method `%li' for `%li'rb_method_entry_min_max_arity: invalid method entry type (%d)tried to create Proc object without a blocksingleton method called for a different objectbind argument must be an instance of % liwrong argument type %s (expected Proc/Method)can't bind singleton method to a different classbind argument must be a subclass of % liwrong argument type (expected Proc/Method)main.define_method in the wrapped load is effective only in wrapper moduleundefined method `%li' for%s `%li'can't call unbound method; bind firstCan't create Binding from C level Proc���P�������8��������������path name must be ASCII-compatible (%s): %li%sexists? is a deprecated name, use %sexist? insteadcouldn't find HOME environment -- expanding `~'non-absolute home of %.*s%.0liInsecure world writable dir %s in %sPATH, mode 0%o#<%s: uninitialized>0%lo0x%lxcharacterSpecialblockSpecialfifosocketuninitialized File::Statnot opened for writingrecursive arrayto_ioFileTest.FileTest#File.2*1*unknown command '%s%c'unknown command "\x%02X"bcdefgGkloOprRsSuwWxXz=<>resolvinguser %li doesn't existnon-absolute homeLOAD_loading from unsafe file %sloading from unsafe path %sFileTestdirectory?readable_real?world_readable?writable_real?world_writable?executable?executable_real?file?size?grpowned?pipe?symlink?socket?blockdev?chardev?setuid?setgid?sticky?identical?lstatftypeatimebirthtimelchmodlchownsymlinkreadlinkrenameumaskexpand_pathabsolute_pathrealpathrealdirpathbasenamedirnameextnameSeparatorsplitALT_SEPARATORPATH_SEPARATORflockConstantsRDONLYWRONLYRDWRAPPENDCREATEXCLNONBLOCKTRUNCNOCTTYBINARYDSYNCRSYNCNOFOLLOWNOATIMEDIRECTLOCK_SHLOCK_EXLOCK_UNLOCK_NBNULLtestinordevrdev_majorrdev_minorblksizeblocks�3�H2�H2�H2�H2�H2�H2�H2��3�H2�H2�4�04�H2�H2�H2�p4�4�H2�H2�H2�H2�H2�H2�H2�H2�H2�4��4� 5�85�`5�5�H2�H2�H2�5��5�H2�H2��5�6�H2�@6�X6�H2�p6�H2�6�6�H2�6�rb_file_s_sizerb_file_s_statrb_file_s_lstatrb_file_s_ftyperb_file_s_atimerb_file_s_mtimerb_file_s_ctimeutime_internalchmod_internalchown_internallchown_internalunlink_internalsys_fail2rb_file_s_truncaterb_io_statrb_file_lstatrb_file_atimerb_file_mtimerb_file_ctimerb_file_sizerb_file_chmodrb_file_chownrb_file_truncaterb_file_flockrb_f_testrb_stat_initrb_readlinkrealpath_rec/dev/null%s	%d
invalid string for %s: %s
%s=%f (default value: %f)
-<%li:%p => non-hash givenTOTALFREET_OBJECTT_CLASST_MODULET_FLOATT_STRINGT_REGEXPT_ARRAYT_HASHT_STRUCTT_BIGNUMT_FILET_MATCHT_COMPLEXT_RATIONALT_NILT_TRUET_FALSET_SYMBOLT_FIXNUMT_UNDEFT_NODET_ICLASSGC %zu invokes.
non-hash or symbol givenmajor_bygc_byimmediate_sweephave_finalizernofreeoldgenshadyoldmallocnewobjcapinonemarkingsweepingunknown key: %li[FATAL] %s
%s=%zd (default value: %zd)
GC_FLAGSGC_TIMEGC_INVOKE_TIMEHEAP_USE_SIZEHEAP_TOTAL_SIZEHEAP_TOTAL_OBJECTSGC_IS_MARKED%p is not symbol id value%p is not id value%p is recycled object%p is internal objectmarking -> %s
%s|%s:%dmarkedwb_protectedoldlong_livedheap_allocated_pagesheap_sorted_lengthheap_allocatable_pagesheap_available_slotsheap_live_slotsheap_free_slotsheap_final_slotsheap_marked_slotsheap_swept_slotsheap_eden_pagesheap_tomb_pagestotal_allocated_pagestotal_freed_pagestotal_allocated_objectstotal_freed_objectsmalloc_increase_bytes_limitminor_gc_countmajor_gc_countold_objectsold_objects_limitoldmalloc_increase_bytesgc_stat_heap_usedheap_eden_page_lengthheap_tomb_page_lengthheap_incrementheap_lengthheap_live_slotheap_free_slotheap_final_slotheap_swept_slottotal_allocated_objecttotal_freed_objectoldmalloc_increaseoldmalloc_limitnon-hash or symbol argumentcorrupted objectnon objectrb_gc_mark(): %p is T_NONErb_gc_mark(): %p is T_ZOMBIEvmfinalizersmachine_contextencodingsglobal_listend_procglobal_tblgeneric_ivarslive_method_entriesfinishRUBY_GC_HEAP_FREE_SLOTSRUBY_FREE_MINRUBY_GC_HEAP_INIT_SLOTSRUBY_HEAP_MIN_SLOTSRUBY_GC_HEAP_GROWTH_FACTORRUBY_GC_HEAP_GROWTH_MAX_SLOTSRUBY_GC_MALLOC_LIMITRUBY_GC_MALLOC_LIMIT_MAXRUBY_GC_OLDMALLOC_LIMITRUBY_GC_OLDMALLOC_LIMIT_MAXnegative re-allocation sizefull_markimmediate_markfinalizegc.cdisablestress=latest_gc_infogarbage_collectRVALUE_SIZEHEAP_OBJ_LIMITHEAP_BITMAP_SIZEHEAP_BITMAP_PLANESINTERNAL_CONSTANTSProfilerenabled?raw_datareporttotal_timeObjectSpaceeach_objectundefine_finalizer_id2reffailed to allocate memory__id__object_idcount_objectsWeakMapeach_paireach_keyeach_valueverify_internal_consistencyOPTSUSE_RGENGCRGENGC_ESTIMATE_OLDMALLOCGC_ENABLE_LAZY_SWEEPweakmapGC.stat keys were changed from Ruby 2.1. In this case, you refer to obsolete `%li' (new key is `%li'). Please check <https://bugs.ruby-lang.org/issues/9924> for more information.%s=%f (default value: %f) is ignored because it must be greater than %f.
Index    Invoke Time(sec)       Use Size(byte)     Total Size(byte)         Total Object                    GC Time(ms)
%5zd %19.3f %20zu %20zu %20zu %30.20f
cannot define finalizer for %swrong type argument %li (should be callable)[FATAL] failed to allocate memory
%s=%s is ignored because it overflows
%s=%zd (default value: %zd) is ignored because it must be greater than %zd.
verify_internal_consistency_reachable_i: WB miss (B->W) - %s -> %s
verify_internal_consistency_reachable_i: WB miss (O->Y) %s -> %s
gc_verify_internal_consistency: found internal inconsistency.page %p's has_remembered_objects should be false, but there are remembered old objects (%d). %spage %p's has_remembered_shady should be false, but there are remembered shady objects. %sheap_pages_final_slots: %d, objspace->profile.total_freed_objects: %d
inconsistent live slot nubmer: expect %zu, but %zu.inconsistent old slot nubmer: expect %zu, but %zu.inconsistent finalizing object count:
  expect %zu
  but    %zu zombies
  heap_pages_deferred_final list has %zu items.objspace/memsize_of(): unknown data type 0x%x(%p)invalid_mark_stack: unreachableremembered_wb_unprotected_objectsremembered_wb_unprotected_objects_limitoldmalloc_increase_bytes_limitrb_gc_mark() called for broken objectrb_gc_mark(): unknown data type 0x%x(%p) %ssame heap page is allocated: %p at %luRUBY_FREE_MIN is obsolete. Use RUBY_GC_HEAP_FREE_SLOTS instead.RUBY_HEAP_MIN_SLOTS is obsolete. Use RUBY_GC_HEAP_INIT_SLOTS instead.RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTORRUBY_GC_MALLOC_LIMIT_GROWTH_FACTORRUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTORlazy sweeping underway when freeing object spaceobj_free() called for broken objectgc_sweep(): unknown data type 0x%x(%p) 0x%lxgc_finalize_deferred_register: can't register finalizer.gc_profile malloc or realloc missnegative allocation size (or too big)malloc: possible integer overflowrealloc: possible integer overflowobject allocation during garbage collection phaseheap_pages_deferred_final == 0@r�r��q�q�q�Pq� q��p�p�p�`p�0p�p��o�o�po�m�@o�o��n�n�n�m�m�m�m�m�Pn� n��m�pm���$����������Ԙ�Ę���������t��d��T��D��4��4��$��������4��4��4��4��4����ԗ�ė���`�������� ������ȥ�إ�����0��P��X�� �� ��`��`��`��`�� ��`��`��`��`��`��`��`��x�� �� �����������`��<����\��,�����`��,��d����l��l��������������`�������������������������������������������������������������X����������������(��8����0���������������������x�����������������������h����rb_objspace_call_finalizer333333�?�������?��&�.>���ư>@�@\��(\�?$@can't add a new key into hash during iterationdefault_proc takes two arguments (2 for %d)ENV.index is deprecated; use ENV.keyhash modified during iterationrehash occurred during iterationwrong default_proc type %s (expected Proc)Hash#index is deprecated; use Hash#keyextra states are no longer copied: %+liodd number of arguments for Hashignoring wrong elements is deprecated, remove them explicitlythis causes ArgumentError in the next releaseinvalid number of elements (%ld for 1..2)bad environment variable valuekey not found: %liENV{"=>bad environment variable namekey not found: "%li"{}to_hash{...}rehash during iterationunsetenv(%s)defaultrehashdefault=default_procdefault_proc=invertupdatemerge!mergehas_key?has_value?compare_by_identity?ungetbyte failedARGFtoo few arguments for syscalla+w+r+invalid access oflags 0x%xab+rt+rb+wt+wtwbwb+at+invalid access fmode 0x%xtextmode specified twicebinmode specified twicefstatlseeksendfilepreadfd %d/proc/self/statusFDSize:end of file reacheduninitialized stream11:sysseek for buffered IOadvice must be a SymbolUnsupported advice: %+li%li (%ld, %ld, %li)syswrite for buffered IOfd:%d too long characternot opened for readingsysread for buffered IOeach_byters modifiedeach_lineungetc failedeach_codepointeach_charnegative length %ld given%s() not implementedputsputcflush failedinvalid access mode %sto_intperm specified twiceencoding specified twice02:12:no stream to set encodingno stream to set positionno stream to rewindno stream to seekno stream to tellreadlinereadlinesno stream@tied_io_for_writingreinitializing Filetoo many arguments21:13:rb:ASCII-8BITto_openwait_readableread would block10:wait_writablewrite would blockIOErrorEOFErrorflushreadpartialset_encodingprintgetsdisplayEAGAINWaitReadableEAGAINWaitWritableEWOULDBLOCKWaitReadableEWOULDBLOCKWaitWritableEINPROGRESSWaitReadableEINPROGRESSWaitWritablesysopenfor_fdpopenbinreadbinwritepipecopy_stream$,$/$-0$\$_reopencharscodepointssyswritesysreadfsyncfdatasyncsync=lineno=read_nonblockwrite_nonblockreadcharreadbyteungetbyteungetcSEEK_SETSEEK_CURSEEK_ENDSEEK_DATASEEK_HOLEeofeof?close_on_exec?close_on_exec=close_readclose_writeisattytty?binmodebinmode?sysseekadviseioctlfcntlautoclose?autoclose=$stdin<STDIN>$stdout<STDOUT>$stderr<STDERR>$>STDINSTDOUTSTDERRARGF.classargvto_write_iofilenameskipinplace_modeinplace_mode=$<$.$FILENAME$-i$*permopen_argstextmodeautoclosenormalsequentialwillneeddontneednoreuseASCII incompatible encoding needs binmodeUnsupported encoding %s ignored%li::new() does not take block; use %li::open() instead%li must have %li method, %li givenWe plan to remove a syscall function at future release. DL(Fiddle) provides safer alternative.too many arguments for syscallboth textmode and binmode specifiedrb_update_max_fd: invalid fd (%d) given.rb_maygvl_fd_fix_cloexec: fcntl(%d, F_GETFD) failed: %srb_maygvl_fd_fix_cloexec: fcntl(%d, F_SETFD, %d) failed: %srb_fix_detect_o_cloexec: fcntl(%d, F_GETFD) failed: %sencoding mismatch: %s IO with %s RSreturn value overflowed stringbyte oriented read for character buffered IOIO#bytes is deprecated; use #each_byte insteadinvalid limit: 0 for readlinesinvalid limit: 0 for each_lineIO#lines is deprecated; use #each_line insteadIO#codepoints is deprecated; use #each_codepoint insteadIO#chars is deprecated; use #each_char insteadASCII incompatible string written for text mode IO without encoding conversion: %sclosing non-duplex IO for writingclosing non-duplex IO for readingcannot specify src_offset for non-IOIgnoring encoding parameter '%li': %s_encoding is used%s can't change access mode from "%s" to "%s"setvbuf() can't be honoured for %liCan't do inplace edit for stdio; skippingCan't rename %li to %li: %s, skipping fileCan't remove %li: %s, skipping fileCan't set owner/group of %li to same as %li: %s, skipping fileCan't do inplace edit for stdioARGF#codepoints is deprecated; use #each_codepoint insteadARGF#chars is deprecated; use #each_char insteadARGF#bytes is deprecated; use #each_byte insteadARGF#lines is deprecated; use #each_line insteadThe given fd is not accessible because RubyVM reserves itinvalid read/write type passed to rb_readwrite_sys_fail: %dDŽ�[��������(��P������io_reopenrb_io_reopenrb_io_syswriterb_io_sysreadrb_io_fsyncio_write_nonblockrb_io_tellrb_io_seekrb_io_rewindrb_io_set_posrb_io_close_on_exec_prb_io_set_close_on_execrb_io_close_readis_socketrb_io_close_writerb_io_sysseekrb_ioctlrb_fcntl (closed)io_getpartialio_writerb_sysopenbom|utf-fptr_finalize_flushswallowio_freadrb_io_set_nonblockio_fillbufclosed streaminstance of IO neededmarshal data too shortMarshal.load reentered at %s%li does not refer to module%li does not refer to classlong too big to dumpcan't dump anonymous %s % li% li can't be referred to-infnane%dbad symbolMarshal.dump reentered at %sexceed depth limitcan't dump internal %s_dump() must return stringarray modified during dump_dump_datacan't dump %scan't dump anonymous ID %ldsingleton can't be dumpeddump format error (unlinked)singleton can't be loadedclass %li not a structdump format error_load_datadump format error(0x%x)dump format error (bad link)no allocatorMarshal_allocrestoreMAJOR_VERSIONMINOR_VERSIONload_argdump_argcan't dump non-ascii %s name % lilong too big for this architecture (size 8, given %d)%li#%s returned same class instancesingleton class can't be dumpedtoo big Bignum can't be dumpedcan't dump hash with default procno _dump_data is defined for class %sprepended class %li differs from class %lidump format error (user class)struct %li not compatible (struct size differs)struct %li not compatible (:%li for :%li)class %s needs to have method `_load'instance of %s needs to have method `marshal_load'class %s needs to have instance method `_load_data'can't override instance variable of class/module `%li'can't override instance variable of class `%li'can't override instance variable of module `%li'dump format error for symbol(0x%x)dump format error (symlink with encoding)incompatible marshal file format (can't be read)
	format version %d.%d required; %d.%d givenincompatible marshal file format (can be read)
	format version %d.%d required; %d.%d given^��$��)����`����`��d��������^��Ŏ�������������������������������������������������P������������ت�����������������ج�������������������H��8��������������������������������ئ���P������������ȣ�����h������������Ȣ�����������(����(���Numerical argument is out of domain - "log"Numerical argument is out of domain - "acosh"Numerical argument is out of domain - "asin"Numerical argument is out of domain - "acos"Numerical argument is out of domain - "sqrt"Numerical argument is out of domain - "gamma"Numerical argument is out of domain - "atanh"Numerical argument is out of domain - "log2"Numerical argument is out of domain - "log10"Numerical argument is out of domain - "lgamma"Mathatan2acosasinatanacoshasinhatanhloglog2log10sqrtcbrtfrexpldexphypoterferfclgamma�?�?@@8@^@��@��@��@&A��KA��A���A��2�A(;L4B�uwsB�uw�B���7�Bs��6C�h0�{CZA���C Ƶ�;(Dl�YaRwND�9��B.�?�7@�y�PD�?(internal variable)nd_head (current statement)nd_next (next block)nd_cond (condition expr)nd_condnd_body (then clause)nd_else (else clause)nd_elsend_head (case expr)nd_body (when clauses)nd_head (when value)nd_body (when clause)nd_next (next when clause)nd_cond (condition)nd_body (body)nd_iter (iteration receiver)nd_iternd_stts (value)nd_sttsnd_head (body)nd_resq (rescue clause list)nd_resqnd_else (rescue else clause)nd_args (rescue exceptions)nd_body (rescue clause)nd_head (next rescue clause)nd_ensr (ensure clause)nd_ensrnd_1st (left expr)nd_1stnd_2nd (right expr)nd_2ndnd_value (rhsn)nd_valuend_head (lhsn)nd_args (splatn)nd_value (rvalue)nd_else (extension)nd_recv (receiver)nd_recvnd_args->nd_body (index)nd_args->nd_bodynd_args->nd_head (rvalue)nd_args->nd_headnd_next->nd_mid (operator)nd_next->nd_midnd_head (variable)nd_args (arguments)nd_mid (method id)nd_head (element)nd_next (next element)nd_head (contents)nd_head (arguments)nd_vid (local variable)nd_entrynd_entry (global variable)nd_nth (variable)nd_nthnd_litnd_lit (regexp)nd_recv (regexp (receiver))nd_value (string (argument))nd_recv (string (receiver))nd_value (regexp (argument))nd_lit (literal)nd_next->nd_headnd_next->nd_nextnd_head (preceding array)nd_body (following array)nd_body (following element)nd_head (splat'ed array)nd_head (other arguments)nd_body (block argument)nd_defn (method definition)nd_defnu1.node (new name)u1.nodeu2.node (old name)u2.nodeu2.idu2.id (old name)nd_cpath (class path)nd_cpathnd_super (superclass)nd_supernd_body (class definition)nd_cpath (module path)nd_body (module definition)nd_head (receiver)nd_mid (constant name)nd_beg (begin)nd_begnd_end (end)nd_endnd_head (expr)nd_body (END clause)nd_head (prelude)nd_body (lambda clause)nd_next (next)nd_1st (rest argument)nd_2nd (post arguments)nd_ainfo->pre_initnd_ainfo->post_initnd_ainfo->opt_argsnd_ainfo->kw_argsnd_ainfo->kw_rest_argnd_tbl (local table)nd_tbl(null node)@ %s (line: %d)| # statement sequenceformat: [nd_head]; [nd_next]example: foo; bar+- %s:|       if statementcase statementwrapper for -n optionexample: ruby -ne 'p $_'while statementuntil statementmethod call with blockexample: 3.times { foo }for statementformat: break [nd_stts]example: break 1next statementformat: next [nd_stts]example: next 1return statementformat: return [nd_stts]example: return 1redo statementformat: redoexample: redoretry statementformat: retryexample: retrybegin statementformat: begin; [nd_body]; endexample: begin; 1; endrescue clauserescue clause (cont'd)ensure clauseformat: [nd_1st] && [nd_2nd]example: foo && barformat: [nd_1st] || [nd_2nd]multiple assignmentexample: a, b = foolocal variable assignmentexample: x = fooexample: 1.times { x = foo }instance variable assignmentexample: @x = fooclass variable assignmentexample: @@x = foo(required keyword argument)global variable assignmentexample: $x = fooconstant declarationexample: X = fooexample: ary[1] += fooattr assignment with operatorexample: struct.field += foo0 (||)1 (&&)assignment with && operatorexample: foo &&= barassignment with || operatorexample: foo ||= barmethod invocationexample: obj.foo(1)function callformat: [nd_mid]([nd_args])example: foo(1)format: [nd_mid]example: foosuper invocationformat: super [nd_args]example: super 1format: superexample: superexample: [1, 2, 3]return argumentsexample: return 1, 2, 3empty array constructorformat: []example: []hash constructorformat: { [nd_head] }example: { 1 => 2, 3 => 4 }yield invocationformat: yield [nd_head]example: yield 1local variable referenceformat: [nd_vid](lvar)example: xdynamic variable referenceformat: [nd_vid](dvar)example: 1.times { x = 1; x }instance variable referenceformat: [nd_vid](ivar)example: @xformat: [nd_vid](constant)example: Xclass variable referenceformat: [nd_vid](cvar)example: @@xglobal variable referenceformat: [nd_entry](gvar)example: $xformat: $[nd_nth]example: $1, $2, ..example: $&, $`, $', $+example: if /foo/; foo; endexample: /foo/ =~ 'foo'example: 'foo' =~ /foo/format: [nd_lit]example: 1, /foo/example: 'foo'xstring literalexample: `foo`example: "foo#{ bar }baz"example: `foo#{ bar }baz`example: /foo#{ bar }baz/example: /foo#{ bar }baz/oexample: :"foo#{ bar }baz"interpolation expressionformat: "..#{ [nd_lit] }.."example: foo(*ary, post_arg)splat argumentformat: *[nd_head]example: foo(*ary)arguments with block argumentexample: foo(x, &blk)example; def foo; bar; endnd_mid (method name)singleton method definitionmethod alias statementexample: alias bar fooexample: alias $y $xu1.id (new name)format: undef [u2.node]example: undef foomodule definitionexample: module M; ..; endsingleton class definitionscoped constant referenceformat: [nd_head]::[nd_mid]example: M::Ctop-level constant referenceformat: ::[nd_mid]example: ::Objectrange constructor (incl.)format: [nd_beg]..[nd_end]example: 1..5range constructor (excl.)format: [nd_beg]...[nd_end]example: 1...5flip-flop condition (incl.)flip-flop condition (excl.)format: selfexample: selfformat: nilexample: nilformat: trueexample: trueformat: falseexample: falsevirtual reference to $!format: rescue => idexample: rescue => iddefined? expressionformat: defined?([nd_head])example: defined?(foo)post-executionformat: END { [nd_body] }example: END { foo }attr assignmentexample: struct.field = foo1 (self)pre-executionexample: bar; BEGIN { foo }lambda expressionformat: -> [nd_body]example: -> { foo }optional argumentskeyword argumentspost argumentsexample: a, *rest, z = foomethod parametersnew scope(empty)dump_node: unknown node: %s (while-end)nd_vid (variable)nd_vid (operator)nd_next->nd_vid (reader)nd_next->nd_aid (writer)nd_next->nd_vidnd_next->nd_aidnd_alen (length)nd_alennd_ainfo->first_post_argnd_ainfo->rest_argnd_ainfo->block_argnd_ainfo->post_args_numnd_ainfo->pre_args_numu1.id (begin-end-while)nd_state (begin-end-while?)nd_state0 (see extension field)nd_next->nd_head (preceding string)nd_next->nd_next (interpolation)nd_body (singleton class definition)nd_ainfo->pre_init (initialization of (pre-)arguments)nd_ainfo->post_init (initialization of post-arguments)nd_ainfo->opt_args (optional arguments)nd_ainfo->kw_args (keyword arguments)nd_ainfo->kw_rest_arg (keyword rest argument)format: if [nd_cond] then [nd_body] else [nd_else] endexample: if x == 1 then foo else bar endformat: case [nd_head]; [nd_body]; endexample: case x; when 1; foo; when 2; bar; else baz; endformat: when [nd_head]; [nd_body]; (when or else) [nd_next]format: ruby -ne '[nd_body]' (nd_cond is `gets')format: while [nd_cond]; [nd_body]; endexample: while x == 1; foo; endformat: until [nd_cond]; [nd_body]; endexample: until x == 1; foo; endformat: [nd_iter] { [nd_body] }format: for * in [nd_iter] do [nd_body] endexample: for i in 1..3 do foo endformat: begin; [nd_body]; (rescue) [nd_resq]; else [nd_else]; endexample: begin; foo; rescue; bar; else; baz; endformat: rescue [nd_args]; [nd_body]; (rescue) [nd_head]format: begin; [nd_head]; ensure; [nd_ensr]; endexample: begin; foo; ensure; bar; endformat: [nd_head], [nd_args] = [nd_value]-1 (rest argument without name)format: [nd_vid](lvar) = [nd_value]dynamic variable assignment (out of current scope)format: [nd_vid](dvar) = [nd_value]example: x = nil; 1.times { x = foo }dynamic variable assignment (in current scope)format: [nd_vid](current dvar) = [nd_value]format: [nd_vid](ivar) = [nd_value]format: [nd_vid](cvar) = [nd_value]format: [nd_entry](gvar) = [nd_value]format: [nd_else]::[nd_vid](constant) = [nd_value]array assignment with operatorformat: [nd_value] [ [nd_args->nd_body] ] [nd_vid]= [nd_args->nd_head]format: [nd_value].[attr] [nd_next->nd_mid]= [nd_value]          where [attr] reader: [nd_next->nd_vid]                [attr] writer: [nd_next->nd_aid]format: [nd_head] &&= [nd_value]format: [nd_head] ||= [nd_value]format: [nd_recv].[nd_mid]([nd_args])function call with no argumentsuper invocation with no argumentformat: [ [nd_head], [nd_next].. ] (length: [nd_alen])nth special variable referenceback special variable referencematch expression (against $_ implicitly)format: [nd_lit] (in condition)match expression (regexp first)format: [nd_recv] =~ [nd_value]match expression (regexp second)string literal with interpolationxstring literal with interpolationregexp literal with interpolationregexp literal with interpolation and once flagsymbol literal with interpolationsplat argument following argumentsformat: ..(*[nd_head], [nd_body..])example: foo(*ary, post_arg1, post_arg2)splat argument following one argumentformat: ..(*[nd_head], [nd_body])format: ..([nd_head], &[nd_body])format: def [nd_mid] [nd_defn]; endformat: def [nd_recv].[nd_mid] [nd_defn]; endexample; def obj.foo; bar; endformat: alias [u1.node] [u2.node]global variable alias statementformat: alias [u1.id](gvar) [u2.id](gvar)format: class [nd_cpath] < [nd_super]; [nd_body]; endexample: class C2 < C; ..; endformat: module [nd_cpath]; [nd_body]; endformat: class << [nd_recv]; [nd_body]; endexample: class << obj; ..; endexample: if (x==1)..(x==5); foo; endexample: if (x==1)...(x==5); foo; endformat: [nd_recv].[nd_mid] = [nd_args]format: BEGIN { [nd_head] }; [nd_body]format: def method_name([nd_body=some], [nd_next..])example: def foo(a, b=1, c); endexample: def foo(a:1, b:2); endformat: *[nd_1st], [nd_2nd..] = ..format: def method_name(.., [nd_opt=some], *[nd_rest], [nd_pid], .., &[nd_body])example: def foo(a, b, opt1=1, opt2=2, *rest, y, z, &blk); endnd_ainfo->pre_args_num (count of mandatory (pre-)arguments)format: [nd_tbl]: local table, [nd_args]: arguments, [nd_body]: bodynd_ainfo->first_post_arg (first post argument)nd_ainfo->rest_arg (rest argument)nd_ainfo->block_arg (block argument)nd_ainfo->post_args_num (count of mandatory post-arguments)###########################################################
## Do NOT use this node dump for any purpose other than  ##
## debug and research.  Compatibility is not guaranteed. ##
###########################################################

����m��g�����������?��9��H�����S����
������
���7��p����4��\����7������K��V��P����)�R�N���@����#����H���;
���k��z��0����2��|��A���
���C���t	��*��
��{����u����!���������������������������M��G����'����N��Y����S�������޾���i���������������Z������(��$W�V�V�<W�V�W�<W�<W�V�V�LW�LW�W�W�W�V�V�V�<W�<W�V�W�W�W�W�W�W�$W�W�W�V�W�<W�<W�W�V�V�W�V�W�V�W�W�LW�LW�LW�W�W�W�W�W�W�W�W�LW�<W�<W�LW�LW�V�LW�V�W�V�V�V�V�$W�W�W�<W�W�LW�LW�W�V�V�V�<W�<W�W�V�<W�<W�LW�W�\W�<W�<W�<W�<W�W�W�W�W�W�LW�W�|W�%li can't be coerced into %liNumerical comparison operators will no more rescue exceptions of #coercein the next release. Return nil in #coerce if the coercion is impossible.Bad return value for #coerce, called by numerical comparison operators.#coerce must return [x, y]. The next release will raise an error for this.can't define singleton method "%li" for %liinteger %ld too small to convert to `unsigned int'integer %lu too big to convert to `unsigned int'integer %ld too small to convert to `unsigned short'integer %lu too big to convert to `unsigned short'no implicit conversion from nil to integerfloat %s out of range of integerinteger %ld too %s to convert to `int'integer %ld too %s to convert to `short'integer %ld out of range of fixnumno implicit conversion from nilfloat %s out of range of long longno implicit conversion from stringno implicit conversion from booleanfloat %s out of range of unsigned long longcoerce must return [x, y]can't copy %li%-.10g0.e%+03ddivided by 0to is given twicestep is given twicestep must be numericstep can't be 0smallinfinite?invalid codepoint 0x%X in %s%u out of char range%ld out of char rangebignum out of char range%d out of char rangeZeroDivisionErrorFloatDomainErrorNumericsingleton_method_added+@integer?nonzero?IntegeruptodowntotimeschrROUNDSRADIXMANT_DIGMIN_EXPMAX_EXPMIN_10_EXPMAX_10_EXPEPSILONNANnan?next_floatprev_float�?�<0C�CaU��N�ڿ�? @�compared with non class/module`%li' is not allowed as a class variable nameuninitialized class variable %li in %li`%li' is not allowed as an instance variable nameuntrusted? is deprecated and its behavior is same as tainted?untrust is deprecated and its behavior is same as tainttrust is deprecated and its behavior is same as untaintinvalid class path encoding (non ASCII)%li does not refer to class/module% li is not a symbol or stringoptional boolean argument is obsoletedcan't inherit uninitialized classuninitialized constant %li% liinitialize_copy should take same class objectcan't convert %li to %s (%li#%s gives %li)base specified for non string valuecan't convert nil into Integer[bug] frozen object (%s) allocatedinspected result must be ASCII only if default external encoding is ASCII incompatibleinspected result must be ASCII only or use the default external encodingcan't instantiate uninitialized classcan't create instance of singleton classstring for Float contains null byteno implicit conversion to float from stringno implicit conversion to float from nil ...class or module requireduninitialized classwrong constant name % liwrong constant name %li%li=%+li#<%li:%p>no implicit conversion ofcan't convert%s %s into %s%s %li into %s#<Class:#<refinement:allocator undefined for %liwrong instance allocationcan't clone %scan't dup %sFloat %.*s%s out of rangeFloat()can't convert nil into Floatcan't convert %s into Floatcan't convert %s into Hashequal?!=singleton_method_removedsingleton_method_undefinedKernelnil?=~!~singleton_classitselfinitialize_dupinitialize_clonetainted?untaintuntrustuntrusted?singleton_methodsprotected_methodsprivate_methodspublic_methodsinstance_variablesinstance_variable_getinstance_variable_setinstance_variable_defined?remove_instance_variableinstance_of?kind_of?is_a?tapsprintfformatNilClassincluded_modulesancestorsattrattr_readerattr_writerattr_accessorpublic_instance_methodsprotected_instance_methodsprivate_instance_methodsconst_getconst_setconst_defined?remove_constconst_missingclass_variablesremove_class_variableclass_variable_getclass_variable_setclass_variable_defined?public_constantprivate_constantsingleton_class?superclassTrueClassFalseClass���l�l�l�l��l�l�l�l�l�l��l�l�l���� � � � �@� � � � � � ��� � � ��to_int!to_ary1to_strAto_symQto_hashato_procqto_io�to_a�to_s�to_i�invalid attribute name `%li'encodes() buffer overrunCan't use both '<' and '>'pack length too big%% is not supportedmalformed UTF-8 characterredundant UTF-8 sequenceinvalid base64@ outside of stringX outside of stringx outside of stringno associated pointernon associated pointerpack(U): value out of rangeformat string modified@XxuPMmbuffer size problem?\x%.2xunpack'%c' allowed only after types %smalformed UTF-8 character (expected %ld bytes, given %ld bytes)unknown unpack directive '%c' in '%s'rb_str_associate() is only for internal use and deprecated; do not userb_str_associated() is only for internal use and deprecated; do not usetoo short buffer for P(%ld for %ld)can't compress negative numbersunknown pack directive '%s' in '% li'nP��3��3��3��3��3��3��3��3��3��3��3��3��3��3��3��3��3��3��3��3��3��3��3��3��3��3�8=��<�b<��>��:�:�X9��;�U;�p3��3��3�H<�7�k6��3�(6�3��3�1��3�5�p3��3��7��3�@7��3��3��3��3��3��3�7�6�%5��:�I@�X9�[?��>�3��3��3�3�8A�@��3��@�@;��3�@��3�k=�1�:5�.9�j��_��_��_��_��_��_��_��_��_��_��_��_��_��_��_��_��_��_��_��_��_��_��_��_��_��_��Z�[Z�[Z�+W�6W�_�Y�
Y�[Z�JU��_��_�V�\�EU��_��]�V��_�V��_�Ca�JU��_��^��_�[Z��_��_��_��_��_��_�[Z�[Z�+W�6W�^�Y�\�[Z�JU��_��_�V�E[�V��_��[�V��_�V��_�E[�V��W�sV�g��f��g��g��g��g��g�"f��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g�g��g��g��g��g��g��g�g�ke��g��g��g��g��g�d�f�?f�Gg�Gg�Gg�Gg�Gg�e�Gg�Gg�Gg�Gg�Gg�Gg�Gg�Gg�Gg�Gg�Gg�Gg�Gg�Gg�Gg�Gg�Gg�f�Gg�Gg�Gg�Gg�Gg�Gg�f��d�Gg�Gg�Gg�Gg�Gg�d�          0123456789abcdef� �0123456789ABCDEFABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_too few argumentssSiIlLqQsSiIlLqQunknown encoding name: %s%s is not ASCII compatibleStack nowinvalid hex escapeempty expressionvoid value expressiontoken %s (nterm %s (%s Can't set variable $%ldCan't set variable $%csyntax errorsyntax error, unexpected %sinvalid multibyte char (%s)invalid value for %s: %sunixdosutf8-macinvalid source encodinga variablea constanta literal::vtable_pop: unreachableCan't assign to nilCan't assign to trueCan't assign to falseCan't assign to __FILE__Can't assign to __LINE__Can't assign to __ENCODING__dynamic constant assignmentunused literal ignoredstatement not reachedduplicated argument namestring literal in conditionregex literal in conditionrange literal in condition$~invalid Unicode escapeunterminated Unicode escapeInvalid octal digittrailing `%c' in numberFloat %s out of range$Fchop!Starting parse
Stack size increased to %lu
Entering state %d
Reading a token: unknown regexp option%s - %sincomplete character syntaxunknown type of %string__END__Now at end of input.
Next token isShifting   $%d = END in method; use at_exitinvalid local variable - %liblock given to yield-> $$ =Error: discardingError: poppingmemory exhaustedCleanup: discarding lookaheadCleanup: poppingSCRIPT_LINES__warn_indentparser"end-of-input"$undefinedkeyword_classkeyword_modulekeyword_defkeyword_undefkeyword_beginkeyword_rescuekeyword_ensurekeyword_endkeyword_ifkeyword_unlesskeyword_thenkeyword_elsifkeyword_elsekeyword_casekeyword_whenkeyword_whilekeyword_untilkeyword_forkeyword_breakkeyword_nextkeyword_redokeyword_retrykeyword_inkeyword_dokeyword_do_condkeyword_do_blockkeyword_do_LAMBDAkeyword_returnkeyword_yieldkeyword_superkeyword_selfkeyword_nilkeyword_truekeyword_falsekeyword_andkeyword_orkeyword_notmodifier_ifmodifier_unlessmodifier_whilemodifier_untilmodifier_rescuekeyword_aliaskeyword_definedkeyword_BEGINkeyword_ENDkeyword__LINE__keyword__FILE__keyword__ENCODING__tIDENTIFIERtFIDtGVARtIVARtCONSTANTtCVARtLABELtINTEGERtFLOATtRATIONALtIMAGINARYtSTRING_CONTENTtCHARtNTH_REFtBACK_REFtREGEXP_END"unary+""unary-""**""<=>""==""===""!="">=""<=""&&""||""=~""!~""..""...""[]""[]=""<<"">>""::"":: at EXPR_BEG"tOP_ASGN"=>""(""( arg"")""[""{""{ arg""*""**arg""&""->"tSYMBEGtSTRING_BEGtXSTRING_BEGtREGEXP_BEGtWORDS_BEGtQWORDS_BEGtSYMBOLS_BEGtQSYMBOLS_BEGtSTRING_DBEGtSTRING_DENDtSTRING_DVARtSTRING_ENDtLAMBEGtLABEL_ENDtLOWEST'=''?'':''<''|''^''&''+''-''*''/''%'tUMINUS_NUM'!''~'tLAST_TOKEN'{''}''[''.'',''`''('')'']'';'' ''\n'$acceptprogram$@1top_compstmttop_stmtstop_stmt$@2bodystmtstmt_or_begin$@3$@4command_asgnexprexpr_valuecommand_callblock_commandcmd_brace_block@5fcallmlhsmlhs_innermlhs_basicmlhs_itemmlhs_headmlhs_postmlhs_nodecnamefnamefsymfitemundef_list$@6reswords$@7arg_valuearef_argsopt_paren_argsopt_call_argscommand_args@8opt_block_argmrhs_argmrhsprimary@9$@10$@11$@12$@13$@14$@15$@16$@17$@18$@19@20@21@22@23@24$@25@26primary_valuek_begink_ifk_unlessk_whilek_untilk_casek_fork_classk_modulek_defk_endif_tailopt_elsefor_varf_margf_marg_listf_margsopt_block_args_tailopt_block_paramblock_param_defopt_bv_declbv_declsbvar@27@28@29@30f_larglistlambda_body@31block_callmethod_call@32@33@34@35@36@37case_bodycasesopt_rescueexc_listexc_varopt_ensurestring1xstringsymbol_listqwordsqsymbolsqword_listqsym_listxstring_contentsregexp_contentsstring_content@38@39@40@41@42string_dvardsymsimple_numericuser_variablekeyword_variablevar_refvar_lhsbackref$@43f_arglist@44opt_args_tailf_bad_argf_norm_argf_arg_asgnf_arg_itemf_argf_labelf_kwf_block_kwf_block_kwargf_kwargkwrest_markf_kwrestf_optf_block_optf_block_optargf_optargrestarg_markf_rest_argblkarg_markopt_f_block_arg$@45assoc_listassocsoperationoperation2operation3dot_or_colonopt_termsopt_nlrparenrbrackettrailertermvtable_add: vtable is not allocated (%p)regexp encoding option '%c' differs from source encoding '%s'block argument should not be givenboth block arg and actual block givensyntax error, unexpected %s, expecting %ssyntax error, unexpected %s, expecting %s or %ssyntax error, unexpected %s, expecting %s or %s or %ssyntax error, unexpected %s, expecting %s or %s or %s or %sencountered \r in middle of line, treated as a mere spacepossibly useless use of %s in void contextlocal->used->pos != local->vars->posassigned but unused variable - %listring literal encodings differ (%s / %s)circular argument reference - %liidentifier %li is not valid to getCan't change the value of selfidentifier %li is not valid to setduplicated key at line %d ignored: %+lishadowing outer local variable - %liformal argument cannot be a constantformal argument cannot be an instance variableformal argument cannot be a global variableformal argument cannot be a class variableformal argument must be local variablemultiple assignment in conditionalfound = in conditional, should be ==integer literal in conditional rangenamed capture conflicts a local variable - %liunexpected fraction part after numeric literalinvalid Unicode codepoint (too large)Invalid escape character syntaxnumeric literal without digitscan't find string "%s" anywhere before EOFunterminated regexp meets end of fileunterminated string meets end of file`**' interpreted as argument prefix`**' after local variable or literal is interpreted as binary operatoreven though it seems like argument prefix`*' interpreted as argument prefix`*' after local variable or literal is interpreted as binary operatorembedded document meets end of file`<<' after local variable or literal is interpreted as binary operatoreven though it seems like here documentinvalid character syntax; use ?\%c`&' interpreted as argument prefix`&' after local variable or literal is interpreted as binary operatorambiguous first argument; put parentheses or a space even after `%c' operator`+' after local variable or literal is interpreted as binary operatoreven though it seems like unary operator`-' after local variable or literal is interpreted as binary operatorno .<digit> floating literal anymore; put 0 before dot`:' after local variable or literal is interpreted as binary operatoreven though it seems like symbol literal`/' after local variable or literal is interpreted as binary operatoreven though it seems like regexp literalunterminated quoted string meets end of file`%%' after local variable or literal is interpreted as binary operatoreven though it seems like string literal`%s' is too big for a number variable, always nil`$%c' is not allowed as a global variable name`@' without identifiers is not allowed as an instance variable name`@@' without identifiers is not allowed as a class variable name`@%c' is not allowed as an instance variable name`@@%c' is not allowed as a class variable nameInvalid char `\x%02X' in expressionReducing stack by rule %d (line %lu):
else without rescue is uselessBEGIN is permitted only at toplevelcan't make alias for the number variablesclass/module name must be CONSTANTclass definition in method bodymodule definition in method bodymismatched indentations at '%s' with '%s' at %dunknown literal type (%d) passed to negate_litrest argument must be local variableblock argument must be local variableduplicated block argument namecan't define singleton method for ().can't define singleton method for literalsunterminated here document identifier5`�#`�`�5`�5`�5`�5`�5`�5`�5`�p`�p`�p`�p`�``�5`�5`�5`�P`�P`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�5`�p`�o�$n�Ho�jo�Yo�{o�|w��v��v��v��v��v��v��v��v��v��v��v��v��v��v�v��v��v��v��v��v��v�,w�,w�,w��v��v��v�,w�,w��v��v��v��v��v��v��v��v��v��v��v��v��v��v��v��v��v��v��v�w�w��v�<w�Lw��v��v�v��v�w�lw��v�\w�v�v��u��u��u�v�v��u�v��u�v��u��u��u��u��u��u��u��u��u��u��u��u�v��u�v��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u�v��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u��u�v��u��u��u��u��u�v�v�v��u�v��u��u�v�v�v��u�v�(��8��H��X��������������h�������L��܀�L��L��L���L��L��L���L����ȃ����@��@��@��@��@��@��@��@��@��@��@��@����(���Ą�L���L��L��L���L��L��L��d��L��,��H���X�����h�����x���8��������������������������������������������D��D����D����������������������������l��l���������������ȑ�`��`��`��`��`��`��`��`��o��o��o��o��o��o��o��o��o��o��o��P��o��o��o��o��o��o��o��o��o��Ȧ�o��o��o��o��o��o��o��o��o��o��o��o��o��o��o��o��o��o��o��إ����o����ȥ�o��o��o��o��o��o��o���o��o��o�����o��@��o����k��'��'��'��'��k��k��k��'��'��k��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��k��k��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��k��k��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��k��k�������������������������������������$����������������������������������������������������̽�����������$������mT�S�yS�FS�.S�R�R�����t��s��s�s�u��t�6u�)V�am�;�x;�B;�;�:�i:�a:�)@�?�@�=�
A�?���<�<�Q>�B=�=�	&�%�q%�*%�%���Y\�\����[��[�U�bU���U�������T��T�C�C�yC�@C��B�B�6B�rG�)G�F�F�zF�;F���2F����E�H�zH�DH��G�XI��H�I�W3�):��9���9�9�k9�49�9�9��8�8�8�8�t8��7�p7�+7�.6��5�5�5�7�z6�6�5��4�4���4�M4�4�������4�3�����3���x<�j<�"<�<�<�<�;��;��;��[���������������}�s�i�_�U�K�A�7�-�#��01�����������������������������������������������������������������������������������/�0�i.��/�.�.�-�#-��,�y-�,�|+�`*�D*�(*�*��)��)�)�m)�U)�=)�!)�)��(��(�(�(�y(�](�A(��1��1�/��1�1�r1�V1�:1�2�2�t2�2�2��"�����������������d����6�����������\�L�KL�K�����K�jK�6K���������������������K��J�PJ�BJ�;J�%J�J�J�I��I��M�M�}M�JM�6M�M��L��L�N�cN�N�N���N��N�O��A�E�E�ME�9E�/E��D�D�JD�6D�p�n�?n��m�m�um��q�q�%q�p�r�r��Q�Q�u�qu��u��]�Y]�$]��\�\��v�v�#w�bs�?v�
v�tv�S$��������������#����#�����#�#�}#�f#�2#��"�~"�D"��!�!�-!� � �u �\ �C �, �$ � �����t�O������a������8���'��
������������p�D�'��E�<�4�+�����g�/��S�C�&������&�	����Th� h��g�ud��f�ff�9f�e�b�����Oa���a��`���e���|e�����@e���e�����e�e��c�Db��d��d�R�R���aR�.R�%R�R��_�_�_�y_�p_�i_�Q_�J_�	_�_��^��^�^�^�^���]�`�`�R`�/`�e`�'�v'�B'�'���&����������&���z&�������������������p&�f&�\&�R&�XU�NU�DU�T��j��j��j�����j�k��k��k�k�6l�l�bl�\�Xi�Ai�9i�#i�h��h�h�h�j��i�i�qi�uj�*j�j��P��g�~g�%g�g�Y�Y��X����X�X�qX�W���UW�$W��V�yV�1V�tk�lk�Bk�:k�[Z�����HZ�Y�Y�`Y�XY�7Y�/Y�l[�����#[��Z�����Z�[�[��l��l�}l���hu���dP�P�O�p�[���������������������������������������������������p�����j�j�j���j�j�j�j���%��������j�j�j�j�j�j�j�j�j�j�j�j���j�j�j�j�j����e����?���3��A���U���������;��N�����������������������u���T��%����j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j���U�����^�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j���������|��|�6�6�|�|��6��W���=�����������������|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|��|�|���6�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|��f��N��N��N��N��N����N��N��N������N��N��N��N��N��:������������Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ�Ѕ��m����������y������Ȧ������������������	���������q������������ˋ�ˋ��ˋ�ˋ�ˋ�ˋ�ˋ���ˋ�ˋ��ˋ��ˋ�ˋ�ˋ�ˋ��|��ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ�ˋ���ˋ�ˋ��ˋ��ˋ�ˋ�ˋ�ˋ��|��������������ޛ�������ޛ�ޛ������������333333333333333333333333333333333333333333333333333333333333333333
3333
3
33333333333333333
333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333%s mixed within %s source���@�� !"#$'-./0123456789;<=>@ABDEX[\^_adefghijkl��������������������������������(*+,-./01S^�	

 !"#$%&'-./0123458DEFGHIJKLOPSTUVabwxyz{|}~����������(*':X[abcf���������-.01QR����������X6�X�� ����8/[������^����Q^�PQ^.X�����-.1��679�) ����,�����W\]()*+,%&����t�[a�tFGHIJKLMNOPQRUVuwxyz{|}~�W���������W]X����-.148UX���-.1�!"#$12348��/NW�VYY��8���tZ��^W��YY���XY����Q^�Y�6AB�����W�Y����W]YY����[�[�[X8,���W���?mop!p!pC!pp!p?pppp?pF���������`��a�����������������������������������������458�TU�458�T��
�\���W	8W���48�x2\W���O�V48T�����r��a��Q48�48RY�Y��Y�����TT��Y��Q��48�4846789:F[abc{~��689:;<=>?BCDEHIJKL#"�!����Ny��^�����Y��t,XYY��XZYY��
�^�
��\�	��48�48��\3�48�����45����^,����YYZYYQ���Y[�Z[a���:8�t�7��M^4�M�74�74$679'1���;=>@ADFGJLX����a���v�������Y��������^�^��������Z�\��Z�Y8�8���Y�Y���:�Y���6<HJ?DL=EJ;=%�yt��X��MM�����
��
����Z
^�	^���������\�Y�\�Y��a��q��7�7M�7�77&y��GJ8W@D=FJ=4��9�X��-.1������	
��4���:��=J==�����48M������X8W���������
�7�777n=J==�48�48����=�����Z7=�7B9bQLdIfjjBI3UEYQ\�A�7E]^_��`e�\��56XY\��
o5{\
�3���	A�m�W�56���NFWt�3�7�?L��?BD��%&�9�%�Q�
8WyXYW�\]^_���|}~��
p����pF`�
t����q�����t
�"$�&��*f������������������
��������+,�x����H�r�6789qr�|T���D����I�����G�G�6789�;<�S�R���������Y�F�kl�����G�y��Z�����5m�:�W%&klWt56W�}�WD��zeI8m����W�Fe������?56789:;<�������D�FG�I���F�WQ�S������tW]��bmtoe�gZ��klg��4:6789���fz�WF���Y��~�	����4�6789���Y�bc	tWW�������?���F��W���{Wi�0?���i�Y8�W�W����W�����������mWo�t�!W@A���[���mWop=N?3��?�����W����cV���;G��tW	���GS���{��`��YSuC�m�op[1jD��vwI94{g}88`t��./��p�=�?pY|ppF�G����[|`����S?UVY`�Ht�?�q8�6���T�����ABW�t`uY�W���|�����m�op�r���mopt�����Y�W��������tY�������?���C
�t����Y�)
��Wt�������B����t� ��t��?Pm?o%44������4��F��+,�4PZv\MmYoUVcTU�YXmYop3m�op��K��N�tyBtt��t�C|}~�)����XY(�\�4��

��ZY��yYaB�d	���y���M��Pqr8TU�tX�t8�
����4�6789:���67�9����F��ABn�;<=>��������[����abc]��_���4�6789����*e{3�~�7;`������������������[�Qa��������������]^_`�������������4�6789����������4F6789�������������UV������������[56789:;<����6��[��D��F��aI()*+,yz{|}~�������������W�����e��g������kl�����������i������01z����56�����������������BC�"�����������������������������������4��6789:��F4�6789����F����
�UV���������������������������[����������abc����5�������:����������{|}~�FG���{���~�����������������������������������������g������������a���������������l"4��6789:"�����������������F��������4"6789:=��?������������[GF��������bc��������S��UV������������[���������abc{���������������������������u�����������|{����~����������������������D�������IJKLMNOPQRSTUVWXYZ[\]^_`abc	e������������������������������������������������������������������������������������������=�?��������������������������������U������������������������������������������������������������������������|����������������������������������4�������������������������B������������������M����P������TU���X�3�����7���������������������FGHIJKLM��OP��Q����UV����������]^_`�����C������G���3������7��������S�wxyz{|}~����a����d������Q3������������qr��]^_�������������������������)��������������������4�����]��������������������������������M�����������TU����X���������������������������������������������������3�����������������������������������������������������������������������������������������������������������5�������:���������������������FG������������������������6�����:������������B������g����������5��������:����������W����������FG������������������hi��5�������:����������������������F��gI������������������������	
���
������������g������������������%&��()*+,��������������������������������������������������������������������5��������:��W�����������������F��	������������������nFGHIJKL���OP������UV����g���������������������������������=��?��	��������wxyz{|}~�����������U��������������������������������������������������������������=��?��������|�,��������������������������U������������=��?��FGHIJKLMNOPQR����UV������U�������������|��������������������������������u��wxyz{|}~�|����������������������������������������������������������������������������=��?��������������������������������������U����������������������������������)��������������������4���������������|�����������������������������M������������TU����X����������������)��������������������4��������������������������������������������M����������4TU����XFGHIJKL���OP�������UV����M����������TU���X��������������������������������wxyz{|}~������������������������������������������������������������������������4��������������������������������������������M����������TU���X����������������������������������������������������������������������45����8����������������������DEFGHIJKL����OP���STUV�������������������ab�������������������������������������wxyz{|}~���������������������������������������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl��������������	
����
�����������,��������������%&��()*+,����������FGHIJKLMNOPQR����UV������FGHIJKLMNOPQR����UVW��YZ����������`u��wxyz{|}~���n����q����tuvwxyz{|}~������������������������	
����
����������,��������������������%&��()*+,������FGHIJKLMNOPQR����UV����������FGHIJKLMNOPQR����UVW��YZ��������u`wxyz{|}~�������n����q����tuvwxyz{|}~�������������������������	
����
��������������������������������%&��()*+,������FGHIJKLMNOPQR����UV����������FGHIJKLMNOPQR����UVW��YZ��������u`wxyz{|}~�������n����q����tuvwxyz{|}~�������������������������	
����
��������������������������������%&��()*+,������FGHIJKLMNOPQR����UV����������FGHIJKLMNOPQR����UVW����Z����������`wxyz{|}~�������n����q������uvwxyz{|}~������������������������	
����
��������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n����q������uvwxyz{|}~������������������������	
����
����������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW��YZ����������`��������������������������n����q����tuvwxyz{|}~�������������������������	
����
����������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n������������u��wxyz{|}~�����������������������	
����
����������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n����q������uvwxyz{|}~�������������������������	
����
����������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n������������u��wxyz{|}~�����������������������	
����
������������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n������������u��wxyz{|}~������������������������	
��������������������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW��Y����������������������������������������n����������tu��wxyz{|}~�������������������������	
����������������������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW��Y����������������������������������������n����������tu��wxyz{|}~������������������������	
���������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������
�������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������
�������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������
���������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl��������������������	
������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������������������������������������ !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl��������������������������������������������������������������������
������������������ !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl��n������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��abcdefghijkl������������������������������������������ !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl����������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl���������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl����������������������������������������������������������������	

������ !"#$%&'����������-./0123456789��������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�������������������	

������ !"#$%&'����������-./0123456789��������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~������������������	

������ !"#$%&'����������-./0123456��8����������������������DEFGHIJKL����OP����STUV��������������������ab����e����������������������������������wxyz{|}~������������������	

������ !"#$%&'����������-./012345����8����������������������DEFGHIJKL����OP����STUV��������������������ab����e����������������������������������wxyz{|}~������������������	

������ !"#$%&'����������-./012345����8����������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~������������������������������ !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl������������������������������������ !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl���������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��abcdefghijkl����������������������������������������� !"#$����'����������-.��0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��abcdefghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��ab��defghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_����bcdefghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��ab��defghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_����b��defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��a����defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��a����defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������U����X����[\��^_��������defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl����������45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������abFGHIJKLMNOPQR����UV������wxyz{|}~��������������������������������u��wxyz{|}~��������������������������������w.����H�?G�G�19�?����4jxm������5�fm�3�4�fhh��hV�V[w����u�	M|��n�����19mN��-S�����
�/=����J�������zVjq����N=@�����������%�;<��z��Y�<��������d^�s~~�����_`abcB�<�'?)��]��G��D�b+���?E�uI�����w������ef�:}������>1��2�����4�����������>��������|����O������u��z�m�����ff��z1�2��VW8
��1�2�V�hhhh���������_�1�2���V�u@A��'�����
V�V������4��G���4����;<hh�������Q���\^J��B���������������PM������V����V����a�c����V����X��J���������������J���������V�����t����������7������������w���abc��&���G�g����������������������7���N��J����������m���7�fV��1�2����mV��'��������'��7��������������������N�������7�����������F������M�C������R����������N��N�N�������������GH���K���L������'��ST����V�V��w���
���;=@�G�CE���V���C7��e�2�E3�5�7IZ1o\�������z��|��qrxV�[ce�d��hah����������nLO�O�O�
�����h�������e��������V���V�V�W����������1����ST��'������L�L���1����VLL��LVJ(h�:���WX����������L�����MiA�ko����L!#$%��������_`abc�����LL)nL��Vp�����s���B��������}��V���e�VV�V{�����	�����������O��� ��!��
./qq)*+,�)�����"�0~����qHl��7V,�$����LfV���q��I#��VVx�vXL�LL�LVL�L�O���LLuVVLV�V����zsz�J������y��WXLLLLLLLL7�LL�L6789:\]^_`abc����LLLLq ��L��)))0)/0z(00qLL,`�q,q,L������J�j�����pLWXL����qLq^_`abcq)�)�)0)000�,,q,,�����/�)������0�����,�����LL�L���LLL�q����qLL���� !"#$%&'()*+�LLLLLLLL]_qLqLLb���L]_�qv{��q�rrL�L�LLLLqLqrquuJKLMNOPQSTWXSSv���q��qu�LZ[\]^_`abcL��SLL��w��LqLrLLL�ttqrqqqL�b9<>DF�rtrru�gq<>DFqSu�qqururqrSSSq�q�qq�ruu�u��StSSu��������t��������rtSt����r��������������utt��utS��J��������OPS�����WXt�������������rrZ[\]^_`abcruurt�tuSSJKLMNOPQRSTUVWXSrurrYZ[\]^_`abcS
�#ruruuttSSStuu�rStSrrrr�uttt�uSuuuJKLMNOP�STrWXStrSStSrr�rZ[\]^_`abc�urrurruu�StuSSStuuttStuuSSSS,-.�����������t����t��ttt�������������tttt��	

 !"#$%&'()*+,-./0123456789:;<=>?@����������������ABC���������������������������JKLMNOPQRSTUVWX�������������������������������������YZ[\]^_`abc��������������������������������������������������������������������JKLMNOPQRSTUVWX������������������Y�Z[\]^_`abc������������������������������������������JKLMNOPQRSTUVWX������������������Y�Z[\]^_`abc�������������������������������������������������������������JKLMNOPQRST����WX������������������������������������Z[\]^_`abc�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������O�����O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O���O�O�O�O������������������������������������������������������Y�����Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y��Y�Y�Y�Y�Y�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	������
��
� !"#$%&'()*+,-./0123456789:;<=>?@ABC�����	��
����
� !"#$%&'()*+,-./0123456789:;<=>?@ABC�����	��
����
� !"#$%&'()*+,-./0123456789:;<=>?@ABC�����	��
��
� !"#$%&'()*+,-./0123456789:;<=>?@�	����
ABC
����� !"#$%&'()*+,-./0123456789:;<=>?@�	
ABC
����� !"#$%&'()*+,-./012�456789:;<=>?@ABC�������	

� !"#$%&'()*+,-./0123456789:;<=>?@ABC�������	

� !"#$%&'()*+,-./0123456789:;<=>?@ABC��	����

 !"#$%&'()*+,-./0123456789:;<=>?@ABC�������	��

� !"#$%&'()*+,-./0123456789:;<=>?@�	
ABC
����� !"#$%&'()*+,-./0123456789:;<=>?@��	
ABC
����� !"#$%&'(�)*+,-./01��456���89�;<=>?@	
A�C
� !"#$%&'()*+,-./01��45689:;<=>?@	
ABC
12 !"#$%&'()*+,-./01��45689:;<=>?@	
ABC
� !"#$%&'()*+,-./0123456789:;<=>?@	
ABC
�� !"#$%&'()*+,-./0123456789:;<=>?@ABC�yz{|}~������������������������������������%&�(�������������������������������yz{|}~�������������������������������������������������������������������yz{|}~�������������������������������������������������������9�������������yz{|}~������������������������������������������������������9�������������yz{|}~������������������������������������������������������������������	�

������ !"#$%&'()*+,-./�45689:;<=>?@	

������ !"#$%&'()*+,-./�45689:;<=>?@	

	 !"#$%&'()*+,-./0123456789:;<=>?@	
ABC
� !"#$%&'(�)*+,-./01��456���89�;<=>?@	
A�C
 !"#$%&'()*+,-./0123456789:;<=>?@	
ABC
������ !"#$%&'(�)*+,-./01��456d��89�;<=>?@	
A�C
������ !"#$%&'(�)*+,-./01��456��89�;<=>?@	
A�C
������ !"#$%&'(�)*+,-./01��456��89�;<=>?@	
A�C
������ !"#$%&'(�)*+,-./01��456d�89�;<=>?@	
A�C
������ !"#$%&'(�)*+,-./01��456�89�;<=>?@	
A�C
� !"#$%&'()*+,-./01��45689:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��456�89:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��456689:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��45689:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��456d89:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��45689:;<=>?@	
A�C
� !"#$%&'()*+,-./01��45689:;<=>?@	
A�C
 !"#$%&'()*+,-./01��45689:;<=>?@	
ABC
������ !"#$%&'()*+,-./F456G89:;<=>?@	

������ !"#$%&'()*+,-./p3456789:;<=>?@	

������ !"x$%&y()*+,-./z{�45689:;<=>?@	

������ !"x$%&y()*+,-./{�45689:;<=>?@	

������ !"#$%&'()*+,-./F45689:;<=>?@	

������ !"#$%&'()*+,-./��45689:;<=>?@	

������ !"#$%&'()*+,-./��45689:;<=>?@456�����������������������������Y5Z������������������������������h-i������������������������������k5l�������������������������������-��������������������������������5��������������������������������-��������������������������������5��������������������������������-��������������������������������-�������������������������������-������������������������������5������������������JKLMNOPQRSTUVWX�������������YZ[\]^_`abc�������������	�����������od����K���r�����K�V�����l)���>����������������������8����������7�����������%@�����b�������������������������������}���������������������
�&��5��m��>�V�����}�4�y
�g���#/��s����������'������b����6�����m�
�L���c������������"�����$����������\��������0#0#TVax l�S����"|�#0#�i�0�!��G�:�-�$�EF;�$$����$l%�%�Z��_������������������������������������������������������������������������������������������������������0#"�0#0#0#�0#�FF��8�`�v G���n�����V�$e�M[r���w�G����4�V�i�0����$�zR�F�R��1|L&��	������������W��3�97��������$$$$4$$���0���� �V�	� 0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#A
�j'�!��$$i�a����2JM~�$/�r�����7��0<]��������'���#�#��6���M0#0#���
(�Z(0#0#�������()�\�����c�0#�-
(Z(0#0*���>:�!� ��x ���MQ��RL&�(��(������������-��S�����X�0#�����������0#�_d���L&f���h�������	4���*��vv�??�����6p
�g����������R�n??�`!�`J)��)�!�Q�i����)��'�$s�����4�Fc0#��0#F�GH�
�Ux��������$Fy���F�����RL&RY���'�������������h�������0#�����������p�����������r���!�RL&�#0#��#�#�0���#�#�0���H"7�X�7�����~�X��t�$i�$�Y����\h�h��Z��0#����0#0#�0#0#�\�������t������0#h��o�����h�����������������&��������e�rf0#�RF0#�F�F����#�F�F��_���t�$�������"��?�i������i���F0#���������B����������������&h�S|o��h�������F�F,'������������&�������s�
�����r�h�����������|��:*���"�����]�������R���������
�$�)�'��Fh���24��������Q�*��*�X���
���������9�@�������
�����������DEF�:;��HIiJK��MNOPQ�R�|}����`/�T�����������UgukTlU�����UW���WXYZ[\]^_`�=�QRt	
��%��&���
r��Cab��80A��D��K��cdefghi&�j*kl(," $�����"m!nop��s��P���t���~����*+����-.������V
��vy2�3����>o[\]TUVYWXZOPQR*kk
]_��^�����
"vvT���������i	!,/76HLV4�8;i83������	
<�����������������������������������������sut�����������������������������xz|vwy{��
Fv	
vWGEkDv�Ckl�OP*-���'ikJkoo�oUkRS\]d5�������3��rstj���=2��XPM�v�5ijih	
noq	
H�������stSJRhg4�}Z'\	�v�k,k�vv�k12.��k%
jI!#(qp�q�)Vc�ZU�v�*�������������������u01vv:>v"+kNY.-�
*���������������k����������`bac�k`bacv`_'�v�@EnopC�v�L`a#�)��Yv`ak`aX+m���0� ���KkoS`bk`a0-,+.6?J@NMI*�)�/1248=vBvGL��������k��vWQ�A��?v^vv�vavc9b<?d&k`anorkk**��9�~[
�vk$�[^ulnkjk�"7QA%K'O�������k2|:;vvE||z�O�(�'�B�n%�&�@���v�vfd>�F�ITkM����/ks3C5>vPH2����9xy������$��g�67vADKkvqm�� &#(�D{||'�<v|F||�k��;�efm�:=���to�d&w����l�v�vvGr��!$�||||�dkk`a�eBNp�}���|~		���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	



  !"!#$%&!''''())))*++,,,,-----.......//001123224546666778888888888888889999::;<<==>??@@AABBCCDDEFGGHHIIJJKKLMMNONPPQQRRRRSSSTTTTUUUVVWWXXYZ[[[\\]]^������������ (06;:OOW_ju}��������������%12:BJRUabefrq��������������	#+4<EMV^ijt|��������������)7CLOW_ijklq|}��������������������������������������������������������������������������������� *6DRZbjrz����������������				&	.	6	6	?	I	O	[	\	`	h	r	|	}	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	



%
4
>
?
@
A
B
C
D
E
F
G
H
Q
P
l
l
u
y
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�

$$$/:CEB��������������
#)/5;AGMSYcinov{~����������������




#
(
-
1
5
9
=
A
I
M
Q
U
Y
]
a
e
i
o
p
v
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
%1?IHYXhqp��������������� #$,/@ABLVq��������
#,6?JQ\cry�������������	 !"%01<=>?BCDEFIJKLMNOR_iq{|������������������������	#-9:AJSfm{���������������+,/<GHK\`jtt��������������������	����������W��^������]�����������/�����������W��^������]�����������/��������-�����-66��-6B��-6A������(����)����*����+����,���0���������t���0Y������ZY�����4Y�����8Y����W8Y����W4Y���1Y����t����t�������t����t�������%����&���'X���������������������VT�����`������S�������������T�����T�����WT����WT���� ������������������[�Y�����[�Y����������a����a������a���a����a���a�����a��a�������[�Y�������������������-��.�����Z����4���W4����8���W8��X8��1��-��.�����Z����4���W4����8���W8��X8��1��4��8��X�������W���4��8��5�����������(�����*�������������y��z��{��G��H��I��O��P��w��K��x��L��J��U��V��|��}��~��a�������F��b��������D��E��S��T�����1��2��3��/��0��-��%������������.��������
��	��$����������"��'��&����������!�� ��
��#�����������������t����t�,���0Y���0Y�,������ZY�����4Y�����8Y����W4Y����W8Y���X8Y���1Y����Q����R����|����}����~�������������F����,F���D���E����y����z����{����G����w����K����x����L����H����I����J����O����P������������U����V����M����N�����.X�����u�Xv���������^���[����Q[��Q[����Y��^�����^�����������Q���Q����������Q�����Q������������c�������^�����a����������a����������������a���a�������������������/��1��5������������\�Y������\���Y��[�����W8��X8��^����_P�������Y���Y������.X���Y��'��Y��'�Y���������d�����������������������������������������������W	����W	���������������������2����������U��\�������������������4���������NV���4�����������������������������������
��\��
��\
��\�������������^�����������:��[�Y���������������a:����a:������a����a����a:��a:����a��a����A�DM��AM��DM��L��������=�G�J���=�G�J�=���=�G���=�G�=���=�J���=���=�J�=���=���G�J���G�J�=���G���G�=���J���J�=������^�����y�y��N��y��y��X��X��X����������4��9�������������������8����8��q�����
�������
������VT���VT���VT������������T������WT����WU������������W��� ��� �����Z��������������
�����
�����	��
����^��������^��Z���^��	���^��+��(��*����@������fp��gp��h C��i�p��ip�������!��!��k�p��kp�������j�p��jp��l�p��lp����?�����?�����!����!���� !��?����o"'����������m#$%&�n��6��7��9��1��e)�����7��6��9��ep��,���,��;��<��=��>��4��7��6��8��9��"��!��#��$��2��1��3��-��.��-��.��A��B��\����x3�\��\���8Y����58\��B�DM��BM��DM��L���6����=�H�J7��=�H�J�=7��=�H7��=�H�=7��=�J7��=�J�=7��=7��H�J7��H�J�=7��H7��H�=7��J7��J�=7��6����8��7��6��9��9��4��:��;��[�Y��<��=�<��:��>���>��>���>��@��A�@��?��B�?��F��b��C4��C��;t���;t���F��G�F��E��H�E��~��a��I4��I��{��c��K4���L��^��/�����O�Y��^��Q[��R��Q�R���Z���:���fr���b���4��8��5��4��8��5�����4��5��������W����]�������X���X�����������������\��]�����
#&(*.134:;@DHLOSW[_chjnry�����������������������������������

"')-/36:<@BDIMQUY\^`bgkoswz|~��������������������������������������������������������������	
!#%')+-/15;?ELRX^dimquy}����������������������������������
$&'*-0247;@BDHMPRTVXZ\^`bdfglmqrsy}���������������������������������	 "$&(*,.02468:<>@CEGIOQTVXZ^`dfkrv|��������������������������������	
!"(+06<?@FGMQRWX]`bghnou{}����������������������������������������������
"$')+-/13579;=?ACEGIKMOQSUV[^bcglortwx��������������������������������������
!$&().0359=@EHJLNPRTVXZ\^`acdfilmoqsuwz����{��~|�}�v�xtwu��z��y��QRDEFGUVLKHIJOPSTMN	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCWXYZ[\]^_`abcdefghijklmnopqrs��getpwnam_rcan't find user for %sgetgrnam_rcan't find group for %stoo many groups, %d maxpid %ld stopped SIG%s (signal %d) stopped signal %d exit %d (core dumped)-c/bin/shduplex IO redirectionwrong exec redirectnegative file descriptorfd %d specified twicesigfillsetpthread_sigmaskpthread_setcancelstategetresuid(2)getresgid(2)sigemptysetsigprocmaskunexpected unit: %liinvalid resource value: %li#<%s: invalid resource name: %ligetrlimitsetrlimitclock_getresgettimeofdaygetrusageclockclock_gettimepgroup option specified twicerlimit_wrong exec rlimit optionchdir option specified twiceumask option specified twiceuid option specified twicegid option specified twicewrong exec redirect actionwrong exec option*?{}[]<>()~&|\$;'`"
#wrong first argumentInsecure PATH - %schild fd %d is not redirectedsetpgiddup2fcntl(F_GETFD)fcntl(F_SETFD)cannot close fd before spawnsetgidsetuid/dev/nulldaemonfork(2)$?$$forkexit!sleepabortProcessWNOHANGWUNTRACEDkillwait2waitpidwaitpid2waitalldetachWaiterStatusstopped?stopsigsignaled?termsigexited?exitstatuscoredump?ppidgetpgrpsetpgrpgetpgidgetsidsetsidgetprioritysetpriorityPRIO_PROCESSPRIO_PGRPPRIO_USERRLIM_SAVED_MAXRLIM_INFINITYRLIM_SAVED_CURRLIMIT_ASRLIMIT_CORERLIMIT_CPURLIMIT_DATARLIMIT_FSIZERLIMIT_MEMLOCKRLIMIT_MSGQUEUERLIMIT_NICERLIMIT_NOFILERLIMIT_NPROCRLIMIT_RSSRLIMIT_RTPRIORLIMIT_RTTIMERLIMIT_SIGPENDINGRLIMIT_STACKeuid=egid=initgroupsmaxgroupsmaxgroups=CLOCK_PROCESS_CPUTIME_IDCLOCK_THREAD_CPUTIME_IDCLOCK_REALTIME_COARSECLOCK_REALTIME_ALARMCLOCK_MONOTONIC_RAWCLOCK_MONOTONIC_COARSECLOCK_BOOTTIMECLOCK_BOOTTIME_ALARMcstimecutimeTmsUIDGIDrideidchange_privilegegrant_privilegeeid=re_exchangere_exchangeable?sid_available?switchfrom_nameSysgetuidgeteuidgetgidgetegidsetruidsetrgidseteuidsetegidsetreuidsetregidsetresuidsetresgidissetugidchildpgroupunsetenv_othersclose_othersnanosecondfloat_microsecondfloat_millisecondfloat_secondTIME_BASED_CLOCK_REALTIMETIMES_BASED_CLOCK_MONOTONIChertzexec_argP��%��p����%�����%��%��%��%��%��%����@��%��%��%������������������������T���!.:breakcasecontinuedodoneelifelseesacevalexecexitexportfiforifinreadonlyreturnsetshiftthentimestrapunsetuntilwhilemaxgroups %d shold be positiveenvironment name contains a equal : %scan't handle UID while evaluating block given to Process::UID.switch methodcan't handle GID while evaluating block given to Process::UID.switch methodsigaction to obtain old actionsigaction to set default actionnegative process group ID : %ldunsetenv_others option specified twiceclose_others option specified twicewrong exec redirect symbol: %liwrong exec option symbol: %licyclic child fd redirection from %dAnother thread waited the process started by system().GETTIMEOFDAY_BASED_CLOCK_REALTIMETIMES_BASED_CLOCK_PROCESS_CPUTIME_IDGETRUSAGE_BASED_CLOCK_PROCESS_CPUTIME_IDCLOCK_BASED_CLOCK_PROCESS_CPUTIME_IDe��A/dev/urandomwrong dump datawrong valueinvalid argument - random number too small %grandom number too big %grandom number too small %ldrandom number too big %ldsrandRandomleftnew_seedC��<��0��$�����|���A�<bad value for rangestep can't be negativecan't iterate from %s(... ... ...)(... .. ...)`initialize' called twicecan't do binary search for %snot a dumped range objectexclude_end?%ld..%s%ld out of rangeexclRangecover?cannot exclude non Integer end valuecannot exclude end value with non Integer begin valuenot an integerRational@numerator@denominatorgcdgcdlcmrational.somarshaled rational must have an array whose length is 2 but %ldinvalid value for convert(): %scan't convert nil into Rationalincompatible encoding regexp match (%s regexp with %s string)variable $KCODE is no longer effective; ignoredvariable $KCODE is no longer effectivevariable $= is no longer effective; ignoredvariable $= is no longer effectivetoo short escaped multibyte characterescaped non ASCII character in UTF-8 regexpregexp match /.../n against to %s stringUTF-8 character in non UTF-8 regexpcan't make regexp with dummy encodingincompatible character encoding/.../n has a non escaped non ASCII character in non ASCII-8BIT scriptundefined group name reference: %sundefined group name reference: % liencoding mismatch in dynamic regexp : %s and %sincompatible encodings: %s and %sASCII incompatible encoding: %sencoding option is ignored - %sinvalid group name reference formattoo short escape sequenceduplicate meta escapetoo short meta escapetoo short control escapeduplicate control escapeunexpected escape sequenceinvalid escape codeinvalid multibyte escape\x%02X: /to_regexpuninitialized Matchuninitialized Regexp(?invalid Unicode rangeinvalid multibyte characterinvalid Unicode listcan't modify literal regexpalready initialized regexpindex %d out of matchesregexp preprocess failed: %s#<%li: %li>no arguments given(?!)flags ignoredRegexpError$&$`$'$=$KCODE$-Kcompileunionlast_matchsourcecasefold?optionsfixed_encoding?named_capturesIGNORECASEEXTENDEDMULTILINEFIXEDENCODINGNOENCODINGMatchDatapre_matchpost_match��������������������������������������������������������������������������������������������������Ѕ���/����Ȅ�Є���������������������������������X��m��<��<��<��<��<��<��<��g��g��g��g��g��g��g��g��g��g��g��m��g��g��g��g��g��g��g��g��g��m��g��g��T��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��g��m��g��g��g��g��g��g��g��g��g��g��g��g��T��g��g��g��g����g��g��m������������8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8����8��8������8��8��8����������8������8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8����8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8����������8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8���������������d��4��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������x����8��8��8����8��8��8��8��x��p��p��p��p��p��p��p��p��p��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��8��X��8��8��8��0��8��8��8��8��8��8��8��8��8��8����	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������������p��p����������x��x��P����D��������0�������������(����h������������l�����������������������������������������<����\��������$���������������������`��`��$����������0������H����������(����`�����|���4�4��\�D�(�H��������������#��"�,"�,"�#�,#�#��!�L"�|"�"��1�2�x2�2��2�3�4�3�1�H1�x1�$M�<M�<M�<M�N��N�DP�P�TM��M�	



��M����}od[SMGC?;8520-+*(&%$"! 










Alnum
AlphaBlankCntrlDigitGraphLowerPrintPunctSpace	Upper
XDigitASCIIWordAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~�����������������������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~�����������������������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�����������������������������������������������������������������������������������������������������������������������������no support in this configurationinvalid combination of optionsnot supported encoding combinationtoo many capture groups are specifiedinvalid character property name {%n}group number is too big for capture historymultiplex definition name <%n> callundefined group <%n> referenceinvalid char in group name <%n>numbered backref/call is not allowed. (use name)too short multibyte code stringtoo many multibyte code ranges are specifiedmismatch multibyte code length in char-class rangeupper is smaller than lower in repeat rangetoo big number for repeat rangeinvalid repeat range {lower,upper}invalid pattern in look-behindend pattern with unmatched parenthesistarget of repeat operator is invalidtarget of repeat operator is not specifiedunmatched range specifier in char-classchar-class value at start of rangechar-class value at end of rangecan't convert to wide-char on specified multibyte-encodingdefault multibyte-encoding is not setundefined error codeover thread pass limit counttoo big wide-char valueinvalid code point valuenever ending recursionmultiplex defined name <%n>undefined name <%n> referenceinvalid group name <%n>group name is emptytoo long wide-char valuetoo short digitsinvalid backref number/nametoo big backref numberempty range in char classinvalid conditional patterninvalid POSIX bracket typeundefined group optionend pattern in groupunmatched close parenthesisnested repeat operatorinvalid control-code syntaxinvalid meta-code syntaxend pattern at controlend pattern at metaend pattern at escapepremature end of char-classempty char-classend pattern at left bracketend pattern at left braceinvalid argumentmatch-stack limit overunexpected bytecode (bug)undefined bytecode (bug)stack error (bug)internal parser error (bug)undefined type (bug)\x%02x�s���Ζ��9��̕�D������m��p���V��њ�ě����y�������D����n�����ԋ�\����p��ˇ�5�����~�����
��k��ς��v��r�̒�W��M��r�g����&�������đ�����y��x�x�	x�Ew�w��v�v�"}�|��{�
{�/�}��u�iu��~�~�
��a~���P��Iv��B��z��y��t�t�Dt�=����|��L��L��,����,��,��������D�����d����\�����Unknown escape \%c is ignoredinvalid Unicode Property \%c:]invalid back referenceinvalid subexp call*?+ and ??+? and ?+?character class has '%s' without escapecharacter class has duplicated rangeregular expression has '%s' without escaperegular expression has redundant nested repeat operator '%s'nested repeat operator '%s' and '%s' was replaced with '%s' in regular expression���p��x��x������x��x��x��x��x��x��x����x��x��x�����x��`��x����y��y��y��y��y��y��y��y��������������������������������������������������������������������������3����������������������������������������������������������������������������������������������3��������������4�������V��������������t���������������t%��|%���%��%���%��<%���$��8.��X3���1���3���,���3���0���3���3���3���3���3���3���3���3���3���3���3���2���3���3���3���3��`2���/���.���.���D���D���]���D���D���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���D���]���]��E���E���]���]���]���E���F���F���F���]���]��G���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]��,G���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���F���]��tG��DG���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]���]��\G���D��L���L��K��[L���K���L���L���L���L��1H��I��I��I��I��I��I��I��I��I���L���L��DL���L��-L���L���L��AK���L���L��L���L���L��nL���J���L���L���K���L���L���L���L��VK���K��K���K���L���L���L��*K���K���L���J���L���L���L���L���L���J���L���J���L���J���L���L��J���I���L���L���I���L���L���L���L��VK���L���L���I���L���I���L���H���H���L���H���H���H��l[��D\��tf���[��4f���\���b��\e��4b��4e��$c��$c��Tc��l[��a���[���_��_��|^���c���d���d���p���p���p���p���p���p���p��m���p���p���p���p���j���p���p���p���p���p���p���p���p���p���p���p���p���h���p���q���q���q���p���p���p���p���p���p���p���p���p���p���p���p���p���p���p���p���p���n���p���p���p���p���p���p���p���p���p���p���p���p���p��oj���p���p���j���p���p���j���p���p���p���p���j���p���p���j���j���p���p���p���p���p���j���p���j���p���p���j��j��To��To��To���i��To��To��To��To��To��To��To��To��To��To��To��To��j��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��To��hk��To��To��4k��To��To��To��To���k��To��To���j��k��To��To��To��To��To���j��To���k��To��To���j��alnum
alphablankcntrldigitgraphlowerprintpunctspace	upper
xdigitasciiwordV��;k"���p\�}��~��~�� ~���}���}��V�``��\V��cn��\V��C ���\V�C ��\V�?w`K��P\V���\�*�P\V*��@\V���\"�\\unknown encoding name - %s%.*schompchopgsubno %s allowed in tainted modecasecmp%s already set to %licopyrighthelpyydebugparsetreeparsetree_with_commentinsnsgemsrubyopt$0 not initializedUTF-8--encoding-s-Sno code specified for -eCan't chdir to %sCan't chdirmissing argument for -Emissing argument for --enableextra argument for %s: %sinternal-encodingexternal-encodingverbosemissing argument for --dumpRUBYLIB@gem_prelude_indexTMP_RUBY_PREFIX-xrubyno Ruby script found in input -!
$VERBOSE$-v$-w$-W$DEBUG$-d$0$PROGRAM_NAMEargv0setproctitleARGV  %.*s%-*.*s%-*s%s
Features:RUBYOPTRUBYPATHGemTOPLEVEL_BINDINGprogram input from stdinSyntax OK$-p$-l$-a--version  print the version-c  check syntax onlydummy encoding is not acceptable - %s $_ value need to be String (%s given)no %s allowed while running setuidno %s allowed while running setgiddon't know how to dump `%.*s',but only [version, copyright, usage, yydebug, syntax, parsetree, parsetree_with_comment, insns].unknown argument for --disable: `%.*s'unknown argument for --enable: `%.*s'invalid name for global variable - missing argument for --disablemissing argument for --encodingmissing argument for --internal-encodingmissing argument for --external-encodinginvalid switch in RUBYOPT: --dumpinvalid option --%s  (-h will show valid options)invalid option -%c  (-h will show valid options)invalid option -\x%02X  (-h will show valid options)invalid switch in RUBYOPT: -%cinvalid switch in RUBYOPT: --%s-0[octal]  specify record separator (\0, if no argument)--copyright  print the copyrightUsage: %s [switches] [--] [programfile] [arguments]
gems  rubygems (default: enabled)rubyopt  RUBYOPT environment variable (default: enabled)-K is specified; it is for 1.8 compatibility and may cause odd behavior--enable=feature[,...] , --disable=feature[,...] enable or disable features--external-encoding=encoding , --internal-encoding=encoding specify the default external or internal character encoding--help  show this message, -h for short message-a  autosplit mode with -n or -p (splits $_ into $F)-Cdirectory  cd to directory before executing your script-d , --debug set debugging flags (set $DEBUG to true)-e 'command'  one line of script. Several -e's allowed. Omit [programfile]-Eex[:in] , --encoding=ex[:in] specify the default external and internal character encodings-Fpattern  split() pattern for autosplit (-a)-i[extension]  edit ARGV files in place (make backup if extension supplied)-Idirectory  specify $LOAD_PATH directory (may be used more than once)-l  enable line ending processing-n  assume 'while gets(); ... end' loop around your script-p  assume loop like -n but print line also like sed-rlibrary  require the library before executing your script-s  enable some switch parsing for switches after script name-S  look for the script using PATH environment variable-T[level=1]  turn on tainting checks-v , --verbose print version number, then turn on verbose mode-w  turn warnings on for your script-W[level=2]  set warning level; 0=silence, 1=medium, 2=verbose-x[directory]  strip off text before #!ruby line and perhaps cd to directory-h  show this message, --help for more info����������������������������������������������������������������������������������������������������������������������������������������8���������І��������������������������������������������������������p����������0���������؄����������������������������������x���P�������p���������������������������ȃ����������������������������������p������@������������Ё������������p���H���h����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tried to downgrade safe level from %d to %dInsecure operation `%li' at level %dInsecure operation at level %d$SAFE=3 does no sandboxing$SAFE=4 is obsoleteInsecure operation - %liInsecure operation: -r$SAFEEXITIllegal instruction at %pSegmentation fault at %pBus Error at %pSIG%sSIG%uinvalid signal number (%d)unsupported name `%.*s%li'unsupported signal SIG%libad handlerSYSTEM_DEFAULTSIG_IGNSIG_DFLIGNOREInsecure: tainted signal trapunsupported name `SIG%li'bad signal type %sSignalsignamesignmSIGINTSIGHUPSIGQUITSIGTERMSIGALRMSIGUSR1SIGUSR2SIGBUSSIGILLSIGSEGVSIGPIPESIGCLDTRAPABRTIOTFPEURGSTOPTSTPCONTCHLDTTINTTOUXCPUXFSZVTALRMPROFWINCHPWRPOLLcan't trap reserved signal: %dcan't trap reserved signal: SIG%srb_register_sigaltstack: th->altstack not initialized
����������������������ٲ��L������������������������������ò��l���l���l���w���l����������l���l���l���l���l���l���β��0���0���0���0���0���0���0���$���0���0���0������0������0���0��� handler
 received in SIGrb_vsprintf reentered0123456789abcdef0123456789ABCDEFInfnumbered(%d) after namedinvalid index - %d$0x0X0b0Bmalformed format stringflag after widthflag after precisionvalue given twice - %d$too few argumentswidth given twicewidth after precisionnamed%.*s after <%li>named%.*s after numberedone hash requiredkey%.*s not foundprecision given twiceprec too bigprecision too biginvalid format character - %%%%c requires a characterinvalid characterinvalid mbstring sequence.%d���H��H�����H��H��H��H��H��H��������H��������H�����������������������H��H��H��H��H��H��H��R��H��H��.����H�����H��H��H��H��I��H��H�����H��H��H��H��H��R��H��H�����H��H��H��H��H��H��H��H��R��H��u������������������H��H�����H��V����|��H��H���������H��H�����H�����t������������������������������������t���������������������������������������������������������������������������������������������t�������z����������������t���T�������4��������������,���,���,���,���,���,���,���,���,�����������������������������<���L�����������<�������<�������������������������������������������������������������������L�����������������������������������<���L�������L���<�����<�������L�����������������������L���T�����������T�������L�����������L�������������0000000000000000                numbered(%d) after unnumbered(%d)malformed format string - %%*[0-9]unnumbered(%d) mixed with numberedunnumbered(%d) mixed with namedmalformed format string - %%%ctoo long name (%zd bytes) - %.*s...%cnamed%.*s after unnumbered(%d)too many arguments for format stringmalformed name - unmatched parenthesiscannot construct wchar_t based encoding string: %sst_table too bigLG��tG��|G���G���G���G���F���G��%0*d%*d%0*ld%*ld%+*ld%+.*ld%a %b %e %H:%M:%S %Y%m/%d/%y%H:%M:%S%02d%I:%M:%S %p%H:%M%e-%^b-%4YcCxXyYdeHkIlmMSuUVwWy%09ld%Y-%m-%d�M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M���M��'P���M��AP���M���M���M���M���M���M���M��tY���M���M���N���N���N���N���N���N���N���N���N���N���P���M���M���M���M���M���M���P��pT���T��N���W���Z���Z���[���[���M���M��OR��YR��CO���O���Y���M���Z��AQ���N���W��jX���X���N���\���]���M���M���M��]��)]���M��E]���]���R���R��S���M���Z���]���M��TS���S���S���S��1T���M���Y���M���Q���Q���\��^��\��8\��N��Y��;U��AMPMJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberSundayMondayTuesdayWednesdayThursdayFridaySaturdaywide char encoding: %sNULL pointer givenno receiver giventype mismatch: String givenstring.c!FL_TEST((str), STR_SHARED)wchar encoding givenOBJ_FROZEN(shared)u{%x}.force_encoding("%s")string sizes too bigindex %ld out of stringstring size too bigzero width paddingcryptstring contains null char%+li is not a symboltype mismatch: %s givenblock should not cheat%.*ld%.*dregexp not matchedindex %d out of regexpregexp group %d not matchednegative length %ldstring not matched\u%04X\u{%X}\x{%X}value of %li must be Stringsucc!next!setbytebyteslicescrubscrub!upcasedowncasecapitalizeswapcaseupcase!downcase!capitalize!swapcase!hexoctinternto_symstart_with?end_with?scanljustrjustcenterlstriprstripgsub!chomp!lstrip!rstrip!tr_ssqueezetr!tr_s!delete!squeeze!sumrpartitionforce_encodingvalid_encoding?ascii_only?$;$-Fall_symbolsid2namerb_vm_fstring_table()!frozen_stringsnegative string size (or size too big)invalid range "%c-%c" in string transliterationinvalid range in string transliterationpassing a block to String#bytes is deprecatedtemporal unlocking already unlocked stringincompatible encoding with this operation: %scan't modify string; temporarily lockedpassing a block to String#codepoints is deprecatednegative expanding string sizereplacement must be valid byte sequence '%+li'salt too short (need >=2 bytes)passing a block to String#chars is deprecatedpassing a block to String#lines is deprecatedtemporal locking already locked stringcan't set length of shared stringboth of block and replacement given���������������������z~��z~��z~��z~��z~��z~��z~��z~��z~��z~��z~��z~��z~��P��������������|��l��<�������������������������������������������������������~��Init_frozen_stringsrb_str_sub_bangInit_String?��������?�...rb_str_splice_0str_succstr_buf_catrb_str_change_terminator_lengthstr_replacerb_str_new_frozen333333�?duplicate member: %sinconsistent structduplicate member: %libroken membersstruct size mismatchstruct size differsuninitialized structcorrupted structno member '% li' in structno member '%li' in struct#<struct :...>`%li' is not a struct memberStruct__members__identifier %li needs to be constantredefining constant %li::%listruct size differs (%ld required %ld given)offset %ld too small for struct(size:%ld)offset %ld too large for struct(size:%ld)0��������������������������������������������������������������������������������������������������@��������0������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������localinstanceinvalidglobalattrsetconstclassjunk�..�...�**�+@�-@�<=>�>=�<=�==�===�!=�=~�!~�[]�[]=�<<�>>�::�&&�||non-symbol object %s:%lx for %li in symbol table%p can't remove str from str_id (%s)symbol table overflow (symbol %li)wrong argument type %s (expected Symbol)cannot make operator ID :%li attrsetcannot make unknown type ID %d:%li attrsetcannot make unknown type anonymous ID %d:%lx attrsetcannot make anonymous %.*s ID %lx attrset%s is not a symbol nor a stringinvalid encoding symbolinvalid symbol: %smethod_missing__send____attached__respond_to?respond_to_missing?<IFUNC><CFUNC>core#set_method_aliascore#set_variable_aliascore#undef_methodcore#define_methodcore#define_singleton_methodcore#set_postexecore#hash_from_arycore#hash_merge_arycore#hash_merge_ptrcore#hash_merge_kwd(NO-TIMEZONE-ABBREVIATION)gmtime/localtime errortime out of rangeutc_offset out of rangeargument out of rangeuninitialized %lialready initialized %litime interval%s must be positive%f out of Time rangecan't convert %s into %stime out of system rangetime + time?negative ndigits givengmtime errorlocaltimew errormarshaled time format differyear too big to marshal%Y-%m-%d %H:%M:%S UTC%Y-%m-%d %H:%M:%S %z%a %b %e %T %Ystdsubmicronano_numnano_denzoneTimemktimelocaltimegmtimegetlocalgetgmgetutcasctimehourmdaymonthyearwdayydayisdstdst?gmtoffgmt_offsetutc_offsetutc?gmt?sunday?monday?tuesday?wednesday?thursday?friday?saturday?tv_sectv_usectv_nsecsubsecstrftimeunexpected divmod result: into %scan't convert %s into an exact number"+HH:MM" or "-HH:MM" expected for utc_offsetTime#succ is obsolete; use time + 1year too big to marshal: %ld UTCformat should have ASCII compatible encodingstrftime called with empty format stringl	��`��`��`��`��0��`��`��`��`��	��`��l	��`��`��`��0��(	��������������������������(	��������������������������������������������������������������janfebmaraprmayjunjulaugsepoctnovdec�����������������������������������������������������������������������������������������������;Zx����0N����:Yw����/Mxml_text_escapexml_attr_content_escapexml_attr_quotecrlf_newlinecr_newlineuniversal_newlinexml_textxml_attr_contentno-conversion with incomplete %s on %s%s followed by %s on %serror_bytesreadagain_bytesincomplete_inputsource_encoding_namedestination_encoding_namesource_encodingdestination_encodingU+%04X%s from %s to %serror_charinvalid library name - (null)�US-ASCII&#x%X;23:negative output_byteoffsetoutput_byteoffset too bignegative output_bytesizetoo long conversion resultconverter already finishedcode converter not found (already initializeddecoration failed: %stoo big fallback stringtoo big stringtoo long stringUndefinedConversionErrorInvalidByteSequenceErrorConverterNotFoundErrorencodeencode!Converterasciicompat_encodingsearch_convpathprimitive_convertprimitive_errinfoinsert_outputputbacklast_errorreplacementreplacement=INVALID_MASKINVALID_REPLACEUNDEF_MASKUNDEF_REPLACEUNDEF_HEX_CHARREFPARTIAL_INPUTAFTER_OUTPUTUNIVERSAL_NEWLINE_DECORATORCRLF_NEWLINE_DECORATORCR_NEWLINE_DECORATORXML_TEXT_DECORATORXML_ATTR_CONTENT_DECORATORXML_ATTR_QUOTE_DECORATORincomplete_input?invalidfallbackxmlinvalid_byte_sequenceundefined_conversiondestination_buffer_fullsource_buffer_emptyafter_outputpartial_inputuniversalcrlfcreconv`X��pX���X���X���X��@X��PX��Th���_���`���a��t_��a��tc��,_���c���f��4f��g��$c���h���h���c��$f���e���e��|e��c`���_���`��a��t_��\b��h���h���g���b��dd��te���h���j���b���^���h��'c��Gf��j���h��Ei��/b��i���h���i���e���f���h���h���g���c���h���p���p���p���h���p���p���p���h��unknown transcoding instructionunexpected transcode last result%s to %s in conversion from %suninitialized encoding convertertranscoder from %s to %s has been already registeredoutput_byteoffset+output_bytesize too bigunexpected result of econv_primitive_convertreplacement character setup failedunknown value for invalid character optionunknown value for undefined character optionunexpected value for xml option: %liunexpected value for xml optionunexpected value for newline option: %liunexpected value for newline optionreplacement string is broken: %s as %srb_econv_open_opts called with invalid opthashnot a 2-element array in convpathadding conversion failed: %s to %snot fully converted, %td bytes leftgetcwdp�����������������������������������������������������������������������������������������������������������������������������������������}0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEFNaNInfinity��ؗ�Ҝ<3���#�I9=��D��2�����[%Co�d(h��7y�ACn����F��?�O8M20�Hw�Z<�s�Ou�?$@Y@@�@��@j�@��.A�cA�חAe��A _�B�vH7B��mB@�0�B�ļ�B4&�kC��7y�AC�؅W4vC�Ngm��C=�`�X�C@��x�DP����KD��M��D������������������������������������������������	�������

 !"#������

 !"#���������������������������������������������������������������������������������������������������������������������������������������7y�AC��?@�����A�5�����?5�5�?�5�����?�?aCoc���?��`�(��?�y�PD�?<�s�Ou@@`global variable `%li' not initializedundefined global variable %liInsecure: tainted variable traceinstance variable %li not initializedinstance variable %li not definedclass path is not set properlyuninitialized constant %li::% liclass variable %li of %li is overtaken by %liclass variable %li not defined for %liwrong class variable name %liprivate constant %li::%li referencedtoplevel constant %li referenced by %li::%lican't retrieve anonymous class %liconstant %li::%li not defined`%li' is not allowed as a constant nameno class/module to define constant %lialready initialized constant %lialready initialized constant %li::%liprevious definition of %li was hererb_define_const: invalid name `%s' for constantautoload must be constant name: %li%li with no argument is just ignored%li is a read-only variableempty file name__autoload__can't alias in tracer#<%s:%p>uninitialized constant % liwrong class variable name %scannot remove %li for %litoo many instance variablesundefined class/module %.*licannot remove %li::%liautoload_iRUBY_VERSIONRUBY_RELEASE_DATERUBY_PLATFORMRUBY_PATCHLEVELRUBY_REVISIONRUBY_DESCRIPTIONRUBY_COPYRIGHTRUBY_ENGINErubyruby - Copyright (C) 1993-2018 Yukihiro Matsumotoruby 2.2.10p489 (2018-03-28 revision 63023) [x86_64-linux]�x86_64-linux2018-03-282.2.10get_dyna_var_idx: -1#$!block in %liblock (%d levels) in %li<compiled>get_local_var_idx: %d-- raw disasm-----------------------------%-20s %04d %-65s(%4d)
<L%03d><ic:%d><callinfo:, %d><ch><%p>unknown operand type: %c<L%03d>
[none]adjust: [label: %d]
dump_disasm_list error: %ld
ISEQ is requiredinvalid %+li Fixnum: %+li%li: undefined labelNODE_CASE: unknown node (%s)NODE_WHEN: unknown node (%s)unsupported: putundefInvalid breakInvalid nextInvalid redoInvalid retryrescue in ensure in Invalid returnInvalid yieldunknown dvar (%li)<class:%li><module:%li>singletonclassdefined guard in compile.cnd_type(node) == NODE_ARRAYi == lensetup_arg: unknown node: %s
error: set_sequenceinsn_sp_increase: unreachableunknown labeliseq_set_sequence: adjust bugunknown scopeiseq->param.rest_start != -1nop#arg_restlead_numpost_numpost_startrest_startblock_startkwbitsambiguous_param0wrong exception entryinvalid exception symbol: %sunknown instruction: %lioperand size mismatchflagorig_argcblockptrkw_argunknown operand: %cLNIKNVVISNHOCVsetlocalgetspecialsetspecialgetinstancevariablesetinstancevariablegetclassvariablesetclassvariablegetconstantsetconstantgetglobalsetglobalputnilputselfputobjectputspecialobjectputiseqputstringconcatstringstostringtoregexpnewarrayduparrayexpandarrayconcatarraysplatarraynewhashnewrangedupnswapreputtopnsetnadjuststackcheckmatchcheckkeyworddefineclassopt_str_freezeopt_send_without_blockinvokesuperinvokeblockleavethrowjumpbranchifbranchunlessgetinlinecachesetinlinecacheonceopt_case_dispatchopt_plusopt_minusopt_multopt_divopt_modopt_eqopt_neqopt_ltopt_leopt_gtopt_geopt_ltltopt_arefopt_asetopt_aset_withopt_aref_withopt_lengthopt_sizeopt_empty_popt_succopt_notopt_regexpmatch1opt_regexpmatch2opt_call_c_functionbitbltanswergetlocal_OP__WC__0getlocal_OP__WC__1setlocal_OP__WC__0setlocal_OP__WC__1putobject_OP_INT2FIX_O_0_C_putobject_OP_INT2FIX_O_1_C_insn_set_specialized_instruction: unknown insn: %dNODE_CASE: unexpected node. must be NODE_WHEN, but %sduplicated when clause is ignoredNODE_CASE: must be NODE_ARRAY, but 0NODE_WHEN: must be NODE_ARRAY, but 0Can't escape from eval with breakCan't escape from eval with nextCan't escape from eval with redoNODE_RESBODY: unknown node (%s)NODE_DASGN(_CURR): unknown id (%li)%s: invalid node in NODE_OP_CDECLcan't make hash with this node: %siseq_compile_each: unknown node: %soperand size miss! (%d for %d)iseq_set_sequence: ic_index overflow: index: %d, size: %diseq_set_sequence: ci_index overflow: index: %d, size: %dtoo large iseq_catch_table - %diseq_set_arguments: NODE_ARGS is expected, but %scompile/should not be reached: %s:%drb_vm_insn_addr2insn: invalid insn address: %p:opt param is not an array: %+likeyword default has unsupported len %+li:keywords param is not an array: %+liunexpected object for instructionPO���P���P��O���N���N�� N���P���O�� N���P�� N���O���P���P���P���O���P���P�� N��������m���k��Ph��d��d��d��Pj��Pj�� b���^���]��pc���]��`���V��`[���Z���Z���~���P���P����������P��������������0���0�������Ћ���W���W��`���`��������k������������(�������`�������P����������� �������P���P���P��������������p���@{���z��`y��z������������x������w��w���v�����������(u���s���r���q��q���o���n���Y��x���������@���@���������h����������p���0~��0}��`|���������������{����������@���������������"����������������"��������������������"��"��"��"��H�������������h���������"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��`��8�"��"��"��"��"��h�������x�"��"��"��"��"��"��"��"�����T������P������P������P������P���T���o�����P���������������������p��T������p��������P���T���p��P���P������	��T���T������T������T���P������T���P���x�����	��x�����T���T���T���P���P������T������P���P���P���P���P���P���P���P���P���P���P���P���P���P���o��P���T���T���T���T���T���T���T���P���T���������������P���P���������h������X��8����������������`�����`���(��������������������������������������������������{��������������������������������������g�����S��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?�����+�������������������������������������
���������
���'���"���"���'��E'��f&��=&���"���%���%���"���%���%���"���"���"���%���"���"��q%��
compile_array_keyword_argiseq_set_argumentsgc_stresscore%*sDBG> %s: %s
DBG> %s: %li
DBG> %s: %s (%u)
unexpected debug option: %.*s
��������label_%lumaindefined_guardunsupported iseq typearg_sizelocal_sizestack_max<%s:%s@%s>inline_const_cachepeephole_optimizationtailcall_optimizationspecialized_instructionoperands_unificationinstructions_unificationstack_cachingtrace_instructiondebug_level<main>unsupport type: :%li<is:%td>mid:%liargc:%dkw:%dblock:%liARGS_SPLATARGS_BLOCKARGTAILCALLSNEDARGS_SIMPLE<callinfo!%li><cdhash><funcptr>%04zd %-16s %*s(%4d)BlockPostRestArg== disasm: == catch table
unknown catch type (%d)Opt=%ld%s%s%s%s%s[%2d] <%s>NODE_SCOPENODE_BLOCKNODE_IFNODE_CASENODE_WHENNODE_OPT_NNODE_WHILENODE_UNTILNODE_ITERNODE_FORNODE_BREAKNODE_NEXTNODE_REDONODE_RETRYNODE_BEGINNODE_RESCUENODE_RESBODYNODE_ENSURENODE_ANDNODE_ORNODE_MASGNNODE_LASGNNODE_DASGNNODE_DASGN_CURRNODE_GASGNNODE_IASGNNODE_IASGN2NODE_CDECLNODE_CVASGNNODE_CVDECLNODE_OP_ASGN1NODE_OP_ASGN2NODE_OP_ASGN_ANDNODE_OP_ASGN_ORNODE_OP_CDECLNODE_CALLNODE_FCALLNODE_VCALLNODE_SUPERNODE_ZSUPERNODE_ZARRAYNODE_VALUESNODE_HASHNODE_RETURNNODE_YIELDNODE_LVARNODE_DVARNODE_GVARNODE_IVARNODE_CONSTNODE_CVARNODE_NTH_REFNODE_BACK_REFNODE_MATCHNODE_MATCH2NODE_MATCH3NODE_LITNODE_STRNODE_DSTRNODE_XSTRNODE_DXSTRNODE_EVSTRNODE_DREGXNODE_DREGX_ONCENODE_ARGSNODE_ARGS_AUXNODE_OPT_ARGNODE_KW_ARGNODE_POSTARGNODE_ARGSCATNODE_ARGSPUSHNODE_SPLATNODE_TO_ARYNODE_BLOCK_ARGNODE_BLOCK_PASSNODE_DEFNNODE_DEFSNODE_ALIASNODE_VALIASNODE_UNDEFNODE_CLASSNODE_MODULENODE_SCLASSNODE_COLON2NODE_COLON3NODE_CREFNODE_DOT2NODE_DOT3NODE_FLIP2NODE_FLIP3NODE_SELFNODE_NILNODE_TRUENODE_FALSENODE_ERRINFONODE_DEFINEDNODE_POSTEXENODE_ALLOCANODE_BMETHODNODE_MEMONODE_IFUNCNODE_DSYMNODE_ATTRASGNNODE_PRELUDENODE_LAMBDAunknown node (%d)keyreqkeyrest`pos' is negative`set' should be true/false`pos' is out of range.InstructionSequencedisasmdisassemblebase_labelfirst_linenocompile_filecompile_optioncompile_option=YARVInstructionSequence/SimpleDataFormatuninitialized InstructionSequenceCompile option must be Hash/true/false/nilinsn_operand_intern: unknown operand type: %c| catch type: %-6s st: %04d ed: %04d sp: %04d cont: %04d
local table (size: %d, argc: %d [opts: %d, rest: %d, post: %d, block: %d, kw: %d@%d, kwrest: %d])
|------------------------------------------------------------------------
n1���1���1���1��1���1���1���1���0��:6��T7��T7��6���5��[5��A5��T7�� 5��5��T7��5���4��T7��T7��T7���4��T7��T7��W4��?��A���>��A���>��A���>��A��`>��A���:���c���f���f��`d���d���d���b���f��e��Hc���f��hc��(e���f���f���f���d���f���f���b��xp��q��hp��q���p��q���p��q���p��q�� l���t���t���t���t���t���t���t��|t��tt��lt��dt��\t��Tt��Lt��Dt��<t��4t��,t��$t��t��t��t��t���s���s���s���s���s���s���s���s���s���s���s���s���s���s���s���s��|s��ts��ls��ds��\s��Ts��Ls��Ds��<s��4s��,s��$s��s��s��s��s���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r��|r��tr��lr��dr��\r��Tr��Lr��Dr��<r��4r��,r��$r��r��r��r��r���q���q���q���q���q���q���q���q���q���q���q���q���q���q���q���q��|q��tq���t��nilinstance-variablelocal-variableglobal-variableclass variableconstantmethodyieldsuperselftruefalseassignmentexpressioninvalid epnoreasonglobal_method_stateglobal_constant_stateclass_serialvm.cargc % 2 == 0rb_vm_get_cref: unreachableRUBY_GLOBAL_METHOD_CACHE_SIZEno self, no lifeuncaught throw %punexpected returnunexpected breakunexpected nextunexpected redo`%li#%li' (cfunc)RubyVMEnvThreaddirect threaded codeoperands unificationinline method cacheINSTRUCTION_NAMESthread_vm_stack_sizethread_machine_stack_sizefiber_vm_stack_sizefiber_machine_stack_sizeDEFAULT_PARAMSRUBY_THREAD_VM_STACK_SIZERUBY_FIBER_VM_STACK_SIZERUBY_FIBER_MACHINE_STACK_SIZEunexpected back-refvm_get_cvar_base: no crefno class variables available%s is not a class/moduleinsns.defRB_TYPE_P(kw_bits, T_HASH)unknown defineclass type: %dno block given (yield)vm_insnhelper.cescape_cfp->iseq == base_iseqbreak from proc-closure(eval)calling insecure method: %livm_args.cargs->argc > 0args->argc >= over_argcarg.argc == kw_lenargs_argc(args) == 0not an arrayundefined method `%s' for %sno id givenno method name givencheck_match: unreachableprivate attribute?@%lino class to undef methoditerator?block_given?catchloopinstance_evalinstance_execpublic_sendmodule_execclass_execmodule_evalclass_evalUncaughtThrowErrortagno class/module to add methodremove_methodalias_methodpublicpublic_method_defined?private_method_defined?protected_method_defined?public_class_methodprivate_class_methodno class to make aliasrespond_to? is defined hereVM/threadVM/env��`���P���@���0��� ������������Ђ����������������������p���p���`���P���@���0���p���p���p���p���p��� ����������d���|���d���d���ą����������������L����������������<���L�����L��L�����d��d��d��t��������������������X��x���Z���Z��!@���Z��C@��?��1A���@��A���=���Z���Z���Z���Z���Z��+>��i>���>��ho��Hp���q���o��p���q��5s��Hp��o��8r���q����������l��������������,�����������0���`���`��� ��������������������������~����������}���q���e���Y���M���A���5���)��������������������core_hash_mergevm_throw_startvm_exec_coreargs_reduceargs_pop_keyword_hashsetup_parameters_complexwrong number of arguments (%d for %d)wrong number of arguments (%d for %d+)wrong number of arguments (%d for %d..%d)rb_method_entry_eq: unsupported method type (%d)
thread_free: locking_mutex must be NULL (%p:%p)thread_free: keeping_mutexes must be NULL (%p:%p)method `%li' called on unexpected immediate object (%p)undefined optimized method: %svm_call_cfunc - cfp consistency errorrb_clear_cache() is deprecated.rb_hash_method_definition: unsupported method type (%d)
RUBY_GLOBAL_METHOD_CACHE_SIZE was set to %d but ignored because the value is not a power of 2.
rb_vm_make_proc: Proc value is already created.vm_make_proc_with_iseq: unreachableCan't create Binding Object on top of Fiber.Can't call on top of Fiber or Threadretry outside of rescue clauseRUBY_THREAD_MACHINE_STACK_SIZEputspecialobject insn: unknown value_typeunimplemented defined? type (VM)super called outside of methodself has wrong type to call super in this context: %li (expected %li)implicit argument passing of super from method defined by define_method() is not supported. Specify all arguments explicitly.Stack consistency error (sp: %td, bp: %td)isns(throw): unsupport throw typea bit of bacon, lettuce and tomatoclass variable access from toplevelCan't eval on top of Fiber or ThreadNot a toplevel InstructionSequencevm_call0_cfunc_with_frame: cfp consistency errorvm_call0: unsupported optimized method type (%d)vm_call0: unsupported method type (%d)respond_to? must accept 1 or 2 arguments (requires %d)method `%li' called on terminated object (%p flags=0x%lx)method `%li' called on hidden %s object (%p flags=0x%lx)method `%li' called on unexpected %s object (%p flags=0x%lx)method `%li' called on broken T_???(0x%02x) object (%p flags=0x%lx)private method `%s' called for %sprotected method `%s' called for %sundefined local variable or method `%s' for %ssuper: no superclass method `%s' for %svm_call_method: unsupported optimized method type (%d)vm_call_method: unsupported method type (%d)vm_call_super: should not be reachedclass or module required for rescue clausemethod redefined; discarding old %liredefining Object#initialize may cause infinite loopredefining `%s' may cause serious problemscall_cfunc_func: unsupported length: %drb_add_method: unsupported method type (%d)
arity out of range: %d for -2..15removing `%s' may cause serious problemsmethod `%li' not defined in %liattribute accessor as module_functionargument needs to be symbol or stringundefining `%s' may cause serious problemsmodule_function must be called for modules%li%crespond_to?(:%li) is old fashion which takes only one parameter %3.3s: 0x%016zxCFUNCEVAL(none)e:%06td E:%06tx :%sc:%04td p:---- p:%04td s:%04td %-6s [FINISH]-- env --------------------
%04d: %08lx (%p) <- ep---------------------------
-- proc -------------------
self: %s
| Thread state dump:
pc : %p, sp : %p
cfp: %p, ep : %p
RIPRBPRSPRAXRBXRCXRDXRDIRSIR8R9R10R11R12R13R14R15EFL* Loaded script: %.*s
* Loaded features:

 %4d %.*s
 %4d %s:%.*s
 %4d #<%.*s:%p>
/proc/self/maps* Process memory map:

-- Control frame information -----------------------------------------------
  [PC] %04td, [SP] %04td, [EP] %04td, [CFP] %04td
-- Machine register context ------------------------------------------------
-- C level backtrace information -------------------------------------------
-- Other runtime information -----------------------------------------------

location_absolute_path: unreachable-- Ruby level backtrace information ----------------------------------------
	from %s:%d:in unknown method
backtrace_collect: unreachablelocation_base_label: unreachablelocation_path: unreachable%s:%d:in unknown method
	from %li:%d:in  `%li'
	from %s:%d:in `%s'
location_lineno: unreachablelocation_to_str: unreachableunknown method`%s'location_label: unreachablenegative level (%ld)no such frameBacktraceLocationcallercaller_locations%li%s%li%.*s%liframe_infoc-callc-returnaccess from outsidec_callc_returnb_callb_returnthread_beginthread_endspecified_linea_calla_returnunknown event: %limust be called with a blocktrace_func needs to be Procenableddisabled#<TracePoint:%li %li>#<TracePoint:%li@%li:%d>#<TracePoint:%s>not supported by this eventset_trace_funcadd_trace_funcTracePointmethod_iddefined_classreturn_valueraised_exceptiontracepointCan not specify normal event and internal event simultaneously.#<TracePoint:%li@%li:%d in `%li'>#<TracePoint:%li `%li'@%li:%d>tp_attr_return_value_m: unreachabletp_attr_raised_exception_m: unreachablepthread_mutex_initpthread_mutex_lockpthread_cond_signalpthread_mutex_unlockpthread_cond_destroypthread_mutex_destroypthread_cond_waitpthread_cond_timedwaitnative_cond_broadcastthread localsabortingclock_gettime()unsupported clockid %ldunknown mask signatureuninitialized threadcan't alloc threaddead#<%li:%p%c%li %s%spthread_cond_initpthread_attr_init(&attr)pthread_attr_destroy(&attr)can't create Thread: %salready initialized threadinvalid keeping_mutexes: %skilled threaddeadlock; recursive lockingblock is needed.closed streamruby-timer-thrthread_timer: selectwaiting count overflowwaiting count underflowneverimmediateon_blockingcurrentstoppassabort_on_exceptionabort_on_exception=handle_interruptpending_interrupt?terminatewakeuppriority=thread_variable_getthread_variable_setthread_variablesthread_variable?alive?stop?safe_levelstream closedThreadGroupencloseenclosed?addDefaultMutexlocked?try_locksynchronize__recursive_key__ThreadErrorthread_shieldmutexthgroupcan't move to the frozen thread groupcan't move to the enclosed thread groupcan't move from the frozen thread groupcan't move from the enclosed thread groupconsume_communication_pipe: read
rb_thread_wakeup_timer_thread - writeAttempt to unlock a mutex which is locked by another threadAttempt to unlock a mutex which is not lockedTarget thread must not be current threadTarget thread must not be main threadnative_stop_timer_thread - close(ttp[0])native_stop_timer_thread - close(ttp[1])setup_communication_pipe: Failed to create communication pipe for timer thread[FATAL] Failed to initialize pthread attr: %s
rb_thread_create_timer_thread: Timer thread was already created
[FATAL] Failed to create timer thread: %s
uninitialized thread - check `%s#initialize'sleeper must not be more than vm_living_thread_num(vm)No live threads left. Deadlock?can't start a new thread (frozen ThreadGroup)pthread_attr_setstacksize(&attr, stack_size)pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED)pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED)already initialized thread - %salready initialized thread - %s:%dinvalid inspect_tbl pair_list for %+li in %+lithread_start_func_2 must not be used for main threadthread_start_func_2: locking_mutex must not be set (%p:%lx)[BUG] rb_thread_call_with_gvl() is called by non-ruby thread
rb_thread_call_with_gvl: called by a thread which has GVL.can't be called from trap contextrb_thread_terminate_all: called by child thread (%p, %p)stopping only thread
	note: use sleep to stop forevernative_thread_join() failed (%d)ꌠ9Y>)F��.Amachine_stack_cache size is not canonicalizedcan't alloc machine stack to fiber: %scontinuation called across threadscontinuation called across stack rewinding barriercontinuation called across fibercontinuation called from out of critical rb_ensure scopefiber_setcontext: sth->machine.stack_end has non zero valuenon_root_fiber->context.uc_stac.ss_sp should not be NULLfiber called across stack rewinding barriercannot resume transferred Fibermprotect failedIllegal root fiber parametercannot initialize twicenot running threaduninitialized fibercan't yield from root fiberrb_fiber_start: unreachablefiber called across threadsdead fiber calledterminated fiber resumeddouble resumeFiberFiberErrorContinuationcallcctransfercontinuation����Z���N���B���B���6���*���*���*���*���*���*���;���;���;���;���////////////////////////////////////////////////
//////////////	///////////////////////////////////////////////////������������������������������������������������������	

������������:698+RRRRRRRRRRRRRRRRRRR43210/.-RRRR+R*RR
RRRRRRRRRRRRRRRR
RRRR%RRRRRRRRRRRRRRRRR%$#"!
RRRRRRRRR����������������������5&8%:0$49
	76321/
.-,+*)('!#" ������������������������{����ct	
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{({{{{{{{{{12���h�p*'yo/,&k.
�)�G5I�Y
?��!�������:����w��P����h�~�b�.���"j��a�%���g����s�@�ZSO\����H
z�lT�8�D��J7����w������������������jE
��%�e@���jXa�hl�$�d?�����^�������|"�b=���a8��{`��YZ���H
�f0��yQ���������tJ�hf����S���I�g1����R�����������@�^(���B��|d������t�������������C�a+���H\������A�_)���D�}L�j������UK�i����Tm����D	�b,���J��o���������3����n������E
�c-���Le����B�`*���F�~F�d.uU��N��h/�����?�]'����@f�����������}�q������Tp��->\&���>i������~�=��[%���<��Q�o4���Z���j�����M�k�����Vg��V���1�v��k���<��$�:�:��"d��6{G�e/����P���;�#����8����������c��������9��!���S4by+��������8�� �����2��w����������r�������)���������������r���a��
���_��������x����l�����
��������`��.�sN������������1�vP���^$qy�	P�2��Y5FMW]	��K����?�;D������A������������O@������E�67���*�oJ�������k������S�U�����)�nI����i���������O�m����XI����CN�l�������W��������9:������]��������9�������[��v����7�|�������0������uV�����_�������3�xR���(��u��
������������������2�wQ��}W&�ss3x��0�u������"��o+�pK�����=m����������'�gB
�����e��������&�fA	�����~cA
�����bT�������]�6}R�p�����[�����������P�n������Y����������������� �";��Kw��_ �����6�{������.v��4�yw�����*����?'����������/�tO��-����,�qL���������������(�mH��U�g����^�����iD��Y)���7��S�q�����\���������W�������`=�Z������9{��~X\��5��z,5�z����,�������z��$��Q�����������-�rM��������G �hC����lG���������'�t�������Z���������������������
�����������	�X������E������!�<�����#�c>���kF����I��#�x�C����M��:z2;�s���������%8rO������|������������������������!�n#�p���������������������
�����%�����������������������������������������������������������������������������[�����������������������0�����������J��������������������������������H����������G(������������������������&�����������������������������������������������������������/���������������<��������������������������5������������������������������������������������������������������������������������������������������������V������������������������������������N��������������������������������������������������������������������������������������������1������������������������.������������������������������*������������������������������������������������L������������T��������������������������������������������������������������������������������������������������+����������������>����������������B��3������R��������������������������������������������!������������������������������7������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4������������������������������������������V�
{VVVVVVVVVVVVVVVVVVVVV�VVVVVVVVVVVVVVV~VVVVVVVVVV�VW_�1R����"#��F�ij�O3�VosN��������yH��C	���<���k�*���������.��-hP��R�g����r�* �g�Y��	=f�u��ftd gMl0�/��.w	��������������������������i����j�@iX�AjYE���`q����7`S@�� ^l�����5^R?������kh���W�?hWD��"��p��b���������9bTA����ml������Cl[F������r��d����;dUB���nx������OxaL���vx�$�Mv`K���rw��#�Ir^I�����u��!����V����\��������3\Q>��
j�����f��������=fVC���!oX�v����/XO<������������x����8���(6����t�����Kt_J���Yv#�"�0Yw�������T&������+TM:��
�����]�
���4]���������V�����-VN;����2�����������S|cN��!��z��
&�R��������)RL9�����i���e������<e�n������En�G���s)�������������p�������Gp]H����Zt�� �1ZP=�������|����U~dO��"��_{���(�6_��QzbM�� ��yA%���������W�eP��#�}|gQ��%���~k=��)z���j����(��;������7����~�������_��n�{B��z���s]��1����������t^��2�����
��6	���yc���7�������������?Z�i��=��Q���g������>g���r����0S�����*S9,��(����p|��.����^��m��4A�������������]���l����@�������L������[��j���>��������6������A��������4����l���*������0��2Y�~h��<�������������#������m���+$��"g�������J���&iS���'�������wa0�5������������.v`���4�������
���{eC�9����������"�0����?������o����-��y
�������E���.�-��I�������,�Q������Z����O���������3����������`��o���C������\�k��u?<�����$���:u_��3�������������q����/����$����R{���Lxb���6��	���N������zd��8��*��n�,�,��������hR���&*���������f���$3��}��*J��	}g��;��T�������[U�F�����T}�����������'Y�������������������
������	������b��q���E&����X�������y��5����Py����
�������>-��(���M��|f���:3������ �����a��p�	D@���.���������'�V���8�����1�)h����+��K���)'����������c���r��F�U��!�,U\�������X���7�2����D��w����!�Nw1�/�
������������������/����uG��s�Lu�Js����������+d�s���G������� f�����I@����%������������P��������'�������5��eH�t���H������%������K�������������oONGW�Fo���.W�������������P�B�������������m�������Dm\����B���9�����4���k���#���BkZ���;�����������aI��=���8a��[�������2[����F�q����E��Hq���>����������c������:c7��5�����������������������-���+��J�������������������������������������������D��������H����������������������M�������������������������������������������������������������������������������������������������������������<�������������������������K��������������C��������������:����8�����������}%��{��������������������������������~�������������������������������������������������������������������������������������/������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������1�����������������������������������������������	
�����������������������������������������
�~7{�x/�� A���s������������������"������������������������!��������
<3������������������������������������������������������)r.�3�������������������������8����?/����B1��������E�������������M�Ye��������^ ����a��������lr.������������t	��������������6�������������������������������������������������������������������v��������������������������������������������������������������������������+�����������������������������������������������������M������������BE�VYx������������_�e�����j���������s��������������������
�����.�����E�������������K����������������������������S��������	����������������������������������8���������@A������������E\������������������������������������������������MK����RKXo����]eX����������������������������������������������������jU��������{*�x����������������������������������������������������$�����������������������4��������������!���N��������������
��������N��������(+����4�����;���������������������@P������������GD��������`i���������������������nrsm��������w��m���������?�����������������������������������������������\����������������������������������������X���G�����
�����������������������������������������{��������&���������0:��������������������J|��������OR]��������W7��������������������\R����a��c�'���������������������������������������R�����������F���������������������������������C���������������������������
����=���������������2�������������7�����<�����������������������������A���������������������N^����q���������������������������������������������}B���������1�������������������������������������+�����������'����������������������������������������������������F�����������{�@���������C�������������������������������������������������������)��������������������������������������	�"�����+-����������������������������.j��������������������3�������������>�������������TdY�{V�������������`�������������h�����	�����������������������������������������������������W�������������������������������������������������������������������������������B����������t����������#�)4������������33<%����?�D ����L��������O��������U����[�j�p���������|J��������������������������������������������2�������������������������������������������������������������������5�����������������������������������������������������X�����������������������������������������������������������������������������������������������������������������#����������������u���������������
q���������������������������$�����)�8����;4I�������������YBag�����������������o^s^xi���������������������������������������������������������������}�������������#�q�����������������������������e�����s������������	�������������	���������������������������������!	����-	�����������������0	�=	�B	����������������������������M	�����W	�����u	���������	;�������������������������	���������	������	������	��������������	��������������������������	����������	��	��	�����������������������������
9��������
���������
�����(
���������H
6����W
C����������������������������������������o
�������������������������������������u
���������z
����������
o�������������������������
t�������������
r�
����������
&���������
'���������������������
5�
*�����
������
������������������
������
������
�������"�*)����;$H�P�XY]�e�m�u�}������������<�������������������������������������
����������#t4��������������������=g����C�M�_���������������������������������lsA�������3���������������v������������������������������������������������������������������������������������������
�����
�
=����5
��������?
xL
2X
�����������������\
�����w
Q�
����������
����������
�����������������
y�������������
,�
~�
w�����
O�
_�
������
�����������������������*����������������_��������&������������;�@Rd0��������������������oT��������w<����������������������������������������������������������%���������������������������������������������������������������c�����������������������������	���������������������������������.���������;�������������������������G�������������Q��������������������\�a���������f~����kbp���������������������~P����������������������g���������������i�����������������������������������������f�����������(�������������������������������������������������"������������������������������������������������������������������������������������������������@��������n������������b����
n��������������-�����>ECNYp����`G����f�{������������������������������������������������������������������������D���������y�������������J�������������I����������L����������������#��������������������������������������������������������������;���������������������������������������������������������������������",������������3�����������������E���������������������������������������������k������w�������������������[������������������������������������������������������������������������������������������D�{���������[��������������p��������������������������j��������������������������������%~������������������������-a����2���������������������7�����BL�Qk����VO����[���������������������e�������������h���������������������������������qfw��(�������������������������H�����1���������`������������������������������
����������/���������L�i���������r�w�������Q���������������`���|�������������p�����a�����Z�����������������8�Q��������������	f�����)�.�����������������8���������������������������������������������_�m�������������rn��������������������������O���������������������������������w���������������������$�������E�����k��������������M|��������'�,�������������H�Yo`A������������v?�������������>������������������������������������������������������������������������������������������������������9������������������������������������������������������������������������������$�����)r��������1����6�;A(������������Q�����������������_?u����������������������&���������������������z�������������������������������������������7�������������}�����������������������������������	M���������������������������(�4�������������������������F�������������������������K[��������e8��������������������������������������������������������������������������������������������)���������������W���������������������������������������������������������,�����T������������������������������������SZ����������������
����#.��������*S��������5���������DTI6��������������������[G��������������������jZr-��������}��������z�����"���������������������������������������������������������������������������������������������>�����������������v���������������������������������������%�:�F���������g����������������������������������������7@������������������������������������M�Y�������������j���������������������t���������h�������������������������������������=�������������s�����������������Y�������������/���������������������������������������������������_��������l&������������*����������������8�Gb������������������������������������������������R�������������������������Y���������������������������������������������������������������������b�f�k ����������������y-�����������������������������/�������������������������������������0�������������������������d�����������������������������������������������������������}�����������������������������������������������������������
���������������������������������a����������������������������%V����������������������������������������*H������������������������������������1V:���������������������������������������������������������������������������������������������������������������������������������������������Ch����������������I������������YP����������������������������������������������������������������������������������������������������o��������y��������������������������������������!���������������y�����������������������������������������������������������������������������������������������������������������������W���������������������������������������������������������������s�������������������������������������������������������������������������������l�����������������������������������������������������	u����������������������������������������������������������������\��������������������������������������������������������������������������������������������������������������������������������������������������������&d��������������������������������������������������������������������������������������������/�����������������������������������������A]������������R�������������������������������������c������������������������������������������������������������������������������������������������2�����������������q�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Y�����������������������������>��������������������������������L��������U������������5��������������������������������������������������������������������������������'m����������������������������������������������������5���������:���������������������������������D���������������������������������������������������������������������������������������������������������������������������������������������������������������������L�������������U�����������������������������������������������������������������������������ku������������������������������������������������qz������������������������������������{������i�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������c�������������������������������������������������������������0��������j��������������������������������#l��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������:k����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������C�������������������������������������������������������������������������������������������������K���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������T�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ue�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������J��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������H���������������������������������������������������������������������������������������������������������������������L�������������������������������������U���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������I�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Incnmncmcizccmcmaniinmanichaeanqaaizzzzqaacinchamscsmmandaicincuneiformcansmeinarmenianasciisinsamaritancszsinavestanincommonindicnumberformsincuneiformnumbersandpunctuationinthaiinipaextensionsmteiinspecialsinitialpunctuationinancientsymbolsinthaanainmiscellaneousmathematicalsymbolsalcinmusicalsymbolslmtailestermlinainlycianinmyanmarextendedalanaalnumintaithamincontrolpicturesinmiscellaneoussymbolsinmalayalamintransportandmapsymbolsinmiscellaneoussymbolsandarrowsinlinearainmiscellaneoussymbolsandpictographstaivietcwcmsinhalalatnlatinitalintamiltamlinlatinextendedcintailetaleinlatinextendedainlinearbideogramsnewtailuelnlinmeeteimayekextensionszlltinrunicincarianarmncariarmiinlatinextendedeincyrillicarmenianinmyanmarinnewtailuecarianmercarabicinmiscellaneoustechnicalinsyriacsamrzinhhansamaritanhanicwtincherokeeinsharadachammanichaeaninmahajanicntrlsinhinruminumeralsymbolsinethiopictamilmiaoinenclosedalphanumericstermchakmainsinhalashavianinosmanyainlatinextendedadditionalosmallthaimaththaainenclosedalphanumericsupplementethiconnectorpunctuationinlowsurrogatesinsinhalaarchaicnumberstaithamthaanalinearadiidcmeroiticcursivemandinmodiinmandaiccwlasciihexdigitdiaterminalpunctuationmendsindwarainwarangcitiinideographicdescriptioncharactersinemoticonsidsinsundanesepiindominotilespcloetitlecaseletterinopticalcharacterrecognitionidstshawcwcfidcontinueinphaistosdiscpeindeseretinspacingmodifierlettersinlydianpshirawhitespaceinscriptionalparthiancherinmathematicalalphanumericsymbolsincopticinhiraganainenclosedcjklettersandmonthsspaceoriyameromahjtirhsorainscriptionalpahlaviinarrowsmahajanijoincincopticepactnumbershanopalmintirhutapatwsinolchikiinlepchanolepcinoghamcoinnkoalphapsalterpahlaviinmroinpalmyrenecommoncfinmiaosodiacriticinsundanesesupplementintifinaghtifinaghodioidcmodidecimalnumberletterdashinsylotinagriinolditalicwspacedsrtideosiddhampermoidsinmahjongtileslolineseparatorimperialaramaicidstartinlaosharadalaolaoomongolianoalphainimperialaramaicncharinlatin1supplementprticprtnddeseretinoldturkicradicalcanadianaboriginalinmodifiertonelettersincaucasianalbaniancopticcasedlettersdinphoeniciansiddprivateusesundaneseinancientgreekmusicalnotationinsiddhamcasedprintininscriptionalparthianininscriptionalpahlavicoptinancientgreeknumberssaurashtramromrooinalphabeticpresentationformslowercasephlipatternwhitespaceinenclosedideographicsupplementspaceseparatorinmathematicaloperatorsomathlisuinpsalterpahlaviolditalichanunooinheritedlepchapinmongolianzpfinalpunctuationotheridcontinueshrdingranthataluotheralphabeticnoncharactercodepointage=1.1age=2.1closepunctuationletternumberage=6.1age=6.2teluage=3.1age=3.2age=5.1age=5.2age=2.0age=6.3inshorthandformatcontrolsinoldnortharabianage=6.0age=4.1ingeneralpunctuationage=3.0age=7.0age=5.0innabataeanage=4.0bamumcontrolinduployaninlatinextendeddinarabicrunicinelbasaninoldsoutharabianinbasiclatinformatinnumberformsinugariticseparatoridsbinaryoperatortagbanwabasssaurnbatintaixuanjingsymbolsjoincontrolotheridstartinbyzantinemusicalsymbolsintagsnabataeaninsuperscriptsandsubscriptsintibetaninsaurashtraothersymbolextinarabicpresentationformsainmiscellaneousmathematicalsymbolsbotherlowercasephoenicianlowerlinbpoinmyanmarextendedblimbinbraillepatternstibtcuneiformbalioldpersianoldpermicpfwordtibetanincyrillicsupplementelbainsupplementalmathematicaloperatorsinbalinesebengalicaseignorableincountingrodnumeralsothertirhutaothernumberbalineseelbasaninunifiedcanadianaboriginalsyllabicslowercaseletterethiopicgraningurmukhisundinethiopicsupplementinoldpersianinoldpermicothermathunassignedhmngnarbbraihanginsorasompengarabplrdingujaratibrahmirunrahexmongpaucsarbogamolowerpdnumberinbrahmiotherletteringothicphagspainletterlikesymbolsyihangulyiiitfnginsupplementalarrowscingreekandcopticxidcinsupplementalarrowsagothicgrextincombininghalfmarksdeprecatedinbassavahxidslinearbingeometricshapesphlpwarangcitiinblockelementsmodifierletterindingbatsdeppunctinhanunoobidicingreekextendedidsbassignedotherpunctuationinhangulsyllablesinarabicmathematicalalphabeticsymbolsinornamentaldingbatsinphagspalycimlyminarabicextendedarjnglycianinalchemicalsymbolsxdigitdigitxidstartinrejangmalayalamidstrinaryoperatorinvaivaivaiihiraganaingeorgianbraillegeorbrahglagoliticinkannadacakmkanahebrinshavianvsinchakmaoghamsylotinagriinunifiedcanadianaboriginalsyllabicsextendedinmeroitichieroglyphsgranthagraphemebasemathsymbolmymrinsupplementaryprivateuseareaamendekikakuiincjkcompatibilityformsinhalfwidthandfullwidthformsincjkcompatibilityideographsinkaithiavstinarabicsupplementtakrisyrcmeeteimayekmyanmaravestaninhanguljamoextendedagothinkatakanaincyrillicextendedaalphabeticsyriacideographicincjkstrokesinlinearbsyllabarytavtintaivietincjkcompatibilityideographssupplementinmeeteimayekkaliinyiradicalsluinoriyahebrewextenderinhighprivateusesurrogateslimbuinbuhidinethiopicextendedaxidcontinueinyijinghexagramsymbolslogicalorderexceptioninhebrewcyrlosmanyaphnxincombiningdiacriticalmarksinkanasupplementinlisuchangeswhencasemappedincombiningdiacriticalmarksforsymbolscwuphaginsmallformvariantsinpahawhhmongotheruppercaseinteluguincombiningdiacriticalmarkssupplementingeometricshapesextendedxpeobamuinbamummarkduplgraphdashpunctuationpatternsyntaxchangeswhentitlecasedinkharoshthiinkhmerjavasylougariticotherdefaultignorablecodepointsoftdotteduideoinphoneticextensionsinjavaneseinvariationselectorskaithicyrillicintakritakrjavanesebidicontrolcaucasianalbanianlydiinsupplementalpunctuationinphoneticextensionssupplementlydianoldturkicinvariationselectorssupplementkthiinhanguljamopatsyninlimbusorasompengoryainkhmersymbolsinglagoliticindevanagaridevakndainbengalisymboldevanagariinmendekikakuibenginvedicextensionsgraphemeextendkannadainbugineseolckmeroitichieroglyphsugarintagaloginbamumsupplementolchikiincurrencysymbolstagbinaegeannumbersintagbanwauppercasedefaultignorablecodepointglaginkatakanaphoneticextensionschangeswhencasefoldedinpaucinhauinprivateuseareapaucinhauspacingmarkkhmrkharinarabicpresentationformsbchangeswhenlowercasedtglginethiopicextendedincombiningdiacriticalmarksextendedoupperincjksymbolsandpunctuationbopopunctuationcombiningmarkinplayingcardsinbopomofohypheninkhojkinkonkooenclosingmarkopenpunctuationcurrencysymbolinverticalformshexmodifiersymbolinlatinextendedbkharoshthicherokeepahawhhmongcypriotincypriotsyllabarypalmyreneupperaghbgeorgiangujrgrbasegujaratihexdigitkhmeruppercaseletterinsupplementalarrowsbsurrogateunifiedideographnonspacingmarkothergraphemeextendindevanagariextendedorkhingeorgiansupplementoldnortharabiantagalogkhojbopomoforejangbuhdincjkradicalssupplementinkanbunvariationselectorinkangxiradicalsinhighsurrogatesinsupplementaryprivateuseareabogrextbatkinhanguljamoextendedbinbatakincyrillicextendedbinnoblockanyxsuxbugiinkhudawaditeluguchangeswhenuppercasedgrekguruparagraphseparatorbugineseinyisyllablesegypkhudawadiunknownbassavahinegyptianhieroglyphsbuhidinkayahliinmeroiticcursiveincjkcompatibilityoldsoutharabianquotationmarkinhangulcompatibilityjamoqmarkincjkunifiedideographsextensioncskincjkunifiedideographsextensionaincjkunifiedideographskatakanakayahliduployanincjkunifiedideographsextensiondinbopomofoextendedkhojkizyyyegyptianhieroglyphsincjkunifiedideographsextensionbbatakblankinboxdrawinggreekgurmukhigrlinkgraphemelink(`����/�/p�������p�����@		�
�
��P_��P���`�����$�/04�gpj�j�k�n�o���������P����������������������� ��� ���
������������@���?�ߦ�������������P���O��������������0����/����������`���_��O�����������������o�ok�k�j�j@jojh?j0/4$$ �#������_������O����PO����`O��`@_?�
�

_
�	�	 	?			��@_?0o/������P0O/����������@�?�������p���P�o�0�O� �/�����P����O���������������������������0�o��/������ߪ`���_������ߩ`��0�_��/������ߨ@��0�?��/� ���������@����?���Ϥ���N���M�M4�M3�32�2�1�1�1�1�1�1�1�101�11/1�0�0@0�00?0�/�//�/�.�...�-�-�-�-0---/-�,�,`,,,_,+�+*�*�)�)))�'�'�'�''�'&�&�%�%�%�%%%`$�$@$_$$?$#�#"�"�!�!P!�!!O!� � � � p �  o ����������O������ �����PO�����`@_ ?����������������
�


�����
�


�	�			��@_?����PO���0�/�p�o��P��O��bwz�������/1VY_a�����������
JM���-0>@[^^����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*9=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�������KP|���7;IM�������� EHMPWYY[[]]_}�������������� d f q t � � � � � � � !�!�!�#$&$@$J$`$s+v+�+�+�+�+�+�+�+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-B.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީ���6�@�M�P�Y�\�ª۪����	���� �&�(�.�0�_�d�e�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �-�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37�������������#0JPz���������'0coo6@U`g
578<<?UW���			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`
�
�
�
�
�
59UXrx�����H`~MRo�����46CPv��������=����(*02359<DGHKMWW]cflpt��������DPY���������� �#$n$p$t$0.4h8j@j^j`jijnjoj�j�j�j�jkEkPkYk[kakckwk}k�koDoPo~o�o�o���j�p�|�����������������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0����������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`���������֦�4�@����������������������������������	��	��
��
����������
��
 �����%wz~�������'1VY_a�����������
JM���-0>@[^^������	w	y		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*359=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�����KP|���7;IM������ EHMPWYY[[]]_}�������������� d f q t � � � � � � � !�!�!�#$&$@$J$`$�&'L+P+Y+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-;.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީߩ�6�@�M�P�Y�\�{���ª۪����	���� �&�(�.�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �&�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37��������� #0J���������
578<<?UW_			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`

59UXrxH`~MRo������46C�������� n#$b$p$s$0.4h8joDoPo~o�o�o������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R���������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0��������������������
��.�0�k�p�������:�@�H�P�Q�� �0�5�7�|������������������>�@�@�B��������=�@�C�P�g���@�E�O�����s���֦�4�@����������������������������������	��	��
��
����������
��
 �����%wz~�������'1VY_a�����������
JM���-0>@[^^������	w	y		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*359=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�����KP|���7;IM������ EHMPWYY[[]]_}�������������� d j q t � � � � � � � !�!�!�#$&$@$J$`$�&'L+P+Y+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-;.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީߩ�6�@�M�P�Y�\�{���ª۪����	���� �&�(�.�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �&�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37��������� #0J���������
578<<?UW_			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`

59UXrxH`~MRo������46C�������� n#$b$p$s$0.4h8joDoPo~o�o�o������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R���������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0��������������������
��.�0�k�p�������:�@�H�P�Q�� �0�5�7�|������������������>�@�@�B��������=�@�C�P�g���@�E�O�����s���֦�4�@����������������������������������	��	��
��
����������
��
 �����%wz~�������'1VY_a�����������
JM���-0>@[^^������	w	y		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*359=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�����KP|���7;IM������ EHMPWYY[[]]_}�������������� d j q t � � � � � � � !�!�!�#$&$@$J$`$�&'L+P+Y+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-;.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީߩ�6�@�M�P�Y�\�{���ª۪����	���� �&�(�.�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �&�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37��������� #0J���������
578<<?UW_			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`

59UXrxH`~MRo������46C�������� n#$b$p$s$0.4h8joDoPo~o�o�o������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R���������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0��������������������
��.�0�k�p�������:�@�H�P�Q�� �0�5�7�|������������������>�@�@�B��������=�@�C�P�g���@�E�O�����s���֦�4�@����������������������������������	��	��
��
����������
��
 ������wz~�������'1VY_a���������
JM���-0>@[^^	w	y		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*359=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq����������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�����KP|�������7;IM���� EHMPWYY[[]]_}�������������� d j q t � � � � � � � !�!�!�#$&$@$J$`$�&'�'�'�'�'L+P+Y+,.,0,^,`,�,�,%-0-e-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-1.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M˟�����ƤФ+�@�s�|��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީߩ�6�@�M�P�Y�\�{���ª۪ߪ��	���� �&�(�.�������������������-�0�m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �&�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37��������� #0J���������
578<<?UW_			9	?	?	








3
8
:
?
G
P
X
`

59UXrxH`~MRo�� n#$b$p$s$0.4h8j������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R������������+�0��������������������
��.�0�i�p�������:�@�H�P�Q�� �0�5�7�|������������������>�@�@�B��������=�P�g����������������� �%�(�+�-�-�0�3�5�@�E�O�����s���֦�4�@����������������������������������	��	��
��
����������
��
 ������wz~�������%1VY_a���������!^`
JM���-0>	9	<	N	P	U	X	r	y		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfq��������������������������������(*359=DFHJMUVXY`cfox����������������������������






(
*
9
=
D
F
H
J
M
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq������������HJMPVXXZ]`����������������Z_|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�����KP|����7;IM���� EHMPWYY[[]]_}�������������� d j q t � � � � � � � !�!�!�#$&$@$J$`$�&�&�&�&�&�&�&'''	'''')'K'M'M'O'R'V'^'a'�'�'�'�'�'�'�'�'�'�'L+P+Y+,.,0,^,`,�,�,%-0-e-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-1.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M˟�����ƤФ+�@�_�b�s�|������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީߩ�6�@�M�P�Y�\�{���ª۪ߪ������������������-�0�m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �&�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37��������� #0J���������
578<<?UW_			9	?	?	








3
8
:
?
G
P
X
`

59UXrxH`~�� n#$b$p$s$0.4����&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R������������+�0����
��.�1�1�=�=�?�?�B�B�F�F�J�N�W�W�_�_�y�y�{�|��������������1�@�H���֦�4���������������������������������	��	��
��
����������
��
 ������wz~�������#1VY_a���������!^`
JM���	9	<	M	P	T	X	r	{		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfq��������������������������������(*359=DFHJMUVXY`cfox����������������������������






(
*
9
=
D
F
H
J
M
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq��������������Y_���HJMPVXXZ]`����������������Z_|����v���� 6@S`lnprs������ w�� +0;@@Dmpt�������KP|����7;IM�� EHMPWYY[[]]_}�������������� d j q t � � � � � � � !O!S!�!�!�#$&$@$J$`$�&�&�&�&�&'''	'''')'K'M'M'O'R'V'V'X'^'a'�'�'�'�'�'�'�'�'�'�'L+P+T+,.,0,^,`,o,q,},�,�,�,%-0-e-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-0.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2C2P2�23�M�Mß�����Ƥ�+�@�_�b�s�|��������+�@�w���ĨΨ٨�S�_�_��6�@�M�P�Y�\�_�����-�0�j�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �&�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37��������� #0J���������
578<<??			9	?	?	








3
8
:
?
G
P
X
 n#$b$p$s$����&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R������������+�0�����֦��������������������������������	��	��
��
����������
��
 ������otuz~�����������1VY_a���������!:@^`
JMm����	9	<	M	P	T	X	p	{		�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<CGHKMVW\]_afq������������������������������(*359>DFHJMUV`afo����������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIjq���������!#')*,269@Y����Y_���HJMPVXXZ]`����������������Z_|����v���� 6@S`lnprs������ w�� +0;@@Dmpt�������KP|����� EHMPWYY[[]]_}�������������� c j q t � � � � � � � !N!S!�!�!�#$&$@$J$`$�&�&�&'''	'''')'K'M'M'O'R'V'V'X'^'a'�'�'�'�'�'�'�'�'�'�'+ +#+,.,0,^,`,l,t,w,�,�,�,%-0-e-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-....�.�.�.�./�/�/�/0?0A0�0�0�01,111�1�1�1�1�1�12 2C2P2�23�M�M�������Ƥ�� �!��+�@�w�����-�0�j�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �#�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37� #0J���������
578<<??				








3
8
:
?
G
P
X
 n#$b$p$s$����&�*����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������֦��������������������������������	��	��
��
����������
��
 ������APotuzz~~��������������1VY_a�����������!:@^`
JMm��	9	<	M	P	T	X	p	}	}	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<CGHKMVW\]_afq������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIjq���������!#')*,269@Y����Y_���HJMPVXXZ]`����������������Z_|����v���� 6@S`lnprs������ w�� +0;@@Dmpt����������� EHMPWYY[[]]_}�������������� c j q t � � � � � � � !L!S!�!�!�#$&$@$J$`$�&�&�&'''	'''')'K'M'M'O'R'V'V'X'^'a'�'�'�'�'�'�'�'�'�'�'+,.,0,^,�,�,�,%-0-e-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-....�.�.�.�./�/�/�/0?0A0�0�0�01,111�1�1�1�1�1�12 2C2P2�23�M�M�������Ƥ���+�����-�0�j�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �#�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37� #0J���������
578<<??








3
8
:
?
G
P
X
����&�*����E��V��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������֦��������������������������������	��	��
��
����������
��
 ������6PW]otuzz~~�����������������1VY_a�������������!:@X`
JMO��	9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<CGHKMVW\]_afq��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIjq���������!#')*,269@Y������Y_���FHHJMPVXXZ]`������������������������ FHZa|��v���� 6@S`lnprs������ w�� +0;@@Dmpt��k��� EHMPWYY[[]]_}�������������� T W W _ c j q t � � � � � !;!=!K!S!�!�!�#$&$@$J$`$&&}&�&�&�&�&'''	'''')'K'M'M'O'R'V'V'X'^'a'�'�'�'�'�'�'�'�'
+�.�.�.�./�/�/�/0?0A0�0�0�01,111�1�1�1�12 2C2P2}22�23�M�M�������Ƥ����-�0�j������6�8�<�>�>�@�A�C�D�F����?�P����������� �#�0�R�T�f�h�k�p�t�v������������������������
&(:<=?MP]��37? #0J�������
578<<??����&�*����V��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������֦��������������������������������	��	��
��
����������
��
 ������ "3P���O`otuzz~~�����������������1VY_a�������������!:@U`���
,0J��			9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02369<CGHKMVW\]_afp��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIjq���������!#')*,269@Y������Y_���FHHJMPVXXZ]`������������������������ FHZa|��v���� 6@S`lnprs���� w����� EHMPWYY[[]]_}�������������� R W W _ c j q t � � � � � !:!=!K!S!�!�!�#$&$@$J$`$�$%&&&&}&�&�&'''	'''')'K'M'M'O'R'V'V'X'^'a'�'�'�'�'�'�'�'�'�*�.�.�.�./�/�/�/0?0A0�0�0�01,111�1�1�1�12 2C2Q2{22�2�2�23v3{3�3�3�34�MN�������Ƥ����-�0�j������6�8�<�>�>�@�A�C�D�F����?�P����������� �#�0�F�I�R�T�f�h�k�p�t�v�������������������������� #0J%(M����&�*����T�V���������������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������֦��������������������������������	��	��
��
����������
��
 �����"3P���N`btuzz~~�������������������������1VY_a�������������!:@U`mp���
,0J��			9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02369<CGHKMVW\]_afp��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIjq���������!#')*,269@Y������Y_���FHHJMPVXXZ]`������������������������ FHZa|��v�������� w����� EHMPWYY[[]]_}�������������� F H M j p t � � � � � !:!S!�!�!�!"�"#{#}#�#$&$@$J$`$�$%�%�%�%&&&q&'''	'''')'K'M'M'O'R'V'V'X'^'a'g'v'�'�'�'�'�'(�(�.�.�.�./�/�/�/0:0>0?0A0�0�0�0�0�01,111�1�1�122 2C2`2{22�2�2�2�2�23v3{3�3�3�34�MN�����������������¤ĤƤƤ����-������6�8�<�>�>�@�A�C�D�F����?�P��������� �#�0�D�I�R�T�f�h�k�p�r�t�t�v��������^�a������������������� #0J%(M����&�*����T�V���������������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������֦��������������������������������	��	��
��
����������
��
 ����q"3P���N`btuzz~~�������������������������1VY_a�������������!:@U`mp���
,0J��			9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02369<CGHKMVW\]_afp��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIjq���������!#')*,269@Y������Y_���FHHJMPVXXZ]`������������������������ FHZa|��v�������� w����� EHMPWYY[[]]_}�������������� F H M j p t � � � � � !:!S!�!�!�!"�"#{#}#�#$&$@$J$`$�$%�%�%�%&&&q&'''	'''')'K'M'M'O'R'V'V'X'^'a'g'v'�'�'�'�'�'(�(�.�.�.�./�/�/�/0:0>0?0A0�0�0�0�0�01,111�1�1�122 2C2`2{22�2�2�2�2�23v3{3�3�3�34�MN�����������������¤ĤƤƤ����-������6�8�<�>�>�@�A�C�D�F����?�P��������� �#�0�D�I�R�T�f�h�k�p�r�t�t�v��������^�a�����������������������������������������������������	��	��
��
����������
��
����8��P�����E`atuzz~~��������������������OQ\^�������������1VY_a�������������!:@R`mp���������			9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02369<CGHKMVW\]_afp��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
:?[������������������������������������GIiq�����������������Y_������ EHMPWYY[[]]_}�������������� . 0 F j p t � � � � � !8!S!�!�!�!"�"###z#$$$@$J$`$�$%�%�%�%&&&o&'''	'''')'K'M'M'O'R'V'V'X'^'a'g'v'�'�'�'�'�'070?0?0A0�0�0�0�0�01,111�1�1�122 2C2`2{22�2�2�2�2�23v3{3�3�3�3N������-������6�8�<�>�>�@�A�C�D�F����?�P��������� �#�0�D�I�R�T�f�h�k�p�r�t�t�v��������^�a�����������������������������������������������������	��	��
��
����������
��
����8��P�����E`atuzz~~��������������������OQ\^�������������1VY_a�������������!:@R`mp���������			9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02369<CGHKMVW\]_afp��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
:?[������������������������������������GIiq�����������������Y_������ EHMPWYY[[]]_}�������������� . 0 F j p t � � � � � !8!S!�!�!�!"�"###z#$$$@$J$`$�$%�%�%�%&&&o&'''	'''')'K'M'M'O'R'V'V'X'^'a'g'v'�'�'�'�'�'070?0?0A0�0�0�0�0�01,111�1�1�122 2C2`2{22�2�2�2�2�23v3{3�3�3�3N������-������6�8�<�>�>�@�A�C�D�F����?�P��������� �#�0�D�I�R�T�f�h�k�p�r�t�t�v��������^�a�����������������������������������������������������	��	��
��
����������
��
���� ��P�����E`atuzz~~��������������������OQ\^�������������1VY_a�����������!:@R`mp���������			9	<	M	P	T	X	p	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Y
\
^
^
f
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02369<CGHKMVW\]_afp��������������������������������(*359>DFHJMUV`afo��������������������������






(
*
9
>
C
F
H
J
M
W
W
`
a
f
o
:?[������������������������������������������Y_������ EHMPWYY[[]]_}�������������� . 0 F j p t � � � � � !8!S!�!�!�!"�"###z#$$$@$J$`$�$%�%�%�%&&&o&'''	'''')'K'M'M'O'R'V'V'X'^'a'g'v'�'�'�'�'�'070?0?0A0�0�0�0�0�01,111�1�1�122 2C2`2{22�2�2�2�2�23v3{3�3�3�3N���-������6�8�<�>�>�@�A�C�D�F����?�P��������� �#�0�D�I�R�T�f�h�k�p�r�t�t�v��������^�a�������������������Vxy��������00WX``������������KL����./??\]_����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	






)
)
1
1
4
4
7
7
:
;
=
=
C
F
I
J
N
P
R
X
]
]
_
e
v
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�

))1144:;EFIJNUX[^^dex���������������������������������

)):<EEIINTWWZ_depw�����������������������������








;
<
E
E
I
I
O
V
X
_
d
e
v
x
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
;>\�������������������������������������HHmp��������������IINOWWYY^_����������������[\}��������

7?T_mmqqt������x����,/<?ACnou������__}~��������LO}��8:JL����������FGNOXXZZ\\^^~��������������e e r s � � � � � � � � �!�!�#�#'$?$K$_$t+u+�+�+�+�+�+�+�+�+/,/,_,_,�,�,&-&-(-,-.-/-h-n-q-~-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-C..�.�.�.�.�/�/�/�/@0@0�0�011.101�1�1�1�1�1�122�2�2�M�M͟������ǤϤ,�?���������������������,�/�:�?�x��Ũͨڨߨ����T�^�}��ΩΩکݩ����7�?�N�O�Z�[�êڪ���������'�'�/�/�`�c�f���������������������n�o��������7�7�=�=�?�?�B�B�E�E���@�O�������������.�/�S�S�g�g�l�o�u�u����������������������������'';;>>NO^��46�������������$/KO{����������(/dnp�7?V_h�		669;=>VV����		:	>	@		�	�	�	�	







4
7
;
>
H
O
Y
_
�
�
�
�
�
�
68VWsw������I_�NQp~������55DOw��������>����
))1144:;EFIJNVX\demou�������EOZ����������#�#o$o$u$�//4�g9j?j_j_jjjmjpj�j�j�j�j�jFkOkZkZkbkbkxk|k�k�nEoOoo�o�o�����k�o�}������������������'�(�����F���W�_�r���U�U�����������������������������������������:�:�?�?�E�E�G�I�Q�Q���������������������� � �#�#�%�&�(�(�3�3�8�8�:�:�<�A�C�F�H�H�J�J�L�L�P�P�S�S�U�V�X�X�Z�Z�\�\�^�^�`�`�c�c�e�f�k�k�s�s�x�x�}�}���������������������������,�/���������������������
��/�/�l�o�������;�?�I�O�R���-�/�~��������������K�O�z�z�����C�D��������t�������H�O�Z�_���������צ��5�?����������!/:@[^``{~�������������������� ' 0 > A S U ^ �!_$%u'�'�+..000 00000>�?�E�F�	
  ��  ( ) 
���<!!..??������d	e	JKbbghnn56		DE��Z[^_;<~< = G I ....<.<.00������������v�w�ΨϨ/�/�ȩɩ]�_�����R�R�V�W�������a�a�V
W
GH��AC����89;<����ABnjoj�j�j7k8kDkDk��������iq��!!.!.!�0�0@D��������������ij//IIhh������VVXXbb������--��q q H!I!|,|,"�#�V�W�������������&�'�Z�[�������������*�+�^�_�����	IIsswwyy��j o )#*# OO_`��e e d1d1�����������4�MN̟��������!�!�#�$�'�)�֦�4�@���.�.�.�./�/�/�/�/�/�/�/�	�	�	�	>>WW��������>
>
W
W
�
�
�
�
 
 .0/0����>>WW������e�e�n�r�����������������������������������������	��	��
��
����������
��
������������`!o!�$�$0�I�P�i�p�������������EEzz,jxx��q q   � � p!!�$�$|,},����p�p�����\�_�����@@��FF��

CC��66{{001050�0�0�0�0����ϩϩ��p�p�ݪݪ��p�p�]]��BkCk�^^``���������NPW]btuzz����YY����������KRWX������0J������<	<	M	M	Q	T	q	q	�	�	�	�	<
<
M
M
�
�
�
�
<<MM��MM����M
M
�
�
GLNN��557799>?������779:����������9;u|��44DDks��67x}��������,j�������������������,�,/./.*0/0�0�0�0�0o�o�|�}����������!���������ĨĨ��+�.�S�S�����������{�}���ª����[�_����� �-�>�>�@�@�p�p����������
�
��34ss��56��<<MMflpt����??���j�j�o�og�i�m�r�{���������������00!0)080:04�MN̟�m�p��֦�4�@�����EE����������KWY_pp��������0?��#%'),���	:	;	>	L	N	O	U	W	b	c	�	�	�	�	�	�	�	�	�	�	�	�	

>
B
G
H
K
L
Q
Q
p
q
u
u
�
�
�
�
�
�
�
�
�
�
>DGHKLVWbc����������>DFHJLUVbc������������

>
D
F
H
J
L
W
W
b
c
�
�
�
�
�
�
�
�
�
�
114:MM��������q�����+688;>VY^`bbghqt����__23RSrs���� +08����U^at5C��������$5�����$�$�-�-t�{�����#�'�������è&�*�G�R���������)�6�C�C�L�M���������������������������vz





8E����'2����,477��>DGHKLWWbc������0>@@��0k6kQo~o����0�I�P�i�p���09AFaf��!�&�A�F��^^��������  2 4 @ @ a d } ~ � � � � � � � � � � !!!!
!!!!!!$!$!(!)!,!-!/!1!3!8!<!?!E!I!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!##�#�#�#�#�#�#�#�#�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%&&@&@&B&B&`&c&m&n&�'�'�'�'�)�)�)�)�)�)a�a�c�c�h�h�<�<�>�>��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p�����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������V!!,,..:;??~~��������
��0>^^d	e	Z[
JKahmn��56����	DE��Z[]_;?~< = G I ....<.<.A.A.00����
�����v�w�ΨϨ/�/�ǩɩ]�_�ߪߪ����P�R�T�W�����������a�a�d�d�����WW		V
W
�
�
:?��GM��AC����8<����ABp$t$njoj�j�j7k9kDkDk����
""''����  9 : B.B.0000A�D�����b�c�
--����  ..�0�0c�c�
�
�e�e�--����  S S { { � � ""....:.;.@.@.000000�0�01�2�X�X�c�c�
�
� 
   * . f i ����������������������Pz��`�����
�
@j^j`jijnjojDPY��������
�
�
�
Pv6@U`g=kEkPkYk[kakckwk}k�k(*02359<DGHKMWW]cflpt'�j�p�|��������������j�j�j�j0coo��������������oDoPo~o�o�o�	�	�	�	�	�	46C@[^^MRo������H`rx@UX_`

@UW_�����������ͩЩ٩ީߩ����h8jФ��-0>0.459?��ª۪ߪ ^`|������6�@�M�P�Y�\�_� 	9	?	?	����0�S�_�_��-�/�/���ĨΨ٨�+�P7;IMO������@�w�				 �#$n$p$t$KP|








3
8
:
?
G
P
X
�����+�0-g-o-p---,.,0,^,�����������,�,�,�,(�(
578<<??����P����
&(:<=?MP]��Pmpt +0;@@DO`lnprs@S 4o��KUppQ	R	������������������ 
 � � *0-0�0�0�� �-�����g�i�{������������O0J#�����Ƥ�.�.�.�./�/0000!0)080;04�MN̟�m�p��֦�4�@������1-1�1�1�0�0�0�0�1�1�2�23W3f�o�q�����A0�0�0�0���� w�������������������� HJMPVXXZ]`����������������Z]|���-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-��	���� �&�(�.��.0/011�122`2~2`�|����������������������������������-%-'-'-----����`��GIlq���������������������������������������������:@[
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
��






:
=
D
F
H
J
N
W
W
`
c
f
u
y

����������������������������
(*9=DFHJMUVXY`cfox��������������������������������(*02359<DGHKMVW\]_cfw
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�








(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�		P	S	c	f		�����
JMO7
 ?AJV_joq���P����P����=�P���������p�t�v���`~����!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~�������������������������	�������6�8�<�>�>�@�A�C�D�F�O�1VY_a���������/++xx�-�-@�������$psuwz}��������������&*]afj�� EHMPWYY[[]]_}��������������&!&!e�e�@����E�!AZaz������������%,\bekwy��q q   � � *!+!2!2!N!N!`!�!`,,"�������������������0�Z�\�_�d�d���!�:�A�Z��@[`{���������������tt~~������@@`i��d	e	??������56����������   d f p t ~ � � � � !%!'!)!,!1!3!M!O!_!�!�!�!�#$&$@$J$`$�')s+v+�+�+�+�+�+�+�+.B.�/�/00000 00070<0?0�0�0�0�0�0�0�1�1�1�1 2_22�2X3�3�M�M�!�����0�9�.�.�ϩϩ[�[�>�?���0�R�T�f�h�k������ �;�@�[�e�p�p�������������37?��������������&�)�f�j�z��������������V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R������������+�0����������������������.�0�k�p����������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`������� (M	M	�	�	M
M
�
�
MM��MM��M
M
�
�
::��9:44��``DD����--��ĨĨS�S�����������?
?
FF��34��55��MM����??��� ~����pwz���������/1VY_a�����������������J`oq��������
/M�������$$((0>@X^^��	9	;	;	=	@	I	L	N	P	X	a	d	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
>
@
Y
\
^
^
f
o
r
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359==@@GHKL\]_afw��������������������������������(*9==ADXY`afox������������������������������






:
=
=
?
@
F
H
J
L
N
N
`
a
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
023?FO[������������������������������������46688:GIl����������,1188;<?WZ]apu��������������HJMPVXXZ]`����������������Z`|������� 156@Q`lnp��������������
 w������#&)+0138@@Dmpt�������UWWaacdmr������355;;=ACKPjt|�����������������+45;IM������������� EHMPWYY[[]]_}�������������� 
  ' / _ p q t � � � � � !�!�!�#$&$@$J$`$s+v+�+�+�+�+�+�+�+,.,0,^,`,�,�,�,�,%-'-'-----0-g-o-p-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-.B.�.�.�.�./�/�/�/0)000?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@�n�s�s�~��������������������������
��$�'�+�0�9�@�w���èΨ٨����%�.�F�R�S�_�|���������������ͩϩ٩ީ�����(�/�0�3�4�@�B�D�K�M�M�P�Y�\�{�}�������������������ªª۪������	���� �&�(�.�0�_�d�e�����������������������m�p���������6�8�<�>�>�@�A�C�D�F����?�P�����������0�R�T�f�h�k�p�t�v��������������������������
&(:<=?MP]��37�������������#0JPu���������'0coo6@U`g
578<<?UW���			9	?	?	�	�	�	�	






3
@
G
P
X
`
�
�
�
�
�
59UXrx�����H`~7GMRo������������&,,6CPrtv����������.23558=������(*02359==??ADGHKM]c��������������������������2;<>>ADPY���������������� �#$n$p$t$0.4h8j@j^j`jijnjoj�j�j�j�jk/k7kEkPkYk[kakckwk}k�koDoPo~o�o�o���j�p�|���������������������&�)�d�f�f�j�m��������������A�E�E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0����������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`�������֦�4�@����o������������K_pp��������0J����#%')-Y[�	:	:	<	<	A	H	M	M	Q	W	b	c	�	�	�	�	�	�	�	�	�	�	�	�	�	�	

<
<
A
B
G
H
K
M
Q
Q
p
q
u
u
�
�
�
�
�
�
�
�
�
�
�
�
<<>?ADMMVWbc����������>@FHJMUVbc����������������

>
>
A
D
M
M
W
W
b
c
�
�
�
�
�
�
�
�
�
�
114:GN��������557799q~����������-0279:=>XY^`qt��������]_24RSrs����������
�� "'(229;VVX^``bbels|��446:<<BBks����������������,367���������������� 
 � � �,�,--�-�-*0/0�0�0o�r�t�}�������������%�&�ĨĨ��&�-�G�Q�������������������)�.�1�2�5�6�C�C�L�L�|�|������������������������������������� �-���������vz





8
:
?
?
�
�
8F�����'+-4ss����/14467����<<>>@@WWflpt��������������������3:==?@���������j�j0k6k�o�o����e�e�g�i�n�r�{�����������B�D��������OO_`��  * . ` o d1d1�����������������s�z��y09AZ__az����������������������tvw{}�������������/1VYYa��������������� in���������JM�����-@[���c	f	o	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfoqq��������������������������������(*9=DFHJMUVXY`cfo����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
o
z

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:@NPY������������������������������������ )557799>GIlq�������IP����������HJMPVXXZ]`����������������Z]_iq����lo������ 4@S`lnprs��������
 w���� +0;Fmpt������ ^`|�������KPYks��7@IM}�������� EHMPWYY[[]]_}��������������������? @ T T q q   � � � � � � � � !!!!
!!!!!!$!$!&!&!(!(!*!9!<!?!E!I!N!N!`!�!,.,0,^,`,�,�,�,-%-'-'-----0-g-o-o--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-00!0/0105080<0A0�0�0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф�����+�@�o�t�}���������"�����������������'�@�s���ĨШ٨��������-�0�S�`�|�����ϩ٩����6�@�M�P�Y�`�v�z�ª۪ݪ�������	���� �&�(�.�0�Z�\�_�d�e���������������������m�p�������(�*�6�8�<�>�>�@�A�C�D�F����]�d�=�P����������� �-�3�4�M�O�q�q�s�s�w�w�y�y�{�{�}�}������!�:�?�?�A�Z�f�����������
&(:<=?MP]��@t��������0JPz�����������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	








3
8
:
?
?
`
|
�
�
�
�
�
�
5@U`r��HFfo�����46?Psvv����7����(*02359<DGHKMWW]cflpt����������@DDPY���������� �#$n$0.4h8j@j^j`jij�j�j�j�jk6k@kCkPkYkckwk}k�koDoPo~o�o�o���j�p�|�������������e�i�m�r�{�����������B�D��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p������������������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������֦�4�@�����!AZaz��������������������ptvw{}�������������/1VYYa����� Jnoq�����������/M���������$$((@X��	9	=	=	P	P	X	a	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	





(
*
0
2
3
5
6
8
9
Y
\
^
^
r
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359==\]_aqq����������������������(*9==XY`a������������������




:
=
=
N
N
`
a
z

�
�
�
�
�
�
�
�
�
�
022@F����������������������������������@GIl��*??PUZ]aaefnpu������������HJMPVXXZ]`����������������Z����lo������ 1@Q`lnp������ w������Pmpt���� T��3EK������#MOZ}������� EHMPWYY[[]]_}��������������������q q   � � !!!!
!!!!!!$!$!&!&!(!(!*!9!<!?!E!I!N!N!`!�!,.,0,^,`,�,�,�,�,�,-%-'-'-----0-g-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-00!0)0105080<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф������*�+�@�n���������"���������������������
��"�@�s������������
�%�0�F�`�|�����ϩϩ���������(�@�B�D�K�`�v�z�z�~�������������������ªª۪ݪ������	���� �&�(�.�0�Z�\�_�d�e����������������m�p���������(�*�6�8�<�>�>�@�A�C�D�F����]�d�=�P���������q�q�s�s�w�w�y�y�{�{�}�}����!�:�A�Z�f���������������
&(:<=?MP]��@t����0JPu���������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	






3
`
|
�
�
�
�
�
�
5@U`r��H7����&Prvv������+��(*02359==]a��������/DD�������� �#$n$0.4h8j@j^j�j�jk/k@kCkckwk}k�koDoPoPo�o�o���j�p�|����������T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������֦�4�@����r09AZ__az����������������������tvwz}�������������/1VYYa��������������� in���������JM�����-@[���c	f	o	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfoqq��������������������������������(*9=DFHJMUVXY`cfo����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
o
z

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:@NPY������������������������������������ )557799>GIlq�������IP����������HJMPVXXZ]`����������������Z]_iq����lo������ 4@S`lnprs��������
 w���� +0;Fmpt������ ^`|�������KPYks��7@IM}�������� EHMPWYY[[]]_}��������������������? @ T T q q   � � � � � � � � !!!!
!!!!!!$!$!&!&!(!(!*!9!<!?!E!I!N!N!`!�!,.,0,^,`,�,�,�,-%-'-'-----0-g-o-o--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-00!0/0105080<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф�����+�@�o�t�}���������"�����������������'�@�s���ĨШ٨��������-�0�S�`�|�����ϩ٩����6�@�M�P�Y�`�v�z�ª۪ݪ�������	���� �&�(�.�0�Z�\�_�d�e���������������������m�p�������(�*�6�8�<�>�>�@�A�C�D�F����=�P����������� �-�3�4�M�O�p�t�v�����!�:�?�?�A�Z�f�����������
&(:<=?MP]��@t��������0JPz�����������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	








3
8
:
?
?
`
|
�
�
�
�
�
�
5@U`r��HFfo�����46?Psvv����7����(*02359<DGHKMWW]cflpt����������@DDPY���������� �#$n$0.4h8j@j^j`jij�j�j�j�jk6k@kCkPkYkckwk}k�koDoPo~o�o�o���j�p�|�������������e�i�m�r�{�����������B�D��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p������������������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������֦�4�@�����AZaz��������������������ptvwz}�������������/1VYYa����� Jnoq�����������/M���������$$((@X��	9	=	=	P	P	X	a	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	





(
*
0
2
3
5
6
8
9
Y
\
^
^
r
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359==\]_aqq����������������������(*9==XY`a������������������




:
=
=
N
N
`
a
z

�
�
�
�
�
�
�
�
�
�
023@F����������������������������������@GIl��*??PUZ]aaefnpu������������HJMPVXXZ]`����������������Z����lo������ 1@Q`lnp������ w������Pmpt���� T��3EK������#MOZ}������� EHMPWYY[[]]_}��������������������q q   � � !!!!
!!!!!!$!$!&!&!(!(!*!9!<!?!E!I!N!N!`!�!,.,0,^,`,�,�,�,�,�,-%-'-'-----0-g-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-00!0)0105080<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф������*�+�@�n���������"���������������������
��"�@�s������������
�%�0�F�`�|�����ϩϩ���������(�@�B�D�K�`�v�z�z�~�������������������ªª۪ݪ������	���� �&�(�.�0�Z�\�_�d�e����������������m�p���������(�*�6�8�<�>�>�@�A�C�D�F����=�P���������p�t�v���!�:�A�Z�f�����������
&(:<=?MP]��@t����0JPu���������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	






3
`
|
�
�
�
�
�
�
5@U`r��H7����&Prvv������+��(*02359==]a��������/DD�������� �#$n$0.4h8j@j^j�j�jk/k@kCkckwk}k�koDoPoPo�o�o���j�p�|����������T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������֦�4�@����kAZaz�������79������������ "3:TVWYY[\`accefhiklooqruu}}����������EEpsvw{}�����������������/1Va�������yy}}���� EHMPWYY[[]]_}��������������������&!&!*!+!2!2!N!N!`!!�!�!�$�$,.,0,^,`,p,r,s,u,v,~,�,�,�,�,�,-%-'-'-----@�m�����"�/�2�o�y�����������������������!�:�A�Z�O��TAZ������

  ""$$&&((**,,..0022446699;;==??AACCEEGGIJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxy{{}}������������������������������������������������������������������������������������������

  ""$$&&((**,,..0022:;=>AACFHHJJLLNNEEpprrvv���������������������������������������������������/``bbddffhhjjllnnpprrttvvxxzz||~~����������������������������������������������������������������������������������������������������������������������

  ""$$&&((**,,..1V��������

  ""$$&&((**,,..0022446688::<<>>@@BBDDFFHHJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxxzz||~~��������������������������������������������������������������������������������������������������������������������������(/8?HMYY[[]]__ho������������������&!&!*!+!2!2!`!o!�!�!�$�$,.,`,`,b,d,g,g,i,i,k,k,m,p,r,r,u,u,~,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l���������������������������������������������������������"�"�$�$�&�&�(�(�*�*�,�,�.�.�2�2�4�4�6�6�8�8�:�:�<�<�>�>�@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l�n�n�y�y�{�{�}�~�������������������������������������������������������������������������������������!�:�'��Xaz������		

!!##%%''))++--//11335577::<<>>@@BBDDFFHIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwzz||~���������������������������������������������������������������������������������������������		

##%%''))++--//1133<<?@BBGGIIKKMMOTVWYY[\`accefhiklooqruu}}����������EEqqssww{}��������������������������������������0_aacceeggiikkmmooqqssuuwwyy{{}}����������������������������������������������������������������������������������������������������������������������		

!!##%%''))++--//a�yy}}		

!!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwyy{{}}��������������������������������������������������������������������������������������������������������������������� '07@EPW`gp}��������������������������N!N!p!!�!�!�$�$0,^,a,a,e,f,h,h,j,j,l,l,s,s,v,v,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,-%-'-'-----A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m���������������������������������������������������������#�#�%�%�'�'�)�)�+�+�-�-�/�/�3�3�5�5�7�7�9�9�;�;�=�=�?�?�A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m�o�o�z�z�|�|���������������������������������������������������������������������������A�Z�(O��Waz������		

!!##%%''))++--//11335577::<<>>@@BBDDFFHIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwzz||~�������������������������������������������������������������������������������������������		

##%%''))++--//1133<<?@BBGGIIKKMMOTVWYY[\`accefhiklooqruu}}����������EEqqssww{}��������������������������������������0_aacceeggiikkmmooqqssuuwwyy{{}}����������������������������������������������������������������������������������������������������������������������		

!!##%%''))++--//a�yy}}		

!!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwyy{{}}��������������������������������������������������������������������������������������������������������������������� '07@EPW`gp}��������������������������N!N!p!!�!�!�$�$0,^,a,a,e,f,h,h,j,j,l,l,s,s,v,v,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,-%-'-'-----A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m���������������������������������������������������������#�#�%�%�'�'�)�)�+�+�-�-�/�/�3�3�5�5�7�7�9�9�;�;�=�=�?�?�A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m�o�o�z�z�|�|���������������������������������������������������������������������������A�Z�(O��IAZ����

  ""$$&&((**,,..0022446699;;==??AACCEEGGJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxy{{}}������������������������������������������������������������������������������������������

  ""$$&&((**,,..0022:;=>AACFHHJJLLNNpprrvv���������������������������������������������/``bbddffhhjjllnnpprrttvvxxzz||~~����������������������������������������������������������������������������������������������������������������������

  ""$$&&((**,,..1V������

  ""$$&&((**,,..0022446688::<<>>@@BBDDFFHHJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxxzz||~~������������������������������������������������������������������������������������������������������������������������(/8?HMYY[[]]__ho����������������&!&!*!+!2!2!`!o!�!�!�$�$,.,`,`,b,d,g,g,i,i,k,k,m,p,r,r,u,u,~,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l���������������������������������������������������������"�"�$�$�&�&�(�(�*�*�,�,�.�.�2�2�4�4�6�6�8�8�:�:�<�<�>�>�@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l�n�n�y�y�{�{�}�~���������������������������������������������������������������������������������!�:�'��O''..::^^``�����������otuzz������YY������������@@K_pp������0J������-Y[�	:	:	<	<	A	H	M	M	Q	W	b	c	q	q	�	�	�	�	�	�	�	�	�	�	

<
<
A
B
G
H
K
M
Q
Q
p
q
u
u
�
�
�
�
�
�
�
�
�
�
�
�
<<??ADMMVVbc������>@FHJMUVbc������������

A
D
M
M
b
c
�
�
�
�
�
�
114:FN����������557799q~����������-0279:=>XY^`qt����������]_24RSrs������������CC�� "'(229;VVX^``bbels|����446:<<BBks����������������,367x}������������,jxx����������������    $ $ ' ' * . ` d f o q q   � � � � |,},�,�,o-o---�-�-/./.00*0-01050;0;0�0�0�0�0��������o�r�t�}��������������!�p�p���������������%�&�ĨĨ��&�-�G�Q�����������������ϩϩ��)�.�1�2�5�6�C�C�L�L�p�p�|�|���������������������ݪݪ��������[�_����������������� �-�R�R�U�U�����������>�>�@�@�p�p���������������vz





8
:
?
?
�
�
8F�������'+-4ss����/14467����<<@@flpt��������������3:==?@���������j�j0k6k@kCk�o�o��������g�i�s�����������B�D����� �AZaz����������������������EEpsvwz}�������������/1Va�������� EHMPWYY[[]]_}��������������������q q   � � !!!!
!!!!!!$!$!&!&!(!(!*!-!/!4!9!9!<!?!E!I!N!N!`!!�!�!�$�$,.,0,^,`,�,�,�,�,�,-%-'-'-----@�m�����"�������������������0�Z�\�_�d�e�����!�:�A�Z�O���T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p���������������0�I�P�i�p����++<>^^||~~����������������  2 4 @ @ D D R R a d z ~ � � � � � � � � � � !!!!
!!!!!!$!$!(!)!,!-!/!1!3!8!<!I!K!K!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�"## #!#|#|#�#�#�#�#�#�#�#�#�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%&&@&@&B&B&`&c&m&o&�'�')�*0+D+G+L+)�)�a�f�h�h�����<�<�>�>�\�\�^�^������T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R���������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~�������������������������  ���� 
 / / _ _ 00) ) ( (   ���� 
 ( ) / / _ _ 00����������������������	�	pp����y
y
446688������������@@��ajt|!!!!!	!!!!!!#!%!%!'!'!)!)!.!.!:!;!J!J!L!M!O!O!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!####"#(#+#{#}#�#�#�#�#�#$&$@$J$�$�$%�%�%�%�%�%&n&p&g'�'�'(�(+/+E+F+M+s+v+�+�+�+�+�+�+�+�,�,�.�.�.�./�/�/�/0000 0 06070>0?0�1�1�1�1�1�122*2G2P2P2`22�2�2�2�23�3�M�M��Ƥ(�+�6�7�9�9�w�y���������������7?y���������wx�
�
<k?kEkEk��������&�)�d�j�l��������������A�E�E��V��+�0��������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`�������@++<>||~~����������D D R R z | � � !!@!D!K!K!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�" #!#|#|#�#�#�#�#�%�%�%�%�%�%o&o&�'�'�'�'�'�')�)�)�)�)�)�)�*0+D+G+L+)�)�b�b�d�f�����\�\�^�^�������������������5�5�O�O�o�o�����������������^^``������������������uu���������������0�0�� �!�����[�[�����>�>�@�@���$$�����	�	�	�	�
�
��??��� � 8�8�����i�i��������$$++<>^^``||~~��������������������������uu�����������������	�	�	�	�
�
pp��y
y
??446688��������������@@��ajt|������������D D R R z | � � � � !!!!!	!!!!!!#!%!%!'!'!)!)!.!.!:!;!@!D!J!M!O!O!�!##(#+#�#$&$@$J$�$�$%g'�'�'�'�'�'�)�)�)�)�)�)s+v+�+�+�+�+�+�+�+�,�,�.�.�.�./�/�/�/0000 0 06070>0?0�0�0�1�1�1�1�1�122*2G2P2P2`22�2�2�2�23�3�M�M��Ƥ�� �!�����(�+�6�9�w�y�[�[�)�)���������b�b�d�f�i�i�������>�>�@�@�\�\�^�^���������7?y���������wx�
�
<k?kEkEk��������&�)�d�j�l��������������A�E�E��V���������������5�5�O�O�o�o������������������+�0��������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`�������K(([[{{::<<��    E E } } � � ##
#
#)#)#h'h'j'j'l'l'n'n'p'p'r'r't't'�'�'�'�'�'�'�'�'�'�'�'�'�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)".".$.$.&.&.(.(.B.B.00
0
00000000000000000?�?���5�5�7�7�9�9�;�;�=�=�?�?�A�A�C�C�G�G�Y�Y�[�[�]�]���;�;�[�[�_�_�b�b��!#%'**,,./:;?@\\��������~~��Z_����������	

jm��
��0>^^d	e	p	p	�
�
�
�
OOZ[������JO��`hmn��56����
DE����Z`��;?~����    ' 0 8 ; > A C G Q S S U ^ �,�,�,�,p-p-..............*...0.9.<.?.A.A.00=0=0�0�0����
��s�s�~�~����t�w�ΨϨ����.�/�_�_���ͩީߩ\�_�ުߪ��������0�0�E�F�I�L�P�R�T�W�_�a�h�h�j�k�����
�
�������� �<�<�a�a�d�e�����ooWW		?	?	P
X


�
�
9?��GM����@Ctu����8=����ACp$t$njoj�j�j7k;kDkDk������      9 9 ....	.	..... . .
��    : : ....
.
.
.
...!.!.H))]]}};;==��F F ~ ~ � � 	#	###*#*#i'i'k'k'm'm'o'o'q'q's's'u'u'�'�'�'�'�'�'�'�'�'�'�'�'�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)#.#.%.%.'.'.).).	0	000
0
000000000000000>�>���6�6�8�8�:�:�<�<�>�>�@�@�B�B�D�D�H�H�Z�Z�\�\�^�^�	�	�=�=�]�]�`�`�c�c�--����  ....:.;.@.@.000000�0�01�2�X�X�c�c�
�
�__? @ T T 3�4�M�O�?�?�4�������	�	rw��x~p
u
*3i|����p p t y � � P!_!�!�!`$�$�$�$v'�'�,�,�1�1 2)2H2O2Q2_2�2�2�2�20�5�3ux���� #X_y��		@
G
}
~
�
�
�
�
X_x��`~Re����[kak`�q���������`!�!�!�!00!0)080:0��@tAAJJ��$n$i09������`i����f	o	�	�	�	�	f
o
�
�
forw��fox~��f
u
�
�
PY�� 3@I��i|������FO������PY��@IPYp p t y � � P!�!�!�!`$�$�$�$v'�'�,�,00!0)080:0�1�1 2)2H2O2Q2_2�2�2�2�2 �)���0�5�Ш٨�	�Щ٩���P�Y������3@x���� #AAJJ����X_y��		@
G
}
~
�
�
�
�
X_x��`~Ro��6?��������PY����$n$`jijPkYk[kak`�q������������o������������K_pp��������0J����#%')-Y[�	:	:	<	<	A	H	M	M	Q	W	b	c	�	�	�	�	�	�	�	�	�	�	

<
<
A
B
G
H
K
M
Q
Q
p
q
u
u
�
�
�
�
�
�
�
�
�
�
�
�
<<??ADMMVVbc������>@FHJMUVbc������������

A
D
M
M
b
c
�
�
�
�
�
�
114:GN��������557799q~����������-0279:=>XY^`qt��������]_24RSrs����������
�� "'(229;VVX^``bbels|��446:<<BBks����������������,367����������������� � � � � � �,�,--�-�-*0-0�0�0o�o�t�}�������������%�&�ĨĨ��&�-�G�Q�������������������)�.�1�2�5�6�C�C�L�L�|�|������������������������������������� �-�����vz





8
:
?
?
�
�
8F�����'+-4ss����/14467����<<@@flpt��������������3:==?@���������j�j0k6k�o�o����g�i�{�����������B�D����������� � � � p�r��		;	;	>	@	I	L	N	O	�	�	�	�	�	�	�	�	�	�	

>
@
�
�
�
�
�
�
�
�
>>@@GHKLWW����������AD������������

>
@
F
H
J
L
W
W
�
�
�
�
�
�
�
�
>?+,1188;<VWbdgm��������������#&)+0138����UUWWaacdmr55;;=ACD����������������$+45����.0/0#�$�'�'�������èR�S�����������������/�0�3�4�M�M�{�{�}�}�����������������������,,������,.2355��>?ADGHKMWWbc��������������02;<>>������Qo~oe�f�m�r��o������������K_pp��������0J����#%')-Y[�	:	<	>	O	Q	W	b	c	�	�	�	�	�	�	�	�	�	�	�	�	�	�	

<
<
>
B
G
H
K
M
Q
Q
p
q
u
u
�
�
�
�
�
�
�
�
�
�
�
�
<<>DGHKMVWbc����������>DFHJMUVbc��������������

>
D
F
H
J
M
W
W
b
c
�
�
�
�
�
�
�
�
�
�
�
�
114:GN��������557799>?q���������+>VY^`bdgmqt������]_24RSrs����
�� +0;����U^`|��4Dks������$7��������������� � �,�,--�-�-*0/0�0�0o�r�t�}�������������#�'�������Ĩ��&�-�G�S�����������)�6�C�C�L�M�{�}����������������������������������� �-�����vz





8
:
?
?
�
�
8F���'4ss����,7��<<>DGHKMWWbcflpt������0@���j�j0k6kQo~o�o�o����e�i�m�r�{�����������B�D������nAZ����

  ""$$&&((**,,..0022446699;;==??AACCEEGGJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxy{{}}������������������������������������������������������������������������������������������

  ""$$&&((**,,..0022:;=>AACFHHJJLLNNpprrvv�����������������������������������������������/``bbddffhhjjllnnpprrttvvxxzz||~~����������������������������������������������������������������������������������������������������������������������

  ""$$&&((**,,..1V������

  ""$$&&((**,,..0022446688::<<>>@@BBDDFFHHJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxxzz||~~������������������������������������������������������������������������������������������������������������������������(/8?HMYY[[]]__ho����������!!!!!
!!!!!!!$!$!&!&!(!(!*!-!0!3!>!?!E!E!�!�!,.,`,`,b,d,g,g,i,i,k,k,m,p,r,r,u,u,~,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l���������������������������������������������������������"�"�$�$�&�&�(�(�*�*�,�,�.�.�2�2�4�4�6�6�8�8�:�:�<�<�>�>�@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l�n�n�y�y�{�{�}�~���������������������������������������������������������������������������������!�:�'����4�M�h����������������������������������
�
����8�9�;�>�@�D�F�F�J�P�l������������!�<�U�p������������4�V�n���������
����������������������������������� ?AJnoq���������/M�����@X��	9	=	=	P	P	X	a	r	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	





(
*
0
2
3
5
6
8
9
Y
\
^
^
r
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359==\]_aqq����������������������(*9==XY`a������������������




:
=
=
N
N
`
a
z

�
�
�
�
�
�
�
�
�
�
023@E��������������������������������@GIl��*??PUZ]aaefnpu������HJMPVXXZ]`����������������Z����lo������ 1@Q`lnp���� BDw������Pmpt���� T3EK������#MOZw������5!8!0-g-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-00<0<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟�����Ф������*�+�n�n��������������
��"�@�s������������
�%�0�F�`�|��������������(�@�B�D�K�`�o�q�v�z�z�~�������������������ªª۪ܪ������	���� �&�(�.����������������m�p�����(�*�6�8�<�>�>�@�A�C�D�F����=�P���������p�t�v���f�o�q���������������
&(:<=?MP]������0@BIPu������P�'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	






3
`
|
�
�
�
�
�
�
5@U`r��H7����&Prvv������+��(*02359==]a��������/DD������ �#0.4h8j@j^j�j�jk/kckwk}k�koDoPoPo���j�p�|����������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������֦�4�@����8����������ttzzYY@@������$$((q	q	FF������CC��x},jxx��q q   � � |,},o-o-/./.001050;0;0�0�0�0�0����������������p�p���������ϩϩ��p�p�ݪݪ��\�_�p�p�����@kCk�o�oqaz������		

!!##%%''))++--//11335578::<<>>@@BBDDFFHIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwzz||~�������������������������������������������������������������������������������������������		

!!##%%''))++--//1139<<?@BBGGIIKKMMO���qqssww{}��������������������������������������0_aacceeggiikkmmooqqssuuwwyy{{}}����������������������������������������������������������������������������������������������������������������������		

!!##%%''))++--//a�+kwy�		

!!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwyy{{}}����������������������������������������������������������������������������������������������������������������������� '07@EPW`gp}��������������������������
!
!!!!!/!/!4!4!9!9!<!=!F!I!N!N!�!�!0,^,a,a,e,f,h,h,j,j,l,l,q,q,s,t,v,{,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,-%-'-'-----A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m���������������������������������������������������������#�#�%�%�'�'�)�)�+�+�-�-�/�1�3�3�5�5�7�7�9�9�;�;�=�=�?�?�A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m�o�o�q�x�z�z�|�|�������������������������������������������������������������������������������0�Z�d�e�����A�Z�(O���3�N�T�V�g�������������������������7�R�k������������"�;�V�o������������������6�N�P�U�p�������������������uAZaz��������������psvw{}�������������/1Va�������+kwy� EHMPWYY[[]]_}��������������������!!!!
!!!!!!$!$!&!&!(!(!*!-!/!4!9!9!<!?!E!I!N!N!�!�!,.,0,^,`,{,~,�,�,�,�,�,-%-'-'-----@�m�����"�o�q�������������������0�Z�d�e�����!�:�A�Z�O���T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p���������������AZaz��������������������ptvwz}�������������/1VYYa����� Jnoq�����������/M���������$$((@X��	9	=	=	P	P	X	a	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	





(
*
0
2
3
5
6
8
9
Y
\
^
^
r
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359==\]_aqq����������������������(*9==XY`a������������������




:
=
=
N
N
`
a
z

�
�
�
�
�
�
�
�
�
�
023@F����������������������������������@GIl��*??PUZ]aaefnpu������������HJMPVXXZ]`����������������Z����lo������ 1@Q`lnp������ w������Pmpt���� T��3EK������#MOZ}������� EHMPWYY[[]]_}��������������������q q   � � !!!!
!!!!!!$!$!&!&!(!(!*!-!/!9!<!?!E!I!N!N!�!�!,.,0,^,`,�,�,�,�,�,-%-'-'-----0-g-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-/./.001050;0<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф������*�+�@�n���������"���������������������
��"�@�s������������
�%�0�F�`�|�����ϩϩ���������(�@�B�D�K�`�v�z�z�~�������������������ªª۪ݪ������	���� �&�(�.�0�Z�\�_�d�e����������������m�p���������(�*�6�8�<�>�>�@�A�C�D�F����=�P���������p�t�v���!�:�A�Z�f�����������
&(:<=?MP]������0@BIPu�������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	






3
`
|
�
�
�
�
�
�
5@U`r��H7����&Prvv������+��(*02359==]a��������/DD�������� �#0.4h8j@j^j�j�jk/k@kCkckwk}k�koDoPoPo�o�o���j�p�|����������T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������֦�4�@��������������Xxy��������00WX``������������KL����./??\]_����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	






)
)
1
1
4
4
7
7
:
;
=
=
C
F
I
J
N
P
R
X
]
]
_
e
v
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�

))1144:;EFIJNUX[^^dex���������������������������������

)):<EEIINTWWZ_depw�����������������������������








;
<
E
E
I
I
O
V
X
_
d
e
v
x
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
;>\�������������������������������������HHmp��������������IINOWWYY^_����������������[\}��������

7?T_mmqqt������x����,/<?ACnou������__}~��������LO}��8:JL����������FGNOXXZZ\\^^~��������������e e r s � � � � � � � � �!�!�#�#'$?$K$_$t+u+�+�+�+�+�+�+�+�+/,/,_,_,�,�,&-&-(-,-.-/-h-n-q-~-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-C..�.�.�.�.�/�/�/�/@0@0�0�011.101�1�1�1�1�1�122�2�2�M�M͟������ǤϤ,�?���������������������,�/�:�?�x��Ũͨڨߨ����T�^�}��ΩΩکݩ����7�?�N�O�Z�[�êڪ���������'�'�/�/�`�c�f���������������������n�o��������7�7�=�=�?�?�B�B�E�E���@�O�������������.�/�S�S�g�g�l�o�u�u����������������������������'';;>>NO^��46�������������$/KO{����������(/dnp�7?V_h�		669;=>VV����		:	>	@		�	�	�	�	







4
7
;
>
H
O
Y
_
�
�
�
�
�
�
68VWsw������I_�NQp~������55DOw��������>����
))1144:;EFIJNVX\demou�������EOZ����������#�#o$o$u$�//4�g9j?j_j_jjjmjpj�j�j�j�j�jFkOkZkZkbkbkxk|k�k�nEoOoo�o�o�����k�o�}������������������'�(�����F���W�_�r���U�U�����������������������������������������:�:�?�?�E�E�G�I�Q�Q���������������������� � �#�#�%�&�(�(�3�3�8�8�:�:�<�A�C�F�H�H�J�J�L�L�P�P�S�S�U�V�X�X�Z�Z�\�\�^�^�`�`�c�c�e�f�k�k�s�s�x�x�}�}���������������������������,�/���������������������
��/�/�l�o�������;�?�I�O�R���-�/�~��������������K�O�z�z�����C�D��������t�������H�O�Z�_���������צ��5�?����������������������  * . ` d f o ��������������s�z� [���xy��������00WX``�������������KL����./??\]_����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	






)
)
1
1
4
4
7
7
:
;
=
=
C
F
I
J
N
P
R
X
]
]
_
e
v
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�

))1144:;EFIJNUX[^^dex���������������������������������

)):<EEIINTWWZ_depw�����������������������������








;
<
E
E
I
I
O
V
X
_
d
e
v
x
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
;>\�������������������������������������HHmp��������������IINOWWYY^_����������������[\}��������

7?T_mmqqt������x����,/<?ACnou������__}~��������LO}��8:JL����������FGNOXXZZ\\^^~��������������  * . ` o r s � � � � � � � � �!�!�#�#'$?$K$_$t+u+�+�+�+�+�+�+�+�+/,/,_,_,�,�,&-&-(-,-.-/-h-n-q-~-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-C..�.�.�.�.�/�/�/�/@0@0�0�011.101�1�1�1�1�1�122�2�2�M�M͟������ǤϤ,�?���������������������,�/�:�?�x��Ũͨڨߨ����T�^�}��ΩΩکݩ����7�?�N�O�Z�[�êڪ���������'�'�/�/�`�c�f���������������������n�o��������7�7�=�=�?�?�B�B�E�E���@�O�������������.�/�S�S�g�g�l�o�u�u�������������������������'';;>>NO^��46�������������$/KO{����������(/dnp�7?V_h�		669;=>VV����		:	>	@		�	�	�	�	







4
7
;
>
H
O
Y
_
�
�
�
�
�
�
68VWsw������I_�NQp~��������55DOw��������>����
))1144:;EFIJNVX\demou�������EOZ����������#�#o$o$u$�//4�g9j?j_j_jjjmjpj�j�j�j�j�jFkOkZkZkbkbkxk|k�k�nEoOoo�o�o�����k�o�}������������������'�(�s�z�����F���W�_�r���U�U�����������������������������������������:�:�?�?�E�E�G�I�Q�Q���������������������� � �#�#�%�&�(�(�3�3�8�8�:�:�<�A�C�F�H�H�J�J�L�L�P�P�S�S�U�V�X�X�Z�Z�\�\�^�^�`�`�c�c�e�f�k�k�s�s�x�x�}�}���������������������������,�/���������������������
��/�/�l�o�������;�?�I�O�R���-�/�~��������������K�O�z�z�����C�D��������t�������H�O�Z�_���������צ��5�?���������Xwz�������/1VY_a�����������
JM���-0>@[^^����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*9=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�������KP|���7;IM�������� EHMPWYY[[]]_}�������������� d f q t � � � � � � � !�!�!�#$&$@$J$`$s+v+�+�+�+�+�+�+�+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-B.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީ���6�@�M�P�Y�\�ª۪����	���� �&�(�.�0�_�d�e�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �-�0�R�T�f�h�k�p�t�v��������������������������
&(:<=?MP]��37�������������#0JPz���������'0coo6@U`g
578<<?UW���			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`
�
�
�
�
�
59UXrx�����H`~MRo�����46CPv��������=����(*02359<DGHKMWW]cflpt��������DPY���������� �#$n$p$t$0.4h8j@j^j`jijnjoj�j�j�j�jkEkPkYk[kakckwk}k�koDoPo~o�o�o���j�p�|�����������������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0����������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`�������֦�4�@���� �������v09AZaz��������������������EEptvwz}�������������/1VYYa��������������� WYin���������?M�������,@X�����;	=	L	N	P	U	c	f	o	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
>
B
G
H
K
L
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359=DGHKLVW\]_cfoqq��������������������������������(*9=DFHJLUVXY`cfo����������������������������






:
=
D
F
H
J
L
N
N
W
W
`
c
f
o
z

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:@FMMPY������������������������������������ )@GIlq�����688;IPbehn����������������HJMPVXXZ]`����������������Z__����lo������ 3@S`lnprs���������� w���� +08Fmpt������ ^at������35CEKPY������5@IM}��������� EHMPWYY[[]]_}��������������������q q   � � !!!!
!!!!!!$!$!&!&!(!(!*!-!/!9!<!?!E!I!N!N!`!�!�$�$,.,0,^,`,�,�,�,�,�,-%-'-'-----0-g-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-/./.00!0)0105080<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф�����+�@�n�t�{���������"���������������������
��'�@�s���èШ٨��������*�0�R�`�|���������ϩ٩������6�@�M�P�Y�`�v�z�z�~�������ªª۪ݪ�������	���� �&�(�.�0�Z�\�_�d�e�������������������m�p�������(�*�6�8�<�>�>�@�A�C�D�F����=�P���������p�t�v�����!�:�A�Z�f�����������
&(:<=?MP]��@t����0JPz�����������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	








3
`
|
�
�
�
�
�
�
5@U`r��HEfo������26?Prvv������477����(*02359=DGHKLWW]c������������>@@DDPY���������� �#$n$0.4h8j@j^j`jij�j�jk6k@kCkPkYkckwk}k�koDoPo~o�o�o���j�p�|��������������T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p��������������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������0�I�P�i�p���֦�4�@����u09AZ__az��������������������tvwz}�������������/1VYYa��������������� in���������JM�����-@[���c	f	o	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfoqq��������������������������������(*9=DFHJMUVXY`cfo����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
o
z

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:@NPY������������������������������������ )557799>GIlq�������IP����������HJMPVXXZ]`����������������Z]_����lo������ 4@S`lnprs��������
 w���� +0;Fmpt������ ^`|�������KPYks��7@IM}�������� EHMPWYY[[]]_}��������������������? @ T T q q   � � � � !!!!
!!!!!!$!$!&!&!(!(!*!-!/!9!<!?!E!I!N!N!`!�!�$�$,.,0,^,`,�,�,�,-%-'-'-----0-g-o-o--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-/./.00!0/0105080<0A0�0�0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф�����+�@�r�t�}���������"�����������������'�@�s���ĨШ٨��������-�0�S�`�|�����ϩ٩����6�@�M�P�Y�`�v�z�ª۪ݪ�������	���� �&�(�.�0�Z�\�_�d�e���������������������m�p�������(�*�6�8�<�>�>�@�A�C�D�F����=�P����������� �-�3�4�M�O�p�t�v�����!�:�?�?�A�Z�f�����������
&(:<=?MP]��@t��������0JPz�����������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	








3
8
:
?
?
`
|
�
�
�
�
�
�
5@U`r��HFfo�����46?Psvv����7����(*02359<DGHKMWW]cflpt����������@DDPY���������� �#$n$0.4h8j@j^j`jij�j�j�j�jk6k@kCkPkYkckwk}k�koDoPo~o�o�o���j�p�|�������������e�i�m�r�{�����������B�D��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p������������������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������0�I�P�i�p���֦�4�@�����09AFafsAZ����

  ""$$&&((**,,..0022446699;;==??AACCEEGGJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxy{{}}������������������������������������������������������������������������������������������

  ""$$&&((**,,..0022:;=>AACFHHJJLLNNpprrvv�����������������������������������������������/``bbddffhhjjllnnpprrttvvxxzz||~~����������������������������������������������������������������������������������������������������������������������

  ""$$&&((**,,..1V������

  ""$$&&((**,,..0022446688::<<>>@@BBDDFFHHJJLLNNPPRRTTVVXXZZ\\^^``bbddffhhjjllnnpprrttvvxxzz||~~������������������������������������������������������������������������������������������������������������������������(/8?HMYY[[]]__ho����������!!!!!
!!!!!!!$!$!&!&!(!(!*!-!0!3!>!?!E!E!`!o!�!�!�$�$,.,`,`,b,d,g,g,i,i,k,k,m,p,r,r,u,u,~,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l���������������������������������������������������������"�"�$�$�&�&�(�(�*�*�,�,�.�.�2�2�4�4�6�6�8�8�:�:�<�<�>�>�@�@�B�B�D�D�F�F�H�H�J�J�L�L�N�N�P�P�R�R�T�T�V�V�X�X�Z�Z�\�\�^�^�`�`�b�b�d�d�f�f�h�h�j�j�l�l�n�n�y�y�{�{�}�~���������������������������������������������������������������������������������!�:�'����4�M�h����������������������������������
�
����8�9�;�>�@�D�F�F�J�P�l������������!�<�U�p������������4�V�n���������0�I�P�i�p���
	
  ������ 
 ( ) / / _ _ 00�!#%*,/:;?@[]__{{}}������������~~��Z_������������	

jm��
��0>^^d	e	p	p	�
�
�
�
OOZ[:=������JO��`hmn����56����
DE����Z`��;?~���� ' 0 C E Q S ^ } ~ � � ##)#*#h'u'�'�'�'�'�)�)�)�)�)�)�,�,�,�,p-p-...0.B.0000000000=0=0�0�0�0�0����
��s�s�~�~����t�w�ΨϨ����.�/�_�_���ͩީߩ\�_�ުߪ����>�?���0�R�T�a�c�c�h�h�j�k����
������ �;�=�?�?�[�[�]�]�_�e�����ooWW		?	?	P
X


�
�
9?��GM����@Ctu����8=����ACp$t$njoj�j�j7k;kDkDk����Z ~�wz�������/1VY_a�����������
JM���-0>@[^^����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*9=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�������KP|���7;IM�������� EHMPWYY[[]]_}�������������� ' * d f q t � � � � � � � !�!�!�#$&$@$J$`$s+v+�+�+�+�+�+�+�+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-B.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީ���6�@�M�P�Y�\�ª۪����	���� �&�(�.�0�_�d�e�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �-�0�R�T�f�h�k�p�t�v��������������������������
&(:<=?MP]��37�������������#0JPz���������'0coo6@U`g
578<<?UW���			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`
�
�
�
�
�
59UXrx�����H`~MRo�����46CPv��������=����(*02359<DGHKMWW]cflpt��������DPY���������� �#$n$p$t$0.4h8j@j^j`jijnjoj�j�j�j�jkEkPkYk[kakckwk}k�koDoPo~o�o�o���j�p�|�����������������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0����������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`�������֦�4�@���� �����yaz����������		

!!##%%''))++--//11335578::<<>>@@BBDDFFHIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwzz||~�������������������������������������������������������������������������������������������		

!!##%%''))++--//1139<<?@BBGGIIKKMMO�������EEqqsswwz}��������������������������������������0_aacceeggiikkmmooqqssuuwwyy{{}}����������������������������������������������������������������������������������������������������������������������		

!!##%%''))++--//a��		

!!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwyy{{}}����������������������������������������������������������������������������������������������������������������������� '07@EPW`gp}��������������������������q q   � � 
!
!!!!!/!/!4!4!9!9!<!=!F!I!N!N!p!!�!�!�$�$0,^,a,a,e,f,h,h,j,j,l,l,q,q,s,t,v,},�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,-%-'-'-----A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m���������������������������������������������������������#�#�%�%�'�'�)�)�+�+�-�-�/�1�3�3�5�5�7�7�9�9�;�;�=�=�?�?�A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m�o�x�z�z�|�|�������������������������������������������������������������������������������0�Z�\�_�d�e�����A�Z�(O���3�N�T�V�g�������������������������7�R�k������������"�;�V�o������������������6�N�P�U�p�������������������]!~�wz�������/1VY_a�����������
JM���-0>@[^^����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
<
<
>
B
G
H
K
M
Q
Q
Y
\
^
^
f
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359<DGHKMVW\]_cfw��������������������������������(*9=DFHJMUVXY`cfox����������������������������






:
=
D
F
H
J
N
W
W
`
c
f
u
y

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:?[������������������������������������GIlq�������������HJMPVXXZ]`����������������Z]|�������� 6@S`lnprs������ w���� +0;@@Dmpt�������^`|�������KP|���7;IM�������� EHMPWYY[[]]_}�������������� ' * . 0 ^ ` d f q t � � � � � � � !�!�!�#$&$@$J$`$s+v+�+�+�+�+�+�+�+,.,0,^,`,�,�,%-'-'-----0-g-o-p--�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-B.�.�.�.�./�/�/�/0?0A0�0�0�01-111�1�1�1�1�1�12 2�23�M�M̟�����ƤФ+�@��������������������+�0�9�@�w���ĨΨ٨����S�_�|���ͩϩ٩ީ���6�@�M�P�Y�\�ª۪����	���� �&�(�.�0�_�d�e�������������������m�p�������6�8�<�>�>�@�A�C�D�F����?�P����������� �-�0�R�T�f�h�k�p�t�v��������������������������
&(:<=?MP]��37�������������#0JPz���������'0coo6@U`g
578<<?UW���			9	?	?	�	�	�	�	








3
8
:
?
G
P
X
`
�
�
�
�
�
59UXrx�����H`~MRo�����46CPv��������=����(*02359<DGHKMWW]cflpt��������DPY���������� �#$n$p$t$0.4h8j@j^j`jijnjoj�j�j�j�jkEkPkYk[kakckwk}k�koDoPo~o�o�o���j�p�|�����������������&�)����E��V�`�q��T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~��������������������������+�0����������������������.�0�k�p�������:�@�H�P�Q��,�0�}�������������J�P�y�{�����B�E�������s�������G�P�Y�`�������֦�4�@���� �����209`i����f	o	�	�	f
o
�
�
fo��fo��f
o
�
�
PY�� )@I����FO������PY��@IPY �)�Ш٨�	�Щ٩���P�Y��������fo��6?������PY����`jijPkYk�����		  ���� 
 / / _ _ 00XAZaz��������������������EEptvwz}�������������/1VYYa��������������� WY_n�����������?M�������,@X�����;	=	L	N	P	U	c	q	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	







(
*
0
2
3
5
6
8
9
>
B
G
H
K
L
Q
Q
Y
\
^
^
p
u
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
(*02359=DGHKLVW\]_cqq������������������������������(*9=DFHJLUVXY`c��������������������������






:
=
D
F
H
J
L
N
N
W
W
`
c
z

�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
:@FMM����������������������������������@GIlq�����688;?Pbehn��������������HJMPVXXZ]`����������������Z__����lo������ 3@S`lnprs�������� w���� +08Pmpt���� ^at��35CEK��������5MOZ}��������� EHMPWYY[[]]_}��������������������q q   � � !!!!
!!!!!!$!$!&!&!(!(!*!-!/!9!<!?!E!I!N!N!`!�!�$�$,.,0,^,`,�,�,�,�,�,-%-'-'-----0-g-o-o-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-/./.00!0)0105080<0A0�0�0�0�0�0�0�01-111�1�1�1�1�14�MN̟���Ф������*�+�@�n�t�{���������"���������������������
��'�@�s���������
�*�0�R�`�|���������ϩϩ���������6�@�M�`�v�z�z�~�������ªª۪ݪ�������	���� �&�(�.�0�Z�\�_�d�e����������������m�p�������(�*�6�8�<�>�>�@�A�C�D�F����=�P���������p�t�v���!�:�A�Z�f�����������
&(:<=?MP]��@t����0JPz���������'0c6@U`g
578<<?U`v��		 	9	�	�	�	�	








3
`
|
�
�
�
�
�
�
5@U`r��HE����2Prvv������477��(*02359=DGHKLWW]c����������>@@DD�������� �#$n$0.4h8j@j^j�j�jk6k@kCkckwk}k�koDoPo~o�o�o���j�p�|��������������T�V�����������������������������������
�
�����9�;�>�@�D�F�F�J�P�R�������������������4�6�N�P�n�p����������������������!�"�$�$�'�'�)�2�4�7�9�9�;�;�B�B�G�G�I�I�K�K�M�O�Q�R�T�T�W�W�Y�Y�[�[�]�]�_�_�a�b�d�d�g�j�l�r�t�w�y�|�~�~���������������������0�I�P�i�p���֦�4�@����

ffi�ffl��B���B��������B�������B��R�T�BV�B��a��ff�fi�fl�h1�j�ss��st��t�w
�y
��nI�������B������B������B����P�B��B��������e��te�tk�tm�tv�~v������������������������� ���!���"���#���$���%���&���'���`���a���b���c���d���e���f���g���p��t��|��i0aAbBcCdDeEfFgGhHjJkK*!lLmMnNoOpPqQrRsStTuUvVwWxXyYzZ������������+!�������������������������������������������������x	

! #"%$'&)(+*-,/.325476:9<;>=@?BADCFEHGKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonqpsrutwvzy|{~}�C���������������=� ��������������������������������������������������������������������������������	

#"%$'&)(+*-,/.1032<;?~,@,BAGFIHKJMLONPo,Qm,Rp,S�T�V�W�Y�[�\��`�a��c�e��f��h�i�kb,l��o�qn,r�u�}d,����������D�����E�����qpsrwv{�|�}������������������������������E��������������������������������������&!�������������������������������������������0123456789:;<=>?@ A!B"C#D$E%F&G'H(I)J*K+L,M-N.O/PQRSTUVWXY	Z
[\]
^_a`cbedgfihkjmlonqpsrutwvyx{z}|~������������������������������������������������������������������������������������������������������������������������	

! #"%$'&)(+*-,/.a1b2c3d4e5f6g7h8i9j:k;l<m=n>o?p@qArBsCtDuEvFwGxHyIzJ{K|L}M~NO�P�Q�R�S�T�U�Vy}�}c,	

! #"%$'&)(+*-,/.1032547698;:=<?>A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`�cbedgfihkjmlonqpsrutwvyx{z}|~����������������������������������������������������������������������������������������������������������������������	

 (!)"*#+$,%-&.'/08192:3;4<5=6>7?@HAIBJCKDLEMQYS[U]W_`haibjckdlemfngop�q�r�s�t�u�v�w�x�y�z�{�|�}���������������N!2!p!`!q!a!r!b!s!c!t!d!u!e!v!f!w!g!x!h!y!i!z!j!{!k!|!l!}!m!~!n!!o!�!�!�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$0,,1,,2,,3,,4,,5,,6,,7,,8,,9,	,:,
,;,,<,,=,
,>,,?,,@,,A,,B,,C,,D,,E,,F,,G,,H,,I,,J,,K,,L,,M,,N,,O,,P, ,Q,!,R,",S,#,T,$,U,%,V,&,W,',X,(,Y,),Z,*,[,+,\,,,],-,^,.,a,`,e,:f,>h,g,j,i,l,k,s,r,v,u,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,-�-�-�-�-�-�-�-�-�	-�
-�-�-�
-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-� -�!-�"-�#-�$-�%-�'-�--�A�@�C�B�E�D�G�F�I�H�K�J�M�L�O�N�Q�P�S�R�U�T�W�V�Y�X�[�Z�]�\�_�^�a�`�c�b�e�d�g�f�i�h�k�j�m�l���������������������������������������������������������#�"�%�$�'�&�)�(�+�*�-�,�/�.�3�2�5�4�7�6�9�8�;�:�=�<�?�>�A�@�C�B�E�D�G�F�I�H�K�J�M�L�O�N�Q�P�S�R�U�T�W�V�Y�X�[�Z�]�\�_�^�a�`�c�b�e�d�g�f�i�h�k�j�m�l�o�n�z�y�|�{��~���������������������������������������������������������������������A�!�B�"�C�#�D�$�E�%�F�&�G�'�H�(�I�)�J�*�K�+�L�,�M�-�N�.�O�/�P�0�Q�1�R�2�S�3�T�4�U�5�V�6�W�7�X�8�Y�9�Z�:�()*+,-./01	2
345
6789:;<=>?@ABCDEFGH I!J"K#L$M%N&O'����������������������������������������������������������������iIAaBbCcDdEeFfGgHhJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz���������������������������������������������������������������ss	

 !"#$%&'()*+,-./2345679:;<=>?@ABCDEFGHI�nJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx�yz{|}~s�S�����T���V�W�����Y�[���`�c�i�h���o�r�u�������������������������������������������������������������������������������j������������������	

 �"#$%&'()*+,-./0123:e,;<=�>f,ABC�D�E�FGHIJKLMNOE�pqrsvw��������������������������������������������������������������������������������������������������������������������������{�|�}PQRSTUVWX	Y
Z[\
]^_0123456789:;<=>? @!A"B#C$D%E&F'G(H)I*J+K,L-M.N/O`abcdefghijklmnopqrstuvwxyz{|}~������������������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./1a2b3c4d5e6f7g8h9i:j;k<l=m>n?o@pAqBrCsDtEuFvGwHxIyJzK{L|M}N~OP�Q�R�S�T�U�V��e��-�-�-�-�-�-�-�-�-�	-�
-�-�-�
-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-� -�!-�"-�#-�$-�%-�'-�--	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�����������������������h1�t�w
�y
�a��a�ss������������������������������������������������������������������������������������������������	

( )!*"+#,$-%.&/'8091:2;3<4=5>6?7H@IAJBKCLDMEP�R�T�V�BYQ[S]U_Wh`iajbkcldmenfog��������������������������������� ��!��"��#��$��%��&��'�� ��!��"��#��$��%��&��'��`��a��b��c��d��e��f��g��`��a��b��c��d��e��f��g��p���������B��B������p�q������t���������B��B��r�s�t�u���������B��B�����v�w��������B��B�����z�{���|���������B��B��x�y�|�}���&!�*!k+!�2!N!`!p!a!q!b!r!c!s!d!t!e!u!f!v!g!w!h!x!i!y!j!z!k!{!l!|!m!}!n!~!o!!�!�!�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$,0,,1,,2,,3,,4,,5,,6,,7,,8,	,9,
,:,,;,,<,
,=,,>,,?,,@,,A,,B,,C,,D,,E,,F,,G,,H,,I,,J,,K,,L,,M,,N,,O, ,P,!,Q,",R,#,S,$,T,%,U,&,V,',W,(,X,),Y,*,Z,+,[,,,\,-,],.,^,`,a,b,kc,}d,}g,h,i,j,k,l,m,Qn,qo,Pp,Rr,s,u,v,~,?,@�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m���������������������������������������������������������"�#�$�%�&�'�(�)�*�+�,�-�.�/�2�3�4�5�6�7�8�9�:�;�<�=�>�?�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�y�z�{�|�}�y~������������������������e��������������������������������������������������f��\��a��l�������ff�fi�fl�ffi�ffl�st�st�tv�te�tk�~v�tm!�A�"�B�#�C�$�D�%�E�&�F�'�G�(�H�)�I�*�J�+�K�,�L�-�M�.�N�/�O�0�P�1�Q�2�R�3�S�4�T�5�U�6�V�7�W�8�X�9�Y�:�Z�()*+,-./0	1
234
56789:;<=>?@ABCDEFG H!I"J#K$L%M&N'O����������������������������������������������������������������Ii0i@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@������������0�����������0�����0������4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��0�0�0�0�0�0�0�0�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

��/proc/self/exe(fmt null)
lseek: %s
mmap: %s
.strtab.dynstr.debug_line.gnu_debuglinkUnsupported operation in %s
%s [0x%lx]
%s(%s+0x%lx) [0x%lx]
%s(%s+0x%lx) [0x%lx] ???:%d
%s(%s+0x%lx) [0x%lx] %s:%d
�1��0;���1��0;��0;��0;��0;���1�� 2��0;���6��7��0;��82��X2��X2��X2��X2��X2��X2��X2��X2��X2��0;��0;��0;��0;��0;��0;��0;��0;��0;��0;���2��0;��0;��0;��0;��0;��0;��0;��0;��0;��0;��0;��0;��0;��0;��0;��0;��0;��0;��0;��X3��0;��0;��0;��0;��0;��0;��0;��0;��0;���5���6���9��0;��0;��0;��:���9���9��0;���9��0;��P:���:��(7���7���7���8���9���:��0;��0;�� :��;��h1���K��<J���K��K���J���I��J��J��pK���K��J��J���J��/usr/lib/debug0123456789abcdefghijklmnopqrstuvwxyzUnexpected file number %d in %s
Unexpected directory number %lu in %s
Unknown extended opcode: %d in %s
Unexpected size of .debug_line in %s
%s(%s+0x%lx) [0x%lx] %s/%s:%d
require 'rubygems.rb' if defined?(Gem)
<internal:gem_prelude>begin
  require 'unicode_normalize'
rescue LoadError
end
<internal:enc/prelude>class Thread
  MUTEX_FOR_THREAD_EXCLUSIVE = Mutex.new







  def self.exclusive
    MUTEX_FOR_THREAD_EXCLUSIVE.synchronize{
      yield
    }
  end
end
<internal:prelude>enc/encdb.soenc/trans/transdb.so;�����K�0����lC����C��8D�����xD��(U%���9������{���~���l����H���x����(���h������Н����؝��������\����p�H���(��Ԟh��0�x��D����X�ȣ�l���П���4����h��������X��РȨ�����,�x��l��������H���H��<�د��(��0�8��ȣ����(��X������Ԥ8�������X��T����p�H���غ��(���ؼ�@�(��\�X��x����Ȧؿ�,�h��l����h������(�8��l�����h��ܨ���H������\����p������������8���L�h��`���������H���h��Ȫ����x��P�(���8���H��Ы����(��L���|�������ܬ������� �H��L����`����|����������������0�H��\�H���h���������H�h��d����H�����H�x�����̰8�����8����|���̱����(���T���������̲����,��
�x���(��h��X�p�x�Դ���8�,�X���ص(��h��x�h������ض���!�,�h"�h��"��H#�ķ�$��%�,��%�d��%���&��x,���,��x0�\�1�|�2���3��h4���6��H7��h7�Ժ�=� �(>�L�H>�h��?��8B��hB�$�HE�p�H�ԼXH��hH���H�4�I�H��J��K��xL���L��hM�X�XN��Q���Q�4��Q�T�R�t�XR��x\��(]�Կ�]��X^��h^�$��^�8�(_�L��_�|�h`���a��c�,�hd�L��e���f���g��xi�d��m��o��hp���x{�|��|���(~���~� �X�<���P���d�(����Ȇ���x��4�Ȉ�t������������������ȍ�d���������X�������X��L����|��� ���p�����8������X��H�خ�l�����ض�������ȸ�T�8��������(����8�����T�X��x�����ȿ��X����������4�����8���x��$�X����������4�X��d�������������H���x������8����L���`�H���x��������$�����
�����d��������H��H�@���x�h���������������,�x�h�8��x��(�p�����������(!�0�H"�h��"��h#��(��8(�(��)�|�X/���81��82�P�(3��(4���X4���4� ��4�4��4�H��4�\��4�p�X6���6���87���7�8��7�\�X8�|��8��9���:����<� �(>�`�X@��h@���@���HC�<�H���H�$�J�T��K��M���M���(M��8M��HM�0�XN�\��O��8T����T���T��XU�P�(V���V����V����V��W��HW�0�xW�H��W�p�xX���Y����Z�0��Z�D�[�`�x[�|��[���[��\����]���]�@�h^�\��^�x�_���a����a���f�,�(j�h�hl���h������P�؛�x�H���X������� ����H���p�8�����������Ƞ�(���t�(�������ت�@�H��l��������(����h������,���X���t�h���ȭ�������h��(����T���������8����h�������(��H����x�������(����<����P����d���x�����x���(���X����8������P���h�X������������H������ ����8���X�H��p���������x���X���h��,�x��@����T����h����|�����(����������X��@�h��T����h����|�h������������h������0�(��d��������������H���X�� �h��4�x��H����h�(���X���8����(���h�(�(�H�8�x��������X�8�
�t�(��H���H�8�8�|�"���%��*�\��/��h5��;�p�8A��XO�$��Z��h�$�h�8��h�d�Xl��hl���l��8p���t�<��u�p��z��h{���{���{��X|�@�8���X�������؈�����$�H���(���X������4����L�8���H���x���h��������,����`�����8���x��$�(��P�����X�����������H������$�ء�@���T�8���X�������������X��(���D������(���������,���hX���x��H���\ȶ�p��x���������(���TH�����������X��HȽ�|(��X���8�����H������������(������8x��������H���h����� ���<���X��tx�����(���H���X���h��������0���LH��lh����������H��	���,	���T	���h	��	X���	���$
���`
���t
���
���
���
(���
h���
x����� ���4��L��������8���x���������(��TX��hx��|��������8���h����������
���
��0
���`
x��
����
H�����(��Xh�����(���x��(���<���P���h�����<���t���(���������<���X���t(��H������������ ���p������������X�����@��d�����H���h���������h��Dx��X���8��X��������X��,x��D���X���l��������������H��4��tX����������PX���x�����d��H�����(x�P��x���h	��	�(�	�D(
�`X
�|�
��
���(
��`X������$�������4x�������$ �<H �h� �� �8!��h!��!�@("�t�"��"���#�( $�\ �$� %�� �%� X&�8!�&�t!�'��!�(�"h)�8"�)�"�*��"�+�#,�8#�,�#H-�#.�#x.�$H/�l$�/�$�3�%�3�%85�d%�6�%�7�%�:�<&8;�d&�;�&<�&X<��&�<�&�>�@'H@�'x@�'HA��'B�P(8B�h(xB�(�B�(�C�(hD�H)8E�|)�E��)hF�*�F�8*hG�l*�G�*HH��*�H�+�H�$+HI�H+xI�d+�I�+�I�+XJ��+�J�+XK�8,�K�T,�K�,XL�,�L��,�L�-(M� -�M�T-N�-�O��-XP�.�P�0.(V�P.HV�d.hV�x.xV�.�V�.�V��.W��.HW�/�W�4/�W�H/�W�\/�X�/Y��/XY�0xY�(0�Y�<0�Y�P0�Y�h0Z�08Z�0�Z��0�Z��0�Z��0[�1H[�$1X[�81�[�P1h\�1(]�1�]�1x_�D2xa�2�b��2xc�3�c�L3Xd�3�d�3�e�3�f�D4�f�X4�i�4Hj��4�j�(5�j�D5�k�5l�5Xl��5�l�6Xm�L6�m�t6�n�6p�6�p�07�p�D7q�l7�q�7�q��7�q��7(r�8�r�,8(s�l8�s�88t��8�t�9�u�@9v�\9�v�x9�v�9hw�9�w��9Hx��9�x�:hy�(:�y�@:�y�X:�y�x:z�:�z��:{��:x{�;(|�H;�}�;X~��;h~�<(�@<8�T<��|<��<8���<���<؇�=�� =���l=Ȉ�=����=H��>���0>��P>X��p>���>���>H���>����>���?���(?���<?��?X��?����?���?���0@��T@���@ؒ��@���A(��<A���PAH��A���Ax���A���Bx��DBx��hB8��B����B����Bx��C���,C���C����C��CX��D��LDX��`D��tD��Dh��DȪ��D����Dh�� Eh��pE��Eȭ�Eh���EȮ��E���FX��F���XF���tFH��Fط�F��F��G���HG���lG���Gh���G���H��� Hؾ�8H��|H���Hx��H����Hh���H���,I���DI��`IX��|I���I���I����I���I8��J���$J��DJ8��dJh��J���J����J���K(��XKx��xK���KX��K����K����K����KH��L��(L���<L���PL���dL���xL���L8��L����L����Lh��M���`M���|M8���Mh��N���`NX��N����NX��O���8O��dO8��O���O����O8���O���P���PP���P��P���Q8��0Q���|Qh��Q����Qh��Q��8RH��TRh��hR���R����R(���R(��S���<S��XS(��tSX��Sh��SX��S���S��S��Th��,Tx��@T���\T8�TX�Tx�U��\U�pU(�U���UH
� VX
�4V�
�PVx�V���V��8W��PW8�W���W��X��0X8�DX��X���X���Xx�Y(�DYx�dY��Y��Y ��Y8 ��Y� �Z� �Z�#�HZ�#�\Z�#�pZX&�Z�&��Z�'�4[()�[�)�[8,�\h,�\�,�@\(-�x\h-�\�-�\�-��\�/�,](0�d]�0�]�0�]�1��]�1�]82�^X2�,^(4�^�:��^X<�$_h<�8_�<�P_�<�l_�=�_�F�`(G�,`xG�H`�G�d`�G�`HH�`�H�`�J�(a�J�<a�J�Pa�J�daK�xa(K�aHK�a�K��aL��aXL��a�M�8bN�XbO�bXO�bxO��b�O��bP�c8P�chP�4c�P�Lc�P�lc�P�cHR��c�T�dU�DdhU�`dxU�td�U�d�V��dW��d�W�e8X�<eY�te(Y�exY�e�Y��ehZ�f�\�hfH]�f�]�gh_�Xg�_�tg�`�g�a�g�a�gb��g(c�(hHc�<h�c�phd�h8d�h8f��hhi�<i�i�Xi�i�pi�i�i(j�i�j��i�j��i�j�i�j�jxk�,j�k�Dj8l�ljXl�j�l�j(m��jXm��j�m�k�p�Dkq�xkHq�k8s��kt��khu�<lxu�Pl�u�dl�u�l8v�l�x��lhz�m�z�Dm�z�\m{�tm�{�m|�m�|��m�|��m8}�mh}�n�}�8nX~�pn�~�n���n���nX��o���$o��8o���hoH��ox���o���p(��Lp��pp(��p8��p����p����p8��q���4q���Lq���|qؔ��q8���q���r���8r8��XrȖ�r��r����r8��sh�� s���<sȘ�Xs���tsؙ�s���s���tx��t���0t؛�Lt��htX��t���t؜�t���tX���t���uȝ�,u��HuH��dux��u���u؞�u���uH���u���vȟ�(vX��`vؠ�vX���v���v��wH��4w��lwx��w���w8��wh��x���0x��Px8��px���xإ�x(���xX���x���yئ�4yx��ly(��yȨ��yب��y���y���zx��,z��dz8��z(���z(��{X��D{h��X{8��{X��{����{����{8�� |H��4|X��H|��|X��|ȴ�|8���|����|��}H��(}���@}ȶ�X}��p}X��}���}���}���}ȸ�~��,~h��P~ȹ�t~���~���~����~Ȼ�ؼ�,h��X��|Ⱦ�����������(����T�H����������܀8������,����@����T���h�����������́����h������,�H��L�����X�������H������0�8��T���������8��Ѓ(�� �H��4����`����|����̄8���x������H�������ԅ���h������T�x���������������H��$����D���p�����������؇h��(����d�h���X��܈����H��t�h�������	���	�$�X
�8�(�L�8�`�X�t������������Ċ(�؊X������� �X�@���l�(��X�������ԋ�����x�8���t�8�������ԌH����$���L�(�|�������H�0���D�� ��H!��x!�܎�!��8"���"�,��#�x��$�ȏ%��X%���%�4�8&�P��&�l�'��x'��(-���-�4�H.�l��.���.���1���5�d��7�В8��x8�$��9�@��:�h�<��H=���>��@�$�H@�<��B�x��B���B��C��8C�̔(E��G�,�XI�d��M���M�Е�M���M��XN� �hN�4��N�\�8O��HO���O��hP�Ė�R��S��(S�$�xS�<��S�T�T�l�hT���T���U��HX���X��Y��HY� ��[�P�8]�|��]���]�Ș�]�ܘ^��X^���^�$��p�d��q���q��xr���s��Xt��(u�<�8{�x��{���}��H~�(�x~�@��~�T��~�l�8�����������X���h��(�H��<����h����|�����؂�ܜ������4�X��\�X�������x���8��0�ȏ�|�h��Ȟ������$�ؓ�@���\�x��|�����ȕ�����ؠ�P�������Р8��L����x����ġX������$���@�H��`�h��x���Тh���X������D����X�ز�l�ȳ�����У����ȴ����@�X��h�h��|������������$���8���L�x��d����x�(���ȹ����<�������ئ�������X������@���d�������������H�� �X��4�h��H�����������8���H��Ԩ���������������$����8�8��L����������������H��Щh��������������(����<�8��h���������������ԪX��D����X����x����H���x��ԫ������$�h��P����h�����x��Ь����(���H��4�h��P���������(��حX���������H�h��|�����(��Ȯ����8��(���t���̯H���8��@�X��T��������������������(����`����x��������X����������x��P�����(������Բ����h��<�x���������4�(��H�X��d����x��������H��$����\����t��������X������ԵH������h��`�������������8���h���h��8����`�h������X��������������(����D�H��\����|�����������8��<�(���X�������(���X���h��<���p��������Ժ��8����4���P�x�|�X����ܻ�<���l����X����ܼ���X	�H��	��
����X� ���H�X��8
��x
�ؾ�
���
���
���\�X��x�������ĿX����<�8�d�X�|������(��H�������4���`�������(����0���P���H������(����D���x�����*����+����+����+��,��8,�0�X,�D�h,�X�x,�l��,��-��8-���X-���.��h.�4��.�H��.�t�0��X0���x0����1���1�4�(2�P�H2�l�h2���2��h3���84�$�h4�8��4�L��4�d��4�|�X5���5���6���6�,��7�h��7��8:���X:��H;�@�X;�T��;���;��<���H<����<���<� �X=�H��=�d�>��(>��X>����>����>���>���>�,�8?�L�x?�h��?��@��h@��8A���HA��hA���A�,�HB�`�E����E��G��hG�0�8H�p��H��I���xI����K�@��M���M��O����O����P�4�8Q�`��Q���S����S���S� ��S�4��U��X���8X���xX���X�0�hZ�l��Z��h[��\����\���\�,�x]�d��]���^��X_����_���`�\��`�p��`��a��Xa���a����a���(b�(�xb�P��d��He����e���e�(�(f�H�Xf�d��g���h���Hj��xj�8��j�T��j�p��j��k��Xk���k����k����k��(l���n�`��n��p���p���(q�(�Xq�D�x��xx��y���Xy���y�(��z�L��z�`��z�t�H{���|���(�8�����ȁ��������l�(����X������,�h��`���|�(���8���ȋ���h���H��<����`����ș�����������H��(����P���|�8���������������@�(��l�H�������؟���(��$����H�8�������ؤ������(��(�Ȧ�d��������8����ȩ�<���P�H��p��������ȱ�t�ر�����������X��4����P�x���X����h��$����@�8��l�H������������ػ����������L���d�����X���ؿ�@����\��������X�����L�x��p�����x��������h���8��X�X��t���������������������h��D����`��������������(����H����H��(���������8��D����p���������(����8������D����|�H�������������h�� ����<����X�����X����������0����|�H�����������0����|�����(������������(�� �H��<�h��X����t�����h��������h������D�h��h�8������x����h������X���������X��$���h�h������X�������H�L���p�h�����H����8�(�p����(����D���p�(
���
��x�D�(�������������X���������h�P�x��������8�4�X�H���p���������(�!�l�!��(!��X!���!��x#�8�H;��h;���;���;���;���;��(<�$�=�X��=���=���>��?��8?�(��?�\��?�|�8@��h@���@��(D�(hD�<�D�P�D�l�E���E��F��G�88H�|�H�HI���I��L�\O�HP���P�hR�,�S�h�a�xb�d�dXd�xe��f�0�f�h8i�xi��(j�hk�h�~��~����8��P��h���(��؅�4��L8��h��؈����	���<	���d	��	��	���	��
��0
��X
��
��
���
H��
h��L���tؙ�������(���Pȟ�xH�����
إ�T
H��x
x���
����
���ة����,��@8��TX��hx��|���(����N�4(O�`xO�t�O�HQ�XQ��hQ��xQ��Q��Q�$�Q�8�Q�L�Q�`R�t(R�XR�xR��R���R��S��xS��S�0U�thU��U��U�V��8V��8X�D�X�`(Y�hY��Y���Y���Y�HZ��Z�0�[�t]�8]��X]���]�^� x^�<_�t�_��`���a��b�hc� �c�4�d�t�d��e��(f��8f�Hf�Xf�0hf�D�g�XHh�l�h�Hi��i�Xj���j���k�l�m�((m�@�n�xHp�hp�Hq��r���v�y�Pz�x�|�����D؀�`�����(���X�����X��8���X��ȅ�8�������(��<���P(��t���X������(��8ȑ�`H��t��(��(���l(���(��L��t8��H��ؤ��x��$��\خ��x��< ���T ر�l �� ��� ��� !H���!x���!���!��"���@"���T"ؽ�p"X��"���"Ⱦ��"x��#���<#X��#���#h���#���$h��$h���$H��$H��D%(��p%���%����%h��%���&���0&��L&H��l&���&(��&����&����&���0'���L'���h'H��'X��'����'���(X�� (���8(���L(���`(��t(��((��(8��(X���(h���(����(���)���)���()���<)��T)X��t)���)���)���)8���)(��)H��*���@*���\*���p*��*(��*H��*X��*h���*��+���8+���X+��l+���+H���+��,(��,8��0,x��D,���`,���t,��,h��,���,h���,����,���,8��-X��0-���L-��h-����-����-8��.��`.���.(���.��� /��H/X��p/���/8���/X���/x���/��0��� 0h��L0��0��0x�1��01��D1��p1�	�1�	�1h
��1�
�2(�2X�,2��@28
�p2x
�2���2(�3��P3h�3��3���3��$4H�P4��4�4h��4���4h�5��D5�p5H�5X�5���5h�@6(��6���6���6��7��7�!�l7�#�7�$��7%��7�%�7H&� 8�'�T8(�t8(�8x(�8�(�8)��8()�8�9�H9(:�|9(<��9�<��9?�@:a�:8a�:xa��:8c��:�{�<;�{�X;x|�l;�|�;X}�;�}�;(~��;�~�;8�$<H��T<���<���<h��<���<8��4=���x=ȃ�=��=���=�� >ȅ�P>(��|>���>��>X��0?H��l?���?����?H���?H��8@���@���@8��@��(AH��\A����A��B8��\Bؗ�B����B��Cx��4C(��lC8��C���C���CX���Cx���C8��0D���dDX��D���D8���D����D���D���@E��hEh��E���Eأ�PF��Fإ��F���Gh��PG���lG8��G����G���H���LHh��H���H����Hx��I��� IH��lI���I���Ih��0Jȳ�\J��Jش��Jh��Jx��$K(��PK���K���$L8��tLH��L���L���DM8��dM���M����M���Nh��HN��N����N(��O8��4O���O����O���P��HP8��xP���P�PH� Q��PQ8�Qx�Q�Q��LRx�R��R��R8 ��Rx �S� �HS!�xS8!�Sh!�S�!�S�!��S8"�T�"�@TX#�T�#�T�<UX�Ux�U��U��U���U���U��U��V�(VH�@V��pV(�Vx�V���V�0WH�XW��W���W8�X��(Xh�TX��tX�X8�XX �X� �0Y!�LY(!�dYH!�|Yx!�Y�!�Y�!��Y�!��Y(#�Z8%�@Z�%�tZ�%�Z&�Z&�Z('�Z8'�[h'�([x'�<[H(�`[�(�|[�(�[x)��[�)�\(*�H\�*�|\�*�\�+��\�+�\�,�@]�,�\]H-�].��]h.�]�.�$^X/�X^�/�^�/�^�0��^x1� _�2�D_�3�_�3�_X5��_x6�4`�6�P`�6�h`H7�`�7�`�7��`8�`�8�(a�8�<ax;�a�;�a�;��a�;��a�@� bhA�db�B�b�E��b�E��b(F�cxF�(c�F�Dc8G�xc�G�c�G�cXH��c�H�cI�dhI�4d�I�`dhK�d�K�d�L��dM�e�M�De�O�eQ�e�Q��eXR�fU�DfY�hfhY�f�Y�fHZ��f�Z�g([�Xg\�g8\�g�\��g]�hX]�4h�]�Xh�]�lhi��hhi�i�i� i�o�ti8s�i�s��i�s�jz�Tj���jȋ��j��� k���4k���k8��k����k(���k���lX�� lx��8lؓ�lH��l(��l��0m(��Hm8��\mH��pm���mX���m����m���n���$n��8n8��Ln(��pnh��n���nȭ�n(��oH�� oX��4oX��do(��oX��o���o����o(��p���4ph��ppص�p��pȶ�q��@q��\q��q����q���q(��rh��Xr���r���rx��s���4s���Ls���lsX��s���s����s��<tH��\t���ptx��t���t���t����t���t���u���$u���8u��Lu(��`uX��|u���u���ux��v���@v���v���vx���v���w��0w���wh���w���$x��<xX��x���x���x(���x���yH��DyX��Xy���xyH��yx���y��Dz���zx���z���{(��({H��<{���{x���{���{8��4|���l|���|���|���|8��8}��t}x��}���}��~�d~h��~����$��8�L�`h�|����H�����
�,��
�T�x����������������X
�(��
�<�8�d��������Ё8����`�X��x�؂�#�$��#�8��#�L��#�`�$�t��(�ăx-�<��1�x��C�ĄJ�<��K���R��h^�@��t��v��hw�Ԇ�� ��������������������x�� ���D�H����������,�H��x�8����������������$�8��<�h��T�x��h����|�������0�����H���H���h��������������h����X���x������Ѝ������������H��\��������܎���(���T�h��h����|���������X��L����h����������������Ԑ����x�� ����8����L�������������8��ԑh������,����x��������(��Ē���h��<����T����|�������ԓ���$����t����Ĕ����(�0�X�H�h���������D�8�|�x�����x�P�(�d�x��X	�ȗh	�ܗ�	���	��X�X�(
���
�ܘ8�<�H�P����8����X����@�8�X���h����ȚH����<���P���t����h�����������X�H���p�"���"��#�H�$��8%���)��H*�0�(+�`��+���+��X0���0�(�1�D�(1�\�(2��H5�(�h5�<�h;��xB��hC�Ԡ�C��E� ��E�H�XF��hI���L�<�8M�x�O���O�0��P�t�R���S��HU� �hW�|�8Z�Ԥh[�<��[�l�8\���\�إ]��h]�8��]�d��]���^�ئ�^��`�$��`�8��a�P�(b�d�8c���d��xe�(�Xw�x�|�ȨX��0�؃��H��ĩh���H��l���̪(���8������ ����<�8��X����l�أ��8���h������H���H��D�x��\���p�X�������x�������h��ح��(���<�(��P�H��d�������Ԯ��� ����4�(��t���������h��$����T����h���|����İ��ذ���$�h��8�x��L����`����t�������������(��ı8��رH���X���x������<�x��t���������H��Ȳ����X���h�� �������سx��8�x�����������x���x��\����8��̵H���X��|��0���6���D�L�(E�`�8F�ķ�F���F���F�8�hG�p��G���G��H�ĸ�H��(S��HS��XS�йhS��xS���S���S� ��S�4��S�H�T�\�xT�p��T��U��hU���U���U��8V�$�(W�T��X��Z��H[�X��[�l�`��x`�ܼ�`��Xa���a���a�,��a�X�Hb�x��b���b��hc�ܽ�c��xd�H�(i��Xi���l��hm�l�q�Կhr�D�u���v�0��x���}��Ȇ�D�؆�X���l����H���h���������� �H��<����T�؈�l�������������H���H��8����T����h�؋��(���Ȍ������(����������X��������؏� ���L���`�H���H������\�(���x�������X���X��H�Ȯ������@������H��X�h��������X��@����T����h���|�������������������(����8������ ���4���H���\���p�(���H�������(����h���������D�X��p�����h��������8�� ����<���h�x����������8�(�x��h���X�����$��@��
�������t���8��X��x�������<��T�h������$���%�(��&�\�3���3�8��5��H6��X6���x6����6���6���6�(�x7�T��7�h��7��8��88���8����8���8���9�L��9�x�:��X:����:���;��h;�0��;�P��;�d�<��x<���=��(>��@�P�x@�l��F��(G��HG���8K�(�hK�@��K�\��K�p��K��8L��xL���L��(M���xP��XQ�$��R�p�HT���U��8U�0�X���Ȅ���������X��4�X��P�X�����������H���h��,���H���|�����X������x���������ȿ��������\�H��t����x������� ����4���H�(��\�8��p�X���h�����������8���h���x�������H��x�(���(��l�X����x�������������x��P���������������������$����8���L�8��h�h��|�������������x�����������`������(���H��\�X�p�X��������x������X�(���D���X�x���(	�P��
��X�������X����$�8�x����X���x����P���������X��h�,�x�@���d����������(�����$���8�8�l����h��������T��x���������<���\�H ��!���!���"�L�$���%��('�`��(����*�(��+�L��-���-���X0�4�(2�l��2��3���h3���x6�4�H7�h��7��8���?��8@� �h@�8��@�P��C�HD�hD���D���D��E�$�XE�P��E�l��E��E�HF��hF���F��F���F�4�8G�P��G�l��K��L���N�H�8O�t��O��O�XR���R� �S�H�XS��U���V��V��h\�`��\��^���`�,�(a�T�Ha�h�xa��a�(b���b���b�xf�H�g�Xg��j���k�8��k�T�l�p�8l�hl��l���l���l�m��Hm�@��n�(q���u�$��u�D��u�\�v�p�y��y��{�D�{�X|�l|��|���؀�4���PX������؃��� 8��p��h�����H��<x��hȏ��������4���Hț�\��8��(�����,���|8���H���X���h�����p���X���X��x��خ����h����dh�����8�����8	h��X	���	���	����	8��
��P
���
(��@H������������h(��H��X��
h�� 
��p
(��
8��
�����,���`�����(�� H��<���x�������h�����@���T��8������(��lH��������8��x�� ���H���p��X�����������8x��X���l���H��������<X��lX��(��X�h�(��Hx�x���h���8x�d	�X	��
�(�t��(����$X�h������,8�`H���8 �8(&�x&��&��(��3�X�3�(4�x4�85�(6�<�6�7�X7��7��G�hG�0�G�D�G�X�G�lH�HH�xH��H��H��I��8I�hI��I� xJ�\�J�HK��K��N�8HN�L�N�`�N�t�N��O�xP� XQ�H R� �R�� hT�4!U�h!�U�!8V��!(W�$"�X�p"�Y�"�Z��"�Z�#�Z�#H[�4#�[�l#x]�#�]�#_�#a�<$8b�$�b��$He�4%f�p%f�%�f�%�g��%�h�(&Xi�\&�i�p&�i�&Xk�&�m��&�m�&xn�D'�r�'Xs��'�s�(ht�0(�t�D(�t�p(hu�(v��(�v�)�w�@)�x�|)Xy�)���)(��*X��,*x��H*���h*���*����*ȅ�+���<+��X+H��x+���+؆�+���+X��,x��(,���L,���`,8��|,h��,���,Ȋ�,����,(���,X���,���-���-��0-��D-H��X-x��l-���-،�-����-���.��,.���P.���h.ȏ�.��.��.(���.H���.���.���/���$/���8/���L/x��d/Ȕ�|/ȕ�/��/X���/���/Ȗ�0X��L0���d08��0���0����0H���0؝�,1��X1(��l1x��1����1h���1���2ت� 2ث�d2H��2��2���2ح��2���2h��(3���@3���x3H��3���3��38���3���4���4��D4��X4X��4ص��4��,5H��@5ȷ�\58��x5���5(���5���6H��@6(��|6X��6����6x��\7���t7���7����7����7��7���8���p8���8X��8����88��9���<9���9X��9���:h��@:���:(��:(��;���H;���`;���;��;���<h��T<���<����<����<x��T=8��=h���=����=���>8��<>���h>��>(��>x���>��?(��D?���?��?H���?���@��L@��x@X��@����@��@��(A��A���A�B8�(B��hB��B�B���B��dC�Ch�C	��CH	�C�	�D�	�4Dx�PDX�dDx�xD�Dx�DH�E��4EX�lE��E���E��FH�PF�+�F(-��Fx1�`G�3��GX4�G�4�H�4�,H�4�LH�:�H�:��H8;��H�;�I�;�(I(<�HIx<�hI�<�I=�I�=��I�=�J�>�TJ8?�|JX?�J�?��J@��JXA�0K�A�LK�A�lKB�KC�K�C�K�E�DL8F�|LhF�L�G��LH�MHH�4MxH�HMI�tMhI�M�I�MJ��M�J��MK�NxK�4NXL�hN�L�N(M�NxM��N�M��NXP�(OHR�tO�U��OV��OHX�TP�]��P8b�XQ�b�Q�c�Qe�R�e�HRhf�Rg��R�k�S�k�,SXm�Sp��Sq�4T8v�T}��Tx}�U�~�LU�~�lU�U��U(���U8���UX��V(��PV���V���V��VX���V���Vh��Wȋ�,WH��@Wx��hWH���W(��X��LX8��XX���X���Y���XY��Y����Y(��Zؘ�TZ����Zؚ��Z(��[(��h[���[H��[H��`\X��t\���\���\���\����\����\����\(��]���(]���<]���P]��|]X��]����]����]���]���^H��,^x��D^H��l^���^���^���^����^����^��_(��_8��,_���d_���_����_���`��`���H`��``X��`x���`���a(��DaX��\a���pa���a��ax���a���bh��8b��lbH��b���b����b���bH���b���@c���xc���cX��c����c����c���dh��8dX��td���d��dH���d����d���e(��Le���xe���e���e(���e(��0fH��\f���f���fh��g���8g(��\gx��g���gx���g�� h��`h(��|h���hx���h���0i��PiX��i���i����i���i��<j(��hj���j��j8���j���j���,k���hk��k���k(���k�4lh�plx�l��l��lh�m��dmH�m���m�m(�nH� nh�4n��Hn��\nx�n���n���n��n�	�Do�	�\o�
�o��o���o���o��o��<p��XpH�ph�p��q��hq�q8�qh�q���q���qx�r��rx�Tr��rh�r��r��r��s8�,sX�@s��lsx�sH��s��<t��tt��tx�u�8u �puh �u� ��u(!��u�!�u"�(v�%�xvx'�v((��v()�4wر��y��zx���zغ�{ؼ�{���{H��t|����|���}���`}��}���}����}��~���~����~���,���@��l����(	����	����	����	����	�� ��	��8��
��L��
��h��������Ȁ8��܀����
��L�
��`�8
��x�H
����X
����h
����x
��ȁ�
��܁���8���h��$����P�h������������X���x��0����\���p�����h����8)����)��(�8*��L�8-��x�x-�����-�����2���3�� �X6�����<��Ѕ8=����=��`�>����H>�����>����?�� �HF����HI����J���8J����XJ���xJ��$��J��8��J��L�XQ����XS��܈�Y��l��Y�����]����H`����g��<��h�����k��Ԋ�l�� ��l��H��m��t��o����Xp����xp��ȋ�p��܋�p����p����p���q��,�8q��@�hq��T��q��p��q����(r����hr��Ԍ�r�����r��(�8s��T��s�����s����(t���Ht���Xt���v��,�8v��@�Xv��T��v��h�w����8w����Hw����Xw��Ԏxw����w�����w���y��0�Hy��D�Xy��X��y����z����hz��ԏ�|��<�8}��`��~���������X�������������P�������������������x���ԑ؇���Ȉ����(���(����t�X�����(���Ԓx����Ȍ��������H���Гȏ�����������0�����\�X����������������8������������L�X���|������������������(�����h����|���������̖h��������<���x�X���ܗ�����؞��������8���4�X���P�H���������(���ܘx����X���d�h����������������H���<�����X�������������������(���,�����@�Ȯ��\����x�x�����������ȯ���د����8���$�x���<������������8���̜�������P�H���p�����������H������8�H���d�X���x�h�����x���������H����h�����X���d�����|������ؼ��؟����h��������(�(���l����������8�����x���Р��������������8��� ����D�������������ġ�������,�H��X����t����������X��ܢ�������P����d�������������أH������L����|������������������̤8���x����������4�x��h������X����x��ȥ����h�����������,����H�8��h����|�����(�����������0�8��h������X��Ч8���h��$����<�H��h�������X����0���D��`�(�t�8���X���XN����hU��̪_����_��d�H`����X`�����`�����a��ثxb���hh��x��i��Ĭ�m���n��(�Xs��x��s�����w����y����z��8��{��p��{����X����8��������`�(�����8���(�ء��X����t����������԰������(���T�x���������������H���,�X���@�����h�x�����X���в8�������@�(���d�X�����x��������������8�����L������������(���Ĵ�������P�8��|������(�������h��L�8����X������������Զ���8�������,����@����T����������(�X�8�l���������(���\��������(�й�����p�H�����(� �x��������������(����h��� �����@���`�(����������h��������X�x�������Խ���������H��P�8�������о����
��h��
��|�8����X������������L����`������H���x���8���X��,�8����H�������������P���d�8��x�(����h��������������������,�H��X�h��t���������������h�������(� ��<�X ��P�� ��x��!����"����X"����"��H��#����$����h$�����$����X&��$�h&��8�x&��L��&��d��&�����'����((�����(����*��d��*����(+����X+�����+�����+����H,����,��(��,��<��,��T�(-��t�8-����h-�����-����.����h.����.��(�/��@�(/��T�8/��h�H/��|�X2����x4�����4����4���5��4�85��L�H5��`�6����6����(6����86����H6����X6����6��8�H7��X�X7��l��7����x8�����8�����8���(9��0��9��l�8:�����:����8=����=��4��=��X�>��t�x>�����>����(@��$��@��@��@��`�HA����XG�����G�����I��(��I��T�J��p��J�����J�����J����HK�����K��4��K��\�XL�����L�����L����hM�����M�� �8N��4��N��P�O��d�xO�����O����hP����xP�����P����R��P�S��d�S��x�hV�����V�����V�����V����W����HW���xW��,��W��@��W��\��W��p�8X����hX����xX�����X�����Z��L��Z��h�[��|�h[�����[�����[����x\����_��$�(`��8��`��L�8b����Hb�����b�����b����c����Hc����hc����c��$��c��8��c��L��c��h��d����xe�����e�����e����e����e��4�Hf��h�hf�����f�����f����Xg����xg����g��<��g��T�h��l��h�����h�����i����(j���Hj��,�xj��D��j��`��j��x�k����Hk����xk�����k�����k����k����l��H�m��t��m�����m����(n����xn����n��D��n��X��n��t��o�����o�����o����(p����p��0��p��X�Hq�����q����(r�����r����r��4��s��p�ht�����t����u�����u���8v��0��w��h��w����8x����hx�����y���8z���{��8��{��T�8|��p��|�����|�����}�����}�����}����x~��8���T�8�����Ȁ����x���������L�؂��`�����������H���0�����|�ȇ����8�����������X���4�x���P�Ȍ��|������x�����؍����H�����(���D�8���X����������(�����x���������������������������Ȑ��,�ؐ��@�8���l�X���������������������(�����8����X���(�x���<�����T����t�h�����������������8�����X����ؔ��H����d�8���x������������(�����8��������8���X�؛���������H��������D�X���`������������������8�ج��L�����`����t�8�����د����������(�����X����X���T���h�ز����X���������<�H�����X�����h�����(����h��� �Ƚ��X�h����������h�������� �����8������8����h�������������8������@����T���h�h���������H����x��L���������������(����X�����h�x�������������������������������$���P�H��l�h��������������������$�8��8�x��d����x������x���������������h�����������(����X�����������(���<�X�X�x�l��������������0���L���x�x����������h����(�������(�����������(�H�����h����������������(����x������,�(����X���x���h��`�x��t�������
��������H���X����������� ����4���x�x������@�(!����"����8"�����"����"����"���8#����#���%��0�X%��H�h%��\��%��p�&����8&����H(����)��(�h*��P��*��h�+����H+����8@���XB��4�L����xN����R��S��(�S��H�S��`T���zRx�$�_�NFJw�?:*3$"D��M,\8��_E�F
E���P
H�h��HN�p��HI�x��7����4��������L ��	B�B�B �D(�H0�u
(A BBBB�
(D BBBIp��(��E�F k
AIfO4����F�A�A �\
CBG�FBX�L�?F�N�B �A(�D0�F@�
0F(A BBBHA
0A(A BBBAD0�	X,�8lX�`�T�K�F�B �B(�A0�A8�DP�
8A0A(B BBBEP������AP������`��F�B�B �E(�A0�A8�D@/
8D0A(B BBBGb8M0A(B BBB0HL�jN�F�A �O0z AABA���|��E�}
N$���[A�F�J0GAA �4�nE�v
E`
H ���fE�o
LV
J4���E�A�D0h
AADD
FAE<@t��F�E�F �D(�A0�x
(D BBBHL�	�fN�F�A �A(�D0
(A ABBBd(F ABBA����<�$
�F�B�I �D(�H0�i
(A BBBC�
�($0�E�D �
ADI
AF\P�F�E�A �A(�D@u
(F ABBGW
(F ABBF�
(A ABBF��4
�IF�E�B �B(�A0�A8�DP�
8F0A(B BBBJg
8F0A(B BBBJ�
8D0A(B BBBOQ
8G0C(D EBBE�D��	F�B�B �B(�A0�D8�DP�
8F0A(B BBBBo
8F0A(B BBBBt
8D0A(B BBBOQ
8G0C(D EBBEP�h�\F�C�C �N0i
 AABIj
 AABBL
 AABA80t�B�B�E �E(�D0�o(D BBB8l���F�B�A �D(�D0�
(A FBBI<�l�]�D�O QCAK��p ��DG�A��<�AAK(@�OF�A�A �~
ABA40d��A�A�D v
DAGL
AAAh��(A�[4��F�D�A ��
ABKQDB4���F�A�D �U
ABEQDB���MH	,�B�B�E �E(�D0�D8�Gp�
8A0A(B BBBFT	��GKc
Ap	��$A�^L�	��FN�E�D �C(�H0�
(F ABBKD(C ABBD����`�	��&B�E�E �E(�D0�A8�DP�
8A0A(B BBBJ[
8P0A(B BBBL<@
��F�D�G �G0R
 AABBX AAB<�
��B�B�E �D(�A0�t
(D BBBDD�
T�^N�B�B �A(�A0�D@10A(A BBBG�����0l�F�A�A �D0�
 CABF@<��9F�P�B �A(�A0�O@0D(A BBB4���A�G�G Z
AAAPG�A�4��Q�D�G Z
AAHPG�A�����4E�P
KLH$0�^F�B�B �B(�A0�A8�Dp%
8D0A(B BBBDpD �"H�` ��B�B�B �B(�A0�A8�G@b
8D0A(B BBBHL�#�!B�B�E �D(�L0�H
(A BBBHj
(A BBBG( 
�$�A�M�F0U
AAEL
h%�i`
�%�A(t
&�FA�D�D ^
GFL�
$&�	�
 &��
�&�H�
�&�&F�S�J �B(�A0�A8�D@�
8D0A(B BBBG8(|'��B�B�D �G(�G0�
(A ABBD<d (�F�B�H �D(�A0�
(D BBBE(��)�E�D�D �
AAE�t*�D�p*�NF�B�E �A(�A0�D�
0D(A BBBE0,x+�E�D�G0S
AAKXAA,`�+��E�C
H����D�x
D,��.��E�C
I������
E,�D1�E�C
B�J����
D,�$4�E�C
D��E�E�H�
D �7�(4�7�tE�I�D p
DAI`�7�1t 8�2a�L��D8�0A�n �X8�E�H
Ci
G4��8�E�A�G@)
DAEW
FAB8�:��F�A�A ��
ABIA
ABD(DP<�A�A�G `
AAE8p�=�F�B�D �A(�G0d
(D ABBG��>�HNH��>�<F�P�B �B(�A0�A8�Opi
8D0A(B BBBGH�?�jF�S�J �B(�E0�A8�D`$
8A0A(B BBBC\�@�CE�x
AHx�@�F�B�B �A(�A0�u
(D BBBED(A BBBH�PA�;F�B�B �A(�D0��
(D BBBE^(K DDEHDB��F�E�A �A(�D0�
(D ABBCQ(F HDEH\�B�`F�B�B �E(�A0�A8�GP�
8D0A(B BBBH4��E�BA�D�G �
AAA\
DAOH��F�hF�E�B �B(�A0�A8�FP�
8D0A(B BBBG,H�E�v
E@L�H�F�B�B �D(�D0�F`	
0D(A BBBDL�M�F�B�A �A(�GP^
(D ABBH�
(D ABBG8��P�pF�A�A �-
ABH�
ABIS�vE�E
Fa(<hS�YE�A�J w
DADHh�S�F�B�B �B(�D0�A8�Jp-
8D0A(B BBBK��X�0�Y�#H Z�$Y�H�0Y��F�B�E �D(�E0��
(D BBBJG(A EBBH@�Y��E�G�D v
AAHk
DAPD
FAE\FA,�HZ�JF�A�D ��
ABJ�h[�P�d[�3F�B�E �A(�D0��
(A BBBF;
(A BBBE\$P]��F�I�E �E(�A0�D8�FP�
8D0A(B BBBGS8D0A(B BBB`��]�F�B�B �A(�D0��
(A BBBAH
(A BBBAN
(K DDEJ��^�&E�X
CA4�^�F�A�D �i
ABIAABl@_�F�B�B �D(�D0�I@S
0D(A BBBG�
0D(A BBBC�
0D(A BBBE8��a�F�E�D �D(�D0L
(D ABBD�(b�(4b�1E�A�G �
AAAL,Hc�B�G�B �B(�A0�A8�D�!
8A0A(B BBBB@|f�XE�C�N0�
DADT
DAGR
DAA(�$g��E�P c
AGW
AH$��g��M��
JaG�H�(�h�LE�A�G �
DAB8@�i�WN�A�A ��
ABEP���P ���|�j�$H [@�k�F�D�D �@
DEIX
FEMJFB@�|k�IE�D�G0V
AAHm
AAAg
AAG �l�}E�l
GV
J4@�l�F�A�D �^
ABLADBx<m�ME�Z
I4�pm�F�A�D �^
ABLADB,��m��E�C
B�Q�����
A$��s�:E�G O
ADXAH$�s�B�B�B �B(�D0�A8�D`d
8A0A(B BBBApw�E�z
A0��w��F�A�C �D0~
 DABE@�Px�E�D�G0�
AAK}
AAAU
AAI �y��HU
Cp
Hl,Hz�<F�B�B �A(�D0�GP�
0D(A BBBF{
0D(A BBBB�
0A(A BBBA,�|�F�D�A �U
ABE��|�E�TH��|�F�B�B �B(�A0�D8�I��
8D0A(B BBBB(4Ђ�-F�D�F �YAB`Ԃ�E�T@|؂�TF�A�A �G0�
 DABBL
 DAEJ`���F�B�B �B(�A0�A8�DP,
8D0A(B BBBAQ
8A0A(B BBBE$ ��-H8<���F�B�E �B(�A0�A8�D`�
8D0A(B BBBD`�Ј�F�B�B �B(�G0�A8�GP�
8D0A(B BBBF|
8G0A(B BBBL�,��GE�P pA \��	( X��E�D�D Z
DADH ���	4\ ���E�D�G N
FAK�
DAC(� ��eE�D�I c
DAFH� T��aF�E�B �H(�D0�A8�Kp�
8D0A(B BBBG!x��CH !���F�E�E �E(�C0�^
(G BBBMA(A BBB8l!���F�B�D �D(�D0y
(D ABBJ`�!���F�A�A �G0`
 DABJ6
 DABCe
 IABGQ
 DDBE8"��B�E�A �A(�D0�
(D ABBAH"|��&E�P
KAh"���&E�X
CA�"���4E�P
KL(�"��� 
M�H�A ��	AI�"����"L��y$�"���L�E�t
AJ$#@��
8#<��ZL#���Z,`#Ԟ�B�D�I �g
ABG�#d��H�T
D_4�#ğ�A�A�D �
AAAK
FAFT�#��B�B�B �B(�D0�D8�D@�HKPIHA@H
8D0A(B BBBC@$ԡ�TA��
GP`$��}B�A�A �p
ABIG
ABF�(B0F(D A
ABD8�$@��E�F�G �A(�W0�
(A ABBA4�$��B�E�D �F(�J0�(A ABBL(%ܥ�wB�B�E �D(�A0�E
(A BBBA�
(A BBBA,x%��4A�C
H����N�q
E�%��YL[
I(�%`��JA�I�D0�
AAE��%���B�B�K �E(�D0�D8�K�+
8A0A(B BBBD`�L�F�I�F�I�D��
8C0A(B BBBGD�L�F�I�F�I�y�H�&��B�B�E �E(�D0�A8�DP�
8A0A(B BBBG0�&���B�A�A �Dp�
 AABC '$���E�b
IL
D4'к�RE�b
YP'��#d'0��3hx'\��UB�K�M �F(�D0�D8�D��
8C0A(B BBBAm�N�F�F�F�F�~��'P��~H�'��B�F�B �B(�A0�A8�D@o
8A0A(B BBBA<H(<��NF�B�B �A(�A0�
(A BBBA�(L��%AA^L�(`��B�B�B �A(�A0��
(A BBBEP
(F BBBD�(���Wx)��sTT )t��3F�B�B �B(�A0�A8�D`�hKpShA`[
8C0A(B BBBFx)\��%AA^ �)p��A�B
Et
AP�)��B�A�A �DP�
 AABGL
 AABHY
 AABC *X��HE
CI
E,0*���QA�O�S G(H0\AA,`*��+A�C
B�E�E�J���
C��*��B�E�E �E(�A0�D8�Gph
8J0A(B BBBHP
8D0A(B BBBK
8A0A(B BBBHDxW�D�D�I8A0A(B BBBApL4+����H@F
BGHGPFHA@D
GDHKPDXD`I@D
DDHGPFHA@,�+���A�C
P�����I	
C�+��y[KE I8�+p���B�B�A �A(�DP�
(D ABBDH,��FB�B�A �A(�DP�
(D ABBJI(D AEB \,��|H@FHDPdHA@D,�,d���A�C
P�����B
J8�,��)F�B�A �A(�DP�
(D ABBH0�,���F�A�A �D@x
 DABED -t��9F�B�A �A(�DP�XQ`BhBpg(D ABBEP@h-l��mF�B�A �A(�DP�XK`g(D ABBBP@�-���uF�B�A �A(�DP�XK`g(D ABBHP�-���d(.0��E�g
DZ
F}
S40.��E�D�G j
AAD�
AAF h.���jA�|
CX
H�.���MDf
FX�.��X�.��B�B�B �A(�A0�GP�
0A(A BBBGj
0F(A BBBI/H��A0/���
� VdH/|��F�B�B �B(�A0�A8�D�|
8A0A(B BBBHI
8A0A(B BBBEd�/4��WF�B�B �B(�A0�A8�D�|
8A0A(B BBBH@
8A0A(B BBBF0,��1A��
Fp80L��F�B�B �B(�A0�A8�Dp�
8A0A(B BBBH�xK�TxBp�
8A0A(B BBBDH�0��B�B�B �B(�A0�A8�D`X
8A0A(B BBBHL�0,�B�B�B �B(�A0�A8�G�+
8A0A(B BBBJ,H1��	A�C
P������
E,x1�!�SA�F
F���E�D��
C�1-�,�1(-�F�A�A ��
ABA �1.�IE�g
LA
G2D.�-\P (2\.�
H �
Gz
FL2H/�	`2D/�$t2`/�yL�K
IX�2�/�(TS8�2�/�B�E�A �A(�DP�
(A ABBGL�2<2�B�B�A �A(�GP,
(A ABBAX
(F ABBEd83�4�F�B�B �B(�A0�A8�D�|
8A0A(B BBBHQ
8A0A(B BBBEd�3D8��B�E�E �E(�A0�A8�D`�
8F0A(B BBBK�hDpLhA`�hIpNhF`l4�<��B�E�D �D(�D@
(A ABBFi
(A ABBAi
(A ABBAH(E AFB(x4<>�"A�D�G0�
GAKL�4@?��B�E�D �D(�G@�
(A ABBEZ
(A ABBH$�4�?�|E�G p
ACzA458@�E�D�G0r
AAD[
AAK4T5A�E�D�G0L
AAB[
AAC �5xA�lE�h
KL
H�5�A�%�5�A�%(�5�A��E�G f
AEiA86�B��B�A�A �I
ABHp
ABA8@6tC��B�A�A �M
ABDQ
ABA|6D��_QG4�6�D�4E�D�G �
FAEa
AAE��6�F�O�B�B �A(�D0�G�N
0A(A BBBK������H������D�N�U�B�_�H�Y�A�e�K�W�B�	�N�V�B�J�N�^�B� �7�I��H \
DV
JD�7lJ��F�E�E �D(�D0�GPvXK`I0A(A BBBGP�7�J�<8K�$B�H�B �G(�G0��
(D BBBJ4D8�K�A�F�G0�
AAEa
AAE |8�L�H�X
HU
C �8DM�H�U
KR
F`�8�M�F�E�E �H(�M0�D8�D`hhHpWhA`G
8D0A(B BBBGqhKpWhB`(9�Q�P<9R�hE�A�GPa
AAHAXH`[XDP[
AACI
AAEX�9$S�F�E�B �B(�D0�C8�Gp�
8A0A(B BBBK�xJ�FxAp(�9xX��E�C
B�E�F���
HH:,Z�F�E�B �B(�A0�C8�Dp�
8A0A(B BBBAHd:�Z��F�B�B �B(�A0�C8�Gp�
8A0A(B BBBAT�:�[��F�B�B �B(�A0�C8�Gpex_�ZxApX
8A0A(B BBBA;,\�%;H\�HtS4;�\�H;|\�\;x\�	p;t\�	L�;p\�lO�A�D �
A�A�IYM�A�Q ��T
A�A�J0�;�]�uE�L R
ADq
AFSA <�]�UE�l
GD
A,<^�]E�]
Ft L<X^�UE�l
GD
Ap<�^�]E�]
Ft�<�^�-HX
HD �<�^�uH _
Ip
HL,�<@_��D �
EsU D
L}
E,=�`�D �
IkM D
Lz
E<4=pb�E�G �
AEL
IKf
DFD
AK,t=�c�#A�G0�
AD�
AG�=�e�(�=�e�ME�D�G P
GAHh�=�e�E�D�G@{
AACD
EAF�
DDOr
GANO
DALh
HAO�P>h�P�F�D �D(�G@t
(G� A�B�B�K�
(A ABBAa
(J� F�D�B�ID
(A� A�B�B�FD
(F ABBA

(E AFBEL
(D� A�B�B�Nw���� ?l�yH@
HI
WD,8?\l�zE�I0G
AJI
FALh?�m�E�D�G n
AAHd
FAEn
GAJZ
GAF8�?�n�hB�D�C �r
DBGn
ABG�? p�@p�@p�0@p�(D@p�E�I0t
AE�G@p@�p�E�D�G �
DAHK
GAEN
GAJ,�@@r�CE�H�D /AA$�@`v�XA�I�G DAAA�v�HQ<$A�v�F�E�B �A(�A0�g
(D BBBHLdAw��F�B�D �D(�D0F
(C ABBFi
(C ABBG(�A�w�fF�D�D �h
CBE�A�w�A�L�A�w�+\NB�w�#TN,B�w�#TNDBx�#TN$\B(x�XA�I�G DAA$�B`x�A�G�N }DAH�B�x�F�B�J �B(�D0�A8�G@T
8C0A(B BBBHH�B�y�F�B�B �B(�D0�D8�G`c
8C0A(B BBBFDC`z�XClz�QR�oG�tC�z�QR�oG�$�C�z�5E�A�D hAA�C{�+E�e�C {�+E�e8�C4{�oF�B�I �A(�D0�
(D ABBF$,Dh|�PA�G�D ~DATD�|�Hq
ApD}�#E�Y$�D}�}f�G QF�T �@�Dp}�F�B�B �A(�A0�D@h
0D(A BBBE�D��0E���F�A�D �G0�
 DABG8@E���hB�B�A �A(�L0�
(D ABBE`|E���@F�K�B �A(�A0��
(A BBBBX
(A BBBA�
(A BBBFH�E����,F�B�B �B(�A0�D8�D�W
8D0A(B BBBG4,FH��)A�A�D �
DAGX
DAC$dF@��=E�A�G jDA(�FX��eE�D�G _
LCJ<�F���F�E�B �D(�A0�f
(A BBBA8�Fl��!F�E�D �D(�D0[
(D ABBE$4G`��,E�D�J IJA$\Gh��LE�F�D zAA$�G���*E�D�D WDA8�G���F�A�A �H
ABEi
ABA4�G��F�D�D �q
ABF{
ABA H���E�OH<H���NF�B�B �E(�A0�I8�D@%
8D0A(B BBBAH�H���B�E�E �B(�A0�A8�G`�
8A0A(B BBBD,�H`���F�A�D �}
ABELI���F�B�A �D(�G0J
(A ABBDL
(D ABBK(TI���hF�A�A �\AB$�I���UE�D�O zAA(�I��mE�A�G I
DAE�IP��(�IL��1F�D�D �XDB(J`��4F�D�D �[DB(@Jt��4F�D�D �[DBlJ���)E�_�J���K�J���U<�J$��E�A�D W
DAJn
ADENADH�J����,F�B�B �B(�A0�D8�D�g
8D0A(B BBBG(<K8��+F�D�D �UAB4hK<��:F�E�D �D(�G0I(M ABB�KD��(�KP��3F�D�A �]DB(�Kd��/F�D�C �WDB Lh��L�[
I_
I(0Ld��E�D�G E
AAI@\L����F�A�A �D0r
 DABKF
 DABCL�L���^F�E�B �E(�D0�A8�D��
8D0A(B BBBEH�L���B�H�E �B(�D0�C8�GP�
8D0A(B BBBA<Mh��PMt��dM���xM����M����M4���M��0�Ml��.F�A�A �G@n
 DABD�Mh����LN0�F�J�E �E(�D0�A8�D�Q
8A0A(B BBBBdNp�4H k$|N��KE�L�I nAA$�N��DE�L�I ^CA$�N��GE�L�I ^CA$�N�KE�L�I nAAO8�>M e4O`�+HbLOx�GE�u
FFlO��1H h0�O��SE�D�G Q
CAK`AA�O��dE�A�G 0�OL�\E�J�N c
CALDFAPx��E��,P8�	@P4�	TP0�hP,�|P(�
�P$�$�P0�]E�M�G kLHH�Ph��B�E�E �D(�A0�\
(C BBBJ(F BBBQ��$,Q��DE�E�G fDDTQ�hQ�|Q�(�Q$�E�D�O S
DAH$�Q��2E�A�G _DA �Q��jE�G z
FD$R�IE�E�G kDD0RD�0DRP�B�D�D �D0�
 DABC$xR�	�YE�P�D zDA�R�	�4�R�	�B�D�D �l
ABGqFB0�R�
�A�h
GK
EF
JF
RA S4�4S0�HS,�\S(�}HT
Du
K|S��'H^ �S��(J L
Ju
K,�S���F�K�A �D
ABG �S\
��L�r
J`,T(�9L�r
J�
AA
EF<T8�L�U
O,\T��F�H�C �p
CBJP�T��_F�A�A ��
ABN�
ABOL
ABAX
FDN(�T��]E�D�J Z
AAA<U��QI�B�H �A(�D0�;
(D BBBC8LU�M�A�D �~
ABMj
DBH<�U��F�M�B �A(�A0��
(A BBBG<�Ul�F�M�B �A(�A0�
(A BBBG@VL"��F�D�L �A(�A0�D@�
0D(A BBBC@LV(��E�D�J a
NAMo
CAE~
FAC<�V�)��F�M�B �A(�A0��
(A BBBGL�VD.��B�M�B �A(�A0��
(D BBBHD
(A BBBEL W�1�	B�M�B �A(�A0��
(D BBBHD
(A BBBM@pW�5�F�D�L �A(�A0�D@�
0D(A BBBKd�W;�M�B�B �A(�D0��
(A BBBFo
(A BBBJ�
(D EBBJdXX@�M�B�B �A(�D0��
(A BBBFo
(A BBBJ�
(D EBBJd�X�E�M�B�B �A(�D0�M
(F BBBI
(D BBBG�
(D EBBJH�XXK�F�B�B �B(�D0�A8�J`X
8A0A(B BBBC|8Y,Y�sF�B�B �E(�A0�A8�JP
8J0A(B BBBF0
8D0A(B BBBCs
8D0A(B BBBH|�Y,d�)
F�B�B �E(�A0�A8�JP
8D0A(B BBBDo
8J0A(B BBBF-
8D0A(B BBBF8Z�p�(LZ�p��M�D�I �u
ABF<xZ|q�aM�B�B �A(�D0�E
(D BBBK�Z�t��Z�t�<�Z�t�F�I�B �D(�G0��
(D BBBC, [$x�PA�C
B�I���E��
H0P[D|�B�A�D �D0Y
 AABH8�[}�'F�N�A �C(�DPL
(A ABBB �[��E�G s
AH�[���-H d(�[���_E�D�D Z
DAD((\܂�_E�D�D Z
DAD<T\���F�N�B �A(�A0��	
(H BBBJ�\����\���#HZ(�\Ԏ�AF�A�G gAAI��H�\���B�B�E �E(�D0�E8�G@H
8D0A(B BBBE\8]\��B�H�E �D(�C0�q
(A BBBBM
(A BBBDy
(A BBBHx�]����N�B�F �B(�D0�A8�D@W
8C0A(B BBBDa
8A0A(B BBBEX������H@������^ ��#E�Y0^4��&H ]H^L��.Kbd`^d��|B�D�H �E(�D0�E8�D�m
8A0A(B BBBI�
8F0A(B BBBFH�^|��
B�B�B �E(�D0�D8�GpP
8D0A(B BBBI|_@��%B�E�E �B(�D0�A8�D��
8A0A(B BBBKU
8A0A(B BBBI�
8A0A(B BBBAH�_���F�B�E �B(�D0�D8�DPe
8D0A(B BBBC4�_���vE�J�D`�
AAC�
FAG$`ܝ�/E�F�N IGA0@`���B�G�C �Dp�
 AABBHt`���B�B�E �E(�D0�A8�DP]
8D0A(B BBBGH�`Ԟ�B�B�B �B(�A0�A8�D`E
8D0A(B BBBA(a8��3F�D�D �WDE(8aL��E�D \
AJj
AA@da��B�B�B �A(�D0�D@�
0A(A BBBH�a\��WH s
E�a���WH t
D�a��5A�Z
E�a��NE�i
JJb8��YDw
A8b|��#E�]Tb���
(hb���ME�D�D c
DAK�b���E�L�b���!HQ�b̢�E�T4�bТ�hE�A�D n
FAAT
GAEc��:HZ
NI<c(��2HX
F@XcL���F�B�E �D(�A0�FP�
0D(A BBBF(�c���mA�D�F v
DAJ�c<��*HP4�cT��uF�I�H �w
ABGNHB$d���OE�N�D uAA8@dĥ�B�E�J �I(�DPO
(C ABBKx|d���
B�H�E �B(�A0�A8�G�{�P�Q�H�M�
8C0A(B BBBK��I�G�H�Q�`�dl��B�B�B �E(�A0�A8�G�

8C0A(B BBBCD�K�F�E�[�\e(��pe4��*�eP��>Oe8�ex��oF�H�A �a
CDI�
ABG4�e���tF�D�D �o
FBKVDE(f��E�O�D0~
FAC(<fx���E�O0c
DEx
DD8hf<��F�D�A �_
ABCN
DLE$�f���?E�A�D oDA�fȷ�	@�fķ�mF�D�H �DPu
 FABDq
 AABC4$g��AF�E�D �D(�L0I(F JBB0\g��mF�D�D �G@G
 AABH4�gD��SF�E�D �D(�LPm(A ABB�gl��/H0f�g����L��\�gH���B�B�B �B(�A0�A8�G���G�S�A�O
8A0A(B BBBEH\h���F�B�D �D(�G@I
(P ABBKW(A ABB�h���h���h��?A�]
A�h8��	Hi4��B�B�E �B(�A0�H8�D@�
8A0A(B BBBHLLi���B�B�A �A(�F0O
(C ABBEd
(A ABBA0�i���LA�D�G \
JAMDFA�i��:H q�i,��6L�ijP��j\��&E�X4jp��#E�]Pj���&AADlj���EAD �j���lE�G B
CG�j���qQ�G UC�j8��&�jT���j`��k\��kX��%0kt��Dkp��1H

K`k���_H v
BF
J�k���HMH�k���+F�E�E �B(�A0�G8�DPv
8C0A(B BBBH�k���OH x
H$l���QE�D�D AAA(l,��9\\$@lT��0A�D�F SDIhl\��	4|lX��BF�D�D �U
ABJNAB(�lp��>J�D�J XAAF��T�l���S�B�E �D(�D0�u
(A BBBBb
(A BBBGG�����88m���F�B�A �A(�D0o
(J ABBBtm ��(�m��;E�C�G K
AAA�m0���m,���m8���mD��1\Tnl��nh��1\T4n���
Hn���1\T<`n����F�B�B �A(�D0�
(C IBBE�nD��
�n@��#HZ�nX��HI�n`��7fP�n���HIo���	<(o���sM�I�B �A(�A0��
(C GBBIho���!|o��� �o���!�o��!�o,��!�oH��!�od��!�o���!p���p���!0p���!,Dp���A�C
H����K�J
G\tp@���F�B�D �D(�D0E
(C ABBGc
(C ABBED
(G ABBE�p���4E�W
L,�p���F�A�D �W
ABA q4��7E�q,<qX��yB�D�D �L
ABG8lq���^F�B�D �G(�D0a
(G DBBI$�q���JE�A�G zAA4�q���oA�A�D v
CAHV
CAF0r,��JE�G�G M
FAINDC<rH��!Prd��Hdrp��B�G�B �L(�A0�A8�D@
8A0A(B BBBD\�r����B�B�A �A(�D0Y
(F CBBH@
(C ABBHG(A ABB<sd��A�A�D R
CADD
IAJICA4Ps���E�G
Df
J}
CD
Lf
J�s��HI`�s$��dF�B�B �E(�D0�A8�DP�
8D0A(B BBBD�
8A0A(B BBBJ(t0��TE�D�G N
AAA0td���TXIPtD��9HR
Glth��A�Q
A�tl��?E�Q
J�t��� HL(�t���A�C�D h
DAK�t��	4�t��xE�D�D J
AAGD
FAEL4u`��$F�B�B �A(�A0��
(A BBBHN
(A BBBK�u@��E�O�uD��E�O4�uH��E�D�D b
CAED
DAO �u���wH R
FO
Av��?H v 0v4��kA�D L
AA Tv���OE�Q
JO
E4xv���B�D�C �R
ABB[AB�v4��9a�v`��#E�]�vt���v���#E�]w���8E�D mA$0w���T�Y�s�F
AXw��	$lw��<E�Q
JO
IC4�w0��wE�D�G c
FAFT
FAA�wx�� HS(�w���E�I J
CEaCx���HI(x���EfP@x$��HIXx,��	lx(���x4���x@���x<��,�xH��F�D�A �g
ABK�x���#E�]<y���`F�B�J �D(�A0��
(F BBBA<Hy��F�J�B �D(�A0��
(F BBBE0�yl��hF�D�D �F0�
 DABD0�y���F�D�D �F0�
 DABI0�y4��hF�D�D �F0�
 DABE<$zp��F�J�B �D(�A0�
(F BBBH<dz@��F�J�B �D(�A0�
(F BBBG$�z���wE�G t
AGmA8�z��F�E�D �D(�D0O
(D ABBA{|��*HaT {���pF�D�B �K(�D0�F@�
0F(A BBBAq
0A(A BBBAHx{����E�E�G R
PFG\
AAJD
FAETFA$�{@��DE�H�I kAA$�{h��[E�H�N }AA$|���hE�H�N JAA$<|���XE�G�L }AA$d| ��[E�H�N }AAL�|X���F�M�D �F0o
 AABHH
 AABDd AAB0�|���F�D�A �D0[
 AAGE(}d��`F�D�D �NAB<}���$E�^X}���&E�`t}���.E�[
A�}���.E�[
A�}���.E�[
A�}���EE�`
AH�}0��F�H�B �B(�A0�D8�D@�
8D0A(B BBBI@0~���F�A�D �G0s
 FABBm
 AABGPt~���8F�A�D �G0�
 DABCZ
 DABGm
 GABA4�~���8E�D�D �
DAKi
DAB4���E�D�D �
FAHl
FAEd8|��4B�B�B �B(�A0�A8�G�U
8A0A(B BBBA
8A0A(B BBBFX�T��	B�B�B �D(�C0�Gp�
0D(A BBBDc
0G(A BBBGH���F�L�I �F(�D@
(A ABBF@(A ABBHH�|��F�L�I �F(�D@|
(A ABBI@(A ABB8����F�E�D �D(�D0O
(D ABBA0ЀT�pF�M�A �D0w
 AABE0���WE�I�D e
FABOFA8��� HP(P���4B�D�C �`DB4|���QF�D�C �l
ABDGCB���$A�^0Ё�VE�A�G p
DAFDDA�@�(A�[0 �T�VE�A�G p
DAFDDA0T���VE�A�G p
DAFDDA0����VE�A�G p
DAFDDA0����VE�A�G p
DAFDDAH��F�B�D �D(�F0v
(D ABBKD(A ABB0<�h�fE�A�G A
DAEDDA,p���F�D�A �J
ABH4���aF�D�C �|
ABDGCB0؃<�~E�D�D R
AAODDA<����F�A�D �D0U
 AABH[ AAB8L��F�D�A �O
ABCA
CBJ\��|�B�B�B �B(�A0�A8�D@\
8A0A(B BBBDu8A0A(B BBB4���5F�I�A ��
ABLLDP( ���cF�K�A �l
ABEHL�(�B�B�B �A(�A0�P
(A BBBAa(A BBBH��l�B�B�B �A(�A0�P
(A BBBAh(A BBB8���F�Q�I �A(�D@�
(D ABBF( ���ZE�A�D h
JAELL����F�M�D �F0Z
 AABEV
 AABFh AAB4��H	�pE�A�D Q
DAHy
AAA4Ԇ�	��E�D�D s
DAKQ
FML �
�TE�k
HN
AL0�T
��F�M�D �F0Z
 AABES
 AABIh AAB(���
�^F�F�A �l
ABEd����F�B�B �B(�A0�A8�G@�
8D0A(B BBBFA
8F0H(D EBBL���&L(���nF�H�A �C(�G@�
(F ABBAr
(F ABBCLx���kF�H�D �A(�G@�
(F ABBGO
(F ABBF@Ȉ��1F�G�C �G0�
 FABJR
 FABE@���F�E�B �D(�C0�G@�
0F(A BBBD$P���9E�I�D _FA0x���sE�C�J _
FAHkFA���Aa�_(ȉL�FF�I�D �e
FBA�p�1E�f
A@���F�A�D �FPV
 FABH� FAB@T�p�F�D�C �D@

 FABDV FAB����%E�VL�����F�C�D �D0G
 FABGT
 DABMl GAB\�P�F�D�B �D(�A0�}
(D BBBHs
(A BBBFI(D BBBd���$H[|���3E�_(����DE�C�G `
FAAHċ�F�E�B �D(�C0��
(F BBBI~(A BBBH���F�D�A �A(�J0n
(A ABBFm(F ABB0\���E�C�J0n
FAIlFAH����F�D�A �A(�J0n
(A ABBFm(F ABB4܌��F�C�A �`
FBFZAB4�`�F�C�A �[
FBCZAB0L���kE�C�J Z
FAEkFA0����fE�C�J Z
FAEfFA0��0�kE�C�J Z
FAEkFA0�l�fE�C�J Z
FAEfFA���.E�[
A 8���TE�k
HN
A\���.E�[
Ax��.E�[
A�� �E�0��(�F�C�G �D0P
 FABC(���NE�I�D h
FAG<���E�C�J0X
FAG^
FACHFAL��6E�p0h�<�WE�I�D \
FAKOFA0��h�WE�I�D \
FAKOFAЏ��NE�i
A(���GE�I�D \
FAA���/E�i04� �hE�I�D l
FAKPFA0h�< �pE�C�J l
FAKXFAL��x �F�D�B �A(�A0��
(F BBBBZ
(A BBBG(��!�E�C�J D
FAC(�L"�4F�D�C �^FBD�`"�E�zd��'�x��'����'�
���'�$���'�?E�N�D eAA$ܑ�'�?E�N�D eAA$�(�?E�N�D eAA,�((�PE�FH�\(�\�X(�Hp�T(�B�B�B �B(�A0�D8�DP�
8A0A(B BBBDD��)�KB�E�E �D(�D0�S8H@R8A0A(A BBB�)�CE�a
E �D)�E�L<�H)�P�D)�d�@)�2Hi|�h)�5E�o���)�HI(���)�KF�E�G �rDBܓ�)���)���)�4E�n ��)�5Dp8�*�	L�*�*Ha4d�0*��E�G�D _
KFH@
DAC0���*�E�G�D l
DAGdAA8Дd+�F�E�D �D(�D0v
(A ABBEH��+�F�I�A �D(�D0�
(F ABBDu(F ABBHX�,-�F�B�E �B(�D0�D8�DP�
8F0A(B BBBDH���.�F�B�E �B(�D0�A8�DP
8F0A(B BBBD4�0�sF�K�A �m
FBIZFB4(�\0�{F�K�A �m
FBIbFB0`��0�_E�H�G \
FAINFF0���0�_E�H�G \
FAINFF@Ȗ�0��F�B�B �D(�A0�DPo
0F(A BBBAH��1��I�B�B �A(�C0�_8H@\8D0L
(A BBBAX�<2�dl�H2��F�I�B �E(�A0�A8�G@�
8D0A(B BBBK\
8H0D(D BBBN(ԗ�4�A�D�D0f
AAG8�T5�WF�E�E �A(�D0�o(F DBB<�x5�8D[
AHX��5�F�B�B �B(�D0�A8�I@r
8D0A(B BBBE(��6�bE�A�G w
DAAИT6�8D[
A0�x6�nE�G�D r
DAIXDA< ��6�B�B�E �A(�D0�Q
(A BBBJ$`�7�vE�A�G@fAA0��\7��F�A�A �G@v
 AABGL��8�=F�E�D �A(�D@�
(A ABBBO
(A ABBK4�9�E�D�D \
DABB
AADD�`9�	$X�\9�ZE�D�D JAA(���9�|A�D�G x
JAI0���9�>A�D�D V
AAGSAA��9�HI���9�1E�^
ED$�:�E�D�G0uAA<@��:�nF�G�A �F0}
 AABKD FABL���:��F�B�B �A(�D0�h
(A BBBBU
(A BBBLЛ4;�7E�Y
A(�X;�E�D�D u
DAA8��;�F�D�K �G
FBDY
FBGT�`<�iH H
Ap��<�iH H
A��=�iH H
A��\=�iH H
AĜ�=�iH H
A�>�nH M
A(��X>�E�A�G@i
AAH(��>�o<�8?�HNT�@?�HKl�H?�CE�\
OI��x?�4���?�F�H�C �X
FBG\
FBD(؝�?�SE�A�G h
DAA(�@�mA�A�G ~
DAA(0�T@�E�G b
AA|
ACH\��@�F�B�E �A(�D0�F@THIPR0A(A BBBA@T��,B�F�E�E �D(�K0�`
(A BBBJS8H@R8A0A(A BBB�dB�<�`B�F�M�D �F0P
 AABG@ AABT��B�$h��B�oE�G k
AHmA0��$C�nE�G�D r
DAIXDA(ğ`C�F�T�A ��HB�TI�{Hn��J� ��J�H4��J�B�E�E �E(�I0�F8�D@S
8D0A(B BBBD��K�:A�t<��8K�B�B�J �F(�A0�M
(A BBBG8ܠ�K�B�M�I �K(�G�{
(A ABBA(�<L�UH�D�A �lDSD�pL�RL�R
Jcd��L�DL�L
HU���L�DL�L
HU��M�DL�L
HUġ@M�DL�L
HU�pM�DL�L
HU��M�YL�c
Ad$��M�H@�<�XN�
LP�TN�iF�E�A �D(�D0|
(C ABBHD
(F ABBA��tO�PE�P vD$���O�BE�F�G jDA$��O�EE�F�G mDA0��O�F�A�D �F0a
 DABG D�PP�]L�\
HD
L`h��P��O�B�B �A(�D0�G@�
0C(A BBBE�
0F(A BBBJ`�����̣�Q�@�R��B�D�D �G0x
 AABC`
 AABD($��R�~A�D�G@~
AADP��R��0d��[�PE�D�F S
FAGXFA(���[�>F�A�D �oAB0Ĥ�[��B�A�A �G��
 AABA ���\�}L�o
EU
K8��\�F�A�A ��
ABDI
AEI X�,^�L�Z
J�
K0|�_�F�D�C �J�� AAB0���_�F�D�C �J�� AAB � `�E�J��A ��`�E�J��A,�Xa�9@��a��E�D�G�zRx����$�U� �� b��F�D�D �G�zRx�����$1U���b�hF�A�D ��c�AE�O�L ,�8d�E�D�G���T�`��d�3t��d���le�.���e�JtR(���e�]E�A�M X
LCF$��e�,E�G�G IGD(��e�mE�A�G0v
AAKL4�@f��B�B�A �D(�D0T
(A ABBIi
(A ABBA���f�K�����g�K����h�K��ب�h�WA�D�D ���h��E�M���i�E�M�80�4j�F�I�A �A(�D0{(F ABBl��o�E�M���p�E�M�(���p�E�D�G t
AAA8Щq�/F�I�A �A(�D`O
(D ABBC�s�	8 �s�K�A�G �U
CBCDFBD��� \�Xs��A�G �
AA��$t�l��0t�F�B�B �A(�A0�G��
0A(A BBBE�
0A(A BBBED
0F(A BBBG�pv�,E�b ��v�4��v�+E�@L��v�4F�E�H �A(�A0�GP�
0D(A BBBK���y�E�J���(z�E�D�J�̫�z�2EAD��z�EAG�8�p{�NE��
E
IO
AO
AO
AO
A@��|�)H `X��|�$E�Zt��|�=A�X
E���|�ZA�b
E��}�EADȬ}�EAD� }�EAD�$}�EAD�(}�E�F 8��}�(E�D�G X��}�+E�G�D x��}�+E�G�D ���}�-E�I�D ���}�-E�I�D @ح�}�*F�D�A �G�s
 AABG�
 AABIL��~�*F�E�D �A(�G�n
(A ABBE�
(A ABBFl���BE�G�D ����%EAK����EADĮ���/jخ�����������d pL �8���	H�	<����P�����d�`��3x������(��(��D��QHd
LI
G�����G��ܯ��E�L,����iB�A�A �G@Y AABH(�L��*B�B�B �B(�A0�A8�G��
8A0A(B BBBCt�0��MA�l
CH��d��KF�E�B �E(�A0�A8�GP�
8D0A(B BBBJHܰh��*F�E�B �B(�D0�D8�DP�
8D0A(B BBBFH(�L��*F�E�B �B(�D0�D8�DP�
8D0A(B BBBF4t�0��A�D�G z
NAKD
AAJ(�����LE�D�G j
DAAHرܒ�F�E�D �C(�D0l
(D ABBED(I ABB$$�@��]E�A�D MDA(L�x��LE�D�G j
DAAx����*HR
FI�����fpQ
OI�����,HS
EGز��WA�M
4�P��VM�A�A �S
ABK^AB4,�x��_A�D�D0�
AADq
AAELd����B�E�A �A(�F0\
(D ABBD�
(D ABBI����aHj
NLгT���B�B�B �B(�A0�A8�G��
8A0A(B BBBA  �ԝ�NB�D�A �F0HD���F�B�B �E(�D0�A8�DP�
8D0A(B BBBH(��T��F�B�B �D(�D0�$�����gF�B�H �D(�G0(���F�B�B �D(�D0�8�d��xF�J�D �A(�D0B
(A ABBGL����TE�Nh���H|����Z�B�B �B(�A0�A8�G��
8A0A(B BBBAȵ̤�jS Ti Y���&H ],�4��F�A�D ��
ABG0���qtY
CN
JP�d��?EAD l����?EAD �����'H��Ȧ���Ħ��E�G�D�$ж���iF�B�A �D(�F@��ܨ� ���)H]$���BE�d
A@�4��	T�0��)HM
AHp�D��F�B�B �B(�A0�A8�G��
8A0A(B BBBH�����L��F�B�B �B(�A0�A8�N��
8A0A(B BBBGL �d��mF�B�B �B(�A0�A8�G�
8A0A(B BBBAp���������H�����A�A�D \
MAHD
AABV
IJGDHHL���B�B�B �B(�A0�A8�G��
8A0A(B BBBH4� ��	H���%HM
ALd�0���B�E�A �A(�D0�
(C ABBID
(H ABBGH��и�qF�D�B �B(�A0�A8�G��
8A0A(B BBBDH���B�B�B �B(�A0�A8�N��
8A0A(B BBBAL�x��0HcHd����IF�B�B �B(�A0�A8�G��
8A0A(B BBBAL�����BF�B�B �B(�A0�A8�G�j
8A0A(B BBBG����EAD$����AE�G a
ABOAD����;dX���LF�B�E �J(�D0�A8�GP�
8G0A(B BBBH�
8A0A(B BBBA����� KT$ػ���=E�D�O ^AA(����E�D�G M
DAF(,�X��E�D�G O
DADX����DL�L
HU4x���WF�E�D �D(�D0u(A ABB��4��E�L̼8��E�R�<����H��TE�[
H����(,,����E�O�K �AA\�8��p�4��L��@��B�B�B �B(�A0�A8�D�=
8A0A(B BBBK Խ���LE�G [
FCL�����B�A�A �LP�
 AABIK
 AABAZ AABHH�|��dB�B�E �B(�A0�A8�DP�
8A0A(B BBBA,�����B�H�A �`
ABZLľ0��MB�B�B �B(�A0�A8�G�p
8A0A(B BBBE�0��,E�b 0�D��QN�]
E_A�4T����]F�A�A �Y
CBJiAB�����6E�G hA�����'E�U
FF$̿���^E�A�J@FFAH����B�H�B �E(�D0�D8�L`Y
8D0A(B BBBE4@����WF�A�D �~
ABDACBx����WA�M
(����\A�F�D y
AAJ ��4��E�M0~
FJ(����OE�D�G W
JAE����@D0j
A,���p@�$��F�A�A �D0C
 AABEO
 AABE~
 AABFo
 AABEm
 AABGL�����B�B�E �B(�A0�A8�G��
8C0A(B BBBA0����bF�I�A �G0N
 ADBD8�,��L�(��HId�0��E�JH��4��.F�B�B �B(�A0�A8�G��
8A0A(B BBBAL�����F�B�B �B(�A0�A8�G��
8A0A(B BBBI ����gE�L@M
CA@����OE�U
J\�(��E�L(x�,��OF�A�A �l
CEE��P��ZE�
LH�����}F�E�A �A(�G0d
(J HBBJD
(A ABBF,�����E�M�D �DA<�x��
P�t��d����x�������������� �����E�Y
BA��,����8��4H�d��#B�J�E �J(�D0�D8�DP�
8D0A(B BBBDL�H��xE�D0mA8l����F�L�A �A(�D0�
(D ABBA��|��>Hj
F�����HS�����:E�g
LA�����VI q
FP���0���)H\H�,��!HT`�D��>A�D wA��d��X��p��MD�E�E �A(�A0�L@m
0D(A BBBDh
0D(A BBBE8��d��_F�I�D �A(�D0
(D ABBG(,����kF�A�A �_ABX����CE�xt��������8�����F�B�H �D(�D0�
(A ABBI(�����hB�G�D �a
ABG(� ��{E�G b
AADF0�t��E�G �A4P�����E�D�G@�
DAIR
DAI�����,�����KF�M�A �F@l AAB$�����qJ�j
DA
�Gp�8����cH�D�C �q
AHGACBJ���H0�D��B�B�B �E(�A0�A8�Dp�
8D0A(B BBBAD|�x��RB�E�E �D(�D0�J@LHHPW0A(A BBBT�����F�I�A �D(�D@THEPTHA@D
(A ABBHD(F ABBL���kF�A�D �D0o
 AABF}8H@R8A0D
 AABAl���WA�M
��L�����W�����������6D o�� ��HIL��(��B�E�A �D(�D@v
(D ABBA\
(K ABBL<����0P���F�D�C �D@]
 AABF��p��(��|��/F�F�F �YAB<�����F�I�B �A(�A0��
(A BBBKH�@��/F�B�B �B(�A0�A8�U@�
8D0A(B BBBEP�$�E�Tl�(�%HV��@�*E�]��T�?L�r(��x�kF�A�A �_AB��������	���$���K0Q
D@�D�[H0R$X���WE�G p
ACUA����HI(����E�D D
ABf
AI��@�/E�^��T�)E�^��h�%HV@���F�H�B �G(�C0�G@
0A(A BBBC0X�\�hE�C�D0c
DAL\FA$����*E�D�I IIA(�����E�G�G �
AAH��d��F�A�D �L�$�LB�B�D �A(�G@�
(A ABBEx
(A ABBBP�$	�d� 	� x�	�SE�G x
AA ��X	�PE�G u
AA,���	�E�C
P������
A8����F�E�D �A(�G@�
(A ABBJ(,�H
�:F�D�D �Y
ABFX�\
�#H Zp�t
�6H m���
� ��(�YHi
OF
JH��d�i�X����HK����etO�8�%HX$$�P�EE�G _
ADSA4L�x�F�H�D �q
ABJLAB����0E�S
HIH����`F�B�B �B(�A0�A8�DP�
8D0A(B BBBF���&� �2HW
II$�@�8���,L���fB�D�D �D@S AAB8|��F�E�D �D(�D@Z
(A ABBI$����*E�D�I IIAL����+F�B�B �D(�A0�~
(G BBBFB
(J BBBN,0���F�O�A �G
AXJ `����L�:
R��������
(����TA�D�D ^
DAA����,����zB�D�D �X
ABK(�(�TB�A�D �IABH�\�HM,`�d��A�C
I�����T
GL��$!�!F�I�E �A(�A0��
(D BBBBY(H EDB ��#�ZE�G�|
AA �@#�ZE�G�|
AA (�|#�ZE�G�|
AAL��#�7E�a
JF4l��#�E�D�G�G
FAB\
AAA��0$�HN8��8$�F�J�D �D(�I0U
(F ABBA���$�B�D�D ��,%�"E�M
A4�@%�*E�U
AP�T%�*E�U
Al�h%�$E�O
A0��|%��F�D�A �G@�
 AABF(��(&�@I�F�J �\AB(��<&��A�D�G i
DAF��&�w(�\'�AAKD�`'�1HX
L`��'�1HX
L|��'�1HX
L���'�>Hp
A���'�>Hp
A��(�>Hp
A��8(�>Hp
A�\(�>Hp
A$��(�.H]
D@��(�>Hp
A\��(�>Hp
Ax��(�*HX
E���(�+HX
F��)�+HX
F��)�;Hc
K��<)�+HX
F�P)�7Hc
G �t)�5E�f
E4<��)�E�K�D `
FAEY
AAE4t��)�E�H�G m
FAHY
AAE4��8*�E�H�G m
FAHY
AAE$���*�^Hr
FI
GD
E��*�NHm
KD
E,��*�1A�f
E4H�+�E�K�D `
FAEY
AAE4��t+�E�H�G m
FAHl
AAB4���+�E�H�G m
FAHl
AAB��$,�/H]
E�8,�/H]
E(�L,�/H]
ED�`,�NHm
KD
Ed��,�NHm
KD
E���,�NHm
KD
E���,�NHm
KD
E�� -�FHl
DD
E��P-�.DX
M �d-�4E�^
EF
A $��-�<E�^
MF
A4H��-�F�A�D �^
DBAz
AEP$��.�E�A�G �DA,���.�F�I�A �D
FBD���.�
���.�
��.�
(��.�yE�I�G {
FAI4@�D/�E�D�K h
FAMg
FAALx��/�"F�B�I �A(�G@y
(C ABBF[
(F ABBJ ��|0��E�D W
AG@��H1�F�B�B �D(�C0�G@�
0A(A BBBE$0�2�#A�C�G IIAX�2�Ll�2��B�B�B �B(�D0�A8�D�Q
8D0A(B BBBA���6����6�5]���6�E�L0��6�B�D�H �J0V
 AABA4�7�H�7�4\�7�A�A�G@Z
AAKBAA���7�>K�r���7�fK�r
A��8�cK�o
A��`8�`K�l
A ��8�cE�M�OA$��8�>K�r<�9�>K�rT�@9�>K�rl�h9�>K�r���9�EK�e
HL ���9�?E�J�b
AF ���9�}K�v
GL
A ��8:�eK�y
DL
DL��:�3K�g(��:�>K�r @��:�UK�d
AK
ML d�;�UK�d
AK
ML��L;�*K�R ��d;�E�Q�^
CQ8���;�B�B�A �A(�DP�
(D ABBA��<�(��<�E�A�O��
FAA(@��=�E�F�G@S
FAD l�>�E�I0�
FA<���>�B�F�E �D(�D0�F@�0A(A BBB��?�*E�_$��?�E�D�K@pFA$��?�E�D�K@pFA(<��?�wE�D�K@P
FAE,h�<@�F�D�H �Dp� AFB(���@�E�F�D@~
FAA(��@A�E�F�D@~
FAA ���A�E�L�_
AA(�0B�}A�A�I�lDA@��B�T��B�h��B� |��B�E�L�nD��C�eE�I0IC��dC�eE�I0IC���C�eE�I0IC�D�eE�I0IC �TD�eE�I0IC@��D�eE�I0IC<`��D�oF�B�A �A(�G�8
(A ABBA$��$K�E�A�G uGH(���K�E�A�O�\
AAE(��L�XE�A�G�x
AAA  �4L�E�L�a
AA D��L�^E�J�|
AA(h��L�EF�A�A �yAB��M�8���L�F�B�A �A(�D0d
(D ABBEL��`M��B�E�E �B(�A0�A8�G�P
8A0A(B BBBG4�R�(H�R�nE�D�G l
DAGt�PR�=E�[
EL��tR��F�B�B �B(�A0�A8�D��
8A0A(B BBBI��$V�3H j��LV�6H mH�tV�xF�B�E �B(�D0�D8�D`f
8D0A(B BBBBH\��W�F�K�B �B(�A0�A8�D�u
8A0A(B BBBF<��[�PF�A�A �D0�
 DABBU GAB��,\���(\�HE�G zAH�X\�F�B�E �B(�D0�A8�G@�
8D0A(B BBBA(h�,]��E�G0�
AA]
AB���]����]�
L���]� 	F�E�E �B(�A0�A8�G��
8D0A(B BBBJ(��f�vE�A�G [
DAC8�g�RH p
HQ(X�\g�^E�I�I x
DAD(���g�~E�A�G ^
DAH���g�RH p
HQ��$h�%A�_L��8h�KB�B�B �B(�A0�A8�G��
8D0A(B BBBF8<�8j�~K�A�D �P
ABEAFBG���(x�|j�vE�M�P�u
CAEH���j��F�E�B �E(�A0�D8�D��
8C0A(B BBBF$��tn�(E�D�G IIAl�|n�F�B�B �A(�A0�F`c
0D(A BBBHy
0D(A BBBD�
0G(A BBBC���p�E�L,���p�iF�H�A �DHIL���F�E�A �C(�F0�
(F ABBDl
(F ABBA$���8���UL����`�Ԁ�t�Ѐ���܀�0�������������&��,��0��H��0�d��FA�X
Ge ����4����A�
H(T���A�G�b
AEdA�����+E�a�����!HX�����#TN��ȃ�%EAK��܃�2Hi���HV0���`A�G�D c
DADeAA8L�8��dB�E�D �C(�DP[
(C ABBK��l��AHh
HD�����UE�K CA��܅�UE�K CA$����GE�H�G mDA$�D��GE�H�G mDA$8�l��GE�H�G mDA,`����?F�A�A ��
ABF,������F�H�D ��
CBDL��D��F�I�B �B(�A0�A8�G��
8A0A(B BBBA0����K�E�G �P0P CABC���D���\X�����B�B�B �B(�A0�A8�D@l
8A0A(B BBBD�8A0A(B BBB��<��RH h
H�����#E�]$�����TE�F�G AA�̒�Y,���TH@�d��ZB�B�B �B(�A0�A8�Gp
8A0A(B BBBBL��x���K�B�B �B(�A0�D8�G`�8A0A(B BBBJ������(����0B�D�C �cAB$���=E�A�I kAA0�4��r`NH����ODe
Ad���hH�Z
F��4��nTI �����[J�G AAE�d��Ȗ�B�B�B �E(�D0�A8�J@�
8A0A(B BBBH�
8F0A(B BBBB $���E�K L
AC4H����`F�I�C �^
FBHG
ABE��Ԝ�kA�`
E��(��0AAUp��<���B�B�E �E(�A0�A8�D`Z
8A0A(B BBBH�
8A0A(B BBBFthRpWhC`H,����
F�B�B �B(�A0�A8�DP�8A0A(B BBBhx�|��B�B�B �D(�A0�GP�
0A(A EBBA_
0D(A BBBFp0D(A BBB(����yF�A�K �_AF$���lE�O w
ADZA8�L��.N$T�`��!B�MA�H��$|�h��1B�MA�H��$�����(E�JA�H��<����MI�A�D RCAD��H ���CA(����sE�K�D0�
DAB8���$H[8P���DM�A�A �
DBIe
ABE����&H]��0����<��#�X�� �d�����X
AD�8�0���P�A�A �l
ABG�
ABB4@���8c�A�A �=ABK���H ���Lx���(F�F�B �B(�A0�A8�D��
8F0A(B BBBI�̷�E�U�з�H U��ط�	 �Է�xE�G _
DA4�0��$H�,��.E�D�G QGA(p�4��i�A�G0J
AAC�����������0��s4����aE�D�D �
AAFD
CAH�Ի�3$���8����AM kP�4��AM kh�l��H\ k�����C����M�����8����F�E�D �A(�J�{
(A ABBE��\��w���J ���+,4� ��5N�D�D �F
ABA(d�0��O�D�J �
AAK4�����M�F�C �o
ABHiAB���	��� ���� ��<H]
KG$�@��*<8�\��+M�B�J �A(�A0�<
(A BBBBx�L���H z
F����=gK��8��F�H�H �,����A�G o
AHf
AI������<�T���A�A�G w
DAKT
AAJKDA8P����B�B�D �D(�G@�
(A ABBB(�����aT�G�D0~AAA��H������F�B�B �B(�A0�A8�DP>
8C0A(B BBBD4����A�D�G I
AAIo
DAL<���"KVT�0��"h�L��3WN$��t��PE�A�G ~CA$�����ME�D�G xCA(����PM�A�A �}AB�����3WQ���1(�<��
<�8���(P���?B�A�A �wAB|���)��4��1H��`���B�B�B �B(�A0�A8�G��
8A0A(B BBBE����@���B�A�D �G0C
 AABK� AAB$H���aE�A�DPTAALp����F�B�A �A(�D@]
(A ABBG.
(F ABBG����(�0��}A�A�D J
AAF@���B�B�B �D(�D0�D@�
0A(A BBBFHD��B�B�B �B(�A0�A8�GPm
8A0A(B BBBHH�D��L�B�A �A(�D0l
(A ABBJC(A ABB����T
V<���T�B�I �H(�A0�S
(A BBBA8l��2D_
ET���EADp���L�w
A����,����6F�A�A �
ABE$���<E�D�D eDAd����
B�B�B �B(�A0�A8�D��
8A0D(B BBBKd
8C0A(B BBBH0d���A�E�G p
AAA�AAH�,�&B�B�I �B(�A0�A8�G@H
8D0A(B BBBKx��F	h�B�B �B(�A0�A8�G�c
8A0A(B BBBD�8F0A(B BBBG������H�������(`��Q�A�G 
AAFH�x�F�E�D �A(�D@C
(A ABBC\(A ABB4����E�G0V
FHI
AFi
AF$T
�FE�A�D eJA8|
�<L�[T�
�YL�z
JDt�
�HNT��
�R�E�E �D(�C0�GP|
0A(A BBBB_
0A(A BBBA�0�RQ�\
�cA$p��q�@G�X�P�(,8�3B�A�G �TLDXL�lX�H�d��F�B�B �B(�K0�E8�Dp�
8A0A(B BBBG��#MN,� �B�D�A �G
ABG��((��3F�I�D �ZCB$T��DE�I�D oAA|��	���Ow,� �M�A�A ��
ABE`���B�B�E �A(�D0�T
(D BBBDR
(G BBBII
(A EBBE8��#L��#`��X@x�8��F�A�F �P
ABHX
ABEH�l�F�E�D �A(�D0~
(C ABBFk(F ABB8	��DF�B�B �A(�A0�n(A DBBLP	���F�I�A �A(�D`%
(F ABBKd
(F ABBAH�	d��B�E�E �E(�D0�D8�D��
8D0A(B BBBC�	��
�
�CE�} 0
4�ZE�J0I
IO T
p�VE�J M
IS(x
��E�N�D R
DAB�
�HN`�
�F�B�B �B(�A0�A8�DPq
8A0A(B BBBC�
8A0A(B BBBI ��g4 �	H�	4\�lF�H�A �
ABCDAB�P%�.OU�h%��d%��p%�
�l%�1��%��%�	$�%�&8�%�L�%�10`�%�]E�D�G l
CAHPCA�&��&�3�H&�
�D&�>�p&��|&�AAK
�&�"](
�&�<
�&�"](P
�&�@E�A�D l
CAA|
�&�Yq�g�
'�:QQNI�
,'�HK�
4'�HNl�
<'�5F�E�B �A(�A0�F@M
0A(A BBBFn
0A(A BBBJL
0A(A BBBAX(�+fl((�*A�P
GQ(�8(�YA�A�G ]
AAH�l(�-H_��(�-H_��(�4E�n0�(�\E�D�G Z
CABgCA(8�(�EE�A�D q
CAAd)�!HX4|()�UF�A�D �V
GBF[GB,�P)�wO�A�D �VABC���,��)�wO�A�D �VABC����)�/E�i0*�HSH*�E�V4d*�KF�G�G �S
CBDWAB�(*�HR4�0*�KF�G�D �S
CBGWAB�H*�+E�e$\*�4E�G�G \CA(0t*�lE�G�G0A
AAJ0\�*�\E�A�D x
FAGDFA(��*�sF�A�A �gAB�8+�:A�g
HI$�X+�aE�A�D QDA4�+�F�B�A �A(�D0�(D ABBH<,��F�E�A �A(�D0�
(D ABBEL(D DBBT��,�F�B�B �A(�A0�D@�
0D(A BBBFL0I(A BBB$�D-�/E�F�N IGAHL-��F�E�B �A(�A0��
(D EBBJI(F BBBT�-�<h�-�IF�G�B �A(�A0�"
(D BBBC�/�+H bP�$/�K�G�D �G@}
 AABBi
 FABFI AABK����/�(�/�4<�/�F�D�A �s
CBE�CBt 1� KT�(1�5�T1��`1�IHh
A4��1�I�A�G j
AACh��F ���1�`N@ �2�oA�D�G N
NAGq
AAE}
HAJ0d 4�JE�D�G0`
AAFOAA4�<4�]F�E�G �A(�G0y(D ABB�d4�i]��4�(A�[H�4�F�B�D �A(�D0[
(D ABBKD(D ABBXP$5�F�E�B �A(�C0�D@�
0D(A BBBI^
0D(A BBBGH��6�F�B�D �A(�D0[
(D ABBKD(D ABBL�,7�F�E�B �A(�A0�j
(D BBBEN(D IDGH�8�A\�8�(A�[x�8�0�x9�B�A�A �GPT
 DABJ<�T:��F�B�E �A(�D0�Q
(D BBBC4;�MF�I�G �V
CBGOCB48;�MF�I�G �V
CBGOCBp4;� KT�<;�KQ�D;�7Hn�l;�;Hr��;�7Hn ��;�E�D m
DF H<�E�D �
AA@0�<�WE�A�D0�
GAHW
DADQ
DAA(t>�IF�D�A �zAB�$>�	� >�	(�>�_E�D�D Z
DAD�P>�$E�^8d>�F�D�D �
ABHz
ABA$L(?�KE�D�G uDA8tP?�F�D�F �U
ABH^
ABA��?�H ~
J$�H@�AE�D�G0lCA�p@�(HX�@�
H y
G(|A�<xA�HH0g
AX�A�AO0op�A�FE�q
JA<�B�{E�A�G O
AABD
FAEDAA<�TB�|E�A�G J
AAGD
AAJDFA�B�FE�q
JA0�B�JE�w
DILP�B��f�H�D �GP� AABG���HP���O AABE�����C�.H e��C�>E�x0��C�E�D `
AFz
AE\C,D�-H d, DD�
F�A�D ��
ABF0P$E�yE�D�G B
DAISDA�pE�E�L$�tE�tE�k
HS
EX��E�9E�a
JD��E�9E�a
JDF�.H e$ $F�IE�F�N0mAAHLF�6I�]J�(dpF�E�A�D0E
FAJ0��F��M�I�D �DAH��X ��(��G�E�D�D V
DAH\�H�F�B�B �A(�D0�u
(A BBBE�
(A BBBFA(D BBB,P�H�F�A�A �w
ABA$�4I�CE�H�G iDA(�\I�YE�D�G �
DAK��J�.L�a4��J�VE�G {
AH�
RE`
AG0( �K�jE�G e
AFD
DH`A4\ L�F�B�A �A(�D0y(D ABB� pL�HI\� xL�F�B�B �B(�A0�A8�G@�
8D0A(B BBBGQ8F0H(D EBB$!M�1E�D�D ^DA$4!0M�6E�A�D fDA4\!HM�E�A�G U
DAIr
DAI4�!�M��E�A�G M
DAAM
DAF�!xN�2E�R
IQ�!�N�&Q�T"�N�"�N�<0"�N�5F�B�B �A(�D0�d
(D BBBC$p"�P�9E�G `
ACDD�"�P��"�P��"�P�$H [@�"�P�F�A�A �G0L
 AABAD
 FABC0#HQ�NE�D�G Z
AADTDA$P#dQ�E�G ~
AEvAx#�Q�HV<�#�Q�F�D�D �G@D
 DABHV DAB�#$R�"E�\�#8R�$4R�$@R�;Tf,$hR�[E�W
D(H$�R�A�A�D0�
DAD(t$�S��E�A�F0�
AAD(�$$T��E�D�G0�
DAJ0�$�T�E�A�D j
GALDFA@%4U�YF�A�A �G0�
 AABDY
 FHGJD%PW�.E�\
GA@d%`W�YF�A�A �G0�
 AABDY
 FHGJ�%|Y�.E�\
GA(�%�Y�CE�G�D R
DAI4�%�Y�E�A�D0�
DAJO
DAA(,&[�_E�D�G ]
CAG0X&<[�TE�J�L Y
CAHOCA�&h[�8�&d[�F�N�A �A(�D0v(O ABB�&�f��H��&�g�'�g�B'�g�0'�g�D'h�X'h�
l'h�0�'h�tE�A�G C
DAKNDA�'Ph�HU�'Xh��'dh�0�'ph�E�D@w
AGc
ADNA((�h�AE�G0nFH(,i�(\(8i�JB�D�A �l
ABJ,�(\i�!B�D�A �i
DEG �(\j�JA�Q�d
DA�(�j�8�(�j�"B�B�D �A(�G0�
(D ABBD,)�k�>A�|H)�k�1A�od)�k�E�P�)�k�<�)�k�~A�D�G g
DAHP
DAKTDA�) l�uA�f
ID@�)�l��A�D�D0g
AAFL
AAJJ
AAD8*m�&L*(m�&`*Dm�HIx*Lm�HK�*Tm�qA�k�*�m�6VI`�*�m�B�B�E �E(�D0�D8�D@P
8A0A(B BBBDc
8A0A(B BBBK(+|n�HV8@+�n��B�B�A �D(�D@F
(D ABBD$|+8o�DA�D V
DA_D`�+`o�:B�B�B �A(�A0�U
(A EBBIC
(A BBBF�
(A BBBE,<q�4,Hq��E�A�G0J
DAD^
DAET,r�(h,�q�+B�D�D �YAB�,r�!HX(�,r�NF�D�C �S
CBK�,<r�6A�t(�,`r�EE�C�G d
FAA -�r�S$4-�r�WE�N�D }AA\-s�,E�b8x-s�xF�E�D �A(�G0[
(A ABBA�-`s� HU�-hs�!HV�-�s�;D v�-�s�HL.�s�HL,.�s�@.�s�:E�U
FN`.�s�3E�m|.t�HK�.t�}L�N
F�.pt�EL�X
D(�.�t��E�D�G �
DAH�.Hu�
/Du�HN(/Lu�$H [0@/du�E�K�I�M�Q�A�P
AG|t/�u��F�B�E �B(�D0�A8�D�D�D�f�A�a
8F0A(B BBBI�
�Ll
8A0A(B BBBA�/0x�fZ0�x�J�Z$0�y�WHn
JV<D00z��R�B�B �A(�A0�w
(A BBBJ(�0�z�Cb�D�G IG�A�0�0�z�B�D�G �GPV
 AABA �00{�eA�f
IU
KH1|{�+B�B�E �E(�D0�D8�D��
8A0A(B BBBD@T1`}�B�E�E �A(�A0�GP�
0A(A BBBB�1,�&H](�1D� Q�D�G s
AAG(�18��F�A�D �xAB<2���=E�X�R�I�k�A�v
FHD
AC(H2���^B�D�D �V
ABE8t2Ё�B�F�A �D(�H0M
(D ABBEH�2$���B�B�B �B(�A0�A8�J�r
8C0A(B BBBF�2���AAK3���$A�^43���HH3���B�E�B �B(�D0�A8�G��
8D0A(B BBBGT�3��xB�B�B �B(�A0�A8�H��Q
D��W
8A0A(B BBBH�38��E�W4<��7E�d
G$4`��=E�]
FT8D4���F�A�A ��
IIMa
ABL�4��v}OLI �4T��sQ�P�@
AA0�4���B�D�C �G0^
 DABK(�4,��E�J�D b
AAI$5���E�J4@5���E�I�D f
CADm
CAAx5��6Hb
F4�50��B�A�A �G� I� �
 AABA(�5��F�D�A �p
ABB0�5l��E�A�G _
CAHGCA@,6Ȍ�L�F�C �_
ABIZ
ABCR
ABKp64���60��6HX
HK�6P��"EAK�6d��2m�6���#K�6���E�P
A47���rA�A�G V
AAGt
AAB$<7���GE�b
IF
JFLd7 ��.B�B�D �D(�GP�
(A ABBGL
(A ABBF0�7��E�A�G@p
AAALDA4�7l��PF�D�D �i
ABFLAB 8���$E�P<8���WE�j
I^\8ؐ�*E�d0x8��VF�M�A �DP�
 IABD0�8��5F�C�K �D`�
 CFBFL�8$��JF�G�A �A(�N@�
(F ABBDl
(A ABBF09$��&E�UL98��,E�Zh9L��E�Q�9P���9\���9h��AHZ
NI�9���AHZ
NI�9Ȕ�:Ĕ�%E�_:ؔ�3[@0:��ZF�D�B �A(�A0�Np+
0F(A BBBDt: ��GE�s
HF8�:P��"F�B�D �A(�G0_
(F ABBB4�:D��E�A�G c
FAIY
CAA0;̘�XE�D�D o
DAGJDA<;���.E�]LX;��F�F�B �B(�A0�A8�G�e
8D0A(B BBBE(�;|��UE�D�G n
AAH(�;���A�A�D A
AAG<$��@d [ <L��AE�V
ED
E <<x��E�J@�
FE`<d��t<p��$�<|��KE�_
DK
EM
AL�<���UB�B�A �A(�G`z
(D ABBHS
(D ABBAH=���}B�H�B �B(�A0�A8�Dp&
8D0A(B BBBAdL=��aB�B�B �B(�A0�D8�D`�
8A0A(B BBBD;
8A0A(B BBBA�=��'DZ
A\�=���B�B�A �A(�GP�
(A ABBD
(A ABBKE
(A ABBEL0>t��BB�B�B �B(�A0�D8�G�`
8A0A(B BBBAx�>t��=B�E�B �B(�A0�A8�Gpd
8A0A(B BBBF�
8H0A(B BBBCK
8A0A(B BBBA�>8��#E�]$?L��KE�_
DK
EM
A0@?t��A�A�G P
CAC�FAt?��vE�_
D�?d��1E�S
A�?���	 �?���E�D0T
FE0�?��F�C�K �DPy
 AABK4@\���E�D�D I
DAEaGH P@��mE�v
ED
Lt@P��SE�m
FZL�@���
B�B�E �B(�A0�D8�D�6
8D0A(B BBBI�@��/A�J bAA��E�T A��%E�Z
A$<A��EE�D�D pFA(dA@��tE�A�J0F
DAA�A���@�A���F�D�C �G0O
 DABFd
 GABA4�A��F�F�D �q
DBII
ABL0 Bt��/F�A�A �D0�
 FABA(TBp��jE�A�D m
GAI�B���HO
A0�B���RE�A�G m
DAALDA�B��)E�^H�B���IF�B�B �B(�A0�D8�DP�
8A0A(B BBBA 8C���mE�v
ED
L4\CH��F�D�A �b
ABHYAB �C���mE�v
ED
L�C���,A�c
A4�C��F�A�D �X
FBEqDB,D���F�A�D �k
FBB8<D���B�E�A �D(�D0M
(F ABBH xD\��NE�P d
AF0�D���E�A�D J
FAEdDA(�D���A�D�G�v
DAIP�DH��F�M�A �D0�
 AABBu
 AABG{
 AABAPE���dE���^E�A
A4�E���mE�A�D B
FAED
DAE`�E��EB�B�E �E(�D0�D8�G`_
8A0A(B BBBJ^
8H0A(B BBBAd F���B�B�B �B(�D0�D8�DPV
8D0A(B BBBI{
8N0A(B BBBN�FL���FH��H�FT��B�E�B �B(�A0�A8�G�	�
8A0A(B BBBGH�F���B�B�B �B(�D0�A8�GP�
8A0A(B BBBBHG��NQ�x�4dGP���F�A�A �X
FBHRAB8�G����F�D�A �@
FBEI
DBE\�G���	F�B�A �D(�D0F
(F ABBFZ
(D ABBEE
(F ABBA8H<�� E�Z(TH@��E�A�G m
FAG�H���(�H���>F�D�D �`GD�H���(H _�H���E�L�H���E�YLI���F�B�D �A(�D@b
(F ABBBL
(F ABBI`Id��!HXHxI|��F�B�B �E(�A0�A8�D`6
8F0A(B BBBFH�I����F�B�A �D(�D@p
(A ABBIl(F ABB@JT��~F�H�A �`
ABN^
AIHFABTJ���E�L(pJ���E�D�G0G
DAD$�J���~E�D v
AHtAL�JP��JF�E�B �B(�A0�A8�D��
8F0A(B BBBIHKP��F�B�B �B(�A0�A8�L@$
8F0A(B BBBC `K���RE�G _
FG�K��VI�e
B`�(�K@��q�A�D k
DAJ�K���4�K����F�A�A �`
AFIYFBLLX���B�B�A �D(�D0�
(A ABBJY
(G FEBKlL���HO
A(�L���9F�D�D �`DB�L���QE�]
F�L4�� �L@��J�_
GP�$M���YE�D�D FDA$0M���`E�D�D MDAXM�� E�V$tM ��0E�A�G ]DA�M(��'E�a �M<���E�r
IA
G�M��B�MD��HI0NL��F�J�A �D@r
 CAGFx<N��R�B�B �E(�I0�D8�GP�
8A0A(B BBBE�
8F0A(B BBBKD
8C0A(B BBBHL�N\��F�B�E �H(�A0�D8�G��
8A0A(B BBBHLO���F�D�B �B(�A0�K8�D�C
8D0A(B BBBB(XO���VE�D�F N
AAA�O ��E�M�O$��	(�O ��`E�D�D d
CAK<�OT��F�D�A �A(�Q�Z
(D ABBH4 P$��F�E�D �A(�F0�(A ABB4XP���E�A�D L
AAHCAA8�P��F�B�A �A(�D0y
(D ABBH�P���QE�i
RI�P��E�L(Q��E�D0j
ADYA4Q@��3Q�aPQd��!E�HlQx��B�E�E �E(�D0�D8�DPt
8D0A(B BBBB8�Q���B�E�G �A(�G`\
(A ABBH$�Qp��ZE�D�D@JAA$R���EE�D�D nDAHDR��B�B�A �A(�N�S�O�M�A�f(D ABB8�RD��yB�J�E �G(�A0�U(D BBB(�R���`M�G�A �~DDH�R���B�B�B �B(�A0�A8�J�s
8A0A(B BBBGHDS��B�B�D �C(�G0�
(A ABBET(F ABB�S4�E�T�S8�Ai�W,�Sl�}F�D�F �Q
ABA�S��NE�y
JAT��0E�j4T�E�MPT�E�MlT�E�P�T�ZE�A
JI$�TL�wE�U
FM
CF(�T��E�G I
AJV
AA �T�nE�A
JA
E4 UT�F�D�F �}
CBNA
IBE XU��nE�A
JA
E(|U���E�H�G �
AAJ(�U���E�H�G �
AAE$�U@�lE�{
HO
IF
A0�U���E�H�G �
AAJlFA80VD�F�D�F �Y
ABDG
CBE<lV��E�A�F _
FANh
DAKDFAH�V��6F�B�E �E(�A0�A8�G@
8D0A(B BBB<�V��E�A�F _
FANh
DAKDFA@8W,�F�D�E �D(�C0�N@
0A(A BBBB0|Wx	�~E�H�G P
DAGDDA �W�	�mE�v
ED
L0�W
�~E�H�G P
DAGDDA X\
�mE�v
ED
L0,X�
�~E�H�G P
DAGDDA `X�
�mE�v
ED
LH�X@�F�I�D �C(�G0W
(D ABBCQ(L DBB4�X��F�F�D �q
DBII
ABLY��GE�]
FZ (Y,�E�~
MQ
F4LY��XB�E�D �D(�F0y(D ABBH�Y���F�B�B �H(�A0�A8�D@
8D0A(B BBBEL�Y4�"F�D�K �A(�D�
(D ABBD[
(D ABBD4 Z�F�A�A �h
ABEm
CBE(XZl�-F�D�F �YABL�Zp�8B�B�B �B(�D0�D8�I��
8A0A(B BBBC(�Z`�mA�D�F0M
AAFT[���B�B�E �A(�F0�Dpk
0A(A BBBIA0A(A BBBlX[,�B�B�E �D(�D0�G@
0A(A BBBEv
0A(A BBBJ_
0A(A BBBA<�[l�rB�M�D �F�F�W�A��
 AABG\��\��80\���E�M�G�F�D�K�A��
AAA0l\H�oE�I�NPFXD`FXAPAAT�\��F�J�K �C(�G`FhDpIhA`I
(A ABBHd(A ABB(�\��E�M�KP�
AAG<$]��F�A�A �D0�
 DABJM DAELd]�F�B�E �E(�G0�F8�F�
8D0A(B BBBCL�]��HF�A�D �F0O
 DABI�
 GABF] GAB ^���e `[ q
GX(^��bE�I RAH^��$\^ �QE�D�D AAA�^@ � �^L �F�D�A �F0|�^(!�B�G�B �E(�A0�K8�D�p
8F0A(B BBBAV
8A0A(B BBBHW
8A0A(B BBBG@<_h#�iB�G�B �D(�D0�N`
0A(A BBBE�_�$��_�$��_�$�"HT
A@�_�$�F�I�M �F0}
 AABEg
 AABA@`�$�}F�F�K �D0�
 AABJL
 AABHLL`8&��F�I�B �B(�A0�A8�D@�
8A0A(B BBBG�`�=��`�=��`�=�AAK�`�=�AAK�`�=�E�Wa�=�2E�_
LA08a�=��B�D�D �G0�
 DABG8la�>�vB�B�D �D(�D0T
(D ABBC4�a�>�EF�G�G �N
CBIOCB �a?�A�G T
ACb�?�qA�o b@�E�L0<b@�bA�D�D m
AAHVFApbD@�:E�g
LA�bd@�BA�I vA�b�@�!AAK �b�@�LA�D W
ACH�b�@�aB�B�B �B(�A0�A8�D`�
8D0A(B BBBD<c�C�<aPc$D�!dc@D�<A�_
AT�cdD�B�B�B �D(�D0�G@i
0G(A BBBDA
0D(A BBBD�c�D�YA�W�cE�E�L8dE�zB�B�A �A(�DP�
(A ABBB@LdHF�B�D�A �D0h
 AABID
 FABC4�d�F�wE�D�G _
CAEV
CAF(�d�F�B�D�E �|
ABA,�d`G�B�A�A �D
ABEH$e�G�B�F�B �B(�A0�A8�G�e
8A0A(B BBBD,pedJ�7A�G H
AGp
DDH�etL�2B�B�B �B(�A0�D8�D@d
8D0A(B BBBF �ehM�EA�G c
AA,f�M��B�D�D ��
ABF8@f4O�?B�E�D �D(�G@�
(A ABBFL|f8P�"B�B�B �B(�A0�A8�G��
8A0A(B BBBKD�f^�H�B�D �D(�G0q(D� A�E�B�R0����`gp^�B�B�B �B(�D0�A8�Gp}
8A0A(B BBBE�
8A0A(B BBBE$xg�_�4A�G�N QDD8�g�_�B�B�A �D(�G@^
(A ABBDzRx�@����$��
0ht`�B�D�D �D0�
 AABF4DhPa�MB�D�H �k
ABLAAB8|hha�_F�K�A �A(�F`�
(D ABBE$�h�c�4E�D�G _CAH�h�c�F�B�D �D(�G0l
(C ABBEj
(C ABBFL,id�=B�B�A �D(�D@a
(G ABBF�
(D ABBIL|i�d�IB�B�B �B(�D0�D8�G��
8D0A(B BBBE�i�w�H�i�w��B�B�D �A(�G0B
(D ABBEb(D ABB4,jxx�E�C�J i
DAHl
FAEDdj�x�B�H�E �E(�A0�A8�D@~8A0A(B BBB0�jHy�|F�J�A �D@
 DABFH�j�{�F�E�E �E(�D0�A8�D@}
8G0A(B BBBE,k|�E��Hk�}�+H b`k�}�!H X@|k�}��B�D�A �G0�
 AABCN
 AABF4�kd�E�O0]
AFI
EJM
AB(�k��J }
ID
LI
WN($lЀ�J }
ID
LI
WN$Pl����J }
IH
PD
L(xl���J }
ID
LI
WN$�lp���J }
IH
PD
L$�lH���J }
IH
PD
L$�l ���J }
IH
PD
L$m����J }
IH
PD
L$DmІ��J }
IH
PD
L(lm���J }
ID
LI
WN$�m����J }
IH
PD
L$�md���J }
IH
PD
L$�m<��(J �
CI
WD
LLnD��F�D�C �J0�
 AABEL
 AABHH EAF$`n��(J �
ES
EG
A$�n��1J �
EQ
OD
L4�n4��!E�I0�
DIH
HPI
GHP�n,��F�D�H �G0�
 AABGI
 EAFKD
 AABH$<ox��OJ �
HH
HX
I$do����J0
AH
Pm
K0�oH��wJ �
PN
JI
GR
NN
AP�o���?F�D�A �G0�
 AABBR
 AABJ�
 EAFEPp���OF�D�A �G0
 AABDR
 AABJ�
 EAFE hp|��jJ0y
M�
R`�pș�)F�D�H �G0�
 AABGB
 AABBD
 AABH�
 EAFD�p���q���q���,q���@qě�TqЛ�hqܛ�|q���q��/E�4�q��za�A�J e
G�A�GDI�H�`�qP���B�B�B �B(�A0�D8�G`�
8A0A(B BBBA�
8A0A(B BBBA(Hr�?�JF�K�H �mABtr�?�N�r�?�W4�rH@�bE�A�G E
AADW
AAG�r�A�
�r|A��rxA�
stA�$spA�8s|A�LsxA�
`stA�ts�A��s�A��s�A�!�s�A��s�A�5Hl�s�A�5Hl�sB�tB�`A�A�G (t\B�EAD@Dt`B�sB�D�D �F0m
 AABGj
 CABH�t�C�JH0A�t�C�*EAD�t�C�-�tD�5�t0D�-\�tLD�E�F�A �A(�M0�
(D ABBE�
(G ABBOR(D ABBXu�E�]L�i
K(tu0F�E�D�G y
LHK�u�F�?Da
KI�u�F�E�O�u�F�%E�Q�u�F�/ v�F�VE�h
CL
D0v$G�@Dv�G�F�D�A �D0u
 DABEe
 AABA@�v|H�F�D�A �D0u
 DABEe
 AABA�vHI�#HZ�v`I��vlI�\E�G�D w�I�`DW
E4w�I�_DQ
K4Pw4J�Y�F�D �PFBE���Q ���(�w�J��E�D c
AC{
FG(�w@K��E�D c
AC{
FG(�w�K��E�D c
AC{
FGx�L�Z x�M�z4x@N�z<Hx�N�A�D�D p
FAH`
GAHTDA�xO�kI�O�@�x`O��F�A�D �~
ABDW
ABFNKI�x�O�HE�R
Igy,P�y(P�0y$P�Dy P�
XyP�jlyxQ�k�y�Q�h�y0R��y�R�{�yS�J0p
F �y�S�A�L |
DC�y�S�z�T�HI(z�T�<z�U�HI4Tz�U�E�A�G �
DDE\
GAL�zXW�o�z�X�HI�z�X���z�Y�gL�z�Z�:F�B�B �B(�A0�A8�D�s
8A0A(B BBBA00{�^�	B�A�A �DP%
 AABA$d{�`�E�~
ET
Lx�{�a��B�B�B �B(�D0�C8�G@u
8D0A(B BBBH�
8L0F(D BBBI�8D0A(B BBBL|�c�F�L�B �I(�A0�^
(D BBBJ�
(L GDBIX|\g�"EAK(t|pg�:A�H�G@�
AAJ�|�h��(�|�h�zF�I�D �s
DDJ(�|Pi�0F�A�D �WDE}Ti�]$$}�i�E�z
Q`
H\L}j�EE�L rA$l}Hj�dE�I c
DK\D�}�j���O�0�}$k�cF�F�D �G0|
 AABA�}`k�tH W
AL~�k�iB�G�D �N(�D`�
(C ABBB	
(C ABBGP~�m�m d~@n�HM
KI
WD �~�n�HM
KI
WD�~o��~�o�<�~@p��E�G0~
AE�
AFk
ADI
ER4�q�1E�D�GP�
AAF�
AAK$L�s�H0�
DT
Do
At`u�|D��v�O�D �
AEZF�h �DA�S �g
G�Eh�$x�1O�D�G0h
G�A�F�AAE��`0��DA�A�J0�����X0��LG�A�@<��y�hE�D�GP{
AAC�
AADZ
AADh��$|�E�D�D0T
AAEG
AAO�
AAOr
IALl
DDL�
GAEp�H~�F�A�D �G0�
 GDIOF
 GABH_
 AABED
 AABHb
 EAFB$`�Ԁ�D0g
E�
Go
I(��l��ME�D�G P
GAH�����4ȁ���H s
E`
H
IW
IP
P4���H W
Is
Eh
HW
IP
P48�L��H s
E`
H
IW
IP
P�p�����F�D�D �J0J
 AABJ�
 GABJ�
 FABH�
 AABEy
 JFDEb
 DABEr
 GABLH���E�D m
FLf
AAW
AHR
FHP
EKP�4��H Vh�<��@H r��d��6@������|�D�D �G@����C@���X
 FABAX؃��F�B�B �D(�C0�GP
0D(A BBBA�
0A(A BBBA�4�p��F�B�B �B(�A0�A8�DP�
8D0A(B BBBA^
8A0A(B BBBH\
8A0A(B BBBJL
8A0A(B BBBJ�
8K0F(G BBBL�p��.�����3����TH@�
A((����lE�Z
IM
KV
JCT�@��h�<��:EAY ��`��uE�G L
AG�����"HQ
AąЛ�7HX
HD���E�A�G@d
AAE,
AAJy
DAB$(�\��*E�D�I IIA@P�d��E�F�J0Y
CAF|
GAL�
FAH$���TJ s
Ci
G_@����E�F�J0Y
CAF|
GAL�
FAH$�t��TJ s
Ci
G_h(����E�C�G0�
IAEG
AAGw
AAGy
AAED
LAOL
CAPH����a�D�G C
CAEZG�A�V ��c
FAF(�����d q
K[U S
MoH�H��a�D�G A
FADZG�A�V ��c
CAI(X�����d q
K[U S
Mo0�����}E�G H
DHw
GBUG�����+E�D ]D0؈��K�I�J DDAI��H ���h��:EAY(����#HR
AD����7HY
G`�ĩ�*E�D ]C0��ԩ�K�I�J DCAJ��H ����0��PT]
DЉd���H@~
J����H@�
A8�ܭ��F�E�A �D(�D0z
(D ABBID����H �
C`�����H`�
F0|�X��uE�L R
ADq
AFSA�����	Ċ���@E�G rA8����_F�N�A �A(�D0�
(A ABBJ ���U4�0��]L�x��`����t���������
�����
�����ċ���؋���
������������
(����<����
P����>Mch����AMV
EI����/Hc����!E�[����/HcԌ ��JHX
PT�P�����(��0 �4��dE�K�O _
DAEVDAT�p��E�Lp�t��	��p����|������������
ԍ���4����E�D�D0i
DAE[
GAA( ����E�D�D0�
AAAL�x��>H W
A]l����4�����E�D�D0f
FAF^
AAA4�����E�D�D0i
DAE[
GAA(�d���E�D�G j
DAA���	0���D���6X�,��E�Ut�0��7��\��:�����Hp�����jkV_IЏ��s����Go���������]X(���E�UD� ��JE�|
A`�T��E�Ud|�X���F�E�B �B(�A0�A8�Dp�
8A0A(B BBBG�
8F0A(B BBBI����3E�T
GK���3E�T
GKL$� ���B�E�A �A(�G0D
(A ABBFP
(A ABBE<t����J�E�M �D(�G0G(F ABBG����<�����J�E�M �D(�G0J(F ABBD����<�@��J�E�M �D(�G0G(F ABBG����$4����EE�N�G eDA$\����EE�N�G eDA$�����AE�K�J WJA(����b�M�D �KFBؒl���x������Y~ S����E�L(4����mE�A�G ^
DAH0`���aF�A�A �D0d
 DABIH��P��+F�E�B �B(�A0�A8�Dp�
8D0A(B BBBA<�4��oE�D�D �[CBC���P ���p���  �d��E�{
Hq
GD�P��(X�\��?E�D�G �
AAC ��p���E�`
Kd
L��<��(��H��pE�A�G R
DAD(����E�A�G H
DAF����-Ha,���+@�$��,T����2F�A�D ��
ABG$�����8E�G�D eAAH�����ZB�J�B �I(�D0�D8�GPf
8A0A(B BBBJ,�����LB�E�D �D(�D0T8G@8(���B�A�A �W
ABBD
AEA<d�P��A�G �
IIk
ADo
AH^
KO�����M g\ ^
J8Ė@���F�A�D �F
ABDA
ABD4�����A�A�G 
AAFD
GAE(8�l��E�J�F k
DAK8d����_F�A�A ��
ABBI
AEI$����^E�D�D KDAȗL��Xܗ���%EAK,������F�A�A �Y
ABD,(�L��%F�A�G ��
ABE(X�L��zE�A�G G
DAA(�����-F�D�F �YAB�����	���HE�P
Kp����T�E�I �G(�J0F
(A ABBA`����x0����X����@0����P����P0�����T� ��Y�E�F �G(�J0j
(A ABBKx����x0����P����p0����P����P0����P����P0����ؙ\��^E�X������������L0����4F�B�B �B(�A0�A8�G�k
8A0A(B BBBF(�����E�C
D��H�
F,�����THW
Ao
I~
JP
Lܚ(���$��e�b�_� ����to�b
�OFJ�04� ��yH R
Fx
H^
Bx
HH
Ah�l��4E�O
DR����� �����WE�G O
AD�����$ԛ���K�O
Fm�K���(��H�$��F�B�B �B(�A0�A8�D@�
8J0A(B BBBE0\�h�aA�D�G m
GAODGAL����B�E�B �B(�A0�A8�G�n
8A0A(B BBBD�T�YA�m
BhP���B�B�B �B(�A0�A8�G� I� J
8A0A(B BBBBLT����!F�B�B �B(�A0�A8�D�A
8A0A(B BBBC$��p&�/E�F�N IGA̝x&�4E�f��&��L�D(�VF�B�B �E(�A0�A8�G�(
8A0A(B BBBAP�T@�]HTl��@�}��A�~F�nD���hA�V���A�vĞ B�C0؞\B�na�A�D [
FAHYCA(��B�A�A�G p
DAJ,8�C�\�]
Gj
FW
IfJ�(h��C�gW�A�D nDAQ����0D�@c�\ ��TD�lA�f
I^
B4ԟ�D�AB�E�A �F(�I0W(F DEB8��D�yB�E�D �A(�G0X
(D ABBD@H��D�JB�B�B �A(�G0�GP�
0A(A BBBD0��F�1E�D�G M
AAADGA��F�C4ԠPF�B�B�D �A(�D0�(A ABB$��F�DA�I�D pDA,4��F�B�D�I �Q
IBE(d�pG�^F�D�A �HDB(���G�gA�A�G f
AAGP���G�LB�D�D �G0t
 AABGL
 AABHI
 AABK0��H�oA�D�G \
CADxEA8D� I��B�B�D �D(�F0z
(D ABBK(���I�\E�A�C �x
ABD(��J�DA�G�K I
IAJ$آ,J�GA�D�J uAAH�TJ��K�D�D �R
ABH
ABG@���H ���LL�L�XB�E�D �A(�D0�
(A ABBEe
(A ABBE4��N��A�G �
ACP
AGo
DE4ԣ�N�B�G�I �A(�N0V(F ABB,�8O�A�M
F���J���
A0<��Q�XA�L�G `
AAJSCApp��Q�hB�E�D �H(�G0
(G DBBHm
(D DBBG}
(D ABBJS
(D ABBD8��R�HB�E�A �D(�G0

(A ABBAL ��S�$B�B�E �D(�D0��
(A BBBAg
(A BBBA,p��T�B�A�D �
ABA\��DU�F�B�B �B(�A0�A8�D@t
8A0A(B BBBHT8F0A(B BBB��U�qE�g(�V�VB�D�G �h
RBG4H�<V�B�E�D �K(�DP�(A ABB���V����V�J���V�aK�k
J\(Ȧ<W�XQ�M�K cF�A��pW�8�|W�B�E�E �D(�D0��(D BBB0D�X�A�G�G b
DAJwDAx��X�Z���T�
���X�H(��Y�A�D�G C
AAG�dY�t��Y�IH�Z�B�E�D �D(�G0T
(A ABBH\(C ABB$T�`Z�SA�D�J AAA0|��Z�YA�D�J q
FAIDCA���Z�K�LI��̨8[��B�E�B �E(�A0�H8�G��
8C0A(B BBBFX
8F0A(B BBBIZ
8F0A(B BBBGL
8F0A(B BBBAHd��]�8B�B�B �B(�A0�A8�D@�
8D0A(B BBBH8��t^�B�B�D �A(�G0f
(D ABBA8��^�F�D�D �D
ABKs
ABJ8(�l_��F�B�D �A(�G0g
(D ABBDd�`�8A�^
A4��4`�A�A�G u
DAEN
DAE(���`�wA�A�G l
CAGH��a��A�D�L j
CAAe
CAGD
HAADDA,0�db�jB�D�D �u
ABF4`��c�oB�A�D �f
ABHsAB���c�6Dh
D$��d�LA�A�G @AA8ܫ(d�rB�B�B �D(�I0�W(A BBB�ld�A�TH4�pd�B�E�B �J(�A0�A8�GpO
8A0A(B BBBK\���g�K�B�B �E(�A0�A8�D@�8A0A(B BBBF������A@������(�4h�A�A�G �
AAA4��h�A�A�G w
AAND
AAJ(D�0i�ZB�A�D �v
ABH0p�di�GA�G�G `
AAODAAH���i�B�B�G �A(�D0n
(D ABBIa(D ABB��i�A�W
H$�dj�Dq
AR
H_
E(8�Lk�A�K�G `
AAKLd��m�yB�B�B �A(�D0��
(A BBBEy
(A BBBH���o��R�D�D �u
ABFM
CBFM
CBFM
CBFM
CBFM
CBFM
CBFp���H ���L8�\q�B�B�E �D(�A0�p
(A BBBKm
(D BBBIH���r�B�B�B �E(�A0�A8�I`W
8A0A(B BBBI,ԯ�t�B�D�A �\
ABJP��t��B�D�D �L
ABGA
ABLQ
ABDQ
ABDX��u�GA�i
FV$x��u�^A�F�G FDAP��v�B�D�D �A
ABB�
ABJ�
ABK�
ABK,��x�#B�A�A �~
ABK4$��y�A�~
AI
GO
AO
AO
AOP\�z�B�A�D �B
ABD{
ABBD
ABI_
ABFD��t}�xK�D�D �J
�G�B�J�ABA���C ��� ���~�A�c
DT
D(��A�C�G �
AAFPH����S�F�E �D(�D0��
(C BBBG�
(C BBBK8��X��B�B�D �A(�G@
(D ABBEHز,��B�E�B �B(�D0�C8�Dp�
8D0A(B BBBE4$����m	A�A�G@o
CAD�
CAE,\����*A�C
D��E�E�D�
EL�����B�E�E �B(�A0�A8�D��
8A0A(B BBBH,ܳ���=F�D�D �G0\ DAB$���4E�C�G0VIA,4� ��GF�G�D �D0a IAB4d�@��F�E�D �K(�DPn(A ABB$�����4E�C�G0VIAHĴ���F�E�E �A(�D0�|
(A BBBHb(A BBBL���F�B�B �A(�A0�
(A BBBF�(A BBBH`�t��F�B�B �B(�A0�D8�DP-
8D0A(B BBBA�����$�����E�D�F lDA�<��E�(�@��>F�D�G �bDB(0�T��AF�D�A �nAB,\�x��:F�D�D �G0\ AAB�����+HW�����$HW�����+HWԶ���8E�r(����YF�F�F �CAB4�(��pF�G�D �A(�I0N(A ABBHT�`��F�E�E �D(�H0�z
(A BBBCB(A BBB �����aE�q
JT
EL�;�F�E�B �B(�A0�A8�G��
8A0A(B BBBJ$zRx��������,�C�
@P�ĺ�NF�B�B �A(�A0��
(A BBBD��п���ܿ���ؿ�
иԿ�	�п�	��̿�
�ȿ�HR$�п�(Dc<���#DZ,T���YB�D�A ��
ABH ��0��|E�{
PC
O�����DTX
DSȹ���HI`����kB�B�B �B(�A0�A8�D�g
8A0A(B BBBA�
8A0A(B BBBD$D����;E�D�D0fFA`l����kB�B�B �B(�A0�A8�D�g
8A0A(B BBBA�
8A0A(B BBBD$��;E�D�D0fFA$����=A�D�D nDA �$��E��(<����E�D�D0`
CAAh���mE�G ]C��\��#HS��t��0H`
AL�����B�E�D �A(�GPa
(A ABBFn
(C ABBJ4�X��FB�E�D �D(�D0i(D ABBD�p��]EAD `����HIx����HI�����"IQ
A�����HIļ���HIܼ���.HY
F(�����:E�G
K�����
B,$���E�C
B�S�����
D0T����gF�G�A �D@I
 AABA��,��0H[
F��@��#HS��X��8нT��B�F�A �s
ABAG
DNG�(�� �$��.J�S�<�8�� P�4���Dw
Ek
ETt����5DX
A(����SE�D�D0w
FAA8��8��F�E�D �D(�D@Y
(F ABBA,�����LF�A�A �G0u DAB0(����^F�A�D �D0@
 DABA0\����kF�D�D �D0H
 FABA(����SE�D�D0w
FAA4��H��E�A�D z
DAGE
MAE����;E�i
F@����F�B�B �D(�A0�D@v
0D(A BBBDT�`��5DX
A(p����SE�D�D0w
FAA8�����F�E�D �D(�D@�
(F ABBA0�<��^F�A�D �D0@
 DABA(�h��\E�A�G0@
FAA08����F�D�D �D0i
 FABA(l����SE�D�D0w
FAA��,��;E�i
F@��P��F�B�B �D(�A0�D@v
0D(A BBBD8������F�D�A �F
ABDJ
MBE 4�P��/A�D w
AC<X�\���B�B�B �D(�D0�A
(D BBBG����H����B�I�B �B(�D0�C8�F`X
8C0A(B BBBAL��l��B�E�E �D(�C0�`
(A BBBFh
(A BBBAH�<��IA�k
Dd�p��#HS,|����GF�A�A �J0m DAB�����IA�k
D�����#HS,�����GF�A�A �J0m DAB(���eF�D�A �q
DBN<�X��n\P����{B�E�G �D(�G0�Z
(A EBBK�
(D EGIJD(A DBE�����
�����
�����
D������B�B�B �A(�A0�G��
0C(A BBBB@4�`���B�J�I ��
ABAF
AFSAABLx����B�E�D �D(�G0�
(G ABBHX
(G ABBL��<��Hp�
K�����?Hl
D����?He
K���EH\
LI<�H��GHr
F0X�|��lE�D�D k
CALXCA(�����iE�D�D o
DAO�����HE�h
K��0��^Hh
HX��p��QHx
H����IHt
D,����YH}
K(H�,��pE�I�G r
FAB$t�p��D �
Ft
DN
B,�����F�I�D �D
FBA,��8��F�F�D �H
AGH,�����yF�H�D �J
ABA(,����~E�D�K0B
HAALX�<��_F�B�A �A(�N0�
(D ABBH�
(H DDBI$��L��D p
Df
BR
F(��D��E�L X
AFd
AA(�����E�D�KPp
FAA,(�<��E�MP�
AF>
AA X�����E�P��
AI(|����[F�H�J �jAS�����H�����F�B�E �E(�A0�H8�GPn
8D0A(B BBBC$�L��4E�A�F0eAA80�d��F�G�G �A(�D@i
(D ABBA@l�����F�D�F �K@l
 AABEV
 FABA��d��/E�W
LF(��t��E�A�Q y
DAK�����=E�[
PF(���6F�A�A �jAB H���i]�D sAK�l�h��d��d��$F�B�B �B(�A0�A8�D�_
8F0A(B BBBH�
8C0A(B BBBE(��,�YF�D�D �k
CBB�`�sE�N
EP4���B�B�B �B(�A0�A8�G� I�!�
8A0A(B BBBI,���E�C
D��L�E�L�g
H4���	�gF�E�I �H(�D0}(D ABB$���	�3E�A�G cAAL��	�$F�B�B �B(�A0�A8�D��
8A0A(B BBBGLh����F�B�B �B(�A0�D8�G�'
8D0A(B BBBDL��L��F�J�A �A(�G0�
(F ABBA@
(F ABBE(�� ��F�K�A �A(�D�4��!�	HH�|!��F�B�B �B(�A0�D8�DP�
8C0A(B BBBC0��"�F�A�D �K0�
 AABG��|#�wH q
GF
F���#�dEAD �0$�aH ��$�E�D 4�0%�H PLL�8%�[F�B�B �E(�D0�A8�D�>
8D0A(B BBBE,��H'�cB�D�I �D0K AAB@���'��F�A�F �K0x
 ADBIj
 AABA0�$(��F�J�A �D��
 AABDD��(�HN\��(�	p��(�
H���(�?F�K�A �A(�D0n
8K@e8H0k
(M ABBF���8��H���x;�"A� ��<�!��=�<A�V8��=�L��=� `��=��A�R�y
AC���>�>D0y���>�"E�D WA���>�"L��?�]B�B�A �A(�J`�
(A ABBAh
(A ABBA �@�4� @�,H�@��A�E
B�S�����
Ax��A��A�D0�A���B�%HW���B�3HW���B�HS<���B�bF�B�B �D(�A0��
(A BBBD$ �D�vE�H�D _DA8H�lD�F�L�G �A(�G@X
(D ABBF ���D�gE�D |
DG$��<E�?E�N�D eAAH��TE�E�E�E �G(�H0�E
(A BBBFu(A BBB4��E�A�G�F@J
AAFD
FAET��F�0AAI 8p��F�F�B�A �D(�G0[
(A ABBK(��xG�hF�A�A �\AB���G�SY�D mH ���G�<M�XK�H�CL�H�1
B�B�B �B(�A0�A8�G�1
8D0A(B BBBA$l�R�'E�D�F IIA$��R�1E�K�I IIAp��(R�F�B�B �D(�C0�Dp�
0A(A BBBDG
0A(A BBBI
0E(A FBFC0�TZ�HIH�\Z�HI`�dZ�$E�U
FC(��tZ�jE�G W
ADp
DD ���Z�E�R
Ip
A0��$[��F�A�D �G0d
 DABCH��[�6F�B�B �B(�A0�D8�G`�
8D0A(B BBBBP��\�<E�V
MLp��\�g��@_�E�D �A���_����_����_�(���_�E�A�D 
JHE��c�7Hj$��c�8��c�	L��c�	`��c�t��c�"EAK(���c�UE�D�G P
LCI0��d�TA�I�L h
CAFDFA(��4d�WA�I�L q
CAE4�hd�SF�A�D �n
CBBJFBHT��d�B�E�E �A(�A0�R
(A BBBI(A BBB��e�,��e�F�A�D �x
ABJH���e�F�B�A �A(�G0d
(F ABBHh(F ABB0��e�	�D��e�F�B�B �E(�D0�D8�D@c
8G0A(B BBBJ�
8D0A(B BBBC�
8K0F(G BBBNN8A0A(B BBB(��<g�ZF�D�D �f
MBE0�pg�rE�D�G Z
FAGrFA8��g�HNLP��g�HF�B�B �A(�D0��
(F BBBHq
(D EBBJ���h�.Dd0���h�zE�D�G Z
FAGzFA��(i�HV(�0i�E�A�G v
FAF$0��i�gE�I�D ODAX��i�	l��i�H�Y
GS@��hj�^F�A�A �G0I
 AABDM
 FABJ���l�0H�S
EKd���l�F�B�E �B(�D0�D8�Dp�
8A0A(B BBBG!
8A0A(B BBBE`X��p�kF�B�A �D(�D@k
(A ABBFn
(A ABBD�
(A ABBC,���r��r�A�A ��
ABH(���s�6Q�D�I II�A� ��s�jA�P0M
AA<��s�LP�t�F�D�D �Y
ABFI
ABLF
ABOIAB4��dt�vI�D�G V
CABpFAI��4���t�^J�D�J X
AAFDJ�H�4��t�^J�D�J X
AAFDJ�H�4H��t�vI�D�G U
CACoFAJ����Du�AAR��Hu�E�S
A��Lu�|���u�	F�B�B �B(�A0�D8�DP
8D0A(B BBBAA
8G0C(D EBBH�
8A0A(B BBBE8L��~��B�E�D �D(�G@�
(A ABBD �����dE�P0C
FA,��؀�F�A�A �
ABD4�����RF�E�D �D(�D0q(D ABB`���%F�B�B �E(�D0�D8�G@x
8F0A(B BBBKj
8C0A(B BBBJlx����DF�B�E �D(�D0�GP�
0A(A BBBHy
0F(A BBBJD
0C(A BBBA8�����bE�M�D �(P0|(H EFO$����	8����	L����`����
t����JE�{��������(�����E�D�D h
ICO(��p��E�D�D h
ICO,����A�C
B�E�L����
G$@����2E�A�G _DA(h����|F�P�A �aAB ����jE�G z
FD��<��0��H��B�F�G �D@~
 AABK��������(����<�(��$P����KE�D�D xDA x�̌�E�h
K~
J��X��'H^,��p���F�K�A �D
ABG8�� ��8F�A�A ��
ABKX
FDNP �$��VE�D�G u
FCJ�
LHI_
AAGI
AAE(t�0��E�D�D �
DAGH���	B�H�H �B(�A0�F8�Dp*
8A0A(B BBBEH�����B�D�B �E(�A0�A8�N`�
8D0A(B BBBE8�l��L�x��`����t����L�����F�B�D �H(�G0
(D ABBMe
(G ABBOt��ܤ��F�B�E �D(�A0�
(D BBBG�
(D BBBGi
(D BBBE�
(A BBBH8P�4��tF�D�D ��
CBJe
ABHH��x��B�G�E �E(�D0�D8�J`�
8D0A(B BBBIt����HF�B�B �A(�D0�d
(A BBBFQ
(F BBBK�
(F DBBKX
(D BBBNLP����E�A�D \
FAK[
AAK�
LHHM
AAAd����F�B�B �B(�A0�D8�GP�
8F0A(B BBBH�
8F0C(B BBBJH����F�E�B �B(�A0�D8�GPq
8G0A(B BBBLHT� ��lB�G�E �E(�H0�D8�Dp�
8D0A(B BBBK��D��1���
�E$��d��H���
�ID
AH�����F�B�B �B(�A0�A8�G`Q
8D0A(B BBBE�4����F�B�B �B(�A0�D8�JP�
8G0A(B BBBMp
8C0A(B BBBL�
8D0A(B BBBH�
8A0A(B BBBI`��8
�F�E�A �A(�G@i
(G ABBGh
(C ABBH�
(A ABBG�0�t�`F�E�H �D(�G0�
(D ABBH�
(F DBBH\
(D DBBHP
(G ABBDG
(A ABBK��L�8��H�F�B�A �A(�D0i
(D ABBH(����M�D�I �u
ABF 4�P�n�r
�HP�HX���@F�B�B �E(�D0�A8�F@�
8D0A(B BBBEd����QB�B�B �B(�D0�D8�Gp�
8A0A(B BBBJ�
8C0A(E BEBK0��$�OB�A�D �D0z
 AABGH@��%�DF�D�L �B(�A0�C8�Dp�
8D0A(B BBBI ���4��E�G W
AD@���5�pE�A�D0_
AAEB
AADa
AAE���6���6�&E�\$��6�8��6�+H^P��6�-H dh�7�	|�7�	@��7�0F�E�G �D0�
 AABCv
 AABFl���7�_F�B�B �A(�D0�DP�
0A(A BBBC[
0A(A BBBE�
0A(A BBBFLD��:��F�D�C �G0r
 AABFQ
 AABKU AAB��`;�TH s
A@���;�F�N�B �A(�A0��
(H BBBK��`D��lD�6��D�5H0��D��B�J�B �B(�A0�A8�G��8A0A(B BBB|�XE�BE�|���E�<A�G�D ���E����E� HW���E����E�HT��E�H$��E�DB�B�E �B(�A0�A8�DP�
8A0A(B BBBA,p��H�A�C
D��L����
AL��DK�B�B�B �E(�E0�D8�M�W
8A0A(B BBBFH���M��B�E�H �E(�A0�C8�DP�
8A0A(B BBBH(<��N�JB�D�C �b
IBJh��N�E|��N���O�#E�],��O�A�C
M������
A$zRx�������,-	�D��R�F�E�H �B(�D0�D8�DPb8C0A(B BBB`�S�!E�W|�S�AAK��S�Q��(S�Z$��4S�K�kJ�F�L
A���S�HI0��S��O�
BP�P�F
AL
A4�PT�HIL�XT�/jH`�tT�
B�B�B �E(�D0�A8�F@�
8D0A(B BBBK��8U���4U���0U�@h��\U�!E�M8�pU�XB�E�A �G(�G0W
(D ABBJH@��V�B�E�H �B(�A0�D8�DP�
8D0A(B BBBF��hX�*A����X�e���X�E�r
I\H�\Y��O�D�A �Z
CBE
FBEp���P ���($��Z�ZA�D�D z
ADHP�$[�HI$h�,[�:E�D�D gDA$��D[�:E�D�D gDA,��\[�E�C
F���O��
DL��`�B�I�A �D(�D@U
(A ABBAz
(A ABBHL8�|a��B�G�B �E(�D0�A8�G��
8D0A(B BBBFL��f�B�B�E �E(�D0�D8�G��
8D0A(B BBBFT��i�CB�B�E �E(�D0�D8�J`nhKpIhA`@
8A0A(B BBBC0��j�-hD��j�/HfL\�k�B�B�B �B(�A0�A8�G� I� �8A0A(B BBBP���l�B�A�A �D0�
 AABCX
 AABDy
 AABA(��m�E�D�D P
AAA(,��m�~E�D�D O
AAA4X�<n�E�D�D M
AATD
KAE���n�4���n�	����n��F�B�B �B(�A0�A8�DPx
8A0A(B BBBDD
8C0A(B BBBHW
8D0A(B BBBD`
8G0A(B BBBHd
8G0A(B BBBEd� p�(x��p�EE�D�G Q
AAE4���p��E�A�G@�
DAKK
DAH��q�	��q�'��q� E�ZH ��q�F�B�B �E(�D0�D8�G@M
8D0A(B BBBHPl��r��F�N�G �D(�A0�G���M�F�A�q
0A(A BBBJ,��tt�F�D�D �[
ABD\�u�PF�B�E �B(�A0�D8�J���L�K�A��
8A0A(B BBBBP��y�Hd��y�B�E�A �A(�D0}
(J CBBEb
(A ABBH��Tz�:H q4�|z��E�M�D0A
DADP
DAK�{�FE�c
PM0 �D{�xE�D�D q
AAHhFAT��{�^Y(l��{��O��
DP�P�L
A,���|�PE�C
D��L����
A��~�L��~�F�B�A �A(�D@�
(A ABBHk
(A ABBG ,�(��rE�D v
DEP���� d�����E��
D\
D��L��HI��T��|w�����HI8�ā�F�K�A �A(�G��
(A ABBG����8 ����F�N�G �D(�G�J
(A ABBA$\���'E�C�G IIAL����F�N�B �B(�A0�A8�J��
8A0A(B BBBIX�P��F�B�B �E(�D0�D8�G�K�B�F�A�[
8A0A(B BBBA(0���+F�D�D �UABH\���F�B�E �E(�D0�D8�D��
8A0A(B BBBG(�|��E�A�G {
DACH�p��F�B�B �B(�A0�A8�Gp�
8A0A(B BBBH  ��HE�P
Kb
A,D���r�A�D ��ABJ���$t���E�A�G �FA�8��!KNd�P��QB�B�B �E(�A0�A8�D��
8A0A(B BBBFs
8A0A(B BBBKH��aE�y
JT<���8E�PX���HIXpđ�F�N�B �B(�A0�D8�D�g�H�R�A�[
8A0A(B BBBHl�h��F�N�B �E(�A0�A8�G�

8A0A(B BBBE��H�I�A�U�H�U�A�<��LP$��F�E�B �B(�D0�A8�D��
8D0A(B BBBD(�Ԛ�E�H�D \
FON�����DP�
G����{4����&A�K�G z
AAA�
CAH$4��qA�v
IQ
GL@\H��A�H�G y
CACY
CACZ
CABT�Ĥ�T�B�B �B(�F0�K8�G`l
8C0A(B BBBF�������T�|��T�B�B �B(�F0�K8�G`D
8C0A(B BBBF�������8PD��B�L�D �C(�G0F
(A ABBH������P�B�B �D(�J0�G@D
0D(A BBBH�
0A(A BBBEO
0A(A BBBIL
0C(A BBBJs�����(���A�K�G z
AAA@D����A�H�G J
CABZ
CABZ
CAB4�\��;B�H�D ��
ABHlAE@�d��fB�E�I �D(�D0�D@|
0A(A BBBH,���A�C
B�E�E�H�
IX4 �� P�H�D �G0l
 AABES
 AABAM
 AABGU���T����Q�B�B �E(�E0�K8�GPm
8C0A(B BBBFP������d�\��"X�E�B �F(�D0�A8�DP�8A0A(B BBBA������AP������T������,P$��WB�D�D �B
ABA8�T��oB�E�D �D(�D0N
(A ABBA,����jB�D�D �U
ABA,�ȶ�WB�D�D �B
ABA,	���XB�D�D �C
ABA(L	(��VB�D�D �_
ABD0x	\��0A�C�G M
AAFDFA<�	X��B�E�E �G(�G0�]
(C BBBH�	ȷ�C4
��A�A�N ~
AAHw
AAG8
ܸ�L
h���O�d
P��v8x
���B�D�A �D(�G@]
(A ABBK<�
���B�B�B �A(�A0�H
(A BBBID�
��B�E�E �E(�D0�F8�D@z8A0A(B BBBL<H���B�N�E �I(�D0�D8�J�i
8A0A(B BBBEL����B�E�E �E(�A0�A8�G��
8A0A(B BBBAd�8��HB�B�B �B(�A0�A8�DP{
8C0A(B BBBK�
8K0D(B BBBILD ��xB�B�B �B(�A0�A8�D�S
8A0A(B BBBA@�P��pB�J�D �D0m
 AABKT
 AABAL�|��B�B�E �B(�A0�A8�G��
8D0A(B BBBFT(
L���K�I�B �B(�A0�D8�Gpr
8C0A(B BBBFn������\�
���F�B�D �D(�J0V(A ABBJ����H0����x
(G� A�B�B�L�
D���
@��(<��HE�D�G \
AAB4`��!J�L�Pt��yJ�f�l���D��$�P��^E�D�G DDA����'0����E�D�D w
DAGDAA��2\U88��F�E�D �C(�G@�
(A ABBHX���#HZp��h�p��iE�t
Ge����9E�N ^CH����B�E�E �E(�H0�H8�Gpw
8D0A(B BBBD�t�}	F�B�E �J(�A0�A8�J�G
8A0A(B BBBD��Q�]�A�;�Q�[�A�p�Q�\�C�]�Q�[�A�H�d�iF�B�D �I(�J0[
(A ABBHD(P DBBL���F�E�E �E(�D0�C8�L@
8C0A(B BBBE<��P��d��0x��AE�D�G T
AAJGHA8���eF�E�G �J(�G0\
(D ABBHH�,�yF�E�E �G(�J0�v
(A BBBBQ(A BBB4`�+<H|�dK�E�A �A(�H0@(A ABBA����4���RF�B�D �A(�G0w(A ABBH���aF�B�A �A(�D0r
(D ABBGD(D DBB(��mF�D�C �w
ABI,8<�rF�D�D �@
ABGh��|��D���F�H�H �E(�D0�A8�KP\8A0A(B BBB���TH�8��F�B�H �I(�D0�D8�JPf
8A0A(B BBBE8��xL(�
`$�t0�!�L�
�H��D�
�@�0V�\��X�
T�P� $(\�bE�D�G OAA4P��F�A�A �c
ABBMAB���$��-(�4�aE�G�H ~
AAD(�x�E�D�H \
AAA��UiR D�`4@�O�E�B �D(�A0�[
(C BBBAE
(A BDBBC(A DBBA�����P���O�E�B �E(�A0�A8�G@q
8C0A(B BBBGL������\���F�B�B �E(�D0�D8�R@H
8A0A(B BBBED8F0A(B BBBHL8�F�B�E �E(�D0�D8�DP�
8A0A(B BBBF������H����F�I�E �B(�A0�A8�G��
8A0A(B BBBE`x!�F�E�E �H(�D0�A8�J``
8A0A(B BBBAK
8A0A(B BBBI p$�K�Y�S�LH��$�%B�B�B �E(�A0�C8�J��
8A0A(B BBBAH�d%�L�E�B �E(�D0�A8�D`�
8A0A(B BBBC`,(&�I�B�B �D(�A0�o
(A BBBHF
(F BBBFA
(K EBBC,��&�KSA�F
P������
AL��y�B�E�B �B(�A0�D8�J�
8A0A(B BBBJL��/B�B�B �E(�A0�D8�G�
8A0A(B BBBF`���=`t���F�E�B �A(�D0�\
(D BBBHA
(A BBBHs
(A BBBA@�l��\J�E�D �D(�G0`
(A ABBDN�������$0���$E�^4L���aJ�C�G p
AAJDD�A�(���qJ�D�G NAAK���D���@��
@�<���F�B�E �D(�D0�G�u
0D(A BBBD�؏�?
F�E�E �E(�D0�D8�J��M�T�A��
8A0A(B BBBH��J�Z�A���L�K�A���L�L�B�����HEB O����	�����|��x��	 t��4p��Hl��K\���p���f���A�<��JE�r
II�l��O$����BE�D�G jFA��!F�T�$��DE�D�D oFA,8���B�A�A ��
ABD`h̛��B�D�G �B(�A0�A8�D`a
8A0A(B BBBH\
8F0A(B BBBA`�8��B�B�B �B(�A0�A8�DP�
8A0A(B BBBHT
8F0A(B BBBA80��8A�A�J���`�M�A�v
AAGl��9@���B�B�B �A(�A0�D@�
0C(A BBBF(�`��UB�D�I �{
ABA����? ��� L��-, h��
(@ d��LA�D�G h
AAJl ���\H�@
HK� Ȥ�\DI
C� ��9dT,� 4��|I�D�C �R
ABK � ���eQ�iF�H�X�D!�B�B�B �B(�A0�A8�DP�8A0A(B BBBH\!(��B�H�E �B(�A0�A8�G``
8A0A(B BBBA�!���%H�!���&B�H�E �B(�A0�C8�GP{
8A0A(B BBBGt"����B�B�B �B(�D0�D8�D@x
8A0A(B BBBJD
8M0F(B BBBID8C0A(B BBBd�"��B�B�B �E(�F0�D8�DpY
8A0A(B BBBD�
8M0G(B BBBEl�"<��FB�B�B �A(�D0�\
(A BBBBG
(O EHBK�
(D BBBHD(G BBB�X#��[�B�B �B(�A0�A8�Dp�8A0A(B BBBF������hp�������������Qp�������
8A0A(B BBBAX�#<��B�J�B �B(�D0�A8�G���J�Y�A�U
8D0A(B BBBG\D$���B�F�B �B(�D0�A8�K�
8D0A(B BBBFK�K�Q�A�L�$��"B�B�B �E(�D0�C8�I�
8A0A(B BBBJ`�$л�	B�B�B �B(�A0�A8�Dp
8A0A(B BBBJW
8A0A(B BBBGX%|��l%x���%t��-�%���&E�L
GM�%����%���!H XP�%���mF�E�E �D(�I0�D@e
0A(A BBBBT0A(A BBB4&���9E�sP&��MH@Dh&<��3QU�&d��<�&p��E�A�I0A
CADL
CAHLCA(�&���xE�G U
AFG
AA'��9Q�g,'8���N�H�G x
AAI���L'��;Q�aF�h',��	|'(��2E�l(�'L��LE�D�G h
AAF4�'p��A�D�DP]
CAFN
CAA�'���LL�l
HK(��	`0(��jF�D�B �B(�A0�D8�G`�
8A0A(B BBBDe
8A0A(B BBBA8�(��|B�D�D �F
ABEQ
ABD$�(T��8A�I�G0dAA�(l��!$)���BE�E�G nAA(4)���(F�D�D �RAB`)���	Ht)���+F�E�E �E(�A0�A8�F`S
8D0A(B BBBC`�)���F�B�B �B(�A0�A8�DP�
8A0A(B BBBHD
8F0A(B BBBEH$*0��_B�B�B �B(�A0�A8�D�l
8D0A(B BBBI p*D��{H{
Em
K�*���CTk�*���
L�*���B�B�B �B(�A0�D8�D��
8C0A(B BBBHH+T��B�B�B �B(�A0�A8�DP�
8C0A(B BBBB�\+��fB�H�B �B(�A0�G8�J���I�I�A�[�A
8D0A(B BBBD��I�I�A�X���K�I�H�X��N�I�H�V�L,���B�B�B �E(�A0�A8�D��
8C0A(B BBBK�T,@��XB�B�E �E(�A0�D8�D��
8A0A(B BBBF:�D�W�A���E�S�A���E�K�A���G�L�B���,�`"B�B�B �E(�A0�A8�J�z
8A0A(B BBBE^�B�L�B�w�J�K�A� 
�B�N�A�Hl-�(�B�B�E �E(�D0�C8�G`
8C0A(B BBBIH�-�)�B�B�E �E(�D0�D8�G`T
8D0A(B BBBBL.�*��F�B�E �E(�D0�D8�G�9
8A0A(B BBBDT.,�4h.<,�|.H,��.D,��.@,��.<,��.8,��.4,��.0,�/,,�/(,�v4/�,�H/�,�\/�,�
p/�,��/�,��/�,�8�/�,�B�E�A �D(�D0�
(A ABBH�/,-�E�W00-�40\-�(,0h-�IB�D�A �_
ABG(X0�-�wA�A�H r
CAAH�0�-�F�B�B �B(�A0�A8�J��
8D0A(B BBBC�04/�jH I
G�0�/�TD_
A(1�/�eF�D�C �p
ABH410�UE�o
D(P1T0�eF�D�C �p
ABH(|1�0�eF�D�C �p
ABH8�1�0�B�I�A �A(�G0Z
(D ABBI�1@1�hDR
A82�1�B�E�A �D(�G0Q
(A ABBF�<22�9F�E�D �C(�D0�
(A ABBCe
(J ABBLI
(A ABBAE
(A ABBEI
(A ABBA�2�4���2�5��H�2x6�`B�B�B �B(�A0�A8�D`
8A0A(B BBBI83�7�TM�n
ALT3�7�B�B�B �B(�A0�A8�D�e
8A0A(B BBBC|�3:�MB�J�B �B(�A0�A8�Dp�
8A0A(E BBBF
8A0A(B BBBE�
8A0A(B BBBI`$4�I��B�E�E �B(�D0�A8�D`n
8A0A(B BBBA�
8A0A(B BBBA�4|K��4�K��4�K�H�4�K�F�B�B �B(�A0�A8�F@�
8A0A(B BBBK5tL�($5pL�gE�D�G�TAAP5�L�HI(h5�L�IJ�A�D kA�A�$�5�L�<E�A�D kAA`�5�L��F�B�B �B(�A0�A8�Dp�
8A0A(B BBBA|
8A0A(B BBBE 6�Q�:E�-0<6�R�F�D�A �G0v
 AABD�p64S�{B�B�B �B(�A0�A8�G� I�!
8A0A(B BBBA��!F�!F�!I�!I�!��!K�!A�!F�!P�![�!Q�!K�!A�!K�!K�!P�!R�!A�!K�!07_�F�A�D �M�h DABLL7h_�F�B�A �C(�G��
(A ABBH�
(A ABBF4�7a�E�A�D l
AAHe
AAA�7�a�
�7|a��7�a�HI8�a�(8�a�5](<8�a�E�A�F M
AAEh8b�|8b�OEAD�8Lb�8E�m
A�8pb�0�8xb�QA�K�K h
AAGDCA9�b�9�b�HI0,9�b��B�A�D �I�a
 DABH(`9Tc�1A�A�F `
CAA�9hc�)DPdzRx�P���i�9Tc�6E�P�G �9tc�h_:�c�BE�P�G $:d�BE�P�G D:0d�9E�M eAd:Pd�(x:Ld�XF�A�H �EAB�:�d�WA�M
H�:�d�_B�B�B �B(�A0�A8�G�g
8A0A(B BBBF;�e�O@ ;f��F�B�B �A(�C0�D@�
0D(A BBBHd;�g�`H~
J8�;h�dF�E�I �A(�D@�
(D ABBG�;8n�;�;dn�E�LL�;hn��F�B�B �B(�D0�A8�N��
8F0A(B BBBA<<r�$H[T< r�\HPG
Ap<dr�	�<`r��<\r�K�<�r�8�<�r�m�< s�@H_
IK,�<@s�OE�H�G�~
AAD$=`v��H8=,w�.F�E�E �B(�A0�A8�DP�
8C0A(B BBBGX�=x�P�E�E �D(�D0�D@�
0A(A BBBFp�����H@�����D�=ty��b�B�E �B(�D0�A8�D@�8C0A(B BBB(>�y�A�XLD>z�/B�B�B �B(�A0�A8�G�
�
8A0A(B BBBA�>Ш�fDQ
A`�>$���B�B�B �B(�A0�A8�D@w
8C0A(B BBBGL
8D0A(B BBBG?���GDN
A0?ĩ�fOPOH?��K��
AXd?��1F�B�B �B(�A0�A8�G�d(
8A0A(B BBBA�
�Z�Q�?���3[8�?���F�J�D �I(�D��
(D ABBA@���K��,@(��@@4��K��0\@���F�A�D �G��
 AABK�@���K���@���@����@@��k�@���9�@���
A���H$A���B�B�A �A(�D0r
(D ABBKx(G ABBpA$���(�A���rB�A�D �gABL�A ��r�E�B �B(�D0�A8�G�
8A0A(B BBBI,B���mF�I�D �I
ABA4B���HB���\B���pB����B����B����B���,�B���L�D�C �bABA����B4��E�UC8��&t CT��F�D�E �B(�D0�A8�G@_
8C0A(B BBBHr
8F0A(B BBBG_8F0A(B BBBt�C���F�D�E �B(�D0�A8�G@_
8C0A(B BBBHr
8F0A(B BBBG_8F0A(B BBBxD���F�G�B �B(�D0�A8�G@p
8C0A(B BBBGr
8A0A(B BBBDW
8F0A(B BBBJ��D����F�D�E �B(�D0�A8�GP
8C0A(B BBBHm
8F0A(B BBBDW
8F0A(B BBBJp
8C0A(B BBBD\ E��F�D�E �D(�A0��
(A BBBE]
(A BBBL^(A BBB`�E���0F�B�B �A(�A0��
(D BBBCH
(A BBBAY
(D BBBAH�E���F�D�B �E(�A0�D8�DP�
8D0A(B BBBG|0FT��	F�D�E �B(�D0�D8�DPx
8A0A(B BBBAa
8A0A(B BBBE�
8A0A(B BBBJ �F���xE��
Ja
G@�F@����E�E �A(�D0�Z(A BBBA�����HG��VF�D�E �B(�A0�A8�Jp�
8D0A(B BBBEHdG ��~F�E�B �B(�A0�A8�D`�
8A0A(B BBBHH�GT��F�B�B �B(�D0�D8�GPn
8C0A(B BBBK�G���H���$H���8H���LH���`H��E�Q|H��&�H��5�H��4�H<���H8��|@�H���A�F�G`�
CAK�
AAEmAAH(Il��B�N�B �B(�A0�D8�L`�
8A0A(B BBBG�tI0���B�B�B �B(�A0�A8�G�

8A0A(B BBBA��G�[�A��
�G�T�
�G�T�
�G�T�
�G�TY
�G�T 
�G�TJx�HEB I<Jx�HEB O\Jx�BpJ��4�J����J��*�J���J����J��Ad VL�J��G�E�A �D(�G0G
(C ABBID(F ABBA����<K(�0DO
AXK<��lK8��B�B�E �E(�E0�D8�D@T
8F0A(B BBBB�
8A0D(B BBBAj
8F0A(B BBBAS8C0A(B BBB`L��B�F�E �B(�D0�D8�GP�
8A0A(B BBBIr
8A0A(B BBBD8dL��_B�B�A �A(�D0�
(D ABBA8�L� ��B�B�A �A(�D0Y
(D ABBD�L�!�8(�L�!�E�~
EY
GZ
FkMH"�ME�l
OP8M|"�B�A�D �G0E
 CABG|
 AABHt
 FABAL�M�#��B�B�B �A(�A0�j
(C BBBEb
(D BBBD�M8$�HHZ
NL�Mh$�HILNp$�4F�B�A �A(�G0�
(A DBBHy
(A ABBILdN`%�@B�E�B �A(�A0�y
(H BBBF�(D IDG�NP&��NL&�L�NH&�?B�E�B �B(�A0�D8�G��
8A0A(B BBBA,O8)�@O4)� TO0)�yHB
FI
WD(xO�)�E�J0K
AEf
AA�O�)�AAK�O�)�Px�O0*�+A�M
AD�OD*�gG�E�E �A(�D0�G@x0G(A BBBA�����8Pl*�3[0LP�*�SA�I�L N
FAEWDC@�P�*�B�F�D �R
AKFR
CBIW
FBA4�P+�E�D�G a
GAGP
LCI�Px+�E�LLQ|+�
B�B�E �A(�A0�c
(D BBBHA
(D DBBK hQ<,�yE�G _
ADH�Q�,��B�E�E �D(�A0��
(A BBBGq(C BBBH�Q,-�F�B�B �B(�A0�D8�D`K
8D0A(B BBBC($R�/�ia�G�G Z
CACPR�/�qE�S
A(pR40�A�A�G �
AAA4�R�0��E�A�G b
AAGe
AAAL�RP1��F�B�A �A(�G0`
(D ABBFl
(I ABBF8$S�1��F�B�A �A(�G0U
(D ABBAH`St2�AF�B�B �B(�A0�A8�GP�
8D0A(B BBBI`�Sx3��F�B�B �B(�A0�D8�D`�
8D0A(B BBBFR
8F0A(B BBBG`T�4�=F�B�E �B(�A0�A8�D`�
8A0A(B BBBG\
8F0A(B BBBE`tT�5�F�B�B �B(�A0�A8�G`�
8A0A(B BBBJD
8F0A(B BBBE`�T�6��F�B�B �B(�A0�D8�D`�
8D0A(B BBBFR
8F0A(B BBBG <UX8�E�
Dj
AH`UD9�B�B�E �E(�A0�A8�G@�
8A0A(B BBBE4�U�:�\A�H�G0[
DAHG
DDI`�U ;�WB�E�D �E(�J0J
(F ABBA�
(F ABBK\
(F ABBI4HV=��A�D�G n
AAD]
AAA0�V�>�F�F�A �G0M
 AABK(�V?�JF�D�D �xAB�V4?�`H@R
AH�Vx?�F�E�B �B(�A0�D8�DP�
8D0A(B BBBA0HW<B��U�H�I qAAG��H ��4|W�B�F�D�D t
DBHU
DBE�W@C�HIH�WHC��B�D�B �B(�A0�A8�D�|
8A0A(B BBBJX�J�6A�P
A4XK�%H\LX(K�%H\HdX@K�VB�B�B �B(�A0�A8�D`t
8D0A(B BBBA�XTN�AE�Q
JU�X�N�E�L�X�N�Y�N�3E�mY�N�4L�g(8Y�N�MJ�A�M dDAG��dYO�#E�Q
H�YO�3E�m�Y8O�E�Y(�Y<O�QE�A�D Z
JAE�YpO��Y|O�Z�O�$ Z�O�5E�D�J [AAHZ�O�HHm
KdZ�O�HHm
KH�ZP��F�B�B �B(�A0�A8�GPd
8D0A(B BBBJ\�Z�S�HF�B�D �A(�D@B
(C ABBEX
(F ABBE�
(F ABBI,,[�T�B�A�D ��
ABB(\[�V�\A�D�G z
DAE�[�V�yE�E
Fh�[W�-E�`8�[0W�dB�B�A �D(�G0�
(D ABBF0\dY�UE�A�G X
DAF_DA$4\�Y�NE�I�D vDA4\\�Y�CF�B�D �D(�G0U(G DEBH�\�Y�F�B�B �E(�A0�A8�DPV
8D0A(B BBBH(�\\�E�A�G U
DAI]�\�!HQL$]�\�F�B�B �E(�A0�A8�D��
8D0A(B BBBD(t]b�zA�H�D }
DAAL�]Tb�B�B�E �D(�D0��
(A BBBGJ
(A BBBGL�]d�E�D�D@�
AABT
AAJg
AAGR
AAD$@^te�wE�F�G _DAh^�e�|^�e�.E�\
GE�^�e� (�^�e�E�G A
ABI
AF�^Xf�SA�Q�^�f�L_�f��O�B�B �A(�D0�N(A BBBC�����H0�����4\_(j�E�D�D e
AADD
DAO$�_�j�7E�D�D dDAd�_�j�qc�B�B �B(�A0�D8�DP>������XP������
8A0A(B BBBH$$`�m��E�U
FF
JtL`�n�E�Th`�n�&E�\�`�n�E�T�`�n�&E�\�`�n�E�T�`�n�&E�\�`�n�E�Ta�n�&E�\$,a�n�9E�I�D aDAHTao�F�B�B �B(�D0�D8�D@@
8D0A(B BBBKH�aTp�?F�B�B �B(�D0�A8�G@�
8D0A(B BBBCH�aHr�aB�B�B �B(�A0�D8�DP�
8D0A(B BBBB8blv�<H_
IGXb�v�HIpb�v�	H�b�v�B�E�E �B(�A0�D8�G`�
8D0A(B BBBG8�bDy��Z�B�I �G(�J0}
(D ABBDHc�y��B�B�B �E(�D0�A8�D`
8D0A(B BBBDXc�{�lc�{��c�{�(�c�{�E�A�G m
AAAH�c|�!B�B�B �E(�D0�D8�D`�
8D0A(B BBBF8d�~��F�B�D �D(�D0j
(D ABBIHd��E�TDdd��ZF�A�D ��
ABGy
ABDf
ABAL�d���?B�G�D �D(�G0t
(D ABBK�
(G ABBA�d���=E�[
Aé�3T�OE�L4e��F�B�B �B(�A0�A8�D�V
8D0A(B BBBK(�e����E�G w
ADl
DA �et��GE�G H
DH(�e���A�A�G0B
AACLf$��'F�B�B �E(�G0�A8�J��
8A0A(B BBBK(Pf��-F�D�F �YABL|f��DF�B�B �B(�D0�D8�G�A
8A0A(B BBBJ(�f��-F�D�F �YABL�f��B�B�B �B(�A0�A8�L�
6
8A0A(B BBBJHgl��\gh��(pgd��1F�D�D �_AB(�gx��.F�D�D �\ABL�g|���F�B�B �B(�A0�A8�G��
8A0A(B BBBJ$h��SD Y
CS
EN
AL@hT��F�E�G �A(�G0F
(A ABBJq
(A ABBIL�h��B�D�E �B(�A0�A8�G��
8D0A(B BBBD�hd���h`��i\��diX��N�H�F �G(�A0�D8�DP 
8F0A(B BBBET8C0A(B BBBA������X�i���N�H�F �F(�A0�G@�
0F(A BBBHD0C(A BBBA������i4��DE�G vA jd���E�G �
AAx$j@��F�B�B �B(�A0�A8�G�|
8A0A(B BBBEF
8F0A(B BBBKD8F0A(B BBB(�j��Vd�A�J TD�D��j��)HV
BH$�j(��`Hi
OI
G�
G`k`��F�B�B �B(�A0�A8�DPU
8D0A(B BBBD�
8J0D(B BBBH8xk���ZF�E�A �A(�G0b
(M ABBH�k���4�k̩�B�D�A �d
DBGZ
ABKHlD���F�B�B �B(�A0�A8�J`�
8D0A(B BBBJLlث�IP�OA�N�Lll��F�E�A �A(�D@}
(D ABBIM
(D ABBJ�lج��lԬ�H S,�lܬ�uF�G�D �C
JBHHm,���F�B�B �B(�A0�A8�G@�
8D0A(B BBBC|dm���B�B�B �B(�D0�D8�G`�
8A0A(B BBBAW
8D0A(E BBBIL
8H0A(B BBBCl�m��4F�E�H �A(�A0�G@
0F(A BBBDm
0F(A BBBF|
0A(A BBBDPTn��F�C�K �F0�
 FABDJ
 FABEl
 AABH0�n���?F�D�D �D@�
 DABFL�n���S
F�D�B �B(�A0�A8�N��
8D0A(B BBBHL,o��F�E�A �A(�GP�
(A ABBI�
(A ABBA@|oH��gF�A�A �L@�
 AABI�
 AABAH�ot��B�B�B �B(�D0�A8�Dp�
8A0A(B BBBFpH�� pD��L4p@��B�E�B �B(�A0�D8�F�5
8A0A(B BBBK�p����p���d�p���F�B�B �B(�D0�C8�G��
8A0A(B BBBFT
8F0A(B BBBE(q���-F�D�F �YAB0@q���nE�D�D t
FDETDA8tq ��zF�A�D �I
ABIA
DBI`�qd���F�B�B �B(�D0�A8�DP|
8D0A(B BBBJD
8J0D(E BBBKr���9E�_
LD4r��E�NHPr��F�B�B �B(�D0�A8�Dp9
8D0A(B BBBE@�rH��F�A�A �D@�
 DABG�
 IABH�r���4�r����E�D�D@W
AAJ�
AAH$,sH��*E�D�I IIATsP��Mu(hs���/F�D�D �SGBL�s���F�B�B �A(�D0��
(A BBBHQ
(D DBBEH�s`��qF�B�B �B(�A0�A8�DP�
8D0A(B BBBJL0t���iF�B�B �B(�A0�A8�D�
8D0A(B BBBF�t���0�t���iE�D�G ^
GDGcDA�t���HE�s
H$�t0��)E�D�G IJA$u8��1E�A�G TJA$4uP��)E�D�G IJA$\uX��1E�A�G TJA$�up��)E�D�G IJA$�ux��1E�A�G TJA$�u���1E�A�G TJA$�u���1E�A�G TJA$$v���)E�D�G IJALv���ai�X�W�lv��-U(�v4��4F�A�D �eABH�vH��\B�B�E �E(�D0�D8�D`�
8D0A(B BBBH(�v\��6E�A�D W
GDE($wp��3F�D�D �XDD,Pw���E�C
D��L���
I(�w����E�D�G@~
DAEL�w����B�B�B �B(�A0�D8�G��
8D0A(B BBBI(�w8��.F�D�F �OHB(x<��<x8��.E�G `A,\xH���E�C
F���F��k
AX�x���Jv�I�D �A(�I0J(C ABBA����h0����I
(A ABBI4�x���E�D�G ~
CAFv
CAF( yT��lF�D�D �p
ABG(Ly���B�A�A �i
ABH@xy��T�D�G `AAG��X ��D
G�A�L`���yh��>h�y���$O�B�A �A(�D0P
(F ABBFq
(F ABBD|(C ABBD����H0����H<zX��rF�D�B �E(�A0�C8�Np!
8D0A(B BBBG4�z���E�D�G @
GAHGHA(�z��Vd�A�J TD�D�H�zH��RF�B�B �B(�A0�A8�G@�
8A0A(B BBBDd8{\���B�H�E �E(�A0�A8�D`1
8A0A(B BBBK�
8A0A(B BBBK8�{��B�B�F �A(�M@�
(A ABBGH�{���F�B�H �E(�A0�D8�G`%
8A0A(B BBBH(|l�?H v0@|��bE�D�G j
DAAUGA\t|��
F�B�D �A(�G@�
(D ABBIZ
(D ABBEA
(A DBBF@�|��F�E�B �A(�A0�FPi
0D(A BBBA0}��BF�D�A �DPy
 AABDLL}���F�E�B �B(�A0�A8�D�5
8A0A(B BBBD�}��BE�G0tA�}��KhL�}��F�B�B �D(�A0�{
(A BBBGa
(C EBBKH ~�
�
F�B�E �B(�D0�A8�DpB
8A0A(B BBBD$l~H�)E�D�G IJA�~P�KE�l
G �~��PE�^
EW
E<�~��F�B�B �A(�A0�I
(A BBBD80��F�A�A �d
ABAc
ABJLP��F�G�B �A(�A0�O
(A BBBIj
(A BBBG�T�HI�\�EgI���DgI<���nF�I�I �A(�A0��
(A BBBL(��)�NHf
AD�0*� X�<*�$l�X*�$��t*�$���*�$���*�$���*�$Ѐ�*�$�+�$��+�$�8+�* �T+�*84�p+��B�B�D �A(�D0�
(A ABBA$p�,�2A�D�D cDA8��,,�B�D�D �A
ABBc
ABJ(ԁ�,�B�A�A �{
ABNH��,�*B�B�B �B(�A0�D8�Gp�
8D0A(B BBBGL��.�+f`��.�Ct�0/�-��L/�,��X/�F�D�A �~
AGGD̂�/��r�A�D �C
�H�B�LACBJ���P ���D�p0��r�A�D �C
�H�B�LACBJ���P ���L\�1�N�F�A �A(�D0U
(C ABBIT(F ABBA����L��h1�N�F�A �A(�D0V
(A ABBJT(F ABBA����H���1�F�B�B �B(�A0�A8�FP�
8D0A(B BBBC0H�,3�A�A�G d
EAMhAA0|��3�E�I�D @
DAIdDA4��4�F�A�D �Q
ABANKIL�\4��F�B�B �A(�A0��
(D BBBEN
(K DDEEH8��4�UF�B�B �B(�D0�A8�D@�
8D0A(B BBBGH��6�OF�H�E �B(�D0�A8�DP
8F0A(B BBBC(Ѕ7�E�A�G c
AAF���7�HI��7�!HQ,��7�nE�t
G4H�8�A�D�G f
AADU
AAA,���8�tE�J W
AI�
AA���9�<O�Q
HL8І�9�FB�E�A �D(�G0�
(D ABBG@�;�F�G�D �D0�
 AABE�
 AABBHP��<�-F�B�A �A(�G0�
(D ABBDa(F HDED���=�F�B�E �F(�A0�A8�F@a8D0A(B BBB`��=�F�B�B �E(�D0�A8�D`
8D0A(B BBBEX
8I0H(B BBBO8H�@�F�D�A �p
AFFQ
ABA���@�	8���@�F�E�D �D(�J��(A ABB0ԈA�F�D�D �J�� AAB0��A��F�A�A �J��
 AABF0<�XB��F�D�D �G�� AABp��B�@{�� C�@{8��LC�sF�B�A �A(�J��
(A ABBEԉ�D�9L���F�$HWH��F�B�E�F �B(�D0�D8�G@J
8H0D(B BBBLHX�,G�XB�B�B �F(�A0�A8�DP�
8D0A(B BBBH8��@K�vB�E�A �A(�DPS
(A ABBJ4��K�A�D�G0U
AAED
CAA(��K�|r�F�J Q
AAKD�0L�((X�LL�QA�F�G0^
AAA(���L�oA�D�D Q
CAB4���L�E�D�G D
CAHL
FAA8�,M�B�E�E �D(�G@s
(D ABBE,$��M��B�I�A �W
RBI8T�@N�$B�E�D �I(�D0w
(D ABBH0��4O�B�D�A �F0v
 DABF8�O�F�B�A �A(�D@�(A ABB�X� HT$�X�)E�D�G IJA@�$X�E�L\�(X�3E�J
A^8|�HX��F�A�A �N
ABGH
IBU8���X�IF�A�A �L
ABIH
DBB0�Z��F�J�D �J`b
 AABD$(��Z�)E�D�G IJAP��Z�E�Ll��Z�)E�S
HD���Z�C��[�:HN
JY@��$[�3E�A�G c
AAF�
DAID
IAE� \�5 �L\�E�D`G
AG <�H]�?H[
EH
HF`�d]�5t��]�6L�i���]�#���]�#���]�#̏^�#�$^�#�@^�#�\^�#�x^�00��^�0D��^�0X��^�0l��^�0��_�0�� _�04��<_�F�A�A �u
DBMv
ABA8��_�F�B�A �A(�D0L
(D ABBE ��`�[E�G@H
AA @��`�gE�G@T
AAd�0a�HQ|�8a�HQ��@a�HQ��Ha�HQđPa� HTܑXa�HP�`a�3Hj��a� HT$��a��8�|b�
L�xb��`�Td��x�e�IPc��De��$��0f�LE�N�D rAA̒Xf�7E�c
H$�|f�6A�L�I PJA��f�+f8$��f�B�L�G �A(�D0C
(A ABBA`�g�!H X x�g�D[
Aw
E(���g�hA�D�G �
AAEȓ�k�EA�]
RT�l�ID p
D8�Pl�B�E�D �D(�Gp]
(A ABBG(@��l�?Z�D�D �YABl��l����l�BL���l�yL�B�B �B(�A0�C8�J�)
8A0A(B BBBE� x�m$��|x�6A�L�I PJA ��x�(@4��x�B�D�D �
AGGo
AGA`AGx�ly�iE�x
Ch���y�A��
GA��\z�sA�qԕ�z�AA�\
A��z�)H`0�{�RE�A�G _
CAHSAA<�8{�HL4T�@{�oF�A�D �J
DBEGAB��x{�AA�\
A���{�m��|�JtNԖ@|�!HQ$�X|�LA�D�G }AA��|�E�Q$0��|�3A�D�D dDAX��|�,Xl��|�1B�P�B �D(�A0�GPT
0D(A BBBA�
0D(G BBBCȗ���wH�k
EX���B�B�D �A(�D0�
(A ABBFb
(A ABBHT(E ABB@����]T���u|_Mp�d��iDz
B�����OHj
NN4����A�A�G N
DAD�
ADKD�P���B�A�A �T
ADKf
AELD
ABE$,�؆�GA�A�J uDA8T����B�L�G �A(�D0u
(A ABBK�����+H b4�����A�A�G0x
GAGt
DDD��$��rB�E�E �E(�A0�D8�G�v
8A0A(B BBBCW�c�G�B�A�[�F�A�y�X�K�A�a�Y�G�B�p���6H m8��<���B�B�A �A(�GP�
(A ABBAĚ��1H hܚ��DQ
K����� ���A�G0s
ADP0����K�C�G`O
AAJt
AAJGhPpIxE�E�E�T`$����\E�A�D0OAA��H��kDG
Eț���kDG
E<���fA�D�D l
IAID
AABIGA($� ��F�C�A �vABDP����-B�A�G �[
ABHy
ABDi
ABD(��l��VE�A�G _
LAEXĜ���F�D�B �A(�K0�D@�
0A(A BBBD�
0A(A BBBD0 ���jE�A�G _
LAG`ADHT� ��%B�G�B �B(�D0�A8�D`�
8A0A(B BBBA,����A�C�G�h
AAK\Нd��B�B�A �D(�L�i
(A ABBDK
(D ABBDO(D ABB(0���E�D�DPW
DAG\�x��HI4t�����A�A�Gp#
AAB^
AAH$��(��EE�D�DPuAA@ԞP���F�C�A �N0�
 AABGJ
 AABJL�ܞ�|B�B�B �B(�A0�D8�J�p
8A0A(B BBBG(h���A�D�DPQ
DAA@��p��B�B�B �A(�A0�J��
0D(A BBBF$؟̩�EE�D�DPuAAd���B�B�B �B(�A0�A8�G`~
8A0A(B BBBG�
8A0A(B BBBG0h���B�A�D �DP�
 DABAD�����/F�B�B �A(�D0�D�2
0D(A BBBH����%(�����ME�D�D i
AAH($�ж�ME�D�D i
AAH(P���ME�D�D i
AAH(|���ME�D�D i
AAH(��<��ME�D�D i
AAH(ԡ`��ME�D�D i
AAH(����EE�D�D ^
DAH(,����QE�D�D g
AAJLX�ܷ�F�D�B �B(�K0�A8�D��
8A0A(B BBBF(����EE�D�D ^
DAH(Ԣ@��=E�D�D V
AAK(�T��=E�D�D V
AAK0,�h��FE�D�D V
AAKSAA(`����=E�D�D V
AAK(�����=E�D�D V
AAK(�����=E�D�D V
AAK(����=E�D�D V
AAK(�Ի�=E�D�D V
AAKl<����F�B�B �B(�A0�D8�G���U�U�A��
8A0A(B BBBD��D�I�A�P��H���B�E�H �D(�A0�D�v�[�F�A�y
0A(A BBBG�Ծ�HE�c
HP ��� E�S<<���|E�D�D d
AAMZ
MAHDFA(|�H���E�D�Dp�
AAJ(����nE�P @
AJLA(ԥP��~E�P K
AGTAt����DF�B�A �A(�G�Q
(D ABBEF�E�E�E�K��
(A ABBG`
(A ABBB x�|��E�D0�
AE��x��_E�D0TA4�����F�A�D �~
ABDBAB� ��>HN�H��bE�d
g(����9E�Y
JIH����|E�hd� ���x���������0�����QA�G�D0u
AAEDCAHԧ����B�B�D �G(�D@x
(A ABBGe(A ABB$ �4��aE�D�G0LCA4H�|��A�D�D v
DAL]
DAN0�����kF�D�D �D0a
 AABI$�� ��A�F�D �AALܨ���B�B�B �B(�A0�D8�G�
8D0A(B BBBG4,����E�D�D �P
ABHXABdd����EB�H�E �B(�A0�A8�G��
8A0A(B BBBBu
8A0A(B BBBA,̩���A�I
D��E�E�D�<
Ht��8��MB�B�B �B(�A0�A8�D�c
8A0A(B BBBEc
8A0A(B BBBCG�K�c�F�`t���dB�B�E �D(�C0��
(A BBBCi
(A BBBHx
(A BBBI4ت��aB�E�D �D(�D0G(A ABB�T��(H _(�l��$H [@����1E�L ^AX`����B�B�B �A(�A0�G@^
0D(A BBBH�
0D(A BBBC�����DL�L
HUܫ��DL�L
HU��H��DL�L
HU�x��DL�L
HU<����DL�L
HU\����DL�L
HU|���DL�L
HU��8��DL�L
HUH��h��F�B�A �A(�G0c
(D ABBCD(M ABB����H����B�B�E �B(�A0�A8�DP�
8A0A(B BBBF$h�|��^M�U
F`�H�M����� A�N
AI8�����F�B�D �D(�F@]
(G ABBI���AAK8���PF�A�K �!
ABJD
AEAD� ��*HX
E`�4��?Ha
GI
A��T��?Ha
GI
A(��t��E�H�D �
DAA<̮H��F�I�B �A(�A0��
(D BBBAH����B�E�B �E(�A0�C8�DP
8C0A(B BBBH4X�|��eH�J�I W
F�A�GYFAA�������)K�XE�P����XB�A�A �D0d
 DABE^
 DABCL
 GABJ(���KF�A�A �a
ABA,����0E�R
AH���,(\�(��A�A�G t
AAA�����OE�p
K,����F�D�A �a
DBN԰0��	�,���H��
X���%(����aP�A�G {AAK��0H�<���F�K�F �D0�
 DABH(|���pE�J0R
AFDC��,��RH0|
DIȱl��Lܱ���YH���}F�B�E �G(�A0�A8�G��
8D0A(B BBBDH<�(��B�B�B �B(�D0�D8�Gp
8D0A(B BBBG`����F�B�B �B(�A0�A8�G� I�!P
8A0A(B BBBHY�!U�!L�!A�!���;A�]
R\��&B�I�B �B(�A0�D8�G�A
8A0A(B BBBJa�d�	P�A��h���LF�B�E �E(�D0�A8�G���M�P�A�h�M�O�B�o�J�Q�B��
8D0A(B BBBDD�M�R�A�X�M�T�C�`���F�B�B �B(�A0�K8�I�Z�Q�S�F�U�q
8A0A(B BBBK0l���F�H�A �GP}
 DABA0��d�F�A�A �G`�
 DABALԴ0�F�B�B �D(�A0�q
(A FBBE�
(A IBBF4$��iF�E�I �K(�D0x(D ABBT\�8��F�E�E �B(�A0�D8�GP_
8A0A(B BBBITXX`FXAP(����E�A�N0P
DAGH�4�tF�B�B �E(�A0�A8�FP
8D0A(B BBBE,�h�T@�d�B�H�E �B(�D0�N8�DxF�RxAp�
8A0A(B BBBB\����F�B�B �B(�A0�A8�G�P�L�F�F�f��
8A0A(B BBBGL����P�E�D �D(�D0�
(D ABBHP����H0����\H���)F�B�B �E(�K0�A8�L�l�L�F�F�S��
8A0A(B BBBEL���!��B�B�B �B(�A0�A8�G�R
8A0A(B BBBC,��(�bB�I�J �G0A AAB4(�\(�E�A�G0�
DADN
DAE`�D)�0E�G bA��T)�GE�L0tA(���)��E�A�D0
FAH̸(*�5H l�P*�	��L*� HO
AL�P*��F�B�B �E(�D0�D8�D�Y
8D0A(B BBBG<d��+�F�E�E �D(�D0�JPX0A(A BBB�� ,�3��L,�̹X,�9(��,�^E�H�D FAA��1�H�,�H4�R@��4�s$T�5�(D�
Hg
I|
Dl|�6��R�H�B �B(�A0�G8�d
0A(B BBBEK0A(B BBBD������H8������4�h7��A�C�D v
AAHf
AAH8$�8��B�G�A �D(�G0H
(D ABBJ4`��8�+A�I�G@�
AABxAAD���9�B�E�B �B(�D0�A8�D@�8A0A(B BBB8��:�/B�G�A �A(�F@w
(D ABBGL�x;�hB�E�E �A(�E0�
(A BBBF@(A BBBTl��<�B�E�I �A(�D0�D@�
0A(A BBBFf0A(A BBBļ`=�gHؼ�=�F�B�B �E(�A0�A8�DPl
8D0A(B BBBB@$�>�V�O�D �D(�O GBBI����N(����lh�|>�F�B�B �A(�A0�D@�
0A(A BBBFg
0C(A BBBGO
0H(A BBBA$ؽ�?�3E�D�D cAA(��?�DE�E�D d
DAAL,�@�F�B�B �B(�A0�A8�M�
8A0A(B BBBFL|��W�tF�K�F �B(�A0�A8�F�
8D0A(B BBBH<̾�l�O�B�D �D(�G0u(A ABBA����d�Hm�F�J�F �E(�D0�D8�IP�
8A0A(B BBBK�
8A0A(B BBBBt��o�
���o�*���o����o�Ŀ�o�	ؿ�o���o�$��o�8E�A�D fFA(�p�Q<�Xp�
P�Tp�(d�`p�\I�A�D xCAF�����p�3WW8���p�.B�B�A �D(�G@O
(A ABBK��q�(H_���q���q�$��q�DE�~@�r�$E�$X�,r��A�C
E����
A���r�3E�L `A���r�E�V���r���r�	��r�HN���r�#E�Y�s�	,�s�	4@�s�DF�D�D �M
CBHVCB0x�s�lA�D�D0d
CAGqAAH��Xs��B�B�A �D(�DPT
(A ABBIa(A ABB���s�E�L��s�0(��s��B�D�A �D0P
 DABF\��t�HO0t��t�EE�D�G M
CAGXCAH���t�F�B�B �B(�D0�D8�Dpy
8A0A(B BBBE4���v�JF�D�D �S
CBJTCB(,��v�WA�D�D@y
AADX��v�"HYp��v�+f��w�(Q�V0��$w�DE�D�G M
CAGWCA(��@w�ia�G�G Z
CAC��w�yHp0��w�bE�A�D0q
AACZFA0L�(x�E�G�D0^
DAElDA���x�!0���x�F�I�D �G0M
 AABE��y�
��y���$y�@L�Py�uF�K�A �A(�DPy
(D ABBGe
(D DBBG4T��z��E�M�F0�
FABN
AAH��8{�0��D{�sE�D�D0h
DAFmDA���{�!E�T���{�!HQ��{�!,��{�xF�A�A �I0_ DAB8L�(|��F�B�A �A(�J@t
(A ABBB���|�cu ]
FF��,}�AW R
GN��\}�.��x}�?H e
CN���}�EH a
GN@��}�LV�A�A �G0E
 AABH`���H0���(`��~�^E�I�D R
DAG���VA�T��L�0��H�0F�D�D �G0�
 DABCP��D��F�D�D �G@A
 AABFn
 AABFG
 AABE(D���E�J0w
DFl
GE$p���1E�D�D ^DA`�����wF�B�B �B(�A0�A8�Gp�
8A0A(B BBBB�
8A0A(B BBBC ����]E�G o
DA( �T��_F�A�D �M
ABE L����TE�G e
DK$p�Ą�ME�G�G wAA(����MJ�A�G mDAD��4����E�A�G0f
DAHP
DAK4�����J�D�G S
CADDFAE��<4���F�A�A �G0�
 DABGK GABt����E�O(�����mF�J�D �[
ABF4�����A�A�D`�
AAAD
FAEL�����[B�B�A �D(�G@j
(A ABBH�
(A ABBDD����-H T
DLLd����JB�E�D �D(�D@F
(D ABBF�
(D ABBA�����,H c��ȉ�HI��Љ�gE�D�G H� ��F�E�B �B(�D0�A8�DP4
8A0A(B BBBJ(P����FF�G�D �[
ABE(|����E�D�D@L
AAA����,H c��$��TH p
HH
H��d��H����F�B�B �B(�A0�A8�G`o
8D0A(B BBBG8@�d��F�E�A �D(�D@�
(A ABBH8|�H��
F�E�A �D(�D@�
(A ABBG����#E�V$��0��,E�D�J IJAH��8���F�B�E �E(�A0�D8�D`^
8A0A(B BBBA8H�̔�XF�E�G �D(�D0X
(J ABBE����$����4E�G�D ^DA����CU W
DF<��4��YA�D�G Z
AAHV
DAEDCAT �T��kF�B�B �A(�D0�Gp^
0D(D BBBF�
0D(A BBBH0x�l��lE�D�G M
AAADFAH�����B�E�E �B(�D0�D8�Fp�
8D0A(B BBBG�������� ���4� ��H�,��\�8��\p�D���B�E�E �E(�D0�C8�GP�
8C0A(B BBBAD8F0A(B BBB������������̘�H�ؘ�F�B�B �B(�A0�A8�D`�
8D0A(B BBBIX�<��HI0p�D��F�A�A �G0�
 DABE(��0��E�D�D0�
AAA��ě���Л���ܛ�@���F�B�B �A(�A0�D@Q
0A(A BBBGP�d��(E�b8l�x��aF�E�G �D(�D0X
(J ABBO�����X�����TF�B�B �G(�D0�G@{
0A(A BBBA-
0A(A BBBK`����%B�B�B �B(�A0�A8�D`s
8A0A(B BBBAb
8A0A(B BBBA|����E�Y�����E�V�����%H�����'HZ�����H��Ȣ���p��sSU8,�أ�{B�B�B �D(�A0�W
(F LBBH(h���eA�D�D t
FAD��`��r��̤�2Ob����fZ^PH��H���B�B�B �D(�D0�DPcXH`U0A(A BBBFP(�̥�KrV@���(T���aA�V ](B0K(A ]A8��T��B�B�A �A(�D0E
(A ABBKH��Ȧ��B�J�E �E(�D0�K8�F@y
8A0A(B BBBBD�L��B�E�E �J(�D0�H8�GP{8A0A(B BBB4P����`�A�D �UABC���F ���@����B�I�E �D(�C0�F�B
0A(A BBBID��ب��F�B�E �D(�A0�g8b@k8F0A(A BBB4�p��F�Q�D �D(�G0e(F ABB4L�ة�F�E�A �D(�N0�(F ABB�����KA�I<��Ԫ�}B�H�I �Q0e
 DABH] DAB����=aI��<��T(����WA�D�D V
DADL<���B�B�I �B(�A0�A8�N�K
8A0A(B BBBD@��X��A�A�G B
DAHz
DAId
DAG4�����A�J�G z
AABQ
FAH<�,��R�B�B �H(�D0�}
(A BBBJ�H���B�B�B �E(�A0�A8�J�}
8A0A(B BBBB��Q�_�B���H�g�B���f�c�C���G�i�B���S�a�B���G�i�A���f�V�A���G�j�B��f�W�B��f�V�A�7�G�j�B�y�L�d�A���I�[�A���f�V�A���f�V�A���I�u�B�;	�s�V�A�e�H�h�B�R�N�j�C���f�V�A�e�Y�V�B�V�V�`�C��
�L�e�B���I�f�A�X�f�k�B���N�o�B���f�S�B�{�j�W�G�m�G�s�A��M�s�A���I�v�C�x
�a�E
�H�P�
�a�EY	�F�[�B�����7�$B�B�B �E(�D0�D8�GP
8F0A(B BBBH�X_`lXAPQ
XK`Ns
XK`Rs
XK`Rs
XK`RA
XI`N�
XK`Ia
XX`G�
XK`IH��|=�fB�E�B �E(�A0�D8�D�A8D0A(B BBBH���>�YB�B�E �E(�D0�D8�G@�
8F0A(B BBBH@0��?�B�B�E �A(�D0�DP�
0F(A BBBF zRx�P�����(�
(��8A�1G�D�D �T�D�B����LA�$B�B�B �E(�A0�C8�G��
8C0A(B BBBE��K�h�B�L�H�q�A�M�N�i�A�j
�a�E]�d�Z�A���N�s�B�L���K�B�I�B �B(�D0�A8�G�<
8D0A(B BBBDL��O�B�F�B �B(�A0�D8�D�x
8A0A(B BBBIH(�lP�*B�B�B �E(�D0�D8�FPt
8F0A(B BBBD,t�PQ�_B�D�D �G0D FAB$���Q�D�j
Bq
Gr8���Q�B�D�D �m
FBA@
JBD��R�HE�BL$��R�B�E�B �B(�D0�D8�D��

8A0A(B BBBD$zRx��������,�	L���d�
F�F�B �B(�A0�A8�G�~
8C0A(B BBBE<��q�Z�G�B �A(�A0�}
(A BBBG@�Tr�(T�`r�`F�A�A �MDBL���r�F�B�E �E(�A0�D8�G�S
8A0A(B BBBA��Ԉ���P��n��������� �ĉ�4����L����`�4��DQ�r|�h��K��@�����F�A�A �G0H
 DABBK
 DABF��H��4��T��`F�A�A �K
ABJ|AB4(�|��gF�A�A �K
ABJCAB`����t���������
�����
�����
�����
�����
�����u���"KV�(��*E�](8�<��AF�D�D fD�A�0d�`��N�A�G QD�A�T ��,��܍�*N��
F�H�A
�G(��܏�A�A�G g
FAA0��0��@A�D�D N
DADVDA(�<��E�Q(D�@��9B�M�D �bABp�T��K��������x��WA�M
L������B�E�B �B(�A0�A8�G��
8D0A(B BBBA0�<��|E�A�D |
JJFIKC <����vE�s
HX
H(`���E�A�D �
DAB�����;E�Y
E(��ܨ�jE�D�G G
CAE<�� ���^�A�D 0AAK��@ ��x��X ������ME�L@zA`4���<B�B�B �E(�H0�A8�GPp
8A0A(B BBBK
8A0A(B BBBBH��̰�,B�B�E �E(�G0�D8�G`�
8F0A(B BBBI8�����F�B�D �A(�D0Q
(G ABBJP �$��F�E�E �E(�A0�A8�D`MhEpPhA`Y8D0A(B BBBt����%HHB R�����%HQB I<�����pF�B�D �I(�N0l8N@L(A ABB<��з�F�B�D �H(�Dp�xH�X(A ABB\4����{F�B�B �E(�A0�A8�J���H�X�A�p
8D0A(B BBBI,������E�C
P������
J4������E�D�KPyXM`WXAPz
AAB��(���4��$�@��8�L��%L�h��0`�t��F�K�A �J@�
 DABIX�����F�E�B �B(�A0�D8�Gp�xA�UxDp�
8A0A(B BBBF���t��gF�B�B �B(�A0�A8�G�?�J�M�B���T�A�I�A�E�L��H�b�A�N
8A0A(B BBBA��T��*HR
FI��d��qH�����F�B�E �B(�A0�D8�D@x
8D0A(B BBBCH�P��F�B�B �B(�A0�A8�G`)
8D0A(B BBBEHP�����P�H�A �N0q AABD���H0���a
 AABCH��X��F�B�E �B(�D0�D8�D`�
8D0A(B BBBBH�����F�I�E �E(�A0�A8�F�D
8D0A(B BBBF$4�`��1E�D�D ^DA(\�x���E�G�G0^
AAE(��,��
E�H�D �FO��������� ������������������,����@����!T����%h���1KN W��0��4KNF T��P��7KN F(C0T ��p��:KNF C(C0T$�����=KN F(C0C8C@T(����@KNF C(C0C8C@T(<����CKN F(C0C8C@CHCPT,h����FKNF C(C0C8C@CHCPT0�����IKN F(C0C8C@CHCPCXC`T4����LKNF C(C0C8C@CHCPCXC`T�0���<��,�8��@����T����h����@|�(��eDn
E$��|��.E�G�J IJC������������|�������]����$����mcpR
FD����*X����
H(l����RF�D�D �~CB$��,��UA�D�G CDA$��d��GE�F�G0rAAd�����X�B�E �A(�A0�_�����H0������
(A BBBGY
(A BBBH P�D��E�i
BA
O,t����I�G�A �o
ABEP��@��O�B�A �D(�D0*
(H� A�B�B�O�����H0��������RE�n
E�P��&H]4,�h��nF�H�A �A(�D0N(F ABBDd����E�J�D0|
DAD@
DDH@
DDH�����&����3��0��t�����S�����(���WA�D�D V
DADH<�����B�E�E �B(�A0�A8�Dp�
8A0A(B BBBA�����BA�J uA<������S�A�L kAAC��H ��M
AAI(�L��JA�D�G [
DAD��p��DH�B�B �B(�A0�A8�D@b
8A0A(B BBBHd8A0A(B BBBJ������`@������P������q@������ ��0��A�Gpn
AI�,��WA�M
�p��sA�����CgP,���wB�I�D �E
ABA(D�`��TF�D�A �EAB(p����RA�D�O g
DAH(����MF�A�G �{AB(���OF�D�A �@AB���>�<��dE�s
HX4(����^Q�G�G M
AABXF�K�,`����KG�D�D �mFBD���8����KF�B�A �A(�D@�
(D ABBD$����N�s
GlD�A�,����\M�A�G ID�A�] ��$���*A�<<���A�D�D D
AAAi
HANHAA|�H�C�����8��`��F�B�A �D(�DPm
(A ABBD(��yA�D�G0H
AAJ@�h�F�B�E �A(�A0�D@�
0D(A BBBE8P����B�M�D �A(�D0�
(D ABBJ`��h�gB�B�B �D(�D0�V
(A BBBEs
(A BBBF@
(D EBBK�t�C���$��� ,���2L�eH���AAD@d���A�A�D �
AAFH
AAFL
AAB$����d�L
HP�H��$�=A�
G8�D	�EF�B�A �A(�D0�
(A ABBIH,�X
��F�B�B �B(�A0�A8�GPR
8F0A(B BBBJ,x���B�E�A ��
ABI����EADL���F�E�B �E(�A0�A8�J�6
8A0A(B BBBB8���F�B�D �A(�D0�
(D ABBAP��TH
A`l�H��F�B�B �E(�A0�A8�D@�
8A0A(B BBBB_
8A0A(B BBBA$���,E�A�G YDA����"E�\���+Hb,���
@���fT�P�0E�jp�d�9E�s(����fF�A�A �ZAB����E�P$���)E�I�G QAA����$���YE�H
CD
AC8��1H h@P�4�1F�E�E �A(�D0�G@�
0A(A BBBG��0�_4��|�A�A�D Q
AAGw
AAGD�d��E�G�D �c
ABJ�
ABEM
FBF8(��E�G�J�O
AAI�
FACd��@E�i
BO4���[N�G�G [
J�A�FFAAH��4���gB�D�D �v
ABEWAB�0�$@L�E�A�G0C
AAFD
CAHQ
AAE(L��RA�C�G0Z
AAIx�����������dE�Q
J$� �QE�G X
CI_A�X�dd��E�H�D o
DAKD
AAJG
DALH
DAKT
ADG`
DAEx��%JZ<��B�M�E �D(�D0�GP^0D(A BBB�T�H�
A���7_$$�FE�D�G0sAA(L�@<X�F�E�B �A(�D0�D@`
0A(A BBBB���E�D0�X�.EAM �l� E��t�6������
��? ��N 4�E�D``
AFLX��F�B�B �B(�A0�A8�G�
8A0A(B BBBB��!�4H0k�"�4H0kH�<"�F�B�B �B(�A0�A8�G��
8A0A(B BBBK$�#�6H V
A(@�#�QE�D�G V
JAOl�#�ZH m
K(�,$�CE�D�G `
AAF�P$�$�\$�:E�I�D eAA$�t$�zE�A�D0jDAH�$�F�B�B �B(�A0�D8�D`�
8A0A(B BBBAd0%�x,%�eHL
E<��%�B�E�E �D(�A0�I
(G EBBF��%�H N,��%�iF�A�D �D0U AAB@8&�2F�B�B �A(�A0�D@
0D(A BBBA,`4'�E�C
I������
F�)��)��)��()��4)�.�P)�5|)�7H\
LF(�)�7Ha
GF0H�)�|F�A�D �D0p
 DABJ|*�DO�f
KC �8*�HN
JG
A��*�EAD��*�AAR��*��	h+�8E�$	�+�EAI@	�+�EAD\	�+�EHn
JD|	�+��	t,�
�	p,�<�	|,�E�A�D g
CJJU
FADYNCH�	�,��F�E�J �K(�D0�J8�GP�
8A0A(B BBBI4D
p.�O�H�A �H
ABA���0|
�0�F�D�A �I0i
 DABL0�
T1�VE�A�D U
FAJ^FA<�
�1��O�B�A �A(�G0�(A ABBJ����$ 2�-8<2�%HV(PT2�F�F�A ��ABH|�2�F�I�B �B(�A0�A8�D`�

8A0A(B BBBK0�L?�E�A�D y
AAKoGA(��?�E�F�D |
DAE(<A�+E�eDPA�X\A�oL�[t�A���A���A����A�bB�B�B �B(�A0�H8�G���F�I�H�E�A�U�:&
8D0A(B BBBA�S�P�B�C�B�N���H�E�A�D�F�m�$zRx��������,A��
H�
�B�E�B �B(�A0�A8�G��
8A0A(B BBBAL�
���	B�B�B �B(�A0�A8�G��
8A0A(B BBBFD0���F�B�K �A(�FPLXL`MXDPC
(A ABBD$x|��SE�D�F xFA����
����. �̴�HE�G0�
AA,����F�F�A �G@� AABlh���B�B�B �B(�A0�A8�G��
8A0A(B BBBF��Y�F�A�|�X�F�A�H���B�B�B �E(�D0�L8�G�g
8A0A(B BBBEL����cF�B�E �E(�A0�A8�J�
8A0A(B BBBE(��L<��@F�E�E �E(�A0�A8�J�H
8A0A(B BBBE����HH�L���B�E�B �E(�D0�C8�J�?
8A0A(B BBBH,�����E�C
D��E�K��
F$$���JE�C
G��V
K4L���B�A�A �T(J0S8B@CHCPI �@��&A�F�L L�P��dB�E�B �B(�A0�A8�G�W
8A0A(B BBBK,�p���A�F
P������
FL$ ��qF�E�B �E(�A0�A8�G�}
8F0A(B BBBI@tP��eB�B�B �D(�D0�G��
0A(A BBBB��|��	B�B�B �B(�A0�A8�D�k
8A0A(B BBBE
8A0A(B BBBE
8A0A(B BBBG,<��A�C
I�����
Blx��!HI O,����E�C
H����D��
F,����yE�C
B�J�����
B$�<��eHG C(B0LAT���A�D�D`�hHpCxD�I`D
AAGhMpCxD�N`D
AAA4h��DF�E�A �D(�I0W(G DBB���E�RT���uB�B�E �D(�D0�FPe
0A(A BBBD�
0A(A BBBJ(��,F�D�F �OFB@��$T��\HxE C(B0LA<|H��H G(J0C8E@N D
E_(J0C8E@I D
A$����H0g8E@CHEPbB0 �����E�C
�
FH<���B�L�E �E(�K0�D8�Dp�
8A0A(B BBBG T��
B�A�A �D@x���'EAD���EADL���|F�B�E �B(�A0�D8�J�T
8A0A(B BBBDH�B�E�E �I(�G0�A8�J��
8A0A(B BBBBLH�	L`D�]F�E�E �B(�A0�A8�J�
8A0A(B BBBD�T�	�P�,�\�mA�C
B�G��J��f
CX�
�9F�B�B �A(�C0�G��
0A(A BBBEZ
0A(A BBBA(d��^E�A�D A
DAA���gA�J ZAP��F�C�A �N@q
 AABC�
 AABK[
 AABA 0�fE�G Q
AB4(|��A�J��
AEw
DE^
AIH`��F�B�B �B(�A0�A8�G��
8A0A(B BBBG������G���)���,��',4�A�F
B�I���D��
H@��T��0h��F�B�B �B(�A0�A8�G�|��MF�B�B �B(�A0�A8�D�G
8A0A(B BBBE�
8A0A(B BBBH�
8A0A(B BBBIL�#�7F�B�B �B(�A0�A8�J�T
8A0A(B BBBJl�)�
L��)�yB�B�B �E(�A0�D8�G��
8D0A(B BBBEH��/�SF�E�G �E(�D0�C8�DPo
8D0A(B BBBB3�cK0g
FP
A0<X3�lE�D�G0x
AAFYAA@p�3�B�B�E �A(�A0�GPS
0A(A BBBC�P5�	�L5�E�O8�P5�F�B�A �D(�D@D
(D ABBA` �5�BF�B�E �B(�D0�C8�G@O
8A0A(B BBBJL
8G0D(G EBBI8��6�HF�B�A �A(�D@
(A ABBF8��8�lF�B�A �D(�D@D
(D ABBA4��8�nF�E�G �A(�D0K(F ABBd49�JB�B�B �B(�A0�A8�D�+
8A0A(B BBBE�
8A0A(B BBBA(��:�2F�D�F �^AB(��:�/F�D�F �[AB�;�7E�X
CV ;�?L�X
DV4@;�7E�X
CVT`;�4E�X
CSt�;�<L�X
DS(��;�E�T�D �AA`�>�B�H�E �B(�A0�A8�Gp�
8A0A(B BBBA�
8A0A(B BBBGD$ PA�F�B�E �E(�A0�D8�D@Y8D0A(B BBBDl �A�F�B�E �E(�A0�D8�D@V8D0A(B BBB0� �A�lA�L�G0p
AAJYAA� B�
� B�E�nH!|D�F�B�B �B(�A0�A8�D`
8D0A(B BBBHHd!�E��F�B�B �B(�A0�A8�D`�
8A0A(B BBBA0�!�G�XF�D�A �G0q
 DABA8�!�G�pF�H�B �D(�A0�S(A BBBX "�G��F�B�B �D(�D0�G@�
0A(D BBBKZ
0A(D BBBK|"xK�(�"tK�<E�D�G \
FAA�"�K�8�"�K�B�M�A �A(�M�K
(A ABBAL#�K�F�G�B �B(�I0�N8�G�(
8A0A(B BBBG`#4P�Dt#@P�F�G�J �B(�A0�K8�D@�8K0H(B BBB,�#Q�~F�A�A �G0j AAB�#hQ�$HW $�Q�HWi UC($R� HP\@$$R��F�B�B �B(�A0�A8�D@�
8A0A(B BBBHL8G0E(E EDB�$�R�$�$�R�E�A�D qFA�$S�+H\l�$ S��F�B�B �B(�A0�A8�J�0�K�M�A���L�O�A��
8A0A(B BBBId%�Y�
x%�Y�L�%�Y��E�E�B �A(�A0�Z
(C EBBL�
(A BBBH�%XZ�6�%�Z�/&�Z�&�Z�3,&�Z�(@&�Z�DF�A�A �tCBl&�Z� E�V(�&�Z�nF�A�D �[AB�&0[�
�&,[�*E�](�&@[�IF�D�A �zAB('d[�BF�I�I �fAB<'�[�CuP'�[�Cu$d'\�>E�A�G iAAH�'\��F�H�A �H(�G@A
(M FBBJI(M FBB4�'�\�sF�M�D �i
ABM[AB(]�LD y
CH(0(4]�F�I�D �nAB4\(�]�F�J�A �D(�K0x(D ABB�(^�p$�(l^�`A�[
D\
D_�(�^� HPL�(�^��B�B�A �D(�D0�
(D ABBD�
(D ABBG8),`�	L)(`�`)$`� HPx),`�[Hp
HL
AH�)l`��B�B�B �B(�A0�A8�DP�
8A0A(B BBBK�)�`�RD0M�)8a�RD0M`*�a�B�B�L �B(�D0�D8�M�l
8A0A(B BBBCy
8A0A(B BBBE4x*,c�ZB�D�K �i
CENAFB�*Tc�&�*pc�)�*�c�SHd
LL
A�*�c�.V+�c�WA�M
(+,d�C<+hd�P+dd�BH0yh+�d�)E�N
EP�+�d��+�d�'E�N
EN$�+�d�ME�R�N@eAA$�+�d�ME�R�N@eAA,e�TH@K$,Pe�OH0F<,�e�EH0|T,�e�h,�e�|,�e��,�e�E��
UL�,�h�F�D�B �B(�A0�A8�G��
8A0A(B BBBA-�j�&HV-�j�)HY0-�j�)HYH-�j�)HY`-�j�	Ht-�j�F�E�E �B(�D0�C8�DP�
8C0A(B BBBE�-Tk�	�-Pk�	�-Lk�	�-Hk�	.Dk�	$$.@k�E�l
OH
HFL.�k�OHx
HFl.�k�	4�.�k�hF�A�A �v
UFGDAB8�.l�F�A�D �a
DKEd
ABA�.�l�
/�l�&HW  /�l�jA�L�WA8D/�l�B�E�D �H(�D0q
(A ABBB�/dm�UH i
G\(�/�m�E�A�D0�
DAGL�/(n�MF�B�B �E(�D0�D8�D�
8A0A(B BBBH(0(p�qF�D�G XAAE�� H0|p�9J�Z
�LAG�l0�p�AAK8�0�p�`B�E�D �D(�F0l
(A ABBA$�0�p�FA�A�R oAAH�0�p�TB�B�B �B(�A0�A8�G��
8A0A(B BBBH81�q�WA�M
T1@r�AA�m
BP t1pr�jA�j
Ej
F<�1�r�F�E�B �A(�A0�x
(A BBBB�1�x�_y aH�1�x��B�B�B �B(�A0�D8�D@r
8A0A(B BBBC(<2Xz�TA�G�G N
MMEh2�z�$E�^�2�z�hE�b�2�z�$E�^(�2{�6F�D�C �^DB$�2{�KE�F�D yAA43D{�BF�E�D �C(�G0P(O ABB$H3\{�FE�A�D yAA(p3�{�pE�K�D w
FAF0�3�{�{E�H�G o
IAKZDA�3|�E�T�3|�dE�V
EC$4h|�oE�D�G ZCA44�|�QH4�|�XE�z
Ad4@}�a(x4�}�aE�K�D o
FAF0�4�}�{E�H�G o
IAKZDA�4,~�d�4�~�5�~�L5�~�KF�B�B �B(�A0�A8�I�f
8A0A(B BBBId5���!\x5����5���PHE
K�5̃�%`�5��0J�J
LJ�5���%`�5��Q�M6��%` 64��.E�^
EA@6D��%`T6`��H�Qp6d��%`�6���7E�]
NF�6���%`�6���	�6���%`|�6Ԅ��F�I�A �A(�D0�
(G DEKFy
(G DDIOz
(G GIDKW
(K DDBLb(C ABB`7D��EHV
A|7x��%`�7���BHS
A�7Ȇ�%`�7��EHV
A8�7��F�E�D �C(�D0]
(D ABBD8l��?E��
I88���cL8��H`8���KF�B�B �B(�A0�A8�G��
8A0A(B BBBD�8����8���k�8��#�8��'�8(��*9D��$9P��89\��L9X��`9d��"DO
A8|9x��B�E�D �A(�D�J
(A ABBH$�9���A�C
B�K��
I�9��� DM
A�9���)A�Y
A:���
,:��� DM
A0H:���LA�E�J Z
DAIMDA|:؎� DM
A�:܎� DM
A(�:��fB�D�H �}
DBO$�:$��`A�L {
AGNA;\�� DM
A($;`��?B�D�D �c
ABAP;t��,Hch;���'HX4�;���F�K�C �c
ABFEAB�;���/E�e4�;��E�A�J �
DAAD
FAA<���+Hb$<��E�Y@<��"HTX<,��+E�et<@��)HZ�<X��:Hd
DI�<x��.He�<���%HW�<���)A�Y
A�<���&E�\=Б�HQ,,=ؑ�N�A�I V
FAK`��(\=X��eF�A�A �YAB4�=���sF�B�D �A(�D0X(D ABB(�=��IA�C�K k
AAA�=��5A�l
A$>,��IE�D�D vDA$0>T��BE�N�D hAAX>|��	l>x��E�V8�>|��B�B�A �D(�G0T
(A ABBF�>��	�>ܓ�	(�>ؓ�gE�D�D0F
AAK(?��mE�D�D0Z
AAG$D?`��=E�A�D mDA,l?x��dF�A�A �E
DBE$�?���5E�D�D [GA �?�Ht
L_
I^0�?L��jA�D�G0g
CAIeCA(@���XA�C�D S
AAC8H@���B�A�A �]
ABD\
ABI8�@0��B�D�A �m
ABIU
ABH�@���KE�j
A�@��KE�p
E(�@��A�D�G@U
AAE$A���sD0r
Jn4DA��UA�A�D`�
AAFE
FAD|A(��-E�g,�A<��dF�D�F �D0K AAB$�A|��+A�D�K QDA �A���A�MP'
AJB��;c (B��N�t
Fx�LBț��E�s
HhB|��QG�{��B���WA�M
�B��AA�(�B<��E�D�D i
DAA�B����B̝�<Cȝ�D�H�O �D(�N0�C
(A BBBILC8��A�p
O(hC���A�A�D`�
AAA �C���L�\
HH
HT�C��R�B�E �A(�I0�D
�(G� G�B�B�GZ�(A� B�B�B�LDt��@F�E�A �A(�I@�
(A ABBD\
(F ABBA`Dd��8tDp��F�E�G �D(�D0M
(D ABBA|�D��W�B�B �A(�D0�D@j
0A(A BBBJ�0A(A BBBD�����H@�����K
0A(A BBBA0E��/HDE��]B�B�E �E(�D0�A8�DP�
8D0A(B BBBH�E$��(�E0��cA�D�D0I
AAA$�Et��SE�N�D0yAAL�E���B�B�B �B(�A0�A8�D�
8A0A(B BBBDHF��E�N(dF ��AE�D�G �
IAJ�FD��HA�F(�Fx��_E�A�G |
HAF�F���[�F���aE�WLGL���F�A�A �D@Z
 AABF�
 AABDa AABXGܪ�(lGت�E�D�G0K
AAC�G\��-�Gx��	�Gt��AE�w�G���	�G���	H���	H���	,H���@H���(TH���QE�D�D p
AAA�Hī�$�HЫ�3E�D�G SJA�H��HN�H��,H^�H��7H_
IFI(�� I$�� E�Z<I(��PI4��@H whI\��NE�S tA�I���QE��IԬ��I��4�I��M�A�A �h
ABFACBJD��E�W<JH��wE�D�D t
DAJN
DAEIDA\J���2E�T
AxJ���L�J���B�B�B �B(�A0�A8�G��
8A0A(B BBBI�J(��	�J$��K0��	0K,��mE�G v
FHI
AFKALKh��6E�G hA\lK����F�B�D �D(�G@i
(D ABBGZ
(D ABBEK
(D ABBD$�K��,E�D�J IJA�K ��4LLL��B�B�B �B(�A0�A8�G�D
8A0A(B BBBAXL���HE�B0tL��B�A�A �G0
 AABEL�LL��B�E�I �E(�A0�A8�G��
8A0A(B BBBA�L���<M��B�B�E �D(�E0��
(A BBBILMx��`M���tM����M���HN@�M���B�E�B �D(�A0�D`�
0A(A BBBD�M���M��$KNN$��*Ha<(N<��F�A�A �G0E
 FABC� CABhN���\|Nx���B�E�E �E(�D0�D8�K@�
8F0A(B BBBJD8C0A(B BBB$�N��tB�D�Q0YABHO`��9F�B�B �E(�D0�A8�DP�
8D0A(B BBBAHPOT��B�B�B �E(�A0�D8�Dp
8D0A(B BBBA�O����O���L�O���F�B�B �B(�A0�A8�G��
8A0A(B BBBHP ��5H_
ID44P@��WF�H�A �D��
 AABD8lPh��F�E�G �A(�D0z
(F ABBDL�P���F�B�B �B(�A0�A8�G��
8A0A(B BBBB�P,��BL�]
GMQ\��E�Q4Q`��HNHLQh��KF�B�B �B(�A0�A8�G��
8A0A(B BBBD�Ql��8HW
A�Q���,E�f(�Q���WF�D�D �uMB�Q���&E�`R���1$,R��LE�H�F vAATR@��8hRl��>(|R���XH�D�G �uFE(�R���[F�D�D �yMB8�R��F�E�E �D(�D0�\(A BBBLSD��"F�H�E �B(�D0�D8�G�d
8A0A(B BBBFd`S$��$F�B�B �E(�D0�C8�D��
8A0A(B BBBDY
8A0A(B BBBE�S���AD]
A�S ���S��HPT$��&E�M
FIH0T4��F�K�B �J(�A0�A8�DP/
8C0A(B BBBB|T���mgk
A�T����T���%�T��%HV�T��(�T��E�A�G0{
DAKU���2E�P [A(8U���/F�D�D �SGBdU���>E�\
E�U���E�R�U���6E�pD�U���F�H�A ��
ABGQ
CBBA
FBAV���0E�[V���8E�c8V���(LV���1F�D�D �XDBxV��(�V��4F�D�D �[DBH�V,��F�N�A �A(�D0h
(A ABBHD(A ABBW���!HUW���H0W����I�E�B �A(�A0��
(A BBBEI(C IEB|W8��2He�W`���W\��+�Wx��%4�W���qF�E�D �A(�D0R(A ABB0X����F�A�A �D0�
 AABA<Xx��7PX���cJ�SC�lX���8�X��B�E�G �A(�DP�
(A ABBD�XX���A�J
C��$�X(���N�x
�Jh�A�Y���1J�]�  Y���N�j
HI�DYp��1J�\�(`Y���A�A�D f
AAA(�Y���B�D�D ��AB�Y���E�L�Y���6Dq�Y���A�C
0Zl��F�B�B �B(�A0�A8�D�d<ZX��B�B�B �B(�A0�A8�D�
8A0A(B BBBA�
8A0A(B BBBA�Z��?H `
HN�Z ��FHj
A<�ZT��lB�I�B �D(�A0��
(A BBBH [���E�N�X<[h�F�B�L �A(�F0�D@
0A(A BBBB
0G(A BBBN�[���[��%HV(�[��SE�G�D0Z
DAI�[�.E�a\(�AL�T
HX,\X�	X@\T�F�B�E �A(�J0�D@�
0A(A BBBG�
0G(A BBBNd�\�
�!F�B�B �E(�A0�J8�DP+
8A0A(B BBBE$
8G0A(B BBBL]`�X]l��F�E�B �A(�C0�D@
0A(A BBBKD
0G(A BBBNt]�	�]��<Hs�]$��E���]��OH�
J�]�cHV�]`�^X�N ^��&4^��@H^��F�B�B �A(�A0�DpU
0A(A BBBC\�^��mF�H�B �B(�D0�D8�DP�
8C0A(B BBBFs8D0D(B BBBd�^��#F�N�B �B(�A0�D8�G��
8A0A(B BBBG�
8C0A(B BBBALT_`�r
F�H�H �B(�D0�A8�I��
8C0A(B BBBA�_�$���_l%��_x%�h�_�%��_�%�`�%�C`(&�^0`t&�qD`�'�5\`(�p`(�s�`p(��`|(�0Hc\�`�(�N�B�B �B(�A0�A8�DP8A0A(B BBBE������HP������$a@*�lE�G�	�
AJ$<a�+�E�n
E]
Ada,�v|ax,�&H ]�a�,�0HgL�a�,��F�B�B �B(�A0�A8�G��
8A0A(B BBBEH�aHA�B�B�B �B(�A0�A8�D`h
8A0A(B BBBHtHbC�	B�D�B �B(�A0�A8�G�
8A0A(B BBBE��D�H�D�R���D�H�D�R�0�bdL�\A�C
B�E�E�E�D��
C,�b�N�eE�F
B�O�����
J$c�R�(D\<c�R�E��\chS�tc`S�=HZ
FP�c�S�GNU�����F��0 �	�������������P�p�������������������������������������`
<~"
p��p���v��P�0������������40$/�#�p�0'�0��3�#<� N@#V�"��"�-�".`"x0��������`
 ��P�p�@b	�v	�/��	��	��	nC@�
p�
��
wC�
@�
��
�����������������k@
Ma!!:�o_		o�Ι&&:a##�`  |�

+�+@a""��*`�(�k@�m���$$�6I͘��Ù%%���oVU�
'��CV	l@Z����00��11ǔ22O�//�p,,�=_..Dp--��������)���
�$
��
�$
��0$
���
 
0�ė%�ӗޗ�����#�2�A�M�X�g�t�����������Řјߘ������-�>�P�_�m�{�����������ƙҙޙ�����*�:�H�T�d�t�����������������Ś֚̚�����
���(�-�3�8�>�C�H�M�R�W�\�a�f�l�q�w�|���������������������śɛћ՛ڛ�������+�9�F�S�`�l�t������������������������������Üǜ˜לۜߜ����������������)�3�<�@� �-�I�W�7�[�_�l�q�|�����������������˝՝ߝ����R�����
������"�&�0�>�:�I�M�W�d�dg�_�u�~���������������������������ĞȞ̞ОԞٞݞ�����	����&�/�5�o��;�C�L�T�[�g�s�o������������������şɟ͟؟5��������������!�'�2�;�C�#��	�N�V�T�k�{����^�j�q�z�������������àǠˠϠӠ��ߠ�}�����"�و*�/�9�y�=�3�K�U�`�k�v�|���������������šѡ������
����"�-���4�>�I�T�a�k�r�y�����e�����������������-�-P*`�����p������6�����������6�\������0@�l�
�
8��p�
�
8
�
�`��
@��� H��e
�������	��$�Q�
���#(�1-27>C�
�IM�����@�p������0�`� p���������8P����E@P���������K�
PpP�P��@���QKQK�z�TKTK�
�
�
�
D�D�����cKz�*cKz����z�cK���cKz�z�����z�����z�z�z�WKz�QKz�[K�_cK�_�_�_��z�+_+_+_]���7_K�_�_�_�_�_�_��_�_�_�_�_�_�_bKbK�_�_�_�_�_cK�_�������������aJ�-eKnKyK�K�K�K�K�K�K�K�K�KL	LL$L,L6LDLMLVL_LhLtL�L�L�L��L��L�L�L�L�L�L��L�L��L�o�L�LMM$M*M0M5M>MKMZMiMnM�M�M�M�M�M�M�M�M�M�M�M�M�M�M�MNNN"N.N7N?NPNaNuN|N�N�N�N�N�N�N6n���`�a��QKQK�z�TKTK�
�
�
�
D�D�����cKz�*cKz����z�cK���cKz�z�����z�����z�z�z�WKz�QKz�[K�_cK�_�_�_��z�+_+_+_]���7_K�_�_�_�_�_�_��_�_�_�_�_�_�_bKbK�_�_�_�_�_cK�_�������������aJ�-eKnKyK�K�K�K�K�K�K�K�K�KL	LL$L,L6LDLMLVL_LhLtL�L�L�L��L��L�L�L�L�L�L��L�L��L�o�L�LMM$M*M0M5M>MKMZMiMnM�M�M�M�M�M�M�M�M�M�M�M�M�M�M�MNNN"N.N7N?NPNaNuN|N�N�N�N�N�N�N`����@��������8������P� ����h�8���ȗ�x�w�v(v�u0u�t�t�tHtt�s�s�sXss�r�q�m�ll�k`on�o0k�i`����`�����@�`���x�p�@�� �P�������H�p�~�}�|�{�zpz�y�y�x�xPx����H��Б��x��p0�P6l���p�����������I�����p�)�0���������`�˅�ж�� �������������������e d@_��`dPc_�!@�!�!��! �! �!@x!`e!�`! `!�L!PL!�8!�$!�$!�$!�!� ��!`� �� `� P� �� ��  � @�  � �� @� � `�  �  � ��  �!@� �� �`!@� �� @� � �� �} `{ �t  t  s q �k `k Pk @k k �f @�!@x!�L!�b  X �E 3    `
 
  ���`����@��� ������@������������`��`���@���`���� ����`��������h�P� ����@� ���p�`�P�@�`�0� �������`�0���������p�@� ���І��P�0�����Ѕ������p�P�0��������P�0����Ѓ����p�X�@� �����������`�P�0���Ё����`�8�����`�@�(�������p`P0�~�~�~ `!�~p~�}`}�| z�u�uPL!p�ok j`i i�h�g�g�gpgg�f@f@ee�d�d�bpb@b@a�N`E�;�1&`��`���@�������@���o�$!�o�o�o�oxohoXoHo8o(ooo�n�n�n�n�n�n�n�nxnhnXnHn8n(nnn�m�m�m�m�m�m�m�mxmhmXmHm8m(mmm�l�l�l�l�l�l�l�lxlhlXlHl8l(ll��l�k�k�k�k�k�k�k�kxkhkXkHk8k(kkk�j�j�j�j�j�j�j�jxj��hjXjHj8j(jjj�i�i�i�i�i�i�i�ixihiXiHi8i(iii�h�h�h�h�h�h�h�h�xhhhXhHh8h(hhh�g�g�g�g�g�g�g�gxghgXgHg8g(ggg�f�f�f�f�f�f�f�fxfhfXfHf8f(fff�e�e�e�e�e�e�e�exeheXeHe8e@��(eee�d�d�dp�d�d�dP��d�dX��xdhdXdHd8d(ddd�c�c�c�c�c�c�c�cxchcXcHc8c(ccc�b�b�b�b�b�b�b�bxbhbXbHb8b(bbb�a�a�a�a�a�a�a�axahaXaHa8a(aaa�`�`�`�`�`�``_���3$ w"�v"���3 w"�v"���3 w"�v"������@��k	�=p_��R3��5��s�p������@� ��p�qn�n�n�n�n�n�n@{
t�p�Fx�F���o`���-
o�F�tXpO�	���oN���o�op@���oR��Fp{�{�{�{�{�{�{�{�{|| |0|@|P|`|p|�|�|�|�|�|�|�|�|}} }0}@}P}`}p}�}�}�}�}�}�}�}�}~~ ~0~@~P~`~p~�~�~�~�~�~�~�~�~ 0@P`p���������� �0�@�P�`�p�����������Ѐ���� �0�@�P�`�p�����������Ё���� �0�@�P�`�p�����������Ђ���� �0�@�P�`�p�����������Ѓ���� �0�@�P�`�p�����������Є���� �0�@�P�`�p�����������Ѕ���� �0�@�P�`�p�����������І���� �0�@�P�`�p�����������Ї���� �0�@�P�`�p�����������Ј���� �0�@�P�`�p�����������Љ���� �0�@�P�`�p�����������Њ���� �0�@�P�`�p�����������Ћ���� �0�@�P�`�p�����������Ќ���� �0�@�P�`�p�����������Ѝ���� �0�@�P�`�p�����������Ў���� �0�@�P�`�p�����������Џ���� �0�@�P�`�p�����������А���� �0�@�P�`�p�����������Б���� �0�@�P�`�p�����������В���� �0�@�P�`�p�����������Г���� �0�@�P�`�p�����������Д���� �0�@�P�`�p�����������Е���� �0�@�P�`�p�����������Ж���� �0�@�P�`�p�����������З���� �0�@�P�`�p�����������И���� �0�@�P�`�p�����������Й���� �0�@�P�`�p�����������К���� �0�@�P�`�p�����������Л���� �0�@�P�`�p�����������М���� �0�@�P�`�p�����������Н���� �0�@�P�`�p�����������О���� �0�@�P�`�p�����������П���� �0�@�P�`�p�����������Р���� �0�@�P�`�p�����������С���� �0�@�P�`�p�����������Т���� �0�@�P�`�p�����������У���� �0�@�P�`�p�����������Ф���� �0�@�P�`�p�����������Х���� �0�@�P�`�p�����������Ц���� �0�@�P�`�p�����������Ч���� �0�@�P�`�p�����������Ш���� �0�@�P�`�p�����������Щ���� �0�@�P�`�p�����������Ъ���� �0�@�P�`�p�����������Ы���� �0�@�P�`�p�����������Ь���� �0�@�P�`�p�����������Э���� �0�@�P�`�p�����������Ю���� �0�@�P�`�p�����������Я���� �0�@�P�`�p�����������а���� �0�@�P�`�p�����������б���� �0�@�P�`�p�����������в���� �0�@�P�`�p�����������г���� �0�@�P�`�p�����������д���� �0�@�P�`�p�����������е���� �0�@�P�`�p�����������ж���� �0�@�P�`�p�����������з���� �0�@�P�`�p�����������и���� �0�@�P�`�p�����������й���� �0�@�P�`�p�����������к���� �0�@�P�`�p�����������л���� �0�@�P�`�p�����������м���� �0�@�P�`�p�����������н���� �0�@�P�`�p�����������о���� �0�@�P�`�p�����������п���� �0�@�P�`�p���������������� �0�@�P�`�p���������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�`�p������������������� �0�@�P�����'������?@ffffff�?333333�?�F��������������������@��-�G�����������������GA$3a1@{��GA$3p1067Pr�GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA*P�GA*GOW*�GA$3p1067@]�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA*`�r�GA*GOW*
GA*FORTIFY@r�GA+GLIBCXX_ASSERTIONS
GA*FORTIFY m]�GA+GLIBCXX_ASSERTIONSlibruby.so.2.2.0-2.2.10-35.el8.x86_64.debug����7zXZ�ִF!t/���6]?�E�h=��ڊ�2N�aAk�(�H�s*��Q�
�J :\���{��WhyѐJ�\N�Ȣs����zsa:_�Ӫ�e�����IR('d�$��;-�0���N^r���6%!�v3�����ˋ/4����y[�R
���̇�B�e����}�f���5��{�!!�qخDB�cz��-�
P��`��%�]�ۅ�y�&D��ܿ��֨��V��������u���� �H�YQ��uxFQ�7:��
�z��7��įfp����|�csZ��`.7&�^x��C>J+��ڛ�0�����i~ؙbJ'����C����x��:�E��gۀx����"B�}��)�r�ʉXvHNI�I��n��r��!S+��-[I3Q�ayյ�q�y�(�^�6��^�l��UG��	y��xp��Cڗ��(Gt���l'�*FEݯ���<�fg���q�4���&XP�	1�n,����U��'˩��jƦG��#��3f0�O5㣘�8�+;.|��R�
�b�ɺ�;X�

4���ܒ��c5�g��e�~;W��U�?�D��P�e�B�s�����F{�ws��$�Z@��߁�o�V�0��K'[Ε��K����|��{�kUN�ݨ$ƦjpZ��M��':�*^�*9r;�ǣ�aU=Y��� �04��]ƛ>
^�V�����&��v�b.��~eJr�ó,@e�⺮��Zp��<p�
>�[~b�68b�x�Rf�vK�X#�@_qj��+�	�ӏ�t�I4	*&l���ɒ������Au��e0�@Ax���Ko�EU�Z�GH�·��l���~��uz��|*7�q-��K�̮��O��5��X�*Bx��~w)r�S�)D�*�t��8���5�?�u��g���*�ư,K銼���*7��qm�ff\��yI�fk�&�{�@����!E��̞�\z-��hw��z�5Ě�ě8�׻1��1��U��sui �e�L��)ʫ�������m�͌4�lX�6|���͍�1AH|�~5M�g��;��F�pL����@�T��m��d�E��8a�Gk��C)�����nV��8��8o7�b���1�����p<��%g���4�<��P �	\% *�!��R��i�ʈD�m9i�;5��Ce)� �
���
g�i����t�51�o�U�7>�AP=���'�����F���n�9�)5S�f<��D���e$��mt�툪q2��,�ka1 ��)�"w�>둦����!��&��mͷ��_�ɬ%V�H;�4�/}9p��VXX �ܨ_Q�
�l`ܣ�kӷ�&+�N��������E�\���.���sC(��Ta,ۛQ���ʀ�o�GH$/\��M�|fS-Hz{WM�9e��pH�eQܙ��!��sA�L�;NE��2ݠ�Ы�f)y���1�k*iSmg���{^�:��#�����O�D#9�s<�|�O��X�!癠pO�l� I.�#�q�u亮�v�\N}�K�=l��/�N�3j�����I�(���=N1���C�X�>����1��h�\]`l}nvC�ɭ����p�T�3j���f�k.��3F�4��M���sp��e��l��ը�|�QD���|��1������,=�����x-�<��;�T�L;�9���
�Ұ�GS%��Ư���a�/��q��3�6>�e
gh���i���GN��Cn�b_��wi��tۨNć���[o��i��{c��z�Dxk�0�n�avǹe*=� 3f�=�Cr�B_ӯ�+�B-)�4N�zb�k9n������.��T�jH�g�
I���M:*€kf���Y��������͏��;X��Zn���/�����;��^xc����33���E�+=O�\�F�j�v�x̩9Æ�
�:vj�_Z�G�$���g�ѵ(�i�ӜW�,і���ġ����\�a���X�����Q]���L�7���_IDž�L�`�J�}6��{Í���@eo�u�4Loʗ%���U�޻�G��s�n{.�z9a�t�3T�h�Å��d`#��b�����p>��+Y���OH��)��;W����苳����v�X��-��!���
�l��"�jiJ����k�KU�1iK���~���q3�p|p�����w��N��3�	��H����b�v��7�g�w�s�:�|�<!�UuI;��F�{��Ƃ�c�~l[�!j���x��7k�ߒ��h�H|a)-�+vr|�K��h	��o��,�`\%��=I��pvݴ\ҭ�i�}Bk���_�q���`��q"��h���8�����eo��ZV�:CI��{>*� �!�?%���W�Υ�j�6���-C�y�?��s��6���4�$I�[�c�(�`�O������Uo�V���$��%Ȕ5��ݟ�m���#?��#�y���Hp�n(�uV��
=!~����͗��rI�4�‚"Y���k�IK��(=	�W���"�z��~��Gτ��s�s�\�1�N��{��"S����'�ی��������T�(g%v�>y�oQzح5�����S����ln����n���2�F�,�<_%p����V�ݳ�����i�	s<�X+�n:21�v\*���R��˲qZ�+�Dk�eR���^�����(�2�m3��F��2{?}�A�(�����@��0z��{�\Jd����x�n�8�uR
%(�$7,}?�&��|.�e�1�({ݑ0\L5X@#��p��LQ��Q��!͑�=#�[+M�g#��ޕ��l�y%˂Q���iV�X����U�e�y�

X%�k+����h��T��M��V%��}ȓ�B���Rl��hm1���J�2S������7��&�����&�s	q����\�U�(/�����V9��P'��Y�1�Ʃ<wkM0Up��%qn��9�pҺʙ�Jl��aP{6#�?'�R�`�b氌�}o#VS,����{r�pMu*����اhhY����m�mC@h�j��U�Ɯ��t���X���[^��}d�T�G|o��9��X�I#9lB��1ȏ���0K�Q?
an�V�*�xk�
�q;q����"D�Л�Γ%b��	�������is� �b�U8<
��1��/�;��mx|7���r7��WeO�~�ԟ�j�g}�G��Y"�fޗF1
s��>!��c�¾y6�$d p������Q=	�O�T�>���&J��F����a+���Ȕ�.�nS"MM�J�ɉwW�lO�-/�Y�W�ӳ"G�]�:.�9��wIƗ
�r)1��+�����x��;��bZn�r��
����gԠ��Mh�`-a�O��7��2�.��$�Y�֛�v��q,�o�B�
SS��<�Ǵ��R
�H��Up�]A�D��	��0h�s���4�y���QC�Z�U{k-�D=�����:���QHƾ�z�/-�,d2>�`��=WW���|?�r~�ߋ�Y{k�0���a����{O��`%�Q��݆�לvi^����x�V"$ֆ�F�(�R�W��\��֚�`�L,��|��m
����%5W��	rh����FO��fu���
�:���<[h�E�|Rr��8�b�;YX!c��]2ﳓ�7[�/^r�W�B�.�u�ʉ\��m�SX����L|��Fŝ����6�e��oQC::�=��$^�H%�"��8^gHL�K�\��,�j$�H�8��Ĭ��1�iF�{7rw-pd^�S�ۼ��~��*S����U���S��׷���naDT���S��XS�����o3z�\M�>S��á8e��{w� ��9��Ӱ�-�^����Q)�*&u��C��O��KLx��>�gs��"NqVv�u[�}9������Q!PD��q#��I52�a`,ܥ�)��%�M]��̞��uWT������pU�+r��[%��Q_��b��K@�c�:�[�%�B[���l���lE��A�V}���e��@J�4�}���[.����+B��ud���~\��]^�@kC"l�g��YX��
}eluL��t����{%�ֆ�~���^���xy��4C�HLœ{s'�e��,.Mϴ�Xr�L�k^�AmbrޑO��]�Df�S�q��:��P4�:u��HO{��Eqoz#�Dٗ�9�ֈ[9�S�(C<x#!�k��Y;웜����iço8���"�f�%�U�8����lF��y�b.�)L�S�A�kwE���O��p�q,2ٖơ����44�
�?$Z�߮r����ҵ�"�c�+�'��l��Ua�Nv��NW�L}���\���I�:�r4�
���\�����MI([��R�rV`0yy
&ّ5M��0����C�~�a8����3��Ʌ JJ5���oG&�g�s}�EIj����5j���be{�
;�5a�yv]�z�5�\}��X*�0�=��P��#��e:	P9Z��+#��`�,h�P���?,:?�R�׃�a����y����v����n!������
85��o��GW��Pb����հ��,#��L>�G���}�+Po�����3���-i�芕 ���/�R������l�J�2������k�;WYy��ëb��`O�mhm�A\U:���yJ���	��,�2���x��h[5ߡ���>�G��>�gJv�.��#羔u�D��5C�;��-���զyJ�3N2����C�6�,%�K�<��%�@`״�5�Y!8!~�.V�"��tӻ�}#�|O����ѥ�瘋JB�'bEYkTq�@�j%��X|fqd;v1�L݇	��0�nƲ�)7٥�\,q��讨SF��h���b.b����a>�U���9���(I������'ӎ�t�X><�ږ0�)a�ʱ�xL.=��=+XN��ڡ�v�'~B��AB1�}��̑�u�]�",�ۉ\�3l��4!���mPGF[����H�	��)�S�ܞl)���1��TD84�� �j�	_�^d��v��R�ώ;��mt�~�l-��E�)0b=���Ύ*�I�[=����	��s�V.�q�)!`!�ȿu���m��p�Wԗ�NC����Y<���_��x���D��,S{q���^�"b���Woe���g�@���K_<k�@҆�,�fJ=�%�H쾃�J�bĤ�h.]WM߲���'���*�mt�����H��2%��-6�{^O�Ÿ]��A���i�ck͹wP��ϖ�D���\:>�B�&��$�ک2�ahN��6���!n�����3o�D��(��c�������Z�����`�H[ܨi��G{�$�Gʋ]��IM�O]��G��V���
-`�]ߖ��T�rNV�'���0:T����q�{(��!6���0排h�Ψ08�xQ�?����ʷ��Y����!��:_~w��>��c���df��l��D�3�dA���Y�$�E�{��~.Z&Csp�0�_��o��S6R۪ڼe��`�(ZSс1%��fF�l�>�,���l���xCqB��I$'z�E�tɅ�[?���+dz({RhV9j.Y�L�۟�]Kv�P�m���RD�}sJ��r%���-���G��@X�7mi9…�����DL_��:9�U)�j���������%=0R1f�s.��Ur�J8�
\�
�7M���1����A�xJ�66��&���"�Qs��ii1���4E�,zC��;A\��zt�O�JdJ<?&qs��ˊ�`&��`mǃZc�����a�~��6���?g��Rh3F%����8�ys��+Na��c�FKr���_uzK��;���X<{<��p��Z�P&A�u����	���T@�K����A$���R>�9@���E!�wU=�*٨����q`��nx�w�)�,>1y�%�U����#djx��6W��pΑg��"�v&�l��m�7��ҧ˓p)-!q��qmv�-NG��q9OS��i��_E�����b%Ā�<����U��Q�����?�|^�O'�Nc܀)�k��H����Ioᠺ2}����!���o90`8�F��c�W�}TLJ�앂<�;ߢ��:2��ȕ@$���[�A�!a^[�~��9�h�-C5?OP����������{eJ���3@ɷ���"�/��?
d��v�%�P7k�D��l6aN�1���_�����t���"B��u�I�I��j������֚f��O�Y8���fN����%��?�u���)�Ի��1%��瀸:`�^ThE~��<��uƱƢ��=�k2#��v���U�Y�8�JL��1B]h�W�v��G3��sc�w��^�[���d̲1{a2�/���#�3��{&Ȱ�����XhjoD�ukwQ�v$;yѫ/���A��O]���U�~A��ӓ��"���p��B�Ʈ�p!�wܫ,\$k��c�+PL�1鉹DO�\���>�h���4��؎x��G�����(
D��a�Ok���h��H�0�s��O
1��Z�᝝��
��C��3���z4���^�������(�b.��ȣ��T��Um]���<�4 <a{�:��G!v.��(y>��O�볳�j�۵�fL	��G�R���AK���n�F�e
բ hN�}�q-PG�
��0�Z�4�|���#N���� ��LE�/�!Ҕ?�am��(�^��y�+���@k���Ў��1��9���c{ր����oL��e��=ΙN��\b��Y��}�u?3���Tlۤt�Rh���N�b�\%
�����v
�@��-�!韜�)|�B�ѡ���c��1�k$kc�
�z'�I�oo�tI���X�U��b>�hH<�6]�G������֐TY��e�}9n��#)J�8|m A�E�����Oal�ԨGE��;����ؚ?s���!f2�qӈ^��KZ���F�I&S�v��T�E:w�72w�-Y���6��c���!&�v��cc��DƵ�VP��Ԯ�w90?��)@!�@0>�1I4���෱&��P���#�MK�F`�5�nz���+tY[�j�&���L�O��m����N�Y�/
4��-mA��a)k���\����4�Y���E(��:H�5�1�!�ز���*�KaLI�cNY?���00J�ُ�=�Pҳ%�U_�"����Q�">�]b$���RW�!��F���#����x�"��!�7�={�:�B;�acS��U7�p>Km�����~�9g�9!�eb+}��/���|Qp8C�młʁ>�O!>K��<(U
��ӫW�t]�r��^�0~ ��􎸋R}6a7�.��#��|�q�h�~]�,�����79�s��?��r�v>R2xFXr$2�k�:ɰO5��+ٞЇ��(X�
s|�?&I����Wz�O�5H�_�1[����0#h��D��P�������#�cQt���d3��@��<�@���b [/��P�g���d�*�N�+O�I�l�����P�#��O BC���~�����Ӏ����Q��+���0��*���tk�H'mdh�Gv"Ќl��Nk�D������*D�x暑ު��-ƣ���@37ۄ����Ѝ��6n��bz�r��*E���b��%‰����ץꉁW
ւ�e��}7���|���]K����Z
�[5(�7��x��r�+*G��I���aʵ[�5�E���B�d��Vu.�z�SdW�
����p�W�e���"�=O���=񣌫l��&���Br���t2K����q�N%�+Q��U�EEFeq=%��b+tn�9�Jz��p�K4��[�r��Ka�[�ejmuv�p��*�K#�]�R`�AQ
��a�)�fGk��v�O+����cH�i�0�D�ך ���՝�r�tE��δJ泹��;ab+�0�w"���Y�Z��"�=��k�T�M6Ӡ�=��3�<>�� `�G��8x�)�e�fU-c�>��a��2~s�`�d.Ư��u@\�gϴU�LBV~\�_��>��؅�:��*�h]��"�ώN����
��;����G�6ҁ͇Ť����L8���`M[�4;��?K��1��=)�Q��
���ʣx�6�h��U!��y��+�� �X���2���%�Y��㚕���O/CXr�:%Oh\�N�b����#�������zD�&�<�4|kR�I&�)GFtc�c���؊�]F''X�i�J	K@a�`��N�d���J}��[�D�wLtoKC��+�?N
R�1�m��s���r9$Z)�#�։���!�3��?ZZ�?n,~Y��<�F4z���k3�yS���ykK���v1�fG�7���L��g �$��1��my!Č�3(6�s��XÄ���'��5L9xw��Q��\���4�`GL����y6��)G%�)F��D�_:�FW0�ox3D㑖�,�q��1��3�C5u��
�����:a5��&���9
��-���B�.�I���U��h�x߳>U�k[셆.9��z(�~�1�-ԉ$@�j��9��q�����H��,��Hc���`�+�](15���1�����~�(��O+�Y���օ��_Z�%�:�$|����*]�e�+J>�7�}w���e�}���8�^�N����
�.����LRd����(�����xbbm|,!*��R6���	���>�ҷ���}��|˓ 3wR9����8�,���b���q|S�_��/�S�����P�b��:��-p�O�9�V]��m��Zbq����3L�nm�a���B$��!�5R��
6���?�t0�T��6�͉nk=��$U�nrT�Ӗ��b{�@+�u�[}F��މJ�7"�utui��S��u�$Q�9��|��$*�IqnQ��Ԗ��:�#=�\{��
?U;��c����sqɉQ)[a�IwTR5�U��<o���vT��?��,t*;M�H�P��c'@�&
 ���6J�x��6��H.�}C=~k��p�[$��pSCu��7�t݀�ikR����L�����{wD�@�`�ɒm��/�fy=��`�NS'OT�n�
5�R��~�JΖ�N5�*��(��n�^`U�q����2�;ױ����� ��k��C
��G�j
H����T	���`طb�Qο��8�r��"�x�q/���$��m�~��}	���7��oh�������	1̤�4�t���P�J��!���E���[�F́Mf���Su�g��$�A�5^�
n��o�8��:0v�Y
��_�ד�G��cq{�)5�*�0��'�JV�����z��A7�\���[�Ut�T�j��#-E��xt��]���yIH~�=̵#!���.��
�E$M�W
%�m2,�*���0!��
)9��=紷
��ŏ��!�9�=P�"H���3����c�����>��I=o�I����s�Y�fFn2绲C�hbH��7,Ql�)�h�d��#�14�tN��G4�p�kN���7u:p<��ܓR�����:?��������	tﰭW~v�i�J�⃔�k�Z�rᶃ��?w���W�6����ٹ��S*�+3��\���2�s�N�M�����[���T�_��,;��\?k���.���/iw���jl�G����	�d7~\��d8������ֆZ����{:5�sv��h�3k��]�;P��2HĐ�|���+G�~�ۢu����h��oʯ(c��S|�L��3��K�ɇdVq�1h/�J��5H��8���S�-�Ѫ���g�y�ḇ�8���L����!�x�f��T�0��H��Z���j[G8�~�Y���ڏJ}������Q��㰹�)4A�(��H�d���p|<��;�W�7W�`$/�X�6�0y�ӂ�7���౑�1��A�|�k�9w�+�d���Q�yˈ8��>�<B�m8溼��R<���,vi刮Ud��&�D���i�V�>{���/�t��,Ŵ���Va���)6�}y5z� �	��5�;<}xCfs%�����K���%��:�e���m�8z�s� �i�M\��K��uj��k!>�F�6+gp�5��Nɀ���7*��݈�۟XK�3n�/�Hg�T�3�m�>l��x�ȢC5�
�,�M��B@�[�/��	���G����Y��Uj;���u&!�uF��Mm���c��vsl�Kֲx�M&��S�!S
�&����CD���������#ẛYG!�J��}��$��8C/�-
�`��u��z��Q}}X�W�0���b=mJr��k���t����z�5�탪��>�S�K����Šx�i���[4�d���_�
T�A��̉�B<nJ��[_���{��
��0F��EdSq]�f�����7R��u�&�d�t4��#F<poZ��!�I�z�5���N~�~��_^��w��r�V�܋ϔ�9�oI�n_�D��G�U�{�
c>\���O�~aOZd��j��[��FZ�6)�d���̘p���-����N���Y[����{2eE��i}��P����*�	�:�𗻝�(���$�����K�ANH���Y��}�!qo\䣙�� ���@Uz��28Y�u4�����/	A�3B�s9
��<l�1C�P3.ĪU�-ڒ�lY��8��-rcѱ��I�V/:�H� �lP�d�*Sbt���Yl^�]sc���������b[Ci��:����S�����ڒH�Q|K�5rğX3����D`<Ntz&7iԔ=fw���=���p샿xO�4a�?&��G'�Β:~�zT����>���C��,�w���*K$�b�N�f�����$w��Do�6]/�H���u�2ϘX����Gc��OyYݷ��G��2���K�&9�1@����)}x�<PQ�w�e�����-�R��z	sZpS�1���1o#�Bƍܘ@�d��'z�d����:�ڋ�(�}:�\*��U��Q��_<$��4j�M�4��0����̼�_���3Q�
I!~����-�-�R��(\��o�����M�H�x��dZ�ǎ�%#5�Zi^o�x.��)Ȍ���tO���s�����G!ы�U�
�ڤ��j�$5,T���h�sꁺ�n;3�B��s����pU��vq0�~��ڹ��,���֖�@��C#���a����oU�[s��������\�_9�7��;���
�B7��R���Xς�U���J����F콧?��,{��.�'� �V�]5a��L5�1��]Wz����A)�C`��z;��x'E�"G�Ā�6tK/L���f�8ɒ�Nc����Rl�Ӵ6y~�"�27���ѱ�����k�.`�3
�ɒ�8]p�p��/�1�&�R#�U���kx��7ٶ���Cr��;�ZSn%k	'/f�=��dJ"4����ϼ����<G�jw*D,�9�w�ɢ�2��~4�ڕP�z��4hET.q���w��M��ڠT)xKU8v�x(�VQ'���'7�f�ڵ�!�ڱ@v�娏�L�+\$-w�F-@du[�2v-��EĔ�����a=�)����=�R-:��B�t��l@˲ńa8�nі�R�j��@�5��t�SI3���n��8�9{���{{5��(^��м��Q��\K�坪�͚k�v�,XQ��\���	E��>��p5n�nC��r;�O�ӿb��cf��s�E�U��]�+�c�q
u���>)�ϴ���".V���QJ}�p�&�d;h<���#�k�O��X�������N<�$�AR��~�|׋�|�WUC����)�+�����3zA>|V���1�H
3ir]V��S(�P�x\�F���f��t����e]+=��)�.��1�������1 ?n���ۛ�!	/��Q’2��Vl�6����s{�V�����J�l[�)(�>�<��I���_���?J�i��X������~ e�����c�(��V���_�@��ڇ4�M�g���}�l�Ը�V)�V��T�e�
w2���Z��4�=ߖE.2|܀a��>y�ֿ���-�gT�Ӑr�@���pO�������'�ȨiG�V�n�4���\M��&����L!��6j��.	OB��1*5p�g�80���Z��o�YO��N��B��;���{�@�L��m�Wlp��k�{�<'�'��ڣ�g(*��a��L
+@kќ�0k�q�_n*z��S�r���(bK9H�!�]�
�\y�>�o�m�uk�.':�)a����4�Ԣ"���٠#TM���b��4�g����&�K��	�)�x�޶B]���
+��Iԙj=I�g�����Q�"ۤw^��D�&S�C�WmOn��rí��5K��&�g�N���;���|�.�&��3"eD��H%ņ^�? N@��ITh�S��7��1�u��^2�#�"~C�Y��nf�lۛ����
{�Z�Ʈ a�m^�M����9䊁�uBz;�pC���b�嵫��IFug��ب�܁��2�f9���B�����VK<v:kp�Q�Q<��BL�lCѼ��r�Wm%mf��U��E���D9���e�Ee~��#=a�yl�(�?7Vo�.��W����Ow˭G�.z8��\�ԧ0!����7Z�[Tӛ����6�G1��cY�Դ���ݧ�m1��z�6�B|�+YH���7�t��|n�q��x�hr��vܥ��d(t�U�΁&��T}+OٓT��?��kW��	z�����-���7~v��uw��%Ǔ�x!�^[+��e�{z,j�R�����kg��F����))ڸ��M7�IZ*��T���$��R��w@���l�
����pZFwe�C�^<:�e��R�~茲`���1�
b%�(u�ZE�2r�)$A�t/���]��W�a�;�!�N��TK���Ht+�;*��ĂK �4���
c�j-���b� �O�����*N�`ј#�U\�Z�l!r�v�$��2XC��9q6=��p0x�/]����z��lrA��,�֖d��݁TL��ӓp��"�R���Z��dX£��r�1Al-k�^�u��;���c�y����P��ljP��3}F~0��|u�t��XC�m�U�����:7`�'�Y�X��]����o��Z�~Ze�����a㤉�mF\�\;�������[<�������R�o�R��Q�8�CLL
��5[3��*���@���b����zbM�Ǽ�z���������:?�vnˋ}J�DBv��S
��NF-Z*^MK��t:\'��gMMBd^3;�r~��Ρ�6 k4��2u�C���]��(N���A�^�躇�$ά�,P�>����M��[S�@�����84C���A�
G��Q?�>A�^�pM]��w�@-�����g*��MP3��6��'��ڐ��}�H�f2kDh�W��y-@�:A8ώ��,녶���7��h;G�o�� S߂�"`r��o�����n��i���߬��2��ds��6���3��K̺��N�2�֑��:�Z�싦�I����("��[,6�R���)�E��hp��=ܴ`�ԝ���~_ZH��O��rFJ��&��"�J%�%G�^^{c��JjP�eo�#m��Ą9t�5�N�6S���В�uF��6d��0��+�e`�CtD��X�k$*xt�?��a��۷��y#>�*,�p�i���,�0y���&.+�����lH�u}�^5��^���#5!C ���붧��^Ȗ���F��&L��[?H�H���o��OW���ITN�zx�#�\q
�b�wh���P�o޿j
�j�B�JN�#4]'�;��y�K]W���	m�H{��N�8������<l�p��W�g,J��3�Q�rt���5A�#cCb~V�\��]�5�2���<���Hf�w��Z���z�4	fQ�	��������񆾷(�Q�5�`gq���}ܔXl�4,�/Rc�s� �s8T Pq�qsVaa@�';n���]��~71�{���V�C؎�n��s3]9��*�e��:����1���AT�7����F�rb�ʆAS���D_9��γ���4�7�s_'�#+�ߙ�3c�hKQL%��,Lf#��(����m��� &%�W�C�*턂(���`9a|�O"W�:�
Y)$�0)TtId��ۯ��C�	�+OPĈ]��&��H��ɤڗ��O q�{�a��cn��4���C8��!s�����<J[�v�i��,Ӻ��&�^��&�k����J;�u�y}n&���8.fB]���3��%��C~@�7>�zu�D/�"2�W���5!9d��%�}��D�C�%Zy��޾���P�hw�g�#�KMco���f(r���o�:��/s�I��Ul�"��#�{�(�zjT�1ە���-Mt�VOF�����zywK?i�*\5�ַ�F/{j�}Q�I�E.Z�EB�γݍ�g/���Ҋ�YN�U�V:��m|
�C�Z����$gx=��s�J�S���xѫI�z�m�׿OF	��S���"������*�Qw�7��G`uq�`���4�Y������ޑ���L���&��R�[���g��N;//^l�'�/IV�p�#���"�qg땱�9�wO��[���������
?�a�$a<�����Gl��jF�Z
�Je�S66�Sp �b�
�/����q\gS�BW�.s���sL
�=�8�8�E�Ҵ^l� >�Ψ���q�MS���Pkg��昞O���Fq�-t"��D�>�k����e�!d
ݿ��)�s��Bpi�Ȁ�8O9_��	>b�7^��<�Ԫ��Il���h�2]=�e�=D
�����G^nł:�>w��&�#��)�6�+~�Q���^�/§`�=,� r2�-��!��ƽ�m"1�Q�ِ��OTk��X�%���[%�[�<oc
���x����T���q�-�"8�t�;w�R�+ ?��~��w���L�$�W
Zp�;C���˟	<)r�w�*��wQ����`Z�aZ�D�`i�\�O*��I�Ϸ�����Y�7�,��~]邴�	�pjR'���
es�x�m��g�=<�ܼ���F͓��#I@�i�w��'��b�`n�����[y��z��	�����V�������C����י��N�����3��g�Y;Y
��p��ோ�5�`1��M`�=z�ն����cH�Ko�4|�
�-�x~b��> �ܬ�ͪ&�_C�y,6M��S���s�ILu�H\��z�`��Ԕ�"����`n�̮�*��8�`�*���@2�W�J|���XI�i�]��G�w���H�"���݊=���a~��%g�i@���$��huv��Ƣ�z�(=
�7�a�'qȻeW�.mZs���)`�sK�ܬ�8�S�Gtٸ���f'O?�*��D�G�̝��	��M��{��j�=ž��h�N&���$�;�:%��iֱI�[2̯���J�o�H�L�A��ff�Z�xV� .��NS�ϥť�x1��L_m�Ko����i����h�7 �l�+��n�`ǥ���8�3�͊f�l^
��${]�v���z�ƺ�z���ȥ���uW���K`l2ڸ�����|O���}��h:�X�5ؕ��,}no(vV̵O�1�
�4Ż���I8�Lv,B�S�%ъ��+��B2�5lg��~�M I@�3Y ����П+@	�q GY��6��?$,uOo(��Lo�p����+nj���K��Xɕ��,b����>-/��(�>��Z�RdLt�oE�14m7���b�=ʠ�U� ��I�7w~6�M.ݗߑw�'��ٌˈĒI+�p��N/��scxb[~@[L,щ���T���Q�����j���z;*�R�˖��>������Ͳ�>Dz����]7�vO+[�~�(��z���Aݩ^?#*a\��y����z�PB���J��p�5�".�/X�<�,�ø�����&OQ�H2Cؼ=����=��jS�n�h��g�}�W3j�
w?�� ��Џ0��T��MG{��o��Y⋱	�QVLq��{u*�~�:�L�6��Mv�}R���(�US�/F5���o2大���|+r�+'Z� ���/F�=�/S���%0e=uw��&�!q�e����Qږ�^��ɷ����D�h�2���mw�G.9)z���Ra�����n�:�#��'>�m�[z��Գ4-�x�UK
'����-��J��5��?;E�/��!���h֮�2v!�q�x��;�昽%\̑A7lGS�BDk'��	�������r�,��,���>�7��	��:��t�G�Q]!l���UW�1��ٜ�:S:R� /���l\��p0��ȍ],&T�(�÷�d��J L�y!�K?�σ�`��>=���:=��K㠷��R���H���,��֑B{�x��A1s2���T�-��6���2�"+���iG��nVs��z�L��ɟ�
g@t�3
B[G�9��s�+7hjĒ��a�o`zx���qa�6]�x��-��Ay�X/�4y��"����A����Ğ�d����O~�Ϋ�����o�&�`{�M�r[m�?��+�����"�`�`���~ě8�����B�	�*�قwC��A���Z�!ɩ�O1�h��B�
�fw
�ܹB
Pç#���y<Q���(vU�
�b�2���H�~�Z��0��qeâ��OFV��Tb`�Е��LzXWB�+,�,|_`�.��k�:3rs&t.na���du�����I�=l�r��_���J�/����>Ve��z� �k#�H����d<%ں�?�<[$��Bպ?�������k�쀐i&�4V�g�d�;+��F�ْ�56��
��)�ܚ	�vOۜs���qe�S䲿.�b��7���
�j�Q2�:�d�ǧ3�S�	𗮞ԯo�~'�P6�Cv=u�F��\��-���*8ؔyP�j�{�˷�_̞�O(��@%���	r�M���
��:/�#;�'�XK!]�l�#��uc�G�pPP�|cPn���Q����)C����d�!�5��aw5�L��T?]���oM�8�R��yt�6�*��i���\�4�R檑�tG���s��\P���q��9�Az��9�b|	�כ]L�6٬/Q.��<����b�]��<�:;���¼{���5��O+ٸ��ǒ�+��+��˼��H"�<ERF��,'�?�s��oZ?GB*=�Vѷv�)��291'S�����qe8R�S��!4�d��Zk�[�e�q��
�Ƥr�b
���w�2S��E�u������2#������˙&2���
�c%k���;ž0Loř��q��4je""śI
C��y��.z����������s)����Ό���q"&K��7W�.CoʡW�ω�<N��?�23	3���Lc�hn%�W���Ł]��!;Yc~���;~G�w��l^2��K�G�����e�0_��+Y�T�!�?���'TLM�|�B4��4�L�9�ï�3n-UPao����E�p\�1V��Z Gc�C��G$��v�B�x��?�k�5I������FW�9�s����?���/��l��?\��S�����n�����@3X�z��i|��^�<�͙�a��㑓���R�I賭B�xU9G�#c�5���!�(s��ғ��)�J~��
ח�]Q�u�['��0���
�����39�����1�(ԯ*y�@�l�M�xS%�~�5�Χ/���1����}}X��]�ms��)K�fmJE�D��Ev�zI2��0|��rFk��ȑ�"I��Z�C�W�v�83�b�:�h�X���
\��h,E�m���[D�6Z�
I����bq(��=���v�8Ԧ
��.+��Hu~�U8�e��0�j�3��ŸdT<�n�� d{5�$볓N�_?��k��!�q&s%&o��M�S'�5@�V��/�T���
a�PC��5�d�~�����z�_����.�ǥ=D��(]�R����Y���
����zp^�PG�(n�x�[n����$�w-S����b��#��E���T#Tޥ��/���{k�q!�a⍬�H�U[�SGn�ؤF���nW�0��f����p,�1���?�s���Ѯ�G�xv�r��(���E��O�~f#Y����!g����������ѝ?��<ZЍ ��B'LJ�j
���(X�ʊ
����;��W-y\�̾3@IG�/`Z�(����_K��P�(�^t�C"
)_ރx(���O��F�YX���@�b;��A��j�"�U���f����B�!�œ�k险>hȣ�Q�@
�j&���]��e/*�e)��rt�*c*}%4�\}�t%ξ}�����!�0����v�q��}\AK/��
Z����<�0������
�7���aW��CY�y��lx+�{t��g�,%b�Wc?��}5�=>��k7"��U���E6|�Rׁ��P茼���� �Z>����W���0^՞>��"����I�|�,�Ac�������ˤ��:S����'���yq��aX�`��PJc�(t���~��3�.�T������M�L�ͬ�*�������z��ڢ�؍��\�{��t{�Y}w�R�#���Ҿ8+f������P������������j�Aa�e
�՚���'l�X�s���5'�a�˓�-��q����B��B<y��Svf�5�N��Eh����_x=�YV�e����]J1=�8��t�r��J���Y'��c��F6�;`��F��4�~O��h����b��K�/���w�
NI�~���&u,���j�^�5�!o�Dg���rcd�M��)�m#$��Q��Y&.��
Vn���#�w����uI4���f0�!��㉙Ӹ��`\[�����۽�/2I����`<z�m-��G0ӣоx�>!S�i�z�g����PԌ��8gr�aȲh�C`��#��i<�dU�Ϳ��V[y�)-9nz���ˈ�m0�_�v�����U��"�F��
{�c�0�zCя]�A}���H��)z=-��TP�D�([F�x�aj��9V䳬�Re�c+Ӕ�����.w�ƊjH�s��|�?���M��MX��;���W�f8�h�n18��)پ9��J��r��I�{�X	z�X�0����:�I��Б�'��#\�zf�;)��)�PJC�![���aH�W#R�υ����"�d;���,/�mH�e�ٹYgG�]�+�6Őe_���Yڱ�IV#)�O輸�"���yl_h�����S�)J>��m��2���рK��o=˶�ġXQ>���S���Nn�7��	*�Y$�T�-~��k�M��}4c�ei�����'%5�0�e�t�����6�#UuG#���?�/&$�C1Y�P�F��Q�7��09UUTg�vݪ�]$�Q�8m��|�l��{§�T'�X2�B���i�%h�U��HDI�"ɰ4nl�N�[�wG+��%R,��|�M��M�T���έ�G�6s�����Hd�';?p��B�\*w�M5Ҁ�m/ps�9�A��m2ք�����#�_����r�ײj�$I��
ʺ��)��/���>D�Ф�rG�գVqE�{��&s�_�E���?�:D|v�RY9s
e]�Sh�Чɦ���7=��ڰ����?�}O��Ԩ��4얻����75�vP��g�Qф���:qv�|�5��e�b�q�68��s�KC;��������agxT�p�%0��w�˶��(�6�cI퉞�7�f�v�<�U�q��ς�'�XG�vN���Iݵ�|�l$�b*�% ��rP�^���[�L��+�`ט�k�Fӧ`���SJ�%��Z+���}������^�	^9^����l9�3go�L�)�� ���^U{
z̸�?a��o�݁`��x�G?֘����K�}�:F3�5�K��K���H�H$�}�b�Q��f��ۆ0��*�	~�[�$g�2�v�V��6�wX��C�]@�e���B��-��\K
& �
��ҪH����d��v�Ck� (���`���3D�������{`�;X
c�~h`��[�^�z�H�A�M+
�>5�&�����T2�r�Ϲ�(EOI���$[.�j�^�4���QyYCz�d{��%
��+�?ʅp��pэ?"��%�_�w��Y�<a�[bfK�Ak��ȋF�=%>�l�u�
>�^�>�J�����Y���k�ṶM�0�L�خp�
?�GD��O���/̃��'�@������OH#POP	1<3�:r
�a�`v{�s��ᐟ��5�2_5�	vx����Qq.����R���>�.d}��滢gA�[a{�z���ʦVD�V�s�ƾ	�J/��%�_#��TR����NzF���(����
kB}��e����4Ц�E|H���sI�Qc��*�:#�b��%�E��Z�2�HAy��WC!�&�ϝ�h�p
a�C�)n��ީ���=��?<^���.{Z�`��9T�iyl�p��2p'�}�:tuX���:	a�[ak���I���`��.������YW�Ȝ��q���*r���jd�^&'��ZV����3�?p]��ݣ���y���:�7��_m�&kE�8�p/�l-6[~X?[2�aq��!�!�!��0�>�@J�}s.-�P5��C�ؐ��m߭��!����N?dF����}���uJ�30�v�9��3es\�~G��y,���T,�Z̤�^JG�c�i���~�����5ɓ�tba\m.�G����+�:�^�"a��1*�٬��?/b��!K�pT+
��9t�žB֦�z
Z���k�Y_X�siˀ�BT��{Z����f���J.ਇ-9��k\�m�t�@�gs��^��>3R�Gen|1�@��K^F�Q*?c V�1qW�>`(qE���k�aj����#���'��1[f�ɂPN|��#����w]+��qIb��/��F�xs�?=�ӧ��K�F+R��eí��M�3�W����0,Vw=<k5RcN8o�y�5��K%>8mi"i����C���Q��2�l�3��>�	rv"�"�@�硂z=���0z3�|c�@TN��#3��l9�37@`�������Z�
[�ɠ�Cm�}E�n�L�T
c�a]:��⧠X/�?!��u��?��y���=;{�WTˁ��7���X� ��k�v����,w�L�a�R�*�F�[��a����/7Gp��]u�����h�r�����H6��[�T��#��?@
<G\��=�B�B�O���ԓ�lH��i����)h���i�����fT�\_��ܠ7���<�?%��-�FN��,��-[/��5�ՏӅo��H����fyW��˿�CG嗳>^���!�O�_*j��3�����
﨨�K��t��s@��.094v��<��'T^��,��ϪVX�9����N���_�0֤gt�D|���P11Ó���t�-�����B6-}�4�>�r�Sk�IJ�զѳ����,���ZY��3�
�J`� ǂ���ʾa�uj��zjcʿ�(5Bi}�
��.oF��^Cy�JoI+�ʻ������?�hSFg�l?(,����9��bc�}�_6��lT
h���	xY��ũ���j �b'�5U�����
����L,�6Kߢ�$�j�_�n�"�~����Ud6xWs�9�[l:j9���K��<��\���x%��ڰT�Gѯ+wtW<ع!f��6�Ϫ��C�"/�i�&�q�sj�X��h� ��9�"���>2�k����H�r^a�~7E\��\̵�
=���)�)��E�� �d�tȆ�7��%�9Y�x��Y�B�f�����ߔ�Wa��T�40�=`2�.<���jnRIM�ed�Tl��I���yux�8����%SB6]��I��|�ɬ���Or�IU�٤��B�P�gD���o�+��"K��7��6��+_[�����@��
����ہ1�^#���;;�n�H����=�v�-Z�{l92�~s��]z�(X
Ҵe�K���%Cd��-�D0_���>N�{��@u��S=��A�)�GD���(���Ǿ4?�S�ۥ�)n��A����^�K˫!b,8h�,N_���cG�T���+҄Ӏ��>`���(��*�̠?>9j�a
z��K�*��=�xz5z9�0b$���k�4��I�Oߔ�E)�W<9� m����mǒ0��NXh���x*C�t��X�`l�l��.W���*��i�P���>\"�z�o�foϓ���_��"y<`���M��k�8�+xi�JJ{	NsP]ô���Y�4�uW".0"�;5fiM�W��#�#E�`" �,a�����pmd����6����2���S��1�C��7\A2�Ő���|�™�� <uy�l|lm�_:(Ϳx$�y-����Y��R[Z�����-ޥ.7K(.����c{$@D��U!�ތ��[�Hw5�]U)}`�����f���(���:/7;?(�Np����7�Z����\+&��U3z��x{��� ��EHS�����R^?�Ϥ����~���Ê�9���Y�lp��.[�5��s���U��d�2�^�tH�B���l�m�p156�#�L���)=�1��2Ǖ��|N��'�͡C��7�n��`Z/��}�]F
E ��}�Q���^ac��o����hsN?���mU{��.or��|��
<MRnN��݅YN���5¡#i��W��`��m�bhwŌ;�P�'*�Y������tǑ��3��X��	V�9�oyYX��J�����{6�x�\������b���*E^���r��߀t�VKx�@��W�w����#���h�k\я��"���iz�cR�?%D-m)��[�H��1�,�Y�f.4�ot	4̣6kh�d����t�3�F��X�M�X��u1�l����z�dx�쬮A�'�,A���=��w]��U�G���.�啛����
$4���KKB�R~����!=K,YK���%�̛���������d�`�B�����
�@v82�mCs�]\�?w��Mꝙ�i����L8������O���y)Lo�SL�'$��>�m��Ɓez��R�ku����K��n�c�X)�K���M�f�٤pМ¸��-˸�qh�L}�}-`�8�Q�)t��W>q�sQ�A��GE}~���Tm{�,���	L�h(�Ǒ�[ˣ�/?�c̨ALG�-��q�@Lb;uP\c? Iގ. d�JG4s�5�7�a�)�^�b@m5\�y2�=0{��h�y���ޥ��@vX�	�$����'�ԴB��ڊ�֛�L�D���+�}�V�&�[y+��IT�A�:t��[��(������0$�S�����!�X�d	}8�zVo��|�M����ȶ�sa��p�:��]���LWa千�&Y��g�(l3��a�aZ��N&̨� ~R�A�˓�lf�BN`KeۯAb�M���)5K;&e��9+�������%* �Jm�}<�
��mx]q\���?/䳏PF�_���U��C�	��h�%cVtA�M�Tއ08�l�D�G!㸆Ӕ�n�K?W%�/ NcJ5d�
"�B��0��ϸ<fm�J�-��u�T�����?�R�� �c1ʑ��wr6�!|Y�p��\������!uЋY�z�pfE�a�x^#��!5���fk�o2Q�@��͋rE`�)�~8���D26ks����%�x�#���(������`@Y�E�^�`�kn�s��g�9�X�z_���u�T�E@*���H_G�)exkq{���z|
�t��"�|�ʟi��E�QB��S��W�Z�{g7���"��Q\��;p�Zϝ��VQ�ʞ=z�mƹ5C�c����2��a�n���
G�.K�����Q�DD��N�τ�����j��{�?kR����9����H�:�ϡ7|mtn��9���W��|����sO�A}x2��~6��	��رh*Jv��<l��@y���Ʃ���71��YK�P7p�2�5{N���՛"5$�w
'Jc�����L��
עVl9���-����9n�F.��$��)gl�T���usi:�� ��\��;���s�g�z���d��9~�^ޟ�	�Bk:��-�7�bMU���r�˸C��,�Yk��ßo�A�1����l6�~�ޞ�)-x��Mw�W�	�t�o�8~�EF�\Y��}��v���<�y�d>��mV~�}��oYV��&�{X���ު��B����h|.y����Uv��(u��]��-C��D�2Q}���� 1�)R�]�ެHNb���7�妯�VG����u/���q�h���!؀�#����L��͘z�(�OA	֋���t�:��e2lp?`���=sï.�?�[e�^���z����A�&�3L{7<�Q?2aP;qA��H��cY1�GVoF��Kd���o"l����r
"Ah����:4.�|,b:�A�Oc��ɗ�����
}�a�)>�� ���D|ZT�<���h��2/ɨ��.۞imD���1�G�!��/;�ׁ*��H��̂:
��y�)�N��#��_RM�O���QJ���� NM�f/���	F���z���3�țG�ڣ@uS���	l۳�nU�&=Mv
s����>�:��(Ɵv�J�2�H^o�Ī�f����K�T�MC+���V�n��N��~���Qҡ��h��c��90��n�����]�s�R��^�����G�]��.V�4g��7Q�7�]COXdj��)�|��������s�W�$"B,���H�M�r�M�-[*-L�&�5,��%,ă��_�g���,��{wb���
�jWg&�i{�+��60�<J:��z3a0(�Z۽�BX7�!v0L|y��8��⚜�n��|����6юY�F��N|����-�wh��D$r��aW@�.#���kE��}���D���p\����K������QL�O� [j��w��P?D̋�CU{x�1��ke/�޳�R�Ƣ��#��%0�zV+ƒ59�ߐlza�t�i�ѫeXju����UV��QWA���}�"$S!�=ϖ�mޙ���)-�	d��=ˁ{?�p�@y��8���N�?�2�
i�2�(��G�LJ���W��_o�5߸+Q�nb݉a�Tu�.P�a7P�W�	w��J1�$�._�x�n5�cJj��e���]Y1���
f��� 4��.�(�ģ�֧�z������F��t�4f@���T�Ui���AadHFw��R]�ZB6�89z��L5��Me�J�m�7�[z�u3zCL�e3�#�QJP���qn����^�F�1O���X-O�>�e��a��`��;BQ��$�L��	������'��r����ׯ��;;j��ܘ����=�K���#��t�x��7��M�M„���+Pߧh$�6�\�Ə�/t�B�P�P�y�y��R�f3+��04���Q^�m3ʗB�<��	��T%؅}-�eEn��#D�e�g�Z�-���6�k?a)��i�
&����:�PĽl�G7���
$�(��
$4�.�4�g��AG¼;t��Ah|�萶�
���ç�kiы�v��eI��V�3
�C����Z�ƾ��m<��T2�D�50�K���=&q�cYT��xQ���H?z��Yze����O��`eU5����yLQ�b�t�e�U�$��3��H���r���-�ޒd�Φǁɮ�A[u�Zz�ՎQBS83����Pf| �t�r����R��k@���w�Q�_ý+W}I��<0\r��g�Fs��A�R��PR��^��#�)u8�,�Y�5;,���_�#�(�†@��w]`�!��&$�묗]��Ia)��x;4F�ڴk0k/�0vt~t�g�-���zS��4�M�*�u����2��h�R��_7�"�bE1
e�`eEz�Z�!G}mtR1�c���	mv�x�F��Y���s1�pl�G�=�k��&Q��=亼:hB���:�ໍ>{�c��G6��$C��c�M�_UF�z�,Z�$H�(���7�{����̉���'7>�c�I�L�[���4�my@-}~���Ν
��y���g6w����D#�P6o(�<�, 7*�b��d�:`
}��y�t�ݱ?fLj9�i�i�>O�5
#�i�q�:0?���elM����u���+�)���ټ�zuĢ�����(�m֊������i)�ݫa��ؚ<���D����x7��נMn`����Mĕ�����ZU�^h9�50.0��M0�Ç)��Q wE%ȿj�6n�CQB���uА��Cv%q��СƩ��R	#�����C�qs���j�}��c�Ao�[�����a�n7a>�Dv4GǮ���r���q����hR=�����	lS��F�A�T�����H�G��^h�����u�� 6U�lb�w�
�A�e��ɻ��� ���q�T�h{�>Y���s���jL_��"�ʐFS�8�;��
KiT�>��4M�$p�Su~L`�Դ�j
%���|�
ȳ<h��u��p���l�#�|K�5���%
�vϝp������5��X�1Ҽz-�^"F*��X)�Tۊ7H���O�t!�{O�re���E����J����<�v�����YGS�8��-�P�1\��g�N�lrƇ��瞇�LX���mc�qS����͒o�v����g���
@���d�HGq���kw4��8�����~-`J0Q��%R�_�9 ��ld
��p>�6T$�����b%�w�s�I��_�wڀy#�D�����5��C��,f
�t`�3�"����^����ޯ�pj=.��k1��dŹ!:~9�e��^�`����\����_jbv7�Dz��B�#�%(.�
̖�T����O��)N��>?D��yA���-�gdM!`7�����5Q��"�A��jD��Șչ1&��:����zg��`����	�>%#��'���3c��=2ȁ��-�<R�hea���y�ٵB�e%���g!x@-�	�3�fa7¦\Y^ E����%��_¿�bO"Lk��A�t��U��. �qXwT�	hQ�Pp� Ӷ��nhɣ$J�����,�L��RI�%'.��>��[b�MRx���|b�`��[$�K� �M:]�TE���K�ۡ	�.9܍�'����2�@�"��ك�Ϊ���;����(U���WO�E�@�JV���X@1������syI�A�Df�Rͳ���ȷ������3b�r,�/�V~�0P�=����{~�൏z���f	t�Hc���4û��ͫ$].�=>�H����A�V�,�7P�&X�t
I�
3�o��j���:�7�V	ތߥ�"
���{�M�\f�Co��T�
P�it$#G�1p]c�,�uo�k
[7���m�VO��V�K�*=	LW�U����H*q�\Ӝ-�zG3E���������H�9w�A/����m*�b���*��Q|[�B(g
��5 ��������.l����4��
��i9nTWƯ�P;��>B.{��Yʹ�x�!4���Vm2��^����4�V������M\��6<e2`�0z�ormHs_�ՄU����a��IH�g�!�dxH�c�6i�����+t-�q~~5P�9�j�
{"H@�y�vJG��U���u���T)EB��M�G)�Lx�
D�,ǹP�)=H��ٳ�ad��W�Ҏ�!�zx�UP[��]Z��X<����;ph�"bK�m}q��ft�$���
���t3���A�G.�!�607�IJ�����s-�*E	���
:�@���|&ǻ�)"�I���{D �q����i�ƴ}.�?�=*YWL e/ŽZ�g�6D�
3�S��M����^��SI���3C�O�+�y��[��Sl����=���a��Iu޸R���4��Jj�<c��+�X�2/�!��H�QLV���Mo���-�6da��Q{Ȭ|Q	/Y�{��1j�:-�;�͕i���*�1����לBQ����z��7)���i�4��b�d�ʅxT7q*ؔ�-�1��as�Ct7���ur�3�ɭ�C�M�_�/�V�𛏊	r���x�=�Z=���7�o�('B���_����D{�,V���K�E��~S�%u�!>ݾ(|s��_+wy����x@�q}\�txIKڜX�u�N�%�u������w��rF��PV
~�|�	,�t�[�Mi�6��������_.al�si@�"�Ԣ�l�.a:M���Z_X�Q�~�
�j�ž�� R>����\�ң���):�������zw����<L�e��1?�_�MR��jh��љ�
ј��>8-΄�����B��f���KsS��^f!�fv��a_��k�>Rb�*$�[p`�Q���S�T�?7a�����
��ɤ���Fp�Ϣ��R�����)�L#���9��?3�w�8E�S6�ؔ̋���{��S��|����Q{P�y�m�o�����,��d��Tq<� �q׏�lEm�J���83���s�k���dI#�k�\���wk�Y,;m�z�~�C$���w~�C~��O�`kL�?�T���4@�������n��N��>�5ȱU��G��?�;����S��Ǩ�E��29��}��S>]�5�@�b�Ζ�3������G]�U�yQ6����P��F�K�P�@��3��I�oY�Y�V�`>���GǡK�?�}��#� �,�QQ��c��h�{3k���Z��3�_E�o��q�.kx��$2�>N��+���? m�(�'�
 Yj�6�x���T�I2hR�87.5�rX��AyO$^;�U�f_��b}�+fDÀ�
gʼn^.Q�9��0vD?�δ��]�]^�IE�5��75u�Gٛxرd�.U�ʶ-��@���C.����ֽ�X6��G�|E��k��i��ryJ��*c�����U؀4�j$S�xC�� ���.�_e�s�&7*��QY+B�
��o�)^z+��	!/"w�"��!vDw��g���(��l�[����gc��_E�QX٦�%q�GT�/�_��#��Ҭ���� +8�ߔ�@�a���j���XmY�^�a���O�,�fg�8t���\�~�=��������>!��0دFzF-K��_�Շ-=��L�|����ꭧ�o��l��@F����j��5��a؇��z�
Ԣ޳x>��,����$�^����U1��P*�@
����M�B�G��y8q�<QB�|��AS27��`/�r���3��-���·��ўT����Z�*5��ʀvBM�AZyw&Tu����/ן��,8��	��!5�@^��ݞ�-y�ו�ۻt�[��W��!��z�0��!�k�`žrnt7�;�;�H{���a���d}r��FJ3����\�B���0��*v����?ψ��=��xu�X�*M|b���GC�&x?�l��#xBV�j��)�����Ή�9�{��O9��'�A�b	)ّiT1����0�im��o�j�G0��8�o<m�M�'|L��i�V�؛]�<ll<�(X��7\�O�M��X5po�5�WPkWg�;|\Q?��K�Jw��%�U�*V�<��Kz��CS��*W��B���$��ea<���Fe�ø�|���ys4!�D*�j�7�4Xv����Y�6��xtQP��>��	��<J���K*����K�G��������F�Rf��d�$�/����Q^PZ�K�a���O�Ұ���/��pm�؍Kl��-T�q�>=i�qڶ&��.��b�O͋��8�SwT�NPj��Y>`���h���N�D��Q�5F��!�@��i�kd��� `�M�Eʇ�^e�d,(=���0��X5@�׆C粲�կ�
'줔Fm�/��(�<3��_KC���c
��y_�ړ�ȗa&����� ��>ZR7D��
��%���(��tH£��E����\�1{dGf�v�]5��q=9�c<�;���̀āo{���@EV���O��z�g:�\޹6�����Y��D�}(<�){~]�6���Ǩ�iРk�#�u�<���E��{�'�ߏ�oStI���=�1/yJ��s����ﷷ������F/"Yew_�7�̻s�_�Y�v�#�(���8�B8y��\�l3-��iȈ��*�Z�"k�~SUz�~c��cyU@��T�����J�GH8��@E�TȞ0|�]T�*�L��_Uvj�tnݚ{��[(��g{�
��`q!���ل,��]V��N����T�g�zɹ�9h�Ih%�l�[�y���v0#�@��:����z9�ws���r� �-����2�'��^�,#}
��)�ȭn�]�T����~uۉ%�Y�)+���د!��\�l��4��W�p�s����j�|8V���$>�d�w̯���ѯ�97]җUp�_|S��c4Ҙq�u��Q�͌��l�P��`��H�z+�o������	����E�V�{
�WR�*V���	�փ#�۫�����G��	�ۋ��(���w�0V��o�m}]H�:��iã�1�~{�^�0�&(���<�8
%�zB6k.��G���:�ϙ8�M1`���G��>ޤ3�������gd?��`��ǡ������l�|�D?Է6ΪP�Y������;��6QLQD=ʫE��VT'��Y~�d���A.bՒ1q�0U)I�F�B8�|p�h7ڬ������vQ; �7լm~כK?���s0"�ې���4D�@R7�}P�}[�Pi$>��'H#!�Y�;����鎲�NZ���'<�Ā�f��j��˒��Hj%P*�L�ɾ3I0.�9�{6�kCjm�p��)�g��+�ڶ����l���K�/*U��^R��C�y��XW k�TN�n��ұ��P�z����i9G,�H�&v�f1�U�K^#�9��c@��ʃ�r��\�E��=K{Vy*��z��%k�w/��a�?��t��үв�Lg�3@>��@��TԵ�Z��>W>�o5��qM�K4��GKk��QA�U��A��w�
~��EY�S7�5u�0,1�[�.�����K�+��6:*��
���(�Ci��
�a7>��,Q'��V�~�K���k%�m�ަ���#0�G�����P���-��5�_m��Z�9�@��������k��IY�ձ%���S;u�(mT��H=ad�z�A�)@tÈ|ͽ�a�E�L<}�l�L�f	�ߗ
/7��0;z��P�U�.h"XF֓F�\-�h70�r�P�fv�n5h;J�����b��k&4���A;+k�a�5�����qDQ����M��N�/��B/�7%�~ˉ0/�OSt/_�{��<���Fzy�<�u{yEY5�2��@zqb��O!x�Ӝ?Z��7�����W��A�"z�����{8�|�8��1
�S�4�AN���Zn2��]�f9��)j��"Sֈ}���r�~�6:7�^��Q�؃6۾�� \e?��%h��[T�m �
O�^ ����cP��l�Ki�],.�.�=Hr�h����W%W#v���{G�|h����);�5�	�#�y�3��X��_��;�{M��>w�D���&e��h��>6m�����yݱϚ��s�F5���X$�X�m�e�C�,����̰��Ճ�O���xE{�̈́���?��Ru����z�:���(�J��J��\���XAYD5Gh�Z�_I��E�>G��5�o�� ]�t%IbQ�,	2�c�;X�l�4%@m�Q��z�O=M�)]`��h%��L��f�Bc/�;��f_h�A��Oh�rGO3 E�=ܩD����}D]`2�����
Q�鬫�y���\]Ѹ��GU���~2S�s1T��ތ�i�#���rHۅe.�w_�R{[P���wC�Y�+93V�}��W�]���2"K�'/�	����R�
K9���Ÿg�.��`��ġ��y���G�0(tY�,H��TEM��|��_��Gغ����q� ��!�u#~6S]=���J�(���9d����C�K�L�	��
>"aK�؇���NRu�1���Exȳ�W�^:��MY����v��M�r�z��Q��������4�����^�#(m4gYOB�ր���H��.N��p�o��휐}���Z����%��v��tf����X�9��ʀ�ᕛi�>��T�z�x���_�\�>����]v����V*x?m����_1b)���܅c�3K(��QoL��x��b�	Y��[2>G�K���۟��E���q=ĵ��F]��;�=*ύ�9�T�QQ�D(e�8Jw�iO뛡Q���������C�֯0Q�����7	[���qr�ۨ��X�ܴ����`��dUI[�?�W�Key���*�.oo�%��s�h���[�Zr�����!�&��fż@8�v�1)=���D(��[�3�c�r����/6e�2�\h��^H�+�}�/ߧ�cz� O�kWdY�/�������_R��/�rHm?f�
�7��#d�֘�y��K�j�9�������Rl(�|�w/�{��I�������G]���C�{B�Q�[��C��Lq�M'�mʓG�uۊ0���9����!	����V2�=z���Q�h��*ebn�q�'���=`ǻ�rlmo��D�d���.չ�����1ʋ��C��ûv4T�:�iʹz>�^e�ȁ���RjL+���3a^1��)�Rٹ�bE�^���e����}t�O��y��xY�Yj�g�	%�sa��s���s����7D"�>E_�t�厚,����H�/�5D�+q�8�1t!R=��ǭ+c�`ȯ/~/91���uo �ӷ)��GR�2E(��:����Ի���'���k���X�y��y��M��M�!*	D4x��/��&�����4
yp
�D2�y�HFC�RL01�����}�E�>
�`%���FۑE�UP�_��$V^�e+bp��}�"�"F�9��y�Hج�B<���ݚO��	�)[L�B�a}/��J���=Z@mN����г��$$0��N�:j`��Z�Y���2sR<,zo򩨝&�r㒯�Ϸ7\@|"��x��(�HXP��i�ċ�����9��_�D'Dl�3�!U}���I=�g���75J�z�̊%�4��d�C�yb���&�V���'o��Y�.sE8�\���Ñ`cX���s�S�E�
@Z����Tf�IO�.����+�h2��`J*�!:Ȗ?�Qa=5>���H�6�� -F�02��l^�T�E�9w����o�����{^9l{f+*��.Z}:��
OWp?5�����1Rڔr<�������ܥ�I�X�����3uhQ�k�o�fz�G�jƖ�XIR����eP$#�\��ww��Ԩb�uWႏ�ܴ����r�?�9j	9� H���D�y	
CM������}�h7<�Þ,��¯�/3��sSaO"q�]{r�`-��)�y[�q],��'ܟ>E��gӋ9�1�Q�f���Ů��ǹw��Un���|�g2���mVѤ ^d������<��:E7;&���h
�GA�/��1���Qܤ��O�	��t�\�ƣ)%l����G����m��̱0{g�B7�gtHe�1��2�&!)���@�E�|4�Ǔ�.�
�l�桏t��S:̔�N"P6͵�i���9�+�֟�)G:t�F�Ѭ	ψ�D�,Y�6ҧ�CֻdTe��ZR�P�b�_�碸>5����<_����Vq�0���zM�[��M|�y��hZU9ܟh�X}��ױ�Q�e�:H��W�v����o��I��D ��
���f��������e��"�{��0"�F����ӔVl�$�‹�CÙ!�Dࠕ��X����v�y�	p�(������y��lE��L	�8&ڜ&}Z��
l�$>xB�{��ک�>do����*XR	Q������4 a�_\�;�/�q�hS��B!�5�?�c�#��5�L�d�:��қ��>�.&��1dZ�����Nw�-A����x|	����0/���tHVv�	��"C��M�A�r�*�3�BTD�V;9!�X�d����#��������>w%�BC���-�
e���慡SL���;���@쇢�MN����̇��*,�Lj�j(c���?�n�e���ێ�+�1ª�|�������=�H:��9\8�#����:�+�w�U~�z8#�#z�k6�Yl*�֏\�3c��(���i�ÉX���Ī���ީ誊��R*1�Q�5Nq4���p\R�N�;q/x�b��.��}�gSCm<�3\�<d��Ð7r��`���n �ƶ<CP�>{���l�.tkj�$��@�5kT2jo�͊�0C5�4U�k���^����6t���Z��;ʮ�t��pn�`��4�]H��WM�>o5�9CL3E4D�B��U�e���{�IL�ͫ��[�d��
�?���D���P^}�����GgJ��i�Oq
���0�NG
H�t7[�Y��l�
��IG�Re���4��@'��"G�s�ր�`L(ΐ�K�=%ծ
��)�,B'�hI��Y�p�8�9I�@�gv�2ܰ
EW�^�TK)��2d`�Sv���w�`�@[�HT�e���&ٰ��tf�)�[U;�\�j�H��o2ڂud�$dsx%/J���XZ�>���$�n�a�-�]�s$���Y\�`����/s��~���D�@��M!#d9C��7<+�]�����C���6=R�W�T�
�¬ȩRBS7eF@vY�D,� �D�7� �>�d(���a*�{���}P�nf��uJ8���֯xq��Ǎ
��`V�%�l�#d6�/�$�gԧ���j�x,��9��_j��c�Ղ�fݟ��e�Z��'|�{#�6�0���f��X��/�k�s���O�;��χZU���b�nַ��藣��ʋ2�-�i���ԭn��f`G�%�!D'f���s�y\m0)��By��}� ��.{�,��0U��_Rٿ٩�5jH��]�Q/���ӫ��8����[�h?��%�N4a �%�k��Y��
ӄ7�?Q�j7Q;��8���ʹ����z���v@�����&�V��$9�Z{P*pp,��H��I4��oDž�+��
��1K����e��qA�/@�cE��P�) ��\�3��X��F��:�P5�/7���&�͋�Qæ�~���
�{�X�n	�.�47�1/����)w��o�r���	����;t���*�t�*)-&9�+�~�W����w�\1.�oYZG��ـ�bD�~⽓3�����F:�Uυ�v�x�ߑh�)�?�H�z��e3�S���Og�*A�-E��U�o��רC�	r�`��_Ԏ�;4ZX<�>ɩ����R0 ���HqL֞�.����5�!k���3��?6�+_�@XUx��X�Ѫ�'��|�1�5]�lG�b��39mi?�N0��h(F�P�m�{W�r�Ђ�`4)kRT��g�V�җ�O��r<���@�dn8����~����Ih�tjۊ)G����:A�J[�՘[_���T4ڐy��/�ԝ���JT�
TID�V�O^����;��O���x�}��n��6��n��0L��fߔɻ���3�Zo�-Y�
��_ߊ��S�!d�+ԴfH��<\�,�H$� ��u|�{Ǵ\��qB�‚�-��������.t(xe^3������l�\Al��Z�d�:+M�ƇY+�0��7-�A��e" `AW��\��~���r+��PI�,�a�<�[I�b�AC���
I�.]��6q	��ZI��QT�R5�[���Z��D�)�=u���~&+x� �Pi]�W�ɫ���N�v�0�3�~�j!5d-��'��V�k�=m���S�aW�-�
�B���r;�T2�*�u�h��Y��B�?�sWL�D�d��<��@�傇m�����N:��g
ix1"��3��>�}�km�����S��Ǟ	�r�0��y���v�+�!d��LA���ل�zϱk�#�#��g��z��yӆ���0%��0^K��N!ѝ����+u�>?�I��x�(Ecr��76�P$0��v�/VSt�n�Tqj:"\0��̽B�#����l�v9fQ�
�9b�V��R!٧&���R�Ss_�T�W��;��A����:#>;9�$�a�t{@ݫ5�1�[�L�C�I���w��8o�ă����QL�����b.�{|�'�o�{�⩊�}�c����h��jB��'ࡺ���G��ݗ�ZB{B�H��x?#�2��}E��.)!L���(xl�ے��Q�Ղ�vL�5����(Jz�(�v��)ŭ�됚��G�������p:k?��I=B�e��-l�

��W���4�l�՝����������ѬCP�`�+5HAl~�.p;�B�c��
_�P=��Z䶶GwY0xk�~v�:�Xz�s�t�3�N�6�[..�O�P�gLӧsK�X�C�g�$z
���^3G�{���4J�(��+E��0x�v��u�
P1C6�8��R2��0IǷ�I�|9��?�i�R?@G|ӡ�X�~��B�
9�M���O]���d�J8�r�0K�i��I��r]
pn!�
�����g�~Q��(��<P	�—{�Y-8�.Cgr��DW�(�u�)DQo�6V���E\��:gRt�-+���(z�&B�b-N��:r剱>�M���,��"�5�$|�c0������`��
$�HW��	�ʞ5K��9��� ;���L���9��]?��Ml���B��B�}d��k�LX��Ճ�6g]:��b�j�yѢ����F�昃�x���q+�`"�K���l���[Y����)��vd=�4��Xdw���-B���"L1��&�$��@���h,ӡŷ���ԈMJw���z��T#no*�љ�E'؜�1__P���Z���6�
�蚺���W�F�Z��-q��ɍ��\�j�Ux�*SCѩ;f"x.S1/��iK̝b}v&���#�ͲdK��C���hE�!�
��-�5:�z!��jv�W����s�1̱e��&�����܀�'J��_OA,��R�Z貚@�p~������O�X9��u>V�
��#"?#��5�ZN���76Mҟ�7���ϓ3��Bg2r��"K���	o(���@|$x�����n1�;I�*�M�/U�C����N��7��_�������t>��d��W��;~m/`ti��R���-(Ix0M�:��H������XR���>T����`���&�O��lt3Y���:
f�Ϭ���b������I
RS��k�=�4�wZ�qD�I�Wt��-�jm��k�`��<�i�Ny���42J�A�7z�6J�^Y=�� �e�g�O�F�5�Q,[�̔�:v���U�0�㧡ie�n�aX������~��1�l���x���B�܍2��v�8Y^�0k��'������,��)zW�S4*�/�S�ezQ��H����J���$
$�B�%)���b;�.����)�K>���]Q#�#�g����?q��Ĉi���>eQc��A�8�<n��e;���i�H��wW���fj�Z�l�#8m��b��4�3�6�B]22A`�:b��6����/��BHV�˺,r&$/�I�4�f3o�s�X@Ѩ|=^���ٚs%7����6x�g��Mz�1`�
���zV��L�aQ�_0"�a!�B���
�]��n�qO���
7�xc��[A'_i�:�{Y����_���]�U�4a�m<0��/��/���/FP�>��敖�/,g���D_��=���
�@�)+��������w.�ƞ���MBb;�t ki;
7�.��^m^�L���u�QJs����h5r�O�
��j�/�EZ	��h�
�k9��E�5`���m�_8�U��?{�,)i�%Կ[ʁ���*6�+�Y端��	�U1x|]��4���.QoR=*�t$?2Ago��W�Ѡ��m�Ry���tP���y�=���sd�ɴd(<6&�I.1�X����N���L�ijFV��$W^*��i?2HQԣn�!(*f�0�фF��J�i�~����KgNA2WS���$�d�������HG�P��(�a�ٝJ\�@#�%�:E�)gF�!my��Pag8�vϚ�V�Cg(�h��q%E�zǽ�����r��Ф~9�or�!���!��l�D:*2��3�.�

���@z;�_K����C7=������3-�t:��N�4Ȋ��l�')�dߓ�6A��M��i�OR_p�;S݈�7�E��C|��>�������*H��;��Gjq��)4kG��w?|�w����ݿ���_�u�[DhT�_���A�9���#u)��*G~*ǖ�V�GpV�4	��H%Å�&^�gl@��"�[�b/�C�Q��{������j�m��>�z(l��3�8�Y>x��t��%3sq�v��O( �/����U'�i):�+�=ֹ�FAv4��<�}*]�T~�O/.�`߀��[��(9�F�bZj4j璮,M���O {�[��i��_����=�����0aW@��:�o=�1�|�V�z����J�%�X�{T��M��h�}�m��1���Z�b�{oLkP�ǽ-�"'s
��S� a�ur��~��U�V���ƒ��ņLT�O~�4Կ�{�!�c��q��5J˦
��2m��􇲸`�2�	C��j��<憖d����$'&wS�И���f�|ǜ�/�n�"G}�8���hn��0A�k:�i�3ğ��D0X����`�)�,N|�p��e�~�$�dy���N�3�
D_��q�PR��8P���w��מ��}��Paϊ��w��O���Y��kp��65���u�s2_��2�`&��P#'&kL��	��8����"���T^vR��K��C~���7�sBĎ�#��2�:M�/(2�'<[�ݪ�3ޮu'�׭�sq�×.�3��	S]�E˭<Z
��(sW|��Zc���������4�ː���|�4HK�U��˔O��hu�Ș<p�׈EC����G��/�*{��)����1g����T��fi�䙃�M�f���U�yٞ��.	C������Ė��Y�FU�n"f��L�2�oLTDI���>._Ġo_d<�|��i�{?��Yo[��
���~T\��������^V�8(�{+���_�t
On�@)o���W�?SЩj���{8� 4�-+mx�H�ij9�迃,�߿k;��L�^S��h�����۹��?����4Ѻ��d����g�Uv8��돍�&_+�	N4�X[z>1�]��^ZA���#>�r7�}��ס��� l`������L����m�;
/2͎q&%�v�L;��7Z��L��Ma2��YI�NK!р�~V�3��up�1?�Υ�W,�`0VF��<�!�{�g,��L�j�+Ѭ@�x��O�s=V�h�e���z�G��k^�j�a�	��Q.�C�Ϲ%w/FW�q(S3ɰd���{��c�.�kSZd�E&R�q��̆r��41u���Zo�9B�Db�#�.cX��w��P�a����'Z�ؔ�upLZE��3�.֜(P��`4Ӡ�fz3�q��üϯ`3-8��n I+�#<�>7���t��5*�!'����@���RF�Ǵ��`��9���q�X�C1%#�r�1b�P��[���[�t1�{����r\�.�w^�k�|fڪL�V"mr5~���4�[!���W,�ɗ&�h.��dތ4�g�UC�`;)[Vࠍz�vn��yK���T~��2���u*��ݹw�����^�Xӏ���N��
���!�6�P�5�4Mt��t�c$�~�E�xAML5�Ц,G�'��gźC�ZtNZ���.��%�(M�%5�i�h�zm��%<:�*q�;}���Zm*��/t�ϧF��i):]�?^��0�#�9a�n�I��Op��u�͇��1ʘ��o�?j9���4�Hj�O���wEV�࿠k�e`��Kb�[�+���>Ɉ�1�;�:P'9fwm[QV��	k��	���|_w���c#̅Tv1~���Z���̤wmcV��7a.��2��HD�F�i��$��4�DWD�^!���Q�G[�8�kp�����yU��#�
>
��<��O��`o��ͨ�(>�;��eOv�[n�X�p�-�[�c�7����C��6��L\T,:�
%��1�������F�W4�\�+�$�#b�B0}��������7�,������D��k�*b7���Ȓ��e���D��Y�I�v�O35��۞�i�&���#��(����{sv����-���&r!;�y��8sUś�ّ}c`�����/�̀��Jw�}4�4?1�2�%5Vd����6�&G*� `�-�LST��6�Ѻ��.K{^������y�n$��@ŰH�t
(���.��+���I�h�l�8x6-�X�����=�M,�z��p�FժJ鄻��n�6Z�e�&�\vg^J�=L~n�j�W��,nVD�(?���"�7�W�l�-�
)%j��{���vr����s7Q����e���I�ݚ�O6p�F~�����A쪯Mǰҽ���pt4呂�Y]Y
�
�SN�ΆV��Q��$��CN��l�R��ŀ�ij�9�ʾ:����Z{F�̩����/l��/)�P�y�����L���-��IҮ�mp%V6���j
<�B/��BL$Q
Ұ=+��SD�|�1�`U��E�5|��}���ķqrX �z�z��j�E�o��O�=J4�~��v\�Н4�Ɨ󣩵b����w$����ޠՂfx�2�ŏ y��M��'�:�Hl��V3��@�m��9�x�"�2�̃�R0��v�x���̈
�
�/m������<y��'~@�+�ӏ��_f�Ļtΐ*/�
�֢�J�"r-�sJa_"�H������O���d������'s�>���W��:b��9+���Q�$@_}H���D}ҷ�m<t��ohk����B�
�n<)sCNL�2�'����Om;wB���."����agE:�p���k���~:W;�i���M�����S�H_��AK������!Q�=2��r�k����%���
�����̓�{x��q��oZüq&`���w��x�/Q^X.���ng*i����^B/'P �����6IvF��Q�nǜ�W�����3�^	ev�1�;�#�ܔ�m��ŝ"�&���
����v��c�f��F�;�f"A�g�=��S���3�$���(�|F��Y�Z��4��fQ~Z����QE��B(V��˄{@���-��'#r�QsM.��	��Gk���3�KHUdwA!aѻ��{�݉ү����>�o*mlY�d$Z;�w�Y�%���	��t�
q���Ĵ��j���Z;`�aCuJ��_�G�3� v��^ZO_��h��R%���Gee�Hk1ޑ�¤�`�{E��l���a�m��^��g�P�y�i$�n�YG�{���
5��4[�3O�a��?���������](�h����"\E��=�P�w�����.�M4DMt�|R=g����j�M���@��g��n�҅2�����W-#���h�f�[h�D�Εw��/���;��L��ѯ�1t�{���[�k�b#i��i?�?�,��r}7�u=�du����(��~�SgD�����j|��G(��t�|S�$Z.�m��0h� �bѤ�
����H��$���e1��a>�ǫ_�kw^{XT��O�T�V':�T�`��7e�:O�QgC&
�
��ӿ�S�����n��'(��x���e{�T&~��j�}q	�и�f�$g:�凳<��3���9�K����D��AHpO:}��`��-`�)���E���F��\��ZG�mRoiL����/�\Y��<|h��U fE��=/�YU�k�A�_m��E�̉~peS�"������}�/�oe������yR
{�A������=�6֣S�FyX��W�:�"7��l�m�aq	��/	my��T���KJ&����<D
���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``(+(�-�-h�0����o8���op@p@�
E���oNN`TpOpO�^BXX�th@{@{c`{`{Nn`�`��MwPP"�}t�t�
������� �X~"X~"��H#H#�c��~&�~& �p�Fp�&�x�Fx�&���F��& D ���F��& ���F��&(	��F�&'� �F �&� ��F��&�
 �����&���&0"�&x�X�'1lib64/ruby/2.2.0/json.rb000064400000003363150402105710010402 0ustar00require 'json/common'

##
# = JavaScript Object Notation (JSON)
#
# JSON is a lightweight data-interchange format. It is easy for us
# humans to read and write. Plus, equally simple for machines to generate or parse.
# JSON is completely language agnostic, making it the ideal interchange format.
#
# Built on two universally available structures:
#   1. A collection of name/value pairs. Often referred to as an _object_, hash table, record, struct, keyed list, or associative array.
#   2. An ordered list of values. More commonly called an _array_, vector, sequence or list.
#
# To read more about JSON visit: http://json.org
#
# == Parsing JSON
#
# To parse a JSON string received by another application or generated within
# your existing application:
#
#   require 'json'
#
#   my_hash = JSON.parse('{"hello": "goodbye"}')
#   puts my_hash["hello"] => "goodbye"
#
# Notice the extra quotes <tt>''</tt> around the hash notation. Ruby expects
# the argument to be a string and can't convert objects like a hash or array.
#
# Ruby converts your string into a hash
#
# == Generating JSON
#
# Creating a JSON string for communication or serialization is
# just as simple.
#
#   require 'json'
#
#   my_hash = {:hello => "goodbye"}
#   puts JSON.generate(my_hash) => "{\"hello\":\"goodbye\"}"
#
# Or an alternative way:
#
#   require 'json'
#   puts {:hello => "goodbye"}.to_json => "{\"hello\":\"goodbye\"}"
#
# <tt>JSON.generate</tt> only allows objects or arrays to be converted
# to JSON syntax. <tt>to_json</tt>, however, accepts many Ruby classes
# even though it acts only as a method for serialization:
#
#   require 'json'
#
#   1.to_json => "1"
#
module JSON
  require 'json/version'

  begin
    require 'json/ext'
  rescue LoadError
    require 'json/pure'
  end
end
lib64/ruby/2.2.0/expect.rb000064400000004223150402105710010715 0ustar00$expect_verbose = false

# Expect library adds the IO instance method #expect, which does similar act to
# tcl's expect extension.
#
# In order to use this method, you must require expect:
#
#   require 'expect'
#
# Please see #expect for usage.
class IO
  # call-seq:
  #   IO#expect(pattern,timeout=9999999)                  ->  Array
  #   IO#expect(pattern,timeout=9999999) { |result| ... } ->  nil
  #
  # Reads from the IO until the given +pattern+ matches or the +timeout+ is over.
  #
  # It returns an array with the read buffer, followed by the matches.
  # If a block is given, the result is yielded to the block and returns nil.
  #
  # When called without a block, it waits until the input that matches the
  # given +pattern+ is obtained from the IO or the time specified as the
  # timeout passes. An array is returned when the pattern is obtained from the
  # IO. The first element of the array is the entire string obtained from the
  # IO until the pattern matches, followed by elements indicating which the
  # pattern which matched to the anchor in the regular expression.
  #
  # The optional timeout parameter defines, in seconds, the total time to wait
  # for the pattern.  If the timeout expires or eof is found, nil is returned
  # or yielded.  However, the buffer in a timeout session is kept for the next
  # expect call.  The default timeout is 9999999 seconds.
  def expect(pat,timeout=9999999)
    buf = ''
    case pat
    when String
      e_pat = Regexp.new(Regexp.quote(pat))
    when Regexp
      e_pat = pat
    else
      raise TypeError, "unsupported pattern class: #{pat.class}"
    end
    @unusedBuf ||= ''
    while true
      if not @unusedBuf.empty?
        c = @unusedBuf.slice!(0).chr
      elsif !IO.select([self],nil,nil,timeout) or eof? then
        result = nil
        @unusedBuf = buf
        break
      else
        c = getc.chr
      end
      buf << c
      if $expect_verbose
        STDOUT.print c
        STDOUT.flush
      end
      if mat=e_pat.match(buf) then
        result = [buf,*mat.to_a[1..-1]]
        break
      end
    end
    if block_given? then
      yield result
    else
      return result
    end
    nil
  end
end

lib64/ruby/2.2.0/rinda/rinda.rb000064400000015105150402105710011620 0ustar00require 'drb/drb'
require 'thread'

##
# A module to implement the Linda distributed computing paradigm in Ruby.
#
# Rinda is part of DRb (dRuby).
#
# == Example(s)
#
# See the sample/drb/ directory in the Ruby distribution, from 1.8.2 onwards.
#
#--
# TODO
# == Introduction to Linda/rinda?
#
# == Why is this library separate from DRb?

module Rinda

  ##
  # Rinda error base class

  class RindaError < RuntimeError; end

  ##
  # Raised when a hash-based tuple has an invalid key.

  class InvalidHashTupleKey < RindaError; end

  ##
  # Raised when trying to use a canceled tuple.

  class RequestCanceledError < ThreadError; end

  ##
  # Raised when trying to use an expired tuple.

  class RequestExpiredError < ThreadError; end

  ##
  # A tuple is the elementary object in Rinda programming.
  # Tuples may be matched against templates if the tuple and
  # the template are the same size.

  class Tuple

    ##
    # Creates a new Tuple from +ary_or_hash+ which must be an Array or Hash.

    def initialize(ary_or_hash)
      if hash?(ary_or_hash)
        init_with_hash(ary_or_hash)
      else
        init_with_ary(ary_or_hash)
      end
    end

    ##
    # The number of elements in the tuple.

    def size
      @tuple.size
    end

    ##
    # Accessor method for elements of the tuple.

    def [](k)
      @tuple[k]
    end

    ##
    # Fetches item +k+ from the tuple.

    def fetch(k)
      @tuple.fetch(k)
    end

    ##
    # Iterate through the tuple, yielding the index or key, and the
    # value, thus ensuring arrays are iterated similarly to hashes.

    def each # FIXME
      if Hash === @tuple
        @tuple.each { |k, v| yield(k, v) }
      else
        @tuple.each_with_index { |v, k| yield(k, v) }
      end
    end

    ##
    # Return the tuple itself
    def value
      @tuple
    end

    private

    def hash?(ary_or_hash)
      ary_or_hash.respond_to?(:keys)
    end

    ##
    # Munges +ary+ into a valid Tuple.

    def init_with_ary(ary)
      @tuple = Array.new(ary.size)
      @tuple.size.times do |i|
        @tuple[i] = ary[i]
      end
    end

    ##
    # Ensures +hash+ is a valid Tuple.

    def init_with_hash(hash)
      @tuple = Hash.new
      hash.each do |k, v|
        raise InvalidHashTupleKey unless String === k
        @tuple[k] = v
      end
    end

  end

  ##
  # Templates are used to match tuples in Rinda.

  class Template < Tuple

    ##
    # Matches this template against +tuple+.  The +tuple+ must be the same
    # size as the template.  An element with a +nil+ value in a template acts
    # as a wildcard, matching any value in the corresponding position in the
    # tuple.  Elements of the template match the +tuple+ if the are #== or
    # #===.
    #
    #   Template.new([:foo, 5]).match   Tuple.new([:foo, 5]) # => true
    #   Template.new([:foo, nil]).match Tuple.new([:foo, 5]) # => true
    #   Template.new([String]).match    Tuple.new(['hello']) # => true
    #
    #   Template.new([:foo]).match      Tuple.new([:foo, 5]) # => false
    #   Template.new([:foo, 6]).match   Tuple.new([:foo, 5]) # => false
    #   Template.new([:foo, nil]).match Tuple.new([:foo])    # => false
    #   Template.new([:foo, 6]).match   Tuple.new([:foo])    # => false

    def match(tuple)
      return false unless tuple.respond_to?(:size)
      return false unless tuple.respond_to?(:fetch)
      return false unless self.size == tuple.size
      each do |k, v|
        begin
          it = tuple.fetch(k)
        rescue
          return false
        end
        next if v.nil?
        next if v == it
        next if v === it
        return false
      end
      return true
    end

    ##
    # Alias for #match.

    def ===(tuple)
      match(tuple)
    end

  end

  ##
  # <i>Documentation?</i>

  class DRbObjectTemplate

    ##
    # Creates a new DRbObjectTemplate that will match against +uri+ and +ref+.

    def initialize(uri=nil, ref=nil)
      @drb_uri = uri
      @drb_ref = ref
    end

    ##
    # This DRbObjectTemplate matches +ro+ if the remote object's drburi and
    # drbref are the same.  +nil+ is used as a wildcard.

    def ===(ro)
      return true if super(ro)
      unless @drb_uri.nil?
        return false unless (@drb_uri === ro.__drburi rescue false)
      end
      unless @drb_ref.nil?
        return false unless (@drb_ref === ro.__drbref rescue false)
      end
      true
    end

  end

  ##
  # TupleSpaceProxy allows a remote Tuplespace to appear as local.

  class TupleSpaceProxy
    ##
    # A Port ensures that a moved tuple arrives properly at its destination
    # and does not get lost.
    #
    # See https://bugs.ruby-lang.org/issues/8125

    class Port # :nodoc:
      attr_reader :value

      def self.deliver
        port = new

        begin
          yield(port)
        ensure
          port.close
        end

        port.value
      end

      def initialize
        @open = true
        @value = nil
      end

      ##
      # Don't let the DRb thread push to it when remote sends tuple

      def close
        @open = false
      end

      ##
      # Stores +value+ and ensure it does not get marshaled multiple times.

      def push value
        raise 'port closed' unless @open

        @value = value

        nil # avoid Marshal
      end
    end

    ##
    # Creates a new TupleSpaceProxy to wrap +ts+.

    def initialize(ts)
      @ts = ts
    end

    ##
    # Adds +tuple+ to the proxied TupleSpace.  See TupleSpace#write.

    def write(tuple, sec=nil)
      @ts.write(tuple, sec)
    end

    ##
    # Takes +tuple+ from the proxied TupleSpace.  See TupleSpace#take.

    def take(tuple, sec=nil, &block)
      Port.deliver do |port|
        @ts.move(DRbObject.new(port), tuple, sec, &block)
      end
    end

    ##
    # Reads +tuple+ from the proxied TupleSpace.  See TupleSpace#read.

    def read(tuple, sec=nil, &block)
      @ts.read(tuple, sec, &block)
    end

    ##
    # Reads all tuples matching +tuple+ from the proxied TupleSpace.  See
    # TupleSpace#read_all.

    def read_all(tuple)
      @ts.read_all(tuple)
    end

    ##
    # Registers for notifications of event +ev+ on the proxied TupleSpace.
    # See TupleSpace#notify

    def notify(ev, tuple, sec=nil)
      @ts.notify(ev, tuple, sec)
    end

  end

  ##
  # An SimpleRenewer allows a TupleSpace to check if a TupleEntry is still
  # alive.

  class SimpleRenewer

    include DRbUndumped

    ##
    # Creates a new SimpleRenewer that keeps an object alive for another +sec+
    # seconds.

    def initialize(sec=180)
      @sec = sec
    end

    ##
    # Called by the TupleSpace to check if the object is still alive.

    def renew
      @sec
    end
  end

end

lib64/ruby/2.2.0/rinda/ring.rb000064400000030706150402105710011466 0ustar00#
# Note: Rinda::Ring API is unstable.
#
require 'drb/drb'
require 'rinda/rinda'
require 'thread'
require 'ipaddr'

module Rinda

  ##
  # The default port Ring discovery will use.

  Ring_PORT = 7647

  ##
  # A RingServer allows a Rinda::TupleSpace to be located via UDP broadcasts.
  # Default service location uses the following steps:
  #
  # 1. A RingServer begins listening on the network broadcast UDP address.
  # 2. A RingFinger sends a UDP packet containing the DRb URI where it will
  #    listen for a reply.
  # 3. The RingServer receives the UDP packet and connects back to the
  #    provided DRb URI with the DRb service.
  #
  # A RingServer requires a TupleSpace:
  #
  #   ts = Rinda::TupleSpace.new
  #   rs = Rinda::RingServer.new
  #
  # RingServer can also listen on multicast addresses for announcements.  This
  # allows multiple RingServers to run on the same host.  To use network
  # broadcast and multicast:
  #
  #   ts = Rinda::TupleSpace.new
  #   rs = Rinda::RingServer.new ts, %w[Socket::INADDR_ANY, 239.0.0.1 ff02::1]

  class RingServer

    include DRbUndumped

    ##
    # Special renewer for the RingServer to allow shutdown

    class Renewer # :nodoc:
      include DRbUndumped

      ##
      # Set to false to shutdown future requests using this Renewer

      attr_writer :renew

      def initialize # :nodoc:
        @renew = true
      end

      def renew # :nodoc:
        @renew ? 1 : true
      end
    end

    ##
    # Advertises +ts+ on the given +addresses+ at +port+.
    #
    # If +addresses+ is omitted only the UDP broadcast address is used.
    #
    # +addresses+ can contain multiple addresses.  If a multicast address is
    # given in +addresses+ then the RingServer will listen for multicast
    # queries.
    #
    # If you use IPv4 multicast you may need to set an address of the inbound
    # interface which joins a multicast group.
    #
    #   ts = Rinda::TupleSpace.new
    #   rs = Rinda::RingServer.new(ts, [['239.0.0.1', '9.5.1.1']])
    #
    # You can set addresses as an Array Object.  The first element of the
    # Array is a multicast address and the second is an inbound interface
    # address.  If the second is omitted then '0.0.0.0' is used.
    #
    # If you use IPv6 multicast you may need to set both the local interface
    # address and the inbound interface index:
    #
    #   rs = Rinda::RingServer.new(ts, [['ff02::1', '::1', 1]])
    #
    # The first element is a multicast address and the second is an inbound
    # interface address.  The third is an inbound interface index.
    #
    # At this time there is no easy way to get an interface index by name.
    #
    # If the second is omitted then '::1' is used.
    # If the third is omitted then 0 (default interface) is used.

    def initialize(ts, addresses=[Socket::INADDR_ANY], port=Ring_PORT)
      @port = port

      if Integer === addresses then
        addresses, @port = [Socket::INADDR_ANY], addresses
      end

      @renewer = Renewer.new

      @ts = ts
      @sockets = []
      addresses.each do |address|
        if Array === address
          make_socket(*address)
        else
          make_socket(address)
        end
      end

      @w_services = write_services
      @r_service  = reply_service
    end

    ##
    # Creates a socket at +address+
    #
    # If +address+ is multicast address then +interface_address+ and
    # +multicast_interface+ can be set as optional.
    #
    # A created socket is bound to +interface_address+.  If you use IPv4
    # multicast then the interface of +interface_address+ is used as the
    # inbound interface.  If +interface_address+ is omitted or nil then
    # '0.0.0.0' or '::1' is used.
    #
    # If you use IPv6 multicast then +multicast_interface+ is used as the
    # inbound interface.  +multicast_interface+ is a network interface index.
    # If +multicast_interface+ is omitted then 0 (default interface) is used.

    def make_socket(address, interface_address=nil, multicast_interface=0)
      addrinfo = Addrinfo.udp(address, @port)

      socket = Socket.new(addrinfo.pfamily, addrinfo.socktype,
                          addrinfo.protocol)
      @sockets << socket

      if addrinfo.ipv4_multicast? or addrinfo.ipv6_multicast? then
        if Socket.const_defined?(:SO_REUSEPORT) then
          socket.setsockopt(:SOCKET, :SO_REUSEPORT, true)
        else
          socket.setsockopt(:SOCKET, :SO_REUSEADDR, true)
        end

        if addrinfo.ipv4_multicast? then
          interface_address = '0.0.0.0' if interface_address.nil?
          socket.bind(Addrinfo.udp(interface_address, @port))

          mreq = IPAddr.new(addrinfo.ip_address).hton +
            IPAddr.new(interface_address).hton

          socket.setsockopt(:IPPROTO_IP, :IP_ADD_MEMBERSHIP, mreq)
        else
          interface_address = '::1' if interface_address.nil?
          socket.bind(Addrinfo.udp(interface_address, @port))

          mreq = IPAddr.new(addrinfo.ip_address).hton +
            [multicast_interface].pack('I')

          socket.setsockopt(:IPPROTO_IPV6, :IPV6_JOIN_GROUP, mreq)
        end
      else
        socket.bind(addrinfo)
      end

      socket
    end

    ##
    # Creates threads that pick up UDP packets and passes them to do_write for
    # decoding.

    def write_services
      @sockets.map do |s|
        Thread.new(s) do |socket|
          loop do
            msg = socket.recv(1024)
            do_write(msg)
          end
        end
      end
    end

    ##
    # Extracts the response URI from +msg+ and adds it to TupleSpace where it
    # will be picked up by +reply_service+ for notification.

    def do_write(msg)
      Thread.new do
        begin
          tuple, sec = Marshal.load(msg)
          @ts.write(tuple, sec)
        rescue
        end
      end
    end

    ##
    # Creates a thread that notifies waiting clients from the TupleSpace.

    def reply_service
      Thread.new do
        loop do
          do_reply
        end
      end
    end

    ##
    # Pulls lookup tuples out of the TupleSpace and sends their DRb object the
    # address of the local TupleSpace.

    def do_reply
      tuple = @ts.take([:lookup_ring, nil], @renewer)
      Thread.new { tuple[1].call(@ts) rescue nil}
    rescue
    end

    ##
    # Shuts down the RingServer

    def shutdown
      @renewer.renew = false

      @w_services.each do |thread|
        thread.kill
        thread.join
      end

      @sockets.each do |socket|
        socket.close
      end

      @r_service.kill
      @r_service.join
    end

  end

  ##
  # RingFinger is used by RingServer clients to discover the RingServer's
  # TupleSpace.  Typically, all a client needs to do is call
  # RingFinger.primary to retrieve the remote TupleSpace, which it can then
  # begin using.
  #
  # To find the first available remote TupleSpace:
  #
  #   Rinda::RingFinger.primary
  #
  # To create a RingFinger that broadcasts to a custom list:
  #
  #   rf = Rinda::RingFinger.new  ['localhost', '192.0.2.1']
  #   rf.primary
  #
  # Rinda::RingFinger also understands multicast addresses and sets them up
  # properly.  This allows you to run multiple RingServers on the same host:
  #
  #   rf = Rinda::RingFinger.new ['239.0.0.1']
  #   rf.primary
  #
  # You can set the hop count (or TTL) for multicast searches using
  # #multicast_hops.
  #
  # If you use IPv6 multicast you may need to set both an address and the
  # outbound interface index:
  #
  #   rf = Rinda::RingFinger.new ['ff02::1']
  #   rf.multicast_interface = 1
  #   rf.primary
  #
  # At this time there is no easy way to get an interface index by name.

  class RingFinger

    @@broadcast_list = ['<broadcast>', 'localhost']

    @@finger = nil

    ##
    # Creates a singleton RingFinger and looks for a RingServer.  Returns the
    # created RingFinger.

    def self.finger
      unless @@finger
        @@finger = self.new
        @@finger.lookup_ring_any
      end
      @@finger
    end

    ##
    # Returns the first advertised TupleSpace.

    def self.primary
      finger.primary
    end

    ##
    # Contains all discovered TupleSpaces except for the primary.

    def self.to_a
      finger.to_a
    end

    ##
    # The list of addresses where RingFinger will send query packets.

    attr_accessor :broadcast_list

    ##
    # Maximum number of hops for sent multicast packets (if using a multicast
    # address in the broadcast list).  The default is 1 (same as UDP
    # broadcast).

    attr_accessor :multicast_hops

    ##
    # The interface index to send IPv6 multicast packets from.

    attr_accessor :multicast_interface

    ##
    # The port that RingFinger will send query packets to.

    attr_accessor :port

    ##
    # Contain the first advertised TupleSpace after lookup_ring_any is called.

    attr_accessor :primary

    ##
    # Creates a new RingFinger that will look for RingServers at +port+ on
    # the addresses in +broadcast_list+.
    #
    # If +broadcast_list+ contains a multicast address then multicast queries
    # will be made using the given multicast_hops and multicast_interface.

    def initialize(broadcast_list=@@broadcast_list, port=Ring_PORT)
      @broadcast_list = broadcast_list || ['localhost']
      @port = port
      @primary = nil
      @rings = []

      @multicast_hops = 1
      @multicast_interface = 0
    end

    ##
    # Contains all discovered TupleSpaces except for the primary.

    def to_a
      @rings
    end

    ##
    # Iterates over all discovered TupleSpaces starting with the primary.

    def each
      lookup_ring_any unless @primary
      return unless @primary
      yield(@primary)
      @rings.each { |x| yield(x) }
    end

    ##
    # Looks up RingServers waiting +timeout+ seconds.  RingServers will be
    # given +block+ as a callback, which will be called with the remote
    # TupleSpace.

    def lookup_ring(timeout=5, &block)
      return lookup_ring_any(timeout) unless block_given?

      msg = Marshal.dump([[:lookup_ring, DRbObject.new(block)], timeout])
      @broadcast_list.each do |it|
        send_message(it, msg)
      end
      sleep(timeout)
    end

    ##
    # Returns the first found remote TupleSpace.  Any further recovered
    # TupleSpaces can be found by calling +to_a+.

    def lookup_ring_any(timeout=5)
      queue = Queue.new

      Thread.new do
        self.lookup_ring(timeout) do |ts|
          queue.push(ts)
        end
        queue.push(nil)
      end

      @primary = queue.pop
      raise('RingNotFound') if @primary.nil?

      Thread.new do
        while it = queue.pop
          @rings.push(it)
        end
      end

      @primary
    end

    ##
    # Creates a socket for +address+ with the appropriate multicast options
    # for multicast addresses.

    def make_socket(address) # :nodoc:
      addrinfo = Addrinfo.udp(address, @port)

      soc = Socket.new(addrinfo.pfamily, addrinfo.socktype, addrinfo.protocol)
      begin
        if addrinfo.ipv4_multicast? then
          soc.setsockopt(Socket::Option.ipv4_multicast_loop(1))
          soc.setsockopt(Socket::Option.ipv4_multicast_ttl(@multicast_hops))
        elsif addrinfo.ipv6_multicast? then
          soc.setsockopt(:IPPROTO_IPV6, :IPV6_MULTICAST_LOOP, true)
          soc.setsockopt(:IPPROTO_IPV6, :IPV6_MULTICAST_HOPS,
                         [@multicast_hops].pack('I'))
          soc.setsockopt(:IPPROTO_IPV6, :IPV6_MULTICAST_IF,
                         [@multicast_interface].pack('I'))
        else
          soc.setsockopt(:SOL_SOCKET, :SO_BROADCAST, true)
        end

        soc.connect(addrinfo)
      rescue Exception
        soc.close
        raise
      end

      soc
    end

    def send_message(address, message) # :nodoc:
      soc = make_socket(address)

      soc.send(message, 0)
    rescue
      nil
    ensure
      soc.close if soc
    end

  end

  ##
  # RingProvider uses a RingServer advertised TupleSpace as a name service.
  # TupleSpace clients can register themselves with the remote TupleSpace and
  # look up other provided services via the remote TupleSpace.
  #
  # Services are registered with a tuple of the format [:name, klass,
  # DRbObject, description].

  class RingProvider

    ##
    # Creates a RingProvider that will provide a +klass+ service running on
    # +front+, with a +description+.  +renewer+ is optional.

    def initialize(klass, front, desc, renewer = nil)
      @tuple = [:name, klass, front, desc]
      @renewer = renewer || Rinda::SimpleRenewer.new
    end

    ##
    # Advertises this service on the primary remote TupleSpace.

    def provide
      ts = Rinda::RingFinger.primary
      ts.write(@tuple, @renewer)
    end

  end

end
lib64/ruby/2.2.0/rinda/tuplespace.rb000064400000033604150402105710012674 0ustar00require 'monitor'
require 'thread'
require 'drb/drb'
require 'rinda/rinda'
require 'enumerator'
require 'forwardable'

module Rinda

  ##
  # A TupleEntry is a Tuple (i.e. a possible entry in some Tuplespace)
  # together with expiry and cancellation data.

  class TupleEntry

    include DRbUndumped

    attr_accessor :expires

    ##
    # Creates a TupleEntry based on +ary+ with an optional renewer or expiry
    # time +sec+.
    #
    # A renewer must implement the +renew+ method which returns a Numeric,
    # nil, or true to indicate when the tuple has expired.

    def initialize(ary, sec=nil)
      @cancel = false
      @expires = nil
      @tuple = make_tuple(ary)
      @renewer = nil
      renew(sec)
    end

    ##
    # Marks this TupleEntry as canceled.

    def cancel
      @cancel = true
    end

    ##
    # A TupleEntry is dead when it is canceled or expired.

    def alive?
      !canceled? && !expired?
    end

    ##
    # Return the object which makes up the tuple itself: the Array
    # or Hash.

    def value; @tuple.value; end

    ##
    # Returns the canceled status.

    def canceled?; @cancel; end

    ##
    # Has this tuple expired? (true/false).
    #
    # A tuple has expired when its expiry timer based on the +sec+ argument to
    # #initialize runs out.

    def expired?
      return true unless @expires
      return false if @expires > Time.now
      return true if @renewer.nil?
      renew(@renewer)
      return true unless @expires
      return @expires < Time.now
    end

    ##
    # Reset the expiry time according to +sec_or_renewer+.
    #
    # +nil+::    it is set to expire in the far future.
    # +true+::   it has expired.
    # Numeric::  it will expire in that many seconds.
    #
    # Otherwise the argument refers to some kind of renewer object
    # which will reset its expiry time.

    def renew(sec_or_renewer)
      sec, @renewer = get_renewer(sec_or_renewer)
      @expires = make_expires(sec)
    end

    ##
    # Returns an expiry Time based on +sec+ which can be one of:
    # Numeric:: +sec+ seconds into the future
    # +true+::  the expiry time is the start of 1970 (i.e. expired)
    # +nil+::   it is  Tue Jan 19 03:14:07 GMT Standard Time 2038 (i.e. when
    #           UNIX clocks will die)

    def make_expires(sec=nil)
      case sec
      when Numeric
        Time.now + sec
      when true
        Time.at(1)
      when nil
        Time.at(2**31-1)
      end
    end

    ##
    # Retrieves +key+ from the tuple.

    def [](key)
      @tuple[key]
    end

    ##
    # Fetches +key+ from the tuple.

    def fetch(key)
      @tuple.fetch(key)
    end

    ##
    # The size of the tuple.

    def size
      @tuple.size
    end

    ##
    # Creates a Rinda::Tuple for +ary+.

    def make_tuple(ary)
      Rinda::Tuple.new(ary)
    end

    private

    ##
    # Returns a valid argument to make_expires and the renewer or nil.
    #
    # Given +true+, +nil+, or Numeric, returns that value and +nil+ (no actual
    # renewer).  Otherwise it returns an expiry value from calling +it.renew+
    # and the renewer.

    def get_renewer(it)
      case it
      when Numeric, true, nil
        return it, nil
      else
        begin
          return it.renew, it
        rescue Exception
          return it, nil
        end
      end
    end

  end

  ##
  # A TemplateEntry is a Template together with expiry and cancellation data.

  class TemplateEntry < TupleEntry
    ##
    # Matches this TemplateEntry against +tuple+.  See Template#match for
    # details on how a Template matches a Tuple.

    def match(tuple)
      @tuple.match(tuple)
    end

    alias === match

    def make_tuple(ary) # :nodoc:
      Rinda::Template.new(ary)
    end

  end

  ##
  # <i>Documentation?</i>

  class WaitTemplateEntry < TemplateEntry

    attr_reader :found

    def initialize(place, ary, expires=nil)
      super(ary, expires)
      @place = place
      @cond = place.new_cond
      @found = nil
    end

    def cancel
      super
      signal
    end

    def wait
      @cond.wait
    end

    def read(tuple)
      @found = tuple
      signal
    end

    def signal
      @place.synchronize do
        @cond.signal
      end
    end

  end

  ##
  # A NotifyTemplateEntry is returned by TupleSpace#notify and is notified of
  # TupleSpace changes.  You may receive either your subscribed event or the
  # 'close' event when iterating over notifications.
  #
  # See TupleSpace#notify_event for valid notification types.
  #
  # == Example
  #
  #   ts = Rinda::TupleSpace.new
  #   observer = ts.notify 'write', [nil]
  #
  #   Thread.start do
  #     observer.each { |t| p t }
  #   end
  #
  #   3.times { |i| ts.write [i] }
  #
  # Outputs:
  #
  #   ['write', [0]]
  #   ['write', [1]]
  #   ['write', [2]]

  class NotifyTemplateEntry < TemplateEntry

    ##
    # Creates a new NotifyTemplateEntry that watches +place+ for +event+s that
    # match +tuple+.

    def initialize(place, event, tuple, expires=nil)
      ary = [event, Rinda::Template.new(tuple)]
      super(ary, expires)
      @queue = Queue.new
      @done = false
    end

    ##
    # Called by TupleSpace to notify this NotifyTemplateEntry of a new event.

    def notify(ev)
      @queue.push(ev)
    end

    ##
    # Retrieves a notification.  Raises RequestExpiredError when this
    # NotifyTemplateEntry expires.

    def pop
      raise RequestExpiredError if @done
      it = @queue.pop
      @done = true if it[0] == 'close'
      return it
    end

    ##
    # Yields event/tuple pairs until this NotifyTemplateEntry expires.

    def each # :yields: event, tuple
      while !@done
        it = pop
        yield(it)
      end
    rescue
    ensure
      cancel
    end

  end

  ##
  # TupleBag is an unordered collection of tuples. It is the basis
  # of Tuplespace.

  class TupleBag
    class TupleBin
      extend Forwardable
      def_delegators '@bin', :find_all, :delete_if, :each, :empty?

      def initialize
        @bin = []
      end

      def add(tuple)
        @bin.push(tuple)
      end

      def delete(tuple)
        idx = @bin.rindex(tuple)
        @bin.delete_at(idx) if idx
      end

      def find
        @bin.reverse_each do |x|
          return x if yield(x)
        end
        nil
      end
    end

    def initialize # :nodoc:
      @hash = {}
      @enum = enum_for(:each_entry)
    end

    ##
    # +true+ if the TupleBag to see if it has any expired entries.

    def has_expires?
      @enum.find do |tuple|
        tuple.expires
      end
    end

    ##
    # Add +tuple+ to the TupleBag.

    def push(tuple)
      key = bin_key(tuple)
      @hash[key] ||= TupleBin.new
      @hash[key].add(tuple)
    end

    ##
    # Removes +tuple+ from the TupleBag.

    def delete(tuple)
      key = bin_key(tuple)
      bin = @hash[key]
      return nil unless bin
      bin.delete(tuple)
      @hash.delete(key) if bin.empty?
      tuple
    end

    ##
    # Finds all live tuples that match +template+.
    def find_all(template)
      bin_for_find(template).find_all do |tuple|
        tuple.alive? && template.match(tuple)
      end
    end

    ##
    # Finds a live tuple that matches +template+.

    def find(template)
      bin_for_find(template).find do |tuple|
        tuple.alive? && template.match(tuple)
      end
    end

    ##
    # Finds all tuples in the TupleBag which when treated as templates, match
    # +tuple+ and are alive.

    def find_all_template(tuple)
      @enum.find_all do |template|
        template.alive? && template.match(tuple)
      end
    end

    ##
    # Delete tuples which dead tuples from the TupleBag, returning the deleted
    # tuples.

    def delete_unless_alive
      deleted = []
      @hash.each do |key, bin|
        bin.delete_if do |tuple|
          if tuple.alive?
            false
          else
            deleted.push(tuple)
            true
          end
        end
      end
      deleted
    end

    private
    def each_entry(&blk)
      @hash.each do |k, v|
        v.each(&blk)
      end
    end

    def bin_key(tuple)
      head = tuple[0]
      if head.class == Symbol
        return head
      else
        false
      end
    end

    def bin_for_find(template)
      key = bin_key(template)
      key ? @hash.fetch(key, []) : @enum
    end
  end

  ##
  # The Tuplespace manages access to the tuples it contains,
  # ensuring mutual exclusion requirements are met.
  #
  # The +sec+ option for the write, take, move, read and notify methods may
  # either be a number of seconds or a Renewer object.

  class TupleSpace

    include DRbUndumped
    include MonitorMixin

    ##
    # Creates a new TupleSpace.  +period+ is used to control how often to look
    # for dead tuples after modifications to the TupleSpace.
    #
    # If no dead tuples are found +period+ seconds after the last
    # modification, the TupleSpace will stop looking for dead tuples.

    def initialize(period=60)
      super()
      @bag = TupleBag.new
      @read_waiter = TupleBag.new
      @take_waiter = TupleBag.new
      @notify_waiter = TupleBag.new
      @period = period
      @keeper = nil
    end

    ##
    # Adds +tuple+

    def write(tuple, sec=nil)
      entry = create_entry(tuple, sec)
      synchronize do
        if entry.expired?
          @read_waiter.find_all_template(entry).each do |template|
            template.read(tuple)
          end
          notify_event('write', entry.value)
          notify_event('delete', entry.value)
        else
          @bag.push(entry)
          start_keeper if entry.expires
          @read_waiter.find_all_template(entry).each do |template|
            template.read(tuple)
          end
          @take_waiter.find_all_template(entry).each do |template|
            template.signal
          end
          notify_event('write', entry.value)
        end
      end
      entry
    end

    ##
    # Removes +tuple+

    def take(tuple, sec=nil, &block)
      move(nil, tuple, sec, &block)
    end

    ##
    # Moves +tuple+ to +port+.

    def move(port, tuple, sec=nil)
      template = WaitTemplateEntry.new(self, tuple, sec)
      yield(template) if block_given?
      synchronize do
        entry = @bag.find(template)
        if entry
          port.push(entry.value) if port
          @bag.delete(entry)
          notify_event('take', entry.value)
          return port ? nil : entry.value
        end
        raise RequestExpiredError if template.expired?

        begin
          @take_waiter.push(template)
          start_keeper if template.expires
          while true
            raise RequestCanceledError if template.canceled?
            raise RequestExpiredError if template.expired?
            entry = @bag.find(template)
            if entry
              port.push(entry.value) if port
              @bag.delete(entry)
              notify_event('take', entry.value)
              return port ? nil : entry.value
            end
            template.wait
          end
        ensure
          @take_waiter.delete(template)
        end
      end
    end

    ##
    # Reads +tuple+, but does not remove it.

    def read(tuple, sec=nil)
      template = WaitTemplateEntry.new(self, tuple, sec)
      yield(template) if block_given?
      synchronize do
        entry = @bag.find(template)
        return entry.value if entry
        raise RequestExpiredError if template.expired?

        begin
          @read_waiter.push(template)
          start_keeper if template.expires
          template.wait
          raise RequestCanceledError if template.canceled?
          raise RequestExpiredError if template.expired?
          return template.found
        ensure
          @read_waiter.delete(template)
        end
      end
    end

    ##
    # Returns all tuples matching +tuple+.  Does not remove the found tuples.

    def read_all(tuple)
      template = WaitTemplateEntry.new(self, tuple, nil)
      synchronize do
        entry = @bag.find_all(template)
        entry.collect do |e|
          e.value
        end
      end
    end

    ##
    # Registers for notifications of +event+.  Returns a NotifyTemplateEntry.
    # See NotifyTemplateEntry for examples of how to listen for notifications.
    #
    # +event+ can be:
    # 'write'::  A tuple was added
    # 'take'::   A tuple was taken or moved
    # 'delete':: A tuple was lost after being overwritten or expiring
    #
    # The TupleSpace will also notify you of the 'close' event when the
    # NotifyTemplateEntry has expired.

    def notify(event, tuple, sec=nil)
      template = NotifyTemplateEntry.new(self, event, tuple, sec)
      synchronize do
        @notify_waiter.push(template)
      end
      template
    end

    private

    def create_entry(tuple, sec)
      TupleEntry.new(tuple, sec)
    end

    ##
    # Removes dead tuples.

    def keep_clean
      synchronize do
        @read_waiter.delete_unless_alive.each do |e|
          e.signal
        end
        @take_waiter.delete_unless_alive.each do |e|
          e.signal
        end
        @notify_waiter.delete_unless_alive.each do |e|
          e.notify(['close'])
        end
        @bag.delete_unless_alive.each do |e|
          notify_event('delete', e.value)
        end
      end
    end

    ##
    # Notifies all registered listeners for +event+ of a status change of
    # +tuple+.

    def notify_event(event, tuple)
      ev = [event, tuple]
      @notify_waiter.find_all_template(ev).each do |template|
        template.notify(ev)
      end
    end

    ##
    # Creates a thread that scans the tuplespace for expired tuples.

    def start_keeper
      return if @keeper && @keeper.alive?
      @keeper = Thread.new do
        while true
          sleep(@period)
          synchronize do
            break unless need_keeper?
            keep_clean
          end
        end
      end
    end

    ##
    # Checks the tuplespace to see if it needs cleaning.

    def need_keeper?
      return true if @bag.has_expires?
      return true if @read_waiter.has_expires?
      return true if @take_waiter.has_expires?
      return true if @notify_waiter.has_expires?
    end

  end

end

lib64/ruby/2.2.0/optionparser.rb000064400000000034150402105720012147 0ustar00require_relative 'optparse'
lib64/ruby/2.2.0/x86_64-linux/nkf.so000075500001156770150402105720012340 0ustar00ELF>@�@x�@8	@�\�\ ^^$^$hm� ����$��$  888$$h\h\h\  S�tdh\h\h\  P�td�I�I�IQ�tdR�td^^$^$�a�aGNU�*ّ�j/��&N�W�wbT%%���7HD+�(*���*���@2�%'(*+,-.024589:;?ACFHKMNµ{q��l�i�p� �ϵ�<����eF�W/�ûy�_:�2��Q�k}>�A�%$�� ���夂sc9d%x2�u��LO8Aq^�����CWQ.���"A�(JA{v!�9����;s�� ~�qXǤV��|�A׶�U�ˮ�����R�5cu�:BE��>'��5�ύ|S��oI�f H�~�3��� �4�%�A����x����, YF"�����$����$� ��
���$����$������ �n~��$�N��$��(,� g$�l �$���n��q$�[`�$� e$�o�a$�_��$� u$��d$����� �����$s f$���yb\�e$���$|�U��$@�x�$v@�$P� �$I@�$o�3�@�$P1�~.�j$���f$��x�$�`��E n$��$x��$�__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeencoding_name_to_id_tablex0212_shiftjiseuc_to_utf8_2bytesx0212_to_utf8_2bytes_x0213euc_to_utf8_1bytex0213_1_surrogate_tableeuc_to_utf8_2bytes_x0213euc_to_utf8_2bytes_msx0212_to_utf8_2byteseuc_to_utf8_2bytes_macx0213_2_surrogate_tableNkfEncodingUTF_16NkfEncodingUTF_8NkfEncodingUTF_32__stack_chk_failrb_str_resizeexitstderrfwritestrcmpmallocperrorinput_code_listshiftjis_x0212shiftjis_cp932cp932invutf8_to_euc_2bytes_x0213utf8_to_euc_3bytes_x0213utf8_to_euc_2bytes_macutf8_to_euc_2bytes_932utf8_to_euc_3bytes_932utf8_to_euc_3bytes_msutf8_to_euc_2bytes_msutf8_to_euc_3bytesutf8_to_euc_2bytesutf8_to_euc_3bytes_macx0213_combining_table__fprintf_chknl_langinfonkf_encoding_tablenormalization_table__assert_failreallocfreeNkfEncodingASCIINkfEncodingISO_2022_JPmime_priority_funcrb_nkf_enc_getrb_enc_find_indexrb_enc_from_indexrb_define_dummy_encodingrb_string_valuerb_enc_from_encodingrb_out_of_intnkf_split_optionsrb_str_newrb_str_set_lenrb_usascii_encodingrb_enc_associaterb_eArgErrorrb_raiseInit_nkfrb_define_modulerb_define_module_functionrb_singleton_classrb_define_aliasrb_define_constrb_utf8_encodingrb_str_new_staticNkfEncodingShift_JISNkfEncodingEUC_JPx0213_combining_charslibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.3.4GLIBC_2.4GLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64xti	�ii
�ui	�^$�^$�� ^$ ^$@^$��H^$u�P^$��X^$ʅ`^$څh^$څp^$�x^$���^$��^$��^$���^$���^$���^$���^$ ��^$'��^$+��^$O��^$/��^$q��^$9��^$<�_$?�_$��_$j�_$:� _$o�(_$v�0_$D�8_$H�@_$L�H_$Q�P_$T�X_$J�`_$_�h_$e�p_$i�x_$l��_$n��_$T��_$y��_$~��_$���_$���_$���_$e��_$���_$���_$���_$���_$���_$���_$���_$��`$*�`$��`$�`$�� `$�(`$��0`$��8`$��@`$��H`$g�P`$��X`$Ć``$Y�h`$��p`$�x`$���`$#��`$���`$+��`$���`$:��`$���`$2��`$���`$B��`$���`$M��`$���`$Ȇ�`$ӆ�`$Ն�`$�a$��a$��a$	�a$�� a$d�(a$��0a$��8a$��@a$��Ha$��Pa$ǃXa$��`a$Ճha$��pa$߃xa$���a$��a$���a$r��a$���a$�b$ � b$`�(b$��0b$�8b$ �@b$`�Pb$��Xb$�`b$ �hb$`�pb$��xb$��b$ ��b$`��b$���b$��b$ ��b$`��b$���b$��b$ ��b$`��b$���b$��b$ ��b$`��b$���b$�c$ �c$`�c$��c$� c$ �(c$`�0c$��8c$�@c$ �Pc$`�Xc$��`c$�xc$ ��c$`��c$���c$��c$ ��c$`��c$���c$��c$ ��c$`��c$���c$��c$ ��c$`��c$���c$��c$ �0d$`�8d$���d$��$�d$��$�d$��$�d$��$�d$��$�d$��$�d$��$�d$��$�d$�~$e$�x$0e$��$8e$��$@e$��$He$��$Pe$��$Xe$��$`e$��$he$��$�e$�z$�e$��$�e$��$�e$��$�e$��$�e$��$�e$��$�e$��$�e$��$f$�z$0f$��$8f$��$@f$��$Hf$��$Pf$��$Xf$��$`f$��$hf$��$�f$�z$�f$��$�f$��$�f$��$�f$��$�f$��$�f$��$�f$��$�f$��$g$�|$0i$`�8i$�@i$�Hi$�Pi$`�Xi$`�hi$�pi$`�xi$`��i$��i$`��i$��i$��i$`��i$��l$`��l$��l$`��l$`��l$��l$�m$�m$`� m$`�(m$�0p$�8p$`�@p$`�Hp$`�Xp$�xp$��p$��p$`��p$`��p$��s$��s$��s$`��s$`��s$��s$�t$�t$`� t$`�(t$�0w$`�8w$�@w$`�Hw$`�Xw$�xw$��w$��w$`��w$`��w$��y$��y$`�y$`�y$`��y$�hz$`��z$`��z$��z$`��z$��{$`�{$��{$��|$��|$`��|$`��|$��}$`�}$��}$��~$��~$��~$`��~$��~$`=�~$`<�~$`;�~$`:�~$`9�~$`8�~$`7�~$`6�~$`5�~$`4�~$`3�~$`2$`1$`0$`/$`. $`-($`,0$�+H$�*P$�)X$�(`$�'h$�&p$�%x$�$�$�#�$�"�$�!�$� �$��$��$��$��$��$��$��$��$��$��$��$��$��$��$��$� �$�(�$�8�$�
@�$�H�$�P�$�
X�$�	`�$�h�$�p�$�x�$���$���$���$���$�=��$�<��$�;��$�:��$�9Ȁ$�8Ѐ$�7؀$�6�$�5�$�4�$�3��$�2�$�1�$�0�$�/�$�. �$�-(�$�,0�$�+H�$`+P�$`*X�$`)`�$`(h�$`'p�$`&x�$`%��$`$��$`#��$`"��$`!��$` ��$`��$`��$`��$`ȁ$`Ё$`؁$`�$`�$`�$`��$`�$`�$`�$`�$` �$`(�$`8�$`@�$`
H�$`P�$`X�$`
`�$`	h�$`p�$`x�$`��$`��$`��$`��$`|��$`{��$`z��$`y��$`xȂ$`wЂ$`v؂$`u�$`t�$`s�$`r��$`q�$`p�$`o�$`n�$`m �$`l(�$`k0�$`j8�$`i@�$`hH�$`gP�$`fX�$`e`�$`dh�$`cp�$`bx�$`a��$``��$`_��$`^��$`]��$`\��$`[��$`Z��$`Y��$`Xȃ$`WЃ$`V؃$`U�$`T�$`S�$`R��$`Q�$`P�$`O�$`N �$`M(�$`L0�$`K8�$`J@�$`IH�$`HP�$`GX�$`F`�$`Eh�$`Dp�$`Cx�$`B��$`A��$`@��$`?��$`>��$�|��$�{��$�z��$�y��$�xȄ$�wЄ$�v؄$�u�$�t�$�s�$�r��$�q�$�p�$�o�$�n�$�m �$�l(�$�k0�$�j8�$�i@�$�hH�$�gP�$�fX�$�e`�$�dh�$�cp�$�bx�$�a��$�`��$�_��$�^��$�]��$�\��$�[��$�Z��$�Y��$�Xȅ$�WЅ$�V؅$�U�$�T�$�S�$�R��$�Q�$�P�$�O�$�N �$�M(�$�L0�$�K8�$�J@�$�IH�$�HP�$�GX�$�F`�$�Eh�$�Dp�$�Cx�$�B��$�A��$�@��$�?��$�>��$`���$`���$`���$`���$`�Ȇ$`�І$`�؆$`��$`��$`��$`���$`��$`��$`��$`��$`� �$`�(�$`�0�$`�8�$`�@�$`�H�$`�P�$`�X�$`�`�$`�h�$`�p�$`�x�$`���$`���$`���$`���$`���$`���$`���$`���$`���$`�ȇ$`�Ї$`�؇$`��$`��$`��$`���$`��$`��$`��$`��$`� �$`�(�$`�0�$`�8�$`�@�$`�H�$`�P�$`�X�$`�`�$`�h�$`�p�$`���$`���$`��$`~��$`}��$���$���$���$���$�Ȉ$�Ј$�؈$��$��$��$���$��$��$��$��$� �$�(�$�0�$�8�$�@�$�H�$�P�$�X�$�`�$�h�$�p�$�x�$���$���$���$���$���$���$���$���$���$�ȉ$�Љ$�؉$��$��$��$���$��$��$��$��$� �$�(�$�0�$�8�$�@�$�H�$�P�$�X�$�`�$�h�$�p�$���$���$���$�~��$�}��$`���$`���$`���$`���$`�Ȋ$`�Њ$`�؊$`��$`��$`��$`���$`��$`��$`��$`��$`� �$`�(�$`�0�$`�8�$`�@�$`�H�$`�P�$`�X�$`�`�$`�h�$`�p�$`�x�$`���$`���$`���$`���$`���$`���$`���$`���$`���$`�ȋ$`�Ћ$`�؋$`��$`��$`��$`���$`��$`��$`��$`��$`� �$`�(�$`�0�$`�8�$`�@�$`�H�$`�P�$`�X�$`�`�$`�h�$`�p�$`�x�$`���$`���$`���$`���$`���$���$���$���$���$�Ȍ$�Ќ$�،$���$���$���$����$���$���$���$���$�� �$��(�$��0�$��8�$��@�$��H�$��P�$��X�$��`�$��h�$��p�$��x�$����$����$����$����$����$����$����$����$����$��ȍ$��Ѝ$��؍$���$���$���$����$���$���$���$���$�� �$��(�$��0�$��8�$��@�$��H�$��P�$��X�$��`�$��h�$��p�$�x�$���$���$���$���$���$`;��$`:��$`9��$`8��$`7Ȏ$`6Ў$`5؎$`4�$`3�$`2�$`1��$`0�$`/�$`.�$`-�$`, �$`+(�$`*0�$`)8�$`(@�$`'H�$`&P�$`%X�$`$`�$`#h�$`"p�$`!x�$` ��$`��$`��$`��$`��$`��$`��$`��$`��$`ȏ$`Џ$`؏$`�$`�$`�$`��$`�$`�$`�$`
�$` �$`(�$`
0�$`	8�$`@�$`H�$`P�$`X�$``�$`h�$`p�$`x�$`��$`���$`���$`���$`���$�;��$�:��$�9��$�8��$�7Ȑ$�6А$�5ؐ$�4�$�3�$�2�$�1��$�0�$�/�$�.�$�-�$�, �$�+(�$�*0�$�)8�$�(@�$�'H�$�&P�$�%X�$�$`�$�#h�$�"p�$�!x�$� ��$���$���$���$���$���$���$���$���$�ȑ$�Б$�ؑ$��$��$��$���$��$��$��$�
�$� �$�(�$�
0�$�	8�$�@�$�H�$�P�$�X�$�`�$�h�$�p�$�x�$���$���$���$���$���$�W��$`W��$�V��$`VȒ$�UВ$`Uؒ$�T�$`T�$�S��$`S�$�R�$`R�$�Q �$`Q(�$�P0�$`P8�$�O@�$`OH�$�NP�$`NX�$�M`�$`Mh�$�Lp�$`L��$�K��$`K��$�J��$`J��$�I��$`IГ$�Hؓ$`H�$�G�$`G�$�F�$`F �$�E8�$`E@�$�DH�$`D`�$`Ch�$`Bp�$`Ax�$`@��$`?��$`>��$`=��$`<`�$�Ch�$�Bp�$�Ax�$�@��$�?��$�>��$�=��$�<��$�v��$`v��$�t��$�sؖ$`s�$�r�$�q�$`p��$�o�$`o�$`n�$`m�$`k �$�j(�$`j0�$�i8�$`i@�$�hH�$`hP�$�gX�$`g`�$�fh�$`fp�$�ex�$`e��$�d��$`d��$�c��$`c��$�b��$`b��$�aȗ$`a�$�`��$``�$�_�$`_�$�^�$`^ �$�]8�$`]@�$�\H�$`\P�$�[X�$`[`�$�Zh�$`Zp�$�Y��$`Y��$�X��$`X��$`w��$`v��$`u��$`t�$`r�$�p�$�n�$�m�$�l�$�k��$`w��$`v��$`u��$`t�$�r�$`q�$`o�$`n�$`m�$`l��$�w��$`v��$�u��$`t�$�r�$`q�$`o�$`n�$`m�$`l��$���$`���$���$`�Ȟ$�О$�؞$��$��$��$`���$��$��$`��$� �$`�(�$�8�$�@�$`H�$�~P�$�}X�$�|`�$�{h�$�z��$`z��$�y��$`yП$�x؟$`x��$`���$�Ƞ$`�Р$`�ؠ$`��$`��$`��$��$`�(�$`�@�$`H�$�~P�$`~X�$`}`�$`|h�$`{��$`���$`�Ȣ$�Т$`�آ$`��$��$`��$`��$`�(�$�@�$`H�$�~P�$`~X�$`}`�$`|h�$`{��$���$`�Ȥ$�Ф$`�ؤ$`��$`��$`��$`��$`�(�$�@�$`H�$�~P�$`~X�$`}`�$`|h�$`{��$`���$`�Ȧ$�Ц$`�ئ$`��$`��$`��$`��$`�(�$�@�$`H�$�~P�$`~X�$`}`�$`|h�$`{`�$`���$���$����$@���$���$@���$��Ȫ$��Ъ$��ت$���$��$@��$����$��$@��$���$���$�� �$�(�$@�0�$��8�$��@�$�H�$@�P�$��X�$��`�$�h�$@�p�$��x�$����$���$@���$����$����$���$@���$����$����$�ȫ$@�Ы$��ث$���$��$@��$����$���$��$@��$���$�� �$�(�$@�0�$��8�$��@�$�H�$@�P�$��X�$��`�$�h�$@�p�$��x�$����$���$@���$����$����$���$@���$����$����$�Ȭ$@�Ь$��ج$���$��$@��$����$���$��$��$@��$�� �$��(�$�0�$@�8�$��@�$��H�$�P�$@�X�$��`�$��h�$�p�$@�x�$����$����$���$@�ȭ$��Э$���$��$@��$���$�� �$�(�$@�0�$��8�$��@�$�H�$@�P�$��X�$��`�$�h�$@�p�$��x�$����$���$@���$����$����$���$@���$����$����$�Ȯ$@�Ю$��خ$���$��$@��$����$���$��$@��$���$�� �$�(�$@�0�$��8�$��@�$�H�$@�P�$��X�$��`�$�h�$@�p�$��x�$����$���$@���$����$����$���$@���$����$����$�ȯ$@�Я$��د$���$��$@��$����$���$�0�$@�8�$����$�H��$�E��$@D��$�B��$@AȰ$�?а$@>ذ$�<�$@;�$�9�$@8��$6�$�3�$@2�$�0�$0 �$@/(�$�.0�$�-8�$-@�$@,H�$�+P�$�*X�$*`�$@)h�$�(p�$�'x�$'��$@&��$�%��$�$��$$��$@#��$�"��$�!��$!��$@ ȱ$�б$�ر$�$@�$��$���$�$@�$��$�$@ �$�(�$�0�$8�$@@�$�H�$�P�$X�$@`�$�h�$�p�$x�$@��$�
��$���$��$@��$�
��$�	��$	��$@��$�Ȳ$�в$ز$@�$��$��$��$@�$��$��$�$@� �$��(�$��0�$�8�$��@�$�H�$@�P�$��X�$��`�$@�h�$��p�$@�x�$���$@���$����$H��$�F��$E��$�C��$Bȳ$�@г$?س$�=�$<�$�:�$9��$�6�$�4�$3�$�1�$0 �$@/(�$�.0�$�-8�$-@�$@,H�$�+P�$�*X�$*`�$@)h�$�(p�$�'x�$'��$@&��$�%��$�$��$$��$@#��$�"��$�!��$!��$@ ȴ$�д$�ش$�$@�$��$���$�$@�$��$��$@ �$�(�$�0�$8�$@@�$�H�$�P�$X�$@`�$�h�$�p�$x�$@��$�
��$���$��$@��$�
��$�	��$	��$@��$�ȵ$�е$ص$@�$��$��$��$@�$��$��$�$@� �$��(�$��0�$�8�$@�@�$��`�$�h�$��p�$�x�$����$H��$�F��$E��$�C��$Bȶ$�@ж$?ض$�=�$<�$�:�$9��$�7�$@5�$3�$�1�$0 �$@/(�$�.0�$�-8�$-@�$@,H�$�+P�$�*X�$*`�$@)h�$�(p�$�'x�$'��$@&��$�%��$�$��$$��$@#��$�"��$�!��$!��$@ ȷ$�з$�ط$�$@�$��$���$�$@�$��$��$@ �$�(�$�0�$8�$@@�$�H�$�P�$X�$@`�$�h�$�p�$x�$@��$�
��$���$��$@��$�
��$�	��$	��$@��$�ȸ$�и$ظ$@�$��$��$��$@�$��$��$�$@� �$��(�$��0�$�8�$@�@�$��`�$�h�$��p�$�x�$����$�H��$@G��$E��$�C��$Bȹ$�@й$?ع$�=�$<�$�:�$9��$�7�$@5�$3�$�1�$0 �$@/(�$�.0�$�-8�$-@�$@,H�$�+P�$�*X�$*`�$@)h�$�(p�$�'x�$'��$@&��$�%��$�$��$$��$@#��$�"��$�!��$!��$@ Ⱥ$�к$�غ$�$@�$��$���$�$@�$��$��$@ �$�(�$�0�$8�$@@�$�H�$�P�$X�$@`�$�h�$�p�$x�$@��$�
��$���$��$@��$�
��$�	��$	��$@��$�Ȼ$�л$ػ$@�$��$��$��$@�$��$��$�$@� �$��(�$��0�$�8�$@�@�$��`�$�h�$��p�$�x�$��@�$�H�$Px�$ ��$ ��$����$�F��$����$�F��$ ���$����$�F�$���$�F�$ ��$���$���$����$���$���$���$���$�� �$P�@�$
�`�$�Sh�$�x�$���$P2��$P��$���$�T��$ ��$��$� �$�H�$ ���$����$�F��$����$�F��$����$�F��$����$�F��$D���$���$���$�� �$��0�$�@�$��P�$�`�$�p�$ ���$(���$6���$D���$U���$Q���$_���$h���$l��$x��$� �$��0�$��@�$��P�$
�`�$��p�$���$����$߄��$����$����$‡��$·��$݇��$��$҄�$� �$��0�$�@�$
�P�$�`�$�p�$[���$���$*���$3���$���$j���$@���$M���$V��$˄ �$�(�$ �0�$P@�$�H�$�P�$�`�$�h�$ p�$p��$
���$���$$��$���$P��$'��$����$���$`���$����$���$$�$D� �$c�8�$��P�$��h�$���$ ���$(���$6���$D���$���$n��$��(�$
�@�$z�X�$�p�$����$����$����$����$���$҄�$��$��0�$�H�$
�`�$�x�$[���$���$*���$3���$���$j��$@� �$M�8�$V�P�$˄��$2��$(��$Ⱦ$Mо$,ؾ$N�$.�$*�$0��$0��$0�$0(�$0@�$0��$)�$O�$%�$<�$5 �$H(�$
0�$:8�$C@�$6@�$6X�$6p�$6��$6��$6��$6��$6H�$AP�$&X�$G`�$3�$3 �$38�$3P�$3h�$Ip�$7x�$1��$/��$L��$J��$+��$9��$8��$4��$>��$ȿ$-�$-(�$-X�$-п$ ؿ$!�$Eh�$E��$E��$E��$E��$E�$#��$;�$;�$;��$;��$;0�$?H�$?`�$?x�$?��$?��$?��$?�$ �$(�$0�$8�$@�$H�$P�$	X�$
`�$h�$=p�$x�$@��$��$��$��$��$��$��$��$��$�$�$�$�$�$�$��$�$�$!�$"�$$��H��H�1�#H��t��H����5�#�%�#��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h ��������%�#D���%�#D���%�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#DH�%fDH�=!�#H��#H9�tH�V�#H��t	�����H�=�#H�5�#H)�H��H��H��?H�H�tH��#H��t��fD�����=��#u+UH�=�#H��tH�=>�#�)����d������#]������w�����?X��L�
(�#A�A����S�M�A���te��tM��A���C�B���tJI����t&���a��D�^���AB��aD�Z�AB�9�t�I��A�A��y������[Ð��fD��t�I��A�A���t�����f��-�O���H���F������������S���&1��$�#����#1���#��?B�=�غ��C1���ֺ������������)ƃ�0���#�ھ�Z|
1������ֺ������������)ƃ�0���#�غY��1���ֺ�����
�������)ƃ�0�|�#�غ�Mb1�����ֺ���̉������)ƃ�0�P�#�غ��Q1���ֺ������������)ƃ�0�$�#����̉�1�����Љ������)ƃ�0���#�غ����1�������)Ís0���#�;1�[�%��#f����������'��������(�����c�K�����	~��m���f���AU�&ATU��1�S���H���e�#�#1��X�#�x1��K�#��L�%:�#��ك��t;�ЍY���9�|�L�-G��D����1����A�tA�ԉم�y�L�%��#H��L��;1�[]A\A]�����AT�\U��1�S����#���������U1�L�%Dz���#�01����#�01���#��1���H�A�4�k�#��1�����A�4�V�#��1�������A�4�>�#���1�������A�4�#�#A�41���#A�4,[1�]A\�%�#D�u1�L�%����#�f���AU�\ATU��1�S���H�����#�x1����#�{1����#��L�%��#��ك��t;�ЍY���9�|�L�-���D����1����A�tA�ԉم�y�L�%V�#H��L��}1�[]A\A]������N�#�����%"�#f.�A��fA��fA���tP���~�D�G�A�qA�����_EM�D�����~t1���_�����1�����D�
�$��D�@�E��tD�H�A��~QD�H�A��vwA��]w�L�
��#Mc�O��M��tA��A��G�LH�E��E��uqD�@��A��
�F����DMc�L���C�<
t�A��vYD�@�A��v��f�A��v:��������~�2����"���A��E��1�D�
D���D�@�����A����@A�����~�������@��%����ǀ��u���A������u ����?�@�π��:�A��f����t8=��aA����?A��@�πA���D��������?��?�@�΀�2�A�8�A������?A����?@�πA����D���9A������A��fDH��tk�ǀxf9�}bHc�H��H��tV�ƀ���?wHHc��rf��t<�
C$��f����t
f���w&f��-t f��x+��f���D���A�1�A�ø�f.����̏����fD������f��f=�tH��1���!��]���
Q$���9��$���cH���#Hc�H��D1�H��um�D�
�$E��u��"�u
����Ct4��1���!��]w'D��$Hc�E���"H�s�#H���D1��D�=1$��H�
<�#��1��V߃�]w�Hc��Q��$��tȍ�(�����w��W!Hc���	�H��#H9���L���#�".1�I�x�������t����H��9�u�Hc�H�IA�TP���T�����
��$���f�H���#Hc�H������D���� ��������}�!������Hc�t H�!�#H�����H�a�#H�����H�I�#H���x���L�Y�#�!!1�I�x�@����������H��9�u��0���f���H���
�#�H������H�����#� H����D���#A��tC~!A��tKA��u-������	���	��fDA��u����	��	��D���f�������	�	�Ð����	��	��9=�$txS����Y�	~/��)�3��3����h���M$[���t;��u����#�(���#�I���#�$[�f�������#�.���#�A��#��$[����e�#�$�Z�#�(�O�#�Q�D�#��$[�@��-�#�$�"�#�=h�#��#�w$[�D����#�$���#�(���#�D���#�>$[�@����#�$���#�(���#�P���#�$[�@D�_E��xOA���t>�wA���tRI��D���w�����t3D�؃�p�� ����p����O~A�JÃO��O�A�J@�f.���G��p�� t+��`tV��pt	���G�f���H�����G����H����G��A��H�u�B��A	B�@��H�����G��A��H��B��A	B�ff.����AUATU��S��H�����$��$A�ă�
A������$�������
��E�����������%�

�k$��=a$
H�*�#�H$t1��
�Ѓ=>$
tH��#�
1���E��t7E��t2�$
H��[]A\A]�D��u���
u�E��u�f.���u��
t�H���މ�[]A\A]�%��#��
��D��tE��u`��t���uH��$
�A���f���u��
�+�����$��������@��

u�������
u����fD�R$����������'���f���ATU��S�������=�#��t�=��#�.H���#������p$�у���#u������!����������������&���H�ަ��<���&��H�y�#H��1����3@��u�[]A\�@����� 1ۉ��[]A\��fD�F����<�� �3�A�#����H��#��$1Ƀ�t���%����t����������1ہ����g����w������[�]A\��f����#L���#�D��PH�H�
��Hc����#�4�<A�Ё�������D-�H�
ĶHcЀ<��H�
��<���
�$��tH�
U��<����H�
!�[]H��<A\�4�%�#D���h�������������������[�]A\�%��#���!�w�����t�M߃�]����n����Uރ�5�b���H�
[�Hc�H�>��H�ڤ��>�����|���H�Ǥ��"���d����-f�#�`�#���=N�#�����>�#L�;�#�D��P��^�[H���_�v���H�5ɴ���u!�5[$���Y���H�5�����F���Hc�[��]���#�4A\A��D�����u���� 1���[� ]1�A\�%��#�M�H�5N�Hc������������������,��������������������������}������s������i������_���@�U�H�
��Hc�D�$�E�������D������A�������D�����@H�3��T���@1�����H�
�Hc�H�[���#]�4�<A\A��ff.�����t��w/��@~��M~E��Z~��`~��m~6��z���
�%O�#��� ~��O&��/�� ~�O)��/��@��
�%�#��Fу�L���D�Gу�L��D����$H���#�t
��%t.��!tq�t�������0���t�%��D�F߃�R�|��tu�H�x$H�@H;u�#A��H;��#��A�u	H;k�#u���01���N̓�vH�t��Fˉ���!��C�����$u+�� ~&1���t@�ǃ�$��$��f�������!t��O���ff.����F�=�w�� vm�G׃�ve�G���	v]H���A�9"�/"A�.L���A�"�fD�D�@H�������9�D9�AN�AN�I9�u�%e�#D�.�"�@���5f�#H�
_�#���V��T�#��@�<�f����ff.�AWAVI��AUA��H��ATI��UH��SH���҉�D9���H��A��D�x�A�ōP�A��	v@��v;�@����H��A��A�č@�A�L$���	v��v
A�T$���wjA�]���9��T$H��A�ԋT$A�č@Ѓ�	A�L$�vD���߃�A��w4A��	wFD������	w[	�H����[]A\A]A^A_�H��D��A����DH��D��A��H��D��A����@A�u����q���1ۃ�w�A�]����A�D$���wA��7D	��D��w�A��WD	��f���H�
��#H���#H���:�������%v�#fD��H�
U�#H�V�#H���%�q�������%6�#fD��AWAVAUATUH��SH��XL�-�#L�%��#dH�%(H�D$H1�A��A�ljD$��&t.H�T$HdH3%(D���zH��X[]A\A]A^A_��H��A�ՉD$��#tH���A����H��A�ՉD$��߃�X��H�D$A�E1�H�D$�.D��vC�G�����A���G�A	�I��I��
��H��D��A�Չ�H�D$�O�B�<��GЃ�	w�A����	wA	��ōG���v���w��G���A�E1���2���H��A��HcӍHЉD���	wpC��D�<AA��tVA��A��u�HcӋD��HЃ�	wIC��D�<A�݃�;uA���u(��Hc��@�|�H��H��A�ԅ�u�D�|$���A���z�����;t�|���8�����%6�#fD���%V�#fDH����	$������uDH��	$H�
��@����0�<��#�=���#�=���#��	$��	$��~0�=�
$t/�?���#�=���#�b	$�\	$H�����Qt��E	$BH���@H��$H�r��@����<�<�o�#�=�d�#�	$�	$�n���f�US��H����$H�;�#���2����B����Q����
�a��
�X�GЃ�	������߃�A�����=H�-o��҉؃������|���#�|���#�]$H��[]�fD��uSH�$��H�-����?���@������<	�H��|���|�k�#�$�$BH��[]���҃�$H��[]�fDH��$��HcۉxH���<�҃�$��$H��[]�H�i$�����@������0	�H�
ϧH��<��H�@$�q$�k$�XH��[]�D����J$���ff.�f������u�fDHc�$�5�$S��9�}H��$�H�
�$�[��5�$H�=�$�5�$Hc���H�n$�%p$H� u'H��Hcd$H�u$�H�[�
P$��H�R��f���H�U$H�H�JH9
~H�BH�qH�r�<����P����ff.����H�$H�HH�QH��~���@H;}H�AH�rH�q�<����P��~�ff.���PXH�=#_�(�H��H�v�#H��f���<�ff.����PX1�H�����ff.�@H�51$H��t$H�������tH�ӘH�$H���@H�=$��H���H��HD����H��tH���H�=R������ff.�UHc�SH�����H�<�H�����H�+H�CH��H�CH��[]�@H���#H�8t)H��8�@�H�8�@��@Ԁ�@�u��$H��$��$H����$��$��$�@�#��$��$��$��$�r$��#�����Z$��$��$�t$H�a$���#?���#�?$���#��$��$��$��$��$��$��$��$�G�#�y$�k$�H��H9�u�H�����H��Y���#H���#H�
����H���#H���#H���#H���#H���#H���#H�e���H�f�#H�O�#H�0�#H��#�k�#��$��$��$��$��$��$�}$�W�#B�O�#B�A�#
H�
��#H���#H���#H�
��#H���#H���#�-$�$�$��$H��$��$��$��$���#���#H��$H�h$H�U$H�B$H��t2H�H�BH�PH�BH�P H�B�@�@�S�(�����H��H�9$�D����H�H�%$�0����	H�CH�$����H�C H�$�@�@[�H�!�#H�H��t,H;z(u�!f�H9z(tH��8H�H��u��DH���@D���#��$E��u.���������G���	�a��:�11��f�D�����A������uō�������<H�D�F�L�@Mc�L��H��L)�L�L���#E�@D��E�������D�?�a��N�D��)ǁ��� ����~�G���	����w�����	�Q������π��C������������H�D�F�L�@Mc�L��H��L)�L�L��#E�@E����D��A�����������DMc�D�N�O�@Mc�M��I��M)�M�L�
V�#G�AE��tPD��A�������������D���
������������f�L�Q�#E�@D��E��u\D�?�aD��)ǁ�����1�������)����������������~L��������x�/�뿐D�������������A���M��2����f�1����L��������Hc�I�<x�<�� �����<����T���fD��?�����������5�������f�UL��SH��H��dH�%(H�D$1�����D���#�A�8E��t&E1�H�L$dH3%(D���%H��[]�D�;��f��f=�uϋuH�L$H���b��A�Å���t$�����<$H��H������A���UD�
�#D��#E����A����A����A�����5R�#����H�c�#��fD�ց���A�
��#D���#����A����A���QA������#���yH�*�#��DA���.D���#E����A�������F���A���<�����^�����w#�A�H��$@�w���f.�H�q�#�@A���&A���lA��������N�������A�����A����
A��������A������������@���������d�����H�����?�<�N���f.�A����D����d���u��H�C�A���?�<�m���H���#I��I�عpD���F��A��E���G���D��#E���4����U���DA����������t����]���H�^�#Hc�I��I�ع@H������D������A����������uA����������������H�Y�#�����u��H�ϙ��?�<����f�H���#����@H���#�^���@H�i�#���@�����H���#�2������H�'�A���?�<������������H����?�<������=���DA���tA�������A�����������A���tfA��������������A�����A����3���A�����!����]���A�����W����F����Ѓ�=��6�������}����%�������%������#A�������������`���A�����������A���������A�����������������f�ATA��UA���H��SH��H�� dH�%(H�D$1���%���u/�D�"H�\$dH3%(�QH�� []A\�f�������N�#����D����@�1�L�W�#��
������I�P�f.���H�������B�9�u��9�u�Hc�H�IA�@�����U�1��M���H�L$H�T$D��H�t$L�D$�����T$�t$I�؋|$H���]���������A���E1�D�#���DL�1�#�@�1�I�P�@��H����t��B�9�u��9�u�Hc�H�IA�@�����Ώ�U�1�����<��ff.��H����dH�%(H�D$1���5�D$�<$1�����#1�H�|$dH3<%(��H���D��H������tс���w��uC���#��t9H�5��#�K0H�VH�Ƙ�H9�t�H��9�u�H����H��H�t$�������H����g����$�|$�Q���f������F������D$1��$�$����'���������=��#tN��(�����w3��$�����������	�	��
��$��1����f���	�1����@��(�����wE��$�����wJ����	�	�1���
��$���_����H��1���#1�H���D��	�1��4���@H����������	��=��#u����	������ff.�f���H���|$�t$��ud��%�=���=��#H�B�#v4��п(�.�#�=s�#�!�#H��#�|$�t�#��H���D��������6������f��f=��j��#�� ������rw��D$�� ��^����u��=,�#�@��5��3�k���|$���#�|$��#�p���f�H�T$H�t$�1����|$���]����|$��%�=�������%����D$-�=Ww�"�#���H��#H����������D�=i�#H���#v0��п(���#�=+�#���#H���#�0�#��������fD�=�#H���#v0��п(���#�=��#���#H���#���#�|$@�π��H��Ð�=��#�@��0��)�(���|$���C�#�|$�9�#�*���@��^�����f���f.������|$�	�#������]AL��������zk�^�|$)эA!�D$������H��(�|$�t$dH�%(H�D$1���t`���tX������G�t$��vl��~g��#�����o�#��t�������	�������t$�|$�0@�=�#��t
�5��#��t<�t$�D$����t$�^�#1�H�L$dH3%(�yH��(��D$"�"�.�D$.�@���?�
b�#�D$��tj�����ljT$�ց���|$H�L$H�T$���������t$����|$H�L$H�T$��|$�t$����D�������=��#��u>�������	w3��_�����]w(k�^�D$��
����t$���������lj։T$����|$���������G��t$�|$��������'�����t$�|$�����_�����]�X���k�^�D$1���_����t$�u���������s����2��f���H����_����|$�t$��>v-��t%�G�t$��v	��\@���#1�H������#��t.���#��u$�D$"�"�.�D$.���t$���t$��z�#��uN�������	wC�N����w8��t�1���~�D$��iҼ1�)�������t$�S��������G���H�L$H�T$�����0����t$�|$������~���~~�������?��	����f.����~8���K������?������	ʁ��%<	�	‰׉��fD������?�ǁ���	�	lj�ÿ�����ff.������w$1ҁ�	�H�=t�#H�O�fD����t �H��9�u�Hc�H�R�DG��1��ff.�f���AWAVAUATUSH��(�|$�t$dH�%(H�D$1���#��t+��#�����#�������#������	�#D�T$A�����D�\$E��uHD��L��#%�=�^D��A��H�D$dH3%(�~H��([]A\A]A^A_�DD��D������Å�tǍ����H�-��#�����0���u�������ttL�|$L�t$L�l$L�d$M��L��L��L��������|$�Ջ|$��t�1�#�|$��t�#�#�|$���G�����#�<���@D����#�*���f�D��L�|$L�t$D������L�l$L�d$���y�����M��L��L��L���V���|$�Ջ|$��t���#�|$H�-��#��t	��H�-��#�|$���.�����H�-}�#� ���D��H�L$H�T$H�t$���L�D$�����|$A�ҋ|$�����������������AUATU��S��H����#��t0�=q�#H��#���#�n���п���#����;��u?��%�=�1��= �#H���#��Љ�H��[]A\A]�%��#������A�ą������������A���0�����A��$�������D��A������=��#��E��H�8�#� ���H��D��[]A\A]�%�#%���=���0��
�������A����H��#A���=8�#�D��Љ�ɻ#��H���#@���=�#�
���H����[]A\A]�%��#fD����~�#�������������
������\������������
%��������H�-�#A��@��A���=w�#�oD��Љ��#��H���#����=N�#���Љ��#�~���H��[]A\A]�D����������=�#��@��H���#����������H��1�[]A\A]�%��#f.�%���=�����
A������A���H�N�#��@����=��#tl��Љ�0�#D��H�&�#E���=t�#���D��Љ��S���fD�=U�#����H��#�������Љ�ڹ#�x���D��Љ�Ĺ#�f.����D����#�������D����#���ff.����AUATA��U��SH���S�#��t@�=��#H�]�#�7�#��1���1��A�#���6�#���+�#���ti���#��uoD��D��D�
f�#L��#%����=AE܉������A��@��A����1�A�Љ�Ƹ#D����#��H��[]A\A]�%��#D������Å�������D�
�#L���#�����0���u��������q���D���������_�������D��A��@��A����1�A�Љ�$�#D���#D���#D�
g�#L��#�����D��D�
J�#L��#�ˀ�����A��D��ʷ#��·#H��1�[]A\A]�%��#����п����#1����#1����#�V���f�H��[]A\A]�DD��A��D��Y�#��Q�#1��I�#D�
��#L�;�#�G���ff.���u�1�A�8�D��@���1�A��/v�AVA��AUI��ATM��U��S���6���~!A�E1�D�����l���
A�$1�[]A\A]A^����H��A��1ɉ|$�t$���~��A��D�L$A���wnE��uD�\$D��D����#1�H��ÐD��1������t�A��@���H���H����<�FH��}��Hc�H�>��f.�A�AD�\$����D��%�=����u�#��tQD��D��D���s���H�5��#�K0H�NH�Ƙ�f.�H9�t�H��9�u���H���fDH�L$L�D$D��D��D���X������
���D�\$D�L$����D��D��D������D$E1�
A�ÉD$����fDA��������DE���>D�\$1�A�S��������D�ҁ����������ʁ�����t�������DE����D�\$1�A�S���?v��L���f�E����D�\$1�A��p�����/v��)����E����D�\$1�A�S�������D�ҁ�������S����E��tjD�\$1�D�ځ����������DD�\$1�A�S���?��������E��t"D�\$1�A��`�����v����1��{������s���������i���ff.�@H�����|$H�L$��L�D$�t$�����u�t$�|$�D$�ӳ#�D$H���f���~[����������-����������0���u<���������t,�1��������D������f.�L�ٰ#�K01�I�P�@��H����t��B�9�u��9�u�Hc�H��H�IA�@��������#1�H��ø��f�SA��A���D�Ɖ�1�D���8�A����x!��D��D��1��"�[D�Ɖ�����[�ff.����#H����t��
t=

t'��
t�
��f��
��f�SH���
��H�ؿ
[��f.�AVAUATUS���5��	L�%�sH�5GN#L�@��
fDA��Hc�9����PH��L�$�M��u�Hc�H�πL�%Ls���=�#-��#���#��H�U�#��~�:�#< �b<	�ZH��E1����� �$�#�Z�#���#���fH�-��#Ic��T�� w)H�&H��sA���|f��ڰ#�{�#I��A�<$@��u���#��#D9�~2Ic�H���#��H�D)�H�H�fD�}H���H9�u�[]A\A]A^�DE1�H�-V�#A9�}�Ic��|@�� w�I�&I���p���A�^Hc���*�#���#A��9V�#�E����|@�� �6���H��I��r��'���fDH�9���l������A���H�=ί#���� ���#��#�V�#�������H�-��#�����BL�%bq����f���AWAVAUA��ATUSH���=H�#�
�#�(D�=��#H�-:�#E������A�����E��~
C�7Hc�D�tA��	��Q�w��~cA����E��~>�6�#1���|Lc�@��
�N@��
�D���H��A9��H��D��[]A\A]A^A_�`��A����A��
�$A��
�A�� u@�=��#~&1ې�|H���q�#���#��#��9���F�# ���#�=��#�a���D�%v�#�,���D���#��Q�Y��G�(A����H���H��[]A\A]A^A_����=��#��v	���>���A��
��A��
��	�A�� ��A��	����������D�
�#�F�#E���3E1�1��%fD�*�#��H��9��#��#���|�^�#�D<
t<
u�1���D���#��vD�%r�#���$���A��
��A��
��Lc%N�#A�� �(E���9���A�� ��A��=���A�D$F�l%��#��J�DH���#���#H�kL��;H���^��H9�u��@�*�#���O���A��
��A��
��A�� �
�?�h�#�=�]�#���#���#�����#��F��A�� tA��	t� �$�#���#A���0���#����������#��t	���K���D�%&�#���#D����D�L�����#��
����
��E�L$�E���7E�T$�1�L�wm��XH�PI9�t!H��H�t�
L�lj���€���uփ�A9���Lc�I��N�|5A�<$I���E�#M9�u�H�=9�#���j�#���#9�~#�H�H��#)�H�L
B�42H��@�r�H9�u�)؍PH��,�#D�l��J~X�=p�#H��[]A\A]A^A_���D��G~+��
t��
t�=���#H�=��#�b����@�#A�������H��[]A\A]A^A_��D���#1�E��~!f.��|H���Q�#9��#����#�q�#A�� ��������fD������I�#����A�_�Hc��D< ��<	��E������I�&A��E1��	fDI��B�|5@�� wI��s
�=T�#F���Q��I�FM9�u����E9�������B��A��H�h�#L���#A)�I�M��}H���R�#L9�u�=��#�b����w���DA����`�#E�������H��#A�G�H�kH�f��;H�����H9�u��\���f.�H�&L������E���@H���#A�L$�H�BH��fDH��H9��|���!<]w��L���
²#1ۅ�~�|H���q�#��#9��#����#D�-A�#���@H�-1�#��H�EH�E���!�����}H������H9�u������=��#�&������#D�=5�#����@���H�=�#����}�#���D�t$���HcD$D9��*���H���#H�D)�H�H�D�}H���C��H9�u����f�E��t�6����#��#D�-K�#���#���@A�� tjA��	td����5m�#1ۅ�~�|H����#9O�#����#�������+���B���D�&�#E���L����z���@�=�#1ۅ��f�����|H���b��9�#��C����?���#�=���#�0�#D���'�#�u�#��#�����=�#F~S�?�R�#�=�G�#H�=@�#���#���#��� ��#�=��#���#�*�A���:���A�Eރ�=wH��( H������D��ڥ#�{�#�@�����uD���#A�E���"����4�������0�#��H�=��#�R��0�#�H���A�D$F�l%���#���H�=g�#�"��K�#���#< v� �B�#���#�q�#�5�����H��	H��r���A�D$F�l%�K�#��J�x�������7�#1ۅ�~#D�|H����#���#9�#���#�5����:�#H����t��
t=

t'��
t�
1�����
1����SH���
1���H�ؾ
1�[��fD����
to��
t"�������#��~	�����#�%��#���#��
����������#���Z��
t9���D�
��#E��t��t@�~�#���������D�f�#E����[�#������ ����	���5;�#��!�A���
�#'�#�!�#9��?���
ߢ#9���1����������#��f���D���#E���(��������G�5��#Ë��#�=��#��������
uV��!A����!��E������ t��~�# �|�#��;c�#�m�#� 1��%�#f.��5J�#H�=��#�=�#����@���t[���������#
��#U��S��H��H�=��#���H�����[]�%��#��
��#��u������D���#E��u���
�������
u��@�������#
�D������#1��������T����� ������5q�#���@��tm����1���?wH�����H������߃�]�[������S���E���J����Ѓ�߃�A��vu�BЃ�	w	���,������#����F߃�>w�H�
�`H��������D��!t���#����Fރ�5w�H�� H�������Ӄ� t���
t��f���U��S��H�����#����H�
�#���t ��������H�����[]���5ު#�VUUU����8�#)����I~�1���H�=��#���� 1����#H�
��#������#H��[]��@�G���|H�
m�#H�����[]��f��5V�#�VUUU������#)����B�C���1��������H�="�#�%���� 1���#�v�#�p�#�����f��
��#�VUUU�����P�#)ʍ���<�^����=$�#�������B�/�#��1���������#�{���ff.�����F�#S����t�)�#��[�D���#H���#�����#%�@�<��[�ff.�f������#��t
�%�#@�J�#�P%��<�#H�-�#���H��H��H��`�HD�H��#H��`H�81����f���@~��Z�G��f���_�G��?D�Ð��/~�G����+1�������>Ð�^�#��uvH�=~�#tl����USH��H���#H9��#t>H��t2H�����H��H��t"H�8������#��tH�}�.���H�g�#H���#H��[]�f�9�t4�=��#��H��t����tH�=��#�p���H�5%�#���i����@����@��H��(�|$�t$dH�%(H�D$1���uD��%�=�����#���#H�D$dH3%(��H��(�����u�U�#������������f��f=���D$��!��]���G߃�]���m�#@�π���#�|$@�π�f�H�T$H�t$����|$���m����|$��%�=�'�����%����D$-�=Ww�
&�#���*H�s�#H��������������#�|$@�π�`�#�������#���C�#�|$@�π�5�#����1�1�������f��v�#�X�#��t,���#���v�������#�|$����f��t$H�L$H�T$�����u�t$����|$H�L$H�T$�:���D$��u���#�|$���#������f��f����l������c������]AL��������k�^)���H�
F�#��!���~+����D$�ЉT$f��f=�u6�����|$������u�D$�T$�ʀ��ы|$@�π��#�k�������艣��f���H���|$�t$��u,��%�=���#���#H������t�t$���s���J��f��f=����F�^�n�G�^�bH�L$H�T$���#	�a������#�|$��tS�������wH�L$H��Q�H�@H��Hc�H��H)�H�H�T�#�B�Ѕ�t�����T$�׉D$f.��ҙ#�|$H�O�#@��������������#�|$���DH�T$H�t$�Y���|$������|$��%�=�������%����D$-�=Ww���#����H�+�#H���������������#@�΀����#�u���D�n�#	@�΀�����#H���D1�1��_����B���f.�H�L$H�T$�,�#	����������|$���#�|$���#������]AL��������=ӗ#�����1�iҼ�|$)у�>���D@�D$�U�#�|$�K�#���ff.�ATU�-��#SH�/�#H��t*�;"w%�H�,`��Hc�H�>���b�#fDD�%��#H���#H�����8"wD�H�
w`Hc�H�>���K�#�=�#�=��#u��#f.�H�@H;�#H�=�@��H;��#H�=t�#H�H��@�H�
��#�eH;n�#�X���u���#����#��=��#tH�=
���H�=�#���#��t%H�5
�#H�=^�H�=��#H�5Ж#���wA�#tH� �#H��#H�J���H��#D���#E��tH���#H�і#H�B���H��#D�
T�#E��tH�Ж#H���#H�����H���#D�H�#E��tH���#H�y�#H�����H���#�=��#��t&H���#���#H�a�#H���H�c�#-��#tH�T�#H�E�#H����H�?�#�5��#H��H�ӽ��H�ܕ#H�͕#��t*H�
���H���#H����H���#H�
��#H���#�
U�#��t8H���#H�g�#H�����H���#H�r�#H�C�#H�����H�]�#��#��t8H�T�#H��#H���H�?�#H�0�#H��#H�����H��#E��t8H��#H��#H�H��#H��#H��#H�}���H�ޔ#�@�#��t
�=��#�����#��H���H�C�����H�p�'���H�(�#H�8t0f.�H��8�@�H�8�@��@Ԁ�@�u�[1�]A\Ã��u���#1����#�>�#H�@H�5����H;��#H�5-�#@��H;*�#H�H��@�H�
Q�#uH; �#����f.��V�#����H�ٓ#H�“#H�H�ē#H���#H���#H�߻��H���#H�����H�5���1����������#�d�#���H�5Y��#H�
t�#H�5��#������k���f.�H�9�#H�
�#H��H�$�#H��#H��#H�ϳ��H��#���#�9��������P�#���#�M������u
�*�#�=�#u
��#���#�-�#�����0�#D�%Q�#��#�����#D�%1�#�����������#D�%�#�L�#�^������v���H��t*H���i�����#wH�H�@H��#H��H��#�.���H��#H���=I�#�{�#�Q����8�����������%�#�	����=�#�G�#t"���#�����=�#�%�#u��ݐ#�҃��u�А#1����#�^�#�����O�#����=��#u
���#�-�#������#D�%�#�)����=c�#D�%��#���#���#�����8�#���a�#D�%��#�X�#�����I�#D�%f�#���#������u��#1���#D�%5�#���m�#������#A��j������u���#1��п#D�%�#�'�#�9������u�o�#1����#D�%��#���#�������#D�%��#���-�#1��c���f.�SH���G�����G��������H��#H9C(t[�f.�1�1�[��fD���G������H��XSH��Hc�H�>����F���>v�F���|w-HcC�P�S�t��s����{H�KH�S跼����tLH��[�J���f.��F���>v�F���|w�HcC�P�S�t��s����{H�KH�S�g����K�C�C[���~���%�=t荆_�����>������������ �����
������������������HcG�G�P�W�t�[����z����
�#���l���H���GH�G[�f.��F���>v�F���|����HcC�P�S�t��s����{H�KH�S�c���H���+����C�C[���HcWH��H�����B��G�r���C�C[Í�������N���HcC�C�P�S�t�[�HcG�G�P�W�t�[�AWE1�AVA�AUA��ATUSH��L�%��#L���f.�E1�H��H�;t,H�C H�k8H��t�D��H��ЋUЅ��u�M��u�I����@E��tM��t
���#��tTA��~5H��[]A\A]A^A_��A�D$I��8A�D$�A�D$ԀI�<$u�H��[]A\A]A^A_�I�w(H���[]A\A]A^A_���@AWAVAUATUSH��(dH�%(H�D$1��H�W<-�8H�����u�E1�L�%LUL�5�MH��(#f���uM����A�E����L��E1�� H�o<X�Q��Ic�L�>��@H��<-t�E��u�H���{�
�#���#�G��#�PЀ�	�21��H�����TP��E�HЀ�	v���#��H�����<-�f���(�����b�#H�����G<8��
<1��<3u�2H�G���H�և#H��H�H�ƺ#�@���#H���f��GH��<1�p���<2HE��e���DH���#H��H�H�q�#�D���@�6�#H���.���fD�G�ƒ��Bt<H�����H���|�#�����G<B�<Q�<N�?
<S��	<0��
�J�#H������f�H��#H�����#H��H�ѹ#���@H���#H��H��0H���#�~���fD�G�ƒ��@���H���ш#�W�����G�B�#�HЀ�	���0H��	Љ'�#�&���fDH�A�#H��H8H�1�#����@�v�#
H�����fD�^�#

H������fD�θ#H�����fD�O���#��QЀ�w���0H�������M	ЍQЀ�v��H��s�#�v���fD��#H���^���fD�G<8��<1��<3u
�2��H�W�#H��H�H�O�#����f.�H�1�#H��H�H�)�#��@�G<B��<Q�����#H������f.��G<u��<m��<w�,<0������#H�����f�H���#H��H��0H���#�f���fD�6�#H���N���fDH�i�#H��H8H�a�#�,���@�W�
�#�JЀ�	����H����#�����G����D$L��##M��E1ɐ�D$A��w<=������@8��H�O��@L�‰T$A��1��t<=t
L�BH��@8�t�@8�A��@�� ��A���A��D�L$A��0tM�:I���r���f������H�\$dH3%(�	H��([]A\A]A^A_�D1���@���#<H��<-�����EH�}�a�#�PЀ�	���1�H�����TP���HЀ�	v�4�#���H�TH���a����G�t
H���E�u�Mc�I��J�|�?���L��L���������H���ǐ��H��#�[���H�H�@H�v�#H��H�s�#�>���fD1������H���#� �����H�����#�
������#
H��������#BH���ƴ#����I������H���S�#���#����GH�������H�=�FL���������H�����H��#�~���H�H�@H���#H��H���#�a����6�!����GH�W�у#<L�)<B�aH�׸pHN�#H�O�#�����6H�G��R������L����B�(�5p�#H�ǀ�0�K���e���0�HE�H�#H��#����H�=�EL����������
H�=�EL����������
H�=xEL���������H�=dEL��������U�
H�=TEL��������i�H�=@EL��������9�H�=+EL��������?�	H�=
EL��������G�	H�=�DL��������a�H�=�DL��������1�H�=�DL��������Q�H�=�DL��������!H�5�DL��H�T$D�$�C���D�$H�T$����H�5�DL��H�T$D�$����D�$H�T$����H�5kDL��H�T$D�$���D�$H�T$����H�5HDL��H�T$D�$�Ŋ��D�$H�T$����H�5&DL��H�T$D�$蛊��D�$H�T$����H�5DL��H�T$D�$�q���D�$H�T$����H�5�CL��H�T$D�$�G���D�$H�T$���H�5�CL��H�$�"���H�$����H�5�CL��H�$����H�$����H�5�CL��H�$������|���H�$H�����!<]������D$H�5X�#��:���L$@�<HcD$H����x�@��]v���fD��#

H���e����GH�W��#<L��<B��H�׸��	�����#H���#������#
H���������#QH���ܯ#���0��H�
}#H����#H(H��#���H��|#H��H�H�گ#���#H�����`�#H����H�����E������������H��H�׸�����>�#H����~#�7�0H�P��~#�'�#����t�H�׸0�=���H�$|#H��HH��#������0<vv���#H������W�5D~#H�x���#����H����&~#�h������#H���������������������#H���T���#H���B����#1�����3�#H�x����u��N���H������}#���������pHE�� ������#H�����H���p������#H�����v�#H�����P�#H���}#�������#�|��*�#H����|#�{�#�V���#H���D���|#����H���2�������#H�����1�#H���	�H�52����:0�}|#H�5��#���J��߀�X�S�D$�1��5A��	vBD�N�A���(��@�΃�7�|$H��	�D��H��	���t:�D�V�D�N�A��w���@��A��	�\��0�H�����H��H�h�#�S�H�|���H��H�R�#�=�H�B�#H���*��8�#H�����*�#H����H�����H��H��#���H�ɉ��H��H��#���H�S���H��H�٫#���@��t�A{#�=;{#H�T$H�t$蔱���D$H���D$�{#���u����D$�1��t
�D�N�A��w��L$H���D��D��H��	u���D$1�1��4
D�N�A��	�n���k�
D�ǍD0ЍqH���t$H��u��S�����A@���Y�����W�T���ff.�f���H�U�#H�H�BH��u)Hc*�#; �#}*�P��#H��#��DH�JH��H�B��ø�����f.���USH��H��#H�PH�BH����H���uz#��H�̨#��$����(���x���ƨ#��ht����H��-z#H���#�����B��B�H�JL�H�QI9��
H�qH�zL��H�y��I9���H���H�Q��B�D(H��[]�fD�xt�(�#��t8��t0�XH����[]�@H�JH��H�B��H����[]��H��gy#H���#�����B��@uOH�JH�1H�QH9�~OH�yL�BL��L�A��L9�~3H���H�QB�D$�k����H����x#�S�������fD��AWAVI��AUATUSH��(H��z#H�
�z#H�D$H��#H�$L�x �у���v=��k������WI�WI;��I�H�rA��1�I�w��E�,,H�
mu#A�Ic�D�l$E1�H�@H��H�D$H�\f�B�+���M9o<L��H�$�Ѓ����I�wI97�CI�L�NM�O��B�+M9��I�wB9���I��I��	u�I�GH�\$H�t#L�C���t!I�WI9��H�rH��I�w��I9�u�A9�����I�GH��~&I�WH��L��I�G�<�H�D$��I�GH���H����I�WH��I�G��H��([]A\A]A^A_�f�E���N���A9�|����D~�l$��A9��v������D�d$A��A9��_����r���H�
D�aH�5q9H�=y9����血��H�
D�wH�5H9H�=b9�b��f�H���H��HD�����H��tH���H�=K9�5�����K���ff.����v�#;t�#AVAUL�-e�#ATUS�c���#H�����	�=�#�D�A��H��u#��Q�W��B��D�%O�#�DA����&H��u#H���A�ă� ~��3D������=u#�H��qu#�ƒ� ~���#BD������߉������?�ƍ�������	ȃ�=��D���#D��E�P��D�q�#A�D
A��=taD���j����?E�HA������D�
E�#��������	�C�D��=t)A����D�!�#�(������?A����	�C�T
���#�P%���#A�\��[]A\A]A^�f�������=�s#�H��Yt#�Ã� ~�A��?u*��=u%�f.�������=�s#��H��t#A�ƃ� ~����@���#[H��]A\A]A^��f��=is#�g�#�IH��s#H��s#H�5~#H��s#H��s#H��t1��J��H��s#H��}#�fD�������[]A\A]A^�ЉÃ��t�_tr�C߃�]�*��=ty��?�����=A�#�����D�%̡#H��3s#���t���=u
�=�#�����#QH����r#�v���f.��=�#� E��X���@D�%i�#H���r#�Ã���=�����~�q����'���H���r#�Ã� ~��%�#Q�!����H�qr#H�br#H�sr#H�dr#�����D�=Q�#�����ݠ#����=5�#��u����D�%��#�����A��E1����#�S���I��H��'r#�Ã������
�~|��
��� tsE��t\��=uIc�A�D�< tJ<	tF��D��H���q#��t.Ic�A�T$�Hc�I�D�L�H)�I���;H��H���q#I9�u�A�]L���y�������	u�Ic�A�\A�\$E9��|A���B���H��Aq#���������� ��������#Q�SЃ�	��S������S���XЃ�	v�H��XɃ�v
�H�1ۃ�w�X���T���H�q#H��
���Ѓ����� �H���p#H��p#���t�� �u��	�lH����H��
��p#E�����
�����D�%�#E1�A��蘙��I��H��lp#�Ã���I��
��~��
���� tvE���������=uIc�A�D�< �����<	������D��H��p#���c���Ic�A�T$�Hc�I�D�L�H)�I���;H��H���o#L9�u��0�����	u�Ic�A�\A�\$E9��QA���?���H��o#H��
���Ѓ���e��
�\H���o#���t�� ����	��H���Zo#H��
�Lo#E�����
� ����K�1҃������S�������Ѓ��t
�� t;��	t6H���o#E�������\���E�L��A��A�vHc��Y���I�����H�� ��n#���H����n#E�������
�����Ѓ��t
�� t��	tH����n#E���j������H�� �pn#���D�����E�L��A��A�vHc�����I������H�� ������E���N������H���n#E�������^���E������h���f.����G��te~3��t~��ui��_�����]��HcG�G�P�W�t��@���uC��+���#��t!H���GH�G�fD��[�f.�������_�����]w-HcGSH���P�W�t�辄���C�C[�fD�s����%�=t���_�����]�9�������-������u�HcG�G�P�W�D���D���O�A���5H�v7SH��Hc�H�>����F���?��HcG�P�W�t�9�}8�L�CH�K�����S�s�P���H���؃���C�C[����~��%�=t㍆@��������� �������HcG�G�P�W�t�[������ٛ#��t�H���GH�G[�f.��F���?w HcG���S����P�W�t�[��H��[�������HcG�G�P�W�t�[�f�H���H9C����S�s���,���������������w�HcG�G�P�W�t�[�ff.�AWAVAUATUSH��dH�%(H��$�1�H���#�D$H��t!H�@H;�h#��H;3h#����!ЉD$��#��#�n�����1���j#=�����=��=��G1��_j#=��V1���Bj#1���H�����.j#fDH�yj#H9���H�I��H9��)�D$ �D$1�1���i#�Ń����H��#H����������%�=���='�#��h��H���#H��t	�8I�����)D�=n�#�L�#E������s��������h������_��Y��Ϗ���1�|i#1��,i#�Ń���6����1�1�������ai#H�=!�#u�L$���[1�H��$�dH3%(��H�Ę[]A\A]A^A_Å���1���h#����1���h#=���=���1���H��}����h#1�1��wh#�mf.�1������H����>1��Uh#�Ã���*���1��Bh#�Ń������1��/h#A�ă������1��h#A�Ń�����D��D�����p}����y�H�������G���H��g#1��҉Ã�������1���g#�Ń�������1�1҉���A���H�����
H��g#H���u�1���A�ă��t�1���g#A�Ń��t��=�f#����(�����v��D�����	�D	��ѳ�����b���1�D��6g#1�D��+g#���芠��H�#g#�>���1���H�c|���g#1�1���f#����1���f#����1���f#����H�=�#��H�|��H9g#��1�1���f#1�1���f#�H�!d#H�;H��t H��fD�K9HHL�H��8H�8u�H�;�L�����#���c���H�;�f���V������)������3t|��1�zf#�/���D���������F���H�"�#H����f������w~��9�~�˕#I�#����?�����=8�#��h�c����5��#��t&�C���w�U߃�]wk�^1ۍ�����@�߉�1��e#������}���fD�E߃�]�dD�t$E������#�����E�?�6�������f.��E����e���������D��1�1�De#����1҉��4e#�����	������������1���d#A�ă��tF1���d#A�Ń���E1�1�A��D��������������1�D��vd#1�D��kd#��1҉�1�覰���c���������H�Ѣ��H9�d#�4�==�#���7�����������(���������f���_�����>�g�������������	����	��
t	��
����#�|���#���K�����#����H��c#1���
���Ѓ����� ��
��
�1��oc#H�`c#���t	�� ��1��ǽ
�ҿ
1��:c#�=��#�����L�5yq#�sq#�]q#�-gq#�Q�A���V
D������Hc;q#������BE�<��’#�q#�����=����ug1���b#A�ǃ��u����#��uGD���n��H�`#H�:t$H��fDH�x t
�J9HHL�H��8H�8u�H�r(�������p#1�D�|$A���XDH�5����H9��@9���Hc�A��1ҽE�$�D��D��у�������������+�9p#A9��|Ic�A�_E�,�D��������H�
b#A���s���1�D��1�A����D1���a#A�ă���$��A�߽�U��1�D��D��H�
�a#�у���^���D9=�o#�>Ic�A��A�������D9=�o#�FIc�A��A�,��������D��D���	�ja#�DD��1�A��Ja#����DA��_�����>�����1�D��A���V���������o#A9��AIc�A����A��A9��LIcǃ�A��A���D$D�D$E1�1҉�D��D���ѭ�����	����u���D�|$A����a����<���@D;=�n#�kMc�A�OD��D��C���L$����{`#�L$A�σ��u��]n#9��sHc�D�y��A���L$$A9���Mc�A�w��C���t$�L$(�L$9���Hc�D�D$(�L$$��D�xA��D��D��A���D$,������+�������D��D���ԫ�����K
D�|$��1��x_#�Ã������m#A9������1��V_#�D$��������1�D��D���|������#1���!_#�)���@1��_#�Ã�����������D9=Cm#�����1���^#�Ń�����������1���^#�Ã��������������D��D��_#����������l#D��9�������L$1���^#�L$�ƉD$$��l#A�σ���w�����D��D��詪���i���@��h����Y��	Ё�3����'�����)������=�f��]#�����z�#���J1��^#�Ń������?�h�=G]#�nD�%l#L�5h#A�D��%�A�=A�D$��k#A�D$%�A�?1���]#��k#�J���
�k#A���-��	��_��	A��A��u�H�`]#H�	�H9�t]H�M]#H�>]#H�
�}���=�\#H�	]#H��\#H�
]#u*H��\#H���H��\#H�����H��\#H��\#D�-X�#E����	D�%k#�������D$���f.�1��P�f�1���\#A�����1���\#������D������
���H�v\#��1�D��D��裨������1��|$�F\#1���<\#�����D�\$E���"���#����������`�����?����������ڋ#���P������f�1���[#A�ă���������D����\#������1���[#A�Ń��tb1���[#A�ƃ���
1���[#A�ǃ��t(A��E��D��D����趨�����^�1�D���K[#1�D���@[#1�D��5[#��D���1��o����,�f.�1��[#A�ă���������1���Z#A�Ń������A�����D��߉�D	�1�$[#����D�T$E���:D�
�#E�������D$1ۉD$��1���Z#=���1���sZ#1���H��o���_Z#�2�f�1��XZ#=��h1���;Z#1���H��o���'Z#��f.�1���H�eo���Z#���f.�D�D$E����1���Y#����7��&����$����(�;��.����N�y1���1��Y#�1���Y#��fD���,A������fD�\$���1��`Y#D�|$�ƉD$(��g#����f�����D��D���y������ 1��|$$�Y#�$����1��Y#�D$,�����D�L$,D�D$(��D��L$$D���8������vD�|$�]���fD1�D��D��D�|$����N���f�1����X#���#��������1���1�D��}X#�
�1��D$�s��ӆ#���q���H�ܖ��H9�X#���1��GX#�������$��1��-X#�Ń�����@������E������1��EX#1��$�8X#�=V�#�|�1���W#���1���W#����H�=͇#��
H�m��H9�W#��1�1���W#1�1���W#��1���W#=��Q1���eW#1����XW#���1��|$A���CW#�������#1�1�1�豸���=��#��1��W#��������A������1����V#H�=�#�2H�l��H91W#��1�����V#��1����V#H�=dž#�H��k��H9�V#��1�����V#�H���1���V#�Ń���X���I�*���B�L��H�C� �#�����1���V#1��(�yV#�=��#��H�=.�#�	H�a���H9ZV#���1�����U#���1���U#=���1���H�$k����U#1�����U#�3�1�� ��U#���1���U#�x��A��$(������6���D�����	�D	�����D��D��蝡��H�NU#��������1��|$,��1��|$(�(U#1��|$$�U#�?���1��U#A�ƃ����1��U#A�ǃ����1���T#�D$���t~1���T#�D$���tmD��D�����6j��A����x)�L$�T$D��D���j����x��D���������9�1��|$��T#1��|$�vT#1�D���kT#1�D���`T#���D��D����i������͋�����1��@T#�Ń�������@����(�8��#����s�#h1��D$��H�$ H���q����ƒ�߃�A���`����PЃ�	�T����Ń�=�.H��S#��?�L���1��Љŋ�a#�P%�A�,H��S#��a#A����������`���߃�B��ā#B1��Љŋ�a#�P%�A�,H�=S#�ka#A������������?��
H�����r�#H9�������_�#������1��� �+������R#��1���R#=���1���H�
h����R#1�����R#��1����R#�1���R#���=1���R#1���gR#�D$�d�H�SR#��D�|$1��|$,A�������D�|$����1���$R#�����D��D���Z�������H�R#���1��|$(��1��|$$��Q#D�|$���1����Q#�"�1���Q#��������A���1�1��Q#1��.��Q#�=�#�(��������1�D��tQ#�:�����1��
�`Q#�=�#���D�|$1��|$,��1��|$(A���8Q#���1��3Q#�|$ ���1���Q#1���WQ#�=u#�\$ ���bP#�
�H�=��#�?H�,f��H9%Q#�1�����P#�	���H�5�e����,�������	P#��H�5�e������������躓$I�H�5�1���*����)Ѝ�)�)�Hcŋ,��LP#����#����1��t�wP#1��'P#���� ��P�Zv���1���LP#1��$�?P#��1��5P#���1���O#�Ã��������@�s��D���C����o��P���1���O#�$1���O#�(1���O#��1�1��O#�u�H�t$01�H�=?��}#L�-H�t$A��A�M�eH�D$0�����L��A�܉�1��%O#H�L$B�����t/�p��P��M��C�9�u I�V��I�l�} �+I��뻾������D�X�Ic׉�H�5@�"DG�E�GE��L�L�H��@I�1E��H����I��tF�NA8Mu2��f��H��A:L�uHc�H9�u�A9�u
�D9���I��A��륹����|#hH�=4� w����}#�D$���,�H�=1��,������y|#�H�=~#��H�Fc��H9?N#��1�����M#�	���A��1���D���M#H�l$A�F�L�eM�,��I���u1�L���M#M9�u�A����s���1�� ����I���u���D�|$A���o���{#H�=H�4v����|#�D$���@�H�=&1��@����D$�%��D$ 1����=z{#���H�5M�����s�������D�|$1��|$(A�������H�5!b����G�������Ic�D��A��L�%J#C�D5�1�I�4�{#H��L#H��V#�
���I�<�H��t��y��H��t�`����=�z#B��H�_L#H���H9�t]H�LL#H�=L#H�5�l���=�K#H�L#H��K#H�5L#u*H��K#H���H��K#H�����H��K#H��K#��{#�J���H�50a����V������3K#�e��$K#�V��K#�G�H�5�`����������1��=�yK#H�zK#H�#���-�Y#H9�����y#�D$����D�%~Y#�n�H�=-��y#�t����z#�D$�������H����H9�����=ey#�oD�%$Y#����My#)�����z#�D$��z#���^���H�-�"L�5�T#H���X#�
��X#��X#��t ��H������A�6�
��u��X#�-�X#1��c���+
�X#��t_��=u	��?�M�����+t�����=t����߃�A��v�HЃ�	w(�J���É
HX#A�1��J#�6X#���u��Wx#�J��A�H��I#H�����
X#�
�W#H9�����H��I#H��I#H�
jj���=I#H�tI#H�eI#H�
�I#����H�II#H�J���1�H�II#H���H�#I#H�,I#�Y���=1���I#�%���w#3�����w#Y������H#��H�5a^���自�������Q����H��H#�-"W#A�=H����H9�����H��H#H��H#H�5�i���=H#H��H#H�{H#H�5�H#����������v#1������v#�Y��H�"��H9���������Q�����v#Q���ff.����SH����Q����x��[�WR���H���XS����#�R��H�H�E#H�@H��H�@H�8�Q����y�H���fQ��[���R��ff.���H��H�t$�^q��H�|$��w#�P��H�D$H�8�� ��H��H��H��w#��Hc�H9����=�w#�w#�S��L�tw#��v#M����A�8tKH�=�G#1�H��t�t���
H�=T
L����€������@t!L�BL�w#�L��	L�w#L����O��H���P��H���DH�PH�xH�w#�8���@H�=G#H��t�t��L��L��v#���H�=�	L����€���u�@� t^L�i	L�xv#�q����H�=;	L����€����O����@�uZ��@���L�K	L�4v#�-�����u�����L�	L�v#�����L��L��u#��DL��L��u#�����0N����AUATUSH��dH�%(H��$1������H���E1�1�1�1�I���/<'��Hc����<Hc��D��t.���������uЅ�tdHc���4Hc�1��D��u҅�tHc҃=�s#�tH���Ѹ��1�H��$dH3<%(��H��[]A\A]�f.�<\t,E��t7<"tkHcʃ�����\���1��R���f����=���@<'t$<"��< tHHc�D����D������@D������E1�����fD������?���fDHc҃=�r#�tL����Hc��D������1�1�1�����DD��D��A�����L��f.���SH��H�t$H�$�ym��H�|$�L��H�|$H� ��H����L��H��s#H���������w2H�WHc�H�>��f�H��@#H�H�ts#@�Js#H���ys# �s#�"L��H�$H�8�� ��H�PH�xH�`s#Hc�H9����t
�=>s#1�Hc��M���&s#H�8H��� ��H�@H��H�s#��Hc�H9�����=�r#H��r#���Hc5�r#H��H��r#�L����u2H�����t)H��Ѓ����(�H���f��r#��t^�K��H��H����J��H��H��[�DH��H��H�ir#�������H��^����H�@H�{H�Ir#�*���@H��q#H�x��J��H��H���mJ��H��H��[�@H��>#HH��q#�O����H��>#H�H��q#�/����H��>#H�H��q#�����H�q>#HpH�dq#����H�$����H���������H�����������%H	�H�����I��H�?#H�5EH�81��zI��f.���SH�=��J���H���H�5|H��H���qJ���H���H��H�5�VJ��H���J��H��H��H����I��H�ߺH�5���J��H�ߺH�5��J���H�5�H���J��H�=D�DI��H���I��H�50H��H���zJ��H�=��I��H����I��H�5�H��H���TJ��H�=��H��H���I��H�5kH��H���.J��H�=��H��H���I��H�5@H��H���J��H�=��H��H���dI��H�5H��H����I���H��H���EI��H�5H��H����I��H�=��gH��H���I��H�5�H��H���I��H�=��AH��H���H��H��H�5�H���wI���H�=��G��H��H�5�H���TI���H�=��G��H��H�5�H���1I���
H�=��pG��H��H�5�[H���
I����H��H���0123456789ABCDEF&gt;&quot;&lt;&amp;can't malloc=?SHIFT_JIS?B?=?EUC-JP?B?boundary="NULL%s
ic=oc=guess=cap-inputurl-inputnumchar-inputno-outputdebugno-cp932cp932invx0212no-cp932extno-best-fit-charsfb-skipfb-htmlfb-xmlfb-javafb-perlfb-subcharfb-subchar=ms-ucs-maputf8mac-inputprefix=nkf-utf8/nkf.cindex <= buf->len!nkf_buf_empty_p(buf)can't reallocISO-2022-JPBINARYEUC-JIS-2004EUCJP-MSCP51932CP50221CP50220Shift_JISEUC-JPno output encoding givenguessAUTONOCONVUNKNOWNUS-ASCIIEUCSJISUTF8UTF-16BEUTF16UTF-32BEUTF322.1.3 (2013-11-22)2.1.3NKF_VERSION2013-11-22NKF_RELEASE_DATE=?ISO-8859-1?Q?=?ISO-8859-1?B?=?ISO-2022-JP?B?=?ISO-2022-JP?Q?=?UTF-8?B?=?UTF-8?Q?=?US-ASCII?Q?base64jMBeuceuc-inputfjjmhelpmacsLmmimejMmime-inputmsdossLwsjissjis-inputunixeLuversionwindowsh1katakanah2katakana-hiraganah3g2utf8utf16w16utf8-inputWutf16-inputW16UTF-8UTF-16UTF-32646ROMAN8ISO2022JP-CP932CSISO2022JPCP50222ISO-2022-JP-1ISO-2022-JP-3ISO-2022-JP-2004SHIFT_JISMS_KanjiPCKWINDOWS-31JCSWINDOWS31JMS932CP10001EUCJPEUCJP-NKFEUC-JP-MSEUCJPMSEUC-JP-ASCIIEUCJP-ASCIISHIFT_JISX0213SHIFT_JIS-2004EUC-JISX0213UTF-8NUTF-8-BOMUTF8-MACUTF-8-MACUTF-16BE-BOMUTF-16LEUTF-16LE-BOMUTF-32BE-BOMUTF-32LEUTF-32LE-BOMISO-8859-1Windows-31JeucJP-nkfeucJP-MSeucJP-ASCIIShift_JISX0213Shift_JIS-2004W���V��T��T���V��T��T��T��T��W��W��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T���V��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T��T���V���V�����P���P���P���P���P���P���P���P���0�����������P���P���P���P���P���P�������h����������y���p���p�������:���:����E���%�����p�����������Φ��Φ�����������x���Z���Z���Z�������Z���Z���Z�������ğ��ğ������
���w���ğ��\�����������ğ��x���������������w����ѥ������������������ğ��ğ��ң��ğ��ң��ğ��ң��^���ȣ��ң��ğ��ң��^���ȣ���������Ȩ��x���ȧ�����D���D���D���D���D���D���D���D���D���D���D���D�������D���D���D���D���D���D���D���D���D���D���D���D���D���D���D���D���D���D���D���D���l���D���D���L������D���D���4������D���Ԯ������D���D���D���D���D�������D���D���D���<���$���D���ܭ��D���D���D���D���D���D���D���ĭ����������t���&���D���D����������D���Ԭ����������l���D���D���T���4����������D�����������P���������������������������������l�/"9"B"I"Q"["k"q"z"}"!#/#:#@#[#`#{#~#t$~$w%~%9&@&Y&~&B'P'r'~'A(~(TO~O%t~t'1(2)3*4+56^67^78^89^9:^:;^;<^<=^=>^>?^?@^@A^A/B^BC^CD^DEFGHIJ^J_JK^K_KL^L_LM^M_MN^N_NOPQRS,T-U.VWXYZ[\&]^3_6_7_8_9_:_>_B_Dnkf_buf_at��������������nkf_buf_pop !!()))*+++2222<<FF
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/BBQBBBQBQQ	h                              ,.:;?!'`^_-/\|`'""()[]{}<>+-=<>$%#&*@%w%x%y%z%{%|%}%~%Q%T%W%Z%]%t%,%.%0%2%4%6%8%:%<%>%@%B%E%G%I%P%S%V%Y%\!!!#!V!W!"!&%r%!%#%%%'%)%c%e%g%C!<%"%$%&%(%*%+%-%/%1%3%5%7%9%;%=%?%A%D%F%H%J%K%L%M%N%O%R%U%X%[%^%_%`%a%b%d%f%h%i%j%k%l%m%o%s!+!,L�M�N�O�P�Q�R�S�V�W�X�Y�Z�b�j�|�������������������������������������������C�D�P�X�^�n�p�r�u�|�}�~�����������������������������������������������������������������B�I�K�@�A�B�C�D�E�F�G�H�I�J�K�J�F�H�G�A�C�D�E���@���������������������������e��������^�������������������������������_�����������������������������]�`�������������������������\�����������������x�y�z�{�s�q�t�v���o�e�g�i�h�j�k�l�m�]�_�`�a�d�b�c�f�Y�Z�[�\�M�N�O�Q�R�T�S�V�W�U�J�K�L���������@�A�B�E�H�F�I�G�����������������������d�����c���f������������������������������������g�������������������������������������������������������������������������w�������{�}�~�������p�o�r�q�a�s�v�w�u�t�z�x�y�h�i�k�l�m�n���C�P�`�U�s�t�u�v�w�x�y�z�{�|�}�~�!�"�#�$�%�&�'�(�L"C�)�*�+�,�-�h"c�_�i�x�!�;�.�-�|�P�?�t�)�H�/�R�T�c�n�'�#�,�)�>�_�X�H�W�c�t�a�#�0�;�f�m�u�|�1�5�X�[�e�n�{�2�3�@�G�P�^�4�*�5�/�D�h�6�B�d�h�g�7�8�9�N�a�u�w�x�|�/�7�>�[�*�a�:�k�3�8�;�J�<�=�P�^�t�u�y�d�m�~�>�B�g�?�p�0�,�@�3�=�M�I�d�(�I�D�d�t�&�A�u�|�B�x�+�!�%�C�8�:�D�D�R�W�[�^�m�p�E�!�5�I�9�F�X�~�G�L�H�Y�j�}�I�'�5�6�J�U�8�W�`�j�c�!�+�G�C�K�O�Y�K�L�f�n�|�k�p�1�e�x�&�+�-�M�J�S�i�c�|�t�u�N�3�=�o�q�.�O�J�f�j�p�t�n�%�y�+�.�-�2�B�P�Y�P�;�Q�;�R�:�C�S�r�]�U�b�i�m�T�U�V�W�e�X�i�h�Y�Z�l�;�[�a�h�'�\�]�T�r�.�^�^�_�"�7�A�Q�t�F�H�Q�`�a�b�c�d�S�H�T�j�z�$�0�e�5�K�f�9�g�C�h�i�Y�j�k�b�l�m�n�G�(�&�)�/�0�*�+�<�A�?�U�X�V�_�c�a�T�i�&�q�r�K�A�C�>�o�@�G�?�`�^�Q�p�\�R�[�T�z�o�3�?�I�P�b�j�k�q�r�s�h�o�,�t�.�u�1�v�2�1�6�w�x�]�y�z�Q�{�m�M�|�[�f�j�%�{�z�}�V�~�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�@�A�B�C�D�E�F�G�H�I�ʁU�V�W�����������������T�U�V�W�X�Y�Z�[�\�]�ʁ��������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���������������������������������������������������������������������������������������������������������������������������������������������������������;;ÀÀÁÁÂÂẦẦẤẤẪẪẨẨÃÃĀĀĂĂẰẰẮẮẴẴẲẲǠǠÄÄǞǞẢẢÅÅǺǺǍǍȀȀȂȂẠẠẬẬẶẶḀḀĄĄḂḂḄḄḆḆĆĆĈĈĊĊČČÇÇḈḈḊḊĎĎḌḌḐḐḒḒḎḎÈÈÉÉÊÊỀỀẾẾỄỄỂỂẼẼĒĒḔḔḖḖĔĔĖĖËËẺẺĚĚȄȄȆȆẸẸỆỆḜḜĘĘḘḘḚḚḞḞǴǴĜĜḠḠĞĞĠĠǦǦĢĢĤĤḢḢḦḦḤḤḨḨḪḪÌÌÍÍÎÎĨĨĪĪĬĬİİÏÏḮḮỈỈǏǏȈȈȊȊỊỊĮĮḬḬĴĴḰḰǨǨḲḲĶĶḴḴĹĹĽĽḶḶḸḸĻĻḼḼḺḺḾḾṀṀṂṂŃŃÑÑṄṄŇŇṆṆŅŅṊṊṈṈÒÒÓÓÔÔỒỒỐỐỖỖỔỔÕÕṌṌṎṎŌŌṐṐṒṒŎŎÖÖỎỎŐŐǑǑȌȌȎȎƠƠỜỜỚỚỠỠỞỞỢỢỌỌỘỘǪǪǬǬṔṔṖṖŔŔṘṘŘŘȐȐȒȒṚṚṜṜŖŖṞṞŚŚṤṤŜŜṠṠŠŠṦṦṢṢṨṨŞŞṪṪŤŤṬṬŢŢṰṰṮṮÙÙÚÚÛÛŨŨṸṸŪŪṺṺŬŬÜÜǛǛǗǗǕǕǙǙỦỦŮŮŰŰǓǓȔȔȖȖƯƯỪỪỨỨỮỮỬỬỰỰỤỤṲṲŲŲṶṶṴṴṼṼṾṾẀẀẂẂŴŴẆẆẄẄẈẈẊẊẌẌỲỲÝÝŶŶỸỸẎẎŸŸỶỶỴỴŹŹẐẐŻŻŽŽẒẒẔẔ``ààááââầầấấẫẫẩẩããāāăăằằắắẵẵẳẳǡǡääǟǟảảååǻǻǎǎȁȁȃȃạạậậặặḁḁąąḃḃḅḅḇḇććĉĉċċččççḉḉḋḋďďḍḍḑḑḓḓḏḏèèééêêềềếếễễểểẽẽēēḕḕḗḗĕĕėėëëẻẻěěȅȅȇȇẹẹệệḝḝęęḙḙḛḛḟḟǵǵĝĝḡḡğğġġǧǧģģĥĥḣḣḧḧḥḥḩḩḫḫẖẖììííîîĩĩīīĭĭïïḯḯỉỉǐǐȉȉȋȋịịįįḭḭĵĵǰǰḱḱǩǩḳḳķķḵḵĺĺľľḷḷḹḹļļḽḽḻḻḿḿṁṁṃṃńńññṅṅňňṇṇņņṋṋṉṉòòóóôôồồốốỗỗổổõõṍṍṏṏōōṑṑṓṓŏŏööỏỏőőǒǒȍȍȏȏơơờờớớỡỡởởợợọọộộǫǫǭǭṕṕṗṗŕŕṙṙřřȑȑȓȓṛṛṝṝŗŗṟṟśśṥṥŝŝṡṡššṧṧṣṣṩṩşşṫṫẗẗťťṭṭţţṱṱṯṯùùúúûûũũṹṹūūṻṻŭŭüüǜǜǘǘǖǖǚǚủủůůűűǔǔȕȕȗȗưưừừứứữữửửựựụụṳṳųųṷṷṵṵṽṽṿṿẁẁẃẃŵŵẇẇẅẅẘẘẉẉẋẋẍẍỳỳýýŷŷỹỹẏẏÿÿỷỷẙẙỵỵźźẑẑżżžžẓẓẕẕ῭῭΅΅΅¨̍῁῁´´··ӔÆǼǼǢǢǾǾӕæǽǽǣǣǿǿẛẛӘƏӚƏ̈ӨƟӪƟ̈ӠƷǮǮәəӛə̈өɵӫɵ̈ӡʒǯǯʹʹ̀̀́́̐̆̇̈́̈̍̓̓ᾺᾺΆΆᾹᾹᾸᾸΆΑ̍ἈἈἊἊἌἌἎἎἉἉἋἋἍἍἏἏᾼᾼᾈᾈᾊᾊᾌᾌᾎᾎᾉᾉᾋᾋᾍᾍᾏᾏῈῈΈΈΈΕ̍ἘἘἚἚἜἜἙἙἛἛἝἝῊῊΉΉΉΗ̍ἨἨἪἪἬἬἮἮἩἩἫἫἭἭἯἯῌῌᾘᾘᾚᾚᾜᾜᾞᾞᾙᾙᾛᾛᾝᾝᾟᾟῚῚΊΊῙῙῘῘΪΪΊΙ̍ἸἸἺἺἼἼἾἾἹἹἻἻἽἽἿἿῸῸΌΌΌΟ̍ὈὈὊὊὌὌὉὉὋὋὍὍῬῬῪῪΎΎῩῩῨῨΫΫΎΥ̍ὙὙὛὛὝὝὟὟῺῺΏΏΏΩ̍ὨὨὪὪὬὬὮὮὩὩὫὫὭὭὯὯῼῼᾨᾨᾪᾪᾬᾬᾮᾮᾩᾩᾫᾫᾭᾭᾯᾯὰὰάάᾱᾱᾰᾰάα̍ἀἀἂἂἄἄἆἆἁἁἃἃἅἅἇἇᾶᾶᾳᾳᾲᾲᾴᾴᾀᾀᾂᾂᾄᾄᾆᾆᾁᾁᾃᾃᾅᾅᾇᾇᾷᾷὲὲέέέε̍ἐἐἒἒἔἔἑἑἓἓἕἕὴὴήήήη̍ἠἠἢἢἤἤἦἦἡἡἣἣἥἥἧἧῆῆῃῃῂῂῄῄᾐᾐᾒᾒᾔᾔᾖᾖᾑᾑᾓᾓᾕᾕᾗᾗῇῇιιὶὶίίῑῑῐῐϊϊῒῒΐΐΐϊ̍ῗῗίι̍ἰἰἲἲἴἴἶἶἱἱἳἳἵἵἷἷῖῖὸὸόόόο̍ὀὀὂὂὄὄὁὁὃὃὅὅῴόͅῤῤῥῥὺὺύύῡῡῠῠϋϋῢῢΰΰΰϋ̍ῧῧύυ̍ὐὐὒὒὔὔὖὖὑὑὓὓὕὕὗὗῦῦὼὼώώώω̍ὠὠὢὢὤὤὦὦὡὡὣὣὥὥὧὧῶῶῳῳῲῲᾠᾠᾢᾢᾤᾤᾦᾦᾡᾡᾣᾣᾥᾥᾧᾧῷῷϔϔϓϒ̍ЇЇӐӐӒӒЃЃӖӖЁЁӁӁӜӜӞӞӢӢЙЙӤӤЌЌӦӦӮӮЎЎӰӰӲӲӴӴӸӸӑӑӓӓѓѓӗӗёёӂӂӝӝӟӟӣӣййӥӥќќӧӧӯӯўўӱӱӳӳӵӵӹӹїїѶѶѷѷאַאַאָאָאּאּבּבּבֿבֿגּגּדּדּהּהּוֹוֹוּוּזּזּטּטּיּיּךּךּכּכּכֿכֿלּלּמּמּנּנּסּסּףּףּפּפּפֿפֿצּצּקּקּרּרּשּשּשּׁשּׁשּׂשּׂשׁשׁשׂשׂתּתּײַײַक़क़ख़ख़ग़ग़ज़ज़ड़ड़ढ़ढ़ऩऩफ़फ़य़य़ऱऱऴऴড়ড়ঢ়ঢ়রব়য়য়োোৌৌਖ਼ਖ਼ਗ਼ਗ਼ਜ਼ਜ਼ੜਡ਼ਫ਼ਫ਼ଡ଼ଡ଼ଢ଼ଢ଼ୟଯ଼ୋୋୈୈୌୌஔஔொொௌௌோோైైೀೀೊೊೋೋೇೇೈೈൊൊൌൌോോำําຳໍາཀྵཀྵགྷགྷཌྷཌྷདྷདྷབྷབྷཛྷཛྷཱཱཱཱཱཱིིྀྀུུྐྵྐྵྒྷྒྷྜྷྜྷྡྷྡྷྦྷྦྷྫྷྫྷྲྀྲྀཷྲཱྀླྀླྀཹླཱྀ῍῍῎῎῏῏῝῝῞῞῟῟ゔゔががぎぎぐぐげげごござざじじずずぜぜぞぞだだぢぢづづででどどばばぱぱびびぴぴぶぶぷぷべべぺぺぼぼぽぽゞゞヴヴガガギギググゲゲゴゴザザジジズズゼゼゾゾダダヂヂヅヅデデドドババパパビビピピブブププベベペペボボポポヷヷヸヸヹヹヺヺヾヾq!r!L"1!C�o!@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_.!a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#P!C!Q!2"V"W"!"#$%&'()*+,-./0123456789:;<=>?.!a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#P!C!Q!A!!"#$%&'()*+,-./0123456789:;<=>?.!a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#P!C!Q!7�!"#$%&'()*+,-./0123456789:;<=>?*!0"t!p!s!u!/"J!K!v!\!$!1"%!?!0#1#2#3#4#5#6#7#8#9#'!(!c!a!d!)!w!A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#N!@!O!0!2!*!*�t!p!s!u!)�J!K!v!\!$!]!%!?!0#1#2#3#4#5#6#7#8#9#'!(!c!a!d!)!w!A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#N!@!O!0!2!>#=#at(u+uCueuivwv%wUw)�%x'y3y4y7y8y9y;y?y@yMyQydy.zP�3z:zDzXzt�u�'{o{y{/|0|8|=|i�Y|c}v}{}4�K/W/rOD�y�zuZwowS�U�<y=yAyZ�[�^�:{8�E�.|i�n�k�j|o�p�s�w�x�y�}�8.I.P.c.h.n.,///6/Z/^/aObOPt\t^t4�7�8�=�D�G�H�N�O�S�U�V�W�X�Z�[�^�`�b�c�e�i�j�k�m�o�p�s�w�x�y�}�$~]}r�Iv;v.tNuO{E�6NX�v~Z�[�w~|s]�x~}sTc_�~s`�y~b�c�6NX�Y�Z�[�\�|s]�^�}sTc_�~s`�a�b�c�h�@�A�i�j�D�ns7cZlmposk�psl�G�u~m�J�o�L�rssstspNqsusvsM�q�xswss�P�Q�t�S�zsT�u�{sysV�W�?�@�A�B�C�D�ns7cZlmposE�psF�G�H�I�J�K�L�rssstspNqsusvsM�N�xswsO�P�Q�R�S�zsT�U�{sysV�W�_�a�gshs%�$E&�s~(�)�]8*�js+�b�c�.�/�0�MAks1�2�3�4�lsd�6�7�8�e�t~f�!I<�g�ms>�#�$�gshs%�$E&�'�(�)�]8*�js+�,�-�.�/�0�MAks1�2�3�4�ls5�6�7�8�9�:�;�!I<�=�ms>�q~+2q�r�s�TsP5UsVsWsr~u9Xst�T`[LcBYs[sZs[�\sv�]s\�^sx�y�]�_s{�|�}�`s~�asbs!�csdsesfs^�+2q�r�s�TsP5UsVsWs~�u9Xst�T`[LcBYs[sZsu�\sv�]sw�^sx�y�z�_s{�|�}�`s~�asbs!�csdsesfs"�T�Fs]�^�_�U�a�GsHsIsb�c�LsJs<OKsd�oNe�V�Msk~[Nl~Ns~GW�OsQsm~Rsk�n~m�n�o~p~Psm9MLcKwVY�`]{K\�Fs]�^�_�`�a�GsHsIsb�c�LsJs<OKsd�oNe�f�Msg�[Nh�Ns~Gi�OsQsj�Rsk�l�m�n�o�p�Psm9MLcKwV`]{KCs48DsY�R�j~Es/<Cs48DsY�Z�[�Es/<M�h~L�N�P�Q�R�S�i~U�O�@sAsP�Q�BsN�O�M�P�Q�R�S�T�U�V�@sAsW�X�Bsb~2s8sB�1s6sC�D�;�7s:s<�=�E�e~9sF�A�G�H�I�D�<sg~F�G�=sH�>sI�IOJ�J�;skBm:?sL�2s8s8�1s6s9�:�;�7s:s<�=�>�?�9s@�A�B�C�D�<sE�F�G�=sH�>sI�IOJ�K�;skBm:?sL�#�:�%�)s(s`~;�(�\7)�*�+�a~-�.�<�-s=�.s/s0�*sc~2�tr3�0saD?�4s@�5s3sd~A�>�#�$�%�)s(s&�'�(�\7)�*�+�,�-�.�-s/�.s/s0�*s1�2�tr3�0saD4�4s5�5s3s6�7�zr.�Z~wrl�}r[~~r/�%s$s\~r�s�&s-1!s"s0�t99L1�]~#sw�3�y�4�2K+s^~'s6�7�8�,s~�_~9�zrn�o�wrl�}rp�~rq�%s$sr�s�&s-1!s"st�t99Lv�u�#sw�x�y�z�2K+s{�'s|�}�,s~�!�"�$�prqr>Fnrmr#�*2&�yrxr'�(�u1b�X~Y~vrursr{3rr2<)2e�f�,�h�i�j�c9k�m�|r{r^�prqr>Fnrmr]�*2_�yrxr`�a�u1b�c�d�vrursr{3rr2<)2e�f�g�h�i�j�c9k�m�|r{r;D!�jr7Horkrlr"�1KDLPF[�\�;DY�jr7HorkrlrZ�1KDLPF[�\�Q~=�>�k�crar-Cn�o�B�R~S~pKT~q�G�ZNr�ers�l�t�K�u�frU~V~grR�v�w�x�y�z�{�|�}�hrW~ir~�X�<�=�>�?�crar-C@�A�B�C�D�pKE�F�G�ZNH�erI�P�J�K�L�frM�grR�N�O�Q�S�T�U�V�hrW�irX�O~&�ZrVrWrSrYr'�Urb3(�LO)�XrTrRrQr^�_�`�a�\r.�b�/�_rc�P~^r]r2�d�4�e�f�II[rs0`rh�br8�i�j�o3Mr71;�dr%�&�ZrVrWrSrYr'�Urb3(�LO)�XrTrRrQr*�+�,�-�\r.�/�_r0�1�^r]r2�3�4�5�6�II[rs0`r7�br8�9�:�o3Mr71;�drArJ~DrP�p�q8BrK~Err�FrGrKr*;s�R�dBS�v�LrIrHrJrL~T�_7U�V�X�W�PrOrNrQ�30\�M~!�Z�N~$�Arn�Dro�p�q8Brq�Err�FrGrKr*;s�t�dBu�v�LrIrHrJrw�x�_7y�z�{�PrOrNr|�30}�~�!�"�#�$�R�9rE~T�U�V�W�F~Y�Z�>0G~\�:r+J8r]�;r<r^�_�H~=r>rH�I~?rc�nK-;I�z:/Ae�J�M�@rh�N�Crj�k�O�m�R�9rS�T�U�V�W�X�Y�Z�>0[�\�:r+J8r]�;r<r^�_�`�=r>ra�b�?rc�nK-;d�z:/Ae�f�g�@rh�i�Crj�k�l�m�!32:1r0r%L:�@�<�3r4r2r5rbK=�>�?�6r{5@�@~B�A�B�B~F�G�C�D�J�K�%OC~E�7rD~F�G�O�A~Q�!32:1r0r%L:�;�<�3r4r2r5rbK=�>�?�6r{5@�A�B�C�D�E�F�G�H�I�J�K�%O|�L�7rM�N�O�P�Q�{�|�;~6�!�"�"r<~$�%�7�'�(�8�9�:�#r,�$r-�;�%r=~&r'r(r0�)r*r+r,r<�?~-r.r5]/r=�4�5�6�7�8�xd45>�{�|�}�~�!�"�"r#�$�%�&�'�(�)�*�+�#r,�$r-�.�%r/�&r'r(r0�)r*r+r,r1�2�-r.r5]/r3�4�5�6�7�8�xd459�oq6~7~q?-�e�8~pq.�qq/�rqsq0�9~k�b9{�l�2�tquq3�vqwqo�4�xqq�5�1Hzqs�&I{qyq}qt�u�|qv�~q:~x�!ry�z�oqb�c�q?d�e�f�pqg�qqh�rqsqi�j�k�b9{�l�m�tquqn�vqwqo�p�xqq�r�1Hzqs�&I{qyq}qt�u�|qv�~qw�x�!ry�z�|9V�W�lqX�'�mqZ�[�\�5~)�<3+�_�nq`�a�|9V�W�lqX�Y�mqZ�[�\�]�<3^�_�nq`�a�^qL�]q_q#�\qK�2~O�$�bq3~R�4~S�aqT�dq%�C6cqU�eqfqhqgqiqkqjq^qL�]q_qM�\qK�N�O�P�bqQ�R�S�aqT�dqC6cqU�eqfqhqgqiqkqjqUq,~-~9�Wqz�:�;�35Vq<�{�{A38|�Yq}�?�~�A�B�.~D�MBZq/~0~-F!�G�H�"�[q1~`qUq7�8�9�Wq:�;�35Vq<�=�{A38>�Yq?�@�A�B�C�D�MBZqE�F�-FG�H�I�[qJ�`q}Gq�LBX1n6o6r�sCNqp6'�s�o2Mqt�*�Kq+�Lqu�JqXq-�.�/�0�OqPqw�QqRq2�3�Tqx�Sqy�5�6�Y=}G%�LBX1n6o6&�sCNqp6'�(�o2Mq)�*�Kq+�Lq,�JqXq-�.�/�0�OqPq1�QqRq2�3�Tq4�Sq5�6�Y=s<DqEqa9w�x�+~y�l�Fqm�>3OGGqHq{�|�}�ZCkF~�n�"�Iqo�p�s<DqEqa9w�x�z�y�Fqz�>3OGGqHq{�|�}�ZCkF~�!�"�Iq#�$�d�e�;q=qf�k�l�<q?qBqg�h�>q@qAqo�CqB6*~q�r�i�t�j�k�h�i�;q=qj�k�l�<q?qBqm�n�>q@qAqo�CqB6p�q�r�s�t�u�v�P�-q_LQ�T�.q\MB1A;S�/qn20qT�W�X�1qZ�[�\�3q4qZ�6q2q[�5q\�]�[4^�7q8q^�_�`�b�c�d�a�b�c�9q:qP�-q_LQ�R�.q\MB1A;S�/qn20qT�U�V�1qW�X�Y�3q4qZ�6q2q[�5q\�]�[4^�7q8q_�`�a�b�c�d�e�f�g�9q:qH�)q(qE�*qI�(~J�G�tHLf)?K�M�25N�O�K�)~+qP�,q,R;]SHQ�R�{0S�;0O�t;0K~>D�)q(qE�*qF�G�tHLf)?H�25I�J�K�L�+qM�,q,R;]SH{0N�;0O�t;0K~>wI$q?�@�<�%qA�&q>�'qC�D�'~E�F�G�wI$q:�;�<�%q=�&q>�'q?�@�A�B�C�*�yp=�,�{pjB[3\3zp-�|}}}i428~}!~j4"~#~?E`N4�5�%~>�\88�|p&~}p~p!q#q"q*�yp+�,�{pjB[3\3zp-�.�/�i4280�1�j42�3�?E`N4�5�6�7�\88�|p9�}p~p!q#q"qGJ:D":2�`9g=s�\?w}sp3�4�rpBMh4RH\F5�6�|?NNu�[7z�x}|�vp9�up<�~�y}KK,F"�#�z}:�;�P1'�wptpQIjMxp)�GJ:D":`9g=s�\?t�spv�w�rpBMh4RH\Fx�y�|?NNu�[7z�{�|�vp}�up(�~�!�KK,F"�#�$�%�&�P1'�wptpQIjMxp)�q}gpY�Z�hp[�ipr}]�jp+�_�`�a�,�Z4-�d�.�/�t}kpg�s}i�0�l�lp#Gm�1�np;2u}qpppp�q�r�$1A6X�gpY�Z�hp[�ip\�]�jp^�_�`�a�b�Z4c�d�e�f�j�kpg�h�i�k�l�lp#Gm�n�np;2o�qpppp�q�r�$1A6B�[ps3Yp]pC�^pH0_p`pn}$�F�d>G�%�ap&�J�G5'�dpcpbpqkL�\Jo}(�)�epfpP�Q�R�S�p}U�*�W�B�[ps3Yp]pC�^pH0_p`pD�E�F�d>G�H�apI�J�G5K�dpcpbpqkL�\JM�N�O�epfpP�Q�R�S�T�U�V�W�z�Np.�KpLp{�MpOp/�h}i}j}v�D@|�wL}�4�E@k}~�PpsHQpSsLL7�RpSp8�TpW3!�VpY?l}Wpm}$7<�=�>�Xp\p?�Zp@�A�-�Np.�KpLpMpOp/�u�0�1�v�D@2�wL3�4�E@5�6�PpsHQpSsLL7�RpSp8�TpW39�VpY?:�Wp;�$7<�=�>�Xp\p?�Zp@�A�{<~�!�<p"�=pL?>p#�nN9p@pBpAp?pv�CpDp$�%�zA&�b2'�(�w�Ep8L*�FpGp+�*Of}y�1[Hpg}IpJp{<~�!�<p"�=pL?>p#�nN9p@pBpAp?pCpDp$�%�zA&�b2'�(�)�Ep8L*�FpGp+�*O,�1[Hpt�IpJp}?g4:Mm28=[85pr�4ps;6p3p(;a}:p-jr�VRs�w?8pt�b}y�%NqF+1d}c@6<e}7J|�@1mNkM;p}�EE}?g4:Mm28=[85pr�4ps;6p3p(;s�:p-ju�VRv�w?8pw�x�y�%NqF+1z�c@6<{�7J|�@1mNkM;p}�EE`�f�b�\}y64N(7d�bB!g&p,3o?e�V3(pf�)p'pd7h�]:c>^}i�#1YN_}`}l�+p.nk�*pn�l�.p,p-pm�/p0plN1p2pn�I@;Ho�`�a�b�c�y64N(7d�bB!g&p,3o?e�V3(pf�)p'pd7g�]:c>h�i�#1YNj�k�l�+p.nm�*pn�o�.p,p-pp�/p0plN1p2pq�I@;HKBc�xomI{oyo_9zoB8T�U�V�W�[}EJ}o!p~o"pd�!1X?|=Y4#pfG%pZ�"1$pDD[�MN+F|o&N18\�]�[M^�_�KBS�xomI{oyo_9zoB8T�U�V�W�X�EJ}o!p~o"pY�!1X?|=Y4#pfG%pZ�"1$pDD[�MN+F|o&N18\�]�[M^�_�lI%�E�toF�G�H�I�uoe:^�vowoK�IK_�`�M�N�O�P�KAb�R�$0lID�E�toF�G�H�I�uoe:J�vowoK�IKL�M�N�O�P�KAQ�R�$0jo4�G0[�6�hoU}lokoV}9�:�W}nomooo.F<�Y}po>�Z}@�A�qosoB�roC�jo4�G05�6�ho7�loko8�9�:�;�nomooo.F<�=�po>�?�@�A�qosoB�roC�gLYo.A"�T�Zo#�DJ[o+3U�V�N}<1W4q�V4\o]o^o_o'�(�O}`o*�X4U3^96HP}boaoQ}X�R}co\1Y�S}fo1�eodoT}go3�gLYo.A"�Zo#�DJ[o+3$�%�&�<1W4q�V4\o]o^o_o'�(�)�`o*�X4U3^96H+�boao,�-�.�co\1/�0�fo1�eodo2�go3�9DR�S�!�9D}�~�!�Wo|�{�Goi�IoM�k�I}m�U4HozLn�o�ToJop�Moq�Kor�LoJ}t�NoK}P�w�Q�PoL}M}QoRoUoSoVoXoGoi�Ioj�k�l�m�U4HozLn�o�ToJop�Moq�Kor�Los�t�Nou�v�w�x�Poy�z�QoRoUoSoVoXoT�U�?oF}@oW�E�Y�Z�F�Ao>o=o\�G�H�b>*F<o_�EoCo`�a�b�J�H}K�DoBoxBFoL�h�g�T�U�?oV�@oW�X�Y�Z�[�Ao>o=o\�]�^�b>*F<o_�EoCo`�a�b�c�d�e�DoBoxBFof�h�g�@�7o=�>�C}A�:oA�B�C�D�E�9o-EF�2o3o6oG�B�8oD}E}@6C�;o5oL�D�4o?�<�O�P�N�Q�I�G}<�7o=�>�?�@�:oA�B�C�D�E�9o-EF�2o3o6oG�H�8oI�J�@6K�;o5oL�M�4oO�P�N�Q�R�S�$�%�&�8�(�9�y3*�:�,�0o-�?:yA.�JD@};�5�A}3�4�;35�;�6�.o/oCD-o7�8�9�1oB}$�%�&�'�(�)�y3*�+�,�0o-�?:yA.�JD/�0�1�2�3�4�;35�;�6�.o/oCD-o7�8�9�1o:�}n.�9}:};}iFUEk�/�m�WDn�,o0�p�1�CC(or�)o<}=}u�v�>}2�-7x�+oy�?}3�4�}�08~�!�*o"�a>#�}nh�i�j�iFUEk�l�m�WDn�,oo�p�q�CC(or�)os�t�u�v�w�-7x�+oy�z�{�|�}�08~�!�*o"�a>#�S�%�5},;U�&�{nm?}�X�'�n?!o#oZ�(�)�6}{>7}"o$o_�8}S6*�EI+�c�b<#O~nx:?Od�e�&of�g�%o'oS�T�,;U�V�{nm?W�X�Y�n?!o#oZ�[�\�]�{>^�"o$o_�`�S6a�EIb�c�b<#O~nx:?Od�e�&of�g�%o'ou�3�/}5�6�v�8�9�0}1}<�w�wnx�/K2}@�y�B�z�D�E�F�3}H�I�{={�|�L�zn_JM�T1N�O�FIrC"�x5#�|n$�]94}2�3�4�5�6�7�8�9�:�;�<�=�wn>�/K?�@�A�B�C�D�E�F�G�H�I�{=J�K�L�zn_JM�T1N�O�FIrCx5P�|nQ�]9R�d6F=<F.}j�z�k�|�-A}�tnnnsnl�CLm�8Dunrnn�#�$�%�o�'�p�,A)�s�+�yn,�xn-�.�/�0�t�d6F=<Fx�y�z�{�|�-A}�tnnnsn~�CL!�8Dunrn"�#�$�%�&�'�(�,A)�*�+�yn,�xn-�.�/�0�1�*}Y�+}4Ejn[�Z�mnkn[�pn^�\�,}qn]�^�inb�_�vnt1d�e�hn`�a�-Hlnb�`>c�d�k�l�m�n�[9o�p�q�-}s�t�g�h�HKi�X�Y�Z�4Ejn[�\�mnkn]�pn^�_�`�qna�inb�c�vnt1d�e�hnf�g�-Hlnh�`>i�j�k�l�m�n�[9o�p�q�r�s�t�u�v�HKw�8�S�:�;�<�$}>�T�@�_FC3%}gnB�C�dnfnU�V�E�F�G�bnH�I�J�K�L�OoenM�N�O�X�kNQ�R�Z8&}'}(})}W�on8�9�:�;�<�=�>�?�@�_FC3A�gnB�C�dnfnD�E�F�G�bnH�I�J�K�L�OoenM�N�O�P�kNQ�R�Z8S�T�U�V�W�onVnWn!�L�M�#�PHS:a<XnYn$NE=nLLNZnb6$�%�[n||#E'�N�^nx3K?)�\n]n`D~|!}UK|6,�-�Q�"}R�1�2�#}`nan4�5�}|_n7�cnVnWn!�"�#�PHS:a<XnYn$NE=nLLNZnb6$�%�[n&�#E'�(�^nx3K?)�\n]n`D*�+�UK|6,�-�.�/�0�1�2�3�`nan4�5�6�_n7�cnd�Nnw|F�g�f=Mnh�LniBG�o8j�C@k�l�m�0Hn�9=x|p�On_>q�H�RnPny|t�I�Qnv�z|x�J�TnSnK�z>Un{�{|}�~�d�Nne�f�g�f=Mnh�LniBi�o8j�C@k�l�m�0Hn�9=o�p�On_>q�r�RnPns�t�u�Qnv�w�x�y�TnSnz�z>Un{�|�}�~�S�>�?�u|SFDn6=`<[GqCV�r<W�l?En@�FnA�Z�v|B�]?GnC�Hn^�InoM7=_�KnJnD�Z9s9@;E�b�c�S�T�U�SFDn6=`<[GqCV�r<W�l?EnX�FnY�Z�[�\�]?Gn]�Hn^�InoM7=_�KnJn`�Z9s9@;a�b�c�2�?n6�7�7�9�:�;�@nk|l|m|>�8�An@�9�:�C�n|o|D�p|H�"EI�q|Cnr|Bns|M�;�<�=�Q�t|5�?n6�7�8�9�:�;�@n<�n�=�>�?�An@�A�B�C�E�F�D�G�H�"EI�J�CnK�BnL�M�N�O�P�Q�R�j0*�b|c|d|+�Y9|�:O-�%�e|'�(�>n-�f|g|.�47;n<n,�tI3�T3h|1�1�i|9M0�?6TE4�5�j0~�!�"�#�$�Y9|�:O-�%�&�'�(�>n)�*�l�+�47;n<n,�tI/�T30�1�2�9M.�?6TE3�4�3n2n0ndcT4"�nmZ|5n4ni�#�k�6n$�8M[|\|o�]|^|r�&�_|aFu�.K7nY<8n(�9nw�`|y�:n)�!E{�a|3n2n0ndcT4g�nmh�5n4ni�j�k�6nl�8Mm�n�o�p�q�r�s�t�aFu�.K7nY<8nv�9nw�x�y�:nz�!E{�}�[Fk?{�|�YCx6&n7M?1]�WJa2!n"n#n$n;F#Cc0(n)n#t^�=B}�*ns1LA`�/8ZMa�b�+n,Ec�xAW<,nd�/ne�e=-n+A*Af�d0KN1nrH[Fk?[�\�YCx6&n7M?1]�WJa2!n"n#n$n;F#Cc0(n)n#t^�=B_�*ns1LA`�/8ZMa�b�+n,Ec�xAW<,nd�/ne�e=-n+A*Af�d0KN1nrH`BwAw�(FL�pmU5W|ymx�vm%n)F`Csm~DSEtmxm`?O�gGLDP�B@wm.B$Bum)0"OzmQ�R�T�U�X|aBS�5=J?W�X�|m{my�o0}m/I'nZ�`BwAK�(FL�pmU5M�ymN�vm%n)F`Csm~DSEtmxm`?O�gGLDP�B@wm.B$Bum)0"OzmQ�R�T�U�V�aBS�5=J?W�X�|m{mY�o0}m/I'nZ�7�l�*1xKW?m�o�;�p�^7=�a6>�q�VJr�ims�kmB�T|jm`2U|vFlmwG3EV|mmR=t�omu�H�BL~mqmrmv�IDJ�7�8�*1xKW?9�:�;�<�^7=�a6>�?�VJ@�imA�kmB�C�jm`2D�vFlmwG3EE�mmR=F�omG�H�BL~mqmrmI�IDJ�I?cm-�-<dm.�/�emg�1�R|!R~Qfmpegm$C+?@Gh�S|j�hm5�UJTD~96�)CI?cm-�-<dm.�/�em0�1�2�!R~Qfmpegm$C+?@G3�4�hm5�UJTD~96�)Cc�~�Xm!�m3Wm\m"�[md�Zm2E]m#�$�%�&�P|(�^me�_m*�+�l9%7`mambm,�}�~�Xm!�m3Wm\m"�[mZm2E]m#�$�%�&�'�(�^m)�_m*�+�l9%7`mambm,�_�f�S3Jmg�`�\:ImRmi�j�LmNmeJKmk�a�m�MmQmOm15M|Pmo�p�q�r�Sms�t�ZGXNb�u�N|w�4=Tmx�y�O|{�"MVm|�UmYmAMe�f�S3Jmg�h�\:ImRmi�j�LmNmeJKmk�l�m�MmQmOm15n�Pmo�p�q�r�Sms�t�ZGXNu�v�w�4=Tmx�y�z�{�"MVm|�UmYmAMJ|U�V�W�@m=mX�AmV<Bm0537Y�Z�.8[�Cm\�pF>EDm]�Gmd�^�_�`�a�4<]�L|FmEmZ7HmT�U�V�W�@m=mX�AmV<Bm0537Y�Z�.8[�Cm\�pF>EDm]�Gmd�^�_�`�a�4<b�c�FmEmZ7Hm/mA�B�2m1m0mC�4m3mvLD�6mE�5m7mF�R�8mG�H�I�S�:mK�L�M�9mH?;mN�T�m6<m>mU�V�W�R�X�?m/mA�B�2m1m0mC�4m3mvLD�6mE�5m7mF�8mG�H�I�J�:mK�L�M�9mH?;mN�O�m6<m>mP�Q�R�S�?m+�,�zl}D!m%m"m~lL�#m.�/�0�$mM�+m&m2�3�4�5�X@(m6�N�*m'm8�O�P�Q�G|=�-m3=,m>�?�H|.m+�,�zl}D!m%m"m~l-�#m.�/�0�$m1�+m&m2�3�4�5�X@(m6�7�*m'm8�9�:�;�<�=�-m3=,m>�?�@�.mt�u�v�A�sltlYMx�>�'Fxly�C�D�vlwlylD|E�F�E|"�G�)m|l$�%�}l{lJ�'�(�K�F|t�u�v�w�sltlYMx�'Fxly�z�{�vlwlyl|�}�~�!�"�#�)m|l$�%�}l{l&�'�(�)�*�^�el_�:�a�;�c�mlklA|hlB|f�g�jlC|<�illlw5plW@qlj�k�l�Y8nlol=�)On�p�q�7Dr�)Arl@�ul^�el_�`�a�b�c�mlkld�hle�f�g�jlh�i�illlw5plW@qlj�k�l�Y8nlolm�)On�p�q�7Dr�)Arls�ulclK�6�6DM�[1N�O�P�7�dlR�S�T�q<8�v?V�W�@|Y�-BZ�[�\�gl]�o�flclK�L�6DM�[1N�O�P�Q�dlR�S�T�q<U�v?V�W�X�Y�-BZ�[�\�gl]�o�flV@F�O<_lG�R35�`lI�vAalblkIh�/5J�V@F�O<_lG�R3H�`lI�vAalblkIh�/5J�@�A�SlTlVl#B3�Ulf4Xl4�WlYl>|[l]l^lD�?|@�A�SlTlVl#BB�Ulf4XlWlYlC�[l]l^lD�E�l2Ll(OBDEO,�-�q;Kl.�1B/�\l(A0�xFPI-�,�.�Ol?;r;4�^>eG9|-8NlMljI6�A<7�RE8�0�1�:�:|;�<�;|QlRlX9Pl<|?�l2Ll(OBDEO,�-�q;Kl.�1B/�\l(A0�xFPI2�1�3�Ol?;r;4�^>eG5�-8NlMljI6�A<7�RE8�9�:�g�;�<�=�QlRlX9Pl>�?�:l<l~�!�;l=l"�FK>l?l#�'�&�@lBl(�*�(�-3gDiIb:W9+�OI_2NHElS4U@DlIlyCcLGlHl.5JlcG_B*�+�qH=EFlGK:l<l~�!�;l=l"�FK>l?l#�$�%�@lBl&�'�(�-3gDiIb:W9)�OI_2NHElS4U@DlIlyCcLGlHl.5JlcG_B*�+�qH=EFlGK/l{�&F|�1l6|-Ki�2l3l}�4lk�l�~�5l!�o�r�ZFp�q�]>6ls�t�u�7|"�k9.P7l#�$�z�{�8l?I9l|�Al}�/lf�&Fg�1lh�-Ki�2l3lj�4lk�l�m�5ln�o�r�ZFp�q�]>6ls�t�u�v�w�k9.P7lx�y�z�{�8l?I9l|�Al}�+Cb�v�.lx�e�0l+Cb�c�.ld�e�0l&lp�>;X�Y�NZq�'l[�(l\�2=)l*lr�s�+l,l-lt�5|u�a�&lW�>;X�Y�NZZ�'l[�(l\�2=)l*l]�^�+l,l-l_�`�a�vkD�j�F�G�1|I�zkwkN�ykxkl�J�K�2|{k1<3|}k|khIm�!lP�Y74|~k"lQ�#lD5Afy>$ln�n8S�T�U�%lV�o�vkD�E�F�G�H�I�zkwkN�ykxkJ�K�L�{k1<M�}k|khIO�!lP�Y7~k"lQ�#lD5Afy>$lR�n8S�T�U�%lV�f�EKZ1b0%Fe�9�ikd�:�hkf�fFmk;�bklknk,8jkV9g�U<=�h�okXMrkuksk5Ii�A�pkB�`6C�tkEKZ1b0%F8�9�ik?�:�hkfFmk;�bklknk,8jkV9<�U<=�>�okXMrkuksk5I@�A�pkB�`6C�tk[k%�Yk&�LC'�(�)�A@R4Zk[?*|*�JN+�,�-�@Oa�\kgk5D/�fk+|ckkkdk`k|D_k]k1�!Mp;2�ak^k,|4�-|ekt=A8b�zB7�[k%�Yk&�LC'�(�)�A@R4Zk[?*�JN+�,�-�@O.�\kgk5D/�fk0�ckkkdk`k|D_k]k1�!Mp;2�ak^k3�4�5�ekt=A86�zB7�o�Pkp�QkOkq�X8@Mr�o;'Gs�^�Tku�@@BCv�w�6Mx�Wkl8y�?@SkXkm8UkVk)|Rk{�b@IF]�}�/C]2~�!�_�pH#�C5`�4Do�Pkp�QkOkq�X8@Mr�o;'Gs�t�Tku�@@BCv�w�6Mx�Wkl8y�?@SkXkm8UkVkz�Rk{�b@IF|�}�/C]2~�!�"�pH#�C5$�4DW�FkX�Z�Ik#|Jk[�[�$|>:BBHk^�[>>I_�`�\�Gkb�%|l;S1&|NkX7e�n;f�m;MOMkLk'AM5CO:3\>'|h�i�(|k�l�Kkm�n�W�FkX�Y�IkZ�Jk[�\�]�>:BBHk^�[>>I_�`�a�Gkb�c�l;S1d�NkX7e�n;f�m;MOMkLk'AM5CO:3\>g�h�i�j�k�l�Kkm�n�@8{D>kC�D�E�W7V?Ak$FF�@kT�}{17U�~{?kwB-5BkCkK�Y>L�W�!|m7N�DkO�,KP�Q�_@R�v5uLJAX�Ek"|G?pCZ>U�Y�@8{D>kC�D�E�W7V?Ak$FF�@kG�H�17I�J�?kwB-5BkCkK�Y>L�M�m7N�DkO�,KP�Q�_@R�v5uLJAS�EkT�G?pCZ>U�V�7kQ3z{5�K�7�L�8k9k:kr2{{(?;k:�M�<�O�P�<k|{=k@�Q�R�7kQ34�5�6�7�8�8k9k:kr29�(?;k:�;�<�=�>�<k?�=k@�A�B�E�WM)k$JFG*kF�+k+8%�,5G�,kx{(�k;AG-kP3)�*�H�,�.k-�0kwM/kF?1k2kI�3kQ4/�0�1�J�4k3�5k6kWM)k$JFG*k$�+k+8%�,5&�,k'�(�k;AG-kP3)�*�+�,�.k-�0kwM/kF?1k2k.�3kQ4/�0�1�2�4k3�5k6kw{vj?�qjwj@�n�A�{j7pp�q�(2r�s�t�u�~j_6}jv�D�x�"k!k$ky�#kz�%k{�1=|�&k}�'k~�!�"�#�(k>@k�vjl�qjwjm�n�o�{j7pp�q�(2r�s�t�u�~j_6}jv�w�x�"k!k$ky�#kz�%k{�1=|�&k}�'k~�!�"�#�(k>@;�hjmjV�#JojnjW�X�Y�l3+KpjZ�[�p{q{r{n{|jrj`�sja�s{c�tjujt{e�u{g�yj=�zjv{i�xjj�U�hjmjV�#JojnjW�X�Y�l3+KpjZ�[�\�]�^�_�|jrj`�sja�b�c�tjujd�e�f�g�yjzjh�i�xjj�2�[:vNajbjuAj{F�G�H�k{"N5�3�6�cj5Mdjej7�dJfjN�@:#NO�kjP�8�9�ljX>jjm{T�gMgjij=@~?D�[:vNajbjuAE�F�G�H�I�"NJ�K�L�cj5MdjejM�dJfjN�@:#NO�kjP�Q�R�ljX>jjS�T�gMgjij=@~?8�OjVj67^B\jXj5BWjh{Zj:�;�<�Qj=�.�[j]j?�i{oHYj^j`jS8TjA0A�/�0�1�_j8�OjVj67^B\jXj5BWj9�Zj:�;�<�Qj=�>�[j]j?�@�oHYj^j`jS8TjA0A�B�C�_jl7#�Ij$�Hj%�0=&�'�%�)�T9'^*�+�JjQ=,�-�93&�Kj/�R10�W>Lj'�2�U9Mja0(�=I+�Nj-�j?5�UjRjoC6�7�SjPj^6l7#�Ij$�Hj%�0=&�'�(�)�T9'^*�+�JjQ=,�-�93.�Kj/�R10�W>Lj1�2�U9Mja03�=I4�Njj?5�UjRjoC6�7�SjPj^6z�{�$jc{d�k�d{|�8j<j7je{>jp�}�f{@j?js�o�t�u�v�w�g{BjAjZiFj~�z�!�|�Cj"�~�DjEj!�Gj#�h�i�$jj�d�k�l�m�8j<j7jn�>jp�q�r�@j?js�o�t�u�v�w�x�BjAjZiFjy�z�{�|�Cj}�~�DjEj!�Gj"�+jo�/j2j1jS�T�U�)jp�,j=jW�a{Y�Z�[�r�6j]�t�_�u�v�w�x�b{y�4jc�5jd�q�:j;je�*3f�B59jg�+jR�/j2j1jS�T�U�)jV�,j=jW�X�Y�Z�[�\�6j]�^�_�`�a�b�4jc�5jd�:j;je�*3f�B59jg�'j8�9�:�;�[{\{g�h�@�;MA�i�C�D�E�F�G�&jj�%jI�f�.j]{^{M�(jN�0j_{fM3j*jm�Q�'j8�9�:�;�<�=�>�?�@�;MA�B�C�D�E�F�G�&jH�%jI�J�.jK�L�M�(jN�0jO�fM3j*jP�Q�\�]�-�f@9Oxi.�yi^�!j*?{i_�~i0�viui1�"j`�a�\2|i#j}i4�Z{b�zi3Dwi7�c�hG+�,�-�f@9Oxi.�yi!j*?{i/�~i0�viui1�"j2�3�\2|i#j}i4�5�6�zi3Dwi7�hGfi*Kgiq�P�diQ�eijimiY{kiR�v�S�iiciT�y�XCU�ti*L{�V�W�X�ri!�si"�#�Y�%�nipi&�Z�qi(�)�[�oifi*Kgiq�r�dis�eijimit�kiu�v�w�iicix�y�XCz�ti*L{�|�}�~�ri!�si"�#�$�%�nipi&�'�qi(�)�*�oi_�H�I�Vib�WiX<YiACV7B3J�d�\iK�L�?3g�aih�]i`ii�M�:Hk�N�l�^i_iHIZHbi}BliV{hiW{X{k2_�`�a�Vib�WiX<YiACV7B3c�d�\ie�f�?3g�aih�]i`ii�j�:Hk�l�^i_iHIZHbi}Blin�hio�p�k2>�m�?�c2RiSi@�A�Ni=;N�T{P�B�C�R�OiBGS�T�D�PiQi[iV�UiXiF�G�Y�Z�Ti[�U{]�^�m�c2RiSiL�M�Ni=;N�O�P�Q�R�OiBGS�T�U�PiQi[iV�UiXiW�X�Y�Z�Ti[�\�]�^�7�h/7�8�HiW8T59�9�Ji]Q:�M{=�>�u5N{:N?�s6Ki@�A�P{C�D�LiE�nCR{;�MiS{I�<�zF=�:06�f�7�8�HiW8T59�:�Ji]Q;�<�=�>�u5:N?�s6Ki@�A�B�C�D�LiE�nCF�G�MiH�I�J�zFK�:0-�"iF{G{CiIA>i@i%�&�H{.�D{?i1]"]J{+�Ei,�/�0�Di1�2�K{vM<bFi1�L{4�3�5�5�Gi"�"i#�$�CiIA>i@i%�&�'�(�)�?i1]"]*�+�Ei,�-�.�Di/�0�vM<bFi1�2�3�4�5�GiNOo�%�4i&�A{uMB{6i8i9i'�(�v�<i:i)�x�*�#F;i+�z�MH.iC{|�,�s==iBitA~�AiE{NOo�p�4iq�r�uMs�6i8i9iu�v�<i:iw�x�#F;iy�z�MH.i{�|�}�s==iBitA~�Ai!�%iy�vGY�z�/i'i[�)i\�={>{3i(i{�,ir1`�eF-i0i|�}�c�?{&ie�&Af�*i';E?07tL;{yLr=@{g�h�#�j�7i5i$�l�m�n�%iX�vGY�Z�/i'i[�)i\�]�^�3i(i_�,ir1`�eF-i0ia�b�c�d�&ie�&Af�*i';E?07tLt�yLr=a�g�h�i�j�7i5ik�l�m�n�{h!iYHA�~hV>I<#i>6k�C�p�E�q�$iG�yI}h8{VhI�J�r�L�M�s�t�|h9{OO"FsIQ�+il�1iS�<{v�w�2ix�{h!iYHA�~hV>I<#i>6B�C�D�E�F�$iG�yI}hH�VhI�J�K�L�M�N�O�|hP�OO"FsIQ�+iR�1iS�T�U�V�2iW�C<-�.�Qh/�e�1�2�NJ"Lyhxhthuh61f�3�5{whqh5�6{g�h�UD9�:�i�vh~07{4{=�j�"B?�CJo�@�C<-�.�Qh/�0�1�2�NJ"Lyhxhthuh613�4�whqh5�6�7�8�UD9�:�;�vh~0<�)�=�>�"B?�CJ@�1{mh2{_Cnhz�{�VMch83|�ihZ�[�lh,L\�ohhhkhU�^�_�)K!O`�a�b�'�sh(�c�+�zhd�rhx�mhy�_Cnhz�{�VMch83|�ih}�lh,L~�ohhhkh!�"�#�)K!O$�%�&�'�sh(�*�+�zh,�rhS�\hWh,{U>/=j�k�,<l�V�XLGI-{ghphW�o�p�q�Zh.{s�w3/{x>eh0{jhsAv�X�fhh�\hWhi�U>/=j�k�,<l�XLGIm�ghphn�o�p�q�Zhr�s�w3t�x>ehu�jhsAv�w�fhO�^hP�({UMG�S�*NH�I�J�W�xCX�K�L�k3M�){\�rIdh!F]�O�10_�]h`�YhrASh[h`h*{,G+{c�*0P�XhQ�ahxIR�g�O�^hP�Q�UMR�S�*NT�U�V�W�xCX�Y�Z�k3[�\�rIdh!F]�^�10_�]h`�YhrASh[h`ha�,Gb�c�*0d�Xhe�ahxIf�g�${Dh:F%{Ih&{Fh(KLh`0A�B�@hC�E�K�NhMhkGTh_hM�~3bhPhF�UhnME�Dh:FF�IhG�Fh(KLh`0H�I�@hJ�K�NhMhkGTh_hM�~3bhPhN�UhnM|zGh{?}z;�F5]6Bh~z<�!{[2=�T>EhZ:>�QEJh"{?�?�nJ#{AhZ2V8)IKh?hA�HhB�@�RhD�Ch6�Gh{?7�8�F5]6Bh9�:�;�[2<�T>EhZ:=�QEJh?�nJ@�AhZ2V8)IKh?hA�HhB�C�RhD�Ch#�$�%�.hvz6h=h7h6�5hwzvg7�8�3hxz,�/h9�.�:�P41h<h2h0�yz>hzz0h|G3�L�iM9hOh4�{z#�$�%�.h&�6h=h7h'�5h(�vg)�*�3h+�,�/h-�.�/�P41h<h2h0�1�>h2�0h|G3�L�iM9hOh4�5�&hs�qz0�)hrzpAU7w�x�A1(hszS9>�+�tz{�1�qAmzJ�}�:h;hY2~�.28huz3�&hs�t�u�)hv�pAU7w�x�A1(hy�S9>�c�z�{�|�qA_�}�:h;hY2~�.28h!�"�kzlzPLwgX2}3{g(�)�}ga�b�*�T7#h,h-h,�+0-�f�g�h�nz4hq0+hj�ozl�*h.�%h$hn�"h!hcCo�{B'hpz/�r�]�^�PLwgX2}3{g_�`�}ga�b�T7#h,h-hd�+0e�f�g�h�i�4hq0+hj�k�l�*hm�%h$hn�"h!hcCo�{B'hp�q�r�#4gzO�q1rgjN]BhzDI~gQ�W2|gzgqgR�og%�pgT�c<l6wC&�V�QFW�X�Q1tgsgY�'�ygugxgizjz#4N�O�q1rgjN]BP�DI~gQ�W2|gzgqgR�ogS�pgT�c<l6wCU�V�QFW�X�Q1tgsgY�Z�ygugxg[�\�/�0�z�2�3�4�{�r0ig^z7�jg|�8�9�:�gI;�<�G<lg=�_z`zaz)320}�~�bzD�kgngNGczD?F�V2!�'K"�dz]7\6#�mg$�j2ezfz/�0�1�2�3�4�5�r0ig6�7�jg8�9�:�gI;�<�G<lg=�>�?�@�)320A�B�C�D�kgngNGE�D?F�V2G�'KH�I�]7\6J�mgK�j2L�M�Yg{�|�i�g�zDh�k�"�m�$�%�o�[gZg]gq�\g^g[z`gr�_gO4)�agbgcg*�1:INeg'?\zp1fgggv�,�x�hgy�Yg{�|�}�~�zD!�"�#�$�%�[gZg]g&�\g^g'�`g(�_gO4)�agbgcg*�1:INeg'?+�p1fggg,�-�hg.�m�MgNgn�^�OgPg=6*ZQge@RgK<o�Sg0Pp�q�Tg^J\4`�s�$AX=t�qI.=a�b�w�UgR9VgLHdgd�Xge�IBuG?8Wg%Az�f�m�MgNgn�OgPg=6*ZQge@RgK<o�Sg0Pp�q�Tg^J\4r�s�$AX=t�qI.=u�v�w�UgR9VgLHdgx�Xgy�IBuG?8Wg%Az�=gR�>gS�W�22Eg@gUzU�AgY�VzBg!B[�T�WzDgCgFgU�^�_�GgHg`�C?W�i2IgWN+<b�Y�-=d�e�f�j;WCg�h�i�j�JgKg11[�Lg\�=g>gV�W�22Eg@gX�U�AgY�Z�Bg!B[�\�DgCgFg]�^�_�GgHg`�C?a�i2IgWN+<b�c�-=d�e�f�j;WCg�h�i�j�JgKg11k�Lgl�/gK�0g,gM�N�I�-g.gJ�K�Q9F�6g2gL�P�fIN�lK(IO�1gP�4g3gDK7gQ�8gQ�7AS�9g;g?gTz<g:g?G/gE�0g,gG�H�I�-g.gJ�K�Q9F�6g2gL�M�fIN�lK(IO�1gP�4g3gDK7gQ�8gR�7AS�9g;g?gT�<g:g?G7�"g8�Oz~f:�U?eI%g;�$gP9SO<�5gPz>�)g*gQzRzI�p<Sz(gC�x9'g+gD�2D"J#A\B7�"g8�9�~f:�U?eI%g;�$gP9SO<�5g=�>�)g*g?�@�A�p<B�(gC�x9'g+gD�2D"J#A\Bi;(�<6H@FO.LwfT@)�;�@�+�NzS5zf-�A�/�|fC�D�{fE�}f3�&C>G?�1D5�6�G�#gi;(�<6H@FO.LwfT@)�*�+�,�S5zf-�.�/�|f0�1�{f2�}f3�&C>G4�1D5�6�#g_0tf6�@Ct�JzXGu�[Bv�w�x�7�vfKz8�rfufpfsf&KLzU8}0qf9�}�~�xf!�yf"�Mz9F<�$�;6%�&�=�&g=G'�_0tf@Ct�XGu�[Bv�w�x�y�vfz�{�rfufpfsf&K|�U8}0qf}�~�xf!�yf"�#�9F$�;6%�&�&g=G'�j�gfifhf%Hk�yF>O)Hl�kfS>*I0�lfjf1�N4n�T8h;2�nHo�3�*8CKq�ofmfN9O9i0h:4�s�YGj�gfifhf%Hk�yF>O)Hl�kfS>*Ilfjfm�N4n�T8h;nHo�p�*8CKq�ofmfN9O9i0h:r�s�YGb�+�c�YfXfZf;@[f\f9J]fd�oA^fe�,�_fg�~Nbf-�af`f0D.�cf&?df/�ef8Offb�c�YfXfZf;@[f\f9J]fd�oA^fe�f�_fg�~Nbfh�af`f0Di�cf&?dfef8OffTM7O"�M9NfT<MfH�$�#�Of)<K�%�M�QB&�PfO�EzL9'�WLQfRfSfR�S�T�U�Tf(�FzUf)�Y�*�*<[�GzmLHz^�_�WfIz?Ca�VfTM7OM9NfT<MfH�I�J�Of)<K�L�M�QBN�PfO�P�L9Q�WLQfRfSfR�S�T�U�TfV�W�UfX�Y�Z�*<[�\�mL]�^�_�Wf`�?Ca�Vf6�'2z�BfCf8�DfbM>z{�,=FfEf?z@zi?Gf|�}�Hf?�Ife4AzBz~�M4!�JfKfCz]KcME�F�G�6�'27�BfCf8�DfbM9�:�,=FfEf;�<�i?Gf=�>�Hf?�Ife4@�A�B�M4C�JfKfD�]KcME�F�G�%�0f2feM1f4f3fSM&�5f'�~H(�s�;z6fv�<z9fw�8f7f.�/�:f270�"AA51�x�>f;f<f3�?f@f=f4�)1=z%�0f2feM1f4f3fSM&�5f'�~H(�)�*�6f+�,�9f-�8f7f.�/�:f270�"AA51�2�>f;f<f3�?f@f=f4�)15�e�f�!f9z"f#f$fg�%f&fj�u�(f'f)fv�w�x�*f+fl�m�n�|�}�.f,f-fa:S7o�VC3H!�p=MGmH/fmXp�q�$�p�q�!fr�"f#f$fs�%f&ft�u�(f'f)fv�w�x�*f+fy�z�{�|�}�.f,f-fa:S7~�VC3H!�p=MGmH/fmX"�#�$�L4}e~ec�b�m�d�o�L4}e~el�k�m�n�o�`�<;me[�\�rese7zte8zze;Eve^�uewexef�ye_�`�{e|ei�j�`�<;mea�b�resec�ted�ze;Evee�uewexef�yeg�h�{e|ei�j�KH^eO�W�Ye4z!AR7+=R�S�5z%?6AdeU�fegeceeeV�6zX�Y�Zebejeie~~zK[�\�+7X�Y�^�helekeoeZ�qeKH^eO�P�YeQ�!AR7+=R�S�T�%?6AdeU�fegeceeeV�W�X�Y�ZebejeieZ�zK[�\�+7]�^�helekeoe_�qe3�o1lFOe0zVePeWeQ�1zSe2zR�{GD�S�J<UeT�ReXeQeD=U�/z%KV�J�L=K�Te`eL�\eM�_e]eae[eAeS@N�3�o1lFOe?�VePeWe@�A�SeB�C�{GD�E�J<UeF�ReXeQeD=G�H�%KI�J�L=K�Te`eL�\eM�_e]eae[eAeS@N�H�*z*�+�,�-�>e[6lH+z/�0�mAPNo=ne,zI�HeJ�~@DeIeKeyDNe4�-zJe5�K�TJK47�8�KL9�^0L�Me}N;�<�M�>�Le)�*�+�,�-�>e[6lH.�/�0�mAPNo=ne]�1�He2�~@DeIeKeyDNe4�Je5�6�TJK47�8�KL9�^0:�Me}N;�<�=�>�Ler�s�&zu�>�?�5e'z@�z�7e{�4e|�A�Q73B9enAC�!�Fe(zBe<e)zD�E�@ez<]0;eCeGeK9VL%�VD=eF�G�Ee(�:e>C?e=0JLr�s�t�u�v�w�5ex�y�z�7e{�4e|�}�Q73B9enA~�!�Fe\�Be<e"�#�$�@ez<]0;eCeGeK9VL%�VD=e&�'�Ee(�:e>C?e=0JL2�!z*=>8HA%e+e3�"z&eP7b�.e2ek7c�#z-ee�7�8�6e$zi�J9mM<03ej�k5k�0e9�1e:�}E/e,e(3d@n�(8%zp�8e<�^�_�*=>8HA%e+e`�a�&eP7b�.e2ek7c�d�-ee�f�g�6eh�i�J9mM<03ej�k5k�0el�1em�}E/e,e(3d@n�(8o�p�8eq�*5!e)�sLH9~dyyzy*�$efL<GO�3IP�,�{yc=#eS�S<I9f;i56J"e|y-�GABKw:}yW�X�g;]DY�'e_NY:~y(eB?*eR>0:[�0�1�)e*5!eK�sLH9~dL�M�N�$efL<GO�3IP�Q�R�c=#eS�S<I9f;i56J"eT�U�GABKw:V�W�X�g;]DY�'e_NY:Z�(eB?*eR>0:[�\�]�)eqdsd|�rd;�~�=�R8!�8A?�ud@�A�vy|E#�tdwyE�vdxy5JlAG9wd%�HNH�&�ydzd{d(�|de;}dO7j5qdsd:�rd;�<�=�R8>�8A?�ud@�A�B�|EC�tdD�E�vdF�5JlAG9wdG�HNH�I�ydzd{dJ�|de;}dO7j5N6)7cd,�-�4Jh?0Lrydd3NsytGFA4GM=0�@0tyidgded!4v�Q>jdhdfdnd3�mdldkdx�y�od6�7�uypd:@z�N6)7cd,�-�4Jh?0L.�dd3N/�tGFA4GM=0�@01�idgded!42�Q>jdhdfdnd3�mdldkd4�5�od6�7�8�pd:@9�ZdWdi�s�j�VdR@Yd[dk�w�x�Xdu�_dl�\doyz�{�|�}�m�]dFdn�"�^d`d#�o�adpyp�q�r�(�FJbdqy*�+�bLZdWds�t�VdR@Yd[dv�w�x�Xdu�_d\dy�z�{�|�}�~�]dFd!�"�^d`d#�$�ad%�&�'�(�FJbd)�*�+�bLGdgy]�d�_�`�Hda�e�c�Mdf�g�BdURIdCdLdf�g�iyRdjyJ4Odi�h�Pdk�QdTdl�hykyo�lySdvHq�r�Ud|NmJGd\�]�^�_�`�Hda�b�c�Mdd�e�BdURIdCdLdf�g�Rdh�J4Odi�j�Pdk�QdTdl�m�n�o�p�SdvHq�r�Ud|NmJa@;dH�OH[�?dSJJ�[C\�:d<d=d_�`�eyfya�Q�@dD<FFEdDdR�Adb�6Oc�T�JdU�V�NdKdW�X�Y�Z�[�a@;dH�OHI�?dSJJ�[CK�:d<d=dL�M�N�O�P�Q�@dD<FFEdDdR�AdS�6OT�JdU�V�NdKdW�X�Y�Z�[�4�OJU25�5d2d6�7dT�U�6dsG'L9�;;0d9d4dV�3d/dcy1d<�I4=�=C>�}@X�@�"HA�>dY�C�$HD�E�Z�G�4�OJU25�5d2d6�7d7�8�6dsG'L9�;;0d9d4d:�3d/d;�1d<�I4=�=C>�}@?�@�"HA�>dB�C�$HD�E�F�G�%�J�&d.I]y&HyEZ6%d#d^y5H~c^C{EzEL�v:8d_yN�(dO�*dP�.�-d`y.day+d,dbyQ�)d'd3�M�!dI�%�&�&d.I'�&HyEZ6%d#d(�5H~c^C{EzE)�v:8d*�+�(d,�*d-�.�-d/�.d0�+d,d1�2�)d'd3�!dsc"dvc?�h5uc$dtcP>Zyt�xcyc+Ezcu�^3v�Z?dIB�|cx�C�z�hB[yD�E�~�F�wc"�{c}c{:\yA�$�sc"dvcs�h5uc$dtcP>t�xcyc+Ezcu�^3v�Z?dIw�|cx�y�z�hB{�|�}�~�!�wc"�{c}c{:#�$�v3bcacd�ec^ce�fc)N8�gcWyhc9�tTjcickclci�5NmcopO>ncocW=8Fpc:�;�k�(CXym�qc<Crcn�<�%6?Q]C3<p�Yyr�H4v3bcacd�ec^ce�fc)Nf�gcg�hch�tTjcickclci�5NmcopO>ncocW=8FpcY�j�k�(Cl�m�qc<Crcn�o�%6?Q]C3<p�q�r�H4R�MF-�`@u:RyU�Xc.�W�/�Y�bCkAZ�Zc\cYc[c[�"7Sy0�]c&71�g5RM_cUy`�`c4�.1Vy5�6�ccR�MFS�`@u:T�U�XcV�W�X�Y�bCkAZ�Zc\cYc[c[�"7\�]�]c&7^�g5RM_c_�`�`ca�.1b�c�ccr9fJNc?�@�TK"�B�Pc#�Q@O1:2,0D�$�Oc%�&�Oy'�(�QcRcw>K�)�Sc*�O3PyUcj7+�f5,�Vcu6WcQ�|@r9fJNc?�@�TKA�B�PcC�Q@O1:2,0D�E�OcF�G�H�I�J�QcRcw>K�L�ScM�O3N�Ucj7O�f5P�Vcu6WcQ�|@)5*�Ly,�Cc-�x�xD/�DcG@y�-Lz�#IEcFcUC{�GN|�HcGc4�5�6�~�o<8�9�Jcp0:�;�Mc!�Ny>�KcT2N7LcF9)5*�+�,�Cc-�.�xD/�DcG@0�-L1�#IEcFcUC2�GN3�HcGc4�5�6�7�o<8�9�Jcp0:�;�Mc<�=�>�KcT2N7LcF9(=d;o�u�p�Ey=cFy)=q�r�y�J2CIHy>cs�kH|�}�IyEA!�Ac"�BciG#�A??caC$�Jy@cKyN>'�(�\0)�(=d;t�u�v�w�=cx�)=y�J2CIz�>c{�kH|�}�~�EA!�Ac"�BciG#�A??caC$�%�@c&�N>'�(�\0)�IcX6=O5A4ca�b�R2wD!Jc�d�g�h�i�Byj�j�5ck�z56cl�l�8cn�9co�)GCy:cm�Dy;c<cn�Y6S2EFIcX6=O5A4ca�b�R2wD!Jc�d�e�f�g�h�i�j�5ck�z56cl�m�8cn�9co�)Gp�:cq�r�;c<cs�Y6S2EF+c77N�5y6y@5'5c;a�R�S�4MT�1cU�0cDA-cb�/cc�:yK=@?.c,c*GM>e�<IZ�[�W:f�xE>y2c^�_�`�3c+c77N�O�P�@5'5c;Q�R�S�4MT�1cU�0cDA-cV�/cW�X�K=@?.c,c*GM>Y�<IZ�[�W:\�xE]�2c^�_�`�3c-yL><�%c=�CA\�'c&c(c?�]�/yA�B�C�_�hbE�F�jb*c)cG�0y^�1y2yJ�(<`�iNL�R<M�6�L><�%c=�CA>�'c&c(c?�@�A�B�C�D�hbE�F�jb*c)cG�T�H�I�J�(<K�iNL�R<M�'<|bwb$�P�&�}bxbQ�R�XHvb)�*�ybS�,�"c.�/�T�U�+yV�!caK3�~bk0,y5�$c7�.yW�X�Y�#cZ�;�'<|bwb$�%�&�}bxb'�(�XHvb)�*�yb+�,�"c.�/�0�1�-�2�!caK3�~bk04�5�$c7�8�9�:�#c;�k8nbvDI�qb73lbp�jH01J�l:ROr�pbL�M�N�s�rbK�KJx�Y@tby�*yub(y|�}�~�sbN3O�{b"�zb#�k8nbvDo�qb73lbp�jH01q�l:ROr�pbt�u�v�s�rbw�KJx�Y@tby�z�ub{�|�}�~�sbN3!�{b"�zb#�!y^�kbE�`�a�"y#y$yc�d�K>e�f�g�h�F�%yG�2NE9&y'8#Hmbm�obn�]�^�kb_�`�a�b�c�d�K>e�f�g�h�i�j�k�2NE9l�'8#Hmbm�obn�=:>�?�@�fbA�R�S�gb&8U:B�T�ibC�V�W�VEV:N5D�}xY�Z�$KKG[�\�WE\9=:N�O�P�fbQ�R�S�gb&8U:T�ibU�V�W�VEV:N5X�Y�Z�$KKG[�\�WE\9<�^b=�_b>�?�@�`bA�ab7Lbb3�4�|xpLcb5�NC6�jGk67�8�;Cdb:6:�J�P@;�L�<�eb<�^b=�_b>�?�@�`bA�ab7LbbB�C�D�pLcbE�NCF�jGk6G�H�;Cdb:6I�J�P@K�L�M�ebyx,�Sb-�.�RbTbzx0�1�.�Vb/�Ub0�1�MJ5�2�{xV=FN7�8�Wb9�7F:�XbYb]b[b\b;�Zb+�,�Sb-�.�RbTb/�0�1�2�Vb3�Ub4�MJ5�6�V=FN7�8�Wb9�7F:�XbYb]b[b\b;�ZbeCp�q�rxIbs�sxtxv�w�x�y�%�JbMbux{�vx&�g?wxDF!�NbSK"�Kb'�Lb$�%�)�'�(�Qbxx*�+�PbObeCp�q�r�Ibs�t�u�v�w�x�y�JbMbz�{�|�}�g?~�DF!�NbSK"�Kb#�Lb$�%�&�'�(�Qb)�*�PbObZ�J>@b[�?b>b}HnxG4)8]�^�_�`�{�ox|�Fbd�Cb??2Le�BbDbEbf�Ab}�h�i�px~�qxGbHbm�/Dc4n�o�Z�J>@b[�?b>b}H\�G4)8]�^�_�`�a�b�c�Fbd�Cb??2Le�BbDbEbf�Abg�h�i�j�k�l�GbHbm�/Dc4n�o�I�3bVGgx_KN1v�W1L�hx4bix6bjx5bpEP�9@9]7bALQ�8bF4WH9bkx:bx�;by�\LU�lxUL>DW�jAX�=bmxb=I�3bVGJ�_KN1K�W1L�M�4bN�6bO�5bpEP�9@9]7bALQ�8bF4WH9bR�:bS�;bT�\LU�V�UL>DW�jAX�=bY�b=%b`xQ�&b*E6�'3D9'b(b7�8�)b);+bn�*b,b-baxo�bxcx=�q�p�?�@�A�B�dxr�s�exG�iHt�.b/bfxis0b1b2bH�.;%b5�Q�&b*E6�'3D9'b(b7�8�)b);+b9�*b,b-b:�;�<�R�=�>�?�@�A�B�C�D�E�F�G�iH.b/bis0b1b2bH�.;$�h�ENYx'�(�tarasaj�#�Zxb4~Lk�JJva,�ua-�waxa[x\x|ayaza{a}a]xm�^x~a_x!b4�"b#b/HPE$brG4I$�%�EN&�'�(�tarasa)�#�*�b4~L+�JJva,�ua-�waxa.�/�|ayaza{a}a0�1�2�~a3�!b4�"b#b/HPE$brG4IPxaaQxX�f�Z�Rxhai�faj�ga[�l�^�SxTxY�Ux_�`�s�Vxiakalamau�nab�}~jac�x�Wxpaz�e�oaXx}�~�!�qad�c�aad�e�f�g�h�hai�faj�gak�l�m�n�o�p�q�r�s�t�iakalamau�nav�w�jax�y�paz�{�oa|�}�~�!�qa"�L�Q�PaRaR�BIM�I>YaT�XaNxN�ZaO�&</:W�wE[aKDX�P�]aQ�R�[�!N\aOxS�iAT�U�`�baV�daeaTCW�ca`a^a_aP�Q�PaRaR�BIS�I>YaT�XaU�V�Za&</:W�wE[aKDX�]aY�Z�[�!N\a\�]�iA^�_�`�baa�daeaTCb�ca`a^a_aC�JaD�EaFaIaHa%IE�BAAAE�?5LxG�KaH�I�LaJ�MaG�OaL�NaV1I�WahHQaM�SaJ�Ua>?N�VaTa@<K�C�JaD�EaFaIaHa%IBAAAE�?5F�G�KaH�I�LaJ�MaK�OaL�NaV1WahHQaM�SaUa>?N�VaTa@<O�8�1�7a<a2�9�:a9aBZ&38a:�Z0;�*H<�JH7�1N=a;a\C&@8�9�+H:�-I?a,NM7@a>aVHAa=�BaJx[0?�>�v>GaDamFCaKx@�?�@�A�B�&50�1�7a<a2�3�:a9aBZ&38a4�Z05�*H6�JH7�1N=a;a\C&@8�9�+H:�-I?a,NM7@a>aVHAaBa;�[0<�v>GaDamFCa=�>�?�@�A�B�&5Gx,a+a-a~�.a0a/ay9!�2a1a"�HxE4S?<E3a8@1�%�:;2�y14a'�QM(�3�cJ5aIxDE3MC9=?+�KC4R,�.Dh26a6�7�/�P�,a+a-a~�.a0a/ay9!�2a1a"�#�E4S?<E3a8@$�%�:;&�y14a'�QM(�)�cJ5a*�DE3MC9=?+�KC4R,�.Dh26a-�.�/�CxDx{`l�|`m�n�}`)�*�Exq�;1+�s�!a;I"at�$4#au�$av�-�%a,�'a(a&ay�SI*a)a/�{�|�Fxj�k�{`l�|`m�n�}`o�p�q�;1r�s�!a;I"at�$4#au�$av�w�%ax�'a(a&ay�SI*a)az�{�|�}�K�x�~My�6x7xz�8xx`Q�=xS�|�}�9x~�W�:xy`;x!�"�e`<x#�>xz`?x@x$�%�b�c�D4d�e�Ax&�(�'�%<BxK�L�~MM�N�O�P�x`Q�R�S�T�U�V�W�X�y`Y�Z�[�e`\�]�z`^�_�`�a�b�c�D4d�e�f�g�h�%<i�r�p`s�.x/x0x1xt�>�u�q�l`2xo`j8M1q`v�p?n`\N3xt`$tC�D�E�r`u`4x5xH�g`s`w�J�<:v`w`7�p`8�9�:�;�<�=�>�?�l`@�o`j8M1q`A�p?n`\NB�t`$tC�D�E�r`u`F�G�H�g`s`I�J�<:v`w`"�m�e5$�f`}M!x0N"x'�k�#x$xvBn�h`&x'x-�(x)x*x1�+x,x-xo�j`VNW6|HJGp�k`m`"�#�e5$�f`}M%�0N&�'�(�)�vB*�h`+�,�-�.�/�0�1�2�3�4�5�j`VNW6|HJG6�k`m`a`Q2f�i�]`yw9;g�l�AD_`zwn�o�{w|wr�d`n<h�}wb`u�i�~w>7IHc`~`x�y�z�i`j�l�}�~�=8!�a`Q2h�i�]`j�9;k�l�AD_`m�n�o�p�q�r�d`n<s�t�b`u�v�w�>7IHc`~`x�y�z�i`{�|�}�~�=8!�M�X�O�<8Y�Q�(NL6Z�&2R�S�T�[�swj6V�\�]�^�twuwvw_�ww`�a4_�xwa�hN^`a�b�c�``d�f�e�M�N�O�<8P�Q�(NL6&2R�S�T�U�j6V�W�X�Y�Z�[�\�]�^�a4_�`�a�hN^`b�c�d�``e�f�g�8�v9b;9�R`S`pwO�<�U`=�>�?�@�A�C=qwC�W`D�V`Q�R�T�U�X`V�M3Z`W�Y`K�\`[`rw8�v9b;9�R`S`:�;�<�U`=�>�?�@�A�C=B�C�W`D�V`E�F�G�H�X`I�M3Z`J�Y`K�\`[`L�"�#�$�E�I`&�'�F�)�K`H`G�H�TLJ`L`,�DN-�.�P`mwnwO`vC-GK�%8N`L�3�M�M`4�1M2MJ�5�6�N�Q`n1"�#�$�%�I`&�'�(�)�K`H`*�+�TLJ`L`,�DN-�.�P`/�0�O`vC-G1�%8N`2�3�M`4�1M2M5�6�7�Q`n1jw>�86=`?`>`s�t�@�@`Q8A`v�w�i6x�@A}9y�C`D`B`z�m<HF96C�|�F`,CE`D�kw5ObG!�r�86=`?`>`s�t�u�@`Q8A`v�w�i6x�@A}9y�C`D`B`z�m<HF96{�|�F`,CE`}�~�5ObG!�T:5`4`f�6`g�gw8�7`j�8`hw>59`:`l�$8:�;�HH<�=�<`p�u>;`iwT:5`4`f�6`g�h�i�7`j�8`k�>59`:`l�$8m�n�HHo�<`p�u>;`q�.`M�/�O�P�/`RJGH0`WGQ�R�S�-D0�dwew1�1`g2W�m5X�FLY�6LZ�424O2�RK\�*J]�4�5�`�7@2`a�6�CFc�d�#83`7�.`M�N�O�P�/`RJGH0`WGQ�R�S�-DT�U�V�1`g2W�m5X�FLY�6LZ�424O[�RK\�*J]�^�_�`�7@2`a�b�CFc�d�#83`e�bwzG'�@�A�#`$`B�cwC�D�%`E�F�G�&`^D*�(`'`I�)`*`+�_<cI,�-�lL+`,`VA$<-`>�zG?�@�A�#`$`B�C�D�%`E�F�G�&`^DH�(`'`I�)`*`J�_<cIK�L�lL+`,`VA$<-`2�^w3G`wuEw_#�6�y_UNv_$�x_m18�s_%�:�&�[Sz_gA8;|_{_$?YR}_<�!`n_~_aw"`2�3�3G4�uEw_5�6�y_UNv_7�x_m18�s_9�:�;�[Sz_gA8;|_{_$?YR}_<�!`n_~_=�"`y�o_[w\wg_'7&�m_]wPMp_x�&t(�z�O={�|�q_r_}�~�-�.G.�!�t__wu_1�#�o_$�%�g_'7&�m_'�PMp_&t(�)�O=*�+�q_r_,�-�.G.�/�t_0�u_1�r�s�RwSw{Nt�w�j_y@s�TwVwu�f_k_z�l1{�Wwv�Xwi_aGe_h_H>YwQHl_Q<"�z@r�s�t�u�{Nv�w�j_y@x�y�f_k_z�l1{�|�}�~�i_aGe_h_H>!�QHl_Q<"�z@j�k�d�l�m�n�a_g�o�Lwk1d_2Jc_NwOw5LG>Mwm�Pwq�Qwr�3Aq�F>b�c�d�e�f�a_g�h�i�k1d_2Jc_j�k�5LG>l�m�n�o�p�3Aq�F>uNf�^_(1g�h�Iw\�]�Jw`_i�__]_Kwe�X_#Ka�b_uNX�^_(1Y�Z�[�\�]�^�`__�__]_`�X_#Ka�b_\�Ew]�'Of?j1V_L�^�N�_�P�U_Q�b�FwGwY_:C\_W_T�c�[_V�HwZ_@EY0`�I�J�K�'Of?j1V_L�M�N�O�P�U_Q�R�S�Y_:C\_W_T�U�[_V�W�Z_@EY0.�Q�8�R�9�:�?wS�u^BwS_U�>�gF@wAwT_CwV�W�P2X�Y�tE%3DwZ�d5^<R:[�7�8�9�:�;�<�u^A�S_=�>�gF?�@�T_B�C�P2D�E�tE%3F�G�d5^<R:H�I�G_<w=wJ�C_K�D_.�H_F_NI/�N_K_J_M_TFO_0�L�uCmB>w%@2�P_R_3�4�N�O�P�Q_*�G_+�,�-�C_D_.�H_F_NI/�N_K_J_M_TFO_0�1�uCmBM�%@2�P_R_3�4�5�6�Q_c7yB2_;G{�9_7wB�C�8w>_<_?_D�B_E�;_j9(G9^#�F�tM=_A_uB:w@_+_;wio9wE_H�)�I_c7yB2_;G{�9_|�}�~�>_<_?_!�B_"�;_j9(G9^#�$�tM=_A_uB%�@_+_&�io'�E_(�)�I_(_'_-_c�!@$_d�/wf�0w1w0_:�1_j�k�2w;�B48�n�=�3w6_5_7_>�r�4wt�:_u�?�w�CE4_A�5w8_6w<�(_'_-_c�!@$_d�e�f�g�h�0_i�1_j�k�l�m�B4n�o�p�6_5_7_q�r�s�t�:_u�v�w�CE4_x�y�8_z�s^C4T�)w3�W�i74�/_*w5�*_x@[�+wc36�,w-wa=3_7�`�,_,D)_YDL_&_%_._9�.ws^C4T�U�V�W�i7X�/_Y�Z�*_x@[�\�c3]�^�a=3__�`�,_,D)_YDL_&_%_._a�b�y5:IA�?<B�w9,�-�E�3O#wt^"_i1fAF�.�$wI�yGA4zN/�J�K�&w!LRDS�'wN�{^}^(w(�0�2AQ�1�!_y^y5:IA�?<B�w9C�D�E�3Ot^"_i1fAF�G�H�I�yGA4zNJ�K�L�!LRDS�M�N�{^}^O�P�2AQ�R�!_y^2�~vq^%�k^GL!w6�f^&�"<~^8�"w:�j3h^m^n^'�lBZB)�v^<�=�|^z^)E#_w^*�+�@�x^`^2�3�q^4�k^GL5�6�f^7�"<~^8�9�:�j3h^m^n^lBZB;�v^<�=�|^z^)E#_w^>�?�@�x^`^~Kc^.H'�o^;8!�`=e^)�/NB9r^*�n0p^"�d^|v,�-�j^}vl^/�#�OMg^.E0�i^$�~Kc^.H'�o^;8(�`=e^)�/NB9r^*�n0p^+�d^,�-�j^.�l^/�OMg^.E0�i^1�\^yvr�t�u�+Lv�w�Z^^^x�y�x�z�{�P8|�E>9Czv}�{vT^!�}�/M#�W^P^rES^$�Y^%�&�QO><\^q�r�s�t�+Lu�Z^^^v�w�x�y�z�P8{�E>9C|�}�~�T^!�"�/M#�W^P^rES^$�Y^%�&�QO><g�h�6@i3Q:D>=^B=L7<^]�R^m=:8a^n�[^t5OEo�V^_^/021p�92X^,BO^Q^A9r�xvm�b^n�]^o�s�U^g�h�6@i3Q:D>=^B=L7<^R^m=:8a^i�[^t5OEj�V^_^/021k�92X^,BO^Q^A9l�m�b^n�]^o�p�U^dMd�qvH^B^?^f�W�TNE^g�h�i�J=G^L^rvqEJ^svtvuvD^j�^�8C_�K^`�@^F^k�M^|0C^N^b�c�<?L�_=d�%Jl�.:K�;^I^:EvvdMU�H^B^?^V�W�TNE^X�Y�J=G^L^Z�qEJ^[�\�D^]�^�8C_�K^`�@^F^a�M^|0C^N^b�c�<?L�_=d�%Je�.:K�;^I^:Ef�V�W�jv:^kvC>lvX�0MY�7^Z�I�2^mv8^K�L�[�^NsEBFnva�ovb�63U1c�>^Q�A^R�CNS�pvF�:^G�C>0M7^H�I�2^J�8^K�L�M�^NsEBFN�O�63U1P�>^Q�A^R�CNS�T�.Nt>u@=�gv6^4^R�MIS�?�T�@�1^3^hv:1B�@92O=3bIC�U�aM$3;?5^E�.Nt>u@=�6^4^MI>�?�@�1^3^A�:1B�@92O=3bIC�D�aM$3;?5^E�J�av,�K�NM0^bv/�0�/^1�v@,^2�lM6F&^L�EDM�N�5�L1?9)^cvP�dv'=.^e�-^(^+^evh3Q�*^IGfv+�,�-�NM0^.�/�0�/^1�v@,^2�lM6F&^ED3�4�5�L1?9)^7�8�9�'=.^-^(^+^:�h3;�*^IG<�76@�u]z][vt@qGgHx�y�A�{�|�w]\v!KC�y]$^D�"^E�{]]v"KHGc5%E$�mCF�%^^vG�H�_v#^YBv])�K1*�Zv76v�u]z]w�t@qGgHx�y�z�{�|�w]}�!K~�y]$^!�"^"�{]#�"KHGc5%E$�mC%�%^&�'�(�#^YBv])�K1*�n]k]`M9�VvWvk�@D:�YFl]t]s]#7<�=�-2>�Xv;:m]o]Yvr�WKtBSvwK?�|]s�}]t�O2u�(J}L!^#<B>x]~]h1n]k]`Mi�j�k�@Dl�YFl]t]s]#7m�n�-2o�p�;:m]o]q�r�WKtBwK|]s�}]t�O2u�(J}L!^#<B>x]~]h1uDA=a5X�Y�6�FH[�.<\�]�h]@4Qvx17�RvrFg]>9SCi]O�q]j]a�8�c�ABb5r]TvUvf�g�h7h�%5p]uDA=a5X�Y�Z�FH[�.<\�]�h]@4^�x1_�`�rFg]>9SCi]6�q]j]a�b�c�ABb5r]d�e�f�g�h7h�%5p].�D�Nva]F�/�G�0�a;Ov1LJ�b]c]$5K�d]L�f]e]M�N�O�P�Q�Pve?1�2�9IJ13�V�EH5�C�D�E�a]F�G�H�a;I�1LJ�b]c]$5K�d]L�f]e]M�N�O�P�Q�R�e?S�T�9IJ1U�V�EHW�LT4�5�#5X]&�'�(�Y]7�lJhKJvGFZ]fHKvLv{H)�SL[]:�;�*�+�]]\],�_]-�^]@�A�MvLT4�5�#5X]6�Y]7�lJhKGFZ]fH8�{H9�SL[]:�;�<�=�]]\]>�_]?�^]@�A�B�H]~�FvJ]I]#�XK^=l<D;K]M]#?$�L]!�N]&�'�(�)�O]*�GvP]Q],�Hv"�R]/�T]S]U]%2JCV]0�1�&;L3W]$�%�BEH]"�J]I]#�XK^=l<D;K]M]#?$�L]%�N]&�'�(�)�O]*�+�P]Q],�-�.�R]/�T]S]U]%2JCV]0�1�&;L3W]2�3�BE=]@v<]>]y�N2s�7C?]t�?4A]Avz�@]B]w�C]BvD]_;5@!:CvpIDvbJDOz�{�{�u;|�P:rN|�EvE]F]}�`;~�!�G]=]q�<]>]r�N2s�7C?]t�?4A]u�v�@]B]w�C]x�D]_;5@!:pIy�bJDOz�{�u;|�P:rN}�E]F]`;~�!�G]]�^�sM0]_�`�a�^\q�r�s�t�3]4]v�<v51=v6]g7!<U6h�$2i�j�>vx�_M?vn�8]7]:]=5o�V6>4p�]�^�sM0]_�`�a�^\b�c�d�3]4]e�f�51g�6]g7!<U6h�$2i�j�k�l�_Mm�n�8]7]:]=5o�V6>4p�j\%]$]d�M�L�N�f�*]&Oe�Q�R�-]{6g�h�)]+]J�8v9v'H.]k�X�l�m�n�2]/][�o�j\%]$]K�M�L�N�O�*]&OP�Q�R�-]{6S�T�)]+]J�U�V�'H.]W�X�Y�Z�2]/][�\�IC7�[�|\9�:�3v\�z\i8y\^�4v!]>�X[5v6v_�{\`�}\~\7v,]b�(]m[D�E�F�']G�&]#]c�I�J�IC7�8�|\9�:�;�<�z\i8y\=�!]>�X[?�@�A�{\}\~\B�,]C�(]m[D�E�F�']G�&]#]H�I�J�m\,vS�r\v\T�)�66V�-v,�W�.�.vL5t\/v!5KFs\X�u\2�3�0v4�o\1vq\U�Z�`3m\&�'�r\v\(�)�66*�+�,�-�.�/�L5t\0�!5KFs\1�u\2�3�I�4�o\5�q\6�`3r�s�[\t�b\h\uHn\'vK�i\l\f\(vtC8IL�\\M�d\@>z�OLx\k\{�|�"8#2_3S\A�O�P�Q�A>p\"�w\y<r3*v.C+vR�r�s�[\t�b\h\uHn\u�v�i\l\f\w�tC8Ix�\\y�d\@>z�OLx\k\{�|�"8#2_3S\}�~�!�A>p\"�w\y<r3#�.C$�%�<�I\Q\e�"tf�N\=9HDdAL\}uG\=�J\>�i�MMjKO\Y\"vD�k�a\Z\#v$vg\e\E�F�n�`\G�I�%v&v_\PDeAJ�]\I\Q\e�"tf�N\=9HDdAL\G\g�J\h�i�MMjKO\Y\j�k�a\Z\g\e\l�m�n�`\o�p�_\PDeAq�]\yuC\53g:V�]1T\3�1OW\5�6�:?V\U\Z�{u7�R\]�^�|uF\`�8�c\E\X\9�b�:�P\;�K\H\U�C\53g:V�]1T\W�1OW\X�Y�:?V\U\Z�[�\�R\]�^�_�F\`�c\E\X\a�b�c�P\d�K\H\tuC�-�quLME�vI8\JBuu>\?AG�5\B\A\oF@\jFvuwuJ�K�xu.�D\7\/�H6:\]=O�P�0�`G<\K64\6\3\1�S�0OZ39\2�B�C�D�LME�vI8\JBF�>\?AG�5\B\A\oF@\jFH�I�J�K�L�M�D\7\N�H6:\]=O�P�Q�`G<\K64\6\3\R�S�0OZ39\T�POv[&�&\X05�'�x[6�pu:L}["?GDs[8�9�%\:�;�<�z?/\q3!81\z[0\)\{[-\.\?\=�>�NFsu$\@�;\+�=\XDPOv[&\X05�x[6�7�:L}["?GDs[8�9�%\:�;�<�z?/\q3!81\z[0\)\{[-\.\?\=�>�NF?�$\@�;\A�=\XDz�~4{�2\iuILw[}4|�~[}�ju"�@K#�!\#\~�'\y[!�*C&�'�oE+\|[(\"�#�"\ku*�+�$�lu9?,\munu3@0�1�%�*\=4v�ou4�~4{�2\|�ILw[}4}�~[~�!�"�@K#�!\#\$�'\y[%�*C&�'�oE+\|[(\(�"\)�*�+�,�-�9?,\.�/�3@0�1�*\=42�3�4�BNj�l[l�_Gm�n�t[g[k�40i[l�<9n�o�p�k[q�j[f[q[s�?>fugumTh8|Mv�r�s�h[x�tD#3-:hu`[t�p[a3n[r[u�nEBNk�l[l�_Gm�n�t[g[40i[o�<9p�q�k[r�j[f[q[s�?>t�u�mTh8|Mv�w�h[x�tD#3-:y�`[p[a3n[r[z�nE\[e7K7mE_�`�Z[F0a�Z�b�][_[M6,7^u<4K5c�d�^�b[buy:qK7;c[0If�g�b�c�d�cuo[du32d[g�h�i�i�u[e[\[e7K7mEX�Y�Z[F0Z�[�][_[M6,7I�<4K5\�]�^�b[_�y:qK7;c[0I`�a�b�c�d�e�o[f�32d[g�h�i�j�u[e[]uNDJFI1K�r@J�4@*7X�K�_uY[Y�;9|3O�N�[[t3a[`uZ�R�S�au^[\�s@K3,:]�J3O:^�W�F�NDJFI1r@J�4@*7K�L�Y[M�;9|3O�N�[[t3a[P�Q�R�S�T�^[U�s@K3,:V�J3O:W�ZuHB:�N�AJ<�V[O�>�"IU[pG?K;4P�w@@=[uSDQ�.MR�B�Q[P[C�R[O[D�W[M[K[S[I[S�lCF�xLF<t:G�T�Yu::\uoKA39�HB:�;�AJ<�V[=�>�"IU[pG?K;4?�w@@=@�SDA�.MB�Q[P[C�R[O[D�W[M[K[S[I[E�lCF�xLF<t:G�H�8�::oKA3Tu(�G[zH>[D[C[)�*�O@+�H�UumK-�SNVu/�gKWuL2^;HOF[u?E[@[O8L�2�M�L[J[4�M2H[N[T[Xu6�7�'�(�G[zH>[D[C[)�*�O@+�,�mK-�SN.�/�gK0�L2^;HOF[u?E[@[O81�2�3�L[J[4�M2H[N[T[5�6�7�5[x�8[QuRuy?>�?�{MI0`:<B]<@�}�s>;[NEA�9[+B:[r>]L<[=[hMPuB["�:9#�UG?[lE^ZbZE�O5F�GGSuA[>>DH5[x�8[y�z�y?{�{MI0`:<B]<|�}�s>;[NE~�9[+B:[r>]L<[=[hM!�B["�:9#�UG?[lE^ZbZ$�O5%�GG&�A[>>DHG:7�rP8�o�n7-M~J~Ip�,[9�Mus:?D-[/O;�>Ks�+D.[|4t�u�/[0[ZL$LvK\K%;2[k<OuQK4[7[6[y4`5w�3[G:rPn�o�n7-M~J~Ip�,[q�s:?D-[/Or�>Ks�+D.[|4t�u�/[0[ZL$LvK\K%;2[k<v�QK4[7[6[y4`5w�3[_�zZ`�a�![Gu^FHu|Zc�d�e�f�#[l=$[JuKMxGh�%['[Ku([j�5�l�)[J6H199*[+[q=bALu7uXR>A=AXB_�zZ`�a�![^Fb�|Zc�d�e�f�#[l=$[g�KMxGh�%['[i�([j�k�l�)[J6H199*[+[q=bAm�?�XR>A=AXB*�G6sZwZK2tZvZM�N�BuuZ+�k=,�HCE0xZ-�S�T�U�yZV�Du*DX�qNC;/�kJ0�Eu=K1�"[{ZFu~Z}Z3�K�G6sZwZK2tZvZM�N�O�uZP�k=Q�HCE0xZR�S�T�U�yZV�W�*DX�qNC;Y�kJZ�[�=K\�"[{Z]�~Z}Z^�1�jZ~;89hZy�3�8uiZ4�8?9u{�gZz�/;~�9�;u<u!�<�lZkZpZ=�=uqZ"�mZ>u"3nZoZUH%�&�'�(�aIJ7rZ?u2@E�=>@uAuI�RC)�L�C�F�1�jZ~;89hZ2�3�iZ4�8?5�7�gZ6�/;8�9�:�;�<�lZkZpZ=�>�qZmZC�"3nZoZUH@�A�B�aIJ7rZD�2@E�=>G�H�I�RCJ�L�C�F�,u79`Zu�+::>v�-u_Z;>y�@L*:z�{�W0N@.u}�fZ~�/u1@G1w�1u$�2uU=&�fKr:'�x�3u*�<>+�'@4u5u6ueZcZdZ0�/�0uB�kC&[u�79`Zv�+::>w�x�_Z;>y�@L*:z�{�W0N@|�}�fZ~�!�1@G1"�#�$�%�U=&�fKr:'�(�)�*�<>+�'@,�-�.�eZcZdZ0�/�B�kC&[UZn�SZVZ9NTZf�o�{@WZh�2Bi�XZp�k�z4l�ZZYZm�[Z\Z{4|F6Cl5];aA\=00n�]Zr�p�q�s�"2aZt�s�t�UZe�SZVZ9NTZf�g�{@WZh�2Bi�XZj�k�z4l�ZZYZm�[Z\Z{4|F6Cl5];aA\=00n�]Zo�p�q�r�"2aZs�t�f�LZMZg�h�8J]UF@i�LIX:eHCHY�Z�ME[�ANOZP<*uPZ]�60^�T6M@_�`IQZB;GC`�[;7?j�b�c�k�RZl�}Jw1\;m�V�LZMZW�8J]UF@X�LIX:eHCHY�Z�ME[�ANOZP<\�PZ]�60^�T6M@_�`IQZB;GC`�[;7?a�b�c�RZ}Jw1\;d�J�b�N8K�CZL�FZA�RIM�_5N�c�EZDZTGGZ56IZHZP�Q�:46;XF)ud�I7t?JZ0@(E_IKZe�U�J�N8K�CZL�FZA�RIM�_5N�O�EZDZTGGZ56IZHZP�Q�:46;XFR�S�I7t?JZ0@(E_IKZT�U�5Z5�Z�9Z7�8�9�\�;�]�^�7Z>�?�8ZpY`�A�&u;Z:ZC�'uxY<Z0ZE�Y;F�a�=Z>Z@Z?ZAZ~2G�69H�I�|J/@5Z5�6�9Z7�8�9�:�;�<�=�7Z>�?�8ZpY@�A�B�;Z:ZC�D�xY<Z0ZE�Y;F�=Z>Z@Z?ZAZ~2G�69H�I�|J/@JM'Z!u#Z$Z"�"uR�S�`A|t#u(�"Z?YT�U�&Z!Z+Z,Z'E.ZW�X�$;)Z-�.�<5/�/Z0�(Z3Z2Z1�1Z$u4Z%u6Zq>Y�JM'Z!�#Z$Z"�#�$�%�`A&�'�(�"Z?Y)�*�&Z!Z+Z,Z'E.Z+�,�$;)Z-�.�<5/�/Z0�(Z3Z2Z1�1Z2�4Z3�6Zq>4�b7l�N�}Yn�o�O�5;zYyYq�r�2Gs�P�5FQ�v�w�1E{Yx�y�|YoIz�EG#;q@PK{�I3%Z~Y|�}t~tb7l�m�}Yn�o�p�5;zYyYq�r�2Gs�t�5Fu�v�w�1E{Yx�y�|YoIz�EG#;q@PK{�I3%Z~Y|�}�~�]@Y�wYZ�yt\�]�^�&EI�J�a�K�c�zte�f�tY`K{tuYL�i�vYNLxt"@j�M�]@Y�wYZ�[�\�]�^�&E_�`�a�b�c�d�e�f�tY`Kg�uYh�i�vYNL"@j�k�lYD�H�;BsYutJ�mYvtjYqYL�SYE�N�wtP�F�nYrYG�S�BHkEH�U�kYV�oYH7W�q:X�lYG�H�;BsYI�J�mYK�jYqYL�SYM�N�O�P�Q�nYrYR�S�BHkET�U�kYV�oYH7W�q:X�cY5�7BiY6�dY7�fY8�AIsD9�gY:�=�>�,MHM94?�@�.0eYrtbY@�A�B�stx4C�C�g1tthY<�E�F�IMcY5�7BiY6�dY7�fY8�AIsD9�gY:�;�<�,MHM94=�>�.0eY?�bY@�A�x4B�C�g1D�hYE�F�IMWY%�]A7�'�x<\Y(�8>VY[Y)�SG:�+�UY!78�-�]3.�]Y+NN:5CZY/�\@0�59d?f1<AXYE51�2�3�G7OD^Y_A;�aYWY%�]A&�'�x<\Y(�8>VY[Y)�SG*�+�UY!7,�-�]3.�]Y+NN:5CZY/�\@0�59d?f1<AXYE51�2�3�G7OD^Y_A4�aY/�l�ot0�o�*Bp�q�+;RY1�TYPYs�t�u�aJ=Dv�3�w�\Apty�{JN<`Y_Y6�{�x?|�~7}�~�YY9>!�hF1Gqt#�$�k�l�m�n�o�*Bp�q�+;RYr�TYPYs�t�u�aJ=Dv�w�\Ax�y�{JN<`Y_Yz�{�x?|�~7}�~�YY9>!�hF1G"�#�$�};LY&�\�X;MYD0lt^�HY'�(�)Da�b�mts546KY'0d�e�C:f�6?+�,�h�ntrD-�.�THQY^A};LY[�\�X;MYD0]�^�HY_�`�)Da�b�c�s546KY'0d�e�C:f�6?g�h�i�rDj�THQY^ADYit4C>YEY@YGYCYBYoGR�<Y}2:Yq5sB6Y#�jt9Y49[@U�7>AYRGr5H3V�g3!?IYNYJYW�}7X�OY";i9kt%�&==YDYQ�4C>YEY@YGYCYBYoGR�<Y}2:Yq5sB6YS�T�9Y49[@U�7>AYRGr5H3V�g3!?IYNYJYW�}7X�OY";i9Y�Z�&==Y;50Y7Y6>ht1YDGE�F�G�H�^M3Y4Y8YjE5Y39^@!�FY4HrB"�J�dH-ZzJK�qDL�M�uKN�;Y!2jCO�P�;50Y7Y6>1YDGE�F�G�H�^M3Y4Y8YjE5Y39^@FY4HrBI�J�dH-ZzJK�qDL�M�uKN�;Y!2jCO�P�j=(Y3�dt5�v�p@=nbHj<w�M:)Y8�x�y�GB;�'JetqBft,Y>�*Y-Yz�+Y{�.Y}�1Jgt70~�^IcHC�|�/YD�2Y5>j=(Y3�4�5�6�p@=nbHj<7�M:)Y8�9�:�GB;�'J<�qB=�,Y>�*Y-Y+Y?�.Y@�1JA�70B�^IcHC�/YD�2Y5>xX$�%�&�'�yXzXjJ|X{X?=.@f2|2(�}Xs�?0L@~X*�Cl!Ya7+�"Ybtt�o@.�u�#Y0�$Y:5%Y&Y'YWBM81�aL2�ct<KxX$�%�&�'�yXzXjJ|X{X?=.@f2|2(�}X)�?0L@~X*�Cl!Ya7+�"Y,�-�o@.�/�#Y0�$Y:5%Y&Y'YWBM81�aL2�<Kp�q�r�iXjX):hXfXeXlXdXnXs�t�{2n�v�o�x�p�z�{�pX~�oX|�}�!�"�#�(DsXq�qXgX|7rXvXuXwXtXp�q�r�iXjX):hXfXeXlXdXnXs�t�{2u�v�w�x�y�z�{�pX~�oX|�}�!�"�#�(DsXqXgX|7rXvXuXwXtX[�\�+M]�^�\X`X_�]t~AyNaXf�g�^X[Xh�i�ZX_Xe�f�g�h�0Jj�4Fk�F7k�bX]Xl�cX{712m�`tkX_t84[�\�+M]�^�\X`X_�`�~AyNaXa�b�^X[Xc�d�ZX_Xe�f�g�h�0Ji�4Fj�F7k�bX]Xl�cX{712m�n�kXo�84a�JXKXP�b�@X|;R�DXVB292X5?XXiJNXOXPXWXS�VXc�}K74TXE743QXU�8NSXV0UXV�LXRXYXD7MXW�X�d�]MZ�O�JXKXP�Q�@X|;R�DXVB292X5?XXiJNXOXPXWXS�VXT�}K74TXE743QXU�8NSXV0UXV�LXRXYXD7MXW�X�Y�]MZ�7X%=8�:X4X9�|L{L:�;�>X?XU0Z�=�[�\�@�3XA�B�]�r6&0Xt^�64@�;XF�CXBXG�YtGXZtJ�HXK�L�[tN�_�FXIXAXEX7X%=8�:X4X9�|L{L:�;�>X?XU0<�=�>�?�@�3XA�B�C�r6&0D�E�64@�;XF�CXBXG�H�GXI�J�HXK�L�M�N�FXIXAXEX#�$�p>/XWFT�&�'�St)�*�GO+XTtUt1XU�{9V�K@Vt0�T0*X(X1�ZA2�|W4;W�FB=XX�[A8XY�5X6XWtf<9X<X6�7�#�$�p>/XWF%�&�'�(�)�*�GO+X+�,�1X-�{9.�K@/�0�T0*X(X1�ZA2�|W4;FB=X3�[A8X4�5X6X5�f<9X<X6�7�zWm�}W!X?�n�o�=<M�'XpD{Wq�r�%Xs�y2N�#X$Xu�~W"XQtRtg8*Mx�54y�z�Y1&XO�:G-0Q�R�aH\W,X0XeL~�)X!�iE.XS�zWm�}W!X?�n�o�=<p�'XpD{Wq�r�%Xs�y2t�#X$Xu�~W"Xv�w�g8*Mx�54y�z�Y1&X{�:G-0|�}�aH\W,X0XeL~�)X!�iE.X"�^�lWvWtWqWOt`�a�pWxNK�rW26c�19d�z=e�f�yWkWg�oW_Wh�z2sWuWQCi�(:82mWxWwW36)Bf3j�C7nWk�L�^�lWvWtWqW_�`�a�pWxNb�rW26c�19d�z=e�f�yWkWg�oW_Wh�z2sWuWQCi�(:82mWxWwW36)Bf3j�C7nWk�l�Q�R�JtcWiWaW\ET�KtfW]IG�Lt`WX�eWgNW;Y�UB^WH�I�^5hW-@e1bWx2gW[�16dWMtNtjWQ�R�S�cWiWaW\ET�U�fW]IV�W�`WX�eWgNW;Y�UB^WZ�^5hW-@e1bWx2gW[�16dW\�]�jW4?:�,I<�:�Ft=�w4&G=�>�>�?�@�VWV;:K;K~1[WGtiCHtA�XWE�ItG�w2H�I�B�C�-XZWL�D�0GN�YWO�WWE�z9]W4?8�,I9�:�;�<�w4&G=�>�?�@�A�VWV;:K;K~1[WB�iCC�D�XWE�F�G�w2H�I�J�K�-XZWL�M�0GN�YWO�WWP�z9]W}1,@IWHWB7TBNWLW@tKW'Ne8*�6�y=MWLE>=,�@FQWPWAt.�OWRWf87�8�BtSW|I[=1�3�TWyHCt5�6�AF'DDtEt9�0EUW+5}1,@IWHWB7TBNWLW)�KW'Ne8*�+�y=MWLE>=,�@FQWPW-�.�OWRWf8/�2�0�SW|I[=1�3�TWyH4�5�6�AF'D>�7�0EUW+59t;Ws�:t2�<W06=Wv�>Ww�@WvE;tAWBW<tCWz�4W3W{�DWA73�=t'I>tL:7I&DKIEW!�4>F14�FW#�$�GW%�rL&�`H?t5�JWr�;Ws�t�u�<W06=Wv�>Ww�@WvEx�AWBWy�CWz�4W3W{�DWA7|�}�'I~�L:7I&DKIEW!�4>F1"�FW#�$�GW%�rL&�`H'�(�JW1t[J2t1W.O]�3t-�2W@J5W!P1P.�0<uF6W]5$Dz07W&J09a�PC/�4t1�oDd�e�5tg�oL98L8h�8Wi�j�9Wk�?Wl�e<6t%D7t/6:Wo�+I8tFCq�[J\�1W.O]�^�_�2W@J5W!P1P`�0<uF6W]5$Dz07W&J09a�PCb�c�oDd�e�f�g�oL98L8h�8Wi�j�9Wk�?Wl�e<m�%Dn�/6:Wo�+Ip�FCq�zV{VQG(�|VwN-O/tQ�S�~V}VT�)�G3V�W�!W*�$W%WX�#WY�@I3>'W&W"WZ�(W)W[�*W-W+W,W.Wd1nD/W0tz7v26G,�0W{FzV{VQGP�|VwN-OR�Q�S�~V}VT�U�G3V�W�!W$W%WX�#WY�@I3>'W&W"WZ�(W)W[�*W-W+W,W.Wd1nD/Wz7v26G0W{FB�#D-91>_H2>C�D�x=lDyJ9E.9\IyVE�F�#�YEB:H�$�K8%�mDK�L�C0n=/9GM&�M�-t'�B�#D-91>_H2>C�D�x=lDyJ9E.9\IyVE�F�G�YEB:H�I�K8J�mDK�L�C0n=/9GMM�N�O�lVkVjV}IsVx�2�ZKmV3�5�oVkKz�nV+t8�9�,tpV(HqV>JrV;�<�|�}�~�!�A�34?J/GtVuV|~,944vV88DM)Mv4xVlVkVjV}IsV4�2�ZKmV3�5�oVkK6�nV7�8�9�:�pV(HqV>JrV;�<�=�>�?�@�A�34?J/GtVuV,944vV88DM)Mv4xVp�T;[IAH%�cVu4&�fVr�)ts�!D*teVdVgVkDu�,�c?.�U;J@v�SB"5/�"D0�hViVo>9Kw�$�T;[IAH%�cVu4&�fV'�(�)�!D*�eVdVgVkD+�,�c?.�U;J@-�SB"5/�"D0�hViVo>9K1�v�w�ZV}O`4[Vz�y�h�]V\V^Vi�j�|�_Vn@#=k�d=(tcAm�)98:*9p5n�`V9:J8aV&LCGbV+9"�#�,4'CR6v�w�ZVx�`4[Vz�y�]V\V^V{�|�_Vn@#=}�d=cA~�)98:*9p5!�`V9:J8aV&LCGbV+9"�#�,4'CR6xOQVe�PVOV]�g�hE:VWV_�i�`�k�a�b�m�SVn�yORVzO{Oq�TVUVc�d�e�XV|Og�fNYVVVd�QVe�PVOVf�g�hE:VWVh�i�j�k�l�m�SVn�o�RVp�q�TVUVr�t�s�XVt�u�fNYVVVU�Q�sOtOS�vOKVHVJVrMU�IVuOT�V�?VX�Y�W�[�\�s?X�LVwO7:Z�MVNV`�a�b�c�P�Q�R�S�W�KVHVJVrMU�IV<�T�V�?VX�Y�Z�[�\�s?]�LV^�7:_�MVNV`�a�b�c�B�L�r?<VpOj:M�BVE�CV=V33>VGVFVEVAVO�@VP�DVG�Q�R�qOxJN�S�L�T�N�O�B�C�r?<VD�j:BVE�CV=V33>VGVFVEVAV@VDVG�H�I�J�xJF�K�L�M�N�O�2V4VI�jOkOlO=�5V<�=F.6e26V;V9V>�wJvJ?�@�mO;�gE8VT=7V2V4V9�:�;�=�5V<�=F.6e26V;V9V>�wJvJ?�@�A�;�gE8VT=7V)�<�=�)VeOt4*V-�+V.�fOA�,2B�gOC�D�;Ad4hO-V(LF�RB5�Y36�G�/V1V_4iO.V0V3V)�*�+�)V,�t4*V-�+V.�/�0�,21�2�3�;Ad44�-V(LRB5�Y36�7�/V1V_48�.V0V3VI6{Uo5|U~6OF02S;}U"V!V}6~U8Ew�x�{~y�0B1�KEH<`O2�XAzM3�4�5�$V!�%VVF6�3;#�$�'V(VdO&�9�(�I6{Uo5|U~6OF02S;}U"V!V}6~U8Ew�x�y�0BKEH<z�{�XAzM|�}�~�$V!�%VVF"�3;#�$�'V(V%�&�'�(�uIl@-�M<qU->rUsUS0:BR?i�tU3F.>/>[OuUm@j�0>\Ol�vUwU]O`Ln�xU.�^Oq�F6r�/�"=t�u�v�yUzU\<,?tFT?xH"GuIl@M<qU->rUsUS0:BR?i�tU3F.>/>uUm@j�0>k�l�vUwUm�`Ln�xUo�p�q�F6r�s�"=t�u�v�yUzU\<,?tFT?xH"G$�\�d<cUs4RF)LdUeUYI]�&�^�gU(4w6fU'�`�YOb�c�242?kU!;d�I2jUhUlUiU+GM\3?mUZO@Ne�nU*�pUg�~CoU#@{;+�PBw<[�\�d<cUs4RF)LdUeUYI]�^�gU(4w6fU_�`�a�b�c�242?kU!;d�I2jUhUlUiU+GM\3?mU:�@Ne�nUf�pUg�~CoU#@{;h�PBw<_U|�`U}�pBI�'1i<B0J�WA045<K�(9L�M�XOO�fE!�!=14hCjD8095uJB<R5k@<<(MaUQ�R�"�T�\5U�K:V�W�23c1,>H2X�bUFMY�Z�I=_UG�`UH�pBI�'1i<B0J�WA045<K�(9L�M�N�O�fEP�!=14hCjD8095uJB<R5k@<<(MaUQ�R�S�T�\5U�K:V�W�23c1,>H2X�bUFMY�Z�I=RUUOPUQU;�v�R;SUw�&9TUVOz;8BUUVUZ;'9?�RL(5I8WUX3x�XU9BA�y�YU#VZU[U\U^Uz�WOE�{�RU:�PUQU;�<�R;SU=�&9TU>�z;8BUUVUZ;'9?�RL(5I8WUX3@�XU9BA�B�YU#VZU[U\U^UC�D�E�F�q�/�r�r4IUHUJUs�|/4�5�6�n>}/MU\Du�E1KUt�NU9�OU.�/�0�r4IUHUJU1�3�4�5�6�n>7�MU\D8�E1KU2�NU9�OUG2?Uz/"�#�;<>Uy7$�LUEUBUj�k�l�dCAUm�CUDU)�o�n�p�,�FUGU-�G2?U!�"�#�;<>Uy7$�LUEUBU%�&�'�dCAU(�CUDU)�*�+�,�FUGU-�w/`�l�^Gm�n�o�;U2Ia�x/b�c�d�y/v�e�x�f�g�{�h�}�<U@U=Ui�k�l�^Gm�n�o�;U2Ip�q�r�s�t�u�v�w�x�y�z�{�|�}�<U@U=U~�4U,O[�\�LG]�^�6U_�`�]�':b�9Uc�^�XIs/:U5Ut/u/_�i�v/;L4U,O[�\�LG]�^�6U_�`�a�':b�9Uc�d�XIe�:U5Uf�g�h�i�j�;LL�R0#0M�2UX�Y�P�0UQ�q/Z�<L3U1US�/U1?r/U�.U[�W�ZJX�\�d8Z�7U8U+>L�R0#0M�2UN�O�P�0UQ�R�<L3U1US�/U1?T�U�.UV�W�ZJX�Y�d8Z�7U8U+>9�n/;�(UN�P;=�O;O�90H8o/+@Q0,U-U*Up/P�B�Q�R�81/4S�)UEL1IT�G�H�I�J�(0K�z~y0Q;9�:�;�(U<�P;=�O;>�90H8?�+@Q0,U-U*U@�A�B�C�D�81/4E�)UEL1IF�G�H�I�J�(0K�y0Q;"U!G^HQL%Gk/)�+U*�l/85,�EM-�/L,V#UK�&Um/EB0�8KJE1�L�3�4�'U5�6�eK7�J:M�*>"U!G^HQL%G(�)�+U*�+�85,�EM-�/L,V#U.�&U/�EB0�8KJE1�2�3�4�'U5�6�eK7�J:8�*>r�b1B�q4`FtJwTUAvT@7t�u�[KuTeEyTv�xTE�i/y�F�{T{�zT|�|1|T)>~T%C}�}Tj/3J!�"�w=[EH�I�!U%�&�J�%9r�b1s�q4`FtJwTUAvT@7t�u�[KuTeEyTv�xTw�x�y�z�{T{�zT|�|1|T)>~T%C}�}T~�3J!�"�w=[E#�$�!U%�&�'�%9iT8�9�QJjT:�g/;�F2kTc�d�<�<M03IRH=?BlTkLg�h�4Li�=�nTgBk�7E@BWIoTpT{1l�m�:<qTn�o�p�P0rT@�sTq�iT_�`�QJjTa�b�F2kTc�d�e�<M03IRH=?BlTkLg�h�4Li�j�nTgBk�7E@BWIoTpT{1l�m�:<qTn�o�p�P0rTsTq�IJQ�3�O�YTECR�u2m>4�b/U�[Ta/ZTc/h9X�\T^T]Td/`TZ�UTbTe/[�5�aT_Tf/N;Q?TAcT<@m0dG6�7�[DeTdTfTgThTIJQ�O�YTECR�u2m>S�T�U�[TV�ZTW�h9X�\T^T]TY�`TZ�UTbT[�\�aT_T]�N;Q?TAcT<@m0dG^�[DeTdTfTgThT;�<�-6PT=�>�\/)�*�A�+�,�-�hJ.�F�}AFD/�]/RTH�I�J�K�OK_/0�STXT1�N�/JWTQTTTVTP�&:;�<�-6PT=�>�?�@�A�B�C�D�hJE�F�}AFDG�9�RTH�I�J�K�OKL�STXTM�N�/JWTQTTTVTP�&:=J]N&�t2JT'�/�0�1�:AMTcE2�IEdE9HMDI:3�X/ITY/(�7�v16EKTGTP?8�OT[/N=:�=J]N-�t2JT.�/�0�1�:AMTcE2�IEdE9HMDI:3�4�IT5�6�7�v16EKTGTP?8�OT9�N=:�YK2Fz�}�x7OB|�V/ATDT!�"�DBET#�FT~�%�!�HTiD'�"�.4)�!ta1sJ#�l>HE$�f:NT,�YK2Fz�{�x7OB|�}�ATDT!�"�DBET#�FT$�%�&�HTiD'�(�.4)�!ta1sJ*�l>HE+�f:NT,�1T<T=TN/O/dKs�k>P/?T@T>Tk�BTq�8Gl�v�h0VI~�CTQ/w�p�q�R/x�}>S/T/9<z�]Gp4{�k:|�x�U/1T<T=Tg�h�dKi�k>j�?T@T>Tk�BT8Gl�m�h0VI~�CTn�o�p�q�r�s�}>t�u�9<v�]Gp4k:w�x�y�T�b?U�2T5T?7V�6TW�`�X�Y�m�J/n�o�^�7T_�$9@39Ta�p�c�:Tl�;T8TM/f�T�b?U�2T5T?7V�6TW�`�X�Y�Z�[�\�]�^�7T_�$9@39Ta�b�c�:Td�;T8Te�f�.Td:_�`�Q67Ka�b�,T/TA:#9@�6�3TA�%:B�3CC�d�0TZDE�F�G�e�G/J�f�g�h�H/O�P�i�I/S�4T.Td:<�=�Q67K>�?�,T/TA:#9@�6�3TA�%:B�3CC�D�0TZDE�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�4T{S#�$�`J}S%�!T~SA/"T'�#Tw7(�`1$TZ�&T%T*�+�(T,�ZE-�C/.�[�0�1�)T50_:]�3�4�=75�D/OCE/F/*T+T-T9�:�;�{S#�$�`J}S%�!T~S&�"T'�#Tw7(�`1$T)�&T%T*�+�(T,�ZE-�.�/�0�1�)T50_:2�3�4�=75�6�OC7�8�*T+T-T9�:�;�sSqSoSrSS�tS?/@/m�p�T�uSn�o�vSwSxSEQr�|<M;s�t�s2U�x0v�DCw�x�y�z�V�}�~�yS$:|�O0^?W�X�zSG8q9|SsSqSoSrSj�tSk�l�m�p�q�uSn�o�vSwSxSEQr�|<M;s�t�s2u�x0v�DCw�x�y�z�{�}�~�yS$:|�O0^?!�"�zSG8q9|SfST�U�eSE3K�gSW�L�jSiSM�:/N�O�;/^�hS9GkS_�`�P�</c�=/Q�lSf�R�>/nSmSh�pSi�fST�U�eSE3V�gSW�X�jSiSY�Z�[�\�]�^�hS9GkS_�`�a�b�c�d�e�lSf�g�nSmSh�pSi�E�?�=1@�A�B�F�3/D�9AE�YSF�ZS'tG�z3G�H�J�K�L�aS5/o4N�dS`ScSI�7/8/9/.JS�4/UF8H>�?�=1@�A�B�C�D�9AE�YSF�ZSG�z3H�I�J�K�L�aSM�o4N�dS`ScSO�P�Q�R�.JS�UF8H*�2C>�0/E2,�-�1//�?�1�2�RSTS(>313�WS<�^24�bS@�|>^S6�\S7�]SA�_S9�2/;�C�D�*�2C+�E2,�-�.�/�0�1�2�RSTS(>313�WS^24�bS5�|>^S6�\S7�]S8�_S9�:�;�<�=�v�w�NSLSx�'T4�z�5�./6�0�!�QS"�#�KS$�OS7�%�MS9�L;PS;�(�SSXSVSUS)�v�w�NSLSx�'Ty�z�{�|�}�~�!�QS"�#�KS$�OS%�MS&�L;PS'�(�SSXSVSUS)�=S)/,�GS1A*/IS-�"9?S}C+/k�.�m�n�o�p�CS<S-4n4e3DS@Sq�r�v7JSHSSAJ5,6-/ESt6t�D13�=Sf�g�GS1Ah�ISi�"9?S}Cj�k�l�m�n�o�p�CS<S-4n4e3DS@Sq�r�v7JSHSSAJ5,6s�ESt6t�D1u�1S"�oB6S&>$�X�%�3SZ�dL'/\�<77S8S]�^�_�5S;S(/'�(�2S)�d�ASFS+�BSe�1SV�oB6S&>W�X�Y�3SZ�dL[�\�<77S8S]�^�_�5S;S`�a�b�2Sc�d�ASFSBSe�|�}�41G�6:0?H�~�J�K�$/)SbE*SM�"0N�%/4S#M'>P�:S&/R�9S0SS�!�U�CBE�F�41G�6:0?H�I�J�K�L�)SbE*SM�"0N�O�4S#M'>P�:SQ�R�9S0SS�T�U�CB%0JI"Sv�|R"/wR}RH::�;�<�&S=�w0/S'S(S%>iK>�x�-S,Sy�z�/E{�A�.SB�+SC�#/%0JI"S|R9�wR}RH::�;�<�&S=�w0/S'S(S%>iK>�?�-S,S@�/EA�.SB�+SC�D�rR!�"�tR#�vR|.%�l�p:BOm�kRiRuR'�pRn�}.x.+�o�~.xR#SzRp�.�~R!/0�!S{Rq�r�>S3�i:13s�yR5�t�7�%Sv0$Su�rR!�"�tR#�vR$�%�5�p:BO&�kRiRuR'�pR(�)�*�+�,�xR#SzR-�.�~R/�0�!S{R1�2�>S3�i:134�yR5�6�7�%Sv0$S8�`R$Oh�p�rJq�hDb8p9w.hRs�]Fd�t�lRi�v�j�x�~<y�v<y.k�{�|�oRmR#Lz.jRsRnRqRF8?L{.`R$Oo�p�rJq�hDb8p9r�hRs�]Ft�lRu�v�w�x�~<y�v<z�{�|�oRmR#L}�jRsRnRqRF8?L~�^Rd�I5F3g9H5_D%11F>L!9yMGE~8u.e�f�/7gR~Oc6JKg�e�]Hv.f�fRj�^4aRbRdRk�l�m�n�eR[5a?-JcR_Rc8^Rd�I5F3g9H5_D%11F>L!9yMGE~8e�f�/7gRc6JKg�]Hh�i�fRj�^4aRbRdRk�l�m�n�eR[5a?-JcR_Rc8[�2;TRX�tK5:Z5'MPA?H}<Y�Z�[�G=_�h<u<v=`�@H^�_�WR`�C1QA}8E8g6a�b�[R!C~B+6$>\RZRD2fB8<K;&1b�c�p3f9J;]RW�2;TRX�tK5:Z5'MPA?H}<Y�Z�[�G=\�h<u<v=]�@H^�_�WR`�C1QA}8E8g6a�b�[R!C~B+6$>\RZRD2fB8<K;&1c�p3f9J;]RLRC�qLD�E�F�r.H�MRRNI�|8s.68NRK�W�PROR_?91M�N�^1QRO�RRt.78X�R�SRZ�T�U�n5V�LRC�qLD�E�F�G�H�MRRNI�|8J�68NRK�L�PROR_?91M�N�^1QRO�RRP�78Q�R�SRS�T�U�n5V�?R==Q�i@AR@R#>a8CR>H8�7�DR\H4BnB(6nF1C9�nG:�NKFRj@o.p.=�57T�GRU�?�HR,1u0m4@�(BQ5qMKR72A�V�JRq.B�*6?R==6�i@AR@R#>a8CR>H8�7�DR\H4BnB(6nF1C9�nG:�NKFRj@;�<�=�57GR>�?�HR,1u0m4@�(BQ5qMKR72A�JRB�*6k.hLwF|�qJ2Rl.3RL�M�!�5R7R6R"�#�8R=2LK$�|:9R%�m.YA'�(�">)6:RN�)�*�+�,�[H-�.�/�;R0�<R1�=RO�>R$Ih6e03�4�P�?F{�hLwF|�qJ2R2�3R}�~�!�5R7R6R"�#�8R=2LK$�|:9R%�&�YA'�(�">)6:R3�)�*�+�,�[H-�.�/�;R0�<R1�=R2�>R$Ih6e03�4�5�?Fe�&RVKf�<Dg�&Mb.YJG�d.'Rj�e.I�Upl�0Ff.(R*43Lg.o�!>)RgJ-Rp�*@*RP6q�+R+4r�s�t�u�i.w�.7.Rx�/Ry�K�0R1R[<j.{8^Le�&RVKf�<Dg�&Mh�YJi�'Rj�k�Upl�0Fm�(R*43Ln�o�!>)RgJ-Rp�*@*RP6q�+R+4r�s�t�u�v�w�.7.Rx�/Ry�z�0R1R[<{8^LM�>�D3=�O�`7|Q-NP�Q�xQ}QzQa.yQS�T�U�@�W�ONX�y8C2tNB�Z�C�\�u=XEe9"R#RD�^�eN+O%R_�`�a�z8E�F�$Rd�/3M�N�D3O�`7|Q-NP�Q�xQ}QzQR�yQS�T�U�V�W�ONX�y8C2tNY�Z�[�\�u=XEe9"R#R]�^�eN+O%R_�`�a�z8b�c�$Rd�/3fDmQ>�'B^.o:nQoQ0AlQqQ9�6K_.B�C�d9:�~/pQE�F�`.u7^:mGH�tQrQ;�I�{Ij>{Qd3uQsQOA<�K�L�wQvQfDmQ>�'B?�o:nQoQ0AlQqQ@�6KA�B�C�d9D�pQE�F�G�u7^:mGH�tQrQI�{Ij>{Qd3uQsQOAJ�K�L�wQvQaEZ.5�O?cQ2�,JZ@"4)4dQfQ:76�\.eQ].7�sN7�i=8�=HLJgQ9�xMhQiQ~E:�;�jQ<�)@~:t7kQI;o9=�aE0�1�O?cQ2�,JZ@"4)4dQfQ:73�4�eQ5�6�sN7�i=8�=HLJgQ9�xMhQiQ~E:�;�jQ<�)@~:t7kQI;o9=�~�U.(@YQZ=!�ZQV.|C?N`E"�#�$�%�&�ER'�[Q%tE6W.\Q^KX.*�h=|B^QdF1�_QY.`Q.3,�3�4�aQ'6/�LFz1P=!HbQ~�(@YQZ=!�ZQ|C?N`E"�#�$�%�&�ER'�[Q%tE6(�\Q^K)�*�h=|B^QdF1�_Q+�`Q.3,�-�.�aQ'6/�LFz1P=!HbQCQDQ)�q�bF_1GQ}:*�FQF:s�HQnfIQAKJQKQLQi>,�L<T.'4v�OQ-�MQ=LNQZIPQQQRQ_E.�VQTQUQSQc:WQjLdNy�z�0�XQ|�}�CQDQp�q�bF_1GQ}:r�FQF:s�HQnfIQAKJQKQLQi>t�L<u�'4v�OQw�MQ=LNQZIPQQQRQ_Ex�VQTQUQSQc:WQjLdNy�z�{�XQ|�}�:Qt0e�58;7<={C$6h@w8O.n9<QHLFEg�y;;Qh�=QQ.R.k�^Eu3l�&�>Qm�~Fn�4A@QAQ,Hx8;OBQ&6(�<J6Bq65Et�s7o�:Qt0e�58;7<={C$6h@w8f�n9<QHLFEg�y;;Qh�=Qi�j�k�^Eu3l�>Qm�~Fn�4A@QAQ,Hx8;OBQ&6<J6Bq65Es7o�75.Q/QK./2J.K�!�-QL.N�O�P�R�t<2Q1Q0Q#�VPT�3Q$�V�W�M.~=4QY�Z�[�%M\�]�^�_�YL`�a�N.6Qc�d�5Q8Q7Q9Q75.Q/QI�/2J�K�L�-QM�N�O�P�R�t<2Q1Q0QS�VPT�3QU�V�W�X�~=4QY�Z�[�%M\�]�^�_�YL`�a�b�6Qc�d�5Q8Q7Q9Q2�$Q3�t�O6u�!Q"QE./Fx�|AG.#69�z�MK%Q;�{�=N<�=�&Q>�|�?�)Q@�'QH.NAB�}�(Q*QD�E�F.v�0�,QF�+QG�HJH�2�$Q3�4�O65�!Q"Q6�/F7�|A8�#69�:�MK%Q;�=N<�=�&Q>�?�)Q@�'QA�NAB�C�(Q*QD�E�Q�0�,QF�+QG�HJH�zPw�x�y�|Pz�i�{�5K|�}�~�f7j�k�D.l�m�1;wH{P%�n�'�(�)�*�+�h�o�E:CM-�.�q�~P#Q}PD:}=/�r�s�1�97zPw�x�y�|Pz�{�5K|�}�~�f7!�"�#�$�1;wH{P%�&�'�(�)�*�+�,�E:CM-�.�~P#Q}PD:}=/�0�1�97A.C._�pPb�`�qPuPN0d�e�a�PJtPg�h�b�sPwPc�k�vPdDl�m�n�d�r7e�q�f�xPs�g�u�E<&BeDv6yP65_�`�a�pPb�c�qPuPN0d�e�f�PJtPg�h�i�sPwPj�k�vPdDl�m�n�o�r7p�q�r�xPs�t�u�E<&BeDv6yP65X�;.<.K�fPoPL�RAM�D8N�\G=.G`Y�nP]EZ�cPv8R�>.u8aPT�[�V�\�Z<iP]�oJMCePq7?.bPjPdPQNkPAO@.[�\�]�^�f6p7B.I�J�K�fPoPL�RAM�D8N�\GO�G`P�nP]EQ�cPv8R�S�u8aPT�U�V�W�Z<iPX�oJMCePq7Y�bPjPdPQNkPAOZ�[�\�]�^�f6p7v�6�7�87%Bd2R�9�:�9.S=S�=�>�YPT�^P\PU�WP/BZP]P[PA�]JXP:..?C�sK_P`PO�$=mPD�!.W�PG6IhPpJ62F�G�lPH�6�7�87%Bd28�9�:�;�S=<�=�>�YP?�^P\P@�WP/BZP]P[PA�]JXPB�.?C�sK_P`P$=mPD�E�PG6IhPpJ62F�G�lPH�|�K�&4~�L�TPLP"�5.cN$�x;%�MP&�RPM�(�6.UP7.NP+�N�!6M0-�.�"6A2%UyKnIt8P�/?7N0�1�2�3�4�Q�XJ|�}�&4~�!�TPLP"�#�cN$�x;%�MP&�RP'�(�)�UP*�NP+�,�!6M0-�.�"6A2%UyKnIt8/�/?7N0�1�2�3�4�5�XJf�g�QD"CJP../.j�k�L0cD;=4:$Ml�NBD�?20.IPE�>MEPGPn:HP$U1.-.q�A�PP2.3.t�SPQPu�B2;JKPG�H�x�I�OPs8J�4.H;f�g�QD"CJPh�i�j�k�L0cD;=4:$Ml�NBm�?2n�IPo�>MEPGPn:HP$Up�_�q�PPr�s�t�SPQPu�B2;JKPv�w�x�y�OPs8z�{�H;?�k4S�+.U�DPK0,.W�`8l4zI2HY5X�Y�@�[�\�q2gPAE]�lGFP^�`�<Ha�bNB�-?c�G;d�w;@2C�R�k4S�T�U�DPK0V�W�`8l4zI2HY5X�Y�Z�[�\�q2gPAE]�lGFP^�`�<Ha�bNb�-?c�G;d�w;@2e�:=N?>P8�<P=PX59�#:p2;P:P)J:�F;E;>B?PUIg@<�F�8!@PBPG�(.I�eBaNJ0J�;�AP>2K�D6=�gCM�>�o7CP$G/�).P�*.:=N?>PC�<P=PX5#:p2;P:P)JD�F;E;>B?PUIg@E�F�8!@PBPG�H�I�eBaNJ0J�AP>2K�D6L�gCM�N�o7CP$G/�O�P�Q�55,P-P;N=MhA/Pv;sF'.2P>1_8^8f0>�?�KOJO3:!01�3P4P5P4K6Pr8g0rK|5}5~5bD<NA�7P8P9P4�M?5�7�55,P-P;N=MhA/Pv;sF=�2P>1_8^8f0>�?�KOJO3:!0@�3P4P5P4K6Pr8g0rK|5}5~5bD<NA�7P8P9PB�M?(�0�)P5G1�W5)�*�7GcFC83K,�Ii*Ph>+P52/�5�e6p8iL&V6�7�0�pM}F9�:�;�%4<�/�0�)P5G1�W52�7GcFC83K3�Ii*Ph>+P524�5�e6p8iL&V6�7�8�pM}F9�:�;�%4<�l0zC"�7<"�#�|Kf>0;e><2$�TI?M#�"P/1$�n3#P$@BRV5:Jg>&�>N'�(�BJ$.%�$P&�.�fC'�%.&.%Pz6.�&P]40Cg<'P(Pl0zC!�7<"�#�|Kf>0;e><2$�TI?M"P/1%�n3#P$@BRV5:Jg>&�>N'�(�BJ)�$P*�fC+�,�-�%Pz6.�&P]40Cg<'P(P`�K�*�-�>~?�&�(�*�1�U�7�u�x�j�p�X}'�K|\�I�?�)�k�N�S�:�C�$�l�`{Q{O�n�Y�T�m�4�w�5�2�YzZzl�n�H�J�L�O�>�B�a�N�]�+�6�;�myS�W�G�K�H�3�7�t�w�}�d�9�-�"�g�l�\�4�MxF�H�I�P�?�A�B�(�fwp�w�T�@�q�~�;�B�:vw�!vH�]�(�)�,�4�~um�e�.�2�4�Iuq�6�|�[�_�`�F�J�;�t�y�{�^�o�q�>�oOV�Y�\�_O#�%�)�(�,�W�?�C�A�y�J�/�8�B�#�&�]�^�a�g�H�h�/�[.~�S.+�^�V�#.-�2�3�U-^#c-.+|+U-c-++-+!+#+)+'+S-T-P-Q-R-V-!./.#...1.j.i.h.g.@-N-C-H-I-_-o-n-m-).2.$.+.".4.5.-.7.*.6.F-J-A-D-B-L-K-E-M-G-O-[,\,],^,_,`,a,b,c,d,e,f,g,h,i,j,k,l,m,n,q,p,s,r,o,e-f-g-h-i-P(Q(R(S(T(U(V(W(X(Y(Z([(\(](^(s-t-u-v-w-e-f-g-h-i-A(B(C(D(E(F(G(H(I(J(K(L(M(N(O(.-1-,-j-k-l-n&o&p&q&r&s&t&u&v&w&y&z&{&|&}&~&@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v%r's't'u'&!<!3!4!8"@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v%&!<!3!4!`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$+!,!5!6!9"{#!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t%+!,!5!6!!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$+!,!5!6!!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$!!"!#!7!9!:!;!R!S!T!U!V!W!X!Y!Z![!)"."L!M!Z"["X"Y"A!`-a-f&3"4"5"6"7"<#!!"!#!7!9!:!;!R!S!T!U!V!W!X!Y!Z![!)"."L!M!`-a-!!"!#!7!9!:!;!R!S!T!U!V!W!X!Y!Z![!)"."L!M!A!`-a-}#~#:#.#/#}-!,",#,$,%,&,',(,),*,{'j!i!:&=&;&@&9&>&<&?&l&}"v"{"|"u"z"t"j!i!v"u"t"h&i&j&k&z!y!g&d&e&~-z!y!$###!"~!;#{!}!|!g(h(i(j(?#~"!"~!{!}!|!~"#"""m&%"$""#!#'"&"#"""%"$"'"&"@(6(!(,("(-(#(.($(/(&(1(%(0('(<(7(2()(>(9(4(((8(=(3(*(:(?(5(+(;(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,+,,,-,.,/,0,1,2,3,4,Z&[&\&]&^&_&`&a&b&c&!)")#)$)%)&)')()))*)+),)-).)/)0)1)2)3)4)!-"-#-$-%-&-'-(-)-*-+-,---.-/-0-1-2-3-4-}'D'E'F'G'H'I'J'K'L'M'N'O'P'~'B'C'H"I"^"|'^"v'w'>"?"B"C"<"="D"E"Q"R"S"]"y->"?"<"="]"#/>"?"<"="]"y-l"m"n"b"b!a"k"e!f!c"d"o"p"b"b!a"e!f!c"d"O"_"P"G"`":"F";"t-]![#e"g"g!x-\"T"U"J"K"A"@"i"j"s-h!h"f"O"_"P"`":";"e"g"g!"/\"B!J"K"A"@"i"j"!/h!h"f"O"_"P"`":";"t-e"g"g!x-\"B!J"K"A"@"i"j"s-h!h"f"O"_"P"`":";"t-]!e"g"g!x-\"B!J"K"A"@"i"j"s-h!h"f")#M"N"+#,#*#-#M"N"+","*"-"q"'#%#&#(#+","*"-"x'y'z'5-6-7-8-9-:-;-<-=->-?-W-5,6,7,8,9,:,;,<,=,>,?,@,!*"*#*$*%*&*'*(*)***5*6*7*8*9*:*;*<*=*>*5-6-7-8-9-:-;-<-=->-s�t�u�v�w�x�y�z�{�|�n!]#_#b-d-o�`#r"\#n!{+}+�r"n!b-d-o�r"!)~,l(m(n(},>!|#=!=!B!F!G!H!I!w"x"@#E!D!s"l!m!("k(1!X+>!=!F!G!H!I!w"x"E!D!s"l!m!(">!=!=!B!F!G!H!I!w"x"E!D!s"l!m!("~>!=!=!B!F!G!H!I!w"x"E!D!s"l!m!("1!F+G+P+Q+r(s(b'c'd'e'f'g'h'i'j'k'l'm'n'o'p'q'W'r�s�t�u�v�w�x�y�z�{�|�}�~�''B�C�D�E�F�G�H�I�J�K�L�M�N�!'"'#'$'%'&'(')'*'+','-'.'/'0'1'2'3'4'5'6'7'8'9':';'<'='>'?'@'A'Q'R'S'T'U'V'X'Y'Z'['\']'^'_'`'a'P&Q&Y&R&S&T&U&V&W&X&u�z�w�y�|�P&Q&x�R&S&T&U&V&W&X&u�z�w�y�|�8�9�a�b�c�d�g�i�l�v�!&"&#&$&%&&&'&(&)&*&+&,&-&.&/&0&1&2&3&4&5&6&7&8&e�j�q�r�s�t�{�A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&R+\+Z+_+}+[+W+m+Y+^+]+x+y+~+j+v+w+k+l+r+g+o+z+h+p+s+u+i+{+|+t+n+1*S+T+U+V+"*X*6�-*6*q+`+a+b+c+d+0�/�2�6�5�3�|*q*h*'+m*-+5+f*7+;+x*r*@+i*!+~*#+w*>+=+3+9+:+%+8+?+n*&+.+0+C+1+2+u*(+y*6+<+"+B+,+j*t*k*4+{*e*v*o*/+l*A+s*p*g*$+o(p(C�q(v(w(g�x(p�y(m�z(o�{(n�|(9�t(u(E+&�&�C�C�U�U�g�g�p�p�m�m�o�o�n�n�9�)+I�#*.*A*Q*O�O�B*R*J�+�z*y)~)C*S*++*+9*H*[�[�D*T*%*0*]*c*'*3*&*2*G*W*(*4*/�O�l�l�w)|)^*d*E*U*F*V*j�j�q�q�t�t�s�)*5*+*8***7*I�(�H�M�M�O�O�N�N�J�+�K�W�W�V�V�-�M�Y�Y�[�[�Z�Z�\�\�]�]�_�_�^�^�a�a�`�`�/�O�l�l�i�i�f�f�k�k�h�h�j�j�q�q�t�t�s�u�u�w�w�v�v�u)z):*I*!*,*<*K*Y*_*/�/�=*L*@*O*"�P*x)})6�6�>*M*?*N*Z*`*;�;�=�=�<�[*a*$�}*G�G�v){)F�F�D�E�&�F�\*b*I�I�G�;*J*L�L�$*/*)�'�'�%�%�(�(�+�+�,�,�/�/�-�-�0�0�"�B�7�7�6�6�8�8�5�5�:�:�;�;�=�=�<�>�>�$�D�G�G�E�E�F�F�D�E�&�F�H�H�I�I�G�J�J�L�L�K�K�)�7)8)9):);)<)=)>)?)@)A)B)C)D)E)F)G)H)I)J)K)L)M)_!N)O)P)Q)R)S)T)U)V)W)X)Y)Z)[)\)])^)_)`)a)b)c)d)e)f)g)h)i)j)k)l)`!m)n)o)p)q)r)s)t)AAAAAAACEEEEIIIIDNOOOOO_!OUUUUYTsaaaaaaaceeeeiiiidnooooo`!ouuuuyty"�!�$�*�#�)�!�.�2�1�4�3�@�?�B�A�P�R�Q�T�X�S�_!,�c�b�e�d�r�0�N�"�!�$�*�#�)�A�.�2�1�4�3�@�?�B�A�C�P�R�Q�T�X�S�`!L�c�b�e�d�r�P�s�")#)q!r!$)o!%)x!/!&)')()L"))*)+)k!^!,)-)-!y".)/)0)1)2)3)4)5)6)!q!r!\|x!/!cac"L"-R1!k!^!23-!L&y"&!$!1od"�B�q!r!p�\C�x!/!�l�L"n�4�k!^!-!y"1�k�D�B�q!r!p�\C�x!/!m�l�L"n�4�k!^!-!y"1�k�D�B�q!r!p�o!C�x!/!m�l�L"n�4�k!^!-!y"1�k�D�!!@؉�+!@آ�.!@ؤ�6!@آ�F!@��p!@�+�w!@؁�y!@�q�"#@��%#A�J�'#A�	�1#A���2#A�(�8#A�O�?#B��A#B�:�J#Bع�R#B�|�S#B؝�Y#B���\#B��w#C�E�*$C���1$Cؕ�2$C�m�:$C�d�=$C�_�Y$D��\$D�U�^$D�{�c$D�t�j$D���k$D���r$D��t$D�6�u$D�D�%%D���2%E�m�>%E���D%[�)�G%E�G�U%E��V%E�B�~%F���0(G�V�7(G�-�8(G�E�:(G�x�;(G�b�?(Gء�@(G؜�E(Gؒ�H(Gط�J(G���K(G�3�[(G��f(G�v�l(G��",H�{�+,H��0,Hح�P,I���e,J�[�m,Jث�r,J؏�$-Jظ�)-J�O�*-J�P�2-J�F�4-K��5-Jئ�9-K�$�V-K���}-L���#.L��$.Lض�:.L�r�<.L���=.L���B.L���C.L���D.L���G.L���I.L���U.M�J�V.M�Q�W.M�K�[.M�e�w.M���x.M�Z�*/Mؔ�?/M�9�@/M�G�B/M�8�C/M�:�N/M��Y/M��a/M�d�i/M��j/M���p/N�$�u/N�=�#nNؘ�4nO��InO��\nO�@�^nO��_nO��`nO���2oO�~�GoPؖ�MoP��aoP���doP��"pPؼ�3pQ�)�9pQإ�SpRؖ�{pR�M�.qR�V�0qR�o�5qS��DqS��]qS��aqS�7�fqS�j�iqS؋�uqT�J�wqT�U�zqT�"�!rTة�#rT���$rT���(rT��,rT�L�=rU�.�HrU���[rUا�urUة�vrUش�2sV���=sV���>sV���@sV���RsVز�]sW�K�^sW�d�ssW�.�tsW�V�usW�e�wsW�b�{sW���}sW���"tW���$tW�#�'tW�\�.tW���/tW���4tX��5tW��=tX��BtX�`�OtX���itX�p�ktX؆�rtX�L�utO��ytY��5uY�~�:uYذ�FuY��VuZ���XuZ���ZuZ�Q�]uZ�o�_uZ���cuZ��juZ�X�puZ،�suZط�Dv[�s�Nv[���]v[�e�uv[ؔ�~v[��!w[��"w[��3w\�
�6w\�9�dw\���ew\���kw\��nw]��sw]�I�)x]��*x]��,x]�1�4x]ؓ�<x]��>x]�#�Bx]�R�Vx^؅�cx^؄�wx^س�yx^ؾ�zx^���%y_ظ�/y_ؠ�2y_��9y_ط�By`؊�Hy`ػ�Yy`؂�^y`���fya��kya�U�zya�k�~ya���!za���,za���/za��Ozb�I�Pzb�F�Wzb�k�ezb؇�fzb؈�qzbغ�rzbػ�~zb��!{b�)�,{b�q�-{b�C�6{bؙ�7{b���={b���>{b���N{b��O{b���W{c��Z{c�q�\{c��]{c��a{c�6�e{c؉�g{c���i{c�2�q{c��"|dؠ�#|dر�8|eؐ�B|e���L|e��V|e���Y|e��]|e�P�v|f���,}f�r�K}g���L}g�=�Y}g��[}g؊�]}g�I�g}g���m}g���p}g���%~g���)~h�/�+~h��2~h��5~h؂�S~H��X~h،�Z~i�7�n~i���p~i��r~i��v~iز�".@��B/D�=�L/D��`/E�n�{/Fؽ�TOB؟�cOEش�nOG�4�:uL���ruM���)vM�?�2vM�c�`vO��lwQ���~xU؎�)yU��GyU�q�TyV���nyWء�]zZ��3{[�@�I{\���l{]؄�I|`�w�Q|`���f~hؐ�w$K0�0x$M0�0y$O0�0z$Q0�0{$S0�0w%�0�0x%�0�0y%�0�0z%�0�0{%�0�0|%�0�0}%�0�0~%�0�0x&�1�0D+�H+TI+TJ+�K+�L+YM+YN+ZO+Ze+��f+���0��a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������������������������������������������������������"!b!c!d!e!f!g!h!i!��12!!!�p�N�P�QS$S��TYW���X�[�\S]��_�` aNe;fef�)�h��kj�j�m�m(p��u�v�v�0y�����z���}�}�b���� �!��"���v�#�$�%�ސ&��'�(����)�;�M�Q�*�+�,���ٚr�-�ўp!q!r!s!t!u!v!w!x!y!`!a!������	������������"�&�*�+�/�1�2�4�7�9�:�<�=�?�A�C�D�E�F�G�S�U�V�W�X�Z�]�^�h�i�m�n�o�p�q�s�u�z�}�������������������������|�~�������������������������������������������Ýǝɝʝԝ՝֝םڝޝߝ���������
������������z�{�|�������������������������������������������ƞȞ˞՞ߞ���������������������������"�#�&�'�(�)�*�1�5�6�7�=�A�C�D�E�I�J�N�O�P�S�T�V�X�[�]�^�_�c�i�j�\�k�h�n�p�r�u�w�{�������������/�0�2�3�4�:�<�E�=�B�C�G�J�S�T�_�c�b�e�i�j�k�p�v�w�{����	���
�������� �&�+�-�3�4�5�7�9�:�=�H�K�L�U�V�W�[�^�a�c�e�f�h�j�k�l�m�n�s�u�w�x�y������������������������������������������������������������ǛțΛЛכ؛ݛߛ����������������Ùəәԙٙڙܙޙ��������������������� �"�#�$�'�-�.�3�5�6�8�G�A�D�J�K�L�N�Q�T�V�]���������������������������ÚƚȚΚКҚ՚֚ךۚܚ��������������������+�.�/�0�2�3�5�%�>�D�G�J�Q�R�S�V�W�Y�Z�b�c�e�f�j�l���������������������˜ŘȘ̘������������������"�&�'�+�1�2�3�4�5�9�:�;�<�@�A�F�G�H�M�N�T�X�Y�[�\�^�_�`�������������������	����!�"�#�(�1�3�A�C�J�N�O�U�W�X�Z�[�c�g�j�n�s�v�w�x�{�}������������������������������������������������ėŗǗɗʗ̗͗ΗЗїԗחؗٗݗޗ�ۗ����������
��
������ �#�&�~�������������������������������������ƕȕɕ˕Еѕҕӕٕڕݕޕߕ�����"�$�%�&�,�1�3�7�8�9�:�<�=�A�R�T�V�W�X�a�n�t�{�|�~��������������������������������������ʖҖ�]ؖږݖޖߖ����z�}����������������������������������������������������ēœƓǓɓʓ˓͓̓ӓٓܓޓߓ������������������	�
�������.�/�1�2�3�4�;�?�=�C�E�H�J�L�U�Y�\�_�a�c�h�k�m�n�o�q�r�����x�y���������������������������������������’ÒŒƒǒȒ˒̒͒ΒВӒՒגْؒܒݒߒ����������������
��������!�$�%�'�)�*�3�4�6�7�G�H�I�P�Q�R�U�W�X�Z�^�d�e�g�i�j�m�o�p�q�s�t�v�‘Ñőӑԑבّڑޑ����������������������	�
���������#�$�%�&�(�.�/�0�3�5�6�8�9�:�<�>�@�B�C�F�G�J�M�N�O�Q�X�Y�\�]�`�a�e�g�h�i�n�o�p�u�v�w�x�y�{�|�}����������������ĐŐǐȐՐאِؐܐݐߐ�Ґ�������������
��������� �%�"�#�'�)�.�/�1�4�6�7�9�:�<�=�C�G�H�O�S�W�Y�Z�[�a�d�g�m�t�y�z�{�������������������������������������������������������C�G�O�Q�R�S�T�U�X�]�^�e�������������������������Əʏˏ͏ЏҏӏՏ������������������(�)�/�*�,�-�3�4�7�?�C�D�L�[�]�b�f�g�l�p�t�y�������������������������������������������̐��Ð#�&�'�1�3�6�7�8�9�=�@�A�K�M�N�O�T�[�\�]�^�a�b�i�l�m�o�p�q�y�z�{�������������������������������������������ÎĎǎώюԎ܎������������������� �!�#�%�'�(�,�-�.�4�5�6�7�:�@�A�����������������������ŌƌɌˌό֌Ռٌ݌����������������	����e�i�l�n������������������������������������������ōƍǍȍʍ΍эԍՍ׍ٍ���������������� �!�"���������ÊƊȊɊʊъӊԊՊ׊݊ߊ����������������
�-�0�7�<�B�C�D�E�F�H�R�S�T�Y�M�^�c�m�v�x�y�|�~�����������������������8�9�=�>�E�G�I�K�O�Q�S�T�W�X�[�]�Y�c�d�f�h�i�m�s�u�v�{�~���{�|�}���������������������������������ԉՉ։׉؉��������������������� �"�$�&�+�,�/�5�7�=�>�@�C�E�G�I�M�N�S�V�W�X�\�]�a�e�g�u�v�w�y�z�{�~����������������������������������:�<�A�C�E�H�I�J�K�N�Q�U�V�X�Z�\�_�`�d�i�q�y�{���������������������������ʈˈ͈̈Έш҈ӈۈވ��������
��������� �&�'�(�0�1�2�5�9�:�>�@�B�E�F�I�O�R�W�Z�[�\�a�b�c�k�n�p�s�u�z�(�.�/�1�2�9�:�<�=�>�@�C�E�M�X�]�a�d�e�o�q�r�{�������������������������������������������������������ȇɇʇ·Շևهڇ܇߇���������������	�
�������������(�-�.�0�2�5������
���������!�'�)�6�8�:�<�=�@�B�F�R�S�V�W�X�Y�]�`�a�b�c�d�i�l�o�u�v�w�z�������������������������������������������Æņц҆Ն׆چ܆���熈�������������������!�#�܄������2���������������"�#�$�%�'�*�+�/�3�4�6�?�F�O�P�Q�R�S�V�Y�\�]�^�_�`�a�b�d�k�o�y�z�{�}������������������������������������������������…Džʅ˅΅��؅څ߅�������}������������������������������������������ǃɃσЃуԃ݃S������������
�������/�9�E�G�H�J�M�O�Q�R�V�X�Y�Z�\�`�d�e�g�j�p�s�t�v�x�|�}�����������������������������������„DŽȄ̄τӄK�N�O�Q�V�\�`�c�g�m�t�{�}����������������������������������������������������������������ƂЂՂڂ������������������
��T�����!�"�,�-�.�0�3�7�:�<�=�B�C�D�G�M�N�Q�U�V�W�p�x����������������� �$�'�,�0�5�:�<�E�G�J�L�R�W�`�a�g�h�i�m�o�w���������������������������������ˁÁŁʁ΁ρՁׁہ݁ށ�������������������������!�"�(�2�4�:�C�D�E�F�q}~�������������������������������������
�
���������� �$�&�,�.�0�4�5�7�9�:�<�>�@�D�`�d�f�m�q�u���������������������Ȁ̀πҀԀՀ׀؀����}�}�}�}�}�}�}�}�}�}�}�}�}�}�}�}�}�}~�}�}�}�}�}�}�}�}�}�}�}~~~~~~~ ~'~(~,~-~/~3~6~?~D~E~G~N~P~R~X~_~a~b~e~k~n~o~s~x~~~�~�~�~�~�~�~�~�~�~�~�~<;=>?CDGORS[\]acdefma|c|g|i|m|n|p|r|y|||}|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|}}}	}}}}}}}}#}&}*}-}1}<}=}>}@}A}G}H}M}Q}S}W}Y}Z}\}]}e}g}j}p}x}z}{}}�}�}�}�}�}�}�}�}�}�}�}�}�}1{4{={?{@{A{G{N{U{`{d{f{i{j{m{o{r{s{w{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{|||||	||||||| |%|&|(|,|1|3|4|6|9|:|F|J|U|Q|R|S|Y|Z|[|\|]|^|�y�y�y�y�y�y�y�y�yzzz	z
zzzzzz!z'z+z-z/z0z4z5z8z9z:zDzEzGzHzLzUzVzYz\z]z_z`zezgzjzmzuzxz~z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z�z{{{#{'{){*{+{-{.{/{0{�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�xy�x�x�x�x�xyyyyyyy y%y'y)y-y1y4y5y;y=y?yDyEyFyJyKyOyQyTyXy[y\ygyiykyryyy{y|y~y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�ydwgwjwlwpwrwswtwzw}w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�wxx	x
xxxx!x"x#x-x.x0x5x7xCxDxGxHxLxNxRx\x^x`xaxcxdxhxjxnxzx~x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x:v<vJv@vAvCvDvEvIvKvUvYv_vdvevmvnvovqvtv�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�vww
wwwwwwwww"w(w-w.w/w4w5w6w9w=w>wBwEwFwJwMwNwOwRwVwWw\w^w_w`wbwuuu u!u$u'u)u*u/u6u9u=u>u?u@uCuGuHuNuPuRuWu^u_uauouquyuzu{u|u}u~u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�uvvvvvv
vvvvvvvvvvvv#v%v&v)v-v2v3v5v8v9v�stttt
tttt$t&t(t)t*t+t,t-t.t/t0t1t9t@tCtDtFtGtKtMtQtRtWt]tbtftgthtktmtntqtrt�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�tu�rsssss
ssssss"s$s's(s,s1s2s5s:s;s=sCsMsPsRsVsXs]s^s_s`sfsgsiskslsnsosqswsys|s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�shqyq�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�qrrr	rrrrrr$r+r/r4r8r9rArBrCrErNrOrPrSrUrVrZr\r^r`rcrhrkrnrorqrwrxr{r|rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�o�o�o�o�o�o�o�o�opppp
pp p#p/p4p7p9p<pCpDpHpIpJpKpTpUp]p^pNpdpeplpnpupvp~p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�pqqqqqqqqq q+q-q/q0q1q8qAqEqFqGqJqKqPqRqWqZq\q^q`qbncnhnsn{n}n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�noo
oo
ooooo&o)o*o/o0o3o6o;o<o-oOoQoRoSoWoYoZo]o^oaoboholo}o~o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o�l�l�l�l�l�l�l�l�l�lmm
mmmmmm&m'm(mgl.m/m1m9m<m?mWm^m_mamemgmompm|m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�mnnn"n'n2n6n9n;n<nDnEnHnInKnOnQnRnSnTnWn\n]n^n~k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�klll	l
llllll&l'l(l,l.l3l5l6l:l;l?lJlKlMlOlRlTlYl[l\lklmloltlvlxlyl{l�l�l�l�l�l�l�l�l�l�l�l�l�l�l�l�l�l�l�l�l�l�l4j7j;j>j?jEjFjIjJjNjPjQjRjUjVj[jdjgjjjqjsj~j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�j�jkkkk	kkkkkkk$k(k+k,k/k5k6k;k?kFkJkMkRkVkXk]k`kgkkknkpkuk}k�h�h�h�h�h�h�h�h�h�h�h�h�h�h�h�h�h�h�h�hi	i
iiiiii1i3i5i8i;iBiEiIiNiWi[icidieifihiiilipiqirizi{ii�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�ijjjjjjjj j$j(j0j2jfglgngtgvg{g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�gRhhhhh(h'h,h-h/h0h1h3h;h?hDhEhJhLhUhWhXh[hkhnhohphqhrhuhyhzh{h|h�h�h�h�h�h�h�h�h�h�h�h�h�h�h�h�h�h�h�h�hf!f"f#f$f&f)f*f+f,f.f0f1f3f9f7f@fEfFfJfLfQfNfWfXfYf[f\f`faf�fjfkflf~fsfuffwfxfyf{f�f|f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�f�fgggggg g"g3g>gEgGgHgLgTgUg]g�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�deee	e
eeeeeeeee"e&e)e.e1e:e<e=eCeGeIePeReTe_e`egekeze}e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�e�efff	f
ffffffxc|c}cc�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c�c	d
dddddd d"d$d%d)d*d/d0d5d=d?dKdOdQdRdSdTdZd[d\d]d_d`dadcdmdsdtd{d}d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�a�a�abbbbbbb b"b#b'b)b+b9b=bBbCbDbFbLbPbQbRbTbVbZb\bdbmbobsbzb}b�b�b�b�b�b�b�b�b�b�b�b�b�b�b�b�b�b�b�b�b�b�bcc
cc
ccccc)c*c-c5c6c9c<cAcBcCcDcFcJcKcNcRcScTcXc[cecfclcmcqctcuc�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`aa
aaaaaaaaaaaa"a*a+a0a1a5a6a7a9aAaEaFaIa^a`alaraxa{a|aa�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�ao_r_t_u_x_z_}_~_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_`
`
```````$`-`3`5`@`G`H`I`L`Q`T`V`W`]`a`g`q`~``�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�]�]�]^^
^^^^^^ ^.^(^2^5^>^K^P^I^Q^V^X^[^\^^^h^j^k^l^m^n^p^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^________!_"_#_$_(_+_,_._0_4_6_;_=_?_@_D_E_G_M_P_T_X_[_`_c_d_g_m\p\t\u\z\{\|\}\�\�\�\�\�\�\�\�\�\�\�\�\�\�\�\�\�\�\�\�\�\�\�\�\�\]]
]]+]#]$]&]']1]4]9]=]?]B]C]F]H]U]Q]Y]J]_]`]a]b]d]j]m]p]y]z]~]]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z[[[[4[[[[![%[-[8[A[K[L[R[V[^[h[n[o[|[}[~[[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[\\\\#\&\)\+\,\.\0\2\5\6\Y\Z\\\b\c\g\h\i\oYrYuYvYyY{Y|Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�YZZZ
ZZZZZ#Z$Z'Z(Z*Z-Z0ZDZEZGZHZLZPZUZ^ZcZeZgZmZwZzZ{Z~Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�ZX
XXXX X&X'X-X2X9X?XIXLXMXOXPXUX_XaXdXgXhXxX|XX�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�XYYYYYYYA�Y!Y#Y$Y(Y/Y0Y3Y5Y6Y?YCYFYRYSYYY[Y]Y^Y_YaYcYkYmY�V�VWWW
WWWWWWW W"W#W$W%W)W*W,W.W/W3W4W=W>W?WEWFWLWMWRWbWeWgWhWkWmWnWoWpWqWsWtWuWwWyWzW{W|W~W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�WXXX	X�W�U�U�U�U�U�U�U�U�UVV
V
VVVVVVV,V0V3V5V7V9V;V<V=V?V@VAVCVDVFVIVKVMVOVTV^V`VaVbVcVfViVmVoVqVrVuV�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�TUUUU	UU
UUU*U+U2U5U6U;U<U=UAUGUIUJUMUPUQUXUZU[U^U`UaUdUfUU�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�USSSSSSSS%S'S(S)S+S,S-S0S2S5S<S=S>SBSLSKSYS[SaScSeSlSmSrSyS~S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�STTT!T'T(T*T/T1T4T5TCTDTGTMTOT^TbTdTfTgTiTkTmTnTtTT�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�QRRRRRRRR"R(R1R2R5R<RERIRURWRXRZR\R_R`RaRfRnRwRxRyR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RSS
SS�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�PQQQQQQ
QQ�PQQQQQQQ#Q'Q(Q,Q-Q/Q1Q3Q4Q5Q8Q9QBQJQOQSQUQWQXQ_QdQfQ~Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�OPPPP
PPPPPPPPPPP"P'P.P0P2P3P5P@PAPBPEPFPJPLPNPQPRPSPWPYP_P`PbPcPfPgPjPmPpPqP;P�P�P�P�P�P�P�P�PNNNNNN#N$N(N+N.N/N0N5N@NANDNGNQNZN\NcNhNiNtNuNyNN�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�NOOOOOOOOOOO.O1O`O3O5O7O9O;O>O@OBOHOIOKOLOROTOVOXO_OcOjOlOnOqOwOxOyOzO}O~O�O�O�O�������	
������!%�����+/)57:><DHF������QM�UYW[]a_ec����m�qksoi����u��wz~|��������
����" $�����0*.(469=;CGE������PL�TXVZ\`^db����l�pjrnh����t�xvy}{�&2A?J�Rf���'138B@IK�S�g�	
RSTUVWXYZ[\^_�����������������������������^���������"!�!����g����h��Lh�2��LB�J�_�b�h�i�k�h�s�v�w�~�����������������Ýǝɝ֝ڝߝ���M
��
����{�H؀�������hؽ�i�ߞ����wM���/�7�:�=�A�E�F�S�U�X�i�]�i�i�i�m�p�u�i�1�6�D�L�X��K���K���K��f�ƚКҚ՚�Kܚ���������+�3�=� LK�c�e�k�l�s�v�w�������g�gز�����Ǜ�؛ݛ�����g��g��g������"�'�)�*�g�1�6�7�E�\�g�I�J�g�T�X�[�]�_�i�j�k�m�n�p�r�u�z�j�d�dؖ�������������̗їԗؗٗ���
�����Je�#�2�3�%�G�f�������eط���������˜ǘ˘�e���������;Ke���e����e�1�2�3�:�;�<�@�A�F�M�N�\�_�`�����������Ùəԙٙޙf����
���� �b�������
����'�)�b�b�G�Q�W�Z�k�q�s���b�b؈���������b�b��Ǔܓ��	������2�4�;�E�b�b�m�o�x�y�������cث���c�ȕc�c�,�3�4�c�<�A�a�c؂�cؚ�c��I�����������Ic�ؖږݖJ�#�)J6�A�G�U�W�[�a؅���������H����ÐȐa�ܐߐa�������������7�9�:�F�G�W�Y�a�d�t�y�������������Ñđڑb�b����
���b�3�B�G�J�N�Q�V�Y�`�a�e�g�h�b�b�|�}����������������b�bز�����ƒΒВגْ���b�W�i�m�s�_ؓ�����dG����֌Ռٌ_���_�	��l�������_�ƍȍٍ���G���`���!�"�'�`�H6�9�K�T�b�l�m�o���������������`�юԎNH��`����+�@�J�X�aؤ���f���a��Ə$�ʏ͏ӏՏ������7�a�C�D�]�a�.�2�<�FJ�X�_�d�]�]�i�]�o�����������҈]�шӈۈ��AF�]�7�]�B�E�I�]�eFb�������������։؉뉡F�����F��^�!�5�>�E�M�X���������׊��^�
��
���-�C�GQ�^�v��������������9�^�=�^�^�E�G�O�T�[�[ط���Džʅ؅م߅������!�$�'�\�9�<�\�@� �S�V�o�w�z���������������!�������ÆцՆ׆�憸E�������!�#�1�:�>�@�C�Q�X�d�e�r�|�\�\ا���������\��E��]��·��߇]�����������(���������������T���0�<�D�W��D��D�D����������ɃЃԃ݃�����[��9�J�O�Q�R�Y�Z�\�[�e�v�x�|���
E܄������E΄τӄ[����������$�%�+�4�O�o�%ECE>�Q�S�^�a�b�[�{�}������������[���
�����$�,�0�C�f�q�u�{�����������Y�ŀՀ؀�Y�
������C5����C$�'�,�Y�=�Di�D��D����"D������ÁցہZ��Z��Z����Z��Z��!�"�Z�2�4�<�F�I�E�Z�K�vDO�zDW�Z�\�c�Z�]�^�y��D}�������������|W��|W��|�|W�|}	}�B}}W�W�=}>}@}G}X�W��BY}Z}j}p}�B}X؆}�}�}�}X؝}�}�}�}�}�}�}�}�}�}�}CX�X�~~~ ~'~,~E~s~u~~~�~�~+C�~�~�~CC<;>CDO�4X�RX�acdm}~Xؐ{QOؖ��Y������8zGzLzVzYz\z_z`zgzjzuzxz�z�z�z�z�zVشA�z�z�z�A�z�z�z�z�zV�V�{V�={'{*{.{/{1{�A�A{A{�AU{y{d{f{i{s{V�B�{�{�{B�{�{�{�{�{W�W��{�{�{�{�{||||&|E|J|Q|W|^|a|i|n|o|p|W�W�Wئ|Wض|�|�|W��|W��|T�9@T�T�Xw`wjwT�rw|w}wT�X@�w�w�w�w�w�w�w�w�w�w�w�@�w�w�wU�xx	x
xx!x,xGxdxjxU؊x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�xU�yy0y%y;yJyXy[yAgyry�y�y�y�y�y�y�y�y�y�y�y�y�yHAU�U�OA
zzzzzcA-z�t�t�t�t�t�t�t�t�t�t�t�t�tR�tR� u$u*uW?S�=u>u@uHuNuPuRuluruquzu}u~u�uS،uu?�uw?�u�u�u�u�u�u�u�u�u�u�u�u�u�u�uvvvv�?S�vvvS�%v(v<v3vS��?AvS�IvUv�?nv�v�v�v�v�v�v�vT��vT��v�vT�ww-w5w�qP��q�q�q�qr>I�+r4r8r9r,NBrSrWrcrQ�nrorxrr�rQحr�r�r�r�r`>�rf>h>�r�rssss�>9s,s1s3s=sRs�>kslsR�nsosqsws�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�s�st�st$t1t9tSt@tCtMtRt]tqt�t�t�tRؒt�t�t�n�n�n�n�n�n�n5o�n�n�n
ooo%o6o<oO�RoWoZo`oho�o}o�o�o�o�o�o�od=�o�o�o�o�o�oP�opp
p#pP�9p:p<pCpGpKp�=Tpepiplpnpvp~p�p�p�p�p�pP؟p�pP��p�p�p�p�pqqqqqq�=/q1qPqJqSq^q�=�q�q�q�q�q�q�q�k�kNؽk�k�k�k�k�k�k�k�k�kl
ll5l6l:lO�?lMl[lml�l�l�<�l�l�l�l�l�l�<�l�l�l�l�l�lO�m
m$m&m'mgl/m<m[m^m`mpm�m�m�m�m�m�mO�nO�O�Oثm�m�m�m4m�m�m�m�m�m�m�m6nn"n'n=2n<nHnInKnLnOnQnSnTnWncn=�h�h�h�h�hii�;�;M�;i�;Fiiilirizii�i�;�i�i�i�i�i�i�i�i�i�iM�M�0jM�M��i�i�i�i�;�i�ijjjM�2j3j4j?jFjIjzjNjRjdjM�~j�j�j�;�j�j�jMثj�j�j�j�j�j�jM�M��j�j�j�j�jN�kkkkN�k&</kJkXklkukzk�k[fcfL�L�jfkflfmf{f�f�f�f�f;�f�f�f;�f;�f�:gggL�gL�L�LgMgTg]gL�L�L�tgvgLؒgL�c�h�g�g�g�g�g�g�g�g�gM�M�M�hh-hM�3h;h>hDhEhIhLhUhWhw;khnhzh|h�h�h�hm;�h�h�h�h�h�h�h�h�hM�M���h�h�h�h�h�b�b�bJ�bc
ccJ�J�2c5c;c<cAcDcNcJ�YcK�J�lc�c�cKؔc�c�c�c�c�c�c�c�c�c	dd%d)d/dZd[d]dsd}d�d�d�d�d�d�d�d�dK��d�d�den:eees:e2eDeTekeze�e�e�e�e�e�e�e�e�e�e�e�:�e�e�eff!f*fEfQfNf�:L�Wfn^Hإ^�^�^�^�^�^�^�^H�^___H�_G_c_r_~_�_�_�_�_�_�8�_�_�_�_�_�_�_�_�_�_9`"`$`9L``�`�`�`Iذ`�`�`�`�`�`�`�`�`aaaaa:ao9AaFa`a|aJؒa�a�a�a�a�a�aJ��a�a�a�aJ�b#b)bFbLbQbRbabdb{bmbsb�[�[a7�[b7�[�[l7k7�[�[u7\)\0\G�_\c\g\h\i\p\G�G�|\G�G؈\�\�7G�Gؠ\�\�\�\Gح\�\G��\G�G�]]+]] ]$]&]1]9]B]�7a]j]�7p]G�7�]8�]�]�]�]�]�]�]Gع]�]�]�]�]G��]�]/8^68^^@8^.^>^I^\8V^a8k^l^m^ X'X2X9XD�IXLXgX�X�X�X�X�X�X�X�X�XE��X�X�X�X�XYYY
YY$YEؑ6=Y�6FY�6[�[Y_YE�uYvY|Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�YE�E��6Z
ZZ'Z-ZUZeZzZ�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z[[[4[-[L[R[h[o[|[[�[�[F�<UAU�5GUJU�5`UaUdUC�}U�U�U�U�5�UC�CؿU�U�U�U�U�5�UC��U(VC�VV0V7V�5=V?V@VGV^V`VmV6�V�V�V�V�V�V�V�V�V�V�V�V�V�VD�W#WD�)WD�EWFWLWMWD�hWoWsWtWuW{WD�DجW�W�W�W�W�WD��WD�D��W�W�WJ6�W�W�WXXQ@�QQA�`QA�sQ�Q�Q�4�Q�Q�Q�4�QA�A��Q�QRRRA�UR\RlRwR�R�RBؘRBؤR�R�R�R�R�R5�RB�R
SS$S5S>SBSB�B�gSlSzS�S�SBطS�SB�]5^5�S�Sc5�S�SUT$T(Tn5CTbTfTlT�T�T�T�T�T�T�T�T�T�T�TC��T�T�T�TUU	U@�NNN)N+N.N@NGNHN@�QN4@�ZNiN�N,4.4�N�N@ؼN�N�N�N�N�N�N�NOOdO7O>OTOXO@�wOxOzO}O�O�O�O�O�O�O�O�O�O�O�Oj4�OPPPPP"Ph4BPFPNPSPWPcPfPjPpP�P�P�P�P�P�P�P�P@رP�P�P�P�P�P@��P@��P�P�P�P�4W�Y�Z��e�l���Ș�X�����$�-�.�8�J�N�R�����ÚΚ֚���� �L-�^�y�f�r�u�������������Λ�����#�A�O�P�S�c�e�w���C�G�R�c�p�|�����������םh����|�������������Þў�9�W����������Y[\w^&vk~�����8�9�:�<�@�C�O�x���’˒̒Ӓ����!�%�H�I�J�d�e�j�p�������Ɠޓߓ���3�J�c�k�q�r���������������˕Еӕ�IڕޕX����������Җޖh���3�;�M�N�O�Z�n�s���������ɗޗۗ�i�
��+�0�j�R�S�V�"�7�G�N�]�a�u�y���Њߊ�"�b�c�F�T�Y�i���I�h�d�����e�����΍э׍ �#�=�p�{�`��DH���-�6�T�`ئ�������-�g�����������������ĐŐǐאݐސ��&����"�#�'�/�1�4�=�H�[�����������ב���בޑ������
�:�@�<�N�Y�Q�9�g���w�x��גْВ'�Ւ�Ӓ%�!���(������p�W���Ɠޓ��1�E�H����)�����3�;�C�M�O�Q�U�W�e�*�+�'�,���N�ٚܚu�r��������p�k�-��ўp!q!r!s!t!u!v!w!x!y!����בޑ������
�:�@�<�N�Y�Q�9�g���w�x��גْВ'�Ւ�Ӓ%�!���(������p�W���Ɠޓ��1�E�H����)�����3�;�C�M�O�Q�U�W�e�*�+�'�,���N�ٚܚu�r��������p�k�-��ўp!q!r!s!t!u!v!w!x!y!���у����
�_�H�_�p�s�������������„[�2��#�/�Y�d����z���������˅΅�������\��)�8�W�[�6�b��El�u������������q������������Eև��
��������ʈΈ]���`����'�0�2�9�@���a�ԉ�����r$s�ws�s�s�s�s�st�s&t*t)t.tbt�t�tuou�v�v�v�v�v�Fw�R!xNxdxzx0y����y��y�z�z��z�{�H}\}�}�}�}R~G���b��ǃ��H���S�Y�k���� �!�����7�y�����ߊ"���S�����v�#�ώ$�%�g�ސ&��'�ڑA}H}S}\}z}�}�}�}�}�}�}�}�}W�(~~~~Y�G~R~a~�~�~GZ����������[��&�5�7�<�ʀ׀���J�`�g�h�m���ʁρׁ\�SD[D`�t�Z؎�����������������ƂՂ������b�"�-�:�C�G�Q�U�}���������������ǃσ�_]`�`�`�`�` a�`a7a0a�ab�b�c`d�d�dNeff;f	f.ff$fefWfYf�sf�f�f�f�f�fg)�fg�gRh�ghDh�h�hi��i�i0jkjFjsj~j�j�j�k?l\l�lol�lm�mom�m�m�m�m�m�m9n\n'n<n�n�o�o�opp(p�p�pqq\qFqGq��q�q�rCxNxOxQxhxnxK��xUحx�x�xy�xy.y1y4yL�M�EyFyN�O�P�\yQ���yyR�S���y�y�y�y�yU��y�y�y�yzT�9z]zmzU��z�zVسz�z�z�z�z{-{;{G{N{`{m{o{r{�{V��{�{|1|| |3|6|dBW�Y|m|y|�|�|�|�|�|�|�|}}}}#}1}�~�H���܄�O�p1f�h���fE_(N�N�NOO9OVO�O�O�O�O�O@P"P�OPFPpPBP�P�P�PJQdQ�Q�Q�QR�R�R�R�RSS$SrS�S�S�S��T�T�T�T�UYWeW�W�W�W���X�XYSY[Y]YcY�Y�YV[�[/u�[�[\�\�\�\']S]�B]m]�]�]�]!_4_g_�_t
tttJ�&t(t*t+t,t.t/t0tDtFtGtKtWtbtktmt�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�tuu/uouyu�ur?�u�uvvvvvvv-v5vCvKvdvevmvovqv�v�v�v�v�v�v�v�v�v�v�v�v�v�v
ww4w6wFwMwNw\w_wbwzw�w�w�w�w-xU��n�nooG�*o/o3oQoYo^oaobo~o�o�o�o�o�o�o�o�o�o�o�o�o�opp(pJp]p^pNpdpup�p�p�p�p�p�p�pq+qq q.q0qFqGqQqH�Rq\q`qhq��q�q�q�q�q�q�qrrUrVr?>�r�r�r�r�rQ�'s(s�Psfs|s�s�s�s�s�s�s�s�s�s�s�s�s�;�i�i�i�i�ijjM�;j>jEjPjVj[jkjsjM؉j�j�j�j�j�j�j<�kk,k5kFkVk`kekgkwk�k�k�kp��k�k�k�kll3lYl\l�ltlvl�l�l�l�l�l�l�l�l�l�lO�mm.m1m9m?mXmemE��m�m�m�m�m�m�m�m�m�m�m�m�mF�4nDn\n^n�n�n�n�d�d�d�d�d"e)eA�ge�eB�f	fff:f"f$f+f0f1f3f�fHfLfL�YfZfafefsfwfxf�fC��f�f�f�f�f";�f�f�fg)�3gfgGgHg{g�g�g�g�g�g�g�g�g�ghRhh,h1h[hrhuhD��h�h�h�h�h�h�h�h�h�h
iIiM�5iBiWicidihi�i��i�i�i�;3�1�0�5�6�9�:�7�8�?�@�=�>�A�B�C�D�;�<�/X�iY�dt�Q�qSV�]^^X^^^�^(��^�^____#_4_6_=_@_E_T_X_d_g_}_�_�_�_�_�_�_�_�_�_�_
```3`5`G`=��`�`�`�`�`�`�`a+a0a7a>��a?��a�a@�"b>bCbVbZbob�b�b�b�b
cc9cCcec|c�c�c�cdd"dydQd`dmd�d�d�d/X�iY�dt�Q�q]�^�d�Q�P�Y�r�������o�z���������ĝ��������Ɲϝٝӝ���������u�y�}���������������������������a�̞ΞϞОԞܞޞݞ������������������v�!�,�>�J�R�T�c�_�`�a�f�g�l�j�w�r�v�������������"�#�%�'�(�)�*�.�/�2�D�C�O�M�N�Q�X�t���������������������ʛ��ƛϛћқ���ԛ�:������	������
��.��%�$�!�0�G�2�F�>�Z�`�g�v�x����	�����*�&���#��D���A�?�>�F�H�q�t�s���������ĘØƘ���	����!���$� �,�.�=�>�B�I�E�P�K�Q�R�L�U�������������ߙۙݙؙљ�����������+�7�E�B�@�C�>�U�M�[�W�_�b�e�d�i�k�j���������ϚњӚԚޚߚ��������]�_�f�r�l���������������������������Ζ˖ɖ͖M�ܖ
�Ֆ�����������$�*�0�9�=�>�D�F�H�B�I�\�`�d�f�h��Rk�q�y���|���z���������������������×Ɨȗ˗ܗ�O���z������8�$�!�7�=�F�O�K�k�o�p��"��#�:�5�;�\�`�|�n�V�����������֓ד��ؓÓݓГȓ�������6�+�5�!�:�A�R�D�[�`�b�^�j�)�p�u�w�}�Z�|�~����������������������������������ʕ�oÕ͕̕Օԕ֕ܕ���!�(�.�/�B�L�O�K�w�\�^�O�P�Q�R��I�>�V�X�^�h�o�v���r���}���������������������Hbې���2�0�J�V�X�c�e�i�s�r�������������������������ɑˑБ֑ߑ�ۑ����������,���^�W�E�I�d�H���?�K�P���������Z�ϒ��������D�.�G�I�L�P�H�Y�d�`�*�c�U�v�r�|�����������������������������Ǝ����ŎȎˎێ������
����������&�3�;�9�E�B�>�L�I�F�N�W�\�b�c�d�������������ڏ������������!�
����'�6�5�9���_�l�o�t�}�����������������:�A�?�H�L�N�P�U�b�l�x�z���������������|���b��������������Ȍ����ڌ��������
���
��N��͌��g�m�q�s���������ύڍ֍̍ۍˍ��ߍ���	�������B�5�0�4�J�f�d�m�j�o�t�w�~�������������������������������ډ܉݉��������%�6�A�[�R�F�H�|�m�l�b���������������������Ċ͊Šڊ���������ފۊ������� �3���&�+�>�(�A�L�O�N�I�V�[�Z�k�S�c�j����������ˇ����Ї֖��ć��LJƇ������
��������҇���"�!�1�6�9�'�;�D�B�R�Y�^�b�k���~���u�}���r�����������������������ÈĈԈ؈و݈����������
��C��%�*�+�A�D�;�6�8�L��`�^�A��K�U�������������m�����ꅇ���w�~���Ʌ��υ��ЅՅ݅�܅��
��������"��0�?�M�UNT�_�g�q�����������������ĆƆ��Ɇ#���Ԇކ��߆ۆ���������	�
���
�4�?�7�;�%�)��`�_�x�L�N�t�W�h�n�Y�5�4��2�1�@�9�P�E�/�+���������������#�������|���s�u����������΃���؃��������
�"� ���8����m�*�<�Z���w�k���n���i�F�,�o�y�5�ʄb�������ل̈́��ڄЄ��Ƅք��!������,������@�c�X�H���F�>�S�Q���q�n�e�f�t�������������������_�������������������Ɂ́сف؁ȁځ߁�����������
�
���)�+�8�3�@�Y�X�]�Z�_�d�b�h�j�k�.�q�w�x�~���������������߂҂���������ނ�܂	�قELMNPQUTX_`higx�����������������q�����������ܘ�������!�(�?�;�J�F�R�X�Z�_�b�h�s�r�p�v�y�}�����������������Q��ۀ�ـ݀Āڀր	����)�#�/�K�}}}
}E}K}.}2}?}5}F}s}V}N}r}h}n}O}c}�}�}[}�}}}�}�}�}�}�}�}�}�}=~�}�}�}�}�}�}�}�}�}�}�}�}�}~
~#~!~~1~~	~~"~F~f~;~5~9~C~7~2~:~g~]~V~^~Y~Z~y~j~i~|~{~�~�}}~��~�~�~�~�~�~�~�~�~�~�~�~8:z{{M{{L{E{u{e{t{g{p{q{l{n{�{�{�{�{�{�{�{�{�{]{�{�{�{�{�{�{�{�{�{||�{�{`||||�{�{|
|�{#|'|*||7|+|=|L|C|T|O|@|P|X|_|d|V|e|l|u|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|�|;��|�|�|�|�|}�x�x�x�xyyyy,y+y@y`yWy_yZyUySyzyy�y�y�yK��y�y�y�y�y�y�y�y�y�y�yz
zzz zz�y1z;z>z7zCzWzIzazbziz��pzyz}z�z�z�z�z�z�z�z�z�z�z�z�z���z�z�z�z�z�z�z�z�z�z�z�z�z�z{{
{{3{{{{5{({6{P{rvvvxv|v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v�v/��vwww)w$ww%w&ww7w8wGwZwhwkw[weww~wyw�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�w�wxx&y x*yEx�xtx�x|x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�x�t�t�t�t�t�t�t�t�t�tuuuuu
uuuu&u,u<uDuMuJuIu[uFuZuiudugukumuxuvu�u�utu�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�u�uv�u�u�u�uv
v	vv'v v!v"v$v4v0v;vGvHvFv\vXvavbvhvivjvgvlvpv�q�q
rrr(r-r,r0r2r;r<r?r@rFrKrXrtr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rPs
ssss4s/s)s%s>sNsOs؞Wsjshspsxsus{szs�s�s�s�s�s�s�s�s�ttot%t�s2t:tUt?t_tYtAt\titptctjtvt~t�t�t�t�t�t�t�s>oo�n�ozoxo�o�ooo[o�omo�o|oXo�o�o�ofo�o�o�o�o�o�o�o�o�o�o�o�o�o�o�o	pp�oppp�opptoppp0p>p2pQpcp�p�p�p�p�p�p�p�p�p�p�p�p	q�pqqeqUq�qfqbqLqVqlq�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�q�l�l�l�l�lmM�6m+m=m8mm5m3mmmcm�mdmZmymYm�m�m�o�m�mn
n�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m�m-nnn.nnrn_n>n#nkn+nvnMnnCn:nNn$n�nn8n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�n�nAooLp�n�n�n?o�n1o�n2o�n�j��j�j�j�j�j�j�j�j�j�j�j�j�jk��jkk1�k8k7k�v9k�GkCkIkPkYkTk[k_kakxkykk�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k�k��llll$l#l^lUlbljl�l�l�l�l�l~lhlsl�l�l�l�l�l�l�l�l�l�l�l�l�h�h�h6iii�h�h%i�h�h�h(i*ii#i!i�hyiwi\ixikiTi~ini9iti=iYi0iai^i]i�iji�i�i�i�i�i�i�i�i�[�i�i�i�i�i.j�i�i�i�i�i�i�ijj�i
k�i�i�ij�ij�ij�i
jj�j#jjDjjrj6jxjGjbjYjfjHj8j"j�j�j�j�j�j�j�f�f�f�f�f?f�f�f�f�f�fggg&g'g8�.g?g6gAg8g7gFg^g`gYgcgdg�gpg�g|gjg�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�g�jhFh)h@hMh2hNh�h+hYhchwhh�h�h�h�h�h�h�h�j�hth�h�h�hi�h~hi�hi�h"i&i�hi�h�d�d�d�d�d�d�d�d�d	��d�d�b�d�d,e�d�d�d�de�deee$e#e+e4e5e7e6e8eKuHeVeUeMeXe^e]erexe�e�e���e�e�e�e�e�e�e�e�e�e�e�e�e�e�erg
ff�esg5f6f4ffOfDfIfAf^f]fdfgfhf_fbfpf�f�f�f�f�f�f�f�f�f�f�f�fb!b*b.b0b2b3bAbNb^bcb[b`bhb|b�b�b~b�b�b�b�b�b�b�b�b�b�b�b�b�d�b�b�b�b�b�b�b�bc�b�b'ccc�b�bPc>cMcdOc�c�c�c�cvc�c�c�c�c�ckcic�c�c�c�c�c�c�c�c�cd4ddd&d6ded(ddgdodvdNd*e�d�d�d�d�d�d�`�`�`�`�`�`�`�`�`�`�`�`�_�`�`�`�`Maaa�`�`a�`�`a!a�`�`
aaGa>a(a'aJa?a<a,a4a=aBaDasawaXaYaZakataoaeaqa_a]aSaua�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�a�ay�a�a�a�a�a�a�a�a�a�abb	b
bbbb�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^�^_	_]_\____)_-_8_A_H_L_N_/_Q_V_W_Y_a_m_s_w_�_�__�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�_�`�_!`````)``1```+`&``:`Z`A`j`w`_`J`F`M`c`C`d`B`l`k`Y`�`�`�`�`�`P\O\q[l\n\bNv\y\�\�\�\�Y�\�\�\�\�\�\�\�\�\�\�\�\�\�]�\]]]\]]]]]"]]]]L]R]N]K]l]s]v]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]�]^^^^^6^7^D^C^@^N^W^T^_^b^d^G^u^v^z^��^�^�^�^�^�^�^xY�Y�Y^O�O�Y�Y�Y�Y�Y�Y�Y�Y%ZZZZ	ZZ@ZlZIZ5Z6ZbZjZ�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z[[[2[�Z*[6[>[C[E[@[Q[U[Z[[[e[i[p[s[u[x[�ez[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[\\\
\\ \"\(\8\9\A\F\N\S\WW
WWWW�UW&W7W8WNW;W@WOWiW�W�WaWW�W�W�W�W�W�W�W�W�W�W�W�W
X�W�WXXXrX!XbXKXpX�kRX=XyX�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�XY
YYY�h%Y,Y-Y2Y8Y>Y�zUYPYNYZYXYbY`YgYlYiY�T�T�T�T�T�T�T�TUU�T�T�T�T�T9U@UcULU.U\UEUVUWU8U3U]U�U�U�T�U�U{U~U�U�U�U|U�U�U�U�U�U�U�U�U�U�U�UV�UV�U�UV�UNVPV�q4V6V2V8VkVdV/VlVjV�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�VW�VW	W���R�R�R�R�R�R�R�R�R�R��R�R�R�R�RSS8u
SSSSS#S/S1S3S8S@SFSESNISMS�Q^SiSnSY{SwS�S�S�S�S�S�S�S�S�S|ٖ�S�f�q�S�S�S�ST=T@T,T-T<T.T6T)TTNT�TuT�T_TqTwTpT�T{T�TvT�T�T�T�T�T�T�T�T�T�T�T�P�P�P�P�P�P�P�P�P�P�P�P	QQQQQQQ!Q:Q7Q<Q;Q?Q@QRQLQTQbQ�ziQjQnQ�Q�Q�V�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�QU��Q�Q�Q�Q�QRRRR'R*R.R3R9RORDRKRLR^RTRjRtRiRsRR}R�R�R�RqR�R�R��_NN*N1N6N<N?NBNVNXN�N�Nk��N�
_�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N	OZO0O[O]OWOGOvO�O�O�O{OiOpO�OoO�O�OQ�O�O�O�O�O�O�O�O�O�OP(PP*P%PPO�O!P)P,P�O�OPPCPGPgUPPPHPZPVPlPxP�P�P�P�P�P�#�,�BTo��j�pŒ�2��RAZ�^_g|i�ijmobr�r�{�~�K�ΐmQ���y��2�֊-P�Tq�jkČ��`�g�N�N�k���h�i~n�xU�B�A[V[}[�[�[�[\\#\+\�7b\;�<�E�z\�\�\�\�\�\�\�\�\�\G��7
]']�F]G]S]J]m]�]�]�]�]�]�]T�#�,�BTo��j�pŒ�2��RAZ�^_g|i�ijmobr�r�{�~�K�ΐmQ���y��2�֊-P�Tq�jkČ��`�g�N�N�k���h�i~n�xU��uψ�̑�x��_�s�zN��ceu�RAm�n	tYukx�|���z���Ona�e\��N�N�P!N�Q�[�e�h�msBv�wz�|o�Ҋ|�ϑu���R�}+P�S�g�m�q3t�*���W���`tAX�m/}^��N6O�O�Q�R�]`�s<yӂ4�����
���b��ftkR�R�pˆ�^K`�a#oIq>|�}o��8�/UQO*Q�R�S�[}^�`�a�c	g�ggn�m6s7s1uPyՈ��J�����Ė��Y�NYON��?���P|^�Y�[�^�c�c�d�fJi�im�n�q(u�z��I�Ʉ��!�
�e�}�
�~a�b2k�ltm���m�����eg��<���ma}=�j�qNuSP]k�oͅ-���)RTe\Ng�ht�t+o�sT*gE��]�{�\�[�Jnфz��Y�|l w�R"Y!q_r�w'�a�iZZ�Q
T}Tf�v������Y]r�nMQ�h�}�}b���xd!j��Y_[�ks�v�}���2Q(gٞ�vbg�R�$\;b~|��OU�`}��S_N�QY:r6�Α%_�w�Sy_}��3���V��g��S�	aa�lRv�l�l�p2x+~ހ������*�J���Ғ���l�ON�N�PVRJW�Y=^�_�_?b�fg�g�h�Q!}���������~�2� T,�S�P\S�X�d4ggrfwFz��R�l�kXL^TY,g��Q�vid�xT����W�Y'f�g�k�T�iU^���g���gR�]h�N�O�S�b+g�lď�Om~��Nba�n�yy�����m_Ub�l�Nir��R;TtV�X�anbqnY�|�|}�e^�NuOuQ@Xc^s^
_�g&N=���[�s|��P�XVv�x%R�w��{OP	YGr�{�}��ԏM��O�R)Z_���O��WUcik+u܈�Bz�R�XUa
b�f�k?|�#P�OSFT1XIY�[�\�\)]�^�bgc>e�eg;��gz9S�u�f_��񃘀<_�_buF{<�gh�Y�Z}~v,��Oj_j7lo�thyh�U�y��^�c�u�yׂ(�򒜄�-��Tl_�e\mp��ӌ;�Oe�t
N�N�W+YfZ�[�Q^�^`vbwe�enfnm6r&{P�����\����t��D��O�dfk�a�j��\Si��z�W�OoR�_E^
g�Q�{rx�{��H{�ja^��Qu`ukQb��nzv���Op�bO{���zVYX䆼�4O$RJS�S�S^,d�eg>lNlHr�r�sTuA~,�酩��{Ƒiq��=cifju�v�xC��*SQS&T�Y�^|_�`Ibyb�b�e�k�l�u�v�x�y�}w���������^�ۘj8|�P>\�_�g�k5t	w��Y?\�N�Y�_���o�yby�[q�+s�qt^�_{c�d�q�|CN�^KN�W�V�`�o
}��3����������]�b�d��wg�l>m6t4xFZu�����O�^�b�cWeog�vLr̀��)�M�
P�W�Z�hsidq�r���X�j����y�w)�/OeRZS�b�g�l}v�{�|6�����f or~������c�i����F�����v�-�0�ؕ�P�RTX\�a�dm�w�z��S����\�?S�_�_�myrcw�y�{�k�r��haj�Q�z4iJ\����[I�pxVo\�`fe�lZ�A��QT�f
�HY���QMN�Q���XpzcK�bi��~wuWS`iߎ�]l�N<\_�Sь��y��^�esNeQ��-�ؑ��lXd�due�n�v{i�ѓ�n�T�_�dM��D�xQkX)YU\�^�m�~u���[��pO�k�o0u��NQT5XWX�Y`\�_�e\g!n{v߃����M�%x:x�R�^WtY`PZQ�Q�QRUTXXXWY�[�\�]�`�b-dqgCh�h�h�v�mon�mop�qS_�uwyI{T{R{�|q}0R^3^�^_5_k_�_�ac�fgnoRr:u:wt�9�x�v���܊��󍚒w����RWc�vg�l�sÌ��s�%m�Xi�i�����u�ZXh�c�iCO,o�g��&��}T�?ipojW�X,[,}*r
T㑴��NNO\PuPCR��HT$X�[^�^�^�^_�`�b:c�c�h@l�x�yz�}G���D���SFOT���jY1��]�z���h7��rH�=j��9NXSVfW�b�c�eNk�m[n�p�w�z�{�}=�ƀˆ��[��V�X>_�e�f�j�k7uNJ$P�w0W_e`zf`l�uzn��E����{\u�zQ{Ą��y�z6��Z@w-N�N�[�_�b<f�g�lk�w�;�N��Йj&p*s�W���NFQ�Q�U�[Ӂ5�� ��OtPGRsSo`Ic_g,n����O^\ʌ�e�}RS��vQ�cX[k[
\
dQg\��NY*YplQ�>UX�Y�`Sb�g5�Ui@�ę(�SOX�[��\/^�_ `Ka4b�f�l�n΀�Ԃ�����.���۞ۛ�N�S'Y,{��L����n'pSSDU�[Xb�b�b�l�o"t�8��o��8��Q���SJ~�z��9���n�Ό��x�w���������MR�U8o6qhQ�yU~���|LVQX�\�c�f�fZi�r�u�uyVy�y�| }D}�4�;�a� ��PuR�S�S	P�U�XOY=r�[d\S�`�`\c�c?c�c�d�e�f�]�i�io�q�N�u�v�z�|�}�}a�I�X�l�����ňp��m������P�X�a�ozd�[N,p]u/f�Q6R�R�Y�_'`b?eteftf�hhcknrru�v�|V��X�������ˊ���R�Y��ez���-^�`b�ef�g�wMzM|>~
���d��_��xR�b�cBd�b-��z�{���v}�I��NHQCS`S�[\\�]&bGb�dh4h�lEmm�g\oNq}q�ez�{�}�b
i�k�qT~w�r��ߘU���;\8O�O�OU Z�[�[�_Na/c�eKf�h�ixm�m3u�uw^y�y3}は�����:�����2�ݑ��N�NRuX�X\u=\N�
�ŏc�m�%{ϊ�b��V�S�9T�W%^�c4l�paw�|�p�B�T�����^tĚ]i]pe�g��ۖncIgiŃ������R SGS�S�TFU1UVhY�Y<Z�[\\\\�^�^�^p_b�b�b�cwcff-fvf~g�hj5j�l�m	nXn<q&qgq�uw]xyey�y�z{�|9}��փ��I�]���<�T�s�a�ތ��f�~������
NNNWN�QpR�W4X�X"[8^�`�dagVgDm�rsucz��r��� �1V�W���[1\�]�Oa�b2m�y�yB}M~�����F�r���t�/�1�K�l�Ɩ���NOOEQAS�_b�gAlncs&~͑���SY�[�m]y.~�|~X�q�QS���O�\%f�w�z����Q�_�eoi�k�m�ndo�v}�]u�����QR@b�f�fn�^�}r�f�������R�SsY�^�_U`�d��PQ!k�n�l>r�t�u�x:y�3�ꁔ���Pl�_X�+��z���[�N�S�W1Y�Z�[�`no�uꌟ[��{rP�g��a\J�~��Q\hcf��enq>y}��ʎn�dž��P�R:\Sg|p5rL�ȑ+���[1_�`;N�S�[Kb1g�k�r�s.zk���R���Q�SjT�[�c9j�}��V�ShT�[�b�d�d-g�k��і�v֛Lc����vRf	N�P�Sq\�`�dce_h�q�s#u�{�~����یx���e�f�k�N�N:OO:R�S�S�U�V�X�Y�Y�YP[M\^+^�_`c/e\[�e�e�e�gbk{klEsIy�y�|}+}���󁖉^�i�f����nj܌̖��ok�N<O�OPQW[�[HacBfdk��N�VdW�XZZh`�aff9h�h�m�u:}n�B��NPO�SUo]�]�]�g�lstxP���߈PW�^+c�P�P�Qg�T^X�Y�[i_Mb�c=hskn}pǑ�rx&xmy�e0}܃��	���dR(WPgj���QBW*�:X�i���T]�W�x��\OJR�T>d(fg�g�zV{"}/�\h��9{S�Q7RT�UQW�W}YT[][�[�]�]�]x^�^�^�^_R`La�b�b�c;efCf�fmg!h�h�i_l*mim/n�n2u�vlx?z�|}}^}�}������T���*�R�L�a������ʐu�q�?x����M����ؚ;�[R�R�ST�X�b�oj�_���KQ;RJT�V@zw�`�ҞDs	op�u�_�`���r��i)j}r�r.sxoxy}w������Ҏc�u�z�U��x�CQ�S�S{^&_n�n�s�sC}7����P�NNP�S|T�V�Yd[�]�^'_8bEe�gVn�r�|������N����7�ǖg���N�N
OHSIT>T/Z�_�_�`�h�jZt�x����w���^Nɛ�N|O�OPPIQlQ�R�R�R�S�ST�c�z�lt�a��z�q���|hp~Qhl��RT����͎�fS��Ay�O�PRDQSU-W�s�WQYb_�_u`vaga�a�c:dleofBhnfu=z�|L}�}K~k�J�͆�c�f��������Ώ蛇Rb�d�o��Ah�P kzlTotzP}@�#�g�N9P&PeP|Q8RcR�UWX�Z�^�a�a�brc�O�O�PGQ�zqQ�QTS!SS�S�U�X�\7_J_/`P`m`cYeKj�l�r�r�w����N�����W�Z��N�Q-\�fmi@\�fui�sPh�|�P�RGW�]&��e#k=k4t�y�yK{�}��̃�_�9�яёT��]N6P�S:S�r�s�w悯�ƙșҙwQa^��UzzvP�[G���2N�j�Q\H\_j0^�kl}luHyc[z}�_�����w�̎���<��N}PQ�Y�[/b�b�d:k�r�uGy�����p��cʃ��	TT�UThXjp�'xug͞tS�[�P��NEN�NO�S8T�[_%`Qe=gBlrl�lxptvz�z{}�|f}�e[r�SE\�]�b�bc nZ�1�ݍ��o�yZ��N�N�N�|Rł�t~N�O�Q�[
R�R�R�]�U*X�Y�[�[�[r^y^�`aca�a�cbe�gSh�h>kSkWl"o�oEo�tu�vw�z�{!|�}6���f�����̊����Q�������e�ӗ(��8N+T�\�]�sLv<w�\�����T�X�OOqS�UhV�WGY	[�[�\^~^�_�c:g�e�eg�h�hA�ff�hwmppLu�vu}�����������Q�RY�T�[]ha�i�m�x˄W�r�����lm��ن�W�gΆ��R�VT�^�b�d<h8h�krs�xkz��҉k��퐣���i�f[�\}iM�N��c {+jj�h
�_orR�Up`�b;mn�n[��D�N9��Si:j��*h\Q�z��ܑ��[V(�"h�1��b�e*j'k�k�s�V�,��Ğ�\�l{�QK\�aƁvharYN�OxSi`)nOz�NS�NUO=O�OsO�R�S	VY�Z�[�[�y�f�g�gLk�lkp�s�y�y<z�{��ۂ�w��Ӄf���)V���N�����O�\bYr;u偽�����Ŗ�ՙ�NO��VJX�X�^�_*`�`b`�ab�b9eb�p�����T�S�[�p��oS\��zN�x��&nVUk�;��Y�Sfm�t��BV�NK��O���S�U0[q_ f�fh8l�l)m[t�vNz4��[�`�풲m�u�vř�`������i�S�QW0XDY�[�^(`�c�c�lo�pqYq�q?s~v�т��`�[��iX�eZl%u�Q.YeY�_�_�NUZ?��Ta(c�Y"�u��Pz�`�c%n�ef������h'W�eqb�[�Y{��b}�}��b�|���[�^	c�fHhǕ��Og�N
OMO�OIP�V7Y�YZ	\�`apafi�pOupu�y�}�}À�c��U�z�;S�N�N�W�����xN�X�n8�2z(���/�AQpS�T�T�V�Y_��m�-��T�T�TU+U5UPU^U�U�U�U6��U�U7�VV;VIVvVfV8�oVqVrV�V�V�V�V�V�V�V
WD�!W/W3W4WpWwW|W�W�DظW�W�W�W�W�W�W�W�W	X�aXdX9�|X�X�X:��XE��X�X�X�X�X�XYA�]YmY�Y�Y�Y�Y�Y�YZ#ZgZmZwZ~Z�Z�Z�Z�ZF�[%[]R.""�"00�0�0�0�0�0�O@�4(N/N0N�N�N�N�NOO`OHOIOVO_OjOlO~O�O�O�O0��O�OPPPP'P.P@P;PAP�P�P�P�P�P1�QQQQ5QJQ2�UQWQ�4�Q�Q�Q�Q�Q�QR�4RRIRWRaR�R�R3��R�R�R�R4��R�RSSS5�aScS}S�S�S�ST'TMT�TkTtTT�T�T�TI3"3M333333N336333'3Q3J393W3
3B3#3&3;3+333*313G3~3}3|3{33`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$`!a!b!c!d!e!f!g!h!i!j!I33"3M33'3363Q3W3
3&3#3+3J3;3�3�3�3�3�3�3�3k!{300!�3!!�2�2�2�2�2122292~3}3|3R"a"+"."""�" ""�"5")"*"V'&�egkp4l(gёWmy]y��92|T12nj
T22f[��>yyr�vOTS�Re!f!g!h!i!I33"3M33'3363Q3W3
3&3#3+3J3;3�3�3�3�3�3�3�3{300!�3!!�2�2�2�2�2122292~3}3|3R"'Y\�2�2�2�2�2;S��*Q�RpS�c�y`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$`!a!b!c!d!e!f!g!h!i!I33"3M33'3363Q3W3
3&3#3+3J3;3�3�3�3�3�3�3�3{300!�3!!�2�2�2�2�2122292~3}3|3R"a"+"."""�" ""�"5")"*"�2v'w'x'y'z'{'|'}'~''�$�$�$�$�$�$�$�$�$�$p!q!r!s!t!u!v!w!x!y!z!{!�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2Q B d&g&a&b&`&c&e&f& 0&0&&&&�!�!�!�!�!�!�!�!�!�!�!d&g&a&b&`&c&e&f& 0&0&&&&�!�!�!�!�!�!�!�f��SW�`�SRh�XuY\^Po�d�TQR�e��U�zgZ�pqrsa����? �������%,9 =)/�$0<4*:;�3�3�3�3�3�3�3�3�3�3�3�3�3�3!�3�3�3�3�3	!�3�3�3�3�3�3!�3!!�A=Z`^dy}{�B>[�a_ez�~|T9CGPXnpbU:
DHQYoqc�$4\l	%5]mq�~��lny�Vs}��{m_r��aKp�'�`!a!b!c!d!e!f!g!h!i!j!k!p!q!r!s!t!u!v!w!x!y!z!{!�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$� �����������������������������������������������������������������������������������*jL+kM`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z${$|$}$~$$�$�$�$�$�$�$�$�$v'w'x'y'z'{'|'}'~'�$�$�$�$�$�$�$�$�$%%%%%%%,%$%4%<%%%%%%%#%3%+%;%K% %/%(%7%?%%0%%%8%B%Q2R2S2T2U2V2W2X2Y2Z2[2\2]2^2_2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�%�%�%�%< G H I ���>?���������%%%%%%%,%$%4%<%%%%%%%#%3%+%;%K% %/%(%7%?%%0%%%8%B% !"#$%&'()*+,-./�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#012345Q6789:;<=>?@ABCDEFGHIJKLMNO�0�0�0�0�"�"S!T!U!'##$�# !"#$%&'()*+,-./012345Q6789:;<=>?@ABCDEFGHIJKLMNO������������������������d&`&b&f&a&e&g&c&��������������������������$�$�$�$�$�$�$�$�$�$&& 0&&&&&h&�%�1�1�1�1�1�1�1�1�1�1�0�1�1�1�1�1�1�������������������������������������������������0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~00�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~00�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�%�%�%�%�!�!�!�!�!�!�!�!�!4)5)�����������)�%=0F�E��%" !�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5�6�7�8�9�:�"5!!�3!'!A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z��0 �)�)����������!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5�6�7�8�9�:�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z��%�%�%�%�%�%�%; 0�!�!�!�!0��
�^�304050;0<0�0�0""�"�"�"�"*")"�"�"�"�"	""##'"("��!�!""�"�"�"%"&"_�`�0000 "�"#""a"R"j"k""=""5"+","b"C"E"H"v"w"�!+!0 o&m&j&  ! �n&k&l&i&�%�%�%�%�%�%�%�%; 0�!�!�!�!0""�"�"�"�"*")"'"("��!�!"" "�"#""a"R"j"k""=""5"+","+!0 o&m&j&  ! ��%�%�%�%�%�%�%�%; 0�!�!�!�!0""�"�"�"�"*")"'"("��!�!"" "�"#""a"R"j"k""=""5"+","+!0 o&m&j&  ! ��%000���0�����0�0�@��>��?��0�0�0�00�N000�0  �<�^�%"\�& %     �	�00;�=�[�]�0	0
000
00000�
�����`"��f"g""4"B&@&�2 3 !�������
� ��&&�%�%�%�%000���0�����0�0�@��>�> ?��0�0�0�00�N000�0  �<�0 \�& %     �	�00;�=�[�]�0	0
000
00000�"����`"��f"g""4"B&@&�2 3 !�������
� ��&&�%�%�%�%nkf internal module connection failure.
;_`~�� ����H�����`���`0����������������0���DP���X����l�����0����P����p�����������������0����D@��������P���,P���@��T���h ���|`��������������������������d����x����������p������4P���H����\��x����@������������������	���� 	p���4	�`	�����	�����	�����	�����	P���
����
����8
`���L
����`
��
����4����p����`������p��$���D ��`����@��8
���T
���
����
����
0���
`����� `��LP��h����`�������(�������p���0���D�������� 
��@��,
��p�/���P0��`2��,04��h07���zRx�$8{�� FJw�?:*3$"D0}�� \����]�q
B`�������E�\
O4�4����F�G�A �E(�J0y(K ABB,������F�F�E ��
CBK4l����F�G�A �E(�J0y(K ABB@��T�lhL����|��������������HO�����HO�����m@�����I�{
DuC�H�h
Hs
Ej
Fs
Es,X���L@T����F�B�A �C(�F0�
(A ABBFe
(E ABBI������uF�A�C ��
ABEU
ABHt
FBD�
AHOc
FBM�
DPHU
FDI�KJ�����(����<����P����'d����Hx����>B�B�E �H(�D0�D8�DP�
8C0A(B BBBA����������
���������
H�����F�B�B �B(�A0�D8�D�H
8A0A(B BBBI`4���
t0���
 �,����D�
DS
E\������A�A�F �
AAGR
AADO
AAGr
AADH
AAF X����^�Z
HJ
N0ԗ��4jD���BxX<���4EAUt`���EAF�d���8P[�����5DZ
A$�����<A�I�D kAA�Ș���^�al���<�����(04���~A�D�G0L
AAF0\�����B�D�K �G@z
 AABJ����	D F
F�������N�����# �̧���H j
F�
B�H���NH0�
D|���H |
D4�����H���SH\X���/F�B�B �B(�A0�A8�D`�
8A0A(B BBBF��<����F�B�A �C(�F0w
(A ABBIv
(D ABBIt
(C ABBL�
(A ABBFx
(C ABBP\0d���RF�B�D �C(�D0�
(A ABBI�
(C ABBNt
(A ABBF8�d���hb�E�E �D(�C0�m(A BBB ������H F
B�
G�d���>D y	������] 	D���BA�n
QA@	t���VA�S�<\	����WB�B�B �A(�A0�[
(A BBBF��	ػ���
F�B�B �E(�A0�A8�DP�
8D0A(B BBBE�
8A0A(B BBBH
8A0A(B BBBJ~
8A0A(B BBBH4
��ZA�W�(P
D��n��C�F PE�A�@|
����E�C�F o
EAEX
AAFW
EAK�
���CK�O
Fb�
��8�
0��.L��?(x���]�A�D RAAJ��H���H0X
H d����H t
D�
F,�\��fB�A�G ��
CBA����:A�d
KEH����M[�V
�OL
Dt
Dm
KTD�H�o
Ae
AVt$����B�E�H �E(�A0�A8�D@l
8A0A(B BBBHj
8A0A(B BBBDH8F0A(B BBBH�8��#B�B�B �B(�A0�A8�D`�
8A0A(B BBBF��V@�h��E�A�D �
AAG_
CAES
CAIH@
��^F�B�E �B(�A0�A8�D`�
8A0A(B BBBJ�
��5DZ
A`�
�FR�B�I �A(�A0��
(A BBBJ{
(D BBBKh
(A BBBA�����aG�@(����[�l
IG
Ie
K`
HD�T�V
JQLl�����"B�B�B �B(�A0�A8�G�$
8A0A(B BBBA���bE�O
L{zRx�� �p��
8��H �
F8(, ���F�B�A �A(�G��
(A ABBK,d�!���E�D �
DF_
DE��$��3E�&GNU���� ^$��u���ʅڅڅ������������� �'�+�O�/�q�9�<�?���j�:�o�v�D�H�L�Q�T�J�_�e�i�l�n�T�y�~�������e�����������������*���������������g���ĆY������#���+���:���2���B���M���ȆӆՆ�����	���d�����������ǃ��Ճ��߃�����r���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`�����$��$��$��$��$��$��$��$�~$�x$��$��$��$��$��$��$��$��$�z$��$��$��$��$��$��$��$��$�z$��$��$��$��$��$��$��$��$�z$��$��$��$��$��$��$��$��$�|$`����`�`��`�`��`���`��`��`�`����`�`���`�`�`����`�`����`�`����`�`��`��`�`����`�`���```��`�`��`��`���`�`��`����`��`=`<`;`:`9`8`7`6`5`4`3`2`1`0`/`.`-`,�+�*�)�(�'�&�%�$�#�"�!� �������������������
���
�	��������=�<�;�:�9�8�7�6�5�4�3�2�1�0�/�.�-�,�+`+`*`)`(`'`&`%`$`#`"`!` ```````````````````
```
`	```````|`{`z`y`x`w`v`u`t`s`r`q`p`o`n`m`l`k`j`i`h`g`f`e`d`c`b`a```_`^`]`\`[`Z`Y`X`W`V`U`T`S`R`Q`P`O`N`M`L`K`J`I`H`G`F`E`D`C`B`A`@`?`>�|�{�z�y�x�w�v�u�t�s�r�q�p�o�n�m�l�k�j�i�h�g�f�e�d�c�b�a�`�_�^�]�\�[�Z�Y�X�W�V�U�T�S�R�Q�P�O�N�M�L�K�J�I�H�G�F�E�D�C�B�A�@�?�>`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�``~`}��������������������������������������������������������������~�}`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`��������������������������������������������������������������������������������������������������������������������`;`:`9`8`7`6`5`4`3`2`1`0`/`.`-`,`+`*`)`(`'`&`%`$`#`"`!` ```````````````````
```
`	``````````�`�`�`��;�:�9�8�7�6�5�4�3�2�1�0�/�.�-�,�+�*�)�(�'�&�%�$�#�"�!� �������������������
���
�	��������������W`W�V`V�U`U�T`T�S`S�R`R�Q`Q�P`P�O`O�N`N�M`M�L`L�K`K�J`J�I`I�H`H�G`G�F`F�E`E�D`D`C`B`A`@`?`>`=`<�C�B�A�@�?�>�=�<�v`v�t�s`s�r�q`p�o`o`n`m`k�j`j�i`i�h`h�g`g�f`f�e`e�d`d�c`c�b`b�a`a�```�_`_�^`^�]`]�\`\�[`[�Z`Z�Y`Y�X`X`w`v`u`t`r�p�n�m�l�k`w`v`u`t�r`q`o`n`m`l�w`v�u`t�r`q`o`n`m`l�`��`������`���`��`���`�~�}�|�{�z`z�y`y�x`x`��`�`�`�`�`��`�`�`�~`~`}`|`{`�`��`�`��`�`�`��`�~`~`}`|`{�`��`�`�`�`�`�`��`�~`~`}`|`{`�`��`�`�`�`�`�`��`�~`~`}`|`{`����@��@����������@����@��������@������@������@������@������@������@������@������@������@������@������@������@������@������@������@�������@������@������@������@������@������@������@������@������@������@������@������@������@������@������@������@������@������@������@������@������@������@����H�E@D�B@A�?@>�<@;�9@86�3@2�00@/�.�--@,�+�**@)�(�''@&�%�$$@#�"�!!@ ��@��@�@��@��@��@�
�@�
�		@��@��@��@���������@�����@���@��@���H�FE�CB�@?�=<�:9�6�43�10@/�.�--@,�+�**@)�(�''@&�%�$$@#�"�!!@ ��@��@��@��@��@��@�
�@�
�		@��@��@��@������@���������H�FE�CB�@?�=<�:9�7@53�10@/�.�--@,�+�**@)�(�''@&�%�$$@#�"�!!@ ��@��@��@��@��@��@�
�@�
�		@��@��@��@������@����������H@GE�CB�@?�=<�:9�7@53�10@/�.�--@,�+�**@)�(�''@&�%�$$@#�"�!!@ ��@��@��@��@��@��@�
�@�
�		@��@��@��@������@���������6EU`nx���
�^$^$���o`P�
��$�� ��	���o����o�o:���o&��$ �0�@�P�`�p������������������� �0�@�P�`�p������������������� �
BB����?�P  ���F���F ����F���F �����������������P�
��S��P2P��T ��� ����F���F���F���FD�������������� �(�6�D�U�	Q�	_�	h�	l�
x�
�
��
����
���
���߄����‡·݇�҄����
���[��*�3��j�@� M�!V�"˄#����� �P���� p
��$�P'���`����$D�c������ �(�6�D�	�
n���
�
z�����������҄����
��[��*�3��j� @�!M�"V�#˄����GA$3a1��!�GA$3p1067@��GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY��GA+GLIBCXX_ASSERTIONSnkf.so-2.2.10-35.el8.x86_64.debug��k�7zXZ�ִF!t/��']?�E�h=��ڊ�2N�f�fA�"�
��h2�kсˏ�ݘ�õ"�R�}�BV�E�I`
��}�z�UA�VYYѳ΄����!ᓬ��Ƣ>��݄|��)_�����~l���}v\;��b��P�\�Re��/��G��V]�쏱6
0�!�	�	h8Y8ks
�k�y,y��ri>��?�1�>��+̈́k���).��'S���S~$�} ��+��iyt��fLU0'@�>��ďnm5��r��u�8��qc>�!4Ǻ�Cy��R��L
oM�|���汘'gK�k�qS����x�߽;��:��3U�d���57����i<����J���"5X,�'K�4>G�)�C�f:�������{$����X�Y.]2�梜/�<H�$��j���,E�S6��=�(���KmD�`�m��rJg�;I�(c;8A_�uynm_�d��t+�ݼz	\��c.1�68�?}�2g�o/Q!A:�7�a7�%"���V�u]�!�ۓ��5���j�|���.cg��h�L�~���<f��|B�E��r^��ʹO��
<e�d\��wEפ�
*:��Z2ɝ㷈�Kj�&.���լaH�˯9Z㤅ײ'ڳw���� �JSg�r�o�]!E�8�M0�5M�Y�L�\�}�B�%��Ax��Q+�F�A�OIߞ�(9‘�zG�k�S�&�] 6=$�n�½�L���!t��(���뵍±��(�)��K��1�{��R!�,R+�*]f�|�()��Hs-�RN�`��D�%�R��edncx-1\�5�/ɞ&r�.\$B�|�N��o�C!���txkƿ��P�tƋc[!1�vL�=�;�!�IZ���0 V\����E}%���8M)�,
�y��Ւ��j9�P$���DS=(ؗ@�ͤ®��i}���P�7�X
��u
� �B~7a�:�C����!��b�fA��*>B !e��lB-�Q�s%R	��"
t@+�?N_�4�O%�1
90_����;�o,�\��ݗmC�R�ޯLkn����)J�@�@C%��̍�_l�����he�_F[?�daR���x��agg�l4�1��Y�FtF�UH�z>���׮|:�T�Q��|��EU&�HQ,0�Q����s-W0d��d�Q�N���*�B�|f�
HW}��]�Z����\?МPF�T*ͻ���aЏ�S;:�w�4OƧ`���5�H��O@Ţ�S����uA�(h���,�������,
�bq�C�_�^9	_�@	���3���v��Ȓn0U�d9�68����߷9ڜx����)�z��P$��wE!�����gط^'���/~��"(R��P%��چ��^4I��ݢ�W��f"P�ƾC`��0�{��Q�Cx#C����S�U5�y�1l	ei�s�lbÇ��
��5��X����@+� �|�G��ʰ�T�\�g����>0���"����@+��3F��{3#2?F�� �q��vJ"g��P31l4=j�op�����g��1]�ɭr�����/�� �i�j���),��j-�`Y�X1����F7�}9��|-�Pw�>V_I�Ej-�<�$�����N 06&6c�wr��[��r�;�><ѣXS�Ѯ.��PpBY��������N-�����C�����¢2�~A��`4�]�Z�">�w���:>�6Qz͉-i����w��E�zX�
�i?e{�-N�jBE�"
��n҇
�DPrO�.��zɎ��cd)�@�FVR�bW�%"g�ګ�~�f�IB�.�Kn�0d��:��ڱ�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``p(���0PP�8���o::�E���o��@T  ��^B����h����c�� n0�0�w@�@�Ӷ}��
�@�@�p� ��I�I��L�L��h\h\ �^$^�^$^� ^$ ^p^ ���$�� ���$��@��$� � �$ �X
 ���$x��& � �dx�H��("��\D�1lib64/ruby/2.2.0/x86_64-linux/strscan.so000075500000061200150402105720013215 0ustar00ELF> @@[@8	@xHxH MM M � �M�M �M   888$$XHXHXH  S�tdXHXHXH  P�td�>�>�>��Q�tdR�tdMM M ��GNU�}Z�
Q���c�)F�>�@`>AV`TdBE���|�qX�� �K�F�A,�jv�(_f�U�� |�� 
X��q�6��5q*����}��WCr, ��F"�9����P3X��Q R �Q __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonig_region_freeruby_xfreerb_gc_markonig_region_clearonig_region_setrb_check_typeddatarb_num2intrb_fix2intrb_eRangeErrorrb_raiserb_eArgErrorrb_string_valuerb_reg_region_copy__stack_chk_failrb_memerrorrb_scan_argsruby_xcalloconig_region_initrb_data_typed_object_allocrb_str_newrb_enc_copyrb_num2longrb_enc_getonig_name_to_backref_numberrb_eIndexErrorrb_enc_raiserb_sym2strrb_out_of_intrb_warningrb_enc_mbclenrb_check_typerb_reg_prepare_reonig_matchonig_searchonig_freeonig_region_memsizerb_str_catrb_str_dumprb_str_new_staticrb_obj_classrb_sprintfrb_funcallrb_str_lengthrb_str_appendInit_strscanrb_cObjectrb_define_classrb_eStandardErrorrb_define_class_underrb_const_definedrb_obj_freezerb_const_setrb_define_alloc_funcrb_define_private_methodrb_define_singleton_methodrb_define_methodrb_aliasrb_intern2libruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	ii
!M �M � M  M @M 4=HM PM �XM *�O �O �O �O �O +�O 4�O 5�O 6�O 7P  P (P 0P 8P @P HP 	PP 
XP `P hP 
pP xP �P �P �P �P �P �P �P �P �P �P �P �P �P �P �P  �P !Q "Q #Q $Q % Q &(Q '0Q (8Q )@Q *HQ ,PQ -XQ .`Q /hQ 0pQ 1xQ 2�Q 3�Q 7�Q 8�Q 9�Q :�Q ;�Q <�Q =��H��H�a; H��t��H����5�; �%�; ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4��������%=8 D���%58 D���%-8 D���%%8 D���%8 D���%8 D���%
8 D���%8 D���%�7 D���%�7 D���%�7 D���%�7 D���%�7 D���%�7 D���%�7 D���%�7 D���%�7 D���%�7 D���%�7 D���%�7 D���%�7 D���%�7 D���%�7 D���%�7 D���%}7 D���%u7 D���%m7 D���%e7 D���%]7 D���%U7 D���%M7 D���%E7 D���%=7 D���%57 D���%-7 D���%%7 D���%7 D���%7 D���%
7 D���%7 D���%�6 D���%�6 D���%�6 D���%�6 D���%�6 D���%�6 D���%�6 D���%�6 D���%�6 D���%�6 D���%�6 D���%�6 D���%�6 DH�=�6 H��6 H9�tH�n4 H��t	�����H�=i6 H�5b6 H)�H��H��H��?H�H�tH�U4 H��t��fD�����=%6 u+UH�=B4 H��tH�=n1 ����d�����5 ]������w������H������S1�H��H� ����H��[���@��H��s���UH�o SH��H��H�����H�K+KH��H��[1�1�]�2���f���UH��H�5�0 SH�����H�x��H���H��uA����H�KH�H�H�ց� H��x5H��u`H����H9�|5H�CH��H�H�D[]�f��;����f�H��u;H����H�y�H��2 H�5�H�81�����H�Q�f.�H�QH�y���H��2 H�5�H�81����ff.�f���SH��H�t$H�5�/ ���H�|$H���i���H�D$H�CH�#�H�CH��[�ff.���UH��SH��(H�t$H�5�/ dH�%(H�D$1��R���H�|$H�5v/ H���>���H9�t>H�H�p H�{ H�H�PH�SH�PH�SH�PH�S�n�����u.H�D$H�D$H�D$H�L$dH3%(H��uH��([]��L���������AVI��H�5�. AUA��H��ATUSH��H�� dH�%(H�D$1�H�l$���H��L�D$L��I��H�D��1����H���,���H�D$I�D$H�L$dH3%(uH�� H��[]A\A]A^����ff.�f���U�HH���SH�����H� �H��H�x ����H�CH��H��H��[H�. ]�T���@H��Ѓ���~+H��u H�����tH�������t%H	�H���H��s��ff.��USH��L�OI��� unH�����H9�|IH9�HN�I��H��H)�H��I�<1H������H�uH��H���~�����uH�����tH�uH���D���H��H��[]�f.�I�I�H9�|�H9�M�IHO�H)��f���AUATUSH��H�5- H������H�x��H��tw��tK��uT�؃���t,H��t&����H��4tH��ȃ���tg�����H�����H���H�����u7��t�H�HcU$H����H���H���[]A\A]�f�H��ȃ���us�� ��H��L�k��I��H������H�M K�T%L��H��H�E@H�x������dIc�I9���H��. M��D��H��H��H�01���������@���H���/���H�H��� �v���L�kL�c�w���HcU$Hc�H9��'���H�U(H�4�H�������H�U0H�MH��H��H��H�[]H�A\A]H�����H�. H�5�H�81����L���������SH�54+ ���H�pH��txH��H�H�H�KH��H��� tLH�VH9�}OH�KH��H��H��H�H�K����H�C0H�sH��H�H�C([H�H0�
���f.�H����H9�|��[�H�F- H�5H�81��5���D��S1�H��H�=G�*���H��[�1������SH�5d* �/���H�xH����H��H� �H�PH��� ��H�GH9�������H�KH�1�� ��H��H�y��H�H��H{���H�KH�sHc�H�
H��� utH����H9�H�KH��HO�H�H�S���H�C0H�sH��H�H�C([H�H0���@H����H9��c����[�f�H�yH�q�i���H�V�H�, H�5�H�81����f���UH�5D) SH���
���H��H�@H��t{H�H�s�� t!H�PH9�}$H��H��[]�J���f.�H����H9�|�1�H�=s�F���H�sH��H�����@��uH�����tH�sH�����H��H��[]�H�K+ H�5H�81��:�f.�UH��SH��L�GI�H��% uvH�����H9�|RL�H��H)�I9�HO�I�xH��tI�xH�H�����H�uH��H���=�����uH�����tH�uH������H��H��[]�f�I�H�f.�AWAVA��AUA��ATE��UH���SH��H��H�����H�5�' H����H�pH����H��H� �H��� ��H�FH;C��H�k@H����L�UI��I9��<L�C H�CH�sE��tsH��� �GH�PH�HH�H�E1�H��L��L�T$��L�T$I��H�E M9�u~H��H�E �H����H;C�w����H��[]A\A]A^A_�H��� ��H�HH�PH�L�T$H��H�M��jI��H��L���b�I��XZL�T$H�E M9�t�H����L���~�I�����M��x�H�sH�H�C0H�sE��t
H�H�H�SH�H�DE���U���H��H��[]A\A]A^A_���f�H�E ���fDH��H�H��H��<���DH�PH��Hփ����DH�}���L�}�P���H�w( H�5HH�81��f�H�=* H�5&1��Q���H��������H���������E1������f.���E1��1��}���ff.�f���E1�1�1��`�����E1�1ɺ�M���ff.�f���E1����*���f.���H������A���H�����������������A��1�����f.���A�1�1����ff.�f���A�1ɺ���f.���A����w������USH��H�5P$ H����H�HH����H�����H�H��H�H�u�� t+H�AH9�}.H�<H��H)�H9�H��HO�H��[]�c���H����H9�|�1�H�=c�6�H�uH��H������uH�����tH�uH�����H��H��[]�H���x�H�MH���e���H�%& H�5�H�81���@��U1�H��SH��H�=cH����H��H��H��[]������H��tH��H�� ���H��H��(Ð1��ff.�f�H�H�� urH����H9�~oH)�SH��~<H��twH�H���6�H�5OH��H���/�H��[���fDH��tKH�H�H����H��H��[��H�GH9��1�H�=��f�H���f.�H���f.���AWH�5C" AVAUATUH��SH����H�xH��H����H�PH��� ��H�GL�cH9���H���H�����H�=c�	��I��H�CH�H�H�CH�pH� �DH�L����L����H�sH�{I�����I��H�CH��� ��H����I��H�[H����M��M��L��H��H��H�=1�����uH�����tH��L��H�D$��H�D$H��[]A\A]A^A_�H��L�c��H9�����H����H�=�H��1��{��u��D1�����I��H�CH��� tjL�hH�[H�����M��L��H�=ZH��H��1��0���Q���H��[]A\A]A^A_�f�L�h�����H�p����H����I���@1�1��w�H�S1�I���p���f�H���H�H�=�H��1�������H���������H��H�sH�D$���H�D$����PXH�5O
H��H�l" H�81��b�f���H��H�5� �|�H�HH��t3H�H�p�� tH�Q�H9�}H)�H�DH���H���������f.���S1�H��H�=�
��H��[�@��H��H�51 ��H�xt'��tH�P0H�@(H�+Hc�H�TH��H�������f���H��H�5� ��H�xtH����HE�H�������ff.����H��H�5� �l�H�PH��t3H�HH��� tH�BH9���HL�H���@H�������z���f.���H��H�5A ��H�PH��t3H�HH��� tH�BH9���HL�H���@H����������f.���S1�H��H�=_��H��[�@��H��H�5� ��H�HH��thH�pH�H�ǁ� t@H�Q�H9�&�H��tH��u3H���|1�
��HE�H����H����H���@H�I���e���D��SH�54 H����H�xtH���t,H�HH��H�H�HH��[�H�� H�5s
H�81���H�=�! H�5�1��|�ff.����H��H�5� ��H�xtH�@H��H�D�����f���H��H�5� �\�H�@H��tH���������SH�5d H���,�H�HH��t6H��� tH�QH� �H�PH��[�f�H��H� ���H�PH��[��7������S1�H��H�=�
��H��[�@��SH�5� H����H�xtH�@H� �H��[�����ff.�@��H��H�5� �l�H�HH��tL�t=H��� t%H�QH�H0H�pH��H1H����f.�H��������H����a������H��H�51 ��H�xt/�t H�H(H�P1�H��HH���G���H����������H��H�5� ��H�xt7�t(H�P0H�pH��H�
H�H��H�H(H1H�����@�H������f���H��H�5� �L�H�xH��t-Lc@H�5 �1��O�D��H��H�����`�����USH��H��H�t$H�5' ���H�xt%H��H�|$��H�}H�t$��H��H��[]��������USH��H�� H���VH�w H���qH�-/ H�=�	H�i H�u�x�H�) H�5~	H��H�X H���H�}H��H�: �5������H�=c	��H��H����H�5� H���qH�= H�����0H�=F�Q�H��H���v�H�5� H���H�=� H���g�H�=� H�5���4�H�=� �����H���H�5����H�=� �H��H�5����H�=g 1�H�6�H�5��J�H�=K 1�H�����H�5���H�=/ 1�H���H�5����H�= 1�H�2���H�5����H�=� 1�H�����H�5r��H�=� �H��H�5Z��H�=� �H�����H�5C�|�H�=� �H�����H�5+�]�H�=~ 1�H����H�5�A�H�=b �H���H�5��"�H�=C 1�H���H�5���H�=' 1�H�����H�5����H�= �H�G�H�5����H�=� �H���H�5��H�=� �H�Y�H�5|��H�=� �H��H�5b�n�H�=� �H���H�5J�O�H�=p �H���H�51�0�H�=Q �H�M�H�5��H�=2 �H��H�5���H�= �H���H�5����H�=� �H���H�5���H�=� �H�Q�H�5���H�=� 1�H�u�H�5��y�H�=� 1�H���H�5��]�H�=~ 1�H��H�5��A�H�=b �H�.�H�5y�"�H�=C �H���H�5_��H�=$ 1�H����H�5H���H�= 1�H�g���H�53���H�� H���H�5� H����H�=� H���,�H�=� 1�H�����H�5��H�=� 1�H���H�5��d�H�=� 1�H����H�5��H�H�=i 1�H�����H�5��,�H�=M 1�H�����H�5���H�=1 1�H� ���H�5����H�= �H�!�H�5����H�=� 1�H���H�5l��H�=� 1�H�Y���H�5Z��H�=� 1�H���H�5I��H�=� 1�H��H�52�e�H�=� 1�H�U�H�5 �I�H�=j H��1�[H�D�H�5]�'���	H�=T��H��H� H� H��������	H�=3���H�� �r�����H�=:��H��H�� �����H�=��H��H�� �����H�=��o�H��H�m �����H�=��O�H��H�U �o���H�i H�}H���
���+�����H��H���uninitialized StringScanner objectundefined group name reference: %.*sStringScanner#getbyte is obsolete; use #get_byte insteadStringScanner#peep is obsolete; use #peek insteadStringScanner#restsize is obsolete; use #rest_size insteadStringScanner#empty? is obsolete; use #eos? insteadunscan failed: previous match record not existStringScanner#clear is obsolete; use #terminate instead$Id: strscan.c 48672 2014-12-01 21:30:58Z nobu $index out of range11regexp buffer overflow...#<%li (uninitialized)>#<%li fin>#<%li %ld/%ld @ %li>#<%li %ld/%ld %li @ %li>ScanErrorbytesliceStringScanner0.7.0VersionIdinitializeinitialize_copymust_C_versionresetterminateclearstringstring=concat<<pos=charpospointerpointer=skipmatch?checkscan_fullscan_untilskip_untilexist?check_untilsearch_fullgetchget_bytegetbytepeekpeepunscanbeginning_of_line?bol?eos?empty?rest?matched?matchedmatched_size[]pre_matchpost_matchrestrest_sizerestsizeinspect;�8��������$,��8L��T\��h����|�������|���Ll�t���\��<���(�D,�h��������<��P�d,�xL��l����������������<<�dl�|,������(�D<�`��|���,�������<���$��@�\l�����<������	<�4	��`	zRx�$���`FJw�?:*3$"D���P\���p���E�R����
$����.A�E�J PDE(�����E�K�D P
HAC����BE�D wA(����E�D�D@�
AAA@@l���F�L�H �A(�A0�GP_
0D(A BBBA$����LE�N�D aGH����D(�,���A�A�D j
DAKL�����F�B�A �A(�N0�
(F ABBJ�
(D AEBH <0���E�f
UR
A`���E�U |���E��
OV
J4����E�H�D k
DAOH
DAA(�D��A�D�D x
DAJl��?B�B�E �E(�D0�I8�JP�
8A0A(B BBBD`XH`RXAPb
8D0A(B BBBNt��&���������������)�������(�4<��E�A�N R
AAHG
DAD$t��/E�F�N IGA���#MM$����^�w
�K[�e�d���hF�I�B �B(�A0�D8�DP
8A0A(B BBBD�
8A0A(B BBBJD��AAK`��VH|
D|��E�U���GHy
A��4Hf
A�,�VH{
E�p�VH{
E��E�U$���H`
H@,�dE�q
A\��.H[
Fx��(HZ
A ���YE�q
JS
A���E�U���1E�f
A��oHy
OY
A\�OHl
LI
A0��WHw
II
AP��PH{
H(l�OE�A�G0w
DAA(�$�XE�A�D H
COLGNU��� M 4=�*������+P
�:M M ���o`��
XP �X�
�	���o�
���o�o 
���o�M �������� 0@P`p�������� 0@P`p�������� 0@P`p�����GA$3a1P�:GA$3p1067��:GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY��GA+GLIBCXX_ASSERTIONSstrscan.so-2.2.10-35.el8.x86_64.debug��Q�7zXZ�ִF!t/��'�]?�E�h=��ڊ�2N�.�t����_M��R*�<��Ց��ŧ��b`��E~aY�yX����E
��oL�%�T����wQFb)-�Ԫnc)���Ka&
cmj��S��1�nK�*Ys#&����?M�a�T㠨���F@BJ~���8����U2b��6D�~��ϑ"{F�,�8�H�8ɲ���q�V�;�KW��}�jwl�[,9!�K�j����r��ץ����M�vi���/�Գ�}�?/  ]G@55��E�+ʦ<�
.�r�'u�%Ny����a;Z��_��2��!OeAť Ym���s5	K��1.�Q��ڐ{(�r��]���k^��rv_~7}�� �X���f�=԰%�CM"/>-nz*��tm����p�b��?��.�g����b��D�n+Z���U������
s�� �KA,l��a��K>������v�
�oT
��7c��!sRO>ݨ��a������C���Y(C+�[�<f}eW���E�_�a%���U�Ș�j�õr=j����r��o|��Ǘ?���/p>�[κ>k���3R����9P�����æM�3�cFm��S����҃�e�ӗ���,ON�+EvXj&O㐼�#Y˸W�3o�CxC������63M��Й,h�^j�j�8�&	r�ި��:ۇ��Wih�o�R�iı�RS���Ox�=�����:�æ�N0����,a*A+� �����LI�n�~Z@��%�(D�;Vs7c�J�:��N�1���sc�s)�z���ID{-p��@�UQ��Ζ����a��y��ь*�><v��{��=K�j�q,9�UF[�X1���D�hp7/M��-^��V�l\�E��Q��|T�[Vzܐ,Z'f;�����E]�'�R>2�(���;P�*�…��i��Z���됄(g��+S�E���rwo�?m7���t���ȧ��eģ��ѣ�D،��D#��|9r`�M烯p/��*��<����B��M+��_�m��>L�158��c�t�}w.��!2�bӦJi�ԗx��ziv�赢�n���:H��3��L�_ײƪ7FӚ����J��vĝ�
��p�>
����l{ޢ���:��C��:�����}�"뺝H�f���6+4Δ�^�TwWえ>;�̌t#�h9�-^5���;�P�5lT5#<It��<kO���E��aZ�6��V�-S��hF�Vߖ����M��&��a�z�d�p�x݁��(C&�p�ҳ���P�_�.�Ԡ6QA �柍�%u��We4�0��[n�^QS�wq�+���>k�\�.���W�~���ʷ�=�;�΋R��4�ig�~$~@*�7��D  j7�D��e �Ti������zM`�L! ��8Wh�����V����2g�Q��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��00��X8���o 
 
�E���o�
�
0T�
�
�^BXX�hPPcpp`n��Pw  �}�:�:
�2�:�:��>�>���@�@��XHXH �M M�M M� M  Mh ��M �M ��O �OH�P P���Q �QP�R`�QH
T,4T�Z+lib64/ruby/2.2.0/x86_64-linux/rbconfig.rb000064400000032002150402105720013306 0ustar00
# This file was created by mkconfig.rb when ruby was built.  Any
# changes made to this file will be lost the next time ruby is built.

module RbConfig
  RUBY_VERSION.start_with?("2.2.10"[/^[0-9]+[.][0-9]+[.]/]) or
    raise "ruby lib version (2.2.10) doesn't match executable version (#{RUBY_VERSION})"

  TOPDIR = File.dirname(__FILE__).chomp!("/lib64/ruby/2.2.0/x86_64-linux")
  DESTDIR = '' unless defined? DESTDIR
  CONFIG = {}
  CONFIG["DESTDIR"] = DESTDIR
  CONFIG["MAJOR"] = "2"
  CONFIG["MINOR"] = "2"
  CONFIG["TEENY"] = "0"
  CONFIG["PATCHLEVEL"] = "489"
  CONFIG["INSTALL"] = '/usr/bin/install -c'
  CONFIG["EXEEXT"] = ""
  CONFIG["prefix"] = (TOPDIR || DESTDIR + "/opt/alt/ruby22")
  CONFIG["ruby_install_name"] = "$(RUBY_BASE_NAME)"
  CONFIG["RUBY_INSTALL_NAME"] = "$(RUBY_BASE_NAME)"
  CONFIG["RUBY_SO_NAME"] = "$(RUBY_BASE_NAME)"
  CONFIG["DESTDIR"] = ""
  CONFIG["exec"] = "exec"
  CONFIG["ruby_pc"] = "alt-ruby22.pc"
  CONFIG["PACKAGE"] = "ruby"
  CONFIG["BUILTIN_TRANSSRCS"] = " newline.c"
  CONFIG["USE_RUBYGEMS"] = "YES"
  CONFIG["MANTYPE"] = "doc"
  CONFIG["NROFF"] = "/usr/bin/nroff"
  CONFIG["vendorarchhdrdir"] = "$(vendorhdrdir)/$(sitearch)"
  CONFIG["sitearchhdrdir"] = "$(sitehdrdir)/$(sitearch)"
  CONFIG["rubyarchhdrdir"] = "$(rubyhdrdir)/$(arch)"
  CONFIG["vendorhdrdir"] = "$(rubyhdrdir)/vendor_ruby"
  CONFIG["sitehdrdir"] = "$(rubyhdrdir)/site_ruby"
  CONFIG["rubyhdrdir"] = "$(includedir)/$(RUBY_VERSION_NAME)"
  CONFIG["RUBY_SEARCH_PATH"] = ""
  CONFIG["UNIVERSAL_INTS"] = ""
  CONFIG["UNIVERSAL_ARCHNAMES"] = ""
  CONFIG["configure_args"] = " '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '--prefix=/opt/alt/ruby22' '--exec-prefix=/opt/alt/ruby22' '--bindir=/opt/alt/ruby22/bin' '--sbindir=/opt/alt/ruby22/sbin' '--sysconfdir=/etc' '--datadir=/opt/alt/ruby22/share' '--includedir=/opt/alt/ruby22/include' '--libdir=/opt/alt/ruby22/lib64' '--libexecdir=/opt/alt/ruby22/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/opt/alt/ruby22/share/man' '--infodir=/opt/alt/ruby22/share/info' '--enable-rpath' '--enable-shared' '--with-openssl-dir=/opt/alt/openssl' '--with-ruby-pc=alt-ruby22.pc' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl/include' 'LDFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -L/opt/alt/openssl/lib64 -L/opt/alt/ruby22/lib64 -Wl,-rpath=/opt/alt/openssl/lib64,-rpath=/opt/alt/ruby22/lib64' 'CXXFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'"
  CONFIG["vendorarchdir"] = "$(vendorlibdir)/$(sitearch)"
  CONFIG["vendorlibdir"] = "$(vendordir)/$(ruby_version)"
  CONFIG["vendordir"] = "$(rubylibprefix)/vendor_ruby"
  CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)"
  CONFIG["sitelibdir"] = "$(sitedir)/$(ruby_version)"
  CONFIG["sitedir"] = "$(rubylibprefix)/site_ruby"
  CONFIG["rubyarchdir"] = "$(rubylibdir)/$(arch)"
  CONFIG["rubylibdir"] = "$(rubylibprefix)/$(ruby_version)"
  CONFIG["ruby_version"] = "2.2.0"
  CONFIG["sitearch"] = "$(arch)"
  CONFIG["arch"] = "x86_64-linux"
  CONFIG["sitearchincludedir"] = "$(includedir)/$(sitearch)"
  CONFIG["archincludedir"] = "$(includedir)/$(arch)"
  CONFIG["sitearchlibdir"] = "$(libdir)/$(sitearch)"
  CONFIG["archlibdir"] = "$(libdir)/$(arch)"
  CONFIG["libdirname"] = "libdir"
  CONFIG["RUBY_EXEC_PREFIX"] = "/opt/alt/ruby22"
  CONFIG["RUBY_LIB_VERSION"] = ""
  CONFIG["RUBY_LIB_VERSION_STYLE"] = "3\t/* full */"
  CONFIG["RI_BASE_NAME"] = "ri"
  CONFIG["ridir"] = "$(datarootdir)/$(RI_BASE_NAME)"
  CONFIG["rubysitearchprefix"] = "$(rubylibprefix)/$(sitearch)"
  CONFIG["rubyarchprefix"] = "$(rubylibprefix)/$(arch)"
  CONFIG["MAKEFILES"] = "Makefile GNUmakefile"
  CONFIG["PLATFORM_DIR"] = ""
  CONFIG["THREAD_MODEL"] = "pthread"
  CONFIG["SYMBOL_PREFIX"] = ""
  CONFIG["EXPORT_PREFIX"] = ""
  CONFIG["COMMON_HEADERS"] = ""
  CONFIG["COMMON_MACROS"] = ""
  CONFIG["COMMON_LIBS"] = ""
  CONFIG["MAINLIBS"] = ""
  CONFIG["ENABLE_SHARED"] = "yes"
  CONFIG["DLDLIBS"] = " -lc"
  CONFIG["SOLIBS"] = "$(LIBS)"
  CONFIG["LIBRUBYARG_SHARED"] = "-Wl,-R$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)"
  CONFIG["LIBRUBYARG_STATIC"] = "-Wl,-R$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)-static"
  CONFIG["LIBRUBYARG"] = "$(LIBRUBYARG_SHARED)"
  CONFIG["LIBRUBY"] = "$(LIBRUBY_SO)"
  CONFIG["LIBRUBY_ALIASES"] = "lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so"
  CONFIG["LIBRUBY_SO"] = "lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY)"
  CONFIG["LIBRUBY_A"] = "lib$(RUBY_SO_NAME)-static.a"
  CONFIG["RUBYW_INSTALL_NAME"] = ""
  CONFIG["rubyw_install_name"] = ""
  CONFIG["EXTDLDFLAGS"] = ""
  CONFIG["EXTLDFLAGS"] = ""
  CONFIG["strict_warnflags"] = "-std=iso9899:1999"
  CONFIG["warnflags"] = "-Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat"
  CONFIG["debugflags"] = "-ggdb3"
  CONFIG["optflags"] = "-O3 -fno-fast-math"
  CONFIG["cxxflags"] = " $(optflags) $(debugflags) $(warnflags)"
  CONFIG["cflags"] = " $(optflags) $(debugflags) $(warnflags)"
  CONFIG["cppflags"] = ""
  CONFIG["NULLCMD"] = ":"
  CONFIG["DLNOBJ"] = "dln.o"
  CONFIG["INSTALLDOC"] = "all"
  CONFIG["CAPITARGET"] = "nodoc"
  CONFIG["RDOCTARGET"] = "rdoc"
  CONFIG["DTRACE_REBUILD"] = ""
  CONFIG["DTRACE_OBJ"] = ""
  CONFIG["DTRACE_EXT"] = "dmyh"
  CONFIG["EXECUTABLE_EXTS"] = ""
  CONFIG["ARCHFILE"] = ""
  CONFIG["LIBRUBY_RELATIVE"] = "no"
  CONFIG["EXTOUT"] = ".ext"
  CONFIG["RUNRUBY_COMMAND"] = "$(MINIRUBY) $(srcdir)/tool/runruby.rb --extout=$(EXTOUT) $(RUNRUBYOPT)"
  CONFIG["PREP"] = "miniruby$(EXEEXT)"
  CONFIG["BTESTRUBY"] = "$(MINIRUBY)"
  CONFIG["CROSS_COMPILING"] = "no"
  CONFIG["TEST_RUNNABLE"] = "yes"
  CONFIG["rubylibprefix"] = "$(libdir)/$(RUBY_BASE_NAME)"
  CONFIG["setup"] = "Setup"
  CONFIG["ENCSTATIC"] = ""
  CONFIG["EXTSTATIC"] = ""
  CONFIG["STRIP"] = "strip -S -x"
  CONFIG["TRY_LINK"] = ""
  CONFIG["LIBPATHENV"] = "LD_LIBRARY_PATH"
  CONFIG["RPATHFLAG"] = " -Wl,-R%1$-s"
  CONFIG["LIBPATHFLAG"] = " -L%1$-s"
  CONFIG["LINK_SO"] = ""
  CONFIG["ASMEXT"] = "S"
  CONFIG["LIBEXT"] = "a"
  CONFIG["DLEXT2"] = ""
  CONFIG["DLEXT"] = "so"
  CONFIG["LDSHAREDXX"] = "$(CXX) -shared"
  CONFIG["LDSHARED"] = "$(CC) -shared"
  CONFIG["CCDLFLAGS"] = "-fPIC"
  CONFIG["STATIC"] = ""
  CONFIG["ARCH_FLAG"] = "-m64"
  CONFIG["DLDFLAGS"] = ""
  CONFIG["ALLOCA"] = ""
  CONFIG["codesign"] = ""
  CONFIG["POSTLINK"] = ":"
  CONFIG["WERRORFLAG"] = "-Werror"
  CONFIG["CHDIR"] = "cd -P"
  CONFIG["RMALL"] = "rm -fr"
  CONFIG["RMDIRS"] = "rmdir --ignore-fail-on-non-empty -p"
  CONFIG["RMDIR"] = "rmdir --ignore-fail-on-non-empty"
  CONFIG["CP"] = "cp"
  CONFIG["RM"] = "rm -f"
  CONFIG["PKG_CONFIG"] = ""
  CONFIG["PYTHON"] = ""
  CONFIG["DOXYGEN"] = "doxygen"
  CONFIG["DOT"] = ""
  CONFIG["DTRACE"] = ""
  CONFIG["MAKEDIRS"] = "/usr/bin/mkdir -p"
  CONFIG["MKDIR_P"] = "/usr/bin/mkdir -p"
  CONFIG["INSTALL_DATA"] = "$(INSTALL) -m 644"
  CONFIG["INSTALL_SCRIPT"] = "$(INSTALL)"
  CONFIG["INSTALL_PROGRAM"] = "$(INSTALL)"
  CONFIG["SET_MAKE"] = ""
  CONFIG["LN_S"] = "ln -s"
  CONFIG["NM"] = "nm"
  CONFIG["DLLWRAP"] = ""
  CONFIG["WINDRES"] = ""
  CONFIG["OBJCOPY"] = ":"
  CONFIG["OBJDUMP"] = "objdump"
  CONFIG["ASFLAGS"] = ""
  CONFIG["AS"] = "as"
  CONFIG["AR"] = "ar"
  CONFIG["RANLIB"] = "ranlib"
  CONFIG["try_header"] = ""
  CONFIG["CC_VERSION"] = "$(CC) -v"
  CONFIG["COUTFLAG"] = "-o "
  CONFIG["OUTFLAG"] = "-o "
  CONFIG["CPPOUTFILE"] = "-o conftest.i"
  CONFIG["GNU_LD"] = "yes"
  CONFIG["LD"] = "ld"
  CONFIG["GCC"] = "yes"
  CONFIG["EGREP"] = "/usr/bin/grep -E"
  CONFIG["GREP"] = "/usr/bin/grep"
  CONFIG["CPP"] = "$(CC) -E"
  CONFIG["CXXFLAGS"] = "-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection"
  CONFIG["OBJEXT"] = "o"
  CONFIG["CPPFLAGS"] = " $(DEFS) $(cppflags)"
  CONFIG["LDFLAGS"] = "-L. -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -L/opt/alt/openssl/lib64 -L/opt/alt/ruby22/lib64 -Wl,-rpath=/opt/alt/openssl/lib64,-rpath=/opt/alt/ruby22/lib64 -fstack-protector -rdynamic -Wl,-export-dynamic"
  CONFIG["CFLAGS"] = "-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl/include -fPIC"
  CONFIG["CXX"] = "g++"
  CONFIG["CC"] = "gcc"
  CONFIG["NACL_LIB_PATH"] = ""
  CONFIG["NACL_SDK_VARIANT"] = ""
  CONFIG["NACL_SDK_ROOT"] = ""
  CONFIG["NACL_TOOLCHAIN"] = ""
  CONFIG["target_os"] = "linux"
  CONFIG["target_vendor"] = "redhat"
  CONFIG["target_cpu"] = "x86_64"
  CONFIG["target"] = "x86_64-redhat-linux-gnu"
  CONFIG["host_os"] = "linux-gnu"
  CONFIG["host_vendor"] = "redhat"
  CONFIG["host_cpu"] = "x86_64"
  CONFIG["host"] = "x86_64-redhat-linux-gnu"
  CONFIG["RUBY_VERSION_NAME"] = "$(RUBY_BASE_NAME)-$(ruby_version)"
  CONFIG["RUBYW_BASE_NAME"] = "rubyw"
  CONFIG["RUBY_BASE_NAME"] = "ruby"
  CONFIG["build_os"] = "linux-gnu"
  CONFIG["build_vendor"] = "redhat"
  CONFIG["build_cpu"] = "x86_64"
  CONFIG["build"] = "x86_64-redhat-linux-gnu"
  CONFIG["RUBY_PROGRAM_VERSION"] = "2.2.10"
  CONFIG["HAVE_BASERUBY"] = "no"
  CONFIG["target_alias"] = ""
  CONFIG["host_alias"] = "x86_64-redhat-linux-gnu"
  CONFIG["build_alias"] = "x86_64-redhat-linux-gnu"
  CONFIG["LIBS"] = "-lpthread -ldl -lcrypt -lm "
  CONFIG["ECHO_T"] = ""
  CONFIG["ECHO_N"] = "-n"
  CONFIG["ECHO_C"] = ""
  CONFIG["DEFS"] = ""
  CONFIG["mandir"] = "$(DESTDIR)/opt/alt/ruby22/share/man"
  CONFIG["localedir"] = "$(datarootdir)/locale"
  CONFIG["libdir"] = "$(exec_prefix)/lib64"
  CONFIG["psdir"] = "$(docdir)"
  CONFIG["pdfdir"] = "$(docdir)"
  CONFIG["dvidir"] = "$(docdir)"
  CONFIG["htmldir"] = "$(docdir)"
  CONFIG["infodir"] = "$(DESTDIR)/opt/alt/ruby22/share/info"
  CONFIG["docdir"] = "$(datarootdir)/doc/$(PACKAGE)"
  CONFIG["oldincludedir"] = "/usr/include"
  CONFIG["includedir"] = "$(DESTDIR)/opt/alt/ruby22/include"
  CONFIG["localstatedir"] = "$(DESTDIR)/var"
  CONFIG["sharedstatedir"] = "$(DESTDIR)/var/lib"
  CONFIG["sysconfdir"] = "$(DESTDIR)/etc"
  CONFIG["datadir"] = "$(DESTDIR)/opt/alt/ruby22/share"
  CONFIG["datarootdir"] = "$(prefix)/share"
  CONFIG["libexecdir"] = "$(DESTDIR)/opt/alt/ruby22/libexec"
  CONFIG["sbindir"] = "$(DESTDIR)/opt/alt/ruby22/sbin"
  CONFIG["bindir"] = "$(exec_prefix)/bin"
  CONFIG["exec_prefix"] = "$(DESTDIR)/opt/alt/ruby22"
  CONFIG["PACKAGE_URL"] = ""
  CONFIG["PACKAGE_BUGREPORT"] = ""
  CONFIG["PACKAGE_STRING"] = ""
  CONFIG["PACKAGE_VERSION"] = ""
  CONFIG["PACKAGE_TARNAME"] = ""
  CONFIG["PACKAGE_NAME"] = ""
  CONFIG["PATH_SEPARATOR"] = ":"
  CONFIG["SHELL"] = "/bin/sh"
  CONFIG["archdir"] = "$(rubyarchdir)"
  CONFIG["topdir"] = File.dirname(__FILE__)
  MAKEFILE_CONFIG = {}
  CONFIG.each{|k,v| MAKEFILE_CONFIG[k] = v.dup}
  def RbConfig::expand(val, config = CONFIG)
    newval = val.gsub(/\$\$|\$\(([^()]+)\)|\$\{([^{}]+)\}/) {
      var = $&
      if !(v = $1 || $2)
	'$'
      elsif key = config[v = v[/\A[^:]+(?=(?::(.*?)=(.*))?\z)/]]
	pat, sub = $1, $2
	config[v] = false
	config[v] = RbConfig::expand(key, config)
	key = key.gsub(/#{Regexp.quote(pat)}(?=\s|\z)/n) {sub} if pat
	key
      else
	var
      end
    }
    val.replace(newval) unless newval == val
    val
  end
  CONFIG.each_value do |val|
    RbConfig::expand(val)
  end

  # returns the absolute pathname of the ruby command.
  def RbConfig.ruby
    File.join(
      RbConfig::CONFIG["bindir"],
      RbConfig::CONFIG["ruby_install_name"] + RbConfig::CONFIG["EXEEXT"]
    )
  end
end
CROSS_COMPILING = nil unless defined? CROSS_COMPILING
lib64/ruby/2.2.0/x86_64-linux/fiddle.so000075500000122620150402105720012773 0ustar00ELF>�3@P�@8	@(�(� ЊЊ Њ (� h�h� h� 00888$$���  S�td���  P�td�v�v�v,,Q�tdR�tdЊЊ Њ 00GNU���p���c���_�mjŔhr���B@(�@*4rswx|}~�������O� �>=~@��v��6�s���qX�d�>Ĭ
����9��|}9ҝ���BE��@��
��Z0F��p��`�e�Gc[29uM_� }C+�zn���0�	sl��� ��:��(F�C9]�;3D��`�h�/{���_VUO��?�|� �&���No
��&D��s/���J��~�?�)��MW2����b��m��
, ��F"`��U�R�h� g�n�m`>�| a==�D��� �<�� � H� nW�� �`� H��Jr��� �Lm�� bX� ��9��0K?/�;�p� �`� �pK �x� __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_check_typeddataruby_xfreedlcloserb_string_valuerb_check_safe_objrb_string_value_cstrrb_securedlerrordlsymrb_uint2bigrb_eFiddleErrorrb_raiserb_scan_argsrb_bugdlopenrb_block_given_prb_fix2intrb_yieldrb_ensurerb_num2int__stack_chk_failruby_xcallocrb_cHandlerb_data_typed_object_allocrb_freeze_singleton_classInit_fiddle_handlerb_cObjectmFiddlerb_define_class_underrb_define_alloc_funcrb_define_singleton_methodrb_define_constrb_define_methodint_to_ffi_typeffi_type_sint64ffi_type_uint64ffi_type_floatffi_type_voidffi_type_pointerffi_type_uint8ffi_type_uint16ffi_type_uint32ffi_type_doubleffi_type_sint8ffi_type_sint16ffi_type_sint32rb_eRuntimeErrorvalue_to_genericrb_num2ullrb_num2dblrb_num2uintrb_Integerrb_num2longrb_num2llrb_num2ulonggeneric_to_valuerb_const_getrb_intern2rb_float_newrb_ull2inumrb_funcallrb_ll2inumrb_int2bigmunmapclosure_data_typemmapffi_raw_sizerb_check_typerb_gc_writebarrier_unprotectrb_iv_setffi_prep_cifcallbackffi_prep_closuremprotectrb_sys_failrb_out_of_intrb_iv_getrb_ary_tmp_newrb_ary_pushrb_funcallvInit_fiddle_closurecFiddleClosurerb_fiddle_freerb_fiddle_ptr2valueruby_xreallocruby_xmallocInit_fiddlerb_define_modulerb_eStandardErrorrb_str_new_staticrb_define_module_functionInit_fiddle_functionInit_fiddle_pointerrb_gc_markrb_tainted_str_newrb_obj_classrb_sprintfrb_ary_newrb_fiddle_new_functionrb_cPointerrb_cIOrb_obj_is_kind_ofrb_io_taint_checkrb_io_check_closedrb_io_stdio_filerb_cStringrb_string_value_ptrrb_check_funcallrb_eTypeErrormemcpyrb_tainted_str_new_cstrmemsetfunction_data_typerb_id2symrb_eArgErrorrb_safe_levelffi_call__errno_locationrb_free_tmp_bufferrb_cFalseClassrb_alloc_tmp_bufferrb_cFixnumrb_cFloatrb_cTrueClassrb_cSymbolrb_eSecurityErrorrb_hash_foreachcFiddleFunctionrb_class_new_instancelibruby.so.2.2libdl.so.2libffi.so.6libpthread.so.0libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.14GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64� ui	�@���!ui	ii
,�ui	Њ `4؊  4� � � �o�  5� p4`� Fqp� �@x� �A�� ;uȋ 0RЋ R؋ Q � .v0� `d8� �d�� �� �� r�� 	�� ��� Ȏ Ў ؎ � � � �� � y� �� �� # � '(� *0� -8� 0@� �H� |P� 2X� 4`� 6h� 8p� 9x� ��� B�� C�� G�� ��� S�� U�� `�� ��� fȏ vЏ h؏ i� q�  � (� 0� x8� @� H� P� 
X� `� h� 
p� sx� �� �� �� t�� �� �� �� �� �� Ȑ А  ؐ !� z� "� #�� $� %� &� (� ) � �(� +0� ,8� .@� /H� �P� uX� 1`� 3h� 5p� 7x� :�� ;�� <�� =�� >�� ?�� @�� A�� D�� Eȑ FБ Hؑ I� J� K� L�� M� N� O� P� Q � R(� T0� }8� V@� WH� XP� YX� Z`� [h� \p� ]x� ^�� _�� a�� b�� c�� d�� e�� g�� i�� jȒ kВ lؒ m� n� o� p��H��H�Ig H��t��H����5�g �%�g ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1�������%b D���%b D���%
b D���%b D���%�a D���%�a D���%�a D���%�a D���%�a D���%�a D���%�a D���%�a D���%�a D���%�a D���%�a D���%�a D���%�a D���%�a D���%�a D���%�a D���%}a D���%ua D���%ma D���%ea D���%]a D���%Ua D���%Ma D���%Ea D���%=a D���%5a D���%-a D���%%a D���%a D���%a D���%
a D���%a D���%�` D���%�` D���%�` D���%�` D���%�` D���%�` D���%�` D���%�` D���%�` D���%�` D���%�` D���%�` D���%�` D���%�` D���%�` D���%�` D���%}` D���%u` D���%m` D���%e` D���%]` D���%U` D���%M` D���%E` D���%=` D���%5` D���%-` D���%%` D���%` D���%` D���%
` D���%` D���%�_ D���%�_ D���%�_ D���%�_ D���%�_ D���%�_ D���%�_ D���%�_ D���%�_ D���%�_ D���%�_ D���%�_ D���%�_ D���%�_ D���%�_ D���%�_ D���%}_ D���%u_ D���%m_ D���%e_ D���%]_ D���%U_ D���%M_ D���%E_ DH�=A_ H�:_ H9�tH��Z H��t	�����H�=_ H�5
_ H)�H��H��H��?H�H�tH��[ H��t��fD�����=�^ u+UH�=�[ H��tH�=�V ����d�����^ ]������w������1�H����H���ff.�@��H��H�5aV �|����xH�H��H�Ѓ��f.���H��H�51V �L����@�H���ff.���H��H�5V �����@�H���ff.���SH��H�?H��t�S��t�C��uH��[�Y���f����H��[�B���f�UH��SH��H�\$H�t$H���U���H���=���H������H�������H��H���x���H�����H��u2H��t-H��������?H9�wH��H�D[]�H���`���H��[]�H��X H�T$H�569H�81��l���ff.����H������@�����H��H�5�T ���H��������?H9�w
H�DH���H��H�����@��ATI��H��8USH�� dH�%(H�D$1�H�\$L�D$H���h�����t#������t"H�=�81�����H�|$�L�1����H����	���H��H����L��H�5T ����H�8H��H��t�P��u<H�+H�C�����u`H�L$dH3%(���H�� []A\�fD�@��t����f�1�H�|$u~H�|$@��tc�&������R����H�=�W L��H��L�������D���H���=���H��H��V H�5�7H�81������3��������@H�����H������H���@���H�|$H��@��t��b���DH�����H�����H�߻����H��������ff.���S������H��R H��H��H� W H�8�P���H�H�C[�ff.�@SH��H��H��V H�8���H�P H��B�u*H�����t"H��у���tH�р�H�xH�t��t
H��[��H��H�D$��H�D$��ff.����SH�5�Q ����P��tH�8H���
����C��u�[�H�LU H�5�6H�81���������H�5�5H��H�%U H�81������SH��H�5aQ �|����P��tH�8H��[���H��T H�5�5H�81�����H��T SH�5�5H�H�#U H�8�[���H��U H�5M���H��H�����H�;�H��H�5R5�G���H�;�H����H�5;5�,���H������P���H�;H�5#5H������1��7���H�;H�55H�����H�;�H�55���H�;�H�5�4����H�;�H�5�4���H�;�����H�����H�5�4�n���H�;1�H�B���H�5�4�V���H�;1�H�*���H�5�4�>���H�;�H����H�5^4�#���H�;�H�d���H�5G4����H�;1�H�����H�5n4��H�;1�H�d���H�5d4����H�;1�[H����H�5X4���f.�D�����y��1Ƀ���H�4��Hc�H�>����tH�mS �@H�YS ��H�AS ��H��R ��H�IS ����u<H�S �@��u<H��R �@��u<H�-S �@H�YR ��H�qR ��H�	S ��H��R �PH�0S ��H�5�3H�81����ff.�f����OS����L��3H��Ic�L�>��H����H�[�H������[�f.�@���6H�H�3[�fDH��� �[�@H����f�[�H����[�@H������H��H�������?������H�������'����DH����th�������@���X���H����H���K���fD@���8���H���F�H���+���fDH�����f���Z��[�f�������@������fD������@H���8����H���(�H�����H�iQ ��H�5�1H�81���fD��ATUSH��H��@��tK�&���H�5�T ��H��tKH��P H�8�9�UI�ă���H�
�1Hc�H�>��f��K�H�5<T ��H��u��H�=I1�|�H��H�T �H�\$�D$H��[]A\�x��H��H��[]A\��H��������?H9��H��H��[]A\��DH�����H�H!�H��H��H��[]A\��Hہ�H��H����fDHہ�H��H����fD��f�H��������?H9���H�\H�51S H����H��H��L��[1�]A\�~�fDH��H�D�Y���f.�H��H�D�A���f�Hc�H�D�2���H�@H���H��H�D[]A\��H��H��[]A\����\$fnD$�Z��x���DH����H���0���H�O ��H�5p/H�81���fD�H�=�.��H��H�-R �����H��H��[]A\����SH��H��0��H�{8H��t��H��[����H��H�5N ���H�8H��������?H9�w
H�D?H���H��������U�@H���SH����H��M H��H��H���?�E1�A�����1��"��0H����H�CH��H��[]�ff.�@��H��tH��H���z�H��H��xÐ1��ff.�f���AWAVI��H��.AUATUSH��8dH�%(H�D$(1�H�L$L�L$ L�D$����u	H�D$ H�|$��3�H�D$L� A�� ��I��A��Ic�D�d$I9��,H�5�L L����A�|$�Hc�H�����H�E8E����A�D$�1�L�,��5�{�I�H�<@��tO���L�}8�
�I�H��I�I9�t>L�|$L���A�I�L�|$L���� u��,�I� H�<@��u�������DH�E8Lc|$H�T$L��L�mH�5s-J����H�T$L��H�5^-��H�|$H�]L�}8@�����w����`�H�|$ H�D$@�������H�L$��M��D��L���b�����H��K L��H��L����H�]�H�߾0A���L����E����H�L$(dH3%(L����H��8[]A\A]A^A_�D�[����O���@��H�L$���_����L�`�	�����H�6K H�5[,H�81����H�=`,��H�K D��H�5S,H�81�����L�������AWH��AVI��AUATUSH��H��XH�t$ H�5�+H�L$dH�%(H�D$H1����H��H�5�+H�����H�}H�D$�� �hH����Hc�A��H9��D�M�H�5�M H�D$8H���H��I H�8�i�H�D$E����1�L�}L�%�+fDH����H��H�E ����L��H�<�@��������P����Ic�L�>��fDI�����H�|$8H����fDH��A9��H�\$8H���B�H�H�\$8H��� �~�)�H�5�L H�[ H���~H�|$H��D���%�H��H�D$8H�D$@H�|$H�D$8@�����/��H���
H�+Hc�H�>��f�I��f��Z���H�|$8H������E���DI��H�8�L�H�|$8H�����"���f.�I��H�8H�@H���H�t?H�|$8�����f�I��H�|$8Hc0H�t6�j�����DI��H�|$8H�0H�t6�I����@I��H�0H�t6렐I��H�8H��������?H�L?H9���H�5�K H����H�|$�1����H�|$8H������F���fDA���8���I��H�|$8�0H�t6������DI��H�|$8�0H�t6�����DI��H�|$8�0H�t6�{�����fDI��H�8H��������?H9��������H�����f�I��H�8�d�H�|$8H���'����f����B���fD���H�E ����f�H�}������H�5dJ H��H��������H�=a(��H��H�<J �b�������cH�H�D$ H�H�D$HdH3%(�uH��X[]A\A]A^A_�f�H�|$����B�����H�=>&H�L$(��H�L$(H��H��I �5���fD���H�������H�=�&���H��H��I �����k�H���b���H����H�L$ ��H��?���H����H�D$ ��)���H����H�L$ H�����H�����H�D$ f���Z����������H����H������������H���x�H�����H�߃�u$���H�L$ H�H����H����H������?��ډ�H�DE H�5�&H�81�����������H� E H�5�&H�81����ff.�@��H�D SH�5{&H�H�CD H�8�{�H�dD H�5}���H��H����H�;�����H����H�5�$�7�H�;1�[H�
���H�5�$��f.�@��H��H����tH��X��H���fD��H���;��H����@��tH��H���H�������UH��SH��@��t=H��H�@��tBH��H�H���3�H��������?H9�w4H��H�D[]��H���x�H��@��u�H���g�H���f�H��H��[]�2�f���H��H����t(H��X�H��������?H9�w!H�DH������H����fDH��H�����ff.����H��������?H9�w
H�D6��H�������SH�=$%�?�H��B H�QB H�5%H��H�H��|�H��A H�;H�5�$H���~�H�;�H�5�$�j�H�;�H�5�$�V�H�;�H�5�$�B�H�;�	H�5�$�.�H�;�H�5�$��H�;�
H�5�$��H�;�H�5�$���H�;�H�5�$���H�;H�����H�5�$���H�;�H�5�$��H�;�H�5�$��H�;�H�5�$��H�;H�����H�5�$�v�H�;�H�5~$�b�H�;�H�5v$�N�H�;�H�5m$�:�H�;�	H�5e$�&�H�;�H�5[$��H�;�H�5R$��H�;�	H�5N$���H�;�H�5F$���H�;�H�5?$���H�;�H�58$��H�;�H�52$��H�;�H�5.$��H�;�H�5)$�r�H�;1�H�5($�a�H�;�H�5$�M�H�;�H�5$�9�H�;�H�5
$�%�H�;�	H�5$��H�;�H�5�#��H�;�H�5�#���H�;�	H�5�#���H�;�H�5�#��H�;�H�5�#��H�;�H�5�#��H�;�H�5�#��H�;�H�5�#�q�H�;�H�5�#�]�H�=�> H��������?H�T?H9���H�;H�5�#�/��H�=�#����H�;H�5�#H����H�;�H�����H�5�#��H�;H�/? �H�5�#��H�;�H�g���H�5+$��H�;�H����H�5b#�p�H�;H��= �H�5O#�U�����+��V��[�`���;��H���%�����1�H��tH�GH��(�ff.����USH��H����H�o tH��H�H�EH��H��[]�fDH���8�H�EH��H��[]�f.���H�G H�xH�@H�x
H�D?���S����H��H�5: �\��H�8H�H�����ff.�f���H��H�5�9 �,��H�H���@��SH��H�?H��tH�CH��t��H��[�|��ff.����SH��H�H��uH�{ H��u[�@���H�{ H��t�[���ff.����ATI��H�5@9 US��H��H�� dH�%(H�D$1����H�8��H��H�L$1�L��L�D$H��!���6����tQ����H�\$��t^H�t$H�@��tfH�H]H����H�L$dH3%(��H�� []A\�@H�|$@��t=H�H�EH�8H�D�f�H�����H�t$H��@��u�H�����H���D����H���H�=� 1��0��H�!; H�5� H�81����������AVH�58 AUATUH��S�e��H��L�pL�hH��L� ���M��M��H��L��[H��]H�=g!A\1�A]A^�:��f.���ATI��H�5�7 U��H��SH��dH�%(H�D$1�����H��L���H��H�) 1������tC��uLH�<$@��u,���H�;Hc����H�\$dH3%(u0H��[]A\�����ҐH�sH�;�d����H�=�1�������ff.�@��H��H�5�6 �L��H�8H��������?H9�w
H�D?H���H���G�����UH�5�6 SH���
��H�xH��tQH��������?H�\?H9�w-����H��H���H��H��H��H�ߺ[]�"��f�����H����fDH���[]�@��AWI��H��AVAUATU��SH��8dH�%(H�D$(1�H�L$L�L$H�D$ L�D$�5������1�E1���L�d$A����I�E1���t1H�l$H���H������H9�ID�H�l$ ���H�I��H��t>L��H�5�5 ����H�8H��H��tH�@H��t��H�D$ L�mH�]H�E L�eL�uH�\$(dH3%(���H��8[]A\A]A^A_�f�H�|$�F��L�l$�I9�LD�tAH�H�Ã�����E1�E1��S����L�����I������H���h���,���H���X���fDH�D$ �������ff.�f���U�(H���SH���4��H��H�j4 H��H���o��H�H�CH�CH��[]ÐAVI���AUI���(ATI��UH��S����H�4 L��H��H�����L�+L�cH�k�u H�����tH��у����H��s	[]A\A]A^À�H������H��H�5�3 ���1�1�H��H��6 H�8H���R���f���H��H�5�3 ����1�1�H�H�0H��6 H�8H������ff.�@��ATUSH��H��H��H��6 H�t$H�0�*��H�������H�|$�$��H�hH���(��H�����1�1�H��H�:6 H�8���H��@��u1H�����t(H�U�Ѓ������H�����H��tH�E H�XH��H��[]A\��H��5 H�|$H�0�|��H��I��t+H�|$�Y��H�L$H��� utH��1Ƀ��R���fDH�5�9 H�|$1�1��#��H��H��4��H�g5 H��H�0���H����H����\���H������O�������DH�Q1����DH�D$�����H���������H������������%H	�H�U���DH�|$���H9D$IDܨt!H�H��H��4 1�1�H�8�(���H���y���H�����H����H�44 H�5�H�81�����ff.�H�q4 SH��H�0���H��uH��u1�[�fDH��H�5�0 �Y��[H��H��3 H�5�H�81����ff.����AUATI��H�5�0 US��H��H��(dH�%(H�D$1����H�8��L�l$H��H��1�M��L�D$L���H�����������LH�$����L�d$H�A����I�H�|$@��u
H�������H�c3 H�0���H����H�t$@����H�H]L��H������H�D$H�L$dH3%(��H��([]A\A]�DH�$��toH�H�|$���H�U�H�D$�@������h���L���r��H���DH�����L�d$H��A���!���L�����I������fDH������H���H�|$���H���.���fDH�����H������H�=�1�����H��1 H�5nH�81�����e��D��ATI��USH�����H��I�D$ L�`��t,H�H��1 H��I�1�H)�[]H�8A\�Z���f.�H���h��H������ATI��USH���=���H��I�D$ L�`��t,H�H��1 L��H�t1�H)�[]H�8A\���f�H�����H������UH��SH��H��H��H�N1 H�0���H��u	1�H��[]�H�����H��H�����H9�u߸�ڐ��UH��SH��H��H��H��0 H�0����H��t.H���l���H��H���a����H)�H��t����H������H��H��[]�ff.����ATI��H�5P- U��H��SH��dH�%(H�D$1����H��L���H��H��1��W����tC��uHH�<$@��u,�O��H�;Hc��4��H�\$dH3%(u,H��[]A\�����ҐH�;�����H�=�1�����3����USH��H�5�, H�����H��H��tNH������H9�HD�H�] �tH�H�EH���[]��H������H�EH���[]�H�@ 1�H�EH���[]�fD��ATH��USH�� dH�%(H�D$1�H��L�D$H�D$�'��������� H�$����H�H�l$H����H�������H9�HD�H�l$���H�I��H���G��1�H��H���j��L��H��H��H��. H�8�"���H��tH�P H�j H�L$dH3%(��H�� []A\��H�$��tGH�H������H��1�H�����1�H��H��H�H. H�8����fDH������H������H�����H���H���h��I���1���H�D$�H�=�1�����"��f���USH��H��1 H���H�-�- H��1 H�5�H�z- H�}H�����H��- H�5����H��H��e��H�;�����H����H�5J����H�;�H����H�56���H�;�H�����H�5�
���H�;�����H���H�5�
�Y��H�;�H����H�5��>��H�;1�H���H�5 �&��H�;1�H���H�5�
���H�;1�H���H�5����H�;1�H���H�5�����H�;1�H����H�5N����H�;1�H�����H�5r���H�;1�H�b���H�5]���H�;1�H�J���H�5I�~��H�;1�H���H�54�f��H�;�����H�w���H�5��K��H�;�����H���H�5q�0��H�;1�H���H�5����H�;�H�����H�5����H�;�H�N���H�5�����H�;�H�3���H�5�����H�;�H�����H�5����H�;�H�=���H�5{���H�;�����H���H�5��v��H�;�����H����H�5G�[��H�;1�H���H�53�C��H�;�H�$�H�5�(��H�;1�1�1��Z�H�}H��H�5[H��]�1����H�=����H��. ������SH��H�H��t�*��H��[�!�����S� H�������H�b* H��[H���&��fD��H��tH�����H��H�� �D1��ff.�f���ATI��UH��SH��H�=X. H��t#���H9�u6L��H��H�5����[1�]A\�H�=���/��H��H�. �H��* H��H�5^H�81�������UH��AWAVI��AUATS��H��H��H�u�H�57H��h���dH�%(H�E�1�H�E��B��H�5!L��H��`����,��H�5}- I��H���	H�2) H�8����H��x�������I�}�� ��I�}Hc�H9���9���H�5�( H��h�������H��X��������~I��~EH�M��S�H��H�L�DH���u H�����tH��փ���t
����H��H9�uύsHc�Hc�H��p���H�H�E�H��H��P���H����HH�E�H��H��H�E�H��H���H)�H���H9�tH��H��$�H9�u�%��^H�D$H���H�E�H�E�H��p���H��H�E������C�1�H��H�E�I�EH�E��h@���H�E�L�<H�E�L�$H�E�L��L�4D�����E�tm�(�����L�������L��L�����H�E�L�4H��H;]��L�����L��I�E u����I�E �@H�����-���@�+������L��������fDI����A���lA���2D������CI���HA���MI�D$H9�x���t)H�5�* H���YH��x���L��1����I��L���p��I�ċE����`������DI���h�����D��I���:���@H�E�H��p���H��`���H�����H��H���[H�M�H��X���H�U�������H�53* HcH�\H���H��% H�ٺH�81��A��H��P������H��h���H�5����H�u�H�����H�M�dH3%(��H�e�[A\A]A^A_]�@M�������H�& H�������F��I������fD�H�=����H��H�m) �����H�=<�o��H��H�M) ����H�����H�E������H�=��7��H��H�) �����H�����H�����H�9% H����H)�H�L����H�a$ H�����H��$ H����H�K% H����H�D$ H�5H�81����H��# ��H�5{H�81�������H��$ ����H�5�H�81�����K��ff.���AVAUI��H��
ATUSH��0dH�%(H�D$(1�H�D$ H��PH�D$ P1�L�L$ L�D$���XZH�|$u	H�D$H�|$��$��H�D$H� uH�xHc�H9��U���RH�$H�5%
L���{��H�T$H�5%L���g��H�T$H�5,
L���S��H�T$L��H�5&
�?��H�|$ H��tL��H�5������H�5�" L�����I��H�D$H�8�� �GH�xH���1��K��I���]fDH��H����H9�~eH�����H�EH�l$H��� �$����H�}H�<�@����������q��I��H��H�l$H�EH���� u�H�UH9��H����H����H�|$I�@������������H��H�D$H��� ��H��H�Ӄ�Hc�H9���H�|$@�����{����M��H���L���������H�t$(dH34%(L����H��0[]A\A]A^�DH����H��������������@���H�} ����f�H�EH�������[������k���@H�X�<�����;���������H���|���H��  ��H�5�H�81��r�����H��! H�5�H�81��X����#�����H��(dH�%(H�D$1�H�9! H�T$H�<$�H�H�t$H������H�L$dH3%(uH��(�����f���H�E  SH�5�H�H�s  H�8���H��  �H�5�H��H����H�;�H�5T���H�;H�5�������H�;�����H�k���H�5*�?��H�;[�����H���H�5��#����H��H���unknown symbol "%li"02rb_fiddle_handle_new%sclosed handleHandlesym[]NEXTDEFAULTRTLD_GLOBALRTLD_LAZYRTLD_NOWinitializeto_idisable_closeenable_closeclose_enabled?fiddle/handledlclose() called too many timesunknown type %dPointer�������������������������t���������������������������,��D��d��������������������������� ��h�����������������`��21@ctype@argserror prepping CIF %dmprotecterror prepping closure %dclosure args: %dcallclosure retval: %dClosurefiddle/closure������������h����`����������������`��8�����7��L��	��	��	�����`��L��������������j��L��!��FiddleDLErrorTYPE_VOIDTYPE_VOIDPTYPE_CHARTYPE_SHORTTYPE_INTTYPE_LONGTYPE_LONG_LONGTYPE_FLOATTYPE_DOUBLETYPE_SIZE_TTYPE_SSIZE_TTYPE_PTRDIFF_TTYPE_INTPTR_TTYPE_UINTPTR_TALIGN_VOIDPALIGN_CHARALIGN_SHORTALIGN_INTALIGN_LONGALIGN_LONG_LONGALIGN_FLOATALIGN_DOUBLEALIGN_SIZE_TALIGN_SSIZE_TALIGN_PTRDIFF_TALIGN_INTPTR_TALIGN_UINTPTR_TWINDOWSSIZEOF_VOIDPSIZEOF_CHARSIZEOF_SHORTSIZEOF_INTSIZEOF_LONGSIZEOF_LONG_LONGSIZEOF_FLOATSIZEOF_DOUBLESIZEOF_SIZE_TSIZEOF_SSIZE_TSIZEOF_PTRDIFF_TSIZEOF_INTPTR_TSIZEOF_UINTPTR_TRUBY_FREEx86_64-linuxBUILD_RUBY_PLATFORMdlwrapdlunwrapreallocfreeNULL pointer dereference11rb_fiddle_ptr_aref()01rb_fiddle_ptr_to_str12Fiddle::Pointer was expectedrb_fiddle_ptr_aset()rb_fiddle_ptr_to_srb_fiddle_ptr_s_mallocto_ptrfree=to_intto_value+@ref-@null?inspect<=>==eql?+-[]=sizesize=NULLfiddle/pointer#<%li:%p ptr=%p size=%ld free=%p>to_ptr should return a Fiddle::Pointer object@nameunknown keyword: %li@ptrtainted parameter not allowedlast_error=@return_type31:@abierror creating CIF %dFunctionSTDCALLfiddle/functionnumber of arguments is so large that it can cause integer overflow (%d)wrong number of arguments (%d for %d)args is so large that it can cause integer overflow (%d);,D0���H���p����������н�������0����p��� ���<0���Pp���p`���������0������������8���Pp�����00��Lp��l��������������H@��h�������� ���������� ��(@��<���p�����������@����������$��`�����������@�4	��\	��	@��	���	��
�$
��`
P��
���
��
p� �@���0��p���������0p�\�0���������zRx�$���FJw�?:*3$"D�����\�p����&HW����%H\�,���%H\�D���>E�]
NI4�d����A�D�D0d
FADL
AAAܻ��$ػ��<Hd
DG0D�����F�K�A �D@�
 AABGx����AE�{ ���tA�G O
AH�D���mE�o
A�����?E�]
E������L��`����@$X����H�l
DM
KQ
GK
EL
DK
E�
C�h����F�A�A �G0�
 AABMD
 DABEW
 DABJ[
 AABIl
 LCBKO
 FABHD
 DABMt DAB���-E�c ���9Hg
AD$@���aE�N�D DDAhD��#MMH�\���F�B�L �B(�A0�A8�Dp
8A0A(B BBBFL�����F�E�E �B(�A0�A8�G�1
8A0A(B BBBJp��rL�S<���?HY
GV\��� 0p���~E�D�D s
FAIdDA�H��THh
HW����( ����mE�V
E����0���FE�A�G W
DAGPDAD��-X4��#HWpL��HS�T��$E�Z�h��4E�V
EO0����-F�K�A �I@�
 AABE8����VF�I�B �A(�D0�h(D IDB04����F�K�F �D0e
 AABDh4��9Hg
AD0�T��|E�H�D {
LAGTFAH�����F�L�B �B(�A0�C8�Dp�
8A0A(B BBBJ$��OE�N�D uAA<0,��xB�J�J �D(�D0�J
(A BBBApl��.Ha����1Hd0����F�A�A �J0�
 DABH ����TH�Y
GP
D8�����F�B�K �A(�IP�
(A ABBF(4���]F�D�A �p
AEO(`���]F�D�A �q
AEN(����OE�D�J Z
AAA$���dE�D�J KDA0�\���F�K�F �D0e
 AABD<	����E�A�N u
FAHP
FAARFA0T	(��~F�H�A �D@�
 AABI(�	t��=E�A�D 
HDF�	��E�U�	��*E�]�	��#MI(
��xF�D�D �l
CBA,0
��E�C
D��H���
EL`
|�F�B�L �A(�A0�D`YhFpRhA`
0A(A BBBF�
L�WH0I
A�
���L�yGNU�`4 4� �o 5p4Fq�@�A;u0RRQ.v`d�d�������6(
 oЊ ؊ ���o`� 
c� �`�p	���op���o�o\���oh� 0(@(P(`(p(�(�(�(�(�(�(�(�()) )0)@)P)`)p)�)�)�)�)�)�)�)�)** *0*@*P*`*p*�*�*�*�*�*�*�*�*++ +0+@+P+`+p+�+�+�+�+�+�+�+�+,, ,0,@,P,`,p,�,�,�,�,�,�,�,�,-- -0-@-P-`-p-�-�-�-�-�-�-�-GA$3a1(-oGA$3p1067p4oGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p1067�;]dGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYp4dGA+GLIBCXX_ASSERTIONSfiddle.so-2.2.10-35.el8.x86_64.debug5n�<�7zXZ�ִF!t/����]?�E�h=��ڊ�2N��+� �/2\I��P��أ��;���J�o�/Oz����9�-�F��b�/�wJKv�(��������Xz:`�
[Ug�g�)��B��˭3��)�e�?�[�8���χW��ꊃ�`^x����L��*sZ
2����d�G�F��*d�w�#���Q��'8_e���X|Ρ�o��'|���j�̫l��GJ�T�	tY�	
�B%��k:��ק�����^T���Mi��o�U��Y��pX3��M�,͂r3LF�
��Ќ�@����ʽl����]��'�Nbh3*��0� �0}���;8%B��
��{;�Q�u���,��^Xd�qb��Z��S�H���D�xp�G��>�R��0��vR���t�`�!�� ���I�$��V���Rѭ����B�N�,��`)��"�n#��_��;��bp�1�����c$�����H8�-`�#-@�m��6�~e{]M=���5�z��l�<m��������}�+
�	h���2�~�/#��Za�%��Q�&W9�U��'4��TzڵJ�-���\�>|����(�OH�v��)��
)s�Y�%U6*1�|p5��y��3>#���!ڶ��4�B�UTa��>�⿙}U8t"�����0�����{#	K��g\}2�}�x�e%ieY�X�%���-D,�·Y��UH�\R�=mX}A���: bT��ݘ��pmR0QG7����T�АY2Œ�(�_�"󓙋�KQ�۝��W�[yu�}�4a�u���еÀ�چ�ܳ����o�l�_��p_�+5�6�T(4���P�"�)���3Cy�JrQַ��`���&&0��YY�b��q��$�#c���4��3��n9@�u���*���@SS�ٕd�q�������(�����\:@qΖ%�*}����}���|�*��0d�жp����Ԗ�
B\W�#b8�/^}�8��ҔR��f]:f��l�rP��k;�F�%w�����
݅��N����x$���X���]�{rtK��@��!�D%�>���l��K�O�b(^s�*D��Q� ��
��I[� ��*��幊�	0\��f�ɠp#V'�S�T�5�
J*�(~י�1��ns	/�R)RBoTK}#Y�_�<Jx�'#��SET��ބGC�R�4!�o���_	��t�u�j�DG:��
E�iLJ���I�?]��y�[��?Fը��6g<tbWȎ�P��C�lP���)P-S���F��}�Jt{�Oq�y�v���1@�����=_=���j9UOzYO��H��^����QG�P���=�� ���"!�(2_@麑�1nO��a�[�e��H��$~���=�>�s����xL��_s�޽K!���u*����rx��J1*a���p��H���2�^��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``�(  �0��c8���o\\E���opp�T��p^B``�h((c ( (�n�-�-�w�3�3m;} o o
�0o0o���v�v,� y y�
��� �Њ Њ�؊ ؊�� �� �h� h�0��� ��P�� ����� ������`��
�,@��$�+lib64/ruby/2.2.0/x86_64-linux/psych.so000075500000102230150402105720012665 0ustar00ELF>�,@X}@8	@pbpb �l�l �l `� hmhm hm 00888$$PbPbPb  S�tdPbPbPb  P�tdHYHYHY��Q�tdR�td�l�l �l ppGNUj:�kr���D��e�3�tC�^� B��L0H	�^fix�
BE��"a��j������
��|�S��E6
Z�qXH���8�
�x�<�ub��4 � �X�H-Fw������v�����U�2jW ����q�S�����C�����^���J�!��d�2�C, E�u`F"#���UU���R�%�r �0V�P>�Z8t �@t 8Xt ��CN�Bt�Pt ,�r Ht h(t 80t __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_check_typeddatacPsychParserrb_const_get_atrb_class_new_instancerb_intern2__stack_chk_failyaml_parser_deleteruby_xfreerb_funcallrb_funcallv_publicrb_string_value_ptrmemcpyrb_utf8_encindexrb_default_internal_encodingrb_iv_getrb_scan_argsyaml_parser_initializerb_respond_torb_to_encoding_indexrb_usascii_encindexrb_enc_find_indexrb_ascii8bit_encindexyaml_parser_set_encodingyaml_parser_set_inputrb_cIOrb_obj_is_kind_ofrb_string_valuerb_enc_get_indexrb_utf8_encodingrb_str_export_to_encyaml_parser_set_input_stringyaml_parser_parserb_str_new_cstrrb_enc_associate_indexrb_protectyaml_event_deleterb_jump_tagrb_str_newrb_ary_newrb_ary_new_from_argsrb_ary_pushrb_str_new_staticrb_usascii_str_new_cstrePsychSyntaxErrorrb_exc_raiseruby_xmallocrb_data_typed_object_allocInit_psych_parsermPsychrb_cObjectrb_define_class_underrb_define_alloc_funcrb_define_constrb_requirerb_const_getrb_define_methodrb_internrb_attr_getInit_psych_yaml_treerb_define_modulerb_define_module_undercPsychVisitorsYamlTreerb_define_private_methodyaml_get_versionrb_ary_new_from_valuesInit_psychrb_define_singleton_methodInit_psych_emitterInit_psych_to_rubyyaml_emitter_deleteyaml_emitter_set_canonicalyaml_emitter_initializeyaml_emitter_set_unicodeyaml_emitter_set_indentyaml_emitter_emitrb_eRuntimeErrorrb_raiseyaml_alias_event_initializerb_check_typeyaml_mapping_end_event_initializeyaml_sequence_end_event_initializeyaml_document_end_event_initializeyaml_stream_end_event_initializerb_fix2intyaml_emitter_set_widthrb_num2intyaml_stream_start_event_initializeyaml_mapping_start_event_initializeyaml_sequence_start_event_initializeyaml_scalar_event_initializeyaml_emitter_set_outputyaml_document_start_event_initializerb_ary_entryruby_xcallocrb_gc_writebarrier_unprotectcPsychEmitterrb_path_to_classrb_obj_allocrb_iv_setcPsychVisitorsToRubylibruby.so.2.2libyaml-0.so.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.14GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64ui	=���Iii
T�l @-�l -�l �l �l X�l  . m Y0m pD�o 
�o 
�o i�o )�o g�o b�o c�o j�o :�o K�o Q�o k�o Vp  p (p 0p 8p @p Hp Pp Xp 	`p hp pp xp �p �p �p ^�p �p �p �p �p �p �p �p �p �p �p �p f�p `q q q q   q !(q "0q #8q $@q aHq %Pq &Xq '`q (hq *pq +xq ,�q -�q .�q /�q 0�q 1�q 2�q 3�q 4�q 5�q 6�q 7�q 8�q 9�q ;�q <�q =r >r ?r @r A r B(r C0r D8r E@r FHr GPr HXr I`r Jhr Lpr Mxr N�r O�r P�r R�r S�r T�r U�r V�r W�r X�r Y�r Z�r [�r \�r ]��H��H��N H��t��H����5�N �%�N ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A�������%-I D���%%I D���%I D���%I D���%
I D���%I D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%}H D���%uH D���%mH D���%eH D���%]H D���%UH D���%MH D���%EH D���%=H D���%5H D���%-H D���%%H D���%H D���%H D���%
H D���%H D���%�G D���%�G D���%�G D���%�G D���%�G D���%�G D���%�G D���%�G D���%�G D���%�G D���%�G D���%�G D���%�G D���%�G D���%�G D���%�G D���%}G D���%uG D���%mG D���%eG D���%]G D���%UG D���%MG D���%EG D���%=G D���%5G D���%-G D���%%G D���%G D���%G D���%
G D���%G D���%�F D���%�F D���%�F D���%�F D���%�F D���%�F D���%�F D���%�F D���%�F D���%�F D���%�F D���%�F D���%�F D���%�F D���%�F D���%�F D���%}F D���%uF D���%mF D���%eF D���%]F DH�=YF H�RF H9�tH��B H��t	�����H�=)F H�5"F H)�H��H��H��?H�H�tH��B H��t��fD�����=�E u+UH�=�B H��tH�=~? ����d�����E ]������w������SH�5d? H�� dH�%(H�D$1����H�5�E H��H��tlH�EB H�8�]���Hc��H��H��H�L	H�$Hc��H�L	H�L$Hc��H�L	H�L$�K���H�T$dH3%(u+H�� [�D�H�=�(�?���H��H��D �t����K���ff.���SH������H��[���f.���H�5uE 1�1�����ff.����H�5eE 1�1����ff.����H�5�D 1�1�����ff.����H�5�D 1�1����ff.����H�OH�5�D �1�H�?���f���H�OH�5�D �1�H�?�r���f���H�OH�5�D �1�H�?�R���f���H�OH�5YD H�?����@��H�OH�5ID H�?�����@��H�OH�51D H�?����@��H�OH�5)D H�?����@��UHc�H��SH��H�L�H��H�5D dH�%(H�D$1����H�H�$H��u&H�t$dH34%(�uGH��[]�f.�H�����H�$H��� uH����H�H��H���g����DH�Q������D��AWAVAUATI��U��SH��H��(H�T$8dH�%(H��$1��D$T����D$����H��H�5P&H�\$XI���N���L�D$`H��L��H�$H�6&1����������3
H�|$8H�5�; �%���I��H���
���L������H�|$X1ɉL$@��u
H������1H�5�B �8�������H�5�A H�l$XH���
1�1�H������H����	H���}���������9��N	����9��A	H�=�%�u����9�tH�=�%�`����9�t���1�L��H�l$X�S���H�T$XH�5���L������H�> H�|$XH�0����H������DD$�D$�f�H������H�D$XH�D$h�y���H�=�$������H�=�$������H�|$hA������9��
9��1
A9��
��H�|$hH������H�T$hH�D$hH�T$pH�T$h�L��H�D$X��H�D$XH��� �^H��H�p��L�����H�D$TL�|$pH�D$H��$�H�A%H�D$�L��L���5���A
�|$p
�7�D$pHc�H�>��@H�|$xA�H��t?�[����T$I�ą�t�uH��������t$L�����M��tL��L������I��H��$��H��tF�
���H�ŋD$��t@��uH�������@�t$H�����M��tH��L�����H�Ń�$�Hc�$�L��$�H�=J���H�H�$H�t$H��$�H��H�T��H��$H�T$H��$�H��$��@H�T$H�4$H�=x�����[���L���3����|$T��������b�f�H�|$xA�H��t?�����t$I�ą�t�uH������,�t$L�����M��tL��L������I��H��$��H��tF�����L$H�Ņ�t�uH������2��t$H���L���M��tH��L���|���H�Ń�$�Hc�$�L��$�H�=*���H�H�$H�t$H��$�H��H�T��H��$H�T$H��$�H��$�����f�H��$�H��$��;���D�L$H��E��t.�u*H�����t"H��ƒ������H����f��t$H���t���M��tH��L����H��H�|$x�H��tK��D�D$H��E��t�uH������ �t$H��H�L$ ����M��H�L$ tH��L���J�H��H��$�A�H��tbH�L$ �:�|$H�L$ I�ą�t�uH������cf.��t$L��H�L$ ��M��H�L$ tL��L�����H�L$ I�ă�$�Hc�$�H��$�H�H�<$H��$�H��H�t6L��$�����$�H��$�H�=q���H�H��$H�T$H��H��$H�t$��H��$�����H�|$x�H��tH�L�D�T$H��E��t�uH������ ��t$H�����M��tH��L����H��H�$H��$�H�=6���H�T$H�t$H��$�����H�4$H�T$TH�=�������L����|$T���x���H��$dH3%(H�D$8�H��([]A\A]A^A_ÐH�$H�T$H�=�H�t$H��$�HcD$xH�DH��$����@H�$��|$xH�=����H�t$H��$��HE�H�T$H��$�����s�H�D$ H�D$xH���HcPHc0�1�H�TH�t6�S�H�D$0H��$�H����H�$���$�H�=����H�t$H��$�H�D$0H��$�H�D$ H��$��HE�H�T$H��$�����H�T$H�4$H�=0������H�T$H�4$H�=8������H���H��������D��D$���DH��$�H9��B���L�t$@D�t$L�|$HI��DH�}A�H��tX���I��E��t,�u(H�����t H��ƒ�������I�$��t$L���D�M��tL��L���t�I��H�}�H��t\�n�H��E��t&�u"H�����tH�����������H��t$H��H�T$(���M��H�T$(tH��L���
�H��L��1�H����H�|$ H����I9�����L�t$@L�|$H�"�����C�H�D$0���f�����fD�H���������@�H���I����;���@H�PH�p���H�5�8 H�|$X�B����1H�5�8 H�|$X1�1��5�H�D$`������������H�=����H��H��7 ����H��ƒ�������H�E����H�E�ƒ�������H�E���H��ƒ�������I�$���H��ƒ�������I�$���H��ƒ�������I�$�=���H��ƒ�������H�E���H��ƒ�������H�������H�E�h���H�D$h��-����	H�=����H�D$`�h�H�D$h�����H�D$h����H����������@�H����������@�H���	����@���@�H����������@�H���A�����@�H���A����f���@�H���������H�D$`I�~8A�H�$I�FHH�XI�FPH�hH��t��I��I�~A�H��t��I��IcFHc�Hc�H�l-H�\L�lH�]5 H��tMH��H��I��I��H�<2 AT�AWAUH�L$ H�81���H�� L��H���#�L���+�H���#��H�=6�B�H��4 ��T�@��UH����SH���I�H��H�����H��H��H��[H�|. ]�6�fD��UH�5�SH��H�-`1 H�11 H�}H���H�N1 H�5����H��H���H�;�H�5���H�;�H�5���H�;�H�5x��H�;�H�5l�l�H�=h��H�5�4 H���pH�}���H��0 H�;�����H�5SH�H�'��b�H�;1�H��H�57�J�H�#4 H����H��4 H�4 H����H�d4 H��3 H���\H�E4 H��3 H���%H�&4 H��3 H����H�4 H��3 H����H��3 H�i3 H����H��3 H�J3 H���IH��3 H�+3 H���H��3 H�3 H����H�l3 H��2 H����H�M3 H��2 H��tqH�23 H��2 H��t.H�3 H��[]þH�=���H��H��2 �p����H�=\��H�h2 H��2 H��[]�f.��
H�=�o�H�@2 �r����H�=��O�H�(2 �?����H�=��/�H�2 �����H�=���H��1 �����H�=u���H��1 ����H�=H���H��1 �c����H�=��H��1 �,����
H�=���H��1 ����H�=��o�H��1 ����H�=��O�H�h1 ����H�=v�/�H�P1 �P����H�=Q��H�81 ������SH��H��H�|$H�T$�u�H�����H��H���2�H��[�ff.����SH�=���H�5�H��� �H�5�H��H��, H��H��t�H��H�5�H���b�H��, �H�5H��H�H�R���[��f.�f���H��8dH�%(H�D$(1�H�T$H�t$H�|$��HcD$H�t$�H�DH�D$HcD$H�DH�D$HcD$H�DH�D$ ��H�L$(dH3%(uH��8����ff.���H��H�=���H�, 1�H�5�H��H�H�?�������e������H����f���H��H�51) ��Hc��H��H�D�ff.���H��H�5) ���Hc��H��H�D�ff.���H��H�5�( ���x|H�H��H�Ѓ��f.���SH����H��[�:�f.���SH��H�5�( �l�1�H��H��@����H��[�D��UH����SH����H��H����H�߾���H�߾���H��H��H��[H�( ]�l�ff.��SH���W���t[�H��* H�SH�5>H�81���D��ATUSH��H�ĀH�t$H�5�' dH�%(H�D$x1���H�|$I��H��u:1�H�l$H���#�H��L���x���H��H�T$xdH3%(uCH��[]A\�@����y�H�|$H����H�D$H��t�H�|$���H����]�ff.�f���ATH�5' USH��H��pdH�%(H�D$h1�H�����H��I����H��L������H�T$hdH3%(uH��pH��[]A\����ff.���ATH�5�& USH��H��pdH�%(H�D$h1�H���b�H��I���'�H��L���\���H�T$hdH3%(uH��pH��[]A\��{�ff.���ATUH��H�5& SH��H��pdH�%(H�D$h1����1�H��H��@��I��H���{�H��L�����H�T$hdH3%(uH��pH��[]A\���ff.�@��ATH�5�% USH��H��pdH�%(H�D$h1�H���r�H��I�����H��L���l���H�T$hdH3%(uH��pH��[]A\���ff.���USH��H�50% H����H��H���t�g���H�����H��H��[]������������USH��H�5�$ H�����H��H���t����H���m�H��H��[]�����������SH��H��H����H�5�+ H�ߺH��1�����H�Ǩt
��[�fD�;��[�f���ATUH��SH��H�5;$ H��pdH�%(H�D$h1���H�߾I���r�H�߃�t:�U���H��H�����H��L�����H��H�T$hdH3%(uH��p[]A\Ð����������f���AWAVAUATI��UH��SL��H��H�t$H�5�# H�$dH�%(H�D$x1��m��I�����H�|$I��H��t����H�|$L����H�D$H�<$H��t����H�<$L���{�H�$H�߃����f���E1�M��A��E1�H�<$tH�����I��1�H�|$t
H�|$���H��L�d$L��A��D��L�����L��L�����H��H�T$xdH3%(u&H�Ĉ[]A\A]A^A_���k�����p������ff.�@��AWAVAUATI��UH��SL��H��H�t$H�$dH�%(H�D$x1��d��H�|$I��H��t��|��H�|$L���_��H�D$H�<$H��t��V��H�<$L���:��H�$H��H�5�! ����H�߃�I��������E1�M��A��E1�H�<$tH���U��I��1�H�|$t
H�|$�>��H��L�d$L��A��D��L���E��L��L���j���H��H�T$xdH3%(u#H�Ĉ[]A\A]A^A_�D������s����o��ff.�@��AWAVM��AUM��ATUH��SH��H�T$ H��$�H�L$H�t$(H�5�  dH�%(H��$�1����H�|$(�I���������H�|$(H��I�����H�|$ H�D$(H��t�����H�|$ L������H�D$ H�|$H��t�����H�|$L�����H�D$H�߃��������H�D$(M��A��M��L�A��E��E��A�� ��I��D�����D$H�|$(���1�H�|$H��tH�|$H�D$���H�L$H��1�H�|$ t!H�|$ H�L$H�T$�j��H�L$H�T$H��L�|$0SE��AVD�D$L������XL��ZL�����H��H��$�dH3%(u.H�Ĩ[]A\A]A^A_Ë@�D$�N���@�+�����������ff.�@��AVAUI��H�5 ATA��H��USH��H�� dH�%(H�D$1�����H�L$L��D��H��L�D$H��1������tBH�T$H�5&���H���~��H��H�L$dH3%(��H�� []A\A]A^�f.�H�5�% H�|$1�1�����H�5d% H�|$1�I��1����H�|$H�5?% 1�I��1����L��A��I��u?�����H�����L��A��t7�r����H������1�I��H��@���&���/�����K���������������"��f���AWI��H�5� AVAUATUSH��H���H�|$0H�L$8dH�%(H��$�1�����L��H�D$(����I��� ����������H�D$ 1�H������I�E1�H�|$8A���� ��I�����L�|$ �H��H�t$HH�\$PHD�H��L���
��H�|$(H������M��tL�����H��$�dH3%(H�D$0��H���[]A\A]A^A_�DI������B���1�L���F��L���I���6��L��A��H�����a��H����D$H������D$L������������{��H�߾I�����H�;�� �|H�����E1��X��H�D$ H��H�CH�D$H�D$@H�D$H�D$PH�D$�fDH����L9������H������H��H� �0����H�D$N�4�L�����I��� ��H��H�������,L�����L��I� ��y��I�VH�L��H�T$@�e��L��I� ���P��I�FH�H�|$@L��H��I��H�D$P�o��H�|$PL��H�D$@�]��H�|$H�D$P���H�|$H�E����H�E�H��� �����H�C�������H����D$H�J�������E����H�{����I�~���������H�C ����f����I�F H���2���fD�s��I�V ���H�|$ ����H�	 H�5�H�81��h���s����SH�=D���H�5�H��H�� H��H����H��H�5�H�����H�r H�5��H��H��H��H�;�����H�����H�5R�-��H�;�H�^���H�5���H�;1�H���H�5	���H�;�H�����H�5�����H�;�H�0�H�5�����H�;�H�%���H�5����H�;�H�����H�5����H�;1�H�r�H�5��v��H�;�H�7���H�5��[��H�;1�H���H�5��C��H�;�H���H�5^�(��H�;1�H���H�5@���H�;�H��H�5/���H�;1�H�i�H�5"����H�;�H�n�H�5����H�;1�H��H�5���H�;�H���H�5����H�� H��tKH� H�� H����H�� H�� H��tiH�� H�� H��t.H�� [�D�H�=�����H�� �fD�	H�=7���[H�W H�p ���H�=$���H�8 �z����
H�=�o��H�  �G�����H���$��@��UH��H��SH���;��H��H�5H��H���&��H��H��[]�ff.����ATH�=US�\��H�-U H�5�H��H��H�U����H��H�5�I���M��H�UH�5�H��H�����H��H�5�H�����H� �H�5~H��H�H�5����0��[L��]�H����H�5dA\�����H��H���Mark@handler11<unknown>external_encodingUTF-16LEUTF-16BEnewParserANYUTF8UTF16LEUTF16BEpsych/syntax_errorSyntaxErrorparsemarkreadpathemptystart_streamend_streamstart_documentend_documentaliasscalarstart_sequenceend_sequencestart_mappingend_mappingPsych/parser�������d�$���L��<�������$�PsychVisitorsVisitorYAMLTreeprivate_iv_getlibyaml_version%stag tuple must be of length 2HandlerEmitterinitializecanonicalcanonical=indentationindentation=line_widthline_width=writePsych/emittermesgClassLoaderToRubybuild_exceptionpath2class;�0�����������������(��<8��PX��dx��x�������������������8���X����0��������8���8H�T��p������(��H��x�����4��h8�����(���8��d8�������h�0���������$����p�������������zRx�$(���FJw�?:*3$"D���� \���E�K0�
AF����E�L������������������������(��<(��P4��d@��(xL���E�G�Q0F
AAK`�����
F�B�B �B(�D0�C8�J��
8A0A(B BBBB��R�G�B�S�$,�:E�I�D TGH80D��E�H�D 
AAAC
AAKl��4E�G fA��tE�j�x��H@t
A���NHA� �%HW�8�%HWP�&HW,h�E�LHl�+E�e$d��TE�I�D nGH���+A�M
A0����F�A�A �G�`
 AABE0�X�eF�H�A �G�B
 DABA0��eF�H�A �G�B
 DABA0D��qF�A�K �G�K
 DABA0x�eF�H�A �G�B
 DABA(�X�IE�A�N c
DAD(�|�IE�A�N c
DAD��GE�t
GF0$���F�A�D �N�a
 AABBHX,�AF�B�B �B(�D0�D8�J��
8A0A(B BBBIL�0�AF�B�B �B(�D0�D8�J�
8A0A(B BBBF\�0��F�B�E �E(�A0�D8�G�[�E�N�D�e
8A0A(B BBBA@T��NF�B�L �G(�A0�GPj
0A(A BBBKH����F�L�B �B(�A0�A8�J��
8A0A(B BBBF$�0��E�]
Fr
V��$ ��4E�G�D ^DA(H�F�H�A ��DUGNU�@--�l X .YpD����^� 
�V�l �l ���o`��
�p �p��	���oP���o�ot���ohm 0!@!P!`!p!�!�!�!�!�!�!�!�!"" "0"@"P"`"p"�"�"�"�"�"�"�"�"## #0#@#P#`#p#�#�#�#�#�#�#�#�#$$ $0$@$P$`$p$�$�$�$�$�$�$�$�$%% %0%@%P%`%p%�%�%�%�%�%�%�%�%&& &0&@&P&`&p&�&�&�&�&�&�&GA$3a1� �VGA$3p1067P-�VGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p1067@B�UGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYP-�UGA+GLIBCXX_ASSERTIONSpsych.so-2.2.10-35.el8.x86_64.debug�CfE�7zXZ�ִF!t/��'�]?�E�h=��ڊ�2N��H� ��b�j}q�`7�GFy�#�D�%��0���O���1��qk\�T��?E�yS,���Vet�'�P�UK�0_�zICG�EH��,1��
���)�	.5N>%훿��$����tݝNR�ձ"��^�0~�<�}����ǣrlh�@%���=[]��kWRC�eL�J��:/��^6`��filc���-PZ��Zd�(���@�aP�bc������6�[�_6�~'�Թ�q%�9��axJ���
^�O�e>c�"q���;�㋒�ט�W`.R�j�^���w��U0�±�UDq�3kN>�� ��SV� ��!U�e�5�0 tU����j���LI���̄^�V-D�`�Ê@�w.U��6|q�C�60�K��\c[^~Ǹ�q�kk�'n�v�ޝ�ت�l
�|�@=�0a�yi�NOPo.�m�GA�;O�NH�0;4{��/�����e#X�̾�O��ز�8CZ���y;�%]���FbX��eSQ�E:*�������'xK15l���n�0�����`3�{��W�(�\���oq�rFzw 1#�v�;.,��HzIiL�Q5�C<�%(�7}Y�Gm�U���c��o=��R[��NM�1� ��\
5�f��n�1�ģ�&w���^l�I$��p��"�ri?ㆻ5���O��3�廲49������Rj��Ը�;���1i�r-&<��L���Ļ�j۹_�@�Y>?��W��L�WN����/�}Ds��4��v�)���)�g�����=�ab�+: ^�cݿ�	�5Ԍ�/ߒ�3�aYr�
F����w�) �*u�HhꄐW��Nׂ`�d4�Z��50�8(�#SB�;�e>�W���ĽM�D'�zJ��0Y�a����_�ٟ^H+�jD!D��b�eڡN��
�#��Ϥ*��Z1�
@W�nr~$у�{e�hg2��gLRlB`?xVAAd�pZ3��Xx�	vs� ��r���/�C��U�7�*��E��i�8x���P�0�@�o�N:f�2�������m��-�ME�ߵ5���ق����eD����3
��!\oV����V:�y�L�XC��Z�����r�CS��.�9P����D�|��EQ ���.���]�k�9�B�T��e��#��;����٩�
�"'���g��fPt��͠ek�<0�	�Qsf�	�(:-2/��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``d(�� 
0���8���ott�E���oPP@T���^Bpp�h� � c ! !�n�&�&�w�,�,O*}�V�V
��V�VW�HYHY���Z�Zt�PbPb ��l �l��l �l��l �l� �hm hm0��o �oh�p p���r �rh�Xt`�r
w(4w�,|+lib64/ruby/2.2.0/x86_64-linux/date_core.so000075500000620750150402105720013500 0ustar00ELF>�S@h@8	@X�X� ��"�"h* P�P�"P�"  888$$8�8�8�  S�td8�8�8�  P�td��������Q�tdR�td��"�"��GNU›!�ᝨ�C�tS��v+���� @D�D���BE��N�#�YN���|�@����b�/EC�2��,O�qX[,��x��jד#�l��2�{��=�"?���iM ���mJS�$�U��6'=Z�����U���0��C%���>{�_^���UL� ������v�T|��ko��2�3%���#��o�Z���K���
��, ��F"��`���m�mkbx3x#nC�A�ETF#��+f���.	2G�^�CT���	:x#|@A�y�k0PE�^�__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_funcallrb_intern2rb_rational_newrb_check_typeddata__stack_chk_failstrlen__errno_locationdate_strftimeruby_xmallocruby_xfreerb_sys_failrb_id2symrb_hash_arefrb_hash_asetrb_hash_deleterb_fix2intrb_num2intdate__jisx0301date__httpdatedate__rfc2822date__xmlschemadate__rfc3339date__iso8601rb_ary_new_caparb_usascii_str_new_cstrrb_obj_freezerb_ary_pushrb_gc_markrb_rational_denrb_rational_numrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_scan_argsrb_string_valuerb_enc_getrb_enc_dummy_prb_hash_newdate__strptimerb_enc_copyrb_eArgErrorrb_raiserb_error_frozen_objectdate__parsememchrrb_str_new_staticrb_str_catrb_str_newrb_usascii_str_newrb_num2dblrb_warningrb_usascii_str_new_staticrb_f_sprintfrb_str_appendrb_float_valueroundrb_float_newrb_usascii_encodingrb_enc_sprintfrb_cRationalrb_obj_is_kind_ofrb_cNumericdate_zone_to_diffrb_eTypeErrorruby_xcallocrb_data_typed_object_alloctzsetlocaltime_rclock_gettimerb_int2bigrb_gc_writebarrier_unprotectrb_copy_generic_ivarrb_marshal_loadrb_obj_classrb_obj_classnamerb_num_coerce_cmprb_ary_new_from_argsrb_memhashmodfrb_block_given_prb_yieldrb_frame_this_funcrb_enumeratorize_with_sizeabortrb_out_of_intrb_gc_register_mark_objectrb_sym2idrb_cTimeInit_date_corerb_cObjectrb_define_classrb_mComparablerb_include_modulerb_define_constrb_define_alloc_funcrb_define_singleton_methodrb_define_methodrb_define_private_methodrb_undef_methodrb_cFalseClassrb_cFixnumrb_cNilClassrb_cFloatrb_cTrueClassrb_cSymbol__ctype_b_locrb_str_to_inumrb_reg_nth_matchstrncasecmprb_num2longrb_reg_newstrspnmemcpyrb_cstr_to_inum__ctype_tolower_locrb_str_new_cstrstrchrstrpbrkstrcpyrb_backref_getrb_match_busyrb_str_duprb_backref_setstrncmprb_internrb_uint2bigrb_islowerrb_toupperstrtoulruby_snprintfrb_tolowerrb_isupperrb_str_formatrb_string_value_cstrstrlcpymemmovememsetlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.3GLIBC_2.14GLIBC_2.4GLIBC_2.17/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64 ui	K� ui	K)ii
W���aii
l���vui	K�"0T�"�S �" �"@�"x�H�"plX�"�T��"����"ގ��"����"���"���"���"���"� �"�0�"�@�"�P�"�`�"��p�"ą��"Ñ��"���"���""���"Ʌ��"���"���"��"^��"Q� �"\�0�"�@�"U�P�"��`�"!�p�"���"����"���"���"C���"p���"k���"���" ��"��"� �"�0�"�@�"�P�"#�`�"(�p�"����",���"0���"5���"9���">���"C���"G���"K��"P��"T� �"L�0�"9�@�"Y�P�"^�`�"b�p�"f���"j���"n���"s���"w���"{���"���"����"���"���"�� �"��0�"��@�"��P�"��`�"��p�"����"����"����"����"����"���"ď�"ȏ�"͏�"я�"Տ �"ڏ0�":�@�"��P�"ޏ`�"�p�"���"���"���"����"����"��"��"��"��"W��""� �".�0�":�@�"A�P�"P�`�"[�p�"d���"s���"k���"����"����"���"H��"���"���"�"̐ �"ِ0�"�@�"БP�"�`�"��p�"���"���"���"���"$���"(��"1��"7��"<��"F��"L� �"S�0�"B�@�"`�P�"h�`�"x�p�"~���"����"����"����"����"ۑ�"���"ő�"͑�"ؑ�"� �"�0�"�@�"��P�"�`�"�p�"#���"*���"3���"9���"/���"?��"K��"W��"d��"v��"�� �"��0�"��@�"��H�"��P�"d�X�"��`�"��h�"��p�"��x�"����"����"����"����"Ò��"����"���"ǒ��"˒��"ϒ�"Ӓ�"ג�"F��"���"��"��"���"���"�� �"��(�"��0�"��8�"��@�"l�H�"��P�"��X�"��`�"��h�"Ċp�"̊x�"Պ��"\���"`���"d���"h���"l���"p���"t���"x���"|��"���"���"���"#��"*��"1���"9��"C��"L��"S��"� �"�(�"�0�"�8�"�@�"�H�"� #�(#�0#�8#�@#�H#�P#�`##�h#*�p#1�x#9��#C��#L��#S��#\��#`��#d��#h��#l��#p��#t��#x��#|��#���#��#��(#��0#��8#��@#��H#l�P#��X#��`#��h#��p#Ċx#̊�#Պ�#0;�#�}�#p��#0��#��#���#��#���#p��#���#���#p�#��#�U# �#�� #`�(#�p�"x�"��"��"��"��"��"#��"D��"N��"W��"^�"q�"s�"u�"w�"}�"�# #(#0#8#@#H#P#	X#
`#h#p#
x#�#�#�#��#�#�#�#�#�#�#�#�#�#�# �#!�#�#"#�#$#% #&(#'0#(8#)@#*H#+P#,X#-`#.h#/p#0x#1�#2�#3�#4�#5�#6�#7�#8�#9�#:�#��#;�#<�#=�#>�#?�#@#�#A#B#C #E(#F0#G8#H@#IH#JP#KX#L`#Mh#Op#Px#Q�#R�#S�#T�#U�#V�#��#X�#Y�#Z�#[�#\�#]�#��#_�#��#`#a#b#c#d #e(#f0#g8#h@#iH#jP#kX#l`#mh#np#ox#p�#r�#��#��#t�#u�#v�#x�#y�#z�#{�#|�#~�#�#��#���H��H�ѻ"H��t��H����5�"�%�"��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��������hb�������hc�������hd�������he�������hf�������hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!������hm��������hn��������ho������hp�������hq��������hr�������hs�������ht�������hu�������hv�������hw��q������hx��a������hy��Q������hz��A������h{��1�������%M�"D���%E�"D���%=�"D���%5�"D���%-�"D���%%�"D���%�"D���%�"D���%
�"D���%�"D���%��"D���%��"D���%�"D���%�"D���%ݳ"D���%ճ"D���%ͳ"D���%ų"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%}�"D���%u�"D���%m�"D���%e�"D���%]�"D���%U�"D���%M�"D���%E�"D���%=�"D���%5�"D���%-�"D���%%�"D���%�"D���%�"D���%
�"D���%�"D���%��"D���%��"D���%�"D���%�"D���%ݲ"D���%ղ"D���%Ͳ"D���%Ų"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%}�"D���%u�"D���%m�"D���%e�"D���%]�"D���%U�"D���%M�"D���%E�"D���%=�"D���%5�"D���%-�"D���%%�"D���%�"D���%�"D���%
�"D���%�"D���%��"D���%��"D���%�"D���%�"D���%ݱ"D���%ձ"D���%ͱ"D���%ű"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%}�"D���%u�"D���%m�"D���%e�"D���%]�"D���%U�"D���%M�"D���%E�"D���%=�"D���%5�"D���%-�"D���%%�"D���%�"D���%�"D���%
�"D���%�"D���%��"D���%��"D���%�"D���%�"D���%ݰ"D���%հ"D���%Ͱ"D���%Ű"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%}�"D���%u�"DH�=�"H��"H9�tH�ޫ"H��t	�����H�=��"H�5��"H)�H��H��H��?H�H�tH��"H��t��fD�����=}�"u+UH�=ҫ"H��tH�=�"����d����U�"]������w�����G��H��F<��H�B<��HЉ91�A�0A���w��;w��;v1��@���u�1�	����fD�7@��u>�G,�����i��ƒ�?����?k�<��+G x ������=QOƒ��G�7�f��Q��f����%���H�H���H��0�fD��H����@��uJH�5S�"SH��H��tH�߹�5w�1�[����D�H�=�/���H��H��"����5w���fD�����tH�GH���f���H�5e�"SH��H��tH��1�1�[�_�����H�=/����H��1�[H��H�'�"1��0���@��t@��uH���<1�����H�H���H9�HM���@��t@��uTUH��SH��H��H�5�"H��tH��H��H�ߺ[1�]���@�H�=#3�o���H��H���"��H�H���H9�HE���@��uJH�5��"SH��H��tH�߹��1�[�E���D�H�=�-���H��H�U�"�����V���fD��SH��H�5!�"����H�H�r�"H�C[�ff.����H��H�5�"������tH�xH�����D�������~%�6f���5�5�*��^�5f(�fT�f(�f.�v3�H,�f���=�5fU��H*�f(����f(�fT��\�fV���5f(��Y�f(�fT�f.�v5�H,�f��fU��Dd5�H*�f(���fAT��\�f(�fVՁ�lf���-C5�*��Y
?5�\�f(��X�f(�fT�f.�v5�H,�f��fU��D�4�H*�f(���f(�fAT��\�fVʃ�f��f(��*��Y�4f(�fT�f.�v3�H,�f���=�4fU��H*�f(����f(�fT��\�fV��X�f�Ҹ�*��X��X��\
�4f/�v�\�1�A��,��Ðf���*�f/����5&4�~-�4�F4�.4f(��X�f(��\
B4�^�f(�fT�f.�v5�H,�f��fU��D�3�H*�f(���f(�fAT��\�fV��Y�f(�f(�fT�f.�v5�H,�f��fU��D�3�H*�f(���f(�fAT��\�fV�f(���3f(��\�f(��^�f(�fT�f.�v8�H,�f��fU��D
03�H*�fD(��D�f(�fET��A\�fV��Y�f(�f(�f(�fT�f.�v3�H,�f���=�2fU��H*�f(����fT��\�fV�f(��\���2f/�f(�r#�\�2�\
�2�,���,���,‰��\��\
�2��f��\
�2�~-@3�5X2f(��^�2f(�f(�fT�f.�v3�H,�f��%12fU��H*�f(����fT��\�f(�fV��2f(��Y�f(�fT�f.�v3�H,�f��=�1fU��H*�f(����f(�fT��\�fV؃�f���*��X��\����ff.�AWAVAUM��ATA��U��S��H��HH�L$L��$�L�t$4L�D$�D$dH�%(H�D$81��F
��H؅����DL$L����D��M��fA(�����L�T$L�\$L��A�}L��L�����D9d$4t*1�H�T$8dH3%(��H��H[]A\A]A^A_�DA9uѸA9*t����A�H�D$0�T$,H�D$ D��������t�H����M��M��AWH�L$0��D���D$����ZY��tϋl$,A�}L��H�L$H�T$��D$������D9d$4�=���H�D$9�0���H�D$�(�����f�AWA��AVI��AUI��ATUS�H��(�D$L�d$H�l$dH�%(H�D$1��
f�����t/H��H���M��AU�D$M��D������ZY��tθH�L$dH3%(uH��([]A\A]A^A_����DAUM��ATI��U��S��H��(dH�%(H�D$1�H�T$H�t$�D$�'����|$�L$��xp����$I��������)�)Љ�)ƒ�)�f��)�ǍD=��*�A�$1�f/���A�EH�D$dH3%(u9H��([]A\A]�fD���%I�$�щ���)�������)�)ȍP���ff.�AVA��AUM��ATM��U��S��H�� dH�%(H�D$1�H�T$H�t$�D$�2����D$�L$�p��D)�|k�J�%I�$����)�������)�)��ʍ�)�f�)�T�1���*�A�$f/���A�EH�D$dH3%(u8H�� []A\A]A^ù����)Ѻ%I�$����)�������)�)ȍP���AUI��A��fD(�ATL��A��UL��SH��H��(dH�%(H�D$1�H�L$H�T$����H�T$H�t$A�9fA(��)����D$�p��D)��|x�J�%I�$����)�������)�)���)�B�L"��x}�Ⱥ�$I������4
��)ƍ�)�)��3�MH�D$dH3%(��H��([]A\A]�@�����)Ѻ%I�$����)�������)�)ȍP)�B�L"��y��Ѻ�$I��ȉ������)ֺ%I�$��ȃ�)�������)�)ȍH�c�����fDAWf(�A��AVM��AUATA��U��S�Ӄ�H��HL�L$L��$�L��$�dH�%(H�D$81���H�D$(H�H�$����f(�M��M���L$D��ډ�D���4���L�D$L��D���L$H�$A�}f(�����1�D9|$(t)H�t$8dH34%(��H��H[]A\A]A^A_�fDA9.u�H�D$9������@�ʍL�L$$�L�D$4L�\$�D$����L$H�$D��<�H�L$,)�f(�L�D$0|$4�g���1�D9|$(�L$L�\$�V����l$,�����A��AWfD(�AVI��AUATA����UH��SH��H��H�D$H�L$,H�T$(dH�%(H�D$81�H�t$$�D���D�l$$L�T$4L�L$0M��L��fA(ºE�}�L�T$D��L�L$�����D$0L�L$L�T$D9���E�>D��)��Ⱥ%I�$��)��������MA�����A���%I�$D���D��)�������)�D��)…ҸDЉH�D$8dH3%(��H��H[]A\A]A^A_�f��D$L��M��D����"���E�.D��+L$0�W����Ѻ�$I��������)щMA����W���������%I�$D)����)�������)�)ȍP�P�����ff.��AWf(�M��AVI��AUATA��U��S�Ӄ�H��HdH�4%(H�t$81���H��$�L�l$(Hڅ���I��L�ɉ�L�L$f(���D���L$�C���L�L$L��L���L$L��A�9f(�����1�D9d$(t*H�t$8dH34%(��H��H[]A\A]A^A_��A9.u�1�A9���ǐH�L$4���L�D$$H�D$L�L$�D$����L$H�L$0L��<�H�T$,)�f(�|$4�+���D9d$(�L$L�L$H�D$t1��S���D�l$,����:�f.�UH��I��fD(�S��H��(dH�%(H�D$1�H�L$H�T$�N�H�T$H�t$A�8fA(��g���+\$���]H�D$dH3%(uH��([]����AVI��AUATI��UH��SH�H�����H��u1�[]A\A]A^ÐI����H�}L��L����dH����H��u�H�E�8tMI��
��f�H�H���%�L��L��H��H�E�H�}�l�H��u�H�}��I9�w�L������;"�k����DAWAVAUATUSH��H��H�=8�"H�������H��H�����H��H���H�=�"H���R��H��H����H���H�5ѥ"H���hH����1����%H���I�ƺ1���H�5��"H��H���H��!�1��q��%H��!I�Ǻ1��U�H�5>�"H��H����H��y�1��.��%H��yI�ź1���H�5�"H��H���?H���1����H����%I��1����L��{J�H�ž+1���H�=��"I��H�����[�H��L��H����H�=^�"H���}�8�H��L��H����H�=3�"H���:��H��L��H�����H�=�"H�������H��L��H����H�=ݣ"H�������H��H��H����H�=��"H��tu��H��H����H��H��[]A\A]A^A_�H���+H��1���H�5��"H��H�������A�H�=���_�H��H���"���H�=F��?�H��H��"�k���H�=;���H��H��"�,���H�=}���H��H��"���H�=�����H��H�բ"���H�=����H��H���"�c���H�=����H��H���"� ����H�=���H��H���"����H�=i�_�H��H�u�"�>����H�=I�?�H��H�]�"�����H�=)��H��H�E�"�x���H�=���H��H�5�"����H��@��t�1�H���@�s�H���ff.���H���4�@��H���D�@��H���D�@��H���4�@��H����@��H���$�@AUATUH��SH��L�,�H����I��@H�;�H��t�.�H��H���s�H��L��H�����L9�u�L���W�H��L��[]A\A]�f�USH��H�-��"@��uMH�5.�"H��H��tH��H��H�ߺ[1�]���fD�H�=���H��H��"��H��H��[]���f���SH��H���t	��H�{[��SH����uH�����t
�����tH��[��H�����t�H�H��u�H��[���f.�UH��SH��@��uH��H�����u
H��H��[]��c���u�H�E��`H��`u�H���`H��`t�H��H���;���f�AWf(�AVAUATA��UH��S��H��HH�L$dH�%(H�D$81�����L�t$4L�l$0L�|$$f(�L��H��D���$����Ef�L���$H�L$L���D��*��E1�f/�f(�����}����1�D;d$$t)H�\$8dH3%(��H��H[]A\A]A^A_�fD1�9\$0����DH�D$(A�L�t$4H�D$H�D$,L�l$0H�D$�f�A��A��taH��L��f(�D���t$L�L$(M��D���L$�i�ZY���$t�\$(L�|$$f(�L���L���$������D;d$$t
1��-���fD�$�\$0������DAVAUATUH��H�.S��H�� dH�%(H�D$1�L�d$L�l$M��L���c��L�����H�|$�����x�SH�|$����H�������9H�D$H�0�� �AL�`L�p���GH���`��I�����L��H��L��I��L��H���!��H����H�=p�"H���g�2�H��H���7��H�=H�"I��H���d��H��H�����H��I��tCH�t$L���n�A��u
I�������H�=�"H�������L��H��H�����H��tCH�t$H���%�@��u
H������H�=��"H�����}�H��H��H���?��H�L$dH3%(H���H�� []A\A]A^�H��L�`��I���������L������H�|$�O���x��H�|$�;��H���c������H�D$L�(A�� uZI��H�hA���l���f�H�=�����H��H��"�y���H�=����H��H���"�|���H�hL�h����H�U�Ѓ�����H�D$�����H���������H������������%H	�H�U���I�$�Ѓ�����H�D$��6���H������*���H�����������%H	�I�$����H�=����H��H��"���H�=����H��H���"������'���fD�H���������@�H��������F���H�M�"H�5VH�81������G��H�0�"H�5iH�81����ff.�@��H�U������H�M����ATUSH������H�������H��ƒ���������I��H9�tNH�5}"H������H�5}"L��H�������€t5�E�tV�o�ʀU�oX]�o` �Ue H��[]A\���o��E�oHH�؉UM[]A\�H�����H�"�"H�5�H�81�����UH�G��SH��(dH�%(H�D$1�H�\$L�D$H�����H�����H�|$�
���x�wH�|$���H���!�����]����H�t$H�|$���H�=B�"H��H�������H��H�����H��H��u%H�L$dH3%(H���H��([]��H�t$H��������uFH�����t=H��Ѓ�����H�D$�u#H�����tH�������t%H	�H�H�=��"H��t\����H��H��H������_���@H�D$�����DH�=�����H��H�E�"�
����H�=�����H��H��"��H���i����8���H�E�"H�5NH�81������?��ff.�@�������AWAVI��AUI��H��ATUS��H��dH�%(H��$�1�H�l$L�d$0H��L�d$�f������H�����H�|$�����x�4H�|$����H��������H�D$H�(�� �DH�XH�hL�t$ L��L����1�H��H������H���N1�1�H��*��I��H9���L�|$f�L��H��L���b�H�t$L��H�����H�����H�|$H�4L9�tH�t$���L�d$H�t$H9�v3�>H��t�f��;��H��H9�u�H��L��H)�� ��H�t$L���#��A��u-I�����t$I�U�Ѓ������H����H��$�dH3%(L����H�Ĩ[]A\A]A^A_�@H��H�X�����H9������H��L��H)����H9�����[���H�|$L��H���8�H�|$H���[��H�|$I��L9��*����u��� ���L������H�D$�+���H�D$��A���H������5���H��������$���%H	�I�E�����~��H�g�"H�5�H�81�����fD��H�
��0�����H�
�� ���ATI��H��USH��dH�%(H��$�1�H�l$H�\$ H��H�\$�5��H��H�|$L���5�H�|$H�����H�|$H��H9�t�v��H��$�dH3%(H��uH�Đ[]A\����ff.�@��H��H�=��M���ff.�f�����f.���H��H�=�����ff.�f���H��H�=����ff.�f�����f.���H��H�=�����ff.�f�@��tH����5w��HN��@H�5��"SH��H��tH�߹�5w�1�[����H�=>���H��H�M�"��ff.���H����@��t9H��H�x"H���A��0H9�"Hi��QH�D�fDH�_c�nt��H9�}޹���*1��k��ff.�@��t9H��H�x"H����H9�"Hi�ʚ;H�D�fDH�A���H9�}޹�5w��*1����ff.���UH��	S��H��(dH�%(H�D$1�H�L$L�D$���H�l$�3*F��~H�|$����f.�z_f(�fT
�f.
Sw�
Qf/�w;f/Kw1H����HD�H�T$dH3%(uH��([]��H�=�	1���������ff.��F
��A��H�1��V���ws��xw@���������Q������)�1�iҐ9���H�Hc�H�H��H��H�H��E�ɋ�B�TDH�E��~NA9�I�1�E��fD��A��A��@��tTD�к��Q��1���iҐA)�A������1��D�����Q������)¸k�d9��8����S��������Q������)¸k�d9��0�������UH��SH��H��(dH�%(H�D$1���tGH�H��'�$�?H����$~nH��*%�I�
H�=9�����H�$�_D1��QfI�H�߾<���H����1��=�I�H�߾<�m��H��t`�
H�=��G����H�$�-H��1��:��H��H�D$�8��H�T$dH3%(��H��([]�D1��WJ�H�߾<����H������1��_�J�H�߾<����H��tQ�
H�=F����H�$�[���f��H�=�����b���f.�H���X%~��
H�=�V����H�$�
������AWAVAUATI��USH��H��(dH�%(H�D$1������uH�����t�����
�?H�5Ȏ"H����H��1�1������	H�=�H������H����H���3�H�5�p"L������H�=ZI�����L�-~�"H�\$H�$M���H�5]�"H����H�ٺ�1��`��H�51�"H��H����H�ٺ�1��9��H��"I��H���N�A���/���L��H�޺H��1����1�L��H��1�����H��H�D$����H��H���Q���A��	H�=g���H��@1���H�߾>���H�������H�=��m��H��H������H�}H�E tH�}L������H�L$dH3%(��H��([]A\A]A^A_�D�H�=�����H��H�݌"�����	H�=�����H��H���2����_���DI�~������H�=����H��H���"�����H�=d�o��H��H�m�"�C����H�=E�O��H��H�U�"����H�=�/��I��H�=�"�������ff.���U��SH��H�vH��dH�%(H�D$1�H���b��H�4$��
H�$�H�����H��H�=�H���c����H��+H��1�����H�T$dH3%(uH��[]��p�����g����@��t:@��u\H��H���H��t0������t&@��t �����t=��t01���
u
�H�����u�H�5��"��1��?���H��t+1��H�������u1�H���@H��u���@��f�AUf��I�����ATI��U���SHc�H�\H��f/�F�L���+���H��tI�$H��[]A\A]��Hc�L���*H�|?1����H�ٺ�+H��1��}��I�$H��[]A\A]�ff.�ATI��UH��SHc�H�\���H��tI�$[]A\�H���*1��K�q���H�ٺ�+H��1����[]I�$A\�ff.�@��UH�5l"S�H�������uH��H��[]�fDH��H�D$�#��H�D$�x xxf��������QO����tH�hHc�H�|?���H��H������H��u�H���D�H��H�ߺH��[�+1�]�G����ǀQ��AUf�ɸ��ATUH��S���H��f/�HF�@��tH������?H��H�H9�~rI���$�+1��H�\����H�5݈"I��H����L��1�H�ٺ���I�$H������H��tVL�����-h�EH��[]A\A]�HhH��xuH�H��H�|H��H�>HEʍ����]H��[]A\A]�DL��H�ٺ�%�3��I���fD�H�=�����H��H��"�G����H��H�H��H��H)�H�DH�K�H��@��H��(��H��dH�%(H�D$1�H�T$H�t$�~����L$��xn��tA�Ⱥ��Q������)�iҐ)у�H���H�|$dH3<%(��H��(�@�Ⱥ��Q������)¸k�d9�t��������t/����Q����iҐ)ֺ���HD��D�Ⱥ��Q������)¸k�d9��`�������fD��H��(�H��dH�%(H�D$1�H�T$H�t$�n����T$1�����H��?H��?��H�L$dH3%(uH��(��-��ff.�f�ATI��H�5L�"UH��SH��H��tgH��1��K�q��3��I�$H�����H��u2H�߹K�q�1��%�	��H���!��[�E]A\�f�H�����[�E]A\þH�=�����H��H���"�y���AWf(�I��AVM��AUM��ATI��U��SH��H��8fT
�dH�%(H�D$(1�f.
5��@���-H���
�"H�H=-��H=����
��"f.
{sDf(�L��L��H���L$����L$��L��A�<$L��f(�����H�L$(dH3%(����H��8[]A\A]A^A_�fDf(�f.
�z�u�H���D$�����D$��L��H�T$������t�Hc|$L��L��H�|?� ���I�?����H��usA�E�?��u��H�t$ L��H�������K���fD���<�D$�&���
��"�D$H���C�������f.�H�����A�$�����f.�AWf(�I��I��AVM��AUA��ATA��USL��H��HfT
�H��$�L��$�H��$�H�$dH�%(H�D$81�f.
8��@���pH���
�"H�H=-��H=����
��"f.
��@L��f(�L��H���L$���H���;D��U�L$D��M��L�L$L��f(��!��A��XZH�L$8dH3%(D���4H��H[]A\A]A^A_�fDf(�f.
�z�u�L��L�\$�D$L�T$���H��D��M��U�D$��L��D��L�L$<���^_A�ą�t�L�\$Hc|$,L�T$H�$L��H�|?L�$L�T$���L�$I�;���L�T$H��u}�M����u�nH�t$0H��L�����������H�L$���<�D$H�|$����L�T$�D$H���
F�"L�\$������l���fDL�����������\���ff.��SH��H���GdH�%(H�D$1�(�T
�.
�vH�Z��s�{H��L�D$�������������$��CH�D$dH3%(upH��[�@H��o���H��uJH�{@��tH��x&�k�"땐1����<����H��t��M�"�l����f��ZC�V����m���ff.�f�AWf(�I��I��AVAUM��ATM��U��S��H��HfT
�H��$�L��$�L��$�H�$dH�%(H�D$81�f.
����@���
H���
��"H�H=-��H=����
|�"f��f.���fDf(�L��L��L���L$����L$f��f/��T�C
��H؍C����_A�$1�Hc˃���H�H�H��H��H�H�i�����T(H���$9��A�]�A�.H�$A�uM��f(�A�<$�������f�f(�f��f.��>����8���L��L�\$�D$L�T$�0��H��L���AW�D$��M���L�L$<���ZY�Å���L�\$Hc|$,L�T$H�$L��H�|?L�$L�T$�Y���L�$I�;�
�L�T$H����A��l���u��H�t$0L��L���H����'fDA�<$��M��L����-��L$����uy1�H�L$8dH3%(��u~H��H[]A\A]A^A_�fDH�L$���<�D$H�|$����L�T$�D$H���
n~"L�\$���������fDA�.�o���L������A�$�p����z���f.�ATUH��SH��H��@��uWI��A��tk��������H��H���H��tY@��tS�����
��H�5%}"H����H��1�1��H���H��I��H�EH��L��[]A\�fDH��H��uH�5�w"H���/��H��1�����%�H��I�ĺ1��߼��H�5�w"H�EH����H�ǹA�1�跼��H�EH��L��[]A\�������
t6��uQH���9�����b���H�H���U���M������H��H��@H���������
������@������H���Ͽ���D$脺���L$f.������t����D�H�=������H��H��v"H�E����@�H�=�����H��H�uv"����H�=Z�����H��H�m{"�L����;����D$���L$f.��a��������V���DATI��USH��H��@��uVH����tl��������H��H���H��tZ@��tT�����
��H�5�z"H���EH��1�1��	���H��H��I�$H��H��[]A\��H��H��uWH�5hu"H����H�߹�1�軺��H�߹�H�ž%1�蟺��I�$H��H��[]A\�������
t.��uIH���!����t�H�H��u�H���6���H��H��@H���"��������
�����.���@���H���H��追���D$�t����L$f.��%���t�����D�H�=��跾��H��H�mt"�	�����H�=j�菾��H��H�}y"����K����D$�����L$f.�������e������DATUH��SH��H��@��uWI��A��tk��������H��H���H��tY@��tS�����
��H�5�x"H����H��1�1�����H��I��H�EH��L��[]A\�fDH��H��uH�5�s"H���/��H��1��˸���%�H��I�ĺ1�诸��H�5`s"H�EH����H�ǹ��1�臸��H�EH��L��[]A\�������
t6��uQH���	�����b���H�H���U���M������H��H��@H���������
������@������H��蟻���D$�T����L$f.������t����D�H�=��藼��H��H�ur"H�E����@�H�=y��o���H��H�Ur"����H�=*��O���H��H�=w"�L��������D$����L$f.��a��������V���DATUH��SH��H��@��uWI��A��tk��������H��H���H��tY@��tS�����
��H�5�v"H����H��1�1��ض��H��I��H�EH��L��[]A\�fDH��H��uH�5Hq"H���/��H��1�苶���%�H��I�ĺ1��o���H�5q"H�EH����H�ǹ1�1��G���H�EH��L��[]A\�������
t6��uQH���ɹ����b���H�H���U���M������H��H��@H���������
������@������H���_����D$�����L$f.������t����D�H�=L��W���H��H�p"H�E����@�H�=9��/���H��H��o"����H�=������H��H��t"�L����˸���D$耳���L$f.��a��������V���D��ATH���A�3*FUS��H��@dH�%(H�D$81�H�L$L�L$(L�D$ ����H�l$H�|$ ��~L�d$(@����边����L��贳��f.�zvf(�fT
��f.
2�w�
0�f/�wRf/*�wHH�T$0H�L$��H��L�L$L�D$����H�H�Ѓ�H�T$8dH3%(u2H��@[]A\�DH�=f�1�芲��f��@�k������X���诳��ff.�@ATUSH��H���G$dH�%(H�D$1�(�T
��.
��Q�Z��s,�{(H��L�D$����������Լ���;@��tl�s,D�C ������?D�$����?��i�k�<��D)�� =Q����A���D�K�;H�D$dH3%(�KH��[]A\�@�C,D�C ���E���A��D[��A������A��QDO�D�غų��E���A����D�������%>���B�4	��������A��E)�Ei�E)�D��E���D���D��)�k�<��A)���D)�D	��	�	ЉƉC,����H���H��ujH�{@��t8H��xN��r"���fDA������A�ÀQ�-���@1����<��H��t��er"�;���f��ZC$�-���荱��ff.�f�����€t��SH��t�C [��1��D����C [�ff.���H��H�5�S"�L������€t��tHcx H�|?H���ٹ��f�H��H�D$�S���H�D$Hcx H�|?����H��H�51S"�����€uf��Z@H���s�����tf��Z@$H���Y���f�H��H�D$���H�D$��ff.�����tzUSH��H���t]�[ �؉����1Ã�)Ã�+����ų��H��A�����H�lj�H�5-�����i�)É�[A��1�A�Љ�]A�������[����f��H�=\�����ff.�@��SH���S���H��H��� u�C���[H���D�3���[H�@�ff.�f���H��H�5�Q"蜰��H��H��������AUH�v�A�3*FATUS��H��hdH�%(H�D$X1�H�L$0H��H�D$PP1�L�L$PL�D$H賮��L�d$@H�|$HH�l$PXZ��~L�l$H@���V�Y���H������V�F�����L���<���f.�f(���fT6�f.���8���f/���f/
����A����L��f(�H�H=-�P�
0o"f��f/���H�L$PH�����H�D$4L��PH�D$8PH�D$<PL�L$@L�D$<���H�� ��H�H�Ѓ�H�T$XdH3%(��H��h[]A\A]�f�H�=��1�責��f��A���V���1���L��<�L$�����L$H��f(��:����D�S���H�����������@��������f�f��f(�f/������~�H�T$H�t$PL���d��|$H�L$ ��L�D$$���M����H�H�Ѓ�����@H=�������
�m"����
���f.���AUH��ATA�3*FUS��H��XdH�%(H�D$H1�H�L$ H��H�D$@P1�L�L$@L�D$8�C���L�l$0H�|$8H�l$@XZ��~L�d$8@�������H��������ֱ����L���̫��f.���f(�fT
��f.
F�w�
D�f/�wnf/>�wdH�L$@H�����H�D$$L��PH�D$(PH�D$,PL�L$0L�D$,�c�H�� ��H�H�Ѓ�H�T$HdH3%(uJH��X[]A\A]��H�=^�1�肪��f��@�c���H������*����P������%���蔫��@ATI��H��UH��SH��H��@dH�%(H�D$81��Ǫ��H�߃��D$��谰����H�����蝰����H�L$(H����L��H�D$,PH�D$0PH�D$4P�D$(L�L$8L�D$4��H�� ���t�t$ H�|$(H�T$0���H�T$0H�t$8dH34%(H��u*H��@[]A\�D�k������y���@�[������V���蟪��ff.�@AUI��L��ATI��UH��SH��H��HdH�%(H�D$81��©��L��A���D$��誯��H���A����薯��H�߃�����胯�����D$fT��f.���A����L���
�j"H�H=-��H=����
�j"f.
�����H�T$H�t$(f(�L���L$��H�D$ D���P��H�D$$P�L$�|$ f(�L�L$(L�D$$�̼��ZY����H�\$0�t$H�|$(H���,��H�D$0H�L$8dH3%(�mH��H[]A\A]���L$f.
"��T����N���L���^���H�T$ D���R��H�T$,R�D$��L�L$(L�D$$�4���_AX�¸���{���Hc|$$H�T$H�t$(H�|?��H�|$(�?��H�����t$ �����u��H�\$0H�T$L��H���y������@����H���A���������H�߃����������������D��L��1��<�O����
�h"H������$���f�L��H�\$0�C����D$�}���f.����������AWAVAUATI��USH��H��HH�=mc"dH�%(H�D$81�H����臫��H��H��茧��H��H���oH�=(c"H�����Z���H��H���_���I��H��t-H�=�b"H�����1���H��H���6���I��H����H�=�b"H��������H��H���	���I��H��tpH�=�b"H����۪��H��H�����I��H��tGH�=`b"H����貪��H��H��跦��H��t!L��L��L��H������H���ZfDH�=b"H�����k���H��H���p���I��H���#H�=�a"H�����>���H��H���C���I��H����H�=�a"H���&����H��H������I��H����L���Q���L���D$���L��A�����H�L$(H��L��H�T$,��RH�T$0RH�T$4R�D$(D��L�L$8L�D$4��H�� ��t(�t$ H�|$(H�T$0�e��H�D$0H���JfDH�=�`"H�����[���H��H���`���I��H����H�=�`"H�����.���H��H���3���I��H��tJH�=s`"H���:����H��H���
���H��t$M��L��L��H���N���H����@H�=!`"H����軨��H��H�����H����H�ǹ�1��-�ͤ�����%H��1�贤��I��H��tkH�=�_"H�����V���H��H���[���I��H��tBH�={_"H���"�-���H��H���2���H��tM��L��L��H���v���H��H�L$8dH3%(H����H��H[]A\A]A^A_�f.�H�=����Ϩ��H��H�}_"�$���H�=���诨��H��H�U_"�1���L�����L���D$����D$H�L$H�T$(L�L$$L�D$ ��L���������5����t$ H�|$(H�T$0���H�D$0H������H���$���@H�=i^"H��������H��H������H��������K����H�=�����H��H�-^"����H�=����ϧ��H��H�]^"����H�=���诧��H��H�^"�M���H�=���菧��H��H��]"����H�=����o���H��H��]"����H�=d���O���H��H��]"�'���H�=�]"H���p����H��H��� ���I��H�������H�����H���LE����f.�H�=����ߦ��H��H�]]"�P���H�=)]"H��� 諥��H��H��谡��I��H�������H���֩��H���LE��2���DH�=����o���H��H��\"��H�=����O���H��H��\"���H�=����/���H��H��\"�Y���H�=�������H��H�5\"���H�=�����H��H�U\"���H�=g���ϥ��H��H�\"���H�=���该��H��H�%\"�p���H�=���菥��H��H��["���H�=����o���H��H��["�@����K���ff.���D�A���u1�ËG,A��������SD�W����DW ��A������A��QDO�D�кų��E���A����������A��%>D�F��ʉ�A��	Ѻ����D��E)�D)�A��i�A)�D��D���D���D��)�k�<��)É�[	�D	�	ЉG,��?�D��?�@A�€Q�d���ff.����D�A���u1�ËG,A��������S�_����_ ����������QO؉غų��A���A����A�������D���>D������	�A��E��E)�Ei�D)ۉ�A������[��)�k�<��A)�D��D)�D	��	�	ЉG,�����fD����Ð�ÀQ�h���D��D�A���u1�ËG,A��������S�_����_ ����������QO؉غų��A���A����A�������D���>D������	�A��E��E)�Ei�D)ۉ�A������[��)�k�<��A)�D��D)�D	��	�	ЉG,����?�fD����?Ð�ÀQ�h���DAUL�-��ATUH��SH��H����������؃�����H��H���H������t|������
������L�%'O"H�����I�4$H��H���X���H����؃���H�H���QH����m�]�gDH�����u�H�xN"H��H�0����H���DH�5�W"H����H��1�1��М��L�%�N"H��H��I�4$�ʟ��H��������M���@��u�H���;����s�f(��o��Y�f/���f/���f(��L$����L$�,�f��*��Ef.�z���1�H�=4�謚����wDH��踠��H��I��轟��A����H�5�V"H���+1�H��1����H��H��I�����H����A��tI�I��$�QH=���1�H��[]A\A]��������H�H�CH��vH��u�iۀQ��]H��[]A\A]�H��萞��H�ƒ�t�H�H���QH���w��UH��[]A\A]���L����H��H��U"�8���@�����H�I�H��������D�e��4���f�H�=���T��������H�=w�臟��H��H�uU"���H��K"H�5��H�81��И����SH�5�<"�_���D�A���u�[��H�Nj@,A���������_����_ ����������QO؉غų��A���A����A�������D���>D������	�A��E��E)�Ei�D)ۉ�A�������)�k�<��A)�D��D)�D	��	�	ЉG,��[��H�D���ÀQ�j���ff.�f���SH�5�;"�_���D�A���u�[��H�Nj@,A��������D�W����DW ��A������A��QDO�D�кų��E���A����A������D���%�F���>�����A��	�D��D)�i�A)�D��D���D���D��)�k�<��)�D��D)�	��	�	ЉG,��?[H�D�f�A�€Q�f���@��SH�5�:"�_���D�A���u�[��H�Nj@,A���������_����_ ����������QO؉غų��A���A����A�������D���>D������	�A��E��E)�Ei�D)ۉ�A�������)�k�<��A)�D��D)�D	��	�	ЉG,��[��?H�D���ÀQ�j���ff.�f�U�0H���SH���h���H��H��9"H��H���c���H�CH�dTJH�CH�CH�K H�C(��H��[]�����f.�AWI���AVA��AUE��ATI�� UD��SH��(�L$�D$�ʛ��L��H��8"H��H���Ś��A���L$I��uXL��H����L�cH��tFL��L���L$����L$��u/I���`H��`u#I�$��`H��`tL��L��跖���L$��L�c�D$`A����f��D	�D�s�ZL$$�K�L���K�kH��([]A\A]A^A_��A�$�����]���L��L$H�T$觙��H�T$�L$��;���H�H���.���L��L$�m����L$�I��H�C�^���H��H������ff.���ATH�5�7"US�l���H�����H�-V"� ��Z���H��7"I��H��H���U����I�D$H��H�����A�$H��H�dTJI�D$H�5;7"I�D$����o�oKHH��[]A\�DH�=�U"�T���H�5�6"H��H��貕���o�o[X�oc H�@` �S,�@����
�P,H��[]A\�SH��H��dH�%(H�D$1���ƒ���u%��t1�CH�L$dH3%(��H��[�@��u��_���D�G(�T
i�.
��v0�Z��s�{H��L�D$����������K����$��C�H��G��H��uRH�{@��tH��x.�CT"�f�1����<誓��H��t��T"�|����f��ZC�f����=���ff.�f�SH��H��dH�%(H�D$1���ƒ���u-�����GH�t$dH34%(�lH��[�������{ �t!{�C����x^��Q������D�S,�����i��у�?����?k�<�ʉ�)�x��Q~	��Q�9���K��C��y����]�����G(�T
��.
��vX�Z��s�{H��L�D$���������諛���$��C����D���Q�9�D�S�������@H����H��uJH�{@��tH��x&�{R"념1����<���H��t��]R"�\����f��ZC�F����}���ff.�f���ATH�5�3"US�|���H���udH���x�1�1�jH�=R"E1�E1���[���Y^H�5�3"H��I���7����oH��H���oSP�����EL��[]A\ÐH����1�1�jH�=�Q"E1�E1�����H�5 3"I��XZL���ӑ��H�sL��H��H�p蠯���C�C$H�߉E�C(�E�E�C,%��E��E�B����eu����EL��[]A\���H���#������|.�H�%I�$H������)�������)‰�)��D������%I�$H��)�����)�������)�)ȃ��f���H��������|6�H�%I�$����)�������)‰�)к��D�H���������%I�$)�����)�������)к)ȃ���D�H�����H��H�5�1"�|���H���d���H��H�H�D����H��H�5�1"�L���H�������|?�H�%I�$����)�������)�)��ʃ���HE�H���D������%I�$)�����)�������)�)ȍP�D��H��H�51"輏��H���d������|?�H�%I�$����)�������)�)��ʃ���HE�H���D������%I�$)�����)�������)�)ȍP�D��H��H�5q0"�,���H���������|?�H�%I�$����)�������)�)��ʃ���HE�H���D������%I�$)�����)�������)�)ȍP�D��H��H�5�/"蜎��H���D������|?�H�%I�$����)�������)�)��ʃ���HE�H���D������%I�$)�����)�������)�)ȍP�D��H��H�5Q/"����H��������|?�H�%I�$����)�������)�)��ʃ���HE�H���D������%I�$)�����)�������)�)ȍP�D��H��H�5�."�|���H���$������|?�H�%I�$����)�������)�)��ʃ���HE�H���D������%I�$)�����)�������)�)ȍP�D��H��H�51."���H��������|7�H�%I�$����)�������)�)��ʃ�H�H�����D������%I�$)�����)�������)�)ȍP��H�H����Ð��H��H�5�-"�\���H���������|7�H�%I�$H������)�������)�)���Hc�H�D�fD������%I�$H��)�����)�������)�)ȍPHc�H�D�f�U��SH��H��8dH�%(H�D$(1������G(�T

�.
&�vT�Z�H���D$�B����D$��H�L$ ��H�T$L�D$$�T����D$ H�t$(dH34%(��H��8[]�DH��Ǿ��H����H�{@��tTH��xj��J"�D�G$(�T
q�.
���`���H��{���H��t�f��ZC$�H����1����<���H��t��]J"�����f��ZC�����}���ff.�f�������f���1����D��SH��H��0dH�%(H�D$(1������G(�T
��.
��vS�Z�H���D$�����D$H�T$ H�L$$��H�t$襝���D$ H�T$(dH3%(��H��0[��H��W���H����H�{@��tTH��xj�OI"�D�G$(�T
�.
��a���H�����H��t�f��ZC$�I����1����<�z���H��t���H"�����f��ZC�����
���ff.�f���H��H�5Q*"����H�����H��H�H�D��ATI��USH��H��dH�%(H�D$1���ƒ���u_�����nH�C�������$��H�CH��L���s���9kt�#�H�D$dH3%(��H��[]A\�fD����kH�C���� ��$���H�CH��L������;ku��D�F(�T
y�.
����Z��s�{H��L�D$����������W����,$�H�C�k����"�����H�Ǿ-1��׆���K��%��S��$������H�ǹ�1��+覆���k%�����f.�H�ǹ�1��+�w����k%�����H������kH�C��������H�Ǿ-1��6����K��%��S���DH�~�w���H��uRH�{@��tH��x.�sF"����fD1����<�څ��H��t��MF"����f��ZC����m���ff.�f�SH��H�� �D$dH�%(H�D$1���ƒ���uG������H�C�f���ZT$�SH�D$dH3%(�MH�� [�f�����H��萋�����u"��H�C�f���Zd$�c$�@���H�C(���f��G(�T
�.
*�vh�Z��s�{H�L$L�D$������������D$��C�Ѓ���€�������H�C(�����������>���fDH�跸��H��uRH�{@��tH��x.��D"�r���fD1����<����H��t���D"�D����f��ZC�.���譃��ff.�f���ATUSH��H�� H�5�C"dH�%(H�D$1�H����1�H��1�襃��H�5�C"I��H���1�H��1�膃��H��螈��H�5oC"H��H����1�H��1��_���H���w����'�H�T$L��H�t$H���
���H��A��A��j��C"1ҋL$H�t$ H�=�C"��H�5(%"H��XZH���ۃ�����H���K���H��H�L$dH3%(uxH�� []A\���H�=�臇��H��H��B"�����H�=o��_���H��H�}B"�����H�=T��?���H��H�eB"��������ff.���ATUH��H���S��H��pdH�%(H�D$h1�H�L$�n������T$����H�\$(H���ۃ��H����.較��H�t$0H������H���$�D$@H�T$H�t$ ���D�d$<�X�D$D��lHc�H�|?�q���H��A��E��j�B"1�H��L$$H�t$0�j�H�5�#"H��XZH���F����D$H�����H��H�L$hdH3%(��H��p[]A\��H�|$�F���f.�f(��D$z2fT>�f.����������f/�wf/
������H�=2�1��V������\$���H�=^��w����r���H�=��f���fDAWI���AVE��AUA��ATM��UH���0SH��(�L$�D$�Z���L��H��""H��H���U���@���L$I��uXH��H���kH�kH��tFH��L���L$�s����L$��u/I���`H��`u#H�E��`H��`tH��L���G����L$��H�kD�k�KA��uOL��H����L�cH��t=L��L��������u.I���`H��`u"I�$��`H��`tL��L�������@L�c�D$`�T$xf��D�s �ZL$�K$�C(��$������$�	ЋT$p��	ЋT$h��	ЉC,��$���H��(L��[]A\A]A^A_�fDA�$�����>���L��踂����.���H�H���!���L��苃��I��H�C��P���H��H�������E���������H��L$H�T$�`���H�T$�L$��d���H�H���W���H��L$�&����L$�H��H�C�����H��H���0������AWAVAUATUSH��H��8H�5�>"dH�%(H�D$(1�H����1�H��1��~��H�5`>"H�$H����1�H��1��}��H������H�50>"I��H���D1�H��1���}��H����H�5>"I��H����1�H��1��}��H���ɂ��H�5�="I��H����1�H��1��}��H��袂��H�5�="I��H���o1�H��1��;�^}��H���v���H�5o="��<E�H��� 1�H��1��4}��H���̩��H�5=="H�D$H����1�H��1��}��H���#���H�<$H�T$�ʼH�t$ H��赳��H��A��1�j�¼1�UH�=`="AWAVAUAT�D$TPL�D$HH�t$`����H��@H�5�"H��H���v}���~�H�����H��H�L$(dH3%(�H��8[]A\A]A^A_þH�=������H��H��<"�����
H�=|����H��H�=<"�	����H�=U��߀��H��H�%<"����H�=8�迀��H��H�
<"�q����H�=��蟀��H��H��;"�*����H�=������H��H��;"����H�=o��_���H��H��;"����H�=T��?���H��H��;"�U����{��ff.���AWAVAUATUS��H��H�T$H�L$(H�p�dH�%(H��$�1��`z���
���$��~H�|$(�z���$1�H�t$@��y�������H�D$@H�D$8�|��H�t$PH�|$8�]y��H���]�D$dD�d$PH�\$xD�l$\��l�D$`D�t$XD�|$TH�l$H��A��<�D$�;DD�H���QH=���Hc�H�T$$H�t$0�$�H�|?�����T$$H�@��:"H���L�D-H��A��1�jATAWAVAU�D$@PRH�t$p1�H�|$H�T���H��@H�5	"H��H���z���$H���1�H��H��$�dH3%(u_H�Ę[]A\A]A^A_�f�H�=��1��L$1��x���L$�"���H���D$�T$�w���D$�T$I���>����y��H�=���~��H�=���}��ff.�@USH��H��dH�%(H�D$1���ƒ������G�;�(�Tʅ����o.
C�w9H�{�8���H���_H�{@���!H���7�(9"�
fD�Z�f(�fT
ȸf.
H�wvf��1��*�f/���H�L$dH3%(��H��[]�f������C$�k(�T
��.
��w�H�{蔬��H���\���f��ZC$�y���D1�f.�8"���E����fD.
Q����Z��s�{H��L�D$��������������C�,$����TЉk(����D1����<�w��H��������7"����@f��ZC���f��{�����fDH�觫��H��uRH�{@��tH��x.��7"�?���fD1����<�
w��H��t��}7"�����f��ZC����v��ff.�f���H��H�5�"�w��H�������H�H�����fD��H��H�5�"�lw��H���T�����H�H��H�Ѓ����AWAVAUATI��USH��H�5u"H��HdH�%(H�D$81��w��A����	I�������	H��I�$�ƒ�����	����	����	H�������	H��ƒ�����	�� ��H�CH����	H����H����	H���s��H��H� ���s��H�CH��L�0�ys��H��H� ���ds��H�CH�8�H���H�߉D$�Ls��H��H� �|�7s��H�C H�8����H��A��� s��H��H� �8�s��H�C(H��L�(�r��H��H� ����r��H�C0H�8�ˑ��H�߉D$��r��H��H� �/�r��H�C8H�8��s���D$E�����E���A��u
I������"L�uL��L���C����D$D�}�EA��u
I������5L�mL��L�������D$�E�f��H�E(�ZT$�E �U$H��ƒ���t	���[H�L$8dH3%(L���H��H[]A\A]A^A_�DH����H�P�H����H�������DH��L�-R4"�q��H��H� �-�q��H�C H�8L���-1��s��H��I���rq��H��H� ���]q��H�CL�8H��$"A�H�0L��L�|$�Yv��H���)��3"I�����t��3"�v��A�H�D$�f��p��H�C �n���f���p��H�C H�� ���fD��p��H�C H�����fD�p��H�C H���{���fD�p��H�C H���6���fD�p��H�C H��(����fDH���pp��H��H� ���[p��H�C H��L�(�Lp��H��H� �T�7p��H�CH��L�0�(p��H��H� ��p��H�C H�H�D$L���+1�H�
�2"�q���%��H��I��1���q��H�5Y,"I��H���}1�L��1��q��L��H�D$���%��H��I��1��q��H�5	,"I��H���1�L��1��yq��L��H�D$����L��I��衝��H�5�+"I��H���V1�L��1��Bq��L��H��I���Dy��H���H�|$H�T$,H�t$0跪��H�|$���L��A�����H�|$A���p���D$A��Q��A����I����5wv�A���Q=����L$f.��f(�fTʰf.J�w �H�f/���f/
>���E�����E��\H�t$0@��uH�����t�������H�uL������D$,D�u�EA��uI�����tA�E�����bf�L�mL��L��豎��f��D�} �Zd$H�E(�e$�E����f.�H��L���Eo��I�$�ƒ����������I�$�|�����{m��H�C����f��km��H�C����f�A���������L���	s��������H�H�������L����s��I�����@A�E���������L����r��������H�H�������L���s��I�����1���L��<��n��H������H�57)"H����1���5w�L���n��H���������@H�=�1��
m���5r��t$E������L���ˢ��H�������E����H�|$0迌��L��H�EH�������D$,f�H�E�Z|$�E�E�}���fDH�=��l��������H�=���r��H��H�e("����L���(����T$���
���H������L������L��H�EH���\����D$f�H�E�Z|$�E�E�}�A���f��H�=��/r��H��H��'"�����H�=ѥ�r��H��H��'"�c���H�=��1�E1��k���d���f.��j��H�C H������fD��j��H�C H�����fD��j��H�C H���e���fD�H�=��q��H��H�'"����L���Hp��������H�H�������L���q��I���s���H��H�t$�p��H�t$�����H�H������H����p��H������L���Qj��H�z"H�5��H�81��Yj��H�b"H�5��H�81��Aj��H��"H�5�H�81��)j���k��H��"H�5i�H�81��j��ff.����UH��H��SH���;n��H��H�����H��H��H��[]����ff.�@ATH�5�
"UH��SH�� �D$�Cl��H��H������n��� �H���-p��H��H�S
"H��I���(o��A�$H�59
"I�D$H��H�dTJI�D$H��I�D$��k���o�oSH�XP��u
H�������H�l$H�|$H�5�"�k���D$H����H�D$H�� []A\�D��m��H������H�5�"H��H���Qk���oI���oc`�ok H�Xh ��u	H�����ucI�\$���n���H������a���H��H���mk�����N���H�E��`H��`�=���H���`H��`�-���H��H���9j������@H��H���%k����u�H�E��`H��`u�H���`H��`�q���H��H���i���a���@���*"����ff.�@����)"���ff.�@���L�����ff.�@���$����ff.�@��UH��H�Y�S��H��dH�%(H�D$1�H���Bh���ڨ��&H���^���H�T$dH3%(ucH��[]��H�<$��g��f.�z.f(�fT
ըf.
U�w��
S�f/�w
f/M�v�H�=џ1��f���]���&h��fDAVAUATI��U��H�5m
"SH���#i��L��H����l�k��H�����H�5@
"H��I���h��L�sI��L�pA�����CI�D$A�D$H�I�D$�C�CA�D$(�C�AD$$%�A�D$,��A�$L�l$H�|$H�5�	"�h���H�������uB�C,������i�����?����?k�<��+C ��������=QO����C��€�3��H�C��k H�D$H��[]A\A]A^ÐI���������L��L���Xh��������I�E��`H��`���I���`H��`����L��L���$g��������#j��H���+��H�5�"H��I���g���oI���oSP�o[ H�XX ��u
H�������I�\$�������H����������H��L���g���������I�E��`H��`�����H���`H��`�q���H��L���mf���a�������H�C(�����fDH��������V���f��Q���fDH��L���g�����F���I�E��`H��`�5���H���`H��`�%���H��L����e������ff.����H��1�����H�=�H�D$H�t$H���׏�����UH��H���S��H��(dH�%(H�D$1�H�L$�pd���D$1���"H�����H�T$dH3%(uBH��([]�H�|$H�t$�����t
�t$���H�=*�1��D$�:c�����sd��USH��H��(�7� dH�%(H�D$1�@�����C�k�����=Q������C$(�T
��.
�����Z�H�L$H�T$��H�t$�Eo���D$�L$�S,��C(�D$����	ȉу�?	ȉс����	�	ЉC,H�D$dH3%(��H��([]Ð�C,�����i��ƒ�?����?k�<�Љ�)�x_��Q~	��Q����S�3�k��������� ���H�{�ߗ��H��ujH�{@��t0H��xF��#"����fD�€Q����S�3�D1����<�*c��H��t���#"�����f��ZC$����b��ff.�f���SH��H�� dH�%(H�D$1���ƒ���u)��t5�G����H�L$dH3%(��H�� [�f���td�C,����G(�T
��.
ڢvH�Z��{H�T$H�L$H�t$�mm���D$�T$��C�D$����	ЉC�y������땐H�臖��H��uRH�{@��tH��x.��""�f�1����<��a��H��t��]""�d����f��ZC�N����}a��ff.�f���SH��H�� dH�%(H�D$1���ƒ���u)��t5�G����H�L$dH3%(��H�� [�f���td�C,����G(�T
��.
��vH�Z��{H�T$H�L$H�t$�-l���D$�T$��C�D$����	ЉC�y����C���땐H��G���H��uRH�{@��tH��x.�C!"�f�1����<�`��H��t��!"�d����f��ZC�N����=`��ff.�f�USH��H��(dH�%(H�D$1����uAH�o�ty�sL�L$L��H���֕��H�D$H�L$dH3%(�H��([]�fD�t��H�o�…�u�H�������D�;����H�k�ƒ���u��f.��C(�T
�.
�v@�Z��sL�L$�{H�L$M�ȉ����������h���t$��s�>����H�{�ϓ��H��uJH�{@��tH��x&��"띐1����<�:_��H��t���"�t����f��ZC�^�����^��ff.�f���SH������{J��-H��1���^��H������I����u
L��[�DH���(e��HcK��t�H�L	��+[L��1��^��fD��UH��SH���~������H��H�xnH�����MbH9�oHi��H�\�E��H�mH��蝒��H��unH�﹁���/�!^��H��H�ߺH��[�+1�]�^��@H�V-���H9�}��H�ǹ��1��*��]��H��E������H��H��[]�ATUSH����ul�?����tH��������H��H�H9���H�ǹ�1��*�y]���-��H��1��`]��[�]H��A\�b�������H�ǁ���H���uD�e��H���+H��1��]��H��A���tL�cL���^���H��t)H��[]A\ÐH���Xc���C-��t�H�H�H��H���L���z��[H��H��]�+1�A\�\��DH�<�����[�]H��A\��a��ff.���H��H�5��!�L]��H��H�������ATH�5s�!US�,]��H��H�������tH��$�H�H9�}CH������>I��-H��1��
\���H���=a���H����u+H��[]A\�H�������H���a���H����t��tS�{����A���tL�cL������H��u�L���ty��[H��H��]�+1�A\�y[��f��{,������i�����?����?k�<��+{ xP��������QO����{����q���Hc�H�|?�c��H���+H��1��[��H���E���D�ǀQ���AWH�5�!AVAUATI��USH��HdH�%(H�D$81��[��H�5 "H��H���H�D$H�D$01�L��1��Z��H�D$H�XH� tH�XL���]��L�-�"I��M����H�����H�T$ H�T$01�L��H��1��DZ��H�5�"H�D$ H���G��E��H�D$(H�D$01�1��
Z���UH�D$(�с������nf���ZU$�T$����D�u H�D$(L�hH� tL�hE1�����L�D$ I�hI� tI�hH�6�H��HD�M��LD��[��AVH��E��AU�D$L��H��I��H�5����X��ZYH�\$8dH3%(�H��H[]A\A]A^A_�f�f��E1��ZM�L$�L���f�H�}����H���h_��D�}�>�����H�=���]��H��H�%"�����H�=���]��I��H�"�;����H�=]��_]��H��H��"����H��蘤���Uf���Z]$�\$�с��y���H�D$(E1��~���H���`����M���\�����W��ff.�f�USH��H��dH�%(H�D$1����t�t=H�kH�����H���H��脍��H�$H�L$dH3%(uH��[]�f�����tW��@��H��H�5��!�|X��H���t����1*F��-H��H��1��wW�����H��H�5��!�<X��H���4����>I��-H��H��1��7W�����H��H�5A�!�W��H��H����ATUH��SH��H�5�!��W��H��I��H�e"H�0�Y��H��ufH�5y"H����Y��H��uH�
"H��t`H��H��[]A\�X���H�5�"H��u�H�=o��c[��H��"H��H��1�1��}V��H��L���R���H��[]H��A\�s^���H�=ӑ�[��H��H��[H��]A\H��"�&X��fD��AUATUSH��H��8dH�%(H�D$(1������L�g�C(�T
2�.
K�w9H�{�@���H���OH�{@���H���'�0"�
fD�Z�H���D$L�l$ �)���D$H�T$L���H�t$�i��L��l$�Ӊ��H��t~Hc�H�DH�L$(dH3%(��H��8[]A\A]�����L�g�C$(�T
e�.
~��h���L���p���H���0���f��ZC$�M���f�H����������t�,�L���L���lj��H�D$ �W���D1����<�T��H�������"���@f��ZC����f.���L�c���*����X����T��@��H��H�5a�!�U��H��H��������AWH�5C�!AVAUATUH��SH����T��H�Ë���2f��ZC�tW��I�ŋ������7Lcc O�d$H��L�s�:Z���3Lc{���O�|?���������THcSH�T��t	���H��H�sL��M��AUM��1��T��ZY@��uPH�����tGH�U�у���t9��t4H��H��H�D$��R��H�D$�uH�����tH��у���t��H�H��[]A\A]A^A_����A�A�A���tm�3HcS����4���@���f��ZC$�:V��I�ŋ��t�����@H�����Lcc �O�d$���������A�A���u�H������H��H�T$��H�T$����f��k����3������@H���P����c���ff.���SH�54�!H��@dH�%(H�D$81���R��H�Ë��t���H�SH�T$��te��HcSH�T$1Ҩ���H�T$ ���tH�CH�|$� H�D$(�KR��H�L$8dH3%(H�D�0H��@[�@�u��C(�T
��.
�����Z��s�{H�L$L�D$����������Z��HcT$���SH�T$1Ҩ��S���DH���xW��HcS�=����H���@��H�SH�T$�������`����H����������H�{����H��uRH�{@��tH��x.�"�B���fD1����<�zP��H��t���"�����f��ZC����
P��ff.�f���AVAUI��ATUSH��H�5�"H���/S��H��tFH�53�!L����P��H�5$�!H��I����P��L��H�����H��A�����E���…���8�tH��L��[]A\A]A^����L��L�����H��H�����A�$��t�uL�����fD�EI�\$��t�uH������L��L�m��H��A��������t"A��tH�I�L9�t4�1�[]A\A]A^�DH�5A"H��t$1�L��H���O��H��t�A9�uȸ�Ð�H�=s��S��H��H��
"���AVAUI��ATI��H�5i"UL��S��Q��H�5��!L��H���|�O��H�5��!L��H���uO��H���u	����H�5��!L���UO��H�5��!L��H���CO��H�ŋ���N��~D�sH�CD��E���Z��$��H�CH��L����l��D;st�#��E�ƒ����6���>D�mH�ED��E���:��$���H�EH��L���l��D;mt�e����t����EL�c��t���E��L�mA��t
A���}H�5�"H���}1�L��L���kM��H������ƒ����������ED�c�ƒ����������ED9������[]A\A]A^��������H���������H�����H��A�����E���…���8��F���H��L�����H��L��������t�u
H�����f��EL�c��t�uH�����f�L�mL��L���T��H���(A����A����I�I�M9��(���DH�����[]A\A]A^��M��L��H��H���!H�0�&O��H����H�5�"L���O��H���EH�&"H���M[L��]L��A\A]A^��M��f�������H��������E��t
A���1�L���<L���K��H���l���H������D���D���%���H���؉���������E1��E��2A��H��L���DS��H���H��L����R��H���������f�I�I�M9������M9����������H���8��?���H���(�����H���8����u���H���(������H�5�"H����1�L��1��J��H��H������t
@����H��H�5)"[H�Ǻ]1�A\A]A^�ZJ��f.�H�ǹ�1��+�7J���m%��M���H�ǹ�1��+�J���k%������H�=s��N��H��H��"�c�����H�Ǿ-1���I���K��%��S�|���fD��H�Ǿ-1��I���M��%��U���fD���I���H��萕���<���H�����t
A���"L������f.�H��訴��H���螴��9����������@H���O���ED9�����E%����L�c�������H�]���fDH�H�H�ǸH)�H�����������H��H�H�����I�I����fD�H�=f��WM��H��H��"����H���؆���4���H���x�������H���N��D�C�E��"���1��&���H�I�L)�H�ǸH��������S�����H�=ڀ��L��H��H�5"�P���A����D��UH��SH��H��H��H�5f"��J��H��uH��1�[]�H��H������H��[H��]�{���AWAVAUL�-��!ATI��UH��SH��HdH�%(H�D$81�L��H���:H��H��A����A����D������)L��H���H����A����A�$����
��������E��D��A��u^A����I�����uI���JM���AA�$����
t,���#L���[J����H�H���fDL���(K��I������I������Z���H��!L��H�0�qI��H���NH�51"H���(L��1�1��<F��I��H���!L��H�0�7I��H�����������f���u�L��A��I��f�f/��/L�d$(L����E���T$(�%�f(��5�f(��^��f(�f(�fT�f.��Nf�f.����{�,�f��A��*��$$�YS�L��f(��wE���Yg��D,d$(�C���D,�Mc�O�l-A����,L���y��H�������tH�{�+1�L���	E���H��I����L��H���HA����5w��+L��1���D��I�Ƌ%�E�������$f�H��f.��J
�D
����A��L����x��H����A����
L�{E���\�����D$f��ZC1��,f����������t�u
H�����DM��L�sI��xI��$�H=H�qvGL��I��?L���+H�#\=�.���H��1�L�H��L)�I��H�L���C��Mi�%�I��M)�H��M���	�)���A�ŋ�KA�ĉ$A��A������H����F��f�H��E1��ZD$ATE1�1�D��L��H���]���]A\f.�H�L$8dH3%(�=H��H[]A\A]A^A_�DA���M���7H�5�!�K�q�H����	L��1��C��L��K�q��%I��1���B��H���G��H��A��E���x�9���A��L���w��H����S������L�s��A��H��f��ZC�$��E��H��E1�E1�AU�D$1�D��L��H���V���A[[���fD�H,�f���5��fU�f��H*�f(����fT��\�f(�fV�f.�����H�|$0�\$�B��L�-�!�\$�$M����D$0�\$�[E��1�L��H��1���A��f�����\$�Y$I���,��*��<$�%�������L�sE����H����G��DcE���-A��Q������$�X��A��Q�$���f.�������I����A����I��4�N�����1���L��<�@��H������H�5�!H����1�L��1���@���K�q�H�5��!I��H����	L��1��@���%L��K�q�I��1��@��H���E��H�5x�!A��H����L��1�1�A���e@��H��I��E����������A���A��$��u���L���1��+A��%��@��I���M����<$H�5�!A��fW=I��<$H����L��1�1���?��I��L���4t��H��������&���fDfW�A��������DI��L���+H�#\=�.���L��M��H��I��?L��N�$*�I��L)�M)�Mi�%�H�L�1�H���Y?��M)�I��M��$$��|���fD��t���H�{L���1��+�?��I��E����L���hs��H��������=$r��A��f��ZCH���$�7B��H��E1�E1�AT�D$1�D��L��H��襧��AXAY�L���@H���E��D�c����������L��1��<�n>���D$H���H�5&�!H���2
L��K�q�1��9>���%L��K�qH�$�1��>��H�5�!I��H����	��L��1��=��H���
C����L��H�D$�%A��1���=���*���H��1��=��H�5l�!I��H���E	��L��1��=��H���B��L����H�D$�%A��1��c=����5w��*H��1��J=���|$�I����L���q��H�������z	L�{E����	H���}C��D�cH��E�����h���A��H�<$�Lq��H��������B	H�SH�$E���������D$f���Zc�d$H���@��H��E��M���T$D��H��RD��jjjjjj�D$PH�t$@�ӻ��H��@�
���f.���‰��������T$�������*f��ZC$����[ H���$�y?��H��A��M��L$D��L��H��QD��jjjjjj�D$@�G���H��@�~���fDD�{,D�K H��f��ZC$H�[�D$D�L$�?��D��H��D����?AT��I��QD����L����H�ǃ�?QRD��jjj�D$PD�L$H�L$@�ɺ��H��@������t���H�{L��1��+�<;��I�ƋA��A��A����������S,D�K H��f��ZC$L�{�D$�[�T$D�$�W>��H��M��L��AU�T$ H�ljу�?Q���������?Q��RD��jjj�D$HD�L$@����H��@�J���f.�����A��
A��$�����L����1��+A��%��e:��I�����D�å��f�f���*��X$f/��xf/0z�:�D,�����H�=Fr��>��H��H���!��A�E���9����n���@��pL�s������HL�{�������2����!���L���`e��H�����A����5w��-���L���=���$��7���$f.������������@�4$�\5�xA�ĀQ�4$�r�f.��H�=�o��=���K�q�H���!H�����fDL����1��+�$��8���$�\�xI�����D�t$�K ���Y$r��A��f��ZC$���H��訄��D�S E�������A��A��rA���€�x�����u�H���x����H�5'�!H���L��1�1��:8���D$����I������f.��H�=�p��<��H��H�
�!�"����H�=�p�<��H��H���!����H�=�p�<��H��H���!�L���L����1��-�$�7���$�X�wI���U���DL����1��-A��%��h7��I����L���1��-A��%��@7��I���r��H���$�C����$��f�H���(����f��ZC$������1�����fD�H�=io�;���\$I��H���!���f��H�=�m�;���K�q�H���!H�����fDH�������/���H���������H����������H����������ƒ����T$�����t���H�{H�$�1��+�6��H�$E��uaL���ij��H��tT�����$r��A��f��ZCH���D$�;9��H��E1�E1�AT�D$H��1�H�t$D��觞��^_�P��ƒ����T$���������f���Zc$�d$���D�s �����ݠ��A���A��$��b���H�<$��1��+A��%��65��H�$�8������tH�{L���+1���5���H��I����<��H���!A����5w��+L��1���4��I�Nj%�E��������������DH�5a�!H����H�<$1�1��4��D�l$D�d$H�52�!H�$A��A��H���WL��1�1��c4��I�������H�=$k�9��H��H��!����H�=k�8��H��H���!�����H�=�j��8��H��H���!�������E��xlA��Q����A��A��Q����L���_��H�����A����5w��-����A�E�������뤨�H�CH�$�l���A��A�ĀQ�i������S ���$r��A��f��ZC$�`���H���9��Dc�E����H�=
l�7��H��H���!�����H�=�k��7��H��H���!����H�=�k�7��H��H���!�8���H����~���P���H����~���f���Zc$�d$���'������DH�<$��1��-A��%��2��H�$���H���������H������)����ƒ����T$���H���c~���{ ������A��A��rA�����2��������H���4~�������1��H�S�!H�5jH�81��20��f����W����AWAVAUI��H��jATUS��H��dH�%(H��$�1�H�L$8H��H�D$xPH�D$xPH�D$xPH�D$xPH�D$xP1�L�L$xL�D$p��0���D$DH��0����H�
o��Hc�H�>��@�0q�$H�|$hH�t$�\������,H�|$`L�d$xL���w��H����M��H�|$xA���]e��H����f��*�f/d�!�H�l$xH�|$XL���s��H���M��H�|$xA���e��H��u����H�l$xH�|$PL���Wy��H���oM��H�|$x�D$��d��H��u����H�l$xH�|$HL����t��H���9M��H�|$xA���d��H��u���|H�l$xH�|$@�M����H�|$8H��$�H��D���H�D$<PH�D$@PH�D$8P�D$ L�L$<L�D$8�l��H�� ����|$H�L$$D��D��L�L$,L�D$(��5�������L$$���y�t$(i��|$,D�L$�T$0Dk�<D��D)��(=Q�����H��A�j	WL��VQ1�jjj�D$@H��$�议��H��@H��H���c��H����H��H��$�dH3%(�UH�Ę[]A\A]A^A_�f.�A��E1�E1����n�D$�$����E1�E1�L�d$x��5�n�D$�4$�8���fDE1�E1�L�d$x��-xn�,$����fD�%`nE1��L�d$x�$$���f��8n�$����fD�= nE1�E1��D$A���<$����DH�|$p�-��f.�f(��$z2fTnf.�m�������mf/�wf/
�m�����H�=e1��/,���%�m�$$�b���DE1�E1����pm�D$A�H��1���$�9�����������H��H����H������D�H��1��+�D$$�-���L$$H���Z�����%���fDH�=Re�D$�d+�����H���!H�5�eH�81��+���,��H�k�!H�5�eH�81���*��f.���AWAVAUI��H�meATUS��H��dH�%(H��$�1�H�L$HH��H��$�PH��$�PH��$�PH��$�PH��$�P1�L��$�L��$��o+���D$TH��0���ZH�
�i��Hc�H�>�����k�\$H�|$xH�t$$��������H�|$pL��$�L���6r��H���H��H��$�A���_��H���f��*�f/�!��H��$�H�|$hL���m��H���BH��H��$�A���_��H��u����H��$�H�|$`L����s��H���H��H��$��D$�v_��H��u���^H��$�H�|$XL���o��H����G��H��$�A���;_��H��u���#H��$��D$fT�jH�|$P�D$�G���D$��L�T$Hf.Jj�A���L�����!H�H=-~H=�~���!f��f/���H��$�D���L��H��H�D$LPH�D$PPH�D$HP�D$(L�L$LL�D$H�si��H�� ���@�|$H�L$4D��D��L�L$<L�D$8�	0������L$4�����t$8i��|$<D�L$$�T$@Dk�<D��D)��=Q�����H��A�j
WVQ�D$X1�P�D$\P�D$`P�D$HH��$�L���Ȩ��H��@H��H���]��H����H��H��$�dH3%(��H�Ĩ[]A\A]A^A_�@A��E1�E1����h�D$�D$�X�����=�hE1�E1��D$�L��$��|$����f��5�hE1�E1��L��$��t$�^���f.��-xhE1��L��$��l$���D�%Ph�d$���D�8hE1�E1��D$A���D$�m���@H��$��3'��f.�f(��D$z2fT+hf.�g������gf/�wf/�g���H�=_1��C&����g�\$����E1�E1�����g�D$A�I��1���D$������D$f��f/������,gH�T$0H��$�L���^���|$0H�L$4��L�D$8D���T�����X�|$H�L$<D��D��L�L$DL�D$@�!-�����2�D$<����H��A�1�j�T$TR�T$XR1�P�D$`P�D$dP�D$hP�D$HD�L$d�:���f�H��H�����H���M���D���������fDL��1����<L�T$�b&�����!L�T$H���������H��1��+�D$4�&���L$4H���?���H���1��+�D$<��%��H�ŋD$<���H�=:^�D$$�L$�����H�p�!H�5�^H�81���#���j%��H�S�!H�5�^H�81���#��f���ATI��UH�����SL��H��H�t$��)����u�G�H���'��H��H�����H��H�t$H���]��H���U*����y�H��L��[]A\�D�K$��H����(��H�L$L��E1��H���K)��H��I��[]L��A\�ff.����UH��SH��H��H�t$�&)����u�@H���h&��H�߾���H��H�t$H�����H���)����~�H��H��[]�D�#��H���3(��H�L$H��E1��H���(��H��H��[H��]�ff.���ATI��U��SH��H�[H�� dH�%(H�D$1�H�L$L�D$�V#����	H�D$�S(������H�|$@��tH��H��*����H��H�H���H�5r�!��1��#��H���(����t[��uhH���H���;%��H�t$H������H��H�t$H�����H���(����~�H��H�T$dH3%(�}H�� []A\�H����$��H����$�����ubH���H����$��H�t$H�����H��H�t$H���!��H���(����y���"��H���&��E1�L���H��H���#'���o����"���� ��@��UH��H��[S��H��dH�%(H�D$1�H����!��H�4$��
H�$�H������H�T$dH3%(uH��[]��"��f���H��1�1����AVI��H�2[AUATUS��H��`dH�%(H�D$X1�H�L$(H��H�D$HP1�L�L$HL�D$@�D!��Y^���~w���V���eH�|$@�� ��f.�f(�z2fT�af.ia�+�caf/�wf/
]a�H�=�X1�� ���
ia��@�����OaA�A�f(�f.�`H�l$(��f(�f��f/��:H�L$PH��f(�D��H�D$,��H��PH�D$0PH�D$4PL�L$8L�D$4�L$ �N`��H�� �$����H��f(�jD�L$,D�D$(�L$$�T$0H�t$`L��褉��L��H��XZ�U��H����H�T$XdH3%(H���pH��`[]A\A]A^�f.��X`f.`A��A�H��1��f(�����@����H�����!H�H=-���H=�����~�!f��f/��������_H�T$H�t$PH���$�V���|$H�L$ ��L�D$$D���M���$���}H��f(�1�jD�L$4D�D$0�L$,����D�
p_H�|$8H�t$H�$�c��H���D<��H�|$HA���S���$H����f(�fTm_A�H�|$0�D$�$@��t9�<$���$�D$�����f.�H��L���e��H���O���D�S���$�D$��������^A�A�f(��|���f��*�f/ �!wWf(�L�d$HfT�^�Q����1���H��<�$�b�����!�$H�������9���H���!H�5WH�81��o��H���!H�5WH�81��W������f���ATI��H�WUS��H��PdH�%(H�D$H1�H�L$ L�L$0L�D$(�$����������������]��H��1���T$�D$H�L$H�T$@��L�L$L�D$�W������H��E1�E1�1�j�D$L��T$(H�t$P�<���H��H��XZ�Q��H��tRH�T$HdH3%(H���DH��P[]A\�f.���\���\$H�|$ �T���fDH��H���M��H����H�|$0����f.�f(��D$��fT�\f.Z\w �X\f/���f/
N\��H�|$(H�t$8�a��H�ǨtZ�!����H�|$8�P��H��u4f��*�f/��!�|H�\$8�<���@�%\�d$렻����fD�{������H�=NS1��r���-�[�l$�_������H���!H�5�TH�81����H�k�!H�5�TH�81�����f.���AWAVAUATI��H��TUS��H��HdH�%(H�D$81�H�L$L�D$ �����������H�|$ �g��f.�f(��D$��fT[[f.�Zw!��Zf/���f/�Z���H�|$H�t$(�_��H�|$(H���DO��H���sf��*�f/K�!��L�l$(�fD�%�ZA���d$H�T$H��H�t$0�-T��� �D�t$H�l$0�d��L��H���!H��H���_��I��@��tfH�kD�sf��L��H�C�ZL$��K�N��H����H�L$8dH3%(L���1H��H[]A\A]A^A_�f.�I��I��t�E������H�kM���y���H��L��������f���I�$��`H��`�U���H�E��`H��`�D���H��L�������4���fD�-hY�l$�m���DA����DL��L�����I���%���DH�=�P1�����5Y�t$�����H�������0���H�H���#���H�����H��H�C������I��I���������H�|�!H�5�QH�81����ff.���AVAUATUH��SH��H��H��H�50�!���H������te��u6�؃�����H��H���H��tN��tI�����
tZ~|��tS��u3H�@H�H��H��H9���H�t?�l�H�����u�H���!H��H�0�
��H���EH�5��!H���<1�H��1������ fD��u�H���c��fWX�6��H��H��H��[]A\A]A^����H�5��!H���i��H�5��!H��I���W��I�ŋ����A�$I�M���jI�|$�1�1�-�B��L��I��观��L���蝂��)�A�$���A�A�E��g�A�$��GL����-1�����I�ą�����$�~"L����1��+��%����I�ƅ��.��Q~	����QA���sL��H���L���5w�1��+���k��I��L��A��J��H���q���	����L���J��H���(A��uI�����tA�E������H��L��[]A\A]A^�8���������L��H�L$�+���H�L$�w������^���L�������Q���I�|$���fDL�����A+mA�E������M�E�A�$��~�����L������A�l$�F���fDL����1��-��%��A��I�����f������p���fD1���L��<���H���w���H�5g�!H���^1���5w�L������H���i���L���5w�1��-�����I���E���D�H�=zM�g��H��H���!�������ŀQ����f�Hc�H�|?����L���+H��1��L��I������@Hc��H�|?�n��L���+H��1����I�������L����1��L���+H��1�����I�������K�q��*L������I���p����H=�ɚ;�L�������H���!H�5�KH�81�������H�=�J�O��H��H���!���H��L��[]A\A]A^���UH��H��LS��H��dH�%(H�D$1�H�����H�4$��
H�$�H���e���H�T$dH3%(uH��[]����f���ATUSH��H�� dH�%(H�D$1���ƒ���uFL�g�����kL���G��H��tFHc�H�DH�L$dH3%(�LH�� []A\�D����L�gL��k(��F��H��u�H���,����,R��t��QH�T$��L���9G��H�D$�f��C(�T
aR.
zRvp�Z��{H�T$H�L$H�t$�
���D$�T$�l$�����	Љk�C�$����#����L�c�ƒ�����������D���H�������7���H�{�E��H��uJH�{@��tH��x.���!�j���fD1����<�b��H��t����!�<���f��ZC�.������ff.�f���H��H�5A�!���H��H��� �����ATUH��H�GJS��H��dH�%(H�D$1�H���0����H�$H�5�!H�����H��H������H��I��菸��L��H���?��H�4$H��H���EA��H�{I��H� tH�{H���:��L��H������H�T$dH3%(u	H��[]A\������ATH�5c�!USH�����H��H���>���H��I������L��H���?��H�xH� tH�xH��[]A\�{:��ff.�AWI��AVAUATUSH��HH���!H�|$H����H�;E1��D$�$D�t$�� �4H����Hc�H9���D9��JH���l
��H�H�R�!H��� ��Q
��H�CJ��H���A
��H��H� ���,
��H��H�1�E1�L�k�Vf.�H����Hc�H9�uT9�~mH�����H��H� tI����L��H�4�L�����H����H����A�H�;�� u�H�{Hc�H9�t��������H�C �DD9$$}�D$D�$$�D$H�g�!I��D�t$H�;�� ����H�{����fD�K��H�[ H������fD�3��H�C �����$���Z
H�=��!H����
����L��H����
��H���C
H�=��!H���
���L��H���
��H����H�=|�!H����	���L��H���
��H����	H�B�!H���,
H���Y��L��H���^
���tH��w~H�H�ǹw1���>�i
��H��t(H���!H���'
H������wL��H������H��HL��[]A\A]A^A_�H���!H���GH������I��H���!H���H�����I��H���!H����H�����I��H�j�!H���JH�����H��H�G�!H���H���f��H��H�$�!H����H���K��H��M��M��AVH��H��H�ڿ1��

��A^�Z�H��1�����H�$H���!H���iH�����I��H���!H���1H������I��H���!H����H�����I��H�_�!H����H�����H��H�<�!H����H�����H��H��!H���QH���p��H��M��M��AVH��H��H�ڿ1��/��A\�A]H�¿1����H�D$H���!H����H�����I��H���!H����H�����I��H�u�!H���nH������I��H�R�!H���6H������H��H�/�!H����H�����H��H��!H����H�����H��H��H��AVH��M��M��1��R��[�]H�¿1��<��H�D$H���!H���UH���?��I��H���!H���H���$��I��H�j�!H����H���	��I��H�G�!H����H����
��H��H�$�!H���uH����
��H��H��!H���=H���
��H��H��M��AVH��M��H��1��w
��AZA[H��H���!H����H���x
��H�ڿH��1��F
��H�D$ H���!H����H���I
��I��H�_�!H���\H���.
��I��H�<�!H���$H���
��I��H��!H����H�����H��H���!H����H������H��H���!H���|H������H��M��M��AVH��H��H��1��	��AXAYH��H���!H���H�����H�ڿH��1��P	��H�D$(H�T�!H����
H���S��I��H�1�!H����
H���8��H��H��!H���c
H�����H��H���!H���+
H�����H��M��H��H�ƿ1�����H��H���!H����H������H�ڿH��1����H�D$0H�y�!H����H�����I��H�V�!H���WH�����I��H�3�!H���H���j��I��H��!H����H���O��H��H���!H����H���4��H��H���!H���wH�����H��H��M��AVH�ƿM��H��1�����^_H��H���!H���H����
��H�ڿH��1����H�D$8H�M�!H����
H���
��I��H�*�!H����
H���
��I��H��!H���`
H���v
��I��H���!H���(
H���[
��H��H���!H����	H���@
��H��H���!H����	H���%
��H��H��H��AVH��M��M��1�����ZYH��H�X�!H���]	H����	��H�ڿH��1����I��H�#�!H���	H���	��I��H��!H����H���	��I��H���!H����H���	��H��H���!H���kH���i	��H��H���!H���3H���N	��H��M��M��H��H��1����H��H�Y�!H����H���	��H�ڿH��1�����H��H�$�!H����H�������H��1������H��1����I��H��!H���;H�����I��H���!H���H�����H��H���!H����H���w��H��L��H��1��B��H��H�`�!H���~H���G��H��H��1�����4$H��M��t$H��L���t$ 1��t$8�t$H�t$XL�L$h����H��0H��H��!�n��H��!�Y�H���!H����H�������L��H��������H�=2<����H��H���!�
���H�����H�H���!H��� �_���H�C Hc\$H�,�H�����H�EH�-r�!H��� ��q��H�EH�-V�!H��� �3�U��H��H�l�H��H���@��L�eH�-%�!H���-��H�EH�-�!H��� �����H��H�l�H�����H�EH�-�!H��� �C����H�EH�-ɸ!H��� ������H��H�\�H��H�����H�I����H��� ��H����H��Hc�H9����9<$��H�D�!H���RH���3��I9���H���!H���\H�����I9���H���!H����H������I9���H�i�!H���bH������I9���H�0�!H����
H�����I9��
H��!H���H�����I9���H�CE1�H�$�H����H��Hc�H9����D9���H���y���H��H� ��
�d���H�$N�4�L��L���1��H����H���EL��I���!��1�H��H��1��2��L��L��H�����H��� �h���H�{�i���H���!H����H������L��H���w����H�=�7����H��H��!���H�{�!H����H���j���L��H���*����H�=g7��T��H��H�B�!�V�H�=�8�4��H���!���C���H�C����H�=�8�	��H�һ!�����H�=e8����H���!��H�=�6����H���!���H�=�6���H���!�$���H�{�-����H���!H����H���p��L9��x�H�
8�!�D$t	����H�59�!H�|$1���x���H���@�H���%H�6�!H����H���
��L��H������H���	�H�5Q�!H���	��H������H��H��!H����H������H��L��H���������H�=�5���H���!���H�=7���H�k�!�����H�EH�-��!H��� �U���H��H�\�H���t���H�[ H������b���H�m �L����T���H�EH�-9�!H��� �E	�8���H��H�l�H���'���H�m �����H�=�>����H���!�Y����H�=�>����H���!�e����H�=�4���H���!�����H�=�4���H���!����H�=�5�y��H���!����H�=h6�\��H�m�!�M����H�=�6�?��H�X�!�����H�=�8�"��H�C�!����H�=5���H�.�!�x����H�=�3����H��!�@����H�=�3����H��!�����H�='5���H��!�����H�=�5���H�ڹ!����H�=8�t��H�Ź!�+����H�=l4�W��H���!���H�=J4�:��H���!����H�=+3���H���!����H�=3���H�q�!�K����H�=\4����H�\�!�����
H�=5����H�G�!���H�=�3���H�2�!�l�H�=�3���H��!�4�H�=�3�o��H��!��H�=`2�R��H��!���H�=H2�5��H�޸!��H�=�3���H�ɸ!�T�H�=3���H���!��H�=�2����H���!��H�=�1���H���!��H�=�1���H�u�!�H�H�=3���H�`�!��H�=�2�j���H�K�!���H�=�5�M���H�6�!�g�H�=\2�0���H�!�!�/�H�=-2����H��!��H�=1���H���!��H�=�0����H��!��H�=52���H�ͷ!�O�H�=�1���H���!��H�=5���H���!���H�=�1�e���H���!�n��H�=b1�H���H�y�!�6��H�=90�+���H�d�!���H�=!0����H�O�!����H�=j1��H�:�!���H�=�0����H�%�!���H�=�0���H��!����H�=�0���H���!���H�=�/�}���H��!�u��H�=s/�`���H�Ѷ!�=��H�=�0�C���H���!���H�=�3�&���H���!���H�=50�	���H���!�Z��H�=0���H�}�!�"��H�=�.����H�h�!����H�=�.���H�S�!���H�=0���H�>�!�z��H�=3�x���H�)�!�	��H�=�/�[���H��!����H�=W/�>���H���!���H�=/.�!���H��!�a��0���H�m ����"���H�m ���H�=90���H�ѳ!����H�m �*�H�=0���H�~�!��H���!H����H�ǽ���L��H�����H����H�P�!H����H���W���L��H���\���H�������H��!H���M�H�=<.�1���H���!�0H�CE1�H�$�H����H��Hc�H9��m�D9���H���	�H��H� tb��H�$N�4�L��L������H��udH��tIL��I�����1�H��H��1�����L��L��H���P���H��� �t���H�{�u�����H�C �H�9�!1�1��@s��H���H��!H���nH���3���L��H���8���H���nH�ױ!H��tXH���
���L��H������H���m���H���!H���.H�������L��H������@������H�m ����H�=�,���H�b�!�H�CE1�H�$�H����H��Hc�H9����D9��H����H��H� ����H�$N�4�L��L���L�H����H����L��I���<���1�H��H��1��M�L��L��H������H��� �h���H�{�i����H�=,���H�B�!��H�=�+����H���!�u���H�q�!H����H������L��H���X����e�����H�C �*�����H�C �7�H�@�!1�1��Gq��H���'���H���!H����H���7���L��H���<�H���FH�s�!H���H���
���L��H����H���m�H�>�!H����H�������L��H�����@�H���!1�1��p��H����H�=B.���H���!�����H�=�*���H�c�!�����H�=�*�u���H��!��H�CE1�H�$�H����H��Hc�H9����D9���H���M�H��H� tb�<�H�$N�4�L��L���	�H��udH��tIL��I������1�H��H��1���L��L��H����H��� �t���H�{�u������H�C �H�}�!1�1��o��H���H�0�!H����H���w���L��H���|�H����H��!H��tgH���N���L��H���S�H�����H�­!H���D����H�=A)�(���H���!�'����
H�=K*����H���!���H�=)���H�o�!�|���H�k�!H��t:H����L��H���~��G����H�=�(���H�9�!�
����H�=�(���H��!�H�K�!1�1��Rn��H�5��!H��H���p�H�����H��H�.�!H����H���-�H��L��H��������H��!1�1��m��H��H���!H����H�����L��H�����H��H���d����-H��H��1���H�ٺ�+H��1����H�5�!H����H��贗��H��H��!H��t8H���}�H��L��H���?�����H�=�*�i�H�B�!�����H�=X(�L�H���!뮾H�=L'�2�H���!�����H�=/'��H�N�!�����H�='��H�9�!����H�5�!H��t:H�����L��H��������H�=�&��H��!�W����H�=�&��H�ު!묾H�=�&�{�H���!���H���!H����H���G�L��H���L�H����H�[�!H����H����L��H����H���}�H�&�!H�������H�=&���H��!���H�D$H�H�H9��������H�=�%��H�W�!����H�=�%��H���!�[���H���!H��t:H���i�L��H���)��"����H�=�%�S�H�|�!����H�=h%�6�H�W�!묾H�=(&��H��!���H�٭!1�1���j��H������H�=�%���H��!���H�=�$���H�{�!����ff.�AWAVAUATI��USH��H��8H�<$H��dH�%(H�D$(1����f.��vf(�fT
�,f.
J,w �
H,f/��Nf/>,�@H����H�=�!H������H��H����H��u*H�=�!H������H��H�����H���H������H�<$H�����L��H��H����C��I��I���GH�= �!H���G��H��H����H�����H�=�!��H�����h�H��H���m�H���u��H�=��!�D$H����<�H��L�l$ L�t$H���7�H���?���t$H�L$��M��M����g����il$H�=X�!kD$<�l$ H�������H��H�����H�D$H��t
H�����H�D$H�=	�!H������H��1�H����H����L��L��L���V$��D�l$������QaL����H����A��jD��jjjjjjL�D$HH�t$`H�|$@��i��H��@H�L$(dH3%(��H��8[]A\A]A^A_�@A����Q�@H�=~!1�A�3*F������H�������Í��Q=���)��*���fDA���ŀQ�8���f�H�=�"���H��H�u�!�Z���H�=� ��o�H��H�ͨ!���H�=�!��O�H��H���!���H�=B ��/�H��H���!����H�=+ ���H��H�]�!����H�=u!����H��H�5�!�0���H�=��!H�����H��H����H������H�=��!H�����H��H����H�������H�=U�!H�����g�H��H���l�H���|���H�=#�!H����=�H��H���B�H�=��!H��H������H��H����H�=Ч!I��H������H��H����L��H��L��H���K<��H�=��!I��H������H��H�����H����H�=W�!H�����H��H����H���dH�=�!H�����o�H��H���t�H���
H�=�!H���J�E�H��H���J��yH���}�H���s���H�=��!H�������wH��H������I���f.�H�=�����H��H�ͦ!���H�=j1�1����7���H�=O"���H��H���!�����H�=����H��H�]�!����H�=���o�H��H�5�!���H�=�!H���`�;��H��H�����u���fDH�=��!H���P���H��H������r���fDH�=��!H���@����H��H��������fDH�=����H��H�e�!����H�=���H��H�%�!����H�=����H��H��!����H�=y��_�H��H��!�!���H�=T��?�H��H���!����H�=� ���H��H�ͤ!����H�=}���H��H�u�!���H�=]����H��H�]�!���H�=����H��H�M�!���H�=����H��H�=�!���H�=����H��H��!�L���H�I�!H�5�H�81�����C���UH��H�yS��H��(dH�%(H�D$1�H�L$L�D$����tGH�|$��u	H�D$3*F��H�T$H��H���?���H�T$dH3%(u*H��([]��H�=���H��H�D$�����UH��H��S��H��(dH�%(H�D$1�H�L$L�D$����tGH�|$��u	H�D$3*F��H�T$H��H�����H�T$dH3%(u*H��([]��H�=� ����H��H�D$�����UH��H�9S��H��(dH�%(H�D$1�H�L$L�D$�[���tGH�|$��u	H�D$3*F�o�H�T$H��H�����H�T$dH3%(u*H��([]��H�=A ��O�H��H�D$��`���UH��H��S��H��(dH�%(H�D$1�H�L$L�D$����tGH�|$��u	H�D$3*F���H�T$H��H���_���H�T$dH3%(u*H��([]��H�==���H��H�D$�����UH��H��S��H��(dH�%(H�D$1�H�L$L�D$����tGH�|$��u	H�D$3*F��H�T$H��H����H�T$dH3%(u*H��([]��H�=����H��H�D$�� ���UH��H�YS��H��(dH�%(H�D$1�H�L$L�D$�{���tGH�|$��u	H�D$3*F��H�T$H��H����H�T$dH3%(u*H��([]��H�=���o�H��H�D$�����UH��H��S��H��HdH�%(H�D$81�H�L$L�L$L�D$������ta������ttH�T$H�D$H�t$ �H�T$(H�D$ ����H�T$H��H���a�H�L$8dH3%(u]H��H[]�f.�H�D$H�D$�H�D$3*F�f��H�=���H�D$���H�T$H�D$�����ff.�@��UH��H��S��H��HdH�%(H�D$81�H�L$L�L$L�D$������tw����H�D$��tOH�T$H�t$ �H�D$(H�T$ H�W���H�T$H��H���Z�H�L$8dH3%(uQH��H[]��H�=8���H�D$�H�=����H�D$H�D$3*F�w���fDH�D$�����@AVAUATI��H��UH��SH��H�� dH�%(H�D$1�����f.��f(�fT
�f.
=w �
;f/���f/1��H����H�=��!H������H��H���	��H��u*H�=̗!H�������H��H������H����H�����L��H�����H��H����5��H��H���~H�T$H�t$�o��H������H��1�E1�j�T$E1�L��H�t$ �F��ZYH�L$dH3%(�JH�� []A\A]A^�DH�=�1��3*F���������H�=0���H��H��!���H�=і!H������H��H������H���
���H�=��!H�����H��H������H�����H�=m�!H������H��H�����H�������H�=;�!H���2�m�H��H���r��H�=�!I��H�����J�H��H���O��H�=�!I��H�����'�H��H���,��H��L��L��H���{0��H���[���H�=���H��H�ŕ!���H�=w����H��H���!����H�=����H��H�u�!����H�=����H��H�M�!���H�=���H��H��!�4���H�=y��_�H��H���!��H�=T��?�H��H��!���H�	�!H�5GH�81���������UH��H�9S��H��(dH�%(H�D$1�H�L$L�D$�[����tGH�|$��u	H�D$3*F�?��H�T$H��H������H�T$dH3%(u*H��([]��H�=���O��H��H�D$��`����UH��H��S��H��(dH�%(H�D$1�H�L$L�D$�����tGH�|$��u	H�D$3*F���H�T$H��H���o���H�T$dH3%(u*H��([]��H�=�����H��H�D$������UH��H��S��H��(dH�%(H�D$1�H�L$L�D$�����tGH�|$��u	H�D$3*F�/��H�T$H��H������H�T$dH3%(u*H��([]��H�=����H��H�D$�� ����UH��H�YS��H��(dH�%(H�D$1�H�L$L�D$�{����tGH�|$��u	H�D$3*F���H�T$H��H���/���H�T$dH3%(u*H��([]��H�=��o��H��H�D$������UH��H��S��H��(dH�%(H�D$1�H�L$L�D$������tGH�|$��u	H�D$3*F����H�T$H��H�����H�T$dH3%(u*H��([]��H�=]�����H��H�D$�������UH��H�S��H��(dH�%(H�D$1�H�L$L�D$�;����tGH�|$��u	H�D$3*F�_��H�T$H��H�����H�T$dH3%(u*H��([]��H�=���/��H��H�D$��@����UH��H�vS��H��HdH�%(H�D$81�H�L$L�L$L�D$�����ta������ttH�T$H�D$H�t$ �H�T$(H�D$ ���H�T$H��H���1���H�L$8dH3%(u]H��H[]�f.�H�D$H�D$�H�D$3*F�f��H�=��O��H�D$���H�T$H�D$���O��ff.�@��UH��H�vS��H��HdH�%(H�D$81�H�L$L�L$L�D$�����tw����H�D$��tOH�T$H�t$ �H�D$(H�T$ H�
���H�T$H��H���*���H�L$8dH3%(uQH��H[]��H�=�o��H�D$�H�=��Y��H�D$H�D$3*F�w���fDH�D$���T��@��AWAVAUATUH��H�5�w!SH��hH�|$(dH�%(H�D$X1��:��I��H��H�D$ �s��L�����P�����*H��1��'���K���+Hc�H��1�H�L	���H���+H��1�����H�è�NH��H���H��H��?H��������*H��H�H)�H�H��H�H��H��H�\$H)��A�D$�VDH�5��!H������H��1��t����H��H�D$�%1��V��H���n�����D$H�\$ H���Jq��A�ŋ����f���ZK�L$H�D$HL�|$@L�t$<H�$H�\$PL�d$8H�l$D�f.�A��E���TH��M��M��D��SATUH�L$ �D$8�t$4H�|$(���H�� ��t��t$8H�|$HH���@	��H�|$ �v{��H�|$P��-H��1��}��H�|$(H�����H�T$XdH3%(��H��h[]A\A]A^A_�D�trH�D$ f���ZP$�T$�
���H��������*H��H��H��H��H��?H�H)�H���������H�D�H��H�D$H��H��H��H�RH��H)�H�H�,���H�|$ ����H�D$ f���ZP$�T$����H�=x	�n��H��H���!����H�8�!H�5vH�81�����2��f���UH��H��S��H��dH�%(H�D$1�H�����H�<$��
H�$����*1����H��H���|���H�T$dH3%(uH��[]������UH��H�)S��H��dH�%(H�D$1�H�����H�4$��
H�$�H������H�T$dH3%(uH��[]��I��f���UH��SH��H��H�5��!H��t$H��1�1��X��H��H��H��[]�����H�=
���H��H�E�!���UH��H�Y
S��H��dH�%(H�D$1�H���B��H�<$��
H�$����*1�����H��H���<���H�T$dH3%(uH��[]��`����UH��H��	S��H��dH�%(H�D$1�H������H�4$��
H�$�H������H�T$dH3%(uH��[]����f���ATUSH��H��@dH�%(H�D$81��<���ŋ�����C�-3),$T�.-E���Z�f(��~�f(��{fT�f.�vf��f/���f���*��\�f/
����������wf���ZK$fT�f.�vf/
4�~H�T$4H�t$0������D$4��@H�{���H���H�{@����H�������!�����f���ZK� ����H���k��H�߉��.m��Lc�������)�K��������Ⱥ��Q������)�iҐ9�����H�H�H��I�H��B,���H�t$8dH34%(��H��@[]A\�@�C$�5�)4$T�.5�vc�Z���/f���ZK$�J������h�K(���O�������������Q���iҐ)�1ҁ�����H���@H�{�/��H�������f��ZC$����f���ZK�,���f��Ⱥ��Q������)�k�d�9���������1����<�Z��H���:����ɍ!�5���@�Ⱥ��Q������)�k�d�9�����������f��ZC��f�H���D$����D$����H����i��H�߉��k��Lc���������C�@H���g������C(<$T�.=���Z��{H�L$4H�T$0H�t$,�|���D$0�T$4�L$,�����	ЉK�C���f.�����C(1Ҩ��H�H�H��H�|
L�,�������H���D$����~"���D$�`�����K(<$T�.=%��f��Z��{H�L$4H�T$0H�t$,����T$0�L$4�D$,�����	ʉC�S�I���fDH���f���3���H�{���H��u"H�{@��t0H��xF���!���fDf��ZC���f.�1����<�
��H��t��}�!�u����H�{�G���H��uH�{@��t H��x6�C�!����f��ZC����1����<���H��t���!�����K��ff.���H��H�5�l!�L��H���4���H��H�H�D����AUH�5cl!ATUSH��HdH�%(H�D$81����H��H����P������)�����K�<
)$T�.N
�x�Zɨ���{L�l$4L�d$0H�l$,H�L$$L�D$(f(���������d�C(,$T�.-�	�;H�{���H���yH�{@����H�����҉!�D$$L��L��H��x��U���|$4��1���K$�%c	)$$T�.%u	���Zɨ���{(L�l$4L�d$0H�l$,�"���@�ƒ���tw�����K(��xw��u�Ⱥ��Q������)�k�d9�u!�Ⱥ��Q������)�iҐ9��V����H�t$8dH34%(��H��H[]A\A]�@�����K��y�����������Q���iҐ)ց��t�1��@H�{����H����H�{@��� H���6�
o�!��������	����C(<$T�.=2���Z��{L�l$4L�d$0�L$H�l$,L��L��H������|$,�L$�{�D$0�T$4�����	ЉC���f.�H�{����H���H���f���ZK�Y����Z������C$(4$T�.5�w�H�{���H�������f��ZC$���H���L$�Jb���L$����1����<����H�������
A�!����@1����<���H���7�����!�2���@�C(�T
�.
����Z��{H�L$4H�T$0H�t$,�a���L$,�K�D$0�T$4�����	ЉC�[����H���pa���D���f���ZK$����f.�f��ZC���f�H�{�L$�A����L$H��ufH�{@����H�����/�!���f�H�{����H����H�{@����H�������!����f.�f��ZC���f��Ⱥ��Q������)�k�d9��������D1����<�L$����L$H���N������!�8���f��ZC���1����<����H���L����K�!�^���������SH�5�f!H�� dH�%(H�D$1��{��H�Ë��u2�t>�C����H�L$dH3%(H�H�D��H�� [�@�td�C,����C(�T
�.
�vP�Z��{H�T$H�L$H�t$�-���D$�T$�C�D$�����	ЉC�p���H���@_���fDH�{�?���H��uJH�{@��tH��x&�;�!덐1����<���H��t���!�d����f��ZC�N����=��ff.�f���SH�5�e!H�� dH�%(H�D$1��+��H�Ë��u2�t>�C����H�L$dH3%(H�H�D��H�� [�@�td�C,����C(�T
1.
JvP�Z��{H�T$H�L$H�t$�����D$�T$�C�D$�����	ЉC�p���H����]���fDH�{���H��uJH�{@��tH��x&��!덐1����<�Z��H��t��͂!�d����f��ZC�N������ff.�f���ATH�53d!USH�� dH�%(H�D$1�����I�ċ�������A�\$�����H�l-L����Ю����H�5�!Hc�I��H�\H����H�s!L��I��I�غH�81����H�L$dH3%(�oH�� []A\�fD���WA�l$,����Hc�H�l-�������$A�\$,�_���f.��H�=�����H��H�]�!�^����AD$(�T
/.
H�2�Z�A�|$H�T$H�L$H�t$�����D$A�D$�l$�D$A�$����	�A�$A�l$���ƒ���Hc��H�l-���A������z�AD$(�T
�.
�v{�Z�A�|$H�L$H�T$H�t$�N���D$A�D$�\$�D$A�$����	�A�\$�K���fDL���X[������L���H[��A�$�ƒ������@I�|$�6�H����I�|$@��tBH��xX�-�!�Y���I�|$��H���}I�|$@��tBH��xX��!���1����<�j���H��t���!�����1����<�:���H��t���!�J����f��AZD$�2���f��AZD$���軾��A�\$�&������AW1�AVAUATUSH��(dH�%(H�D$1��gV��H�5�`!H�D$H�|$葿���I���tH�x���E��H��A����6��+1��u���A�>I��A����A���=@����A�^A���������A��A�Hc�H�\E�������HE�~L��A������A��H�5m~!Mc�I��O�|?H����H��I��M��L��H�Eo!AU�ATUH�81����H�5"~!H�� H��H��tN1�1�H��袽��H�L$dH3%(�=H��([]A\A]A^A_�����E�~,�S�����H�=����H��H��}!��H�=����H��H��}!�7���A�F,@���z����A�^����A^ �
��������QO؉غų��A���A�����ȉ��%�D���>�����A��	�E��E)�E)�A��Ei�D)Ӊ�A�������)�k�<��A)�A	�E	�D��	Љ�A�ă�A�F,A��A�A��?O�d$���A�~,A������A�^����A^ �L��������QO؉غų��A���A����A�������E���>D������	�A��E��E)�Ei�D)ۉ؉������)�k�<��)�	�D��D)��	�	�A�~,��?H�|?����A��A��A��?O�d$�������H�l-��t|���Ã��6�����AF(�T
��.
�����Z�A�~H�L$H�T$H�t$�7���D$A�F�\$�D$A���A�>��	�A�^����L���@V��A�>A�F,A����A���c�����AF(�T
�.
����Z�A�~H�L$H�T$H�t$����D$A�FD�|$�D$A�A����A	�E�~�[����L���U�����I�~��H����I�~@��tlH������z!���fDI�~�w�H����I�~@��tdH��xz�oz!�C���f��ÀQ���D�ÀQ���D1����<躹��H���~����)z!�e���@1����<芹��H��t���y!�����f��AZF����f��AZF��������ff.����AUI��H�2�ATUS��H��hdH�%(H�D$X1�H�L$(H��H�D$HP1�L�L$HL�D$@�F���Y^���{�����D����H�|$@���f.�f(��D$z2fT�f.a���[�f/�wf/U���H�=��1�����=a��|$��fD���g�
?��A��L$H�|$(H�L$PH�����H�D$,PH�D$0PH�D$4P�D$(L�L$8L�D$4�%�H�� ����H��E1�E1�1�j�D$L��T$0H�t$`�� ��L��H��XZ�'�H����H�T$XdH3%(H���jH��h[]A\A]�@����\$H�|$8H�t$H����H�Ǩ��苼����H�|$H��H����f��*�f/�w!��H�|$0L�d$H@����藶���������-��A�H��1���l$���fD��%��A�H��1���d$���fDH��L���%o��H�����DA�H�|$0@���g���讻�����I�������������@�5X��A��t$�H��g!H�5+�H�81��}������H��g!H�5�H�81��`�����AWAVAUI��H�[�ATUS��H��dH�%(H�D$x1�H�L$8H��H�D$hPH�D$hPH�D$hP1�L�L$hL�D$`�����D$DH�� ���&H�
����Hc�H�>������\$H�|$XH�t$$�������H�|$PL�d$hL�����H���9��H�|$hA����H����f��*�f/�u!��H�l$hH�|$HL���k���H������H�|$h�D$�e�H��u���H�l$hL�|$@D��A����M��A���������L��H���H��t:A��t4A�����
�%���dL���D����tH�H���}H�5o!H������L��1��\����%�L��I�ĺ1��@���H�5�n!H�D$hH���H�ǹ1�1�����H�D$hD�������L���l���A��H�|$h�O�H��uB���iH�l$h�2f.��=��E1�E1��D$�|$�H�|$8H�t$h�)���H�|$hI�����H��u���H�l$h�t$H�L$(D��D��L�L$0L�D$,�{��������|$(�H�T$4H�t$pL������t$,�L$(�|$0D�L$$i��T$4Dk�<D��D)���=Q�����H��A�j	WL��VQ1�jjj�D$HH��$��/2��H��@H��H��� �H���gH��H�\$xdH3%(�@H�Ĉ[]A\A]A^A_�fD�-p�E1��L�d$h�l$�@�����5H�L�|$@E1��D$��t$D��A���P���H�D$hL���?���A��������%���d$���DH�|$`����f.�f(��D$z2fT�f.���>������f/�wf/z��"���H�=��1������%���d$�����p�E1�E1��D$A��\$���@���T���H��H���i��H�����D�������L���Ǵ���D$�|����L$f.�����������M���}L��H��� @L��H���c���A�����
�/���H��tOA�����
uDH�D$hM�����L���H����D$����L$f.��
��������H�5Ap!H����1�L��1��d���H�D$hI�ă��D��������fDH���1��+�D$(����H��������H�=���ϴ��H��H��j!H�D$h����H�=��觴��H��H�mj!�X����H�=��D$$�,����4�����H�=:��_���H��H�Mo!����M���Q���H�!a!H�5N�H�81�蠭������H�a!H�5B�H�81�胭����AWAVAUI��H�~�ATUS��H��dH�%(H�D$x1�H�D$`H�L$0PH�D$`PH�D$`PH�D$`P1�L�L$`L�D$X�1����D$4H�� ���tH�
����Hc�H�>��f�����$H�|$XH�t$��������H�|$PL�d$hL����H���R��H�|$hA�����H����f��*�f/�n!��H�l$hH�|$HL����H�����H�|$hA����H��u����H�l$hH�|$@L�����H������H�|$h�D$�I�H��u���iH�l$hH�|$8L���Y�H�Ǩ���ٲ��A��H�|$h��H��u���,H�l$hH�|$0�$H�L$H�T$pD��L�L$,L�D$(�������|$H�L$D��D��L�L$$L�D$ �m��������L$���P�t$ i��|$$D�L$�T$(Dk�<D��D)���=Q�����H��A�j	WL��VQ1�jjj�D$@H��$��5,��H��@H��H���&�H����H��H�\$xdH3%(�/H�Ĉ[]A\A]A^A_�@A��E1�E1���=j��D$�<$�����E1�E1�L�d$h��58��D$�4$�`���fDE1�E1�L�d$h��-��,$����fD�%��E1��L�d$h�$$���f�����$�B���fDH�|$`�ު��f.�f(��$z2fT��f.W�������Q�f/�wf/
K�����H�=��1�����W��$���D�@�E1�E1��D$A��H��1���$���fD��������{���A���M���H��H���ec��H���0���D�H��1��+�D$�Ǫ���L$H�������m���fDH�=��D$��������H�8\!H�5v�H�81�跨���2���H�\!H�5H�H�81�蚨��f.���S�H�=�H��")������H�=y�H��j!����H�=^�H��j!�Ю���H�=s�迮����H��j!����H�Zj!H��H�Xj!����H�=Dj!���H���H�=�H�"j!H���H�j!H��Z!H�0�ծ��H�>[!H��H�j!H�2�\���H�5e`!�
����H�=�i!H�5��H���%���H�5�_!�
���H�=�i!H�5��H�����H�5W_!��}��H�=�i!H�5q�H���׭��H�5�^!��V��H�=i!H�5E�H��谭��H�=ii!�3*FH�58�蘭��H�=Qi!�
HH�5&�耭���i!����H�=,i!H�5�H���]�����h!��H�=	i!H�5��H���:���H�=�h!H�5,���W���H�=�h!�����H�4��H�5�����H�=�h!�����H��H�5���٪��H�=�h!�����H�F���H�5��躪��H�=�h!�����H�'���H�5��蛪��H�=dh!�����H�x���H�5}��|���H�=Eh!�H���H�5p��]���H�=&h!�H����H�5^��>���H�=h!�H�{��H�59�����H�=�g!�����H�����H�5�����H�=�g!�����H�
���H�52����H�=�g!�����H�����H�5
��©��H�=�g!�����H�����H�5��裩��H�=lg!�����H���H�5��脩��H�=Mg!�����H�Q$��H�5���e���H�=.g!�����H�2��H�5���F���H�=g!�����H����H�5b��'���H�=�f!�����H����H�5L�����H�=�f!�����H����H�5.����H�=�f!�H�f��H�5��ʨ��H�=�f!�����H����H�5��諨��H�=tf!�H���H�5��茨��H�=Uf!�����H����H�5���m���H�=6f!�H����H�5���N���H�=f!�����H���H�5���/���H�=�e!�H�|��H�5x�����H�=�e!�H�]��H�5b���H�=�e!�����H���H�5;��ҧ��H�=�e!�����H����H�5%�賧��H�=|e!�H��H�5
�蔧��H�=]e!�����H���H�5���u���H�=>e!�H�����H�5���V���H�=e!�����H�3��H�5���7���H�=e!�H���H�5�����H�=�d!1�H��G��H�5��ܦ��H�=�d!1�H��G��H�5}����H�=�d!1�H��L��H�5��褦��H�=�d!1�H�tL��H�5F�舦��H�=qd!1�H�L��H�5,��l���H�=Ud!1�H�|���H�5��P���H�=9d!1�H���H�5_��4���H�=d!1�H����H�5M�����H�=d!1�H����H�5�����H�=�c!1�H����H�5����H�=�c!1�H����H�5?��ĥ��H�=�c!1�H���H�5j�訥��H�=�c!1�H��N��H�5��茥��H�=uc!1�H����H�5���p���H�=Yc!1�H���H�5���T���H�==c!1�H���H�5r��8���H�=!c!1�H�X��H�5������H�=c!1�H����H�5������H�=�b!1�H���H�5�����H�=�b!1�H�T��H�5���Ȥ��H�=�b!1�H����H�5��謤��H�=�b!1�H����H�5��萤��H�=yb!1�H�P��H�5y��t���H�=]b!1�H�$��H�5��訣��H�=Ab!1�H�	��H�5o�茣��H�=%b!1�H����H�5/��p���H�=	b!1�H����H�5���T���H�=�a!1�H����H�5���8���H�=�a!1�H�H���H�5�����H�=�a!1�H�,���H�5������H�=�a!1�H�p�H�55����H�=}a!1�H��H�5���Ȣ��H�=aa!1�H�*��H�5���\���H�=Ea!1�H��)��H�5u��@���H�=)a!1�H�0��H�5^��$���H�=
a!1�H�D�H�5L�����H�=�`!�����H�%7��H�5)����H�=�`!1�H��6��H�5��͢��H�=�`!1�H��6��H�5�豢��H�=�`!1�H�q6��H�5��蕢��H�=~`!1�H�56��H�5���y���H�=b`!�����H�f:��H�5��誡��H�=C`!�H��m��H�5���;���H�=$`!�H�Ȇ��H�57�����H�=`!�����H��|��H�5s����H�=�_!�����H�ڋ��H�5]��ޡ��H�=�_!1�H��|��H�5J��¡��H�=�_!1�H��|��H�53�覡��H�=�_!�H�S��H�5�臡��H�=p_!�H�D��H�5���h���H�=Q_!�����H����H�5���I���H�=2_!�����H����H�5���*���H�=_!�����H����H�5������H�=�^!�����H�(��H�5�����H�=�^!�����H��y��H�5���͠��H�=�^!�H�*y��H�5u�讠��H�=�^!�H�[x��H�5[�菠��H�=x^!�H��N��H�5���p���H�=Y^!�H�mM��H�5$��Q���H�=:^!�H��U��H�5	��2���H�=^!1�H�RK��H�5������H�=�]!1�H�v��H�5����H�=�]!1�H�JB��H�5��ޟ��H�=�]!�����H�{��H�5��迟��H�=�]!1�H�O��H�5��裟��H�=�]!1�H�3��H�5s�臟��H�=p]!1�H���H�5���k���H�=T]!1�H����H�5���O���H�=8]!1�H����H�5���3���H�=]!1�H���H�5������H�=]!1�H����H�5�����H�=�\!1�H��6��H�5y��ߞ��H�=�\!1�H�ϋ��H�5g��Þ��H�=�\!1�H��G��H�5��觞��H�=�\!�H�t%��H�5��舞��H�=q\!�H�0��H�5o�艞��H�5R\!H�=b���������H�z�H�5j�H��H�!\!�T���H�=\!�����H�1�H�5���5���H�=�[!�����H��n��H�5a�����H�=�[!�����H��n��H�5'����H�=�[!�����H�4i��H�5��؝��H��[!�����!�ƒ����3H���9<�AH�xH�5������H�=R[!�����H�^��H�5g��r���H�=3[!�����H�/���H�5���S���H�=[!�����H�����H�5o��4���H�=�Z!�����H�����H�5Z�����H�=�Z!�����H�Ҹ��H�5B����H�=�Z!�����H����H�5,��ל��H�=�Z!�����H�T���H�5�踜��H�=yZ!�����H�����H�5�虜��H�=ZZ!�����H�v���H�5���z���H�=;Z!�����H�����H�5���[���H�=Z!�����H�����H�5���<����H�=9��+���H�������H�=�H������H�=�Y!H�ٺH��1��&����H�=�����H���͜���H�=��H���ɝ��H�=�Y!H�ٺH��1�����H�=��蟝��H��臜���H�=�H��胝��H�=DY!H�ٺH��1�蚘���H�=���Y���H���A����H�=9�H���=���H�=�X!H�ٺH��1��T����H�=	�����H������H�=��H�����H�=�X!H�ٺH��1������H�=���͜��H��赛���H�=��H��豜��H�=rX!H�ٺH��1��ȗ���H�=��臜��H���o����H�=g�H���k���H�=,X!H�ٺH��1�肗���H�=���A���H���)����H�=!�H���%���H�=�W!H�ٺH��1��<����H�="����H������H�=��H���ߛ��H�=�W!H�ٺH��1�����
H�=��赛��H��蝚���H�=��H��虛��H�=ZW!H�ٺH��1�谖��H�=AW!1�H�0��H�5b��D���H�=%W!�����H��H�5��%���H�=W!�����H�"��H�5r�����H�=�V!�����H���H�5e����H�=�V!�����H�t��H�5=��Ș��H�=�V!�����H�����H�5M�詘��H�bG!1�H�i���H�5��H�;芘��H�;1�H����H�5���r���H�;1�H�V��H�5���Z���H�=CV!1�H�z��H�5^��>���H�='V!1�H�n���H�5J��"���H�=V!1�H����H�56�����H�=�U!1�H�V��H�5
����H�=�U!1�H�z��H�5���Η��H�=�U!1�[H�=���H�5��鱗���H������#���H��t.H������H�~F!H�8�	���fDH�aF!H�8���H�9F!H�8����H�F!H�8�����H�)F!H�8�����H�YF!H�8����AWL�AVAUATI��U1�S1�H��L�/M��I��A�� A���DL9�}k�V���H�L���(�JH�ȉك���Eىك���E�<-t3<.t'</u��H��M��t�I;l$} ����H�I�D$뱐��������H����[]A\A]A^A_�ff.�@AUI��ATI��UH��SH��H��H�5{W!H��t6H��L��1�茓��H��1�H��t
L��ոH��[]A\A]�@�H�=���'���H��H�%W!�ff.�UH��SH��H��� uOH����H�5W!H�\	H��taH�ٺ�1�����H��
1�H��豐��H��H��H��[]� ���H�@H�H�H��y��e���H�5�V!H��H��u��H�=k��u���H��H�{V!�f���H�==W!SH��H��t�7���H�ߺH������[�H�=�������H��H��V!����AVAUATUH��SH��H�������H��I����H��I�����H��I���ѐ��H��I� ��I��A�A���H��,wH���L�4BO�t6L��1Ҿ
�k���L���+H��1�蔑��H�=}X!I��H�����<���L��H��H�����L��1Ҿ
����H�=@X!I��H��������L��H��H���ɒ��H��1Ҿ
���H�=X!H��H��t;�֔��H��H��H��蘒��[�]A\A]A^�f.�M�v�
����H�=���蟕��H��H��W!�H�=�������H��H��W!�T���H�=����_���H��H�uW!�����AUATUH��H��SH���H���?���H�޿I���/���H�޿I������H��I��uNL��1Ҿ
���H�=�V!I��H�����ϓ��L��H��H��葑��H��uSH���[]A\A]�L��1Ҿ
虍��H�=�V!I��H����聓��L��H��H���C����x���fDH��1Ҿ
�Y���H�=ZV!H��H��tj�E���H��H��H������H���[]A\A]��H�=C������H��H�V!�,���H�=)�����H��H��U!�Z���H�=����ߓ��H��H��U!�v�����USH��H���H���ƍ��1Ҿ
H��藌��H�=�U!H��H��t(胒��H��H��H���E���H���[]�f�H�=}���_���H��H�EU!���ATUH��H��SH����E���H�޿I���5���H��I��u<H��1Ҿ
���H�=�T!H��H��tV���H��H��H��諏��[�]A\ÐL��1Ҿ
���H�=�T!I��H��t:譑��L��H��H���o����DH�=���藒��H��H�mT!�H�=����w���H��H�UT!�ff.���ATUH��H��SH����U���H�޿I���E���L��1Ҿ
H������H�=�S!I��H��td���L��H��H�����H��u[�]A\ÐH��1Ҿ
�ъ��H�=�S!H��H��tB轐��H��H��H������[�]A\�DH�=���蟑��H��H�mS!�|���H�=�������H��H�ES!���ATUH��SH��H����e���H��I���U���L��1Ҿ
H���#���H�=�R!I��H��tT����L��H��H���э��H��1Ҿ
��H�=�R!H��H��tC�ޏ��H��H��H��蠍��[�]A\�fDH�=W��运��H��H�uR!�H�=���蟐��H��H�MR!���USH��H���H��膊��1Ҿ
H���W���H�=R!H��H��t(�C���H��H��H������H���[]�f�H�=/������H��H��Q!���USH��H���H������1Ҿ
H���׈��H�=�Q!H��H��t(�Î��H��H��H��腌��H���[]�f�H�=7��蟏��H��H�5Q!���USH��H���H��膉��1Ҿ
H���W���H�=�P!H��H��t(�C���H��H��H������H���[]�f�H�=4������H��H��P!���ATUSH��H�������H�=�N!H��H����Ѝ��H��H���Չ��H��t*H�=�N!H����認��H��H��诉��H����H�=VN!H����耍��H��H��腉��H��t&H�=(N!H��t+�^���H��H���c���H���1[�]A\��H�=J���7���H��H��M!�H�=,������H��H��M!�I����H�=�����H��H��M!�K���H�=���ύ��H��H��M!�����
1�H��衆��H�5zM!I��H���N1���L��躈��H������H�5BM!H���1��?�L��荈��H�������H�=
M!H���4�/���L��H��H�������@�
H��1��	���H�5�L!H��H����1���H���"���H�������H�5�L!H��tM1��1�H�����H���g���H�=QL!H����蛋��H��H��H���]����?�����H�=	�����H��H�L!��H�=��_���H��H�L!�����H�=ƾ�?���H��H�L!����H�=������H��H��K!�
���H�=�����H��H��K!���H�=���ߋ��H��H�mK!� ���AWAVL�5u4!AUI��ATM�}US1�H��H�/H�=F��� �I�<�A��L��H��tI�u������tH��H��u�A�H��D��[]A\A]A^A_�ff.�f���UH��H���SH���F���H���^���H�=�M!Hc�H�\H��t"����H��H��H���LJ��H���[]�H�=�����H��H��M!�ff.�AVAUI��ATM�uL�%3!USH�/�H�=M��� �I�<�H��L��H��tI�u�����څ�tH��uֺ
[��]A\A]A^�fD��UH��H���SH���V���H���n���H�=�K!Hc�H�\H��t"����H��H��H���׆��H���[]�H�=�����H��H��K!�ff.���AUI��ATUH��S�H��XdH�%(H�D$H1�I��@��L��趃��I��H��H��	u�H�|$���H�=�F!Hc�H�\H�����a���H��H��H���#���H�|$1Ҿ
�B���H�=KF!H��H�����*���H��H��H�����H�|$�R���H�=F!Hc�H�\H���J���H��H��H��跅��H�|$ 1Ҿ
�ց��H�=�E!H��H����辇��H��H��H��者��H�|$(1Ҿ
蟁��H�=�E!H��H����臇��H��H��H���I���H�|$01Ҿ
�h���H�=QE!H��H���E�P���H��H��H������H�|$81Ҿ
�1���H�=E!H��H��������H��H��H���ۄ��H�=�D!H�\$@H������H��H��H��賄��H�=�D!H��tg�҆���H��H��蒄���H�L$HdH3%(�9H��X[]A\A]�fDH�=���藇��H��H��D!�����H�=����o���H��H�-D!�y���H�={���O���H��H�D!�:���H�=����/���H��H��C!��H�='������H��H��C!���H�=�����H��H��C!�D���H�=g���φ��H��H��C!���H�=ɹ�识��H��H��C!���H�=���菆��H��H��C!�A����k���ff.���AUI��ATUH��S�H��XdH�%(H�D$H1�I��@��L���F���I��H��H��u�H�|$�N���H�=B!Hc�H�\H���~��H��H��H��賂��H�|$����H�=BB!Hc�H�\H���輄��H��H��H���~���H�|$1Ҿ
�~��H�=�A!H��H����腄��H��H��H���G���H�|$ 1Ҿ
�f~��H�=�A!H��H���c�N���H��H��H������H�|$(1Ҿ
�/~��H�=�A!H��H�������H��H��H���ف��H�|$01Ҿ
�}��H�=AA!H��H�������H��H��H��袁��H�|$81Ҿ
�}��H�=A!H��H��tb譃��H��H��H���o����H�L$HdH3%(��H��X[]A\A]�H�=����w���H��H��@!�b����H�=���O���H��H�}@!�H�=����/���H��H�e@!�+���H�='������H��H�M@!����H�=�����H��H�5@!�}���H�=���σ��H��H�@!�&���H�=ɶ�诃��H��H�@!�����~��ff.�AWI��AVI��AUM��ATI��USH��H��H�5F!H����H��L��1��~��H��1�H����H�5�E!H���R��H��1��N~��H�5�E!H��H���1���H���'~�����H�I��@����H��H�I)�H�@L��O�DH�5GE!H��tRM��H��L��1���}��L��H��A�ոH��[]A\A]A^A_þH�=��o���H��H�
E!����H�=�L�D$�J���L�D$H��H��D!�f�H��L�D$�S���L�D$�@���f�H���8���I�������H�=�����H��H�}D!�����H�=z��ρ��H��H�eD!���L���z��I������AWAVAUI��H��ATUSH���H���{��H�޿H���{��H��t&H�=�C!H��H�����M���H��L��H���~��H�=�5!�AH�5�C!H����H�=�5!H��1��K|��H��1�H����H���{��1Ҿ
H����y��H��H����z��I��H����H����z��I��H���IH���z��I��H��t]H��� �7H����H�5C!H�L	H���M��1��{��L��1Ҿ
H�D$�Fy��H�t$H��蹀��I��H���Iz��H��H����H�=�B!H���|���H��L��H����|��I��t#H�=dB!H���c��~��L��L��H���|��I��t#H�=3B!H���Z�~��L��L��H���w|���I��t(H�=�A!H�����~��L��L��H���I|���H��[]A\A]A^A_�D1Ҿ
H���Qx��I�����f�H�߃��t��y�����Ⱥ���*�����)R��)���H�E �SH���E�JH�=qA!���<PD�Hc�H�\H�������FfD1Ҿ
H���w��I�����f�H�=۰��~��H��H�-A!�>���H�=����~��H��H��@!�d����H�=��o~��H��H��@!�/���H�xH�@H�H��������w��H�5�@!H��H��������H�=�H�L$�~��H�L$H��H��@!���@��ZH�=��|��H��H���Oy��H�02!����~�������@H�m����H�=����}��H��H��?!��H�=����}��H��H��?!�}���H�=ݰ��_}��H��H��?!���UH��AWAVI��AUI��ATI��SH��H��8D�E�dH�%(H�E�1���u
I�������H�5W?!H����L��1�1��"x��I��H���UI���KI����H��H� �qL�{A��Aը����M���|���M�H�0�DI��A��Aը������DFt��+����L�}�H�5�L���yx��I�4�>��I����I�EL��� �A�}'tH����H���f.�H���cH�H��� �7D�{A��'tH����H���8H��A�G�L����H�U��{��H�U�H�0�fDH��D�:A�Gը���A��DFt�A�OՁ���I��A�H��H�5"�L�E�H�U��w��H�U�L�E�H��H��H��LC�L)�H�AI��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�L$L��L��I���L����w��1Ҿ
B�8H����s��H�==!I��H��uH�=J���z��H��<!H���y��L��L��H���Uw���H�������I���|L��I���-����E����L��M����f��KL�z���A�E�����A���H�5y<!H���"����H�=
��z��H��H�U<!����L��M��I�EL��� ��H����H���H��A�ML��A�I���t���H�SD�:A��'��H�{����I���)�U���t%H�=�;!H���r�mx���L��H���-v��I����I�$ �uI���y��H���I��A�$�DBt�L��H�5ڴ�Au��H��I��H�@H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�L$L��L��H���H���u��1Ҿ
B�8H���q��H�=�:!I��H��uH�=����x��H��:!H���ow��L��L��H���1u��H����H� �ZH���x��H��@H����DBt�H��H�5��Kt��H��I��H�@H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�L$H��L��H���H���t��1Ҿ
B� H���p��H�=�9!H��H��uH�=����w��H��9!H���yv��H��L��H���;t��I��t#H�=�9!H�����Pv��L��L��H���t��H�E�dH3%(��H�e�[A\A]A^A_]�I�E�8'����I�}����I��L��I�����f.�H�[����I��E1�H���i����M�d$���fDL�}�I���[���I��L��A�����H�}�L��H)��u��I���E����H�=H���v��H��H��8!����L��I�E u;E�}I���{���fDI�}~aM�}H��A�L��I��A��t���DI�UI��D�:�A����H�=����u��H��H�58!�n���L��� ���M�}A���'t4H��tBM��I�ݻ���A�M��'u�H��A�L��I���[���H��A�L��I�����L��A�A��y����jp��f.���AVAUATI��H��USH����ao��H�޿I���Qo��H�޿I���Ao��H�޿H���1o��L��H���F�E1�Hc�H�TH��tH�E t3H�m�EE1����<BA��L��H��L�����[�]A\A]A^�H����f���AVAUATI��H��USH����n��H�޿I���n��H�޿I���n��H�޿H���n��L��H����E1�Hc�H�TH��tH�E t3H�m�EE1����<BA��L��H��L������[�]A\A]A^�H����f���AUATUH��H��SH���H���m��H�޿I����m��H�޿I����m��L��L��H��H��E1��k���H���[]A\A]�ff.����f.����w������AUATUH��H��SH���H���om��H�޿I���_m��H�޿I���Om��L��H���d�L��H��H��Hc�E1�H�T����H���[]A\A]�ff.���AUATUH��H��SH���H����l��H�޿I����l��H�޿I����l��L��H�����L��H��H��Hc�E1�H�T�K���H���[]A\A]�ff.�H�5�1!SH��H��t@���H��1��m����H��u��H�ߺ�+1�[�hm����H�=���r��H��H�-1!���AUI��ATUH��S�H��XdH�%(H�D$H1�I��@��L����k��I��H��H��	u�H�|$���H�=w.!Hc�H�\H�����p��H��H��H���Sn��H�|$1Ҿ
�rj��H�=3.!H��H���/�Zp��H��H��H���n��H�|$��H�=�-!Hc�H�\H�����%p��H��H��H����m��H�|$ �
1��j��H�5�-!H��H����1���H���l��H��t-H�5�-!H����1����H���k��H���}H�=N-!H���M�o��H��H��H���Zm��H�|$(1Ҿ
�yi��H�=-!H��H�����ao��H��H��H���#m��H�|$01Ҿ
�Bi��H�=�,!H��H�����*o��H��H��H����l��H�|$81Ҿ
�i��H�=�,!H��H���H��n��H��H��H���l��H�=f,!H�\$@H�����n��H��H��H���l��H�=6,!H�����n���H��H���hl���H�L$HdH3%(�H��X[]A\A]�@�H�=���oo��H��H�
,!�]���H�=i���Oo��H��H��+!����H�=D���/o��H��H��+!���H�=.���o��H��H��+!�Z���H�=u����n��H��H�U+!�#���H�=�����n��H��H�=+!���H�=-���n��H��H�%+!���H�=����n��H��H�
+!�A���H�=����on��H��H��*!���H�=���On��H��H��*!���H�����H���s����H�=���n��H��H��*!�6����h��ff.���UH��AWAVAUATSH��H��HH�}�L�?dH�%(H�E�1�A�� �5I��H��A��I�GH��H��H%�H)�H���H��H9�tH��H��$�H9�u����L�l$I���M�����m��I�M��H�0�f���uA�$ �I��H��I9�tUD�3B�v�� u�E��t�I�L$����H�M�H��H�u��3m��H�M�H�u�H�B��A�$I��1�I9�u�fDM9�vA�|$� uI��A�$L���bj��L�H�E�M��A�� �;L��L�HH����I��I��xdK��H�=L�H���A��A��E��E����H�ֹH�=2���€�����M����L��H�����H��E1�H��xI�4�H�=���������H�=u !��H�5�/!H�]�H����H�=T !H�ٺ1��f��H��H��ttE���$H�M�dH3%(H����H�e�[A\A]A^A_]�fDL�H�_����E�4$I��1��4���f�H�PL�HI��I�������&���fDH�E�L�`H� tL�`H�E��H�=�L�������tE�H�=��L�������t+A�$��+��t/���H�E�H�E�H�E�� ���I��A�$��+��uؾL��I���j��L��I���Lh���:L��I��H�E��e��H��H���JM�&A�� ��I�^H�5c�H����g��L��H����H�JH����H�AH��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�t$H��I���L����c��L��H�5��jg��1�L���
�L�`��b��L��I���d��H�@H���H�\H�5B-!H����H�ٺ�1��d��1�L��
H��A��ub��H��H����i���y��*H��1��d��I���}f��H�=��/i��H��H��,!�=����{i��H��!H��H��!L���
�nd��H�=���	DH�{��f��HcH�=U!H��H��H�T�e��I9�u�����H)�H�L��;���H�P�{���L��L���h��H�E����H�ǹ!�1��+�c��H�����L��L��A���g��H�E��W���H��L��A��g��H�E��=���H��L��H��L)��g���:H��I���@c��I��H����H��H��I��H)��bg���:L��I���c��H���{L)�L��H���;g��I��H�E�H�E�H�E��I��t:A��uI�����tA��������!�L��1��*�b��H��I��tRA��uI�����tA�$�����?�y�L��1��*�yb��H�ߺ�+H��1��bb��H��I��t)1Ҿ
L���
`��H�ߺ�+H��1��3b��H��I������I�E�� ��H����H�����I��A�}-����H�R*!H���[H��H��1�1���a��H�����I�^H�5��H���d��I�VH�JH���,���A�����H��~�H��H�U��e��H�U�I��A�H���A�H���f���H�{��e��I���P���H��A��c��I���.���I�}����M�m�����H�=ט��e��H��H�o)!�1���H���^��H������H��~�H��H�U��e��H�U�I��A�H����A�H�������H�{���d��I�����L���c��I������H�=`��Me��H��(!���H�{�H�U��d��H�U�I�����L��1Ҿ
�^��I�����L��1Ҿ
��]��I���R���H�{�H�U��Cd��H�U�I���C�����_��f���UH��AWAVAUATI��H��SH���H��HdH�%(H�E�1��^��H�޿I���^��H�޿H�E��^��H�޿H�E��w^��H�޿I���g^��H�E�H�E�H��� ��H��H�X��H�E�H����H�5�Hc�H�>��f�H���VI���L�D�H�=%!�������D�D�|P�Mc�O�|?H��u#H�=?��H�M��c��H�M�H��$!H��H�M��b��L��L��H���X`��H�M�H�=�$!�D��������D�D�|P�Mc�O�|?H��uH�=q���Yc��H�M�H�n$!H��H�M��2b��L��L��H����_��H�M�H�=A$!�D��������D�D�|P�Mc�O�|?H��uH�=���b��H�M�H�$!H��H�M���a��L��L��H���_��H�M�H�=�#!�D��������D�D�|P�Mc�O�|?H��uH�=����b��H�M�H��#!H��H�M��ja��L��L��H���,_��H�M�H��	���D�H�=Z#!�������D�D�|P�Mc�O�|?H���PH�M��a��L��L��H����^��H�M�H������������C�DP�I��tI� �WI�����A�>-D�H�=�"!H�H�\H��u$H�=K���a��H��"!H��f��`��H��L��H���M^��H�E�H�U�H�U�H�U�H���H��� ��H��L�p��I����H�������H��T��A�D�H�=i!!������A�D�D�|P�Mc�O�|?H������_��L��L��H���]��H��~CA�D�H�=!!������A�D�D�|P�Mc�O�|?H�����_��L��L��H���j]��H��uDA�H�=� !������A�F�\P�Hc�H�\H�����c_��H��L��H���%]��DH�E�H�E�H�E�I����I�M�� �-H����H�5? !H�\	H���CH�ٺ�1��=[��1Ҿ
L��H����X��H��H���``��H�=�!H��H���E��^��H��L��H���\��H�]�H��tFH��� thH�=�!L�kL�sH��tn�^��H��L��H���Q\��A�}[�vH�E�H�E�H�E�H�M�dH3%(���H�e�[A\A]A^A_]�H��H�=E!L�k��I��H��u�H�=Q���%_��H��H�!�r���fDH�@I�}H�H��������W��H�5�!H��H��������H�=��^��H��H��!���fDL�pH�XI���T���H���<������H��T�*���A�H�=�!������A�FD�|P�Mc�O�|?H���]�H]��L��L��H���
[��H��~AA�FH�=X!������A�FD�|P�Mc�O�|?H���^�]��L��L��H����Z��H�������A�FH�=!������A�F�\P�Hc�H�\H���T���H�=9���]��H��H��!�4���@H�XH�H�c���H�=����]��H��H��!������������S�TJ�Hc�H�\H����
I����
H�=�!H�������H�=����!]��H��H��!�r���f�H����I�����CH�=�!�������CD�tP�Mc�O�t6H�����[��L��L��H���}Y���H�=[!��0Hc�H�\H�������H�=����\��H��H�,!�����H����I�����CH�=�!�������CD�tP�Mc�O�t6H�����#[��L��L��H����X���CH�=j!�������CD�tP�Mc�O�t6H����
��Z��L��L��H���X���H�=$!�������C�\P�Hc�H�\H������H�=����[��H��H��!���@H���.I���$�CH�=�!�������CD�tP�Mc�O�t6H����
�CZ��L��L��H���X���CH�=�!�������CD�tP�Mc�O�t6H����	�Z��L��L��H����W���CH�=[!�������CD�tP�Mc�O�t6H���z��Y��L��L��H���W���H�=!��0Hc�H�\H���	���H�=����Z��H��H��!���f�H���vI���l�CH�=�!�������CD�tP�Mc�O�t6H����	�+Y��L��L��H����V���H�=�!�������C�\P�Hc�H�\H���c���H�=
����Y��H��H�X!�C���H����I�����CH�=Y!�������CD�tP�Mc�O�t6H���	�X��L��L��H���MV���CH�=!�������CD�tP�Mc�O�t6H����LX��L��L��H���V���H�=�!��0Hc�H�\H�������H�=2���Y��H��H��!�p���I�FH��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�\$L��L��H���H��L�k�U��B�D3�H�߾:�S��L��H��t�H��H��ID��"V��H�=s!I��H�����ZW��L��L��H���U���X���SH��DPt�+I��L����U��H���V��H�=!H��H�����W��H��L��H����T�������H�=^!�������CD�tP�Mc�O�t6H���=�V��L��L��H���T���CH�=!�������C�\P�Hc�H�\H�������H�=����W��H��H��!�����1�1�@���H���TJ�H��u�H�=�!Hc�H�\H�������H�=:���*W��H��H��!�{�����������C�TP�I��tI� �[I�����A�>-D�H�=]!Hc�L�tH�����U��L��L��H���yS���1�f����H���TJ�H��u�H�=!Hc�H�\H�����H�=����rV��H��H��!���E1�1�B�;��I���TP�I��u�I��tI� ��I�����A�>-D�H�=i!Hc�L�tH������T��L��L��H���R��1�B�;��I���TP�I��u�H�=!Hc�H�\H���"�H�=����U��H��H��!��f���������C�TP�I��tI� �I�����A�>-D�H�=�!Hc�L�tH���T�?T��L��L��H���R���CH�=n!�������CD�tP�Mc�O�t6H�����T��L��L��H����Q���CH�='!�������C�\P�Hc�H�\H���7�H�=ۇ���T��H��H��!���1�1�@�4��H���Tr�H��u�I��tI� ��I�����A�>-D�H�=R!Hc�L�tH���qH�M��@S��L��L��H���Q���CH�=!H�M��������CH��D�tP�Mc�O�t6�H�M��R��L��L��H���P���CH�=�!H�M��������CH��D�tP�Mc�O�t6�H�M��R��L��L��H���tP��H�M�H��	���CH�=k!�������C	D�tP�Mc�O�t6H���rH�M��aR��L��L��H���#P��H�M�H�����C
H�=!�������CD�tP�Mc�O�t6H����H�M��R��L��L��H����O��H�M�H��u>�CH�=�!�������C
�\P�Hc�H�\H������Q��H��L��H���O��H�={!H�����Q��1�L��H���hO��H�E����H�=!H�����H�=����wR��H��H��!����H�=b���OR��H��H��!�f���H�=Lj��/R��H��H�u!����H�=)���R��H��H�=!���H�=�����Q��H��H�%!���H�=g����Q��H��H�E!��H�=Ą��Q��H�M�H��H�y!����@H�=����Q��H��H��!����H�=w���_Q��H��H��!�7���H�=W���?Q��H��H��!����H�=7���Q��H��H�e!����H�=���P��H�M�H��H��!����@H�=o��H�M���P��H�M�H��H��!�g���H�=x���P��H��H�]!���H�=
���P��H��H�!���H�=���oP��H��H��!� ���H�=̓��OP��H��H��!���H�=����/P��H��H�}!���H�=����P��H��H��!�0�H�=����O��H��H�
!��H�=����O��H��H��!�H�H�=ǁ��O��H��H��!���H�=����O��H��H�}!����H�=����oO��H��H�U!�@���H�=͂��OO��H��H��!�:�H�����1�1�f����H���TJ�H��u�I��tI� �pI�����A�>-D�H�=�!Hc�H�\H���[��M��L��H��H���K��H�=�!H������H�=v���N��H��H��!���fDM�v����M�v�����M�v����M�v�4����H�=Ł��GN��H��H��!�[����H�=7���N��H�M�H��H��!���@H�=
���M��H�M�H��H��!�j���@H�=��H�M���M��H�M�H��H��!��H�=���M��H��H��
!��M�v���M�v��H�=
���uM��H��H�c!����QH�����AUI��ATI��US�H��dH�%(H�D$x1�H�吉�L���6G��H�D�H��H��u�H�|$H���xH�|$(H����H�\$@H���AH�|$HH��t21Ҿ
��E��H�=!H��H�����K��H��L��H���mI��H�|$PH����1Ҿ
�E��H�=�!H��H�����jK��H��L��H���,I��H�|$X1Ҿ
�KE��H�=�!H��H���x�3K��L��H��H���H��H�|$`H��t21Ҿ
�E��H�=O!H��H���[�J��H��L��H���H��H�|$hH��t+�س��H�=!H��H���E�J��H��L��H���H��H�\$p�H��tVH�=�
!H���2�J��H��L��H���OH��H����I��H�=�
!H��H�����_J��H��L��H���!H���H�L$xdH3%(��H�Ĉ[]A\A]�f.�1Ҿ
�D��H�=�
!H��H���A�I��H��L��H���G��H�\$ H���B���1Ҿ
H����C��H��H��� �nH��������(H�=)
!H�����I��H��L��H���]G������1Ҿ
�tC��H�=
!H��H�����\I��H��L��H���G��H�\$H�sH� tH�sH�-7��H���������H�|$H��u7H�sH� tH�s�H����€�1����G�������1Ҿ
��B��H�=U	!H��H���	���H�=�|��I��H��H�.	!���H�|$81Ҿ
�B��H�=�!H��H�����pH��H��L��H���2F��H��1Ҿ
�SB��H�=�!H��H���X�;H��H��L��H���E��H�\$0H�������1Ҿ
H���B��H��H��� ��H�{�����xH�=Q!H���@���H�=	|���H��H��H�-!� ���H�=�{��H��H��H�-!���H�=|��H��H��H��!���H�=|��H��H��H��!���H�=�z��_H��H��H�}!���1Ҿ
H���1A��I��H��� ��H���������H�=�!H�����F��L��L��H���D������f�H�=�z���G��H��H�e!�_���H�=�y��G��H��H��!�h���H�=�y��G��H��H��!����H�=�y��G��H��H��!���H�{���:���H�{�����L������I���%���H�=�}��5G��H��H��!����H���������H�=%z��G��H��H�M!�8���H�=z���F��H��H�=!���H�=�y���F��H��H�%!�3���H�=?}��F��H��H�
!���H�����H������H�����H���x����cA����AUI��ATI��US�H��dH�%(H��$�1�H��fD��L���>@��H�D�H��H��u�H�|$H���H�|$(H����H�|$0H����H�\$HH����H�|$@1Ҿ
��>��H�=�!H��H�����D��H��L��H���lB��H��1Ҿ
�>��H�=^!H��H�����uD��H��L��H���7B��H�\$81Ҿ
H���S>��H��H��� �"H��������^H�=�!H����H�=Lx��"E��H��H��!�{fD1Ҿ
��=��H�=�!H��H�����C��H��L��H���A��H�\$ 1Ҿ
H���=��H��H��� ��H�{�����rH�=�!H���B�C��H��L��H���HA��H�|$hH����1Ҿ
�]=��H�=!H��H�����EC��H��L��H���A��H�|$p1Ҿ
�&=��H�=�!H��H���j�C��L��H��H����@��H�|$xH��t21Ҿ
��<��H�=�!H��H���O��B��H��L��H���@��H��$�H��t+谫��H�=A!H��H���4�B��H��L��H���Z@��H��$��H��tVH�=!H���'�bB��H��L��H���$@��H���A��H�=�!H��H�����4B��H��L��H���?���H��$�dH3%(�H�Ĩ[]A\A]�@1Ҿ
��;��H�=�!H��H�����A��H��L��H���?��H�\$H�sH� tH�sH�-�~�H��������rH�|$H�GH� tH�G�8-u7H�sH� tH�s�H����€�1��������&����1Ҿ
�4;��H�=-!H��H��t~� A��H��L��H����>�����1Ҿ
�;��H�=�!H��H��u�H�=u���A��H��H��!�H������$���H�=�t���A��H��H��!����H�=�t��A��H��H��!�b���H�=u��A��H��H�!����H�=�t��_A��H��H�� ����H�=ks��?A��H��H��� ���1Ҿ
H���:��I��H��� ��H��������FH�=� H�����?��L��L��H���=���7���H�=�s���@��H��H��� ����H�=�r��@��H��H�6� �v���H�=�r��@��H��H�� ����H�=�r��h@��H��H�� ���H�=�v��H@��H��H�� ���H�����H���~���H�{������H�\$XH��ufH�|$`H���z���1Ҿ
��8��H��H��� H���+H�����H�=bv���?��H��H��� ����L���3��I�����H�|$P1Ҿ
�8��H��H�H� H����H���o>��H��L��H���1<��H��1Ҿ
�R8��H��H�� H���l����H�=Wr�>?��H�� �O���H�{������H�=8r��?��H��H�� �F���H�=r���>��H��H��� �[���H���]��H������H�=�q��>��H�u� �1����H�=�q�>��H�H� ����9��fD��AUI��ATI��US�H��HdH�%(H�D$81�H���L���j8��H�D�H��H��u�H�|$1Ҿ
�*7��H�=�� H��H�����=��H��L��H����:��H�|$1Ҿ
��6��H�=d� H��H���`��<��L��H��H���:��H�|$H����H�|$ H����H�\$(H��tMH�=�� H�����<��H��L��H���Q:��H����;��H�=� H��H��t:�e<��H��L��H���':��H�L$8dH3%(��>H��H[]A\A]�H�=�p��/=��H��H�m� �H�=;o��=��H��H�U� �\������H�=L� H��H������;��H��L��H���9������1Ҿ
�5��H�=� H��H�����;��H��L��H���^9������f�H�=�n��<��H��H�� ���H�=rn��_<��H��H�� �)���H�=[n��?<��H��H��� �H���H�=�o��<��H��H�u� �_����6��ff.���AUI��ATUH��S�H��XdH�%(H�D$H1�I��@��L����5��I��H��H��	u�H�|$1Ҿ
�4��H�=� H��H�����:��H��H��H���A8��H�|$1Ҿ
�`4��H�=�� H��H���m�H:��H��H��H���
8��H�|$1Ҿ
�)4��H�=b� H��H����:��H��H��H����7��H�|$ 1Ҿ
��3��H�=#� H��H������9��H��H��H���7��H�|$(1Ҿ
�3��H�=� H��H���h�9��H��H��H���e7��H�|$01Ҿ
�3��H�=�� H��H����l9��H��H��H���.7��H�=w� H�\$@H�����D9��H��H��H���7��H���8��H�=?� H��H��tw�9��H��H��H����6��H�|$8H��u)H�L$HdH3%(��hH��X[]A\A]�D�ӡ��H�=� H��H��� �8��H��H��H���}6���H�=-m��9��H��H��� �i����H�=�k��9��H��H��� ����H�=�l��_9��H��H�m� ����H�=Wk��?9��H��H�U� �x���H�=2k��9��H��H�=� �!���H�=l��8��H��H�%� ����H�=�k���8��H��H�
� �s���H�=Wo��8��H��H��� ����H�=�j��8��H��H��� ����{3��ff.���AUI��ATI��US�H��XdH�%(H�D$H1�H��@��L���V2��H�D�H��H��	u�H�|$1Ҿ
�1��H�=� H��H�����6��L��H��H���4��H�|$H���AH�|$H����H�|$ H����H�|$(H���TH�|$0H���H�|$8H����H�\$@H��tMH�=T� H�����v6��H��L��H���84��H����5��H�=!� H��H��tA�L6��H��L��H���4��H�L$HdH3%(���H��X[]A\A]�f.�H�=�j��7��H��H��� �H�=i���6��H��H��� �U����˞��H�=�� H��H���x�5��H��L��H���u3���
���1Ҿ
�/��H�=m� H��H�����|5��H��L��H���>3������f�1Ҿ
�T/��H�=5� H��H�����<5��H��L��H���2���u���f�1Ҿ
�/��H�=�� H��H���!�4��H��L��H���2���&���f�1Ҿ
��.��H�=�� H��H�����4��H��L��H���~2������f�1Ҿ
�.��H�=�� H��H��te�4��H��L��H���B2�����DH�=�k��g5��H��H�U� �E����H�=[g��?5��H��H��� �h���H�=9h��5��H��H�� �{���H�=h��4��H��H��� ����H�=�f���4��H��H��� ���H�=�f��4��H��H��� �_���H�=h��4��H��H�e� ����{/��ff.���AUI��ATI��US�H��HdH�%(H�D$81�H���L���Z.��H�D�H��H��u�H�|$1Ҿ
�-��H�=�� H��H�����3��H��L��H����0��H�|$1Ҿ
��,��H�=�� H��H���`��2��L��H��H���0��H�|$H����H�|$ H����H�\$(H��tMH�=-� H�����2��H��L��H���A0��H����1��H�=�� H��H��t:�U2��H��L��H���0��H�L$8dH3%(��>H��H[]A\A]�H�=�f��3��H��H��� �H�=+e��2��H��H��� �\����ۚ��H�=|� H��H������1��H��L��H���/������1Ҿ
�+��H�=M� H��H�����1��H��L��H���N/������f�H�=�d��o2��H��H�
� ���H�=bd��O2��H��H��� �)���H�=Kd��/2��H��H��� �H���H�=�e��2��H��H��� �_�����,��ff.���AUI��ATI��US�H��8dH�%(H�D$(1�H���L����+��H�D�H��H��u�H�|$H���\H�|$H���
H�|$H����H�\$ H��tMH�=�� H�����N0��H��L��H���.��H���/��H�=�� H��H��t9�$0��H��L��H����-��H�L$(dH3%(��mH��8[]A\A]�f�H�=ud���0��H��H�E� �H�=�b���0��H��H�-� �]���1Ҿ
�)��H�=� H��H�����/��H��L��H���N-������f�1Ҿ
�d)��H�=�� H��H�����L/��H��L��H���-�����f�1Ҿ
�$)��H�=�� H��H��tE�/��H��L��H����,���q���DH�=c��/��H��H�]� �G����H�=�b���/��H��H�E� �H�=�b��/��H��H�� �?����*��ff.���AUI��ATUH��S�H��XdH�%(H�D$H1�I��@��L���f)��I��H��H��	u�H�|$H��t0�h���H�=�� Hc�H�\H�����.��H��H��H����+��H�|$1Ҿ
��'��H�=E� H��H���)��-��H��H��H���+��H�|$���H�=
� Hc�H�\H�����-��H��H��H���a+��H�\$ 1Ҿ
H���}'��I��H��� �NH��������MH�=�� H�����H-��L��H��H���
+��H�|$(1Ҿ
�)'��H�=j� H��H���&�-��H��H��H����*��H�|$01Ҿ
��&��H�=+� H��H������,��H��H��H���*��H�|$8H���-H�=�� H�\$@H���X�,��H��H��H���e*��H���+��H�=�� H��H���J�u,��H��H��H���7*���H�L$HdH3%(��H��X[]A\A]�H�=^`��?-��H��H��� ����H�{���������H�5)� H�����e�L��1��,(����H��u��L���+1��	(��H�=� I��H���i���H�=Mc��,��H��H��� �I���fD1Ҿ
�%��H�=�� H��H�����l+��H��H��H���.)�����f�H�={^��O,��H��H�e� ���H�=�_��/,��H��H�=� ���H�='^��,��H��H�5� ����H�=^���+��H��H�� ���H�=�^���+��H��H�
� ����H�=�^��+��H��H��� ���H�=
_��+��H��H��� ����H�=�]�o+��H��H�u� �P����K&��ff.���AUI��ATI��US�H��hdH�%(H�D$X1�H��@��L���&%��H�D�H��H��
u�H�D$��H��t%H� �rH�@����H��,�rH�|$1Ҿ
�#��H�ٺ�+H��1���%��H�=�� H��H�����)��H��L��H���D'��H�|$1Ҿ
�c#��H�=�� H��H���p�K)��H��L��H���
'��H�|$ 1Ҿ
�,#��H�=U� H��H����)��L��H��H����&��H�|$(H���7H�|$@H����H�\$HH��tMH�=�� H������(��H��L��H���&��H���"(��H�=�� H��H��ts�(��H��L��H���`&��H�L$XdH3%(��WH��h[]A\A]�@H������H��,�����H��iH�BH�\�x���f.�H�=�\��/)��H��H�� �m���H�=;[��)��H��H��� �#������H�=�� H��H������'��H��L��H���%������1Ҿ
�!��H�=�� H��H���A�'��L��H��H���^%��H�|$0H��t21Ҿ
�w!��H�=�� H��H�����_'��H��L��H���!%��H�|$8H���K���1Ҿ
�6!��H�=G� H��H�����'��H��L��H����$������H�=[��(��H��H�� �����H�=�Z���'��H��H��� �p���H�=W^��'��H��H��� ����H�=[��'��H��H��� �]���H�=�Y��'��H��H��� ���H�=rY��_'��H��H�m� ���H�=[Y��?'��H��H�5� �H����"��ff.���AUI��ATUSH��H���&��H��I���"��H�=d� ��H���$���H�=�bH���!��H�5S� H�4� I��H���xH��H��1���!���'��H�=� H��H���.�y%��H��L��H���;#��H���#����������ƒ�����ƒ�����
�ƒ�
��
��ƒ����k�ƒ����}�ƒ�
��
����������	�H�=a� H��� ��$��H��H���� ��H������H�=-� H�����$��H��H��� ��H��H��t[H�5�� H����H��1�1�� �����+H��1�� ��H�=�� H��H���3
�>$��H��H��H���"��H�=�� H���P�$��H��H���  ��H��H��t[H�5`� H����H��1�1��+ �����+H��1�� ��H�=#� H��H���/�#��H��H��H���|!��H�=�� H�����#��H��H�����H�������H�=�� H����
�k#��H��H���p��H��H���H�5�� H���1���H���o��H����H�5W� H���
1����H���B��H����H�5"� H���91����H�����H��tHH����1��+���H�=�� H��H��uLH�=�V��#��H��H��� �/H�﹡�1��+���H�=�� H��H�����W"��H��H��H��� ��f�H�=Q� H���	�+"��H��H���0��H��H��t7H�5 � H����
1���H���3��H����f.�H�=�� H������!��H��H��� "��H�=�� H�����!��H��H���"��H�=q� H��t\�!��H��H�����H��H��t*H�=D� H���k�f!��H��H���k��H���	L���Y��H��H��[]A\A]�H�=cT��7"��H��H��� �H�=�]��"��H��H��� �H����H�=�]���!��H��H��� ����H�=�]���!��H��H�� ����H�=S]��!��H��H�� ���L�-�� I����	�H�={]�N��L��H��H��L�����H���֝��H�������ƒ��������L�-�� I����
�H�=+]���H��L��H��L�����H��膝�����6fDH��谇����b�����L�-�� I���o	�H�=�\���H��L��H��L�����H���&�������L�-� I�����H�=�\�^��H��H��L��L�.���H�����H���������f�H�=\��O ��H��H��� ����H�=.\H�D$�* ��L�D$H��H��� �^���fDH�=�S����H��H��� �u���L�-�� I���?
�H�=�[���H��L��H��L�^���H���&����������H���V�����.������L�-?� I�����H�=q[�D��H��H��L��L����H���̛��H�������W����1ҾH�=n����H��H�����H�-�� �0���fDL�-!� I�����H�=�Z����H��L��H��L�����H���N���������L�-�� I����
�H�=�Z���H��L��H��L�Ԋ��H�������������L�-�� I����H�=oZ�B��H��L��H��L����H���ʚ�����J���L�-C� I����
�H�=-Z���H��L��H��L�����H��舚��������H�=�� �mH�=�� �5H�5�� H���H�=�� 1�H�����H����
H�=�� ��H�=�� ��H�5Q� H���jH�=q� 1�H�����H���
H��� �����a���L�-1� I���'�H�=CY���H��L��H��L�&���H��螙��������H���΃������f�H�5� H����1����H�����H����H�5�� H����1����H������H����H����1��+����H�=~� H��H�����u��H��H��H���7�����f�L�-)� I���O�H�=KX���H��L��H��L�����H��覘�����&���H���ւ��������L�-�� I�����H�=�W����H��L��H��L����H���T��������L�-� I�����H�=�W���H��L��H��L���H�������������H���>����4���f�L�-�� I���o�H�=[W�.��H��L��H��L�>���H��趗�����6���H������ƒ�
��
����L�-Q� I���?�H�=�V����H��L��H��L�ރ��H���V���������H��膁���ƒ�������L�-�� I���?�H�=�V�n��H��L��H��L����H��������v���L�-�� I�����H�=YV�,��H��L��H��L�L���H��贖�����4���H��������H�=�P����H��H�� �����H�=M�����H��H�� �`���H�=gP�����H��H�� ��H�=�L����H��H�� ���L�-�� I���O�H�={U�N��H��L��H��L�Υ��H���֕�����V���H�������4�H�����H�=�� H��H����� ��H��H��H���������DL�-)� I���g�H�=�T����H��L��H��L�V���H���N���������H���~����f��H�=�L���H��H�
� ��H�='O����H��H��� ��H�=�L�o��H��H��� �Y�H�=�J�O��H��H�E� �)����H�=�J�/��H��H�U� ���H�=9K����H��H�e� ���H�=`���I��H���O��L�-�� �N�����H�=Oe�Z��I��H�����L�-� ������)H�=?f�*��I��H������L�-�� ������H�=o_���I��H�����L�-�� �d����H�=�K�/��H��H�� � ����H�=�K���H��H�-� ���H�﹡�1��+���H�=�� H��H���J���H�=[M�����H��H��� �*���@���H�=c�:��I��H�����L�-�� �D���H�=�I��o��H��H�� �+�����'H�=?`����I��H�����L�-H� �,���1ҾH�=J_���I��H�����L�-�� ���fD1ҾH�=ra���I��H���R��L�-� �g���fD��H�=a�Z��I��H�����L�-�� �����6H�=^�*��I��H������L�-@� �����LH�=o`���I��H�����L�-x� �����'H�=�_����I��H�����L�-8� �����H�=�]���I��H���_��L�-�� ����H�=VG����H��H��� ����H�=6G���H��H��� ���#H�=�^�*��I��H������L�-�� �l�����cH�=�\���I��H�����L�-� �6������H�=�_����I��H�����L�-`� �L�����	H�=�]���I��H���_��L�-�� ������SH�=^�j��I��H���/��L�-�� �F���H�=�F����H��H��� �$�H�=J����H��H�]� ���1ҾH�="]���I��H������L�-K� ���1ҾH�=�\����I��H�����L�-� ���L�-�� �H�=O��
��L�����H��H��L��H���\�������������H�=gN����H��H��� ���1ҾH�=\�L��I��H�����L�-�� ��1ҾH�=\�"��I��H����
��L�-`� �i�L�-<� �H�=PN�#
��L�����H��H��L��H��諎�����+���H�=�M���H��H��� �v�1ҾH�=8[���I��H���`
��L�-�� �<�1Ҿ
H�=[�q��I��H���6
��L�-�� ��f.���ATI��USH���<��H��H���Q
������H�5%� H��H����H�
��H��L����x����tH���Z
��H��H��[]A\�fDH�5�� H����H�
���H��L���x����u�H�5�� H����H�
y��H��L���nx����u�H�5{� H����H�
R��H��L���Gx���p���f����H�=X�Z��H��H�D$���H�t$H�5A� �$���@���H�=�V�"��H��H�D$����H�t$H�5� �-���@�L�H�=_V����H��H�D$���H�t$H�5�� ����@�H�H�=�U���H��H�D$�u��H�t$H�5�� ����@��ATI��USH���|��H��H������,��H�5E� H��H��t,H��L��H�
����w��H�����H��H��[]A\�fD�a�H�=�T���H��H�D$��
��H�t$H�5�� �ff.�@��ATI��USH������H��H����
�����H�5�� H��H��t|H�
���H��L���zv����tH���
��H��H��[]A\�f�H�5Y� H��t{H�
\��H��L���Av����u�H�5.� H����H�
���H��L���v�����k�H�=?S�*
��H��H�D$��	��H�t$H�5� �P���@�A�H�=�R����H��H�D$�	��H�t$H�5�� �Q���@�C�H�=R���H��H�D$�}	��H�t$H�5i� �@���ff.����ATI��USH���|
��H��H���	���,��H�5%� H��H��t,H��L��H�
���u��H���	��H��H��[]A\�fD���H�=�P���H��H�D$����H�t$H�5�� �ff.�@��ATI��USH������H��H�������
��H�5}� H��H��t|H�
5���H��L���zt����tH�����H��H��[]A\�f�H�59� H��t{H�
̚��H��L���At����u�H�5� H����H�
E���H��L���t�������H�=�N�*��H��H�D$����H�t$H�5ɿ �P���@���H�=N��
��H��H�D$���H�t$H�5�� �Q���@���H�=/M�
��H��H�D$�}��H�t$H�5I� �@���ff.����ATI��USH���|��H��H������,��H�5� H��H��t<H�
e�H��L���s����uL���^��H��H�����H��H��[]A\���{�H�=�K�

��H��H�D$����H�t$H�5�� �f.�DATUSH���t���H�(��DMu1���%t[]A\�fDD�cA��EtEA��Ot?1�E��t�A��H�=�Y���H�¸H��u�E��B�Def������D�c�f�UH��AVI��AUI��ATSH��H�5IFH��dH�%(H�E�1����I��1�M��thM9�MG�J��H��@wvL��1�f��H��H����0Hc�H�<AH��L)�L9�r�1�I9�tH�@H���H�D?H�L��H�U�dH3%(��H�e�[A\A]A^]�I�D$H��H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�H�L$L��L��H���H���{��1Ҿ
B� H���w���a���f��;���U����Q���AUA��ATA��UH��S��H��A��umHc�1���<H�L	�\��H��tH��D��[]A\A]�f�Ic�H���>H�L	E1��#��H��A��H��[D��]A\A]�fD�#	��9���E1�D9�A��H��A!�[]D��A\A]�AWH��AVAUATUSH��HH�t$H�$L�D$dH�%(H�L$81�H����1�H��E1�I��I��f.�B�D=< tZ~L<%��F�D=H�
qWL�cWL�
�:D�ÍC�M�w<U�#H�5�W��Hc�H�>���P����|�7��H��f�I��C�,�DB u�I��L;<$�r���L����B�\=��t7D��L��D��D�D$����L��VD�D$H�
�VH��L�
�9�!B�D=C8,�I���K�,E1��L�|$H��>L�l$ I��M��L�d$(I��I��H���DH�!� N�$�L�����I��L��H��L���t������I��I��u�H��� H���kH������H�|$�H�����1�H�L$8dH3%(H���5H��H[]A\A]A^A_�H�t$0K�<,����H���bH�|$01��cI�� �������H�=�� H�\$0H���R�N��H�|$H��H�����H�=O� H���M�)��H�|$H���,��H����f�I���;���C�<,%�I��I���#���H�t$L�D$K�<,�H�\UL)��-���H�=�� H��H���Zf.����H�|$H�����H������I��|���1�N�|5L�d$�H�l$ I��L��L��H��Ic�����H�
�TL��T��L�
�7�=I��I���tH�0� J�,�H�����H���K�,E1��L�|$H��<L�l$ I��I��L�d$(H��M��I���(@I��I����H�� N�,�L�����I��L��H��L���&����u�L�l$ D��L�������L�|$L�d$(L��I͉������R��)�H�� ��Hc�H�\H���r�H�=z7�e��H��� �UI��J�|=����K�<,H�t$0��������H����H�=�� I�H�\$0H��������H�|$H��H���������H�t$L�D$K�<,�H� SL)�����H�=� H��H�������H�=�R����H��H��� ����H�t$0K�<,�����H���YH�|$0�5�I��������
H�=�� H�\$0H���xf��+��H�|$H��I��H������F���H�t$L�D$K�<,�H��5L)��P���H�=I� H��H���-���H�=&R�����H��H�"� �
���O�4,�A��PՁ�u1�<-��I���\�O�4,I��J�|=�T���H�t$0����
�L������H����IŃ����H�\$0H�=�� H���H���H�=�8��?��H��H�]� �(���H�=�� �q���H��I������K�<,�	���H�5�� H��H���WH�=o� H�ٺ1�����H��H���3H�ƿ����H�5�� H�D$H����H�߹�1�����H�|$H����H�D$ ����H��H�H�=U� I�H����T��H�|$H�T$H������H�=#� H�����-��H�T$ H�|$I��H�����L�������>���H�t$0K�<,��W���H���H�|$01��;I��������H�=+� H�\$0H�������H�=�2����H��H�� �m���B�\=������D��H��D��D�D$���H�
�OD�D$L��OH��L�
�2����M���2���K�,E1�L�d$ H�
uOH�D$H��L��I��I��H�t$H��L���������H��H���n
H�� L�$�L������H����K�<,�?-�,
H��������H�t$0�(���H����I�H�5�� H�������1�����H�|$0H���	��H�=�� H��H���F���H�=|1��u���H��H�k� �&���H�t$L�D$K�<,�H��NL)����H�=5� H��H���q���H�=jN�� ���H��H�� �Q���H�t$0K�<,��N�H���+H�|$0��I��~�������H�=� H�\$0H�������H�=�1����H��H��� �a���H�t$L�D$K�<,�H�:L)�����H�=�� H��H�������H�=�M��[���H��H��� ���H�t$L�D$K�<,�H��ML)��z���H�=� H��H���W���H�=PM�����H��H��� �7���K�<,�?-�Z
H��������H�t$0�&�H����H�\$0I�H�=~� H���u���H�=�/����H��H�Z� �U���H�t$0K�<,����H����H�|$0��I������H�=� H�\$0H������H�=R0��4���H��H��� ���H�t$0K�<,��b�H����H�|$01��I�����lH�=>� H�\$0H�������H�=�/�����H��H�� �x���H�t$L�D$K�<,�H��KL)����H�=� H��H������H�=�K��r���H��H��� ���H�t$L�D$K�<,�H��KL)���H�=�� H��H���n���H�=gK�����H��H��� �N���H�t$L�D$K�<,�H�M.L)��<�H�=E� H��H������H�=K�����H��H�� ���K�<,�? �rH�t$0����H����H�|$0��I������
H�=�� H�\$0H��� ���H�=d.��O���H��H�}� ����H�t$0K�<,��}�H����
H�|$01��cI�����]
H�=� H�\$0H����
����H�|$H��H�����H�=� H���}
���H�|$H�����H�����H��� H����H�|$0H�ƹ�1�����H��H�f� Hۃ�H��'H����H���S���H�|$H��H�������.�H�t$0K�<,���H���WH�|$0�n�I�����eH�=�� H�\$0H�������H�=�,����H��H�s� ���I��J�|=��K�<,H�t$0������H���nH�=�� I�H�\$0H�������H�=�,����H��H��� �l���K�<,�? ��H�t$0���H����H�|$01��I��������
H�=� H�\$0H������H�= +��
���H��H�˾ ���H�t$L�D$K�<,�H��+L)��,�H�=�� H��H���	�H�=H����H��H�f� ���H�t$L�D$K�<,�H��*L)����H�=�� H��H�����H�=�G��c���H��H��� ��K�<,�? �GH�t$0���H���kH�|$0��I�������H�=�� H�\$0H�����H�=�)����H��H��� ��O�4,�A��PՁ�u1�<-��I���\�O�4,I��D�D$J�|=�]�����D�D$�	�L��H�t$0A��LHE���I��H���:M�����<H��������?K�\6I9��H�5�� H����H�ٺ�1��M�H�|$0H�����H�=q� H��H�����H�=)����H��H�J� ���H�t$0K�<,���H���Q
H�|$01��<I��M����
H�=v� H�\$0H���P�H�=�)�����H��H�M� �0�H�t$0K�<,�D�D$��D�D$H����H�|$01��5I�D�D$���D�D$����A��UH�=@)H�\$0H�:)HE���H����C�<,%��	L94$vC8\,��I��I����H�=l� H�����H�=�D����H��H�H� ��H�=�� H�����H�=�D����H��H��� ��H�=� H���t�H�=�D��R���H��H�� �T�H����������H����H��� H���)��H�=OD�
���H�s� ��fDH��������L���6�H���l�H�� H������H�=D��H�� ��H�����������H�����H��� H������H�=�C�w�H��� �y�D��L�l$ L���%I�$L�|$L�d$(L��I͉���ȉ�)�������)�H��� )�Hc�H�\H�������H�='��H��� ��H�p� H������H�=C���H�O� ���I��H�t$0�K�<,��H���[���H�=�� �"H�=u� ��I��H�t$0H��������K�<,���H���tI�H�)� H���	H�|$0H��1�1��w�H��H�D$0�u���I��H�t$0�K�<,�s�H�������H�=b� �+H�=U� ��I��H�t$0�K�<,�9�H�������H�=�� �;H�=�� ���fDI��H�t$0H��������K�<,���H����I�H��� H���H�|$0H��1�1���H�D$0��H�=�%��\�H��H�*� ��H�=h$��<�H��H�� ���L���e�H������H��� H���H�|$0H��1�1��,�H�D$0���L��H�t$0H���������+�I��H���j���H�=G� ��	H�=:� ���D�H�=�$��H��H�� �_���H�=�@���H��H�ݷ �h�H�=�@��_�H��H�� ��H�I� H���`H�|$0H�ƹ�1���W�H��H�� Hۃ�H��'H��������H�=C@��H�� ����H�=�#���H��H�ٵ ��H������C��H�=_,��H��H��� ����H�=',��H��H�t� ��H��� H����H�|$0H��1�1���H��H�D$0���H�=�?��@�H��H�.� �c���H�=J#�� �H��H�� ����H�=�&���H��H�� ��H�=0?����H��H�޳ ��H�=�"���H��H�.� �q����H�=�@�;�H��H�� ���e��H�=�>�v�H��� �x�L��I��I�L�d$ H��D�����H�q� H�H���H��H���1����H�=~>�$�H�E� ����H�l$ I�L�d$F�D5D�����H�=�"���H�]� �����H�=V!���H�Ȳ ����H�=�=��H��� �;�H�=!��H�~� ���H�=�"�x�H��� ����H�=n"�[�H�d� �����H�=Q"�>�H��� ����H�K� H���0��H�=V=��H�*� ��H�>� H�����H�=)=���H�� ���H�� H������H�=�<��H�� ��H��� H������H�=�<��H��� ��H��� H���|��H�=�<�]�H�f� �_�H�ʱ H���O��H�=u<�0�H��� �2�H��� H���"��H�=H<��H��� ��H��� H������H�=<���H��� ���H�� H������H�=�;��H�� ��H�v� H������H�=�;�|�H�U� �~�H�Q� H���n��H�=�;�O�H�0� �Q�H�� H���A��H�=g;�"�H�ӯ �$�H�g� H�����H�=:;��H�F� ��H�B� H������H�=
;���H�!� ���H�M� H������H�=�:��H�,� ��H�(� H������H�=�:�n�H�� �p�H�+� H���`��H�=�:�A�H�
� �C�H�ް H���3��H�=Y:��H��� ��H�ɮ H�����H�=,:���H��� ���H�t� H������H�=�9��H�S� ��H�?� H������H�=�9��H�� ��H�ڮ H�����H�=�9�`�H��� �b�H��� H���R��H�=x9�3�H��� �5�H�Ȯ H���%��H�=K9��H��� ��H�� H������H�=9���H�� ���H�ޭ H������H�=�8��H��� ��L����H�a� H������H�=�8�w�H�@� �y�H�� H���i��H�=�8�J�H�� �L�H�_� H���<��H�=b8��H�>� ��H��� H�����H�=58���H��� ���H�� H������H�=8���H��� ���H��� H������H�=�7��H�׮ ���u�H�V� H������H�=�7�d�H�5� �f�H�ɮ H���V��H�=|7�7�H��� �9�H��� H���)��H�=O7�
�H��� ���H�=27���H�f� � ����H�=7���H�� ��H�u� H������H�=�6��H�T� ���H�=�6��H�?� ��H�=�6�i�H�B� ��ff.�f���ATI��UH��SL�����H9���H�="� H������H��H�����H���H�=� H���2���H��H�����H��H���H�=�� H�����H��H����I��H��tV���H��1��*���L���+H��1���H�=U� I��H���I�T�L��H��H����H�='� H���f�1�H��H���6�I��H��tVH����1��*�D�L���+H��1��-�H�=Ƭ H��H�������H��H��H����H�=�� H���g��H��H����H�=p� H������H��H����H��H��H����H�=8� H�����b�H��H���g�H��tVH�ǹ�1��%�x�H���+H��1��a�H�=ګ H��H����	�H��H��H�����H�=�� H���{���H��H���;�H��[H��]A\�H�=.4����H��H��� ����H�=�3���H��H��� ���H�=�3���H��H�}� �_���H��I�<H)����H�=j� H��H����I�H��H��H��������fDH�=���/�H��H��� �6���H�=9���H��H�� ���H�=����H��H��� ����H�=g����H��H��� �z���H�=����H��H��� ����H�=����H��H�=� �	���H�=�2��o�H��H�
� �e���H�=�2��O�H��H�
� �y���H�=`��/�H��H�%� ����UH�,7SH��H���
�H��H9�t �;����t��;H���?��C�H9�u�H��[]�AWH��AVAUATUSH��H�|$H�t$dH�<%(H�|$x1�H���\H��H���PI��H���DH�|$�8�%H�����H����H�|$H�D$H�H��H�D$ �����H�Q�H�T$H9���H�|$XL�t$I��L�l$0H�|$8�*@A�M��I��I��A�E����L;t$��<%u��D$(A�QM��E1�H�����H�1M�l$��z��H��3��Hc�H�>��fDH�t$ H�L$0H�{L)�L�����H��H��t?A���BA����Lc�I9���K�,H;l$ �ZD�����"1�H�\$xdH3%(��H�Ĉ[]A\A]A^A_Å�OA��puI�T$(H�t$8�
L��L�L$@��H=���w�H9D$L�L$@r�Hc�H�D$X�L�h�M�����M��L��L)�H����
M�M���f�I�M�L$���H���x��H��H;D$�����,���L�t$�L9t$ ����L��A�H+D$����I��f�L9t$ ��������H��L���������H�5�1L��L�L$@A��@�8��L�L$@H��I�D�8zH�D$H�+���L�h�H�|$0L�L$@H�GH�?���L�L$@Lc�L��H��?H��L1�H)�H������D��A����ك�H����H���H����H�������H��o^M<+	H��H��H��H��H��H��Hi�H9��9�Q�E�9�L�H�D$ L9�����QL)�Hc�H��H9������|$( u8D9�~3H�t$ D)�1�L��L�H��0L)������������H�D��I�I�n�+M��yI�ܸ-L��A�H�t$ H��I��o^M<+	H��H��H)�I��1�H��I��I��H�A0�v�����6���Mi�H�H��L�t@��M)�u	@����H���������L��H��H��I��H����H�t$ A�:M�n��1�H�0L��L)����������H�L��M�tL��H��L)�H��H)���@���YH���OH�t$ A�:I�^1�H��H��H)�������m���L�l$HH�L�4M�M���A��tE��A��A��E��H�\$0H�CH�;�PH���nH�A�|$AD���H��H��1L�P��Lc����
H�D$ L9����L)�H��H9�����H��L��L��H�L$(�����H�L$(��M�$t7��uH��L�����M���8���f.�A�>�W��A�I��M9�t�A�>������t��܅���A��p���A��A�T$����A��tE��A��A��E��H�\$0H�CH�;���I��H��t%L��L�L$@�P��L�L$@H��H����M�L$�<������t���A��p�j���A��A�T$�P���A��H�D$ u	����L9������L)�H�������A�%M�L$I������H�t$ H�L$0H�W+L)��<����������A��p��A��A�T$����������A��p����A�T$�D$( ���H�t$ H�L$0H��
L)����H�\$0H�CH�;�P��N�A���D$(�A��E�H�.<0t$H��,��uA�|$dH�
HD��H�t$ ��L)�1�L�������������H�I����H�\$0H�CH�;��g�W
�H�ǹ���%1����H�Ǩ��	�
��A�����N��D$(A���E�<0tH�(,���b���H�a
�V���H�\$0H�CH�;�P��A���H�\$0H�CH�;�P@A���H�D$ ��~
A���*
L9�����L)�H�������A�
M�L$I�����H�t$ H�L$0H�X)L)��R���H�|$0H�GH�?�PpE���A���…�HO̓��j�E��uH�D	H�\$0H�D$`H�CH�;�PpH�D$h�D$(<0�N�H�=+���:�D��H�t$`�H�����H�\$ H�|$8H�D$X�^��L)�L��H��H������H9��2�������A��H�D$ u	���^	L9������L)�H�������A�	M�L$I�����H�|$0H�GH�?�P0A���A��u��O��D$(<0��H�[*����H�t$ L)����H�t$ H�L$0H�(L)�L�����H��H���3���A����A�������Lc�I9������K�,H;l$ �����I)�L��H��K�<M������|$(� @��D�@��L��L��I�����M�L$���H�|$0H�GH�?�PHA���A����������A��tE��A��A��E��H�\$0H�CH�;�P������H�A�|$BD���H��H�p+L�P�6�������H��� H����H�|$0H�GH�?����H��H��1�����ƒ�����N�A��E�H�I���D$(<0�
H��(����H�t$ ��L)�1�L����������������H�t$ H�L$0H�8&L)��P���H�t$ H�L$0H�&L)��/���A�T$A�� �����L�L$H��H�߈T$@�����T$@L�L$HH����������DH�t$ H�L$0H��L)�����H�\$0H�CH�;��G��������5H���H��I���D$(H��?����N�A����E�<0��H��'���H�\$0H�CH�;�PP��N�A���D$(�A��E�H��<0�����H�o'�������A�|$HH�
�HD����H�\$0H�CH�;�PPA������P�DO…��D$(N�A��E�H�S<0�E���H��&���6���A�|$IH�
/HD�� �����L��	E…�N�H�D$ L9����L)�Hc�H�D$(H��H9����H�|$0A��H�GH�?�PhI����~.H�ǹ�5w1�A��	��*���A���I��E��t:��H��H�A��u�H��L�Ǻ�*1����I��H�5�� H������L��1����M�L$M�<L�L$@���H�H�t$(L����I��H��%1�M�����L�L$@��H�\$0H�CH�;�PX����A�T$A�����&�L�L$H��H�=�%�T$@�6���D����p�Q��P��H�|$0H�GH�?�PPL�
q'���I�ALM��@���H�\$0H�CH�;�PxE���A���…�HO̓���E��uH�D	H�\$0H�D$`H�CH�;�PxH�D$h�D$(<0������H�=���H�t$ H�L$0H�y"L)��y�H�\$0H�CH�;�P`���H�\$0H�CH�;��U�3�P@���H�\$0H�CH�;�P(����D$(I�����1�f�L9��c���H�D$ L�L$HL9��L�L)�H��I9��<��|$(I)˸ H�L$@M��L��@��D�@��L��M����H�L$@L�L$H�"���E��E�H�I���D$(<0�jH��#���[H�t$ L)�����H��b���D���L�
���I)�H��L��K�<M���>���\$(� ��D������H��L�����Q���H�t$ ��1�H��L��L)�������L�H�I�L�l$HM�M��A������N�A���uHc�H�DH�r� H�D$`H����H�|$0H�GH�?����H��H��1��_��H�D$h�D$(<0�����������N�A���uHc�H�TH�D$h�D$(H�T$`<0�W�������z�����H�a"���A���
�P8A������H�=����H��H��� �
����P H�����A�������D���������P �����H�\H�D$hH�=3H�\$`���H�t$`�H���a��H�|$8H�D$X�2��H�T$(L��M��H�����L�L$@���L9����L)�Hc�H��H9�����|$(� �U�Hc�@��D�@��L��M�t��b�����L9��\�L)�Hc�H��H9��I��|$(� �U�Hc�@��D�@��L��M�t�����p���L9���L)�Hc�H��H9����|$(� �U�Hc�@��D�@��L��M�t������*�A��
�X������H���������H��H��H��H��H��H��H)�H��H��H9�u!�Q�E�9�L�H�D$ L9�����Q���Q�E�9�L�H�D$ L9��_��Q�t��H�=�L�D$@���L�D$@H��H��� �����Q�E��)��H�=s�i��H��H�o� ����D������=��L�l$H1�M���E�ff.����G���H��H���quogetlocalsecondsdivhourminsec_fraction11zoneleftover%FT%T%z%F%Y-%m-%d%Y-%m-%dT%H:%M:%S%:z%a %b %e %H:%M:%S %Y%a, %-d %b %Y %T %z>=invalid start is ignoredM%02d.%%m.%%dT%02d.%%m.%%dS%02d.%%m.%%dH%02d.%%m.%%dto_iT%H:%M:%S.%0*dround**21%c%02d:%02d31ydaymdaymoncwdaycweekcwyearwnum0wnum1fraction of offset is ignoredexpected numericto_rlocaltimesubsecutc_offsetclock_gettimeinvalid offset is ignoredexpected an arrayfloorinvalid day fractioninvalid size%a, %d %b %Y %T GMTto_sinspectajd<=>-@08invalid fractioninvalid date040302commercialcivilordinal-4712-01-01T00:00:00+00:00-4712-01-01utc0607<=DateABBR_MONTHNAMESABBR_DAYNAMESITALYENGLANDJULIANGREGORIANvalid_jd?valid_ordinal?valid_civil?valid_date?valid_commercial?julian_leap?gregorian_leap?newtoday_strptime_parse_iso8601_rfc3339_xmlschema_rfc2822_rfc822_httpdate_jisx0301initialize_copyamjdday_fractionsunday?monday?tuesday?wednesday?thursday?friday?saturday?minutesecondsecond_fractionjulian?gregorian?new_startitalyenglandjuliangregoriannew_offset+next_dayprev_daynextsucc>><<next_monthprev_monthnext_yearprev_yearstepuptodownto===eql?hashstrftimeasctimemarshal_dumpmarshal_loadDateTimenowpublicto_timeto_dateto_datetimeSunMonTueWedThuFriSatSundayMondayTuesdayWednesdayThursdayFridaySaturdayJanFebMarAprMayJunJulAugSepOctNovDecJanuaryFebruaryMarchAprilJuneJulyAugustSeptemberOctoberNovemberDecemberstring should have ASCII compatible encodingformat should have ASCII compatible encodingcannot load complex into simple#<%s: %s ((%sj,%ds,%sn),%+ds,%.0fj)>Mon, 01 Jan -4712 00:00:00 GMTMon, 1 Jan -4712 00:00:00 +0000����@������p�������ȓ�������8���l�������̙��,���\�����������,�������p��(�����p�����`�������L��|�����������,����;Zx����0N<[y����1OY@0C�?�?@�v@aTR'��>@З@@�}<A���@fffff�^@*@l�@k�@���������AA���BA��@�����AA�BAJ�q�Ae��A�v@���������������match_bcsunjanbeginend[]=0123456789_comput standard time daylight time dst[]gmt,.-- gsub!edtcstcdtmstmdtpstpdtfqxwetbrstndtbrtclstnstcltakdtydtaksthadthdtystahstcathastidlwbstcetfwtmetmewtmezswtwatwestcesteetfstmestmeszsastsstbteateestmskmsdzp4zp5istzp6wastcctsgtwadtjstgsteadtidlenzstnztnzdtafghanistanalaskanarabarabianarabicaus centralaus easternazorescanada centralcape verdecaucasuscen. australiacentral americacentral europecentral europeancentral pacificchinadatelinee. africae. australiae. europee. south americaegyptekaterinburgfijiflegreenlandgreenwichgtbhawaiianindiairanjerusalemkoreamexicomid-atlanticmyanmarn. central asianepalnew zealandnewfoundlandnorth asia eastnorth asiapacific saromancerussiansa easternsa pacificsa westernsamoase asiamalay peninsulasouth africasri lankataipeitasmaniatokyotongaus mountainvladivostokw. australiaw. central africaw. europewest asiawest pacificyakutskfebaprmayjunjulaugsepoctnovdectuewedthufrisat�^���^���b��c���e��0f���c��xd��\���^��\���^��\���^��\���K�w�K�w\A\s*([mtsh])?(\d{2})\.(\d{2})\.(\d{2})(?:t(?:(\d{2}):(\d{2})(?::(\d{2})(?:[,.](\d*))?)?(z|[-+]\d{2}(?::?\d{2})?)?)?)?\s*\z\A\s*(sun|mon|tue|wed|thu|fri|sat)\s+(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\s+(\d{1,2})\s+(\d{2}):(\d{2}):(\d{2})\s+(\d{4})\s*\z\A\s*(sunday|monday|tuesday|wednesday|thursday|friday|saturday)\s*,\s+(\d{2})\s*-\s*(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\s*-\s*(\d{2})\s+(\d{2}):(\d{2}):(\d{2})\s+(gmt)\s*\z\A\s*(sun|mon|tue|wed|thu|fri|sat)\s*,\s+(\d{2})\s+(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\s+(-?\d{4})\s+(\d{2}):(\d{2}):(\d{2})\s+(gmt)\s*\z\A\s*(?:(sun|mon|tue|wed|thu|fri|sat)\s*,\s+)?(\d{1,2})\s+(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\s+(-?\d{2,})\s+(\d{2}):(\d{2})(?::(\d{2}))?\s*([-+]\d{4}|ut|gmt|e[sd]t|c[sd]t|m[sd]t|p[sd]t|[a-ik-z])\s*\z\A\s*(?:--(\d{2})(?:-(\d{2}))?|---(\d{2}))(z|[-+]\d{2}:\d{2})?\s*\z\A\s*(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(z|[-+]\d{2}:\d{2})?\s*\z\A\s*(-?\d{4,})(?:-(\d{2})(?:-(\d{2}))?)?(?:t(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?)?(z|[-+]\d{2}:\d{2})?\s*\z\A\s*(-?\d{4})-(\d{2})-(\d{2})(?:t|\s)(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(z|[-+]\d{2}:\d{2})\s*\z\A\s*(\d{2})(\d{2})(?:(\d{2})(?:[,.](\d+))?(z|[-+]\d{2}(\d{2})?)?)?\s*\z\A\s*(\d{2}):(\d{2})(?::(\d{2})(?:[,.](\d+))?(z|[-+]\d{2}(:?\d{2})?)?)?\s*\z\A\s*(?:([-+]?(?:\d{4}|\d{2})|--)(\d{2}|-)(\d{2})|([-+]?(?:\d{4}|\d{2}))(\d{3})|-(\d{3})|(\d{4}|\d{2})w(\d{2})(\d)|-w(\d{2})(\d)|-w-(\d))(?:t?(\d{2})(\d{2})(?:(\d{2})(?:[,.](\d+))?)?(z|[-+]\d{2}(?:\d{2})?)?)?\s*\z\A\s*(?:([-+]?\d{2,}|-)-(\d{2})?-(\d{2})|([-+]?\d{2,})?-(\d{3})|(\d{4}|\d{2})?-w(\d{2})-(\d)|-w-(\d))(?:t(\d{2}):(\d{2})(?::(\d{2})(?:[,.](\d+))?)?(z|[-+]\d{2}(?::?\d{2})?)?)?\s*\z\A\s*(\d{1,2})\s*\z\b(bc\b|bce\b|b\.c\.|b\.c\.e\.)([-+]?)(\d{2,14})(?:\s*t?\s*(\d{2,6})?(?:[,.](\d*))?)?(?:\s*(z\b|[-+]\d{1,4}\b|\[[-+]?\d[^\]]*\]))?(\d+)(st|nd|rd|th)\b\b(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\S*'(\d+)\b\b-(\d{3})\b\d-\d{3}\b\b(\d{2}|\d{4})-(\d{3})\b[,.](\d{2}|\d{4})-\d{3}\b--(\d{2})(\d{2})?\b--(\d{2})?-(\d{2})\b-w-(\d)\b\b(\d{2}|\d{4})?-?w(\d{2})(?:-?(\d))?\b('?-?\d+)\.\s*('?\d+)\.\s*('?-?\d+)('?-?\d+)/\s*('?\d+)(?:\D\s*('?-?\d+))?\b(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[^-/.]*-('?-?\d+)(?:-('?-?\d+))?('?-?\d+)-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[^-/.]*-('?-?\d+)\b([mtsh])(\d+)\.(\d+)\.(\d+)('?[-+]?\d+)-(\d+)-('?-?\d+)\b(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[^-\d\s']*\s*('?\d+)[^-\d\s']*(?:\s*,?\s*(c(?:e|\.e\.)|b(?:ce|\.c\.e\.)|a(?:d|\.d\.)|b(?:c|\.c\.))?\s*('?-?\d+))?('?\d+)[^-\d\s]*\s*(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[^-\d\s']*(?:\s*(c(?:e|\.e\.)|b(?:ce|\.c\.e\.)|a(?:d|\.d\.)|b(?:c|\.c\.))?\s*('?-?\d+(?:(?:st|nd|rd|th)\b)?))?\A(\d+)h?(?:\s*:?\s*(\d+)m?(?:\s*:?\s*(\d+)(?:[,.](\d+))?s?)?)?(?:\s*([ap])(?:m\b|\.m\.))?((?:\d+\s*:\s*\d+(?:\s*:\s*\d+(?:[,.]\d*)?)?|\d+\s*h(?:\s*\d+m?(?:\s*\d+s?)?)?)(?:\s*[ap](?:m\b|\.m\.))?|\d+\s*[ap](?:m\b|\.m\.))(?:\s*((?:gmt|utc?)?[-+]\d+(?:[,.:]\d+(?::\d+)?)?|(?-i:[[:alpha:].\s]+)(?:standard|daylight)\stime\b|(?-i:[[:alpha:]]+)(?:\sdst)?\b))?\b(sun|mon|tue|wed|thu|fri|sat)[^-/\d\s]*[^-+',./:@[:alnum:]\[\]]+CDdeFGgHIjkLlMmNQRrSsTUuVvWwXxYyamcCxXyYdeHImMSuUVwWy_fail_cent%m/%d/%y_merid%H:%M%I:%M:%S %p%e-%b-%Y%a %b %e %H:%M:%S %Z %Y:::zpma.m.p.m.9���T���T���T���T���T���Q���T���T���T���T���T���T���T���T���T���T���T���T���T���T�������T���T���T���T���T���T�����!�������b�����������r���ܶ������T���T���u���6���u��������W�����s���R�����������.������� ���T���T���T���T���T���T�����!���B�����������T������!���T������ܶ������?�������T����T������Y�������������+����������� ���\A((?:gmt|utc?)?[-+]\d+(?:[,.:]\d+(?::\d+)?)?|(?-i:[[:alpha:].\s]+)(?:standard|daylight)\s+time\b|(?-i:[[:alpha:]]+)(?:\s+dst)?\b)%0*ld%*ld%*d%*s%.*lddeHkIlmMSuUVwWy:[��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��^��X��^����^��^��^��^��^��?��^��d��^��^������������������������^��^��^��^��^��^����F�����L��e����������}��^��^����������&��P������������/��L��/�����������^��^��^�����y��^����F�����������^��6��F��^�������}��������^��P��^��)��B����=����� ��3��6�����AMPMJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberSundayMondayTuesdayWednesdayThursdayFridaySaturday;�h����8���	����(	���<	h���P	����d	����x	�����	����	h����	�����	(���
����<
����X
��p
�����
X����
ص���
x���Ph����X�����������Xȼ���(��������
X���X
x���
����
����
����
���������(��<x��t�������X������H��p8���H���X���8��(��D8��X�������������������,��@(��T8��hX��|��������8�������h�����H��DX���������������8��<���th����������8�4��p����(��L���(���4X�x�������$���Hx���d���������������X���P������������L���������������|
���������x�����$���p���(����������@h��`�����������8�������X�����$x��@��`���������������X������� ��D�"��hH$����%���8(��8H+���h-�� �/��H �/��` (0��x �:��� ;��� �<��$!=��8!8=��L!X=��`!x=��t!8>���!A���!HA���!�A��("�C��T"�D��x"(F���"�G���"H���"�H��#J��l#8J���#�K���#xN�� $�N��L$(O��d$hO��|$�O���$hP���$HR��%hR��,%xT���%XV���%�W���%�^��p&_���&�t���'�t���'�y���(���L)�����)X����)؃���)H��� *X���4*�����*�����*��H+8����+�����+h���,����0,H���d,�����,����t-���-���.X��<.���h.����.8���.����.���/���D/X���/����/����/8��0���D0x��p0���0���0���0(��X1����1���1x���1���2h��42��h2H���2���2(��2x�3��83X��3x�4X����4H���5��85����5X���5���5X��6��D6����6���6���6���,7���\7X���7����7X���7���8 ��X8� ���8!���8�!���8�$��,9�'��l9�)���9.��:�5��4:�6��t:X7���:�7���:�7��;�7��;h8��L;�8���;X9���;h=���;�F��<^��@<�d���<�l���<ho���<�r��<=�v��|=xy���=�{���=���4>H���t>�����>x����>���?x���L?����?x����?(����?����@���@@�����@���@H�� A���HA8���AzRx�$x����FJw�?:*3$"D ����\����Jpģ��W�������� ����ZN�X
�J`��T����`���PL�P
LW����80����xM�D�G P
L�C�I`�� L���ZN�X
�J`�pD���$E�^�X���+H^�p���������\�����wB�B�B �E(�D0�C8�F��
8A0A(B BBBFD�J�V�A�T,ت���B�E�E �E(�A0�A8�I`phJpWhA`]
8A0A(B BBBA8� ����B�E�D �C(�FP�
(A ABBG@�ԫ���B�E�E �D(�C0�FP�
0A(A BBBA8����ZB�M�G �D(�GP�
(A ABBEH@����_B�I�E �B(�D0�C8�I��
8A0A(B BBBGH������B�G�E �B(�G0�D8�G��
8A0A(B BBBCH����VB�I�E �B(�D0�C8�I��
8A0A(B BBBH($0���oA�L�F@T
AAA8Pt����B�E�B �D(�D0�V
(A BBBBH����� B�B�B �B(�A0�A8�G@N
8D0A(B BBBD�̵��"DO
EI�ܵ��ص�� Ե��4е��H̵��\ȵ��4pĵ��gB�B�A �D(�K0I(D ABB0�����nA�A�D `
LCKdDA�8��� E�V�<���FA�_
HY(l���WA�D�D V
DAD\D�����B�F�B �B(�D0�D8�F��
8A0A(B BBBGF�N�\�A�@���B�B�B �A(�K0�FP�
0A(A BBBD�|����x���8t����F�A�A ��
ABH[
ABA(L����A�J�D@�
AAHxܽ��	L�ؽ���B�B�E �L(�A0�A8�I��
8A0A(B BBBE�H����D���0@����B�G�A �G�v
 AABA8����L����`����t����������������eh�X
�H�$���� ���U�l���U(	�����E�H�F@�
AAI8	\��(L	h���A�D�G@�
AAFHx	���B�B�B �B(�D0�A8�G`�
8A0A(B BBBF(�	����E�C�N0r
AAA�	$��	
 ���tO
EPH$
����B�N�D �F(�L0\
(A ABBH{(A ABB4p
���aB�D�D �W
ABDqAF4�
,���E�H�I0N
DAG`
LHLL�
���LB�K�A �D(�I0�
(A ABBDl
(A ABBF0���
H0s
EL���cH0U
A8h����B�K�D �O
DBJI
DBAH�`���B�I�E �E(�D0�C8�Gp�
8A0A(B BBBGh����DB�L�E �E(�D0�A8�G���F�a�A�[
8A0A(B BBBGl�G�Y�A� \����A�G j
AE\�����B�L�B �E(�D0�C8�F�r�G�X�A��
8A0A(B BBBG@�4��;B�A�D �G0l
 DABGy
 DABH@$
0���B�D�A �G0k
 DABHQ
 DABH@h
���;B�A�D �G0l
 DABGy
 DABH@�
���;B�A�D �G0l
 DABGy
 DABH0�
���F�N�A �F`�
 AABF0$���B�A�A �G0�
 AABE X���2O�IH�H�I|���]H j
N���dH `
HR
N0�\���G�A�G i
d�K�IP������3E�Y
JF��� HP\$���fF�O�A �A(�F�Y�F�a�A���M�F�F�S�d
(A ABBC\��lF�I�G �A(�F�Y�F�a�A�w�M�F�F�S�`
(A ABBI@���B�G�D �G`JhKpFxF�Y`x
 AABFT(���B�H�D �D(�Gp�xH�^xAp{
(A ABBImxH�XxBp`�D�uB�B�B �B(�D0�A8�G���K�F�F�\��
8A0A(B BBBK �`��c��S�H� ,��c�wn�H� ,���c�wn�H�\P��@B�I�A �D(�G@
(A ABBDn
(A ABBDj
(A ABBH ����E�[
H�
P �`�E�[
H�
O �<��E�[
H�
P$�hA�N�D RAAD`�HX\�bB�J�E �E(�I0�D8�D`�
8A0A(B BBBH4�����
F�H�A ��
ABFYAB �X���A�G z
AE T����A�G ~
AIL$�F�H�A �Q(N0X(A t
ABBD(N0b(A WABt����nHV
bN�����H|
Dw�`���(HX�x����HR
F����HR
F`����HR
F ����HR
F<H����HR
FX�����HR
Ft0����HG
Is������He
kN(����CA�C�GP}
AAF�4����0��� ,���CE�G@{
AH,X��(HX0Dp��cB�D�A �G0o
 AABG x����A�G0]
AJ<�H���F�A�A �G@�HHPjHA@o
 AABH@�����F�A�K �F���H�f�A�q
 AABIH ��9B�J�E �E(�D0�I8�D`E
8D0A(B BBBGll���F�B�B �B(�A0�A8�GpjxG�K�I�B�B�B�E�Sp}
8A0A(B BBBAp����F�B�B �B(�A0�A8�I��G�B�B�B�B�E�A�U�|
8A0A(B BBBJ(PD
��SA�A�G0�
AAC|x��*H^����-H^L�����
F�B�B �B(�D0�A8�N�Q
8A0A(B BBBF$���1E�G�D TGA0$ ���B�H�D �D@�
 AABFX���l�����������(�����E�K�F0@
AAH@�����B�B�B �D(�J0�D@
0A(A BBBB,��)H \(0D���E�K�F@D
AAD(\����A�A�G@�
AAB �L!��3E�G0@
AC �h"��3E�G0@
AC(��#��cA�A�G@N
AAG��$��jE�u
F`0%���E�D�D f
LHIzDALP�%��2B�A�A �]
FELS
ABBi
LIJIFF��&�� HP8��&��pF�H�A �b
ABDU
LIN\��'���F�I�B �B(�D0�A8�D�U�H�a�A�X
8A0A(B BBBC(TP*��lA�A�G0K
AAJ��*��9Hj��*��9Hj��*�� HP@��*���B�A�D �P
ABFB
AEHXDB8�+���F�B�A �A(�G`�
(A ABBHH,-�� HPT`4-��F�I�B �B(�A0�D8�DP�XL`PXAPZ
8A0A(B BBBI ��.���E�KP�
AEL��0��]F�B�E �A(�A0�d
(A BBBF�
(A BBBFt,�1���F�B�E �K(�D0��
(A BBBH�
(A BBBAL
(D EBBG`
(I DBBO0�@8��IE�D�J U
CADOAD$�\8���B�B�B �I(�D0�D8�D���K�T�B�b
8A0A(B BBBF��H�X�A���H�X�B��Q�E�B�B�B�B�B�T�Z�T�E�B�B�B�B�B�O�z�H�G�S�A�E�B�B�X�r�H�M�O�C�E�B�B�T���H�Y�A��L��	��L��6F�B�B �L(�A0�A8�I�\�F�F�F�F�F�]�L�K�F�F�Y�u�H�A�D�A�D�B�B�W�u
8A0A(B BBBK��lQ��F�B�B �L(�A0�A8�I�\�I�I�I�I�I�c���F�F�F�Y�u�H�A�A�A�G�E�E�Z�u
8A0A(B BBBE8
�J�E�E�C�E�E�E�R<� �W���F�D�H �G0J
 DABFi DAE0� $X���E�D�G0E
DAFiDD0� �X��|F�D�C �N@�
 AABA((!�Y��gE�K�F0I
AAAT! Z��
�h!Z��.F�L�B �A(�A0�F�Y�F�R�A���R�F�F�Y�Q�F�f�A�i
0A(A BBBK�
�H�X<�!�]��fF�K�A �Fp�xJ�^xApe
 AABKL,"�_���F�B�B �B(�K0�A8�F�}
8A0A(B BBBKl|"�b��PF�B�B �A(�D0�J@�
0D(A BBBL�
0I(A BBBM�0D(A BBB(�"xg��gE�K�F0I
AAA0#�g���F�A�A �G@W
 AABFL#Hi�� HP0d#Pi���F�A�K �F0�
 AABA(�#�i��UF�H�A �~AB��#j��#B�E�B �B(�A0�A8�D��
8D0A(B BBBA��H�W�F���H�W�G���H�V�F���H�W�B���H�W�B���H�V�A���H�V�A���J�O�F�D�D�N�l�$<���]B�B�B �B(�D0�A8�Gp7xG�E�B�B�B�B�B�XpX
8A0A(B BBBE(%,����E�K�F@_
AAI(D%�����E�K�F@_
AAI(p%����E�K�F@_
AAI(�%�����E�K�F@_
AAI(�%�����E�K�F@_
AAI(�%p����E�K�F@_
AAI( &���E�K�F`}
AAK(L&�����E�K�F`�
AADLx&|����B�B�B �G(�D0�GP�XG`UXAPX
0A(A BBBF(�&�����E�K�F@_
AAI(�&0����E�K�F@_
AAI( '�����E�K�F@_
AAI(L'����E�K�F@_
AAI(x'�����E�K�F@_
AAI(�'����E�K�F@_
AAI(�'t����E�K�F`}
AAK(�'H����E�K�F`�
AAD`((���F�B�B �B(�A0�K8�D���J�B�A�]�]
8A0A(B BBBF(�(Ȣ���E�K�F0b
AAA(�(���gE�K�F0I
AAA(�(`���]E�D�G \
GAL()�����E�K�F0b
AAA(<)��gE�K�F0I
AAA0h),����F�A�A �G`�
 AABE�)����(HX8�)�����F�I�A �A(�Dp�
(A ABBE �)���CE�K0J
AE *@���CE�K0J
AE08*l���/F�H�A �D@�
 AABGXl*h����F�D�B �B(�A0�A8�D`�hRpGxA�U`l
8A0A(B BBBHl�*���� F�L�A �A(�F�Y�F�R�A���J�F�F�Y�L�J�^�A�i
(A ABBE�8+l����F�B�B �L(�A0�A8�I�Y�F�F�F�]���H�A�D�A�D�B�B�W�r
8A0A(B BBBG��+����F�B�B �L(�A0�A8�I�[�F�F�F�]���H�A�D�A�D�B�B�W�r
8A0A(B BBBE H,,���E�7
TDl,����B�F�B �B(�D0�C8�F@�8C0A(B BBB8�,P��uB�E�D �D(�G0w
(A ABBE(�,����A�D�D J
GAE-��ML�c
A<8-L���F�B�B �A(�D0�*
(F BBBKLx-����F�B�A �G(�L0m
(F ABBDu
(F ABBH(�-��}E�A�O z
FAJ,�-P��F�A�G �X
FBB8$.��F�A�G �X
FBBr
FBF,`.���F�A�D ��
FBG(�.t�}E�A�O z
FAJ(�.��}E�A�O z
FAJ(�.�}E�A�O z
FAJ,/p�@F�A�A ��
FBHDD/��sB�B�I �E(�E0�A8�F@G8D0A(B BBB(�/��uE�L�D x
FAD8�/�jB�B�E �L(�A0�J(C BBB(�/@�uE�L�D x
FAD< 0��eF�E�A �D(�I�
(A ABBG<`0���F�E�A �D(�I��
(A ABBDH�0d��B�E�E �E(�D0�A8�GP�
8A0A(B BBBAH�0��`F�B�B �H(�A0�A8�LP
8A0A(B BBBF,81��A�C
D��E�E�D�	
A<h1�����F�B�B �G(�A0��
(F BBBD<�1,����F�B�B �G(�A0��
(F BBBD4�1����eF�B�A �G(�L0}(F ABB 2���42���	4H2���uF�B�A �G(�L0M(F ABB4�2���uF�B�A �G(�L0M(F ABB�2\���mH�{
M<�2����F�E�A �D(�I�l
(A ABBE,3���.	E�C
I�����X
G,D3�
��oE�C
H����G�e
D<t3�!���F�E�D �A(�L�
(A ABBK<�3p(���F�E�D �A(�L�A
(A ABBE8�30���F�E�D �A(�Ip-
(A ABBD<04d2��uF�E�A �D(�I��
(A ABBF<p4�5���F�E�D �A(�I�6
(A ABBK8�4d9���F�E�D �A(�Ip-
(A ABBD8�4�;��UF�E�D �A(�I`�
(A ABBC<(5�=��5F�E�A �D(�I�
(A ABBD<h5�A��%F�E�D �A(�I��
(A ABBE8�5�E��fF�E�A �A(�G@�
(D ABBD0�5[���F�D�A �D0K
 DABG06�\���F�D�A �D0C
 DABG0L6�\��TF�D�A �D0G
 DABC0�6$^���F�D�A �D0C
 DABG0�6�^��TF�D�A �D0G
 DABC0�6�_���F�D�A �D0R
 DABH(78`���B�A�A �b
ABG(H7�`��OA�C
B�E�F���
DXt7�a���B�E�D �D(�F0h
(D ABBJh
(A DBBGX(D AEBL�7b��S!B�E�B �B(�A0�A8�D��
8A0A(B BBBA0 8$���0F�D�D �[
DBA$T8 ���@A�E�G pAAL|88����B�E�B �B(�A0�A8�G��
8A0A(B BBBA�8����	GNU�0T�S �"x�pl���������T!��ގ�������������������������������������������� ��0*ą@8ÑPF�`T�pb"��pɅ�~���������^���Q���\��������U�����������!������������p����`s���Pe��C�@W��p�k�� ����������������������#����(���������,����0�����5�����9�p���>�p���C�p���G�p���K�`s��P�`s��T�`s��L�`s��9�Pe��Y�@W��^�b�f�j�n�s�w�{���� �� �� �� �� �� �� ��0*��0*��0*��0*��@8��@8��PF��XMď`Tȏpb͏�pя�pՏ�pڏ�~:��~����ޏ����������������ж��H?�p����0*�@8�0*W����"���.���:���A�����P���[�@8d���s�����k�`T��������H��������p��@W��0*̐��ِ ����Б����� ��PF���� �����$� (�`s��1�XM7�81<� F��~L�����S���B�����`�h[h�`Tx��P~�����������p��pb�����ۑ������ő0*͑���ؑ���������Pe���pb���p� �`T#��p*���3��~9�ж/�����?�����K���W��pd�v���PF�������~����d�����������������Ò���ǒ˒ϒӒגF�������������������l���������Ċ̊Պ\�`�d�h�l�p�t�x�|�������#�*�1�9�C�L�S����������)��C
̄�"�"���o``�
�#�(8�X	���o0���o�o���o(P�"DD D0D@DPD`DpD�D�D�D�D�D�D�D�DEE E0E@EPE`EpE�E�E�E�E�E�E�E�EFF F0F@FPF`FpF�F�F�F�F�F�F�F�FGG G0G@GPG`GpG�G�G�G�G�G�G�G�GHH H0H@HPH`HpH�H�H�H�H�H�H�H�HII I0I@IPI`IpI�I�I�I�I�I�I�I�IJJ J0J@JPJ`JpJ�J�J�J�J�J�J�J�JKK K0K@KPK`KpK�K�K�K�K�������#�*�1�9�C�L�S�\�`�d�h�l�p�t�x�|���������������l���������Ċ̊Պ0;�}p�0�������p�����p����U ���`��GA$3a1�CلGA$3p1067@T�oGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p1067��ɄGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY@TpGA+GLIBCXX_ASSERTIONSdate_core.so-2.2.10-35.el8.x86_64.debugK-��7zXZ�ִF!t/��8_
-]?�E�h=��ڊ�2N��\�� �Ҳ4����]���pD�%�����e�^L�ߜ ��h���tޓQ$�E�*�_��j��hj�` /(x���֌,-ϓ�y��~Li7�܆���?��h�+:���6��"�7_ơ��sNͩ�1��DB�PLǩ�x]��]|L��:g�_��pn���:�:0�LN$%
���l�n�Ev���Tl��72���Ծ&T���K���w4�r5 ���<	�Vx:��|�=S�8[�i`��{�9e�w{�N~}�G��`�tU�����m��4���E��x6 ��xǪ�O�H�xu[��Y��b	�D6Ny	z.mHi����]��1=�H�y���'��g�é��fT�p��t�W���z��0�&��!���
��A1	r��͵w�E<�`�c�E�~�����T�<��ȡ߲s*L�t{�����|:��z�WT�]��e�8u��@O`�+{�
z�Ҩ�]�2JH򫰧͝S��Ŧ��0s�|[t��:rl'<����b	��a@�O-%��Q�*�K.'r�a�"�@��ђ�6���ML�'o�F7�W��P��K������yG��/�Jq$?�����1&��.
��\�W��ʜY�ҩ�+�nMc�l��îH����t�)w!Ye�pVD��	�DrS�XF%�yP�!���:KOH'��{@ڴ�\�_S�����a���O��G���j�bBP�� �I�A^$ϫ���q�miw
��MFI�u��
�)�\�I֯�w��������2��2����}�0g��P+G�t@s��L�k[W��IE�
��sc����k���7�O�)��DryU�扥0��)�����"��4O2!3�`l���;�˓��^�?'GM ?A�O��F�s�@��ˁ�
t�Z)]���X�{>.3�q����G�[mI$��E!��^��[Q�
�mc�A�;fl.N(a��RfGD3#�8�+&�+r�0΂���z�P���k�
�2\�|X�<��N^\�T¸�tm����e�8�W�p���@"�r����k�|�,j{���q�hQW� mr��*RiU�}Z���+��L��b§���vǷ�Յ���5����D�U��QoȲ��v_;���kpm����6CV��sȾP��13Z�|	jB���m��B�+u9/��h�~�@h�<�l���Q���ܻ](�i��x�Y�pZ�0<q��2�����X���Ԛn�FVu��j��j��`�K�8�KF��@f�ꌪ�&lm�����[���T#Œ�^]��gX�]��)��X�	-3`��JSe�����V�爴������h�C?�lD89��\��T�[>o�;�sk��ƒ!�:�/�+�w����@������:>8qg1�H���`�$���ZоY�#)@��н��&|�o�=fu)M����?v�)�D#ıg_�=^�!sj�� �&�K�����h�&d�k��ؠ{���+
�l~��<��/�j��N�hQ����!��qe�9[�l���pc��7��%��'�]&kU�ֶ<g�f%�����{%�ԯ�Re�8,g��:��sB*f
�@4F�Co���kݘ���y�b3�ˆ�T��~W��d]+V�3k
����b6���:���?o�ҝ������OS�5���K�t��~"on�'��<�����(3�ֲ$�$�/����*���dUIG�aE�W�LgL}-<1���#0��ʬ:0Y�C�׿�p�q�_��:xb�7�d�1���8&��2'S�G��s�O�.]���8ݯu�\��U|=a���/V�TҌ��Z��v:>ޘք���Fԁ�ymU�yb����x�z2���e�4��f���xNh4R�:\���2)c0�K,j0}�:m�B
JPJB�q����3"���'���
�}U��0�,%��P���zeY��-��>	�·}]�zg��B�6f�uI;=Q'��:5Z��gt��w�J�^ʦY/I�G��:�Sv3K�1��ʐ�|�����F��`��ql�E.�f“��6��6S�H��~-��Q��ZQ���FH(Z��<O�ޯ�`)��\�#���E�[����Z=ZW�JG�]fT���X�J\��8-	�m�"�$^��
*��ͧƬ���!�C����Ӫ��m�P�y�ζ�>�� ��%�?Ml�r����ڬ4(���	5�h+x(�_�旸�n2��BD@�6���c��y�M\u��(�Z*8�a�3K�Eg�ůn�5/v+E�(�eq�)΄+Nc�#��N6�h�V@�qb&m���*
��ڀ�zԒ�7_��ы8�0����[����\4Gu���)s6�QV��ݹ�U-��I��UB�8�Sg4ːI�o"x��c*�1*����������\p�Uz�j�&�u����U+4���Da9_v��Kc�V�0��n��O�G3
����`������C���-:�i���T�
JG2G��fɦ�w�Q�_���]%�v��Bk:��‹h"����h;�2���I��۝�0�O��[�}m�\��U+G%��>��q��}���55�x�v_��v�Bp2p�R�%��/F����S7�,﫜w�w���9�&FL�I5���a�D��*�������d9$s��ņ-�d�Öy9h"KTl�zmV�kk�1�ч���j�h����eȴ+�`!�3k:M!��|��2X�n���<9��g��F�C�A�b�0 k��s9%�Y3f���Y�h�{�:��W��^T_i�Z��((17O����㔁�ؙ}@�Ɖ��]rLSDՄX��h�ɖ� �$�C��KM�/�J:��dP�� r-(��J�'H�[���c�#�oS���3��Mf�����^6B��;��K�
�ŒW�+-������*#"ӲvUQx�l�0j��5AS�Ӣ��U��r�-7���*P�aE=Q�R=,���Zf42@U�LFK+������}۴M�L�q�g�f��9@�8���4jB?���*6"��y�gn�J#+������{sPv�(��kM�t|"sLN
�'v���r�����S���
,j��hz���&ߦ�2����vJQ��;��9�;����&��
�G�$�Y��?�~�y�s��S�L��앋��>�Z>}�?�f�߬�������"�Jq���3)�lX5��v`U�꓏����B5�90}>�"�*��Y�CE6%��IRz��/2X����p�=l]��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``d(���
0``�8���o"E���o00�T��X^B(8(8�h�C�Cc�C�C�n�K�K�w�S�SI1}̄̄
����" �������X�X��8�8�8� ��"���"�� �" �0
 �P�"P� �p�"p���#��#x �x#x��cx�,"�p
01lib64/ruby/2.2.0/x86_64-linux/digest/bubblebabble.so000075500000027350150402105730015413 0ustar00ELF>0
@�'@8	@�� �� � �� �� �   888$$���  S�td���  P�tdhhhDDQ�tdR�td�� � ``GNU��E�C�3-
��u�spd���@ BE��\1A���|�qX� ��U� ���pe, F"ix  ��|�  px  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_string_valuerb_str_newrb_eRuntimeErrorrb_raiserb_funcallrb_funcallvInit_bubblebabblerb_requirerb_path2classrb_define_module_functionrb_define_singleton_methodrb_define_methodrb_intern2libruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64_ui	�� �
� �
� � � � � � �      (  0  8  @  H  	P  
X  `  
h  p  ��H��H�Y H��t��H����5b �%c ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1�������%� D���%� D���%� D���%� D���%} D���%u D���%m D���%e D���%] D���%U D���%M D���%E DH�=A H�: H9�tH�� H��t	�����H�= H�5
 H)�H��H��H��?H�H�tH�e H��t��fD�����=� u+UH�=B H��tH�=� �I����d����� ]������w����AWAVAUATUSH��(H�|$H�|$���H�D$L� A�� ��I��H�hA��L��H��H�t@1����H�H�D$H�\$�� ��H�D$H�@H�D$H�D$�xM����H�D$M��E1�A�I��H��I���������H�pL��I)��@I��L��I�<6H��B�D
��F�-�����A��V�H�ƒ�A��V�I�A��D��A)�H���8��8��Mc�I�I��H��H��H��L��H��H)�M9���F�l
D��@��@��H�H��I��H��H�RH�H)��;L����F�D�����A��F�H��I��H��H�H��I��H��H�RH�H)��;�F�M9��
���I��A�ExH�D$H��([]A\A]A^A_�f�L�`H�hH��������*L��H��H9��C���H�� H�5�H�81��f���fDH��H�D$�G���f�H��L�GH�wI��L�oH��H�RH�H)���H�\$�;I�B�x�3�N���A��A��a�e���ff.���H��H�5� 1�1����H��H���<���ff.����H���$���@��H����H��H�5� H�׉�����H��H�����fD��ATH�=�US�l���H�=����H�=�I�����H�=�H������H�v���L��H��H�5���������H�h���H��H�5��i���1�H����H��H�5��A���H�� H��t[]H�� A\�f��H�=K�_���[]H�� A\H�� ���H��H���digest string too longdigestDigestDigest::InstanceDigest::Classbubblebabblebcdfghklmnprstvzxaeiouy;D8���`���������(����X���h�������0zRx�$����FJw�?:*3$"Dx����H\���B�B�B �B(�A0�A8�D`�
8A0A(B BBBJ�4���$HT�L����H���*HZ4�`����F�H�A ��
AIJRAIGNU��
�
� ,<GU_�x
�� � ���o`��
�   X��	���ox���o�oJ���o� �����		 	0	@	P	`	GA$3a1x�GA$3p1067�
�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�
�
GA+GLIBCXX_ASSERTIONSbubblebabble.so-2.2.10-35.el8.x86_64.debug�N��7zXZ�ִF!t/���G]?�E�h=��ڊ�2N�����$�=fK>��� z��qb�A&��A	L��{�I	���QB��J�=���l��������,����C&�QM!6�ş�6�A���fРo�"�ήT�f���:��������k����>�q�?��p|jR���R��9�}wk{�x���ϯ�|�h���s\�tya�m��7���GK�ӯ�����}�xJt9�X��:,b�������W�;X[������-Nd����s����צp(2o�턊__��f�(�*�SƝt:ݲ|�|l(KWʥ<�����_AQ��$�j�r
܆s�56�(ޕK	�����
[s��+�ނ���A�,����k~T���oQ�l�6,Xb�7A��IA'�o�{����n�VQ{7XԄf�](Gf�4�/�َAG���?��."��.��)�E^dۂ=���̊%���MUլ���"L+��2�
�;�A�� 4
�e��KA���?�BAG�҅�Oi��B:Ax�q�{�� 
�[$��I�	�b6���	����){Z�Hd��[Vc��9�&�8r�8,xYۇ�Iw���-�F����R���,Ce�9ˤ�xb<�p2V���3DtW֬b"�
��Jڷ�a�Ԣj���]FP�	�t�lV��!N��6n5�
�1_�C�c�C�ǭ�T=Ԃ -<�d#܇6̕MC?&YF��*�5z(0�9����(M���sT�+�a��ʚ��W^?�s�F/x&�6��M�Jsx��K.�RK�T}ۨ��e�Z�u/‘��󉧗�u�[�C
^�\�ēo%�7Cexڠtk����۱�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���oJJ*E���oxx T���^BXX hxxc���np	p	�w0
0
�}��
���w�hhD���$��� �� ��� ��� ��� � �� �(�   x�x  x �� `x H
�"0�"�x&+lib64/ruby/2.2.0/x86_64-linux/digest/sha2.so000075500000030170150402105730013657 0ustar00ELF>@@8)@8	@�� �� � �� �� � @@888$$���  S�td���  P�td�
�
�
<<Q�tdR�td�� � PPGNU�v�GiW�8l�xRcfSe@��@ ��hBE��`fJL�+Nû�|�qXFV��tL�F"?�xj
��_�� �2 , �`  �@
$ 
�p  �`  U�`
__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_sha2rb_requirerb_path2classrb_define_class_underrb_data_object_allocrb_ivar_setrb_intern2SHA512_InitSHA512_UpdateSHA512_FinishSHA384_InitSHA384_UpdateSHA384_FinishSHA256_InitSHA256_UpdateSHA256_FinishSHA256_FinalSHA512_Finallibruby.so.2.2libcrypto.so.10libssl.so.10libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64� ui	�[ t�
[� �� �� �    @ 
H P � � � � � � �      (  0  8  	@  H  
P  X  ��H��H�� H��t��H����5� �%� ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a�������%] D���%U D���%M D���%E D���%= D���%5 D���%- D���%% D���% DH�= H� H9�tH�� H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�U H��t��fD�����=� u+UH�= H��tH�=� �����d����} ]������w������AUH�=tATUSH�����H�G H����H�=`���H�=[H�����H��H�5VH��I���v���1�1�H�5� 1�I�����H��L��H�����L��H��H�5"�A���1�1�H�5� 1�I���L���H��L��H���n���L��H��H�5�����1�H�5 1�1�H������H��H��H��[H��]A\A]�/�����H�=�����H��H�U �������H��H��H�����ff.���H��H��H���n���ff.���H��H��H���N�����H��H���digestmetadataDigestDigest::BaseSHA256SHA384SHA512;8T���T�|D����d��������������zRx�$�����FJw�?:*3$"Dp����<\����F�I�A �A(�D0�
(G DBBL���������������GNU���� @��0�� @pL[kx������	
t
� � ���o`�
  �	��	���oP���o�o���o�  
0
@
P
`
p
�
�
�
GA$3a1�	�
GA$3p1067
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p1067 
r
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY 
2
GA+GLIBCXX_ASSERTIONSsha2.so-2.2.10-35.el8.x86_64.debug�*h�7zXZ�ִF!t/���']?�E�h=��ڊ�2N�������!k�&� X��9n��G8hnv�O����~�l�,`�5??��a�gE>�O	�YbR���9���xs��9X~������g`�8�K.c�G����#X�J���2��6cg�[h�M��(7�,{�����=�^<���RH
�6Eۼ��5c󠣺�-�|���\�լVk�pu7�_s��)B1���S�i`4�Sգ�<��l��,�@��~$�<co���pH�–���?�L�b����4`澾�T�k��u��^�M��!q�-:���t�cZo9��2�߹:���n�F�r�)���Ϙ09Լ:֭���m�
x5gX�c�c��߶IiQ�X�垭=�K,�_t�k�%���Al�mi�����'����J^n�|AWŭ�BĂD��0�w���u{�.�G42-��t����a�����ҫ��cΉ�"����X.��u��5�i9�ta�O�p)ݤ�{׫`@�.�|��"x09@���m3�ʋݰA��|L-�?�-��88KB-c���Nf����9�=��Y"��'�
ںc[�>�p��0Ow�_i�ŷG�&�b>54O���.&�+�,3=J�V��_�.a	��KFT�+��sMĵ��~�8�i�S��+Z���k�_l$1g	�����J���:���ԑ���{KhB	��Kο�<){D6�P6���d�'��-����ۘKaCM_��xvg\���J
`�ȮN��J���ר-OQ�����kJߢ�V�Q�������l���a�Z�q0��y�tOb��z�=I �������z��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``@(��p08���o4E���oPP@T���^B		�h�	�	c

�n�
�
�w@@2}t
t

�2�
�
9��
�
<��
�
���� �� ��� ��� �� �� �@�� � �   `�`  ` �p `` 
|$(�$h(+lib64/ruby/2.2.0/x86_64-linux/digest/sha1.so000075500000020020150402105730013647 0ustar00ELF>P	@�@8	@�� 0
0
 0
 (8 �
�
 �
 @@888$$���  S�td���  P�td�
�
�
,,Q�tdR�td0
0
 0
 ��GNUuG1	��:ȅ?��pۤ B��@ (��sSBE���|DV�qXF"xj��_�� � , ���
PX ch U
�WX __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_sha1rb_requirerb_path2classrb_define_class_underrb_data_object_allocrb_ivar_setrb_intern2SHA1_InitSHA1_UpdateSHA1_FinishSHA1_Finallibruby.so.2.2libcrypto.so.10libssl.so.10libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�  t�
�Fui	h0
 
8
 �	@
 @
 �
 
�
 �
 � � 	� �    ( 0 8 @ H P 
��H��H�� H��t��H����5� �%� ��h�������h��������h�������h�������h�������h�������h�������h��q�������%= D���%5 D���%- D���%% D���% D���% D���%
 D���% DH�= H�� H9�tH�v H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�E H��t��fD�����=� u+UH�= H��tH�=^ ����d����e ]������w������UH�=�SH�����H�=����H�=�H�����H��H�5�H�����H�5 1�1�1�H�����H�5� H��H��tH��H��H��[]�����H�=U���H��H�� ����H��H��H���>�����H��H���digestDigestDigest::BaseSHA1metadata;(D���D���l���������zRx�$�����FJw�?:*3$"D`����,\�����E�H�D Z
GAM�����GNU�
�	@
 @`��#.<Ft
�
0
 8
 ���o``�
� �Xh�	���o(���o�o���o�
 P`p�����GA$3a1�
GA$3p1067
�
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p1067�
�
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignsha1.so-2.2.10-35.el8.x86_64.debugB���7zXZ�ִF!t/��7]?�E�h=��ڊ�2N�a�?Ӈ�[�!��H�tM��%��Nmj=
6N�P
��6S��[<�]�̓�3ˍbs�J�~��c�@��
�k^#ԜA+Qb���h��6�{X"���+	�Wj�g��}�H�%�8ۆ��kpf
���/z�蛨�V��8]H˵.��^��LѺI�oM�3���N}r�Ҟ��^ov�D�7-�GB�V<��Z���8��M��n�do/rir1��ɋU�����Y��4��Y�{)8l
��4�!�ل��.���D�E/�.6SI�;�� �s����6��cB�T�}���Tn��G��9@ȃ���0�U7|lF�4��{�.ˏ<��E� ��n}糟q����}:���1��fh8�}RUCDH�T��)�Y*K���-�j0J�ܭ.�<u3�b2�cH:��\#���uL
�4�n��3k��]1O�z�P�l=$+����^X+�ɴ�Ó�D�\J�f�p>e?lճ#X���I��@��૆}r�e4��w�>#�"��f��}ai�(}�'f�#�ѵN�:��
��	�Ko�Ӧ�����|��y*��:��N~
�,��~K�n(�i2K��ᴁ�|���N`�b2.,W�8o�K�_�`���9j#�	h��`�N�|&B/o�Bf���E2���W�{��j��N��琋�F�c�>�i�k�qן��"Ԑ�jT�l�s�������q��=�BbQ�}�#WR�~��$��~�*�H\�o�?�֪�S�09��$��~�p�gUiսiyAv��;%��Eu\��b��ֱ�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``8(���0``�8���o&E���o((@Thh�^BXX�hc@@�n���wP	P	r}�
�

�2�
�
)��
�
,�((���� �0
 0
�8
 8
�@
 @
X ��
 �
@�� � � X�X X�h`X�
$(LX�+lib64/ruby/2.2.0/x86_64-linux/digest/rmd160.so000075500000020030150402105730014025 0ustar00ELF>`	@�@8	@�� 0
0
 0
 (8 �
�
 �
 @@888$$���  S�td���  P�td,,Q�tdR�td0
0
 0
 ��GNU�b�=C�lmR�W�$*HY�D A�BE��b�&��|�qX�����F"zl��a�� � , cX U 
�vh jX ��
__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_rmd160rb_requirerb_path2classrb_define_class_underrb_data_object_allocrb_ivar_setrb_intern2RIPEMD160_InitRIPEMD160_UpdateRMD160_FinishRIPEMD160_Finallibruby.so.2.2libcrypto.so.10libssl.so.10libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Y ui	{	 t�
	0
 
8
 �	@
 @
 �
 �
 �
 � � 
� � 
   ( 0 8 @ H 	P ��H��H�� H��t��H����5� �%� ��h�������h��������h�������h�������h�������h�������h�������h��q�������%- D���%% D���% D���% D���%
 D���% D���%� D���%� DH�=� H�� H9�tH�f H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�5 H��t��fD�����=} u+UH�=� H��tH�=N ����d����U ]������w������UH�=�SH�����H�=����H�=�H�����H��H�5�H�����H�5� 1�1�1�H�����H�5� H��H��tH��H��H��[]�����H�=W���H��H�� ����H��H��H���N�����H��H���digestDigestDigest::BaseRMD160metadata;(D���D���l���������zRx�$�����FJw�?:*3$"D`����,\�����E�H�D Z
GAM�����GNU�
�	@
 @`�	&6AOY�0
�
0
 8
 ���o``�
� �p��	���o@���o�o���o�
 `p������GA$3a10�
GA$3p1067 
�
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p1067�
�
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignrmd160.so-2.2.10-35.el8.x86_64.debuglfȠ�7zXZ�ִF!t/��7]?�E�h=��ڊ�2N��3L�L���.5r>a0����grs$C�ɪ�+�.���,�.L_��aӒ3�N���f����(��MDՏv��[�v[~��Rz�r,u��hvVq�N8 p}�]��H��2k���ߖ������F1$!��Ck@qp:,����
Dsbu��W��j��G�'�Ԕ7���L�0��R+p�:�(�����&����*VcRb3�R=��E梦�n���N��}�(1^�
�6�6��0�c��G!ֆ�
�qƊ�	��H"���V�\B0AJA*��I�T�x��_P){^y�kI�	�#��um����^L&�6�SU>��z{�{��Qx����šH��9��pN�t,�'�=���ٺ�lo�G4Ӿ\��9�/��>����P���e�gk�4K�l{����|�/��B䂀�nN�Y��…���C[ˆ�C�n�&���m�B�K����`�Qm0W#�臲m��bz�AK�׷ �!C�R�|���A��29�N���'��e'���x.9Ųr����}T��Q���#,w��E�����&�SU�X��5Ct.㶋%$���܎��R�cʪn4#g	p�$����x �a�x�٪|)סY�	6F/�DE���i�F�'Uc�)��3�f�eDgp���/������I��Ґ��w."r)曚ꇽY�ܱ��hr��Fu��.L+�(%IP��*��Y�ŇL¢XHà����\gl2(��������x��pPfo G0�]���L���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``8(���0``�8���o&E���o@@@T���^Bpp�h00cPP�n���w`	`	r}�
�

�2�
�
+�,�88���� �0
 0
�8
 8
�@
 @
X ��
 �
@�� � � X�X X�h`X�
$,PX�+lib64/ruby/2.2.0/x86_64-linux/digest/md5.so000075500000020020150402105730013500 0ustar00ELF>P	@�@8	@�� 0
0
 0
 (8 �
�
 �
 @@888$$���  S�td���  P�td�
�
�
,,Q�tdR�td0
0
 0
 ��GNU���i� �9��.� ���%��B ABE���|_�U��qX+qZ���F"�wi�^� � , KX ^h U
�RX ��
__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_md5rb_requirerb_path2classrb_define_class_underrb_data_object_allocrb_ivar_setrb_intern2MD5_InitMD5_UpdateMD5_FinishMD5_Finallibruby.so.2.2libcrypto.so.10libssl.so.10libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64A ui	c� t�
�0
 
8
 �	@
 @
 �
 �
 �
 � � 
� � 
   ( 0 8 @ H 	P ��H��H�� H��t��H����5� �%� ��h�������h��������h�������h�������h�������h�������h�������h��q�������%= D���%5 D���%- D���%% D���% D���% D���%
 D���% DH�= H�� H9�tH�v H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�E H��t��fD�����=� u+UH�= H��tH�=^ ����d����e ]������w������UH�=�SH�����H�=�����H�=�H�����H��H�5�H�����H�5 1�1�1�H�����H�5� H��H��tH��H��H��[]�����H�=T���H��H�� ����H��H��H��������H��H���digestDigestDigest::BaseMD5metadata;(D���D���l���������zRx�$�����FJw�?:*3$"D`����,\�����E�H�D Z
GAM�����GNU�
�	@
 @\��)7Ao
�
0
 8
 ���o``�
� �Xh�	���o(���o�o����o�
 P`p�����GA$3a1�
GA$3p1067
�
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p1067�
�
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignmd5.so-2.2.10-35.el8.x86_64.debug
���7zXZ�ִF!t/��/]?�E�h=��ڊ�2N�a�?Ӈ�s����+�ݒ�<d߼�CE�;M����@��0v�'��Dz��*�|n�a��E���u��<a�+AP��,�N�<$�32�s��G���u�E^0}�����hp��Ӄ<�iLs٦RgRmr�p�[p�f/Q4����Ov�ڵ���Q�N]�J�#��Vr�7-ur���1N��dc��H!H#�Y�R��2�T��JPDD�k4��>&}� �S�7
֒[��i�=<��"�Ѩ+��a�j�P �2���.�Aݒ�P�,��.-�Z7�!�����UX�ˤ�(A#*|������j�7w��}�$Ms<
�?�C�F &~a.?M|-�?(q7�S`c�ۛ�a����F�08�<��om��������U�Ұ�
Ld� ��6����:/E���� E����IpDQ������G���##��y�rW�����H��F�r.*
��g���4�{HS���b*��˥�	��y%�a�]s*�h�>.O��\���RD�X!�y6� �a��S����L?�\�HC��ҷ���˛������p�nxw!s�r�?n�d9:���д8�;_���4)�Z�������m�a=���� Fa\
�&y~3�qm%�h���ోO9S�[��x$�+Q���B�_h��g���H�TG6m�a/�S�Z�W�k5!>��D�񎱎�{���R�>��׸���x�dg#%Cx�?w�ޒe@�u���(T�	,Q� ��H;��|�A���&�^��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``8(���0``�8���o��&E���o((@Thh�^BXX�hc@@�n���wP	P	r}�
�

�2�
�
(��
�
,�((���� �0
 0
�8
 8
�@
 @
X ��
 �
@�� � � X�X X�h`X�
$(LT�+lib64/ruby/2.2.0/x86_64-linux/dbm.so000075500000060710150402105730012310 0ustar00ELF>�@�Z@8	@�K�K �L�L �L (P hMhM hM @@888$$hKhKhK  S�tdhKhKhK  P�tdBBBLLQ�tdR�td�L�L �L GNU�Xȧa�^D�G�
[����,J�H JLMBE���|�qX�U��s}V �H�	d�.6�`I�I0Y��hr{��U)��S �v�+��:�?���k-�������, ��&�F"g> ���R �@R �R ��:R__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_check_typeddatadbm_closeruby_xfreerb_raiserb_hash_newdbm_firstkeydbm_fetchrb_tainted_str_newrb_hash_asetdbm_nextkeyrb_ary_newrb_assoc_newrb_ary_pushrb_string_valuerb_check_safe_objrb_str_exportmemcmprb_block_callrb_intern2rb_error_frozendbm_deleterb_hash_delete_ifrb_yieldrb_ary_tmp_newrb_str_duprb_protectrb_gc_writebarrier_unprotectrb_ary_clearrb_freeze_singleton_class__stack_chk_failrb_jump_tagrb_block_given_prb_ary_new_caparb_warnrb_obj_as_stringdbm_storedbm_clearerr__errno_locationrb_sys_failrb_out_of_intrb_check_typerb_eArgErrorrb_data_typed_object_allocrb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_scan_argsrb_eIndexErrorrb_get_pathdbm_openrb_fix2intdbm_pagfnorb_fd_fix_cloexecdbm_dirfnoruby_xmallocrb_num2intrb_sys_fail_strrb_ensureInit_dbmrb_cObjectrb_define_classrb_eStandardErrorrb_mEnumerablerb_include_modulerb_define_alloc_funcrb_define_singleton_methodrb_define_methodrb_define_constgdbm_versionrb_str_new_cstrlibruby.so.2.2libgdbm_compat.so.4libgdbm.so.6libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�0ui	�ii
�zui	��L ` �L   M M  M �A0M � 8M p �O �O �O $�O &�O 1�O 3�O =�O >�O ?�O A�O BP  P (P 0P 8P @P HP 	PP 
XP `P hP 
pP xP �P �P �P �P �P �P �P �P �P �P �P �P �P �P �P �P Q  Q !Q "Q # Q %(Q &0Q '8Q (@Q )HQ *PQ +XQ ,`Q -hQ .pQ /xQ 0�Q 2�Q 4�Q 5�Q 6�Q 7�Q 8�Q 9�Q :�Q ;�Q <�Q @�Q B�Q C�Q D�Q E�Q FR GR HR I��H��H�)8 H��t��H����5b8 �%c8 ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?�������%]4 D���%U4 D���%M4 D���%E4 D���%=4 D���%54 D���%-4 D���%%4 D���%4 D���%4 D���%
4 D���%4 D���%�3 D���%�3 D���%�3 D���%�3 D���%�3 D���%�3 D���%�3 D���%�3 D���%�3 D���%�3 D���%�3 D���%�3 D���%�3 D���%�3 D���%�3 D���%�3 D���%}3 D���%u3 D���%m3 D���%e3 D���%]3 D���%U3 D���%M3 D���%E3 D���%=3 D���%53 D���%-3 D���%%3 D���%3 D���%3 D���%
3 D���%3 D���%�2 D���%�2 D���%�2 D���%�2 D���%�2 D���%�2 D���%�2 D���%�2 D���%�2 D���%�2 D���%�2 D���%�2 D���%�2 D���%�2 D���%�2 D���%�2 D���%}2 D���%u2 D���%m2 D���%e2 DH�=a2 H�Z2 H9�tH��/ H��t	�����H�=12 H�5*2 H)�H��H��H��?H�H�tH��/ H��t��fD�����=�1 u+UH�=�/ H��tH�=�, ����d�����1 ]������w������1�H����H���ff.�@��H��H�5�, ���H��tH�xH�H�������H���fD��H��tSH��H�H��t�%���H��[�,���@��PXH�5?1�H��H�=1 ����D��AVH�5�+ AUATUS�(���H��tL�`M��tv�5���L��I���:���H��H��H��tO�H��H��L���z���Hc�H������Hc�H��I���q���L��L��H������L���{���H��H��H��u�[L��]A\A]A^��?���ff.�@��AWAVAUATUSH��H�����H�5/+ H��I���d���H��tL�`M��tvL���~���H��H��H��tQH��H��L������Hc�H��I��I�����Ic�L��H�����H��L��H���E���L�����H��H��H��u�H��L��[]A\A]A^A_��{���ff.���H��H�5�* ���H��t0H�xH��t'H�8xu�H���@����H��t�1�H����"���f���ATH�53* US�l���H��thH�hI��H��t\H�H��~[H�D]A\�f�H���h���H��t+1ېH������H��u�Hc�H�DI�$[]A\���1������f.���SH�5�) ����H��t H�xH��H��t�y���H�C�[��U���D��AVH�5c) AUATUS���H����L�`M��tz�q���L��I�����H��H��H��tSH��H��L�����Hc�H�����Hc�H��I�����L��H�����L��H���[���L�����H��H��H��u�[L��]A\A]A^�������UH�5�( SH�����H��t]H�XH��tT����H��H�����H��t5�H��H���E���Hc�H���J���H��H������H���W���H��u�H��H��[]��#�����UH�54( SH���j���H��tRH�XH��tI�G���H��H���|���H��t*�Hc�H������H��H���Z���H�����H��u�H��H��[]����ff.���ATUH��SH��H�|$H�t$����H�|$���H�|$����H�H�D$�� uIH��L�`��H�5o' H������H��tNH�xH��tEL��H������H��u'H��1�[]A\�@H�HHc��H9�u�L�`�@H���[]A\����ff.�f���SH��H��H�|$H�t$����H�|$���H�|$�Q���H�H�D$�� u$H��H����Hc�H9�tH��1�[�f.�H�@Hc�H9�u�H�5�& H������H����H�XH��tyH������H��u1�@H����9�uH��Hc�H�������t=H���:���H��t�H��H�����H�t$H��� t�9Vu�H�vHc�H���i�����u�H���[�����D��ATUSH��H��H�|$H�t$��H�|$���H�|$�>���H�H�D$�� u!H��H����Hc�H9�tH���[]A\ÐH�@Hc�H9�u�H�5}% H�����H����H�hH����H������H��I��H��u?�f.�H��H����H9�uH�������tKH����H��I��H���n���H��L��H�����H�t$Hc�H��� t�H;Vu�H�vH���=�����u�Ic�H�����H��[]A\������UH��SH��H��H�5�) H��t$I��H��L��	1�1��>�H��H��[]�@�	H�=����H��H�e) �@��uH�����tH��ƒ���t��u�H��H�=u���ff.���AWAVAUATUSH��H�����H�5�# H���7�H����H�XH����H�����H���B�H��I��H��tWH��H����Ic�H��I��I�����Ic�L��I���}���H��H��L��I���L�H��L��L��[]A\A]A^A_�c�H���[]A\A]A^A_��7������H���C���H��H���W����AWAVAUATI��USH���F�H�5# L��I���D�H����H�hH����H���V�I��H��H����L�-�" �6fDL��L����H����H�hH��t}H����I��H��H��tXH��L��H���Z�Hc�H���_�Hc�L��H���Q�H��H���V�H��H����H�����t�H��L�����{���H��L��[]A\A]A^A_��	���f���AWAVAUATUSH��H��HH�|$1�dH�%(H�D$81����H���D$4H���|���H�5�! H���
�H���fL�`I��M���VH�I�����L��H�D$(�
�I��H��A��H���+H�D$4H�D$ �K�H�|$H�5l! ��I��H����L�`M����L���F�I��H��A��H����H�����D��L��L��H!�H	�H�����Ic�L��H�T$H�D$���H�T$�I��u2H�����t*H�������tH����I�}I�Mt���SH�|$Hc���L��I�����L��H����H�T$ H�=1# H���I�T$4��u!H����������L��H��������DI�����E1��g�H����L9�~lH�����H��H�E �����H�EJ��H��� ��H��H�r��L!�L��I��H	�H��������H�E�� u�H�EL9���|$4����H�L$(H��~H)�I�H����H�D$H�L$8dH3%(u[H��H[]A\A]A^A_�H�r�B�}���@��H�E �P���f�L����H�T$����9�H�=b$ H�5�1��������f.���AVAUATI��USH��H�t$���H�|$�)�H�|$��H�|$�u�H�H�D$�� ��H��H�h��H�5� L�����I��H����L�pM����H��H��L���q�H��tDHc�H���q�H��H��L��I���@���upI�EH��xH��I�EH��L��[]A\A]A^��C�A���t�H�|$���H��I��[]L��A\A]A^�@H�HHc��H9�u�H�h�8������H�=# I�E����H�5<1���ff.�@AUATI��UH��SH��H�|$H�t$���H�|$���H�|$�-�H�H�D$�� ��H��L�h��H�5� L�����H����H�xH����L��H���/�H��t"Hc�H���/�H��H��H��[]A\A]�fDH��u�����t�H�|$�_�H�D$�uH�����tH���~0��H�H����H���H�HHc��H9�u�L�h�@����H��r�����ff.�@�������f���AUHc�ATI��I��USH��H�����H��E��~-A�E�L�l�H�3�L��H���|���H��H����L9�u�H��H��[]A\A]�ff.���U1�H��SH��H�=�H����H��H��H��[]�������AWI��AVAUATUH��SH��H�����H����H��H���
�H�I��� ��H��H�k��Hc�H9���M�$��A�� txM�t$M�D$Ic�I9���H�5{ L��E����H����L�xM����H�����L��M��H��A�H��L���i���u5H��L��[]A\A]A^A_�I��M�t$A��냐H�kH�S�P���L���x�����8tH�=� H�581���f�1������H���l�L���d�@��ATUH���SH���8�H��� �|H��H��������H����H��H� uE��H�C H��H��L� ���H��H� tA���H��H�3L��H���*���[�]A\���H�C�DH�{���fD��H�[ �H�� H�5P
H�81���ff.�f���H�� 1��^�ff.���ATI��US�@���H�5� L�����H��t]H�XH��H��tQH�������H��H���%���uH�����H��u�H�EL��[]A\�H�=M H�5|1�����
�f.���UH��SH��H���[���H�5 H��t'I��H��L�B���1�1���H��H��[]���	H�=��H��H�� �ff.���USH��H������tzH�5� H�����H����H�xH��t~���H��tEH�-h �Hc�H���5�H����H��H����H��tBH�xH��t9�/�H��u�H��H��[]��K�H����H��H��E1�[1�1�H��]������fD��ATUH��S�������H�5� H���	�H����H�XH����H����H��tRL�%� �H��H���]�Hc�H���b�H���*�L��H����H��tEH�XH��t<H���Y�H��u�H��[]A\�@�s�H����[H��E1�]1�1�H��A\������AWAVAUI��ATUSH��������H�5� L���/�H����H�hH����H���A�I��H��H��tzL�5� �H��L��H���z�Hc�L��I��H���y�Ic�H��H���k�H��H���p�H���(�L��L����H��teH�hH��t\H���W�I��H��H��u�H��L��[]A\A]A^A_�f.��[�H����H��L��E1�[1�]1�A\H��A]A^A_������ff.���UH��H�d	S��H��(dH�%(H�D$1�H�L$L�D$��H�T$H�t$H������H�Ń�t!H�T$dH3%(H��u5H��([]���k�H��uԅ�u�H�* H�5�H�81������@��AVAUATI��H��US��H��0dH�%(H�D$(1�L�t$L�L$L�D$L���j���tH�|$�����H����H�|$H����E1�1�H�|$L�t$ �^�H�D$E����H�D$�����H����� ��H�D$H�x���Q�H��H����������H�L$(dH3%(��H��0[]A\A]A^�fD@���6��H�|$��H���N���@�����q�A�ʼn�A�� �3���H�|$H���j���f���xtH�D$H��� ��H�D$H�x�ھB��H��H��tFH��������H����������6�I�D$ H�hH�����L������fDH�D$H��� ��H�D$H�x1Ҿ�"�H��H��u�H�D$H��� umH�|$H��1Ҿ��H�������A�ʼn�A�� �=���f.��{�������@H�|$H������f�H�|$H���t���f�H�D$H�x��`�H�|$�&�fD��ATI��1�U��H��H�� S�B�L���H��H���B���H��t�w���uH��[]A\��H��[]A\�H�= H��H��[H���]A\�[�ff.���H��H�� H�=lH�0��H�=�H�, H�� H�0�u�H�= H� H�� H�0�x�H�=� H�5
�����H�=� �����H����H�5[���H�=� �����H�S���H�5A��H�=� 1�H���H�50��H�=� 1�H���H�5�o�H�=p �H���H�5�P�H�=Q �����H�=���H�5��1�H�=2 �H����H�5���H�= �H���H�5����H�=� �H���H�5����H�=� �H���H�5���H�=� 1�H�e�H�5e��H�=� �����H���H�5M�z�H�={ 1�H��H�5;�^�H�=_ 1�H���H�5&�B�H�=C 1�H���H�5�&�H�=' 1�H���H�5��
�H�= 1�H�����H�5����H�=� 1�H����H�5����H�=� 1�H�����H�5���H�=� 1�H�V�H�5���H�=� 1�H���H�5��~�H�= 1�H�>�H�5w�b�H�=c �H��H�5^�C�H�=D 1�H��H�5I�'�H�=( 1�H���H�57��H�= 1�H���H�5#����H�=� 1�H����H�5����H�=� 1�H�c�H�5����H�=� �H���H�5����H�=� �H�U���H�5��y��H�=z �H���H�5��Z��H�=[ �H�w�H�5��;��H�=< �H�X�H�5����H�= �H���H�5n���H�=� �H��H�5B����H�=� �H���H�54���H�=� 1�H�/�H�5���H�=� 1�H���H�5���H�=� �@H�5����H�=p �@H�5����H�=X ��@H�5��o��H�=@ ��@H�5��W��H�� H�8���H�= H��H�5�H���.����H��H���closed DBM fileeach_pairDBMdbm_delete faileddbm_store failedpair must be [key, value]11key not found12DBMErroropeninitializecloseclosed?[]fetch[]=storeindexselectvalues_atlengthsizeempty?eacheach_valueeach_keykeysvaluesshiftdeletedelete_ifreject!rejectclearinvertupdatereplaceinclude?has_key?member?has_value?to_ato_hashREADERWRITERWRCREATNEWDBVERSIONdbmDBM#index is deprecated; use DBM#key;L(���h����h��������������������T������h����X�T���X����(� X�d���������� ��l���8�h�Px�d�����h�H�@h�T��h�(����$(��������X�������<	zRx�$(��FJw�?:*3$"D��\���p���:H]
KI����)J�U�����AAM<�����F�I�B �A(�A0�~
(D BBBAHl���F�B�B �B(�A0�A8�G@�
8D0A(B BBBAT���NHk
EP
A4t���F�H�A �_
FBJm
ABH�h��;E�p
A<�����F�I�B �A(�A0��
(D BBBA(���}E�H�D a
DAA(4P��rE�H�D V
DAA@`����F�A�D �D0n
 CABE\
 FABA,� �E�G F
CK�
FA@��0F�A�A �G0F
 FABB�
 AABA(��]E�D�G f
DAED �2f`XL��F�B�B �B(�A0�A8�G@�
8G0A(B BBBHD
8F0A(B BBBA���HIH���F�B�B �B(�D0�A8�D@�
8D0A(B BBBAL ���F�B�B �B(�A0�A8�G�p
8A0A(B BBBATp$�AF�B�B �D(�A0�D@�
0D(A BBBD]
0D(A EBBE8��!B�B�D �D(�D@�
(D ABBG�4�bF�E�G �A(�G0~(D ABB$PD�/E�F�N IGAHxL�LF�E�B �B(�A0�D8�G@�
8D0A(B BBBD,�P��F�A�I �w
FBA��,��F�D�A �]
ABA(8l�eE�D�G k
DAH4d���E�A�G }
DAAQ
GHE8�8��F�A�D ��
ABEN
GIE`���"F�B�B �E(�A0�A8�D@�
8D0A(B BBBKQ
8G0C(D EBBE(<���E�K�F@P
AAH@h��F�B�B �K(�A0�I`�
0A(A BBBG@�X�uF�F�M �h
ABDI
ABDNHB���RH;GNU�`   M �A� p JYmz������
4@�L �L ���o`�	�
P ���	���o����o�o����ohM ����� 0@P`p�������� 0@P`p�������� 0@P`p�������� 0@P`p���GA$3a1�A@GA$3p1067p 2@GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYp � GA+GLIBCXX_ASSERTIONSdbm.so-2.2.10-35.el8.x86_64.debug���/�7zXZ�ִF!t/��G�]?�E�h=��ڊ�2N����� ��U�������m�
�[��Ɗ~�$~\x����"M|_�@�C^[���D���h+
�Q�$Ӎ�S�����=b0M�Ŷ�{�p�z�g@Q�=H,G����Kˇ6����`�� ��F��L[�����˝=F�M���{���[��p%��+>ݐ��~B��N�B��X��PjST�pz���'mj�F>��i�a�(���f?����},HYϛ�q~ת1b���=i�)&W�Ѱ��k_~+@�*G��1�+��A��;�;.�O�\k[��X���_���]�� �T�!�do5E#�!�z�>e������T��7�񦀗�^�N��UU�&���Ԯ��S�}�+p���(c���C�Kpl$)�k{V����S;�eq�+�S�٥֐C�^xH:Se-��Љ�h�B�t��I��\�ئ����|��-��g�}�
�d5�P=���
*t���p��P�Q��s��t1S#�����k����$�ܘ2�yj���Zah��Z��
����4�K���f-_^�۷�p�`�d΅vi���
Y�����b!-��b��;�GK���\�iYOk���w7_�Q=�9u@��ls�eV�o"-J�S
������uR������u�1%�Ɏ�o�$��W�v��ڼ-��b���<B�)RP�Z�Iϐ�PwW�>�8R�F߲?7��w����I�'4��#����%�C��o�P|���b�i�ˮ�g]]Q<E�}\x���CZ���`=`&�ql��с,]�[��~r�R�@�?)�fco}1���D'�滸���y94��*>�u 9ʴ�mb�({'o�޾��P�t
�z+�3�"(��v<Z{<��2 ������|�����������A�*c%�I��&�50K�%�o/�v�Q����,�}�Ƥ�[���*8幝�_DY�@+;,u짼�*�z����_&�|{P��W���^��lc&Jǟ�}�>���9��e"�Vk�OW?M�T!�2ti�&��{�hY�g�s��m+���m:a�;��D/bҡ�:T_��^�m����{%�XԔ�.�c Q��T&[��抂Z����-������%ڬZ�&�6/�}D��9�?���W��u?�	�&���/��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��P0�	�	8���o���E���o��PT���^B��h��c��n��w��� }4@4@
�2H@H@��BBL�XCXC�hKhK ��L �L��L �L�M Mh �hM hM@��O �OX�P P�R R(�@R`RH
`T(�T�XY+lib64/ruby/2.2.0/x86_64-linux/sdbm.so000075500000101210150402105730012462 0ustar00ELF>� @H{@8	@�b�b mm m (p �m�m �m   888$$�b�b�b  S�td�b�b�b  P�tdUUU��Q�tdR�tdmm m ��GNU	���eЏ��]����3�D�A$���	���DHOBE���|�Ϲ=��%2�?����ѣ�nV�qX�?~G�*ŤZx�|�[!y��<3�A� n�U������`P6�w�#m[oj� �(v�����}���V�0���:\, U�}�F"���Jy�I8r \�r ��+3�@)�fPr � *5��+�dpM�P8r �@+2p1��`*��,���'�__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizefcntlreadlseeknullitemmemcmpmemcpymemmovesdbm_prep__fxstat__errno_location__stack_chk_failsdbm_openstrlensdbm_closesdbm_firstkeysdbm_nextkeysdbm_hashsdbm_fetchsdbm_deletewritesdbm_storerb_check_typeddataruby_xfreerb_raiserb_hash_newrb_external_str_newrb_hash_asetrb_ary_newrb_assoc_newrb_ary_pushrb_string_valuerb_check_safe_objrb_str_exportrb_out_of_intrb_block_callrb_intern2rb_error_frozenrb_hash_delete_ifrb_yieldrb_str_duprb_protectrb_gc_writebarrier_unprotectrb_jump_tagrb_block_given_prb_ary_new_caparb_warnrb_sys_failrb_check_typerb_eArgErrorrb_scan_argsrb_get_pathrb_num2intruby_xmallocrb_fix2intrb_sys_fail_strrb_data_typed_object_allocrb_ensurerb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_eIndexErrorInit_sdbmrb_cObjectrb_define_classrb_eStandardErrorrb_mEnumerablerb_include_modulerb_define_alloc_funcrb_define_singleton_methodrb_define_methodlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.14GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64 ui	a?���mii
xui	am �!m P! m  m @m �TPm �3Xm P3�o H�o �o �o !�o #�o -�o 8�o 9�o :�o <�o =p  p (p 0p 8p @p Hp 	Pp 
Xp `p hp 
pp xp �p O�p I�p �p �p �p �p �p �p �p �p �p �p P�p �p �p Jq q q q  q  (q "0q #8q $@q %Hq QPq &Xq '`q (hq )pq *xq +�q F�q ,�q M�q .�q /�q 0�q 1�q G�q 2�q 3�q 4�q 5�q 6�q 7�q ;�q Nr =r >r ?r @ r A(r B0r C��H��H��W H��t��H����5�W �%�W ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC��������%mS D���%eS D���%]S D���%US D���%MS D���%ES D���%=S D���%5S D���%-S D���%%S D���%S D���%S D���%
S D���%S D���%�R D���%�R D���%�R D���%�R D���%�R D���%�R D���%�R D���%�R D���%�R D���%�R D���%�R D���%�R D���%�R D���%�R D���%�R D���%�R D���%}R D���%uR D���%mR D���%eR D���%]R D���%UR D���%MR D���%ER D���%=R D���%5R D���%-R D���%%R D���%R D���%R D���%
R D���%R D���%�Q D���%�Q D���%�Q D���%�Q D���%�Q D���%�Q D���%�Q D���%�Q D���%�Q D���%�Q D���%�Q D���%�Q D���%�Q D���%�Q D���%�Q D���%�Q D���%}Q D���%uQ D���%mQ D���%eQ D���%]Q D���%UQ DH�=QQ H�JQ H9�tH��N H��t	�����H�=!Q H�5Q H)�H��H��H��?H�H�tH��N H��t��fD�����=�P u+UH�=�N H��tH�=�K ����d�����P ]������w�����1���v�f����t��wH�Gf��H�Of9�|?��~#�5D�8��9�'D�@fD9�|A9�D����H����ٸ�1��ff.�f�S1���������t��~�t1�[�����߾��1�����[�����������AWH��HI��AVAUE1�ATU1�SH��H�D$1�H���H��E1��fDH�t$A�?����H����M��@H��L��H��?H��?H��4H��=HÁ�H)�I�DA��H��H)���skH��D��A�T$H���N�lhM9o�A��M��I�]M���II�H��M��MI�I��M;�@�t���L��A�?1�H���a���H���8���Ic�H��.H��H!�M�o�I�G I9o8uH����[]A\A]A^A_�M�g@I�H1�H��H��L��H��
1�H)�I�G@��ILJ8���H�A�����H��x.A��L���u���H��xL�������tI�o8�w���1��m����Hc�H�&.H��H!��C���f.�UH�o@SH��H���fD�D�9���HcȺH�4	��~�T5�H�DMH��H�)�H��u}H�C(�{�CH�pH�s(H9C8tH��
1�����H��x_H�s(�{H�s8�H�����H��~BH�������t6�C�S@���Cf���`���H��J H��RH��t�H��[]��H�yJ �KH�H�RH��[]�ff.�@AWAVAUATUSH����~}��Lc�H�T$I����M���H�l6�f�A�D]H��H9�tAI�T]A��)�H��D9�u�H�|$L�L��������u�H��D��[]A\A]A^A_��E1���ff.�AUATI��UH��S�H��L�/fE��~B�o)Ӆ�u.I�Ef�\EL�,D)�E��u9fB�\-f�EH��[]A\A]�Hc�Hc�D�D$H����D�D$�fDHc�Ic�L��H��w����DAWAVAUATUSH��H�/�������H���H�����A��1�E�����E�I��A9��Mc�A����J�|{�H�|$I�GB�c���CL�,D)�L���)�L��Hc�L��H)�H)�H�H��g����L$J�D+�H�tkD)�D�PH���f�P�H9�u�D�#A���fD�#H��[]A\A]A^A_�DH�D$��e���D��AVI���HAUI��ATA��U��SH��dH�%(H��$�1��U���H��H���YH�@ H�@(H�����H�@@������D��L��1�������C����������������D���L��1����������������������3H�����������H�D$01ҹ�H�C8����H����H��H��H�C1�H��@H�S@H��H��H�H��H���H�H��$�dH3%(H��ujH�Ġ[]A\A]A^�D����
���D�{���t�K����;���t�?���H��1�����{���u���fD������n�ff.���AWAVAUATUSH���t$H�����?H����A����L�xH��K�<?���I��H����H��H��H��M���P���I�K�<<H���.dirH���@�3����T$L��D��H�H���.pag�C�$���L��I�����H��L��[]A\A]A^A_�����E1������������SH��tH���?��{��H��[�k����[�ff.���USH��H����H�G@H��1�1�HLJ8H�o@H�H1�H��H��H)������H��{��H��x>�{�H����H��x)H�C8H��H�C(�CH��[]�\���@H��D �KH�PH�H��[]������H�~D H�PH�H��[]����H��t����f�H�����H�BD H�PH�H���ff.�����t(�F�H�L1�fDH��Hi�3�W�H�H9�u��1��ff.�f���AU��AT��I��USH��H�����uHH��H��t@H��D��H���z�H��H���o�����uKH��C �KH�H�RH��[]A\A]�fD���H�tC �H�H�RH��[]A\A]�@�s@��t8L�k@D��H��L�������t"H�H�TH�D@�T>H��L�)��fDH�C H��R뢐����AV��H��AUI����AT�US��H��H�����o��uzI��D��L����H��H�������tML�s@D��L��L���{�����t_H�s8�{1�H��
��H��x �{�L����H��x[��]A\A]A^ÃK�������D����������fD������Ɛ�{��������ff.�AWAVAUATL�g@USH��H��hH�t$L��$PL�t$P�T$HdH�%(H��$X1�H��H�D$L
H�D$8H�GHH�D$@��L��L��H�k H���H�I�$H�t$8L�}H�F�H�|$@H��H��L��H)������H���L���H���$Pf������I�mL�|$(���H�\$0I��L��I�D�H�D$ f�M�I�OD)�N�,L��H�ȉ�H�L��)�H�L$�T$���L��H�D$(A��IE��T$H�L$L��I������A�W�L;|$ u�I��H�\$0H�k L�}H�D$�{H!�L	�L���+H�s81�H��
��H�����{�L����H����H�k8H�{HI�L��H��L��I�$H)�I���H)΁�H��8���H�L�C�;M��I�hI���II�H��M��II�H��I��H�L$I��H;�@tQ1�L��L�D$ L�L$��H���8�;H��H���H���H�L$�;L�D$ L�L$H��@H��H��?H��4HŁ�H)�L��H��?H��=I���H)�����+HH�CI9�|
H�H�C1�L���}�H�����;H��H���H����H�K@���~A�L�t$H�T	)ЍV9���H�C H�s1ɋ{H�PH�T$��H	�1�H�LqH�C H�s8H�KH��
��H��x#�{�L���C�H��x�l$L��1�H��$XdH3%(uRH��h[]A\A]A^A_�f�H��1�H��
��H��x��{�L�����H�������f����4�@��AWAVAUATI��UD��SH��(H������u!H��H��t�_����G�4A���v*�5�������H��(��[]A\A]A^A_�f�I��D��I��D�L$L��L�$�v�H��H��H�D$�f���D�L$H�E@L�$H�D$A��t^D�U@E��fE��~jD��L��D��L�D$H�}@D�T$D�$�������\���fD�{��������A���D��L��H�����D�U@L�$E�ѸE����C�T)�A�V9�}H�t$D��H��L�$���L�$��tED��L��H�}@L����H�u8�}1�H��
���H��x�}�H�u@��H�������f��M��������f�D�$D�L$L�D$M��H�E@B�H�`�����1�H��tH�H�H%��HX���H��H�5�9 ���H��tH�xH�H�������H���fD��SH��H�H��t��H��[�!��PXH�5�1�H��H�=�> ��D��AVH�5C9 AUATUS�H�H��tL�`M��tv��L��I���J�H��H��H��tO�H��H��L����Hc�H���o�Hc�H��I���a�L��L��H���3�L����H��H��H��u�[L��]A\A]A^��?���ff.�@��AWAVAUATUSH��H����H�58 H��I����H��tL�`M��tvL����H��H��H��tQH��H��L���b�Hc�H��I��I����Ic�L��H����H��L��H���u�L���]�H��H��H��u�H��L��[]A\A]A^A_��{���ff.���H��H�5�7 ���H��t0H�xH��t'���xu�H���@���H��t�1�H����"���f���ATH�5�7 US��H��t`L�`H��M��tTHc��~[H�D]A\�f.�L���x�H��t#1ېL�����H��u�Hc�H�D�][]A\ø1������f���SH�57 ��H��t H�xH��H��t�)�H�C�[��e���D��AVH�5�6 AUATUS���H����L�`M��tz��L��I�����H��H��H��tSH��H��L����Hc�H�����Hc�H��I�����L��H���F�L��H�����L����H��H��H��u�[L��]A\A]A^�������UH�56 SH����H��t]H�XH��tT���H��H����H��t5�H��H����Hc�H���J�H��H���O�H����H��u�H��H��[]��3�����UH�5�5 SH����H��tRH�XH��tI�W�H��H����H��t*�Hc�H�����H��H�����H����H��u�H��H��[]����ff.���SH��H��H�|$H�t$���H�|$��H�|$��H�8H�D$�� ��H����Hc�H9���H�5�4 H�����H����H�XH����H�����H��uD�H����Lc�L9���9�uH��uDH��H��H������tDH����H��tDH��H���i�H�t$H�H�ρ� t�H�N�H�vH��H���q���u�H���[�f�H��1�[��H�x�!���H�����z���f.���ATUH��SH��H�|$H�t$��H�|$�x�H�|$�>�H�H�D$�� uYH��L�`��Hc�H9�uUH�5�3 H�����H��t:H�xH��t1L��H����H��H�H��H��[]��A\�fDL�`H�P�����H�������ATUSH��H��H�|$H�t$���H�|$���H�|$��H�8H�D$�� ��H����Hc�H9���H�5�2 H�����H����H�hH����H�����H��I��H��u6�}DH��H����H9�uH�������tGH�����H��I��H��tIH��L��H���{�H�t$Hc�H��� t�H;Vu�H�vH������u�Ic�H����H��[]A\ÐH���[]A\�f�H�x�$��������ff.�f���UH��SH��H��H�5�6 H��t$I��H��L�'
1�1��>�H��H��[]�@�	H�=����H��H��6 �@��uH�����tH��ƒ���t��u�H��H�=����ff.���AWAVAUATUSH��H�����H�5/1 H���7�H����H�XI��H����H���6�H��I��H��tkH��H����Ic�H��I��H�T$�]�H�T$L��I��Hc��J�H��L��H��I����A�$��x��A�$H��L��L��[]A\A]A^A_���H���[]A\A]A^A_��������H������H��H���'����AWAVAUATI��USH����H�5/0 L��I���4�H����H�hH����H���6�I��H��H����L�-�/ �6fDL��L�����H����H�hH��t}H����I��H��H��tXH��L��H�����Hc�H����Hc�L��H����H��H���v�H��H����H�����t�H��L�����{���H��L��[]A\A]A^A_�����f���AWAVAUATUSH��H��XH�|$dH�%(H�D$H1�����H���D$<H���n���H�5�. H�����H���|L�hI��M���l�A�����L��D$,����I��H��A��H����H�D$<H�D$ �GH�|$H�5�. ���I��H���L�hM���L����I��H��A��H����H�����D��L��L��H!�H	�H���[��L��Ic�H�T$H�D$��H�T$H�|$H�D$@Hc���H�|$@I���"�L��H������H�T$ H�=s0 H������T$<��u#H������/���H�t$@H���R�����DH�EE1�L�|$@H�D$�f�H����L9���H�����H��H�E ������H�D$J��L��H�D$@�,��H�|$@���H�|$@���H�8H�D$@�� ��H��H�p��Hc�H9���H�������I��H!�H	�L��H����������H�}�� �D���H�}L9��G����D$<�����D$,��~Hc�H9�uk�D$,)�A�H�L$HdH3%(H�D$uRH��X[]A\A]A^A_�fDH�pH�x�R�������H�E �����H�=�1 H�5�1������������������ff.�@��AVAUATUH��SH��H�t$���H�|$����H�|$���H�|$���H�H�D$�� ��H��L�`��Hc�H9���H��H�5�+ ������H��H����L�hM���������L��H��L�����H��tRHc�H�����L��H��L��I���^����uk�E��x���EH��L��[]A\A]A^�DL�`H�P�b����3��A���t�H�|$���H��I��[]L��A\A]A^���H������E����H�=!0 H�5+1����AVI��AUI��ATUSH��H�|$H�t$���H�|$�u��H�|$�;��H�H�D$�� ufH��L�`��Hc�H9���H�5�* L�����H��trH�xH��ti��L�����H��t3Hc�H������I��H��L��[]A\A]A^�DL�`H�X�fDI��u������t�H��L�����H�����I�����H�����@�������f���AUHc�ATI��I��USH��H������H��E��~-A�E�L�l�H�3�L��H�����H��H���!��L9�u�H��H��[]A\A]�ff.���U1�H��SH��H�=�H���b��H��H��H��[]�������AVI��AUATUSH��H�t$H�$H���J���H�|$����H�|$���H�|$���H��H�D$���H�<$���H�<$�h��H�L$H�$H��� ��H�iH�QHc�H9��L�A��A�� ��I��L�hA��Ic�I9���H�5}( L��D�����H����H�xH���������L��I��H��A�L���_����tK�����8tYH�=Z- H�5v1����@H��H�i���M����L�hL�@�c���H�$H��H��[]A\A]A^�@1�����H�����H��H��[]A\A]A^��C�L���;��H���3����ATUH���SH�����H��� �|H��H��������H������H��H� uE����H�C H��H��L� ���H��H� tA���H��H�3L��H������[�]A\����H�C�DH�{���fD�k��H�[ �H��) H�5<
H�81��m��ff.�f���ATUSH��H�-
H�� dH�%(H�D$1�H��L�D$H���������H�|$H����H�<$H�l$����A�����H�$H�$H��� ��H�<$H��1Ҿ����H��H����H�$H��� �*H�$H�x1�1����H��H����A������f�@��������A��H�<$H�l$� ��H�$E��y?H�$H��� �]���H�$H�x�X���f.�H�<$H�l$����A��H�$H�$H��� u\H�<$H��D��B���H��H��������H�C H�h�����H��H�L$dH3%(u=H�� []A\��H�$H�x�fD�[��A���%���H�<$H�������>��H�<$�5��D��H��$ 1����ff.���ATI��1�U��H��H��$ S�b��L���H��H������H��t�w����uH��[]A\��H��[]A\�H�=�& H��H��[H�3�]A\���ff.���ATI��US��H�5$ L���!��H��t\H�XH��H��tP�������H��H��������uH���	��H��u��EL��[]A\�H�=�( H�5�	1��P���;�ff.���UH��SH��H���[���H�5�( H��t'I��H��L����1�1�����H��H��[]���	H�=}	���H��H�e( �ff.���USH��H�������tzH�5# H�����H����H�xH��t~�$��H��tEH�-�" �Hc�H���U��H���]��H��H������H��tBH�xH��t9���H��u�H��H��[]����H���C��H��H��E1�[1�1�H��]�k����fD��ATUH��S�`������H�5Q" H���Y��H����H�XH����H���[��H��tRL�%" �H��H���-��Hc�H�����H�����L��H�����H��tEH�XH��t<H���)��H��u�H��[]A\�@����H���k��[H��E1�]1�1�H��A\����0���AWAVAUI��ATUSH���������H�5w! L�����H����H�hH����H�����I��H��H��tzL�5?! �H��L��H���J��Hc�L��I��H�����Ic�H��H�����H��H������H�����L��L�����H��teH�hH��t\H���'��I��H��H��u�H��L��[]A\A]A^A_�f.����H���S��H��L��E1�[1�]1�A\H��A]A^A_�s����ff.���UH��H��S��H��(dH�%(H�D$1�H�L$L�D$�K��H�T$H�t$H���I���H�Ń�t!H�T$dH3%(H��u5H��([]�����H��uԅ�u�H��" H�5eH�81��y���4��@��H��H�9" H�=�H�0�2��H�=;H��$ H�-" H�0���H�=�$ H��$ H�(" H�0�8��H�=�$ H�5�����E��H�=�$ �����H�����H�5��V��H�=w$ �����H�s���H�5��'��H�=X$ 1�H��H�5����H�=<$ 1�H�+�H�5�����H�= $ �H���H�5�����H�=$ �����H�M���H�5q���H�=�# �H�^���H�5X���H�=�# �H�?���H�5=�s��H�=�# �H���H�5$�T��H�=�# �H��H�5D�5��H�=f# 1�H���H�5����H�=J# �����H�&�H�5����H�=+# 1�H�Z�H�5�����H�=# 1�H�>�H�5�����H�=�" 1�H���H�5����H�=�" 1�H�����H�5����H�=�" 1�H�
���H�5m�n��H�=�" 1�H�.���H�5\�R��H�=�" 1�H�����H�5l�6��H�=g" 1�H���H�5-���H�=K" 1�H���H�5���H�=/" 1�H���H�5����H�=" �H���H�5�����H�=�! 1�H�s�H�5����H�=�! 1�H�W�H�5����H�=�! 1�H��H�5��o��H�=�! 1�H�/���H�5��S��H�=�! 1�H���H�5��7��H�=h! �H�4�H�5j���H�=I! �H�e���H�5R���H�=*! �H��H�5;����H�=! �H���H�5%���H�=�  �H���H�5���H�=�  �H���H�5��}��H�=�  �H�J�H�5��^��H�=�  �H�+�H�5��?��H�=p  1�H�_�H�5��#��H�=T  1�H���H�5�H�������H��H���?�������?���������������?�����������������������?���closed SDBM fileeach_pairSDBMsdbm_delete failedsdbm_store failedpair must be [key, value]11key not foundSDBMErroropeninitializecloseclosed?[]fetch[]=storeindexselectvalues_atlengthsizeempty?eacheach_valueeach_keykeysvaluesshiftdeletedelete_ifreject!rejectclearinvertupdatereplacehas_key?include?member?has_value?to_ato_hashsdbmSDBM#index is deprecated; use SDBM#key;�9P���������0 ��Dp��dP���P������0���l����@�� ��L`��l@��������������(���hp���P��p�����<���X���t����`��� 0�Xp�t ����� �`�8�lP����������T	��l	��	�
`�`
P��
`��
���
���t��p������0��`������������
���d
p����
zRx�$X���PFJw�?:*3$"D���@\h��sp���HA�_
HTH����B�L�B �E(�A0�C8�DP
8C0A(B BBBD0�����A�E�G �
AAHVAAHd���B�B�B �B(�A0�A8�DPl
8D0A(B BBBI8\����B�B�D �D(�I@y
(A ABBDH����B�B�B �B(�A0�A8�DP�
8A0A(B BBBFD�����F�J�E �D(�C0�G�'
0A(A BBBFH,8���F�B�B �B(�A0�A8�DP�
8D0A(B BBBHx���5E�[
HL<�����E�A�D �
AAIV
AAH]AA����2T]����3L����F�D�G �A(�D0E
(A ABBG]
(A ABBE<Tp���H�H�H �C(�A0�z
(C BBBAL� ���B�B�B �B(�E0�A8�J�t
8A0A(B BBBJL�����F�B�B �B(�D0�D8�D`B
8C0A(B BBBJ4@�� HL��:H]
KIhl��E�U�p��AAM<�t���F�I�B �A(�A0�~
(D BBBAH�����F�B�B �B(�A0�A8�G@�
8D0A(B BBBA,X��NHk
EP
A4L���~F�H�A �^
FBKl
ABA����;E�p
A<�����F�I�B �A(�A0��
(D BBBA(�d��}E�H�D a
DAA(���rE�H�D V
DAA(8��6E�G �
FCD
CI0d ���F�A�D �D0x
 DAEG@����3F�A�A �G0�
 AABBD
 FABC(����]E�D�G f
DAE���2f`����F�B�B �B(�A0�A8�GP�
8G0A(B BBBFD
8F0A(B BBBA�t��HIH�|��F�B�B �B(�D0�A8�D@�
8D0A(B BBBAL�@��F�B�B �B(�A0�A8�G��
8A0A(B BBBGT4�MF�B�B �A(�D0�D@�
0D(A BBBFm
0D(A EBBA@����B�E�E �A(�A0�D@�
0D(A BBBF���4���bF�E�G �A(�G0~(D ABB$	��/E�F�N IGAXD	���F�E�B �A(�A0�D@E
0D(A BBBET
0D(A BBBA,�	$��F�A�I �w
FBA0�	���F�A�A �N@�
 AABH
��@
��uF�F�M �h
ABDI
ABDNHB,\
���F�D�A �\
ABA(�
8�eE�D�G k
DAH4�
|��E�A�G }
DAAQ
GHE8�
��F�A�D ��
ABEN
GIE`,��"F�B�B �E(�A0�A8�D@�
8D0A(B BBBKQ
8G0C(D EBBE(�d��E�K�F@P
AAH����H�GNU��!P! m �T�3P3�'5?�(
@Rm m ���o`x
�
�p `�0�	���o����o�o(���o�m `p�������� 0@P`p�������� 0@P`p�������� 0@P`p�������� 0@P`p��GA$3a1(MRGA$3p1067�!=RGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�!p3GA+GLIBCXX_ASSERTIONSsdbm.so-2.2.10-35.el8.x86_64.debug�;�{�7zXZ�ִF!t/���2]?�E�h=��ڊ�2N������$���:�~X�o��/�����#�[oخ_�3�u$�>f�;||Tj]����>��%8B��b�������`yV��ԃ��xBǼ�2Fy�u������&�,��[�Ҕ�n��yl@��'|��Q:-e�R2�J�fK~�Ϧ
���c1�q�SE�&u����vdR�l����=��,,�K���>��G��O
��F�.�RB�T����(=��J��9aW$�js�J(:��h%�O��m�%�;T&&�ﰣ�	�o�Ɲ`��m*ӬB<��‚�q�<�x25NQ�Q3��I��2�]�<l�bDa_zvh���w +N�.��ϖ&�L��1�������{�a/B�-簣����]]��ˣBKT�>.�J��c�?R��:5:�#��V����M2�9R��"3�t�Ȗ.���oGz~�K7��W(��~*����4&��3x6A�8��CO�5�Į�ج���gc���h\�
y�"Tr!bG2�8辴z-��&�B+�hP�ˣYo�6��=���g�mN���)\)a�B�g(x3(\��},#	�-%��I00UIH+�b5Hk,-��k\�
[n���9L��46J�d&�xBqM���G�[�f�4�9�[����ݬ��s���Z�j� jjQC��j�UOu�k�Wh���[���ֿ�-x�5\�J��p����J��ѓ�2*	mlA���:}o� cnW����0�0����\6���(��&�m6'��v�B��4
QU~2U��{��൵EhR�ByA5p[i�A$��d�W�<Pn�
�������ӑ^������p�L����Q���M�S�`����9[�Zd(�5M�V?����+�#�?�	n:��El���h�D[��C�k�S֐�ծM�{*�.�"�����a}�
��i�v�r���I�myun��-op�T�=��2F~��e������*)�5�1�g\8��&��
�����n��طc5�Lc��B��7�I�U�Az�ƒEu�NVؒ��7��po²�^����s`do��4eSF�
۵�i7@�.\�"|�k��O�9['!�_s�/��m���(;�Y&����W�cuů�2#��RhH�&w+U�a����
��Wo!�����h7Y������<\��(iD>�����o�������Sjh�2�4.m�	�A]�0�o����R�A�M�_”�>g)�M���t:��0�+��h�J�r�K��f�-�V���y��2�)׬$�Ӛ����ʿS�9	m܁��jw�c��im>���#�4�tx�
�+��R��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``d(���0x
x
�8���o((�E���o��`T00�^B��`h((cPPPn��@w� � ]1}@R@R
�`R`R� �UU���V�V���b�b �m m�m m� m  mh ��m �m ��o �oX�p p8�@r 8r@��r`8rH
�t(�ttz+lib64/ruby/2.2.0/x86_64-linux/continuation.so000075500000017010150402105730014253 0ustar00ELF>�@�@8	@XX �
�
 �
 �� �
�
 �
   888$$888  S�td888  P�td���$$Q�tdR�td�
�
 �
 XXGNU	�~�4g�09�HM�}ga��C�� 	BE���|�qX�4 o , gF"�0 �8 �0 U@__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_continuationrb_warnruby_Init_Continuation_bodylibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��
 0�
 ��
 �
 � � � �    ( ��H��H��	 H��t��H����5�	 �%�	 ��h�������h��������h��������%�	 D���%�	 D���%�	 DH�=�	 H��	 H9�tH�F	 H��t	�����H�=y	 H�5r	 H)�H��H��H��?H�H�tH�	 H��t��fD�����=5	 u+UH�=� H��tH�=� �Y����d����
	 ]������w������H��H�=!1��
���H������H��H���callcc is obsolete; use Fiber instead;$x���@����h�����zRx�$0���@FJw�?:*3$"DH���0\ ���HRGNU�0��
 ��������
`�
 �
 ���o`��
( H��	���o����o�o����o�
  0@GA$3a1�mGA$3p1067@_GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realigncontinuation.so-2.2.10-35.el8.x86_64.debug��:��7zXZ�ִF!t/��]?�E�h=��ڊ�2N��{�n ����I�����3ǰU��	�d�0�Q�D������9(�	��	��Ƈr�]a*f�A�a�E�Oh�G��y�O�����ӏ $�j�U�k'�#�A��/km�5Wov�P��t\�4�F8�տm�9S�h�OX}�B��������3?�l�3�6�uc@��]? /M>�E`��mi��io9�����
I�[��Q��o~o��:�l�3.�qdG���e�ݔÎSS�4�Y��Q����E��>@g�
���2*�`����R��o$b�����n�P��	d)w�>[8�Y�aa�ٲ�ghX;��$���LZ)�t�؇B������V��;��F6�
.R��[֦���y��X�^m�#�GuR�����VH�L"V�4%��詼'dݑ��@�\w$��݃�e$({�qw���0��.�Ɓ��c��y2��R`��M��c,���uƔf��v&MK�Q��݈N�b&�~���a��ok�m�F��<)l��(����.���=���;���,!���ǂeJV��*X��`��vq���_�!Tw�c����<'p���g�'��A��%�uFe�#�y���Q��{���X`��X�gA��8�+����3�5���M���������:�[ʝ�4S��RۓǮ��Q1���.6K�iZ�;d"�xh4�}�D%��L�p�H�m��_Y�^"BlYu���೵m��4kxoJ@�8K|٫�[n�Y`��@	��̣�8��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��0��(8���o��E���o�� T�^B��Hh��c@nPP0w���}``
�2pp(���$���t�88 ��
 �
��
 �
��
 �
��
 �
 �� � � 0�0 0�8`0�
(0XD�+lib64/ruby/2.2.0/x86_64-linux/zlib.so000075500000174140150402105730012511 0ustar00ELF><@ �@8	@���� �� � 	 (�(� (� 00888$$������  S�td������  P�tdh�h�h���Q�tdR�td�� � ��GNUY�e�%Ѵ!���I�玥���@ ���BE���|�qX)hVV��7#� ������NY�����'b����\f��`����K�Qh��8��U/�x��ds�i����~YI��� �(Q>5<E�]'"�s�DmE�������<�k<~�����zw�t��G�����1��, 8vV��bF"�����V�0o�$) 	� 3	� '	� w��__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_check_typeddataruby_xfreerb_gc_markrb_eNoMethodErrorrb_eEOFErrorrb_rescue2rb_errinforb_obj_is_kind_ofrb_funcallrb_check_typerb_str_resizerb_cStringrb_obj_revealrb_block_given_prb_str_new_staticrb_yieldrb_str_newmemmoverb_uint2inumrb_protect__stack_chk_failrb_thread_call_with_gvlruby_xreallocrb_exc_new_cstrrb_exc_raiserb_sys_failrb_sprintfrb_exc_new_strzErrorrb_enc_dummy_prb_str_conv_enc_optsrb_econv_str_convertrb_enc_associateruby_xmalloc2memcpyrb_str_buf_newrb_str_catrb_obj_hiderb_scan_argsrb_fix2intinflateInit2_rb_io_extract_encoding_optionrb_econv_prepare_optsrb_econv_open_optsrb_ensurerb_warningruby_xcallocrb_data_typed_object_alloccrc32rb_default_external_encodingrb_class_new_instancerb_io_closerb_jump_tagtimerb_check_convert_typedeflateInit2_rb_respond_torb_define_singleton_methodrb_call_superrb_attr_getrb_str_inspectrb_str_appendrb_string_valuerb_num2ulongrb_ivar_getadler32rb_hash_asetrb_hash_newrb_ivar_setinflateInit_deflateInit_get_crc_tablerb_ary_new_caparb_ary_pushcrc32_combinerb_num2longrb_uint2bigadler32_combinezlibVersionrb_str_new_cstrstderr__fprintf_chkrb_raiserb_int2inumrb_econv_closerb_str_duprb_time_newinflateSetDictionaryrb_out_of_intinflateSyncPointdeflateSetDictionarydeflateCopyrb_str_resurrectinflateSyncrb_file_open_strrb_eArgErrorrb_str_to_strmemchrrb_Integerrb_num2uintrb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_hash_arefrb_thread_call_without_gvlonigenc_get_left_adjust_char_headrb_enc_precise_mbclenrb_warnrb_enumeratorizerb_intern2rb_num2intrb_rsrb_eRuntimeErrormemcmprb_check_string_typerb_ary_newrb_lastline_setrb_enc_mbclenrb_econv_convertrb_econv_check_errorrb_obj_as_stringrb_ascii8bit_encodingrb_enc_getrb_str_conv_encdeflateParamsInit_zlibrb_define_modulerb_eStandardErrorrb_define_class_underrb_define_module_functionrb_define_constrb_cObjectrb_undef_alloc_funcrb_define_methodrb_define_alloc_funcrb_define_attrrb_mEnumerablerb_include_modulerb_io_addstrrb_io_printfrb_io_printrb_io_putsinflateResetinflateEndinflatedeflateResetdeflateEnddeflatelibruby.so.2.2libz.so.1libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.3.4GLIBC_2.14GLIBC_2.2.5GLIBC_2.4ZLIB_1.2.2/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64	Pti	8	���D	ui	O	ii
[	���'e	� �<� �< �  � @� ��H� �>P� �ZX� `=�� ���� `>�� [�� P=�� x�� P� � (� ^ � *X� `� h� p� x� �� ��  �� !�� 9�� H�� J�� T�� j�� k�� v�� y�� ��� ��� ��� ��� ��  � (� 0� 8� @� H� 	P� 
X� `� 
h� p� x� �� �� �� �� �� �� �� �� �� �� �� �� �� "�� #�� $�� %� &� '� )� + � ,(� -0� .8� /@� 0H� 1P� 2X� 3`� 4h� 5p� 6x� 7�� 8�� :�� ;�� <�� =�� >�� ?�� @�� A�� B�� C�� D�� E�� F�� G�� I� J� K� L� M � N(� O0� Q8� R@� SH� UP� VX� W`� Xh� Yp� Zx� [�� \�� ]�� _�� `�� a�� b�� c�� d�� e�� f�� g�� h�� i�� l�� m�� n� o� p� q� r � s(� t0� u8� w@� zH� {P� |X� }`� ~h� p� �x� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� �� �� ���H��H��� H��t��H����5� �%� ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��������hb�������hc�������hd�������he�������hf�������hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!������hm��������hn��������ho������hp�������hq��������hr�������hs�������ht�������hu�������hv�������hw��q������hx��a������hy��Q������hz��A������h{��1������h|��!������h}��������h~���������%� D���%� D���%ݫ D���%ի D���%ͫ D���%ū D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%� D���%� D���%ݪ D���%ժ D���%ͪ D���%Ū D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%� D���%� D���%ݩ D���%թ D���%ͩ D���%ũ D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%� D���%� D���%ݨ D���%ը D���%ͨ D���%Ũ D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� DH�=�� H�� H9�tH�.� H��t	�����H�=ɧ H�5§ H)�H��H��H��?H�H�tH�m� H��t��fD�����=�� u+UH�=Z� H��tH�=~� ����d����]� ]������w����AVAUI��H��ATA�����UH��SH��L9�~"A�����H�����L)�L�A��H��L9��H��~��H��[L��]A\A]A^���[H��]A\A]A^�@���G�@�����fD��H��H�H��H�fD��H��H�5�� ���H��H�����H��H�5�� �����H����HE�H��Ð��H��H�5�� ���H���H��H�H��������H��H�5�� �|���H�P�H��tH��� uH��
��>H��H���DHcBH��H�D�f���H������@��SH��H��/���H�{[�%���D��SH��H�������H�������H�����H�{���H�{���H�������H��[����f�H��H��H�ʠ H��jH�&H�=�L�H��� L�1�����H���fD��UH��SH��H��� H��t���H��H�޻�$���H��uH��H��[]�DH���H�5R� �1�����H��H��t�H�Ǿ�K���H��H��[]Ð��SH�5� �1�H�����<����H��H������H��[��ATUSH��L�gp���H�kH����H�sH������H�k� H��H�0���@��u*H�����t!H�U�Ѓ������H����H�CH�CH�C8�C@�t<H��[]A\�@�[������u�H�kH���f���1�1����H���s����+�����t�H���*�����A���v���I������i���I�$�������W���%H	�H�U�F���fD��H��H�5�� �l���H��H�����H9w��ATUSH�GH� t}H�@H��H��I���S���H�SH�{H��L)�H�SH� upH��J�4'�+���H�SH�KH��� u;H�T
H��H�S8��H)Ⱥ@H=@HO‰C@H��[]A\�fDH���f�H�BH�H�C8H�B���H��f����ff.���H��H�5�� �|�x@H�������H��H��H�=.dH�%(H�D$1�H�T$�D$���HcD$H�L$dH3%(uH����-�ff.�f���AWE1�AVL�5^� AUATI��USH��D�oH�f.�A�D$����H����k@H�{ D��PA�NjC@)�HkH�kA����E��t
A��������~�K(��u
L9���jA�T$��t1H��H�=����������z���A�D$H��1�[]A\A]A^A_�@H�SH�
H��% uOH����H)�H���?~L�C@@H����H��A�D$H�H�k8���!���H��Ic�[]A\A]A^A_�f�H�JH)�H���?�H�zH���~sH��H�L�D
H�L$I�pL�$��H�SL�$H���H�L$H�BB�H�S�@N�L�B L�B�C@H�H�k% H���Q���H�R�L���@H��H��H�$�)�H�SH�$H�BƄ(H�S�H�J H�J�f�H������H�H��H��H�H���[]A\A]A^A_�ff.�S��H�����K����H��nHc�H�>��H�=� ��H�����H�=ɟ ����H�=ß �v���H�=�� �h���H�=�� �Z��H�=�� �L��H������H�=�� �6��H��H�=jh��1���H�=�� H���R��u����h�H���<���SH��H�� H������u0H�H�CH�CH�C8�C@H�C[�H�sP�����ATUH��SH���H��H����H���tH������u0H������H���H��L���[]A\�y�f�H���H���<�H���I��H�����A��uI�����tI�$�ƒ���~U��I�$L��[]A\�fDH���H��I����@��u�H�����t�H�E�ƒ���~!��I��H�E�D�H��r���H��r���ff.��������S�ATI��UH��SH��H�H����H�H��I��A�� tkH�KH�WH�4)H9�n�s@��)�9�B։S@H�xM��tH�xH��H�L����H�CHkH�kH� uNH��H�H�k8[]A\�fDH�KH����H�4)H9�~���H�C�C@H�KL�A�� �@H�@H�H�k8[]A\�H���8�H��L��H�CH����H�{H�kH�GH� tH�GH�C8�C@[]A\�y�f�H�wH��t6SH��� tH�VH�vH�����H�C[�H��H�������ff.�@��UH��H�KeSH��dH�%(H�D$1�H����H�5ݓ H�����H�<$�H��H��t���H�<$����H�{ �pH��d���uH�H��H�T$dH3%(uH��[]�H�sP������g��SH��H��H�t$H��tH��H���1�H�����H���tJH�|$H�t$�|�H���H�L$���H�rH���H�z����H���H�D$H���H��[�ff.���H��t�@H��H��H��H�H�<H�=�@���H��t�@H��H��H��H�H�H�=�B����SH��tTH���u-H���H�CH�{ �P��uHH��[�DH�=�i1���H���
�����1�H�=?i����[�H�sP������ATI���UH����S���H�Б L��H��H����H�
���H�d�H�H�CH�CH�CH�K`H�ShH�CPH�C �C(H�C8�C@H���H�Cp[]A\����H�5�� �P���AUI���ATI��UH���SH����H��H��� H��H�����L���1�1�H��H�T���H�C1�H�C`H���H�ChH�H�CH�CH�CpH�CPH�C �C(H�C8�C@H�Hǃ�H���Hǃ�Hǃ�Hǃ���L���H���ǃ�Hǃ����Hǃ�H���H��Hǃ�ǃ�Hǃ�HǃHǃH��[]A\A]�fD��H�����H�5� �y���f���H����H�5� �Y���f�UH��SH��8dH�%(H�D$(1���tc�|$H�=�H�t$H�t$H�T$ H�T$�D$��H�ËD$��u[�w���u4H��H�\$(dH3%(uQH��8[]�f���H���C���t�H�=� H��H��H�["��H���H�}���|$�O����f.���1��%���D��H�WH�w�?��ff.�f�USH��H��(dH�%(H�D$1�H���@���H���t��H���H���������t��	��҉D$�������H�߈T$H�t$�
f�L$�D$@�l$�D$�k���H���H��t0H��� ��H�VH�vH���B����H�5�dH���.���H���H��t,H��� tIH�VH�vH���	����H�5�dH�����H�@H�D$dH3%(uDH��([]�f.�H��H�����H��H�����f���1����H�������(����AUI��ATA�UH��S��H��(dH�%(H�D$1���~.Hc�H�
9^H�:^H�|���_�I��1�I����)�H��L�L$L��L�D$H�	^1��Q�H�5:� H����H�|$�����H��H��t���H�|$����H�|$���E1�H��t���H�|$�����A��jp���H�{ H�n]A�P�5�ZY����H�$H�L��H��H������H�5� H�<$�����u%H�T$dH3%(H��uUH��([]A\A]��H���H�5�� 1�1���1�H�x�H��H��H�5�\���H�sP�����p���AVAUE1�ATI��H��\USH��0dH�%(H�D$(1�H�L$H��H�D$(P1�L�L$(L�D$ ���^H�5� _L����H�|$ H��H��t��:�H�|$ �0�A��H�|$A�H��t���H�|$��A��H�|$�H��t����H�|$�����H�|$�����H��t����H�|$����H��[jp��PH�{ E��E���y�ZY��u$H�L��H�T$(dH3%(uH��0[]A\A]A^�H�sP���D���ff.�@��U1�H��1�SH����H�5� H��H���h�H��tYH�3H��� t\H�CH�p�H�����H�5$[H��� �H����H��H�����H�5[H����H��H��[]��H����H���ff.�ATUH��H��ZSH�� dH�%(H�D$1�L�d$L�D$L�����H�\$H������tXH�H�|$t`L����H�T$H�
�� uxH��H����H��H����H����H�L$dH3%(umH�� []A\ÐH�����H�|$H��u�H��1�1���H����H�|$t 1�1�1���H���k���H�JH�R�fD1�1�1�H���H���~����X����USH��H��H�t$H�5�� ��H�t$�H�1� H�����H�T$H��H���9�H��H��[]�ff.�@��H��� �����H�� �p�����SH�5� ����H����H�5 � H��H�����H��[���SH���H�t$H�|$H�\$dH�%(H��$�1���H���H�{ �pH�D$pH��H�5�XH�D$xH��� H�D$H�D$H�D$ H�D$(HDŽ$�H�D$`H�D$0�D$8H�D$H�D$PH��$�������H�D$H��H��$�H�G�H�=�7H�L$H��$�H��$��5��u!H�����tH��ʃ���,�H��s!�H��$�dH3%(uGH���[�@H�T$��u�H�����t�H��փ���t���H	�H��H�t$`���6�������UH�UW�����SH���dH�%(H��$�1�H��L�D$H�����H�|$H��t���H�|$����H��H�\$�V��H�{ �p��H���H��VH�D$H�D$pH�(�H�D$xH�܅ H�D$H�D$ H�D$(HDŽ$�H�D$`H�D$0�D$8H�D$H�D$PH��$��������H�$H��H��$�H��H�=9H�L$H��$�H��$��m���u)H�����t!H��ʃ���4�H��s)f�H��$�dH3%(uFH���[]�H�$��u�H�����t�H��փ���t���H	�H��H�t$`���g��B��f���ATUS����H���v��L��H��@�;H���-�H��H����L9�u�H��[]A\�D��ATUH��SH��tEH�I��@��tJH���tRH�H��L��H���8��H��������?H9�wI[H�D]A\��H���P�I��@��u�H�����H���u�H�����H���f.�[H��]A\�d��@��ATUH��SH��tEH�I��@��tJH���tRH�H��L��H�����H��������?H9�wI[H�D]A\��H�����I��@��u�H�����H���u�H������H���f.�[H��]A\����@��H���s�H�������u H�����tH��у����H��sH���f���H����H��H��H�� H����PH�
�Y���t���t
H���DH�
�YH�z� H��S�H�81�H���(����SH���tH�\� H9��t#H���{���H��H��t�Z��H��[�Q���H�� H�
�Y�H� SH�81�����f.���SH���uH��[�
��f.�����H��[����f�H�
H��� uUH����H9�~9H)�H��UH��H�SH��H��H�7H�=� �T�H�EH�H��[]�f�H)�H��f�H�JH9�~�H)�H�R�ff.�H��H�5u� ����tH���H�=�� H�5GR1�������SH������H�H�����tH�� H�H��[�H���H�H��[�ff.����H������H��� HE�H���ff.�@��H���S���H���tH�xH҃�H��H������H���#���Hc��H��H�D�f���H������Hc��H��H�D�f���H�����Hc��H��H�D�f���H������H���H������H�����H�x0H�����fD��H�����H�xHH+xH���r��f���H���c���H���H���S����S�F���H�PH��H�x0H��tH��� ��H�BH�H�����A��H�5� H���H��1��7��H����H�1�1�1����H���ǃ�H���Hǃ�H��t4���H���H������H�pH���H�x���H����[�DH�����G���ff.����USH���Q���H��H���H����Hǃ�Hǃ�H��Hǃ�H��[]���H������H���H��uH��ÐH���h���u�H�����t�H��у����H��r�@��H������H�����H���H��uH��ÐH������u�H�����t�H��у����H��r�@��H������H���C���1�H���H������H��H�5} �����tH���H�=W� H�5�N1�������H�������H���HE�H���ff.�@��H�����Hc@xH��H�D�D��H���s���H���H�������H���S���H�xHH���v��fD��H���3���H�x0H���V��fD��H������H�����H��Ð��H����H�����H��Ð��ATI��USH��H��dH�%(H�D$1����H�$H��A��u,I�����t#I�$�Ѓ���u�H��sjf.�H���8��H�4$H��� t<H�VHc�H9�u|H�vH�} �3����u[H�L$dH3%(H��uSH��[]A\�H��H��������u�H�����t�H�������t�%H	�I�$�t���H�uP��������H�����ff.����S����H�x H���j����t
��u1�[�D�[�H�sP�����fD��ATI��USH��H��dH�%(H�D$1��i���H�$H��A��u,I�����t#I�$�Ѓ���u�H��sjf.�H������H�4$H��� t<H�VHc�H9�u|H�vH�} �s����u[H�L$dH3%(H��uSH��[]A\�H��H��������u�H�����t�H�������t�%H	�I�$�t���H�uP��������H���L��ff.����ATI��UH��H�5|y S�f��H��H���[���H9�t?H�p H�{ H���V����ubH�EH��u@H�CH�EH��u"H�CH�EH�CH�EH�L��[]A\��H�������fDH�����H�CH�EH��t���1������H��~SH�H��tH���:��f.�ATI��UH��H��SH���;��H��L��H�EH���	��H�}[]A\���@��ATI��USH��H�� dH�%(H�D$1�H�l$�H��H�p��H�{�d���H�SH��tH��� uBH����L9�}?H���^��H�D$H��t3H�l$H�T$H��� t�H�PH�p��H�BL9�|���1�H�L$dH3%(u	H�� []A\����UH��H��H��SH�����H�}H��H��t�
��H�5� H��H�����H������H�H��t`H��� uOH����H9�~LH)�H��UH��H�40SH��H��H���T��H�;H�7�� u>H��H����[H)�]�a���H�PH9�H���H)�H�@��H�wH��[H)�]�&��fDAT�USH��H���H���H�{��tsH�CH� t3H�@�(H��D� H�C0�����H9��u�CHL9�u$[]A\Ð�hH����H�=H~ H�5�N1��2��H�=+~ H�5�N1����H�5&~ H��G�z���f.���H��H�5�u ���H�H�у�H��uMH�xuF��tNH�xH��t4�_���u0H�����t(H��у����H��r��H���H���fDH��H�D$����H�D$�ff.����H��t%�HGt
��@H������H���ff.�f���AUATUSH��H��H�t$�%���I���u
H�������H�|$����H�t$H��� �H��H�n��I�D$H��tLH��� ��H�PI�T$ �����H9PHNPA�T$(I�|$ �=������I�D$����IH��~1�����I�l$ I�|$ H9�HO�A�\$(�����������1�H��[]A\A]�H��H��I�D$ ������H��Ѓ����H������@H�D$������H��������H�����������%H	�H�����fDH�^H�n���I�D$H�0�� uhH����A�D$(M�l$L��H)��,���H��H��L�����H���[]A\A]�fDA�T$(I�t$ I�|$�������f.�H�p�I�t$P���n��ff.���AUH�53s I��ATUSH�����H�XH��H��t^L�%�u H��I�4$�S��H�EI�4$H���?����u!H�����tH��Ѓ���4�H��s)H��H��[]A\A]�1�1����L�%�u H���A��u�I�����t�I�E������t�%H	�H��fDUH��1�SH��H���m��H�EH�EH�PH� tH�PH�U8�����H��H9�HOډ]@H��[]�/��ff.�@H�GH��t^�W@H9�u�DUH��SH��H��H�wH��H����H�CH� t0H�@�����HCH9�H�C8HN��s@H��[]�fD�3���H����f.���USH��H���n�H��H�����H�����H��Hc��K���H��H��[]ÐH�	��SH���w���u#H�����tH��у���~n��H��H���H�5*y H���1��S��� u[�@H���H�5�x ������t�H���H�5�x 1�1�[���f��H��r����ATUS��~0H��H�5RBI��H�;�=��L��H�މ�H��[]A\���H��s H�5�HH�81����ff.��PXH�5B1�H��H�=x ���D��AUATI��USH���*��@ujL��H������H�����H�H��� t?H�PL�h1�L�����H��tL)�H��H�����H���H��L��[]A\A]�DH��L�h����V���fD��AUATI��USH�����@ujL��H���J��H�����H�H��� t?H�PL�h1�L�����H��tL)�H��H���r��H���H��L��[]A\A]�DH��L�h�������fD��UH��SH�����@u'H��H������H��������H���H��H��[]��}���ff.�f�SH�����H���?��H��E1�1�1�H��[���ff.��PXH�5^@H��H��q H�81��2��f�ATE1�USH��H�� dH�%(H�D$1�H�l$�~H��H�x1���L�L)��`��H����H���O��H�D$H����H�SH�:�� ��H����I��H�l$H�T$H��� uaH��H�p��H�{���H�CH��� �u���H�PH�x1�L)�L�����H���x���H�L$dH3%(u=H�� []A\�fDH�PH�p�fDL�b�t���H�=8u H�5D?1�����=��ff.�f�USH��H��H������H�5u Hǃ�Hǃ�H��Hǃ������uH��[]��H�5�t H��H��1�[1�]���ff.�@��S���H���H���g���H��[�f���H��H�5!l �l���u�H���DH���0����H���fD��ATUSH��H��H�dH�%(H�D$1�H�������H�H��H���� tQH�GH�kH)�H=�?~T�C@@H����H��H�H�S8H�D$dH3%(��H��[]A\�fDH��H�k��H)�H=�?�H����%I��I�J�t%����H����@AN�H�SH�k�C@H�
�� H���r���H�R�m�����������H�sH���?�H�{H�kp�D$�U��H��m H�{H�0�R��H�s@��uHH�����t?H��Ѓ�����@��u(H�����tH�E������t%H	�H�fDH�=�m H�T$���H�CH�߾@�����|$����������f�H���������f.�H�{�-�����H���#����S���fD�@H��H)�H�������5����H���Q�����������AWAVAUATU��SH��H��HdH�%(H�D$81�H�|$ H�D$�L$(H�D$,���H�{�D$4u	H���)H�{��H�SH��� ��H�BH�C �����H9BHNBH�T$�S@�C(�����H�CL�d$ A��H�$�YD���`L�{pM���SH�5�q L���s��H���H���$��H��H���	��H��� H��L�����L��H�z��L��H�=������H��A�Ń��uE��t�C@��tH�H�C�S(��v`���`���H�s H�<$���N���fDH�JH��H�K �������S@H��:�C(H�C �������H��������f���uK�|$0��uqH�D$8dH3%(ufH��H[]A\A]A^A_�H�T$H�4$�G��H�T$H�4$�������H���H�s H�{��H�D$H�D$H�D$�H�sPD�������>������f�SH��H���_fD������tCH�D$H��� H�D$��H�H����H�D$H��� ufH�t$H���H���`���H�CH��p�ugH���z��H�D$H�D$H��tJH�D$H��� H�D$�t���H�x���p����H�D$H�p�DH�P�t�����t
H�CH��[�H�=�n H�5�81�茾��ff.��USH��H��H��uH�����H��t�H�{u����H��1�1�[]�S���H�����H��H��tH���H���H�����@��u)H�����t H�E�ƒ����H��r��H�EH��H��H��[]�I��f�H����H��1�1�[]�ɾ��f�H���[]�@UH��SH��H��xq�t@H�H��H�G��u%H9��#DH9�}H�����H�H�C��t�H��tH9�HO�H��[]Á�H�����u�H��H�D$�x�H�D$��H��h H��H�5R7H�81�����fDAUI��ATUH��SH��H�_H� uCH��M�eI���H�+H��I�L���b���H��H)�H��H9�$H��H��[]A\A]�fDH�[�f.�I���L��H���޽��Hc�H���|H�H��HO�H��[H��]A\A]�DH��L��H��H����H��HO��ff.�USH��H�����H��tM�xH��H������H��H��uH��H��[]��H���H���H����H��H��[]�H��1�1�[]�Ѽ�����H�����H���v���H��tH� tH�@�H�%�H��H����H����f���SH��������u�DH���о��H�����H��u�[�H��[�����S1�H��H�=�;��������u!H�=�j H��t%����H��1�1�H��[��H��[�w����H�=55�	����H��H�mj ���H����H��tH����S���ATI��U��H��SH��dH�%(H�D$1������H��L��H��H��31��>���H�<$H��tD@��u.�I���Hc�H��x@H���	���H�\$dH3%(u#H��[]A\������f�H��������1���H�re H��H�524H�81����fDATUSH�H��t� H���H���H�{u�t�[]A\��H�CH�PH� uGH���L���1��DH��H9C~>�<
Hc�t�H���-��[L��H��H��]A\�+�H�PH���L����@H�����L��H��H�����H�{t�!�H�����H�{u�t��K����H�CH�PH� �Z���H�P�Q���f�AWAVAUATI��U��H��SH��HdH�%(H�D$81���H��H����@�D$���$H��c H�H�D$(H�D$(I�����H����H�D$(H��� H�D$(tUH�x����uVH�D$(H��� �H�D$(H�@H�$H�D$(H��� H�D$(�]L� �D$I��A���.������t�H��A�����H�T2�D$H�$L�{M9��D@H���H���L�{M9��+�t�M��~���L��H���o���H�L$8dH3%(�IH��H[]A\A]A^A_�@L�l$(��L�D$0L��L��H��01��8���H�|$0H�D$(H����H���"@���9H�I��M����H�D$(H�������M����L��H���^���H����|$~L9�|���H�{��DL��H�����H��H����H���H���H���r��H��H������3f�L�KI� �/M�IM���M9�~/��PH������L�KI� ��I��L��L)�I��T$��tdL�{M��H�$@��M9��1��@ �@�l$�>L��L��L�L$L)�H���g���L�L$H��H���>M�wM9��n����T$��u��H�T$(H��� �_H��H����H9$�v���L9��m���H��` H�5�/H�81�艵��f�H�����H��� uH����„���������I�������L�t$(I�FH�$��fDH�x���fDL����H�|$0H���t���@���������I�����H��H������I�������L��L��L�L$L)�H���)���L�L$H��H���2H��L)�I�I��tYH�4$L��H���*�����tFL�MI���	���f�M�I�"����H�$H9B����H�B���f�M9��D$�|$~�|$tM9�|�uL��H������I�ƃ��L��H������H��H��t�D$��uoH��H���T���@������/���fDL�`�D$�����H������H�|$(茴��H��t(H�D$(H�|$0�|����H������M���6���H��^ H�|$(H�H�|$0H�D$(�E���1�1��W�������m���ff.�f���AUA��ATI��UH��SH������H����H��H��轸��H��L��D������H��u�H��H��[]A\A]�ff.���ATA��UH��SH���*�����u�,@H���(���H��H��D�����H��u�H��[]A\�@H��[]A\��ff.����AT1�I��UH��S��H�=o3�Ҹ��轸����u)H�=�a H��t5����H���L��[H��]A\�$���@L��H���[]A\�?����H�=v,�	���H��H��a �ff.���H����H��tH��H�D$耱��H�D$H���fD��S����H��u�K�H��H���M���H��[��ATUSH��H�� H�WdH�%(H�D$1�H���HchH��u(H9�|�*�H9k}H����H��t�H�SH����H���tH����h�������H�CH���H�0�� tRH�xH�pH��J���H��Hc���H��tYH��H���.��H��H�L$dH3%(H���]H�� []A\�H��H�x��H�����uH�����@��f�L��M����H�kH�E ��H��H�SH�L$M�D$
H���A�H�t$H�l$H�L�d$訶��H�������H�t$H��H)�謼��H���H���H�����H�t$H��L)�����H���H��H��耰��@�����H���������H�E�ƒ���~3��H�E����H�m�<�����
�W���I��H�������H���������r���f���H�����H��H��������SH��胵����u�-DH��耲��H���H��H���p���H��u�[��H��[�W����H�����H���;���H��tH����[�ff.���AVAUI��H�5^V ATI��U��H��SH�� dH�%(H�D$1�H�D$耰��H�L$L���H��H��(L�D$1�� ���H�{ �pH��'��足������H�D$H��
H��H���������rH�CH� �H�@�8�T�x��J�P���g�P����x�� �������P����ǃ��HL�k�
L��H����@	������@����@�������?H�CH��tH��� �T��������SH�t$H�����H�57] H�|$�E�������H�L$dH3%(L����H�� []A\A]A^�f�H����������҃�	�������f.��H���C�����H���S�H�{H� ��H�H)�H��I��蠲��H����u5H�����t-H��у����H��rD��H�f.�I�vL��������������H���������H����H�{H� �MH�H)�H��H������H����u0H�����t(H��у����H��r��H�f.�H�uL���4���5�����H���������H�CH� ��H�@D�0H��I��L����������L��L����������H���H�5:[ 1�1�虬��1�H����L��H��H�5�$誯�����DH�x����������1�1�H�������f.�H���Y����H���)����H�����H�5�Z H�{H��$����H�=�Z H�5�$�]���H�=nZ H�5�+1��H���H�sP��荺��H�=NZ H�5�+1��(���H�=9Z H�5�+1�����H�=$Z H�5�$1�����)���f�ATI��UH��SH���@tNH��� t8H���H�=�T H��L������H�H��L��H���H��H�������H��[]A\�p��+���f���ATUSH�����H���u
H�������H������H��L���M��t*�/���I9�t H��L����{���H��L��H���-���H��H��� t2H�SH�sH������H��� u5H��
[]��>A\H���f.�H��H�sH�������H��� t�H�C[]A\H�D��������G����M���ff.�f���AUI��ATA��H��UH��SH��dH�%(H�D$1����D��H��L��H��H��!1��'���H�<$H��t]�裫��H�<$蚯������uIH�����H���H�5NX �I�����uEH�T$dH3%(H��uKH��[]A\A]���1�H�5:"H���
���H���H�5�W 1�1��9�����Ҩ��f���SH��H��dH�%(H�D$1��@tg�1�H�5�!H����H��H�ߋ���$�C0�D$���H��H������H�L$dH3%(uH��[�������<���ff.����SH�wH�H��� u<H��H����H�߹��H�߹1�H�5+!��H��[�%���DH�VH�v��fD��ATI��U��H��SH��dH�%(H�D$1������H��L��H��H��1��>���H�<$H��tD�躩��H�<$豭������u0H��裱��H�\$dH3%(u+H��[]A\�f.��1�H�5j H���:���#���UH��SH��H�t$H��tLH�|$��谧��H�t$H���t�� uOH����H��H���G��� uSH����H��u��D�1�H�5���H��[]�fDH�VH�v��H����H��[]��H�VH�����D��UH��SH��H����u!H�����tH��Ѓ���-�H��s"H���"��H��1�H������H��H��[]�@��u�H�����t�H�E������t�%H	�H��ff.���AUI��ATA��H��USH��H��(dH�%(H�D$1����H�L$L��D��H��L�D$H��1��@�����u	H�����uZH�|$1�H��t�諧��H�|$衫����H�t$H���2���H��芯��H�L$dH3%(u`H��([]A\A]��H��Ѓ����H��r�H�D$�u�H������y���H��������h���%H	�H��X����դ��D��SH�wH�H��� u$H��H����H�߹��H��[�ۮ��H�VH�v��ff.���S�f���1�H�5�H��H���m�H��[键��@��AWAVAUI��ATA�����UH��SH�����H��I��t�L���W���L���O���A��E1�H��t�H���6���H���.���A��L�s D��D��k@L���V���+k@Hk���u9L�=c$1�L��薢��H���^��D��D��L���k@����+k@Hk���tх�uH���[]A\A]A^A_�H�sP��莲��ff.�SH��H��H�t$H��tMH�|$��H�t$H��� t&H�VH��~MH�v�H���,�H��[�fDH����t7H���ؐ�1�H�5*���H��[���C(��u����K(��t�����USH��H��H�t$���H�t$H���u	H�����u[�E��H��uH��H��[]�f�H�|$����H�t$H��� ��H�VH�vH��赳��H��H��[]�H��Ѓ����H��r�@��u�H������z���H��������i���%H	�H��Y���@H������E�S���H���n���H��H��[]�@H��H�����c�����ATUSH��I��H��H�t$���H�t$H��A��u
H��������E�'H���H�|$����H�t$H��� �:H��H����H��觲��1�1��������H�������H�0�������H��H�҃�M��������H�������H��у���tw��H	�H�0�i�H��Ѓ����H���+���@@������H���������H������������%H	�H�����H��蘪��H��[]A\��H�����H���x����Et�H��H�$�Ʋ��H�$H��[]A\�f�H�VH�v������USH��H�����H��H���t�������H��H��[]�fD蓟�����H��H��[]���ATI��U��H��SH�� dH�%(H�D$1������H�L$L��H��L�D$H��1�����H�|$@���h蓥��Hc�H����H�|$H��uH����1�1��
���H���Of���V���L�d$I��t�A��u%I�����tI�$�ƒ����j��I�$H����H�H�S�u&H��t�(DH�{uH�����H��t�H�SH���eH��H���"���H���H���H��H�����I��tPH�u�� ��H�uL��藞��H�U�� ��H��H�u��I�|$I�$ tI�|$覠��L��@��uJH�����tAH�E�ƒ�������H�E�&f�軝�����fD1�L��L������H�L$dH3%(H��uhH�� []A\��A�����DH�����5���@H�UH�u�D����H����������@�H��r��V����S���H��G H��H�5TH�81�������t(I��t
1�L���d���H�EG H�5�H�81��ܛ��H���$����f���UH��SH�����H��@��umH�����tdH�E�ƒ���uV�� tAH�}~JH�UH�{�*H��uR�H���X��H�{H�SH� tPH�wH�~�NDH�U��u�DH���ux�;�����H�{H��t�H�H�S�� usH����H9�t�H�wH���J���H�CH� uEH��@�(�C@H�C��t��H�C8�C@H���H���[]��3�������H�@�f�H9W�?����!������ATH��USH��H�t$��l����H�|$H���R���H���H�����M���H9���H�|$H���蓚��H�|$H��H���C���H�(H�D$�� ��H�sH�hL�`H����H��H�����H�sH�SH� ��H��H�<.����H�{H� ��H��H��L������C@Hk��t��H9�HG�HS8)ЉC@H��H���[]A\�f.�H�D$H�(�� �M���H�sH��L�`��H���J���H�H�S�� uH����H9��N����)���f�H9V����H�v�8���D�C���H��[]A\�f.�H��0������ATUS��~0H��H�5�I��H�;轛��L��H�މ�H��[]A\�T���H�%D H�5VH�81�蜘��ff.����USH��H��dH�%(H�D$1�辿��H���u>H�����t5H��ƒ���u(�� tH�{~H�S�� H�S��u�DH���u8����H�t$�H��D$��H��H�L$dH3%(uH��[]��S���������ff.����AUH�=pATUSH�����H��H��G H����H�<H H��B H�5H��H��s���H�5<H��H��H�H �Z���H��G H�5&H��H��G �=���H��G H�5H��H��G � ���H��G H�5�H��H��G ����H��G H�5�H��H�{G ���H��G H�5�H��H�NG �ɝ��H�jG H�5�H��H�)G 謝��1�H�3���H��H�5�H�G ��������H���H��H�5��қ���H�V���H��H�5�跛�������H�����H��H�5~蜛���H�����H��H�5i聛��1�H����H��H�5_�i����H�=X����H�5WH��H�������H�=g���H�5/H��H�����L�-�@ H�5#H��I�U詜��H��H������1�H��H�2���H�5�6���H��H�'��H�5�����1�H��H�����H�5�����1�H��H�7���H�5����1�H��H�����H�5��ә��H��1�H�����H�5�軙��1�H��H�����H�5�裙��1�H��H�G���H�5�苙��1�H��H�/���H�5��s���1�H��H�'���H�5}�[���1�H��H����H�5m�C���1�H��H�����H�5\�+���1�H��H�����H�5J����1�H��H�g���H�56���1�H��H���H�5$���1�H��H�'��H�5�˘��1�H��H�����H�5	賘���H�5H�������H�5�H������H�5�H������H�5�H���Ӛ��H��H�5�H��衚�������H�ŵ��H�5�H��I���S��������H�����H��H�5��8���H�5Q���L��艙�������H����L��H�5u����H���L��H�5e�ӗ�������H�w�L��H�57踗���H���L��H�5?蝗�������H�Q�L��H�5'肗���H���L��H�5�g����H�K���L��H�5��L���H��H�5�H��芙���H����H�5�H��H���<����H����H��H�5��!���H�5����H���r��������H�f���H��H�5^�ז���H����H��H�5�輖���H���H��H�5j衖���H�e�H��H�5(膖���H����H��H�5K�k���1�H����H��H�58�S����H���H��H�5�
�8����H�5H��蔘���H�5H��耘���H�5
H���l���H�����H�5H���V����H�5H���B����H�5�
H���.����H�5�
H�������	H�5�
H�������H�5�
H�����H�5�
H���ޗ���H�5�
H���ʗ���H�5�
H��趗���H�5�
H��袗���H�5�
H��莗���H�5�
H���z����	H�5�
H���f���H�?@ H���v	H��@ H� @ H���?	H�x@ H�@ H���	H�Y@ H��? H����H�:@ H��? H����H�@ H��? H���cH��? H��? H���,H��? H�f? H����I�UH��H�5
H��? �{���H�@ H�5
H��I���b���1ɺH�5�H��H�r? ���H�=f? 1�H�e���H�5��ٓ��H�J? L��H�5�����H�4? L��H�5�H�? ���H�? L��H�5�H��> �ٕ��L��H��H�5vH��> ���L��H��H�5hI��諕��H��H�!: H��H�0薔�������H�
���L��H�5@�K���L�����1�L��H�����H�5%����1�L��H�?���H�5��1�L��H�G���H�5��ے��1�L��H�����H�5��Ò��1�L��H�W���H�5�諒��1�L��H�����H�5�蓒��1�L��H�'���H�5��{���1�H��H���H�5��c���H��H���H�5��H���L��H����H�5��-���L��H���H�5r����L��H�s��H�5b���1�L��H����H�5	�ߑ��1�L��H�#���H�5	�Ǒ��1�L��H�K���H�5�译��1�H��H��H�5藑��1�H��H�۴��H�5�
����1�L��H�����H�5G	�g���L��H�8���H�5�
�L���1�H��H�`���H�5�
�4���1�L��H�(���H�5�
����1�H��H�0���H�5�
����1�L��H�����H�5s
��������L��H�M�H�5]
��L��H�5�����B���L�����H�#���H�5.觐��L�����H�h�H�51茐��L��H�]�H�5	�q���L��H�2�H�5�	�V���H��6 L��H�5��;���H��6 L�����H�5�	� ���H��6 L�����H�5�	����H�N6 L�����H�5�	��������H��H����H�5[	���H��H�5�����@���H�����H�q��H�5,襏��1�H��H�����H�55	荏��1�H��H���H�5$	�u���H�����H�&��H�5
�Z���H�����H�+�H�5��?���1�H��H�S��H�5	�'���1�H��H����H�5�����1�H��H����H�5����1�H��H����H�5��ߎ��1�H��H����H�5��ǎ��1�H��H����H�5w诎��1�H��H����H�5i藎��H��H�H�H�5T�|���H��H���H�5@�a���H�����H����H�5/�F���H�����H����H�5�+���H�����H����H�5����H�����H����H�5����H�����H����H�5��ڍ�������H��H����H�5�迍��H�ߺH�5�����H�ߺH�5�����H�ߺH�5���H�ߺH�5��ߏ��H�ߺH�5��ˏ��H�ߺH�5v跏��H�ߺ
H�5k裏��H�ߺH�5^菏��H�ߺH�5S�{���H�ߺH�5I�g���H�ߺ	H�5>�S���H�ߺH�53�?���H�ߺH�5*�+���H�ߺH�5����H�ߺH�5����H��H�ߺ�[H�5]A\A]���D�
H�=v迎��H��7 ���H�=蟎��H�P7 ����H�=����H�87 ����H�=0�_���H� 7 ����H�=��?���H�7 �I����H�=d����H��6 �����H�=W���H��6 �����H�=2�ߍ��H��6 ����H�=迍��H��6 �m�����H��H���unknown zlib error %d: %s011.2.11to_hashHash12path04, input=>02zlib(finalizer): %s
closed gzip streamstream is not readyfooter is not foundrbheader is already writtenend of file reachedunexpected end of filenegative length %ld giveneach_byte

rs modifiedeach_line1:not in gzip formatunknown flags 0x%02xwbZlib@dictionariesStreamEndNeedDictDataErrorStreamErrorMemErrorBufErrorVersionErrorzlib_versionadler32adler32_combinecrc32crc32_combinecrc_table0.6.0ZLIB_VERSIONZStreamavail_outavail_out=avail_intotal_intotal_outdata_typeadlerfinished?stream_end?closed?ended?closeendresetfinishflush_next_inflush_next_outBINARYASCIITEXTDeflatedeflateinitializeinitialize_copy<<flushparamsset_dictionaryInflateinflateadd_dictionarysyncsync_point?NO_COMPRESSIONBEST_SPEEDBEST_COMPRESSIONDEFAULT_COMPRESSIONFILTEREDHUFFMAN_ONLYRLEFIXEDDEFAULT_STRATEGYMAX_WBITSDEF_MEM_LEVELMAX_MEM_LEVELNO_FLUSHSYNC_FLUSHFULL_FLUSHFINISHwritereadreadpartialseek@inputGzipFileinspectNoFooterCRCErrorLengthErrorGzipWriterGzipReaderwrapto_iocrcmtimelevelos_codeorig_namecommentlinenolineno=mtime=orig_name=comment=eofeof?sync=postellopenputcprintfprintputsrewindunusedreadcharreadbyteeach_charbytesungetcungetbytegetsreadlineeachreadlinesOS_CODEOS_MSDOSOS_AMIGAOS_VMSOS_UNIXOS_ATARIOS_OS2OS_MACOSOS_TOPS20OS_WIN32OS_VMCMSOS_ZSYSTEMOS_CPMOS_QDOSOS_RISCOSOS_UNKNOWNgzfilezstreamP���^���l���z�������������������9���attempt to close uninitialized zstream; ignored.attempt to close unfinished zstream; reset forced.the stream state was inconsistent.the stream was freed prematurely.Zlib::GzipWriter object must be closed explicitly.invalid compressed data -- crc errorinvalid compressed data -- length errorwrong number of arguments (0 for 1)Zlib::GzipReader#bytes is deprecated; use #each_byte insteadZlib::GzipReader#lines is deprecated; use #each_line insteadunsupported compression method %dmulti-part gzip file is not supportedencrypted gzip file is not supporteddeflateParams() returned Z_BUF_ERROR;���u���}��@h���X؆���������������8����h�������(��H����\���xx���������8����x�������0Ȋ��H����|���������X���,(���Dx���d����������ؑ���(���	ؒ��D	h���d	����x	ȓ���	H����	���	�����	h���,
����@
����T
x����
�����
�����
����
Ț��(���x؜������H���X���h���(����D(���l�����H������
����8
أ��T
8���t
�����
ؤ���
X����
�����
ȥ������0(���HH���`h���x����������Ȧ��������������H���8����T���p(����X��������������ȩ��������(���4H���LX��������������X�������4x���h�����X��������������(����xȳ���(����������8����\��������������8�������H����dط������������������$H���X����������h������D����H����������H��4h��P(���(������8��H����(���X���������� ���88��Xh��t�������x��$h��`���h���������X��<h��x������������x��(���l8�������8�h�D��x��8��zRx�$�p��FJw�?:*3$"Dpx���H\���lB�B�H �G(�D0�u
(D BBBJA(D BBB�,����(���
�$����0��� HW�8���/HfP���)H],h���NHr
FHL����`����E�Q|����WE�M�܁��:DO f0����E�D�D h
DAFyDA�L���9E�s,p���*B�A�A ��
ABE4p��� HP0Lx����L�A�A ��
ABGh������� HS����SH E
Ax�`���2F�E�I �B(�D0�A8�DP�
8C0A(B BBBEP
8D0A(B BBBC�8F0A(B BBB0$����A�H܆��PA�C
A8h���B�A�D �H
ABNN
ABG��
@���'B�D�D ��
ABGD
ABAAB�؈��AK�a
DP�(����E�K�D0�
AAAH�����A�G {Ah����0|���0 �4����E�u
Ft
A(������B�I�I ��AB����8����jB�J�D �I(�D0F(A ABB04���D@���(XL����A�D�DPk
AAJ�����(�����hA�A�G@
AAKD�<����F�E�G �D(�FP�X\`FXAPM
(A ABBHX ����QF�B�E �K(�A0�D`YhFpRhH`�hHpPhA`_
0A(A BBBA(|�����E�H�D z
DAH0�,���B�A�K �D@�
 AABB$����QE�A�G0~DA@���<���,8���0E�j$HL����E�G�>
AE,p�����E�M�G�q
AAD(�T���KF�A�A �AB4�x����F�A�D �}
FBHyDB4���F�A�D �}
FBHyDB<H���HHu
CX|���XGc
Fcx����fE�u
F����.E�L
OI(� ���r_�G�G ^AAC���t���/DU
A�����4E�_
DK	����!HX4	����(H_L	ؗ��HPd	��HP|	��HP�	�HP�	����HM�	���HQ�	���HP�	����E��
F$
��ME�A�D @AA<
���XHV
BX
L���XHV
Bt
����HR�
����/DU
A�
����!HX�
�HM�
̙��HP�
ԙ��HMܙ��HM ��HV8��HV0P�F�D�A �G0�
 AABD ���:E�]
FF
A0���F�D�A �G0�
 AABD,�ț���F�D�K �X
ABH(H���Yb�D�G �_�A�B�08|����B�D�A �G@�
 AABAl���@A�J�D 8�(����e�H�J [D�D�n ��HA�D�,������B�F�A �R
ABB�����H q
G
����3dNL,
����F�B�A �A(�G@�
(A ABBA�
(F ABBG8|
x����F�L�A �A(�D0c
(D ABBD$�
���QA�F�G |AA0�
D���vY�D�G {AAG��H ��$����?E�A�G lDA <�����Q�R
Ej
�N(`4���TF�A�A �l
ABE�h���AAM8�l����F�B�D �A(�D0X
(D ABBF8������F�B�D �A(�D0X
(D ABBF( ���CE�D�D k
DAAL8���$A�^hL���AAK0�P���#B�D�A �G@�
 AABG0�L���qA�A�G E
AAHKFC�����E�X����:HZ
FQ0(����YF�A�A �G0~
 AABGL\��7B�B�B �B(�A0�C8�G��
8A0A(B BBBA �ب���A�G �
AAH������A�A�G i
EAHZ
GANL
EANDFA(H����A�D�D0P
AAALH�����B�E�A �D(�D0@
(D ABBGy
(A DBBF<�<���oA�A�G i
DAIZ
DAADEA�l���NHx
H�����9E�j
AD ����mE�v
ED
L8���HO
A0T����F�D�F �D0g
 AABA8������B�A�A �a
ABHD
JBHL�`����B�B�B �B(�D0�F8�D�C
8A0A(B BBBE4����UF�E�D �D(�D0t(D ABB4L��TF�D�D �r
ABEDAB4�����F�F�D �q
DBII
ABL�h���*H a�����(E�b0�����>B�A�A �G@�
 AABD$����HI<����IE�r
ID\ص��%HW
A@x���F�B�L �D(�F0�DP�
0A(A BBBJ,�X���gB�D�D �N
ABE8������F�A�A ��
AEO`
ABM8(L����F�E�G �D(�D@�
(A ABBH d����E�G s
AH�|���ZE�A
J0������F�D�F �D0m
 AABK4�8����A�D�D0n
AAGV
AAH(�����E�D�G 
DAD8@���F�E�G �A(�GP�
(A ABBH|��BE�k
H����,E�bH�0����F�B�B �E(�G0�D8�D@�
8F0A(B BBBA(Կ���A�G @
AGg
AH@,H���E�A�G0t
DAJo
DADn
DAE@p����F�A�A �J0J
 AABHj
 AABJ0����ME�A�G _
DAGODA0�����F�D�F �D@�
 AABH(��/E�D�D �
FAD@H���F�D�A �D0�
 FABKq
 AABK(����TF�A�A �l
ABE(�����E�A�G0�
AAD8�P��F�I�A �A(�D0�
(I HBBJGNU��<�< � ���>�Z`=��`>[P=�����		p	�+
��� � ���o`8�
�	� � ��	���o���o�o����o(� 0,@,P,`,p,�,�,�,�,�,�,�,�,-- -0-@-P-`-p-�-�-�-�-�-�-�-�-.. .0.@.P.`.p.�.�.�.�.�.�.�.�.// /0/@/P/`/p/�/�/�/�/�/�/�/�/00 000@0P0`0p0�0�0�0�0�0�0�0�011 101@1P1`1p1�1�1�1�1�1�1�1�122 202@2P2`2p2�2�2�2�2�2�2�2�233 303@3P3`3p3�3�3�3�3�3�3�3�344GA$3a1�+ͭGA$3p1067�<��GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�<<=GA+GLIBCXX_ASSERTIONSzlib.so-2.2.10-35.el8.x86_64.debug�7zXZ�ִF!t/��)?	3]?�E�h=��ڊ�2N���61:Q���;��]t+/���Ao�Z����<q���߷W�V���{Sz��Ɉ\]��s�+C�~���y~{��>o�*����)�H�θwS0��[���>��G�d{=,�/��Z.x1^����1Pʤ�\�x�
��Yl�L6�ۊ#��c7ô
��ߚ���o I�i9a�u#;c^6�ͻMV�n��k�y�)y�\�9���ЂfI�q�5�}�ަM��-�El^|_J�
��hI����,�"!��xY#�y������u�o=fS�q]+�5oWn5[y�kˆ/��n's�L��M���X海�Y�������v��l�Ŝ���Ƴ�{�b5�,&"�`w�#����>���M꿴ZZx��A
~�rD??�Z��45cmڢV�u6�E�,�\dz�-���Y|}��"Y�
Qr�sV��x	X��کV�	�B�
�����P,Vr�/;�ٜ#�:��);����AIyb�Q�P��,E�$j�/|qռ9mmS�D�=�lr�9���2�<���zB��
��E$�`�ô�Q�ӽc.���*�j���_x�IP1��ރpfcH1��>oP����wn���t������<1����m%���#^"�Æ�1C>8�4��e�8̘����/;m�	�vP���Z�/<e�D�2���?K\F�	I��g��X���+|:I�'P�][��E�{�����;�	�t��[�-�v�!MR(YĬ��獱"�1'w`hʱ&Z��SM��$���.��cR!-�>^��3� /���r��i��L��2�|W���G���W�-���� u�o�s��L�RƏW	�g}�Z+f>¬%����
3u~�
���T8��cauy��%�պ�V����d��[��n�z�G�<!l���p��48F�ov��͓I(���r�Y�*=�V3�1U�#��xuۭ�ʾ�+�e��&WYfR"�z�G��mC�J?17J"w���j���Px���8q�vE
O����Z�8��2���~�ޖ>'o��b�[(a�9|����’��+ֲ�|bN�R`�|s '����.�?�x�?ZK��`Hg����������ƛCA8�2.��D|�GЙ��{X�X`�.�*g�Hɛ���7�1&`C}�!8�OD���Ϩ�-����}(�y�ַ�蛻��~����N
Fpx��c�Yʽ��m�Z�
a��u��|Y�I������
�K�G���Y��NQ���"�����q���몝A�.��9���f'��o��I�M8�a*���!
���KCx����hC�dA���4٢m�%7�J޳�ቦ����o��8�#�	gv���{/�'�AU���t-����C��5�;�gH��~�����|%��1���{p�ܫ���Or��$;��
���FQPQ���ް?@�@o9:=�k��2�v���*;��㨘`���B1%�>�ǹܓ��b�bK�]r�O�~"��HeB��eb(�讒�x���G�
?z\;S/�V����j��@�
�k}�06��QЧ�m�rA"[�>����B�2��ӯ��\)��>:�?n]81��).s��yv�9���ڣ �IR����Y2��)��\~d�Q�#���2�63Y�锼�߅����T����;;�K֔�{m&i%I_��K:F� �<#�u>��LRO^��5�����՝T�G-(8U��Xy�ĥ�ɖ,�p��y
�XJ�"h/Rw���ř0�'}�Y��`�펮な@��D18�o@�F s��Ug�k�,�T
�L����F݃�����8Қ��ʳ�f�,'/��T{(RX�����R����$��®,C�-�$'i�<�^Ɖ�fw>t�f�2����1�0~��QF�z�@�8�?��c�{؁
��ɨ�z�q�5.+XH�S��lGYo@���=5[W�f'����Ƽ�y���ޘ�?��N�꼵�O�5<R{Mb��PϷ�.e0��`��1��9�Ԥ��ٝh�N�6��~j�E�;=�=[�rrݮ�٢*Eb֤C\��~�д���gJ����+�sy�
C��=X�	"fV�L͇��_�שV�e
���l���_^��̏\�5*0V�pS=�DCo1'>D�b�gp6���~744�.u�)?�X쐯���
���Ȩ��C�� L|�3���LCݒ�Y�f��?k��-��£	<YlHԉ�ϭ[���0�޴����&�'*_��w��ϲ��<?ǰ�{ ��aK��j�`�\u���Ll�;�B5�Dз9F�D���z1��1%ڡ���ujxD�'��R��� ��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���088�	8���o��8E���opT���^B  �h�+�+c , ,n 4 4�w<<�q}����
�ЭЭ��h�h���h�h� ����� �� ��� �� �  � �(� (�0�X� X���� ��� ���`�H
X�(��t	��+lib64/ruby/2.2.0/x86_64-linux/socket.so000075500000551150150402105730013041 0ustar00ELF>�z@��@8	@�� ��"�"
� ��"�"  888$$���  S�td���  P�td�m�m�m

Q�tdR�td��"�"��GNU�Z��AV��c��u��s�i2a�
� � ��P�
�JP��H�H���1�@%D!GAD(`� $�"
�H��@@�D "� �WH
 C$�   �`��8��������������������������������

#$&'(*+-./0123578:6�'H�As!�k����>3`<�����3�`���7u+/Ze�/y�蘵~KU��K%�
�o�xvL���qzN����:|�ys>xD(h�Yi��jd�u�� ����B����62��W��R]��Ų9T��~CE��ȷ�0����*�����F�{]�FK�N����w��bQ���,��?�.�a�	b��-q)��[)uz�t;�ӊk4@k�=�@��ˌ�h�j�qXG��n`O��	%o��?f$��
��|��4�cu����UNn��H�����v2���0�tD}�p%R�%�q��@m�l�P��i���#&p%�L���V�
L�if\����y׫/��V�HL2M�c�'x���毷�NL4�\��
��U<H��Qvk]\��j�g�-��E��a�PNJK��a���g�!93��1��ց��d\�L������2�R��B�aSFjh'�i�D�n�yF�,K�U���1�
:
Z
f	���]2
� �[gh

|��	��JOW�
&t	����	��F�HdU�v	M�	����@	�H���
	���	f���+���R	q�������� ��m�
=�v
9
���C��e�Q[�}�%}��b
��n�	�
��
��K
`�0
������
�y"�&�
�w��l]��k{���:@p��	 
i��
, ��oK
���	�F"�#���T��MTV����8��QJ�d���"���P�Qp��kkp�Qk��"��sX���Q�@�9�	�,�i
�m�5�<�p�>]��"���V��N�����"�0,_�
�,.yȹ"�@���
0�:0w	�0�h��<���Q5�"_s7Pr>S�"\
��h���4��"���0�
�~�p
��z@s&
�Tl?��"'��"pU���&N�����VM@w�)�X� ��%��zЉ��	�r"H
�#�P~�Z�"�ع"E��N�"P �l*p�Q9��\f�"������'�v[W
�le����
'	�Ib��,.��"���Dc��^��"���i���Q���Q�#Y�t&�
 r&�Pi�7�0�Qr�*��RU�Q�	�n�yu�}?�ps"8`(9�
 ��Q;0g�pn��|���|7c����-?�(��$	�+E� �n�
r���(Y~�#�r5���Q�P�Q5��9j�#��P���~7��.U�����P�yP���й" �f	__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeaccept4__errno_locationrb_maygvl_fd_fix_cloexecrsock_raise_socket_errorgai_strerrorrb_eSocketrb_raiserb_sys_failrsock_init_sock__fxstatrb_reserved_fd_prb_update_max_fdrb_io_make_open_filerb_io_ascii8bit_binmodersock_do_not_reverse_lookuprb_io_synchronized__stack_chk_failrsock_sendto_blockingsendtorsock_send_blockingrsock_s_recvfromrb_scan_argsrb_fix2intrb_io_taint_checkrb_io_check_closedrb_io_read_pendingrb_tainted_str_newrb_obj_hiderb_thread_io_blocking_regionrb_io_wait_readablerb_obj_revealrb_obj_taintrsock_unixaddrrb_assoc_newrb_num2intrb_str_set_lenrsock_ipaddrrsock_io_socket_addrinforb_eRuntimeErrorrb_bugrb_eIOErrorrsock_s_recvfrom_nonblockrb_io_set_nonblockrb_readwrite_sys_failrsock_detect_cloexecfcntlrsock_socketrb_gcrsock_connectgetsockoptrb_wait_for_single_fdrsock_s_accept_nonblockrb_securerb_obj_allocrsock_s_acceptrsock_getfamilygetsocknamersock_init_socket_initrb_eStandardErrorrb_define_classrsock_init_ipsocketrsock_init_tcpsocketrsock_init_tcpserverrsock_init_sockssocketrsock_init_udpsocketrsock_init_unixsocketrsock_init_unixserverrsock_init_sockoptrsock_init_ancdatarsock_init_addrinforsock_init_sockifaddrrsock_init_socket_constantsrb_cAddrinforb_cSocketrb_cUNIXServerrb_cUNIXSocketrb_cUDPSocketrb_cTCPServerrb_cTCPSocketrb_cIPSocketrb_cBasicSocketrsock_family_to_intrsock_socktype_to_intrsock_ip_level_to_intrsock_so_optname_to_intmemcmprsock_ip_optname_to_intrsock_ipv6_optname_to_intrsock_tcp_optname_to_intrsock_shutdown_how_to_intrsock_scm_optname_to_intrsock_unknown_level_to_intrsock_udp_optname_to_intrb_check_string_typerb_check_safe_objrb_sym_to_srsock_ipproto_to_intrsock_intern_familyst_lookuprsock_intern_family_noprefixrsock_intern_protocol_familyrsock_intern_socktypersock_intern_ipprotorsock_intern_iplevelrsock_intern_so_optnamersock_intern_ip_optnamersock_intern_ipv6_optnamersock_intern_tcp_optnamersock_intern_udp_optnamersock_intern_scm_optnamersock_intern_local_optnamersock_family_argrsock_socktype_argrsock_level_argrsock_optname_argrsock_cmsg_type_argrsock_shutdown_how_argrb_define_module_underrb_define_constst_init_numtablerb_intern2st_insertrsock_bsock_sendrb_string_valuersock_sockaddr_string_valuerb_str_new_frozenrb_io_wait_writablerb_out_of_intgetpeernamersock_fd_socket_addrinforb_str_newrsock_sockopt_newrsock_sys_fail_pathrb_funcallsetsockoptshutdownrb_io_closerb_eArgErrorrsock_init_basicsocketrb_cIOrb_undef_methodrb_define_singleton_methodrb_define_methodrsock_bsock_sendmsgrsock_bsock_sendmsg_nonblockrsock_bsock_recvmsgrsock_bsock_recvmsg_nonblockrb_rescuerb_ary_entryrb_yieldrb_ensurersock_sockaddr_string_value_ptrrsock_unixpath_strrb_eTypeErrorrsock_make_ipaddrrsock_addrinforb_freeaddrinforb_string_value_cstrgetservbyportrb_tainted_str_new_cstrrb_num2longrb_eRangeErrorgetservbynameruby_strtoulgethostbyaddrrb_ary_newrb_str_new_cstrrb_ary_pushrsock_make_hostentrb_str_new_staticrb_str_modify_expandgethostnamestrlenrb_str_resizerb_syserr_failrsock_addrinfo_newgetifaddrsfreeifaddrs__memcpy_chkrsock_unix_sockaddr_lenrb_check_sockaddr_string_typerb_getnameinfostrcmprb_check_array_typerb_gc_writebarrier_unprotectrb_string_value_ptrstrncpyruby_snprintfrb_getaddrinforsock_sock_listenrsock_sock_s_socketpairrb_block_given_prsock_getaddrinforsock_revlookup_flagrsock_syserr_fail_host_portrb_sprintfrb_syserr_fail_strrsock_sys_fail_host_portrsock_syserr_fail_pathrsock_syserr_fail_raddrinforsock_addrinfo_inspect_sockaddrrsock_syserr_fail_sockaddrrsock_sys_fail_sockaddrrsock_sys_fail_raddrinforsock_syserr_fail_raddrinfo_or_sockaddrrsock_sys_fail_raddrinfo_or_sockaddrrsock_sockaddr_string_value_with_addrinfobindrsock_sockaddr_lenrsock_sockaddr_objInit_socketrsock_init_inetsockrb_check_typerb_sym2idrb_id2namersock_freeaddrinforsock_cmsg_cloexec_staterb_funcallvrsock_discard_cmsg_resourcersock_recvmsgrb_str_duprb_obj_freezerb_obj_is_kind_ofrsock_init_unixsockrb_get_pathrb_protectrb_jump_tagrb_ivar_setrb_attr_getrb_id2symrb_str_catfif_indextonameinet_ntoprb_str_cat_cstrrb_str_catrb_to_intrb_obj_classnamerb_str_dumprb_str_appendrb_cSockOptrb_newobj_ofrb_check_to_integerrb_cObjectrb_define_class_underrb_str_buf_newrb_num2uintrb_ary_new_from_valuesrb_time_newrb_time_nano_newlocaltimestrftimerb_thread_call_without_gvlrb_str_tmp_newmemsetmemcpyrb_check_convert_typerb_int2bigrb_hash_arefrb_cStringrb_num2ulongrb_io_fdopenrb_freeze_singleton_classrb_data_typed_object_allocrb_gc_markrb_check_typeddatarb_id2strrb_isprintrb_isspacestrtolrb_ary_storestrspninet_ptonruby_xmallocruby_xcallocruby_xfreerb_cIntegerrb_ary_new_capagethostbynamerb_convert_type__sprintf_chkrb_str_equalrsock_inspect_sockaddrrb_typeddata_is_kind_ofrb_cDatarb_define_alloc_funcrb_cSockIfaddrrb_ull2inumif_nametoindexrb_class_namerb_cFalseClassrb_cNilClassrb_cFixnumrb_cFloatrb_cTrueClassrb_cSymbollibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.3GLIBC_2.14GLIBC_2.3.4GLIBC_2.10GLIBC_2.4/opt/alt/ruby22/lib64 ui	kIii
w����ti	�����ii
�ui	k�"0{�"�z �" �"@�"jH�"`�X�"����"om��"3��"�4��"3�"��"��" �"(�"�0�"8�"@�"H�"P�"�X�"�`�"h�"'p�"*x�"���"���"���"2��"��"���"���")��"T��"�Ȯ"ZЮ"^خ"��"3�"
�"q��"��"��"
�"|�"� �"�(�";0�"<8�"�@�"�H�"1P�"�X�"�`�",h�"�p�"x�"��"���"���"��"��"!��"���"���"���"�ȯ"�Я"�د"6�"�"��"��" �"(�"0�"8�"@�"�H�"P�"X�"�`�"	h�"�p�"x�"
��"��"���"��"
��"���"��"��"��"Ȱ"а"ذ"�"��"�"��"�"�"�"��"� �"(�"0�"$8�"@�"�H�"P�"X�" `�"!h�""p�"�x�"���"#��"���"���"���"$��"���"%��"&��"(ȱ")б"'ر"+�"+�",�"-��".�"/�"#�"0�"1 �"2(�"30�"48�"5@�"6H�"7P�"8X�"9`�"�h�"*p�":x�"	��"���";��"���"<��"���"=��"(��">��"?Ȳ"@в"Aز"B�"�"�"C��"D�"E�"F�"��"0 �"G(�"H0�"I8�"J@�"/H�"KP�"8X�"L`�")h�"�p�"Mx�"N��"O��"P��"���"Q��"R��"S��"9��"U��"Vȳ"Wг"Xس":�"Y�"[�"���"\�"]�"_�"`�"a �"(�"b0�"8�"c@�"dH�"P�"X�"e`�"fh�"gp�"5x�"h��"i��"j��"k��"l��"
��"���"m��"n��"ȴ"oд"pش"r�"s�"-�"t��"u�"v�"w�"x�"� �"y(�"z0�"{8�"
@�"H�"}P�"~X�"`�"�h�"�p�"�x�"���"���"���"���"��"���"���"���"���"�ȵ"�е"�ص"��"7�"��"���"��"��"��"�"� �"%(�"�0�"8�"�@�"�H�"P�"�X�"�`�"�h�"�p�"�x�"���"���"���"���"���"���"���".��" ��"4ȶ"�ж"�ض"��"��"�"���"��"��"��"��"� �"�(�"�0�"�8�"�@�"&H�"�P�"�X�"`�"�h�"�p�"�x�"���"���"���"���"���"���"���"���"���"�ȷ"�з"�ط""�"�"��"���"��"���H��H�1T"H��t��H����5RU"�%SU"��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��������hb�������hc�������hd�������he�������hf�������hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!������hm��������hn��������ho������hp�������hq��������hr�������hs�������ht�������hu�������hv�������hw��q������hx��a������hy��Q������hz��A������h{��1������h|��!������h}��������h~��������h������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h�������%mE"D���%eE"D���%]E"D���%UE"D���%ME"D���%EE"D���%=E"D���%5E"D���%-E"D���%%E"D���%E"D���%E"D���%
E"D���%E"D���%�D"D���%�D"D���%�D"D���%�D"D���%�D"D���%�D"D���%�D"D���%�D"D���%�D"D���%�D"D���%�D"D���%�D"D���%�D"D���%�D"D���%�D"D���%�D"D���%}D"D���%uD"D���%mD"D���%eD"D���%]D"D���%UD"D���%MD"D���%ED"D���%=D"D���%5D"D���%-D"D���%%D"D���%D"D���%D"D���%
D"D���%D"D���%�C"D���%�C"D���%�C"D���%�C"D���%�C"D���%�C"D���%�C"D���%�C"D���%�C"D���%�C"D���%�C"D���%�C"D���%�C"D���%�C"D���%�C"D���%�C"D���%}C"D���%uC"D���%mC"D���%eC"D���%]C"D���%UC"D���%MC"D���%EC"D���%=C"D���%5C"D���%-C"D���%%C"D���%C"D���%C"D���%
C"D���%C"D���%�B"D���%�B"D���%�B"D���%�B"D���%�B"D���%�B"D���%�B"D���%�B"D���%�B"D���%�B"D���%�B"D���%�B"D���%�B"D���%�B"D���%�B"D���%�B"D���%}B"D���%uB"D���%mB"D���%eB"D���%]B"D���%UB"D���%MB"D���%EB"D���%=B"D���%5B"D���%-B"D���%%B"D���%B"D���%B"D���%
B"D���%B"D���%�A"D���%�A"D���%�A"D���%�A"D���%�A"D���%�A"D���%�A"D���%�A"D���%�A"D���%�A"D���%�A"D���%�A"D���%�A"D���%�A"D���%�A"D���%�A"D���%}A"D���%uA"D���%mA"D���%eA"D���%]A"D���%UA"D���%MA"D���%EA"D���%=A"D���%5A"D���%-A"D���%%A"D���%A"D���%A"D���%
A"D���%A"D���%�@"D���%�@"D���%�@"D���%�@"D���%�@"D���%�@"D���%�@"D���%�@"D���%�@"D���%�@"D���%�@"D���%�@"D���%�@"D���%�@"D���%�@"D���%�@"D���%}@"D���%u@"D���%m@"D���%e@"D���%]@"D���%U@"D���%M@"D���%E@"D���%=@"D���%5@"D���%-@"D���%%@"D���%@"D���%@"D���%
@"D���%@"D���%�?"D���%�?"D���%�?"D���%�?"D���%�?"D���%�?"D���%�?"D���%�?"D���%�?"D���%�?"D���%�?"D���%�?"D���%�?"D���%�?"D���%�?"D���%�?"D���%}?"D���%u?"D���%m?"D���%e?"D���%]?"D���%U?"D���%M?"D���%E?"D���%=?"D���%5?"D���%-?"D���%%?"D���%?"D���%?"D���%
?"D���%?"D���%�>"D���%�>"D���%�>"D���%�>"D���%�>"D���%�>"D���%�>"D���%�>"D���%�>"D���%�>"D���%�>"D���%�>"D���%�>"D���%�>"D���%�>"D���%�>"D���%}>"D���%u>"D���%m>"D���%e>"D���%]>"D���%U>"D���%M>"D���%E>"D���%=>"D���%5>"D���%->"D���%%>"D���%>"D���%>"D���%
>"D���%>"D���%�="D���%�="D���%�="D���%�="D���%�="D���%�="D���%�="D���%�="D���%�="D���%�="D���%�="D���%�="D���%�="D���%�="D���%�="D���%�="DH�=�="H��="H9�tH��3"H��t	�����H�=i="H�5b="H)�H��H��H��?H�H�tH��4"H��t��fD�����=%="u+UH�=�4"H��tH�=0"�Y����d�����<"]������w������UL�OL�GSH��H��H�w�o�OH��� u)H��H�����;����H���t9kv�kH��[]�f�H�VH�v��fD��H���WH�w�?����H��H��AVI��AUA��ATE1�USH��H��tD�"�&<"��t.�H��L��D����Ń��uP���8&ug��;"H��L��D���>����Ń��tHH��tD9#w���v���[��]A\A]A^�D�#����~H��t�D9#v�D�#��@���A�������������H��H�WH�w�?�)���H��H��f���SH�����t%����H��H�5�H��H�x2"H�81�������f���ATI���US��H��dH�%(H��$�1�H���L��������D$%�=�uu���-�����uj���b���L���z���L��XH���@#��H�&1"���u0H���0���L��H��$�dH3%(u>H�Ġ[]A\�fD�M����H�=#��	����H�=����������H�wD�OL�G�OH��� uH���?H�����s�H�V�?H�v�a���H�w�OH��� uH���?H������H�V�?H�v��f���AWA��AVAUATUSH��XH�|$H�L$ ��L�D$(H��H�\�dH�%(H��$H1��5�H�|$(H����D$4H�|$ @���_�:���H�|$Lc��M�H�hH����H���Y������3�EL��1��D$@L�l$0L�55����D$0���H��H�D$8H�@H��H�D$�����H����L9���H���H�T$0L��L����H��y,�}������H�{�yH��� t�H�C�H�t$H��H�D$��H�H�T$�� ��H�CH9���H����A����E��t%A�����t$@I�}�:���H��H����H��H��$HdH3%(H���,H��X[]A\A]A^A_�������fDH����H9��x���H��H����H���-�A���m����t$@�����tr�UI�}����H��H���
�H���f���f�A��u~�T$@H�|$I�u�(�H��H�����H���9���D@��t�5����D$4��������H�߾��H������H��."H�5�H�81���H�=��l���H�=u�1���H��."H�5��H�81��f��Q����AWAVAUA��ATA�@USH��HH�<$H�L$ ��L�D$(H��H�g�dH�%(H��$81��D$�8�H�|$(H����H�|$ @�����E���H�<$Hc��Y�H�hH����H���e��������EH��1��D$����H��I����H���I��D$I�w�D$I� ��L�t$0�|$D��H��L�L$M���D�H����J�\$9\$��H���3I��� ��I�WH9���L����A����E��t(A���W�T$H�<$L���)�H��L�����I��H��$8dH3%(L���-H��H[]A\A]A^A_��I�w�/�����\$�S����H����H9��^���L��H����L���U�A���S����D$�������a����U��L�������H���F���@���I���fD@��t2�}���A��A��@������+��8t.H�=a�����f.��;�A��A��@����H�5o�1��J�H��+"H�5A�H�81���H�=ú1������ff.�@��S1����������t��[����8���H�=��H��1��t�@AUA��ATA��U��SH����3"��Tu*����Ã��t>���/����H����[]A\A]�������Å�y7���u��
��8t;������ɐ������Å�x���~������	��3"��u��D���D���`����Ã��t���2"�d���f.���AUA��ATA��U��SH�������Å�x���X�H����[]A\A]��c������w����D��D��������Å�y�H����[]A\A]�@��AUATUS��H��8dH�%(H�D$(1��|$H�t$H�t$�T$��H�=������Ņ�x*H�L$(dH3%(����H��8[]A\A]�f���I�ċ��t����Ut��su�L�l$H�l$���M��H���D$�8���xd1Ҿ���&���xRM��H������D$����x/�D$1�U�F���>���;������2������*���A�$���������fD���
����Q���f���j�����|эP����������f���AUI��ATI��UH���SH��H���|�H���4��{L��L�����y2�����Gt��gt��tH�=!��0�H�5��1����f��É��7�1���������t4����߉�1������tH�����H����H��[]A\A]��H�=�����@��AWAVAUI���ATA��UH��SH��H��(dH�%(H�D$1���H�l$D��H��H�\$1�D�$$������3���$H��H�=Q��<�I�ƅ�y%�������v�D�������tW1���fD���9�M��u,Ic�H�DH�L$dH3%(u5H��([]A\A]A^A_�DL����D��H������H�=��������f���H��(dH�%(H��$1�H�T$1�H�t$�D$f�D$�t�1҅�x�T$H��$dH3%(��uH��(��g����H��H�&"H�=9�H�0�"�H��%"H��������������:��5��P�������1�H�������H��H��	��H�
K�Hc�H�>��D�?AF_I���?PF_I���?AF_U���?PF_U�8�?AF_A�|�?PF_A�t�?AF_I���?PF_Iuf�SDu
�N�������@H�AF_UNSPEH9��H�PF_UNSPEH9��H�AF_PACKEH9�H�PF_PACKEH9��H�APPLETALH9u��Ku��1��fDH�AF_APPLEH9��H�PF_APPLEH9�`����TALK�S����f�?IP�ef�?SN��f�?MA�-����X�#���1��-�@�?INET���?UNIX�n�?AX25�R�?ISDN����"1����?INET���?LOCA�`�?ROUT������E�����1���f��?AF_I���?PF_I�H�?AF_S��?PF_S���?AF_M���?PF_M���?PF_K���?UNSP���?PACK�*���f�ET����1����H�AF_INET6H9tyH�PF_INET6H9tjH�AF_LOCALH9tQH��H9tHH�AF_ROUTEH9tH�PF_ROUTEH9������1���f�NI�P����X�F����1��
1���f�NE�����T������1�Ðf�NA�����1���T�w����1��D�6�R���1��
�D�C�!����1��Df�PX�`����1���X�������@�TALK�N����'���fDf�X2�x����5�n����1�Ðf�NE�4����T�*�������D�A�4���1���D�L��������f��C�l����3����f�PX������;�����T�j�������f�f�NI������X������[���Df�NA�t������f�AX�o����-1��f�AX�f�����f�X2������5�v������f�SD�q����N�g������f�EY�.���1���f�EC�%���1���ff.����H��H��w6H�
'�Hc�H�>��H�SOCK_SEQH9u�PACKuf�ET��������fDf�?RA�-f�?RDu�Mu��lfD�?DGRAùMu��D�?STRE�,�?PACKu�f�ETu����H�SOCK_RAWH9��H�SOCK_RDMH9�n����1�ÐH�SEQPACKEH9�Q����T�G����1��f.�H�SOCK_DGRH9�!���f�AM�����1���H�SOCK_STRH9tQH�SOCK_PACH9���f�KE�����
T�����
1����W�����1��Df�EAu��
Mu��1��f�f�AM������f���H��wnH�
��Hc�H�>��Df�?TC�Ef�?EG�
f�?PU�_f�?UD��f�?ID��f�?ES��f�?RAu�W�@D������f�H�IPPROTO_H9u�ICMPu�f�V6u�1��:��H�IPPROTO_H9�=H�IPPROTO_H9�RH�IPPROTO_H9u��ROUTu�f�IN�~����G�t�����f�?IP��f�?TP�:f�?AH�G����31��fD�?ICMP���?IGMP���?IPV6���?NONE�����;1����?SOCK�4�?ICMP���f�V6��������H�SOL_SOCKH9��H�IPPROTO_H9�:H�IPPROTO_H9�H�IPPROTO_H9�|���f�AH�p���1��3��H�IPPROTO_H9�]H�IPPROTO_H9��H�IPPROTO_H9�gH�IPPROTO_H9��H�IPPROTO_H9��H�IPPROTO_H9��H�IPPROTO_H9����f�RA�����
W����1����@H�IPPROTO_H9��H�IPPROTO_H9�:H�IPPROTO_H9��H�IPPROTO_H9�l����NONE�_���1��;�fDH�IPPROTO_H3H�FRAGMENTH3wH�������H	��)���1��,��?DSTO�l�?HOPOtd�?ROUT�����f�IN����G���1��+ÐH�FRAGMENTH9�����,1��@f�ET������1��f�PTu��Su��1�Ðf�EG�B����
P�8���1��Ðf�IP�������f��IGMP�����1���f.��P����@�1����1����P�����1���Df�TC������
P������ځICMP�&���1���f.�f�ET���������f�PT������S�~���1��<�f��DSTO�����f�PT������S��������HOPO�����f�PT������S�����1���@�)1���f�TP�u���1����IPV6�l���1��)�f.��P�����1���Df�PU������
P������ڀP�r���1���Df�UD�p����
P�f����ڀP�M���1���f�ID�X����
P�N����߀P�-���1��2�f�ES�@����
P�6�����f.���H��H����UH�
f�H��SH��H��Hc�H�>��H�ITY_ENCRH3WH�SO_SECURH3H	�uH�YPTION_NH9G�>
�����H��[]�H�_ENCRYPTH3WH�SECURITYH3H	�uH�ION_NETWH9G�%
������DH�_ENCRYPTH3WH�SECURITYH3H	�uH�ION_TRANH9G��������{���f�H�_AUTHENTH3WH�SECURITYH3H	�u
�ICAT��������B���f�H�ITY_AUTHH3WH�SO_SECURH3H	�uH�ENTICATIH9G�}��������f�H�T_ERR_QUH3WH�SO_SELECH3H	�uf�EU�w���������f.�H�ACING_RAH3WH�SO_MAX_PH3H	�uf�TE�%��������f.�H�SO_SNDBUH9��	H�SO_RCVBUH9��
H�SO_TIMESH9�\H�SO_WIFI_H9��
H�SO_LOCK_H9�2H�BPF_EXTEH9����������@H�SO_ACCEPH9��H�SO_GET_FH9�r
H�ATTACH_FH9�H�DETACH_FH9�F
��������f.�H�SO_REUSEH9��H�SO_REUSEH9�:
H�SO_DONTRH9��H�SO_BROADH9�AH�SO_KEEPAH9�
H�SO_OOBINH9��
H�SO_TIMESH9��
H�SO_BUSY_H9�CH�BINDTODEH9��H�TIMESTAMH9�%������f.�H�SO_NO_CHH9�
H�SO_PRIORH9�	H�SO_PASSCH9�<H�SO_PEERCH9�MH�SO_RCVLOH9��H�SO_SNDLOH9��H�SO_RCVTIH9�K
H�SO_SNDTIH9��
H�SO_PEERNH9��
H�SO_PROTOH9��H�5A�H�����������H�51�H��������^�H�5��H����������H�5��H���z�����X�H�5��H���^�����x�H�5��H���B�����P�H�5t�H���&�����,�E,�;���f�H�H_FILTERH3GH�SO_ATTACH3H	��1��E����fDH�SO_PEERSH9��H�SO_PASSSH9��H�ACCEPTCOH9��H�GET_FILTH9��	��������f��?SNDB�$�;RCVB���;LING���;DOMA�7
������o���fD�?DEBU���;ERRO��;NOFC��������;���f��?TYPE�$�?MARK�L�E$1�����f.�H�ITY_ENCRH3WH�SO_SECURH3H	�u%H�RANSPORTH3WH�YPTION_TH3GH	��+���������H�XTENSIONH3WH�SO_BPF_EH3H	�u
�S�N��������@H�SO_BINDTH9��H�SO_TIMESH9�BH�MAX_PACIH9��������>���DH�SO_DEBUGH9�mH�SO_ERRORH9�H�SO_NOFCSH9�H�NO_CHECKH9�RH�PRIORITYH9��H�PASSCREDH9��	H�PEERCREDH9�{	H�RCVLOWATH9��	H�SNDLOWATH9�^
H�RCVTIMEOH9�|
H�SNDTIMEOH9��
H�PEERNAMEH9��
H�PROTOCOLH9��
H�RXQ_OVFLH9��
H�PEEK_OFFH9��
�*1�����fDH�SO_SNDBUH9��H�SO_RCVBUH9�
H�SO_LINGEH9�dH�SO_DOMAIH9��H�REUSEADDH9��H�REUSEPORH9�H�DONTROUTH9�sH�BROADCASH9��H�KEEPALIVH9��H�OOBINLINH9�}	�	H�5\�H���������	�	H�5ۡH����������	�E.����fD�?SO_T���;SO_M���;PEER���;PASS����������fD���������SPOR�%����T������E1�����{NG_R�6���f�{AT�*����{E� ����E/1��Z����{NSIO�F���f�{NS�:����E01��3���f.�f�YP�(����E����f.��E1����f�H�SO_DETACH3H	��b1��E����@�G�j���1�������1�����ODEV�.���f�IC�"����E����1���y���f�UF����1���`����f�EC�_���1���@�����F�9���1���"���f��TCON�&����N����1����@�ADDR�^���1�����fD�FFOR�^���f�CE�R���1�� ��f�f�EC����
K����1����DH�RR_QUEUEH3O�����H�SELECT_EH3H	��X��E-1��J��{R���1��E�1��f�{AR�4����{K�*�������1����f�{EC����1��E"���fD�{F���1��E����{FFOR�Y���f�{CE�M���1��E!��f�f�{IT�����{
Y����1��E�e�@�{ILTE������{R�w����E1��<��{PORT�����1��E��D�{TAMP�����f�{IN������{G�����1��E%����f�{UF�D���1��E���ETWO���f�RK����E1���f�OR���K�����f�ON�w��E1��n�f�IO��N���ڀE������{S�����1��E+�/�f�{NN�[���1��E��f�{SE�,����{C�"���1��E����+1����{TAMP���f�{NS���1��E#��{ILTE���{R����W���f�{ER����1��E
��{OUTE��1��E�l�{R�����1��E
�T�f�{RE���{
D���1��E�0�f�{RE���{
D���1��E��{CAST���1��E���{N�*���1��E'���f�{ER����1��E��f�{SE����{C����1��E"���1���{STAT�T�f�{US�H�1��E)�g�{ILTE���{R���1��E�B�f�{IN�����1��E'�(�{LIVE���1��E	�
��1���{R�L���1��E����{FILT���f�{ER���1��E,��f�{WA�K�{
T�A�1��E��f�{WA�:�{
T�0�1��E�y��{T����1��E�a��{LINE�-�1��E
�F��1��9��1��,��{TAMP��1��E���{E�����1��E��f�{ME���{
O���1��E������������1����{POLL���1��E.���{T�(���1��E��f�{ME�N�{
O�D�1��E�g���À{E�����1��E	�K��{VICE�P�1��E�0��1��#�f�{AM���{
E���1��E���1����f�{CO���{
L���1��E&����{E�y���1��E
���{PING���1��E%���E���1����1��u��E*�i��E(�]��(1��P��&1��C��E!�7��E �+����#����������E)���E#��f���H��H����H�
k�Hc�H�>��DH�CAST_LOOH3OH�IP_MULTIH3H	��DH�EMBERSHIH3OH�IP_ADD_MH3H	�u
�P�H�CK_SOURCH3OH�IP_UNBLOH3H	�u
�E��������f.�H�LT_MULTIH3OH�IP_DEFAUH3H	���H�SOURCE_MH3OH�IP_DROP_H3H	�u�H�EMBERSHIH9Gu��Pu��(1��Df�?TO�]f�?TT�
f�?MT�g����U�]����1��@�?IP_T���?IP_T��	�?IP_M�t
�?MINT� ���f�TL����1����?OPTI���?HDRI���?RETO�
�?RECV�(�?PKTI���?RECV�P�?RECV�q�?PASS�����f�SE������C�����1���f�H�RECVOPTSH9�H�FREEBINDH9��H�MSFILTERH9�G����)1��fDH�IP_MINTTH9�%����L��������fDH�IP_OPTIOH9�}H�IP_HDRINH9�JH�IP_RETOPH9��H�IP_RECVTH9��	H�IP_PKTINH9�R
H�IP_RECVEH9��
H�IP_RECVTH9�3H�IP_PASSSH9�MH�PKTOPTIOH9�e���f�NS�Y���1��	�H�IP_RECVOH9��H�IP_FREEBH9�BH�IP_MSFILH9��H�RECVRETOH9��	H�XFRM_POLH9��	H�TRANSPARH9�
H�PMTUDISCH9����f�_D������
O�����1���@H�MULTICASH9��H�ROUTER_AH9��H�MTU_DISCH9�?H�IPSEC_POH9�jH�BLOCK_SOH9�I����URCE�<���1��&�H�IP_PKTOPH9�eH�MULTICASH9��H�PMTUDISCH9��H�PMTUDISCH9����_WAN�����T����1���@H�IP_RECVRH9��H�IP_XFRM_H9��H�IP_TRANSH9�H�IP_PMTUDH9��H�MULTICASH9�tH�ADD_MEMBH9�%H�UNBLOCK_H9�;����SOUR�.���f�CE�"���1��%�f�H�MEMBERSHH3OH�IP_DROP_H3H	���H�EMBERSHIH3OH�IP_MAX_MH3H	�����f�PS�������H�CAST_TTLH3OH�IP_MULTIH3H	��CH�ISC_DONTH3GH�IP_PMTUDH3H	���1����H�IP_MULTIH9�5H�IP_ROUTEH9��H�IP_MTU_DH9�H�IP_IPSECH9�0H�IP_BLOCKH9��H�DROP_MEMH9�GH�MAX_MEMBH9�����ERSH����f�IP������S������1���H�MULTICASH3OH�DEFAULT_H3H	���H�RCE_MEMBH3OH�DROP_SOUH3H	��X����ERSH�K���f�IP�?������f.�H�MULTICASH3OH�DEFAULT_H3H	��lH�CE_MEMBEH3OH�ADD_SOURH3H	�����RSHI�����P�����'1���H�LT_MULTIH3OH�IP_DEFAUH3H	���H�OURCE_MEH3OH�IP_ADD_SH3H	��x���H�MBERSHIPH9G�d����f��T_TT�I����L�?���1��!�H�CAST_LOOH9G�`����P�V����1��f��P�����1��"�Df�IP�����$1���T_LO�W���f�OP�K����DH�CAST_TTLH9G�����f.��T_TT������L�}����b���@f�NS�w���1����1���f�ON�P����S�F�����f�PT������
S���1���S����������CAST�����f�_I������F�����1�� �@�ETOP�&���f�TS����1���fD�TION������S������C���@�T_IF������f�f�OS�0����M�����R_AL�)���f�ER�����T����1���@f�NC�<����L�2���1���f��POLI�i���f�CY�]���1���fDf�IN������
D�����1���f�H�ISC_WANTH3GH�Ƹ����H	������f�CL������m�����LERT������1���fD�1����L����1��Df�TL������f.��OVER�����1��
�f.��_DON�����T�������@f�TS�
����1��f�PT����S�������Df�TU������J�����ISCO�t���f�VE�h����R�^����U�����PARE����f�NT����1���fDf�TE�%����
R����1��)ÁERSH����f�IP����1��#�f�TL�7���1��ÁLICY�����1��Á_POL����f�IC������Y��������f�TT���L���띁ISC_����f�DO��������f�PT�j����
S�`����{���f�FO�����1��Á_SOU�D���f�RC�8����E�.������f�f�NF�H�O�>��f�IC�����
Y��������T_LO����f�OP�s�������f�EN����
T�����]���f�RR�
���1��ÁBERS�����f�HI������P���������f�ER���R����f�OS���1��
�f�TO���S�y���f�EC�����f.���H��H����H�
7�Hc�H�>��DH�TICAST_IH3OH�IPV6_MULH3H	���H�CAST_HOPH3OH�IPV6_UNIH3H	���H�VHOPLIMIH3OH�IPV6_RECH3H	�u
�T�AH�DRDSTOPTH3OH�IPV6_RTHH3H	�u
�S�ZH�DR_TYPE_H3OH�IPV6_RTHH3H	�u
�0��������@H�TICAST_HH3OH�IPV6_MULH3H	��tf�OP�h�S�^1���D�?RTHDu��Ru��iD�?V6ON���?TCLAu�f�SS�v����9�?DSTO�L�?HOPO���?NEXT���?PATH��?PKTI�2���f�NF�&����O����1��2�DH�CHECKSUMH9��H�DONTFRAGH9�H�HOPLIMITH9�����41��fDH�RECVRTHDH9������R������/fDH�IPV6_RTHH9�MH�JOIN_GROH9�ZH�RECVTCLAH9�e���f�SS�Y���1��B�f�H�IPV6_V6OH9��H�IPV6_TCLH9��H�LEAVE_GRH9��H�RECVDSTOH9��H�RECVHOPOH9��H�RECVPKTIH9�'H�RECVPATHH9����f�MT������
U�����1��<�@H�IPV6_RECH9�H�MULTICASH9�H�MULTICASH9�m����T_LO�`���f�OP�T���1���DH�IPV6_DSTH9��H�IPV6_HOPH9��H�IPV6_NEXH9�WH�IPV6_PATH9��H�IPV6_PKTH9��H�MULTICASH9�
H�UNICAST_H9�'H�RECVHOPLH9��H�RTHDRDSTH9��H�RTHDR_TYH9������PE_0�{���1���@H�VE_GROUPH3OH�IPV6_LEAH3H	��BH�VDSTOPTSH3GH�IPV6_RECH3H	�� 1��:��H�IPV6_CHEH9�5H�IPV6_DONH9�BH�IPV6_HOPH9�����LIMI�����T����1��4��H�IPV6_JOIH9��H�IPV6_RECH9������VTCL�����f�AS�w����S�m�������f.�H�TICAST_LH3OH�IPV6_MULH3H	��:���f�OO�.����P�$��������f�OU������
P��1��Ð�F�R���1���D�S�^���1���D�CKSU������M�����1��ÁOPTS�n���1��;�f.��VRTH���f�DR���1��8�fDf�NL�����
Y����1���f�f�DR�����1��9��1���f�PT������S������Z���Df�LY�`����f.��N_GR�.���f�OU�"����P����1���@�TFRA������G�����1��>�f�PT�,����S�"���1��6�T_HO���f�PS�������f�f�AS�����
S����1��CÐ�OPTS����말f�UP������R����H�VHOPOPTSH3GH	�u1��5�@�>1���H�VPKTINFOH3GH	�u=1��1�@�THOP�����1��	�f�f�HO�H����P�>�����H�VPATHMTUH3w�����H	�������f�PT�[����
S�Q����(����HMTU�G���1��=�f�MT����U����߁IMIT�e���1��3ÁINFO��������f�PT������
S������OPTS�5���1��7ÁT_IF������f�NF�����
O���������HOPS�������f.���H��H��w<H�
�Hc�H�>��H�TCP_THINH9u�_DUPuf�ACu
�K��������H�IE_TRANSH3OH�TCP_COOKH3H	�uځACTIu�f�ONuɀSu��1��H�_LINEAR_H3OH�TCP_THINH3H	�u�H�TIMEOUTSH9Gu��1����?CORK���?INFO�b����1����?MAXS���?MD5S�(�?SYNC���?REPA�"���f�IR����1����?NODE���?KEEP�h�?LING���f�ER�����2����1���DH�TCP_CORKH9��H�TCP_INFOH9�:���H�KEEPIDLEH9��H�QUICKACKH9�'H�FASTOPENH9�c����1��H�TCP_MAXSH9�mH�TCP_MD5SH9�
H�TCP_SYNCH9��H�TCP_REPAH9��H�CONGESTIH9�����f�ON���1��
�@H�TCP_NODEH9��H�TCP_KEEPH9�H�TCP_LINGH9�?H�THIN_DUPH9�����f�AC������
K�����1���DH�KEEPINTVH9�-H�QUEUE_SEH9�H�TIMESTAMH9�9����P�/���1���@H�TCP_KEEPH9��H�TCP_QUICH9�H�TCP_FASTH9�/H�DEFER_ACH9�H�WINDOW_CH9��H�REPAIR_QH9��H�USER_TIMH9������EOUT������1��DH�TCP_KEEPH9��H�TCP_QUEUH9��H�TCP_TIMEH9�I����STAM�<����P�2������H�TCP_CONGH9��H�REPAIR_OH9�����PTIO�����f�NS����@H�R_ACCEPTH3OH�TCP_DEFEH3H	���H�OW_CLAMPH3OH�TCP_WINDH3H	��0�
1���H�RANSACTIH3OH�COOKIE_TH3H	��f���f�ON�Z����S�P�������H�EAR_TIMEH3OH�THIN_LINH3H	��&����OUTS�������f.�H�IR_OPTIOH3OH�TCP_REPAH3H	����f�NS�����1�ÁCEPT����	1�Ð�1����INTV�.����L�$���1��ÁIDLE�n���1���f.��ESTI�F���f�ON�:����]���f�f�EG�����1����L�����@f�LA�����Y����1���f�f�LA�����
Y�������f�EG������f��E_SE�a����Q�W���1���f�CN����
T����1��Ðf�CN������T��������H�IR_QUEUEH3OH�TCP_REPAH3H	�uf�1����Q����x����f�IG���1���f�IG������f.��KACK��1���H�_TIMEOUTH3w�����H�TCP_USERH3H	��+���ÁOPEN����1����1�Ðf�NT�m���1���f�NT�H�����f.�f�ER������
2����������1��f�IR�,��������LAMP�e�������UEUE�f����������H��tf~$H��t>H��	uH�SHUT_RDWH9ty������H��u�f�?RDtYf�?WRu��1���?SHUTt0�?SHUTu�f�_Wu��Ru��ԁ?RDWRu��1���f�_RuȀDu��1�Ð�Ru������H��H��
wRH�
k�Hc�H�>��H�TIMESTAMH9��H�CREDENTIH9�2H�WIFI_STAH9��������f.�H�SCM_TIMEH9u�STAMu؀Pu���DH�SCM_TIMEH9�uH�SCM_CREDH9��H�SCM_WIFIH9u��_STAu�f�TUu��S�x����)1����?RIGH�\���f�TS�P����H�SCM_TIMEH3H�STAMPINGH3wH�������H	��!����%1��H�TIMESTAMH9������P���1��f.�H�SCM_RIGHH9����f�TS������1���H�TIMESTAMH9������PING������o���f�TU�|����
S�r������Df�PN�/����
S�%����#1��f��STAM�~���f�PN�r����S�h������ENTI�i���f�AL�]����S�S����1��@f�AL�����
S���������H��tH��
uH�SOL_SOCKH9t)�������?SOCKu�f�ETu��1���f�ETu���ff.���H��t&H��u(H�UDP_CORKH9u�1����?CORKt�����f�AUI��ATI��USH��H��dH�%(H�D$1�@����@��u	H�����utH�����H��H���H���ם��H�u�� t;H�]H�uH�T$H��A�ԃ��to�D$H�L$dH3%(uVH��[]A\A]�@H��H�]��������u�H��讧��H���f�H�߃�t�s���뢐�[������H���!H��L��H�5nH�81����fD��H��wnH�
[�Hc�H�>��Df�?TC�f�?EG��f�?PU�/f�?UD�Tf�?ID�yf�?ES��f�?RAu�W�xD������f�H�IPPROTO_H9u�ICMPu�f�V6u���H�IPPROTO_H9��H�IPPROTO_H9�BH�IPPROTO_H9u��ROUTu�f�INu��G�������f�?IP��f�?TP�"f�?AH�W����31��fD�?ICMP�$�?IGMP���?IPV6���?NONE�����;1����?ICMP�����f�V6��1��:���?DSTO�L�?HOPO���?ROUT�����f�IN������G�����1��+�DH�FRAGMENTH9������,1��@H�IPPROTO_H9��H�IPPROTO_H9��H�IPPROTO_H9�?���f�AH�3���1��3�f�H�IPPROTO_H9�mH�IPPROTO_H9�JH�IPPROTO_H9��H�IPPROTO_H9�H�IPPROTO_H9�4H�IPPROTO_H9�LH�IPPROTO_H9�����f�RA������
W�����1����@H�IPPROTO_H9��H�IPPROTO_H9��H�IPPROTO_H9�H�IPPROTO_H9�4����NONE�'���1��;�fDH�IPPROTO_H3H�FRAGMENTH3wH�������H	���1��,�f�PT�����S�����1��f�f�EG������
P�����1���IGMP�1���1���f.�f�TP����1����P�����@�1����1����P����1���D�1����DSTO�>���f�PT�2����S�(���1��<�@f�IP�g��������ICMP�F���1���f�f�TC������
P�}����g���Df�PT������S��������HOPO�����f�PT������S�����1���@�)1����IPV6����1��)�f.��P����1���Df�PU������
P����ڀP�����1���Df�UD�����
P�����ڀP�}���1���f�ID������
P������߀P�]���1��2�f�ES������
P�������f.���H��Hc�H�=��!dH�%(H�D$1�H���V���H�$��u1�H�L$dH3%(H��uH����O���ff.�@��H��Hc�H�=�!dH�%(H�D$1�H�����H�$��u1�H�L$dH3%(H��uH������ff.�@��H��Hc�H�=��!dH�%(H�D$1�H��薔��H�$��u1�H�L$dH3%(H��uH���菗��ff.�@��H��Hc�H�=N�!dH�%(H�D$1�H���6���H�$��u1�H�L$dH3%(H��uH����/���ff.�@��H��Hc�H�=��!dH�%(H�D$1�H���֓��H�$��u1�H�L$dH3%(H��uH����ϖ��ff.�@��H��Hc�H�=~�!dH�%(H�D$1�H���v���H�$��u1�H�L$dH3%(H��uH����o���ff.�@��H��Hc�H�=�!dH�%(H�D$1�H������H�$��u1�H�L$dH3%(H��uH�������ff.�@��H��Hc�H�=��!dH�%(H�D$1�H��趒��H�$��u1�H�L$dH3%(H��uH���试��ff.�@��H��Hc�H�=F�!dH�%(H�D$1�H���V���H�$��u1�H�L$dH3%(H��uH����O���ff.�@��H��Hc�H�=��!dH�%(H�D$1�H�����H�$��u1�H�L$dH3%(H��uH������ff.�@��H��Hc�H�=v�!dH�%(H�D$1�H��薑��H�$��u1�H�L$dH3%(H��uH���菔��ff.�@��H��Hc�H�=�!dH�%(H�D$1�H���6���H�$��u1�H�L$dH3%(H��uH����/���ff.�@��H��Hc�H�=��!dH�%(H�D$1�H���֐��H�$��u1�H�L$dH3%(H��uH����ϓ��ff.�@��H�5-�!H�n���f���H�5��!H�n��f�����H��H��m��uH�5S�!H���{�H�5��!H���i�f�����H��H�Ѓ�u��)w8H�
v��Hc�H�>��D��uH�5��!H�uwH��H����H�Ǩt�T���H�����3���H���fDH�5a�!H�ZwH��H�����fDH�5i�!H�wmH��H����fDH�5��!H�9mH��H����fDH�51�!H��lH��H���n�ff.�����H��H�Ѓ�u��)w8H�
�u��Hc�H�>��D��uH�5��!H��lH��H����H�Ǩt�T���H�����3���H���fDH�5a�!H��lH��H�����fDH�5i�!H�mH��H����fDH�5��!H��lH��H����fDH�51�!H�rlH��H���n�ff.���H�5%�!H��l�I�f���SH�$�!H�5�lH�;�5���H�;�H�5@bH���!�
���H�=��!�H�5!b��H�;�H�5b�ޛ��H�=��!�H�5�a�ƛ��H�;�H�5Cl貛��H�=��!�H�5+l蚛��H�;�	H�5 l膛��H�=_�!�	H�5l�n���H�;�H�5�a�Z���H�=3�!�H�5�a�B���H�;�H�5ia�.���H�=�!�H�5Qa����H�;�H�5�`����H�=��!�H�5�`���H�;�H�5�`�֚��H�=��!�H�5�`辚��H�;�H�5L`誚��H�=��!�H�54`蒚��H�;�H�5(`�~���H�=W�!�H�5`�f���H�;�H�5�j�R���H�=+�!�H�5�j�:���H�;�H�5�j�&���H�=��!�H�5�j����H�;�H�5�_���H�=��!�H�5�_���H�;�H�5�_�Ι��H�=��!�H�5p_趙��H�;�H�5d_袙��H�={�!�H�5L_芙��H�;�H�5@_�v���H�=O�!�H�5(_�^���H�;�	H�5�^�J���H�=#�!�	H�5�^�2���H�;�	H�5�^����H�=��!�	H�5~^����H�;�H�5�^��H�=��!�H�5�^�ژ��H�;�H�5�^�Ƙ��H�=��!�H�5�^讘��H�;�H�5Oi蚘��H�=s�!�H�57i肘��H�;�H�5,i�n���H�=G�!�H�5i�V���H�;�-H�5�]�B���H�=�!�-H�5�]�*���H�;�-H�5�]����H�=��!�-H�5�]���H�;�!H�5�h���H�=��!�!H�5�h�җ��H�;�!H�5�h辗��H�=��!�!H�5vh覗��H�;�EH�5d]蒗��H�=k�!�EH�5L]�z���H�;�EH�5@]�f���H�=?�!�EH�5(]�N���H�;�[H�5�\�:���H�=�!�[H�5�\�"���H�;�[H�5�\����H�=��!�[H�5�\���H�;�#H�5�\���H�=��!�#H�5�\�ʖ��H�;�#H�5�\趖��H�=��!�#H�5�\螖��H�;�H�5%\芖��H�=c�!�H�5
\�r���H�;�H�57g�^���H�=7�!�H�5g�F���H�;�H�5g�2���H�=�!�H�5�f����H�;�	H�5�f����H�=��!�	H�5�f���H�;�H�5�f�ڕ��H�=��!�H�5�f�•��H�;�AH�5�f讕��H�=��!�AH�5�f薕��H�;�H�5�f肕��H�=[�!�H�5tf�j���H�;�H�5kf�V���H�=/�!�H�5Sf�>���H�;��H�5Kf�*���H�=�!��H�53f����H�;�!H�5,f���H�=��!�!H�5f���H�;�H�5
f�Ҕ��H�=��!�H�5�e躔��H�;�H�5�e覔��H�=�!�H�5�e莔��H�;�H�5�e�z���H�=S�!�H�5�e�b���H�;� H�5�e�N���H�='�!� H�5�e�6���H�;�@H�5~e�"���H�=��!�@H�5fe�
���H�;��H�5_e���H�=��!��H�5Ge�ޓ��H�;�H�5@e�ʓ��H�=��!�H�5(e貓��H�;�@H�5e螓��H�=w�!�@H�5e膓��H�;�H�5�Y�r���H�=K�!�H�5�Y�Z���H�;�H�5�d�F���H�=�!�H�5�d�.���H�;�
H�5�d����H�=��!�
H�5�d����H�;�#H�5�d���H�=��!�#H�5qd�֒��H�;�H�5#Y�’��H�=��!�H�5Y誒��H�;�H�5lY薒��H�=o�!�H�5TY�~���H�;�H�5MY�j���H�=C�!�H�55Y�R���H�;�
H�5�X�>���H�=�!�
H�5�X�&���H�;�H�5�X����H�=��!�H�5�X���H�;�H�5�X���H�=��!�H�5hX�Α��H�;�#H�5`X躑��H�=��!�#H�5HX袑��H�;�-H�5@X莑��H�=g�!�-H�5(X�v���H�;�;H�5�W�b���H�=;�!�;H�5�W�J���H�;�gH�5�W�6���H�=�!�gH�5�W����H�;�yH�5#X�
���H�=��!�yH�5X��H�;�eH�5�W�ސ��H�=��!�eH�5�W�Ɛ��H�;�YH�5�W貐��H�=��!�YH�5�W蚐��H�;�H�5�W膐��H�=_�!�H�5�W�n���H�;�uH�5dW�Z���H�=3�!�uH�5LW�B���H�;�SH�5W�.���H�=�!�SH�5W����H�;�wH�5�V����H�=��!�wH�5�V���H�;�WH�5W�֏��H�=��!�WH�5�V辏��H�;��H�5tV誏��H�=��!��H�5\V蒏��H�;�H�5!a�~���H�=W�!�H�5	a�f���H�;�'H�5a�R���H�=+�!�'H�5�`�:���H�;�H�5�`�&���H�=��!�H�5�`����H�;H�5�`H��������H�=��!H�����H�5�`�؎��H�;��H�5�`�Ď��H�=��!��H�5�`謎��H�;H�5�`H��蓎��H�=l�!H��H�5i`�v���H�;H�5n`H���]���H�=6�!H��H�5G`�@���H�;H�5N`H����'���H�=�!H���H�5'`�
���H�;H�5/`H�������H�=��!H�����H�5`�ԍ��H�;�	H�5�W���H�=��!�	H�5�W訍��H�;�H�5�W蔍��H�=m�!�H�5}W�|���H�;�H�5?W�h���H�=A�!�H�5'W�P���H�;�H�5W�<���H�=�!�H�5W�$���H�;�
H�5^W����H�=��!�
H�5FW���H�;�H�5dW���H�=��!�H�5LW�̌��H�;�H�5�V踌��H�=��!�H�5�V蠌��H�;�+H�5xV茌��H�=e�!�+H�5`V�t���H�;�H�5wV�`���H�=9�!�H�5_V�H���H�;�AH�5�V�4���H�=
�!�AH�5�V����H�;�CH�5W����H�=��!�CH�5�V��H�;�EH�5W�܋��H�=��!�EH�5W�ċ��H�;�GH�5W谋��H�=��!�GH�5�V蘋��H�;�IH�5�V脋��H�=]�!�IH�5�V�l���H�;�H�5�V�X���H�=1�!�H�5�V�@���H�;�H�5�V�,���H�=�!�H�5�V����H�;�)H�5�V����H�=��!�)H�5pV���H�;�H�5�U�Ԋ��H�=��!�H�5�U輊��H�;�H�5�T訊��H�=��!�H�5�T萊��H�;�H�5�T�|���H�=U�!�H�5�T�d���H�;�H�5,U�P���H�=)�!�H�5U�8���H�;�H�5QT�$���H�=��!�H�59T����H�;�H�50T���H�=��!�H�5T���H�;�H�5�S�̉��H�=��!�H�5�S贉��H�;�H�5�S蠉��H�=y�!�H�5�S舉��H�;�!H�5`T�t���H�=M�!�!H�5HT�\���H�;�#H�5�S�H���H�=!�!�#H�5�S�0���H�;�%H�5_S����H�=��!�%H�5GS����H�;�'H�5�S��H�=��!�'H�5vS�؈��H�;�H�5�S�Ĉ��H�=��!�H�5�S謈��H�;�H�5�S蘈��H�=q�!�H�5�S耈��H�;�H�5S�l���H�=E�!�H�5S�T���H�;�KH�5�S�@���H�=�!�KH�5�S�(���H�;�MH�5S����H�=��!�MH�5�R���H�;�OH�5�S���H�=��!�OH�5�S�Ї��H�;�QH�5�S輇��H�=��!�QH�5�S複��H�;�SH�5�Q萇��H�=i�!�SH�5�Q�x���H�;�UH�5�Y�d���H�==�!�UH�5�Y�L���H�;�WH�5�Y�8���H�=�!�WH�5qY� ���H�;�YH�5pY����H�=��!�YH�5XY��H�;�[H�5YY���H�=��!�[H�5AY�Ȇ��H�;�]H�5?Y贆��H�=��!�]H�5'Y蜆��H�;�_H�5+Y舆��H�=a�!�_H�5Y�p���H�;�aH�5Y�\���H�=5�!�aH�5Y�D���H�;�H�5�X�0���H�=	�!�H�5�X����H�;�H�5�X����H�=��!�H�5�X���H�;�H�5�X�؅��H�=��!�H�5�X���H�;�H�5�M謅��H�=��!�H�5�M蔅��H�;�H�5�M者��H�=Y�!�H�5�M�h���H�;�H�5�L�T���H�=-�!�H�5�L�<���H�;�	H�5X�(���H�=�!�	H�5X����H�;�H�5NM���H�=��!�H�56M���H�;�
H�5/M�Є��H�=��!�
H�5M踄��H�;�H�5L褄��H�=}�!�H�5�K茄��H�;�H�5�K�x���H�=Q�!�H�5�K�`���H�;�AH�5M�L���H�=%�!�AH�5�L�4���H�;�CH�5�L� ���H�=��!�CH�5�L����H�;�H�5`L��H�=��!�H�5HL�܃��H�;�H�5AL�ȃ��H�=��!�H�5)L调��H�;�H�5DK蜃��H�=u�!�H�5,K脃��H�;�H�5$K�p���H�=I�!�H�5K�X���H�;�H�5�J�D���H�=�!�H�5�J�,���H�;�!H�5�J����H�=�!�!H�5�J����H�;�#H�5�J���H�=�!�#H�5�J�Ԃ��H�;�%H�5�J���H�=��!�%H�5�J訂��H�;�'H�5xJ蔂��H�=m�!�'H�5`J�|���H�;�)H�5XJ�h���H�=A�!�)H�5@J�P���H�;�+H�58J�<���H�=�!�+H�5 J�$���H�;�=H�5�J����H�=�!�=H�5�J���H�;�-H�5fK���H�=��!�-H�5NK�́��H�;�/H�5�Z踁��H�=��!�/H�5�Z蠁��H�;�1H�5�Z茁��H�=e�!�1H�5�Z�t���H�;�3H�5gJ�`���H�=9�!�3H�5OJ�H���H�;�5H�5[J�4���H�=
�!�5H�5CJ����H�;�7H�5@J����H�=�!�7H�5(J��H�;�5H�5�I�܀��H�=��!�5H�5rI�Ā��H�;�9H�5�H谀��H�=��!�9H�5�H蘀��H�;�;H�5
I脀��H�=]�!�;H�5�H�l���H�;�GH�52I�X���H�=1�!�GH�5I�@���H�;�?H�5�G�,���H�=�!�?H�5�G����H�;�EH�5�G����H�=پ!�EH�5�G����H�;�IH�56G����H�=��!�IH�5G���H�;�KH�5�H���H�=��!�KH�5�H���H�;�MH�5�G�|��H�=U�!�MH�5xG�d��H�;�OH�5�F�P��H�=)�!�OH�5�F�8��H�;�QH�5DG�$��H�=��!�QH�5,G���H�;�SH�5�G�~��H�=ѽ!�SH�5�G��~��H�;�UH�5�F��~��H�=��!�UH�5�F�~��H�;�WH�5�Q�~��H�=y�!�WH�5�Q�~��H�;�YH�5lG�t~��H�=M�!�YH�5TG�\~��H�;�[H�5�G�H~��H�=!�!�[H�5�G�0~��H�;�]H�5�F�~��H�=��!�]H�5�F�~��H�;�_H�5KG��}��H�=ɼ!�_H�53G��}��H�;�aH�5
G��}��H�=��!�aH�5�F�}��H�;�H�5YK�}��H�=q�!�H�5AK�}��H�;�H�5K�l}��H�=E�!�H�5�J�T}��H�;�H�5BP�@}��H�=�!�H�5*P�(}��H�;�H�5iK�}��H�=�!�H�5QK�|��H�;�H�5�O��|��H�=��!�H�5�O��|��H�;�
H�5�J�|��H�=��!�
H�5qJ�|��H�;�	H�5uJ�|��H�=i�!�	H�5]J�x|��H�;�H�5pJ�d|��H�==�!�H�5XJ�L|��H�;�H�5J�8|��H�=�!�H�5�I� |��H�;�H�5�I�|��H�=�!�H�5�I��{��H�;�H�5�I��{��H�=��!�H�5�I��{��H�;�H�5_I�{��H�=��!�H�5GI�{��H�;�H�5�I�{��H�=a�!�H�5�I�p{��H�;�/H�5[I�\{��H�=5�!�/H�5CI�D{��H�;�H�5fI�0{��H�=	�!�H�5NI�{��H�;�H�5�I�{��H�=ݹ!�H�5�I��z��H�;�+H�5�H��z��H�=��!�+H�5�H�z��H�;�'H�5bH�z��H�=��!�'H�5JH�z��H�;�-H�5I�z��H�=Y�!�-H�5I�hz��H�;�)H�5�H�Tz��H�=-�!�)H�5�H�<z��H�;�#H�5mH�(z��H�=�!�#H�5UH�z��H�;�!H�5�H�y��H�=ո!�!H�5�H��y��H�;�1H�5�G��y��H�=��!�1H�5�G�y��H�;�%H�5,H�y��H�=}�!�%H�5H�y��H�u�!�H�5�LH�;�qy��H�=J�!�H�5mL�Yy��H�;H����H�5`L�Cy��H�=�!H����H�5FL�)y��H�;H�����H�5?L�y��H�=�!H�����H�5%L�x��H�;H�����H�5L��x��H�=��!H�����H�5�K��x��H�;H�����H�5�K�x��H�=��!H�����H�5�K�x��H�;H�����H�5�K�x��H�=\�!H�����H�5�K�ix��H�;H����H�5�K�Sx��H�=,�!H����H�5�K�9x��H�;H�����H�5�K�#x��H�=��!H�����H�5kK�	x��H�;H�����H�5`K��w��H�=̶!H�����H�5FK��w��H�;H����H�5;K��w��H�=��!H����H�5!K�w��H�;H���H�5K�w��H�=l�!H���H�5�J�yw��H�;H���H�5�J�cw��H�=<�!H���H�5�J�Iw��H�;H����H�5�J�3w��H�=�!H����H�5�J�w��H�;�H�5�J�w��H�=޵!�H�5�J��v��H�;�H�5�J��v��H�=��!�H�5uJ�v��H�;�	H�5nJ�v��H�=��!�	H�5VJ�v��H�;�H�5QJ�v��H�=Z�!�H�59J�iv��H�;�!H�54J�Uv��H�=.�!�!H�5J�=v��H�;�AH�5J�)v��H�=�!�AH�5�I�v��H�;�H�5�I�u��H�=ִ!�H�5�I��u��H�;�H�5�I��u��H�=��!�H�5�I�u��H�;�AH�5�I�u��H�=~�!�AH�5�I�u��H�;�	H�5�I�yu��H�=R�!�	H�5wI�au��H�;�H�5mI�Mu��H�=&�!�H�5UI�5u��H�;�H�5PI�!u��H�=��!�H�58I�	u��H�;�H�50I�t��H�=γ!�H�5I��t��H�;�!H�5I��t��H�=��!�!H�5�H�t��H�;�H�5zC�t��H�=v�!�H�5bC�t��H�;�H�5VC�qt��H�=J�!�H�5>C�Yt��H�;�H�52C�Et��H�=�!�H�5C�-t��H�;�)H�5�@�t��H�=�!�)H�5�@�t��H�;�+H�5�@��s��H�=Ʋ!�+H�5�@��s��H�;�%H�5.A�s��H�=��!�%H�5A�s��H�;�#H�5�@�s��H�=n�!�#H�5�@�}s��H�;�'H�5�@�is��H�=B�!�'H�5�@�Qs��H�;�!H�5b@�=s��H�=�!�!H�5J@�%s��H�;�5H�5?�s��H�=�!�5H�5?�r��H�;�H�5J?��r��H�=��!�H�52?��r��H�;�}H�5,?�r��H�=��!�}H�5?�r��H�;�wH�5�>�r��H�=f�!�wH�5�>�ur��H�;�iH�5�>�ar��H�=:�!�iH�5�>�Ir��H�;�mH�5f>�5r��H�=�!�mH�5N>�r��H�;�H�5G>�	r��H�=�!�H�5/>��q��H�;�{H�5(>��q��H�=��!�{H�5>��q��H�;�eH�5	>�q��H�=��!�eH�5�=�q��H�;�uH�5T>�q��H�=^�!�uH�5<>�mq��H�;�gH�5�>�Yq��H�=2�!�gH�5x>�Aq��H�;�kH�5
>�-q��H�=�!�kH�5�=�q��H�;�cH�5�=�q��H�=گ!�cH�5�=��p��H�;�qH�5d=��p��H�=��!�qH�5L=�p��H�;��H�5W=�p��H�=��!��H�5?=�p��H�;�sH�5~<�}p��H�=V�!�sH�5f<�ep��H�;�oH�5�=�Qp��H�=*�!�oH�5�=�9p��H�;�H�5�=�%p��H�=��!�H�5h=�
p��H�;�yH�5�<�o��H�=Ү!�yH�5�<��o��H�;��H�5�;��o��H�=��!��H�5�;�o��H�;�!H�5�C�o��H�=z�!�!H�5�C�o��H�;�]H�5�C�uo��H�=N�!�]H�5�C�]o��H�;�!H�5�C�Io��H�="�!�!H�5�C�1o��H�;�!H�5�C�o��H�=��!�!H�5�C�o��H�;�H�5zC��n��H�=ʭ!�H�5bC��n��H�;�H�5�W��n��H�=��!�H�5�W�n��H�;�;H�5�=�n��H�=r�!�;H�5x=�n��H�;�GH�5r=�mn��H�=F�!�GH�5Z=�Un��H�;�KH�5v=�An��H�=�!�KH�5^=�)n��H�;�H�5*=�n��H�=�!�H�5=�m��H�;�SH�5=��m��H�=¬!�SH�5�<��m��H�;�H�5PB�m��H�=��!�H�58B�m��H�;��H�51B�m��H�=j�!��H�5B�ym��H�;�H�5B�em��H�=>�!�H�5�A�Mm��H�;�	H�5�A�9m��H�=�!�	H�5�A�!m��H�;�H�5�A�
m��H�=�!�H�5�A�l��H�;�H�5�A��l��H�=��!�H�5�A��l��H�;�H�5�A�l��H�=��!�H�5|A�l��H�;� H�5sA�l��H�=b�!� H�5[A�ql��H�;�H�5UA�]l��H�=6�!�H�5=A�El��H�;�AH�53A�1l��H�=
�!�AH�5A�l��H�;�!H�5A�l��H�=ު!�!H�5�@��k��H�;�@H�5�@��k��H�=��!�@H�5�@�k��H�;�H�5�@�k��H�=��!�H�5�@�k��H�;��H�5�@�k��H�=Z�!��H�5�@�ik��H�;�H�5�@�Uk��H�=.�!�H�5�@�=k��H�;�H�5x@�)k��H�=�!�H�5`@�k����d���	H�=�0H�ѩ!��j��H�=ũ!�H���@`���H�=\0�j��H�=��!�-H���`���H�=|0�j��H�={�!�"H���_���H�=L;�uj��H�=V�!�H����_���H�=�/�Pj��H�=1�!�H���_���H�=�:�+j��H�=�!�H���_���H�= 0�j��H�=�!�H���b_���H�=b/��i��H�=¨!�H���=_���H�=�/�i��H�=��!�H���_���H�=Y/�i��H�=x�!�H����^���H�=%:�ri��H�=S�!�
H����^���H�=�.�Mi��H�=.�!�H���^���	H�=/�(i��H�=	�!1�H���^����b���	H�=/H�ߧ!�h��H�=ӧ!�H���V^���H�=r.��h��H�=��!�-H���1^���H�=�.�h��H�=��!�"H���^���H�=b9�h��H�=d�!�H����]���H�=�-�fh��H�=?�!�H����]���H�=9�Ah��H�=�!�H���]���H�=6.�h��H�=��!�H���x]���H�=x-�g��H�=Ц!�H���S]���H�=�-��g��H�=��!�H���.]���H�=o-�g��H�=��!�H���	]���H�=;8�g��H�=a�!�
H����\���H�=-�cg��H�=<�!�H���\���	H�=0-�>g��H�=�!1�H���\���H�={-�g��H�=��!�H���x\���H�=�,�f��H�=Х!�-H���S\���H�=�,��f��H�=��!�"H���.\���H�=�7�f��H�=��!�H���	\���H�=,�f��H�=a�!�H����[���H�=+7�cf��H�=<�!�H���[���	H�=[,�>f��H�=�!�H���[���H�=�+�f��H�=�!�H���u[���H�=�+��e��H�=ͤ!�H���P[���H�=�+��e��H�=��!�H���+[���H�=`6�e��H�=��!�
H���[���H�=:+�e��H�=^�!�H����Z���H�=U+�`e��H�=9�!1�H���Z���_���H�=�*H��!�2e��H�=�!�H���Z���	H�=+�
e��H�=ޣ!�H���iZ���H�=�*��d��H�=��!�-H���DZ���H�=�*��d��H�=��!�"H���Z���H�=~5�d��H�=o�!�H���Y���H�=*�yd��H�=J�!�H����Y���H�="5�Td��H�=%�!�H���Y���H�=V*�/d��H�=�!�H���Y���H�=�)�
d��H�=ۢ!�H���fY���H�=�)��c��H�=��!�H���AY���H�=�)�c��H�=��!�H���Y���H�=W4�c��H�=l�!�
H���X���H�=0)�vc��H�=G�!�H����X���	H�=M)�Qc��H�="�!1�H���X���]���H�=u)H���!�#c��H�=�!�
H���X���H�=U)�b��H�=ǡ!�H���ZX���H�=�3��b��H�=��!�H���5X���H�=U3�b��H�=}�!�H���X���
H�=�(�b��H�=X�!�H����W���H�=�(�jb��H�=3�!�H����W���!\���H�=)H��!�9b��H�=��!��H���W���H�=])�b��H�=ՠ!�+H���pW���H�=�(��a��H�=��!�;H���KW���H�=�(��a��H�=��!�)H���&W���H�=�(�a��H�=f�!�:H���W���H�=�(�a��H�=A�!1�H����V���H�=�(�^a��H�=�!�,H���V���H�=(�9a��H�=��!�2H���V���H�==(�a��H�=՟!�<H���pV���
H�=v'��`��H�=��!�3H���KV���
H�=F'��`��H�=��!�H���&V���H�=g'�`��H�=f�!�H���V���H�=6'�`��H�=A�!�H����U���H�='�[`��H�=�!�H���U���H�=�&�6`��H�=��!�H���U���H�=�&�`��H�=Ҟ!�H���mU���H�=�&��_��H�=��!�H���HU���H�=�&��_��H�=��!�H���#U���
H�=&�_��H�=c�!1�H���U���\Y���H�=U&H�9�!�t_��H�=-�!��H����T���H�=�&�O_��H�=�!�+H���T���H�=7&�*_��H�=�!�;H���T���H�=&�_��H�=��!�)H���aT���H�=�%��^��H�=��!�:H���<T���H�=�%�^��H�=t�!1�H���T���H�=�%�^��H�=R�!�,H���S���H�=B%�t^��H�=-�!�2H����S���H�=x%�O^��H�=�!�<H���S���
H�=�$�*^��H�=�!�3H���S���
H�=�$�^��H�=��!�H���aS���H�=�$��]��H�=��!�H���<S���H�=q$�]��H�=t�!�H���S���H�=@$�]��H�=O�!�H����R���H�=$�q]��H�=*�!�H����R���H�=�#�L]��H�=�!�H���R���H�=$�']��H�=�!�H���R���H�=�#�]��H�=��!�H���^R���
H�=N#��\��H�=��!1�H���<R���
H�=!#�\��H�=t�!�H���R���H�=<-�\��H�=O�!��H����Q���H�=�#�q\��H�=*�!�+H����Q���H�=a#�L\��H�=�!�;H���Q���H�=/#�'\��H�=�!�)H���Q���H�=$#�\��H�=��!�:H���^Q���H�=�(��[��H�=��!1�H���<Q���H�=#�[��H�=t�!�,H���Q���H�=l"�[��H�=O�!�2H����P���H�=�(�q[��H�=*�!�<H����P���H�=�!�L[��H�=�!�3H���P���H�=�!�'[��H�=�!�H���P���H�=�!�[��H�=��!�H���^P���H�=bI��Z��H�=��!�H���9P���H�=j!�Z��H�=q�!�H���P���H�=9!�Z��H�=L�!�H����O���H�=�H�nZ��H�='�!�H����O���H�=D!�IZ��H�=�!�H���O���H�=!�$Z��H�=ݘ!�H���O���H�=o%�Y��H�=��!1�H���^O���H�=4<��Y��H�=��!�H���9O���S���H�=#H�i�!�Y��H�=]�!�0H���O���H�=�"�Y��H�=8�!�/H����N���H�="�bY��H�=�!�.H���N���H�=�"�=Y��H�=�!�-H���N���H�= "�Y��H�=ɗ!�,H���tN���H�=�+��X��H�=��!�+H���ON���H�=
!��X��H�=�!�*H���*N���H�=�!�X��H�=Z�!�)H���N���H�=� �X��H�=5�!�(H����M���	H�=��_X��H�=�!�'H���M���H�=^ �:X��H�=�!�&H���M���H�=<!�X��H�=Ɩ!�%H���qM���H�=b��W��H�=��!�$H���LM���
H�=x��W��H�=|�!�"H���'M���
H�=H�W��H�=W�!�H���M���H�=k �W��H�=2�!�#H����L���H�=��\W��H�=
�!�H���L���H�=O�7W��H�=�!�H���L���
H�=��W��H�=Õ!�H���nL���H�=5 ��V��H�=��!�H���IL���H�=���V��H�=y�!�H���$L���H�=��V��H�=T�!�H���K���H�=�/�~V��H�=/�!�H����K��� H�=�/�YV��H�=
�!�H���K���H�=��4V��H�=�!�H���K���
H�=��V��H�=��!�H���kK���H�=���U��H�=��!�H���FK���H�=���U��H�=v�!�H���!K���H�=��U��H�=Q�!�H���J���H�=c�{U��H�=,�!�H����J���H�=2�VU��H�=�!�H���J���H�=�1U��H�=�!�H���J���	H�=��U��H�=��!�
H���hJ���H�=���T��H�=��!�H���CJ���H�=z��T��H�=s�!�H���J���H�=&�T��H�=N�!�
H���I���H�=��xT��H�=)�!�	H����I���H�=.�ST��H�=�!�!H���I���H�=��.T��H�=ߒ!� H���I���	H�=��	T��H�=��!�H���eI���	H�=^��S��H�=��!�H���@I���H�=.�S��H�=p�!�H���I���H�=��S��H�=K�!�H���H���H�=u&�uS��H�=&�!�H����H���H�=��PS��H�=�!�H���H���H�=��+S��H�=ܑ!�H���H���H�=N�S��H�=��!�H���bH���H�=�%��R��H�=��!�H���=H���H�=�R��H�=m�!�0H���H���H�=�R��H�=H�!�/H����G���	H�=�rR��H�=#�!�.H����G���H�=��MR��H�=��!�-H���G���H�=3�(R��H�=ِ!�,H���G���H�=%�R��H�=��!�+H���_G���H�=��Q��H�=��!�*H���:G���H�=� �Q��H�=j�!�)H���G���H�=��Q��H�=E�!�(H����F���H�=
�oQ��H�= �!�'H����F���H�=q�JQ��H�=��!�&H���F���H�=n �%Q��H�=֏!�%H���F���H�=u�Q��H�=��!�$H���\F���H�=���P��H�=��!�"H���7F���H�=[�P��H�=g�!�H���F���H�=��P��H�=B�!�#H����E���	H�=w�lP��H�=�!�H����E���H�=b�GP��H�=��!�H���E���
H�=��"P��H�=ӎ!�H���~E���
H�=H�O��H�=��!�H���YE���
H�=��O��H�=��!�H���4E���H�=��O��H�=d�!�H���E���H�=;�O��H�=?�!�H����D���H�=2�iO��H�=�!�H����D���H�=��DO��H�=��!�H���D���
H�=��O��H�=Ѝ!�H���{D���H�=	�N��H�=��!�H���VD���H�=���N��H�=��!�H���1D���H�=��N��H�=a�!�H���D���H�=v�N��H�=<�!�H����C���H�=E�fN��H�=�!�H����C���H�=�AN��H�=�!�H���C���H�=��N��H�=͌!�
H���xC���H�=��M��H�=��!�H���SC���H�=���M��H�=��!�H���.C���	H�=9�M��H�=^�!�
H���	C���	H�=�M��H�=9�!�	H����B���H�=A�cM��H�=�!�!H���B���H�=
�>M��H�=�!� H���B���H�=��M��H�=ʋ!�H���uB���H�=q��L��H�=��!�H���PB���	H�=�!��L��H�=��!�H���+B���	H�=��L��H�=[�!�H���B���H�=��L��H�=6�!�H����A���H�=	 �`L��H�=�!�H���A���	H�=��;L��H�=�!�H���A���	H�=a�L��H�=NJ!�H���rA���H�=� ��K��H�=��!�H���MA���E���H�==H�u�!�K��H�=i�!�)H���A���H�=��K��H�=D�!�(H���@���H�=:�vK��H�=�!�'H����@���H�=]�QK��H�=��!�&H���@���H�=��,K��H�=Չ!�%H���@���H�=��K��H�=��!�H���c@���H�= ��J��H�=��!�H���>@���H�=��J��H�=f�!1�H���@���H�=I�J��H�=D�!�H���?���
H�=��vJ��H�=�!�H����?���H�=��QJ��H�=��!�H���?���H�=(�,J��H�=Ո!�H���?���H�=q�J��H�=��!�H���c?���H�=���I��H�=��!�H���>?���
H�=�I��H�=f�!�
H���?���
H�=��I��H�=A�!�H����>���H�=_�sI��H�=�!�
H����>���
H�=��NI��H�=��!�	H���>���
H�=[�)I��H�=҇!�H���>���H�=��I��H�=��!�H���`>���H�=w��H��H�=��!�H���;>���H�=��H��H�=c�!�H���>���H�=@�H��H�=>�!�H����=���H�=��pH��H�=�!�$H����=���H�=��KH��H�=�!�#H���=���H�=u�&H��H�=φ!�"H���=���H�=�H��H�=��!�!H���]=���H�=���G��H�=��!� H���8=���
H�=��G��H�=`�!�H���=���	H�=��G��H�=;�!�H����<���
H�=��mG��H�=�!�H����<���H�=��HG��H�=�!�H���<���H�=��#G��H�=̅!�H���<���H�=��F��H�=��!�H���Z<���H�=���F��H�=��!�H���5<���
H�=��F��H�=]�!�H���<���
H�=��F��H�=8�!�H����;���H�=��jF��H�=�!�)H����;���H�=?�EF��H�=�!�(H���;���H�=�� F��H�=Ʉ!�'H���|;���H�=s�E��H�=��!�&H���W;���H�=L��E��H�=�!�%H���2;���H�=q�E��H�=Z�!�H���
;���
H�=��E��H�=5�!�H����:���
H�=��gE��H�=�!1�H����:���H�=��EE��H�=�!�H���:���H�=�� E��H�=Ƀ!�H���|:���H�=��D��H�=��!�H���W:���H�=���D��H�=�!�H���2:���H�=�D��H�=Z�!�H���
:���H�=��D��H�=5�!�H����9���H�=��gD��H�=�!�
H����9���H�=��BD��H�=�!�H���9���H�=�D��H�=Ƃ!�
H���y9���
H�=}�C��H�=��!�	H���T9���H�=���C��H�=|�!�H���/9���H�=��C��H�=W�!�H���
9���H�=$�C��H�=2�!�H����8���H�=D�dC��H�=
�!�H���8���H�=��?C��H�=�!�H���8���H�=��C��H�=Á!�$H���v8���H�=Y�B��H�=��!�#H���Q8���H�=f��B��H�=y�!�"H���,8���
H�=�
�B��H�=T�!�!H���8���H�=��B��H�=/�!� H����7���H�=��aB��H�=
�!�H���7���H�=;�<B��H�=�!�H���7���H�=��B��H�=��!�H���s7���H�=���A��H�=��!�H���N7���H�=.��A��H�=v�!�H���)7���H�=��A��H�=Q�!�H���7���H�=��A��H�=,�!�H����6���H�=r�^A��H�=�!�H���6���H�=��9A��H�=�!�H���6����:���H�=7
H��!�A��H�=�!�CH���d6���H�=�
��@��H�=�!�<H���?6���H�=)�@��H�=_!1�H���6���H�=�
�@��H�==!�7H���5���
H�=��w@��H�=!�9H����5���H�=
�R@��H�=�~!�BH���5���H�=��-@��H�=�~!�8H���5���H�=	
�@��H�=�~!�1H���d5���H�=���?��H�=�~!�5H���?5���H�=
�?��H�=_~!�3H���5���H�=x�?��H�=:~!�:H���4���H�=��t?��H�=~!�2H����4���H�=��O?��H�=�}!�=H���4���H�=x�*?��H�=�}!�	H���4���H�=F�?��H�=�}!�6H���a4���
H�=q��>��H�=�}!�4H���<4���H�=�
�>��H�=\}!�;H���4���
H�=�>��H�=7}!�>H����3���
H�=�
�q>��H�=}!�H����3���H�=h
�L>��H�=�|!�H���3���H�=\�'>��H�=�|!�H���3���H�=��>��H�=�|!�H���^3���H�=��=��H�=~|!�H���93���H�=5�=��H�=Y|!�H���3���H�=a
�=��H�=4|!�H����2���H�=
�n=��H�=|!�H����2���H�=
�I=��H�=�{!�CH���2���H�=;
�$=��H�=�{!�<H���2���H�=o
�<��H�=�{!1�H���^2���H�=;
��<��H�=~{!�7H���92���H�=`	�<��H�=Y{!�9H���2���
H�=V	�<��H�=4{!�BH����1���	H�=	�n<��H�={!�8H����1���H�=O	�I<��H�=�z!�1H���1���H�=	�$<��H�=�z!�5H���1���H�=K	�;��H�=�z!�3H���[1���H�=���;��H�={z!�:H���61���H�=��;��H�=Vz!�2H���1���H�=��;��H�=1z!�=H����0���H�=��k;��H�=z!�	H����0���H�=?�F;��H�=�y!�6H���0���H�=q�!;��H�=�y!�4H���}0���H�=_�:��H�=�y!�;H���X0���H�=_��:��H�=xy!�>H���30���H�=,�:��H�=Sy!�H���0���H�=��:��H�=.y!�H����/���H�=��h:��H�=	y!�H����/���H�=��C:��H�=�x!�H���/���H�=F�:��H�=�x!�H���z/���H�={�9��H�=�x!�H���U/���H�=���9��H�=ux!�H���0/���
H�=b�9��H�=Px!�H���/���f3���H�=H�#x!�~9��H�=x!�H����.���
H�=��Y9��H�=�w!�H���.���H�=�49��H�=�w!�H���.���H�=d�9��H�=�w!�H���k.���H�=q��8��H�=�w!�H���F.���H�=n��8��H�=^w!�H���!.���
H�=f�8��H�=9w!�H���-���
H�=��{8��H�=w!�H����-���H�=�V8��H�=�v!�H���-���H�=w�18��H�=�v!�
H���-���H�=�8��H�=�v!�H���h-���H�=]��7��H�=�v!�
H���C-���
H�=}��7��H�=[v!�H���-���H�=��7��H�=6v!�H���,���
H�=(�x7��H�=v!�H����,���H�=<�S7��H�=�u!�H���,���
H�=J�.7��H�=�u!�H���,���H�=��	7��H�=�u!�H���e,���H�=���6��H�=}u!�H���@,���H�=�	�6��H�=Xu!�H���,���H�=��6��H�=3u!�	H���+���H�=�	�u6��H�=u!�H����+���
H�=��P6��H�=�t!�H���+���H�=��+6��H�=�t!�H���+���H�=��6��H�=�t!�H���b+���	H�=���5��H�=zt!�H���=+���H�=��5��H�=Ut!�H���+���H�=��5��H�=0t!�H����*���H�=��r5��H�=t!�H����*���H�=��M5��H�=�s!�H���*���H�=��(5��H�=�s!�H���*���	H�=1�5��H�=�s!�H���_*���H�=���4��H�=ws!�H���:*���
H�=�4��H�=Rs!�
H���*���H�='�4��H�=-s!�H����)���H�=��o4��H�=s!�
H����)���H�=	�J4��H�=�r!�H���)���H�=+�%4��H�=�r!�H���)���H�=��4��H�=�r!�H���\)���H�=���3��H�=tr!�H���7)���	H�=��3��H�=Or!�H���)���H�=��3��H�=*r!�H����(���H�=M�l3��H�=r!�H����(���H�=T�G3��H�=�q!�H���(���H�=��"3��H�=�q!�	H���~(���H�=�2��H�=�q!�H���Y(���H�=���2��H�=qq!�H���4(���H�=��2��H�=Lq!�H���(���j,���H�=�H�q!�2��H�=q!�H����'���H�=s�]2��H�=�p!�H���'���,���H�=hH��p!�,2��H�=�p!�)H���'���H�=,�2��H�=�p!�H���c'���H�='��1��H�=kp!�%H���>'���H�=��1��H�=Fp!�#H���'���
H�=��1��H�=!p!�H����&���
H�=��s1��H�=�o!�H����&���H�=��N1��H�=�o!�)H���&���H�=R�)1��H�=�o!�H���&���H�=M�1��H�=�o!�%H���`&���H�=����0��H�=ho!�#H���;&���	H�=��0��H�=Co!�H���&���H�=��0��H�=o!�H����%���L*��[H��n!���H�Me!�����HE��f���H��1�H�(e!H��������
�@��ATI��UH��S�)��H�XH���*���CI�����t���CH��[]A\����CH��[]A\�f���S�V)��H�XH���)���C[H��7H��?���f.���AUATI��H�M	USH��HdH�%(H�D$81�H�\$L�l$I��H�kM��H���#��H����%��H�|$��L����#��H�|$�F%��H�8H�D$�� ��H�PH�xH�T$ Hc�H9����|$(H�-�d!L���(��L�`L����(��A�D$H�<$�D$@��to�B/���D$�@�|$�&����tg�T$H��H���"����x�H�L$8dH3%(H�H�DuIH��H[]A\A]�fDH��H��H�D$ ���V�����"��돐H�-�d!�V���H�=�8.���C#������ff.�����1�H��H����+-��ff.�����1�H��H����)��ff.���USH��(dH�%(H��$1��D$H�l$�N'��H�XH���'���{H�T$H����!����xM�T$��w2�{H�����H��$dH3%(u/H��([]�f.��D$��H�=�5-���@"����USH��(dH�%(H��$1��D$H�l$�&��H�XH���'���{H�T$H����*����xM�T$��w2�{H�����H��$dH3%(u/H��([]�f.��D$��H�=s�,���!����SH�� dH�%(H�D$1��D$�%��H�XH���^&���{H�L$L�D$���2$�����t-�t$�|$H�t6H�|?�&'��H�T$dH3%(uH�� [�H�=���+��� ��ff.�@��USH��(dH�%(H��$1��D$H�l$�N%��H�XH���%���{H�T$H��������xE�t$��w*H���j*��H��$dH3%(u*H��([]�D�D$���H�=�=+���H �����USH��(dH�%(H��$1��D$H�l$�$��H�XH���%���{H�T$H����(����xE�t$��w*H���)��H��$dH3%(u*H��([]�D�D$���H�={�*��������UH��AWAVI��AUI��ATSH��dH�%(H�E�1���#��L�`L���U$��A�|$�'��L��lj����L��߉�A���"���E�A��H��H9�tH��H��$�H9�u�H��H��$L��L�|$��#��I���L�E�D��A�|$L��D���!����x9�u�L���(��D��D���H���2#��H�M�dH3%(u H�e�[A\A]A^A_]�I�t$H�=��&���~��ff.���AVAUATUH��SH��H��0dH�%(H�D$(1�����H�5Rh!H���QH�;1�1����H�5.h!H�D$H����H�;1�1��t��H�5h!H�D$H����H�;1�1��S��H�D$ ���$��H���\"��H�XH���"���{�%��H�t$�lj����H�T$���A���)!��H�|$ A��@����@��uy������t2H���5@��t"H��4t���������tF���
H�|$ ����H�D$ H�(�� �gL�pH�hHc�H9�t"H�������s(���L�t$�D$H����!���{A��L��D��D��������!H�L$(dH3%(��H��0[]A\A]A^�H������:���H���L���H���'�����D$�L�t$�t���f�H�L$L�L$ 1�L�D$H�c����`���fD�D$�L�t$�,�����H�="�'��H��H�f!���H�=
�&��H��H��e!���H�=p���&��H��H��e!���H��L�p�����H�sH�=��0#�����ff.���UH��SH��� ��H�XH���r ���Ct$�{������c�H���[]��H��H��[]�j!��f.���UH��SH�����H�XH��� ���{1��x���C�t��CH���[]��H��H��[]�
!��f.���USH��H��H��dH�%(H�D$1�H������H�<$H��tR�����Ń�w^H�����H�XH���z���{���������t/H�T$dH3%(�uH��[]�����<��H�=d�� %��H�i[!H�5jH�81��(�����UH��H��SH����t;�f%����H�������H���"��H��H���g��H�x����H��H��[]�@����������H�%Z!SH�=�H�0�u%��H�&Z!H�5�H��H��l#��H�;1�H��H�5���4 ��H�;�H��H�5��� ��H�;�H�*���H�5�����H�;1�H��H�5������H�;1�H�z���H�5�����H�;�����H����H�5�����H�;�����H�d���H�5s��x��H�;�H�)���H�5c��]��H�;1�H�a���H�5V��E��H�;1�H�����H�5J��-��H�;1�H���H�5>����H�;1�H����H�51����H�;1�H�Q���H�5'�����H�;H��X!�����H�5�����H�;�����H���H�5����H�;�����H���H�5����H�;1�H��H�5#��|��H�;�H���H�5��a��H�;H�'W!�����H�5���F��H�;H�4X!�����H�5���+��H�;H��X!�����H�5�����H�;[�����H��W!H�5~�����@��H��1�H�=1��	��f���H�55a!SH��H��tH��1�1�1�[�m��D�H�=j��!��H��1�1�H��H��`![1��>��ff.���S�H���^��H�=�V!H��[H��H�Y������@�`!AVA��AUA��ATA��USH�˅�bu8�{���Ń��tL�;�}���{�u���;�^���{�V��[��]A\A]A^����=���Ņ�t7���u��M���8tH������ː������;�Ņ�u���~��{~�띋;�I���;�e_!��u��v����H��D��D��D�������Ń��t��2_!�;�E������H��H�|$H�t$���H�T$H�2H��� ��H����H����f�8��H��uBHc�H9���H�������u H�����tH��ʃ���U�H��sJH���DH�RH��nv�H��T!�nH�5��H�81����f�H�r�l����H�T$��u�H�����t�H��փ���t���H	�H��H��U!H�5�H�81����H��U!H�5�H�81����H���
��f.����f��tf��
u#H�������H����
��R��H��T!H�5�H�81����ff.���SH��H�|$H�t$�X��H��H�D$H�0�� u}H����H�������f����Hc�H9���H������u H�����tH��ʃ���7�H��s,�{H��f����H�|?�d��H��[�fDH�p�f�H�T$��u�H�����t�H��փ���t���H	�H��H�����H�ST!H�5��H�81����H�;T!H�5x�H�81����f.���AUI��1�1�ATL��I��USH�����H��H�H�x�p���H��H�������u,H�����t#H��Ѓ���(�H��s]�H��s"H��H��[]A\A]�@A��u
I�����uA�A��u�I�����t�I�E������t�%H	�H��fDA��u�I�����t��I�$�΃���t��H	�H��Ѓ���w��j������AUH�"�ATUSH��(dH�%(H�D$1�L�d$H�L$M������H�\$��t_H���H����u^H�|$L�-R�tL����
��I��f��L��������H��teH�8����H�T$dH3%(uHH��([]A\A]�H���X��H���H��H��H��H�
�H�50�HN�H�5Q!H�81�������H��Q!L���H�53�H�81���
�����ATH�"�USH�� dH�%(H�D$1�H��H�l$I��H������H���2��H�|$tH���"��H��H�V�����H�|$I��tH������H��H��L�����H��t-�@f����H�L$dH3%(H�DuDH�� []A\�@1�H�t$L���q��H�T$�:t�H��P!H��L��H�5�H�81��	
������@��AUH�2�ATUSH��(dH�%(H�D$1�H�\$L�D$H�����H���A��H�|$H���"H�|$H��� ��H�κH����H���@H���?��H��H���2�.��H�}I������L��H���������L��H��I������H�]H��t'H�;H��t���H��L��H�����H�;H��u�HcuL��H�t6���H�]H�;H��t'�HcuH�����L��H���h��H�;H��u�H�T$dH3%(L����H��([]A\A]�fDH�w�
H��u1H��������H�|$��H��� uH��H�΃����D�H�wHc�H9�t�H����
����
��H��N!H�5�H�81��)�����@��S�H�����H�ߺ����
��H��H�}���[H�����@��AT�US�����1��]
��H��L�`�#@��
���8��t��$uUH��H��H����L��H�E tH�}H��������x�H�}H�E tH�}�

��H��H���
��H��[]A\�H�5*��
��ff.������H��H������������H��H���������USH��(dH�%(H��$1��D$H�l$�>��H�XH������sH�L$1�H������T$H��H��H���
��H��H���s��H��$dH3%(u
H��([]��Q�����USH��(dH�%(H��$1��D$H�l$���H�XH������sH�L$H��H�L!H�8�x���T$H��H��H���&
��H��H������H��$dH3%(u
H��([]����f���USH��(dH�%(H��$1��D$H�l$���H�XH���r��H�L$H��H��H�pK!H�8����T$H��H��H�����H��H���;��H��$dH3%(u
H��([]����f�H��tkH���f��tVv<�f��
t�f��u�w��H��A�E1�1�j�)��H���@f���n�E���D����f.���USH��dH�%(H�D$1�H��H�$������tt�,��H�$H��H��u�?fDH�H��t-H�{H��t����f��u�����H��H�����H�H��u�H�$H���g��H��H�T$dH3%(uH��[]�H�=��������	��ff.����USH��H�t$H�|$H�\$dH�%(H��$�1��,��1�H�{�H�D$H�Cf�H��f�D$H�l$H�U�� t}H�UH��l��H�uH�{�l���H����	��H�߉�����u'H�����tH��ʃ���B�H��s7�H��$�dH3%(uhH�Ę[]�H��H�u���H�T$��u�H�����t�H��փ���t���H	�H��H��I!�lH�5��H�81����������AWAVAUATUSH��H�$H��H���E1�dH�%(H��$x1�H�L$L�D$0H�D$ H�D$(H�D$8H�D$0H�D$�F��H�|$0H����H�|$�M��H��H����H�H�D$�� �oH�PH����H�pL�D$p�L�����H�3I���� �^H����Hc�H9��pL��L��$pL��$pH���AUA�M��L�����Y_�ƅ���H�|$8H����H�H�X(H��tyL��$pH��$pfDH���sH�{H��AUA�M���5����XZ���'H��L���
������L��L���	������H�[(H��u�H�|$8���L���
��L��H���

��H��H�����H��$xdH3%(��H�Ĉ[]A\A]A^A_�f�H��H�p�����@��t���A���F���DH�s������A���+���H�|$�h	��H��H����f�H�D$)D$@)D$P)D$`H��� �iH�CH���l��H���K��H�H�\$H��� �:�2��H�CH�\$H�(H�����H�H�\$H��� �����H�CH�\$H�H��H�D$(����H�H�\$H��� ������H�C(H�H�D$ H����L$@H�|$ H��$p�v	���H��H���V��Ƅ$oH�L$(H�������&L��$pH��1�H��L���%��1�A�������D$H1�H��tH������H��H�L$8H�T$@L��D$D����Å�� H�D$8H�H�x�p���H����H���'H������H�H�\$H��� ������H�C H�\$H�(H�����H�H�\$H��� �����H�CH�\$H�H��H�D$(���H�H�\$H��� ���m��H�C H�H�D$ H�������1�����H�|$(L��$p����L��H������Ƅ$o�������H�C H���@����
��H�C H��������H�C ������H�C����A�0E1�fD��$p�u�������H�C H���O������H�C H������H�\$H�����H�H�\$H��� t8���H�� H�H�D$ ����H�|$8��
��H��C!H�5��H�81�����L���H�[ H���‰t$���H�|$8�t$H�Ë(H��t	�
���t$�+H�=���������H�B!H�5��H�81�������H�|$8H��D� H��t�H
��D�e��H�=�����H��H�|C!H�5��H�81��;���H��A!H�5.�H�81��#���H�����ff.���UH��H��SH����t;�V
����H���l��H�hH�������}�������xH���[]�fD�������H�=�����ff.���ATUSH��H�=�H�� dH�%(H�D$1�H��L�L$L�D$���H�|$u	H�D$��=��L�d$H�<$�?���L����5��H�|$A��@��t?�����D����f����x8H�߉��	��H�\$dH3%(uH�� []A\���3���������H�=,����ff.���AVAUATUH��H�Z�SH��0dH�%(H�D$(1�H�L$L�L$L�D$���H�|$u	H�D$H�\$H�|$�b���H��A���W���H�|$A��@���������L�t$ ��D��D��L������x}�\$ H������H�lj�����\$$H��I�������H�����L��H������H���#
����uH�T$(dH3%(H����H��0[]A\A]A^��������n���@���������vH�=���m
��D�3��L���D��D��������F�����f�H��L��H��H�=|����H���`����*���f.���AWH���AVAUATUSH��dH�%(H��$�1�H�D$HH�L$PH�D$HPH�D$HPH�D$HP1�L�L$HL�D$@����H�|$Hf�1�)D$p)�$�)�$�H�� H��t���H�|$0�D$TH��t	����D$XH�|$8H���MH�|$@H���\H�|$HH���kH�@>!��D$H�t$ H�|$H�T$P1����I�ċD$�D$M���d���I�,$I��H��ub�f��{���L�{ L���_��I�HcuH��H�t6�{��HcuH��H�t6�j��HcuH��H�t6�Y��H��L���N��H�m(H��tM�uH�}�T$�%���L�m H��M��t�H������H��H� �q������H�C L�x�h����L���@��L��H��$�dH3%(�}H�Ę[]A\A]A^A_�@@��tR���H�|$@�D$\H�������@��t<�g��H�|$H�D$PH�������H�t$�
�������������D�#���묐���������H�]=!H�5��H�81����ff.����S1���H�=������H��������ATI��UH��SH�����L��H��H�ދ8���f.���S����uH�����t
�����t�����H�=��1������H���B���f���UH��SH��H������H��H�ދ8���ff.���UH��S��H��H���Y���H��H�=U�H��1��%����H������ff.���UA�H��E1�S�Ή�1�H��1�H��j����ZH��YH�‰��i���f���ATA��UH��SH���j���D��H��H�ދ8�*���f.���UH��SH��H���;���H��H�ދ8����ff.���S��H��H�T$H��tH�����H�|$H�4$�T���H�T$H�4$H�
�� t�JH�R�����H��H���������ATI��UH��SH�����L��H��H�ދ8����f.���SH��H�� H�t$H�|$H�t$dH�%(H�D$1����H�����H�XH������H�t$H��� u7H��H�����{�����x?H�L$dH3%(�u%H�� [�DH�VHc�H9�uH�v��H���^������H�T$H�t$H�=Z��C�����SH��H�� H�t$H�|$H�t$dH�%(H�D$1�� ���H�|$�v���H��H�D$���H�XH���M���H������H�t$H��� u8H���{H�����%����x=H�L$dH3%(H�H�DucH�� [�@H�VHc�H9�uEH�v�{������y������8stH�T$H�t$H�=���d���@H�5s���?���H���G������f���SH��H�� H�t$H�|$H�t$dH�%(H�D$1�� ���H�|$�v���H��H�D$���H�XH���M���H�t$�{H��� u=H��H����1��;�����xHH�L$dH3%(H�H�Du,H�� [�f.�H�FHcȉ�H9�uH�v�H��������H�T$H�t$H�=���i���f���H��tO�f��t&v,�f��
t�f��u�G���fD��f�f���n�E��fD1��D���G����USH�����H��7!H�=z�H�0���H�47!H��<��H�;�����H�}���H�5M����H�;�H�R���H�5�����H�;�H�7���H�5���{���H�;�H�\���H�5���`���H�;H�^6!�H�5���E���H�;1�H�9�H�5���-���H�;1�H���H�5k�����H�;1�H�y�H�5c����H�;�����H�>�H�5R����H�;�����H��H�5@�����H�-�5!H�;�����H�57�H������H�;H�����H�5#����H�;1�H��H�5����H�;�H���H�5�����H�;�����H���H�5���d���H�;�����H���H�5���I���H�;�����H���H�5���.���H�;�����H�/���H�5������H�;�����H���H�5�����H�;�H�9�H�5������H�;�H��H�5~�����H�;�H���H�5a����H�;�H���H�5`����H�;�H���H�5@��q���H�;�H����H�5#��V���H�;H��1�[H���H�5�]�8������SH��H�H��t
�:���H�CH�{0H��t
�$���H�C0�{<��x�����[�f���AW1�I���AVAUATUSH��(�_8H�wdH�%(H�D$1�H��D$������I�G��t(I� I�w(H��uH��t1ɺ��I�G0I�GL�(A�G<����M���I�W01�1�E1�H��tAH�H��t"A�}I��9xu�2A9|$t(M�d$(M��u�I�M(H����I��H��u�f�A�}E1�A�UA�u�|���A�ƉD$����A�G<���(M��tkA�T$I�t$������ʼnD$��yPH�5��H�t$��D��A�����D�D�D$��H�t$D�D$A�G<����M�m(M���1I�W0�����1�I�u��A�U��D�����H�5B��D$��x�A�G<������tLI�?D���q���H�\$dH3%(�H��([]A\A]A^A_�fD�S�H�5��D��m���@��D������D$��y��&�D������H�5D����^�fDH�L$A���Ǿ�D$���I�uA�UD���T���H�5O��D$�'���@�L$��x+A�}I���S����D$��x+A����������T$������xI�WI�OD�����1�E1���I�W I�O(���3���ATH��1ɺU�SH��dH�%(H��$1�H�����H��I��H��PH�pH���J�L��������H����H��$dH3%(uH��[]A\���@�����H��H���������H��XdH�%(H�D$H1�H�t$H��H�<$H�=E���H�T$H���H�L$ H��H�D$L�D$(H�D$0D�L$8�D$<������H�T$HdH3%(uH��X���ff.���H��tvH��t`H��tKUH���SH��H����H�����H;�9!tLH;�9!uQ�E�H��[]�����@���@1��D�E��H����H�5k�H��H��0!H�81��G����ATI��U��H��SH�� dH�%(H��$1��D$��H�XH������Y�C%�D$H�l$�{H�T$H�������xM�T$�t$H���D�H��$dH3%(u%H�� []A\�DI�<$H�t$����t���w�H�=:��[���ff.���ATI��U��H��SH�� dH�%(H��$1��D$��H�XH�����Y�C%�D$H�l$�{H�T$H��������xM�T$�t$H���t�H��$dH3%(u%H�� []A\�DI�<$H�t$�����t����H�=y����ff.���H�.!SH�=t�H�0�U���H�V.!�����H����H��H�5��H���H�;�����H����H�5:����H�;�����H�����H�5:����H�;�H����H�5
����H�;H�5������H�=������H�=�H��6!����[H��6!�f.�@��SH��H���H��0dH�%(H�D$(1�H�L$H��H�D$(P1�L�L$(L�D$ ��XZE1�L�D$ H�L$H��H�T$H�t$��H�\$(dH3%(uH��0[��1����S�H����H�ߺ����H��H�
[H�����@��������H��,!SH�=�H�0���H�&,!�H�����H�5��H��H��p�H�;[�����H���H�5���4�@��SH��H���H�� dH�%(H�D$1�H�L$L�D$��H�T$H�t$H��A�A����H�\$dH3%(uH�� [�����SH�� dH�%(H��$1��|�H�XH������sH�T$1�H�L$�D$�D�H��$dH3%(u	H�� [�����SH�� dH�%(H��$1���H�XH���p�H��*!�sH�T$H�L$�D$H�8���H��$dH3%(u	H�� [��+�ff.���SH�� dH�%(H��$1���H�XH�����H�Q*!H��H�L$H�T$�D$H�8��H��$dH34%(u	H�� [���ff.���H��)!SH�=��H�0�e���H��)!1�H����H��H�5�H���H�;1�H�7���H�5Q���H�;1�H�/���H�5I����H�;�����H�����H�5d����H�;[�H��(!H�5����f.�f����f.�������H��H���������AWAVAUATUH��SH��XdH�%(H�D$H1��G����?L�d$ H��H���H�D$ I�\$PH��1�L�L$ L�D$��XH��Z���H�t$H�|$1ɺ�0�H��I�����H�hH���)��EH�|$�D$ @�����n�I��D$$H����L�-�(!�D�}�����tlH�C�T$ L��L��H�D$0�C�D$8��A�Dž�x�L����Ic�H�DH�L$HdH3%(uUH��X[]A\A]A^A_������p���fDH�[(H��u�L���W�H�T$H�t$H�=������k���D�@��AVI��AUI��ATUSH����!�1ɺL��L����H��I����H�hH����I�$H��t8�SH�s�}����xL�����[�]A\A]A^�fDH�[(H��u�L����L��L��H�=T���ff.�f���ATI��UH��SH���H�� dH�%(H�D$1��a�1ɺL��H���?�H��H�$���H�XH���7��CH�$H��H�.'!H�=O�D$��H��tH�L$dH3%(�uH�� []A\�L��H��H�=���A����ff.����USH��H��oH�H��u�6fDH�[(H��t'�SH�s1ɉ�����x�H���[]��H��1�[]����ATI��UH��S���H��dH�%(H�D$1��B���H��H��H�_�1��l����t:1Ҿ�v���x<��L���(�H�\$dH3%(uH��[]A\��H�<$���������H�=5���f.���H��%!SH�=#�H�0��H�6$!�����H�"���H��H�5��H��0�H�;�H���H�5F���H�;�H����H�5D���H�;�����H�{���H�50����H�;[�����H�?���H�5<������H��H���W�H�01���H��H��ff.���UH��H�Q�S��H��8dH�%(H�D$(1�H��L�D$�����u!H�$�H�D$��@H�$��~�H�T$H�T$ H�t$H��H�D$H�D$��H�L$(dH3%(uH��8[]��9�f���ATUH��H���S��H��dH�%(H��$�1�H��L�D$�5�����H�f#!H�H�$H�D$H��H�\$H�-��R�L�`L����H��$�DŽ$�����A�T$H�D$`H�D$`H�D$(H��$�H�D$8H�H�D$�D$ H�D$hH�D$0H�D$@�D$HHDŽ$�H��$��T$�f.��|$������W�T$H��H��������t�H�T$@H���i��$����:��$�����H����H����H��$��CHc�$�����L�%�"!A�$������~r��tnH�<$H�\H��t6H�5�+!H��tsH�D$�H�L$PH�\$PH��H�D$XE���\�H��H��$�dH3%(H��u|H��[]A\�����)������!�������f��H�=c����H�<$H��H�	+!�i���@���!��A�$�1���I�t$H�=/��7�����H�I!!�H�5��H�81����H�,!!�H�5(�H�81��v��H�{1��[��H�!!��$��H�5��H�81��G��H�� !�H�5�H�81��*��H�� !�H�5��H�81��
��H�� !���H�5@�H�81�����ff.���H�w�?1���ff.�@��H�w�?1��_��ff.�@�����H��H��������USH��dH�%(H��$�1��D$nH�l$���H�XH���2��{H�T$H���B����x=�t$��nw%H����H��$�dH3%(u)H�Ę[]��D$n�n��H�sH�=���a�����ff.����USH��dH�%(H��$�1��D$nH�l$��H�XH�����{H�T$H���R���x=�t$��nw%H�����H��$�dH3%(u)H�Ę[]��D$n�n��H�sH�=�������ff.����USH��dH�%(H��$�1��{�H�XH�����H�{H��t%��H��$�dH3%(u]H�Ę[]�H�l$�{H�T$�D$nH���s���x4�t$��nv
�D$n�nH���!��H�����H��H�C��[��H�sH�=)����ff.���ATUH��SH��H��H��dH�%(H��$�1�H��!H�0�V�H������>H���\���H��H���o�L�`L�����f�H��$��\$`H�D$@H�D$@H����H�D$H�D$PD$d�D$tA�T$H�D$(H�H�D$�D$Ƅ$�H�D$HH�D$ H�D$0�D$8H�D$PH�D$X�$���<$�����tX�$H��H��������t�H��$�dH3%(�u>H�Đ[]A\�DH���p�H�XH������[���I�t$H�=N��K����H�7!H�5@�H�81����ff.���AWAVAUATA��UH��SH��H��dH�%(H��$�1���u
H������H���u��H��L�l$ �1�H�D$"I�}I�Ef�H��f�L$ H��� �H�SH��l�sH�s�lI�}�X��H�����1Ҿ�A���,�A�ƅ��WE����D��L����[����H��D���v����OD��H����H�����L�`L���o��H���w��I�D$H��$�dH3%(H���H�Ĩ[]A\A]A^A_�fDH��ƒ��������� ur��tH�C�pDH��H�s�������H�T$H�t$L�l$H�=���D�|$�D$����T$������xaD��H������J���@H�{t
H�C�8�G���H�������E���H��!�lH�5,�H�81��z��H��H�=����D���C��H��H�=�����?��D���'��H��H�=����D������|$�g�����1��u�D��H��!SH�=��H�0���H��!�H����H��H�5�H��p��H�;1�H�����H�5
��X��H�;1�H����H�5"��@��H�;1�H����H�5}��(��H�;�����H����H�5}��
��H�;�H����H�5������H�;�����H����H�5������H�;�����H�8�H�5G�����H�;[�����H��H�51������SH��dH�%(H��$�1��\��H�XH������sH�T$1�H�L$�D$n�$��H��$�dH3%(u	H�Đ[������SH��dH�%(H��$�1�����H�XH���P��H�!!�sH�T$H�L$�D$nH�8���H��$�dH3%(u	H�Đ[����ff.���SH��dH�%(H��$�1��l��H�XH������H��!H��H�L$H�T$�D$nH�8�l��H��$�dH34%(u	H�Đ[����ff.��������f���H�=!SH�=P�H�0�5�H��!�H����H��H�5�H�����H�;1�H�����H�51�����H�;1�H����H�5����H�;1�H����H�5�����H�;[�H��!H�5˽�|��f.�f���AUI��ATI��H��UH��SH��L�D$���H��Hc؉����L���H�\Hc�����H�|$Lc����H�5�!H��trH��L��H�l-��H�5�!H����H��L��O�l-��H�5�!H��tvL��L���k�H�5|!H�\$H��t:H��L���O�H��L��[]A\A]Ð�H�=������H��H�U!�n����H�=ڹ����H��H�!��H�=�����H��H�!�j����H�= ����H��H��!�.�����SH��H��H�5�!dH�%(H�D$1�H��t8H�����H��H�$����H�$H�T$dH3%(u-H��[�f.��H�=����H��H�=!�����ff.���ATI��UH��SH�+!H��t&L���N���H��H�޺[H��]1�A\���D�H�=�����H��H��!���H��dH�%(H�D$1���H��H�$����H�$H��� uCH����H��tNH��usH�������HE�H�t$dH34%(uHH���DH�HH��t.H��u3H�@�f�H���8��HE��f�H�@������H�F!�H�5��H�81�������H��dH�%(H�D$1�����H��H�$���H�$H��� u;H����H��u>H��H�H�%�H��H�t$dH34%(u:H���DH�JH��u	H�R��H��H��!�H�5��H�81�������ff.���H��dH�%(H�D$1��c���H��H�$�W��H�$H��� u3H����H��u6H��H�t$dH34%(HcH�Du:H���DH�JH��u	H�R��H��H��!�H�5R�H�81��h���S����H�5�!SH��H��tH��[�����H�=1��/��H��[H��H�Q!����ff.��S����H��uHc�[H�D�@H��[���ff.�@H��� u@H����H��u+H�GH��H�H�HH��1�H�5�������H��Ð1��DH�u�H�G��ff.�H��� u@H����H��u+H�GH���H��1�H�5V�����H���fD1��DH�u�H�G��ff.�AUI��ATI��U��S��H��(dH�%(H�D$1�H��H�����H��t<I��H�
N�L��1�H�׼�0���H�L$dH3%(u(H��([]A\A]ÐA��L��H���L��0���������ff.�@USH��H��dH�%(H��$�1�H��� ��H����H��uxH���oH�l$ H��.H��)$�G�
�D$���H��tvH��H�5��H��1��2��H�l$P�t$H�=	�H������H��H�������
�1�H��$�dH3%(u1H�Ę[]ÐH�u�H��\����H�5��H���l����u��DATUSH��H��`dH�%(H�D$X1�H��� ��H����H����H��H�L�d$H�l$�L��H��H�D$�G��D$���H����L��H�5��H��1��)��H�u�L������H����L��H�5��H��1����H�l$ �t$H�=ٺH�����H��H��������@1�H�L$XdH3%(uZH��`[]A\�DH�u�H��$�����H�5Z�H���,���N����H�5?�H���a���f�������ATUSH��H��0dH�%(H�D$(1�H��� uEH����H����H����1�����H�L$(dH3%(��H��0[]A\�fDH�GH��u�H�H�L�d$H�l$�L��H��H�D$���H��tnL��H�5H�H��1����H�u�L���T��H��t_L��H�5�H��1��k����V����H������H���H���m�����H�5
�H�������f.�H�5�H����������f.�H��dH�%(H�D$1�����H�Ǩt0���H�|$��D$�h��H�T$dH3%(uH����������d��@H�5�!SH��H��t0H�����H�Ǩt���[�f.����[�f��H�=�����H��H�]!���H�����H��H�H�D��H�5)!SH��H��t0H�����H�Ǩt�,��[�f.����[�f��H�=�����H��H��!���H�����H��H�H�D����ATUSH����H�߉��f���H��A����������A��
uH��� tDH�HH��uPH�@H�01���t���tHc�H�|?H�� []H�t6A\����f�H����H��uH���H��H�K	!�H�5ߺH�81����H�.	!H�5ܶH�81����D��ATUSH���0���H�ǨtA������H���
���H��A����������E���„�t ��!uH��[]A\�N���fD������H��!H�5��H�81��'�����ATUSH�����H�ǨtA�d����H�����H��A���������E���„�t ��"uH��[]A\����fD������H�0!H�59�H�81�������AWAVAUATUSH��H��dH�%(H��$�1�����H�Ǩ�������H�����Hc�H�|?���H��I���N���Hc�H�|?���H��I����H�|$hH�D$h���H�����H�=S�H��1��n����H������H����H���#��H�5��H��H��1����A��������������D��H�5	�H��1�����D��H�5�H��1����������
��H�5��H���@��H�|$h����H��H������H�5ؿH�����H��H��$�dH3%(�aH�ĸ[]A\A]A^A_�D�����H���gD��H�5R�H��1����A���y��A����A��)�wH�5`!D�����<t"��
���H�����������������H���r��H�����H�5G�H��H��1���������1���H�5�H���}��A���~���H�ߺH�5�����D�����H����H���V��H�5��H��H��1��2��A�������H���E��Jc�H�>��@�+�����v���@A��tbA��)��E���C���A�� A���5���H�ҷJc�H�>���H������H�5U�H��H��1��������A��ubf�H�|$hH��������������fDD��H�5��H��1��\���%����A��A��
�����H�O�Jc�H�>��A�������H�D$hH� �p���L�hI��g�b���H�@�H��hD�`D�x,D�p0�L$:�H�L$;�H�L$9�H�L$�H�L$�H�L$4�H�L$$�H�L$ �H�L$<�H �L$(�H$�L$,�H(�L$0�H4�L$�H8�L$�H<�L$\�H@�L$X�HD�L$�HH�L$�HL�L$T�HP�L$L�HT�L$P�HX�L$H�H\�L$�H`�@d�L$D�D$@����H�
l���Hc�H�>���E����H�5P!D��������H��1�H�5!�D������D���<��H��t'H������H�5l�H��H��1��������fDD��H�5ϰH��1�������H�5I!D���A����@Ic�H�D���H�5)!D�����t���@H�|$hH���3����fDH�|$hH���������fDH�|$hH���c����fDH�T$hH��� ��H����H���B���H���*������H���^	H���ؿ��H�5e�H��H��1�����4����H�T$hH��� �H����H�����H��H�*���	���-	��H�5��H��1��[��H��H�5��H��1�H�� �C������fDH�D$hH��� �#H��H����H���n����H�H��H�5c�D�@1�����H�5d�H������d����H�T$hH��� ��H����H������H���*���	����H�5߮H��H��1��������H�|$hH��� ��H����H���DH�����������H��������H�T$hH��� ��H����H�������H�BH�l$p�0H�=X�H�����H��H��������H�T$hH��� �mH����H���>���H���H�5V�H��1������K����
H�5��H���b���@����H��Hc�H�>��H�5��H���3����T$:H�5�H��1��m����T$;H��1�H�5
��W����T$9H��1�H�5��A����H�5��H�������=A����A���VA���&A����A����A�� ����=��E���k���c�D$���CD�D$H�5ήH��A��Mb���H�����i�@BA)�1�虿���D$D�D$H��H�5�����H�����i�@BA)�1��h����T$4H��1�H�5w��S����T$$H��1�H�5n��>����T$ H��1�H�5e��)����T$<H��1�H�5\������T$(H��1�H�5R�����T$,H��1�H�5F�����T$0H��1�H�5=��վ��D��H�5K�H��A���H�+���i��A)�1�E��覾��D��H�5�H��A���H����i��A)�1�E���w����D$D�D$H��H�5�A���H����i��A)�1��E����D$D�D$H��H�5��A���H�ҭ��i��A)�1������T$\H��1�H�5������T$XH��1�H�5������D$D�D$H��H�5����H�����i�@BA)�1�踽���D$D�D$H��H�5�����H�v���i�@BA)�1�臽���T$TH��1�H�5\��r����T$LH��1�H�5X��]����T$PH��1�H�5P��H����T$HH��1�H�5F��3����D$D�D$H��H�5.����H�2���i�@BA)�1������T$DH��1�H�5�����T$@1�H��H�5��ؼ��I��h�S���A�U�H�5
�H��1�蹼���9����
H�5�H���P��������H�5ѪH���7�������H�5��H����������H�5��H�����������H�5m�H���������
H�5F�H���Ӽ���l����H�5�H��躼���S����H�5�H��衼���:����H�5��H��舼���!����H�5_�H���o��������H�53�H���V�������H�5^�H���=��������H�54�H���$�������H�5=�H���������H�5��H��1��E������H�z���H�R�J���H�z�}�H�R�f���H�z�i�H�R���H�x�U�H�@����H�GH���v���H��H�l$pH�t$d�H���D$d茶��H����H��H�5M�H��1�蟺����H�z���H�B�\���H�z���H�R���A��H�5j�H��1��]������H�
K�H��1�A���H�5��<���1��,�J���H�
�H��1�A���H�5�������,����H�
�H��1�A��H�5Ϩ����,���H�
èH��1�A��H�5���ȹ���,���H�
��H��1�A��H�5��袹���,���H�
b�H��1�A��H�5]��|����,�T�����H�5:�H��1��_������H�5��H���������H�5��H���ݹ������H���A���@��H�5��H��1��
�������H�5ϥH��衹���q�觸�����AUA��ATU���S��H��H�_� H�L$H�8���H�|$I�����Ic�Hc�Hc�L�D$L��H�L	H�TH�t6��H��L��[]A\A]�f���H��H���`��"1�H��H���鈼�����H��H���0��!1�H��H����X������UH��H�5]�SH��H��H��dH�%(H�D$1�H�$�	���H��uc1�H�������H�߃��$tD����H���D$�F���1��
�H���һ��H�L$dH3%(u)H��[]�蓶��뺐H�Ǩt	����f��{��������@��AUH��M��ATI��UH��SH��dH�%(H�D$1���H��lj��E���L��߉Ɖ��W���H�|$�A��1�I��������D$���D����H������H�L$dH3%(uH��[]A\A]��v���fD��AUH��M��ATI��UH��SH��dH�%(H�D$1��Q���H��lj�襴��L��߉Ɖ�跹��L��A���L����u@H�����t8H��у���u+�� tH�x~H�H��"fDH�H���u�@H�ǨuI�,���H�|$��D$虿����D���H���*���H�\$dH3%(uH��[]A\A]������|���ff.����AUH��M��ATI��UH��SH���a���H��lj�赳��L��߉Ɖ��Ǹ��L��A���l�H��D����H��[]A\A]铹����H��� SH�5��H�H�� H�8���H�� �H���H��H�5�H��v���H�;1�H�j�H�5���^���H�;1�H���H�57��F���H�;1�H�
�H�5���.���H�;1�H��H�5������H�;1�H���H�5�����H�;�H����H�5פ����H�;1�H�7�H�5���˺��H�;�H�����H�5���к��H�;1�H�T�H�5��蘺��H�;�H����H�5��蝺��H�;1�H�A�H�5q��e���H�;�H����H�5[��j���H�;1�H�.�H�5C��2���H�;�H�s���H�5/��7���H�;1�H���H�5����H�;�H����H�5�����H�;1�H��H�5���̹��H�;�H�-��H�5-�豹��H�;1�[H����H�5ף阹������WH�w�?鎰��ff.�S����H��uHc�[H�D�@H��[�O���ff.�@��AUI��ATI��H��UH��SH��L�D$�|���H��Hc؉��ϰ��L���H�\Hc������H�|$Lc��γ��H�5� H��trH��L��H�l-�r���H�5� H����H��L��O�l-�R���H�5� H��tvL��L���;���H�5�� H�\$H��t:H��L������H��L��[]A\A]Ð�H�=��迼��H��H��� �n����H�=��蟼��H��H�M� ��H�=������H��H�5� �j����H�=��_���H��H�� �.���AUA��ATU���S��H��H�=+� H�L$艮��H�|$I��蜲��Ic�Hc�Hc�L�D$L��H�L	H�TH�t6�W���H��L��[]A\A]�f���SH��H��H�5E� dH�%(H�D$1�H��t8H���`���H��H�$�$���H�$H�T$dH3%(u-H��[�f.��H�=z��o���H��H�� ��N���ff.���H���c���H��� u#H����H��u1H��HcH��H�D�DH�HH��uH�@HcH��H�D�H��H�k� �H�5ǠH�81��ݬ��ff.�f���AWI��AVAUA��ATUSH��(dH�%(H�D$1��c���H��E���I�7I��A���wH������j������\I��E�u�K�,��2fDI�7@���;H������.�I�������H��贷��I9�u�Ic�N�4�L�l$H���&���H��H�CH�D$�H��[���H�D$J�< I���Y���L�xL��轳��A�GL��H���D$蕯��M9�t0H������H��H� u�����H�C �Ic�H��襲��H��f�H��������H�5� H��H��t-H��H��菹��H��H�L$dH3%(uDH��([]A\A]A^A_þH�=�����H��H��� �H��� H�5��H�81���������SH��H��`H�t$H�|$dH�%(H�D$X1��E���H��荭��H�T$f��D$ )D$H�
)D$0H�D$@�D$H�� ��H����H����H���o
H�r�
�R)L$0H�t$@�T$Hf��
uv�oT$8H�|$��D$ )T$�����2�)�
H������H�\$XdH3%(uIH��`[�H�zu	H�R���H�� H�5z�H�81��ة��H�� H�5��H�81����諬��ff.���UH�S�SH��XdH�%(H�D$H1�H�\$H�l$H��I��L�D$襫��H�����H�|$�3���H�|$H���$H�D$H�D$H�D$$f��D$,H�)D$0�� ��H����H����H��H�H�@H�T$0H�D$8f����H�D$H�� f�\$$�T$,H�)D$0�� ��H����H����H��H�H�@H�T$0H�D$8f����H�� H�|$$��T$(�W���1���H���#���H�L$HdH3%(��H��X[]��H�xu+H�@�1���H�xuKH�@�w���H��訪��H�D$����H�G� H�5؟H�81�����H�/� H�5�H�81����H�� H�5ПH�81��֧��H��� H�5�H�81�辧��詪��f�AUH�GATUSH��L�/I�H9�r8I9�r3I��H�_�f�I9�r�{�H��H���l����{��D���I9�s�H��[]A\A]�@H�5�� SH��H��t0H�����H�Ǩt茵��[�f.��k���[�f��H�=����H��H�u� ���H�����H��H�H�D��H�5i� SH��H��t0H���h���H�Ǩt����[�f.����[�f��H�=�����H��H�� ���H�����H��H�H�D��H�5�� SH��H��t0H�����H�Ǩt茴��[�f.��k���[�f��H�=z����H��H��� ���H�����H��H�H�D����USH��H�����H�߉��d�����uH��uCH�53� H��tH��H��[]�@����H�=D�����H��H�� H��H��[]����H��� H�5��H�81��O���ff.�@��AUI��ATUH��SH��H������H���A���w���D��L��Ɖ�踬��H��A���-���9�t1�H��[]A\A]�@H������¸A9�u���f�AVAUATI��UH��SH�����L��A���_���L��A������A��)��A��2uH��� tdH�xupH�@�of�
)M�@�E1�CH�Cf�Cf��EfoU%��S=��u�E�C[]A\A]A^�fDH����H��uH���H��� H�5w�H�81����ff.�f���H��XdH�%(H�D$H1�H�T$ H������D$H�L$HdH3%(u
H�DH��X�蘦�����SH��PdH�%(H�D$H1�H�\$ H��H�����H��1�E1�j�
A�H�߾褯��ZYH�L$HdH3%(uH��P[��'������SH��`dH�%(H�D$X1�H�\$0H�t$H���5���H��E1�1�jA��
H�߾�2����H�D$�D$0H�DH�D$XZH���`���H�L$XdH3%(uH��`[�蕥��D��AUATUSH��H��8dH�%(H�D$(1����H�߉�� ���H��A������A���H��� ��H�x��H�@�P��H��f�$D�hH��1�E1�1�A��H�D$
H��H�\�T$��E
f�Ej�1����E1�1�f�t$�H��I��A��D�l$H�$���L�d$ H�\$(H�D$0_�AXH�t$�)���H�L$(dH3%(u?H��8[]A\A]�fDH����H��u	H������H��� H�5ܙH�81��:����%���D��ATUSH���P���H��A������H�߉��+�A���ƒ�u��tH��� ucH����H��u6H���[��#u+��t'H��� uH����H��uH���P@H�xtA�H�!� H�5b�H�81�蘠���H�xu�H�@H�8H�p�Y�����H�@H�8H�p蠫��H��t�[]A\�D��AVAUATUSH��H��dH�%(H��$�1�����H��A���G���H�߉����H��A���"�H��I��臩��H�=;�H��1��V���D��H��軟��H����H���
���H�5��H��H��1��������D��������H�5��H��1�転��1�D��H�5��H��觢��A���-A��
�#H�5ț�H���/���L���ס��H��H��謥���H�5ɚH������H��H��$�dH3%(��H�İ[]A\A]A^�fD1�D��H�5��H���������.���H�ߺH�5�觢��D���?���H���VD��H�5��H��1��ҡ��A�����ZA���HA��#����I��� ��I�~����I�V�oH��H�l$p)$�>���H�L$H��H�c��o � )d$�oh)l$ �op )t$0H�@0H�D$@迨��H�L$H��H��H�5=�1��&����������i���H���X��H�5�H��1��������f���%��)�H�5M� D�����<t"�����H������������������H���_���H��觝��H�54�H��H��1�胠��A������f������)����A��2����I��� ��H����H�������I���Ao>H�l$pH�t$P�.H��
E�f)|$P�ڛ��H����H��H�5��H��1����H�l$`D��H���}���H����H��H�5n�H��1�����O���H�����H�5M�H��H��1�蜟������H��蘜��H�5%�H��H��1��t�������A������I��� �H����H�������I��I�H�l$pL�d$�I�t$H��H�D$A�F�D$�ܚ��H���H��H�5��H��1�����|$H��胥��H���
H��H�5t�H��1��ƞ��I�t$�H������H����H��H�5�H��1�蒞���!���D����H�5�� D���q����@A������I��� ��I�VH��������������E1�I�n�2H����I9������H��B� H�5�H��1�I������I��� t�M;f�����I�F��@H�5�� D���������@Ic�H�D���H�5�� D��������@H��I�V��H���������fDH��H�����3������I��� ��H��I�V��H�������H�H��L�bH�l$pH�$���H�L$H��H���o� )D$�oH)L$ �oP )T$0H�@0H�D$@�x���L��H��H��H�5�1�����p���@I��� uhH����H���,���I��A�A�NH��1�E�FH�5��蟜���H�5�H���;�������fDI�~���I�V����@I�~����M�v�I�~�����M�v����I�~�����M�v��D��H�5U�H����������H�5�H��贜�������H�5ɈH��蛜������H�5�H��肜���a����T$H�5�H��躛������p�����AUH��M��ATI��UH��SH��dH�%(H�D$1��Q���H��lj�襙��L��߉Ɖ����L��A��A��tK膦��H�|$��D$���D����H����H�L$dH3%(uH��[]A\A]�f��+�����Ě��@AWAVAUA��ATI��US��H��H���dH�%(H��$�1�H�D$H����H�hH���w����}询��H�D$@�D$H�D$8���CH�D$(I�$H�D$8��~
I�D$H�D$(��������M�I��H�|$8��IO�D�x�D�|$H�t$脛��E����H�\$pE1�H�|$(�gD���@E��DE�H�|$@t
H�|$@�H���H��L�t$PL�|$`覞����H��H��H�T$P��H�D$XH�D$HH��t9H�8�� �H��H��H��$���Hc�H9��#��H��$�H���@���E����E1�H�����L��H�=A�H�\$h�D$`D�d$d�ޕ��H����
�}�ܛ�����bH�����H�D$@f�H�C0))C)C H��t+H�8�� uwH��H��H�D$p��Hc�H9��s�|$xH�T$8L��$�HDŽ$�H��� ����H�BH�D$PH�B�����H�PH�xH��$����H�PH�xH�T$p�f�H������E1�H�t$`H�����H�=0�H�\$h�D$`D�d$d�͔��H���tWH�T$HH�T$`H�T$HH�@H���H�DH��$�dH3%(��H���[]A\A]A^A_���˔���8�DH�=��v���fDI�D$H�D$@�J����H�|$(@����̢��A���}���@1�E1�����H�D$HH�D$pH�D$ ��f�H�D$pH����H��� ��H����H��H��H��H�4H�T$H�$�S���H�D$HH�$H�T$H� ��H��H�1�H���7���H�T$pD��$�H��D��$�H��� �SH����H��H��$�fo�$�	H�t$pH��� �H��H����H�yI���[���D9d$�j���H�D$H�
���H�y}J��H�����I��H����H��� �CH5���������1�L��裔���L��H�$蒔���L��I��肔��H�D$p�\$H�4$���.���L���߉�A���o���H�|$ A��H���/���H�|$HH��� �^���H�D$pH�OH��� �a���H�PH��H��H���_���@H�VH�v���H�B�����@H�@�c����H�5)� H����1�H��1�脕��H�5� H�$H��td1�H��1��h���H�5�� I��H��t)1�H��1��M���H�D$p����I�~������H�=�y迟��H��H��� ��H�=o蟟��H��H�}� �|����H�=o����H��H�e� �@���H�|$(趓��A���w���H�5���͑��H���U����`����ː��H�d� H�5�H�81��#�������H�G� H�5��H�81�����fD��1��%���D�������f���U��@SH��H���n���H���t9kv�kH��[]����WH�w�?�N���ff.���AUATUSH��H�_(H��vnH�w H��H��tbI�I��H�L9muH��H����I�t$ H�EH��H�ڃ�H��H��v%I�L$(H�H)�H9�wH)�H9�w
H��H��H�u�H��[]A\A]�ff.�@AWAVAUATUSH��H�$H��H�$H��	A�H�T$PH�}��L$HH�L$hH��dH�%(H��$�)1�HDŽ$�H��$�P1�L��$�L��$�虑��H�|$xA[[H��t@����H�I��H�D$H�|$pH��t@����H�H�|$H�|$x�D$LH�����\$LD�T$H�D$�؃�@E��D�H�|$h�D$Lt1�H�|$p���D$H��$��D$\t5H�=�� H���;�O���H��$�H��译��H����������D$\H�|$P����L�hL���i���L����������H��$��\$L�D$XA�H�D$H��$�H��$�H�D$(H�D$�H�D$ H��$�H�D$0H��$�H�D$8H��$�	H�D$@f�L�t$8I��v&I����L��L���-���M�wI� tM�wH�|$H�T$@v5H��$�H����H�t$��H��$�H�PH� tH�PH�|$1��f�ED�D$�H�H�D$(H�|$H�E,�E4H��$�H�D$ H��$�L��H��$��؃�E��DŽ$�HDŽ$�E�L��$�L��$�H��$����D�L$HE����A�EH�t$01�H�����H�=���H��$���$���$��q���H������t$����H�|$h��H�|$p�#9\$L����H������Z����\$LL�t$8�D$I�������I���Z���L�����I���U���f�L���ؐ��A�EH�t$01�H�����H�=_���H��$���$���$�贋��H����C��������8���|$X����������t	��Z���f����D$X���f���$��� ����M����M�H�|$p����H������Y����d���@1��$�����H�L$H��vb��;�$�vS�L$X���f��u����fDH�|$辐��H��$��i����A�}藒��������L���ג�����f�H�|$�H�d$H�D$�H�D$ �F���fD���7����T$�V���fDH��I����L���ۍ��A����H�B� L��H�0�����$�H��$�L��$�H�|$P�~����H��$�Hc�$�H�DH��$H��$�H��H�D$跘��A�}I���;���H��$��D$H���H����H��$�H����H�H����L�|$H�H�H�{H9�HB�H��H)��ޖ���S�s�|$H���L���T$\I��H����[H9CuH��H�����H�|$L�����H�H��$�H��H�ك�H��H��vOH�$�H)�H9�w?H)�H9�w7H��H��H�t*H�H���O���H��� H�5P�H�81����fDL�|$H��$�H��$�H��$�H��$�)dH3%(L��� H�Ę)[]A\A]A^A_�I������!���I��ƒ������I�����衋��I���.���H�=>�
�h���H��H�6� ����t���H�D$�%���f.�@����葖���D$L����H9C������ٌ��I��H��� H����L��H��L�kL���4���H�H�H�D$ I9��eL9�s[�[fD�D��1����H�5b� I��H����L��I���R���L��H��I���$���L9��L9l$ �E�e�H�T$�D���*�������xD���Y���L�=Z� A�������tA��D���E�����$%�=��N���H�� H�8�ω��D��H������H�5�� I��H���C����H�=�|���H��H�~� �#���L�����I���R�����H�����袈��������D$L���D�����A��H����H����������A�������I�������I��ƒ������H�€�I�I�����������L��������f��H�=�{����H��� ���H�=os�ד��H�5�|1��i���H��� H�5�|H�81��х��H��� H�5�|H�81�蹅��H��� H�5�~H�81�衅��茈��H��� H�5�|H�81�脅��@��1����D����r���f���H��H��� H�5�|H�H�@� H�8�(����H����H�5\mH��H�� 趎��H�=� 1�H���H�5�x蚎��H�=�� 1�H����H�5��~���H�=�� 1�H�^��H�5Sb�b���H�=�� 1�H����H�5!b�F���H�=�� 1�H����H�5�l�*���H�={� �H�7��H�5�{����H�=\� �H���H�5�w����H�==� 1�H����H�5�w�Ѝ��H�=!� �����H�M��H�5�y�э��H�=� 1�H�1��H�5�y蕍��H�=�� 1�H���H�5,{�y���H�=�� �����H���H�5{�z���H�=�� 1�H�
�H�5�z�>���H�=�� �H����H�5�z�?���H�=p� 1�H�?�H�5�z����H�=T� 1�H����H�5�z���H�=8� 1�H�G��H�5�zH���nj�����H��H�H��% �ff.����H��H�OH�WH�wH�?�T������tH�H��������8��H����H�D������H���GH�W�wD�O(L�G �OPH�?誇��H��H����H�� 1����ff.�PXH�5�{H��H�|� H�81��B���f���H��tSH��H�?�[���H�{[�Q�����ff.�@PXH�5�{H��H�t� H�81���f���SH�5�� H�����H��t`�pH�x 蛎���u H�����tH��ʃ����H��s[�D��u�H�����t�H��փ���tށ�H	�H�[��b���f���H��H�5� �l���H����H�x"L�@ �PH��L)�9�rVf�x uOI�I9�rsH�I9��|I9�vKA�x�H��t�?�A�x�u1I��I9�u�H)�H��鼍��@H��� H�5zH�81��Ѐ��L��H��H)�鑍�����H�U� H�56H�81�褀��H�=� L�¹lH�5^H)�H�81�聀���H��H�5� 者��H��tH��1��zvf�z 
uH�B(H����;���ff.���H�����H��1�H��t�:�tH�����R�����HD�H�����H���s���H��1�H��t�:�tH�����R�����HD�H�����H���3���H��1�H��t�:�tH�����R�����HD�H�����H����H��1�H��t�:�tH�����R�����HD�H�����H�����H��1�H��t�:�tH�����R�����HD�H�����H���s���H��1�H��t%�:��u�r��u�J��u�Bȃ�H�H�Ѓ�H���ff.�@��H���#���H��1�H��t�2��u�J��u�z���HD�H������H�����1�H��t���<H҃�H��H���fD��H�����1�H��t�%��=���HD�H��H���ff.�@��H���s���1�H��t�%��=���HD�H��H���ff.�@��H���3���1�H��t�8��HD�H��H������H������H��1�H��t$�:��u�r��u�J��u�z�HD�H�����H������H��1�H��t�:��u�r��u�J��u
�zH���H���fDSH��H�5�� ����H��t H��1��zvf�z u�B$ȉ�[�����fD��H��dH�%(H�D$1�H�t$���1҅�t�D$%�=�HD�H�L$dH3%(H��uH����d��@��H��dH�%(H�D$1�H�t$�>���1҅�t�D$%�=�HD�H�L$dH3%(H��uH������@��H��dH�%(H�D$1�H�t$����1Ʌ�t2�T$��%�=
t>��%�=�t0f1Ҹ����HD�H��H�L$dH3%(uH���fD����|~��ff.����H��H�5� �|���H��t|�P��v\�H �΃�f��uMf��t*f��
uA��uY�@"H��f����H�D�f.���t�H��� H�5zH�81��{��H��� H�5�tH�81���z������H�� H�5zH�81���z��ff.���H��H�5Q� ���H��t$H��1��zv�R ��f���HD�H����n���ff.���H��H�5� �l��H��tH��1��zvf�z �HD�H����$���@��H��H�5�� �,��H��tH��1��zvf�z 
�HD�H������@��H��H�5�� ��~��H��tH��1��zvf�z �HD�H������@��H��H�5A� �~��H��t	H�@H����y���f���H��H�5� �|~��H��tHc@H��H�D��D���@��H��H�5� �L~��H��tHc@H��H�D�����@��H��H�5�� �~��H��tHc@H��H�D����@��H��H�5�� ��}��H��tH�¸�zv	�B H�DH������fD��AWH�5C� AVAUATUSH��dH�%(H��$�1��}��H���xL�h"H�h I��1�L��H)�A9F�^A�~�|��H���H��A�覂��A�~H�$����A�~���2�؃������y��H���H���f�����M�>I��I�FH�D$�x��H����H���?���H�D$L�T$`H��$�H��A�vjM�йH��A� H��L�T$(�|��ZY��L�T$��L���ހ��H��H���Ӏ��H��H���X���H�D$(H�$H�t$ �H�L$L�d$8H�D$0H�D$H�L$ L�l$@H�D$HL�|$P�ȅ��H��$�dH3%(�7H�Ę[]A\A]A^A_��A�^ ���fDI�F��M�>H�D$�uw��H��H���~�4���H�D$����A�FH�L9�vZ�}�uTL���
��}�uBH��I9�u�L)�L��A��H��������}��H����H���ʀ��I���,���f�H����H�� ��H�5mpH�81��1v��H�ʹ A�VH�5�oH�81��v��H��� ��H�5"pH�81��u�����H��� A�VH�5�oH�81���u����x����H�=`����A���H�U� A�VH�5�oH�81��u��AWAVAUATUH��S��H��dH�%(H��$1�H��|1I��L�o�?f���UH�
�u��I��Hc�H�>��fD�H�5�oH���y��H��$dH3%(�H��[]A\A]A^A_�H�5SIH����x��H�5�oH�����z��H�59qH���z���D��H��H�5ct1���w���H�5�oH���xx���g����H�5tHH���\x���K����L�M��I9����{���L���f��{��H��L9�u�I9����VH��E1�I9��WA�|$/t�H�5�nH����w��L��L��H����w���������A�T$1�H�5�mH���w������A�T$1�H�5nH����v������A�T$1�H�5�mH���v�����KA�T$H�5�mH��1��v��A�T$f���҅��KA���%����D��H��1�H�5�r�hv������������H�5�rH��1��Dv�������s��H���
A�$H�5nH���v������H��H�52m�v��H��H�5m�v��H��H�5	m�v��H��H�5�l�pv���H�5�lH���\v���&����H��H���E1�jH��E1�D��L���nw��ZY���6A�L$f����f��H��H�5�l1���H���Ju��A�����A�W�H�5wlH��1��+u������fDH���(r��H�5 mH��H��1��u������M��A�?I���8{����uD�H�5hEH���u��L�%elI��A�V�1�L��H���t��I9�u��M���f�A���z����u�I9�u�M)��6���DH��H���v���&���I9������H�5�kH���u����fD�Sv��A�T$1�H��H�5�kf�����%t������H�5QmH��I���v��A�|$L���z��H���,L��H�5�qH��1���s��A��	��H�5mH����u��A�T$1�H��H�5pk�s��A��
tsH�5�lH���u��A�D$
����<��<�<�<����H�5;kH��1��Ys��A�D$��A9�uA��uHA9��8����[���H�5llH���8u��A������A�T$1�H�5�jH���s��A����H�52lH���t���H�5�jH���s��A�D$H��H��H9���A�_�E1�L�5kfDM��H�5qH��IE��t��C�T,H��1�H�5%jI���r��D9�w�A�D$���'����H�5�iH���s��A�T$f���҅�����H�5wiH��1��/r�����f.��ڸ���P��������H�5viH���r�������H�5�PH���r���v����A�T$H�5liH���q������H���:����	H�5(QH���Cr���5����H�5QiH���*r�������	H�52QH���r�������	H�5iH���q������p����H�=HX�P{���H�5ThH����q��H��H�5=h�q���H�5,hH���q���O���ff.�@��ATI��H�5@� U��H��SH�� dH�%(H��$1��r��H������H��H�L$L��H�yU1��o��H�|$1�H�����{u��L��$H�l$H���sP�H��H�{ A�M���-r��ZY��ukL���_v��H��H���Tv��H��H����u��H��$dH3%(u5H�� []A\�f.�@��t
�{���k����n���a������o����H�=�V��y��ff.���SH�5� H��H��dH�%(H�D$1��hq��H��tc�xvE�@ ��f��u8H��H�ڿH�$�x���1�H���m��H�L$dH3%(u#H��[�H��� H�5�eH�81���k�������n��fD��SH�5t� H��H�� dH�%(H�D$1���p��H�����x���@ ��f��uwH��H�t$�H�D$�����H��H���
m��H�|$H�D$�j��1��
H���r���H��Hc�H�T�y��H��H�L$dH3%(u#H�� [�H��� H�5�dH�81��	k�������m��ff.�@��AWAVAUATI��UH��SH��H��H�L$dH�%(H�D$x1�H���dH����L��H�5�e��o��L��I���Am��I9��8�
1�L���9q�����D$H���rD�}D�uD�mE����A��
��Љ���A��t����H��H�5�e�Yo��H��I����l��I9���H�T$\H�޿�Sq�������D$H�
jE1�f��f�D$E��tvD9qtpH��H�EjH9�u�M���oL�|$(���;p��H�|$H�T$(H�H��X1ۉ�H�\$xdH3%(��H�Ĉ[]A\A]A^A_�fDE�����AA9�t���w����0�H�L$�[w���H�D$�o��1��H�T$H�@H�L$f�pf�8�|$�t$\�@
f�x�p�B�q�rD��L�z(I�׉r�BH�BH�B ����0�H�L$��v���H�D$�-o��1ҹ�|$H�@f�PH�T$f�H�L$�t$\�@
f�x�p�B�q�r�q�l����H�D$(H�t$01�H�����H�=6�H�\$0L�d$8H�l$@H�D$H��g���Å��}����Y���fD�D$H�������H�5TcH��E1�E1��m��H��I���j��L9������H�T$`H�޿
�o��A�Ņ���A���q���f�H�5�bH�߈T$�l��H��H�D$�0j���T$��H9D$�(����T$H��H�T$`�
�n���L$�������D$H��gE1�L�J�f��f�D$E��t"D9rtH��I9�u��N���fDE1��E�����BD9�t��uϾ0�H�T$�t���H�D$�`m���L$A�
E1�f�fD�H�T$L�
&g@foT$`f�HH�L$H�@fD�@P�A
�r�qD��L�y(I�ωq�AH�AH�A �4�����0�H�T$�\t���H�D$�l���L$f�E1�A�
@H�T$L�
�ffD�foL$`f�HH�L$H�@fD�PH�A
�r�q�r�X����h��ff.�f���ATI��US�GH���u#�9f�H�{H�k(��i��H��H����i��H��u�[L��]A\��i���H����s��[L��]A\�i��ff.����H���#p���H���f���H��HdH�%(H�D$81��D$PH�<$H�=Y��t$H��H�T$H�����H�L$1�L�D$ L�L$(�D$�d��H�T$8dH3%(uH��H��g��f�H��E1�E1�j��e��ZY��uH���H�=�N��q��fDH��(1�H��dH�%(H�D$1�H��f�4$�H�D$f�H��@
�|$H�����H�D$dH3%(uH��(��g���ATUSH��H�|$H���QH�"� H��I��H�0�4n��H����H�|$�ah��H�|$�e��H�l$H�E t`H�mH��tc�E��t[<<�H���Wf��H=�JH��H�߃���1Ҩ���uu�uaH��H��[]A\�DH���E��u�1�H������M��t�A�$��fDH�|$�f��H�މ�����M��t�A�$�fD�D��fD�Lf�H����z����ِ�U����a�����@��H��1���H�H����?�����fDH��1�[]A\�D�H�=%^H��������.����H�=
^H������������H�޿��������M���	�������H��H�w� H�5�]H�81��6b��fD��AVAUATUSH��L�/L�gdH�%(H��$1�H�GH��f��H�{ H��H����Bk��H��H���gm��L�k M��tL���vd��H=v~1��7g��I��L��H���9m��HcsH��H�t6�(m����sH�{A��H��H���m��H�[(H��u�H��$dH3%(H����H��[]A\A]A^��L���g��I��H���n�����e��M�mI��M���c���I�}H���V���f.��[j��I��L��H���|l��I�}H��u��*���fDL��H��1����H�������c��ff.�AUATI��UA��H��SH��HH�t$dH�%(H��$81�H����H�\$L�l$0H���rH�zj�L��A� I���{a��ZY��ueM��u H�����tH�E�ƒ�����DL�l$A��u%I�����tI�E�ƒ�����f.�A����fD�M��uH�����t�E������fDH�|$@��t=@���H��t��thH��$8dH3%(H���pH��H[]A\A]�H�����t������u�H�|$H����^��H�5�UH��H��1��eb���H�����t�H��Ѓ�����H��r;M��u6H�����t-H�M�΃���t��H	�H��Ѓ�����D�H������� ���H�Ѐ�H�{H�����������H���Si�����fD��l��������H�|$H������l��H�5�XH�߉�1��a������H��1��
�d��H�|$H���l��9��D���H�D$�6���fDH����g��H���H���M����H�L$���(���H����������H�	�΃����
�����H	ʉ�H�����D�l��H�=X��1��g��H����H�u�� tH�uL���c�����HD��K���I�u�� tI�uH���sc�����[����"���fD�\��H�=�SH��1��f��H������f�H��������������_��f���S�H��dH�%(H��$1�H��H������H���)f��H��$dH3%(u	H��[��_�����AVAUA��ATUH��SH��H��PdH�%(H��$H1�H�T$H�t$@H�D$�D$�1���H�\$I��H��������H�|$�`��H�|$�b]��H�\$H� ��H�[H���^��H���fL�t$ H�P� H��L���Ab��L��E��t�E�����D$	EH��H�L$H��L���a���Å�t>M��tL���Q^��A�|�
����H�=�E��h���H���k����H��$HdH3%(H�D$��H��P[]A\A]A^�@H��L�t$ � 1�H�H�@EL���_Z���L$�1���f��|$ t9H�t$�
L��H�D$�.c��H�D$H��t�8u�E����L������H�Y� H�5�ZH�81��Z���1������]��H��H��� H�56VH�81��yZ��f�AVf�I��AUI��ATI��UL��SL��H��@dH�%(H�D$81�)$)D$)D$ H��tH���%[���D$I��tL���\���D$H��uAH��uR�L$pH��L��L���]��H��thH�L$8dH3%(uSH��@[]A\A]A^��H���t(�h���D$H��t�H�߃�t�h���$����[���֐��[�����t\��H�� H�5NCH�81��lY��ff.����AWAVAUATUH��SH��H�5� H���dH�%(H��$�1��6^��H���=H�
�OH�@CH�߾��Y��L�d$81�H��H���Z��L��H�D$8�c]��H�|$8H�7�� ��H�wH�H�T$(�a��������H���GZ��L��H�D$8�]��H�|$8H�7�� �fH��H����H�T$,�a��������H���Y��H�D$8H���<�D$0�H����Y��H�D$8H���p�D$4�H���Y��I��H�D$8H��t
L���}\��L�t$8�H���Y��I��H�D$8H��t
L���U\��L�l$8�H���cY���|$(H�D$8�cH�
VNH��A�H���XX��LcD$4�Lcd$0I��H��Hc\$,O�DO�d$L�D$H�\�Y��1�L��H�D$�X��H��L��H��jL�D$ A�	H��H�t$����L��$��H��H�L��D�@H�pL��L�D$M���d]��XH��Z��a��� ��e��D�L$4D�T$0A��H�H��D�\$,H�@L�D$H�E �!�H�{ L��L��D�\$D�T$D�L$��\��D�\$D�cH��D�T$D�L$L�sD�[D�SD�KL�+H��$�dH3%(��H���[]A\A]A^A_��H��H�����a����H�wH����L���Z��H�|$8H�7�� ��H��H����H�T$0��Z����������H�G� H�5�QH�81��U��fDL���0Z���D$(���u2H�|$8H�7�� ��H��H����H�T$4��V������R���H�� H�5|QH�81��ZU��f.�H�\$@1��H�D$BH�{H�Cf�H��L��f�L$@�Y��H�t$8H��� �H�VH��l�mH�vH�{�lA�n�C[��foD$@� H��$�foL$PfoT$`�L��$�H��$��$�fo\$p)�$�fo�$�fo�$���$��$�)�$�)�$�)�$�)�$�)�$f��$�db��D�L$4D�T$0A�nH�H��D�\$,H�@H�E �`���@H�wH�����H�wH��n���H��H�������H�Q� H�5�SH�81���S��H�9� H�5�OH�81��S���V��H�� H�5�OH�81��S���.��H�'� �lH�5KRH�81��qS�����H��Hf�dH�%(H�D$81�I��D$I�@$A�@,�T$L�‰$�A@��V��H�T$8dH3%(uH��H��U��f���AWA��AVAUATA��UH��SH��8�?dH�%(H��$(1��gS��H��tbH��H��$ L�l$ �]��H���\��I��E��tzH���L��I��jA�D��H���S��ZY������H�=�<�_��H��$ D�E�H�
sN�H��L�l$ 1���`��H���[��I��E��u�H��E1�E1��jL��D��H���4S��AXAY���[���L���P[��H��D��H��jA�I�عL��I���R��^_���P���L���[��I��H��LD��@L���[��I��H��1��
H���KX��H��L�4$H�L�d$H�DH�l$H�D$�`��H��$(dH3%(uH��8[]A\A]A^A_��*T��f.�����H�GH�H9�s>�~�u-H���	�~�uH��H9�u�H9�v1�H�=�;�S��H��H)�H���]��H����ff.���S�fP���H�=w$H���RS��H��[H���Y��fD��H��H��� u0H����t�uYHc�H9�u[��H��Ð�H���fDH�GH��t�H�W�:u&�����H9�v�H�m� H�5VPH�81��,P��@�nH���H���O��fDAUATU��SH��H��H�t$H�|$dH�%(H��$�1��\T��L�l$I�UH��% �I�UH��l�sL�d$�1�H�D$I�D$fI�|$�H��f�L$I�uI�|$�l��U��L���S��=�H�K ��sh�����tA�$�S ����C�C�k�CH�CH�H��$�dH3%(��H�Ę[]A\A]�@I�$H�{(H��H�S ��I�t�H�t�H)�L��H)�����H�념L�d$�H��I�uI�|$��H�D$I�D$f�H��f�D$���f�A�$�S ��A�t��t��-���f���A�t�f�t������9Q������H�m� �lH�5�:H�81��'N�����UH�S;�SH��(dH�%(H�D$1�H�L$L�D$�P��H�|$H��t��O����H�:� H�k� 1�H�8�QZ��� �H����[��H�t$��H�H��H�@H�C �}�����u	H�����uH�L$dH3%(H��uWH��([]�DH��Ѓ����H��r��H�D$�u�H�����t�H�������t�%H	�H���P����AWAVAUI��H�5�� ATA��H��UH��SH��xdH�%(H�D$h1���Q��H���?� �L�|$0E1���Z��H��L��L��H�H��D��H��HH�@H�E H�D$PP1�L�L$PL�D$H�N��H�|$HY^H��t�cM��Lc�H�|$@E1�H��t�MN��Lc�H�|$H�D$H����H�|$0�iR��I��H����1�H��L�|$P�M��L��H�D$P�P��H�|$PH�7�� ��H�wH�H�T$,�U������}�D$,�����
����F�L���EM��H�|$`H�D$`�P��H�t$`�H���t���H�L$hdH3%(H����H��x[]A\A]A^A_�fDH��H�����d����@���V�Y���D$����L���O��H�D$0H��� �7H�PH�pHc�H9���A�ԁ��sH�{ ��6Q���D$D�cD�sD�k�CH�CH��+�����L���;L���L��I���+L��L��H�D$X�L��L��A��H�D$`���L��Lc�H�|$XO�|?t
H�|$X��N��H�|$`O�l-�N��H�D$XLcd$H�D$O�d$E��uLct$,K�D6L�T$`M��L��H�D$H��A�	L��jH�T$L��L�T$(�u�I��XZL�T$H�t$L���.O��H�D$H���I�A�H�x H��tB�R��I�Ǩu6H�����t.H��ƒ���t!H�€�I�I�t��uL���,T��@L���W��L��H�D$�W��H�|$I���W��I��I�D�hH�pA����H�{ D��L�D$�uO���D$D�kL��L�D$D�c�CH�D$D�CL�{H���S���`���@�+K���D$���f�H��H�p��A������D�W���L���fDI�H�|$L�����H�D$����H��� H�5xHH�81��vH���aK�����H�� H�5-DH�81��TH��L���G��H�5DH��H�ۋ H�81��1H��H���G��f���H��(H��dH�%(H�D$1�H�T$H�� H�<$H�=��H�t$H���QL��H�T$dH3%(uH��(��J�����AWA��H�P� AVA��AUE��ATM��US��1�H��H��� H�<$H�8�T��� �H���U��H�H�@H�E ��wLH�4$��H�x �H�D$�M��L�D$H�D$PA�XI�H��E�xE�pE�hM�`H��[]A\A]A^A_����fD��H��(H�5�� dH�%(H�D$1���K��H����H�¸�z��f�z 
uzD�J(E��uqD�B,E��uh�J0����t��uY�J4Ƀ�vOH��1��H��H�D$
�f�G�B4f�L$D�B�G
L�J�D$�J�2��R��^_H�t$dH34%(uH��(��I��������AUH�hBATUSH��XdH�%(H�D$H1�H�L$H��H�D$HPH�D$HPH�D$HP1�L�L$HL�D$@�G��L�d$@H�\$8H��jL�L$PL�D$HH�L$@L��H��H�T$8�0�^L��_H�H��H�����I���EJ��H�]I��H���DH�{ A�H��t9��M��I���u-H�����t%H��ƒ���tH�€�I�yI�t��t[H��D�C�K�S�sH�{AU�\Q��ZL��YH���P��H�[(H��u�H����O��L��H�L$HdH3%(uH��X[]A\A]�L��L�L$�O��L�L$��G���ATI��A�H��U�H��I��SH��j��H��Y^H�H��L�����L�A�H��I�z H��t��L��I���t>L�H��A�RI�zE�BA�JA�rU�P��H��H��XZ�O��H��H��[]A\�@H�����t�H��ƒ���t�H�€�I�yI�t���u�L��L�L$�N��L�L�L$����SH���������H�5M� H��H���H��H��t
H�@H��[��{���ff.���H���
H�ֺ������H���#H�ֺ������SH�Ӆ�t���H��[�f.�H�ߺH�5i?��F��H��[��SH��H�5�� �H��H��t�pH��H�x [�O������fD��S1�H��H�=T-�ZE��H��[H��뱐��ATH�5C� I��USH��dH�%(H�D$1��G��H����L��H���L��H�=�>H��1���K��L��H��H���R���D�cE�����{�K�C A9��>��{�����������U���-�S��t$���C��H�����SH�5v>H��1��
E��H�CH��t H��H�$�$A��H�5�BH��H��1���D��H�H��t H��H�$�@��H�5<>H��H��1��D���H�5=H���SE��H��H�L$dH3%(��H��[]A\��{��u�S���S����_�����t�E1�f��[H��H�����SH�5�=H��1��>D���S���)���E��������
���DD���D��H����H���A��H�5�AH��H��1���C���C����C��tA����r����H�5=H���nD�����f�H���@��H�5EAH��H��1��C���Q�����SH�5�<H��1��tC���C����@�C��tA������H�5�<H����C���/���f�H���8@��H�5�@H��H��1��C�������A����踽���B����UH�5T SH��H��H�/H���!A����uH���D��H�H��[]�H��落��H���ff.���ATI��USH�/H��H�H�5�~ H����@����uH���C��H�[]A\�DH���8���H��H�I�,$�C��H�[]A\Ð��SH���A��H�H��� H�u
H��[��H�@[�f���SH�5t~ H���L@��H�߅�u
[�@���[�¼��f���ATE1�UH��S��H��dH�%(H�D$1��D$��rD�&H��L�D$���DD�����t;H��E1�D��A�j�L$��H���J��ZYH�T$dH3%(uH��[]A\�H�=�:�K���A����ATU��SH��@����@��uS��������H��H���H���}@��tw�����t<��t��
uc�@����H��[��]A\�=��D�K����H��[��]A\�=���E��L�`L���gE��A�|$��H��[]A\�t=��@H�����uH�� H�5�,H�81��?=��������t���t���
u�@���`����uK����H��[��]A\�=��D��H�� SH�=�9H�0�K��H�F H�5W���H��H��|I��H�;�����H���H�5�$�QF��H�;1�H�����H�580�9F��H�;1�H�� H�5Q9�!F��H�;�����H�R���H�5�&�&F��H�;�H�����H�5,9�F��H�;�H�����H�5�%��E��H�;�H�����H�5|)��E��H�;�����H���H�5�8�E��H�;1�H����H�5�8�E��H�;1�H����H�5�8�jE��H�;1�H�n��H�5�7�RE��H�;1�H�&��H�5�7�:E��H�;1�H����H�5{8�"E��H�;1�H�����H�5m8�
E��H�;1�H�.���H�5[8��D��H�;1�H����H�5I8��D��H�;1�H�n���H�578��D��H�;1�H�6��H�5#8�D��H�;1�H�~��H�58�D��H�;1�H�f���H�58�zD��H�;1�H�����H�5�7�bD��H�;1�H�F���H�5�7�JD��H�;1�H�ν��H�5�7�2D��H�;1�H�6���H�5�7�D��H�;1�H�޼��H�5�7�D��H�;1�H�����H�5�7��C��H�;1�H�>���H�5�7��C��H�;1�H���H�5�7�C��H�;1�H�����H�5�7�C��H�;1�H�F���H�5�7�C��H�;1�H�޺��H�5�7�rC��H�;1�H�����H�5�7�ZC��H�;1�H�.���H�5�7�BC��H�;1�H�ֹ��H�5�7�*C��H�;1�H�~���H�5�7�C��H�;1�H�&���H�5�7�B��H�;1�H�N�H�5�7��B��H�;1�H�Ʒ��H�5w7��B��H�;1�H�.���H�5i7�B��H�;1�H����H�5�,�B��H�;�����H�;��H�5'#�B��H�;1�H�#���H�5*7�gB��H�;[�H�W��H�57�KB��f.�����ff.���H��t'���H�H�@�D���H�H�@H�� ��1��ff.�f���AVAUATUSH��dH�%(H�D$1�H���@�������H�$1�H��u���Ic�H�D�kH��u�H�[H�<� �x>��H�$1�H�hI��D�hD�(H�萉8��H��H�P�H�L�`�D9�u�Hc��/=��I��H�[H��w M�t� L�%�{ DI�<$H��H��H���
D��L��H���C��I9�u�H�L$dH3%(L��uH��[]A\A]A^�D�<��I�����):��H�=(!�
E��ff.�f���S���H�H�@H�\��+t[�DH�{�GA��H��[�>;��ff.�PXH�57H��H�Dy H�81���6��f���SH�5�v �;��H��t1H�X�Ct H�{(H��t�A��H�{([���A��fD�[����@��SH�5dv �o;��H��t1H�X�Ct H�{(H��t�2A��H�{([���6A��fD�[��D���@��SH�5v �;��H��t)H�XH�{ H��t��@��H�{ [����@��@�[����ff.����SH�5�u ��:��H��t)H�XH�{H��t�@��H�{[���@��@�[����ff.����H��H�5qu �|:��H��tH�@�xH���gA���r���f���SH�5Du �O:��H��tH�XH�{��;����t��[H�D��;���H�Dy H�SH�5�5H�81��4��ff.�@��H��H�5�t ��9��H��tH�@H�xH���&>��������ATH�5�t I��US�9��H����H�=n5H�h�+7��H��A���fA����D������
I���A���!I�|$��;��H��H���:���H�5�0H���8��H�uH���\9���E���1H�}t+�H�5j0H����7��H�}��>��H�}H�ډ��@��H�} t+�	H�5T5H���7��H�} �>��H�} H�ډ���?���E�t5H�}(td�H�5%5H���k7��H�}(�r>��H�}(H�ډ��?���E�t2H�}(t+�	H�5�4H���27��H�}(�9>��H�}(H�ډ��{?��H�ߺH�5�.�7��H��[]A\��I����������I���M�������H��v H�8���f�A��H�B/��NA���A����A���pA����A��@��A�Ā��A����A�� ��A���A���:A���YA����A�� ��A��@uyA���uHM������L��H�5�3H��1��;5�����fDH��t H�8����H�iu H�8����H�5O3H��1�I�����4��H��2��H�53H��1�I������4��H�q2�c���@H�5�2H��1�I�����4��H�I2�2���@H�5�2H��1�I����4��H�!2���@H�5/2H��1�I���[4��H��1A���t���H�52H��1�I����54��H��1A��@�X���H�5�1H��1�I���4��H��1A�Ā�<���H�5�1H��1�A����3��H��1A��� ���H�5�1H��1�I�����3��H�^1A�� ����H�5�1H��1�I����3��H�81A�����H�5�1H��1�I�����k3��H�1A������H�5c1H��1�I�����?3��H��0A�������H�5@1H��1�I�����3��H��0����H�5�0H��1�I����2��H��0����H�5�0H��1�I����2��H�d0�����H�5V0H��1�I���2��H�<0����H��q H�8���f�H��r H�8����H�ys H�8�����<���ff.����UH�5�0SH��H�-�q H��q H�}H���<��H�s 1�H����H��H�5e"H��c8��H�;1�H����H�5x�K8��H�;1�H�O���H�5'&�38��H�;1�H����H�5/0�8��H�;1�H�����H�5�%�8��H�;1�H�7���H�50��7��H�;1�H����H�5�/��7��H�;1�H�g���H�5�/�7��H�}H��1�[H�����H�5�]�7����H��H���%s: %sfstat(2)not a socket file descriptorrecv for buffered IOrecvfrom(2)buffer string modifiedrecvfrom for buffered IOrecvfrom(2) would blockaccept(2) would blockaccept(2)fnctl(2)SocketErrorrsock_s_recvfrom called with bad valuersock_s_recvfrom_nonblock called with bad valuersock_detect_cloexec: fcntl(%d, F_GETFD) failed: %sAF_IPXPF_IPXAF_SNAPF_SNAAF_MAXPF_MAXPF_KEYAF_INETPF_INETAF_UNIXPF_UNIXAF_AX25PF_AX25AF_ISDNPF_ISDNAF_UNSPECPF_UNSPECAF_PACKETPF_PACKETAF_APPLETALKPF_APPLETALKSOCK_DGRAMSOCK_STREAMSOCK_PACKETSOCK_SEQPACKETSOL_SOCKETIPPROTO_IPIPPROTO_TPIPPROTO_AHIPPROTO_TCPIPPROTO_EGPIPPROTO_PUPIPPROTO_UDPIPPROTO_IDPIPPROTO_ESPIPPROTO_RAWIPPROTO_ICMPIPPROTO_IGMPIPPROTO_IPV6IPPROTO_NONEIPPROTO_ICMPV6IPPROTO_DSTOPTSIPPROTO_HOPOPTSIPPROTO_ROUTINGIPPROTO_FRAGMENTSO_TYPESO_MARKSO_SNDBUFSO_RCVBUFSO_LINGERSO_DOMAINSO_PEERSECSO_PASSSECSO_NO_CHECKSO_PRIORITYSO_PASSCREDSO_PEERCREDSO_RCVLOWATSO_SNDLOWATSO_RCVTIMEOSO_SNDTIMEOSO_PEERNAMESO_PROTOCOLSO_RXQ_OVFLSO_PEEK_OFFSO_REUSEADDRSO_REUSEPORTSO_DONTROUTESO_BROADCASTSO_KEEPALIVESO_OOBINLINESO_TIMESTAMPSO_BUSY_POLLSO_ACCEPTCONNSO_GET_FILTERSO_SNDBUFFORCESO_RCVBUFFORCESO_TIMESTAMPNSSO_WIFI_STATUSSO_LOCK_FILTERSO_BINDTODEVICESO_TIMESTAMPINGSO_ATTACH_FILTERSO_DETACH_FILTERSO_BPF_EXTENSIONSSO_MAX_PACING_RATESO_SELECT_ERR_QUEUESO_SECURITY_AUTHENTICATIONSECURITY_ENCRYPTION_NETWORKSECURITY_ENCRYPTION_TRANSPORTIP_TOSIP_TTLIP_MTUIP_MINTTLIP_OPTIONSIP_HDRINCLIP_RETOPTSIP_RECVTTLIP_PKTINFOIP_RECVERRIP_RECVTOSIP_PASSSECIP_RECVOPTSIP_FREEBINDIP_MSFILTERIP_PKTOPTIONSIP_RECVRETOPTSIP_XFRM_POLICYIP_TRANSPARENTIP_PMTUDISC_DOIP_MULTICAST_IFIP_ROUTER_ALERTIP_MTU_DISCOVERIP_IPSEC_POLICYIP_BLOCK_SOURCEIP_MULTICAST_TTLIP_PMTUDISC_DONTIP_PMTUDISC_WANTIP_MULTICAST_LOOPIP_ADD_MEMBERSHIPIP_UNBLOCK_SOURCEIP_DROP_MEMBERSHIPIP_MAX_MEMBERSHIPSIP_DEFAULT_MULTICAST_TTLIP_ADD_SOURCE_MEMBERSHIPIP_DEFAULT_MULTICAST_LOOPIP_DROP_SOURCE_MEMBERSHIPIPV6_RTHDRIPV6_V6ONLYIPV6_TCLASSIPV6_DSTOPTSIPV6_HOPOPTSIPV6_NEXTHOPIPV6_PATHMTUIPV6_PKTINFOIPV6_CHECKSUMIPV6_DONTFRAGIPV6_HOPLIMITIPV6_RECVRTHDRIPV6_JOIN_GROUPIPV6_RECVTCLASSIPV6_LEAVE_GROUPIPV6_RECVDSTOPTSIPV6_RECVHOPOPTSIPV6_RECVPKTINFOIPV6_RECVPATHMTUIPV6_MULTICAST_IFIPV6_UNICAST_HOPSIPV6_RECVHOPLIMITIPV6_RTHDRDSTOPTSIPV6_RTHDR_TYPE_0IPV6_MULTICAST_HOPSIPV6_MULTICAST_LOOPTCP_MAXSEGTCP_MD5SIGTCP_SYNCNTTCP_REPAIRTCP_NODELAYTCP_KEEPCNTTCP_LINGER2TCP_KEEPIDLETCP_QUICKACKTCP_FASTOPENTCP_KEEPINTVLTCP_QUEUE_SEQTCP_TIMESTAMPTCP_CONGESTIONTCP_THIN_DUPACKTCP_DEFER_ACCEPTTCP_WINDOW_CLAMPTCP_REPAIR_QUEUETCP_USER_TIMEOUTTCP_REPAIR_OPTIONSTCP_COOKIE_TRANSACTIONSTCP_THIN_LINEAR_TIMEOUTSSHUT_RDSHUT_WRSHUT_RDWRSCM_TIMESTAMPSCM_TIMESTAMPNSSCM_CREDENTIALSSCM_WIFI_STATUSSCM_TIMESTAMPINGunknown socket domainunknown socket typeunknown protocol levelunknown IP level option nameunknown TCP level option nameunknown UDP level option nameunknown UNIX control messageunknown IP control messageunknown IPv6 control messageunknown TCP control messageunknown UDP control messageunknown shutdown argumentConstantsSOCK_RAWSOCK_RDMAF_INET6PF_INET6AF_LOCALPF_LOCALAF_ROUTEPF_ROUTEMSG_OOBMSG_PEEKMSG_DONTROUTEMSG_EORMSG_TRUNCMSG_CTRUNCMSG_WAITALLMSG_DONTWAITMSG_PROXYMSG_FINMSG_SYNMSG_CONFIRMMSG_RSTMSG_ERRQUEUEMSG_NOSIGNALMSG_MOREMSG_FASTOPENSOL_IPSOL_TCPSOL_UDPIPPORT_RESERVEDIPPORT_USERRESERVEDINADDR_ANYINADDR_BROADCASTINADDR_LOOPBACKINADDR_UNSPEC_GROUPINADDR_ALLHOSTS_GROUPINADDR_MAX_LOCAL_GROUPINADDR_NONEMCAST_JOIN_GROUPMCAST_BLOCK_SOURCEMCAST_UNBLOCK_SOURCEMCAST_LEAVE_GROUPMCAST_JOIN_SOURCE_GROUPMCAST_LEAVE_SOURCE_GROUPMCAST_MSFILTERMCAST_EXCLUDEMCAST_INCLUDESO_DEBUGSO_ERRORSO_NOFCSTCP_CORKTCP_INFOUDP_CORKEAI_ADDRFAMILYEAI_AGAINEAI_BADFLAGSEAI_FAILEAI_FAMILYEAI_MEMORYEAI_NODATAEAI_NONAMEEAI_OVERFLOWEAI_SERVICEEAI_SOCKTYPEEAI_SYSTEMAI_PASSIVEAI_CANONNAMEAI_NUMERICHOSTAI_NUMERICSERVAI_ALLAI_ADDRCONFIGAI_V4MAPPEDNI_MAXHOSTNI_MAXSERVNI_NOFQDNNI_NUMERICHOSTNI_NAMEREQDNI_NUMERICSERVNI_DGRAMINET_ADDRSTRLENINET6_ADDRSTRLENIFNAMSIZIF_NAMESIZESOMAXCONNIFF_ALLMULTIIFF_AUTOMEDIAIFF_BROADCASTIFF_DEBUGIFF_DYNAMICIFF_LOOPBACKIFF_MASTERIFF_MULTICASTIFF_NOARPIFF_NOTRAILERSIFF_POINTOPOINTIFF_PORTSELIFF_PROMISCIFF_RUNNINGIFF_SLAVEIFF_UP�;��<��\<���<���:��$=��<;��2;��2;���;��@��@��4@��L@��@��t@���@���@��A��@��@���?���A���A��tB���A���B���A���B���D��E���A��C��|C��$D���A���A��B���D���M���M��@M���P���N���O���L�� K��PJ���I��pI��hN���L��0N��0I���H��(Q��(Q��(Q��pH��(Q��(Q���H���G��(Q��0H���G��(Q���M���[��[��[���[��\���\���\��]���]��t^���^��\_���`��l`���Z��`��[��[���a��|a��[��\b��,[���i��j��0j���j���j��k��Pk��Xl���m���k���m��0m���h���i���i���r��.r���r��$s��ls���t���s��Lt��u���u��v��r��Lv��.r��$w���v���v��.r��.r��4r��tr��x{���z���z���{��|���z��0|���z���z��{���{����������~����������,���t�������������������<����������0���0���0���0�������0���0���0���0���0���0���0���0���0���0���x���0���0���0���0���0���0���0���0���0���0���0���0���0���0���0���0���0���0���0���0���0���0���0���X������m������������������������������������������������������������Њ��������������������������������������������������������������������������������������������������SO_SECURITY_ENCRYPTION_NETWORKSO_SECURITY_ENCRYPTION_TRANSPORTunknown socket level option nameunknown IPv6 level option name21send(2)getpeername(2)getsockname(2)getsockopt(SO_PEERCRED)getsockopt(2)optnamedata30setsockopt(2)01shutdown(2)BasicSocketinitializedo_not_reverse_lookupdo_not_reverse_lookup=for_fdclose_readclose_writeshutdownsetsockoptgetsockoptgetsocknamegetpeernamegetpeereidlocal_addressremote_addresssendrecvrecv_nonblocksendmsgsendmsg_nonblockrecvmsgrecvmsg_nonblock`how' should be either :SHUT_RD, :SHUT_WR, :SHUT_RDWRclosetoo short sockaddrnot an AF_UNIX sockaddrunknown socket family:%dsmalltcpno such service %s/%shost not foundgethostname(3)getifaddrssockaddr length too big%ldexpecting String or Arraygetaddrinfogetnameinfolisten(2)socket(2)socketpair(2)%s for %+li port % li%s for % li%s for %libind(2)connect(2) would blockconnect(2)connectconnect_nonblockbindlistenaccept_nonblocksysacceptrecvfromrecvfrom_nonblocksocketpairgethostnamegethostbynamegethostbyaddrgetservbynamegetservbyportunpack_sockaddr_inunpack_sockaddr_unip_address_listtoo long sockaddr_un - %ld longer than %dnot an AF_INET/AF_INET6 sockaddrinteger %ld too %s to convert into `int16_t'no such service for port %d/%stoo long unix socket path (%zu bytes given but %zu bytes max)array size should be 3 or 4, %ld givensockaddr resolved to multiple nodenameIPSocketpeeraddrgetaddressnumericinvalid reverse_lookup flag: :%s22TCPSocket011TCPServersendto(2)socket(2) - udpUDPSocket02recvmsg(2)sendmsg(2)UNIXSocketsend_iorecv_iofile descriptor was not passed (msg_controllen=%d smaller than sizeof(struct cmsghdr)=%d)file descriptor was not passed (cmsg_level=%d, %d expected)file descriptor was not passed (cmsg_type=%d, %d expected)file descriptor was not passed (msg_controllen=%d smaller than CMSG_LEN(sizeof(int))=%d)file descriptor was not passed (msg_controllen=%d bigger than CMSG_SPACE(sizeof(int))=%d)file descriptor was not passed (cmsg_len=%d, %d expected)neither IO nor file descriptortoo long unix socket path (%ldbytes given but %dbytes max)UNIXServer %ld.%06ldsec%s%u%s%s invalid-address interface: ifindex:linger socket option expected#<%s: SOCKET optname:%d level:%d %s (%d) off on on(%d) %dsec pid=%u euid=%u egid=%u (ucred) %u state=ESTABLISHED state=SYN_SENT state=SYN_RECV state=FIN_WAIT1 state=FIN_WAIT2 state=TIME_WAIT state=CLOSED state=CLOSE_WAIT state=LAST_ACK state=LISTEN state=CLOSING state=%u ca_state=Open ca_state=Disorder ca_state=CWR ca_state=Recovery ca_state=Loss ca_state=%u retransmits=%u probes=%u backoff=%u optionsTIMESTAMPS%c%sSACKWSCALEECNECN_SEENSYN_DATA%c%u rto=%s%u.%06us ato= snd_mss=%u rcv_mss=%u unacked=%u sacked=%u lost=%u retrans=%u fackets=%u last_data_sent=%s%u.%03us last_ack_sent= last_data_recv= last_ack_recv= pmtu=%u rcv_ssthresh=%u rtt= rttvar= snd_ssthresh=%u snd_cwnd=%u advmss=%u reordering=%u rcv_rtt= rcv_space=%u total_retrans=%u (%u bytes too long)to_intOptioninspectbyteboollingeripv4_multicast_ttlipv4_multicast_loopto_ssize differ.  expected as sizeof(int)=%d but %ldsize differ.  expected as sizeof(struct linger)=%d but %ldipv4_multicast_ttl socket option expectedipv4_multicast_loop socket option expected�F���H���H��tK���L���H���H���H���H���H���H���F���F���K���F���F���F��DL���H���H��,K��,K���F���F���F���F���F���F���F���F���H��rL��pH��pH���J���J��\H���L��\H���L���J���J��HF��HF��HF��HF��\H��jR��R���Q���Q��8R��R��QR���L���Q���Q���Q��pQ���P��'Q���P���L��Q��IO expectedunix_rightsaddr is not AF_INET6 sockaddraddr is not AF_INET sockaddr cmsg_type:%d cmsg_level:%d%Y-%m-%d %H:%M:%S %s.%06ld %s.%09ld pid=%u uid=%u gid=%u ifindex:%d spec_dst:invalid-address spec_dst:%smesg argument requiredto_arysendmsg(2) would block03:scm_rightsrecvmsg for buffered IOrecvmsg(2) would blockmax data length too biginvalid fd in SCM_RIGHTSAncillaryDatacmsg_is?timestampip_pktinfoipv6_pktinfoipv6_pktinfo_addripv6_pktinfo_ifindexaddr size different to AF_INET6 sockaddraddr size different to AF_INET sockaddrspec_dat size different to AF_INET sockaddrspec_dst is not AF_INET sockaddrSCM_RIGHTS ancillary data expectedIPV6_PKTINFO ancillary data expectedIP_PKTINFO ancillary data expectedtimestamp ancillary data expectedan element of controls should be 3-elements arraymax control message length too biginvalid control message (cmsg_len == 0)sockaddr string too biguninitialized socket addressneed AF_UNIX addressneed IPv4 or IPv6 addressunknown protocol family: %dunknown socktype: %dunknown IP protocol: %dunknown protocol: %dunknown address family: %dtoo-short-sockaddr.?:?.%d[%s]:%d(sockaddr %d bytes too long)too-short-AF_UNIX-sockaddrempty-path-AF_UNIX-sockaddrUNIX :%02x[protocol=%difindex=%dhatype=%dOTHERHOSTOUTGOINGpkttype=%dhalen=%dhwaddr]unknown address family %d%s address format unknown01234567890123456789abcdefABCDEF.:0123456789.<any><broadcast>hostname too long (%zu)service name too long (%zu)unexpected address familyunexpected protocol familyunexpected socktypeunexpected protocolunknown:%d13unknown address family: %s24empty-sockaddr#<%s:  PF_???(%d) TCP UDP SOCK_???(%d) UNKNOWN_PROTOCOL(%d) (%s)getsockopt(SO_TYPE)Addrinfoinspect_sockaddripunixafamilypfamilycanonnameipv4?ipv6?unix?ip?ip_unpackip_addressip_portipv4_private?ipv4_loopback?ipv4_multicast?ipv6_unspecified?ipv6_loopback?ipv6_multicast?ipv6_linklocal?ipv6_sitelocal?ipv6_unique_local?ipv6_v4mapped?ipv6_v4compat?ipv6_mc_nodelocal?ipv6_mc_linklocal?ipv6_mc_sitelocal?ipv6_mc_orglocal?ipv6_mc_global?ipv6_to_ipv4unix_pathto_sockaddrmarshal_dumpmarshal_loadsocket/addrinfotoo short AF_UNIX address: %zu bytes given for minimum %zu bytes.too long AF_UNIX path (%zu bytes given but %zu bytes max)unexpected sockaddr size for IPv4unexpected sockaddr size for IPv6 (%d bytes for %d bytes sockaddr_in)too-short-AF_INET6-sockaddr %d bytes(%d bytes for %d bytes sockaddr_ll)newline at the end of hostnamealready initialized socket addressLinux abstract socket too long0���P���Ћ��������������������������������������������������������������uninitialized ifaddrinvalid interface name: %s,#<%sUP%sBROADCAST%sDEBUG%sLOOPBACK%sPOINTOPOINT%sRUNNING%sNOARP%sPROMISC%sNOTRAILERS%sALLMULTI%sMASTER%sSLAVE%sMULTICAST%sPORTSEL%sAUTOMEDIA%sDYNAMIC%s%#llx netmask= broadcast= dstaddr=Ifaddrflagsnetmaskbroadaddrdstaddrsocket/ifaddr;
A0�0
 ���X
�
��p
 ���
@���
���
 ��`��$P��X���l����������� ���<���x���p��
@��<
@���
����
 ���
p!���
@#���
�)���
=��8�K��LU��`P]��t^����`����`���0a���@b��ph���h��00i��L�i��h�i���Pj����j���k���pk����k��0l��,�l��H�l��dPm���pm����m����m����n����o��4�o��H���h���|����@���p������ ��4 ��H���t���� ���������L������@���$`�P��p���P�����p�����,0�P0��0�� ��8@�T���0����`������0����T@������������ ����L`����������(���@���`��x@�������������� �� ���<���\p���p���P	����	����	������ 
��<����p������� ������ ���T����`������� ���0�����(��Lp��p����p��� ���0���P�����`����@������P��<��X0��p����@!���`!����!����!�� P"��< #��h �#��� �%��� (��!(��0! )��P!�)��t!*���!�*���!�*���!P+���!�,��,"0-��P"�-��|"p.���" /���"�/���"0���"@0��#�0��(#1��@#�1��|#�2���#4���#P5��$�5��,$6��P$06��h$�6���$�6���$�7���$8��%�8��4%pH���%�H���%I���%@I���%J��&�J��T&�K���&L���&0N���&PN���&�N��'�O��X'@P���'�P���'PQ���'0S�� (pT��D(pV��p(�V���(0W���(PW���(�W��)�W�� )0X��D)PX��\)�X���)PY���)0Z��*�Z��,*�Z��\*�[���*�\���*�]��+�e��H+Pf���+ m���+0m���+@m���+pm��$,�m��8,0n��p,�x���,�x���,�x��-{�� - {��4-p{��T-�{��p-�{���-�{���-|���-0|���-�|���-�}�� .�}��<. ~��\.`~��|.�~���.�~���. ���.p���.���/���$/ ���</`���T/����l/Ѐ���/����/P����/�����/����/����0`���(0����D0�`00���|0p����0�����0Є���0����00���1p���$1�����1p����1����(2@���L20���p2`����2И���2�3`���,3����P3���l3��3p����3 ���@4����d4�����4�����4����P5 ���l5��5P���6����6���D6����6����6��� 7`���<7 ����7����7p���8P���d8�����8�����8���8 ����8P����8p���9`���49����`9����9@����9p����9���: ���h:����:����:����:���:@��;`��0;���T;��x;P���;����;����;0���;`��<��D<zRx�$���FJw�?:*3$"D���(\H��ZE�I�G v
AAC�|��HR<�����B�E�E �D(�A0�j
(C BBBD���HS���7E�04���F�I�A �I��
 AABGD���?X��7LlH���F�E�B �B(�A0�A8�G��
8A0A(B BBBAL�����F�B�B �E(�G0�A8�G�x
8A0A(B BBBHh
��<E�W
A8(�
���B�E�D �C(�D0j
(C ABBDHd ��lF�E�D �C(�D0V
(C ABBDk(C ABB8�D��^F�B�A �A(�F`P
(A ABBJ8�h���F�E�D �I(�G0�
(F ABBEH(����F�B�B �J(�D0�D8�G`�
8A0A(B BBBFt�
��iK�X
A���hH[�X��D������P��V8����nS�K�G H
AAA���D ��$�.���8L=��f	L�F��9`�N���tpO�����Q��R�8R��>8�dR��
B�E�D �A(�G@�
(A ABBE�8S��&TY��QH C
A�Y��QH C
A8�Y��QH C
AT Z��QH C
ApdZ��QH C
A��Z��QH C
A��Z��QH C
A�0[��QH C
A�t[��QH C
A��[��QH C
A�[��QH C
A4@\��QH C
AP�\��QH C
Al�\����\����\��78�]���K
FP
HI
GU
KU
KU
KU8��]���K
FP
HI
GU
KU
KU
KU �^��4�^���kE��kT@��hL��4|X��NF�D�D �g
ABHJAB�p��&E�U8����bF�B�K �A(�Dp�
(A ABBG��� ���(4����E�A�G�v
AAK(`T���E�A�G�v
AAK �����E�D0u
AA(�T���E�A�G�s
AAF(�����E�A�G�s
AAF,	\��E�C
D��E�J���
A@8	L���F�B�B �A(�D0�G`�
0A(A BBBD0|	���VE�D�D l
FAHDDA0�	��VE�D�D l
FAHDDA(�	@���E�A�N0j
AAH(
���YE�G�D v
DAE<
��lL�H\
X��p
d��RL�R
Jc�
���,E�X8�
����H�E�E �D(�A0�t
(C BBBD�
l��6H �
F���Rw ���E�D �
AG8<����F�I�G �A(�D0W
(D ABBE8x����F�I�A �A(�DP�
(A ABBA0�`���F�H�A �D@�
 AABE8����F�I�A �A(�DP6
(A ABBG$���<E�o,@����F�F�A ��
ABApd���p��(�|���E�A�G�z
AAA(�����E�A�G��
AAA(�T���E�A�G��
AAA 
���vIlM IE`(@
$���E�A�D0�
AAA(l
���HE�A�G��
AADp�
��uF�B�B �B(�A0�A8�G� L�1��1G�1R�1A�1~�1L�1V�1A�1}
8A0A(B BBBJ(��eE�G�D r
FAG08,��F�A�A �N@�
 AABH@l���F�B�B �A(�K0�D`�
0A(A BBBD`�$��F�I�B �B(�A0�A8�G�^�F�F�F�u�p
8A0A(B BBBEP�E�,X�&F�D�D �Lh�>E�d��"E�D�G ���5E�D�I $���7E�M�O(B0F(D ���&F�D�D ����"E�D�G ��XE�F (<�&F�D�D � HL��E�G0u
AF l���E�G0�
AE ����E�G0�
AK���[���	,����E�A�D �CO��GE�AH(���F�L�B �B(�A0�A8�D`�
8A0A(B BBBG0tP�F�K�F �G�d
 AABA������H`t
A0�,����V�I�G oAAI��h ��0�����F�D�F �G�
 AABF0@T����F�D�F �G�
 AABFt��L��,�����E�N@YHFPRHA@s
AA����<E�o�$���	� ���\L�x `���pE�N0V
AA 8����mE�G�Z
AA \����uE�G�b
AA �T���uE�G�b
AA������L���@����8���X�D���|F�B�B �B(�A0�D8�D�e�R�U�D��
8A0A(B BBBH<Lh����F�E�E �A(�A0�[
(F BBBG0�����F�D�D �L@~
 AABA0�d���YE�A�D w
FAHDCA0������F�D�D �K0c
 AABH(����L��D����"KT(\�����E�K�FP�
AAA4�<���RF�A�K �I��
 AABH�d���p���|��(�����E�A�G�p
AAA((���E�A�G�p
AAA(T����E�A�G�M
AAD4�4���F�A�D �M�6
 AABFL����yF�B�B �B(�D0�D8�J�1
8A0A(B BBBG������L�� <���mE�G�Z
AA `��uE�G�b
AA �p��uE�G�b
AA���������L��8�X	��PF�E�G �D(�D@�
(D ABBB l
���E�G H
AK(<�
��]F�D�D �`
DDJh���H j
F�����H b
F�d���H Z
F����DL�L
HU�
��!A�M
JD�(
��U]ap
��U]\8,�
���B�E�D �C(�FPT
(A ABBB(h���A�A�J��
AAB0����YB�A�A �G��
 AABF0���FB�A�A �GPR
 AABG�8��\D H
D |��]H�]
KF
J<���HI T���]H�]
KF
Jx���HI,����F�A�A �b
AGN,����yF�A�A �B
ABK,����yF�A�A �B
ABKL D���F�B�B �B(�A0�A8�J�r
8A0A(B BBBD4p�"��nF�E�A �H(�F@J(D ABB�#��(KP�4#��(KP(�L#���E�K�J0x
AAD8�#���F�H�D �D(�D@t
(A ABBA8@D$���F�H�D �D(�D@�
(A ABBH4|%��]F�H�D �D(�D0n(K ABB�0%��(L�	�@'���L'��!A�M
JD8\'��PF�E�G �D(�D@�
(D ABBB4Dp(��gB�E�A �H(�F@G(D ABB |�(���E�G H
AK�)��sHe
KU
FH�t)���F�E�B �E(�A0�A8�D`�
8A0A(B BBBA +��5E�Gp�
AD(0$,���E�H�DpD
AAI4\�-��\B�F�A �A(�D0G(A ABB � .��]H�]
KF
J�\.��HI �d.��]H�]
KF
J��.��HI �.��]H�]
KF
J0�.��HI4H�.���E�A�G i
DAE_
DAE8�D/��nF�E�A �D(�G0v
(A ABBE<�x/���B�B�B �D(�D0��
(A BBBG�0��HH`z
A, L0��iE�D`dhGpYhA`T
AA,H �0���E�DpfxG�qxAp\
AADx �0��kF�B�A �A(�G`phypLhG`^
(A ABBG(� 2���F�A�A ��ABD� �2���F�B�B �A(�A0�J�3
0A(A BBBG84!P:���F�H�D �D(�D@v
(A ABBJLp!�:���B�B�B �E(�D0�A8�L��
8A0A(B BBBH�!DA���!@A��$�!<A��0E�G�G ZAA"DA��4$"PA���F�B�A �A(�D0|(A ABBd\"�A��l
B�B�B �B(�A0�A8�G� L�@L�S_�Sh�S^�SA�S�
8A0A(B BBBA�"�K���"�K���"�K��9H,#�M�� #�M��HH_
IO@#N��-HV L\#(N��p#4N��AAK�#8N��!J�P��#LN��AAK �#PN��~E�E
Fh
A �#�N���Hw
I_
H$xO��5Dk
A($�O��@HX
HWH$�O��@HX
HWh$�O��@HX
HW�$�O��@HX
HW�$P��@HX
HW�$<P��AHx�$tP��9Hp�$�P��*Ha%�P��1Hh(%�P��1Hh@%Q��(H_X%Q��@Hwp%DQ��:Hq�%lQ��:A�s
A�%�Q��\H N
A�%�Q��\H N
A�%R���H i
G�%�R���HA
W&0S��BHt
A0&dS��<Hn
AL&�S��<Hn
Ah&�S��<Hn
A�&�S��'HY
A�&�S��,HY
F�&�S��,HY
F�&T��,HY
F�& T��:Hl
A\'DT��F�I�B �B(�A0�A8�G�	��	F�	_�	A�	�
8A0A(B BBBH\p'�V���B�B�B �B(�A0�D8�I�|
8A0A(B BBBD��J�R�A�@�'�^��"F�K�F �G�g�D�[�A�|
 AABK (p_���E�N c
AA 8(�_���E�N0�
AAL\(�`��#F�B�B �B(�D0�D8�J�Y
8A0A(B BBBG4�(�e��dF�D�A �s
DBLIDB�(�e��HN�(�e��nHP`
A ),f��*DH FAH
A<)8f��iD0_
A@X)�f���B�A�A �D0�
 DABF�
 CABF@�)8h��rF�B�B �A(�A0�G��
0A(A BBBIH�)ti���B�B�D �H(�G�o�I�	W�A��
(A ABBA ,*�l��XE�L�@
AADP*m��'F�B�E �A(�D0�J�	7
0A(A BBBE@�*�n��B�I�E �D(�D0�Gpy
0A(A BBBH\�*�o���F�B�B �B(�A0�D8�Q���H�G�D��
8A0A(B BBBH<+Xu��gHPY
A|X+�u���F�E�B �B(�D0�D8�G�I�M�R�A�Z�M�P�B�T�H�Z�A�
8A0A(B BBBA�+�v��U�+Hw��*E�]$,\w���Hf
BI
GA
A<0,�w���B�B�A �C(�J�
(A ABBE(p,ty��E�M�D@�
AAFl�,Xz���F�B�B �L(�G0�D8�D�y�l�W�A�
8A0A(B BBBGV�K�V�A�-�~��YH0K
AH(-���F�L�E �E(�D0�A8�HP�
8A0A(B BBBA$t-����H0w8r@K8A0W
Ah�-H���iF�I�A �A(�D�Y�F�F�F�_�B�`�D�w�S�F�D�p
(A ABBAD.L����B�M�L �D8B@I8A0v8U@L8A0I
 DABEP.��EE�z
Al.����.$����.0���9E�P
KX�.P���*A�_
E�.d���E�U0�.h����F�K�A �D0B
 AABD( /$���EE�H�G ^
AAD4L/H���_F�D�A �l
ABF[AB�/p���.E�[
HE�/����.E�W
LA<�/�����F�D�D �F0A8N@O8A0T
 AABAL0�F�A�C �W
CBJK
CBH\
ABIQCBT0����UL�1t0��0��3@�0���#F�B�B �A(�A0�D@�
0A(A BBBF�0���2E�U
FM1$���AAK 1(���LE�n
MF
A @1T���LE�n
MF
A d1����DE�h
KF
A �1����DE�h
KF
A�1،��.H\
E�1��QE�e
F�10���/H]
E,2D����F�K�A ��
ABH$02��E�H�D �COGNU�0{�z �"j`�����������om3�43&1?I��Z
�=�"�"���o`$X
��"��B�;�	���oh;���o�o�8���o
�"�Z�Z�Z�Z[[ [0[@[P[`[p[�[�[�[�[�[�[�[�[\\ \0\@\P\`\p\�\�\�\�\�\�\�\�\]] ]0]@]P]`]p]�]�]�]�]�]�]�]�]^^ ^0^@^P^`^p^�^�^�^�^�^�^�^�^__ _0_@_P_`_p_�_�_�_�_�_�_�_�_`` `0`@`P```p`�`�`�`�`�`�`�`�`aa a0a@aPa`apa�a�a�a�a�a�a�a�abb b0b@bPb`bpb�b�b�b�b�b�b�b�bcc c0c@cPc`cpc�c�c�c�c�c�c�c�cdd d0d@dPd`dpd�d�d�d�d�d�d�d�dee e0e@ePe`epe�e�e�e�e�e�e�e�eff f0f@fPf`fpf�f�f�f�f�f�f�f�fgg g0g@gPg`gpg�g�g�g�g�g�g�g�ghh h0h@hPh`hph�h�h�h�h�h�h�h�hii i0i@iPi`ipi�i�i�i�i�i�i�i�ijj j0j@jPj`jpj�j�j������������GA$3a1�Z�=GA$3p1067@{�2GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p1067���=GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY@{3GA+GLIBCXX_ASSERTIONSsocket.so-2.2.10-35.el8.x86_64.debug�
��7zXZ�ִF!t/��<�

]?�E�h=��ڊ�2N���T. ����>�LT�JP�s�
��
!:l��G�".�x���Ҡ�����
���l ���;��#?X����Y
��`�$ږ���s��'�*��������N��S���25ކ�2�^�T?W�L-7�B��QjQY@��Q���Ev�$��
Y���OK�����)*9y=c�VK1]_E��=��~����8`�KG����w����2U��LZ%}@'�L�(��x�۩~�.1w?�����#M*'�s��j�-�+�4P�K�ࡻ�0b����+�O�c���Ƚ�j���G�P8D���V��Q�v9E�'Y�����.���+!��%6������<I��a��ވ}��^q�MSB�O[1;ӭ��XT�ҙs,�w�^Gw�5��?���:V��fB��|I�Z��AT�؎Gj�.~���^�Y��<�錆¾+>{x�hK�����JԵ�H5��H%�5�#:��F�)��1T��q{tS!(o�*{��)r!<!){8�B�@/�j�9��O���[s�tb@�]���VŲ��U@1,1X@�)�z��_���i��8���XQA�?Rq�9���9�6J��3���I�j���-�n.ɮ��.8��
.���!������!	$��zf�"1J{���ΎĻi=�}j9ra�Y��
؜��Ju}����#ߖ�5h,�6Z�/�t��W��<��|33��{����'�[�y�L�%D���B��p��#�4���$��KU&���|'�]Ġ|m�h�`�!�0��<�5<��,���-���`�c5����8���O���VO3�Tb��$^�2���ɀ�CL�@�80UfZ��Z���!t����{�G��h�F���9�l$?X9//�.B���S2B�g�͈xP��(
K6{��9�n�5�7M�}������$�J1�Ua�z���b�B��
����4%]�ۏ4`}�F�MVyaM;�c!'U�p���E�����@�k�~,gY�v���=kvy9|�'�#�����O�Xz��P�]��H� cn��?����$~�¸�
U&�-–�f�j-/��WlN��8��NV�^oE�f|T����۰�b4�ƫ��ɢ*غ�^��YlV[��t\�=
��PT�ke�rn��]�v�����*�E1
��?˱�㎪��p1���w=�[��Z�蹦�Bq�����v���P����;_�hY�:D���y4U.�dZ"Ł|��-M@���r��м>���K��j�&�U��g��>k�Y���m���|�@t���>i"�u��
�j�*Ă^w8�K��9���&�v��
����'�뽊X;ܥZ��z	�ڦ�~������:u;�c%����tոu��Ъ|��q�
��!�:M;+�-��n�kN��n�7�lyH���Q���_�dUŲ�Y�@س|Y��W���O�	���R����3���Zr�r���<�EJ��yVoூ��t�3���v�
��aj3��X�h��w@9�3~�R>�I��$úp���x�*�C��N�f2��7G�Q���bIUZ��F
l�x��ؠ����<����AkB��n᠓xW��^n�G�W�))]vO�`�?B^�t���G!�,���� �i����U��s� ��"�ު;�$��:�M�f)D��-��C6�
-���>���5*$�ع6gf+7l3l�!ș0Q�M�i~�64�O�Mؽ�9��]��cg}�ݵ]'�V
~D	#*=�=�?}"��ܖ)�c�\��@F+�?y�c��������ŒA�U*H��(H�mPQU�%��Fe�LϽ�>�V+!��j�"8>A���U2��
}<`S�	����K��WЉv�T�"ڛ���zY��T�b��s�>o,D�ќ�N��G�1�D�K��7WP�T)91$���#�#A��"��HA�C�:c1�5 '�`�J��2�s�[�Z�$���G&�n5(PCy�-�i���@�3�D
��_�$���
B�w��Wt��j

�Lg�E�QU1�ӳ�v|&�D�b8�G��H����B^F'�'���F3�]�u�gO$���7xu���K\IY;;��H�T
XmZ�x��"a�Kh4A�������t�/�y�Y�z����'���
|��
 �˃m�{�JRY�I֯Fka6�K�T�+��V��p�;�`���bX��	tP��:$�I�P���%\@M��`�
��
C-��V�C��ⲧ
��ͻ�/�R��j���X�K�Y��б�>��������%�b�=�p9�yt�(p(���ń��6���ڊ|WK�Gޒ�>���y��=�d�:MqnP��7}L�+���^'�YY<.�������н]�Q(]��~���Ü�b���A���"޲Ĕ��Ǽ��kX*㐩ځL�^�I����+�Q���%Z�Y�<��"'^fa�s[��y��1�����8+���>�aI��V�d�.%�A���"��ĞHz
���eh:f՝0�88x�T	�
ӴX�:��R0�p���i���|�Y�A"{~P�K��#��z_�O9w�^�����^chʓ�f�Z�2�;Ē���v���w1dY�4���\=��!��U�^��� 2�/��&BQ\N���N��={3�x8��@�쇙bX��������&J��	��~��ҺW�C���[\5d_�h��}B���tzR��,D
B�4+T��t��JaDh!��N��)h&�惧X��\J�H��I%��yg�����j:���{�q�ڰ�p����
~�l=��ƒ�җA���}�;n��oU�JT{gI��}U��1��l�+������]�x���E��f�ؕ������)ɗj�n��	Z��@�;tM�-�Q��dȿ|�1��8�&�}��ɠLtq^>��=L&�j���oP�p�#*�
!���yGV�j����Bi4Q�v�@$��~�+S�� 
��I�,4/ٴi��a&����q�dsZVG�22�g�]��?c^̳��@�	k�\iK%�f�X�dL��j���T���gi0ܽX�����L���1�$�v
cK��|L�;=M��"]$ʯ+<�U+`�C�W�>T�"_;����t���ɚ�D�J�k�nAK���u
����R���Zӱ��#m������p���U=�,.W�,R]�֫��5zG�-� ��g�&d�9��~�4�7�&�CH%s�9�]�}K��y��v1��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``�(XX�0$$�8���o�8�8zE���oh;h;�T�;�;�^B�B�B�h�Z�Zc�Z�Z�n�j�j�w�z�z$�}�=�=
��=�=�/��m�m
��w�wX2��� ��"���"�� �" �� ��"� ��"����"���"�� �"����b�8�,"d�P
��1lib64/ruby/2.2.0/x86_64-linux/syslog.so000075500000040250150402105730013063 0ustar00ELF>�@(9@8	@0)0) �-�- �- �� �-�- �-   888$$)))  S�td)))  P�td%%%��Q�tdR�td�-�- �- xxGNU�A`4o\�_Z?bǾ�n"�g(�@ @(*BE���|��.*�qX��f�U = 
�>�}- �tO����s��,[���c, �F"I��$1 ��1 ���$1 __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_extend_objectrb_f_sprintf__syslog_chkrb_eRuntimeErrorrb_raiserb_eArgErrorrb_check_typerb_sprintfcloselogruby_xfreerb_fix2intrb_obj_classrb_eTypeErrorrb_str_new_cstrrb_num2intsetlogmaskrb_scan_argsrb_string_valuerb_check_safe_objruby_strdupopenlogrb_block_given_prb_yieldrb_ensurerb_gv_get__stack_chk_failInit_syslogrb_define_modulerb_define_module_underrb_define_module_functionrb_define_singleton_methodrb_define_constrb_define_methodrb_include_modulerb_funcallrb_intern2libruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.4GLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ii
�ui	��- 0�- ��- �- �/ �/ �/ �/ �/ �/ "�/ #�/ $0  0 (0 00 80 @0 H0 	P0 
X0 `0 h0 
p0 x0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0  �0 !�0 $1 %1 &1 '��H��H�y! H��t��H����5�! �%�! ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h�������%� D���%� D���%} D���%u D���%m D���%e D���%] D���%U D���%M D���%E D���%= D���%5 D���%- D���%% D���% D���% D���%
 D���% D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� DH�=� H�� H9�tH�. H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH�
 H��t��fD�����=- u+UH�=� H��tH�=� �)����d���� ]������w�������=� H�H�Ѓ��ff.���H������SH��H��H�5� �)���H��[�@���� ���tHcv H�D����� ���tHcR H�D����f ���tHc. H�D�S��~U�E ��t3����H�����H�HH� tH�H��H��
�1�[���H�� H�5x
H�81��V���H�� H�5H
H�81��>���ff.���SH��H���i���H��[�@��SH��H���I���H��[�@��SH��H���)���H��[�@��SH��H���	���H��[�@��SH��H�����H��[�@��SH��H������H��[�@��SH��H�����H��[�@��SH��H��1����H��[����S�H������� ��t4D�
� D�� H��1��
{ H�� H�=�[�����H��H�=1�[���ff.���H���R ��tN���H�=J �
����H�5 �� ������ ������ ����� H���H�� H�5�H�81��H������ATUS��~,�_�H�>L�f@��t6H�����L��މ��_���H��[]A\�H�P ��H�5�
H�81�����(���H�5BH��H�� H�81�����ff.�f����V ��u
��@H�=I �l���ff.����H��H����t �K������H����Hc�H�D�D����������H��H����t �����H�H����B�H�H�D�f��[�����f����� S��t@H��H��@��u�0����lj=` ���H��[�fD����lj=C ���H��[�H�� H�5�H�81����f���USH��(dH�%(H�D$1��  ����H��1�L�L$H��L�D$H��H��	���H�<$�<H������H�<$�[���H�<$H� ��H�����H�|$H�� H������ H�|$H��uv�h ��5a H�=� �5���1��i ����lj4 �w����B�����u^H�L$dH3%(H����H��([]�H���a����@��tJ�E����‰� �@��tB�-����� �Q���f�H�=� H��H����H������D�k��������[����f�H�=�����H�$����F���H�/ H�5cH�81�����ff.���ATI��U��H��SH�����H��L��[��]A\�������SH�=)���H�5$H��H�V ���H�=J H�5H�4 ����H�=0 H�5�H� ����H�= H�5�H�� ���H�=� H�5�H�� ���H�=� �����H�^���H�5�H�� ����H�=� �����H����H�5����H�=� �����H���H�5|����H�=~ 1�H�=���H�5f���H�=b 1�H�����H�5R���H�=F 1�H�U���H�5<���H�=* 1�H�Y���H�5(�m���H�= �����H���H�5��N���H�=� 1�H�N���H�5��2���H�=� 1�H�"���H�5�����H�=� �H����H�5����H�=� 1�H�����H�5����H�=| 1�H�[���H�5����H�=P �H�5��7���H�=8 �H�5}����H�=  �	H�5n����H�= �H�5a���H�=� �!H�5T����H�=� �AH�5G���H�=� �AH�5:���H�=� ��H�5+���H�=� ��H�5 �w���H�=p �1H�5�_���H�=X ��H�5�G���H�=@ �H�5��/���H�=( �aH�5�����H�= �!H�5���H�=� �qH�5����H�=� �QH�5����H�=� �H�5���H�=� ��H�5���H�=� �H�5���H�=� �H�5�o�H�=h �!H�5r�W�H�=P �1H�5e�?�H�=8 �AH�5X�'�H�=  �QH�5K��H�= �aH�5>��H�=� �qH�51���H�=� �H�5$���H�=� �����H�����H�5��H�=� �H�5���H�=� �����H�M���H�5����H�=b �H�5��Y�H�=j �����H�����H�5���H�=+ �H�5��"�H�=3 �����H�����H�5��s�H�=� �	H�5����H�=� �����H�H���H�5o�<�H�=� �H�5_��H�=� �����H���H�5K��H�=� �
H�5:�}�H�=� �����H���H�5$���H�=O �H�5�F�H�=W �����H�C�H�5���H�= �H����H�5��8�H�=� �H���H�5���H�=� �H���H�5��
�H�5� H�=� �G�H�5� H�=� �4�H�5� H�=� �!�H�5b H�s H��tfH�=� H�ٺ1���H�=q H�5B�H�^���H�5 H�K H��tFH�=G H�ٺ1�[����H�=���H��H�� �z�����H�=����H��H�� ���H��H���no log message suppliedmust open syslog before write%s<#%li: opened=false>syslog not openedtype mismatch: %li givensyslog already open03$0SyslogConstantsOptionFacilityLevelMacrosreopenopen!opened?identoptionsfacilityclosemaskmask=inspectinstanceLOG_PIDLOG_CONSLOG_ODELAYLOG_NDELAYLOG_NOWAITLOG_PERRORLOG_AUTHLOG_AUTHPRIVLOG_CRONLOG_DAEMONLOG_FTPLOG_KERNLOG_LPRLOG_MAILLOG_NEWSLOG_SYSLOGLOG_USERLOG_UUCPLOG_LOCAL0LOG_LOCAL1LOG_LOCAL2LOG_LOCAL3LOG_LOCAL4LOG_LOCAL5LOG_LOCAL6LOG_LOCAL7LOG_EMERGemergLOG_ALERTalertLOG_CRITcritLOG_ERRerrLOG_WARNINGwarningLOG_NOTICEnoticeLOG_INFOinfoLOG_DEBUGdebugLOG_MASKLOG_UPTOincludedinclude<#%li: opened=true, ident="%s", options=%d, facility=%d, mask=%d>wrong number of arguments (%d for 2+)must open syslog before setting log mask;�p���(@�@`�Tp�h������������p���������0��L�h0�P�p����`���$�8P�T��p�������zRx�$h�FJw�?:*3$"DP�\��p���E�V�� �� �� �(�rA�|
E���E�V��E�V0��E�VL��E�Vh��E�V���E�V���E�V���E�S���bE�
LM���xHW
A(`�sF�A�A �m
ABA@��$T��9HX
Pp��7HY
O ��gK�f
GV
A(�d��E�A�D@
AAA(��)F�D�F �OCB�E�7
LGNU�0��- Tcs~���H
�!�- �- ���o`��
�0 H@
	���o
���o�o�	���o�- �������� 0@P`p�������� 0@P`p������������GA$3a1H�!GA$3p1067@�!GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY@UGA+GLIBCXX_ASSERTIONSsyslog.so-2.2.10-35.el8.x86_64.debuguD��7zXZ�ִF!t/��']?�E�h=��ڊ�2N���� ��̔��'�'�a�����Lzu��1y7=���A*�v�a���k.}�0,I�πo� ����,P'\k��p+o�&�hN�Y�!X�p�cV<�
p�l�WG�� �Ih���_��/wS�Y[�a�
��wEe
�����_A�»'�P�T&�ҏ�;$�R��]t�֥�B`�p6��c%���$���"��Kw�
���l�L�b˾y9%z�)�}�vD
����:yo:Q���4e�G��l�О�~��~Ka\a����5Pa�(��-������Y�$vޛY��V����l��ó�V���#�`2�#�61Nv���]*����p���9�wnJA0X
�}�~�w��	�	1�Od�~1��3]�p� ��%�"����9�A9d�i��4��.�Q��_��؞�'X�[���#���ԝ�&U�aLl�[���Q�֐rmI���	i�0|kHE� �Bm�U���:�ᑝo�	/+�U�I'�r�@����
�Tg�3(#����V�,F����2O�%>eG�N���RL��sP�|h��YD}�n�ق-WOh�4{��I�����)�w]���Ҝc��Aէ�Q���F�OW��w
����Ւ�w]�f��fYg�c�p��?`�.�߆Ix\���f���l�jf�}w��:�&�nӲ�p�=���d���Ϩ��]?;�����B[�����_��߈�G1`r���r�&]ݞ
|~��*��՞�a�o��l�{D+a���x*��{�]
�����ǣ�@���G6�~��*�0c���O��.��-��j%{A�6�׺��H�$��PU�CwG��>v�Iw��ySK"7�E!�,^���T`��j5s=|�g�`�#T����Op�BH.�Iv�<��r=�
Eѝ�=��抧+�j��(+�냡&�YV�h�s%��
�{��l��xA6n�mZ�j����sRh��B8���Dg�?��
�v���q&��ڰ�9Q��C�k��$���$�(���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(�� 0���8���o�	�	XE���o

0T@
@
^BHHhHHcppn��w��
}�!�!
�2�!�!`�%%���%�%(�)) ��- �-��- �-��- �-��- �- ��/ �/@�0 0�1 1�(1 $1X��1`$1Hl3,"�3X�71lib64/ruby/2.2.0/x86_64-linux/fiber.so000075500000016620150402105730012636 0ustar00ELF> @�@8	@�� �
�
 �
 �� �
�
 �
   888$$  S�td  P�td   $$Q�tdR�td�
�
 �
 XXGNU������X�D�	�_"�I�@ BE���| ���qX ` , F"�( �0 U�	�( __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_fiberruby_Init_Fiber_as_Coroutinelibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��
 ��
 ��
 �
 � � � �    ��H��H�)
 H��t��H����52
 �%3
 ��h�������h���������%
 D���%
 DH�=
 H��	 H9�tH��	 H��t	�����H�=�	 H�5�	 H)�H��H��H��?H�H�tH�u	 H��t��fD�����=�	 u+UH�=R	 H��tH�= �Y����d����e	 ]������w������������H��H���GNU�;$����@��h�����zRx�$h���0FJw�?:*3$"Dp��� \8���	���
 }�������
��
 �
 ���o`��
 0���	���o����o�o����o�
 ��GA$3a1��GA$3p1067��GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignfiber.so-2.2.10-35.el8.x86_64.debugM�=�7zXZ�ִF!t/��
��]?�E�h=��ڊ�2N�.��̈́�=�&���~i}o�0%����{�<X=�ꋲo��Y�R�9��^*�"񊨮Wè�+��>)�XH��!ř��f[,Hο�%j(�E�s�w�N�m�p��z���{ʷضIF��fB�H>\�V�k`���F'e��Ӊ����En�o��[��gä�����
>�������}��L�K��	uƬ�<�7n�l,�����Y0�S%]�
��-]\_��f���>��E E��a�^�!n��������t�w�����f
�I�4ܙ��lr�gTBj0���#L�Q�yi��ʊ^�I����h9��ݹc��$H}�|��E_S�ӗ�&:"Cvg��r�c�G��p�p���k2��d��K��R,lt~� �jt��]���]�$�B�:�X���|�[��	� 7�N�E+�^1��Ė���3��u^�Zx��&Φ���N��'>�k�r#��K�2������ʱ��/x�R@��gc�h�e�P����c[h�G�����6�])!U�l\�'�DD����lOa��c����d�
�Z�����*{*�%:��)x<��$L��
����U�ˉ�yN�K�E6e,�F=AnXs�gm
���1,�ta�kd����M!L��}��b
�L��	mj�z�*�)�EFd|�T�s��*xX�ڪD�R7�LО���\��v��j�p��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.note.gnu.property.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T���^B��0h��c��0n w  �}��
� �  $�HHp��
 �
��
 �
��
 �
��
 �
 �� � � (�( (�0`(� (H$l#lib64/ruby/2.2.0/x86_64-linux/fcntl.so000075500000016770150402105730012663 0ustar00ELF>�@�@8	@�
�
 �
�
 �
 �� �
�
 �
   888$$�
�
�
  S�td�
�
�
  P�td�	�	�	$$Q�tdR�td�
�
 �
 XXGNU��Q����o�Ӌ8|0Z��� �	BE���|�qXϫ�  `, F"q�0 �8 �0 U@�__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_fcntlrb_define_modulerb_define_constlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��
 0�
 ��
 �
 � � � �    ( ��H��H��	 H��t��H����5�	 �%�	 ��h�������h��������h��������%�	 D���%�	 D���%�	 DH�=�	 H��	 H9�tH�F	 H��t	�����H�=y	 H�5r	 H)�H��H��H��?H�H�tH�	 H��t��fD�����=5	 u+UH�=� H��tH�=� �I����d����
	 ]������w������SH�=�����H�5�H��H������H�ߺH�5���H�ߺH�5����H�ߺH�5�����H�ߺH�5����H�ߺ	H�5����H�ߺ
H�5����H�ߺH�5��|���H�ߺH�5u�h���H�ߺH�5l�T���H�ߺH�5`�@���H�ߺH�5T�,���H�ߺ�H�5H����H�ߺH�5<����H�ߺH�5/��H�ߺH�5$����H�ߺH�5����H�ߺH�5
���H�ߺH�5���H�ߺH�5����H�ߺH�5��x���H�ߺH�5��d���H��[�H�5��O�����H��H���FcntlF_DUPFDF_GETFDF_GETLKF_SETFDF_GETFLF_SETFLF_SETLKF_SETLKWFD_CLOEXECF_RDLCKF_UNLCKF_WRLCKO_CREATO_EXCLO_NOCTTYO_TRUNCO_APPENDO_NONBLOCKO_NDELAYO_RDONLYO_RDWRO_WRONLYO_ACCMODE; ���<T���dD���|zRx�$���@FJw�?:*3$"D��0\�����E��GNU�0��
 ��������
$	�
 �
 ���o`��
 H���	���o����o�o����o�
  0@GA$3a1�1	GA$3p1067@!	GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignfcntl.so-2.2.10-35.el8.x86_64.debug�^��7zXZ�ִF!t/���]?�E�h=��ڊ�2N��{�n ��)�I���� �Q�{�H[5-s�Gmg����֞���`b�v�RF�jK�I(��*&�����1��*L��\�nD{A/���\_�Cc�L����k!]5��)Ѳt��>��ϕ�m/���b,hcΧ/w-��z�9|,��*?���u�P��8m�6����B��#�hAG���D0���4�炦���q��߻���z&Mx۞���t��(r�p�|��!��N5z T*�f|PPV�k���͌nw�eΰs��ree9�)�<��jXY郥��6���$s4)�ރ��2��J�Ȝ�O��vn�sr�L�&��}_�$�8E�1)��=�U���e2���n�B�6褷h`)4�%�Zo#�b.�Lƈg�o`%~Ea��*o�H���ZtG�|\�M5�� �Ԧ*��u/'Wg�����d��H��ES��Lr�*Q�.��V�ҧ.�2�x�t�r
�<��	�c�x��Y�nl%�<5���-�*a�wLJ�{'��
	s�e-eE�G��X��ͣۀ2���pa���V�]/ٶ�a�~����t��ԕ��ʽ�=��v��(����͇N���r����~�
5�?�0�uZk�Se�A���Ƌ�sh�	�I�P�����]t��`��q�Bė]O�(��J�w@O�͎v��X�:nXK��a�)�e<�ڹ�Y��e�g���
�����]����	V�W�E��<�#<u�'��P�85�R�����\��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��0��8���o��E���o�� T���^B��Hh��c@nPP0w���}$	$	
�21	1	���	�	$� 
 
x��
�
 ��
 �
��
 �
��
 �
��
 �
 �� � � 0�0 0�8`0�
((P<�+lib64/ruby/2.2.0/x86_64-linux/openssl.so000075500001315440150402105730013235 0ustar00ELF>��@��@8	@�*�* �8�8%�8%�3�< �G�G%�G%@@888$$�*�*�*  S�td�*�*�*  P�tdl�l�l�ddQ�tdR�td�8�8%�8%ppGNU�͗��:s��z^W/��UnF
��N B" @D��@�(Q	�4�I�$���
� �
 BbH�		
$� @�Xa�����	���@�@ �@ !�@D��@@ H!�$`��
�Q�J$)�@N)�"@�X0!B @@�F��₋@� H@
 b�R��H���B@�P� ��@NOPSUVWY[]_`bdefgijlnopstvwxy{|�����������������������������������������������������������������������������������
 "#$%&'+
wP'�)
0t:li-2��kǙ�pE{���1b��o�lS6�x)�1�G�X�{��+����p�U8\x%!!�0J���S�q9ѭd��O_���/��:<wش7��E���ǫ��2�o��Z���%mނטa��}���%m��p텄����e��6�������Z�jb��I�%9�<nU���"�>�'9�<����J� _�z
�/i��(���Bг;Y��yq�c�
�,T�Ҁ���? ��M���P����TEtdQk�'�m
!�1a��,Tν�c����I��ɌATm��q�βG�'
��!��m>��[-�Iq���#I5������A�A��|�7)4����y]|��{������+�E'��m3��͍�hVN���!��,�,�Y.\�*��y�\��X�-�Կ[�6#BE��q�$��B�<�P=�u$.6{�i���6m�јY����tƑ�T7���y	.ZJ���m���ʮ9�ij��S���<�@�|�NW6w�"`v8?��I7�.��2v���<g��:hُ�H��o�(4<�G�-�rwxEcCE�)&��t��9E��>Q�!IY��ܰ���)*�%P\���8ѩ+�n�D[H)�t�����- I�)�04���p��ߝ�)4~�-)+b^��I-(7��e���v���H��|��wvD��qXU���`��u$.z^���H��|T�	s��Y�����`�iƵj��,KEީ�����o��e�RO\��ժ��}��Ns�c-��
��b�yl��=�v|0���z��ИmXf9Q�;e-&u��X_�S��JfEӕ2=��v$.�ѫ�	�
���!oA���,�<�3i'7:5#���B�
��5�<p�5���Cq5��4&�
Q<c7$�3�,�
�/z"��A��!n)XxB�);�B�\Z6�0��/�?G?,>*r=p;8^:���'x8���2\
�6�2DA� 8�"�+*���*�/DX�4��3��_?�8(T.�2�:�3�&!������C-8A�.227�:�;>h��:�/�)N%���!%g4�6z'�@�7���+�(Z(w?�@1�79!�#�39�3ED9�j<6$�'V
3��#J)�C�+	P3�C]M;&<�1�:zD4}5@F"�6�(&/6�Y
Eq3�7�	�%:�2^)s&J#��7	�#�8A��11@'ID�:;�2�*�<E�,8IC�(�@�4s:?4�Py1P	,.�3�;�)�;�;�>$5�<�?�9���-	�6�$21�#t�;�?@8-��A�t=+��
�7�*m
�	��+r�2�CK
^,��4�T"�%�>�h	:�4q$K0�&�@�&�!�5!D15Y*z+�At(I@Y�2�d� �2f�
[�E(d+2:A	E!�q"0>��h�	;C;<]@YC<#-�+)*�	�<�
a9s($�24=��%Kq!/��<�$;�C:
�6�q�'u<�<�;�D�9$)��5�:{6
��=�A#"+�J*��)�1�#��5(#l0!@�!�:<�'�1�@y	[%SB/�
a0.�L�2�C�<'	�$�P!�=b'�@\3�/�Dq><�=:;c<�/�0�m�.5'��4	E�*�C� �@+tB~#fD3u4�V�0
�%J.�-�P���-�+y)�/!�2B���?1'/g8W$T
��-�0�*-#9�
1"�i-~>C��/�$6�</'5)�!�:�-�$2�C&���$I,�.�8��.a!558=��6�"�,7SX2S&'|�*�&�"�C�&�:�AW4�%�8���#� N1�	2�u/S-��
g/0!M5q@�8�=�04,u�"�'�?+�@4��	!3(�-^=2)@;h1[).�",A
D�(��%Q�)�<�)�D�9;t�=m(�!�;N�-;I}9kP�3e.*Bc2?8}4
�@�.3�-6=,�>�5d/!Bn�B�&f�;�
��>�B�.E��	8	�q%�,��%�(�t>{I<3�s
X*UBRD�=

.��GB�i�+�.�E6#u�<8)4j�;0�=����?�XA��!f(�./�u�};9�-�i"�j�)
=2�����!�6�4<D9�+6"S/�4�5�HE�? N7x��:�
7%]>�?x!D>2+�Bc�
�D�D�1�1?�AZ5h��$
$1t2�7�};.�D
�T$
s.�6h@"�X<m/�n#e$w,�;�0= 5���$b;�, #(A�}@�:� ��A��U�;8�<�W;n	5^#c'K4�0)\�;@N'��5<*�nC��?�8�D����p�����/I`n;S+�� 	 u%��t%�!s%g,8t%y*t%��|`����p�2�s%�%��b�4p�O�&P�L'p���6Х<� �); �r%Z	@C%H�s%J=0u%\p�|�.Pt%� ��(�t%�xr%�W�>(u%�о��Pr%400T�)t%#3�t%h6`�g�.2�r%�#���'0���r%'3�o%% ���Hs%�$�s%�* t%�(r%M8P��`�t%;hr%+0r%�
0m�3�t%�@�R��E%r%� r%N ��f&�s%�4�t%s  s%��r%L$ ���п1�%�"@s%�`s%[Hr%�Pb��s%2Xr%�$�t%���r� 8s%0Xt%�&0N��1�t%� �r%^ �r%=4u%K+t%�R�(�s%��0� hs%Y`Y��!�r%�(�s%D0`t%�/Ht%���+U`>%H��r%�>u%�&�}�l
��[�s%{$�s%�
��&&��\�n^�7p�i*��@=@u%C�r%E�FQ)�s%`
r%�P���1xt%epU�E@l%�l;���a�t%�9`�������#��U�4�t%XU�(`��l*@r!+��ig�r%�
8r%)�m��'����*t%)Ў'xht%�+@t%�
u%�0Sj$:�t%}-�iB6����$��s��s%�Xs%�"��P �r%AE G��r%{��hС*��t%���u%Z8�U8�t%^pr%�,0t%'?u%L2j9I
��--(t%� (s% �r%k2�t%��r%���R/CHu%�9P5@� 9%H�'�:�@H��'�N�l���1`r%��bpV�R����#��%O �r%�`�R��s%ppaR�"��,��q%a�f�
0�Q�E@l%�
����t%�'�~���s%;3�o%�EPu%�ps%� �s%� s%�0R^0pt%�"��i�t%�1�a�o@, Ps%�*�	���r%�'�s%�+�[0s%A$�s%��q%?8u%K@��s%u%{@r%,EGr%}�q%�xs%E%�s%i����7����r%0I
[2�t%P@Gf__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeossl_evp_pkey_typerb_check_typeddataEVP_PKEY_typerb_hash_newossl_bn_newrb_str_new_staticrb_hash_asetrb_eRuntimeErrorrb_raiseossl_raiseGetBNPtrBN_copyBN_neweBNErrorBN_clear_freerb_scan_argsrb_string_valueRSA_sizerb_str_newRSA_private_decryptrb_str_set_lenrb_fix2intrb_iv_geteRSAErrorrb_num2intrb_out_of_int__stack_chk_faili2d_RSAPrivateKeyi2d_RSA_PUBKEY__assert_failGetCipherPtrBIO_s_memBIO_newossl_pem_passwd_cbPEM_write_bio_RSAPrivateKeyBIO_freePEM_write_bio_RSA_PUBKEYossl_membio2streOSSLErrorRSA_printRSA_generate_key_exEVP_PKEY_newEVP_PKEY_assignrb_data_typed_object_allocrb_iv_setEVP_PKEY_freeRSAPublicKey_duprb_cFalseClassRSA_freerb_cNilClassrb_cFixnumrb_cFloatrb_cTrueClassrb_cSymbolRSA_newBN_set_bitBN_freerb_block_given_possl_generate_cb_2ossl_generate_cb_stoprb_thread_call_without_gvlrb_jump_tagossl_to_der_if_possibleossl_obj2bioPEM_read_bio_RSAPrivateKeyrb_string_value_ptrrb_num2ulongBIO_ctrlERR_clear_errorPEM_read_bio_RSA_PUBKEYd2i_RSAPrivateKey_biod2i_RSA_PUBKEY_bioPEM_read_bio_RSAPublicKeyd2i_RSAPublicKey_bioRSA_public_encryptRSA_public_decryptRSA_private_encryptossl_rsa_newcRSArb_eTypeErrorInit_ossl_rsaePKeyErrormPKeyrb_define_class_undercPKeyrb_define_singleton_methodrb_define_methodrb_define_aliasrb_define_constEVP_CIPHER_CTX_iv_lengthEVP_CipherInit_exeCipherErrorEVP_CIPHER_CTX_nidEVP_CIPHER_CTX_ctrlEVP_CIPHER_CTX_key_lengthEVP_CIPHER_CTX_block_sizeEVP_CipherFinal_exEVP_CipherUpdaterb_str_resizerb_eRangeErrorrb_eArgErrorGetDigestPtrEVP_CIPHER_CTX_cipherEVP_BytesToKeyOPENSSL_cleanseEVP_md5rb_ary_newOBJ_NAME_do_all_sortedrb_str_new_cstrrb_ary_pushcCipherrb_obj_is_kind_ofEVP_CIPHER_CTX_copyruby_xcallocrb_error_frozen_objectrb_obj_classEVP_CIPHER_CTX_cleanupruby_xfreeEVP_CIPHER_block_sizeEVP_CIPHER_iv_lengthEVP_CIPHER_key_lengthEVP_CIPHER_nidOBJ_nid2snrb_class_pathrb_warn__memcpy_chkEVP_CIPHER_CTX_initEVP_get_cipherbynameEVP_CIPHER_CTX_set_key_lengthEVP_CIPHER_CTX_set_paddingruby_xmalloc2ossl_cipher_newInit_ossl_cipherrb_cObjectmOSSLrb_define_alloc_funcrb_define_module_functionSSL_SESSION_freeossl_ssl_session_typeSSL_SESSION_printPEM_write_bio_SSL_SESSIONi2d_SSL_SESSIONcSSLSocketrb_obj_is_instance_ofPEM_read_bio_SSL_SESSIONossl_ssl_typeSSL_get1_sessionSSL_SESSION_newd2i_SSL_SESSIONASN1_d2i_bioSSL_SESSION_get_idSSL_SESSION_get_timeoutrb_int2bigSSL_SESSION_set_timeoutrb_num2longSSL_SESSION_get_timerb_cTimerb_funcallrb_intern2SSL_SESSION_set_timeSSL_SESSION_cmpmemcmpcSSLSessionInit_ossl_ssl_sessionmSSLOCSP_CERTID_freeGetX509CertPtrOCSP_cert_to_ideOCSPErrorOCSP_BASICRESP_freeOCSP_resp_countOCSP_resp_get0OCSP_single_get0_statusOCSP_CERTID_dupcOCSPCertIdasn1time_to_timeOCSP_SINGLERESP_get_ext_countOCSP_SINGLERESP_get_extossl_x509ext_newOCSP_basic_add1_nonceOCSP_REQUEST_freei2d_OCSP_RESPONSEOCSP_RESPONSE_freed2i_OCSP_RESPONSEi2d_OCSP_REQUESTOCSP_request_onereq_countOCSP_request_onereq_get0OCSP_onereq_get0_idOCSP_request_add1_nonced2i_OCSP_REQUESTasn1integer_to_numOCSP_id_issuer_cmpOCSP_id_cmpOCSP_CERTID_newcOCSPReqOCSP_copy_nonceOCSP_BASICRESP_newOCSP_response_get1_basiccOCSPBasicResOCSP_response_statusOCSP_response_status_strOCSP_RESPONSE_newOCSP_request_add0_idOCSP_check_nonceOCSP_REQUEST_newOCSP_response_createGetX509StorePtrossl_x509_ary2skOCSP_request_verifyX509_freesk_pop_freeERR_peek_errorERR_error_stringOCSP_basic_verifyGetPrivPKeyPtrEVP_sha1OCSP_basic_signsk_new_nullOCSP_request_signrb_Integerrb_protectASN1_TIME_freerb_check_typecX509Extrb_gc_writebarrier_unprotectX509_gmtime_adjOCSP_basic_add1_statusX509_EXTENSION_freeDupX509ExtPtrOCSP_SINGLERESP_add_extInit_ossl_ocsprb_define_module_undermOCSPcOCSPResX509_ATTRIBUTE_freei2d_X509_ATTRIBUTEeX509AttrErrori2d_ASN1_TYPEi2d_ASN1_SETmASN1ossl_asn1_get_asn1typeASN1_TYPE_getASN1_TYPE_freesk_freeeASN1ErrorX509_ATTRIBUTE_get0_objectOBJ_obj2nidi2a_ASN1_OBJECTd2i_X509_ATTRIBUTEX509_ATTRIBUTE_newOBJ_txt2objX509_ATTRIBUTE_set1_objectossl_x509attr_newX509_ATTRIBUTE_dupcX509AttrDupX509AttrPtrInit_ossl_x509attrmX509EC_GROUP_clear_freeEC_POINT_clear_freecEC_GROUPEC_GROUP_get_point_conversion_formcBNrb_obj_allocossl_bn_ctxEC_POINT_point2bneEC_POINTeEC_GROUPEC_POINT_set_to_infinitycEC_POINTEC_POINT_invertEC_POINT_make_affineEC_POINT_is_on_curveEC_POINT_is_at_infinityEC_POINT_dupEC_POINT_bn2pointEC_POINT_newEC_POINT_mulCRYPTO_mallocrb_ary_entryrb_cArrayrb_ary_unshiftEC_POINTs_mulCRYPTO_freeECPKParameters_printPEM_write_bio_ECPKParametersi2d_ECPKParametersASN1_i2d_bioeECErrorEC_GROUP_set_seedEC_GROUP_set_generatorEC_GROUP_cmpEC_POINT_cmprb_sym2idEC_GROUP_new_curve_GFpEC_GROUP_dupPEM_read_bio_ECPKParametersEC_GFp_nist_methodEC_GROUP_newd2i_ECPKParametersrb_string_value_cstrOBJ_sn2nidERR_get_errorEC_GROUP_new_by_curve_nameEC_GROUP_set_asn1_flagEC_GROUP_set_point_conversion_formEC_GFp_simple_methodEC_GFp_mont_methodEC_KEY_printEC_KEY_get0_public_keyEC_KEY_check_keyEC_KEY_get0_private_keyi2d_ECPrivateKey_bioPEM_write_bio_ECPrivateKeyi2d_EC_PUBKEY_bioPEM_write_bio_EC_PUBKEYECDSA_verifyECDSA_sizeECDSA_signECDH_compute_keyEC_KEY_set_public_keyEC_KEY_set_private_keyEC_KEY_set_groupEC_KEY_get0_groupcECEC_KEY_dupPEM_read_bio_ECPrivateKeyEC_KEY_newPEM_read_bio_EC_PUBKEYd2i_ECPrivateKey_biod2i_EC_PUBKEY_bioEC_KEY_new_by_curve_nameEC_KEY_set_asn1_flagEC_KEY_set_conv_formEC_KEY_freeEC_get_builtin_curvesrb_ary_new_caparb_undef_methodEC_GROUP_get_degreeEC_GROUP_get_seed_lenEC_GROUP_get0_seedrb_id2symEC_GROUP_get_asn1_flagEC_GROUP_get_curve_nameEC_GROUP_get_cofactorEC_GROUP_get_orderEC_GROUP_get0_generatorEC_KEY_generate_keyossl_ec_newInit_ossl_ecrb_attrEVP_MD_CTX_destroyEVP_MD_CTX_mdEVP_MD_sizeEVP_DigestFinal_exEVP_DigestInit_exeDigestErrorEVP_MD_CTX_createossl_digest_updateEVP_DigestUpdateEVP_MD_typeEVP_MD_block_sizecDigestEVP_MD_CTX_copyEVP_get_digestbynameASN1_OBJECT_freeossl_digest_newInit_ossl_digestrb_requirerb_path2classrb_define_private_methodInit_ossl_x509Init_ossl_x509certInit_ossl_x509crlInit_ossl_x509extInit_ossl_x509nameInit_ossl_x509reqInit_ossl_x509revokedInit_ossl_x509storeX509_get_default_cert_areaX509_get_default_cert_dirX509_get_default_cert_fileX509_get_default_cert_dir_envX509_get_default_cert_file_envX509_get_default_private_dirX509_STORE_freeX509_STORE_CTX_freeX509_LOOKUP_fileX509_STORE_add_lookupX509_LOOKUP_ctrlrb_check_safe_objeX509StoreErrorX509_LOOKUP_hash_dirX509_STORE_CTX_set_timecX509StoreDupX509CertPtrX509_STORE_CTX_initX509_STORE_CTX_set_flagsossl_x509crl_newX509_STORE_CTX_get_current_certossl_x509_newX509_STORE_CTX_get_error_depthX509_STORE_CTX_get_errorX509_verify_cert_error_stringX509_STORE_CTX_set_errorX509_STORE_CTX_get_chainsk_numsk_valuedOSSLstderrfwrite__fprintf_chkcX509StoreContextrb_block_procossl_store_ctx_ex_verify_cb_idxX509_STORE_CTX_set_ex_dataX509_verify_certX509_STORE_CTX_newGetX509CRLPtrX509_STORE_add_crlX509_STORE_add_certX509_STORE_set_default_pathsX509_STORE_set_flagsossl_store_ex_verify_cb_idxCRYPTO_set_ex_dataossl_verify_cbX509_STORE_newX509_STORE_CTX_set_purposeX509_STORE_CTX_set_trustX509_STORE_set_purposeX509_STORE_set_trustossl_x509store_newDupX509StorePtrCRYPTO_add_lockossl_x509stctx_newossl_x509stctx_clear_ptrX509_REQ_freeX509_REQ_add1_attreX509ReqErrorX509_REQ_printi2d_X509_REQPEM_write_bio_X509_REQcX509ReqX509_REQ_dupPEM_read_bio_X509_REQd2i_X509_REQ_bioX509_REQ_newX509_REQ_get_attr_countX509_REQ_get_attrGetPKeyPtrX509_REQ_verifyX509_REQ_signX509_REQ_set_pubkeyX509_REQ_get_pubkeyossl_pkey_newGetX509NamePtrX509_REQ_set_subject_nameossl_x509name_newX509_REQ_set_versionASN1_INTEGER_getossl_x509req_newGetX509ReqPtrDupX509ReqPtrrb_attr_getOBJ_txt2nidOBJ_nid2lncASN1EndOfContentrb_funcallv_publiccASN1SetcASN1SequencecASN1GeneralizedTimecASN1UTCTimecASN1ObjectIdcASN1NullcASN1BMPStringcASN1UniversalStringcASN1GeneralStringcASN1ISO64StringcASN1GraphicStringcASN1IA5StringcASN1VideotexStringcASN1T61StringcASN1PrintableStringcASN1NumericStringcASN1UTF8StringcASN1OctetStringcASN1BitStringcASN1EnumeratedcASN1IntegercASN1Booleanrb_ary_eachrb_block_callrb_str_appendsscanfrb_funcallvrb_warningASN1_INTEGER_to_BNOBJ_obj2txtOBJ_createASN1_object_sizeASN1_put_objectmemcpyrb_ivar_setrb_class_superclassrb_hash_lookupASN1_get_objectcASN1DatacASN1Constructiverb_yieldd2i_ASN1_TIMEd2i_ASN1_ENUMERATEDASN1_ENUMERATED_freed2i_ASN1_OBJECTd2i_ASN1_NULLASN1_NULL_freed2i_ASN1_BIT_STRINGASN1_BIT_STRING_freed2i_ASN1_INTEGERASN1_INTEGER_freed2i_ASN1_BOOLEANrb_str_new_frozenASN1_put_eoccASN1Primitivetime_to_time_tasn1str_to_strnum_to_asn1integerBN_to_ASN1_INTEGERASN1_GENERALIZEDTIME_setASN1_TYPE_setASN1_BIT_STRING_newASN1_BIT_STRING_setASN1_STRING_newASN1_STRING_setASN1_STRING_freeASN1_NULL_newossl_to_derASN1_UTCTIME_setossl_buf2strInit_ossl_asn1rb_ary_storerb_mEnumerablerb_include_modulerb_global_variableHMAC_CTX_cleanupHMAC_CTX_copyHMAC_FinaleHMACErrorstring2hexHMAC_CTX_initHMAC_UpdateHMAC_InitcHMACInit_ossl_hmacX509_CRL_freeX509_CRL_add_exteX509CRLErrorX509_CRL_printPEM_write_bio_X509_CRLi2d_X509_CRL_biocX509RevX509_REVOKED_freeDupX509RevokedPtrX509_CRL_add0_revokedX509_CRL_sortcX509CRLX509_CRL_dupPEM_read_bio_X509_CRLd2i_X509_CRL_bioX509_CRL_newX509_CRL_get_ext_countX509_CRL_get_extX509_CRL_verifyX509_CRL_signossl_x509revoked_newX509_time_adjX509_CRL_set_issuer_nameX509_CRL_set_versionDupX509CRLPtrEVP_DigestInitEVP_VerifyFinalEVP_MD_CTX_cleanupid_private_qEVP_PKEY_sizeEVP_SignFinalrb_eNotImpErrorossl_generate_cbossl_dh_newossl_dsa_newd2i_PrivateKey_bioPEM_read_bio_PrivateKeyd2i_PUBKEY_bioPEM_read_bio_PUBKEYossl_pkey_new_from_filefopenfilenorb_fd_fix_cloexecPEM_read_PrivateKeyfclose__errno_locationstrerrorDupPKeyPtrDupPrivPKeyPtrInit_ossl_pkeyInit_ossl_dsaInit_ossl_dhNETSCAPE_SPKI_freeeSPKIErrorNETSCAPE_SPKI_printi2d_NETSCAPE_SPKIeX509CertErrorNETSCAPE_SPKI_b64_decoded2i_NETSCAPE_SPKINETSCAPE_SPKI_verifyNETSCAPE_SPKI_signNETSCAPE_SPKI_set_pubkeyNETSCAPE_SPKI_get_pubkeyNETSCAPE_SPKI_b64_encodestrlenNETSCAPE_SPKI_newInit_ossl_ns_spkimNetscapecSPKIX509_NAME_freei2d_X509_NAMEeX509NameErrorX509_NAME_entry_countrb_ary_new_from_argsX509_NAME_get_entryi2t_ASN1_OBJECTOBJ_ln2nidX509_NAME_print_exX509_NAME_onelineX509_NAME_add_entry_by_txtcX509Namerb_const_getrb_check_array_typed2i_X509_NAMEX509_NAME_newX509_NAME_cmpX509_NAME_hashrb_uint2bigX509_NAME_hash_oldX509_NAME_duprb_mComparablerb_hash_set_ifnoneGetConfigPtrcConfigNCONF_newNCONF_load_bioNCONF_freeeConfigErrorInit_ossl_configCONF_get1_default_config_filei2d_PKCS12ePKCS12ErrorPKCS12_freed2i_PKCS12_bioPKCS12_parseossl_x509_sk2aryPKCS12_newPKCS12_createcPKCS12Init_ossl_pkcs12PKCS7_RECIP_INFO_freePKCS7_SIGNER_INFO_freei2d_PKCS7ePKCS7ErrorPKCS7_freeossl_protect_x509_ary2skPKCS7_verifyERR_reason_error_stringPKCS7_dataInitBIO_writeBIO_readPKCS7_dataFinalPKCS7_content_newd2i_PKCS7_RECIP_INFOi2d_PKCS7_RECIP_INFOASN1_dupcPKCS7RecipientPKCS7_RECIP_INFO_newPKCS7_get_signer_infod2i_PKCS7_SIGNER_INFOi2d_PKCS7_SIGNER_INFOcPKCS7SignerPKCS7_SIGNER_INFO_newPEM_read_bio_PKCS7d2i_PKCS7_biocPKCS7PKCS7_dupPKCS7_RECIP_INFO_setPKCS7_get_signed_attributePKCS7_SIGNER_INFO_setPEM_write_bio_PKCS7ossl_x509crl_sk2arysk_popPKCS7_add_crlPKCS7_add_certificatePKCS7_add_recipient_infoPKCS7_add_signerOBJ_nid2objPKCS7_add_signed_attributePKCS7_set_cipherPKCS7_ctrlstrcmprb_sym2strPKCS7_set_typePKCS7_newSMIME_read_PKCS7PKCS7_decryptPKCS7_encryptEVP_rc2_40_cbcPKCS7_signSMIME_write_PKCS7Init_ossl_pkcs7eDSAErrori2d_DSAPrivateKeyi2d_DSA_PUBKEYPEM_write_bio_DSAPrivateKeyPEM_write_bio_DSA_PUBKEYDSA_printDSA_generate_parameters_exd2i_DSAPublicKeyi2d_DSAPublicKeyDSA_freeDSA_newRAND_bytesDSA_generate_keyPEM_read_bio_DSAPrivateKeyPEM_read_bio_DSA_PUBKEYd2i_DSAPrivateKey_biod2i_DSA_PUBKEY_bioPEM_ASN1_read_biocDSAPKCS5_PBKDF2_HMAC_SHA1ePKCS5PKCS5_PBKDF2_HMACInit_ossl_pkcs5mPKCS5i2d_X509_EXTENSIONeX509ExtErrorX509_EXTENSION_get_objectASN1_OCTET_STRING_newX509_EXTENSION_set_dataASN1_OCTET_STRING_freed2i_X509_EXTENSIONX509V3_EXT_nconf_nidX509V3_EXT_printASN1_STRING_printX509_EXTENSION_get_criticalX509_EXTENSION_set_criticalX509_EXTENSION_set_objectX509V3_set_nconfX509V3_set_ctxX509_EXTENSION_newX509_EXTENSION_dupGetX509ExtPtrcX509ExtFactoryRAND_statusrb_num2dblRAND_addRAND_seedeRandomErrorRAND_egdRAND_pseudo_bytesRAND_write_fileRAND_load_fileRAND_egd_bytesInit_ossl_randmRandomDH_sizeeDHErrori2d_DHparamsPEM_write_bio_DHparamsDHparams_printDH_generate_parameters_exDHparams_dupDH_freeDH_generate_keyDH_checkDH_newPEM_read_bio_DHparamsd2i_DHparamsBN_bin2bncDHOSSL_DEFAULT_DH_512OSSL_DEFAULT_DH_1024ENGINE_freeENGINE_get_cmd_defnsENGINE_ctrl_cmd_stringeEngineErrorENGINE_load_public_keyENGINE_load_private_keyENGINE_get_firstENGINE_up_refENGINE_get_nextENGINE_cleanupENGINE_load_opensslENGINE_load_builtin_enginesENGINE_by_idENGINE_initENGINE_ctrlENGINE_get_nameENGINE_get_idrb_sprintfENGINE_set_defaultENGINE_get_digestENGINE_get_cipherENGINE_finishENGINE_newInit_ossl_enginecEngineX509_add_exti2d_X509cX509CertX509_dupPEM_read_bio_X509d2i_X509_bioX509_newX509_get_ext_countX509_get_extX509_check_private_keyX509_verifyX509_signX509_set_pubkeyX509_get_pubkeyX509_set_issuer_nameX509_get_issuer_nameX509_set_subject_nameX509_get_subject_nameX509_get_serialNumberX509_set_versionX509_printPEM_write_bio_X509ossl_x509_new_from_filePEM_read_X509ossl_call_verify_cb_procossl_get_errorsERR_peek_last_errorrb_vsprintfrb_str_cat_cstrrb_exc_new_strrb_str_catrb_nativethread_lock_initializerb_nativethread_lock_destroyrb_nativethread_lock_lockrb_nativethread_lock_unlockrb_nativethread_selfCRYPTO_THREADID_set_pointerCRYPTO_mem_ctrlossl_x509_ary2sk0ossl_x509name_sk2aryPEM_def_callbackrb_set_errinfoX509_STORE_CTX_get_ex_dataCRYPTO_get_ex_dataossl_s_to_derrb_respond_torb_exc_raisesk_pushFIPS_modeFIPS_mode_setossl_exc_newInit_opensslSSL_library_initOPENSSL_add_all_algorithms_noconfERR_load_crypto_stringsSSL_load_error_stringsrb_define_moduleSSLeay_versionrb_eStandardErrorX509_STORE_CTX_get_ex_new_indexCRYPTO_get_ex_new_indexCRYPTO_num_locksCRYPTO_THREADID_set_callbackCRYPTO_set_locking_callbackCRYPTO_set_dynlock_create_callbackCRYPTO_set_dynlock_lock_callbackCRYPTO_set_dynlock_destroy_callbackInit_ossl_bnInit_ossl_sslrb_eNoMemErrorX509_REVOKED_add_exteX509RevErrorX509_REVOKED_newX509_REVOKED_get_ext_countX509_REVOKED_get_extd2i_X509_REVOKEDi2d_X509_REVOKEDrb_StringBN_dec2bnBN_hex2bnBN_mpi2bnrb_absint_sizerb_integer_packrb_free_tmp_bufferBN_set_negativerb_alloc_tmp_bufferBN_bn2hexrb_cstr_to_inumBN_num_bitsBN_cmpruby_xmallocBN_bn2binrb_memhashBN_is_bit_setBN_clear_bitBN_mask_bitsBN_lshiftBN_rshiftBN_pseudo_randBN_randBN_is_prime_fasttestBN_is_primeBN_bn2decBN_bn2mpirb_assoc_newBN_sqrBN_dupBN_mod_inverseBN_generate_primeBN_pseudo_rand_rangeBN_rand_rangeBN_ucmpBN_gcdBN_mod_expBN_expBN_mod_sqrBN_mod_mulBN_mod_subBN_mod_addBN_divBN_mulBN_subBN_addBN_CTX_newSSL_freeSSL_get0_next_proto_negotiatedSSL_get_client_CA_listSSL_get_verify_resultSSL_stateossl_ssl_ex_ptr_idxSSL_get_ex_dataeSSLErrorossl_ssl_ex_store_pSSL_CTX_get_ex_dataSSL_CTX_freeSSL_pendingSSL_state_stringrb_ruby_verbose_ptrSSL_state_string_longSSL_CIPHER_get_nameSSL_CIPHER_get_versionSSL_CIPHER_get_bitsSSL_get_current_cipherSSL_get_versionSSL_get_peer_cert_chainSSL_get_peer_certificateSSL_get_certificateSSL_shutdownSSL_clearSSL_CTX_flush_sessionsSSL_CTX_ctrlSSL_get_servernameID_callback_stateossl_ssl_ex_client_cert_cb_idxSSL_get_ex_data_X509_STORE_CTX_idxossl_ssl_ex_vcb_idxossl_ssl_ex_tmp_dh_callback_idxSSL_CTX_set_cipher_listSSL_CTX_set_ssl_versionrb_id2nameruby_snprintfSSL_ctrlSSL_newrb_io_taint_checkrb_io_check_closedrb_io_check_readablerb_io_check_writableSSL_set_fdSSL_set_ex_dataSSL_set_info_callbackSSL_set_sessionSSL_writeSSL_get_errorrb_io_wait_writablerb_io_wait_readablerb_sys_failrb_hash_arefrb_ivar_getSSL_acceptSSL_connectSSL_CTX_remove_sessionSSLv23_methodSSL_CTX_newrb_str_modifySSL_readrb_thread_wait_fdrb_eof_errorSSL_CTX_add_sessionSSL_CTX_set_tmp_dh_callbackSSL_CTX_set_ex_dataSSL_CTX_set_cert_storeSSL_CTX_use_certificateSSL_CTX_use_PrivateKeySSL_CTX_check_private_keySSL_CTX_add_client_CASSL_CTX_set_verifySSL_CTX_set_timeoutSSL_CTX_set_verify_depthrb_eachrb_iterateSSL_CTX_set_next_protos_advertised_cbrb_obj_freezeSSL_CTX_set_session_id_contextSSL_CTX_callback_ctrlSSL_CTX_load_verify_locationsSSL_CTX_sess_set_remove_cbSSL_CTX_sess_set_new_cbSSL_CTX_sess_set_get_cbSSL_CTX_set_next_proto_select_cbSSL_CTX_set_client_cert_cbcSSLContextrb_call_superSSL_set_SSL_CTXSSL_get_ex_new_indexrb_mWaitReadablerb_mWaitWritablerb_internTLSv1_methodTLSv1_server_methodTLSv1_client_methodTLSv1_2_methodTLSv1_2_server_methodTLSv1_2_client_methodTLSv1_1_methodTLSv1_1_server_methodTLSv1_1_client_methodSSLv2_methodSSLv2_server_methodSSLv2_client_methodSSLv3_methodSSLv3_server_methodSSLv3_client_methodSSLv23_server_methodSSLv23_client_methodBIO_new_mem_bufrb_cloexec_duprb_update_max_fdfdopenBIO_new_fpossl_membio2str0ossl_protect_obj2bioossl_protect_membio2strlibruby.so.2.2libssl.so.10libcrypto.so.10libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.3.4GLIBC_2.4GLIBC_2.14GLIBC_2.2.5OPENSSL_1.0.2OPENSSL_1.0.1_EC/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64	

�EPti	
�Eii
�E����Eui	�E�E ui	�EhE Лw
hEuE"+j	F3�F t�
uE�8%p��8%0��8%�8%�8%#K�8%���8%�� 9%�M09%���9%Q�9%��9%#Q�9% �@:%:QP:%���:%PQ�:%��;%�R;%@`;%jXp;%�
�;%{X�;%�
 <%�[0<%@Q�<%�b�<%`^�<%c�<%P^@=%�cP=%@s�=%Wl�=%��>%7m>%�`>%�mp>%���>%�n�>%P� ?%�o0?%��?%�p�?%p�?%8s�?%0@@%QsP@%@�@%ks�@%pA%�vA%�V`A%�vpA%�T�A%Oy�A%P� B%ez0B%���B%�}�B%���B%�B%0��B%�@C%��PC%��C%���C%`�D%�aD%dHD%W�D%x� D%��(D%��0D%��8D%��@D%gHD%�aPD%ɂXD%�`D%��hD%5�pD%E�xD%���D%^��D%N��D%;��D%��D%�e�D%�g�D%�g�D%�g�D%�g�D%�gE%�gE%�g E%�g0E%�g@E%�gPE%
h`E%hpE%"h�E%/h�E%>h�E%Mh�E%Vh�E%Zh�E%hh�E%xh�E%�hF%�hF%�h F%�h0F%�h@F%�hPF%�h`F%�hpF%�h�F%�h�F%"��F%���F%·�F%<��F%ۇ�F%�G%.�G%�� G%�0G%
�@G%�PG%$�`G%�pG%1��G%>��G%K��G%R��G%`��D%�M%�D%��M%��D%�pM%��D%��N%��D%
�O%
�D%pJ%E%{N%{HE%��K%�hE%@L%�E%%�O%%�E%�XL%��E%��L%��E%��K%��E%�xJ%��E%c L%cF%0N%F%��O%�(F%xO%8F%��K%�HF%��K%�XF%HL%hF%	�O%	�F%��N%��F%"�F%��F%n�F%��F%�F%G%VG%,(G%X8G%�HG%�XG%�hG%�xG%��G%M�G%��G%��G%`J%J%�J%J%� J%�(J%0J%$8J%�@J%'HJ%�PJ%XJ%`J%�hJ%��J%Y�J%��J%o�J%e�J%��J%d�J%o�J% �J%z�J%��J%��J%��J%��J%�J%��J%OK%�K%�K%�K%' K%�(K%+0K%�8K%�@K%�HK%&PK%$XK%s`K%(hK%|pK%�xK%��K%S�K%N�K%�K%��K%'�K%(�K%#�K%��K%��K%��K%Y�K%�L%_L%�L%�L%V(L%�0L%�8L%UPL%�`L%�hL%)pL%qxL%��L%��L%��L%��L%��L%��L%��L%\�L%��L%��L%��L%��L%��L%��L%��L%�M%�M%M%xM%� M%�(M%�0M%�8M%h@M%}HM%PM%XM%�`M%hM%xM%��M%��M%
�M%��M%m�M%~�M%��M%/�M%��M%��M%f�M%5�M%6�M%��M%>N%EN%FN%Q N%u(N%j8N%�@N%lHN%�PN%eXN%�`N%QhN%�pN%�xN%��N%��N%��N%��N%��N%�N%��N%��N%��N%y�N%��N%��N%�N%��N%�O%�O%�O%�O%� O%�(O%�0O%T8O%W@O%HO%�PO%XO%a`O%�hO%�pO%��O%�O%k�O%�O%!�O%!�O%(�O%��O%��O%I�O%r�O%��O%�P% P%(P%0P%]8P%@P%�HP%PP%XP%`P%	hP%pP%pxP%
�P%�P%�P%
�P%�P%�P%�P%�P%�P%�P%��P%�P%�P%�P%�P%�P%Q%Q%Q%Q% Q%�(Q% 0Q%!8Q%"@Q%#HQ%%PQ%&XQ%'`Q%(hQ%pQ%)xQ%*�Q%+�Q%,�Q%-�Q%.�Q%/�Q%0�Q%1�Q%2�Q%[�Q%3�Q%4�Q%��Q%5�Q%6�Q%7�Q%8R%9R%:R%;R%< R%=(R%>0R%?8R%@@R%AHR%BPR%CXR%D`R%EhR%FpR%GxR%H�R%I�R%J�R%K�R%L�R%M�R%N�R%O�R%P�R%Q�R%R�R%S�R%T�R%U�R%V�R%W�R%^S%ZS%[S%\S%] S%^(S%_0S%`8S%a@S%bHS%cPS%dXS%f`S%ghS%hpS%ixS%j�S%k�S%l�S%m�S%p�S%q�S%r�S%s�S%t�S%u�S%v�S%w�S%x�S%y�S%{�S%|�S%}T%~T%T%�T%� T%�(T%�0T%�8T%�@T%�HT%�PT%�XT%�`T%�hT%�pT%�xT%��T%��T%��T%��T%��T%��T%��T%��T%��T%��T%��T%��T%��T%��T%��T%��T%�U%�U%�U%�U%� U%�(U%�0U%�8U%�@U%�HU%�PU%�XU%�`U%�hU%�pU%�xU%��U%��U%��U%��U%��U%��U%��U%��U%O�U%��U%��U%��U%��U%��U%��U%��U%�V%�V%�V%�V%� V%�(V%�0V%�8V%�@V%�HV%�PV%iXV%�`V%�hV%�pV%�xV%��V%��V%��V%��V%��V%��V%��V%��V%��V%��V%��V%��V%��V%��V%��V%b�V%�W%�W%�W%�W%� W%�(W%�0W%�8W%�@W%�HW%�PW%�XW%�`W%�hW%�pW%�xW%��W%��W%��W%��W%��W%t�W%��W%��W%��W%��W%��W%��W%��W%��W%��W%��W%�X%�X%�X%�X%� X%�(X%0X%8X%@X%HX%PX%XX%`X%hX%pX%	xX%
�X%�X%�X%
�X%�X%�X%��X%��X%�X%�X%�X%�X%�X%�X%�X%�X%�Y%NY%Y%Y% Y%(Y%0Y%8Y%@Y% HY%!PY%"XY%#`Y%$hY%%pY%�xY%&�Y%)�Y%*�Y%+�Y%-�Y%.�Y%/�Y%0�Y%1�Y%2�Y%3�Y%4�Y%5�Y%6�Y%7�Y%8�Y%�Z%9Z%:Z%�Z%; Z%<(Z%=0Z%>8Z%?@Z%@HZ%APZ%XZ%B`Z%ChZ%DpZ%ExZ%F�Z%l�Z%G�Z%H�Z%I�Z%J�Z%K�Z%L�Z%M�Z%N�Z%O�Z%P�Z%Q�Z%R�Z%S�Z%T�Z%U[%V[%W[%X[%Y [%Z([%[0[%\8[%]@[%^H[%_P[%`X[%a`[%bh[%cp[%dx[%��[%e�[%f�[%g�[%h�[%i�[%j�[%k�[%l�[%��[%m�[%n�[%o�[%p�[%q�[%r�[%s\%t\%u\%v\%w \%x(\%y0\%z8\%�@\%{H\%|P\%}X\%~`\%h\%�p\%�x\%��\%��\%��\%��\%��\%��\%��\%��\%��\%��\%��\%��\%��\%��\%��\%��\%�]%�]%�]%�]%� ]%�(]%�0]%�8]%�@]%PH]%�P]%�X]%�`]%�h]%�p]%�x]%��]%��]%��]%��]%��]%��]%��]%��]%��]%��]%��]%��]%��]%��]%��]%��]%�^%�^%�^%�^%� ^%�(^%�0^%�8^%�@^%�H^%�P^%�X^%�`^%�h^%�p^%�x^%��^%��^%��^%��^%��^%��^%��^%��^%��^%��^%��^%��^%��^%��^%��^%��^%�_%�_%�_%�_%� _%�(_%�0_%�8_%�@_%H_%�P_%�X_%�`_%�h_%�p_%�x_%�_%��_%��_%��_%��_%��_%��_%��_%��_%��_%��_%�_%��_%��_%g�_%��_%�`%�`%�`%�`%� `%�(`%�0`%�8`%�@`%�H`%P`%�X`%�``%�h`%p`%x`%�`%��`%�`%�`%��`%�`%�`%�`%�`%�`%	�`%
�`%�`%
�`%�`%�`%a%a%a%a% a%(a%0a%8a%@a%Ha%�Pa%Xa%`a%ha%pa%xa%�a% �a%!�a%#�a%$�a%%�a%&�a%��a%'�a%(�a%)�a%*�a%��a%+�a%,�a%-�a%�b%.b%�b%0b%1 b%2(b%30b%48b%5@b%7Hb%8Pb%9Xb%:`b%;hb%<pb%=xb%?�b%@�b%A�b%B�b%C�b%D�b%F�b%G�b%H�b%I�b%J�b%K�b%L�b%M�b%N�b%O�b%Pc%Qc%Rc%Sc%� c%T(c%U0c%W8c%X@c%YHc%ZPc%�Xc%[`c%\hc%]pc%^xc%_�c%a�c%b�c%�c%c�c%��c%d�c%e�c%f�c%g�c%h�c%i�c%j�c%k�c%m�c%n�c%od%pd%qd%rd%s d%t(d%u0d%*8d%v@d%wHd%xPd%yXd%z`d%{hd%|pd%}xd%~�d%�d%��d%��d%��d%n�d%��d%��d%��d%��d%��d%��d%��d%��d%,�d%��d%�e%�e%�e%�e%� e%�(e%�0e%�8e%�@e%�He%�Pe%�Xe%�`e%�he%�pe%�xe%��e%��e%��e%��e%��e%��e%��e%��e%��e%��e%��e%��e%��e%��e%��e%��e%�f%�f%�f%�f%� f%�(f%�0f%�8f%�@f%�Hf%�Pf%�Xf%�`f%�hf%�pf%�xf%��f%�f%��f%��f%��f%��f%��f%��f%��f%��f%��f%��f%��f%��f%��f%��f%�g%�g%�g%�g%� g%�(g%�0g%�8g%�@g%�Hg%�Pg%�Xg%�`g%�hg%�pg%�xg%��g%��g%��g%��g%��g%��g%��g%��g%��g%��g%��g%��g%��g%��g%��g%��g%�h%�h%�h%�h%� h%�(h%�0h%�8h%�@h%�Hh%�Ph%�Xh%�`h%Zhh%�ph%�xh%��h%��h%�h%�h%��h%�h%�h%�h%�h%�h%�h%�h%	�h%
�h%�h%��h%
i%i%�i%i% i%v(i%0i%8i%@i%Hi%Pi%�Xi%`i%hi%pi%Rxi%�i%�i%�i%�i%�i%�i%�i% �i%��i%"�i%#�i%$�i%%�i%&�i%'�i%)�i%*j%+j%�j%,j%- j%.(j%/0j%08j%1@j%2Hj%3Pj%4Xj%5`j%6hj%7pj%8xj%9�j%z�j%:�j%;�j%<�j%=�j%>�j%?�j%@�j%A�j%B�j%C�j%D�j%E�j%F�j%G�j%Hk%k%Jk%Kk%L k%X��H��H�9$H��t��H����5�$�%�$��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��������hb�������hc�������hd�������he�������hf�������hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!������hm��������hn��������ho������hp�������hq��������hr�������hs�������ht�������hu�������hv�������hw��q������hx��a������hy��Q������hz��A������h{��1������h|��!������h}��������h~��������h������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h�������h�������h�������h������h������h������h������h������h���q���h���a���h���Q���h���A���h���1���h���!���h������h������h��������h�������h�������h������h������h������h������h������h��q����h��a����h	��Q����h
��A����h��1����h��!����h
������h������h�������h�������h�������h������h������h������h������h������h��q����h��a����h��Q����h��A����h��1����h��!����h������h������h�������h �������h!�������h"������h#������h$������h%������h&������h'��q����h(��a����h)��Q����h*��A����h+��1����h,��!����h-������h.������h/�������h0�������h1�������h2������h3������h4������h5������h6������h7��q����h8��a����h9��Q����h:��A����h;��1����h<��!����h=������h>������h?�������h@�������hA�������hB������hC������hD������hE������hF������hG��q����hH��a����hI��Q����hJ��A����hK��1����hL��!����hM������hN������hO�������hP�������hQ�������hR������hS������hT������hU������hV������hW��q����hX��a����hY��Q����hZ��A����h[��1����h\��!����h]������h^������h_�������h`�������ha�������hb������hc������hd������he������hf������hg��q����hh��a����hi��Q����hj��A����hk��1����hl��!����hm������hn������ho�������hp�������hq�������hr������hs������ht������hu������hv������hw��q����hx��a����hy��Q����hz��A����h{��1����h|��!����h}������h~������h�������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h���q����h���a����h���Q����h���A����h���1����h���!����h�������h�������h���������h��������h��������h�������h�������h�������h�������h�������h��q�����h��a�����h	��Q�����h
��A�����h��1�����h��!�����h
�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h��q�����h��a�����h��Q�����h��A�����h��1�����h��!�����h�������h�������h��������h ��������h!��������h"�������h#�������h$�������h%�������h&�������h'��q�����h(��a�����h)��Q�����h*��A�����h+��1�����h,��!�����h-�������h.�������h/��������h0��������h1��������h2�������h3�������h4�������h5�������h6�������h7��q�����h8��a�����h9��Q�����h:��A�����h;��1�����h<��!�����h=�������h>�������h?��������h@��������hA��������hB�������hC�������hD�������hE�������hF�������hG��q�����hH��a�����hI��Q�����hJ��A�����hK��1�����hL��!�����hM�������hN�������hO��������hP��������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q�����hX��a�����hY��Q�����hZ��A�����h[��1�����h\��!�����h]�������h^�������h_��������h`��������ha��������hb�������hc�������hd�������he�������hf�������hg��q�����hh��a�����hi��Q�����hj��A�����hk��1�����hl��!�����hm�������hn�������ho��������hp��������hq��������hr�������hs�������ht�������hu�������hv�������hw��q�����hx��a�����hy��Q�����hz��A�����h{��1�����h|��!�����h}�������h~�������h��������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h���������h���������h��������h��������h��������h��������h��������h���q�����h���a�����h���Q�����h���A�����h���1�����h���!�����h��������h��������h���������h��������h��������h�������h�������h�������h�������h�������h��q�����h��a�����h	��Q�����h
��A�����h��1�����h��!�����h
�������h�������h��������h��������h��������h�������h�������h�������h�������h�������h��q�����h��a�����h��Q�����h��A�����h��1�����h��!�����h�������h�������h��������h ��������h!��������h"�������h#�������h$�������h%�������h&�������h'��q�����h(��a�����h)��Q�����h*��A�����h+��1�����h,��!�����h-�������h.�������h/��������h0��������h1��������h2�������h3�������h4�������h5�������h6�������h7��q�����h8��a�����h9��Q�����h:��A�����h;��1�����h<��!�����h=�������h>�������h?��������h@��������hA��������hB�������hC�������hD�������hE�������hF�������hG��q�����hH��a�����hI��Q�����hJ��A�����hK��1�����hL��!�����hM�������hN�������hO��������hP��������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q�����hX��a�����hY��Q�����hZ��A�����h[��1�����h\��!�����h]�������h^�������h_��������h`��������ha���������%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#D���%]�#D���%U�#D���%M�#D���%E�#D���%=�#D���%5�#D���%-�#D���%%�#D���%�#D���%�#D���%
�#D���%�#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%��#D���%}�#D���%u�#D���%m�#D���%e�#DH�=y�#H�r�#H9�tH�F�#H��t	�����H�=I�#H�5B�#H)�H��H��H��?H�H�tH���#H��t��fD�����=�#u+UH�=��#H��tH�=N�#����d������#]������w������ATH�5��#US�,��H�����8H�����������H��H�C H�x ����H�=��I���G��L��H��H���9��H�C H�x(���H�=t�I�����L��H��H���
��H�C H�x0�}��H�=��I������L��H��H������H�C H�x8�N��H�=��I�����L��H��H�����H�C H�x@���H�=_�I�����L��H��H���}��H�C H�xH����H�=2�I���\��L��H��H���N��H�C H�xP���H�=�I���-��L��H��H�����H�C H�xX���H�=ާH�����H��H��H������H��[]A\�H�A�#H�5z�H�81����H�)�#H�5{�H�81�������ATUSH��H��H�5��#�5��H����H��H��tkH���K�L�e H��I�|$XH��t���H��t1H��H��[]A\�@H�D$���H�t$I�D$XH�E H�xXH��u�H�X�#1�H�81�����@H�@ H�xX��H�E H�@XH��H��[]A\�H�L�#H�5��H�81����ff.���ATUSH��H��H�5ʪ#�U��H����H��H��tkH���k�L�e H��I�|$PH��t����H��t1H��H��[]A\�@H�D$���H�t$I�D$PH�E H�xPH��u�H�x�#1�H�81����@H�@ H�xP���H�E H�@PH��H��[]A\�H�l�#H�5��H�81��+��ff.���ATUSH��H��H�5�#�u��H����H��H��tkH�����L�e H��I�|$HH��t�%���H��t1H��H��[]A\�@H�D$����H�t$I�D$HH�E H�xHH��u�H���#1�H�81��,��@H�@ H�xH����H�E H�@HH��H��[]A\�H���#H�5ŤH�81��K��ff.���ATUSH��H��H�5
�#���H����H��H��tkH�����L�e H��I�|$@H��t�E���H��t1H��H��[]A\�@H�D$���H�t$I�D$@H�E H�x@H��u�H���#1�H�81��L��@H�@ H�x@���H�E H�@@H��H��[]A\�H���#H�5�H�81��k��ff.���ATUSH��H��H�5*�#���H����H��H��tkH������L�e H��I�|$8H��t�e���H��t1H��H��[]A\�@H�D$����H�t$I�D$8H�E H�x8H��u�H�ا#1�H�81��l��@H�@ H�x8���H�E H�@8H��H��[]A\�H�̪#H�5�H�81����ff.���ATUSH��H��H�5J�#����H����H��H��tkH������L�e H��I�|$0H��t��H��t1H��H��[]A\�@H�D$�6���H�t$I�D$0H�E H�x0H��u�H���#1�H�81����@H�@ H�x0�;��H�E H�@0H��H��[]A\�H��#H�5%�H�81����ff.���ATUSH��H��H�5j�#���H����H��H��tkH�����L�e H��I�|$(H��t��H��t1H��H��[]A\�@H�D$�V���H�t$I�D$(H�E H�x(H��u�H��#1�H�81����@H�@ H�x(�[��H�E H�@(H��H��[]A\�H��#H�5E�H�81�����ff.���ATUSH��H��H�5��#���H����H��H��tkH���+��L�e H��I�|$ H��t���H��t1H��H��[]A\�@H�D$�v�H�t$I�D$ H�E H�x H��u�H�8�#1�H�81�����@H�@ H�x �{��H�E H�@ H��H��[]A\�H�,�#H�5e�H�81�����ff.���AUI��ATI��U��H��SH��(H�5��#dH�%(H�D$1����H�����8H�������{H�C H�x �TH�x8�H�x@��L�d$1�L�D$L��L��H�(�����������L���Y��H�{ ���1��pHc�����H�K I��H�PH� tH�PH�D$H�8�� t[H�pH�xHc�H9��A���������Hc�L�����L��H�L$dH3%(��H��([]A\A]�f.�H��H�p���H�|$@��tM�P�����8���f�H�5%�L�����H�����H�P�#H�5
�H�81��߾������������H�%�#H�5˞H�81�贾��H�=�#H�5��H�81�蜾��H�%�#H�5^�H�81�����菾��H�ء#1�H�81��l����w�����ATUSH��H�5��#dH�%(H�D$1����H����8H��������H�} H�8tH�@t
L�%á#��L�%��#1�A��Hc�H����1�����H��H�@H� uaH�$H��H�} A�ԅ�xlH�H�4$�� tSH�CH�SH)�H9���H������H��H�L$dH3%(��H��[]A\��H�C�f.�H��H�S���H���#1�H�81��@���H�ɤ#H�5�H�81��(���H���#H�5�H�81��p��H�
���rH�57�H�=@��������ff.����AUI��ATA��H��USH��(H�5�#dH�%(H�D$1��}��H���n�8H�������sH�l$D��H�L$L��I��H�Ϝ1��`��H�|$H�������E1�H�|$I�����U�H���}��H��H��t=H�s H�~8tJH�~@tCH��L�
X�#1�L��ATE1�H���F��ZY��u,H���(��H�Q�#1�H�81����DH���x����t�H����H�L$dH3%(��H��([]A\A]�DH��� ��L�d$I�<$H��% t=I�|$Hc�H9�����~vH��u2I������f�E1�E1�����DH������M�d$���H���#H�5��H�81��~��H���#H�5��H�81��������H�"�#H�5c�H�81������@��USH��H�5�#���H��tt�8H���;���uM��H������H��H��t%H�s H��1����H��tH��[]������H�՝#1�H�81��i���H��#H�5D�H�81��Q���H�ڡ#H�5�H�81����f���SH��H�OH�W�wH�?�E��C 1�[�ff.�AUI��ATI��U1�SH���9��H��t=L��H��H���q���t=H��#H��L���{���1�H�5ΙH��H�����H��H��[]A\A]�f�H������H��H��[]A\A]�f.���USH��H��H�5��#�'��H����8H���������H�} �r���H���tJ�����؃�����H��������H�{H��t7H�����H��t*H��[]�H�����u�H��t1H��u�H���#H�8��H�����H��#1�H�81�襸��DH�A�#H�8�@H�I�#H�8����H�9�#H�8�u����H��#H�8�e����H���#H�8�U���H�ڟ#H�5,�H�81��9���H�Ÿ#H�5��H�81�������UH��SH��H�5L�#����H��tS�8H���x���u\H�C H�x8tH�x@tH���[]�DH�5�H���q��H��1�H��t�H��[]�H�8�#H�5q�H�81����H� �#H�5r�H�81�����ff.�@PXH�57�H��H��#H�81����f���H��H�5��#���H��t!H�@ H�xXH��t
H��������H���������H��H�5A�#����H��t!H�@ H�xPH��t
H�������H����a������H��H�5�#���H��t!H�@ H�xHH��t
H���Q����H����!������H��H�5��#�L��H��t!H�@ H�x@H��t
H�������H���������H��H�5��#���H��t!H�@ H�x8H��t
H��������H���������H��H�5A�#����H��t!H�@ H�x0H��t
H�������H����a������H��H�5�#���H��t!H�@ H�x(H��t
H���Q����H����!������H��H�5��#�L��H��t!H�@ H�x H��t
H�������H�������AVA��AUATUH��SH��`dH�%(H�D$X1����I����I��M���r1�H��u�ff�����@tPH��s��L�������u�L�����L�����E1�H�T$XdH3%(L���2H��`[]A\A]A^�DH�\$�D$H�D$�������H�L$H���#�|$�D$H�\$H�D$ L�l$0L�d$8D�t$@H�L$H��H�A�#H�=
���H�t$0H���m��D$PL��uu���L�������|$���5�������@H�!�#H�L$�D$�D$H�\$H�D$ L�l$0L�d$8D�t$@H�L$HL��L��D�����L��D$P��t��x�������M��tL���f���M���������������AVI��AUA��H��ATI��USH�� H�5��#dH�%(H�D$1����H���eH�\$H��H�L$1�I��H�~�L��D���������H�|$H�D$@��tC�H��t���H�H������H�މ����H��H��u]H�,�#1�H�81����E1�H��������H��H�D$�1�H�ڗ#L��1�H��I���*���H��H����L�����H�ھH��������rH�L$dH3%(L���hH�� []A\A]A^�f.����H���fDH���h��H�|$I���X���H����H�|$H���	���1�1ҾL���O����z���1�1�1�L������H��H���B���1�1ҾL�������J���1�L������H��H������1�1ҾL��������1�L�����H��H�����1�1ҾL���dz����1�1�1�L�����H��H�������1�1ҾL��藳���±��1�L�����L��H���=���H�������H�]�#H�5Q�H�81����H�������������H�c�#H�5��H�81��"��f���U�SH��H��H��(dH�%(H�D$1�H�L$L�D$�x��H�|$H��t@��tWH�H��H�|$@��tY葷��H�������H��H��tYH��H���D���H��tIH�\$dH3%(uTH��([]����H�|$H��@��u����H������H��H��u�H�����H�G�#1�H�81��ۯ������fD��AUI��ATU��H��SH��(H�5�#dH�%(H�D$1��n��H���^�8H��������3H�C H�x �L�d$1�L�D$L��L��H������C������L������H�{ �Y�1��pHc��<���H�K I��H�PH� tH�PH�D$H�8�� tLH�pH�xHc�H9�upA�������xiHc�L���
��L��H�L$dH3%(u^H��([]A\A]��H��H�p���H�|$@��t
�ȵ�����G����������:���菮��H�ؑ#1�H�81��l����w��H���#H�5f�H�81��O���H�ؕ#H�5*�H�81��7���H���#H�5��H�81����ff.�@��AUI��ATU��H��SH��(H�53�#dH�%(H�D$1����H���^�8H���K�����3H�C H�x �L�d$1�L�D$L��L��H�э���������L������H�{ ���1��pHc��|���H�K I��H�PH� tH�PH�D$H�8�� tLH�pH�xHc�H9�upA�������xiHc�L���M���L��H�L$dH3%(u^H��([]A\A]��H��H�p���H�|$@��t
�������G�����������:����Ϭ��H��#1�H�81�謬�����H��#H�5��H�81�菬��H��#H�5j�H�81��w���H��#H�59�H�81����ff.�@��AUI��ATI��U��H��SH��(H�5p�#dH�%(H�D$1����H�����8H��������{H�C H�x �TH�x8�H�x@��L�d$1�L�D$L��L��H������������L���)���H�{ ���1��pHc�製��H�K I��H�PH� tH�PH�D$H�8�� t[H�pH�xHc�H9��A���߼������Hc�L���l���L��H�L$dH3%(��H��([]A\A]�f.�H��H�p���H�|$@��tM� ������8���f�H�5��L�����H�����H� �#H�5݊H�81�诪�����������H���#H�5��H�81�脪��H�
�#H�5_�H�81��l���H���#H�5.�H�81�����_���H���#1�H�81��<����G�����H��H�5a�#���H��t�8�����u"�H���H���#H�5ÉH�81��I���H�r�#H�5ĉH�81��ѩ�����SH��tFH���?�<����urH�Ȏ#H��#H��H�8�^���1�H�5��H��H���j��H��t-H��[�����H��tH��H���#H�8�d�H�����H���#1�H�81��E���H��#H�5��H�81��-���ff.�f���SH��#H�5��H�f�#H�H�;���H�T�#H�;H�5�H�H���#H��ظ��H��#�����H����H��H�5K�H�賬��H�;�����H�$���H�56����H�;1�H�\���H�5)����H�;1�H�T�H�5��h��H�;1�H�|�H�5
��P��H�;�����H�a�H�5���5��H�;H��H�5�����H�;H�҈H�5و�i���H�;1�H���H�5ƈ����H�;1�H�u�H�5������H�;�����H�����H�5�����H�;�����H�����H�5�����H�;�����H�D���H�5�����H�;�����H���H�5w��m��H�;1�H���H�5���U��H�;�H���H�5H��:��H�;1�H�^�H�5���"��H�;�H���H�5�����H�;1�H���H�5�����H�;�H���H�5	�����H�;1�H�x�H�5����H�;�H���H�5͇���H�;1�H��H�5�����H�;�H���H�5���n��H�;1�H���H�5Y��V��H�;�H���H�5X��;��H�;1�H��H�5+��#��H�;�H�t��H�5+����H�;1�H���H�5������H�;�H�a��H�5������H�;1�H�Y��H�5����H�;�H�5߆�Y��H�;�H�5ن�E��H�;�H�5Ԇ�1��H�;[�	H�5ʆ���f.�f���H��H�H��%��ff.����H�v#1����ff.���USH��H��H�|$H�t$脷��H�5�u#H���Ź��H����H�T$H��H��� tLH�ZH���`���H�H9�OL�D$I� u;I��1�1�1�A�����H��蓶����u<H�D$H��[]�f�H����H���@M�@��H���#H�5E�H�81��b���H�{�#1�H�81��O���H�؋#H�5�H�81��7������ATUH��SH��H�|$H�t$蒶��H�D$H��� uuH��L�`��Hc�H9���H��H�5�t#诸��H��H��tiH������-��w?�IH��s4L��ھH��踫����tVH�D$H��[]A\�fDL�`H�X�H���#H�5��H�81��n���H���#H�5 �H�81��V���H���^���H�g�#H�5-�H�81��6���fD��USH��H��H�|$H�t$蔵��H�5�s#H���շ��H����H�T$H��H��� tLH�ZH��� ��H�H9�OH�L$H� u;H��E1�1�1�A�����H��袴����u;H�D$H��[]ÐH����H���@H�I��H���#H�5�H�81��r���H���#1�H�81��_���H��#H�5�H�81��G������UH�5s#SH��dH�%(H�D$1����H����H��H������1�Hc�����H��H�pH� uTH�T$H���������H�Hct$�� t:H�CH9�:H�����H��H�L$dH3%(u>H��[]��H�p�f�H�����H�
����H�5��H�=���h����s���H��#H�5�H�81��K���H�d�#1�H�81��8������AVAUATUH��H�R�SH�� dH�%(H�D$1�H�\$L�l$H��M�����H���i���H�D$H��� ��H��L�p��H���ZH�5�q#H��腵��I��H���'H���q��Hc�H�H����H�|$��H��1�茲��H�D$A��H�pH� ugH�T$L��L���w�������H�|$Hct$H��� tMH�GH9����[���H�D$H�L$dH3%(��H�� []A\A]A^�DH�p�f.�H������L�pH�X����L���H���H�|$H��諢��H�D$�:����H�Ʉ#1�H�81�蝟��H�Ƃ#H��H�5�H�81�肟��H��#H�54�H�81��j���H��#H�5��H�81��R���H�
;���H�5W�H�=���3����>���ff.���AWAVAUATI��H�~�U1�SH��dH�%(H��$�1�H�\$L�l$H��H�D$0M��H��P1�L�L$0趵��YH��^�<���H�|$�8H�|$ A�H���[H�|$(H���i���H�D$H�5Ko#L���C���I��H����H�\$L�A�� ��H�{Hc�A��H9��LH�[L�d$0L��D�D$�Y���ATE��H��H��H��L�l$HAUD�D$H�t$�5��X1�ZA�����1�M��L��L���ۯ�������@L��走���L��訰���H��$�dH3%(��H�Ę[]A\A]A^A_�f.�I��H��A���D����L����H�l$H�E�� uRH����H����H������@��t:�e���H�|$(A��H��������>���H�D$���@H�}uKH�m�P�������A���X������H��#1�H�81��ۜ�����H�_�#H�5�~H�81�辜��H�ׁ#H�5X�H�81�覜��fD��S趵��H�5�H��H������H��[�f.���SH�H������H��H������1�[���AUATUSH��H������H�������H��ƒ���������H��H9�tSH�5�l#H���Ȱ��I��H��tPL�-�~#H��I�u�}���H��tpH�5�l#H��虰��H��tDH��L���i����uvH��H��[]A\A]�fD�������I��H�C �H���p���H�	�#H�52}H�81��h���H��I�]����H�5H��H�+�#H��H�81��>���H�W�#1�H�81��+���ff.���H��tSH���n���H��[�%��D�ff.�@PX1�H��H��#H�81��ך�����SH�5�k#H��茯��H��t!E1�1�1�1�A�����H��萬����uH��[�H��#H�5H|H�81��~������f�PXH�5'|H��H��#H�81��R���f���H��H�5k#����H��tH���_���H�����H��H�H�D����fD��H��H�5�j#�̮��H��tH������H���Ǟ��H��H�H�D��f���fD��H��H�5�j#茮��H��tH���ߪ��H���g���H��H�H�D��&���fD��H��H�5Qj#�L���H��t0H�����������1���w�IH��H�Ѓ�<H���H�������f���ATUH��SH�� H�t$H�|$dH�%(H�D$1�蒫��H�D$L�A�� uaI��L�`L�Ã�H�5�i#H��购��H��tg1�H�T$A��L��H�������t6H�L$dH3%(H�D$u>H�� []A\��L�`H�X�fDH��}#H�5z|H�81��x��������~���ff.���H��H�5!i#����H��t#H���o���H��藞�������H��H���Ԯ�����ff.�@AWAVAUA��ATI��H�SxUSH��dH�%(H�D$x1�H�l$H�\$I��H��轮�����EL���=��H���e���H�=�{H��H��H��1�����H������H�5_h#L���W���I��H����H�|$��fo�|)D$ H�L$L�9A�� ��I��H��A��H�L$H�l$ �R���L��H�$�V���jE��H��A�H��H�\$8SH�L$H�t$�0��XI��ZH��1�1�E��L���٨�����
H�\$xdH3%(L���	H�Ĉ[]A\A]A^A_��H���(���H�t$H��� tcH�~~lH�v�o)L$ � ���f�H�5Ig#L���A���I��H��t~E1�1��g����H�yHc�A��H9���H�I���@�t	H���f�)D$ H��� tH�VH�vH�|$ ��@�����H��H������H�t}#H�5�wH�81��ӕ��H��z#1�H�81�����˳���ƕ��fD��1����D������f���ATUSH��H��`H�t$H�|$dH�%(H�D$X1�貸��H�5+f#H��I��� ���H�������記��H�C H��H������L���A��H����f�E1�1�A�����H�L$H��H��)D$)D$ )D$0)D$@�զ����u9H�T$XdH3%(H��u!H��`[]A\�H�M|#H�5-wH�81�謔��跲��H��y#1�H�81�蔔��H�|#L��H�5yH�81��y���f���ATI��H��USH���t:腛����H�5e#L������H��t-��H��������uH��[]A\���+��������"���H��{#H�5�uH�81����f.���ATI��H��USH���t:������H�5�d#L��蔨��H��t-��H�������uH��[]A\��諪���������H�{#H�5DuH�81��z���f.���AUATA�USH��H��uH��dH�%(H�D$1�H���*�������H��H�5�c#��H��H����H�����������������IH����Mc�L����D��H��H��H���ۚ������L��H���Ȥ��H��H������H��H�L$dH3%(uH��[]A\A]��H�<$@��t詙��A���?�����{���A���1���H�|w#H�5�uH�81��K���H��y#H�5�sH�81��3���H�Lw#H�5�vH�81������&���fD��USH��H��H�-�t#H�u蓷��H��t"H�5�b#H��详��H��t8H��H��[]���H��H�m�@��H�5�uH��H��x#H��H�81�袑��H�+y#H�5TsH�81�芑��f.���H�mt#ATI��H�9b#U1�SH�8�������H��軔��H�E H��H���,���E1�1�1�A�����L��H��������uH��[]A\�H�0v#1�H�81�����@��H�Ux#SH�5(tH�H��t#H�8�۠��H��u#H��s#H�5]sH��H�H�踠��H��u#H�;H�5g�H��_���H�;�H�@�H�5,s脲��H�;1�H���H�5$s�,���H�;�H����H�5�p�Q���H�;1�H�u���H�5�r�9���H�;�����H�����H�5q����H�;�����H�_���H�5�p����H�;�����H���H�5�r���H�;�����H���H�5���ͱ��H�;1�H���H�5�r赱��H�;1�H�I���H�5�蝱��H�;�H�^�H�5��肱��H�;�H�3���H�5Br�g���H�;�H�(�H�52r�L���H�;�����H����H�5!r�1���H�;1�H�����H�5r����H�;�H�����H�5r���H�;1�H�"���H�5�q���H�;�H���H�5�q�˰��H�;1�H���H�5�q賰��H�;1�H�W�H�5�q蛰��H�;[�H�����H�5�q����f.�D���7������USH��H�5s#dH�%(H�D$1��
���H��trH���=��H���e���H��H����H��H��莻����td1�H��sH���h���H�$H�xH�0���H��H���
���H��H�T$dH3%(uH��[]�H�Lu#H�5�rH�81�諍��趫��H���Λ��H�=��#H�5s1�艍��H�=�#H�5�r1��t���@��USH��H�5/r#dH�%(H�D$1�����H��trH���M��H���u���H��H����H��H�������td1�H��sH���x���H�$H�xH�0����H��H������H��H�T$dH3%(uH��[]�H�\t#H�5rH�81�軌���ƪ��H���ޚ��H�=�#H�5,r1�虌��H�=��#H�5r1�脌��@��USH��H�5?q#dH�%(H�D$1��*���H����1�H��H��������Hc�1��B���H��H�@H� tH�CH��H��H�$迦��H��� t7H�CH�4$H�SH)�H9�4H������H��H�L$dH3%(u8H��[]ÐH��H�4$H�S����H�
�q��H�5\qH�=�k蠜��諩��H�=��#H�5-q1�膋��H�s#H�5�pH�81��n���ff.���ATUSH� ��H��n#H��H��H��H�0���H��u8H��踾��1�1�1�H��I���W���H��H��tWL���7���H�k H��[]A\�H�5�m#H��蹟��H��tH���ܜ��H��H��u�H�=5�#H�5�p1�迊���1�1ҾL�������B���H�=#o#1�L��H�5_p#�z���L��H��诘��H���o���H��l#H�5@pH�81��^���H�=��#H�5�o1��I���f���H�o#1����ff.�PXH�5WoH��H��q#H�81�����f���H��H�5�n#dH�%(H�D$1��D$褞��H��t.H�t$H���r����t$H���ƛ��H�T$dH3%(u
H����|���觧�����H��H�5Qn#�L���H��t3H���O���H�@H�xH�DH���fDH��H��鴞������ff.�@��ATUH��SH��H�5�m#���H��t6I���t!H�H��L���;���[H��]A\�_����H���Й��H�������fD��SH�5�m#菝��H����H���^���H��taH�@H�xZH�\H�5�#H��t!H�jk#H�ٺ[H�81��O�����H�=���'���H��H���#���[ÐH��訝��H�������ff.���ATUH��SH��H�5�l#�֜��H����I��H��j#H��H�0蘑��H��u#��t>H�H��L���Я��[H��]A\��@H�5�#H��t$H��1�1�舞��H���u�H��舘��H����H�=im�O���H��H�Ջ#�H��n#H�5�lH�81��[���ff.����9u�WD;VDt���H��HH��H������AUATUSH��H��H�-�k#H���Л��H��tJL�-�n#H��I��I�u腬��H��tGH��H��襛��H��tL��H�������H�H��[��]A\A]�H�:n#H�5�kH�81�虆��H��I�m�
���H�5NjH��H�\m#H��H�81��o���ff.�@��H��m#SH�5VlH�H��i#H�8�;���H�\k#H�5n#H�5lH��H�H�����H�;H�5���H�o�#�“��H�;�H�����H�5�f���H�;�H�����H�5O��̧��H�;1�H��H�5I货��H�;�H�����H�5�k虧��H�;1�H�����H�5H�聧��H�;�H�B���H�5-��f���H�;1�H�Z���H�5��N���H�;1�H����H�5f�6���H�;1�H�����H�5�e����H�;1�[H�����H�5�e����D��H������������ATUSH��H�kH�� dH�%(H�D$1�H��L�L$L�D$蘛����u$H�T$dH3%(H����H�� []A\�@H�<$�װ��H�|$H���ʰ��H�|$I��H��tD���H��L��H��艣��H��H��t@H�5�U#H������H��t?H���5���H�k �x���@H��H��1��K���H�������H�zk#1�H�81����H�wk#H�5jH�81��փ��fD��������AWH�5�U#AVAUATUSH��xdH�%(H�D$h1��b���H�D$H���蟜��H�|$H�D$8���D$����H�D$`1�H�D$H�D$XH�D$ H�D$PH�D$(H�D$LH�D$0����9l$�H�|$��觘��H��H��t�L�D$H�L$ H��H�D$`H�T$(H�t$0H�D$XH�D$P訖��A�ą�x�H�;�y���I��H���Z�؛��H�AT#L��I��H�lf#H�8�\���L��H���1���Ic�L��H�t6�!���Hct$LL��H�t6����H�|$P�H��t����H��L����H�|$X�H��t���H��L���ѯ��H�|$`�H��t�ݨ��H��L��貯���-���H��I���r���A�Ņ�~2E1��D��H��A��衬��H���Y���L��H���n���E9�u�L��L�����[���H�|$8L���N���9l$�����H�L$hdH3%(H�D$8u'H��x[]A\A]A^A_�H�	i#H�5�gH�81��h����s���H��h#1�H�81��P�����USH��H��cH��dH�%(H�D$1�H��H������H�<$tzH��蒓��H�5�R#H���ӕ��H����H�4$H��� t>H�~Hcω�H9���H�vH���`�����tQH�L$dH3%(H��uQH��[]�f�H��H������H�5�R#H���a���H��t)�����1�H���
����H��g#1�H�81��h����s���H��g#H�5�fH�81��K����V���fD���7������UH�5tR#SH��dH�%(H�D$1��ڔ��H����1�H��H���d���Hc�H����1���H��H�@H� uQH��H��H�$�2�����~[H�H�4$�� tBH�CH�SH)�H9�jH���ʒ��H��H�L$dH3%(unH��[]�H�C�f.�H��H�S���H��f#1�H�81��P��H��f#H�5�eH�81��8��H�
�i�'H�5�eH�=h_�����$���@���g������USH��H��aH��(dH�%(H�D$1�H��H�����H�<$H��u'H�L$dH3%(H����H��([]�f�H�C H�D$��H��H�$����H�$H��� uJH��H��H�D$��H�t$H�|$諘��H�T$H�S H��u�H��e#H�5�gH�81��5~��DH�PH�T$H�P��,���ff.����UH�5�P#SH��dH�%(H�D$1�躒��H����1�H��H��蔜��Hc�H����1��я��H��H�@H� uQH��H��H�$�b�����~[H�H�4$�� tBH�CH�SH)�H9�jH��誐��H��H�L$dH3%(unH��[]�H�C�f.�H��H�S���H��d#1�H�81��0}��H��d#H�5�cH�81��}��H�
qg��H�5ycH�=H]�������@��AVH�5�O#AUATUS訑��H����H��H�����A�ą�~m�ؕ��1�L�5?N#I��@��H�����H��覭��H���>���H��tKH��H�G`#L���H�8�1���L��H������A9�u�[L��]A\A]A^�DA�[]L��A\A]A^�H��c#1�H�81��+|��H��c#H�5�bH�81��|����USH��H��^H��dH�%(H�D$1�H��H���ђ��H�<$tzH���R���H�5{N#H��蓐��H����H�4$H��� t>H�~Hcω�H9���H�vH���Я����tQH�L$dH3%(H��uQH��[]�f�H��H������H�5	N#H���!���H��t)�����1�H���}����H��b#1�H�81��({���3���H��b#H�5�aH�81��{���{��fD��USH��H��]H��(dH�%(H�D$1�H��H�����H�<$H��u'H�L$dH3%(H����H��([]�f�H�C H�D$��H��H�$����H�$H��� uJH��H��H�D$��H�t$H�|$軗��H�T$H�S H��u�H��a#H�5�cH�81��5z��DH�PH�T$H�P��,���ff.����H��H�5�K#�̎��H��t
H�xH��銬��H�sa#H�5`H�81���y��f�SH��]#H��@���H�5�]H��H��`#H��H�81��y��f���USH��H�5 K#H���W���H��tIH��H�@]#H��H�0�
���H��tGH�5�J#H���)���H��tH��H���	�����H�H����[]�H��`#H�5f_H�81��!y��H���I���f���USH��H�5�J#H���Ǎ��H��tIH��H��\#H��H�0�}���H��tGH�5aJ#H��虍��H��tH��H���Y�����H�H����[]�H�2`#H�5�^H�81��x��H�����f�PX1�H��H��_#H�81��gx�����SH���ä��H��tH��H��I#H��[�}�����fD��ATUSH��H�5J#���H��tFL�%�]#H��H��I�4$螝��H��t[H�5�J#H��躌��H��t/H��H���z���[]H�A\H�D�H�W_#H�5^H�81��w��H�?_#H�5(^H�81��w��H��I�,$����H�5S[H��H�a^#H��H�81��tw��@��SH���S���H��tH��H�DI#H��[�}������fDPXH�5�]H��H��^#H�81��"w��f���H��H�5aI#�܋��H��t9H���?}��H��t"H��H��[#H��H#H�8H���|��D�H������f���H��H�5I#�|���H��tH������H��H�H�D��N���ff.���H��H�5�H#�<���H��tH���?���Hc��G���H��H���������fD��SH������H��tH��H�tH#H��[��{�����fD��ATI��H�5�H#UH��S�Ɗ��H��t7H�5zG#L��H��诊��H��t=H��肔��H��H�����H��t H��[]A\�H�C]#H�5,\H�81��u������H�&]#H�5�[H�81��u��D��ATUSH��H�5H#�9���H��tFL�%5Z#H��H��I�4$���H��t[H�52G#H���
���H��t/H��H���z���[]H�A\H�D�H��\#H�5�[H�81��u��H��\#H�5O[H�81���t��H��I�,$�b���H�5�XH��H��[#H��H�81���t��@��SH���Sy��H��tH��H�TG#H��[�[z������fD��ATI��UH��H����StJ�{����I��tJH�5VF#L���.���H��H��tJ�����H��t+[H��H��F#]H��A\��y��@�;�����I��u�1���H��[#1�H�81��t���������AUI��H�(ZATUS1�H��(dH�%(H�D$1�H��L�L$L�D$贊��H�|$�*���H�|$H��H��ulH�<$�Ç��H�5LF#L��I���a���H����Hc�H��L��H���'u��H�5`Y#L����Ƣ�����t-H�T$dH3%(uQH��([]A\A]�f�@��t2�ez����념�[���1�H���t��H�=ׅH��1��w��1��@�������P�������H��Z#H�5iYH�81���r��ff.�@��AUI��H��XATUS1�H��(dH�%(H�D$1�H��L�L$L�D$脉��H�|$���H�|$H��H����H�<$菆��H�5XD#L��I���-���H����L��H��Hc�H���s���H�5,X#L��]萡���[���1�H���s��H�=ׄH��1��v��1�H�\$dH3%(uBH��([]A\A]�@��t"�y�����f���fD�3�����@�ӈ�����D����Ǐ��H�@Y#H�5XH�81��q��ff.�@��AWAVAUATUH��H�XS1�H��8dH�%(H�D$(1�H�L$H��H�D$(P1�L�L$(L�D$ �2���XZH�|$薝��H�|$I��詝��H�|$ I��H����H�|$H�����#���I��H�5�B#H�����I��H�����}��I��L��L��M��H��L���i���H�5�V#L���������txH�T$(dH3%(H��u`H��8[]A\A]A^A_�f�@��t*�w��H�|$Hc�H���k����t��H��I���b���f��k�����H��W#H�5�VH�81��Ap���L���H��W#1�H�81��)p��f���AWAVAUATUH��H��VS1�H��8dH�%(H�D$(1�H�L$H��H�D$(P1�L�L$(L�D$ �†��XZH�|$�&���H�|$I���9���H�|$ I��H����H�|$H����賃��I��H�59B#H���Q���I��H�����0|��I��L��L��M��H��L����x��H�5BU#L���訞����txH�T$(dH3%(H��u`H��8[]A\A]A^A_�f�@��t*�Ev��H�|$Hc�H���k����Ns��H�L$ I���`��������H�rV#H�5[UH�81���n���܌��H�EV#1�H�81��n��f���AWM��AVAUATI��UH��SH��HH�|$H��H��$�H�t$ L�L$dH�%(H�D$81����D$4���u���D$�D$,I����H����I���kH�-�T#L�d$4L��L��H��聕���|$4���
E1�1�E1�L���u���H���m���L���e����|$4����H�L$8dH3%(H�D$��H��H[]A\A]A^A_Ð軄���D$�D$,I���V���H������t���D$H���A����H��L�s1��s����X�H����H9�����H�AQ#H��L� ��n��H��H� tb�n��L��H�<�L��L�,�H��貒��H����H��� u�H�C�H�Ǩ�
���Hc�1��.���I���(f��[n��H�C �DH�-aS#E1�L�d$4H�t$L��H�������t$4����H�Ǩ��蕃��Hc�1��˝��H��$�H��L��I��1��ӓ���L$4���Z���H�Ǩ���ws��Hc�1�荝��H�|$H�5!>#H�����I��H���L�%�O#H�|$ I�4$訑��H����H�|$ H�5�=#辀��H����H��L��M��M��U�L$(H�ƋT$<�ב��I��H�D$ XZM���H�������I� H�5�R#E1����H�CI�G H�D$�d@H����L9��s���H���l��H��H� ����l��H�D$J�<�I����~��H�|$�����H��I���l��L����tm�0���H��� u�H�C�f�1�E1��	���fD�����D$���f��r���a���fD�r�����fD�[l��H�C �t����́���q����Ø��L���+���H���#���L������H�R#1�H�81��j��H�yN#H��H�(�l��H��H� t0�k��H��J�<+�ؚ��H��H��H�+Q#H�5NH�81��:j����k��H�[ ���:���H��Q#H�5WPH�81��j��I�$H�|$ 脚��H���H��Q#H�5HPH�81���i���Ž��f���H��M#ATH�5kPUSH�8�t��H��N#H�dM#H�5QPH��H�H��y��L�%�P#H�;H�5<PH�Q#H�I�$�{y��H�-$O#H�5��H��H�E�!w��H�}�����H�Q�H�5�I�E���H�}�����H�%�H�5�O�)���H�}�H���H�5�O�
���H�}�H���H�5�O��H�}1�H���H�5�O�؊��H�}�����H�����H�5�V輊��H�}�����H���H�5TV蠊��H�}1�H���H�5\I臊��I�$H�;H�5pO�tx��H�-�O#�H���H��H�5.OH�E�Nl��H�}H�5��u��H�}�����H�.�H�5�H�"���H�}1�H�U�H�5O�	���H�}1�H�|�H�5�N��H�}1�H���H�5�N�׉��H�}1�H���H�5�H辉��I�$H�;H�5�N�w��H�-|L#H�5-�H��H�E�Qu��H�}�����H���H�5H�u���H�}�H�5�H�5^N�Y���H�}�����H���H�5�M�=���H�}�H�}���H�51N�!���H�}1�H�T�H�5N����H�}�����H�h���H�5�T���H�}�����H��H�5�T�Ј��I�$H�;H�5�M�v��H�-~J#H�5O�H��H�E�ct��H�}�����H���H�5%G臈��H�}�H�g�H�5�|�k���H�}�H���H�5xM�O���H�}1�H�2�H�5jM�6���H�;�H�5]M�Ҍ��H�;�H�5�O辌��H�;H�����H�5QM訌��H�;�H�5UM蔌��H�;�H�5]M而��H�;�H�5dM�l���H�;�H�5�O�X���H�;�H�5UM�D���H�;�
H�5�O�0���H�;�H�5�O����H�;�H�55M����H�;�H�5>M��H�;�	H�5GM���H�;�
H�5MM�̋��H�;�H�5VM踋��H�;�H�5]M褋��H�;�H�5QM萋��H�;�	H�5FM�|���H�;�H�59M�h���H�;�!H�5-M�T���H�;�AH�5"M�@���H�;��H�5M�,���H�;�H�5M����H�;�H�5M����H�;�H�5�L��H�;�H�5EM�܊��H�;�H�5�L�Ȋ��H�;�H�5�L贊��H�;�H�5�L蠊��H�;�H�5�L茊��H�;�H�5�L�x���H�;[�]H�5�LA\�`������w������UH�5�6#SH��dH�%(H�D$1��Jx��H����1�H��H���T�����~vHc�1��fu��H��H�@H� uNH��H��H�$�'�����~IH�4$H�CH� u2H)�H���Gv��H��H�T$dH3%(u-H��[]�DH�C�f�H�C��H��J#1�H�81���b�����H�[J#H�5XMH�81��b��f.���ATH�5�5#USH��dH�%(H�D$1��Xw��H����H�xH��H�����@����L�%]I#E1�E1�1��L���x���1�Hc��Nt��H��H�@H� tH�CH�}H��E1�E1��L��H�$�<���H��� �H��H�4$H�S��H)�H9��LH���
u��H�5Vf#H����H��I#H�ٺH�81��x��H�L$dH3%(��H��[]A\��1��9���1�Hc��s��H��H�@H� tH�CH�}H��H�$����H��� u{H��H�4$H�S��H)�H9��S���H�
�L��H�5�KH�=hA�r��f��H�=�K�ώ��H��H�ue#�#���H�CH�4$H�S����H�CH�4$H�S�f.�������~��H�:H#H�57KH�81��`��H�
�K��H�53KH�=�@�zq��f.���ATI��USH��H��躉��H����H��H��趕����t`H��H�5G3#�u��H��H��t1H�xH��t�@��t�%o���CL��H�k[]A\�f���w����H��G#H�5JH�81���_��H����n��H�:F#H�5�JH�81��_��H�"F#H�5wJH�81��_��f���UH�5�2#SH���Zt��H��tZH���f��H��H���r�����u.�y���H���{��H��H��tFH��H���f��H��H��[]鐈��������H��[H��]��u��H��F#H�5�IH�81��_��H�G#1�H�81��_����AUI��H�52#ATA��H��USH��H��8dH�%(H�D$(1��s��H�D$H���[H�l$1�L�D$L��H��H��>D���u������H�5c#H�l$H��taH��H��1��Ou��H�5�b#H�l$H��t^H��H��1��,u��H�L$(dH3%(H����H��8[]A\A]�f.��H�=�H�ߋ��H��H�}b#��H�=�H迋��H��H�Ub#�H�|$�6k��H��H�D$�Ip��H�D$H��� tDH�PH�T$ H�PH�t$ H�|$��l��H�T$H�S H���B���H��E#1�H�81��{]��H��H��H�D$ ����q{��H��D#H�5�GH�81��I]��f���SH������H��tH��H�40#H��[��b��H�E#1�H�81��]�����ATI��USH��H�|$H�t$�2���1�H��H���x��H��H��t-H�5�/#L���q��H��tAH��H���>i��H�D$H��[]A\þH����w��H��H��u�H��D#1�H�81��x\��H�D#H�5�FH�81��`\����H��H��t+�^���H��t(H��H��C#H�H/#H�8H����a��@������H�D#1�H�81��\��ff.���USH��H��H�-�C#H�u胁��H��t(H�5�.#H���p��H��tQH���ҍ��H��t1H��[]�H��H�m�*���H�5k?H��H�yB#H��H�81��[��H��C#1�H�81��y[��H�C#H�5�EH�81��a[�����SH�|@#H�55FH�VB#H�H�;�;k��H�4C#H�;H�5!FH�H��B#H��k��H��B#H�5���H��H��h��H�;�����H��H�5�;��|��H�;�H����H�5�E��|��H�;1�H����H�5�E�|��H�;�H�2���H�5|E�|��H�;1�H����H�5wX�~|��H�;1�[H����H�5:;�e|��D��S�GH����u
H�?H��t�o��H��[�[���ff.���S�GH����u
H�?H��t��z��H��[�+���ff.���AUH�5[EATUSH��H���o��H�5L-#H��H���n��H����L� M���H�MA#H��H�3�J��H����H�5j-#H���bn��H����H�H����H���^��A��H��;#H�8��u��H��H���Xs��H�<#L��H��H��L�D���x��H��t&H��H��[]A\A]�H��>#H�5�IH�81��Y��H��>#H�5�DH�81��X��H��>#H�5wDH�81���X��H��>#H�5�IH�81���X��H��H��?���H�5�<H��H��?#H��H�81��X��H�Z>#H�5DH�81��X��f���AUH�5�CATUSH��H���n��H�5�+#H��H���!m��H��t_L� M����L�-�?#H��I�u��}��H����H�5�+#H����l��H��tkH�8H��tKL��萁����u&H��H��[]A\A]�H��=#H�5HH�81���W��H��>#H�5�CH�81��W��H��=#H�5:CH�81��W��H�v=#H�5WHH�81��W��H��I�]����H�5B;H��H�P>#H��H�81��cW��H�=#H�5�BH�81��KW��ff.���AUH�5�BATUSH��H����l��H�5�*#H��H����k��H��tiL� M����L�-�>#H��I�u�|��H����H�5�*#H���k��H��tuH�8H��tUH��9#L��H��v�����u&H��H��[]A\A]�H�\<#H�55GH�81��V��H��=#H�5OBH�81��sV��H�D<#H�5�AH�81��[V��H�,<#H�5
GH�81��CV��H��I�]跆��H�5�9H��H�=#H��H�81��V��H��;#H�5zAH�81��V�����AUH�5[AATUSH��H���k��H�5L)#H��H���j��H��tiL� M����L�-Q=#H��I�u�M{��H����H�5m)#H���ej��H��tuH�8H��tUH�I8#L��H��6X����u&H��H��[]A\A]�H�;#H�5�EH�81��KU��H�d<#H�5AH�81��3U��H�;#H�5�@H�81��U��H��:#H�5�EH�81��U��H��I�]�w���H�5�8H��H��;#H��H�81���T��H��:#H�5:@H�81��T�����ATH�5@USH���Yj��H�5(#H��H���gi��H����H�H����L�%<#H��I�4$�z��H����H�5/(#H���'i��H���}H�8H��t]H�7#H��H��tY����t��u[�]A\Ð[1�]A\�H�2;#H�5@H�81��T��H��9#H�5�DH�81���S��H��9#H�5f?H�81���S��H��9#H�5�DH�81��S��H��I�$�-���H�5n7H��H�|:#H��H�81��S��H�H9#H�5�>H�81��wS�����ATH�5�>USH���	i��H�5�&#H��H���h��H����H�H����L�%�:#H��I�4$�x��H����H�5�&#H����g��H��tyH�8H��tYH���W����t��u[�]A\��[1�]A\�H��9#H�5�>H�81��R��H�r8#H�5KCH�81��R��H�r8#H�5>H�81��R��H�Z8#H�5;CH�81��qR��H��I�$���H�5&6H��H�49#H��H�81��GR��H�8#H�5�=H�81��/R��ff.�@H�99#AVAUI��ATUSH�8H���cn��H�5l%#H��H���f��L�5�9#H��I��I�6�|w��H��tOH�5�%#H���f��H����H�0H��tpL���/S��I�$H��tGH��H��H�5=�tn��[H��]A\A]A^�H��I�.���H�5>5H��H�L8#H��H�81��_Q��H�7#H�5u=H�81��GQ��H�7#H�5�<H�81��/Q��H�7#H�5�AH�81��Q�����AVAUI��H�5n$#ATUH��S��H��H�� dH�%(H�D$1��e��H�8��I��H�L$1�L��L�D$H��0���g���������#L�-.8#H�|$I�u�(v��H����H�\$I�uH���v��H���{H�5.$#H���&e��H����L�(M���
H��2#H�|$H�0��u��H���dH�|$�j��H��2#L��H��H�
1��cQ��H����H����I�$H��H�5J;H���l��H��H�L$dH3%(��H�� []A\A]A^�fDL�-�6#H�|$I�u�;u��H����H�|$H�5�:�1e��L�57#H��H��I�6�u��H����H�5,##H���$d��H����L�0M���I�uH�|$��t��H����H�|$H�5�"#��c��H����H�8H����L���zP����DL�-�6#H�|$I�u�{t��H���<H�\$I�uH���at��H����H�5�"#H���yc��H��tUH�8H��te�7{�����H�1#H�5�?H�81��zN��H�1#H�5�:H�81��bN��H�4#1�H�81��ON��H� 4#H�5?H�81��7N��H�4#H�5�9H�81��N��H��3#H�5B:H�81��N��H��5#H�5a?H�81���M���k��I�mH���^~��H��H��H��4#H�5�1H�81��M��H�|$�F���H����[��H�g3#H�5�9H�81��M��H�O3#H�5h>H�81��~M��I�.H����}��H���I�]H�|$��}��H���H�3#H�5�=H�81��CM��H��2#H�5�8H�81��+M��ff.���AWAVAUA��H��ATI��H�5l8USH��H��XdH�%(H�D$H1��b��H�5O #H��H�D$(�a��H����H�(H����L�5N4#H�|$(I�6�Ir��H���DH�|$(H�5d #�_a��H���H�H�D$H����H��3#H�8��h��H�t$(�I��H���A���H�5�#L���a��H���XH�H�D$H���_D��H�L$0L�L$8L��L�D$@H��T1��b��H�|$0�D$A��H�Z.#H�0�q��I��H��trH�|$0��e��1�H��A��~
H�|$@��e��H��H�t$H�|$I��H��H�q.#L��aL�����H�L$HdH3%(L���pH��X[]A\A]A^A_�f�H�|$0��qw��H�D$0H�(�� �MH�����<��H�5�7�>\��I��H��t)E1�H�|$0L���|��H���e��K�D�I��L9�u�H�.-#H�|$@H�0�p��H����H�|$@H����z��H�D$@H��� ��H�����<��H�5?7�[��H��H��t=L�%#@H�|$@L���{��L��H���H_��H����H�J�D�I��L9�u�1҃|$eH�-#H��M��I��H���0H�|$H�t$ �l��ZL��Y�����k��H���k���x���H�X�L����H�h����H�|$8��c��H���H��/#H�5s:H�81���I��H��/#H�5*5H�81��I��H��/#H�5.5H�81��I���k��H���k��H�E/#H�5�5H�81��tI��H�E/#H�5&:H�81��\I��H�|$(I���y��H��H�5
-H��H�0#H�81��1I��L���j��H�0#H�5�5H�81��q_���g��ff.����S�H����YL��H��H�O#[H���N��fD��S�H����)L��H��H�#[H���fN��fD��UH�5d#SH���Z]��H��t<H�(H��t|�}��H���d��H��H��tOH��1�H���K[��H�߅�t#H��[]�q��H�.#H�5�8H�81��1H���\V��H��-#1�H�81��H��H��-#H�5�4H�81��H��H��-#H�5~3H�81���G��f�ATU��H�5�#S�\��H��t}L� ��|��H���c��H��H��tM��tL��H���d��H�߃�u[]A\��p��H�=.#L��H���W�����U��H�*#1�H�81��dG��H�5-#H�54H�81��LG��H�-#H�5�7H�81��4G��@����B���f���1��5���D��SH��H�t$H�5�#��[��H����H�H��t{H�|$�[Y��H�t$H��� t6H�VH�vH���Nk��H�L$H��� u)H����H9�u#H��H��[�@H��H������H�Q��H�S,#H�5J3H�81��jF��H�;,#H�5�1H�81��RF��H�#,#H�57H�81��:F��f.���AWAVI��AUI��ATUH��SH��H�5�#H����Z��H����L� M����L�=
-#H��I�7�k��H����H�5?#H���Z��H����H�H��tkL���_��L��I���_��L��H��L��H���BW����u*H��H��[]A\A]A^A_�H�L+#H�5-6H�81��cE��H�4+#H�5=2H�81��KE��H�+#H�5�0H�81��3E��H��*#H�5�5H�81��E��H��I�/�u��H�5�(H��H��+#H��H�81���D��H��*#H�5o0H�81���D��f.���ATUSH��H�5�#�Y��H��tdH�(H��ttL�%=,#H��I�4$�9j��H��ttH�5]#H���UY��H��t0H�0H��t@H�9'#H��H��VD���[]���A\HD��H�!*#H�55H�81��8D��H�	*#H�5�/H�81�� D��H��I�,$�t��H�5�'H��H��*#H��H�81��C��fD��AUATI��USH��H�5A/H���Y��H�51/H��H���nY��H��H�����H��uH��1�[]A\A]ÐH�5	#L���aX��H����L� M����L�-�*#H��I�u�	i��H���H�5�#H���!X��H��t|H�H����L�-�*#H��I�u��h��H����H�5�#H����W��H����H�8H����H��%#H��L��H��u���¸���-���H��[]A\A]�H��(#H�5b3H�81��B��H�q(#H�5.H�81��B��I�]H���s��H��H��H�g)#H�5H&H�81��vB��H�G(#H�5�-H�81��^B��H�/(#H�53H�81��FB��I�mH���r��H���D��AVI��H�5�#AUATI��US��H��H��0dH�%(H�D$(1���V��H�8�9L�l$H��H��L��H�D$(L��H�E$��P1�L�L$(L�D$ �X��ZY��������H�|$@��t%@����H���������������l��H�|$H���g[��H�|$I���Z[��H�|$ I���M[��H9^F#��H�$#L��L��H�
H���Ho��H��H���~H�]L��H�L$(dH3%(�FH��0[]A\A]A^�@H�|$@����@��uH�����t�������H�U(#H�3�Uf��H��thH�3H�|$�Cf��H���,H�|$H�5^#�YU��H���mH�8H���I�_I��H��H���G���H�4&#H�5a-H�81��K@��H�|$��s��1�1�1�H��I���=]��H��H����L���IN�����@�+k��H9E#��H9�D#��H9�D#����t��H��H�����.n��H��H�������H��%#H�5�,H�81��?��f.�1�1ҾL���A���*@��H�5�%#1�1�L���gd��L��H���M��H���G���L���[t��H��I���S�����a�����a���k��H��H���3H�Ǿ�q`���H���H������H��H�������`��H������H�t!#H�5D+H�81���>��H�\!#H�5�0H�81��>����\��H�?&#H�500H�81��>��H�o$#H�5�+H�81��>��H�!#H�5p0H�81��n>��H�|$H���n��H��H�5"H��H�-%#H�81��C>��H�� #H�5�/H�81��+>��H��##H�5�)H�81��>��H��##H�5�.H�81��=��H��##L��H�5+H�81���=��H��##L��H�5�*H�81���=��D��USH��H�5�!#�zR��H��tV�8H���h��=���H�k H�����r��H���Y��H��H��tTH��1�H���d��H�߅�t#H��[]�f��H��$#H�5H�81��S���bK��H��#H�5�*H�81��=��H��#H�5�)H�81��=��H��#H�5l*H�81���<��H�s$#H�5=*H�81���<��f�AVAUI��ATA��USH��H�5� #H�T$�}Q��H�����8H���g��=��H�[ H����H���J��H����H���T������H���Q��I���`q��H���X��H��H���\A��u6H��H��M��t{��Z����H����ce��H��[]A\A]A^�fDM����I����L���UR��I��1�H�|$u8H��L��H��E1�PE1�1�H���g����XZ���T������H�|$�N��H�D$H�8H���� uSH����Hc�H9�� ����H��uBH���@H��H���mb�����"���fDE1�1��^���fDH�x�f.�H�@�?���H��"#H�5�H�81��_Q���*I��H��#��H�5�(H�81���:��H�y#H�5�'H�81���:��H�a#H�5*-H�81��:��H�I#H�5�,H�81��:��H�1#H�5(H�81��:��H�	"#H�5�'H�81��h:��H��#H�5�H�81��P:���[:��ff.�������X������SH��H�iH�� dH�%(H�D$1�H�L$L�D$��P��H�T$1�H��H�t$�
���H�\$dH3%(uH�� [���W��ff.�@��SH��H�t$H�5�#H�$�bN��H����8H���c��=���H�[ H����H�|$��K��H����K��H�$L�A�� t=H�t$D�AH�IH��� uAH��H��1�I�ك��{M����uHH��1�[��H�t$I��H��A��H��� t�H�~Hclj�H9�u:H�v1�I���3M����t���uH���[�H�X#H�5Z&H�81��8���8��H�;#H�5&H�81��8��H� #H�5�%H�81��r8��H��#H�54H�81��N��f.���USH��(H�t$H�5z#dH�%(H�D$1��L��H���;�8H���b��=��H�[ H����H�|$�pJ��H���M��H����H���gU��1��pHc���I��H��H�HH� tH�HH�t$H��� tQH�~Hclj�H9�uPH�v1�I��L�D$��k����u=�t$H���g:��H��H�L$dH3%(u6H��([]�DH��H������V7��H��#H�5%H�81��.7���9U��H��#H�5�$H�81��7��H��#H�5{$H�81��6��H��#H�5L$H�81���6��H�j#H�5�H�81��)M��f���ATUH��H�5�#S�yK��H���7�8H���a��=��
L�c M����H��#H��H�3�\��H����H�5�	#H���$K��H��tuH�(H��tU1���k:��H��H�xH� u3E1�L��H����>������H��Hc��8��H��[]A\�DH�x��H��#H�5S!H�81���5��H��#H�5l&H�81���5��H��H��7f��H�5xH��H��#H��H�81��5��H�2#H�5#H�81��5��H�
#H�5�"H�81��i5��H��#H�5+H�81��K��H��#H�5#H�81��95��f���ATUSH��H�5^#��I��H�����8H���_��=���H�m H����H��tXL�%#H��I�4$�uZ��H����H�55#H���I��H����H�0H����H���0<����uH��[]A\�1�H���<����v�H�#H�5\"H�81��i4��H��#H�5�!H�81��Q4��H��#H�5H�81��J��H��#H�5�!H�81��!4��H��#H�5�H�81��	4��H��#H�5�$H�81���3��H��I�,$�ed��H�5�H��H��#H��H�81���3�����UH��SH��H�5�#�wH��H�����8H���^��=���H�{ H�����A��H��H��tOH�5�7#H��t#1�1�H���7J��H��t=H��H��H��[]� ��H�=��`��H��H��7#�H���[]�H��#H�5�%H�81��2��H��#H�5f H�81���2��H�m#H�57 H�81���2��H�U#H�5�H�81��I��@��ATUH��H�5�#S�iG��H�����8H���]��=���H�[ H����H��u1�H����7����w(H��[]A\ÐH���HL��H��H��I����7����u&M��t�H��#H�5" H�81��2��f���u�H��[]A\�H��#H�5�H�81��KH��H��#H�5UH�81���1��H�\#H�5&H�81��1��ff.���AWAVAUATI��UH��SH��H�5�#�\F��H�����8H���[��=���L�k M���[L�5�#L��I�6��V��H���H�5#L���F��H����L�8M����H�5�H����F��H��H��tEI�6H���V��H��� H�5�#H���E���H�5�H��H��@�M��H�5&H���M��L��L���vF����u*H��L��[]A\A]A^A_�H�#H�5QH�81���F��H�#H�5�H�81��_0��H�0#H�5�H�81��G0��H�#H�5� H�81��/0��I�L���`��H��H��H��#H�5�H�81��0��H��#H�5pH�81���/��H�w#H�5AH�81���/��I�.H���K`��H���fD��AUATUH��SH��H�5�#�sD��H�����8H���Z��=���L�c M����H�5�H���E��H��H��tH��H��[]A\A]�f�L���R��I��H��t�L�-�#I�}�K��I�uH��H���T��H����H��H�5�#��C��H��H��H�5L� �@��K��H��H��H�5H�K��H��H��[]A\A]�H�f#H�57H�81��.��H�>#H�5H�81��.��H�&#H�5_H�81���D��H��I�m�^��H�5:H��H�H#H��H�81��[.��ff.���AWI��AVAUATUSH��H��8H�5q#�|$H��dH�%(H�D$(1���B��H���!L�` H��M���)L�l$ L�t$�|$1�L��M��H�7L����D��L�|$I����H��#L��H�0�VS��H����H�~#H�|$H�0�9S��H���%H�5�#H�|$�OB��I��H�����8��W��=��(I�|$ H�����U��A�I��M����L�꾘H����V�����|�H�5�H����I��I��t'H�5�1#H�l$H����H��H��1���C��H�L$(dH3%(H���DH��8[]A\A]A^A_�DH�I#H�|$H�0�DR��H����H�|$�!`��H�|$ I��tL����O��I��H��#L��1�L���'3��I��H����L���:��L�꾘H����U�������H�5�H���I���?���f��?��I�������H�=���Y��H��H�}0#�����?��L�|$I�����fD1�1ҾL���7.���b,��L��1�L��H��#�T��I��H���G���1�1ҾL���.���,,��1�L���rS��I��H������1�1ҾL����-���,��1�L����V��L��I���{9��M�����L���:`��H��I���?��A���M��E���D���X��I��H����H�Ǿ�.���L���2�����H�t#H�5�
H�81��3A��H�l
#H�5�H�81��*��H�T
#1�H�81��*��L����T��H�9
#H�5H�81��*���H��H�
#H�5�H�81��k*��H�<#H�|$H���Z��H�5H��H�&#H��H�81��9*��H��#H�5�H�81��!*��H��#L��H�5pH�81��*��H��#L��H�5<H�81���)��ff.���U1�1�H��AWAVAUATSH��(dH�%(H�E�1��C2��Lc�I��L9��H��H��H��H��H���H)�H��H9�tH��H��$�H9�u�%���H�\$L��H���H����1��H����L���5��I��E��~wE�l$�I��I��J�+H�E�f��;�R���L�kI����4��L��I���?��L��H���V���M��tL���?��H��L��H���qV��L��L���fV��H;]�u�H�M�dH3%(L��uDH�e�[A\A]A^A_]��H)�H�L��&���H���(��H�#H�5H�81��j(���uF��DSH�5H���3��H��H�5��3��H��H�5L�3��H��H�5�
[�r3��f�PXH�5�H��H��
#H�81��(��f���H��H�5��"�<��H��tH�8H��t)�?��H��H�H�D�H��
#H�5�H�81��'��������UH�5t�"SH���j<��H��tFH�H��t9H���=��H��H��tH���eA��H��H��[H��]�t9��@H���[]��/���H� 
#H�5H�81��7'�����ATI��H��UH��S�:R��H�5�"L��H����;��H��t}H�8H��t]H9�+#tBH9�+#t!H9�+#ur��v0��H��[]A\�fD��^0��H��[]A\�fD��F0��H��[]A\�H�o#H�5H�81��&��H�W#H�58H�81��n&��H��#H�50H�81��V&��fD��H��H�5�"�;��H��tlH�8H��t_�Z+����tE��t0��t��H��#H�5H�81��&���H�=�*#H����R��H�=�*#H���R��H�=�*#H���R�����H��#H�5}H�81��%����USH��H�5p�"H���g:��H��t@H�(H��t3H���u"�<����H����F��H��H��[]�f��,�������2���H�##H�5H�81��:%��f.���H��H�5�"��9��H��tH�8H��t)�:&��H��H�H�D�H��
#H�5�H�81���$��������H��H�5��"�9��H��t1H�8H��t�
8�����N��H��H���W;����H���H�g
#H�5HH�81��~$��ff.���UH�54�"SH���*9��H��t>H�H��tf1��I��H��H���;>��H��#H��H��H��V;����u"H��H��[]�H��	#H�5�H�81��#��H��	#H�5�H�81���#��H��	#H�5dH�81���#��ff.�@��UH�5��"SH���z8��H��t>H�H��tf1��FI��H��H���=��H�L#H��H��H��A����u"H��H��[]�H�8	#H�5H�81��O#��H� 	#H�5H�81��7#��H�	#H�5�H�81��#��ff.�@��SH�5�"H����7��H��tH�8H��t)�:$��H��[H�����H��#H�5�H�81���"������PXH�5/H��H�L#H�81��"��f���SH�5�#�_7��H��t.�8H���M��=�u:H�{ H��t,�0��[H��H�H�Ѓ��H��	#H�5H�81��8������H��	#H�5�H�81��'"�����SH�5T#��6��H��t+�8H���L��=�ubH�{ H��tA�{:����u�[�H�h	#H�5�H�81��'8��H�`#H�5�H�81��!��H�H#H�5H�81��!��H� 	#H�5�H�81��!��ff.�@��SH�5�#�/6��H��t.�8H����K��=�u:H�{ H��t,�k6��[H��H�H�Ѓ��H��#H�5�H�81��t7���O���H��#H�5bH�81�� �����SH�5$#�5��H��t9�8H���PK��=�uEH�{ H��t7��5��H��tH��[�]F��D�[�H�*#H�5cH�81���6������H�
#H�5�
H�81��l ��ff.����UH��SH��H�5�#�5��H��t.�8H���J��=�ueH�{ H��tD�#(����u"H��H��[]�H��#H�5�H�81��\6��H��#H�5�H�81�����H�}#H�5N
H�81�����H�U#H�5
H�81����@��ATUSH��tSH���?�J��=���H�_#H��#H��H�8�5%��1�H�5��H��H���A<��H��tdH��[]A\�@�+3��H��H��tKH�#L� �<��H��H��t4H�ھ�H���H����tH�Q#H��L���f�H���x!��H��#1�H�81�����H��#H�5�
H�81�����ff.�f���AUH�5�
ATUSH��H�#H�}#H�;H��.��H�+#H�;H�5�
H�H�?#H��o.��L�%�#H�9#H�5x
H��I�$H��K.��H�-�#I�$H�5]
H�;H�E�-.��L�-N#H�}H�5UL�%4#I�UI�$�.��H��#I�<$H�5/H�I�U��-��H��#H�H��"#H����H�=�"#H��"#��H��"#H����H��"#H�d"#H����H��"#H�E"#H���LH�=,"#H�m"#�H�"#H����H�H"#H��!#H����H�)"#H��!#H���yH�;�H�5�H��!#�C��H�;1�H�"�H�5�� ��H�;�����H���H�5y���>��H�;1�H��H�51��>��H�;�H��H�5A�>��H�;1�H�����H�5]-�>��H�;�H���H�5��u>��H�;1�H���H�5;-�]>��H�;�H��H�5��B>��H�;1�H����H�5��*>��H�;1�H�~���H�5��>��H�;1�H�����H�5�
�=��H�;1�H����H�5�
��=��H�;�H��H�5z��=��H�;�H�h�H�5n�=��H�;�H���H�5a�=��H�;�����H�b�H�58��v=��H�;H�)�H�5)��.��H�;1�H��H�5��H=��H�;1�H�|��H�5��0=��H�}H�5U����(��H�}�����H����H�5���=��H�}�H�$��H�5�
��<��H�}H��
H�5T1�1.��H�}1�H�����H�5��<��H�}�H�x��H�5��<��H�}1�H����H�5b	�<��H�}1�H����H�53	�j<��H�}1�H�}���H�56
�Q<��H�}1�H����H�5(
�8<��H�}�H�x�H�5
�<��H�}1�H���H�5
�<��H�}�H���H�5
��;��H�}1�H�*�H�5���;��H�}�H����H�5�	�;��H�}1�H���H�5�	�;��H�}1�H�l��H�5I��;��H�}1�H�C��H�5<��g;��H�}1�H����H�5��N;��I�<$H�5C���&��I�<$H�5������H����";��H�5�#H���BI�<$E1�1ɺ�C��I�<$�H����H�5���:��I�<$H��H�5O/�,,��I�<$1�H�O��H�5��:��I�<$1�H����H�5��:��I�<$1�H����H�5��:��I�<$1�H�4���H�5��h:��I�<$1�H�ۿ��H�5��O:��I�<$1�H�B���H�5��6:��I�<$�����H���H�5|.�:��H�;��H�}��I�<$H��[]A\A]��fD�H�=�E��H��#�����H�=-�E��H��H�M#����H�=
�oE��H�8#�j����
H�=��OE��H� #�3����H�=��/E��H�#����H�=��E��H��#�����H�=k��D��H��#����H�=B��D��H��#�`����
H�=�D��H��#�)����H�=��D��H��#������'4�����USH��H�$�H��dH�%(H�D$1�H��H���a-��H�5��"H���2+��H����H�<$H��toH����(��H���O)��H���W-��H�<$Hc����H�$H�pH� u*1�H������H�$H�L$dH3%(uTH��[]�DH�p��f.�H����(��H����,��1�Hc���'��H�$�H�I�"H�5�	H�81�����3����UH�5��"H��SH���W*��H��t'H��H���(��1�H��H���zI����u"H��H��[]�H��"H�5%	H�81��C��H�d�"H�5�H�81��+��ff.���SH���(��H��tH��H�4�"H��[���H���"H�5XH�81�����PXH�5�H��H�\�"H�81�����f���SH��H��H�|$H�t$�%'��H�5��"H���f)��H��t6H�t$H��� tH�VH�vH����@��H��H��[�H��H�������v���fD��H��H�5q�"�)��H��t#H���?'��H���G7�����>��H��H����*���/���ff.�@��H��H�5!�"�(��H��tH����&��H���W��H��H�H�D����fD��H��H�5��"�|(��H��tH���&��H���*��H��H�H�D����fD��AUATUSH��H������H�����tzH��ƒ���tm��uhH��H9�tRH�5l�"H���(��I��H��tQL�--�"H��I�u�8��H��tdH�5=�"H����'��H��t%H��L�������t.H��H��[]A\A]�H������H�d�"H�5�H�81�����H���"1�H�81����H��I�]�$C��H�5e�H��H�s�"H��H�81����fD��USH��H�|$@��u	H�����uBH�c�"H�3��7��H����H�|$H�5n�"�	'��H����H���8%��H��[]Ð�����u�H�|$�G��H��H���QE��H��u�1�H���"-��H��H����E�����;��H���(E��H��H�$��'��H�$H��u�H�L�"H��H�5�H�81����H�1�"H�5rH�81����H�|$H��B��H��H�5A�H��H�O�"H�81��e��D��ATUSH��H���H�� dH�%(H�D$1�H�l$H�L$I���(��H�|$�4��H�|$I��tH���#��H�54�"H����%��H��td1�L��H���D����u:H�t$H��u"H�T$dH3%(H��uLH�� []A\�fDH���P-��H����H���"H�5�H�81����H��"H�5]H�81��{���.��fD��UH��SH��H�d�"H�8�4���H�5}�"H��H���%��H��t1�H��H���@D����u"H��H��[]�H���"H�5�H�81��	��H�*�"H�5HH�81��������SH�=<�4��H�=^�#��H�5�H��H���"H�8���H���"H���"H�59H��H�H����H���"H�;H�5f���H��>��H�;�����H����H�5��c1��H�;�H����H�5���H1��H�;1�H�����H�5���01��H�;H�&�"�H�5��1��H�;H��H�5��_"��H�;�����H�P���H�5�����H�;1�H����H�5{��0��H�;1�H�����H�5q�0��H�;1�[H�W���H�5���0��f.����H���"SH�5� H�8����H�~�"H��>������l>���w@����.������x,���c-��H�;�H�5O��4��H�;�H�5���4��H�;�H�5,�4��H�;�	H�5��4��H�;�H�5��4��H�;�
H�5��{4��H�;�H�5��g4��H�;�H�5��S4��H�;�H�5�?4��H�;�H�5
�+4��H�;�H�5
�4��H�;�H�5�4��H�;�H�5T��3��H�;�H�5h��3��H�;�H�5|��3��H�;�!H�5��3��H�;�#H�5��3��H�;�%H�5��3��H�;�'H�5��w3��H�;�)H�5��c3��H�;�+H�5��O3��H�;�-H�5p�;3��H�;�/H�5v�'3��H�;�1H�5u�3��H�;�3H�5r�2��H�;�5H�5y��2��H�;�7H�5{��2��H�;�9H�5|��2��H�;�;H�5|�2��H�;�=H�5��2��H�;�?H�5$�2��H�;�AH�5w�s2��H�;�eH�5$�_2��H�;�	H�5j�K2��H�;�H�5g�72��H�;�H�5h�#2��H�;�H�5g�2��H�;�H�5f�1��H�;�	H�5h��1��H�;�H�5g��1��H�;�
H�5i�1��H�;�H�5f�1��H�;�H�5^�1��H�;�H�5^�1��H�;�H�5W�o1��H�;�H�5T�[1��H�;�	H�5Q�G1��H�;�H�5I�31��H�;�
H�5G�1��H�;�H�5C�1���F*��H��� ��H�;H�5:H����0���4��H���� ��H�;H�5-H����0���()��H��� ��H�;H�5H���0�����H��� ��H�;H�5H���0���
��H��� ��H�;H�5H���p0����!��H���c ��H�;H�5�[H���P0�����g�����SH��H�H��tH�5h�"��8��H�{H��t�U-��H��[���ff.����SH��H��H�5��&��H��[�@��ATI��US1�H��H�t$H��u\H�5��"L������H��H�����>��H��H���i��H��teE1��H�ھH���<;����uHH��L��[]A\�H�|$�.��H�|$����H�\$H� uH���y���DH�[�k���H���"1�H�81��l��H���"H�5�H�81��T��@��ATI��US1�H��H�t$H��u\H�5�"L�����H��H�����42��H��H�����H��teE1��H�ھH���\:����uHH��L��[]A\�H�|$�N��H�|$���H�\$H� uH���y���DH�[�k���H���"1�H�81����H��"H�5H�81��t��@PXH�5H��H���"H�81��R��f���ATI��H��UH��S��2���t6H�H��H�5��"L������H��t)H��H��1��#��H��[]A\��H������H�����~���ff.���AVAUATUSH��H��H�� dH�%(H�D$1�H��L�L$L�D$���H�5-�"H���e��H���FL�%��"H�<$H��I�4$�,��H����H�<$H�5Q�"�,��I��H���"H�|$E1�H��t�"��I��H�|$E1�H��t�G��I��L��L��L��H��������u{H�<$H�5�����H��tH��H�����H�<$H�5�����H�5��H��H���"��H�T$H�5��H���"��H��H�L$dH3%(��H�� []A\A]A^�H�5|�"L����4��H���"1�H�81��q��H�<$I�$��5��H��H�5"�H��H�0�"H�81��F��H���"H�5�H�81��.��H���"H�5��H�81�����!#�����ATUH��SH���t-I��I�H�5��"H�����H��t L��H�����H��[]A\�H�����I�����N���ff.���H��H�51�"�l��H��t!H���H��tH�����f��H����������H��H�5��"�,��H��tH�����H��H���S������ff.���H��H�5��"����H��tH����7��H��H�H�D����ff.���H��H�5q�"���H��tH���%��H��H�H�D��N���ff.���H��H�51�"�l��H��tH���?%��Hc��)��H��H���+������fD��USH��H�5��"H���'��H��t3H��H���u�R����H���8��H��H��[]�fD�S
���������f.���AUH�5��"ATUSH������H���H���%��H��H��t}H���)��A�ą�xNHc����I��E��t+1�@��H����[��H�����L��H���80��A9�u�H��L��[]A\A]�DH���"H�8t+H��[]A\A]���@H��A�[L��]A\A]�@H�9�"��H�=�H��6��H���H�=��6��H�;A��1�H�
�H����-���t���H�p�"H�5��H�81�����ff.�@��ATUH��H���SH��0dH�%(H�D$(1�L�D$ H�L$�{��L�L$ L�D$H�5�#H���H���"H��H�81��8��H���p#�������#0��H�5�H��H�����H�5J#H����1�H��1����H��I������H�5"�H��H������H���@���H�5�H��H�����H������H�5�H��H�����L��H�L$(dH3%(�H��0[]A\�@H�5c�H���A���I���@�H�=+��G.��H��H��#�G�����H�={L�D$L�$�.��L�D$L�$H��H�[#����9��f���UH�5��"H��SH������H��tAH��H�5�H�����H��H��H�#�"�0�#��H�������H�H��H��[]����L���ff.��PX1�H��H���"H�81�������SH���s3��H��tH��H��"H��[�+�����fD��USH��H��H���5��H�54�"H��H���	��H��tH��H��������u"H��H��[]�H���"H�5��H�81������M���ff.�f���USH��H��H���;+��H�5��"H��H�����H��tH��H���2����u"H��H��[]�H�3�"H�51�H�81��������ff.�f���H��H�5a�"�<��H��tH��������u"�H���H���"H�5�H�81��8������PXH�5��H��H���"H�81�����f���ATUH��SH���t-I��I�H�5��"H�����H��t L��H���/��H��[]A\�H�����I�������ff.���UH��SH��H�5��"H���d��H��t1H�xxH�|�"H�ڋ0�*!��H��H��H�57��H��H��H��[]��)���f���SH�54�"H��H���	��H��tuH���"H�@xH�߾H�P(�d���H�ߺH�5$�����H�ߺH�5�����H�ߺH�5����H�ߺH�5X����H��[����f.���SH����/��H��tH��H���"H��[�K������fD��ATI��H��USH���t2�����H�5��"L���$��H��t ��H������H��[]A\�D�C��������f.���ATI��H��USH���t2�5����H�5��"L������H��t ��H���e��H��[]A\�D���������Z�f.���ATI��H��USH���t2������H�5��"L���d��H��t ��H�����H��[]A\�D��������:���f.���ATI��H��USH���t2�u����H�5,�"L�����H��t ��H�����H��[]A\�D�#����������f.���H��tH���"H��H���"H�8���PH�f�"H�5d�H�81�����D��USH��H��H�-��"H�u�C ��H��tH�5��"H���_��H��t1H��[]�H��H�m�*��H�58�H��H�F�"H��H�81��Y���H���"H�5��H�81��A������USH��H��H�-,�"H�u����H��tDH��H�5�"����H��H��tWA�a��H���H�
���D'��H��H��[]�H��H�m�N*��H�5��H��H���"H��H�81����H�9�"H�57�H�81�������H��tH���"H��H��"H�8�.���PH���"H�5��H�81��U���D��USH��H��H�-��"H�u����H��tH�C H��H��[]�H��H�m�)��H�5��H��H���"H��H�81���f���ATH��"H�55�UH�-��"SH�H�}����H���"H�}H�5�L�%�"H�I�$���H���"H�5�"H�H���HE1�1ɺH���v#��H�5��"H����H�;E1�1ɺ�T#��H�5��"H���TH�;E1�1ɺ�2#��H�5[�"H���
H�;E1�1ɺ�#��H�;H�5V������H�;�����H�����H�5������H�;�H�'���H�5:�����H�;�H�����H�50����H�;�H���H�5����H�;�H�&���H�5
��z��H�;�H��H�5[��_��H�;�H��H�5���D��H�;�H��H�5���)��H�;1�H�����H�5�����H�;�H����H�5�����H�;�H�����H�5������H�;�����H����H�5t����I�$H�}H�5x����H�5���H��H���"H��H��P��H�߹����H���H�5��u��1�H��H�I���H�5��]��1�H��H�A�H�5��E��1�H��H�I�H�5Z��-��H�߹H���H�5�����1�H��H�V�H�5&����1�H��H���H�5������H��1�H�f�H�5������H��1�H��H�5�����H�߹H���H�5����H�߹H����H�5��|��H�߹H�M���H�5���a��H��[]�H��H�5@�A\�B��f��H�=���"��H��H�m�"H����D�H�=A���"��H��H�-�"������H�=��"��H��H�
�"����H�=��"��H��H���"�J�����������AWI��AVAUATU1�SH��H��L�sH��� ���ZH����H9�}\H�
�"H��L� ���H��H� ������L��H�<�L��L�,�H������H����H��� u�H�CH9�|�H�5Q�"L������I��H���$H�H�5��"1�L�kH�x0�4#��I�$H�@0�NfDH����H9�~MH���<���H��H� t`�+���L��H�<�H�����L��H���!������H��� u�H�CH9��H��H��[]A\A]A^A_�D���H�C ����f����H�C �H���"H��H�(��H��H� tC��H��J�<+�#��H��H�5��H��H���"H�81����H�X�"1�H�81�����_�H�[ �H�R�"H�5��H�81�����UH�5��"SH��dH�%(H�D$1��Z��H����H���'��H�����H��H��tbH�EH��H�0�*�����tG1�H��sH����H�$H�xH�0�D��H��H���Y��H��H�T$dH3%(u:H��[]�H���7��H�x�"1�H�81����H�}�"H�5�H�81�����������UH�5�"SH��dH�%(H�D$1��z��H����H���&��H����
��H��H��t^H��H���>����tG1�H��sH�����H�$H�xH�0�h��H��H���}���H��H�T$dH3%(u:H��[]�H���[���H���"1�H�81���H���"H�54�H�81������ff.���UH�54�"SH��dH�%(H�D$1����H����1�H��H���$��Hc�H����1����H��H�@H� uQH��H��H�$��
����~[H�H�4$�� tBH�CH�SH)�H9�jH�����H��H�L$dH3%(unH��[]�H�C�f.�H��H�S���H���"1�H�81���H���"H�5,�H�81���H�
����H�5'�H�=(�������
��@��UH�5�"SH��dH�%(H�D$1��z��H����H���$��H������H��H��t^H��H�����tG1�H��sH�����H�$H�xH�0�h��H��H���}���H��H�T$dH3%(u:H��[]�H���[���H���"1�H�81���H���"H�54�H�81����
��ff.���AUATUSH��H������H�������H��ƒ���tz��uuH��H9�t_H�5��"H���p��I��H��t^L�-��"H��I�u�%��H��tqH�5��"H���A��H��t2H����H��H��t:L������H�k H��H��[]A\A]�H���*�H���"H�5V�H�81��"�H���"1�H�81���H��I�]���H�5��H��H���"H��H�81����D��ATUSH��H�� dH�%(H�D$1�H�B H�L$H�E�H�D$1������u!H�T$dH3%(H����H�� []A\ÐH�|$L�d$����H��H�D$�� ��1�1�L��H��H���b��H�T$H�S H��tH���l����f.�1�1ҾH������L��H�����H��I��H�D$H�C �+���M���Q���H�c�"1�H�81������
��f.�PX1�H��H�9�"H�81������SH���3���H��tH��H��"H��[�K����fD��UH��H�5��"SH���7��H��t$H��H�����H��H���L����t"H��H��[]�H���"H�5Z�H�81��&��Q������AUH�5c�"ATUSH������H����H��I����	����xLHc�����I��t)1���L����
��H������L��H���X��9�u�H��L��[]A\A]�fDH���"H�8tH��[]A\A]���@H�q�"��H�=I�H�����H���H�=������H�;A��1�H�
w�H�C�������H���"H�5>�H�81��
�f.���UH��H�5A�"SH�����H��t-H��H������H��H���,��x+��H�H��H��[]���H�>�"H�5��H�81����������AUI��H�5п"ATI��USH��H���=���H��t6L��H������L��I����
��L��H��H��������t&H��H��[]A\A]�H���"H�5N�H�81����E���D��UH��H�5Q�"SH������H��t$H��H����
��H��H���<����t"H��H��[]�H�W�"H�5��H�81���������H��H�5�"�l���H��tH�����H��t$H��H���n�H��"H�5��H�81��f�������UH��H�5��"SH������H��t$H��H���'��H��H������t"H��H��[]�H���"H�5:�H�81����1������H��H�5A�"���H��tH�H�x H��t!H����	��H�[�"H�5��H�81������D��UH��SH��H�x-H��H�5�"�_���H��t6H��H�������t"H��H��[]�H���"H�5��H�81��Y����H���"H�5p�H�81��<�ff.����H��H�5q�"���H��tH�H�x�K��H��H�D�H���"H�5�H�81����f���H��H��t+�~�H��t(H��H���"H��"H�8H���l�@�3�����H��"1�H�81���ff.���USH��H��H�-��"H�u�
��H��tH�5��"H������H��t1H��[]�H��H�m���H�5��H��H��"H��H�81���H���"H�55�H�81������USH��H��H�-�"H�u���H��t(H�5'�"H�����H��tQH���r�H��t1H��[]�H��H�m�*��H�5k�H��H�y�"H��H�81���H���"1�H�81��y�H��"H�5��H�81��a����SH�|�"H�5��H�V�"H�H�;�;���H���"H�;H�5��H�H���"H�����H�1�"H�5Z���H��H���H�;�����H����H�5������H�;�H���H�5q�����H�;1�H���H�5z����H�;1�H���H�5n����H�;H�S�H�5S����H�;1�H���H�5%��k��H�;1�H�/���H�5R��S��H�;�H�����H�5�8��H�;1�H�,���H�5��� ��H�;�H�����H�5�����H�;1�H�I�H�5������H�;1�H�1���H�5������H�;�H�����H�5H����H�;�H����H�5w����H�;�H�����H�58����H�;1�H�X���H�5��l��H�;�H���H�5��Q��H�;[�H�����H�5���5��D��H��H�5�"dH�%(H�D$1���
��H��H�$�P��H���h�Ǹ��t
���H�����H�T$dH3%(uH�������fD��H��H�5��"dH�%(H�D$1��\
��H��H�$����H�����Ǹ��t
�X
��H��� ���H�T$dH3%(uH����f��fD��UH��S��H��H�5B�"H��tH���"H���H�8H��[]����H�=3�����H��H��"��ff.���UH��S��H��H�5��"H��tH�6�"H���H�8H��[]����H�=��w��H��H���"��ff.���UH��S��H��H�5r�"H��tH�.�"H���H�8H��[]�;����H�=s����H��H�5�"��ff.���UH��S��H��H�5
�"H��tH���"H���H�8H��[]�����H�=����H��H���"��ff.���UH��S��H��H�5��"H��tH�~�"H���H�8H��[]�{����H�=���W��H��H�e�"��ff.���UH��S��H��H�5:�"H��tH�n�"H���H�8H��[]�����H�=S����H��H���"��ff.���UH��S��H��H�5��"H��tH�n�"H���H�8H��[]����H�=����H��H���"��ff.���UH��S��H��H�5j�"H��tH�F�"H���H�8H��[]�[����H�=���7��H��H�-�"��ff.���UH��S��H��H�5�"H��tH��"H���H�8H��[]����H�=3���
��H��H���"��ff.���UH��S��H��H�5��"H��tH�&�"H���H�8H��[]����H�=��w
��H��H�]�"��ff.���UH��S��H��H�52�"H��tH�V�"H���H�8H��[]�;����H�=s��
��H��H���"��ff.���UH��S��H��H�5��"H��tH���"H���H�8H��[]�����H�=����H��H���"��ff.���UH��S��H��H�5b�"H��tH���"H���H�8H��[]�{����H�=���W��H��H�%�"��ff.���UH��S��H��H�5��"H��tH�~�"H���H�8H��[]�����H�=S����H��H���"��ff.���UH��S��H��H�5��"H��tH�v�"H���H�8H��[]����H�=����H��H�U�"��ff.���UH��S��H��H�5*�"H��tH�&�"H���H�8H��[]�[����H�=���7��H��H���"��ff.���UH��S��H��H�5��"H��tH��"H���H�8H��[]����H�=3���
��H��H���"��ff.���UH��S��H��H�5Z�"H��tH��"H���H�8H��[]����H�=��w
��H��H��"��ff.���UH��S��H��H�5��"H��tH�V�"H���H�8H��[]�;����H�=s��
��H��H���"��ff.���UH��S��H��H�5��"H��tH���"H���H�8H��[]�����H�=��	��H��H�M�"��ff.���UH��S��H��H�5"�"H��tH���"H���H�8H��[]�{����H�=���W	��H��H���"��ff.���UH��S��H��H�5��"H��tH��"H���H�8H��[]�����H�=S����H��H�}�"��ff.���UH��S��H��H�5R�"H��tH���"H���H�8H��[]����H�=�����H��H��"��ff.���SH�5��"H���\��H�����H��[�ff.�@SH�5H�"�3��H��t.H��<t�uyH�����tq�����ugH���h��H9A�"u1�[�H���P��H9!�"t7H���?��H9�"tH���.��H9��"u��[�fD��[�@[�H�J�"H�5��H�81������U1�H��1�SH������H�5�"H��H��t'I��H��L�B1�1��Y
��H��H��[]���H�=���G��H��H���"�ff.���SH��H��H�|$��H�|$H�D$��H�t$H����H���[���SH�ĀdH�%(H�D$x1�H���~H��H�H���n�Sf�H��H�D$0)$)D$)D$ ��������H�pPH�HVH�PL�HL�@H�5��1��7�ZY���{�D$H�H�5'�"H�DH�D$@HcD$H�DH�D$HHcD$H�DH�D$PHcD$H�DH�D$XHcD$H�DH�D$`Hc$H�DH�D$hH����H��"H�L$@�H�8�	���H�L$xdH3%(��H��[��1�H�=F�������H�pPH�HVH�PL�HL�@H�5��1��L�^_��t5��us�D$��DW��D$����f���m���fD�$����H�=�����H��H���"����l�D$����=���H��"H�SH�5:�H�81����H��"H�5O�H�81����f���USH��H��t,1��*��H��H��t5H���z���H��H����H��H��[]�H���"H�5&�H�81����H���"1�H�81����f.�H��H�|$H�|$���H�|$H� uH��1���H��tH���f.�H�1��e�H��u�H�|$H� t2H���D�H��u�H�p�"H�5��H�81�����H����f.���USH��H�5��"dH�%(H��$�1�H���q���H���)������H��H��H���A��H����H���1�H��$�dH3%(u
H�Ę[]��o�ff.�@��H��(H�|$H�T$H�t$H�L$��H�|$��H�|$��H�T$H� uMH�t$H��H� uMH��H�|$H� uH���0���t4�H��(�f�H���f.�H�t$H�RH� t�H�v�H�	�"1�H�81����DSH�5P�"�C���H��t.H��<t�uBH�����t:�����u0H���x���H9a�"u1�[�H���`���H9A�"u�[�H���"H�5��H�81�������AUI��ATUS1�H��(H�5��"dH�%(H�D$1����H��"H��H�D$H�2�j���H����H�|$�7�H�5��"L���h���H���.H�Ǩ�c����L������H�5=�"L��A���2���H���D�H�D$H�0�� �2H����Hc�H9��������Hc�H���{1��3�I��H�@I�E tI�EH�D$H�D$H��� ��H����Hc�H9��I��H�|$E����D�H�t$H��� ��H��H����H�|$���H�T$H�D$H�2�� ��H����H�I�EH�t$�� ��H��I�U��H)�H9���L����L��H�L$dH3%(��H��([]A\A]���[�������@H�p�����H�P�����H�VH�v�;���I�EI�U�u���H�r�I����H�|$���H�D$���H�����H��"1�H�81����H�����H�
��H�5U�H�=ı�u���H�ѷ"H�5�H�81��X�����AUI��ATI��UH��SH��H����t$����H���������������H���%���H9��"t\H�5��"L��H�����H�5��"L��H���x��H�5��"H��H���f��H�5�"H��1��U��H��H��[]A\A]��L��A��u'����~�H��"H�5��H�81��u��D�����H�ʶ"H�5O�H�81��Q���UH��SH����tr@�����������H����@����H�]�H�����H��H����H�=��"H������H��t�H�Ǩu0���H��[]�@H�����u�H��t)H��u�H���"H������H��[]�H�]�"H��H�9�"H��H�E�"H��x���H�&�"H��i���H�Ǵ"H��Z���H������H�5��H��H���"H�81��<��ff.����AUATUSH��H������H�=�"�����1�H�=��I���+��Hc�H�5��"H��H�TI�����H�5��"L��H���o���H�5��"H�ߺ�[���H�5��"L��H���I���H�5b�"H��1��8���H��H��[]A\A]�f.���U��SH��H��H��8dH�%(H�D$(1�H�L$H��H�D$(P1�L�L$(L�D$ �*�XZ���H�T$H���'H�|$H����@��t%@����H��������������H�D$ H����<�����H�������H������~H�|$H����H�T$H�5i�"H���)���H�T$H�5]�"H������H�T$H�51�"H������H�T$ H�5%�"H�����H�5�"1�H������H��H�L$(dH3%(�H��8[]�fDH�D$ H����<�2����d���@����H9��"�I���H�|$@����������,���H�*�"H�5��H�81�����H���X���H�=��"H�D$H�H�DH�D$�g���H�D$ ���DH�=q�"�L���H�D$ <��������f.�H�=9�"�$���H�D$ ��D�c���\���H���"H�5�H�81�����!�H�r�"H�5��H�81����H�Z�"H�5��H�81������AWAVAUATI��UH��SH��H�L�7H�T$H�t$XH�T$H�L$8H�|$PH�L$LD�D$M��L�L$ dH�%(H��$�1�H�D$H�D$XL�t$P���H�L$P����H�\$XL9���A�ŋD$L������H���(�@H��"HD�"H�$�D$L)�E��I��A�� ����E���A��t	H����H�$H9��"M�4D�d$HH�}u
A����L�H������LuH�$I��H;
��"Ic�H�lu
A����H���"H�8���H�<$H���Z���H��L��H��H������H�L$XL�l$J�9I�H�D$ L�0H��tL�L9��H�D$L�(H��H��$�dH3%(��H�Ĩ[]A\A]A^A_�H���"H�$�����H���"H�$�����D$HL}M)��D$<H�D$L�H�D$`���A��!H���"ID�H�D$E1�H�����D$8E1����D$8H�D$hH�D$0H�D$`H�D$(�H���OL�L$0D�D$H��H��L$8H�T$(H�D$h�h���H�|$I��H�D$hL��I�H)�����A��!u�H�5��"L�����H�Ǩ���8����u�H�5��"L����H���
�H���"H9��e���H9$��Hcl$<�E���A��!��H���"H�8��H��H�D$H�<$H�l-HDŽ$�H�l$xH�D$p�Z���H�t$pH�ڿH��$����H�5�"A��!��1�H�����L�l$`M�H�L$X�����;������fD�;�Hct$8H��H��H�t6���H�D$H�8H�@H��H�t?H���~���H�@L��K�t?H���^���H�|$XH�@H���H�t?H���9���A��H��H�H�փ��$����D$L������������@��H�=U�"�0�H��H�����Hct$HH��H�t6���H������H�\$X�����H��"H9$�?���H�x�"H�8�`�H�<$H�����HcT$<H�t$H��H��H�T���H�5��"A��!�z����H���\����r����H�=��"���O����1�H��H�;�"H�L$H�DH�����H�H�<$L�l$pH�l$xHDŽ$��6�H��H��$���H�t$p�H��H�����A��H�L$�����H�5��"H�T	H��������f�A����H�
��D��Hc�H�>��f��K��H������;��H���"���L���(��H�����H�=��"���O����H�|$hH�t$hL��1��D$`�L�H��H���H�=��"H�T$`H�����H��I������|$`���|D1�LuIc�H�$H;,�"H�l��������@H�|$hH�t$hL��1��D$`���H��H����H�=��"H�T$`H���L�H��I���1��|$`��t���@H�|$hH�t$hL��1��\�H��H���1H�����A�Ņ���H�����D���]�H���%��I���-���DH�|$hH�t$h1�L������H����H��A���1����fDH�|$hH�t$hL��1��L���H��H����H�HHc0H�{H�ȃ���HE�H�L$���H��I�����H�L$���f�H�|$hH�t$hL��1��D$`�D�H��H���9H�=A�"H�T$`H����H��I������|$`���=�������H�|$hH�t$h1�L�����������M�1�I��A������I�����?�����1�H�=��E��1�I������L�H���
��I�����DHcl$<H���"H��H��H�DH�8�0��H���%����H�=��"���_������H������I��H��t#H��H���_��H�����L�����I���7���H�����H�Ш"1�H�81��\��H���"H�5]�H�81��D���O�H���"H�5��H�81��'��H���"L��H�5��H�81����H�m�"H�5 �H�81���@��AWH��AVAUATUSH��HH�t$dH�%(H�D$81�H�D$ ���H�|$H�D$�)��H���q�L�8H�D$(A�� ��I��H��A��H�D$L�<$���L�<$1�H��M��~NL�t$0L�l$ L�d$DL��M��E1�1�H�D$0L��L���Q���H��H�����H�D$0I)�H�M���H�D$(H�D$0H�D$(H�$H��tL�D$ H9�uBI9�u=H�L$8dH3%(H��uIH��H[]A\A]A^A_�DH�PH�@H�T$H�$�;���H��"H�$H��H�5e�H�81�������ff.���SH��H��@H�t$dH�%(H�D$81�H�D$ H�D$(���H�|$H�D$���H����H�H�D$�� utH��H��H�D$��H�T$(H�|$E1�1�L�L$ H����H�T$H�T$0H�T$H��tH�T$ L�D$(H9�u4I9�u/H�L$8dH3%(u:H��@[�f.�H�PH�XH�T$�H��"H��H�5X�H�81�膿��������SH��H��@H�t$dH�%(H�D$81�H�D$ H�D$(���H�|$H�D$���H����H�H�D$�� utH��H��H�D$��H�T$(H�|$1�H��L�L$ A���H�D$H�D$0H�D$H��tH�T$ L�D$(H9�u1I9�u,H�L$8dH3%(�u2H��@[�f�H�PH�XH�T$�H��"H��H�5X�H�81�膾��������AWAVAUATUSH��H��8H�5<�"dH�%(H�D$(1���H�Ǩ�D�o��A��H����H�5��"H�߉D$���H��H�D$H�؃�H����H�������W�؃����yH�������vH�SH��"H9�H�߽�e�A��H����H�5��"H��A���X�H����H�0I��� ��H����Hc�H9��vD����1��D���ƉD$�!��1�Hc��W��H��H�@H� tH�CH�D$ �D$���BI��� �~H����Hc�H9��H�|$ E1�D���H�|$�\��I��� �JH��I�v��H�|$ ���I�6H�D$ �� �7H����H�H�t$ E��tH�|$uH�|$�!��H�t$ H��� �H��H�S��H)�H9���H�����H��H�L$(dH3%(��H��8[]A\A]A^A_�H������U���H����H���B���H��"H��7���f����A�����H�p�p����E����I��� �{I�VHc�H9���D�D$H�|$ D���H�|$���I��� �����I�VI�v���f�I�v�����H�CH�S���H���������؃����H������)H�CH��"H9�H�z�"H9�H�5�"H����H��H�(�"H��H�0��H���KL�-��"D1�H�����I�uH��H���W�H��trH���U�A�����DI�V����H������N���H���^H���;���H�1�"H��0���f�H�����}���@H���"H��H�0����H���dH�5��"H�����H���>���fDH�߽��A���A����T$D�D$H�|$ ��D��H�|$�C��I��� u;H����Hc�H9���H�|$E1�D����������H�Y�"H�����I�V��f.�H�9�"H��H����H�)�"H�����H���"H������H���"H��o����H��"H��_���H��"H����H�˝"H����H���"H�����H�]�"H�����H�����H�����H�
���:H�5��H�=���������H�"�"H�5�H�81�詸��H�
�"H�5ӺH�81�葸��H��"H�5��H�81��y���f���H�����tH�H����H��H���4��@��Hc7H��@����SH��tH�����H��H������H��t[�H��"H�5m�H�81���H��"1�H�81������AUATUSH��H��dH�%(H�D$1��j�H�5��"H�߉��i����/H�
����I��Hc�H�>��f.�L���ȹ��1�H�����I��H���0L�-��"�\H�5#���U��H��H����f�L���H���e��H��H�L$dH3%(��H��[]A\A]�I����I��\�I��H�5��M�����I��E��H��H��u�H�'�"H�54�H�81�讶��fDL��1��N��L�-�"I���4����H�59�"H���9�H����L�$$1�H��������I��H���H�4$H��� ��H��H����L�������I�D$L�-ƙ"H���H	�H��I�D$���f�H��L�$$�t����I��H����H�4$H��� ��H��H����L���@�L�-��"�Y���@I���|����I��H��tgL�-š"�2���DH�����H���(�I��H��t>H��� ��H��H�s����L��蘷��1�H���.���I��H������H���"1�H�81������L�����L�-�"I������H�~Hclj�H9���H�v����DH�{Hclj�H9���H�s���DH�~Hclj�H9�ukH�v�t���f�H�Ǩu!���HcظL�$$H��HH�����@裻����H�Қ"H�5ȱH�81��Y����d��L��1�A������R���H��"H�5ĶH�81��*���H���"H�5t�H�81�����f���AWAVAUATUSH��H��H�5̺"dH�%(H�D$1����H�Ǩ������H���E��H��A���*��H��A�����1�H��I���R������d����H�5\���Lc����H��H���H�$E����E��upH��L��D	������ 	�@�+L���O��H�4$H)�I9���Hc�H9���H�����H�L$dH3%(��H��[]A\A]A^A_��1�L��I����L��E���¾�?��L��L���t��x��������������@H��L���M��Q���H�
A���H�5Y�H�=&��y��H��聲���|��L���t���H�Ř"H�5�H�81��L���ff.����AWAVAUATUSH��H�Ǹ"H����H��"H���"H����H��"H���"H����H��"H�j�"H���aH���"H�K�"H���*H�ø"H�,�"H����
H���"H�
�"H����
H�m�"H��"H����
H�N�"H�Ϸ"H���N
H�'�"H���"H���
H��"H���"H����H��"H�r�"H����H�ҷ"H��"H�5=�1�L�-Í"L�%��H�8�D���H��"H�Ƙ"H�5�H��H�H�����H�2�"H�;�H�5��H�H�1��l��H�;�H��H�5S��Q��H�;�H���H�5Į�6�����H�;H�5��H��I�����H�;�E��M�eI��A�$<[t&H�T-L������L������L��H��H�����H�;H��H��u�H�`�"H�5`�H���L�%Z�"H�5#�"I�$H���6E1���H�����H�5�"H����
I�<$E1������H�5ĵ"H����
I�<$E1����u��H�5��"H���]
I�<$E1����O��I�<$�H����H�5я�3��I�<$1�H���H�5����I�$H�;H�5|�����H�-�"H�5�"H�EH����	A�H�ǹ�����H�}H�5C�����H�}�����H�4�H�5F����H�}1�H�����H�5d����I�$H�;H�5��|���H�e�"L�5��"H��H�2I�� ���H�5q�"H���	I�>A����8��I�>�����H����H�5�����I�>1�H���H�5ڎ���I�>1�H�I��H�5������H�UH�;H�5w��ڽ��H�
��"H�;H����H�5Z�H�������u��H�UH�;H�5G�袽��H�
�"H�;H�!��H�5*�H�������=��H�UH�;H�5��j���H�
S�"H�;H����H�5��H���������H�UH�;H�5��2���L�=�"H�;�����H����H�5ȫI�����H�UH�;H�5�����H�
۔"H�;H�Y��H�5��H���������H�UH�;H�5���¼��H�
�"H�;H����H�5s�H�������]��H�UH�;H�5c�芼��H�
#�"H�;H�)��H�5F�H�������%��H�UH�;H�59��R���H�
�"H�;H����H�5�H����������H�UH�;H�5�����H�
��"H�;H����H�5�H���������H�UH�;H�5����H�
�"H�;H�a��H�5ƪH�������}��H�UH�;H�5��誻��H�
�"H�;H����H�5��H�������E��H�UH�;H�5���r���H�
;�"H�;H�1��H�5o�H�������
��H�UH�;H�5b��:���H�
�"H�;H����H�5E�H����������H�UH�;H�56�����H�
S�"H�;H���H�5�H���������H�UH�;H�5��ʺ��H�
��"H�;H�i��H�5�H�������e��H�UH�;H�5�蒺��H�
C�"H�;H����H�5ǩH�������-��H�UH�;H�5���Z���H�
ӌ"H�;H�9��H�5��H���������H�UH�;H�5���"���L�-;�"H�;�����H����H�5a�I�E���H�UH�;H�5S����H�
��"H�;H���H�56�H���������H�UH�;H�5#�豹��H�
2�"H�;H�p��H�5�H�������L��I�H�;H�5���z���H�
3�"H�;H����H�5ߨH���������I�H�;H�5Ψ�C���L�5��"H�;�����H�=��H�5��I�����I�$H�;H�5������H�-��"H�;�����H����H�5x�H�E���I�}�H����H�5e��ɬ��I�}1�H����H�5U����I�}1�H�s��H�5?����I�}1�H����H�5���~��I�}H��H�5��ǻ��I�}H�5
�H���谻��H�5Y�"H����I�?E1����+��H�}1�H����H�5���������H�u�H��H���"�%���H���"�H�=��"H�0�
���H�S�"�H�=w�"H�0���I�7�H�=`�"�ۧ��H���"�	H�=H�"H�0���H�	�"�H�=-�"H�0襧��I�u�
H�=�"萧��H�I�"�H�=��"H�0�u���H���"�H�=�"H�0�Z���H��"�!H�=ǭ"H�0�?���I�6�#H�=��"�+���H���"�%H�=��"H�0����H�q�"�'H�=}�"H�0���H�F�"�)H�=b�"H�0�ڦ��H�ӊ"�+H�=G�"H�0迦��H�Ȍ"�-H�=,�"H�0褦��H�=�"�/H�=�"H�0艦��H�ڍ"�1H�=��"H�0�n���H��"�3H�=۬"H�0�S���H��"�5H�=��"H�0�8���H�Y�"�7H�=��"H�0����H���"�9H�=��"H�0����H���"�=H�=o�"H�0���H��H�=\�"[]A\A]A^A_�M���D�	H�=G��W��H� �"�]��H�=���7��H��H�m�"������H�=D����H��H�M�"����H�=$�����H��H�5�"H�E� ���@�H�=�����H��H��"�����	H�=ݢ���H��H���"�5����H�=�����H��H�ݪ"���H�=���_��H��H�Ū"I�$��@�H�=���7��H���"�:��H�=_����H���"���
H�=4����H�x�"����H�=�����H�`�"���H�=����H�H�"�^��H�=�����H�0�"�'��H�=���w��H��"����H�=��W��H��"���H�=N��7��H��"���H�="����H�Щ"�K��H�=����H���"��f.����SH����H��[���f.�ATI��UH��H��SH��0dH�%(H��$(1�H��H���~���H�<$�չ����H�5����貳��H�EH��t5L��H��H���˫��H���s���H��$(dH3%(u9H��0[]A\�H���L���H�m�"H�8tH���"H�5��H�81��7����B���H�#�"��H�=��H����H�<$�)���H�;�H����1����H�;A��1�H�
ĥH�������z���f���H��(H�5aw"dH�%(H�D$1��l���H��tbH��H�T$H�t$���H�|$�t$1�H�T$耢���L$H�|$�	9�uH�����D$H�|$�4�
��H�L$dH3%(uH��(�H���"H�5*�H�81������(������H�l�"H�5 �H�81����ff.���AVAUI��ATUSH��0H�$H�|$H�T$dH�%(H�D$(1��:���H���2���H�$L�A�� ��H�D$I��H�iA��H�M��� ��H�xHc�A��H9���H�XL������H��H��E1�H�T$$M��H��H��RD���>��ZY1ɋt$H�T$ H���9����\$�49�u`H�|$ ����H�\$(dH3%(u^H��0[]A\A]A^��H�D$L�aH�iH��� �Y���H��H�XA��A���\����Ο��H��"H�5ޣH�81�覟��豽�����AVAUI��ATUSH�� H�$H�|$H�T$dH�%(H�D$1����H�����H�$L�A�� ��H�D$I��H�iA��H�M��� ��H�xHc�A��H9���H�XL�����H��E1�H��H�T$M��H��H��RD������ZY�t$H����H�\$dH3%(uBH�� []A\A]A^�H�D$L�aH�iH��� �y���H��H�XA��A���|���螞��虼��f���U� H���SH���ԡ��H��H�
t"H��H������H��H���Լ��H��H��[]�f.�PXH�5*�H��H���"H�81�����f���H��(H�5�s"dH�%(H�D$1�輲��H��t5H��H�T$H�t$����t$H�|$���H�L$dH3%(u
H��(��}���踻�����SH��H��H�|$H�t$����H�5.s"H���F���H��t6H�t$H��� tH�VH�vH������H��H��[�H��H����������fD��SH�5�r"H�����H��t1�1�1�H���9���H��[�����ff.�@��AUATUSH��H����uH�����tvH��ƒ���ti��udH��H9�tNH�5`r"H���x���I��H��tML�-с"H��I�u�-��H��tMH�51r"H���I���H��t!H��L���)���H��H��[]A\A]�H���C���H�܃"H�5H�H�81��;���H��I�]���H�5�H��H���"H��H�81��������ATI��USH��H��H�|$H�t$�o���H�5�q"H��谰��H��t]L��H���`���H�t$H��� t3H�~Hcω�H9�u2H�vH��H���֭��H��H��[]A\�f.�H��H������莛���I���f���SH���"H�5��H�^"H�H�;�K���H��}"H�;H�5��H�H���"H��(���H�Y�"H�5����H��H��Ϩ��H�;�H�`���H�5Q���H�;�H�����H�53��ٞ��H�;�H�����H�5\{込��H�;�H�����H�5K}裼��H�;1�H�g���H�5K}苼��H�;�H����H�5U��p���H�;H�F�H�5��躭��H�;1�H�>���H�5���B���H�;1�H�v���H�5���*���H�;H�u�H�5x��t���H�;[H�^�H�5�z�]���f.���������AWI��AVAUATU1�SH��H��L�sH�������ZH����H9�~\H��}"H��L� �"���H��H� ��
���L��H�<�L��L�,�H������H����H��� u�H�CH9��H�5Qo"L���	���I��H���9H�H�5+�"1�L�kH�x0�t��I�$H�@0�^fDH����H9�}]H���|���H��H� tp�k���L��H�<�H���k���L�����H��I���ع��L���������H��� u�H�CH9�|�H��H��[]A\A]A^A_�D����H�C ���f����H�C �H�V|"H��H�(���H��H� tH�ҙ��H��J�<+���H��H�5�{H��H�"H�81������"��H��{"1�H�81����芙��H�[ �H�}"H�5~�H�81��ܗ��ff.����UH�5�m"SH��dH�%(H�D$1��z���H����H�����H���ѳ��H��H��t^H��H�������tG1�H��sH���ؙ��H�$H�xH�0�h���H��H���}���H��H�T$dH3%(u:H��[]�H���[���H��z"1�H�81�����H��~"H�5��H�81���������ff.���UH�5�l"SH��dH�%(H�D$1�蚫��H����H������H����H��H��t^H��H���.�����tG1�H��sH�����H�$H�xH�0舨��H��H��蝤��H��H�T$dH3%(u:H��[]�H���{���H��y"1�H�81��8���H��}"H�5šH�81�� ����+���ff.���UH�5l"SH��dH�%(H�D$1�躪��H����H������H������H��H��t^H��H�������tG1�H��sH������H�$H�xH�0訧��H��H��轣��H��H�T$dH3%(u:H��[]�H��蛣��H��x"1�H�81��X���H��|"H�5�H�81��@����K���ff.���AWI��AVAUATU1�SH��H��L�sH�������ZH����H9�}\H��{"H��L� �r���H��H� ���]���L��H�<�L��L�,�H���R���H����H��� u�H�CH9�|�H�5�j"L���Y���I��H���4H�H�5�y"1�L�kH�x(����I�$H�@(�NfDH����H9�~MH���̕��H��H� tp軕��L��H�<�H�����L��H���������H��� u�H�CH9��L���_��H��H��[]A\A]A^A_�D�c���H�C ����f.��K���H�C �H��z"H��H�(�3���H��H� tC�"���H��J�<+���H��H�5CwH��H�Qz"H�81��g���H��v"1�H�81��T����ߔ��H�[ �H��z"H�5ӗH�81��1������UH�54i"SH��dH�%(H�D$1��ڧ��H����H���	��H���1���H��H��tbH�EH��H�0誙����tG1�H��sH���4���H�$H�xH�0�Ĥ��H��H���٠��H��H�T$dH3%(u:H��[]�H��跠��H��u"1�H�81��t���H��y"H�5��H�81��\����g������AUATUSH��H������H�������H��ƒ���tz��uuH��H9�t_H�5h"H���Ц��I��H��t^L�-Iu"H��I�u腷��H��tqH�5�g"H��衦��H��t2H���4���H��H��t:L������H�k H��H��[]A\A]�H��芗��H�#y"H�5$�H�81�肑��H��t"1�H�81��o���H��I�]���H�5$uH��H�2x"H��H�81��E���D��ATUSH��H�� dH�%(H�D$1�H�B H�L$H��sH�D$1������u!H�T$dH3%(H����H�� []A\ÐH�|$L�d$�1���H��H�D$�T��1�1�L��H��H��蒪��H�T$H�S H��tH���̞���f.�1�1ҾH���������L��H���_���H��I��H�D$H�C 苞��M���Q���H��s"1�H�81��?����J���f.�PX1�H��H��s"H�81��������SH���#���H��tH��H�f"H��[髕�����fDPXH�5o�H��H�\w"H�81����f���ATUH��H�5�e"S�y���H��t2H��H���9���H�ߺ����H��I��覰��L��t芽��H��[]A\�����x���H��r"1�H�81��U���D��AUH�5Se"ATUSH������H����H��I���B����Ņ�xLHc���I�Ņ�t)1���L����+���H���s��L��H��舼��9�u�H��L��[]A\A]�fDH��r"H�8tH��[]A\A]�ԧ��@H��t"��H�=y�H�� ��H���H�=͉���H�;A��1�H�
�H�s�������H��u"H�5ܒH�81��:���f.���UH��H�51d"SH�����H��t2H��H�����H��H�������x0����HD�H��[]�H�iu"H�5j�H�81��ȍ�������AUI��H�5�c"ATI��USH��H���m���H��t6L��H���
���L��I������L��H��H���D�����t&H��H��[]A\A]�H��t"H�5�H�81��J�������D��UH��H�5Ac"SH�����H��t,H��H�����H��H��輔����t*H���p���H��H��[]�H�t"H�5��H�81��ތ�����f���AUH�5�b"ATUSH��膡��H����I��H�H�x(�޲���Ņ�xXHc��p���I�ą�t21��I�E�ރ�H�x(����H���F���L��H�����9�u�H��L��[]A\A]�f�H�Qp"H�8tH��[]A\A]�D���@H�r"��H�=�H����H��
�H�=���w���H�;A�1�H�
��H���脷���H�Ks"H�5L�H�81�誋��f.���UH��H��SH��H��dH�%(H�D$1��ȍ��H�5�a"H��H�$�5���H��t4H�(H��1�H�} 诖��H�E H��t7H�L$dH3%(H��uH��[]�H��r"H�5��H�81�������������f.���UH��H��SH��H��dH�%(H�D$1��(���H�5�`"H��H�$蕟��H��t0H�1�H��H�x����H��t7H�L$dH3%(H��uH��[]�H�r"H�5�H�81��x���胨���>���ff.���H��H�5a`"����H��tH�H�x H������R���f���H��H�51`"���H��tH�H�xH���ǰ���"���f���UH��H�5`"SH��跞��H��t$H��H���ǡ��H��H�������t"H��H��[]�H�Gq"H�5H�H�81�覉���q������H��H�5�_"�\���H��tH�H�xH���w������f���ATI��USH���t=H��H�H��x\H�5[_"L������H��t0H��H���ӓ����tH��[]A\��H������H�������H��p"H�5��H�81����H�gl"H�5F�H�81��ވ��ff.���H��H�5�^"茝��H��t3H�H�8���H�@H�x
H�DH���H��H�������ff.�@��USH��H��H�-�k"H�u��H��tH�5W^"H������H��t1H��[]�H��H�m觸��H�5�kH��H��n"H��H�81��	���H��o"H�5��H�81������USH��H��H�-4k"H�u�s���H��tAH��H�5�]"菜��H��H��tTH�xA�E��H�
L����H��H��[]�H��H�m����H�5BkH��H�Pn"H��H�81��c���H��n"H�5�H�81��K���ff.���H��H��t+螎��H��t(H��H�wj"H�(]"H�8H���̌��@�#�����H�rj"1�H�81����ff.���SH��k"H�5��H��m"H�H�;軖��H�,j"H�;H�5��H�H�n"H�蘖��H��i"H�5z���H��H��?���H�;�����H�0���H�5g�d���H�;�H��H�5�h�I���H�;1�H�m���H�50��1���H�;�H�����H�5�����H�;1�H���H�5�����H�;1�H�R���H�5m���H�;�H����H�5���˧��H�;1�H�����H�5��賧��H�;�H�����H�5��蘧��H�;1�H�,���H�5y�耧��H�;�H����H�5j��e���H�;1�H�����H�5l��M���H�;�H��H�5D��2���H�;�H���H�52�����H�;�H�H���H�5�r���H�;�H�����H�5�r���H�;1�H���H�5�e�ɦ��H�;1�H���H�5ze豦��H�;H�keH�5ke���H�;1�H���H�5=e胦��H�;1�H�'���H�5���k���H�;�H�|�H�5���P���H�;[�H���H�5r��4���@��駆�����USH��H��XH�5Lh"H�T$H�$dH�%(H�D$H1�辘��H����H�|$H���X���H���P���H��H�\$�S���H��H���X���H�4$H��� t\H�VH�vH�����H�t$H��� u_H��H����H��H���I���H�߉�该����u+1�H�L$HdH3%(unH��X[]�f�H��H�������u���@H�VHc�H9�uH�v�H��f"1�H�81�����H������H��j"H�5�bH�81��K������fD��AT1�UH��SH��H��`H�T$1�dH�%(H�D$X1�H��e"H�01�脙��H���OH�5�f"H���[���I��H���H��H�l$ ����H��H������H�|$�ݔ��H�t$H��� ��H�VH�vH��茮��L���ԍ��1��pHc��7���H��H�pH� tH�pL��H��H�T$裤��H��A���8���E��tYH��t$�� uGH����H9�TH������H��H�L$XdH3%(uXH��`[]A\��H��H�����\���H�C�H�se"1�H�81�臁��H�
���2H�5�H�=-��h����s���H��h"H�5%aH�81�諗��H��c"H�5��H�81��3�����H��e"SH��H�0�Ɋ��H��uH��[�H��d"H�5�H�81�������SH���3���H��t+H�e"H��H��茆��1�H�5�`H��H��蘝��H��[�H��d"1�H�81�蠀����ATU���S���j���Hc�1�H��H�TI���e���Hc�L��H�T�P���[L��]A\����@��AUATUSH��H�ZdH�%(H�D$1����u(�S1�����H�L$dH3%(utH��[]A\A]�A������ы��Ic�1�H��H�TI���̘��HcվL��H�T跘��H�=�a"H�T$L���#����D$��t��C1��C�|���襝��D���G�@��SH��tgH���?�����t'~��tt0=�u2H��[�p�����u$H��[�b���f�H��[駢���H��[�W���H�c"H�5��H�81����H��b"H�5�H�81��~�����AUH�_ATUSH��(dH�%(H�D$1�L�d$H�L$M��評��H�|$�?���1�H��H���"���H��H��t2H���Œ��H���z���H�T$dH3%(��H��([]A\A]�1�1ҾH���ǀ��E1���~��H�|$tL��菡��I��H�uc"L��1�H���(���H��H��u�1�1ҾH�������~��1�H���P���H��H���Z���1�1ҾH���S����~~��H�|$tL������I��H�c"1�H��L������H��H���܋��H������H�,`"H�5%�H�81��}��薛��fD��USH��H�|$H�|$���H�|$蝍��H�|$H� u_H��H�5΄����H��H��t`H���������ȗ��H�ab"1�1�H���E���H��H�����H��tH�����H��[]�fDH��H��`"1�H�81���|���B}���8諄��H�5��H��H��`"H�81��|����USH��H��H�-da"H�u�3���H��tH�5�`"H���O���H��t1H��[]�H��H�m���H�5(`H��H�6c"H��H�81��I|��H��c"H�5\H�81�葒�����U1�1�SH��H��H�(_"H�01����H��u3H�-�`"H��H�u蕡��H��tKH�5)`"H��豐��H��tH��[]�H�^^"H�5�H�81��{��H�Fc"H�5[H�81�����H��H�m����H�5Z_H��H�hb"H��H�81��{{��ff.���USH��H��H�-$`"H�u��H��tAH�5�_"H������H��H��tTH�xA���
�H�
���w���H��H��[]�H��H�m聫��H�5�^H��H��a"H��H�81���z��H�lb"H�5�ZH�81��+���ff.���U1�1�SH��H��H��]"H�01��~���H��uYH�-Y_"H��H�u�%���H��tqH�5�^"H���A���H��H��tBH�xA���
�H�
�詧��H��H��[]�H��\"H�5�H�81��'z��H��a"H�5�YH�81��o���H��H�m胪��H�5�]H��H��`"H��H�81���y��D��UH�5tSH��H��]"H�8����H��^"H�-`"H�5PH��H�H�E蜉��H�u]"H�}H�5*H�H��`"H��x���H�9^"H�}�����H�q���H�5L�H�����H�;H�5X�������H�;1�H����H�5�Y�+���H�;�H�<���H�5�f����H�;�H���H�5�f���H��"H��t)H��["H�蚡���5����p���H��[]饠��D�H�=`Y����H��"�fD���7������SH��H��H�|$H�t$���H�5>O"H���6���H��tfH�t$H��� t4H�~Hcω�H9�u3H�vH�H�x趪����t$H�D$H��[��H��H�������x��H�]"1�H�81��w��H��_"H�54~H�81���w����UH�5�N"SH��dH�%(H�D$1�芌��H����H��蹬��H�����H��H��t^H��H���ހ����tG1�H��sH����y��H�$H�xH�0�x���H��H��荅��H��H�T$dH3%(u:H��[]�H���k���H��\"1�H�81��(w��H��^"H�5a}H�81��w������ff.���UH�5�M"SH��dH�%(H�D$1�誋��H����1�H��H������Hc�H����1����H��H�@H� uQH��H��H�$�����~[H�H�4$�� tBH�CH�SH)�H9�jH��蚉��H��H�L$dH3%(unH��[]�H�C�f.�H��H�S���H�d\"1�H�81�� v��H��]"H�5Y|H�81��v��H�
�|�yH�5U|H�=8V�����@��USH��H�dXH��(dH�%(H�D$1�H�l$H��蟌����u#H�L$dH3%(H����H��([]�DH������H�|$H� u2H��������T���H��H��t,H�{ ��H�k ��u����H���f.�H�D$H��� t;H�PH�T$H�PH�t$1�����H��H��u�H�sZ"1�H�81���t���H��H��H�D$���������SH�5�K"菉��H����H�H�@Hc0��~H�x[鮆��fDH��X"H�8t1�1�[�x���H�qZ"��H�=InH���H���H�=�z�ר��H�;A��1�H�
�zH�Cn�����H��["H�5[zH�81��
t��f.���UH��H�5�J"SH��跈��H��tNH��H���ǔ��H��H���̇����t��uH���[]��H��1�[]�H�Y"1�H�81��s��H�["H�5�yH�81��|s��ff.��PX1�H��H��X"H�81��Ws�����ATUH��SH��H��躟��H��I��迖��H�5�I"H��H�����H��tH��L��H���J{����t H��[]A\�H��Z"H�57yH�81���r���q������UH��H�5�I"SH��藇��H��t$H��H��觓��H��H��茙����t"H��H��[]�H�'Z"H�5�xH�81��r���������H��H�5AI"�<���H��tH���z��H��t$H��H���>}��H��Y"H�5�xH�81��6r��������SH�5�H"���H��t+H������H��H��t;H���|��Hc�H9�u#H�߉�[鯣��H�xY"H�5(xH�81���q��H����q���Z���f.���SH����H��tH��H�tH"H��[�[w���&���fD��H��U"SH�5xH�8��{��H��V"H��S"H�5�wH��H�H��R���H��V"H�;H�5xH�H��X"H��/���H��X"H�5a���H��H���~��H�;�����H�'���H�5�Q���H�;1�H���H�5�Q���H�;1�H�����H�5�Q�˒��H�;H��QH�5�Q����H�;1�H����H�5WQ蝒��H�;1�H����H�5c�腒��H�;�H�����H�5�_�j���H�;�H����H�5'^�O���H�;�H�@���H�5�]�4���H�;1�H�X���H�5�v����H�;[�H�|���H�5�v�������g}�����UH�5G"SH��dH�%(H�D$1�蚄��H����1�H��H��褛��Hc�H����1�豁��H��H�@H� uQH��H��H�$�r�����~[H�H�4$�� tBH�CH�SH)�H9�jH��节��H��H�L$dH3%(unH��[]�H�C�f.�H��H�S���H��Q"1�H�81��o��H��V"H�5�uH�81��n��H�
�v��H�5�uH�=(O�������@��AWH�5�E"AVAUATUSH��(dH�%(H��$1��l���H����H��I���ؓ��A�ƅ���Hc��Uz��H�D$E����1�L�d$�TfDL������I��H�E��HchHc0H�xH�l-�A���H��L��H��1��l���H�|$H��诛��A9�tq��L���w��H��H����H��L���ty������L���tp�����t�����襗��H���m���I���h���DH��Q"H�8t8辆��H�D$H��$dH3%(H�D$��H��([]A\A]A^A_�H�\S"��H�=4gH��ۡ��H���H�=At�¡��H�;A�1�H�
tH�.g��Ϙ���g���H��O"1�H�81��l��H��T"H�5�sH�81���l�����f.���ATI��H�TOUSH�� dH�%(H�D$1�H�L$萃��H�\$H������tlH�蔡��H��輈��H��H����H�5�C"L���1���H����H��H��1�H������H��tp茕��H�T$dH3%(usH�� []A\�H��踝��H���H�59C"L���р��H��tH1�1�H���Pz��H��H��蕂��H��H�D$�X���H�D$��y��H��N"1�H�81��k���ĉ��H�=S"H�5�rH�81��k��ff.����AVAUATI��H��QUSH�� dH�%(H�D$1�H�\$H��L�L$I��H���>���H���F���H��I���}��H�|$��H�5XB"L������I��H���H�\$H�+�� ttH�{Hclj�H9��H�|$H�[@��ti�r����H��H��A�����A��jL��L���/���ZY����H�L$dH3%(L����H�� []A\A]A^ÐH�|$H��H����@��u�腁����땐H�5�q"H�,$H��q"H��t1H��N"H�8�*m��H��H��H��1�����H�D$����H�=8q���H��H�Eq"�����H��Q"H�5�pH�81���i���i��H��L"1�H�81���i��fD��ATI��H�5�@"U��H��SH��H��@dH�%(H�D$81��m~��H�D$H����1�H�L$L�D$ L��H��I���b�����u&H�L$8dH3%(H���oH��@[]A\�fDH�|$�p��H��H����H�T$ H��t6H�޿1��g���H�58p"I��H��tHL�A1�1�H��赜���H�5p"H����H�YM"H�8�k��H��H�D$ ���H�=�dH�D$�z���L�L$H��H��o"�f�H�|$��u��H�|$0H�D$0�z��H�D$0H��� tJH�PH�T$(H�PH�t$(H�|$����H�T$H�S H������H�K"1�H�81��)h��f�H��H��H�D$(���fD�H�=o�Ǖ��H��H�o"������H�lO"H�5�nH�81���g��ff.���ATUH��1�SH��H��H�� dH�%(H�D$1�蔘��H��I��脘���H��H��脓��1�H���j����H��H�$�Y����H��H�D$�G���H�D$H��t4H��L������H�L$dH3%(utH�� []A\�fDH�$H�5En"H��1����}��H�D$H��u�H�5�m"H��tH�PK"H�8�i��H�D$념�H�=�m����H��H��m"��讄��ff.���SH���ӌ��H��tH��H��="H��[�+l��H�DI"1�H�81��Xf���ATUSH��H�5r="�
{��H��t>L�%�J"H��H��I�4$�‹��H��t;H�5F="H����z��H��t[H��H��]A\��i��H��M"H�5�lH�81���e��H��I�,$�V���H�5�IH��H��L"H��H�81��e�����H���S���H�������x
1҃���H�TH��H�����@��tF@���|�������H����@����H�VH��I"H9t*1���H�����u�H��tAH��u�H��K"H���H������¸��t1�H���DH��I"H��@H��I"H��@H��G"H��{����H�iI"H��k����H�	J"H��[������H��H�5�;"�\y��H��t3H���O���H��������?H9�wH�DH���fDH��H����H��K"H�5'kH�81��<d��ff.����H��H�5Q;"��x��H��t3H���oy��H��������?H9�wH�DH���fDH��H��鄋��H�mK"H�5�jH�81���c��ff.����H��H��t+����H��t(H��H�H"H��:"H�8H���Li��@�Ӊ����H�ZF"1�H�81��nc��ff.���USH��H��H�-�G"H�u���H��tH�5g:"H���w��H��t1H��[]�H��H�m藓��H�5�FH��H��I"H��H�81��b��H��J"H�5�iH�81���b�����USH��H�j"H����H��I"H�j"H�5�iH��G"H�;H��r��H�xE"H�;H�5jH�H��I"H��|r��H��F"H��F"H��H�2H�� k��H�;H�5����p��H�;�����H�r���H�5�B�6���H�;�����H�����H�5ri����H�;�����H�<���H�5�B����H�;1�H�$�H�5Ii���H�;�H�)���H�5Kx�̓��H�;H�<xH�5i�u��H�;�H�(���H�5|Q蜃��H�;1�H��H�5�h脃��H�;1�H�H���H�5�h�l���H�;1�H�p�H�5)B�T���H�;�H�5vh������H��H����s���H�=�e�Je���'H��H���:a���H�=qh�)e���'H��H���a���H�=\h�e���'H��H���`���H�=Hh��d���'H��H����`���H�=3h��d���-H��H���`���H�=h�d���-H��H���`���H�=h�d��H��-H���t`��H�;H��H�5Sg���H�;�H�5�V�Ά��H�;�/"H�5�g躆��H�;�?H�5�g覆��H�;H���
H[H�5�g]錆��@�H�=g藍��H�g"���f.����USH��H��H�-�F"dH�%(H�D$1�H�$����H�u����H���H�5�f"H����1�H��1��6v��H���ޒ��1�H����o��H��H����H��H��H���zd��H��u3�Nm��H���l��H�$H��~mH�6A"H�5gH�81��^��D�m��H��H�L$dH3%(��H��[]�D�H�=�?臌��H��H��e"�F����H��@"H�5�fH�81��^��H���l��H��@"1�H�81��m^��H��H�m���H�5"BH��H�0E"H��H�81��C^���N|��ff.���UH�5NfSH��H� B"H�9C"H�;H��n��H�/@"H�;H�5+fH�H�KE"H���m��H�-$E"H�E��|��H��H���xt��H�}H�5�eH���e���H��H��[]�'�����UH�5$5"SH��dH�%(H�D$1��Jr��H����1�H��H������Hc�H����1��ao��H��H�@H� uQH��H��H�$�����~[H�H�4$�� tBH�CH�SH)�H9�jH���:p��H��H�L$dH3%(unH��[]�H�C�f.�H��H�S���H�B"1�H�81��\��H�ID"H�5eH�81��\��H�
�e��H�5eH�=�<�m���z��@���x�����AVAUATUSH��H��@dH�%(H�D$81�H�B H�l$H�L$I��H��<H�D$(H�D$01��D$�s������E1�H�|$�H�|$臏��H�t$0H��H���m��H�D$0H��H�C �j��H�|$0H�L$ L��H�T$L�D$(�z������H�l$H�t$H�=�>"H���	����T$I�ƅ���A�A�H�|$ �d��H�5]A"H�|$(�Ê��L��H�5oIH���1x��L��H�5�cH���x��H��L��H�5�c�
x���|$���H�L$8dH3%(H��uqH��@[]A\A]A^ÐH���H~��I�����H�t$ H�=|?"H��A��F���I�ŋD$���I���H�t$(H���;���H�=:@"H������I���$����}���x��H��?"H�5cH�81��Z����SH���S���H��tH��H��1"H��[�`��H��?"1�H�81��HZ�����AWH��bAVAUATUSH��dH�%(H�D$x1�H�\$0H�l$(H��H�D$xI��H��PH�D$xPH�D$xPL�d$xATL�l$xAUH�D$xPH�D$xP1�L�L$x�p��H��@H�D$H�|$(t
H���|��H�D$E1�H�|$0tH����|��I��H�|$81��tz��H�|$@H�D$�Յ��H�|$HH�D$H��t�m��H��1�H�|$P�E1�H�|$X� H�|$`E1�H���NH�|$hE1�H���\H�|$p1�H���jPA��L��I��AUATAVH�|$(H�L$8H�T$0�Gi��H�5�>"H�� H��H���1���H���jH�	<"H�J0"H��H�8�o^��H�T$8H�5�FH��H���xu��H�T$@H�5aH���du��H�T$HH�5aH���Pu��H��H�L$xdH3%(��H�Ĉ[]A\A]A^A_��L���{��H���d���Ņ�����L����L���h{��H���d��A�ƅ�����L���M{��H�5�`H��H�|:"H�81���W��f�@��tJ�_��H�|$hE1�A��H�������@��tJ��^��H�|$pA��1�H�������@��t��^�������n��A���U����n���k���fD�{n��A���G����nu��H��<"1�H�81��KW��ff.���H��>"SH�5�_H�H�+;"H�8�g��H�<<"H�U:"H�5�_H��H�H��f��H�A<"H�;�����H�5�=H�H�������Z��H�;H�5I����d��H�5%^"H����H�;E1�1ɺ袁��H�5�]"H����H�;E1�1ɺ老��H�5�]"H��ttH�;E1�1ɺ�b���H�;�����H���H�5�6�Gx��H�;1�[H�����H�57�.x��fD�H�=�6���H��H�u]"�T�����H�=�^迃��H��H�=]"�l����H�=\^蟃��H��H�%]"�.�������i������wh�����UH�5D."SH��dH�%(H�D$1��Jj��H����1�H��H���j��Hc�H����1��ag��H��H�@H� uQH��H��H�$�j����~[H�H�4$�� tBH�CH�SH)�H9�jH���:h��H��H�L$dH3%(unH��[]�H�C�f.�H��H�S���H�L;"1�H�81��T��H�I<"H�5�]H�81��T��H�
a�WH�5�]H�=�4�e���r��@���\�����AWAVAUATE1�USH��H��:H��HdH�%(H�D$81�H�L$�D$H��H�D$8P1�L�L$8L�D$0�	k��H�|$@ZYH����H�D$(H���9H��聇��H�|$I��H���OH�t$�%T��I�ŋD$����H�|$ �,e��H�5e,"H��H�D$�xh��I��H���p览��H����o��H��H���(H�T$E��L��I��L��L���q��L��A���a��E����u��H���~���H��tH����i��H��H�5SMH���p���S��H���h|��H�5+\H��H����o��H�5�8"L���W���A����HE�H�L$8dH3%(��H��H[]A\A]A^A_�f�H�5�[H���ah��H�D$(H�������H�|$E1�H�������E1������@��t�Y��A���e���D�si��A���S���L���`��H�5<8"L��褁��H��8"1�H�81��1R���<p��H��9"H�5[H�81��R��L���<`���|$��v����AWAVAUATUSH��H�$H��(H�|$H��H��I��dH�%(H��$1��L���H�5e*"H��I���zf��H����H�xI��蕅������1�L��H�\$�
���H��H��u�Q��H��H���sV��A9�u<�H��L���^_��A�Dž��H��L���y����tH�|$�H�5AZ�n��H���J_��L���B_���=���H��u=H��$dH3%(L��uRH��([]A\A]A^A_þL���v�����?���H�D7"1�H�81��P��H�A8"H�5�YH�81��P���n��ff.���AVH�53)"AUATUS�He��H����H�xH���c�������H�C L�`M����L���v���Ņ���Hc��\��I�Ņ�th1�L�5("�GDH�56"H�=z5"H���ba��H��tyH��H�4"L���H�8�U��L��H���z}��9�t��L���|R��H��u��r����[L��]A\A]A^�@H�{觃����uH�C L�`0M���H���[]A\A]A^�h��H��5"1�H�81��qO��H��6"H�5VXH�81��YO��H��5"H�5kXH�81��AO�����AVH�5�'"AUATUS�c��H���BH���p��I��H����H���Cu���Ņ��4Hc���Z��I�Ņ�tr1�L�51'"�M�H�5�0"H�=
1"H���"`��H����H��H��2"L���H�8�aT��L��H���6|��9�t��L���8Q��H��u��[���@[L��]A\A]A^�@H�y2"H�8t
[]A\A]A^�ng��H�?4"��H�=HH�辂��H��'�H�=�Y襂��H�;A�&1�H�
WH�H��y���H�i4"1�H�81���M��H�f5"H�5�VH�81���M��H�>4"H�5�VH�81��M��ff.�f���SH�5D&"�_b��H���VH�xH���z�����teH�{�l�����t?H�{�^�������H�{�L�����tgH�{�>��������[�fDH�=�T"H��tl[�y��fDH�=�T"H��u�H�=WV���z��[H��H�xT"��y��H�=QT"H��u�H�=BV��z��H��H�1T"��H�=
V�	�oz��H��H�T"�t���H�=	T"H���d���H�=�U�	�?z��H��H��S"�D���H�=�S"H���4���H�=dU��z��H��H��S"����H��3"H�5UH�81��L�����ATUSH��H�� dH�%(H�D$1�H�B H�L$H�u.H�D$1���b����u!H�T$dH3%(H����H�� []A\ÐH�|$L�d$�Y��H��H�D$�$��1�1�L��H��H���u��H��tEH�D$H��H�C �Y��H�ߺH�5wT�8h���H�5rEH���$h���n����1�1ҾH���M����K��L��H���WZ��H��u�H���:Y��H�|$� S��H��-"H�C H�5rTH�81���J����h��ff.���AUATUSH��H������H�������H��ƒ���tw��urH��H9�t\H�58#"H���P_��I��H��t[L�-!-"H��I�u�p��H��tnH�5	#"H���!_��H��t/H���Di��H��t:H�C L���SR��H��H��[]A\A]�H���
P��H��1"H�5SH�81��J��H�~0"1�H�81���I��H��I�]�fz��H�5�-H��H��0"H��H�81���I���PXH�5YSH��H�<1"H�81��I��f���H��H�5�!"�\^��H��t
H�xH���i�����D��H��H�5Q!"�,^��H��tH�@H�xH����{��������H��H�5�!"�]��H��tH�@H�xH���{��H��0"H�5�RH�81��H��ff.���H��H�5� "�]��H��tH�@H�8H����i������f�PX1�H��H�1/"H�81��H�����USH��H��H����t��H�5t "H��H���I]��H��tH��H���]����t"H��H��[]�H��/"H�5�QH�81��CH���~���ff.���SH����z��H��tH��H� "H��[��M���F���fD��H��H�5A "�\��H��t4�4H����W��H��t:�8t�H���fDH�xH���sn��H�</"H�5cQH�81��G������fD��AUATI��UH��SH��H��H����s��L��I����s��H��I����j��H�5�"H��H���\��H��t#H��L��L��H���k����t&H��H��[]A\A]�H��."H�5�PH�81��	G���D���@��SH���#T��H��tH��H�4"H��[�L������fD��UH�5t"SH���[��H��t5H���{��H����b��H��H��tMH��H���2f��H�߅�t#H��[]��o��H�	."H�5eOH�81��hF���T��H��,"1�H�81��PF�����ff.�PXH�5*OH��H��-"H�81��"F��f�SH�5�"��Z��H��t(H�xH���z����t
��t1�[�@H�C [H�@�������H�����H��H���'U�����ATI��UH��S���H����H����x��H���s��H��u�H�5$M"H��tM��H��L�r1�1��)y��H��[]A\�H�=ZA�s��H��H��L"��SH�5�"�Z��H��t(H�xH���"y����t
��t1�[�@H�C [H�@�������ATI��UH��S���H����H����h��H���@r��H��u�H�5\L"H��tM��H��L�"1�1��ix��H��[]A\Ð�H�=�@�_r��H��H�L"����H���3���H��H���wf�����ATI��H�5"USH���Y��H��t"L��H���y��H��H���d����t H��[]A\�H��+"H�5MH�81��D���B���f���H��H��H��두��ATI��H�5�"USH���X��H��t"L��H���&p��H��H����h����t H��[]A\�H�8+"H�5�LH�81��C������f���H��H��H��두��ATL�%�'"UH��SH��I�4$H���h��H��taH�5C"H���X��H����H�5C)"H�=�("H���T��H��H��tzH�5�"H����W��H��taH��H����a����t2H��[]A\�H��I�,$�ms��H�5�&H��H��)"H��H�81���B��H����V��H�@)"H�5�LH�81��B���j���H�#)"1�H�81��B��H� *"H�5+LH�81��B��ff.�@��ATI��UH�-&"SH��H�uH����g��H����H�5�"H���W��H����H�5G$"H�=`$"H���xS��H��H����H�5�"L����V��H��H��tlH��H���*_����t=H�{��u����tL��[]A\ÿ�j��H���2H���Q_��L��[]A\�H���qT��H�("H�5�KH�81��A���D���H��'"1�H�81��qA��H��("H�5!KH�81��YA��H��H�m��q��H�5%H��H�("H��H�81��/A��ff.�@��UH��H�5�"SH����U��H��t$H��H���gW��H��H���k����t"H��H��[]�H�g("H�5�IH�81���@���������SH�5d"�U��H��t<H�xH���t����t	1�[�D1�1ɾH���m��H�¸H��u�1����)���f���H��H�5"�U��H��t#1�1ҾH���Fm��H��H�H��H�Ѓ������ff.�@��SH��H�5�"��T��H��tEH��tH��u"1�H���H����1���l��H��t5H��[�H�C&"H�5�IH�81��?��H�;'"H�5�HH�81��?������D��AWAVAUATUH��H�5)"SH��(dH�%(H�D$1��/T��H���HI��H�l$@����@��u
H�������H�|$�Q��H�D$H��� ��H�PH�XL�-�JE1�M��L��1H����������!�%����t������D�H�qHDΉ�@�H��L)�H9�uH��L��H�T$�@d��H�T$��t_A��I��A��u�H�%"H�5�HH�81��>���H��H�P���b����E�����0���H���X��H�D$�-����Mc�L��K�A�t��o����t?H�\$dH3%(H��u'H��([]A\A]A^A_�H��%"H�5�FH�81��=���\���,���ff.����SH���[��H��tH��H�t"H��[�{C����fD��ATH��USH��dH�%(H�D$1��q��H��H�$H��H���vC��H��H���K��H��tuH�<$A�H��t�f��I��H��"H��"H��H�8�B��L��H�5FFH��H���Z���H�5;7H����Y��H��H�L$dH3%(uH��[]A\��,��Z�����AVAUATU1�SH��H�#H�� dH�%(H�D$1�H��L�L$L�D$�S��H�<$�i��H�|$I����h��H�|$I��H��unH�5'"H���?Q��I��H�����nq��H���X��H��H��t_L��A��H��L��L����c��H�߅�t?�~e��H�T$dH3%(uZH�� []A\A]A^Ð@��t
�5C����냐�S�����v����J��H�h""1�H�81���;��H�e#"H�5�DH�81���;����Y��ff.�@��AUH�?"ATUSH��8dH�%(H�D$(1�H�L$�D$H��H�D$(P1�L�L$(L�D$ �SR��H�|$(ZYH�����Q��I��H�|$ 1�H����H�|$�n��H�|$H�t$H���m;��I�ċD$������L��L��H����l��H��H��H�����I��H��"H��H��"H�8�@��H�T$H�5�CH��H���W��H�5� "L���j��H��H�T$(dH3%(uDH��8[]A\A]�D@��t"�A�����=���fD��e��I�������kQ���������_X���zH��H�53 "L���i��H�� "1�H�81��(:��H���PH���|$�^�����AVH�5DAUATUS1�H��@dH�%(H�D$81�H�D$0H�L$�D$PH�D$0P1�L�L$0L�D$(�P��ZYH�|$�f��H�|$I���$f��H�|$0I��H����H�|$ �m��H�|$(H��H����H�t$�9��I�ċD$����A��H��L��L��L���ia��H����H��H��"H��"H�8��>��H�T$ H�55BH��H����U���H�5*3H����U��H���$G��H�5�"L���Eh��H��H�L$8dH3%(u>H��@[]A\A]A^�D@��t��?��������fDE1��C����O���������V��H���F��H�5p"L����g��H��"1�H�81��e8��H���F���|$�4]��@��H��H�5�"�M��H��tH�@H�8H���'Y��H��"H�5�AH�81��8��ff.�@��AUH��@ATU1�SH��(dH�%(H�D$1�H��L�L$L�D$�N��H�|$H����H�|$H�<$��H�Q"H�3�9]��H���QH�<$H�55"�PL��I��H���dE1�H�|$���pl��H���S��H��H������L��L��H���lX������L���\E��H���t`��H�T$dH3%(��H��([]A\A]�D@��tj�%>��H�|$H�<$���;���H�5�?�L��H�<$H�D$�!���f�H�x�j����t2H�|$H�����.j��I���1���fD�M��������@1�1ɾL���c�����@H��E��H���D��L���D��H��"1�H�81��?6��H�<$H��f��H��H�5�H��H��"H�81��6��� T��H��"H�5�>H�81��5��E1������ATH��"H�5x?L�%5"USH�8I�$��E��H��"H�i"H�5�?H��H�H��E��H�"H�;�H�5�?H�H�����9��H�;�����H�p���H�5�?�d9��H�;�����H�E���H�5!#�I9��H�;H�5�����H������.9��H�5�<"H����H�;E1�1ɺ�`��H�5�<"H����H�;E1�����_��H�;H�5�����B��H�;�H���H�5e�V��H�;�����H���H�5@�V��H�;�H����H�5�>�V��H�;1�H���H�5�1�oV��H�;�H�P�H�5�>�TV��H�;1�H���H�5�>�<V��H�;1�H�p�H�5�>�$V��H�;�H���H�5�>�	V��H�;�H���H�5u>��U��H�;1�H���H�5h>��U��H�;�H�G�H�5U>�U��H�;1�H��H�5K>�U��H�;�H���H�5;>�U��H�;�H�y�H�50>�mU��H�;1�H���H�5&>�UU��H�;�H���H�5�-�:U��H�;�H�k�H�5�=�U��H�;1�H�3�H�5�=�U��H�;�H���H�5�=��T��H�;H��=H�5��6F��H�;�����H�W��H�5o �T��H�;�����H����H�5��T��H�;1�H���H�5Q�T��H�;H�BH�5B��E��H�;1�H����H�5/�ZT��I�$H�;H�59=�GB��H�-`"H�;H�5.=H��H�E��X��H�}H�5���?��H�}�H�z�H�5��S��H�}1�H�����H�5��S��H�}H�H�5�!�.E��H�}1�H���H�5��S��H�}1�H���H�5�<�S��I�$H�;H�5�<�A��H�-�"H�5K�H��H�E�/?��H�}�H���H�5��SS��H�}1�H�V�H�5g�:S��H�}1�H���H�5U�!S��H�}1�H�t�H�5&<�S��H�;�H�5<�W��H�;�H�5I�W��H�;�	H�5F�|W��H�;�H�59�hW��H�;�!H�5�TW��H�;�AH�5�@W��H�;��H�5�;�,W��H�;�H�5�;�W��H�;�H�5�;�W��H�;[�]H�5�;A\��V��@�H�=G9�]��H��H��7"�����H�=+*��]��H��H��7"����ATH�5#"US�D��H����8H���IZ����t��{]��H��H�C H�x�[U���H�=�I����3��L��H��H���/��H�C H�x �,U���H�=lI���3��L��H��H���/��H�C H�x(�T���H�=4I���i3��L��H��H���[/��H�C H�x0��T���H�=�;I���:3��L��H��H���,/��H�C H�x8�T���H�=p;H���3��H��H��H���.��H��[]A\�H�N"H�5�H�81��
E��H�6"H�5;H�81��.��D��ATUSH��H��H�5�"�EC��H����H��H��tkH���[H��L�e H��I�|$8H��t�_��H��t1H��H��[]A\�@H�D$�a��H�t$I�D$8H�E H�x8H��u�H�h"1�H�81��-��@H�@ H�x8�G��H�E H�@8H��H��[]A\�H�\"H�5�
H�81��D��ff.���ATUSH��H��H�5�"�eB��H����H��H��tkH���{G��L�e H��I�|$0H��t�_��H��t1H��H��[]A\�@H�D$��`��H�t$I�D$0H�E H�x0H��u�H��"1�H�81��-��@H�@ H�x0��F��H�E H�@0H��H��[]A\�H�|"H�5�H�81��;C��ff.���ATUSH��H��H�5�"�A��H����H��H��tkH���F��L�e H��I�|$(H��t�5^��H��t1H��H��[]A\�@H�D$��_��H�t$I�D$(H�E H�x(H��u�H��"1�H�81��<,��@H�@ H�x(��E��H�E H�@(H��H��[]A\�H��"H�5�H�81��[B��ff.���ATUSH��H��H�5"�@��H����H��H��tkH���E��L�e H��I�|$ H��t�U]��H��t1H��H��[]A\�@H�D$�_��H�t$I�D$ H�E H�x H��u�H��"1�H�81��\+��@H�@ H�x �E��H�E H�@ H��H��[]A\�H��"H�5�
H�81��{A��ff.���ATUSH��H��H�5:"��?��H����H��H��tkH����D��L�e H��I�|$H��t�u\��H��t1H��H��[]A\�@H�D$�&^��H�t$I�D$H�E H�xH��u�H��"1�H�81��|*��@H�@ H�x�+D��H�E H�@H��H��[]A\�H��"H�5
H�81��@��ff.���SH��H�t$H�5["H�$��>��H�����8H���T����t��H�|$�l<��H���d<��H�$L�K L�A�� tPH�yHc�A��H9�unH�t$H�IH��� uIH��H����1���T����xL����HD�H��[�H�t$I��H��A��H��� t�H�~Hclj�H9�uH�v��^)��H��"1�H�81��;)��H��"H�5�5H�81��#)��H��"H�5�H�81��k?��ff.���UH��SH��(H�t$H�5'
"dH�%(H�D$1��=��H���:�8H���?S����t�H�C H�x ��H�x8��H�|$�;��H�{ �@��1��pHc��:��L�K H��H�HH� tH�HH�t$H��� tWH�~Hclj�H9���H�v1�L�D$�U1�������t$H���Q;��H��H�L$dH3%(��H��([]�H��H�����H�5H���=��H���;���H�
"H�5n4H�81��'��H�
"H�5G4H�81��'��H�0"H�54H�81��'��H�"H�5QH�81���=���'��H��"1�H�81��_'���jE��f.���ATUSH��H�5}"dH�%(H�D$1��;��H����8H���Q����t��H�} H�8��L�%�"1�A��Hc�H����1���8��H��H�@H� u^H�$H��H�} A�ԅ�xxH�H�4$�� tPH�CH�SH)�H9���H����9��H��H�L$dH3%(��H��[]A\�@H�C�f.�H��H�S���L�%�"�N���H��"1�H�81��1&��H��
"H�5�2H�81��&��H��
"H�5�H�81��a<��H�
3�xH�5�2H�=1��6����C��ff.�f���AUI��ATA��H��USH��(H�5�	"dH�%(H�D$1��m:��H���v�8H���
P����t�{H�l$D��H�L$L��I��H��1��P<��H�|$H�����;��E1�H�|$I��u~�IZ��H���qA��H��H����H�s H�~8��H��L�
K
"1�L��ATE1�H���YF��ZY����H���7N��H�L$dH3%(��H��([]A\A]��H���87��L�d$I�<$H��% tmI�|$Hc�H9�������H��u^I���?���DE1�E1��/���DH���Q�����i���H���2��H��	"1�H�81��=$��DH������M�d$���H��"H�5�H�81��f:��H��"H�5j0H�81���#���A��H�
	"H�5KH�81���#����#��ff.����USH��H�5�"�z8��H��tt�8H���N����tuM�X��H����?��H��H��t%H�s H��1���9��H��tH��[]�L���1��H��"1�H�81��I#��H��
"H�5�/H�81��1#��H��
"H�5�H�81��y9��f���SH�WH���O�wL�O(L�G H���w0H�?�GA���C8X1�Z[�ff.�AUI��ATI��U1�SH���	@��H��t=L��tH��H���AL����t=H��"H��L���K(��1�H�5�H��H���W?��H��H��[]A\A]�f�H����$��H��H��[]A\A]�f.���USH��H��H�5l"�6��H���%�8H���L����t��H�U H�5�"H�=	"�T3��H���tL�����؃�����H��������H�{H��t9H�����H��t,H��[]�DH�����u�H��t1H��u�H�U"H�8��H���(J��H��"1�H�81��e!��DH�"H�8�@H�	"H�8����H��"H�8�s����H��"H�8�c����H�y"H�8�S���H��"H�5u-H�81�� ��H��"H�5�H�81��A7�����UH��SH��H�5"�5��H��tc�8H���8K����tu<H�C H�x8tH���[]�@H�5�H���96��H��1�H��t�H��[]�H�"H�5�,H�81��_ ��H��"H�5!H�81��6���PXH�5H��H��"H�81��6��f���H��H�5Q"��4��H��t!H�@ H�x8H��t
H���E����H���������H��H�5"�4��H��t!H�@ H�x0H��t
H���aE����H����a������H��H�5�"�\4��H��t!H�@ H�x(H��t
H���!E����H����!������H��H�5�"�4��H��t!H�@ H�x H��t
H����D����H���������H��H�5Q"��3��H��t!H�@ H�xH��t
H���D����H�������AUA��ATUSH��dH�%(H��$�1��Q��H����H��$��H��H���WB�����gL�d$�D$H�D$�@������H��"�|$L�d$(�D$ H�D$0H�D$H�D$`H�D$H�D$hH�D$ H�\$@D�l$HH�l$P�D$XH�D$p��H�"H�=����H�t$@L���8S���D$xH�߅����F���|$����1�H��$�dH3%(H����H�Ĩ[]A\A]�fDH��"�D$�D$ H�D$0H�D$H�D$`H�D$H�D$hH�D$ L�d$(H�\$@D�l$HH�l$P�D$XH�D$pH�|$@�8����D$xH�߅��P����;�����V���@H����E���C����A���!;�����AVI��AUA��H��ATI��USH�� H�5-"dH�%(H�D$1��1��H���H�\$H��H�L$1�I��H��L��D���3������H�|$@����E1�H�|$tH����?��H�|$I����)��H��H�D$�O��H��"L��1�H��I���0<��H��H����L���l*��H�ھtH����E�����QH�L$dH3%(L���GH�� []A\A]A^��+#��������H��H��u�H�-"1�H�81�����f��N��H���fD1�1ҾL������J��1�1�1�L���,��H��H���L���1�1ҾL���������1�L���"��H��H��� ���1�1ҾL����������1�L����6��H��H����1�1ҾL���������E1�E1�1�H�=��!L��H�5�'�$��L��H���))��H����������H�,"H�58�H�81�����H���{C��������8��H�J"H�5��H�81��	1��f���UH��H��SH����t+�!�������H��H��t+H��H�����H��tH��[]��k1�����t���H��H��u�H����B��H���!1�H�81��1�����SH�5d�!��.��H��t#�8H���D����tu,H�C [H�x0H�H�Ѓ��H��"H�5��H�81��?0��H�h"H�5C&H�81��������SH��tFH���?�,D����turH���!H��!H��H�8�N��1�H�5��H��H���Z6��H��t-H��[��K��H��tH��H�L�!H�8���H�����H���!1�H�81��5��H�"H�5&H�81����ff.�f���SH��!H�5�%H�V�!H�H�;��(��H�,�!H�;H�5{%H�H���!H���(��H���!�H����H��H�5;�H����H�;�����H�����H�5&��:��H�;1�H�L���H�5��p:��H�;1�H�����H�5	��X:��H�;1�H���H�5���@:��H�;�����H�a�H�5��%:��H�;H��H�5��o+��H�;H��H�5��Y+��H�;1�H���H�5����9��H�;1�H�����H�5�(��9��H�;�H���H�5�$�9��H�;�H�o�H�5�$�9��H�;1�H�g���H�5��{9��H�;�H�\�H�5���`9��H�;1�H��H�5I��H9��H�;�H�I�H�5G��-9��H�;1�H�����H�5
�9��H�;�H�6�H�5��8��H�;1�H����H�5l#��8��H�;�H�#�H�5�#��8��H�;1�H�����H�5A#�8��H�;�H��H�5�#�8��H�;1�[H���H�5���{8��f.����AUL��I��ATUSH��A��H�t$H�$���t����H�|$�(��H���(��Hc�1��6(��I��H�hH� tH�hL��A��ty�4��H�$A��H�
�� tyH�zHclj�H9���H�|$H�RH�7�� unH��H����H��A��U��A��ZY��ukH��L��[]A\A]�f��,�����R���@�,��H�$A��H�
�� u�H�|$H��H����H�7�� t�H�GLcȉ�L9�uH��H���U��H�V�!H�5g"H�81��-��ff.�f���AVL��I��AUATUL��SH��A��H�t$H�$�������H�|$�c'��H���['��H���c8��Hc�1�I����&��I��H�hH� tH�hL��A��ty����H�$A��H�
�� tyH�zHclj�H9���H�|$H�RH�7�� unH��H����UM��S��(��ZY��unH��L��[]A\A]A^��K+�����G���@�;+��H�$A��H�
�� u�H�|$H��H����H�7�� t�H�GLcȉ�L9�uH��H�����H���!H�5!H�81�����ff.�f���H���!SH�5!H�8���H��!H�'�!H�5� H��H�H��#��H���!H�;�H�5� H�H�B����,��H�;[�H����H�5� �,������GA�����UH�5��!SH��dH�%(H�D$1���'��H����1�H��H���4%��Hc�H����1���$��H��H�@H� uQH��H��H�$�%����x[H�H�4$�� tBH�CH�SH)�H9�jH����%��H��H�L$dH3%(unH��[]�H�C�f.�H��H�S���H���!1�H�81��P��H��!H�5�H�81��8��H�
A!��H�5�H�=h��#���$0��@��UH�5t�!SH����&��H��tZH���=+��H��H����E����u.��F��H���.��H��H��tFH��H�����H��H��[]�;�����;��H��[H��]�K(��H�$�!H�5H�81����H��!1�H�81��p������2�����ATUSH��H��H��H�t$���H�|$H�D$�#��H�D$H�8�� ��H�����fH�5��"��H��H���
H�t$H��� ��H�VH�vH���'���E��I��H����H�D$H��� u~H����Hc�H9���L��H��� C��H���~�2��H�5��!H���Q%��H��ttL��H���q-��H�D$H��[]A\�H��H�����l����x�.����H�P�H���1��H�{�!1�H�81����H���'���1��L���j����H���!H�5�H�81�����H�9�!H�5�H�81��������AUI��H�50�!ATU��H��SH��H��8dH�%(H�D$(1��k$��H�D$ H����I��1�L�L$L��L�D$L��H�C���Z&������H�5""L�$$H����L��H��1��&��H�5�"L�d$H��tj1�L��H���%����~'H�5�"H�l$H����H��H��1���%��H�L$(dH3%(H���
H��8[]A\A]�f.��H�=���<��H��H�e"�v����H�=p��_<��H��H�M"�3���H�<$����L��H�$�� ��H�$H��� tGH�PH�T$H�PH�t$H�|$ �2��H�T$ H�S H���E���H�z�!1�H�81����fDH��H��H�D$���fD�	H�=��;��H��H��"���H�i�!H�5YH�81���
����+����AUATI��H���USH��(dH�%(H�D$1�H�\$H��L�L$I��H���p$��H�����H������H�|$u	H�D$H�<$H� �H��������u$H�<$H� ��H��!������H�D$����H� H�=�HD��#��H�t$H��H���k ��H�5��!L���!��I��H����L��H�5��q"��1�H��tH�����H��H�KH� uQ��L���w+��H����H��H�|�!H���!H�8�5��H�L$dH3%(�H��([]A\A]�fDH�K�f.�H���
����H�����H�$H�PH� tH�PH�[�!H�5�H�81����H���!H�5-H�81�������)��H�D$H�HH� tH�HH�$H�PH� tH�PH���!H�5�H�81����f.���UH�5��!SH���J ��H��tjH���}@��H���'��H��H��t?1�1�H��H���'����tH��H��[]�4��@H�uH�����H��H��[]�n4��H�g�!1�H�81����H���!H�5�H�81���
��PXH�5nH��H�l�!H�81���
��f���H��H�51�!���H��tH���(����H�H��H�Ѓ�����f���SH��H�5��!�L��H��t1�H�����H��@������H��[��h������ATI��USH��H�|$H�t$�-��1�H��H���U%��H��H��t-H�5��!L������H��tAH��H���~-��H�D$H��[]A\þH���%��H��H��u�H�$�!1�H�81���	������PXH�5�H��H�<�!H�81��	��f���ATI��USH��H�5��!�V��H��t0H��H�5WL��H���L&��H������H��H����.��H��[]A\����ff.����ATI��USH��H�5;�!���H��t)H��L��H�5H����%��H����>��H�E H��[]A\��3�����ATI��USH��H�5��!���H��t)H��L��H�5�H���%��H�����H�EH��[]A\������ATI��USH��H�5��!�V��H��t)H��L��H�5zH���L%��H����4��H�EH��[]A\������ATI��USH��H�5K�!���H��t)H��L��H�5?H���$��H���t4��H�EH��[]A\��C�����SH��H� H��0dH�%(H�D$(1�H�L$H��H�D$(P1�L�L$(L�D$ ���H�t$XZH��tH���X���H�t$H��tH�����H�t$H��tH�����H�t$ H��tH���/���H�T$(dH3%(H��uH��0[��a%�����U��H��H�5�S�8H���=��H��tJH��E1�E1�1�H��1�1�����H��H��H��!����H�5�H��H����#��H��H��[]�H�g�!H�5H�81�����fD��SH���c ��H��tH��H��!H��[�[��H���!1�H�81�������H��H��t+�N��H��t(H��H�W�!H���!H�8H�����@������H���!1�H�81��.��ff.���USH��H��H�-�!H�u�+��H��tH�5g�!H�����H��t1H��[]�H��H�m�W6��H�5��H��H���!H��H�81����H�B�!H�52H�81�������USH��H��H�-��!H�u�#+��H��t(H�5��!H���?��H��tQH���B��H��t1H��[]�H��H�m��5��H�5�H��H��!H��H�81��,��H�u�!1�H�81����H���!H�5�H�81�������ATH��!H�54UH�-��!SH�H�}����H� �!H�}H�5L�%�!H�I�$���H��!H�5T���H��H��Y��H�;H�5(������H������~&��H�5g"H���>H�;E1�1ɺ�\/��H�5="H����H�;E1�1ɺ�:/��H�5"H���ZH�;E1�1ɺ�/��H�5�"H���H�;E1�1ɺ�.��H�5�"H����H�;E1�1ɺ��.��H�;�H�u���H�5&�%��H�;�H�
���H�5�%��H�;�H�����H�5�%��H�;�H�4���H�5�h%��H�;�H�����H�5��M%��H�;�����H�~���H�5��2%��I�$H�}H�5����H��!H�5P���H��H�����H�;�����H�&�H�5����$��H�;�H�����H�5����$��H�;�H�`�H�5���$��H�;�H����H�5Y�$��H�;1�H�}�H�5���$��H�;1�H���H�5b�i$��H�;1�H�����H�5�Q$��H�;1�[H��]H�5�A\�5$��D�H�=@��/��H��H�
"����H�=���/��H��H��	"�
����H�=��/��H��H��	"�����H�=��/��H��H��	"����H�=��o/��H��H�}	"�D�����H����1����H�H��H�Ѓ��f���UH��SH��H��H�|$H�t$����H���1��H�|$H�7�� u!H��H�����Y
��H��H��[]��H�GHcЉ�H9�uH��1
��H��H��[]�H�����ff.�@��H��H�|$H�t$�I��H�|$H�7�� u!H��H�����
��H�D$H����H�GHcЉ�H9�uH��
��H�D$H���H�����ff.�@PX1�H��H���!H�81��G�����H��H�|$H�t$���H�|$�_��H�|$H� u!H���#����t�H���f.�H������D��UH��SH����t>�����1�Hc�����H��H�xH� tH�x����$����tH��H��[]�@�������"���f���H��H�|$H�t$����H�|$���H�|$H� u!H���x!�����t�H���f�H�������D��H��H�|$H�t$���H�|$�?��H�|$H� u!H��H����������t�H���H����e���D��SH��H����H�t$tZ������H�|$���H�|$����H�|$H� u!H�����V,����t+H���[��H���f.��[��������f���UH��SH����t>�Y����1�Hc��-��H��H�xH� tH�x����!����tH��H��[]�@���������f���H���!SH�5�H�8���H���!H���!H�5�H��H�H��
��H�#�!H�;�H�5o�H�H������=��H�;�H�����H�5��"��H�;�H�3���H�5����H�;�H�����H�5�����H�;�H����H�5{����H�;�H�"���H�5m���H�;�H�����H�5_���H�;�H����H�5H���H�;1�[H�#���H�59�g�����ATH�5��!US�\��H�����8H���&�������+*��H��H�C H�x�"���H�={�I���w��L��H��H���i���H�C H�x��!���H�=�I���H��L��H��H���:���H�C H�x �!���H�=vI�����L��H��H������H�C H�x(�~!���H�=OH�����H��H��H������H��[]A\�H�-�!H�5f�H�81�����H��!H�5H�81��t���@��ATUSH��H��H�5��!�%��H����H��H��tkH���;��L�e H��I�|$(H��t��,��H��t1H��H��[]A\�@H�D$�.��H�t$I�D$(H�E H�x(H��u�H�H�!1�H�81�����@H�@ H�x(���H�E H�@(H��H��[]A\�H�<�!H�5u�H�81����ff.���ATUSH��H��H�5��!�E��H����H��H��tkH���[��L�e H��I�|$ H��t�+��H��t1H��H��[]A\�@H�D$�-��H�t$I�D$ H�E H�x H��u�H�h�!1�H�81����@H�@ H�x ���H�E H�@ H��H��[]A\�H�\�!H�5��H�81����ff.���ATUSH��H��H�5��!�e��H����H��H��tkH���{��L�e H��I�|$H��t�+��H��t1H��H��[]A\�@H�D$��,��H�t$I�D$H�E H�xH��u�H���!1�H�81�����@H�@ H�x����H�E H�@H��H��[]A\�H�|�!H�5��H�81��;��ff.���ATUSH��H��H�5��!�
��H����H��H��tkH�����L�e H��I�|$H��t�5*��H��t1H��H��[]A\�@H�D$��+��H�t$I�D$H�E H�xH��u�H���!1�H�81��<���@H�@ H�x����H�E H�@H��H��[]A\�H���!H�5��H�81��[��ff.���ATI��H�5 �!US���H�����8H���F"����uH�k H�}t\L�����H��I���c��1�Hc��	��H��H�xH� u)H��L���.�����xhHc�H���
��H��[]A\��H�x��H���!H�5�H�81��B���H���!H�5�H�81��*���H���!H�5��H�81��r
��H�C�!1�H�81����ff.�@��USH��H�5�!dH�%(H�D$1����H�����8H���7!������H�} 1���'��Hc�H����1����H��H�@H� u`H�} H��H�$�'����xiH�H�4$�� tPH�CH�SH)�H9���H���t	��H��H�L$dH3%(��H��[]�fDH�C�f.�H��H�S���H�4�!1�H�81���H�y�!H�5wH�81�����H�a�!H�5��H�81�� ��H�
��MH�5bH�=��������ff.����USH��H�5��!�J
��H��tr�8H��������uK�q*��H�����H��H��t#H�s H���5��H��tH��[]����^��H�_�!1�H�81�����H���!H�5�H�81�����H���!H�5��H�81��K��ff.���USH��H�5�!�	��H��tr�8H���;����uK�)��H������H��H��t#H�s H���%���H��tH��[]�������H���!1�H�81��k�H���!H�5�H�81��S�H���!H�5�H�81��
��ff.���SH��H�O�W�wH�?�&����C1�[�ff.�@AUI��ATI��U1�SH���9��H��t=L��H��H���q����t=H��!H��L���{���1�H�5��H��H�����H��H��[]A\A]�f�H������H��H��[]A\A]�f.���USH��H��H�5��!�'��H����8H����������H�} ���H���tJ�����؃�����H��������H�{H��t7H�����H��t*H��[]�H�����u�H��t1H��u�H���!H�8��H�����H���!1�H�81���DH�A�!H�8�@H�I�!H�8�@H�9�!H�8�u����H��!H�8�e����H���!H�8�U���H���!H�5�H�81��9�H���!H�5��H�81�����PXH�5�H��H���!H�81���f���SH�54�!���H��tB�8H���`����u.H�S �H�z(t[�f�H���[H�H�Ѓ�����H�1�!H�5j�H�81�������SH�5��!�O��H��t#�8H��������u,H�C [H�x H�H�Ѓ��H���!H�5�H�81��������f.�PXH�5��H��H���!H�81��r��f���H��H�5A�!����H��t!H�@ H�x(H��t
H�������H���������H��H�5�!���H��t!H�@ H�x H��t
H���Q����H����a������H��H�5��!�L��H��t!H�@ H�xH��t
H�������H����!������H��H�5��!���H��t!H�@ H�xH��t
H��������H���������UH��SH��H�5<�!����H��t&�8H���h����uGH�{ ���t"H��H��[]�H�U�!H�5��H�81����H���!H�5j�H�81���H�%�!H�5#�H�81���@��SH��H�5��!dH�%(H�D$1��+��H��tG�8H��������uUH�{ H�t$�	��1҅�t�|$H҃�H�L$dH3%(H��uH��[�H���!H�5��H�81��W���
������ff.�f�AUA��ATA��USH��hdH�%(H�D$X1����H����H��H�l$H�D$�D$�������H�L$H���!�|$�D$H�l$H�D$ H�\$0D�d$8D�l$<H�L$@��H�H�!H�=���H�t$0H���t#���D$HH�߅����`����|$����1�H�T$XdH3%(H����H��h[]A\A]�H��!H�L$�D$�D$H�l$H�D$ H�\$0D�d$8D�l$<H�L$@H��D��D����H�߉D$H���t����T���z���H�������k����Z�����D��AUI��ATA��H��UH��SH��(H�5��!dH�%(H�D$1��
��H���}H��H�L$1�L��L�D$H�p�D���������H�|$@����H�D$A�H��tH�Ǩ����H�|$A����D������I��H����L��H���E������H�\$dH3%(H����H��([]A\A]�����H��H�D$���1�1�1�H��I�����I��H��t5L���u�����+���I���~����;��H�|$A���N���fD1�1ҾL���w���H�=;�!1�L��H�5w�!����L��I������M���!���H��!1�H�81����L���������	��H�=�!H�5v�H�81����ff.��AUI��ATI��UH��SH���h���H��tI1�D��L��H�����1ҾH��H�C���H�{H�CtH��tH��H��[]A\A]�H���j���H�[�!1�H�81������UH��H�8�S�H��(dH�%(H�D$1�H�L$L�D$��������H�|$@��tD���މ�����H��H��tDH��H�����H��t4H�T$dH3%(ujH��([]������މ����H��H��u�H�����H���!1�H�81��O��H�|$@��t
�h���b�����;�����U����/��ff.�@��SH��tFH���?�|����urH���!H�)�!H��H�8��1�H�5��H��H�����H��t-H��[����H��tH��H���!H�8���H�����H���!1�H�81���H�^�!H�5R�H�81��m�ff.�f���SH�4�!H�56�H���!H�H�;�;���H�l�!H�;H�5�H�H���!H�����H�	�!�����H�����H��H�5��H����H�;�����H�t���H�5v���
��H�;1�H�<���H�5i��
��H�;1�H�����H�5Y��
��H�;1�H���H�5J��
��H�;1�H���H�5:��x
��H�;H�+�H�5+�����H�;H��H�5����H�;1�H�P�H�5	��4
��H�;1�H���H�5���
��H�;1�H�����H�5���
��H�;1�H���H�5���	��H�;�H���H�5����	��H�;1�H�u���H�5���	��H�;�H���H�5���	��H�;1�H����H�5~��	��H�;�H���H�5m��k	��H�;1�H�����H�5���S	��H�;�H���H�5C��8	��H�;1�H����H�5��� 	��H�;�H���H�5��	��H�;1�H�Y�H�5�����H���!�@H�=��!�E���H���!��H�=2�!H�H��!�#���H�D�!H�[�����W����AUH�5S�!ATUSH���F���H���+H�����H��I���j��H��H���������L�-���A�����H�=��N�H��H��H�� ���H��L��������������H�{H�����H��H���~��H�{���H��H���j���C��tBv ��u��H�=��������u3�H�=����g���D�L�����P���fD�H�=X����4���f�H��L��[]A\A]�H���!H�5S�H�81��*�f.���AWI��H�5�!AVA��H��AUATUSH��H��(dH�%(H�D$1����H����L�d$L�l$L��D��M��L��H���H��1����L���.���H�|$uF1�H�t$H� tdH�v1�H������teH�L$dH3%(H��ueH��([]A\A]A^A_�f�L������H�T$H��t�H� uH�t$H��H� u�H���@H�R�{���H���!1�H�81������H���!H�5�H�81����ff.�@��AUI��H�(�ATE1�USH��(dH�%(H�D$1�H�\$H�l$I��H�����H�|$tH������I��1�H�|$tH������H��H�5A�!L���9���H��t81�H��L��H�����H��t@H���7�H�L$dH3%(u#H��([]A\A]�H���!H�5=�H�81������H�p�!1�H�81���ff.����AUI��H�8�ATE1�USH��(dH�%(H�D$1�H�\$H�l$I��H�����H�|$tH������I��1�H�|$tH������H��H�5Q�!L���I���H��tR1�H��L��H���d�H��tZH���G��H�5g�H��H��� ���H��H�L$dH3%(u#H��([]A\A]�H���!H�53�H�81��
����H�f�!1�H�81����f���AUATI��USH�����H�����H��t>H��L�-��!H�����L��H��L���j�H��H���?��H���	��H��H��u�H��H��[]A\A]Ð��H�����H���f���SH���H��dH�%(H�D$1�H��H���%���H�<$t~H����H�<$H�GH� uM�H�5T�H����€���t:H��H�=`�1�����H�L$dH3%(u0H��[�fDH�G�f�������@��������ff.�@��UH��SH��H�\$H�t$H�����H��H������H�|$H� ucH���:���H��H��tlH��H��!H�����H���H����uDH�������tBL�Q�!H��1�1Ҿ������H��H��[]ÐH��f.�H������H�7�!1�H�81�����PXH�5��H��H�<�!H�81����f���ATH�5c�!UH��S�Y�H��t<H��H���I��H��I���.�H��H������L��H��[H��]H�=��1�A\���������H��H�5�!��H��tH������H��H�������N���ff.���H��H�5��!��H��tH����H��H���������ff.���UH��H��SH����t;�����H�5m�!H���e�H��t)��H����H���[]�f.��{����������f�PX1�H��H���!H�81��G�����UH��SH��H�|$H�t$�t��H��H���i��H��t<H���,��H�5շ!H������H��t>��H�����H��t*H���_�H��[]�H�9�!H��H�54�H�81�����X���H�A�!H�5��H�81������UH��SH��H�|$H�t$����H��H�����H��t<H�����H�55�!H����+�H��t>��H�����H��t*H�����H��[]�H���!H��H�5��H�81�������H���!H�5)�H�81������H��H�5��!��H��tH���_���t"�H���H�Z�!H�5��H�81�����T���@��SH���3�H��tH��H�d�!H��[�K��&���fD��H���!SH�5��H�H�k�!H�8�[�H�|�!H��!H�5��H��H�H��8�H���!H�;H�5w���H����H�;�����H�����H�5����H�;1�H�x���H�5������H�;1�H��H�5������H�;�H�5���H�5t����H�������ƒ����8H���><�FH�xH�5�����H�;1�H�j���H�5��^���H�;1�H����H�51��F���H�;1�H�:���H�5���.���H�;�H����H�5������H�;�H����H�5U����H�;�����H�����H�5������H�;�����H���H�5������H�;�H��H�5�����H�;�����H�x���H�5�����H�;1�H���H�5r��t���H�;1�H����H�5���\���H�;�H�5K����H�;�H�5B�����H�;�	H�59�����H�;�H�5/����H�;��H�5'����H�;�H�5"����H�;���H�5����H�;[�H�5��k��H������&���H��t6H������H�f�!H�8����fDH�A�!H�8���f�H��!H�8�����H��!H�8�����H���!H�8����H���!H�8�������������AWI��AVAUATU1�SH��H��L�sH������ZH����H9�~\H�ռ!H��L� �b��H��H� ��M��L��H�<�L��L�,�H���B���H����H��� u�H�CH9��H�5��!L���I�I��H���9H�H�5k�!1�L�kH�xH���I�$H�@H�^fDH����H9�}]H�����H��H� tp���L��H�<�H����L�����H��I����L���������H��� u�H�CH9�|�H��H��[]A\A]A^A_�D�K��H�C ���f��;��H�C �H���!H��H�(�#��H��H� tH���H��J�<+���H��H�53�H��H�A�!H�81��W���b��H���!1�H�81��?������H�[ �H���!H�5�H�81����ff.����UH�54�!SH��dH�%(H�D$1���H����1�H��H���$��Hc�H����1����H��H�@H� uQH��H��H�$������~[H�H�4$�� tBH�CH�SH)�H9�jH����H��H�L$dH3%(unH��[]�H�C�f.�H��H�S���H�t�!1�H�81��0��H���!H�5�H�81����H�
����H�5�H�=H�����@��AUATUSH��H������H�������H��ƒ���tw��urH��H9�t\H�5د!H���p�I��H��t[L�-�!H��I�u�%���H��tnH�5��!H���A�H��t/H���
��H��t:H�C L���C���H��H��[]A\A]�H���-��H�Ƽ!H�5�H�81��%��H�V�!1�H�81����H��I�]���H�5ǸH��H�ջ!H��H�81��������ATUSH��H�� dH�%(H�D$1�H�B H�L$H�E�H�D$1�����u!H�T$dH3%(H����H�� []A\ÐH�|$L�d$���H��H�D$����1�1�L��H��H���R��H�T$H�S H��tH���l��f.�1�1ҾH��������L��H�����H��I��H�D$H�C �+�M���Q���H�#�!1�H�81��������f.�PX1�H��H���!H�81�������SH���S�H��tH��H�ĭ!H��[�K�����fDPXH�5]�H��H���!H�81��b��f���ATUH��H�5�!S��H��t2H��H�����H�ߺ����H��I���6�L��t�*��H��[]A\�������H�9�!1�H�81����D��AUH�5�!ATUSH����H��tpH��I���V���Ņ�xPHc����I�Ņ�t-1����L������H�����L��H���(��9�u�H��L��[]A\A]�fDH��[]A\A]������ff.����USH��H��H�����H�5d�!H��H����H����H��H��������tH��H��[]�f�H��!H�8t3�N�H���V���H�=��H��1����H��1�H��[]�f�H���!��H�=��H��0����H������H�;�H���H��1��:���H�;A�m1�H�
g�H�v�������_���H�۸!H�5*�H�81��:��f.���USH��H��H����H�5D�!H��H�����H��t"H��H���i����x+��H�H��H��[]���H�k�!H�5��H�81��������D��ATUH��SH��H���*���H��I���/�H�5Ȫ!H��H���]�H��tH��L��H�������t H��[]A\�H���!H�5F�H�81��V��������UH��H�5q�!SH����H��t$H��H����H��H���l����t"H��H��[]�H���!H�5��H�81�����!������H��H�5�!��H��tH�����H��t$H��H�����H�G�!H�5��H�81�����������UH��H��SH��H��dH�%(H�D$1�����H�5��!H��H�$�5�H��t4H�1�H��H�@ H�x���H��t7H�L$dH3%(H��uH��[]�H���!H�5�H�81�������:���f.���UH��H��SH��H��dH�%(H�D$1��(��H�5�!H��H�$��H��t3H�1�H��H�@ H�8���H��t7H�L$dH3%(H��uH��[]�H��!H�5e�H�81��u�������ff.���H��H�5��!��H��tH�H�@ H�xH��t!H�����H���!H�5�H�81�����A������H��H�51�!���H��tH�H�@ H�8H��t!H����H�h�!H�5��H�81�������f���UH��H�5�!SH���w�H��t$H��H����H��H���,�����t"H��H��[]�H��!H�5V�H�81��f��������H��H�5��!��H��tH�����H��t$H��H���.�H���!H�5�H�81�����A������UH��H�51�!SH�����H��t$H��H�����H��H���l����t"H��H��[]�H�W�!H�5��H�81����������H��H�5Ѧ!�l�H��tH���o�H��t$H��H���~�H��!H�5V�H�81��f��������UH��H�5��!SH����H��t'H��H���7��H�H��H�����H�CH��H��[]����fD��H��H�51�!���H��tH������H��H������^���ff.���AWAVAUATUSH��H���V���H��I�����H��I�����H��I���5���H��I������H��H�����H��M��M��AWL��H��H��H�=��1��,�H��[]A\A]A^A_�ff.�f���UH�5d�!SH�����H��t=H���-��H���U�H��H��tUH�EH��H�@H�0����H�߅�t#H��[]�8�H�q�!H�5��H�81��������H���!1�H�81���������ATI��USH���t=H��H�H��x\H�5��!L���S��H��t0H��H��������tH��[]A\��H���H��H����~���H�ױ!H�5&�H�81��6��H�g�!H�5��H�81����ff.���H��H�51�!����H��t3H�H�8�,�H�@H�x
H�DH���H��H���4���?���ff.�@��UH�5ԣ!SH���j��H��t5H�����H�����H��H��tMH��H���r�H�߅�t#H��[]��H��!H�58�H�81��H���s��H�t�!1�H�81��0���[���ff.���UH�5D�!SH������H��t5H���
���H���5�H��H��tMH��H�����H�߅�t#H��[]� �H�Y�!H�5��H�81��������H��!1�H�81�������ff.���H��H��t+����H��t(H��H�ǯ!H���!H�8H�����@�����H���!1�H�81��>��ff.���USH��H�|$H�|$���H�|$�M��H�|$H� uoH��H�5~��/�H��H��tpH��������x�1�1�1�H�����H��H����H��t0H��!H��H�١!H�8�a��H��[]�f.�H��H���!1�H�81��w�������8�K��H�5!�H��H���!H�81��P����USH��H��H�-��!H�u���H��tH�5W�!H������H��t1H��[]�H��H�m���H�5ȪH��H�֭!H��H�81�����H�r�!H�5��H�81��������USH��H��H�-�!H�u�S�H��tAH��H�5Ԡ!�o��H��H��tTH�xA�z��H�
{����H��H��[]�H��H�m���H�5"�H��H�0�!H��H�81��C��H�̭!H�5�H�81��+��ff.���SH�<�!H�51�H��!H�H�;���H�,�!H�;H�5�H�H�@�!H�����H�)�!H�5�H��H����H�;�����H���H�5B���H�;�H���H�51���H�;1�H�m�H�5F��q�H�;1�H�E���H�5"��Y�H�;H��H�5����H�;1�H�����H�5��+�H�;1�H����H�5���H�;�H�T���H�5����H�;1�H�����H�5w����H�;1�H����H�5�����H�;�H�Y���H�5����H�;1�H��H�5���H�;�H�v���H�5��z�H�;1�H����H�5���b�H�;�H�����H�5��G�H�;1�H�+���H�5}��/�H�;�H� ���H�5m���H�;1�H�����H�5a���H�;�H�M�H�5P����H�;1�H���H�5�����H�;�H�j�H�5<���H�;�H���H�5k���H�;�H�T�H�5,��x�H�;�H��H�5���]�H�;1�H�a�H�5l��E�H�;�H��H�5\��*�H�;�H���H�5M���H�;1�[H�2���H�5Z���fD��H���!H�Ð��H��dH�%(H�D$1����H��H�$�7��H�<$����H�$H�T$dH3%(uH�������USH��H��H�5��!L�GH�oH��tH�;H��H��[1�]�7����H�=��L�D$�
�L�D$H��H�;�!�f���S�6��H����1�H������H�����H��H�����N�H��u�H��[�@AUI��ATI��USH��H����H��H����L��H�����L�-¥!H��H��tzI�EH���H����H��H��tKH��� �H�{�����H��H��H��HD�H����I�}������&@H��tcH������H��I�}t]���H��t1H��H��L��[]A\A]�q���L�-�!I�EH��u`H��t!���1�1����H����I�}u߻H�-j��1�H�����H��H��1������H��u��q���f��H�����H��1��W���H���������������H�57�H���D�����ff.�@��S���(H�5���%��H��H���z��H��[�D��SH�����H��[�j�f.�����H��t���������Hc�H���!��H��H��H��t
����D�����S1�H����H��[H���U���D��Hc�1��r��f���H�m�!SH��H�H�0H9�tH��t@H��t
H��[�D1����H��!�H�=��H���H��[�@�����H��!�H�=��H��f�H��[��AVAUATUS�����?��D�$6H����H��A��I���!A�|$H�5Q�H�����H�H����E��tRE�M�L��E1�M�H����	f�H�H���7@�����2B��H����B�DI��L9�u�Ic�H�H��tD�e[D��]A\A]A^�fDH��t�D�!D��[]A\A]A^�A�������ff.����H��H��H�=?�!�:�f.���H��dH�%(H�D$1�H�t$�D$����|$��uH�T$dH3%(u
H����T����ff.�@��AUATUSH��H��t}H����A�ą�xNHc����I��E��t+1�@��H����˿��H���#��L��H����A9�u�H��L��[]A\A]�DH��!H�8��H��[]A\A]����H��!A�H�8u�H���!��H�=��H��-�H��	�H�=����H�;A�|1�H�
2�H�����!��Y���@H�I�!��H�=!�H����H���H�=&���H�;A�|1�H�
��H������������AUATUSH��H��t}H����A�ą�xNHc����I��E��t+1�@��H����[���H�����L��H���8�A9�u�H��L��[]A\A]�DH���!H�8��H��[]A\A]���H�q�!A�H�8u�H�>�!��H�=�H���H��	�H�=���H�;A�}1�H�
��H������Y���@H�٠!��H�=��H��X�H���H�=���?�H�;A�}1�H�
]�H�����L��������AUATUSH��H��t}H����A�ą�xNHc��6��I��E��t+1�@��H������H���3��L��H�����A9�u�H��L��[]A\A]�DH�!�!H�8��H��[]A\A]���H��!A�H�8u�H�Ο!��H�=��H��M�H��	�H�=���4�H�;A�~1�H�
R�H�����A��Y���@H�i�!��H�=A�H����H���H�=F����H�;A�~1�H�
��H�;������������ATI��H�=����USHc�H��H��dH�%(H�D$1�H�T$�D$�B�H��H��tH�xH� u<H��L������L���)���|$��u,H�L$dH3%(H��uH��[]A\�DH�x�����P����AWAVA��AUATA��UH��SH��H��dH�%(H�D$1��D$H��t=H��D��D��H������A��H�L$dH3%(D����H��[]A\A]A^A_������t�A��H�\$E�f�M�I��A��H��L��H�=���6���T$����H�H�ց� u<H����Hc�A��H9�����~AA9�|TH��t'H�pH������U���fDH�P��f.�H�p��f.�H�=y�1��R���e���DD��H�=��1��7���J���f��A��������������H������ff.���AVAUATI��US��L��H��@dH�%(H�D$81�H��!�D$�0���H����H��H��u(��H�L$8dH3%(�FH��@[]A\A]A^�DL�l$H�=ܜ!L��L�������T$I�ƅ�����H�t$ L��H�l$ H�H�=��!L�t$0H�Ѓ�H�D$(���H�ËD$��upL����H����L�������t21��U���I�$H�xxH�ٜ!�0�ʽ��H���1����#���@�L��D$����D$����fD��.��H�=?�1������s�������H�=��1����L��������f����fD1�L���N�������O��ff.�@��H��1�dH�%(H�D$1�H���!H�01�����H��H�$�y��H�$H�L$dH3%(uH�������ff.���H�e�!SH��H�0����uH��[�H��[�������PXH���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�dH�%(H�D$1�H��$�H���$H�D$H�D$ �D$0H�D$�&�H�����ff.���AU�ATUH��SH������� ���H����I��1��HH����H9�}NH��H��H����I��H��!L��H�0�0��H��t3L���C��L��H���(���H�E�� u�H�EH9�|�H��L��[]A\A]�H�5A�!L����H�j�!H�5�H�81��1���H�R�!1�H�81�����ff.���SH��H�����t�����t.H��[Ð1������u�H��!H�5	�H�81��Ͳ��D������u�H�ۗ!H�5��H�81�袲��f���H���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�dH�%(H�D$1�H��$�H���$H�D$H�D$ �D$0H�D$�(�H�L$dH3%(uH�������ff.���USH���Q���,����w�袷��H�=
����H���!H��H��T���H�=���õ��H�;H�5
�H���1���H�=��蠵��H�;H�5��H�����1��W��H�����H�;H�5��H������H�;��B H�5������H�;�H�5������H�;�H�����H�5�����H��!H�;H�5��H����H�-�!H��H�E�~��1�E1�1�H�5��1����H��!�����H�~�E1�E1�1�1��蝹��H�~�!�����H�=��!H����H�;1�H�m�H�5k����H�;�H���H�5V����H���!H�;1�H�5E�����H��!H���H���!H��߸����=����M�<��H�5�������H��!H�����t0�S�1�H�l�H����H���!H�<H��(����H9�u�H�=����H�=�����H�=H�����H�=�����H�=`��[����6�������L���'�������͹������莯����������������耴��H��[]�ջ��D�H�=ď���H��!����H�}H�5��1��Ѯ��H�}H�5��1�迮��H�`�!��H�5��H�81������H�,�!H�5��H�81�����f.����H������������AWI��AVAUATU1�SH��H��L�sH���E���ZH����H9�}\H��!H��L� 袯��H��H� ��药��L��H�<�L��L�,�H�����H����H��� u�H�CH9�|�H�5Q�!L�����I��H���$H�xH�5��!1�L�k���I�D$�Q@H����H9�~RH������H��H� th��L��H�<�H���������L��H��賸������H��� u�H�CH9��H��H��[]A\A]A^A_��蛮��H�C ����f�苮��H�C �H��!H��H�(�s���H��H� tC�b���H��J�<+�E��H��H�5��H��H���!H�81�觬��H�ȓ!1�H�81�蔬������H�[ �H��!H�5�H�81��q����PX1�H��H���!H�81��W������SH���s���H��tH��H�Ć!H��[������fD��UH��H�5��!SH������H��t)H��H��藿�������H��H���W�����t"H��H��[]�H�b�!H�5<�H�81�����L���ff.����AUH�53�!ATUSH���f���H����H��I���B���Ņ�xLHc��T���I�Ņ�t)1���L����k���H�����L��H������9�u�H��L��[]A\A]�fDH�A�!H�8tH��[]A\A]�4��@H��!��H�=٤H����H���H�=-��g��H�;A��1�H�
N�H�Ӥ��t���H�;�!H�5�H�81�蚪��f.���UH��H��SH��H��dH�%(H�D$1�踬��H�5�!H��H�$�%���H��t-H�x1�H��袵��H��t7H�L$dH3%(H��uH��[]�H���!H�5��H�81������������PXH�5h�H��H�|�!H�81����f���H��H�5a�!蜾��H��t
H�xH���z�����D��UH��H�51�!SH���g���H��tH�0H��H���4��H�H��H��[]��r���f���H��H�5�!�,���H��tH�8H�������F���fD��H��H��t;H��H�5y�!H�=�!�}���H��t'H��H���!H���!H�8H��黮���#�����H��!1�H�81��ި��ff.���USH��H��H�-��!H�u�S��H��t6H�57�!H���o���H��t_H�5�!H�=\�!H�����H��t1H��[]�H��H�m����H�5-�H��H�;�!H��H�81��N���H�o�!1�H�81��;���H�ď!H�5��H�81��#�����SH�<�!H�5��H��!H�H�;���H��!H�;H�5��H�H�@�!H��ط��H���!H�5z���H��H�����H�;�����H�0���H�5B����H�;1�H�(���H�5�����H�;�H����H�5���q��H�;1�H�����H�5��Y��H�;�H�����H�5:��>��H�;1�H�����H�5M��&��H�;�H�����H�5=����H�;[�H����H�5-�����f.�D����fD��H�������w����SH�� H��!H�|$H�3dH�%(H�D$1�H�D$���H�������H�|$@��tW@��uaH��H���H��t������t@��t�����
t:��t5H�D$H�L$dH3%(��H�� [�fDH�����t��D���H�|$H�D$�<��H�|$H���_�����tWH�t$H��t0H�;H���!肫���H�|$H�5��!����H�D$H���q���H�*�!H�5U�H�81�艥�����H�݉!1�H�81��q������UH��AWAVL�E�AUL�m�ATL��A�
SH��H�{�H��8dH�%(H�E�1���������H�}�@����I��H��?L�m�H�M�I�H��L��L1�H)���PH��H��H9�u�H�5�!H��衹��H�E�H���rH�¾L���d���H���ZM����H��H�]�dH3%(�5H�e�[A\A]A^A_]�D@��u
H������MH�Ɔ!H�0���H�����tVH�57!H������H�E�H����H�}�H�5!��H����H�}�H�����H���b�����L���p���H�5�~!H��豸��H�E�H����A���~@A��
��A���H�E�H�pH� tH�pH�}�薪��������;@E���JH�U�H�
�� ��H��H�z�΃�H���
��H�������H���!1�H�81��>���fDH�}�@���R�U���A�����D�����
�����1�����I��H=�����L�m�H=��zL�m�H�@H��H�E�H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�|$I���H�}�A�E1�L��L������H�5V}!H��A���+���H�E�H����L��H��D����L��H���2���E�������fDH�}��蒮���k���DH�E�H�pH� tH�pH�}��j������@������D���A�����H�U�H�
�� t,H�zHcω�H9�utH�zH���R���H��������C���@H��H�z�΃���H�zHcω�H9�u9H�z����H��L���o���I�������b���H�ۈ!H�5�H�81��:����E���H���!D��H�5
�H�81�����H�s�!H�5�H�81��b����M������PX1�H��H�A�!H�81��נ�����SH���C��H��tH��H��{!H��[�k������fDPXH�5Y�H��H��!H�81�肠��f���H��H�5a{!�<���H��t#�H1҅�~H�H����HE�H��H������ff.�@��H��H�5{!���H��t/H��1��ztH����H�
H�9u�zH�H������C�����H��H�5�z!蜴��H��t�xH�H�����������UH�5�z!SH���j���H��t7H���
���H��H��t?��H������H��H�����H��H��[]�H��!H�5�H�81��F����Q������H��H�5!z!���H��tH���_��H��H�H�D��n���ff.���H��H�5�y!輳��H��t H������P��H�H����H�H�D��"���f���UH��H�5�y!SH���w���H��t>H��H�����H��tH��H�������tH��1�[]�f.�H���[]����ff.�@��UH��SH��H��H��H���!H�0����H��u	H��1�[]�H��H�5y!���H��H��t4H�5�x!H���ʲ��H��tH��H���z����u�H���[]��5���H�^�!H�5��H�81�轝��ff.�f���AUH�5�x!ATUSH���f���H��tZH��H�������X��I��Lc�L������H��H��I���A���9�u+L��L������L��H���g��H��H�D[]A\A]����L���J��H���!1�H�81��������UH��H��SH����t;�&�����H�5�w!H��赱��H��t)��H�������H�H��H��[]����˳����������f���ATI��H�5�w!USH���f���H��t?L��A��H��u%萳����H���f�����tH��[]A\�f.�苣�������b���H�ۃ!H�5�H�81��:���f.���ATI��H�5w!USH�����H��t?L��A��H��u%������H���F����tH��[]A\�f.������������H�[�!H�5��H�81�躛��f.���ATI��H�5�v!USH���f���H��t?L��A��H��u%萲����H���v�����tH��[]A\�f.�苢�������b���H�ۂ!H�5�H�81��:���f.���UH��H��SH����t;�F�����H�5�u!H���կ��H��t.��H��H���#����tH��H��[]�D����������H�[�!H�5��H�81�躚��f.���UH��H��SH����t;�ơ����H�5}u!H���U���H��t.��H��H�������tH��H��[]�D�k��������b���H�ہ!H�5�H�81��:���f.���AVI��H��AUATUSH�� dH�%(H�D$1�H��L�L$L�D$�����������H�|$E1�H�|$A��@������H�<$A��@��ut述�����(��H��H����D��D���H��������t{H��H�nt!L���6���H�\$dH3%(utH�� []A\A]A^�f�E1�E1�H�<$@��t��k��������;���A����fDH�|$E1�@��t��G���H���զ��H�^}!1�H�81������ff.�f���AVI��H���AUATUSH�� dH�%(H�D$1�H��L�L$L�D$蔯����������H�|$E1�H�|$A��@����衟��H�<$A��@��ut�o���������H��H����D��D���H���<�����t{H��H�s!L�����H�\$dH3%(utH�� []A\A]A^�f�E1�E1�H�<$@��t������������A����fDH�|$E1�@��t��G���H��腥��H�|!1�H�81�袗��譵��ff.�f���UH��H��wS1�H��(dH�%(H�D$1�H�L$L�D$�K���H�|$H��upH�59r!H������H����H��y!E1ɉ�H��H�|$H�
A��E1�1�貥����t&��uE�H�\$dH3%(u[H��([]�D1���@@��t
������끐�ۭ�����t���H�{!1�H�81�豖��H�:~!H�5e�H�81�虖��褴��@��UH��H�yS1�H��dH�%(H�D$1�H���R�����t]H�5Fq!H������H��t}H�
y!E1���H��H�
1�蠤����t$��uH�H�\$dH3%(uKH��[]�1���@H�<$@��t�!������D�����H�8z!1�H�81��̕���'����ҳ��f���ATUSH��H�BxH��dH�%(H�D$1�H��肬����tuH��H�5sp!�N���H��H����H��躣��H��H����H���֟��Hc�H9�����H�����H��H�T$dH3%(H���]H��[]A\�DH�<$@��un������H��H�5�o!�ȩ��H��H�����tW����
�f�������H���G���H��H���]���H�y!1�H�81�訔����˛������H���Ȼ��D�`��DI�1�A��Ic�����H��H�pH� tH�pH���3���A9��
�������uA1�H������1�Hc�I���5���H��H�pH� tH�pH������A9������@���H��v!��H�5ԩH�81����H�j{!H�5��H�81��ɓ���Ա��H���̓��ff.����UH��SH��H����tk��uVH��H���H��tb�؃���tX��tS�����
t0��t+��u?H��1�1����H��H��H��H��[]����fDH����H����H�����u�H��u!H��H�0赸��H�����u�H��y!H�5��H�81����D��ATH�5�m!USH��詧��H����I���H��H��H����H�}u!L��H��H��ǻ��������t:��ue�؃���tkH��tu���|H�{[H��H�]m!]A\�%���DH�����u�H��tH��u�H�y!H�8��H��v!H�8�@H��v!H�8�@H��t!H�8�@H��v!H�8�@H�Yw!H�8�y���H��蹟��H�Bv!1�H�81��֑�����H�Zy!H�5��H�81�蹑��f���AUATUSH��H��H������辘����H�5ul!H���M���I��H�������I��H������L��H�����������tN�����؃�����H��������H�{H��L��H��k![]A\A]鿖���H�����u�H��t)H��u�H��w!H�8���ۧ�����8���@H�au!H�8�@H�iu!H�8�@H�Ys!H�8�y����H�9u!H�8�i����H��u!H�8�Y���L���9���H��t!1�H�81��V���H��w!H�5
�H�81��>���ff.���AUATUSH��H��H�������>�����H�5�j!H���ͤ��I��H����l��I��H������L��H����������tN�����؃�����H��������H�{H��L��H�zj![]A\A]�?����H�����u�H��t)H��u�H�-v!H�8���[������8���@H��s!H�8�@H��s!H�8�@H��q!H�8�y����H��s!H�8�i����H�Yt!H�8�Y���L��蹜��H�Bs!1�H�81��֎��H�_v!H�5��H�81�辎��ff.���H��H��t+讕��H��t(H��H��p!H�xi!H�8H���<���@����H��r!1�H�81��^���ff.���H����H��tH���H�u!H�5[�H�81��!������AUATUSH��H��H������H�5�h!H��I���Ţ��H���I���d���H��H����H��p!L��L��H��H�����H������tB��um�؃���tsH��t}����H�{H��H��H�rh![]A\A]�7����H�����u�H��tH��u�H�%t!H�8�H��q!H�8�@H��q!H�8�@H��o!H�8�@H��q!H�8����H�ir!H�8�q���H���ɚ��H�Rq!1�H�81����H�ot!H�5��H�81��Ό��ff.���AWAVAUI��H� oATUSH��8dH�%(H�D$(1�H�L$H��H�D$(P1�L�L$(L�D$ �d���H�|$^AX@����荓����H�|$E1�H�|$A��H���E1�E1�贿��H��H����H��L��D��E1�jM���H��蜥��ZYH��tlH��f!H��L��賑��H�T$(dH3%(ueH��8[]A\A]A^A_�@�ۢ�����i���@軥��H�|$ E1�I��H���m���补��I���`���H���a���H��o!1�H�81��~���艩��f���ATUH��H��S�]���I���վ��H��t(L��H��H���2�����tH��H��H�!f![]A\����3�H�����H�to!1�H�81��������ATUH��H��S���I���e���H��t(L��H��H���ҟ����tH��H��H��e![]A\�x������H���{���H�o!1�H�81�蘊�����USH��H��H���{���H�5de!H��H���9���H��tH��H�����H��H�[]H�D���fD��USH��H��H���+���H�5e!H��H�����H��tH��H��虰��H��H�[]H�D��V�fD��AUATUSH��H��H���ף��H�5�d!H��I��蕞��H���I���4���H��H����H�il!L��L��H��H��`���������tC��un�؃���ttH��t~����H�{H��H��H�Cd![]A\A]�����H�����u�H��tH��u�H��o!H�8�H��m!H�8�@H��m!H�8�@H��k!H�8�@H��m!H�8����H�9n!H�8�p���H��虖��H�"m!1�H�81�趈��H�?p!H�5j�H�81�螈��ff.���AVAUATUH��SH��H���v���H��I���k���H�5Tc!H��I���)���H���
I���Ȼ��H��H����H��j!L��L��L��H��L��a���������t<��uo�؃���tuH��t����H�{[H��H��b!]A\A]A^雍��H�����u�H��tH��u�H��n!H�8���H�Ql!H�8�@H�Yl!H�8�@H�Ij!H�8�@H�)l!H�8�����H��l!H�8�o���H���)���H��k!1�H�81��F���H��n!H�5��H�81��.���ff.���AUATUSH��H��H������H�5�a!H��I���ś��H���I���d���H��H����H��i!L��L��H��H��P���������tC��un�؃���ttH��t~����H�{H��H��H�sa![]A\A]�8����H�����u�H��tH��u�H�%m!H�8�H��j!H�8�@H��j!H�8�@H��h!H�8�@H��j!H�8����H�ik!H�8�p���H���ɓ��H�Rj!1�H�81����H�om!H�5��H�81��΅��ff.���AUATUSH��H��H��觟��H�5�`!H��I���e���H���I������H��H����H�9h!L��L��H��H�萎��������tC��un�؃���ttH��t~����H�{H��H��H�`![]A\A]�؊���H�����u�H��tH��u�H��k!H�8�H��i!H�8�@H��i!H�8�@H��g!H�8�@H�ii!H�8����H�	j!H�8�p���H���i���H��h!1�H�81�膄��H�l!H�5:�H�81��n���ff.���AVAUATUH��SH��H���F���H��I���;���H�5$_!H��I�����H���
I��蘷��H��H����H��f!L��L��L��H��L��Q���������t<��uo�؃���tuH��t����H�{[H��H��^!]A\A]A^�k���H�����u�H��tH��u�H�]j!H�8���H�!h!H�8�@H�)h!H�8�@H�f!H�8�@H��g!H�8�����H��h!H�8�o���H�����H��g!1�H�81�����H��j!H�5ʘH�81����ff.���AVAUATUH��SH��H���֜��H��I���˜��H�5�]!H��I��艗��H���
I���(���H��H����H�]e!L��L��L��H��L��Ѷ��������t<��uo�؃���tuH��t����H�{[H��H�7]!]A\A]A^���H�����u�H��tH��u�H��h!H�8���H��f!H�8�@H��f!H�8�@H��d!H�8�@H��f!H�8�����H�)g!H�8�o���H��艏��H�f!1�H�81�要��H�/i!H�5Z�H�81�莁��ff.���AVAUATUH��SH��H���f���H��I���[���H�5D\!H��I������H���
I��踴��H��H����H��c!L��L��L��H��L��A���������t<��uo�؃���tuH��t����H�{[H��H��[!]A\A]A^鋆��H�����u�H��tH��u�H�}g!H�8���H�Ae!H�8�@H�Ie!H�8�@H�9c!H�8�@H�e!H�8�����H��e!H�8�o���H������H��d!1�H�81��6���H��g!H�5�H�81�����ff.���AUATUSH��H��H�����H�5�Z!H��I��赔��H���I���T���H��H����H��b!1�L��L��H��L��.���������tA��ul�؃���trH��t|����H�{H��H��H�aZ![]A\A]�&���fDH�����u�H��tH��u�H�f!H�8�H��c!H�8�@H��c!H�8�@H��a!H�8�@H��c!H�8����H�Yd!H�8�r���H��蹌��H�Bc!1�H�81���~��H�_f!H�5��H�81��~��ff.���AVAUATUSH��H��虘��H�5�Y!H��I���W���H���=I�����I��H������H��H���0H�a!L��L��H��L��L�辔��������tq����؃����2H���p����H�{L��H��X!贃��I�ĉ؃����#H���I��uzH�-c!H�8�r�H�����uGH����H����H�{L��H��X!�Q���I��H���H��u%H�Hd!H�8�H�{L��H�RX!����I��H�{H��H�<X!����[L��]H��A\�A]1�A^�}���DH��a!H�8�y���f�H��a!L��H��W!H�;跂��H�;I����H��_!H�8L��H��W!菂��I�������H�y_!H�8�[����H�yc!H�8�����H�Ia!H�8�@H�9a!H�8�+����H�!a!H�8�����H��a!H�8�L���,���H���$���H��`!1�H�81��A|��H��c!H�5��H�81��)|��L����@��AUATUSH��H��H������H�5�V!H��I���Ő��H���I���d���H��H����H��^!L��L��H��H�萧��������tC��un�؃���ttH��t~����H�{H��H��H�sV![]A\A]�8����H�����u�H��tH��u�H�%b!H�8�H��_!H�8�@H��_!H�8�@H��]!H�8�@H��_!H�8����H�i`!H�8�p���H���Ɉ��H�R_!1�H�81���z��H�ob!H�5��H�81���z��ff.���AUATUSH��H��H��觔��H�5�U!H��I���e���H����I������H��H����L��L��H�����������t=��uh�؃���tnH��tx���H�{H��H��H�U![]A\A]����f�H�����u�H��tH��u�H��`!H�8��H��^!H�8�@H��^!H�8�@H��\!H�8�@H�y^!H�8�@H�_!H�8�v���H���y���H�^!1�H�81��y��H�a!H�5J�H�81��~y��ff.���AUATUSH��H��H���W���H�5@T!H��I������H����I��贬��H��H����L��L��H�����������t=��uh�؃���tnH��tx���H�{H��H��H��S![]A\A]�~��f�H�����u�H��tH��u�H��_!H�8��H�Q]!H�8�@H�Y]!H�8�@H�I[!H�8�@H�)]!H�8����H��]!H�8�v���H���)���H��\!1�H�81��Fx��H��_!H�5��H�81��.x��ff.���ATUSH����uZH�����tQH��ƒ���tD��u?H��H9�t/H�5�R!H��讌��I��H��t-H���Α��L��H���s���H��tH��[]A\�H���}�����H�2_!H�5]�H�81��w�����S���H�GZ!H�H���^H�t[!H��\!H�5��H�;H��S���H��[!H�;H�5m�H�H��^!H��0���H��Y!H�5R��H��H��ׄ��H�;�����H����H�5�W���H�;�H����H�5�Y���H�;�H�����H�5yY�Ƙ��H�;1�H����H�5�讘��H�;1�H�b��H�5ӌ薘��H�;�H����H�5���{���H�;�H�����H�5���`���H�;�H�1���H�5���E���H�;1�H�I�H�5���-���H�;�H�n���H�5\�����H�;�H��H�5C����H�;�H�h�H�5*��ܗ��H�;�H���H�5����H�;�H�R�H�5�覗��H�;�H���H�5�苗��H�;�H�\�H�5ދ�p���H�;�H���H�5Ƌ�U���H�;�H�V�H�5���:���H�;�H���H�5������H�;H���H�5o|�i���H�;�H�j�H�5k����H�;�H����H�5�d�Ӗ��H�;1�H���H�5%|軖��H�;�H����H�5#�蠖��H�;H��H�5����H�;1�H����H�5���r���H�;1�H�6��H�5��Z���H�;1�H����H�5ӊ�B���H�;�����H�S��H�5Ċ�'x��H�;�����H����H�5���x��H�;�H���H�5����w��H�;�H�r�H�5x���w��H�;�����H��H�5o��w��H�;�����H���H�5c�蠕��H�;�H����H�5O�腕��H�;�H����H�5=��j���H�;�H�K��H�5-��O���H�;�H���H�5��4���H�;�H�u�H�5�f����H�;�H���H�5����H�;�H����H�5؉���H�;�H�$��H�5ʼn�Ȕ��H�;�����H����H�5}S譔��H�;1�H����H�5X蕔��H�;H�pXH�5���߅��H�;1�H����H�5�b�g���H�;�H����H�5]��L���H�;�H��H�5=��1���H�;[�����H����H�5-�����H��Y!H�5�H�81��q��f.����~�����S1���H�= ��ە����t1���u
H�JW!H�[�DH�yX![H��ff.����H��(H�59T!dH�%(H�D$1��<���H��tGH�t$H��H�T$�ur���t$���uH�L$dH3%(u+H��(�H�|$�6�����@H�=���$�������������H��H�5�S!輅��H��tH���?���H��H���r��1�H�=G��Ҕ���H������H��H�5YS!�l���H��tH���p��H��H�D�DH�=��脔���H���f.���U��SH��H��輘����t�� u
H��[]�H��V!H�ߋ0����H��H��ttH�5��H�����H��t�H�5y�H��諅��H��H��t�H�5y!H��tH��H��H��[1�]鮆��fD�H�=]�臝��H��H��x!��H�dV!H�5=�H�81��o����SH��H��tH�dU!�0襔��H��tH��[�Fs��fDH�CH��[�/s��ff.�@��H��H�5�Q!���H��tH��运��H��H�H�D�H�=�������H���f.���USH��H�5�Q!誃��H��tmH��H��躙��H���r���H��蚉��H�8uH��H��[]�f.��H�5hH��茠��H���T���H��H���9���H��H��[]��1�H�=ߎ��e���H��H��[]�ff.�UH���SH��dH�%(H�D$1��y��H��H���b���H��躄��H��H��蟛��H���W���H��蟄��H��H��脛��H�t$H������H��Hc�H�t6�g���Hct$H��H�t6�U���H�T$dH3%(u
H��H��[]�見��fD��H��H�59P!�L���H��tH���t��H��H���#���1�H�=׍�b����H������H��H�5�O!���H��tH��菗��H��H���Ã��1�H�=�������H������AUATUSH��H�5�O!要��H���}H���p��H��H��tUH�����Hc�I���x��I��E��~'1ۉ�H����Co��H��蛆��L��H��� ���A9�u�H��L��[]A\A]�DH��A�[L��]A\A]�@H�=ɌA��N���H��L��[]A\A]���USH��H�5�N!���H��tEH���ݛ��H��H��t%H���
���H��H�����H��H��[]���H��H��[]ÐH�=I���Ϗ��H��H��[]�D��H��H�5YN!�l���H��tH������H��tH��H��鎅��fDH�=��|����H���f���AUATUSH��H��H�5N!����H�5ĂH��H�����H�5:t!I��H����1�1�L����H�����uiH��t-A�H���7�����uA��u�H��蕊���k��H����w��H�C H�5]�H���q���H�����tH�5�s!H��t=1�L��1�聁��H���[]A\A]Ð�H�=��O���H��H��s!�R����H�=���/���H��H�]s!���UH��H��H�5ށSH��H������H�8�� u&H��H��H�E��Hc�H9�u�;H��1�[]�@H�PH�xH�U���i��ff.�f���H��L!1��o��ff.���USH��H�DLH��dH�%(H�D$1�H��脀��H��H�5:E!�U~��H�<$H��H����H�UL!H�0�s��H����H�5r!H��t@H�<$1�1��#����tOH�H��H�����H��H�T$dH3%(uJH��[]���H�=�N�ϖ��H��H��q!�H����y��H���1��	���H����߆��H�XK!H�5m�H�81��h�����USH��H�5PD!H���g}��H���tH��H�H��1ɾ*�Zz��H��H��[]�H���Xy��H������USH��H�5D!H���}��H���tH��H�H��1ɾ,�
z��H��H��[]�H���y��H������ATH�5�C!US��|��H��贕��1�1ɾH��H���y��H�@H���L�dH�=yp!H���`蓔��L��H��H����g��1�1ɾH���ty��H�@H���L�dH�=%p!H���|�G���L��H��H���g��1�1ɾH���(y��H�@H��eL�dH�=�o!H������L��H��H���=g��1�1ɾH����x��H�@H��IL�dH�=}o!H����诓��L��H��H����f��1�1ɾH���x��H�@H���L�dH�=)o!H���8�c���L��H��H���f��1�1ɾH���Dx��H�@H���L�dH�=�n!H��������L��H��H���Yf��1�1ɾH���w��H�@H��uL�dH�=�n!H���`�˒��L��H��H���
f��1�1ɾH���w��H�@H��YL�dH�=-n!H��������L��H��H���e��1�1ɾH���`w��H�@H���L�dH�=�m!H�����3���L��H��H���ue��1�1ɾH���w��H�@H���L�dH�=�m!H������L��H��H���)e��1�1ɾH����v��H�@H���L�dH�=1m!H����蛑��L��H��H����d��1�1ɾH���|v��H�@H��iH�lH�=�l!H��tH�S���H��H��H���d��H��[]A\�DH�=|�	����H��H��l!����H�=b|����H��H�ul!�H�=7|�
�ϑ��H��H�]l!�0���H�=
|�译��H��H�El!����H�=�{�菑��H��H�-l!�X���H�=�{�
�o���H��H�l!���H�=�{��O���H��H��k!���H�=X{��/���H��H��k!����H�=}�����H��H��k!���H�={����H��H��k!�<���H�=�z��ϐ��H��H��k!����H�=�|�诐��H��H��k!�d���H���8x��I�����H���(x��I���4���H���x��I������H���x��I�����H���w��I�����H����w��I���$���H����w��I�����H����w��I�����H���w��I���p���H���w��I������H���w��I���X���H���w��H�������H��H�5�=!��v��1�1ɾ+H����s��H�@H�xH�DH���f�H��H���4w��@��H��H�5a=!�|v��1�1ɾ-H���{s��H�@H�xH�DH���f�H��H����v��@��AT1�USH��H��dH�%(H�D$1��D$��o��H��thH��H��G!H�ߋ0�	���I��H�������l��L��H��H��襎��H���w��H��H��蒎��H�T$H��H�=#-�N���HcT$��u%1�H�L$dH3%(u:H��[]A\�f.�H�QF!H�TL��H�0�9�����f����~��@��UHc�SHc�H�l-H�\H��(dH�%(H�D$1�H��F!�0�(���1�H��H�l$H�=H�$H�\$虇��1�H�����tH�<$H�5Vx�u��H�����H�P H�L$dH3%(H��uH��([]���}��@��U�SH��H���ً��1�H��运��H�5xH���`u��H��tJH�5�g!H��H��tH��H��H��[1�]�cv���H�=r�?���H��H��g!��H���[]�@��U�SH��H���I���1�H���/���H�5�vH����t��H��tbH�5pwH���t��H��H��tJH�5;g!H��tH��H��H��[1�]�u��fD�H�=mq藌��H��H��f!��H���[]�ff.����U�SH��H��虊��1�H������H�5�uH��� t��H��tbH�5�vH���t��H��H��tJH�5�f!H��tH��H��H��[1�]�u��fD�H�=�p���H��H�Ef!��H���[]�ff.����ATH�5�@!USH���r��H�j@!H�Nj2訐��H��1�H����H�5�e!H��t}H�ٺH��1��{t���H��H��蛉��1�H��聎��H��I���։���H���i���H��H���N~��L��H�5�uH���,z��H��H�5XKH���z���[]A\þH�=�o���H��H�=e!�c�����AWL��E��AVI��H�5{uAUI��ATUSH��I�H��(dH�%(H�D$1��r��H�D$��u��H��L9�s+fDL�c�L��H��L��n��H��H���8���I9�w�H�5�d!H����H�|$�H��1��Os��H�|$H�D$��n��H�T$H��� uCH����H�H�H���woH��I�A�E1�H�L$dH3%(ujH��([]A\A]A^A_�H�BH�H�H���w/H�R�f��H�=�n诉��H��H�d!�M���H��B!H�5�|H�81��[����y����AUH�5S7!ATUSH���fp��H��tpH�hH��tXH�����Hc�I���Ug��I��E��~*1���H����^��H����L��H�����A9�u�H��L��[]A\A]�DH��[]A\A]�At��H�=�sA������ff.�f���H�MA!ATI��UH��S�0�č��1�H�=��H��H���@���1�H�����t;H�5<sH���gp��H���ow��H�5�HH��I�$�Lp��H���T����H�E[��]A\�@��U��SH��H���܃��H�߉�袋��H�A!H�Nj2�1���H��H��H��A!�0�~��H��H�މ�[]�k��ff.�f���ATUSH��H��H�5�<!H�?��n��H�C<!H�Nj2�ь��H��tCH�5b!H��L�KL�CL�#H��t9H��L��1��p��H��H���z���8�-�����tHH��1�[]A\�D�H�=-lL�D$L�$�N���L�D$L�$H��H��a!�f�H�;H��H�5�q�.v��H���[]A\���AVI��AUI��ATUH��S��H��dH�%(H�D$1�H�&=!�D$H�8��H�M?!H��0�ˋ��I��H������d��L��H��H���g���Hc�L����j��H��H���Q���H�T$H��H�=����
���HcT$H��uQH�-�@!H��H�u�.b��H��tPH�uH���
~��H����H�5-=!H���%m��H����A�E�f�H��=!H�TL��H�0�ɇ��1�H�L$dH3%(u{H��[]A\A]A^�f.�L�%�=!��H�=�QI�$�o���I�$� �H�=�x�U���I�<$�1�A�yH�
[pH��Q�a�������u��H��H�m����H�5L;H��H�Z>!H��H�81��mW��H��>!H�5�<H�81��UW��D��ATUH��SH��H��dH�%(H�D$1�H�?;!�D$H�8��H�f=!H��0�4|��H��H��tqH��>!H�8�Ms���A��H�
�oI��H�����'���I�\$ ��b��H��H��H���J���L��H���?���H�T$H��H�=�����}��H�D$dH3%(uoH��[]A\�f�L�%a<!��H�=9PI�$�ߊ��I�$�#�H�=Zw�Ŋ��I�<$�1�A��H�
�nH�+P�с������t�����ATUH��SH��H��dH�%(H�D$1�H��9!�D$H�8��H�<!H�ߋ0蔈��H�øH��tzH��=!H�8�q��A��H�
9n�I��H�����҂��I�l$ ��Ca��H��H��H�����L��H�����H�T$H��H�=���|��HcD$��uH�L$dH3%(��H��[]A\�H�TH��:!H��H�0虄��1���DL�%�:!��H�=�NI�$�_���I�$� �H�=v�E���I�<$�1�A��H�
KmH��N�Q��������r�����AUATUH��SH��dH�%(H�D$1�����H�������H�E�ƒ��������}H��H��tWI��A��u	H�����usH��H�$�f��H�5�/!H����h��H���KH�4$H� t:H�vH���W������H�L$dH3%(H���H��[]A\A]�@H����f������u�1�1�L�%wm�W��H�$H��pDH����I9��a���L��H���]����uH�����t�������H�����H�<$H���f��H��� t$H��H����H��I9�|I���� u�H�C�f�H�KH�Q�I9�}�H�<$�L�����H���H��9!H�5�kH�81���R��D1�H��趃���q���H���X���p��H�]9!H�5(kH�81��R��ff.����AUI��H��ATUSH��H�t$@����@��u
H�������H�|$�u��I��H�-�0!H�=aq1��H�}H��L���w����t$����u�H��4!L��H�5�jH�81���Q���Hc�H��0!H���TH��H��t�H�5-!L���f��H��H���W����u:H�D$H��[]A\A]��������H����|��H����Y��I���@���H�68!H�5YjH�81��eQ��D��AWH�
/KI��AVL�5_-!AUM���ATL�%7jUH��SH��X�|$H�\$ dH�%(H�D$H1���I�I��L�� H��1��T���H��H����m��M9�uҋ|$1�H�L$L��H�a3�g����t
H�t$H���7���H�\$HdH3%(H��uH��X[]A\A]A^A_��n����H��H�593!�Le��H��t71�1ҾH�����H��tH��u1�H��Ð1�H���f�H�=�p�Dt���H���H��6!H�5"iH�81��P��f�AUATUSH��H��H�5�2!dH�%(H�D$1��d��H��t*H�L$dH3%(��XH��[]A\A]�fDH�5�hH���Ye��H�5gH��H�$�Fe��H�5?+!H��I���Td��H���l^��H��H���H�<$H�C t$H���r��1Ҿ7H��H����~��H����H�5�fH����d��H���{��L�hL���.~��L���Vm��L���s��A�uH����^��H�S5!H��H��0莄��L��H�5�H�d��H��H��H��5!�0�k���L��H�5h�ld��H��H��H�G1!�0�H���L��H�5�g�Id��H��H��H��0!�0�%���H�5��H���X������|l��H�%5!H�5�gH�81��TN��H�
5!H�5qgH�81��<N��ff.����ATUH��SH���
���H�5�0!H����b��H��tIL�%
6!H��H��I�4$�s��H��tIH�5�2!H���b��H��twH��H���/g����uOH��[]A\�f�1��H�=2n�q��H��[]A\�H��I�,$�~��H�5Z1H��H�h4!H��H�81��{M��H�44!H�5�fH�81��cM��H��4!H�5�2H�81��KM��ff.���ATI��USH��H��H�?dH�%(H�D$1��� �H����Hc�H9��������woH�t$�L��@�l$��~��H�sH� u-H��L����~���H�L$dH3%(u&H��[]A\�@H�s��f.�H�{�����j��H�;3!H�5�mH�81��jL���uL��DPXH�5�e1�H��H�=2V!�j��H���-Q��ff.�f�PXH�5�e1�H��H�=
V!�j��H���P��ff.�f�AWI��AVA��AUA��ATUS1�H��H�|$H�t$�X^��H�5�.!L���`��H�5JcL��H���ga��H���?x��L�`L���z��H���H�t$H�>H���� ��H����Hclj�H9�����tVH����H��H���W��H��Ɖ��i�������~&��uAE���%E���}A�|$�=^�����u,Hc�H�DH��[]A\A]A^A_�D��u�^K�����u`H��1!H�5�dH�81���J��H�~�K����H�v�Z����E����E����A�|$�_������1��n���H�iS!H��tLH�=�j1��vn��H�l$L��H�5�a�`��H�޺H��H��1��a��H��[]A\A]A^A_�fD�H�=�c��w��H��H��R!�H�=S!H��t3��v�����H�=�R!H��u�H�=�c�
�w��H��H��R!��H�=]c�
�w��H��H��R!��I���E����p�����SH��H�|cH�� dH�%(H�D$1�H�L$L�D$H�D$�U`��H�|$1�H��tH�51S!��|��1�H����H�t$H�ߺ�2���H�\$dH3%(uH�� [��'g�����1�1�����AWA��AVAUI��ATUH��SH��H��.!H�$�H�0�qx��H�5�+!H���]��H���9H�5:`H��H���W^��H���/u��L�pL���w��H��1�A��H��A��H�&.!H�0�p��H���E���D��H���x}����tc��u�H��H�ŋ����H�<$�cl����t[H�߉D$��n��H���H���L$H�$I��D�H��.!H�5�iH�81���G���E����A�~�Z���F���f�E����A�~��\���&���f�H���xn��D�EH�$�I��H�Q.!H�5*iH�81��G��1�H�=�g�k���H��[]A\A]A^A_�fDH����H�Ǩt�wN����� l���K^������������ff.�@��SH������H�5�)!H��[�H��`������SH������H�5�)!H��1�H��`[����f.���SH�����H�5�,!H��[�H�n`������SH���s���H�5�,!H��1�H�B`[�j���f.���ATUSH��H�5�!!�[��L�%J.!H��H��I�4$��k��H��t5H�5�*!H����Z��H��tKH��H���oN���[]���A\HE��H��I�,$�mv��H�5�)H��H��,!H��H�81���E��H�X-!H�5+H�81��E�����USH��H��H�5M!!H���dZ��H��H���Ib��1ҾH��H���WW��H��t
H��H��[]�H�!,!1�H�81��UE��D��UH��SH���_��H���R��H��t/��!H��1�H���V��H��H��H��[H�� !]��J��H��+!H�5�^H�81���D��f.�AWAVAUI��ATU��SH��(dH�%(H�D$1���L�d$H��H�D$�TL�L$M��H�^E1��}[��H�|$H���QH�<$@��tT�K��H�|$��Lc�uTL��1��hV��H�D$��udH�D$H�L$dH3%(��H��([]A\A]A^A_���+[��H�|$��Lc�t�L���V��H�|$�lV��H�|$L����F����t�H�5�&!L���X��H�5][L��H���zY��H���Rp��L�`L����r��H���u����L�-�gH�t$H��� ��H��H����H����_��H�߉�A���x�����D��IcD�L�>���M��H�}#1�E1��,Z��H�|$H�������H�5M!E1��v��H��A�����f��;s��E����H���xE���j����fDH�~Hclj�H9��CH�v�C���DE�������:A�|$��U������E�������A�|$�W�����H�|$Ic��U��H�D$�����H���������H��у����I��H���fD����H�K!H����1�H�=�b�"f��L�t$L�d$L��H�,$H�5�Y�W��M��M��H��H��H��1��X�����DH���hc��������A�|$�\�������H�yJ!H��td1�H�=b�e��L�d$H�,$L��H�5Y�.W��M��H��H��H��1��FX��������
H�=�^�o��H��H�J!� ����H�=+[�n��H��H��I!�|���H��'!H�5[H�81��A����H����������H�=�I!H��t3�m�����H�=�I!H��u�H�=[Z�
�n��H��H��I!��H�=LZ�
�ln��H��H�rI!��^���@���Qf��1��d���E���������f���1��u���D��ATUSH��H�5�!�	U��L�%:(!H��H��I�4$��e��H��t5H�5�$!H����T��H��tKH��H���K���[]���A\HE��H��I�,$�]p��H�5�#H��H��&!H��H�81��?��H�H'!H�5�$H�81��?�����AUATUSH��(dH�%(H�D$1�@���PH��H������@H���ƒ����/���&H�5�!�
T��H�5�XH��H����T��H������_H�5���H���r��H�a%!H��H��0��C��H�5�XH���T��H�D$H��t)H���JP��H��H���k��H��$!�H��0�C��H�5�XH���ZT��H�D$H��t&H�5�F!H����I��L����1�1�H���9r��H�5M8H��E1��T��H�D$H��tH���j��I��H�5`,H����S��H�D$H��tKH���_��I��M��t;H��t6L��H����=�����uL��H����q������H���T@������H�5KXH���S��I��H�D$H����I��A����H�������H��ƒ������g�H����L9���L���?��I�$L�d$L��� �c�>��I�|$J�<�I���i��H��H���yM������L�d$I�$�� u�I�D$�@�H�L$dH3%(H���UH��([]A\A]ÐL���Xi��H��H���M�����3H�5eWH���R��H�D$H��t;L�l$L���`��H�5GWH��I���\R��H�D$H��u3L��1��:f.�H�5WH���1R��H�D$H��tE1�L�l$L���_��H��L	�H����H�5WH���Q��1�H�D$H��tH�Ǩ��[C����H��H�����^��H�5WUH���Q��H�������H�5�VH���Q��H�D$H��t��%H�H��H���?T��H�5�VH���pQ��H�D$H��tH�Ǩ���R����H���+l��H�5lVH���<Q��H�D$H�������H�H��1ɾ H���@M��H�5:VH���Q��I��H�D$H��tm1�H�=1N�e?��H�=> !H���L��H��H�D$��b��H�|$�
p��H�T$H�5�RH����W��H��H�5���H���c��H��!H�8�VH�5RSH���wP��H�������H����e��H�5�UH���TP��H�D$H��t6H�|$�M��H�t$H��� �6H��H����H���Ke������H�5�RH���P��H�������H�5�RH����O��H������5H�5pRH����O��H�������H�5-UH���O��H�D$H��t(H��H�~���5�tV��H��!H�(H��������fDH�5���H���!m�����@H��L��H���j:�����;���H�=$T�]���*����H�5)�H����b��H��!H�8�N���L�%Q!��H�=)3I�$��m��I�$�!�H�=�[�m��I�<$�1�A�@H�
�QH�3�d�����@H�5��H����a��H��!H�8�����L�%�!��H�=�2I�$�Gm��I�$��H�=[�-m��I�<$�1�A�<H�
3QH��2�9d���G���@H�5)��H���q;��H�r!H�8����L�%A!��H�=2I�$�l��I�$��H�=ZZ�l��I�<$�1�A�8H�
�PH�2�c�����@H��H�5���H����g��H��!H�8�
���L�%�!��H�=�1I�$�4l��I�$��H�=R�l��I�<$�1�A�'H�
 PH��1�&c������H�5Y��H���W���M���@H�VHc�H9���H�v�����3N������@�C>�����i���@�8��I�|$ ���f�H����G��H���q����H�=�2�d��H��H�?!H�D$�,���H���G��H�������1ɺ��� H���lH���'����L�%q!��H�=I0I�$��j��I�$� �H�=BX��j��I�<$�1�A�#H�
�NH�;0��a���F���@H�	!��H�=�/H��j��H��$�H�=�X�oj��H�;A�G1�H�
{NH��/��|a�������S��H�k!H�5PH�81��5��H�S!H�5�OH�81��5��H�;!H�5�WH�81��j5��H���r5��H�!H�5�OH�81��J5��H�!H�5qOH�81��25��f���USH��H�WH��(dH�%(H�D$1�H�L$L�D$��K������H�|$H�-�!H�u�Z��H����H�|$���`��H�T$H�5CLH���Q��H�T$H�5LH���Q��1�H�5*LH���nQ��H�|$���H�5�MH���PQ��1�1��WI��H��H�L$dH3%(��H��([]�f�H�5=!H��t$H�-�!1�1�H�}�K��H��H�D$�+����H�=+M��a��H��H��<!�H�|$H�]�ed��H��H�5�H��H��!H�81���3����Q��f���AT�USH���_��1�H���d��H�5KH��I���?I��H��tZH�5�NH���*I��H��H��tBH�5�;!H����H��H��1���/J��H��H�
!H��H�0��X��H��uH��uo�H��[]A\�f�H���x�H�5�!L����G��H��H�5�!H����G��H��H���<@��H��[]A\�@�H�=uE�`��H��H�;!�_���H�I!H�5�UH�81��2�����AWAVAUATUSH��H�_<!H���
H�!E1�1�1�H�5�MH�1��G��H�!1�1�E1�H�5�M�1��aG��H�"!1�1�E1�H�5�M�1��CG��H�t!1�1�E1�H�5&U�1��%G��H��!1�1�E1�H�5(U�1��G��H�(!H�5�Q�H��!H�8�<��H��!L�%:!H�5�EH��H�I�$�A��H�]!I�<$H�5MH��H��A��H�p!H��H�f;!H�2�.:��H�I�<$H�5�L�[A��H�<!H��H�2;!H�2�:����a��L�=�!I�<$H�5�LI��#A��H�-�!H�5��H��H�E��>��H�5�:!H���yH�}E1�����[��H�5�:!H���3H�}E1����[��H�5v:!H����
H�}E1����[��H�5H:!H����
H�}E1����q[��H�5:!H���a
H�}E1����K[��H�5�9!H���
H�}E1����%[��H�5�9!H����H�}E1����Z��H�5�9!H����H�}E1�����Z��H�5b9!H���IH�}E1����Z��H�549!H���H�}E1����Z��H�59!H����H�}E1����gZ��H�5�8!H���wH�}E1����AZ��H�5�8!H���1H�}E1����Z��H�5|8!H����
H�}E1����Y��H�5N8!H����
H�}E1�����Y��H�5 8!H���_
H�}E1����Y��H�5�7!H���
H�}E1����Y��H�5�7!H����	H�}E1����]Y��H�5�7!H����	H�}E1����7Y��H�5h7!H���G	H�}E1����Y��H�5:7!H���	H�}E1�����X��H�57!H����H�}E1���H��!�X��H�}H�uHH�5^IL���A��H�}H�WIH�5LI��@��H�}�����H���H�5�mO��H�}�H����H�5!I�QO��H�}1�H����H�5��8O��H�}�H����H�5�H�O��H�}1�H�o�H�5�H�O��H�}�H�5�H�S��H�}�H�5�H�S��H�}�H�5�H�tS��H�}�H�5�H�_S��H�}�H�5�H�JS��H�}�H�5�O�5S��H�}�H�5�O� S��H�}�H�5�H�S��H�}�H���H�5�H�?N��H�}�H���H�5�H�#N��H�}1�H�V��H�5�H�
N��H�}�H����H�5�H��M��H�}1�H����H�5�H��M��H�}�H���H�5H�M��H�}1�H����H�5zH�M��H�}�����H����H�5rH�M����Z7��H�=�JI���
fDH�;H����E��H���4X��L��H����X��L9�u�L���|V��H�}L��H�5&H��Q��I�I�<$H�5H�;��H��!H�5(���H��H��8��H�=B�qE��H�;E1�1ɺH����U��H�=CB�PE��H�;E1�1ɺH���U��H�=�C�/E��H�;E1���H���U��H�=%B�E��H�;E1��H�ƺ�sU��H�;H��AH�5lG�=��H�;�����H����H�5�
�BL��H�;1�H���H�5D�*L��H�;1�H�^�H�5'G�L��H�;1�H��H�5�C�K��H�;1�H���H�5G��K��H�;�����H�s�H�5�C��K��H�;�����H�H�H�5�F�9��H�;�H���H�5TC�K��H�;�����H����H�5�F�f9��H�;1�H�
���H�5�F�^K��H�;1�H�����H�5'#�FK��H�;1�H�
���H�5�F�.K��H�;1�H�2���H�5�F�K��H�;1�H�ʻ��H�5�A�J��H�;1�H�b���H�5�9��J��H�;1�H���H�5D��J��H�;1�H�����H�52F�J��H�;1�H���H�5"F�J��H�;�H�_��H�5F�J��H�;1�H�Ƿ��H�5F�kJ��H�;1�H�_���H�5�B�SJ��H�;1�H�����H�5�E�;J��I�<$�H�5�E��N��I�<$�H�5�E�N��I�<$�H�5�E�N��I�<$�	H�5�E�N��I�<$�H�5�E�N��I�<$�H�5�E�mN��I�<$�H�5MK�XN��I�<$�H�5`K�CN��I�<$�AH�5�E�.N��I�<$�H�5�E�N��I�<$�H�5�E�N��I�<$�H�5�E��M��I�<$�H�5�E��M��I�<$�H�5K��M��I�<$H�5�EH�������M��I�<$�H�5�J�M��I�<$�H�5�E�M��I�<$� H�5�E�lM��I�<$�H�5E�WM��I�<$��H�5{E�BM��I�<$�H�5�E�-M��I�<$�H�5�E�M��I�<$�H�5xE�M��I�<$�H�5oE��L��I�<$� H�5fE��L��I�<$�H�5_E��L��I�<$��H�5XE�L��I�<$�H�5PE�L��I�<$�H�5ME�L��I�<$�H�5IE�pL��I�<$�@H�5EE�[L��I�<$��H�5�I�FL��H�=�.!H���>�aR��H�Z/!H��[]A\A]A^A_��H�=�@�'S��H�(/!���H�=�D�	�S��H��H�M.!��
H�=�=��R��H��H�5.!�-�����
H�=�?�R��H��H�.!�����H�=K<�R��H��H��-!����
H�=�?�R��H��H��-!�S����H�=�<�_R��H��H��-!�
����H�=�<�?R��H��H��-!�����H�=�<�R��H��H��-!����H�=C?�Q��H��H��-!�;����H�=i=��Q��H��H�m-!��H�=9=�Q��H��H�U-!��H�=�=�Q��H��H�=-!�i�
H�=�=�Q��H��H�%-!�#�H�=m>�_Q��H��H�
-!���H�=?�?Q��H��H��,!��H�=>�Q��H��H��,!�Q�H�=�=�P��H��H��,!��H�=�=��P��H��H��,!���H�=�=�P��H��H��,!��H�=\=�P��H��H�},!�9�	H�==�P��H��H�e,!���H�=�_P��H��H�M,!��H�=P�?P��H��H�5,!�g���USH��H�|$@��uH�����t
�����tXH�|$�4��H�|$H�7�� t.H�GHcЉ�H9���H��9��H��t|H��[]��H��H�������kN��H�XH����P��H���@���{�?S���Å�xY���R��H�55)����=��H��H��t5�H���P��H��u�H���r<��H��!1�H�81��o!��H���w!����� V��1��E��f���H��1ҾsdH�%(H�D$1�H���#��H�$H�xH�0�)3��H�T$dH3%(uH����?��ff.�@��H��H��H�=�!�JH��f.���H��H��H�=W!�*H��f.���USH��H��dH�%(H�D$1�H�t$�D$�!-��H��H���.���|$��uH�T$dH3%(H��uH��[]��/E���Z>����H��H���PKEY wasn't initialized!THIS IS NOT A RSA!qdmp1dmq1iqmpincomplete RSAprivateprivate key needed11ossl_pkey_rsa.cnewlen <= len02Neither PUB key nor PRIV keyNot a RSA key!RSAErrorgenerateinitializepublic?private?to_textexportto_pemto_sto_derpublic_encryptpublic_decryptprivate_encryptprivate_decryptq=dmp1=dmq1=iqmp=paramsPKCS1_PADDINGSSLV23_PADDINGNO_PADDINGPKCS1_OAEP_PADDINGOpenSSL requires passwords to be at least four characters longossl_rsa_to_derCipher not inititalized!iv length too shortunable to set GCM tagkey length too shortossl_cipher.cout_len <= RSTRING_LEN(str)data must not be emptyout_len < RSTRING_LEN(str)13Cipher already inititalized!01CipherErrorinitialize_copyciphersresetpkcs5_keyivgenfinalauth_data=auth_tag=auth_tagauthenticated?key_len=key_leniv=iv_lenblock_sizepadding=OpenSSL/Cipherauthentication tag not supported by this cipherdata too big to make output buffer: %ld bytessalt must be an 8-octet stringwrong argument (%li)! (Expected kind of %li)couldn't set additional authenticated dataarguments for %li#encrypt and %li#decrypt were deprecated; use %li#pkcs5_keyivgen to derive key and IVunsupported cipher algorithm (%s)retrieving the authentication tag failedossl_cipher_updateossl_cipher_finalOpenSSL for RubySSL Session wasn't initialized.SSL Session already initializedBIO_s_mem()SSL_SESSION_print()i2d_SSL_SESSIONossl_ssl_session.cno session availableunknown typeto_iSessionErrortime=OpenSSL/SSL/Sessionossl_ssl_session_to_der21Cert ID wasn't initialized!Response wasn't initialized!ossl_ocsp.cRequest wasn't initialized!22OCSPOCSPErrorRequestadd_noncecheck_nonceadd_certidcreatestatus_stringbasicBasicResponsecopy_nonceadd_statusCertificateIdcmp_issuerserialRESPONSE_STATUS_INTERNALERRORREVOKED_STATUS_NOSTATUSRESPONSE_STATUS_SIGREQUIREDRESPONSE_STATUS_SUCCESSFULRESPONSE_STATUS_TRYLATERREVOKED_STATUS_CACOMPROMISEREVOKED_STATUS_KEYCOMPROMISEREVOKED_STATUS_REMOVEFROMCRLREVOKED_STATUS_SUPERSEDEDRESPONSE_STATUS_UNAUTHORIZEDREVOKED_STATUS_UNSPECIFIEDNOCERTSNOINTERNNOSIGSNOCHAINNOVERIFYNOEXPLICITNOCASIGNNODELEGATEDNOCHECKSTRUSTOTHERNOTIMEV_CERTSTATUS_GOODV_CERTSTATUS_REVOKEDV_CERTSTATUS_UNKNOWNV_RESPID_NAMEV_RESPID_KEYOpenSSL/OCSP/CERTIDOpenSSL/OCSP/BASICRESPOpenSSL/OCSP/RESPONSEOpenSSL/OCSP/REQUESTcannot load DER encoded responsecannot load DER encoded requestRESPONSE_STATUS_MALFORMEDREQUESTREVOKED_STATUS_AFFILIATIONCHANGEDREVOKED_STATUS_CERTIFICATEHOLDREVOKED_STATUS_CESSATIONOFOPERATIONossl_ocspreq_to_derossl_ocspres_to_derATTR wasn't initialized!ossl_x509attr.cdecodecould not get ASN1_TYPEoid=value=AttributeErrorAttributeoidOpenSSL/X509/ATTRIBUTEcouldn't set SEQUENCE for attribute value.ossl_x509attr_get_value@groupEC_POINT is not initializedEC_GROUP is not initializedEC_POINT_point2bnEC_POINT_set_to_infinityEC_POINT_invertEC_POINT_make_affineEC_POINT_is_on_curveEC_POINT_is_at_infinityEC_POINT_dupEC_POINT already initializedunknown type for 2nd argwrong number of argumentsMultiplication failedossl_pkey_ec.cArgument2 must be an arrayBIO_new(BIO_s_mem())EC_GROUP_set_seedEC_GROUP_set_generatorEC_GROUP_newEC_GROUP_dupunknown curve name (%s)unable to create curve (%s)EC_GROUP_new_by_GF*THIS IS NOT A EC PKEY!EC_KEY is not initializedEC_KEY_printoutlen=%dECDSA_verifyPrivate EC key needed!ECDSA_signECDH_compute_keyEC_KEY_set_public_keyEC_KEY_set_private_key@keyEC_KEY_set_groupEC_KEY already initializedunknown curve name (%s)
unable to create curve (%s)
EVP_PKEY_assign_EC_KEYgroup=EC_get_builtin_curvescloneEC_GROUP_get_cofactorEC_GROUP_get_orderEC_KEY_check_keyEC_KEY_generate_keyNot a EC key!ECErrorECGroupPointGFpGF2mGFp_simpleGFp_montGFp_nistGF2m_simpleuncompressedhybridNAMED_CURVEprivate_key=public_key=private_key?public_key?dh_compute_keydsa_sign_asn1dsa_verify_asn1eql?curve_nameasn1_flagasn1_flag=point_conversion_formpoint_conversion_form=seed=degreeinfinity?on_curve?make_affine!invert!set_to_infinity!to_bnOpenSSL/ec_pointOpenSSL/ec_groupmissing ossl_ec_point structuremissing ossl_ec_group structurewrong argument type: must be OpenSSL::PKey::EC::Point or OpenSSL::Pkey::EC::Group1st argument must be OpenSSL::PKey::EC::Groupmissing group (internal error)EC_GROUP is already initializedunknown symbol, must be :GFp_simple, :GFp_mont, :GFp_nist or :GF2m_simpleunknown symbol, must be :GFp or :GF2munknown argument, must be :GFp or :GF2mcan't export - no public key setcan't export - EC_KEY_check_key failedEC_KEY_get0_get0_group (has public_key but no group???form must be :compressed, :uncompressed, or :hybridunsupported point conversion form: %d, this module should be updatedDigest initialization failed.EVP_MD_CTX_create() failedDigest::ClassDigestError<<finishdigest_lengthblock_lengthOpenSSL/DigestDigest CTX wasn't initialized!Unsupported digest algorithm (%s).V_OKV_ERR_UNABLE_TO_GET_CRLV_ERR_CERT_SIGNATURE_FAILUREV_ERR_CRL_SIGNATURE_FAILUREV_ERR_CERT_NOT_YET_VALIDV_ERR_CERT_HAS_EXPIREDV_ERR_CRL_NOT_YET_VALIDV_ERR_CRL_HAS_EXPIREDV_ERR_OUT_OF_MEMV_ERR_CERT_CHAIN_TOO_LONGV_ERR_CERT_REVOKEDV_ERR_INVALID_CAV_ERR_PATH_LENGTH_EXCEEDEDV_ERR_INVALID_PURPOSEV_ERR_CERT_UNTRUSTEDV_ERR_CERT_REJECTEDV_ERR_SUBJECT_ISSUER_MISMATCHV_ERR_AKID_SKID_MISMATCHV_ERR_KEYUSAGE_NO_CERTSIGNV_FLAG_CRL_CHECKV_FLAG_CRL_CHECK_ALLPURPOSE_SSL_CLIENTPURPOSE_SSL_SERVERPURPOSE_NS_SSL_SERVERPURPOSE_SMIME_SIGNPURPOSE_SMIME_ENCRYPTPURPOSE_CRL_SIGNPURPOSE_ANYPURPOSE_OCSP_HELPERTRUST_COMPATTRUST_SSL_CLIENTTRUST_SSL_SERVERTRUST_EMAILTRUST_OBJECT_SIGNTRUST_OCSP_SIGNTRUST_OCSP_REQUESTDEFAULT_CERT_AREADEFAULT_CERT_DIRDEFAULT_CERT_FILEDEFAULT_CERT_DIR_ENVDEFAULT_CERT_FILE_ENVDEFAULT_PRIVATE_DIRV_ERR_UNABLE_TO_GET_ISSUER_CERTV_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATUREV_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATUREV_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEYV_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELDV_ERR_ERROR_IN_CERT_NOT_AFTER_FIELDV_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELDV_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELDV_ERR_DEPTH_ZERO_SELF_SIGNED_CERTV_ERR_SELF_SIGNED_CERT_IN_CHAINV_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLYV_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATUREV_ERR_AKID_ISSUER_SERIAL_MISMATCHV_ERR_APPLICATION_VERIFICATION@timeSTORE wasn't initialized!STORE_CTX is out of scope!@verify_callback@certOSSL_DEBUG: certs in chain < 0???ossl_x509store.c [%s:%d]
@error@error_string@chainSTORE_CTX wasn't initialized!StoreErrorStoreverify_callback=flags=purpose=trust=add_pathadd_fileset_default_pathsadd_certadd_crlStoreContexterror=error_depthcurrent_certcurrent_crlOpenSSL/X509/STORE_CTXOpenSSL/X509/STOREReq wasn't initialized!ossl_x509req.ccount < 0???version must be >= 0!RequestErrorsubjectsubject=signature_algorithmattributesattributes=add_attributeOpenSSL/X509/REQossl_x509req_to_derinvalid tag classeach%2d%2d%2d%2d%2d%2dZbad UTCTIME format: "%s"%4d%2d%2d%2d%2d%2dZbad GENERALIZEDTIME formatunknown time formatutcASN1_INTEGER is NULL!invalid OBJECT IDinvalid tag defaulttag number not specifiedossl_asn1.cmust specify tag numberinvalid tagging methodvalue is too shortinvalid non-infinite taginvalid constructed encodingnil expectedunsupported ASN.1 typeASN1_TYPE alloc failurecannot alloc bufferreallen <= lenEOCUNIVERSALCONTEXT_SPECIFICAPPLICATIONPRIVATEIMPLICIT@value@tag@tagging@tag_class@infinite_length@unused_bitsASN1ASN1Errortraversedecode_allUNIVERSAL_TAG_NAMEASN1DataPrimitiveinfinite_length=ConstructiveBooleanIntegerEnumeratedBitStringOctetStringUTF8StringNumericStringPrintableStringT61StringVideotexStringIA5StringGraphicStringISO64StringGeneralStringUniversalStringBMPStringNullObjectIdUTCTimeGeneralizedTimeSequenceSetEndOfContentregistersnlnshort_namelong_nameBOOLEANINTEGERBIT_STRINGOCTET_STRINGNULLOBJECTOBJECT_DESCRIPTOREXTERNALREALENUMERATEDEMBEDDED_PDVUTF8STRINGRELATIVE_OID[UNIVERSAL 14][UNIVERSAL 15]SEQUENCESETNUMERICSTRINGPRINTABLESTRINGT61STRINGVIDEOTEXSTRINGIA5STRINGUTCTIMEGENERALIZEDTIMEGRAPHICSTRINGISO64STRINGGENERALSTRINGUNIVERSALSTRINGCHARACTER_STRINGBMPSTRINGtag number for Universal too largeuniversal tag for %li not foundInfinite length for primitive valueType mismatch. Bytes read: %ld Bytes available: %ldType mismatch. Total bytes read: %ld Bytes available: %ld Offset: %ldConstructive value must be an ArrayConstructive shall only be used with infinite lengthCan't convert nil into IntegerCan't convert nil into Boolean:���9���9�� 9��H:���8���8��H:��H:��H:��88��H:��H:��H:��H:��H:��H:��H:��H:��H:��H:��H:��H:���7���7��{H���E��DF��dF���F��<G���G��{H��{H��{H��DF��{H���F��{H��{H��{H��dG��dG���F���F���F���F���F���G��lE���F���F���F���F��{H���F��ossl_asn1data_to_derossl_asn1prim_to_derossl_asn1cons_to_derossl_hmac.cAllocating %d memHMAC wasn't initializedMemory alloc errorCannot convert buf to hexbufHMACErrorhexdigestinspectOpenSSL/HMACCannot allocate memory for hmacCRL wasn't initialized!ossl_x509crl.cnum < 0???CRLErrorissuer=last_updatelast_update=next_updatenext_update=revoked=add_revokedextensionsextensions=add_extensionOpenSSL/X509/CRLPrivate key is needed.ossl_pkey.cunsupported key typeCould not parse PKeyPKeyErrorOpenSSL/EVP_PKEY(long)buf_len <= RSTRING_LEN(str)OpenSSL::PKey::PKey is an abstract class.Cannot make new key from NULL.ossl_pkey_signSPKI wasn't initialized!ossl_ns_spki.cChallenge.length <= 0?NetscapeSPKIErrorchallengechallenge=OpenSSL/NETSCAPE_SPKIossl_spki_to_derName wasn't initialized.ossl_x509name.cname entries < 0!OBJECT_TYPE_TEMPLATEDEFAULT_OBJECT_TYPE[]NameErroradd_entryto_a<=>hashhash_oldcountryNameserialNumberdnQualifierDCdomainComponentemailAddressRFC2253ONELINEMULTILINEOpenSSL/X509/NAMEossl_x509name_to_derwrong config formaterror in line %dConfigErrorConfigDEFAULT_CONFIG_FILEPKCS12 wasn't initialized.ossl_pkcs12.cPKCS12_parse@certificate@ca_certs46Unknown PBE algorithm %sPKCS12ErrorOpenSSL/PKCS12ossl_pkcs12_to_derPKCS7 wasn't initialized.ossl_pkcs7.c@dataNegative number of recipient!Negative number of signers!signedencryptedenvelopedsignedAndEnvelopedCould not parse the PKCS7PKCS7ri wasn't initialized.PKCS7si wasn't initialized.Could not add recipient.Could not add signer.must specify a booleanunknown type "%s"32PKCS7Errorread_smimewrite_smimetype=detached=detacheddetached?cipher=add_signersignersadd_recipientrecipientsadd_certificatecertificates=certificatescrls=crlsadd_dataSignerInfoSignersigned_timeRecipientInfoenc_keyTEXTDETACHEDBINARYNOATTRNOSMIMECAPOpenSSL/PKCS7/RECIP_INFOOpenSSL/PKCS7/SIGNER_INFOOpenSSL/PKCS7OpenSSL::PKCS7#get_signer_info == NULL!signeddatasignedAndEnvelopedenvelopedencrypteddigestossl_pkcs7_to_derTHIS IS NOT A DSA!pub_keypriv_keyincomplete DSAPrivate DSA key needed!ossl_pkey_dsa.cDSA PUBLIC KEYNot a DSA key!DSAErrorsyssignsysverifypub_key=priv_key=ossl_dsa_to_derPKCS5_PBKDF2_HMAC_SHA1PKCS5_PBKDF2_HMACPKCS5PKCS5Errorpbkdf2_hmacpbkdf2_hmac_sha1EXT wasn't initialized!ossl_x509ext.cmalloc errorcritical=critical,unknown OID `%s'@config%s = %s@crl@subject_request@subject_certificate@issuer_certificate04CTX wasn't allocated!ExtensionErrorExtensionFactoryissuer_certificate=subject_certificate=subject_request=crl=config=create_extExtensioncritical?OpenSSL/X509/EXTENSIONOpenSSL/X509/EXTENSION/Factoryossl_x509ext_to_derRandomRandomErrorrandom_addload_random_filewrite_random_filerandom_bytespseudo_bytesegdegd_bytesstatus?THIS IS NOT A DH!incomplete DHossl_pkey_dh.cFailed to generate keyNot a DH key!DHErrorparams_ok?generate_key!ossl_dh_to_derENGINE wasn't initialized.NUMERICNO_INPUTopenssl#<%li id="%s" name="%s">no such digest `%s'no such cipher `%s'EngineErrorloadcleanupenginesby_idcipherload_private_keyload_public_keyset_defaultctrl_cmdcmdsMETHOD_RSAMETHOD_DSAMETHOD_DHMETHOD_RANDMETHOD_CIPHERSMETHOD_DIGESTSMETHOD_ALLMETHOD_NONEOpenSSL/Engineno such builtin loader for `%s'#<%li: subject=%+li, issuer=%+li, serial=%+li, not_before=%+li, not_after=%+li>CERT wasn't initialized!ossl_x509cert.cCheck private key:%sCertificateErrorCertificateserial=not_beforenot_before=not_afternot_after=OpenSSL/X509ossl_x509_to_dercall(null)error on stack: %sossl.cOSSL_DEBUG: IS NOW ON!
OSSL_DEBUG: IS NOW OFF!
empty sk!items in sk < -1???Turning on FIPS mode failedTurning off FIPS mode failedOpenSSL1.1.0OpenSSL 1.0.2u  20 Dec 2019OPENSSL_VERSIONOPENSSL_LIBRARY_VERSIONOPENSSL_VERSION_NUMBEROPENSSL_FIPSfips_mode=OpenSSLErrorossl_store_ex_verify_cb_idxX509_STORE_get_ex_new_indexdebugdebug=errorspassword must be longer than 4 bytespassword must be shorter then %d bytesStoreContext initialization failureexception in verify_callback is ignoredobject in array not of class ##type##ossl_store_ctx_ex_verify_cb_idxX509_STORE_CTX_get_ex_new_indexCRYPTO_num_locks() is too big: %d0123456789abcdefREV wasn't initialized!ossl_x509revoked.cRevokedErrorRevokedOpenSSL/X509/REVBN wasn't initialized!bignum too longinvalid radix %dDon't know how to coerceCannot init BN_CTXBNErrornum_bytesnum_bits+-/%mod_addmod_submod_mulmod_sqr**mod_expgcducmp===zero?one?odd?pseudo_randpseudo_rand_rangegenerate_primeprime?set_bit!clear_bit!bit_set?mask_bits!>>lshift!rshift!to_intmod_inverseprime_fasttest?OpenSSL/BNCannot convert into OpenSSL::BNusing default DH parameters.@context@renegotiation_cb@ioclosed?@sync_close@_protocolsarg must be Time or nilcache_numconnect_goodconnect_renegotiateaccept_goodaccept_renegotiatecache_hitscb_hitscache_missescache_fulltimeouts@tmp_dh@session_remove_cb@session_new_cb@session_get_cb@x509@npn_select_cbSSL_CTX is not initialized.ossl_ssl.cSSL_CTX_set_cipher_listunknown SSL method `%s'.SSL_CTX_set_ssl_version@%sSSL_session_reused@hostnameSSL_newSSL_set_tlsext_host_name@client_cert_cb@tmp_dh_callbackSSL_set_sessionwrite would blockread would blockwait_writablewait_readableSSL_writesyswriteSSL_acceptSSL_connectSSL_CTX_new11:SSL_readsysread@cert_store@extra_chain_certSSL_CTX_use_certificateSSL_CTX_use_PrivateKeySSL_CTX_check_private_key@client_caSSL_CTX_add_client_CA@ca_file@ca_pathcan't set verify locations@verify_mode@timeout@verify_depth@options@npn_protocolsSSL NPN select callback added@session_id_context@servername_cb@callback_stateossl_ssl_ex_vcb_idxossl_ssl_ex_store_possl_ssl_ex_ptr_idxSSLErrorWaitReadableSSLErrorWaitWritableSSLContextssl_timeoutssl_timeout=ssl_version=ciphers=setupSESSION_CACHE_OFFSESSION_CACHE_CLIENTSESSION_CACHE_SERVERSESSION_CACHE_BOTHSESSION_CACHE_NO_AUTO_CLEARSESSION_CACHE_NO_INTERNALsession_addsession_removesession_cache_modesession_cache_mode=session_cache_sizesession_cache_size=session_cache_statsflush_sessionsMETHODSSSLSocketto_ioconnect_nonblockaccept_nonblocksysread_nonblocksyswrite_nonblocksysclosepeer_certpeer_cert_chainpendingsession_reused?session=verify_resultnpn_protocolVERIFY_NONEVERIFY_PEERVERIFY_FAIL_IF_NO_PEER_CERTVERIFY_CLIENT_ONCEOP_MICROSOFT_SESS_ID_BUGOP_NETSCAPE_CHALLENGE_BUGOP_MICROSOFT_BIG_SSLV3_BUFFEROP_MSIE_SSLV2_RSA_PADDINGOP_SSLEAY_080_CLIENT_DH_BUGOP_TLS_D5_BUGOP_TLS_BLOCK_PADDING_BUGOP_ALLOP_SINGLE_ECDH_USEOP_SINGLE_DH_USEOP_EPHEMERAL_RSAOP_CIPHER_SERVER_PREFERENCEOP_TLS_ROLLBACK_BUGOP_NO_SSLv2OP_NO_SSLv3OP_NO_TLSv1OP_NO_TLSv1_1OP_NO_TLSv1_2OP_NO_TICKETOP_NO_COMPRESSIONOP_PKCS1_CHECK_1OP_PKCS1_CHECK_2OP_NETSCAPE_CA_DN_BUGexceptionOpenSSL/SSLOpenSSL/SSL/CTXTLSv1_serverTLSv1_clientTLSv1_2_serverTLSv1_2_clientTLSv1_1_serverTLSv1_1_clientSSLv2_serverSSLv2_clientSSLv3_serverSSLv3_clientSSLv23SSLv23_serverSSLv23_clientSSL session is not started yet.SSL object could not be retrievedSelected protocol name must have length 1..255SSL SESSION get callback enteredSSL SESSION remove callback enteredSSL SESSION new callback enteredAdvertised protocol must have length 1..255%s SYSCALL returned=%d errno=%d state=%s%s returned=%d errno=%d state=%sSSL NPN advertise callback addedSSL_CTX_set_session_id_contextSSL SESSION get callback addedSSL SESSION new callback addedSSL SESSION remove callback addedSSL TLSEXT servername callback addedservername_cb must return an OpenSSL::SSL::SSLContext object or nilossl_ssl_ex_client_cert_cb_idxossl_ssl_ex_tmp_dh_callback_idxSESSION_CACHE_NO_INTERNAL_LOOKUPSESSION_CACHE_NO_INTERNAL_STOREOP_NETSCAPE_REUSE_CIPHER_CHANGE_BUGOP_SSLREF2_REUSE_CERT_TYPE_BUGOP_DONT_INSERT_EMPTY_FRAGMENTSOP_NO_SESSION_RESUMPTION_ON_RENEGOTIATIONOP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG ������������������������;`���|4������������0���t��������d��@D���$�����$��H���|� ���T!����!��"��Xd#���$���4$���t$����$���$��84%��Xt%��x�%����%���4&���(���*��`�+���t-���4/��T1��@�1��\d2��|$6���D6���d6���T7���T8��$ D9��P T:��| d<��� �>��0!?��L!4?��h!d@���!�@���!�@���!A���!4A��"tA��0"�A��L"�A��h"DB���"$C���"tC���"�E��0#�E��D#�E��X#G���#�G���#H���#tI�� $J��L$�J��|$M���$$M���$N���$O��%$P��4%DQ��d%dQ��x%�Q���%�Q���%TR���%�R���%dS�� &4T��P&dT��d&$U���&�V���&�V���&�V���&�W��'�W��,'4Z��|'D[���'T[���'t\���'�\���'t]��((�^��T(t_���(�`���(ta���(�a��)�a��0)tb��\)c���)$c���)Tc���)d���)Dd��*dd��(*�d��H*e��d*De���*te���*f���*�f���*�f��+�g��@+�h��|+�i���+dk��,�l��h,�q���,�w���,�w��-�x��4-{��h-�{���-�|���-D~��.�~��(.$��\.���x.$����.$����.T����.�����.���8/D���t/�����/Ć���/���(0d���d0t����0d����0����H1����d1���1�����1T����1d����1t���2T���$2����p2�����2T����2ĝ��@3����l3D����3d����3ԡ���34���$4Ĥ��P4T����4ħ���4Ԩ���4ԩ��$5ī��p54����5����6$���<6d���X6����t6Գ���6T����64���7Ե��87T���d7�����7����7ķ���7t����7ĸ��8��08d���L8���h8�����8$����8Ի���8ļ��9���D9���X9����9d���9����9����94��:���(:���D:��`:���:$���:���:���(;���D;���d;���x;4���;T���;4���;��<4��4<���`<t���<����<���<T��=���(=���D=��`=t���=����=d�� >���L>���h>$���>����>���>T���>t��?���@?4��l?����?���?d���?���@$�,@��X@��l@D��@���@4��@��A��4A��HA���A���A���A��B��DB���B���B���B��Bd�C��hC��Ct��C��C$�D��DD��`DT�D��D��D���D$���ET���<E���XE4���tE�����E��ET����E����$F���PFt���|F����F4����F����G�,GT���XG�����G����Gt����G���H4���4H����`H��HT����H�����H��It��<I���hI���I����I$���Id��J���HJ��tJ����J4���J����Jt���J4
��8K4��tKT���K
���K���L���lL���L���L��M#��PMD#��pMT#���M�#���Mt'���MD)��(Nt8��tN�8���N�9���N�:���N�;��0O=���OT=���Ot=���O�=���OT>��P�>�� Pt?��\P@���P�A���P�A���P�C��Q�D��8QtE��dQTF���QTH���Q4I��RDJ��DRTK��xRtK���R�K���R�K���R4L���RTM��HS�M��tSDN���S�N���S�O��,T�P��XT$Q���TTQ���T�Q���T�Q���TR��U�R��0US��PU�S��|UDT���U�T���UTW���UdW���U�X��$VTZ��\V�Z��xV�Z���V4[���V�[���V\��W�\��@W^��|W�^���WT_���W`��X�`��,X�a��XX�b���X�b���X�c���X�d���X�e��Y�f��@Y�g��dYh���Y4h���Y�h���Yi��ZTi��0Z�i��LZ�i��hZ�k���Z�k���Z�l���Z�n��[�o��H[�q���[�s���[�t��\4u��\�u��L\v��d\�v��|\Tw���\�w���\$x���\�x��]�{��4]T}��`]�}���]���]���]���^D���,^D����^ą���^ԅ���^���^���(_���<_�����_��_D���<`���`t����`�����`đ��(a��Da���`aD���|a�����aĒ���a���aT����a����b�8b����tb�����bD����bd����b�����bĕ��cD���Dc����hc����c$����c�����c�����c�d���0d���`dd����dĚ���d$����dt���e� e����leԝ���e�����eԟ��ft���Hf4����f�����f�����f����$g�Tgԭ���g�����g���� ht���dhT����h�����h4����h����,iķ��tit����i�����iD���j����@jD���xjd����j�����j���j$����jd���k����4kt���tk���kT����k���lt�� l��<ld���l����lD���lT��mt��4m��lm$���m����m����m���,n���dn����n����n4���n����n���oD��8o���do����o4���o����o4��p���Dp��`pd��|p����p����p���q��q���Tq$��tqD���q����q���qd���q���rD��4r���`r���|r��r���r��4s��xs���s���s��t��DtT�pt���t��td�u�� u��DuT�`ut�|u���u���u4��ut��u�(v��Lv��v���vt�wt�,w$�Lw��lw��wd����w����x����Dx�����x����x$����x��x��� y��<yD���hy�����y����y$����yD����y��z����@z���\z���xzT���zd���zt���z���({���d{����{����{���{$���{���|4	��h|T
���|�
���|4���|���(}���D}���p}$
���}t
���}�
���}$��~t��~���H~$��d~t���~����~D���~���(t��T���td�������T���4������@�d��l����������������d�������T��@����\����x���������������$��Ё��������H����\�$��x����Ȃ!���t"��h�#�����$���T&��,��&��H��&��h��'����t(�����(��܄�)����-��$�-��8�$-��L�/����4/����d/��Ѕ�/�����0��L��1��x��1�����1����2��܆D2�����2���d3��@��4��\��4��p��4�����4����6�����:����:����:��$�;��@�T;��\��;��|��;����D<��Ĉ�<����<����4=��4��=��l�t>�����>��ԉT?����?��,�T@��X��@����TA�����B����C��8��D��d��E�����G��ċ�H����I�� �TK��\��L����4M����dM��Ќ�N���P��t��P�����P��̍DQ�����Q��$��R��`�dT�����U��܎$W����X��X�Z����t[��؏�\���d_��T��`����b��̐dc����c��8��i��\��i��p��i�����j�����j��̑$k����k��$�Dl��D��l��d�Dm�����m��ВDn����n���To��l��o����$p��̓4q����q��4��q��H��r��t�$s����ts��̔ty�����y���z��<�{��p��{����4|��Е�|����}��8�t~��h��������������0�d���X�D�����4���ܗ��������D������$�������t���0�T���l�D�����$���ܙT������������x�t�����������d����������Ĕ��4��P�$���l�ԕ����4���ț��������@�$���T�4���h�����T���Ԝħ�����<�$�����4���������ԝ�����Ժ����zRx�$����06FJw�?:*3$"D��� 6,\P����F�H�A ��
ABA@�����F�A�A �G0E
 DABEU
 DABA@������F�A�A �G0E
 DABEU
 DABA@H����F�A�A �G0E
 DABEU
 DABA@X���F�A�A �G0E
 DABEU
 DABA@������F�A�A �G0E
 DABEU
 DABA@�����F�A�A �G0E
 DABEU
 DABA@$�����F�A�A �G0E
 DABEU
 DABA@hT����F�A�A �G0E
 DABEU
 DABA8��F�E�D �F(�DP
(A ABBK0����tF�A�A �D0�
 AABHD ���F�E�G �A(�DP�XN`LXAPP
(A ABBF(d����E�A�D N
AAE�\��"E�\H�p���B�E�D �C(�D0K
(D ABBJL(D ABB(����OE�A�G }
AAD4$����E�D�D v
FAF^
AAA\P��AAKxT��?Hb
FI
A�t��?Hb
FI
A����?Hb
FI
A����?Hb
FI
A����?Hb
FI
A���?Hb
FI
A8��?Hb
FI
AX4��?Hb
FI
A@xT���B�E�B �A(�D0�D��
0A(A BBBF@��	���F�E�H �D(�A0�DP!
0A(A BBBK(\���E�F�N@|
AAI8, 
���F�E�A �F(�DP�
(A ABBH8h����F�E�A �F(�DP�
(A ABBH8�(��F�E�D �F(�DP
(A ABBK���_Hf
A�P���E�J
A����E��<���P���(d����E�A�G0~
AAC0�\���F�A�D �D0�
 AABG(�(���E�A�G0
AAB(����E�H�D0�
AAH@���F�B�B �A(�K0�DP
0A(A BBBFl`���zF�B�B �B(�K0�C8�G�a�L�M�D���S�P�C�\
8A0A(B BBBK����&E�`���� E�Z8	���%F�B�A �A(�G0�
(D ABBGD	���!J�L�`	���AAF|	���WE�t
A�	��AAK�	��:He
H�	<��:He
H�	`��:He
H
���NH@
A0$
����F�A�D �D@�
 AABIX
d ��AHl
HXt
� ��ZB�B�B �E(�K0�A8�G���U�P�D�y
8A0A(B BBBH�
�"���
�"��0�
�"��F�A�A �G��
 AABA(,�#��vF�G�A �v
ABI(X�#��vF�G�A �v
ABI8�($��ZF�B�G �A(�N@�
(A ABBH(�L%���E�A�G m
DAE,��%��|M�K�C �J
ABA&���L�]<p(��	(Pl(���E�A�D0�
AAA(|0)���E�A�D0�
AAA(��)��E�A�D0�
AAB,��*��F�A�A �Y
ABD
�+��
�+��AAK4
�+��iH V
AP
<,��QHq
GG
E(p
|,��ZF�A�D �k
DBL �
�,���E�R
Qf
B,�
<-���F�A�D �F
DBI�
�-��-8�-���F�B�A �A(�G0T
(A DBBA@|.��[L�<\�/��p�/��	0��/��
F�A�A �N@A
 AABE��0��	L��0��pF�I�B �B(�A0�A8�D�
8A0A(B BBBA(�2��
E�A�N0�
AACH�3��	(\�3��E�H�D0�
AAA��4��	(��4���E�A�N@@
AAJ(�D5��E�H�D0�
AAAL�86���F�I�B �A(�A0�}
(D BBBFG
(A EBBA(D�6��
E�A�N0�
AAC(p�7���E�A�N@@
AAJ�p8��>HY
E��8��.A�(��8���E�A�N M
DAA(�9���E�A�N M
DAA(t9��AAFDx9��*E�[
E,`�9���F�A�A �O
ADF�:��*E�[
E�0:��AAK�4:��WHv
JI
A�t:��2H]
H�:��:He
H �:��*E�[
E(<�:���F�K�D �}
ABA,h4;���F�A�A �O
ADF��;��*E�[
E(��;���F�D�J �s
KEI8�<<��!F�L�A �A(�FP�
(A ABBC80=��1F�L�A �A(�FP�
(A ABBDTX4>��gF�B�B �B(�A0�K8�FpYxF�RxAp�
8A0A(B BBBCT�L?��gF�B�B �B(�A0�K8�FpYxF�RxAp�
8A0A(B BBBC\d@���F�E�B �B(�D0�D8�D��
8A0A(B BBBB��J�Y�A�(h�D��0M�H�A �FI��J��	(��J���E�H�D0�
AAF0��K��6F�H�A �D0
 AABH,�M���F�D�A �_
ABC48DN���E�H�D E
DAEK
ADE8p�N���F�L�G �A(�G`�
(A ABBK�0P��8E�[
E0�TP���F�D�A �D0L
 AABA��P��RHg
I(Q���E�A�G z
AAADxQ���E��dXR��%E�[�lR��%E�[8��R��wF�I�A �A(�G0�
(D ABBA8��S��5F�I�A �A(�G0q
(D ABBA8�T��?F�I�A �A(�G0{
(D ABBA8P�U��?F�I�A �A(�G0{
(D ABBA8��V��IF�H�A ��
FBBA
CBA8��W��AF�H�A �y
FBHA
CBA<�X��	I�B�E �A(�A0�{
(D BBBA@D�Y���F�B�L �A(�D0�IP/
0A(A BBBG\�t]��F�B�B �H(�K0�A8�G�~
8A0A(B BBBC/�B�P�D��4a��*E�]Ha��*E�]( \a���E�H�D 
AAE(L�a���B�A�J �{
ABExtb���pb�� �lb���E�D f
DEH�(c��VF�B�E �E(�A0�D8�N@�
8D0A(B BBBA,<d���F�A�A �h
AJEL@�d���F�B�D �A(�N0k
(C ABBB�
(A ABBAL�\f��kF�L�B �D(�A0�I`hhXpRhA`�
0A(A BBBE(�|j���E�A�D `
AAEL@k���B�B�E �D(�A0�D@�
0A(A BBBGlHJPPHA@\�m�� p�m��aE�N0G
AA,��m��VE�D �
CHB
FA(�o���E�A�D@�
AAF,�lp���F�A�K ��
ABF, �q��iF�A�A ��
ABD4Ps��E�D�D f
GAEd
FAA8��s���F�A�K �I
ABBI
ABAH��t���F�B�B �B(�D0�D8�D@�
8D0A(B BBBALLv��eF�B�A �D(�D0S
(D ABBCy
(D ABBAH`lw��eF�E�B �B(�A0�A8�Gpp
8A0A(B BBBF,��{��{E�G
M�����'
H��|��>A�x�}��AAK}��OHb
H40<}��yE�H�D n
DDID
FAADh�}���F�G�D �M
ABGN
ABGN
ABA$�~���HS
EK
EK
E(��~��vE�A�N m
DAJ�~��OHb
H ��bHi
OI
A(@l���E�H�D B
DAA(l����E�H�D B
DAA�t���OE�e
H�����AAK�����yE�q
N�����E�{
A ����yE�q
N $ ����E�y
JF
A(H t����E�D�D y
DAA,t �����F�A�A �P
ABE<� ����
F�I�A �A(�D0�
(A ABBK� ����	(� �����E�A�N0�
AAF($!X���uE�K�D k
DAAP!����=E�[
El!Ќ��AAK �!Ԍ��jE�G D
DD�! ���AHl
H�!T���:He
H�!x���:He
H8"�����F�B�A �A(�G0�
(D ABBA(<"`���E�A�D0R
AAB0h"T����F�A�A �N@�
 AABG(�"���E�D�D |
DAA�"d���UE�=�"�����L��#x���	#t���4E�j4#����E�V0P#�����F�D�A �F0\
 DABD0�#H����F�D�A �F0\
 DABD�#�AAK(�#����bF�G�D �t
ABH@$<����F�B�B �A(�A0�NP*
0A(A BBBA(D$ș��RF�A�D �q
ABAp$����?Ha
GI
A�$���2H]
H�$@���2H]
H�$d���2H]
H�$����:He
H(%����VE�A�N h
DAG\,%��AF�I�A �A(�D0l
(D ABBFQ
(A ABBID
(G DBBE0�%���F�A�K �DP
 AABE(�%<���dE�K�D B
DAD�%����AAF&����*E�[
E($&����cE�A�J p
DAA(P&ܝ��cE�A�J p
DAA|& ���MHg
A�&T���AAK(�&X���RF�A�D �q
ABA(�&����WE�D�N u
DAA'�����E��
A,'@���*E�[
E(H'T���VF�G�A �q
ABF(t'����VF�G�A �q
ABF(�'����VF�G�A �q
ABF(�'�VF�G�A �q
ABF�'$���;c((P���E�A�G m
AAA(8(�����E�A�G S
DAAd((���;c(x(T���^E�A�G a
DAA,�(����@F�O�H �v
AUG�(����	H�(�����F�E�B �B(�A0�C8�S@
8D0A(B BBBF(4)8����E�H�D0�
AAA(`)���E�H�D0�
AAA(�)����E�H�D0�
AAA(�)�����E�H�D0�
AAA8�)H���F�B�A �A(�G0�
(D ABBA0 *���F�A�A �G@K
 AABBT*����AAFp*����*E�[
E(�*���_E�K�D h
DAAL�*D���F�I�A �A(�D0[
(D ABBGQ
(A ABBI(+���hE�K�D n
DAD84+X���{F�L�D �A(�G0v
(D ABBA(p+����_E�K�D h
DAA�+��OHe
E(�+���_E�K�D h
DAA�+8���KHa
E(,l���tE�D�D l
DAA,,����GHa
FH,�RHg
I(d,8���E�A�G m
AAA(�,�����E�A�G z
AAA�,���+E��,���jH \
A�,d���jH \
A(-����UE�D�F _
AAH(@-��UE�D�F _
AAH(l- ���UE�D�F _
AAH(�-T���UE�D�F _
AAH(�-����UE�D�F _
AAH(�-����UE�D�F _
AAH(.�UE�D�F _
AAH(H.$���UE�D�F _
AAH(t.X���UE�D�F _
AAH(�.����UE�D�F _
AAH(�.����UE�D�F _
AAH(�.�UE�D�F _
AAH($/(���UE�D�F _
AAH(P/\���UE�D�F _
AAH(|/����UE�D�F _
AAH(�/ĵ��UE�D�F _
AAH(�/����UE�D�F _
AAH(0,���UE�D�F _
AAH(,0`���UE�D�F _
AAH(X0����UE�D�F _
AAH(�0ȶ��UE�D�F _
AAH(�0����UE�D�F _
AAH(�00���UE�D�F _
AAH1d���!E�[,$1x����A�C
Dy
GF
BF
A(T1����eA�H�D n
DAH�1<���=E�G jFD�1\���'E�D�a�E�[�A��
AH]�E�[�A�(�1D���fE�A�D k
DAA2�����D q
K(02����E�A�G�l
AAA\2p����H0u
C x2���xA�C
DW
A8�2p����F�E�A �A(�FP�
(A ABBI8�2��F�E�D �D(�G0�
(D ABBH43����A�D�D p
AAEi
AAA4L3�����F�B�A �A(�G0�(D ABB4�3����E�C�NPYXF`RXAP
AAGL�3����	B�B�B �B(�D0�D8�G��
8A0A(B BBBDL4 ��bF�E�B �B(�A0�A8�D�
8A0A(B BBBF \4@���E�GP�
AK �4���E�GP�
ACH�4���F�B�B �B(�A0�A8�Gp%
8A0A(B BBBD�4���,HP
HG5���$5���PE�_
A8@5����F�B�A �A(�G@�
(A ABBDH|5����F�B�B �B(�A0�A8�GP�
8A0A(B BBBIH�5��%F�B�B �B(�A0�A8�D@{
8H0A(B BBBJ6��E�L006��'B�D�G �G�s
 AABAd6���H0�
AL�6��OF�B�E �A(�A0�D`�hUpIhA`|
0A(A BBBHL�6��F�B�E �A(�A0�DP�XU`IXAP`
0A(A BBBD$ 7|�FE�N�D iDAH7��AAKd7��hH0U
A �7��jE�G D
DD�7H�1E�f
A8�7l��F�B�A �A(�G0z
(D ABBA0�7��F�D�A �G0\
 DABK08|�sE�[L8��	H`8��F�E�B �B(�A0�C8�S@'
8D0A(B BBBF(�8���E�H�D0�
AAA(�8T��E�H�D0�
AAA(9��E�H�D0�
AAAH09��F�E�B �B(�A0�C8�S@
8D0A(B BBBF(|9p����E�H�D0�
AAA8�9$���F�B�A �A(�G0�
(D ABBA0�9����F�A�A �G@K
 AABB:���AAF4:���*E�[
EP:��AAK(l:�kF�A�K �x
ABAL�:4���F�I�A �A(�D0[
(D ABBGQ
(A ABBI(�:���mE�K�D y
AAA8;H���{F�L�D �A(�G0v
(D ABBA(P;����gE�K�D p
DAAL|;���&F�I�A �A(�D0h
(D ABBJQ
(A ABBI(�;�����E�G�G0^
AAA(�;$����E�G�G0Z
AAA$<����.H\
E@<����.H\
E(\<����_E�K�D h
DAA�<�.H\
E(�<����F�D�A �z
ABH�<|���QHt
DG
E(�<����E�A�G m
AAA(=����E�A�G P
DAAH=����RHg
Id=����E���=h��	(�=d��:E�A�Gp�
AAC4�=x���F�C�D �G�
 AABH�=���9L�T
A>��PE�w
A(4>H��LF�A�H �rDB8`>l���F�B�A �A(�D@x
(A ABBD�>���,�>����E�f
EI
GD
LD
E8�>L��jF�I�A �A(�DPi
(A ABBD(?����E�A�D0}
AAG(H?$��E�A�G m
AAA(t?x���E�E�G G
AAA(�?���E�A�G P
DAA(�?����E�E�G j
DAA(�?D	��:E�H�D 
AAJ$@X
��	 8@T
���E�G [
AH(\@�
���E�H�D0�
AAA(�@���E�H�D0�
AAA(�@���E�A�N@|
AAF �@l
���E�h
KR
F4A���E�K�D m
FAHD
CAA<Ap��AAF,XAt��oF�A�D �C
ABA(�A���_E�K�D h
DAA�A���OHe
E�A��fE�w
E�Ap��*E�[
EB����L�l$B���	(8B���E�H�D0�
AAALdB����F�I�B �B(�A0�A8�G�>
8A0A(B BBBA0�B���4F�K�A �D@�
 AABDL�B����F�B�B �K(�A0�DP�XN`LXAPc
0A(A BBBB08C��F�K�F �G`_
 AABG0lC���"F�A�F �J@�
 AABG�C���8E�[
E,�C���B�A�A �D
GBE�C���-HdD����tVD`��dHq
GG
E<D���dHq
GG
E\D��RHg
I(xDD��E�A�G m
AAA,�D���%E�A�D �
FHI(�D���rE�A�G0�
AAF(E����E�H�D nDA(,EP ��E�H�D0�
AAAXED!��	@lE@!���F�B�B �A(�A0�GpS
0A(A BBBB�E�"��8E�[
E��E#���F�I�B �B(�A0�A8�G�^�L�F�F�G�G�F�F�P���K�B�B�_��
8A0A(B BBBHTF�%���L��
YtF�&��	�F�&��	(�F�&��E�H�D0�
AAA�F�'��	\�F�'��mF�B�B �B(�D0�A8�N�a�F�W�A�E
8A0A(B BBBCL<G�)��eF�B�B �B(�A0�A8�G� I� �
8A0A(B BBBAL�G+��OF�I�B �A(�A0��
(D BBBE`
(A BBBEL�G,���F�I�B �A(�A0��
(D BBBEN
(A BBBE(,HP-���E�l
GM
K^
R0XH�.��5F�A�A �G@K
 AABB8�H�/��F�B�A �A(�G0�
(D ABBA�H�0��AAK�H�0��+HY
EI�0��/H]
EI�0��BH]
E8I�0��.H\
ETI1��AAF(pI1��bE�A�J o
DAA�IP1��*E�[
E�Id1��jHq
GH
E8�I�1���F�B�D �D(�J0K
(D ABBAJ2��*E�[
E(0J2���E�H�D x
AAE\J�2��AAK xJ�2��?A�j
EE
E�J�2��HI,�J�2��}F�D�D �M
ABB �J�2��?A�j
EE
E,K3��}F�D�D �M
ABB8Kd3��HI(PKl3��^F�K�A �k
ABA|K�3��(�K�3��^F�K�A �k
ABA�K�3��,�K�3��F�H�D �q
ABA8L�4��AF�D�H ��
ABAc
ABA(<L�5��_E�K�D h
DAAhL�5��WE�e
F�L86��AHm
G�Ll6��{E�@
AH�L�6���F�B�B �B(�A0�K8�D`[
8A0A(B BBBAM08��*E�[
E0(MD8���F�D�A �D0�
 AABA@\M�8��!F�B�B �A(�C0�NP�
0A(A BBBBD�M�9���F�I�A �A(�D`ahFpWhA`�
(A ABBFL�M$;���F�I�B �A(�A0�FpcxF�RxAp�
0A(A BBBF8N�<��AH\
E8TN�<��F�I�A �C(�DP�
(A ABBF0�N�>��F�V�A ��
FII,�NhD��[F�H�A �
ABA@�N�E���F�A�A �G0E
 DABEU
 DABA@8O4F���F�A�A �G0E
 DABEU
 DABA@|O�F���F�A�A �G0E
 DABEU
 DABA@�OlG���F�A�A �G0E
 DABEU
 DABA@PH���F�A�A �G0E
 DABEU
 DABA HP�H��%E�D �
AD(lP�I���E�D�D@�
AAD0�P4K��sF�A�A �D0�
 AABED�P�L��F�E�G �A(�DP�XN`LXAPh
(A ABBI(QHN���E�A�D N
AAE$@Q�N��2E�YC LCAHhQ�N���B�E�D �C(�D0K
(D ABBJL(D ABB(�Q(O��_E�A�G �
AAF4�Q\P���E�D�D o
FAE^
AAAR�P��AAK4R�P��?Hb
FI
ATR�P��?Hb
FI
AtRQ��?Hb
FI
A�R(Q��?Hb
FI
A�RHQ��?Hb
FI
A<�RhQ���B�E�A �A(�G�
(A ABBG@S�R��gF�E�H �D(�A0�DP�
0A(A BBBA(XS$U��oE�G�D m
AAA�ShU��iE�e
O�S�U���E�J
A�SLV���E�}D�S�X��CF�H�A �A(�D@�HDPFHA@I
(D ABBCL$T�Y��SF�H�B �A(�D0�D@�HDPFHA@I
0D(A BBBDtT�Z��L�[�TH[��	(�TD[��E�H�D0�
AAA4�T8\���E�H�D E
DAEK
ADEU�\��	0 U�\���F�A�A �J0�
 AABD8TU�]��
F�L�A �F(�G`�
(A ABBK8�U�_��&F�B�K �A(�DPK
(A ABBG4�U�a���E�H�D y
DAIP
DAEV(b��AAK V,b��7Hc
G<VPb��8E�m
A0XVtb���F�D�A �D0L
 AABA�V�b��AAK,�V�b��TF�D�A �@
ABA(�Vc��MF�D�A �y
ABA(W(c��MF�D�A �y
ABA(0WLc��MF�D�A �y
ABA(\Wpc��MF�D�A �y
ABA,�W�c���E�N@YHFPWHA@^
AA(�Wd���E�P�I N
DAA�Wxd��8E�[
EX�d��RHg
I(X�d��E�A�G m
AAA(HX4e���E�A�G z
AAA,tX�e��pF�O�H ��
HIJ�X�h��HO4�X�h���E�D�G0{
DAH[
DAA�XHi��qH x
H`
AY�i��AAF0Y�i��[H }
K(LY�i��^E�D�D y
DAExY$j��[H ~
J�Yhj��[H D
D �Y�j��~E�G F
FH(�Yk��^E�D�D y
DAEZ<k��9L�,Z`l��,F�H�A ��
ABA@LZ`m���F�A�A �G0E
 DABEU
 DABA@�Z�m���F�A�A �G0E
 DABEU
 DABA@�Z�n���F�A�A �G0E
 DABEU
 DABA@[4o���F�A�A �G0E
 DABEU
 DABA,\[�o���F�K�A �s
ABH(�[�p��TE�A�D0�
AAG(�[�q���E�A�D L
AAE(�[Xr���E�A�D L
AAE\�r��!E�[H,\�r���B�E�D �C(�D0K
(D ABBJL(D ABB(x\4s��OE�A�G }
AAD�\Xt��AAK �\\t��pE�q
JI
J�\�t��VE�e
O]�t��AAK]�t��?Hb
FI
A<]u��?Hb
FI
A\]0u��?Hb
FI
A|]Pu��?Hb
FI
A(�]pu���E�D�D q
DAA �]�u���E�D f
AA8�]Pv��kB�E�D �A(�D��
(A ABBA8(^�w���F�E�G �D(�DP�
(A ABBD8d^(y��yB�E�D �D(�D0A
(D ABBA(�^ly���E�K�I@m
AAH�^@z���E�J
A�^�z���E��_p}��	8 _l}��fF�I�A �A(�D0/
(D ABBAH\_�~��1F�L�H �B(�A0�A8�G`�
8A0A(B BBBC8�_����F�L�D �A(�DP�
(A ABBA8�_H����F�L�D �A(�DP�
(A ABBA4 `���oF�B�D �A(�D0T(D ABBX`D���HN p`L����E�K �
AG(�`�����E�D�D0�
DAB�`����AAK(�`����]F�H�D �r
DKEaԂ��2H]
H$a����2H]
H(@a���^E�G�D n
FAKlaP���AAF(�aT����E�D�D0X
AAA(�aȃ���E�D�D0X
AAA�a<���LHf
A�ap���*E�[
E b����OL��
T<b����	HPb����F�E�B �B(�A0�C8�S@'
8D0A(B BBBF(�bp���E�H�D0�
AAA8�bd���F�B�A �A(�G0�
(D ABBA0c8���F�A�A �G@K
 AABB8c���AAFTc���*E�[
Epc,���AAK(�c0���kF�A�K �x
ABAL�ct����F�I�A �A(�D0[
(D ABBGD
(A ABBE4d��E�A�J x
DACo
FAJ(@d����kE�A�J u
DAD,ld�oF�A�D �C
ABA(�d0���_E�K�D h
DAA�dd���OHe
E(�d�����E�G�G0^
AAA(e����E�G�G0]
AAA<e����OHe
EXe����NHd
E(te��_E�K�D h
DAA�e���OHe
E(�eP���_E�K�D h
DAA�e����OHe
E(f����JE�K�D k
DAA0fܐ��2H]
HLLf����F�B�B �B(�A0�A8�G@@HHP[8A0A(B BBB(�f@����E�H�D @
AAE(�f�����F�D�A �z
ABH�f���QHt
DG
E(gX����E�H�D x
AAE(@g�����E�H�D x
AAElg ���RHg
I(�gd����E�A�D0�
AAK(�g���E�A�G m
AAA(�gl����E�A�G P
DAAh�*E�,h���@h����PH B
A(\h0���gE�A�G0[
ICL�ht���<E�v8�h�����B�E�D �A(�G0�
(G ABBF�h���+E�e�h ���E�Li$���,i0���-@iL���E�N\iP���$piL����L�^
Fk
EnL�i�����F�B�B �A(�A0��
(D BBBGL
(A BBBA�iT����i`���QH ~
ALj����iF�B�A �A(�D0S
(D ABBFU
(A ABBELhjĜ��iF�B�A �A(�D0S
(D ABBFU
(A ABBEL�j��iF�B�A �A(�D0S
(D ABBFU
(A ABBE0k����F�K�A �J0j
 AABFH<kp���rF�B�E �B(�D0�D8�GPL
8A0A(B BBBD@�k�����F�B�B �D(�A0�IpR
0A(A BBBF�k ���UH G
A�kd���)L�S
ADlt����EAG�8$l����F�G�A �D(�D0x
(D ABBA`l����nE�Y
B|l����K��
A(�l����UE�A�D �
AAJ�lا���lԧ��	H�lЧ���F�E�B �B(�A0�C8�S@
8D0A(B BBBI8mt���AAFTmx���*E�[
E(pm����dE�K�D m
DAAL�m��F�I�A �A(�D0[
(D ABBGQ
(A ABBI(�m�����E�G�G0W
AAAn���AAK4n���+HY
E(Pn���>E�K�D _
DAA|n0���*HX
E�nD���bHx
H(�n�����E�A�G H
AAA�n���1E��n@���
o<���$o8���	 8o4���?A�D0�
AG,\oP���xE�C
J���I�G��
F�o����AAF�o����*E�[
E�o����AAK�o����AHs
A�o�MH`
HT
Dp ���-H\
D(8p4���oE�H�D {
DAAdpx���2H]
H�p����>Hf
K4�p����aE�K�D m
CAKD
FAA4�p�����E�D�J X
CAA~
FAA8q`����F�I�A �A(�D0X
(F ABBA(HqĴ��^E�G�D t
DAG(tq����vF�K�A �p
ABK(�qL���vF�K�A �p
ABK(�q����vF�K�A �p
ABK(�q�vE�G�D u
DAF($rH���vE�G�D u
DAF@Pr����CF�L�B �A(�A0�DP�
0A(A BBBJ@�r����CF�L�B �A(�A0�DP�
0A(A BBBJ(�r�����E�K�F@�
AAF(s�����E�K�F0l
AAD00s,���F�A�A �N0�
 AABF(ds����E�D�G M
GAK,�s����7F�H�A �j
KBJ8�s����rF�B�A �A(�J0�
(K ABBL8�s�rF�B�A �A(�J0�
(K ABBL8t4���RHg
ITtx���/HN
A8pt����RF�B�A �A(�J0�
(K ABBLd�t����GF�B�B �L(�A0�A8�DpYxF�WxBpHxK�NxApk
8A0A(B BBBE(u���hF�A�G �r
ABE(@u���hF�A�G �r
ABE(lu ��JE�A�J k
CAF(�uD��JE�A�J k
CAF8�uh��RF�B�A �A(�J0
(K ABBM<v���bF�B�B �A(�D0��
(K BBBH8@v���RF�B�A �A(�J0
(K ABBM8|v���RF�B�A �A(�J0
(K ABBM<�v��bF�B�B �A(�D0��
(K BBBH<�v4��bF�B�B �A(�D0��
(K BBBH<8wd��bF�B�B �A(�D0��
(K BBBH8xw���RF�B�A �A(�J0�
(K ABBK<�w����F�B�B �A(�A0�^
(D EGDJ8�w��RF�B�A �A(�J0
(K ABBM80x,��BF�B�A �A(�J0u
(K ABBG8lx@��BF�B�A �A(�J0u
(K ABBG,�xT���F�A�A �^
ABA �x����E�^
X�x0��	y,��DE�m
FH0y\���H0T
DLy���HH]
KWly��FH]
KU4�y0���E�C�G S
AADV
LCK�y���AE�`
KL�y���FH]
KU<z(���E�A�D v
DAKk
DAHWDA(Dz����A�I�D0�
DAApz��HH]
KW�zL��HH]
KWX�z|���F�B�A �A(�D0k
(D ABBFD
(G DBBEV(D ABB<{���{E�A�D x
DAII
DABUDAL{ ��NHe
KU8l{P��
F�B�A �A(�G0�
(F ABBB(�{$��cE�N�G m
CAE�{h��(�{t��	E�A�N0�
AAH(|X��ME�A�N f
DAA(@||��ME�A�N f
DAA,l|���F�H�A ��
ABF�|p�LHu
CG�|��LHu
CG0�|���F�C�A �G0�
 AABK(}���E�D�Q@z
AAA0<}��E�F�G w
LCHdFA0p}\��E�F�G L
LCKdFA0�}���E�F�G L
LCKdFA,�}T��F�H�A ��
ABAH~�]F�H�L �E(�A0�A8�J`�
8A0A(B BBBDLT~��F�I�A �A(�D0\
(D ABBFD
(A ABBE(�~x�|M�D�D �aCB$�~��SE�C�G xFA<�~��F�A�A �G0m
 CABFN FAB@8���F�E�E �A(�D0�F@
0A(A BBBK0|P�IF�A�D �G0�
 AABC0�l�yF�A�D �G0�
 AABA8����F�B�A �D(�D@�
(A ABBE8 �|�F�H�A �A(�D@�
(A ABBHH\�`��F�L�I �I(�H0�D8�D��
8A0A(B BBBA$����~Hv
BF
JU
A8Ѐ<��B�B�A �A(�G@~
(A ABBG8����F�A�D �_
ABCW
ABA0H����F�D�A �G0�
 AABE|�@���#AAM��T���#AAM`��h���`B�E�E �E(�A0�A8�FP�
8A0A(B BBBF�
8A0A(B BBBG �d����E�N0o
AA<����
HP�����B�E�B �E(�A0�D8�DP�
8A0A(B BBBG��`���)E�S��t���&E�\Ԃ����)E�S�����&E�\,������F�A�A �O
AJE(<�0���[E�A�Q k
DAA(h�d���fE�D�D m
GHEH������pB�B�B �E(�A0�C8�D`�
8A0A(B BBBH��������,�����F�A�A �O
AJE88�D���n
F�B�A �A(�DP�
(A ABBB(t�x	��nE�A�N@�
AAJ8���
��F�F�A ��
ABCx
ABEL܄���@F�B�B �B(�A0�A8�D@
8A0A(B BBBD(,����E�A�D0\
AAHX�t��QH C
At���������(�����fE�A�G0L
AAAGNU�p�0��8%#K�����M��Q�#Q �:Q��PQ���R@jX�
{X�
�[@Q�b`^cP^�c@sWl��7m��m���nP��o��pp8s0Qs@ksp�v�V�v�TOyP�ez���}��0�������`��adHW�x���������g�aɂ���5�E���^�N�;���e�g�g�g�g�g�g�g�g�g�g
hh"h/h>hMhVhZhhhxh�h�h�h�h�h�h�h�h�h�h"���·<�ۇ�.����
��$��1�>�K�R�`�YEhEuE�E�E�E�E�E&FP1
�G�8%�8%���o`8n

SFP%0Q ���h"	���o����o�o�����o��G%�1�1�1�1�1�1�1�122 202@2P2`2p2�2�2�2�2�2�2�2�233 303@3P3`3p3�3�3�3�3�3�3�3�344 404@4P4`4p4�4�4�4�4�4�4�4�455 505@5P5`5p5�5�5�5�5�5�5�5�566 606@6P6`6p6�6�6�6�6�6�6�6�677 707@7P7`7p7�7�7�7�7�7�7�7�788 808@8P8`8p8�8�8�8�8�8�8�8�899 909@9P9`9p9�9�9�9�9�9�9�9�9:: :0:@:P:`:p:�:�:�:�:�:�:�:�:;; ;0;@;P;`;p;�;�;�;�;�;�;�;�;<< <0<@<P<`<p<�<�<�<�<�<�<�<�<== =0=@=P=`=p=�=�=�=�=�=�=�=�=>> >0>@>P>`>p>�>�>�>�>�>�>�>�>?? ?0?@?P?`?p?�?�?�?�?�?�?�?�?@@ @0@@@P@`@p@�@�@�@�@�@�@�@�@AA A0A@APA`ApA�A�A�A�A�A�A�A�ABB B0B@BPB`BpB�B�B�B�B�B�B�B�BCC C0C@CPC`CpC�C�C�C�C�C�C�C�CDD D0D@DPD`DpD�D�D�D�D�D�D�D�DEE E0E@EPE`EpE�E�E�E�E�E�E�E�EFF F0F@FPF`FpF�F�F�F�F�F�F�F�FGG G0G@GPG`GpG�G�G�G�G�G�G�G�GHH H0H@HPH`HpH�H�H�H�H�H�H�H�HII I0I@IPI`IpI�I�I�I�I�I�I�I�IJJ J0J@JPJ`JpJ�J�J�J�J�J�J�J�JKK K0K@KPK`KpK�K�K�K�K�K�K�K�KLL L0L@LPL`LpL�L�L�L�L�L�L�L�LMM M0M@MPM`MpM�M�M�M�M�M�M�M�MNN N0N@NPN`NpN�N�N�N�N�N�N�N�NOO O0O@OPO`OpO�O�O�O�O�O�O�O�OPP P0P@PPP`PpP�P�P�P�P�P�P�P�PQQ Q0Q@QPQ`QpQ�Q�Q�Q�Q�Q�Q�Q�QRR R0R@RPR`RpR�R�R�R�R�R�R�R�RSS S0S@SPS`SpS�S�S�S�S�S�S�S�STT T0T@TPT`TpT�T�T�T�T�T�T�T�TUU U0U@UPU`UpU�U�U�U�U�U�U�U�UVV V0V@VPV`VpV�V�V�V�V�V�V�V�VWW W0W@WPW`WpW�W�W�W�W�W�W�W�WXX X0X@XPX`XpX�X�X�X�X�X�X�X�XYY Y0Y@YPY`YpY�Y�Y�Y�Y�Y�Y�Y�YZZ Z0Z@ZPZ`ZpZ�Z�Z�Z�Z�Z�Z�Z�Z[[ [0[@[P[`[p[�[�[�[�[�[�[�[�[\\ \0\@\P\`\p\�\�\�\�\�\�\�\�\]] ]0]@]P]`]p]�]�]�]�]�]�]�]�]^^ ^0^@^P^`^p^�^�^�^�^�^�^�^�^__ _0_@_P_`_p_�_�_�_�_�_�_�_�_`` `0`@`P```p`�`�`�`�`�`�`�`�`aa a0a@aPa`apa�a�a�a�a�a�a�a�abb b0b@bPb`bpb�b�b�b�b�b�b�b�bcc c0c@cPc`cpc�c�c�c�c�c�c�c�cdd d0d@dPd`dpd�d�d�d�d�d�d�d�dee e0e@ePe`epe�e�e�e�e�e�e�e�eff f0f@fPf`fpf�f�f�f�f�f�f�f�fgg g0g@gPg`gpg�g�g�%9\�T��%�֟L������LS�t�� �@׺�p(a`LI_�`=�ө^��d`&u��1����WL�e�1�o}�v���O�{)���h�W��@T@�5%�������W��Qw���q�?��O`�.�|	��qc��'�Dȓ�HL�mz�J����M����R��J1DG�Jȋ�GA$3a1P1�GGA$3p1067���EGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p1067���GGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY���FGA+GLIBCXX_ASSERTIONSopenssl.so-2.2.10-35.el8.x86_64.debug&���7zXZ�ִF!t/��'!�]?�E�h=��ڊ�2N���r�U	>��5f-M)�W�WE���j:��oM�KbV�]�_G�U�����}�T/����c�Q��3s)�	:Ê�,d2�ls+!���q�"�c�ʷ�4�u?Y�!�Kc�a�_�B�/<��<��t֞,��7V��<+A	�f}j��ݔ�2�ݵ���%�@
���>��.5�<��' z*R"��Oن7�Rf�[1��whU�
�=T��?���Ϋ�x�O�N���0�0C͘��U����̐%w �`��69��p֖
v�<�?)tk�۴����#1�����.><��_&�;\Gx��L��M8_B��MY|��|��K�:��K]a�{cb�e���n%Β|�4*���K�d��ua��������˱۾�'�>Iʌ��O��h(����ꓮ�ָ|Q`�ej;2��o�\PѺ��'n���3���\[Z����9�nF�_i�WT�i Qd�E[L��ï�BWүD?�ޓ��Ǹm'B�%�I�l�Z�H�`	~���o���i��>MƓ�� �f�x)E���U�X]��!�y�
�m�(�D�p����D	ʳ�%��Kk_��-�4gWU.�
Jt�ߵ8�)�e�-Ȍ`I��j=]~�1K���b�6��&�����,�|�+C�47��3jχ1���@����nF�Zv��g��Wm�*T�aAM��v@l�y|9�\{9ǖ-�������]����m]t�O���u�3ۍ��$O��Q��3��c|��7Mb���-z�2,�;с�
~�I�d����ꕵe�]^�x�OE^���m$ؿ���G��\I��6y)E��,�_4���qo��h�TK�tE�#�#N���b�W�ʊ��?�mqKS�fj�s0�a��\1��ɳ��%��x� 9���IK!��l����{P%��P'N��_|��|�z��Z�N�D�{M�S�-��h����f��ғ���U��)��n��ki$��v6-�oz���y<�V��-?/4���y�P'v�]�=����	�@7���k�LhiO���<�@�m�i*���
�\n�̠��c$����-m���t�-��E�6}�����i�(,��="
�;$��r�=�� vd<��rs7Qr�tu�v�z�8�f��7�q�l�杧𭭑 E6��Ft�tT��)vI��$J��!�ݯ���p?_��h��ţ���u\^��^���
pC�"a@:�~7������|*�^�#s��zOq���uA�!aZ�~��]u�I;�.�+ۖg-�Ԗ��X��dž�*��~mV��c��X��/�ǂd�e��Q!���垂�+�w�����8@�4�ʒ���Q�K�ˤ)r�Z�l���
E�qhST���b?���!�麀s�bzd�
DN@R�#��{�(]'M�$���ǃ�Չ"}p�����I���
�����e��OB�l<�����EQ��\0>�h2�@C����Q~�Y~���L
����_�?s���u]��)�o��֧E�;;ۧ��؟	�[aq��k�&uȘ�b��G�Q�(���wr���5�~����X�'%,O(�=������
\��hqn�8U����F��@�L��ҩ� W���E�Œ�>^�Hpv�&��	��滗
���}%�+�A�$k�߆�݄��-��A���C���&����M�_�Ϫԝ��J�j;�0�:�w�A�����2Q����d��l��+�CG=l�r�
R���j��@rP���~cj�d�P�b�ٰ���(-0W��:ٯeV~{�� ��"��v
!lvx.
�po�I(,ͅ��E ��Rꦒ��ȔpH7b0��kБC�$\I�A���@?*ru��.�:��o�do��M�wky�PY�n�0!*��雈�uh�e�
_�I�Է ��B>�3���̈m�s�w��
�2���3��붞+ޯ�PU�F癀�c�Z�'*'�N*f�'+�=�Uq�'lH��lc@ڹ������u��&�v�jì؞���!N�s�Q���_3�2�SϷin�(|2K��;�=���6tc���.pٚ�Z_�;K��jESbC��K��$��Y��4�]���	�M�/'U� ؏�y]���Uw�q�xWÓ�P����&�/�^
[�����E��#��[�h����7TJ�K����͙�KK�-��Բ(���e4�&��Hh��u�^~���F1�q�o���Eg�^8ޗ�5�L�L8����ӷ&~�	�f�V���{��~\ӯO�$?�sO#������i�{Mr0ҽ�X��w6����������!�fYonM/"!`Y^w�P�B�E���͹�S}Q�_6^Y^V�`�kȌ�Ĵ��?<r��=�A��|�I~S�9��.٘*D����f��$Q5�Gy�*��5��g�G��k��e�ڞ�L��Yb$Cp�p���ؗ�ȧ�"��a�mvy��s>#q��73б(�C��>�a�3�	L%v9X���<em���ȍ�+�磯�t�[x�$�h�c�VG폎��}�ipZw��=<`��Ս�[���8H�Z���N3�E��K������Pdb��v��$<]�ك�����+p��!9�ͮ�!�GN���oGBl
�V��
Y9����l,G�
s
Q,����g��m��{x�uU�28,�i�_)٤�/��Od¢V��jW�"�Ef�$�=�B�s*.�-�c�����ɬƝ�wH;6�&�H�mq��W׶�P���^?'���d6�"8�?�꺡s�!�ZQ�L�F�m�O%90�K�.����E� +�(���i��xM#{0�/�\6=�ZƑ�S�!cX���D�U:ͥLt#=7^&m/tW�.��W��.\�9�8o=�o�]��{ʤQ���
b�d���}��3�xᝡ듫��;�.�Ey�17��Fc�P{�֑����%-�8�JnQ���$dGy��t������nO:��p����2�u@��P�"a�+ȶ��4��T�Q����SIh��R�Q���������Tï2�\ߋ{bTZ�����W���b:G�_�i�p�'tP͗����k�'�+q��@x��+�j�M@>4~OO�Ws�' �q�G��h�كuEAbQ
��XPфp��T}}I{���U�j]��43�L��c84��i��Hp �/�Er�IČ�ϡH"
���J6!����G�Q>������<������b����Pq������F��"v�bڸ��i���b�������I�`4ĂmhY�Z^�M�؆��r�ͨW,���b;�GˆkE;�ص�L��H���7!�eZ���Q{	�4�-"���/'᡽nB%���z��g�>����3���9�Ѿ�5�>�8����볰�C�d�!�"�^�����HJ�y�>�@����F�݅�(衽���\����
�a�ճ�7�O����Z|c�P�k�CH�D�S
�=�X�Ю��!���c�Ռ�?��
$W�PNm�]��H3*İ7�<�Ʋ�t�Uhm`srJLԩRN���F���@�Xw�q���cD�֕ͻ�9�+��M�-���B�,�hH����%�ߺœ߾���x���_6=�10�d�������Q�Ca)j�ӝ}~�
�d�+Z�݇���/��f���]{P�M�3ƀ�6K�C>��ő�=-�n�
��'I$6RÖ-����Tq� qBv��o�7N��:4�h���t.!�ލZ�8�n�8��2i����u���3�A	᧑j��51,���h�K���RҐ�H�,�:qM�f�ݩ"i�( yT�?�,��h���%������h�D[�a
2t/�c���(u�M�iz���/�E��:DžB�R%�i���>w�=Yc(��&B���'�4c�d�b���T�`[s]A�m@�A�j��L0��d��f�^f�S��ē���� w;6�
������R_����8{Pf��Fm�U_�>G��q{o�.�J�ai�Hy��<WM�`t���G n�۰(�u~7s�Ѱ�IH�+�f8��H����s�>���|Mg�z*�����LF��.C�p:���~������n]	7���=p���jVK�2b���=��ѻ(2-@�~1�s�ȝx��ޣ�䕧��o0HN�k�	)�u;JOx�a�\�Ώ���	��g�W��Z���E�l�)��Gp�0O�Prx�4�r�S�*<\�H�����¯k�ad�Sc0I̓���u��T�ģP�4g
LޘP,+z��-S�f+;%%��/LnQ�c��S�#C9��h�^��\2�Qă=�v�����r<hÝ��Z}�+�pG�UZx�`@Y�,�]��M�\4�p>e@��!�Qp�8T������~���:��~�����Ķ�6
:\�O�mca{��@���M����yn�;������U��.��…X��)"�&��8,���璣�]�)b��(����l٣4c
ϑ��$��<��H�wA�r�Z��ΛA��VP����l_�g���y�@\ܣ���
^l��(�-k%��XtSt��Փɓ��]�#[E�m��$�<!����q�@�h�-�5�ש~ug�׽�
3��4"��鯀�I<j0^쒏�G�aRC��t��Y@�#��Z���}Y�y۸�
y9DHR�7��`���+������[9�X	��&�]���Q���%o�G�:켁g��j��'ƌhĞ
8��K��qlfl�[��6�<ޛ��e�sꗧh,��7
ok�
Etsi'��J�)���@�zpV�[�硟�3G
k��ܷ��e���e)i^Xt���b�XMjv�Z5&7�Ĺ]�Ysӫ˅>sX�R3U���1�v���XX��2Qü�*�g������ݛ3qo��:�z1W���F.*Mt�gsp�[j�B3�j?�GDf��ֺ�B�A�(O6�X�Ry����Nm�l(D����#2|�8c-�j�g��_�7��k\��*m�t�N�5s_��s��?�� ����毅�P���Kp��}%�:a���ѫq�#v��0X�:�� ���웢��&
�,\b)�"����(!|���{J�%o�eo?��σ�|�U��Y�|	k�����q[���`��TR���u2=wV�&�aU%����\:_;s
���?� ���uz(	�Tj�|�ɹ;uYL���1-G��X�a��jâs�P��o/�����Pj	��H����1�n�s3���֦x
�'*��0�>����.��
R%�u�h�v��<ݲ"�5�j4���9�;"�H�����>�M=�}_MN�wuSҤ�.1qL��U�q�7���[������p�Cv��eJӋ��ҥHRpॕ�YnsM�GB�F�M�`�`~ݙs��r�8q�;+l��Є$r�A ����p�r���6�~�r�r�zkZCfҠ����3;]�T����lI�/@;�{�"�/Ȏ=!�2���N�֕��=�Ǯl絺��O�^X��U�� �g��ѐ`I0���l?M���|�;���I�� p��W�&H3�l��a�	��:��@ Ņ��FT��/�@*2)#��U�1�T�Fj��uх��K��^��,�^�K1G�Q`�r�'L�b�Y{�x���ܺKE9�{"47/TԒ�B'�r�t��H'���\��f��?�!5ҳ,tK�0N��_
��z�mVTN��jr�i���':r*~�W�g�m5���Jv�M�I�V�M��O�ñ�8�ʙ��o�Y
���"��pg���h��w�uu����X]4䄤�u�)�&O�@&�I�b�ۤ�_��j��6ƐG��`�,[g�w�l����ky�FK�2v]G�����-�J�!u!e��1G%�B��$�&v��'~bw��U���G�W������i}��r����U��5MSjMh�'�_ڕ�rۨ�
~��f�E>��y<q�oV�%�鄸�s�X��0���X'�<H�H�4�������},�����ƀ�L�f�����*���\�o@�-��H0Ÿ�[��{#(E���P�4t�g�`��t�K��O)�:~�c���>~a�5�Q�`���W6M�l4b�Bʷ
��}u��.�z�'��u�~��ǻ��f������
�Z�A��
��m7�5A��Da/�c$���B�e#�B�=Ė�Z�K��"�%���dV�A����K�C�馛�IY�;|�-mk�)B&Zh�xa���L�#��>А*e�Bi�LvE�V�,��Mb�\�,��s"��Cma6(_<o<�!�)TH'�Z"x)h�S�Qܹ��>Pi
oA���YIJP�4i1u�	5f�x��C��N�i����|T�b��Y�E�"��]���t��s�4�,�)�*����g�>�@N���ث��2D2^�S�����E:*lX*�e	�9��oz�(8��>�Ev��(k��ܝ5/B;?���?��7!^i����Xk�R.T��|p��n
i�����w�
T�A��N���@�c%E�N	O�`�d�cy��R�N��#d�LvS:O;=\	y�ع���� �����P9)C�]��L��v#��N����+��q�޸��`�6��糶��FĖ]w��@,Nn��5n[�*,w�_�&�����n��ɈY�и�L��S�G!)#��ȬF}v��hv:_�u"R=�ٯ&�2$C)����V\�`cj��a��)��W��I'��Z�b9��i�L}?�B��g�����j��޵�p����XA֙�.�����(��x���>΅��D��)^��o����Dbkďz&h�8�K9~���q�V��顎�h2�w�.Nk��sZR�T$�AU�8SkL�kk�g�*���l�}���Ȫ[Fy�a�L
����6+�mc�Xg�5 �~g�$�uf$.�s58i2�{^�J=I҅��僇s��np�)9��zj�u�3e>{6�!�s��B������/be�J�0���g�8y2/gp��,�G�Ã���Ag��0�|�B��2��v�Y�n�,sx}���~-Z��,��cG�Jg3�F�,�4�ٓhƤ�*I+��U�����Url�C�!�~C���r��=��J�+�X�lq �x5�x�[z�V��V�6«Gb̔>���O�	�|�yJ�E`@K��I�覔�E8��a�t�p:A�
��
����h%�ViPX��L�ND����iq��vVp��x)'�VI��k��Q`f��$D���kf��N~
=
�纛	k��j6�"U�*l%A�S����$��;��C-�g<��^�tX\L�y�\�N��Lj�CI�W�{Y�8����;-I���+^��1���Ș���5C�:��o㩣� �m/�ގ��f�Ȯ���嵥�����?��Ӏ+8�a
�Q��P�D�5�j�ZFQ�@+��8T�p�v�V��7�M�Do-j۫e��k��AP��s����>D��@R��MS�^�~�*�zU�c�5�����nw�u��Ed�>�qe�?6>���¢�>��m6F�����Ԋ��ر�c�}��	D\>�6��y�$�'����S��ͮ~�|ߨ0�;�l�ƭ'�B@ti�E����\�ݮO��<\�,?G�R�^��X�9X%G�TM�����B¡��d��!��v*3�Pw�q���"_�ɔҘ�~��n"*
3b,����p��k��˦��&���ќ��^rڕ&���b��ܷ���>Zpl+ƫ,]�q��/M<����ʶ��^�'c��!����eZ��u�����P���~eĽ!.�
o�I��R{D&��J�H���,�ny�$��ѐ��lD���K(��#�R�ϰ$��/���.\-IMGA_Km���k$x�^���~d����W��"���@;��������ԣ���K�S�컗X���U�)��?���Ab�*�u�O��6�8�����r)�C;��*���x��q�_I�p����A�c����i#/�J!
y�%hVS���@n��-��Z�����F#��0R5.���t���,nq�T ���-B���2��k���#�G4�
91�#S����|:�Q�ų��� z��s�X���=q|�*�ɹe�PP�|����o���G��zhpyʥ�U䉿�	ɹe��:�
UM��.�A�/��P<=�@��)��rTD~5Й�ߠkS��?��ŃP;Eq��kK`_���:�Fz�&��ud@�v�ŷ�8��òtˎ�p?�9�l��DOz)�&�W}�UHN��k����G[
���Ň�oyƲ�����z�g쑛@bs�띩�JWZ��K�O�{F)�l)ģ�L��î����=��c[G��zl��C���(����g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``�(

8d08n8nSF8���o����ZE���o���T����h"^B � �0QhP1P1cp1p106n�g�g 6w�����}�G�G
��G�G�D �l�l�d�ФФȅ��*�* ��8%�8��8%�8��8%�8  ��G%�G@�J%J�P%P(�@k%@k �@l%@l	�Pue@l\p,"�p�!h�1lib64/ruby/2.2.0/x86_64-linux/pathname.so000075500000101170150402105730013337 0ustar00ELF>�@8{@8	@(a(a `m`m `m � xmxm xm   888$$aaa  S�tdaaa  P�tdHRHRHR��Q�tdR�td`m`m `m ��GNU���-�ۂK`Lk�VL�8�@ 8:BE���|�qXG�qw{b�M �������t��)U�"V��� �pn�:)���_E���, �@zF"
Q4�k��pq ��s �pq �`E
__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_class_new_instancerb_cFilerb_funcallrb_intern2rb_cDir__stack_chk_failrb_yieldrb_scan_argsrb_block_given_prb_block_callrb_funcallvrb_convert_typerb_ary_storerb_check_funcallrb_string_valuememchrrb_obj_duprb_ivar_setrb_eArgErrorrb_raiserb_ivar_getrb_eTypeErrorrb_mErrnorb_const_get_atrb_rescue2rb_mFileTestrb_obj_classrb_cIOrb_check_array_typerb_ary_entryrb_ary_new_from_argsrb_enc_getruby_enc_find_extnamerb_str_subseqrb_str_appendrb_obj_classnamerb_sprintfrb_str_hashrb_call_superrb_obj_untaintrb_obj_taintrb_str_freezerb_obj_is_kind_ofrb_str_equalInit_pathnamerb_cObjectrb_define_classrb_define_methodrb_f_notimplementrb_define_singleton_methodrb_undef_methodrb_define_global_functionlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64{ui	�ii
�`m �hm Ppm pm �o �o �o �o �o �o �o �o �o ,�o -�o .�o 0�o 6p  p (p 0p 8p 	@p 
Hp Pp Xp 
`p hp pp xp �p �p �p �p �p �p �p �p �p �p �p  �p !�p "�p #�p $�p %q &q 'q (q ) q *(q +0q /8q 0@q 1Hq 2Pq 3Xq 4`q 5hq 7��H��H�i] H��t��H����5�] �%�] ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A�������%�Z D���%�Z D���%�Z D���%�Z D���%�Z D���%�Z D���%�Z D���%�Z D���%�Z D���%�Z D���%�Z D���%�Z D���%}Z D���%uZ D���%mZ D���%eZ D���%]Z D���%UZ D���%MZ D���%EZ D���%=Z D���%5Z D���%-Z D���%%Z D���%Z D���%Z D���%
Z D���%Z D���%�Y D���%�Y D���%�Y D���%�Y D���%�Y D���%�Y D���%�Y D���%�Y D���%�Y D���%�Y D���%�Y D���%�Y D���%�Y D���%�Y D���%�Y DH�=�Y H��Y H9�tH��W H��t	�����H�=YY H�5RY H)�H��H��H��?H�H�tH��W H��t��fD�����=Y u+UH�=�W H��tH�=�T ����d�����X ]������w������H��H�A[ �H�t$H�t$�-���H������H�5�Z SH��H��tH�
W H�ٺ[H�81����f��H�=�6����H��H��Z ����H�5�Z SH��H��tH��V H�ٺ[H�81��b���f��H�=16�/���H��H�MZ ����SH��H��H�5�Y dH�%(H�D$1�H��t@H�AV 1�H�81�����H��H�ڿH�$�1���H�L$dH3%(u&H��[��H�=�5���H��H��Y ����fD��H��H��H�|$H�t$�����H���I���H���@����f.���AUATI��H�H5USH��8dH�%(H�D$(1�H�\$L�CH��������������t\H�5�X H���H�EU ��M��H��L�V���H�8���H��H�L$(dH3%(H���H��8[]A\A]�f�H�5�X H����H��T H�ى�1�L�l$H�8�5���H�
�4�H��4H���*���H���IDH����H9��u���H�EH��L��L��H�D$���H��H��H��H��H�D$�L���H�E�� u�H;]�.���H�E ��H�=4���H��H��W �@����H�=�3����H��H��W �������ff.���UH��SH��H��dH�%(H�D$1���u
H�������H�5�W 1�1�H������H��H��4HE�H�$���H�$H��� ��H�SH�{1����H����H���w���H�5xW H��H��H�$�1���@��u+H�����t"H�U�Ѓ���d�H��sYf�H�L$dH3%(H��ukH��[]�fDH��H�{���q���H��Ѓ����!���H�$�F���fDH�$�u�H�����t�H�������t�%H	�H�U����]���H��R H�5n2H�81����DH��H�5�V ����uH�����t�����uH���H�R H�5B2H�81����ff.�f���UH��SH��H�5V H��tGH�R H�8���H��H���}���H��I��E1�H��H��[1�H���H�=,���]�6���fD�H�=�1����H��H��U ���S�&���H�5oU H��H��tH��Q H�ٺ[H�81��]���D�H�=�1�'���H��H�-U ��ff.���S����H�5�T H��H��tH�Q H�ٺ[H�81����D�H�=&1����H��H��T ��ff.���S�f���H�5oT H��H��tH��P H�ٺ[H�81����D�H�=�0�g���H��H�-T ��ff.���S����H�5T H��H��tH�XP H�ٺ[H�81��=���D�H�={0����H��H��S ��ff.���S���H�5�S H��H��tH��O H�ٺ[H�81�����D�	H�=!0���H��H�]S ��ff.���S�F���H�57S H��H��tH��O H�ٺ[H�81��}���D�H�=�/�G���H��H��R ��ff.���S���H�5�R H��H��tH�8O H�ٺ[H�81�����D�H�=t/���H��H��R ��ff.���S���H�5gR H��H��tH��N H�ٺ[H�81���D�H�=/���H��H�%R ��ff.���S�&���H�5�Q H��H��tH�xN H�ٺ[H�81��]�D�H�=�.�'���H��H��Q ��ff.���S����H�5�Q H��H��tH�N H�ٺ[H�81���D�H�=g.����H��H�UQ ��ff.���S�f���H�5/Q H��H��tH��M H�ٺ[H�81���D�H�=.�g���H��H��P ��ff.���S����H�5�P H��H��tH�XM H�ٺ[H�81��=�D�H�=�-����H��H��P ��ff.���S���H�5_P H��H��tH��L H�ٺ[H�81����D�H�=f-��H��H�P ��ff.���S�F���H�5�O H��H��tH��L H�ٺ[H�81��}�D�	H�=-�G�H��H��O ��ff.���S���H�5�O H��H��tH�8L H�ٺ[H�81���D�H�=�,���H��H�MO ��ff.���S���H�5'O H��H��tH��K H�ٺ[H�81���D�H�=V,��H��H��N ��ff.���S�&���H�5�N H��H��tH�xK H�ٺ[H�81��]�D�H�=�+�'�H��H�}N ��ff.���S����H�5WN H��H��tH�K H�ٺ[H�81���D�H�=�+���H��H�N ��ff.���S�f���H�5�M H��H��tH��J H�ٺ[H�81���D�
H�=J+�g�H��H��M ��ff.���S����H�5�M H��H��tH�XJ H�ٺ[H�81��=�D�	H�=�*��H��H�EM ��ff.���S���H�5M H��H��tH��I H�ٺ[H�81����D�H�=�*��H��H��L ��ff.���S�F���H�5�L H��H��tH��I H�ٺ[H�81��}�D�H�=F*�G�H��H�uL ��ff.���S���H�5OL H��H��tH�8I H�ٺ[H�81���D�H�=�)���H��H�
L ��ff.���S���H�5�K H��H��tH��H H�ٺ[H�81���D�H�=�)��H��H��K ��ff.���S�&���H�5K H��H��tH�xH H�ٺ[H�81��]�D�	H�=L)�'�H��H�=K ��ff.���S����H�5�J H��H��tH�XH H�ٺ[H�81���D�H�=�(���H��H��J ��ff.���UH��SH��H���[���H�5tJ I��H��t,H��G I��H�ٺH�8H��1�[]��f.��H�=�(H�D$�J�L�L$H��H�J �f���UH��SH�����H�5�I H��H��t'H�pG I��H�ٺH�8H��1�[]�
�D�H�=(���H��H��I �ff.���SH��H���o�H�5xI I��H��t H�G H�ٺH�8H��1�[��f��H�=)H�D$�j�L�D$H��H�+I �f���S��H�5I H��H��tH��F H�ٺ[H�81��=�D�H�=M'��H��H��H ��ff.���S��H�5�H H��H��tH�8F H�ٺ[H�81����D�H�=�&��H��H�]H ��ff.���UH��SH���>�H�5/H H��H��t'H��E I��H�ٺH�8H��1�[]�m�D�H�=�&�7�H��H��G �ff.���SH��H�����H�5�G I��H��t H�aE H�ٺH�8H��1�[��f��H�=V'H�D$���L�D$H��H�SG �f���S�f�H�5/G H��H��tH��D H�ٺ[H�81���D�H�=�%�g�H��H��F ��ff.���UH��SH��H����H�5�F I��H��t,H��D I��H�ٺH�8H��1�[]�*�f.��H�=H%H�D$���L�L$H��H�SF �f���UH��SH��H���{�H�5$F I��H��t,H�
D I��H�ٺH�8H��1�[]��f.��H�=�$H�D$�j�L�L$H��H��E �f���SH��H����H�5�E I��H��t H��C H�ٺH�8H��1�[�2�f��H�=_$H�D$��L�D$H��H�SE �f���SH��H����H�5(E I��H��t H�!C H�ٺH�8H��1�[���f��H�=�#H�D$��L�D$H��H��D �f���S�&�H�5�D H��H��tH��B H�ٺ[H�81��]�D�H�=�#�'�H��H�uD ��ff.���S���H�5OD H��H��tH�XB H�ٺ[H�81���D�H�=4#���H��H�
D ��ff.���S�f�H�5�C H��H��tH��A H�ٺ[H�81���D�H�=�"�g�H��H��C ��ff.���USH��H��dH�%(H�D$1����H�5D H��H�$H��tSH�|A H��H�81��"�H��H�$��H��H���F�H�L$dH3%(u+H��[]���H�=0"��H��H��C ���fD��USH��H��dH�%(H�D$1��>�H�5'C H��H��tOH��@ H��H�81��v�H��H�$���H��H����H�L$dH3%(u'H��[]��H�=�!��H��H��B ���ff.���SH��H�� dH�%(H�D$1���H��H�D$�R�H�5�C I��H��t;H��? �H�L$L�;�H�8��H�T$dH3%(u2H�� [�D�H�=� H�D$�b�L�L$H��H�sC ��L�ff.����H��dH�%(H�D$1����H�54C H�$H��t3H�\? E1�E1�H��H�8��H�T$dH3%(u#H��Ð�H�=� ���H��H��B ���ff.���ATI��U��H��SH�� dH�%(H�D$1��G�H�L$L���H��H� 1��\���uHH�5iB H��tlH��> H�ٺH�81��c�H�\$dH3%(��H�� []A\�fDH�5B L�D$H��t?H�X> H�ٺH�81����@�H�=t���H��H��A �t����H�=TL�D$��L�D$H��H��A ���@��ATI��U��H��SH��H��0dH�%(H�D$(1��4�H�L$ L���H�D$H��1��G���usH�5\@ H�l$H����H��= H��H�81��E�H�D$H����H�t$�H���f�H�\$(dH3%(��H��0[]A\�f�H�5�? L�D$ H�l$H��tJH�+= H��H�81����H�D$�f.��H�=*��H��H��? �B����H�=
L�D$�j�L�D$H��H�c? ��T�@��ATI��U��H��SH��H��0dH�%(H�D$(1����H�L$ L���H�D$H��1�����usH�5�> H�l$H����H�O< H��H�81���H�D$H���X�H�t$�H����H�\$(dH3%(��H��0[]A\�f�H�5q> L�D$ H�l$H��tJH��; H��H�81���H�D$�f.��H�=��?�H��H�%> �B����H�=�L�D$��L�D$H��H��= ���@��ATI��U��H��SH��0dH�%(H�D$(1���H�L$L���H��L�D$ H��1������~H�5'= L�L$ H�l$H��t@H��: I��H��H�81���H�\$(dH3%(��H��0[]A\���H�=�L�L$�B�L�L$H��H��< 뙐H�5�< H�l$H��tH��: I��H��H�81��#�념�H�=����H��H�m< ������ff.���ATUSH��H�KH�� dH�%(H�D$1�H�L$���H��L�d$�S�H�5�; H��H��tTH��9 M��H��H�81����H��H�D$���H�t$�H�����H�\$dH3%(u&H�� []A\þH�=���H��H�; ����ff.���ATUSH��H�{H�� dH�%(H�D$1�H�L$���H��L�d$��H�5�: H��H��tTH�9 M��H��H�81����H��H�D$��H�t$�H������H�\$dH3%(u&H�� []A\þH�=�O�H��H�=: ��>��ff.���AUATUSH��H��dH�%(H�D$1����H��I����H�5�; H��H����H�58 H�ٺ1�I��H�81�����H�
��H��H���s��H���DfDH����H9�}LH�EH��L��L��H�$����H��H��H��H��H�$���H�E�� u�H;]}H�E �DH�L$dH3%(H��u-H��[]A\A]�f��H�=����H��H�
; �$������ff.���ATI��U��H��SH��0dH�%(H�D$(1�H������H�KL�KH�$L�CH��1�L��������j������tCH�5D9 H��t_H��6 E1�E1�H�ى�H�8���H�L$(dH3%(urH��0[]A\�@H�5�8 H��t<H��6 H�ى�H�8�����fD�H�=�'��H��H��8 ��H�=����H��H��8 ����fD��ATI��US��H��H�� dH�%(H�D$1�H����L���H�MH�$L�EH�1����H�5�7 �XH��t6H��5 H���H�8�2��H�L$dH3%(u/H�� []A\�f��H�=*�O��H��H��7 ��>��ff.���ATI��U��H��SH��0dH�%(H�D$(1�H�����L���H�KH�$L�KL�C1�H������H�57 �hH��t2H�5 H�ى�H�8�n��H�L$(dH3%(u+H��0[]A\�D�H�=r���H��H��6 ��~��ff.���ATI��U��H��SH��0dH�%(H�D$(1�H����L���H�KH�$L�KL�C1�H�����H�5J6 �hH��t2H�K4 H�ى�H�8���H�L$(dH3%(u+H��0[]A\�D�H�=�����H��H��5 ����ff.���ATI��U��H��SH��0dH�%(H�D$(1�H���D�L���H�KH�$L�KL�C1�H�6�Q��H�5�5 �hH��t2H��3 H�ى�H�8����H�L$(dH3%(u+H��0[]A\�D�	H�=����H��H�-5 ����ff.���ATI��US��H��H�� dH�%(H�D$1�H����L���H�MH�$L�EH�1����H�5�4 �XH��t6H��2 H���H�8�2��H�L$dH3%(u/H�� []A\�f��H�=E�O��H��H�e4 ��>��ff.���ATI��U��H��SH��0dH�%(H�D$(1�H������L���H�KH�$L�KL�C1�H������H�5�3 �hH��t2H�2 H�ى�H�8�n��H�L$(dH3%(u+H��0[]A\�D�H�=����H��H��3 ��~��ff.���ATI��U��H��SH��0dH�%(H�D$(1�H�������H�KL�KH�$L�CH��1�L���������������tCH�53 H��t_H�@1 E1�E1�H�ى�H�8���H�L$(dH3%(urH��0[]A\�@H�5�2 H��t<H��0 H�ى�H�8�`���fD�H�=!���H��H��2 ��H�=�w��H��H�u2 ��f��fD��ATI��U��H��SH��H��dH�%(H�D$1�����H�$������tWH�52 H��tkH�<$E1�E1�L������H�$H�����H��H���K��H�L$dH3%(uhH��[]A\�f�H�5�1 H��t4H�<$L����f��H�$뭾H�=����H��H��1 �u����H�=}���H��H�]1 ��n��ff.���USH��H��(dH�%(H�D$1����H�5O2 H��H����H��/ H��H�81��2��H������1�H��H�������H��H�D$����H��H�D$�n��H�t$�H���,��H��H�D$�O��H�t$�H���
��H�t$�H�D$H��1�����H�L$dH3%(u,H��([]�D�H�=i�g��H��H�u1 �-����S����ATUH��SH��0H�t$dH�%(H�D$(1�����H�|$H���J��H��� ��H��L�c��H��H�D$ ����H�t$ L��H���f��H����H�T$ H�H��HL�L)�1�H��H�����H�t$H��H�D$�z��H�D$�uH�����u9H���!��H�t$�H������H�L$(dH3%(��H��0[]A\�f�H��ʃ����H��r����u�H�����t�H��փ���t���H	�H��{���@L�cH�C����H��� tH�CL�� ���@H����������f.���USH��H������H��H���s��H��H��H�=�H��[1�]���f���H���C��H��H���������H���#��H������H��H�DÐ��S1�H��1��O��H�����H�����H��[�f.���S1�H��1����H������H������H��[�f.���S1�H��1�����H�����H���o��H��[�f.���UH��SH��H��H��H�50 �����H����H���K��H��H���@��L�EH�UL�ǁ� tH�UL�H�HL�΁� tH�HH��tnL�EI�H��urI��A��I��I9�v{I9�vvH���B�H���q�</tR1�@��/t@��9�t�@��@��H�4�����H��H��[]��I��A��I�H��t�L�H�f.�1�@��/u�I9�w��I9�w�L9�H�H��H��[]H���f���UH��SH��H��H��H�5�. ���H��uH��1�[]�H�����H��H���
��H��H��H��[]���ff.����H��H�i. H����	H�i. H�J. H����	H�J. H�* H�=H�0�$���H�(��H�5�H��H�'. ����H�=. 1�H����H�5�����H�=�- 1�H�v���H�5����H�=�- 1�H�*���H�5����H�=�- �H����H�5����H�=�- �H�����H�5n�`��H�=�- �H�����H�5S�A��H�=j- �H�>���H�59�"��H�=K- 1�H�r���H�5!���H�=/- 1�H�6���H�5
����H�=- 1�H����H�5�
����H�=�, 1�H�����H�5�
���H�=�, �����H����H�5a
���H�=�, �H����H�5�
�t��H�=�, �����H�1�H�5�	�U��H�=~, �����H�B�H�5�	�6��H�=_, �����H�����H�5L
���H�=@, �����H�����H�5�	���H�=!, �����H���H�5�	����H�=, �����H���H�5v	���H�=�+ �����H��H�5Q	���H�=�+ �����H�(�H�5/	�|��H�=�+ �����H�I�H�5	�]��H�=�+ 1�H�m�H�5��A��H�' 1�H�=a+ H�5d	�%��H�=N+ 1�H���H�5F�	��H�=2+ 1�H�Y�H�5$����H�=+ �H���H�5�����H�=�* �H�;�H�5����H�=�* �H���H�5����H�=�* �H���H�5��q��H�=�* �����H�.�H�5��R��H�={* �����H��H�5|�3��H�=\* 1�H�C�H�5:���H�=@* �H���H�5J���H�=!* �����H���H�5�����H�=* 1�H���H�5���H�=�) �H����H�5����H�=�) 1�H�n��H�5����H�=�) 1�H����H�5|�f��H�=�) �H�c��H�5��G��H�=p) �H����H�55�(��H�=Q) �H�5��H�5�	��H�=2) �����H�v�H�5a����H�=) 1�H�Z�H�5����H�=�( 1�H�~��H�5����H�=�( �����H���H�5����H�=�( 1�H���H�5I�w��H�=�( 1�H����H�5P�[��H�=�( 1�H�K��H�5+�?��H�=h( 1�H����H�5�#��H�=L( 1�H�S��H�5����H�=0( 1�H����H�5�����H�=( 1�H�[��H�5�����H�=�' 1�H����H�5f���H�=�' 1�H�c��H�5D���H�=�' 1�H����H�5"�{��H�=�' 1�H�k��H�5��_��H�=�' 1�H����H�5�C��H�=l' 1�H�s��H�5��'��H�=P' 1�H����H�5����H�=4' 1�H�{��H�5o����H�=' 1�H����H�5K����H�=�& 1�H����H�5'���H�=�& 1�H���H�5���H�=�& 1�H����H�5����H�=�& 1�H���H�5��c��H�=�& 1�H����H�5��G��H�=p& 1�H���H�5u�+��H�=T& 1�H����H�5S���H�=8& 1�H���H�5(����H�=& 1�H����H�5����H�=& �����H�D��H�5�����H�=�% 1�H�X��H�5u���H�=�% 1�H�<��H�5����H�=�% 1�H��H�5�d��H�=�% �����H�q�H�5��E��H�=n% 1�H����H�5R�)��H�=R% 1�H���H�5z�
��H�=6% 1�H���H�5f����H�=% 1�H����H�5�����H�=�$ 1�H����H�59���H�=�$ H�5-�&���H�5z��H�=yH���Z��f.��H�=��?��H��$ �����H�=2���H�X$ ������H��H���unlinkgetwd11globto_aryArraypathname contains null byteunexpected @pathENOTDIRrmdirzero?writable_real?world_writable?symlink?sticky?size?sizesetgid?setuid?readable_real?world_readable?socket?pipe?file?directory?grpowned?exist?executable_real?executable?chardev?blockdev?extnameutimetruncatelstatrenameftypelchownlchmodmtimectimeatimedirnamereadlinkforeach01mkdirexpand_pathbasenamefnmatchrealdirpathrealpathentries0302sysopenbinwritereadlinesbinreadsubsplit#<%s:%li>to_pathPathnameinitializefreezeuntaint===eql?<=>hashto_sinspectsub_exteach_linebirthtimefnmatch?make_linkmake_symlinkpwdopendireach_entrydelete=~;�T(��������X����� ���<(��X���|��������������X��,���X8��t��������X���������x�����88��T���p����X����������x������8��4���P���lX����������x�������8�����0��\��������X�������(�����4���Px��|����h�������8��	���(	���D	���p	X���	���	����	���
��D
H�x
x��
H��
�H�PX��������� X�T����������$
��P
x�
��
���
���
(�
X���0��h�zRx�$X����FJw�?:*3$"D��\H��(H _t`��ML�X
L����ML�X
L �����E�G W
AD�4��,H c�L��8�H���F�B�K �A(�D`x
(A ABBJ(8���kE�D�G0�
AAGd���CDf
A(�$��}E�D�D j
MQK�x��UE�d
O����UE�d
O���UE�d
OD��UE�d
O���UE�d
O8���UE�d
OT��UE�d
OpT��UE�d
O����UE�d
O����UE�d
O� ��UE�d
O�d��UE�d
O����UE�d
O���UE�d
O40��UE�d
OPt��UE�d
Ol���UE�d
O����UE�d
O�@��UE�d
O����UE�d
O����UE�d
O���UE�d
OP��UE�d
O0���UE�d
OL���UE�d
Oh��UE�d
O(�`��wE�D�G0m
CAO(����eE�D�D m
CAJ ����gE�G j
CGD��UE�d
O���UE�d
O(8���eE�D�D m
CAJ d��gE�G j
CG�\��UE�d
O(����wE�D�G0m
CAO(����wE�D�G0m
CAO �H��gE�G j
CG  ���gE�G j
CGD���UE�d
O`$��UE�d
O|h��UE�d
O(�����E�A�G0q
AAH(�0���E�A�G0m
AAD �����E�G0e
AF@���H V
B00���F�D�F �D@q
 AABG0d���LF�D�F �GP�
 AABJ0����LF�D�F �GP�
 AABJ0����"F�D�F �DP�
 AABH0����F�A�A �N@�
 AABA04`���F�A�A �N@�
 AABA8h���%F�B�A �A(�G@�
(A ABBC0����
F�D�F �DP�
 AABE0�����F�D�A �I@n
 AABJ0	X���F�D�F �DPr
 AABF0@	����F�D�F �DPr
 AABF0t	p���F�D�F �DPr
 AABF0�	����F�D�A �I@n
 AABJ0�	����F�D�F �DPr
 AABF0
��
F�D�F �DP�
 AABE0D
����F�D�F �G0r
 AABC(x
��
E�A�G@�
AAF0�
��vF�A�D �DP�
 AABC$�
��7E�A�G TNC�HI�HQ0�&E�`L(�&E�`h<�&E�`4�P�.E�D�J �
DAIDEA0�H�TE�D�J U
CADWGA�t�
H�	
OGNU��Ppm 9HXcq{�H
�O`m hm ���o`8�
�p @��	���o����o�o���oxm �������� 0@P`p�������� 0@P`p�������� GA$3a1H�OGA$3p1067�}OGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY��GA+GLIBCXX_ASSERTIONSpathname.so-2.2.10-35.el8.x86_64.debug8����7zXZ�ִF!t/����]?�E�h=��ڊ�2N���z��("yBS�D��k:2^�&חF��Ǚΰ{c]=pù"`ǻ#�U���>e��|֓K�ᶈ�C�t�2�����B�7-��!e�e
�R�7�f��p�B��Ր��hrSY���xwzYn/<���Ė�N�O��`&�E�0n���Rwĕm�a��a��^��t�ma�C1��U�j��=r�����,�?5
ym�6!��1QˠWAZ�
�8"�h
F�k5G�?��w�K��Ɵ	�Q6d�ђ��Ն���]�}��\J�lj�s��hR$�^o�#���·�_�p�)A�c0}��,e�Ͼ�H�>`���My��:�o)�֙�i�"���5��Md��Q����fO)���_�sO��X�U|�:�?��w��]��ӬW
�^�R�m���i�$YݙN�BT3��q�-)�+F�fm���?�'�
�_��}���%�(�>�l��b��0��n�������n8�� Ff��^v�"ubC$�Խ���X۫tA-l�e��~:+:v��芯3�Y�^�ؼA�r�2�ڮ��P=k]ӯD���#c
cP
֙���� ,��B7]aQ�������5��H��b=���JJ"c6����m�����,{y�<=�0�۳���]�
�'��ߡ��oH�U�����c��*��s�e���f(:<�qX��*��Ȯ�<Ba�@λ�k��[̓��7���FA���N
5h�_
�<�Г��#=�]����٠>2�H{�Kx��#��A���!ga�L�į
T4�� S�Q��д�c��@��<*��<8A�]#?7*Za"1�ffO�v�ߊ?6��\�e`�z�OF��;T��.���]���kJs�����zT!_i�|�6��0�I�,��O�vX��]�qS��I9ƺ�]վ�H�tz��<���k�4��u�ȄW鈖���~0�K��W������%��
\�[��L�j�w��٘��'/��&Ȧ�⸼T�s�6�@i�+�v��E�w1t}�w��X���#�SO�(�ҡ,�'��n���$$jǤ��p ��w�M�z���4�r�W���{�ޡ�s��W�]�q,��ĵ�hޡ�]�w�݈���p�pB���؄E�S��P߰2�[���)����"��ySS��<�"%��5ٌ�l@=Ry}���~_�`~�j�;��˜D�̅����ֲl�^���Q�-�CcP��.��<J�;n@���o3�d��5寐q�3Й_�D"0`�&���w���H����,�$�>��'�����@����>u�Cc!xb�<��NL�5�dy�����<ԣd�+��qS���?��H�I�11��0�t�F5�^=n�Ӄn�Wb�(h^f��+qF
&��Ty��wdH*Hݡ�L?�"♚�A��L�ۦ�D�=�4���>��,��4`��cw]@YJ5®ae��+}��W;�s$�!l�a{�#����?������x���3�o(��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���088�8���oxE���o��0T���^B@@hHHcpp�n00�w���7}�O�O
�2�O�O��HRHR���T�T�aa �`m `m�hm hm�pm pm�xm xm ��o �oh�p pp�pq pq���s`pqH
�s,�s$z+lib64/ruby/2.2.0/x86_64-linux/stringio.so000075500000101520150402105730013377 0ustar00ELF>`&@|@8	@�i�i �l�l �l � HmHm Hm   888$$�i�i�i  S�td�i�i�i  P�tdH\H\H\DDQ�tdR�td�l�l �l 00GNU��X��I@���=OT�\�@ A\_��1�BE���|�qXz��4�bQ �w���8Q3SD�'U���nj��%���d�n���^�>��� �,���3"�X|�bCE�(W���:a�, q���F"b��3��@Pm��r ��r ��r __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_scan_argsrb_io_write__stack_chk_failrb_funcallvrb_intern2rb_eof_errorruby_xfreerb_gc_markrb_default_external_encodingrb_enc_str_new_staticrb_string_value_cstrrb_io_modestr_fmoderb_string_valuerb_str_resizerb_fix2intrb_io_oflags_fmode__errno_locationrb_sys_failrb_check_typeddatarb_call_superruby_xmallocrb_class_new_instancerb_block_given_prb_yieldrb_ensurerb_data_typed_object_allocrb_io_taint_checkrb_eIOErrorrb_raiserb_to_encodingrb_enc_associaterb_enc_getrb_enc_from_encodingrb_num2longrb_ascii8bit_encodingrb_int2bigrb_notimplementrb_convert_typememsetrb_obj_as_stringrb_str_buf_appendrb_str_conv_encmemmoverb_str_modifyrb_enc_str_buf_catrb_num2intrb_str_newrb_str_substrmemcpyrb_check_safe_objrb_enc_mbclenrb_enc_str_newrb_enc_codelenrb_str_updaterb_str_concatrb_uint2bigrb_str_new_staticrb_eArgErrorrb_enc_copyrb_hash_arefmemchrrb_rsrb_check_string_typememcmponigenc_get_right_adjust_char_headrb_ary_newrb_ary_pushrb_lastline_setrb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_enc_codepoint_lenrb_warnrb_enumeratorizeInit_stringiorb_cDatarb_define_classrb_mEnumerablerb_include_modulerb_define_alloc_funcrb_define_singleton_methodrb_define_methodrb_cIOrb_define_module_underrb_io_addstrrb_io_printrb_io_printfrb_io_putslibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.14GLIBC_2.2.5GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�@����ui	�ii
��ui	��l '�l �&�l �l m Xm P)m 0)m  'ho po 
xo �o 
�o �o �o �o -�o 4�o 5�o ;�o P�o Q�o S�o U�o Vp  p (p 0p 8p @p Hp Pp Xp 	`p hp pp xp �p �p �p �p �p �p �p �p �p �p �p �p �p  �p !�p "�p #q $q %q &q ' q ((q )0q *8q +@q ,Hq .Pq /Xq 0`q 1hq 2pq 3xq 5�q 6�q 7�q 8�q 9�q :�q <�q =�q >�q ?�q @�q A�q B�q C�q D�q E�q Fr Gr Hr Ir J r K(r L0r M8r N@r OHr RPr TXr V`r Whr Xpr Yxr Z�r [��H��H�1S H��t��H����5rS �%sS ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM���������%�N D���%�N D���%}N D���%uN D���%mN D���%eN D���%]N D���%UN D���%MN D���%EN D���%=N D���%5N D���%-N D���%%N D���%N D���%N D���%
N D���%N D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%}M D���%uM D���%mM D���%eM D���%]M D���%UM D���%MM D���%EM D���%=M D���%5M D���%-M D���%%M D���%M D���%M D���%
M D���%M D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%}L D���%uL D���%mL D���%eL D���%]L D���%UL D���%ML D���%EL D���%=L D���%5L D���%-L D���%%L DH�=!L H�L H9�tH��H H��t	�����H�=�K H�5�K H)�H��H��H��?H�H�tH�I H��t��fD�����=�K u+UH�=�H H��tH�=�E �	����d�����K ]������w������1�H����H���ff.�@����fD��SE1�H��H�^0H��dH�%(H�D$1�H���"���H�4$H���V���H�T$dH3%(uH��[��K���ff.���ATI��H�5K U��SH��H��tL���H���7���H��t&[]A\�@�H�=1�'���H��H��J ������fD��ATI��H�5�J U��SH��H��tL���H������H��t&[]A\�@�H�=p/����H��H�]J ���v���fD��H�5=J SH��H��t1�1�H�����H��t'[���H�=�0�o���H��H��I ������ff.���H�5�I SH��H��t1�1�H��� ���H��t'[���H�=�0����H��H��I �����ff.����G���G��~�fD�����H��tH�?�/������AVAUATUH��SH��H�D.H�� dH�%(H�D$1�L�t$L�l$M��L����A�ă����ty��tMH�D$�S��H��H�H�CH�CH	UH�D$dH3%(�QH�� []A\A]A^�fD���1�H�=�-H���j����C��@H�|$@����L���q���H��I���&����CA�<$wA��E��L������SH�D$��t.���H�������H��΃���������E������1�H���P������L�����H�D$��uBH�����t:H��΃���t-��H��Hҁ�H��H�ɹDD��D�c����������I�����A���C����������1��
���ff.���AUI��H�5�A ATA��H��USH��H���
���H��H��t21�1����H��H��L��D�����H��H��[]A\A]�f.�� �V���H��H�H�@H�@H�H�EH�k ����S���H�������u
H��[�DH�=yC H��H��[H������fD��H��@ 1�����ff.�H�����H�5�@ H������H��tH���H�/C H�5,+H�81��F���fD��AUI��ATA��H��USH��H��(dH�%(H�D$1����D��H��L�L$H�(L�D$L��1�H��*���H�<$H��t3�^���H��H���s���H��H�T$dH3%(uH��([]A\A]�D�{��������@��H�������H���f���H����1�H���ff.����SH������H��[�ff.���H������H���f���H�����H�@H�@�H���f���H���c����H���f���SH���C���H��[�ff.���SH���#����H�tH�C �@����H���[���SH�����H�tH�C �@����H���[���SH�������H�tH�C �@����H���[���H�����H�H���ff.���SH���s���H��`�H��[���H���S���H�8��H��H������ff.�@��AUA��H��ATUH��SH��H��dH�%(H�D$1�����H��I��1�I��H�d(D��1���H�����H�H�E��H�E �@��H�<$H��t0@��tbH�H��tgH��ukI�$H��� ��H�BH�@H����I�\$�H�L$dH3%(�}H��[]A\A]�fD��H��H��u�I\$�H��t���H�=�'����@H���h�H���*���H�����m���H�E? H�5^'H�81��\��W��b�1���e���D��USH��H�����H���tH��H�H�EH��H��[]�f�H�����H�EH��H��[]�f.���USH��H���^���H���V�H�t
H�S �BuH��H��[]�f�H�}H���D�H��H��[]�f.���H������H�xH�@H�xH�D?H���fDH��������H������H�xH�@H�xH�D?H���fDH�������UH��SH��H�t$�y���H��H���n�c�H�|$�P�H�D$��uH�����u"�SH�CH�CH�H��[]�DH��΃���tс�H��҃�������PXH��H�������f���ATH�
h%H�j%USH��H����j�H9�t`H��H�����H�53: H��I�����H��tH�{ �G���G��~zL�c H���t.H%����H�H��H�E%H	�H�A�D$H��[]A\�DH�����tɉƒ���~E@��u�H�����t�H�U�с���H	ƒ�HE�����L�c H���u��D�H���k����ff.�@SH������H�tH�S �Bt[�H�< H�5K$H�81���f.���AUATI��USH�����H�(A��tqM��I�H�]�� uRH����M��xcL��H�����L9�}"L��H�}H)�H�E tH�}H�1����H��L��[]A\A]�fDH�]�f.�L���X�I����~�H�=�#��|�ff.��@��uH�����tH��ƒ���t��u�H��H��: H�5j#H�81���f���AWAVAUI��ATUSH��(H�t$dH�%(H�D$1����H���Y�H�|$I��@��u
H������N�I�H�D$H�}��H�|$I�����I��I9�t	M9��5H�D$H��� ��H�X�H����H�}����H�}H��� ��H�����E@�H�EH�t$M9��M9����@�H�E�uHH�����t@H��ʃ����A��u)I�����t I�U�փ���t��H	�H�fDH�D$H�D$H�D$H]H�@H��
H�DH�L$dH3%(�JH��([]A\A]A^A_�f�H�������@�������������DH�|$L��H���x�H�D$���fDH�UH9����H�$����H�}H�$L�'A�� ��L�gH�4H�$L9�����H�$L9�~"H�EL)�H�xH� �L�1���H�t$H� usH�}H��H� usH��H}H����H�E�������DH�G�-����I��H�4H�$A��L9��b������H�t$H� t�H�}H�vH� t�H��DH� ��H��L��H���|�H�E��0���H������$���H��ʃ���~H�T$������H����������H��փ����������H	�H����f.�H���(����H�v�p�����H��������m���@�H���I����m���@H�x�x����B�f���UH��SH��H��dH�%(H�D$1�����H�8������uH�����t
�����t[H���uC���H�|$�D$��H��H�����H��H�L$dH3%(u1H��[]�fD���f�1��H����H������SH����H�tH�S �Bt[�H�36 H�5�H�81��J�f.���H�����H�H�xH��� uDH��H��H�ֺ��H9�}H�WH�PH�9Hҁ�H��H��H���f.��H;y}�H�I��ff.�@��H���3���H�H�HH��� u$H����H9���HL�H����H�B��f.���AWAVAUATUSH��8H�t$dH�%(H�D$(1�����H�|$H����H��L�xH�@�����l�A��L�t$'�D$'L�d$H�}H�4$���H����H�4$L9�~]H��� ��H�SL)�H��H�H�$���H� H�{H�$tH�{J�4?L�E1���1�H� tH�[�fDI)�L��H� u�H��H�L��L�����L�}L�d$H�D$H�L$(dH3%(�upH��8[]A\A]A^A_�DL�d$L����H�|$�y�H�D$H�0�� tL�pH�pH��t�I����@H��L�p����H����������ff.�@��ATUS�3���H�8H����H�H�{H�1�� uVH����H9�}:H��H�,9H�H��H����H�;Lc�Lc��[L��H��H��]A\���[�]A\�fDH�QH9�}�H�qH�,>H��f.���AVAUATUSH��0H�t$dH�%(H�D$(1��v���H�|$��H�8I�����H�|$@������I�}H�\$H���
�H�މ�I��H��A�T$0L�����L��H��Hc���H�D$I�}I�]H�/�� ��H��L�w��H9��L�1��
H��I��L��H��L���s�H�L�H9�r�I�}H�GH� tH�GI)�1�H�L$I�}��H����M�uH�L$(dH3%(���H��0[]A\A]A^�H�|$�F�H�|$�,�I�}��H�|$H����I��H9������%�H9���H�|$L��H��I����H�D$���H�oH9�|L�w����fDH�s��w�I�EH��H��IUH�xH� tH�xH�1��~�H�t$I�}��I�m����fDI���{�������SH���s�H��tH�S �BtH%����H��[�H��0 H�5yH�81������SH���#�H��tH�S �BtH%����H��[�H�P0 H�5QH�81��g����SH�����H��tH�S �BtH%����H��[�H�0 H�5H�81������USH��H���~�H���tH��H�H��xH�EH��H��[]�DH���������1�����ff.����H���#�H�H��t>H�8�� uH����H�D?H���fDH�xH��������?H9�v�H���,�H�-/ H�5�H�81��D�@ATI��UH��SH���~�H��� uFH��H��H�{��L)�H9�HN�H��~[L�]H��A\�j�f.�[1�]1�A\���H�KH��L)�H9�HN�H��~�H�{H��[]L�A\�'����ATUH��S��H��H��dH�%(H�D$1�����H�$I�ă�tF��t"����H�K. ��H�5bH�81��P�H�EH�$H��tH����H�<$���H�UH�$H��th���*H�H���OI�t$M�$H�$�kI��� ��I�HH9��RH����1�H��������@�I�<$H�I��I��A�� ��H�WI�t$H9���H)�1�H����M���H��H�˃�H)�H��H9�HO�H���x�I�4$H� �7H��H�<$It$H� �
H��H��������I�4$H�<$�L�H�$H�I�L$�� ��H����H�I�T$H�L$dH3%(�H��[]A\�H��I�t$H����H9��!���1�H����H�����H�$�fDH��t:I��I��A�� M�������I�X���fDH�P�g����L������H�$@���H�<$H������H�$����fDH�����H�v�����H�����	���@H�����H�������������fD1�����������H��+ H�57H�81�������ATE1�I��1�UH�{H��S��H��dH�%(H�D$1�I��H�$���H�<$H��u6L��H������H��tKH�L$dH3%(u6H��[]A\�f.�H�5. ���!��H��u�L��H����O�����������AWAVAUATI��H��US��H��HdH�%(H��$81�H�l$ L�D$(H���^����������1�����I�<$I�t$H�/�� �:H�oH9��AH�_H�H�H��~
L�,I9���L�D$ I���zI�I��A�� �7H����I��M��teI��I)�I����M9���I�t$I�<$L�����I�$H� ��H��H)�I�D$I�l$�fDH��H9����;
t�H����H9�t#�x
H�x�mH��
H)��m��H��u�I�<$H��H)�H�GH� tH�GH��H)��"���I�$H� �l���H�R�g����H��H�_��H9������H��$8dH3%(�H��H[]A\A]A^A_�fDM�h�����H��( H�H�T$ �B���@H�|$ uhH�D$(H��tM��eH�����DH�|$ H��t-@��uH�����t
�����t�?��H���4H�D$ 1�����f�H������H�D$(H��u���I����N�4+L9��'���I�@L�t$I��H�D$�DH�t$L��L��L�L$L�$����L�$L�L$����I��H�D$K�.H9�����M��t�I�p�@H��I�t$I�<$H)��t�����������H��L��H��H������H���9���f.�M��u;I��A�0L��H���H��H���X���H�hI��I)��I���H���(�����M�@��f.�H�h���M����M�@H�D$0H��$0DL�(H��H9�u�M��I��t'L��L��DH���r�H�D�0H��u�M9�����M��f�M����L��L��F�L��L)�L)�L�G:t�H�H���D0�8u3H�B�H9�u�H���j���L�H�,I���[���I���?���f�NL�0M9�|��:���H�D$ �t0H�H���D���1�1�������I�Q�H�l$I��I)�����H�����������f���AVAUATI��UH��S��H���T��_��I��~SHc�M�t�I�>H��tB�r��H��u7I�>@��tUH�H��u&H�|% H�5�H�81����H��L������H�����L���H���p���H��u�[L��]A\A]A^��)��H���@��UH��S��H��H����H���H���,���H��H������H��H��[]����AUATI��U��H��SH��H���b����������~YHc�M�l�I�}H��tG�z��H��u<I�}@����H�H��u&H�$ H�5�H�81����fDH������H�����L���H���s���H��u�H��H��[]A\A]������H�����H��L���H��E1�[H��]A\A]�������H���n������AUATI��USH��dH�%(H�D$1�������uF�a��H���9��E1�1�1�H��L�����H�T$dH3%(��H��[]A\A]��L��H�\$��H�8I������I�}H���A�H����H9�~TH��H�H�H��H���G����H�|?���Hc|$I}I�}I�EH�0�� t�H�pH9�~H�@H��DL���I������ff.���S1�H��H�=_����������u!H�=�% H��t%�0��H��1�1�H��[����H��[����H�=I�����H��H�M% �SH�����H������H��E1�1�1�H��[�<��ff.����SH���3����u�%DH�����H���x�H��u�H��[�DH��[�f���S1�H��H�=�
�
��������u!H�=�$ H��t%�P��H��1�1�H��[����H��[�w����H�=x
�	����H��H�e$ ���USH��H����H���v����u1�`H����H9�}DH��H�QH�UH�<H���H�����H�EH�MH��� t�H;H}H�@��DH��H��[]�fDH��H��[]���f���S1�H��H�=��
��������u!H�=�# H��t%�P��H��1�1�H��[����H��[�'����H�=�	�	����H��H�]# ���AT1�I��UH��S��H�=�����m����u)H�="# H��t5����H���L��[H��]A\�t��@L��H���[]A\�O����H�=	�	�g��H��H��" �ff.���ATI��U��H��SH�������u3I�4$@��uH�����t
�����tH��[]A\�z�f.�H���H��H��L���H���8��H��[]A\���H�5 ATH�=�USH�0����H��H�h H��H�0����H�5���H����������H����H��H�5B��������H����H��H�5
�����H���H��H�5����������H��H��H�5����1�H����H��H�5L����H���H��H�5����1�H�v�H��H�5��g���H�k��H��H�5��L��1�H����H��H�5��4��1�H��H��H�5���1�H���H��H�5m���1�H�K�H��H�5`����1�H����H��H�5T����1�H����H��H�5D���1�H�S��H��H�59���1�H�+�H��H�5/���1�H��H��H�5�t�������H�8�H��H�5�Y��1�H����H��H�5��A��1�H����H��H�5��)��1�H����H��H�5�����H�E�H��H�5����1�H���H��H�5����������H�r��H��H�5�����1�H����H��H�5d����H����H��H�5c���1�H�G��H��H�5Q�x�������H�����H��H�5;�]�������H�����H��H�5Z�B�������H����H��H�56�'��1�H�����H��H�5���1�H�6���H��H�5����1�H����H��H�5�����1�H����H��H�5�����1�H�����H��H�5����1�H�����H��H�5����1�H��H��H�5{����H���H��H�5^�d���H�8�H��H�5J�I��1�H�P�H��H�54�1�������H�5���H��H�5?��������H�j���H��H�5��������H���H��H�5O�����H��H��H�5?�����H���H��H�5����1�H�q��H��H�5����1�H�Y��H��H�5��z��1�H�!��H��H�5��b��1�H�	��H��H�5t�J��1�H���H��H�5c�2��1�H���H��H�5�����H�N��H��H�55���1�H�f��H��H�5&����1�H�~��H��H�5 ���������H����H��H�5���L�%� H�5I�<$���1�H����H�5	H��H�����1�H��H�F��H�5��j��H�����H����H�5��O��H�����H�P��H�5��4��H�����H�5��H�5���������H��H���H�5����H��H�����I�<$H�5�����H�� �H�5�H��H������H�� �����H��H�5|���H�� �����H��H�5g���H�` �����H��H�5S�t��H�5 �H��H�5=�Y�������H����H��H�5+�>��H��H������H�=\ H�������[]H�M A\�f�H�=�	���H��H�% ����H��H���10:gets02uninitialized stream11:11closed streaminvalid whenceto_strioStringIOnot opened for writingnegative lengthnot modifiable stringnot opened for readingnot openednegative length %ld giveneach_codepointeach_chareach_byteeach_lineinitializeinitialize_copyreopenstring=linenolineno=binmodecloseclose_readclose_writeclosed?closed_read?closed_write?eofeof?fcntlflushfsyncpospos=rewindseeksync=telleachbytescharscodepointsungetcungetbytereadlinesputcisattytty?pidfilenosizetruncateexternal_encodinginternal_encodingset_encodinggeneric_readablereadcharreadbytereadlinesysreadreadpartialread_nonblockgeneric_writable<<printprintfputssyswritewrite_nonblockexceptionclosing non-duplex IO for writingclosing non-duplex IO for readingwrong number of arguments (%d for 0)invalid limit: 0 for readlinesinvalid limit: 0 for each_lineStringIO#codepoints is deprecated; use #each_codepoint insteadStringIO#chars is deprecated; use #each_char insteadStringIO#bytes is deprecated; use #each_byte insteadStringIO#lines is deprecated; use #each_line instead;DGH���`8��������������h������(��D���`���|���(���(������$��D(��Xh��t���(���H���h���������,���D���`(��|X������������������h��<���p���X�������(��H��,X��\���xX�������h��(��@h��\���x8���������	��`	��|	H��	���	���	h�
��D
�x
���
���
h�<��d�������H�0��P��t�������
��<
zRx�$���FJw�?:*3$"D����\0��p<��
 �8��UE�Q x
AA(�t��ZF�K�C �\
ABE(����ZF�K�C �\
ABE���RL�[
I ��RL�[
I8d��Lp��@`|���B�B�B �A(�D0�NPx
0A(A BBBG8�8���F�L�G �A(�G0k
(D ABBK����:E�U
FN������:D]
A80����F�E�G �A(�GPj
(A ABBFlP��HN�X��HK�`��E�L�d��HN�l��'H^����HN���E�L���0E�j8���0E�jT���0E�jp���HL����E�W����!HQ8����kF�H�A �D(�G@�
(A ABBG0�$��FE�A�G [
DACPDA0,@��VE�A�G d
DAJPDA`l��9Ha
GD����9Ha
GD(�����E�D�D0S
AAF���EAD,���F�O�A �y
ABF���6A�\
A84���F�B�D �A(�D0_
(D ABBGp���>fH�����F�B�B �E(�A0�A8�D`n
8A0A(B BBBC(�L���E�D�G0w
AAG����6A�\
A��qHM
K4h��FHp
HHP����F�B�B �B(�A0�A8�Dp
8A0A(B BBBF8����F�A�A �T
JBHA
FBG@�d��F�B�B �A(�A0�D`'
0A(A BBBA@��IE�k
A8t��IE�k
AT���IE�k
A(p���TE�A�G `
DAF���lHi
GW
E@�`���B�D�D �n
DEOA
CDH^AE0���	F�A�D �I0�
 AABD04����F�I�K �F0Q
 AABKLh���B�B�B �B(�K0�A8�I��
8A0A(B BBBG<����F�B�B �D(�D0��
(D BBBA$�$�9E�D�I aDAL 	<��F�B�D �F(�G0�
(D ABBHQ
(L DBBE8p	��F�B�D �A(�D@P
(A ABBI �	��mE�v
ED
L�	��$A�^�	�>E�m
FD 
0�mE�v
ED
L00
|��E�A�G g
DAGDDA d
��mE�v
ED
L4�
$��F�F�D �q
DBII
ABL4�
|�pF�D�F �n
ABO\AB,�
��mM�H�A �-
AICGNU�'�&�l XP)0) '������h
�W�l �l ���o`��
4p P�(	���o����o�o����oHm ������ 0@P`p�������� 0@P`p�������� 0@P`p��������    0 @ P ` p � � � � � � � � !! !0!@!P!`!p!GA$3a1h�WGA$3p1067 '�WGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY '1'GA+GLIBCXX_ASSERTIONSstringio.so-2.2.10-35.el8.x86_64.debugyE	K�7zXZ�ִF!t/���]?�E�h=��ڊ�2N��o� �T���]�ܹE�2��B^k�S8Jt�+�Z��ouV���#E�-u�	2�ڊƕWS���`[Tq1�:��4�s�zs=���t�rJ���?�d��Y�woP�2*R���Ӫ�G����1���<�\W�|�L�b��ߞ�M4�xf%��qF�!B�y��r�t�C6�W/I�y�!#� ��L�:O��Cj�f�,��`���Jn@�r)ՏeX��_�I�4;(x�ݹw��,2�����flX?��eX�G��/L-�.������y�A�<ȸ�u	��LC�sy�,�
��9_D%�~�:ZU8���H;��ݮ�퐳결�~��(�EUK
�
�k;�0/}QXc��B����B��-�n"ISuJ�N�+^���(ׁ��6|r����N�s��������w��v��D�#�ǸK�_����Ch>���7_�a��V{�2�*���6|����GԂp�=�IW��SX��V:5J�ھ�u��i�@`�Z�~D����H0&�oV��vȶoi�[Dq�"�埖?�3f����sŵ�奸^���2O��pd;G�P�~{}Z��X`�H��?!��<dA����зt6� kL��L�?�i��ӣ��bì��ő��Y1Á�ʹ9,v�m�44�c9= 0
�c���+�MלQ�W@��E�I�M/�
;���~�k�@j�A�
]�@�:4V6EP�d��py��M`"S�c�q̡d�WJ�� �,�ĥ>5�|`Wu�&h��F��_��1���Y����.��d��F��ޮ�=��2b�'�K�ǣd���m
��%�+~pv��E��5��M�N%]շ}[
���'��c��FƩ��O�r�4�^�|AkU�s,I�pM��JRԲ��8'y�Oaխ�6��N�/0Ui:�Ø�h������A��~<4��$w�="�H+SJBda|mo�y����MY��8�^ǥ{�;Ǜ��T;���ln8{'~��JIA�Eq���vX$��Ln!bb�#��{�[A��y�+�VXR��%�����Ϫ�,�ʟ�Ǵr�S���RzH�xߋ+�"#.�;��(���N���
h��R���H(HA��{�4���q��۠Ee6U�Z��P���q3G�V@�Y&����5����jl.<MO�<#Y�9�ヘ�u��?̅�7�q�B��h��o�W�<Cˆ��(�1VY��-���%�n�
Ȼd2��F�ƺ�L
"ðg�3ܴ�d�5��~��*e�u7"l���P4}�`ŷ�v��O�.�
�T���v�	�d��>�.V����
�P���Zۡ�0��G��G8��L��_^�Q!�“�\��h������y�'dE��<u���t��#)|J�=�:׭
xh�}H�o
�Qg;@N�D�,Y��S}�r~G���Xu���k�����1�m��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��	0��48���o���E���o��`T��(^BPhhhc���n�!�!�w`&`&M1}�W�W
�2�W�W��H\H\D��^�^(��i�i ��l �l��l �l��l �lh �Hm Hm �ho ho��p p���r �rX��r`�rH
�t,�t��z+lib64/ruby/2.2.0/x86_64-linux/etc.so000075500000070600150402105730012320 0ustar00ELF>`@@j@8	@�U�U �]�] �] �� �]�] �]   888$$�U�U�U  S�td�U�U�U  P�td�O�O�O$$Q�tdR�td�]�] �] ��GNU���;m��*��E�6�ݚ6nJ�D0JLBE���|��U��qXU�+�7f� �����9@y��]Jr�^T�.��gi[��� �!6MH������w��r�#���n�, �*F"��[�j b }hb e/-q b __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeendgrentsetgrentrb_ary_newrb_locale_str_new_cstrrb_ary_pushrb_tainted_str_new_cstrrb_struct_newrb_yieldgetgrentendpwentsetpwentrb_filesystem_str_new_cstrrb_sys_failgetpwentruby_xcallocsched_getaffinityruby_xfree__sched_cpucount__stack_chk_failrb_fix2int__errno_locationconfstrrb_alloc_tmp_bufferrb_num2intrb_str_new_cstrrb_bugunamerb_hash_newrb_id2symrb_hash_asetrb_intern2rb_filesystem_str_newrb_string_valuerb_check_safe_objgetgrnamrb_eArgErrorrb_raiserb_scan_argsgetgidgetgrgidrb_num2uintgetpwnamgetuidgetpwuidgetloginrb_locale_encodingstrlenrb_external_str_new_with_encgetenvrb_ensurerb_eRuntimeErrorrb_frame_this_funcrb_enumeratorize_with_sizerb_block_given_psysconfrb_int2bigrb_io_taint_checkrb_io_check_closedfpathconfInit_etcrb_define_modulerb_define_constrb_define_module_functionrb_cIOrb_define_methodrb_struct_define_underrb_cStructrb_mEnumerablerb_extend_objectrb_define_singleton_methodlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.3.4GLIBC_2.4GLIBC_2.6/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64- ui	�`ti	�ii
�ii
�ui	��]  �] ��] �] �_ �_ #�_ $�_ /�_ ;�_ ?�_ A�_ B�_ C`  ` (` 0` 8` @` H` P` 	X` 
`` h` p` 
x` �` �` �` �` �` �` �` �` �` �` �` �` �` �` �` �` a a  a !a " a %(a &0a '8a (@a )Ha *Pa +Xa ,`a -ha .pa 0xa 1�a 2�a 3�a 4�a 5�a 6�a 7�a 8�a 9�a :�a <�a =�a >�a @�a C�a D�a Eb Fb Gb Hb I��H��H��H H��t��H����5�H �%�H ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@��������%�D D���%�D D���%�D D���%�D D���%�D D���%�D D���%�D D���%�D D���%}D D���%uD D���%mD D���%eD D���%]D D���%UD D���%MD D���%ED D���%=D D���%5D D���%-D D���%%D D���%D D���%D D���%
D D���%D D���%�C D���%�C D���%�C D���%�C D���%�C D���%�C D���%�C D���%�C D���%�C D���%�C D���%�C D���%�C D���%�C D���%�C D���%�C D���%�C D���%}C D���%uC D���%mC D���%eC D���%]C D���%UC D���%MC D���%EC D���%=C D���%5C D���%-C D���%%C D���%C D���%C D���%
C D���%C D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B DH�=�B H��B H9�tH�>@ H��t	�����H�=�B H�5�B H)�H��H��H��?H�H�tH�%@ H��t��fD�����=EB u+UH�=@ H��tH�=�= ����d����B ]������w������H���#�����B H���ff.�@��H�����H���f���H���3����H���f�AVAUATI��US�p���I�\$H��H�;H��t���H��H��H������H�;H��u�I�|$L�-�A�\$H��H�\ID�����I�<$I��H��ID��_���I��H��L��H�=GA [H��1�]A\A]A^�]���ff.�f���H���s�����H���H���H�������{���H��u�H���ff.����H���S���H��tH��H������f��H���fD��H���#������@ H���ff.�@��H�����H���f���H���C����H���f�AWAVAUATUSH��H����H��H�(H�-|H��HD��_���H�{ I��H��HD��L���H�{I��H��HD����H�{D�kH�D$D�cH��O�l-HD�O�d$�2���H�;H�$H��HD����H��M��L��jH�=�? H��1�AWAVL�L$(H�T$ ���H��8[]A\A]A^A_�H�=n����f���H���C�����H������H���P����k���H��u�H���ff.����H���C���H��tH��H������f��H���fD��H�=��0���UH��AWAVAUA�	ATA�@SH��(dH�%(H�E�1��Qf�H�޿���I��H���H��H��1�����A�Dž��L������E����E�A����Ic�H��?H��H��H���w�H�CH��H��H��H��H���H)�H��H9�tH��H��$�H9�u�%�uyL�D$��1�H��I����L��L��L�E��H�1��r���L�E���A���\���L��H�����A��E���N���@H�u�dH34%(D��uIH�e�[A\A]A^A_]��H)�H�L��y���f�A�������L��H���5���A������������UH��H��AVAUATSH��dH�%(H�E�1�����
���A���b���L��P�����D���L��I�����H��H=���H=�wkH��@���H��H���H�CH��HDž@���H��H%�H)�H���H��H9�tH��H��$�H9�u��t	H)�H�L�L�l$I����f�H��@���H���Q���I��A�H��L��D���	���H9�rNH��H��u<A���uR�H�M�dH3%(u9H�e�[A\A]A^]�@����A�����L�������H�=�&1��������H�=�������ATUSH��dH�%(H��$�1�H��H���#�����������H��H���:���H�={; I��H��������L��H��H���d���H�{A����H�=D; I��H���X���L��H��H���5���H�������H�=
; I��H����a���L��H��H������H������H�=�: I��H�����/���L��H��H������H���u���H�=�: H��H��tf����H��H��H�����H��H��$�dH3%(��H�Đ[]A\�DH�=���'���H��H�U: ����H�=�����H��H�
: �z���H�=a�����H��H��9 �,���H�=9����H��H��9 ����H�=����H��H��9 ���H�=��t������ff.�@��H���dH�%(H�D$1�H�|$�D$/tmp�D$�|����uH�����uH�L$dH3%(uH���H��у���tۀ�H����n�ff.���H��H�|$H�t$���H�|$��H�|$H� u!H����H��tH���+���H���fDH���H�s6 H�T$H�5H�81���ff.�f���SH�H��dH�%(H�D$1�H���h��t3���É����H��t2H�����H�T$dH3%(uH��[�f�H�<$�g�����n�H��5 ��H�5�H�81��d�@��H��H�|$H�t$��H�|$��H�|$H� u!H����H��tH�����H���fDH���H�c5 H�T$H�54H�81����ff.�f���SH��H��dH�%(H�D$1�H���X��t3��É��U�H��t2H������H�T$dH3%(uH��[�f�H�<$�W�����^�H��4 ��H�5�H�81��T�@��USH����H��H��t)�d�H��H����H��H��H��H��[]�e�DH�=v���H��H��u�H���[]Ë�6 ��u!1�H�m�1���6 H�=j����%�PH�4 H�5(H�81���ff.��SH����H����H��E1�1�1�H��[��ff.����SH�����t�j���H��[�DH��[�f.���5 ��u!1�H�=���1���5 H�=z����u�PH�U3 H�5�H�81���ff.����SH���#��t���H��[�DH��[�'������H������u���H��tH��H����f�����H��Ð��H�����u�Z�H��tH��H�����f������H��Ð��H���������tH�H��H�D�f��+��T���H���t)H�@H�xH�DH���@H��H����H�=z�@���UH��SH����t>�i��������H����H���t,H�@H�x5H��H�D[]Ð�;������E��uH���[]�DH��H��[]�*�H�=��ff.���ATUH��H����StU����H����H�hH���"��
�����}I����H���t,H�@H�x5[H�D]A\�������A�$��u[�]A\�fD[H��]A\�t�H�=X�����ATH�=HUS���/H�59H��H�����H�ߺ1H�51���H�ߺ3H�5(��H�ߺH�5*��H�ߺ�H�5!��H�ߺIH�5��H�ߺKH�5�m�H�ߺMH�5�Y�H�ߺOH�5�E�H�ߺH�5	�1�H�ߺH�5��H�ߺQH�5��	�H�ߺ5H�5���H�ߺUH�5����H�ߺiH�5����H�ߺyH�5���H�ߺWH�5���H�ߺ�H�5���H�ߺH�5��}�H�ߺ�H�5��i�H�ߺ�H�5��U�H�ߺ7H�5��A�H�ߺ9H�5��-�H�ߺ	H�5���H�ߺ	H�5���H�ߺH�5����H�ߺH�5����H�ߺH�5����H�ߺH�5���H�ߺH�5���H�ߺ�H�5���H�ߺH�5��y�H�ߺ!H�5��e�H�ߺ#H�5��Q�H�ߺ%H�5��=�H�ߺ'H�5��)�H�ߺ)H�5���H�ߺ+H�5���H�ߺH�5����H�ߺH�5����H�ߺ�H�5����H�ߺ3H�5���H�ߺH�5���H�ߺ7H�5���H�ߺH�5y�u�H�ߺ+H�5r�a�H�ߺ-H�5l�M�H�ߺ;H�5q�9�H�ߺ?H�5f�%�H�ߺ5H�5[��H�ߺAH�5U��H�ߺ�H�5T���H�ߺH�5O���H�ߺ�H�5N��H�ߺ�H�5S��H�ߺH�5X��H�ߺ�H�5V��H�ߺ�H�5Y�q�H�ߺ�H�5\�]�H�ߺ�H�5f�I�H�ߺ�H�5k�5�H�ߺ�H�5u�!�H�ߺ�H�5�
�H�ߺCH�5���H�ߺ�H�5����H�ߺIH�5����H�ߺH�5y��H�ߺkH�5o��H�ߺmH�5d��H�ߺ�H�5f��H�ߺoH�5j�m�H�ߺqH�5g�Y�H�ߺ�H�5`�E�H�ߺ�H�5^�1�H�ߺ�H�5[��H�ߺKH�5_�	�H�ߺ;H�5c��H�ߺ�H�5Z���H�ߺ�H�5X���H�ߺ�H�5W��H�ߺ�H�5T��H�ߺaH�5S��H�ߺcH�5Q�}�H�ߺeH�5P�i�H�ߺgH�5M�U�H�ߺ_H�5L�A�H�ߺaH�5D�-�H�ߺ�H�5;��H�ߺcH�56��H�ߺeH�50���H�ߺiH�5*���H�ߺQH�5%���H�ߺSH�5��H�ߺ_H�5��H�ߺUH�5��H�ߺWH�5�y�H�ߺYH�5�e�H�ߺgH�5�Q�H�ߺ�H�5�=�H�ߺ]H�5��)�H�ߺ=H�5���H�ߺ=H�5���H�ߺ�H�5
���H�ߺ�H�5����H�ߺ�H�5����H�ߺ�H�5���H�ߺYH�5���H�ߺ?H�5���H�ߺAH�5��u�H�ߺCH�5��a�H�ߺEH�5��M�H�ߺH�5��9�H�ߺ[H�5��%�H�ߺGH�5���H�ߺ�H�5���H�ߺ
H�5����H�ߺ�H�5����H�ߺ�H�5���H�ߺH�5���H�ߺH�5���H�ߺ�H�5���H�ߺ�H�5��q�H�ߺ�H�5��]�H�ߺ�H�5��I�H�ߺ�H�5��5�H�ߺ�H�5��!�H�ߺ�H�5�
�H�ߺ�H�5��H�ߺH�5���H�ߺ�H�5���H�ߺ�H�5��H�ߺ�H�5K��H�ߺ�H�5��H�ߺ�H�5��H�ߺ�H�5,�m�H�ߺ�H�56�Y�H�ߺ�H�5
�E�H�ߺ�H�5,�1�H�ߺ�H�5��H�ߺ�H�5�	�H�ߺ�H�5��H�ߺH�5���H�ߺ�H�5���H�ߺ�H�5��H�ߺ�H�5��H�ߺ�H�5���H�ߺ�H�5�}�H�ߺ�H�5�i�H�ߺ�H�5��U�H�ߺ�H�5��A�H�ߺ�H�5
�-�H�ߺ�H�5���H�ߺ�H�5��H�ߺ�H�5���H�ߺ�H�5����H�ߺH�5���H�ߺ�H�5���H�ߺH�5}��H�ߺH�5}��H�ߺH�5��y�H�ߺH�5�e�H�ߺH�5w�Q�H�ߺH�5p�=�H�ߺH�5i�)�H�ߺ	H�5a��H�ߺH�5Y��H�ߺ)H�5Q���H�ߺ%H�5K���H�ߺH�5I���H�ߺH�5K��H�ߺ!H�5L��H�ߺ#H�5M��H�ߺ'H�5K�u�H�ߺ
H�5F�a�H�ߺH�5F�M�H�ߺH�5>�9�H�ߺH�56�%�H�ߺH�5.��H�ߺH�5%��1�H��H��H�5�5�H�߹����H�f�H�5��H�߹H���H�5���1�H��H�s�H�5����1�H��H�;�H�5����1�H��H���H�5���1�H��H�K�H�5���H�߹����H���H�5���H�߹H�%�H�5��i�1�H��H���H�5|�Q�1�H��H�E�H�5j�9�1�H��H�
�H�5[�!�1�H��H��H�5L�	�1�H��H���H�5=����1�H��H��H�50����1�H��H���H�5����H�߹H��H�5����H�߹H�'�H�5����H��  �H�h�H�5]H�8���1�H��H�=�H�5�
�Q��H��
jL�
Z
PH��
L�
H��PH��
H�
PH�#H�5y
1��z��L�%S  H�� H�5`
H��H��" I�<$���H�-V  H�=�" H�u���H�=�" 1�H���H�52
�r��H��H��1�jL�
 
L��H�
wH��H�5
����I�<$ZH�5�YH��H�P" ���H�uH�=@" ���H�=4" [1�]H���H�5�A\������H��H���/etc/passwd/etcconfstrunamesysnamenodenamereleaseversionmachinecan't find group for %li01can't find group for %dcan't find user for %lican't find user for %dUSERparallel group iterationparallel passwd iterationsysconf(_SC_NPROCESSORS_ONLN)sysconffpathconfEtcSC_AIO_LISTIO_MAXSC_AIO_MAXSC_AIO_PRIO_DELTA_MAXSC_ARG_MAXSC_ATEXIT_MAXSC_BC_BASE_MAXSC_BC_DIM_MAXSC_BC_SCALE_MAXSC_BC_STRING_MAXSC_CHILD_MAXSC_CLK_TCKSC_COLL_WEIGHTS_MAXSC_DELAYTIMER_MAXSC_EXPR_NEST_MAXSC_HOST_NAME_MAXSC_IOV_MAXSC_LINE_MAXSC_LOGIN_NAME_MAXSC_NGROUPS_MAXSC_GETGR_R_SIZE_MAXSC_GETPW_R_SIZE_MAXSC_MQ_OPEN_MAXSC_MQ_PRIO_MAXSC_OPEN_MAXSC_ADVISORY_INFOSC_BARRIERSSC_ASYNCHRONOUS_IOSC_CLOCK_SELECTIONSC_CPUTIMESC_FSYNCSC_IPV6SC_JOB_CONTROLSC_MAPPED_FILESSC_MEMLOCKSC_MEMLOCK_RANGESC_MEMORY_PROTECTIONSC_MESSAGE_PASSINGSC_MONOTONIC_CLOCKSC_PRIORITIZED_IOSC_PRIORITY_SCHEDULINGSC_RAW_SOCKETSSC_READER_WRITER_LOCKSSC_REALTIME_SIGNALSSC_REGEXPSC_SAVED_IDSSC_SEMAPHORESSC_SHARED_MEMORY_OBJECTSSC_SHELLSC_SPAWNSC_SPIN_LOCKSSC_SPORADIC_SERVERSC_SS_REPL_MAXSC_SYNCHRONIZED_IOSC_THREAD_ATTR_STACKADDRSC_THREAD_ATTR_STACKSIZESC_THREAD_CPUTIMESC_THREAD_PRIO_INHERITSC_THREAD_PRIO_PROTECTSC_THREAD_PRIORITY_SCHEDULINGSC_THREAD_PROCESS_SHAREDSC_THREAD_ROBUST_PRIO_INHERITSC_THREAD_ROBUST_PRIO_PROTECTSC_THREAD_SAFE_FUNCTIONSSC_THREAD_SPORADIC_SERVERSC_THREADSSC_TIMEOUTSSC_TIMERSSC_TRACESC_TRACE_EVENT_FILTERSC_TRACE_EVENT_NAME_MAXSC_TRACE_INHERITSC_TRACE_LOGSC_TRACE_NAME_MAXSC_TRACE_SYS_MAXSC_TRACE_USER_EVENT_MAXSC_TYPED_MEMORY_OBJECTSSC_VERSIONSC_V7_ILP32_OFF32SC_V7_ILP32_OFFBIGSC_V7_LP64_OFF64SC_V7_LPBIG_OFFBIGSC_V6_ILP32_OFF32SC_V6_ILP32_OFFBIGSC_V6_LP64_OFF64SC_V6_LPBIG_OFFBIGSC_2_C_BINDSC_2_C_DEVSC_2_CHAR_TERMSC_2_FORT_DEVSC_2_FORT_RUNSC_2_LOCALEDEFSC_2_PBSSC_2_PBS_ACCOUNTINGSC_2_PBS_CHECKPOINTSC_2_PBS_LOCATESC_2_PBS_MESSAGESC_2_PBS_TRACKSC_2_SW_DEVSC_2_UPESC_2_VERSIONSC_PAGE_SIZESC_PAGESIZESC_THREAD_KEYS_MAXSC_THREAD_STACK_MINSC_THREAD_THREADS_MAXSC_RE_DUP_MAXSC_RTSIG_MAXSC_SEM_NSEMS_MAXSC_SEM_VALUE_MAXSC_SIGQUEUE_MAXSC_STREAM_MAXSC_SYMLOOP_MAXSC_TIMER_MAXSC_TTY_NAME_MAXSC_TZNAME_MAXSC_XOPEN_CRYPTSC_XOPEN_ENH_I18NSC_XOPEN_REALTIMESC_XOPEN_REALTIME_THREADSSC_XOPEN_SHMSC_XOPEN_STREAMSSC_XOPEN_UNIXSC_XOPEN_VERSIONSC_PHYS_PAGESSC_AVPHYS_PAGESSC_NPROCESSORS_CONFSC_NPROCESSORS_ONLNCS_PATHCS_POSIX_V7_ILP32_OFF32_LIBSCS_POSIX_V7_ILP32_OFFBIG_LIBSCS_POSIX_V7_LP64_OFF64_CFLAGSCS_POSIX_V7_LP64_OFF64_LIBSCS_POSIX_V7_LPBIG_OFFBIG_LIBSCS_V7_ENVCS_POSIX_V6_ILP32_OFF32_LIBSCS_POSIX_V6_ILP32_OFFBIG_LIBSCS_POSIX_V6_LP64_OFF64_CFLAGSCS_POSIX_V6_LP64_OFF64_LIBSCS_POSIX_V6_LPBIG_OFFBIG_LIBSCS_V6_ENVCS_GNU_LIBC_VERSIONCS_GNU_LIBPTHREAD_VERSIONPC_FILESIZEBITSPC_LINK_MAXPC_MAX_CANONPC_MAX_INPUTPC_NAME_MAXPC_PATH_MAXPC_PIPE_BUFPC_2_SYMLINKSPC_ALLOC_SIZE_MINPC_REC_INCR_XFER_SIZEPC_REC_MAX_XFER_SIZEPC_REC_MIN_XFER_SIZEPC_REC_XFER_ALIGNPC_SYMLINK_MAXPC_CHOWN_RESTRICTEDPC_NO_TRUNCPC_VDISABLEPC_ASYNC_IOPC_PRIO_IOPC_SYNC_IOgetlogingetpwuidgetpwnamsetpwentendpwentgetpwentgetgrgidgetgrnamgroupsetgrentendgrentgetgrentsysconfdirsystmpdirnprocessorsPasswdshellgecoseachmemGrouprequired buffer size for confstr() changed dynamically.SC_THREAD_DESTRUCTOR_ITERATIONSCS_POSIX_V7_ILP32_OFF32_CFLAGSCS_POSIX_V7_ILP32_OFF32_LDFLAGSCS_POSIX_V7_ILP32_OFFBIG_CFLAGSCS_POSIX_V7_ILP32_OFFBIG_LDFLAGSCS_POSIX_V7_LP64_OFF64_LDFLAGSCS_POSIX_V7_LPBIG_OFFBIG_CFLAGSCS_POSIX_V7_LPBIG_OFFBIG_LDFLAGSCS_POSIX_V7_WIDTH_RESTRICTED_ENVSCS_POSIX_V6_ILP32_OFF32_CFLAGSCS_POSIX_V6_ILP32_OFF32_LDFLAGSCS_POSIX_V6_ILP32_OFFBIG_CFLAGSCS_POSIX_V6_ILP32_OFFBIG_LDFLAGSCS_POSIX_V6_LP64_OFF64_LDFLAGSCS_POSIX_V6_LPBIG_OFFBIG_CFLAGSCS_POSIX_V6_LPBIG_OFFBIG_LDFLAGSCS_POSIX_V6_WIDTH_RESTRICTED_ENVS;$#���@���h�����������������������<H��Th��l����h�������������(x��X�����������������(��4���X���h��������������H�����0���P8��x�������zRx�$`�� FJw�?:*3$"DX��\��!HXt(��HN�0��HN8�8���B�B�B �D(�A0�w(F BBB����4Hk����*HQ
GI���!HX0���HNH���HNT`����B�B�B �B(�A0�A8�DP�XH`NhBpS8A0A(B BBBAP����4Hk����*HQ
GI����,����A�C
F���H�K�+
H(4��yE�F
N����"
E4`l��F�A�A �G�?
 AABF�T��rH L
D����sH A
G ����E�K L
AC����sH A
G ����E�K L
AC04X��`E�A�D a
JAJXFAh���Dl|���$A�^����&E�U
FD����Dl� ��)E�U
FD�0��?HZ
NNP��?HZ
NN$,p��pHP
Hs
EG
E@T����E�D�D z
FAB[
FAFD
DAED����F�A�J �K
FBDY
FBGA
DBED�|��-F�H�A �	(H0R8O@` Q(G0m(H gCPGNU� ��] -=HV`�
@@�] �] ���o`�	�
�` �� 	���o`���o�o����o�] @P`p�������� 0@P`p�������� 0@P`p�������� 0@P`p�������� 0@GA$3a1M@GA$3p1067  =@GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY  A GA+GLIBCXX_ASSERTIONSetc.so-2.2.10-35.el8.x86_64.debugP�K�7zXZ�ִF!t/���A]?�E�h=��ڊ�2N��Z6H�\k'�5�ܹE�2��B^k����Ht88�ɂ�T[�3�%r�d6��'!k��v�2�X���e:�n)[J�U3ק}{v�F�����ր2Tr��k��Q$�!��,_߉������U۴؄\~@��q"��b��e!$�12 �
Vlh��l��y!�u�U�1��Qy�ܙX+{�UJ�D=ݤuk����z�Q�Z�D��~=I�ޱȡ,�
��`��2w.��cZs��o&.bc0`b �k�F3
����F&a�F�C����{����@ş�yM�{�2�`:w�ؙv�Y֧�2�@�~�π 59�	�F��xicPٵW�O�o�N�v��Vk��\$]�̓ϟ�09V��G���(r���$2�4��d��D���`�@jm�3&�>�_UM+�⪓��[M�,��9�%�;P`7b]�����BQ�-�P%;�<�(��J��ңRड3����*n�Eu_��),
�����6��`;���"JSav���H�������<�6R���G���|�'�:�CJ��ym�w@�A�^�@��8���j97��A|�CDp2i��F��q�@>"U�#�:�����ɡz�I��QG�L�C��)�W�w���[�42��`*%2$�{0��������:�(��ˈ8<6;a�œ��HX��5�x,�a�^N�Ns4�>M*��a>P	�,L�����r~N�v8��EZ.T�`c^�V)�F�2�Jߎ�G,���`� 
��d����[��JK��
$�zg�6{�T��"V�1�Fx'�00^Q��z��_+1;N��C��B��-��3��]Ç�ٕ	�=\�F5c��P;Wa�QR&�0b�"���gs�|�>�h3����1��2��#5j�n�w�J`���'���O�O�L�H��B�W-?�=t����v�9��P�ʇS���z�!��;
���é��k3������ԥ��(���93�L��vJ��YL�V��<Xޕ �+A_�$t�|4!6�CY��V(^���ӄz]�+i�g
�@�:9|������%��〱�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��P0�	�	�8���o���E���o``pT�� ^B��hc00 nPPw``� }@@@@
�2P@P@8��O�O$��P�P(��U�U ��] �]��] �]��] �]��] �] ��_ �_H�` ` � b  bH�hb` bH
hd(�d�i+lib64/ruby/2.2.0/x86_64-linux/readline.so000075500000112150150402105730013325 0ustar00ELF>�7@(�@8	@�t�t �|�| �| � �|�| �| PP888$$�t�t�t  S�td�t�t�t  P�td�i�i�iQ�tdR�td�|�| �| xxGNU\;������Om�Ƈ����@ ����|CE���qX}�BWw&)n��{�!���B I�wR	��?g�E���^��2q�&y�� �~���a, z��0�F"������z����]��0m���@�k���������j���U};CR��Qd����b�2M.(;�l����[m��!�r�:h�Q�W[�	�� �	�� �	�� ��\�__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerl_pointrl_editing_modehistory_basehistory_lengthclear_historyrb_attr_getrb_funcallrb_intern2rl_filename_quote_charactersrb_locale_str_new_cstrrl_completer_quote_charactersrl_basic_quote_charactersrl_completer_word_break_charactersrl_basic_word_break_charactersrl_line_bufferrl_completion_append_characterrl_attempted_completion_overrb_Arraymallocrb_locale_encodingrb_enc_from_encodingrb_gc_writebarrier_unprotectrb_obj_as_stringrb_string_value_cstrrb_enc_checkstrcpyrb_enc_codepoint_lenrb_tolowerstrncpystrduprb_memerror__stack_chk_failrb_string_value_ptrrl_username_completion_functionrl_completion_matchesrb_ary_newrb_ary_pushfreerb_ary_shiftrl_filename_completion_functionremove_historyrb_string_valuerb_check_safe_objrb_enc_getrb_str_conv_encadd_historyrb_fix2intreplace_history_entryrb_num2intrb_eIndexErrorrb_raiserb_str_new_staticrl_special_prefixesrb_ivar_getrb_str_new_frozenrb_cStringrb_obj_revealrb_obj_hiderb_ivar_setrl_redisplayrb_setup_fake_strrb_freeze_singleton_classrl_delete_textrb_str_subposrb_str_strlenrb_range_beg_lenrb_num2longrb_error_arityrb_out_of_intrb_eArgErrorrl_insert_textfcloserl_instreamrl_outstreamruby_xrealloc2ruby_xmalloc2rb_locale_str_newrl_emacs_editing_moderl_vi_editing_moderl_get_screen_sizefilenorb_thread_call_without_gvl2rb_wait_for_single_fd__errno_locationrb_sys_failrb_thread_check_intsstdinrb_bugrb_block_given_prb_yieldhistory_getrb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_respond_torb_io_taint_checkrb_io_check_initializedrb_eIOErrorrl_initializerl_refresh_linerb_scan_argsrb_protectrb_str_new_sharedrb_str_set_lenrb_str_catrb_str_locktmprb_str_unlocktmp__ctype_b_locrb_str_tmp_newrl_free_line_staterl_cleanup_after_signalrb_jump_tagreadrb_check_typerb_io_check_closedrb_cloexec_dupfdopenrl_set_screen_sizeInit_readlinerl_readline_namerl_getc_functionusing_historyrb_define_modulerb_define_module_functionrb_define_singleton_methodrb_cObjectrb_obj_allocrb_mEnumerablerb_extend_objectrb_define_constrl_library_versionrb_str_new_cstrrl_attempted_completion_functionrl_pre_input_hookrl_catch_signalsrl_clear_signalsrb_gc_register_addresslibruby.so.2.2libreadline.so.7libncurses.so.6libtinfo.so.6libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.4GLIBC_2.3/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64O	 ui	�	�	ii
�	ii
�	ui	�	�| `8�|  8�| �| �~ �~       ( 0 8 @ $H )P 1X 6` 8h :p =x ?� B� Q� U� W� X� Y� [� a� q� y� {� �� �� �� �� ��  � (� 0� 8� @� 	H� 
P� X� 
`� h� p� x� �� �� �� �� �� �� �� �� ��  Ȁ !Ѐ "؀ #� %� &� '�� (� *� +� ,� - � .(� /0� 08� 2@� 3H� 4P� 5X� 7`� 8h� 9p� ;x� <�� >�� @�� A�� C�� D�� E�� F�� G�� Hȁ IЁ J؁ K� L� M� N�� O� P� R� S� T � V(� Z0� \8� ]@� ^H� _P� `X� b`� ch� dp� ex� f�� g�� h�� i�� j�� k�� l�� m�� n�� oȂ pЂ r؂ s� t� u� v�� w� x� z� |� } � ~(� 0� �8� �@� �H� �P� �X� �`� �h� �p� �x� ��� ���H��H�AU H��t��H����5"V �%#V ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��������hb�������hc�������hd�������he�������hf�������hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!������hm���������%=O D���%5O D���%-O D���%%O D���%O D���%O D���%
O D���%O D���%�N D���%�N D���%�N D���%�N D���%�N D���%�N D���%�N D���%�N D���%�N D���%�N D���%�N D���%�N D���%�N D���%�N D���%�N D���%�N D���%}N D���%uN D���%mN D���%eN D���%]N D���%UN D���%MN D���%EN D���%=N D���%5N D���%-N D���%%N D���%N D���%N D���%
N D���%N D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%�M D���%}M D���%uM D���%mM D���%eM D���%]M D���%UM D���%MM D���%EM D���%=M D���%5M D���%-M D���%%M D���%M D���%M D���%
M D���%M D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%�L D���%}L D���%uL D���%mL D���%eL D���%]L D���%UL D���%ML D���%EL D���%=L D���%5L D���%-L D���%%L D���%L D���%L D���%
L D���%L D���%�K D���%�K D���%�K D���%�K D���%�K D���%�K DH�=�K H��K H9�tH�~G H��t	�����H�=�K H�5�K H)�H��H��H��?H�H�tH�EG H��t��fD�����=]K u+UH�=*G H��tH�=VD �����d����5K ]������w������H�=G HcH�D�ff.����H��F �8H����ff.���H�}F ��8�HE����H�F 8��������f���H�F HcH�D�ff.����H��E �8H����ff.���SH�����H��[�ff.���H�5�J H�=K �	���f���H�5�J H�=�J ���f���H�5�J H�=�J ����f���H�5�J H�=�J S���H��tH�5J H��H��t1�H��1�����1�[��H�=�+���H��H��I ����H��D H�8H��t
������f.���H��E H�8H��t
�X������f.���H�-E H�8H��t
�(������f.���H��D H�8H��t
������f.���H�=D H�8H��t
�������f.���H��D H�8H��t
������f.���AWAVAUATUH��SH��H�5!I H�="I dH�%(H�D$x1�����H������H H��H��C H�5�H H�=�H �H��C �����H��H�D$ ���H�5H H��H����H��H��1��'���H�ŨuH������SH������L� H��A�� �L�eM���J��H��H�D$���H�D$XH���N���1�H��I�����I��H�D$pH�D$H�EH�D$M���%L�|$(L�l$X�~@����H�D$H�<����H�|$H�D$p����H�t$pL�����L�|$pI�?�� ��H����H�����I�D�H����I�wH��H�����I9���H����H��H�E �m����p�H�E �i����I��A��M�����H�D$X��L� D�������������f.�I�GH�x�C�I�D�H���
I�w�Y���@L�|$(H�D$XH�L$H�D�I����H�\$XH�CH��H�D$�0���I��I���)H�D$ H��H�D$(H�CH�D$HH�D$H�D�H�D$PH�D$hH�D$0H�D$lH�D$8f�H�D$HL� L�����H�D$ H���<M���3H�L$L�E1�1�H�D$L��L�M��I��H�L$�$@9�u|HcD$hI�HcD$lH�M9�}gH9\$ ~`H�D$H�T$0L��H�t$J�<0��H�T$8H�t$L��I�<����H�|$(��t���D$D�����T$D�ʼn������9�t�DH�D$HH�D$HH9D$P����I�~��H��H�D$XH�H��tvH�pL��H������B�0H�L$xdH3%(H�D$XuRH�Ĉ[]A\A]A^A_þH�=*&��H��H�kD �]���E1��n���H�\$XH�{���H����������ATU�SH��H�|$H�t$��H�5)@ H�����H��tfI���d���I�<$H��H��t-L��D���H��H��H���L���H�{����H�;H��u�L�����H�E�� u*H�}����tH���6�H��H��[]A\�f.�H���������ATU�SH��H�|$H�t$��H�5? H���!�H��tfI����I�<$H��H��t-L��D��H��H��H�����H�{��#�H�;H��u�L����H�E�� u*H�}����tH���v�H��H��[]A\�f.�H�������U�SH����H��tH�8H����H�;H����H����H��H��[]���H��= �8��~���f.���f.���AVAUI��ATUSH��dH�%(H�D$1���tm�G�H��H��L�d�H��H�C�H��H�$�T�H�<$����H�<$I����H�<$L��H����H�$H�xH� tH�x���L9�u�H�L$dH3%(L��u
H��[]A\A]A^������USH��H��H�|$H�t$���H�|$�
��u�H�|$H���(�H�|$H��H���h�H�D$H�xH� tH�x�]�H��H��[]���UH��SH����H�T$������H�|$�D�H�|$����H�|$H����H�|$H��H�����H�D$��xOH�hH� u*��A 1�H�����H��t4H�D$H��[]�DH�h��f��+���v���@H��; y�H�V< H�5"H�81��=�ff.�f���USH��H��H�t$H��uH�q; �H��H��[]ÐH�|$�V�H�|$����H�|$H����H�|$H��H����H�H�D$�� u���t�H����H�xt�H�@�H��: �H��H��[]�����H�=C!��ff.���H�E; SH�8tH�5�? H�=�? �+�H��u
�H��[�H����H��H�>; H��H�0���H��[�fD��UH��SH��H��H�t$H��tUH�|$�;�H�|$�����H�|$H����H�|$H��H�����H��H�D$�"�H��H�D$�U�H�T$H�5? H�=:? ��H�D$H��t2H� tH�@H�N: H�H��H��[]ÐH����f.�H�): H�H��H��[]����H��H�=�> H�5�> �&�fD��SH���S�H��[�ff.���AVAUATU��SH��@dH�%(H�D$81�����H��9 I��H�H����H��I��H�$��H�D$��H�T$H�|$H��H���=�I�ƨu6H�����t.H��ƒ���t!H�€�I�~I�t��uL���D�@��t[H�<$����H�t$H�Hc�H9��-Hc�H9�����H�L$8dH3%(L����H��@[]A\A]A^�DI�u@����H�I�}H�4$@����H�H�|$H�l$H��L�����H����H)�H��H�$�_���DL��H�l$�;�I�}H��H��A�H��H�D$��H�<$H���#���I�u@��t7H�H�4$�fD��H�4$H���m����H���h�H���A���H���X�H��뿺1����r����H�����H��7 H�5�H�81���ff.�f���USH��H��H�|$H�t$���H�|$�:���H�|$H���X�H�|$H��H����H�D$H�xH� tH�x�M�H��H��[]�H�=�; H��t<H���{�H�l6 H�u; H9t0H�e; H�j; H���DH�U; �@H���ff.�@H�=; H��t<H����H�L6 H��: H9t0H��: H��: H���DH��: �@H���ff.�@��USH��H��H�|$H�t$��H�|$����U�H�|$H����H�|$H��H���H�H�=	: H�D$H����H�0�� tpH�pH����V�H��9 H��H�t$H��� u_H��H����H���,�H�T$H��H��� u4H�����H��4 H�H��H��[]�DH����H���H�B��f�H�VH�v�fDH�8�� t%H�xH����C�H��H�19 �X���@H����H������USH��H��H�|$H�t$�d�H�|$����H�|$H�����H�|$H��H����H�=�8 H�D$H����H�0�� tpH�pH�����H��8 H��H�t$H��� u_H��H����H�����H�T$H��H��� u4H�����H�j4 H�H��H��[]�DH����H���H�B��f�H�VH�v�fDH�8�� t%H�xH�����H��H��7 �X���@H����H������USH��H��H�|$H�t$�$�H�|$�j����H�|$H����H�|$H��H�����H�=y7 H�D$H����H�0�� tpH�pH������H�G7 H��H�t$H��� u_H��H����H����H�T$H��H��� u4H�����H�3 H�H��H��[]�DH����H���H�B��f�H�VH�v�fDH�8�� t%H�xH������H��H��6 �X���@H����H������USH��H��H�|$H�t$���H�|$�*���H�|$H���H�H�|$H��H����H�=16 H�D$H����H�0�� tpH�pH�����H��5 H��H�t$H��� u_H��H����H���l�H�T$H��H��� u4H�����H�Z1 H�H��H��[]�DH����H���H�B��f�H�VH�v�fDH�8�� t%H�xH�����H��H�Y5 �X���@H����H������USH��H��H�|$H�t$��H�|$����U�H�|$H����H�|$H��H���H�H�=�4 H�D$H����H�0�� tpH�pH����V�H��4 H��H�t$H��� u_H��H����H���,�H�T$H��H��� u4H�����H��/ H�H��H��[]�DH����H���H�B��f�H�VH�v�fDH�8�� t%H�xH����C�H��H�4 �X���@H����H������H��dH�%(H�D$1�H�a/ ����tH�|$��T$��H�L$dH3%(uH����Y�f���H��1���l��H���f���H��1���,��H���f���SH��dH�%(H�D$1�H�t$H���z����Hc4$H��H��H�t6��Hct$H��H�t6��H�T$dH3%(u	H��H��[������H�e. ��m3 �H����AUI��ATUSH��(dH�%(H�D$1�H����L��L�,$I��H���������D$f�1�L��H�����H�l$H�=(�s��D$���uZ�\$��tR��tE����L���l��;D$ue1Ҿ���X����u��n��8t�H�=
�m��D�s�끐H�L$dH3%(u@H��([]A\A]�DH��- L�(�+���H�=:1��3���H�=������[�ff.���H��, ���~1������f.���ATI��US�@���tTH�-�, 1ۋE��$�6f.�H�8���E�H����9]~���1 ������H��u�L��[]A\�@�C�H�����[L��]E1�1�1�H��A\��D��SH��H��tH�5�0 H��t&H���n���t7H�5�1 H�=�1 H��[�����H�=t���H��H�u0 �H��, H�5%H�81���ff.��
z0 S����H�=�0 H��uMH�=�0 H��u	[���k�H�XH�����C��y��c���H�, H�51H�81����3�H�XH���w��S��y���H��+ H�5�H�81�����+����/ �[���ff.����H���3���1�1����H�����AWAVAUI��H��ATUSH��8dH�%(H�D$(1�H�\$L�D$ H��������������H�T$1�H�=7����r��H�ËD$�����H�D$ ����uCH��tH����H��H���+��H�L$(dH3%(H����H��8[]A\A]A^A_�DH��t�H����볐H���(��H�|$�n������H�|$H����H�|$H��H������H�55/ L��H��H�D$�5��H��H���z��H�5/ L��I�����I��L9���I�.�� �]I�nH���?M�~L�1�L���>��I9��EA����9M��E1��@����WA��u!�H�5�L�����E1�f.�H9�v%���tI��I�Y������u�H9��&L)�A��u�H�5�L���9��H��L��L���+��H�5$. L��L�����H�5
. L��L�����L��L�d$���H�\$H� u,����H�sH�T$H�='����b��H��H�|$�U����H�k���H�T$H�=����H���3��H��H��u����fDH����H����M�~���fDH��L��L��L)�I���\��E1�����@H��L��L��L)�I���<��A���������A�Q��[�����H��L��L��D�D$L)�L�$H�����L�$D�D$L�{L9�tv�S��tyD�D$�T$L�$�����L$L�$H�D�D$H��DHuW�A�L��<	v���;t�M���/���H���X��I��I� �	������1��@���H��M������L��M���
���E��t%L�{L��L��D�$L��L��L)��B��D�$����H�5�L���%��A�L�$������?���|$�F���������USH��H��dH�%(H�D$1��n��H�t$���{H�����H��t>H��u(�D$�C�E�C1�H�L$dH3%(u&H��[]Ð�������f��E�������]��ff.�f���ATUSH��H��to�H�����H�����H�hH���~�����}�A���Ń��thH�5����L��H��t4H��% H��* H��* H�H��[]A\���k�H��[]A\��^����D� H�����H�=FD�#�R��H�=1�F��fD��ATUSH��H��to�H������H�����H�hH��������}����Ń��thH�5������H��t4H��$ H��) H��) H�H��[]A\���;�H��[]A\������D� H������H�=�D�#���H�=q���fD��SH��H���t����H�% �H��[�D����H�% �H��[�D��ATI��UH��H�׃�StJ�����L��A��t�u���މ����H��[]A\�@�{���މ�����H��[]A\�f.��[��������H��H����t0����Dž�x0��( �����H��t)H�8H���G�������Dž�y�H�~# 8y�H�;$ H�5�	H�81��"��f���H��H����t(�����H�B# ���x(9�~(H���?�������H�# ���y��y�H��# H�5�	H�81�������SH��H��tH�5�' H��t&H�������t7H�5( H�=4( H��[����H�=$	���H��H�]' �H�d# H�5�H�81��;��ff.���AUATUSH�R	H��H�# H�H�z" H��H�����H�<' H���kH��' H�' H���DH�u' H��& H���
H�F' H��& H����H�=	H� ' ���������H���H�5	H��H�.' ���H�="' �H�^���H�5��b��H�=' �H����H�5��C��H�=�& �H� ���H�5��$��H�=�& 1�H����H�55���H�=�& �H���H�5�����H�=�& 1�H�y��H�5
����H�=n& 1�H����H�5k���H�=R& 1�H�A��H�5[���H�=6& �H�2���H�5B�v��H�=& �H�S���H�5*�W��H�=�% 1�H���H�5�;��H�=�% 1�H�{�H�5���H�=�% 1�H����H�5���H�=�% 1�H�#�H�5�����H�=�% 1�H����H�5�����H�=l% �H�x�H�5����H�=M% 1�H�l�H�5����H�=1% �H�
�H�5��q��H�=% 1�H�a��H�5��U��H�=�$ �H���H�5�	�6��H�=�$ 1�H����H�5�	���H�=�$ �H��H�5����H�=�$ 1�H����H�5�����H�=�$ �H���H�5����H�=a$ 1�H� ��H�5����H�=E$ �H�!�H�5����H�=&$ 1�H����H�5��i��H�=
$ 1�H���H�5��M��H�=�# �H�z���H�5��.��H�=�# 1�H����H�5d���H�=�# �H�?�H�5X����H�=�# �����H���H�5E����H�=u# 1�H���H�55���H�=Y# �H���H�5 ���H�=:# 1�H��H�5��}��H��" H���mH��" H�o" H���6H�-o H��" H�}�/��H��H�� H��H�0�Z��1�H��H���H�5����H�߹H�c���H�5����H�߹H���H�5�����H�߹H�=�H�5~���H�߹����H�b��H�5f���1�H��H���H�5S���1�H��H���H�5?�v��1�H��H���H�5-�^��1�H��H�r��H�5�F��1�H��H�Z��H�5�.��1�H��H�b��H�5����H�߹H����H�5����1�H��H�O��H�5�����H�=�! H��H�5��-��H�}����H�8��H�5aH��H�����H�=G! H��H�5�����H�}H�-����p���H�4��H�5H��H���b��H�=! H��H�5WH�J�����L�-� H��  H�-�  I�}���I�u�H�=6I���������H�=�  L��H�5(H�M���H��H�� H�H�o H����H�H�� ��;��H�=  �/��H��H�=� []A\A]���f��H�=����H�� �x���H�=����1��� �����H����1�1�H�5s���H�����>���$���f��H�=��?��H� ����H�=����H� �v����H�=0���H�� �
����H�=����H�� �����H�=����H�� ���H�-� �(���@H�� �1�����H��H���callinvalid indexHISTORYrb_wait_for_single_fdreadclosed readline inputclosed readline output02dupwfdopenRubycompletion_proccompletion_case_foldpre_input_hookspecial_prefixesReadlinereadlineinput=output=completion_proc=completion_case_fold=line_bufferpointpoint=set_screen_sizeget_screen_sizevi_editing_modevi_editing_mode?emacs_editing_modeemacs_editing_mode?completion_append_character=completion_append_characterbasic_word_break_characters=basic_word_break_charactersbasic_quote_characters=basic_quote_characterscompleter_quote_characters=completer_quote_charactersfilename_quote_characters=filename_quote_charactersrefresh_linepre_input_hook=insert_textdelete_textredisplayspecial_prefixes=orig_promptlast_promptto_s[][]=<<pushpopshifteachlengthempty?delete_atclearFILENAME_COMPLETION_PROCUSERNAME_COMPLETION_PROCEditLine wrapper1aVERSIONreadline_getc: input closed unexpectedly or memory corruptedargument must respond to `call'completer_word_break_characters=completer_word_break_characters;@$���$��L���d���x�������$���4���T���t��������� ���4���HT��d���x�����������D���t������,���`T�����������������<���h����������������$��4T��x����4���������$�0d�\������D��d������$�8D�tt�������D��d�	��\	D��	��	��
� 
t�X
��t
T�
��
zRx�$�����FJw�?:*3$"D����\H��pT���`���l���h���d���p���|��E�L������,���@���]S�i
D\���&p��&� ��&�<��&�X��&�t��&L����_F�B�B �B(�A0�D8�G��
8A0A(B BBBA0$����F�A�F �D0�
 DABK0X,���F�A�F �D0�
 DABK$����=A�F�D lDA����&@�����F�B�E �A(�A0�D@�
0A(A BBBA$h��mE�A�G0ZDA(4����E�D�D0�
AAF0`d���E�A�G0\
DABsDA��������ZL�h
Da0�,���E�D�G0�
DABbDA�������E�L@,���#F�B�B �A(�C0�Dp�
0A(A BBBF$p���mE�A�G0ZDA���aPrV�p��aPrV(����=E�A�G0�
DAF(����=E�A�G0�
DAF((���=E�A�G0�
DAF(T��=E�A�G0�
DAF(���=E�A�G0�
DAF�(��WH I
A�l��HU�t��HU �|��oE�D \
DA���80���%F�E�A �A(�DP�
(A ABBFl���&4�����F�D�A �U
ABENDL�<�uE�s
H����G�a
H�D� HWHL�?F�B�B �L(�A0�A8�Dp�
8A0A(B BBBF(T@��E�A�G0_
AAB8����F�A�A �m
ABHI
ABA8�8��F�A�A �m
ABHI
ABA���;E�]
FR4��iF�D�J �d
ABER
ABKP�nHl
Llh�hHd
L���uE�s
H8� ��F�B�A �A(�K0�
(H ABBNGNU�`8 8�| 	 	1	A	O	_	j	x	�	�	�)
le�| �| ���o`x�
�	� P
p�x	���o����o�oj���o�| �)** *0*@*P*`*p*�*�*�*�*�*�*�*�*++ +0+@+P+`+p+�+�+�+�+�+�+�+�+,, ,0,@,P,`,p,�,�,�,�,�,�,�,�,-- -0-@-P-`-p-�-�-�-�-�-�-�-�-.. .0.@.P.`.p.�.�.�.�.�.�.�.�.// /0/@/P/`/p/�/�/�/�/�/�/�/�/00 000@0P0`0p0�0�0�0�0�0GA$3a1�)yeGA$3p1067p8leGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYp8�8GA+GLIBCXX_ASSERTIONSreadline.so-2.2.10-35.el8.x86_64.debugn1�7zXZ�ִF!t/����]?�E�h=��ڊ�2N��$�^ ��F�oة��!�3;�zA"��!uq��o�cܭ��J/�H$01�7C�f�Ԛx�R�uW�=����<�&	,(�%�K�7H��j9idZ�SH8�cp��g��ur0ꇒtO������;&)'��f9�,����c%� �6!�v�j�W��N�ס���K_l!̵%?��UZp�}��6k�7�pB��rY	��p�m���Q�)���W�Sʺ�t����TAIת���׻i�$U8ζ�RNn�E0�c���n��Z��ⅹ���\����~�ݓ������2��;���ZJz�e�9��G�B�����0�^sQl��OzP�2���بH�7_�(DŽ>��h7�z��i<��g�n|���à<A���\.`�v-���Ɛ��X��o�?_P-{���v����IhvJ�I�&w���l�~��J���L�>�Yܺ�Ə��{��Y�nS��z�53��|�K��c<��o$N
I�zK�����̮?h����O���)_C�E4$����άQsJ��]�KN�/^��2�i8�GfD�%|����rX����&!sI�|����}���ș���F��؞��C�#�X2�YU�}�PPߍ&�;���|ш2��0�K�|�_�qm
�
t��v��x��`]�u͓5
:��8��Z��Y.��S����8�����`]j9�H/s z�x�'�`�쵨,�#a����ߧ��9��X(sVA���jH־5s��3/!���hǠ�a�r��i��~1�N���/�0b�f~�_���2���k��}�Wւ�6W�h4G:͎K��AΠ[��8���~8�j���)A� ž; XC�({���;����뉯Fl��{�`v$�q�Qe��q˧�{�a�
��n�/�B�h�"�Ӿ��SY�)���D�,�;�D(ҋ�����O�[TH?��y�:�ͦl^0����r��M(�q��^hs���� Q��V�9s-Y�L��d�H��.Z�q��8kN�j�xe����bb�P��֘3	�)�	]���5\�VpÍ{��@�R�iL���y���9μ
���L��m�����}ٛ��d��%%����ޙ^�ҍ	�&ݪ4����68%����x"�B��G(���x�@e�3!��k�%xv��[��B_$�q�
�_W
�{��j��!.�O������a���4Hĩ������z!�v��7k׭�
%�
�]��U1�O5ڡ���Z�WB�NY�9�0�rza�l�I��!1��~���
ֆΨAS뼜�v�`��x0�����A*�h���BXdIP����-ܴ���l�Y��Kނ�Vgmj�OZ7�S�j���V�7[���S��
R���[��k��?nJm�ˁ�$��t��krkTRġ%V謮,^��x��{�CF����M!��j%�gi��ʜ�����3/��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���
0xx�	8���ojj(E���o��`T��x^BppP
h�)�)c�)�)�n�0�0�w�7�7�-}lele
��e�e:��i�i��k�k���t�t ��| �|��| �|��| �|��| �|P��~ �~�� ����� ������`��H
Ѕ,�����+lib64/ruby/2.2.0/x86_64-linux/gdbm.so000075500000071140150402105740012457 0ustar00ELF>� @ k@8	@�S�S �\�\ �\ 8h h]h] h] 00888$$�S�S�S  S�td�S�S�S  P�td`H`H`H��Q�tdR�td�\�\ �\ GNUG/���S��	��aq��F���N�@$NPBE���|�V�qXy)���� �X�l<�U7~a�G~Is���Ujf�t ����"Q��j<!��/h��]�
�~��!�, I��v�F"���M����(b �Xb �@L�(b __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_check_typeddatagdbm_closeruby_xfreerb_eRuntimeErrorrb_raisegdbm_firstkeyrb_str_newgdbm_fetchrb_string_valuegdbm_nextkeyrb_hash_newrb_hash_asetrb_ary_newrb_assoc_newrb_ary_pushmemcmpgdbm_existsrb_out_of_intrb_error_frozengdbm_syncgdbm_reorganizegdbm_fdescrb_fd_fix_cloexecrb_block_callrb_intern2gdbm_deletegdbm_errno_locationgdbm_strerrorrb_hash_delete_ifrb_yieldrb_ary_tmp_newrb_str_duprb_protectrb_gc_writebarrier_unprotectrb_ary_clearrb_freeze_singleton_classrb_jump_tag__stack_chk_failrb_ary_new_caparb_warngdbm_store__errno_locationrb_sys_failrb_check_typerb_eArgErrorrb_data_typed_object_allocgdbm_setoptrb_fix2intrb_block_given_prb_frame_this_funcrb_id2symrb_enumeratorize_with_sizerb_scan_argsrb_eIndexErrorrb_check_safe_objgdbm_openruby_xmallocrb_sys_fail_strrb_num2intrb_ensureInit_gdbmrb_cObjectrb_define_classrb_eStandardErrorrb_eExceptionrb_mEnumerablerb_include_modulerb_define_alloc_funcrb_define_singleton_methodrb_define_methodrb_define_constgdbm_versionrb_str_new_cstrlibruby.so.2.2libgdbm.so.6libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64� ui	��ii
�ui	��\ �!�\ P!] ]  ] 2H0] "8] �!�_ �_ 	�_ "�_ $�_ &�_ 2�_ 4�_ 9�_ ?�_ @�_ A�_ D�_ E`  ` (` 0` 8` @` H` P` 
X` `` h` 
p` x` �` �` �` �` �` �` �` �` �` �` �` �` �` �` �` �` a  a !a #a $ a %(a '0a (8a )@a *Ha +Pa ,Xa -`a .ha /pa 0xa 1�a 3�a 5�a 6�a 7�a 8�a :�a ;�a <�a =�a >�a B�a C�a E�a F�a G�a Hb Ib Jb Kb L b M��H��H�1G H��t��H����5rG �%sG ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA���������%MC D���%EC D���%=C D���%5C D���%-C D���%%C D���%C D���%C D���%
C D���%C D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%�B D���%}B D���%uB D���%mB D���%eB D���%]B D���%UB D���%MB D���%EB D���%=B D���%5B D���%-B D���%%B D���%B D���%B D���%
B D���%B D���%�A D���%�A D���%�A D���%�A D���%�A D���%�A D���%�A D���%�A D���%�A D���%�A D���%�A D���%�A D���%�A D���%�A D���%�A D���%�A D���%}A D���%uA D���%mA D���%eA D���%]A D���%UA D���%MA D���%EA DH�=AA H�:A H9�tH��> H��t	�����H�=A H�5
A H)�H��H��H��?H�H�tH��> H��t��fD�����=�@ u+UH�=�> H��tH�=�; �����d�����@ ]������w������1�H����H���ff.�@��H��H�5Q; �|���H��tH�xH�H�������H���fD��H��tSH��H�H��t�e���H��[���@��PXH�57$H��H��= H�81����f���SH�5�: ���H��t H�xH��H��t�	���H�C�[����D��PXH�5�#1�H��H��H�=�? �>���ff.�USH���5���H��t`H��Hc�H���"���H��H������@��u"H�����tH�E�ƒ����H��sH��H��[]�D��H�E����H��H��[]Ð��H��H�5�9 ���H��tIH�xH��t@���x�t)H���@���H��tH���6���1�H�����H������f�USH�����H��t`H��Hc�H���2���H��H�����@��u"H�����tH�E�ƒ����H��sH��H��[]�D��H�E����H��H��[]ÐSH��H��H�|$H�t$���H�t$H��� uH��H����H���I���H��[�H�N�Hc���H9�u�H�v���SH��H�5�8 ���H��tH�xH��t	H��[�y����t���@����f.�USH��H��� ubH��H�������H��H��tiH��Hc����H��H�������uH�����tH��ƒ���~I��H�H��H��[]�f�H�FHcȉ�H9�uH�v�y���H��H��u��H��H��[]�f��H��r����ATH�5�7 US���H��t^H�hH��tU����H��I������H��H�����t2H��H���e���H��L��H�����H��H�����H��H�����u�L��[]A\��4���@��ATUSH�����H�5	7 H��I���.���H��tXH�hH��tOH�����H��H�����t4DH��H������H��L��H���/���H��H���d���H��H�����u�L��[]A\����ff.����AWH�5�6 AVAUATUSH�����H����L�`I��M����Hc��~H��H�D[]A\A]A^A_�fDL������H��H��tPE1�DH��L��A�����H��I��H�����L��H��M��u�Ic�H�DE�uH��[]A\A]A^A_�D�E1�������f���ATH�5�5 US����H��tfH�hH��t]���H��I���.���H��H�����t:H��H�����H��H���Z���L��H�����H��H������H��H�����u�L��[]A\��L���ff.����AWH�5#5 AVAUATUSH���B���H���~L�`M��tu����L��I������H��H��H��tHDH��H��L�����H��L��I��H��I���N���H��L��H���P�H��L��L���2���M��u�H��L��[]A\A]A^A_����fD��ATH�5s4 US���H��tPH�hH��tG�y���H��I�����H��H�����t$H��L������H��H������H��H�����u�L��[]A\��"���f���USH��H��H�|$H�t$����H�5�3 H������H���H�hH���H���g���H��H�����uJ���H�H��H��I�Ƀ�A�� u\H����9�tXH��H���1���H��H�������H��H���w���H��t�H�|$H�I��A�� t�H��wI��A�� t��H9�u�M��u?H����H�pM��tH�pM��u6H���m���y���H���[]�f�HcW��f.�H���f.�H��1�[]�����f���USH��H��H�|$H�t$��H�5�2 H�����H���H�hH����H������H��H�����uJ���H�H��H��I�Ƀ�A�� u\H����9�tXH��H�����H��H�������H��H���'���H��t�H�|$H�I��A�� t�H��wI��A�� t��H9�u�M��u?H����H�pM��tH�pM��uH������y���H��H��[]�H���f�HcW��f.��H��H��[]����ff.����ATUH��SH��H�|$H�t$�b�H�t$H��� uMH��L�f��H�531 H����Y�H��t@H�xH��t7L��H���p��H�H��H��[]��A\�H�~Hclj�H9�uL�f������f.�@��uH�����tH��ƒ���t��u�H��H�=��ff.���SH�����H�5|0 H����H��tH�xH��t
�!�H��[��g������USH��H���n���H�570 H���_�H��t*H�hH��t!H�����H������J�H��H��[]�����ff.���UH��SH��H��H�5�4 H��t$I��H��L��1�1��N�H��H��[]�@�	H�=
��H��H��4 ���AWAVAUATUSH��H��H�|$���H�5j/ H����H����H�hI��H���������H����I��H��H��u�r���M��L��M��t�H��H��L����H��H��I��L��I���6�H�߅�t���M��tL���}�����8�Q�H�=�3 H�5$H��1���A�EH�D$H��[]A\A]A^A_������UH��SH��H�����H�5�3 H��t'I��H��L�"1�1����H��H��[]���	H�=���H��H�E3 �ff.�AVAUATUH��SH��H�t$�7���H�|$�
�H�t$H��� ��H��L�f��H�5�- H�����I��H��tL�pM��tvL��H��L�����t5L��H��L�������uWA�UH���x��A�UH��[]A\A]A^�@�H��[]A\A]A^�fDH�FHcȉ�H9�u�L�f�h����T�A�E�����'��8��H�=Q2 H�5�H��1�������ATUH��S�0���H�5�, H���!�H��tVL�`M��tML���{�H��H��t2L��H�����H��H��I�����L��H��[]A\��f.�[�]A\�����H�����H��H�������AVAUATI��US�|�H�5U, L��I���z�H����H�hH����H�����H��H�����tyL�-, �7�L��L���5�H��tdH�hH��t[H��H����H��H�����t9H��H�����H��H����H��H���`�H�����t�H��L���=��[L��]A\A]A^������AWAVAUI��1�ATUSH��(dH�%(H�D$1��d�L���D$I�����H�5J+ L���r�H����L�xH��M������E����L���D$��H��H�������L�t$�HfDH�5�* L����H��H����L�xM����H��L���u�H��H���������u)H�������tH����H�{H�t���;H��L����H��I����L��H���W�H�=�, L��H�����L$��uH������I���H��L������9����1�M�t$�G�H��H����H9�~JL����L��I�$ ����L��H�4�L��H�����I�$H���� u�I�T$H9���|$���}�T$��~H��uNA�D$�T$)‰UL���X�L��H�T$dH3%(uLH��([]A\A]A^A_�fD��I�D$ �q����H������H��������N�����@��AUHc�ATI��I��USH��H���a�H��E��~(A�E�L�l�H�3L��H���a�H��H���v�L9�u�H��H��[]A\A]���U1�H��SH��H�=�H�����H��H��H��[]������AVI��AUATUSH��H�$H�t$���H�|$��H���}�H�D$H��� ��H��H�h��Hc�H9���H�$A��L�A�� ��L�hL�@Ic�I9���H�5( L��D���8�H����H�xH���������L��I��H��A�L������tY���8tg���8�;�H�=�, H�5H��1��s�I��L�hA���i����H�hH�P�*���H�$H��[]A\A]A^��1����d�H����L����@��ATUH���SH����H��� �|H��H��������H����H��H� uE��H�C H��H��L� ��H��H� tA�|�H��H�3L��H������[�]A\��[�H�C�DH�{���fD�;�H�[ �H�N) H�5�H�81��=�ff.�f���H�U& 1���ff.�PXH���%��8��H�=O+ H�5�H��1����fD��SH��H�5& H��dH�%(H�D$1���H��tKH�xH��tB1�H�T$�H���������D$������t#H�L$dH3%(H��uH��[������I���f���SH��H�5q% H��dH�%(H�D$1���H��tKH�xH��tB1�H�T$�H���������D$�6����t#H�L$dH3%(H��uH��[����n����f���USH��H�5�$ H��dH�%(H�D$1���H��tKH�hH��tBH���A�H�T$�H���D$�����t$H�L$dH3%(H��uH��[]�������(������ATUH��S�P���t|H�5E$ H���m�H����H�xH��t~���H��H�����t?L�%$ @H����L��H���-�H��tKH�xH��tBH����H��H�����u�H��[]A\�@��H���c�[H��E1�]1�1�H��A\�������AUATI��USH��������H�5{# L����H����H�XH����H����H��H�����tLL�-C# H��H���E�H�����L��L���R�H��tVH�XH��tMH��H����H��H�����u�H��L��[]A\A]���H����H��L��E1�[1�]1�A\H��A]�����f���AUATI��USH��������H�5�" L�����H����H�hH����H����H��H�����tWL�-c" H��H���e�H��H���:�H�����L��L���g�H��t[H�hH��tRH��H�����H��H�����u�H��L��[]A\A]�D�+�H����H��L��E1�[1�]1�A\H��A]������f���AUATU��SH��H�GH��(dH�%(H�D$1�H�L$L�D$���L�d$H��L�l$L�����H��H��t)��t2H�T$dH3%(H��u_H��([]A\A]�fDI��t2L��u��=�H��uÅ�u�H��# H�5�
H�81��������t�L����H����m�ff.�f���ATI��UH��S�M�H��H��tH��L����H��[]A\����t�H���O�H����f.���AVAUATI��H�*
U��SH�� dH�%(H�D$1�I��L�L$L�D$L������tH�|$�����H���CH�|$H���TL��A�1��4�H�<$�+�H�<$H��� ��x=�ځ�H���H�L�^����"�I��H��uzH�<$H��� ����H����H�L�!�1ɾ���I��H��u=H�<$H� ��H��L���1�D����I��M����fDL��������������I�|$ H����I�\$ L��L�k�����H�L$dH3%(�eH�� []A\A]A^��@������H�|$��H�������@�����a���L������H�<$������ �����H�<$�ڀ�H� uZH��L���������I��M������������Y���8t�O���8	t
�E���8
u0H�<$���H��f.�������U���@����8��H�=5# H�5gH��1�����@�S�������@H������H�����������fDH��'������A��A�����ff.���ATI��1�U��H��H�x S�2�L���H��H������H��t�W���uH��[]A\��H��[]A\�H�=� H��H��[H�S�]A\���ff.���H��H�� H�=^H�0��H�=�H�" H�} H�0��H�=yH��! H�X H�0�h�H�=�! H��! H�k H�0�K��H�=�! H�5-����X��H�=�! �����H���H�5(���H�=�! �����H�����H�5�Z��H�=s! 1�H�j�H�5��>��H�=W! 1�H���H�5��"��H�=;! �H���H�5����H�=! �����H����H�5�����H�=�  �H�!�H�5�����H�=�  �H��H�5����H�=�  �H���H�5g���H�=�  �H���H�5��h��H�=�  1�H���H�52�L��H�=e  �����H���H�5�-��H�=F  1�H�}�H�5���H�=*  1�H�a�H�5����H�=  1�H���H�5�����H�=� 1�H�����H�5����H�=� 1�H�����H�5����H�=� 1�H�!���H�5����H�=� 1�H�����H�5��i��H�=� 1�H���H�5p�M��H�=f 1�H���H�5Y�1��H�=J 1�H��H�5D���H�=. �H����H�5+���H�= 1�H�F�H�5����H�=� 1�H�*�H�5���H�=� 1�H��H�5����H�=� 1�H���H�5����H�=� 1�H�F�H�5��j��H�=� �H�W�H�5��K��H�=d �H���H�5��,��H�=E 1�H���H�5����H�=) 1�H�`�H�5p����H�=
 �H���H�5V����H�=� �H�2�H�5B���H�=� �H���H�5-���H�=� �H��H�5�x��H�=� �H���H�5�Y��H�=r �H���H�5��:��H�=S �H��H�5����H�=4 �H���H�5����H�= �H���H�5�����H�=� 1�H���H�5����H�=� 1�H��H�5o���H�=� �@H�5_���H�=� �@H�5N����H�=� �@H�5=����H�=v �@H�5-���H�=^ �!H�5���H�=F �AH�5���H�=. ��H�5��m��H�� H�8����H�= H��H�5�H���D����H��H���closed GDBM file%sGDBMeach_pairpair must be [key, value]11key not found12GDBMErrorGDBMFatalErroropeninitializecloseclosed?[]fetch[]=storeindexselectvalues_atlengthsizeempty?eacheach_valueeach_keykeysvaluesshiftdeletedelete_ifreject!rejectclearinvertupdatereplacereorganizesynccachesize=fastmode=syncmode=include?has_key?member?has_value?to_ato_hashREADERWRITERWRCREATNEWDBFASTSYNCNOLOCKVERSIONgdbmGDBM#index is deprecated; use GDBM#key;�40���`���@��`�����<���X���t0���`�������P�����<0��``��|p��� �������0��(�������@���8�pP�����0��p���80�d0�������40�pP��0������L �t���`�������	@�<	��`	`�	 ��	�
��h
��
 ��
0�������XzRx�$`��0FJw�?:*3$"Dh�� \0��p<��:H]
KI�\��)J�U��p��AAK�t��;E�p
A����"EAM0���A�A�D O
DAFYDA$4���gHk
EX
HI
A0\@��A�A�D O
DAFYDA ����YA�G s
AD����,A�a
E����4�����A�A�D [
DAJh
DAC,P��|F�H�A �d
ABA,L����F�A�A �s
ABA`|���F�I�B �B(�A0�A8�D@i
8F0A(B BBBGP
8A0A(B BBBF,�l���F�H�A �l
ABAH����F�I�B �B(�A0�A8�D@~
8D0A(B BBBA,\0��nF�H�A �V
ABA4�p��NE�A�G0
FAJd
CAA4����DE�A�G0
DADa
DAA0�����F�A�D �D0[
 DAED0��2fD8��9E�n
A(`\��UE�A�G }
DAA(����]E�D�G f
DAEH�����F�B�B �B(�A0�A8�GP�
8A0A(B BBBA(x��eE�D�G k
DAHT0���B�B�B �A(�D0�D@�
0A(A BBBEI
0A(A BBBG8�t�F�A�D �S
ABOA
FBA���HI<����F�B�B �D(�A0��
(D BBBAH`�\F�B�B �G(�A0�A8�D`�
8A0A(B BBBG4ht�]F�E�G �A(�G0y(D ABB$���/E�F�N IGA@���\F�E�B �A(�A0�D@
0A(A BBBH,���F�A�I �w
FBA<p�P|�*AAD l���E�N c
AA ����E�N c
AA(�h��E�A�N0b
AAA8����F�A�D �}
ABEN
GIELP��F�B�D �A(�D0�
(D ABBAQ
(G CDEELl���F�B�D �A(�D0�
(D ABBFQ
(G CDEE8����F�B�A �C(�NPY
(A ABBG(�$�FF�D�D �]
ABB@$	H�F�B�B �K(�F0�DPq
0A(A BBBH@h	�uF�F�M �h
ABDI
ABDNHB�	P�LH5GNU��!P!] 2H"�!z������h
\F�\ �\ ���o`H
�
.` 08p�	���o ���o�ov���oh] ������ 0@P`p�������� 0@P`p�������� 0@P`p�������� 0@P`p����GA$3a1hiFGA$3p1067�!\FGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�!�!GA+GLIBCXX_ASSERTIONSgdbm.so-2.2.10-35.el8.x86_64.debugHYw9�7zXZ�ִF!t/���]?�E�h=��ڊ�2N������$���:�~X�o��/�������*����~�u�S`Yۄo�7�_�1��H��`t�ɾ4�4(�ŋd=>G�W����0Y��r`�n�O��D��$u�Y�}�C���&$.H�Q]	�06���wz�q���u������f�
pνEDR<{*v��2Bzd���S�K�l�3ZQ��k��H��������e(�o��	{�]��^�u�i�o��f���>uY!��P�PL�2Z�_pl}���<U���H��$S������"����.䛳�ܜ-Ez�3i�0�Hnډ�U�n��`M��;�j�W-�g��ߖ	U��H"Dk'@V��``���_%B�=!�JO����a�lc�Y}$����a���@Ep���y{{�G�nNw0U���P0�}��OJ���"9��A�����$����)��@@�s�=E-��q�#<�1-��(��*�P9?�D�A���SNA�ڿc�{�M���A\ e͐D�xK*�f�[�p��[*�٬R�+�D��>V*��N�@��-����t�"��(�/y�*e��u�G5�6�`4W܄	�J)cV]��� ۽��wm�p'�	lT�$�V�,%�j���=�0�-B�{��L�[4�2����"i�RdP9�A�����Y
�5��)�b���_���m��~�?7��,n[�Uq�	��Mt��ˉu�	���X&jQ��Q�P;ėΊ�0u,�0���-��:����;+ӛ?&|/���%Vݞ�ȯ.qά�wN�!�>_�#��X�b��ʸ�}�Bh8B���R�,B2�R�97[�5Qw��ƍ+�Lk�����4�=X^��8k��ʨ�����b�yx��C��'P����4�~��$uI�2��WN��?�WD��=!j��c��EXĈ5@�[o���	�%^9��cg��3*)r��f(��8Z�b-�����5*X o�A�(�r����뤲5��+ζ@�ŞLƭJm�"���������w[`D��#v���/�����+���w�j��D/<%W)�M����N�~M�{�>�H�p���ặU���i�G𰻅��*���4����u�R���\��6;T�ӫ��[e�"�_��%�(;�G�7�WOnFN-�$�6"
����B�ޑ�)�!��k��5�����Bcl�q�B#��5��Y�}������=� }yN��.�b�L+e�-�6EZ�@eU�5(P�=���lW4_���
�+�K&��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0H
H
.8���ovv�E���o  PTpp�^B880hhhc��0n�� w� � |%}\F\F
�2pFpF��`H`H��JJ�	��S�S ��\ �\��\ �\�] ]h �h] h]0��_ �_h�` `(�(b (b0�Xb`(bH
pd(�dX�i+lib64/ruby/2.2.0/x86_64-linux/ripper.so000075500000603170150402105740013053 0ustar00ELF>@R@8�@8	@���� ����"��"�H ����"��"  888$$������  S�td������  P�td��������Q�tdR�td����"��"PPGNUU��F�c�7$`���b�n9"t�d �txy���&BE���|�G�s�qX��h/���k V�`l�0��}�R>�8s�:�z0���E�C���%L�(�{u�����`� ��(�j�
��U�qs��������O���n��A�P��c`ga, ~��F"�N�C7�Y�����QQ��"d��"�@��X��"Q�]�__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_isspacerb_str_freerb_gc_force_recycleruby_global_name_punct_bitsrb_isdigitrb_isalpharuby_xrealloc2rb_enc_codelenrb_enc_str_newrb_enc_dummy_prb_enc_str_coderangerb_usascii_encodingrb_utf8_encodingrb_ascii8bit_encodingrb_enc_associaterb_enc_find_indexrb_enc_from_indexrb_sprintfrb_eArgErrorrb_make_backtracerb_ary_unshiftrb_make_exceptionrb_exc_raise__stack_chk_failrb_enc_getrb_raiserb_id2symrb_node_newnoderuby_xmalloc2ruby_xmallocruby_xfreerb_bugrb_vsprintfrb_funcallrb_intern2stderrfwrite__fprintf_chkfputcrb_check_typeddatarb_gc_markrb_enc_from_encodingmemchrrb_str_subseqrb_io_getsrb_scan_argsrb_string_valuerb_str_new_frozenrb_fix2intrb_enc_str_new_staticrb_freeze_singleton_classrb_num2intruby_xcallocrb_data_typed_object_allocstrncmpstpcpystrlenrb_eRuntimeErrorrb_memcicmpruby_scan_hexrb_usascii_str_newrb_complex_rawrb_rational_rawrb_compile_warnrb_str_catrb_str_buf_newrb_id2strrb_enc_precise_mbclenmemcpyrb_int2bigrb_thread_currentrb_ensurerb_ruby_verbose_ptrrb_enc_str_buf_catrb_intern3rb_hash_newrb_define_constrb_internrb_hash_asetruby_scan_octruby_snprintfmemmoverb_cstr_to_inumrb_int_positive_powrb_rational_newruby_strtod__errno_locationrb_float_new_in_heaprb_isxdigitripper_yyparserb_parser_mallocrb_parser_freerb_str_new_staticrb_isupperrb_ary_new_from_valuesrb_ary_pushrb_assoc_newrb_ispunctrb_parser_reg_compilerb_char_to_option_kcoderb_isalnumrb_str_resizest_locale_insensitive_strncasecmpruby_scan_digitsrb_reserved_wordrb_str_newrb_str_coderange_scan_restartableInitVM_ripperrb_cObjectrb_define_classrb_usascii_str_new_staticrb_define_alloc_funcrb_define_methodInit_ripperlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.3.4GLIBC_2.14GLIBC_2.4GLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64GPti	i���uii
�ui	�ui	���"�R��"�R��"��"��"����"�X��"�i��"���"�X�"�i �"p�(�"`]0�"�Y8�"�S��"w���"����"����"����"����"����"����"Ȭ��"֬��"���"���"���"���"���"'���"5��"B��"O��"\��"j� �"x�(�"��0�"��8�"��@�"��H�"��P�"ŭX�"Э`�"�h�"�p�"�x�"���" ���".���";���"G���"T���"b���"n���"y���"����"����"����"����"����"Ϯ��"ݮ��"��"���"��"��"'� �";�(�"G�0�"L�8�"R�@�"X�H�"b�P�"h�X�"o�`�"x�h�"�p�"��x�"����"����"����"����"����"ɯ��"ү��"ۯ��"���"���"���"���"����"����"���"���"
��"��"��"��"� �"$�(�"*�0�"/�8�"4�@�"9�H�"J�P�"S�X�"X�`�"\�h�"d�p�"h�x�"l���"p���"x���"|���"����"����"����"����"����"����"����"Ű��"Ѱ��"ް��"���"����"��"��"��"'��"2� �":�(�">�0�"B�8�"F�@�"J�H�"N�P�"R�X�"V�`�"Z�h�"^�p�"b�x�"f���"j���"n���"z���"~���"����"����"����"����"����"����"����"����"����"����"����"���"���"���"Y��"DZ �"˱(�"ر0�"�8�"�@�"�H�"ϱP�"ܱX�"�`�"��h�"|�p�"�x�"���"����"���"D���"���"+���";���"����"#���">���"C���"N���"Y���"c���"m���"w���"���"���"���"���"�� �"��(�"��0�"��8�"ݪ@�"��H�"ԵP�"��X�"��`�"IJh�"Ҳp�"βx�"ݲ��"���"���"����"����"����"���"	���"���"���"���""���"'���",���"1���"6���";��"@��"E��"J��"O� �"T�(�"X�0�"\�8�"`�@�"d�H�"h�P�"m�X�"q�`�"�h�"��p�"��x�"����"����"����"����"����"����"ó��"ɳ��""���"ͭ��"ϳ��"׳��"���"���"���"����"��"��"��"��"'� �"7�(�"C�0�"s�8�"2�@�"L�H�"P�P�"T�X�"X�`�"\�h�"g�p�"�x�"s���"w���"����"����"����"����"����"/���"����"����"����"����"����"����"ʴ��"Ҵ��"-��"ݴ�"��"��"� �"��(�"�0�"�8�"��@�"�H�"�P�"
�X�"�`�"�h�"(�p�"3�x�"2���"C���"]���"S���"W���"[���"_���"c���"o���"¥��"h���"g���"s���"l���"{���"����"c��"���""��"���"�� �"��(�"��0�"
�8�"��@�"DzH�"εP�"صX�"�`�"�h�"��p�"��x�"���"���"���"%���"-���"9���"B���"H���"T���"c���"l���"y���"����"����"����"����"���"���"���"���"Ƕ �"Ѷ(�"ܶ0�"�8�"�@�"��H�"�P�"��X�"�`�"
�h�"��p�"���"��"
��"9��"B��"[��"d��"e��"h��"o�" �"(�"0�"8�"@�"H�"P�"	X�"`�"h�"
p�"x�"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"��"�" �"!�""�"# �"$(�"%0�"&8�"'@�"(H�")P�"*X�"+`�",h�"-p�".x�"/��"0��"1��"2��"3��"4��"5��"6��"7��"8��":��";��"<��"=��">��"?��"@�"A�"C�"D�"E �"y(�"F0�"G8�"H@�"IH�"JP�"KX�"L`�"Mh�"Np�"Ox�"P��"Q��"R��"S��"T��"U��"V��"W��"X��"Y��"Z��"\��"]��"^��"_��"`��"a�"b�"c�"f�"w �"g(�"h0�"i8�"j@�"kH�"lP�"mX�"n`�"ph�"qp�"rx�"s��H��H�9�"H��t��H����5r�"�%s�"��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��������hb�������hc�������hd�������he�������hf�������hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!�������%��"D���%��"D���%��"D���%��"D���%}�"D���%u�"D���%m�"D���%e�"D���%]�"D���%U�"D���%M�"D���%E�"D���%=�"D���%5�"D���%-�"D���%%�"D���%�"D���%�"D���%
�"D���%�"D���%��"D���%��"D���%�"D���%�"D���%ݣ"D���%գ"D���%ͣ"D���%ţ"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%}�"D���%u�"D���%m�"D���%e�"D���%]�"D���%U�"D���%M�"D���%E�"D���%=�"D���%5�"D���%-�"D���%%�"D���%�"D���%�"D���%
�"D���%�"D���%��"D���%��"D���%�"D���%�"D���%ݢ"D���%բ"D���%͢"D���%Ţ"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%}�"D���%u�"D���%m�"D���%e�"D���%]�"D���%U�"D���%M�"D���%E�"D���%=�"D���%5�"D���%-�"D���%%�"D���%�"D���%�"D���%
�"D���%�"D���%��"D���%��"D���%�"D���%�"D���%ݡ"D���%ա"D���%͡"D���%š"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%��"D���%}�"D���%u�"D���%m�"D���%e�"D���%]�"D���%U�"D���%M�"D���%E�"D���%=�"DH�=9�"H�2�"H9�tH�F�"H��t	�����H�=	�"H�5�"H)�H��H��H��?H�H�tH�-�"H��t��fD�����=Š"u+UH�=�"H��tH�=�"����d������"]������w����H��~1���|�*tIH��H9�}���*t��-t�H��H9�|�1��fDH�PH9�}�|-t H����f.��|�-u�H�D��|�-u�H�D���H��t7HcGXH���H H��t#�H�JH��(H��tHcIH��H�RH��u�Ð1��ff.�f�1��������9��t	1��fDUSH��H���H���H��H9�rH���[]��H��H9�t��;�/�����u�H��1�[]�f�H�N ATUH��SH�H��H�GH�Op�� uvH�QH��H�����H�HUL�eH������H���L�牃�H�EH��������L���I���H���A���H���H���[]A\�fDH�QH�AH�����H���H���H�BH9���S�
��@����{�1���$t[�fD�Z�߃�-���C߃�]w/�S�مҍBI���������H�)�H�
J�"����rj@���A�����u]��_tX��xT��������uI1�[�DH����YLJ�[���Z��@u�H�BH9�v��Z���[[�f�1��ff.�f�D�GT�WXH�G`A�0�OT9�|JUSH��@�9���WXH����H��Hc����D�CTH�C`H��A)�[]Mc�L��f.�Mc�L��f�HcGTH�W`�H�OT@�4�wX9wT}�D�SH����wXH�`Hc�����H�C`[�AUI��ATU��H��S��H��H���t���L�c0L����&���H��H�ډ�[H��]L��A\A]��ff.�@AUM��ATA��USH��H���(���A��H��u�{tH��H��[]A\A]�H��������u�H������=t�����L9�u��>���H9�t����H��H���	�����UH��H��SH��H��(dH�%(H�D$1��������������xH��u.H���|�����u"H���H�D$dH3%(��H��([]�H�sH�=�G1����H�D$H�ȗ"H�H�$������H���H�=RGH�D$1��|���H�|$H������H�����H���:���H��H�=G1��I���H�D$���ff.�f���UH��SH��H���;�����uH��[]�H��H��H��[]����ff.�@SH�wh���H��H��tH���4�xuH���V�����uH��[�H�֖"H�5�FH�81���DSH�����H��1ɿH��[�$���@S���H���GT�G\H�G`H��t3�{X
[���CX<��<H���G�H�C`[�GX<��<���H�C`�@UH���SH���
�����H��H�H�C�m���H�kH�H��H��[]�ff.����ATI��USH�`H��t���I��$�H��t,f.�H�{H��t��H�kH����H��H��u�[L��]A\��f�USH��H��H�����tDH��H�Hcw;wt�V�SH�,�H��[]�fD���wHc�H���#�HcsH���H��1�H�=f\�i�f�USH��H��H���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�dH�%(H�D$1�H��$�H���$H�D$H�D$ �D$0H�D$���H�5=�"H��H��t=H��1�H������H�D$dH3%(u-H���[]�fD�
H�=�C���H��H�ݗ"��V�fDAU�	ATI��USH��H�=�CH��H�-�"H�M�/���L9�w9I)�I��N�lcL�%�C��H�}L��1�H������L9�u�H�uH���
[]A\A]���f���H��H�5��"�����H��H��;H��?���D��SH��H�5��"�|�H�����������	ʈ��H��[����H��H�5A�"�<����H��H��>H��?���D��H��H�5�"�����H��H��?H��?���D��H��H�5�"���Hǀ�H������SH��H����H������H�{h���H�{p��H�{x��H�����H�����H����H����H���|�H�;[�s���H��H�51�"�,�H���H���|�ff.����AWAVAUATUSH��H��� u~H��L�~��H���H��tH9�trI�H)�I���
�E1�I��I��H��L���
���L��L��H�PL)�H��HE�H�H��I���H��[]A\A]A^A_��L�~H�^�fDH���[]A\A]A^A_�@��H����@��AVI��H�50�"AUA��H��ATUSH�� dH�%(H�D$1�L�d$H����L�L$M��H��H��H��SL��D��1��Q�H�$�uH�������H����H�����H���H�$H�|$H�ChH�C��L���c�H�|$��H�D$H�H�CH������H�C���H�C ��H�C(H�C`H�C4H�C<H�CDH�CLH�CTHǃ�Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�Hǃ�HǃHǃ���H���H���H�D$H���H� uoH��H�|$H���1�H��ug����H�L$dH3%(��H�� []A\A]A^�������M���H�
���H����T����H�@�f.�@��tz����H����H�=|>�(�H�D$��7���H������+���H��у�������H�р�H�xH������������H���y���@�����d�@��U� H���SH�����H��H�:�"H��H�����H��H��[]Ð�G��~+H�?H;7t-�H��H���H��H9t�t
��H9�u�1����ø�ff.�Hc�H�&�"SH��H�Ё��&�H�b=1����H�޿)[��D�H�G=1���H�޿)[��ff.�@���u�fDUH��H�=1�S��H��H�-�"H�}�G�H�}���L���H�uH���
[]���H�OI��H�L�OH��t6L�AI������u�HfDI�@H�����t<I��H�RM��tM�IM��u�1�H�����tH��L��������E��L��I��H��tZH�����u9I������tHL��L���M�������M��t6��t2I�H�H�l�?��DL��H��������t���1�����f���SL�I���L�GL�W��f�I������tEI������tL��L��������u_L��L�������u0M�IM�@��tM��tM�RI������u�1ɉ�[�@E1���M��t�Hc�I�H�l�?��[�D�[����I��H�?I��H�����t�9����¸��t�DI�x1�H�����t�L��������������AUI��ATI��UH��SH��H��E��ujI�$H�+1�H)�x<t$�	��
t��
uWH��tQ�|+
u f.�H��H��L���r�������H��[]A\A]�������t�H���;@��u�댐H��1�[]A\A]��>"tH��tnSH����H)�[��H��1��Q��'t�~0��,tЀ�\uF�y\H�Qu�H��H��t��H�������"uH��t�Ð��H�����H���f.�AWAVI��AUATUH�-=|"S��H��XH�|$1�H�t$dH�%(H�D$H1�Hc�L�|�L���*���H�D$�����I�I��H�n#L�|$ D�4PA�������D����+��E��I�D)�A�ρ��DO�D9���A�Hc�L�
7sA�Mc�H�G�I)�M�O�$I���H��A9�~WA�\9�u�t�fA�<^��t�A��tbH�t�A�@1��D$J�t� �Q���L�I���H��LcD$A9���A����H�
�VD��Hc�H�>��L�l$D�A�H�U8H�l$H���H�D$H9(��H�D$1�H�(��
H��H���ЈE��tG�S<%u�su�D9�}�H�t� H��D�aH��D�D$���Ic�D�D$H���E��u�fD1�H�|$HdH3<%(��H��X[]A\A]A^A_��E1�H��7�>�����DH�D-H9�sH�D$H�������H�|$H���L�l$�/H��N���L�l$�5H��N����L�l$�;H��N���L�l$�)H�NN���1�D�D$1����L�l$D�D$�����ff.�@1�� H�5"U�H��H=�t$��Hc�9�u�H�UH�ۊ"�D�H�Ð���H�Q�"�PH�8�"��H�5�NH�81���D��AUATI��USH��H��H��~.�|�-H�j�L�j�t/A�|�-L��tDH��H��H��[]A\A]�A�u���fDJ�<.�H�56�����u���DM�l��H�5�5L������t��H�5�5L������u�H��u��H�5�5L������H��H���^����SH��H��H��H�֋H����������!�%����t������D�H�VHD���H��H��H)��t�H�;�[H�5<�"H��1���f.�USH��H�D$ L�T$(L�\$0H��4�Y��uH�����tH��݃����2H��4�H��uH������tH��݃�����I��4�/A��uI������tI��݃����wI��4�A��uI������tI��݃����eH��4���uH�����tH��݃����VI��4��A��uI�����tI��݃����LI��4��A��u*I�����t!I��݃���uH��������M�[ASARP1�AQM��I��H�Ѻ�>�H��([]��H��������H�RH��4�����f��I��4�����A�I��4���A�H��4�����I��4�����A�I��4�6���A��[���DH������u�H�I�b���H������u�M�@�t���H������u�M�I���H�������x���H�@����H�������h���M�R��������ff.�H��I�A M�QM�YA�H��H��4ID�M��I��H��H��H�5p�"PASAR�.���H��(�f�H��4����uH�����tH�A��A��A��txH��4����uH������tH�A��A��A����I��4tvA��u)I������t I�A��A��A��uH������uKM�@M��1�I��H�Ѻ�"��f�H������uLH�RH��4�x���fD�I��4u�DA���H������u�H�I�_�����&���ff.�ATM��UL��I��H��SH��H��H�5k�"H������H��M��[H�5��"H��H��]A\����H��H��4�b��uH�����tH�A��A��A����H��4����uH������tH�A��A��A����I��4��A��uI������tI�A��A��A����I��4��A��u)I������t I�A��A��A��uH������urM�IH��1�AQM��I��H�Ѻ���H���fDH������u|H�RH��4�8���fD�I��4�O���f�A�I��4�c���A���H������u�H�I����H������u�M�@��������fDI��H��4����uH�����t
H�������tHI��4tXA��u&I������tI�������uH������u0M�@H��1���w���H������u$H�RI��4u�H��A��1��E��D��f�H��4t:��u&H�����tH�������uH������uH�RH��1�������1�H�Ѻ����ff.��ATA��USH��H���H���H���H)��Y��D��H���>���H��H��H���\���H���H���[]A\�f�AVAUATUS��H��D���H������Hc�H��L���H���������H�KL�)A��u	I�����uBI��H��L��H������I�ED���H���Hǃ�[]A\A]A^��A�UI������u��ff.�UH��SH��H��H�����H���H��H���:��H��H�5$�"H���D������H��1�[]�@UH��H���SH��H��H�������H�UH��tH��H��[]�f�H��H�5�,�a���H��1�[]��SH��H��@�t$H�|$����H��H�5V�"H�����H��[��S����:u#��u[�@H�������=[�@��V��H�Ǹ<��ff.��USH��H��H���H���H9�tlH�QH������<
tH����[]�fDH;��s
�y
������
;��~ˉ��H���H��C1�����DH�oxH�GxH��u/H��jH�h�F���H���H��H���-H���H9�sH���H����H)���������~Yǃ���������H�E�� uFH�MH��H�����H�H���H���H�kp����f.������H�MH�EH�������n��H���H���H������H���H���H���H)����������H���H+��������fDH���
H����<���H�C�����H����#�������������USH��H��H�/H�}�K�H�EH�+H�}�;�H�EH�+H�}H��t�&�H�EH�+H�EH��[]�@SH��H�?H��t�/��H��[�&��fDUH��H��SH��H��H�H�x��H�H�xH��tHcuH��[]�j�f.�H��[]�f�ATUSH���uLH�����tCH��ƒ���u6H��H������t?H��4�'H�������H�C[]A\�@H��4�H��[]A\�fDL�cM��t�I��$��H��H����H�
�FHc�H�>��E@��u
�}<��H��H�5�~"H��������H��4��H��ƒ����z����N���L���L��I�BL��H�������H�x������us1�L��L�������u�H���L�������u�H���H���L���X���H��4�u���[�]A\�I���v(D�����wH�FHc�H�>��H��4�������L���k��H�5�?H��H��1��������]�������H���H���L���������f.�H�����H��1�H��tH� tH�R1��:_��H���H����f.�H���dH�%(H�D$1�@�<$H���D$�V��H���^��H�T$dH3%(uH������@AUATA��USH��H��H���H���H���H�x������~N��D��H������u�H���Lc�J�D-H�����tH�����L��H��H�����H��D��[]A\A]�H���H�52&H��A�����H�P1�����ff.��PXH�5o>H��H��u"H�81��b��f���H��H�5�g"���H�xht!H��H��tHc��H�TH��H������ff.�@��H��H�5qg"�l��H�xhtH���H����d���@��H��H�5Ag"�<��H�xhtFH��H��t"H���H+��H�@H�xH�|?H��H���fDH���?�����f.���ATH�5�f"UH��S����H�xh�L��H��I��t>�Y��I9�tH�Mt"H�5F=H�81����@H�1t"H�5�$H�81�������H��H��H�n�H��H�=����H��[]A\��J���f.�SH���H��t
�>����H���H���H;��ru[�DH�߾i[���H��s"H�56$H�81��b��f�ATI���(UH��S�\��1�H��H�EH�C�*��1�H�� ��H�C�W��1�H�����u$I�$H�SH�C I�$H�][]A\��1�����H����ff.��AUATUSH��H��
tmH��H��H���v@��tpL���I�BH�����tuH�xtnH��L����A�ą�uk�H��L�������uhH���H�������uUDA�H��D��[]A\A]�@H�������t���f.�H��L������t�H�5�"H���B����H���h��H����%H�==;I���}��H��M��H�5Dv"H���1����H���H��H�x�Z��H���H�xH���L���Hc��H��?�5���6���UH��SH��H��H���v@��t-H��H�5�y"H������H��1�[]���c���H��H��[]�f�H����AWAVAUATI��USH��L�>L�*�B;F���h�1ۅ��fDH��I�<�H��toI�|�xgH��
t^H���v@��u
�����uFI�<����I��$��#H�=6:I���&��I��$M��H�5�t"H���1��U��H�CH9��x���H��[]A\A]A^A_�f��H�=�91�����USH��H��H���H�PH�hH��tH�p���H���H�xH�����uVH�8H�����t����H���H�xH�����t���H���H�P H��H�S(����H���H��[]�����H����f�USH��H��H���H�hH��t(H�pH���K���H���H�PH�RH�PH�����uOH�8H�WH�H�����t�'���H���H�xH�WH�PH�����tH��[]����H��[]�f�H�����H����ff.�@ATUH��SL���H��I�$�f��+���H���H�H��tH��H9�u�[]A\����L�g���L����fDSH���H9��r8tH�GH���tH���y�H�[�@H�����t�H������u���H�Pn"H�5H�81��/��ff.�@ATI��USH�GH��H�(@��u
H�������H��1�1�����H��H���H��t<H���H���H)�H��U�>H���(�H���H���H�CH�H�E�>H������H�CH�H9�tH�UH�([]A\�f.�L�������fDH�E�ƒ����R���H�������B����Q���f�USH��H��H���HcwTH�`���H�[H��H�����H��1ɿH�����H�H��H��[]�DU��SH��H��D��H����������H���H���H9���H�PH����0@��@��
tnH�{u4H���H����
�z�H��PX��u�H����@�<_t���x�H���H�B�H���H;��v
�z�
��1�H��[]�DH;��s
�x
������
;���h������H���H�r41�����H���fDH�kxH�CxH��u.H�{u�H�{h�VH�����H���H��H���:H���H9�sH���H����H)��\�������~jǃ�H�U���������� u/H�EH��H�����H�H���H���H�kp�m���H�EH�UH���������똿�F��H���H���H�����H���H���H���H)���������H���H+�����"���fDH���
H�������z�
�;���H��1�H����+���H�C1�H��������AWI��AVAUATA��U��SH��8H�t$dH�%(H�D$(1����UI���I;��s�8{thH�T$ �H���f��H�|$ H��A���tM���I�FI�����������E������L���^����f�H�L$ H�L$fD���>I9���PH�xI����8
�H�T$�����H�t$ A��H����=����I���H�I����������"E����I9���\���}�P���pL���H��fD�L�����A��fDH�L$(dH3%(D���H��8[]A\A]A^A_�f�Lc�L������L)�L��H��H������E����I���I;������� ������	�Q����������0L������I���I9�������I�_xI�GxH��u2I���I�h��L�����H��I���H����I���H9�sI���H����H)�H�����A������1ALJ�H���A���A����� ��H�CH��I�����H�H�xI���I���I�_pI����8
���I;��s
�x
��A���A;�������A���I���H��/1����I������fDH�D$����H�L$E��H�H�L$��I������@�\�n���uL���a�����@H�CH�SI�������@��L���6�������A�������@H�5IL��E1��~����f�H�‰�L���3������fD���H�L$H�E���Z���H�‰�L������H�����V��I���I���H�����I���I���I���H)����A���A��I���I+��A�����H�5�L��E1��������H�xI��������}L���#���~���fDH�5/L��E1��v����I�GH��I�������H���������ff.�f�UH��SH���b��H�5H��H��H�����H�=+$���H�������H��H������H�=&�}��H�������H��H�����H�=�#�Y��H������H��H�����H�=r�5��H���}���H��H���]��H�=]���H���Y���H��H���9��H�=A����H���5���H��H�����H�=+����H������H��H������H�=���H�������H��H������H�=���H�������H��H�����H�=��]��H������H��H�����H�=��9��H������H��H���a��H�=����H���]���H��H���=��H�=���H���9���H��H�����H�=�����H������H��H�����H�=w���H�������H��H������H�=c���H�������H��H�����H�=L�a���H������H��H�����H�=7�=���H������H��H���e���H�=*����H���a���H��H���A���H�=Z���H���=���H��H������H�=�����H������H��H�����H�=����H������H��H������H�=����H�������H��H�����H�=��e���H������H��H�����H�=��A���H������H��H���i���H�=�����H���e���	H��H���E���H�=�#���H���A���H��H���!���H�=��տ��H������H��H�����H�=�豿��H������H��H���ٿ��H�=l荿��H�������H��H��赿��H�=��i���H������H��H��葿��H�=��E���H������H��H���m���H�=�"�!���H���i����H��H���I���H�=����H���E����	H��H���%���H�=��پ��H���!����H��H������H�=�赾��H������H��H���ݾ��H�=�葾��H�������H��H��蹾��H�=��m���H������H��H��蕾��H�=��I���H������H��H���q���H�=S�%���H���m����H��H���M���H�=~����H���I����H��H���)���H�=�ݽ��H���%����H��H������H�=蹽��H�������H��H�����H�=�蕽��H���ݿ���H��H��载��H�=C�q���H��蹿���H��H��虽��H�=�M���H��蕿���H��H���u���H�=��)���H���q����H��H���Q���H�=�����H���M����H��H���-���H�=o���H���)����H��H���	���H�=轼��H�������H��H�����H�=�虼��H������H��H�����H�=��u���H��轾���H��H��蝼��H�=��Q���H��虾���H��H���y���H�=��-���H���u����H��H���U���H�=��	���H���Q����H��H���1���H�=����H���-����H��H���
���H�=����H���	����H��H�����H�=蝻��H������H��H���Ż��H�=f�y���H������H��H��衻��H�=T�U���H��蝽���H��H���}���H�=D�1���H���y����H��H���Y���H�=,�
���H���U����H��H���5���H�=���H���1����H��H������H�=��H���
����H��H�����H�=�衺��H������H��H���ɺ��H�=��}���H���ż���H��H��襺��H�=��Y���H��衼���H��H��聺��H�=��5���H���}����H��H���]���H�=�����H���Y����H��H���9���H�=���H���5����H��H������H�=d�ɹ��H�������H��H����H�=L襹��H������H��H���͹��H�=>聹��H���ɻ���H��H��詹��H�=)�]���H��襻���H��H��腹��H�=��9���H��聻���H��H���a���H�=�����H���]����H��H���=���H�=���H���9����H��H������H�=��͸��H�������H��H�����H�=�詸��H�����H��H���Ѹ��H�=�腸��H���ͺ���H��H��譸��H�=��a���H��詺���H��H��艸��H�=y�=���H��腺���H��H���e���H�=V����H���a����H��H���A���H�=@���H���=����H��H������H�=.�ѷ��H�������H��H�����H�= 護��H������	H��H���շ��H�=�艷��H���ѹ���H��H��豷��H�=��e���H��譹���H��H��荷��H�=��A���H��艹���H��H���i���H�=�����H���e����H��H���E���H�=����H���A����H��H���!���H�=��ն��H�������H��H�����H�=j豶��H������H��H���ٶ��H�=S荶��H���ո���H��H��赶��H�=<�i���H��豸���H��H��葶��H�=&�E���H��荸���H��H���m���H�=�!���H���i����H��H���I���H�=���H���E����H��H���%���H�=��ٵ��H���!����H��H������H�=�赵��H������H��H���ݵ��H�=N葵��H���ٷ���H��H��蹵��H�=��m���H��起���H��H��蕵��H�=��I���H��葷���H��H���q���H�=��%���H���m����H��H���M���H�=l����H���I����H��H���)���H�=W�ݴ��H���%����H��H������H�=F蹴��H�������H��H�����H�=3蕴��H���ݶ���H��H��轴��H�=��q���H��蹶���H��H��虴��H�=��M���H��蕶���H��H���u���H�=��)���H���q����H��H���Q���H�=����H���M����H��H���-���H�=����H���)����H��H���	���H�=�轳��H�������H��H�����H�=�虳��H������H��H�����H�=m�u���H��轵���H��H��蝳��H�=T�Q���H��虵���H��H���y���H�=9�-���H���u����H��H���U���H�=��	���H���Q����H��H���1���H�=����H���-����H��H���
���H�=�
���H���	����H��H�����H�=�
蝲��H������H��H���Ų��H�=�
�y���H������H��H��衲��H�=�
�U���H��蝴���H��H���}���H�=�
�1���H���y����H��H���Y���H�=v
�
���H���U����H��H���5���H�=a
���H���1����H��H������H�=P
�ű��H���
����H��H�����H�=P衱��H������H��H���ɱ��H�= 
�}���H���ų���H��H��襱��H�=
�Y���H��衳��H��H�ߺ[H��]�{���ff.�AUATI��U��SH��H��H���H���dH�%(H�D$1�H9���H�WH����<
t%�PЀ�H�H�
:!��Hc�H�>��DH;�������
;����@H�L$dH3%(���CH��[]A\A]��L�kxH�CxM��u2H�{��H�{h�lH��葺��H���I��H���PH���H9�sH���H���@H)��8��������~~ǃ���������I�E�� ��I�}H��H�����H�H���H���L�kp����
���H���
H�����f������H�������-�@���EH�5vH��1������������fD����fDH��H������H�<$�ŸD��a���f���N���fD@��u�H�������-uuH���u����\�K����^������V�����������������fD����fD�
����fD� ����fD��������H���H�B�H���H;�������z�
�����z�
����H��H������@I�}I�EH����/���@���H���H��1��ŭ���8�����f���H���H���H�����H���H���H���H)��ì�������H���H+�����f���fDH���H9��s	�?
��H���R�����H�$H������
���fD�	�~���fDH�������\tC��?����������������%����E���H�CH����t������)����H���H;��s	�8u�R�����L��H�߃��g���묀�
�<���H��H����,��������H���H;��s	�8u������L��H�߃��������������f.�AVAUATA��U1�SL���H��L��H9��tSH�JH����<
�'D��D���t
A��i��A��r��A������A��H��H9��u�L�kxH�CxM��u2H�{��H�{h�H���۵��H���I��H���H���H9�sH���H���RH)�肪���������ǃ���������I�E�� ��I�UH��H�����H�H���H���L�kp������yLL���1�[��]A\A]A^��H;���[�z
�QH��A�
H����D��蘩����u�A��_t�H���H�B�H���H;��v
�z�
��A��.u�H�����H�PH9��v�x葫�����V���H�5zH��L�%����H���H�C�	DH�CH��� ���H���H����
�z�H��PXH�����u�B�<_t�����H9���^H�BH����:
u�H;��s
�z
�����;���y������H���L��1��b����]���D���A�
;����������H���H�1��%������I�UI�EH�������@	�E1��H���fD�螩��H���H���H�����H���H���H���H)���������H���H+�����T���fD����[���D�z�
����H��H����
���H�CH�������f�L�kxH�CxM��u,H�CH���6���H�{ht�H��胲��H���I��H��t�H���H9�sH���H����H)��.��������~lǃ���������I�E�� u1I�UH��H�����H�H���H���L�kp���DI�UI�EH���������떿����H���H���H���p���H���H���H���H)��s��������H���H+����� ���fDH��H�CH������@UH��AWAVAUI��ATM��S��H��hL�M�I��u�M����U�dH�<%(H�}�1�H�E�H�E�H�E�H�E�H�E��E�H�E��M9��tJI�QI���E�9A��
������D9���I�$D��L���]���M���M9��u�M�uxI�ExM��u2I�}�
I�}h��L���n���M���I��H����I���L9�sI���H����L��H)�����A�������ADž���A���A���I��� �BM�NH��M�����L�M���I���M�up���fDD9}���D�E�I���A��t
A��#�kA��\��y��/�E��eA�ǀ����H�E�L�0H�E�I9�t{H�}��hM����E��]���DI;��sA�y
�tA���A�
A;���L���A���I���H��1�螤���+���f��E��,���@M����I�$H����H��I�$�8���DM�NI�FM������@A����|���@<
�D������
E��u�\L������f.�H�E�L�0H�E�I9���H�}����L�xL���e���M�vH�E�L���U���HE�H��H�pH��-H��H%�H)�H���H��H9�tH��H��$�H9�u�f����uH�D$M��L��H���H��&H�E�I��H��1��}���L��L�������=���DI���L�q�H9���H�QI����<
��<\��<u����E����\L��A�u�����DI9����������$@�ƃ�@��@���	��{��	A�#�F���fDL�xL������M�vH�E�L������HE�H��H�pH��-H��H%�H)�H���H��H9�����H��H��$�H9�u��������,��΢��I���I���H���(���I���I���I���H)��+���A���A��I���I+��A����D��踢���������I���H�P�I���I;����H�E�H�]�H�H�]�dH3%(D���H�e�[A\A]A^A_]ÐI��A�
M�������f.�D��L���U������,���A������@I���I��H9�s
�y
��D�}�A���A��A;���'E���q�}�
�I���I9��s
�z�
��	E1�H9���L�IM����1@��
�^@��C�	��@��c��@��x��H�u�L���:��H�E�H���1����PI�����H�I)�M���f�M�MxI�ExM��u@I�}�����I�}hD��x����h	L���j���I���I��H���L	D��x���I���H9�s5I���L��p���D��x���H���(H)����L��p���D��x���A�������ADž���A���A���I��� ��I�IH��I�����H�I���I���M�Mp�&���f.��E������\L���9�������H��I���f��E�tA�
���H)�H�L��}���E��������\L��A�
����x���A����0���A���I���1�H��D��x���衞��E��t$�}�
��I���I���H�J�I�����D��x���A�
E���H�E��D9}��)�����t	D9������\L���D���I���L�H�M���M;��������x�
�{����x�
�q���L�H�M����a���I�II�AI����y����M�H�u��L��������U����n���H�E�M���H�H�E�H9�����H�}�M���u�L�xL��x���H�U�L������H�U�I��L�BL��L�E���H��L�E�L��x���L�H�pH��-H��H%�H)�H���H��H9�tH��H��$�H9�u�H��%�t	H)�H�L�H�D$L��H�, L��x���H���H��I��H�E�1�����L��L���U���L��x�������f��x�
�%����x�
����H��I���������B���I���I���H��蜚��I���I���I���H)�蟛��A���D��x���L��p���A��I���I+��A��A�����������J���I���H�P�I���I;��v�x�
u�x�
uH��I����E���H�U�1�L����A�����A�
�e���@��M��D���\L��貣��D��L��解��M����E������H�E�H�H�E�H9����H�}�M����b���L�xL��x���H�U�L���ؙ��H�U�I��L�BL��L�E����H��L�E�L��x���L�H�pH��-H��H%�H)�H���H��H9�����H��H��$�H9�u�����f�@��
�F��������F�<����I���H�U��H���͚��H�E�H���;M����PI�H�H��M���Ilj�L�x�������Hc�x���L��H������M�������I�EA�����M������M;��s�y
uL�IM������A���A�
A;���T���A���I���H��1�����3���M�ExI�ExM��u2I�}�aI�}h��L������I��H���xM���I���L9�s*I���L��x���H���eL��H)�谘��L��x���A�����~`ADž���A���A���I��� ��I�HH��I�����H�I���I���M�Ep�W���A������m���A����H�A�A�#I���I;���F����y�
�<����y�
�2���H��I����"���I�HI�@I����y������t2I���H�P�I���I;��v�x�
u�x�
uH��I���H�5�L��A������м�������\L���N����[���D���1�����������A��u�L���ֽ����-�q���I����L��A��H��x���莟��H��x����J�f��R��PL��葽����\�8I���I���I�����H��x���A���<����L��A���0���H��x����Q�f��A������L���.�����-����I����L��H��x������H��x����J�f��R��P�W����z�
�h���H�J�I����X����輗��I���I���H������I���I���I���H)�����A���L��x���A��I���I+��A���A���I�EA�����I����
�������"�����L��荞��M�������E������D9}�tI���I���z����
�����$<Y���H�=���Hc�H�>��I���I�EI������AWA��AVAUATUSH��H��HdH�%(H�D$81��G0谠��A�GՃ���E1�A��0�&�D$1�E1�L�%�A�G҃�7��Ic�L�>��E����E��H���H���H9��UH�pH���D�8I��A��
u�H;������;����H���H9����E��t)L�d$�D��1�L��H����7���L��H���|���HcCTH�S`�E���71���@�ƃ�H�����Ũ��Hc|$D�kTL�c`H����L�A�H�wMc�I�U�r���1Ҿ
L���ӑ��L��
H�����H��H���8���H�Ƹ<����	H�L$8dH3%(��H��H[]A\A]A^A_�@L���E���0���^H���L9��0I�PH���A�<
��D���+D���/D��H��A������D��H�����A�EՃ�DE��/���D��H��E1�躛������DE���r���D�l$L���A	���
L9����I�@H���E�8A��
�TD��贔���Ņ���
�CT�.H��A��1�D$�@���D��H���5������L�{xH�CxM��u2H�{����H�{h��	H���Q���H���I��H����	H���H9�sH���H����H)����������*ǃ�I����������� �lI�GH��H�����H�H���H���L�{p�����x
�����L�@H��H���H9������A�x�
�����A�x�
����H�kxH�CxH����H�{u2H�{htH���E���H���H��H����H�CH���HcCTH�S`�fDH�߾��H�{`1Ҿ
���ю����H���������f��������DH;��sA�x
�����;�����
蠒�����aD��H��A��E1��6����
H�߽�$�������H;��sA�x
�z���A�
;����������H���H���1�����`���@H�kxH�CxH��u+H�{��H�{h�|H�����H��H���gH���H���H9�sH���H����H)�萏��������bǃ���������H�E�� ��L�EH��L�����L�L���H���H�kp�z����L�kxH�CxM��u2H�{��H�{h��H������H���I��H����H���H9�sH���H���ZH)�����������ǃ���������I�E�� ��M�EH��L�����L�L���H���L�kp�����I�GI�WH������@D��H������H���H���H9�����H�PH���D�8I��A��
���H;��s
�x
�f���;�����D$H���1�E1�H���H9��}���A�x�
�r���A�x�
�g���E1�I��L����&������H���1�H���5���L���I�@����DH�{`1�蕎���D$�j����D$�8"I����H�0fH~�H9�t0fH~�H��<�������H���;H���D����O���H�Ƹ;�2���f�H�ߋkT�U���A�ǃ�߃�X����B����D��A��_t��O��A�GЃ��E1�A��_�cA�GЃ�	��A��7��	D��H��E1��6���H���޲��A�ǃ��u�HcCT9���H�S`�E���S
1��D$E1������������D����]���D���H���H���1�襌���V���H���X���A�ă����HcCTH�S`�;kT�H�߾�J�H�{`1Ҿ��蘉����H��辱�����f�����H���H���H���@���H���H���H���H)��C��������H���H+����������+����P�����A�����D����������A�����HcCTH�S`��E�����������f.�M�EI�EL����3���@L�EH�EL����K���@H���H9���������:ǃ�H�U���������� toH�EH�UH���H�H���H���H�kp����fD��f����=�e���@fH~�H��H��H��H�Ƹ;�:���f.�H�EH��H������@H���H���_H)�诉���*���f.�L�k`L�����H���L��H���"���H����H�=��I������H��M��H�5�/"H���1��7���A�$�D$��������A�Ņ�tE1�A��_��E����H���H�B�H���H;��v
�z�
�zHcCTH�S`�9kT�11��D$E1�E���Z�����I��A�
L�������I���
A�
L������L�@1�H���D$H���E1����H�CH������L���H�C1�H����D$I�@��c���H�C��A�����H����
���DH��耮���PЃ��������H���H�B�H���H;��v
�z�
��HcCTH�S`�9kT�
E���o���H�߾�;��H�{`1Ҿ��艅����H��语�����f.���_���PЃ��p�����H��E1�����H���ƭ�����u��v���@�������DE���UHcCT9��[H���H�r�H���H;��������z�
������z�
�����H��H��������6���H���H���H��萅��H���H���H���H)�蓆�������H���H+����������ԇ��H���H���H���.���H���H���H���H)��1��������H���H+�����L������1�1�E1�H���H���謆��L���H����D$I�@�����H���E���A�ă����HcCTH�S`�;kT���H�5��H���ժ��1����HcCT9��o���E����A�Gȃ���D����߃�E��A��.��A���t%H���H�P�H���H;��v
�x�
�VH�߾�������?����c�I�@�H����1���A������L���I�@��b�E�����A�_�~���H���H���L�@�L���I9�v
�x�
�^H���D$����A���J������s���D��H��E1��D���H�����A�ă���>����q����辅��H���H���H������H���H���H���H)����������H���H+�����v���H���n���A�ǃ���>�����_�5����������$���� ������܅��A�Ņ�tE1�A��_��E���xH���H�P�H���H;��v
�x�
�HcCTH�S`�9kT�����1��D$E1�E������Z�f.�I�@�H���H;��vA�x�
�A�������"���f�L���I�@�H���H9�����A�x�
�����E1�H�5�H���������A�_�Y����0H��E1�������A������������D��H��E1��[���H������A���������f��z�
�|���H��H����l���HcCTH�S`�;kT��������A�_����z�
�a���H��H����Q���H���H���L�@�L���I9�v
�x�
��H����H�߾�y��H�{`1Ҿ��������H�������H���H�P�H���H;���`����x�
�V����x�
�L���H��1��D$E1�H�������x�
����H��H��������x�
�����L�@��D$H���^�A�_���A�x�
��I��L�������x�
����L�@�H���!�I�@�H����D$�	�x�
�����H��H�������3���E��������l�D��AWI��AVAUATUSH��	dH�%(H��$	1�H��$�HDŽ$��H�D$@H��$�����o
E1�H��$�L��$@H�D$��D$4I���D$����D�t$H�D$(H�$L��L�d$ M��I���D$H�L$L�4$fA�$H�	I�T�I9���M��M)�I�I��H��'�
H='�'L��HF�H��H��H�T$H�t��}��H��H����	O�d-L��H��I��L���Ҁ��H�D-H�t$ L��H�,kH�$H��赀��H�D$(I9�tL��L���@���H�$N�d#�N�l-�L�D�A�����M9���tH�l$ H�$�D$���pLc�H�V�B�p�D$=�����A������|$����\$�����|$a��}l$�����HcD$=�+��H�	�B9���H�bD�BE����A�������{A��D���H�� "H�L$H����L�$H�81��ʁ��L�$M9��HtH�l$ H�$A��������H�? "�L$�H���H�81�腁������H�9�B�,p����Hc�H��H�D$H�z�����D$8�D$H�)�H�M�t�A����p	��v��H�!�A��Jc�H�>��I�M�I�U�I�E�M�M�M�E�H�5�&"I��H��4����u/H������t&L�E��A��A��uI��A��A�����H�II��4���A��u/I������t&M�E��A��A��uI��A��A���`�M�@I��4�G�A��u/I������t&M�E��A��A��uI��A��A����M�IH��4����u.H�����t&L�E��A��A��uI��A��A���СH�@H��4�����u/H�����t&L�E��A��A��uI��A��A�����H�RR�P1��{��^_L��I���ͭ��I�E�A�o<I���D�D$8L��H�L$H��H�H)�H��I)��,JA����a��o���H�d�A�4$L�sH�L�k�B���+wHc�H�5�f;V��H�*��B�D$I���]���D��L��M��L�t$8���D$I������l$����A�����1��D$���k���H�D"��H�=��H��{~���F���fDHcD$�=awH����T$4�����|$4u�D$���y	�`p�D$����L��H�-��M��H�����Ic�H�ֶ�P=���t��=�+wH�H�
�f�<A��L;4$�;�tUH��L��I��I���K���E�&A���t�H�<$L���A���������I�oH��$�HDŽ$�4I�GH���H�EH�MI���H������(��H�]�L$HH��$��ÉD$8�����L��H�L$����H�L$�‰ȃ��D$�k9T$8�\L���T$���D$H�T$t	��#�����t2I���H�P�I���I;��v�x�
u�x�
uH��I���H���T$8L�E L���ˋ\$HL��$�����������SlH�EH����A���I�G�H����nI��w��I�GA�G0I����D$BH�����t$L������A���������D�d$M��L�t$8A�G0�#rL���О���Ã���%�I����	��H��PX�����L��豃��I���I���H��$��z��q�H�¾
��PX���Bq��_�9q��\�݄I���I;��s���u�m����D�H��$�1�L��H���A��L�����g���I�W`IcGT1��IcwTI�`M���H��$�I�_�ɀ��I����?L��H�A�G0����ê��A����D$?��HcT$H�
d��,l$���t���H�M"H�
��H�M�1��H�;�z��H�;��薋��H�3�
�iw���4���@A���A�_0L�t$81�ALJ�M��D$P�D$HL������A�č@���3H�
�Hc�H�>��@�D$4�����D$4A�����H��$�I��D�D$�D$����I�E����f.�H���B�,p���P������|$��-����L$4���j����\$H��$�H��$�L���H��H��H�D$�h����…��FH�5����RL���T$���T$������M��H�5��L����Κ���f�H��"��H�=0�H���x���[���H�
�XD�AE�������H��$�M��I�mI�EA�����gI��D�D$�D$4���DM����|$�t2HcD$=a�9H�"���D$�t$L��H�=����A�����L�%�H��L�4$L;,$t�I�EL��H��I��A�4D觉��M9�u�H�\$(H9$tH�4$L���kv��H��$�H;t$@tL���Tv��H��$	dH3%(����H��	[]A\A]A^A_�f�H�|$H�T"�M�H�J�H����D�xH�;1��w���D$H���S���L�t$`E1�L�l$PL�l$L�d$HA�ĉl$XD��f�D�uH�;H��1�D���Cw��H���H�
��H�;B�h�D��H��4A�-���H�3�
�t��E9�u�L�d$HL�l$P�l$XL�t$`����L�-�"H�
R�H���1��I�}��v��I�}���Ї��I�u�
�s��A����S���H�<$L���(����B���H�<$L�������&����H�"��H�=H�H��Hv���l��D$����H�9V�P�D$�*���@H��$�L��踗������H��"H�
)�H���1��D�D$H�;��u��H�;����H�3�
��r��D�D$������ �5zH�:H��sL��舘����u�I���H�P�I���I;���~�x�
�t�x�
�jH��I����Z�H����gI�oH�M��@t3A�G0�	��eA�G ��eI���I���H9�s	�8:��lH����o��I����\L��I�GA�G0�|��Ĥ��A����D$\�����L����H�=8��;����D$�����w���H�H��$��� ��H��H�Q��H��H�D$8H�BL��H�D$H��D$P�� ���D$X�D����Ã���eI���H�GI9����e�D$P��aI���L�d$1�L�d$HL�l$`D�l$XL�t$XI���g@H��I���H9�v�E�<
��<
uH��@H��H)�H���IH��H��H���#p��I���H9��JI�OxI���I�GxH��u2I��0yI�h�dL���z��H��H�����I���I���H9�v#I���H�L$hH����bH)��o��H�L$hA������[ALJ�H���A���A����� �H�AH��I�����H�I�OpH�HI���I���I����8
��I���E��L��L��H�L$8�m������/aI�pH� �����H����I����|m��I���H��H9�������H�5q�H���n��I������f�H9�v
�x
��cA;���]���A���I���H��1��(o���<���H�E�H9������}�
����H�����H�AH�QI������A������H�AH�QH��H�D$8�(������T$P��o���T$P���}�fDL���h��������o����u�9\$8��eI������t)I���H�J�I���I;����b�z�
��eH���e� L������A����D$ ���<���H��$�H;t$@tL���Uo��H��$�L���k��H��$�H����H�|$L��H���貅��H��$����U���H�} ���D�\$E����d�D$H�8���L��1��ux��H��$��D$8H�D$HH��$�H�D$PL���;��������l������b��o�`�L$��H�D$@H�5ܾL��M��HDŽ$��H��$�諑������L���s���D$���
j�#L���u��L��轒�������A�_0�Á�e���e���hZ�bL��舟��A�_0�[���A�G0M��L�t$8�tD�D$P�@E��t1��0@��H��1ɺ'�)�pn���D$RI�G@I�����t$L������A�������A�G0D�d$M��L�t$8�A��c������c�0t�L$H���}�A�G4I�g I�g(A�G0�|���I���I���H��H)�H���eL���6q�����U}I����cL��I����c���A�_0�Át	���!Y������&cA�oL����M��L�t$8ALJ�A�G0�D$
����A�G0L��D�d$M��L�t$8�u��I���I���H��H9���pH�HI������
�p�B���<]�pH�5����Hc�H�>��A�G0D�d$L��M��L�t$8�A��a%=��a�_����Ń�=�fa�L$HA�G0���0t���Ї��t	��s���%�������A�G0���t%I���H�P�I���I;��v
�x�
�����������������@���k����������H�=�zh��H�=:"H�����H�=*"�=l��I��H�5�"H��H�������O����L��D�d$M��L�t$8�c�����&��}��=�a`���t%I���H�P�I���I;��v
�x�
�}}�L$HA�G0���0t����}�A��c������c��u����%�������A�G0���L��D�d$M��L�t$8谎��A�G0�� bA�G0��@�a�����=��x��~�+t����F���I���H�P�I���I;���'����x�
�����x�
����H��I�������A�G0M��L�t$8�tD�L$P�BE��t��0��H�H��H��B1ɺ"�)�j���D$RI�G���L��M��L�t$8�ˍ��L������r���@L���p����@�2w�����c�����h������c�D$6���!i������vI���vI���I����
�z�H��PX��uI����@�<_t���rv��L���ܛ�����-A�G0L���t��������A�G0D�d$M��A�G4L�t$8���3e�A�c�����c�0t�\$H%	øJDD$�D$A�G0I�g I�g(�f���A�G0D�d$M��L�t$8�A�Sh%=�ChL���b����Ń�=�i]���t%I���H�P�I���I;��v
�x�
����T$HA�G0���0t����s%���������A�G0�����������@���$g����������H�=���d��H�=S"H���c�H�=C"�Nh��I��H�5�"H��H���%����`���I�G D��A�G0M��L�t$8H�ƒ�H��H	�I�G I�G(H�ƒ�H��H	�I�G(A�GD�P����ZE�A�WD�D$����D�d$M��L�t$8A�G0��gA�G0����M���D$L�t$8�8�L��D�d$M��L�t$8�����A�G0���`A�G0��@�bp��������I���H�P�I���I;���k����x�
�a����x�
�W���H��I����G����D�d$M��L�t$8A�G0�&���I���D�d$M��L�t$8H�GI9����dL���1��2o��A�G0L�d$8A�܋\$�D$HL��M��M��I�DŽۉ�L��DH��R��������\L�����I�}��u4I���I����
�z�H��PX��u�I����@�<_t���x�L���\$M��M��I�ƋD$D��L�d$8��!�"k��?�k�|$�t%I���H�P�I���I;��v
�x�
��IcGTI�W`�IcGT��~I�W`�D�<!��j<?��jA�G0�t;L��������=�����t%I���H�P�I���I;��v
�x�
�ڂI�G`�8�b�������7�D$A�G0�t�T$P��t�0tI���I���H9�s	�::�
����zn�q�Tn�|$P���� A�G0L��軖��H��D$H������|$3����I���H�GH�����t#H�xt�H���w������I���H���v�����˂�D$3���f�A�G0D�d$M��L�t$8����b���wm�|$P���� A�G0�x���I�G A�O8D�d$M��A�GDL�t$8H�I�G(H���t
A;O4�){A�O0I�W I�G(����^��:��n���lqA�G0�D$K�	���L��D�d$M��L�t$8�$�����|�jr��=�$XA�W0����ҁ����A�W0������I���H�P�I���I;�����x�
���x�
���H��I����z�f.�A�G0L��D�d$M��L�t$8�D$P胆����<�D$8A�G0�'_���
YA�G0�|$8=��p�|$8<�|p�|$8���I���H�P�I���I;�����x�
���x�
���H��I������L������
��|�gL���ڒ��A�_0�D$H��L��D�d$M��L�t$8贅����=��VA�W0����҃���A�W0����Y�I���H�P�I���I;���:�x�
�0�x�
�&�H��I�����fDI�G D��A�o4D�d$M��L�t$8H�ƒ�H��H	�I�G I�G(H�ƒ�H��H	�I�G(1���)����A�G0��L��D�d$M��L�t$8�ք���Ń�*�nm��=��U���t%I���H�P�I���I;��v
�x�
�xo�L$HA�G0���0t���p�A�W������V��u�����%�������A�G0��L��D�d$M��L�t$8�#�����A�G0���]ZA�G0��@��i������I���H�P�I���I;�����x�
���x�
���H��I�����DA�G0L��D�d$M��L�t$8蓃����.�[���t5I���H�J�I���I;��v
�z�
�m���^������jA�G0��L��D�d$M��L�t$8�.����Ń�:��_A�G0��^���P^������^��"��f��'�Sf1ɺ'��)�_��I�GA�G0��D$Q��D�d$M��L�t$8A�G0ALJ��r�A�G0L��D�d$M��L�t$8%�������A�G0�u�����=��m��>�]m����*�I���H�P�I���I;����x�
��x�
���H��I�������I���I���H�SH9�����H��H�=����€�������x�
]�����~�I���L���dH���I���裎��I���L��I���荁�����txI�����=�LM����H��L���������KI�@H9���\A�x�\������\I���I���L���e����L���������u�H�5��L��1�M��L�t$8�g��I����A��1�L����~���2��I�u@I���I����
�z�H��PX����rI����@�<_��r����rD��H�5��L��1��g��A�_0�R��D$4���I�M�I�U�L��I�u�M�MM�E��y��I������I�M�I�U�A�L��I�u�M�M�y��I���������d�6\��I�����M�u���I�M���d�
\��I���m��I�U�I�M��d��[��I���N��I�u�I�M��d��[��I���/��I�U�I�u�dI�M�[��I�����I��H�5"1�1���X��I���H�5�"H����{��I������I��H�5�"1�1��X��I���H�5�"H���{��I�����I�u�L���ف��I��I�MH�5�"H���o{��I���o��I�uL��諁��I��H�5m"1�H��1��!X��I��H�5K"H��H���({��I���(��I�U�I��I�MH�5""�{��I�����I�U�I���H�5�"��z��I������I�u�L������I�U�I��H�5�"H���z��I�����I�uL�����I�U�I��H�5�"H���z��I�����M�u�|��I�U�I��I�MH�5n"�Yz��I���Y��I��I�]1�1�H�5["�W��I��H�58"H��H���z��I�����I�U�I��H�5+"�z��I�����I�uL���:���I��H�5"H���z��I������I��I�UH�5J"�ez��I�����I�EA�I�M�I�U�I��H��4H�5!"LE��v��I�����A��u��M�u�l��A��a��I�UH�Ӄ��r_H�����tH�������uH������uH�ZI���H��H�8�b��I���M�u�	��ILJ�M�]I��4�ƆA��u*I�����t!I��ƒ���uH���������M�[M�����I����H�:H�����tHcGH��H�RH�����tHcRH�H��H��H���b��I�U�I��H�5��!�y��I���U��I�EH��$��H��$��Y��I���/��I�}�I�u�X��I�����I�UH�Ӄ���bH�����tH�������uH������uH�ZH��L���A���I���H��H�:�_a��I���M�u���ILJ�I�u�L����}��I�uH���lV��I�����ILJ�I�uL���}��1�H���CV��I���c��I�u�L���}��I�uH���#V��I���C��I�uL���}��1�H���V��I���%��I�EH��$��H��$��OX��I�����M�u���I��H�5�!1�1��S��I������I��H�5y�!1�1��S��I�����I��H�5*�!1�1��yS��I��H�5�!H���3w��I�����I��H�5��!1�1��DS��I��H�5^�!H���v��I���N��A�G<I���I�(A�G0�Ɂ��M���ILJ����A�G0��
��I�M�I�U�I��M�E�H�5C�!�s��L��I��蛄��I�E�A�o@I�������A�G@I���I�(�Q���M���ILJ����I��I�M�I�U�H�5��!�u��L��I���4����w��E�O@E��u	E�G<E��tH�5V�L���~w��I���I�(�ހ���A��I�M�I�U�I��H�5+�!�u��L��I���Ӄ��A�E�A�G@A�E�A�G<���A�W<M��I�(H�����A�G<I!�I���I	�M���l�������A�W@M��H�����A�G@I!�I	�M�����I��I�M�I�U�M�E�H�5��!�q��L��I���6����y��E�_@E��u	E�W<E��tH�58�L���v��I���I�(�����C��I�M�I�U�I��M�E�H�5�!�<q��I�����I�U�I��I�MH�5��!�s��I�����I�U�I��I�MH�5��!��s��I������I�U�I��H�5D�!I�]�ct��I��H�5M�!H��H���s��I�����I��I�UH�50�!�+t��I���{��I�}�I�u�fS���i��A�G0��\��I�EH��$��H��$��T��I���6��I��I�UH�5|�!��s��I�����A�G0M�u���A�G0M�u���I�U�I��I�MH�5�!��r��I������I��I�UH�5�!�cs��I�����I��I�UH�5�!�Ds��I�����I��I�UH�5��!�%s��A���I���m��I��I�UH�5�!�r��A���I���F��I��I�UH�5��!��r��A�o@I�ƅ�uA�_<�����I��H�5��!H���r��A���I������I�MI�U�I��H�5�!��q��A�O@I�ƅ�uA�W<������I��H�5J�!H���Rr��A���I������.I�]�P���.����[I�U�I��I��H�5�!�}n��I���]��I�U�M�E��I��H�5�!�Un��I���5���.I�]�O���.����[I�U�I��I��H�5��!�n��I�����I�U�I��I�MH�5�!��p��I�������.I�]�?O���.���w[I�U�I��I��H�5U�!�m��I�����I�M��I�U�I��H�5�!H��4HD��hp��I���h��I�uL���v��I��H�5�!H����p��I���>��I��I�UH�5�!��p��I��H�5��!H���p��A���I�����I��I�UH�5_�!�p��A�@I�ƅ�uA�w<������I��H�5]�!H���ep��A���I�����I�U�I��I�MH�5�!�o��E�O@I��E��u
E�G<E���y��I��H�5�!H���p��A���I���S��I�M��I�U�I��H�5��!H��4HD��#o��I���#��I�uL���_u��I��H�5��!H���o��I������.I�]�cM���.���*YI�U�I��I��H�5y�!��k��I�����I�uL���t��I�����I�U�I��I�MH�5��!�n��I�����I��I�]1�1�H�5��!�BK��I��H�5d�!H��H���In��I���I��I�uL���t��I���5��I�M�I�U�I��H�5'�!�n��I�����I��I�]�1�1�H�5�!��J��I��H�5��!H��H����m��I������I�U�I��H�5��!�gn��I�����I��H�5��!1�1��xJ��I���H�5��!H���}m��I��I�MH�5{�!H���cm��I���c��I��H�5m�!1�1��$J��I���H�5I�!H���)m��I���)��I��I�]�1�1�H�5+�!��I��I��H�5�!H��H����l��I�MH�5��!I�E�I��H����l��I������I��I�]1�1�H�5��!�I��I��H�5��!H��H���l��I�����I�U�I���H�5��!�ol��I�MH�5t�!I�E�I��H���Ql��I���Q��I�U�I���H�5J�!�-l��I���-��I�M�I�U�I��H�5'�!�
l��I�MH�5�!I�E�I��H����k��I������I�U�I��I�MH�5��!��k��I������I�U�I��I�MH�5��!�k��I�����M�u���I�U�I��H�5��!�.l��I���~��I�U�I��H�5��!�l��I���_��I��I�UH�5��!��k��I���@��I��I�UH�5.�!��k��I���!��I��I�UH�5��!�k��I�����I��I�UH�5�!�k��I������I��I�UH�5�!�tk��I������I�U�I����M�M�M�E�H�5��!�i��I��I�MH�5��!H���~j��I���~��I�U�I����M�MM�E�H�5��!��h��I���R���.I�]�I�m��H���.���-TI�U�I��I��I��H�5K�!�h��I��I�MH�5�!H����i��I�������.I�]I�m��ZH���.���i[I�U�I��I��I��H�5��!�0h��I�����I�M�I�U�I��H�5��!�i��I��I�MH�5��!H���si��I���s��I�U�I��H�5	�!I�]�j��I��H�5B�!H��H���7i��I���7��I�M�I�U�I��M�M�M�E�H�5I�!�g��I��I�MH�5�!H����h��I������I�M�I�U�I��M�M�M�E�H�5�!�Gg��I��I�MH�5��!H���h��I�����I�M�I�U�I��M�E�H�5��!�e��I�MH��4tI��H�5n�!H���fh��I���f��I�U�I��I�MH�5P�!�Ch��I���C��I�U�I�M�I��H�5��!H��4HD��h��I�u�L��I���x�����I����m��I�E����M�u�����M�u�����M�u����I�U�I��H�5=�!�hh��I�����A�E�I��I�MH�5��!A�G8I�E�H�ƒ�H��H	�I�U�I�G(�yg��I�u�L��I���zw���m��M�w(I�G(�\��M��A���H�����I!�I	�M���:��H�����M��A�W8I!�A�G4I	Ӄ�M��A�G4A�G8���I����l��I�����E1�����I�EI�èuhH�����tuH��у����*QH�������QH�XH���
QH���v	����PH����E��H�5h�L��H��1��P��I�EI��H��4��h���hM���`��I�}�I�u�KF���N��I�EH��$��H��$��xG��I���(��M�u����E1����I�M�I�U�ILJ�I��H�5��!H��4HD�H��4HD���e��I������H��I��H�52�!A�jA���jj��_��I��H�� H�5_�!�H���ze��I���z��I�]��I��ILJ�A�A��H�5��!H��4�HD�H��jjj�c_��I��H�� H��H�5��!H���e��I�����ALJ����I�E�I��A�A�H�PH�HH�@ H��4HD�H��H�5+�!PQ�R���^��H�� I�����I�E�M�M�M�E�I��H�PH�HH�@ H��4HD�H��H�5��!PQ�R��^��H�� I���H��I�M�M�M�L��A����`��I��� ��I�U�M�M�L��M�E����`��I�����I�U�M�M�L��A���`��I������I�M�I�UؾL��M�MM�E��}`��I�����I�M�I�U�L��M�MA��V`��I�����I�u�M�M�L��A���.`��I���^��I�M�I�uغL��M�MM�E��	`��I���9������d�B��I�u�L��A�I������_��I��H�5��!H��I���c������I�M�I�u�L��M�MA��_��I�����I�U�I�uعL��M�MM�E��g_��I�����I�U�I�u�L��M�MA��@_��I���p��I�U�I��I�MH�5��!�Mb��I���M��I�U�I��I�MH�5��!�*b��I���*��I�U�I��I�MH�5�!�b��I�����I�U�I��I�MH�5��!��a��I������I�U�I��H�5��!I�]�qb��I��H�5K�!H��H���a��I��H�5:�!H���Bb��A���I�����I�M�I�u��L��M�MM�E��_��I���e��I�M�I�U�I��H�5��!�Ba��I�M�M�EI��H�5��!H���D^��I���$���.I�]I�m�M�u��?���.����KI�u�L��I��I��L���_��I������.I�]I�m�M�u��F?���.���5RI�u�L��I��I��L����^��I�����I�M�I�U�I��H�5��!H��4HD��t`��I�M�M�EI��H�5��!H���v]��I���V���I�M�I��I�UH�5�!�3`��I���3���I��I�UH�5��!��`��I������I�U�I��I�MH�5��!��_��I��H�5+�!H���`��A���I������I�U�I��I�MH�5m�!�_��I�����I�U�I��I�MH�5J�!�_��I�����I�U�I��I�MH�5��!�j_��I���j���I�U�I��I�MH�5D�!�G_��I���G���I��H�51�!1�1��<��I��I�MH�5�!H���_��I������I�U�I��I�MH�5��!��^��I�����I�M�I��I�UH�5}�!��^��I���ȿ��I�M�I��I�UH�5��!�^��I��饿��I�M�I��I�UH�5'�!�^��I��邿��I�U�I��I�MH�5\�!�_^��I���_���E�_@E��u	E�W<E��t5I����H�=���9��I���H�5��!H��1���:��I�U�I��H�56�!�^��I�����I�M�I�U�I��M�EH�57�!��Z��I���Ҿ��I�M�I�U�A�L��I�u�M�M�|Z��I��鬾������d�+=��I��鋾��M�u邾��I�M���d�=��I���b���I�U�I�M��d��<��I���C���I�u�I�M��d��<��I���$���I�U�I�u�dI�M�<��I������I�U�I��I�MH�5�!��\��I�����M�u�ڽ��I��I�UH�5 �!�k]��I��黽��I��I�UH�5A�!�L]��I��霽��M�u铽��M�u銽��I�EH��$��H��$��=��I���d���M�MM�E��I�M�I�U�I��4I��H�5
�!LD�I��4LD�H��4HD�H��4HD��Z��I������I�EA�I�M�I�U�I��H��4H�5��!LE��X��I���߼��I�U�I�M�I��H�5,�!H��4HD��[��I�u�L��I���k��飼��I����a��I�E鎼��I�U�I�M�I��H�5k�!H��4HD��^[��I�u�L��I���_k���R���I�����`��I�E�=���I�M��I�U�I��H�5j�!H��4HD��
[��I���
���I��H�57�!1�1���7��I�����I��I�UH�5$�!�[��I���ϻ��I�U��I��A��H�5��!��W��I�MH��4tI��H�5��!H���Z��I��酻��I��I�UH�5��!�[��A���I���^����.��8���.����KI�U�I��A��H�57�!�BW��I�MH��4tI��H�5
�!H���Z��I������I��I�UH�5X�!�Z��A���I���ۺ��I�U�M�E��I��H�5��!��V��I��鳺���.I�]��8���.����JI�U�I��I��H�5��!�V��I�MH��4tI��H�5^�!H���VY��I���V���I��I�UH�5��!��Y��A���I���/����.I�]��7���.���RJI�U�I��I��H�5�!�V��I�MH��4tI��H�5��!H����X��I���ҹ��I�UH�փ��OJH�����tH�������uH������uH�rL���e��M�u鋹��I�M�I�u�L��M�MA��4U��I���d���I�U�I�uعL��M�MM�E��U��I���?���I�U�I�u�L��M�MA���T��I������I�M�I�U�L��I�u�M�MM�E���T��I����I�u�M�M�L��A���T��I���̸��I�M�I�uغL��M�MM�E��wT��I��駸��I�U�I��I�MH�5��!�W��I��鄸��M�u�{���I�M�I�U�L��M�MA��$T��I���T���M�u�K���I�U�I��H�5��!��W��I���,���I�U�I��H�5��!�W��I���
���I�EH��$��H��$��78��I�����I�}�I�u��6��I���ҷ��I�}�I�u�6��I��齷��I�UH�փ��3HH�����tH�������uH������uH�rL���b��M�u�v���I����H�:H�����tHcGH��H�RH�����tHcRH�H��H��H��I����?���*���ILJ�I�u�L���[\��I�uH����4��I�����ILJ�I�u�L���0\��I�uH���4��I���Զ��I�EH��$��H��$��6��I��鮶��I�}�I�u�5��I��陶��I�EH��$��H��$���6��I���s���I�}�I�u�^5��I���^���I�UH�Ӄ���GH�����tH�������uH������uH�ZH��L���5a��I���H��H�8�>��I��I�UH�5��!�U��I�����I��H�5��!��|U��I���̵��I�UH�Ӄ��?GH�����tH�������uH������uH�ZH��L���`��I���H��H�8�>��I��I�UH�5O�!�
U��I���Z���M�u�Q���A�4�F���M�u�=���A�G0�0���M�u�'���M�u����I�E�M�uI�G(�
���M�w(K�D6I�G(���I��I�]1�1�H�5e�!�0��I��H�5B�!H��H���S��I��鿴��I�]H�5l�!I�U�I��H��4��E�BT��I�U�I��H�5��!H���xS��I��H�5��!H��H���_S��I���_���I�U�I��H�5�!��S��I��H�5��!1�H��1��0��I��H�5��!H��H���
S��I�MH��4tI��H�5m�!H����R��I�����I�MI�E�H��4tI��H�5A�!H���R��I�����I��I�]1�1�H�5+�!�~/��I��H�5�!H��H���R��I��酳��I�U�I��H�5+�!�S��I��H�5��!1�H��1��,/��I��H�5��!H��H���3R��I���3���I�U�I��H�5��!��R��I�U�I��H�5r�!H���Q��I�����M�u���I�U��I��H�5:�!H��4HD��uR��I���Ų��I�U�I��H�5k�!�VR��I��H�5 �!1�H��1��l.��I��H�5��!H��H���sQ��I���s���I�U�I��H�5�!�R��I�U�I��H�5��!H���:Q��I���:���M�u��1���M�u�(���M�u����I�M�I�U�I��M�EH�5��!�N��I�����A�GPI��I�UH�56�!�Q��I���ѱ��A�GP�ı��I�U�M�E��I��H�5q�!�M��I��霱��I�U�M�E��I��H�5I�!�M��I���t���I�U�M�E��I��H�5!�!�lM��I���L���I�U�M�E��I��H�5��!�DM��I���$���I��I�M�~H�5��!�P��I������I��I�M�!H�5i�!��O��I���ܰ��I�U�M�E��I��H�5��!��L��I��鴰��I�U�M�E��I��H�5a�!�L��I��錰��I�U�M�E��I��H�59�!�L��I���d���I�U�M�E��I��H�5�!�\L��I���<���I�U�M�E��I��H�5��!�4L��I������I�U�M�E��I��H�5��!�L��I�����I�U�M�E�<I��H�5��!��K��I���į��I�U�M�E��I��H�5q�!�K��I��霯��I�U�M�E�>I��H�5I�!�K��I���t���I�U�M�E��I��H�5!�!�lK��I���L���I�U�M�E�&I��H�5��!�DK��I���$���I�U�M�E�^I��H�5��!�K��I�����I�U�M�E�|I��H�5��!��J��I���Ԯ��I��I�M��H�5=�!�M��I��鰮��I��I�M��H�5�!�M��I��錮��I�U�M�E��I��H�59�!�J��I����H�5��!H���IM��I���I���I�U�M�E��I��H�5��!�AJ��I���!���I�U�M�E�%I��H�5��!�J��I�����I�U�M�E�/I��H�5��!��I��I���ѭ��I�U�M�E�*I��H�5~�!��I��I��驭��I�U�M�E�-I��H�5V�!�I��I��遭��I�U�M�E�+I��H�5.�!�yI��I���Y���I�U�I��I�MH�5��!�6L��I���6���I�U�I��I�MH�5��!�L��I������I�U�I��H�5��!�L��I�M�M�EI��H�5>�!H���H��I��H�5h�!H���pL��A���I��鸬��I�U�I��H�5�!�IL��I�M�M�EI��H�5��!H���H��I���{���I�M�I�U�I��H�5��!�XK��I�M�M�EI��H�5��!H���ZH��I���:���I�M�I�u��L��M�MM�E��EI��I�������.I�]I�m�M�u��w)���.����=I�u�L��I��I��L���I��I���ի���.I�]I�m�M�u��7)���.���#=I�u�L��I��I��L����H��I��镫��I�U�I��I�MH�5W�!�rJ��I�U�I��H�5��!H���XJ��I���X���I�U�I��I�MH�5�!�5J��I�M�I�U�I�E�H�5��!I��I���3G��I������I�M�I�U�I��M�EH�5Q�!�G��I�����I�M�I�U�I��H�5!�!H��4HD��I��I�M�M�EI�E�H�5	�!H��I���F��I��險��I�}�I�u�)��I��酪��I�EH��$��H��$��*��I���_���I�U�I��I�MH�5��!�<I��I���<���I�M�I�U�I��H�5&�!�I��I������I��H�5�!1�1���%��I�����I�U�I��H�5p�!�I��I���۩��I��H�5��!1�1��%��I��H�5>�!H���VI��I��馩��I�EI�}�I��H��H��A��@��uH�����tH�7A��A��A����;M��udH�����t\H��у����1<H��1������<H�PI�U�PH���<H��$�L��H���o(��H����;I�MI�U�I��H�5��!��G��I�����I�U�I��H�5��!�{H��I���˨��I�U�I��H�5��!�\H��I��鬨��M�MM�E��I�M�I�U�I��4I��H�5u�!LD�I��4LD�H��4HD�H��4HD���E��I���\���I�U�I��H�5r�!��G��I���=���M�u�4���I�U�I��I�MH�5&�!�G��I������I��I�]1�1�H�5�!��#��I��H�5��!H��H����F��I���է��I��H�5��!1�1��#��I��H�5��!1�H��1��|#��I��H�5��!H��H���F��I��郧��M�u��z���A�4�o���I�U�I�M�I��H�5L�!H��4HD��?F��I�u�L��I���@V���3���I����K��I�E����I�M�I�U�I��M�E�H�5�!�C��I��I�MH�5��!H����E��I���ݦ��M�u�Ԧ���!I�]�>$���!����6I��H�5+�!H���E��I��雦��H���!I�]H����6H���%��I��H�5��!H��H���^E��I���^���H���!I�]H���16H���J%��I�U�I��I��H�5��!H���=B��I������H�f�!I�]H���*6H���	%��I�U�I��I��H�5��!H���A��I���ܥ��I�U�I��H�5��!�mE��I��齥��H�5f�L����F��驥��M�u頥��M�u闥��I�U�I��I�MH�5��!�tD��I���t���I��I�]1�1�H�5n�!�1!��I��H�5S�!H��H���8D��I���8���I��H�5��!1�1�� ��I��H�5#�!1�H��1��� ��I��H�5�!H��H����C��I�����M�u��ݤ��M�uI��H�5S�!L���kD��L��I���lR��鯤��A�G0I���I�(�/O��钤��I�E�M�M�M�E�I�M�H�PH�pH�@ H��4HD�H��I��PVH�5��!R��=��H�� I���>���A�G0��1���A�E�M�u�A�G0ALJ�A�GL�
���A�WLM��H�����A�GLI!�A�O0I	�M���ޣ��I�U�I��H�5D�!�oC��A�G0ALJ�I��鬣��A��D$4陣��M�u�鐣��A�G0ALJ��x���A��m���I�uL���H��I��H�5�!H����B��I���C���I�uL���H��I��H�5��!H����B��I������I��I�UH�5��!�B��I�����I�UH�Ӄ���2H������w2H��������f2H�������V2H�ZH����E2H�ك�H���52�H��DuHH���2I���H�GH�����tH�xt1�H���4����uI���H���3������1I��I�UH�5��!��A��I���%���I�U�M�M�L��A����=��I�����I�U�M�M�L��M�E���=��I���ס��I�M�M�M�L��A���=��I��鯡��I�M�M�M�L��M�E���Y=��I��鉡��M�MA��L�����0=��I���`�������d����A��L��I������<��I������I��I�UH�5u�!�@��A���I�����I��I�M��H�5a�!��?��I���Ԡ��A�G0I�U�I��H�5:�!�]@��I��魠��A�G0I��I�UH�5��!�6@��I��醠��I��I�UH�54�!�@��I���g���I��I�UH�5�!�?��I���H���I��I�UH�5��!��?��I���)���I�E�I�U�I��H�5K�!I�G I�E�I�G(I�E�I�GA�E�A�G0A�E�A�GD�?��I�����A�WDM��H�����A�GDI!�I	�M��黟��A�W0M��H�����A�G0I!�I	�M��锟��M�wI�G郟��I�G M�w(I�EI�G I�G(�b���I�E�I��I�UH�5|�!I�G��>��I���;���M�wA�G0I�G�"���I�U�I�M���uH�����tH��ƃ�����4I��H�5��!��uH������tH�A��A��A���y4�=��I��鹞��I��H�5s�!1�1��z��1�1��H���)��I��鉞��I�U�I��I�MH�5��!�f=��I���f���I��H�5x�!1�1��'��I���G���I�U�I��I�MH�5I�!�$=��I���$���I��H�5>�!1�1�����I������I�M�I�U�I��H�5�!��<��I�����I��H�5l�!1�1����I���Ý��I�M�I�U�I��H�5M�!�<��I��頝��I��H�5:�!1�1��a��I��遝��I�U�I��H�5��!�=��I���b���I��H�5��!1�1��#��I��H�5�!H����<��I���-���I�U�I��H�5��!�<��I������I��H�5��!1�1�����I��H�5q�!H���<��I���ٜ��I�M�I�U�I��H�5#�!�;��I��鶜��I��H�5�!1�1��w��I��關��I�U�I��H�5
�!�(<��I���x���I��H�5��!1�1��9��I��H�5�!H����;��I���C���I�o �:���I�G H�DI�G �(���I�M�I���H�5!�!�;��I������I�M�I�U�I��H�5��!��:��I�����I�M�I�U�I��H�5k�!�:��I��龛��I�o 鵛��I�G H�DI�G 飛��I�M�I�U�I��H�5m�!�:��I��逛��I�o �w���I�G H�DI�G �e���I�E�A�I�M�I�U�I��H��4H�5��!LE��P7��I���0���I�E�A�I�M�I�U�I��H��4H�5�!LE��7��I�����M�u��I�U�I��I�MH�5�!��9��I���Ϛ��I��H�5A�!1�1����I�U�I��H�5N�!H���F:��I��H�5��!H��H���}9��I��I�MH�5s�!H���c9��I���c���H���!H����&H���S��I���H�5��!H���(9��I���(���H�a�!I�]�H���p&H�����I��H�5~�!H��H����8��I�����A�GP�ޙ��A�GPI�U�I��H�5�!�g9��I��鷙��I��H�5�!1�1��x��I��阙��I��H�5
�!1�1��Y��I��H�5�!H���9��I��H�5��!H���8��I���M���I�U�I��H�5��!��8��I��H�5P�!H����8��I������I��H�5�!1�1�����I�����I�U��I��H�5��!H��4HD��}8��I���͘��I�U��I��H�5>�!H��4HD��Q8��I��願��I��I�UH�5�!�28��I��邘��I�U�I��I�MH�5��!�_7��I���_���I�U�I��H�5ž!��7��I���@���I�E�I�U�I��H�5��!I�G(��7��I������A�G0����I�G(I�EI�G(���I��H�5a�!1��7��I���ڗ��A�G0�͗��I�E�I�U�I��H�5w�!I�G(�V7��I��馗��I�G(I�EI�G(鑗��I��H�5�!1�1��R��I��I�UH�5�!H���7��I��H�5J�!H��H���?6��I���?���I��I�]1�1�H�5i�!���I��H�5N�!H��H���6��I������I�U�I��H�59�!I�]�6��I��H�5�!H��H����5��I���ǖ��I�U�I��H�5��!I�]�T6��I��H�5μ!H��H���5��I��鋖��I�U�I��I�MH�5�!�h5��I���h���I�U�I��I�MH�5��!�E5��I���E���I��I�]1�1�H�5��!���I��H�5��!H��H���	5��I���	���I��I�]1�1�H�5s�!����I��H�5H�!H��H����4��I���͕��E1��ŕ��1�����I;����/I���H�PI����(@��
�A/I���5I���I����
�z�H��PX��uI����@���x<_�J5�$L������_L��������L���CF���������A�G0L����E���D$5�>����$L��������������*��L�����I���I���H��H9���H�PI����(@��
u�I;��s
�x
��4A����
A;��~�A���I���H��z1�����p����0�$L���
�������$L������-L������I���I;����AH�PI������
�I4I���3I���I����
�z�H��PX��uI����@�<_t���J3��L���;�����&���I���IcwTI�`�9��I�oH��H�����1�H�޿H������D$5H�E駣����u61�1��5�����D$A鄣��I���I�GI����_L���$������L�������`���DI����B���M��1����L���j����#�H��$�L�d$`�l$PI���L�l$hI��L�l$HL�t$pD�t$XH�L$�|f.�E1�1�M��
��L���Ih���������
��L����4��L�����%��L����4������4H�L$8H�t$E��L��I����%��������t�I���H�B�I���I;���j����z�
�`����z�
�V���H��I����F���L�d$L�l$`L�t$XL���<��I�G�>H�(�>)��H�ٿH��H���K��I�wL��H���,��1�1�H������)�'���D$>I�GI�GH�鯡���1�D�D$I��H���!H�
bH��_H�;����HcT$H�G�H�;�4P��!��H�3�
�
���D$4韑����g��I���I���H�����I���I���I���H)�����A���H�L$hA��I���I+��A�����I�W`IcGT�L$H�IcwTI�`M���H��$�I�_����H��$�L��H��D@��I����>L����,�?��A����D$>����H�T$HH�t$P����������D��$���$�E���D\$8�ʼn\$8�����0�a����@���L�d$L�l$`L�t$XI�GI���H����H�����H���	��H�T$H1�H�5�wL�����I�����I���I���H)�H��~(H��$��D$Pu
�y��I���H������>L���/��I���I���I�wL�����闰��L�d$`L�l$hL�t$pH�T$H1�H�5YwL���	��I����c����>L���N>���H��I���镛���D$ ����D�D$XH�L$8I���H�T$H��!�������L����8��I�wL�����I�GA�G0�D$\髞���|$�M��H�$��K���醕��M���X���H�5�vL��1��A��I�oH�M�e�����L�������B���H�5�vL��1����I��K��I�G�*���	D$����M��H�$��Ĕ��l$���t%I���H�P�I���I;��v
�x�
�TIcGT��t4I�W`H�5]]L���H�*^A�TH�^]HN�I�O`1��z���t$81�1�I�_�����	�Hc������BL��H��<��I����I�G�_���IcwTI�`��M���H��$�L�d$`L�l$hL�t$p�F��H������IcwTI�`��M���H��$�I�_L�d$`L�l$hL�t$p�
��H��$�L��H��<���D$>�ݜ��I�L�d$`L�l$hL�t$p�����O���A�G0�D$E驜����.���Ń���)H�5*vL��1��X��鼭��H�} �X���I���H�E���������� L���,��A����D$ ��齐��D�z�
�C���H��I����3���L������D$���~
�#L���}��L���%.���������D$G�K���H�tD�d$H��H��H����A�L����-����������H��/v�I�WpA���M��L�t$8I�WxI���I����������I����s��������s������E����bL���o:���3����D$M������tALJ�A�G0���L��L�d$8M��M��I���3���I���I;����I����:�
H��PX��uI����<_t�������I���H�P�I���I;��v�x�
u�x�
uH��I���I���A�G0�?L����'�9��A������Ҏ��A�G0����P��I��H���֚��H)�H��H���6��H�������L)�L�t$hH�D$XH�X�1�L�l$pL�|$M��I��H��~CA�L�����E��t><;wH��H��r���,����tH��H��u�L�t$hL�l$pL�|$�L���I��A�E<;wH��H��r��������t^M���DI��H��t�A�?������u�A�<:�X���L�l$`�A�������zL��M��I��M�oI��u��f���I��H���o����S�����D$O�E���H�HH9�v
�x:����L���+��I�����I����^L��I�GA�G0�R2��7��A����D$^��������=�����A���������L$H���0t���oA�G0���t%I���H�P�I���I;��v
�x�
�(4���������
���@���q����������H�=�W����H�=��!H���&H�=��!���I��H�5�!H��H���r&��魗��DH�5�qL��1��g���˨���D$J�
�����=�������>��.�A�������|�L$H���0t���AA�G0���t%I���H�P�I���I;��v
�x�
�|$�������������@���a��������H�=�V����H�=��!H����#H�=��!���I��H�5լ!H��H���b%��靖��D�|$\������D$=B�f���=^�����I����w���A�G0�D$K�O���L���w(���D$���.�6������t%I���H�P�I���I;��v
�x�
�X#�D$����@���L$8�b���L$8��������-L���x'��A�G0�����
I���H�P�I���I;��v
�x�
��@���i�����$#`�D$鄕��A�G0L���'����]�NL���'���D$���=�R�����t%I���H�P�I���I;��v
�x�
���D$�������Π���0t��T$H�����I���I;���H�PI������
��1�-�&��'t��`��
��L��������L���!	���9�����L���,������oI���I���H��H9�t]H�PI����(@��
u�I;��s
�x
��%A����
A;��~�A���I���H�mj1�����r���I�oxI�GxH��u2I���%I�h��%L���
��H��H���e%I���I���H9�sI���H���m%H)�H���V���A������n
ALJ�H�U��A���A����� �0
H�EH��I�����H�I���I���I�op����E1�I����H�sS�6��������I���A����jL��I�GI����#2���'���A�G0���@���L$8�D���L$8���w����+L���Z$��A�G0����x
I���H�P�I���I;��v
�x�
��.@���K�����F�D$��f���I���I����fL���{1��A�_0�N������t%I���H�P�I���I;��v
�x�
��.��u�t$H���oA�G0���1ɺ/��)�A���D$TI�G�Б��L���#����@t*���t%I���H�P�I���I;��v
�x�
��A�G0錑���|$\����y���f�@��������c�)��(t!�]��[t��{��0�>��<t��1��1ɾ�)��	�Hc��y����D$RI�G����A�G0�������A���0t�|$H��t���?�������A�G0�D$C鲐��A�EL��<"��M��L���A�<;��<"�~��������nI��H��u�M��1�H�t$`H�D$XH)�H�t$`H���!H������H�D$XH�H�xH�L$x�� t	H�D$XH�xH�T$`H���(���H�D$XH�H�hH�L$x�� t	H�D$XH�hH�L$`H��H�T
H��~�8-u�_H��H9�u�H�T$`H��H�=�M�������0H�T$`H��H�=eM������Q/M)�M��tOL��L������I�|$I�$ tI�|$L��L���|���H�D$H�T$XL��H�5�!H������Q���H�D$L��L��H������I���H�D$H�t$`H��H����b���H�D$X��M��A�<;t���e����������I��H��u��w���M�oH���<A�O��"�~
L��� H��H�Z�H����
�HL��"�\
L�p��\u�H�HH��L��I����I;��s
�x
��+A����
A;���I�u9I����y��
H��PX�����I����@������<_�~�I���H�P�I���I;��v
�x�
�9+��H�5�gL��1��������I�oxI�GxH��u2I���*I�h�~*L���|��H��H���b*I���I���H9�sI���H���\*H)�H��� ���A������UALJ�H�U��A���A����� �H�EH��I�����H�I���I���I�op�o���I�oxI�GxH��u2I��I�h�?,L�����H��H���#,I���I���H9�sI���H���)H)�H���P���A�������ALJ�H�U��A���A����� �gH�EH��I�����H�I���I���I�op�?�����{����م��I���I;��s	�8=�Δ���t$L���������D$4�h���I���H�P�I���I;��v
�x�
�@+�����IcGTI�W`H��$�L��$��A�GT�
�p�I�G`Hc�H�x�m�����$��N*Hc�H=���?�?*1�1��4�����D$@�U���A���I���H��a1����I��������+L���a���D$�{��1�魠��L�d$L�l$`L�t$X����L���"���
��I�����H��PX��uQI����x�xD����)��)��(t�]��[t�}��{��&��I��/wH�
9xHc�H�>��H�5�JL���h��鬛���������I���H�P�I���I;��������x�
������x�
�����H��I����{���1ɺ"��)�q���I�G�\���H���P������u"H��$�I����K���"�%���I��K#I���I����
�z�H��PX��uI����@���x<_�#L��������L����������L���	!������[I���I;����#H�BI������
�U#I�u-I����x��
H��QX��u�I����@���x�<_t�I���H�P�I���I;��v
�x�
��"�"IcGTI�W`�hL����'��I���I�OpI���I���IcwTI�`I���I+��H�L$���H�L$H�ڿ(H�����Ic��H�I�GH����H	�H�I���I���1���`��R�D$�>����D$��1����D$��$����D$�����1ɺ`��)�a����D$SI�G��=���D�A�G0频�����}���A�wTI�`�?�H��A�G0H���`����SA�W0������tALJ��S�����T$���w���C�D$9���w��A�G0��w����\�G{����L�������W{���.�t��H�����H��L���"����tI���I���H������I�E�I����.�4��H���5����.�"��H���Ħ��H��4��H��у�������H��������L�X�����.����H���[���1��q����.����H���)����.���H���w���A�G0ALJ��Q���H�5�_L���2������H�EH�UI������A�������t%I���H�P�I���I;��v
�x�
��A�O0���@���T$8�I���=A�G0�T$8�ދ��D�d$H���hH��/�
�L���b����L��������.���I���I���H�J����tI���H9�v
�z�
�H��H�B�I���H9�v
�z�
��gL���f$��A�_0�9z��L���U����=�\����t%I���H�P�I���I;��v
�x�
��	�L$HA�G0���0t���`�D$N�A����������������u���H�D$��s���I���H�P�I���I;��v
�x�
��	�|$6����H�5P_L��1�����邕���@L�����L���d���Ã���v
H�5�^L��1�����L����z�
�ْ��H��I����ɒ���H�=~P��H��!�Q���H�=aP��H�̕!�s���D$�鲃��A�G0�D$L�<���L��������=������t%I���H�J�I���I;��v
�z�
��	�D$P�u�|$H��	�D$��@���L���h���D$���>�'������t%I���H�P�I���I;��v
�x�
�
	�D$����x�
�~���H��I����n���L�������=�����t%I���H�P�I���I;��v
�x�
�g�D$�鎂���D$�遂��A�G0L�������=������t%I���H�P�I���I;��v
�x�
�c�D$��1���@���L$8�����#A�G0�L$8龏��A�G0�D$D���I���I���L�l$X1�L�%EpH�D$H��H�D$H)�H��~y�C�Pƀ�5w[��Ic�L�>��H����H����H����H���H���H���L�k��H�51?H���m����L�����L�k�����u���L�l$X���M��H�Z�M�~H���+����M�������H�EH�UI������A�����H�EH�UI�����A����Z��L���f������t������A�G00����	�����H��oHc�H�>��1�H����H�5w\L��H��1��R���I��I�UH�5�!����I���+p���!���H���`���H�=�L��H�Y�!����H�=�L���H�,�!�X���H�=�L���H��!����.�0��H��霵���.���H�������.���H���E����.���H��鹭��1����1��е���.����H��酤���x�
���H��I������x�
�y���H��I����i���A�G0L���~����=������t%I���H�P�I���I;��v
�x�
���D$����@���L$8�q�����A�G0�L$8�����V��I�U�I��H�5�!H���
���(����.���H������1����1��G����.����H���k���fI����"H�=�WH�H����I��I��H�5��!H���1�������v뵻n뮻t맀x�
����H���D$�I����~��I���I��H�8W���A�G0�D$O�<����s�P����r�F���H������� ��H�WH�w I�U�1�M���D��H������8��H��σ����'��H������������H��$�H�5)>L��1��4������I�EI�}�H��H������s�s�]��Ÿs������/�x�
�_��H��I����O��@���v���t4A�G0�K���I���I��H��U�o��A�G0�D$M魊���H�=i<��H�=��!H���?H�=��!�p�I��H�5��!H��H���G���L��L�l$X��C<=t<:�}��L�c�L��L�cL9d$�}���{����u��t�L���E<-t<_t���H���tH��H9l$w�H��L��L��L)����L��H���-�H��H�pH� tH�pL���q�1�H���g��|��A�W8��tA;W4ttA�G u$A�G(t� t&��������D$�{���D$�{���D$�{��D�d$M��L�t$8�l����H�=H;��H�5�!�����A�G8A�W4�D$�4{���x�
�����H���D$�I����{���x�
����H��I��������#��A����D$?���[o���x�
�����H���D$�I����z���x�
�
�H��I������x�
�&���H��I�������H�������w��H�Y H�I�(	��I��H���$j��H���j��H��H��1����I���j��H����������H�j H�R������A�G0A�G8A�O4I�W I�G(�D$]��y���x�
���H���D$�I�����y���z�
�b���H��I����R����������W����
H�=R9��H�=s�!H����H�=c�!�F�I��H�5��!H��H������D$��Py���x�
��H���D$�I����.y��I;��s
�x
��A���A;����1�
� ��x�
���H��I������I�_xI�GxH��u+I���I�h��L����H��H���zI���I���H9�sI���H��t~H)�H���*�A�����~A���ALJ�H�A���A����� ��H�SH��I�����I���H�I���I���I���I�_p�!����I���I���H���w�I���I���I���H)��z�A���A��I���I+��A���(���H�SH�CI���I����_����H�=C7�6�H�W�!���A���1�1�
I���H��M���g�H��1�
I����P�I���I�GI���A�G0�ʂ����D�d$M��L�t$8��v��I���H�P�I���I;����v���x�
��v���x�
��v��H��I����v����������x��D$8�<{��M��M���"�I;��s
�x
�gA����
A;������A���I���H��L1����r��@���L$8��������A�G0�L$8�
x���������HED$�D$�dv��I�_xI�GxH��u+I��p��I�h�O��L����H��H���:��I���I���H9�sI���H����H)�H���?�A�����~A���ALJ�H�A���A����� u3H�SH��I�����I���H�I���I���I�_p�>��H�SH�CI���I�����H���
I����0�����I���I���H���j��I���I���I���H)��m�A���A��I���I+��A������@����������H�=t4�c��H�=3�!H��tDH�='�!�*�I��H�5t�!H��H������8��x�
�5z��H��I����%z���H�=!4���H�҅!뢀x�
�e�H��I����U����A����D$>���Qh���x�
�}��H��I����}��I���I���H9�s��΃�@��>��|����=t&�=L����IcGTI�W`�D$3���|��H�HH9���|���x>��|���H�rH9�v
�z:��|��A�G0L���[��I���IcwTI�`�w��I�_H���+��D$9H��r��A�G0�D$3��r�����A������Qg���H�=�2��H���!�����x�
����H���D$�I����r���x�
�z��H��I����j��@���L$������t$A�G0�L$��@�������t4A�G0��I���I��H��J���A�G0�D$N����H�=�1���H�=��!H��tZH�=�!��I��H�5�!H��H�����뇾H�=�1��H���!����H�5oLL��1��u��ق���H�=K1�O�H���!�@��������t-A�G0�O��1�H�521L���/�I�����a��铂���H�=�0�+��H�=#�!H��t^H�=�!����I��H�5<�!H��H������뎀x�
��y��H��I�����y���H�=&1��H���!�Ws���H�=|0��H���!�I���H��H��I���I;��v
�z�
��H�P�I���I;���vp���x�
�lp���x�
�bp��H��I����Rp��H���
I������I���H�P�I���I;�������x�
�����x�
����H��I������I;��s�x
tTA����
A;������A���I���H�
F1��&���n���z�
����H�B�I����	���H���
I����?������I���I���H������I���I���I���H)����A���A��I���I+��A���}��H���A����D$\���c��H������$��O���A��D�����r^����*^��A���]��A��]��H���
I������I;����I���H�PI������
��� ���I���I�GI���H�5cJL��1����/�����Z��I���I���H�����I���I���I���H)����A���A��I���I+��A���9��I;��s
�x
�vA���A;���|� �
���I�_xI�GxH��u+I���I�h�qL���J�H��H���\I���I���H9�sI���H��twH)�H������A�����~A���ALJ�H�A���A����� ��H�SH��I�����I���H�I���I���I�_p�>��������I���I���H���F��I���I���I���H)��I��A���A��I���I+��A���/���H�SH�CI���I����f���H��� �
I����a�A���I���1�� H�pB�
����6�I���I�GI���I���A�G0H�J�I���I;����w���z�
��w���z�
��w��H��I����rw����1ɾ�)��	�Hc�����D$SI�G�k����1ɾ�)��	�Hc�����I�GL���������������u��t!I���H�P�I���I;��v�x�
tm�D$V� k����1ɾ�)��	�Hc��e��A�G0�I�G�D$Q��j����1ɾ�)��	�Hc��1���D$TI�G�j���x�
u�H���D$VI����j����1�1��)��	�Hc������D$RI�G�yj����1ɾ�)��	�Hc����I�GL��������������u��t%I���H�P�I���I;��v
�x�
���D$X�
j����1ɾ
�)��	�Hc��R��I�GL�����������L����u��t%I���H�P�I���I;��v
�x�
���D$U�i����1ɾ
�)��	�Hc�����I�GL���������������u��t!I���H�P�I���I;��v�x�
tQ�D$W�9i���x�
����H���D$XI����i���x�
�_���H���D$UI����h���x�
u�H���D$WI�����h��H�;�O��I�oH������H�E�C�D$�!Y����IW��A�G0�D$P�h���/L���'���1ɺ/��)�����D$TI�G�`h���z�
t3I������M��L�t$8����z�
���H��I������H��I�����A�G0L��D�d$M��L�t$8%�������A�G0������=����~����>������g��I���H�P�I���I;����g���x�
��g���x�
��g��H��I����g��I���I���H��$�DŽ$�H��$������$��L��I������H9��7������H;�$��$���'��H��$�����D$F�f���D$���f��L��������=t3��t!I���H�P�I���I;��v�x�
t�D$��f���D$��f���x�
u�H���D$�I����f��I���H�P�I���I;��v�x�
t*���a����B����A����D$^���Z���x�
u�H��I����þH�=7&����H��w!�l���x�
���H��I������I;��s
�z
��A����
A;�����A���I���1�H��;���I����W��I�_xI�GxH��u+I�����I�h�HL���=��H��H���3I���I���H9�sI���H��t~H)�H������A�����~A���ALJ�H�A���A����� ��H�SH��I�����I���H�I���I���I���I�_p�f�������I���I���H���2��I���I���I���H)��5��A���A��I���I+��A���(���H�SH�CI���I����_���H�B�
I�������I���I�G�"I����&���>��<�_����1��V���x�
����H��I�������x�
�N��H��I����>��L�������L���?�������W����t��L������1�1�L��H��$�H������ƃ��,��H��$�L���'���{W��A��_y���x�
�5��H��I����%��I���I�GI������,����5��I���I���H�����I���I���I���H)����A���A��I���I+��A���J���x�
����H��I������H�H�
I����3��I�_xI�GxH��u+I����I�h��L���,��H��H����I���I���H9�sI���H��t~H)�H������A�����~A���ALJ�H�A���A����� ��H�SH��I�����I���H�I���I���I���I�_p�W��������I���I���H���!��I���I���I���H)��$��A���A��I���I+��A���(���H�SH�CI���I����_���M�G`1�H��I���L���L��H��H��H�p��Y��I����1H�=�:H���>��I���I��H�5s!H��1��n��1��W��I���I�GI�����I���I�GI�������x�
����H��I���������L�d$L�l$`L�t$XI����C����}���H�N`!L��H�D$`L)�H�|$L�����H��M��t`L��H��H�D$x���I�|$H�L$xI�$ tI�|$H��L�����H�D$`I�T$H�@I�$ tI�T$H��H�|$���(��H�D$H��L��H������I���L��H��_!L)�H�D$`�X�����UH�5�_!SH�����H��H���H���H9��H�pH����H��
����#ta���u$H���H)�H��~�x�u�x��(@H���H9��rHH�{p���H���H�����H��H��[]�f�H9��v��x!u�������z�
u��z�
u�H��H�����H;��s
�x
�����;���c������H���H��41�����H���H�B��8���H�kxH�CxH��u2H�{�<���H�{h�_H������H���H��H���CH���H9�sH���H����H)���������~Vǃ�H�U���������� u;H�EH��H�����H�H���H���H�kp�/��������H�EH�UH��������~��H���H���H������H���H���H���H)����������H���H+��������fDH�PH���������H���H���H��H���H�������H�CH������fD��UH�=�SH��H�Pj!H�0�����H�=�H�����H��H�5�H���:��H��H�50���k��H�����H�<��H�5��0��1�H��H�����H�5v���1�H��H���H�5d���1�H��H���H�5S����1�H��H�L�H�5D����1�H��H����H�53���1�H��H����H�5o���1�H��H����H�5
���H��H�)��H�5��m��1�H����H��H�5��U��H���
���x��H�5�H��H��H�����H�=�%���H������H��H������H�={%���H�������H��H�����H�=&#�o��H������H��H�����H�=
#�K��H������H��H���s��H�=��'��H���o���H��H���O��H�=����H���K���H��H���+��H�=�"����H���'���H��H�����H�=�"���H������H��H������H�=C$���H�������H��H�����H�=$�s��H������H��H�����H�=$�O��H������H��H���w��H�="�+��H���s���H��H���S��H�=�!���H���O���H��H���/��H�=�!����H���+���H��H�����H�=�!���H������H��H������H�=�!���H�������H��H������H�=A#�w��H������H��H�����H�=,#�S��H������H��H���{��H�=P!�/��H���w���H��H���W��H�=�"���H���S���H��H���3��H�=!����H���/���H��H�����H�=� ����H������H��H������H�=� ���H�������H��H������H�=,�{��H�������H��H�����H�=�+�W��H������H��H�����H�=�!�3��H���{���H��H���[��H�=[ ���H���W���H��H���7��H�=A ����H���3���H��H�����H�=) ����H������H��H������H�=0!���H�������H��H������H�=����H�������H��H�����H�=��[��H������H��H�����H�=< �7��H������H��H���_��H�=
 ���H���[���H��H���;��H�=  ����H���7���H��H�����H�=M����H������H��H������H�=3���H�������H��H������H�=����H�������H��H�����H�=��_��H������H��H�����H�=��;��H������H��H���c��H�=����H���_���H��H���?��H�=���H���;���H��H�����H�=~����H������H��H�����H�=����H�������H��H������H�=����H�������H��H�����H�=��c���H������H��H�����H�=��?���H������H��H���g���H�=�����H���c���H��H���C���H�=����H���?���H��H������H�=�����H������H��H�����H�=����H�����H��H�ߺ[H��]�������H���H�=�����H�=�H��g!����H�=H��g!����H�=pH��g!�o���H�=gH��g!�W���
H�=WH��g!�?���H�=MH��g!�'���H�=FH�tg!����H�=;H�dg!����H�=/H�Tg!�����H�=)H�Dg!�����H�="H�4g!����H�=H�$g!����	H�=H�g!����H�=�H�g!�g���H�=�H��f!�O���H�=�H��f!�7���H�=�H��f!����H�=�H��f!����H�=�H��f!����	H�=�H��f!�����H�=�H��f!����H�=�H��f!����H�=�H�tf!����H�=�H�df!�w����H�=�H�Tf!�_����H�=�H�Df!�G����H�=�H�4f!�/����H�=|H�$f!�����H�=lH�f!����H�=\H�f!����H�=MH��e!�����
H�=IH��e!����H�=<H��e!����H�=4H��e!����H�=0H��e!�o����H�=*H��e!�W����H�=H��e!�?����
H�=H��e!�'����H�=H�te!�����H�=�H�de!����H�=�H�Te!�߿���H�=�H�De!�ǿ���H�=�H�4e!诿���H�=�H�$e!藿���H�=�H�e!�����	H�=�H�e!�g����H�=�H��d!�O����H�=�H��d!�7����H�=zH��d!�����H�=kH��d!�����H�=ZH��d!����H�=JH��d!�׾���	H�=8H��d!迾���H�=*H��d!觾���	H�=H�td!菾���H�=H�dd!�w����
H�=H�Td!�_����H�=�H�Dd!�G����H�=�H�4d!�/����H�=�H�$d!�����H�=�H�d!����H�=�H�d!����
H�=�H��c!�Ͻ���	H�=�H��c!跽���H�=�H��c!蟽���H�=�H��c!臽���H�=�H��c!�o����H�=�H��c!�W����H�=�H��c!�?����H�=�H��c!�'����H�=zH�tc!�����H�=xH�dc!����	H�=oH�Tc!�߼���H�=aH�Dc!�Ǽ���H�=RH�4c!诼���
H�=IH�$c!藼���H�=<H�c!�����H�=4H�c!�g����
H�=,H��b!�O����
H�="H��b!�7����H�=H��b!�����
H�=H��b!�����H�=�H��b!����
H�=�H��b!�׻���	H�=�H��b!迻���
H�=�H��b!觻���
H�=�H�tb!菻���H�=�H�db!�w����	H�=�H�Tb!�_����
H�=�H�Db!�G����	H�=�H�4b!�/����H�=�H�$b!�����H�=�H�b!����
H�=~H�b!����H�=tH��a!�Ϻ���H�=mH��a!跺���H�=gH��a!蟺���H�=^H��a!臺���H�=XH��a!�o����H�=RH��a!�W����	H�=CH��a!�?����H�=5H��a!�'����H�=/H�ta!�����H�=&H�da!����H�=H�Ta!�߹���H�=H�Da!�ǹ���H�=H�4a!诹���H�=H�$a!藹���	H�=�H�a!�����
H�=�H�a!�g����H�=�H��`!�O����H�=�H��`!�7����H�=�H��`!�����H�=�H��`!�����
H�=�H��`!����H�=�H��`!�׸���H�=�H��`!迸���H�=�H��`!觸���H�=tH�t`!菸���H�=eH�d`!�w����H�=ZH�T`!�_����H�=NH�D`!�G����H�=BH�4`!�/����H�=7H�$`!�����H�=,H�`!����H�=#H�`!����H�=H��_!�Ϸ���H�=H��_!跷���	H�=H��_!蟷���	H�=�H��_!臷���
H�=�H��_!�o����H�=�H��Y!�W����H�=�H��Y!�?����H�=�H��Y!�'����H�=�H��Y!�����H�=�H��Y!����H�=�H��Y!�߶���	H�=�H��Y!�Ƕ���H�=�H�|Y!诶���H�=tH�lY!藶���H�=dH�\Y!�����H�=UH�LY!�g����H�=JH�<Y!�O����H�=9H�,Y!�7����H�=)H�Y!�����	H�=H�Y!�����H�=	H��X!����	H�=�H��X!�׵���H�=�H��X!迵���H�=�H��X!觵���	H�=�H��X!菵���	H�=�H��X!�w����H�=�H��X!�_����	H�=�H��X!�G����H�=�H�|X!�/����	H�=�H�lX!�����H�=|H�\X!����H�=sH�LX!����H�=nH�<X!�ϴ���H�=eH�,X!跴���
H�=ZH�X!蟴���H�=PH�X!致���H�=HH��W!�o����H�=?H��W!�W����H�=4H��W!�?����
H�=(H��W!�'����
H�=H��W!�����H�=H��W!����H�=H��W!�߳���
H�=�
H��W!�dz���
H�=�
H�|W!诳���
H�=�
H�lW!藳���
H�=�
H�\W!�����
H�=�
H�LW!�g����	H�=�
H�<W!�O����
H�=�
H�,W!�7����H�=�
H�W!�����H�=�
H�W!�����H�=�
H��V!����
H�=�
H��V!�ײ���H�=v
H��V!迲���H�=f
H��V!觲���H�=S
H�U!菲��H��T!H���?�����H��H���unknown encoding name: %s%s:%d%s is not ASCII compatibleinvalid source encodingcompile_errorStack now %d(ripper)token %s (nterm %s (%s syntax errorsyntax error, unexpected %sunixdosutf8-macinvalid hex escapeinvalid multibyte char (%s)Ripper#parse is not reentrantlex_p < tokpduplicated argument nameinvalid Unicode escapeunterminated Unicode escapePARSER_EVENT_TABLEInvalid octal digittrailing `%c' in numberFloat %s out of rangeStarting parse
Stack size increased to %lu
Entering state %d
Reading a token: unknown regexp option%s - %sargument prefix**here document<<incomplete character syntax&unary operator+-symbol literal:regexp literal/unknown type of %stringstring literal%%__END__Now at end of input.
Next token isShifting   $%d = END in method; use at_exitinvalid local variable - %li-> $$ =Error: discardingError: poppingmemory exhaustedCleanup: discarding lookaheadCleanup: poppingRipper0.1.0Versioninitializeparsecolumnfilenamelinenoend_seen?yydebugyydebug=error?SCANNER_EVENT_TABLEon_BEGINon_ENDon_aliason_alias_erroron_arefon_aref_fieldon_arg_ambiguouson_arg_parenon_args_addon_args_add_blockon_args_add_staron_args_newon_arrayon_assignon_assign_erroron_assoc_newon_assoc_splaton_assoclist_from_argson_bare_assoc_hashon_beginon_binaryon_block_varon_block_var_add_blockon_block_var_add_staron_blockargon_bodystmton_brace_blockon_breakon_callon_caseon_classon_class_name_erroron_commandon_command_callon_const_path_fieldon_const_path_refon_const_refon_defon_definedon_defson_do_blockon_dot2on_dot3on_dyna_symbolon_elseon_elsifon_ensureon_excessed_commaon_fcallon_fieldon_foron_hashon_ifon_if_modon_ifopon_lambdaon_magic_commenton_massignon_method_add_argon_method_add_blockon_mlhs_addon_mlhs_add_staron_mlhs_newon_mlhs_parenon_moduleon_mrhs_addon_mrhs_add_staron_mrhs_newon_mrhs_new_from_argson_nexton_opassignon_operator_ambiguouson_param_erroron_paramson_parenon_parse_erroron_programon_qsymbols_addon_qsymbols_newon_qwords_addon_qwords_newon_redoon_regexp_addon_regexp_literalon_regexp_newon_rescueon_rescue_modon_rest_paramon_retryon_returnon_return0on_sclasson_stmts_addon_stmts_newon_string_addon_string_concaton_string_contenton_string_dvaron_string_embexpron_string_literalon_superon_symbolon_symbol_literalon_symbols_addon_symbols_newon_top_const_fieldon_top_const_refon_unaryon_undefon_unlesson_unless_modon_untilon_until_modon_var_aliason_var_fieldon_var_refon_vcallon_void_stmton_whenon_whileon_while_modon_word_addon_word_newon_words_addon_words_newon_xstring_addon_xstring_literalon_xstring_newon_yieldon_yield0on_zsuperon_backrefon_backtickon_commaon_conston_cvaron_embexpr_begon_embexpr_endon_embvaron_floaton_gvaron_identon_imaginaryon_inton_ivaron_kwon_lbraceon_lbracketon_lparenon_nlon_opon_periodon_rbraceon_rbracketon_rparenon_semicolonon_symbegon_tstring_begon_tstring_contenton_tstring_endon_words_begon_qwords_begon_qsymbols_begon_symbols_begon_words_sepon_rationalon_regexp_begon_regexp_endon_labelon_label_endon_tlambdaon_tlambegon_ignored_nlon_commenton_embdoc_begon_embdocon_embdoc_endon_spon_heredoc_begon_heredoc_endon___end__on_CHARwarnwarningripper"end-of-input"$undefinedkeyword_classkeyword_modulekeyword_defkeyword_undefkeyword_beginkeyword_rescuekeyword_ensurekeyword_endkeyword_ifkeyword_unlesskeyword_thenkeyword_elsifkeyword_elsekeyword_casekeyword_whenkeyword_whilekeyword_untilkeyword_forkeyword_breakkeyword_nextkeyword_redokeyword_retrykeyword_inkeyword_dokeyword_do_condkeyword_do_blockkeyword_do_LAMBDAkeyword_returnkeyword_yieldkeyword_superkeyword_selfkeyword_nilkeyword_truekeyword_falsekeyword_andkeyword_orkeyword_notmodifier_ifmodifier_unlessmodifier_whilemodifier_untilmodifier_rescuekeyword_aliaskeyword_definedkeyword_BEGINkeyword_ENDkeyword__LINE__keyword__FILE__keyword__ENCODING__tIDENTIFIERtFIDtGVARtIVARtCONSTANTtCVARtLABELtINTEGERtFLOATtRATIONALtIMAGINARYtSTRING_CONTENTtCHARtNTH_REFtBACK_REFtREGEXP_END"unary+""unary-""**""<=>""==""===""!="">=""<=""&&""||""=~""!~""..""...""[]""[]=""<<"">>""::"":: at EXPR_BEG"tOP_ASGN"=>""(""( arg"")""[""{""{ arg""*""**arg""&""->"tSYMBEGtSTRING_BEGtXSTRING_BEGtREGEXP_BEGtWORDS_BEGtQWORDS_BEGtSYMBOLS_BEGtQSYMBOLS_BEGtSTRING_DBEGtSTRING_DENDtSTRING_DVARtSTRING_ENDtLAMBEGtLABEL_ENDtLOWEST'=''?'':''>''<''|''^''&''+''-''*''/''%'tUMINUS_NUM'!''~'tLAST_TOKEN'{''}''[''.'',''`''('')'']'';'' ''\n'$accept$@1top_compstmttop_stmtstop_stmt$@2stmt_or_begin$@3$@4command_asgnexpr_valueblock_commandcmd_brace_block@5mlhsmlhs_innermlhs_basicmlhs_itemmlhs_headmlhs_postmlhs_nodecnamecpathfnamefsymfitemundef_list$@6reswords$@7arg_valuearef_argsopt_paren_argsopt_call_argscommand_args@8opt_block_argmrhs_argmrhsprimary@9$@10$@11$@12$@13$@14$@15$@16$@17$@18$@19@20@21@22@23@24$@25@26primary_valuek_begink_ifk_unlessk_whilek_untilk_casek_fork_classk_modulek_defk_endif_tailopt_elsefor_varf_margf_marg_listf_margsopt_block_args_tailopt_block_paramblock_param_defopt_bv_declbv_decls@27@28@29@30f_larglistlambda_body@31block_callmethod_call@32@33@34@35@36@37case_bodycasesopt_rescueexc_listexc_varopt_ensurestringsstring1xstringregexpwordsymbol_listqwordsqsymbolsqword_listqsym_listxstring_contentsregexp_contents@38@39@40@41@42dsymsimple_numericuser_variablekeyword_variablevar_lhssuperclass$@43f_arglist@44opt_args_tailf_bad_argf_norm_argf_arg_asgnf_arg_itemf_argf_labelf_kwf_block_kwf_block_kwargf_kwargkwrest_markf_kwrestf_optf_block_optf_block_optargf_optargrestarg_markf_rest_argblkarg_markopt_f_block_argsingleton$@45assoc_listassocsassocoperationoperation2operation3dot_or_colonopt_termsopt_nltrailertermnonevtable_add: vtable is not allocated (%p)syntax error, unexpected %s, expecting %ssyntax error, unexpected %s, expecting %s or %ssyntax error, unexpected %s, expecting %s or %s or %ssyntax error, unexpected %s, expecting %s or %s or %s or %s[Ripper FATAL] unknown token %dencountered \r in middle of line, treated as a mere spaceidentifier %li is not valid to setmethod called for uninitialized objectRipper#parse is not multithread-safeshadowing outer local variable - %lilocal->used->pos != local->vars->posassigned but unused variable - %liinvalid Unicode codepoint (too large)Invalid escape character syntaxunexpected fraction part after numeric literalnumeric literal without digitscan't find string "%s" anywhere before EOFunterminated regexp meets end of fileunterminated string meets end of file`**' interpreted as argument prefix`*' interpreted as argument prefixembedded document meets end of fileinvalid character syntax; use ?\%c`&' interpreted as argument prefixno .<digit> floating literal anymore; put 0 before dotunterminated quoted string meets end of file`%s' is too big for a number variable, always nil`$%c' is not allowed as a global variable name`@' without identifiers is not allowed as an instance variable name`@@' without identifiers is not allowed as a class variable name`@%c' is not allowed as an instance variable name`@@%c' is not allowed as a class variable nameInvalid char `\x%02X' in expressionReducing stack by rule %d (line %lu):
BEGIN is permitted only at toplevelclass definition in method bodymodule definition in method bodyidentifier %s is not valid to getunterminated here document identifier����N�������g���}�������X���X���X���X���������������������������������������X���X���X���I���������������������������������������������0�0�0�0�0�0�0�0�����������������������(�����������������������������������������������������������`�p�9�������������������h������� �0�x�������������������������������������������������������������������������������������������������������������������������\���B��D���D���D���D���D���D���D���D���D���D���B��B��B��B��B��B��B��B��B��B��B������B��B��B��B��B��B��B��B��B��B��B��B��B��B��B��B��B��B��B��B��B��B��B��B��B��d���B��B��B��B��B������t��t���j���j���g���g��cg��@g��7g��t��t��g���f���j��<j��j���i���i���i���i���i��6k���N���N���N��`N��AN��N���O���O���O��fO��P��t���O��{P���M���M��PM��M���L���L��mL��JL��t��'L��L��t��i��Wi���h���h��t���h��t��t��t��Vh��Ah��h��t���V���D���D��"D���C���C���C��rC��SC��4C��C��t���B��t���B���B���B���B��GB��#B���A���A��KA��A���@��t���@��b@��?@���?���?��+@���?���=���=��|=��?=���>��s>��6>��>��Q?��!?��{?��=���<���<��.<��<���;��t���;���;��;��t��t��t��n;��];��t��t��>;��t��;��;���:��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��e���c��ad��d���d���c��_c��:c���b���b��ab��>b��b���a���a���a��{a��Sa��+a���`���`���`��x`��P`��(`��`���_���_���_��`_��8_��_���^���^���^��t^��P^��(^��^���]���]���]��|]��U]��L]��C]��t��:]��]���\���\��t��t��t��t��z\��A\���[���[���[��[���Z��yZ��gZ��VZ��MZ��DZ���y��ky��/y��y���x��t��t���x��qx��5x��t��t��t��t��t��t��t��t��t��t���w���w���w���w��}w��hw��[w��4w��w���v���v���v��{v��\v��'v���u���u���u���u��Lu��u���t��t���t��yt��Dt��t���s���s���s���s���s���s��ps��Ls��:s��1s��1:���9���9���9��n9��39���8���8���8��g8��Z8��&8���
���7���7���7��~7��u7��t��t��t��t��t��t��t��t��t��t��t��5��t���4���4��t��t���4��t���4��t��t��v4��W4��4���3���3���3���3��o3��L3��3���2���2��c2��E2��&2��2���1���1���1���1��s1���K���K���K��;K��K���J���J���J��zJ��TJ��,J���I��~I��t��nI���H���H��]H��UH��LH��&H��H���G��|G��hG��:G��G��G���F���F���F���F���F��mF��1F��F���E���E��=E��E��t��EU��t���T���T��t��T��t���S���S��gS��7S��"S���R���R���R��`R��t��t��R��t���Q���Q��t���Q��t���Q��t��t���Q��t���Q��t��t��nQ���f���f���e���e��ze��[e��8e��-O��
O���r���r���r���r��fr��Gr��r���q���q���q���q��oq��Pq��-q��q���p���p��Rp��t��9p��p���o���o���o���o��Ko��,o��
o���n��t���n��t��t��t��t���n��t��|n��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��t��zl��[l��1l��l��t��t���k���k���k���k���k��gk��Ck��PQ��1Q��Q���P���P���P���P��\V��5V��V���U���V���V���V���j��Om��wm���m���m���m��n��Un���S��rT��U��t���U��5��k5���5��6��E6��Z6���6���6��7��17��O7���d���d���W��t��t���W���W��JX��uX���X���X���X��Y��t��t��Y���Y��t��t���Y��Z��#Z��.Z��7Z��)W��t��HW��gW���W��X:��{:���:���:��t��t��t��t��t��t��t��t��t��t�� W���V��t��t��t��t��t��t��t��t��t��f1��t��t��f1���g��������&'��&'��&'�����&'��&'��&'��&'��p��J��p��p��p��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'�����&'��&'��&'��&'��&'��p��;�����T�����m������������"��#��������#��P$��j��'��'��'��'��'��'��'��'��'��'���$��9%��`!���%��^%��	��%��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'�����"���"��7"�����  ��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��&'��X ��� ��p�����gp��gp��x���gp��x���)p��)p��x���x���gp��)p��gp��Ho��gp��gp��1o���n���n���n���n���n���n���n���n���n��gp��gp��gp��gp��gp��gp��gp��x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���gp��x���x����m��)p��x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���x���gp������ч��ч��ч��ч��ч��ч��ч��$���ч��ч��ч��ч��ч��K���ч��ч��ч��ч��ч��ч��ч��ч��ч��ч��ч��ч��ч��ч��ч��ч��ч��ߧ��ч��ч��ч��ч��ч��ч��ч������l���8���ч��ч��ч��Ц���������8���8������8���8���8���8���8���������8���8�������8�������8���8���8���8������8���8���8���8���8���8���8���8���8���8���8���8���8���8���8���8���8���8���8���������8���8�������8�������8���8���8���8����������{���t���+�����	v��	v��	v��	v��	v��	v��	v��	v��	v��	v��	v��	v��	v��	v��	v��	v��	v��	v��֒��%s mixed within %s source�� !"#$'-./0123456789;<=>@ABDEX[\^_adefghijkl��������������������������������(*+,-./01S^�	

 !"#$%&'-./0123458DEFGHIJKLOPSTUVabwxyz{|}~����������(*':X[abcf���������-.01QR����������X6�X�� ����8/[������^����Q^�PQ^.X�����-.1��679�) ����,�����W\]()*+,%&����t�[a�tFGHIJKLMNOPQRUVuwxyz{|}~�W���������W]X����-.148UX���-.1�!"#$12348��/NW�VYY��8���tZ��^W��YY���XY����Q^�Y�6AB�����W�Y����W]YY����[�[�[X8,���W���?mop!p!pC!pp!p?pppp?pF���������`��a�����������������������������������������458�TU�458�T��
�\���W	8W���48�x2\W���O�V48T�����r��a��Q48�48RY�Y��Y�����TT��Y��Q��48�4846789:F[abc{~��689:;<=>?BCDEHIJKL#"�!����Ny��^�����Y��t,XYY��XZYY��
�^�
��\�	��48�48��\3�48�����45����^,����YYZYYQ���Y[�Z[a���:8�t�7��M^4�M�74�74$679'1���;=>@ADFGJLX����a���v�������Y��������^�^��������Z�\��Z�Y8�8���Y�Y���:�Y���6<HJ?DL=EJ;=%�yt��X��MM�����
��
����Z
^�	^���������\�Y�\�Y��a��q��7�7M�7�77&y��GJ8W@D=FJ=4��9�X��-.1������	
��4���:��=J==�����48M������X8W���������
�7�777n=J==�48�48����=�����Z7=�7B9bQLdIfjjBI3UEYQ\�A�7E]^_��`e�\��56XY\��
o5{\
�3���	A�m�W�56���NFWt�3�7�?L��?BD��%&�9�%�Q�
8WyXYW�\]^_���|}~��
p����pF`�
t����q�����t
�"$�&��*f������������������
��������+,�x����H�r�6789qr�|T���D����I�����G�G�6789�;<�S�R���������Y�F�kl�����G�y��Z�����5m�:�W%&klWt56W�}�WD��zeI8m����W�Fe������?56789:;<�������D�FG�I���F�WQ�S������tW]��bmtoe�gZ��klg��4:6789���fz�WF���Y��~�	����4�6789���Y�bc	tWW�������?���F��W���{Wi�0?���i�Y8�W�W����W�����������mWo�t�!W@A���[���mWop=N?3��?�����W����cV���;G��tW	���GS���{��`��YSuC�m�op[1jD��vwI94{g}88`t��./��p�=�?pY|ppF�G����[|`����S?UVY`�Ht�?�q8�6���T�����ABW�t`uY�W���|�����m�op�r���mopt�����Y�W��������tY�������?���C
�t����Y�)
��Wt�������B����t� ��t��?Pm?o%44������4��F��+,�4PZv\MmYoUVcTU�YXmYop3m�op��K��N�tyBtt��t�C|}~�)����XY(�\�4��

��ZY��yYaB�d	���y���M��Pqr8TU�tX�t8�
����4�6789:���67�9����F��ABn�;<=>��������[����abc]��_���4�6789����*e{3�~�7;`������������������[�Qa��������������]^_`�������������4�6789����������4F6789�������������UV������������[56789:;<����6��[��D��F��aI()*+,yz{|}~�������������W�����e��g������kl�����������i������01z����56�����������������BC�"�����������������������������������4��6789:��F4�6789����F����
�UV���������������������������[����������abc����5�������:����������{|}~�FG���{���~�����������������������������������������g������������a���������������l"4��6789:"�����������������F��������4"6789:=��?������������[GF��������bc��������S��UV������������[���������abc{���������������������������u�����������|{����~����������������������D�������IJKLMNOPQRSTUVWXYZ[\]^_`abc	e������������������������������������������������������������������������������������������=�?��������������������������������U������������������������������������������������������������������������|����������������������������������4�������������������������B������������������M����P������TU���X�3�����7���������������������FGHIJKLM��OP��Q����UV����������]^_`�����C������G���3������7��������S�wxyz{|}~����a����d������Q3������������qr��]^_�������������������������)��������������������4�����]��������������������������������M�����������TU����X���������������������������������������������������3�����������������������������������������������������������������������������������������������������������5�������:���������������������FG������������������������6�����:������������B������g����������5��������:����������W����������FG������������������hi��5�������:����������������������F��gI������������������������	
���
������������g������������������%&��()*+,��������������������������������������������������������������������5��������:��W�����������������F��	������������������nFGHIJKL���OP������UV����g���������������������������������=��?��	��������wxyz{|}~�����������U��������������������������������������������������������������=��?��������|�,��������������������������U������������=��?��FGHIJKLMNOPQR����UV������U�������������|��������������������������������u��wxyz{|}~�|����������������������������������������������������������������������������=��?��������������������������������������U����������������������������������)��������������������4���������������|�����������������������������M������������TU����X����������������)��������������������4��������������������������������������������M����������4TU����XFGHIJKL���OP�������UV����M����������TU���X��������������������������������wxyz{|}~������������������������������������������������������������������������4��������������������������������������������M����������TU���X����������������������������������������������������������������������45����8����������������������DEFGHIJKL����OP���STUV�������������������ab�������������������������������������wxyz{|}~���������������������������������������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl��������������	
����
�����������,��������������%&��()*+,����������FGHIJKLMNOPQR����UV������FGHIJKLMNOPQR����UVW��YZ����������`u��wxyz{|}~���n����q����tuvwxyz{|}~������������������������	
����
����������,��������������������%&��()*+,������FGHIJKLMNOPQR����UV����������FGHIJKLMNOPQR����UVW��YZ��������u`wxyz{|}~�������n����q����tuvwxyz{|}~�������������������������	
����
��������������������������������%&��()*+,������FGHIJKLMNOPQR����UV����������FGHIJKLMNOPQR����UVW��YZ��������u`wxyz{|}~�������n����q����tuvwxyz{|}~�������������������������	
����
��������������������������������%&��()*+,������FGHIJKLMNOPQR����UV����������FGHIJKLMNOPQR����UVW����Z����������`wxyz{|}~�������n����q������uvwxyz{|}~������������������������	
����
��������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n����q������uvwxyz{|}~������������������������	
����
����������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW��YZ����������`��������������������������n����q����tuvwxyz{|}~�������������������������	
����
����������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n������������u��wxyz{|}~�����������������������	
����
����������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n����q������uvwxyz{|}~�������������������������	
����
����������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n������������u��wxyz{|}~�����������������������	
����
������������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW����Z����������`��������������������������n������������u��wxyz{|}~������������������������	
��������������������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW��Y����������������������������������������n����������tu��wxyz{|}~�������������������������	
����������������������������������������������%&��()*+,��������������������������������������������������FGHIJKLMNOPQR����UVW��Y����������������������������������������n����������tu��wxyz{|}~������������������������	
���������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������
�������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������
�������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������
���������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl��������������������	
������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������������������������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������������������������������������ !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl��������������������������������������������������������������������
������������������ !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl��n������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��abcdefghijkl������������������������������������������ !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl����������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl���������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl���������������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl����������������������������������������������������������������	

������ !"#$%&'����������-./0123456789��������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�������������������	

������ !"#$%&'����������-./0123456789��������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~������������������	

������ !"#$%&'����������-./0123456��8����������������������DEFGHIJKL����OP����STUV��������������������ab����e����������������������������������wxyz{|}~������������������	

������ !"#$%&'����������-./012345����8����������������������DEFGHIJKL����OP����STUV��������������������ab����e����������������������������������wxyz{|}~������������������	

������ !"#$%&'����������-./012345����8����������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~������������������������������ !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl������������������������������������ !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl���������������������������������� !"#$����'����������-./0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��abcdefghijkl����������������������������������������� !"#$����'����������-.��0123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��abcdefghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��ab��defghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_����bcdefghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_��ab��defghijkl������������������������������������������� !"#$����'������������.����123456789:;<=>��@AB��DE������������������������������������X����[\��^_����b��defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��a����defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB��DE������������������������������������X����[\��^_��������defghijkl������������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��a����defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��a����defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������U����X����[\��^_��������defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl������������������������������������� !"#$����'������������.����123456789��;<=>��@AB������������������������������������������X����[\��^_��������defghijkl����������45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������ab����������������������������������������wxyz{|}~�����45����8���������������������DEFGHIJKL����OP����STUV��������������������abFGHIJKLMNOPQR����UV������wxyz{|}~��������������������������������u��wxyz{|}~��������������������������������w.����H�?G�G�19�?����4jxm������5�fm�3�4�fhh��hV�V[w����u�	M|��n�����19mN��-S�����
�/=����J�������zVjq����N=@�����������%�;<��z��Y�<��������d^�s~~�����_`abcB�<�'?)��]��G��D�b+���?E�uI�����w������ef�:}������>1��2�����4�����������>��������|����O������u��z�m�����ff��z1�2��VW8
��1�2�V�hhhh���������_�1�2���V�u@A��'�����
V�V������4��G���4����;<hh�������Q���\^J��B���������������PM������V����V����a�c����V����X��J���������������J���������V�����t����������7������������w���abc��&���G�g����������������������7���N��J����������m���7�fV��1�2����mV��'��������'��7��������������������N�������7�����������F������M�C������R����������N��N�N�������������GH���K���L������'��ST����V�V��w���
���;=@�G�CE���V���C7��e�2�E3�5�7IZ1o\�������z��|��qrxV�[ce�d��hah����������nLO�O�O�
�����h�������e��������V���V�V�W����������1����ST��'������L�L���1����VLL��LVJ(h�:���WX����������L�����MiA�ko����L!#$%��������_`abc�����LL)nL��Vp�����s���B��������}��V���e�VV�V{�����	�����������O��� ��!��
./qq)*+,�)�����"�0~����qHl��7V,�$����LfV���q��I#��VVx�vXL�LL�LVL�L�O���LLuVVLV�V����zsz�J������y��WXLLLLLLLL7�LL�L6789:\]^_`abc����LLLLq ��L��)))0)/0z(00qLL,`�q,q,L������J�j�����pLWXL����qLq^_`abcq)�)�)0)000�,,q,,�����/�)������0�����,�����LL�L���LLL�q����qLL���� !"#$%&'()*+�LLLLLLLL]_qLqLLb���L]_�qv{��q�rrL�L�LLLLqLqrquuJKLMNOPQSTWXSSv���q��qu�LZ[\]^_`abcL��SLL��w��LqLrLLL�ttqrqqqL�b9<>DF�rtrru�gq<>DFqSu�qqururqrSSSq�q�qq�ruu�u��StSSu��������t��������rtSt����r��������������utt��utS��J��������OPS�����WXt�������������rrZ[\]^_`abcruurt�tuSSJKLMNOPQRSTUVWXSrurrYZ[\]^_`abcS
�#ruruuttSSStuu�rStSrrrr�uttt�uSuuuJKLMNOP�STrWXStrSStSrr�rZ[\]^_`abc�urrurruu�StuSSStuuttStuuSSSS,-.�����������t����t��ttt�������������tttt��	

 !"#$%&'()*+,-./0123456789:;<=>?@����������������ABC���������������������������JKLMNOPQRSTUVWX�������������������������������������YZ[\]^_`abc��������������������������������������������������������������������JKLMNOPQRSTUVWX������������������Y�Z[\]^_`abc������������������������������������������JKLMNOPQRSTUVWX������������������Y�Z[\]^_`abc�������������������������������������������������������������JKLMNOPQRST����WX������������������������������������Z[\]^_`abc�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������O�����O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O���O�O�O�O������������������������������������������������������Y�����Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y��Y�Y�Y�Y�Y�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	������
��
� !"#$%&'()*+,-./0123456789:;<=>?@ABC�����	��
����
� !"#$%&'()*+,-./0123456789:;<=>?@ABC�����	��
����
� !"#$%&'()*+,-./0123456789:;<=>?@ABC�����	��
��
� !"#$%&'()*+,-./0123456789:;<=>?@�	����
ABC
����� !"#$%&'()*+,-./0123456789:;<=>?@�	
ABC
����� !"#$%&'()*+,-./012�456789:;<=>?@ABC�������	

� !"#$%&'()*+,-./0123456789:;<=>?@ABC�������	

� !"#$%&'()*+,-./0123456789:;<=>?@ABC��	����

 !"#$%&'()*+,-./0123456789:;<=>?@ABC�������	��

� !"#$%&'()*+,-./0123456789:;<=>?@�	
ABC
����� !"#$%&'()*+,-./0123456789:;<=>?@��	
ABC
����� !"#$%&'(�)*+,-./01��456���89�;<=>?@	
A�C
� !"#$%&'()*+,-./01��45689:;<=>?@	
ABC
12 !"#$%&'()*+,-./01��45689:;<=>?@	
ABC
� !"#$%&'()*+,-./0123456789:;<=>?@	
ABC
�� !"#$%&'()*+,-./0123456789:;<=>?@ABC�yz{|}~������������������������������������%&�(�������������������������������yz{|}~�������������������������������������������������������������������yz{|}~�������������������������������������������������������9�������������yz{|}~������������������������������������������������������9�������������yz{|}~������������������������������������������������������������������	�

������ !"#$%&'()*+,-./�45689:;<=>?@	

������ !"#$%&'()*+,-./�45689:;<=>?@	

	 !"#$%&'()*+,-./0123456789:;<=>?@	
ABC
� !"#$%&'(�)*+,-./01��456���89�;<=>?@	
A�C
 !"#$%&'()*+,-./0123456789:;<=>?@	
ABC
������ !"#$%&'(�)*+,-./01��456d��89�;<=>?@	
A�C
������ !"#$%&'(�)*+,-./01��456��89�;<=>?@	
A�C
������ !"#$%&'(�)*+,-./01��456��89�;<=>?@	
A�C
������ !"#$%&'(�)*+,-./01��456d�89�;<=>?@	
A�C
������ !"#$%&'(�)*+,-./01��456�89�;<=>?@	
A�C
� !"#$%&'()*+,-./01��45689:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��456�89:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��456689:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��45689:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��456d89:;<=>?@	
A�C
������ !"#$%&'()*+,-./01��45689:;<=>?@	
A�C
� !"#$%&'()*+,-./01��45689:;<=>?@	
A�C
 !"#$%&'()*+,-./01��45689:;<=>?@	
ABC
������ !"#$%&'()*+,-./F456G89:;<=>?@	

������ !"#$%&'()*+,-./p3456789:;<=>?@	

������ !"x$%&y()*+,-./z{�45689:;<=>?@	

������ !"x$%&y()*+,-./{�45689:;<=>?@	

������ !"#$%&'()*+,-./F45689:;<=>?@	

������ !"#$%&'()*+,-./��45689:;<=>?@	

������ !"#$%&'()*+,-./��45689:;<=>?@456�����������������������������Y5Z������������������������������h-i������������������������������k5l�������������������������������-��������������������������������5��������������������������������-��������������������������������5��������������������������������-��������������������������������-�������������������������������-������������������������������5������������������JKLMNOPQRSTUVWX�������������YZ[\]^_`abc�������������	�����������od����K���r�����K�V�����l)���>����������������������8����������7�����������%@�����b�������������������������������}���������������������
�&��5��m��>�V�����}�4�y
�g���#/��s����������'������b����6�����m�
�L���c������������"�����$����������\��������0#0#TVax l�S����"|�#0#�i�0�!��G�:�-�$�EF;�$$����$l%�%�Z��_������������������������������������������������������������������������������������������������������0#"�0#0#0#�0#�FF��8�`�v G���n�����V�$e�M[r���w�G����4�V�i�0����$�zR�F�R��1|L&��	������������W��3�97��������$$$$4$$���0���� �V�	� 0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#A
�j'�!��$$i�a����2JM~�$/�r�����7��0<]��������'���#�#��6���M0#0#���
(�Z(0#0#�������()�\�����c�0#�-
(Z(0#0*���>:�!� ��x ���MQ��RL&�(��(������������-��S�����X�0#�����������0#�_d���L&f���h�������	4���*��vv�??�����6p
�g����������R�n??�`!�`J)��)�!�Q�i����)��'�$s�����4�Fc0#��0#F�GH�
�Ux��������$Fy���F�����RL&RY���'�������������h�������0#�����������p�����������r���!�RL&�#0#��#�#�0���#�#�0���H"7�X�7�����~�X��t�$i�$�Y����\h�h��Z��0#����0#0#�0#0#�\�������t������0#h��o�����h�����������������&��������e�rf0#�RF0#�F�F����#�F�F��_���t�$�������"��?�i������i���F0#���������B����������������&h�S|o��h�������F�F,'������������&�������s�
�����r�h�����������|��:*���"�����]�������R���������
�$�)�'��Fh���24��������Q�*��*�X���
���������9�@�������
�����������DEF�:;��HIiJK��MNOPQ�R�|}����`/�T�����������UgukTlU�����UW���WXYZ[\]^_`�=�QRt	
��%��&���
r��Cab��80A��D��K��cdefghi&�j*kl(," $�����"m!nop��s��P���t���~����*+����-.������V
��vy2�3����>o[\]TUVYWXZOPQR*kk
]_��^�����
"vvT���������i	!,/76HLV4�8;i83������	
<�����������������������������������������sut�����������������������������xz|vwy{��
Fv	
vWGEkDv�Ckl�OP*-���'ikJkoo�oUkRS\]d5�������3��rstj���=2��XPM�v�5ijih	
noq	
H�������stSJRhg4�}Z'\	�v�k,k�vv�k12.��k%
jI!#(qp�q�)Vc�ZU�v�*�������������������u01vv:>v"+kNY.-�
*���������������k����������`bac�k`bacv`_'�v�@EnopC�v�L`a#�)��Yv`ak`aX+m���0� ���KkoS`bk`a0-,+.6?J@NMI*�)�/1248=vBvGL��������k��vWQ�A��?v^vv�vavc9b<?d&k`anorkk**��9�~[
�vk$�[^ulnkjk�"7QA%K'O�������k2|:;vvE||z�O�(�'�B�n%�&�@���v�vfd>�F�ITkM����/ks3C5>vPH2����9xy������$��g�67vADKkvqm�� &#(�D{||'�<v|F||�k��;�efm�:=���to�d&w����l�v�vvGr��!$�||||�dkk`a�eBNp�}���|~		���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	



  !"!#$%&!''''())))*++,,,,-----.......//001123224546666778888888888888889999::;<<==>??@@AABBCCDDEFGGHHIIJJKKLMMNONPPQQRRRRSSSTTTTUUUVVWWXXYZ[[[\\]]^������������ (06;:OOW_ju}��������������%12:BJRUabefrq��������������	#+4<EMV^ijt|��������������)7CLOW_ijklq|}��������������������������������������������������������������������������������� *6DRZbjrz����������������				&	.	6	6	?	I	O	[	\	`	h	r	|	}	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	



%
4
>
?
@
A
B
C
D
E
F
G
H
Q
P
l
l
u
y
t
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�

$$$/:CEB��������������
#)/5;AGMSYcinov{~����������������




#
(
-
1
5
9
=
A
I
M
Q
U
Y
]
a
e
i
o
p
v
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
%1?IHYXhqp��������������� #$,/@ABLVq��������
#,6?JQ\cry�������������	 !"%01<=>?BCDEFIJKLMNOR_iq{|������������������������	#-9:AJSfm{���������������+,/<GHK\`jtt��������������������	����������W��^������]�����������/�����������W��^������]�����������/��������-�����-66��-6B��-6A������(����)����*����+����,���0���������t���0Y������ZY�����4Y�����8Y����W8Y����W4Y���1Y����t����t�������t����t�������%����&���'X���������������������VT�����`������S�������������T�����T�����WT����WT���� ������������������[�Y�����[�Y����������a����a������a���a����a���a�����a��a�������[�Y�������������������-��.�����Z����4���W4����8���W8��X8��1��-��.�����Z����4���W4����8���W8��X8��1��4��8��X�������W���4��8��5�����������(�����*�������������y��z��{��G��H��I��O��P��w��K��x��L��J��U��V��|��}��~��a�������F��b��������D��E��S��T�����1��2��3��/��0��-��%������������.��������
��	��$����������"��'��&����������!�� ��
��#�����������������t����t�,���0Y���0Y�,������ZY�����4Y�����8Y����W4Y����W8Y���X8Y���1Y����Q����R����|����}����~�������������F����,F���D���E����y����z����{����G����w����K����x����L����H����I����J����O����P������������U����V����M����N�����.X�����u�Xv���������^���[����Q[��Q[����Y��^�����^�����������Q���Q����������Q�����Q������������c�������^�����a����������a����������������a���a�������������������/��1��5������������\�Y������\���Y��[�����W8��X8��^����_P�������Y���Y������.X���Y��'��Y��'�Y���������d�����������������������������������������������W	����W	���������������������2����������U��\�������������������4���������NV���4�����������������������������������
��\��
��\
��\�������������^�����������:��[�Y���������������a:����a:������a����a����a:��a:����a��a����A�DM��AM��DM��L��������=�G�J���=�G�J�=���=�G���=�G�=���=�J���=���=�J�=���=���G�J���G�J�=���G���G�=���J���J�=������^�����y�y��N��y��y��X��X��X����������4��9�������������������8����8��q�����
�������
������VT���VT���VT������������T������WT����WU������������W��� ��� �����Z��������������
�����
�����	��
����^��������^��Z���^��	���^��+��(��*����@������fp��gp��h C��i�p��ip�������!��!��k�p��kp�������j�p��jp��l�p��lp����?�����?�����!����!���� !��?����o"'����������m#$%&�n��6��7��9��1��e)�����7��6��9��ep��,���,��;��<��=��>��4��7��6��8��9��"��!��#��$��2��1��3��-��.��-��.��A��B��\����x3�\��\���8Y����58\��B�DM��BM��DM��L���6����=�H�J7��=�H�J�=7��=�H7��=�H�=7��=�J7��=�J�=7��=7��H�J7��H�J�=7��H7��H�=7��J7��J�=7��6����8��7��6��9��9��4��:��;��[�Y��<��=�<��:��>���>��>���>��@��A�@��?��B�?��F��b��C4��C��;t���;t���F��G�F��E��H�E��~��a��I4��I��{��c��K4���L��^��/�����O�Y��^��Q[��R��Q�R���Z���:���fr���b���4��8��5��4��8��5�����4��5��������W����]�������X���X�����������������\��]�����
#&(*.134:;@DHLOSW[_chjnry�����������������������������������

"')-/36:<@BDIMQUY\^`bgkoswz|~��������������������������������������������������������������	
!#%')+-/15;?ELRX^dimquy}����������������������������������
$&'*-0247;@BDHMPRTVXZ\^`bdfglmqrsy}���������������������������������	 "$&(*,.02468:<>@CEGIOQTVXZ^`dfkrv|��������������������������������	
!"(+06<?@FGMQRWX]`bghnou{}����������������������������������������������
"$')+-/13579;=?ACEGIKMOQSUV[^bcglortwx��������������������������������������
!$&().0359=@EHJLNPRTVXZ\^`acdfilmoqsuwz����{��~|�}�v�xtwu��z��y��QRDEFGUVLKHIJOPSTMN	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCWXYZ[\]^_`abcdefghijklmnopqrs�� !�%�&�*�+�-�/�<�=�>�?�^�|�~�:�,.�;�`
�,p$pppppp-ppppp
p	pp#pp
p'pppp!p&p%ppp+ppp ppp"ppp(pp*ppp)pp1p0p2p.p/ppO�������F�A?���C�D�78 ��������4P;@��5H3P=X:`6hKxLx{x}�J�[�]���G�H�(�)���������@E�����V�X�W<TB I���M�N�R�>�Y(Z0[8\�Q���`���U�S9(^0P8]@bHcPdXe`fhgphxi�j�;�\܃������,L���D̒��X���l�����<����L�������,����HL����̖���̗������\���8|���T��x<����������������$����\ܛ��t����L����|���������,����\������l,��������L����������� l���LL���`�����L�������|���	|���T	��l	̩���	<����	̬���	���
,���0
|���\
�����
�����
����
l����
,���|���<ܲ��p����l���������ܵ������$L���X<����|����̸���|���
����0
��L
���h
�����
<����
�����
���l���L̽��������\������Dl���p�����������������\�������������4L�������P���|,���zRx�$Ѐ���FJw�?:*3$"D�����\���}pl���C0�����na�A�D [
FAHYCA,����F�A�D ��
ABG,�d���\�]
Gj
FW
IfJ�(D���gW�A�D nDAQ��D����@c�\4`����AB�E�A �F(�I0W(F DEB8�đ��yB�E�D �A(�G0X
(D ABBD(�����A�G�G@X
AAA0ܒ��1E�D�G M
AAADGA4��KA�q
AP���A�V l ���lA�f
I^
B$�l���DA�I�D pDA(�����^F�D�A �HDB(�ȓ��gA�A�G f
AAG(���
A�A�M��
AAG4<��B�G�I �A(�N0V(F ABBtH���+HW�`���8E�r�����+HW�����+HW�����)H`�̕��}E�s0���$HW\$H����F�B�B �B(�A0�A8�D@t
8A0A(B BBBHT8F0A(B BBB�����@������F�L�H �A(�A0�DP�
0A(A BBBD$�@���?E�N�D eAAX���B����aK�k
J\(8��XQ�M�K cF�A�d����$x���D�o
Eb
FF�l���HH������B�E�D �D(�G0T
(A ABBH\(C ABB�����K�LI�Lp����B�B�E �B(�A0�H8�F�
8A0A(B BBBDl ���kQ8�x����F�B�D �A(�G0g
(D ABBD����fA�T4�p����A�A�D B(B0A8D@WAAH Ȣ��GDu B(B0I4����(H�IB�D�J �dNB t���zD�D WG�t��������T(�\���WB�D�A �LAB<������B�B�B �A(�A0��
(A BBBH$,���LA�D�J xCA0T8���XA�L�G `
AAJSCA�d���8A�G nA �����DA�R
ES
E(�����A�A�G l
CAG$�����LA�A�G @AA 	̩��A�T0<	Щ��GA�G�G `
AAODAADp	���B�A�A �L
ABEN
ABG�
FBA�	����6Dh
D�	����LD B
A8�	���B�B�D �A(�G0f
(D ABBA,
`���AAKH
d���AHs
Ad
����,H^
A �
����fHI
GD
E,�
�����F�H�D ��
ABA �
x���^A�q
FI
E,�
����tB�I�D �N
ABH8(���PB�B�A �A(�D0�
(D ABBE0d���WA�D�G p
CAHIDA\�D����K�B�B �B(�D0�A8�D@�8A0A(B BBBJ������A@������(�ԯ���A�A�G }
AAH4$H����A�A�G p
AAED
AAJ(\����ZB�A�D �v
ABH��aA�j
E,�H����B�D�A ��
ABK$����KA�A�G |DA(�0����A�C�G �
AAFH(
����#B�E�B �B(�D0�C8�Dp�
8A0A(B BBBC(t
�����A�D�D zID8�
����B�B�D �C(�G@�
(A ABBH<�
���,B�B�B �D(�C0�A
(C BBBI,����A�C
F���E�D�{
BLL`��B�E�B �B(�A0�A8�G��
8A0A(B BBBE������]�F�E�B �B(�A0�A8�G�q�F�H�A��
8A0A(B BBBJh1�V�R�B�P�`�B�B�B�P�^�H�A�F�N�x�H�A�F�N�� �H�A�H�N�(hT����E�H�D �
AAC(�����E�H�D |ID�|���QHDGNU��R�R��"���X�i���X�ip�`]�Y�Sw�������������Ȭ֬�����'�5�B�O�\�j�x�����������ŭЭ���� �.�;�G�T�b�n�y�����������Ϯݮ�����'�;�G�L�R�X�b�h�o�x��������������ɯүۯ����������
�����$�*�/�4�9�J�S�X�\�d�h�l�p�x�|���������������ŰѰް������'�2�:�>�B�F�J�N�R�V�Z�^�b�f�j�n�z�~�����������������������������Y�DZ˱ر���ϱܱ���|������D��+�;���#�>�C�N�Y�c�m�w�����������������ݪ��Ե����IJҲβݲ���������	����"�'�,�1�6�;�@�E�J�O�T�X�\�`�d�h�m�q������������������óɳ"�ͭϳ׳���������'�7�C�s�2�L�P�T�X�\�g��s�w�����������/�������������ʴҴ-�ݴ�����������
���(�3�2�C�]�S�W�[�_�c�o�¥h�g�s�l�{���c���"���������
���Dzεص���������%�-�9�B�H�T�c�l�y�����������������ǶѶܶ��������
����$/=G�hD
4���"��"���o`�
��"8
0:8�"	���o����o�o����ol��"�D�D�D�D�D�DEE E0E@EPE`EpE�E�E�E�E�E�E�E�EFF F0F@FPF`FpF�F�F�F�F�F�F�F�FGG G0G@GPG`GpG�G�G�G�G�G�G�G�GHH H0H@HPH`HpH�H�H�H�H�H�H�H�HII I0I@IPI`IpI�I�I�I�I�I�I�I�IJJ J0J@JPJ`JpJ�J�J�J�J�J�J�J�JKK K0K@KPK`KGA$3a1hDA�GA$3p1067S1�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYS}SGA+GLIBCXX_ASSERTIONSripper.so-2.2.10-35.el8.x86_64.debugx~��7zXZ�ִF!t/����]?�E�h=��ڊ�2N��!X�g�+��僣(���w�AXc��3*���SL�a��a�6�1q��CK^,f�[�t��%1a7��>Ew�Q�c
=�D�rB� ��H���)���r��F��Ő�Jx�����Hh<�T]�K�,0�_�մ���9o��P���'�f�aʕ����Qf�uT0^Z�'�d�$�[���ҼXȔ�̢���$14������qO^%�j|�tfO��b�˯N��Pݍ#��D��A9�jV��W�Q��%��׈�����ط /�9/jph;�J(]rh/��:[�C��	��^zl"�8�[����ْ�j��5��=�S$5D$0<!+�v��C��3%9�g�!����G`ժ>�
T�l8E�x��hR����#?+�Љޞ���c�h�hv��1*Q
."F 62��DQ�Ԗq����F��Ӳ�~��$l�Ȼ�H!q�2�I\�D� K�j6.D:N+�H�2K�:�E7�Y�O���R�*v<a�K���>^}�7����/u��g�q9΢t��0�i��k�ْ-V��Z����*�>�NYn|�6�	Z�i���H���!�~���vŞ!��AZ�DSb�C��B^�m�b)���l�*�2�-6gS6���"��Xz�Z�Sc)
ʣ��q&�$�I�F@`��aГe�r�K�ƕ��=�@��VC?X��a�\�
��/TFt�Uԯ�^�CІ��h'U��E�R^��l7���z/FG��<��L
vOa��Gl]��G�W��C�W�S��6�Ev\��z�-�:�C�S�[ᄶ�f�dٻp�_<p��8ƚ������(vw�ӹ���珡�Gz���#�Y�s�X�W�� d��ڧ�EV*V"��ko�o��[�Ej�W�%\��r�A�Z��C��
G	׼�9m������6&��[��~��*�5$Ed��;#@��3v`!\ɣ�>�gG���уHՌ�%��ݙ�L��֞0RI1��7�?VA#�*�M;���0����x�0J��Q��L�`|2�W3��a	hC����'X�q���1��A��ϒKhUv`���됿B3՞N�a�L�\��!��=jπ��!�I���.���1zD3Z(�5=����� �����*R�A�o|%�ڞ0����v����?�}oʊ!5�x���Bͽ\�!���q����L�����e���5(N�
~��Bq-����-�v��N��@���������d��m`R�O ůեjߪ#�qa����|y�����E�O�LV���Pg�\d-�(ܟ�&��w�2f�J?�WQ��'�o��%�Kd�\��4��?�*3rn�E��3�q�����ꖷ�ܞX�53�Rn�K%q�	Dz{��tIds�v�U]i��L�kMp3T�?�+�	 O�wN��<F��Գ9��ܓNM]�3��3�,�J�b��_�
�t$���t�{��d�1^���v��Ƨ��N����/�0!읈RX��e�ϳȎ�l�	\
�:§_�I(�Z�lz
�o��^pgP���L�/{�J5�ӮJ�N�͡<*ӻ��ǙcƂ���c�x��/*?i�z)q$t��jE&����-d0�J+a�L���*Խ���ʯw�\�/N��ځ��q�>Ly�m�Y��m)DHpxXi#��v���Z���O!e�ר8�Rށ�cV��t\D�9	�WYwh�G�)��/�ǵ+��߱)�؁�QǠE��zaw�:-#����J��2L�#�K*�XV.���d}�m�1%W��RX�a`�:?ul�+t
�L[�^Aپ(�4|��3-�M���3�xM�J���Rt଩=~oK�|�#����O�����0�X�v���
Hի\֦�e/�`�0h��%o}aa���j�mqȷ;;<����+���,���|�
�L�b���\
���T�Iw�/�GS�:w����Pz������;���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``<(��p0�8���o���E���o��pT88�"^B0:0:8
hhDhDc�D�D�npKpK�w@R@R�L}4�4�
�`�`�T! ����������������� ���"�����"�����"��� ���"�� ���"��H��"�����"��x ���b��H
�,��+lib64/ruby/2.2.0/x86_64-linux/thread.so000075500000040200150402105740013006 0ustar00ELF>�@@9@8	@�,�, p-p- p- �� �-�- �-   888$$�,�,�,  S�td�,�,�,  P�td�&�&�&Q�tdR�tdp-p- p- ��GNU�^T����s܅«�	f(�@ @(*BE���|�qX��O+��� �y�h<y��2����& l�oN�YU�_, I�F"�1 1 	1 �� �__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_thread_wakeup_aliverb_ary_clearrb_ary_shiftrb_ary_deleterb_thread_currentrb_thread_sleep_deadly_allow_spurious_wakeuprb_funcallvrb_obj_classrb_eTypeErrorrb_raiserb_uint2bigrb_ary_pushrb_thread_sleep_deadlyrb_ensurerb_num2ulongrb_eThreadErrorrb_error_arity__stack_chk_failrb_scan_argsrb_gc_writebarrier_incrementalrb_gc_writebarrier_generationalrb_num2longrb_eArgErrorrb_ary_tmp_newInit_threadrb_struct_alloc_noinitrb_cObjectrb_cThreadrb_struct_define_without_accessor_underrb_define_methodrb_undef_methodrb_define_aliasrb_providerb_intern2rb_const_defined_atrb_const_setlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	ii
&p- 0x- ��- �- �/ �/ �/ �/ �/ �/ �/ �/ #�/ $�/ %�/ &0  0 (0 00 80 @0 	H0 
P0 X0 `0 
h0 p0 x0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0  �0 !�0 "�0 &�0 '��H��H�! H��t��H����52! �%3! ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!�������%] D���%U D���%M D���%E D���%= D���%5 D���%- D���%% D���% D���% D���%
 D���% D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%} DH�=y H�r H9�tH� H��t	�����H�=I H�5B H)�H��H��H��?H�H�tH� H��t��fD�����= u+UH�=� H��tH�=n �I����d����� ]������w������H�`tH��(H��H�H��H��ff.��ATL�gUH��S1���H����H9�},L��H�<�H�����H�E�� u�H;]}
H�E ���[H��]A\���ff.��SH���f.�H���8���H�����uH���(���H��u�[���H��H�wH�?�����H���f���SH������H��[H��������H������H���f���H�OH�5� H�?�����@��PXH�����H�5�H��H� H�81�����fDH�GH�`uH�GHc�H��uH�����t�����u�H��H�� H��H�5�H�81����f�H������H��� tH��H��H�����H�@H���ff.�@��H�����H��������?H9�wH�DH���f.�H��H����@H��1��%���H��� tH��H��H�����fDH�@H���ff.�@��H�����H��H�H�����@��H�����H��������?H9�wH�DH���f.�H��H���T���@��USH��H������H�߾H���n���H�8�� t+H����H��������?H�H9�wH��H�D?[]�fDH�x��f�H��[]���D��S1�H������H������H��[�@��S1�H����H�����H�߾����H�����H��[�ff.�@��S1�H�����H���i���H��[�@UH��1�SH��H�����H��H������H�߾�u���H�����H��H��[]����f.���S1�H���A���H���Y���H��[�@��AVAUATUSH�� dH�%(H�D$1��G�����I��H�ӽ��u1�H�F����@�žH��I������H�$�
���H�D$�<fDH�I9�rd����H�t$H�<$�2���H�=� L��1�H�����*���H���R���I��H�C(H�`uH�CH��H�8@��u����H��I9�s�I�uH�����H�L$dH3%(u4H�� []A\A]A^�H�\ H�5�H�81��������d����O���ff.�@��AUI��1�ATA��H��USH��H��8dH�%(H�D$(1����H��L�D$L��H��H��D��1�����H�$H�D$H�D$H�D$����H��H���
���H���H��H�t$H�=�������H�T$(dH3%(uH��8H��[]A\A]����ff.�@ATU���SH��H�� dH�%(H�D$1�I������H�$�=���H�D$�0fD��t^H�t$H�<$�n���L��1�H�"���H�=[����f���H�����H��t�1�H�����H������H�T$dH3%(u!H�� []A\�H�� H�5mH�81��v���������ATUS����H�Ӹu1�H���������H������H��H������I��H�C(H�`tH�8@��t$H�I9�r)H��[]A\�H�CH��H�8@��u��R���H��I9�s�H�߾����H�����H��[]A\ú1��!������AVAUATI���UH��S�MM��I�M���mH�UH�E(��`��H�8@���H�H�����E1�I9�v+H�E(H��uH�EH��H�8@���H�M��I)�I�^�H�E(H��uH�EH��L� A��tNM���6�H���x���H�C�H��~H��H�����H���W���H��u�[L��]A\A]A^�DI�����t�L��H�������u�H�E��`H��`u�I�$��`H��`t�L��H���#����p���fDH�EH��H�8@����������H�UH�ǁ�`���@L�����I��������H�UH�ǁ�`���H�b H�5	H�81�������w�u1�H���������H�����P�1��=���ff.�f���USH���H�����H��H�CH�`uH�CH�(@��u	H�����uH��H��[]�f�H��H���E��u�H���`H��`u�H�E��`H��`t�H��H������ff.���USH���H���9�H��H�CH�`uH�CH�(@��u	H�����u{��	�H��H�CH�`uH�CH��H�(@��u	H�����uH��H��[]�DH��H�����u�H���`H��`u�H�E��`H��`t�H��H�����H��H���M���r���H���`H��`�b���H�E��`H��`�Q���H��H������A���@��ATUH����SH���1H��H�H����� �I��H�CH�`uH�CL� A��u
I�����������I��H�CH�`uH�CH��L� A��u
I���������I��H�C H�`uH�CH��L� A��tCH���`u+H�CH��H�(@��u
H������H��[]A\�DH�C(��f.�I�����t�L��H�����H�u�H�ƒ�`H��`u�I�$��`H��`t�L��H�����y���@H���@�����L��H��������H���`H��`����I�$��`H��`����L��H���9����@L��H���e������H���`H��`����I�$��`H��`�����L��H��������@H��H��������H���`H��`����H�E��`H��`����H��H�������H�M H�5�H�81���ff.����AVL�5� E1�1�AUL�-� L�H�5�ATL��UH�-� SI�UH�}��H��L�
�L��jH�}L��H�5�I�UI��1��|�H�$L�
�L��H��H��L��PH��H��H�5rPH�}1��;�H�� H��H�� H���l1�H�K���L��H�q H�5Y�E�H�5XL����1�H���L��H�5M������H���L��H�5?��1�H�j���L��H�5,���1�H���L��H�5���1�H�J���H��H�5���H�5�H����1�H�3�H��H�5����H���H��H�5��y������H����H��H�5��^�1�H�%�H��H�5��F�1�H���H��H�5��.�1�H��H��H�5~��1�H�]�H��H�5m��H�DH�5fH�����H�.H�5TH�����H�H�5AH����H�H�5/H����H�H�5�H�����H����H��H�5��u�1�H���H��H�5��]��H�Q���H��H�5��B������H���H��H�5y�'������H�k���H��H�5c��1�H���H��H�5V���1�H��H��H�5K���H�"H�5DH����H�H�52H����H��H�5H����H��H�5
H���t�H�=
����H�=A���I�}H��I���������H�=4��I�}H��I�������tl�
H�=��I�}H��H������t0[]A\A]A^���H�=��g�H�� �w���I�}H��H��[]A\A]A^���I�}H��L�������@I�}L��L���y��D�����H��H���can't dump %li%+li not initializedqueue full11queue emptyqueue size must be positiveConditionVariablequeSizedQueuesizequeue_waiterssleepinitializeinitialize_copymarshal_dumpwaitsignalbroadcastpushpopempty?clearlengthnum_waitingenq<<deqshiftmaxmax=thread.rb;!D�,$�T��l���D��t������������($�Dt�X��x���4��T������$$�@d�\��x�������4���P��d����T�����@��l4����zRx�$��FJw�?:*3$"D���\@�$(p\�TB�E�D �~DB���0A�n���HU���E�L���HN����*EAD4��NsH�1DY
KHh4�<H]
KG�T�1DV
NH�t�HP�|�<H]
KG0���kE�A�G }
FAGLAA��E�V0��1E�kL�E�V$h�=A�F�G iDA����E�V@��1F�B�B �A(�A0�DP�
0A(A BBBA8��F�G�G �A(�G`�
(D ABBA0@���B�A�H �G@�
 AABA8t(��F�A�A �Y
ABDw
ABA<����F�B�B �G(�D0��
(D BBBF��3g(8�E�A�L o
DAJ(0��E�A�L c
DAF,\p�DF�A�G ��
ABF\���F�N�W �D(�H0�Q8P@@HRPO0p
(A BBBHk
(A BBBFGNU�0��- ������0�
\%p- x- ���o`��
]0 ���
P	���op
���o�o
���o�- �� 0@P`p�������� 0@P`p���GA$3a1�i%GA$3p1067@\%GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY@dGA+GLIBCXX_ASSERTIONSthread.so-2.2.10-35.el8.x86_64.debug��"�7zXZ�ִF!t/���[]?�E�h=��ڊ�2N���� ��ˣ ��'�'�	��A�A"��:u��"r^����}ݴ��6˷1�q_ֹ��{��S�5��b�h��H��hB�<� ���7�<��{����CI��܂���5�,�6��5�[�N��Z�����g�4��`�?����`].^g4�&�f�u�_���|lM�V=
o�mv< �[2%]��t8i�$\�:b'�����~3�
�*͙�D|G?�Z��-1{��!�y������e=��	Q�̰�Q�d�={�]
�]|(�)S�c�����>Y\9�D�H�+��w��V͡a�C�u�d�9g�z��#}W�kp�8h�"O\��x\��!��@�z�@���|�X������ƽ�1�}�BS�#�e~L�Azԗb��*�o��"��9H������k�$?=���]�,	�,��BDӣ�g����2����m<����Vd��M���DjB�T��tcB~�vG&���s��%h���0��E�Le[i*���	�ޖ�w�TV"�“�i�2�v���ex�J��:Q�l.w��J>��8���
�ID�7HaQ(�h���Sv3�'ML� ��R��h[���'���l�Xi�`d�G�X���YR��n}Pr�@_-O~(��sM�N�3l�2nnc#S���>���M�8�&L�Z
��K>���o�LeR;�>�'6S���_��Z��g��R���-p�FiX<�a���a���ZVÓo�5 Pc������0z��I�$�2�����7v�V
�'v�o`
��G%�=��_�/4���W,�&k1�gD͗�:O�0	�W������|Y�4�g�F�<a�ݢI�3�#ϓX�X���nı���^�;�1�ч5�Xܧ#u�D=��O�6���4u��+
�^�H�c��2�@��Q�[�C*b;/>T4E�JX@�Ǡ~cʞz��W��	 B|+�3E&ݴ�. du�8<x����Q"k��-��Q��$���o���~Fx��|��P�$b��2Ј5�$@��7��AQ������t�12-K�*|�Pd0�У�����N�1��?*��%��y���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(�� 0��]8���o

XE���op
p
0T�
�
P^B���h��c���n���w���}\%\%
�2i%i%!��&�&��'�'���,�, �p- p-�x- x-��- �-��- �- ��/ �/X�0 0�1 1�1`1H
H3,t3�8+lib64/ruby/2.2.0/x86_64-linux/json/ext/parser.so000075500000070320150402105740014612 0ustar00ELF>�@�i@8	@�V�V 0]0] 0] x �]�] �]   888$$�V�V�V  S�td�V�V�V  P�td`R`R`R��Q�tdR�td0]0] 0] ��GNU�2Yk��O*e�%!r0��9�@ �9<BE���|ŷ|!�qX�� M����2�@�%g��Ut�x=-b����� �Nq���0UA�]

`��, �F"�I�����a �@c ��@��a __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeruby_xfreerb_gc_mark_mayberb_str_buf_newrb_str_internrb_str_catrb_utf8_encodingrb_enc_associaterb_ary_new_caparb_ary_pushrb_hash_foreachrb_ary_entryrb_funcall__stack_chk_failruby_xrealloc2ruby_xmalloc2rb_check_typeddatarb_scan_argsrb_convert_typerb_id2symrb_hash_arefrb_string_valuerb_enc_getrb_ascii8bit_encodingrb_str_conv_encrb_check_typerb_fix2intrb_str_duprb_eTypeErrorrb_raiserb_eArgErrorruby_xmallocrb_data_typed_object_allocrb_cstr2inumrb_cstr_to_dblrb_float_newmemcpyrb_enc_raiserb_class_new_instancerb_ary_newrb_hash_newrb_hash_asetInit_parserrb_requirerb_define_modulerb_define_module_underrb_cObjectrb_define_class_underrb_path2classrb_define_alloc_funcrb_define_methodrb_const_getrb_enc_findrb_intern2libruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.14GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�����ii
�0] 08] �@] @] `] �Hh] p] �x] ��_ �_ �_ �_ �_ 1�_ 2�_ 3`  ` (` 0` 8` @` 	H` 
P` X` `` 
h` p` x` �` �` �` �` �` �` �` �` �` �` �` �` �` �` �`  �` !a "a #a $a % a &(a '0a (8a )@a *Ha +Pa ,Xa -`a .ha /pa 0xa 3�a 4�a 5�a 6�a 7�a 8��H��H��L H��t��H����5�L �%�L ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1���������%�I D���%�I D���%�I D���%�I D���%�I D���%�I D���%}I D���%uI D���%mI D���%eI D���%]I D���%UI D���%MI D���%EI D���%=I D���%5I D���%-I D���%%I D���%I D���%I D���%
I D���%I D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%�H D���%}H D���%uH D���%mH D���%eH D���%]H D���%UH D���%MH D���%EH D���%=H D���%5H D���%-H D���%%H DH�=!H H�H H9�tH�6F H��t	�����H�=�G H�5�G H)�H��H��H��?H�H�tH�
F H��t��fD�����=�G u+UH�=�E H��tH�=.C �	����d�����G ]������w�����H�7H���xM�OH��H�4
H	�@��x8�OH��H�
H	Ȅ�x$�OH���
H��H��H	ȄҺ��HH��f�����f.���H�G`H�@H��h�ff.�@��USH��H��H�o`H�}H��t�Q���H���I���H��H��[]�;���ff.���SH��H�?����H�{ ����H�{@���H�{H���H�{X[���ff.�AWI��AVI��AUATUSH��1�H��(H�T$dH�%(H�D$1����H�T$I�L�{I9���A�?"tr1�KP��tL�cXI������(�S8��u9��I�w�HD�H�L$dH3%(��H��([]A\A]A^A_�fD�C4��t�I�>�I���I��@H��M��M�eL9���A�E<"t4<\uM�eL9��%A�E<u��<�M���f�I�wL9���I���fDM9��SM��A�8\M�xu�L9���A�@<f���<r��X<t�x<u�I�E�I9��sI�xL�D$�]���L�D$I��%�H=��dM�xI�E�I9��;A�x\�H�5�*��A�xu��I�x����L�D$L��I��
%�H��E��M�x��H��H��I	�I	�L�ȺH�t$H�����D$L��H����?�Ȁ�D$L��A��?H��A�ɀ��?D�L$�Ȁ�D$�q�<\��<b��<"��L��M9������L��H)�H���N���I�.H���a����I�>M��H��������@�H�5�(<nu�H������I�wI���D���@�H�5�(��f.��H�5j(��f��H�5^(�f�L��H��L�D$H)����L�D$A�@<f�����H�5+(�z���f.��H�5(�_�����H�5�'�G���������I�6I��H�����H�5�
L��L���&����L�����H����������I�H�5�C H�Ǻ1����I��t���@I��M���C���M�xI��w&D�L$�H�t$���f������fDI�����I�����vI����������D$?�H�t$�U���DI�MH9���A�E<@����0<	��I�MH9��mA�E<@����0<	��I�MH9��oA�E<@����0<	wxM�eL9��AA�E<@����0<	��M��1��6���fDL��A��?�H��A�ɀH�t$��D�L$�D$���fD<F�M�����a<�B���I�����D<F�R�����a<�G�����<F�[�����a<�P�����<F�Z�����a<�O����X����I�׽���L�ȺH�t$H�����D$L��A��?H��A�ɀ��?D�L$�Ȁ�D$����1��x���I�׽�1���I�׽�$���I�׽����I�׽�
���I�׽����H����ATI��UH��SH�tWH�OI�T$H��H)�H9�v:H���H�H��H)�H9�r�H9�vI�|$�H�����I�\$I�D$[]A\�@H�?�����I�$I�D$I�L$�ff.���AWAVI��H�5; AUA��H��ATI��USH��(dH�%(H�D$1�����H�8�'H�l$D��H��L��L�D$H��H�J$1��(�H�|$H����H�
0$H�1$���H�D$H����H�=�? ����H�|$�H�5�? I��H��1���H������d�C(dH�=�? ���H�|$�H�5P? I��H��1����H�������C0H�=I? �\���H�|$�H�5? I��H��1���H��������C8H�=? ����H�|$�H�5�> I��H��1��a�H������=�C<H�=�> ���H�|$�H�5�> I��H��1��$�H��������CPH�=�> ��H�|$�H�5\> I��H��1����H������H�|$L����H�C H�=;> �^�H�|$�H�5> I��H��1���H�������H�C@H�=�= � �H�|$�H�5�= I��H��1��b�H�������H�CHH�=�= ���H�|$�H�5�= I��H��1��$�H�������H�CXH���8�C<����H�l$H�E�C,�� uhH����H�CH�EH�CL��H�+H�L$dH3%(�AH��([]A\A]A^A_�@H�|$L����I��H�������C(�{���H�EH�CH�E�f��C(dH�5
= 1�1��C0H�=@= �CP�D�H�C@H��H�C H�CH�X�C<��� ���L�t$I��� �lM�nI�nH����L���R�I���*�I9��y��1�L��H���o�H��H�l$����f�H�5a< H�=�< 1�1���H�C ����H�|$L����H�C@���f.�H�|$L���c�H�����HD�H�CX�K���H�|$L���;�H�CH��f�H�|$L���#�H����������CP�����H�|$L����H����������C<����H�|$L�����H����������C8�D����H�|$L����H����������C0�����H��M�n��H�����DH�Ǿ�[�L����C(�f���H����A�}u?A�}uA�}��A�}u&���H�5B; L��H�����H���S����A�}u9A�}uA�}tjA�}u$��H�5�: L��H����H������DL��� �H���x�H��H���]�����c�H�5�: L��H���A�H�������D�H�5�: L��H���"�H������E�H�7 H�5H�81���H�&7 H�5*H�81���H�=: H�5�1��p�PXH�5H��H��6 H�81��R�f���H��H�5A4 �l�H�8t�x<H�H��H�Ѓ�����ff.�@��H��H�54 �,�H�8H��t	H�����v���fD��AUATU�SH��H��4t&I��H�559 I��H��1�1�L���k�H�����u1�H����[]A\A]�@1�L�����H�5�8 �H��H��1��-�H�����t�L��L��������UH���hSH�����H�xH��H��H�H��H�@`1�H)���h���H�� ��f�H��H��@H��2 H�@H�H�C`H��[]�A��AWAVAUATUSH��H9�tUI���I��H��H�ՍA�<YwWH�@��Hc�H�>��H�FH9�t�~auH�FH9�t�~N��fDE1�H��L��[]A\A]A^A_���0��	w�IcE<H��H)�H��H��	H9����	H�5�H���������A�M0���<H�}7 L�c	I��@H�FH9��{����~n�q���H�FH9��d����~f�Z���H�FH9��M����~i�C���H�FH9��6����~n�,���H�FH9������~i����H�FH9������~t�����H�FH9����~y����W0����H��6 L�cI������H�FH9������E1�~u�����H�FH9�������~l�����H�FH9�������~l�����I�L�f�s����H�FH9��[���E1�~r�Q���H�FH9��D����~u�:���H�FH9��-������~e����I�L�f����@�G,L��H���A�m,I��H�����I������L��H���%�I��H����������G,L��H���A�m,I��H��������fDH�FH9������E1�~a�y���H�FH9��l����~l�b���H�FH9��U����~s�K���H�FH9��>����~e�4���I�L�f�$���f�I�]�<-�1<0��H��L�`L9�t�@<E�9<e�1<.�yI�]�<-�:<0�
��1I��<v���A�$��0<	w	I��L9�u�I�m`M��H�EI)����H���.�H�EH�U�
�I�E`H�EH�x�[�I���I�LD��F����G0����H�&4 L�cI��%���f.���1I��<�1���I��L9��$���A�$<EtD<et@<.����0<	v�����@L�cL9����C<0����1<v�����I�D$H9�����A�T$��+t��-uI�D$H9������A�T$��0��	�����H��H9������E�������e�w�����.����0��	v�I��M�}`L��H)�I�GH�D$�r���L�����I�GI�W��I�E`I�GH�x����I�I�������L��M�eL9���I������f�H��L�`L9��
����@��0<	��������@L�cL9�������C<0����1<���������I�D$H9��y���A�T$��0��	�g�����L�`L9����@<E�s���<e�k���<.����0<	����L��L�`L9�u�����H��L����H�}L��H}H�����L}I�m`�B���L�����L������I���q���H��L���Z�H�T$I�H��I��H�D$IGM�}`�\�����,�3������<,�)������I�ع�H�5Y1 H�=�1 H��1����I�ع���L�C�����ff.�@AWI��AVAUATI��UH��SH��H��(H�WHdH�%(H�D$1��G(��t�O,9��mH���^1�1��m�I�$L9����;[��H�L�sM9���K�A�<n����Hc�H�>���0��	�H�D$L�-�H�D$H�L$L��L��H��H�D$����H��H����H�}HH�L$I�<$��H�5|/ �1��8�H�C�H�XI9�t)�P��,t_����
t	�� ��H��H�XI9�u�H�5�/ I�ع�1�H�=0 H���N�fD��
�(���+L��L�sM9���S�B�<nw���IcD�L�>��D��/tK��]u.H�t$dH34%(H�C��H��([]A\A]A^A_����	���F����M����H�XI9��9����@<*tS</t�(���f.��;
�	���H��I9�u�����f�H��I9����<*t�</����@H��I9������;*u���@H���P������
�������L������fD������fDL����L�sM9����C<*tC</��I��M9���A�>
u��I��M9���A�<*t�</t��I��M9�tpA�>*u����L�sM9�tX�C<*t?</u`I��M9�t@A�>
u�����@I��M9�t(A�<*t�</�����I��M9�tA�>*u���L�������0��	����L�����H�=d- ��H�5�1����G��AWI��AVAUI��ATI��UH��SH��8H�W@dH�%(H�D$(1��G(H�D$��t�O,9��3H���1�1���I�$I9�t;A�}{u4I�]H9�t+A�E<"��L<
t< �pI��I�]H9�u�@1�H�|$(dH3<%(H���H��8[]A\A]A^A_��</��<}� A�GP��tpI�@I�O I�<$��H�5�+ �1��b�H��tDH�5�+ H�=>, H���1��?�H�5�+ 1�H��H��1��)�H�������DH���A�����S����fDI�]H9�����A�E<*tZ</�
���H��H9������D�;
������H��H9�u�����DH��H9������<*t�</�����@H��H9�������;*u���@��	<��������H�D$ L�t$H�D$L�-
L��H��H��L��A�G4�a�A�G4H���P���H��H�PH9��?����H�� tO~D��/����:�H�rH9������J�A�<n�>��IcD�L�>�����
��H��떃�0��	����fDH�L$H��L��H�D$ ��H��H�������I�@L�D$ H�L$I�<$�H�5�) �1��O��H�S�H�ZH9��n����B<,t6��<
t< ��H��H�ZH9�u��C���<
t��	<�1����H��H��H9�� ����B< t�~�<"�����</u�H�ZH9�������B<*�!</t�����;
t�H��H9�u�����D��
�����������H�����fD</��<}������	<�9�������H�PH9��s����@<*tK</t�b���f��:
�p���H��H9�u��I���f�H��H9��3����<*t�</�=���@H��H9������:*u���@��	����������H��H9�����<*t�</�����@H��H9������;*u���@I�$H�5-( H��1���n��I�$�M���DH�rH9�������B<*tC</t�r���f��>
�����H��H9�u��Y���H��H9��L����<*t�</�����DH��H9��+����>*u���H�=�' ��H�51����DH������i���H�ZH9�����B<*tS</t����f.��;
�s���H��H9�u����f�H��H9�������<*t�</�@���@H��H9�������;*u���@L��H�������������UH�5d! SH��H��dH�%(H�D$1��w��H�8�]�@<H�53! H��H�$��u\�O��H�8�:H�hH�XH�H9�t*�U��/���R��
t	�� �H��H9�u�I�ع��fD����H�8��H�XH�hH�
�H�H9����3�V�n����Hc�H�>���0@��	wif�H��H��H��H����H����H�����
t��	��w3H��H�XH9����P�� t�/u�H�XH9�t�@<*td</t5H��I��.H�5�% H�=�% H��	1����f��;
t�H��H9�u���H��H9�t��<*t�</�u����H��H9�t��;*u��Ѐ�[����{���@,H��H��H��H������H�p�H��uQ����H9�H�������H�|$dH3<%(H�$�yH��[]�D��
t��	����H��H�VH9�t��N�� t�/u�H�VH9������F<*tP</��H��H9������:
t���H��H9�u�����H��H9������<*t�</t��H��H9�������:*u���@H��H9��n����:
u�H��H��H9������Q���fDH�UH9��p����M��*tZ��/tH���Z���D�:
�?H��H9�u��>���f�H��H�jH9��%����R��*t�/�
���H��H��H9������:*u���@��	�����H�����@�@,H��H��H��H��� �H�p�H���w����!���fD��H9��'����f���fDH�SH9��V����s@��*t9@��/����H���7���H��H�ZH9��*����R��*t�/�����H��f�H��H9������:*u���@@��
�|���@������������H������k�H�< H�5�H�81������N��ff.���H��H�=�����H�=��0��H�5�H��H�/" �*��H�� H�5�H��H��1��H�=H��! �>��H�=~H��! �+��H�=�! H�5��H��! ���H�=�! �����H���H�5Q���H�=�! 1�H�����H�5@����H�=�! 1�H���H�5*����H�=k! 1�H�5H�c����H�5�  H���NH�=G! ���H�5s  H�! H����H�=$! ���H�5H  H��  H���hH�=! �l��H��  H�  H���%H��  H�� H����H��  H�� H����H�h  H�� H����H�=� H�A  �KH�� H���H�  H�e H����H�� H�F H����H�� H�' H���vH�� H� H���?H�� H�� H���H�� H�� H����H�R H�� H����H�3 H�� H���cH�4 H�m H���,H� H�N H����H�� H�/ H����H�� H� H����H�� ���H�=�H�u ���H�=�H�Z ���H�=�H�? ���H�=�H�$ ���H� H����H�=����H��H�% ����H�=Y���H�h �\����H�=6����H�P �%����H�=���H�8 ����H�=����H�  ����H�=����H� ����H�=��_��H�� �I����H�=k�?��H�� �����H�=?���H�� �����H�=���H�� ����H�=�����H�� �m����H�=����H�x �6����	H�=����H�` ����H�=`���H�H �����H�=<�_��H�0 ����H�=�?��H� �c����	H�=����H� �,����H�=����H�� ����H�=�����H�� ����
H�=W���H��H�� �x����H�=����H��H�� �5�����H��H���

	"\already initialized instance11to_hashHashopts needs to be like a hashuninitialized instance-Infinity%u: unexpected token at '%s'nesting of %d is too deepjson/commonJSONExtJSON::ParserErrorJSON::NestingErrorinitializeparsesourcequirks_mode?NaNMinusInfinityjson_creatable?json_createcreate_idcreate_additionschrmax_nestingallow_nansymbolize_namesquirks_modeobject_classarray_classmatchmatch_stringkey?deep_const_get[]=[]<<utf-16beutf-16leutf-32beutf-32leJSON/ParserA JSON text must at least contain two octets! ���������������������������������������p�������������������@�����������h��������0������������������������������������� ����������� ��8�������������������������� ����� ������������� ��0��������� �������� ������ ������� �6�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�6�$�u�$�$�$�$�$�$�$�$�$�$�u�$���$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�$�u�$�$�$�$�u�$�$�$�$�$�$�$�$�$�$�$�$�u�$�$�$�$�$�$�$�$�$�$�u�$�$�$�$�$�$�$�u�$�$�$�$�$�u�$�$�$�$�$�$�u�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������T��������������������T���T������������T���T��������������������������T������T��������������T������������T���������T�������T��������T�������������������������������������������������	�������

��������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������;�����������P��p��(���P���lP����������4���P���l �������0������8P�����P��zRx�$���0FJw�?:*3$"D�� \���fp4��$�@��5E�A�G ^DA�X��5E�kH�|��XB�E�E �B(�A0�A8�I`~
8A0A(B BBBG,����B�D�D �V
ABEHD����F�B�L �H(�D0�A8�D`
8A0A(B BBBE�T��AAK�X��1H]
G�|��*HX
E8�����F�B�A �F(�D0p
(C ABBE$ ���E�I�D fAAHH<��AB�B�B �B(�A0�A8�DPa
8D0A(B BBBDH�@���B�E�B �B(�D0�D8�G`�
8A0A(B BBBHH����=B�E�B �E(�D0�D8�Dp�
8A0A(B BBBI(,���E�H�G0$
AAFXL�HT
DGNU�0�@] �H��Tcs~���
�F0] 8] ���o`P�
` �`
P	���o����o�oV���o�] @P`p�������� 0@P`p�������� 0@P`p�������� 0@PGA$3a1�FGA$3p1067@�FGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY@�GA+GLIBCXX_ASSERTIONSparser.so-2.2.10-35.el8.x86_64.debugs,���7zXZ�ִF!t/���]?�E�h=��ڊ�2N���O> ��Fr�ة��!�3;�zA"��:t���Br^���r��,��M�`��L�|�n*匔n{�b�KH�V
��	i6��3ٴXQ��/�L�a��� ��7bs� �I�C ���W
��X��\��(��C�R�#�-e�� 7.AL�⠂��8�3��ۉ_d��S�44?M����}<�[*��A�(M�F�J���4}�j�	�%�|wm�*����h����@6z��BӨw�;�X��O�߀����H��J��^�E�|���-���8�<ʁ�
��#�F��Z��@��r�$��B�7`�#��]z4�Λ$l�;f�E1u���:r�v���eއ�fQ1~�6�q�]��!f�Kھ^��(nT���p܃��t���m��;��J���,\�:����.���O��,9R'�,�ڗ��P*k���3���k7 (�&�xC��z��_J�2�
��x1i�16��e��S���u��_D���7wqDɅm˙�e}2�]�0���@�K�i�,N�|�	(�ќy\�~ N�`�]q�98���B
(�����эP�k�wԁzPm�2'q�U���|�L�1�Nm���p��U�Sa��A���e�G'��B˩�.e��~#ޓ6�,�ߣD_+׍���ß�y#g�F����u�P�	�����CizYvr�N�[�Oi��mc�����YB3w�O���Y��E7�)U##e"H:�R�;��B=E��C�M��4l��C� �!��"Y>X�i���Yf˪#�i"$_�?g��`I#�a�D�v��buZ<�/��*�K��w�y�l1aݳ9��U+��ܶ.Q��$�/ї�L+J�M�\BfZٔ7 H4��2I�-lS���l�Q,$swb|���~�fƧ�i\�'$t`QwO���&ɻ�|%*:Cx�kW���@�G��3@D�X��\D~6Ŗ��������L�Z��p�� �T��*2�ݍ�9�Mo�y�57�̃�PR�tp��ă��Y���!)He��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0PP8���oVVzE���o��@T

P^B``�hc000n`` w��0-}�F�F
��F�F� �`R`R��SSt��V�V �0] 0]�8] 8]�@] @]h ��] �] ��_ �_8�` `���a �a��@c`�aH
�c,dD`h+lib64/ruby/2.2.0/x86_64-linux/json/ext/generator.so000075500000111360150402105740015304 0ustar00ELF> @��@8	@�s�s �|�| �| � H}H} H}   888$$`s`s`s  S�td`s`s`s  P�td8e8e8e,,Q�tdR�td�|�| �| 00GNUov��(Ш�D�*�_^��F�@$�FHIBE���|�qX�t�)��Sn ��P���������U�Hs`���0~ ���L"�`������="4����o1�[�l, w�F"��$ay		L�� _؃ S�� A�Qm
__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_funcallrb_check_typeddataruby_xfreeruby_xmallocruby_xrealloc2ruby_xmalloc2memcpyrb_str_newrb_utf8_encodingrb_enc_associaterb_check_typerb_str_new_staticrb_hash_arefrb_hash_newrb_obj_classrb_class_namerb_hash_asetrb_str_duprb_str_catrb_str_concatrb_str_internrb_sym2idrb_ivar_setrb_ivar_getrb_ary_entryrb_string_value_cstrrb_iv_getrb_str_substrrb_id2symrb_intern2__stack_chk_failrb_check_convert_typerb_convert_typerb_scan_argsruby_xcallocrb_data_typed_object_allocrb_string_value_ptrrb_path2classrb_raiserb_eArgErrorrb_float_valuerb_cHashrb_cArrayrb_cStringrb_cFixnumrb_cBignumrb_cFloatrb_respond_torb_cFalseClassrb_cTrueClassrb_cNilClassrb_cSymbol__ctype_b_locrb_obj_is_kind_ofrb_const_getInit_generatorrb_requirerb_define_modulerb_define_module_underrb_cObjectrb_define_class_underrb_define_alloc_funcrb_define_singleton_methodrb_define_methodrb_define_aliasrb_cRegexplibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.3GLIBC_2.2.5GLIBC_2.14GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Bii
dui	n���zii
��| ��| ��| �| } �b}  !} �h p x � 
� � � � � &� (� *� /� 0� :� ;� =� E�  � (� 0� 8� @� 	H� 
P� X� `� h� p� x� �� �� �� �� �� �� �� �� �� Ȁ Ѐ  ؀ !� "� #� $�� %� '� )� +� , � -(� .0� 18� 2@� 3H� 4P� 5X� 6`� 7h� 8p� 9x� <�� =�� >�� ?�� @�� A�� B�� C�� D��H��H�Ai H��t��H����5�i �%�i ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4��������%=f D���%5f D���%-f D���%%f D���%f D���%f D���%
f D���%f D���%�e D���%�e D���%�e D���%�e D���%�e D���%�e D���%�e D���%�e D���%�e D���%�e D���%�e D���%�e D���%�e D���%�e D���%�e D���%�e D���%}e D���%ue D���%me D���%ee D���%]e D���%Ue D���%Me D���%Ee D���%=e D���%5e D���%-e D���%%e D���%e D���%e D���%
e D���%e D���%�d D���%�d D���%�d D���%�d D���%�d D���%�d D���%�d D���%�d D���%�d D���%�d D���%�d D���%�d D���%�d DH�=�d H��d H9�tH�.b H��t	�����H�=id H�5bd H)�H��H��H��?H�H�tH�Ub H��t��fD�����=%d u+UH�=:b H��tH�=._ ����d�����c ]������w����H�7H��thv$H��tNH��u8�R�1��€��?v2�f�H��u��B�<A�������	Ѓ��1��DH�W@�B��H�1���?w�H���J�1����w�����tKv���t$���u/���v��f����u���w��D���w��f.�1����o����W��������`����fD��H�?��t
H�GH�H�t	H�WH�DH� t	H�W(H�DH�0t	H�W8H�DH�@t	H�WHH�DH�WPH��tHBH�WXH��tHBH�W`H��tHB�ff.�@��H��H�
:d �1�H�5�c �/���ff.�@��H��H�5q] �L���H���H��H�D�ff.���H��H�5A] ����H�@xH��H�D�ff.���SH��H�5] ���H������@r�[�f.���H��H�5�\ ����xrH�H��H�Ѓ��f.���H��H�5�\ ����xqH�H��H�Ѓ��f.���H��H�5�\ �\����xpH�H��H�Ѓ��f.���H��H�5Q\ �,���H�xhH�H��H�Ѓ��f���H��H�5!\ ���H�@hH��H�D�ff.�SH��H�H��t���H��[���D��SH��H�?H��t���H�{H��t���H�{ H��t����H�{0H��t�q���H�{@H��t�c���H�{PH��t���H�{XH��t�w���H�{`H��t�i���H��[�0���SH��H���HDؿ �v���f�@H�@H�[ÐATI��UH��SH�tWH�OI�T$H��H)�H9�v:H���H�H��H)�H9�r�H9�vI�|$�H���;���I�\$I�D$[]A\�@H�?��;���I�$I�D$I�L$�ff.�H��t3UH��SH��H��H������H��H��H������H��[]�D1�H���f�USH��H��H�wH����H��H���?����:���H��H���o���H��H��[]�D��USH��H�5Z H�����H�߾H�H���4���H��~H���H���[]�ff.����USH��H�5�Y H�����H�߾H�H�����H�]xH���[]�@��USH��H�5�Y H���W���H�߾H�����H��H�H�EhH��[]�fD��ATUH��H�5?Y S�����H��I���i���H�uH��% u;H��I�|$@H���H��u5H��t����I�D$@[�]A\�f.�H�]I�|$@H��t�H��t���H�E% H�}H��tH�}H���
���I�\$HI�D$@�[]A\�fD��ATUH��H�5X S�Y����H��I�����H�uH��% u;H��I�|$0H���H��u5H��t�
���I�D$0[�]A\�f.�H�]I�|$0H��t�H��t����H�E% H�}H��tH�}H���J���I�\$8I�D$0�[]A\�fD��ATUH��H�5�W S����H��I�����H�uH��% u;H��I�|$ H���H��u5H��t�M���I�D$ I�D$([�]A\ÐH�]I�|$ H��t�H��t����H�E% H�}H��tH�}H�����I�\$(I�D$ �[]A\�fD��ATUH��H�5�V S���H��I���)���H�uH��% u;H��I�|$H���H��u5H��t��I�D$I�D$[�]A\ÐH�]I�|$H��t�H��t�X�H�E% H�}H��tH�}H������I�\$I�D$�[]A\�fD��ATUH��H�5?V S��H��I���i�H�uH��% u;H��I�<$H���H��u5H��t���I�$I�D$[�]A\�H�]I�<$H��t�H��t��H�E% H�}H��tH�}H������I�\$I�$�[]A\����SH��H����H�=:���H��H�����H�=s7H����H�5T[ H��[H���1������ATUH��S�0���H��H����H���}�H�5[ H�=�[ 1�I��1���L��H��H����H�=�6�D�H�5�Z �H��H��1��[�H�=[9H����H��H��H����H��[]A\Ð��AU1�I��1�ATUSH��H��H��H�5�Z �	�H��H���.�H�5�8H���
�H�5#Z �H��I��H��1����H�����uN�H�==6��H��H����H�����H���*�L��H��H�����H���[]A\A]�@H�5�Y H��M��1�L��H�ߺ[]A\A]�R�f���U1�1�SH��H��H��H�5Z �0�H�5iY �H��H��H��1���H�����t$H�5MY H��H��1�H�ߺ[]���D�H�=_5��H��H����H����H���L�H��H��H��[]��ff.���AWAVAUI��ATUSH��(dH�%(H�D$1����H�5�R L��H����H�5�W H��H����1�L��1�E1��B�I��H�D$H�$��H����I9���L�=�X L��L����1�H��L��1���H�H�D$�� �NH����H�<$H�T$I����L��H����H�T$H�|$�I��H����H�����L��H��H����I�$�� �\���I�D$I9��^���H�sH�;�B�H�=#X I�����L��H��H�����H�sH�{��H�=�W I����L��H��H����H�s(H�{ ���H�=�W I����L��H��H����H�s8H�{0���H�=�W I���e�L��H��H���W�H�sHH�{@��H�=[W I���;�L��H��H���-��{pH�=*W M���I��H��A��H��L�����{qH�=�V M����I��H��A��H��L������{rH�=�V M����I��H��A��H��L����L�chH�=�V ��O�d$H��L��H����L�cxH�=7V ��O�d$H��L��H���o�H���H�=	V �\�H�\H��H��H���I�H��H�L$dH3%(uFH��([]A\A]A^A_��H�P�����H�=	2��H��H��T �����K�ff.���AVAUI��ATI��H�5�O US��H�
�1�L��H��1H����H��H����H�=�U ��H��H�����I��H�������H�=�U �e�H��H�����I��H������;H�=lU �?�H��H����I��H�������H�=6U ��H��H���~�I��H������oH�=U ���H��H���X�I��H������	H�=�T ���H�Ehd�H��H�5�T I��H��1��)�H�������H�=FT ��H�Ex�H��H�5JT I��H��1����H������1H�=T �U�H�5T �H��I��H��1���H�������H�=.T �!�H��H����H�=T H������Ep��H��H���e�H�=�S H������Eq���H��H���D�H�����L���Er[]A\A]A^�fD�H�����M�4$A�� �jM�t$I�|$I�v���L�uH�E�	���f.�L��H�����I��H������)����H��I��f�M������L��������L��H����I��H������&H�Ex���f�L��H���e�I��H�������H�Eh�<���f��H�����M�4$A�� �bM�t$I�|$I�v���L�u8H�E0���f��H����M�4$A�� �M�t$I�|$I�v��L�uHH�E@�S���f��H���c�M�4$A�� ��M�t$I�|$I�v�_�L�u(H�E ���f��H���#�M�4$A�� tNM�t$I�|$I�v�#�L�uH�E���fDH�
�-H��-�L����H������DI��I�|$A��I�v�DI��I�|$A��I�v�V���f.�I��I�|$A��I�v���f.�I��I�|$A��I�v���f.�I��I�|$A��I�v���f.��H��I�� �L�eh�Z�����H��I���L�ex�v������ATI��H�5�J U��H��SH��H��dH�%(H�D$1��]�L��H���H�@hdH��,Hǀ�1���H�4$H��tH�����H�T$dH3%(H��u	H��[]A\������S��H������H��H��I [H���6�fDATI��H��UH��SH����H�{H��H{L����Hk[]A\�ff.�@ATH�5�I US��H���H���1�H�kXI��H����H�EH���<�H�EH�U�,H�EH�k`H����H�E�H���	�H�EH�U�:H�sH�EH��t	H�SH��ufH�kPH��toH�E�H�����H�EH�U�,H�s@H�EH��t	H�SHH��u
L��[]A\�DH�{P����L��[]A\��H�{`���H�kPH��u���4�H��H�CP����H��H�CX���f����H��H�C`����f.���H��*f������N��f������N�у�f��������N�F����DI���������SH��.H�� dH�%(H�D$1�H��I��H��?L��I��I1�I)��f�L��L��L�II��H��H��H�I)�B�I��A�A�H��u�H��yH�AA�-L��I��L��L9�v#f���0H��H��@�q�P�H9�w�M)�uH�D$dH3%(uH�� [�L��L���=�������fDUH��SH��(H�t$H�\$H��dH�%(H�D$1��U�H�L$H��� u0H��H�\$��H�L$H��u-H�D$dH3%(u*H��([]�H�QH�\$H�L$H��t�H��H���������UH��SH��H��H�>��H�H��uH��[]�DH�uH��H�D$�g���H�D$H��[]�ff.�1�H�=�(��f���H��H�5!F ��H�x@H��tH�pHH���v�fDH���f.���H��H�5�E ��H�x0H��tH�p8H���6�fDH���w������H��H�5�E �|�H�x H��tH�p(H����fDH���7������H��H�5aE �<�H�xH��tH�pH����fDH��������H��H�5!E ��H�8H��tH�pH���w��H������AWAVAUATI��UH���SH��H��(dH�%(H�D$1���H�CH�SL��H�
}K H�5nK �"1��H�C�1��}H�(���� ��L�xH�h�\uL��D$f�t$L9��BA�H�
g+I��f���A��L�H9��#L�5�*L�d$L�-�*f.�D��L��A�pHc��������A����E��Kc�L�>��D�� ��L�`H�h�\uE1�L�-&E1��D$f�L$H����@K�<<�<�	�P����=H�5*��Hc�H�>��f�A�L�5�%L��L)���L��L��H���F���M�OM��L9�w�L��L)�tK�4H��H���#����H�����H�CH�S�"H�CH�D$dH3%(�nH��([]A\A]A^A_��L��A�L�5%L)��k����K�4H��L�D$���L�D$�I���DA�L�5�$�&���fDA�L�5�$����fDA�L�5�$���fD�00A�L�t$f�T$f�Ѓ�f��A�D��A�T�D$�T$���@H��L�`���,���1�A�I��H�H��H��A�I��H�H��A�I��H�H��H��A�I��H�H��A�I��H�Ic�H�
w(H+�H������H��(��H=��3H�B�H��_��H��"��H��\�a�H�5�#H���M���DL9�����A�H�
D(I��f���A��L�H9������H�=v#���H�5�&H��1�����D1������1�����f�1�����f�1��
���f�A��I��H������H��L�x�������<"tt<\tX��H�
�'f�4����I�I9��M����2�������f.�H�=�"����H�5
&H��1��#��A�L�5�"���fDA�L�5k"���fD�H��H�T$��H�CH�sH�T$�H�C���@�H�5$"H������o����H�B�H����IcD�L�>����H�5�!H���|����/�����H�5�!H���\���������H�5�!H���<��������H�5x!H������������H�5^!H��������H����wJH����L��H��H��H�D$H��
f��(���a���H�D$��f��f��$��L��H���B����U���H�=� ���H�5�$H��1��p������1�����@��ATI��USH9��$H��H�5B> ���H��H�53> H�����H��H�����oE�oHM�oP U �oX0]0�o`@e@�ohPmP�op`u`�oxp}pH���H���H�sH�;��H�sH�{H�E�
�H�s(H�{ H�E��H�s8H�{0H�E ���H�{@H�sHH�E0���H�{PH�E@H��tH�wH������H�EPH�{XH��tH�wH�����H�EXH�{`H��tH�wH�����H�E`L��[]A\�H��? H�5�H�81�����ATI��UH��H��SH��H�����E�$$1�1�H�5GC H���D$�i��E��u"�D$f(�fT
�$f.
�$wf.�zBH��H��H��[]A\�o���H��H�D$��H�D$H�=C �EH�5
H��1��`��H��H�D$�S�H�D$H�=�B �HH�5�H��1��1���AVI��AUI��ATI��UH�-�> SH�������/�؃����9H���?���VH�CH9E��H��> H9�HH�A> H9�XH���nH����H����H�L> H9��H�$> H9��H��= H9��H�5�A H���l������H�5�A H��1�1������H��H���q��������H������5���H��tuH���&���H��= H�H9E� ���H��L��[L��]L��A\A]A^��H��= H����f�H�1= H������H�Q= H�����H�)= H�����H�q= H�����H��L��[L��]L��A\A]A^��I�uqH��L��[]A\A]A^�Y���f��H�5�[L��]A\A]A^�4�@[L��]�A\H�5�A]A^��@�H�5��f�H��L��[]H�A\A]A^���f.�H�59@ 1�H��1��]��H��[L��]A\A]A^��f.�I�upH��L��[]A\A]A^���f�H�5�? H��L��1������H��H�����H���f�AWAVAUI��H��ATUH��SH��XH�B@L�zH�T$H�D$8H�BHH�t$ H�D$@H�H�RhH�D$H�APH�xH�@H�|$HH�yxH�D$H�wH�|$0H�t$(H�qxH��t	H9����H�����H�EH�U�[H�EH�|$8tH�|$@�}�D$01�D�`�QDH����H9�}RH�|$t���H�|$��H��L��H�����H�T$H�t$ H��H������I�E�� u�I�EH9�|�H�D$H�T$0H�|$8H�PxtOH�|$@��L�l$M��t9H�D$0H��~/A��1��
D��A9�tM��t�L��L��H������A9�u�H�����H�EH�U�]H�EH��X[]A\A]A^A_�H�|$(�,���E1���A��E9�����M��t�H�t$L��H���v���@H�T$H�t$HH���^�����H�T$@H�t$8H���G�L�l$M���#����W���H�T$@H�t$8H���"��l���H�����H�D$H�=�= H�5�H�PxH�T$H��H�Px1�����f.�AWAVI��AUATUH��SH��hH�B0M�nxH�L$8H�ZH�D$ H�B8H�t$H�D$@H�H�RhH�$I�FXH�HH�@H�D$0I�F`H�L$XH�HH�@H�D$(I�EH�L$PH�D$HI�FxH��t	H9��q�H��E1�A�����H�EH�UH�5�; H�|$8�{1�1�H�E���L�t$I�����H����I9���H�|$0t	E����H�|$ tH�|$@��H�<$�0L��L������H�5< 1�H��I��1��7���H��H�D$����H�D$H�T$H��H�t$H���;���H�|$(�H�|$8L��I������H�T$H�t$H��H���	���I��� �5���I�GI9��8���L�t$H�|$ M�nxM�e�M�fxtLH�|$@�L�4$M��t7M��~2A��E1��
@A��E9�tH��t�H��L��H��A�����E9�u�H���~��H�EH�U�}H�EH��h[]A\A]A^A_�fDH�|$H����E1���A��E9������H��t�H�4$H��H���_���DH�T$(H�t$PH���F������H�T$@H�t$ H���.��V���f�H�T$0H�t$XH�����"���H�T$@H�t$ H����L�4$M�������������I�FxH�=M: H�5�H�P�1�I�Vx���ff.�@ATI��USH�����H��H�5�3 H���_��H��L��H��H���>���[H��]A\���f���AUATUSH��H�����H�5C3 H��I������xr��I�$�� ��I�D$I�\$H��~gH�l�D�+H9�sG���H��f�H��D�+H9�t'A��DP u�H9�w��H��H9�t�U�DP u�A��[t&A��{u�}}t H�=39 H�5�1����D�}]u�H��L��[]A\A]�@H��I�\$���P������UH��SH��H��H��H���%��H��tH��H��[]�fDH��4 H��H�0���H��u)H�=�8 H��t<H�5�7 H��1�1�[]���fDH�5I8 H��H��1�H��[�]�q���H�=�8 H�5:8 ���H��H�38 륐��SH��H��dH�%(H�D$1�H������H�4$H�=-8 ����H�5q1 H��H�$�E��H�<$���H�5
H��H���U�H������H�T$dH3%(uH��[����f���SH�^H��dH�%(H�D$1�H���H��H�4$H�=�7 ���H�5�0 H��H�$���H�<$���H�5�H��H�����H���M��H�T$dH3%(uH��[����f���SH��H��dH�%(H�D$1�H�����H�4$H�=
7 ���H�5Q0 H��H�$�%��H�<$���H�5�H��H���5�H�����H�T$dH3%(uH��[����f���ATI��H�:USH��dH�%(H�D$1�H���"��H�4$H�=w6 �b���H�5�/ H��H�$���H�<$H�����H�sqL��H��H����H���)��H�\$dH3%(u	H��[]A\�����ff.���ATI��H��USH��dH�%(H�D$1�H�����H�4$H�=�5 ����H�5/ H��H�$����H�<$H���S�H�spL��H��H�����H�����H�\$dH3%(u	H��[]A\��K��ff.���USH��H��H�H��dH�%(H�D$1�H������H�4$H�=65 �!���H�5z. H��H�$�N��H�<$��H��H��H���W�H������H�T$dH3%(uH��[]������ATI��H�jUSH��dH�%(H�D$1�H���R��H�4$H�=�4 ���H�5�- H��H�$���H�<$H���#�H�4$H��L��H��H���n�H���V��H�T$dH3%(u	H��[]A\�������ATI��H��USH��dH�%(H�D$1�H�����H�4$H�=4 ��H�5K- H��H�$���H�<$H����H�4$H��L��H��H���N���H�����H�T$dH3%(u	H��[]A\��x�����ATI��U��H��S����H��H�����H��L��[��]A\�*���f.���ATI��U��H��1�SH��H�53 dH�%(H�D$1����H��L���H��H��1�����H�����H�4$H�=�2 ���H��H��H�$���H�T$dH3%(u	H��[]A\����ff.���UH��H�KSH��dH�%(H�D$1�H���4��H�4$H�=�2 �t���H�5�+ H��H�$���H�<$��H�5!2 1�H��H��1��B��H��H���w�H���/��H�T$dH3%(uH��[]�������UH�=LSH���z��H�=���H�5;H��H��1 ���H�5)H�����H�=�
H��1 ���H�=H��1 ���H�=�1 H�5�H�v1 H�W- H����H�5��H��H�~1 ���H�=r1 �H�V���H�5�
�j��H�=S1 �����H����H�5�
�;��H�=41 �H��H�5�
���H�=1 1�H�,�H�5�
���H�=�0 �H����H�5x
����H�=�0 1�H���H�5d
����H�=�0 �H����H�5K
���H�=�0 1�H�6�H�56
���H�=�0 �H����H�5$
�k��H�=d0 1�H���H�5
�O��H�=H0 �H����H�5
�0��H�=)0 1�H�@�H�5����H�=
0 �H���H�5����H�=�/ 1�H���H�5�����H�=�/ �H����H�5����H�=�/ 1�H����H�5����H�=�/ 1�H�N��H�5����H�={/ 1�H���H�5��f��H�=_/ 1�H����H�5y�J��H�=C/ 1�H����H�5j�.��H�='/ �H�K��H�5W���H�=/ 1�H����H�5H����H�=�. �H�`��H�5/����H�=�. 1�H����H�5���H�=�. �H����H�5���H�=�. �H���H�5	�z��H�=s. H��H�5��P��H�=Y. 1�H����H�5�	�D��H�==. H��	H�5�	���H�=#. �H����H�5����H�=. �H����H�5�����H�=�- �H���H�5s����H�=�- H�5i���H�5nH��H��- �t�������H�8���H�5SH�����H�=z- H�5	�F�������H�*���H�5%H���[��H�=L- H�5��������H�\���H�5�
H���-��H�=- H�5�
���������H�����H�5�
H�����H�=�, H�5�
��������H� ���H�5�
H������H�=�, H�5�
��������H�����H�5m
H�����H�=�, H�5y
�`���H�$��H�5h
H��H�c, �~��H�=W, �����H�����H�5
�O��H�=8, �����H�����H�5)
�0��H�=, 1�H�@��H�5
���H�=�+ H�5
�����H����H�5
H��H��+ ����H�=�+ H�5�	��������H���H�5{	H�����H�=�+ H�5�	�n�������H���H�5M	H�����H�=t+ H�5�	�@��H�5+	�����H���H���U��H�5V* H����H�>' H�8�v��H�/* H���VH��* H�* H���H��* H��) H����H��* H��) H����H��* H��) H���zH�c* H��) H���CH�D* H�u) H���H�%* H�V) H����H�* H�7) H����H��) H�) H���gH��) H��( H���0H��) H��( H����H��) H��( H����H�+) H��( H����H�) H�}( H���TH�=) H�^( H���H�) H�?( H����H��( H� ( H����H��( H�( H���xH�=�' H��( �CH��' H���H��( H��' H����H�=�' H�m( ��H�x' H���wH�H( H�Y' H���@�H�=�H�
( 踿��H�)' H��H����H�=����H��H��H��1�贿��H�=�& H��( ��H��& H��tsH��( H��& H��t@H�Q( H�N( H��[]���	H�=��o���H��H�]' �����H�=�O���H�X& �fD�H�=��/���H�@& �p����H�=�����H�(& �D����H�=����H��H�
& ����H�=m����H��% ����H�=H���H��% �l����H�="���H��% �<����H�=��o���H��% �����H�=��O���H��% �����H�=��/���H��% ����H�=�����H�h% �k����H�=a���H�P% �4����	H�=7�Ͽ��H�8% ����H�=诿��H� % �����H�=�菿��H�% ����H�=��o���H��$ �X����H�=��O���H��$ �!����H�=[�/���H��$ ����
H�=e����H��$ ����	H�=;���H��$ �|����H�=��Ͼ��H�x$ �E����H�={课��H�`$ �����	H�=F菾��H�H$ �����H�=�o���H�0$ ����H�=��O���H�$ �i����H�=��/���H�$ �2����H�=W����H��# ����H�=����H��# �����H�=�Ͻ��H��# �����H��H���C*@instance_variablesto_hashHashto_h010123456789abcdef\n\r\t\f\b\\\"JSON::GeneratorErrorunallocated JSON::State%u: %li not allowed in JSONnullfalsetruenesting of %ld is too deepjson/commonExtGeneratorJSON::NestingErrorfrom_stateinitializeinitialize_copyindentindent=spacespace=space_beforespace_before=object_nlobject_nl=array_nlarray_nl=max_nestingmax_nesting=check_circular?allow_nan?ascii_only?quirks_mode?quirks_modequirks_mode=depthdepth=buffer_initial_lengthbuffer_initial_length=configuremerge[][]=generateGeneratorMethodsObjectto_jsonArrayFixnumBignumFloatStringincludedto_json_rawto_json_raw_objectExtendjson_createTrueClassFalseClassNilClassMULTILINEto_snewallow_nanascii_onlyunpackcreate_idextendkey?__send__respond_to?matchkeysduputf-8findEncodingencodingencodeSAFE_STATE_PROTOTYPEJSON/Generator/Statepartial character in source, but hit endsource sequence is illegal/malformed utf-8source sequence is illegal/malformed utf8only generation of JSON objects or arrays allowed��������������������������(�������P��0�������������0123456789�0� � �� �� ���������������;,D8���H����p��������������H����x���������غ�����(8���@h���X����pȻ������h���������(���h���8����`�����8����x����8�������H�����x����8������8��8�����������D���x�������x���������48��`���������������X��	���(	���H	h���	����	����	x���
��(�Xh��h�����(8�L��ph������
8�8
��l
��
���
X��
zRx�$��`FJw�?:*3$"D ���P\����p����`���!�|���%HW�����"HT�����&E�`�����&HW�ط��&HW�&HW,���'HXD ���"HT\8���A�Ux<����E�v�����/A�m,������B�D�D �V
ABE(����>F�D�O WAAF��$(���;A�A�G lDA$4@���DE�A�N hFA$\h���<E�A�N `FA$�����:E�A�N cAA4������F�A�K �K
FBKFAB4� ����F�A�K �K
FBKFAB4�����F�A�K �T
FBBFAB4T0����F�A�K �T
FBBFAB4������F�A�K �R
FBDDAB�@���_E�K(������F�A�D ��ABH�����F�I�A �A(�J0�
(F ABBEK(Q ABB0X�����E�E�J {
NAJpGAH����5F�B�B �E(�A0�A8�D`�
8A0A(B BBBH<�����	F�B�E �K(�A0�
(A BBBG0����F�K�F �G0g
 AABAL(��*E�](h<��1B�G�D �`AB8�P��VB�H�A ��
ABFM
ABH�t��K �����K�K0�
AD(l���A�D�D@Y
AAD04���EA�D�G0T
AAFZAAh���|���6H]
KD���9H]
KD�(��9H]
KD�H��9H]
KD�h��9H\
LDH����B�B�B �B(�D0�I8�G`�
8A0A(B BBBH,h���XF�D�A �1
ABA0�����B�D�G �G0N
 GABE������B�E�E �D(�H0�'
(D EBBL_
(D EBBLK
(A BBBNM
(D BBBIA
(D GIBIW
(A EBBOW
(D BBBOK
(A BBBNL����vB�B�B �H(�A0�D8�D��
8A0A(B BBBAL����!B�B�E �B(�A0�D8�D�#
8A0A(B BBBG(,	���>B�D�A �lDB8X	����F�B�A �A(�G0�
(D ABBE@�	����E�D�M N
DAGo
EAKK
IFF �	���E�K w
AA �	x���E�K w
AA  
����E�K w
AA0D
P���F�K�A �D0u
 AABA0x
����F�K�A �D0u
 AABA(�
(���E�A�Q0n
AAA0�
����F�K�A �D0x
 AABA0����F�K�A �D0x
 AABA(@d��6F�D�F �\CB0lx���F�D�H �D0u
 AABA(�����E�K�D0�
AAA(�X��m
E�H�D �	
AAHGNU����| �b !�*8B�H
_�| �| ���o`�	�
�� �P((	���o����o�oD���oH} �������� 0@P`p�������� 0@P`p�������� 0@P`p�����GA$3a1H
_GA$3p1067��^GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY��GA+GLIBCXX_ASSERTIONSgenerator.so-2.2.10-35.el8.x86_64.debug����7zXZ�ִF!t/���]?�E�h=��ڊ�2N�.������L]@�F@���N�}e�qq��n�cl��S"Y�Mč��7.
+�
��t�>���
��:��&��P:r��U,nm�ԀAM�"��ݠ�}��!����{L86��$�YU�@��4�"��'���M|�@�C�"@�&��Ԣ�
1u@�򂕧(|����ϐ�Gۙ�������2��R�̲?��h @��wy�p�����ܠ4n��>=eC/���C��_�dإ��u/��:��&y��;@��d��>�_��E1y�]���w�c!���C
gi�d�㩑���=��U��C��	��與:J3�$PFRf:�nK��8�?E���M��p������S6�⤿?M''�:ZYy`�ޣ(�pU��~��e'Ҝ4_�Ba��=���'p�|s�F�t�cA{5��4iq�<[}�pE�Ot��Q��$
�"�lyl�8��sb�x�Nvl&�'>��ѩ���^���ma9����[��9�qb�sJh+��l��J*�g9���qW�P�ĩ�����2+8R�����ewa��-3�?�oW��G<񀹤M�b.�7�	g����W�g��4����;&�5�J��Q�Dw��-�r� ��.��M>�%� g�g�(@��{�,���w:�l�7B@�$�W��a�(��S�!vR�U����IS�$n�k[ml�J�
���c/��m7%����U��j�%�@�!_�k�b����{���֝>K�T�"�����tι�T�.[�\�xuA�?�{��&xg�h!7}�rqE2��z��ϗ�<?�r�$�=&���~��n�� �Ox(�c�(��-���a�`:�nu������p|�Z��\�0/z|9'�V�-��)���>�sCC����g�uPu'�$��	����I�M�;Pk���K~����.���wp�Í���b%�yes�o���z���
���Ѡ��@��vN�aü�?�ȘF`�"H���D�"�~(6�	z)�o
qq�P?'��sa`�2�皍x�<ۗ&I�!8���-G%����� �fB-A��=������G�+r~=@��ڡ
����(��{?i���޼�$!3�7�i3�:�t��@�24����N��:.6^S����|��l����$�~{�d��`e��m��L(X�+C�#$ř��L}ꜥ�\�2��Y��\�΢T����i�9^^����g�� �.r�;�:��L��Dy���CKl�Ƹ�/I� ˰!��xx�'fЄA�_���;&��^��4W]�Z���Bx���I�Cy��U��nJ���|��|��Kg�r��ۆ�(���u'�ï������ZmC�%�6�h�@��5�����d���M�l���`�Љ�v�Z�b�	�+�nU>��:����渍IZ9���|��hc��1�98�?��������b�y;���y���K5��`}�����h�P��o\<a���9cVܜ�A#Kqu���)�G4����3�rN���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0�	�	�8���oDD�E���o��PT(((^BPP�hHHcpp`n��Pw  �A}__
� _ _ �8e8e,�hghg��`s`s ��| �|��| �|��| �|h �H} H} �h h��� ����� ���؃`��H
�,4�L��+lib64/ruby/2.2.0/x86_64-linux/mathn/complex.so000075500000016630150402105740014327 0ustar00ELF> @�@8	@�� �
�
 �
 �� �
�
 �
   888$$  S�td  P�td   $$Q�tdR�td�
�
 �
 XXGNUKA�������g�ƿ=�
����@!	BE���|Q��qX  b, F"�( �0 U��( __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_complexnucomp_canonicalizationlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��
 ��
 ��
 �
 � � � �    ��H��H�)
 H��t��H����52
 �%3
 ��h�������h���������%
 D���%
 DH�=
 H��	 H9�tH��	 H��t	�����H�=�	 H�5�	 H)�H��H��H��?H�H�tH�u	 H��t��fD�����=�	 u+UH�=R	 H��tH�= �Y����d����e	 ]������w�������������H��H���GNU�;$����@��h�����zRx�$h���0FJw�?:*3$"Dp��� \8������
 z�������
��
 �
 ���o`��
 0���	���o����o�o����o�
 ��GA$3a1��GA$3p1067��GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realigncomplex.so-2.2.10-35.el8.x86_64.debug�<Ls�7zXZ�ִF!t/��
��]?�E�h=��ڊ�2N�.��̈́�=�&���~i}o�0%����{�<X=�ꋲo��Y�R�9��^*�"񊨮Wè�+��>)�XH��!ř��f[,Hο�%j(�E�s�w�N�m�p��z���{ʰ�)���^)�gg�P��Y^�{��70�m^³��_\,�U��xk�t�C~
'�܇��U5O�	b�6*e�F-'u�2$��e�v�An

�X���J�;�x����e���{�%�=�����������x�_;F�M�"1�#������G�w�Y�8����t[i�|?�-�E��peӖ)�;wJ�:2/��)�q\��P�
@,��n�2X�T�H>Ȝ~m���4ٜ����Y.AeW~ؚ	L����@��f�-$�t�}�D�2��?�qֹVU�YBF�b���܌���;bZmZ�Nz�=hk��Z
��j�
�ˠ�@�6r��Q��9�٥ܠ��hS���2D��k�iʃ��DjN�G�V��φc�h��<oޥk��BQ�w�p�3�o؆��*8�}�j�=I��ѹ !�Xᰪ�rww@���������B�j�]��X�޺ �V��vY�w�`ޟHr�T�=��޸��yQw�PQ���0	"�οs�k��r���7ܴ�D��y��.��=^ҵ�B��{��~�$���������D����3}�l��E��21����5]IJ���F�b�	���7�_��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.note.gnu.property.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T���^B��0h��c��0n w  �}��
� �  $�HHp��
 �
��
 �
��
 �
��
 �
 �� � � (�( (�0`(� ,L$p#lib64/ruby/2.2.0/x86_64-linux/mathn/rational.so000075500000016630150402105740014471 0ustar00ELF> @�@8	@�� �
�
 �
 �� �
�
 �
   888$$  S�td  P�td   $$Q�tdR�td�
�
 �
 XXGNU��������	jI���Bk�@ 	BE��:P��|�qX c , F"�( U��0 �( __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_rationalnurat_canonicalizationlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��
 ��
 ��
 �
 � � � �    ��H��H�)
 H��t��H����52
 �%3
 ��h�������h���������%
 D���%
 DH�=
 H��	 H9�tH��	 H��t	�����H�=�	 H�5�	 H)�H��H��H��?H�H�tH�u	 H��t��fD�����=�	 u+UH�=R	 H��tH�= �Y����d����e	 ]������w�������������H��H���GNU�;$����@��h�����zRx�$h���0FJw�?:*3$"Dp��� \8������
 z�������
��
 �
 ���o`��
 0���	���o����o�o����o�
 ��GA$3a1��GA$3p1067��GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignrational.so-2.2.10-35.el8.x86_64.debugCʑ!�7zXZ�ִF!t/��
��]?�E�h=��ڊ�2N�.��̈́�>��/��~i}o�0%����{�<X=�ꋲo��Y�R�9��^*�"񊨮Wè�+��>)�XH��!ř��f[,Hο�%j(�E�s�w�N�m�p��z���{ʵ*-3�1����Ì�^x�)�Ӵ�HL���e�,�"��9�A�䴽�-��\��s��vx}�ю�B���aOz�6Ou�tq��״\MuŎ^Sƫn��&�;8��&���]����
�ۛNw�J�Y�U��e0Q�9��� E!����5<�2@m�6���	C"i�^�!j�"uQP���L^�teeݼ�U��]�IR׻�;n^�0Tz� ��d�P���'���ߌ��ߨ�Qf���9.j������c�x�8��z�QhUT���V���:���O���.:��6��kD�<�1��ʵe[Q�|C�?9�\�v+�7�a���� <S*r-6����_�>Uߥ/AE��]0����,��Cn�f��"?-w�͘z�UHw��M:��k��_k	!�����
�k4Ջ3B����ޙ�4+�7�q���U�~R唠�3!~0��S$���di��f#˜��*O��!:j��_�3��/D^"b�k��m��g�\b{�Ky���g����a������gՈŨ�)q�
k�d���y��3o��ϒe�/9�����#��$�
υZ
�z���	�<+��[���F~w9��2�,�������LQ��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.note.gnu.property.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T���^B��0h��c��0n w  �}��
� �  $�HHp��
 �
��
 �
��
 �
��
 �
 �� � � (�( (�0`(� ,L(t#lib64/ruby/2.2.0/x86_64-linux/pty.so000075500000040270150402105740012362 0ustar00ELF>�@x9@8	@,, x-x- x- �� �-�- �- 00888$$�+�+�+  S�td�+�+�+  P�td)))llQ�tdR�tdx-x- x- ��GNU�z�O)Myal27��jN��/F�@  FHIBE���|�qXu�U��$� ��P~l�-1c����� %n���UE�� ex�n��Gy��7s�n�T����C�T, �F"�a�:�.�	2 (2 2 :p'�__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_ivar_getrb_intern2rb_ary_entryrb_io_closesigemptysetposix_openptrb_fd_fix_cloexecsigactiongrantptunlockptptsnamerb_cloexec_openrb_update_max_fdstrlcpychmod__stack_chk_failrb_eRuntimeErrorrb_raiserb_scan_argsrb_fix2intrb_waitpidrb_last_status_getrb_num2intkillrb_sprintfrb_exc_new_strrb_iv_setrb_exc_raiserb_detach_processsetsidioctldup2getuidseteuidrb_exec_async_signal_saferb_gcrb_cIOrb_obj_allocrb_io_make_open_filerb_obj_freezerb_cFilerb_str_new_cstrrb_assoc_newrb_block_given_prb_yieldrb_ensurerb_execarg_newrb_execarg_getrb_execarg_fixuprb_fork_async_signal_saferb_io_modestr_fmoderb_cloexec_duprb_ary_new_caparb_ary_store__errno_locationrb_sys_failgetenvrb_jump_taggetpwuidInit_ptyrb_define_modulerb_define_module_functionrb_define_singleton_methodrb_define_class_underrb_define_methodlibruby.so.2.2libutil.so.1libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64� ui	!�ii
-ui	!x- P�- �- �- �/ �/ !�/ "�/ *�/ 6�/ ;�/ =�/ D0  0 (0 00 80 @0 H0 P0 	X0 
`0 h0 p0 
x0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 �0 1 1  1 #1 $ 1 %(1 &01 '81 (@1 )H1 +P1 ,X1 -`1 .h1 /p1 0x1 1�1 2�1 3�1 4�1 5�1 7�1 8�1 9�1 :�1 <�1 =�1 >�1 ?�1 @�1 A�1 B�1 C2 E��H��H� H��t��H����52 �%3 ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=���������%M D���%E D���%= D���%5 D���%- D���%% D���% D���% D���%
 D���% D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%} D���%u D���%m D���%e D���%] D���%U D���%M D���%E D���%= D���%5 D���%- D���%% D���% D���% D���%
 D���% D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%} D���%u D���%m D���%e DH�=a H�Z H9�tH� H��t	�����H�=1 H�5* H)�H��H��H��?H�H�tH�� H��t��fD�����=� u+UH�=� H��tH�=V ����d����� ]������w������H�5� SH��H��tH��[���H�=�	���H��[H��H�q ����ff.����UH��S1�H��H��H������uH�����t
�����t H��uH���[]�fD��H�P�R��x�H�������ff.�AWI��AVA��AUATE��USH��XH�4$H�|$H�T$dH�%(H��$H1�H�D$DŽ$��,��������������H�l$L��$�������L��H���s��������������1�L�����tt�O������tr��������tf�����H��H��tWE����1ҾH�����A�Ń��t7�����H�$A�H��H�|$�D�(���1��!���������E��uI�����H��$HdH3%(u,H��X[]A\A]A^A_�f���H���������d�����#���H�< H�5�H�81��+���ff.���SH��H�� dH�%(H�D$1�H�L$L�D$���H�|$@��tF�q�����H�t$��p����Í@��v6H�D$����u7����H�T$dH3%(uH�� [��K�����������d����|$H�5
t1����]���H�5��H��HE�Hc�H�=�1����H�=� H�����H�����H��H�5�H���/���H���������SH���H���dH�%(H�D$1�H�t$�����~�{���H�L$dH3%(�uH��[����fD��AVAUI��ATI��UH��SD�7�_����D�����1ҾT��1�����1����o�������c�������W���������;����������u H�}[L��]A\A]A^�W����L��L��H�5��N���[�����]A\A]A^�AUE1�A��ATI��UH��SH��H���"�����uH��[]A\A]����H��D��L��H��H��A�[]A\A]���f.���AU�ATUSH��8dH�%(H�D$(1�H�l$H�t$H��H�|$�f���H�W H�8�'���H��I�����H��H�=H���@+�D$�C1����H���B���H�CH�/ H�8����H��I�����H��H���@;�D$�C�;���H������L��L��H�C��H�������u(H�T$(dH3%(H��u3H��8[]A\A]�f.�H�=� H��H��H�\�������H����]���ff.�f���AWAVAUATUS��H��H�-j H�t$H�}dH�%(H��$�1�����H�}I�����L��I������L��I�������H�t$�D$$I�������H�l$`���H�\$@H��H�D$P���H�|$PH�D$X���1�H�t$ H��H�|$����D$H�|$$H��A� �H�l$HH�5����D$@�D$ �D$p�D$DH�D$pI��H�D$�{�������|$ �D$H������T$�D$H�\$0�T$<�D$8H�=!H�D$P�,���H��A�D$�D$8A�D$�f���H���.���H�=�I�D$����|$8��A�E���A�E����a�����I�D$�I�E�F���1�L��H��H���6���L��H���&���HcT$<�H��H�T�����������H��$�dH3%(H����H�Ĩ[]A\A]A^A_�fD�k�|$H�Ë(��|$ ��|$$�+��uJ�|$pH�=�HE|$�c���H�=����H��H��tL�G����H�t$(H�D$(�����H�=� H��H�L$8H���������1�������D�H�=nH��t�H�x(H�^H��HD���_�H�=g������H��H�=V�\��������H���H�5BH��H�w
 ���H�=k
 �����H�����H�5 ��H�=L
 �����H���H�5�|�H�=-
 1�H�L���H�5��`�H�� H�=

 H�5�H��#���1�H�:���H�5 H��	 H��H������H��H���statuscan't get Master/Slave devicestoppedchangedexited11pty - %s: %ldseteuid()masterpty:%s/bin/shfork failedSHELLrwdup()PTYgetptyspawncheckopenChildExited;l�����`��������� �������d����0�������@���Dp����p����zRx�$@��FJw�?:*3$"D��\��DL�L
HU(|��eE�D�F k
FAGL�����B�E�E �B(�D0�A8�G�9
8A0A(B BBBC �T���	E�K0n
AA @���ZE�L B
AAH@|����F�B�E �D(�D0�`
(I BBBLS(F BBBH���VB�H�D �D(�G0M
(A ABBDI(S ABB8��#F�G�A �A(�D`�
(A ABBKL���F�B�B �B(�A0�A8�I��
8A0A(B BBBGd�����H�GNU�P�- �������7�
@(x- �- ���o`�	�
d0 ���	���o����o�o�
���o�- �� 0@P`p�������� 0@P`p�������� 0@P`p�������� 0@P`p����GA$3a1�M(GA$3p1067`@(GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA+GLIBCXX_ASSERTIONS`�
GA*FORTIFYpty.so-2.2.10-35.el8.x86_64.debug��I�7zXZ�ִF!t/��W�]?�E�h=��ڊ�2N�Hz�� ����e֔�������
��Xt�پlt	]贉�����ʪ��A;��s�U����H�#���E��0wL�6;��O&1������n��� V���چ�����sd�D�~���S���C��V&u���!�
�W冓�iMĒ����CY�ΒZh{�'��:g�G�o1�Vo@�C�F��sX��̽�e
VX�	�%Ҧ�3�n��=���:�&�ˣ1ŢL�c%i� |�ٮ`_L߂G�%�wgΟ4��d��0?�����D����fӫ8i7Əj
�v��)��Mt'��s@*�b�.�A�d:>�0�@��g��q�5,/�����?��V`�������y�#r�#��BcY�5[Eul/q~g�7dw�;;-5	��p[�\܃�Q�O�t��}�+�IJi6�K���fL�/+��b�ZJ8�v.r~ċ��o�O�p�K���7��(?Y"^����R��T�>��o��1�7��r�~IT��L�
Ԑ/���1���oD�|�c���n~Z���fx�P��ѐ��~�����;�g����4Ϊ>+��I��[�2PC���R�jk��t��_���qQ�lk�9�B�|�P	9��IVdn�7��7m%�;��{=�7ŗ�=�`���d��Z'^_ E��Xq
<&�Ou����f�FM�"�8�{,�/�F'@��*_�Kr�'�5�t��<ݩ��,$�T�b����K�6�>�dWB|��)��W�B�u�q�_Ș0:ӢlEo�mQ���B`[ֆ�l㹂���]��b���B�I�ܕ��N�ơB�~�ؗ%|�0 2f�Pd@��&�0�W+P����]ڵ�O�s6y����Ews�0�ĵA��|�o��G�HQ���Ϡ)*{��:���_g;���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0�	�	d8���o�
�
�E���o��PT��^B���h��c���n���w���
}@(@(
�2M(M(��))l�p)p)|��+�+ �x- x-��- �-��- �-��- �-0��/ �/@�0 0�2 2 �(2`2H
P4(x4�L8+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_16.so000075500000027250150402105740014113 0ustar00ELF>�
@h'@8	@   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNUe8�X������ך�$����B @BE���|�qXg��� #U���� �Ff��, F"Y8  l@  `8  �0__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_iso_8859_16rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Oui	q @     H `x �� �� �� P@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������1����w��H�y���x����ff.�f���H��I��I�ѺQH�5����)���H���@����I��I�ѿ)�H�5����ff.���H��<�tH�����H����@t޸ssf��H��ff.���H�5 H�=������H��H���ISO-8859-16����������������������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@��4�0�4���4��0��4��4��0�4���4�0�4����0�0�0��4�0�4�0�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������;D ���`p����p�����������������P����zRx�$����PFJw�?:*3$"D��@\���#p��,HL W�����"����B�P���GNU�@  `���P
,7EO}�	
H  ���o`��
�  `�	��	���oh���o�o:���o� 
 
0
@
GA$3a1�	UGA$3p1067PGGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPsGA+GLIBCXX_ASSERTIONSiso_8859_16.so-2.2.10-35.el8.x86_64.debugH�+�7zXZ�ִF!t/���H]?�E�h=��ڊ�2N���. ���x�'�'�	��A�A"��:��jL-���M��k�F(H�4�@�q{h�'�Eo�TU`n╜��S���e�uk�>˻�1vB�6�!#�88r:լ�����t<�A�`�(Y�	�׋�(�{}��dY%v�Ld�]���7(�N�?Uo9���)��Iap�*.��Zq�|9@QA]��ɖ�w�#��޿+f��Y��ĩ�	�#��*��*��=�b�������=F���k���P�O.T����=?����DG����–ǂ%�c�����ɂ^,X�����c�.����
�_�hy�MFK������W5h������t��C�c(BZ����Wi�V���u��1����%F�Bcl�=|/y/��#�>�U�a+��~��K�E	*%l3�g��w���8�%���r��p���w� 4t5�.��v]g(�ɫ��91^��t�K���&�CC+~���Z�|���6*< ��Ђ�D=X'��Z�/i2!j��_U�$�}��W5�H���(��e��"���|��9[���c�	pe�!lߑ:��g���eS��"Vb�(�{�O�˜	_�G�8�c��;���ԵK���3s�<��r>��n�lB������h��g�Yg+�󥥲W��4�& �_�䇪謁Γ�0Jm�)v41��V�@��[Q�T��N���t��	�����;��-�!*C�a9��t(b�"��}7�9�Riq��y-�q�,CFu�<���j����1���^��)u���������g��ZY,�<k�n�\�;:+û�L�YCi.��
g�7��̦s���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o::*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}HH
�``� ���D�((���� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�8&+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_6.so000075500000027160150402105740014032 0ustar00ELF>P
@0'@8	@xx     �� �   888$$XXX  S�tdXXX  P�td�
�
�
,,Q�tdR�td  ��GNUJ��E�:����\;X���e���@ !BE���|�qX5,\� ���e� u�{0R�, F"n(  �0  u(  U@__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_iso_8859_6rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_ascii_mbc_case_foldonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64dui	�  �
    H �� @ 	X ` h p x 
� 
� � � � � � � � �      ��H��H�� H��t��H����5 �% ��h�������h���������%� D���%� DH�=� H�� H9�tH�v H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�E H��t��fD�����=] u+UH�=" H��tH�=> �Y����d����5 ]������w������1����w��H�y���x����ff.�f���H�5� H�=.������H��H���ISO-8859-6@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@�������0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0;,`���H����pp���������zRx�$���0FJw�?:*3$"D��� \��#p����GNU��
  �"1ALZd��	
X  ���o`��
�  0�	��	���o����o�oh���o� 
 
GA$3a1�	eGA$3p1067WGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY3GA+GLIBCXX_ASSERTIONSiso_8859_6.so-2.2.10-35.el8.x86_64.debug&��s�7zXZ�ִF!t/��? ]?�E�h=��ڊ�2N�a�Ñ���^�ַ\���{h�9��G��:5��:�u֚��*�A���ˏL�3�I�e]M��J]3�2�U�70�EV�u�N$�1����7LS8TB�Na`��#'��`��)�@-\�G� ��G�L��9�H.��,W��+�'��r@8�v�R}yHTk/oQ���J2�0��}?�@����2)�/��%(�j2����$�6�X[�� i����H����o7{B�9	m>�Z���R7�O�v$M�\�>���@��B>Q�u��%XΕ�*�q���p�=�P��L�!���,+����z��8"�Q��F���FY�s0�
�bSa�K�G�W��q�
B_�[1l��\�YO~}�<���8��7h��͚<n��t׍�I�*n�"a\J�G�w�C!8�PG�:�񩮿{R~3�C���Y�Sh]��;�6U�B���>mϘ�n4���l}y��1��&;���NE�SK1��*�8��Oބ�߅r��im��/1�����C=5�_��<[��p�G
��ť�,Q�DŽ�hO �0�c���GE�C;�eٴ���'�^a��f{#l$	c�y�t�S�������;���K�&���%ĩ�}�i�aީ�W��֕��}�ӸK���(��F��I�_ݜ-4�<�(�U��Bܗ@'���:az�b���6�b��Ol��4bĔѡoB41�
�ٗ�&
'���7�T�L_/}qCYa�&���3������}YP��EJ¿��wL�fҝ�"�ސ�����aFlB��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��0���8���ohh,E���o�� T���^B�	�	0h�	�	c

0n0
0
 wP
P
}XX
���  ��
�
,��
�
��XX � � �   � �� � �� � �   (�(  ( �0 `( H
p"0�"`&+lib64/ruby/2.2.0/x86_64-linux/enc/euc_kr.so000075500000027360150402105740013570 0ustar00ELF>�
@�'@8	@   @H �� �   888$$���  S�td���  P�td���\\Q�tdR�td  ��GNUN�<Z�`b(�,á%�%�@(BE���|�T5	�qX ��o�� U�r'I, �F"P  !X  �0
P  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_mb2_is_code_ctypeonigenc_mbn_mbc_case_foldonigenc_mb2_code_to_mbconigenc_mbn_mbc_to_codeonigenc_mbclen_approximateInit_euc_krrb_enc_registeronigenc_is_mbc_newline_0x0aonigenc_mb2_code_to_mbclenonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangelibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64ui	& � `    @ �H `
` �p `x @�  � �� X h � � 
� 
� � � � �      (  0  8  	@  H  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h�������h�������h�������h��������%� D���%� D���%} D���%u D���%m D���%e D���%] DH�=Y H�R H9�tH�� H��t	�����H�=) H�5" H)�H��H��H��?H�H�tH�� H��t��fD�����=� u+UH�=� H��tH�=� �Y����d����� ]������w�������H��H�
��x)L�GL9�t0�OH��HЀ<������D@��fD��������D��f�H�y�������1��?~�������H�׉���~���ff.�����L��I��H��H����7��������H��H����
���ff.�f���H��H��H��H���;���ff.���USH��H��H9�vG���_<]v	�f�H9�sH�����_<]v�H��H���A9Au'H�H�H9�rH��H)�H��H�0H��H��[]�DH��H��H�����H�H�H9�s���ff.���H�5 H�=�Y�����H��H���EUC-KR����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;\
����x����0������������������������ ���0����\zRx�$����FJw�?:*3$"DX���p\p���]p����
�����������������(����E�A�G P
DAFL���GNU��`  �`
�`@ ������2�	
H
  ���o`��
_  �8	@�	���o ���o�o����o� 
 
0
@
P
`
p
GA$3a1�	U
GA$3p1067�G
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�
GA+GLIBCXX_ASSERTIONSeuc_kr.so-2.2.10-35.el8.x86_64.debug�ߴ��7zXZ�ִF!t/��O}]?�E�h=��ڊ�2N�	����c��P@^M�me�3�r7NT?a�jEQ[f|g���v��]/�����7�� ��}�l�����m�
�Mc�S��\S��V�FXš�x��+
-�{zU�Z+{|����h/�h
�����ՙ��J�a�S��?�6�@�.�^�6�w+4���T�b�Л(���<?W����ڶ �\��wV�.�V� ��f�r:�zW"jy�uee�z��:���oHQ���wUMB1Q�}zfp�H��<H�)����&eВ�P�;���X�D>'��dA�?���yh�r�����d�r��)Q�{?�T񧊖
܈쓺5�]֕
gG��p���,�����f�ǿ����U�A��
T���u\
ׁ�E%�^����h�n������[�@h'���H��!�U@5�D���a�A;Si��ϊˆLS*)7�M
�����z�݆b�h6z�j�8#��C��y�?��,&�m���=>���C�b

u��Ã��{�ҳ��O��X���r��A���MHt|�u�3zYC��8�!�s�CiM�n��L�3�'m_H}'��k�P���f4�ˆT��;?@5&���w�U=5E������A��������K6utj��#6=�q�����{tXO���^m&��6otP�@[Q�>�A�h���څ�Ξ�o(��eq�&Ukb=��Ҹr�<�o�5ض�N�X��W�������H,��V%�GR�n?7�j'��V�鮤�i�qȣN:��]�GS��&
��2�vg�����1��������(�l߀�ؙVH�BM�1<�R]�IF!4�����6&��yR�/���`��5m�4*޻�mPF
�����|����h�V���x�{��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��_8���o��*E���o   T@@�^B8	8	�h�	�	c

�n�
�
pw�
�
W}H
H

�`
`
  ���\������ � � �   � �� � �� � �   P�P  P �X `P H
�",�"��&+lib64/ruby/2.2.0/x86_64-linux/enc/koi8_u.so000075500000027250150402105740013514 0ustar00ELF>�
@h'@8	@��   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNU�H+l�'0�c�+�����@ BE���|�X��qX� U���� �Aa��, F"T8  g@  �[8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_koi8_urb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Jui	l @     H @x P� �� �� �@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������H�H�B����H��ff.�@��1����w��H�	���x����ff.�f���H��I��I��1�QH�5����%�|���H��������I��I�ѿ%1�H�5f�q������H�55 H�=.�I�����H��H���KOI8-U��������������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@������������������������������������0�0��0�0������0������4�4��4�4������4���0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������������������������������������������������������������������������������������������������������������������;D`���`�����������������@����`����zRx�$����PFJw�?:*3$"D ���@\���!p$���#�@���)HI W�T����`���GNU�@  @P���'2@Jx�	
  ���o`��
�  `x	��	���o`���o�o6���o� 
 
0
@
GA$3a1�	%GA$3p1067PGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPqGA+GLIBCXX_ASSERTIONSkoi8_u.so-2.2.10-35.el8.x86_64.debug�\��7zXZ�ִF!t/���O]?�E�h=��ڊ�2N���. ����'�'�	��A�A"��:yw`U�XN��~s*d��Ђ�Avm�GÐ<�$g��Ъ����xM�@��Z{�n@��Yv�����y�[C�]�����M���*�՗������K�$�ܑ2G�ۮh �8�$J-����K!���3_��G�7���
���o��K�����i��`D�Wf�5
�� �x�h�3�sd�wr�P�i%֨'��ɒ&���S��a�pp���&6��uMb!y�  �x�M�&4l!�Zv#�\�>�#譳W�����V,���4>���4r�nܒ�2�N/�����CRm��n/(��rz��-|yZ���X���!*deH�h0�4�O	�������͡_�E���v�)=�E��/c+vV=v�28�<,[��}�5T>��d�f�V�!q�Fq��5ߔb��D��.R��s�f{���jR��G��E<}ݿj���7��0�S����<f�,����@f�~6�b"l䅻iŜ7;�#�]]�{��SF�v�J�7=�^�¢�CW�,���"V;%*Ǻ
�ؽ�Z`��I��</=�r�3s�DrO�T����PA�0T_�8�{
�{�,u��
T�s��=��_�7���x�	¨�:�5��[��!k淲�%X���A{+Agk�٢.R�
$���+���7j���$��{�d
����� ȇE����o<J��wR�v�uJ�NiHଁ�V�ϊWS���Fʝ�t%;���偍q2K�^�g�<]
����>��
n�D�	W��X�pVlA��H�E��B�����^K����L��}�A���I}�0�f=��u���ik�DZ�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o66*E���o`` T���^Bx	x	`h�	�	c

PnP
P
@w�
�
�}
�@@` ���D������� � � �   � �� � �� � �   8�8  8 �@ `8 H
�",�"�<&+lib64/ruby/2.2.0/x86_64-linux/enc/utf_32be.so000075500000027350150402105750013731 0ustar00ELF>�	@�'@8	@(( �� � HP �� �   888$$  S�td  P�td���ddQ�tdR�td�� � GNU�:�	:m�|�@�/�R�b�@ �BE���'᩻�|�qX ��� h��B, $F"U�8  �`�@  �8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_unicode_get_case_fold_codes_by_stronigenc_unicode_mbc_case_foldOnigEncAsciiToLowerCaseTableInit_utf_32berb_enc_registeronigenc_unicode_apply_all_case_foldonigenc_unicode_property_name_to_ctypeonigenc_unicode_is_code_ctypeonigenc_utf16_32_get_ctype_code_rangeonigenc_always_false_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�� �
� P
    �( �8 �@ �
H �
P �
X @h  � �
` p x � 	� � � � � 
�      (  0  
��H��H�� H��t��H����5� �%� ��h�������h��������h�������h��������%m D���%e D���%] D���%U DH�=Q H�J H9�tH�� H��t	�����H�=! H�5 H)�H��H��H��?H�H�tH�� H��t��fD�����=� u+UH�=z H��tH�=� �I����d����� ]������w��������W����W����W����ff.�f�����fD��ϸ�>�f���H��H9�vH��H)�H��H��?H��>Hʃ�H)�H)��fD����L��I��H��H���������H�A��L�ǀxx�xu�xu�8tI��H��H��D���+���1��Af�H�H �@��A�H����H�W1�H9�v�
t�f.��u�u�1��?���ff.���H9�rWH)�H��~^��G����G����G�����(����� ��1���������D���f�������f.��F��ff.����H�5� H�=�9�����H��H���UTF-32BE;d�������������@����P����`������������$���8P���L���`zRx�$8���PFJw�?:*3$"D`���@\H���#pd���
�`����\���*�x��������]����5�����t�h���GNU��
P
 ����
�
�
@ �
������0	
x� � ���o`H�
3  `��	���o����o�o|���o� `	p	�	�	GA$3a10	�GA$3p1067�
wGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA+GLIBCXX_ASSERTIONS�
�

GA*FORTIFYutf_32be.so-2.2.10-35.el8.x86_64.debug���7zXZ�ִF!t/����]?�E�h=��ڊ�2N������!�eoة��!�3;�zA"���$]ԣ�aF�U�dj�Z����`w��'CM�5���8�%y�ߜD����;��9ٝ�,-�a�o�˾Nmo/�i�l9��=�=`�*=;���g�Q����4���3z�&����и{�����*�qe"�Z�Ì-+(���D�z����}J�M���*��m�Xn���+�ڴj���=K�&i�[�C#��]?�4:a.,`HM���_b��nN�CcA8��J�Q.>�G�]���b��_��"��8�s�3�|�)k������w�I9�P��z����:C�d�?���-P�qkF�@jd�v��SW_R��Xv;~iE�V�^����/{�F���|hWW�)7�#S���׬A��D�K��<>Ϛl@@:��$c��Y�3���$�X��;g�$j&�z�Tr�@���u������)J����t�B��๎7��H%�" ���Eo񅅍Bn�9�a����Z�z,}RH����~%]�LZ�O�'��O���3Džɼ��R�O�U���¯int��=WsFx����F��yL���K�&���v-������R��(�c����E�;�OYU�/�SX�ڈN��,��e��^�2;��_{g�4z�d�,�'=M9B��#A�\�/�� =H�md>�q��˸Et�&�`f��v�]��	)|`���\��u�s��9�_�D���f�y��w�ae2�w|�|��n��q�A�좠�G'�(�5�vC?u��R }SK���pT��Y�'F��mF1ǹ�l�Ζ��[i��Y�8��w;A�[w?E�ќ�G��!UA��*m�,j���a�����>Rv�����*��h\8M_���>QcT���j��N^�E���6n�|��H����g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0HH38���o||$E���o�� T��^B��`h0	0	cP	P	Pn�	�	@w�	�	�}xx
�2��	���d���� �� ��� �� � �� � �� �(�   8�8  8 �@ `8 H
�",�"�x&+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_2.so000075500000027250150402105750014027 0ustar00ELF>�
@h'@8	@��   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNUJ ���D"���Z�j�k�@ BE���|0,\�qX "U���� �Ee��, F"X8  k@  �0_8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_iso_8859_2rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Nui	p @     H `x �� �� �� P@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������1����w��H�Y���x����ff.�f���H��I��I�ѺQH�5����(���H���@����I��I�ѿ(�H�5����ff.���H��<�tH�����H����@t޸ssf��H��ff.���H�5 H�=������H��H���ISO-8859-2��������������������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@��4��4��4�4���4�4�4�4��4�4��0��0��0�0���0�0�0�0��0�0�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��0�0�0�0�0�0�0�	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������;D@���`����������������� ����p����zRx�$���PFJw�?:*3$"D���@\��#p���,HL W����"�4���B�p���GNU�@  `���P+6DN|�	
H  ���o`��
�  `�	��	���oh���o�o:���o� 
 
0
@
GA$3a1�	UGA$3p1067PGGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPsGA+GLIBCXX_ASSERTIONSiso_8859_2.so-2.2.10-35.el8.x86_64.debugg5b4�7zXZ�ִF!t/���J]?�E�h=��ڊ�2N���. ���x�'�'�	��A�A"��:~O�+o��[O��'���E�W���3���i�ܖ�0�
�X�G��*"nP+���R�M��K���x��d�Y)\�b�>��5Jb��e���<�K�&���J�
��*�:�=!�K/#Bb�@W��nٶ�Ń#�s��@�	ؗ�r��E*^v"6J�g���
2�ɩuL�%t�5��ڧt7��U�X�)�E�w$Jәj��8xW�R�.�=���r!�0��6ŋK��"����׺C3��:�
`Ѡ��#����5m�}9gg�U���0�� A�#����W���'�R���q���ħ*:=�D�2�, �I^�2h�� ���p-��};���V--^�I��*��Hhd�}����\�Ty��f{o{i�A?�+��2�`�Hn���W����Z���-�$Dq\��8h������1�f+^',��uo�g���L[Bl$�E{Tk�����,�>�^ȟ6��/sJ���x�p���	�/�}��f4HX�R�Klj�!��蘀�&��)5����x��Q��?��Uk���	�f��b���.3OW^#���{f�'x0��pt���3�Q�W���\6�.�{�)�g��䷿(�o��OD����S-�vhT��	ߗ��8�
8$�(�ь��pl$N
��}�uW#$"�����Y��+��w�q��2��n+��`4?تAO3�;��/����̂���e�i�~h/�ǐd6�~!�ú����=��AV�>#��ksz
c����r�d׀K+e)�l,F�Ʋ���P,�Y5|�@��4�G�q����8������g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o::*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}HH
�``` ���D����� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�<&+lib64/ruby/2.2.0/x86_64-linux/enc/big5.so000075500000037420150402105750013145 0ustar00ELF>�
@�7@8	@$$ ,, , @H �-�- �-   888$$�#�#�#  S�td�#�#�#  P�td"""||Q�tdR�td,, , ��GNUH<l׌���)gž�`k��t�@ �BE���|;�V ���qX�1
V ��o� U��C(e, �F"*P0 =X0 ����1P0 �`__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_mb2_is_code_ctypeonigenc_mbn_mbc_case_foldonigenc_mb2_code_to_mbconigenc_mbn_mbc_to_codeonigenc_mbclen_approximateInit_big5rb_enc_registerInit_big5_hkscsInit_big5_uaoonigenc_is_mbc_newline_0x0aonigenc_mb2_code_to_mbclenonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangelibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64 ui	B, �, ` ,  , @, �H, �`, pp, Px, 0�, �, ��, ��, �, ��, p�, P�, 0- (- �0- �@- �H- �`- pp- Px- 0�- �- ��- �X, �, X- h, �, h- �, - �- �, 
- 
�- 
�, 
- 
�- 
�,  - �- �/ �/ �/ �/ 0  0 (0 00 80 	@0 H0 ��H��H�# H��t��H����5# �%# ��h�������h��������h�������h�������h�������h�������h��������%�" D���%�" D���%}" D���%u" D���%m" D���%e" D���%]" DH�=Y" H�R" H9�tH��! H��t	�����H�=)" H�5"" H)�H��H��H��?H�H�tH��! H��t��fD�����=�! u+UH�=�! H��tH�=� �Y����d�����! ]������w�������H�BH��H���x&L�GL9�t-�OH��HЀ<������D@����������D��f�H����������H��H��H����x*L�GL9�t9�OH��HЀ<������D@�����������D��f.�H��
��������H�rH��H����x*L�GL9�t9�OH��HЀ<������D@�����������D��f.�H���������H��<����������H�׉�����ff.�����L��I��H��H����G��������H��H�������ff.�f���H��H��H��H���K���ff.���USH��H��H9����L�PA�<tQL�L�
O���L�8
H�-1	��A�<�����u$L��L9�tL�C��C�M9�u߃|�����t�H��H���A9Au*H�H�H9�rH��H)�H��H�0H��H��[]��H��H��H���r���H�H�H9�s���fD��H�5� H�=n�)���f���H�55 H�=S�	���f���H�5� H�=>�����H��H���Big5Big5-HKSCSBig5-UAO��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;|���������������(0�<P�Pp�d��x`��������zRx�$`��FJw�?:*3$"D��p\��]p�m�x�m��������������(���E�A�G �
DAI(��<��P��GNU��` , ��pP0���pP0����pP0����� N�
�, , ���o`��
{0 �0��	���ox���o�oD���o�- 
 
0
@
P
`
p
GA$3a1��GA$3p1067��GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�
GA+GLIBCXX_ASSERTIONSbig5.so-2.2.10-35.el8.x86_64.debug�Ţ�7zXZ�ִF!t/����]?�E�h=��ڊ�2N�	&I��5��bwS�&Y*��S���W�ڭ*g�n	ԫf@��s���{����U�6Ư��Ґ���=�b-v�)��V�s�i�p��Qm��&�D&81P����,��W
�,�fͳ��?�̽�*#���`�fs���}댠]��H,R
M�$a�)�)��n�w�O!�+5�حfE��F�Ue��g[�3��a�]�C�������Q�l��rl�Я�`�f̮TU0d�wHz8�l�)���k���Oj�-?I�[l�Uw��UB#���;3��q�:�����[��^��H7�$v�0-�C��y���cR�n��+^6f�-��z_��FcR�v$)�*E�S�@o�,�2u�^Db�A�G�E3�_�ه�y�Ad�h�!�{���r<�W.U�H/�RJyaQ����|9O��kv�A@���s��߀�R�p�Ns`�*��%X�O���,�39a��6��u�]#DJ��Ǩ
Y9�N|*��&b���f�?����� t�:���p7�o~��'��7��H
ϘuG^F��qöXқ�vv��[�q*w�¨u!����{Ծn�b@�}D^P��$�p�;Z���۟�Ѧ����!��	[�;5�I&X�֛0N�iq�y�C2�t��1ф�mV�F58!c*h4''*m��ߴ��3a�
S�c�m�[O���rqC	�Ӿ��zV&[Z���<?�~�շ�yMCvR�
�dt�3n�0��^��)����@ ���5
<�'��M�\�MG�d�jX3��M�|)�"\�xI9a>e�Tt��ڿX|3,���H�ӓg�-"�'_�vޒW<+
6,���ԗc?4�6$DB�4�����z��V	��?o�Nf��^�/��1��ge�uF;�RYG��N���� �VhPg3�^Rn����:�� ������g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``<(��(0��{8���oDD.E���oxx T���^B00�h��c

�n�
�
pw�
�
�}��
���  �""|��"�"d��#�# �, ,�, ,� ,  ,� ��- �- ��/ �/ �0 0P�P0 P0�X0`P0H
�2(�2��6+lib64/ruby/2.2.0/x86_64-linux/enc/utf_32le.so000075500000027350150402105750013743 0ustar00ELF>�	@�'@8	@(( �� � HP �� �   888$$  S�td  P�td���ddQ�tdR�td�� � GNUXJص�k�W�b��-���@ BE��<)᩻�|�qX ��� h��B, $F"U�8  �`�@  �8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_unicode_get_case_fold_codes_by_stronigenc_unicode_mbc_case_foldOnigEncAsciiToLowerCaseTableInit_utf_32lerb_enc_registeronigenc_unicode_apply_all_case_foldonigenc_unicode_property_name_to_ctypeonigenc_unicode_is_code_ctypeonigenc_utf16_32_get_ctype_code_rangeonigenc_always_false_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�� �
� P
    �( �8 �@ �
H �
P �
X @h  � �
` p x � 	� � � � � 
�      (  0  
��H��H�� H��t��H����5� �%� ��h�������h��������h�������h��������%m D���%e D���%] D���%U DH�=Q H�J H9�tH�� H��t	�����H�=! H�5 H)�H��H��H��?H�H�tH�� H��t��fD�����=� u+UH�=z H��tH�=� �I����d����� ]������w�������G�W����W��������ff.�f�����fD���>��@��H��H9�vH��H)�H��H��?H��>Hʃ�H)�H)��fD����L��I��H��H���������H�A��L��D�E��x�xu�xu�xtI��H��H��D���'����H�I �AB��1�f�A�H��ff.���H�W1�H9�v�?
t��u��u�1�����f���H9�rWH)�H��~^�W�G����G���������(����� ��1���������D���f�������f.��F��ff.����H�5� H�=�9�����H��H���UTF-32LE;d�������������@����P����`������������$ ���8P���L���`zRx�$8���PFJw�?:*3$"D`���@\H���#pd���
�`����\���*�x��������b���.�����t�h���GNU��
P
 ����
�
�
@ �
������0	
x� � ���o`H�
3  `��	���o����o�o|���o� `	p	�	�	GA$3a10	�GA$3p1067�
wGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA+GLIBCXX_ASSERTIONS�
�

GA*FORTIFYutf_32le.so-2.2.10-35.el8.x86_64.debug��5��7zXZ�ִF!t/����]?�E�h=��ڊ�2N������!�eoة��!�3;�zA"���$]ԣ�aF�U�dj�Z����`w��'CM�5���8�%y�ߜD����;��9ٝ�,-�a�o�˾Nmo/�i�l9��=�=`�*=;���g�Q����+���e�	�Ss��-�G�#��e��Ii�$
�#4�-�I�~y��2Κ�S�,�Ϸ��?07���ZI8!g�ݹCOh|pN�.�?��b���4v���k�5��o�dzG�폶�cK{�nK�/ђ�r������?ƫ�c�+�8*����I�=��!_����;�~�W��e]�s��癡݅o&��f�c�~L�.����:Bu;W�i�@����-��j��ul
�Ɵk{���=��֋&ퟤ��A[��8c_!	~�}�i#�1Hv��q�|�T���xe/i	�V��o��~��%�N��C�,T_��;���c��yw�Wй$h��n�\����\��h�)�;�SU:c�]�~GV�,7�^��glX=@�
��%�8��l��y�V��$��b��v�|W����x�ps��hmv�����9�0��]NmH;bu�6�1@۽&n:�ˏU���P=��0 �!*ě����Ƶ�ʎ�
a���#\��&g���V��~s@�1�nq���
 �a
U�E�9OQKM>N�wp�yH�w���?,���Yt��6V]�����­n��;[�-�,���f�W�����m��74�01ɝu��-�1K�,{L;�+��ن�n<<�>�d�h�@��:��H�^���ea�D~\��$�OZۤo�p����~7]\�G��VF X���N���v�ͳ�z�)�T��q��]QԬ�
�VD��_�Sw�1���;���%�R��H����g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0HH38���o||$E���o�� T��^B��`h0	0	cP	P	Pn�	�	@w�	�	�}xx
�2��	���d���� �� ��� �� � �� � �� �(�   8�8  8 �@ `8 H
�",�"�x&+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_10.so000075500000027250150402105750014106 0ustar00ELF>�
@h'@8	@   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNU����E��tFL�G�������B BE���|�qXa��� #U���� �Ff��, F"Y8  l@  `8  �0__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_iso_8859_10rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Oui	q @     H `x �� �� �� P@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������1����w��H�y���x����ff.�f���H��I��I�ѺQH�5����,���H���@����I��I�ѿ,�H�5����ff.���H��<�tH�����H����@t޸ssf��H��ff.���H�5 H�=������H��H���ISO-8859-10����������������������������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@��4�4�4�4�4�4��4�4�4�4�4��4�4��0�0�0�0�0�0��0�0�0�0�0��0�0�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������;D ���`p����p�����������������P����zRx�$����PFJw�?:*3$"D��@\���#p��,HL W�����"����B�P���GNU�@  `���P
,7EO}�	
H  ���o`��
�  `�	��	���oh���o�o:���o� 
 
0
@
GA$3a1�	UGA$3p1067PGGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPsGA+GLIBCXX_ASSERTIONSiso_8859_10.so-2.2.10-35.el8.x86_64.debug7�~i�7zXZ�ִF!t/���H]?�E�h=��ڊ�2N���. ���x�'�'�	��A�A"��:��jL-���M��k�F(H�4�@�q{h�'�Eo�TU`n╜��S���e�uk�>˻�1vB�6�!#�88r:լ�����t<�A�`�(Y�	�׋��a�W�P�q0q	s6���r�T��\@��'�N���q�Y�ǏޚK3_�4$����[��΄�t��A���������S�&��q��ޭ�r�gq�@ʧ1�5�U���S2�F�Q�2�W��d���QT:6�~m(��!���(LL�g�y�CB!�
�sL�1.�v�Y����{�5ln����Cm�u���%�eF�"��啂�-�n�19�b��
�_s�؆��ِ{�L��6T:<)
�`��:j9�2K�E��lV�:v�� )Z1-�� �M����xR�k��� O^�T���y����D"�L~��m� <ݎt����v���7��C|T�x�9��k���o#9>r�$Q��J*8صqeL�FJ3�]E7@�"��
�,NT��W�a��\1�����-��xx).=� �0u*��a͗(�%x`}hI�ۢH�����&������[V�Bi�������CuV�so/�f,KsYȅ	4`Ģ�KU�׆~��6YHY��T�1�G��$L���a�g��^���OߧTH�	,L݅�BN㧳kU��=�Z�D�5���8�r�t�	��лL;�ީ�[R��V<�w4l�.�k+��`}��z-��FP�>1H���1j(�Ra*.\%}�c��/��U��~(oA�T�~�qK��=�w��=$n�e��Ⱦ�;o
��̦s���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o::*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}HH
�``� ���D�((���� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�8&+lib64/ruby/2.2.0/x86_64-linux/enc/gb2312.so000075500000017000150402105750013207 0ustar00ELF>p@�@8	@00 �
�
 �
 �� �
�
 �
   888$$  S�td  P�tdttt$$Q�tdR�td�
�
 �
 XXGNU��l�{����<�1o��R�P 	
BE���|�qX)3l am , F"�0 �8 �0 U0'__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_gb2312rb_enc_findrb_enc_registerlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��
  �
 ��
 �
 � � � �    ( ��H��H��	 H��t��H����5
 �%
 ��h�������h��������h��������%�	 D���%�	 D���%�	 DH�=�	 H��	 H9�tH�V	 H��t	�����H�=�	 H�5�	 H)�H��H��H��?H�H�tH�%	 H��t��fD�����=E	 u+UH�=	 H��tH�=� �Y����d����	 ]������w������H��H�=&���H�=!H��H�������H��H���EUC-KRGB2312; ����<���d����|zRx�$H���@FJw�?:*3$"D`���0\8���'HWGNU� ��
 }�������
X�
 �
 ���o`��
 H���	���o����o�o����o�
  0GA$3a1�eGA$3p10670WGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realigngb2312.so-2.2.10-35.el8.x86_64.debug�L�&�7zXZ�ִF!t/���]?�E�h=��ڊ�2N�$���`�Z�~QvZ�?�/k���o�����Оxgh$�9@��,O��!���>=�P��pN�nt2i�䗛CG*4[R��(W�[�E�a�,��:���]m)�n�&�Ih��$향c>�Ou�!@�a���Z�\�4{��y��/O�>��f�@&�+BZ\��X��[B�˵�
�	}�%z5@���<����ױ�ʇ+lZ���Y���/6P�_�
��2R ��
�l\

)y�@��?e��p�s�
�2��	C�"���_v񅨵�Iٷ��/�
��1�^�8�3,~��u���Q��o��49G��9�4��6(e���x-�DU�9�p}������_G������27��@'��a�ưB�;�h�5����������]�R:�!8>�0����jfi.!~��^��8;�W:��i�+栅���4+����yj��yr�XO����fo�_�:�:��1��������W<x;����7�?9�.�o\k�
������֟���Բ���4��~
�JCrR�Y�™�����r�"�{����)�<�55���]��Y�.	ӏ�!��;3Q�䁴۶� %Ĵ�'|A�J	���(֐�b���S1��s��Z��0Y&�q�0�/���ᬛ_�	_o���K��΍�E
��hN0*���Ǿ���ك&=?չ%��`Cۅmf+w�u���}GT��Ƿ�HC�.��
��诔X��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��0��8���o��E���o�� T���^B��Hh��c@n@@0wpp�}XX
�2ee�tt$���t� ��
 �
��
 �
��
 �
��
 �
 �� � � 0�0 0�8`0�
(,T@�+lib64/ruby/2.2.0/x86_64-linux/enc/encdb.so000075500000027060150402105750013371 0ustar00ELF>p@�&@8	@HH �� � �� �� �   888$$(((  S�td(((  P�td���$$Q�tdR�td�� � XXGNU���e:+�Ӏ[�Y�(���@0BE��j���|�qX ��` ���q, F"$X  U0	z7`  +X  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_encdbrb_encdb_declarerb_encdb_aliasrb_encdb_replicaterb_enc_set_baserb_encdb_dummyrb_enc_set_dummyrb_encdb_set_unicodelibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64ui	<�  	� �� � � � � 
�      (  0  8  @  H  	P  ��H��H�� H��t��H����5� �%� ��h�������h��������h�������h�������h�������h�������h�������h��q�������% D���% D���%
 D���% D���%� D���%� D���%� D���%� DH�=� H�� H9�tH�V H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�% H��t��fD�����=m u+UH�= H��tH�=� �Y����d����E ]������w������H��H�=z����H�=y���H�=s���H�=p���H�=i���H�=h���H�=e���H�=_�x���H�=^�l���H�=Y�`���H�=T�T���H�=O�H���H�=J�<���H�=F�0���H�=>�$���H�==����H�=<����H�=;����H�=:��H�=9���H�=8����H�=7����H�=6����H�=5���H�=5���H�=5���H�=5���H�=5���H�=5�|���H�=5�p���H�=0�d���H�=+�X���H�=)�L���H�=&�@���H�=#�4���H�= �(���H�=����H�=����H�=����H�=���H�5�	H�=�%���H�5�	H�=
����H�5H�=���H�5a	H�=�
���H�5�
H�=�
����H�5;	H�=�
�v���H�5�
H�=�
���H�5	H�=�
�P���H�5�
H�=�
���H�5�H�=�
�*���H�5�
H�=�
����H�5�H�=�
����H�5�
H�=�
��H�5�H�=w
����H�5k
H�=k
����H�5}H�=^
���H�5R
H�=R
���H�5WH�=E
���H�59
H�=9
����H�51H�=,
�l���H�5 
H�= 
���H�5H�=
�F���H�5
H�=
���H�5�H�=�	� ���H�5�	H�=�	�]���H�5�H�=�	���H�5�	H�=�	�7���H�5�H�=�	����H�5�	H�=�	����H�5sH�=�	���H�5�	H�=�	���H�5MH�=�	���H�5�	H�=�	����H�5'H�=�	�b���H�5H�=x	�O���H�5H�=q	�<���H�5�H�=j	�)���H�5�H�=c	����H�5�H�=Y	����H�5�H�=Q	��H�5�H�=G	����H�5�H�=?	����H�5|H�=4	���H�5iH�=,	���H�5pH�=$	���H�5]H�=[���H�5OH�=	���H�5<H�=	�X���H�5$H�=-���H�50H�=��2���H�5(H�=��o���H�5H�=�����H�5�H�=��I���H�5�H�=����H�5�H�=�����H�5�H�=�����H�5�H�=����H�5�H�=����H�5�H�=�����H�5�H�=�����H�5H�=z�a���H�5{H�=o���H�=��2���H�5�H�=V����H�5�H�=N����H�5BH�=I�Y���H�5�H�=B���H�5�H�=7���H�5H�=,� ���H�5�H�=#�
���H�5�H�=���H�5�H�=���H�5�H�=����H�5�H�=����H�5�H�=��^���H�5�H�=����H�5�H�=����H�5�H�=��%���H�5�H�=��b���H�5}H�=��O���H�5jH�=����H�5�H�=��)���H�5OH�=�����H�5<H�=����H�5�H�=���H�5!H�=�����H�5H�=�����H�5H�=��g���H�5�H�=x�T���H�5lH�=q���H�5�H�=d�~���H�5�H�=\����H�5PH�=V�X���H�5�H�=J�E���H�5�H�=B�2���H�5�H�=:����H�5�H�=2����H�5�H�=%���H�5H�=���H�5YH�=U����H�5FH�=���H�53H�=����H�=��A���H�5�H�=����H�5�H�=��{���H�5�H�=�����H�5�H�=��U���H�5�H�=��B���H�5�H�=��������������H�5�H�=�����������H�5�H�=����H�5�H�=w���H�5�H�=l���H�5|H�=a��H�5iH�=T��H�5VH�=N��H�5CH�=@�{�H�5<H�=1�h�H�56H�=%�U�H�50H�=�B�H�5�H�=
���H�5�H�=���H�5�H�=���H�5�H�=���H�5SH�=���H�56H�=���H�5=H�=��m�H�5rH�=�H���V���H��H���ASCII-8BITUTF-8US-ASCIIBig5Big5-HKSCSBig5-UAOCP949Emacs-MuleEUC-JPEUC-KREUC-TWGB2312GB18030GBKISO-8859-1ISO-8859-2ISO-8859-3ISO-8859-4ISO-8859-5ISO-8859-6ISO-8859-7ISO-8859-8ISO-8859-9ISO-8859-10ISO-8859-11ISO-8859-13ISO-8859-14ISO-8859-15ISO-8859-16KOI8-RKOI8-UShift_JISUTF-16BEUTF-16LEUTF-32BEUTF-32LEWindows-31JWindows-1250Windows-1251Windows-1252BINARYIBM437CP437IBM737CP737IBM775CP775CP850IBM850IBM852CP852IBM855CP855IBM857CP857IBM860CP860IBM861CP861IBM862CP862IBM863CP863IBM864CP864IBM865CP865IBM866CP866IBM869CP869Windows-1258CP1258GB1988macCentEuromacCroatianmacCyrillicmacGreekmacIcelandmacRomanmacRomaniamacThaimacTurkishmacUkraineCP950Big5-HKSCS:2008CP951stateless-ISO-2022-JPeucJPeucJP-mseuc-jp-msCP51932EUC-JIS-2004EUC-JISX0213eucKReucTWEUC-CNeucCNGB12345CP936ISO2022-JPISO-2022-JP-2ISO2022-JP2CP50220CP50221ISO8859-1ISO8859-2ISO8859-3ISO8859-4ISO8859-5ISO8859-6Windows-1256CP1256ISO8859-7Windows-1253CP1253ISO8859-8Windows-1255CP1255ISO8859-9Windows-1254CP1254ISO8859-10ISO8859-11TIS-620Windows-874CP874ISO8859-13Windows-1257CP1257ISO8859-14ISO8859-15ISO8859-16CP878MacJapaneseMacJapanANSI_X3.4-1968646UTF-7CP65000CP65001UTF8-MACUTF-8-MACUTF-8-HFSUTF-16UTF-32UCS-2BEUCS-4BEUCS-4LECP932csWindows31JSJISPCKCP1250CP1251CP1252UTF8-DoCoMoSJIS-DoCoMoUTF8-KDDISJIS-KDDIstateless-ISO-2022-JP-KDDIUTF8-SoftBankSJIS-SoftBank; ��<d�d��|zRx�$���FJw�?:*3$"D���\ �zHmGNU� 	�� ���H8
�� � ���o`�
u  �x��	���o����o�o����o� p�������GA$3a18�GA$3p10670	�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignencdb.so-2.2.10-35.el8.x86_64.debug\��7zXZ�ִF!t/��]?�E�h=��ڊ�2N�$D���`�Z�~QvZ�?�/k���o�%.mz>��jze��85];A�ٙ�Nk]DQi?{S�9P����U��6�T1�Y���AΝ|���ռx��k�9�vwld4��3��@c���?=E�"t����_:�Uj�+`��
̾�s�F#m�4Ѩ����,RSi�S`�c#Z�w��{�k�,��
CK+��f�x���0�$#k���B,����Ȕ��:�tO�<qz�)s�,�BU���Z��d4�G�Ѵ��AW��g��:Cޞ��FV����N&w6���s���\ԇυ#��4��1dDU*�T��!��� �,��c�L�H���;�#\��pҋ�����B�Ɣ�S#�Q�a�};J6�D�I����Gx7I�,�II紱p��!�q,.
��@�*�>MpO��z��D�)�w7�+�sO�.w��>U��5U��s�x��$AJ
Ʉ �Hոss$z]�+)�cd�e`
ʤ)g��ʎn�T�a$�`Ў��hA�Pu��x�,~FWZ�F�T��d!W�ڬߑ�+/�$Zy=�C5H#eaJ��c-�N}��kj5�No��ޗ�1bJ���[�j��b�Z��qή�C����{{d�s�����8�{:��X'��]�0���KMV,��	���1c�i,)��'%p��i8���C�#��%�!�mB�&#w��*���r��m
{g���7�J�X�1?�$��	iH�n�KBأ'6�9A@���X)6��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0u8���o�� E���o�� T���^Bxx�h88c``�n���wpp:}��
�2������$���x�(( �� ��� ��� ��� � �� � �   X�X  X �` `X �
P"(x"H�%+lib64/ruby/2.2.0/x86_64-linux/enc/utf_16le.so000075500000027350150402105750013745 0ustar00ELF>�	@�'@8	@hh �� � HP �� �   888$$HHH  S�tdHHH  P�td���ddQ�tdR�td�� � GNU!�j���5l��+��Z��@ HBE���|!��qX ��� h��B, $F"U�8  �@  ���8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_unicode_get_case_fold_codes_by_stronigenc_unicode_mbc_case_foldOnigEncAsciiToLowerCaseTableInit_utf_16lerb_enc_registeronigenc_unicode_apply_all_case_foldonigenc_unicode_property_name_to_ctypeonigenc_unicode_is_code_ctypeonigenc_utf16_32_get_ctype_code_rangeonigenc_always_false_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�� �
� P
    �( �8 �@ �
H �
P X 0h � P` p x � 	� � � � � 
�      (  0  
��H��H�� H��t��H����5� �%� ��h�������h��������h�������h��������%m D���%e D���%] D���%U DH�=Q H�J H9�tH�� H��t	�����H�=! H�5 H)�H��H��H��?H�H�tH�� H��t��fD�����=� u+UH�=z H��tH�=� �I����d����� ]������w�������G������Ȁ��t�D�W�O��
%���ʁ�	��ff.�f����������ff.�f�����L��I��H��H���������M��L�A���xA�xtI��H��H��L���D���@H�i �A���H��D��H)���~H�W��у���u&����u��~$�G��<������D��ø�����f.��F�ø�����fD��H�W1�H9�v�?
t�1�����ff.�������v$������
�����f�~f��Ðf�>�����H��H9�v/H��H)�H��H��?Hʃ�H)�H������H)��P����t�@H��H�P�H9�HG����H�5u H�=�����H��H���UTF-16LE;d������������� ����@����`�����������$@���8����L���`zRx�$����PFJw�?:*3$"D ���@\���CpD����P����\���K�����Z���"����9�,���P�h���GNU��
P
 ����
�
0P������0	
�� � ���o`H�
3  `��	���o����o�o|���o� `	p	�	�	GA$3a10	�GA$3p1067�
�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA+GLIBCXX_ASSERTIONS�
�

GA*FORTIFYutf_16le.so-2.2.10-35.el8.x86_64.debug}��7zXZ�ִF!t/����]?�E�h=��ڊ�2N������!�eoة��!�3;�zA"���/Kt�6�'�tIV���o��)h�
ː��/|�X�;p`��a4<t�!`��R1y�8r�
�F{>2M��@�DM<�].C�'vIy4Π���݇��cln��3��s;*�|������^^K�o=�����ʪ��1��q�aph�o�`dh���M���D�c�CY5I���<��<���x<w��j��gO��M�-U��@����S�92�I����te	*K��^_�=�Mw�H4~",Ő"��K+:6&G���'1[Y����&D�Y 'p��������'����?V���Ӹa��<F�rf�Ă5����4`���u�(�TL<2zP�h�j�vl(l�1Ϡ`��:�P��-�nȜG!�N	4���*�Z�EB.��nʌ�y�2�n�������$Q��i�زj���m��
��U��_'+��	��S�?��Q٣�d��FW�k%�!�% .����e��bU@o�߂N������kP�U$j�)��Pu[^���OSKe�X����`��󱄏§�6�J��=��Jq@9���lWJ��ƿ�I�:;7��;kCPu+�#=�,��T�6�P�f	w߲G��ڎ�$d�5��pd]��K��.&���7�"o��ق_\P6`�i�#��<���n�i��AkA�GW�:͜���P:[��ۏT���r�(4��(�ƁH:��*�;�̤��=�Kf�,�,�J%
!�du"*�G��ٶ�,�q�L����
J7vW節X�o������kp�f}y��:A�7�*��SW�6� t��#�ً��C��U�(X��S�8q�*ѼC���D������6/O�,^b��C|���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0HH38���o||$E���o�� T��^B��`h0	0	cP	P	Pn�	�	@w�	�	�}��
�2��	���d�8
8
�HH �� ��� �� � �� � �� �(�   8�8  8 �@ `8 H
�",�"�|&+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_1.so000075500000027250150402105750014026 0ustar00ELF>p
@h'@8	@�� �� � @H �� �   888$$���  S�td���  P�td���DDQ�tdR�td�� � GNU\+6���^b���k^�D���@ BE���|1,\�qX� ���� z�<\U�, F"O0  b8  �P
V0  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_apply_all_case_fold_with_mapOnigEncISO_8859_1_ToLowerCaseTableInit_iso_8859_1rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Eui	g�  � �
  ( �
X 
` �h 0x �  
8 @ H P p � � � � � � 	� �      
(  ��H��H�� H��t��H����5 �% ��h�������h��������h��������%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�
 H��t��fD�����=E u+UH�=� H��tH�=� �Y����d���� ]������w��������x�@��w8H�H���� �A�>SuH�FH9�v�F���<Stq���x�@��w'H�H���� �A�>st���fD�P@��v�P0��wH<���<�tLH�H���� �A��H��A�H�A��D�P ��v�P��v1��D<�t�H�H���� �A���H�ssH�H�yH�SSH�H�AH�yH�� H�A(H�A<H�SsH�AD�H�y0�ff.�@��1����w��H�����x����ff.�f�����I��I�ѿ�H�5��^���ff.���H��<�tH�� ���H����@t޸ssf��H��ff.���H�5� H�=������H��H���ISO-8859-1������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@�����������0�����������0�����0������4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��0�0�0�0�0�0�0�0;D`���`��������������0����`���������zRx�$����@FJw�?:*3$"D���0\��apD���#�`���"�|���B�����GNU� �
 �

�0�"-;Es�	
h
� � ���o`��
�  H�	�	���o`���o�o0���o� 
 
0
GA$3a1�	u
GA$3p10670g
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY0�GA+GLIBCXX_ASSERTIONSiso_8859_1.so-2.2.10-35.el8.x86_64.debugI���7zXZ�ִF!t/���R]?�E�h=��ڊ�2N�$ �$����s��)X!h�s�A��w�Zx!xI�;R������d��Ab�1��u���׹D�S�*�-�O�g�L�un�k�e$�j�f��i���ۏ�����}΍�|�g�q����9QS���.�����wF(�,r��_n���]�����-dƁ�_$1ռD�u6�Z��G�Y��NP
������	~$N�лn��ʹp{Q���S�\B��i�`(e7mlԴԬWy.��`d�~��Y��G����X\���ĝY=�&�!���%�0��ϰ�T��5$�<
�|r��Z�~�5�݃�zL�� a��m9`;��������D}�-�-��s#���)=zؘY�+����f�-��`�N�b:;��r��p;����0�:��?8R���2���T*ϙ�_'d���|f,l�*�����d��b�K�_L���q�Ƀ8Ef��W��7��on�à��h�V~��?�jm��J���"����������t��4Qx�Y��nɄdF����ׅf�"�����pI�*	�I�x�XH_�J�x�����+贌Q5��xpX0u��p��
ѫ/~���D|��Υ\,�W�zj�WZ-Ⱥ���
��l&�yЉ�s�޼��m�!���|ᯤf<?�N�K�Ѥ�k*���Dl�N�Ƽo5E1�\ζBq�U�1�=���t���ρ��>�i��'���^"eU�A7HN��71�8�ʹ�2�i�k�<�:�^�>�ق8:��D�v+�_�'��ÿ�o޽��9[3����\���⁊��i����7�wr�m	B��������g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o00*E���o`` T��^B�	�	Hh�	�	c

@n@
@
0wp
p
�}h
h

��
�
  ���D������� �� ��� �� � �� � �� �(�   0�0  0 �8 `0 H
x"0�"�<&+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_9.so000075500000027250150402105750014036 0ustar00ELF>�
@h'@8	@��   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNU<l�Gю� ��~��z�ᆏY�@ 	BE���|�qX9,\ "U���� �Ee��, F"X8  k@  _8  �0__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_iso_8859_9rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Nui	p @     H `x �� �� �� P@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������1����w��H����x����ff.�f���H��I��I�ѺQH�5�������H���@����I��I�ѿ�H�5����ff.���H��<�tH�����H����@t޸ssf��H��ff.���H�5 H�=������H��H���ISO-8859-9������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@�����������0�����������0�����0������4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��0�0�0�0�0�0�0�0	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������������������������������������������������������������������������������������������������������������;D����`������������0����`���������zRx�$���PFJw�?:*3$"D@���@\(���#pD���,HL W�X���"�t���B�����GNU�@  `���P+6DN|�	
H  ���o`��
�  `�	��	���oh���o�o:���o� 
 
0
@
GA$3a1�	UGA$3p1067PGGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPsGA+GLIBCXX_ASSERTIONSiso_8859_9.so-2.2.10-35.el8.x86_64.debug�7t��7zXZ�ִF!t/���G]?�E�h=��ڊ�2N���. ���x�'�'�	��A�A"��:uG�VO|~�y���c�G+s�aF�����݊�V3IN�i����o3;S�+�7܋��Z������O~���:��<ǰ��1f��]��.ɓ�iNa���GZ2�]�ez���e“�t�Z�gND�Ҋ�6��2�h��V�!��I�S,Y��>��p
��T߇?ԑ�6�4�Ä�D�X&+������[�X�'B/�k����E0��%��N�ۏ��*�C���0z�����Y	�}�e5�Q����m,�~�&�X�J{lk��k�Q���;���s�A	Q�i��5��Y��=k��;�:)#�y!�v`ID����9����c/��mH��7����Y�
���:q��6�O���ӜH�Ӌ�n�������8�UQ��]�
��B���k��Al� x�Bh���r�kʧMs�>2�6�g���}#R�1I�Oɞ��u1��5�Ov��b��y"�p�+;N��:��Lj�<��=��O0�v�Ly�)����^�W%=����7��F
�Qn�����~`lp��Ҟ��ڎ&�d����
��İ�5o���}ԃt�[��E�O��2t�tn������#^���gي[�ܠ*���0|�kR_ /�?z�e��]q��8��wXL��tXܯ�S\T�:i%���^~�W�뀐V��g�1�+�w�n �9smR�o��Ϸ9��ʬX�S�
@e��� �vT��oX���}���^1�{#i����]e�O^	��g/�Z�5�j������z���t�v���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o::*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}HH
�``  ���D������� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�8&+lib64/ruby/2.2.0/x86_64-linux/enc/euc_jp.so000075500000037510150402105750013564 0ustar00ELF>P@8@8	@� �  �,�, �, �� �-�- �-   888$$� � �   S�td� � �   P�td�����Q�tdR�td�,�, �, PPGNU�,q?�A�z�$�YJ��#���@(BE���|�T5	�qXU gN^ +����, F"�P0 �X0 B�P0 __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeOnigEncodingASCIIonigenc_with_ascii_strnicmponigenc_minimum_property_name_to_ctypeonigenc_apply_all_case_fold_with_mapOnigEncAsciiToLowerCaseTableonigenc_ascii_get_case_fold_codes_by_stronig_is_in_code_rangeOnigEncAsciiCtypeTableInit_euc_jprb_enc_registeronigenc_is_mbc_newline_0x0alibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��, �, ��, �, �, �, ��, ��, �- P- 0 - (- @@- �H- �P- 
X- p`- �h- �p- �
x- `�- �
�- �- p
8- �/ �/ �/ �/ �/ 	�/ 
�/ 0  0 (0 00 
80 @0 H0 ��H��H��% H��t��H����5�% �%�% ��h�������h��������h�������h�������h�������h�������h��������%-% D���%%% D���%% D���%% D���%
% D���%% D���%�$ DH�=�$ H��$ H9�tH�^$ H��t	�����H�=�$ H�5�$ H)�H��H��H��?H�H�tH�=$ H��t��fD�����=�$ u+UH�=$ H��tH�=�  �Y����d����]$ ]������w�������H��
H�
��xIL�GL9�t`D�GH��H�J���x;L�GL9�tRH���OH�1��<
����������fD��������D��f���������D@��f�H�)
�����H�
���������I��I���Q���H�A�
��~/H9�v*H���f.�I9�vH���r����r)�9����f���I��L�NH����t�����L��L�N���t���(L��I��@�8L��L������M)�H�L9�u	D���DI�p�����ff.�@����Br<����~��	����D����v7������wH�2 H��H�1���������f.�������f.���AWI��AVI)�AUA�@�I��ATI��UH��SH�������6�EH�
D��1�D���wrL�=�Hc�I�_��x_L�5�I�A�1��uKE��H�=a! L��H��J�T
L�L$�|�����u(L�L$C�<uA�D_H��[]A\A]A^A_��H��L��H��L��[]A\A]A^A_�T���@����I��I�ѿS1�H�5F�A���������v7�����w0��%����=���t�瀀���p��������E��f��øo����@��?\����v%��_Y����v��_X���G0��!C��f.��G �ff.����H�>���xH�[  ���H��UH��I��L��SH��L��H��������x���H��H����;���Hc�=p���t	I[]�����ff.����AUI��A��ATL��I��UL��SH��L��H��H���������H��L��H��A������D�ω���A��\����v5A��?Y����v)A��/X���� ��A9�uH��1�[]A\A]��A�Q�A9�tGA�D$�A�$A�D$H��[]A\A]�DH��I��L��H��D��[L��]A\A]�b���f�A�$�A�D$A�T$H��[]A\A]�fDA�Q��f���I��H��M��I9�vEA���_<]v��L9�sI��A���_<]v�H��L������H�L�I9�rM��I)�I��N�L���D����w��v2����t@1���t9Ã���wXH�Q H��H���C���H�1 �����x���������w6��%����=���t"�瀀��1�������ø�����f.���1�����H�5 H�=.�����H��H���EUC-JP













































































































������
�"hanlatingreekhiraganakatakanacyrillic����ѧ�������ئAZaz��ڣ��������������������������ݎ����������£�ã�ģ�ţ�ƣ�ǣ�ȣ�ɣ�ʣ�ˣ�̣�ͣ�Σ�ϣ�У�ѣ�ң�ӣ�ԣ�գ��֣��ף��أ��٣��ڣ��������¦��æ��Ħ��Ŧ��Ʀ��Ǧ��Ȧ��ɦ��ʦ��˦��̦��ͦ��Φ��Ϧ��Ц��Ѧ��Ҧ��Ӧ��Ԧ��զ��֦��צ��ئ��ѧ��ҧ��ӧ��ԧ��է��֧��ק��ا��٧��ڧ��ۧ��ܧ��ݧ��ާ��ߧ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;���� ��P�����@���$��8 �L� �p�����0�@���@�zRx�$���FJw�?:*3$"DH�p\`��p��N�(�a������F\����F�E�E �I(�D0�D8�DP�
8A0A(B BBBHD8J0A(B BBB L�4X�LH��4 \��ti�J�p
ADp��F�H�G �D(�M0Z
(C ABBHd
(A ABBFD
(M DBBG[
(A ABBG���[���GNU���, ���P0@��
p���
`�
p
z������8

�, �, ���o``�
0 ��	��	���o����o�ox���o�- p
�
�
�
�
�
�
GA$3a18
%GA$3p1067GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�GA+GLIBCXX_ASSERTIONSeuc_jp.so-2.2.10-35.el8.x86_64.debugn�<�7zXZ�ִF!t/��/�]?�E�h=��ڊ�2N�a�Ӈ�sዋ?R�+�8�x�·����`���A��=]���2u�F_�bl/�-1���O��za(\��O�HU�Ex_�'���/���97h�v0��v6Vpņ��*Mm}���ܿ�3r�E���"I�g�����p�`���v
;�Rʭ���F&�`$s�����;�/M�l���@0�FHF#�x�*����\��SX@y_Lp�Z(��Ž��u̒���U:L�@b�6P7*?�]��t�@j��K�*�`�}x�~D�`�<��3e|�&r��BƯ(��o�٪�K�=�"�n�`W�FC�a�ƔmK'o���7b�76s(�w������2.MX���:4 �6���t�T�H��tw�.�S�!X�쵠����)�r+�Cv�;�,z�uh�6=o
�pZd#B&��s��z%�}(�O{�>�ݜ^`���񮟥X��E��qMFŅ	$f ��kR�(�a/�g�H���(����
�\Ȫ�~�E�U1��jVj�ּ|kL�ի+ה�$I5�zX^t�ބ
jb�w�
��ĥd�'7�:I��(Цm�|��z��t���j�0��X	�B��a���q���s�&	J����
"�`F澃���Z&�n,1M�}u�`:M�Y�p
ԭ�S���u	c����I��'��Jy2K��/�]�x���B7�bN�P�;|���<��Ϯ�<Bˎ�k1~�S~���b�e~��1V�/��j���s/��Q�\IF%����N+����|ڻ�~��/���)O��	¦�V�S�vd�-����L�ى��C��,�~,��?s?�v�=���Q���&��d��ޠ��!��~��Z5�jJ_A�'ЎΚ�YB��� �n�(�t-�	{�B^	��v��2��~J����:@
�
��1����_�N&A���:e4���t�������x9�� ��A��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0``8���oxx&E���o�� T���^B�	�	�h8
8
c`
`
�n�
�
pwPP�}
�@@� �����PP0�� �  ��, �,��, �,��, �,� ��- �- ��/ �/8�0 0P�P0 P0�X0`P0H
�2,�2�6+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_8.so000075500000027160150402105750014035 0ustar00ELF>P
@0'@8	@xx     �� �   888$$XXX  S�tdXXX  P�td�
�
�
,,Q�tdR�td  ��GNU֋�����q���I ���d�@ �BE���|6,\�qX� ���e� u�{0R�, F"n(  �0  U@u(  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_iso_8859_8rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_ascii_mbc_case_foldonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64dui	�  �
    H �� @ 	X ` h p x 
� 
� � � � � � � � �      ��H��H�� H��t��H����5 �% ��h�������h���������%� D���%� DH�=� H�� H9�tH�v H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�E H��t��fD�����=] u+UH�=" H��tH�=> �Y����d����5 ]������w������1����w��H�y���x����ff.�f���H�5� H�=.������H��H���ISO-8859-8@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@���������������������0�����������0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0;,`���H����pp���������zRx�$���0FJw�?:*3$"D��� \��#p����GNU��
  �"1ALZd��	
X  ���o`��
�  0�	��	���o����o�oh���o� 
 
GA$3a1�	eGA$3p1067WGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY3GA+GLIBCXX_ASSERTIONSiso_8859_8.so-2.2.10-35.el8.x86_64.debug��)N�7zXZ�ִF!t/��?]?�E�h=��ڊ�2N�a�Ñ���^�ַ\���{h�9��G��:5��:�u֚��*�A���ˏL�3�I�e]M��J]3�2�U�70�EV�u�N$�1����7LS8TB�Na`��#'��`��)�@-\�G� ��G�L��9�f�JBj�����||�!K$��CxG{`��a��2��~�s�7�S>~��+���u�1Eq:@�B��sHfU�)��(;A��Ūë2���3�
����	,"g�ّ��k��h&�����|Ђ�mT������$����b�~�c�����p�
.�w��	����$L��1�l�e
⶗}`8YyɅ���7-\Q���N���ѵ� ��H`O0suI�@Tj��m�a�RNB0��L�e1h���R$�}u��a2��E-���d�����p���uR	,��}�E���h��^��{��&ّP�G+�
� �.�B��I�.�T�f��s_�6��y�[/����m��H˨�ߤ��;rÌ�}a�L�n�7��،�td9t�T�ʥ�O�#]��Ɵ�r�a��;�b�Aё3�?Ve\���R獄���qP�T �1�Z
�u�f\^]��ZH6~F~u+~�}X���9 �8*sHh&�V��Cʠ�u�n�7|��ګ����~��1Kb���Ʀ��EK��r�zX=ۥ&�C(<uͮ�ԧ�h���[�v�Z糧��5����J��k)����ڡ�0x�U��ּL Β��y�=l\�)����yl	�OF=�)0�z3�gMy:A�)����vi_��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��0���8���ohh,E���o�� T���^B�	�	0h�	�	c

0n0
0
 wP
P
}XX
���  ��
�
,��
�
��XX � � �   � �� � �� � �   (�(  ( �0 `( H
p"0�"`&+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_5.so000075500000027240150402105750014031 0ustar00ELF>�
@`'@8	@   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNU��V
i�<�i,�]�4��@ BE���|4,\�qX "U���� �Ee��, F"X8  k@  �_8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_iso_8859_5rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Nui	p @     H @x P� �� �� �@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������H�H������H��ff.�@��1����w��H�I���x����ff.�f���H��I��I��1�QH�5����.�|���H��������I��I�ѿ.1�H�5f�q������H�55 H�=.�I�����H��H���ISO-8859-5��������������������������������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@��4�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��0�0�0�0�0�0�0�0�0�0�0�0��0�0	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������;D ���`p����p����������������� ����zRx�$����PFJw�?:*3$"D��@\���!p��#����)HI W����� ���GNU�@  @P���+6DN|�	
  ���o`��
�  `�	��	���oh���o�o:���o� 
 
0
@
GA$3a1�	%GA$3p1067PGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPqGA+GLIBCXX_ASSERTIONSiso_8859_5.so-2.2.10-35.el8.x86_64.debugU��P�7zXZ�ִF!t/���D]?�E�h=��ڊ�2N���. ���x�'�'�	��A�A"��:�6�L-���M��k�F(H�4�@�q{h�'�Eo�TU`n╜��S���d	{�z�I�|%������������h5�����v����(٤�g8A�mS��@ja�?�6�#�fk��:��R~`��GMUWk	_�؈AOʪ�fzQ�*3.$�i�Ycpx�s�aO���^��m��^�e�l��{1�E�N=Z}�xR|�Q||KS��װ�՛߿�M��MJy��2�fަȁTqS��v$`T?I�h�u�j�k�Ȩh�?q�_e9���(c���RvV�rN5,G���^���!�o����ןJ�(+�+����-��OGW�L��j��S�j}����5m�u?Z��"��}!G���(�;�H֏X/3��5��#�v�α��Ѭ=�����`s�Y\RzG4�E���Ucی�3��x!X��6�~�I2�a�.���m!i�J�lu���NgǦ��MQH�i�Y�3kmf�W��^���
�V����9Z YO
�.J��hO2�}`�d�@8Z��$����L�<U�V(�,�lN�#����G�s-�H1�*��d�CKe��~c��ĕ�m<t���w]M�'���̻ ���'�)�����lqA[���C8���v�O�L��!w���O�jo���}4��p>�u��Թ������`��?P��M^ݏ���!2�X]>�>Wu	&��]Uʶ�Y[�t1.���"ya��
��%=��aĨ��
mb�^�-��%��z*6x���/If��*#�2�
z�$��p�3m�TDK�����8��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o::*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}
�@@� ���D�((���� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�4&+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_13.so000075500000027250150402105750014111 0ustar00ELF>�
@h'@8	@��   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNU{���ǝC�=�ۛ
ɝ~��B BE���|b����qX #U���� �Ff��, F"Y8  l@  �0`8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_iso_8859_13rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Oui	q @     H `x �� �� �� P@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������1����w��H�9���x����ff.�f���H��I��I�ѺQH�5����!���H���@����I��I�ѿ!�H�5����ff.���H��<�tH�����H����@t޸ssf��H��ff.���H�5 H�=������H��H���ISO-8859-13������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@���������4��4�����4������0���0��0�����0�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��0�0�0�0�0�0�0�	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������;D`���`�����������������@���������zRx�$����PFJw�?:*3$"D ���@\���#p$���,HL W�8���"�T���B�����GNU�@  `���P
,7EO}�	
H  ���o`��
�  `�	��	���oh���o�o:���o� 
 
0
@
GA$3a1�	UGA$3p1067PGGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPsGA+GLIBCXX_ASSERTIONSiso_8859_13.so-2.2.10-35.el8.x86_64.debug����7zXZ�ִF!t/���H]?�E�h=��ڊ�2N���. ���x�'�'�	��A�A"��:y���XN��~s*d��Ђ�Avm�p$O��^�q\���ca�����F���y;�f�F5\���@�a�r��,��,^i�s&�z�S+]6xSx�xq!F�팉D�'2��1
��p�}��o��v�Χള���M��Fz;Q�\h�ȟ+�.�e��>s�ӤU����Ǹ;�$p�	�Jt~vkDɹ�$��M#FX���)����~�D�ns#��H�觌�@�4�u@T��@�QŚ��X�(R��x���-د��2Pv3T�rp՜�1�C�d\�eT,cQ�����(�eGwͣ2s�
r{��w�o@�Q�#�|�C���y�1ug�b�hP��].$"�G�?�ż��Ҷ�E���:�g��u�$͇��?�Z��b>~�؏�14�E�6�nB{����1��a�3S�dq(�F�Ww
]6h흣�3��X�{i�Us���t�C�ˆ���5�h��՜�]���*viy\���\g3Jl*���n~Tj��j��W�D�d,-�{��e��t��\O��?��#*�4z�N$@V��l�����(����^:�5����E9���lQ=JRN<O�(�+q)�M��{M�'��t��M��q�Q8��y3���
]����y6'$�C���;���:�"Z'�`s�OAr���F7�3(�µ�De���T7���3��_N���WɤM��f�go���ϝ�ɚ����sϝ�a
��U�]��i3>�[D1)o�U����]3��rgV����3)ճ�w�b��̦s���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o::*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}HH
�``@ ���D������� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�8&+lib64/ruby/2.2.0/x86_64-linux/enc/emacs_mule.so000075500000027310150402105750014426 0ustar00ELF>�	@�'@8	@ �� � @H �� �   888$$���  S�td���  P�td```\\Q�tdR�td�� � GNUp�����0��Rn,�רu��@ (BE��r_�e��|�qX R{�� �Ur+�, F"�0  �8  �0  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeOnigEncAsciiToLowerCaseTableonigenc_mbclen_approximateOnigEncAsciiCtypeTableInit_emacs_mulerb_enc_registeronigenc_is_mbc_newline_0x0aonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	� �
� `
    �
( @@ �H  
P  X �x �
� p
8 ` h p 
� � � � � � � 
�      	(  ��H��H�Y H��t��H����5� �%� ��h�������h��������h��������%M D���%E D���%= DH�=9 H�2 H9�tH�� H��t	�����H�=	 H�5 H)�H��H��H��?H�H�tH�� H��t��fD�����=� u+UH�=r H��tH�=~ �Y����d����� ]������w�������H��H�
��xiL�GL9��|D�GH��H�J���xWL�GL9���D�GH��H�J���xUL�GL9�t|H���OH�1��<
����D�����������D��f���������D@��f�H�	
��������������������H��	��������H��	���������L�E�
E��x H�! B���H���SH��H��L��H��L��I��������~%�H�1��DE�LH��E�H�zH9�u�L�Hc�I�L�[�@��UH��H��SH�^H�����t�����H��H�^���t�����H��H�����t���(H��H��@�8�B9BtH��H���G���Hc�H��H)�H9�u	H��[]�f�H�p��������UH��SH��H���r9rt
H��������H�}�E��~,H9�v'H����H9�vH���J���ȍJ)�9��H��[]�ff.������v7��x.����������w�������%n������f���f.���H��H9�v�>�w�DH9�s	H���8�w��f�����wH�  �����x����f���x,����������w���1�������D��f.���H�5 H�=.�����H��H���Emacs-Mule������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;\
 �x`�P�@�����P���<�P@�d��xzRx�$��@FJw�?:*3$"D��0\���pl�|q�J(���E�G�H g
AAC$�4�bE�D�G OAA�|�F���'��V �GNU��
`
 �
@� 
 ��
p
������`	
� � ���o``�
E  H	�(	���o����o�o����o� �	�	�	GA$3a1`	%GA$3p1067�
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�
�GA+GLIBCXX_ASSERTIONSemacs_mule.so-2.2.10-35.el8.x86_64.debug�OP��7zXZ�ִF!t/��s]?�E�h=��ڊ�2N�	�w��_>i���`7�GFy�#�D�$�]��43������b\�%Y���'�G�6Yt9W(������x�>���g�W���c�0ָa��
��$�d�Dp�<�W'��s�L�-��R㣖�`�c��c��ݢ���?�����=��ؚ<ZRP
�*�ؓV?ءʅ��m/��Ǐ�҉������p�#�q�i�����,�{��P���[��B7���Sĭ�&�y�$�f�_&��K�k��"ٱzo�p�1��&��{�
�|>N���Zؠ�YF/���Q�[��vdGV��Kza}�j
Jwۣ=��y�͇�N�@�k�����o�mߑP��n�o���R0�r�$f{@FԜ�ToŶK�30%-jh��E�Ԑ���}���|dN7�^�Ov���*3?��
}�q���
ƨZG}�ָu��ոnhӡ&n��l���b3anޜ>ݲ�-��uG�����T@F((b�0Pa��<SÑ�������m���}���u-�����.9�+ه}Y�޶���R���-��#����#,^���w�g��ƪ@��SB��t\bD�aA��z��ef��r�0�-F�~��f�Ń�� �l��hx��+Pc+�/"�B5<M�m��Ui��-'�d>3����d�t	�H�,mL�.3����.�Y�~6\�Տ"e7b��`Ⱦ9�O�-y��~��fMG�,JGB�٣���\��0��1,��7Ѻ��p���Oh�^��]# ����u�sn���z��i�k�4�����or�R�*9�Bh"�%�Q�Q^�q"�"qW3)
O%n/�aKB0(���:�y}�魰dx8ϻӣ/��dl>���N����(u[6���n	C���9@ű�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0``E8���o��&E���o�� T��(^B		Hh`	`	c�	�	@n�	�	0w�	�	'}
�@@  �``\���0��� �� ��� �� � �� � �� �0�   0�0  0 �8 `0 H
x"0�"�\&+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_4.so000075500000027250150402105750014031 0ustar00ELF>�
@h'@8	@��   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNU�UI�P�����y�V�&)�@ 	2,\BE���|�qX "U���� �Ee��, F"�0X8  k@  _8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_iso_8859_4rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Nui	p @     H `x �� �� �� P@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������1����w��H�Y���x����ff.�f���H��I��I�ѺQH�5����(���H���@����I��I�ѿ(�H�5����ff.���H��<�tH�����H����@t޸ssf��H��ff.���H�5 H�=������H��H���ISO-8859-4��������������������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@��4�0�4��4�4���4�4�4�4��4���0��0��0�0���0�0�0�0�4�0�0�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��0�0�0�0�0�0�0�	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������;D@���`����������������� ����p����zRx�$���PFJw�?:*3$"D���@\��#p���,HL W����"�4���B�p���GNU�@  `���P+6DN|�	
H  ���o`��
�  `�	��	���oh���o�o:���o� 
 
0
@
GA$3a1�	UGA$3p1067PGGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPsGA+GLIBCXX_ASSERTIONSiso_8859_4.so-2.2.10-35.el8.x86_64.debug��Q�7zXZ�ִF!t/���J]?�E�h=��ڊ�2N���. ���x�'�'�	��A�A"��:~O�+o��[O��'���E�W���3���i�ܖ�0�
�X�G��*"nP+���R�M��K���x��dÑ�Y)\�b�>��5Jb��e����"��[�)�Ѥ���;����,�<�u�?Ŏ��&4��h'�O/�3�+e��6�
s��(�]�n�"�ea�{HS��yhTY����`H�C)���jnԙ�����LvϙWa�����
�[E�?:���_��"��e��(kM(1��?�n�¯��jcg�@��8����!r�����¡�4�.Q;��Vߵ�N5��2Y��9L�M|D��\7��?���U�
\���^�!���xUgk��xE��#m�6�?�ͨ���)����*�����N��7@�w�66#����2D��ژ���ll�T���+@\� UB�̕ƙ�f��Nz��s��l0~��qV�E�>��D��BgѺ	x�Z���$��9�6�|��U$vsd���a|'��-
5�����d+�_m�QC�fI�Y�8	H:�M�4m~�d�;^ͤ�)fk)��Y�dP6�y|�����������$��rG\��L����|��;��R4���dd�|=��غN���<��q��)��3�2T�(r��Q�_&�ˏp�y��UK����0�e|q�������nq&a�OjQ5tM]Y���L&���2�u�}��E!�ְ�i�s�\F�����rvm�I����5'W�6J�kx*ռ�GW7�+���(�鈁0�R���T�ء�����Z*�����������g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o::*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}HH
�``` ���D����� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�<&+lib64/ruby/2.2.0/x86_64-linux/enc/cp949.so000075500000027360150402105750013171 0ustar00ELF>�
@�'@8	@XX   @H �� �   888$$888  S�td888  P�td���\\Q�tdR�td  ��GNU��<��lݡWeSCcb�ٿ��@" BE���|P�e�qX ��o�� U�q&H, �F"
P   X  �`
P  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_mb2_is_code_ctypeonigenc_mbn_mbc_case_foldonigenc_mb2_code_to_mbconigenc_mbn_mbc_to_codeonigenc_mbclen_approximateInit_cp949rb_enc_registeronigenc_is_mbc_newline_0x0aonigenc_mb2_code_to_mbclenonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangelibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64ui	% � `    @ �H �
` �p px P� 0� �� X h � � 
� 
� � � � �      (  0  8  	@  H  ��H��H� H��t��H����5 �% ��h�������h��������h�������h�������h�������h�������h��������%� D���%� D���%} D���%u D���%m D���%e D���%] DH�=Y H�R H9�tH�� H��t	�����H�=) H�5" H)�H��H��H��?H�H�tH�� H��t��fD�����=� u+UH�=� H��tH�=� �Y����d����� ]������w�������H�H�
��x)L�GL9�t0�OH��HЀ<������D@��fD��������D��f�H����������H���<����������H�׉���n���ff.�����L��I��H��H����'��������H��H������ff.�f���H��H��H��H���+���ff.���USH��H��H9�vk�L��A�<t4�F�L�
�H�^�A�<��oD�C�L�C�A�<�~L��H9�u�H��H���A9Au+H�H�H9�rH��H)�H��H�0H��H��[]�f�H��H��H���r���H�H�H9�s���H��먐��H�5� H�=.�)�����H��H���CP949��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;\
@���x�������P����p�����������������0����\zRx�$��FJw�?:*3$"D���p\0���]p|�����������������������(������E�A�G t
DAJ<���GNU��`  ��
�pP0������1�	
x
  ���o`��
^  �0	8�	���o���o�o����o� 
 
0
@
P
`
p
GA$3a1�	�
GA$3p1067�w
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�
GA+GLIBCXX_ASSERTIONScp949.so-2.2.10-35.el8.x86_64.debug�^��7zXZ�ִF!t/��O�]?�E�h=��ڊ�2N�	����c��P@^M�me�3�r7NT??��$���:��<�o���9hֆ�
�ؔ��M�.����ӝ���퇱Jj��:e�>�VGT�+KJ��L����+�އ�q:����
�G
��T|^�C�9��
j}�˩��/�z��	�������7Q��$�՞FZ

<�	B�w>��n���h��P42L�f�q~o�C���9!��	G2��w}cyw�ãֲL(�)4�����<{DŽ��y3/r}�aZ -{N3)"��T�zǛ͓��s�)!PO~�X��c�l,���Y&|ܕ���&������5ꆿ�eQ��{��Z���UVgh��Zm���Z�����[o�L���Mo+�C�F����	������zb�(���{ܐ�"U�ן�	y�V�=�~�a�Z8Yi|�<�w�mBT����gwV�b�%���O�u������m~3}f�ӓ�����􎓥N���J���zi���WP�rϓ�F�
�Z�nF�����y��+ȗ,�*������;�|���_bh���Bz�kW�sr*H��桦<u;��A{R��F֮��r�٥�T-F�f�Ā��։�II�aP��QP�y�Vr.��~)xq�_Z䢻���!��5��REni���&��b�`
��l�28��3`Eٛ��c������j3�[��-R�/�:�U��‚��~����sH�hc�Ü��7�A�W��1TǷR������R��$nj��z?�!\�*J�NSu�����)c�#m>9��
셩WB:� @<��dlʯ�yz�WQ�$��ݱTڠo/�^���5U%�>�?7An�q=ΝGo�Y)Zf����fW�G��~Xt�	x�����:a��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��^8���o��*E���o T88�^B0	0	�h�	�	c

�n�
�
pw�
�
�}x
x

��
�
  ���\�  �88 � � �   � �� � �� � �   P�P  P �X `P H
�"(�"��&+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_11.so000075500000027160150402105750014107 0ustar00ELF>P
@0'@8	@xx     �� �   888$$XXX  S�tdXXX  P�td�
�
�
,,Q�tdR�td  ��GNU��͡CJw$����L��[t�*�B BE���|�qXa���� ���f� v�|1S�, F"o(  �0  v(  U@__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_iso_8859_11rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_ascii_mbc_case_foldonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64eui	�  �
    H �� @ 	X ` h p x 
� 
� � � � � � � � �      ��H��H�� H��t��H����5 �% ��h�������h���������%� D���%� DH�=� H�� H9�tH�v H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�E H��t��fD�����=] u+UH�=" H��tH�=> �Y����d����5 ]������w������1����w��H�y���x����ff.�f���H�5� H�=.������H��H���ISO-8859-11@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@��0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0;,`���H����pp���������zRx�$���0FJw�?:*3$"D��� \��#p����GNU��
  �#2BM[e��	
X  ���o`��
�  0�	��	���o����o�oh���o� 
 
GA$3a1�	eGA$3p1067WGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY3GA+GLIBCXX_ASSERTIONSiso_8859_11.so-2.2.10-35.el8.x86_64.debug�"z�7zXZ�ִF!t/��?"]?�E�h=��ڊ�2N�a�Ñ���^�ַ\���{h�9��G��:5��:�u֚��*�A���ˏL�3�I�e]M��J]3�2�U�70�EV�u�N$�1����7LS8TB�Na`��#'��`��)�@-\�G� ��G�L��9���^xV��E�m�A;|K{n�8�hG�+��}� �<C[���9"⡬��<�#�o�[u��������h�dJF�j7�'h�����eh��(
��\��_u�:��$��`D����gQ����N��烷f�_��L������+~��Z��?S��ق���d/3z����陯��+�y�&��7Ʋ�+E��]�\ `�d�|dg���P�P��Z��8��@�x9��.����T^�A�Is(��r@�]?P�0�n��,:�k�v���u4#�%�l~�EL�1�r���FK���1dԾ��u�L��{b�^�)�[�d���௣�(k��[lD����"`cZ�cD�����3;���F�8+�R����`�J��X�iH�3�Y������gu'ln�@G
,�`.����J:��f{���h�PP�F�L���lh&&�򇴼�f�G��Nf&���hN޲㘔�����eRE���?���PgV�q�Qt8<���T��#]M�i�J^KO��%{��"_<t�҆%�+#���#�2�P��A���M�\pm�0]�}	�Gb`���N�����ޟ�38�P��\����K��v�}�n��YI�֛��Y�{���̠}�ǁ�E�"Z�μ/��=W
��2��j���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��0���8���ohh,E���o�� T���^B�	�	0h�	�	c

0n0
0
 wP
P
}XX
���  ��
�
,��
�
��XX � � �   � �� � �� � �   (�(  ( �0 `( H
p"0�"d&+lib64/ruby/2.2.0/x86_64-linux/enc/euc_tw.so000075500000027360150402105750013607 0ustar00ELF>�
@�'@8	@��   @H �� �   888$$xxx  S�tdxxx  P�td\\Q�tdR�td  ��GNU^�\�3�+��uBcꗤE��@ �BE���|�qXV5	 ��oU�� �r'I, �F"P  !X  P  ��
__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_mb4_is_code_ctypeonigenc_mbn_mbc_case_foldonigenc_mb4_code_to_mbconigenc_mbn_mbc_to_codeonigenc_mbclen_approximateInit_euc_twrb_enc_registeronigenc_is_mbc_newline_0x0aonigenc_mb4_code_to_mbclenonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangelibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64ui	& � `    @ �H �
` �p �x �� �� 
� �X h � � 
� � � � 	� �      (  0  8  
@  H  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h�������h�������h�������h��������%� D���%� D���%} D���%u D���%m D���%e D���%] DH�=Y H�R H9�tH�� H��t	�����H�=) H�5" H)�H��H��H��?H�H�tH�� H��t��fD�����=� u+UH�=� H��tH�=� �Y����d����� ]������w�������H�BH�
��xiL�GL9��|�OH��H�H���xXH�OH9��|�OH��H�H���xWH�OH9�teH���OH�1��<
����D���D��������D��f���������D@��f�H��������������������ø����ø�������1��?~�������H�׉�����ff.�����L��I��H��H������������H��H������ff.�f���H��H��H��H������ff.���USH��H��H9�vG���_<]v	�f�H9�sH�����_<]v�H��H���A9Au'H�H�H9�rH��H)�H��H�0H��H��[]�DH��H��H���:���H�H�H9�s���ff.���H�5� H�=.�����H��H���EUC-TW���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;\
�x�����������������������������0����\zRx�$��FJw�?:*3$"D��p\���p����
�������������������(�����E�A�G P
DAF<���GNU��`  ��
����
������2�	
�
  ���o`��
_  �8	@�	���o ���o�o����o� 
 
0
@
P
`
p
GA$3a1�	�
GA$3p1067��
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�}GA+GLIBCXX_ASSERTIONSeuc_tw.so-2.2.10-35.el8.x86_64.debug�'�7zXZ�ִF!t/��O�]?�E�h=��ڊ�2N�	����c��P@^M�me�3�r7NT?L��8��^�!�n�kdO�B���Ҳ���)`N�R�����<݌�{d��w;q��b��ʤ�<��E/�=����u�!�I�1�i
�v�	1>��x�`)0W~ށe����e1����a!K�n���U^���J��y�v˝��C�H��^�+)e�
�&O��e��!��G�=r�a-�p��ί��Ff�$I�6��:{��� �&��^!��?�]ߋ�j�si����g���:E1
0��7�oȉ9��ܜ`�F:����ư�zz�Fm�flq�[@�-0l����Eh*b�#�Jz�ARP�xR	�3�����U͆QK�+�� �11u�M�R['z
����!�8��D��SC	H�Z���ҳ�0Y/I�L<�$�@��mx�S~xFaI
�;.F����T5�n0��;���k��3)~�@W���[/��,H�(��~�?�)�Z�Q\9�
\�d��ՀF�2�;y��{Y����2�:S
Ɔ�v
�S����^w��oXɓ����G�qdm	��n�rwv6+���,�
�_�X��+�A��2�j��d�(����U14!	�@�
k�L)Ng�k��HAA'kYc�h�l�#�ѐ�ˉ-Q\�HNEVU���9�*����NaL�,����ziˮ���v3�7��"yɕ���^�����D#���C��8�Q���-�~���
񛧝��9�S�38a��l�/A�ŵ�}��N_Q�u��p9R B��M��Oy�"��Z�b�ф:wW���h[w�)ɻ��w�o�k�C���=X��	:8>Qު�~x�,~,��T�ۄ,��8�.��TK���=+��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��_8���o��*E���o   T@@�^B8	8	�h�	�	c

�n�
�
pw�
�
�}�
�

��
�
  �\�``�xx � � �   � �� � �� � �   P�P  P �X `P H
�",�"��&+lib64/ruby/2.2.0/x86_64-linux/enc/windows_31j.so000075500000037530150402105760014471 0ustar00ELF>P@8@8	@� �  �,�, �, �� �-�- �-   888$$p p p   S�tdp p p   P�td�����Q�tdR�td�,�, �, PPGNU�0�H�qIq�����e� �@!�BE��пeL��|�qXU gSc +����, F"�P0 B�X0 �P0 __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeOnigEncodingASCIIonigenc_with_ascii_strnicmponigenc_minimum_property_name_to_ctypeonigenc_apply_all_case_fold_with_mapOnigEncAsciiToLowerCaseTableonigenc_ascii_get_case_fold_codes_by_stronig_is_in_code_rangeOnigEncAsciiCtypeTableInit_windows_31jrb_enc_registeronigenc_is_mbc_newline_0x0alibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��, �, ��, �, �, (�, �, ��, �- P- 0 - (- @@- pH- PP- �X- �`- 0h- `p- P
x- ��- 
�- ��- �8- �/ �/ �/ �/ �/ 	�/ 
�/ 0  0 (0 00 
80 @0 H0 ��H��H��% H��t��H����5�% �%�% ��h�������h��������h�������h�������h�������h�������h��������%-% D���%%% D���%% D���%% D���%
% D���%% D���%�$ DH�=�$ H��$ H9�tH�^$ H��t	�����H�=�$ H�5�$ H)�H��H��H��?H�H�tH�=$ H��t��fD�����=�$ u+UH�=$ H��tH�=�  �Y����d����]$ ]������w�������H�"H�
��x)L�GL9�t0�OH��HЀ<������D@��fD��������D��f�H�y
��������L��I�H�Ѕ�x$L�OL9�tH���L��<9�u
L9�v�����H�FH����t��H��H�F�.@�:H)��ff.����H���<����������v7������wH�� H��H�1���������f.�������f.���AWI��AVI)�AUA�@�I��ATI��UH��SH�������6�EH�
���1�D���wrL�=;Hc�I�_��x_L�5HI�A�1��uKE��H�=�! L��H��J�T
L�L$������u(L�L$C�<uA�D_H��[]A\A]A^A_��H��L��H��L��[]A\A]A^A_���@����I��I�ѿS1�H�5�����������wHc�H�z�p�������E������w@��H�U
�<8�%n�����øo���Í��}����v%��a|����v���{������ v�@�G �@�G!�@1ҁ�N��D0����H�>���xH��  ���H��H��I��L��I��H���D������m���I�RL���t
��A�
H��I�RL)҈��Hc�I�fD��ATI��A��I��UL��L��SH��L��H���������A�2H����H�2����I�zH9���A�rH��HЀ<0�@��@���tv���������}����vM��A|���������{���������{������9�tl[]A�C�A�3A\A�C��Q�9�u�[�]A�3A�CA\A�S�1����@�ƍt6��o���fDI��H��D��[L��]L��A\���[1�]A\�f�H�I	�4����0�����Q��9��\���1�������T��k���@��H��H9���D�H�
�B�<t9�N�L�
�H�F�A�<���H�L�@�A�<�~L��H9�u�D�L�H�HK�<��x1H9�t<H���PLǀ<�u@H�HH9�rH)�H��H�1�fDH�P����HE���H�YB����Hc�H���H�H��H�������w��v:����������	��������w0H�	 H��H�����H�� �����x����������f.���H�5 H�=������H��H���Windows-31J













































































































������
�"hanlatingreekhiraganakatakanacyrillic@�`�p������������փAZaz`�y�����W�W���r�����@���@���\�K�����@�~����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������`���a���b���c���d���e���f���g���h���i���j���k���l���m���n���o���p���q���r���s���t���u���v���w���x���y�����������������ƒ��Ã��ă��Ń��ƃ��ǃ��ȃ��Ƀ��ʃ��˃��̃��̓��΃��σ��Ѓ��у��҃��Ӄ��ԃ��Ճ��փ@�p�A�q�B�r�C�s�D�t�E�u�F�v�G�w�H�x�I�y�J�z�K�{�L�|�M�}�N�~�O���P���Q���R���S���T���U���V���W���X���Y���Z���[���\���]���^���_���`���;������0��������$ �8p�LP�p����������P��d0�xzRx�$���FJw�?:*3$"D(�p\@�]p��?���%������F\���F�E�E �I(�D0�D8�DP�
8A0A(B BBBHD8J0A(B BBB ��4��PH��H\ �jPp|�lF�J�G ��
ANLH
FMEb
DEEA
CBJ�����T�f���GNU���, (��P0@pP��0`P
�
��������@

(�, �, ���o``�
0 ��	��	���o����o�o|���o�- p
�
�
�
�
�
�
GA$3a1@
5GA$3p1067'GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYmGA+GLIBCXX_ASSERTIONSwindows_31j.so-2.2.10-35.el8.x86_64.debug��b�7zXZ�ִF!t/��7�]?�E�h=��ڊ�2N�a�Ӈ�[��͎�v��B��3[a��x{�[Tݟ(�T8�����jo�Gծ��Š�tJ��4|i���z�~/��W�F< oe�ͣ+�d��L�Ѕ}�����Mk˼��6�����nN28{^\�'o&L����ߎ�(dQe:o?�e��wt#=�)و�E�B��C���ǐ��}Go������DU�^�=^r��{����1Љ2WJ[�`�=P��ۨte�y�lZo�Sl<Wh��A���i�|m�G�O
�4�W^,b�Z*i����)���C�3?qD2
��n-�PtmNk*Q�a��}���=����ܲ�A�I�B�O+}\Q�c�f�����T���S�C��ĉ�M����%��'hŽH�F �+�	�Y����W�>ٙ�Jw38k��2�����M>=7�}���L����,e�kuF���j�QR�Kz��J��+edLu��RQ7n�j�A2ѽ2��	����.�%-FO[�f�R���f&���=����;��n���+�C��r,�5��g�U
#u�}Z��k��hTٵ���}=���៽`Q/םh��DO�_&6��k�z��UH�=ᴊx�U�������I�Fׇ�;W̦e+Tl��0���T���s�Mj��s�B�P��omO_[�mx ϻ
1^�,�O�IK�M�w���i�ޥp3����}�8|�V��V��/k��K3�w�ɜ\e�Jž%y�:S�pދb��)���]�`����S���	%��[�R���N�b[e݀u��	��i�nl	���/M=*W��ʔ���2^��,�:2��:�[�Z5�a�i� ᷺�d/����$%�CU�""��%w+O`�W-��G&8���rIe�l�K@�o��m��DN�_靃�з-��DB{�6�(��<���W/\�c��� �w��,f#��� �*�1�͜W�w�懜�Lxk����M���� '�%��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0``8���o||&E���o�� T���^B�	�	�h@
@
c`
`
�n�
�
pwPP�}((
�@@� �����pp�p p  ��, �,��, �,��, �,� ��- �- ��/ �/8�0 0P�P0 P0�X0`P0H
�20�2 �6+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_7.so000075500000027250150402105760014035 0ustar00ELF>�
@h'@8	@��   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNUBwWF�OŬ���3���CĎ�@ ABE���|7,\�qX "U���� �Ee��, F"X8  k@  �_8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_iso_8859_7rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Nui	p @     H @x P� �� �� �@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������H�H�"����H��ff.�@��1����w��H�����x����ff.�f���H��I��I��1�QH�5����"�|���H��������I��I�ѿ"1�H�5f�q������H�55 H�=.�I�����H��H���ISO-8859-7��������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@�������������������4��4�4�4��4��4�4�0�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~������������������������������������������������������ܷ��߻��������������������������������������������������������������;D����`������������0����`���������zRx�$���PFJw�?:*3$"D@���@\(���!pD���#�`���)HI W�t��������GNU�@  @P���+6DN|�	
  ���o`��
�  `�	��	���oh���o�o:���o� 
 
0
@
GA$3a1�	%GA$3p1067PGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPqGA+GLIBCXX_ASSERTIONSiso_8859_7.so-2.2.10-35.el8.x86_64.debug�W1�7zXZ�ִF!t/���G]?�E�h=��ڊ�2N���. ���x�'�'�	��A�A"��:t��	������E�mD�9��ݹD��3y׹�*�I��1��m88�Ԕ���w��L��ƌ���3���;U�I��@J�3��>]��|�]��Ԝ���Mz��`�{���D�H�Z��(ĬMK� ٤b#a#8��D�*Ȉ��x�QN��IZ2���r]M��hV�����Q����?�S��[_���}��I|ۗS�a�+.��˰�&�(���N2���'���#�1�(�<�g���L`[]�K5�'<P�_	;�|ԇ��:i�O �ژ:�Q�7m?�
����^&�M]�荬,�Y����ZA��*㲭�l�FL[Գf@�Mۗ>��oy��纑�.ԤpU���v5�}����q�#(lKj��m���黕�C�+h<����B��1�:l4���FW@����3�����*1�}���_�y�
+���EgM�V�9o?��% P�:���[���P�%VK�{�d3qʥQ�ʗځqp���yX��ӌ��J ٧���T��Yj����v��^kU�8��+[Ͱ۝<~qS0�3������>�oui�=�]Y����
_��́��v��/��Dp�v�d��t;X)]m�]l�� @���	�|C��]���`�L�MVQsnUE�V�> ��(�O�-����S���A��1<��'q�%���m���`�O7t%�D�V�Sr�B#Rkt����d��)eSyJ�c��՚�.o�ȹ�3��@Ӯqv��B��=�5��0�K��UW��hj(h�6*�[��&j�V�#�һ��t�v���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o::*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}
�@@@ ���D������� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�8&+lib64/ruby/2.2.0/x86_64-linux/enc/koi8_r.so000075500000027250150402105760013513 0ustar00ELF>�
@h'@8	@��   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNU�_�k/�qQg$IEç�G+�^��@ BE��X���|�qX� U���� �Aa��, F"T8  �g@  [8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_koi8_rrb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Jui	l @     H @x P� �� �� �@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������H�H�"����H��ff.�@��1����w��H�����x����ff.�f���H��I��I��1�QH�5����!�|���H��������I��I�ѿ!1�H�5f�q������H�55 H�=.�I�����H��H���KOI8-R������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@������������������������������������0����������������4�������������0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������������������������������������������������������������������������������������������������������������������;D����`������������0����`���������zRx�$���PFJw�?:*3$"D@���@\(���!pD���#�`���)HI W�t��������GNU�@  @P���'2@Jx�	
  ���o`��
�  `x	��	���o`���o�o6���o� 
 
0
@
GA$3a1�	%GA$3p1067PGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPqGA+GLIBCXX_ASSERTIONSkoi8_r.so-2.2.10-35.el8.x86_64.debug2aK��7zXZ�ִF!t/���N]?�E�h=��ڊ�2N���. ����'�'�	��A�A"��:t��	������E�mD�9��7;�M�٧��xs�8�
b\����d���\H��fF��	��4>�O1��50.=_��ы3���se�N�B�_��0N�`pI���֫0�����և@�N����kFX声��cE���FR&�=�se����[�ʂ�>�l�a-��
�M�v����82Z���I�D1]~�Ey��9d�q��C�5OHb]�H�R�AC���:7�m��L��<��qh��Sr��;��aC3r���?@ q`�@<��u' 樓���iw�ib���$�b:���iۄj�^���wN_q�Ml��c��›r�Qk���E�^���0�w���=�'�'Z�/���I�v:�sh˙t>[J�~��F�	NP�vv:i�,\#<T!����KC�C�wEGmxUK��)����\h��ҍ ��JT�9��a����@�l-����D<�I��1U����san2� #Ak�͌���T�����'�'k�T*���z)$3�ҍl�	q1����
ܜvj�ʢ�T�U�tV��&�wC�.��1T�n5Q���s��L9�e8�S��G�$���5E��UQS/�-��zZK9���?�| ��,5u�l�5��,���PkU���#�4�͏��!߈	a���U6o��Y�|��l�<�_�����l��
8a��Y���|S:�j]%`a�ed(�>�[�I{[�ֳ^\��m�]J���۩�I���JśNn�>w���ÿu��F���U���u�Q$��"�	��Tl-�޽���̸���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o66*E���o`` T���^Bx	x	`h�	�	c

PnP
P
@w�
�
�}
�@@@ ���D������� � � �   � �� � �� � �   8�8  8 �@ `8 H
�",�"�<&+lib64/ruby/2.2.0/x86_64-linux/enc/gbk.so000075500000027350150402105760013064 0ustar00ELF>�
@�'@8	@XX   @H �� �   888$$888  S�td888  P�td���\\Q�tdR�td  ��GNUȦW/���[�Fí��U��P BE���|͸U��qX ��o�� U�o$	F, �F"P  X  �`
P  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_mb2_is_code_ctypeonigenc_mbn_mbc_case_foldonigenc_mb2_code_to_mbconigenc_mbn_mbc_to_codeonigenc_mbclen_approximateInit_gbkrb_enc_registeronigenc_is_mbc_newline_0x0aonigenc_mb2_code_to_mbclenonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangelibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64ui	# � `    @ �H �
` �p px P� 0� �� X h � � 
� 
� � � � �      (  0  8  	@  H  ��H��H� H��t��H����5 �% ��h�������h��������h�������h�������h�������h�������h��������%� D���%� D���%} D���%u D���%m D���%e D���%] DH�=Y H�R H9�tH�� H��t	�����H�=) H�5" H)�H��H��H��?H�H�tH�� H��t��fD�����=� u+UH�=� H��tH�=� �Y����d����� ]������w�������H�H�
��x)L�GL9�t0�OH��HЀ<������D@��fD��������D��f�H����������H���<����������H�׉���n���ff.�����L��I��H��H����'��������H��H������ff.�f���H��H��H��H���+���ff.���USH��H��H9�vk�L��A�<t4�F�L�
�H�^�A�<��oD�C�L�C�A�<�~L��H9�u�H��H���A9Au+H�H�H9�rH��H)�H��H�0H��H��[]�f�H��H��H���r���H�H�H9�s���H��먐��H�5� H�=.�)�����H��H���GBK��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;\
@���x�������P����p�����������������0����\zRx�$��FJw�?:*3$"D���p\0���]p|�����������������������(������E�A�G t
DAJ<���GNU��`  ��
�pP0������/�	
x
  ���o`��
\  �0	8�	���o���o�o����o� 
 
0
@
P
`
p
GA$3a1�	�
GA$3p1067�w
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�
GA+GLIBCXX_ASSERTIONSgbk.so-2.2.10-35.el8.x86_64.debug
�^�7zXZ�ִF!t/��?{]?�E�h=��ڊ�2N�	����.wD��%6 �H�`�`��2�8��!�w�a�I��|#PCQO��Cг�,�&��M�����3�s��>��uMyV�3�T\S	���u�W��?�j1�:/�l�Wݭ��ߩ�:�!����=r����OT�q�'/-��-�l%;-�wo6N�R��^E����e|WW�rb�4N��d�v)��W8*8l����r}o,}P+�Qd��e��TQ����?
TKek(X�rN�+�:�W�c/�-�ČCR�|��w�gH�g�2UZb?Ml�D��6F�����mi�Q#]MaI�f�ELg8����|a���M	�z�DF�5��
E��&�\9��W�g�AgT
�i�e��n����V֘čP
����"W�д���@c��,<M� �Lj2ςB��x=�¢=�>���۬�LY�Y}���@.��]c72�|�z�_ݣw�N"����ܼ6��x	E��ke!�r �r�ծ�����;�R�K�/�ݣ�ms�X"-�#?q�䩒(=W�G:��sO ���蓟�
�t�>p�*��	�X2��,trV&�R4{��d7�E�%JD,��t��E��Gx;�!�	��}�k���ꑃ�j|j���)ۇ�	�c1��`ִ�����l��#�<��\�z����WW�r��
�K��9d҇�A���ɯ-�xE��Ɛɿ�GqX��ON��<�K���f@���`K�)�.ӛ�|�X�A
t~F��VֽS�[]/�W���/D���&�W�&N�EM��2+zJN�6}��}ઁ�h�����H��]��4�8eQ/)�Y�N+`K��b�Bط���[�[&�l5_i�8���s#��Ƕ KƸ}	��2~֏K0�+��`���:��JN���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��\8���o��*E���o T88�^B0	0	�h�	�	c

�n�
�
pw�
�
�}x
x

��
�
  ���\�  �88 � � �   � �� � �� � �   P�P  P �X `P H
�"(�"�|&+lib64/ruby/2.2.0/x86_64-linux/enc/shift_jis.so000075500000037510150402105760014302 0ustar00ELF>P@8@8	@� �  �,�, �, �� �-�- �-   888$$p p p   S�tdp p p   P�td�����Q�tdR�td�,�, �, PPGNU����xZ��/�A�#zs�@0	%��BE���|�qXU gQa +����, F"B�P0 �X0 �P0 __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeOnigEncodingASCIIonigenc_with_ascii_strnicmponigenc_minimum_property_name_to_ctypeonigenc_apply_all_case_fold_with_mapOnigEncAsciiToLowerCaseTableonigenc_ascii_get_case_fold_codes_by_stronig_is_in_code_rangeOnigEncAsciiCtypeTableInit_shift_jisrb_enc_registeronigenc_is_mbc_newline_0x0alibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��, �, ��, �, �, (�, �, ��, �- P- 0 - (- @@- pH- PP- �X- �`- 0h- `p- P
x- ��- 
�- ��- �8- �/ �/ �/ �/ �/ 	�/ 
�/ 0  0 (0 00 
80 @0 H0 ��H��H��% H��t��H����5�% �%�% ��h�������h��������h�������h�������h�������h�������h��������%-% D���%%% D���%% D���%% D���%
% D���%% D���%�$ DH�=�$ H��$ H9�tH�^$ H��t	�����H�=�$ H�5�$ H)�H��H��H��?H�H�tH�=$ H��t��fD�����=�$ u+UH�=$ H��tH�=�  �Y����d����]$ ]������w�������H�"H�
��x)L�GL9�t0�OH��HЀ<������D@��fD��������D��f�H�y
��������L��I�H�Ѕ�x$L�OL9�tH���L��<9�u
L9�v�����H�FH����t��H��H�F�.@�:H)��ff.����H���<����������v7������wH�� H��H�1���������f.�������f.���AWI��AVI)�AUA�@�I��ATI��UH��SH�������6�EH�
���1�D���wrL�=;Hc�I�_��x_L�5HI�A�1��uKE��H�=�! L��H��J�T
L�L$������u(L�L$C�<uA�D_H��[]A\A]A^A_��H��L��H��L��[]A\A]A^A_���@����I��I�ѿS1�H�5�����������wHc�H�z�p�������E������w@��H�U
�<8�%n�����øo���Í��}����v%��a|����v���{������ v�@�G �@�G!�@1ҁ�N��D0����H�>���xH��  ���H��H��I��L��I��H���D������m���I�RL���t
��A�
H��I�RL)҈��Hc�I�fD��ATI��A��I��UL��L��SH��L��H���������A�2H����H�2����I�zH9���A�rH��HЀ<0�@��@���tv���������}����vM��A|���������{���������{������9�tl[]A�C�A�3A\A�C��Q�9�u�[�]A�3A�CA\A�S�1����@�ƍt6��o���fDI��H��D��[L��]L��A\���[1�]A\�f�H�I	�4����0�����Q��9��\���1�������T��k���@��H��H9���D�H�
�B�<t9�N�L�
�H�F�A�<���H�L�@�A�<�~L��H9�u�D�L�H�HK�<��x1H9�t<H���PLǀ<�u@H�HH9�rH)�H��H�1�fDH�P����HE���H�YB����Hc�H���H�H��H�������w��v:����������	��������w0H�	 H��H�����H�� �����x����������f.���H�5 H�=������H��H���Shift_JIS













































































































������
�"hanlatingreekhiraganakatakanacyrillic@�`�p������������փAZaz`�y�����W�W���r�����@�������@�~����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������`���a���b���c���d���e���f���g���h���i���j���k���l���m���n���o���p���q���r���s���t���u���v���w���x���y�����������������ƒ��Ã��ă��Ń��ƃ��ǃ��ȃ��Ƀ��ʃ��˃��̃��̓��΃��σ��Ѓ��у��҃��Ӄ��ԃ��Ճ��փ@�p�A�q�B�r�C�s�D�t�E�u�F�v�G�w�H�x�I�y�J�z�K�{�L�|�M�}�N�~�O���P���Q���R���S���T���U���V���W���X���Y���Z���[���\���]���^���_���`���;������0��������$ �8p�LP�p����������P��d0�xzRx�$���FJw�?:*3$"D(�p\@�]p��?���%������F\���F�E�E �I(�D0�D8�DP�
8A0A(B BBBHD8J0A(B BBB ��4��PH��H\ �jPp|�lF�J�G ��
ANLH
FMEb
DEEA
CBJ�����T�f���GNU���, (��P0@pP��0`P
�
��}������8

(�, �, ���o``�
0 ��	��	���o����o�oz���o�- p
�
�
�
�
�
�
GA$3a18
5GA$3p1067'GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYmGA+GLIBCXX_ASSERTIONSshift_jis.so-2.2.10-35.el8.x86_64.debug�A��7zXZ�ִF!t/��7�]?�E�h=��ڊ�2N�a�Ӈ�[��͎�v��B��3[a��xvY�Tݟ(�T8�����jo�Gծ��Š�tJ��4|i���z�~/��W�F=���
�->�9��c�����w��e���r
PMn�¾��a��V����u�s�|��D�_H]Ң�M�P�fÙ��B�B��P�=Jys�x�b�*�.F�OCE�N�N��mK��/�h�Rk^�3�En���gIJ/�O�����y;���D+p���](ǝ^m����ٮPMgl��ߣ�	����‡�dQ�
���ƾ�����M���ɗ��E��UoL
SCTpA�����Q�1��s�*���X��	���%��+-k���?��J-k�$�9���s�9�}�l�%q�x��8q�GIz���v�s�Ӿ{o{�����鄝�S;ٺ7V|D���N>�PJ1/����!b�	嬠�l���kzې=��ݷ[����r�Z�4����{�m0��8FH�Yx���o�uS��[�#f!8S�X��5Ͻz6a[��7Α����(=H��TK0\~F��/^�29��'a"�t�,��	�g��d���U�\�a�6j��w�ǘH��L�P�?ؑ�w;[ �%;��6	��5<Pk�\3I���3�V^��G��W)5�4[��&���Um	w��ߎ�4�D����/������į���GT��a]Ql[h�Ů�+�D�a>P,l�Ŏ��L�O��-h�C�eG[)Y�juop�LI�L�.@�<f�R�R���z�鲔���[�4Y2�̇TP|�d��;5�iy��N��*���d�KX��m:<���
���a7`�Ԡ��ʃ�4�����n��G��#��m�C�Xi!�������R
�
1�4x��۩
:E���l����Sc�_�F���k�wğ�PA�ۥ�	|Dw��8w��côB][g�8��PpiаU�PV��#���T��0�8�� �C���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0``8���ozz&E���o�� T���^B�	�	�h8
8
c`
`
�n�
�
pwPP�}((
�@@� �����pp�p p  ��, �,��, �,��, �,� ��- �- ��/ �/8�0 0P�P0 P0�X0`P0H
�2,�2�6+lib64/ruby/2.2.0/x86_64-linux/enc/utf_16be.so000075500000027350150402105760013734 0ustar00ELF>�	@�'@8	@�� �� � HP �� �   888$$���  S�td���  P�td


ddQ�tdR�td�� � GNU�P!�˗�$�I��{�"���@ BE��4 ੻�|�qX ��� h��B, $F"U�8  ���@  �8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_unicode_get_case_fold_codes_by_stronigenc_unicode_mbc_case_foldOnigEncAsciiToLowerCaseTableInit_utf_16berb_enc_registeronigenc_unicode_apply_all_case_foldonigenc_unicode_property_name_to_ctypeonigenc_unicode_is_code_ctypeonigenc_utf16_32_get_ctype_code_rangeonigenc_always_false_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�� �
� P
    �( 
8 @ �
H �
P @X 0h � �` p x � 	� � � � � 
�      (  0  
��H��H�� H��t��H����5� �%� ��h�������h��������h�������h��������%m D���%e D���%] D���%U DH�=Q H�J H9�tH�� H��t	�����H�=! H�5 H)�H��H��H��?H�H�tH�� H��t��fD�����=� u+UH�=z H��tH�=� �I����d����� ]������w��������O�����Ȁ��t�D�W�O��
%���ʁ�	��ff.�f����������ff.�f�����L��I��H��H���������H�M���xx�8tI��H��H��L���H�����H�f �@��A�H�Ð����ƒ���tH)�1�H�������������<�u9H)������H��t0H��t5�����H��t"�G��<������D���fD������f����G��<��������D��H�W1�H9�v�
t�f.�1��?����������v4������
�����f��f��f�~f���f�f���f�>���H��H9�v.H��H)�H��H��?Hʃ�H)�H������H)������t�DH��H�P�H9�HG����H�55 H�=�����H��H���UTF-16BE;d@��������������������� ����p������$0���8����L���`zRx�$����PFJw�?:*3$"D��@\���Cp�����������O�X��������)��M�,���P�h���GNU��
P
 �
�
�
@0�������0	
�� � ���o`H�
3  `��	���o����o�o|���o� `	p	�	�	GA$3a10	
GA$3p1067�
�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA+GLIBCXX_ASSERTIONS�
�

GA*FORTIFYutf_16be.so-2.2.10-35.el8.x86_64.debug	/�7zXZ�ִF!t/����]?�E�h=��ڊ�2N������!�eoة��!�3;�zA"���8`����g�dU�<	�}�}'����Y����xW7���2�]S���]-��A�>T �r��[��W���)�F��uM���T'Ω~��|�>zb0��d�߶$�1�T���+S6�7+�� �k6��� �?�";S��^��8�P]{���}!�����n���
�=��G��"�P����3/Z��a��r�E�
�|�#�w��`3gUeO�8
M��|_)�`��GZ-/�1fM,��j*p�߱[$�ZSF<�0/ש�TB ֒n^����Qg�9����c=��c	��r�
��)��s�#΍�������HOm�0���-5��[�UeE�3��C�e����I�XY�qg�DZ���1���Z�GpجPތS,��ƭ4�p�kT�н�2!��e�zp�Z�M`'��8�;g(�JU4S��J��3=?��!���n"�]�p���=h�!���׭���յ�K�۫p2A޺�%�*y�5u�Y|�4���bC�	<9�^}R鱩�B
�i�c�ǂ)
� 4��͖=,\@�!�)�P�
��k;CϬ�w�����T~�oGY�C8��b�]V���Pҩ���DR����`���A��j��G
Ρ�܌`�x��b� �K䌉C�Ŗ�ox��״�q��y:��`��~��"�{)�~�nǻ&��z�MPj�r��y�ד�c���>@ӗ�c�4&��}	\��"M�A��������x�;�ob'�%�qy���x�⩷�_˿��dq��C��p�?��rl�s���O9⩯O��jK�ZT���K~bI���v+k��������|]߇�h��8׾ѱ�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0HH38���o||$E���o�� T��^B��`h0	0	cP	P	Pn�	�	@w�	�	}��
�2

	�

d�x
x
��� �� ��� �� � �� � �� �(�   8�8  8 �@ `8 H
�",�"�x&+lib64/ruby/2.2.0/x86_64-linux/enc/gb18030.so000075500000027370150402105760013307 0ustar00ELF>�
@�'@8	@��   8@ �� �   888$$���  S�td���  P�td   \\Q�tdR�td  ��GNU&v+�z���g�Һ�K�~[��@ @(BE���|�qX�9� ���oU�� �[2, F"�H  
P  �H  ��__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_mb4_is_code_ctypeonigenc_mbn_mbc_case_foldonigenc_mb4_code_to_mbconigenc_mbclen_approximateInit_gb18030rb_enc_registeronigenc_is_mbc_newline_0x0aonigenc_mb4_code_to_mbclenonigenc_ascii_apply_all_case_foldonigenc_ascii_get_case_fold_codes_by_stronigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangelibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	 0 �
    @ @H ` `p @x  � � � �X h � � 
� � � � 	� �      (  0  8  
@  ��H��H�I H��t��H����5R �%S ��h�������h��������h�������h�������h�������h��������%� D���%� D���%� D���%� D���%� D���%� DH�=� H�� H9�tH�F H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH� H��t��fD�����=M u+UH�=� H��tH�= �Y����d����% ]������w�������H��H���xiH�OH9����OH��H�H���xpH�OH9�t{�OH��H�H���x;H�OH9�tXH���OH�1��<
����D���f���������D��f������������������������D@�ø����ø�����ff.���H��H9���H��H�
�
�2�41@������@���U@����H��H9��3L�G��2�41@��t��@��ylH��L9�u���H��H9��8�2�41@���@��~7@���H��H9�w �2�41@�����S@����H���D@��t�H��H9��(����DH��H9���L�G��2�41@����@��~�@����H��H9����2�41@��x�@����@��u�H��H9��c�2�41@��x@���e���@��t�H��H9�v���f.�H��H9��*L�G��2�41@����@������@����H��H9�w%�2�41@������@��y	H��I9�u�H����@�������_����H��L9�����f�@����H��H9����2�41@��x]@�������@��uMH��H9��v����2�41@��x$@���`���@��uH��H9�v��f.�H��I9�u��8���f�H��H9�v��fDH��H9������f�H��H9��	����2�41@����@�����@����H��H9����2�41@����@�������H��I9�u��@@��u�H��H9�������2�41@��x�@�������@��u�H��H9��`�2�41@��x@���`���@��t�H��L9�u��fDH��I9��0����4���fDH��H9������f.�H��L9��������fDH��H9������2�41@��x�@�������@��u�H��H9�w�2�41@����@����H���D@����H��H9�������2�41@��x�@�������@��u�H��H9�w��2�41@��x@��~�@��t�H��I9�u�뗐@���P���H��H9��������H��I9�����f�H��I9��=����T���fDH��H9��A����2�41@����@���'���@����H��H9������2�41@�������@�������H��I9�u����@��u�H��H9������2�41@��x�@�������@��u�H��H9��w����2�41@��x@���a���@��t�H��I9�u��M���f.�H��I9��(����d��������������H�2�<����������H�׉���.���ff.�����L��I��H��H�����������H��H�������ff.�f���UH��SH��H���r9rt
H�������H�}�E��~,H9�v'H����H9�vH���J���ȍJ)�9��H��[]�ff.���H�5e
 H�=�i�����H��H���GB18030������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;\
��x� ��������������� ���@���0����XzRx�$�pFJw�?:*3$"DX�`\`��p����������������$����bE�D�G OAA�P���GNU�0�
  @`@ ��������	
�  ���o`x�
H  �	�	���o����o�o����o� �	�	�	�	

GA$3a1�	�GA$3p1067@�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY@GA+GLIBCXX_ASSERTIONSgb18030.so-2.2.10-35.el8.x86_64.debugӕct�7zXZ�ִF!t/��_�]?�E�h=��ڊ�2N����. ��u.�U𽢶�M�PPhI��,�la��y;�i=��e�Oa�ft2�����/)vWh 4���έ�I��z���S�"���Z�NR�tqAee�h��퉟"Ud��Oy��w|@R	�YeJ)OO=��(r2!+:����]��P�~_�M�����4JAv�����d�:Ƶ���Il�e�x���V�K���\���'ŽOH}�qF��	�t�r�g�E�j��G�%#�8Ic�n�� 
�/��AT`H��e_)W]`g\r����pA��v���nۡ���c�a�o�	"3͵�+j�zťul�)�����q2�C�����@���ш�5^�zaz�E�����B�ug�*Hzh���:5ӥ�r�8�n`H^I��q*��9�*�Н���;3�n����[
$K;.��Ċ�#`�\���k���9!$W6
 � i;���;�OXʙRm2�9��&��-cN=��91�L�=Y�vS{���N�@�e6]�d"�~�ه�����j��㰆��sl���v�������&�5�[r{Z��Ҙ��6�#�֖�n�"E��=xOC��wK��oO���*��N�vY����lr�>`ގ��.�R�� �_��t�+N�w�ʦ���B<�ԓ�����b��~���c�)��v�i�v�E|KA�#u4;i�x�YW�"��7�6U~�Rcp�A���K6�ģ�N���f�}LY�
�׶4@.�uf��u�����'k���]1�ɱ��(��>��γtx�M>�@�ۮ���B��������0�ߨ�#c���qram��`�#��H;c�_|Q.
O�[�2h��c{�7��~w&�P��x@���SzN��7����q������櫵��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0xxH8���o��(E���o�� T�^B		�h�	�	c�	�	pn 
 
`w�
�
g}��
�  �  \������ � � �   � �� � �� � �   H�H  H �P `H H
�",�"��&+lib64/ruby/2.2.0/x86_64-linux/enc/windows_1250.so000075500000027260150402105760014462 0ustar00ELF>�
@p'@8	@��   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNU<
�&�����b1:%6?�����@ BE�쪞ٻ�|�qX $U���� �Gg��, F"Z8  �m@  a8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_windows_1250rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Pui	r @     H @x P� �� �� �@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������H�H�B����H��ff.�@��1����w��H�	���x����ff.�f���H��I��I�ѺQH�5����(�y���H���@����I��I�ѿ(�H�5c�n���ff.���H�5% H�=�9�����H��H���Windows-1250��������������������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@��4�4�4�4�4�0�0�0�0�0����4��4�����4�����4����0��0����0�0��4��0�0�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��0�0�0�0�0�0�0�0	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������;D`���`�����������������@����p����zRx�$����PFJw�?:*3$"D ���@\���!p$���#�@���,HL W�T���"�p���GNU�@  @P���-8FP~�	
(  ���o`��
�  `�	��	���oh���o�o<���o� 
 
0
@
GA$3a1�	5GA$3p1067P'GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPqGA+GLIBCXX_ASSERTIONSwindows_1250.so-2.2.10-35.el8.x86_64.debugkn��7zXZ�ִF!t/���Q]?�E�h=��ڊ�2N���. ��Z���'�'�	��A�A"��u��8���g�^Ǔ�+��]�&�Z=����%��I�_��|r�`��B|���:�X
��1��tl���y�y�}RL>��O�D�p>�˽��I�!#:o�y�Y�~��h�R��n����?�M��a}P��
��팞u�o/Z��g=���7���I����\�I�0�f��gC^	փ��X,Tn�򼹨���A�c�/F�7�4xǺbܫ,ƥ|?H�2�����Bo�w�4g)�A�8V�|�y(�������=�@����y[�"_�u�֦ʞ.��bxj��t��=�L1����[t*mo���%�2=��j�X���,��|���ğ�'+c��3�
���Ag<4�([���u�ӣ^�L}�b=:`B�B�D��p{%p�V���21i��J`�׈O~�Y7�%�`����v���{-ۜ�^����D��?Ym��٠��'��3y{���� ���I�s��Ϸ��I��Q��˩��h����
��$�F��c�&o����]��/쑀-���DaѦ�a��^�!u��BnN�!�mzp��ӨJ�p���Z^n�����DA���m\��R^�0�����'�xf�9�M�2���ɚK�Z
{����i�}���.-��P$�{'�>"��C������uz��gH/�^ڪ4.�
)�'9$�=a�&���d�\6��@o̵b�5��rĺm��_K۔�,3߶����0��p��ʁ1t� 8$��ڂ���`ݛ���T i��ӄI��J� �^�X���>p�����:XN$��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o<<*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}((
�@@` ���D������� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�D&+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_3.so000075500000027250150402105760014031 0ustar00ELF>�
@h'@8	@��   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNUx�w�uq�8L�a���2��@ BE���|�qX3,\ "U���� �Ee��, F"X8  k@  _8  �0__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_iso_8859_3rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Nui	p @     H `x �� �� �� P@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������1����w��H�9���x����ff.�f���H��I��I�ѺQH�5����#���H���@����I��I�ѿ#�H�5����ff.���H��<�tH�����H����@t޸ssf��H��ff.���H�5 H�=������H��H���ISO-8859-3����������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@��4����4���4�4�4�4��4��0����0�0���0�0�0�0��0�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��0�0�0�0�0�0�0�	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������;D`���`�����������������@���������zRx�$����PFJw�?:*3$"D ���@\���#p$���,HL W�8���"�T���B�����GNU�@  `���P+6DN|�	
H  ���o`��
�  `�	��	���oh���o�o:���o� 
 
0
@
GA$3a1�	UGA$3p1067PGGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPsGA+GLIBCXX_ASSERTIONSiso_8859_3.so-2.2.10-35.el8.x86_64.debugv����7zXZ�ִF!t/���I]?�E�h=��ڊ�2N���. ���x�'�'�	��A�A"��:y����XN��~s*d��Ђ�Avm�p$O��^�q\���ca�����F���y;�f�F5\���@�a�r��,��,^i�s&�z�S+]6xSx�xj��hx�!�4i�� ���G��t9a_I.�@V �����d叺N^˝u�yU��+w�0����WR|ປ��q̹O���H}zL�r��?��(���SmXI��:"Et)��<��8B-m��`���.k����y���Y�2[����_f��9F��ES%��v��쿷�L��Y��i�`��h��
�S���j��b��^����ւ�:�/�?Vc��p:�ljҼ��]&����R��Z��G�~Z)��j�S\��9WMX���͌�mqJ�.r����:n,�\�/�eu��ւ[�d�Y���p��R��o[P�2��e�ʋ�e@]=rB�pއ�XGPDk���l=���݋�KY�l�*��=�C����
�U���3���������f	_��w[��0Wo3i
��|A��j�9�SDi�:$~���QX=|�k\��XT��_�T��!�k���|/39�(ҹE��5��x����b%IϞq���+|0�?}�8�DM��}�Y&�h�G�0�vk"Ss�91H�3���u�Yi�v�G]�]��g7��׉>
[2�\(�Ry�#����:ϑ�1ď�!ye6��7���!�W�^���#G3��A}衧�qx6��mِ���0@}+U5V�~��Y�zB�AW�P��^�g!��F��ZO7�b�H�#H�E�q[h:g�}���iu/h��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o::*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}HH
�``@ ���D������� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�<&+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_14.so000075500000027250150402105760014113 0ustar00ELF>�
@h'@8	@   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNU��b���p�|o'D*��
�X�B BE���|�qXe��� #U���� �Ff��, F"Y8  l@  `8  �0__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_iso_8859_14rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Oui	q @     H `x �� �� �� P@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������1����w��H�y���x����ff.�f���H��I��I�ѺQH�5����,���H���@����I��I�ѿ,�H�5����ff.���H��<�tH�����H����@t޸ssf��H��ff.���H�5 H�=������H��H���ISO-8859-14����������������������������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@��4�0��4�0�4��4��4�0�4���4�4�0�4�0�4�0��4�0�0�0�4�0�4�0�0�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������;D ���`p����p�����������������P����zRx�$����PFJw�?:*3$"D��@\���#p��,HL W�����"����B�P���GNU�@  `���P
,7EO}�	
H  ���o`��
�  `�	��	���oh���o�o:���o� 
 
0
@
GA$3a1�	UGA$3p1067PGGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPsGA+GLIBCXX_ASSERTIONSiso_8859_14.so-2.2.10-35.el8.x86_64.debug�����7zXZ�ִF!t/���H]?�E�h=��ڊ�2N���. ���x�'�'�	��A�A"��:��jL-���M��k�F(H�4�@�q{h�'�Eo�TU`n╜��S���e�uk�>˻�1vB�6�!#�88r:լ�����t<�A�`�(Y�	�׋�a!�L�Z|F9���s�K-G�+���~n��7E���f۟:ઞ+C�AY)!��C �^J.�y��?�|���ܜq(TXq��2����^uv���3���]��k}�xg��Lu7�⮣}3�ҋ��=�9r|���Y�\i��'�%e����T�M��wO'ʀ�=�11�Q[��8��:���)�����dB7C�����|i�Bl�3���rp�J�q���ޡ�T�)�4�q�^v�/���e���\A��b�`��Z��%ћ(VWj�ܲ+ڿ̜�0;��Ύ���	ˆo�r�(Ww�����F��]p���b)��߀C�:E8;�W?��;�Bv����]��G�ъ%�g��ӟ�A�h��]~��&��x1}�eMs�aK� X�Ԃ��|���&��;�5�+	�ܤ�L�d��a���=��Z&f�!�{^��|�iK��ű$x#��:�?'O1�豱�Tu���Tec�z~ɇV��2J䜒~%�i�?���Pkz�5>@C^������,��r����ul��k��Wz%�\��&�'.ȆS'd��NBf
�VCPF���#�TA^r��aZ4��7MS�^��,B�袘�������瓚�e�k�0���Ĭ7H�-�I������Qz�,�'�G�F�__��n+Ջ�4��	�ʠTd��hU�	���9}����̦s���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o::*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}HH
�``� ���D�((���� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�8&+lib64/ruby/2.2.0/x86_64-linux/enc/windows_1251.so000075500000027260150402105760014463 0ustar00ELF>�
@p'@8	@��   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNU���(������Jr՜H)�@ BE���|�qX��� $U���� �Gg��, F"Z8  m@  a8  �__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_windows_1251rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Pui	r @     H @x P� �� �� �@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������H�H�"����H��ff.�@��1����w��H�����x����ff.�f���H��I��I��1�QH�5����!�|���H��������I��I�ѿ!1�H�5f�q������H�55 H�=.�I�����H��H���Windows-1251������������������������������������������������������������������@@@@@@@@@�B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@�4�4��0������4��4�4�4�4�0��������0��0�0�0�0��4�0�4��4���4��4�����4���4�0�0�1���0�0��0�4�0�0�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������;D����`������������0����`���������zRx�$���PFJw�?:*3$"D@���@\(���!pD���#�`���)HI W�t��������GNU�@  @P���-8FP~�	
  ���o`��
�  `�	��	���oh���o�o<���o� 
 
0
@
GA$3a1�	%GA$3p1067PGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPqGA+GLIBCXX_ASSERTIONSwindows_1251.so-2.2.10-35.el8.x86_64.debug%�X<�7zXZ�ִF!t/���P]?�E�h=��ڊ�2N���. ��Z���'�'�	��A�A"��:t��	������E�mD�9�����b��k�$�@#v�/�� c9Q!��Z��8s�'��r<��4�w%#����(]���Kc2�u���{aA;��q�I�۾ðK�e��K�ω�H�����qkA(�ݘ�p6��q�I�b�/��~PQ=S[�t�N+�|N<���j��c԰~;	�.����9\՗�b�������n��iج�s��l�:(?��y��n�1���Id�ɠ�}��l���E�]��z0�(T��]���mtF�U��S�p3�5�Q/m7é���I5���T	��C6�Ȃ�TL�f
�J����J��Ձ٘A���۴l͠4*�FX.
�U�.�V`����R�z�m'�.y�-LU��u7������9u�Ht�1�δĿK�ε��/��(��zs^�*7x\v��:��?��&�[�:a�Y��O��H����k��iI;Uqu���:*4�>>�K�C��v�ѫΪ�Pqa�s��]��2�^������6ͬM�h��f�(�l���<�Dz~J�]�K��ץ��q>?tw>��bD
ЄU%=�^����e%s]a�f�~��*��z�vd���5z1��}����Ks>+T�nA���/��:�T=5cM͠���Ӛ��G�a	�*�S{��Mד2��tM��L�8
�2M|�[��PX�4,�e8�.BW`ܩ૨/�
��-��:������67�9L��2@{6Ϣ8���$�
��K�:��~����gS��c.	]����nJ�� ����c�a���h����ZGjP��&�������g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o<<*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}
�@@@ ���D������� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�@&+lib64/ruby/2.2.0/x86_64-linux/enc/windows_1252.so000075500000027260150402105760014464 0ustar00ELF>�
@p'@8	@��   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNUk�J�њ\��=�H_<{L@�/�@ BE���|�qX��� $U���� �Gg��, F"Z8  m@  a8  �__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_windows_1252rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Pui	r @     H @x P� �� �� �@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������H�H�"����H��ff.�@��1����w��H�����x����ff.�f���H��I��I�ѺQH�5����"�y���H���@����I��I�ѿ"�H�5c�n���ff.���H�5% H�=�9�����H��H���Windows-1252��������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@��4�4�4�0�0�0�4�����������0�����������0�����0������4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��0�0�0�0�0�0�0�0	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������;D����`������������0����`���������zRx�$���PFJw�?:*3$"D@���@\(���!pD���#�`���,HL W�t���"�����GNU�@  @P���-8FP~�	
(  ���o`��
�  `�	��	���oh���o�o<���o� 
 
0
@
GA$3a1�	5GA$3p1067P'GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPqGA+GLIBCXX_ASSERTIONSwindows_1252.so-2.2.10-35.el8.x86_64.debug��;�7zXZ�ִF!t/���P]?�E�h=��ڊ�2N���. ��Z���'�'�	��A�A"��:u�Y�)�g4�T�"�7]eo7I2G�Y0�l;�T���^ƒ��W���^���w�R"������̬i(���R�˓/�
Z����ju<�Ί��U��?:M�2T�++bm�^X1u?�{�M��I�W�b�Ni�-,q�x��Sc8�@FEط��P�

�;�!&���<и��[W��C#���4�q+!�[� �{��Yy�׮�VRS4rIe�_%be3B����g��}��o�b>gw�]
l����Q�U�h��)��*Tu�1n#�l�ۖ!�x�#�6g)ݺ�?Q�[�o�h���w�`l@�Vqy���[ni%�5�n�H'Q��JH:�]�<�<W��'g~(��O:ݝ���/)��:USv4~Y5�1�_pM>��J�i��L���@��/筺D�2�{�V;�(�d�� c���r�u��
�U�a�S��'��w��w��5,��fT�22�RO�S�#���p����+�����̻[,�����=���6��A��N|�7<+�X}ƃ5�ܛ2f����x����j�JC�r݆��+�s|qfW����� J"Xna`+O�P����r��D(J�A
�����v+�)Ȇ��J�����)ę��e��|69�1�>�"m�ߗ�i@�n�x����מo�n���[¥�g�>�� ��f�I�%u���3]���3x��`-_O�_S%g?�T�<���@�%�;i�CR��j0B�.���4�ʜVNJ��˂> �5;�G��}�n�1������2wT[��0R_g�:����������g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o<<*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}((
�@@@ ���D������� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�@&+lib64/ruby/2.2.0/x86_64-linux/enc/trans/emoji_iso2022_kddi.so000075500000337260150402105760016732 0ustar00ELF>�@p�@8	@�� ��!�!  ����!��!  888$$���  S�td���  P�td������TTQ�tdR�td��!�!��GNU���j���3䎰�5��Ս��@�!	BE���|�qXWw�[ m , F"�(�!�0�!�(�!U<__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_emoji_iso2022_kddirb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��!P	�!	 �! �!@�!`H�!jX�! 6h�!���!`	��!`	��!p	��!�
ȫ!
Ы!�
�!j�!`��! 6�!�0�!`	8�!`	H�!0
X�!`
��!{��!`��! 6��!� �!`(�!{8�! 6H�!��!�!�!��!�! �!��H��H���!H��t��H����5��!�%��!��h�������h���������%��!D���%��!DH�=��!H�z�!H9�tH�&�!H��t	�����H�=Q�!H�5J�!H)�H��H��H��?H�H�tH���!H��t��fD�����=
�!u+UH�=Ҧ!H��tH�=�!�Y����d�����!]������w�������1��fD���H��tc�>�H��t;<tA�$�ABH�Q�fD���F����vH�BH)ȃ�@�r�f�<t޸$H�Q�A@f����DI�Ȅ�tA�(�ABL�AfD�	��I�@H)ȃ�A�����?��HD��f.����?�t���!<^H���9H���ff.�@���>t'�?���D����Ȁ�A�F�Ȁ�A��f��~(�T�t%��@t8��Bt1����1��f.���Bt1���Ju��1��fD�1��f���1��?t�(�FBf������H��H�=Ѡ!�l���H�=%�!�`���H�=��!�T���H�=M�!H���D�����H��H���stateless-ISO-2022-JP-KDDIUTF8-KDDI
$,��H�PXY`ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲�t夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯��涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰�|蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙�髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑N� 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇��◆□■△▲▽▼※〒→←↑↓〓∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬ʼn♯♭♪†‡¶◯\D0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz�$	ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん	(
ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ^�ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω��АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя��
─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂C�①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡㍻〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪eP亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭��院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応�,押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改��魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱�4粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄��機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京�<供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈��掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲�D検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向��后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込�L此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷��察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時�T!次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周��"宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償�\$勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾��%拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾�d'澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線��(繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎�l*臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只��+叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵�t-帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓��.邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到�|0董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入�2如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦��3函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美�5鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服��6福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋�8法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満��9漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒�;諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃��<痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯� >蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��?弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲�|@僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨�B辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨��C咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉�E圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩��F奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓�H屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏��I廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚�K悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛��L戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼� N據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼��O曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍�(Q棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣��R檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾�0T沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌��U漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼�8W燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱��X瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰�@Z癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬��[磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐�H]筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆��^紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺�P`罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋��a隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙�Xc茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈��d蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙�`f蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞��g襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫�hi譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊��j蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸�pl遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮��m錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞�xo陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰��p顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷��r髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈�t鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠��u堯槇遙瑤凜熙�w�0w��x�8z��{�@}��~赶﨣軏﨤逸遧郞都鄕鄧釚�H�釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"́�t�|�<	 
x��
�H�$�,�4�<�D�L!�"T$�%\'�(d*�+l-�.t0�1|35�68�9;�<>�?t@�A|CE�FH�IK�LN�O Q�R(T�U0W�X8Z�[@]�^H`�aPc�dXf�g`i�jhl�mpo�pxr�s�uw(w�x0z�{8}�~@�ā@�`H������	������������������aԄ	��������	��	���������������������������������������������������������������������������������������������������������������������'$�������	���������������������iЅ	����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	����؆�/,��,�	������������������������������������������QD�	��������������	���������������������������������������������������������������	������������	�	������Y	,����	������������������������������������������������������������������	D�	����������������������	��	������������������
܈	���a
�	�������������������������������������������������������������
�������������	�������������������������������������������������������������������������������
x�	������'�	������������������i�	�������������������@�	�������h����	������������/��������$�<���Ԉ���p����8�`�x���q��������������	����������������������������������������������������������	���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������`�������������������������������������������������������������	���������������������������������������������������������������������������������������������������������7
l����������������������������������������������������������������������������������������������������������������������������������������������������������������������	������������y
X�	���������
T�	���������������
p�	���������������������������������?��	���������������������������Ў	��������������������	������,�X�d�P�L��h���Ȏ��$�<�GD������	���������������������Ϳ�Т�������У����������ʺ����ξ�������Ф����Х����Ц����ð����Ч�Ш�|�	�Щ�ǵ����Ƿ�������˳����Ъ����Ы�������������֦�������������	�Ь�Э�λ�ͽ����Я�������в�������������������������г�д�е�˴�ж����������������������μ�з�и�й���
h��������о	�м�н����������л�к�ʩ�������¾�п��������������������������������������������Ǥ���O�������	������������������Ȳ������������������ȼ���������������������	����â����������������ͤ�������������;�������������դ�������������ʻ���������������	����������������������������������������������������ե������������η���x�	����¥�������������������������¯�������������������������������������ɶ���������������W���`������p��d��l�	�����������������������������������������������������������������������������������������	���������������������������������������������¦��������������	���˵����������������������ѣ�����������_��	�Ѥ����ѡ�Ѣ�Ư����������ѥ����ν�Ѧ�ѩ�ѧ����Ѩ�Ѫ����Ѭ�ѫ��ȡԔ����Ѯ�ѯ	����ѭ����Ѳ�ѱ�Ѱ����ѳ����Ѵ�ͥ����Ѷ�ѵ�Ѹ�ѷ�ѹ�8��Ѻ���	���������������������������Ѽ����������ѻ�ѽ�������Ѿ�������������Ȭ����ϻ�������ʼ�¶����ŵ���%�����	������������������������������������������������������������̽������������������������������������������������g4�	���������������ο�����������������������������������������������������������ȡ���ܖ���	�������ʬ�������������������������������Ƚ��������������������������������������\�	�������§�������������������˶�������������������������������������������-ܗ	���������έ������������������������������������Ң�ң�������ϫ�ҥ����Ҥ���oT�����Ҧ	����ļ�ͦ����ҧ����ư�Ҩ����̳�������ҩ����ҭ����Ҫ����ҫ�������Ү�ү�Ұ�ұ��������ޱ̘��������	����Ҳ����ҳ�ҵ�ҷ�Ҷ�Ҹ����������ҹ����������Һ�������һ�Ҽ�ҽ�Ҿ�ɤ�������ƿ�T��ҿ���	�����������������Ⱦ�������´����������ñ����������������������������������¨������������������5ؙ	���������������������������������������������������������wp�	����������������ͧ����ȿ������������������������������������������á����������������������������������������ݹ̚	����������������������Ʊ�̾���������������������������������������������������ʭ���������p����	�Ϥ����������������������������������̣����������������̿=�����	�������������������������������ӣ��������ӡ���Ӿ���������ӥ����ӤX��������Ӣ	����������Ӧ����ӯ�ӧ�Ө�������ӭ�Ӭ�ů�Ӯ�ӫ���̜	����������ө����Ӫ����Ӵ�ͣ����Ӻ�ӹ�Ӱ���,��ӱ	����Ӷ����ӳ�������ӷ�Ӹ�ӵ�ӻ�Ӳ��������Et��ӽ	����������������ӿ������Ӽ����������������������������������������ć��	�������ԧ�������������������������������0�	�ò���������������������������������������t�	�������������������������������ʮ����ȸM�����	�������������������ǹ����������������������������	���������������������������������������������������D���	������ԡ���Ԣ�ԣ�������Ԥ�Ԧ�ԥ�Ԩ����ԩ�������������Ԫ�ԫ�ԭ���Ԯ	�������˷�Ԭ�ԯ����������Գ�������ó�԰����ԴU�	����Բ�Ե����Զ�Է�������Թ�Ժ����Ի�Ը�h��Ա	�Լ�Խ�������������Կ���Ծ����Ǹ������������������������������	�Ʋ���������������������������������������������������ʽ���	����������������������ȹ�������������Ŷ���������������]h�	����������������������������������ʯ����������������ȡ	�����������������������������������������������������������������������������������������	�������������������ͼ����������¿�������̴�������ŷ�����������������������������#��	�������������������������������������������������������������å���ʳ�������ա���e�	�բ�ǡ�������ǥ�ի�������̯�֬�գ�զ�������˸����է���������������	�ը�������������������լ�խ�ժ�������թ����ɱ�����������	�������ղ�հ�̼�ճ�ձ�կ����ծ�������շ�ո���+`��մ�Ϭ	����ն����չ����պ�յ�̻m��	����ջ�ɲ�ռ���ս��	����տ����վ�������������������������������	���������������������������������3T����	�������������������������¸�������������������������������¹����֣������������u�����	���������������������������������������������������������������ͨ�����������������������������ɷ����	�������������̩����������������������������������������������������ǫ����������������������������������������	������������������������º�������Ƴ���������������������������������������������������Ǣ;D������	��������������������֢�֡������Ÿ�°������������֤�֥�������֧�֨}ԧ	�֩����֪�֫�������������֭�̨�������֯�ֱ�������֮�ְ�ֳ�H�	�ֲ�ִ�ֵ�ƽ�������ֶ�ֻ�ֹ�����������ָ����ַ��	����ּ����������ֽ����־���������������������C�	����������������������ֿ�����������������΅D�	�������������ֺ������������������������������������	�������������������������������������������������������������̦�������������ç���	 ܩ	������������������ġ����������������������������Ģ����������˹K X����	������������������������������Ȩ����ʾ�������ʿ�ǯ��������������������ͩ������ ��	�ģ���������������������Ź��������������������������������� <�	������������ϭ��������ס�פ�ץ�ף������ק�צ�ע�ר�ש�ת�׭�׫�׬�׮�������ׯ�������Ƕ�װ��!��	����ױ�Ϯ�ײ���׵�С�б������׶����Ĥ����׷�ʦ����������������������׸�׹�׿�������ĥ����׺�ɫ���S!0�	�׻����׼����׽�׾�������������״�׳�������ɧ�������ɷ�Ħ��������������������������ʕ!Ĭ������������������	����������Χ������������������������������������������������ħ����Ű�������!H�	����ɬ����Ǧ�������˺�˻�������������������ح����ǰ������������"ح�|�̔0���,�ԖT�ԗL�ĘL�Йh�Ěh��P�Ĝ$�l���(�l�����<����`����`����������X���ܤ�L������<�̧@����<���ԩP���4���(���@�Э4��<�	������������������������������������������������������������������["H�	����������������������������������������������������������������������©���������"��	�����ء����������ا������إ����أ�ؤ���آ����ͪ�������ئ�Ǻ����������ج�ذ����ة����خ�"4�	����د�������ث����ر�������������ت�ب������������ؽ�������ظ�ص�ض����ع�ؼ!#���ط���	�غ�ش�����ؾ�ؿ�������س�������������ػ�����������������������������c#4�	���������������������ز������������������������������������������θ��������������������������ݥ#��	�ͫ������������������������������ʰ�ƴ�������������������������#<�	�������������������������������������Ĩ������������������������)$����	����������������������������������������١����٢����٣�٤����٥�٦�٧����������˼k$�����٨	���������������٩����ʧ����٬�٪�٭�٫�ٮ�ʱ����������ٯ�ٲ����$�����	�ٰ�ٷ����ٱ�������ٳ�ٴ�ٸ����ٵ����������ȴ����������ڭ��������ٻ�������$��	����ô�پ������������������ټ����ٺ�������ٶ�ٹ���������������������������������������������������ٽ1%t�	�������������������ĩ������������������������������s%�	�ª����������������Ľ������������������������������DZ�%`����	����������������������������������Ϋ����õ���������������������������������������%�����	�·������������������ͬ������������������������������9&8�	����»���������������������������������������{&��	������Ŧ��������������������&�	�������������Dz����Ƶ�ű�����������������������ڥ���&�	����ڧ�ڣ�ڤ�������ڢ�ٿ�ڦ�ڡ�ګ�ڬ�ŧ�ڮ����ک����گ�ڨ�ڳ�ڲ�ڱ�ڴ�ڶ���A't��ڵ	�ڹ�ڷ�ڸ����ڻ�ں���ڼ�ڰ����ڽ�ھ���ڿ��������������'�	�������������������������������������������������������������Ũ�������'H�	�������ʸ����������������������������������������������������������������������(��	����������ι����������²������������������������ö������������������������I(0����	���������������������������������������������������������������������������������������ۦ�(��	����������������������������������������������������������������������������������(0�	��������������������������������������Ī�������������˽�ۢ���������)��	���ۡ������ۣ����ۤ������ۥ�ۧ�ۨ�۩����������۪�۫������������������������Q) ����	�������ͭ��������۬����Ŀ�ۭ�ϯ�˾�ī�ۮ����ۯ�۰����̤���������۲�������۴�۷�۶�������۳�)��	�۵�۸������������¼�������ۻ����۹�«�ۺ�������ۼ�۽����������������ۿ������������������������)(�	������۾��������������������������������������������������������������*��������	������ɢ�������˿�������������ͮ�����������������������������������������������Y*(�	��������������������������������������������������������ϛ*�����������������	�������������������������������������������ɰ���������������*�	�����������������������������������������������������������������������������+|�	����ܲ�������������������ܡ�ܣ�ܧ���ê����ܫ���ܨ�ܢ����ܬ����ܪ���a+������	�ܦ������̺������������ܥ����ܯ�������ܱ���ܰ�ܩ���ܭ�ܮ�ܿ����ܤ�ܻ�ܽ��أ+d�	������ܸ����ܾ����ܵ��������������������ܷ����ܺ�������ܼ����ܴ�ܶ�ܳ�ϰ����ܹ�+�	����������������ϱ���������������������������������������',`�	�����������������������������������������������������������������������i,��	���������������������������ɸ�����������������������������������������������î�,,�	��������������������������������������������������,�����	����������ݡ����������ݬ�ݨ����ݧ�ݦ�ݣ/-��	����ݥ�ݤ�ݪ�Ϧ�ݭ����ݩ�ݫ�������ȧ�ݮ�ݲ�ݯq-L�	����ݰ����ݳ�ݴ����ݶ����������������ݸ�ݷ�ݺ����������-��	�ݽ�ݼ�ݾ����÷�ݿ�������������������������������������������������������-�����	���������������������������������������������������������������������������7.d����	�����������������������������������������������y.��	�������̱����������������������ɹ��������ۻ.0���������	�����������������������������������������������������������.x�	���������������������������������������������������������ʨ���ޡ�������������?/��	�������������������ˡ���ޤ����ޢ���ˢ�������ť����ޥ�ޣ�������ˁ/d�	�������ް�ޯ����ެ����ƶ�ަ����������ީ����ޮ�ޭ�ި�ޫ����ު����/��	�ή�������޶�޴����ޱ�޳�������ϲ�������������������޵04�	�޺�������Ͱ�޷�޲�޸����������������������޾�����G0�����	�������޿����������������������������ø������������������������������ʥ�������޻����ź���0��	�������������޽�������޼�������������������������������������������¬�������������������������0l�	����̫�������������ù�������ͯ���������������������
1����	����Ȯ�������������ί����������������������������Ů������O1L�	������������������������������������������ũ�ߣ�������1��	����ɺ�������ϳ����ߢ��������������̡�����������ߡ���1�	����������߯�ߪ����������߳�߬�Ĭ�ߩ�������ߦ�ߥ�߮2h��ߨ�ߧ�߭	����ߤ����߰�߱����߶�ߵ�߷�ߺ����ߴ����߸W2��������߲�ǻ	�߹�߾�߼�߿����߻����Ǩ�޹����߽�������߫�����������ə2���,���,���4�������l��X���0���ض�l��@���(���(������ ��� ����t��\�ܿX���$����D�����\���(�p���\���,�����d���D����`����t��|�	���������������������������������������������������������������2��	�����������������������������3��	����ϧ�������������������ú��������������������_3$�	���������������������ˣ���3t�	����������������ʲ����̵����������3��	�����������������������������������������������������%4��	������������������������������Ǯ�����g4<�	����dz�����������������������������������������������������ࢩ4��	�������������������������������������������4����	��������������ĭ������������̶����ϴ����ʪ�������������-5H��������	��������������������������������o5��	�����������������������������������������������ì����ϵ���5��	���������������������������������ǭ����������ͱ�Ͳ�������5`�	���������������������������������������������56��	����Ψ������������������������w6����	��������������������������������������������������������6@�	������������ΰ�������������������������������������6��	�����������������������������������������������������=7��	�����������������������7T�	������������ɻ������������������������7��	�����������������������������ż����������������������������ͳ����������Ҵ�Į�����8��	��������������������Ȫ����α�����������ȫ�ɭ���ά���������������������������������������E8h�	����������������ɥ�������������������������������������������������������8��	���������������������������������������Ρ�������������������������������8l�	���������������������������������������9��	�����������������������������������������������ȯ���������ɴM9 ���	������Ū�������������������������������������������������������9��	���������������������������ݹ�������������������������ľ���������9�	���������������������������̲������������������į���:�����	���������������������������������������U:��	����������������������������Ʒ�����������������ڗ:$�	�������������̷�������������������û�������������:t�	�������������������������������ˤ���������;��	�������������β�������ȣ���������];�	��������������������������������������������������������;H�	�����������������������������������;��	������������������������������������#<�������	����������ʹ����������������������Ǫ����ɼ���������e<<�������	�Ͻ�����������ʡ������������������ǩ��������������ŧ<��������	��������������������������������������������<����	������������̭�ɣ���������������������������������������������+=d����	���������������������������������������������������������������m=��	���������������������������������������������������������=4�	�������������������Ω�������������������������ε�������������������Ƹ�������è�������ü�������ѿ����������=��	�������������������������ū�������������������������3>,�	���ɮ�Ȧ����������ȵ��������������������������������u>��	������������������̧����������������������ý����Ȣ���Ȥ�>�������	����������������������������������϶���������>d����	����������������������������������������������������;?�����	������������������������������������������������}?�	����������ʴ����̰����γ�������Ǵ����������������������������������������������������?p����	����������������������ʵ������������������������������@�����	����������������Ǽ�ɳ������������������ʶ����������������������������������������C@X�	���������������������������������������������������������������������帅@��	����������³����������������������������������������������������þ���������@d�	������������������������������������������������������������������	A��	������������������������������������������˥�����������������������������KAP�	��������������������������������������������������������������������������A��	���������������������Ż���������������A8�	�������B��	�����������������������������������������ȳ��������������SB��	����������������������������������������������������������B�	�������������������������������������������������������B�����l�����4�x���@�����X����8�����L�����`���d�������x����l����@�����4����\���,���$�����\����h���P���\���H���0�|�����|����������Ϸ	�������������������������������������������������������ÿ���C��	�������������������ʹ������������������������İ�������������ϸ���[CP�	����������ȥ���Ͼ�ȩ�������ɪ��������������������������������������������ٝC��	����������������������������˦��������������ƹ������ǽ�C,�	�������������̮�����������������æ�Ǿ�ı��!D��	���������������������������������������IJ�ʢ������cD����	����������������������ɨ���������������������������ǿ�D<���	����������������¡����������������������������������������������������D��	����������������ڪ����������������а�����������������������������������������������������)E ����	�����������������������������������������������������������kE��	����������������������������������������˧������������E�	���������������������������������������������������������������Ed�	������������������������������������������������������1F����	�������������������������������������sF<�	��������������������������������������ϵF��	������������������������������������������������ɩ�����������������F��	����ƺ�������˨��������������������������������������9GL�	����������Ϊ������������ơ����������������������Ǭ�����������{G��	���������������������������������������������������G�	�������������������������̬�������������˩�ϡ��������G\����	�������̢��������������������������¢���AH������	�������������������������������������Ƣ�����������鲃H���	��������������������������������������������������������Hl�	������������������ƣ��������������������I��	���������������ݱ�ݢ����������������II0�	�������������������κ���������������������Ix�	����������������������������������������I��	������������������������������������Ⱥ��������������������������J����	�˪�������������������������������̪������������������QJl�	����Ϲ�������������������������������ij�����J��	���ͻ������������������J$���	������������������������������K\�	����������������������������������������YK�����	�������������ާ�������������������������������ɽ�����������������������ޛK��	�������������������µ����������������������������������������Kl�	���������������΢����͵����������������Σ������������������������������L��	�������ʣ����������˫�������������������������aL<�	��������������������������������������������L��	������ʤ����������������������������������������������������L����	���������������������'M`����	�������������Ƥ�������������������������������ˬ��������������������������iM��	����������������������ɾ��������������������������������������������������˫M�	������������������ǧ����������Ͷ�������������������������������������ï�������������Ĵ�M��	���������������������������������ĵ���������������������������͡�����������������������/N����������	�ƥ������������������������������������������������ɵ���������qN��	������������������������������������������������������N���	�����������������������Nt�	�ë����7O��	���Ʀ���˭��������������������Ю�����ɿ����yO�	��������������������������������������������������������������������������������������Ž�����ǻO$��������Ϩ������	�������±��������������������������������������������������������������O��	����������£���������������������������?P@�	����������������������������������P��	����Ķ�������������­�������P��	�������������������������������������������ϩ�ķ��������Q�	����������Ƨ����������������GQP�	��������������������������������������Q��	�����������������������������������������Q�	�������������������������������ž���������������������
RD�	����������������������������������������������������������͢�����������OR��	�������������������Ų������������������������R�	����������������ҡ������������ä������������������é�R\�	�������������������������������������ų�����������������������S��H���$�����4�������\���4�����D����T�����d���(�p�����d����T�����d���4�����X����������l��������8�|����H����<����T������������	�ƨ�������������Ʃ�������������������������������®�¤������Ϣ���������������������ɯ��WS(�	���������������ͷ������������������ƻ�ã����������½��������������������Ŭ��������������������������������S�������������	����������͸����ˮ������������š�St�	�������Ϻ�������������������͹������T�	�������������Ţ������_T�	����������������������������������������������������������������T@�	����������������������Ȱ�������������������������������T��������	����������������Τ����������������������ţ������������������������������������������������������%U��	���������������������������������������������������gU�����	�Ŵ������������������������������������ȭ��������������������ȩU����	����Ƽ�������������������ĸ����������������UP	������˯����������������������������������������������������-V�	�����������������������������������������������ϣ������Ͽ������oV	������������������������������������������Vt	��������������������������������V�	����������ŭ�����������������������5W	��������������ƪ����������������������wWP	����������������������������������������������������������عW�	���W�	�Ĺ=X���	�������������������������������������������������������ȶ������������������������X$	�������������������������Ʈ������������X�	������������������������Y����	�����������������������������������������������������������ƫ���Φ������EY	����δ�������������������������������������������������������������������������Ȼ�Y�������	�ͺ������������������������������������Υ�������������ʷ���������������Y0���	���������������������������������������̸�������Ϫ����۱������������Z�	��������������������������������������������������������������������������������������MZ(	������������������������������������������������������Z�	����������������������ǣ�������������������Z	����ĺ�����������������������������������������������Ƭ����������������[L	����������������������������ſ���������������������U[�	����������[ 	�����������������������Ҭ�ݻ�������������˰����[D	�������������������������������������������������\�	�����������������������]\�	��������������������������������������ɟ\4		���������������������������������������������������������������\x		����������������������������ƭ������#]�	���	������������������������������������������������e]
	���������������]p
���	������������������������������������ȱ���ɦ�������������]�
	���������������������������ݵ�������+^	�����������̥�����������������ϥ��������m^T	�����������ʫ�����������������������������������^���	�������������������������������������������������������^���	���������������������������������������������������������������������������3_\	�������í���������������������u_�	�Ļ����ȷ����������˱�����з_
	�������ƾ������������������������������������������_@
	�������������������������̹������˲���������;`�
	�����������������������������}`�
	���������������������������������`<	����������a�	���������������Ca�	�������������������ϼ����������������������������������������������a�	�������������������������������������������������������������������������������a8	�������Ť����������������ɡ���	b�	����������������������������������������������Kb�	�ζ���������b@��l���8�������H��l��H������(� ��D�<��,	p	�	
h
�
�
L��T�
8
�
�
4���0��8\�bdc,�	������������������������������������������������������������������������3cl������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	uc��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	�c����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	�$�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������0���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	�c<���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	�@������������������������������������������������������������	;dL ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	�� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	�c�"����������(48D � �!�"�#}d�#���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	�($�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������4%���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	�c@&	��ƿdD'	���eX'	������������������������������������������������������������������������������������������������Cel'	�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'���������������������������������������������������������������������������������������������	�e)	�������������������e�)�,%8&<'P'd'�')�)�)	f�)<�Kf�)��)}f�)���ȅ��І$�4�<��t���@����� �\d $�)�)**�f*@BBJ$(!~�����	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^��	
��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456789:;<=>��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./0123456789:;<=>?@AB��	

 ��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS��	

 !"#$%&'()*+,-./0123����	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[���������	

 !"#$%&'(��	
��	

 !"#$%&'()*+,-./012��	

����	

����	

������	

��������	

��	

������������	

��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?@��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456788889:;<8������	
��	
������	
��	

 !��	

��	

 !"#$��	

 !��	

��	

��	

��	

��	��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'��	

��	

��	

��	

��	

��	

��	

 !"#��	

��	

 !"#$%&��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
����	

��	
��	

��	

 !"��	

 !"#$%&��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"��	

 !"��	

��	

 !��	

��	

��	

��	

��	

��	

��	

 !��	

��	

��	

��	

��	

��	

 !"#��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

 !��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

 ��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	
��	

��	

 ��	

 !"��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	
����	

��	

 !"#��	

��	

��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'()��	

��	

��	��	

��	

��	

 !"#��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

������	

��	

��	
��	

��	

 !��	

��	

��	

��	

��	

��	

��	

����	

��	

��	
��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	
��	
��	

��	

��	

��	

������	

��	

��	
��	

����	

 !"#$%&'()*+,-./0123456789:;<=����	

��	

 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!��	

��	

 !"#$%&'()*+,-./0123456789:;<=>>>��	

��	

������	

 !��	

                                 ����	
�����	




;T	�j��p�j����k����k���hl����l����l��8m��Xm��(zRx�$0j��0FJw�?:*3$"D8j�� \k��
p�j�����k����k��!��k��~�l�� �(l��<HoGNU�P		 �!`jl 6�g��J`	`	p	�

�
j`8 6�g��J`	`	0
`
{`t* 6�g��J`{̄ 6�g��J�������(
<�!�!���o`��
!�!0��	���o����o�o����o��!`pGA$3a1(IGA$3p1067`	<GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY`	j	GA+GLIBCXX_ASSERTIONSemoji_iso2022_kddi.so-2.2.10-35.el8.x86_64.debug�=��7zXZ�ִF!t/��/[]?�E�h=��ڊ�2N�H=�N ��!�C����� .|su@��<�f=��u��:�;d���A��>?z�/�oaB��⍤N�B�
�1�9�9e[��q�+��gti�����d�1�Vk���Q�+���_v�Z@6_"k^�*���� �᧛��ܶ�z���E���%��P����"��`ŀ)���U<6��(���?�`��BW�m��������;��'���&.���TUٯv�f�sҫs�$��'n3e2��O�y**Q����?�:
gj3A�_֞`�ko`涿���_*%����LCYv�2�3��g��6iw(��)�RO0�3���l<W+��Rz�x�2�\��L�E�n�����^{���	��e�;�5�?j������/�͝��6�<�7��]���c�󾅊k�{
�(~�N�=��f�S$)A4ӭ�,�h�D���4O�upYø?�ꘚ=fQ�Z��3}��GE!�����'���6�3�U�o߸�a����N��Z�)�;�TQ�t��8a�ո�{e���鄾\$(t��AI��B��1�
�ʼn�
l �V%�PS�^sq���zHB�ս�k����?^x�%E3ː�a�]�R�~����yP}P��B�j
ݵ^��_�0���,�:N����V�u�9�X�D���
S83u�g����d�Ks�ћ⟾��_X�#�$LVzP�3nW(�C��ȩ35�At��Z�'�+$m���Y�s�*��A��˻mϩL��X��h�S��F��C9 ����M���k����c���8/&�gW��0���)��[f|�}n9�,%/A �V�w���<�HO��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��!8���o��E���o�� T��^B��0h((cPP0n�� w���}<<
�``F� �����T������� ��!���!�� �! �� ���!�� ��!� ��!�(�(�!(��0�a(�H
p�8���D�+lib64/ruby/2.2.0/x86_64-linux/enc/trans/japanese_sjis.so000075500000457010150402105760016266 0ustar00ELF>�@�V@8	@�;�; KK"K"  �M�M"�M"  888$$�;�;�;  S�td�;�;�;  P�td;;;$$Q�tdR�tdKK"K"��GNU�qأ�K%7ym�}�
ef���@"�	BE���|�qXwD"l h , F"�(P"�0P"�(P"U`<__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_japanese_sjisrb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�K"PK" K" K"@K"�HK"�XK" �hK"��K"��K"��K" �L"��L"��L"��L" ��L"� M"�(M"�8M" �HM"��O"�O"�O"�O"P" P"��H��H��H"H��t��H����5�H"�%�H"��h�������h���������%�H"D���%�H"DH�=�H"H�zH"H9�tH�&H"H��t	�����H�=QH"H�5JH"H)�H��H��H��?H�H�tH��G"H��t��fD�����=
H"u+UH�=�G"H��tH�=�B"�Y����d�����G"]������w������H��H�=�D"����H�=D"����H�=YC"��H�=�B"H�������H��H���UTF-8Windows-31JShift_JIS 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー—‐/\〜‖|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+−±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓	∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬ʼn♯♭♪†‡¶◯	0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん�\ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ	ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω~�АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ	абвгдеёжзийклмнопрстуфхцчшщъыьэюя─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂=�	�p	亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭��院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改z
魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄z
機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈z掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向z�后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷z�察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周z�宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾z�拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線z�繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只z�!叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓z�$邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入z�'如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美z�*鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋z�-法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒z�0諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯z�3蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕	弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲9�6僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨z 9咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩z<奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏z?廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛zB戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼zE曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣zH檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌zK漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱zN瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬zQ磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆z�S紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋z�V隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈z�Y蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞z�\襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊z�_蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮z�b錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰z�e顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈z�h鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙	��kT��hx
��������!�$�'�*�-�0�3�69<?BEHK�M。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚�P�S�V�Y�\�_�b�e�h�ktm�|m 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓	∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬ʼn♯♭♪†‡¶◯(o①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ	㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡㍻〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪��q纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱z�r犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑	ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"u�uz�xz�{z�~zȁzĄz��z��z��z��z��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯z��涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙z��髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑	4	��|q��hx�r
��������!�$�'�*�-�0�3�69<?BEHK�M。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚�P�S�V�Y�\�_�b�e�h�ktm�u�x�{�~��������������������ܜ�	�	�������N�����}�L���
О	�~��4�vp	�������������������������������������������������������������������������������$�����	���������������П	�F�@�A�B�C�D�E�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�p�q�r�s�t�u�w�x�y�z�{�|�}�~����<���������������������������������	�v~ؠ��,�v,�	�]�\�a�e�f�g�h�����d�c���������D�	����$
��	��������f
��	�����
ȡ��	�����������|���������������������������
�	��������������,@�	����������nl�	�������������	�������������������������������������������������������	����4,�	������������vD�	�������������l�	���������	��������<���������ء8�d�����$�<�d�����ȣ~У�@�A�B�V	�X�Y�Z�q�r�s�t�u�v�w�x�y�z�����k�l�`��	������������������������������������������������������������������������������������������������������������������������������������������������������������������������	�J�K�T�U�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^D���_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������	�E�[�R�S�x�x���p�l���t�����	�������O�����s�^���N���������u���������������������O������
��	���T�v�V�����R�h����������������������L ��T	�������\�����������]�������j�i�����������S�������������������������l�|��Y�m��	�����w�����������e�d�����t���W�����������������������C��	���������������x�����`���������L�f������	���A�������Z���C�������]���������C�����������������gT��	���������������������������D�������N�����t�	�W�����r���������������������M�������C���o�U���������Ԫ��t�����l�̪D�L�	�����q���{�����|���������������l���������������`����\|�	�����������������������������������U����	���T���P�������b���B�������X�L�	�C���@�A�������l�D���E�H�F�m�G�I�K�J��"���V�M�N	���L���Q�P�O���R���S�D���U�T�W�V�Xd��Y��	���Z�[�����������[���e���Z�\�}���]���S�_�`�����Z�a���������T���T��b	�c���~�f���e���g���h�`�i�j�k�������n�l���m�y�o�p�q�~�u�s�t�r���v�����w��	���x�y�y���������z����{�}�����}���~���M���������o����*����	�n���������������Y�������������������������������h��l�	�������������O�����U���������������������������n�������	�c�������������������������w���������J�������N���	���u���E���������������������������������M��������������2d�	���������������������k�����x�����������������C������t����\	���������������������������P���m�����T�����K�������p�����������\�	�������������������~�X�}������������	�Q�������y�F�o�����f�����������b�p���������@�����������������j�E�����i��:D�	���h�e���g���D�����@���f���N�����i���������������z����������|���	�C�������������������������������������l���	�������a�����������B�����@���]���P���D���C̳���i�A	���������E���N�F�G�����L�K�N�M�JB4�	�S���O�H���I���S�B���Y�X�O������P	���U���R���[�V�W�T�Z�Q�`�e�a�ش�\	�f�P�h�A�^���b�[�������c�_���i�g�r�i���d���c$�	�m�k���p�j�n�l�k�o�r�w�u�tJ��	�Q���q�s���R�v�������}�{�|�~�Ե	�\�X�x�y����������������������	���d���������X����������`���������	�����������d���l�����c�������}��������R����	�������������������������y�������\�n����������	�����V�������B�����R�������x�	�������^�����C�_������������	�����������������W���u�������|����Z��x	������������������������������g�����X�����	�����Y�����h�������������U�����o���m���	�������������n���������������� �	�����d���������������������������m�p�s��������������������b`�	�����������[�O���g�������������V���v������������������	�����������t���_�z���������������������D�������z�@�D�\�	�A�@�����D�J�W�d�����B�E���W�i�F������(Ժ	�G�o�n���������K�L�I�W���H���P�����pj0�	�����Q�O���R�P�N�P�M�����V�W������S�K	�k�U���X�w�Y�T���Ի	�}�Z�Q�[�_�\0�	���^���]���k�d�a���`�b�c�e�fr4�	���h�g�i���l���d�j�m�n�|��q	�o�p�q�r�E�s�����t�u�y�F���G���v�w�w���x���y�z�{�}����~	�����F�����v�����G���@���������X�����q�����G���{���Q���������e�h8 0�	���������������x�����������Q���@�����������J���R��������������������z Ľ	�������������������q�������������������������A�������K���s���A� \�����	�����������r�����������W���j���w���������R����� �	�����������Z���������x������������@!\�	���������������������������s���!��	�������������R�����������������!��	����������������������"H�	����������������������������H"��	�����������������B�����H���I�������������b���J���F���"�	�s�z���������������������t�����A���������X�"D���	���������y�����������������������N�����K�������c�H����#��	���L�������������X�M�{���x�����������N�fP#(�	�����p�����L�����f�@�C�D�B�_���F�E�A�G�H�I�L�J�K�M�����N�����U�O���#��	���P�M�Q���T���������U�|�����V���O�o���������W�X�^�������Y�J�e�#�	�Z�[���\�]�_���`�a�b�S�R�c�`�F���V���j�d���e�e�f�����i$�������h�g�a��	�m�k�j�������l�k�]���p�o�n�q���r���z�s�������O�t�JX$$�	�S�K���E�u�u�Y�Z���z���w�����y�O�x�v���|�$���D����L������x��\�ܰT��<�ܲd�ij,���д���̵�X����p�����P����X�ܹT�̺(���̻�,�t���(���T��T����@�|��<��� �����������	�������{���|�������v���}�}�������������������$�	�����������������P���������~�������p�����������������b��%��	�����������������������������I���x���Y�����{������������`%�	�������f���������������y���S�����z�������������%�����D	�����������������������������������������%��	�������������Q���T���������������������d�S�����������������c���|&&X�	�J�����������������������e��������������h&��	���������������������������������������������&H���	�����������^����������������@���A���B�C�Y�D�E�F�������[�&�����G	����������H�������K�I�L�J�M�����}���N�Q��.'4��Z	�O�V���P�c�}�R�S�W���T�R���e���������������Z����p'��	�c�S�]�d�_�f�b�a���[���Y�����U�X�S�����`�q���g���@�h�m�i���n�A���E�\�'�	���k�w�l���g�������j�����U�����p�}�'��	���J�q�s�o�����{�������~�����x�����P6(��v	�|���{���u�z�r�t�@�|�|�����T�y���T�����[�w�d�f���}�~��x(X���	���������`�����K�g���������������h�(��	�������������r�������������g���(0�	�����E������������>)|�	�����T�����Q���P�������d�B���o�h�����)��	�i�����������^���������F���C���[�����������������)���	�������������������x�������������U����*x�	�������q�~�����s�����������U���h�������G�~��F*��	�������|���k�������l�������������������a�f�z�V�������{�*@�	���������������������������������U���|���{���������*��	�V�����������������������f�t�����������������E+0�	�����W�����W���N�����������A���������i�������qN+��	�����������������g�����������b���\�A�������+�	���@�����B���C�j���D�F�G�H���g�X�I�J�������]�\���+l���	�����L�����K�����L�N�]���M���N�O�������{�D�Q���p�S�V�U�����R,��	�T�W���������������Z�m�X���Y�����[�\���a�Y�t�^�������n�f�`����V,h�	�f���]�c�b�����������}�g�e���d�_���k�i���g�m�s�,��	�����u�A�t���^�����_���M�p�o�q�n�v�l�j�r�h�������������`�,`�	�����h�����I�x�Z���z�����}���j���i��-���{���j��	�y���|�~���K���j�������V���O����������^-8�	�����~���������[���������������������B���������������-��	�������������_���������I�����������X���������-��o��	�����������A����������������������������������������$.��	�k���������^���������������������|�������������O�y��f.�	���T���|���P���Y���������������������.|�	��������\�����������l�������������������������.��	�������������������W�����������������~�������������M,/@�	���������k���@������������n/���h	���������@�w�������K�G���F�E�B�/��	���D�C�I�E�L���H�J���M�Q�N�/L�	���O���R�S�T�U���������~�W�V�Y�\����40��	�\�[�]���V�^���`�_�a�b�c�~���������c�������d�e���fv0���g	�i�h�w�}���c�j�l�B�k�m�n�o�p�q�s�r�t���i�u�E�k�v�a�0\���	�B�w�x�������y�������z�|�{�~�}�0��	�����������C���������X�i��<1$����`��	���������������]�r���������������D��~1h�	�����������������B���������v���������������������������1��	���������������@���������A�g���D�����������j2H�	�m�����������������k�^���F�������������hD2��	�����������l�����Y�_�Q�\�����C�Z���2�	�����O�������������U�t�������2d���	�����������i�����������W���������������[�~���������Y
3��	�����������a�k���������������n�������Q�����������`������L3(�	�������������X���N�����������p���3����	���������������a�������������n���M���3��	�������������������������������H�B������4T�	���Y�����R���A�������������������Q�@��T4��	�������N�I�������R�K���H���k�E�D�M�4��G�F�L	���C�O�P���U�T�V�Y�b�S�W�4d������Q�Z	�X�]�[�^�a�Z���G�����\�`���_�J��d�h5��|���|���P���@���,��������P���(�t����p���8���(����d���`���X���0����|���t���8�����D�����T����`���@����\��� �����L����\�����	�f�b�c�g�e�m�m�j�i�l���n�������o�q�p\5$�	���r���s�����D�������5|�	�F�����u�t�x�Y�{�v�z�y�_���5��	���}�G��~�|�w�B�"6��	������������R��d6,�	������������������������6`�	���F��o���n���M���6��	�R������������z����W���C�������*7��	���������������������u���l7X��	�������v��������������S�q�����������7������	����]�����������7�	������������_���������������K���T��28\�	���������������������L�������P�Q����t8��	�����������b�������l���������8�	�������������������8`���	�����X�����������]���������:9��	���������������������i����|9��	���������l�������������������������9$�	�����������:|�	����Z�@�Z�A���B�C�D�F�G�E�r�I�HB:��	�K�J�L�M�O�N���Q�P���r�[�R���Y���S�p���T�c�R�b�\�j�������U�:��	�V�[�Y�X���E�W���������\�Z�{�����L�^���l�_�]���`�a�����f�c���b�E�:��	�i�d�e�h�g�D�a�`�^�j�k�l�n�m�u�v���p�r�t�]�u�s��;�	�o�q�a���x�w�y�������z���|���{������s���}�~J;��	��������������;��	���������������������������o����S�;4��	��I�F�c����H�������������M<��	��u�~�m�v��������X����������������������R<�	���������������^�����������������<����	�������������r�����������<��	�������������u������������������= �	�����������������m�����Z��������Z=p�	�������������u���m�C�j�v�{�=��	�������d���������=�	���������V�����O���q���������������m�� >4�	������������A�@������C�Bb>��	���D�b�F�E�G�����I�H�������>���J�V	�_�F���S�P�O�c�L�N�j�_�M�K�I���[�����Q�R�>$��h��	�\�T�S�������T���U�W�X�H�Y�Z�[������(?���G��	�\�H���b�]���d�`�a���`�^���_����j?���H	�b���c�����B�d�e�t���g�f���i���l�j���m�k�e�?D���	���m�s�o���n�����n�p�q���r�n�t�����u���v���?��	�������w�����y�{�x�z�A�|�E���q�~��M�0@�	������}���������������������v����G��[����^�|����r@p�	�������������J��}�y�����������@�	��M������������}�����������������@d�	�������������Z���������\�������8A�����	������z��������������U������zA4���	�����������������������������������A����	���������������������������������A��	���H���������������e�S�l��������������������������������@B@���	�������W�������������f�����������n���B���I	�@���g��C���[�R���B���h�������A�f�a�������F�����G�a�I�����H�B(�	�I���g�D�J�E�o�M�Q���L�U�i�����R���O�P���N�K�G�����WC��	�T�V�S�p���X���e�a�[�_�����Z�b�f�j�����\�d�Y�]�^����HC,�	�]������������g���c�h�j���m�i���������l���k�C��	�����n�u�o�v�r�����t�q�w�p�c�D�k�s��{�~�|��z�`���C�	���}�x�@�q�J�D�U������y������J�����D��	�[������Z�������PD�	�����D8�	�����������������r�u�����l������DT�	��������r���������Q�A�`�������HE��	���������K���������������������|��XE0�t�����$�X�����P����T����X������t�����x��x���,����x����h�����,����������<����h���\���,�����8��� ���$����x��0��L���(������s�V	�l���������������k�������������������^���E��	�����������������������������������E�����W���E��	�����������]�������I���������������b�����m�n�����xFd�	�����_�w�������������E�������������E�\`F�	�������e������r�����E�]���B�F8�	�A��t���D�C�o�r�T�H�I���G���F�J�����B���F���N	�O�K�L�M�p�U�Q�����G�P�S�R�c�V�W�V�X�Z�^�[�Y�^&G��\	�]���d�_�`�a���c�b�e�f�g�b���h�����L���v�i�j�P�khGX�	�l�m�n�o�����p���q���r���s�����C�w���M�t�q�u����w�������v�D�G��x	���z�y�|�{�}��~�����������F������GT�	����������H�����m�c���F�|�����.H��	����������c�����������������p�����pH�	����������s��������������������H|��	����t�`��r����������H�	����������������������6I(�	�����e������������p����������H��������xI��	���������G��������������������������I�	���t���������������������������K���������I<�	�������N�����f������������������>J��	���~���u���W�������������H�@������J���	�������������U��������������J@��@	��������B���C�������n�����J�P�QK��D	���N�F�H�R�G�K�����L�O�E�E�I�F�d�O�������V�TFK�	�m�S���U�W�X�[�Y���Z���M���\�a���`�KX	�A�b�h�]�_�^�P�A�d�c����e�f�K�	�g���s�i�|�������j�k���l����L�	���q�r�m�\�n�a�o�p�z�t�w�sNL<	�u�v���x�`�u�a�{�^��|����}�~�g����������L��	�I���������w����������L�	���X����I����������������MD	��Z���������VM��	������������I�a��M�	����������y����������M$��	�����O�s�����p�X���q�����t�����\����������������Np	�����U����������������������������������^N�	���������������T�������������������������������ND	�������������J���������������N�	��������������A�@�C�B�D�P�E�F�G��$O	�v�H���e�I�J���K�K���`�L�o�M�O���N�e�P�Q�R���S�T�UfO\�V	�p�W�X�Y���G�Z�[�\�O���	���]�v�u�`���_�P�^���L�a�b�����c�K�������i�d�f�����O	�e�h�i�����g���]�f���r�m�w�����l�l�k�F�l�b�Y���j,P�	�o�p�n���_���F�s���a�U�v�����r�w���t�u�q�����N�����b��nP�	�z�x�k�����y�z���_�{�����������~�|�@����}��������Pl�d�y��	��������������u����w����T�����P�	��������������x����c�������4Q\	�	�]�����Q�����vQ�		�J���Q�		�����L����������������^���Q
	�����e�����L�������v�n�����������������������M���������\���f<Rp
�����G���d	���������G���o���^�����������������q�����w��~R	�������������������������R�	�������q�����������NS�	�����z������������DS�	�����������������������������H���H�����S0	�����x��������H����S�	����@�D�A��B�C�J�E���G�I�F�L�R�K�M
T�	�N�Q�P�O�S�R���U�T�V�W�Y�X�g�Z���[�]�^LT$
	�_�\�`���a�O�R���b���]�c�f���e�d�y�g�T�
	�r�i���h�q�k�m���j�l�p�n�P�o�r�y���S�s�A�u�t�x�`�T�
	�w���v�{�z�y�Q�|�}�~���D���UH	�h�������������C�J�_��������HTU�	�I���v�}���������������R��q���������U��\��0����P��L����t�� �x��4����8��P��4x�<��h�<��T�x�d�T	�	�	�
h
|��(��
x
�
@��LT����	����t�����������r�������������������A����T�i������N��U`	�����x����V�^�����������B�����������k���y��K����������J�I�������V�������	�����W���M�������@\V�	���x�Y��S�����s�X���s�V	����A���V@	�����U���z�����������|���������V�����y���_"Wh	�����������������X������������������dW�����	�������������d�����������B�����j�������t�����������W$	���b���������n���������W�	�S�������������������������z�g*X���	�e���L���������������K��lX(	��N������s�e������|�Xp	�K������@�B���A�C���d���B����^�E�D�F�X�	����t���K�b�G�H�L�J���I��2Y	���O�������Z�M�N���L�PtYL	�V�Y�X�L�Q�R�U�W���Z�T�S�Y�	�^�_�`�]�\�����[�d�b�c�a���e�Y�	�f�h���g���s�i�l�j�k�m�o�p�q�t�r�u�w:Z	�v|Zh	���Z|��	�x�M�y���z�J�[�����{�|�}�~����t�}������{����[�	���������������B[	���������h�j���[P��	������~����������@�w���������A�������������z�[�	�����G���@��K���u����������B������������������\����	�Y���W���������G������������J�������_������dJ\���	���k������������������������I�P�������\	�����������������������r���������v���x���C�������\�	���������������������f�������������]�	���������������B���������C��R]H	�����������{�����a�����������z�����j���o����p����]�	�����z�{��������^��������@�B�A�]	���C�D�E�F^\	�H�G�I�����H�Q�J�K���Z���������O��Z^�	�L���M�{�a�`�N���O�P�R�S�U�Q�T���V�W�X�Y�^�	�Z�\�[�^�a�]�_�`�b���^4	���c�d���e�]�n�f�g�y���h _l	�����w�������m�����l�j�k�i�w�n�o�p�q�s�r�xb_�	�t�v�R�u�����x���y���z��_�}	�|�~�{��������������_P	�����[�(`��	�����������������E������j`�	��������������T���S�`(	�@����������������D��`|	���������������L���N��0a��	��������������I�����������~��������ra	���������������k�����������������h�������������V���ap	�����L���������������a�	�������������P����8b 	����������������������������������zbP 	�����D�C�E�L�@�A�����B�Q�J�F�K�b� 	�H�G�{�L�M�N�I���O���S�T�R�b!	�Q�W�P�U�V�Y�X�[�\�]�h�Z�����^@cD!	�_�`�a�c�!	�b���c�d���c�!	�e�f�g�h�k�i�[�j���l���m���n�p�q�o������������d�!	���s�o�t�u�v���w�������x�z�y�{�|�}�~�������Hd<"	���C����l���@��d�"	��V��������������������d�"	�����s�e@#���8`��� h�D��`t��H|�x�@��Tx�,d�H�� t�h� H � � <!�!�!�!4"�"�"8#\#Ped#�e,�	�I���������i�j���{�C�D�^�O�P�Q�R�S�T�U�V�W�X�F�G�������H���`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�m�_�n�O�Q�el$�M�����������������������������������������������������o�b�p	��������������������������������el%��������������������������������	8fp&	�P��zf'�d%h&�&'�f'<��f8'v8'0g8'����ȟ��Р$�4�<����t�����X\$d$0'@'H'P'BgX'	���N���}�L��9h�'	�]�\�e�f�g�h�����d�c��������{h�'	���������h0(	�T�U�V�W�X�Y�Z�[�\�]�@�A�B�C�D�E�F�G�H�I�hP(��	�����������������������a��������������������Ai�(	�������������i)	�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�iD)((�H(�(��ء)d�<)���)$�<�d�����ȣj�)�@�A�B�V	�X�Y�Z�q�r�s�t�u�v�w�x�y�z�����k�l����Ij�)	�������j`*	�����������j|*	�e�i�`�c�a�k�j�d�l�f�nk�*	�_�m�b�g�h�~������Qk�*	�r�s�o�p�q�u�k+	�t���k8+X*��p�l��t*�*�*+0+H+lP+����	�������O�����s�^���N���������u���������h�������������O������Yl�+�Y�m��	�����w�����������e�d�����t���W�����i�������������������C�j�l,�k��	�l�������������x�����`���������L�m�f�����l�,	���A�������Z���C�����n���]���������C�����������������gm-	�������p���������o�r�����q���������D�������N����am�-	�W�����a�r�s���������������������M�������C���o�U���������v�m�-�,t���,-�-�-x.�.	�����q���{�����|���������w�����u���l���������������`�����m�.�t	�z���x�����������������������y�����������U'n0/��	���T���{�P�������b���B�������Xin�/	�C���@�A�������l�D�}���E�H�F�m�G�I�|�K�J���n�/�Y��	���Z�[���������~���[���e���Z�\�}���]�����S�_�`�����Z�a���������T���nL0�b	�c���~�f���e���g���h�`�i�j�k���������n�l���m�y�o�p�q�~�u�s�t�r���v�����w��/o�0	���x�y�y���������z����{�}�����}�����~���M���������o����qo�1��	�n���������������Y���������������������������������h���o2	�c�����������������������������w�������w���J�������N�o�2����	�u���E�����������������������������������M��������������7p3������	�������������������k�����x�������������������C������yp�3���\	���������������������������P���m�����T�����K���������p�����������p4	���������������������~�X�}�������������p�4	�Q�������y�F�o�����f�������������b�p���������@�����������������j�E�����i��?q5��	���������a�������������B�������@���]���P���D���C�q�5���i�A	���������E���N�F�G�����L�K�N�M�J���q 6�\	�f�P���h�A�^���b�[�������c�_���i�g�r�i���d���cr�6��	�����V�������B���������R������Gr�6	�������^�����C�_�����������r@7��	���������������������W���u�������|�����r�7	���������������n������������������
s�7	�������������[�O���g�������������V���v����������������Os88	�����������t���_���z���������������������������D�������z�@�D�s�8	�A�@�����D�J�W�d�����B�E�����W�i�F���������s<9�q	�o�p�q�r�E�s�������t�u�y�F���G���v�w�w���x���y�z�{�}t�9��	���������������x�������������Q���@�����������J���R����������������������Wt:	�������������������q���������������������������A�������K���s���A�t�:	�������������Z���������x���������������tP;	�����������������������������s��u�;	�������������R������������������_u�;	�����������������������������uL<	���������������������������������u�<	�������������������B�����H���I�������������b���J���F��%v�<	���P�M�Q���T���������U�|�����V���O�o�����������W�X�^���������Y�J�egv`=	�Z�g�[���\�]�_���`�a�b�S�R�c�`�F�����V���j�d���e�e�f�����i�v�=�����h�g�a��	�m�k�j�������l�k�]���p�o�n�q���r���z�s���������O�t�J�vx>	�S�K���E�u�u�Y�Z���z�����w�����y�O�x�v���|-w?(/�/�/D0L��0�12�2�3�34�45�5d�ij6x6д��6̵�X����p�87|7�7���08ܹ�849�9��̻�,�t���:���:H;T��;�;D<�<�<X=�� �����=p>?d?l?	�����������������P�����������~�������p�����������������b��owx@	���������������������������������I���x���Y�����{�������������w�@	�������f�������������������y���S�������z�������������w�A���D	������������������������������������������������5x�A	�J�������������������������e��������������wxtB��	�����������^������������������@���A���B�C�Y�D�E�F�������[�x�B�Z	�O�V���P�c�}�R�S�W���T�R���e�����������������Z�����x`C��	���������`�����K�g�����������������h=y�C	�����E��������������y4D	�����T�����Q�����P�������d�B���o�h�����ylD	�i�������������^���������F���C���[����������������z�D	���������q�~�����s�����������U���h�������G�~��Ez<E��	�V�����������������������������f���t�����������c�����������E�z�E	�����W�����W���N�����������������A���������i���������q�z4F	�����������������g���������������b�����\�A��������{�F	���@�����B���C�j���D�F�G�H���g�X�I�J�������f���]�\��M{$G��	�����L�������K�����L�N�]���M���N�O�������{�D�Q���p�S�V�U�����R�{�G	�T�W���������������Z�m�X���Y�����[�\�����a�Y�t�^�������n�f�`�����{,H	�f���]�c�b�����������}�g�e���d�_���k�i���g�m�s��|�H����	���u�A�t���^�����_���M�p�o�q�n�v�l�j�r�h�������������`U|,I	�������h�����I�x�Z���z�����}���j���i���|�I�{���j����	�y���|�~���K�����j�������V���O�����������|J	�����d�����������_���������I�����������X��������}�J	�k���������^�����������������������|�������������O�y��]}�J	���T���|���P�����Y���������������������}lK	��������\�����������l���������������������������}�K	�������������������W�����������������~���������������M#~8L	�����������k���@������������������e~�L	���D�C�I�E�L���H�J�������M�Q�N�~M��	�B�w�x�������y���������z�|�{�~�}�~TM	�����������C���������X�i����+�M���`��	�����������������]�r�����������������D��m�M	�������������������B���������v���������������������������\N	���������������@�����������A�g���D�����������j��N	���m�����������������k�^���F�������������h3�HO	�����������l�����Y�_�Q�\�������C�Z��u��O	�������O�������@�������A�U�t��������P��	�����������B�i�����������W���������������[�D�~�����C�����Y�E��XP	�����������a�k���������������n�������Q�H�����������`���F���I��;��P	�������������X�G���N�����������p��}�pQ��	���������������a�������������n���M���J���Q�G�F�L	���C�K�O�P���U�T�V�Y�b�S�L�W�$R�����Q�Z	�X�]�[�^�a�Z���G�����\�`���_�J�M��d�hC�xR|��@|A�AlB���B��XC���C����P���,Dt�dD�D4E���E��(�,F�FG�G$H�H$I�IJxJ��J��dK�K0L�LMD�LM��T����M�MTN�N@O�O�OPP�PhQ�QR���\�pR�R�R	�f�N�O�b�c�g�e�m�m�j�i�l���n�����P���o�q�p���S	�Q�F�����u�t�R�x�Y�{�v�z�y�_���bǂTT	�T��S�����������R��	��T	�V�W����������U��������������K��T	�Y�R������������z����W���C�������Z���8U����	����]�������[�����\σ�U	���������������]�������L�������P�Q������U	�����������b�������l���_������S�TV	�������������������`���V��	�����a�X�����d�b�����c���]������f����ׄ�V	�������e�������g�i�h�j���������i�����8W	���������l���������k����������������[��W	���l���m����������W	�n�K�J�L�M�O�N���Q�P���r�[�R���Y���S�p���T���c�R�b�\�j�������U߅ X	�V�[�Y�X���E�W���������\�Z�{�����L�^���l�_�]���`�a�o�����f�c���b�E!��X�	�p��I�F�c����H�����s�q�r�t���������Mc�@Y��	�v�������������r�������������Y	�������������x�u���m�C�j�v�{�Z	���y���z���d�������{��)�HZ	���D�b�F�E�G�����I�H�|������k��Z�h��	�\�T�S�����������T���U�W�X�H�Y�Z�[���������Z	������}�����������������������v������G����[����^�|�����4[	�������������Z�����������\�������1��[	�I���g�D�J���E�o�M�Q���L�U���i�����R���O�P���N�K�G�����Ws�8\	�T�V�S�p���X���e���a�[�_�����Z�b�f�j�����\���d�Y�]�^�������\	�]��������������g���c�h�j���m�i���������l���k��8]	���}�x�@�q�J���D�U������y������J�����9��]	�[����\���Z�������{�^	�������������������r�u�����l�������d^	��������r�����������Q�A�`�������H���^LT���T$��T0U���U����U��LV�V�V0W�W�WX���X8Yx���,����Yx����Yh���@Z|Z�����Z��,[<����h��[\���0\����8��� ����\0]�]x�^\^�L��^@_��H_	������������s�������������������A�T`�	����t�`��r����������������`	�������e������������p����������H����������Ŋa	�����t���������������������������K���������xa	�������N�����f��������������������I��a	���~���u���W�������������`�H�@�������0b��@	��������B�����C���������n�������J�P�Q͋�b�D	���N�F�H�R�G�K�����L�O�E�E�I�F�d�O���������V�T��b	������������y���������Q�`c	���������������T�����������������������������������c	�������������J���]������������Ռ d��	���]�v�u�`���_���P�^���L�a�b�����c�K�������i�d���f�����td	�e�h�i�����g���]�f���r�m�w�����l�l�k�F�l�b�Y�����jY��d	�o�p�n���_���F�s���a�U�v�����r�w���t�u���q�����N�����b������he	�z�x�k�����y�z���_�{�������������~�|�@����}���������ݍ�e	����������������x����c����������tf�����G���d	���������G���o���^�����������������q���������w��a��f	����������������������������dg	�������q�������������N��g	�_�\�`���a�O�R�����b���]�c�f���e�d�y�g'��g�\��0����P��L����t��`ax�pa4��a(b�b��bXc��4x�<���c�<dldT��d`e�elfT	�f�	�
h
\g�g�g(��
x
8h@��L@h	�����x����V�^�����������B�����������k���y����K����������J�I�������i�Li	���x�Y����S�����s�X���s���i	��������A���@j����	�������������d�������������B�������j�������������t��������������/�pj	�������b�����������n��������������q�k��	�S���������������������������������z�����g��\k��	�e���_�L�����������������K�����k	����N������������������s�e�����e����|��7�l	���K������@�B���������A�C�����d���B����^�E�D�Fy�xl	��^���t���K���b�G�H�L�J�����I�����l	���O���������Z�M�N���L�P��8m	�V���Y�X�L�Q�R�U�W�����Z�T�S��?�xm	�^�_�`�]�\�����[�d�b���c�a���e���m	�f�h�������g���s�i�l�j�k�m�o�p�q�t�r�u�wÒn��	�x�M�y���z�J�[�������{�|�}�~����t�}������{�����pn	�����G���@��K���u������������B��������������������G��n��	���k������������������������I���P�����������o	���������������������������������r���������v���x���C������˓�o	�����z�{����������^����������@�B�A
�|p	�L���M�{�a�`�N���O�P�R�S�U�Q�T�����V�W�X�YO��p	���c�d�����e�]�n�f�g�y���h��@q�}	�|�~�{���������������Ӕ�q�	�����������@���������E��������q	�@����������������D�B��AW�Dr	����C������������L���N�D���E���r�F	���������������k�����������������h�������������V��ە�r	�����D�C�E�L�@�A�����B�H�Q�J�G�F�K�hs	�J�_�`�a_��s	���s�o�t�u�v�K���w�������x�z�y�{�|�}�~����������s��i�8jhj�kTk�klpl�l0mpm�mnhnt���nH|xo�otp@���px�8qd|qH�q�<rt�r�rh`s H � �s<!�!�s�!4"Tt�"8#\#Pe\t�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�\u����������������������������������������������������������������hv����������������������������������������������������������������������������������������������������������������@�A�B�Ctw�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������x��������������������������������������������������������������������y���������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�z�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������{������������������������������������������������������������������������|�������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�}�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������~���������������������������������������������������������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O��P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S��T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W(��X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������������������������������������4���������������������������������������������������������������������������������������������������������������������������������@��������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[L��\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������������������X���������������������������������������������������������������������������������������������������������������������������������d������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_p��`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������������|��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c���d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	���`vlwxx�y�z�{�|�}�~�؀������ �,�8�D�P�\�h�t����������� ��%�(�	��g���	����Ĕ	���������������X�^�u�}�~���������������������������������������I�ؔ	�I�W���������V�i�j���{�C�|�D�^�O�P�Q�R�S�T�U�V�W�X�F�G�������H���`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�m�_�n�O�Qh��M�����������������������������������������������������o�b�p�`	�������������������������������-�t�	�������P�U��o�|����Д`�l�t��&�������'��ȟ��Р$�4�<��)�+�.p@�SL`DiTud$��ȗ@'H'P'�З@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmmmmmmmmmmmnopqrstummmmmmmmvwxyz{|mmmmmmmmmmm}~������������mmmmmmm��������mmmm�@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWWWWWWWXYZ[\]^_`abcdefghijklmnoWWWWWWWWpqrstuvwxyz{|}~��������WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@�	

 !"""""""""""""""#$%&'()*+,-./0123456789:;<=>?@ABC"""""""""""""DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""@�@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������������������������������������������������@�	

 !"#$%&'()*+,-./0123444444444444444444444444444444444444444444456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������������������������������������������������@�	
















































































































































































�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx��	
������	

 !"#$%&'(��	
��	

 !"#$%&'()*+,-./012��	

����	

��������	

��������	

������������	

��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?@��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456788889:;<8����	

 ��	

��	

 !"#$��	

��	

��	

��	

��	

��	��	

��	

��	

��	

��	

��	

 !"��	

 !"#$%��	

��	

��	

��	

��	

��	

��	

 !"��	

��	

 !"#$%��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
����	

��	
��	

��	

 !"��	

 !"#��	

 ��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

 !"��	

 ��	

��	

 ��	

��	

��	

��	

��	

��	

��	

 !��	

��	

��	

��	

��	

��	

 !"#��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

 ��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

����	

��	

��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	
����	

��	

 !"#��	

��	

��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'(��	

��	

����	

��	

��	

��	
��	

��	

��	
��	

��	

��	
��	

��	

��	

������	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

����	

��	

��	
��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	
��	
��	

��	

��	

��	

������	

��	

��	
��	

����	

 !"#$%&'()*+,-./0123456789:;<=����	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./0123456789:;<=>��	

 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!���������	





����	

����	

��	

����	

��	

��	

������	
��	
������	
��	

 !��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'��	

��	

��	

��	

��	

��	

 !"#��	

��	

 !"#$%&��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$%&��	

 !��	

��	

��	

��	

��	

��	

��	

 !"��	

��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

 ��	

��	

��	

��	

 !��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

 ��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	
��	

��	

��	

��	
��	

 ��	

 !"��	

��	

��	

��	
��	

��	

��	

 !"#$��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

 !"#$%&'()��	

��	��	

 !"#��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

����	

��	

��	

������	

 !��	

  !"#$%&'()*+,-./0123456789:;<=>?�����	




; D��<t��dT��|zRx�$��0FJw�?:*3$"D�� \���<HoGNU�P K"��4� ���f���' ���f��Ȟ ���f�� o ���f������0
�K"K"���o`��
P"0�(	���o����o�o����o�M"`pGA$3a10�GA$3p1067`�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignjapanese_sjis.so-2.2.10-35.el8.x86_64.debug�tj�7zXZ�ִF!t/��]?�E�h=��ڊ�2N�H:�^ ������,�\��c��@X�+Lk7���p��rxQ�f����x���+�#M\�j�,r�����9�`�g|z	2�G���~�#"�k��y�@�&���DH�m��G�o⣦�&CļA�:����R�FԷ+���U��X៦5���{�ؾ�����ΧD�[4��aD	<%DJ�Od�x<�B�!G�q,[���#L�3@6l
,_�ۜ�n���!,�xl���А�z�q� o���O��IګY�uó�3A-^S4R��KU�	d���K8�`��'�A8wdٸ�)�u�.&��1D� �xLW��K��a���JI�y粹w�~�� �ƆҀ��'OlQ��h#��Qc��³\Q9Co2� �%�x�f��i�h������l�l#񶩡���dv�_��6
��h�sG�D�y:p�JwKO�듿�o
,ўjk���@��K�|hi6�p(MC�&���cr*m�����M��KT�C�h���_w���8lq�K�
�pq�\����[5����Ę��m��HC���av�@B�G�{A�uݯ;��^P�2Hoc��h#�	�A���E�7�)��f#��y�	R����,Nⅆq��#����y��
�i�C�[���}��4�a��)�*�ϥ����B#�m}��l �h^����^,�u�Z��Ɲ��j�ɿmv�?ϨP&�6jH�4"
x�X������1���)%0��⃫�ҥD�L�?��!jA�N��K���n���	u��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T��(^B0h00cPP0n�� w���}��
���J2 �;;$�0;0;t��;�; �K"K�K"K� K" K� ��M"�M ��O"�O �P"P(�(P"(P�0Pb(P�
 R0PRH�U+lib64/ruby/2.2.0/x86_64-linux/enc/trans/chinese.so000075500000557000150402105760015066 0ustar00ELF>�@��@8	@ؼؼ ��"�"  ����"��"  888$$������  S�td������  P�td���$$Q�tdR�td��"�"��GNUb�JZ翧'�	c�N���T��@�	BE���|�qX
x b , F"�(�"�0�"�(�"U`<__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_chineserb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��"P�" �" �"@�"�H�"�X�"h�"���"���"���"�"���"���"���"��"� �"�(�"�8�"H�"���"��"��"��"�" �"��H��H���"H��t��H����5��"�%��"��h�������h���������%��"D���%��"DH�=��"H�z�"H9�tH�&�"H��t	�����H�=Q�"H�5J�"H)�H��H��H��?H�H�tH���"H��t��fD�����=
�"u+UH�=��"H��tH�=��"�Y����d������"]������w������H��H�=��"����H�=�"����H�=Y�"��H�=��"H�������H��H���UTF-8GB12345GB2312 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓	⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ`�!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん	�8ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ	 �ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ	αβγδεζηθικλμνξοπρστυφχψω��АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ	абвгдеёжзийклмнопрстуфхцчшщъыьэюя��āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüê	ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ@�	─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋��		0啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥@薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖H场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮P怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二X贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹`埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖h弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件p健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻x 俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�!馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�#痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿%隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�&谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸(摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�)拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗+啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�,恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠.取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�/伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳$1省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�2恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔,4獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�5汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威47巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�8稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓<:小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�;选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶D=摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�>印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉L@浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�A铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政TC帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�D住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座	`\F亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�G佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼TI凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�J邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝\L堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�M荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺dO蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�P摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼lR唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�S帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺tU狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�V恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾|X洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑Z濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�[妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩]纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�^琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹`椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�a辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰c搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�d臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐 f怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�g睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪(i铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�j稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙0l瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�m颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒8o蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�p簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤@r酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�s觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋Hu鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�v|�0�����	(8�@�H�P�X�`�h�p �!x#�$�&(�)+�,.�/1�2$4�5,7�84:�;<=�>D@�ALC�DTF�GLI�JTL�M\O�PdR�SlU�VtX�Y|[]�^`�ac�df�g i�j(l�m0o�p8r�s@u�vHx�Px啊阿埃挨哎唉哀皚癌藹矮艾礙愛隘鞍氨安俺按暗岸胺案骯昂盎凹敖熬翱襖傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙壩霸罷爸白柏百擺佰敗拜稗斑班搬扳般頒板版扮拌伴瓣半辦絆邦幫梆榜膀綁棒磅蚌鎊傍謗苞胞包褒剥�y薄雹保堡飽寶抱報暴豹鮑爆杯碑悲卑北輩背貝鋇倍狽備憊焙被奔苯本笨崩綳甭泵蹦迸逼鼻比鄙筆彼碧蓖蔽畢斃毖幣庇痹閉敝弊必辟壁臂避陛鞭邊編貶扁便變卞辨辯辮遍標彪膘表鱉憋别癟彬斌瀕濱賓擯兵冰柄丙秉餅炳,{病并玻菠播撥鉢波博勃搏鉑箔伯帛舶脖膊渤泊駁捕卜哺補埠不布步簿部怖擦猜裁材才財睬踩采彩菜蔡餐參蠶殘慚慘燦蒼艙倉滄藏操糙槽曹草厠策側册測層蹭插叉茬茶查碴搽察岔差詫拆柴豺攙摻蟬饞讒纏鏟産闡顫昌猖�|場嘗常長償腸廠敞暢唱倡超抄鈔朝嘲潮巢吵炒車扯撤掣徹澈郴臣辰塵晨忱沉陳趁襯撑稱城橙成呈乘程懲澄誠承逞騁秤吃痴持匙池遲弛馳耻齒侈尺赤翅斥熾充衝蟲崇寵抽酬疇躊稠愁籌仇綢瞅醜臭初出橱厨躇鋤雛滁除楚4~礎儲矗搐觸處揣川穿椽傳船喘串瘡窗幢床闖創吹炊捶錘垂春椿醇唇淳純蠢戳綽疵茨磁雌辭慈瓷詞此刺賜次聰葱囱匆從叢凑粗醋簇促躥篡竄摧崔催脆瘁粹淬翠村存寸磋撮搓措挫錯搭達答瘩打大呆歹傣戴帶殆代貸袋待逮�怠耽擔丹單鄲撣膽旦氮但憚淡誕彈蛋當擋黨蕩檔刀搗蹈倒島禱導到稻悼道盗德得的蹬燈登等瞪凳鄧堤低滴迪敵笛狄滌翟嫡抵底地蒂第帝弟遞締顛掂滇碘點典靛墊電佃甸店惦奠澱殿碉叼雕凋刁掉吊釣調跌爹碟蝶迭諜疊<�丁盯叮釘頂鼎錠定訂丢東冬董懂動棟侗恫凍洞兜抖鬥陡豆逗痘都督毒犢獨讀堵睹賭杜鍍肚度渡妒端短鍛段斷緞堆兑隊對墩噸蹲敦頓囤鈍盾遁掇哆多奪垛躲朵跺舵剁惰墮蛾峨鵝俄額訛娥惡厄扼遏鄂餓恩而兒耳爾餌洱二��貳發罰筏伐乏閥法珐藩帆番翻樊礬釩繁凡煩反返範販犯飯泛坊芳方肪房防妨仿訪紡放菲非啡飛肥匪誹吠肺廢沸費芬酚吩氛分紛墳焚汾粉奮份忿憤糞豐封楓蜂峰鋒風瘋烽逢馮縫諷奉鳳佛否夫敷膚孵扶拂輻幅氟符伏俘服D�浮涪福袱弗甫撫輔俯釜斧脯腑府腐赴副覆賦復傅付阜父腹負富訃附婦縛咐噶嘎該改概鈣蓋溉幹甘杆柑竿肝趕感秆敢贛岡剛鋼缸肛綱崗港杠篙皋高膏羔糕搞鎬稿告哥歌擱戈鴿胳疙割革葛格蛤閣隔鉻個各給根跟耕更庚羹ȅ埂耿梗工攻功恭龔供躬公宫弓鞏汞拱貢共鈎勾溝苟狗垢構購够辜菇咕箍估沽孤姑鼓古蠱骨谷股故顧固雇刮瓜剮寡挂褂乖拐怪棺關官冠觀管館罐慣灌貫光廣逛瑰規圭硅歸龜閨軌鬼詭癸桂櫃跪貴劊輥滚棍鍋郭國果裹過哈L�骸孩海氦亥害駭酣憨邯韓含涵寒函喊罕翰撼捍旱憾悍焊汗漢夯杭航壕嚎豪毫郝好耗號浩呵喝荷菏核禾和何合盒貉閡河涸赫褐鶴賀嘿黑痕很狠恨哼亨横衡恒轟哄烘虹鴻洪宏弘紅喉侯猴吼厚候後呼乎忽瑚壺葫胡蝴狐糊湖Ј弧虎唬護互滬户花嘩華猾滑畫劃化話槐徊懷淮壞歡環桓還緩換患喚瘓豢煥渙宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍謊灰揮輝徽恢蛔回毁悔慧卉惠晦賄穢會燴匯諱誨繪葷昏婚魂渾混豁活伙火獲或惑霍貨禍擊圾基機畸稽積箕T�肌饑迹激譏鷄姬績緝吉極棘輯籍集及急疾汲即嫉級擠幾脊己薊技冀季伎祭劑悸濟寄寂計記既忌際妓繼紀嘉枷夾佳家加莢頰賈甲鉀假稼價架駕嫁殲監堅尖箋間煎兼肩艱奸緘繭檢柬碱鹼揀撿簡儉剪减薦檻鑒踐賤見鍵箭件؋健艦劍餞漸濺澗建僵姜將漿江疆蔣槳奬講匠醬降蕉椒礁焦膠交郊澆驕嬌嚼攪鉸矯僥脚狡角餃繳絞剿教酵轎較叫窖揭接皆秸街階截劫節桔杰捷睫竭潔結解姐戒藉芥界借介疥誡届巾筋斤金今津襟緊錦僅謹進靳晉禁近燼浸\�盡勁荆兢莖睛晶鯨京驚精粳經井警景頸靜境敬鏡徑痙靖竟競凈炯窘揪究糾玖韭久灸九酒厩救舊臼舅咎就疚鞠拘狙疽居駒菊局咀矩舉沮聚拒據巨具距踞鋸俱句懼炬劇捐鵑娟倦眷卷絹撅攫抉掘倔爵覺决訣絶均菌鈞軍君峻�俊竣浚郡駿喀咖卡咯開揩楷凱慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕顆科殻咳可渴克刻客課肯啃墾懇坑吭空恐孔控摳口扣寇枯哭窟苦酷庫褲誇垮挎跨胯塊筷儈快寬款匡筐狂框礦眶曠况虧盔巋窺葵奎魁傀d�饋愧潰坤昆捆困括擴廓闊垃拉喇蠟臘辣啦萊來賴藍婪欄攔籃闌蘭瀾讕攬覽懶纜爛濫琅榔狼廊郎朗浪撈勞牢老佬姥酪烙澇勒樂雷鐳蕾磊累儡壘擂肋類泪棱楞冷厘梨犁黎籬狸離灕理李裏鯉禮莉荔吏栗麗厲勵礫歷利傈例俐�痢立粒瀝隸力璃哩倆聯蓮連鐮廉憐漣簾斂臉鏈戀煉練糧凉梁粱良兩輛量晾亮諒撩聊僚療燎寥遼潦了撂鐐廖料列裂烈劣獵琳林磷霖臨鄰鱗淋凛賃吝拎玲菱零齡鈴伶羚凌靈陵嶺領另令溜琉榴硫餾留劉瘤流柳六龍聾嚨籠窿l�隆壟攏隴樓婁摟簍漏陋蘆盧顱廬爐擄滷虜魯麓碌露路賂鹿潞禄録陸戮驢吕鋁侣旅履屢縷慮氯律率濾緑巒攣孿灤卵亂掠略掄輪倫侖淪綸論蘿螺羅邏鑼籮騾裸落洛駱絡媽麻瑪碼螞馬駡嘛嗎埋買麥賣邁脉瞞饅蠻滿蔓曼慢漫�謾芒茫盲氓忙莽猫茅錨毛矛鉚卯茂冒帽貌貿麽玫枚梅酶霉煤没眉媒鎂每美昧寐妹媚門悶們萌蒙檬盟錳猛夢孟眯醚靡糜迷謎彌米秘覓泌蜜密幂棉眠綿冕免勉娩緬面苗描瞄藐秒渺廟妙蔑滅民抿皿敏憫閩明螟鳴銘名命謬摸t�摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌謀牟某拇牡畝姆母墓暮幕募慕木目睦牧穆拿哪呐鈉那娜納氖乃奶耐奈南男難囊撓腦惱鬧淖呢餒内嫩能妮霓倪泥尼擬你匿膩逆溺蔫拈年碾攆捻念娘釀鳥尿捏聶孽嚙鑷鎳涅您檸獰凝寧��擰濘牛扭鈕紐膿濃農弄奴努怒女暖虐瘧挪懦糯諾哦歐鷗毆藕嘔偶漚啪趴爬帕怕琶拍排牌徘湃派攀潘盤磐盼畔判叛乓龐旁耪胖抛咆刨炮袍跑泡呸胚培裴賠陪配佩沛噴盆砰抨烹澎彭蓬棚硼篷膨朋鵬捧碰坯砒霹批披劈琵毗|�啤脾疲皮匹痞僻屁譬篇偏片騙飄漂瓢票撇瞥拼頻貧品聘乒坪蘋萍平憑瓶評屏坡潑頗婆破魄迫粕剖撲鋪僕莆葡菩蒲埔樸圃普浦譜曝瀑期欺棲戚妻七凄漆柒沏其棋奇歧畦崎臍齊旗祈祁騎起豈乞企啓契砌器氣迄棄汽泣訖掐�恰洽牽扦釺鉛千遷簽仟謙乾黔錢鉗前潛遣淺譴塹嵌欠歉槍嗆腔羌墻薔强搶橇鍬敲悄橋瞧喬僑巧鞘撬翹峭俏竅切茄且怯竊欽侵親秦琴勤芹擒禽寢沁青輕氫傾卿清擎晴氰情頃請慶瓊窮秋丘邱球求囚酋泅趨區蛆曲軀屈驅渠��取娶齲趣去圈顴權醛泉全痊拳犬券勸缺炔瘸却鵲榷確雀裙群然燃冉染瓤壤攘嚷讓饒擾繞惹熱壬仁人忍韌任認刃妊紉扔仍日戎茸蓉榮融熔溶容絨冗揉柔肉茹蠕儒孺如辱乳汝入褥軟阮蕊瑞鋭閏潤若弱撒灑薩腮鰓塞賽三叁�傘散桑嗓喪搔騷掃嫂瑟色澀森僧莎砂殺刹沙紗傻啥煞篩曬珊苫杉山删煽衫閃陝擅贍膳善汕扇繕墒傷商賞晌上尚裳梢捎稍燒芍勺韶少哨邵紹奢賒蛇舌捨赦攝射懾涉社設砷申呻伸身深娠紳神沈審嬸甚腎慎滲聲生甥牲升繩��省盛剩勝聖師失獅施濕詩尸虱十石拾時什食蝕實識史矢使屎駛始式示士世柿事拭誓逝勢是嗜噬適仕侍釋飾氏市恃室視試收手首守壽授售受瘦獸蔬樞梳殊抒輸叔舒淑疏書贖孰熟薯暑曙署蜀黍鼠屬術述樹束戍竪墅庶數漱�恕刷耍摔衰甩帥栓拴霜雙爽誰水睡税吮瞬順舜説碩朔爍斯撕嘶思私司絲死肆寺嗣四伺似飼巳鬆聳慫頌送宋訟誦搜艘擻嗽蘇酥俗素速粟僳塑溯宿訴肅酸蒜算雖隋隨綏髓碎歲穗遂隧祟孫損笋蓑梭唆縮瑣索鎖所塌他它她塔��獺撻蹋踏胎苔抬臺泰酞太態汰坍攤貪癱灘壇檀痰潭譚談坦毯袒碳探嘆炭湯塘搪堂棠膛唐糖倘躺淌趟燙掏濤滔縧萄桃逃淘陶討套特藤騰疼謄梯剔踢銻提題蹄啼體替嚏惕涕剃屉天添填田甜恬舔腆挑條迢眺跳貼鐵帖廳聽烴�汀廷停亭庭挺艇通桐酮瞳同銅彤童桶捅筒統痛偷投頭透凸秃突圖徒途塗屠土吐兔湍團推頽腿蜕褪退吞屯臀拖托脱鴕陀馱駝橢妥拓唾挖哇蛙窪娃瓦襪歪外豌彎灣玩頑丸烷完碗挽晚皖惋宛婉萬腕汪王亡枉網往旺望忘妄威��巍微危韋違桅圍唯惟爲濰維葦萎委偉僞尾緯未蔚味畏胃喂魏位渭謂尉慰衛瘟温蚊文聞紋吻穩紊問嗡翁瓮撾蝸渦窩我斡卧握沃巫嗚鎢烏污誣屋無蕪梧吾吴毋武五捂午舞伍侮塢戊霧晤物勿務悟誤昔熙析西硒矽晰嘻吸錫犧 �稀息希悉膝夕惜熄烯溪汐犀檄襲席習媳喜銑洗系隙戲細瞎蝦匣霞轄暇峽俠狹下厦夏嚇掀鍁先仙鮮纖咸賢銜舷閑涎弦嫌顯險現獻縣腺餡羡憲陷限綫相厢鑲香箱襄湘鄉翔祥詳想響享項巷橡像向象蕭硝霄削哮囂銷消宵淆曉��小孝校肖嘯笑效楔些歇蝎鞋協挾携邪斜脅諧寫械卸蟹懈泄瀉謝屑薪芯鋅欣辛新忻心信釁星腥猩惺興刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅銹秀袖綉墟戌需虚嘘須徐許蓄酗叙旭序畜恤絮婿緒續軒喧宣懸旋玄(�選癬眩絢靴薛學穴雪血勛熏循旬詢尋馴巡殉汛訓訊遜迅壓押鴉鴨呀丫芽牙蚜崖衙涯雅啞亞訝焉咽閹烟淹鹽嚴研蜒岩延言顔閻炎沿奄掩眼衍演艷堰燕厭硯雁唁彦焰宴諺驗殃央鴦秧楊揚佯瘍羊洋陽氧仰癢養樣漾邀腰妖瑶��摇堯遥窑謡姚咬舀藥要耀椰噎耶爺野冶也頁掖業葉曳腋夜液一壹醫揖銥依伊衣頤夷遺移儀胰疑沂宜姨彝椅蟻倚已乙矣以藝抑易邑屹億役臆逸肄疫亦裔意毅憶義益溢詣議誼譯异翼翌繹茵蔭因殷音陰姻吟銀淫寅飲尹引隱0�印英櫻嬰鷹應纓瑩螢營熒蠅迎贏盈影穎硬映喲擁傭臃癰庸雍踴蛹咏泳涌永恿勇用幽優悠憂尤由郵鈾猶油游酉有友右佑釉誘又幼迂淤于盂榆虞愚輿餘俞逾魚愉渝漁隅予娱雨與嶼禹宇語羽玉域芋鬱吁遇喻峪御愈欲獄育譽��浴寓裕預豫馭鴛淵冤元垣袁原援轅園員圓猿源緣遠苑願怨院曰約越躍鑰岳粤月悦閲耘雲鄖匀隕允運藴醖暈韵孕匝砸雜栽哉灾宰載再在咱攢暫贊贜臟葬遭糟鑿藻棗早澡蚤躁噪造皂竈燥責擇則澤賊怎增憎曾贈扎喳渣札軋8�鍘閘眨栅榨咋乍炸詐摘齋宅窄債寨瞻氈詹粘沾盞斬輾嶄展蘸棧占戰站湛綻樟章彰漳張掌漲杖丈帳賬仗脹瘴障招昭找沼趙照罩兆肇召遮折哲蟄轍者鍺蔗這浙珍斟真甄砧臻貞針偵枕疹診震振鎮陣蒸掙睜征猙爭怔整拯正政��幀癥鄭證芝枝支吱蜘知肢脂汁之織職直植殖執值侄址指止趾衹旨紙志摯擲至致置幟峙制智秩稚質炙痔滯治窒中盅忠鐘衷終種腫重仲衆舟周州洲謅粥軸肘帚咒皺宙晝驟珠株蛛朱猪諸誅逐竹燭煮拄矚囑主著柱助蛀貯鑄築@�住注祝駐抓爪拽專磚轉撰賺篆樁莊裝妝撞壯狀椎錐追贅墜綴諄準捉拙卓桌琢茁酌啄着灼濁兹咨資姿滋淄孜紫仔籽滓子自漬字鬃棕踪宗綜總縱鄒走奏揍租足卒族祖詛阻組鑽纂嘴醉最罪尊遵昨左佐柞做作坐座	`Ĵ亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛嗇嘏仄厙厝厴厥厮靨贋匚叵匭匱匾賾卦卣刂刈刎剄刳劌剴剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞傴仳伢佤仵倀傖伉佇佞佧攸佚佝8�佟佗伲伽佶佴侑侉侃侏佾佻儕佼儂侔儔儼儷俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨僨偃偕偈偎偬僂儻儐儺傺僖儆僭僬僦僮儇儋仝氽佘僉俎龠汆糴兮巽黌馘囅夔勹匍訇匐鳬夙兕亠兖亳衮袤褻臠裒禀嬴蠃羸冫冱冽冼��凇冖冢冥訁訐訌訕謳詎訥詁訶詆詔詘詒誆誄詿詰詼詵詬詮諍諢詡誚誥誑誒諏諑諉諛諗諂誶諶諫謔謁諤諭諼諳諦諮諞謨讜謖謚謐謫謭譖譙譎讞譫讖卩卺阝阢阡阱阪阽阼陂陘陔陟隉陬陲陴隈隍隗隰邗邛鄺邙鄔邡邴邳邶鄴@�邸邰郟郅邾鄶郄郇鄆酈郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆芻奐勱劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巰坌堊垡塾墼壅壑圩圬圪圳壙圮圯壢圻坂坩壠坫壚坼坻坨坭坶坳埡垤垌塏埏垧堖垓垠埕塒堝塤埒垸埴埯埸埤埝ĺ堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑薌芙芫蕓芾芰藶苊苣芘芷芮莧萇蓯芩芴芡芪芟苄苧芤苡茉苷苤蘢茇苜苴苒苘茌苻苓蔦茚茆塋煢苠苕茜荑蕘蓽茈莒茼茴茱莛蕎茯荏荇荃薈荀茗薺茭茺茳犖滎H�蕁茛藎蕒蓀葒葤莰荸蒔萵莠莪莓莜莅荼薟莩荽蕕荻莘莞莨鶯蒓菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀縈菰菡葜葑葚葙葳蕆蒈葺蕢葸萼葆葩葶蔞蒎萱葭蓁蓍蓐驀蒽蓓蓊蒿蒺蘺蒡蒹蒴蒗鎣蕷蔌甍蔸蓰蘞蔟藺̽蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蘄蕻薤薨薇薏蕹藪薜薅薹薷薰蘚藁藜藿蘧蘅蘩蘖蘼廾弈夼奩耷奕奚奘匏尢尥尬尷扌捫摶抻拊拚拗拮撟拶挹捋捃掭揶捱捺掎摑捭掬掊捩掮摜揲揸揠撳揄揞揎摒揆掾攄摁搋搛搠搌搦搡摞攖摭撖P�摺擷擼撙攛擀擐擗擤擢攉攥攮弋忒甙弑卟叱嘰叩叨叻吒吖吆呋嘸囈呔嚦呃吡唄咼吣吲咂咔呷呱呤咚嚀咄呶呦噝哐咭哂咴噠咧咦嘵嗶呲咣噦咻咿哌噲哚嚌咩咪咤噥哏哞嘜哧嘮哽唔哳嗩唣唏唑唧唪嘖喏喵啉囀啁啕唿啐唼�唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟嘍嚳喔喙嗪嗷嗉嘟嗑囁嗬嗔嗦嗝嗄嗯嗥嗲噯嗌嗍嗨嗵嗤轡嘞嘈嘌嘁嚶嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙嚕噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡圇囫囹囿圄圊圉圜幃帙帔帑幬幘幗X�帷幄幔幛幞幡岌屺岍岐嶇岈峴岙岑嵐岜岵岢崬岬岫岱岣峁岷嶧峒嶠峋崢嶗崍崧崦崮崤崞崆崛嶸崾崴崽嵬嵛嵯嶁嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巔彳彷徂徇徉后徠徙徜徨徭徵徼衢彡犭犰犴獷獁狃狁狎狍狒狨獪狩猻狴狷猁狳獫狺��狻猗猓玀猊猞猝獼猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂飠餳飩餼飪飫飭飴餉餑余餛餷餿饃饈饉饊饌饢庀廡庋庖庥庠庹庵庾庳賡廒廑廛廨廪膺忄忉忖懺憮忮慪忡忤愾悵愴忪忭忸怙怵怦怛怏怍怩怫怊懌怡慟懨惻愷恂`�恪惲悖悚慳悝悃悒悌悛愜悻悱惝惘惆惚悴愠憒愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳閂閆闈閎閔閌闥閭閫鬮閬閾閶鬩閿閽閼闃闋闔闐闕闞丬爿戕氵汔汜汊灃沅沐沔沌汨汩汴汶沆潙泐泔沭瀧瀘泱泗沲泠泖濼泫泮沱泓泯涇��洹洧洌浹湞洇洄洙洎洫澮洮洵洚瀏滸潯洳涑浯淶潿浞涓涔浜浠浼浣渚淇淅淞瀆涿淠澠淦淝淙瀋涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄灧溱溘灄漭瀅溥溧溽溻溷潷溴滏溏滂溟潢瀠瀟漤漕滹漯漶瀲潴漪漉漩澉澍澌潸潲潼潺瀨h�濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灝灞宀宄宕宓宥宸甯騫搴寤寮褰寰蹇謇辶迓迕迥迮迤邇迦逕迨逅逄逋邐逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屨羼弳弩弭艴弼鬻屮妁妃妍嫵嫗妣��妗姊嬀妞妤姒妲妯姗妾婭嬈姝孌姣姘姹娌娉媧嫻娑娣娓婀婧婊婕娼婢嬋胬媪媛婷婺媾嫫媲嬡嬪媸嫠嫣嬙嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢駔駟駙騶驛駑駘驍驊駢驪騏騍騅驂騭騖驁騮騸驃驄驏驥驤糹紆紂紇紈纊p�紜紕紓紺紲紱縐紼絀紿絝絎絳綆綃綈綾綺緋緔緄綞綬綹綣綰緇緙緗緹緲繢緦緶緱縋緡縉縝縟縞縭縊縑繽縹縵縲繆繅纈繚繒繮繾繰繯纘幺畿巛甾邕玎璣瑋玢玟珏珂瓏玷玳珀珉珈珥珙頊琊珩珧珞璽琿璉琪瑛琦琥琨琰琮琬��琛琚瑁瑜瑗瑕瑙璦瑭瑾璜瓔璀璁璇璋璞璨璩璐璧瓚璺韙韞韜杌杓杞杈榪櫪枇杪杳枘梘杵棖樅梟枋杷杼柰櫛柘櫳柩枰櫨柙枵柚枳柝栀柃枸柢櫟柁檉栲栳椏橈桎楨桄榿梃栝桕樺桁檜桀欒桊桉栩梵梏桴桷梓桫欞楮棼櫝槧棹x�欏棰椋椁楗棣椐楱椹楠楂楝欖楫榀榘楸椴槌櫬櫚槎櫸楦楣楹榛榧榻榫榭槔榱槁槊檳榕櫧榍槿檣槭樗樘橥槲橄樾檠橐橛樵檎櫓樽樨橘櫞檑檐檩檗檫猷獒殁殂殤殄殞殮殍殫殛殯殪軔軛軲軻轤軹軼軫軤轢軺軾輊輇輅輒輦輞��輟輜輳轆轔軎戔戧戛戟戢戡戥戤戩臧甌瓴瓿甏甑甓攴旮旯旰昊曇杲昃昕昀炅曷昝昴昱昶昵耆晟曄晁晏暉晡晗晷暄暌曖暝暾曛曜曦曩賁貰貺貽贄貲賅贐賑賚賕賫賧賻覘覬覡覿覦覯覲覷牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰��搿擘耄毪毳毽毿毹氅氌氆氍氕氘氙氚氡氬氤氪氲攵敕敫牘牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷朧腖胩臚胛胂胄胙胍胗朐胝脛胱胴胭膾脎胲胼朕脒豚腡脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂臏滕膣膪臌朦臊膻�臁膦歟欷欹歃歆歙颮颯颶颼飆飈殳彀轂觳斐齏斕於旆旄旃旌旎旒旖煬煒炖熗炻烀炷炫炱燁烊焐焓燜焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬燾煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚禰祗祠禎祧祺禪禊禚禧禳忑忐��懟恝恚恧恁恙恣慤愆愍慝憩憝懋懣戇肀聿沓澩淼磯矸碭砉硨砘砑斫砭碸砝砹礪礱砟砼砥砬砣砩硎硭硤磽砦硐硇硌硪磧碓碚碇磣碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龕黹黻黼盱眄瞘盹眇眈眚眢眙眭眦眵眸睞瞼睇睃睚睨�睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨羆罱罹羈罾盍盥蠲釒釓釔釙釗釕釷釧釤鍆釵釹鈈鈦鉅鈑鈐鈁鈧鈄鈥鈀鈺鉦鈷鈳鉕鈽鈸鉞鉬鉭鈿鑠鈰鉉鉈鉍鈮鈹鐸銬銠鉺銪鋮鋏鐃鋣鐺銱銦鎧銖鋌銩鏵銓鉿��鎩銚錚銫銃鐋銨銣鐒錸鋱鏗鋥鋰鋯鋨銼鋝鋶鐦鐧鋃鋟鋦錒錆鍩錛鍀錁錕錮鍃錇錈錟錙鍥鍇鍶鍔鍤鎪鍰鎄鏤鏘鐨鎇鏌鎘鎸鎿鎦鎰鎵鑌鏢鏜鏝鏍鏞鏃鏇鏑鐔鐝鏷鑥鐓鑭鐠鑹鏹鐙鑊鐲鐿鑔鑣鍾矧矬雉秕秭秣秫稆嵇稃稂稞稔�稹稷穡黏馥穰皈皎皓皙皤瓞瓠甬鳩鳶鴇鴆鴣鶇鸕鴝鴟鷥鴯鷙鴰鵂鸞鵓鸝鵠鵒鷳鵜鵡鶓鵪鵯鶉鶘鶚鷀鶥鶩鷂鶼鸚鷓鷚鷯鷦鷲鷸鸌鷺鸛疒疔癤癘疝癧疣疳疴疸痄疱疰痃痂瘂痍痣癆痦痤癇痧瘃痱痼痿瘐瘀癉瘌瘞瘊瘥瘻瘕瘙��瘛瘼瘢瘠癀瘭瘰癭瘵癃癮瘳癍癩癔癜癖癲癯翊竦穸穹窀窆窈窕竇窠窬窨窶窳衤衩衲衽衿袂袢襠袷袼裉褳裎襝襇裱褚裼裨裾裰褡褙褓褸褊襤褫褶襁襦襻疋胥皸皴矜耒耔耖耜耠耮耥耦耬耩耨耱耋耵聃聆聹聒聵聱覃頇頎頏�頡頜潁頦頷顎顓顳顢顙顥顬顰虍虔虬蟣蠆虺虼虻蚨蚍蚋蜆蚝蚧蚣蚪蚓蚩蚶蛄蚵蠣蚰蚺蚱蚯蛉蟶蚴蛩蛺蟯蛭螄蛐蜓蛞蠐蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蟈蜴蜱蜩蜷蜿螂蜢蝽蠑蝻蝠蝰蝌蝮螋蝓蝣螻蝤蝙蝥螓螯蟎蟒��蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罌罄罅舐竺竽笈篤笄筧笊笫笏筇笸笪笙笮笱笠笥笤笳籩笞筘篳筅筵筌箏筠筮筻筢筲筱箐簀篋箸箬箝籜箅簞箜箢簫箴簣篁篌篝篚篥篦篪簌篾篼簏籪簋$�簟簪簦簸籟籀臾舁舂舄臬衄舡舢艤舭舯舨舫舸艫舳舴舾艄艉艋艏艚艟艨衾裊袈裘裟襞羝羥羧羯羰羲籼敉粑糲糶粞粢粲粼粽糝糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸縶綦綮繇纛麩麴赳趄趔趑趲赧赭豇豉酊酐酎酏酤��酢酡酰酩酯釅釃酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹺躉跫踅蹙蹩趵趿趼趺蹌跖跗跚躒跎跏跛跆跬蹺蹕跣躚躋跤踉跽踔踝踟躓踮踣躑踺蹀踹踵踽踱蹉蹁蹂躡蹣蹊蹰蹶蹼蹯蹴躅躪躔躐躦躞豸貂貊貅貘貔斛觖觴觚觜,�觥觫觶訾謦靚雩靂雯霆霽霈霏霎霪靄霰霾齔齟齙齠齜齦齬齪齷黽黿鼉隹隼隽雎雒瞿讎銎鑾鋈鏨鍪鏊鎏鐾鑫魷魴鮁鮃鮎鱸穌鮒鱟鮐鮭鮚鮪鮞鱭鮫鮝鱘鯁鱺鰱鰹鰣鰷鯀鯊鯇鯽鯖鯪鯫鯡鯤鯧鯝鯢鯰鯛鯴鯔鱝鰈鰐鰍鰒鰉鯿鰠��鰲鰭鰨鰥鰩鰳鰾鱈鰻鰵鱅鱖鱔鱒鱧靼鞅韃鞽鞔韉鞫鞣鞲鞴骱骰骷鶻骶骺骼髁髀髏髂髖髕髑魅魃魘魎魈魍魑饗饜餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬢鬟鬣么麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黷黧黥黲黯鼢鼬鼯鼹鼷鼽鼾齄4�襬闆錶彆蔔纔厂冲丑齣噹党淀鼕斗噁髮范丰複干穀颳广閤鬍划迴彙穫飢几傢价荐薑儘据捲剋夸睏蜡腊纍里曆帘瞭鹵囉黴濛懞矇瀰麵衊闢苹凭扑仆朴韆籤縴鞦麯确舍术松囌台颱檯罎涂糰万係繫鹹嚮鬚葯叶郁禦籲愿云髒��症隻只緻製种硃筑准	�<�|�0�����	(8${�|,~�4���<���D�ȈL�ЋT�؎\��d��l��t���|������������� ���(���0���8���0���8���@�ĽH��P���X���`���h���p���x�����������������$���,���4�h�!p�	������������"��	����������������������������d��	���������@�	�����`�*0	����������������l��	�������	�������������������������������������������������������������������������������������	��������������2t�	��������������������������������������������������������������������������������������������������t����������������������������������	���|�x����*��	����������������������	��	����\	$�	�������������������������	<�	���������	|�	��������������������������������������"
��	����������������d
��	�����
(�	���
@�	��������������������������������������������*T���������������������������������������������������������	l�����������������������������������������������������������������������������������������������������������������������������������<�������������������������	�H�	��������2��	����������t��	���������	������x�4�t����� �8�L���4�@�����������:
����������	��������������������������������|
L�	�������������������������������������������������������������������������������������������������������������������������������������������������������������������������	���������������������������������������������������������������
����������������������������������������������������������������������������������������������������������������	����	��������������������������������������������������������������������������B��	���������������������(�������|� �x�X��`�һ��	�����������آ����ؤ��ר��ا�����ҵ����˿ة������ɥح��Ѿ����������ؼ����Ϊ�����د��	����رô��֮��է������ƹ����������ؿ����Ҳϰ�����������ǬJH�	���������ء�������������ب��Щؽ���������������Ķ����ͤ����������������ʲ��������������	�����������������������������Ǫ���������������������������������l�	������������������������ɡΰ����������α�����٣����������٤ �	����λ��ס��������٢����������١��Ӷ���������������٦٥٬ٮ٫ʹR��	٩ֶ��٨����٪٧ٰ������������������٭ٯ���������H�	����ٴ��������ٸ����ٵٷ����ٹ��ٶٱٲ��ٳ��������ٽٺ�������x�@��d����@���8�@�	����ٿ����������������������ٻ��پ��ծֵ��Zp�	������ټ��ƫ���ͣ����ż͵����������	����������������������ɵ�(�	��������ɮ����������Ƨ l�	������������b��أ��	Ԫ������������������������������ȫ���������������������������������������	����Ƚ����ð��ڢ��д��ũ��ڣԩڤ��������������ұ�������l���	��׼ڡ���������������������ƾ����������͹������������(����������	��������ۻ�������������������ɾ������������������ˢȯɲ��������j|���������	���ǰ������������������ʣ������������	�����������Ȱ��������۽�����Ŭ��۾ۿ������������	������ѫ��������ļ������������0���	������������ذ��������������ϻ������ƥ�ҽ����r@�	ʮǧئ���������Э����׿������������߲ռ��¬��±�������شîӡΣ��ȴ����ж�������	���������ѹ������������ԭ����������������ȥ���\	�����������˫������ȡ��������������������߶ߵֻ����������̨߳ʷ����Ҷ��˾̾߷��ߴ8�	�����ߺ������ͬ���������߸���߹���������������������������˱��֨���������������z|ѽ	�������߻��߼߽߾Ż߿��Ա��Ǻ��������������ζ��������������8��	������զ����ӽ����������������������������������ҧ����������������������Ʒ��	������������������������������������������Ӵ��Ŷ����������������������@`	����������������������������������Ψ����������	����������������ơɶ���ž�������Х���������ι���	��������������ϲ��������������	�����������ɤ�����������������������������������Ht����	��������������������������������˻�������	����ҭ���������������ج���������������d	������������������	��������������ض����������԰����Χ��������ͼ��P�	����ԲȦ����ʥ���������������������������`ַ	��������̮�����������̳��������׹����̹����ƺ�����������������	����¢��������������������ԫ�������������������X	������������������������ܤ�������ܣX�ܥ	�����ܡܢǵ��ܧܦܩ�����������0		ܨ��������ܪ��ܫ����	ܯܬ	���ܭ��Ĺǽܮ���ī�����		���������ʿ��׳�����Ҽ`
	�����������Ϧ������ҹ��������̫��ز����ʧͷ�����������D
	��ۼ���������������������������������Ůū���������
	�����ױ����������������������������������&8	ķ�ʼ�������ί��Ҧ��������������h�	���¦��������������������������Ȣ���	������������Ӥ����������	ý�������ϱ������.�	��ɩ����������������������������p
	������������T
��	����������������������Т����������ѧ����ث������������|
��	��լ����������������������������ʵ����������������������������������6�
	���������������Ԣ��į�������կ��������Ѱ����x�	������ξ��С����������������������Ң������ʬ���������β�����ƨ��	���������ʺ���мչ����������������ɽ�������	�������������������������������������>	������Ͽ���������������	������������������������ո����������	�����Ƕ����������������8	��������Fx	��Ρ������Ѳ����������������������������������	������˧��ʦϣ��������������������֡ϯ��������ñ�	��������Ļ�������ƽ���������������� ���	ׯ����������®����Ӧ�����������������������ͥ�������ӹ����N �	����������������������͢����إ� p�������Ū	����߮ʽ߱������������������������������ǿ�� ��	������¼������������ͮ������������Ӱ����������!<����	������������������ͽ�������������ѭ��΢��������V!�	������������������߯��־�æ���������������������������������!(� �d����d��t��|��8���T�t0�Xx�l�\��X�P�(	x	�	�	<
�
0�|��L
t
�
����0p��|�h�4� �����̬����������	������ŭ�����������˼���������Թ�������������!�	������������ˡ��������������������Ϣǡ������������"T	���Ϥ��������������������������������^"�	�������������ϧ�Ω�������������������������������"\���	���������������������Ը�"�	��������Ľ������ο���$#0	�������������f#t	��и�������ų��ܲ�#�	�����������Ϸ�����������ս�����������¾�������������#����	�����������������������������Ǥִ����ɨ��Ť�����������������,$p��	����������ץͶ������������������������̧����Ĩ��Ѻ����n$	��������Ĵ��������������������������׾��������£��ӵ��š�������������ȭ˩����ƴקʰ���$�	����ָ���������ֿ����̢Ю�������������Ų�������ͦ���$D	����ͱ��׽�����������������������������������������4%���	�������������������Ҵ����̽�������������������°�����������v%8	����������������Ҿ����������������Ԯ���������%�����§	����������ɦ���������������Я����%0	��������ҡ��̯��ˤժ���Ħ��ġߡ<&�	�����Ʋ���˺�ߤײ����������׫��ߢߣߥ��~&�ߦ	��������ߧ��ߨ���ߪߩ���&T��	߫���߬��֧߭������������'�	��Ч���������������������ɢ�����������D'�	��ի������������б����������ն���˹�����ʩ�'L 	��������������������������ּ��Ѯ�������ʱ����'� �	���������������������ӳ���������������������
(8!	����������ɹ������������������������������������L(�!	����Ͼ����ů��������ĺ�������($"	������������Ի�ҷ�����������(l"��	������������˷����������ľδĩ��������������)�"ɱ	��Ȩ���ɼ���������������������������������������������T),#	���������������ö��֦�����������ǹ�������������������)�#	��������ij����Ⱦ�����������������������������������)<$��	դ��ջ�������������˨������У�������������������*�$����������Φ��	���������ͩɣ������������������������׮��Ͱ�\*0%	����÷�������������������е�����*�%��	������������������ɭ����������*&	����ֲ׵��������Ҭ������"+d&	�Ш����������������¥d+�&�	�������������������ե�����ȶ��+'	������������������������+h'	�������ģ������ӣ������*,�'	���������������������l,�'̴	ϭ�����������������,((	Ƿ������ŷ��������,`(	��ЪǸ���ֹ����������������2-�(	������������ѳ����������ֳ���������Ź������t-�(	�������ĸÿ��ع���������ëձ���̺�����-T)	������ص��å�����������������������������ˮ������-�)֭͡��	��������ϫ������Ѵ�������������������̭�����������:.L*	�����������������������ɳ����û��Ž����������ĭ������������������մ��|.�*	й�Ȫ����������������Ţ��������ע�����̩��Ӿ��������к������.p+	���������ϴ������������������������Ǣ��/,	���dz����������������Ũ������������������ԡ�����B/�,	Ϳ����ӿ���������������������������ɬ��������Һ�������/-��	���������������������������������������������/�-	��Ԩ������������������������������μ����������0.	����������������տ��������ʪJ0�.	����������Դ������������Ϫ�������������������0�.	��������������������������������������̲�����00/	Ư���©������Į����������������1�/	������Ϋ��DZº����̶��������R1�/	�������������������1D0��	�����������1�0L�T�(l��h��<�0�(��L��D � 0!�!"d"�"$#�#4$�$(%�%&\&�&�&`'�'�' (X(x��(�(L)�)D*�*h+,|,-�-.x.�.(/�/�/<0|0�0��0	�������2�1	��������������������������Z2�1�	�¯������Ȳ�����������̿����������ը���������282��˸���	����������������������������ϩ�������2�2	��������������������������Ȼ 33	����������ɷú����������������ɿb3\3	Ϩ��Ѭ��������������������3�3	ȼ�����������������3�3	������צ��������ү����سˬ��(4$4	Ƭ��������ţ��IJĵ������������ǣ�����j4p4Ϭ��	���������Ȯ��������״�������4�4	��������������������������������ʨ��������������445	�����������������������è������������Գ05�5	�������̡��r586	��������������������õ�����������������5l6��	������ɺ������������������������5�6	�������������������������������86 7	����������ɪ������z6�7��	�������������6�7	�����ư��ȿ������ƿ����68	��������߰�������˦�������������������������@7\8�	�������η������������������������7�8	�����������������������ű����������������������ƣ�����������������789	��������֢Ӹ��Ȭ�����������ʹƦ����������������̵����������8�9���	�����������������������̱������ȳ���H8T:�	��������Ѣ�����������8�:	�������������������Ƥ���������8(;	������ӯ�����յ��������������ʢ����Ŀ����äֱ��������9|;	ʡ������ü���������������գѣ������������P9�;���	�������˯�������������غ��9d<�	������Ϲ����ޫƳ�����˲�ͫ�հ����9�<	����ì��ʸ��֪������������ʯ�������:,=���ɰ	��������ש��������������������������������������X:�=��	�����������˶���������Ӳ��ȷ�����:>	����µ���������������������������������̼�������:p>	������������������ĥ����������;�>	������������ʾ������`;,?����	������������������ף�����������Ʊ���������;d?���	»���������خ�������;�?��˽	ͺ��������������������������������������&<@ϡ	�������˰����������������������h<�@	������Ѩ�����������<�@�ͻ	��խ����Ҥ��������������������������<(A	���վ��������ͯ�������������.=�A	��������������Ц����������������������������������������p=�A	���������������Ͳ��������ɸ��������������������ǩ�=dB��	�������������������������������������������=�B	��׭ƪ����¨������������������6>@C	��������������x>�C��	�������������>�C	����������ճ��������������������������������>D	������������������������������Ŵ��ϵ>?lD	������������?�D	����?�D	����@E	��F@E	�����@0E	��������������Լ��������γ����ɴ����������ֽ����Ŧ����@HE���������ϸ֯�����������������������	�����Ѥ�������ͳ�������������������������ά���������������A�E׺�������������	���������������������Ե����������������������������ӧ����������������������������ȱNA�F	���������������������������������A�G	���Ǽ�������������Ⱥ������������������A$H	���������������������������������������B�H�102�23T3�3�34h4�4,5�506d6�67�7�78T8�809�9L:�: ;t;�;\<�<$=�=>h>�>$?\?�?@�@�@ A�A�A\B�B8C�C�C�CdD�D�D�DEx�(E@E�E�F�GH|H�H��Hҫ��	�����������ˣ����������������������������������������Ү����������VB�I	��������ְ����Ƹ��������B�J�	��������������Ф��������������֫���������������������������������B�J��в��θ��	������̥����������ʤ������ط�������������������������������������CxK	֬�����������������ŧ���������������������Ƣ^C L	������Ҹ��������ǻ�������������������������������������C�L��	�����������Ĥϥ�����������CM�����ӷ	��������������������$D`MҨ��	����������������˴��������������������������������fD�M	�ͧ��������������ɫ���ܳ��ܴ��ܵ�DPN	��ܹ��ܷ����ܻܺܶâܼ��ܽ��֥��������«ܸ����ܾ������о���������ܿ��ѿ��D�N	����έ��������������Է����̦��������������������������ɻ��Ӣ����ƻ��,ETO	��ï����é�����������������������ݢ������ã���������������������nE�O�	�����������������������������������ӫݡݣݥ��ݤݦݧҩ��ݩݶݱݴ�E�P	ݰ����ɯ��ݮݷ��ݯݸݬݹݳݭĪݨ����ݪݫݲ��ݵӨݺݻç�E Q��ݼ	��������������ݿ����������ݾ����������������4F�Q	ݽ����������Ƽή���������өӪ�������������vFR	��������������������������������������FtR	��������������������������������������F�R	�������������������������������ޤޣ<G,S	������ε�������Ǿ���ޢ����~G�S	ެަ����ޡޥީިާޭ��޳ުޮ���G�S	��޶ޱ޲Ѧ޵ޯްн޴��޹޸޷H$T	޻������޺ź޼������޽DHlT	޿Ģ�޾�պ���H�T	���²Ű������������ʭ�������Ϻ��H�Tʴ����	��������������������������������
I4U�	�������������������������������������������������Ӽ��LI�U��	����������������������֩�������������������������������I,V	Ӭ������Ы�������������������������I�V	����������������������JW�	�����������з�TJdW	���������������J�WѪ	��������������������������������˥����������J�W	Ԭ�����������̻����������Ϯ������KXX	����װ���������ԣ��ȹ����������������������������\K�X	������������������������������K Y	��������������KlY	Ҫ���"L�Y	���������������������������������������������������dL�Y��	�����L,Z	�ղ�LHZ	�����*M`Z	���lM|Z	��Ʃ�M�Z	ڥ����������ڦڧ����ڨ�ѵ��Ѷ������کڪ��ګ���������������M�Z��֤ڬڭ���ʶ	թ����ڮ����ڰگ��ڱڲڳ��ڴʫڵڶ����ڷ����ڸڹ��ѯ��ں������ڻڼ������ڽ��ھ����ڿ˵��������ŵ����������2N0[��˭��������׻��̸	��ı��������г����ν��������������������������лҥ����ǫ����á�����̷������������Ǵ������tN4\	������������������ԥ���������N]	��������ò�����Nh]	������������������������̰ƶ����������������������ó��������������:O�]����¸����������������������������	��������׸��׬����������Ӯ����������������������|O,^	������Խ�������Ȥ���ſ��������ֺ���O�^	Ծ����������������������������������������·���������������P@_	����ӻ��̤��������������������������������BP�_������	���������̣�����������������������������P,`	��������������������������P�`	�Q�`	��������ת���������������������������������JQ�`	����������������������������ԯϽշ�������������������������������Qda	Ǩ���Ѹ���ӭ����������������ԶΥ��������������������������������׷�Qb�J�JpKL�LMXM�MHN�NLO�O|PQ�QRlR�R$S�S�STdT�T�T,U�U$V�VW\W�W�WPX�XYdY�Y�Y$Z@ZXZtZx��Z�Z([,\]`]�]$^�^8_�_$`�`�`�`\ab�bR�b��������������	ѡѷ����͸������;����ͨ����������������������������������RR�c	���������������������������Dzң���������������RLd�	�������������������������а�����ۢ�������ۡ�����ۥ�R�d	��ۧۤۨ����ۣۦ֣۩ۭۮ۬����۪۫����ۯ��۰������۱SDe	��۲��۴۳۵۷۶۸ZS�e	۹ۺ�������������������̪���������������ͪ������������ø�������������S�e	��������������������ȩ�������������������S�f	����������Ұ������ T�f	��bT(g	�����T<g	���TTg	��(Uhg	��jU|g	���U�g	�����U�g	��(U�g	��0V�g	������������������ǥ��������������������������������������Կ����������������ť����Ǯ��ǯ������������������������rV�g���������Ǧí	�������������������������������ͭ����ա�ϳ��������������ҿ�����������������V�h����������������п�����������������ê�	���������׶����������������������������������������������V�i��þ��	��������������������������������������������������������������������������������������8W�j	�����������������������������բ�����������zW�k��������������	��������������������������������������������������������������������W�k��	������½¤����ªİ��������������Ժ�����������������������W�l	��¡���������������϶������������������@X0mȸ��	������������Ӻ��������������ѩ�������������X�m����	�������ù����������˪ϼ������¶������X�m	������������������������ѥ����Y`n	��Ь������������������������HY�n	Τ����������������Y�n	ҳ�������˳�����������Y,o������Ԥ­���������	�����Ƶ���ӱ��������������������ȧZho	������Ʈ����ʳ���PZp	�������Z@p	�����������������������������������������Z\p����	�������������������������������ظ�����ܰ[�p	��Ԧ��ѱ�����¿��ʻ��������פ��������X[8q������	����������������������������ƭ��ɧ������������������������������������[�q������	�����������������������������[Dr	��������������ت���\�r	������������������κ��ħ`\�r	�����\s	³�����������������������������������������������������������������������������������������\(s	�����������������������������������������������&]�s	�������Ÿѻ�����Ѽ����ԧ������������h]\t	��������������ȵ��������������������������������������������ӥ������¹�]�t	����������´�����������������]xu	�����������ǭĬ������������������������������.^�u	������ؾ��ػܱ������������������p^,v	��������^|v��	����������������ȣ�������������^�vDd�d<e�e�e�f�f gx�4gLg`gtg�g�g�g�g�g�h�i�j�k�k�l(m�m�mXn�n�n$o`o�o8pTp�p0q�q<r�r�rs s�sTt�tpu�u$vtv�v�v6_�vx_��	��������������������������������������������������������������������������������������������������������������������������������w��������������������������������������������������������������	�_�x	���������_hyx��x`y�y`�y��``�y*�y�`�y��8�X�p�x�����l���t�������D���h���1�I�c�w�w�y�y�y�y�`�yһ��	�����������آ��ؤ����ا�����ة��حѾ��������ؼ�����د�a<z	����ر��֮է����ƹ��������ؿ����Ҳ���Ǭ�a�z	����������ء�����������بЩ��ؽ�����������������ͤ��������b${ʲ��������	���������������������������Ǫ����������������������������ab�{	����������������������٣����������٤�bH|	�����λ��ס������٢����������١���������������٦٥٬ٮ٫ʹ�b�|	٩ֶ����٨����٪٧ٰ�����������������'c4}	������ٴ��������ٸ����ٵٷ����ٹ���ٶ������ٽٺ����ic�}x��z{�{@|�|,}�}~~�	����������ٿ������������������������ٻ����پ��ֵ�c8~	������ΰټ��ƫ���ͣ��������ż͵�c�~��	�������ɡ��������Ӷ������ծ����ɵ��/d	����������������α����ɮ��������������Ƨqd\��	ٯ����������������ٱ٭����������ٳ����ٲ�d�أ��	Ԫ��������������������������������ȫ�������������������������d ���	����Ƚ����ð��ڢ����ڣԩڤ������������ұ����7e��	����ڡ���������������������������������͹��������ye$���������	�������������������ɾ����������������ˢȯɲ�����e��	�������������ǰ��������������ʣ�����������������e�	��������������������������������Ŭ��۾ۿ�?f��	��������������������ѫʤ��ļ������۽��Ȱ���������f���	������������ذ��������������ϻ��������ƥ�����f`��ʮ	ǧئ�����������׿Э��������߲ռ����������شîӡΣ��ȴ����ж����g̃	������������ԭ����������������������ȥGgd�	���������������ȡ������������������߶ߵ��������������߳ʷ������˾߷���g��	�����ߺ������ͬ���������߸�߹����������������������˱֨����������������g\�ѽ	�������߻��߾������������ζ�������������
h���	������զ����ӽ����������������������������ҧ��������������������Ohl���Ʒ��	����������������������Ա��Ŷ�����������������������h�	����������������������������Ψ����������h��	����������������������ơɶ��ž�������i����ι���	����������������ϲ����ɥ�����Ӵ����Wi\�	����Ǻ�����������ɤ���������������������������������������i�����	̾�����������Ż������������������������Хߴ������˻߼������it�	������ҭ���������������������ج������������������������j���	�����������������߿���������������_j�����	��߽�������������������ض�������������������j�	������Ȧ����Χ԰Բͼ���������������������������jX�ַ	��������̮���������̹����ƺ���������������%k̋	������������������ԫ�������gk8�	�����������������������ܤ��ִ�����ܣ�k��ܥ	���������ܡܢ��ܧ�ܦܩ������Ң���������k�	ܨ�������������Ϳ�����ܪ��ܫ��ǵ��-lH�ܯܬ	���ܭ����Ĺܮ׹���ī������ǽ����ol��	����̳��ѹ����������¢�������ʿ��׳Ҽ�����l�	�����Ϧ������ҹ����������̫��ز����ʧ���������lh�	������������ۼ�������������������������Ůū�������5m؎	����������������ױ����������������wmP�	����������������������Ȣ��m���¦	���������������������m�	ý��������ϱ��������=nX�	��ɩ�������������������������n���	����������������Ӥ��������n���	���������������������Т��������������ث��������ѧ�����o0��	��լ��������������������������������������������������Eo��	���������������Ԣį���������ʵ�կ��д�������������oD�	������רξ��Ѱ����С����������������������ʬ�������β���o����ƨ	���������ʺ���мչ������������������ɽ���p@�	�����������������������Mp��	�����������������Ͽ�p�	������������������������������������pP�	�����Ƕ�������������q��	����ո����������������Uq�	��Ρ����������Ѳ�������������������������������q,�	������ϣ�������������˧ʦϯ�������ñ�q��֡	���������Ļ����������������ƽ��������������������r����	���������������������������ͥ�������ӹ����]r��	����������������������������®�����͢����إ�r�	����Ū����߮ʽ߱������������������������ǿ��rX��	������������������������ͮ������������Ӱ��������#sė����	������������������ͽ�����������������ѭ��΢����������es8�	��������������߯��־�æ�����������������������������s���~�~T�����������X�ă\���T���d���|��T�؈l����܊P�ċ0�x�܌@�����`�ЎH����P���ܐ(���<���8����H����$����|��P���0���4��<�	������ŭ���������˼���������Թ���������sH�	����������ˡ��������������������Ϣǡ�+t��	���Ϥ��������������������������������mt�	�����������ϧ�Ω����������������������t�����	�����������������������������t�	���̬���Ľ��������������������ο������3uX�	���������ƾ����������������������uuĜ	����иӦ���������ų����������������ܲ�u(���	���������������������������������¾սϷ�������������u�����	�����������������������������ǤŤ���������������;v ���	����������ץͶ�����������̧����Ĩ��Ѻ����}v��	������Ĵ��������������������������׾���������������ȭ˩����ƴקʰ���v�	����ָ�����������Ų�������ͦ��Юw��	����ͱ��׽�������������������������������������Cw���	��ɨ�������������������Ҵ�����̽����������������������w`���	����������������Ҿ����������������������Ԯ�����w�	����������ɦ������������������Я���	xT�	��ҡ����ˤժ���§��Ħ�ֿ�����ġߡ��Kx��	����Ʋ�������˺�ߤײ������������������׫����̢�������x�ߦӵ��	°������������ߧ����ߨ�����ߪߩ������š�����ߢ����ߣ���x����	����߫£������ߥ������̯߬������֧߭������������y �	��Ч�������������������ɢ�������������Sy��	������������������б�����������ն˹�������ʩ�y�	����������������������ּ��Ѯ���������yt��	��������������������ӳ�����������������z�	��ʱ���������������������������������������[zP�	��Ͼ��������ů����������ĺ�������z��	����������������������ɹԻ�ҷ�������������z���	��������������˷������������ľδĩ�������������!{t�	���ɼ�����������������������������������������c{�	�����������ö��֦���������������{d�	��������ij����Ⱦ������������������������������{����	դ˨����У����������������)|(�����������Φ��	���������ͩɣ��������Ͱ�k|p�	����÷����������������������е�����|Ԩ	������������������������ջɭ������������|,�	����ֲ׵�����Ҭ������1}��	�����Ш������������ҵ��������s}ة�	���������������ե��������ȶ����}8�	�������ǹ����������������}��	׮������¥���������ģ����������������9~�	�������������������������{~@�̴	ϭ����������������������������������~��	���������������������ӣ�~�	��Ȩ�����Ƿ������������A(�	��ЪǸ��ŷ����ֹ���������������������t�	����������ѳ����ֳ�����������������������ɱ�����ج	����Ź��ĸÿ��ع�����ë���̺�����H�	��ձ����ص��å�����������������������������ˮ�����I���֭͡��	����ϫ������Ѵ������������������̭�������������8�	�����������������������ɳ��ûĭ������������������մ��̀��	й�Ȫ������������������������ע�����̩��Ӿ���0�	������ϴ����������������������Ǣ��Q���	�������������������ԡ���������	�������ӿ���������������Һ������Ձh���	���������������������������������������Ԩ�����dz����İ	�������������������������μ������������Y�L�	����������������տ������������	������Դ׼��������������Ϫ������������������݂��	���������������������������������±�����`�	��Ư���©����ŽĮ����������������������������a�Ȳ	���������DZº������̶����������������<�ɬ	��������������������������������������Ũ	�ʪŢ�������������Ϋ�������'��������P��� �����������X�ܠL�����������l�ܤH����l��\��� �h�̨$���Щ0���ت8�|�ث �l�Ь@���0���(����`���D����X���4�����\��d�	����к�����������������������������i�p�	���������̲����������������������Ե	�������Ȳ���������̿����������ը���(���	��������������ϩ�������/���	����������������������Ȼq�Ķ	�������������ɷ��ú���������������������ɿ���	Ϩ��Ѭӫ��������������������������l�	��ȼ��������������Ӫ��������������������7���	��˸¯������צ���Ϊ��������үسˬ����y� �	Ƭ��������ţ��IJĵ��������������ǣ������Ϭ��	�����������Ȯ�����������״��������	������������������������������?�8�	�������������������è�������������Գ����	���ʨ���������������������̡����Ç��	����������������õ�������������	������ɺ����������������������G�к	������������������������������ �	������������ɪ�Ө�������ˈ����	�������������������
�Ի	����������ư��ȿ�����ƿ���O�(�	���������߰���������˦�����������������������x��	�����η���������Ķ������������������Ӊ�	�����������������������������������ƣ�����������������\�	����������Ȭ����������ʹƦ����������̵����������W�ؽ�������	�����������������������ű��������ȳ����H��	���������������������֢���Ѣ���Ӹ̱�����������ۊԾ	�������������������Ƥ���������\�	������ӯ�����������ʢյ����������¬Ŀ����äֱ��������_���	ʡ������ü�������������գѣ��������������,���	���������˯�������������غ�����	������Ϲ������ޫƳ����˲���ͫ�հ����%��	�������ì��ʸ��֪������������ʯ��g�d�	ɰ����������������������������������������	���������������������Ӳ���������(�	����µ����������������������˶������̼�����ȷ����-�|�	������������������ש����ĥ�������������o���	��������������������������ʾ������T�����	������������������ף���������Ʊ���������	»��������������������خ����5����˽	ͺ��������������������������������w�`�ϡ	�������˰����������������������������	������ӱ����������Ѩ����������$��ͻ	խ��Ҥ��������������������������=�x�	�����������վ������ͯ�������������������	������������Ц��������������������������������@�	������������������Ͳ���������������������������	����������������������������������E������	��׭ƪ����������������ɸ���������d���	����¨���������������ǩ����ɐ���	����������������������������� �	����������ճ�����������������������M�p�	����������������������������������Ŵ�����������ϵ��������	�Լ�������������Ŧ����ɴֽ��������������ϸ���������ё@��	��������������Ѥ�����ͳ˿��������	����������������������ά��������׺����������U�,�	���������������������Ե�������γ��������������	������������������������������������������������ْ$�	����������֯���������������������������������	����������ӧ����������]��	���ȱ��@�	�������������������������������\�	������Ǽ�����������Ⱥ���������������������#���	���������ϰ������������������������������e�(�̵ �x�����d����x��0����|�Ⱥ�x�̻ �p��T�н@�̾T���$����\��� �t���L�����X����p���8����\����h���8���$��������8�x�T��� ������ҫ��	�����������ˣ����������������������������������������Ү������������	�����ʥƸ���������������ְ������0��	��������������Ф������������֫�������������������������+���	��θ������̥����������������ط���������������������������m��	֬в�����������������������������Ƣ����	������Ҹ���������ǻ�����������������������������������������������	������������Ĥϥ������������������ŧ3��������ӷ	�����������������������������̨�����u���Ҩ��	����������������������˴����������������������������h�	�ͧ��������������������ɫ���ܴܳ��ܵ���	ܹ��ܷ����ܻܺܶâ��֥ܽ��������ܸ����ܾ������о�����������ۻѿ�;�l�	����Է����̦����������������������������ɻ��Ӣ��������}��	��ï����é�������������ݢ����ã�����������������������|��	�������������������ݩݶݱݴ���	ݰ����ׯɯ��ݮ��ݷ��ݯݸݬ����ݹݳݭĪݨçC�H���ݼ	��������������ݿ����������ݾ����������������������	ݽ��������������Ƽή�����������ݫ������ǘ �	��Ҷ��ݦ�������������ݧέ������������������������	���	������ݻݪ�������������������������K���ݥ��	�������������������������ޤ��ޣ��L�	��������ε����������������ޢ��ϙ��	ݡެ��ަ������ݤܿݵޡ��ޥީ��ިާ�������޳ުޮ�����	��޶ޱ���ܼ޲��ǾѦ޵ݲޯ��ް�н��޹޸޷�S�l�	޻����ݣ����ź޼����ҩ��޴���������޽����	ޭ޿«��ƻĢ�޺���޾���պ������ך0�	���Ű�����²��������ʭ��������	�����������������������������[����	��������������������������������Ӽ������8���	���������������������֩������������������������������ߛ��	��Ы�ʴ��������Ϻ��������������!��	����������������ө����������c�t��	�������������������������з�������	�Ӭ����������������������������D�Ѫ	��������������������������������˥����ֻ�����)���	Ԭ��������̻��������������k��	��������������ԣ��ȹ��װ������������������������`�	��������������������������������������	��������������������������Ϯ���1�(�	Ҫ���������������������������������s�x���	���������������������������ڥ����	����Ѷڧ��ڦѵڨ�����������ګ��������ڭ�������	ڬڮ�ڪթڱگ�ڰ����ڼѯ����ʫ��ڸ��ڹڵ������ڷղڶڴ9���	ڳ��ڲ����ڿ�������ڽ����������ھ����˵˭����������{��	��׻̸����ں���������������ڻ����г��������������������ŵ����ı��ν	�����������������ǫ����лҥ���������ک��á���	֤������ʶ��̷������Ʃ����Ǵ���A�x���	��������������������	��Š��	����������������������ԥ����������	��������ò��������������ƶ����̰��������������������������óI�d�����¸������	��������������������������������������������׬�����������	��׸�������Ӯ��������͡��	�������������������	������Խ����������Ȥ����ſ������ֺ��Q���	������������������������������������·�������P�	����̤����������������������ӻ��������բ��������	���������̣��������������������������������	������������Ծ������������������������������Y����	����������������������������������	���������������������������������շ��ݣH�	�Ͻԯ�ת���������������	���������������������ũ�a���	���Ѹӭ����������������������������������׷��8�(������������`���d���t���@����x���D�����d���(�|���0����l���<����X��� �p�������x���p�����x��\���|�����H����|���@�����0����������	������������͸����;��������ͨ�������������������������������������	�������������������������Υ����ѷ��Զ��Dzң��������������Ǩѡ��������'�H���������	��������������������������а��ۢ�������ۡۥi���	��ۧۤۨ����ۭۮ۬��ۣ��۫��ۯ��۰������۱��l�	��۲۩���������۴۳۵��֣۷��۶���ۦ۸����	۹ۺ۪�����������������̪���������������ͪ����������ø������/�4�	����������������������ȩ��������ҽ��������������q�������	��������������Ұ������������������������������������ǥ��8�����	����������������ť��������������������������������������	������������ǯíǦ�����������������7�8��	�ͭ��ϳ���������ҿ���������������y���	��п�����������������������������������	������׶������������Ǯ��ê����¼�������t����	�����������ա���������������������?���	þ�����������������������������������@�	����������������������������������������è��	��������������������������������������	�������������������Կ�������������G�h�	��Š����	���������������������բ�������������������������������������	������������������������������˩\�	������������������������
�����	����ªİ����������������Ժ���������������������½��O���	��¡��������������������϶���������������¤������������d�ȸ��	������������Ӻ��������˫������������ѩ������������Ӫ����	�������ù����������˪ϼ������¶��������\�	������������������������������ѥ����W���	��Ь���������������������������	������Τ�����������������۫`�	ҳ������˳���������Ԥ���������������ͷ�����Ƶ�����	����������Ը���������������­�ȧ_�$�	��������������	Ʈ����ʳ����������������������	�������������������������������������%��	�����������������������������g�h�	��ظ�����ܰ��Ԧ������ѱ����	��פ������������ʻ����������������	������������ƭ���������ɧ����-�D�����������	���������������¿����o���	���������������������������	������������������������������������	������������������������������ت���5�|�	����������������κ��ħ����³����w��	����������������������������$�����	��������������������������������������h�	���������������������������������������=��	�����������������������������(�	�����������p�	��ѻ��ԧ�����Ѽ���������	������������������ȵE��	�������������ݺ�������� ���	������Ÿ��������������ӥ��ɱ\�	������������	����������¹M��	����������´������������������ô������	�����������ǭĬ��������������������������������������ѲL�	����ؾ����ػܱ��������������������	����ի�����������������������ȣ��U��	��������������l�@���d���,���0���0�����l���8�����`���x���T�����\���T����X����|����`����<�����t���`��� �h�����T�����D����d���ٳ����8�X�p�x�����l���t�������D���0~@�h��������w�y�y�y�y�`����	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTTTTTTTTTTT��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWWWWWWW��	

 !"#$%&'()*+,-./01��	

 !"""""""""""""""#$%&'()*+,-./0123456789:;<=>?@ABC"""""""""""""��	

 !"#$%&'()*+,-./0123456789:;<=>?@��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM����	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZZZZZ�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS��	




















































































�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU����	

��������	����	

 !"#$%&'(��	
��	

 !"#$%&'()*+,-./012��	

����	
����	

����	

��	������	

��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?@��	




















































����������	

��	

��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./01234567888898888��	

 !"#$%&��	
����	

 !"#$%&'()*+,-��	

��	

 !"#$%��	
	
											 !			"	#$	%&'			(	)	*��	

 !��	

 !"#��	

��	

��	��	

��	

��	

��	
����	

 !"#$��	

 !��	

��	

 !"#$%��	

��	

��	

��	

��	

 !"#$%&'(��	

��	

 !"#$%&'()*��	

 !"#$%&'()*+,��	

 ��	

 !"#$��	

 !"#$%&'(��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

 !��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

����	

��	

 !"#$%&'()��	

��	

��	

��	

��	

��	

��	

����	

��	

��	

��	

 ��	

��	

��	

��	

��	

 ��	

 !"��	

 !��	

��	

��	

��	

��	
��	
��	

 ��	

 !"��	

��	

 !"#$%&'()*+,��	

��	

��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !��	

��	

��	

��	

 ��	

��	

��	

��	

��	

��	

��	

��	
��	
��	
��	

��	

��	

��	

 !��	

��	

 !"#$%��	

 !"#$��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
����	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !��	

��	

��	

��	
��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	
��	��	

��	

������������	

 ��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./01234567��	

��	

��	

��	

 !"#$��	

��	

 !"#$%��	

 !"#$%&'��	

��	

��	

��	

��	

 !"#$��	

��	

 !"#$%&��	

 !"#��	

 !"#��	

 !"#$��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
����	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

������	

������������	

��	

 !"#$%&'()*+,-./0123456789:;<=>��	


 !"#$%&'()*+,-./01234567







��	

����	

 !"#��	

 !"#$%&'()*+,��	

��	

��	

��	

��	

����	

��	

 !"#$%&'��	

 !"#$��	

 !"#$%&'()*+,-./0123,456789:;,<=>��	

 !"#$%��	

��	

 ��	

��	
��	

 !"#$%&��	

��	
������������������	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0��	

��	

 !"#$%&'()*��	

��	

��	

��	

��	

��	

��	
��	
��	

 !"#��	

����	

��	

��	

��	

 !"#$%&'()��	

��	
��	

����	

 !"#$%&'()*+,-.��	

��	

��	

 !"#$%&��	

��	

��	

����	

��	

		 !"#$%		&'()*			+,-				./01234	����	

                                 ���������	

��	

��	

��	

��	

 !"#$��	

��	

 !��	

��	

��	

��	

��	

��	

��	

��	

 !��	

��	

��	

��	

��	

��	

��	

��	

 !"#��	

��	

 !"#$��	

 !"#$%&'��	

��	

 !"��	

��	

��	

��	

��	

 !"��	

 !"��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

 !��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !��	

��	

��	

 !"#��	

��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"��	

��	

��	

��	

��	

��	

����	

��	

��	

��	

 !"#��	

��	

 ��	

��	

��	

 !��	

��	

��	

 !"#��	

��	

 !"��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
����	

��	

 ��	

 !"��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#��	

 !"#$��	

��	

��	

��	

 !"��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

����	

��	

��	
��	

������	

��	

��	

��	

����	

 !"#$%&'()*+,-./0123456789:;<; 4K��<dK��dDL��|zRx�$�J��0FJw�?:*3$"D�J�� \�K��<HoGNU�P �"��������4z�������������y���y������0
��"�"���o`��
�"0�(	���o����o�o����o��"`pGA$3a10�GA$3p1067`�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignchinese.so-2.2.10-35.el8.x86_64.debug�c�3�7zXZ�ִF!t/��]?�E�h=��ڊ�2N�H:�^ ��7,��X�\�*u�K�k
��ԘCP��.cKD�.였$�h�y��X�ב�D2�E?�D�1���j+�(�֜�0�%i�,Q���5��B������0?>xR�+"+�U]��/��`/�bQ6'{�̡�v�
����+��Z`]?t�F���s
�w�5�6�s�+�q��c�ؽ>����-��'� ����L�2-<�k,Pp��0��`�X���̣bO)��V��|�r�-�3���6X�GF[f~1w}�hkS�S�zo��&*g뤷{r+�^ݿ�sYY��(U�3���\��-�B>>dڽ�`%U5Գ�BKv(o�H��]�:�IX�ս
�}����̮��-��K��P\F�{��Z������U�*A
�^���̽I��h@��V,�:�7�ޯ��I�D�6'JV����ƒ(˶�˳V��8��X}�|h94�j�X㰪�C=�
�6]�Ҷ(v�=��w��S!������W�%�Z�BM�a:"yOU�&����]��Ez�+�x?��	�L���5��Y����3vz�n�N�#H�	�!����鞛U6�i�0�ԛ�v[�����L�Rs����i���_�R�P�k=tu7��},����9�S��%�θ��b�l���ٟ���!�p*`������f�c~@����i�ߩK��b޷^dz��zs�v���b�S`j�Z{i��GT��M�-��h�t��������ñ�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T��(^B0h00cPP0n�� w���}��
���[� ���$�@�@�t����� ��"���"�� �" �� ���"�� ���"�� ��"�(�(�"(��0�b(��
 �,L�D��+lib64/ruby/2.2.0/x86_64-linux/enc/trans/utf8_mac.so000075500001027210150402105760015152 0ustar00ELF>�@H'@8	@xx PP$P$�� ��$�$  888$$XXX  S�tdXXX  P�td444<<Q�tdR�tdPP$P$��GNU�/�+����M\�w�Zfn�� �	BE���|·8��qX Ut , F"�0 $�8 $fP$�0 $__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalize__stack_chk_failInit_utf8_macrb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�ii
�P$pX$0`$`$�$��$��$�8�$��$��$��$�$� $�($�8$�8H$��$�$�$�$ $  $( $��H��H��$H��t��H����5�$�%�$��h�������h��������h��������%}$D���%u$D���%m$DH�=i$H�b$H9�tH�$H��t	�����H�=9$H�52$H)�H��H��H��?H�H�tH��$H��t��fD�����=�$u+UH�=�$H��tH�=$�Y����d�����$]������w������H�G1�Ð���W1�;Wt2f�Hcʃ�H��D������ʃ�)ʉWD�D��W;Wu�Ð�ff.�@��AWAVAUATUSH��D�GD�OdH�%(H�D$1�H����H���"E9�u I�ɺ��A��OL��Ic�A��L�HD�D�����A�A��A)�D�GF�T	�D�GD;Gu�L�@H�xI�H�PH��D�E�D�NF�D�FD�9�v@�4H�\$dH3%(��H��[]A\A]A^A_�1�E9�tBf�Ic�A��H��D�D�����A�A��A)�D�GD�L�D�GD�OE9�u�L�^E��L��L9�r�fDI��A�qMcɉwE�S�F�A��A��A��F�A��E)�D�OI9�u�D��D)ƒ��������)��&���E��1�A��A��C�4��D)�A��+Hc��47����L�%H�-�-L�mM�t$I��G��F�|A8�wC84+s|1��K�Ic�A��H��D�D�����A�A��A)�D�GD�L1�HcWI�������u	D�OE9�u�H��m���H�1�H9�����L�^����f���I�D)�Hc�E�3C�4���L�E��L��A��u+��9�t$B�4A��A��A��Dރ�D)�Hc��47��������t	������L��A�H���ΈL$L��H���L$��uI��A�D�T$H�L$H�G1�I��@�1Lc�H����B�4��I9�w�W�|����@����r����f����D���@��H��H�=�$�<���H�=$H���,�����H��H���UTF8-MACUTF-8ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöùúûüýÿBĀāĂ㥹ĆćĈĉĊċČčĎďĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĨĩĪīĬĭĮįİĴĵĶķĹĺĻļĽľ��ŃńŅņŇňŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽž��ƠơƯư�ǍǎǏǐǑǒǓǔc�df�gi�jl�mo�pr�suQvǦǧǨǩǪǫ�wy�z�{ǰǴǵǸǹ}�~�Q���уJ�ȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȞȟȦȧȨȩ������Ȯȯ���Ȳȳ�̀́̓�ʹ;z`��·Q������Q������Q�����������Q������Q�I��Q����Q����Q��Q� �!4�3�46Q7�8�9;Q<�=�>@QA�B�CEQF�G�HJQK�L�MOQP�Q�RTQU�V�WYQZ�[�\�h�n�oqQr�sxQ���ч�$��Q��$@Q��Ѳ��Q��ѹ��{\����Q���������Z�����Q���Q����+m>�?�A� �S
	<f�g�iQkmV	P�oQqs�tQ��шQ��	���Q��Ѣ��Q��ѩ��Q�4
���Q������Q���
�T����4Hl���/��Q\ḀḁḂḃḄḅḆḇ���ḊḋḌḍḎḏḐḑḒḓ������ḘḙḚḛ�ḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭ�ḰḱḲḳḴḵḶḷ�ḺḻḼḽḾḿ�pṀṁṂṃṄṅṆṇṈṉṊṋ	�
�
��ṔṕṖṗṘṙṚṛ�ṞṟṠṡṢṣ���ṪṫṬṭṮṯṰṱṲṳṴṵṶṷ!�"$�%ṼṽṾṿ�|	ẀẁẂẃẄẅẆẇẈẉẊẋẌẍẎẏẐẑẒẓẔẕẖẗẘẙ�7ẠạẢả�8Q:�;Q=�>Q@�AQC�DQF�GQI�JQL�MQO�PQR�SQUẸẹẺẻẼẽ�VQX��
Qj�kQm�nQp�qQs�tỈỉỊịỌọỎỏQv�wQy�zQ|�}QрQ�уQ�цQ�щQ�ьQ�яQ�ђỤụỦủQ�ѕQ�јQ�ћQ�ўQ�ѡỲỳỴỵỶỷỸỹg
�ѳ�Q��ѹ��Q����Q������Q�����Q������Q�������Q�����Q������Q�����Q������Q����Q����Q�	Q
�
�Q�|Q%�&�'�)Q+-�.0Q13�4�6Q8�9�:�<Q>@�A�CQE�FQHJ�KMQNP�Q�SQUW�XZQ[]�^�`Qbd�egQh�i�jlQmS|
р��ф�Q���э�ё��ѕ�Q���ў�Ѣ��Ѧ�Q���ѯ�ѳ��ѷ�Q������������Q�������������Q������Q���Q���Q���Q������ι�H��	�
�
Q��Q�QQQ �!�"Q$�%Q'�(�)�+Q-�.�/1�24Q5�6�7`9�:<�=?�@BQC´�Hht	�
|tt
@@H�eQgi�j�lQnp�q�sQuw�x�zQ|~���Q��ц��Q��э��TXѡ��Q��Ѩ��Q��ѯ��Q��E�Q������Q������Q������Q������Q������Q���h�p��Q��Q�Q�
Q
�Q�Q�Q�Q!�#Q&�(Q+�-Q0�2Q5�7Q:�<Q?�A�CF�HK�MP�RU�WZ�\_�ad�fi�kn�ps�ux�z}�����шQ�эQ�ђQ�ї��Q�ќQ�ѡQ�ѦQ�ѫQ�ѰQ�ѵQ�ѺQ�ѿQ���Q���Q���������������������������������
��Q�Q�Q�Q"�$Q'�)Q,�.Q1�3Q6���8Q;�=Q@�BQE�GQJ�LQO�QQT�V�X[�]`�be�gj�lo�qt�vy�{~������������������ѝQ�ѢQ�ѧQ�ѬQ�ѱQ�ѶQ�ѻQ��Q���Q���Q���Q�����Q���Q���Q����������������������
����!$�&Q(�*Q-�/Q2�4Q7�9Q<�>QA�CQF�HQK�MQP�RQU�WQZ�\Q_�aQd�fQi�k�mp�r��u�wz�|������������������������������ѲQ�ѷQ�ѼQ��Q���Q���Q���Q���Q���Q���Q���Q���Q���Q���Q�������	�		�			�		���		�		�	 	�"	%	�'	*	�,	/	�1	4	�6	9	�;	Q=	�?	QB	�D	QG	�I	QL	�N	QQ	�S	QV	�X	Q[	�]	Q`	�b	Qe	�g	Qj	�l	Qo	�q	Qt	�v	Qy	�{	Q~	р	��	�	��	�	��	�	��	�	��	�	��	�	��	�	��	�	��	�	��	���	��	�	��	�	��	�	��	�	��	Q�	��	Q�	��	Q�	��	Q�	��	Q�	��	Q�	��	Q�	��	Q�	��	Q�	��	Q�	�	Q�	�	Q
�
Q
�
Q

�

�

�

�
!
�#
&
�(
+
�-
0
�2
5
�7
:
�<
?
�A
D
�F
I
�K
N
���P
QR
�T
QW
�Y
Q\
�^
Qa
�c
Qf
�h
Qk
�m
Qp
�r
Qu
�w
Qz
�|
Q
с
Q�
ц
Q�
ы
Q�
ѐ
Q�
ѕ
��
�
��
�
��
�
��
�
��
�
��
�
��
�
��
�
��
�
��
�
��
�
��
�
��
�
��
�
��
Q�
��
Q�
��
Q�
��
��Q�
��
Q�
�
Q�
�
Q�
�
Q�Q�	Q�Q�Q�Q�Q "�$'�),�.1�36�8;�=@�BE�GJ�LO�QT�VY�[^�`c�eQg�iQl�nQq�sQv�xQ{�}Q�тQ�чQ���ьQ�ёQ�іQ�ћQ�ѠQ�ѥQ�Ѫ��������������������������������������������Q��Q��Q��Q�Q�
Q
�Q�Q�Q�Q!�#Q&�(��Q+�-Q0�2Q57�9<�>A�CF�HK�MP�RU�WZ�\_�ad�fi�kn�ps�ux�zQ|�~Q�уQ�шQ�эQ�ђQ�їQ�ќQ�ѡQ�ѦQ�ѫQ�ѰQ�ѵQ�ѺQ�ѿ���������������������������������������
�

�
Q	
�
Q
�
Q
�
Q
�
Q
�
Q"
�$
Q'
�)
Q,
�.
Q1
�3
Q6
�8
Q;
�=
Q@
�B
QE
�G
QJ
L
�N
Q
�S
V
�X
[
�]
`
�b
e
��g
j
�l
o
�q
t
�v
y
�{
~
��
�
��
�
��
�
��
Q�
ѓ
Q�
ј
Q�
ѝ
Q�
Ѣ
Q�
ѧ
Q�
Ѭ
Q�
ѱ
Q�
Ѷ
Q�
ѻ
Q�
�
Q�
��
Q�
��
Q�
��
Q�
��
��
�
��
�
��
�
��
�
��
�
��
�
��
�
��
�
��
����
���Q� Q#�%Q(�*Q-�/Q2�4Q7�9Q<�>QA�CQF�HQK�MQP�RQU�WQZ�\Q_a�cf�hk�mp�ru�wz�|����������������������(��Q�ѨQ�ѭQ�ѲQ�ѷQ�ѼQ��Q���Q���Q���Q���Q���Q���Q���Q�������������������	���� �"%�'*�,/�0Q3�5Q8�:Q=�?�4 QB�DQG�IQL�NQQ�SQV�XQ[�]Q`�bQe�gQj�lQo�qQtv�x{�}������������������������������������Q�ѽQ���Q���Q���Q���Q���Q���Q��@!���������� , 8!D"�?L"Q���Q��Q��Q�Q�Q
�Q��� �"%�'*�,/�14�69�;>�@C�EH�JM�OR�TQV�XQ[�]Q`�bQe�gQj�lQo�qQt�vQy�{Q~рQ�хQ�ъQ���"яQ�єQ�љ��������������������������������������������Q���Q���Q���Q���Q��Q��Q�Q�Q�
Q�Q�Q�Q�!Q$&�(+��#�-0�25�7:�<?�AD�FI�KN�PS�UX�Z]�_b�dg�iQk�mQp�rQu�wQz�|QсQ�цQ�ыQ�ѐQ�ѕQ�њQ�џQ�ѤQ�ѩQ�Ѯ�������������������$��������������������������Q��Q��Q�Q�	Q�Q�Q�Q�Q �"Q%�'Q*�,Q/�1Q4�6Q9;�=@�BE�GJ�LO�QT�VY�[^�`c�eh��%�jm�or�tw�y|�~Q�тQ�чQ�ьQ�ёQ�іQ�ћQ�ѠQ�ѥQ�ѪQ�ѯQ�ѴQ�ѹQ�ѾQ�������������������������������������������&	�
Q
�Q�Q�Q�Q!�#Q&�(Q+�-Q0�2Q5�7Q:�<Q?�AQD�FQI�KQNP�RU�WZ�\_�ad�fi�kn�ps�ux�z}�������������Q�їQ�ќQ�ѡQ���'ѦQ�ѫQ�ѰQ�ѵQ�ѺQ�ѿQ���Q���Q���Q���Q����������������������������
�����Q"�$Q'�)Q,�.Q1�3Q6�8Q;�=Q@�B��(QE�GQJ�LQO�QQT�VQY�[Q^�`Qce�gj�lo�qt�vy�{~��������������������������Q�ѬQ�ѱQ�ѶQ�ѻQ��Q���Q���Q���Q���Q���Q���Q���)��Q���Q�����������������
����!$�&)�+.�03�4Q7�9Q<�>QA�CQF�HQK�MQP�RQU�WQZ�\Q_�aQd�fQi�kQn�pQs�uQxz�|��*��������������������������������������Q��Q���Q���Q���Q���Q���Q���Q���Q���Q���Q���Q��Q��Q���	�����, �"%�'*�,/�14�69�;>�@C�EH�IQL�NQQ�SQV�XQ[�]Q`�bQe�gQj�lQo�qQt�vQy�{Q~рQ�хQ�ъQ������������������������������-��������������Q���Q���Q���Q���Q���Q���Q���Q��Q��Q�Q�Q�
Q�Q���!�#&�(+�-0�25�7:�<?�AD�FI�KN�PS�UX�Z� .]�^Qa�cQf�hQk�mQp�rQu�wQz�|QсQ�цQ�ыQ�ѐQ�ѕQ�њQ�џQ�������������������������������������������Q���Q���Q��Q��,/�Q��Q�Q�	Q�Q�Q�Q�Q �"Q%�'Q*�,�.1�36�8;�=@�BE�GJ�LO�QT�VY�[^�`c�eh�jm�or�sQv�xQ{�}Q�тQ�чQ�ьQ�ёQ�і�80Q�ћQ�ѠQ�ѥQ�ѪQ�ѯQ�ѴQ�������������������������������������������Q��Q�Q�
Q
�Q�Q�Q�Q!�#Q&�(Q+�-Q0�2Q5�D1�7Q:�<Q?�A�CF�HK�MP�RU�WZ�\_�ad�fi�kn�ps�ux�z}�����шQ�эQ�ђQ�їQ�ќQ�ѡQ�ѦQ�ѫQ�ѰQ�ѵQ�ѺQ�ѿQ���Q���Q������P2����������������������������
��Q�Q�Q�Q"�$Q'�)Q,�.Q1�3Q6�8Q;�=Q@�BQE�GQJ�LQO�QQT�V�X[�]`�be�gj�lo�q�\3t�vy�{~������������������ѝQ�ѢQ�ѧQ�ѬQ�ѱQ�ѶQ�ѻQ��Q���Q���Q���Q���Q���Q���Q����������������������
�h4����!$�&Q(�*Q-�/Q2�4Q7�9Q<�>QA�CQF�HQK�MQP�RQU�WQZ�\Q_�aQd�fQi�k�mp�ru�wz�|������������������������������t5�ѲQ�ѷQ�ѼQ��Q���Q���Q���Q���Q���Q���Q���Q���Q���Q���Q���������	���� �"%�'*�,/�14�69�;Q=�?QB�DQG�IQL��6�NQQ�SQV�XQ[�]Q`�bQe�gQj�lQo�qQt�vQy�{Q~р��������������������������������������������Q���Q���Q���Q���Q���Q���Q�����7Q���Q���Q��Q��Q�Q�Q
����!�#&�(+�-0�25�7:�<?�AD�FI�KN�PQR�TQW�YQ\�^Qa�cQf�hQk�mQp�rQu�wQz�|QсQ�цQ���8ыQ�ѐQ�ѕ��������������������������������������������Q���Q���Q���Q���Q��Q��Q��Q�Q�	Q�Q�Q�Q�Q "�$'��9�),�.1�36�8;�=@�BE�GJ�LO�QT�VY�[^�`c�eQg�iQl�nQq�sQv�xQ{�}Q�тQ�чQ�ьQ�ёQ�іQ�ћQ�ѠQ�ѥQ�Ѫ�������������������:���������������������������Q��Q��Q��Q�Q�
Q
�Q�Q�Q�Q!�#Q&�(Q+�-Q0�2Q57�9<�>A�CF�HK�MP�RU�WZ�\_�ad��;�fi�kn�ps�ux�zQ|�~Q�уQ�шQ�эQ�ђQ�їQ�ќQ�ѡQ�ѦQ�ѫQ�ѰQ�ѵQ�ѺQ�ѿ�������������������������������������� � ��< � Q	 � Q � Q � Q � Q � Q" �$ Q' �) Q, �. Q1 �3 Q6 �8 Q; �= Q@ �B QE �G QJ L �N Q �S V �X [ �] ` �b e �g j �l o �q t �v y �{ ~ �� � �� � �� � �� Q� ѓ Q� ј Q� ѝ Q� ��=Ѣ Q� ѧ Q� Ѭ Q� ѱ Q� Ѷ Q� ѻ Q� � Q� �� Q� �� Q� �� Q� �� �� � �� � �� � �� � �� � �� � �� � �� � �� !�!!�!!�
!!�!!�!!�!Q!� !Q#!�%!Q(!�*!Q-!�/!Q2!�4!Q7!�9!Q<!�>!��>QA!�C!QF!�H!QK!�M!QP!�R!QU!�W!QZ!�\!Q_!a!�c!f!�h!k!�m!p!�r!u!�w!z!�|!!��!�!��!�!��!�!��!�!��!�!��!�!��!�!��!Q�!Ѩ!Q�!ѭ!Q�!Ѳ!Q�!ѷ!Q�!Ѽ!Q�!�!Q�!��!Q�!��!Q�!��!Q�!��!Q�!��!Q�!��?��!Q�!��!Q�!��!��!�!��!�!��!�!��!�!��!"�""�	""�""�""�""�" "�""%"�'"*"�,"/"�0"Q3"�5"Q8"�:"Q="�?"QB"�D"QG"�I"QL"�N"QQ"�S"QV"�X"Q["�]"Q`"�b"Qe"�g"Qj"�l"Qo"�q"Qt"v"�x"{"��@�}"�"��"�"��"�"��"�"��"�"��"�"��"�"��"�"��"�"��"�"��"�"��"�"��"Q�"ѽ"Q�"��"Q�"��"Q�"��"Q�"��"Q�"��"Q�"��"Q�"��"Q�"��"Q�"��"Q�"��"Q�"��"Q�"�"Q�"�"�##�##�
#
#�##�##�#�B#�#!#�##&#�(#+#�-#0#�2#5#�7#:#�<#?#�A#D#�E#QH#�J#QM#�O#QR#�T#QW#�Y#Q\#�^#Qa#�c#Qf#�h#Qk#�m#Qp#�r#Qu#�w#Qz#�|#Q#с#Q�#ц#Q�#�#��#�#��#�#��#�#��#�#��#�#��#�#��#�#��#�#��#�#�C��#�#��#�#��#�#��#�#��#Q�#��#Q�#��#Q�#��#Q�#��#Q�#��#Q�#��#Q�#��#Q�#�#Q�#�#Q�#�#Q$�$Q$�	$Q$�$Q$�$�$$�$$�$"$�$$'$�)$,$�.$1$�3$6$�8$;$�=$@$�B$E$�G$J$�L$O$�Q$T$�V$�DY$�Z$Q]$�_$Qb$�d$Qg$�i$Ql$�n$Qq$�s$Qv$�x$Q{$�}$Q�$т$Q�$ч$Q�$ь$Q�$ё$Q�$і$Q�$ћ$Q�$�$��$�$��$�$��$�$��$�$��$�$��$�$��$�$��$�$��$�$��$�$��$�$��$�$��$�$��$Q�$��$Q�$��$Q�$��$Q�$�(E�$Q�$�$Q�$�%Q%�%Q%�
%Q
%�%Q%�%Q%�%Q%�%Q!%�#%Q&%�(%�*%-%�/%2%�4%7%�9%<%�>%A%�C%F%�H%K%�M%P%�R%U%�W%Z%�\%_%�a%d%�f%i%�k%n%�o%Qr%�t%Qw%�y%Q|%�~%Q�%у%Q�%ш%Q�%э%Q�%ђ%�4FQ�%ї%Q�%ќ%Q�%ѡ%Q�%Ѧ%Q�%ѫ%Q�%Ѱ%Q�%�%��%�%��%�%��%�%��%�%��%�%��%�%��%�%��%�%��%�%��%�%��%�%��%�%��%�%��%Q�%�%Q�%�&Q&�&Q	&�&Q&�&Q&�&Q&�&Q&�&Q"&�$&Q'&�)&Q,&�.&Q1&�@G�3&Q6&�8&Q;&�=&�?&B&�D&G&�I&L&�N&Q&�S&V&�X&[&�]&`&�b&e&�g&j&�l&o&�q&t&�v&y&�{&~&��&�&ф&Q�&щ&Q�&ю&Q�&ѓ&Q�&ј&Q�&ѝ&Q�&Ѣ&Q�&ѧ&Q�&Ѭ&Q�&ѱ&Q�&Ѷ&Q�&ѻ&Q�&�&Q�&��&Q�&�&��&�&�LH��&�&��&�&��&�&��&�&��&�&��&�&��&�&��&�&��&�&��&'�''�''�
'Q'�'Q'�'Q'�'Q'� 'Q#'�%'Q('�*'Q-'�/'Q2'�4'Q7'�9'Q<'�>'QA'�C'QF'�H'QK'�M'QP'�R'�T'W'�Y'\'�^'a'�c'f'�h'k'�m'�XIp'�r'u'�w'z'�|''��'�'��'�'��'�'��'�'��'�'љ'Q�'ў'Q�'ѣ'Q�'Ѩ'Q�'ѭ'Q�'Ѳ'Q�'ѷ'Q�'Ѽ'Q�'�'Q�'��'Q�'��'Q�'��'Q�'��'Q�'��'Q�'�'��'�'��'�'��'�'��'�'��'�'��'�'��'(�((�	((�dJ�((�((�((�( (�"(Q$(�&(Q)(�+(Q.(�0(Q3(�5(Q8(�:(Q=(�?(QB(�D(QG(�I(QL(�N(QQ(�S(QV(�X(Q[(�](Q`(�b(Qe(�g(�i(l(�n(q(�s(v(�x({(�}(�(��(�(��(�(��(�(��(�(��(�(��(�(��(�(��(�(��(�pK�(Ѯ(Q�(ѳ(Q�(Ѹ(Q�(ѽ(Q�(��(Q�(��(Q�(��(Q�(��(Q�(��(Q�(��(Q�(��(Q�(��(Q�(��(Q�(��(Q�(�(��(�(��(�(�))�))�
)
)�))�))�))�)!)�#)&)�()+)�-)0)�2)5)�7)Q9)�;)Q>)�@)QC)�E)QH)�|L�J)QM)�O)QR)�T)QW)�Y)Q\)�^)Qa)�c)Qf)�h)Qk)�m)Qp)�r)Qu)�w)Qz)�|)�~)�)��)�)��)�)��)�)��)�)��)�)��)�)��)�)��)�)��)�)��)�)��)�)��)�)��)�)��)Q�)��)Q�)��)Q�)��)Q�)��)Q�)��)Q�)��)Q�)��)��MQ�)��)Q�)��)Q�)�)Q�)�)Q�)�)Q*�*Q*	*�**�**�**�**�*"*�$*'*�)*,*�.*1*�3*6*�8*;*�=*@*�B*E*�G*J*�L*QN*�P*QS*�U*QX*�Z*Q]*�_*Qb*�d*Qg*�i*Ql*�n*Qq*�s*Qv*�x*Q{*�}*Q�*т*Q�*��Nч*Q�*ь*Q�*ё*��*�*��*�*��*�*��*�*��*�*��*�*��*�*��*�*��*�*��*�*��*�*��*�*��*�*��*�*��*Q�*��*Q�*��*Q�*��*Q�*��*Q�*��*Q�*�*Q�*�*Q�*�+Q+�+Q+�
+Q
+�+Q+�+Q+�+Q++� +#+��O�%+(+�*+-+�/+2+�4+7+�9+<+�>+A+�C+F+�H+K+�M+P+�R+U+�W+Z+�\+_+�a+Qc+�e+Qh+�j+Qm+�o+Qr+�t+Qw+�y+Q|+�~+Q�+у+Q�+ш+Q�+э+Q�+ђ+Q�+ї+Q�+ќ+Q�+ѡ+Q�+Ѧ+��+�+��+�+��+�+��+�+��+�+��+��P�+��+�+��+�+��+�+��+�+��+�+��+�+��+�+��+�+��+Q�+��+Q�+�+Q�+�+Q�+�,Q,�,Q	,�,Q,�,Q,�,Q,�,Q,�,Q",�$,Q',�),Q,,�.,Q1,3,�5,8,�:,=,�?,B,�D,G,�I,L,�N,Q,�S,V,�X,[,�],`,��Q�b,e,�g,j,�l,o,�q,t,�v,Qx,�z,Q},�,Q�,ф,Q�,щ,Q�,ю,Q�,ѓ,Q�,ј,Q�,ѝ,Q�,Ѣ,Q�,ѧ,Q�,Ѭ,Q�,ѱ,Q�,Ѷ,Q�,ѻ,��,�,��,�,��,�,��,�,��,�,��,�,��,�,��,�,��,�,��,�,��,�,��,�,��,�,��,��R-�-Q-�-Q
-�-Q-�-Q-�-Q-�-Q-� -Q#-�%-Q(-�*-Q--�/-Q2-�4-Q7-�9-Q<-�>-QA-�C-QF-H-�J-M-�O-R-�T-W-�Y-\-�^-a-�c-f-�h-k-�m-p-�r-u-�w-z-�|--��-�-��-�-��-Q�-я-Q�-є-Q�-љ-Q�-��Sў-Q�-ѣ-Q�-Ѩ-Q�-ѭ-Q�-Ѳ-Q�-ѷ-Q�-Ѽ-Q�-�-Q�-��-Q�-��-Q�-��-��-�-��-�-��-�-��-�-��-�-��-�-��-�-��-�-��-�-��-.�..�	..�..�..�.Q.�.Q.�!.Q$.�&.Q).�+.Q..�0.Q3.�5.Q8.�:.��TQ=.�?.QB.�D.QG.�I.QL.�N.QQ.�S.QV.�X.Q[.].�_.b.�d.g.�i.l.�n.q.�s.v.�x.{.�}.�.��.�.��.�.��.�.��.�.��.�.��.�.��.Q�.Ѥ.Q�.ѩ.Q�.Ѯ.Q�.ѳ.Q�.Ѹ.Q�.ѽ.Q�.��.Q�.��.Q�.��.Q�.��.Q�.��.Q�.��U��.Q�.��.Q�.��.��.�.��.�.��.�.��.�.��.�.�//�//�
/
/�//�//�//�/!/�#/&/�(/+/�,/Q//�1/Q4/�6/Q9/�;/Q>/�@/QC/�E/QH/�J/QM/�O/QR/�T/QW/�Y/Q\/�^/Qa/�c/Qf/�h/Qk/�m/Qp/r/�t/w/��V�y/|/�~/�/��/�/��/�/��/�/��/�/��/�/��/�/��/�/��/�/��/�/��/�/��/Q�/ѹ/Q�/Ѿ/Q�/��/Q�/��/Q�/��/Q�/��/Q�/��/Q�/��/Q�/��/Q�/��/Q�/��/Q�/��/Q�/�/Q�/�/��/�/�00�0	0�00�00�0�X0�00�0"0�$0'0�)0,0�.010�3060�80;0�=0@0�A0QD0�F0QI0�K0QN0�P0QS0�U0QX0�Z0Q]0�_0Qb0�d0Qg0�i0Ql0�n0Qq0�s0Qv0�x0Q{0�}0Q�0т0Q�0�0��0�0��0�0��0�0��0�0��0�0��0�0��0�0��0�0��0�0�Y��0�0��0�0��0�0��0�0��0Q�0��0Q�0��0Q�0��0Q�0��0Q�0��0Q�0��0Q�0��0Q�0��0Q�0�0Q�0�0Q�0�1Q1�1Q1�
1Q
1�1�11�11�11� 1#1�%1(1�*1-1�/121�4171�91<1�>1A1�C1F1�H1K1�M1P1�R1�ZU1�V1QY1�[1Q^1�`1Qc1�e1Qh1�j1Qm1�o1Qr1�t1Qw1�y1Q|1�~1Q�1у1Q�1ш1Q�1э1Q�1ђ1Q�1ї1Q�1�1��1�1��1�1��1�1��1�1��1�1��1�1��1�1��1�1��1�1��1�1��1�1��1�1��1�1��1Q�1��1Q�1��1Q�1��1Q�1�$[��1Q�1�1Q�1�1Q�1�2Q2�2Q	2�2Q2�2Q2�2Q2�2Q2�2Q"2�$2�&2)2�+2.2�0232�5282�:2=2�?2B2�D2G2�I2L2�N2Q2�S2V2�X2[2�]2`2�b2e2�g2j2�k2Qn2�p2Qs2�u2Qx2�z2Q}2�2Q�2ф2Q�2щ2Q�2ю2�0\Q�2ѓ2Q�2ј2Q�2ѝ2Q�2Ѣ2Q�2ѧ2Q�2Ѭ2Q�2�2��2�2��2�2��2�2��2�2��2�2��2�2��2�2��2�2��2�2��2�2��2�2��2�2��2�2��2Q�2�2Q�2�2Q3�3Q3�3Q
3�3Q3�3Q3�3Q3�3Q3� 3Q#3�%3Q(3�*3Q-3�<]�/3Q23�43Q73�93�;3>3�@3C3�E3H3�J3M3�O3R3�T3W3�Y3\3�^3a3�c3f3�h3k3�m3p3�r3u3�w3z3�|33р3Q�3х3Q�3ъ3Q�3я3Q�3є3Q�3љ3Q�3ў3Q�3ѣ3Q�3Ѩ3Q�3ѭ3Q�3Ѳ3Q�3ѷ3Q�3Ѽ3Q�3�3Q�3�3��3�3�H^��3�3��3�3��3�3��3�3��3�3��3�3��3�3��3�3��3�3��3�3��34�44�	4Q4�
4Q4�4Q4�4Q4�4Q4�!4Q$4�&4Q)4�+4Q.4�04Q34�54Q84�:4Q=4�?4QB4�D4QG4�I4QL4�N4�P4S4�U4X4�Z4]4�_4b4�d4g4�i4�T_l4�n4q4�s4v4�x4{4�}4�4��4�4��4�4��4�4��4�4ѕ4Q�4њ4Q�4џ4Q�4Ѥ4Q�4ѩ4Q�4Ѯ4Q�4ѳ4Q�4Ѹ4Q�4ѽ4Q�4��4Q�4��4Q�4��4Q�4��4Q�4��4Q�4�4��4�4��4�4��4�4��4�4��4�4��4�4��4�4�55�55�``�
5
5�55�55�55�5Q 5�"5Q%5�'5Q*5�,5Q/5�15Q45�65Q95�;5Q>5�@5QC5�E5QH5�J5QM5�O5QR5�T5QW5�Y5Q\5�^5Qa5�c5�e5h5�j5m5�o5r5�t5w5�y5|5�~5�5��5�5��5�5��5�5��5�5��5�5��5�5��5�5��5�la�5Ѫ5Q�5ѯ5Q�5Ѵ5Q�5ѹ5Q�5Ѿ5Q�5��5Q�5��5Q�5��5Q�5��5Q�5��5Q�5��5Q�5��5Q�5��5Q�5��5Q�5�5��5�5��5�5��5�5�66�6	6�66�66�66�66�6"6�$6'6�)6,6�.616�36Q56�76Q:6�<6Q?6�A6QD6�xb�F6QI6�K6QN6�P6QS6�U6QX6�Z6Q]6�_6Qb6�d6Qg6�i6Ql6�n6Qq6�s6Qv6�x6�z6}6�6�6��6�6��6�6��6�6��6�6��6�6��6�6��6�6��6�6��6�6��6�6��6�6��6�6ѿ6Q�6��6Q�6��6Q�6��6Q�6��6Q�6��6Q�6��6Q�6��6��cQ�6��6Q�6��6Q�6��6Q�6�6Q�6�6Q�6�7Q77�7
7�77�77�77�77� 7#7�%7(7�*7-7�/727�4777�97<7�>7A7�C7F7�H7QJ7�L7QO7�Q7QT7�V7QY7�[7Q^7�`7Qc7�e7Qh7�j7Qm7�o7Qr7�t7Qw7�y7Q|7�~7Q�7��d�#�$�%�&�'�(�)�*,-.$/00<1H2T3`4l5x6�7�8�9�:�;�<�=�>�?�@�ACD E,F8GDHPI\JhKtL�M�N�O�P�Q�R�S�T�U�V�WYZ[(\4]@^L_X`dapb|c�d�e��eу7Q�7ш7Q�7э7��7�7��7�7��7�7��7�7��7�7��7�7��7�7��7�7��7�7��7�7��7�7��7�7��7�7��7�7��7Q�7��7Q�7��7Q�7��7Q�7��7Q�7��7Q�7��7Q�7�7Q�7�7Q�7�8Q8�8Q	8�8Q8�8Q8�8Q88�88��f�!8$8�&8)8�+8.8�0838�5888�:8=8�?8B8�D8G8�I8L8�N8Q8�S8V8�X8[8�]8Q_8�a8Qd8�f8Qi8�k8Qn8�p8Qs8�u8Qx8�z8Q}8�8Q�8ф8Q�8щ8Q�8ю8Q�8ѓ8Q�8ј8Q�8ѝ8Q�8Ѣ8��8�8��8�8��8�8��8�8��8�8��8��g�8��8�8��8�8��8�8��8�8��8�8��8�8��8�8��8�8��8Q�8��8Q�8��8Q�8�8Q�8�8Q9�9Q9�9Q
9�9Q9�9Q9�9Q9�9Q9� 9Q#9�%9Q(9�*9Q-9/9�1949�6999�;9>9�@9C9�E9H9�J9M9�O9R9�T9W9�Y9\9��h�^9a9�c9f9�h9k9�m9p9�r9Qt9�v9Qy9�{9Q~9р9Q�9х9Q�9ъ9Q�9я9Q�9є9Q�9љ9Q�9ў9Q�9ѣ9Q�9Ѩ9Q�9ѭ9Q�9Ѳ9Q�9ѷ9��9�9��9�9��9�9��9�9��9�9��9�9��9�9��9�9��9�9��9�9��9�9��9�9��9�9��9��i�9�9Q:�:Q:�:Q:�
:Q:�:Q:�:Q:�:Q:�!:Q$:�&:Q):�+:Q.:�0:Q3:�5:Q8:�::Q=:�?:QB:D:�F:I:�K:N:�P:S:�U:X:�Z:]:�_:b:�d:g:�i:l:�n:q:�s:v:�x:{:�}:�:��:�:��:Q�:ы:Q�:ѐ:Q�:ѕ:Q�:��jњ:Q�:џ:Q�:Ѥ:Q�:ѩ:Q�:Ѯ:Q�:ѳ:Q�:Ѹ:Q�:ѽ:Q�:��:Q�:��:Q�:��:��:�:��:�:��:�:��:�:��:�:��:�:��:�:��:�:��:�:��:�:�;;�;;�
;
;�;;�;Q;�;Q;�;Q ;�";Q%;�';Q*;�,;Q/;�1;Q4;�6;��kQ9;�;;Q>;�@;QC;�E;QH;�J;QM;�O;QR;�T;QW;Y;�[;^;�`;c;�e;h;�j;m;�o;r;�t;w;�y;|;�~;�;��;�;��;�;��;�;��;�;��;�;��;Q�;Ѡ;Q�;ѥ;Q�;Ѫ;Q�;ѯ;Q�;Ѵ;Q�;ѹ;Q�;Ѿ;Q�;��;Q�;��;Q�;��;Q�;��;Q�;��l��;Q�;��;Q�;��;��;�;��;�;��;�;��;�;��;�;��;�;�<<�<	<�<<�<<�<<�<<�<"<�$<'<�(<Q+<�-<Q0<�2<Q5<�7<Q:<�<<Q?<�A<QD<�F<QI<�K<QN<�P<QS<�U<QX<�Z<Q]<�_<Qb<�d<Qg<�i<Ql<n<�p<s<��m�u<x<�z<}<�<�<��<�<��<�<��<�<��<�<��<�<��<�<��<�<��<�<��<�<��<Q�<ѵ<Q�<Ѻ<Q�<ѿ<Q�<��<Q�<��<Q�<��<Q�<��<Q�<��<Q�<��<Q�<��<Q�<��<Q�<��<Q�<��<Q�<�<��<�<��<=�==�=
=�==�=�o=�==�==� =#=�%=(=�*=-=�/=2=�4=7=�9=<=�==Q@=�B=QE=�G=QJ=�L=QO=�Q=QT=�V=QY=�[=Q^=�`=Qc=�e=Qh=�j=Qm=�o=Qr=�t=Qw=�y=Q|=�~=Q�=�=��=�=��=�=��=�=��=�=��=�=��=�=��=�=��=�=��=�=�p��=�=��=�=��=�=��=�=��=Q�=��=Q�=��=Q�=��=Q�=��=Q�=��=Q�=��=Q�=��=Q�=��=Q�=��=Q�=�=Q�=�=Q�=�>Q>�>Q	>�>�
>>�>>�>>�>>�!>$>�&>)>�+>.>�0>3>�5>8>�:>=>�?>B>�D>G>�I>L>�N>� qQ>�R>QU>�W>QZ>�\>Q_>�a>Qd>�f>Qi>�k>Qn>�p>Qs>�u>Qx>�z>Q}>�>Q�>ф>Q�>щ>Q�>ю>Q�>ѓ>Q�>�>��>�>��>�>��>�>��>�>��>�>��>�>��>�>��>�>��>�>��>�>��>�>��>�>��>�>��>Q�>��>Q�>��>Q�>��>Q�>�,r��>Q�>��>Q�>�>Q�>�>Q?�?Q?�?Q
?�?Q?�?Q?�?Q?�?Q?� ?�"?%?�'?*?�,?/?�1?4?�6?9?�;?>?�@?C?�E?H?�J?M?�O?R?�T?W?�Y?\?�^?a?�c?f?�g?Qj?�l?Qo?�q?Qt?�v?Qy?�{?Q~?р?Q�?х?Q�?ъ?�8sQ�?я?Q�?є?Q�?љ?Q�?ў?Q�?ѣ?Q�?Ѩ?Q�?�?��?�?��?�?��?�?��?�?��?�?��?�?��?�?��?�?��?�?��?�?��?�?��?�?��?�?��?Q�?��?Q�?�?Q�?�?Q@�@Q@�@Q@�
@Q@�@Q@�@Q@�@Q@�!@Q$@�&@Q)@�Dt�+@Q.@�0@Q3@�5@�7@:@�<@?@�A@D@�F@I@�K@N@�P@S@�U@X@�Z@]@�_@b@�d@g@�i@l@�n@q@�s@v@�x@{@�|@Q@с@Q�@ц@Q�@ы@Q�@ѐ@Q�@ѕ@Q�@њ@Q�@џ@Q�@Ѥ@Q�@ѩ@Q�@Ѯ@Q�@ѳ@Q�@Ѹ@Q�@ѽ@Q�@�@��@�@�Pu��@�@��@�@��@�@��@�@��@�@��@�@��@�@��@�@��@�@��@�@��@�@�AA�AQA�	AQA�AQA�AQA�AQA�AQ A�"AQ%A�'AQ*A�,AQ/A�1AQ4A�6AQ9A�;AQ>A�@AQCA�EAQHA�JA�LAOA�QATA�VAYA�[A^A�`AcA�eA�\vhA�jAmA�oArA�tAwA�yA|A�~A�A��A�A��A�A��A�AёAQ�AіAQ�AћAQ�AѠAQ�AѥAQ�AѪAQ�AѯAQ�AѴAQ�AѹAQ�AѾAQ�A��AQ�A��AQ�A��AQ�A��AQ�A�A��A�A��A�A��A�A��A�A��A�A��A�A��A�A��A�A�BB�hw�B	B�BB�BB�BB�BQB�BQ!B�#BQ&B�(BQ+B�-BQ0B�2BQ5B�7BQ:B�<BQ?B�ABQDB�FBQIB�KBQNB�PBQSB�UBQXB�ZBQ]B�_B�aBdB�fBiB�kBnB�pBsB�uBxB�zB}B�B�B��B�B��B�B��B�B��B�B��B�B��B�B��B�tx�BѦBQ�BѫBQ�BѰBQ�BѵBQ�BѺBQ�BѿBQ�B��BQ�B��BQ�B��BQ�B��BQ�B��BQ�B��BQ�B��BQ�B��BQ�B�B��B�B��B�B��B�B��BC�CC�C
C�CC�CC�CC�CC� C#C�%C(C�*C-C�/CQ1C�3CQ6C�8CQ;C�=CQ@C��y�BCQEC�GCQJC�LCQOC�QCQTC�VCQYC�[CQ^C�`CQcC�eCQhC�jCQmC�oCQrC�tC�vCyC�{C~C��C�C��C�C��C�C��C�C��C�C��C�C��C�C��C�C��C�C��C�C��C�C��C�CѻCQ�C�CQ�C��CQ�C��CQ�C��CQ�C��CQ�C��CQ�C��C��zQ�C��CQ�C��CQ�C��CQ�C��CQ�C�CQ�C�CQ�CD�DD�DD�
DD�DD�DD�DD�!D$D�&D)D�+D.D�0D3D�5D8D�:D=D�?DBD�DDQFD�HDQKD�MDQPD�RDQUD�WDQZD�\DQ_D�aDQdD�fDQiD�kDQnD�pDQsD�uDQxD�zDQ}D��{�DQ�DфDQ�DщD��D�D��D�D��D�D��D�D��D�D��D�D��D�D��D�D��D�D��D�D��D�D��D�D��D�D��D�D��DQ�D��DQ�D��DQ�D��DQ�D��DQ�D��DQ�D��DQ�D��DQ�D�DQ�D�DQE�EQE�EQ
E�EQE�EQEE�EE��|�E E�"E%E�'E*E�,E/E�1E4E�6E9E�;E>E�@ECE�EEHE�JEME�OERE�TEWE�YEQ[E�]EQ`E�bEQeE�gEQjE�lEQoE�qEQtE�vEQyE�{EQ~EрEQ�EхEQ�EъEQ�EяEQ�EєEQ�EљEQ�EўE��E�E��E�E��E�E��E�E��E�E��E��}�E��E�E��E�E��E�E��E�E��E�E��E�E��E�E��E�E��EQ�E��EQ�E��EQ�E��EQ�E�EQ�E�EQF�FQF�FQF�
FQF�FQF�FQF�FQF�!FQ$F�&FQ)F+F�-F0F�2F5F�7F:F�<F?F�AFDF�FFIF�KFNF�PFSF�UFXF��~�ZF]F�_FbF�dFgF�iFlF�nFQpF�rFQuF�wFQzF�|FQFсFQ�FцFQ�FыFQ�FѐFQ�FѕFQ�FњFQ�FџFQ�FѤFQ�FѩFQ�FѮFQ�FѳF��F�F��F�F��F�F��F�F��F�F��F�F��F�F��F�F��F�F��F�F��F�F��F�F��F�F��F���F�FQ�F�FQG�GQG�	GQG�GQG�GQG�GQG�GQ G�"GQ%G�'GQ*G�,GQ/G�1GQ4G�6GQ9G�;GQ>G@G�BGEG�GGJG�LGOG�QGTG�VGYG�[G^G�`GcG�eGhG�jGmG�oGrG�tGwG�yG|G�~G�G��GQ�GчGQ�GьGQ�GёGQ�G�ԀіGQ�GћGQ�GѠGQ�GѥGQ�GѪGQ�GѯGQ�GѴGQ�GѹGQ�GѾGQ�G��GQ�G��G��G�G��G�G��G�G��G�G��G�G��G�G��G�G��G�G��G�G��G�G��G�G�HH�H	H�HH�HQH�HQH�HQH�HQ!H�#HQ&H�(HQ+H�-HQ0H�2H��Q5H�7HQ:H�<HQ?H�AHQDH�FHQIH�KHQNH�PHQSHUH�WHZH�\H_H�aHdH�fHiH�kHnH�pHsH�uHxH�zH}H�H�H��H�H��H�H��H�H��H�H��HQ�HќHQ�HѡHQ�HѦHQ�HѫHQ�HѰHQ�HѵHQ�HѺHQ�HѿHQ�H��HQ�H��HQ�H��HQ�H����HQ�H��HQ�H��H��H�H��H�H��H�H��H�H��H�H��H�H��HI�II�I
I�II�II�II�II� I#I�$IQ'I�)IQ,I�.IQ1I�3IQ6I�8IQ;I�=IQ@I�BIQEI�GIQJI�LIQOI�QIQTI�VIQYI�[IQ^I�`IQcI�eIQhIjI�lIoI����qItI�vIyI�{I~I��I�I��I�I��I�I��I�I��I�I��I�I��I�I��I�I��I�I��IQ�IѱIQ�IѶIQ�IѻIQ�I�IQ�I��IQ�I��IQ�I��IQ�I��IQ�I��IQ�I��IQ�I��IQ�I��IQ�I��IQ�I��I��I�I��I�I��IJ�JJ�JJ�
J��J�JJ�JJ�JJ�!J$J�&J)J�+J.J�0J3J�5J8J�9JQ<J�>JQAJ�CJQFJ�HJQKJ�MJQPJ�RJQUJ�WJQZJ�\JQ_J�aJQdJ�fJQiJ�kJQnJ�pJQsJ�uJQxJ�zJQ}JJ��J�J��J�J��J�J��J�J��J�J��J�J��J�J��J�J��J�J����J�J��J�J��J�J��J�J��JQ�J��JQ�J��JQ�J��JQ�J��JQ�J��JQ�J��JQ�J��JQ�J��JQ�J��JQ�J��JQ�J�JQ�J�JQK�KQK�K�	KK�KK�KK�KK�K K�"K%K�'K*K�,K/K�1K4K�6K9K�;K>K�@KCK�EKHK�JK��MK�NKQQK�SKQVK�XKQ[K�]KQ`K�bKQeK�gKQjK�lKQoK�qKQtK�vKQyK�{KQ~KрKQ�KхKQ�KъKQ�KяKQ�K�K��K�K��K�K��K�K��K�K��K�K��K�K��K�K��K�K��K�K��K�K��K�K��K�K��K�K��KQ�K��KQ�K��KQ�K��KQ�K�(���KQ�K��KQ�K��KQ�K�KQ�K�KQL�LQL�LQL�
LQL�LQL�LQL�L�L!L�#L&L�(L+L�-L0L�2L5L�7L:L�<L?L�ALDL�FLIL�KLNL�PLSL�ULXL�ZL]L�_LbL�cLQfL�hLQkL�mLQpL�rLQuL�wLQzL�|LQLсLQ�LцL�4�Q�LыLQ�LѐLQ�LѕLQ�LњLQ�LџLQ�LѤLQ�L�L��L�L��L�L��L�L��L�L��L�L��L�L��L�L��L�L��L�L��L�L��L�L��L�L��L�L��LQ�L��LQ�L�LQ�L�LQ�L�LQM�MQM�	MQM�MQM�MQM�MQM�MQ M�"MQ%M�@��'MQ*M�,MQ/M�1M�3M6M�8M;M�=M@M�BMEM�GMJM�LMOM�QMTM�VMYM�[M^M�`McM�eMhM�jMmM�oMrM�tMwM�xMQ{M�}MQ�MтMQ�MчMQ�MьMQ�MёMQ�MіMQ�MћMQ�MѠMQ�MѥMQ�MѪMQ�MѯMQ�MѴMQ�MѹMQ�M�M��M�M�L���M�M��M�M��M�M��M�M��M�M��M�M��M�M��M�M��M�M��M�M��M�M��M�M�NQN�NQN�
NQ
N�NQN�NQN�NQN�NQ!N�#NQ&N�(NQ+N�-NQ0N�2NQ5N�7NQ:N�<NQ?N�ANQDN�FN�HNKN�MNPN�RNUN�WNZN�\N_N�aN�X�dN�fNiN�kNnN�pNsN�uNxN�zN}N�N�N��N�N��N�NэNQ�NђNQ�NїNQ�NќNQ�NѡNQ�NѦNQ�NѫNQ�NѰNQ�NѵNQ�NѺNQ�NѿNQ�N��NQ�N��NQ�N��NQ�N�N��N�N��N�N��N�N��N�N��N�N��N�N��N�N��N�N��NO�d��OO�O
O�OO�OO�OQO�OQO�OQ"O�$OQ'O�)OQ,O�.OQ1O�3OQ6O�8OQ;O�=OQ@O�BOQEO�GOQJO�LOQOO�QOQTO�VOQYO�[O�]O`O�bOeO�gOjO�lOoO�qOtO�vOyO�{O~O��O�O��O�O��O�O��O�O��O�O��O�O��O�p��OѢOQ�OѧOQ�OѬOQ�OѱOQ�OѶOQ�OѻOQ�O�OQ�O��OQ�O��OQ�O��OQ�O��OQ�O��OQ�O��OQ�O��OQ�O�O��O�O��O�O��O�O��O�O��OP�PP�PP�
PP�PP�PP�PP�!P$P�&P)P�+PQ-P�/PQ2P�4PQ7P�9PQ<P�|��>PQAP�CPQFP�HPQKP�MPQPP�RPQUP�WPQZP�\PQ_P�aPQdP�fPQiP�kPQnP�pP�rPuP�wPzP�|PP��P�P��P�P��P�P��P�P��P�P��P�P��P�P��P�P��P�P��P�P��P�PѷPQ�PѼPQ�P�PQ�P��PQ�P��PQ�P��PQ�P��PQ�P��P���Q�P��PQ�P��PQ�P��PQ�P��PQ�P��PQ�P�PQ�P�P��PQ�QQ�	QQ�QQ�QQ�QQ�Q Q�"Q%Q�'Q*Q�,Q/Q�1Q4Q�6Q9Q�;Q>Q�@QQBQ�DQQGQ�IQQLQ�NQQQQ�SQQVQ�XQQ[Q�]QQ`Q�bQQeQ�gQQjQ�lQQoQ�qQQtQ�vQQyQ����{QQ~QрQQ�QхQ��Q�Q��Q�Q��Q�Q��Q�Q��Q�Q��Q�Q��Q�Q��Q�Q��Q�Q��Q�Q��Q�Q��Q�Q��Q�Q��Q�Q��QQ�Q��QQ�Q��QQ�Q��QQ�Q��QQ�Q��QQ�Q��QQ�Q��QQ�Q��QQ�Q�QQ�Q�QQR�RQR�RQR�
RQRR�RR����RR�R!R�#R&R�(R+R�-R0R�2R5R�7R:R�<R?R�ARDR�FRIR�KRNR�PRSR�URQWR�YRQ\R�^RQaR�cRQfR�hRQkR�mRQpR�rRQuR�wRQzR�|RQRсRQ�RцRQ�RыRQ�RѐRQ�RѕRQ�RњR��R�R��R�R��R�R��R�R��R�R��R����R��R�R��R�R��R�R��R�R��R�R��R�R��R�R��R�R��RQ�R��RQ�R��RQ�R��RQ�R�RQ�R�RQ�R�RQS�SQS�	SQS�SQS�SQS�SQS�SQ S�"SQ%S'S�)S,S�.S1S�3S6S�8S;S�=S@S�BSES�GSJS�LSOS�QSTS����VSYS�[S^S�`ScS�eShS�jSQlS�nSQqS�sSQvS�xSQ{S�}SQ�SтSQ�SчSQ�SьSQ�SёSQ�SіSQ�SћSQ�SѠSQ�SѥSQ�SѪSQ�SѯS��S�S��S�S��S�S��S�S��S�S��S�S��S�S��S�S��S�S��S�S��S�S��S�S��S�S��S�ĕ�S�SQ�S�SQ�S�TQT�TQT�
TQ
T�TQT�TQT�TQT�TQ!T�#TQ&T�(TQ+T�-TQ0T�2TQ5T�7TQ:T<T�>TAT�CTFT�HTKT�MTPT�RTUT�WTZT�\T_T�aTdT�fTiT�kTnT�pTsT�uTxT�zT}T�TQ�TуTQ�TшTQ�TэTQ�T�ЖђTQ�TїTQ�TќTQ�TѡTQ�TѦTQ�TѫTQ�TѰTQ�TѵTQ�TѺTQ�TѿTQ�T��T��T�T��T�T��T�T��T�T��T�T��T�T��T�T��T�T��T�T��T�T��T�T��TU�UU�U
U�UQU�UQU�UQU�UQU�UQ"U�$UQ'U�)UQ,U�.U�ܗQ1U�3UQ6U�8UQ;U�=UQ@U�BUQEU�GUQJU�LUQOUQU�SUVU�XU[U�]U`U�bUeU�gUjU�lUoU�qUtU�vUyU�{U~U��U�U��U�U��U�U��U�U��UQ�UјUQ�UѝUQ�UѢUQ�UѧUQ�UѬUQ�UѱUQ�UѶUQ�UѻUQ�U�UQ�U��UQ�U��UQ�U����UQ�U��UQ�U��U��U�U��U�U��U�U��U�U��U�U��U�U��U�U��UV�VV�VV�
VV�VV�VV�VV� VQ#V�%VQ(V�*VQ-V�/VQ2V�4VQ7V�9VQ<V�>VQAV�CVQFV�HVQKV�MVQPV�RVQUV�WVQZV�\VQ_V�aVQdVfV�hVkV���mVpV�rVuV�wVzV�|VV��V�V��V�V��V�V��V�V��V�V��V�V��V�V��V�V��VQ�VѭVQ�VѲVQ�VѷVQ�VѼVQ�V�VQ�V��VQ�V��VQ�V��VQ�V��VQ�V��VQ�V��VQ�V��VQ�V��VQ�V��V��V�V��V�V��V�V��VW�WW�	W��W�WW�WW�WW�W W�"W%W�'W*W�,W/W�1W4W�5WQ8W�:WQ=W�?WQBW�DWQGW�IWQLW�NWQQW�SWQVW�XWQ[W�]WQ`W�bWQeW�gWQjW�lWQoW�qWQtW�vWQyW{W�}W�W��W�W��W�W��W�W��W�W��W�W��W�W��W�W��W�W����W�W��W�W��W�W��W�W��WQ�W��WQ�W��WQ�W��WQ�W��WQ�W��WQ�W��WQ�W��WQ�W��WQ�W��WQ�W��WQ�W��WQ�W�WQ�W�WQX�X�XX�
X
X�XX�XX�XX�X!X�#X&X�(X+X�-X0X�2X5X�7X:X�<X?X�AXDX�FX��IX�JXQMX�OXQRX�TXQWX�YXQ\X�^XQaX�cXQfX�hXQkX�mXQpX�rXQuX�wXQzX�|XQXсXQ�XцXQ�XыXQ�X�X��X�X��X�X��X�X��X�X��X�X��X�X��X�X��X�X��X�X��X�X��X�X��X�X��X�X��XQ�X��XQ�X��XQ�X��XQ�X�$���XQ�X��XQ�X��XQ�X�XQ�X�XQ�X�XQY�YQY�	YQY�YQY�YQY�Y�YY�Y"Y�$Y'Y�)Y,Y�.Y1Y�3Y6Y�8Y;Y�=Y@Y�BYEY�GYJY�LYOY�QYTY�VYYY�[Y^Y�_YQbY�dYQgY�iYQlY�nYQqY�sYQvY�xYQ{Y�}YQ�YтY�0�Q�YчYQ�YьYQ�YёYQ�YіYQ�YћYQ�YѠYQ�Y�Y��Y�Y��Y�Y��Y�Y��Y�Y��Y�Y��Y�Y��Y�Y��Y�Y��Y�Y��Y�Y��Y�Y��Y�Y��Y�Y��YQ�Y��YQ�Y��YQ�Y�YQ�Y�YQ�Y�ZQZ�ZQZ�
ZQ
Z�ZQZ�ZQZ�ZQZ�ZQ!Z�<��#ZQ&Z�(ZQ+Z�-Z�/Z2Z�4Z7Z�9Z<Z�>ZAZ�CZFZ�HZKZ�MZPZ�RZUZ�WZZZ�\Z_Z�aZdZ�fZiZ�kZnZ�pZsZ�tZQwZ�yZQ|Z�~ZQ�ZуZQ�ZшZQ�ZэZQ�ZђZQ�ZїZQ�ZќZQ�ZѡZQ�ZѦZQ�ZѫZQ�ZѰZQ�ZѵZQ�Z�Z��Z�Z�H���Z�Z��Z�Z��Z�Z��Z�Z��Z�Z��Z�Z��Z�Z��Z�Z��Z�Z��Z�Z��Z�Z��Z�Z��ZQ�Z�[Q[�[Q	[�[Q[�[Q[�[Q[�[Q[�[Q"[�$[Q'[�)[Q,[�.[Q1[�3[Q6[�8[Q;[�=[Q@[�B[�D[G[�I[L[�N[Q[�S[V[�X[[[�][�T�`[�b[e[�g[j[�l[o[�q[t[�v[y[�{[~[��[�[��[�[щ[Q�[ю[Q�[ѓ[Q�[ј[Q�[ѝ[Q�[Ѣ[Q�[ѧ[Q�[Ѭ[Q�[ѱ[Q�[Ѷ[Q�[ѻ[Q�[�[Q�[��[Q�[��[Q�[�[��[�[��[�[��[�[��[�[��[�[��[�[��[�[��[�[��[�[�`���[\�\\�\\�
\\�\Q\�\Q\�\Q\� \Q#\�%\Q(\�*\Q-\�/\Q2\�4\Q7\�9\Q<\�>\QA\�C\QF\�H\QK\�M\QP\�R\QU\�W\�Y\\\�^\a\�c\f\�h\k\�m\p\�r\u\�w\z\�|\\��\�\��\�\��\�\��\�\��\�\��\�l��\ў\Q�\ѣ\Q�\Ѩ\Q�\ѭ\Q�\Ѳ\Q�\ѷ\Q�\Ѽ\Q�\�\Q�\��\Q�\��\Q�\��\Q�\��\Q�\��\Q�\��\Q�\�\��\�\��\�\��\�\��\�\��\�\��\]�]]�	]]�]]�]]�]]�] ]�"]%]�']Q)]�+]Q.]�0]Q3]�5]Q8]�x��:]Q=]�?]QB]�D]QG]�I]QL]�N]QQ]�S]QV]�X]Q[]�]]Q`]�b]Qe]�g]Qj]�l]�n]q]�s]v]�x]{]�}]�]��]�]��]�]��]�]��]�]��]�]��]�]��]�]��]�]��]�]��]�]ѳ]Q�]Ѹ]Q�]ѽ]Q�]��]Q�]��]Q�]��]Q�]��]Q�]��]���Q�]��]Q�]��]Q�]��]Q�]��]Q�]��]Q�]��]Q�]�]��]�]�^^�^^�
^
^�^^�^^�^^�^!^�#^&^�(^+^�-^0^�2^5^�7^:^�<^Q>^�@^QC^�E^QH^�J^QM^�O^QR^�T^QW^�Y^Q\^�^^Qa^�c^Qf^�h^Qk^�m^Qp^�r^Qu^����w^Qz^�|^Q^с^��^�^��^�^��^�^��^�^��^�^��^�^��^�^��^�^��^�^��^�^��^�^��^�^��^�^��^�^��^Q�^��^Q�^��^Q�^��^Q�^��^Q�^��^Q�^��^Q�^��^Q�^��^Q�^�^Q�^�^Q�^�^Q_�_Q_�	_Q__�__����g�h�i�j�k�l�mopq$r0s<tHuTv`wlxxy�z�{�|�}�~�̀؁������ �,�8�D�P�\�h�t�������������Ȗԗ�������(�4�@�L�X�d�p�|�����������__�__�_"_�$_'_�)_,_�._1_�3_6_�8_;_�=_@_�B_E_�G_J_�L_O_�Q_QS_�U_QX_�Z_Q]_�__Qb_�d_Qg_�i_Ql_�n_Qq_�s_Qv_�x_Q{_�}_Q�_т_Q�_ч_Q�_ь_Q�_ё_Q�_і_��_�_��_�_��_�_��_�_��_�_��_����_��_�_��_�_��_�_��_�_��_�_��_�_��_�_��_�_��_Q�_��_Q�_��_Q�_��_Q�_��_Q�_�_Q�_�_Q�_�`Q`�`Q`�
`Q
`�`Q`�`Q`�`Q`�`Q!`#`�%`(`�*`-`�/`2`�4`7`�9`<`�>`A`�C`F`�H`K`�M`P`����R`U`�W`Z`�\`_`�a`d`�f`Qh`�j`Qm`�o`Qr`�t`Qw`�y`Q|`�~`Q�`у`Q�`ш`Q�`э`Q�`ђ`Q�`ї`Q�`ќ`Q�`ѡ`Q�`Ѧ`Q�`ѫ`��`�`��`�`��`�`��`�`��`�`��`�`��`�`��`�`��`�`��`�`��`�`��`�`��`�`��`�̬�`��`Q�`�`Q�`�`Q�`�aQa�aQ	a�aQa�aQa�aQa�aQa�aQ"a�$aQ'a�)aQ,a�.aQ1a�3aQ6a8a�:a=a�?aBa�DaGa�IaLa�NaQa�SaVa�Xa[a�]a`a�baea�gaja�laoa�qata�vaya�{aQ}a�aQ�aфaQ�aщaQ�a�حюaQ�aѓaQ�aјaQ�aѝaQ�aѢaQ�aѧaQ�aѬaQ�aѱaQ�aѶaQ�aѻaQ�a�a��a�a��a�a��a�a��a�a��a�a��a�a��a�a��a�a��a�a��a�a��a�a��a�a��ab�bb�bQ
b�bQb�bQb�bQb�bQb� bQ#b�%bQ(b�*b��Q-b�/bQ2b�4bQ7b�9bQ<b�>bQAb�CbQFb�HbQKbMb�ObRb�TbWb�Yb\b�^bab�cbfb�hbkb�mbpb�rbub�wbzb�|bb��b�b��b�b��b�b��bQ�bєbQ�bљbQ�bўbQ�bѣbQ�bѨbQ�bѭbQ�bѲbQ�bѷbQ�bѼbQ�b�bQ�b��bQ�b����bQ�b��bQ�b��b��b�b��b�b��b�b��b�b��b�b��b�b��b�b��b�b��bc�cc�	cc�cc�cc�cc�cQc�!cQ$c�&cQ)c�+cQ.c�0cQ3c�5cQ8c�:cQ=c�?cQBc�DcQGc�IcQLc�NcQQc�ScQVc�XcQ[c�]cQ`cbc�dcgc����iclc�ncqc�scvc�xc{c�}c�c��c�c��c�c��c�c��c�c��c�c��c�c��c�c��cQ�cѩcQ�cѮcQ�cѳcQ�cѸcQ�cѽcQ�c��cQ�c��cQ�c��cQ�c��cQ�c��cQ�c��cQ�c��cQ�c��cQ�c��c��c�c��c�c��c�c��c�c�dd�d��d�
d
d�dd�dd�dd�d!d�#d&d�(d+d�-d0d�1dQ4d�6dQ9d�;dQ>d�@dQCd�EdQHd�JdQMd�OdQRd�TdQWd�YdQ\d�^dQad�cdQfd�hdQkd�mdQpd�rdQudwd�yd|d�~d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d����d�d��d�d��d�d��d�d��dQ�dѾdQ�d��dQ�d��dQ�d��dQ�d��dQ�d��dQ�d��dQ�d��dQ�d��dQ�d��dQ�d��dQ�d�dQ�d�dQ�d�d�ee�e	e�ee�ee�ee�ee�e"e�$e'e�)e,e�.e1e�3e6e�8e;e�=e@e�Be� �Ee�FeQIe�KeQNe�PeQSe�UeQXe�ZeQ]e�_eQbe�deQge�ieQle�neQqe�seQve�xeQ{e�}eQ�eтeQ�eчeQ�e�e��e�e��e�e��e�e��e�e��e�e��e�e��e�e��e�e��e�e��e�e��e�e��e�e��e�e��eQ�e��eQ�e��eQ�e��eQ�e�,���eQ�e��eQ�e��eQ�e��eQ�e�eQ�e�eQ�e�fQf�fQf�
fQ
f�fQf�f�ff�ff� f#f�%f(f�*f-f�/f2f�4f7f�9f<f�>fAf�CfFf�HfKf�MfPf�RfUf�WfZf�[fQ^f�`fQcf�efQhf�jfQmf�ofQrf�tfQwf�yfQ|f�~f�8�Q�fуfQ�fшfQ�fэfQ�fђfQ�fїfQ�fќfQ�f�f��f�f��f�f��f�f��f�f��f�f��f�f��f�f��f�f��f�f��f�f��f�f��f�f��f�f��fQ�f��fQ�f��fQ�f��fQ�f�fQ�f�fQ�f�gQg�gQ	g�gQg�gQg�gQg�gQg�D��gQ"g�$gQ'g�)g�+g.g�0g3g�5g8g�:g=g�?gBg�DgGg�IgLg�NgQg�SgVg�Xg[g�]g`g�bgeg�ggjg�lgog�pgQsg�ugQxg�zgQ}g�gQ�gфgQ�gщgQ�gюgQ�gѓgQ�gјgQ�gѝgQ�gѢgQ�gѧgQ�gѬgQ�gѱgQ�g�g��g�g�P���g�g��g�g��g�g��g�g��g�g��g�g��g�g��g�g��g�g��g�g��g�g��g�g��gQ�g�gQh�hQh�hQ
h�hQh�hQh�hQh�hQh� hQ#h�%hQ(h�*hQ-h�/hQ2h�4hQ7h�9hQ<h�>h�@hCh�EhHh�JhMh�OhRh�ThWh�Yh�\�\h�^hah�chfh�hhkh�mhph�rhuh�whzh�|hh��h�hхhQ�hъhQ�hяhQ�hєhQ�hљhQ�hўhQ�hѣhQ�hѨhQ�hѭhQ�hѲhQ�hѷhQ�hѼhQ�h�hQ�h��hQ�h�h��h�h��h�h��h�h��h�h��h�h��h�h��h�h��h�h��h�h�h���h�h��hi�ii�	ii�iQi�iQi�iQi�iQi�!iQ$i�&iQ)i�+iQ.i�0iQ3i�5iQ8i�:iQ=i�?iQBi�DiQGi�IiQLi�NiQQi�Si�UiXi�Zi]i�_ibi�digi�iili�niqi�sivi�xi{i�}i�i��i�i��i�i��i�i��i�i��i�t��iњiQ�iџiQ�iѤiQ�iѩiQ�iѮiQ�iѳiQ�iѸiQ�iѽiQ�i��iQ�i��iQ�i��iQ�i��iQ�i��iQ�i��iQ�i�i��i�i��i�i��i�i��i�i��i�i��i�i�jj�jj�
j
j�jj�jj�jj�j!j�#jQ%j�'jQ*j�,jQ/j�1jQ4j����6jQ9j�;jQ>j�@jQCj�EjQHj�JjQMj�OjQRj�TjQWj�YjQ\j�^jQaj�cjQfj�hj�jjmj�ojrj�tjwj�yj|j�~j�j��j�j��j�j��j�j��j�j��j�j��j�j��j�j��j�j��j�jѯjQ�jѴjQ�jѹjQ�jѾjQ�j��jQ�j��jQ�j��jQ�j��j���Q�j��jQ�j��jQ�j��jQ�j��jQ�j��jQ�j��jQ�j�j��j�j��j�j�kk�k	k�kk�kk�kk�kk�k"k�$k'k�)k,k�.k1k�3k6k�8kQ:k�<kQ?k�AkQDk�FkQIk�KkQNk�PkQSk�UkQXk�ZkQ]k�_kQbk�dkQgk�ikQlk�nkQqk����skQvk�xkQ{k�}k�k�k��k�k��k�k��k�k��k�k��k�k��k�k��k�k��k�k��k�k��k�k��k�k��k�k��k�k��kQ�k��kQ�k��kQ�k��kQ�k��kQ�k��kQ�k��kQ�k��kQ�k��kQ�k��kQ�k�kQ�k�kQ�k�lQl�lQl
l�ll����ll�ll�ll� l#l�%l(l�*l-l�/l2l�4l7l�9l<l�>lAl�ClFl�HlKl�MlQOl�QlQTl�VlQYl�[lQ^l�`lQcl�elQhl�jlQml�olQrl�tlQwl�ylQ|l�~lQ�lуlQ�lшlQ�lэlQ�lђl��l�l��l�l��l�l��l�l��l�l��l����l��l�l��l�l��l�l��l�l��l�l��l�l��l�l��l�l��lQ�l��lQ�l��lQ�l��lQ�l��lQ�l��lQ�l�lQ�l�lQ�l�mQm�mQ	m�mQm�mQm�mQm�mQmm�!m$m�&m)m�+m.m�0m3m�5m8m�:m=m�?mBm�DmGm�ImLm����NmQm�SmVm�Xm[m�]m`m�bmQdm�fmQim�kmQnm�pmQsm�umQxm�zmQ}m�mQ�mфmQ�mщmQ�mюmQ�mѓmQ�mјmQ�mѝmQ�mѢmQ�mѧm��m�m��m�m��m�m��m�m��m�m��m�m��m�m��m�m��m�m��m�m��m�m��m�m��m�m��m����m��mQ�m��mQ�m�mQ�m�mQn�nQn�nQ
n�nQn�nQn�nQn�nQn� nQ#n�%nQ(n�*nQ-n�/nQ2n4n�6n9n�;n>n�@nCn�EnHn�JnMn�OnRn�TnWn�Yn\n�^nan�cnfn�hnkn�mnpn�rnun�wnQyn�{nQ~nрnQ�nхnQ�n���ъnQ�nяnQ�nєnQ�nљnQ�nўnQ�nѣnQ�nѨnQ�nѭnQ�nѲnQ�nѷnQ�nѼn��n�n��n�n��n�n��n�n��n�n��n�n��n�n��n�n��n�n��n�n��n�n��n�n��n�n��no�oQo�oQo�
oQo�oQo�oQo�oQo�!oQ$o�&o���Q)o�+oQ.o�0oQ3o�5oQ8o�:oQ=o�?oQBo�DoQGoIo�KoNo�PoSo�UoXo�Zo]o�_obo�dogo�iolo�noqo�sovo�xo{o�}o�o��o�o��o�o��oQ�oѐoQ�oѕoQ�oњoQ�oџoQ�oѤoQ�oѩoQ�oѮoQ�oѳoQ�oѸoQ�oѽoQ�o��oQ�o�����oQ�o��oQ�o��o��o�o��o�o��o�o��o�o��o�o��o�o��o�o��o�o��o�o�pp�pp�
p
p�pp�pp�pQp�pQ p�"pQ%p�'pQ*p�,pQ/p�1pQ4p�6pQ9p�;pQ>p�@pQCp�EpQHp�JpQMp�OpQRp�TpQWp�YpQ\p^p�`pcp����ephp�jpmp�oprp�tpwp�yp|p�~p�p��p�p��p�p��p�p��p�p��p�p��p�p��pQ�pѥpQ�pѪpQ�pѯpQ�pѴpQ�pѹpQ�pѾpQ�p��pQ�p��pQ�p��pQ�p��pQ�p��pQ�p��pQ�p��pQ�p��p��p�p��p�p��p�p��p�p��p�p�q��q�q	q�qq�qq�qq�qq�q"q�$q'q�)q,q�-qQ0q�2qQ5q�7qQ:q�<qQ?q�AqQDq�FqQIq�KqQNq�PqQSq�UqQXq�ZqQ]q�_qQbq�dqQgq�iqQlq�nqQqqsq�uqxq�zq}q�q�q��q�q��q�q��q�q��q�q��q�q��q�q���q��q�q��q�q��q�q��q�q��qQ�q��qQ�q��qQ�q��qQ�q��qQ�q��qQ�q��qQ�q��qQ�q��qQ�q�qQ�q�qQ�q�qQr�rQr�	r�����ĬЭܮ�����$�0�<�H�T�`�l�x���������������������������1���Q%r�&r�'r)rQ*r,r�-r/rQ0r�1r�2r4rQ5r�6r�7r9rQ:r�;r�<r>rQ?rS�H�QrQRr�Sr�TrVrQWr�Xr�Yr[rQ\r�]r�^r`r�����������P����	 �(�0�8���@������X���,`�8T@P��"�f��@����H��P����������$��������������������������F��ÀÁÂÃĀĂȦÄẢÅǍȀȂẠḀĄ=�H���h���ḂḄḆk�����h���ĆĈĊČÇ������h���ḊĎḌḐḒḎ�����h� �ÈÉÊẼĒĔĖËẺĚȄȆẸȨĘḘḚ��0�x�h���Ḟ!�����h���ǴĜḠĞĠǦĢ$�����h���ĤḢḦȞḤḨḪM����h��ÌÍÎĨĪĬİÏỈǏȈȊỊĮḬ|� �`�h�h�Ĵ��x���h���ḰǨḲĶḴ������h���ĹĽḶĻḼḺ������h���ḾṀṂ����h��ǸŃÑṄŇṆŅṊṈ=�$�L�h�T�ÒÓÔÕŌŎȮÖỎŐǑȌȎƠỌǪq�d���h���ṔṖ������h���ŔṘŘȐȒṚŖṞ�����h��ŚŜṠŠṢȘŞ�� �@�h�H�ṪŤṬȚŢṰṮ�X�x�h���ÙÚÛŨŪŬÜỦŮŰǓȔȖƯỤṲŲṶṴ.�����h���ṼṾa����h��ẀẂŴẆẄẈ���8�h�@�ẊẌ��P�\�h�d�ỲÝŶỸȲẎŸỶỴ��t���h���ŹẐŻŽẒẔ������h���àáâãāăȧäảåǎȁȃạḁą=���,�h�4�ḃḅḇk�D�T�h�\�ćĉċčç��l���h���ḋďḍḑḓḏ������h���èéêẽēĕėëẻěȅȇẹȩęḙḛ�����h� �ḟ!�0�8�h�@�ǵĝḡğġǧģ$�P�p�h�x�ĥḣḧȟḥḩḫẖ�����h���ìíîĩīĭïỉǐȉȋịįḭ9����h��ĵǰl��$�h�,�ḱǩḳķḵ��<�T�h�\�ĺľḷļḽḻ��l���h���ḿṁṃ�����h���ǹńñṅňṇņṋṉ=�����h���òóôõōŏȯöỏőǒȍȏơọǫq��L�h�T�ṕṗ��d�p�h�x�ŕṙřȑȓṛŗṟ������h���śŝṡšṣșş������h���ṫẗťṭțţṱṯy��� �h�(�ùúûũūŭüủůűǔȕȗưụṳųṷṵ.�8���h���ṽṿa�����h���ẁẃŵẇẅẘẉ������h���ẋẍ�����h��ỳýŷỹȳẏÿỷẙỵ�� �L�h�T�źẑżžẓẕ��d���h���῭΅����῁������������������ẦẤẪẨ������h���Ǟ	���h��Ǻ�,�4�h�<�ǼǢ�L�X�h�`�Ḉ�p�x�h���ỀẾỄỂ������h���Ḯ�����h���ỒỐỖỔ������h���ṌȬṎ���h� �Ȫ	�0�8�h�@�Ǿ�P�X�h�`�ǛǗǕǙ�p���h���ầấẫẩ������h���ǟ	�����h���ǻ�����h���ǽǣ���h��ḉ�,�4�h�<�ềếễể��L�`�h�h�ḯ�x���h���ồốỗổ������h���ṍȭṏ�����h���ȫ	�����h���ǿ���h��ǜǘǖǚ�,�@�h�H��$�D�h��������(�H�h��������$�D�p��������$�P�.�X�ẰẮẴẲ������h���ằắẵẳ�����h��ḔḖ���(�h�0�ḕḗ��@�L�h�T����8�\�k�d�ṐṒ������h���ṑṓ������h���Ṥ!�����h���ṥ!�����h���Ṧ!���h��ṧ!�(�0�h�8�Ṹ�H�P�h�X�ṹ�h�p�h�x�Ṻ�����h���ṻ�����h���ẛ!�����h���������� �@�`�������������ỜỚỠỞỢ�� �8�h�@�ờớỡởợ��P�h�h�p�ỪỨỮỬỰ������h���ừứữửự������h���Ǯ������h���H�x����������Ǭ	� �(�h�0�ǭ	�@�H�h�P�8�X���`�Ǡ	�t�|�h���ǡ	�����h���Ḝ������h���ḝ������h���Ȱ	�����h��ȱ	���h�$����������,��4�ǯ��X�`�h�h�p��x�ᾺΆᾹᾸἈἉ���ᾼ(�����������ῈΈἘἙ+�����h���ῊΉἨἩ+���ῌ(��� ���(�ῚΊῙῘΪἸἹB�<�\�h�d�ῸΌὈὉ+�t���h���ῬY�����h���ῪΎῩῨΫὙ\�����h���ῺΏὨὩ+���ῼ(������ �ᾴ(�4�<�s�D�ῄ(�T�\�s�d�ὰάᾱᾰἀἁ�t�ᾶᾳv�����������ὲέἐἑ+�����h���ὴήἠἡ+���ῆῃv�������ὶίῑῐϊἰἱB�0�ῖ��X�P�`���h�ὸόὀὁ+�|���h�������4�l�������,�L�l�����(�t���|���ῤῥ������h��ὺύῡῠϋὐὑB��ῦ��<�4�D���L�ὼώὠὡ+�`�ῶῳv�|�t�������ῒ����ῗ������������ῢ����ῧ������������ῴ(���s��ϓϔ��,�8�h�@��X������$�H���P�Ї�x���h���ӐӒ������h���Ѓ�����h���ЀӖЁ������h���ӁӜ����h��Ӟ�(�0�h�8�ЍӢЙӤ��H�\�h�d�Ќ�t�|�h���Ӧ�����h���ӮЎӰӲ������h���Ӵ�����h���Ӹ���h��Ӭ� �(�h�0�ӑӓ��@�L�h�T�ѓ�d�l�h�t�ѐӗё������h���ӂӝ������h���ӟ�����h���ѝӣйӥ�����h��ќ��$�h�,�ӧ�<�D�h�L��������� �@�l����������8�\�|��������4�T���\�ӯўӱӳ������h���ӵ�����h���ӹ���h��ӭ�(�0�h�8�ї�H�P�h�X�Ѷ2�h�p�h�x�ѷ2�����h������ �@�`�����5���Ӛ�����h���ӛ�����h��Ӫ���h� �ӫ�0�8�h�@����(�H�j�P�آأإ~�l�|�����������ؤY���������ئY�����������������ۂY�������ۓY�� ���(�ۀY�8�@���H��0�P���X�ऩ��p�x�����������ऱ����������������ऴ�������������������������ো���ৌ��(� �0���8�D���L�T�!�\�ୋ��l�ୈୌ��|�t���������������!���ஔ���������������������ொ���ௌ�������$�0���8�ோ��H�P���X�`���h�@�p���x�ై����������������������ೀ����������������������ೊೇೈ������$�,���4�ೋ��D�L���T�\���d�<�l��t�ൊ����ൌ��������	���������ോ������
�����������������ේොෞ�� �(�(�0���8�ෝ+�H�P�(�X�`���h�@�p�.�x��d���������������4���ဦ������������J�����M���가개갸걔거게겨계고과괘괴교구궈궤귀규그긔기P��X�(�`�h�J�p�까깨꺄꺠꺼께껴꼐꼬꽈꽤꾀꾜꾸꿔꿰뀌뀨끄끠끼P�����(�����J���나내냐냬너네녀녜노놔놰뇌뇨누눠눼뉘뉴느늬니P��X�(�`�h�J�p�다대댜댸더데뎌뎨도돠돼되됴두둬뒈뒤듀드듸디P�����(�����J���따때땨떄떠떼뗘뗴또똬뙈뙤뚀뚜뚸뛔뛰뜌뜨띄띠P��X�(�`�h�J�p�라래랴럐러레려례로롸뢔뢰료루뤄뤠뤼류르릐리P�����(�����J���마매먀먜머메며몌모뫄뫠뫼묘무뭐뭬뮈뮤므믜미P��X�(�`�h�J�p�바배뱌뱨버베벼볘보봐봬뵈뵤부붜붸뷔뷰브븨비P�����(�����J���빠빼뺘뺴뻐뻬뼈뼤뽀뽜뽸뾔뾰뿌뿨쀄쀠쀼쁘쁴삐P��X�(�`�h�J�p�사새샤섀서세셔셰소솨쇄쇠쇼수숴쉐쉬슈스싀시P����(���J��싸쌔쌰썌써쎄쎠쎼쏘쏴쐐쐬쑈쑤쒀쒜쒸쓔쓰씌씨P��X�(�`�h�J�p�아애야얘어에여예오와왜외요우워웨위유으의이P����(���J��자재쟈쟤저제져졔조좌좨죄죠주줘줴쥐쥬즈즤지P��X�(�`�h�J�p�짜째쨔쨰쩌쩨쪄쪠쪼쫘쫴쬐쬬쭈쭤쮀쮜쮸쯔쯰찌P����(���J��차채챠챼처체쳐쳬초촤쵀최쵸추춰췌취츄츠츼치P��X�(�`�h�J�p�카캐캬컈커케켜켸코콰쾌쾨쿄쿠쿼퀘퀴큐크킈키P����(���J��타태탸턔터테텨톄토톼퇘퇴툐투퉈퉤튀튜트틔티P��X�(�`�h�J�p�파패퍄퍠퍼페펴폐포퐈퐤푀표푸풔풰퓌퓨프픠피P����(���J��하해햐햬허헤혀혜호화홰회효후훠훼휘휴흐희히P��X�(�`�h�J�p�x���x���x���x���x���x���x���x���x���x�g���Ḹ	���h��ḹ	����h����|��Ṝ	�,�4�h�<�ṝ	�L�T�h�\�Ṩ!�l�t�h�|�ṩ!�����h���D�d���������ẬẶ����h��ậặ�����h��Ệ����h� �ệ��0�8�h�@���(�H���P�Ộ��l�t�h�|�ộ������h�����������ἂἄ����ἆᾀv�������ἃἅ����ἇᾁv������$�ᾂ(�8�@�s�H�ᾃ(�X�`�s�h�ᾄ(�x���s���ᾅ(�����s���ᾆ(�����s��ᾇ(���s��ἊἌ����Ἆᾈv������ �ἋἍ��4�Ἇᾉv�H�@�T���\�ᾊ(�p�x�s���ᾋ(�����s���ᾌ(�����s���ᾍ(���s��ᾎ(����s��ᾏ(���s� �ἒἔ��0�<�h�D�ἓἕ��T�`�h�h�ἚἜ��x���h���ἛἝ������h���ἢἤ����ἦᾐv�������ἣἥ����ἧᾑv���$ᾒ(�8@s�Hᾓ(�X`s�hᾔ(�x�s��ᾕ(���s��ᾖ(���s��ᾗ(���s��ἪἬ���Ἦᾘv��� ἫἭ��4Ἧᾙv�H@T��\ᾚ(�pxs��ᾛ(���s��ᾜ(���s��ᾝ(���s��ᾞ(���s�ᾟ(�s� ἲἴ��0ἶ��D<L��Tἳἵ��hἷ��|t����ἺἼ���Ἶ��������ἻἽ���Ἷ���������0�P�p�������,�h��������(�L�p������0Pp����,h����(`����ὂὄ����h��ὃὅ����h��ὊὌ��h�ὋὍ��(4h�<ὒὔ��Lὖ��`Xh��pὓὕ���ὗ��������ὛὝ���Ὗ��������ὢὤ���ὦᾠv���ὣὥ��0ὧᾡv�D<P��Xᾢ(�lts�|ᾣ(���s��ᾤ(���s��ᾥ(���s��ᾦ(���s��ᾧ(�s�ὪὬ��,Ὦᾨv�@8L��TὫὭ��hὯᾩv�|t����ᾪ(���s��ᾫ(���s��ᾬ(���s��ᾭ(�s�ᾮ(�$,s�4ᾯ(�DLs�Tᾲ(�dls�tῂ(���s��ῲ(���s���� D|��(d����$`����<\|�����ᾷ(�8@s�H῍῎��X῏��ldt��|P�.��ῇ(���s��ῷ(���s��῝῞���῟����	��	��	:�	���$���d����0�,	u�4	ゔ��h	p	��x	�	���	が���	�	���	�	���	ぎ���	�	���	�	���	ぐ���	
��

��
げ��(
0
��8
@
��H
ご��X
`
��h
p
��x
ざ���
�
���
�
���
じ���
�
���
�
���
ず���
�
���
��ぜ�� ��(0��8ぞ��HP��X`��hだ��x��������ぢ�����������づ�����������で���� ��(ど��8@��HP��Xばぱ��ht��|����びぴ�����������ぶぷ�����������べぺ��

��
 
��(
ぼぽ��8
D
��L
T
��\
�	�	�	 
P
�
�
�
@p��0`���0
d
��l
ゞ���
�
���
�
���
ヴ���
����ガ��,4��<D��Lギ��\d��lt��|グ�����������ゲ�����������ゴ���������ザ��$��,4��<ジ��LT��\d��lズ��|��������ゼ�����������ゾ�����������ダ����$��,�
$T���Dt��4��<ヂ��|��������ヅ�����������デ�����������ド����$��,バパ��<H��PX��`ビピ��p|�������ブプ�����������ベペ�����������ボポ���� (��0ヷ��@H��PX��`ヸ��px�������ヹ�����������ヺ�����������ヾ������ ��4h��8h���(�0�
tl]�t각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘b��같갚갛|�����J�$객갞갟갠갡갢갣갤갥갦갧갨갩갪갫갬갭갮갯갰갱갲갳갴b�4갵갶갷|��������J��갹갺갻갼갽갾갿걀걁걂걃걄걅걆걇걈걉걊걋걌걍걎걏걐b��걑걒걓|�H@X��`lJ�t,�|���걕걖걗걘걙걚걛걜걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬b��걭걮걯|��� ,J�4걱걲걳건걵걶걷걸걹걺걻걼걽걾걿검겁겂것겄겅겆겇겈b�D겉겊겋|��������J��<����겍겎겏겐겑겒겓겔겕겖겗겘겙겚겛겜겝겞겟겠겡겢겣겤b�겥겦겧|�ld|����J��격겪겫견겭겮겯결겱겲겳겴겵겶겷겸겹겺겻겼경겾겿곀b��곁곂곃|�$��,8J�@�H��P곅곆곇곈곉곊곋곌곍곎곏곐곑곒곓곔곕곖곗곘곙곚곛곜b�d곝곞곟|��������J��곡곢곣곤곥곦곧골곩곪곫곬곭곮곯곰곱곲곳곴공곶곷곸b�곹곺곻|�xp�����J��곽곾곿관괁괂괃괄괅괆괇괈괉괊괋괌괍괎괏괐광괒괓괔b��괕괖괗|� 0��8DJ�L�T��\괙괚괛괜괝괞괟괠괡괢괣괤괥괦괧괨괩괪괫괬괭괮괯괰b�t괱괲괳|�������J�괵괶괷괸괹괺괻괼괽괾괿굀굁굂굃굄굅굆굇굈굉굊굋굌b�굍굎굏|��������J���5��굑굒굓굔굕굖굗굘굙굚굛굜굝굞굟굠굡굢굣굤굥굦굧굨b��굩굪굫|�D<T��\hJ�p국굮굯군굱굲굳굴굵굶굷굸굹굺굻굼굽굾굿궀궁궂궃궄b��궅궆궇|������J�x T�(궉궊궋권궍궎궏궐궑궒궓궔궕궖궗궘궙궚궛궜궝궞궟궠b�<궡궢궣|��������J��궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궷궸궹궺궻궼b��궽궾궿|�PH`��htJ�|��s��귁귂귃귄귅귆귇귈귉귊귋귌귍귎귏귐귑귒귓귔귕귖귗귘b��귙귚귛|���$0J�8귝귞귟균귡귢귣귤귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴b�H귵귶귷|��������J��극귺귻근귽귾귿글긁긂긃긄긅긆긇금급긊긋긌긍긎긏긐b��긑긒긓|�\ T l ��t � J�� @�� ��� 긕긖긗긘긙긚긛긜긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬b�� 긭긮긯|�!!,!��4!@!J�H!긱긲긳긴긵긶긷길긹긺긻긼긽긾긿김깁깂깃깄깅깆깇깈b�X!깉깊깋|��!�!�!���!�!J��!P!�!��"깍깎깏깐깑깒깓깔깕깖깗깘깙깚깛깜깝깞깟깠깡깢깣깤b�"깥깦깧|��"x"�"���"�"J��"깩깪깫깬깭깮깯깰깱깲깳깴깵깶깷깸깹깺깻깼깽깾깿꺀b��"꺁꺂꺃|�(# #8#��@#L#J�T#�"\#��d#꺅꺆꺇꺈꺉꺊꺋꺌꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜b�x#꺝꺞꺟|��#�#�#���#$J�$꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸b� $꺹꺺꺻|��$�$�$���$�$J��$꺽꺾꺿껀껁껂껃껄껅껆껇껈껉껊껋껌껍껎껏껐껑껒껓껔b��$껕껖껗|�4%,%D%��L%X%J�`%$�$h%��p%껙껚껛껜껝껞껟껠껡껢껣껤껥껦껧껨껩껪껫껬껭껮껯껰b��%껱껲껳|��%�%&��&&J� &껵껶껷껸껹껺껻껼껽껾껿꼀꼁꼂꼃꼄꼅꼆꼇꼈꼉꼊꼋꼌b�0&꼍꼎꼏|��&�&�&���&�&J��&(&�&5��&꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣꼤꼥꼦꼧꼨b��&꼩꼪꼫|�X'P'h'��p'|'J��'꼭꼮꼯꼰꼱꼲꼳꼴꼵꼶꼷꼸꼹꼺꼻꼼꼽꼾꼿꽀꽁꽂꽃꽄b��'꽅꽆꽇|�(�'(��($(J�,(�'4(T�<(꽉꽊꽋꽌꽍꽎꽏꽐꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽜꽝꽞꽟꽠b�P(꽡꽢꽣|��(�(�(���(�(J��(꽥꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽹꽺꽻꽼b��(꽽꽾꽿|�d)\)t)��|)�)J��)�(�)s��)꾁꾂꾃꾄꾅꾆꾇꾈꾉꾊꾋꾌꾍꾎꾏꾐꾑꾒꾓꾔꾕꾖꾗꾘b��)꾙꾚꾛|� **0*��8*D*J�L*꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴b�\*꾵꾶꾷|��*�*�*���*�*J��*꾹꾺꾻꾼꾽꾾꾿꿀꿁꿂꿃꿄꿅꿆꿇꿈꿉꿊꿋꿌꿍꿎꿏꿐b�+꿑꿒꿓|�p+h+�+���+�+J��+T*�*�+���+꿕꿖꿗꿘꿙꿚꿛꿜꿝꿞꿟꿠꿡꿢꿣꿤꿥꿦꿧꿨꿩꿪꿫꿬b��+꿭꿮꿯|�0,(,@,��H,T,J�\,꿱꿲꿳꿴꿵꿶꿷꿸꿹꿺꿻꿼꿽꿾꿿뀀뀁뀂뀃뀄뀅뀆뀇뀈b�l,뀉뀊뀋|��,�,�,���,�,J�-d,-��-��\l�4�� "p#�%�&H(�)�+ -��(-뀍뀎뀏뀐뀑뀒뀓뀔뀕뀖뀗뀘뀙뀚뀛뀜뀝뀞뀟뀠뀡뀢뀣뀤b�t-뀥뀦뀧|��-�-�-���-.J�.뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀b�.끁끂끃|��.�.�.���.�.J��..�.���.끅끆끇끈끉끊끋끌끍끎끏끐끑끒끓끔끕끖끗끘끙끚끛끜b��.끝끞끟|�D/</T/��\/h/J�p/끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸b��/끹끺끻|��/�/�/��00J�0끽끾끿낀낁낂낃낄낅낆낇낈낉낊낋낌낍낎낏낐낑낒낓낔b�(0낕낖낗|��0�0�0���0�0J��0x/ 0�0���0낙낚낛난낝낞낟날낡낢낣낤낥낦낧남납낪낫났낭낮낯낰b��0낱낲낳|�T1L1d1��l1x1J��1낵낶낷낸낹낺낻낼낽낾낿냀냁냂냃냄냅냆냇냈냉냊냋냌b��1냍냎냏|��1�12��2 2J�(2�1025�82냑냒냓냔냕냖냗냘냙냚냛냜냝냞냟냠냡냢냣냤냥냦냧냨b�L2냩냪냫|��2�2�2���2�2J��2냭냮냯냰냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄b��2넅넆넇|�`3X3p3��x3�3J��3�2�3T��3넉넊넋넌넍넎넏널넑넒넓넔넕넖넗넘넙넚넛넜넝넞넟넠b��3넡넢넣|�44,4��44@4J�H4넥넦넧넨넩넪넫넬넭넮넯넰넱넲넳넴넵넶넷넸넹넺넻넼b�X4넽넾넿|��4�4�4���4�4J��4P4�4s�5녁녂녃년녅녆녇녈녉녊녋녌녍녎녏념녑녒녓녔녕녖녗녘b�5녙녚녛|��5x5�5���5�5J��5녝녞녟녠녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴b��5녵녶녷|�(6 686��@6L6J�T6녹녺녻논녽녾녿놀놁놂놃놄놅놆놇놈놉놊놋놌농놎놏놐b�d6놑높놓|��6�6�6���6�6J��6�5\67��7놕놖놗놘놙놚놛놜놝놞놟놠놡놢놣놤놥놦놧놨놩놪놫놬b�$7놭놮놯|��7�7�7���7�7J��7놱놲놳놴놵놶놷놸놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈b��7뇉뇊뇋|�8808H8��P8\8J�d8�7l8��t8뇍뇎뇏뇐뇑뇒뇓뇔뇕뇖뇗뇘뇙뇚뇛뇜뇝뇞뇟뇠뇡뇢뇣뇤b��8뇥뇦뇧|��8�89��99J� 9뇩뇪뇫뇬뇭뇮뇯뇰뇱뇲뇳뇴뇵뇶뇷뇸뇹뇺뇻뇼뇽뇾뇿눀b�09눁눂눃|��9�9�9���9�9J��9(9�9���9눅눆눇눈눉눊눋눌눍눎눏눐눑눒눓눔눕눖눗눘눙눚눛눜b��9눝눞눟|�X:P:h:��p:|:J��:눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸b��:눹눺눻|�;�:;��;$;J�,;눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔b�<;뉕뉖뉗|��;�;�;���;�;J��;�:4;�;���;뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰b��;뉱뉲뉳|�h<`<x<���<�<J��<뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄늅늆늇늈늉늊늋늌b��<늍늎늏|�== =��(=4=J�<=�<D=5�L=늑늒늓는늕늖늗늘늙늚늛늜늝늞늟늠늡늢늣늤능늦늧늨b�`=늩늪늫|��=�=�=���=�=J��=늭늮늯늰늱늲늳늴늵늶늷늸늹늺늻늼늽늾늿닀닁닂닃닄b�>닅닆닇|�t>l>�>���>�>J��>>�>T��>닉닊닋닌닍닎닏닐닑닒닓닔닕닖닗님닙닚닛닜닝닞닟닠b��>닡닢닣|�0?(?@?��H?T?J�\?닥닦닧단닩닪닫달닭닮닯닰닱닲닳담답닶닷닸당닺닻닼b�l?닽닾닿|��?�?�?���?�?J�@d?@s�@댁댂댃댄댅댆댇댈댉댊댋댌댍댎댏댐댑댒댓댔댕댖댗댘b�(@댙댚댛|��@�@�@���@�@J��@댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴b��@댵댶댷|�<A4ALA��TA`AJ�hA댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐b�xA덑덒덓|��A�A�A���ABJ�B�@pAB�� B덕덖덗던덙덚덛덜덝덞덟덠덡덢덣덤덥덦덧덨덩덪덫덬b�8B덭덮덯|��B�B�B���B�BJ��B덱덲덳덴덵덶덷델덹덺덻덼덽덾덿뎀뎁뎂뎃뎄뎅뎆뎇뎈b��B뎉뎊뎋|�LCDC\C��dCpCJ�xC�B�C���C뎍뎎뎏뎐뎑뎒뎓뎔뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎠뎡뎢뎣뎤b��C뎥뎦뎧|�DDD�� D,DJ�4D뎩뎪뎫뎬뎭뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀b�DD돁돂돃|��D�D�D���D�DJ��D<D�D���D독돆돇돈돉돊돋돌돍돎돏돐돑돒돓돔돕돖돗돘동돚돛돜b�E돝돞돟|�lEdE|E���E�EJ��E돡돢돣돤돥돦돧돨돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸b��E돹돺돻|�FF$F��,F8FJ�@F돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됐됑됒됓됔b�PF됕됖됗|��F�F�F���F�FJ��F�EHF�F���F됙됚됛된됝됞됟될됡됢됣됤됥됦됧됨됩됪됫됬됭됮됯됰b�G됱됲됳|�|GtG�G���G�GJ��G됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄둅둆둇둈둉둊둋둌b��G둍둎둏|�$HH4H��<HHHJ�PH�GXH5�`H둑둒둓둔둕둖둗둘둙둚둛둜둝둞둟둠둡둢둣둤둥둦둧둨b�tH둩둪둫|��H�H�H���HIJ�I둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒀뒁뒂뒃뒄b�I뒅뒆뒇|��I�I�I���I�IJ��II�IT��I뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒝뒞뒟뒠b��I뒡뒢뒣|�DJ<JTJ��\JhJJ�pJ뒥뒦뒧뒨뒩뒪뒫뒬뒭뒮뒯뒰뒱뒲뒳뒴뒵뒶뒷뒸뒹뒺뒻뒼b��J뒽뒾뒿|��J�J�J��KKJ�KxJ Ks�(K듁듂듃듄듅듆듇듈듉듊듋듌듍듎듏듐듑듒듓듔듕듖듗듘b�<K듙듚듛|��K�K�K���K�KJ��K득듞듟든듡듢듣들듥듦듧듨듩듪듫듬듭듮듯듰등듲듳듴b��K듵듶듷|�PLHL`L��hLtLJ�|L듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐b��L딑딒딓|��L�LM��MMJ�$M�K�L,M��4M딕딖딗딘딙딚딛딜딝딞딟딠딡딢딣딤딥딦딧딨딩딪딫딬b�LM딭딮딯|��M�M�M���M�MJ��M딱딲딳딴딵딶딷딸딹딺딻딼딽딾딿땀땁땂땃땄땅땆땇땈b��M땉땊땋|�`NXNpN��xN�NJ��N�M�N���N땍땎땏땐땑땒땓땔땕땖땗땘땙땚땛땜땝땞땟땠땡땢땣땤b��N땥땦땧|�OO,O��4O@OJ�HO땩땪땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀b�XO떁떂떃|��O�O�O���O�OJ��OPO�O��P떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜b�P떝떞떟|��PxP�P���P�PJ��P떡떢떣떤떥떦떧떨떩떪떫떬떭떮떯떰떱떲떳떴떵떶떷떸b��P떹떺떻|�(Q Q8Q��@QLQJ�TQ떽떾떿뗀뗁뗂뗃뗄뗅뗆뗇뗈뗉뗊뗋뗌뗍뗎뗏뗐뗑뗒뗓뗔b�dQ뗕뗖뗗|��Q�Q�Q���Q�QJ��Q�P\QR��R뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗬뗭뗮뗯뗰b�$R뗱뗲뗳|��R�R�R���R�RJ��R뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿똀똁똂똃똄똅똆똇똈똉똊똋똌b��R똍똎똏|�8S0SHS��PS\SJ�dS�RlS5�tS똑똒똓똔똕똖똗똘똙똚똛똜똝똞똟똠똡똢똣똤똥똦똧똨b��S똩똪똫|��S�ST��TTJ� T똭똮똯똰똱똲똳똴똵똶똷똸똹똺똻똼똽똾똿뙀뙁뙂뙃뙄b�0T뙅뙆뙇|��T�T�T���T�TJ��T(T�TT��T뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠b��T뙡뙢뙣|�XUPUhU��pU|UJ��U뙥뙦뙧뙨뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼b��U뙽뙾뙿|�V�UV��V$VJ�,V�U4Vs�<V뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘b�PV뚙뚚뚛|��V�V�V���V�VJ��V뚝뚞뚟뚠뚡뚢뚣뚤뚥뚦뚧뚨뚩뚪뚫뚬뚭뚮뚯뚰뚱뚲뚳뚴b��V뚵뚶뚷|�dW\WtW��|W�WJ��W뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐b��W뛑뛒뛓|�XXX��$X0XJ�8X�V�W@X��HX뛕뛖뛗뛘뛙뛚뛛뛜뛝뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬b�`X뛭뛮뛯|��X�X�X���X�XJ��X뛱뛲뛳뛴뛵뛶뛷뛸뛹뛺뛻뛼뛽뛾뛿뜀뜁뜂뜃뜄뜅뜆뜇뜈b�Y뜉뜊뜋|�tYlY�Y���Y�YJ��YY�Y���Y뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤b��Y뜥뜦뜧|�0Z(Z@Z��HZTZJ�\Z뜩뜪뜫뜬뜭뜮뜯뜰뜱뜲뜳뜴뜵뜶뜷뜸뜹뜺뜻뜼뜽뜾뜿띀b�lZ띁띂띃|��Z�Z�Z���Z�ZJ�[dZ[��[띅띆띇띈띉띊띋띌띍띎띏띐띑띒띓띔띕띖띗띘띙띚띛띜b�([띝띞띟|��[�[�[���[�[J��[띡띢띣띤띥띦띧띨띩띪띫띬띭띮띯띰띱띲띳띴띵띶띷띸b��[띹띺띻|�<\4\L\��T\`\J�h\락띾띿란랁랂랃랄랅랆랇랈랉랊랋람랍랎랏랐랑랒랓랔b�x\랕랖랗|��\�\�\���\]J�]�[p\]�� ]랙랚랛랜랝랞랟랠랡랢랣랤랥랦랧램랩랪랫랬랭랮랯랰b�8]랱랲랳|��]�]�]���]�]J��]략랶랷랸랹랺랻랼랽랾랿럀럁럂럃럄럅럆럇럈량럊럋럌b��]럍럎럏|�L^D^\^��d^p^J�x^�]�^5��^럑럒럓럔럕럖럗럘럙럚럛럜럝럞럟럠럡럢럣럤럥럦럧럨b��^럩럪럫|�___�� _,_J�4_럭럮럯런럱럲럳럴럵럶럷럸럹럺럻럼럽럾럿렀렁렂렃렄b�D_렅렆렇|��_�_�_���_�_J��_<_�_T��_렉렊렋렌렍렎렏렐렑렒렓렔렕렖렗렘렙렚렛렜렝렞렟렠b�`렡렢렣|�l`d`|`���`�`J��`력렦렧련렩렪렫렬렭렮렯렰렱렲렳렴렵렶렷렸령렺렻렼b��`렽렾렿|�aa$a��,a8aJ�@a�`Has�Pa롁롂롃롄롅롆롇롈롉롊롋롌롍롎롏롐롑롒롓롔롕롖롗롘b�da롙롚롛|��a�a�a���a�aJ��a록롞롟론롡롢롣롤롥롦롧롨롩롪롫롬롭롮롯롰롱롲롳롴b�b롵롶롷|�xbpb�b���b�bJ��b롹롺롻롼롽롾롿뢀뢁뢂뢃뢄뢅뢆뢇뢈뢉뢊뢋뢌뢍뢎뢏뢐b��b뢑뢒뢓|� cc0c��8cDcJ�Lcb�bTc��\c뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟뢠뢡뢢뢣뢤뢥뢦뢧뢨뢩뢪뢫뢬b�tc뢭뢮뢯|��c�c�c���cdJ�d뢱뢲뢳뢴뢵뢶뢷뢸뢹뢺뢻뢼뢽뢾뢿룀룁룂룃룄룅룆룇룈b�d룉룊룋|��d�d�d���d�dJ��dd�d���d룍룎룏룐룑룒룓룔룕룖룗룘룙룚룛룜룝룞룟룠룡룢룣룤b��d룥룦룧|�De<eTe��\eheJ�pe룩룪룫룬룭룮룯룰룱룲룳룴룵룶룷룸룹룺룻룼룽룾룿뤀b��e뤁뤂뤃|��e�e�e��ffJ�fxe f��(f뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤘뤙뤚뤛뤜b�<f뤝뤞뤟|��f�f�f���f�fJ��f뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸b��f뤹뤺뤻|�PgHg`g��hgtgJ�|g뤽뤾뤿륀륁륂륃륄륅륆륇륈륉륊륋륌륍륎륏륐륑륒륓륔b��g륕륖륗|��g�gh��hhJ�$h�f�g,h��4h륙륚륛륜륝륞륟률륡륢륣륤륥륦륧륨륩륪륫륬륭륮륯륰b�Lh륱륲륳|��h�h�h���h�hJ��h륵륶륷른륹륺륻를륽륾륿릀릁릂릃름릅릆릇릈릉릊릋릌b��h릍릎릏|�`iXipi��xi�iJ��i�h�i5��i릑릒릓릔릕릖릗릘릙릚릛릜릝릞릟릠릡릢릣릤릥릦릧릨b��i릩릪릫|�jj,j��4j@jJ�Hj릭릮릯린릱릲릳릴릵릶릷릸릹릺릻림립릾릿맀링맂맃맄b�Xj맅맆맇|��j�j�j���j�jJ��jPj�jT�k막맊맋만맍많맏말맑맒맓맔맕맖맗맘맙맚맛맜망맞맟맠b�k맡맢맣|��kxk�k���k�kJ��k맥맦맧맨맩맪맫맬맭맮맯맰맱맲맳맴맵맶맷맸맹맺맻맼b��k맽맾맿|�(l l8l��@lLlJ�Tl�k\ls�dl먁먂먃먄먅먆먇먈먉먊먋먌먍먎먏먐먑먒먓먔먕먖먗먘b�xl먙먚먛|��l�l�l���lmJ�m먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴b� m먵먶먷|��m�m�m���m�mJ��m먹먺먻먼먽먾먿멀멁멂멃멄멅멆멇멈멉멊멋멌멍멎멏멐b��m멑멒멓|�4n,nDn��LnXnJ�`nm�mhn��pn멕멖멗멘멙멚멛멜멝멞멟멠멡멢멣멤멥멦멧멨멩멪멫멬b��n멭멮멯|��n�no��ooJ� o멱멲멳면멵멶멷멸멹멺멻멼멽멾멿몀몁몂몃몄명몆몇몈b�0o몉몊몋|��o�o�o���o�oJ��o(o�o���o몍몎몏몐몑몒몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤b��o몥몦몧|�XpPphp��pp|pJ��p목몪몫몬몭몮몯몰몱몲몳몴몵몶몷몸몹몺못몼몽몾몿뫀b��p뫁뫂뫃|�q�pq��q$qJ�,q�p4q��<q뫅뫆뫇뫈뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫘뫙뫚뫛뫜b�Pq뫝뫞뫟|��q�q�q���q�qJ��q뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸b��q뫹뫺뫻|�dr\rtr��|r�rJ��r뫽뫾뫿묀묁묂묃묄묅묆묇묈묉묊묋묌묍묎묏묐묑묒묓묔b��r묕묖묗|�sss��$s0sJ�8s�q�r@s��Hs묙묚묛묜묝묞묟묠묡묢묣묤묥묦묧묨묩묪묫묬묭묮묯묰b�`s묱묲묳|��s�s�s���s�sJ��s묵묶묷문묹묺묻물묽묾묿뭀뭁뭂뭃뭄뭅뭆뭇뭈뭉뭊뭋뭌b�t뭍뭎뭏|�ttlt�t���t�tJ��tt�t5��t뭑뭒뭓뭔뭕뭖뭗뭘뭙뭚뭛뭜뭝뭞뭟뭠뭡뭢뭣뭤뭥뭦뭧뭨b��t뭩뭪뭫|�0u(u@u��HuTuJ�\u뭭뭮뭯뭰뭱뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄b�lu뮅뮆뮇|��u�u�u���u�uJ�vduvT�v뮉뮊뮋뮌뮍뮎뮏뮐뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠b�(v뮡뮢뮣|��v�v�v���v�vJ��v뮥뮦뮧뮨뮩뮪뮫뮬뮭뮮뮯뮰뮱뮲뮳뮴뮵뮶뮷뮸뮹뮺뮻뮼b��v뮽뮾뮿|�<w4wLw��Tw`wJ�hw�vpws�xw믁믂믃믄믅믆믇믈믉믊믋믌믍믎믏믐믑믒믓믔믕믖믗믘b��w믙믚믛|��w�wx��xxJ�$x믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴b�4x믵믶믷|��x�x�x���x�xJ��x믹믺믻민믽믾믿밀밁밂밃밄밅밆밇밈밉밊밋밌밍밎및밐b��x밑밒밓|�Hy@yXy��`ylyJ�ty,x�x|y���y박밖밗반밙밚받발밝밞밟밠밡밢밣밤밥밦밧밨방밪밫밬b��y밭밮밯|�zzz�� z,zJ�4z백밲밳밴밵밶밷밸밹밺밻밼밽밾밿뱀뱁뱂뱃뱄뱅뱆뱇뱈b�Dz뱉뱊뱋|��z�z�z���z�zJ��z<z�z���z뱍뱎뱏뱐뱑뱒뱓뱔뱕뱖뱗뱘뱙뱚뱛뱜뱝뱞뱟뱠뱡뱢뱣뱤b�{뱥뱦뱧|�l{d{|{���{�{J��{뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀b��{벁벂벃|�||$|��,|8|J�@|�{H|��P|벅벆벇번벉벊벋벌벍벎벏벐벑벒벓범법벖벗벘벙벚벛벜b�d|벝벞벟|��|�|�|���|�|J��|벡벢벣벤벥벦벧벨벩벪벫벬벭벮벯벰벱벲벳벴벵벶벷벸b�}벹벺벻|�x}p}�}���}�}J��}벽벾벿변볁볂볃별볅볆볇볈볉볊볋볌볍볎볏볐병볒볓볔b��}볕볖볗|� ~~0~��8~D~J�L~}�}T~��\~볙볚볛볜볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰b�t~볱볲볳|��~�~�~���~J�복볶볷본볹볺볻볼볽볾볿봀봁봂봃봄봅봆봇봈봉봊봋봌b�봍봎봏|��������J���5��봑봒봓봔봕봖봗봘봙봚봛봜봝봞봟봠봡봢봣봤봥봦봧봨b��봩봪봫|�D�<�T���\�h�J�p�봭봮봯봰봱봲봳봴봵봶봷봸봹봺봻봼봽봾봿뵀뵁뵂뵃뵄b���뵅뵆뵇|���������J��x� �T�(�뵉뵊뵋뵌뵍뵎뵏뵐뵑뵒뵓뵔뵕뵖뵗뵘뵙뵚뵛뵜뵝뵞뵟뵠b�<�뵡뵢뵣|�����������́J�ԁ뵥뵦뵧뵨뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼b��뵽뵾뵿|�P�H�`���h�t�J�|�܁��s���북붂붃분붅붆붇불붉붊붋붌붍붎붏붐붑붒붓붔붕붖붗붘b���붙붚붛|������$�0�J�8�붝붞붟붠붡붢붣붤붥붦붧붨붩붪붫붬붭붮붯붰붱붲붳붴b�H�붵붶붷|�����ă��̃؃J��붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐b��뷑뷒뷓|�\�T�l���t���J���@��������뷕뷖뷗뷘뷙뷚뷛뷜뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷩뷪뷫뷬b���뷭뷮뷯|���,���4�@�J�H�뷱뷲뷳뷴뷵뷶뷷뷸뷹뷺뷻뷼뷽뷾뷿븀븁븂븃븄븅븆븇븈b�X�븉븊븋|�ą��ԅ��܅�J��P������븍븎븏븐븑븒븓블븕븖븗븘븙븚븛븜븝븞븟븠븡븢븣븤b��븥븦븧|���x���������J���븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀b���빁빂빃|�(� �8���@�L�J�T���\���d�빅빆빇빈빉빊빋빌빍빎빏빐빑빒빓빔빕빖빗빘빙빚빛빜b�x�빝빞빟|��܇������J��빡빢빣빤빥빦빧빨빩빪빫빬빭빮빯빰빱빲빳빴빵빶빷빸b� �빹빺빻|�������������J���빽빾빿뺀뺁뺂뺃뺄뺅뺆뺇뺈뺉뺊뺋뺌뺍뺎뺏뺐뺑뺒뺓뺔b�Ȉ뺕뺖뺗|�4�,�D���L�X�J�`����h���p�뺙뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺨뺩뺪뺫뺬뺭뺮뺯뺰b���뺱뺲뺳|��������J� �뺵뺶뺷뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌b�0�뻍뻎뻏|�������������J�Ȋ(�Њ5�؊뻑뻒뻓뻔뻕뻖뻗뻘뻙뻚뻛뻜뻝뻞뻟뻠뻡뻢뻣뻤뻥뻦뻧뻨b��뻩뻪뻫|�X�P�h���p�|�J���뻭뻮뻯뻰뻱뻲뻳뻴뻵뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼁뼂뼃뼄b���뼅뼆뼇|��������$�J�,���4�T�<�뼉뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼘뼙뼚뼛뼜뼝뼞뼟뼠b�P�뼡뼢뼣|�����̌��Ԍ�J��뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼b���뼽뼾뼿|�d�\�t���|���J������s���뽁뽂뽃뽄뽅뽆뽇뽈뽉뽊뽋뽌뽍뽎뽏뽐뽑뽒뽓뽔뽕뽖뽗뽘b���뽙뽚뽛|� ��0���8�D�J�L�뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴b�\�뽵뽶뽷|�Ȏ��؎����J��뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐b��뾑뾒뾓|�p�h���������J���T���������뾕뾖뾗뾘뾙뾚뾛뾜뾝뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬b�ď뾭뾮뾯|�0�(�@���H�T�J�\�뾱뾲뾳뾴뾵뾶뾷뾸뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿅뿆뿇뿈b�l�뿉뿊뿋|�ؐА������J��d�����뿍뿎뿏뿐뿑뿒뿓뿔뿕뿖뿗뿘뿙뿚뿛뿜뿝뿞뿟뿠뿡뿢뿣뿤b�(�뿥뿦뿧|�������������J���뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀b�Б쀁쀂쀃|�<�4�L���T�`�J�h�ȑp���x��.�0D2�357�8�9�;X=�> @0B�C�DGlH�I4KDM�NPR�S�THVXX�Y [0]�^�_\alc�d4fDh�ikpl�n�oHqXs�t v�w�y�z\|l~�4������p����H����� ������쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜b���쀝쀞쀟|��������(�J�0�쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸b�@�쀹쀺쀻|���������ĔДJ�ؔ쀽쀾쀿쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁑쁒쁓쁔b��쁕쁖쁗|�T�L�d���l�x�J���8��������쁙쁚쁛쁜쁝쁞쁟쁠쁡쁢쁣쁤쁥쁦쁧쁨쁩쁪쁫쁬쁭쁮쁯쁰b���쁱쁲쁳|���$���,�8�J�@�쁵쁶쁷쁸쁹쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌b�P�삍삎삏|�����̖��Ԗ�J��H��5���삑삒삓삔삕삖삗삘삙삚삛삜삝삞삟삠삡삢삣삤삥삦삧삨b��삩삪삫|�x�p���������J���삭삮삯산삱삲삳살삵삶삷삸삹삺삻삼삽삾삿샀상샂샃샄b���샅샆샇|� ��0���8�D�J�L���T�T�\�색샊샋샌샍샎샏샐샑샒샓샔샕샖샗샘샙샚샛샜생샞샟샠b�p�샡샢샣|�ܘԘ�����J��샥샦샧샨샩샪샫샬샭샮샯샰샱샲샳샴샵샶샷샸샹샺샻샼b��샽샾샿|���|���������J������s���섁섂섃섄섅섆섇섈섉섊섋섌섍섎섏섐섑섒섓섔섕섖섗섘b�ԙ섙섚섛|�@�8�P���X�d�J�l�석섞섟선섡섢섣설섥섦섧섨섩섪섫섬섭섮섯섰성섲섳섴b�|�섵섶섷|���������J��섹섺섻센섽섾섿셀셁셂셃셄셅셆셇셈셉셊셋셌셍셎셏셐b�$�셑셒셓|�������������J���t��ě��̛셕셖셗션셙셚셛셜셝셞셟셠셡셢셣셤셥셦셧셨셩셪셫셬b��셭셮셯|�P�H�`���h�t�J�|�셱셲셳셴셵셶셷셸셹셺셻셼셽셾셿솀솁솂솃솄솅솆솇솈b���솉솊솋|���������J�$���,���4�속솎솏손솑솒솓솔솕솖솗솘솙솚솛솜솝솞솟솠송솢솣솤b�H�솥솦솧|�����ĝ��̝؝J��솩솪솫솬솭솮솯솰솱솲솳솴솵솶솷솸솹솺솻솼솽솾솿쇀b��쇁쇂쇃|�\�T�l���t���J����������쇅쇆쇇쇈쇉쇊쇋쇌쇍쇎쇏쇐쇑쇒쇓쇔쇕쇖쇗쇘쇙쇚쇛쇜b���쇝쇞쇟|���(���0�<�J�D�쇡쇢쇣쇤쇥쇦쇧쇨쇩쇪쇫쇬쇭쇮쇯쇰쇱쇲쇳쇴쇵쇶쇷쇸b�T�쇹쇺쇻|�����П��؟�J��쇽쇾쇿숀숁숂숃숄숅숆숇숈숉숊숋숌숍숎숏숐숑숒숓숔b���숕숖숗|�h�`�x�������J���L��������숙숚숛순숝숞숟술숡숢숣숤숥숦숧숨숩숪숫숬숭숮숯숰b���숱숲숳|�(� �8���@�L�J�T�숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅쉆쉇쉈쉉쉊쉋쉌b�d�쉍쉎쉏|�Сȡ�����J���\��5��쉑쉒쉓쉔쉕쉖쉗쉘쉙쉚쉛쉜쉝쉞쉟쉠쉡쉢쉣쉤쉥쉦쉧쉨b� �쉩쉪쉫|�������������J���쉭쉮쉯쉰쉱쉲쉳쉴쉵쉶쉷쉸쉹쉺쉻쉼쉽쉾쉿슀슁슂슃슄b�Ȣ슅슆슇|�4�,�D���L�X�J�`���h�T�p�슉슊슋슌슍슎슏슐슑슒슓슔슕슖슗슘슙슚슛슜슝슞슟슠b���슡슢슣|��������J��슥슦슧슨슩슪슫슬슭슮슯슰슱슲슳슴습슶슷슸승슺슻슼b�,�슽슾슿|�������������J�Ĥ$�̤s�Ԥ싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘b��싙싚싛|�T�L�d���l�x�J���식싞싟신싡싢싣실싥싦싧싨싩싪싫심십싮싯싰싱싲싳싴b���싵싶싷|�������� �J�(�싹싺싻싼싽싾싿쌀쌁쌂쌃쌄쌅쌆쌇쌈쌉쌊쌋쌌쌍쌎쌏쌐b�8�쌑쌒쌓|�����������ȦJ�Ц��0�ئ���쌕쌖쌗쌘쌙쌚쌛쌜쌝쌞쌟쌠쌡쌢쌣쌤쌥쌦쌧쌨쌩쌪쌫쌬b���쌭쌮쌯|�d�\�t���|���J���쌱쌲쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썅썆썇썈b���썉썊썋|������$�0�J�8���@���H�썍썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤b�\�썥썦썧|�Ȩ��ب����J��썩썪썫썬썭썮썯썰썱썲썳썴썵썶썷썸썹썺썻썼썽썾썿쎀b��쎁쎂쎃|�p�h���������J�����������쎅쎆쎇쎈쎉쎊쎋쎌쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜b���쎝쎞쎟|�,�$�<���D�P�J�X�쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸b�h�쎹쎺쎻|�Ԫ̪������J��쎽쎾쎿쏀쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔b��쏕쏖쏗|�|�t���������J���`��������쏙쏚쏛쏜쏝쏞쏟쏠쏡쏢쏣쏤쏥쏦쏧쏨쏩쏪쏫쏬쏭쏮쏯쏰b�Ы쏱쏲쏳|�<�4�L���T�`�J�h�쏵쏶쏷쏸쏹쏺쏻쏼쏽쏾쏿쐀쐁쐂쐃쐄쐅쐆쐇쐈쐉쐊쐋쐌b�x�쐍쐎쐏|��ܬ������J��p��5� �쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚쐛쐜쐝쐞쐟쐠쐡쐢쐣쐤쐥쐦쐧쐨b�4�쐩쐪쐫|�����������ĭJ�̭쐭쐮쐯쐰쐱쐲쐳쐴쐵쐶쐷쐸쐹쐺쐻쐼쐽쐾쐿쑀쑁쑂쑃쑄b�ܭ쑅쑆쑇|�H�@�X���`�l�J�t�ԭ|�T���쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠b���쑡쑢쑣|��������(�J�0�쑥쑦쑧쑨쑩쑪쑫쑬쑭쑮쑯쑰쑱쑲쑳쑴쑵쑶쑷쑸쑹쑺쑻쑼b�@�쑽쑾쑿|���������įЯJ�د8��s��쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒔쒕쒖쒗쒘b���쒙쒚쒛|�h�`�x�������J���쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴b���쒵쒶쒷|��� ���(�4�J�<�쒹쒺쒻쒼쒽쒾쒿쓀쓁쓂쓃쓄쓅쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐b�L�쓑쓒쓓|�����ȱ��бܱJ����D�����쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟쓠쓡쓢쓣쓤쓥쓦쓧쓨쓩쓪쓫쓬b��쓭쓮쓯|�x�p���������J���쓱쓲쓳쓴쓵쓶쓷쓸쓹쓺쓻쓼쓽쓾쓿씀씁씂씃씄씅씆씇씈b���씉씊씋|� ��0���8�D�J�L���T���\�씍씎씏씐씑씒씓씔씕씖씗씘씙씚씛씜씝씞씟씠씡씢씣씤b�p�씥씦씧|�ܳԳ�����J��씩씪씫씬씭씮씯씰씱씲씳씴씵씶씷씸씹씺씻씼씽씾씿앀b��앁앂앃|���|���������J����������악앆앇안앉않앋알앍앎앏앐앑앒앓암압앖앗았앙앚앛앜b�Դ앝앞앟|�@�8�P���X�d�J�l�액앢앣앤앥앦앧앨앩앪앫앬앭앮앯앰앱앲앳앴앵앶앷앸b�|�앹앺앻|���������J��약앾앿얀얁얂얃얄얅얆얇얈얉얊얋얌얍얎얏얐양얒얓얔b�$�얕얖얗|�������������J���t��Ķ��̶얙얚얛얜얝얞얟얠얡얢얣얤얥얦얧얨얩얪얫얬얭얮얯얰b��얱얲얳|�P�H�`���h�t�J�|�억얶얷언얹얺얻얼얽얾얿엀엁엂엃엄업없엇었엉엊엋엌b���엍엎엏|���������J�$���,�5�4�엑엒엓엔엕엖엗엘엙엚엛엜엝엞엟엠엡엢엣엤엥엦엧엨b�H�엩엪엫|�����ĸ��̸ظJ��역엮엯연엱엲엳열엵엶엷엸엹엺엻염엽엾엿였영옂옃옄b��옅옆옇|�\�T�l���t���J������T���옉옊옋옌옍옎옏옐옑옒옓옔옕옖옗옘옙옚옛옜옝옞옟옠b���옡옢옣|���(���0�<�J�D�옥옦옧온옩옪옫올옭옮옯옰옱옲옳옴옵옶옷옸옹옺옻옼b�T�옽옾옿|�����к��غ�J��L��s���왁왂왃완왅왆왇왈왉왊왋왌왍왎왏왐왑왒왓왔왕왖왗왘b��왙왚왛|�|�t���������J���왝왞왟왠왡왢왣왤왥왦왧왨왩왪왫왬왭왮왯왰왱왲왳왴b���왵왶왷|�$��4���<�H�J�P�왹왺왻왼왽왾왿욀욁욂욃욄욅욆욇욈욉욊욋욌욍욎욏욐b�`�욑욒욓|�̼ļܼ����J�����X�����욕욖욗욘욙욚욛욜욝욞욟욠욡욢욣욤욥욦욧욨용욪욫욬b� �욭욮욯|�������������J���욱욲욳운욵욶욷울욹욺욻욼욽욾욿움웁웂웃웄웅웆웇웈b�Ƚ웉웊웋|�4�,�D���L�X�J�`���h���p�웍웎웏원웑웒웓월웕웖웗웘웙웚웛웜웝웞웟웠웡웢웣웤b���웥웦웧|��������J��웩웪웫웬웭웮웯웰웱웲웳웴웵웶웷웸웹웺웻웼웽웾웿윀b�,�윁윂윃|�������������J�Ŀ$�̿��Կ윅윆윇윈윉윊윋윌윍윎윏윐윑윒윓윔윕윖윗윘윙윚윛윜b��윝윞윟|�T�L�d���l�x�J���육윢윣윤윥윦윧율윩윪윫윬윭윮윯윰윱윲윳윴융윶윷윸b���윹윺윻|�������� �J�(�윽윾윿은읁읂읃을읅읆읇읈읉읊읋음읍읎읏읐응읒읓읔b�8�읕읖읗|������������J����0�����읙읚읛읜읝읞읟읠읡읢읣읤읥읦읧읨읩읪읫읬읭읮읯읰b���읱읲읳|�d�\�t���|���J���익읶읷인읹읺읻일읽읾읿잀잁잂잃임입잆잇있잉잊잋잌b���잍잎잏|������$�0�J�8���@�5�H�작잒잓잔잕잖잗잘잙잚잛잜잝잞잟잠잡잢잣잤장잦잧잨b�\�잩잪잫|�������������J���잭잮잯잰잱잲잳잴잵잶잷잸잹잺잻잼잽잾잿쟀쟁쟂쟃쟄b��쟅쟆쟇|�p�h���������J�������T���쟉쟊쟋쟌쟍쟎쟏쟐쟑쟒쟓쟔쟕쟖쟗쟘쟙쟚쟛쟜쟝쟞쟟쟠b���쟡쟢쟣|�,�$�<���D�P�J�X�쟥쟦쟧쟨쟩쟪쟫쟬쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺쟻쟼b�h�쟽쟾쟿|�������������J��`��s��적젂젃전젅젆젇절젉젊젋젌젍젎젏점접젒젓젔정젖젗젘b�$�젙젚젛|�������������J���젝젞젟젠젡젢젣젤젥젦젧젨젩젪젫젬젭젮젯젰젱젲젳젴b���젵젶젷|�8�0�H���P�\�J�d�젹젺젻젼젽젾젿졀졁졂졃졄졅졆졇졈졉졊졋졌졍졎졏졐b�t�졑졒졓|������������J����l�����졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬b�4�졭졮졯|�������������J���족졲졳존졵졶졷졸졹졺졻졼졽졾졿좀좁좂좃좄종좆좇좈b���좉좊좋|�H�@�X���`�l�J�t���|�����좍좎좏좐좑좒좓좔좕좖좗좘좙좚좛좜좝좞좟좠좡좢좣좤b���좥좦좧|��������(�J�0�좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좼좽좾좿죀b�@�죁죂죃|�������������J���8�������죅죆죇죈죉죊죋죌죍죎죏죐죑죒죓죔죕죖죗죘죙죚죛죜b���죝죞죟|�h�`�x�������J���죡죢죣죤죥죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죵죶죷죸b���죹죺죻|��� ���(�4�J�<�죽죾죿준줁줂줃줄줅줆줇줈줉줊줋줌줍줎줏줐중줒줓줔b�L�줕줖줗|�������������J�����D�������줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫줬줭줮줯줰b��줱줲줳|�x�p���������J���줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇쥈쥉쥊쥋쥌b���쥍쥎쥏|� ��0���8�D�J�L���T�5�\�쥑쥒쥓쥔쥕쥖쥗쥘쥙쥚쥛쥜쥝쥞쥟쥠쥡쥢쥣쥤쥥쥦쥧쥨b�p�쥩쥪쥫|������������J��쥭쥮쥯쥰쥱쥲쥳쥴쥵쥶쥷쥸쥹쥺쥻쥼쥽쥾쥿즀즁즂즃즄b��즅즆즇|���|���������J������T���즉즊즋즌즍즎즏즐즑즒즓즔즕즖즗즘즙즚즛즜증즞즟즠b���즡즢즣|�@�8�P���X�d�J�l�즥즦즧즨즩즪즫즬즭즮즯즰즱즲즳즴즵즶즷즸즹즺즻즼b�|�즽즾즿|�����������J��t��s�$�직짂짃진짅짆짇질짉짊짋짌짍짎짏짐집짒짓짔징짖짗짘b�8�짙짚짛|�������������J���짝짞짟짠짡짢짣짤짥짦짧짨짩짪짫짬짭짮짯짰짱짲짳짴b���짵짶짷|�L�D�\���d�p�J�x�짹짺짻짼짽짾짿쨀쨁쨂쨃쨄쨅쨆쨇쨈쨉쨊쨋쨌쨍쨎쨏쨐b���쨑쨒쨓|����������J� �����(���0�쨕쨖쨗쨘쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥쨦쨧쨨쨩쨪쨫쨬b�H�쨭쨮쨯|�������������J���쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆쩇쩈b���쩉쩊쩋|�\�T�l���t���J�����������쩍쩎쩏쩐쩑쩒쩓쩔쩕쩖쩗쩘쩙쩚쩛쩜쩝쩞쩟쩠쩡쩢쩣쩤b���쩥쩦쩧|���(���0�<�J�D�쩩쩪쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩽쩾쩿쪀b�T�쪁쪂쪃|�������������J���L�������쪅쪆쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪘쪙쪚쪛쪜b��쪝쪞쪟|�|�t���������J���쪡쪢쪣쪤쪥쪦쪧쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸b���쪹쪺쪻|�$��4���<�H�J�P�쪽쪾쪿쫀쫁쫂쫃쫄쫅쫆쫇쫈쫉쫊쫋쫌쫍쫎쫏쫐쫑쫒쫓쫔b�`�쫕쫖쫗|�������������J�����X�����쫙쫚쫛쫜쫝쫞쫟쫠쫡쫢쫣쫤쫥쫦쫧쫨쫩쫪쫫쫬쫭쫮쫯쫰b� �쫱쫲쫳|�������������J���쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬈쬉쬊쬋쬌b���쬍쬎쬏|�4�,�D���L�X�J�`���h�5�p�쬑쬒쬓쬔쬕쬖쬗쬘쬙쬚쬛쬜쬝쬞쬟쬠쬡쬢쬣쬤쬥쬦쬧쬨b���쬩쬪쬫|����������J��쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭁쭂쭃쭄b�,�쭅쭆쭇|�������������J���$���T���쭉쭊쭋쭌쭍쭎쭏쭐쭑쭒쭓쭔쭕쭖쭗쭘쭙쭚쭛쭜쭝쭞쭟쭠b���쭡쭢쭣|�T�L�d���l�x�J���쭥쭦쭧쭨쭩쭪쭫쭬쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭸쭹쭺쭻쭼b���쭽쭾쭿|��������� �J�(���0�s�8�쮁쮂쮃쮄쮅쮆쮇쮈쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘b�L�쮙쮚쮛|�������������J���쮝쮞쮟쮠쮡쮢쮣쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴b���쮵쮶쮷|�`�X�p���x���J���쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐b���쯑쯒쯓|������ �,�J�4�����<���D�쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟쯠쯡쯢쯣쯤쯥쯦쯧쯨쯩쯪쯫쯬b�\�쯭쯮쯯|�������������J���쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼쯽쯾쯿찀찁찂찃찄찅찆찇찈b��찉찊찋|�p�h���������J�����������찍찎찏찐찑찒찓찔찕찖찗찘찙찚찛찜찝찞찟찠찡찢찣찤b���찥찦찧|�,�$�<���D�P�J�X�착찪찫찬찭찮찯찰찱찲찳찴찵찶찷참찹찺찻찼창찾찿챀b�h�챁챂챃|�������������J��`�����책챆챇챈챉챊챋챌챍챎챏챐챑챒챓챔챕챖챗챘챙챚챛챜b�$�챝챞챟|�������������J���챡챢챣챤챥챦챧챨챩챪챫챬챭챮챯챰챱챲챳챴챵챶챷챸b���챹챺챻|�8�0�H���P�\�J�d�챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓첔b�t�첕첖첗|������������J����l�����척첚첛천첝첞첟철첡첢첣첤첥첦첧첨첩첪첫첬청첮첯첰b�4�첱첲첳|�������������J���첵첶첷첸첹첺첻첼첽첾첿쳀쳁쳂쳃쳄쳅쳆쳇쳈쳉쳊쳋쳌b���쳍쳎쳏|�H�@�X���`�l�J�t���|�5���쳑쳒쳓쳔쳕쳖쳗쳘쳙쳚쳛쳜쳝쳞쳟쳠쳡쳢쳣쳤쳥쳦쳧쳨b���쳩쳪쳫|��������(�J�0�쳭쳮쳯쳰쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽쳾쳿촀촁촂촃촄b�@�촅촆촇|�������������J���8���T���촉촊촋촌촍촎촏촐촑촒촓촔촕촖촗촘촙촚촛촜총촞촟촠b���촡촢촣|�h�`�x�������J���촥촦촧촨촩촪촫촬촭촮촯촰촱촲촳촴촵촶촷촸촹촺촻촼b���촽촾촿|��� ���(�4�J�<���D�s�L�쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘b�`�쵙쵚쵛|�������������J���쵝쵞쵟쵠쵡쵢쵣쵤쵥쵦쵧쵨쵩쵪쵫쵬쵭쵮쵯쵰쵱쵲쵳쵴b��쵵쵶쵷|�t�l���������J���쵹쵺쵻쵼쵽쵾쵿춀춁춂춃춄춅춆춇춈춉춊춋춌춍춎춏춐b���춑춒춓|���,���4�@�J�H����P���X�축춖춗춘춙춚춛출춝춞춟춠춡춢춣춤춥춦춧춨충춪춫춬b�p�춭춮춯|������������J��춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췄췅췆췇췈b��췉췊췋|���|���������J����������췍췎췏췐췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡췢췣췤b���췥췦췧|�@�8�P���X�d�J�l�췩췪췫췬췭췮췯췰췱췲췳췴췵췶췷췸췹췺췻췼췽췾췿츀b�|�츁츂츃|�����������J��t����$�츅츆츇츈츉츊츋츌츍츎츏츐츑츒츓츔츕츖츗츘츙츚츛츜b�8�츝츞츟|�������������J���측츢츣츤츥츦츧츨츩츪츫츬츭츮츯츰츱츲츳츴층츶츷츸b���츹츺츻|�L�D�\���d�p�J�x�츽츾츿칀칁칂칃칄칅칆칇칈칉칊칋칌칍칎칏칐칑칒칓칔b���칕칖칗|����������J� �����(���0�칙칚칛친칝칞칟칠칡칢칣칤칥칦칧침칩칪칫칬칭칮칯칰b�H�칱칲칳|�������������J���칵칶칷칸칹칺칻칼칽칾칿캀캁캂캃캄캅캆캇캈캉캊캋캌b���캍캎캏|�\�T�l���t���J�������5���캑캒캓캔캕캖캗캘캙캚캛캜캝캞캟캠캡캢캣캤캥캦캧캨b���캩캪캫|���(���0�<�J�D�캭캮캯캰캱캲캳캴캵캶캷캸캹캺캻캼캽캾캿컀컁컂컃컄b�T�컅컆컇|�������������J���L���T���컉컊컋컌컍컎컏컐컑컒컓컔컕컖컗컘컙컚컛컜컝컞컟컠b��컡컢컣|�|�t���������J���컥컦컧컨컩컪컫컬컭컮컯컰컱컲컳컴컵컶컷컸컹컺컻컼b���컽컾컿|�$��4���<�H�J�P���X�s�`�켁켂켃켄켅켆켇켈켉켊켋켌켍켎켏켐켑켒켓켔켕켖켗켘b�t�켙켚켛|������������J��켝켞켟켠켡켢켣켤켥켦켧켨켩켪켫켬켭켮켯켰켱켲켳켴b��켵켶켷|�������������J���켹켺켻켼켽켾켿콀콁콂콃콄콅콆콇콈콉콊콋콌콍콎콏콐b���콑콒콓|�0�(�@���H�T�J�\����d���l�콕콖콗콘콙콚콛콜콝콞콟콠콡콢콣콤콥콦콧콨콩콪콫콬b���콭콮콯|����������J��콱콲콳콴콵콶콷콸콹콺콻콼콽콾콿쾀쾁쾂쾃쾄쾅쾆쾇쾈b�,�쾉쾊쾋|�������������J��$�����쾍쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾡쾢쾣쾤b��쾥쾦쾧|�T�L�d���l�x�J���쾩쾪쾫쾬쾭쾮쾯쾰쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀b���쿁쿂쿃|�������� �J�(���0���8�쿅쿆쿇쿈쿉쿊쿋쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜b�L�쿝쿞쿟|����������J��쿡쿢쿣쿤쿥쿦쿧쿨쿩쿪쿫쿬쿭쿮쿯쿰쿱쿲쿳쿴쿵쿶쿷쿸b��쿹쿺쿻|�`�X�p���x���J���쿽쿾쿿퀀퀁퀂퀃퀄퀅퀆퀇퀈퀉퀊퀋퀌퀍퀎퀏퀐퀑퀒퀓퀔b���퀕퀖퀗|������ �,�J�4����<���D����h�̙ܛ@������|���T���ȫ,�����h�̴ܶ@�����|���T����,������h���0�@�����|���D�T����,�����X�h���0�@����l�|��D�T��\�퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬퀭퀮퀯퀰b�h�퀱퀲퀳|���������J��퀵퀶퀷퀸퀹퀺퀻퀼퀽퀾퀿큀큁큂큃큄큅큆큇큈큉큊큋큌b��큍큎큏|�|�t���������J������5���큑큒큓큔큕큖큗큘큙큚큛큜큝큞큟큠큡큢큣큤큥큦큧큨b��큩큪큫|�8�0�H���P�\�J�d�큭큮큯큰큱큲큳클큵큶큷큸큹큺큻큼큽큾큿킀킁킂킃킄b�t�킅킆킇|���������J��l��T��킉킊킋킌킍킎킏킐킑킒킓킔킕킖킗킘킙킚킛킜킝킞킟킠b�0�킡킢킣|�������������J��킥킦킧킨킩킪킫킬킭킮킯킰킱킲킳킴킵킶킷킸킹킺킻킼b��킽킾킿|�D�<�T���\�h�J�p��x�s���탁탂탃탄탅탆탇탈탉탊탋탌탍탎탏탐탑탒탓탔탕탖탗탘b���탙탚탛|��������$�J�,�택탞탟탠탡탢탣탤탥탦탧탨탩탪탫탬탭탮탯탰탱탲탳탴b�<�탵탶탷|������������J��탹탺탻탼탽탾탿턀턁턂턃턄턅턆턇턈턉턊턋턌턍턎턏턐b��턑턒턓|�PH`��htJ�|4������턕턖턗턘턙턚턛턜턝턞턟턠턡턢턣턤턥턦턧턨턩턪턫턬b��턭턮턯|� ��(4J�<턱턲턳턴턵턶턷털턹턺턻턼턽턾턿텀텁텂텃텄텅텆텇텈b�L텉텊텋|��������J��D����텍텎텏텐텑텒텓텔텕텖텗텘텙텚텛템텝텞텟텠텡텢텣텤b�텥텦텧|�tl�����J��텩텪텫텬텭텮텯텰텱텲텳텴텵텶텷텸텹텺텻텼텽텾텿톀b��톁톂톃|�,��4@J�H�P��X톅톆톇톈톉톊톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜b�l톝톞톟|��������J�톡톢톣톤톥톦톧톨톩톪톫톬톭톮톯톰톱톲톳톴통톶톷톸b�톹톺톻|��x�����J��톽톾톿퇀퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏퇐퇑퇒퇓퇔b��퇕퇖퇗|�( 8��@LJ�T�\��d퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪퇫퇬퇭퇮퇯퇰b�|퇱퇲퇳|������J�퇵퇶퇷퇸퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆툇툈툉툊툋툌b�$툍툎툏|��������J���5��툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨b��툩툪툫|�LD\��dpJ�x툭툮툯툰툱툲툳툴툵툶툷툸툹툺툻툼툽툾툿퉀퉁퉂퉃퉄b��퉅퉆퉇|�����J� �(T�0퉉퉊퉋퉌퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉜퉝퉞퉟퉠b�D퉡퉢퉣|��������J��퉥퉦퉧퉨퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼b��퉽퉾퉿|�X	P	h	��p	|	J��	��	s��	튁튂튃튄튅튆튇튈튉튊튋튌튍튎튏튐튑튒튓튔튕튖튗튘b��	튙튚튛|�

$
��,
8
J�@
튝튞튟튠튡튢튣튤튥튦튧튨튩튪튫튬튭튮튯튰튱튲튳튴b�P
튵튶튷|��
�
�
���
�
J��
특튺튻튼튽튾튿틀틁틂틃틄틅틆틇틈틉틊틋틌틍틎틏틐b��
틑틒틓|�d\t��|�J��H
�
����틕틖틗틘틙틚틛틜틝틞틟틠틡틢틣틤틥틦틧틨틩틪틫틬b��틭틮틯|�$4��<HJ�P틱틲틳틴틵틶틷틸틹틺틻틼틽틾틿팀팁팂팃팄팅팆팇팈b�`팉팊팋|��������J��X
��
팍팎팏판팑팒팓팔팕팖팗팘팙팚팛팜팝팞팟팠팡팢팣팤b�
팥팦팧|��
�
�
���
�
J��
팩팪팫팬팭팮팯팰팱팲팳팴팵팶팷팸팹팺팻팼팽팾팿퍀b��
퍁퍂퍃|�0(@��HTJ�\�
d��l퍅퍆퍇퍈퍉퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜b��퍝퍞퍟|������J�퍡퍢퍣퍤퍥퍦퍧퍨퍩퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸b�(퍹퍺퍻|��������J��퍽퍾퍿펀펁펂펃펄펅펆펇펈펉펊펋펌펍펎펏펐펑펒펓펔b��펕펖펗|�<4L��T`J�h �p��x펙펚펛펜펝펞펟펠펡펢펣펤펥펦펧펨펩펪펫펬펭펮펯펰b��펱펲펳|����� J�(펵펶펷편펹펺펻펼펽펾펿폀폁폂폃폄폅폆폇폈평폊폋폌b�8폍폎폏|��������J��0�5��폑폒폓폔폕폖폗폘폙폚폛폜폝폞폟폠폡폢폣폤폥폦폧폨b��폩폪폫|�`Xp��x�J��폭폮폯폰폱폲폳폴폵폶폷폸폹폺폻폼폽폾폿퐀퐁퐂퐃퐄b��퐅퐆퐇|��� ,J�4�<T�D퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖퐗퐘퐙퐚퐛퐜퐝퐞퐟퐠b�X퐡퐢퐣|��������J��퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷퐸퐹퐺퐻퐼b�퐽퐾퐿|�ld|����J����s��푁푂푃푄푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓푔푕푖푗푘b��푙푚푛|�( 8��@LJ�T푝푞푟푠푡푢푣푤푥푦푧푨푩푪푫푬푭푮푯푰푱푲푳푴b�d푵푶푷|��������J��푹푺푻푼푽푾푿풀풁풂풃풄풅풆풇품풉풊풋풌풍풎풏풐b�풑풒풓|�xp�����J��\����풕풖풗풘풙풚풛풜풝풞풟풠풡풢풣풤풥풦풧풨풩풪풫풬b��풭풮풯|�80H��P\J�d풱풲풳풴풵풶풷풸풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈b�t퓉퓊퓋|�������J�l��퓍퓎퓏퓐퓑퓒퓓퓔퓕퓖퓗퓘퓙퓚퓛퓜퓝퓞퓟퓠퓡퓢퓣퓤b�0퓥퓦퓧|��������J��퓩퓪퓫퓬퓭퓮퓯퓰퓱퓲퓳퓴퓵퓶퓷퓸퓹퓺퓻퓼퓽퓾퓿픀b��픁픂픃|�D<T��\hJ�p�x���픅픆픇픈픉픊픋플픍픎픏픐픑픒픓픔픕픖픗픘픙픚픛픜b��픝픞픟|����$J�,픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷픸b�<픹픺픻|��������J��픽픾픿핀핁핂핃필핅핆핇핈핉핊핋핌핍핎핏핐핑핒핓핔b��핕핖핗|�PH`��htJ�|4�����학핚핛한핝핞핟할핡핢핣핤핥핦핧함합핪핫핬항핮핯핰b��핱핲핳|� ��(4J�<핵핶핷핸핹핺핻핼핽핾핿햀햁햂햃햄햅햆햇했행햊햋햌b�L햍햎햏|��������J��D�5��햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤향햦햧햨b�햩햪햫|�tl�����J��햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄b��헅헆헇|�,��4@J�H�PT�X헉헊헋헌헍헎헏헐헑헒헓헔헕헖헗험헙헚헛헜헝헞헟헠b�l헡헢헣|��������J�헥헦헧헨헩헪헫헬헭헮헯헰헱헲헳헴헵헶헷헸헹헺헻헼b�헽헾헿|��x�����J���s��혁혂혃현혅혆혇혈혉혊혋혌혍혎혏혐협혒혓혔형혖혗혘b��혙혚혛|�< 4 L ��T ` J�h 혝혞혟혠혡혢혣혤혥혦혧혨혩혪혫혬혭혮혯혰혱혲혳혴b�x 혵혶혷|�� � � ��� !J�!혹혺혻혼혽혾혿홀홁홂홃홄홅홆홇홈홉홊홋홌홍홎홏홐b� !홑홒홓|��!�!�!���!�!J��!p !�!���!확홖홗환홙홚홛활홝홞홟홠홡홢홣홤홥홦홧홨황홪홫홬b��!홭홮홯|�L"D"\"��d"p"J�x"홱홲홳홴홵홶홷홸홹홺홻홼홽홾홿횀횁횂횃횄횅횆횇횈b��"횉횊횋|��"�"#��##J� #�"(#��0#획횎횏횐횑횒횓횔횕횖횗횘횙횚횛횜횝횞횟횠횡횢횣횤b�D#횥횦횧|��#�#�#���#�#J��#횩횪횫횬횭횮횯횰횱횲횳횴횵횶횷횸횹횺횻횼횽횾횿훀b��#훁훂훃|�X$P$h$��p$|$J��$�#�$���$훅훆훇훈훉훊훋훌훍훎훏훐훑훒훓훔훕훖훗훘훙훚훛훜b��$훝훞훟|�%%$%��,%8%J�@%훡훢훣훤훥훦훧훨훩훪훫훬훭훮훯훰훱훲훳훴훵훶훷훸b�P%훹훺훻|��%�%�%���%�%J��%훽훾훿휀휁휂휃휄휅휆휇휈휉휊휋휌휍휎휏휐휑휒휓휔b��%휕휖휗|�d&\&t&��|&�&J��&H%�%�&���&휙휚휛휜휝휞휟휠휡휢휣휤휥휦휧휨휩휪휫휬휭휮휯휰b��&휱휲휳|�$''4'��<'H'J�P'휵휶휷휸휹휺휻휼휽휾휿흀흁흂흃흄흅흆흇흈흉흊흋흌b�`'흍흎흏|��'�'�'���'�'J��'X'(5�(흑흒흓흔흕흖흗흘흙흚흛흜흝흞흟흠흡흢흣흤흥흦흧흨b�(흩흪흫|��(�(�(���(�(J��(흭흮흯흰흱흲흳흴흵흶흷흸흹흺흻흼흽흾흿힀힁힂힃힄b��(힅힆힇|�0)()@)��H)T)J�\)�(d)T�l)힉힊힋힌힍힎힏힐힑힒힓힔힕힖힗힘힙힚힛힜힝힞힟힠b��)힡힢힣|��)�)�)��**J�* *�(*�(����dt�<�	�
x��P��(��d��!<#�$�&(x)0*��8*������(��������p��������\������P������H�l�����<�d�����(�H������4�d������\�������0��������\�������x���l�P�����p�����d�����h���`	�l-��`��*���*����	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456����	

 !"#$%&'()*+,ǕǖǗǘǙǚǛǜǞǟǠǡǢǣǬǭǮǯǺǻǼǽǾǿ��	

 !"#$%&'()*+,-ȪȫȬȭȰȱ��̈́��	

΅ΆΈΉΊΌΎΏΪΫάέήί��ϊϋόύώϓϔ��	
ЀЁЃЇЌЍЎЙй��	
ѐёѓїќѝўѶѷ��	

 !"#ӁӂӐӑӒӓӖӗӚӛӜӝӞӟӢӣӤӥӦӧӪӫӬӭӮӯӰӱӲӳӴӵӸӹ��آأؤإئ��ۀۂۓ��ऩऱऴ��	क़ख़ग़ज़ड़ढ़फ़य़��োৌড়ঢ়য়��ਲ਼ਸ਼��ਖ਼ਗ਼ਜ਼ਫ਼��ୈୋୌଡ଼ଢ଼��ஔ��ொோௌ��ై��ೀೇೈೊೋൊോൌ��ේොෝෞ��	
གྷཌྷདྷབྷཛྷཀྵཱཱིུྲྀླྀ��ཱྀྒྷྜྷྡྷྦྷྫྷྐྵ��	

��ဦ��	

 !"#$%&'()*+,-./0123456789:;<=>?@ḈḉḔḕḖḗḜḝḮḯḸḹṌṍṎṏṐṑṒṓṜṝṤṥṦṧṨṩṸṹṺṻ��	

 !"#$%&'()*+,-./0123456789:;<ẛẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẾế��	

 !"#$%&'()*+,-./0123456789:;;;;;;ỀềỂểỄễỆệỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỨứỪừỬửỮữỰự��	

 !"#$%&'()*+,-./0123456789:;<=ἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿ��	

 !"#$%&'()*+,-./0ὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧὨὩὪὫὬὭὮὯὰὲὴὶὸὺὼ��	

 !"#$%&'()*+,-./0123456789:;6<6=6ᾀᾁᾂᾃᾄᾅᾆᾇᾈᾉᾊᾋᾌᾍᾎᾏᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾞᾟᾠᾡᾢᾣᾤᾥᾦᾧᾨᾩᾪᾫᾬᾭᾮᾯᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺᾼ��	

 !"#$%&'()*+,-./0῁ῂῃῄῆῇῈῊῌ῍῎῏ῐῑῒΐῖῗῘῙῚ῝῞῟ῠῡῢΰῤῥῦῧῨῩῪῬ῭ῲῳῴῶῷῸῺῼ��	
��	

がぎぐげござじずぜぞだぢづでどばぱびぴぶぷべぺぼぽ��	

ゔゞガギグゲゴザジズゼゾ��	

ダヂヅデドバパビピブプベペボポヴヷヸヹヺヾ��가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛개객갞갟갠갡갢갣갤갥갦갧갨갩갪갫갬갭갮갯갰갱갲갳갴갵갶갷갸갹갺갻갼갽갾갿걀걁걂걃걄걅걆걇걈걉걊걋걌걍걎걏걐걑걒걓걔걕걖걗걘걙걚걛걜걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯거걱걲걳건걵걶걷걸걹걺걻걼걽걾걿검겁겂것겄겅겆겇겈겉겊겋게겍겎겏겐겑겒겓겔겕겖겗겘겙겚겛겜겝겞겟겠겡겢겣겤겥겦겧겨격겪겫견겭겮겯결겱겲겳겴겵겶겷겸겹겺겻겼경겾겿곀곁곂곃계곅곆곇곈곉곊곋곌곍곎곏곐곑곒곓곔곕곖곗곘곙곚곛곜곝곞곟고곡곢곣곤곥곦곧골곩곪곫곬곭곮곯곰곱곲곳곴공곶곷곸곹곺곻과곽곾곿관괁괂괃괄괅괆괇괈괉괊괋괌괍괎괏괐광괒괓괔괕괖괗괘괙괚괛괜괝괞괟괠괡괢괣괤괥괦괧괨괩괪괫괬괭괮괯괰괱괲괳괴괵괶괷괸괹괺괻괼괽괾괿굀굁굂굃굄굅굆굇굈굉굊굋굌굍굎굏교굑굒굓굔굕굖굗굘굙굚굛굜굝굞굟굠굡굢굣굤굥굦굧굨굩굪굫구국굮굯군굱굲굳굴굵굶굷굸굹굺굻굼굽굾굿궀궁궂궃궄궅궆궇궈궉궊궋권궍궎궏궐궑궒궓궔궕궖궗궘궙궚궛궜궝궞궟궠궡궢궣궤궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궷궸궹궺궻궼궽궾궿귀귁귂귃귄귅귆귇귈귉귊귋귌귍귎귏귐귑귒귓귔귕귖귗귘귙귚귛규귝귞귟균귡귢귣귤귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷그극귺귻근귽귾귿글긁긂긃긄긅긆긇금급긊긋긌긍긎긏긐긑긒긓긔긕긖긗긘긙긚긛긜긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯기긱긲긳긴긵긶긷길긹긺긻긼긽긾긿김깁깂깃깄깅깆깇깈깉깊깋까깍깎깏깐깑깒깓깔깕깖깗깘깙깚깛깜깝깞깟깠깡깢깣깤깥깦깧깨깩깪깫깬깭깮깯깰깱깲깳깴깵깶깷깸깹깺깻깼깽깾깿꺀꺁꺂꺃꺄꺅꺆꺇꺈꺉꺊꺋꺌꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺼꺽꺾꺿껀껁껂껃껄껅껆껇껈껉껊껋껌껍껎껏껐껑껒껓껔껕껖껗께껙껚껛껜껝껞껟껠껡껢껣껤껥껦껧껨껩껪껫껬껭껮껯껰껱껲껳껴껵껶껷껸껹껺껻껼껽껾껿꼀꼁꼂꼃꼄꼅꼆꼇꼈꼉꼊꼋꼌꼍꼎꼏꼐꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣꼤꼥꼦꼧꼨꼩꼪꼫꼬꼭꼮꼯꼰꼱꼲꼳꼴꼵꼶꼷꼸꼹꼺꼻꼼꼽꼾꼿꽀꽁꽂꽃꽄꽅꽆꽇꽈꽉꽊꽋꽌꽍꽎꽏꽐꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽜꽝꽞꽟꽠꽡꽢꽣꽤꽥꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽹꽺꽻꽼꽽꽾꽿꾀꾁꾂꾃꾄꾅꾆꾇꾈꾉꾊꾋꾌꾍꾎꾏꾐꾑꾒꾓꾔꾕꾖꾗꾘꾙꾚꾛꾜꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾸꾹꾺꾻꾼꾽꾾꾿꿀꿁꿂꿃꿄꿅꿆꿇꿈꿉꿊꿋꿌꿍꿎꿏꿐꿑꿒꿓꿔꿕꿖꿗꿘꿙꿚꿛꿜꿝꿞꿟꿠꿡꿢꿣꿤꿥꿦꿧꿨꿩꿪꿫꿬꿭꿮꿯꿰꿱꿲꿳꿴꿵꿶꿷꿸꿹꿺꿻꿼꿽꿾꿿��	

뀀뀁뀂뀃뀄뀅뀆뀇뀈뀉뀊뀋뀌뀍뀎뀏뀐뀑뀒뀓뀔뀕뀖뀗뀘뀙뀚뀛뀜뀝뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀨뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끄끅끆끇끈끉끊끋끌끍끎끏끐끑끒끓끔끕끖끗끘끙끚끛끜끝끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끼끽끾끿낀낁낂낃낄낅낆낇낈낉낊낋낌낍낎낏낐낑낒낓낔낕낖낗나낙낚낛난낝낞낟날낡낢낣낤낥낦낧남납낪낫났낭낮낯낰낱낲낳내낵낶낷낸낹낺낻낼낽낾낿냀냁냂냃냄냅냆냇냈냉냊냋냌냍냎냏냐냑냒냓냔냕냖냗냘냙냚냛냜냝냞냟냠냡냢냣냤냥냦냧냨냩냪냫냬냭냮냯냰냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇너넉넊넋넌넍넎넏널넑넒넓넔넕넖넗넘넙넚넛넜넝넞넟넠넡넢넣네넥넦넧넨넩넪넫넬넭넮넯넰넱넲넳넴넵넶넷넸넹넺넻넼넽넾넿녀녁녂녃년녅녆녇녈녉녊녋녌녍녎녏념녑녒녓녔녕녖녗녘녙녚녛녜녝녞녟녠녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷노녹녺녻논녽녾녿놀놁놂놃놄놅놆놇놈놉놊놋놌농놎놏놐놑높놓놔놕놖놗놘놙놚놛놜놝놞놟놠놡놢놣놤놥놦놧놨놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇌뇍뇎뇏뇐뇑뇒뇓뇔뇕뇖뇗뇘뇙뇚뇛뇜뇝뇞뇟뇠뇡뇢뇣뇤뇥뇦뇧뇨뇩뇪뇫뇬뇭뇮뇯뇰뇱뇲뇳뇴뇵뇶뇷뇸뇹뇺뇻뇼뇽뇾뇿눀눁눂눃누눅눆눇눈눉눊눋눌눍눎눏눐눑눒눓눔눕눖눗눘눙눚눛눜눝눞눟눠눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄늅늆늇늈늉늊늋늌늍늎늏느늑늒늓는늕늖늗늘늙늚늛늜늝늞늟늠늡늢늣늤능늦늧늨늩늪늫늬늭늮늯늰늱늲늳늴늵늶늷늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇니닉닊닋닌닍닎닏닐닑닒닓닔닕닖닗님닙닚닛닜닝닞닟닠닡닢닣다닥닦닧단닩닪닫달닭닮닯닰닱닲닳담답닶닷닸당닺닻닼닽닾닿대댁댂댃댄댅댆댇댈댉댊댋댌댍댎댏댐댑댒댓댔댕댖댗댘댙댚댛댜댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓더덕덖덗던덙덚덛덜덝덞덟덠덡덢덣덤덥덦덧덨덩덪덫덬덭덮덯데덱덲덳덴덵덶덷델덹덺덻덼덽덾덿뎀뎁뎂뎃뎄뎅뎆뎇뎈뎉뎊뎋뎌뎍뎎뎏뎐뎑뎒뎓뎔뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎠뎡뎢뎣뎤뎥뎦뎧뎨뎩뎪뎫뎬뎭뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃도독돆돇돈돉돊돋돌돍돎돏돐돑돒돓돔돕돖돗돘동돚돛돜돝돞돟돠돡돢돣돤돥돦돧돨돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돼돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됐됑됒됓됔됕됖됗되됙됚됛된됝됞됟될됡됢됣됤됥됦됧됨됩됪됫됬됭됮됯됰됱됲됳됴됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄둅둆둇둈둉둊둋둌둍둎둏두둑둒둓둔둕둖둗둘둙둚둛둜둝둞둟둠둡둢둣둤둥둦둧둨둩둪둫둬둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒀뒁뒂뒃뒄뒅뒆뒇뒈뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒝뒞뒟뒠뒡뒢뒣뒤뒥뒦뒧뒨뒩뒪뒫뒬뒭뒮뒯뒰뒱뒲뒳뒴뒵뒶뒷뒸뒹뒺뒻뒼뒽뒾뒿듀듁듂듃듄듅듆듇듈듉듊듋듌듍듎듏듐듑듒듓듔듕듖듗듘듙듚듛드득듞듟든듡듢듣들듥듦듧듨듩듪듫듬듭듮듯듰등듲듳듴듵듶듷듸듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓디딕딖딗딘딙딚딛딜딝딞딟딠딡딢딣딤딥딦딧딨딩딪딫딬딭딮딯따딱딲딳딴딵딶딷딸딹딺딻딼딽딾딿땀땁땂땃땄땅땆땇땈땉땊땋때땍땎땏땐땑땒땓땔땕땖땗땘땙땚땛땜땝땞땟땠땡땢땣땤땥땦땧땨땩땪땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떠떡떢떣떤떥떦떧떨떩떪떫떬떭떮떯떰떱떲떳떴떵떶떷떸떹떺떻떼떽떾떿뗀뗁뗂뗃뗄뗅뗆뗇뗈뗉뗊뗋뗌뗍뗎뗏뗐뗑뗒뗓뗔뗕뗖뗗뗘뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗬뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏또똑똒똓똔똕똖똗똘똙똚똛똜똝똞똟똠똡똢똣똤똥똦똧똨똩똪똫똬똭똮똯똰똱똲똳똴똵똶똷똸똹똺똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙈뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙤뙥뙦뙧뙨뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚜뚝뚞뚟뚠뚡뚢뚣뚤뚥뚦뚧뚨뚩뚪뚫뚬뚭뚮뚯뚰뚱뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛔뛕뛖뛗뛘뛙뛚뛛뛜뛝뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛰뛱뛲뛳뛴뛵뛶뛷뛸뛹뛺뛻뛼뛽뛾뛿뜀뜁뜂뜃뜄뜅뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜨뜩뜪뜫뜬뜭뜮뜯뜰뜱뜲뜳뜴뜵뜶뜷뜸뜹뜺뜻뜼뜽뜾뜿띀띁띂띃띄띅띆띇띈띉띊띋띌띍띎띏띐띑띒띓띔띕띖띗띘띙띚띛띜띝띞띟띠띡띢띣띤띥띦띧띨띩띪띫띬띭띮띯띰띱띲띳띴띵띶띷띸띹띺띻라락띾띿란랁랂랃랄랅랆랇랈랉랊랋람랍랎랏랐랑랒랓랔랕랖랗래랙랚랛랜랝랞랟랠랡랢랣랤랥랦랧램랩랪랫랬랭랮랯랰랱랲랳랴략랶랷랸랹랺랻랼랽랾랿럀럁럂럃럄럅럆럇럈량럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝럞럟럠럡럢럣럤럥럦럧럨럩럪럫러럭럮럯런럱럲럳럴럵럶럷럸럹럺럻럼럽럾럿렀렁렂렃렄렅렆렇레렉렊렋렌렍렎렏렐렑렒렓렔렕렖렗렘렙렚렛렜렝렞렟렠렡렢렣려력렦렧련렩렪렫렬렭렮렯렰렱렲렳렴렵렶렷렸령렺렻렼렽렾렿례롁롂롃롄롅롆롇롈롉롊롋롌롍롎롏롐롑롒롓롔롕롖롗롘롙롚롛로록롞롟론롡롢롣롤롥롦롧롨롩롪롫롬롭롮롯롰롱롲롳롴롵롶롷롸롹롺롻롼롽롾롿뢀뢁뢂뢃뢄뢅뢆뢇뢈뢉뢊뢋뢌뢍뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟뢠뢡뢢뢣뢤뢥뢦뢧뢨뢩뢪뢫뢬뢭뢮뢯뢰뢱뢲뢳뢴뢵뢶뢷뢸뢹뢺뢻뢼뢽뢾뢿룀룁룂룃룄룅룆룇룈룉룊룋료룍룎룏룐룑룒룓룔룕룖룗룘룙룚룛룜룝룞룟룠룡룢룣룤룥룦룧루룩룪룫룬룭룮룯룰룱룲룳룴룵룶룷룸룹룺룻룼룽룾룿뤀뤁뤂뤃뤄뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤘뤙뤚뤛뤜뤝뤞뤟뤠뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤼뤽뤾뤿륀륁륂륃륄륅륆륇륈륉륊륋륌륍륎륏륐륑륒륓륔륕륖륗류륙륚륛륜륝륞륟률륡륢륣륤륥륦륧륨륩륪륫륬륭륮륯륰륱륲륳르륵륶륷른륹륺륻를륽륾륿릀릁릂릃름릅릆릇릈릉릊릋릌릍릎릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞릟릠릡릢릣릤릥릦릧릨릩릪릫리릭릮릯린릱릲릳릴릵릶릷릸릹릺릻림립릾릿맀링맂맃맄맅맆맇마막맊맋만맍많맏말맑맒맓맔맕맖맗맘맙맚맛맜망맞맟맠맡맢맣매맥맦맧맨맩맪맫맬맭맮맯맰맱맲맳맴맵맶맷맸맹맺맻맼맽맾맿먀먁먂먃먄먅먆먇먈먉먊먋먌먍먎먏먐먑먒먓먔먕먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷머먹먺먻먼먽먾먿멀멁멂멃멄멅멆멇멈멉멊멋멌멍멎멏멐멑멒멓메멕멖멗멘멙멚멛멜멝멞멟멠멡멢멣멤멥멦멧멨멩멪멫멬멭멮멯며멱멲멳면멵멶멷멸멹멺멻멼멽멾멿몀몁몂몃몄명몆몇몈몉몊몋몌몍몎몏몐몑몒몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧모목몪몫몬몭몮몯몰몱몲몳몴몵몶몷몸몹몺못몼몽몾몿뫀뫁뫂뫃뫄뫅뫆뫇뫈뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫘뫙뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫼뫽뫾뫿묀묁묂묃묄묅묆묇묈묉묊묋묌묍묎묏묐묑묒묓묔묕묖묗묘묙묚묛묜묝묞묟묠묡묢묣묤묥묦묧묨묩묪묫묬묭묮묯묰묱묲묳무묵묶묷문묹묺묻물묽묾묿뭀뭁뭂뭃뭄뭅뭆뭇뭈뭉뭊뭋뭌뭍뭎뭏뭐뭑뭒뭓뭔뭕뭖뭗뭘뭙뭚뭛뭜뭝뭞뭟뭠뭡뭢뭣뭤뭥뭦뭧뭨뭩뭪뭫뭬뭭뭮뭯뭰뭱뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮈뮉뮊뮋뮌뮍뮎뮏뮐뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮤뮥뮦뮧뮨뮩뮪뮫뮬뮭뮮뮯뮰뮱뮲뮳뮴뮵뮶뮷뮸뮹뮺뮻뮼뮽뮾뮿므믁믂믃믄믅믆믇믈믉믊믋믌믍믎믏믐믑믒믓믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷미믹믺믻민믽믾믿밀밁밂밃밄밅밆밇밈밉밊밋밌밍밎및밐밑밒밓바박밖밗반밙밚받발밝밞밟밠밡밢밣밤밥밦밧밨방밪밫밬밭밮밯배백밲밳밴밵밶밷밸밹밺밻밼밽밾밿뱀뱁뱂뱃뱄뱅뱆뱇뱈뱉뱊뱋뱌뱍뱎뱏뱐뱑뱒뱓뱔뱕뱖뱗뱘뱙뱚뱛뱜뱝뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃버벅벆벇번벉벊벋벌벍벎벏벐벑벒벓범법벖벗벘벙벚벛벜벝벞벟베벡벢벣벤벥벦벧벨벩벪벫벬벭벮벯벰벱벲벳벴벵벶벷벸벹벺벻벼벽벾벿변볁볂볃별볅볆볇볈볉볊볋볌볍볎볏볐병볒볓볔볕볖볗볘볙볚볛볜볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳보복볶볷본볹볺볻볼볽볾볿봀봁봂봃봄봅봆봇봈봉봊봋봌봍봎봏봐봑봒봓봔봕봖봗봘봙봚봛봜봝봞봟봠봡봢봣봤봥봦봧봨봩봪봫봬봭봮봯봰봱봲봳봴봵봶봷봸봹봺봻봼봽봾봿뵀뵁뵂뵃뵄뵅뵆뵇뵈뵉뵊뵋뵌뵍뵎뵏뵐뵑뵒뵓뵔뵕뵖뵗뵘뵙뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵤뵥뵦뵧뵨뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿부북붂붃분붅붆붇불붉붊붋붌붍붎붏붐붑붒붓붔붕붖붗붘붙붚붛붜붝붞붟붠붡붢붣붤붥붦붧붨붩붪붫붬붭붮붯붰붱붲붳붴붵붶붷붸붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑뷒뷓뷔뷕뷖뷗뷘뷙뷚뷛뷜뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷩뷪뷫뷬뷭뷮뷯뷰뷱뷲뷳뷴뷵뷶뷷뷸뷹뷺뷻뷼뷽뷾뷿븀븁븂븃븄븅븆븇븈븉븊븋브븍븎븏븐븑븒븓블븕븖븗븘븙븚븛븜븝븞븟븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃비빅빆빇빈빉빊빋빌빍빎빏빐빑빒빓빔빕빖빗빘빙빚빛빜빝빞빟빠빡빢빣빤빥빦빧빨빩빪빫빬빭빮빯빰빱빲빳빴빵빶빷빸빹빺빻빼빽빾빿뺀뺁뺂뺃뺄뺅뺆뺇뺈뺉뺊뺋뺌뺍뺎뺏뺐뺑뺒뺓뺔뺕뺖뺗뺘뺙뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺨뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻐뻑뻒뻓뻔뻕뻖뻗뻘뻙뻚뻛뻜뻝뻞뻟뻠뻡뻢뻣뻤뻥뻦뻧뻨뻩뻪뻫뻬뻭뻮뻯뻰뻱뻲뻳뻴뻵뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼁뼂뼃뼄뼅뼆뼇뼈뼉뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼘뼙뼚뼛뼜뼝뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽀뽁뽂뽃뽄뽅뽆뽇뽈뽉뽊뽋뽌뽍뽎뽏뽐뽑뽒뽓뽔뽕뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾔뾕뾖뾗뾘뾙뾚뾛뾜뾝뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾰뾱뾲뾳뾴뾵뾶뾷뾸뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿅뿆뿇뿈뿉뿊뿋뿌뿍뿎뿏뿐뿑뿒뿓뿔뿕뿖뿗뿘뿙뿚뿛뿜뿝뿞뿟뿠뿡뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀼쀽쀾쀿쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁑쁒쁓쁔쁕쁖쁗쁘쁙쁚쁛쁜쁝쁞쁟쁠쁡쁢쁣쁤쁥쁦쁧쁨쁩쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삐삑삒삓삔삕삖삗삘삙삚삛삜삝삞삟삠삡삢삣삤삥삦삧삨삩삪삫사삭삮삯산삱삲삳살삵삶삷삸삹삺삻삼삽삾삿샀상샂샃샄샅샆샇새색샊샋샌샍샎샏샐샑샒샓샔샕샖샗샘샙샚샛샜생샞샟샠샡샢샣샤샥샦샧샨샩샪샫샬샭샮샯샰샱샲샳샴샵샶샷샸샹샺샻샼샽샾샿섀섁섂섃섄섅섆섇섈섉섊섋섌섍섎섏섐섑섒섓섔섕섖섗섘섙섚섛서석섞섟선섡섢섣설섥섦섧섨섩섪섫섬섭섮섯섰성섲섳섴섵섶섷세섹섺섻센섽섾섿셀셁셂셃셄셅셆셇셈셉셊셋셌셍셎셏셐셑셒셓셔셕셖셗션셙셚셛셜셝셞셟셠셡셢셣셤셥셦셧셨셩셪셫셬셭셮셯셰셱셲셳셴셵셶셷셸셹셺셻셼셽셾셿솀솁솂솃솄솅솆솇솈솉솊솋소속솎솏손솑솒솓솔솕솖솗솘솙솚솛솜솝솞솟솠송솢솣솤솥솦솧솨솩솪솫솬솭솮솯솰솱솲솳솴솵솶솷솸솹솺솻솼솽솾솿쇀쇁쇂쇃쇄쇅쇆쇇쇈쇉쇊쇋쇌쇍쇎쇏쇐쇑쇒쇓쇔쇕쇖쇗쇘쇙쇚쇛쇜쇝쇞쇟쇠쇡쇢쇣쇤쇥쇦쇧쇨쇩쇪쇫쇬쇭쇮쇯쇰쇱쇲쇳쇴쇵쇶쇷쇸쇹쇺쇻쇼쇽쇾쇿숀숁숂숃숄숅숆숇숈숉숊숋숌숍숎숏숐숑숒숓숔숕숖숗수숙숚숛순숝숞숟술숡숢숣숤숥숦숧숨숩숪숫숬숭숮숯숰숱숲숳숴숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅쉆쉇쉈쉉쉊쉋쉌쉍쉎쉏쉐쉑쉒쉓쉔쉕쉖쉗쉘쉙쉚쉛쉜쉝쉞쉟쉠쉡쉢쉣쉤쉥쉦쉧쉨쉩쉪쉫쉬쉭쉮쉯쉰쉱쉲쉳쉴쉵쉶쉷쉸쉹쉺쉻쉼쉽쉾쉿슀슁슂슃슄슅슆슇슈슉슊슋슌슍슎슏슐슑슒슓슔슕슖슗슘슙슚슛슜슝슞슟슠슡슢슣스슥슦슧슨슩슪슫슬슭슮슯슰슱슲슳슴습슶슷슸승슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛시식싞싟신싡싢싣실싥싦싧싨싩싪싫심십싮싯싰싱싲싳싴싵싶싷싸싹싺싻싼싽싾싿쌀쌁쌂쌃쌄쌅쌆쌇쌈쌉쌊쌋쌌쌍쌎쌏쌐쌑쌒쌓쌔쌕쌖쌗쌘쌙쌚쌛쌜쌝쌞쌟쌠쌡쌢쌣쌤쌥쌦쌧쌨쌩쌪쌫쌬쌭쌮쌯쌰쌱쌲쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썅썆썇썈썉썊썋썌썍썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧써썩썪썫썬썭썮썯썰썱썲썳썴썵썶썷썸썹썺썻썼썽썾썿쎀쎁쎂쎃쎄쎅쎆쎇쎈쎉쎊쎋쎌쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏀쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏘쏙쏚쏛쏜쏝쏞쏟쏠쏡쏢쏣쏤쏥쏦쏧쏨쏩쏪쏫쏬쏭쏮쏯쏰쏱쏲쏳쏴쏵쏶쏷쏸쏹쏺쏻쏼쏽쏾쏿쐀쐁쐂쐃쐄쐅쐆쐇쐈쐉쐊쐋쐌쐍쐎쐏쐐쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚쐛쐜쐝쐞쐟쐠쐡쐢쐣쐤쐥쐦쐧쐨쐩쐪쐫쐬쐭쐮쐯쐰쐱쐲쐳쐴쐵쐶쐷쐸쐹쐺쐻쐼쐽쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑈쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑤쑥쑦쑧쑨쑩쑪쑫쑬쑭쑮쑯쑰쑱쑲쑳쑴쑵쑶쑷쑸쑹쑺쑻쑼쑽쑾쑿쒀쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒔쒕쒖쒗쒘쒙쒚쒛쒜쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒸쒹쒺쒻쒼쒽쒾쒿쓀쓁쓂쓃쓄쓅쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟쓠쓡쓢쓣쓤쓥쓦쓧쓨쓩쓪쓫쓬쓭쓮쓯쓰쓱쓲쓳쓴쓵쓶쓷쓸쓹쓺쓻쓼쓽쓾쓿씀씁씂씃씄씅씆씇씈씉씊씋씌씍씎씏씐씑씒씓씔씕씖씗씘씙씚씛씜씝씞씟씠씡씢씣씤씥씦씧씨씩씪씫씬씭씮씯씰씱씲씳씴씵씶씷씸씹씺씻씼씽씾씿앀앁앂앃아악앆앇안앉않앋알앍앎앏앐앑앒앓암압앖앗았앙앚앛앜앝앞앟애액앢앣앤앥앦앧앨앩앪앫앬앭앮앯앰앱앲앳앴앵앶앷앸앹앺앻야약앾앿얀얁얂얃얄얅얆얇얈얉얊얋얌얍얎얏얐양얒얓얔얕얖얗얘얙얚얛얜얝얞얟얠얡얢얣얤얥얦얧얨얩얪얫얬얭얮얯얰얱얲얳어억얶얷언얹얺얻얼얽얾얿엀엁엂엃엄업없엇었엉엊엋엌엍엎엏에엑엒엓엔엕엖엗엘엙엚엛엜엝엞엟엠엡엢엣엤엥엦엧엨엩엪엫여역엮엯연엱엲엳열엵엶엷엸엹엺엻염엽엾엿였영옂옃옄옅옆옇예옉옊옋옌옍옎옏옐옑옒옓옔옕옖옗옘옙옚옛옜옝옞옟옠옡옢옣오옥옦옧온옩옪옫올옭옮옯옰옱옲옳옴옵옶옷옸옹옺옻옼옽옾옿와왁왂왃완왅왆왇왈왉왊왋왌왍왎왏왐왑왒왓왔왕왖왗왘왙왚왛왜왝왞왟왠왡왢왣왤왥왦왧왨왩왪왫왬왭왮왯왰왱왲왳왴왵왶왷외왹왺왻왼왽왾왿욀욁욂욃욄욅욆욇욈욉욊욋욌욍욎욏욐욑욒욓요욕욖욗욘욙욚욛욜욝욞욟욠욡욢욣욤욥욦욧욨용욪욫욬욭욮욯우욱욲욳운욵욶욷울욹욺욻욼욽욾욿움웁웂웃웄웅웆웇웈웉웊웋워웍웎웏원웑웒웓월웕웖웗웘웙웚웛웜웝웞웟웠웡웢웣웤웥웦웧웨웩웪웫웬웭웮웯웰웱웲웳웴웵웶웷웸웹웺웻웼웽웾웿윀윁윂윃위윅윆윇윈윉윊윋윌윍윎윏윐윑윒윓윔윕윖윗윘윙윚윛윜윝윞윟유육윢윣윤윥윦윧율윩윪윫윬윭윮윯윰윱윲윳윴융윶윷윸윹윺윻으윽윾윿은읁읂읃을읅읆읇읈읉읊읋음읍읎읏읐응읒읓읔읕읖읗의읙읚읛읜읝읞읟읠읡읢읣읤읥읦읧읨읩읪읫읬읭읮읯읰읱읲읳이익읶읷인읹읺읻일읽읾읿잀잁잂잃임입잆잇있잉잊잋잌잍잎잏자작잒잓잔잕잖잗잘잙잚잛잜잝잞잟잠잡잢잣잤장잦잧잨잩잪잫재잭잮잯잰잱잲잳잴잵잶잷잸잹잺잻잼잽잾잿쟀쟁쟂쟃쟄쟅쟆쟇쟈쟉쟊쟋쟌쟍쟎쟏쟐쟑쟒쟓쟔쟕쟖쟗쟘쟙쟚쟛쟜쟝쟞쟟쟠쟡쟢쟣쟤쟥쟦쟧쟨쟩쟪쟫쟬쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺쟻쟼쟽쟾쟿저적젂젃전젅젆젇절젉젊젋젌젍젎젏점접젒젓젔정젖젗젘젙젚젛제젝젞젟젠젡젢젣젤젥젦젧젨젩젪젫젬젭젮젯젰젱젲젳젴젵젶젷져젹젺젻젼젽젾젿졀졁졂졃졄졅졆졇졈졉졊졋졌졍졎졏졐졑졒졓졔졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯조족졲졳존졵졶졷졸졹졺졻졼졽졾졿좀좁좂좃좄종좆좇좈좉좊좋좌좍좎좏좐좑좒좓좔좕좖좗좘좙좚좛좜좝좞좟좠좡좢좣좤좥좦좧좨좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좼좽좾좿죀죁죂죃죄죅죆죇죈죉죊죋죌죍죎죏죐죑죒죓죔죕죖죗죘죙죚죛죜죝죞죟죠죡죢죣죤죥죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죵죶죷죸죹죺죻주죽죾죿준줁줂줃줄줅줆줇줈줉줊줋줌줍줎줏줐중줒줓줔줕줖줗줘줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫줬줭줮줯줰줱줲줳줴줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇쥈쥉쥊쥋쥌쥍쥎쥏쥐쥑쥒쥓쥔쥕쥖쥗쥘쥙쥚쥛쥜쥝쥞쥟쥠쥡쥢쥣쥤쥥쥦쥧쥨쥩쥪쥫쥬쥭쥮쥯쥰쥱쥲쥳쥴쥵쥶쥷쥸쥹쥺쥻쥼쥽쥾쥿즀즁즂즃즄즅즆즇즈즉즊즋즌즍즎즏즐즑즒즓즔즕즖즗즘즙즚즛즜증즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿지직짂짃진짅짆짇질짉짊짋짌짍짎짏짐집짒짓짔징짖짗짘짙짚짛짜짝짞짟짠짡짢짣짤짥짦짧짨짩짪짫짬짭짮짯짰짱짲짳짴짵짶짷째짹짺짻짼짽짾짿쨀쨁쨂쨃쨄쨅쨆쨇쨈쨉쨊쨋쨌쨍쨎쨏쨐쨑쨒쨓쨔쨕쨖쨗쨘쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥쨦쨧쨨쨩쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆쩇쩈쩉쩊쩋쩌쩍쩎쩏쩐쩑쩒쩓쩔쩕쩖쩗쩘쩙쩚쩛쩜쩝쩞쩟쩠쩡쩢쩣쩤쩥쩦쩧쩨쩩쩪쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩽쩾쩿쪀쪁쪂쪃쪄쪅쪆쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪘쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪼쪽쪾쪿쫀쫁쫂쫃쫄쫅쫆쫇쫈쫉쫊쫋쫌쫍쫎쫏쫐쫑쫒쫓쫔쫕쫖쫗쫘쫙쫚쫛쫜쫝쫞쫟쫠쫡쫢쫣쫤쫥쫦쫧쫨쫩쫪쫫쫬쫭쫮쫯쫰쫱쫲쫳쫴쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬈쬉쬊쬋쬌쬍쬎쬏쬐쬑쬒쬓쬔쬕쬖쬗쬘쬙쬚쬛쬜쬝쬞쬟쬠쬡쬢쬣쬤쬥쬦쬧쬨쬩쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭁쭂쭃쭄쭅쭆쭇쭈쭉쭊쭋쭌쭍쭎쭏쭐쭑쭒쭓쭔쭕쭖쭗쭘쭙쭚쭛쭜쭝쭞쭟쭠쭡쭢쭣쭤쭥쭦쭧쭨쭩쭪쭫쭬쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭸쭹쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮜쮝쮞쮟쮠쮡쮢쮣쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮸쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯔쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟쯠쯡쯢쯣쯤쯥쯦쯧쯨쯩쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찌찍찎찏찐찑찒찓찔찕찖찗찘찙찚찛찜찝찞찟찠찡찢찣찤찥찦찧차착찪찫찬찭찮찯찰찱찲찳찴찵찶찷참찹찺찻찼창찾찿챀챁챂챃채책챆챇챈챉챊챋챌챍챎챏챐챑챒챓챔챕챖챗챘챙챚챛챜챝챞챟챠챡챢챣챤챥챦챧챨챩챪챫챬챭챮챯챰챱챲챳챴챵챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓첔첕첖첗처척첚첛천첝첞첟철첡첢첣첤첥첦첧첨첩첪첫첬청첮첯첰첱첲첳체첵첶첷첸첹첺첻첼첽첾첿쳀쳁쳂쳃쳄쳅쳆쳇쳈쳉쳊쳋쳌쳍쳎쳏쳐쳑쳒쳓쳔쳕쳖쳗쳘쳙쳚쳛쳜쳝쳞쳟쳠쳡쳢쳣쳤쳥쳦쳧쳨쳩쳪쳫쳬쳭쳮쳯쳰쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽쳾쳿촀촁촂촃촄촅촆촇초촉촊촋촌촍촎촏촐촑촒촓촔촕촖촗촘촙촚촛촜총촞촟촠촡촢촣촤촥촦촧촨촩촪촫촬촭촮촯촰촱촲촳촴촵촶촷촸촹촺촻촼촽촾촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛최쵝쵞쵟쵠쵡쵢쵣쵤쵥쵦쵧쵨쵩쵪쵫쵬쵭쵮쵯쵰쵱쵲쵳쵴쵵쵶쵷쵸쵹쵺쵻쵼쵽쵾쵿춀춁춂춃춄춅춆춇춈춉춊춋춌춍춎춏춐춑춒춓추축춖춗춘춙춚춛출춝춞춟춠춡춢춣춤춥춦춧춨충춪춫춬춭춮춯춰춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췄췅췆췇췈췉췊췋췌췍췎췏췐췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡췢췣췤췥췦췧취췩췪췫췬췭췮췯췰췱췲췳췴췵췶췷췸췹췺췻췼췽췾췿츀츁츂츃츄츅츆츇츈츉츊츋츌츍츎츏츐츑츒츓츔츕츖츗츘츙츚츛츜츝츞츟츠측츢츣츤츥츦츧츨츩츪츫츬츭츮츯츰츱츲츳츴층츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉칊칋칌칍칎칏칐칑칒칓칔칕칖칗치칙칚칛친칝칞칟칠칡칢칣칤칥칦칧침칩칪칫칬칭칮칯칰칱칲칳카칵칶칷칸칹칺칻칼칽칾칿캀캁캂캃캄캅캆캇캈캉캊캋캌캍캎캏캐캑캒캓캔캕캖캗캘캙캚캛캜캝캞캟캠캡캢캣캤캥캦캧캨캩캪캫캬캭캮캯캰캱캲캳캴캵캶캷캸캹캺캻캼캽캾캿컀컁컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕컖컗컘컙컚컛컜컝컞컟컠컡컢컣커컥컦컧컨컩컪컫컬컭컮컯컰컱컲컳컴컵컶컷컸컹컺컻컼컽컾컿케켁켂켃켄켅켆켇켈켉켊켋켌켍켎켏켐켑켒켓켔켕켖켗켘켙켚켛켜켝켞켟켠켡켢켣켤켥켦켧켨켩켪켫켬켭켮켯켰켱켲켳켴켵켶켷켸켹켺켻켼켽켾켿콀콁콂콃콄콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓코콕콖콗콘콙콚콛콜콝콞콟콠콡콢콣콤콥콦콧콨콩콪콫콬콭콮콯콰콱콲콳콴콵콶콷콸콹콺콻콼콽콾콿쾀쾁쾂쾃쾄쾅쾆쾇쾈쾉쾊쾋쾌쾍쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾡쾢쾣쾤쾥쾦쾧쾨쾩쾪쾫쾬쾭쾮쾯쾰쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿄쿅쿆쿇쿈쿉쿊쿋쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿠쿡쿢쿣쿤쿥쿦쿧쿨쿩쿪쿫쿬쿭쿮쿯쿰쿱쿲쿳쿴쿵쿶쿷쿸쿹쿺쿻쿼쿽쿾쿿퀀퀁퀂퀃퀄퀅퀆퀇퀈퀉퀊퀋퀌퀍퀎퀏퀐퀑퀒퀓퀔퀕퀖퀗퀘퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬퀭퀮퀯퀰퀱퀲퀳퀴퀵퀶퀷퀸퀹퀺퀻퀼퀽퀾퀿큀큁큂큃큄큅큆큇큈큉큊큋큌큍큎큏큐큑큒큓큔큕큖큗큘큙큚큛큜큝큞큟큠큡큢큣큤큥큦큧큨큩큪큫크큭큮큯큰큱큲큳클큵큶큷큸큹큺큻큼큽큾큿킀킁킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣키킥킦킧킨킩킪킫킬킭킮킯킰킱킲킳킴킵킶킷킸킹킺킻킼킽킾킿타탁탂탃탄탅탆탇탈탉탊탋탌탍탎탏탐탑탒탓탔탕탖탗탘탙탚탛태택탞탟탠탡탢탣탤탥탦탧탨탩탪탫탬탭탮탯탰탱탲탳탴탵탶탷탸탹탺탻탼탽탾탿턀턁턂턃턄턅턆턇턈턉턊턋턌턍턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯터턱턲턳턴턵턶턷털턹턺턻턼턽턾턿텀텁텂텃텄텅텆텇텈텉텊텋테텍텎텏텐텑텒텓텔텕텖텗텘텙텚텛템텝텞텟텠텡텢텣텤텥텦텧텨텩텪텫텬텭텮텯텰텱텲텳텴텵텶텷텸텹텺텻텼텽텾텿톀톁톂톃톄톅톆톇톈톉톊톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟토톡톢톣톤톥톦톧톨톩톪톫톬톭톮톯톰톱톲톳톴통톶톷톸톹톺톻톼톽톾톿퇀퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏퇐퇑퇒퇓퇔퇕퇖퇗퇘퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪퇫퇬퇭퇮퇯퇰퇱퇲퇳퇴퇵퇶퇷퇸퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆툇툈툉툊툋툌툍툎툏툐툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩툪툫투툭툮툯툰툱툲툳툴툵툶툷툸툹툺툻툼툽툾툿퉀퉁퉂퉃퉄퉅퉆퉇퉈퉉퉊퉋퉌퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉜퉝퉞퉟퉠퉡퉢퉣퉤퉥퉦퉧퉨퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튀튁튂튃튄튅튆튇튈튉튊튋튌튍튎튏튐튑튒튓튔튕튖튗튘튙튚튛튜튝튞튟튠튡튢튣튤튥튦튧튨튩튪튫튬튭튮튯튰튱튲튳튴튵튶튷트특튺튻튼튽튾튿틀틁틂틃틄틅틆틇틈틉틊틋틌틍틎틏틐틑틒틓틔틕틖틗틘틙틚틛틜틝틞틟틠틡틢틣틤틥틦틧틨틩틪틫틬틭틮틯티틱틲틳틴틵틶틷틸틹틺틻틼틽틾틿팀팁팂팃팄팅팆팇팈팉팊팋파팍팎팏판팑팒팓팔팕팖팗팘팙팚팛팜팝팞팟팠팡팢팣팤팥팦팧패팩팪팫팬팭팮팯팰팱팲팳팴팵팶팷팸팹팺팻팼팽팾팿퍀퍁퍂퍃퍄퍅퍆퍇퍈퍉퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍼퍽퍾퍿펀펁펂펃펄펅펆펇펈펉펊펋펌펍펎펏펐펑펒펓펔펕펖펗페펙펚펛펜펝펞펟펠펡펢펣펤펥펦펧펨펩펪펫펬펭펮펯펰펱펲펳펴펵펶펷편펹펺펻펼펽펾펿폀폁폂폃폄폅폆폇폈평폊폋폌폍폎폏폐폑폒폓폔폕폖폗폘폙폚폛폜폝폞폟폠폡폢폣폤폥폦폧폨폩폪폫포폭폮폯폰폱폲폳폴폵폶폷폸폹폺폻폼폽폾폿퐀퐁퐂퐃퐄퐅퐆퐇퐈퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖퐗퐘퐙퐚퐛퐜퐝퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷퐸퐹퐺퐻퐼퐽퐾퐿푀푁푂푃푄푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓푔푕푖푗푘푙푚푛표푝푞푟푠푡푢푣푤푥푦푧푨푩푪푫푬푭푮푯푰푱푲푳푴푵푶푷푸푹푺푻푼푽푾푿풀풁풂풃풄풅풆풇품풉풊풋풌풍풎풏풐풑풒풓풔풕풖풗풘풙풚풛풜풝풞풟풠풡풢풣풤풥풦풧풨풩풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓌퓍퓎퓏퓐퓑퓒퓓퓔퓕퓖퓗퓘퓙퓚퓛퓜퓝퓞퓟퓠퓡퓢퓣퓤퓥퓦퓧퓨퓩퓪퓫퓬퓭퓮퓯퓰퓱퓲퓳퓴퓵퓶퓷퓸퓹퓺퓻퓼퓽퓾퓿픀픁픂픃프픅픆픇픈픉픊픋플픍픎픏픐픑픒픓픔픕픖픗픘픙픚픛픜픝픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷픸픹픺픻피픽픾픿핀핁핂핃필핅핆핇핈핉핊핋핌핍핎핏핐핑핒핓핔핕핖핗하학핚핛한핝핞핟할핡핢핣핤핥핦핧함합핪핫핬항핮핯핰핱핲핳해핵핶핷핸핹핺핻핼핽핾핿햀햁햂햃햄햅햆햇했행햊햋햌햍햎햏햐햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤향햦햧햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇허헉헊헋헌헍헎헏헐헑헒헓헔헕헖헗험헙헚헛헜헝헞헟헠헡헢헣헤헥헦헧헨헩헪헫헬헭헮헯헰헱헲헳헴헵헶헷헸헹헺헻헼헽헾헿혀혁혂혃현혅혆혇혈혉혊혋혌혍혎혏혐협혒혓혔형혖혗혘혙혚혛혜혝혞혟혠혡혢혣혤혥혦혧혨혩혪혫혬혭혮혯혰혱혲혳혴혵혶혷호혹혺혻혼혽혾혿홀홁홂홃홄홅홆홇홈홉홊홋홌홍홎홏홐홑홒홓화확홖홗환홙홚홛활홝홞홟홠홡홢홣홤홥홦홧홨황홪홫홬홭홮홯홰홱홲홳홴홵홶홷홸홹홺홻홼홽홾홿횀횁횂횃횄횅횆횇횈횉횊횋회획횎횏횐횑횒횓횔횕횖횗횘횙횚횛횜횝횞횟횠횡횢횣횤횥횦횧효횩횪횫횬횭횮횯횰횱횲횳횴횵횶횷횸횹횺횻횼횽횾횿훀훁훂훃후훅훆훇훈훉훊훋훌훍훎훏훐훑훒훓훔훕훖훗훘훙훚훛훜훝훞훟훠훡훢훣훤훥훦훧훨훩훪훫훬훭훮훯훰훱훲훳훴훵훶훷훸훹훺훻훼훽훾훿휀휁휂휃휄휅휆휇휈휉휊휋휌휍휎휏휐휑휒휓휔휕휖휗휘휙휚휛휜휝휞휟휠휡휢휣휤휥휦휧휨휩휪휫휬휭휮휯휰휱휲휳휴휵휶휷휸휹휺휻휼휽휾휿흀흁흂흃흄흅흆흇흈흉흊흋흌흍흎흏흐흑흒흓흔흕흖흗흘흙흚흛흜흝흞흟흠흡흢흣흤흥흦흧흨흩흪흫희흭흮흯흰흱흲흳흴흵흶흷흸흹흺흻흼흽흾흿��	

 !"#$%%%%%%%%%%%%%%%%%%%%%%%%%%%%힀힁힂힃힄힅힆힇히힉힊힋힌힍힎힏힐힑힒힓힔힕힖힗힘힙힚힛힜힝힞힟힠힡힢힣��	

 ��	

יִײַשׁשׂשּׁשּׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּ��	

נּסּףּפּצּקּרּשּתּוֹבֿכֿפֿ�������	

�������	

����������	

��������	

����������	��	

����������	

��������	������	

��������	
��������������������	

������	
��������������������������������	

������������������	

����������������������������������������������������������������������	
������	

��	

������������	

 !"#$%&'(��	

������	
��������	

��	

��	

����	

������������������	

��	

A�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI;8���T\���|L����\������������zRx�$����@FJw�?:*3$"D���0\����p����AH���lF�B�B �B(�A0�A8�DP�
8A0A(B BBBA����$HWGNU�p0`$��@��8t����
���������8t����	������(
tP$X$���o`��
2 $H��	���o����o�o����o�$`p�GA$3a1(�GA$3p1067�tGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY��GA+GLIBCXX_ASSERTIONSutf8_mac.so-2.2.10-35.el8.x86_64.debug ���7zXZ�ִF!t/���8]?�E�h=��ڊ�2N���^ �ܫeвOY��)c�5���2LJ��6K	�GL�K33M6�G~*g�*e'�u�z�/�Ț<�w Ъ�xRG��m�t}���U��]�d����{0ԬmfS
j�&�$49��~(XB�iaW�eӓ#���/��������]���Py�����Yɢ\�E\s�!��mp��/A������}�d0���J�50&%�b�~�-OG�P��wt@{:�>)��c�䄂�λ��q���|C/-�����t%����Y�Lh*����U�����燩���S���7&,�";��#��(��Q��1��o��j޲�b:�.��=����Ɓ�s#���S|�u`�����Ʌ�WB����LrK�`8��r=�IT�w�T�u$0aCο�\$��ۡ?��-�Svآ������י6H
��4q�U�7W8�n����v�9a�O�*=���Hr��fkΞL���
A=�p`��Q�;L\�ɶ$�L�a�/~C��9���n�ˮ�q�¶�"��sd�����m�霧N�+��TY	�Z?^x�U^=�5����ܬ�t6}ſ��f3���wŮ�]Z9�I��~�2��$ڥ@�?e�䱉�R��6A 	}� g77�%C�^�*BuIL��C\?
����÷B��P�e�j�m��<���zmu�Ǵ�����o,�.�9��d@��-|u��A��_|{�qƮ3~���
W�g,���鐭�rÍ�_H��4X
�d
�`!��*ǛZ�8�}2H0�k'��	�&x�=䄳(ۍ
Ƭ(Q4sl�U}x��ݞ.���~�
y����îl��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��0��28���o��E���o��0T�^B��Hh((cPP@n��0w���}tt
���� �44<�pp��XX �P$P�X$X�`$`` ��$� ��$� � $ 0�0 $0 �8 d0 H
x",�"x&+lib64/ruby/2.2.0/x86_64-linux/enc/trans/emoji_sjis_kddi.so000075500000367000150402105760016575 0ustar00ELF>�@��@8	@x�x� P�P�!P�!�� ����!��!  888$$X�X�X�  S�tdX�X�X�  P�td������$$Q�tdR�tdP�P�!P�!��GNU���^��S�"�A���!�@  �	BE���|�qX{�� j , F"�(�!�0�!�(�!U�$__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_emoji_sjis_kddirb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�P�!�X�!``�!`�!��!��!
��!�b��!  �!
(�!8�!�bH�! ��!��!��!��!�! �!��H��H�a�!H��t��H����5b�!�%c�!��h�������h���������%=�!D���%5�!DH�=1�!H�*�!H9�tH���!H��t	�����H�=�!H�5��!H)�H��H��H��?H�H�tH���!H��t��fD�����=��!u+UH�=��!H��tH�=��!�Y����d������!]������w������H��H�=a�!����H�=��!H�������H��H���UTF8-KDDISJIS-KDDI 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓	∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬ʼn♯♭♪†‡¶◯	0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん�\ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ	ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω~�АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ	абвгдеёжзийклмнопрстуфхцчшщъыьэюя─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂=�	�p①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ	㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡㍻〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪��	亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭z�	院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改9d魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄9`機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈9\掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向9X后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷9T察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周9P宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾9L拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線9H 繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只9D#叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓9@&邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入9<)如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美98,鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋94/法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒902諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯9,5蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕	弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲�(8僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨9|:咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩9x=奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏9t@廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛9pC戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼9lF曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣9hI檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌9dL漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱9`O瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬9\R磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆9XU紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋9TX隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈9P[蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞9L^襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊9Ha蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮9Dd錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰9@g顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈9<j鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙	�8m纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱9�n犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑	ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"v�q9�t9�w9�z9�}9��9��9��9��9��9��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯9��涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙9��髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑	5��T��hx�	\XTPLHD@ <#8&4)0,,/(2$5 8t:p=l@hCdF`I\LXO。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚TRPULXH[D^@a<d8g4j0m�n�q�t�w�z�}������������������Ԙ�ܘ	���N���}�L���	Ț	�~��5
�w
p	�������������������������������������������������������������������������������
�����	���������������
��	�F�@�A�B�C�D�E�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�p�q�r�s�t�u�w�x�y�z�{�|�}�~����=���������������������������������	�vĜ���w
�	�]�\�e�f�g�h�����d�c���������0�	��������%x�	�T�U�V�W�X�Y�Z�[�\�]����������������g��	�����������	��������	�����������������������a��������������������-
0�	��������������o
��	�������������
Ȟ	���
�	�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S5���������	����������������������������������������������������wd�	������	��������������	������������=,�	����T���	���������l�p������(��������\����$�L�d������@�A�B�V	�X�Y�Z�q�r�s�t�u�v�w�x�y�z�����k�l����E�	�������������������������������������������������������������������������������������������������������������������������������L�����������������������������������������	�J�K�T�U�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�X��_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������	�E�[�R�SD�	������M@�	�����������\�	�e�i�`�c�a�k�j�d�l�f�n���	�_�m�b�g�h�~��������	�r�s�o�p�q�uU�	�t����D�P�<�8��T�x�����(��0�����	�������O�����s�^���N���������u���������L�������������O������h�	���T�v�V�����R�h����������������������]���T	�������\�����������]�������j�i�����������S�������������������������l�T��Y�m��	�����w�����������e�d�����t���W�����M�������������������C�N���O��	�P�������������x�����`���������L�Q�f����#��	���A�������Z���C�����R���]���������C�����������������ge�	�������T���������S�V�����U���������D�������N�����d�	�W�����E�r�W���������������������M�������C���o�U���������Z�Ԩ��L��x��\�̨P�+X�	�����q���{�����|���������[�����Y���l���������������`����m���X	�^���\�����������������������]�����������U����	���T���_�P�������b���B�������X�p�	�C���@�A�������l�D�a���E�H�F�m�G�I�`�K�J��3���V�M�N	���L���Q�P�O���R���S�D���U�T�W�V�Xu$��Y��	���Z�[���������b���[���e���Z�\�}���]�c���S�_�`�����Z�a���������T������b	�c���~�f���e���g���h�`�i�j�k�����d���n�l���m�y�o�p�q�~�u�s�t�r���v�����w�e� �	���x�y�y���������z����{�}�����}���f�~���M���������o����;Ȭ��	�n���������������Y���g�����������������������������h��}H�	�������������O�����U���������������������������n�����ȭ	�c�����������������h�������i���w�������[���J�������N@��j��	�u���E���������������k�������������������M��������������C���l����	�����m�������������k�����x�������n�����������C�������@����\	���������������������������P���m�����T�����K�����o���p�����������į	�����p���������������~�X�}�����q������	\�	�Q�������y�F�o�����f���������r���b�p���������@�����������������j�E�����i��K��	���h�e���g���D�����@���f���N�����i���������������z�����������\���	�C����������������������������������������	�����u���a���������t���B�����v�@���]���P���D���CD����i�A	���������E���N�F�G�����L�K�N�M�J�wS��	�S���O�H���I���S�B���Y�X�O�����P	���U���R���[�V�W�T�Z�Q�`�e�a�`��\	�f�P�x�h�A�^���b�[�������c�_���i�g�r�i���d���c��	�m�k���p�j�n�l�k�o�r�w�u�t[�	�Q���q�s���R�v�������}�{�|�~�`�	�\�X�x�y�����������������������	���d���������X����������!���������	�����������d���l�����c�������}��������c0���	�������������������������y�������\�n�����������	�����V�������B�y�����z�R��������	�������^�����C�_�����{����)T���	�����}�|�������������W���u�������|����k���x	������������������������������g�����������	�����Y�����h�������������U�����o���m�T�	��������������n�����������������1��	�����d���������������������������m�p�s��������������������s�	������������[�O���g�������������V���v�������������������	�����������t���_��z������������������������D�������z�@�D��	�A�@�����D�J�W�d�����B�E����W�i�F�������9��	�G�o�n���������K�L�I�W���H���P�����p{�	�����Q�O���R�P�N�P�M�����V�W���L��S�K	�k�U���X�w�Y�T�����	�}�Z�Q�[�_�\A к	���^���]���k�d�a���`�b�c�e�f� ��	���h�g�i���l���d�j�m�n� @��q	�o�p�q�r�E�s������t�u�y�F���G���v�w�w���x���y�z�{�}!|��~	�����F�����v�����G���@���������X�����q�����G���{���Q���������e�hI!���	���������������x������������Q���@�����������J���R����������������������!��	�������������������q��������������������������A�������K���s���A�!0�����	�����������r�����������W���j���w���������R����"��	������������Z���������x�������������Q"4�	����������������������������s���"��	�������������R������������������"�	�������������������������#0�	������������������������������Y#x�	������������������B�����H���I�������������b���J���F���#ȿ	�s�z���������������������t�����A���������X�#D���	���������y�����������������������N�����K�������c�H����$��	���L�������������X�M�{���x�����������N�fa$(�	�����p�����L�����f�@�C�D�B�_���F�E�A�G�H�I�L�J�K�M�����N�����U�O���$��	���P�M�Q���T���������U�|�����V���O�o����������W�X�^��������Y�J�e�$�	�Z�K�[���\�]�_���`�a�b�S�R�c�`�F����V���j�d���e�e�f�����i'%�������h�g�a��	�m�k�j�������l�k�]���p�o�n�q���r���z�s��������O�t�Ji%4�	�S�K���E�u�u�Y�Z���z����w�����y�O�x�v���|�%���h����|����@���8���8���T���T�ܱ<����X����X����(�����L����L����������D���Ⱥ�8�t����(���,���ؾ(�p���<��� ������,��� ��(�	�������{���|�������v���}�}�������������������%4�	�����������������P����������~�������p�����������������b��/&��	�������������������������������I���x���Y�����{������������q& �	�������f�����������������y���S������z�������������&�����D	���������������������������������������������& �	�������������Q���T���������������������d�S�����������������c���|7'��	�J������������������������e��������������y'(�	���������������������������������������������'����	�����������^�����������������@���A���B�C�Y�D�E�F�������[�'�����G	����������H�������K�I�L�J�M�����}���N�Q��?(|��Z	�O�V���P�c�}�R�S�W���T�R���e����������������Z�����(��	�c�S�]�d�_�f�b�a���[���Y�����U�X�S�����`�q���g���@�h�m�i���n�A���E�\�(`�	���k�w�l���g�������j�����U�����p�})��	���J�q�s�o�����{�������~�����x�����PG)L��v	�|���{���u�z�r�t�@�|�|�����T�y���T�����[�w�d�f���}�~���)����	���������`�����K�g����������������h�)$�	�������������r�������������g��
*��	�����E�������������O*��	�����T�����Q����P�������d�B���o�h�����*�	�i������������^���������F���C���[�����������������*`���	�������������������x�������������U����+��	��������q�~�����s�����������U���h�������G�~��W+4�	�������|���k�������l�������������������a�f�z�V�������{�+��	���������������������������������U���|���{���������+��	�V��������������������������f��t����������G����������E,��	�����W�����W���N��������������A���������i��������q_,�	�����������������g�������������b����\�A��������,��	���@�����B���C�j���D�F�G�H���g�X�I�J�������J���]�\���,���	�����L�������K�����L�N�]���M���N�O�������{�D�Q���p�S�V�U�����R%-��	�T�W���������������Z�m�X���Y�����[�\�����a�Y�t�^�������n�f�`����g-�	�f���]�c�b�����������}�g�e���d�_���k�i���g�m�s���-������	���u�A�t���^�����_���M�p�o�q�n�v�l�j�r�h�������������`�-�	�������h�����I�x�Z���z�����}���j���i��-.���{���j����	�y���|�~���K�����j�������V���O����������o.��	�����~���������[���������������������B���������������.h�	�����H�����������_���������I�����������X���������.���o��	�����������A����������������������������������������5/P�	�k���������^�����������������������|�������������O�y��w/��	���T���|���P�����Y���������������������/L�	��������\�����������l���������������������������/��	�������������������W�����������������~���������������M=0�	�����������k���@������������������0���h	���������@�w�������K�G���F�E�B�0��	���D�C�I�E�L���H�J�������M�Q�N18�	���O���R�S�T�U���������~�W�V�Y�\����E1��	�\�[�]���V�^���`�_�a�b�c�~���������c�������d�e���f�1���g	�i�h�w�}���c�j�l�B�k�m�n�o�p�q�s�r�t���i�u�E�k�v�a�1P���	�B�w�x�������y���������z�|�{�~�}2��	�����������C���������X�i����M2����`��	�����������������]�r�����������������D���2d�	�������������������B���������v���������������������������2��	���������������@�����������A�g���D�����������j3P�	���m�����������������k�^���F�������������hU3��	�����������l�����Y�_�Q�\�������C�Z���3 �	�������O�����������������U�t�������3x���	�������������i�����������W���������������[���~�����������Y��4��	�����������a�k���������������n�������Q�������������`����������]4X�	�������������X�����N�����������p���4����	���������������a�������������n���M�����48�	�������������������������������H�B������#5��	���Y�����R���A�������������������Q�@��e5��	�������N�I�������R�K���H���k�E�D�M�5T��G�F�L	���C���O�P���U�T�V�Y�b�S���W�5�������Q�Z	�X�]�[�^�a�Z���G�����\�`���_�J����d�h+6���������� �����t���X���D����x�����X���,����������|���������`���H���D��������0�|���H����\���H����p���P���0�����L�����`��h�	�f�����b�c�g�e�m�m�j�i�l���n���������o�q�pm6t�	���r���s�����D�������6��	���F�����u�t���x�Y�{�v�z�y�_���F�6�	���}�G��~�|�w�B�37`�	���������������R��u7��	���������������������������7��	���F��o���n���M���7(�	��R������������z����W���C��������;8l�	���������������������u���}8���	�������v��������������S�q�����������84�����	����]������������@9��	������������_���������������K���T��C9��	���������������A�������L�������P�Q�����9L�	�����������b�������l���C�������9��	�������������������D	:����	�����E�X�����H�F�����G���]������J����K:,�	�������I�������K�M�L�N���������i�����:��	���������l���������O�����������������:��	���P���Q�������;@�	����Z�@�Z�A���B�C�D�F�G�E�r�I�HS;t�	�R�K�J�L�M�O�N���Q�P���r�[�R���Y���S�p���T��c�R�b�\�j�������U�;��	�V�[�Y�X���E�W���������\�Z�{�����L�^���l�_�]���`�a�S�����f�c���b�E�;T�	�i�d�e�h�g�D�a�`�^�j�k�l�n�m�u�v���p�r�t�]�u�s��<��	�o�q�a���x�w�y�������z���|���{������s���}�~[<X�	��������������<��	���������������������������o����S�<��	�T��I�F�c����H�����W�U�V�X���������M!=��	��u�~�m�v��������X����������������������c=��	���������������^�����������������=l���	�Z�������������r�����������=��	�������������u������������������)>�	�����������������m�����Z��������k>`�	�������������\�u���m�C�j�v�{�>��	���]���^���d�������_���>��	���������V�����O���q���������������m��1?4�	������������A�@������C�Bs?��	���D�b�F�E�G�����I�H�`�������?���J�V	�_�F���S�P�O�c�L�N�j�_�M�K�I���[�����Q�R�?(��h��	�\�T�S�������d�f�T���U�W�X�H�Y�Z�[������9@���G��	�\�H���b�]���d�`�a���`�^���_����{@���H	�b���c�����B�d�e�t���g�f���i���l�j���m�k�e�@P���	���m�s�o���n�����n�p�q���r�n�t�����u���v���@��	�������w�����y�{�x�z�A�|�E���q�~��M�AA �	������}������g����������������v����h�G�j��[����^�|�����A|�	�������������J��}�y�����������A�	��M������������}����������������B|�	�������������Z������k����\�������IB�����	������z��������������U�������BP���	�����������������������������������B����	��������������������������������C�	���H���������������e�S�l��������������������������������QC\���	�������W�������������f�����������n���C���I	�@���g��C���[�R���B���h�������A�f�a�������F�����G�a�I�����H�CD�	�I���g�D�J�m�E�o�M�Q���L�U�n�i�����R���O�P���N�K�G�����WD��	�T�V�S�p���X���e�p�a�[�_�����Z�b�f�j�����\�o�d�Y�]�^����YDP�	�]������������q�g���c�h�j���m�i���������l���k�D�	�����n�u�o�v�r�����t�q�w�p�c�D�k�s��{�~�|��z�`���D<�	���}�x�@�q�J�r�D�U������y������J�����E��	�[����@���Z�������aE$�	�����Ep�	��s����������������r�u�����l������E��	��������r��������t��Q�A�`�������H'F��	���������K���������������������|��iFp����X����� �d���,�����D�����$�����8�l���L���P����x���d����X�����,����� �����H����t��t���H����T���<���H��4����h�����h������s�V	�l���������������k�������������������^���F�	�����������������������������������E�����W���F<�	�����������]�������I���������������b�����m�n�����x/G��	�����_�w�������������E�������������E�\qG�	�������e������r�����E�]���B�Gx�	�A��t���D�C�o�r�T�H�I���G���F�J�����B���G��N	�O�K�L�M�p�U�Q�����G�P�S�R�c�V�W�V�X�Z�^�[�Y�^7H(��\	�]���d�_�`�a���c�b�e�f�g�b���h�����L���v�i�j�P�kyH��	�l�m�n�o�����p���q���r���s�����C�w���M�t�q�u����w�������v�D�H��x	���z�y�|�{�}��~�����������F������H��	����������H�����m�c���F�|�����?I��	����������c�����������������p������IP�	�v����������s��������������������I���	����t�`��r���w��������xJ(�	����������������������GJt�	�����y�e������������p����������H����z������J�	���������G��������������������������J8	���{�t���������������������������K��������
K�	�������N�����f���������|����������OK�	���~���u���W�������������D�H�@������KH��	�������������U��������������K���@	��������B���}�C����~����n������J�P�QL��D	���N�F�H�R�G�K�����L�O�E�E�I�F�d�O��������V�TWLX	�m�S���U�W�X�[�Y���Z���M���\�a���`�L�	�A�b�h�]�_�^�P�A�d�c����e�f�L	�g���s�i�|�������j�k���l����Md	���q�r�m�\�n�a�o�p�z�t�w�s_M�	�u�v���x�`�u�a�{�^��|����}�~�g����������M��	�I���������w����������MX	���X����I����������������%N�	��Z���������gN�	������������I�a��NH	�����������y����������N���	�����O�s�����p�X���q�����t�����\����������������-O�	�����U����������������������������������oOX	���������������T��������������������������������O�	�������������J���A�������������O(	��������������A�@�C�B�D�P�E�F�G��5P|	�v�H���e�I�J���K�K���`�L�o�M�O���N�e�P�Q�R���S�T�UwP��V	�p�W�X�Y���G�Z�[�\�PL��	���]�v�u�`���_��P�^���L�a�b�����c�K�������i�d��f�����P�	�e�h�i�����g���]�f���r�m�w�����l�l�k�F�l�b�Y����j=Q		�o�p�n���_���F�s���a�U�v�����r�w���t�u��q�����N�����b���Qx		�z�x�k�����y�z���_�{������������~�|�@����}���������Q�	�d�y��	��������������u����w����T����R�
	���������������x����c��������ER�
�	�]�����Q������R`	�J���R�	�����L����������������^��S�	�����e�����L�������v�n�����������������������M���������\���fMS�����G���d	���������G���o���^�����������������q�������w���S�	��������������������������S,
	�������q������������NTp
	�����z������������UT�
	�����������������������������H���H�����T�
	�����x��������H����T<	����@�D�A��B�C�J�E���G�I�F�L�R�K�MU|	�N�Q�P�O�S�R���U�T�V�W�Y�X�g�Z���[�]�^]U�	�_�\�`���a�O�R����b���]�c�f���e�d�y�g�U0	�r�i���h�q�k�m���j�l�p�n�P�o�r�y���S�s�A�u�t�x�`�U�	�w���v�{�z�y�Q�|�}�~���D���#V�	�h�������������C�J�_��������HeVH	�I���v�}���������������R��q���������V�4����p��� �������H��� �l��0��@��P�\��P�@��P� t�D|�p	�	|
�
X����$
h
�
�
4t�(��@������	����t�����������r�������������������A����T�i������N��V	�����x����V�^�����������B�����������k���y���K����������J�I�������+W�������	�����W���M�������@mW`	���x�Y���S�����s�X���s�W�	������A���W�	�����U���z�����������|���������V�����y���_3X,	�����������������X������������������uX�����	�������������d������������B������j����������t�������������X�	�����b����������n������������X��	�S�����������������������������z���g;Y���	�e���C�L����������������K��}Y<	���N������������s�e�����I���|��Y�	���K������@�B������A�C����d���B����^�E�D�FZ�	��B���t���K���b�G�H�L�J�����I��CZ`	���O���������Z�M�N���L�P�Z�	�V���Y�X�L�Q�R�U�W�����Z�T�S���Z�	�^�_�`�]�\�����[�d�b���c�a���e	[<	�f�h�������g���s�i�l�j�k�m�o�p�q�t�r�u�wK[�	�v�[�	���[���	�x�M�y���z�J�[�������{�|�}�~����t�}������{����\	���������������S\�	���������h�j���\���	������~����������@�w���������A�������������z�\	�����G���@��K���u������������B��������������������]�����	�Y���W���������G������������J�������_������d[]��	���k������������������������I���P���������]�	���������������������������������r���������v���x���C�������]	���������������������f�������������!^�	���������������B���������C��c^�	�����������{�����a�����������z�����j���o����p����^8	�����z�{����������^����������@�B�A�^�	���C�D�E�F)_	�H�G�I�����H�Q�J�K���Z���������O��k_0	�L���M�{�a�`�N���O�P�R�S�U�Q�T�����V�W�X�Y�_�	�Z�\�[�^�a�]�_�`�b���_�	���c�d�����e�]�n�f�g�y���h1` 	�����w�������m�����l�j�k�i�w�n�o�p�q�s�r�xs`d	�t�v�R�u�����x���y���z��`��}	�|�~�{����������������` 	�����[�9a\ �	���������������������E������{a� 	��������������T���S�a� 	�@����������������D������a@!	�����������������L���N������Ab�!�	��������������I�����������~���������b�!��	���������������k�����������������h�������������V���bH"	�����L��������������c�"	�������������P����Ic�"	�����������������������������������c,#	�����D�C�E�L�@�A�����B���Q�J���F�K�c�#	�H�G�{�L�M�N�I���O���S�T�Rd�#	�Q�W�P�U�V�Y�X�[�\�]�h�Z�����^Qd($	���_�`�a�dt$	�b���c�d���d�$	�e�f�g�h�k�i�[�j���l���m���n�p�q�o������������e�$	���s�o�t�u�v�����w�������x�z�y�{�|�}�~�������Ye$%	���C����l���@��e�%	��V��������������������e�%	�����s�f,&�X��$��x�4��X��4����������0�(|�\� T x � 8!�!�!@"�"�"$#�#�# $l$�$�$%�%�%$&H&afP&�f��@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��X'�����������������������������������������������������������������d(����������������������������������������������������������������������������������������������������������������@�A�B�C�p)�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������|*���������������������������������������������������������������������+���������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G��,�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�����������-�������������������������������������������������������������������������.�������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K��/�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���������������0�����������������������������������������������������������������������������1�����������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O��2�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������3���������������������������������������������������������������������������������4���������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�6�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������������������������������7���������������������������������������������������������������������������������������������������������������������������������8���������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�$9�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���������������������������������������������������0:���������������������������������������������������������������������������������������������������������������������������������<;�������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�H<�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�����������������������������������������������������������T=���������������������������������������������������������������������������������������������������������������������������������`>���������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�l?�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������������������������������������������������������x@����������������������������������������������������������������������������������������������������������������������������������A���������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c��B�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������������������������������������C����������������������������������������������������������������������������������������������������������������������������������D������������������������������������������������	�f�E�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���������������������$F�����������������������������������������������������������������������������������0G�����������������������������������������������������������������������������������������������������������������@�A�B�C�<H�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������HI���������������	gTJ�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~	��J������������������������������������������������������������������K����������������������������������������������������������������������������������������������������������������	Ig�L�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~	��M��������������������	�g�N�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~	�(O���������������������������������������������������������������������������������������������������������������������������������4P��������������������������������������������������������������������������������������������������������������������������	Ig@Q\(h)t*�+�,�-�.�/�0�1�2�3�4�5789(:4;@<L=X>d?p@|A�B�C�D�EF�(G4H@ILJ�J�K�L�M�N O,P8Q<R�gDR�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~	�S���������������������������������������������������������������������������������������������������������������������������������T��������������������������������������������������������������������������������������������������������������������������	IgU	��hV	��Qh0V	�s�~���������B�Y�a�b�c�e�i�l�u���������������������hDV	�I�����������i�j���{�C�|�D�^�O�P�Q�R�S�T�U�V�W�X�F�G�������H���`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�m�_�n�O�Q��V�M�����������������������������������������������������o�b�p�`	��������������������������������h�W��������������������������������	i�X	������P���YixY�TUV(V<V�V�W�XpY�Y�i�Y(��i�Yw
�Yj�Y��������� �(�ؠ`���,�l��H'P'�R�Y�Y�Y�Y!j�Y@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmmmmmmmmmmmnopqrstummmmmmmmvwxyz{|mmmmmmmmmmm}~������������mmmmmmm��������mmmm�@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWWWWWWWXYZ[\]^_`abcdefghijklmnoWWWWWWWWpqrstuvwxyz{|}~��������WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@�	

 !"""""""""""""""#$%&'()*+,-./0123456789:;<=>?@ABC"""""""""""""DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""@�@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������������������������������������������������@�	

 !"#$%&'()*+,-./0123444444444444444444444444444444444444444444456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������������������������������������������������@�	
















































































































































































�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx��������	

 !"#$%&'(��	
��	

 !"#$%&'()*+,-./012��	

����	

����	

������	

��������	

��	

������������	

��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?@��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456788889:;<8������	
��	
������	
��	

 !��	

��	

 !"#$��	

 !��	

��	

��	

��	

��	��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'��	

��	

��	

��	

��	

��	

��	

 !"#��	

��	

 !"#$%&��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
����	

��	
��	

��	

 !"��	

 !"#$%&��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"��	

 !"��	

��	

 !��	

��	

��	

��	

��	

��	

��	

 !��	

��	

��	

��	

��	

��	

 !"#��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

 !��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

 ��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	
��	

��	

 ��	

 !"��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	
����	

��	

 !"#��	

��	

��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'()��	

��	

��	��	

��	

��	

 !"#��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

������	

��	

��	
��	

��	

 !��	

��	

��	

��	

��	

��	

��	

����	

��	

��	
��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	
��	
��	

��	

��	

��	

������	

��	

��	
��	

����	

 !"#$%&'()*+,-./0123456789:;<=����	

��	

��	

 !"#$%&'()*+,-./0123456789:;<=>>>��	

��	

 !"#$%&'()*+,������	

 !��	

  !"#$%&'()*+,-./0123456789:;<=>?��	

 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!����	
�����	




;$�8��@9��h�9���zRx�$�8��0FJw�?:*3$"D�8�� \p9��$HWGNU��``�!
\Z�bk �V
���bk �V�������x
�P�!X�!���o`��
�!0H�h	���o����o�o����o��!��GA$3a1x�GA$3p1067��GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignemoji_sjis_kddi.so-2.2.10-35.el8.x86_64.debugi1�7zXZ�ִF!t/��
�]?�E�h=��ڊ�2N�	�G��ⳲlF�KMCN=W)���{��b�y0�$�:4��%ʉ�(�(%�%���.�6"��j9�eWQcK3���Z��aẈ���,�PJ�7B-c��s�Z�H�<��h)앀�@����D�sv�]h��){*a��[�b��q8���K_�<����_…��=�\�NH�V�܃��l�v�8"0`����R	<�����-�h}��+���8.�s���HX�ۿ�����lЀ�JAģU��;�H�}�����kM>·w�0ڭ4?(����:��&g��Z�f{j�9z�Z����g��z�8�J'(�f��I��gu+�v�����LX�5'G/�[*�‘i�-.@Z���Y���T��e��5hN��7����5��꼠-mο��ݍՆ8M"B4��T�d�1�L�6����v��U茓gk6���
�]�'��RH��u>����葍5_z�-����j��wnH�X7 jjC�+���n�A�ٰU��i�AW�ʐaU1��b ՓW�����;/
5x�t�5��r�n�H�r�
�"UC�!��u�o9�ts��W?p`K�7���V�5sM`:�Jw���%�\��*L�,�˥@�gU���0RaR�;NM@�O��H��铧
�Q��'X\|�Vt�f�D#�j	NG�,U~5g`���U�{1뭴��l��xf_oj��j�b��ze@�t��}^H�9��;a>����9)7���r�Q;O?�$����s�����g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T��h^BHH0hxxc��0n�� w���}��
��� �����$�����t�X�X� �P�!P��X�!X��`�!`�` ���!�� ���!�� ��!�(�(�!(��0�a(��
 �4T�@��+lib64/ruby/2.2.0/x86_64-linux/enc/trans/big5.so000075500002157010150402105760014275 0ustar00ELF>�	@��@8	@h�h� P�P�(P�(�� ����(��(  888$$H�H�H�  S�tdH�H�H�  P�td������$$Q�tdR�tdP�P�(P�(��GNU��E,�F�/L���	���@ �	BE���|�qX�1
V _ , F"�(�(�0�(�(�(U�
�__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_big5rb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�P�(�
X�(P
`�(`�(��(@��(F��(`���(� �(F(�(@8�(`�H�(���(@��(O��(`���(�`�(Oh�(@x�(`���(��(@�(U�(`�(�(���(U��(@��(`���(�@�(@H�(`X�(`�h�(���(`��(@��(`��(���(@��(f��(`���(� �(f(�(@8�(`�H�(���(��(��(��(�( �(��H��H�q�(H��t��H����5r�(�%s�(��h�������h���������%M�(D���%E�(DH�=A�(H�:�(H9�tH���(H��t	�����H�=�(H�5
�(H)�H��H��H��?H�H�tH���(H��t��fD�����=��(u+UH�=��(H��tH�=�(�Y����d������(]������w������H��H�=q�(����H�=�(����H�=�(��H�=m�(���H�=��(����H�=�(����H�=i�(����H�=��(���H�=�(���H�=e�(H�������H��H���UTF-8Big5-UAOCP951Big5-HKSCSCP950Big5	 ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/�\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭╮╰╯═╞╪╡◢◣◥◤╱╲╳0123456789ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv��wxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ	€�一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙��世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�	共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣��作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵��咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附��陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄��耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓��浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�"虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀��$娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�'毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼��)莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�,婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋��.溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�1詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼��3媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�6睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊��8辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�;愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬��=罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�@劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃��B瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�E輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡��G濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�J錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬��L瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�O駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦��Q鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�T願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴��V護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�Y讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲��[�^��`乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�c汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇��e杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�h坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲��j泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�m哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺��o柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�r穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱��t唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�w毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐��y笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�|酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏��~崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉��淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟���耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪��釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔���惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞��湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥���罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺��軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆���媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼��毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓���稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤��觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠���凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉��榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓���禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻��裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘���噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒��澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟���膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧��踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮���噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸��澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘���蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌��錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎���檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞��蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜���鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶��璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧���蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰��徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕���譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲��嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿���鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥��蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚���糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾��讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚���纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓����	�����"�$'�),�.1�36�8;�=@�BE�GJ�LO�QT�VY�[^�`c�eh�jm�or�tw�y|�~���������������������������������������������������������C��	�����X���PD�	�����8��	������������
X�	�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�jL���k�l	�m�n�o�p�q�r�s�,�P��`��`�	�V�X���������L�K�E�������x�	��4��	�J���Kv��	�����������������������	����������������� �	�A������������������������<P�	����������~��	������������w	�x�z�{�|�}�u�t�s�r�q��	�����������������������������������������������������������~�������������ZD�	�b�c�d�e�f�g�h�i�p�o�n�m�l�k�j���v�y���������������	�������������������(�	����
\���	��Lt���P������H���������� �T�l�������@�B�C��	�q�r�m�n�u�v�y�z�i�j�E�e�f�������������������������	�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������������	T�	��T	��	�U�V�P�Q�R�T�	�	�W�S�����O�	4�L�P����,�P�
X��@�B	�C�E�V�T�W�U�F���O�M�����B�A�@�C���������X���P���c��˱�Y���D�d\
|�	�@�D�[�G�\���E�G�F���������A�A�E�^�]�������K�
�	��ܱܲ�F�����G�H�_�����Q�����������E�`���������������F�G��ܳ���H�
x������R����	�����T�S�������J�K�L�M�I�P�j�f�i�Q�a�h�N�O�H�e�g��ɰ����ɺɮ��ɲ������"�ɱ��ɵ	ɹɶɳ��������ɫ������ɻɸɯ��ɬ��ɴɷɭ�f�B���g���D�����[�����`�hd��	�d�������G�]˽���C�������b�^�����Z���e�E�H���@�F���c�A�i�\���_�a��˿������������˹��˸˼�������˳˵�����X�˶������˻˴��˷��˺	������������������˾˲����������V�J�����I�Q�]�������K�8������Y�P�X��	�����T�����[�N�W�M�������U�R���Z�����O�\�S�L�H������������������������*��P��p����P�0�����l����	���������������������������[��������������������������������������������������������������c�W	���\�b���U���Y�R���V�����g�Q���f���X���S�O�]�P�N�Z�`�a���[�^�M�_���d���L�T�e�����������������	�^�W���_�U�X���Y���]�S�R���������Q�\�Z�T���V����ܷ��ܽ�����ܺ��������ܿ��ܴ��ܵ2
H�	ܾܼܸ��ܶ��ܻ��ܹ�������������������������������������������������������������t
����	���������������������������������������v��w������u������x�_�������������l�k���I�
���a��	���S�R���������J�I�K�������^�Y���Z���\�[�`�]���^�J�������K�������@�L���������
����	�N�T�U�A�j�`�_���������U���a���������V�Bɼ�M�N�k������:<�	�������������������h�a���@������L�Z�������B���Y�W�X��|���M�N	�b������ɾ�Z�k�Fɿ�D�Eɽ�G�C�l���m�n�P�O�S�Q�R�����������������������8�	���c�����h���d�g�f�e�b�����������������������������i�k�j�l�������������������������A�B�����Z	�@�A�B�D�����C�������������O�\�[�H��U�V�T�W�o�p������B�����l���k	�i�j�����n���m�����������������������C�D��E������y���U�c���V������	�]�^�I�q�����m�������c�b�P���_���C�l�`���K�J��X���o���E��������������������Q	�d���������c�b�m�����������n���R���e�d�r���W�g�f�L�M�s�Y�Z�������o���\�	�D�����t�u���������p�p�������d���e�F���F���X�hJ�	���S�e�������������q����O�f�j�y�t�o�n�u�s�l�z�m�i�x�w�v�k�r�q�{�p�t�	�S�Y�U�[���X�N�Q�T�P�W�Z�O�R�V�\�~�{�g�|�[�]�u�pʥ�}�_�aʤ�h�x�t�v�\�m�v�s�d�n�o�w�l�j�k�qʡ�^���rʣ�f�c	�z�bʦ�e�i�`ʢ�y�����O�����������P�������I�K�M�������L�E�A���D�I�R������C����	�F�H�����Q�M���S�J���G�B�@���N�H��K��x���t���}���r��C���O���y�E�B�w����J�|�L��R���s�~�{�@���F�G�z���v	�u��D�N�D��������@������������������B�C���A���C��@�	���F�����B����@�Gԡ�E�D�������������A�w��ԧ�����|��Ԣ���v�{�z����ԥԨ�s����ԩ��	�����~��Ԧ��Ԫ�tԤ���u�x�}���������������y����ԣ�����q�r�j�����u���x�����q������	���n�������v���{�o�f�s�m���y�������������z�l�r�t�h�w���g�������i���������p����Z0���	�������������������������������������������������������������������_�������������U�Q�K�����T�����N�P	�S�������I�����L���J�O���H�������M�R���G�M�G�D�G�S�T�J�B�L��R�F�I�H�H�C�E�K����A��	�k������O�N�P����@�E����B�����A�����������C�������D�@�Q���F�������� p��{���������}���~	����z���|��P�������`�����V��������Q��A�Y�@�X�W�Z����b$���������	�����m�o�n�������������I�}�|�_�^���]���yʩʨ�w�zʧ�x�����T����	�H�I�E�FԬ����ԫ���|�������������I�H�G�k�g�Y�n�o�b�f���d�c���e�a�`�������h��}ʪ	ʫ��ʭ�{ʮʬ�~�������|ʯ�Y��[�Z�@�X�W��������������V��\�A(��	���U���T�Z���X�^�U�Y�[�]�W�V�Q�R�������S�\���P�S�R�W�N�Q�P�Tj��	�X�G�J�O�U�I�J��Ժ�V�M�H�LԱ�����ԯԽ��Կ�����ԴԼ����ԾԹԲئ԰��Է����ԭ��Ե�0�Գ����	������ԻԶ�K��Ը��������Ԯءتة��آ����ؤ��بأإ�}��زرخ�������Kث����ح�~ذدس��ج��	ا���������������������������������������������������������]���c���_�f�W�����\0��U�[�d��	���Z�`�e�V���^�b�h�X�a���g�Y�Y�K�W�V�M�R�N�Q�\���[�J�P�Z�O�L�X�M���O�J���LrX	���N���P���I�K�����������������S�R����a�b�c�B�[�������h�����_���������i�S�	�Zʰ�B�`�Y�L����i�~�p�g�h�]���������j�������[�����q���i�j������ʱ	�a�C�_�`�^�Z���������a�b���M�N�O����ش���������j�]��������k�������l�o�����n����8@���q�p�m�k��	����ʶʹʸ������ʵʳ������ʴʻʷ������ʲʺ���g�o�O�H�p�S�D�K�f�E�d�L�P�cz��Q�J	�M�r�i�T�R�n�l�I�k�G�F�j�h�q�m�e�N�����o���g�c�s�b���l�������p���V�v�d�f�m�q�u�r�k�n�h���j�i�t�����e��	���\�b�[�`�P�U�_�\�a�Q�[�T�R�c�S�W�X�Z�Y�]�^�d�����������@��������������	�C�������D���������������������B�������������A�������������������@ػظ��ؽ���B@	���������������G�C��ض����A�D����غطعؾؼ�E��ؿ�ص���B�@�C��D�@��F������������A���A	���������B����E�n�������z�p�v�k�y�x�|�u���t���m���{���o�r�w�q�l�s�U�a�X�W�Z�\���_�V�T��	�]�[�Y�_�^�c�^�`�b�`�W�V�U�X�Q�R�Z�S���\�[�T�����������Y�����������������T����\�\	�]�C�������������l�m�n�������r�s���������s�U�u�t�V���]�e���E�G���F���}�������^�pH		�r���s�v�t�u�w����ʼ��ʽ�W�X�v�x�z�w�{�y�����������f�w�h�g�c�_�`�b�d�a�f�e�J��	�����I	�H�G�K�F�����I�����K���H�J���H�I�J�����~����������������f���g�e�d�]�������d�_�o�x�l
	���i�g�N�M�L�L�M�������p�\���t���y�|�K�q����ʾʿ�����N�L���r�����u������,����	�Y�~���Z�}���x�������j�h�k�i�j�^���P�Q�O����h�i�a�����������K���s�w�v�z��������P�	���������������������������h�b�]���e�c�\�i�l�g�`���f���a�d�[�_�k�����^�j������	ΫΤΪΣΥ�}�{άΩ�y��ΧΨΦ�|�z��΢�~Ρέ�o�n�l�k�n�p�o�s�q�pή�r�m�l�m�0
�q�r	�S�R����T��X�A�Z�V�^�[��U����C��W�B�\���]��Y�D�@�������Q�������������������
��������	���R���O���O���P���������S�V�N�P�U�T�C���R�D�M�Q�������X����	����������e�g�k�h�c�b�l�j�j�m�d�i�k�f�a�f�`�e�^�h�d�i�c�_�g�j�b�����������,��	�r��D�E�`���������r�q�������t�{�������_�u���������t�W�v�w�x����ί�S�y�]��	�����x�|���������n�����m���o��������γΰαβδ���t�s�v�u�b�F�a�c�`�U�E��V��	�W���T�Z�\�E�[�Y�X������������q�o�m�p�n�l���m�k�l�n�����������n��z���~���}���F�������X`$�y	�z��������������������������θ����ηιζκ���y�u�w�w�x�x�vε�G�J�K�H�g�f�d�e�I�h��	�Z�[�\�]�_�a�H�G�Y�`�^�������������p�s��r�t�q�t�u�o�s�s�q�p�r�o�f�F�G�����U�������{����	��������λ�����|���I�}�����������������q�r�s�����p����μ�z�z�y�i�L�j�M�]&p�b	�����u�v���t���s���tν�k���J�U�������{�m�C�n�l�^����v�L�������������w�v��h�����u	��ξ�������������}�|�{�O�o�r�p�N�u�q�P�t�s���a�_�`��K�d�L�c�w�x��w�����u�����@���H�I	�����{���������������������������x���������y���������������������������������|x�@�������4���0��������T���l���x�8����(����h���`����(���P�8��|��T	�	d
$�|(
�
�$����h�t$.,��	̢̯�~̮̩����̪̭��̬������̣�|̥��̰��̦����̨�����{����������̧�z̫���}̡̤��ο�p8��ѡ������������	������������������~�}���|���������������~���������������������v��ѤѦ	Ѩ�����SѬѣ�x�Q����Ѯ�Rѥ��ѩ��ѫ��Ѫѭѧ���yѢ�w�z�U�^�d�|���e�`����V�����~�T�b���e�I	�c��������]��a�{��d��Y�b�W�X�����[���_���\���f�c��Z�}�k�o�@�Q�m�D�q�e�F�S�i�l�G�H�N6`�s�T	�J�O�C�^�U�r�A�P�]�p�N�M�t�E��j�B�K�M�R�g�L�P�h�\���p�h���l�n�k�[�j�_���Z�@x(�q��	�X�i�m���O�f�g�A�W�Y�V�o�������}���G�F���|���E���C�D����z�n�������{�����������H�y�B�z����������	�~�y�~���x�������������x����v���}�����w������������|�{����z������~�������	�|�����y�{�����������}�������������V�������������������������g�j�i�h�a�J�b�A�������t>d����	���������|��������������̱����ѯ�����u�r�`�a�t�v�u�����I����������W������̲�������������	Ѱ�����v�Q���~���}������������������������������������������������������������������������	��������������������������������������̷̾����̳̺̼̿��̴̻��̸���̽����̶�� �	������������̹������������̵�����������������������A�����@����ѱ���C�������������������B��F T�����E��	����������������Ѳ�D����������Ѿ����Ѵ�����f���ѷ��Ѻ���}ѽ�����  ��ѿ��ѸѵѶ��������Ѽѻ������������	����ѳ��������g���������y�u�rզ�����w����ա�����{�j� � ��գ�i����բ	�s�����h�xե�q���tդ���R���o�������x�n�l�~�������w�|�����������p���m�z�v�T�S�k�d!x!�z	�j�Y�g�w�}�k�n�|�\�m�l�~�U�y�����i�_���p�h�q�����f�e�c�]����ѹ�Vݷ�W�{���y�����X�o�x�`�[���a�^��N!@"	�p�|ݱݶݪ�lݻ�i�z�{�b�kݤ�n�oݥݲݸ�j�dݣ�}ݺݨݩ�~ݴݫݵݭ�e���h�fݹݰݬݡ�Sݯ�mݧݦ�g�c���!#ݳݮ	ݢ���������Q�����L�K�����������O���b�����R��������T�����������������N���P�U�����!�#	����J������������������������Z��������M������������������������������"�$	�������������������������������������������������������������Y��X�^���\�]�����Z��V"P%�k��	�����[�B�E�F�D�G�l�C�N�d�M�L�K�c�e���������������u�������������������r��������������F�"&	�����G������������է�������������v���������u�x���s�w�t�qݼ�V�����������������"�&���������H	���y����ݽ���������������z�{�r��W������������H���|���s������_���������I��#�'	����������������ը�����}�~ݾ�Y�X�����J�I�O�^�J�������������������������������^#L(��	�����������@��������������������������������P�M�����S�K���N�Q���L��O�R�������������#)	����������������������լ��իխ������ժծ��թ����٧٢������٥٨��������٦��٣١���#�)٤	�yݿ�v�w�u������{��������x�t�z���\����Z�[������������������������������$$p*�	��������������������������`�n�K�m�Q�R�f�P���������������������T����������f$$+��٩	�|���������B�A������������կ���������z���a�g�����������������������������������$�+	�����C���G�B�E���������@�A���A�@�F���D�������W���C�M�N�F�X�H���S���I���������V���Q�O�$�,	�����������J�P�D�������R�����U���E�L�����T�G�K���[�\�i�V�L�b�J�[�E�e�R��A,%T-�D��Q�a�`�F�X	��_�`�c�Z�K�S�f�Y�a�m�V�X�C�j�c�]�@�l�g�I�k�P�H�d�\�T�^�b�G�Z�Y�O�_�U�W��h���]�N�M�B�^�W�Un%�-	�����������������������������������������������������������������%�.��������������	������������������������մյչ����վս�����հ�����������%l/��������	����ձ���������ղ��������������ճ����������պ������ռ��շջ��ն������տ�����4&0	������������ٽ����������٫����ٳ������٭��������ٻ��ٶ��������ٰٵٯ������ٱ��ٺ����ٷٴ������������v&�0	٬����ټپ����٪����ٲٹ���ٸ��������ٮ���������������������������&�1������	��������������������������ո���������������������������������������~����ٿ�������������������&02	�������J�H�^�F�X�}�_�B�]�G�U�d�]�[�@�Z�o�Q�a�m�I�^�K�Y�g�D�k�a�M�C��W�h�`��e�S�f�E�P�L�N<'3	�`�_�n�O�b��T�c�l�j�A�V�i�b�R�\��������������������������������������������~'�3������	������������������������������������������������������������������������������'p4����	��������������������������������������������������������������������E((5���	�A���H���I������D�J����@�����G�������������C��F�B�c���h�i�b�������f�����e��D(�5	�g�d�������Q�N�W�V�T�O�r�P�q���S�p�X�R�M���o�L�V�U�U�h�Y�Z�T�X�S���W�������(�6��	�����������v�������������V���������������Y���d������������������������������(47	���������p�c�e�q�d���������������K�����j�Y�w�������B�Z�[�n��������k�������\
)�7��	�e�o�f�p�����������������������������f�g�h�����������������L���l�Z���_�q�g����������L)�8��	�i�j���������������`���C�H�r�����h�s�i�������j�B�A���C�@�@�A���������A�B�@�����k��)\9�����������	���M���[���������]�a�~����I�J�^���t�k�l�����D���������B���������r��ɡ��ɤ��ɣ�):�����Dɢ	����@���������������������E�������[�Y�L�Q�S�L�M�U�R�O�Q�V�Z�X�Z�K�M�\�T�W*�:�E�G�^�U�N�J�Y�V�H�I�C�O�P�[�]�P�N	�S���\�W�R�]�F�T�K�X�D�j�z��q�K�b�e�B����m�o��v�h�f�g�uT*�;�G�p���n�s��J	�u�y�c�I�M��O�@�l���k�}�r���u�x�|�A�F�~�w�i�_�d��`�N��������{���t��a���L�*l<�|ϡ	Ϥ�wϧϪϬ�t�v�{�I��ϥϭ�{�s�d�~Ϣ�x�z���}�}�pϨϫ�z���m���x��ϩ�o���^�H�|�w�v�n����ϣ�����y���q�����r�*4=Ϧ�y�~	�L���C�U�[�W�J�M�F�G�J���V�_�E���@�N�B�O�Y�D�h�H�����H�E�f�Z�g�a�S+>�b	�\�e�c�I�T�����A�G�`�F�Q�C�i�P�K���K���X�]�e�����R�P�G�����[���U��G�D����g\+�>��	��d�X�c�N�����O�I�E��@�Q�Y�B������D�^�F�\�������S�����H���F�J���h�b���_�]�f��a�R��`�A�E��W���V�T�L�K���C�+d?��	��M�A�Z������������I���������M�D����������J�C������U�V���H������������+X@���	���D��������������B��S�K���Q�����W���A����G�E�B���C�O�L�T���@�F�G�����F�E����P�N�R",A	���@�a�`�F���_�I�J���h���^�C�����R�H�K�c���j�b���W�������i���U�L�Y�e�����T�M�����P�Z�dd,�A�G�Q���[�����N���E�S�g�����V�l�X�f���O�������D	�]�\����}����n���w�m����q��s���u���,�B�S���}�o	������u�~���|�|�v�t���z�w�x����z��~���p��y�x�����{��t��������s���r�����{��y���,<C��	��v�D�N���M�Y���K�O���F���R�������T�C�^�����W�[�`�U�I���������L��H�_�����a���V��\*-D��	�J���E������A�Z�B�@���X��Q�P�]�G�����I���@���A��H�C��O��B�����D�F���E�D�J�G��F������l-�D�E�B���@��	������A�����N�C����Q�������S�Y�W�������Z�R���V�U�[�������T���������X�P��q����o���-�E��X ��\��L � p!8"#�#�$H%&�&�'D(�(�)h*+�+�,L-�-�.d/0�0�1(2�2�3h4 5�5�6,7�7�8T9:�:�;d<,=>�>\?P@�@�AxB4CD�D�ElF.tF����	����p���m��n�������s�r���x�_�e�y�\�v�s�g�w�t�^�a�b�c�f��]�u�d�h�`�]�j�`�k�h�_�\�^�b�e�d�g�[�i�c�-�G�f�i�a��������	���������x���������y�����������������W�e���l�����������A�^�_�b�_�`�a2.\H	�X�Z�U�R�T�����V���S�P���W�Q���Yϯϳ��϶����������ϲϱ��ϴϵϮ����ϰt.I	�w�x�y�P�L�n�v�{�Q�l�r�k�u�q�M�O�z�j�m�s�t�|�p�N�m�N�P�L�X�J�W�i�H�[�R�l�S�.�I�V	�Z�O�T�j�k�Y�M�I�[�Q�U�K�H�I�e�O�Y�b�X�L�`�^�_�J�c�\�Z�K�]�a�M�d�.LJ	�p�w�yޡ���k���z��ޢ���}�m�~�l���x��ޣ���q���|�o�v�r�n�������������u���N�{�s�t���:/�J����	��������������������g�d�p�j�l���f�n�m�k�q���h�o���c�e���b�r�i�J�Q�U�S�K�I|/�K�L�M�H�U�V�G�V�Q�O�L�P�N	�R�R�M�N�O�P�K�T�S�W�X�T�����\�b�`�������^�������a�]�_���w��t�u��v��/LL	��l��m�z�k�j�i�{�l�j�k���������������������y�����������������R�����n���b0M	Ϸ�}��������ϸϹ�f�Pޤ�������|���g�����B���e�d�c�`�����[ϺϽ��ϻ��ϼ��Ңҡ�~�S�]�^�o�\�_B0�M�R�p	�Q�k�j�h�i�lަޥީިާ�����������s�t���Y�Z�r�}�q�p�n�o���l������ɥ��ɦ�C�D�f�b�a�0|N���e�g�c�f�g�d	�_Ͼ�]�d�����e�a�b�\���^���c�`��������Ͽ��������Ҩҥҧ�X�W�UҤҩ�T�VҦ�g�04OңҪ	�b�f�e�n�y�h�c�m�t�s�a�d�u�r�q�`�i�p�w�T�v�s�V�u�o�q�t�r�U�x�S��ޭެު����1�Oޮ	ޫ������ްޯ�����������v���u�~�}�{�z�w�x�y�|��_�\�]�W�[�a�`�^�d�e�����c�y��x�~á�m�n�m����J1�P�z�����������Y�v�j��ɧ��	�E�l�j�k�h�h�i�m���k�g�j�f���i�������l�h������������������ү�����1lQ��	��������������������ҴҫҶҮҹҺҬҸҵҳҷ�_�]ұҭҰһҲ�^���Z�\�x�m�k�l�s�t�p�{�u�1,R�r�o	�y�n�w�z�q�y�[�x�w�v�|�~ڡ�`ڧکڢ�Zڦڥ�[�a�bڨ�X�}�{ڣ�z�_�|ڤڪ�Y�^�\�]�W��2�R޷��޻	ޱ޼޲޳޽޺޸޹޵޴޾��޶��������������������������������������������@�bR2�S�A�	�����������i�f�e�g�f�Z�c�X�\�[�d�h�Y�m���z�����j�h�k�n���l�g�B�E�u�@�o�Fâ�D�{�2LT�A�C�G�v	�tã�s�n�������������������nҼҽ�}޿�]ä�{�����o�`����Ҿҿ�~��ګ�����2U��	���������i�^�_�r�o�p�q�I�H�|�w����������������c�d�����F�j�i����ڬ���������k�l�n�m���r�p3�U�q	�������������`�d�c��b�a�����{�z�����f�eڮڭ��������������BZ3�V�j	�sæå�|���s�������o�p�t�����������������������h�i�����n�l�����k�j�e���3W�����m	���f�g��֢֡���|�~֤֣�}����ڶ�k�jڰ�hڳ�lڴ�mڱ�g�iڵڲگ�������������������������������������3�W����	�����������������������������������E�C�H�I��F��G����D�l�k�s�m�r�o�`�q�a�b�p�n 4�X	���t���w�u�v���M¡�N�}�O�~�L�P�Jç�xè�o�K�p�����~���}�����������n�o�����Gb4HY	�q�m��������֦���o��֥ڸ�qڷ�p���J�����x�Q�q�p�����u�p�r�����K�t�R�r���4�Y	���������������q�r�s��֧��ڹ���s�����������L�d�u�c�y���S�s���n�x�w���v���y���������������4�Z	�������������������������������������u�v����ְ���w�tֲ֪֭֮֩֫֬������֨��ֱ��֯��(5T[	ڼھںڻڿ���ڽ��t���������������C���������F���D�����E���A���B�������@��������j5\������������	�N���Q�O��M��P�}��~�v�z�y�w�f�g�e�x�{�|�h�@����{���A����|����z�~�}�U¤¥¢£�5�\	�T�{é�y�z�t�w�u�v��������������f�����������o�������x���u�G�B��|�x��͡�z�|�~�}�{���5�]	�����������������������������|������������ֹ�z�����������������y�������}���~�{06D^	��ֳֵֶַָֺ��ִֻ���v�������������������w�����x���������N���Qr6�^����	�����������M�L�H���O�P�������J�K��������������������������������I�������T��X�V�6�_	�������S�����U�R��������Y�����W�j����������l�i���k��F���E�C��D�����V�6<`	�G����Z�W¦�[�]�\�X�Y�ê�~��}���z�}�y�q�{�|�~�r�t�s���������������r��ͣ87�`����͢	�������������������������������������������������ּ��ֽ��־ֿ�������������R����Sz7�a	�T���A���������C�B�����@���������������m�H��I��_�^§�ë�š������ɨ�������V���r�7tb�q�p	ͤ���������������������������������������������������������78c�}	�������|�z���{���y�A����Z�����X�@�W�\�[�Y��I�H�D���G�F���^���_�[�]�Z@8�c�\	��p���E�r�q�n�o���J�����`ª¨©��íì����������H�sͥ����ͦ�@���8|d���	��������������������������~���D�]�^�C�B�J�����K�L�a�`������������s��K�8(e��	«¬�u�����A����������������E���M���v�����ͧ����9�e�B�C	�@�B���D�G�E�F�C����H�A������������������������������������������������������H9`f��	�������������������������������������a�P�S�G�L�F�c�J�H�b�O�N�K�M�I���R�_�Q�9g	�]���X���N�P���U�T�W���R�Q�����S���Y�[�V�O���i���\���b���c�e�����������9�g�`�h	�d�f�g�v�����j�������t��x�������Q�y����w��{���z������������O�������N�:Xh�������	����L�������P�M�����u�c�a�g°�e�d²�j±�k�h®�i�b¯­��f�l�òð���ñîïP:ió	�x������w�y����������������ţŢ�����������������X�Y�m�~��ͨ�E�F�D���G�:�i�H�I	�I�O�M���K�L�N�J�����������������������������V�d�T�e�U�f���a�^�`�����_�:�j	�����k�����a���������|�}���W�S�X�T�V�R�U³������z�{�A���@�������tͩ��;$k���L���J���������K�������Z���S�Y���R�X�V�����U���T���������Q�P�W������	����������������������������������������X;�k����������������	�������������������l������������������������������������h�]�_�a�e�[�;�l�Y�j	�`�d�\�X�W�b�Z�^�k�i�f�g�c�r���j�x�t���x���e�u�b�w�f�����v�p�����������c���q�����s�������;tm�h�g�d	�l�i�m���y���n�o�k�����p�y�u���r�v���l���t�����s�w���q���n�����z�r�m�����{���o<<n	�������~�������������������������������������������������������_���Y�i���a�]���d�g���\���e�������`�Z�h`<�n���c���^���b�[���f��	���n�t¹�w´µ�o�v�qº·�m¶�s�u¸�r�p�÷øôõ���ú�����ö���~�}��<�o��ġ	�����������������B�����������@�B���A�l�<�p	�����o������&=q	���j��»��Ģ���C��I���u�M�`�[�_�]���^�\����@�i�j�n�o�h�k�g�m�@�p�z�|���}��������������h=8q	�ù��D����������O���N�b�����a����������B�C�A�s�m�l�n�r�q�����~�������y�xû�ýü��������P���=�q�e���d�c	���������������������D�o�p�~�C�A�B�{�|�}�������������������k����z�{¼½�l����=�rTHI�IDJ�J�KDLM�MtN,O�O�PdQ$R�R�SDTU�UxVW�W|X@Y�Y�ZL[\�\�]<^�^x_4`�`�alb0c�ctd e�eXfg�gPhi�ixjk�k�llm4n�n�o�pqP�0q�q�r�s.�sģ��	���������Q�����A�R�S�@�B���T���f�������A���@��q����������������sͪ�C�U�h���g��.>�t	�C���B�D���F�G�E���t�u�E���D�����p�o�m�n�q�|¿¾��ťŤ��p>lu	��w���v�F��ɩ����ͫ�v�w�w�t�v�y�u�{�z�x�x����ͭ��������Ͱͬ�����|��ͯͮ���>�u	�[�G�H�]�W�Z�c�a�I�g�L�d�\�Y�I�b�D�e�V�_�F�K�`�O�M�X�J�^�N�E�f���������j�����l���k�i�n�����H�>�v�o�m��	���������N���E�G�H�P�L�J�M�Q�����F�O�����K�I�������Q�O��6?dw	�Jߡ���N�K�����P���M�G���L�������w�u�{�sߢ�x�r�{���}�v�~�|�~�y�x�y�}���|�t�z�����Lx?�w�H	�M����J��K����I�A�D���C���������@����B��������������������������������t�����x�z�w�?�x�v	�u�s�����r���y��������}�~���þ�Ĥ����EŦ�C�D�������R�N�{���������S�����P�T�U�V�O�������h�?ly���p��	�W���P���|����������R���Q��E����ߣ�R��ͱ�i�Q�r���������q�W�T�V�������S���U�X�Y�Z>@<zߦ	ߧߥߨ��ߤ�S�J�F�I�K�H�G���������������������ĥ���F�������}�}���X�[�A�J�K�M���N�@�z�L	ˢˣ�{ˡ�����|�z�y�}�~�~�jͶ��͵ͷ��ͼ��Ͳ���������͹Ϳ�ʹ����ͺ��������;͸��������ͽ��ͻ�����@�{ͳ	�����b�\�d�a�q�t�]�k�V�`�c�eТ�w�UС�Y�W�R�o�~�s�vХ�f�}�^�xФ�u�y�|�mУ�{�lA�|�p�_�Z�S�X�T�g�nӥ�[	�z�AӨ���vӣ�}ӲӪ�~ө�x�|ӵ��ӭӤ��ӳ�tӬ�����s������ӫ�����r�\Ӧ�zFA<}���{ӡ���uӯ	ӮӶ����ӴӰӧӢ�����w��ӱ���y�^�`�e�y�����]�����h�o�u�A�}	�b�i�@�w�r�����n�j�\���a�Y�����f�c���s���d�z�l�k�������Z�_�p�v�A�[�g�m���x�q�t���l�A�~�`���}۪ۧ���hۣ�i�w���s��	�t�]ۤ��ۡ�u۬�p��ۯ���n�z�����rۭ�k�d�o�c�a��ۥ�jۨ۩���������~���v�f���^ۢ۫�e��۰�qBD	�m�����|���x�����������y�g�{�bۦۮ�_�����U����ߵ�����������߿�����������ߪNB4�߲	������������������߶����߱����߫��߹߸��߼߾��������߰��ߴ����������������߻ߺ��߬����߭��߷���B܀	��߳߯��߮�`��������X����[��Y���������������������Z����]����a�U�B���^��	�W���V���T�c�\��������b���_���������s�t�g�f�b�����v�uߩ�_�c�]�p�a�w�Z�X�d�n�i��C\��O	�m��߽�[�R�U�{�\�S�Q�N���e�����`�h���x�|���W�k�o�T�y�����L���r�V�j�P�^�Y�����l�}�z�q�M���IVC��@�C	���E��A�G��������L�F��U�O��F����J�T���Q��D�H�B�V�S�P��������W���M�K�N�S�@�E�R�D��A���C����M�O�����Q�I���P�B����R�J�G��U��	����H�T�K������L��V��C�N����������~�������������������C���	���������������������������������������������������ÿ��������������������ħĩĦ����D����	��ĪĬ�ĭī��Ĩ���������������������������������J������K�I�G�H�L��������������^Dp���	���E�F�G�����O���hӸӷ�@�B�|�{�����������~�X�Z�Y���W���������������ЩЧЦ�i�k�jШ�D4�	���ӿ�A���FӼ����ӽ�C����ӻ��������H��Ӿ��ӹ�G�D����Ӻ�E�B�Lץ�Kר׫�H�F�~שקפ׬׭ׯװ�}�D��Eעס׮�Gף�I�Dצ�M	�Jת��ۿ۴����۽۱��۶��ۺ۸����۲۵��۳۾ۼ۷۹ۻ������������������$E��������������������������������	�������j�������e�������g�����h�������m�����������������i���l�����f�����dfEt���������	���������������k������������������������������������������d���EP�	�a�����k�g�e�`�o���\�h�i�_�^�l�b�]�c�n�[�m�j�������f���Y���]�Z�a�g�\�p���j�_�k�f�m�^�����`�n�X�l�E(���	�d�c�h�[�����b�i���e��������������������o���������������������������������������������,F����������	����������������������Įį�������B�E�A��C����D�Q�O�N�@�P�F�M���������������������Z�n������nFȌ��Ъ	������G�����lЫױ�N�����������������Ь��ЮЭ�m�����I�����������J�N���M�����F�����K�L��	�Pײ�U���T��׸�R��׳�S׿׻׽׷׾�O׺׹׵�׼״׶�Q����������������������F\�������	�����������������������������������������t�B�A��v�@���n�p���r�q����s�4G�	���o�������������������������������������u�p�|���w�y���q�u�x�����{�s�t�z�r�v���r�q���w�����s���tvGЏ	�u�x�����������������v������������������������������İ���I��K��H�JŨ�Rŧ�������H�I�K�J�P���G��	�n������������W�V������������C�F�E�D�������������y�{�z��������ı��T�S�Gh��[	��Я�o�����������C����A�@�B�����D�I�G�H�������}�|�}�����IJ�L�Uũ���L<H���	�q�rаб�p�T�R�Q�X�P�Y���V�S�W�U�O�_�Y���^�`�Z�[���X���]���\�D�F���E�������I~H������	�����C�������������B�����@���G�������A�����H���������������������������P�M�E�J���Q�����G�HX�	�O�K�N�L���F���L�x�{�N���M�}���O���K���y���|�z�~���w�������J����������������������I ���	�����������������������������������������������~�������������������������������������DIԔ������	���������������������������������~��������������������������������������������������I������A	�O���������������@�B�����C����������ķ������ĵ������ĸĴ��Ķij��@�N�M�P�Q�A�V�[�I��Ū	�X�W�Z�Y�C���B�@�A�������@�M�N�g�m����
J`�	�������R�P����LJė	�����D�D�����Z�a�T�S����������v�������b�������H���V�U�W�Q�R�����������������F�Eˤ�\�[�����J������I	�Y�Z�X������������������������G�����s�t�]�^�������h�f�c�g�e�d�J�����L�Q���S�R�U�����O�K�M���T�J���P�N��������	�������[�T�������S�U��������������������������������������������������������K���	������H�I���J��ĺĹ�R�B�S�\ūŬ�E�BTKh�	���j�i�\�]���������в�v�u���_���������KĚ���X	���W���V�_�b�`�a�e�^�f�c�d���V�������������������L�N�K�M���T�o���w���������l���k���K$�	������`����[�^���Y��l�]����������\�_��Z���h���o�n�����p���m���r�i�k���g�j�q���s�����[�a�YL��b	�X�]�c�`�_�^�W�\�Z������A�C�@���E�B��F��D��������������������������������������������\L�������	������������������E�������A�@��C�����B����������D�R���O�S���Q�����P���T���L��	ļľ��Ľ������Ļ�C�E�V�D�U�aŭ�`Ů�^�]�b�c�F�_���������\�Q�P�O�p�����n���`�������LX���	�U�������y�x�c���a���b�����m�������n�����C�A�E�F�L�H�J�B��I�K�D�G��b�@��a�c���u"M��w�v�{��	�x�t�y�z�����|�g�f�d�e���������M�N�I�J�����������K�L�H�@�������G��������������������������dM���	��������F�G�H���I�����X�Y�W�V�Z���������������X�Y�W�F�dů�e�H�G�M��	���d�@���������|�G���d�A�[˦�M(�	��������˥��������������������жд�|г���~�{���}����е�z�j�����g�n�i�����l����*Np�du�u�v\w�w�xdy4z�z�{�|4}�}�~<,�Ԁ��T��܃����h�,����l�H� ������T��ȏ��`����P��̔����X���P������`����ܛ����P������ �h��.��h�e���k���m�f	�����p�z�v���~�w�|�r�o�q�}���u�x�t�y���{�s���M�e�O�g�i�N�f�j�h�G��O�~lN(�	�P�E��J��C�B�M�L�K�I�N�}�D�F�H�������������������R�C�A�S�D�B�Q�P���O�������E�����������������N�������������������	�������������U�o�R�S�Q�T˪˧ˬ˨����˩��˫��������������������имй�N��	����лнп��о����к����������q����p�r�������������������з�������l�V���W�T���n�S2Oh��Y�X�k�\�R�[�P�Z�U�m	�������Q���R�����n�q�i�m���l�j�p�k�h�o�Y�H�J�V�W�U�Q�G�Z�T�F�I�X�������������K�L�M�]tO,��\��	���[�\�Z�fŰ�������u�t�@�A��s�����������_�a�]�`�o�^�p�s�U�T�S���s�u���������t�r�O��a�^�_�M�`�[�\�J	�K�]�L�����������������������������������O�P�N�R�����_���Q�^������Ŀ�����]�H�I�����Oܧ�C�]���q	�o�����V��������q�������B�x�v�z�D�y�w�C��������B����@����C������A���m�l:P���j�b�q�e�o�v�n�y	�u�c�i�w�h�x�z�k�r�s�w�u�t�f�r�v�t�s�d�g�p���������a��W�Y�e��Z�\�f|Pt��[	�d���b��^���c������`��������X�g�]������_�����������x����z��������P4���	�����������~������|���������y����{����w�v������}��R�Z�U���g�P���O�VQ��e�T�q�c�d�N��X�t�y�s���o�w�u�h�b�}�W�~	�x�m�k�f�n�{�j�z��S�v�|�r�l�Q��p�Y�i���������D���A�BQ���C���	�������B�@��������@������C�E���E�������������B��������A�����������D��������������Q��	�����������������������������������������������������������������������������������QL���	�����`�Y���T�c�[���e�U���_�������a���W�X�]�b�����j�g�k�^�Z�h�j�\���������d�f���i�S�VR��s	�c���q�a���l�h���r�b�e���t�m�p�������i�d�����`�������o���k�u��g�n���B���f����@�����JR����	���D������A��������C����������������a�f�O�h�I�d�j�N�J�K�`�g�M�e�L�_�c�b�^�R���i	ű�m�p�l�n�o�i�j�g�k�hŲų�K�M�L�N���J���������D���S�R�T�_�U�^�V�r�u�t�h�s�r�p�q�w�R4���������	S�	���D�x��vRS���	���{�E�F���}�z�y���|�{�~�����{�h�����������������������[���\�M�K���I�J�F�F�N�H�L�S0���	�������������������G��n�l�m������w�x��E�G�F���P�m�l�k�S�	��ɪ�X���V�Y�Wˮ����˰��˯˭����������������Tp���	�@�����������������������������E�����F�~�|�}�����I���H�K���J���������������G���}ZTزܣ	ܢ�������|�~ܡ���������������j�k���i�����������G�H�O�I�������o����A���G�L�T������ܤܦ��������ܥ�n�o�m���l��	����P�J���p�t��q���u��s�y�����B������ܨܧ�����s�p���r���q����T@���	��]��^�_��`�Q�N�K�P�S�L�R�O�M����������w�v��x�~��}�z��{�|�H�I���S�n�Q�R�oŴŵ�q U�	�E���G�����F�W���C�t���Q�R�D�a����S�����Mܩܫܪ�����u�v�������������bUܵ������������	���c�b��d�V�U�T�T���A�@������}���{�~�|�y�@�z����J�K�p�U��	ŷŶ�O�P�H���i�������������C�B���������q�r�����W�D�����X�A���L�M�T�U,��Q�������N����ܬ��	�z�|�������w�x�{�y��������g����e�[�����f�Y�Z�U�[�Y�X�V�Z�W(Vط	�E�J�F�I�����H�G�D�B�E�C����F��@��A����Q�N�O�P�r�V�U�t�sŸ���I�`�X����jV��	��ܭ������������h����G��B����V<��u�R�S	���t�s�u���������H�O������ܮ�������~������}�����V����	������������i���\��k�j���������l�a�_�^�]�`�\�K�^�]�_�N�L�M�R�K�Q�T�S�P�O�����J�H�I0W�	���C���D�X�W�U�T�����Y�vŹ�w�W�v�V�w���a�Y��rW̺	���P�U�������`�W�V�L�����������������������������������W<�	���������������������n�q�s�����r�������t�p���m�o�c�f�d�c�i�h�g�b�b�a�e�d�Z�^�[�]�\�Y�_�b�`�a�@�W��	���X�c���������M�����E�F������������`�^���]�c�a���\�Z�[���_���b�x�~�y�[��8X���Z�}�|�Y�{�X�z	�}���~�{Ż�x�|�����y�zź�R���S�������J�v�j���k���������z��zXX�	���������������l�u�e�j�m�f�d�k�X����N�	�f�d�e���\����ż�������b����I�������������h�v�w�������n�q�p�o�g�h�f�e�XD�	�g�O���P��������G���g�i�h����������Ž�T�U�V�K�c�����x�i������J�{���r�������������@Y�	�������z�y���i�����S�R�Q�^���]�����L�����������������������|�����������{�}�x�v��w�Y���s	�y�t�r�u��|�j�{�z�~�j�m�l�t�o�s�q�p�n�k�C�B�D�A�u�������������Y`��X��	���������W�U�T�������J�������K�����������������I�H���������l�o�VZ�	�m�s�q�k�v�j���r�n���u�t�����������`���������_ſ��������������������HZ���p��	������ž�Z�\�_�[�`�Y�W���]�����X�^���M�����������Z�\�[�y�x�w�z�s�t�����Z$�	��ܯ�����������������������������������Z����	�������}�����~��o��k����p������l��m�n���z�{�~�|�v�y��}�E���F[$���w��	����������Y���������������������Z���[�M�x�����O���P�������N������������������P[��������	�����������L�������}�{�������|�x���~���z���w���������y���������������a�������b�������d�������������[��	���c���������������������������������������������������i�n�d�g���k�r���e�o�s�j�c�m�l�q�p���h�b�f�N�O�a�������[l�����������������	���]�^�`�_�b�a�|�{�������x�|���}\T�	�������P�Q��X\����	����������G��������Q�S���R���������e�����c������������T�������������\����	�t����d�����H�u�����r���q��L�J�K�I���\�����������������f���v�w���d�}�uܰ�������\������	�x�R�e�~����������]�����g�����y������������������^������������������|�{�z����M]X������}	���f�������N������~�������������h�����������������i�j���������������T�������S�g�j�i�h��`]�	�s�e�����������t������]��أ��`�$��ԧ��l�,����x�D�����x�,���P�(��h�в��8��Եx�$�з��4����ĺ4�����P��<����X������������d�L�������P����$��],�&^`�	ơƢƣƤƥƦƧƨƩƪƫƬƭƮƯH^4�ưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿ����������������������������������������������������������������������������������������������.�����������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p.���q�r�s�t�u�v�w�x�y�z�{�|�}�~ǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿ������������������������������������.���������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S.���T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~ȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵ.��ȶȷȸȹȺȻȼȽȾȿ���������������������������������������������������������������������������������������������������������.�����������	�^��	�J��^��	�J�W�Y�[�_�`�c�d�g�h�k�l�o�p�s_��t�w�x�{�|	�������������\�M�N�O�Q�R�S�T�}�~�������������������������B�L�M�NP_`�	�I���C�H���]�^�����A���D�����������������������G�F�������H�I�����������������������������������������������������@���_�	���������������������������������������������@�A�B�C�a�U�b���_��	�F�G���D`��P�x����������������X�����|���X`��p��`������`��0�H�P�x�$�X�h�p���t���0xG�t �$�,���������`��p�����p�����p�����p�����p�����p�����p����p����p����p���p��	�p���p���p���p���p ��"�p%��'�p*��,�p/��h���h���h���h���h���h��h��h��h�h�	h�h�h�h�h �"h%��	�����"�$'�),�.1�36�8;�=@�BE�GJ�LO�QT�VY�[^�`c�eh�jm�or�tw�y|�~����������������������������������������������������������'h*�,h/�1�a�1	!�F�G�D|���Lca-R���X��23���g�P�M1o�b�3ACEIDNO��UYTsaceino��uytc`4	��Zc�4	�V�X�w�����������E���L�K�����������c�4	�A�B�X�������������������������c,5 d��	�[bd�5	�����������������������������������������������������������~�������������ZD�5	�������d86������	�dT6$5P������H�p5x5���5�06 �T�L6h6(ep6�@�B�C��	�q�r�m�n�u�v�y�z�i�j�E�e�f��������������������������je�6	�@�G�T�|�W���U���A���B���a�H�eD7	�@�G�T�|�����C�K�E�Q�����������g���������W�S�]�����N�I�����������e�7��������	S8�@�G�T�|�����C�K�E�Q�����������g���������W�S�]�������k�k�A�u�L�`�����g���W���U���k���v�����������]	0f<8<7P����78489,�P�rf9�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��.@9��������������������������������������������������������������������������������������������������������������������������������.L:�����������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b.X;�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������������������.d<���������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E.p=�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������.|>��������������������������������������������������������������������������������������������������������������������������������.�?�����������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h.�@�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������������������������������.�A���������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K.�B�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������������.�C��������������������������������������������������������������������������������������������������������������������������������.�D�����������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n.�E�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������������������������������������������.�F���������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q.�G�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������������������������.�H��������������������������������������������������������������������������������������������������������������������������������.J�����������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t.K�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������������������������������������������������������.L���������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W.$M�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������������������������������������.0N��������������������������������������������������������������������������������������������������������������������������������.<O�����������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z.HP�{�|�}�~������������������������������������������������������������������������������������������������������������������������.TQ���������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�].`R�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������������������������������������������������.lS�������������������������������������������������������������������������������������������������������������������������������@.xT�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����.�U��������������������������������������������������������������������������������������������������������������������������������.�V���������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c.�W�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������������������������������������������������������������.�X�������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F.�Y�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������.�Z��������������������������������������������������������������������������������������������������������������������������������.�[���������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i.�\�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������������������������������������������������������������������������.�]�������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L.�^�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������.�_��������������������������������������������������������������������������������������������������������������������������������.a���������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o.b�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������������������������������������������������������������������������������������. c�������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R.,d�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������.8e��������������������������������������������������������������������������������������������������������������������������������.Df���������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u.Pg�v�w�x�y�z�{�|�}�~��������������������������������������������������������������������������������������������������������������.\h�������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X.hi�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������������.tj��������������������������������������������������������������������������������������������������������������������������������.�k���������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{.�l�|�}�~��������������������������������������������������������������������������������������������������������������������������.�m�������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^.�n�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������������������������.�o�����������������������������������������������������������������������������������������������������������������������������@�A.�p�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������.�q��������������������������������������������������������������������������������������������������������������������������������.�r�������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d.�s�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������������������������������������.�t�����������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G.�u�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������.w��������������������������������������������������������������������������������������������������������������������������������.x�������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j.y�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������������������������������������������������.(z�����������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M.4{D:P;\<h=t>�?�@�A�B�C�D�E�F�G�H�IKLM(N4O@PLQXRdSpT|U�V�W�X�Y�Z�[�\�]�^�_abc$d0e<fHgTh`iljxk�l�m�n�o�p�q�r�s�t�u�vxy z,{8|.@|�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������.L}��������������������������������������������������������������������������������������������������������������������������������.X~�������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p.d�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������������������������������������������������������������.p������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S.|��T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������.����������������������������������������������������������������������������������������������������������������������������������.���������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v.���w�x�y�z�{�|�}�~����������������������������������������������������������������������������������������������������������������.�������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y.���Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������.ć��������������������������������������������������������������������������������������������������������������������������������.Ј�������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|.܉�}�~����������������������������������������������������������������������������������������������������������������������������.������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_.��`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������������.����������������������������������������������������������������������������������������������������������������������������@�A�B.��C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������.���������������������������������������������������������������������������������������������������������������������������������.$������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e.0��f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������������������������.<����������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H.H��I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������.T���������������������������������������������������������������������������������������������������������������������������������.`������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k.l��l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������������������������������������.x���������������������������������������������������������������������������������������������������ơƢƣƤƥƦƧƨƩƪƫƬƭƮƯ.���Z�����������y�t�������`�i��ù�����r�������O�_���T�d���Z������}�P����İ��þ��Y�����T	���N�����r�l�c��Ī�����S�|�O�L�S���w���f�������b��ŢŤ�c�U���p�S�����\�|���\�����������W������Ū�������������v���_��K�_���c�������������������H�B�Y�����G��	��³�}���q�y.���f�k�f���o�r�[�z�R���O�����e�~�����������	�m�p�����s���C�H�|�P�����G������î�y�O������̰���������a�s�F����§Ŀ���c�F���d������.���R���d���s�w���B���h�y���[�d��������������[�_�����X���v���Q�O�i�������d�z�g��	����������[�M�Zĩ�����L�O�{�������������������f���������}�v�}�������������J�	��������q�������t�������h�����}�]�b8g��	�I�����C�H�����]�^�����A���D�����������������������G�F�������H�I�����������������������������������������������������e�@�f�s��.H������������������������������������������������@�A�B�C�a�U�b��	�NzgT�P~\h�t�������������Ȉԉ�������(�4�@�L�X�d�p�|�����������������P���������@�X���L�ܟ���g�X4�4P�x��4$�X�h�p��689��0xG�t �$�,�D}��������g��䏰䰲䘃䖦䕸�m䵷䖳�n䳢p㮕䜶䝄䱇䱀Qq�r�suQv䱗�w䝏䗚䲅�x䴇䪤䚡z爥Q{�|�}晍囻	綕夝Q�㷴霴��寛т媤㘥�嫑宷峼杮薓Q�瑡璝�h�㇀㇁㇂㇃㇄Ѷ㇅�Q�㇆㇇��ѻ㇈�㇉㇊㇋㇌Q�㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ	ẾỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚǜüếềêɡ⏚⏛j����	攊丽滝鵎釟Q�撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮琑糼緍楆竉刧醌碸酞肼贋胶��肟黇䳍鷉鸌䰾���鸊Q�㗁溚舾甙䤑马骏龙禇����Q�两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅�j(��-唥	/Q0�1喐�2㧬4蹆Q5�6䁓�7睺9㨴䟕Q:�;�<擝>Q?�@�A撍蹾CQD�E�FHQI�J�KM䟴QN�O骲㩧�P㿭㔆RQS�T�U鵮頕䏙W撴哣QX�Y�Z㧻\Q]�^�_擪aQb蹨�c�df䠋Qg㿺塳�h�ikQl�m�n啹䂻䎺䪴pQq膪飵�r捹㧾�s跀嚡摼㹃uQv�w�xzQ{㦒㨆�|㕸�}噒Q���т㒼氽�Q���ч�Q���ь�羓Q���ё㗻�Q���і㾓�Q���ћ�Q���Ѡ�㿹Q�搲���kt��Q������Q���㨘���Q������Q���閪哌苄喹	��鰦骶�Q�煀腭胬尜��脴㞗卟��醶�Q�����㗝�㘉Q�嚯����Q�����Q���婔Q��垜Q	�
�
Q�㜃�Q��Q�墙剨㘚�箲孨䠀䬬鼧䧧鰟鮍Q嗻㗲嚉丨夂��靑!乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭Q"罒礻糹罓�#㓁�$耂肀&Q'卝衤见�(讠贝钅镸长门�)韦页风飞饣+鱼鸟黄歯龜丷Q,阝户钢�ņ倻淾�]龦㷉袏_灷峵䬠Q`㕙�a愢�b辧釶熑朙玺dQe㲋�f䬐磤琂冮�g䀉橣i䈣蘏Qj稪�k�l靕灍匤n鏴盙Qo龧矝亣俰傼丯众龨吴綋墒壐�p庒庙忂�q斋s椙橃Qt泿	爀�u玌㻛�v嬕璹讃xQy窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬�z�{䁱䊢娚顨杫䉶圽藖}芿Q~䲁�嵻р�龭龮宖龯曧繛湗秊㶈䓃Q���䎚䔶峕х諹屸㴒�嵸龲煗䕘Q���䱷㥸㑊ъ�諌侴Q�妿腬顖��弻�pD�я	�Q�䄂䚻��㼇龳є䃸㟖䛷�䅼Q���䕭㣔љ䕡䔛䶉䱻䵶䗪㿈�㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆Q�溻滢滚齿滨滩漤漴㵆��澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉ў䏁㗱������垾��焾�㙎榢Q�孴穉����穥穽�窻窰竂竃燑Q�䇊竚竝竪䇯咲��笋筕笩���箢筯莜Q���篐萡箒	��㶭�蒒篺簵Q�籄粃��粦晽��糉糇糦籴糳糵繧䔝�絝Q�璍綉綫焵綳����緤㴓緵�緥Q�����繮纒䌫鑬縧罀罁罇礶�駡羗Q�羣���䕜�䔃Q�翺��耈耝耯��耻耼聡Q�䦉���朥肧Q脇脚墰�汿�擧Q舘�橓�	䑺舩Q�
�俹蓢荢Q��Q芪椛�䇛�r0�蕋苐茚IQJ㛁�K�L艻苢茘NQO�P�QS㶿茝嗬莅䔋QT莬	菓㑾�U橗蕚㒖�VX葘QY葱㷓䓤檧葊�Z祘�[]Q^蓞莑䒠蒓蓤�_䉀�`䕃蔴嫲b䔧蕳䔖枿蘖Qc�d藁�e蘂gQh�i䕪蘨㙈�j号l虾蝱Qm蟮�n螱蟚蠏噡虬桖䘏衅衆�oqQr衞袜䙛袴袵揁装睷�s覇覊覧覼�t觧vQw誜瞓釾誐�x竩�y{䜓Q|煼謌謟�}�~謿譌譍誩�讐讛誯Q�䘕衏貛��у�㜥Q�賖��ш贒贃�賛灜贑Q�㻐ct��趩Ѽ�Q�㭼���竧躭躶軃鋔輙輭�Q�辥錃����辳䤪�Q���廸��迹�Q�����㦀�逷Q���遡���邨Q�郄��邮	酧㫰醩釄粬���鈎沟鉁鉢Q������Q���錬鍫���炏嫃Q���䥥鉄���Q�鍳鑛躼閅閦鐦閠濶䊹�����Q�䧟氜陻隖䅬隣��懚隶磵��隽双䦡�Q�����Q����霱虂霶䨏䔽䖅�灵孁霛Q靗孊�靟鐥僐�鞉鞟鞱鞾韀韒韠Q韮琜�韵�	䫑頴頳顋顦㬎Q
㵑��2v�飊颷飈飇䫿Q�喰飡飦飬鍸餹�䭲Q駵騌騻騐驘�㛄�髠髢Q髴䰎鬔鬭�倴鬴�㣃魐魀Q婅�鮎� 鰂鯿鰌"鷔Q#�$�%'Q(�)鵾鶃�*鸎梈鷄,Q-�.�/1鴹Q2�3麐麕麞麢䴴麪麯�4黁㭠㧥㴝伲㞾6鼂鼈䮖鐤Q7鼗	鼹嚟嚊齅馸�8韲葿齢齩竜龎爖䮾�9;煷Q<�=�>玞@QA禟�B�C鍩鏳E鋬鎁鏋QF�G爗㻫睲穃烐�HJ煾QK炣�L�M㻇OQP�Q㜢�RT㛡QU�V�W㜣Y坛QZ�[�\�x�Q���蔃ѐ	葕�Q���ѕ�Q�䓴��њ�柹㜳㰕㷧塬Q�栐䁗��џ�Q���哋嚞Ѥ嚒�Q���鏆ѩ鎜仸儫㠙�亼Q���佋侊Ѯ婨�Q�㦙��ѳ㐵伩�Q���諚Ѹ亘働儍侢伃�Q�佂倮偬傁俌俥偘僼湶��ѽ�浲Q���冨凃��䓝�Q���赺���剙劤Q�勡䙺熌�����Q�槑��㻞璙琔瑖玘䮎���叐㖄爏Q�喴��响��圝鉝雴鍦埝垍坿㘾壋媙�Q�����娬妸銏婾嫏娒�Q�����㛵洅瑃娡�xy��媁Q���鏠璌��焅䥲鐈�鎽㞠尞岞幞幈Q�����廍孏�Q�㜁��㛝��㛓脪�Q�����弌弎�Q�婫��孄蘔�衠恾�Q�忛㺸���Q懀��憙憘恵Q��
摱Q�㨩�
Q�挷�撶挱揑Q护�搻敫楲㯴�Q�唍�Q曎� �!㫠䆐#Q$�%�&(Q)磮�*�+-㑤Q.�/�0暎2晫䮓昰Q3�4晣�57昞Q8㣑�9�:㮙<Q=瓐㮖枏�>梶栞㯄檾㡣�?A樳橒櫉欅QB攑梘橌㯗橺歗�C�D鎠鋲FQG�`�銉�xz鑧涥漋Q{	�|㶏渄�}娽渊塇洤硂焻Q�烱牐犇犔��т兹�Q�瑺��ч�Q���㼆㺱ь�Q�悧㻳瓌琼鎇琷䒟��䕑疃㽣ё�㽘畕癳Q�㬙瑨��і�㫻㷍Q�㻿��ћ釺圲鍂�Q�僟��Ѡ睸�眎眏睻Q���㩞ѥ琸璛㺿�Q�䃈��Ѫ錇�砞碍碈磒珐祙Q���䄎蒖禥樭ѯ稺秴䅮�䄲鈵秱Q���Ѵ�Q�㖗啫㕰㚪��ѹ竢婙�Q���娍Ѿ磰娪�竾䇹籝籭䈑Q�����糍�Q�粎籼粮檲緜縇緓罎��"}����綗Q�䉪����柖�Q�埄�����翝笧Q�����笌�駦虅驣樜Q�㧢����騟�蒀Q���䓪脷䐂胆脉腂��飃�艢艥Q�葓��蘐��媆䅿�嬫Q�嫤��蚠���蠭Q�娂衮佅袇袿裦襥襍��襔���Q�����㺭蒣䛵䛏㟲訽訜Q�彍鈫��旔焩烄�鵭貟賩�妚矃姰䍮㛔踪躧Q�輰轊䋴汘澻��䢛潹溋�鯩㚵 邻	啱䤆醻鐄Q 䁢� 鐧�  蓥訫閙閧閗閖Q 瑅㻂� �	  㻧Q 随�
 �  㻌Q � � 琒瑫㻼靁 �\�桇䨝�F �G 	鍨I QJ �K �L 銺嬑譩䤼珹N 鞛靱餸QO 巁�P �Q 頟S 鋶QT 釥䓀�U �V X 飜QY 㼀鈪䤥萔餻饍�Z 㷽馛䭯馪驜�[ ] 檏騡嫾騯Q^ 䮐�_ 馼䮽䮗鍽塲�` 堢b Qc 硄�d �e 棅㵽鑘㤧慐g Qh 愇鱏鱓鱻鰵鰐魿鯏�i 鮟�j l 鴡䲮Qm 鸘䲰鴌�n �o q Qr 鶥蒽�s �t v 藼䔳Qw �x �y 萠藮{ Q| �} 秢�~ � 䤭Q� 㵢鏛銾鍈�� 碹鉷鑍俤㑀遤у 砽硔碶硋� Q� �� 㚚佲濚濙瀞吔ш 垻壳垊鴖埗焴㒯� 燫Q� �� э � Y���愌嫎娋䊼Q� 㜬䭻�� 鎻鎸ђ � 葲Q� �� ї � Q� 妔�� ќ 綨� Q� �� ѡ � 鋥珢㻩璴Q� �� 㻡Ѧ 櫘珳珻㻖� Q� �� ѫ � Q� �� 瑈Ѱ 炥� 銄珦鍟Q� 錱�� ѵ 鎆� Q� 䤵�� 煫Ѻ � 嚤Q� �� ѿ 唂秄� 緾Q� �� �� 䔮鐁㜊� Q� 妰�� �� � 媡㛢Q� 㚰鉟婹�� �� 鍴㳍� 䪖㦊僴㵩㵌Q� 煵䋻�� 渏�� 䓫浗� 灧沯㳖Q� �� 渂漌㵯�� 畑㚼㓈䚀㻚䡱姄鉮䤾轁� Q� 堒埈㛖�� 烾�� � Q� �� �� 梹楧� Q� �� �� � Q� �� �� 樚� Q� 萾䓟䓎�T��� �� � Q� 漗�� 茽� 菭� Q� �� 妉媂� 婡婱� Q� 㜭姯�� 㛇熎鎐暚�!婮娫!樫Q!�!�!!焝Q!�	!侰�
!峂!Q
!�!樌�!!炦焳Q!㶥泟�!�!繥姫崯㷳彜!Q!綤萦咅�!�!!坾Q!�!㿥�! !瀃Q!!嵰玏糓�"!�#!俈翧狍猐%!猸猹Q&!獁獈㺩�'!遬燵�(!珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発*!熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈Q+!礳栃礲䄃���䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀�,!総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑�-!訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿�T�鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯/!鵉鰺黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄Q0!�1!�2!椚铃妬4!塀铁㞹Q5!�6!�7!9!块煳Q:!�;!�<!呪>!Q?!咞�@!�A!C!QD!�E!惧�F!噺H!QI!�J!�K!M!QN!楕鰯螥�O!�P!R!QS!�T!�U!尠W!帋QX!�Y!�Z!朞\!Q]!�^!㙇�_!a!Qb!�c!卤蒭�d!f!Qg!讁�h!�i!k!Ql!乸炻�m!�n!���Q�!��!Ѣ!�!Q�!��!拃ѧ!�!熘桕Q�!槩㛈��!Ѭ!�!Q�!��!ѱ!苽�!Q�!��!覥Ѷ!辠�!鞸Q�!顇骽��!	ѻ!�!Q�!��!�!�!Q�!��!��!�!Q�!��!��!�!徱晈暿Q�!��!��!�!Q�!��!��!墵朎椘�!Q�!��!��!�!Q�!��!䣐䪸��!�!Q�!��!��!�!Q�!��!��!凒�!妟Q�!㮾��!��!�!垈Q�!㦛��!��!�!㝢Q�!譞��!�!�!Q�!爉��!�!奥�!Q�!�"軚�"劏圿煱"Q"�"�"喼"Q	"�
"㑳�"
"Q"䜘�"�""Q"�"偦㓻�""䝼Q"�"�""Q"垡煑�"�"遖!"Q""譢�#"�$"��T�嵛QV"	�W"�X"諪Z"Q["�\"�]"䯀_"Q`"�a"鑥�b"憕娧d"嚹Qe"�f"乪�g"陖涏i"㘘襷Qj"�k"�l"n"Qo"筂�p"�q"s"Qt"穅�u"騦�v"㙟x"Qy"禃�z"�{"崬}"Q~"䛐�"画补р"墶㜜�"Q�"��"㱔х"�"銁Q�"��"錰ъ"�"氹钟Q�"��"蠧裵я"�"Q�"溸��"є"㦤㚹䔿暶�"Q�"襃��"љ"囖䃟�"㦡Q�"��"ў"熭荦�"Q�"䲷��"ѣ"�"Q�"��"Ѩ"�"筃祾Q�"澵��"樃ѭ"厢�"鎿栶靝Q�"��"Ѳ"�"Q�"��"嶅ѷ"�"圕頣Q�"嶫��"斾槕叒Ѽ"�"㰑朶Q�"��"�"�"Q�"�����"�"Q�"��"�"�"㗊Q�"��"䣺揦�"砈鉕#䏲Q#䏟�#�##姸Q#	�#�	##Q#㷷�
#�#运犏嚋#Q#�#�##Q#�#�##Q#�#�##纟Q #�!#䲤镇�"#熢$#䶑递Q%#䶜�&#达嗁辺�'#边)#䔉繿潖檱仪㓤Q*#�+#㜺躀�,#.#Q/#�0#�1#3#㷫Q4#�5#�6#8#亚Q9#�:#嚿�;#踎孭=#Q>#揞�?#�@#攰嘭B#吚QC#㷆�D#䱽嘢嘞罉�E#奵G#蝰东QH#�I#�J#脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖L#㗎嘅嗱曱QM#㘭甴嗰喺咗啲�N#�O#廐Q#QR#�S#���#麫絚嗞Q�#抝靭咔賍燶酶揼掹揾啩��#鱲ш#冚㓟�#冧呍唞唓癦踭Q�#疱肶蠄螆裇膶萜��#䓬猄э#宐茋�#噻Q�#��#ђ#�#Q�#��#酰ї#鈈�#Q�#��#ќ#牦�#䝎Q�#��#ѡ#䃺鱝攟�#䣳Q�#��#Ѧ#�#	Q�#��#ѫ#�#熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥Q�#墚��#舭呋垪Ѱ#�#㩒Q�#獴��#䴉鯭ѵ#�#䱛Q�#��#Ѻ#葜�#Q�#��#ѿ#挮紥�#Q�#㨪逈勌㹴㙺䗩��#癀嫰��#硺�#墧䂿噼鮋嵴癔Q�#麅䳡㟻愙��#��#噝�#垧Q�#��#刴��#㖭鵼S���籖鬹埞Q$屓擓�$�$$蚭Q$�$�$	$	凾Q
$嶎霃�$麁遌笟鬂峑箣扨挵髿篏鬪籾籂粆鰕篼鬉鰛�$齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰椬叚鰊鴂䰻陁榀傦畆$駚剳酙隁酜酑Q$捿�$櫊嘑醎畺抅�$獏籰$Q$�$盖鮝个�$莾衂届槀坺刟巵从氱$伹咜哚劚趂㗾㗳歒酼龥鮗頮颴骺麨麄煺笔毺蠘罸嘠Q$蹷齓跔蹏鸜踁抂�$踨蹵竓�$稾磘泪詧瘇@���QM$鼦泎蟖痃�N$硓�O$贌狢獱謭猂瓱賫Q$蘯徺袠䒷	QR$�S$詾�T$惽癧髗鵄鍮鮏蟵賷猬霡鮰㗖犲䰇籑饊V$慙䰄麖慽坟慯抦戹㩜懢厪QW$捤栂㗒嵗�X$迚�Y$僙[$礆匲阸Q\$䁥矾糂�]$糚稭聦聣絍甅瓲覔舚朌聢�^$聛瓰脃眤覉`$畓Qa$螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦覩涹蟁�b$瓧㷛煶悤憜㳑恷罱�c$惩䭾删㰘e$Qf$�g$�h$j$Qk$�l$�m$o$峁Qp$�q$�r$t$Qu$�v$䕢嬟�w$齐麦y$t�L� ,、。.•;:?!︰…‥﹐、﹒·﹔﹕﹖﹗|–︱—︳	︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅‾_﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦∼∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂♁☉↑↓←→↖↗↙↘∥∣���	/\$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭╮╰╯═╞╪╡◢◣◥◤╱╲╳0123456789ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩卄ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv���wxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ	k���讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲①②③④⑤⑥⑦⑧⑨⑩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广	彐彡攴疒辵¨ˆヽヾゝゞ々〆〇ー[]✽ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじ,��すずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶАБВГДЕЁЖЗИЙК�t�ЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя⇧↸↹㇏�k%乚�l%刂䒑龰冈龱n%	¬¦'"㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣ʃɐɛɔɵœøŋʊɪ���纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕	╘╧╛╓╥╖╟╫╢╙╨╜║■������%鋛�%Q�%蕌䊵珯况㙉��%��%鍄�%苮Q�%砼杄拟��%��%�%Q�%��%侫��%倈�%Q�%��%��%�%	Q�%徤��%��%滛�%儁㑺儎顬㝃萖Q�%��%兠��%兪�%Q�%��%��%�%Q�%��%宂蝽�%�%冲冸鴴凉减凑㳜凓Q�%决凢卂凭菍椾��%彻刋刦刼劵剗劔効勅簕蕂勠蘍�%�%啉滙Q�%�&�&匳&泋Q&栛珕恊㺪㣌�&燝䒢卭却�&卾&Q	&矦厓�
&厠厫厮玧�&㽙玜叁叅汉义埾叙㪫
&叠Q&�&叶�&吓灹唫晗浛呭&Q&啝咏咤䞦�&�&㶴&~�0��H&�I&啇䳭启琗喆喩	K&QL&䕒�M&暳�N&嘷曍P&暤暭噍噏磱囱鞇叾圀囯园QQ&㘣�R&坆�S&汮炋坂㚱U&埦QV&堃�W&�X&堦Z&塜墪㕡壠壜Q[&壻寿坃�\&�]&鏓㖡够梦㛃湙_&娤啓Q`&蔅姉�a&�b&d&Qe&姙�f&�g&i&浱Qj&�k&姹�l&媫婣㛦n&㜈媖瑥嫓Qo&�p&㶅�q&㜲s&広勐孶斈孼Qt&䀄䡝�u&寕慠�v&x&Qy&寳宝䴐尅�z&尓珎尔�{&}&屉䣝岅峩峯嶋Q~&�&崐崘嵆р&岺巗苼㠭�&Q�&��&芇㠶㯂帮檊幺х&�&厦亷厨Q�&帉廴��&a���廹廻㢠廼栾鐛弍�&Q�&㫞䢮��&强Ѿ&�&	Q�&彣鞽��&彲鍀��&徧嶶㵟�&Q�&��&��&釖�&Q�&怱暅��&㥣㷇㘹垐��&祱㹀悞悳�&Q�&��&璤僡媠慤萤慂��&�&憁凴Q�&憇宪��&��&懓�&Q�&懐㤲��&��&怣慜攞掋�&担Q�&拕��&捬��&㨗搸揸�&Q�&澊��&頔��&�&擡擥鑻㩦携㩗敍漖Q�&��&斅敭敟��&斵�&䬷旑䃘Q�&无旣忟��&昘��&�&晄Q�&��&晋�&晧�&晳Q�&��&�&�&Q�&矅��&馤朂�&'㬫槺Q'杧杢�'�'柗䓩栢湐鈼栁'Q'桝+���8'槡樋:'楳棃Q;'椁椀㴲㨁�<'㮀枬楡�='䋼椶榘㮡?'荣傐槹Q@'�A'橅�B'檝㯳枱櫈D'㰍欝QE'惞欵歴�F'溵�G'I'QJ'㝀吡�K'毡�L'毜氷N'QO'�P'汚舦汹�Q'䓅S'QT'�U'�V'X'㛥㳫QY'鮃�Z'�['羏样]'Q^'�_'涖浜湼漄�`'b'Qc'蔳�d'凇	萮�e'g'瑓Qh'秌湏媑�i'濸㜍澝�j'滺l'Qm'䕕鏰潄潜㵎潴�n'㴻澟�o'濓q'Qr'�s'�t'v'Qw'凟�x'�y'{'Q|'灋灾炧炁烌烕烖烟䄄㷨熴熖�}'焫煅媈煊岜�~'煏鍢�'焬Q�'��'у'熺�'炽爎"���鑂爕夑鑃爤鍁��'爮牀ѷ'梽牕牗㹕�'栍漽犂	猫Q�'��'䣭Ѽ'猨献珏玪�'Q�'珉瑉��'�'�'昣㛅Q�'��'��'珷琕椃�'琹Q�'㻗��'瑠��'瑇珤瑶莹瑬㜰瑴鏱樬璂䥓�'Q�'��'��'孆�'Q�'瓈��'甎甞��'�'寗Q�'鎅畍畊畧畮��'㼄��'疎瑝疞疴瘂瘬癑癏癯癶�'皐臯㟸Q�'��'皡皥皷盌��'葢�'Q�'��'眞眦着撯��'睘�'瞯Q�'��'��'矴�'Q�'棊碯磇磓隥礮��'磗礴碱��'辸袄�'Q�'��'禆褀椂禀��'禝�'礼禩渪Q�'㺨秆��'秔����� �l�ħ<���(�����p��X�ؽT���L���L���L��������D����x��	�����"�$'�),�.1�36�8;�=@�BE�GJ�LO�QT�VY�[l������eh�jm�or�tw�y|�~�������������������������������������������������������(����|��d��l�	�������X���P�`��Y�W	�]�[�f�a�_���j�h�o�m���s�q�w�u����{�y��&����V�g	�Z�l�\�n�ph��	��^�t��x���	�X�i�r�`�v�z�|�}�~���@�	��k������.�x�	��p���	������������������	���������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�\�]�^�_�`�a�b�c�d�e���f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u	�[6���	�c��x���e��	��(�P� �8���@�	�J���K����>�X�	��������������������ƵƶƷƸƹƺƻƼƽƾ��|�	�����������������w�x¤�	�v��	����F�(�	ơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴ��@�	�������������������������������������������������������������������������ZD��	�b�c�d�e�f�g�h�i�p�o�n�m�l�k�j�v�y������������ʥD	������	������������������������������������N��	�������������������� 	��ҦT��P���t��� �������8����<�T�l����L`�h�@�B�C��	�������q�r�m�n�u�v�y�z�i�j�E�e�f����������������������V��	���������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f.X�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z	���������{�|�}�~ǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻ��dǼǽǾǿ����������������������������������������������������������������������������������������������������	������ڧP�@�A�B�C�D�F�I�J�M�O�P�Q�R�T�U�y	�H	��^��	�w�����	���������h���Y��	���]������$��	�����S������f�	�n����<	�����K�p�����������T	�������z������,��	�������F���~�h���h����������n��	�j�\���^�p�����f�����	�����H�E�o�\���0	�������������e������4�\	�E�}�X�d�V�M�[�����Y����������v��	�W�����������������E�S�x���Q������l	�k���{��,	�`�K����<�L	�K������~�l	�d�i�g�����h���	���z��	�BD��	�f�����R�����	�m�n�����oȭ		�p�d��
�(	�`	�t�����t�������xL�D		���Z���H�}�}����x		�J�������G�����Q�		�������x�����k��		������T�
	�I���o�����~��
	���y�����{دD
	�������������D�h
�L	�K�����S����\��
	�������������]�����
	�a���R����
	��"�	�Vd�$	����������������8	�������I���d	���������Y������������*��	�������I���r�k���Pl��	���e�D�n���c���S�����y�j�]�c�i���	�p�D�j	�����M��2�X	���������d�o��t�|	�������������f�n�������a�����]���~���i������������b	���c�G����
	���u���r��:�8
	��|�\
��	�Z�������m������p
P\H@��P����,�P���4L���(T��$Dd����� 	<	p	�	�	�	
<
`
�
�
�
0\���<Pt�
0
T
h
�
��
	���]����B��	���M�W�������������	��������Ƶ�	�������J�~�	�D�����@������J�,	�F�����N�s��X	�����Hζ|	�K�U�N���_�Y����	���`R���t	�U�D���V���	�Y�[���E���Cַ	�����P�(	����Z�D	����\	�g����޸p	���v�Q�s�@�O ��	�z�d������b��	�����	���~�n�p�����S�^���\	���z�����]�����d���b���d�L(�	�������T�|�U���z������������j�d	�v�p�K�������T�����Q���D���	���C�G��	�X���Y0�	�B��������r�$	������H��	�]���E��`	���y���L8��	�����Lz��	�M�z�W�����	�������	�R���g@����	������	����Ľ,	�����J�D	�����V���IH�`	�������d�U�������|�M�����	�H�I�}���P�G̾�	�����U��	���X��P�	���A�Z�\�� 	���\����Կ@	���`�E�`	�X�c�I����X�|	�k�n�O�F�����	���u�����y�p�x�����J	��	�o�j�_�A����`��O	�N�U���y���W����0	���Y�s�������`	�����I�C&��	�[������h��	�X�F���	�V�x�{����@�B	�C���E�V�T�W�U�F���O�M�����B�A�@�C�����������O���������X�����P�r���c��˱ƿ���Y���D�d�F�.��	�@�D�[�G�\�����E�G�F���������A�{���A�E�^�]���W�������Kp��������ܱܲ��F������	���G�H�_�����Q�����~���������E���`���o�������������F�G��ܳ�����H���k����@�����R����	�����T�S���������J�K�L�M�I�P�j�f�i�Q�a�h�N�O�H�e�g��������ɰ����ɺɮ��ɲ�g��������ɱ��ɵ��ɹɶ	ɳ��������ɫ������ɻɸɯ���sɬ���Nɴɷ�O�xɭ�f�B�����g���D���������[�����`�h6��	�d�����������G�]�n˽���C�������b�^�����Z���e�E�H���@�F���c�A�i�\���_�a��˿��������������˹��˸˼�������˳˵����x��˶������˻˴��˷��˺�o��	����������������˾˲������������P�W�V�J�f�������I�Q�]���������K��x�����Y�P�X��	�������T�������[�N�W�M�������U�R���Z�����O�\�S�L�H�����������p���n�����������������l����8��$Pt���� <Th����\��@Xx����$<X|���8P�Xt���(X������8���p0>���	���������Y���������������������[�������������������������������������������������������c�����@�����c�W	���\�b���U���Y�R���V�����g�Q���s�f�����X���S�O�]�P�N�Z�`�a�����[�^�M�_�����d���L�T�e��������������������^�W	���_���U�X���Y�V���]�S�R���������Q�\�Z�T���V������ܷ��ܽ�����ܺ��������ܿ���qܴ��ܵ��	ܾܼܸ��ܶ��ܻ��ܹ������������������������������r��������������������������������������������F�����g�������������������������i	�����������������v��w������u�h������x�_�������������l�k���I��h �a��	���S�R���������J�I�K�������Q�^�Y���Z���\�[�`�o�]���^�J�������q�K�������@�R�L�������Z����D!��	�����NȢ�T�U�A�j�`�_�����������U�R�S���a�������U�������V�[�Bɼ�}���h�G�M�N�~�k�������"	���������������������������h�������a���@����������L�Z���T���������z�B���Y�W�X�����ON��"�M�N�}�b	��������ɾ�Z���k�Fɿ�D�Eɽ�G�C�l���m�����n�P�O�����S�Q�R����������������������������|#	���c�����h���d�g�f�e�b���������������������������o�����������i�k�j�l����������������������������@$�A�B�����Z	�@�A�B�D�����C���������������������O�\�[�U�H����V�U�V�T�W�o�p�����������%���l���k	���i�j�������q���n���m���������������������������C�D��E������y���U���c���V����V��%	�L�]�^�I�q�����m�������c�b�P���_���C�l�`���K�J��X�h�����}�o���E�������������W�����������&���Q���d����	�����c�b�m���X���������n���R�����a�e�d�r���������W���g�f�L�M�s�Y���Z�������o���������@'	�D�����t�u�����������p�p�����������d�����e�����z���F�������F�����X�h�(	���������S�e�����������Y���������Z�����q������O�f�j�y�t�o�n�u�s�l�z�m�i�x�w�v�k�r�����q�{�p�Y^��(	�S�Y�U�[���X�N�Q�T�P�W�Z�O�R�V�\�������~�{���g�|�[�]�u�p�m��ʥ�}�_�aʤ�h�x�t�v�\�m�D�v�s���d�u�n�o�w�l�j�k�qʡ�^��|)�rʣ�f�c	�z�bʦ�e�i�����V�`ʢ�y�����O�����������P�y�����������I�K�M�������L�E�A���D�I�R������l*�C����	�F���H�����Q�M���S���J���G���G�B�@�����N�����H��K������x���t���}���r��C���O���Z�y���E�B�w������J�|�L��$�0+�s�~�{�@���F�G�z���v	�]�Q���u����D���N�D�����y����@��������������������B�C���A���C�f� ,	�����F�����B����@�Gԡ���E�D������X��������W���A���A���w����ԧ�����|��Ԣ���v�{�z����ԥԨ�s�������,ԩ��	�����~���BԦ����Ԫ�tԤ���u�x�}�������������������y����ԣ���N���������j�q�r�j�������u���x���-���q������	�F���n�������v���{�o�F�f�s�m���y�������������z�l�r�t�h�w���g�G�������i���H���������p�S��������,�|.���~���������������������������������������������������������C��	�������������_�������R���������������U�Q���K�����Tn�\/���N�P	�S���������I�����L�����J�O���H�������M�R���������������G�M�G�D���G�S�T�J�B�L��R�O�F�I�H�H�C�E�K��P0�A����	�k������T�O�U�����N�_�P����@���E������B�����A�����������C�������D�@�Q���F�������j��������,1�{���������}���~	�����b����z���|�`��P�������^�������`�����V��������Q�l�~��A�Y�@�X�W�T�Z������4�2��������	�����m�o�n���������������I�}�|�_�^���]���[�yʩʨ�w�z�\ʧ�[�x�W�����T�e����v��2�Z�H�I�E�F	Ԭ����ԫ���|���������������I�H�G���k�g�Y�n�o�b�f���d�c���e�a���`�������������3�}ʪ�d�v	ʫ�`��ʭ�{ʮʬ�~�������|ʯ�������s�Y��[�Z�r�@�X�W��������������V����\�A������T4�	���U�������T���Z�g���X�^�U�Y�[�]�W�}�V�Q�R���������S�\���������o�P�S�R�W�N���Q�P�A�T<�5	�X�G�J�J�O�U���I�J��Ժ�V�M�H�L��Ա���B�����ԯԽ��Կ�g�����ԴԼ������ԾԹԲئ԰��Է����ԭ��Ե��~��5Գ�����i������ԻԶ�K��Ը������	����Ԯ��ءتة��آ�����}ؤ��ب�lأإ�}��زرخ�������Kث����ح�~ذد��س��ج���6��	�e�Nا�����������������������������������n���������������������T�������{���]���c���_�f�W�����\��7�U�[�d��	���Z�`�e�V���^�b�h�X�a�w���g���Y�����Y�K�W�V�M�R�N�Q�\�����[�o�J�P�Z�O���L�X�}�~�M���O�J���LD�\8	���N���P���I�K�������x�������������S�R���r��a�b�q�c�B�[�������h�����\�����_�����t�����i�S��49	���Z�]��ʰ�^���B�`�Y�L�B����i�~�p�g�h�]�h�{���������j�������[�����q���_�`�i�j�������9ʱ	�a�C�_�`�^�Z���������a�b���M�N�O����ش�����������j�]��������k���������l�o�����n����
��:���q�p�m�k��	�L����ʶʹʸ�����R��ʵʳ����������ʴʻʷ������ʲʺ�����g�o���O�H�p�S�D�K�t���f�E�d�L�P�c��L�l;�Q�J	�M���r�i�T�R���n�l�I�k�G�F�j�h�q�m�e�N�������o���g�c�s�b���l�������p���w�V�v�d�T���f�m�q�u�r�k�n�U���h���j�i�t����H<�e���~��	�\�b�B�[���`�P���U�_�\�a�Q�[���T�R�c�S�W���X���Z�Q�Y���\���]�^�d�����������@�L����@=�����������k�C�������D	�������������x�����������B�������������O�A�����������q�����e�����[���P�@ػ��ظ��ؽ�����B�>	�@�M�����r�������������G���C��ض��������A�D����غط�s��ع�oؾؼ�E����ؿ�ص���B�@�C��D�@��F���������T��>�A���A����	�������B����E�A���r���n�������z�p�v�k�y�x�|�u���t���w�m���{���o�r�w�q�l���x�s�U�a�X�W�Z�\���_�V�r�T���?	�]�[�Y�_�^�c�^�`�b���`�W�K�V�U���X�Q�R�Z�S���\���[�T�����������Y���u���������������T�������@�\��	�]�g�C�����������������T�l�m�n�������r�s���������s�U�u�t�V�a�����]�e�����E�G���F�H�����}���������^�p��A���r�y���s�v	�t�u�w����ʼ���gʽ�W�X���v�x�z�w�{�y���b�c�����������f�w�}�h�g�c�_�`�b�d�a�s�f�e�J\�lB�����I�k�H�G�K�F	�����I�����K���H�J�����H���I�J�m�����~����������������f���g�e�d�]���������d�_�o�x�u��8C	���i�g���N�M�L�L�M�������p�\���t�������y�|�]�L�K���q������ʾʿ�����N�L���r�����u��������D����	�Y�~���Z�}�������x�������j�h�D�k�i�j�^���P�Q���O����h�i�a�����������K���s�w�v���z��������"��D	�������������������������������d���h�M�b�]���e�c�\�i�l�g�`���f���a�d�[�_�k�����^�j������d��E	���hΫΤΪΣΥ�}�{άΩ�y�X��ΧΨ��Φ�|�z��΢�~Ρέ�s�o���n�l�k�n���p�o�s�H�q�pή�r�m�t�l�m��\F�q�r	�S�R����T����X�A�Z���V�^���[��U����C��W�B�\���]��Y�u�D�x�@�������Q�����������������`���� G��������	�����R�a���O���O���P�������b�����@�S�V�N�P�U�T�C���R�D���M�Q�������������*��G���	��������������Q�e�g�k�h�c�b�l�j�j�m�d�i�k�f�e�a�f�`�e���^�h�d�i�c�_�g�j�b�X�����f������l��H���T�r�	�D�E�`���������r�q�����������t�{�������_�u���������t�W�v�w�x������ί�S�y�]���I	�����x�|�������������u�n�����m���o��������γΰαβδ���t�s�v�u���b�F�a�c�`�U�E��@J�V���i�W���T	�O�Z�\�E�[�Y�X������������q�o�N�m�p�n�l���m�k�l�n�����������n��z���~���}���F���������X��2��J�y	�z�����e�����������������z�������{��θ����ηιζκ���y�u�w�w�x�x�vε�G�J�K�H�g�f�d�e�I�j�ht��K	�Z�[�\�]�_�a�H�G�Y�`�^�S���������������p�s��r�t�q�t�u�o�s�s�q�p�r�o�f�F�G�����U�������Y�@���A�C�{�����L	��������λ�����|�a�F�b���I�}�����������������q�r�s�k�����p����μ�z�z�y�i�L�j�M�L���]��|M�b	�����u�v���t�����s�������tν�k���J�z�U�����Q�����{�m�C�n�l�^����v�T�L���������������w�v��:�4N�����u�l	��ξ�������������}�|�{�O�o�r�p�N�u�q�P�t�s�a���W�a�_�`��K�d�L�c�p�w�x��w���Q���u�����@|�O�H�I�|������	�{�������������������������n���x�����������y�����������������������������������O���` <!"�"t#8$%�%x&8'(�(t)d*(+,�,�-t.T/H0$12�2�3L45�5�6�7T8,9�9�:d;@<8=�=�>�?�@�AdB0CD�D�ETFG�G�H�I8J�J�K�LtM,N�N�O�P.�P��	̢̯�~̮̩����̪̭��̬������̣�|̥��̰��̦����̨�������{����������̧�z̫���a�}̡̤��ο��f��Q��ѡ������������	��������������������~�}���|���������������~���������������������z���k�vB�hRѤѦ	Ѩ�����SѬѣ�x�Q����Ѯ�Rѥ��ѩ��ѫ��Ѫѭѧ�k���yѢ�w���h�z�U�^�d�m�|���e�`����V�����~�T�b��(S�e�I	�c��������]��a�{��d��Y�b�W�X���q���[���_���\�d���f�c����Z�}���a���k�o�@�Q�m�D�q�e�F�S�i�l�G�[�H�N���S�s�T	�J�O�C�^���U�r�A�P�@�]�p�N�M�t�E��j�B�K���M�R�g�L�P�M�h�\���p�h���l�n�~�k�[�j�_���r�Z�@��T�q���v	�X�i�m���O�f�g�A�W�Y�V�o���������}���G�n�F�����|���E�����C�D�t����z�n�������{�t�����������H�y�B�z�����q��J��U���y�~�y	�|�~���x�������������P�x�y�x������v���}�����w������������|�{����z�����u��v�~��������V�t�|����	�y�{�����������}���w�����������������y�V�������������������������g�j�i�h�a�J�b�A�������t��lW����	���������|��������������̱����ѯ�����u�r�`�a�t�v�u�����I���y��������W�������v��̲�����<X��������	Ѱ�����v�Q�����~���}�����������������������������������Z��������������������������������R�Y����������������������	�������z�����������������E���u��̷̾����̳̺̼̿��̴̻��̸���̽����̶�����Y	�����F������������̹������������̵�����������������������Q�{���A�����@����ѱ���C�������������������B�����Z�����E��	����������������Ѳ�D���������|��Ѿ����Ѵ���������f����[ѷ����Ѻ���}ѽ�����|[��ѿ��ѸѵѶ��������Ѽѻ������������	����ѳ��������|�g�����������y�u�rզ�����w����ա�������{�j��Z�0\��գ�i����բ	�s�����h���xե�q���tդ���R���o�������x�n�l�~�������w�|�����������p���m�z�v�T�S�L�k�d��]�z���j�Y�g�w�}�k�n�|�\�m�l�~�U�y�������i	�_���p�h�q�����f�e���c�]������ѹ�V�Jݷ�W�{���y�����X�o�x�`�[���a�^�������K�M���]	�p���|ݱݶݪ�lݻ�i�z�{�b�kݤ�n�oݥݲݸ�j�dݣ�}ݺݨݩ�~ݴݫݵݭ�e���h�fݹݰݬ��ݡ�Sݯ�mݧ��ݦ�����g�c�� ��^ݳݮ	ݢ���������Q�����L�K�������������O���b�����R��������T�������������������N���P�U������b��_	����J�������[����M���������������Z��������M������������������������x�������������l`�����������	����������������E�����������V�����������������������������������Y��X�^���\�]�����Z����8a�k��	�����[�B�E�C�F�D�G�l�C���N�d�M�L�K�c�e�������������������u���������������������r������������������F(�b	�����G��������������է�������������v�����������u�x���s�w�t���q��ݼ�V����������������j��b���������H���������g	�~�y����ݽ���������������z�{�r��W������������H���|���s��������_���������I�������c	����������������ը�����}���~ݾ���Y�X�����J�I�O���^�J��������������������������������������d��	�����������@������������������������������������P�M�����c�S�K���N�Q���L��O���R������������0�`e	�������������q���������d����������լ��իխ��������ժծ����թ������٧��٢������٥٨����������٦��٣١�v��r�0f٤	�y�bݿ�v�w�u������{������������x�t�z���Y�\����Z�R�[�������S�����������M�����������������r��g�	�������������P����������������`�n�K�m�Q�R�f���P�����������������������T�������������g��٩���|��	�������B���A�~��������������կ�R�����������z�����a�g������������������������������������8��h	�P�����C���G�B�E���������@�A���A�@�F���D�������������W�����C�u�M�N�F�X�H���S���I���������V���Q�Oz��i	�������������J�P�D���������R�����U���E�L�����T�G�K���Y���M�[�\�i�^�V�L�b�J�[�E�e�R��A�}��`j�D��Q�a�`�F�X	��_�`�c�Z�K�S�f�Y�a�m�V�X�G���C�j�c�]�@�l�g�I�k�P�H�d�\�T�^�b�G�Z�Y�O�_�U�W��h���]�N�M�B�P�^�W�h�U�� k�����}���i	�O�V���������������������������������������������������������������������������D@�l���������������@��������������������	�����J�����j��մյչ����վս�����հ�������������l��������������ձ�~��������	�ղ����������������ճ����������պ���|����ռ��շջ��ն������տ����������J���m	�E����������������ٽ����������٫����ٳ������٭��������ٻ��ٶ��������ٰٵٯ������ٱ��ٺ����ٷٴ�������������dn�H�G���j٬����ټپ������٪����ٲٹ���ٸ����	������������ٮ���������������Q����������������H�Ho��������������	������������������������ո���������������������N�����������������������~����ٿ�����D������������������p��	�����������J�H�^�F�X�}�_�B�]�R�G�U�d�]�[���@�Z�F�o�Q�a�m�I�^�K�Y�g�D�k�a�M�C����W�h�`��e�S�f�E�P�L�N��q���`�_�n�O	�b��T�c�l�j�A�V�i���b�R�����\�A�������������L�����������������������W��������������q�����������������������B�l��	�����������������������X�����������������������^�{�������������������������P��r����	�����Z��������������������������������[���������������������^�����������������������������E���s������A���H	�����I����p���D�J����@�������G����\����������C��F�e�B���c���h�i�����b���������f�����e������\t	�g�d�������_�����Q�N�W�V�T�O�r���c�P�q���S�p�X�R�M���o�L�V�U�U�h�Y�Z�T�X�S�����W�������Hu��	�������������v�������������V���������b�������Y���d����������e��������������������X�v	���������p�c�e�q�d�������������������K�����j�Y�w�������B�Z�[�n������f�����k���������\���v�����e�o�f	�p�����������������������������f�g�h�����������������L���l�Z���_�q�g�������������w����	�i�j���������������`���C�H�r�����h�s�i�����q���j�o�B�A���C�@���@�A���������A�B�@�������k��Px�����������	���M���[���������]�a�~����I�J�^�����t�k�l�����D���������B�����������r����ɡ�r������ɤ����ɣ`�$y�����Dɢ	������@������������������v������E�������[�Y�L�Q�S�L�M�U�b�R�O�Q�V�Z�X���Z�K�x�M�\�T�W����z�E�G�^�U�N�J�Y�V�H�I�C�O�P�[�]�P�N	�S���\�W�R�]�F�T�K�X�D�v�����j�z��q���K�b���e�B����m�o��v�h�f�g�u���z�G�p���n�s��J	�u�y���c�I�B�M��O�@�l���k�}�r���u�x�|�A�F�s�~�w�i�_�d��`�N����������{���t��a���L��&��{�|ϡ��Ϥ�w����ϧϪϬ�t�v�{�I��ϥϭ�{�s	�d�~Ϣ�x�z���}�}�pϨϫ�O�z�����m���x��ϩ�o���^�H�|�w�v�n����ϣ�����y���q�����rh��|Ϧ�y�~	�k���L���C�����U�[�W�J�M�F�G�J���V�_�E���@�N�B�O�Y�����D�h�H�����H�E�f�Z�g�a�S���}�b���\�e�c�I�T�����A�G�`�F�Q�C�Z�i�P�K���K�����X�]	���D�e�����R�P���G�����[���U����G�D����g��L~��	��d�X�c�N�����O�I�E��@�Q�Y�B������D�^�F�\�������S�����H���F�J���h�b���_�]�f��a�R��`�A�E��W���V�T�L�K���C�A.���	����J�M�M�������A�Z������������I���������M�D��������������J�C������U�V���H�����������p�����	���D��������������B������S�K���Q�������~�W���A����G�E�B���C�O�L�T���@�F�G�����F�E������P�N�R����Ԁ	�����@���a�`�F���_�I�J���h���^���C�����R�H�K�c���j�b���W�������i���U�L�Y�e���h���T���M�������P�Z�d�����G�Q���[�����N���E�S�g�����V�l�X�f���O�������D	�]�����d�\�G����������}����n���w�m����q����s���u��6����S���}�o��������u�~�E�����|	�|�v�t�����D�z�w�x����z��~�����p��y�x�����{��t��������s�����r�����{��P�y��x�`���	����v�D�N���M�Y���K���O���F�����R�������T�C�^�����W�[�`�U�I���������L����H�_�������a���V��\��\������J	���E������A���Z�B�@���X��Q�P�]�G���������I���@���A��H�C��O��B�����D�F���E�D�J���G��F������������0��E�B���@��	������A�����N�C������Q�����������S�Y�W�������Z�R���V�U�[�������T���������X�P������q����o��>��`R S�S�T�U�VdW4X�X�Y�Zt[(\�\�]�^�_d`0ab�b�c�dXe(fg�g�h�iXjkl�l�m\n@op�p�q�r�sTt@u�u�v�wHxyz�z�{�|�}D~�̀��|�X�T�(���.������	������p���m��n�������s�r���x�_�e�y�\�v�s�g�w���t�^�a�b�c�f��]�u�d�h�`���]�j�`�k�h�_�\�^�b�e�d�g�[�i�c����f�i�a��������	�����������g���x�����������y�������������������W�e���l�������������������A�^���_�G�b���_�`�a�������	���X�Z�U�R�T�����c�����V���S�P���W�Q���Yϯ�pϳ�����p�o��϶����������ϲϱ��ϴϵϮ���������l��ϰ�܉�^	���w�x�y�P�L�n���v�{�Q���l�r�k�u�����q�M�O�z�j�m�s���t�|�p�N�m�N�T�P�L���X�J�W�i�H�[�R�l���SF����V	�Z�O�F�T�j�k�Y�M�I�[�Q�U�K�H�I�e�O�c�Y�b�X�L�`�^�_�J�c�������\�Z�K�]�a�p�����M�d�Q�C��t��Z�p�w�yޡ�����k	�����z��ޢ�����}���m�~�l�����x��ޣ���q���|�o�v�r�n�������������u�~���N�{���s���������t�����������0�����	��������������W���Q���������I���g�d�p�j�l���f�n�v���m�k�q���h�o�����c�e���b�r���i���J�Q���U�S�K�I� ��L�M�H�U�V�G�V�Q�O�L�P�N	�R�R�M�S�N�O�P�K�T�S�W�X�T�������\�b�`�������^���������a�]�_�����I�w��t�u��v�N������l�	�m�z�k���j�i�{�����l�j�k�A���������������������D�_�����y�����������G���������R�����n���b����HϷ�}	��������ϸϹ�f�Pޤ�U�����K���L�|���g�������B���e�d�c�`�x�����[ϺϽ��ϻ��ϼ��Ңҡ�~�S�]�^�o�\�_�����R�p�Q	�Q�k�j�V�h�i�lަޥީ�aިާ�����W�������s�t���Y�Z�f�r�}�q�p�n�o���l��������ɥ��ɦ�i�C�D�f�b�a������e�g�c�f�g�d	�_Ͼ�]�d�������e�a�b�\���^���c�`�������I��Ͽ��������Ҩҥҧ�X�W�UҤҩ�T�VҦ�gV�d�ңҪ�L	�e�b�f�e�n�y�h���c�m�t�s�a�d�u�r�q�`�i�p�w�T�v�s�X�V�u�S�e�u�Y�o�q�t�r�U�x�S������ޭެު������,�ޮ��ޫ������	��ްޯ�������������v���u�~�}�{�z�w�x�y�|��_�\�]�W�[�a�`�^�d�e���J���c���y��x�~á�m�n�m��������z�����������Y�v�j��ɧ����	�E���l�j�k�h�h�i�����m�����k�g�j�f���i�������[���l�h�����������������S��ү��������	���������������^�����������Z��ҴҫҶ��ҮҹҺҬҸҵҳҷ�_�]���\ұ�tҭ�sҰһҲ�^���Z�\�F�d�x�m�k�h�l�N�s�e�t�p�{�u^����r�o�Z�y�n�w�z�q�y�[�x�w�v�|	�������i�~�E��ڡ�`��ڧ����کڢ�Zڦڥ�[�a�bڨ�X�}�{ڣ�z�_�|ڤڪ�Y�^�\�]�m���l�W�k������޷��޻��ޱ��޼�s�n�_޲޳��޽޺޸޹޵޴��޾����޶	���������������q�x�����������z�������w���������������y���u��]���@�b�����A��|��	���������D���i�f�e�g�f�Z���c���X�y�\�[�d�h�Y�q�m���z�����j�h�k�n���l�g�^�B�E�u�@���o�Fâ�D�{$����A�C�G�v	�t����ã�s�j�n�����������������������nҼҽ�}޿�]ä�{�������o�`�������M��Ҿҿ�~����ګ����f�����	�����������i�^�_���r�o�p�q�I�H�|�w��������������������c�d�����F�j�i����ڬ�����������m�k�l�n�m�{���r�p��T��q	�������������������������`�v�d�c��b�a���x���{�z�������f�eڮ����ڭ������������������B��8��j	�q�sæå�|���s�������������o�p�t�������������������������\�h�i�������n�l�����k�j�e��,��������m�D���f	�g����֢֡���|�~֤֣�}����ڶ�k�jڰ�h��ڳ�lڴ�mڱ�g�iڵڲگ������������������������������������n�����������	�����������������������������������E�C�H�I��F��G����D���l�k�s�m�r�o�`�q�a�b���p�n������	���t���w�u�v���������M��¡�N���}�O�~�L�P�Jç�xè�o�K�p�Y�\�����~���}�������w�������������n�o�����G��l�	�q�m��������֦���o��֥��ڸ�qڷ�p���J�������x���Q�q�p�����u�p�r�������K�t�R�r��4�H�	���������������q���r�s��֧�����kڹ���s�����������L�d�u�c�y���S�s���n�x�w���v���y��������������v���	���������������������������������������������u�v������ְ�����w�t��ֲ֪֭֮֩֫֬������֨��ֱ��֯����ȟ��	��ڼھںڻڿ���ڽ��t�����������������C���������F���D�����E���A���B�������������@�O��������������������������	�N���Q�O��M��P���}����~�v�z�y�w�f�g�e�x�{�|�h�@����{���A������|����z�~�}���U¤¥¢��£<�l�	�T���{��é�y�z���t�w�u�v��������������f�����n�������o���������x���u�G�B��|�x����͡�z�|�~�}�{����~�P�	���������L�������������������������|��������������ֹ�z�����������������y�������}���~�{���O����$�	�P����ֺ��ֳֵַ��ֶָ��ֻ��ִ�F�����v���������������������w�����x�����������N���Q������	�������������M�L���H���O�P�������J�K����������������������������������I���������������T��X�VD���	�������S�������U�R��������Y���������W�����j���������Y��l�i���k����F���V���E���C��D�����V��x�	�G������Z�W¦�[�]�\�X�Y�ê�~��}���z�}�y�q�{�|�~�r�t�s�����������������������������r��ͣ��`�����͢	���������������������������������h���������������������ּ��ֽ��־ֿ������i��������R������S
�,����T���r	�����A���������C�A�B�����@��B��������������������m�H����I��_�^§�ë�š������ɨ�������V���rL���q�p	��ͤ�����������������������������������������������������������������������������}	�������|�D�z���{���y�A����Z�����X�@�W�\�[�Y��I�H�c�D�������G�F�����^�����_�[�]���Z�����\	����j�p���I�E�r�q�n�o���J�����`ª¨©�L��íì������������H�sͥ����ͦ�M�@���|����	�s����������������G�������������~���D�]�^�C�B�J�����K�L�a�`�P������������s�O�I��KT�@����Q�R«¬	�u���������L�A������V�M���W���������������G���X�E���M���v�����ͧ������������B�C	�@�B���D�G�E�\�S�F�C����H�A���������������V�������������O���^���������������������������j����Ь��	�d�����������������������������������]�����a�P�P�S�G�L�F�c�J�Q�H�b�b�O�N�K�M�I���R�_�Q�R���	�]���X���N�P���U�T�W���R�Q�h�����S���Y�[�V�O���i���a�Y�\���b�����c���e����������\�d��`�h	�d���f�g�v�����j���]�f�����t��x�������Q�y����w��{���z��������������O����n��d���N�����������	����L�������P�M�����u�S���c�T�a�g°�e�d²�j±�k�h®�i�b¯­��f�l��pòð���ñîï���ó	�a�x�r������w�y���k�����@������������ţŢ�����������������X���Y�m���~���{ͨ�E�F�D�W�����_�G"����H�I	�s�I�O�b�M���K�L�N���J�������������X�������������u�����r���V�d�T�e�U�f�Z���a�^�`�����_d���	�������y���x�k�������a�����������|�}���W���S�X�T�V�R�U�z³�����\��z�{�A���|�@�}���������t��ͩ����T����L���J���������K�������Z���S�Y���R�X�V�����U���T���������Q�P�W������	��������������������������������������������(�����������������	���������������������B�l��������������������������������������h�]�_�a�e�[*���Y�j	�`�d�\�X�W���v�b�Z�^�k�i�f�g�c�g�r�B���j�x�t���x���e�}�u�b�U�w�f�������v�p�������������c���q�����s������l���h�g�d	�l�i�m���y���n�o���k�`�b�����a���p�y�u�����r�v���l���t���������s�w���q���n�����z�r�m�������{���o�c����е	���������~���������������������������������������������������������_���Y�i���a�]���d�g���\���e�������`�Z�h�������c���^���b�[���f��	���n�t¹�w´µ�o�v�qº·���m¶�s�u¸�r�p�v���÷øô��õ�����ú�����ö���~�}���2�����ġ	�������������������B�������������@�B���A�l�p�n�o�pt���	�q�r�s���	�t���u���o�������� �����	���j����»����Ģ�����C��I�������u�M�`�[�_�]���^�\����@�i�j�n�o�h�k�g�m�@���p�z�|���}����������������:�T�	�ù��D����������O�����N�b�������a������������B�C�A���s�m�l�n�r�q�����d�~�������y�e�xû�ýü��������P��|�<��e���d�c	���������������������D�o�p�N�~�C�A�B�{�|�}���������������������k����z�{¼��½�l�����$��ԉ��l�(��������\�$���ؓ��������x�L�0������d�@������d�H�����p�X�$�����t�8��Ȭ��\�������L� ���ȵ����|����L�4���.�ģ�������������Q��	�����A�R�S�@�B���T���f�������A�����@��h�q��i�����������k�����l���sͪ�C�U�h�������g����	�C���B�D���F�G�E���m�t�u�E�����D�������������p�o�m�n�q�|¿¾��ťŤ��B�����	��w���v�F��ɩ����ͫ�v�w�w�t�v�y�u�{�z�x�x������ͭ����������Ͱͬ�����|��ͯ�]�qͮ����������	�[�G�H�]�e�W�Z�c�a�I�g�L�d�\�Y�I�b�D�e�V�_�F�K�`�O�M�X�J�^�N�E�f�r�\���������j�����l�����k�i�n�����H�\��o�m����	���������f���t�v�w�y�N�����E�G���H�P�L�J�M�Q�����F�O���\���K�I�������_�c���Q�O���4�	�g�Jߡ���N���K�����P���M�G���L�������|�}�~�w�u�{�sߢ�x�r�{���}�v�~���[�|�~�y�x�y�}���|�t�z�������LJ���H	�M������J��K����I���A�D���C���������@����B��������������������������������a�����t�����x�z�w����v���u�s�����r�����y��	������}�~���þ�Ĥ����EŦ�C�D���������R�N�{���������S�������P���T�U�V�O�������h������p��	�W���P���|����������R���Q��E��������ߣ�R��ͱ�i�Q�r�w�������������q�W�T�V�������S���U�X�Y���Z���ߦ	ߧߥߨ��ߤ�S�J�F�I�K�H�G��������������������k�����lĥ���F�������}�}���X�[���A�J�J�v�H�K�M���NR�`��L	ˢˣ�{��ˡ�����|�z�y�}�~�~�jͶ��͵ͷ��ͼ��Ͳ�����������͹Ϳ���ʹ����ͺ��������;͸��������ͽ��ͻ��������<�ͳ	�����R���w�A�b�\�d�a�q�t�]���k�V�`�c�eТ�w�I�UС�Y�W�R�o�~�s�vХ�M�f�}�^�xФ�u�y�|�����mУ�{���T�l��� ��p�_�Z�S�X�T�g�nӥ�[	�h�z�AӨ���J�v�Bӣ�}�QӲӪ�~ө�x�|ӵ��ӭӤ��ӳ�tӬ�����s������ӫ�����r�\Ӧ�F�z������{ӡ���uӯ	ӮӶ����ӴӰӧӢ�����w��ӱ���y�����U���x�^�`�e�y�����]�����h�o�uZ���	�b�i�S�@�w�r�����n�j�\���a�Y�o�����f�c���s���d�z�l�c�k�������Z�_�p�v�A�[�g�m���V�x�q�t�v�����l��x��`���}۪ۧ���hۣ�i�w���s�����t�]	ۤ�X��ۡ�u۬�p��ۯ���n�z�����rۭ�k�d�o�c�a��ۥ�jۨ�H۩���������~���v�f���^ۢ۫�e��۰�q�D�	�m�������|���x�����������y�g�{�bۦ�e�l��ۮ�b���g�_�u�~�����U������ߵ�����������߿�������������ߪ �@�߲	�����������������f����߶����߱���n���E߫���`߹߸����߼߾������������߰��ߴ�����������������b�L߻ߺ��߬����߭��߷����b���_	����߳��߯��߮�`���m�q��������X����[��Y�������������������������Z����]����a�����U����^��	�W���V���T�c�\��������b���_�����������m�����r���s�t�g�f�b�����v�uߩ�_�c�]�p�a���w�Z�X�d�n�i������O	�m�B������߽�[�R�U�{�\�S�Q�N�����e�����`�h���x�|���W�k�o�T�y�����L���r�V�j�P�^�Y�����l�}�z�q���w���M���I(����@�C�����E��A�G�������@�D��L	�F����U�O��F����\�J�T�����Q��D�H�B�V�S�P��������W���M�����K�{�N�S�@�E�R�D��A��j������M�O�����Q�I���P�B����R�J�G��U��	�v����H���T�K������L��V��C�N����������~����������������������������������	����������������������������������������������ÿ����������������������ħĩĦ�������������	��ĪĬ�ĭī�����a�pĨ���h�~�����������������������������������J����P���K�I�G�H�L��������������0�t���	�����V�E�F�G�����O���hӸӷ�@�B�|�{�����������~�X�Z�Y���W�������������������ЩЧЦ�i�k�jШ��r�\�	���ӿ�A���FӼ����ӽ���C����ӻ��������H��Ӿ�y��ӹ�G�D����Ӻ�E�B�I�Lץ�K��ר׫�H�F�~שקפ׬׭ׯװ�}��(��Eעס׮�Gף�I�Dצ�M	�Jת��ۿ۴����۽۱��۶��ۺ۸����۲۵��۳۾ۼ۷۹ۻ�������������������������������	���������������k����������������������������������������������d���z8���	�a�����k�g�_�e�`�o�������\�h�i�_�^�l�b�]�c�n�[�m�j�������f�������Y���]�Z�a�g�\���p���j�_�k�f�m�^�����`�n�X�lz��������d�c�h�[��	���b�i���e�����������C��������������o��������������������������������a�����������������������������^����	��������������������Įį���������B�E�A��C����D�Q�O���N�@�P�F�M�|���������������������Z�n��������x���Ъ����������	��G�����lЫ��ױ�N���������������j��������|Ь��ЮЭ�m�������I�����������J�N���M����@�l����K�L����	���Pײ�U���T���E��׸�R��׳�S׿׻׽׷׾�����O׺�R׹׵�׼״׶�Q�������������������������������D�������	���`�������������������������������������������t�B�A��v�@���n�p�����r�q����s���� ������o	�������������������������������������u�p�|���w�y�����q�u�x�����{�s�t�z�r�v���r�q���w�����s���t��	�u�x�����������������������v��������������������������������İ�����I��K��H�JŨ�Rŧ�������]�H�I�K�J�P��H�����n����	��������������W���V��������������C�F�E�D�������X�����������y�{�z��������ı����T�S����[��	�y��Я�o�����������C����A�@�B�����D���I�G�H�������}�|�}�����IJ�L�Uũ���L�x���	�q�rаб�p�T�R�Q�X�P�Y���V�S�W�U�O�_���Y���^�`�Z�[�����X�����]���\�D�F�����E���������I(�����	�����C���������������B�����@���G�������A�����H�����������������������������P�M�E�J���Q�����X�GP��	�O�K�N�L���F���L�x�{�N�����M�}�����O���K�����y���|�z�~���w���������J�������������������������������	������������������������������������������|��������~���������E����������������������������������������	�����������������������������������~������������������������K������������������������������t�����A��	�O�������������������@�B�����C������������ķ��������ĵ�����L��ĸĴ��Ķij��@�N�M�P�Q�A�V�[Xh�Ū���X���W�Z�Y	�C���B�@�A�����������@�M�N�g���m�������z�L�	�{���	�����D�D�����Z�a�T�S������������v�������b�������H���V�U�W�Q�R�����������������F�Eˤ�\�[�����������I	�Y�Z�X������������������������G�������s���t�]�^�������h�f�c�g�e�d���J�����L�Q���S�R�U�����O�K�M���T`���P�N��������	�������[�H�T���������S���U�������������������������������������N��������������d�����������������	��������H�I���J�����HĺĹ�R�����B�S�\ūŬ���E�B�������	���j�i�\�]���������в�v�u���_����������&����X��	���W���V�_�b�`�a�e�^�f�c�d���V���������������������@�L�N�K�M���T�o���w���������l���k��hh���������	��`����[�^���Y��l�]������������\�_��Z���h���o�n�����p���m���r�i�k���g�j�q���s�����[�a�Y�4��b���X�]�c�`�_�^	�W�\�Z��������A�C�@���E�B��F��D���������������������������Z�������������������������������	����J�����������������E�������A�@��C�����B������������D�R���O�S�����Q���������P���T���\.���ļľ	��Ľ������Ļ�C�E�V�D�U�aŭ�`Ů�^�]�b�c�F�_���������\�Q�P�O�p�������n���`�H�����I��������p����	�U�J�������y�x���c���a���b�������m�������n���������C�A�E�F�L�H�J���B��I���K�D�G��b�@��a�c���u����w�v�{��	�x�t�y�z�����|�g�f�d�e���������M�N�I�L�J�����������K�L�H�@�������G�M������������������������������������������F�G�H�����I	�����X�Y�W�V�Z���������������X�x�Y�W�F�dů�e�H�G�|�}�~6h�	�]���d�@�Z���P���O�����|�G���d�A�T�[�������������C�E�}˦x�	����������˥�������������`����������������жд�|г���~�{���}����е�z�j�����g�n�[�i�����l����������T�,��������X�4������p�<�8�������������l�T� �����H�����p�d�<��������p� �������l�`�D��������������`�,����������`����T�.\��h�e���k���m�f	�������p�z�v���y�~�w�|�r�o�q�}���u�x�t�y���{�s���M�e�O�g�i���N�f�j�b�h�G��O�~�h�	�P�E����J��C�B�U�M�L�K�I�N�}�D�F�H�����������������e�������R�C�A�S���D�B�Q�P���O�������E����������������>0�������������������	�������������U�o�R�S�Q�T˪˧ˬ˨����˩��˫�h���l��������������������имй��	�����jлнп��о����к����������q����p�r�������������������з�������l�V���W�T���n�S����\��	���[�\�Z�fŰ�������u�t�@�A����s�����������������_�a�]�`�o�^�p�n�s�U�T�S���q�s�u�����J�����t�r�����a�^�_�M�`�[�\�J	�K�]�L���������������������������������������O�P�N�p�R�����_���Q�^������Ŀ���c���]�H���I����F���C�]���q�q�o����	�V��������q�������B�^�x�v�z�D�y�w�I�C����[�����B����@����C������P�A�����m���l�l��j�b�q�e�o�v�n�y�s�u�c	�i�w�u�h�x�z�k���r�s�w�u���t�f�r�v���t�s�d�g�p���c�����������a����W�Y�e����Z�\�f�L��[�w	���d���b��^���c������`������M���X���g�]��������x���_���������������x������z�������	4��������r������@����~���	�����|���������y����{����w�v������}��R�����Z�U���g�P���J�O�V����N	��e�T�q�c�d�N��X�t�y�s���o�w�u�h�b�}�W�~�K�x	�m�k�f�A�n�{�j�z��@�S�[�v�|�r�l�Q�A����p�Y�i���B�C�Y���������D���D�A��	��C����Q��	�������B�@��������@������C�E���E�������������B��������A�������������D�����v������������	���U�E���E�K����������������������������	���������������������t�����������������E�����������_���������������L���������z��
����������F���y�l�`�Y��	�T�c�[���X�e�U���_�������a���W�f�X�]�b�������j�g�k�^�Z�h�j�\���G�������d�f���i�S�V�I�H�J��V
��s	�c���q�d�a���l���h���r�b�e���t�y�m�p�������i�d�������`���C�����o���k�u��g�n���z���j���B���f����@������
�����	�����D��H�����A��������C���������K����E�M�������������a�f�O�h�N�I���d�j�N�J�K�`�g�M�e�L�_�c�b�O�^�
���i	�@�Cű�m�p�l�n�o�i�j�g���k�hŲų�Q�K�M�����L�N���J�����N�C�����D�����S�R�T�_�U�^�V�r�u�t�h�s�R���r�p�q�w����������	������^x�	�����������	�S��	�t�����D�x��v��$���	���{���E�F���}�z�y���|�{�~�����{�����h���������������T���������������P���[���\�M�K���I�J�F�F�N�H�Lf��	�������������������G��n�l�m������w�x��E�G�F���P�m�l�k���V��	����ɪ�X���V�Y�Wˮ����˰��˯˭�����W���������������t�����@������	���������������������Y�����E�����F�~�|�}�������I���H�K���J�����������������G���},
�ܣ��	ܢ�������|�~ܡ�����������������j�k�����i���������������G�H�O�I�������o������A���G���Ln
�����ܤܦ��������ܥ�n�o�m���l��	����P�J���p�t��q���u��s�y�����B������ܨܧ�������s�p���r���q����
���	��R�]��^�_��`�Q�N�K�P�S�L�R�O�M������������f�w�v��x�~��}�z��{�|�H�I�����S�k�n���Q�R�oŴŵ�q�
X�[���E���G	�����F�W�������C�f�t�����Q�R���D���a����S�����Mܩ�Fܫܪ�Q�����u�v�������������48������������	�X�����c�b��d�V�U�T�T��P��A�@��������}���{�~�|�y�@�z���]��z���\�J�|�K�R���pv��ŷ�^Ŷ�O�P�H���v�i	���������������C�B�����������q�r���������W�D���������X�A���L�M�T���Q�������N����ܬ��	�z�|�������w�x�{�y���t��������g���W��e���[�����f�Y���Z�U�[�����Y�X�V�Z�W��	�E�J�F�I���^���H�G���D�B�E�C����F����@��A����Q�N�O�P�r�V���U���t�sŸ�j���I�`�X������<�	��ܭ������������h�����B��b�G��B���~H	�u�R�S�i��	�t�D�C�s�A�u�������`�������I���H�O�J������ܮ�K�����d���~��������}������	��	������������i���f�\��k�j���������l�g�a�_�i�^�]�`�\�K�^�]�_�N�L�M�R�K�Q�T�S�P�O���j�R�M��f��J�H�IX
�{��k�	�C���D�l�X�W�g�U�T�����Y�v�w�W�v�V�w���l�a�Y���m��D4	���P�U���j�����`�W�V���L�����l�������������������������������w����	���������o���������������n�q�s�����r�������t���p���m�o�����c�f�d�c�U�i�h�g�b�b�a�e�d�Z�R�^�[�]�\�Y�_�b�`�a�@�T	���X�c��������S��M��U����E�F������]��q�����m��`�^���]�c�a�s���\�Z�[���_���b�x�~�T�q�y�[��
<
�Z�}�|�Y�{�X�z	�}���~�{Ż�x�|�����y�zź�R���V�S�����m���J�v�j�W���k���������z����L,	���������������j���l�W�u�e�j���m�f�_�d�k����N�	�f�d�e���\����ż�������b�]����I�[���\�����������h�v�w�������^�n�q�p�o�g�h�f�e�\�<	�g�W�O���P��e�������G���r�g�i�h�`����������Ž�T�U�V�K�c�����x�i��^���a���J�{���r�d����A������������i�������z�y��	�i�����S�R�Q�h�^���]�����L���������������������t���|�����������{�}�x�v��w��T��s�u�y��	�t�r�u������m�`�|�j�{�z�~���j�m���l���t�o�s�q�p�n�k�C�B�D�A�u�g���������������X��	���������W�U�T���������J�������K���v���������������I�H�������������w�x�l�o�V�p�T	�o�m�s�q�k�v���j�q���r���n���u�c�t�g�������z�������`�V���������_��ſ���������������~���������p��	��������ž�Z�\�_�[�`���Y�W�����]�����X�^�����M�����������Z�\�[�y�P�x�w�z�s�t��������\���	���������}�����~����o��k������p��������l��m�n���z�{�~�|�v���y��}���E���F����w���^�	�}�������H�����Y���������������������Z�����[�M�x�����O���P���s�������N�������������������z���X�������{�����������L������	�}�{���������|�x���~���z���w���������y�������������w�����a�������b�������d��������������"8�����c������	���������������������������s�����������������������i�n�d�g���k�r���e�o�s�j�c�m�l�q�p���h�b�f�N�O�a��������d,����������������	�����]���^�}�`�_�b�a�|�{���������x�|�����}���(	���������P�Q�������T��������������G�����	�����Q�S�����p�R�m���������e�������c�����������������A����������T���������������J*������t����	������d�����H�u�����r���q��L�J�K�I���\�������������������f�����v�w���d�}�u��ܰ��������l�������	�x�R���e�~����������]�������g�����y����������A�����������^������������������|�{�z������M�������}�������f�������N������~��	�������������i���h�������������������i�j�����������������T�������S�g�j�i�h������	�s���e�����������������t����������C�m�t��������������ȡȣ���H2�	����������t(�������|�d�D�,�������������p�������l��xP0���x@	�	P
,�L4
$�4���L��P��P0$ �����x(.0	��bd<	�I�����C�H�����]�^�����A���D�����������������������G�F�������H�I�������������������������������������������������������@�����P	�F�G�������D���XP�H�X���P|�|:�	�q�u|�	�v�H����	�����|���	�N�K�z�H�G��B 	�E�S���, 	�����r�H 	�G����d 	���}����J� 	�����{�� 	���_�T������ �y	�t� 	�u��R� 	�I���|�c�`�m�!�b	���k�j�8!	�T�s����X!	�B�v�eZx!	�l��!	�n����������!	�����u �!	�@bd�!	�v���{b�!	�m�������B���\�"	�����������D"	�{��(h"	����j�"	����"	�P4�"	��Ҧ�"	����"	�F�c0�"	����r#	���#	�f�,#	�S�b�@#	����8X#	����zp#	����#	���@�b������#	�����������r@ �#	�^�������\��� �#	���C������������� $	�����|����!@$	�_�����Y�k������H!d$	�D�J�����!�$	�d���������������M���W�C�D�!�$	�����T��"�$	��P"%	�������c���e�o�~�C���",%	�����������f�p�u�����"d%	���]�H���@�����v��#�%	���������w�d�gX#�%	�K�S���J�������#�%	���_�#(&	�������X������$@&	�a���}����`$l&���$ @ P�\ x � � � � !0!P!p!�!�!�!�!�!"<"`"x"�"�"�"�"�"�"#$#8#P#h#�#�#�#�#$8$\$�$�$�$%$%\%�%�%�% &8&d&�&�$�&	�B�y�z�$|'	�����~�D���|�q��&%�'	�������N��h%�'���c	�I���n�������Z�{�|�%�'	�������%((	�A�r��.&D(��	��p&`(	�r�&x(	�s�&�(	�_��6'�(	������x'�(	�����'�(	�|�E�n�V���K�'�(	����>()	�������(,)	���@�����(H)	�N�h�l��)h)	���j�tF)�)	�����A�)�)	�����)�)	��*�)	����N*�)	���������**	���*$*	������+8*������	�G�������a���������ZV+T*	�������G�f�U�+�*	���C���������������+�*	�d�������N�D��,�*	�����i���K���|����������������^, +	���������������U�,l+�t	�����������l���c���,�+	���������`�X�v������$-�+	���J�I�x����f-,	�U�V�Q���������D�U�c���-4,	���k���Q�-p,�W	�x���P,.�,	�L��n.�,	�@���.�,	�A���a�.�,	��4/�,	���|v/-	�B�/(-	�C�/<-	�y���D<0P-	���{�n~0l-	���y�^�0�-	���S����1�-	��������D1�-	�t�����1�-	�E�G�1.	�P�H
2.	�[�/0.	����L2D.	�L�2\.�'�'�' (<(X(p(�(�(�(�(�()$)@)`)�)�)�)�)P��)�)*0*L*�*�*�*+d+�+�+,,,h,�,�,�,�,�,- -4-H-d-�-�-�-�-�-.(.<.T.h.�2p.	�K���i3\/	��T3x/	���s�3�/	�Y�/�/	�������3�/	���*�/	�B��4�/	��P"0	�N�&0	���_\4(0	���@0	�N�O�P�4T0	���P�4p0	�s������"5�0	�������Xd5�0	�^�Y�u�5�0	��"��0	���p�q�5�0	�w���m*61	�]��l601	���A�6H1	�k�����6`1	�}���M���Q27|1	�����1	�����h�mt7�1	�g��1	���7�1	���l�R�7�1	�p�2	����:8,2	����|8D2	�S�U���8\2��	�V9x2	��B9�2	���W���Y�9�2	�[���]�9�2	�O��:�2	�{�BJ:�2	�P���P�:3	�`�E�F���:,3	�b�{���`���c;L3	�i�G��R;t3	�|�e�f�;�3	�r�z���;�3	���h�����w�g<�3	�Y���3	����Z<4	�i���<4	���Q�<44	�_ =L4	�jb=`4	�k���=t4P�p/�/�/�/�/�/�/0 080L0h0�0�0�0�0�01(1@1X1t1�1�1�1�1�12$2<2T2p2�2�2�2�2�23$3D3l3�3�3�3�3�34,4D4X4l4�4�=�4	�lҦl5	�N���m�g��(>�5	������j>�5	��T3�5	�����>�5	�F��5	���������>6	������������0? 6	�����������w��r?H6	�����Z�?t6	�T���Q�������?�6	������8@�6��	���nz@�6	�pb=�6	���o���@�{�������@7��	�Y�@47	���@�_@AL7	���h7	�v���A|7	���G�t�A�7	��������B�7	�F�O�I�uHB�7�\	�Q�y�K�B�7��	�X�_���B8	���|�C����C08	���MPCT8	�[�z�������X�Cl8	��B9�8	�������C�8	��������D�8	�����8	��XD�8	���9	�i�R���D 9	��T3<9	�nT3P9	��T	d9	�|���|�g���Dx9	���N���t������E�9��	����`E�9	�{���S�������X�y�{�E�9	�����E:	�b�������������H��&F0:	�������K����hFd:	�@���^�_���J�p�F�:	�g���:	�����c�H�F�:������	�����~.G�:��	�C���������H��pG;x5�5�5�5�5�56@6l6�6�6�6�6P��6,7D7`7t7�7�7�7�78(8L8d8�8�8�8�8�89949H9\9p9�9�9�9:(:\:�:�:�:�:;<;�GD;	�����J���K���G<	��6H@<	���Z������xHT<	���Y���Hx<	���[�����H�<��	���F����������������>I�<	�m�|�a�����I�<	���`�R�I=	�OJ0=	�n�m�d�S���xFJD=	���]���Z�P�Jl=	�����b���O�J�=	���R��K�=	�����k����NK�=	�������k�K�=	�Q�q�������K>	���L�jL8>	���a��VLT>	���D�����Lp>	�i�b���L�>	���UM�>	�w^M�>	��P"�>	�����M�>	�����M?	��6H?	�}"�0?	�f�Y��$ND?	�XfN`?	��D�t?	���T�N�?	�tXD�?	�����t���������N�?�~��	�}�o�a�����R�X�h��,O�?�����I��	�M���I���q����nO@	�n�����C�Y���f�}�o�F�m�����|�����e�~�X�w���OX@	�������������m�F���F�[�����g�O�@	���������������b���k�����N���g4PA	�����`���u�����{���j�^����������vPPA	�~���h�����[�������]�V�b���O���P�A��	���_���e�L���P�A	�[fNB	����,B	�m��@B	��<QTB	����~QhB	���s�Q�B	�t��R�B	�K^M�B	�U�iDR�B	���R�B	�v�R�B	���h
SC	��LSC	���S0C	�������������SDC	�{XDlC8<L<p<�<�<�<=(=<=d=�=�=�=�=>0>L>h>�>�>�>�>P��>�>?(?<?X?l?�?�?�?�?@P@�@�@HA�A�AB$B8BLB`BxB�B�B�B�B�B�BC(C<CdCxCT�C	��4tD	��TT�D	���T�D	�E�T�D	������U�D	�J������\U�D	�����UE	�Z�RE	���&,E	�o���U@E	�_����"VXE	��������dVtE	�������V�E	�ST3�E	�������V�E	���I����������*W�E	�������ylWF	�{�~���W,F	�F���WHF	�p�`F	����2XtF	����tX�F	�@���W���X�F	���X�F	���C�D�O:Y�F	������|Y�F	�o���J�YG	���70G	����ZDG	�N4\G	��BZpG	�`"��G	���������Z�G	�Q�Z�G	��b=�G	�����d[�G	���a�dJ[�G	�[�����[H	���lR4H	�s���[LH�u�q	�`\dH	�j�LR\�H	�R�7�H	�����\�H	�TLS�H	��<Q�H	���C�������\�H	����]I	��T3(I	��d�<I	�b��Z]PI�D�D�DP��D�D�DE$E8EPElE�E�E�E�EF$F@FXFlF�F�F�F�F�FG(G<GTGhG|G�G�G�G�G�GH,HDH\HxH�H�H�H�H�HI I4IHI`I�]hI	�}���]DJ	���� ^\J	�����W�wb^tJ	�����^�J	�m���V�@�^�J	������(_�J	���T�J	��������j_�J	���RK	�G��0K	�������_DK	�I�_`K	���L0`tK	�����`�Kr`�K	���p�`�K	�C�G���T���`�K	�ITT�K	�^�X�K	�^�\�K8aL	����za,L	���_�L�aDL	�����V�a`L	��@b|L	�T�b�L	�^���h�b�L	��BZ�L	���S�L	���a�_c�L	�M�[�iHcM	�cbd M	�����g�i�c4M	���TM	�e���chM	�T�ld�M	�n�]�sPd�M	�j�m���d�M	�M�������^���d�M	�L�u�����t�Ee�M	���j�N�x�UXe N��	�A�eDN	�\�*\N����	�M�f�e�epN�I���B	�z�����[f�N�M	���a`f�N	�K�������@�F�g�Z���f�N	�A���fO	�������L���U���o�}&g(O	���o����hg\O��	�V�����g|O	�^�l�����S���k�g�O	�����S�y.h�O	�o���x�B�Z�����aph�O	�OB9P	�s���h,P	�������hDP	�C��~Q`PTJlJ�JP��J�J�J�JK(K<KXKlK�K�K�K�K�KL$L<LXLtL�L�L�L�L�L�LM,MLM`MxM�M�M�M�MN<NTNhN�N�N�NO OTOtO�O�O�OP$P<PXPpP6ixP	��LShQ	���K�Jxi|Q	���������i�Q	���T�\�i�Q	�E�F�����`>j�Q	�H�G���j�Q	���R	�qJ(R	�E�<R��	�������p�jPR	��B9tR	�RTT�R	��T3�R	�Pk�R	�}��R	���R�R	����Fk�R	��b=S	��T	S	�����i���k,S	Ȥ�����A�kLS	������llS	��"��S	���L�`Nl�S	���X�l�S	�����l�S	��BZ�S	����m�S	����VmT	�qP",T	���m@T	�����mTT	��D�lT	����n�T	������^n�T	�p���s�n�T	�[���d�n�T	��b=�T	�h����������$oU	�A��fo(U	�l���o@U	��TTXU	�Z4lU	�H^��U	�JZc�U	�l =�U	�������n�o�U	�@������,p�U	���S�U	�j��npV	����(V	�|�<VtQ�Q�Q�Q�QRP� R4RHRlR�R�R�R�R�R�R�RS$SDSdS�S�S�S�S�S�ST$T8TLTdTxT�T�T�T�T�T U8UPUdUxU�U�U�U�U�UV V4VHV�pPV	�A���A�����p0W	��P"TW	�����b�N4qhW	���f��vq�W	�����W	���S���q�W	�@�A�E�q�W	�s���B<r�W	�a��~rX	��J$X	�����r8X	�C���D��sPX	�N����DspX	�E�s�X	�OTT�X	�G�����s�X	��XD�X	�^�c�W
t�X	�f4Y	����LtY�b	�g�����t,Y	�H���O�]�tLY	���k��lY	�\�iu�Y	�W�UTu�Y	���s�u�Y	�����K�������C���u�Y	�F�`�S���N�@v�Y��	�B�V�e�l�J�P�R���Z�I�G\v$Z	���x���`�N�V�vdZ	���a���]�����O�����@�v�Z	���}��������"w�Z��	�{���{�w���C�����������e��dw�Z	�}�e�����������H�w4[	�S�����]�_�_�n�]���wd[	���������i*x�[	���U�T�A�����z���G����������lx�[	���V�����f�G���������x\	�O���M�x<\	��b=X\	�N���\l\	������2y�\	����ty�\	�����r�z�y�\	�����y�\	�XZc�\LW`W�W�W�W�W�WP�XX0XHXhX�X�X�X�X�X�XY$YDYdY|Y�Y�Y�Y�YZ\Z�Z�Z�Z,[\[�[�[�[4\P\d\|\�\�\�\�\�\:z]	�F��]	�r���B�����Y|z�]�e	�����Y���z^	���[�\{,^	�~���^��B{H^	�`���{h^	�����{�^	��������|�^	��P"�^	�F�K�X�L�cJ|�^	���e�f�|�^	�Z�d�l�|_	���g}(_	�p"�@_	���RT_	�P6Hh_	���m|_	�h���t��R}�_	���Q���}�_	�w�d�v�i���j�}�_	�N�T�_	�k��~`	�l�2 `	�e�4`	�]�mZ~H`	�Z�``	�BҦt`	����`	�j�_�`	�n���~�`	���o�~�`	�� �`	����b�`	�r�2a	���q� a	�U�q�8a	�r��(�Pa	�t*ha	��j�|aP��]^$^@^`^x^�^�^�^�^_ _8_L_`_t_�_�_�_�_``,`@`X`l`�`�`�`�`�`�`aa0aHa`ata�a���a	�\"�<b	�����Pb	�w��������0�hb	�U�x���|r��b	�w�R�b	�u���v���I���b	�y�����b	����8��b	�u�R�E�����_��z�c	���w��@c	�V�Xc	�@�Zlc	��b=�c	��J�c	�x�z���c	���K@��c	�������c	�u�Z�c	��kdHbP�`b�b�b�b�b�bc8cPcdcxc�c�c�c�c�c�cdăd	�t���td�G	��H��d	�H�w���d	�R��d	�����z̄�d	��"��dP��d�d�d�d�d�d�ep�t'T/d5<lD<J`Q(W�]4bld eP�(e����8�P�p������$�X����h�P����Q��`�4p�,��`e�����heĀÁǍÀĒÉĚÈŌÓǑÒẾỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚǜüếềêɡ��e攊丽滝鵎釟撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮琑糼緍楆竉刧醌碸酞肼贋胶肟黇䳍鷉鸌䰾鸊㗁溚舾甙䤑马骏龙禇两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅�lh唥喐㧬蹆䁓睺㨴䟕擝撍蹾䟴骲㩧㿭㔆鵮頕䏙撴哣㧻擪蹨䠋㿺塳啹䂻䎺䪴膪飵捹㧾跀嚡摼㹃㦒㨆㕸噒㒼氽羓㗻㾓㿹搲��j㨘閪哌苄喹鰦骶煀腭胬尜脴㞗卟醶㗝㘉嚯婔垜㜃墙剨㘚箲孨䠀䬬鼧䧧鰟鮍嗻㗲嚉丨夂靑乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭罒礻糹罓㓁耂肀卝衤见讠贝钅镸长门韦页风飞饣鱼鸟黄歯龜丷阝户钢�lm倻淾㷉袏灷峵䬠㕙愢辧釶熑朙玺㲋䬐磤琂冮䀉橣䈣蘏稪靕灍匤鏴盙矝亣俰傼丯众吴綋墒壐庒庙忂斋椙橃泿爀玌㻛嬕璹讃窓篬糃繬苸薗袐躹迏蕟駠鈡䁱䊢娚顨杫䉶圽藖芿䲁嵻宖繛��o崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆溻滢滚齿滨滩漤漴㵆澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉䏁㗱�lr垾焾㙎榢孴穉穥穽窻窰竂竃燑䇊竚竝竪䇯咲笋筕笩箢筯莜篐萡箒㶭蒒篺簵籄粃粦晽糉糇糦籴糳糵繧䔝絝璍綉綫焵綳緤㴓緵緥繮纒䌫鑬縧罀罁罇礶駡羗羣䕜䔃翺耈耝耯耻耼聡䦉朥肧脇脚墰汿擧舘橓䑺舩俹蓢荢芪椛䇛��t蕋苐茚㛁艻苢茘㶿茝嗬莅䔋莬菓㑾橗蕚㒖葘葱㷓䓤檧葊祘蓞莑䒠蒓蓤䉀䕃蔴嫲䔧蕳䔖枿蘖藁蘂䕪蘨㙈号虾蝱蟮螱蟚蠏噡虬桖䘏衅衆衞袜䙛袴袵揁装睷覇覊覧覼觧誜瞓釾誐竩䜓煼謌謟謿譌譍誩讐讛誯䘕衏貛㜥賖贒贃賛灜贑㻐�lw趩㭼竧躭躶軃鋔輙輭辥錃辳䤪廸迹㦀逷遡邨郄邮酧㫰醩釄粬鈎沟鉁鉢錬鍫炏嫃䥥鉄鍳鑛躼閅閦鐦閠濶䊹䧟氜陻隖䅬隣懚隶磵隽双䦡霱虂霶䨏䔽䖅灵孁霛靗孊靟鐥僐鞉鞟鞱鞾韀韒韠韮琜韵䫑頴頳顋顦㬎㵑��y飊颷飈飇䫿喰飡飦飬鍸餹䭲駵騌騻騐驘㛄髠髢髴䰎鬔鬭倴鬴㣃魐魀婅鮎鰂鯿鰌鷔鵾鶃鸎梈鷄鴹麐麕麞麢䴴麪麯黁㭠㧥㴝伲㞾鼂鼈䮖鐤鼗鼹嚟嚊齅馸韲葿齢齩竜龎爖䮾煷玞禟鍩鏳鋬鎁鏋爗㻫睲穃烐煾炣㻇㜢㛡㜣坛�l|蔃葕䓴柹㜳㰕㷧塬栐䁗哋嚞嚒鏆鎜仸儫㠙亼佋侊婨㦙㐵伩諚亘働儍侢伃佂倮偬傁俌俥偘僼湶浲冨凃䓝赺剙劤勡䙺熌槑㻞璙琔瑖玘䮎叐㖄爏喴响圝鉝雴鍦埝垍坿㘾壋媙娬妸銏婾嫏娒㛵洅瑃娡��~媁鏠璌焅䥲鐈鎽㞠尞岞幞幈廍孏㜁㛝㛓脪弌弎婫孄蘔衠恾忛㺸懀憙憘恵摱㨩挷撶挱揑护搻敫楲㯴唍曎㫠䆐磮㑤暎晫䮓昰晣昞㣑㮙瓐㮖枏梶栞㯄檾㡣樳橒櫉欅攑梘橌㯗橺歗鎠鋲�l�銉鑧涥漋㶏渄娽渊塇洤硂焻烱牐犇犔兹瑺㼆㺱悧㻳瓌琼鎇琷䒟䕑疃㽣㽘畕癳㬙瑨㫻㷍㻿釺圲鍂僟睸眎眏睻㩞琸璛㺿䃈錇砞碍碈磒珐祙䄎蒖禥樭稺秴䅮䄲鈵秱㖗啫㕰㚪竢婙娍磰娪竾䇹籝籭䈑糍粎籼粮檲緜縇緓罎��綗䉪柖埄翝笧笌駦虅驣樜㧢騟蒀䓪脷䐂胆脉腂飃艢艥葓蘐媆䅿嬫嫤蚠蠭娂衮佅袇袿裦襥襍襔㺭蒣䛵䛏㟲訽訜彍鈫旔焩烄鵭貟賩妚矃姰䍮㛔踪躧輰轊䋴汘澻䢛潹溋鯩㚵邻啱䤆醻鐄䁢鐧蓥訫閙閧閗閖瑅㻂㻧随㻌琒瑫㻼靁�l�桇䨝鍨銺嬑譩䤼珹鞛靱餸巁頟鋶釥䓀飜㼀鈪䤥萔餻饍㷽馛䭯馪驜檏騡嫾騯䮐馼䮽䮗鍽塲堢硄棅㵽鑘㤧慐愇鱏鱓鱻鰵鰐魿鯏鮟鴡䲮鸘䲰鴌鶥蒽藼䔳萠藮秢䤭㵢鏛銾鍈碹鉷鑍俤㑀遤砽硔碶硋㚚佲濚濙瀞吔垻壳垊鴖埗焴㒯燫��愌嫎娋䊼㜬䭻鎻鎸葲妔綨鋥珢㻩璴㻡櫘珳珻㻖瑈炥銄珦鍟錱鎆䤵煫嚤唂秄緾䔮鐁㜊妰媡㛢㚰鉟婹鍴㳍䪖㦊僴㵩㵌煵䋻渏䓫浗灧沯㳖渂漌㵯畑㚼㓈䚀㻚䡱姄鉮䤾轁堒埈㛖烾梹楧樚萾䓟䓎�l�漗茽菭妉媂婡婱㜭姯㛇熎鎐暚婮娫樫焝侰峂樌炦焳㶥泟繥姫崯㷳彜綤萦咅坾㿥瀃嵰玏糓俈翧狍猐猸猹獁獈㺩遬燵珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈礳栃礲䄃��䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿�l�鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯鵉鰺黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄椚铃妬塀铁㞹块煳呪咞惧噺楕鰯螥尠帋朞㙇卤蒭讁乸炻��拃熘桕槩㛈苽覥辠鞸顇骽徱晈暿墵朎椘䣐䪸凒妟㮾垈㦛㝢譞爉奥軚劏圿煱喼㑳䜘偦㓻䝼垡煑遖譢�l�嵛諪䯀鑥憕娧嚹乪陖涏㘘襷筂穅騦㙟禃崬䛐画补墶㜜㱔銁錰氹钟蠧裵溸㦤㚹䔿暶襃囖䃟㦡熭荦䲷筃祾澵樃厢鎿栶靝嶅圕頣嶫斾槕叒㰑朶��㗊䣺揦砈鉕䏲䏟姸㷷运犏嚋纟䲤镇熢䶑递䶜达嗁辺边䔉繿潖檱仪㓤㜺躀㷫亚嚿踎孭揞攰嘭吚㷆䱽嘢嘞罉奵蝰东脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖㗎嘅嗱曱㘭甴嗰喺咗啲廐�l�麫絚嗞抝靭咔賍燶酶揼掹揾啩鱲冚㓟冧呍唞唓癦踭疱肶蠄螆裇膶萜䓬猄宐茋噻酰鈈牦䝎䃺鱝攟䣳熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥墚舭呋垪㩒獴䴉鯭䱛葜挮紥㨪逈勌㹴㙺䗩癀嫰硺䞶墧䂿噼鮋嵴癔麅䳡㟻愙噝垧刴㖭鵼��籖鬹埞屓擓蚭凾嶎霃麁遌笟鬂峑箣扨挵髿篏鬪籾籂粆鰕篼鬉鰛齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰椬叚鰊鴂䰻陁榀傦畆駚剳酙隁酜酑捿櫊嘑醎畺抅獏籰盖鮝个莾衂届槀坺刟巵从氱伹咜哚劚趂㗾㗳歒酼龥鮗頮颴骺麨麄煺笔毺蠘罸嘠蹷齓跔蹏鸜踁抂踨蹵竓稾磘泪詧瘇�l�鼦泎蟖痃硓贌狢獱謭猂瓱賫蘯徺袠䒷詾惽癧髗鵄鍮鮏蟵賷猬霡鮰㗖犲䰇籑饊慙䰄麖慽坟慯抦戹㩜懢厪捤栂㗒嵗迚僙礆匲阸䁥矾糂糚稭聦聣絍甅瓲覔舚朌聢聛瓰脃眤覉畓螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦覩涹蟁瓧㷛煶悤憜㳑恷罱惩䭾删㰘峁䕢嬟齐麦��讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲①②③④⑤⑥⑦⑧⑨⑩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广彐彡攴疒辵¨ˆヽヾゝゞ々〆〇ー[]✽ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじ�l�ЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя⇧↸↹乚刂冈¬¦'"㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣ʃɐɛɔɵœøŋʊɪ��纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯■�l�鋛蕌䊵珯况㙉鍄苮砼杄拟侫倈徤滛儁㑺儎顬㝃萖兠兪宂蝽冲冸鴴凉减凑㳜凓决凢卂凭菍椾彻刋刦刼劵剗劔効勅簕蕂勠蘍啉滙匳泋栛珕恊㺪㣌燝䒢卭却卾矦厓厠厫厮玧㽙玜叁叅汉义埾叙㪫叠叶吓灹唫晗浛呭啝咏咤䞦㶴��啇䳭启琗喆喩䕒暳嘷曍暤暭噍噏磱囱鞇叾圀囯园㘣坆汮炋坂㚱埦堃堦塜墪㕡壠壜壻寿坃鏓㖡够梦㛃湙娤啓蔅姉姙浱姹媫婣㛦㜈媖瑥嫓㶅㜲広勐孶斈孼䀄䡝寕慠寳宝䴐尅尓珎尔屉䣝岅峩峯嶋崐崘嵆岺巗苼㠭芇㠶㯂帮檊幺厦亷厨帉廴�l�廹廻㢠廼栾鐛弍㫞䢮强彣鞽彲鍀徧嶶㵟釖怱暅㥣㷇㘹垐祱㹀悞悳璤僡媠慤萤慂憁凴憇宪懓懐㤲怣慜攞掋担拕捬㨗搸揸澊頔擡擥鑻㩦携㩗敍漖斅敭敟斵䬷旑䃘无旣忟昘晄晋晧晳矅馤朂㬫槺杧杢柗䓩栢湐鈼栁桝��槡樋楳棃椁椀㴲㨁㮀枬楡䋼椶榘㮡荣傐槹橅檝㯳枱櫈㰍欝惞欵歴溵㝀吡毡毜氷汚舦汹䓅㛥㳫鮃羏样涖浜湼漄蔳凇萮瑓秌湏媑濸㜍澝滺䕕鏰潄潜㵎潴㴻澟濓凟灋灾炧炁烌烕烖烟䄄㷨熴熖焫煅媈煊岜煏鍢焬熺炽爎�l�鑂爕夑鑃爤鍁爮牀梽牕牗㹕栍漽犂猫䣭猨献珏玪珉瑉昣㛅珷琕椃琹㻗瑠瑇珤瑶莹瑬㜰瑴鏱樬璂䥓孆瓈甎甞寗鎅畍畊畧畮㼄疎瑝疞疴瘂瘬癑癏癯癶皐臯㟸皡皥皷盌葢眞眦着撯睘瞯矴棊碯磇磓隥礮磗礴碱辸袄禆褀椂禀禝礼禩渪㺨秆秔����h���h���h���dh�jdm�odr�tdw�yd|�~d��d��d��d��d��d��d��d���	�����"�$'�),�.1�36�8;�=@�BE�GJ�LO�QT�VY�[���d��eh�jm�or�tw�y|�~��������������������������������������������������������d��d��d��al�	!�F�G�D|����ca-R���X��23���g�P�M1o�bt��Y�WAC�]�[�fEIDN�a�_O��UYTs�j�hac�o�m��e�s�qin�w�uo����{�yu��yty�ܺ$5P���t��� �p5x5���5���< �T�L6h6�L`�����@�B�C��	�������q�r�m�n�u�v�y�z�i�j�E�e�f�����������������������������	�@�G�T�|�����C�K�E�Q�����������g���������W�S�]�����N�I�����������e����	�������h���Y?��	�����S������D�	�j�\���^�����f��Çh�	�����H�E�o�����	������G���	��T	ܽ	�f���������	�p�dˈ�	�I���o���~
�(��L	�����S����O�L�	�����I����t�	�����I���r�k���PӉ��	���e�D�n���c���S�����y�]�c�i�ľ	�������������f�n�������a�����]�����i��������W���b	���c����t���	�������m����ۊ����\H@��P��7�489,�P��<�`�L���������$DdԽ���� 	 �p	�	�	�	
D�`
�
l��
0\������Pt�l���T
h
�����	������_���	�������~���	�����@�������	�F�����s%��	���Hg�<�	�K�U�N���Y����T�	���T|�	�g�����	���v�Q�s�O-���	���n�p�����So���\	�z�������d���b���d�L���	�������T�|���z�����������0�	�v�p�K����������5�p�	��Zc��	���Z��	��������w�����	���	���y������	�������	�z��=�0�	�������H�	�������d�U���|�M����d�	���������	�o�j�_����E���	���y������	���s������ɐ��	�����C��	������M�4�	�x�{��P�˶������˻˴��˷��˺�o��	����������������˾˲������������P�W�V�J�f�����I�Q�]���������Kёh������4�L�t��� <��h������(�h���������X���(�@�\�$<X|����8P���t��������,�H�`��8���p��$�	���c�����h���d�g�f�e�b�������������������������o�����������i�k�j�l��������������������������U�(��rʣ�f�c	�z�bʦ�e�i���V�`ʢ�y�����O�����������P�y�����������I�K�M�������L�E�A���D�I�R����������������	�����m�o�n���������������I�}�|�_�^���]���[�yʩʨ�w�z�\ʧ�[�x�W�����T����ْ���	���U�������T���Z�g���X�^�U�Y�[�]�W�}�V�Q�R���������S�\�������o�P�S�R�W�N���Q�P�A�T�`�Գ�����i������ԻԶ�K��Ը������	����Ԯءتة��آ�����}ؤ��ب�lأإ�}��زرخ�������Kث����ح�~ذد��س��ج]���U�[�d��	���Z�`�e�V���^�b�h�X�a�w���g�Y�����Y�K�W�V�M�R�N�Q�\�����[�o�J�P�Z�O���L�X�}�~�M���O�J���L����	���Z�]��ʰ�^���B�`�Y�L�B����i�~�p�g�h�]�{���������j�������[�����q���_�`�i�j����������q�p�m�k��	�L����ʶʹʸ�����R��ʵʳ����������ʴʻʷ������ʲʺ�����g�o���O�H�p�S�D�K�t���f�E�d�L�P�c#�|�	�@�M�����r�������������G���C��ض��������A�D����غط�s��عؾؼ�E����ؿ�ص���B�@�C��D�@��F���������e�T��A���A����	�������B����E�A�����n�������z�p�v�k�y�x�|�u���t���w�m���{���o�r�w�q�l���x�s�U�a�X�W�Z�\���_�V�r�T��8����r�y���s�v	�t�u�w����ʼ���gʽ�W�X���v�x�z�w�{�y���b�c�����������f�w�}�h�g�c�_�`�b�d�a�f�e�J�$������I�k�H�G�K�F	�����I�����K���H�J�����H���I�J�����~����������������f���g�e�d�]���������d�_�o�x�u+�������	�Y�~���Z�}�������x�������j�h�D�k�i�j�^���P�Q���O����h�i�a�����������K���s�w�v�z��������m���	���hΫΤΪΣΥ�}�{άΩ�y�X��ΧΨΦ�|�z��΢�~Ρέ�s�o���n�l�k�n���p�o�s�H�q�pή�r�m�l�m������������	�����R�a���O���O���P�������b�����@�S�V�N�P�U�T�C���R�D���M�Q������������D�	��������λ�����|�a�F�b���I�}�����������������q�r�s�k�����p����μ�z�z�y�i�L�j�M�L�]3�����` <!"�"t#8$���%x&8'(�(t)d*��,�,�-t.T/H0$12�2X�L45��6��T8���9t�d;L�8=�=�>0���AdB�����D��TF<��G���I8J�J�K�LtM���N�O�P.��	���F������������̹������������̵�����������������������Q�{���A�����@����ѱ���C�������������������B��u���	�������������q������������������լ��իխ������ժծ����թ������٧��٢������٥٨����������٦��٣١�v�������	�������������P����������������`�n�K�m�Q�R�f�P�����������������������T������������p�	�P�����C���G�B�E���������@�A���A�@�F���D�������������W�����C�M�N�F�X�H���S���I���������V���Q�O;�,�	�����������J�P�D���������R�����U���E�L�����T�G�K���Y���M�[�\�i�^�V�L�b�J�[�E�e�R��A�}}��������������������������B�l��	�����������������������X���������������������^�{��������������������������������	���D��������������B������S�K���Q�����~�W���A����G�E�B���C�O�L�T���@�F�G�����F�E������P�N�R�����`R S�S�T�U�VdW4X�X�Y�Z��(\�\�]�^�_d`0ab�b�c�dXe(fh��g$��i����l�l�m\n@op�p�q�r��Tt@u�u�v�wHxyz�z�{�|�}D~�̀d�|�X�T�(���.l��f�i�a��������	�����������g���x�����������y�������������������W�e���l�����������������A�^���_�G�b���_�`�a����C�x��Z�p�w�yޡ�����k	�����z��ޢ�����}���m�~�l���x��ޣ���q���|�o�v�r�n�������������u�~���N�{���s���������t�����������`�����l�	�m�z�k���j�i�{�����l�j�k�A���������������������D�����y�����������G���������R�����n���bǘL���	�������������^�����������Z��ҴҫҶ��ҮҹҺҬҸҵҳҷ�_�]���\ұ�tҭ�sҰһҲ�^���Z�\�F�d�x�m�k�h�l�N�s�e�t�p�{�u	��޷��޻��ޱ��޼�s�n�_޲޳	޽޺޸޹޵޴��޾����޶���������������q�����������z�������w���������������y���u��]���@�bK���A��|��	���������D���i�f�e�g�f�Z���c���X�\�[�d�h�Y�q�m���z�����j�h�k�n���l�g�^�B�E�u�@���o�Fâ�D�{�����A�C�G�v	�t��ã�s�j�n�����������������������nҼҽ�}޿�]ä�{�������o�`�������M��Ҿҿ�~����ګ����ϙ���q�p	��ͤ������������������������������������������������������������������������}	�������|�D�z���{���y�A����Z�����X�@�W�\�[�Y��I�H�c�D�����G�F���^�����_�[�]���ZS�`��\	����j�p���I�E�r�q�n�o���J�����`ª¨©�L��íì����������H�sͥ����ͦ�M�@���� ����Q�R«¬	�u���������L�A������V�M���W���������������G���X�E���M���v�����ͧ������ך��	�]���X���N�P���U�T�W���R�Q�h�����S���Y�[�V�O���i���a�Y�\���b���c���e��������������`�h	�d�f�g�v�����j���]�f�����t��x�������Q�y����w��{���z��������������O����n��d���N�[�D��Y�j	�`�d�\�X�W���v�b�Z�^�k�i�f�g�c�r�B���j�x�t���x���e�}�u�b�U�w�f�������v�p�������������c���q�����s����������X���l�(�D������\�$���ؓ�����������0������d�@������d�H�����p�X�$���X���������\�<������L� ���������|����L�4���.��	�g�Jߡ���N���K�����P���M�G���L�������|�}�~�w�u�{�sߢ�x�r�{���}�v�~�[�|�~�y�x�y�}���|�t�z�������Lߛ��_	��߳��߯��߮�`���m�q��������X����[��Y�������������������������Z����]����a�����U!����O	�m�B����߽�[�R�U�{�\�S�Q�N�����e�����`�h���x�|���W�k�o�T�y�����L���r�V�j�P�^�Y�����l�}�z�q���w���M���Ic������M�O�����Q�I���P�B����R�J�G��U��	����H���T�K������L��V��C�N����������~��������������������������	��ĪĬ�ĭī�����a�pĨ�h�~�����������������������������������J����P���K�I�G�H�L���������������t����K�L����	���Pײ�U���T���E��׸�R��׳�S׿׻׽׷׾���O׺�R׹׵�׼״׶�Q�����������������������������)�X���	����������������������������������������|��������~���������E�����������������������������k�0�Ū���X���W�Z�Y	�C���B�@�A���������@�M�N�g���m�������z������T�,��������X�4������p�<�8�����������l�l�P� �����H�����p�d�<�(�������p� ��������`�D��������������`�,����������`����T�.��	�P�E��J��C�B�U�M�L�K�I�N�}�D�F�H�����������������e�������R�C�A�S���D�B�Q�P���O�������E��������������������j�b�q�e�o�v�n�y�s�u�c	�i�w�u�h�x�z�k���r�s�w�u�t�f�r�v���t�s�d�g�p���c�����������a����W�Y�e����Z�\�f1�|�����	�����D��H�����A��������C���������K����E�M�������������a�f�O�h�N�I�d�j�N�J�K�`�g�M�e�L�_�c�b�O�^s�`���	��R�]��^�_��`�Q�N�K�P�S�L�R�O�M������������f�w�v��x�~��}�z��{�|�H�I�����S�n���Q�R�oŴŵ�q��D��[���E���G	�����F�W�����C�f�t�����Q�R���D���a����S�����Mܩ�Fܫܪ�Q�����u�v��������������� �	�E�J�F�I���^���H�G���D�B�E�C����F��@��A����Q�N�O�P�r�V���U���t�sŸ�j���I�`�X������9���	�s���e�������������t���������{���(�t������|�d�D�X�����������<�p�������l��xP�����x���	P
,�L4
$�4���L��P��P0$ �����x�������Z�����������y���t�������`�i��ù�����r�������O�_���T�d���Z������}�P����İ��þ��Y�����T	���N�����r�l�c��Ī�����S�|�O�L�S���w��.�	�I�����C�H�����]�^�����A���D�����������������������G�F�������H�I�������������������������������������������������������@���s��.�P~\h�t�������������Ȉԉ�������(�4�@�L�X�d�p�|�����������������P��������@�X����ܟ|�g�Ժ���8�P�p�������4$�X����h�P���� ���p������p�,�D}���������丗丢丬乕乢亊亰仫仭仼伜侊俿偂偐偸僘僞僴儖兊兑兤兪内冐冝冦冨冩凇凖凛凬凼刋刔刕删别刹剏剱劐劒劔劜劯劵勐匀匇匤卆卟厓厰叝吣呐呑咊咝咣咴哐唣唿啌啓啝啬喞喩嗬嗵嘣噐噼嚊嚔嚠嚯囘圀坙坥坿垅垉垡垬垴埀埈埓埯塄塬墒墚墲墸壥壻夂夋夐夘夛璌璍璙璛璤璴璹瓈瓌瓐瓓畂畕畮疍疞痜瘬癏癑癳癴皥盙眎眏睘睲睷睸睺睻瞘瞯瞾矃矅矋矝矦矴砞砽硂硄硋硑�d�唖壷頴葛焔艶襖鴬鴎躯恢晦蛎撹鎌噛潅諌煉巌蝉騨箪贋饗尭繋頚倦捲鹸砿麹麺賎讃蒋醤穣撰巽庖聡楕竪瀦梼祷涜迩祢嚢蝿剥禄溌醗箆頬桝侭薮篭蝋倶植殖慎具真値置直槙惣拶呟鞄噌僅嘘虞夲奛奝奣奬妛姗姫娚媪嫐嫱嬶寉寳尓尜尞屓岙岜岺岻峁峵峺崕崘崾嵓嵜嵭嵳嵴嶌嶐嶹巐巓幇幤廏廐廪廰弉弌弑弡弴彁彅彑彜彦徃忰恊恠悋悦惞愑愠愡愼愽憘憷懴戓戝戞户��幺氐収伫低吴囱壮夹妆尬决冲灾见角贝车亚来仑两协届冈底抵东争状籼纠卧轧邸长门侠侣兖则劲却奂帅柢汹为纣红纪纫纥约纡胝苎计订讣贞负军轨闩韦页风飞俩们伥个伦仓冻刚剥员娱孙峡岛岘师库径挟时晋书泾浃乌狭狈亩砥秪纺纱纹纯纽纰级纭纳纸纷胁脉刍记讦讨讧讪讯训讫岂财贡轩轫钉针钊钋闪阵陕陉饥马骨伪伟侦侧务动区参哑问衔国坚垩执够娄妇专将�d�屉峥岗带帐张强从徕凄怅扫挂扪抡挣败启斛斩昼勖弃条枭杀氢凉浅渊泪沦净牵狰现产毕异众绊统绍绋绌细绅组终绁绂钵习荚茎莒庄苋处术衮觅规访讶诀讷许设讼讹贩责贯货贪贫轭软这连迳钗钓钏钒闭陈陆阴顶顷鱼鸟卤麦备伧伞凯剀创劳勋丧单哟唤乔围尧场报埚壶娲寻岚帧帏厕厩恶闷惬恻恼拣挥换扬枣栋栈钦残壳氯氩涌凑湮涡汤测浑涣无犹苏画痉发盗砚秆窗��笔笋绞结绒绝丝络给绚绖绛肃肾胀华莱苌虚视评词证诂诏诅诈诋诉诊诃贮贴贰贻贲费贺贵买贬贸贷轲轴轶进邮乡钞钮钙钠钧钝钤钣闵闰开闲间闳队阶阳韧项顺须饪饭饨饮饬冯驭乱债传仅倾伤偬铲势积汇吗呜呛园圆涂块坞埘茔奥妈爱忾怆恺损抢捣构晖晕旸会业极杨桢枫岁沟灭湿滑沧烦炼炀焕爷狮猾珲当盏睐睁雎碌节笕粤经绢绑绥绦义羡圣肠脚肿脑荤苇叶莴虞�d虏号蜈蚬补装诧该详试诗诘诙诣诚话诛诡询诠诟贼资贾贿赀赁赂赅较载轼轾农运达违过邹钴钳钹钸钾铀铅钩铂铃铉铋钜铍钿铆闸陨隽电预顽顿顼颁颂饲饴饱饰驰驮驯鸠侥侨匮厌尝呕叹喽啧哔团图尘垫堑寿梦夺奁妪实寝对屡崭岖币帼彻态惯恸惭惨搂掴掺畅荣枪滚渍汉满滞渐涨涟沪渔渗涤荧尔荦狱琐玛疟疡疯痪尽监硕祯祸种称洼窝笺筝绽绾综绰绫绿紧缀纲绮绸��绵纶维绪缁绶罚闻莅盖荪苍蚀诵语诬认诫误说诰诲诱诳诮宾赈赊赵赶辅辄轻远逊递铰银铜铭铢铬铨铵铣阂闺闽阁阀际颇领飒饺饼饵饷驳肮骰鸣鸢凤齐亿仪价侬侩俭剧刘剑刽厉唠嘴哗嘘喷啸叽墟坟坠堕娴婵妩娇娆宽审写层嶔帜废厨庙厮广弹庆虑忧怂悯惮愤怃挚扑捞拨挠抚掸揿敌数暂昵样桩枢标楼桨乐枞欧殇殴浆泼洁浇溃润涧浔热奖莹疮皑皱盘确码窑穷缔练纬�d缄缅缉编缘线缎缓缍缂缈缇骂罢胶肤莲荫蒋虾蜗卫谊谅谈谆诞请诸课诿谄调谁论诤谇诽谀竖赔赏赋贱账赌贤卖赐质赓践辉辆辍辈辇轮辎辋辊适迁邻郑邓锌锑销铺铐锄铝锐锉锋钡锂闾阅巩颉颌养饿馁驼驻驷驶驽驾驹驸骷闹鱿鲁鸩鸦麸齿俦傧侪幂剂吨哝嗳垦坛奋袅学导宪凭惫懔忆战拥挡挞据掳择捡担挝历晓晔昙桦横树椭桥机桡淀浓泽浊沣澦渑炽烧灯烫焖独玑瓯��	瘘卢瞒砖碛积颖稣窥笃筛缢缣萦缚县缟缜缙绉腻兴舱荡萧芜蚂萤裤亲觎谛谚谏讳谋谍谐谘诺谒谓讽谕谙谌谖赖辐辑输辏办选迟辽遗邺锭锯锰错钱钢锡录铮锥锦锟锢锱阎随险静腼颊颈频颔头颓颐馆饯馄馅骇骈骆骸骼鲍鸵鸪鸯鸭鸳龙龟优偿储励咛吓压埙婴嫔嬷尴屦屿嵘帮弥应恳戏击挤拧拟搁敛毙暧档检桧栉樯殓毡泞滨济涛滥涩潍营灿烛烩墙狞获环瑷痨疗矫磺矶�d篓粪镆糁缩绩缪缕缧绷缝总纵缫纤缥繦缦声聪联耸脓胆脸脍临举艰蔷蓟亏蝼蝈亵褛觊谜谤谦讲谎谣谢誊谧赚赛购赙趋辖辗毂辕舆还迈酝镀镁锚键锲锅锤锺锹锻锾锷阔阕阑闱隐隶虽韩颗飓骋骏鲜鲛鲔鲑鸿鸽点斋丛噜圹垒婶懑扩掷扰撵摆擞撷断槟柜槛柠欤归殡泻渖滤渎溅浏烬焘犷猎瓮疠睑础礼穑秽窜窍箫簧箪篑简粮织缮绕缭绣缯翘职聂脐膑旧萨蓝荠蛲蝉觐觞谟��谨谬谪赘蹒迹跸躯转辙迩医酱镑锁钨镍镇镐镒镉阖闯阗阙杂双雏鸡额颜题颚颛馏馊馈骑髁鲨鲤鲫鲧鹃鹅鹄垄坜宠庞庐惩怀懒拢旷橱椟榈橹潇濑沥濒泸烁牍犊兽獭玺琼畴瘪碍祷稳签茧绎绳绘罗缴膻艺薮药蚁蝇裆袄谱识谭谲讥谯赠赞跷辚轿辞边镜镝镞链镗镘镖镙锵镂铿錾关陇难雾韬韵类颠飕馒馑骛骗鲸鲳鲭鲷鹑鹉鹊鹌鹏丽麴劝咙嘤严宝悬忏拦搀胧榇澜潋炉珑矿�d砺矾砾窦竞筹篮辫缤继罂胪舰蔼蔺芦苹蕴蚝褴觉触议译谵赢赡趸释钟铙锈阐飘饶饥骞腾骚鳃鳅党龃龄俪嗫啭嚣属惧慑摄携斓樱栏棂歼烂牺镶璎癞缠续兰藓蛎览谴护誉赃踌跃跻轰辩镰镭铁铛铎镯镌响顾颢飨驱骠蓦骡髅鳍鳏莺鹤鹞龇龈啮俨傥呓孪巅峦弯摊权欢滩猡叠瘾癣笼籁聋脏袭衬读赎赝踯踬辔郦铸鉴霁鞑繮颤骄骁鳖鲢鳔鳗鹧鸥鼹龉龊龚恋挛搅瓒窃缨臢萝蛊��变逦逻镳铄靥显餍惊驿验髓髑鳝鳞鳜鸶嘱坝揽瘫癫羁蚕让谗谶艳赣酿雳灵霭颦骤鬓魇鲎鹰鹭硷盐鳌龌龋厅榄湾篱箩蛮观蹑衅钥颅馋髋黉滦瞩镊鞯驴骥缆谠躏酽钻銮锣鳄鲈黩凿鹦骊鹳鸾钺仂虍殒垧坻戋俣刭厍呙卺纨茇钇钆呗弪祓纾郏钌剐匦囵垭娅岽崃涞渌烃眦绀绐胫钎钐钕钍闫妫嵛恽桠枨沩浈畲砗绗菝觇讵诎诒贶贳轺轵轸逯郓鄄钫钬钛钯钭钪闶陧顸饫黹伛偻�d佥唢垲巯徭炜茕狲玮绨绠绡羟荭蛱诓诖诩诔诜趑辂辁邬铊铈钰钲钶锍铌钽钼颃颀凫黾偾唛嵝帻悫悭怄戬戗抟抠掼桤杩荥浒沤炝皲砀绻绲绯绺莳觋诶赇铱铒铑铕铟铫铯铪铷铖铥飑刿劢哓呒崂峤庑愦挢椠毵颍涝潢涠滗琏璁瘗缃缗缌缏缑荜蒌茑苁诹诼谂赕郸锒铗铽锓锊铤锆锇锔阆阃靓颏饽驵骀鲂鸨哒哕哙嫒峄怿殚浍烨猃狯碜窭縗缛蒇荨蒉荞莸芗蛳诨谑谔谝郐锩锬��锖锗铼锛锕锞钔阏阈阉阊阌阍鸲鸱哜帱恹摈泶猕甓瘅痫硗箦筚糨缡耧荟莶蛰裢觏谡诌谥跄锸锴铡锶阒饧鲒鲕鸸鸹鸺龀怼摅撸泺疖缋聩荩蟥虮讴谩赜贽辘邝镓铠锼镏蓥韪饩骐骒骓阋鲩鲠鹈鹁鹆厣呖垆槠栎氇泷潆祢缲缳罴舣蛏虿裣觑觯谮镛镟镪镆铩韫颡馐髂鲵鲶鲻鲱鹎鸫黼喾撄栊枥栌缱聍茏苈蕲蛴蝾铴镦镨镡镣镄镫铧镤铹阚颟馔驺骝骟骘鹗鹚鹜龆龅傩岿痈撺�d榉滠砻粝纩缬蔹赆镱闼飙骢骖骜鲥鳎鳐鹣鹘鹾冁娈灕攒瘿箨籴舻觌跹跞轹镔镬骣骅鳕鲣鲦鹨鸷龛栾椤蓠雠轳鳟鲟鹩鹬鹪鹫鹇灏簖谰髌笾粜缵脔蹿镧鲚趱躜酾谳颞颧骧鸬戆阄鲡鹂禸拔跋珐宫拐毁减禄吕潜袜郧兹戸抛挧掻揞揺撑擀擡擶攅攵敎敫斈旙昞昻昿晄晗晩晳暃暼暿曁曵曺曻朎朖朷杤杦枦枧枩査柽栀栁栅栞桊桒桕桙梍梹棏傈锨鲗椢椦Üü椶楡���苅苊苘茘茚茣荆荛荢荬荮莜莟莵莼菷萪葈葜葢蒄蒈蓜蓣蔸蕚薗薫藁蘓蘖∋蜕蝰蝽螋螨蟇蟐蠇蠎蠧袮∈袵袿裥裵褜褝襷觧訷説諚譛譱谫谺豼貎貮贒赉赍赱踈踺蹰躙躰躱軅軆軎軣輌轱轷辧迯逎逹遥邉郞鄕釖釛釞釡釥釶釼鈩鈬'鉙鉷鋭錺爫冂冖丷八儿朩氺厂疒肀衤丆⺗勹匕‡㐄凵屮囗亠冫⺀槇╎◘◙♂▶◄↕‼¶∀↨↔⌂�\ 亜悪圧囲医壱逸隠栄営駅謁円縁応欧殴桜奥穏仮価画灰会悔海絵壊懐拡殻覚学楽喝渇巻陥勧寛漢関歓観気帰戯犠虐旧急拠挙虚峡挟狭郷響暁勤謹区駆勲径茎恵掲渓経蛍軽継鶏撃県倹剣険圏検権顕験厳呉娯誤広港鉱号国黒穀砕済斎歳剤雑参桟惨賛残歯児辞湿実写舎捨釈寿収衆従渋獣縦粛処将称渉焼奨条状乗浄剰畳縄壌嬢譲醸触嘱寝尽図粋酔穂随髄枢数据��"瀬声斉静窃摂絶専浅戦践銭潜遷選繊禅疎壮争荘捜挿巣窓装僧層総騒増憎蔵贈臓属続堕対帯滞滝択沢濯単嘆団断弾遅昼鋳庁徴聴懲塚逓鉄点転伝電灯当党盗稲闘徳毒独読届難弐悩脳拝廃売梅博薄麦縛発髪抜浜敏敷侮払仏辺変歩舗簿包宝抱泡胞砲豊飽墨毎満脈黙訳薬躍与誉摇様謡曜来頼乱覧竜隆旅両猟緑涙塁礼励戻霊齢暦歴恋練錬炉労楼録湾弥亀曽姉宍嶋��\%樫椛喰粂込榊咲鴫雫椙揃駄凧栂辻働峠栃凪匂硲畑畠噺鋲塀柾俣杢籾匁俤俥凩叺哘囎圦圷圸垈垳垪垰埖塰墹壗屶岼峅岾嵶弖怺掵杁杣枡梺椥椨橺椣椡楾榁槝樮橲欟毟渕熕瓧瓲瓰瓱瓸甅畩癪硴竍竏竕竓竡竰笂簓簗粐粭糀糘綛縅繧纃纐膤艝萢蓙蘰蚫蛯袰裃裄褄躾軈轌辷迚逧遖錵錻鎹閊閖靹鞆鞐颪鮖鮗鮴鯏鯑鯒鯲鯱鰰鱇鱚鳰鵆鵤鶫乄呏挘鮱鱩鵇鵥鰯麿冴呪枠鮎��'邨冲㘭担勅枱响恒叁烱堃啟鈎着琼煊滙叠献裏碍羣綫踪鑛捬徧尅耻峯㦸煑賍韮塲婣罸嵗慯榘綉粮綳澁嫺墻牕癎輭銹鵞麯罇鷄贘决虬咤厦刦朶両却廹効咏廸妬怱牀脗瘻弍晋暨慤捏烟洤粧糉叙敍坂珏胆㕑欵碁双猫猪珉畊姹燄甎緜駡覩濶㩗擪㯭没湼畧塩刄憇携臯况凑汹够迹飱攷脉袴㨪躭羗騐紥櫈册刧脚厠厢汚氷舘喆廻凉碱鉢卭凃葱覇靭讐隣廼隷兎鰐昰x�X*鉕砈鍅鉳鍩釟釚硔硦碈碶磇磒磗Å⇋磤磮磰磱磵礲礳礶祘〓祙祱祾禃禆禇禑禙禟禥秢秱秴稪稺穅穥窼竂竉竛竩竾笌笧笩筂筃筕筯箲槞槹酶腚苷呋脲肽萘酞酰醌腈䐶腙肟啉吡哚吲喹咔硒硅硌蒽萜苄葻謭坋坅蟎噠嗪噻肼碸樌哌篐篬篺簕簛簵籄籭粎粸糃糦糭糳糵糹糼綋綗綤綨緍緐緓緥緽樒樢樰樶橥橳橸橼檩檪��,⓪①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳鍄鎭鏆鏥鐚鐡鐾鑁鑓鑚钚钷铘铞铳锃锎锏锘锝锪锫锿镅镎镢镥镩镲閇閙閠閲陦隝隯隲霳霻靍靏靑靕靤靫靱鞒鞲韲頽顔颥飃飚飮餝餠饣馀馇馍馓馕馼駈駲骶髙髞鬏魉魲鮃鮟鮻鯣鯵鰀鰄鰛ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ®™�T/鱶➊➋➌➍➎➏➐➑➒➓鲅鲆鲇鲋鲐鲞鲮鲰鲲鲴鲺鲼鲽鳆鳇鳊鳋鳓鳘鳙鳢鳫鳬鴪鵈鵐鵺鷆鹋鹕鹛鹱麪麽黄黢黪鼈鼋鼍鼡齄齑龝﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩丄丯亁亇亣亷亼仸伨伩伷佂佅佋佲侢侰侽俈俌俰俲俹倃倈倴倻偘偦傁傐傼僐僟僡僼儍儫兠冮冸凒凢刅刴刼剙剨剹劤勌匧卂卝卽卾叅叐叒叾呭咅咓咞咹哣哯唍唘唥唨唫啇啹喐喴嗁嗗嗘嗻侴嘡∃噒☻��1噝⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇噡嚉嚋嚞嚡嚱嚹嚿囖囯圕圝圲圽圿坃⇔坾垊垍垐垜垻垾埄埞埾堒堢塇塜塟塳墧墪墰墵墶壋壐壠夅夑妉妔妚妟妰妸姄姯姰姸娂娋娍娒娡娤娧娪娫娬娽婅婔婙婡婨婫婮婱婹婾媁媂媆媈媑媙媠媡媫嫃嫎嫏嫓嫤嫰嫾嬍嬑嬕嬟嬫孁孄孆孊孏孨孴孶孼宂宐⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵㈲㈱檫�T4宖⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛寕寗尣岅岞峂崐崬崯嵈嵖嵰嵻嶅嶤嶫嶶巁巗帉幈庒庽弎彲徱忂忛忟怣恾惗愇愌愙愢慐慠憁憕憹懀懏懓懚抐挱⊃挷捹掋揁揢揦揻揾搇搲搸搻摚摱摼撍撯撴撶擝擥攊攑攟敟敭斆斵斾旑旔旣旿昘昣晣晫晽暅暒暚暤暭暳暶曍曎朂朌朙杄杫枏枤枿柖柗⊂栍栐栛栶桇桖梄梈梽棃棅椂椃椉椘楃楆楤楧楲榅榟榢槑槕槖騡騦騯櫁��6妿槡樃樚樜樬樭樳橃橅橌橓橗橣橴檂檊檏檙檧檱檵檾櫉櫔櫘櫶歗歺毜氜氱汘汮汵汿沯泋泟泿洂洅洆洦浗浛浱涁涏涥涱淾渂渄渏渘渪湐湙溚溵溸滛滺漄漋漌漖漗漴漽潖潹澊澝澟澻澾濓濙濸瀃灋灍灐灔灜灧灷灹炋炏炠炣炥炦炧烄烌烐烖ɪɛæʌɑɔʊɝəɚɜɡṃṉŊḻɵðʃʒʧʤãɯɸʇÇœɒgˋˏabdefhijklmnoprstuvwz�T9烵㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩烾焅焝焩焫焬焳焵焻焾煀煏煫煵煷煼煾熌熎熑熖熢熣熭熴熷熺燑燝燫爀爉爎爏爖爗爤媤爮⊆牗牜犔猄猐獁獴玌玏玘玜玞玧玪珕珡珢珤珦珯珳⊇珹珻琂琑琒琔琕琗琙琜琞琟琷琸琹瑃瑅瑇瑈瑉瑓瑖瑥瑫瑬瑴瑺璂厂广丨幺冖宀卩⺇匃☒艹䒑⺌⺊丶匚⺕└乚辶廴冈亅丿乛厶车纟讠贝鸟门钅阝扌氵亻忄灬⺮口櫢騻騼驘驜驣��;☎→←↑↓⇨⇦⇧⇩☞☜☛☟〖〗○✕✓囻☽夝晍爥✩✡☺☹屸♬♪嫑宷峼✉✂峕杮瑡璝罓薓❏嵸弻━┃骲髠鬔鬴鬹魀魐魿☼綕☁霴☂✈℻℡曧湗煗秊№腬諹顖☠♤♠♧♣♢♦♡♥櫤℞㏂㏘㎡㎥☑鮁鮋鮍鯝鯩鯭鯴鰟鰠鰦鱓鱝鱻鴌鴖↲欅9�T>賩賲贃贑贜赺趩跀踁踎蹆蹨蹱蹾躀躶躹躼軃軤軭軲輰轁轊辥辳辸迊迏逈逳逷遤遬醩醶釄釺鈈鈓鈡鈨鈫鈵鈼鉁鉘鉝鉟鉫鉮銁銄銉銏銱銺銿鋔鋛鋣鋥鋫鋬鋴鋶鋽錃錇錰錱鍀鍂鍃鍟鍢鍦鍨鍳鍴鍸鍽鎁鎄鎆鎇鎐鎜鎠鎸鎻鎽鎿鏋鏓鏛鏠鏰鏱鏳鏴鐁鐄鐈鐗鐛鐝鐤鐥鐦鐭鑂鑃鑍鑔鑘鑥鑧鑬鑹鑻镸閅閦閪陖陻隥雴霛霶靀靁靗鞇鞉鞛鞱鞽韀韂韒韠頔頕頣頳顨颷颹飇飊飠飡飬飵��@鴡鴴鴹鵉鵎鵭∷鵮鵼鶃鶓鶥∬鶽殁殱鱏麐鷀☯☰☷☳☴☵☲☶☱鷉鷔鷼鸊鸌鸎鸘鹻麅麢麬麱黁黆黇黱黸鼧餎餙餜餷饝饢馛馤馪馸駠駦駵騟緾縇繛繥繬缷罀罁罉罒羏羓羴翝翧翺耂耈耮耯耼肧脌脪脴腂腖膄膥臤艔艥艻芇芿苢苮苸苼苿茋茝茽荗莑莬菍菭萅萔萖萡萮萾葊葓葕葘葤葲葿蒀蒒蒓蒖蒣蒾蓞蓡蓢蓤蓸蔃蔅蔐蔳‐蕂蕌蕒蕟蕯蕰蕳藖藠藮藼蘍蘏蘔蘨虂虅虲�DC袜孭脷餸啲啫㗎啱喺嗱㗒嗰嘅嘢嘭噃嘞嚒糍吚吓咗曱甴呍嚤嚟擓挮揸攞乸毪氲氽汢沲淸温湶溂溆溻滟滢漑漤潴澑澵濳濵炻烀焏∂煕煳煺刣㑑迌ÀÈÌÒÙÁÍÓÚāēīōūǖÄËÏÖÜÆÇÑÃÕáéíóúǘäëïöüæçñãõǎěǐǒǔǚÅÉ熈ØÐỲÞߪ¡àèìòùǜå熘燗øðỳþÿº¿âêîôû燵ÂÊÎÔÛ¸¤ƒ��EwxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ␀␁␂␃␄␅␆␇␈␉␊␋␌␍␎␏␐␑␒␓␔␕␖␗␘␙␚␛␜␝␞␟␡€�DH讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲①②③④⑤⑥⑦⑧⑨⑩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ丶丿亅亠冂冖冫勹匸卩厶夊宀巛幺广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー[]✽ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじ��JЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя⇧↸↹㇏乚刂䒑龰冈龱゛゜ゔヷヸヹヺ・。「」、・ヲァィゥェォャュョッーアイウエ¬¦'"㈱№℡オカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚�DM爲爼牦犂犏犟犭犱犸犾狍狛猤猯猸猹玽珎珱瑶璢甁甙産甼畄畉畍畭疂疃疉疬痖痩癀癍癔癨皀皃皐皷皹眍眞睃砘砜砹砼硇硖硺碵碹磆磙礇礰礴礻禀禝秃秡稆税穃穐竃竒竢竧竸笶筢筬筺筻箚箞箟箢箧篶簒簔籏籖籘粫糺絈絋絷緔緕緖緤繍繝繿纉纎纒绔绱缒缰罱羂羮翆耠耢耥耱聟聨肬��O肷冚吖吔㓟䱽拃哋喼肶冧唓舦唞嗞掹梘唂啩疴揼麄鈪裇悞嘥煅嫲劏噏瞓螆踭膶㗾燶蠄鎅癦鱲拎麖䦉糓軚麫擧芪杧浲礆秄罎蟮莾蘯覥䘏飈饀饍騌髗麘鼦伃伹伲侫偖倮傦僙儎僭儁凴刟剠剗劚勑勠勡凓凟畆凾匲匬匳厫厪龎呩咜叚櫊啳㗖嘑噍噔㗳坆坺坧堺埦埝塀堦壜妷姙尠峑峩嵆嶎巵帋帒帮幞�DR彍穽寃窻徤徺徼恷悤悳惽愰憜慙慽慜捿懢烕戹扨抅抂抦拕捤挵撐㩜晈晧朞栃枬柹梶椬椁椀棊楳榀椾榲槀榊槺槩檲橒檝欝歒毺㳑泎湏涹潄濚炁秌焴㷌煶爕牐犇猬犲狢猂獈猨獏獱斅瑝瑨甞畓畺皡盌眤眫䁥硓磓磘鵾碯慂禩鰺秔稭稾穉竝竚痃瘇瘂癧癯嘠詧鼗笟箒箣篏篼籂籑籝籰籾粆粃粬糇糂糚絍絚緵縧繮麕剳耝聢聣聦聛肦脃麁臈��T辠臶舚蝱螩螌麞蟁鸜蟖蟵蠏蠘蠭衂衅鰵衮袪袠抝襃襍煲衞苽䒷苐莅鴂齩萠蓚蒭䓻蕋蘂蘐揑覉覊覔鱅覼詾詉謌譃讁譌貭賫賷贌趂趦跔踨蹏蹷蹵躧輙轜鵄郄酑酜酙酧酼醎醻麨遖遌釾鉢銾鍫鍮鎺鐧閗閧阸隃隖隁隽霃霡霱靟鞟鞴鞸鞺鞾韈麿頟頮龥顇顋顦顬颴齚飜飦饂餹餻齓饊齅䭾駚竈骺骽鼂鬪鬭髢鬂髿䰇鬉䰄䰻鮏鮝鮰鰌鰕鰊鯿鰮胨胩胬脎�DW氹乪陁売祢栢脇埗䓪搵蔴䃟椚鰂疱菓煱樋橺髴瞹攰涖嘷朥樫絝遡亘粦笹奵㛇灿溋靝鋐坔㻙憙瑠焿礮媖鍈暎俽鍁㙔嵵瀞敻炍廍悧窰彣珷瑨疴魩½⅓⅔¼¾⅕⅖⅗⅘⅙⅚蚒蚠蚭蚲螥螱⅛⅜⅝⅞蟚衏衠袇袏袐裦裿褀褤襇襔襥覀覑訜訩訫訸訽⌒誐誔誜誩誯誴諪謟‰謿譍譞譢譩讛豑貛貟賔賖脒脱脶腟腭腽膓膪膸臁舩舭舮舾艢艪芈��Y�\��\�\�	\�\�\�\�T �"T%�'P*�,L/�1L4�6L9�;L>�@<C�E<H��J	�����"�$'�),�.1�36�8;�=@�BE�GJ�LO�QT�VY�[<M���O�eh�jm�or�tw�y|�~���������������������������������������������������������<R�T<W�Y<\�aD\	���������������X�����P��������������L^����������������������������������������������������������	������������������������������������������������������������������<��^	��������~��_	�����������_	��TT�_	������������������_	��������������������������D�,`	����������������p`	����������������ȥ�`�R,E	����~�`	����
��`P��`�`�`L�a	���V�X�����������L�K�E������������ a	�J���K���������R��Цpa	��������������������������������������������ƵƶƷƸƹƺƻƼƽƾ��a	�B�C�A�D�����������������w�xT�4b	�S�e�F�G�E�H��|b��	�y���k�_�A�������������������L�������Fا�b	�����r�����������c	����\�4c����������������������������������������������������������������	����Lc	�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�A�B�C�D�E�F�G�H�I�J�K�L�e�c�M�N�O�P�Q�R�S�T�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T������������������������������������������������������������������������.pd�������������������������������������������������������������������������������������@	�|e�w�}�x�~	�z�{���}�u�t�s�r�q"�8f	�������������������������������������������������������������~�������������Zd�|f	�b�c�d�e�f�g�h�i�p�o�n�m�l�k�j���v�y����������������$g	�������S������������������g	���������@�����O�N�M�P���U�V�]�[�X�Y�Z�\�W�^�]�����W*��g��	�������������������f�el�Ph	�l���k�U�T�\�[�����h	�wfN�h	�A�B�C�D�E�F�G�H�I�J��h��	������������2�ihaP����a,btb�b�b��,cDc�chdte0ftfg�g�gHh�h�h�hi0it�8i�@�B�C��	�������q�r�m�n�u�v�y�z�i�j�E�]�e�f�Q�R�������������������������i�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�zȳ	ȱȲ�����{�|�}�~ǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻ��@jǼǽǾǿ����������������������������������������������������������������������������������������������������ȴȵȶȷȸ������	.0k	�yfN<l	�A�B�C�D�E�F�G�H�I�J����:�Pl	�U�V�P�Q�R����|��l	���W�S�����O�����l	��4/�l	����l	�D�m	���$m	�H�L�����oB�8m	�B�\m	�}"�pm	�gbd�m	�^^M�m	���/�m	���a���m	����m	�|��m	��BZn	�q�&n8j\(k4l��P�Hl�l��l�l�lmm0mTmhm|m�m�m�m�m�m�mn nƭ(n	����n	�M��n	�� �n	���^��n	�J�gJ��n	��fNo	�}<Qo	���_0o	��������Do	�E�`o�@�B	�C�����E�V�T�W�U�F�����M�������B�A�@�@�C�������[�F�������A�U�����������X�B���P�����c��˱�Z�����Y���o�D�d���[��ήto	�@�D���[�G�\�������E�G�F���������C�������A�����A�E�^�]�t�p�D�����A�g�����a���K�hp������ܱܲ���F�����\�E���G�H�_�_	�����Q�����b���R���@���E���`�����������d���������F�G�F�]���bܳ�����H������R�q�����������������T�S����	���G���T���J�K�L�M�I�P�j�f���Q�a�h�N�O�H�e�g���G���H�T��ɰ����ɺɮ���������I�������qɱ��ɵ��ɹɶ	ɳ��������ɫ������ɻɸɯ���g���������J�~������ɷ���������������Cɭ�f�B�����g���D���������[�����`�h֯�r	�d�����������G�]��˽���D�������b�^�����Z���e�E�H���@�F���c�A�i�\���_�@�a��˿��������������˹��˸˼�������˳˵������s˶������˻˴��˷��˺�K��	����������������˾˲����������e�U���f�����������������}���J���������I�Q�]���������KZ��t�����Y�P�X��	�������T�������[�N�W�M�������U�R���Z�����O�\�S�L�H���_�`�������l�������������������������������{���L���uP��n�n�n�noo(o<oXolo`pq�q�r�s�t�u�vް�v��	�������������������������������[�������������������������������\������������������������������������������ ��v�c�W�M��	�\�b���U���Y�R���V�����N�g�Q�����f�����X���S�O�]�P�N�Z�`�a�����[�^�M�_�����d���L�T�e���������O�������e��b��w�����^�W	���_���U�X���Y�����]�S�R���������Q�\�Z�T���V��������������ܷ��ܽ�����ܺ��������ܿ����ܴ��ܵ���x	ܾܼܸ��ܶ��ܻ��ܹ��O������������������P�������Q������������Z�����������������R��������������������y������������������������������	�����������S�������v��w������u��������x�_�������������l�k����(��z�a��	���S�R���������T�J�I�K�����U�������g�^�Y�i�Z���\�[�`���]���^�V�J�������W�����������@���U�L��������������j�`{���T��	�X�L�N�X�T�U���A�j�Y�`�_�����������U���A�~�a�Z���a�������[�N�\�]�����V�����Bɼ�L�K�����M�N���k����������H|�`	���I�����^���[�������������h�������a�_���@�`��������L�Z�������L�a�R�c�a�����������������Y�W�X���b�������0}�M�N�}�b����������ɾ�Z�c�k���F	ɿ�D�Eɽ�d�e�G�C���h�����l���m���f�n�~�P�O�{���S�Q�R�g�����������������������h����������0�~�������c��	���h���d�g�f�e�b�i���������������������������������������v���������i�k�j�l�����j������������������������r��A�B�����Z	�@�A�B�D�����C�i�k���l���m�����������O�n���t�\�[�����H������U�V�T�W�o�p�o���i�����p����������������l���k	�D�i�j�������q�����n���U�����������������������~���h�C�D��E��������y���U���c���V��������r�^�S��	���^�s�I�q�����m�������c�b�����_�����l�`���K�J��X�t���������o�����E���������������K��������8����������d�����u�����c�b	�m���O�V�����������o�n�m���R�����v�e�d�A�r�����`���U�W���g�f�L�M�s�Y�j�Z���������o�������z���	�����m�������������t�u���w���������p�p�������������d���z�e���������F�����x�F�������X�h�O��|�	�H�������S�e�����Z���B�������������@�����q�y������O���j�y�t�o�n�u�s�l�z�m�i�x�w�v�k�r���A�q���b�{�p������D�	�S�Y�U�[���X�N�Q�T�P�W�Z�O�R�V�\���C���B���~�{�U�g�|�[�]�u�p���zʥ�}�_�a���h�x�t�v�\�m�Q�v�s���d�E�n�o�w�l�j�k�qʡ�^@�$��rʣ�f�c	�z�bʦ�e���i���Z�`���{�|�����y���������������������O�����������P�������������I�K�M�������L�E�A���D�I�R��������C����	�F���H�����}�Q�M���S���J���G�����B�@�W�����N�����~���H��K���y��x���t���}���r��C���O���F�y���E�B�w������J�|�L��ĵ��s�~�{�@���F�G�z���v	�J�����u��������������D���c�����O���N���D����������@��������������������B�C���A���C���	���Z�F�����B����@�Gԡ���E�D������R���@������f�U���A���������A���w����ԧ�����|��Ԣ���v�{�z����ԥԨ�s����H���ԩ��	�����~����Ԧ����Ԫ���tԤ���u�x�}���������������K���y����ԣ�����[���F���n���I�E���q�r�j���������u���x������q������	�����n�������v���{�o���f�s�m���y���������c�����z�l�r�t�h�w���g���������i���B���������p�I�����J���L������̶Ċ�������������������������������������������������������������V��	�������������_�������m�����M�K�����������U�Q���K�����T������N�P	�S�N�n�����I�����L�����J�O���H���������M�R�R�������O�����e�G�M�G�D�P�G�S�T�Q�J�B����R�]�F�I�H�H�C�E�KP����A���Q	�k���������O�j�����N���P����@�O���@�E���U���B�����A�����������C�������D�@�Q���F�����W�������������{���������}���~	�V���W����z���|�S����P�������X�\���Y�t�o�[�`�����V��������Q���Z��A�Y�@�X�W�[�Z�����\Է����������	�����m�o�n�������d�������]�����}�|�_�^���]�����o�yʩʨ�w�z��ʧ�^�x�F�C�����������T�V�������p����H�I�E�F	��Ԭ����ԫ���|�����������_�����I�H�G�`�k�g�Y�n���e�B�b�f���d�c���e�a�a�`���f�g�������b���cX�D��}ʪ���d	������ʭ�{��ʬ�~�������|ʯ�o���������o�R�������Y��[���Z���@�X�W��������������V�����\�A�f������	���U�n�����h���g���T�h�Z�i�����X�^�U�Y�[�]�W�j�V�Q�R���������S�\�������j���������k�B�i���P�S�R�W�N�k�Q�P�l�Tܸ����X�G�J�m	�O�U���I�J��Ժ�V�M���H�L�l�I������Ա���n�����ԯԽ��Կ�������ԴԼ������ԾԹԲئ԰��Է����ԭ��Ե�o��Գ�����J������ԻԶ�K��Ը������	�����pԮ��ءتة��آ�����qؤ��ب��أإ�}��زرخ�������Kث����ح�~ذد��س��ج`�ԓ�Y��	���rا�������������������������������y���s�����t���������������������m���b�u�]���c���_�f�W�����\�����U�[�d��	���Z�`�e�V���^�b�h�X�a�����g�^�Y�����Y�K�W���M�R�N�Q�\�v���[�w�J�P�Z�O�x�L���X�y�z���n�M�m�O�J���L���	���N���P���I�K�\�{�������|�������������o�S�R������a�b�}�c�B�[���������h���G���R�E�����_���A�����������i�S&�x�	���Z�z�~ʰ���������B�`�Y�L��������i�~�p���g�h���]�X�����������j�������[�����q�������i�j�H������h�`�ʱ���k	�a�C�_�`�^�Z�����������a�b�����M�N�O��������ش���������������j���]��������k���f�����l�o�����n������0����q�p�m�k���I��������	��ʶʹʸ��������ʵʳ������������ʴʻʷ������ʲʺ�����������g�o���O�H�p�S�D�K�����f�E�d�L�P�c�@���Q�J	�M���r�i�T�R���n�l�I�k�G�F�j�h�q�m�e�N���������o���g�c�s�b���l�������p�����V�v�d�����f�m�q�u�r�k�n�����h���j�i�t��.���e���������������U�\�b���[��	�`�P���U�_�\�a�Q�[���T�R�c�S�W���X���Z���Y�������]�^�������d�������������@����p���������������C�������D	�������������������������B���������������A�c���������������������������������@ػ��ظ��ؽ�����B���	�����������������������G���C��ض��x�����A�D����غط����ع�pؾؼ�E������ؿ�ص���B�@�C��D�@��F������������A���A����	�������B����E�������g�������n�������z�p�v�k�y�x�|�u���t�����m���{���o�r�w�q�l�����g�s�U�a�X�W�Z�\�l�_�V���T6�̝	�]�[�Y�_�^�c�^�`�b���`�W���V�U���X�Q�R�Z�S���\���[�T�������������Y�����������������������T����x�̞�\��	�]���C�������������������l�m�n�������r�s�����������s�U�u�t�V���������]�e�A���E�G���F�������}���������^�p�������r�����s�v	�t�u�w������ʼ����ʽ�W�X�@�v�x�z�w�{�y�������p�������������f�w�����h�g�c�_�`�b�d�a�h�f�e���Y�J���������I�C�H�G�K�F	�������I�����K���H�J���U�H�V�I�J�i�������~����������������f���g�e�d�]���������d�_�o���x�����f��>�l�	���G�i�g�[���N�M�L�L�M�������p�\���t�������y���|�������K���q�W������ʾʿ�J�Y���N�L�����r�����u����������\�������	�Y�~���Z�}�@�W���x�������j�h���k�i�j�^���P�Q�p�O������[�i���a���������������s�w�v�p�d�z����������½8�	�����X�����������������������������B�����������h�Y�b�]���e�c�\�i�l�g�`���f���a�d�[�_�k�����^�j���������q���s����	���Z���rΫΤΪΣΥ�}�{άΩ�y����ΧΨ�qΦ�|�z��΢�~Ρέ�P�����A���o���n�l�k�n�]�p�o�s���q�pή�r���m�i�l�mF���q�r����	�S�R����T��[�X�A�Z���V�^���[��U����C��W�B�\���]��Y�\���D�]�@�������Q�������������������������������	�����R�^���O���O���P���������_�e���������g�S�V�N�P�U�T�C���R���D�`�M�Q�����~�t��z���a����ʾ̦���	���b����������������e�g���h�c�b�l�j�j�m�d�i�k�f�c�a�f�`�e�d�^�h�d�i�c�_�g�j�b�e������������������f�r�	���D�E�`���S���������r���q�����g�����t�{�������_�W�u�����������t�C�W�v�w�x������ί�f�i�y�]N���	�������x�l�|���h�����������D�����n�����m���o����������γΰαβδ���C���t�s�v�u���g�o�P�b�F�a�c�`�h���U�E��\��V�����W���T	���i�Z�\�E�[�Y�X������������q�o���m�p�n�l�����m�k�l�n�����������n��z���~���}���F�@�������X��ҿ<��y�u�z���x	�������������������r���j�����Y�j������θ���q����ηιζκ���y�u�w�w�x�x�vε�G�J�K�H�g�f�d�e�I�k�h�$�	�Z�[���\�]�_�a�H�G�Y�`�^�������������������p�s��r�t�q�t�u�o�s�s�q�p�r�o���f�F�G�������U�����������������{��V���{���f�V����	λ�������|�����l�������I�}�����u�������������E���q�r�s�������p������μ���z�z�y���i�L�j�M���F�{�]�q����b��	�������u�v���t���A�s�����������t��ν�k���J���U�������������{�m�C�n�l�^����v�m�L���������������w�v���������u������ξ������������	�}�|�{���H�O�o�r�p�N�u�q�P�t�s�G���Z�a�_�`��K�D�L�c�n�w���v�x��w���H���u�����@�Ю�H�I�o��������	�{�������������������������p�N���x�q���������y��������������������������������������^����w�x�yxzX{@|(}~�܀����t�<������܉��������|�h�<�����̓����p�X�(������؜ĝĞ����d�T�0����Ħ����T�4������Ȯ����.���t�������k�J��	̢̯�~̮̩����̪̭��̬������̣�|̥��̰��̦����̨�r���t�{����������̧�z̫�����}̡̤��ο��v�K�t��������ѡ������������	�������������G��������~�}���|�������J���������~���������������������������K���Q���������s�v���ѤѦ	Ѩ�����SѬѣ�x�Q������Ѯ�Rѥ�Yѩ��ѫ��Ѫѭѧ�d���yѢ�w�L�����z���A�i���j���U�^�d�M�|���e�`����V�����~�T�b$�l��e�I	�c��������]��H�{��d��Y�b�W�X���t���[���_���\�����f�c����Z�}�q���s�����������k�o�@�Q�m�D�q�e�F�S�i�l�G�N�H�Nf�X��s�T	�J�O�C�^�u�U�r�A�P�v�]�p�N�M���t�E��j�B�K�w�M�R�g�L�P�����x�h�����\���p�h���l�n�O�k�[�j�_�������Z�@��P��q����	�X�i�m���O�f�g�A�W�Y���o�y�r�������}���G�R�F���T�|���E�z���C�D������z�n�������{�f�����������H�y�B�z�����S����0����{�~�y	���~���x���_���������|�x���t����Q�v���}�����w������������|�{����z��������}�~�������$��~�|����	�y�{�����������}�����]���u�����������������V�V�������������������������x���j�i�h�a�J�b�A�������t,������	�����������|��������������������̱�����m��ѯ���������u�r�`�a�t�v�u�I�����I���l����p�����W���������X����̲����n����������	Ѱ�����v�Q�����~���}���������������������������������������Y���M�K������������������������������������Թ�����[�����Z����������	�������������������������������W�j�n�o�N�������\��̷̾����̳̺̼̿��̴̻�Z̸���̽����̶������	���F������������̹������������̵�������]�������������������u�^�v���������������A�����@����ѱ���C�������������������B��4��������L��	����������������Ѳ�D�����������v�����������������O��������Ѿ����Ѵ���^�����f����_ѷ����Ѻ���}ѽ�����Vv�����ѿ��ѸѵѶ��������Ѽѻ������������	����ѳ��������U�����������^�g���������Y�y���rզ���]�w����ա�������{�j�U������գ�i����բ	�s�����h���xե�q���tդ���R���o�������x�n�l�~�������w�|�����������p���m�z�v�T�S�������w�����W�����p�k�d�����z���j�J�g�w�}�k�n�|�\�m�l�~�U�y���l���i	�_���p�h�q�����f�e���c�]������ѹ�V��ݷ�W�{���y�����X�o�x�`�[���a�^�_�������]�S����<�t�������	���p���|ݱݶݪ�lݻ�i�z�{�b�kݤ�n�oݥݲݸ�j�dݣ�}ݺݨݩ�~ݴݫݵݭ�e���h�fݹݰݬ��ݡ�Sݯ�mݧ��ݦ�t���g�c��~�x�ݳݮ�Eݢ�s�u�����R	�����������Q�����L�K�������������O���b�����R��������T�������������������N���P�U��������d�	��������J����������������������������Z��������M�����������������h��������������v�M������������H������������	����������������]�������������������������������������������������Y��X���^���\�]�����Z��D�0��k��	�������[�B�E���F�D�G�l�C���W�N�d�M�L�K�c�e�������`�����������u�������������������[�r�������������������F���	�����G������������������է���������������v�����������u�x���s�w�t���q��ݼ���V����������������������������H���������B	���y������ݽ�u�����������R���z�{�r��W����������S���H�����|���s��������_���������I����
���	����������������ը�����}���~ݾ���Y�X�������J�I�O���^�J������������������������������w������������L�����	�����������@��������������������������������������P�M�������S�K���N�Q���L��O���R���������������T�F������	�������������b���������Y����������������լ��իխ������ժծ����թ�K�c����٧��٢������٥٨����������٦��٣١��������٤�}�����y��ݿ�v�w�u������{�z	����������x�t�z�����\����Z�������������������������������������������������l����	��������������������������������n�K�m�Q�R�f���P�������������X�����������T����������������T�\���٩���|��	�������B���A����������������կ�������d�����z���^�a�g���������������{��������|�������������������0��Y�x�Y���������C��	�G�B�E���������@�A���A�@�F���D�������W�\�y���S�������r�W�����C�r�M�N�F�X�H���S���I���������V���Q�O�� �	�����������J�P�D���������R�����U���E�L�����T�G�K�������z���������������������f�X�[�\�i�E�V�L�b�J�[�E�e�R��A�����D��Q�a�`�F�X	��_�`�c�Z�K�S�f�Y�a�m�V�X�����C�j�c�]���l�g�I���m�P�H�d�\�T�^�b�G�Z�Y�O�_�U�W��h���]�N�M�B�g�^���W���Z�U\�������M�Q�H��	�����������������w���������������������������������E���������������������������������������������j�������������������������������������������������	���Q�|�����������q������������մյչ����վս�����հ����������������������������ձ������������	�ղ�������������X��ճ����������պ��������ռ��շջ��ն������տ������h���{�o��"�����	�x���������������l��ٽ������������٫����ٳ������٭��������ٻ��ٶ��������ٰٵٯ������ٱ��ٺ����ٷٴ������������d����k�j����٬����ټپ������٪����ٲٹ���ٸ����	�����I�O�A���y���������k�|���}ٮ�i�����������������������������o��������������������	�����������������������lո���������������������������������������������~����ٿ�����m�������������������b�������n�������n�������z�@�E	�J�H�^�F�X�}�_�B�]�g�G�U�d�]�[���@�Z���o�Q�a�m�I�^�K�Y�g�D�k�a�M�C��q�W�h�`��e�S�f�E�P�L�N*����r�`�_�n�O	�b����T�c�l�j�A�V�i���b�R�������������}�����A�������������u�����������������������~�t����������l����������B���������������T����	���������������������C���D���������������������������@�E�F�������v���G�����������������������t�����	�H���I����������J�����������w�K�������L���������������������M�������������������x�����N�����{�~�����E��t�����O�A���H	���P�I����Q���D�J����@�����R�G����x����������C��F�S�B�������c���h�i�T�v�b���U�����f�����e���V2�\�	���g�d���������W���Q�N�W�V�T�O�r�X�Y�P�q���S�p�X�R�M�������o�L�V�U�U�h�Y�Z�T�X�S�Z���W������t�P���	�������������v�������������V���������y�����������Y�������d����������������������������������	���������p�c�e�q�d�������z�l�������[���K�����j�Y�w�������B�Z�[���n��������������k���\���y���\�������N�e�o�f	�p���������������������������������������f�g�h�������������������L���l�Z�O���_���q�g�����_������:��������u�i�j���������������`�����C�H	�������e�h�s�i�������]�����j���B�A���C�@�b�@�A�����������A�B�@�{�����k�|�������������������M	���[�����A���]�a�~���n��I�J�^�^���t�k�l�Z�����D�����������B���������_�c�r����ɡ�����@��ɤ�d��ɣ���������Dɢ	��������@��������������`����������E�������e���[�Y�L�Q�S�L�M�U�a�R�O�Q�V�Z�X�b�Z�K�n�M�\�T�W�c����E�G�^�U�N�J�Y�V�H�I�C�O�P�[�]�P�N	�S���\�W�R�]�F�T�K�X�D�����k���u�~�_�������j�z��q�d�K�b�f�e�B����m�o��v�h�f�g�uB�t��G�p���n�s��J	�u�y�e�c�I�}�M��O�@�l���k�}�r���u�x�|�A���f�~���i�_�d��`�N�^��������{���t��a���T�����L�w���������g��l��|���hϤ�w�i�jϧϪϬ�t�v�{�I��ϥϭ�{�s	�d�~Ϣ�x�z���}�}�pϨϫ���z�k���m���x��ϩ�o���^�H�|�w�v�n����ϣ�����y���������rh�h�Ϧ�y�~�����\������	�������������t�����l�L���C�m���U�[�W�J�M�F�G�J���V�_�E���@�N�B�O�Y�n���D�h�H�Z���H�E�f�Z�g�a�S��`��b�o���e�c�I�T�����A�G�`���Q�C�p�i�P�K���K���\�X�]��	���q���������������q���������e�����R�P�r�G�����[���U����G�D����g�P���	��d�X�c�N�����O�I�E��@�Q�Y�B������D�^�F�\�������S�����H���F�J���h�b���_�]�f��a�R��`�A�E��W���V�g�T�L�K���C�sJ�L���	�t��u�M�d�����]���������v���������������w�A�Z������������I���������M�D�h�x����������J�C������U�V���H�������������H����	���D��������������B�~�y��S�K���Q�������z�W���A����G�E�B���C�O�L�T���@�F�G�����F�E����i�P�N�R���o����D���	�j�����k���@�j�x�a�`�F���_�I�J���h���^�{�C�����R�H�K�c���j�b���W�������i���U�L�Y�e���|���T�}�M���l���P�Z�d�(��G�Q���[�����N���E�S�g�����V�l�X�f���O�������D���]�P���~�\�i���m�A���n	�����{��������}����n���w�m����q����s���u��R���S���}�o��������u�~�������|	�o�|�v�t�������z�w�x����z��j���p�p��y�x�����{��t��������s�����r�����{����y�������	����P���|�����v�D�N���M�Y���K���O���F�����R�������T���^�����W�[�`�U�I���������L��q�H�_�������a���V��\������k�J	���E������A���Z�B�@���X�r��Q�P�]�G�����������I���@���A����C��O��B�����D�F���E�D�J�s�G��F��������������E�B���@��	������A�����N�C����}�����Q�����������S�Y�W�������Z�R���V�U�[�������T���l�����X�t�P�u������q����o��Z���|�d�P�H�(����ظ̹��������x�l�p�\�@�(����������x�d�T�(�������������������l�l�T�H������������l�d�`�X�H�D�@�<� ����������.������	������p���m��n�������s�r���x�_�e�y�\�v�s�g�w���t�^�a�b�c�f�n�]�u�d�h�`�@�]�j�`�k�h�_�\�^�b�e�d�g�[�i�c�����f�i�a��������	�������������v���x�����V�����y�������������������W�e���l�����������������W�A�^�_�_���b���_�`�a�M�����������X�Z�U�R�T	�������������V���S�P���W�Q���Y�E�vϯ��ϳ����������϶����������ϲϱ��ϴϵϮ�������v����ϰ�����w���z�����w�x�y�P	�L�n���v�{�Q���l�r�k�u�W���q�M�O�z���j�m�s���t�|�p�N���������������m�N�I�P�L�@�X�J�W�i�H�[�R�l�K�S ����V	�Z�O�L�T�j�k�Y�M�I�[�x�Q�U�D�����K���H�I�e�O�M�Y�b�X�L�`�^�_�J�c�N�O�P�\�Z�K�]�a�Q���R�M�d�S���T�vb����U�p�w�yޡ�f���k	�R�O�z��ޢ���V�}�_�m�~�l�z�����x��ޣ���q���|�o�v�r�n�������������u�W���N�{�S�s�{�X���Y�t�|��Z���[��h�����	������������\�]���^�������_�������g�d�p�j�l���f�n�`�a�m�k�q���h�o���b�c�e���b�r�c�i�d�J�Q�e�U�S�K�I��\��L�M�H�U���G�V�Q�O�L�P�N	�R�R�M�f�N�O�P�K���T�S�W�X�T�g�����\�b�`�������^�h�������a�]�_�����p�w��t�u��v�(�H��i��l�	�m�z�k�j�j�i�{�k�l�l�j�k���m�n�����������������o�Z�����y�����������q�����d���������R�����e�n���bj�,���Ϸ�}	��������ϸϹ�f�P��ޤ�������n���s�|���g���t���B���e�d�c�`�f�����[ϺϽ��ϻ��ϼ���aҢҡ�~�S�{�]�^�o�\�_����R�p�g	�Q�k�j���h�i���lަޥީ�hިާ�����u�������s�t���Y�Z�i�q�r�}�q�p�n�o���l�������jɥ��ɦ�k���C�D�]���l���f�b�m�a������e�g�c�f�g�d	���_Ͼ�]�d�n�����e�a�b�\���^���c�o�`������������Ͽ�����������������b���GҨҥҧ�X�W�UҤҩ�T�VҦ�g0��ңҪ�����v	�b�f�e�n�y���h�w�c�m�t�U�s�a�d�u�r�q�`�i�����p�w�p�T�v�s���V�������u�R�q�o�q�t�r�U�x�S���r�sޭެު����r��ޮ�xޫ������	��ްޯ�������������v���u�~�}�{�z�w�x�y�|����_�\�]�W�[�a�`�^���d�e�������c�y�y��x�~á�m�n�m��������z�����������Y�v�j��ɧ���z	�E�{���l�j�k�h�h�i�|���}�m�~���k�g�j�f���i�����������l�h�H���c��������������������ү�t����������	�����������������������u������ҴҫҶ��ҮҹҺҬҸҵҳҷ�_�]����ұ��ҭ��ҰһҲ�^���Z�\���v�����x�m�k���l���s���t�p�{�u8����r�o���y�n�w�z�q�y�[�x�w�v�|	�������������~����ڡ�`��ڧ����کڢ�Zڦڥ�[�a�bڨ�X�}�{ڣ�z�_�|ڤڪ�Y�^�\�]�������W����z���޷��޻��ޱ��޼������޲޳	޽޺޸޹޵޴��޾����޶���������������u�s���������������������������������������w��������@�b�����A������	�������������}�i�f�e�g�f�Z���c���X�t�\�[�d�h�x�Y���m���z�����j�h�k�n���l�g���B�E�u�@���o�Fâ�D�{�����A�C�G�v	�t��ã�s���n�������������������������nҼҽ�}޿�]ä�{�������o�`������������Ҿҿ�~����ګ����@�|����y��������	���i�^�_���r�o�p�q�V�H�|�w�����z��������������{�c�d�����F�j�i����ڬ���������Y�z�k�l�n�m���|���r�p��T�q	���}���������~�������������U���`���d�c��b�a���V���{�z���������f�eڮ����ڭ����������������������B��D�j	�����sæå���|���s���Q���������o�p�x���t�������������������������������������Q�h�i�\�����n�l�����k�j�e��������m�����f	�g������֢֡���|�~֤֣�}������ڶ�k�jڰ�h��ڳ�lڴ�mڱ�g�iڵڲگ�������X������������������������������������H���������	�W�������������������������������@�������E�C�H�I��F��G����D���T���l�k�s�m�r�o�`�q�a�b���p�n���X�����	���t���w�u�v�����o���M��¡�N���}�O�~�L�P�J�~ç�xè�o���K�p�v���������U�~���}���������������������n�o�����G������q�m����	������֦���o��֥����ڸ�qڷ�p���J�������x���Q�q�p�����u�p���w�r���������K�t�R�r����	���������������q���r�s���i����֧���I������ڹ���s�����������L�d�u�c�y���S�s���n�x�w���v���y��������������P��	�������������������������������������������������v������ְ�����w�t��ֲ֪֭֮֩֫֬������֨��ֱ��֯������M��	��ڼھںڻڿ���ڽ��t���������������������C���������F���D�����E���A���B�������������@��������������\������������	�N���Q�O��M��P�B�k�}����~�v�z�y�w�f�g�e�x�{�|�h�@��|���{���A������|����z�~�}�Z�U¤¥¢��£�8		�T���{��é�y�z���t�w�u�v��������������f�������������o���������x�����u�G�B��|�x������͡�z�|�~�}�{���A��X�$
�x������	�����A�����������������������C���������|��������������ֹ�z�����������������y�������}���~�{���@�B�����B�_����	����������ֳֵַ����ֶ��ֻ�������K�����Y���v�����������L���������w�����x�����T���h�������N���Q�������	�����������M�M�����H���O�P�������J�K�����D��������������������������������I�����������N�����T��X�V��	�������S���O�����U�R��������Y���P�����W�Q�����j���������T��l�i���k��U�F�V�W���E�X�C��������V`��
	�G��������Z�W¦�[�]�\�X�Y�ê�~��}���z�}�y�q�{�|�~�r�t�s���w�������Y�Z�����[�����������r��ͣ�������͢	���������������������������������\�^�����������������s�ּ��ֽ��־ֿ��������_�������p����R����`�S��l���T���a�w�P�b�c�A	���������C�d�B�����@��e���������f��������g�m�H����I��_�^§�ë�š���������������V���r&�X�q�p	����ͤ��������������������������������������h�������������������������i�j������������h�L�}	�������|���z���{���y���A����Z�����X�@�W�\�[�Y��G�I�H�k�D�����G�F�������^���l�_�[�]���Z����	������m�p�����E�r�q�n�o�S�������J�����`ª¨©�g�n��íì����������H�s��ͥ����ͦ�B�@��������	������������������������X���������~�������D�]�^�C�B�H�C�J�����K�L���a�`��������������s�D�o��K.�����p��«¬	�u���q���������A�������g������r�����D�������������������s�m�E���M�����v�������ͧ���t��p���B�C���I�@�B��	�D�G�E�A�u�F�C����H�A�@�����������������������������v���w�����������������������������d�������z�����	�x�y���������������������������������z�����[�J���a�P���S�G�L�F�c�J���H�b�{�O�N�K�M�I���R�_�Q�E��������p��	�]���X�z���N�P���U�T�W���R�Q�������S���Y�[���V�O�������i�������\�Z���Y�q�V�����b���c�|�e����������6�L�`�h	�d�f�g�v�����j���������@�����t��x�������Q�y����w��{���z��������F���p�������O�����������N�x�$�������	����L�������P�M�����u���������w���c���a�g°�e�d²�j±�k�h���i�b¯­��f�l���òð���ñî����ó�����x���	�����w�y��������������������������ţŢ�����������������X���Y�m���~���Zͨ�E�F�D���^���]�G����H�I�C���I�O��	�M���K���L�N�����J���������������{�C���������������c�����A���������V�d�T�e�U�f�����a�^�`�����_>�����C����	���������k�����T�a�������~���|�}�����W���S�X�T�V�R�U��³�\������z�{�A�����@�������������t��ͩ��������L���J���������K�������Z���S�Y���R�X�V�����U���T���������Q�P�W������	�����������������������������������������������������������������	���������������������������l���`����������������������������������[�F���h�]�_�a�e�[���Y�j	�`�d�\�X�W�h���b�Z�^�k�i�f�g�c���r�����d�����j�x�t���x���e���u�b���w�f�V�����v�p�������j�����c���q�����s������F�t�h�g�d	�l�i�m���y���n�o���k�\�����������������p�y�u�����r�v���l���t���������s�w���q���n�����z�r���������{���o���~��h	�M�������������~�����������������������������������������������������������_���Y�i���a�]���d�g���\���e�������`�Z�h��X ���c���^���b�[���f���O�Z����	�n�t¹�w´µ�o�v�qº·���m��¶�s�u¸�r�p���P���÷øô��õ�����ú�����ö���~�}����L!��ġ��	�����������������������B�������������@�B���A�l���_�v�q�p�N�t�u�����D�r�s���������������L�A�������������EN�L"���q�r���o�n�m���p�S�h�k�l�j���������D�C�����J�����H�I�K�G�E�B�i�J�K����	�����I�I�E�C�������{�����z���B�@�E�I���|�y����������<#���D�I���@�A���K�J�B	�y���H�F�������G���G�C���D�R�N���Q�J�P���]�K�L�H�O�Q�H���D�F�M�E�����������������|�������o��������@$�����J���j��	�t»����Ģ�����C��I���u���u���M�F�`�[�_�]���^�\�M����@�i�j�n�o�h�k�g���@���p�z���|���}�d���������������<%	�V���ù��D����������O�����N�b�������a������������L�B���A�U�s�m�l�n�r�q�������~�������y���xû�ýü��������P��V�8&�e���d�c	�����������������������D���o�p���~�C�A�B�{�|�}���������������������k����z�{¼��½�l�����,'��������`�T�@�$�����������������t�L<�����|T0	
�
���
�dPD���|hD�����l`P D!D"4#8$4%0&$'(.(ģ�������������Q��	�����A�R�S�@�B���T���f�������A�����@����q��������^�������������������sͪ�C�U�U�h�\�����g����()	���C���B�D���������F�G�E���T�t�u�E�����D���k�����������z�S���p�o�m�n�q�w�|¿¾��ťŤ���*��	��L�w���v�F��ɩ����ͫ�v�w�w�t�v�y�u�{�z�x�x��������ͭ�O��������������Ͱ�{�����|��ͯ�M�@ͮ�������M��^��*�N���[�G�H�]�W�W�Z�c�a	�I�g�L�d�\�Y�I�b�D�e�V�_�F�K�`�w���X�J�^�N�E�f�������K�������������j�����l�N���k�i�n�����H���+�o�m����	�����H���������Y�����������V�}�N�����E�G���H�P�L�J�M�Q�����F�O�������K�I���������������B�X���Q�O�����,	���Jߡ���N���K�����P���M�G���L�������������w�u�{���sߢ�x�r�{���}�v�~�����|�~�y�x�y�}���|�t�z�����T�����e�L$��-�H	�M������J��K����I�����A�D���C���������@����B����������������������������������n�������t�����x�z�wf�p.�v���u�s�����r�����y��	������}�~�b���þ�Ĥ����EŦ�C�D���������R�N�{���������S�������P�B�T�U�V�O�������h��X/���p��	�W���w�P���|������������R���Q��E�����C����ߣ�R��ͱ�i�Q���r�S���������������q�L�V�W�T�V�������S���U�[�X�Y���Z��@0ߦ	ߧߥߨ��ߤ�S�J�F�I�K�H�G�����������������������������ĥ�����F�������}�\�}���[�X�[�E�A�J�������K�M���N,�81�L	��ˢˣ�{����ˡ�����|�z�y�}�~�~�j��Ͷ��͵ͷ�Y��ͼ��Ͳ����������O͹Ϳ���ʹ����ͺ��������;͸��������ͽ��ͻ������n�$2ͳ���������@	�����A�y�Q�K�x���_�b�\�d�a�q�t�]�B�k�V�`�c�eТ�w���UС�Y�W�R�o�~�s�vХ���f�}�^�xФ�u�y�|�����PУ�{���]�l����3�p�_�Z�S�X�T�g��ӥ�[	���z�A�v�������FӨ���C�v�Dӣ�}��ӲӪ�~�Eө�x�|����ӭӤ��ӳ�tӬ�����s������ӫ�����r�\Ӧ���z��4���{ӡ���uӯ�FӮӶ����ӴӰӧӢ�����w��ӱ��	�y���T�u�G�����_���W�H�����s�������{�J�Q�I�M�J���^�`�e�y�����]�����h�o�u4�5	�b�i�H�@�w�r�����n�j�\���a�Y���w���f�c���s���d�z�l�K�k���L�����Z�_�p�v�A�[�g�m�����x�q�t�P�P�}���M�`���������N�����lv��5�`���}۪ۧ���hۣ�i�w���s�����t�]	ۤ�R��ۡ�u۬�p��ۯ�����z�����rۭ�k�d�o�c�a��ۥ�jۨ��۩���������~���v�f�O���^ۢ۫�e��۰�q���6	�m�������|���x�����������y�g�{�bۦ������ۮ�����c�����_�[���M�X�����P���U������ߵ�����������߿�������������ߪ���7߲	�������������Q��������߶����߱��������߫����߹߸�C�R߼߾�������S����߰��ߴ��������������������߻ߺ��߬����߭����߷����<��8��	���T߳���U���e��߯��߮�`��������������X����[��Y�����������������f�������Z����]����a�����U~��9�^��	�W���V���T�c�\��������b���_���������e���V�����^�l�����W�������s�t�g�f�b�����v�uߩ�_�c�]�p�a���w�Z�X�d�n�i�����:�O	�m������߽�[�R�U�{�\�S�Q�N�����e�����`�h���x�|���W�k�o�T�y�����L���r�V�j�P�^�Y�����l�}�z�q���L�`�]�X�F�N�M�M���I��;�@�C�����E��A�G�������h����L	�F����U�O��F����Y�J�T�����Q��D�H�B�V�S�P��������W���M�����K�����Q�N�S�@�E�R�D��A��D��<���M�O�����Q�I���P�B����R�J�G��U��	�v����H�Z�T�K������L��V��C�N����������~�[���~���������������������=��\���������	������������������������������������������������ÿ����������������������ħĩĦ���������>���j	��ĪĬ�ĭī�������kĨ�]���^�����������������������������������J����������K�I�G�H�L��������������
��?��	�������E�F�G���������@�r��Ӹӷ�@�B�|�{�R�����������~�X�Z�Y���W������x���}��������ЩЧЦ�i�k�jШ���S��L�|@�L���Z	���ӿ�A���FӼ����ӽ���C���Wӻ��������H�RӾ����ӹ�G�D����Ӻ�E�B���C���Lץ�K��ר׫�H�F�~שקפ׬׭ׯװ�}��\A�Eעס׮�Gף�I�Dצ�M���Jת���L����ۿ	۴����۽۱��۶��ۺ۸����۲۵��۳۾ۼ۷۹ۻ���r���a�N������������������������HB�����������������B������������	�������`�T�j�������e�������g�����h�������m�����������������i���l�����f�����d�4C��������	�����a�T���������������k���������������������������������a�E����������d���`�b���uT�D	�a�����k�g�l�e�`�o�c�G���\�h�i�_�^�l�b�]�c�n�[�m�j�������f�����d�F�Y���]�Z�a�g�\���p���j�_�k�f�m�^�����`�n�X�l��E���I�d�c�h�[���e���b�i���e	���f���������L��������������o�����������|���������������������M������������������F���������r�����g�������������h�N����	��Įį�����O���B�E�A��C����D�Q�O�i�N�@�P�F�M�P���������������������Z�n��������F��Ъ�Q�����u��	��G�����lЫ��ױ�N���������������[����������DЬ��ЮЭ�m�����|���I�����������J�N���M����\��G���K�L������	���Pײ�U���T������׸�R��׳�S׿׻׽׷׾���O׺�V׹׵�׼״׶�Q����j���������l�����������������m���H�����������E���c	������������S���������������������������b���\�n����t�B�A��v�@���n�p�o���r�q����s������I�����o	���������������������������������������u�c�p�q�p�|���w�y�����q�u�x�����{�s�t�z�r�v���r�S�q���w�����s���t"��J	�u�x�X�������������Y�������v�����F��������������������������İ�����I��K��H�JŨ�Rŧ�������r�H�I�K�J�P��H�K���n����	��������m�n���W���V�o���������`����C�F�E�D�������������������y�{�z���m������ı�q��T�Sd�tL�[�N�s	�~�}�S�����T�d�~�\�^�c�����OЯ�o�����������C������A�@�B�����U�s�I�G�H���������}�|�}�����IJ�L�Uũ���L��DM��	�q�rаб�p�T�R�Q�X�P�Y���V�S�W�U�O�_���Y���^�`�Z�[�����X�����]���\���D�F�t�����E���������I��0N����	�����C���s�����������B�����@���G�������A�����H�����������������������������P�M�E�J���Q�����r�GP�N	�O�K�N�L���F�����l�L�x�{�N�����M�}�����O���K�����y���|�z�����w���������J�u����������������������������*��O��	������������������Q�����������������������v��������~�������������������������������������������P���K��	����������t������������������������~���������������������������������������������������������l��Q����A�u	�O����������w��������@�B�����C�������w������ķ��������ĵ��������ĸĴ��Ķij�x����@�N�M�P�Q�A�V�[���RŪ�v�X�c�W�Z�Y	�C���B�@�A���������@�M�N�g���m�������y�z�{�P���������X�������V�����h�b�~�����������b���j������|S���V�W�^�T�Y��	�Z�\�]�[�e�U���X�W���O�R�I�P�J�K�L�N�P�S�O�Z�T�S�Q�R�M�c�G�H�F���Q�Q�O�N�X�R�T�V�U�W�S�M���[�\���g�����e�]�^2�dT�f�a���`�_�W�Y�d�X	�V�c�m�d�i�a�e���h�i���k�n�Y�f�l�`�_�e�������d�k�j�f�f�g�m�@���B�y�A�������x���������X�Z�����z���R�P����t�hU	�����D�D�����Z�a���S������������v�������b�������H���V�U�W�Q�R�����������������F�Eˤ�\�[���{����lV�����I	�Y�Z�X���������|����������������G�������s���t�]�^�������h�f�c�g�e�d�y�}�J�����L�Q���S�R�U�����O�K�M���T��@W�P�N��������	�������[�`�b�T���������S���U���������������������������������@���z��������A�����{�������������:�4X�	��B�����H�I�a�J���W�|ĺĹ�R�C�~�B�S�\ūŬ�v�E�B�D�P�|�}�������n�P�l���q�������h�p�_���a�k�c���`�f���j�i�d�e�b�U���W�X|�$Y�Y�Z�[���V�\�G���Z���[�j�m�����i�p	�r�h���o�C�q�n�o���������Z�Y�\���j�i�\�]�����������в�v�u�\�]�_�����E������$Z���X�}	���W���V�r�_�b�`�a�e�T�f�c�d���V����������������~����F�L�N�K�M���T���o���w�������[���l���k���[�G�������g��`���	���^���Y��l�]������������\�_��Z�^���h���o�n�����p���m���r�i�k���g�j�q���s�s���F�]�������[�a�YB��[�b�H�X�]�c�`�_�^���W�\	���Z�I������A�C�@���E�B��F��D�����������������������W�����m�����������������������������\�����	����J����������������t�D��E�������A�@��C�����B����������K�D�R���O�S���L���Q���������P���T���M�~���]�Nļľ	��Ľ������Ļ�C�E�V���U���aŭ�`Ů�^�]�b�c�F���_�����������\�Q�P�O�p�������n���`���I�������O�P���Q������^��	�U�R�������������y�x���c���a���b�������m�������n�����}���S�C�A�E�F�L�H�J�T�B��I�U�K�D�G��b�@��a�c�����uJ��_�w�v�{��	�x�t�y�z�����|���g�f�d�e���������M�N�I���J�����������K�L�H�@�������G�p�����V�������������������������`��W��������F�G�H���X�I�������X�Y�W�V�Z���������������X���Y�W�F�dů�e�H�G	�Q�a�������H���y�������k�n�l���m�����_���`�_�^�`�����a	�V�U�]�_�^�u�x�w�t�|�{�v�z�s�p�q�r���v�s�t���I�����d���@�A���Y���������G���|�G���d�A�Z�[�������[�����N�D�w�c˦��b	�~���������e�y˥�\���������]�b���������������x�����n�a�d���vжд�|г���~�{���r�}����е���z���j�����g�n�E�i�����l����R�|c*�*�+�,�-h.P/8001234�4�5�6�7�8�9�:�;�<�=�>�?t@TA@B,CDE�E�F�G�H�I�J�KlL<M(N�N�O�P�Q�RtS\T`UdV8W,XYZ[�[�\�]�^�_�`�a�btcld.td�h�e�}�k���m�f	�^�u�b�����p���z�v���c�z�~�w�|�r�o�q�}���u�x�t�y���{�s���A���M�e���g�i�_�N�f�j�`�F���B�G��O�~���e	�P�E��r�J��C�B���M�L�K�I�N�}�D�F�H���x���������������a�����a���R�C�A�S�b�D�B�Q�P���O�������M�N����������������hf������������������������	�����������U�o�R�S�Q�T��˪˧ˬ˨����˩��˫�@���W�o�����������������b�f�y��имй�Tg	������лнп��о������������к����������q������p�r�����������������������з�������l�{���V���W�T���n�SZ�4h�Y�X�k�\���[�P�Z�U�m	�������Q�����R�����n�q�i�m���l�j�p�k�h�o�Y�H�J�V�W�U�Q�G�Z�T�F�I�X�������������K�L�M�]�� i�\��	���[�\�Z�fŰ�������u�t�@�A����s�����������������z���_�a�]�`�o�^�p���s�U�T�S�����L�s�u�����������t�r�������]��j�a�^�_�M�`�[�\�J	�K�]�L�����������������y�����������������������f�O�P�N�c�R�����_���Q�^������Ŀ���d�����]�H���I���� �k�C�]���q�e�o�������V�\��������q����	���B���x�v�z�J���y�w���I���C����������B����@����C��������A���f���m���lb�l�j�b�q�e�o�v�n�y�g�u�c	�i�w�L�h�x�z�k�h�r�s�w�u�t�f�r�v�i�t�s�d�g�p�j���_�k�����������a�l��W�Y�e��m�Z�\�f���l�[�n	�{�d���b��^���c������`������@���X�o���g�]�p��q�������_����r���s��������C���x������z����������m���t���u������v����~��w	�����|���������y����{����w�v������}��R�K���x�Z�U���g�P�q�y�O�V���z(��n�e�T�q�c�d�N��X�t�y�s���o�w�u�h�b�}�W�~�{�x	�m�k�f�|�n�{�j�z��}�S�~�v�|�r�l�Q��������p�Y�i�X�t�������������D�����A�j��o�C�������	�������B�@��������@������C�E���E�������������B��������A�������������D�����������������������������p���|�����U�B�����y��������������������	�����������������������������������������D��������������������������������������
�q�����������s�����`�Y��	�N�c�[�����e�U���_�������a���W���X�]�b�������j�g�k�^�Z�h�j�\���V�������d�f���i�S�V���������������r�s	�c���q�W�a���l���h���r�b�e���t���m�p�������i�d�������`���������o���X�k�u��g�n�����������B���f����@�����0��s����	�����D��������A��������C��������������Y�������Z�����������a�f�O�h���I�d�j�N�J�K�`�g�M�e�L�_�c�b�[�^r��t�i�\����ű�m�p�l�n�o�i�j�g��	�k�hŲų�]���K�M���^�X�L�N���J�������������D�����S�R�T�_�U�^�V�r�u�t�h�s�����r�p�q�w��|u��������	�����������������������������F�����s�_���s�v�q�]�t�����x�w�v���u�O�n���������r���Z�~�[�h�g�s�\�`�j�i�����`�_�k�u��lv�l���o�p�D�m�v	�Y�q�X�r�^�t���������������a�^���f���b�����j�h�l�������j�������i�g�����d�����c���k�e���������B������8�lw���N���d���������_���������]�e�f�����������D�@�A�g�}�}�C	�h�E�������������������i�j���z�~�{�|�����i���k���h�����������kz�`x�{�|��	���l�B�Q�T�}���P�m���R�M�S���`���������������������n�����o�������p�����a�������H�q�C�|�����D�x��v�c��\y��	���{���E�r�F�����}�z�y���|�{�~�����{�����h�s���������t���k�������������������[���\�u�M�K���I�J�F�F�N�H�L��@z��	�������������������G��n�l�m��������w�x��E�G�F���P�m�l�k�d�����������V�z���|�~�}�y�����w���n�G�I�o��@�,{�q�p�m��������	�H�I�J���K�L���G�`���l�����U�W�X������ɪ���X���V�Y�Wˮ����˰��˯˭����������������������������|���B�@�����r������������������������	�������������E�����F�~�|�}���g�v���x�����I���H�K���J�������������������G���}��|ܣ��	ܢ�������|�~ܡ�������������������j�k�����i�������w��G��������G�H�O�I����x����y�o��������A���G�y���L��}����ܤܦ��������ܥ�n�o�m���l���[	������P�J���p�t��q���u��s�m�y������B�����H��ܨܧ���^�����s�p���r���������H��~��������]��^�_��`���Q	�N�K�P�S�L�R�O�M��������������w�v��x�~��}�z��{�|�`�H�I�����S�z���n���Q�R�o�{Ŵŵ�q��������E���G	�����F�W���|�}�~�C�����t�������Q�R�m�D���a������E�S�����M��ܩ��ܫܪ�������u�v���������������������������������������c	�b��d�������V�U�T�T�����A�@��������}���{�~�|�y�@�z�~������������J���K�����p�����ŷ��Ŷ�O�P�H�����i	���������������C�B�����������q�r�����������������a�W�D���������X�A���L�M�|P����Q�������N����ܬ��	�z�|�������w�x�{�y�����������[��g������e���[�����f�{�Y���Z�U�[���B�Y�X�V�Z�W������h�	�E�J�F�I�������H�G���D�B�E�C����F��������@��A����Q�N�O�P�r�V���U���t�sŸ�����I�`�X�������������������~�|���}�L��b�����a�{�w�t�s������	���������������F���_�`�a�^�]���������������a����ܭ��������������h����������G��B����D��u�R�S����	�t�����s���u�������u�����a�J�����������������H�O����������ܮ�������������~��������}����X�0���	������������i���G�p�\��k�j���������l�q�a�_�r���^�]���`�\�K�^�]�_�N�L�M�R�K�Q�T�S�P�O���s�D�������J�H�I���������	�C���D���X�W���U�T�����Y�vŹ�w�X�v�V�w���t�a�Y���u�����m�������������������������x�b�y�v�w����������	���������d�c�x���b���������������P�U���v�����`�W�V�w�L�����x�����������������������y�����������̈	�������K�J�������������������n�q�s�����r�������t���p���m�o�z���c�f�d�c�{�i�h�g�b�b�a�e�d���Z�|�^�[�]�\�Y�_�b�`�a�@`���	���X�c�����������M�����]�����E�F������}�����������U�`�^���]�c�a�����\�Z�[���_���b�x�~�����y�[�������Z�}�|�Y�{�X�z	�}���~�{Ż�x�|�����y�zź�R�����S���������J�v�j�����k���������z���������������z�����������������������I��������L	���c�����������J�����e�����L�����f���M���d�������K�b�b�������������|�������l�������j���m�����d�k&�����f��	�����f�d�e�y�y���\���Lż�K�����b����������I�������������������h�v�w�������W�n�q�p�o�g�h�f�e��h�h�	�g���O���P����������G�����g�i�h�c������������Ž�T�U�V�K�c�����x�i����������J�{���r�������������������@����������z�y���d�i�������S�R�Q���^��	�]�����L�������������������������|�������������{�}�x�v��w��� ��s���y��	�t�r�u����������|�j�{�z�~�����j�m���l���t�o�s�q�p�n�k�C�B�D�A�u��������������������.���X��	���������W�U�T�������������J�������K���������������������I�H���������������������l�o�V��p�����	�P���m�s�q�k�v���j�����r���n���u���t�����������������`�����������_������ſ�������S���������������������p��	���p������ž�Z�\�_�[�`�P�Y�W�����]�����X�^�������M�����������Z���\�[�y�x�x�w�z�@�s�t�����������`�	�����K�L�M���N���e�O���n���o���������P�p�������e�h�N�f�j�g���i���Q�R���S���T���������U���V�W6�4�	�g���h�X�Y�Z�[�j���O���P�\���d�����]�^�O�M�N�o�_��ܯ�������`�a������������������������������x�����	�a�������}�����~���H��o��k������p�����@��l��m�n��b�G�G��z�{�~�|�v�A�y��}�B�E���F��Ĕ��w����������c�C������	�D���d�Y���������������������Z�r���[�M�����x�����O���P�E�G�������N�������������e���H�����������������I�����������L������	���}�{�J�������|�x���~���z���w���������y�K�����������������a�������b�������d���������M����>����R���c���u���f�����^���������������������_����������������������	�i�n�d�g���k�r���e�o�s�j�c�m�l�q�p���h�b�f�N�O�a�`��������������������������	���a�]�b�^�c�`�_�b�a�|�{�����d���x�|�J���}�����\�~�}�������������������N�M�����P�h�p�q�r���������	�����k�m�l���u�������g���������h���R���i�����Q�������g�q�s�t�r�g�f�j�����^�����e�P�Q�S��t����������^�f������G�����	�Q���Q�S�����|�R�����������e�H�����c�g�������������k���h���s��i�����������`�a�����l����F4����j�t���m	�k�l��z�d�����H�u�������r���q����L�J�K�I���\�n�������������o�������f���m�v�w���d�}�u�n���������d��4�������	�x�R�p�e�~�q�r����������]�������g�����y�����s��������o���������^������������������|�{�z������M�(������}�t�����f�������N������~���u�����������������h�������������������i�j	�b���������������T�������S�g�j�i�h������s	�j�k�������������l�k�s���e���������������i�t�v���������ȡȣN�`fLg,hijk�k�l�m�n�o�p�q�r�s�ttudvdwXxTy8z${|�|�}�~�����|�`�D�<�(����Ĉ��������`�8�����|�X�,������������l�,�,� �����P�.���@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c	���	�G�H�I�K�O�P�Q�T�Y�`�a�b�@�	�h�q�t�u�w�y�{��������������	���������������@�EVĠ�F	�J�P�p�����	����������������	�����@�D�K�\�dH��i	�x��������^t�	���F�G���	�N�U�X�Y�e�i�k�l�p�r�s�����������	��	�S�b�	��������$(�	��������������������������������fH�	�����e���	��P"��	�� =Ȣ	���������E�F�ܢ�G�H	���	��������������������,�	��������������������nT�	�������	���������	���Z��	������4ԣ	������������������v�	�_�`�a�b�c�j�m�n�o�p�x�y�$��|	�����������������������������������������������������������d�	����������������<�	�S�T~�	�C�G�4�	�}��������L�	�� p�	�d���8�P�x�����@�l�������� �@�������Ԣ���L�������̣��\���,�D�h�|���D��	�z�|ȤȥȦȧȨȩȪȫȬȭȮȯȰ�0�	�����������������������������������������������������������|�	�J��w�x�y�z�{�|�}�~������������
	�	�I�����C�H�����]�^�����A���D�����������������������G�F�������H�I�������������������������������������������������������@�����P�	�����������������������������������������������A�B���a�U�b��ȹȺȻȼȽȾȿ����������������������������������������������L	X�������������������������������������������������������	�	\�	�F�G�������D�	�P�t���H�X���P�T���
��^�_�_�_�_$`P�h`�`�`$�X����h�a�i�n�v���� )xe��p�,�(�@������T
H�@�@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~������������������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_________________________________`_____________________________�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[����������	

 !"#$%&'(��	
����	

������	
��	��	

������	
��	

 !"#$%&��	

��	
������	

��	

��	

 !"#$%&����������	

 !"��	

��	

 !��	

 !"#$%&'()��	

 !"#$%��	

 !"#$%&'()*+,-./012345��	

 !"#$%&��	

 !"#$%&'()*��	��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()��	

��	

��	

 !"#$%��	

 !"#$%&'()��	

 !��	

 !"#$%&��	

 !"#$%��	

 !"#$%&��	

��	

 !"��	

 !"#$%&'()*+,-./0��	

 !"#$%&'(��	

 !"#$%&'()*+,-��	

 !"#$%&��	

 !"#$%&'(��	

 !"#$%��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*��	

 !"#$%&'()*��				

																 !"#$%				&'(	��	

 !"#��	

 !"#$%��	

 !"#$��	

 ��	

 !"#$%&'()��	

 !"#$%&'()*+,-./0��	

 !"#$%&'(��	

 !"#$%&'()*��	

 !"#$%&'��	

 ��	

 !"#$%&'()*��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./0123��	

 !��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*��	

 !"#$%&'()*��	

 !"#$%&'��	

 !"#$%&'()*+,-��	

 !"#$%��	

 !"#$%&'()*+��	

 !"#$%&'(��	

 !"#$%��	

 !"#$%&'()*+,-��	

 !"#$��	

 !"#$%&'()*+��	

 !"#$%&��	

 !"#$��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./0��	

 !"#$%��	

 !"#$%&'(��	

 !"#$%&'()*+,-��	

 !"#$%&'()��	

 !"#$%&'()*+,-./0123456789:;<=>?@��	

 !"#$%&'()*+,��	
				
						 !"#$%&'	(												)��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./��	

 !"#$%&'()��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,��	

 !"#$%&'()*+��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*��	

 !"#$%&'()*+,-.��	

 !"#$%��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*��	

 !"#$%&'()*+,��	

 !"#$%&'()*��	

 !"#$%&'()*+,-��	

 !"#$%&'()��	

 !"#$%&'()*��	

 !"#$%&'()��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,��	

 !"#$%&��	

 !"#$%&'()*+,-./0123456��	

 !��	

 !"#$��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./0123��	

 !"��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-.��	

 !"#$%&'��	

 !"#$%&'()*+��	

 !"#$%&'��	

 !"#$%&'()*+,-��	

 !"#$%&��	

 !"#$%&'()*��	

 !"#$%&'()*��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./��	
	
			 	!	"#$	%&'()*+,-	.			/						��	

 !"#$%&'()*+,-./0123456��	

 !"#$%��	

 !"#$%&'(��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*��	

 !"#��	

 !"#$%&��	

 !"��	

 !"#$%&'()*��	

 !"#$%&'()*+��	








 !"


#$%
&'(
)


*+
,-./0��	

 !"#$%&��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-��	

 !"#$%&'(��	

 !"#$%&'()*+,-./0��	














 !



"#$%&'()
*+
,-��	

 !"#$%&'()*+��	

 !"#$%&'()*��	

 !"#$%&'()*��	

 !"#$%&'()*+,-��	

 !"#$%&'(��	

 !"#$%&'()*+,-./��	

 ��	

 !"#$%��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-.��	

 !"#$%&'��	

 !"#$%&��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+��	

 !"#$%&'()��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+��	

 !"#$%&'(��	

 !��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-��	

 !"#$%&'(��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-.��	

 !"#��	

 !"#$%&'(��	

 !"#$%&'(��	

 !"#$%&'()*+,��	

��	

 !"#$%&'()*��	

 !"#$%&'��	

 !"#$��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-��	

 !"#$%&'��	

 !"#$%&��	

 !"#$%��	

 !"#$$$$$%&$'($)*+,-.$/0$12345678��		
			
							 !	"#$%&'(					)*+,-	.��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./012��	

����	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+��	

 ��	

 !"#$%&��	

 !"#$%&'()*+,-./��	

 ��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./012��	

 !"#$%&'(��	

 !"#$%&'()*+,-��	

 !"��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*��	

 !"#$%&'()��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./��	

 !"#$%��	

 !"#$%&��	

 !"#$%&'(��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0��	

����	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0��	

��	

��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./012��	

 !"��	

��	

 !"#$%&'(��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./0��	











 



!"#$%&'(
)



*+,��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-��	
	
								 	!"#$%&'()*+,	-	./	012	��	

 !"#$%&'()*+,-.��	
	
														 	!"#$%	&'()*		+,-��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*��	

 !"#$%&'()*+������	

 !"#$%&'()*+,��	

��	

��	

 !"#$%&'()*��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./��	

 !"#$%&��	

 !"#$%&'(��	

 !"#$%&'(��	










 !
"
#
$%
&

'
()*
+



��	

 !"#$%&'(��	

��	

��	

 !"#$%&'()*+,-��	

��	

��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./01��	

 !"#$%��	

��	

 !"#$%&'��	

 !"#$%&'()*+,��	

 !"#$%&'()*+��	

 !��	

 !"#��	

 !"#$��	

 !"#$%&��	

��	

 !"#$%&'(��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./01234567��	
			
																																				����	

 !"#$%&'(��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./0123��	
��	

 !"#$%&'()*+,-./0123456789:;<=����	

��	






















































����	

��	

 !"#$%&��	

 !"#$%&'()*+,-./0123456789:;��	

����	

�����	

				�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��	

��				







����	

��	

����������	

��	

��	

��	

 !��	

 !"#$%&'()*+,-./01222222222222222��	��	

 !"#$%&'()*+,-./0123456789:;<=>?��	

 !"#$%&'()*+,-./01(23456789:;<=>?��	

 !��	

     !                           ��	

 !"##$%&'(###############)*##+,#-�	




@�	

 !"#$%&'()*+,-./0123456789:'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''𧉧𧲱𧳅𤊿𣘗𧍒𦺋𧃒𪍑𧱬𦬣𥩔𡩣𣸆𣽡𨮹𧯯𡵞𩺰𩥅@�	

 !"#$#%&'()*+,-./0123456789:;<=>?@#A#BCDEF####################################################################################𠄌𠃑𠃍𠃋𡿨𠃊𠄎@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�����������������𪎩𡅅𧜵𠧧𩷶𧀎𪄳𨑬𡷊𠗐𢫦@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������𧶄𠱂𠴕𥄫𢳆𠍁𤶸𩓥𨂾𢰸𨅝𦧲𤷪𠵼𠾴𠳕𡃴𠺖𠰋𠽤𢲩𨉖𤓓𠵆𩩍𨃩𤺧𢳂𩗴𥋇𩟔𧣈𢵄𦂥𢵌𢯊𡁷𡁯𦛚𦜖𧦠𥁒𠱃𢆡𨭌𠜱𠆩𢶍𤗈𠓼𦂗𠽌𠶖𢩦𡂝𠶜𢝵𪘁𠸉𢫏𢳉𡃈𣧂𨊛𥹉𢃇𠼱𢲲𩜠𤸻𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜𡃏𢠃𢤹𥇣𠺌𠾍𠺪𠼰𠵇𡅏𠹌𠺫𠮩𠵈𡃀𡄽𢚖𠾭@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~����������������������������𣏴𧘹𢯎𠵾𠵿𢱑𢱕𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊𩻃𧝞𢷮𦕲𨂽𠻺𠸏𠹷𠻻𤷫𠳖𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤𡀝𡀞𡃵𡃶𠸑𧚔𨋍𠾵𠹻𥅾𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼𥜽𥭴𣄽𡯁屮𠂆𤣩𦉪𦍋𦘒𦥑𧢲𨸏𩠐𠂇@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdEEEefghEijklmnopqrstuvwxyz{|}~E�������������������������𩱳𤅎𥇍𥴰𨨲𣊁𪄇𡦀𨜏𪊺𠩯𩥇𨫪𢁾𨧣𡶶𢜒𣏹𣱣𤔅𤨓𥲤𥚕𨶹𡐿𤥻𧄍𦵴𦬕𦾾𣉖𢞖𣬚𣕑𤃬𡸣𠆤𦱁𠈹𩣺𠮟𢇁𨥭𩁹𪆵𦱆𨚲𧏿𥒚𤬏𨧀𣽁𠌥𠻘@�	

 !"#$%&'()*+,-./*0123456789:;<=*>?@ABCDEFG*HIJKLMNO*PQRSTUVWXYZ[\]^_`abcdefg*hi*jklmnopqrstuvwxyz{|}~������������������������𣻗𦻓𥟠𨯩𥣡𩓙𥦬𦒍𥰁𥌎𥳾𥮴𦱿𥴠𥱥𥳁𤢂𤕸𦹄𦻖𤁗𦀩𡟹𨍭𦄡𦅚𦋐𦍑𡙡𠁨𣝦𨌺𦒉𪂇𦳃𢜔𦘦𣷣𦛨𨩈𢛶𦒘𤾸𡒊𡡞𤩥𤪕𠬍𦩒𣵾𡓽𦬊𤦧𣔰𡝳𣷸芳@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������������𠸖𡞴𣅽𣕚𣺋𦶣𦬅𦮗𣗎𦶥𦻔𦹂𢻯𥯤𣲵𦮖𦹷𦹃𥲑𥳀𦺙𨘥𨘻𧂈𡖂𧃍䕫𡢢𧎚𪃸𢰧𧗠𣶹𧗤𧜏𨨥𧤤𧪽𧩙𧬺𣾏𧬸𥐰𥕥𤩺𡛟𧵔𧶏貫𧵓𧶘𧶽𡤐𤳉@�	

 !"#$%&'()*+,-./0123456789:.;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy.z{|}~��������������.�������������𨀂𡀔𤦊𨆼𧄌𨍥𨐒𪊟𠩐𨧞𨔽𣶻𣉢𪀔𨚼𨔁𢌥𦻗𨔼𧪾𨕬𨘋𨜓𨛦𨤳𡺉𥖹𨫆𣲛𨬌𥗛𠴱𨫡𨯫𨫢𨫥𨯬𨰹𨯿𢙺𨛘𡉼𣸮𦻕𨫠𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊𤫩𩇕𩇫𣂷𣂼𥑬𩐳𩐝𧥺𧅵𠘰𤅜𥜆𦴧𡛓𤨩𩡗𩤅𥜥𩂱𩯕𩬅𨘀𦦨𣁽𩴾𡡣𤉋𩹨𩾷𪆒𪆫𪃡𪄣𪇟𪄴𢅛𪆓𪈠𡤻𪈳𪂹𪊴𤍤𨰫𦶢𩂋𤥵𤦻𤧸𤍈𤩑𨯚𡣺𨥾𨸶𨩄𨥬𤒹𤑳𤏸𡟯𡢾𣖙𡢅𥐯𡟸𡛻𡠹𡝴𡣑𥽋𡛀𤨥𡏾𡊨@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~������������������������𡏆𡒶𣚦𤦔𧅥𣸱𥕜𣻻𧁒𣛮𩦝𦼦𡤢𣜿𤃡𤂋𤄏𦰡𦚱𠿟𠮨𠸍𨬓𤐶𠑥𠍿𥙑𠆫𠏋𠌊𠐔𠋀𨺳𠉵𠈌𤨎𣺊𣖕𣸹𣺿𡢄𣺉𠗠𠒣𠒒𠒑𨪜𠜎𠡳𤎌𠰠𤦬𡃤𠸝𤪼𤂍𤃉𠍅𠯆𨩆𡛺𡝯𡜐𥥆𡧳𡡡𤊕𥺃𨯗𠐓𡌃𨧻𡦖𡥼𣫮𡤃𡤄𡢠𡛾𨩇𡶺𣑲𨦨𡤧𡞫𡜻𧗽𢡠𢘫𢖯𢖾𩂈𦽳𠀾𠁆𢘛𢲛𢴇𤛔𩅍𤙥𢭪𢬢𣑐𩣪𢹸𪑛𤧣𢵧𢲡𣂎𣊭𤦉𣊫𣋠𡣙𩐿𣊉𣆳𥖄𨬢𥖏𡛼𥕛𥐥𣄃𡠪𣈴𣈏𣆂𤋉𦴤𧡰𡷫𣋒𣋡𥡲𣠺𣞼𣞢𣏾𤘪𣟕𤒇𡤒𣿀𣲚𨯪𨫋@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�����������������������������𨀞𨧜𤧬𣽿𤀼𤌚𤉶𤞏𤜥𤪤𠗫𣻸𣙟𤩊𤤗𥿡𤫟𨰣𣼵𦷪𤳙𤴆𪗆𨫌𤦫𤦎𤩎𤧅𤣳𨫣𡡤𥈡𥇧𣈲𤚗𣞁𤣰𤪺𤫇𤪖𦆮𥖁𧝁𥛣𣻺𡛦𠵌𤦌𠊙𣶺𡝮𠇔𠰍𢛵𥪯𥪜𠉛𥯆𥮳𥺼𥺦𤧹𡞰𦉡𦅜𧭈𥺂𦭵𠤖𠁎𣗏𦐒𦏸𤥢𠠬𥫩𥵃𥸎𣐿𤧷𦖭𦖠𧄧𦳑𦞴𦩂𦩑𦶧𧈛𡡀𡢡𡣘蜨𣶏𧐢𥚃𧞅𧞄𨯵𨯙𨮜𨧹𩑈𤊄𡡅𧷜𤰉𢌡𡟚𤤯𨩋𨫼𨰝𨰻𨴴𤣿𤩂𤏪𣈥𨻧𨹦𨹥𤧭𤩸𣿮𩂰@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~����������������������������𩂓𥟟𨦉𨰦𨬯𦎾𤈛𠼦𨯅𤪲𩓚𩗗𨭐𤩧𨭤𨩅𧬆𨭥𥣈𩣱𩥈𡌂𤦸𡓨𢜟𣶸𢞁𢥫𩸭𪇵𪃾𤄄𪆴𪃭𪃳𩤯𦸒𦿟𦮂𦶤𦺄𦷰𦸀𣟗𦁤𣖜𣙀𤧞𠊿𥕝𡝗𣇉𤥁𤆵𤆬𦱀𤾗𡞵𨩉𤒈𨧼𡣖𠼝𦳀𡐓𤋺𢰦𤏁𣶷𦝁𦅛𦂤𤦹𤦋𨧺𨭣𡢟𤪳𤨾𤪔𡟙𤩦𠎧𡐤𤧥𤤖𤥶𠓾𨫎𨨖𨯧𥗕𨪂𤥃𠳿𠘚𠯫𠲸𡟺𡛂𤩐𡡒𨫀𤦭𡢿𡢃𧒄𣵛𨪁𡡢𠪴𡎜𨈘𩃤𧹏𣿭𣸭𠏵𨰜𦯀𡑒𤍢𤩱𢿣𡊰𢎽𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟𣚭𦲷𦴦𦵑𦲂𦿞𧄉𡜺𦲀𧁓𡟛𡞳𡤅𤇼𡜼𤊥𤊓𣻹𧜶𤑛𤋊𤉙𨧡𦴨𤓎𧹍𤎽𤉖𡌄𤏩勇𤩏𤩝𡟟𣫺𣌀𠈔𠣕𠘙𡾞𪊶𩅛𨩙𩐠𧫴𥛶𧬘𤣲𤽜𥔵𠳏𧥧𡯂𠂔𠊷𠎠𠓗𠗕𠘕𠙶𡚺𠫂𠫍𠮿吆𠯋𠯻𠰻𠱓𠱥𠱼𠲍𠲵𠳝𠳭𠵯𠶲𠷈𠸄𠸎𠻗𠾐𠼭𠹳𠾼𡁜𡁏𡁶𡁻𡂈𡂖𡂿𡃓𡄯𡄻𡋣𡍵𡌶𡕷𡘙𡟃𡟇𡠭𡥪@�	

 !"#$%&'()*+,-./0123456"7"89":;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a"bcdefghijklmnopqrstuvwx"yz{|}~������"���������"��������𡨭𡩅𡰪𡱰𡲬𡻈𡻕𡼕𢁅𢉼𢏗𢏺𢜪𢡱𢥏𢥧𢦓𢫕𢫨𢬎𢬿𢱌𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞𧩹𣕧𣗳𤦺𣘚𣜖𠍆𣪧𧙗𥿢𣸑𣺹𧗾𢂚𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊𠘑𡺨𣳿𤐄𤓖𤙴𤜯𨗨𩧉𢇃𨭎𤠒𤣻𤨕𤫀𠱸𤺥𤾆𠝹𥀬𥊙𥐙𣽊𤪧𥑆𥑮𦭒𥔿𧘲𥕞𥕢𥕦𥟇𤤿𥡝𣏌𥤃𨥈𥪮𥮉𥰆𡶐𦄂𧰒𦆲𤾚𦐂𦑊@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~����������������������𦯷𦒄𡤜𤧶𦒈𣿯𦔒𦖿𦚵𢜛𥟡晉𤔡𦛼𤤴𦲽𦞙𦡮𦐑𦡞𦣇𩃀𠨑𦤦𦤹𦧺𦨭𦑩𠀡𦨴𦭛𣔙𦮝𦲤𦶮𢖍𧁋𧇍𧊀𧊅𢅺𧊋𧋦𤧐𧑐𠻸𢤦𨑳𡞱𤨪𡠠𩲭𩢤𧟌𧡘𡘊𣜯𨃨𡏅𧧝𩆨𧂯𨦫𧧽𧨊𧬋𧵦𤅺𨀉𪋟𨌘𦸇𨅯𨀣𦦵𡏭𣈯𨁈𨰰𨂃𨥉𤦈𤪥𣾁𨂐𨃴𨄮𡾡𨅏@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~����������������������������𨆉𨆯𨈚𨌆𨌯𨎊𨑨𨚪𨥖𨦸𨧧𨧨𨭆𨯔𨰉𨿅𩃬𩄐𩄼𩅞𤫊𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛𩻸𩼣𪊓𪋿𪗋𠲜𢒰𤪓𨬬𧢝𡟵𨀤𨭬𨮙𧨾𦚯𧙕𣲷𥘵𥥖𥺁𦉘𠹭𣺈𤲞𡟶𡡻𥱊𥌑𩶘𥻘𣵀𠿪𠵉𣚺𠺝𨋢𠱁𠲖𥅈𠹶𢱢@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJHKLMNOPQRSTUVWXYZ[\]^_`aHbcdefghijklmnopqrstuvwxyz{|}~������������H����H��������H�𠺢𡁵𢭃𢺳𠶧𦢊𡃁𤜆𦢓𢛴𧴯𤆣𧵳𦻐𧊶𡇙𣳼𪚩𠺬𠻹𡲢𤿂𧿹𠿫𢶠𤟠𩵼𠿬𠸊𧖣𠿭𦁈𡆇𤘘𤭮𥪕𠥹𢑥𩺬𣳾𩼰𤾩𩖞𩿞𣶶𧊲𦞳𣜠𣻷𣸬𠒎𠺶𧼮𪐴𣃚𤏲𡊩𤥣𩸆𧂮@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~������������������𡝬𩓐𦌵𧅤𠴨𦴢𤫢𠵱𡼏𡷑𤤾𡝭𨺗𦴣𠏼𥰡𣳽𤤙𠳔𠇲𪙊𨍽𤩷@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~����������������𨩚𪊲咢𤪻𡠻𦸅𢔛𦅙𣏵𨯂𨸹𡵆𠼻𥼚𧒆𦟌𦻑𤀑𨬭𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭𦆭𨨏𣙷𠃮𦡆𤼎𦍌𦉫@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~����������������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_______________________________________________________________@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqnrnsntuvwxynnz{|}~�������������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiDDDjklmnopqrs𠃌𠂊𧘇@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~������������������������������@�	

 !"#$%& '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ [\]^_`a bcdefghijklmnop qrstuvwxyz{|}~��������������������������𠕇𠗟𣿅𤥂𨧤𡧛𣳈𤤳𨦪𠊠𦮳𡌅𢓭𦴩𧪄𣘀𤪱𢔓𠍾𠎀𠍇𠐟𤦤𠒇𣎴𠯿𢃼𠋥𢔰𠖎𣈳𡦃𠖳𣲙𤪦𣜭𦬓𨫞𣾀𠥔𣿬𠯢𡜦𡛨𨚫𡖖𡘓𨪛𥝲𠮏𣿫𢶣𠱷𦭓𠵴𡜍𠻝𠵍@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV	WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�����������������	�����	�����𨦼𢚘𡣗𤀺𤐵𡂴𣊊𨭦𡉏𤆥𦱾𡐖𡑔𤍣𤯵𡈼𪅐𤉸𡘾𡚒𠵎𦲁𦴪𡟜𡟻𡞲𦶦𡠨𡛕𦹅𤦩𦾡𢕔𡤑𡚸𧨎𠈄𡨴𥧌𠖥𡭄𡲥𦬨𡷹𡸷𡺤𤤁𢁉𢅳𤒼𠳓𡝱𨒂@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������𠇁弢𡌺𦢈𢏐𢑱𦹮𨨶𥉐𡽪𧃸𢙨𠊞𨨩𡡷𢞴𤦂𤦏𧩓慈𦻒𠙖𣾷𢡟𨮝𩥝𢦀𢣁𠄘𡝰𢸍𤧟𡎎𡟼𢸶𤂌𥜝𤨨𤨣𣁾𤥀𡠩𣐀𣇷𣇸𣆤𣆥𠹵𥇦𡸽𣈱𨗴𣇈𥌓𢣷𤎜𤨡𣟂𤇍𩃭𣏦𦶠@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVVWXVYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������V�������������𣑯𨫟𣗍𣘼𨩊𠏉𣙙𢄪𣜃𩆜𠤣𢟍𣫛𠎵𡥘𣭚𣻼𢒋𤣱𦭑𣶼𣶽𤆤𤤌𤤀𣳉𠴲𣇹𢒑𦴥𦶡𦷫𤥿𤂅𦹲𦽴𨬡𣸯𣾂𣁋𣸰𡒗𤀽𩅰𤅄𤂑𤅕𤀹𣿰𣾴𤄿𤅖𤅗𤅀𦇝𤉷𤍥𤋁𤑚𤨧𤨢𨯨@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������𥘅𤥴𣁄𤠣𨠫𨠄𠰺𦨮𤇢𡛧𤨤𤦷𤦍𤧻𤨦𠗃𢢭𨺲𤪌𤅟𤩹𨮏𨰃𡢞𡦈𨻙𡩋𨺬𤾂𤴓𦏵𦤑𦤎𦾟𥂝𥅽𡸜𥈠𣊬𨥤𨥨𡛁𡍶𤨒𥗠𧘌𨬫𦂃𢘜𥡗𧬹𧄦𩄍�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz����	

������	
��������	

 !"#$%&'()*+,-./012��	

����������	

��	
������	

��	

����	

��	
����	

��	

 ��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./01234567888889:;8��	

������	��������	
����	

��	
����	
��	

��	

��������������������	
����	��������������	������������	
��	
��	

��������	

��������	��	

 !"#$%&'()*+,-./0123456789:;����	����������������������������������	��	

��	

��	

������������������������������	
������������������	������	������������	

 !"#$%&'()*+,-./��	

��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./0123456789��	
















 !"
#$%&'(
)*+
,
-��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./01234567*89:;<=>?��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./01��	

 !"#$%��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+!,!!-./0!!123!456789:��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./012345��	

							 !"	#$%&'(	)*+,-./	0		1234��	

 !"#$%&'()*��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0��		

				 !"#$%&'(	)*+,-.	/0	1	2				3��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*��	

 !"#$%&'(��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./��	
	
								 !"#$%&'(	)		*	+						,-��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./01234��	

	 !"#	$	%&'()*+,-./01	2			3					4��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,��	

		 !"#$%&'()*+	,	-./0	1234	56789	��	

 !"#$%&'()*+,-./01234567��	






 !"#$

%&'(
)*+
,-.
/0
12345��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-.��	

 !"#$%&'()��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./012��	

 !"#$$%$$&'$()$*+,-./$01$23456789��		
		
					 !"#$	%&'()*+					,-./0	1��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./012345678��	

����	
��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./01234567��	






 !"
#$%
&
'()*
+,-./
0
12345��	

 !"#$%&��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./012��	

 !"#$%&'��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./��	

 !"#$%&'()��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456��	

����	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./012345678��	

��	

��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./01234��	
		
 !"#$%&'()*	+,	-.	/012	345	6789��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./012345��	

 !"#$%
&'





(
















��	

��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./0123456��	









 
!


"#$%&'()*
+

,
-./��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./012345��	

						 	!"#$%&'()*+,-./01	234567	��	
	
					 !"#$%&'()		*	+,-./012		345��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456��������	��	

 !"#$%&'()*+,-./012345��	

 ��	

��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01��	





 !
"#$%
&
'()*
+,-.
/01
2



��	

 !"#$%&'()*+,-./��	

��	

 !"#$%&'()��	

 !"#$%&'()*+,-./01234��	

 ��	

 !"��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()��	

��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789:;<��	

																																	����	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0123456789:;��	

 ����	

 !"#$%&'()*+,-./0123456789:;<=>?������������������������������������������������������������������������������	����	����	

������	
��	
��	
������������	

 !"#$%&'()*+,-./012345678����	����	
��������������������������������������������	

����	
����	

��	��	
��	
����	
����������������������������������������	

 !"#$%&'()*+,-./012345678��������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./012345����������������������	��������������������������������������	
����	
����������	��	

 !"#$%&'()*+,-./012������������	
����������������������������������������������	
��	
��	

��	

��	

��	

��	

��������������������������	

 !"#$%&'()*+,-./0123456789:��������������������������������������������������������������������������	

 !"#$%&'()*+,-./01234����������������������������������������������������������������������	
����	
����������	������	

 !"#$%&'()*+,-./0123456789����������������������������������������������������������	

 !"#$%&'()*+,-./012345����������������������������������������	����	

����	
����	

��	��	
����	

��	
������������	

 !"#$%&'()*+,-./��������������������������������������������������	

 !"#$%&'(������������������������	

������������	

�	

��				

 !"""#$%&'()*)��	

��	

 !"������	����������������	��	

��	

������	

 !"#$%&'()*+,-./0123456789:;<��������������������	
��	

��	������������	
����������������	
















 !"
#$
%&'
()*
+
,��	

 !"#$%&'()*+,-./012345*6*789:;<=>��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-��	

 !"#$%&'()��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./��		

					 !"#$%&'	()*+,-	./	0	1				2��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01234567��	

			 !"#$%&'()*	+	,-./	0123	45678	��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./0123456789��	


 
!"#$
%&'()*+,-./01234

56
789:��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+��	

 !"#$%&'(��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0123456��	

��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-.��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?3�	

 @�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~������������������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�����������������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkllmnopqrstuvwxyz{|}~�����������������������������@�		

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~����������������������������	

��	

 !"#$%&'()*+,-./0123456789:;<=>?������	��	

����	������	

��	
��	

 !��	

����	

��	����	

 !"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!��	

 !"#$%&'()*+,,,,,,,,,,,,,,,,,,,,,��	

��	

 !"#$%&'��	

��	

��	

��	

��	��	
����	

��	

 !"#��	

 !"#$%&'()*+,-./0123456789��	

������������	

��������	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'(��	

 !"#$%&'()*+,-./0123456��	






 !

"#$%&'(
)*+,-./01

234
5��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:��	





 
!"#$%&'()*+,
-./012
345
6
7��	

 !"#$%&'()*+,-./0123456789��	

��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-!!./012!345!6789:;<��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./01234567��	

			 !"#$%&	'()*+,	-./0123	4		5678��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456��	

			 !"#$%&'()*	+,-./0	12	34567	89��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./012345678��	

							 !"#$%&'()*	+,	-./01234567��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789:;<=>��	

 !"#$%&'()*+,-./012345678��	









 !"
#$%&'()*+,-./012345
6��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456789:;��	

	 !"#	$	%&'()*+,-./01	23456789:;<��	






 !"#$%&
'()*+,-
./0123456789��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'$()$*+,-.$/0$123456789:;<��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./01234��	

 !"#
$
%&'(
)*+
,-.
/0123456789:;��	

 !"#$%&'()*+,-./0123��	

	 !"#$%&'()*+,	-	./01	2345	6789:	��	

 !"#$%&'()*+,-./012345678��	




 
!"#$%

&'()
*+,
-./
01
23456��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456789:��	


 !"#$%
&'()*+,-./0123456
78
9:;<��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./012345678��	



 !
"#$%&'()*+,
-./01
234567
89:��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456��	

 !"#$$%$&'($)*$+,-./0$12$3456789:��	




 !

"#$%&'
()*+,-.
/01
23456
7��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,%-./012345678%9:;<=>��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789��	




 
!"#$%&'
(
)*+,
-./0123
45678��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456��	

			 !"#$%&		'(	)*+,-./0123456789:��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456789:;<=>��	


 !"#$%&'()*+,-./01234567
89:;<=>��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123��	



 !"#
$%&'()*
+,-./012
3456789:;��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*&+,-./0123456789:;<=>?��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./012345678��	







 !"#
$
%
&'()*+,-.
/012
345��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789:;��	

				 !"	#$%&'()*+,-./0123456789:	��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456789��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456789��	





 !"#$%&'()*+,-./0123
4567
89:��	

 !"#$%&'()*+,-./01234567��	




 !"#$
%
&'()*+
,-./
012345
678��	

 !"#$%&'()*+,-./0123456��	



 
!"
#$%&
'()*+,
-./0
123
456

��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./01234567��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./012345��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'()*+,-./0123456789:;��	

 !"#$%&'!()!*+,-./!0123456789:;<=��	

	 !"#	$%	&'()*+	,	-./	012345		678��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-)./012)3456789:));<��	

 ��	

 !"#$%%%%%%%%%%%%%%%%%%%%%%%%%%%%��	

��	

��	
������������	

����	

������	
��	
��������	
��	

��	

��	��������	

 !"#��	

��	

��	

��	

 !"#$%&'()*+,-./0123456789:;<=>��	

 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!����	
�	

 ; �G��<H��d�H��|zRx�$�G��0FJw�?:*3$"D�G�� \pH���HwGNU��
P
`�(@F̪`�K���F@D^`�K���@O\�`�K���O@l�`�K���@U�e`�K���U@X�`�K���@`�`�K���`@�3`�K���@fh�`�K���f@�`�K���v������h	
$P�(X�(���o`��
�(08	�h	���o����o�o����o+��(�	�	GA$3a1h	1GA$3p1067�
$GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignbig5.so-2.2.10-35.el8.x86_64.debug���7zXZ�ִF!t/��]?�E�h=��ڊ�2N������p��I���� �Q�{�H;P��{���V�ڐ�&���a�]�k�ao�!G�w������m��0bu�`c�f]i%�yſq�[���P
P������]�e���}��e��S��l��U��i�a���,%&U�/G�7�s�`��%���sUXS�v_���9UyZ���:M��0XB����du�)�`bo��QY�mvG�[F$-�+�3��7���qP�)�d��V��ˁ�&��+奠�;r��p+�^��#u�eID�_�A�IS��N��	\��˥\��Ӕ��A����J�?�3���<+aO
+Y�Z�&t��9|R ���%]Ф�-�I,D	�icppi���`F�E�G����8vK@e�C�h&'(7L�=�r��"���ŪWq�1Dz�2!6,>�pԔ$��V�"=S�hN�>�7k��\_����f.5��DW��.����?$(�\�o���ȱ�q�
s���2�9BU1������V�,.�Z��K>_BP5+𛖍'�
_�=p-�5�2K*�E�a�o[{�xy�+��a)h=b�&`93-�=g^z+8�^
o�F ���}�}s:�v���j6(wS�6��U�O��>�0�,��H8����p�/%Шt6ܗ�f����H�"b�r%���̈Ks��V�k�[f��@�&�)�X���SASu�yq���
�\jƶ�Ρ�!��&Z�t���%`ͪ.0�a���ӑ�:n�d�$� {��=��E��\��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T��h^B8	8	0hh	h	c�	�	0n�	�	 w�	�	D}$$
�@@k� �����$���t�H�H� �P�(P��X�(X��`�(`�` ���(�� ���(�� ��(�(�(�((��0�h(��
 �(H�P��+lib64/ruby/2.2.0/x86_64-linux/enc/trans/emoji_sjis_softbank.so000075500000357000150402105760017470 0ustar00ELF>�@��@8	@0�0� P�P�!P�!�� ����!��!  888$$���  S�td���  P�tdt�t�t�$$Q�tdR�tdP�P�!P�!��GNU��6ۄ}_/O��	�]&U�1�@  	BE���|{-��qX n , F"�(�!�0�!U�$�(�!__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_emoji_sjis_softbankrb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�P�!�X�!``�!`�!��!��!��! S��!  �!(�!8�! SH�! ��!��!��!��!�! �!��H��H�a�!H��t��H����5b�!�%c�!��h�������h���������%=�!D���%5�!DH�=1�!H�*�!H9�tH���!H��t	�����H�=�!H�5��!H)�H��H��H��?H�H�tH���!H��t��fD�����=��!u+UH�=��!H��tH�=��!�Y����d������!]������w������H��H�=a�!����H�=��!H�������H��H���UTF8-SoftBankSJIS-SoftBank 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓	∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬ʼn♯♭♪†‡¶◯	0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん�\ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ	ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω~�АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ	абвгдеёжзийклмнопрстуфхцчшщъыьэюя─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂=�	�p①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ	㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡㍻〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪��	亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭z�	院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改9d魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄9`機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈9\掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向9X后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷9T察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周9P宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾9L拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線9H 繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只9D#叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓9@&邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入9<)如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美98,鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋94/法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒902諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯9,5蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕	弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲�(8僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨9|:咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩9x=奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏9t@廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛9pC戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼9lF曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣9hI檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌9dL漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱9`O瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬9\R磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆9XU紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋9TX隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈9P[蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞9L^襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊9Ha蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮9Dd錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰9@g顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈9<j鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙	�8m纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱9�n犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑	ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"v�q9�t9�w9�z9�}9��9��9��9��9��9��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯9��涖緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙9��髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑	5��T��hx�	\XTPLHD@ <#8&4)0,,/(2$5 8t:p=l@hCdF`I\LXO。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚TRPULXH[D^@a<d8g4j0m�n�q�t�w�z�}������������������Ԙ�ܘ	���N���}�L���	Ț	�~��5
�w
p	�������������������������������������������������������������������������������
�����	���������������
��	�F�@�A�B�C�D�E�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�p�q�r�s�t�u�w�x�y�z�{�|�}�~����=���������������������������������	�vĜ���w
�	�]�\�e�f�g�h�����d�c���������0�	��������%x�	�T�U�V�W�X�Y�Z�[�\�]����������������g��	�����������	��������	�����������������������a��������������������-
0�	��������������o
��	�������������
Ȟ	���
�	�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S5���������	����������������������������������������������������wd�	������	��������������	������������=,�	����T���	���������l�p������(��������\����$�L�d������@�A�B�V	�X�Y�Z�q�r�s�t�u�v�w�x�y�z�����k�l����E�	�������������������������������������������������������������������������������������������������������������������������������L�����������������������������������������	�J�K�T�U�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�X��_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������	�E�[�R�SD�	������M@�	�����������\�	�e�i�`�c�a�k�j�d�l�f�n���	�_�m�b�g�h�~��������	�r�s�o�p�q�uU�	�t����D�P�<�8��T�x�����(��0�����	�������O�����s�^���N���������u���������L�������������O������h�	���T�v�V�����R�h����������������������]���T	�������\�����������]�������j�i�����������S�������������������������l�T��Y�m��	�����w�����������e�d�����t���W�����M�������������������C�N���O��	�P�������������x�����`���������L�Q�f����#��	���A�������Z���C�����R���]���������C�����������������ge�	�������T���������S�V�����U���������D�������N�����d�	�W�����E�r�W���������������������M�������C���o�U���������Z�Ԩ��L��x��\�̨P�+X�	�����q���{�����|���������[�����Y���l���������������`����m���X	�^���\�����������������������]�����������U����	���T���_�P�������b���B�������X�p�	�C���@�A�������l�D�a���E�H�F�m�G�I�`�K�J��3���V�M�N	���L���Q�P�O���R���S�D���U�T�W�V�Xu$��Y��	���Z�[���������b���[���e���Z�\�}���]�c���S�_�`�����Z�a���������T������b	�c���~�f���e���g���h�`�i�j�k�����d���n�l���m�y�o�p�q�~�u�s�t�r���v�����w�e� �	���x�y�y���������z����{�}�����}���f�~���M���������o����;Ȭ��	�n���������������Y���g�����������������������������h��}H�	�������������O�����U���������������������������n�����ȭ	�c�����������������h�������i���w�������[���J�������N@��j��	�u���E���������������k�������������������M��������������C���l����	�����m�������������k�����x�������n�����������C�������@����\	���������������������������P���m�����T�����K�����o���p�����������į	�����p���������������~�X�}�����q������	\�	�Q�������y�F�o�����f���������r���b�p���������@�����������������j�E�����i��K��	���h�e���g���D�����@���f���N�����i���������������z�����������\���	�C����������������������������������������	�����u���a���������t���B�����v�@���]���P���D���CD����i�A	���������E���N�F�G�����L�K�N�M�J�wS��	�S���O�H���I���S�B���Y�X�O�����P	���U���R���[�V�W�T�Z�Q�`�e�a�`��\	�f�P�x�h�A�^���b�[�������c�_���i�g�r�i���d���c��	�m�k���p�j�n�l�k�o�r�w�u�t[�	�Q���q�s���R�v�������}�{�|�~�`�	�\�X�x�y�����������������������	���d���������X����������!���������	�����������d���l�����c�������}��������c0���	�������������������������y�������\�n�����������	�����V�������B�y�����z�R��������	�������^�����C�_�����{����)T���	�����}�|�������������W���u�������|����k���x	������������������������������g�����������	�����Y�����h�������������U�����o���m�T�	��������������n�����������������1��	�����d���������������������������m�p�s��������������������s�	������������[�O���g�������������V���v�������������������	�����������t���_��z������������������������D�������z�@�D��	�A�@�����D�J�W�d�����B�E����W�i�F�������9��	�G�o�n���������K�L�I�W���H���P�����p{�	�����Q�O���R�P�N�P�M�����V�W���L��S�K	�k�U���X�w�Y�T�����	�}�Z�Q�[�_�\A к	���^���]���k�d�a���`�b�c�e�f� ��	���h�g�i���l���d�j�m�n� @��q	�o�p�q�r�E�s������t�u�y�F���G���v�w�w���x���y�z�{�}!|��~	�����F�����v�����G���@���������X�����q�����G���{���Q���������e�hI!���	���������������x������������Q���@�����������J���R����������������������!��	�������������������q��������������������������A�������K���s���A�!0�����	�����������r�����������W���j���w���������R����"��	������������Z���������x�������������Q"4�	����������������������������s���"��	�������������R������������������"�	�������������������������#0�	������������������������������Y#x�	������������������B�����H���I�������������b���J���F���#ȿ	�s�z���������������������t�����A���������X�#D���	���������y�����������������������N�����K�������c�H����$��	���L�������������X�M�{���x�����������N�fa$(�	�����p�����L�����f�@�C�D�B�_���F�E�A�G�H�I�L�J�K�M�����N�����U�O���$��	���P�M�Q���T���������U�|�����V���O�o����������W�X�^��������Y�J�e�$�	�Z�K�[���\�]�_���`�a�b�S�R�c�`�F����V���j�d���e�e�f�����i'%�������h�g�a��	�m�k�j�������l�k�]���p�o�n�q���r���z�s��������O�t�Ji%4�	�S�K���E�u�u�Y�Z���z����w�����y�O�x�v���|�%���h����|����@���8���8���T���T�ܱ<����X����X����(�����L����L����������D���Ⱥ�8�t����(���,���ؾ(�p���<��� ������,��� ��(�	�������{���|�������v���}�}�������������������%4�	�����������������P����������~�������p�����������������b��/&��	�������������������������������I���x���Y�����{������������q& �	�������f�����������������y���S������z�������������&�����D	���������������������������������������������& �	�������������Q���T���������������������d�S�����������������c���|7'��	�J������������������������e��������������y'(�	���������������������������������������������'����	�����������^�����������������@���A���B�C�Y�D�E�F�������[�'�����G	����������H�������K�I�L�J�M�����}���N�Q��?(|��Z	�O�V���P�c�}�R�S�W���T�R���e����������������Z�����(��	�c�S�]�d�_�f�b�a���[���Y�����U�X�S�����`�q���g���@�h�m�i���n�A���E�\�(`�	���k�w�l���g�������j�����U�����p�})��	���J�q�s�o�����{�������~�����x�����PG)L��v	�|���{���u�z�r�t�@�|�|�����T�y���T�����[�w�d�f���}�~���)����	���������`�����K�g����������������h�)$�	�������������r�������������g��
*��	�����E�������������O*��	�����T�����Q����P�������d�B���o�h�����*�	�i������������^���������F���C���[�����������������*`���	�������������������x�������������U����+��	��������q�~�����s�����������U���h�������G�~��W+4�	�������|���k�������l�������������������a�f�z�V�������{�+��	���������������������������������U���|���{���������+��	�V��������������������������f��t����������G����������E,��	�����W�����W���N��������������A���������i��������q_,�	�����������������g�������������b����\�A��������,��	���@�����B���C�j���D�F�G�H���g�X�I�J�������J���]�\���,���	�����L�������K�����L�N�]���M���N�O�������{�D�Q���p�S�V�U�����R%-��	�T�W���������������Z�m�X���Y�����[�\�����a�Y�t�^�������n�f�`����g-�	�f���]�c�b�����������}�g�e���d�_���k�i���g�m�s���-������	���u�A�t���^�����_���M�p�o�q�n�v�l�j�r�h�������������`�-�	�������h�����I�x�Z���z�����}���j���i��-.���{���j����	�y���|�~���K�����j�������V���O����������o.��	�����~���������[���������������������B���������������.h�	�����H�����������_���������I�����������X���������.���o��	�����������A����������������������������������������5/P�	�k���������^�����������������������|�������������O�y��w/��	���T���|���P�����Y���������������������/L�	��������\�����������l���������������������������/��	�������������������W�����������������~���������������M=0�	�����������k���@������������������0���h	���������@�w�������K�G���F�E�B�0��	���D�C�I�E�L���H�J�������M�Q�N18�	���O���R�S�T�U���������~�W�V�Y�\����E1��	�\�[�]���V�^���`�_�a�b�c�~���������c�������d�e���f�1���g	�i�h�w�}���c�j�l�B�k�m�n�o�p�q�s�r�t���i�u�E�k�v�a�1P���	�B�w�x�������y���������z�|�{�~�}2��	�����������C���������X�i����M2����`��	�����������������]�r�����������������D���2d�	�������������������B���������v���������������������������2��	���������������@�����������A�g���D�����������j3P�	���m�����������������k�^���F�������������hU3��	�����������l�����Y�_�Q�\�������C�Z���3 �	�������O�����������������U�t�������3x���	�������������i�����������W���������������[���~�����������Y��4��	�����������a�k���������������n�������Q�������������`����������]4X�	�������������X�����N�����������p���4����	���������������a�������������n���M�����48�	�������������������������������H�B������#5��	���Y�����R���A�������������������Q�@��e5��	�������N�I�������R�K���H���k�E�D�M�5T��G�F�L	���C���O�P���U�T�V�Y�b�S���W�5�������Q�Z	�X�]�[�^�a�Z���G�����\�`���_�J����d�h+6���������� �����t���X���D����x�����X���,����������|���������`���H���D��������0�|���H����\���H����p���P���0�����L�����`��h�	�f�����b�c�g�e�m�m�j�i�l���n���������o�q�pm6t�	���r���s�����D�������6��	���F�����u�t���x�Y�{�v�z�y�_���F�6�	���}�G��~�|�w�B�37`�	���������������R��u7��	���������������������������7��	���F��o���n���M���7(�	��R������������z����W���C��������;8l�	���������������������u���}8���	�������v��������������S�q�����������84�����	����]������������@9��	������������_���������������K���T��C9��	���������������A�������L�������P�Q�����9L�	�����������b�������l���C�������9��	�������������������D	:����	�����E�X�����H�F�����G���]������J����K:,�	�������I�������K�M�L�N���������i�����:��	���������l���������O�����������������:��	���P���Q�������;@�	����Z�@�Z�A���B�C�D�F�G�E�r�I�HS;t�	�R�K�J�L�M�O�N���Q�P���r�[�R���Y���S�p���T��c�R�b�\�j�������U�;��	�V�[�Y�X���E�W���������\�Z�{�����L�^���l�_�]���`�a�S�����f�c���b�E�;T�	�i�d�e�h�g�D�a�`�^�j�k�l�n�m�u�v���p�r�t�]�u�s��<��	�o�q�a���x�w�y�������z���|���{������s���}�~[<X�	��������������<��	���������������������������o����S�<��	�T��I�F�c����H�����W�U�V�X���������M!=��	��u�~�m�v��������X����������������������c=��	���������������^�����������������=l���	�Z�������������r�����������=��	�������������u������������������)>�	�����������������m�����Z��������k>`�	�������������\�u���m�C�j�v�{�>��	���]���^���d�������_���>��	���������V�����O���q���������������m��1?4�	������������A�@������C�Bs?��	���D�b�F�E�G�����I�H�`�������?���J�V	�_�F���S�P�O�c�L�N�j�_�M�K�I���[�����Q�R�?(��h��	�\�T�S�������d�f�T���U�W�X�H�Y�Z�[������9@���G��	�\�H���b�]���d�`�a���`�^���_����{@���H	�b���c�����B�d�e�t���g�f���i���l�j���m�k�e�@P���	���m�s�o���n�����n�p�q���r�n�t�����u���v���@��	�������w�����y�{�x�z�A�|�E���q�~��M�AA �	������}������g����������������v����h�G�j��[����^�|�����A|�	�������������J��}�y�����������A�	��M������������}����������������B|�	�������������Z������k����\�������IB�����	������z��������������U�������BP���	�����������������������������������B����	��������������������������������C�	���H���������������e�S�l��������������������������������QC\���	�������W�������������f�����������n���C���I	�@���g��C���[�R���B���h�������A�f�a�������F�����G�a�I�����H�CD�	�I���g�D�J�m�E�o�M�Q���L�U�n�i�����R���O�P���N�K�G�����WD��	�T�V�S�p���X���e�p�a�[�_�����Z�b�f�j�����\�o�d�Y�]�^����YDP�	�]������������q�g���c�h�j���m�i���������l���k�D�	�����n�u�o�v�r�����t�q�w�p�c�D�k�s��{�~�|��z�`���D<�	���}�x�@�q�J�r�D�U������y������J�����E��	�[����@���Z�������aE$�	�����Ep�	��s����������������r�u�����l������E��	��������r��������t��Q�A�`�������H'F��	���������K���������������������|��iFp����X����� �d���,�����D�����$�����8�l���L���P����x���d����X�����,����� �����H����t��t���H����T���<���H��4����h�����h������s�V	�l���������������k�������������������^���F�	�����������������������������������E�����W���F<�	�����������]�������I���������������b�����m�n�����x/G��	�����_�w�������������E�������������E�\qG�	�������e������r�����E�]���B�Gx�	�A��t���D�C�o�r�T�H�I���G���F�J�����B���G��N	�O�K�L�M�p�U�Q�����G�P�S�R�c�V�W�V�X�Z�^�[�Y�^7H(��\	�]���d�_�`�a���c�b�e�f�g�b���h�����L���v�i�j�P�kyH��	�l�m�n�o�����p���q���r���s�����C�w���M�t�q�u����w�������v�D�H��x	���z�y�|�{�}��~�����������F������H��	����������H�����m�c���F�|�����?I��	����������c�����������������p������IP�	�v����������s��������������������I���	����t�`��r���w��������xJ(�	����������������������GJt�	�����y�e������������p����������H����z������J�	���������G��������������������������J8	���{�t���������������������������K��������
K�	�������N�����f���������|����������OK�	���~���u���W�������������D�H�@������KH��	�������������U��������������K���@	��������B���}�C����~����n������J�P�QL��D	���N�F�H�R�G�K�����L�O�E�E�I�F�d�O��������V�TWLX	�m�S���U�W�X�[�Y���Z���M���\�a���`�L�	�A�b�h�]�_�^�P�A�d�c����e�f�L	�g���s�i�|�������j�k���l����Md	���q�r�m�\�n�a�o�p�z�t�w�s_M�	�u�v���x�`�u�a�{�^��|����}�~�g����������M��	�I���������w����������MX	���X����I����������������%N�	��Z���������gN�	������������I�a��NH	�����������y����������N���	�����O�s�����p�X���q�����t�����\����������������-O�	�����U����������������������������������oOX	���������������T��������������������������������O�	�������������J���A�������������O(	��������������A�@�C�B�D�P�E�F�G��5P|	�v�H���e�I�J���K�K���`�L�o�M�O���N�e�P�Q�R���S�T�UwP��V	�p�W�X�Y���G�Z�[�\�PL��	���]�v�u�`���_��P�^���L�a�b�����c�K�������i�d��f�����P�	�e�h�i�����g���]�f���r�m�w�����l�l�k�F�l�b�Y����j=Q		�o�p�n���_���F�s���a�U�v�����r�w���t�u��q�����N�����b���Qx		�z�x�k�����y�z���_�{������������~�|�@����}���������Q�	�d�y��	��������������u����w����T����R�
	���������������x����c��������ER�
�	�]�����Q������R`	�J���R�	�����L����������������^��S�	�����e�����L�������v�n�����������������������M���������\���fMS�����G���d	���������G���o���^�����������������q�������w���S�	��������������������������S,
	�������q������������NTp
	�����z������������UT�
	�����������������������������H���H�����T�
	�����x��������H����T<	����@�D�A��B�C�J�E���G�I�F�L�R�K�MU|	�N�Q�P�O�S�R���U�T�V�W�Y�X�g�Z���[�]�^]U�	�_�\�`���a�O�R����b���]�c�f���e�d�y�g�U0	�r�i���h�q�k�m���j�l�p�n�P�o�r�y���S�s�A�u�t�x�`�U�	�w���v�{�z�y�Q�|�}�~���D���#V�	�h�������������C�J�_��������HeVH	�I���v�}���������������R��q���������V�4����p��� �������H��� �l��0��@��P�\��P�@��P� t�D|�p	�	|
�
X����$
h
�
�
4t�(��@������	����t�����������r�������������������A����T�i������N��V	�����x����V�^�����������B�����������k���y���K����������J�I�������+W�������	�����W���M�������@mW`	���x�Y���S�����s�X���s�W�	������A���W�	�����U���z�����������|���������V�����y���_3X,	�����������������X������������������uX�����	�������������d������������B������j����������t�������������X�	�����b����������n������������X��	�S�����������������������������z���g;Y���	�e���C�L����������������K��}Y<	���N������������s�e�����I���|��Y�	���K������@�B������A�C����d���B����^�E�D�FZ�	��B���t���K���b�G�H�L�J�����I��CZ`	���O���������Z�M�N���L�P�Z�	�V���Y�X�L�Q�R�U�W�����Z�T�S���Z�	�^�_�`�]�\�����[�d�b���c�a���e	[<	�f�h�������g���s�i�l�j�k�m�o�p�q�t�r�u�wK[�	�v�[�	���[���	�x�M�y���z�J�[�������{�|�}�~����t�}������{����\	���������������S\�	���������h�j���\���	������~����������@�w���������A�������������z�\	�����G���@��K���u������������B��������������������]�����	�Y���W���������G������������J�������_������d[]��	���k������������������������I���P���������]�	���������������������������������r���������v���x���C�������]	���������������������f�������������!^�	���������������B���������C��c^�	�����������{�����a�����������z�����j���o����p����^8	�����z�{����������^����������@�B�A�^�	���C�D�E�F)_	�H�G�I�����H�Q�J�K���Z���������O��k_0	�L���M�{�a�`�N���O�P�R�S�U�Q�T�����V�W�X�Y�_�	�Z�\�[�^�a�]�_�`�b���_�	���c�d�����e�]�n�f�g�y���h1` 	�����w�������m�����l�j�k�i�w�n�o�p�q�s�r�xs`d	�t�v�R�u�����x���y���z��`��}	�|�~�{����������������` 	�����[�9a\ �	���������������������E������{a� 	��������������T���S�a� 	�@����������������D������a@!	�����������������L���N������Ab�!�	��������������I�����������~���������b�!��	���������������k�����������������h�������������V���bH"	�����L��������������c�"	�������������P����Ic�"	�����������������������������������c,#	�����D�C�E�L�@�A�����B���Q�J���F�K�c�#	�H�G�{�L�M�N�I���O���S�T�Rd�#	�Q�W�P�U�V�Y�X�[�\�]�h�Z�����^Qd($	���_�`�a�dt$	�b���c�d���d�$	�e�f�g�h�k�i�[�j���l���m���n�p�q�o������������e�$	���s�o�t�u�v�����w�������x�z�y�{�|�}�~�������Ye$%	���C����l���@��e�%	��V��������������������e�%	�����s�f,&�X��$��x�4��X��4����������0�(|�\� T x � 8!�!�!@"�"�"$#�#�# $l$�$�$%�%�%$&H&afP&�f��@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���X'��������������������������������������������������������������������������������������������d(����������������������������������������������������������������������������������������������������������������@�A�B�C�p)�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������|*��A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����+���������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G��,�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�����������-�������������������������������������������������������������������������.����������������������������������������������������������������������������������������������������������������������������������/�������������������������������������������������������g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���������������0�����������������������������������������������������������������������������1�����������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O��2�P��������������������������������������������������������������������������������������������������������������������������������3�����������������������������������������������������������������������������������������������4���������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�6�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������������������������������7���A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���8���������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�$9�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���������������������������������������������������0:���������������������������������������������������������������������������������������������������������������������������������<;�������������������������������������������������������������������������������������������������������������������������������[�H<�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�����������������������������������������������������������T=���������������������������������������������������������������������������������������������������������������������������������`>�����������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�l?�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������������������������������������������������������x@����������������������������������������������������������������������������������������������������������������������������������A���������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c��B�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������������������������������������C����������������������������������������������������������������������������������������������������������������������������������D������������������������������������������������	�f�E\(h)t*�+�,�-�.�/�0�1�2�3�4�5789(:4;@<L=X>d?p@|A�B�C�D�EF�g$F	��Ig�F	���g�F	�s�~���������B�Y�a�b�c�e�i�l�u���������������������g�F	�I�����������i�j���{�C�|�D�^�O�P�Q�R�S�T�U�V�W�X�F�G�������H���`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�m�_�n�O�Q�dG�M�����������������������������������������������������o�b�p�`	�������������������������������hpH��������������������������������	QhxI	������P����hJ��F�F\GhHpIJ(J�h0J(�i\Jw
\JIi\J��������� �(�ؠ`���,�l��H'P'�FTJdJlJtJ[i|J@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmmmmmmmmmmmnopqrstummmmmmmmvwxyz{|mmmmmmmmmmm}~������������mmmmmmm��������mmmm�@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWWWWWWWXYZ[\]^_`abcdefghijklmnoWWWWWWWWpqrstuvwxyz{|}~��������WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@�	

 !"""""""""""""""#$%&'()*+,-./0123456789:;<=>?@ABC"""""""""""""DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""@�@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������������������������������������������������@�	

 !"#$%&'()*+,-./0123444444444444444444444444444444444444444444456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������������������������������������������������@�	
















































































































































































�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx��������	

 !"#$%&'(��	
��	

 !"#$%&'()*+,-./012��	

����	

����	

������	

��������	

��	

������������	

��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?@��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456788889:;<8������	
��	
������	
��	

 !��	

��	

 !"#$��	

 !��	

��	

��	

��	

��	��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'��	

��	

��	

��	

��	

��	

��	

 !"#��	

��	

 !"#$%&��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
����	

��	
��	

��	

 !"��	

 !"#$%&��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"��	

 !"��	

��	

 !��	

��	

��	

��	

��	

��	

��	

 !��	

��	

��	

��	

��	

��	

 !"#��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

 !��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

 ��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	
��	

��	

 ��	

 !"��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	
����	

��	

 !"#��	

��	

��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'()��	

��	

��	��	

��	

��	

 !"#��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

������	

��	

��	
��	

��	

 !��	

��	

��	

��	

��	

��	

��	

����	

��	

��	
��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	
��	
��	

��	

��	

��	

������	

��	

��	
��	

����	

 !"#$%&'()*+,-./0123456789:;<=����	

��	

������	

 !��	

  !"#$%&'()*+,-./0123456789:;<=>?��	

 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!���������	




; ,I��<\I��d<J��|zRx�$�H��0FJw�?:*3$"D�H�� \�I��$HWGNU��``�!�J SRj �R�� SRj �R�������x
�P�!X�!���o`��
"�!0H�h	���o����o�o����o��!��GA$3a1x�GA$3p1067��GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignemoji_sjis_softbank.so-2.2.10-35.el8.x86_64.debug*䩥�7zXZ�ִF!t/��
��]?�E�h=��ڊ�2N�	�G��ⳲlF�KMCN=W)���{��Y�Nny��0z�FL�Ñ��������K����e�FJ����l���D,F���U�ͫ��L��+�F� �H�t�zF/�`VHT!˗�
���)���[���9�$�TOr"��N��`�ω?$YX1��Jֽ�^N��D8���Z�/]��<
�������֦�QT����|�B�g�!B�u�ժg���t�I���d��

СE��̃�Y�R����ʑL��`C���j�((ڳ��q�u�s�YZ���O���0��'�m����c�y�ߴ��-4la"���P��I�TQ����gziyR�N��'����@�M�p��G%hS�
�a{l��v�O�NW3��n5�T^i4a셙��s�����}��� ����'��w�sх�ڗ[�cF����%�*�cn��ñ�|@���K���S�(��E�����Qh@b9���z�%:�D4��b_�~�B���@��@cK3��֍�:]7�sR��0Ȝ4�}AC�j%'�_8�Y�,��u������Դ��sr$@�I�w#-���y��4���B���o0O	��I�X��}�#�Y���J��T�/ᴋ�X;���W)+����rߐ��v��SJ��4�\aK�Nj"�1v&�P@^��l;����Vڳ�?�_�^��!�aJ��<����ٳ碐�	x��V5�g�`�l�;,�
��:��s��	���"b��e�5+��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��"8���o��E���o�� T��h^BHH0hxxc��0n�� w���}��
�r� �t�t�$�����t��� �P�!P��X�!X��`�!`�` ���!�� ���!�� ��!�(�(�!(��0�a(��
 �8X�<��+lib64/ruby/2.2.0/x86_64-linux/enc/trans/transdb.so000075500000037000150402105760015076 0ustar00ELF> @�6@8	@pp �-�- �- �� �-�- �-   888$$PPP  S�tdPPP  P�td���$$Q�tdR�td�-�- �- XXGNUa�yU���-�:�98\K��@ 	BE���|�1n��qX b , F"�(0 �00 U�X�(0 __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_transdbrb_declare_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��- ��- ��- �- �/ �/ �/ �/ 0  0 ��H��H�)* H��t��H����52* �%3* ��h�������h���������%
* D���%* DH�=* H��) H9�tH��) H��t	�����H�=�) H�5�) H)�H��H��H��?H�H�tH�u) H��t��fD�����=�) u+UH�=R) H��tH�=' �Y����d����e) ]������w������H��H�VH�5TH�=S���H�<H�5@H�=3���H�"H�5 H�=$����H�H�5H�=����H��H�5�H�=����H��H�5�H�=��|���H��H�5�H�=��b���H��H�5�H�=��H���H��H�5�H�=��.���H�lH�5�H�=c����H��H�5PH�=|���H�hH�56H�=i���H�NH�5OH�=����H�4H�5<H�=����H�1H�50H�=3���H�H�5,H�=�x���H��H�5�H�=��^���H��H�5�H�=��D���H��H�5�H�=��*���H��H�5fH�=�����H��H�5�H�=����H�{H�5zH�=�����H�aH�5H�=o����H�GH�5PH�=����H�-H�5,H�=����H�H�5(H�=��t���H�#H�5�H�=(�Z���H�	H�5H�=��@���H��H�5�H�=��&���H��H�5�H�=�����H��H�5�H�=���H��H�5�H�=�����H��H�5\H�=����H��H�5�H�=;���H��H�5>H�=����H��H�5�H�=�p���H��H�5�H�=6�V���H��H�5�H�=�<���H��H�5�H�=�"���H�iH�5�H�=�����H��H�5DH�=����H�sH�5tH�=#����H�iH�5H�=_���H�OH�5LH�=����H�=H�5>H�=A���H�#H�5.H�=�l���H�	H�5 H�=�R���H��H�5�H�=��8���H��H�5�H�=�����H��H�5�H�=�����H��H�5�H�=����H��H�5�H�=�����H��H�5�H�=}���H��H�5jH�=����H��H�5�
H�=I���H�wH�5�
H�=v�h���H�]H�5�
H�=4�N���H�CH�5�
H�=K�4���H�)H�5�H�=i
����H�H�5H�=O
����H��H�5�H�=5
���H��H�5�H�=
����H��H�5
H�=����H��H�5�H�=����H��H�5|H�=��~���H��H�5�H�=��d���H��H�5�H�=��J���H�|H�5�H�=u�0���H�bH�5iH�=e����H�HH�5RH�=H���H�BH�58H�=@���H�(H�5-H�=����H�H�5H�=���H��
H�5H�=����H��
H�5�H�=�
�z���H��
H�5�
H�=��`���H��
H�5�H�=�
�F���H��
H�5�
H�={�,���H�r
H�5hH�=�
����H�X
H�5�
H�=G���H�>
H�54H�=q
����H�$
H�5^
H�=����H�

H�5H�=H
���H��H�55
H�=�
���H��H�5�
H�=
�v���H��H�5
H�=�
�\���H��H�5�
H�=��B���H��H�5�H�=w
�(���H�nH�5d
H�=�����H�TH�5�H�=C
��H�:H�50
H�=�����H� H�5�H�=
���H�H�5�	H�={���H��H�5hH�=�	���H��H�5�	H�=S�r���H��H�5@H�=�	�X���H��H�5�	H�=+�>���H��H�5H�=s	�$���H�jH�5`	H�=�
���H�PH�5�H�=?	���H�6H�5,	H�=����H�H�5�H�=	��H�H�5�H�=���H��
H�5�H�=���H��
H�5�H�=��n�H��
H�5xH�=��T�H��
H�5�H�=c�:�H��
H�5PH�=o� �H�f
H�5\H�=<��H�L
H�5)H�=;���H�2
H�5(H�=���H�
H�5H�=��H��	H�5�H�=�
��H��	H�5�
H�=���H��	H�5�H�=�
�j�H��	H�5�
H�=��P�H��	H�5�H�=�
�6�H�|	H�5�
H�=k��H�b	H�5XH�=y
��H�H	H�5f
H�=7���H�.	H�5$H�=R
���H�	H�5?
H�=��H��H�5�H�=+
��H��H�5
H�=���H��H�5�H�=�	�f�H��H�5�	H�=��L�H��H�5�H�=�	�2�H�xH�5�	H�=g��H�^H�5TH�=�	��H�DH�5�	H�=3���H�*H�5 H�=w	���H�H�5d	H�=���H��H�5�H�=J	��H��H�57	H�=��|�H��H�5�H�=	�b�H��H�5
	H�=��H�H��H�5�H�=��.�H�tH�5�H�=c��H�ZH�5PH�=���H�@H�5�H�=/���H�&H�5H�=����H�H�5�H�=���H��H�5�H�=i��H��H�5VH�=��x�H��H�5�H�=<�^�H��H�5)H�=��D�H��H�5�H�=�*�H�pH�5�H�=_��H�VH�5LH�=���H�<H�5�H�=+���H�"H�5H�=����H�H�5�H�=���H��H�5�H�=���H��H�5H�=��t�H��H�5�H�=g�Z�H��H�5TH�=��@�H��H�5|H�=>�&�H�lH�5+H�=[��H�RH�5HH�=���H�8H�5H�='���H�H�5H�=���H�H�5�H�=���H��H�5�H�=���H��H�5�H�=��p�H��H�5�H�=��V�H��H�5�H�=��<�H��H�5xH�=k�"�H�hH�5XH�=W��H�NH�5DH�=>���H�4H�5+H�=#���H�H�5H�=��H�H�5�H�=���H��H�5�H�=���H��H�5�H�=��l�H��H�5�H�=��R�H��H�5�H�=��8�H��H�5�H�=m��H�|H�5ZH�=w��H�tH�5@H�=p���H�ZH�5]H�=���H�@H�5H�=E��H�&H�52H�=���H�H�5�H�=��H��H�5H�=��h�H��H�5�H�=��N�H��H�5�H�=��4�H��H�5pH�=���H��H�5VH�=���H�pH�5�H�=5���H�VH�5�H��H�=�����H��H���big5UTF-8Big5CP950Big5-HKSCSCP951Big5-UAOchineseGB2312GB12345emojiUTF8-KDDIUTF8-DoCoMoUTF8-SoftBankemoji_iso2022_kddistateless-ISO-2022-JP-KDDIemoji_sjis_docomoUTF8-DOCOMOSJIS-DOCOMOemoji_sjis_kddiSJIS-KDDIemoji_sjis_softbankSJIS-SoftBankamp_escapexml_text_escapexml_attr_content_escapexml_attr_quotegb18030GB18030gbkGBKiso2022stateless-ISO-2022-JPEUC-JPcp51932CP50220CP50221CP51932japaneseShift_JISjapanese_euceucJP-msEUC-JIS-2004japanese_sjisWindows-31JkoreanEUC-KRCP949single_byteUS-ASCIIASCII-8BITISO-8859-1ISO-8859-2ISO-8859-3ISO-8859-4ISO-8859-5ISO-8859-6ISO-8859-7ISO-8859-8ISO-8859-9ISO-8859-10ISO-8859-11ISO-8859-13ISO-8859-14ISO-8859-15ISO-8859-16WINDOWS-874WINDOWS-1250WINDOWS-1251WINDOWS-1252WINDOWS-1253WINDOWS-1254WINDOWS-1255WINDOWS-1256WINDOWS-1257IBM437IBM775IBM737IBM852IBM855IBM857IBM860IBM861IBM862IBM863IBM865IBM866IBM869MACCROATIANMACCYRILLICMACGREEKMACICELANDMACROMANMACROMANIAMACTURKISHMACUKRAINEKOI8-UKOI8-RTIS-620CP850CP852CP855utf8_macUTF8-MACutf_16_32UTF-16BEUTF-16LEUTF-32BEUTF-32LEUTF-16UTF-32; �<L�d,�|zRx�$��0FJw�?:*3$"D�� \��XHDGNU����- x�������
8�- �- ���o`��
0 0���	���o����o�o����o�- ��GA$3a1�EGA$3p1067�8GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realigntransdb.so-2.2.10-35.el8.x86_64.debugn�)�7zXZ�ִF!t/��]?�E�h=��ڊ�2N�.��̈́�%G�w��J�bЖ�(���ݽ��b��P����B
 ��%��d5ևG�e��kY�AC2_yW��Q��&�}��څ����Q�$9���;�Q�%�i�@HS�g\���xY��W�6ضЪ��d�*���N2w��wA�6���ctX_�b�^����D-1e���Y���[1�Mt[�B�����lpJ(�;��B�?�m�lRB��k�;=:����,��颯�
	۩�1�IМ��{�@���1�mك��Q؃�{�
�f��I��t��h��(8��x�f!;����Rp�
�Aw܁�H��׋!�ϛz�,@�9�K�QJo���ݺ�Ŋ+�I8�l
ݮ��A���7��Apq.mL�ᱭF��9r$�HKOU�,Y�	>8ڂ�<V�H2��~@mT�Z��^a{R
���'[Efs���Pc����(��eL��s��rĩ1x��3��;�4J��PA�Ryҿ�aV ����G�����cLZ&�L���8�����*!?	�}��1@f��a3��2��K�ᵈ�ot��������8,�R��;���n"�9
�v����2�~:�	��Ԩ\RA&@�I�h5����G#)�.�r��~f�uD.v�(�n���Jⴡ���aݢ�;)ِ����|�B��b�ODҴ9�i����m�5q'��u-�os�@�+S�0��:��/h�膰���Jb��f�O�b�Z@��̠Ւ6�*9"$�r����ñ�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T���^B��0h��c��0n w  }88
�2EEn���$���x�PP ��- �-��- �-��- �-��- �- ��/ �/ �0 0(�(0 (0�00`(0�
 2,L2D�5+lib64/ruby/2.2.0/x86_64-linux/enc/trans/utf_16_32.so000075500000037340150402105760015060 0ustar00ELF>P@�7@8	@h!h! && & 
 
 �-�- �-   888$$H!H!H!  S�tdH!H!H!  P�td��Q�tdR�td&& & �	�	GNU~ri�7��g�|��#��@ 	BE���|�qX��� d , F"�(0 �00 �(0 UP�__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_utf_16_32rb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�& 
& � &  & @& H& X& h& @�& �&  �& �& 
�& ' @0' X' ��' �' �' �' @�' �' P�'   ( 
(( 8( H( @p( �( P�(  �( �( �( �( @8)  `) h) x) �) @�) 0* * * (* @x* @�* �* �* �* @+ P@+ H+ &X+ h+ @�+ @�+ &�+ �+ , @X, 0�, �, /�, �, @�,   - /(- 8- H- @�- 
�/ �/ �/ �/ 0  0 ��H��H��# H��t��H����5$ �%$ ��h�������h���������%�# D���%�# DH�=�# H��# H9�tH�v# H��t	�����H�=�# H�5�# H)�H��H��H��?H�H�tH�E# H��t��fD�����=]# u+UH�="# H��tH�=> �Y����d����5# ]������w���������u-�V��ym����	Ѓ���F��?�Ȁ�A��D<���ƒ���tF�������V����<��	ЃȀ�A�F��?�Ȁ�A�������V��������	Ѓ��������0����V����	ЃȀ�A�F�V������0��	��V��	ЃȀ�A�F��?�Ȁ�A���V���������������Ѓ��@���������~<�����@������	����������؈�F�~��@����<��	�	ˆQ�F������܈A�F�����F��	ЈA��f.����A�Ð�����������F��?	ЈA��fD@������ 	���F�V���ǍB�	��A��ff.�@���F��u,���ym����	Ѓ�����?�Ȁ�A��fD<���ƒ���tF������F�����<��	ЃȀ�A���?�Ȁ�A��@�������������	Ѓ��������0��������	ЃȀ�A��V������0��	��V��	ЃȀ�A�F��?�Ȁ�A�������ff.������������Ѓ��@���������~<�����@������	����������؈A�F�~��@����<��	�	ˆ�F������܈A�F�����F��	ЈA��f.��A���Ð�����A������F��?	Ј��fD@������ 	��Q�F�V���ǍB�	����ff.�@���F��ut�F��u,�V��������	Ѓ���F��?�Ȁ�A��<��������F�V����<��	ЃȀ�A�F��?�Ȁ�A��@������F�V������0	ЃȀ�A�F�V����<��	ЃȀ�A�F��?�Ȁ�A�������V�7����������x1�f�A��A�Ƀ������ƒ���tH�V��������	ЈA�F�V������	ЈA�F�����F��?	ЈA��f��A�F������� 	ЈA�F�V���ǍB�	��A�g���D�A������A������F��?	ЈA��ff.����F��ut�F��u,���������	Ѓ�����?�Ȁ�A��f�<��������F�����<��	ЃȀ�A���?�Ȁ�A��fD������F�V������0	ЃȀ�A�F�����<��	ЃȀ�A���?�Ȁ�A��D������7�������A���x1�f�A���Ƀ������ƒ���tH�V��������	ЈA�F�V������	ЈA�F�����F��?	Ј���A�F������� 	ЈA�F�V���ǍB�	���h���fD�A������A������F��?	Ј��ff.�@���1��fD���<t
<t1��fD�������ff.����<tu��tI<�u8�~u.�V��J���v���u�F��(<H�H��H���������uL�~u�~�u܀~�u���
�>�u��V��J���v����u��F�fD���u��~�u��~u��~u���
����<t
<t1��fD�������ff.����<t]��t1<u%�V��J(��w
���H���
H���fD��f������tC���u߀~�u���
�����J(��w����H�%�H�����~�u���
���?t�"���f������H��f�A������H���fD���?t����f����H������H���f���H��H�=� ���H�= ��H�=i ��H�=� ��H�= ��H�=e ��H�=� ��H�=
 �x�H�=a �l�H�= �`�H�=� �T�H�=] H���D���H��H���UTF-8UTF-32UTF-16UTF-32LEUTF-32BEUTF-16LEUTF-16BE(0
<D
LD \Td2lt|���������2�����4��
�
 (G4�<G<�<L�\G\�\4DLTdlt|����������������;����(�����(� 8�4H�H8�\(�p������������H��������H����������H���$zRx�$8�0FJw�?:*3$"D@� \�p�����������������������h�
d�%$���8<���%LX����`��*t���'�����H�GNU�
� & �@j 
�@j�,@jP 
@jP �@j �@j0�@j@�@jP&�@j@&4@j0/�@j /�@j
{�������
�& & ���o`��
0 0���	���o����o�o����oE�-  GA$3a1��GA$3p1067
�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY
GA+GLIBCXX_ASSERTIONSutf_16_32.so-2.2.10-35.el8.x86_64.debug=�no�7zXZ�ִF!t/����]?�E�h=��ڊ�2N�a \�Ӈ����!L4f�f^����� ��*
яQ%��o�#�Q�F�:���_�XklH�w��	}��9��-I�In�M)ϝ�˙])����>GpG�p7��N�	F/p��d���{������u��5�ׄ�:v�_��Y�R�WS6�Iڎ�{@����vk�O�C��Վ�v�U�ۀ��Ңb�O��
A�J@M_K���;�q��E�9��7��$�Ȥ�`܏��$�!x���(-���8�𷐧�6l��&�Lݰ쭭�aF=E���i-��m��:-\Aɝ����^�k�i)�?\�-��O��A��$oHE���+H���$�vS���J����p��n�ɰ�֧�-f��G�tٽe~�ݤڭ�[��J)�ܫc\�C���Z�����������Dm�Zl���AZT�����XN�V��.WPWՁ�I�H�����-��!�����<dNB��iϩI�-;�dg�Æt���a�ν:���� k%��j�gt[�i��;��pP[���
}���ч	Xe�U�H�k�hǓ�z���V)�+������^7wk0N/�}*��1=������K�f���l�.J�P.�
�x�+�o��`+V4l�أ��!��a�cH11ΖR�Ѡ�۾��!�7s��Y�0����8�
֢��C��� O�v))����e`1�ŧ
p��pj�)��ʮ�{0����NT���9d!Us�������C	�4���^�����t�08e{�\�׽9��F6F>\�v���m�ʖQ�5���1�3;�5��_����7�^��2p
�$(���%M�PM^yơj���Q5����c���2}��t�oJ(BZ�~������(��I��b�fi���.�
��!n,$��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T���^B��0h��c0n00 wPP�}��
� �������H!H! �& &�& &� &  &� ��- �- ��/ �/ �0 0(�(0 (0�00`(0H
p2,�2�t6+lib64/ruby/2.2.0/x86_64-linux/enc/trans/emoji_sjis_docomo.so000075500000357000150402105760017141 0ustar00ELF>�@��@8	@0�0� P�P�!P�!�� ����!��!  888$$���  S�td���  P�tdt�t�t�$$Q�tdR�tdP�P�!P�!��GNUq#����rɭ��	2��2-��@!	BE���|�K>�qX l , F"�(�!�0�!U�$�(�!__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_emoji_sjis_docomorb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�P�!�X�!``�!`�!��!��!��! S��!  �!(�!8�! SH�! ��!��!��!��!�! �!��H��H�a�!H��t��H����5b�!�%c�!��h�������h���������%=�!D���%5�!DH�=1�!H�*�!H9�tH���!H��t	�����H�=�!H�5��!H)�H��H��H��?H�H�tH���!H��t��fD�����=��!u+UH�=��!H��tH�=��!�Y����d������!]������w������H��H�=a�!����H�=��!H�������H��H���UTF8-DOCOMOSJIS-DOCOMO 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓	∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬ʼn♯♭♪†‡¶◯	0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん�\ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ	ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω~�АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ	абвгдеёжзийклмнопрстуфхцчшщъыьэюя─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂=�	�p①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ	㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡㍻〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪��	亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭z�	院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改9d魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄9`機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈9\掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向9X后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷9T察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周9P宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾9L拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線9H 繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只9D#叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓9@&邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入9<)如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美98,鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋94/法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒902諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯9,5蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕	弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲�(8僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨9|:咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩9x=奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏9t@廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛9pC戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼9lF曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣9hI檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌9dL漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱9`O瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬9\R磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆9XU紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋9TX隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈9P[蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞9L^襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊9Ha蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮9Dd錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰9@g顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈9<j鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙	�8m纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱9�n犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑	ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"v�q9�t9�w9�z9�}9��9��9��9��9��9��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯9��涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙9��髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑	5��T��hx�	\XTPLHD@ <#8&4)0,,/(2$5 8t:p=l@hCdF`I\LXO。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚TRPULXH[D^@a<d8g4j0m�n�q�t�w�z�}������������������Ԙ�ܘ	���N���}�L���	Ț	�~��5
�w
p	�������������������������������������������������������������������������������
�����	���������������
��	�F�@�A�B�C�D�E�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�p�q�r�s�t�u�w�x�y�z�{�|�}�~����=���������������������������������	�vĜ���w
�	�]�\�e�f�g�h�����d�c���������0�	��������%x�	�T�U�V�W�X�Y�Z�[�\�]����������������g��	�����������	��������	�����������������������a��������������������-
0�	��������������o
��	�������������
Ȟ	���
�	�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S5���������	����������������������������������������������������wd�	������	��������������	������������=,�	����T���	���������l�p������(��������\����$�L�d������@�A�B�V	�X�Y�Z�q�r�s�t�u�v�w�x�y�z�����k�l����E�	�������������������������������������������������������������������������������������������������������������������������������L�����������������������������������������	�J�K�T�U�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�X��_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������	�E�[�R�SD�	������M@�	�����������\�	�e�i�`�c�a�k�j�d�l�f�n���	�_�m�b�g�h�~��������	�r�s�o�p�q�uU�	�t����D�P�<�8��T�x�����(��0�����	�������O�����s�^���N���������u���������L�������������O������h�	���T�v�V�����R�h����������������������]���T	�������\�����������]�������j�i�����������S�������������������������l�T��Y�m��	�����w�����������e�d�����t���W�����M�������������������C�N���O��	�P�������������x�����`���������L�Q�f����#��	���A�������Z���C�����R���]���������C�����������������ge�	�������T���������S�V�����U���������D�������N�����d�	�W�����E�r�W���������������������M�������C���o�U���������Z�Ԩ��L��x��\�̨P�+X�	�����q���{�����|���������[�����Y���l���������������`����m���X	�^���\�����������������������]�����������U����	���T���_�P�������b���B�������X�p�	�C���@�A�������l�D�a���E�H�F�m�G�I�`�K�J��3���V�M�N	���L���Q�P�O���R���S�D���U�T�W�V�Xu$��Y��	���Z�[���������b���[���e���Z�\�}���]�c���S�_�`�����Z�a���������T������b	�c���~�f���e���g���h�`�i�j�k�����d���n�l���m�y�o�p�q�~�u�s�t�r���v�����w�e� �	���x�y�y���������z����{�}�����}���f�~���M���������o����;Ȭ��	�n���������������Y���g�����������������������������h��}H�	�������������O�����U���������������������������n�����ȭ	�c�����������������h�������i���w�������[���J�������N@��j��	�u���E���������������k�������������������M��������������C���l����	�����m�������������k�����x�������n�����������C�������@����\	���������������������������P���m�����T�����K�����o���p�����������į	�����p���������������~�X�}�����q������	\�	�Q�������y�F�o�����f���������r���b�p���������@�����������������j�E�����i��K��	���h�e���g���D�����@���f���N�����i���������������z�����������\���	�C����������������������������������������	�����u���a���������t���B�����v�@���]���P���D���CD����i�A	���������E���N�F�G�����L�K�N�M�J�wS��	�S���O�H���I���S�B���Y�X�O�����P	���U���R���[�V�W�T�Z�Q�`�e�a�`��\	�f�P�x�h�A�^���b�[�������c�_���i�g�r�i���d���c��	�m�k���p�j�n�l�k�o�r�w�u�t[�	�Q���q�s���R�v�������}�{�|�~�`�	�\�X�x�y�����������������������	���d���������X����������!���������	�����������d���l�����c�������}��������c0���	�������������������������y�������\�n�����������	�����V�������B�y�����z�R��������	�������^�����C�_�����{����)T���	�����}�|�������������W���u�������|����k���x	������������������������������g�����������	�����Y�����h�������������U�����o���m�T�	��������������n�����������������1��	�����d���������������������������m�p�s��������������������s�	������������[�O���g�������������V���v�������������������	�����������t���_��z������������������������D�������z�@�D��	�A�@�����D�J�W�d�����B�E����W�i�F�������9��	�G�o�n���������K�L�I�W���H���P�����p{�	�����Q�O���R�P�N�P�M�����V�W���L��S�K	�k�U���X�w�Y�T�����	�}�Z�Q�[�_�\A к	���^���]���k�d�a���`�b�c�e�f� ��	���h�g�i���l���d�j�m�n� @��q	�o�p�q�r�E�s������t�u�y�F���G���v�w�w���x���y�z�{�}!|��~	�����F�����v�����G���@���������X�����q�����G���{���Q���������e�hI!���	���������������x������������Q���@�����������J���R����������������������!��	�������������������q��������������������������A�������K���s���A�!0�����	�����������r�����������W���j���w���������R����"��	������������Z���������x�������������Q"4�	����������������������������s���"��	�������������R������������������"�	�������������������������#0�	������������������������������Y#x�	������������������B�����H���I�������������b���J���F���#ȿ	�s�z���������������������t�����A���������X�#D���	���������y�����������������������N�����K�������c�H����$��	���L�������������X�M�{���x�����������N�fa$(�	�����p�����L�����f�@�C�D�B�_���F�E�A�G�H�I�L�J�K�M�����N�����U�O���$��	���P�M�Q���T���������U�|�����V���O�o����������W�X�^��������Y�J�e�$�	�Z�K�[���\�]�_���`�a�b�S�R�c�`�F����V���j�d���e�e�f�����i'%�������h�g�a��	�m�k�j�������l�k�]���p�o�n�q���r���z�s��������O�t�Ji%4�	�S�K���E�u�u�Y�Z���z����w�����y�O�x�v���|�%���h����|����@���8���8���T���T�ܱ<����X����X����(�����L����L����������D���Ⱥ�8�t����(���,���ؾ(�p���<��� ������,��� ��(�	�������{���|�������v���}�}�������������������%4�	�����������������P����������~�������p�����������������b��/&��	�������������������������������I���x���Y�����{������������q& �	�������f�����������������y���S������z�������������&�����D	���������������������������������������������& �	�������������Q���T���������������������d�S�����������������c���|7'��	�J������������������������e��������������y'(�	���������������������������������������������'����	�����������^�����������������@���A���B�C�Y�D�E�F�������[�'�����G	����������H�������K�I�L�J�M�����}���N�Q��?(|��Z	�O�V���P�c�}�R�S�W���T�R���e����������������Z�����(��	�c�S�]�d�_�f�b�a���[���Y�����U�X�S�����`�q���g���@�h�m�i���n�A���E�\�(`�	���k�w�l���g�������j�����U�����p�})��	���J�q�s�o�����{�������~�����x�����PG)L��v	�|���{���u�z�r�t�@�|�|�����T�y���T�����[�w�d�f���}�~���)����	���������`�����K�g����������������h�)$�	�������������r�������������g��
*��	�����E�������������O*��	�����T�����Q����P�������d�B���o�h�����*�	�i������������^���������F���C���[�����������������*`���	�������������������x�������������U����+��	��������q�~�����s�����������U���h�������G�~��W+4�	�������|���k�������l�������������������a�f�z�V�������{�+��	���������������������������������U���|���{���������+��	�V��������������������������f��t����������G����������E,��	�����W�����W���N��������������A���������i��������q_,�	�����������������g�������������b����\�A��������,��	���@�����B���C�j���D�F�G�H���g�X�I�J�������J���]�\���,���	�����L�������K�����L�N�]���M���N�O�������{�D�Q���p�S�V�U�����R%-��	�T�W���������������Z�m�X���Y�����[�\�����a�Y�t�^�������n�f�`����g-�	�f���]�c�b�����������}�g�e���d�_���k�i���g�m�s���-������	���u�A�t���^�����_���M�p�o�q�n�v�l�j�r�h�������������`�-�	�������h�����I�x�Z���z�����}���j���i��-.���{���j����	�y���|�~���K�����j�������V���O����������o.��	�����~���������[���������������������B���������������.h�	�����H�����������_���������I�����������X���������.���o��	�����������A����������������������������������������5/P�	�k���������^�����������������������|�������������O�y��w/��	���T���|���P�����Y���������������������/L�	��������\�����������l���������������������������/��	�������������������W�����������������~���������������M=0�	�����������k���@������������������0���h	���������@�w�������K�G���F�E�B�0��	���D�C�I�E�L���H�J�������M�Q�N18�	���O���R�S�T�U���������~�W�V�Y�\����E1��	�\�[�]���V�^���`�_�a�b�c�~���������c�������d�e���f�1���g	�i�h�w�}���c�j�l�B�k�m�n�o�p�q�s�r�t���i�u�E�k�v�a�1P���	�B�w�x�������y���������z�|�{�~�}2��	�����������C���������X�i����M2����`��	�����������������]�r�����������������D���2d�	�������������������B���������v���������������������������2��	���������������@�����������A�g���D�����������j3P�	���m�����������������k�^���F�������������hU3��	�����������l�����Y�_�Q�\�������C�Z���3 �	�������O�����������������U�t�������3x���	�������������i�����������W���������������[���~�����������Y��4��	�����������a�k���������������n�������Q�������������`����������]4X�	�������������X�����N�����������p���4����	���������������a�������������n���M�����48�	�������������������������������H�B������#5��	���Y�����R���A�������������������Q�@��e5��	�������N�I�������R�K���H���k�E�D�M�5T��G�F�L	���C���O�P���U�T�V�Y�b�S���W�5�������Q�Z	�X�]�[�^�a�Z���G�����\�`���_�J����d�h+6���������� �����t���X���D����x�����X���,����������|���������`���H���D��������0�|���H����\���H����p���P���0�����L�����`��h�	�f�����b�c�g�e�m�m�j�i�l���n���������o�q�pm6t�	���r���s�����D�������6��	���F�����u�t���x�Y�{�v�z�y�_���F�6�	���}�G��~�|�w�B�37`�	���������������R��u7��	���������������������������7��	���F��o���n���M���7(�	��R������������z����W���C��������;8l�	���������������������u���}8���	�������v��������������S�q�����������84�����	����]������������@9��	������������_���������������K���T��C9��	���������������A�������L�������P�Q�����9L�	�����������b�������l���C�������9��	�������������������D	:����	�����E�X�����H�F�����G���]������J����K:,�	�������I�������K�M�L�N���������i�����:��	���������l���������O�����������������:��	���P���Q�������;@�	����Z�@�Z�A���B�C�D�F�G�E�r�I�HS;t�	�R�K�J�L�M�O�N���Q�P���r�[�R���Y���S�p���T��c�R�b�\�j�������U�;��	�V�[�Y�X���E�W���������\�Z�{�����L�^���l�_�]���`�a�S�����f�c���b�E�;T�	�i�d�e�h�g�D�a�`�^�j�k�l�n�m�u�v���p�r�t�]�u�s��<��	�o�q�a���x�w�y�������z���|���{������s���}�~[<X�	��������������<��	���������������������������o����S�<��	�T��I�F�c����H�����W�U�V�X���������M!=��	��u�~�m�v��������X����������������������c=��	���������������^�����������������=l���	�Z�������������r�����������=��	�������������u������������������)>�	�����������������m�����Z��������k>`�	�������������\�u���m�C�j�v�{�>��	���]���^���d�������_���>��	���������V�����O���q���������������m��1?4�	������������A�@������C�Bs?��	���D�b�F�E�G�����I�H�`�������?���J�V	�_�F���S�P�O�c�L�N�j�_�M�K�I���[�����Q�R�?(��h��	�\�T�S�������d�f�T���U�W�X�H�Y�Z�[������9@���G��	�\�H���b�]���d�`�a���`�^���_����{@���H	�b���c�����B�d�e�t���g�f���i���l�j���m�k�e�@P���	���m�s�o���n�����n�p�q���r�n�t�����u���v���@��	�������w�����y�{�x�z�A�|�E���q�~��M�AA �	������}������g����������������v����h�G�j��[����^�|�����A|�	�������������J��}�y�����������A�	��M������������}����������������B|�	�������������Z������k����\�������IB�����	������z��������������U�������BP���	�����������������������������������B����	��������������������������������C�	���H���������������e�S�l��������������������������������QC\���	�������W�������������f�����������n���C���I	�@���g��C���[�R���B���h�������A�f�a�������F�����G�a�I�����H�CD�	�I���g�D�J�m�E�o�M�Q���L�U�n�i�����R���O�P���N�K�G�����WD��	�T�V�S�p���X���e�p�a�[�_�����Z�b�f�j�����\�o�d�Y�]�^����YDP�	�]������������q�g���c�h�j���m�i���������l���k�D�	�����n�u�o�v�r�����t�q�w�p�c�D�k�s��{�~�|��z�`���D<�	���}�x�@�q�J�r�D�U������y������J�����E��	�[����@���Z�������aE$�	�����Ep�	��s����������������r�u�����l������E��	��������r��������t��Q�A�`�������H'F��	���������K���������������������|��iFp����X����� �d���,�����D�����$�����8�l���L���P����x���d����X�����,����� �����H����t��t���H����T���<���H��4����h�����h������s�V	�l���������������k�������������������^���F�	�����������������������������������E�����W���F<�	�����������]�������I���������������b�����m�n�����x/G��	�����_�w�������������E�������������E�\qG�	�������e������r�����E�]���B�Gx�	�A��t���D�C�o�r�T�H�I���G���F�J�����B���G��N	�O�K�L�M�p�U�Q�����G�P�S�R�c�V�W�V�X�Z�^�[�Y�^7H(��\	�]���d�_�`�a���c�b�e�f�g�b���h�����L���v�i�j�P�kyH��	�l�m�n�o�����p���q���r���s�����C�w���M�t�q�u����w�������v�D�H��x	���z�y�|�{�}��~�����������F������H��	����������H�����m�c���F�|�����?I��	����������c�����������������p������IP�	�v����������s��������������������I���	����t�`��r���w��������xJ(�	����������������������GJt�	�����y�e������������p����������H����z������J�	���������G��������������������������J8	���{�t���������������������������K��������
K�	�������N�����f���������|����������OK�	���~���u���W�������������D�H�@������KH��	�������������U��������������K���@	��������B���}�C����~����n������J�P�QL��D	���N�F�H�R�G�K�����L�O�E�E�I�F�d�O��������V�TWLX	�m�S���U�W�X�[�Y���Z���M���\�a���`�L�	�A�b�h�]�_�^�P�A�d�c����e�f�L	�g���s�i�|�������j�k���l����Md	���q�r�m�\�n�a�o�p�z�t�w�s_M�	�u�v���x�`�u�a�{�^��|����}�~�g����������M��	�I���������w����������MX	���X����I����������������%N�	��Z���������gN�	������������I�a��NH	�����������y����������N���	�����O�s�����p�X���q�����t�����\����������������-O�	�����U����������������������������������oOX	���������������T��������������������������������O�	�������������J���A�������������O(	��������������A�@�C�B�D�P�E�F�G��5P|	�v�H���e�I�J���K�K���`�L�o�M�O���N�e�P�Q�R���S�T�UwP��V	�p�W�X�Y���G�Z�[�\�PL��	���]�v�u�`���_��P�^���L�a�b�����c�K�������i�d��f�����P�	�e�h�i�����g���]�f���r�m�w�����l�l�k�F�l�b�Y����j=Q		�o�p�n���_���F�s���a�U�v�����r�w���t�u��q�����N�����b���Qx		�z�x�k�����y�z���_�{������������~�|�@����}���������Q�	�d�y��	��������������u����w����T����R�
	���������������x����c��������ER�
�	�]�����Q������R`	�J���R�	�����L����������������^��S�	�����e�����L�������v�n�����������������������M���������\���fMS�����G���d	���������G���o���^�����������������q�������w���S�	��������������������������S,
	�������q������������NTp
	�����z������������UT�
	�����������������������������H���H�����T�
	�����x��������H����T<	����@�D�A��B�C�J�E���G�I�F�L�R�K�MU|	�N�Q�P�O�S�R���U�T�V�W�Y�X�g�Z���[�]�^]U�	�_�\�`���a�O�R����b���]�c�f���e�d�y�g�U0	�r�i���h�q�k�m���j�l�p�n�P�o�r�y���S�s�A�u�t�x�`�U�	�w���v�{�z�y�Q�|�}�~���D���#V�	�h�������������C�J�_��������HeVH	�I���v�}���������������R��q���������V�4����p��� �������H��� �l��0��@��P�\��P�@��P� t�D|�p	�	|
�
X����$
h
�
�
4t�(��@������	����t�����������r�������������������A����T�i������N��V	�����x����V�^�����������B�����������k���y���K����������J�I�������+W�������	�����W���M�������@mW`	���x�Y���S�����s�X���s�W�	������A���W�	�����U���z�����������|���������V�����y���_3X,	�����������������X������������������uX�����	�������������d������������B������j����������t�������������X�	�����b����������n������������X��	�S�����������������������������z���g;Y���	�e���C�L����������������K��}Y<	���N������������s�e�����I���|��Y�	���K������@�B������A�C����d���B����^�E�D�FZ�	��B���t���K���b�G�H�L�J�����I��CZ`	���O���������Z�M�N���L�P�Z�	�V���Y�X�L�Q�R�U�W�����Z�T�S���Z�	�^�_�`�]�\�����[�d�b���c�a���e	[<	�f�h�������g���s�i�l�j�k�m�o�p�q�t�r�u�wK[�	�v�[�	���[���	�x�M�y���z�J�[�������{�|�}�~����t�}������{����\	���������������S\�	���������h�j���\���	������~����������@�w���������A�������������z�\	�����G���@��K���u������������B��������������������]�����	�Y���W���������G������������J�������_������d[]��	���k������������������������I���P���������]�	���������������������������������r���������v���x���C�������]	���������������������f�������������!^�	���������������B���������C��c^�	�����������{�����a�����������z�����j���o����p����^8	�����z�{����������^����������@�B�A�^�	���C�D�E�F)_	�H�G�I�����H�Q�J�K���Z���������O��k_0	�L���M�{�a�`�N���O�P�R�S�U�Q�T�����V�W�X�Y�_�	�Z�\�[�^�a�]�_�`�b���_�	���c�d�����e�]�n�f�g�y���h1` 	�����w�������m�����l�j�k�i�w�n�o�p�q�s�r�xs`d	�t�v�R�u�����x���y���z��`��}	�|�~�{����������������` 	�����[�9a\ �	���������������������E������{a� 	��������������T���S�a� 	�@����������������D������a@!	�����������������L���N������Ab�!�	��������������I�����������~���������b�!��	���������������k�����������������h�������������V���bH"	�����L��������������c�"	�������������P����Ic�"	�����������������������������������c,#	�����D�C�E�L�@�A�����B���Q�J���F�K�c�#	�H�G�{�L�M�N�I���O���S�T�Rd�#	�Q�W�P�U�V�Y�X�[�\�]�h�Z�����^Qd($	���_�`�a�dt$	�b���c�d���d�$	�e�f�g�h�k�i�[�j���l���m���n�p�q�o������������e�$	���s�o�t�u�v�����w�������x�z�y�{�|�}�~�������Ye$%	���C����l���@��e�%	��V��������������������e�%	�����s�f,&�X��$��x�4��X��4����������0�(|�\� T x � 8!�!�!@"�"�"$#�#�# $l$�$�$%�%�%$&H&afP&�f��@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��X'�����������������������������������������������������������������d(����������������������������������������������������������������������������������������������������������������@�A�B�C�p)�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������|*���������������������������������������������������������������������+���������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G��,�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�����������-�������������������������������������������������������������������������.�������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K��/�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���������������0�����������������������������������������������������������������������������1�����������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O��2�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������3���������������������������������������������������������������������������������4���������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�6�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������������������������������7���������������������������������������������������������������������������������������������������������������������������������8���������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�$9�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���������������������������������������������������0:���������������������������������������������������������������������������������������������������������������������������������<;�������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�H<�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�����������������������������������������������������������T=���������������������������������������������������������������������������������������������������������������������������������`>�����������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�l?�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������������������������������������������������������x@����������������������������������������������������������������������������������������������������������������������������������A���������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c��B�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������������������������������������������������C����������������������������������������������������������������������������������������������������������������������������������D������������������������������������������������	�f�E\(h)t*�+�,�-�.�/�0�1�2�3�4�5789(:4;@<L=X>d?p@|A�B�C�D�EF�g$F	��Ig�F	���g�F	�s�~���������B�Y�a�b�c�e�i�l�u���������������������g�F	�I�����������i�j���{�C�|�D�^�O�P�Q�R�S�T�U�V�W�X�F�G�������H���`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�m�_�n�O�Q�dG�M�����������������������������������������������������o�b�p�`	�������������������������������hpH��������������������������������	QhxI	������P����hJ��F�F\GhHpIJ(J�h0J(�i\Jw
\JIi\J��������� �(�ؠ`���,�l��H'P'�FTJdJlJtJ[i|J@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmmmmmmmmmmmnopqrstummmmmmmmvwxyz{|mmmmmmmmmmm}~������������mmmmmmm��������mmmm�@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWWWWWWWXYZ[\]^_`abcdefghijklmnoWWWWWWWWpqrstuvwxyz{|}~��������WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@�	

 !"""""""""""""""#$%&'()*+,-./0123456789:;<=>?@ABC"""""""""""""DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""@�@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������������������������������������������������@�	

 !"#$%&'()*+,-./0123444444444444444444444444444444444444444444456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������������������������������������������������������������@�	
















































































































































































�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx��������	

 !"#$%&'(��	
��	

 !"#$%&'()*+,-./012��	

����	

����	

������	

��������	

��	

������������	

��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?@��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456788889:;<8������	
��	
������	
��	

 !��	

��	

 !"#$��	

 !��	

��	

��	

��	

��	��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'��	

��	

��	

��	

��	

��	

��	

 !"#��	

��	

 !"#$%&��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
����	

��	
��	

��	

 !"��	

 !"#$%&��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"��	

 !"��	

��	

 !��	

��	

��	

��	

��	

��	

��	

 !��	

��	

��	

��	

��	

��	

 !"#��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

 !��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

 ��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	
��	

��	

 ��	

 !"��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	
����	

��	

 !"#��	

��	

��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'()��	

��	

��	��	

��	

��	

 !"#��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

������	

��	

��	
��	

��	

 !��	

��	

��	

��	

��	

��	

��	

����	

��	

��	
��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	
��	
��	

��	

��	

��	

������	

��	

��	
��	

����	

 !"#$%&'()*+,-./0123456789:;<=����	

��	

������	

 !��	

  !"#$%&'()*+,-./0123456789:;<=>?��	

 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!���������	




; ,I��<\I��d<J��|zRx�$�H��0FJw�?:*3$"D�H�� \�I��$HWGNU��``�!�J SRj �R�� SRj �R�������x
�P�!X�!���o`��
 �!0H�h	���o����o�o����o��!��GA$3a1x�GA$3p1067��GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignemoji_sjis_docomo.so-2.2.10-35.el8.x86_64.debug<�Y��7zXZ�ִF!t/��
��]?�E�h=��ڊ�2N�	�G��ⳲlF�KMCN=W)���{��Y�Nny��0z�FL�Ñ��������K����e�FJ����l���D,F���U�ͫ��L��+�F� �H�t�zF/�`VHT!˗�
���fܟ>���Ҳ��2v^��E@�W��O�uz�ʭ8)�'ő1�	���6���������k�j��+w�Rc��Tm���8�
��tZq��'�;�F�4rԥ�jk��x�V����R۴6����"�‘l��Q�̨Y(�9Y�|of�s�����>�R�O�O(�bq����r���k�tgH��Vq''Y�$g}L��aB�g�Τ
��6�糪��7n=���
!�yQb�z�.E�lQ«���T���7v�'�����*�[yُ|V��K���?��U�����	_�W@�}+H!����6TP2
D7Y�%MEV´N�6V��]V�f1_ʕ���oF@��~�F���v����K2e��lcIR���#�4d��@�a��~o�IU:��(�(�t�O�kݧd���	2��>}�w��e�*7#�{��Flz�{�;�ϥ�S���Q)��lgKWV��T*rxGX�0;>f>34�f`*�ߑ�0cc�}�-�P}���½Ui����
꼀�:�����ֱ��3�}Z��s�H�K�%����6p��Ǿ�=H,�C�\f�����������{��) �h7����Ep�����g���?qس|���<i��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0�� 8���o��E���o�� T��h^BHH0hxxc��0n�� w���}��
�r� �t�t�$�����t��� �P�!P��X�!X��`�!`�` ���!�� ���!�� ��!�(�(�!(��0�a(��
 �4T�@��+lib64/ruby/2.2.0/x86_64-linux/enc/trans/single_byte.so000075500000337030150402105760015753 0ustar00ELF>�-@ض@8	@�`�` PkPk!Pk!�D�D ����!��!  888$$h`h`h`  S�tdh`h`h`  P�td�_�_�_$$Q�tdR�tdPkPk!Pk!�D�DGNUI&��zx�4U�	r�L�����` 	BE���|�qXM�e� f , F"�(�!�0�!�(�!U�.__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_single_byterb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�Pk!�.Xk!P.`k!`k!�k!�3�k!�3�k!��k!�5 l!�3(l!�38l!�Hl!�5�l!�3�l!�3�l!��l!�5`m!�3hm!�3xm!��m!�5n!�3n!�3n!�(n!�5�n!�3�n!�3�n!��n!�5@o!�3Ho!�3Xo!�ho!�5�o!�3�o!�3�o!�p!�5�p!�3�p!�3�p!��p!�5 q!�3(q!�38q!�Hq!�5�q!�3�q!�3�q!��q!�5`r!�3hr!�3xr!��r!�5s!�3s!�3s!�(s!�5�s!�3�s!�3�s!��s!�5@t!�3Ht!�3Xt!�ht!�5�t!�3�t!�3�t!�u!�5�u!�3�u!4�u!��u!�5 v!4(v!�38v!�Hv!�5�v!�3�v!4�v!��v!�5`w!4hw!�3xw!��w!�5x!�3x!4x!�(x!�5�x!4�x!�3�x!��x!�5@y!�3Hy!#4Xy!�hy!�5�y!#4�y!�3�y!�z!�5�z!�3�z!,4�z!��z!�5 {!,4({!�38{!�H{!�5�{!�3�{!84�{!��{!�5`|!84h|!�3x|!��|!�5}!�3}!D4}!�(}!�5�}!D4�}!�3�}!��}!�5@~!�3H~!K4X~!�h~!�5�~!K4�~!�3�~!�!�5�!�3�!R4�!��!�5 �!R4(�!�38�!�H�!�5��!�3Ȁ!Y4؀!��!�5`�!Y4h�!�3x�!���!�5�!�3�!`4�!�(�!�5��!`4��!�3��!�Ȃ!�5@�!�3H�!g4X�!�h�!�5�!g4�!�3��!��!�5��!�3��!n4��!���!�5 �!n4(�!�38�!�H�!�5��!�3ȅ!u4؅!��!�5`�!u4h�!�3x�!���!�5�!�3�!|4�!�(�!�5��!|4��!�3��!�ȇ!�5@�!�3H�!�4X�!�h�!�5�!�4�!�3��!��!�5��!�3��!�4��!���!�5 �!�4(�!�38�!�H�!�5��!�3Ȋ!�4؊!��!�5`�!�4h�!�3x�!���!�5�!�3�!�4�!�(�!�5��!�4��!�3��!�Ȍ!�5@�!�3H�!�4X�!�h�!�5�!�4�!�3��!��!�5��!�3��!�4��!���!�5 �!�4(�!�38�!�H�!�5��!�3ȏ!�4؏!��!�5`�!�4h�!�3x�!���!�5�!�3�!�4�!�(�!�5��!�4��!�3��!�ȑ!�5@�!�3H�!�4X�!�h�!�5�!�4�!�3��!��!�5��!�3��!�4��!���!�5 �!�4(�!�38�!�H�!�5��!�3Ȕ!�4ؔ!��!�5`�!�4h�!�3x�!���!�5�!�3�!�4�!�(�!�5��!�4��!�3��!�Ȗ!�5@�!�3H�!5X�!�h�!�5�!5�!�3��!��!�5��!�3��!5��!���!�5 �!5(�!�38�!�H�!�5��!�3ș!5ؙ!��!�5`�!5h�!�3x�!���!�5�!�3�!+5�!�(�!�5��!+5��!�3��!�ț!�5@�!�3H�!75X�!�h�!�5�!75�!�3��!��!�5��!�3��!C5��!���!�5 �!C5(�!�38�!�H�!�5��!�3Ȟ!O5؞!��!�5`�!O5h�!�3x�!���!�5�!�3�![5�!�(�!�5��![5��!�3��!�Ƞ!�5@�!�3H�!f5X�!�h�!�5�!f5�!�3��!��!�5��!�3��!q5��!���!�5 �!q5(�!�38�!�H�!�5��!�3ȣ!|5أ!��!�5`�!|5h�!�3x�!���!�5�!�3�!�5�!�(�!�5��!�5��!�3��!�ȥ!�5@�!�3H�!�5X�!�h�!�5�!�5�!�3��!��!�5��!�3��!�5��!���!�5 �!�5(�!�38�!�H�!�5��!�3Ȩ!�5ب!��!�5`�!�5h�!�3x�!���!�5�!�3�!�5�!�(�!�5��!�5��!�3��!�Ȫ!�5@�!�3H�!�5X�!�h�!�5�!�5�!�3��!��!�5��!�3��!�5��!���!�5 �!�5(�!�38�!�H�!�5�!�!�!��!�! �!��H��H�i�!H��t��H����5r�!�%s�!��h�������h���������%M�!D���%E�!DH�=A�!H�:�!H9�tH��!H��t	�����H�=�!H�5
�!H)�H��H��H��?H�H�tH���!H��t��fD�����=́!u+UH�=��!H��tH�=�<!�Y����d������!]������w������H��H�=q~!����H�=�}!����H�=}!��H�=m|!���H�=�{!����H�={!����H�=iz!����H�=�y!���H�=y!���H�=ex!���H�=�w!���H�=
w!���H�=av!�|���H�=�u!�p���H�=	u!�d���H�=]t!�X���H�=�s!�L���H�=s!�@���H�=Yr!�4���H�=�q!�(���H�=q!����H�=Up!����H�=�o!����H�=�n!���H�=Qn!���H�=�m!���H�=�l!����H�=Ml!����H�=�k!���H�=�j!���H�=Ij!���H�=�i!���H�=�h!���H�=Eh!���H�=�g!�t���H�=�f!�h���H�=Af!�\���H�=�e!�P���H�=�d!�D���H�==d!�8���H�=�c!�,���H�=�b!� ���H�=9b!����H�=�a!����H�=�`!���H�=5`!��H�=�_!���H�=�^!����H�=1^!����H�=�]!���H�=�\!���H�=-\!���H�=�[!���H�=�Z!���H�=)Z!���H�=}Y!�x���H�=�X!�l���H�=%X!�`���H�=yW!�T���H�=�V!�H���H�=!V!�<���H�=uU!�0���H�=�T!�$���H�=T!����H�=qS!����H�=�R!����H�=R!��H�=mQ!���H�=�P!����H�=P!����H�=iO!����H�=�N!���H�=N!���H�=eM!���H�=�L!���H�=
L!���H�=aK!�|���H�=�J!�p���H�=	J!�d���H�=]I!�X���H�=�H!�L���H�=H!�@���H�=YG!�4���H�=�F!�(���H�=F!����H�=UE!����H�=�D!����H�=�C!���H�=QC!���H�=�B!���H�=�A!����H�=MA!����H�=�@!���H�=�?!���H�=I?!���H�=�>!���H�=�=!���H�=E=!���H�=�<!�t���H�=�;!�h���H�=A;!�\���H�=�:!�P���H�=�9!�D���H�==9!�8���H�=�8!�,���H�=�7!H��������H��H���UTF-8CP855CP852CP850TIS-620KOI8-RKOI8-UMACUKRAINEMACTURKISHMACROMANIAMACROMANMACICELANDMACGREEKMACCYRILLICMACCROATIANIBM869IBM866IBM865IBM863IBM862IBM861IBM860IBM857IBM855IBM852IBM737IBM775IBM437WINDOWS-1257WINDOWS-1256WINDOWS-1255WINDOWS-1254WINDOWS-1253WINDOWS-1252WINDOWS-1251WINDOWS-1250WINDOWS-874ISO-8859-16ISO-8859-15ISO-8859-14ISO-8859-13ISO-8859-11ISO-8859-10ISO-8859-9ISO-8859-8ISO-8859-7ISO-8859-6ISO-8859-5ISO-8859-4ISO-8859-3ISO-8859-2ISO-8859-1ASCII-8BITUS-ASCII	�� � � 0@�@:@(08HPXL`	C�€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿE�����������������������������������������������������������������G�����������������������������������������������������������������G���(08HPX��€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙E����������������������������������	��������	���������������������������������	��������������������<	��������������������������������F�	������,	�4�$	H	(08HPX�P	€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ħ˘£¤	Ĥ§¨İŞĞĴ­Ż°ħ²³´µĥ·¸ışğĵ½żÀÁÂÄĊĈÇÈÉÊËÌÍÎÏÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâäċĉçèéêëìíîïñòóôġö÷ĝùúûüŭŝ˙��	���������������������������������	������������������	��������������������������������������������	L	������������������G	
	���������	p
	���	�
D
h
�
�
(08HPX��
€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙E�
���������������������������������	��������
	�������������������������������������O
���	��������������������������
\	���������������������
�	���8�T�0L(08HPX�T€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџE����������������������������������	��W�	���������������������������������������������������������������<����������������	���������������D	���_�4<�(0�8HPX��€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ 	¤،­؛؟ءآأؤإئابةتثجحخدذرزسشصضطظعغـفقكلمنهوىيًٌٍَُِّْ�
0���������������������������������	����	������������������������������(�������������������	� �(08HPX`€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ‘’£€₯¦§¨©ͺ«¬­	―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώW@���������������������������������	���������������YD	��	���������������������������������������������������������(���������������		���ad	����x��� \(0�8HPX'�€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ 	¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾‗אבגדהוזחטיךכלםמןנסעףפץצקרשת‎‏����������������������������������	��������������������������� p 	��bp!	�����������������������������!	����""( "h!�!�!(0,"8HPXj4"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿEp"����������������	������������������������������������������a|$	�����t%	����%�l%�%�%(08HPX'�%€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨͧĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸE�%���������������������������������	�����'	���������������������������������������������`�(��	��������������������������
\)	��������������������)	��0*<*(D*�(T)�)(*(0P*8HPX&X*€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู	฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛�*���������������������������������	�,	�����������������������������������������������������������a-����������������������������	�..�.��.-�.08HPX�.€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’E�.���������������������������������	������������������������0	���������������������@�1��	�����������������������<2	��������������������������2	����343(<3�142�23(0H38HPX&P3€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿE�3���������������������������������	������H�5����������������	�������������������������������������������H6	�����@7	����� `7	������P �7��	������� �7������	� �7	��!8�7�7�78X!8@687X7|7(4808HPX�!<8€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿE|8������������������������������������	���������������������"�:	��������"x;	�#�;�;W#�;p;��;(0�;8HPX�#�;€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄąŁ€„Чš©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿE<���������������������������������	����������$>���	��������������������������������������������$�>	������������%�?	���������������������V%�?	�����%8@	���%X@h@�;�p@�>�?�?0@P@(0�@8HPX&�@€	…‘’“”•–— กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛'�@	�(`B	��������W(tB	�#�B�B�B��BlB�.0�B8HPX�(�B€	‚„…†‡‰Š‹ŚŤŽŹ‘’“”•–—™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙�)C	�������������������*E	��������������������XE	��������������������������������F�E	������HF	����������������*lF	�+�F�F�B�FX+�FPE4�E@FdF(0�F8HPX�+�FЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—	™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяE,G	����������������,8I	����������������������������������������������������������������I����������������	����������������J	���,K	�#,K	��-@K�F8KPKX+XK|I�JK$K(0lK8HPXW-tK€	‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿN.�K	��������������������������������P/�M	��������"@N	��/lN	���/�N8N�dNxN�N(0�F8HPX0�N€	‚ƒ„…†‡‰‹‘’“”•–—™› ΅Ά£¤¥¦§¨©«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ
1�N	���������������������2�P	���������������������������������������������������������Q	����������������Q2�QDR�B�FX+LRQxN�Q\(0`R8HPX�2hR€	‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ�3�R	��������4�T8Nl%�%�TxN�N(0�F8HPX�4�T€	‚ƒ„…†‡ˆ‰‹‘’“”•–—˜™› ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֻּֽ־ֿ׀ׁׂ׃װױײ׳״אבגדהוזחטיךכלםמןנסעףפץצקרשת‎‏�5U	������������������������������6�V	���������������	7HW����	��������������������������������K7�W	������������������74X	���7�X�X�X�FX+�X	��������������������������������������������8�X����	����������������������S8 YY\Y�8dY@W�!xN�N�W,X(0�X8tYHPX�8|Y€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ےE�Y	�����������������������������9�[	���������������:T\	��R:�\�:,K	�������������������������������\�������������������	���:D]	��������;�]	��Z;�]	��������������������;�]D^�B�FX+L^L\�\�\xN�\<]�]�]�](0`^8HPX�;h^€	‚„…†‡‰‹¨ˇ¸‘’“”•–—™›¯˛ ¢£¤¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙�<�^	����������������������������=�`	���aa42�23,a(0�F8HPX�+4aÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ Exa	������������������>�c	�����������������������������������[>�c	��/xd	���������>�d�	����>�d	�!?�d	�c?�d	�����?e	�����?$e	���)@De�	����������k@`e	������������������������������@�e�	���������@ f�d�de<eXe�efLf1ATf�cpd�d�d�d(0|f8HPXsA�fĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£Ø×¤ĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ E�f	�����������������������jB�h	���������������������@@i��	������������������������i	�������������������������j	�����j	��B�j	������������B�j�j�j�e�jLf0C�j8i�ij|j(0k8HPX&kΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ EXk	�����rCdm	��C�m	�����������������������������������������������������C�m���������������	|n	��8D�n	���zD�n�d�n�n�efLf�D�n�m�mtn�n(0o8HPX�D$oÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ Edo	������������Epq	���������������������������������q	��������������������8r	��������������������������������F�r	������(s�	������7FLs�e�jpsyFxs�q0r�r sDs(0�s8HPX�+�sђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ E�s	�������F�u	���������������������������������������������������������������v����������������	���������������w	��w�w�e�jps�F�wvw�w(0�w8HPX��wÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ	ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ×ÚÛÙìÿ¯´­±¾¶§÷¸°¨·¹³²■ ?Gx	��������������������������������P/z����������������	������������������������������������������a�z	������{	����{�z�{�{�{(0�s8HPX&�{ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñѪº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ E|	�����������������AH~����	�����������������������������������Hp~	���H�d�de<e(�efLf1A0h~�d�d(0X8HPX�D`ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ E�	��������������I��	���������������������������������������II�����d�d�d(0|f8HPXsA��אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ E�	���������I�	���������������������������� ��c��d�d�d��(0|f8HPX�I��ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ E�	������������������������J��	�����������������������������K\�	�HK���de<eXe�efLf�K��T�܈�d�d�d(0 �8HPXsA(�ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ El�	�����������������Kx�	�������������������������������������Lȋ��d��d�d�d(0|f8HPXsAl�АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ E��	����PL��	�����������������������������������������������������L܎����������������	�����L���d��n�efLfM$�Ԏ���(0@�8HPX�H�	Ά·¬¦‘’Έ―ΉΊΪΌΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ XM��	����������������ZNp�	��������������������������������������������������������������������������	��	���a����e�jps�N������(00�8HPX�N8�ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊	©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸ÊæˇEt�	������������������������O������������������	����������������������������������������P�	�������YPܗ	�������P�	��/0�	�����PD��	(d�	��������������Qx�	�_��	��aQԘ	��������Q�	�����Q�	�'R8���̘��0�D�iRL��ԗ�(�<�\�p�(0l�8HPX�Rt�АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤E��	���������������S̛	��C�	���������������������������������������������������������������(�����������������	���������������0�	�����������S��	��-�	����&T��� �0�hT(�� �<�(���(0@�8HPX�TH�Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ	E��	�������������������U��	����������������������U�	�%VT�	���������������������������������������������������������gVh����������������	\�	�����������V��	�+�آ�0��V��L�`�T���(0�8HPX-W�ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ	ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇET�	������������������������$X`������������������������	����������������������������������������GХ	�fXܦ	����X�	���������X��	(<�	�����������,YP�	��������Q����̘���0�D�iR��ȥԦ��<�4�H�(0ا8HPX�R�ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ	ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇE,�����������������	�����������������������������������������nY8�	����������������*,�p�̘���0�D�iRx�	���Y����#��ȥ$���<�4�H�(0��8īHPX�Y̫ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ	ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇE�������	������������������������������������������������Z(�	���+[�	�������m[(�ȥ� �L�<�4�H�(0��8HPX�RT�ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ	ÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ�[��	������������������������\��	������	������\4�	�������������5]X������0�D�w]���$�,�P�<�4�H�(0��8HPX�R��АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤E�	��������������]�	���,\�	����]t�����0�hT��T� �<�(���l�(0��8HPX=^��─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪE��	�����4_��Cxd	����������������������������������������������������v_0�����������������	�����_�	���,p�	��8D��	���zD��	���H���	����������k@Թ	����������������������_��	���������@t�����̹�l���<`�� �(��h���(0Ⱥ8HPX~`к─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪE�	�������������������������������������������������ua �����������������	��a�	������������������������������@H�����̹�ľ��<`̾ �(��@�(0�8HPX�a�	กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛�b4��.08HPXL��ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ E�	��������������������������������P/������������������������������������������������������������������Gh�	�fXt�	�HK�����e�jps�N��`�l����d(0��8HPX�c���������������	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~���	

 !"#$%&'()*+,-./0123456789:;<=>?@�			
��	

 !"""#""$%""""&""'"""(""")"""""""��	

 ��	

��	

 !���												
		
�	

 !"#$%&'()*+,-.&/0123456789:;<=&>?@A&BCDEFGHIJKLM&NOPQRSTUVWXYZ[\]^_&`abcdefghijk&lmnopqrstuvwxyz��	

 !""#$""%&""""'""(")*+,"-.""""/""��	

 !"#$%&'()*+,-./0��	

��	����	

 !"""#""$%""""&"'(""")"""*"""""""��	

 !"#$%&��	

��	

����	

 !""""""#"""""$""""""""""""""""""��	

 !"#$%&'()*+,-./0123456789:;<=>?��	

�����	
�	

 !"""#"""""""$%"""""""""""""&"""'"()*+,-./0123456789:;<=>?@A"""""BCDEFGHIJKLMNOPQRST"""""""""""""��	

 !"""#""""""""$""""""""""""""""""��	

��	

�	


�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR/STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~/��	

 !""#""$%&'"()*""+,-."""/"""0"1""����	

 !"#$%&'()*+,-./0123456789��	

�������	

�	

 !"#$%&'()*+,-./0123456789:;<=>?""""""""""""""""""""""""""""""""@ABCDEFGHIJKLMNOPQRSTUVWXYZ[""\]"��	

 !"#$%&'()*"+,-./0123456789":;<="����	

�����	
��	

 !"#$%&'()*+,-./0123456789:;�����	
��	

 !""""""#"""""$""%""""""&""""""""��	

 !"#$%&'()*+,-.��	

���	

�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxy\\\\��	

 !"""""""""""""""""""""""""""""""��	

 !"#$%&'()*+,-./0123456789:;<��	

���	��	

 !"#$%"&'"(")*+,"-./0"123"4"5678"��	

��	

��	

����	

 !""#"""$"%"""&'"""""""("""""""""��	

 !"#$%&'()*+,-./0123456789:;��������	�������											
		
��	

 !"#$%&%'%()*+,-./012%345%678%%%9�������	
��	

 !""""""#"$"%"&""'("""")*"""+""""��	

 !"#$%&'()*+,-./��	

��	

�����	
												


�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab����	�			
�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|��	

��	

�����	
												


��	

�����	

�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|��	

 !�����	
												


�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop��	

��	

�	

�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz���	













�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij��	

��	

��	

 !"#$%��	

����	

��	

���	












��	

��	

������	

��	����	

�	













�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu��	

��	

��	

 !"#$��	��������������	
��	

��	
��	�	
												


��	

����	
��������	

 !"#$%&'()*+,-./012345�������	

��	
���������	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgVhijklmnopqVrstuvwxyz{|}~��	

��	

 !"#$%&'����	

��	

 !"#$%&'(��	�	













��	

��	

����	��	

��	

 !"#$%&����	

 !"#$%&'()*+,-./012345��	

���	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx��	

���	
��	

��	

 !"#$%&'()*+,-./0123456789��������	

�����������	

��	

��	
�����	
												


��	

��	

����	

 !"#$%&'()*+,-./0123456789:��	
���	
												


��	

������	��	
��	

 !"#$%&'()*+,-./0123456789:���	

��	

 !"#$%&'()*+,-./0123456�����	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuqvwxyz{|}~��	

����	

����	

���	













����	

 !"#$%&'()*+,-./012345��	

��	

���	
												


��	

 !"#$%&'()*+,-./012��	

�	

�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX�	

; ���<���d���|zRx�$���0FJw�?:*3$"D��� \P��H�GNU��.P.`k!�3�3x��d�5?1�3�3�u��d�5?1�3�3�s��d�5?1�3�3hq��d�5?1�3�3����d�5?1�3�3����d�5?1�3�3���d�5?1�3�3����d�5?1�3�3,���d�5?1�3�3���d�5?1�3�3���d�5?1�3�3����d�5?1�3�3���d�5?1�3�3���d�5?1�3�3���d�5?1�3�3����d�5?1�34����d�5?14�3 ���d�5?1�34���d�5?14�30���d�5?1�34$���d�5?14�3X���d�5?1�3#4L���d�5?1#4�3����d�5?1�3,4����d�5?1,4�3ě��d�5?1�384����d�5?184�3x���d�5?1�3D4l���d�5?1D4�3h���d�5?1�3K4|���d�5?1K4�3����d�5?1�3R4����d�5?1R4�3p���d�5?1�3Y4d���d�5?1Y4�3���d�5?1�3`4܅��d�5?1`4�3���d�5?1�3g4܂��d�5?1g4�3����d�5?1�3n4���d�5?1n4�3~��d�5?1�3u4|��d�5?1u4�3z��d�5?1�3|4x��d�5?1|4�3�u��d�5?1�3�4�s��d�5?1�4�3hq��d�5?1�3�4\o��d�5?1�4�3\m��d�5?1�3�4Pk��d�5?1�4�3�h��d�5?1�3�4�f��d�5?1�4�3|c��d�5?1�3�4pa��d�5?1�4�3�`��d�5?1�3�4�^��d�5?1�4�3�[��d�5?1�3�4�Y��d�5?1�4�3�V��d�5?1�3�4U��d�5?1�4�3�T��d�5?1�3�4�R��d�5?1�4�3�P��d�5?1�3�4�N��d�5?1�4�3�M��d�5?1�3�4�K��d�5?1�4�30I��d�5?1�3�4$G��d�5?1�4�3�D��d�5?1�35�B��d�5?15�3XB��d�5?1�35�@��d�5?15�3>��d�5?1�35<��d�5?15�3�:��d�5?1�3+5t8��d�5?1+5�3�5��d�5?1�375�3��d�5?175�3�0��d�5?1�3C5�.��d�5?1C5�3�,��d�5?1�3O5�*��d�5?1O5�3�'��d�5?1�3[5�%��d�5?1[5�3t$��d�5?1�3f5h"��d�5?1f5�3h ��d�5?1�3q5���d�5?1q5�3<��d�5?1�3|58��d�5?1|5�3���d�5?1�3�5(��d�5?1�5�3���d�5?1�3�5���d�5?1�5�3���d�5?1�3�5�
��d�5?1�5�3|��d�5?1�3�5�	��d�5?1�5�3���d�5?1�3�5���d�5?1�5�3���d�5?1�3�5���d�5?1�5�3���d�5?1�3�5���d�5?1�5�3��d�5?1}������p-
�3Pk!Xk!���o`��
�!0@-�h(	���o����o�o����o���!�-�-GA$3a1p-�3GA$3p1067�.�3GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignsingle_byte.so-2.2.10-35.el8.x86_64.debugu�\��7zXZ�ִF!t/��]?�E�h=��ڊ�2N��!���4v!͕�d<��Ss���!�Z<Y�|���B�ʕ��{l;�o�LU!J���^k�3.�Ź�
��tP���2��L�pCi��p{��2'��I���� O#�����!���Z�>8|2X�T�
zCB��迌�9Y�Sژ�M��f�����/��|���>ZA5����as�͘
��E��2xTq _m�0s�on��uw�_�3j\���5�@ˌ8GO7�tR��,�8������!�	6�ᢅ��|j��BMn�B�<6���c�S����a��gc����ܥ
p��&��1�/ڍPٟC��k^��t��2R���/r�iH�G��T���x��0�x��o�O.��:�]�{�[j�z�!�Y�S�,,�5AS�
�q+T�;��%j�DFR�U��vQ��
�pPƋg���9v>�T_U9:�
�>��0A��*�5��O��T�<�Q�p��f��d���]Gk�.�ʩ��%N��v}�����K�bF���h�E"|@�la�����]�&����WR*_�
��0��L�l�v��1��x3I��~̒��[���
��͓vj�o>�����If�1�RX���F��_�5)�>�����!
`&�OK0Α�ْ�r��ӳ��,����/�S{W�\��h�cIpH
E'�\?����\�K�m%#��;&cߖv��1v%j`�fZ�4G�6�J8���<��Bh���G'�um E�B��DU��5#|���Ӓ�BaNi�;�*-�����\�v��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T��h(^B@-@-0hp-p-c�-�-0n�-�- w�-�-�}�3�3
��3�3	, ��_�_$��_�_x�h`h` �Pk!Pk�Xk!Xk�`k!`k`B ���!�� ��!� ��!�(�(�!(��0�a(��
 �0P�X��+lib64/ruby/2.2.0/x86_64-linux/enc/trans/emoji.so000075500000147000150402105760014546 0ustar00ELF>�
@��@8	@�� �� � 
 
 ���� ��   888$$���  S�td���  P�tdP�P�P�$$Q�tdR�td�� � �	�	GNU�F�w=�-gL��τ�pE�ʥ�Q BE���|�qX
� ` , F"�(� �0� �(� U`�__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_emojirb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�� P�  �  � @�  H� &X� �jh� `�  � 4�� �j� `��  �� >�� �j�� ` � &(�  8� �jH� `�� &ȸ 4ظ �j� ``� &h� >x� �j�� `� 4�  � �j(� `�� 4�� &�� �jȺ `@� 4H� >X� �jh� `� >�  �� �j� `�� >�� &�� �j�� ` � >(� 48� �jH� `� � � �� �  � ��H��H��� H��t��H����5�� �%�� ��h�������h���������%�� D���%�� DH�=�� H�z� H9�tH�&� H��t	�����H�=Q� H�5J� H)�H��H��H��?H�H�tH��� H��t��fD�����=
� u+UH�=Ҵ H��tH�=� �Y����d����� ]������w������H��H�=�� ����H�=� ����H�=Y� ��H�=�� ���H�=� ����H�=U� ����H�=�� ����H�=�� ���H�=Q� ���H�=�� ���H�=�� ���H�=M� H�������H��H���UTF-8UTF8-SoftBankUTF8-KDDIUTF8-DoCoMoBd�0	�H	
L	L	t����@D��� ( [PP�P (HX`h�p��	��	��	X	�'Q)\�	����P�� (4X`h�<☀☁�l☔⛄⚡	♈♉♊♋♌♍♎♏♐♑♒♓⚾⛳⚽Ⓜ✈⛽���☕✂↗��	☎♥♠♦♣✌↘↖♿⛵↙✒0�	✉↩mQn�o�prQs�t�uwQx�y❤⤴♨r8	⤵	❢⁉‼〰✏⌚©™㊙♻®⚠↔↕��		-�	|�0	�	�	�	�	 (
X`h�
	o@
	Ѽ��
	��	<	~�	�
	�
	D	2�l	��		@	S	�	�	�	�	H	2
�	[
	�
�	Ѽ�
�	!�	c`�
x�
�
d�8��@����X��	�`	)�	kD�<��� (XX`h�	�
<	��(�	q�	�x	�H	7�	y`	��	��	?�	�'��	�$	X	�`	Gl 	�'�<!	��!	��
�!	O�"	��#��p@�X����PXd 4!�!�!�"�#�$��$	�%	�%	W&�%�%�&��& (%�&X`h��&	❇✴♿�'	⚠❢⛔⛄⚡☀❄⭐☔☁⛅♈♉♊♋♌♍♎♏♐♑♒♓✏���⚓✈⛵⚽⚾♨�4'	�㊙☝☺�'	✂✉Qn�o�prQs�t�uwQx◀▶▫▪ℹ◽◾◻◼⚪⚫✳⬆h�'⬇	⬜⬛↖↘™✖➡⬅↗↙✔©®↪↩⛽;⌚⌛�P(	   ❤☎☕⛳♠♦♣✌�y⛪��(	⛲⛺���Q^�`7�(	���㊗♥⭕�)	у�<)	☑✒��ј�Q���⤴⤵⁉‼P)	♻↔↕��)	m��)	⛲⛺���Q^�`���㊗♥�)	⭕M�)	у��ј�Q���⤴⤵⁉‼�*	♻↔�D*↕	m`*	❇✴♿⚠❢⛔⛄⚡☀❄⭐☔☁⛅♈♉♊♋♌♍♎♏♐♑♒♓✏���U|*	⚓✈⛵⚽⚾♨��+	㊙☝☺✂✉Qn�o�,+,'�'�'H(�(�()4)H)�)�)�)�)*<*X*t*�*$+T+�\+�prQs�t�uwQx	◀▶▫▪ℹ◽◾◻◼⚪⚫✳⬆⬇⬜⬛↖↘™✖➡⬅↗↙✔©®↪↩�+	⛽;⌚⌛   ❤☎☕⛳♠♦]`,♣	✌�y☑✒⛪��,X,�,�,��, (�+�,X`h��,	� -	#�-	e4.	��.	�/	+�/	m�/	�t0	��0	3412	uT1�-,.�./�/�/l0�0,1L1�1��1 (�1X`h��1��1	;�2	}H3	�D4	�4	C�5�6�7		P7	KX8	��8�2@3<4�4�5�57H7P8�8p9�x9 (�9X`h��9	☎☝✌⛳⚾⚽⛵✈❢❤⛪⛽��9	☕⛄☁☀☔ (:	⛲⛺♨〽���⚡S P:	���� |:	✴✳♿♥♦♠♣m���Qn�o�prQs�t�uwQx�y���⬆⬇➡⬅↗↖↘↙▶◀♈� �:♉♊♋♌♍♎♏♐♑♒♓	©®⚠!$;	㊗✂㊙⭐⭕[!p;�!�		☺�!�;!"�		�;у��ј�Q^�`Q���™c"�; :H:t:�:;h;�;�;�;�;�;�< (4<X`h�<<�"l<	�"�<)#�<	k#�<	�#�<�#�<	1$=s$,=	�$@=�$�		9%\={%�=�%�=Ѽ	�%>	A&8>	�&t>	�&�>'�>I'@=	�'�>�<�<�<�<=$=8=L=T=�=�=>0>l>�>�>�>�>�>�'�>	(D?	Q(\?T?l?�(t?�(@=)@=	Y)�?	�)�?�)@=	*�?a*@=	�*@	�*d@	'+�@	2i+ A	�+pA	�+�A	/,B	q,�B	�,�B�,C	7-0C	y-HC	�-�C�-D�?�?�?�?�?@@\@�@AhA�AB|B�BC(C@C�CD$D?.,D �D�.�D|< <?�?(�D`h�.�D�"�D�/�D)#Ek#(E�#@E�#pE�/�Es$�E.0�Ep0�E�0F{%4F�0�F61�Fx1�F�1<G	�1hG'�G>2�G�'�GE E8EhE�E�E�E�E�E,F�F�F�F4G`G�G�G�G�G�'�G�2@=Q(HH@HXH�(`H�(xH)�H�2�H	3�H	F3�H�3(I	�3@I4�I	N4�J�4�K	�4L	5�L	V5�M�5�N	�5xO�,4P	6HPt^6lP	�6LQ�-�Q�H�H�H�H�? I8I�I�J�KL�L�M�NpO,P@PdPDQ�Q�Q?.�Q 4R�.<R�D 8HpH(HR`h�.PR�"�R�6@=)#@=	k#�R	$7�Rf7@=	�7�Rs$S.0(S�7DS	�0`S	{%�S�%�S��61T	,8LT	n8�T	�8�T'�T>2�T�'U�R�R�R�R�RS S<SXS�S�STDT�T�T�T�TU$U�',U	(�UQ(�U�U�U�(�U�(�U�2�U	�8V	494V	�3tV	v9�V	�9�V	�9�W	<:8X	~:�X	�:<Y�'	;Z	D;�Z	�;P[�;�[	
<�[Q)	L<\	�<�\�-@]�U�?�U,V�?lV�V�V�W0X�X4YZ�ZH[�[�[\�\8]L]?.T] �]�.�]�R �U�U(�]`h�.�]����������	

 !"#$%&'()*+,-./0123456789:;<=>��	

 !"#$%&!!!!!!'!()!!!*!!!!!!+!!!!!��	

 !"#$%&'()*+,-.��	




 !"#$%&'()*+
,-./0123
4
56789��	

�������	��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&��	

 !"#$%&��	

 !"#$%&'()*��	

��	

��	

��	

#⃣1⃣2⃣3⃣4⃣5⃣6⃣7⃣8⃣9⃣0⃣��	

����	

��	

 !"#$%&'()*+,-./0123456��	

 !"""#��	

 !""#��	



��	

 !"#$%&'()*+��	

��	





��	

��	

��	


����	

��	

��	

��		

��	
��	

 !"#$%&'()*+,-,./01234��	

 !"#$%&'()*)+,-��	

 !"#$%%%��	

��	




��	

��	

 !"#$%&'''���			
��	

��	



 !"#$%&'()*+,-./01234
56789:;��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-.-.---.//01��			

��	

 !"#$%&'()��	

 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!��	

 !"#$%&'()*+,-./0123456789:;<=>?@��	

 !"#$%&'()*+,-./0123456789:;*<***��	

 !"#$%&'()��	


��	
















































��	

 !"#$%&'()*+,-./0123456789:;<=>?��	

 !"#$%&'()*+,-./0.............111��	

��	
��	

 !"#$%&'()*+,-./01232456789��	

 !"#$%&'()*+,-./01234356789��	

 !"#$%&'()*+,-./01234555��	








��	

��	

 !"#$%&'()*+,---����	

 ��🇯🇵��	

��	

🇺🇸��	

��🇪🇸🇷🇺����🇫🇷��	
🇩🇪🇮🇹🇺🇰🇨🇳🇰🇷������	
����	
������	

����			��	

 !"#$%&��	

����	


 !!!!!!!!!!!!"#
$%%&
'
()*+,-��	
	
��		
		
																								 !��	

��	

 !��	

��	

����	
















 !
"



#
$
����	
��	
��	

 !"############$%&'(()*+,-./012��	

��	

 !"#$%&''()*+ ,-./0123456  789:;<��	

��	

 !"#$%&'()*+,-./0123456789:��	









��	

 !"#$%&'(()*+,-./01234/56789:;<=>��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?��	

��	

 ! "#$%&'()*+,-./01234��	

��������	

 !��	

����������	

����������	��������������	

������	
������������	

����������������������	


��	


��	


��	

��	

��	

��	







��	



��	




������		




��	

����	

���	


����������	����	
��	

������������	
������	

 !��	

 !"#$%&'()*+,-./0123456789:��	

 !"#$%&'()*+,-./012��	

��	

 !"#$%&#'()*��	

  !"#$#$%&'()*+,-./01234567��	


 !"#$%&'()*+,-./01**2345678��	

 !"##$%&'()*+,,*,-./01,23,4567,,,��	

  !"##$#%&'()*+,����	


 !!!!!"#$%&'()*+,-./012345!��	

������������	

��	����	��	

��	


��	


 !"""#$



��	

 !"#$%&'$()��	


��	


 !"#��	

 !"#$%&'()*+,-./0123��	

 !"##$%&'()*))((+,-.//0��	


��	

��	

����	

	 !!!!!	
	"#$%%%&'(!��	

;$c��@0c��hd���zRx�$�b��0FJw�?:*3$"D�b�� \�c���H�GNU�P �  &�]�j�<`� 4�R�j�<`� >�D�j�<`�& d<�j�<`�&4�9�j�<`�&>�1�j�<`�4 -�j�<`�4&'�j�<`�4>4�j�<`�> 8
�j�<`�>&d�j�<`�>4��j�<`�w������(

�� � ���o`��
� 0�	�(	���o����o�o����o3�� `
p
GA$3a1(
	GA$3p1067`�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignemoji.so-2.2.10-35.el8.x86_64.debug*�4Q�7zXZ�ִF!t/��]?�E�h=��ڊ�2N�HC�. ��)�I���� �Q�{�H�b&9�~vTf���2Q�e��ґ��Y$^����*�b�>D�jm'�����=N	JY�C�y�(�-*B2$r���$yr���J;��[1�t�
�o���ആ:v�B0S���,"���hy@T:r5)��,��#װ��H�!��:��:��i��6�a7'*�
���!5,�­�׌$��Sっ�0�?�b�T�k��[�cH�.E����*�^|H���0]�5�`���%}<b�.�ī0|�W�u'L��+�I8�t������o�q�W���̀��7QT'�q�d\��t�Q��'�)�=��U�i����E����YßJ�>fo�Tl��J�S^Q����T*�7��X6��-��v.L*9T�$���`��N�<0�v��Hy���C���.�3�����.:�]��>�:��ӏ�Jf"?�MD8=�nQ������&[n)��F٦X�S�O�-m���2�x��Ɏ�=�1��N{��R�d��pp�B���4�P�ތM��.��K{0[���v��ZR�5E����3<`lG�p�6�t�!o6jE/�Ћ�]AN�p�w�ƃ�K�
(��?l%W��n�*��p�lRe�\������=n�%[��o˭�Y,�=2ꈅ�̣ص��!#����r�x-lx:���)}��O�a��+�?k�>5%w��T��;ɽf��Wd6�1��x���G��M�{������{��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T��(^B�	�	0h(
(
cP
P
0n�
�
 w�
�
\}��
�  0� �P�P�$�x�x�t��� �� ��� �� �  �� ��� �� �� � �� �(�(� (��0�`(��
 �(H�H��+lib64/ruby/2.2.0/x86_64-linux/enc/trans/gbk.so000075500000576770150402105760014232 0ustar00ELF>�@��@8	@���� P�P�"P�"�� ����"��"  888$$������  S�td������  P�td���$$Q�tdR�tdP�P�"P�"��GNU���g��#{:Fp�b�U��P 	BE���|͸U��qX ^ , F"�(�"�0�"U�$�(�"__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_gbkrb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�P�"�X�"P`�"`�"��"���"���"����" �"�(�"�8�"��H�"��"��"��"��"�" �"��H��H�q�"H��t��H����5r�"�%s�"��h�������h���������%M�"D���%E�"DH�=A�"H�:�"H9�tH���"H��t	�����H�=�"H�5
�"H)�H��H��H��?H�H�tH���"H��t��fD�����=��"u+UH�=��"H��tH�=��"�Y����d������"]������w������H��H�=q�"����H�=��"H�������H��H���UTF-8GBK丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪乫乬乭乮乯乲乴乵乶乷乸乹乺乻乼乽乿亀亁亂亃亄亅亇亊亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂伃伄伅伆伇伈伋伌伒伓伔伕伖伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾伿佀佁佂佄佅佇佈佉佊佋佌佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢侤侫侭侰侱侲侳侴侶侷侸侹侺侻侼侽侾俀俁係俆俇俈俉俋俌俍俒俓俔俕俖俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅倆倇倈倉倊個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸倹倻倽倿偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫傭傮傯傰傱傳傴債傶傷傸傹傼傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢儣儤儥儦儧儨儩優儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兎兏児兒兓兗兘兙兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦冧冨冩冪冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒凓凔凕凖凗凘凙凚凜凞凟凢凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄剅剆則剈剉剋剎剏剒剓剕剗剘剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剴創剶剷剸剹剺剻剼剾劀劃劄劅劆劇劉劊劋劌劍劎劏劑劒劔劕劖劗劘劙劚劜劤劥劦劧劮劯劰労劵劶劷劸効劺劻劼劽勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務勚勛勜勝勞勠勡勢勣勥勦勧勨勩勪勫勬勭勮勯勱勲勳勴勵勶勷勸勻勼勽匁匂匃匄匇匉匊匋匌匎	匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯匰匱匲匳匴匵匶匷匸匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏厐厑厒厓厔厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯厰厱厲厳厴厵厷厸厹厺厼厽厾叀參叄叅叆叇収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝呞呟呠呡呣呥呧呩呪呫呬呭呮呯呰呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠員哢哣哤哫哬哯哰哱哴哵哶哷哸哹哻哾唀唂唃唄唅唈唊唋唌唍唎唒唓唕唖唗唘唙唚唜唝唞唟唡唥唦唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋啌啍啎問啑啒啓啔啗啘啙啚啛啝啞啟啠啢啣啨啩啫啯啰啱啲啳啴啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠喡喢喣喤喥喦喨喩喪喫喬喭單喯喰喲喴営喸喺喼喿嗀嗁嗂嗃嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗嗘嗙嗚嗛嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸嗹嗺嗻嗼嗿嘂嘃嘄嘅嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀噁噂噃噄噅噆噇噈噉噊噋噏噐噑噒噓噕噖噚噛噝噞噟噠噡噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽噾噿嚀嚁嚂嚃嚄嚇嚈嚉嚊嚋嚌嚍嚐嚑嚒嚔嚕嚖嚗嚘嚙嚚嚛嚜嚝嚞嚟嚠嚡嚢嚤嚥嚦嚧嚨嚩嚪嚫嚬嚭嚮嚰嚱嚲嚳嚴嚵嚶嚸嚹嚺嚻嚽嚾嚿囀囁囂囃囄囅囆囇囈囉囋囌囍囎囏囐囑囒囓囕囖囘囙囜団囥囦囧囨囩囪囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國圌圍圎圏圐圑園圓圔圕圖圗團圙圚圛圝圞圠圡圢圤圥圦圧圫圱圲圴圵圶圷圸圼圽圿坁坃坄坅坆坈坉坋坒坓坔坕坖坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀垁垇垈垉垊垍垎垏垐垑垔垕垖垗垘垙垚垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹垺垻垼垽垾垿埀埁埄埅埆埇埈埉埊埌埍埐埑埓埖埗埛埜埞埡埢埣埥埦埧埨埩埪埫埬埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥堦堧堨堩堫堬堭堮堯報堲堳場堶堷堸堹堺堻堼堽堾堿塀塁塂塃塅塆塇塈塉塊塋塎塏塐塒塓塕塖塗塙塚塛塜塝塟塠塡塢塣塤塦塧塨塩塪塭塮塯塰塱塲塳塴塵塶塷塸塹塺塻塼塽塿墂墄墆墇墈墊墋墌墍墎墏墐墑墔墕墖増墘墛墜墝墠墡墢墣墤墥墦墧墪墫墬墭墮墯墰墱墲墳墴墵墶墷墸墹墺墻墽墾墿壀壂壃壄壆壇壈壉壊壋壌壍壎壏壐壒壓壔壖壗壘壙壚壛壜壝壞壟壠壡壢壣壥壦壧壨壩壪壭壯壱売壴壵壷壸壺壻壼壽壾壿夀夁夃夅夆夈変夊夋夌夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻 夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛奜奝奞奟奡奣奤奦奧奨奩奪奫奬奭奮奯奰奱奲奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦妧妬妭妰妱妳妴妵妶妷妸妺妼妽妿姀姁姂姃姄姅姇姈姉姌姍姎姏姕姖姙姛姞姟姠姡姢姤姦姧姩姪姫姭姮姯姰姱姲姳姴姵姶姷姸姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪娫娬娭娮娯娰娳娵娷娸娹娺娻娽娾娿婁婂婃婄婅婇婈婋婌婍婎婏婐婑婒婓婔婖婗婘婙婛婜婝婞婟婠$婡婣婤婥婦婨婩婫婬婭婮婯婰婱婲婳婸婹婻婼婽婾媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媓媔媕媖媗媘媙媜媝媞媟媠媡媢媣媤媥媦媧媨媩媫媬媭媮媯媰媱媴媶媷媹媺媻媼媽媿嫀嫃嫄嫅嫆嫇嫈嫊嫋嫍嫎嫏嫐嫑嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬嫭嫮嫯嫰嫲嫳嫴嫵嫶嫷嫸嫹嫺嫻嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇嬈嬊嬋嬌嬍嬎嬏嬐嬑嬒嬓嬔嬕嬘嬙嬚嬛嬜嬝嬞嬟嬠嬡嬢嬣嬤嬥嬦嬧嬨嬩嬪嬫嬬嬭嬮嬯嬰嬱嬳嬵嬶嬸嬹嬺嬻嬼嬽嬾嬿孁孂孃孄孅孆孇(孈孉孊孋孌孍孎孏孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏寑寔寕寖寗寘寙寚寛寜寠寢寣實寧審寪寫寬寭寯寱寲寳寴寵寶寷寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧屨屩屪屫屬屭屰屲屳屴屵屶屷屸屻屼屽屾岀岃岄岅岆岇岉岊岋岎岏岒岓岕岝岞岟岠岡岤岥岦岧岨,!岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅峆峇峈峉峊峌峍峎峏峐峑峓峔峕峖峗峘峚峛峜峝峞峟峠峢峣峧峩峫峬峮峯峱峲峳峴峵島峷峸峹峺峼峽峾峿崀崁崄崅崈崉崊崋崌崍崏崐崑崒崓崕崗崘崙崚崜崝崟崠崡崢崣崥崨崪崫崬崯崰崱崲崳崵崶崷崸崹崺崻崼崿嵀嵁嵂嵃嵄嵅嵆嵈嵉嵍嵎嵏嵐嵑嵒嵓嵔嵕嵖嵗嵙嵚嵜嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵪嵭嵮嵰嵱嵲嵳嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嶁嶃嶄嶅嶆嶇嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖嶗嶘嶚嶛嶜嶞嶟嶠0$嶡嶢嶣嶤嶥嶦嶧嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶸嶹嶺嶻嶼嶽嶾嶿巀巁巂巃巄巆巇巈巉巊巋巌巎巏巐巑巒巓巔巕巖巗巘巙巚巜巟巠巣巤巪巬巭巰巵巶巸巹巺巻巼巿帀帄帇帉帊帋帍帎帒帓帗帞帟帠帡帢帣帤帥帨帩帪師帬帯帰帲帳帴帵帶帹帺帾帿幀幁幃幆幇幈幉幊幋幍幎幏幐幑幒幓幖幗幘幙幚幜幝幟幠幣幤幥幦幧幨幩幪幫幬幭幮幯幰幱幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨庩庪庫庬庮庯庰庱庲庴庺庻庼庽庿廀廁廂廃廄廅4'廆廇廈廋廌廍廎廏廐廔廕廗廘廙廚廜廝廞廟廠廡廢廣廤廥廦廧廩廫廬廭廮廯廰廱廲廳廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤弨弫弬弮弰弲弳弴張弶強弸弻弽弾弿彁彂彃彄彅彆彇彈彉彊彋彌彍彎彏彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢徣徤徥徦徧復徫徬徯徰徱徲徳徴徶徸徹徺徻徾徿忀忁忂忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇8*怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰怱怲怳怴怶怷怸怹怺怽怾恀恄恅恆恇恈恉恊恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽悾悿惀惁惂惃惄惇惈惉惌惍惎惏惐惒惓惔惖惗惙惛惞惡惢惣惤惥惪惱惲惵惷惸惻惼惽惾惿愂愃愄愅愇愊愋愌愐愑愒愓愔愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬愭愮愯愰愱愲愳愴愵愶愷愸愹愺愻愼愽愾慀慁慂慃慄慅慆<-慇慉態慍慏慐慒慓慔慖慗慘慙慚慛慜慞慟慠慡慣慤慥慦慩慪慫慬慭慮慯慱慲慳慴慶慸慹慺慻慼慽慾慿憀憁憂憃憄憅憆憇憈憉憊憌憍憏憐憑憒憓憕憖憗憘憙憚憛憜憞憟憠憡憢憣憤憥憦憪憫憭憮憯憰憱憲憳憴憵憶憸憹憺憻憼憽憿懀懁懃懄懅懆懇應懌懍懎懏懐懓懕懖懗懘懙懚懛懜懝懞懟懠懡懢懣懤懥懧懨懩懪懫懬懭懮懯懰懱懲懳懴懶懷懸懹懺懻懼懽懾戀戁戂戃戄戅戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸戹戺戻戼扂扄扅扆扊@0扏扐払扖扗扙扚扜扝扞扟扠扡扢扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋抌抍抎抏抐抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳挴挵挶挷挸挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖捗捘捙捚捛捜捝捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙掚掛掜掝掞掟採掤掦掫掯掱掲掵掶掹掻掽掿揀D3揁揂揃揅揇揈揊揋揌揑揓揔揕揗揘揙揚換揜揝揟揢揤揥揦揧揨揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆搇搈搉搊損搎搑搒搕搖搗搘搙搚搝搟搢搣搤搥搧搨搩搫搮搯搰搱搲搳搵搶搷搸搹搻搼搾摀摂摃摉摋摌摍摎摏摐摑摓摕摖摗摙摚摛摜摝摟摠摡摢摣摤摥摦摨摪摫摬摮摯摰摱摲摳摴摵摶摷摻摼摽摾摿撀撁撃撆撈撉撊撋撌撍撎撏撐撓撔撗撘撚撛撜撝撟撠撡撢撣撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆擇擈擉擊擋擌擏擑擓擔擕擖擙據H6擛擜擝擟擠擡擣擥擧擨擩擪擫擬擭擮擯擰擱擲擳擴擵擶擷擸擹擺擻擼擽擾擿攁攂攃攄攅攆攇攈攊攋攌攍攎攏攐攑攓攔攕攖攗攙攚攛攜攝攞攟攠攡攢攣攤攦攧攨攩攪攬攭攰攱攲攳攷攺攼攽敀敁敂敃敄敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數敹敺敻敼敽敾敿斀斁斂斃斄斅斆斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱斲斳斴斵斶斷斸斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘旙旚旛旜旝旞旟旡旣旤旪旫L9旲旳旴旵旸旹旻旼旽旾旿昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷昸昹昺昻昽昿晀時晄晅晆晇晈晉晊晍晎晐晑晘晙晛晜晝晞晠晢晣晥晧晩晪晫晬晭晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘暙暚暛暜暞暟暠暡暢暣暤暥暦暩暪暫暬暭暯暰暱暲暳暵暶暷暸暺暻暼暽暿曀曁曂曃曄曅曆曇曈曉曊曋曌曍曎曏曐曑曒曓曔曕曖曗曘曚曞曟曠曡曢曣曤曥曧曨曪曫曬曭曮曯曱曵曶書曺曻曽朁朂會P<朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠朡朢朣朤朥朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗杘杙杚杛杝杢杣杤杦杧杫杬杮東杴杶杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹枺枻枼枽枾枿柀柂柅柆柇柈柉柊柋柌柍柎柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵柶柷柸柹柺査柼柾栁栂栃栄栆栍栐栒栔栕栘栙栚栛栜栞栟栠栢栣栤栥栦栧栨栫栬栭栮栯栰栱栴栵栶栺栻栿桇桋桍桏桒桖桗桘桙桚桛T?桜桝桞桟桪桬桭桮桯桰桱桲桳桵桸桹桺桻桼桽桾桿梀梂梄梇梈梉梊梋梌梍梎梐梑梒梔梕梖梘梙梚梛梜條梞梟梠梡梣梤梥梩梪梫梬梮梱梲梴梶梷梸梹梺梻梼梽梾梿棁棃棄棅棆棇棈棊棌棎棏棐棑棓棔棖棗棙棛棜棝棞棟棡棢棤棥棦棧棨棩棪棫棬棭棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆椇椈椉椊椌椏椑椓椔椕椖椗椘椙椚椛検椝椞椡椢椣椥椦椧椨椩椪椫椬椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃楄楅楆楇楈楉楊楋楌楍楎楏楐楑楒楓楕楖楘楙楛楜楟XB楡楢楤楥楧楨楩楪楬業楯楰楲楳楴極楶楺楻楽楾楿榁榃榅榊榋榌榎榏榐榑榒榓榖榗榙榚榝榞榟榠榡榢榣榤榥榦榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽榾榿槀槂槃槄槅槆槇槈槉構槍槏槑槒槓槕槖槗様槙槚槜槝槞槡槢槣槤槥槦槧槨槩槪槫槬槮槯槰槱槳槴槵槶槷槸槹槺槻槼槾樀樁樂樃樄樅樆樇樈樉樋樌樍樎樏樐樑樒樓樔樕樖標樚樛樜樝樞樠樢樣樤樥樦樧権樫樬樭樮樰樲樳樴樶樷樸樹樺樻樼樿橀橁橂橃橅橆橈橉橊橋橌橍橎橏橑橒橓橔橕橖橗橚\E橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮`H欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘dK汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊hN淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯lQ滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥pT濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙灚灛灜灝灟灠灡灢灣灤灥灦灧灨灩灪灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞炟炠炡炢炣炤炥炦炧炨炩炪炰炲炴炵炶為炾炿烄烅烆烇烉烋烌烍烎烏烐烑烒烓烔烕烖烗烚tW烜烝烞烠烡烢烣烥烪烮烰烱烲烳烴烵烶烸烺烻烼烾烿焀焁焂焃焄焅焆焇焈焋焌焍焎焏焑焒焔焗焛焜焝焞焟焠無焢焣焤焥焧焨焩焪焫焬焭焮焲焳焴焵焷焸焹焺焻焼焽焾焿煀煁煂煃煄煆煇煈煉煋煍煏煐煑煒煓煔煕煖煗煘煙煚煛煝煟煠煡煢煣煥煩煪煫煬煭煯煰煱煴煵煶煷煹煻煼煾煿熀熁熂熃熅熆熇熈熉熋熌熍熎熐熑熒熓熕熖熗熚熛熜熝熞熡熢熣熤熥熦熧熩熪熫熭熮熯熰熱熲熴熶熷熸熺熻熼熽熾熿燀燁燂燄燅燆燇燈燉燊燋燌燍燏燐燑燒燓xZ燖燗燘燙燚燛燜燝燞營燡燢燣燤燦燨燩燪燫燬燭燯燰燱燲燳燴燵燶燷燸燺燻燼燽燾燿爀爁爂爃爄爅爇爈爉爊爋爌爍爎爏爐爑爒爓爔爕爖爗爘爙爚爛爜爞爟爠爡爢爣爤爥爦爧爩爫爭爮爯爲爳爴爺爼爾牀牁牂牃牄牅牆牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅犆犇犈犉犌犎犐犑犓犔犕犖犗犘犙犚犛犜犝犞犠犡犢犣犤犥犦犧犨犩犪犫犮犱犲犳犵犺犻犼犽犾犿狀狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛|]	 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓��`	ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ�b	!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�`c	ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんC�d	ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶDf	ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω︵︶︹︺︿﹀︽︾﹁﹂﹃﹄︻︼︷︸︱︳︴��g	АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя��hˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▓▔▕▼▽◢◣◤◥☉⊕〒〝〞	āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑńňɡㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩG�i〡〢〣〤〥〦〧〨〩㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦	℡㈱‐ー゛゜ヽヾ〆ゝゞ﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡﹢﹣﹤﹥﹦﹨﹩﹪﹫〇─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋Pl狜狝狟狢狣狤狥狦狧狪狫狵狶狹狽狾狿猀猂猄猅猆猇猈猉猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀獁獂獃獄獅獆獇獈獉獊獋獌獎獏獑獓獔獕獖獘獙獚獛獜獝獞獟獡獢獣獤獥獦獧獨獩獪獫獮獰獱	��n獲獳獴獵獶獷獸獹獺獻獼獽獿玀玁玂玃玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣玤玥玦玧玨玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃珄珅珆珇珋珌珎珒珓珔珕珖珗珘珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳珴珵珶珷	�0p珸珹珺珻珼珽現珿琀琁琂琄琇琈琋琌琍琎琑琒琓琔琕琖琗琘琙琜琝琞琟琠琡琣琤琧琩琫琭琯琱琲琷琸琹琺琻琽琾琿瑀瑂瑃瑄瑅瑆瑇瑈瑉瑊瑋瑌瑍瑎瑏瑐瑑瑒瑓瑔瑖瑘瑝瑠瑡瑢瑣瑤瑥瑦瑧瑨瑩瑪瑫瑬瑮瑯瑱瑲瑳瑴瑵瑸瑹瑺	��q瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑璒璓璔璕璖璗璘璙璚璛璝璟璠璡璢璣璤璥璦璪璫璬璭璮璯環璱璲璳璴璵璶璷璸璹璻璼璽璾璿瓀瓁瓂瓃瓄瓅瓆瓇瓈瓉瓊瓋瓌瓍瓎瓏瓐瓑瓓瓔瓕瓖瓗瓘瓙瓚瓛瓝瓟瓡瓥瓧瓨瓩瓪瓫瓬瓭瓰瓱瓲	�Ps瓳瓵瓸瓹瓺瓻瓼瓽瓾甀甁甂甃甅甆甇甈甉甊甋甌甎甐甒甔甕甖甗甛甝甞甠甡產産甤甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘畝畞畟畠畡畢畣畤畧畨畩畫畬畭畮畯異畱畳畵當畷畺畻畼畽畾疀疁疂疄疅疇	��t疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦疧疨疩疪疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄	�pv癅癆癇癈癉癊癋癎癏癐癑癒癓癕癗癘癙癚癛癝癟癠癡癢癤癥癦癧癨癩癪癬癭癮癰癱癲癳癴癵癶癷癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛皜皝皞皟皠皡皢皣皥皦皧皨皩皪皫皬皭皯皰皳皵皶皷皸皹皺皻皼皽皾盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥x盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳{睝睞睟睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖~矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹 �笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈$�篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖(�籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕,�粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件0�紷紸紹紺紻紼紽紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸4�継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻8�緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀<�繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐@�罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿D�翤翧翨翪翫翬翭翯翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫H�聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸L�腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁P�臔臕臖臗臘臙臚臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗T�艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐X�茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠\�菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁`�葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳d�蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱h�薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔l�藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃p�虭虯虰虲虳虴虵虶虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威t�蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺x�螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓|�蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄��袬袮袯袰袲袳袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶��褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐��覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉��訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧��誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政��諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑��譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座	���谸谹谺谻谼谽谾谿豀豂豃豄豅豈豊豋豍豎豏豐豑豒豓豔豖豗豘豙豛豜豝豞豟豠豣豤豥豦豧豨豩豬豭豮豯豰豱豲豴豵豶豷豻豼豽豾豿貀貁貃貄貆貇貈貋貍貎貏貐貑貒貓貕貖貗貙貚貛貜貝貞貟負財貢貣貤貥貦貧貨販貪貫責貭亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝��貮貯貰貱貲貳貴貵貶買貸貹貺費貼貽貾貿賀賁賂賃賄賅賆資賈賉賊賋賌賍賎賏賐賑賒賓賔賕賖賗賘賙賚賛賜賝賞賟賠賡賢賣賤賥賦賧賨賩質賫賬賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿贀贁贂贃贄贅贆贇贈贉贊贋贌贍佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼��贎贏贐贑贒贓贔贕贖贗贘贙贚贛贜贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸赹赺赻赼赽赾赿趀趂趃趆趇趈趉趌趍趎趏趐趒趓趕趖趗趘趙趚趛趜趝趞趠趡趢趤趥趦趧趨趩趪趫趬趭趮趯趰趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺��跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾跿踀踁踂踃踄踆踇踈踋踍踎踐踑踒踓踕踖踗踘踙踚踛踜踠踡踤踥踦踧踨踫踭踰踲踳踴踶踷踸踻踼踾踿蹃蹅蹆蹌蹍蹎蹏蹐蹓蹔蹕蹖蹗蹘蹚蹛蹜蹝蹞蹟蹠蹡蹢蹣蹤蹥蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝��蹳蹵蹷蹸蹹蹺蹻蹽蹾躀躂躃躄躆躈躉躊躋躌躍躎躑躒躓躕躖躗躘躙躚躛躝躟躠躡躢躣躤躥躦躧躨躩躪躭躮躰躱躳躴躵躶躷躸躹躻躼躽躾躿軀軁軂軃軄軅軆軇軈軉車軋軌軍軏軐軑軒軓軔軕軖軗軘軙軚軛軜軝軞軟軠軡転軣軤堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥��軥軦軧軨軩軪軫軬軭軮軯軰軱軲軳軴軵軶軷軸軹軺軻軼軽軾軿輀輁輂較輄輅輆輇輈載輊輋輌輍輎輏輐輑輒輓輔輕輖輗輘輙輚輛輜輝輞輟輠輡輢輣輤輥輦輧輨輩輪輫輬輭輮輯輰輱輲輳輴輵輶輷輸輹輺輻輼輽輾輿轀轁轂轃轄荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺��轅轆轇轈轉轊轋轌轍轎轏轐轑轒轓轔轕轖轗轘轙轚轛轜轝轞轟轠轡轢轣轤轥轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆迉迊迋迌迍迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�這逜連逤逥逧逨逩逪逫逬逰週進逳逴逷逹逺逽逿遀遃遅遆遈遉遊運遌過達違遖遙遚遜遝遞遟遠遡遤遦遧適遪遫遬遯遰遱遲遳遶遷選遹遺遻遼遾邁還邅邆邇邉邊邌邍邎邏邐邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅鄆鄇鄈鄉鄊鄋鄌鄍鄎鄏鄐鄑鄒鄓鄔鄕鄖鄗鄘鄚鄛鄜鄝鄟鄠鄡鄤鄥鄦鄧鄨鄩鄪鄫鄬鄭鄮鄰鄲鄳鄴鄵鄶鄷鄸鄺鄻鄼鄽鄾鄿酀酁酂酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀醁醂醃醄醆醈醊醎醏醓醔醕醖醗醘醙醜醝醞醟醠醡醤醥醦醧醨醩醫醬醰醱醲醳醶醷醸醹醻醼醽醾醿釀釁釂釃釄釅釆釈釋釐釒釓釔釕釖釗釘釙釚釛針釞釟釠釡釢釣釤釥帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�釦釧釨釩釪釫釬釭釮釯釰釱釲釳釴釵釶釷釸釹釺釻釼釽釾釿鈀鈁鈂鈃鈄鈅鈆鈇鈈鈉鈊鈋鈌鈍鈎鈏鈐鈑鈒鈓鈔鈕鈖鈗鈘鈙鈚鈛鈜鈝鈞鈟鈠鈡鈢鈣鈤鈥鈦鈧鈨鈩鈪鈫鈬鈭鈮鈯鈰鈱鈲鈳鈴鈵鈶鈷鈸鈹鈺鈻鈼鈽鈾鈿鉀鉁鉂鉃鉄鉅狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�鉆鉇鉈鉉鉊鉋鉌鉍鉎鉏鉐鉑鉒鉓鉔鉕鉖鉗鉘鉙鉚鉛鉜鉝鉞鉟鉠鉡鉢鉣鉤鉥鉦鉧鉨鉩鉪鉫鉬鉭鉮鉯鉰鉱鉲鉳鉵鉶鉷鉸鉹鉺鉻鉼鉽鉾鉿銀銁銂銃銄銅銆銇銈銉銊銋銌銍銏銐銑銒銓銔銕銖銗銘銙銚銛銜銝銞銟銠銡銢銣銤銥銦銧恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�銨銩銪銫銬銭銯銰銱銲銳銴銵銶銷銸銹銺銻銼銽銾銿鋀鋁鋂鋃鋄鋅鋆鋇鋉鋊鋋鋌鋍鋎鋏鋐鋑鋒鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜鋝鋞鋟鋠鋡鋢鋣鋤鋥鋦鋧鋨鋩鋪鋫鋬鋭鋮鋯鋰鋱鋲鋳鋴鋵鋶鋷鋸鋹鋺鋻鋼鋽鋾鋿錀錁錂錃錄錅錆錇錈錉洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�錊錋錌錍錎錏錐錑錒錓錔錕錖錗錘錙錚錛錜錝錞錟錠錡錢錣錤錥錦錧錨錩錪錫錬錭錮錯錰錱録錳錴錵錶錷錸錹錺錻錼錽錿鍀鍁鍂鍃鍄鍅鍆鍇鍈鍉鍊鍋鍌鍍鍎鍏鍐鍑鍒鍓鍔鍕鍖鍗鍘鍙鍚鍛鍜鍝鍞鍟鍠鍡鍢鍣鍤鍥鍦鍧鍨鍩鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�鍬鍭鍮鍯鍰鍱鍲鍳鍴鍵鍶鍷鍸鍹鍺鍻鍼鍽鍾鍿鎀鎁鎂鎃鎄鎅鎆鎇鎈鎉鎊鎋鎌鎍鎎鎐鎑鎒鎓鎔鎕鎖鎗鎘鎙鎚鎛鎜鎝鎞鎟鎠鎡鎢鎣鎤鎥鎦鎧鎨鎩鎪鎫鎬鎭鎮鎯鎰鎱鎲鎳鎴鎵鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂鏃鏄鏅鏆鏇鏈鏉鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�鏎鏏鏐鏑鏒鏓鏔鏕鏗鏘鏙鏚鏛鏜鏝鏞鏟鏠鏡鏢鏣鏤鏥鏦鏧鏨鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴鏵鏶鏷鏸鏹鏺鏻鏼鏽鏾鏿鐀鐁鐂鐃鐄鐅鐆鐇鐈鐉鐊鐋鐌鐍鐎鐏鐐鐑鐒鐓鐔鐕鐖鐗鐘鐙鐚鐛鐜鐝鐞鐟鐠鐡鐢鐣鐤鐥鐦鐧鐨鐩鐪鐫鐬鐭鐮纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�鐯鐰鐱鐲鐳鐴鐵鐶鐷鐸鐹鐺鐻鐼鐽鐿鑀鑁鑂鑃鑄鑅鑆鑇鑈鑉鑊鑋鑌鑍鑎鑏鑐鑑鑒鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟鑠鑡鑢鑣鑤鑥鑦鑧鑨鑩鑪鑬鑭鑮鑯鑰鑱鑲鑳鑴鑵鑶鑷鑸鑹鑺鑻鑼鑽鑾鑿钀钁钂钃钄钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹� 锧锳锽镃镈镋镕镚镠镮镴镵長镸镹镺镻镼镽镾門閁閂閃閄閅閆閇閈閉閊開閌閍閎閏閐閑閒間閔閕閖閗閘閙閚閛閜閝閞閟閠閡関閣閤閥閦閧閨閩閪閫閬閭閮閯閰閱閲閳閴閵閶閷閸閹閺閻閼閽閾閿闀闁闂闃闄闅闆闇闈闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�#闌闍闎闏闐闑闒闓闔闕闖闗闘闙闚闛關闝闞闟闠闡闢闣闤闥闦闧闬闿阇阓阘阛阞阠阣阤阥阦阧阨阩阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗陘陙陚陜陝陞陠陣陥陦陫陭陮陯陰陱陳陸陹険陻陼陽陾陿隀隁隂隃隄隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�&隌階隑隒隓隕隖隚際隝隞隟隠隡隢隣隤隥隦隨隩險隫隬隭隮隯隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖雗雘雙雚雛雜雝雞雟雡離難雤雥雦雧雫雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗霘霙霚霛霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�)霡霢霣霤霥霦霧霨霩霫霬霮霯霱霳霴霵霶霷霺霻霼霽霿靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑靔靕靗靘靚靜靝靟靣靤靦靧靨靪靫靬靭靮靯靰靱靲靵靷靸靹靺靻靽靾靿鞀鞁鞂鞃鞄鞆鞇鞈鞉鞊鞌鞎鞏鞐鞓鞕鞖鞗鞙鞚鞛鞜鞝臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�,鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�/頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�2顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�5餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�8馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�;駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�>驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�A鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙鬚鬛鬜鬝鬞鬠鬡鬢鬤鬥鬦鬧鬨鬩鬪鬫鬬鬭鬮鬰鬱鬳鬴鬵鬶鬷鬸鬹鬺鬽鬾鬿魀魆魊魋魌魎魐魒魓魕魖魗魘魙魚魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮魯魰魱魲魳魴魵魶魷魸魹魺魻簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤E魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鮐鮑鮒鮓鮔鮕鮖鮗鮘鮙鮚鮛鮜鮝鮞鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鮪鮫鮬鮭鮮鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺鮻鮼鮽鮾鮿鯀鯁鯂鯃鯄鯅鯆鯇鯈鯉鯊鯋鯌鯍鯎鯏鯐鯑鯒鯓鯔鯕鯖鯗鯘鯙鯚鯛酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜H鯜鯝鯞鯟鯠鯡鯢鯣鯤鯥鯦鯧鯨鯩鯪鯫鯬鯭鯮鯯鯰鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鯽鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鰈鰉鰊鰋鰌鰍鰎鰏鰐鰑鰒鰓鰔鰕鰖鰗鰘鰙鰚鰛鰜鰝鰞鰟鰠鰡鰢鰣鰤鰥鰦鰧鰨鰩鰪鰫鰬鰭鰮鰯鰰鰱鰲鰳鰴鰵鰶鰷鰸鰹鰺鰻觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋K鰼鰽鰾鰿鱀鱁鱂鱃鱄鱅鱆鱇鱈鱉鱊鱋鱌鱍鱎鱏鱐鱑鱒鱓鱔鱕鱖鱗鱘鱙鱚鱛鱜鱝鱞鱟鱠鱡鱢鱣鱤鱥鱦鱧鱨鱩鱪鱫鱬鱭鱮鱯鱰鱱鱲鱳鱴鱵鱶鱷鱸鱹鱺鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾鲿鳀鳁鳂鳈鳉鳑鳒鳚鳛鳠鳡鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄N鳣鳤鳥鳦鳧鳨鳩鳪鳫鳬鳭鳮鳯鳰鳱鳲鳳鳴鳵鳶鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鴆鴇鴈鴉鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鴕鴖鴗鴘鴙鴚鴛鴜鴝鴞鴟鴠鴡鴢鴣鴤鴥鴦鴧鴨鴩鴪鴫鴬鴭鴮鴯鴰鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鴻鴼鴽鴾鴿鵀鵁鵂	�Q鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鵑鵒鵓鵔鵕鵖鵗鵘鵙鵚鵛鵜鵝鵞鵟鵠鵡鵢鵣鵤鵥鵦鵧鵨鵩鵪鵫鵬鵭鵮鵯鵰鵱鵲鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢	��R鶣鶤鶥鶦鶧鶨鶩鶪鶫鶬鶭鶮鶯鶰鶱鶲鶳鶴鶵鶶鶷鶸鶹鶺鶻鶼鶽鶾鶿鷀鷁鷂鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鷓鷔鷕鷖鷗鷘鷙鷚鷛鷜鷝鷞鷟鷠鷡鷢鷣鷤鷥鷦鷧鷨鷩鷪鷫鷬鷭鷮鷯鷰鷱鷲鷳鷴鷵鷶鷷鷸鷹鷺鷻鷼鷽鷾鷿鸀鸁鸂	�0T鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸕鸖鸗鸘鸙鸚鸛鸜鸝鸞鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴鹵鹶鹷鹸鹹鹺鹻鹼鹽麀麁麃麄麅麆麉麊麌麍麎麏麐麑麔麕麖麗麘麙麚麛麜麞麠麡麢麣麤麥麧麨麩麪	��U麫麬麭麮麯麰麱麲麳麵麶麷麹麺麼麿黀黁黂黃黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰黱黲黳黴黵黶黷黸黺黽黿鼀鼁鼂鼃鼄鼅鼆鼇鼈鼉鼊鼌鼏鼑鼒鼔鼕鼖鼘鼚鼛鼜鼝鼞鼟鼡鼣鼤鼥鼦鼧鼨鼩鼪鼫鼭鼮鼰鼱	�PW鼲鼳鼴鼵鼶鼸鼺鼼鼿齀齁齂齃齅齆齇齈齉齊齋齌齍齎齏齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸齹齺齻齼齽齾龁龂龍龎龏龐龑龒龓龔龕龖龗龘龜龝龞龡龢龣龤龥郎凉秊裏隣	��X兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩	KpZ€�	 $!($,'0*4-80<3@6D9H<L?PBTEXH\K`NdQhTlWpZt]x`bXc�d<f�g�h�iHl�n(p�qHs�thv�w�z~������� �$�(�,�0�4�8�<�@�D�H�L�P�T�X�\�`�d�h�l�p�t�x�|������������������������������������ �#�&�)�,�/�2�5�8�;�>�A�D�GKNQ�R(T�UHW�XhZ�Z	�Z	������������
�\	����������������������������O
�\	���������
<]	���������
\]	|]	����������������W�]	������]	�����@�A�B��]	�������������������������������������������������������������������������������]����	��������������_�^	����������������������������������������������������������������������������������������������������^��������������������������������	����_�]%
``	�\�C���D�����������E���������F��G
`	��
h`	���G�H���Y�
|`	��������������������������������������������
�`	���������I�J�K�LOa	�������M�������N���O�������������������������8a	�����P���������Q�R������a	�������S�a	��W�a	���������������������������������������������b��������������������������������������������������������	�xb���������������������������������������������������������������������������������������������������������������������������������b������������������������	�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w_d	�x�y�z�{�|�}�~������������������������������������d	�������������������De	������%xe��	��g�e``�]t`�`a0a�a�a�abpb�b�c�d<epe�e�e��e��������	���e���������������������������������������@�A�B�C�D�E�F�G�H�f	�������������������������������������������������������������������������������������������������������������������������������f����������������������������������������	�a�b�f�g��������������������������������������������������������������-�g��������������������������������������������������������������������������������������������������������������	�`�c�do�h	����������������������������������������������������������������������������i	���������������������Z�,j	�I5hj	�J�K�L�M�N�Ow|j	�P�Q�R�S�T��j�f�g�h�i$j�]`jtj�j�j��jһ���@���A�B�C���������آ�����Dؤ���Eר��ا��F����ҵ����˿ة�G�H�I���J�����Kɥح�L��Ѿ�����M�N���O���P���Qؼ�R����Ϊ��S����د�j�T�U�V���W���Xرô���Y֮��է�������Zƹ�����[���\�����]�^ؿ����Ҳϰ���_�`�a�b���c�d��e�f�g�h�i�j�����k���l�m�n�o�p�q�r�s�t�uǬ�vl�w�x�y�z�{�|���}����~����ء�������������������ب����Щ������ؽ�����������������Ķ������ͤ������������������������������������mʲ�����������������������������������������������������������Ǫ�������������������������������������������������������������� n����������������������������������������������������������ɡΰ������������������α�������������٣��������������������٤����,o��������������������������λ��ס��������������٢����������١������Ӷ�������������������������������٦��٥��������٬ٮ��٫ʹ8p������٩ֶ��������٨����������٪��٧����ٰ�����������������������������@����������٭�Aٯ�B�����C�D�E�F�G���H�I�J�K�L�M�N�O�P��Dq�Q�R�S����ٴ�T�U�V�W���X�Y�Z������ٸ�[�\�]�^�_�����`ٵ�aٷ����ٹ�b���cٶ�d�eٱ�fٲ��ٳ�g�h�������i���jٽ�k�l�m�nٺ�o���p�q�r���sPr�]lmn$o0p<qHrTs=\s�t�u�v�w�x�y�z�{�|�}�~��������ٿ��������������������������������������������������ٻ����پ������������������������ծ��ֵ�������s������������������������ټ����ƫ�����������������������ͣ��������������������������������������������������ż͵�����������������t����������������������������������������������������������������������������������������������������������������������ɵ���@�A�B�u�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q���R�S�T�U�V�W���X�Y�Z���[�\�]�^�_�`�a�b�c�d�e��ɮ�f�g�h�i�������j�k�l�m���n���o�p�q�r�sƧ�t�u�v�w�v�x�y�z�{�|�}�����~���������������������������������������������������������������������������������������������������������������wأ����Ԫ������������������������������������������������������������������������ȫ����������������������������������������������x������������������Ƚ����������������ð������ڢ����д����ũ����������ڣ��ԩڤ������������������������������ұ�����������������y������������׼ڡ���������������������������������@�A�B���C��D�E�����F�G���H�I�J�K�L�M���Nƾ�O�����P�Q���R�����S͹�����������T���z���������U�V�������W���X�Yۻ���Z�[�����\�]�^������������_���`�aɾ�b�c�d���e�f�g�����h���i�����j���k�l���m�n��ˢȯɲ�����o���p���{���������q�r�s�t�u�v��w��ǰ�x�y�����z�{���|���}�~��������������������������������ʣ���������������������������������������������|���������������������������������������������������������Ȱ��������۽�������������Ŭ��۾ۿ�����������������������������������~����������������������ѫ��������������������������������������ļ���������������������������������������������������������������������������������������������������@�A�B�Cذ�����D�����E�F���G�H�����Iϻ�J�K���L�M�N���O�P�Q���R�S�T�U�V�W�X�Y�Z�[ƥ�ҽ�\�]������^ʮ�_ǧ�`ئ�a��������b�c�d��Э�e����׿�f�������g�h���i���j��߲ռ��¬��±�k�����l���m��n�oشîӡΣ�p��ȴ���q��ж�r���s�t�u�v��(��w�x���y������z�{���|ѹ�����}�~������������������������������ԭ������������������������������������������������������ȥ��������4������������������������˫������������������ȡ����������������������������������߶ߵֻ����������̨߳ʷ������Ҷ��˾̾��߷��ߴ����@������������ߺ����������ͬ���������߸�����߹�������������������������������������������˱����֨���������������������������L�ѽ�������������������߻������������߼߽߾Ż߿��Ա����Ǻ����������������������������������������������ζ�����������������������X�����������������������զ������ӽ�������������������������������������@�����A������������ҧ���B���C���D�����E�F�G���H�I���J���K��d���Ʒ���L���M���������N�O���������������������P���Q�����R������Ӵ�S�T�U�V�W��Ŷ���������X�Y����Z�[�\�����]�^�_�`�a�b���c�����d�p��e���f�g�h�i�����j���k�l�m�n�o�������p�q���r�s�t�u�v�w���x�y�z�{���|�������}�~����������������Ψ���������������������������|�������������������������������������������������������������������ơɶ�������ž���������������������Х�����������������ι�������������������������������������������ϲ��������������������������������������������������������������������������������������������������ɤ������������������������������������������������������������������������������������������������@�A�����B�C���D�����E�F�G�H�I�J�K�L���M�N���O�P����Q�R�S�����T�U���V�W�X�Y�����Z�[�\����]���^˻�_�`���a��b�c�d�����e�f�g�h�i�j�k�l�m�n�o�p����ҭ�q�r�s�t�u���v�w�������x�y���z�{�|�}�~�������������ج�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������Ď��������������������������������������������������������������ض��������������������������԰������������Χ������������������ͼ��Џ������������Բ��Ȧ�����������������@�A�B�C�D�E�F�G�H�I��J�K��L�M�Nʥ�O�P�Q�R�������S�����������T�U���V�W�X�Y�Z�������[�\���]ܐַ�^���_�`�a�b���c�d���e��̮��������f�g�h�i�j���k�l��̳��������׹���m�n���o̹�p����ƺ���q���r��s�t�u���v�w�����x�y�z�����{�|�}��~������¢������������������������������������������������������������ԫ��������������������������������������������������������������������������������������������������������������������������������������������ܤ���������������������������ܣ�����ܥ�������������������ܡ��ܢ������ǵ��������������ܧ��������ܦ��ܩ�����������������������������������������������������������@�A��B�C�D�Eܨ�F�G�H�I�J�K�L����M�N�O���P�Q��R�S�T��U�V�W�X�Y��Z�[�\�]�^�_ܪ�`�a�b�c�d��ܫ�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u���v�ܯܬ�w���x��y�z�{ܭ�|�}�~������������Ĺ����������ǽܮ�������������������������ī����������������������������������������������$��������������������������������������������������������������������������������������ʿ����׳�������������������Ҽ������������0������������������������������������������Ϧ������������ҹ������������������������̫����ز������ʧ����ͷ�����������������@�A�B<��C��ۼ�D���E�F�������G���H�I�����J��K�L�����������M���N�O�P�Q�R���S���T�U���V�W�X�Y�Z�[�\�]�^�_�`�a�bŮū�c���d����e�f�g���h�iH��j������kױ�����l���m�n��o�p�q�r�����s�t���u���v�w�x�y��z�{�|�}�����~��������������������������������������������T�������������ķ�������ʼ���������������ί��������Ҧ����������������������������������������������������������������������`��������¦����������������������������������������������������������������������������������������Ȣ�����������������l�����������������������������������������������������������������@��A�B�C�D��E�F���G�H�I�J�K�L�M�N�OӤ������P�Q���R�S�T�U�x��V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�gý�h�i�j�k�l�m�n�����o�p�q�r�s�t�u�v�w�x�y�z�{�|��}�~������������ϱ������������������������������ɩ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�����H�������I������������Т�J���K�L��������ѧ�M�N�����Oث�P�Q�R�����S���T���U�V�W�X���Y�Z��[�\�����]��լ�^�������_�����`�a���b�c�d��e��f��������������ʵ�g�������������h�i�j�����k�l�m�n���o�p��������q����r�s�t���������u�v���w��������x�y�z�{���|�}�~������Ԣ��������������������į�����������������կ����������������������������������Ѱ����������������������������ξ����������С����������������������������������������������Ң��������������������������������ʬ���������β��̥��ƨ�����������������������ʺ���м������չ����������������������������������������������������ɽ���������������������������ئ�������������������������������������������������������������������������@�����A�B�C��D��E��F����G�H�I�J��K����L��M�N��O�P�Q�R�S�T��U�V�W�X�Y�Z��[�\�]�^�_�`���a�b�c�d�e�f�gϿ�h�i�����j���k��l�m���n�o���p�q�r�s�t�u�v�w�x�y���z�{�|�}��~��������������������������������������������������������������������������������������ո�������������������������������������������������������������Ƕ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U���V�W�X�Y�Z�[�\�]��^�_�`�a�b���c�d�e�f�g�h�iΡ�j�k�l�m�n�o�p�q�r�s�t�u�v���w�����x�yѲ���z�{�����������|���}�~������������������������������������ �����������˧����ʦ������ϣ����������������������������������������������֡����������ϯ��������������������������ñ����,�����������������������������������������Ļ�������������������������������������������������������ƽ������������������������8���������ׯ����������������������®������Ӧ�����������������������������������������������ͥ�������������������ӹ��������������D��������������@�A�B�����C�D�E�F�G�H�������I�J���K�L�M�N���O�P�Q�R�S�T�U�V�W�X�Y�Z���[���\�]�^�_�`�a�b�c�d���e��͢�f�g���h�i�j��إP��������Ū�k�l�m���n��߮�o�p�qʽ�r߱�s���t��u�����v�w���x�y�z�����{�|�}�~�����������������������������������������ǿ���������\������������������������������������������¼����������������������������ͮ������������������������Ӱ����������������������������h�����������������������������������ͽ���������������������������������������������ѭ������΢����������������������������������t�����������������������������������߯��������־�æ�������������������������������������������������������������������������������t�u�v�w�x�y�z�{�|�}� �,�8�D�P�\�h�t�������������ȏԐ�������(�4�@�L�X�d�p�|�����������ĥЦܧ�����$�0�<�H�T�`�l�x�������̬�������������@�A��B�C������D�Eŭ�F������G�H���I����˼�J�K����L�M�N������Թ�����O�P�Q���R�S�T�U�V���W�X�Y�Z�[����\�]����^�����_�`�a�b�c�d�e���f���g�h���i���j�kˡ�l�m�n���o�p��q�r�s�t������u�v�������������wϢǡ�x�y���z�{���|��������}����~���������������Ϥ�����������������������������������������������������������������������������������������������������������������������������������������������������ϧ���Ω������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ԸȻ���������������@���A��B���C��D�E���F�G�HĽ�I�J�K�L�M�N�O��P�Q�R�S��T�U�V�W�����X�Y�Z�[�\�]�^ο�_�`�a�b��c���d�e�f�g�h�i�j�kԼ�l�m�n�o�p�q�r�s�t�u�v���w�x��y�z�{�|�}��~������������������������������������������������������������������������������������������������и�������������������������������������������������������ų������������������������������������������������ܲ����������������������������Ϸ���������������ս�����������������������������������¾�����������������������������������������������������������������@�A���������B�C�D���E�F���G�H�I�J�K�L�M���N�OǤִ�P����ɨ��Ť�������Q�R���S�T���U�V��W�X���Y��������Z�[�\���]�^�_�`�����a�b�c�d�e�f����ץ�gͶ�������h�����i�j�k��������l�����m�n���o�p�̧�q�r�s�t���u�v�w���x�y�zĨ�{��Ѻ���|����}�~����������Ĵ����������������������������������׾����������������£����ӵ��š���������������������ȭ˩��������������ƴקʰ�����������������ָ�����������������������������������ֿ������̢Ю�������������������Ų�����������������������������ͦ����������(�����������ͱ������׽�����������������������������������������������������������������������������������������������������������4��������������������������������������������Ҵ����������������������̽�������������������������������°�����������������������@����@�A�B���C���D�E���F�G�H���������I���J�K�LҾ�M�N�O�P�Q�R�S���T�����U���V�W�X�Y�Z�����[�\���]�^�_�`���aԮ�b���c���d�e�f�g���h��L�����§�i�j���k�l�m�n�o���p�q�����r�s��ɦ�t�u�v�w�x�y����z���{���|�}�~����������������������������������������Я���������X���������������ҡ����̯������������������ˤ������ժ�������������������������������Ħ����������������������������ġߡ����������d��������������Ʋ�������������������������˺�����ߤ��������ײ����������������������������������׫������������ߢߣ��ߥ����������p�ߦ������������������������������ߧ������������ߨ������@�A�B���C�D�Eߪ�Fߩ�G���H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`|����a�b�c�d�e�f�g�h߫�i�j�k�l�m�n�o�p���q�r�s�t�u��v�w�x�y�z�{�|�}�~������߬����������������֧߭����������������������������������������������Ч���������������������������������������������������ɢ�����������������������������������������������������������������������������ի������������������������������б������������������������ն���������˹�������������������������ʩ������������������������������������������������������������������������������ּ������Ѯ��������@�A�B�Cʱ���D�E��F�G�H�I�J����K����L�M���N�O�P��Q���R����S�T�U������V�W�X��Y�Z�[���\��ӳ�]�^�_�`���a����b�c�d�e���f���g���h�i�������j�k�l�m�n���o���p���q���r���s�t�u�v�w�x�y�����z�{���|�}ɹ����������~���������������������������������������������������������������������������������������������Ͼ����������������������������ů����������������������������������������������ĺ������������������������������������������������������������������������������������������������������������������������������������Ի���ҷ���������������������������������@�A�B�C���������D���E�F���G�H�I˷���J���K�L�M��N���O���P�Q�R�S�T�U��Vľ�Wδĩ����X��Y���Z�[�����\�]�^�_���`�a���b�c��ɱ�d��Ȩ�e�f���g�ɼ�h�i��j���������k��l�m���n�o�p�q�r���s������t�u�v���w�x������y�z���{�����|����}���~���������������������������������������������������������������������ö����֦�����������������������ǹ���������������������������������������������������������������������������ij����Ⱦ�����������������������������������������������������������������������������������������������դ����ջ�������������������˨��������������������������У����������������������������������������������������������������������Φ�������������������ͩɣ���������������������@�A�B�C������������������׮�D��E�F�G�H�I�J�K�L��MͰ��N�O�P�Q�R�S�T�U$��V���W���X÷���Y�Z�[�\�]�^�_�`���a�b�c��d�e�f���g�h�i�j�k�l�m�n�o�p���q�r�s�������t�u�v�w���x��е�y�z���{���|�}�~��������������0�������������������������������������������������������������������������������������������ɭ�������������������������������<�������������������������ֲ׵��������������������������������������������������������������Ҭ����������������������������H����������������������������������������Ш����������������������@�A��B�C��D�E�F�G��H�I��J�K��L�M�N�O�P�����Q�R¥�S�T�UT���V���W��X������Y�Z�[���\�]�^�_�`�a�����b�c��d�e����f�g�h�i�j�k�l�m�n�o�ե�p�q��r��s�t�u��v�w���x�yȶ�z�{�|��}�~����`������������������������������������������������������������������������������������������������������������������������������l������������������������������������������������������������������ģ������������������������������ӣ����������������������������x���������������������������������������������������������@�A�B�C�D���E�F�G���H�I�J�K�L�M�N�O�P�Q�R���S�T�U�V�W�X�Y���Z�[���\�]�^��̴�_�`�aϭ�b�c�d�e�f�g�h�i�j���k�����l�m�n�o�p���q�r�s�t�u�v�w�x���y�z�{�|�}�~������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Ƿ����������ŷ���������������@�A�B��C�D�E�F��G����H�I�J���K���L�M�N��O�P�Ъ�QǸ�R�S���T�U�V�W�X�Y�Z�[�\�]�^�_��`�a�b�c�d�e�f�gֹ����������h�i���j�k�l�m�n�o�p�q�r�s�t�u�v�w���x����y�z�{���|���������}�����~ѳ������������������������ֳ���������������������������������������������������������Ź�������������������������������������������������ĸ��ÿ������ع�������������ë����������ձ�������������������������̺����������������������������������������������������������ص����å�����������������������������������������������������ˮ�����������������������֭͡����������������������������ϫ�����������������@�AѴ�������������B�C��D�E�F�������G�H�I�J�K̭�L���M���N���O�P���Q�R�S����T���U�������V�����W�����X�Y���Z�[�����\�]����^�_�`�aɳ�b���c�d�e���fû�g��Ž�������h����ĭ�i�����j�k�����l�m�n�o�����p������մ�����q�r�s�tй��u�v�wȪ���x���y�z�{���|�}���������~����������Ţ����������������ע�����������̩����Ӿ������������к��������������������������������������������������ϴ������������������������������������������������������������������Ǣ��������������dz����������������������Ũ����������������������������������������������������������ԡ��������������������������Ϳ����������������ӿ���������������������������������������������������ɬ����������������Һ�������������������������� �������������������������@�A�B�C���D�E�F�G���H�����I�J�K����L�����M�N���O���P�Q�R�S����T���U�V���W���X�Y�Z���[���\����]�^�_,��`�a�b�c�d���e�f�g�hԨ�i�������j�����k�l���m����n�o��p�q���r�s����t������u�v�w���x���yμ�z���{�|���}���~��������������������8�������������������������������������������������������տ����������������������������������������������������������������������ʪD���������������������������������Դ��������������������������������������������������Ϫ������������������������������������������P���������������������������������������������������������������������������������̲�������������@�A�B�C���D�E�F�G���H�I�J�K�L�M\��N�OƯ�P�Q�R���S�T��U�V�W�X�Y©�Z�[�\�������]�^�_�`�a�b�c�d�e�fĮ�g�h�i���j�k�l�m�����n���o���p��q���r�s���t�u�v�w�x�y�z��{h��|�}�~��������������������Ϋ����������������������������DZ��º����������������������������̶��������������������������������t����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G���H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W����������̼ؽ������ �,�8�D�P�\�h�t��������������������������(�4�@�L�X�d�p�|������������������������$�0�<�H�T�`�l�x��������X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h���i�j�k�l�m�n�o�p���q�r�s�t�u�v�w��x�y�z�{�|�}�~������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������¯��������������������Ȳ���������������������������������������������̿��������������������ը������������������˸����������������������������������������������������@�A�B���C�D�E�F���G���������H�������Iϩ�J�K�L�M�N�O�P���Q���R�S�T���U�V��W�X�Y�Z�[�\�]�^�_�����`�a�b�c�d���e�f���g�����h�������i�j�k�l�m�n�o�p�q�r�s���t�u�v�w�x�y�z�{�������|�}�~��Ȼ�������������������������������������������������������������������������������ɷ����������ú������������������������������������������������ɿ�������������Ϩ��������������������Ѭ������������������������������������������������������������������������������������������������������ȼ�������������������������������������@�A�B�C�D�E�F�G�H�I���J�K�L�M���N���O�P�Q�R�S�T���U�V�W�X�Y�Z�[�\�]�^���_�`�a�b�c�d��e�f�g�h�i�j���k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������צ����������������������ү������س��ˬ������������������Ƭ����������������������������������ţ������IJ��ĵ������������������������������������ǣ�����������������Ϭ���������������������������������������������������������������������������������Ȯ������������������״���������������������������������������������������������������������������@�A��B�����C�D�E�F�G�H���I�J���ʨ�������K�L����M�����N�O�P(�Q��R��S�T�U�V�W�X��Y�Z�[���\�]�^�_��`�����a�b�c�������d�e���f�g��h�i�j����è��k���l�m��n�o���p�q�����r�s�t�u��Գ4�v�w�x�y�z�{�|�}�~�������������������������������������������������������������������̡��������@�A�B�C�D�E�F�G�H�I�J�K��L@	�M�N�O�P��Q�R���S���T��U�V���W�X���Y�Z�[�\���]�^�_�`���a�b�c���d�e���f�g�h�i�j�k���lõ�m�n�������o�����p�q�r���s�t�����u�v�w�xL
���y���z�{�|�}�~����ɺ������������������������������������������������������������������������������������������@�A�B�C�D�E�F�GX�H�I�J���K�����L�M�����N�O�P�Q���R�S�T�U�V�W�X�Y�Z���[�\�]�^�_�`��a�b���c��d��e��f��g��h�i��������j�k�l�m�n���o�p�qd�r��s�t�u�v�w�x�y�z�{�|�}�~�����������������������������ɪ����������������������������������������������������@�A�B��Cp
���D���E�F�G��H�I�J��K�L��M��N�O�P�Q�R�S�T�U�V�W�X��Y��Z�[�\�]�^�_�`�a����b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q��r�s�t�u�v|�w�x�y�z�{�|�}�~�������������������������������������������������ư��ȿ����������������������������@��Aƿ���B�C�D�E�F�G�H���I�J�K�L���M�N�O�P�Q�R�S�T��U��V��W��X�Y�Z�[��߰��\���]�^��_�`�a�b�c��d�e��˦�f������g����������h���i�����j����k�l���m���n�o�p�q���r�s��t�u����v�η�w�x�y�z���{�|�}�~��������������������������������������������������������������������������������������������@�A�B���C�D�E���F�����G���H�����I�����J�K���Lű�����M�������N�O�P�Q�R�����S��������ƣ�������T�U�����V�W�������X��Y�Z���������[֢Ӹ��Ȭ�\�]���^�_�`�a��b�������c���d�eʹ�f�gƦ�h�i�j�������k�������l�����m�n�o�p̵���q�r���s�t�u�v���w�x���y�z�������{���|��}�~����������������������������������������������������������̱��������������������ȳ���������������������@�A�B�C�D�E�F����G�H�I�J�K�L��M��N�O�P�Q�R��S��T�U�V�WѢ�X�Y�Z�[�\�]�^��_�`�a��b�c�d�e�f�g�h�i���j�k���l�����m��n�o���p���q������r�s���t�u��v�w���x��y�z���{�|��}�~�����������������������������������Ƥ��������������������������������������������@�����Aӯ�B���C�D���յ�������E���F�������G�Hʢ�I�J�K���L�M�N�O�P���Q�R�S�T�U�V�W�XĿ���Y��ä�Zֱ�[�\�]�����^�_���`���a��bʡ�c�d���e�f����ü�g���h���i�j�k�l�m�n�o�p�q�r�s�����t�u�v�w�����x���y�z�{��|գѣ�}�~������������������������������������������������������������������������������������������@�A�B�C˯����D���E��F�G�����H�I�J�K�L�M�N�O�P�Q�R�S���T�U�V�غ���W�X�Y�����Z�[�\�]�^�_��Ϲ�`�a���b�c�d�e�f�g�h�i�j�k�l�m���nޫ�o�pƳ�q���r����s˲�t�u�v��w�xͫ�y��z�{�|�}�~հ�������������������������������������������������������������ì������������ʸ����֪�@���A���B���������C�D�E�Fʯ�G�H��I��J�K�L�M��������ɰ�N�O�P�Q�R�S��T�U����V�W�X���Y���Zש���[���\���]���^�_�`���a�������b���c�d����e�f���g�h�i���j�k������������l���m$���n�o�p�q���r���s�t�u�v���w���x���y��z�{˶�����|�}�~���������������������������������Ӳ��ȷ����������������������������������0���������@�A�B���C���D�Eµ�����F�G���H���I�J�K�����L�������M�N���O���P���Q���R���S�T�U�V�W�X�Y�Z�����̼���[�\�]�^���_�`�a�b���c<�d���e�f�g���h�i�j�������k�l�m�n���o�p�q�����r�s�t���u�v�w�x�y�z�{�|�}�~��������ĥ����������������������������������������������H ���������������������������@�A�B�C�D�E���F�G�H�I�J�K�L�M�N�O���P�Q�R�S�T���U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c���d�e�f�g�hʾ�����i���jT!�����k�l�m�n���o�����p�q�r�s�t�u�v�w�x���y�z�����{�|������ף�������}���~�������Ʊ��������������������������������������������`"�������»���������������������������@�A�B�C�D�E�F��G�H�I�J�K�L�M�N�O�P�Q�R��S�T�U�V�W�X�Y�Z�[�\�]��^�_�`�a�b��خ���c�����dl#��˽�eͺ�f�g���h�i���j���k���l�m�n�����o�p��q�r���s�t�u�v�w�x���y�z�{����|�����}���~����������������������������������������x$ϡ�����������������������˰����������������������������@��A���B�C���D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R���S�T�U��V��W�������X���%�Y�Z�[�\�]�^���_�`�a�b�c�d�e�f�g�h��i�j�k�l�m���n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���������������������Ѩ���������������������&�ͻ����խ����������������������Ҥ���������������������������������@�A����B��C�D�E���F�G�H�I�J��K�L�M�N�O�P�Q�R�S�T�U���'�V�W�X�Y�Z�[�\�]�^�_�`���a�b�c�d�e�f�g�h�i�j��k�lվ�m�n�o�p�������q�r���sͯ��t�u�v�w�x�y���z���{�|�}�~�������������������������(����������������������������������Ц�����������������������������������������������������������@�A���B���C�D�E�F���G���H���I���J�)�K�L�M�N�O���P���Q���R�����S�T�����Ͳ�U���V���W���X��ɸ�Y���Z�[���\���]�^�_�`�a�b�c�d�e�f�g���h�i�����j�k���l���m���n���o�pǩ�q�*���r�s�t�u���v�w�x�y�z�{�|���}�~�������������������������������������������������������������������������������������������������+�����������@׭ƪ�A�B�C�D���E�F�G�H���I¨�J�K�L�M�N����O�P���Q�R�S���T�U�V���W�X�Y��Z�[�\���]�^���_�`�a�b�c���d�e�f�g��h��i�,�j�k�l�m�n�o�p���q�r�s���t�u��v�w�x�y�z�{��|�}�~�������������������������������������������������������������������������-�����@�A�B�C�D�E�F�G�H�I���J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�����o�p�q�r�s�t�������u�v�.�w�x�y�z�{�|�}�~��������������������������������ճ����������������������������������������������������������������������������@�/�A���B�C�D���E�����F���G�����H�I�J�K�L�M�N�������O���P�Q���R�S�����T�U�V�W�X�Y�Z���[�\�]�^�_�`Ŵ�a�b�c�d�e�f�g�h���i�jϵ�k�l�m�n1�o�p�q�r�s�t�u�v�w�x���y�z�{�|�}�~����������������������������������������������������������������������������@�A�B�C�D�E�F�G�H2�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v��w�x�y�z�{�|�}�~������������������ 3���������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L���M�N�O�P�Q�R�S���T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d,4�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������������������������������������������������������@�A�B�C�D85�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������D6�������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�aP7�b�c���d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{���|�}�~����������Լ��������γ������ɴ������������ֽ��������Ŧ���\8���������ϸ֯������������������������������Ѥ�������ͳ�����������������������������ά�����������������h9׺��������������������������������������Ե������������������������������ӧ��������������������������������ȱ����������t:�����������������������������������������@����A���B�C�D�E��F����G�H�I�J�K������L�M�N���O�P����Q��R�S�T�U��V�W�X�Y��Z�;�[��\�]�^�_�`�a�b�c���dǼ�e��f�g�h�i�j���k�l�m�n�o���p�q�������r���s�tȺ�u�v���w�x�y�z�{�|�}�����~����������������������������<������������������������������������������������������������������������@�����A�B���C�D�E�F���G�����H���I�J�K�L�M�N�O�����P�Q�R�=����������� ,8	D
P\h
t�����������(4@ L!X"d#p$|%�&�'�(�)�*�+�,�-�.�/123$405<6H7T8`9l:x;�<�=�>�>ҫ���S��������T�U�V�W����ˣ�X�Y���Z���[�������������\�]���^�_�`���a���b�c�������������d�e�f�g�h�i���j���k��Ү�����l�m���n���o���?�p�q����r�s��t�u�v����ְ��w�x�y�z��{���|�}�~Ƹ€��‚ƒ„…†‡ˆ‰Š‹ŒŽ���‘’“”�•–—˜™š›œžŸ �@��@��A�B�����C����D���E�����F�G�H�I�J�K��L�MФ�N���O��������P�����֫�Q�����R�S�T�������U�������V����W���X�Y���Z�[���\��������A��в��θ���]���^�_�`�a�b����̥�c�d�e�f�g�h�i�����j������ʤ�����k�l���m�nط���o��������������p�������������q���r���s���t�����u�v�B�w�x֬�y�z�{���|�}����~À������������ŧ�Á��Â��Ã��ÄÅÆ��ÇÈÉÊËÌÍÎÏÐÑÒÓ��ÔÕ��Ö����רÙ��Ú��ÛÜÝÞßƢà�C�@�A�B�C�D�E���F���G��Ҹ���H�I�J�����K��ǻ���L�M�N�����O�P�Q�R�S���T�U�V�W���X���Y���Z�[�\����]����^�_���`�a�b�c���������������D���d��e�f�g�h�i��j���k�l�m�n���o��p�q�r�s�t�u���v�w��Ĥϥ�x�y�z�{�|��}�~�Ā��ā�Ă㥹ĆćĈĉ��ĊċČčĎď���ĐđĒē�E�����ӷĔĕ��ĖėĘ�ę�ĚěĜĝĞğĠ�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N���O�P�Q��R�S���T����U�V�W�X�Y����Z�[�\�]�^�_�����`��aGҨ���b������c�d�e�f�g�����h�i���j���k���l�m�n�o�p�q�˴�r�����s����t�u�v�w��x�������y������z������������{��|�}��~HŀŁłŃ�ńŅͧņ�Ň�ňʼnŊ�ŋŌōŎŏŐőŒ��œ�ŔŕŖŗ�ŘřŚśŜŝŞş�Š�@�A�B�C�������Dɫ����E�F�G�Hܳ���I�Jܴ��ܵI�K�L���Mܹ�N�O�P���Qܷ���R��ܺܶ�Sܻâ�T�U�V�Wܼ��ܽ�X�Y��֥�Z���[���\�]����«�^ܸ����ܾ������о����_�����`�a��ܿ���b�c�dѿ��e(J�f���g�h���i�jέ���k�������������lԷ����̦���m�����n�o�����p���������q���������r�s�t�uɻ�v�w�x���yӢ�z�{���|�}���~ƻƀ��ƁƂƃƄ4Kƅ��ï����é��������ƆƇ��ƈ����Ɖ��ƊƋ����ƌ�ƍƎ��ݢ��ƏƐƑƒƓƔƕƖƗƘ����ƙƚã���ƛ��Ɯ��Ɲ�������ƞ�����Ɵ��Ơ�@�A@L��B�C��D�E�����F���G�H�I�J�K���������L���M�N�O�P�Q�������R�������S������ӫݡݣݥ��ݤݦݧҩ�T�U�V�W�X�Y�Z��ݩ�[�\ݶݱݴ�]�^LM�_�`�a�b�cݰ���d�e���f�g�h�iɯ�j�k�l��ݮ�m�n�o�pݷ�q�r��ݯ�sݸ�tݬ�u�v�w�x�y�z�{ݹݳݭĪ�|�}�~ǀݨ����ݪݫǁݲ��ݵӨݺǂݻçǃDŽXN��ݼDždžLJ��Lj��ljNJ��Nj��njǍ��ǎǏǐǑ��ǒ��ǓݿǔǕǖ����Ǘ������ǘǙǚݾǛǜǝ����ǞǟǠ�@�A�������B�C�D�E�F�����G�H�I���J�KdO�Lݽ�M�����N���O�P�Q�R����Ƽή���S���T�U�V�W�X�Y��Z�[�\�����]�^�_�`�a�bөӪ������c�d�e�f�g�h�i�j���k�l�m�n�o�p���q�r�s�����t�upP�v�w�x�y�z�{���|�}�~ȀȁȂȃȄȅȆ��ȇȈȉȊȋ�Ȍ��������ȍȎȏȐ��ȑ��ȒȓȔȕȖ��ȗ������ȘșȚ��ț��Ȝ����ȝ��Ȟ��ȟȠ�@�A�B|Q�C�D���E�F�G�H�������I�����J���K�L�M�N�O�P�Q�R��S���T�U���V�W�X�Y���Z�[�\�]�^�_�`�a�b�c�d�e�f���g�h���i���j�k�l�������m�n���o���R�p���q�r���s�t�u�v�����w�x���y�z�����{���|�}���~ɀɁɂɃɄ��Ʌ����Ɇɇ�Ɉ���ɉɊɋɌɍ��Ɏɏɐ�ɑɒɓɔɕɖɗɘəɚɛޤɜɝޣ�Sɞɟɠ�@�A�B�C�D�E�F�G�H��I�J�K�L���M��N�O�P���Q�Rε�S�T�U�V��W���X�Y�Z�[�\�]�^�_�`�����a�b�c�d�e�f�g�h�i�jǾ���ޢ�����k�l�T�m�n�oެ�p�q�r�sަ�����t�u�v�w�x�y�z�{�|�}�~ޡʀʁޥʂʃʄʅީʆʇʈʉʊިʋʌʍާʎʏʐʑʒʓʔʕʖޭʗ��ʘʙʚʛ޳ުޮʜʝ��ʞ�Uʟʠ�@�A��޶�Bޱ�C�D�E�F�G�H�I޲�J�K�L�M�N�O�P�Q�R�S�TѦ޵�U�V�W�X�Y�Z�[ޯ�\�]�^ް�_н�`�a�b޴��޹�c�d�e�f�g�h޸�i޷�j�k�l�m�n�o�V�p޻�q�r�s�t�u�v�w���x�y�z�{�|�����}�~޺ˀźˁ˂˃˄˅ˆ޼ˇˈˉˊˋˌˍ��ˎˏːˑ��˒˓˔˕˖˗˘˙˚˛˜˝˞˟ˠ�@�A���B�C�D޽�W�E�F�G�H�I޿�J�K�L�M�N�O�P�Q�R�S�TĢ�U�V�W�X��Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h޾�i��j�k�l�m�n�o�p�q�r�s�t�u�v�wպ�x�y�z���{�|�}�X�~̀́̂̃̄̅̆̇̈̉̊̋���²Ű��̌̍�̎̏̐̑̒��̓̔̕��̖̗̘�̛̙̜̝̞̟̠̚����@��A�Bʭ�C�D�E�F�G�H�I�������Ϻ��Yʴ�����J�K�L�M�N�O�P�������Q�R�S�T�U��V���W�X�Y�Z�[�\���]�^�_�`�a����b�c�����d��e�f�������g�h������i�j�k���l�m�n�o�p�Z��q�r�s��t����u�������v�w���������x�y���z�{�|�����}���~̀����́͂̓̈́��͇͈͆ͅ��͉͊͋���͌����������͍͎͏��Ӽ͓͐͑͒��͔�[��͕����͖͗͘��������͙͚��͛͜͝͞����͟��͠��֩�@���A���B���C�D�������E���F�G�H���I�J�K�L���M�N���O�P���Q�R���S�T�U���V�W����]�X�Y�Z�[�\�]�^Ӭ�����_�`���aЫ�b�c�d�e��f�g�h���i��j�k�l�m�n�o���p�q����r�s�t�u�v�w�x�y���z���{�|�}���~��΀΁΂΃�������΄^΅Ά���·�ΈΉ�Ί΋��Ό��΍ΎΏΐΑ�ΒΓΔ�ΕΖΗΘΙΚΛ�ΜΝΞΟΠ�@�A�B��C�D����E��F�G�H��I��J�K�L�M���N�O��P�Q_��R�S�T�U�V��W�X�Y���Z�[�\�]�^����_�`�a�b�c�d�e��f�g�h�i��j�k�l�m��n�o�p�q��r�s�t��u�v�w�x�y�z�{�|�}�~зπρςσ�τ$`υφχ�ψωϊϋόύ�ώϏϐϑϒϓϔϕ�ϖ���ϗϘϙϚ�ϛϜϝϞϟ���Ϡ�@�A�B�C�D�E�F�G�H�I�J�K�L�M���N�O�P�Q�R�S��T�U��V�W�X0aѪ�Y�Z�[����\�]�^�_�`�a�����b�c�d�e�f�g���h�i���j���k�l�m�n�o�p�q�����������r�s�����t����u���v˥�w���x�y�z�{���|�}�~ЀЁ�����<bЂԬ��Ѓ���ЄЅ��ІЇ��Ј��ЉЊЋЌ̻ЍЎЏ��АБВГД��ЕЖЗИЙ��К��ЛМНОПР���@Ϯ�A�B�C���D�E�F�G�H���I�J�K�L���M�N�OHc�P�����Q�Rװ���S�T���U�V�W�X���Y�Z�[��\��ԣ�]�^��ȹ�_�`�a�b�c���d�e���������f�g���h�i�j�k�l�m�n�����o�����p�q�r�����s�t���u���vTd�w�x���y�z�{�|�}�~р��стуфх��ц����чшщъы������ьэюяѐ��ёђѓ��єѕії����јљњћ�ќѝў��џ��Ѡ�@�A�B�C�D�E�F�G`e�H���I�J���K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�����d�e�f�g�h�i���j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}���~Ҁҁ�lf҂Ҫ҃�҄҅��҆҇҈҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠ�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]xg�^�����_�������������������`�����������a�b�c���d�e�f���g���h���i�j�k�l���m�����n�o�p�q���r�s�t���u�v�w��x�y�z�{�|�}�~ӀӁӂӃӄ�h��ӅӆӇӈӉӊ��ӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_���`�i�a�b�c�d�e�f�g�h��i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~ԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԐԑԒԓԔԕԖԗԘԙղԚԛԜԝԞԟ�jԠ�@�A�B�C�D�E�F�G����H�I�J�K�L�M�N�O���P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�k�|�}�~ՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖ՗՘ՙ՚՛՜՝՞՟ՠ�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�l�\�]�^�_�`�a�b��c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~րց��ւփքօֆևֈ։֊֋֌֍֎֏֐֑֖֚֒֓֔֕֗֘֙�m֛֜֝֞֟֠�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_���`�a�b�c�dƩ�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�n�x�y�z�{�|�}�~׀ׁׂ׃ׅׄ׆ׇ׈׉׊׋׌׍׎׏אבגדהוזחטڥ����������ڦڧ����ڨ�יѵ��Ѷ��ך����کڪ��ګ������כ���������o��֤ڬڭ���ʶלթ����ڮ����ڰگם��ڱڲڳ��ڴʫڵڶ����ڷ����ڸڹ��ѯ��ں������ڻڼמ������ڽ��ھ����ڿ˵��������ŵ�����������p��˭��������׻��̸ן��ı��������г����ν��������������������נ������лҥ����ǫ����á�����̷������������Ǵ�������@�A�B�C�D�E�F�G�q�H���I�J�K�L����M��N�O���P�Q�R�S�T�U�V�W���X�Y�Z�[���\�]�^�_�`�a�����b�c�d�e�f�g�h��ԥ�i�j�k�l�m�n�o���p�q�r�s�������t�u�v�w�x�r�y�z���{�|���}�~؀����؁ò؂؃؄؅؆؇؈��؉؊؋��،؍؎؏ؘؙؚؐؑؒؓؔؕؖؗ؛؜؝؞؟ؠ�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Qt�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~ـفقكلمنهوىيًٌٍَُِّْuٕٖٜٟٓٔٗ٘ٙٚٛٝٞ٠�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�������O������������������̰ƶ����������������������ó�������������� v����¸�����������������������������P�Q���������R׸��׬��������S���Ӯ�����T����U�V�W���X��Y�Z���[�\�����������]�^�_�`�a�b�c�d,w�e���f�g�����h�i�j�kԽ��l�m�n�o�p���q�r���s�t�u�v�w�x�y�z�{�|���}�~ڀȤځڂڃڄڅچڇڈډڊڋڌڍ�ڎ��ſ��ڏڐ��ڑ��ڒ��ړֺ��8xڔڕږԾ��ڗ��ژڙښڛ����ڜ����ڝ��ڞڟڠ�@�����A�B�����C�������D�E�F�����G�H�I���J�������K�L·�M�N�O��P���Q�����������R���S�TDy�U�V�W�X�Y���Z�[�\��ӻ�]���^�_̤�`�a�b�c���d�e�f�g�h�i�j�k�������l�m�����n�o�p�q�r�����s���t�����u���v�w�x���y�z�{�����|�}���~ۀPz������ہ��ۂۃ�������̣ۄۅۆۇۈ����ۉۊۋیۍێ��ۏېۑےۓ۔ەۖۗۘۙۚ��ۛۜ��۝۞����۟����۠���@���A���B�C�D�E�F���G�H��\{�I���J�K�L���M���N�O�P�Q�R�S�T�����U�V�W���X�Y�Z�[�\�]�^���_���`�a�b�c�d�e�f�g�h�i�j�k�����l�m��n�o���p�q�r�s�t�u�v���w�x�y�z�{h|�|�}�~܀܁܂܃܄܅܆܇܈܉܊�܋܌܍܎܏ܐܑܒܓܔܕܖܗܘܙܚܛܜܝܞܟܠ�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Zt}�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~݂݄݆݈݀݁݃݅݇݉݊݋݌ݍݎݏݐݑݒݓݔݕݖݗݘݙݚݛ�~ݜݝݞݟݠ�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�������a��ת�����������������������������������b������������������c��������d����ԯϽշ��������e�����f�g�h���i�j�k�l�����m���n�o�p�q�����r�s�t�u��v�w���x�y�z�����{���|Ǩ���}�Ѹ�~���ހށނރބӭޅ����ކ������އވ����މ��ԶΥ����ފދ�ތ������ލ��������ގ����ޏ�ސޑ��ޒޓޔ������ޕޖޗ׷ޘޙ���@�A�B�C�D�E�FHI J,K8LDMPN\OhPtQ�R�S�T�U�V�W�X�Y�Z�[�\^_`(a4b@cLdXedfpg|h�i�j�k�l�m�n�o�p�q�rtuv$w0x<yHzT{`|l}x~�����������������������ޚޛѡѷ��ޜ��ޝ͸������ޞ;ޟ����ޠ�@ͨ���A�������������B�C�D���E�F�G�H�I�J�������K�L�M�N�O�����P���Q�R�����S���T���U�����V���W�X��Y�Z�[�\�]���^�����������_�`�a�����b�c���d�e�f�g�h�i��Dz�jң�k�l���m�n�o�p�����q�r�s�t�u�����v�w�x�y�z�{�|���}��Ȅ��~����߀߁߂߃��߄߅��߆߇߈߉ߊ��ߋ��ߌ��ߍ�ߎ�ߏ�ߐ�ߑߒߓ�����ߔߕ��ߖߗߘаߙ�ߚ����ۢ��ߛ�����ߜۡ�����ߝߞۥߟԅߠ���@�Aۧۤ�Bۨ�C�D���E�F�G��ۣۦ֣�H۩�I�J�Kۭ�L�M�Nۮ۬���O�P�Q��۫�R�S�T۪�����U�Vۯ�W���X۰�Y�Z�[�\���]�^�_���`�a�b�c��۱�d��e�f���g۲�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{���|�}�~�۴���۳۵�����������۷�۶�������۸����������۹��@ۺ�A�B������������C���D�E�F�G���H�I���J�K��̪�L�M����������N�O�P�����Q���Rͪ���������S����ø�������T�U�V���������W�X�Y�Z�[���\���]���^�������_�`�������a�b�c�d�e�f�g��ȩ�h�i�j�k�l�m�����n�o�p�q�r�s���t�u�������v�w�x�y�����z�{�|�}���~������������������������Ұ���������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y��Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�����������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m���n�o�p�q�r�s�t�u�v�w�x(��y�z�{�|�}�~������������������������������������@�A�B�C�D�E���F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V4��W�X�Y�Z�[�\�]�^���_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�����������������������@������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s���tL��u�v�w�x�y�z�{�|�}�~������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�SX��T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b���c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������d�����������������@�A�B�C�D�E�F�G���H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�pp��q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N���O|��P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z���{�|�}�~�����������������������������������������ǥ�����������������������������������������Կ����������������ť����Ǯ��ǯ�����������������������������������Ǧí������������������������������������ͭ����ա�ϳ���������������ҿ�����������������������������������п�����������������ê������������׶���@����������������������A�������������������B��������þ���C���������D����E������������������F���������G�����������H���������������������������I�����������J�K���L�M�N�O�P�Q�R�S�����T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~���������������������Ě�������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[��������\����������������������բ������������]Л���������������^�����������������������_���������`�����a�����b���c�����d�e�f�g�h�i�j���k�l�m���n�o������������p�q�r�s�������t��ܜ���u���v����½¤�����wªİ���x�y���z�{�|�����}�~�������������Ժ������������������������������������������������¡��������@���A����B�C�D���E�F����϶�G�H���I�J�K�L�M�N�O�P�Q�R���S�T�U�V�W�X�Y�Z���[�\���]�^���_�`���a�b�������c�ȸ���d�e���������f���g�h��Ӻ�����i�j���k�l���m�n�o�p�q�r�s�t�u�v���w�x�y�z�{�|�}����ѩ�~�����������������������������������������ù�����������������������˪�ϼ���@�A�B�C�D�E�F�G�H���I�J���K�L���M¶�N�O�P�Q�R����S�T�U�V���W��X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�����j�k���l�m���n���o�p���q�������r�s���t�u�v���w�x�y�z�{�|�}�~���ѥ��������������������������Ь������������������������@�A���B�C���D�E�F�G�H�I�J���K���L���M�N���O���P�Q�R�S�T�U�V�W�X�Y�Z$��[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��Τ�������������������������������0�����������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p<��q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������@�A�B�C�D�Eҳ�������˳����������H�������Ԥ­����������F���G���Ƶ�H����Iӱ�����J�������������K����ȧ�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�cT��d�e�f�g�h�i�j�k�l�m�n�o�p�q���r�s����t��u�vƮ���w�x�y��ʳ�z�{�|�}�~����������������������������`����������@�A�B�C�D���E�F���G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c���d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�tl��u�v�w�x�y�z�{�|�}�~����������������������������������������������������������������������x�����������������������@���A���������������ظ�����B�C�D�E�F�G�H�I�J�K�L��M�Nܰ�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e���f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~����������������������������������@�A�B�C�D�E���F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q��Ԧ��ѱ����R��¿��ʻ��������פ�����������������S�����������T�������U�V�����������W�X��ƭ���Yɧ�������������������Z����[�\�]�^�_�`�a�����b�c�d�e�������f���g���h�i�j���������k�l���m�n�o�p�q�����r�s�t�u���v���w�x�y�z���{�|�}�~������������������������������������������������������@���A�B�C�D�E�F���G�H�I���J�K�L�M�N�O�P�Q�R�S�T���U�V�W���X�Y�Z�[�\�]�^�_�`�a�b���c�dت�e�f�g�h�i�j�k�l����m�n�o̱�p�����������q�������r�s�t���uκ�v���w�xħ�y�z�{�|�}�~����������������������������������@�A�B�Cز�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c��d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������������������������������������������������������������@�A�B�C���D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�������������³���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\ ��]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������,��������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|8��}�~�������������������������������������������������������������������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\D��]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������������������������������������������������P��������@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[��������\Ÿѻ�]�����Ѽ�^���_��ԧ�`��������a�b�����\��c��������������ȵ�����d�����e���f�g�h���i�����j�������k���l�m�n�o�����p�����������������q�rӥ���s���t�u�v�w�x�y�z�{�|�}��¹h��~������������������������������������´�����������������������������������������������@�A�B�C�D�E�F�G�H���I�J�K���L�M���N�����Ot��P�Q�R�S���T�U�V�W���X�Y�Z������[���\�]ǭ�^�_�`Ĭ�a�b�������c�����d���e�f���g���h�����i�j�k�l���m�n�o�p�q�r�s�t�u���v�����w���x���y�z�{�|�}�~��������������������ؾ������������ػ��ܱ�������������������������������������������������@�A�B�C�D���E���F���G�����H���I�J�K�L���M�N�O�P�Q�R�S�T�U�V�W����X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~��������������������������������������ȣ����������������������������������������������������	����̅؆������ �,�8�D�P�\�h�t�������������țԜ�������(�4�@�L�X�d�p�|�����������ıвܳ�����$�0�<�H�T�`�l�x�������D��]L��`	���
`�	���t�	��%��	����g��	�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O���	�U����������������������������������������	�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~������������������-P�	����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	o�	�����V���W������]l���������H������������`5����g���\4]T]t]�]�]�]�]�^�^�_�_``�e�j�s�����?��P�X��������y�@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������������������������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCD@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABC@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVVVVVVVVVVVWXYZ[\]^_`abcdefghijklmnopqVrsVtVVVVuvwxyz{|}~��������������������������VVVVVVVVVVVVVVVVVVVVV@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~������������������@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������������������������������������@�	

�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~����	

��������	������	

 !"#$%&'(��	
��	

 !"#$%&'()*+,-./012��	

����	

������	

��	��	

��	
������	

��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?@��	




 !"#$%&'()*+,-./01











��	

��	
������	

��	

 !"#��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./01234567888889:;8��	

 !"#$%&��	
��������	
��	��	

 !"#$%&''''''''''''''''''''''''''����������	

��	

��	

 !"#$%&��	

                                 ����	
�����	

;$���@���h����zRx�$8��0FJw�?:*3$"D@�� \��$HWGNU��P`�"������p�����\��p��u������h
�P�"X�"���o`��
�"08�h	���o����o�o����o��"��GA$3a1h�GA$3p1067��GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realigngbk.so-2.2.10-35.el8.x86_64.debug����7zXZ�ִF!t/��]?�E�h=��ڊ�2N������p��I���� �Q�{�H;qµ2�
����o���y406��j�_j��G��b���������y��}s8}��g⻑u,$���.����|�ʔRCW�<�S]�V�E75����� ����m9�c�i�Ѡ�_�Cd��d�0K���I�9�Y�tߟ`��p�ݫk6\�rC")om��]�����	^O�6��5J
����`���6����C�Z������,�{w��ܧ�W�A�����])�긠keQ	e�!���<9k{��
븷�4�[�b������k[�0K�Tɨ��m^N�,L�p���'K�J��ߧ���t��L`5�kS����P�(�*{rJ�oO�(̤P���ܤ��?76���P#5%���*G��~E�jn~�x���]��)�6A�b��w�I��Ȗ�l/�Њ'��̽��h|���6i��j�>��ˌp�3S�)V�Vj�\���
c�5��!�ʮ%sS��0�F
�Ƣ�/�e�S���*7(Ldq(��?!i-i �Y;Y�/��y�������ug��8�m��T���ЪoB��W�����A5���~o,���>�b=��x
�J"��w ���p�	�,�Xֆ��#Wu�eLց(Vk/*_�y_�	wЕ
���Y�1�N�hz�ɉ�!���bڽ0H�l�i�C�+,��|$�Xj+{�o|&;2�o��;���s��#�u���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T��h^B880hhhc��0n�� w���}��
���0� ���$�8�8�t����� �P�"P��X�"X��`�"`�` ���"�� ���"�� ��"�(�(�"(��0�b(��
 �(H�D��+lib64/ruby/2.2.0/x86_64-linux/enc/trans/gb18030.so000075500000537210150402105760014435 0ustar00ELF>@@H�@8	@�� P�P�"P�"�� ����"��"  888$$ȪȪȪ  S�tdȪȪȪ  P�td������DDQ�tdR�tdP�P�"P�"��GNU�U�m8��m�\��@�j�I�@ @(	BE���|�qX�9� b , F"�(�"�0�"�(�"U`
$__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_gb18030rb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�P�"�X�"�`�"`�"��"�
��"�
��"@���"�
��"p�"�	 �"�
(�"�
8�"@�H�"�
��"��"0	�"�"�"��"�" �"��H��H�	�"H��t��H����5�"�%�"��h�������h���������%�"D���%�"DH�=�"H�ڨ"H9�tH���"H��t	�����H�=��"H�5��"H)�H��H��H��?H�H�tH�U�"H��t��fD�����=m�"u+UH�=2�"H��tH�=��"�Y����d����E�"]������w��������V-���0i��i�81��V���{����P�F��������������?�ʀ�Q�ƒ�?���Ȁ��?�A��ʀ�QÐ����FA�����A�� �����%���	��F�v��?��	�	�����A��A���������A)�D�Ѓ�0�A��A���k�~)׺i�h��@�y��������������A���������)lj���0�@�y����p����H����V��tQ���B�Vk�~Ѝ��F�P)�-������A��ƒ�?���Ȁ��?A�@��ʀA�P�����)��]�f.�����VH����������	��V��?	��tg��n:������̉������r2���)���0��A�H�� ����k�~�J)Ɖ���A�p�������A�)����0A�H���	���f��fA�����H��H�=��"���H�=�"H�������H��H���UTF-8GB18030€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“4”•–—˜™š›œhžŸ ¡¢£¥¦©ª�«¬­®¯²³´µ¶�¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊË8ÌÍÎÏÐÑÒÓÔÕlÖØÙÚÛÜÝÞßâ�ãäåæçëîïðñ�ôõöøûýþÿĀĂ㥹ĆćĈĉĊċČ<čĎďĐđĒĔĕĖėpĘęĚĜĝĞğĠġĢ�ģĤĥĦħĨĩĪĬĭ�ĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁ@łŃŅņŇʼnŊŋŌŎtŏŐőŒœŔŕŖŗŘ�řŚśŜŝŞşŠšŢ�ţŤťŦŧŨũŪŬŭŮůŰűŲųŴŵŶŷDŸŹźŻżŽžſƀƁxƂƃƄƅƆƇƈƉƊƋ�ƌƍƎƏƐƑƒƓƔƕ�ƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩHƪƫƬƭƮƯưƱƲƳ|ƴƵƶƷƸƹƺƻƼƽ�ƾƿǀǁǂǃDŽDždžLJ�LjljNJNjnjǍǏǑǓǕǗǙǛǝǞǟǠǡǢǣLǤǥǦǧǨǩǪǫǬǭ�ǮǯǰDZDzdzǴǵǶǷ�ǸǺǻǼǽǾǿȀȁȂ�ȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖPȗȘșȚțȜȝȞȟȠ�ȡȢȣȤȥȦȧȨȩȪ�ȫȬȭȮȯȰȱȲȳȴ�ȵȶȷȸȹȺȻȼȽȾ ȿɀɁɂɃɄɅɆɇɈTɉɊɋɌɍɎɏɐɒɓ�ɔɕɖɗɘəɚɛɜɝ�ɞɟɠɢɣɤɥɦɧɨ�ɩɪɫɬɭɮɯɰɱɲ$	ɳɴɵɶɷɸɹɺɻɼX	ɽɾɿʀʁʂʃʄʅʆ�	ʇʈʉʊʋʌʍʎʏʐ�	ʑʒʓʔʕʖʗʘʙʚ�	ʛʜʝʞʟʠʡʢʣʤ(
ʥʦʧʨʩʪʫʬʭʮ\
ʯʰʱʲʳʴʵʶʷʸ�
ʹʺʻʼʽʾʿˀˁ˂�
˃˄˅ˆˈˌˍˎˏː�
ˑ˒˓˔˕˖˗˘˚˛,˜˝˞˟ˠˡˢˣˤ˥`˦˧˨˩˪˫ˬ˭ˮ˯�˰˱˲˳˴˵˶˷˸˹�˺˻˼˽˾˿̀́̂̃�̄̅̆̇̈̉̊̋̌̍0̖̗̎̏̐̑̒̓̔̕d̡̛̘̙̜̝̞̟̠̚�̢̧̨̣̤̥̦̩̪̫�̴̵̬̭̮̯̰̱̲̳
̶̷̸̹̺̻̼̽̾̿4
͇͈͉̀́͂̓̈́͆ͅh
͍͎͊͋͌͏͓͐͑͒�
͔͕͖͙͚͗͛͘͜͝�
ͣͤͥͦͧͨͩͪͫͬͭͮͯ͟͢͞͠͡Ͱͱ8Ͳͳʹ͵Ͷͷ͸͹ͺͻlͼͽ;Ϳ΀΁΂΃΄΅�Ά·ΈΉΊ΋Ό΍ΎΏ�ΐ΢ΪΫάέήίΰςϊϋόύώϏϐϑϒϓ<ϔϕϖϗϘϙϚϛϜϝpϞϟϠϡϢϣϤϥϦϧ�ϨϩϪϫϬϭϮϯϰϱ�ϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿЀЂЃЄЅІ@ЇЈЉЊЋЌЍЎЏѐtђѓєѕіїјљњћ�ќѝўџѠѡѢѣѤѥ�ѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹDѺѻѼѽѾѿҀҁ҂҃x҄҅҆҇҈҉ҊҋҌҍ�ҎҏҐґҒғҔҕҖҗ�ҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩҪҫHҬҭҮүҰұҲҳҴҵ|ҶҷҸҹҺһҼҽҾҿ�ӀӁӂӃӄӅӆӇӈӉ�ӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝLӞӟӠӡӢӣӤӥӦӧ�ӨөӪӫӬӭӮӯӰӱ�ӲӳӴӵӶӷӸӹӺӻ�ӼӽӾӿԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏPԐԑԒԓԔԕԖԗԘԙ�ԚԛԜԝԞԟԠԡԢԣ�ԤԥԦԧԨԩԪԫԬԭ�Ԯԯ԰ԱԲԳԴԵԶԷ ԸԹԺԻԼԽԾԿՀՁTՂՃՄՅՆՇՈՉՊՋ�ՌՍՎՏՐՑՒՓՔՕ�Ֆ՗՘ՙ՚՛՜՝՞՟�ՠաբգդեզէըթ$ժիլխծկհձղճXմյնշոչպջռս�վտրցւփքօֆև�ֈ։֊֋֌֍֎֏֐֑�֖֛֚֒֓֔֕֗֘֙(֢֣֤֥֜֝֞֟֠֡\֦֧֪֭֮֨֩֫֬֯�ְֱֲֳִֵֶַָֹ�ֺֻּֽ־ֿ׀ׁׂ׃�ׅׄ׆ׇ׈׉׊׋׌׍,׎׏אבגדהוזח`טיךכלםמןנס�עףפץצקרשת׫�׬׭׮ׯװױײ׳״׵�׶׷׸׹׺׻׼׽׾׿0؀؁؂؃؄؅؆؇؈؉d,`���0d��4h��8l��<p��@t��Dx��H|��L���	P	�	�	�	 
T
�
�
�
$X���(\���,
`
�
�
�
0d��4h��8l��<p��@t��Dx��H|��L���P��� T���$X���(\��؊؋،؍؎؏ؐؑؒؓ�ؘؙؚؔؕؖؗ؛؜؝�؞؟ؠءآأؤإئابةتثجحخدذر8زسشصضطظعغػlؼؽؾؿـفقكلم�نهوىيًٌٍَُ�ِّْٕٖٜٟٓٔٗ٘ٙٚٛٝٞ٠١٢٣<٤٥٦٧٨٩٪٫٬٭pٮٯٰٱٲٳٴٵٶٷ�ٸٹٺٻټٽپٿڀځ�ڂڃڄڅچڇڈډڊڋڌڍڎڏڐڑڒړڔڕ@ږڗژڙښڛڜڝڞڟtڠڡڢڣڤڥڦڧڨک�ڪګڬڭڮگڰڱڲڳ�ڴڵڶڷڸڹںڻڼڽھڿۀہۂۃۄۅۆۇDۈۉۊۋیۍێۏېۑxےۓ۔ەۖۗۘۙۚۛ�ۜ۝۞ۣ۟۠ۡۢۤۥ�ۦۧۨ۩۪ۭ۫۬ۮۯ ۰۱۲۳۴۵۶۷۸۹H ۺۻۼ۽۾ۿ܀܁܂܃| ܄܅܆܇܈܉܊܋܌܍� ܎܏ܐܑܒܓܔܕܖܗ� ܘܙܚܛܜܝܞܟܠܡ!ܢܣܤܥܦܧܨܩܪܫL!ܬܭܮܯܱܴܰܲܳܵ�!ܷܸܹܻܼܾܶܺܽܿ�!݂݄݆݈݀݁݃݅݇݉�!݊݋݌ݍݎݏݐݑݒݓ"ݔݕݖݗݘݙݚݛݜݝP"ݞݟݠݡݢݣݤݥݦݧ�"ݨݩݪݫݬݭݮݯݰݱ�"ݲݳݴݵݶݷݸݹݺݻ�"ݼݽݾݿހށނރބޅ #ކއވމފދތލގޏT#ސޑޒޓޔޕޖޗޘޙ�#ޚޛޜޝޞޟޠޡޢޣ�#ޤޥަާިީުޫެޭ�#ޮޯްޱ޲޳޴޵޶޷$$޸޹޺޻޼޽޾޿߀߁X$߂߃߄߅߆߇߈߉ߊߋ�$ߌߍߎߏߐߑߒߓߔߕ�$ߖߗߘߙߚߛߜߝߞߟ�$ߠߡߢߣߤߥߦߧߨߩ(%ߪ߲߫߬߭߮߯߰߱߳\%ߴߵ߶߷߸߹ߺ߻߼߽�%߾߿����%����%��0d��4h��8l��<p�� @ t � � !D!x!�!�!"H"|"�"�"#L#�#�#�#$P$�$�$�$ %T%�%�%�%�%��%�%$�&������������&������&���������'���('�����8'���L'�������\'�����t'�����'�~���'~���'~�r���'h���'h�d�`���'`���'`�_��(^�]�\�[�� (W�V�U�P�O�<(O�K�J�\(J�I�H�t(H�G���(G�E�A�(�(A�?�4�(?���(?�>�=�@�(=�<���(<��)<�;�L);��,);�:�X<):��P)�%�&' '0'D'T'l'�'�'�'�'�'�'�'((4(T(l(�(�(�(�(�(�())$)4)H)X)d`):�0���)0���*��*����$*���8*�������H*�����`*���t*������*��~���*~�}�{���*{���*{�w�L�*w���*w�u�t���*t��+t�s�r�� +r��8+X)�)**0*@*X*l*|*�*�*�*�*�*�*++0+@+H+r�q���+q�p�o�m���+@+�+�+��+m�l���+l���+l�k�j�i� ,h�f�e�@(,e�d��@,d��T,d�X�T�A�,d,A�?�6���,6���,6�5��8�,�޻��D�,��`���,`���,`�V�U�P�,U��-U�T��$-T��8-T�R��H-R�O��\-N��p-N�M���-M�L�J�I�\�-I���-H���-H�G�X�-G���-�+, ,8,L,\,x,�,�,�,�,�,�,--0-@-T-h-x-�-�-�-�-�-�-h�-��&�&�)�+�+`.5�4�,�*�&������������
�	��������������������ߐېՐѐϐΐ̐Ð����������������������������������������������������������������{�z�y�o�l�k�j�i�g�e�d�b�`�^�\�[�Z�Y�X�W�V�U�T�S��h.G�F�L0F��,0F�E��<0E�D�XP0D��d0D�C��t0C���0C�B�X�0B���0�-$040H0\0l0�0�0�0�0��0B�@���0@��1@�?�X1?��(1>��81>�=��H1=��\1=�<�4l1<���1<�;���1;���1�0�01 101@1T1d1x1�1�1�19�1;�:�X�1:��2:�9��29��(29�8��828��L2�1�12 202D2T2�\28�7�6�E�26���26�5�L�25���25�4���24���24�3���23��33�2��32��,32�1�4<30��P30�/��`3/�.��t3.���3T2�2�2�2�2�2�233$343H3X3l3�3�3Q�3.�-���3-���3-�,��4,�+�)�'��4'��84'�&�%�H4%��`4%�#�Lp4#���4#�"���4"���4"��X�4���4����4���4�3�34404@4X4h4|4�4�4�4�4�4�4�4�5���L5��`5�oiXp5oi��5�4X5h5|5�5]�5�5$�5�0�1|2�3D5�5�5������������������~�}�y�x�w�v�s�p�o�n�m�l�k�j�i�h�g�d�c�b�a�_�\�Y�X�W�V�U�S�R�P�O�N�M�L�K�I�H�E�D�C�B�A�@�=�<�;�9���5oiZ��6�Y�YL�6�YiYfY�	�6eYdY�7dYbY`Y�	$7`Y_YX<7^Y�P7^Y\Y�`7\Y�t7[Y��7�5�6�67747H7X7l7|7�7�	�7�7$�7�5�7�7z�y�x�w�u�r�q�p�o�m�n�l�k�h�d�b�a�`�_�\�[�Z�Y�X�W�S�Q�J�G�D�C�A�?�>�;�:�8�7�6�4�2�-�*�'�&�%�#�"� ���F
�7[YZY4�8ZY��8ZYYYL�8YY��8YYXY�9XY�9XYWY�,9WYVY�@9VY�T9VYRYQYOYNYd9NYKYIYFY#�9FY��9�7�8�8�899$989L9\9|9�9�9/�9FYDY2Y��92Y(Y$YYY�:Y�(:Y�X48:�X�L:�X�X�\:�X�p:	��:�9: :0:D:T:h:x:�:��:�:$�:�9�:�:_�^�]�[�Z�Y�X�V�U�S�M�H�E�D�B�@�:�9�8�7�5�4�2�1�0�*�)�$�#�!�����������������
�����������������������������;�:�:&�#�!� �������������	����������������������������ޏ܏ۏڏُ؏֏ЏϏΏʏɏǏÏ����������������������������������������������~�}�u�s�r�q�p�o�l�h�e�d�c�b�a�_�\�[�X�U�T�
�;�:���������������������{�q�p�n�j�d�b�`�_�]�\�[�Y�X�U�T�S�R�O�N�M�I�H�G�F�D�C�A�@�>�=�;�:�9�5�4�1�-�+�*�%� ���������������
��
����������������������
�=�:1�/�.�,�+�*�(�&�%�#�!� �����������
��
������������������������������>�:%�$�#�"�����������
����������������������������ߎގ܎ێَ؎֎ӎҎЎώΎ͎̎ɎȎǎƎĎÎŽ�������������������?�:������������������������ߎގݎ܎ڎَ؎׎֎ՎԎӎҎюЎ͎ˎʎɎǎƎÎ��������P�@�:�������������������ݎڎَ؎֎ԎӎҎώЎ̎ʎɎȎǎƎŎÎ��������������������������������������������������������������!�A�:֎ՎԎӎώΎ͎̎ʎɎȎǎƎŎÎŽ��������������������������������������B�:�����ݎێڎ؎׎֎ՎԎҎώ̎ʎɎȎǎ����������������������������������������������������������������������u�t�p�l�k�j�i�g�f�d�b�a�_�^�\�[�Y�W�V�O�M��<C�:�����������������������~�}�z�y�x�w�v�u�t�r�q�p�o�n�m�l�j�i�g�f�d�c�`�_�^�]�\�Z�Y�X�W�V�U��|D�:��������������������������}�{�z�y�v�s�m�k�i�h�f�c�b�`�_�]�\�[�Y�V�U�T�P�N�M�K�I�F�A�?�>�;�8�7�6�1�0�e@E�:q�o�l�k�j�i�h�g�e�d�]�\�Z�Y�X�W�V�T�S�Q�O�M�L�K�J�H�G�F�E�C�?�>�<�;�:�8�6�4�3�2�1�/�,�*�$�#�"�!������������
�	�������������������6F�LGTG$\GdG/�.�+�*�'�&�#�!�����������
��
����������������������������ߍލ܍ڍ؍׍֍ՍԍҍЍ̍ƍčÍ������������������������lGdG����������������ݍ܍ۍڍٍ؍֍ԍӍҍэЍύ΍ō����������������������������HdG�����ߍ׍֍ՍԍӍЍύ͍ʍƍč��������������������������������������������������������w�v�t�s�r�p�o�m�k�j�d�c�a�^�]�\�Z�Y�W�U�T�S�O�N�K�J�I�H�G�E�D�@�=�<�:�8�7�6�5��TIdGv�u�t�s�o�n�m�l�j�i�g�f�e�d�c�b�a�]�\�Z�X�V�T�S�Q�R�P�N�M�L�K�J�I�D�C�B�A�@�?�>�=�<�9�8�6�5�3�1�0�/�.�-�*�)�(�&�%�$�#�"�!�����z�JdG\�[�Z�Y�X�W�V�U�T�S�Q�N�L�K�I�H�F�E�D�C�A�@�?�=�;�:�8�7�6�5�4�3�1�/�.�-�,�*�)�(�&�%�$�#�"� �����������
�K�KdGE�C�B�A�?�>�=�<�:�7�6�5�3�2�0�/�.�-�*�)�(�'�&�$�#���������������
���	��������������������������LdG3�/�.�-�+�*�)�(�'�&�%�!� �������������
�	�������������������������������������ߌ݌׌ԌьЌόΌ͌̌ɌnjƌČÌ������������������������������������MdGیьЌό͌̌ˌɌȌnjƌŌŒ�����������������������������������������������������������������������������OdG֌ՌԌӌҌьΌ͌̌ˌʌƌŌÌŒ��������������������������������������������������������������������OdGیڌٌ،׌֌ՌԌӌьЌό͌Ȍnj`�PdG������������������������������ߌތ܌یڌٌ،ҌьЌό͌̌ˌʌɌȌŌČ������������������������������������1QdGތ׌֌ӌҌьЌόΌ̌ɌnjŌČŒ���������������������������������������������������������������~�{�z�y�x�v�u�r�q�p�l�k�j�f�d�a�]�[�Z�Y�X�W�V�T�R�Q�O�N�M�L�J�I�H�G�D�C�>�<�6�4�3�2�1�/�+�RdGj�i�h�f�d�b�a�`�^�]�\�[�Z�Y�W�V�U�R�P�O�M�L�K�I�F�E�D�C�B�A�@�?�=�;�9�8�7�6�5�4�3�1�0�.�-�+�*�)�(�'�&�%�$�#�!� �����������������SdGG�F�E�D�C�B�A�>�=�<�9�8�7�6�5�4�3�2�1�0�/�.�-�,�+�)�(�'�&�%�$�#�!��������������� �TdGQ�O�N�L�K�J�I�H�G�D�B�@�?�>�;�:�8�7�6�3�2�0�+�*�)�&�#�����u!�UdG[�Z�Y�U�R�Q�P�O�N�L�K�J�H�E�D�A�B�@�?�>�=�<�;�:�7�6�4�3�2�1�0�/�.�-�+�)�(�'�&�%�$�#�"�F"VdGa�`�_�^�]�\�[�Z�Y�X�V�Q�P�O�N�L�J�I�H�G�F�E�D�B�@�?�=�<�;�9�5�4�2�1�0�/�.�,�*�)�%�!� ������#�VdGqr��·ˉˇ¨������D~�����������±×÷�������������������������/�����j���������p�c�o�����������°�����¤��§���������#�%�K�M�;�=���_�b�a����#�WdG(�< �H�p�.�n��x����$�XdG�����%YdGQRW�y[&@YdG����q,'`YdG��ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ+αβγδεζηθικλμνξοπρστυφχψωC����O���TV�'�YdG12АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя:�(�ZdGˊˋ˙'�&���9�6���/�&�#����������������������x�n��āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ�ńňǹɡ����)�[dG�����������z�x�v�	kjm/� �oC�p[���]�V���			B���������p*�\dG[�Z�X�V�M�K�H�G�F�E�D�C�@�<�:�9�5�4�3�2�/�-�.�,�+�*�)�'�&��(A+H]dGŕĕÕ•������������������������������������������������������:),�]dG?�>�<�:�8�6�5�3�2�1�0�/�.�*�)�(�'�#�!� ����)�,`^dG������������������������������������~*�-�^dGD�C�A�@�?�>�=�<�;�8�7�6�5�3�0�+�*�(�&�%�$�#�"� ������������ +�.(_dG��������������������������������������������}�z�x�v�u�t�s�p�o�n�m�l�k�h�g�e�d�a�^�]�\�Y�X�W�T�S��+V/�_dG���������������ߗޗݗܗۗڗٗח֗՗ԗN�Zx׶s�ι��޹�T�e���%��t�xw�� ����������g������^�	�Ŏ3��T����q�l�Һ����W��а���Qw>���m��wj���Q��R���b�������E����f���Zv]�p��������E��?~��a�L�i���'�a��yb�̂������'0�`dGs�q�p�o�i�h�e�d�c�b�`�^�]�[�Z�Y�X�W�T�S�R�P�N�M�L�J�K�I�E�D�C�A�@�?�=�;���x��z�+v�����(�s��5���V���!�ގ��{�����Ů���_�Ō����������ŢU����p��~��F��������ȱC�ҙ�yp�İ
�1���Tyy(x�������~�5�4��ڧx�K�|�s[�����}�^���/���z�@�-��*�xvB��0�bdGژט՘ԘҘј͘˘ȘƘĘØ˜������������������������Ӛ#�ߜ������{��F�޽���{�v���q�������9vX�R���K�Ѹ����O�v����ҫ����k�o���R����~X�����w�1�<�ۯ�K�������'�����զک��@���0�L�����n�
��������-����P�����!��o��1���bwׄϑ�{J��zOx�ߝ�1�ddGQ�P�O�K�J�I�H�B�A�?�=�<�9�8�6�5�4�1�0�.�-�,�&�%�$�#�"�!� ��������^�|�b�|����A�[�p���� �}��u�:�dzu��F�>�
��5�)���Џ���N�Ʊ/�q{9�O�+�͗�f���y�j���۰A��H���>w�Ƚ؛̮��o����bw��UrM���s��4����*�r�״?�#�u�n�׃ė�m� ��d�����Ͽ�}�G�i��|#{2��{���2�fdG����������������������������������������������������������X��Ú��������´!�d���j��s����F���|��s�#�8��}.���s�,���¤�����ɓ������{ �w�ɝ�^���t���\�V�׻ÿ������6�C�Ȗ
�R��7�m���*�ёל ����������2�ή���}��(�������ù��s�J���ɴj����h�o�ǂk3�hdG*�)�(�'�&�#�"� ������������	����x�\�հb�G����ْ��s�\���åLJm�܌U���P�J�I���K�g����;�����z���d���#�7�P�N�C�v���/���v�Ѥ܃{����&����9���N�������ƒ��6{U��A�!�c��|2�������J�����$�&�]��}��b��Z�#���R�|����<4�jdG��������������������������������������������������������~�}�|�{��������&|�uq��������A�������>�����P���N~j���ڞ��Q��,�ˡ����A�o�`�}$����/�ә֜�����¼x��~Ҹ#���\�i�Q|�5�՝��N������>�(���������˼����v �H|-�ºr�e�n����n{�������޸~{çi�
5tldG�����������
�����������������h��@�L���N��ʨС����9��������g���Ĥ�؅�����C|֨h�����w��������~�ˑ`~^��|���Ɖ��'�����p��������p���S�I�����ֵ��-���ع/�َ�Ҁ}0����3�Ɩ'�������s�G�w�,�_���ҩ̚�����5|ndG���������������������������������}�|�{�y�x�w�u�t�s�r�q�n�m�j�*������r�����ń��t�S�	�V�3�9�#�_���'�����y�7�����p�.���'�B���Պ��:�$��6�N���|��ś(�P����g�g�C���+���4��:���s���J��{H�D��������������߲ٴ�x�K�s�}������W����������ݖ��Z�<��6TpdG��������������������������������������ߛכ֛՛ԛӛֿZ����a���1�x���6�������H�����8����
�Δפ
�,������� �)�����U���x���}���|�D������w��ǴȎu�����Ԯ\�8�1��2�N~���������[���l��������Bx�{��|�n����������b��!����V���-�-��7XrdGr�p�o�n�m�k�j�i�g�f�e�d�c�b�a�`�^�]�\�Z�Y�X�U��}0�#�u����~<������x��Ӽ���S����^����!���Y�h���F����(�M�ͬ܇=�����T�I�"�I�����8�p�����?�ǂ��a���jz����z��K��m���/���x���k���e��z��R�ʹA�[�6�����N�����o�����������~�#�*���Q8xtdG�������������ݜܜq�K�n���
��g����S�d�Ҫi�����ʍد�����]�����\�؉��P����ˣT�����?�i�p��zĠh���:���͸x���z�z���Y���B��k������=�k����o���ڟ�����(���z�г���~���������|�1�ӷ�ނŌu���������z����`�"9\vdGx�w�v�t�s�q�n�m�l�j�i�h�g�f�e�d�c�b�a��4���۪��||��������!�˱�X�������8�8�����������ӕ3�4�R���J�v��l�������ݴ�|�/�ܛ������U��*�q�B�������������V��Z��~�þ�����a�5�o�h�ݛ��#���4�o����i���������{�����1�ŅG����9 xdG���3�i�I�,�������������]�E���?�R�����:�_�d�����������m�1�������Ɇϣ���ܨ�E����C�j�O�F�C���2�ܷ%�E�ԡv�����%�O�~�c�]�j��֮���
�ɹ�8������<������B���Į��ĞƆ(�Ə�}���q�"��}��:�ydG������[���T�9���B�(����׻��՝�@�8� �P�'�?�P�)��Y�ѡӡ����˸@��"�̄u�C�_�k��n�ٶŚ��5���+�&������R����N����#�x��f��_�������������1�w����~������m��a���_�Q�����#�:�.����%�K�X������;�{dG<�=�;�:�����@���
���>�������,���=���}���[�������6�ΠT��������ѬV�@�ݚʵŴ�%���������w���"�Ǒ���"�V�y���R�}�z�(�0���o��%���7��a�F�����.�Ϻ�����j�9���'�������&��������8�_��1�L�}�����u�f<}dGٟ؟ןɟğ����������u�p�c�K�J�I�H�F�D��r��7���W�����7�ο�� �ۻ���]��C���F�V�ЙD���ʻâ��C������������֯��)�«�����X�e��c�Ş[���_��.���}�ׇb�R������B��K�\���|�$�D�5�]����'�Яު���C���`�����ն��e�>���k���k�i�%�7=�~dG�ߟޟݟ۟؟ן՟ԟӟҟџПϟΟ̟͟ɟȟǟƟğŸ����������������������Τ����������M��ŏ4�������N�r���a������0�D���/��9�
����q���&�����[�<�A�a��-�����'�����6�צ������������	�&���W����D��k�l�5�]����J�ޫ4�~�[�����ɩ������X���Z���6�>��dGS�Q�P�O�M�L�J�H�D�A�@�?�9�8�7�6�0�/�.�*�)�(�'�%�$� ����������T� �����̤��V���A�����D�Z�)�� �{���m�1�S�.�^�n���B���ۋ���V�[���m���5�:�ޱġ����\��S�X�*�f�+�_�����*������~�����/�8������W��W�%�F��a�x�c������y�D���$��\�]���ߛ����ʱ�>��dG��������������������������������������������������y�s�r�q�p�n�m�l�j�k�c�b�a�`�_�^�]�[�Z�Y�X�o��o�������t�����ǵȩތ6����k��r�c���)�9���M����"�t��)������!�ԋƋ����'��������g���.�h��ԑ����[�������
�������C������ע{��\�����K�L�՜z�׵*�+���=���P�̓���v�ȕ}��?��dG�����������������ڠ٠ؠנ֠ՠԠѠРϠΠ͠ˠǠƠŠĠ���y�����4�J��u�����˃������[���J�ں�K�������]���_���ȫQ�Q�s�����l�����
����M���}�o���
�������P�Ԍ��m�O�L���֡&�‹�������z���a�ג$����m�$�.�i�����h�Ʉ������o������k�I����t�{@ĆdGc�b�a�`�^�\�Z�Y�V�S�Q�P�O�N�L�J�G�F�B�?�8�7�6�5�4�3�2�1�0�/�.�����?�.�����L����.�����2��W�	���������������ܝ]�=��K�����������*�q�&�|�����j���ɬr�����v�,�
�����3�I���#�E���������p���s�B�'����9��U�w����k��A�߼����=��ݫ��x�G�k����LAȈdG͡ʡǡš¡�����������������������������������������������������~�}�|�s�r�p�o�m�l�i�g�d�c�b�^�[�Z�4�[���c�����^�4�ڨS�\�
�͋��ů@�"���������W�^�G�����A������i�X���4�v���z�Ԕ+�k�q�ɏ��?�e�ޠ�������^�g������������������ҵ�K�e����w�y���ѣ�������U�p�f������������۸,���u��I�e�BĊdG�������������ۡ١֡ԡӡҡСϡ̡͡ˡǡȡá������������������������������(�\�%�5��ؐ[�ޕ"���|�%�І��Z�L�F�e�w���a���f��V�^�'��~�|��q���H�7�W��j����)�������9���Ģ����H�&�������������U���]�����\�׷�j����j��]���n����7�������(�c���*���C�����շ�B�dGI�F�D�C�B�@�?�:�9�8�6�1�0�/�-�,�+�'�&�%�$�!� �������c����������\��ع:�ٰ����n�
�n��r�7�b���@��ם
�|��+��ұ������E�L����ҵ������ݎ��"���>��v���������m�D�>����?���P���ƞ��c�\�.�m���}���u�������ؑ��D����[�ܹǢ��.�������4��C0�dG����������������������������������������������������������z�6�I���u����4���B�0����������h�p������H�P�T�^��Ǥj�C���9�L�Αd���Z�	�9�i�x���/���}�u�y�����՞'�|����@���ُ������r����˥s�������T���!�����g���9����"���a�I�u�Ҳ/���ع�Ͳ������D$�dG4�3�2�1�0�/�.�-�+�$�#� �������������1���y���m�����"�˜k�3�d���������ˏ+�����Ͱ1�c�<�����{�������.���(���������T�����6���U�������%��������8�G���I�������X���5�%�O�H�H��˦
�P�z���r�D�5�T�
�u���ʉ������������m�=���ĹaE�dG������������������������������������C�b���G�,�t�����������f���q�E���z���0�����X������|��������<�2�����������L���B�����A�Ù:�
�ҝ��q�������h�������2�����%��
�T�`�=�C�^�Q�N����R�`�����=�������ݮ�=���êݵ̬������p�{���2F�dG>�=�<�;�:�9�8�7�6�5�1�0�/�.�-�+�{�O���Ωɧ������C�x���4�X�\�}�}���O�+���@�����J�¾ �����	�S�`������!���������#�ع5�*���Ħ��ǚ�V�%�w�V��S��I�%�����ƕ�A���_�����O�
�K��������z���˵|�ը�������������0���n���2�G��dGʤɤȤ����������������������������������������������������������������X���>�����c�W���P�3����ȖA���1�W�ˬе5��z������1���"���4�W�����f�n����+�@�����›��U����o�������]�P���)���������������;�n�������^�4�a����U�K�����O��L���������a�L�e���p������p����G��dG���������������
�	����������������������������)�����X���p���g�U���ݩ������~�k�������:�_��.�b�e�������F�L�����0�4����������Ӗ���ַ����&�+���)�d���J���s�(���q������:�0������u�H���������3��������}���G�J�����S�]�o��������ӗ{��H��dG�����������������������������~�}�|�{�z�y�w�v�t���*���������������R�#� ���y�G���
�ǘ��������"�3������.����˺�������=���w���%�����q���՗:�������c�����V�L�1�)�]����߶6�c�A�*�����}��{������9�l����������ĩ������M��j�>�.���vI��dG�����
��
�	������������������������������<�y��$���V�K��Z�T��U���l����������5����������b�
�������	�������x���Z�����N���9�c�$�{�6�Q�{���������׭��X��I�����8����љ�E���>���ߗ����g�S�,�!������Z�����~�n�����J�O�G�)�q�GJ��dG��������������������~�|�{�w�v�t�r�p�o�n�m�l�j�g�f�e�c�b�a�`���6�q���(��8�+���a��������ģ��9���!�P��������%�������t�����^���������$�	���������������� ���˥0���@����(�������b����L������v���*�ţT�^�������}�z�x�G�_����������t�����r���^��K|�dG������������������Q�r�5�
�y�������1� ���s�V�o�o�ٞ��J�5��������d���������y���ś���V�*���e�¶��ϯ/�?�&���g���E�����p����R�<���>�W��Y�
���Q�+�1���������<���2�פ��������}�	�3������������,�������e��Kx�dG������������������~�}�|�{�z�(���i�'�,�	�v��|�;�\�֡C�޺6��=�������J����������%���*��9�����>������������
����}�������y��ۥ�R�
���C��M�v���Я~�����^�������Y�W�������d�+�^���*�_�
�_�*�����3��O������B�l��L$�dG���$���ũ�1�0�k�����^���"�������P���k����Ѣݯp���O���
�*������������,�ס��X����O�g�p�њr����������O��R�C���!���R�w���ȱl�l������:���>�<�`�x�âb�o��ĥ����������O�`�������?��������M�dG����������r������Q���اI��� �k������0����ݼ����[�y���S���ܸ[�����ٸJ�����1��i������������*�����K��V�e�d���H���c�:����<�ѳ��������=���ھ���æZ�=�O�,���������3�����m���g���~������\Nt�dGS�R�q�Ҿɣڨ���o�n��������c�Z�ߵ[������D�p�)�n���N�������������ŲL�������D�ֺ����)����
�4������+�T�����������k�����
�2�d�A���I�+�D���;�����������פ��|�'�C���������H�2�ŧ����-O�dG�����ש̩ĩ����y�I���=� �	�s�������5���I�޹<�"��"������������W�P�������k���c�k�����n�w�|�A�t�F��}������i�����K���z����v�˚����:�ֶ����f������'���
�������&�`���[���|���s�������������I��M�O��dG����������������������������Z�����X������o�6�:�|��g���a�|�o�=�����ʵ���3���}����Z�N�%�1�_�O�����1�"����^�g�����������n�e�i���������������w�u�{�)�\�X�Z�L�J�\�����!������	����������������������������P8�dG����9�B�h�^�&�)�
����$�(������������������������g���������������@�|�k�y�t�W�I� ����������������������{�o��6���d�k����D�\�������ڭ��������F���5�{�F�6�ض�n����9�G�B�7�9��Q��dG)�&����������ܪ۪٪ת֪ժԪӪЪϪΪͪ˪ɪȪƪĪê����������������ڬ׬٬֬լԬҬЬͬʬƬŬì����������������������������������������n�^�����������������������}�y�t�s�`�\�S�;�U�R�Q�V�D�P�>�@�;�qRl�dGb�`�^�[�Y�X�U�T�S�R�M�L�K�I�H�G�F�C�A�?�>�<�;�:�8�7�5�4�/�-�,�+�*�(�&���˨֨ިͨڨب����Ǩʨ������������|��v�m�k���q��	������������������������
���k���{��(�L���������������y�����o�T�U�`�b�v�r�j�n�5�?�X�3��@�4�V�J������8��������BS�dGīë«���������������������������������������[���<�6�"���&�������1�.�-��$��,�#�!���
��������ط������'����%��·շ��ȷݷ��ڷƷ��ӷ������Q�������L���������������ķ����T�dGR�S�0�~�1�/�2��(������
�"�,���.������������з޷������ݷ���������������ͷ	���۷�q�}�u�w�^�K�Z�L�����p�d�O�N��������&��'�-��H�1�7�U����������ն���T��dG��٬άɬ�������������������������������������������������������������B�^�����C�U�6�;�'��`�2�*����!��1����(������޶�׶��������}�������|���j�f�i�����������{�^�*�������������������'���e�]�J�%�m�/�R�t�0�#�������� �����"�+�������������������o���_��U�dG�������
��
�	�����������������������������������ܬج׬����������������~�v���������J�����������������g�a�`�t���b�����;�*�H�O�]�(�@��������&���_�/�����
���1�8��������������������������^�9����������������V�dGu�s�r�q�m�l�k�h�f�c�b�a�`�_�^�\�[�Z�Y�W�V�U�T�S�a�C�%�j�n�����������*����0�����������������������������������1���������������x���{���s�}�����T�w�k�r�c�[�N�3��
�������������������������������WWܹdG�������߭ݭܭ׭ѭέ̭ͭ˭ȭŭí������������������a�U�F�@�>�<��%������
��������������������������������������h�������X�j�W�]�~���b�K�5�2�]��
�`�]�S�O�N�L�D�A�?�4�0�)�#�~���5�3�0�.�$�'�������������������(X|�dGQ�R�������z��������~�h�}�w�l�t�V�Z�Q�I�>�<�.�����ȧ����O�L�E�C�>�<�9�7�5�3�1�0�F�6�=�3�%�+�����}�������������������������������������������������������y�x�z����XL�	���TG���:�YľdGԾ�:��.��������
�������������������������������h�>��!����������ӫҫ̫ͫ˫ƫū��������������������������|���7�V�L�I�R�w�m�l�]�;���:������
������A� ���JZܾ�:������_�r���X�T���������v�U�u�o���W��<��
�P��R�7�Q�����������������������������W�x�\��j�D������� �:�����1�0���#��(��O��A����������������v�������e�b�d�y���w�z�$�[<��:-�,���������������������������l�q�X�J�)�&���������}�������o������ֳγٳճͳ����������������������~���j�{�r�z��c�[�W�R�X�Q�����������7�����t�����,�������x�����o�n�e�J�R��[���:˰ʰ�����������������������������y�x�����p�J�h�^�S�A�����C����������	�������������������������w�m�`�����t�b�a�`�\�_�]�Z�X�W�R�Q�O�N�L�K�J�I�H�Q�P�O�N�L��\��:i�h���������������������������������������������������������������X�T�����A�I�G�+�8�<�
��(�-�!�����j����1��������������������]\��:���������ȱ����������z�w�}��Y�?�E�H�(�3�#���$���
��������Ůf�`�V�m�M��1�O�G�#��H��!��6�K���������������������������������y���z���\�����|���}���������5�x�v�[���.���������_^l��:����������߱ұͱ̱˱t�������E�����.�g�A�`�F� �:�&��0�u���$���%�I�M�8�����
�	����������'���1���������_�������(�y�o���>�T���x�U�A�C�+�����X�T�K�R�F�A�9�y�x�u�t�s�r�p�o�m�j�0_���:k�g�U�N�C�?�=�;�:�8�7�6�0�-�+�*�$�!� �����������
����Ϲ�������������z���������������z�������B�������3�������������a�m���t�n�d�o�P�D�=�#�.���������������������������������y�I�����|�n�j�d�c�b�`�����E�`p��:������������������������������������������������������~�{�z�y�x�w�Y���������������������������������z�x�Y�D�c�_�\���R�����%����������	�������������������������������}�����������������l���r���|�j�{�����6�d�k�]��M�G�&���*�:��`0��:�������
���
�	����������������������v�d�c�Z�X�F�ϱα˱��g������Z������������������5��!�����������������������R�j�_���W���S�5���(�1�������������l���t�"�����������������������������}���t�j�f�W�K�@�#�%��a��:������������������������\�<�@�4�[�D�;�������E����������(�*������������������	��������������s�U�m���v�|�_�/�8�2�F�.�-������
���������������D�����������������������������������tb���:(�)�6�4�������������k�f�Y�]�a�O�9�3�*�V�N�Q�i�J�?�C�<�5�9�������6�3�5�4�0�.�1�-�'�!�#� �������������
���EcX��:ȴ�������������������������������������������������������������������������������������~�|�{�z�x�w�u�t����"�����������������d`��:/�.�-�,�+�*�)�������_�b�I�̯��-���
��������y�������{�}�y�x�z�v�t�s�r�q�p�n�k�j�h�g�c�a�]�b�?�>�=�4�8�*�%�"��+�-���
�������������������������������������dt��:����������}�]�x�{�\�p�n�`�k�^�d�W�G�R�K�>�;�����5�/�*�)��
��	��
��U�Q�I�?�>�<����
������������������������������q�]�N���)�(��������������������������������������o�{�t�r��e���:=�>��
��������X�R�;�:�*�0�/�1��!�$�����
�"�
���������������������������������������������������������������`���g�k���x�|�����r�������_�D�L�#��f@��:ݶ׶Ƕ¶������������������������������������������������������������������������������������������������z�x��t�s�������������������|���������������������w�v�]���u�h�\�g�i�K�6�&�3�C�9�H�;��(����������������Zg���:0�/�.�-�,�+�*�)�'�"������y�o�t�c�[�]���������_���z�y����s�q�l�h�g�d�Z�V�N�9�3�1�����^� �����G�{�4�)�+�*�'������	�
�����.�
����������������j�<�5���J�.�3�u�e�V�Z�;�����������������+hH��:����6�8�*�2�-� �,�(�����������������[�3�������\�M�����������������������������������������������������p�k�f�t�`�W�S�X�L�s�j�c�i�W�\�V������h���:[�\�������]�v�J���������������|�z�x�k�*�(�'�&���������������ܽ/������W���4���Z�G�E�C���B�@�?�>�:�8�7�6�5�4�2�,�*��i��:��������������ݸܸڸѸ͸ȸ������̸ʸɸǸƸĸ+�#�������������\�������������z�}�y�{�w�t�޼����t�v����ߺ�պٺ˺źº�������Y�U�S�M�
�D�C��������̶ö�����������j��:T�U�dtok���:���uok���:�����uok���:4�/�-�'�&�#������
���������������������Jv@l���:���������������������|�z�y�x�w�u�t�s�q�p�n�m�l�k�j�i�h�g�f��vmX��:����������������gbbb�a�a�w�m���:+b*b)b&b bbb�-2t�-�'(�-�&8&E&�-�-�"?#�"{"�!�"!���-�-2�-�-����(TO���-5������3t���|�0x�n<�0�6�8�;�=�>�?�@�A�B4CtD8EFDG�HLI�J�K�L�MO�O�PQR�S�T�UV�V�W�XY8YXYxY�Z�[�\@]�]X^�^ _�_�`|b�dxf�h�jlltnLpPrptTvx�yx{}�~x�|����������(������|�����|�t�p��إl����0��d���|�ص�Թt�D���4����T�d���h�(����P�X�l���8���@�����|�������P���4�<��oD������� ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P����`��p���������������� ��0��@������P��`��p�������������� ��0��@��P��`��p�pL������������� ��0��@��P��`��p������������ ��0��@��P��`��p�������������� ��0��@��P��`��p���������������� ��0��@��������P������`��p���������������� ����0������@����P��`��p�pX��������������� ��0��@��P��`��p������������ ��0��@��P����`��p������������ ����0��@��P��`��p������������ ��0��@��P��`��p�������������� ��0��@��P��`��p������������ ��0��@��P��`��p�pd��������������� ��0��@����P��`��p�������������� ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p�������������� ��0��@��P��`��p������������ ��0��@��P��`��p�pp������������� ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p�����������p|��� ��0��@��P��`��p������������ ��0��@��P����`����p���������������������� ����0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p�������������� ��0��@��P��`�p����p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p���������p������ ��0��@��P��`��p������������ ��0��@��P��`��p�������������� ��0��@��P��`��p������������ ����0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ �p����0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`�p����p������������ ��0����@���@�A��P��`��p������������ ��0��@��P��`��p�B������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P�p����`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p�€��p�������� ��0��@��P��`��p�À�Ð������ ��0��@��P��`��p�Ā�Đ������ ��0��@��P��`��p�ŀ�Ő������ ��0��@��P��`��p�ƀ�Ɛ������ ��0��@��P��`��p�ǀ�ǐ������ ��0��@��P��`��p�Ȁ�Ȑ������ ��0�p����@��P��`��p�ɀ�ɐ������ ��0��@��P��`��p�ʀ�ʐ������������������������������������������������������ ��0��@��P��`��p�ˀ�������������������������������p�������ː�������������������� ��0��@��P��`��p�̀�̐������ ��0��@��P��`��p�̀�͐������ ��0��@��P��`��p�΀�ΐ������ ��0��@��P��`��p�π�ϐ������ ��0��@��P��`��p�Ѐ�А������ ��0�p����@����P��`��p�р�ѐ������ ��0��@��P��`��p�Ҁ�������������������������������������������������������������������������������������������������p�����������������������������������Ґ�������� ��0��@��P��`��p�Ӏ�Ӑ������ ��0��@��P��`��p�Ԁ�Ԑ������ ��0��@��P��`��p�Հ�Ր������ ��0��@��P��`��p�ր�֐������ ��0��@��P�p���`��p�׀�א������ ��0��@��P��`��p�؀�ؐ������ ��0��@��P��`��p�ـ�ِ������ ��0��@��P��`��p�ڀ�ڐ������ ��0��@��P��`��p�ۀ�ې������ ��0��@��P��`��p�܀�ܐ������ ��0��@��P��`��p�݀�ݐ�p������� ��0��@��P��`��p�ހ�ސ������ ��0��@��P��`��p�߀�ߐ������ ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0�p���@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p�p$����������� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p���������p0��� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p���������� ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P�p<���`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p������������ ��0��@��P��`��p�������pH������� ��0��@��P��`��p������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1�pT���A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q�p`�������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q�����������pl���!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q�px���a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q�������p��������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1�p����A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q�p��������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q������������!��1��A��Q��a��q�����������p���p�%�	q��p���C���'���&����������~������������������+q��p('��.���mq<�pL'������9���6������/�~��q\~���r�(�h��q�h�b�_�a�d���`�3r��p�'`���_���^���]�/�\���[�����&���W�#�V���U���������P���O���������K���J�ur�J���I���H���G�p�j�E�o���A�c�?��rx?���>�/�=��<����r��p,);���:�;s��pP):�p�0�H�}sH� ���s0�p*���pP��������t`������������M�K���=�;�������Ct|��%�#�~��}���{���w��t�w�����u��t��t���s���r�	u�p8+r��-q��-p�o��-�-m��-l��-k�j��-i��-h��-f�e�Ku@e��-d��u��pT,d���X��u�,4LT����p���(@HXt��08����v�����T���V�������x�������A�n�?��6�B�5�SvT5�W��v�W������޻���v�����[�]���w�����`�[w�p�,`���V� �U��w$�p-U���T��wL�p8-T���R���O���N�!xlN���M�z�L�x�J�v�I�cx��p�-I�(H��'G��x��p�-G��&F��x��p,0F�E&E�8&D�)y�pd0D�?#C�ky<C��"B��yT�p�0B��"�"@�{"?��yt�p(1?��!>�1z��p81>�!=�sz��p\1=��<��y��p�1<��;��z�p�1����<D\d�����,4Ldl���������z ;�:�9{��p2:�9�{{��p(29�28��{��pL28��7��6��{	6��5�A|,	�p�25��4�9{L	�p�24�(3�2��|l	�p,32�T1�O0��|�	0��/�}�	/��.�I}�	�p�3.�5-�,�+��}�	+��)��'��&��%���#��}
�p�4#�"��{X
"�����~p
�p�4�|�Q~�
�p�4����y�
�p`5����5���4�����������������,�����*���������&����������������������u�|��������������s�����}����b�g��������g��~�
��
�u�	�a�c����Z���Q���N�}��^�v�j���u���j�p���Z�_���J�G�}��z��N��y�X��m��%���~��<��W�g��.�i��C�_��,�
�%�H�����$��ߐ�F�L��ې���1�J�/��Ր9�����
�ѐ�5�ϐ6�ΐ�̐�����!����(��� �Ð��������������������������������	������������������������������������������������������YT
������������������������������������z�������������������~�����v�����h���������������������^����@������\���e�v�I���y�{���z�p�y�B�{�~�����������9�z�o�J���o�l���k�s�j�[�i�x�b�g�U�)�e�&�d�(�b�$�1��`��)�^�M��\�i�[�6�Z��Y�
�X��W��V��U��T��S�����=�0��9�������3�6�����������
� ������������%��������~���}�������y���x���w���v�������s�������p���o�n���m���l���k�a�������	$	<	D	\	d	�	�	�	�	�	�	
H
P
h
�
�
�
�
�
�
��L
8�|8��@k�l�����j���i���h���g�������d���c���b���a�����_�������\���Y�k�X�p�W���V���V�|�U���y�S�g�R�t�S�P�k�O���N�>�M�3�L�W�K�=�5�I�I�H�@��'�xu�E�'�D�k�C�b�B�J�A� �@����=�*�<��;����9�z�i��z��y���x���w�����u�����r���q���p���o���`o�����m�n�����l���k�����Z���h�^�������d�w���b�w�a���`�x�_�f�����\�P�[�P�Z�9�Y�}�X�:�W�W�6���k�S�C�8�Q�\�N�z�e�_�c�F�J�t�a�X�G�/��4�\�\�D�L�C�C�+�A�L�C�?��>�C��?�;��:�X��8�1�7���6�����4�G���2�3�@�B�*�:�-�8���$�*���9�7�'�q����&��%�����#���"��� ������_���^��]�����[��Z���Y���X�����V��U�����S������������M�������������H�������E���D�����B�����@�������������:�Ͽ9���8���7�����5���4�����2���1���0���b�n�p�����*���)�����T����v���$���#���Z�!�w�I�����k��{�w��u�����w��1����9��s��\��C�7�0�Z�X��k��L��J���
�
�E���*�G��'����H���%�	��>����������y����޽�����������������������������������������������X����ÿ�����������&�������#�����!��� ������������������c���y����������d��[��X�����������S�U��V���c�	�G���o��F��R��~�J�S�>�A�i�D���e�d���n���L���=�6�(�)���8�7�S��m�5��^��\�?�x���e�n�k��e��%�L�1���@�D��N��"����6�����ޏG��܏�ۏ
�ڏ��ُ���h؏4��֏���������Џ�Ϗ�Ώ������ʏ��ɏ���Ǐ��������Ï����������Һ���������������������������������Ä������Ƚ����������������������������������������������������������������������x�����z�����n�������u�����s���������������t���t�������y�����g�~�l�}�a�]�`�b�P�u�V�s�s�m�r�]�q�p�k�o�O�_�:�l�I�H�h�g�o�v�e�G��N�d�;�c�@�b�I�a��8�_�5�%�'�\�I�[�*� ��X�Z�(�U�T���/�8���&��1�7����������!��������������������޹���������-��{�
��ι�����������q���p�n�������j�����������d����b�����`���_�����]���˅l\���[�����Y���X�������U���T���S���R�����O�����N�n�M���p�n�p�I�j�H�a�G���F�����
�4D���C���w�A�}�@���N�>���=���C�;�:�^�9�4�H�C���5�K�4�O����1�%�$�-�0�_�+�*�*�O���%�.��9�%���[��� �^���������
�"����J�����?��9��'�����3�������� ����
������
��������������������������������������������������������ӆ4!�����1�����/���.�����,���+���*�����(���&���%���#���u�!��� �|������������!�����V�����{�x�}���s�w����:�x�r�T��k�
�B��c�
�W�|"
�[�T��(�O��N��M��3����������"�������
�������������	�����������������׻���������������ۇD#����������������%���$���#�y�"��������������������^���������#n��������h��{�X�[�]���y����
�~�O�y�m���p�P�X��7��J��v�o�G���r������n���j�@���b�`���_�l$����.� ��T�U��9�X��B�V��>��J�(�
���?��"�@����2��5�.��3��4�ߎ8�ގ��0%ގֿ׶܎�ێ��َ�؎���֎���ӎ�Ҏ
�ѸЎ�ώ��Ύ�͎��̎������Ɏ��Ȏ��%��ǎ��Ǝ¼��Ď��Î��Ž����˼�����������z�������}�������������%�t&��[����������������`�����<��z�6��L��g��&&�"��'��m����/������O�>����#������\'����ߎ��ގ�ݎ��܎����ڎ��َ�؎��׎��֎��Վ��'Վ��Ԏ��ӎ��Ҏ��ю��Ў������͎����ˎ��ʎ��Ɏ����ǎùƎ��x���Î|�������m���z�����������������-�0(��|�q���������}���������������_�j�R�w�i��f�����r��T��2�.��M��h�{��=��o��(�o�\�n�p�ݎ"�.�W�ڎ>�َe�؎/�/�֎^��ԎL�ӎ��ҎR���)�ώЎ�J���̎&���ʎ��Ɏ�Ȏ�ǎ��Ǝ���)Ǝ��Ŏ����Î
��������������������������������������������������`*��������������������������������������������º��������y���x���c�����5��*p���v�����h���^�������֎S�ՎJ�ԎD�ӎ'�A�u�C�ώΎn�w��+͎"�̎!��ʎ�Ɏ���Ȏ6�ǎ	�Ǝ��Ŏ���+Ŏ���Î�Ž���������������������������������������������@,������������������������=��,�����z������z�r��v�����w�_�i�<��g��t�R�U�m�8�ݎ0�\�ێ6�ڎr�t�؎`�׎w�֎c�Վo�Ԏ��,)�t�Ҏp�&��ώ^�G� �̎:�U�ʎR�Ɏ�Ȏ�ǎ:�8�D��L�&�����?�I�"�O�%�����)���������*�>���������'�/�����-��������,�
���������Ӽ�������������������������������Ҹ������������.��ع������������������������޸��þ������������|�������������r���������������k���������[�k���E�$/��^���u���t���������p�c�i���b�l�[�k���j���i�W�[�g���f�V���d�U�b�C�a�W�%�_�d����/^�`�f�\��[���Y���W�P�V��:�
��O��M� �����5������������������������1�ɍ�0�������������������~���}�������z���y��x���w��v���u��41u�v���t���״r���q���p���o���n���m���l�����j���i�����g���f�����d�M��1d���c���~�a�`�h�_�j�^�]�b�\�]�X�Z�W�Y�X���82X�K�W�5�V�2�U������ю�2��
�����������´������dz����������������������������а�������������2��ȱ����}�����{���z���y�������v�������s�������������m�ɴq�k�y���i���h�a�b�f���k�c�U�\3c���b�U���`�z�_�F�]�]�@�\�>�[�<�F�Y�N�A�m�V�#�U�Q�T�X�?�R�>�P�[���4F�N�"�M�]�C�K��=�I�Z��6�F�F�	�9�3�J�A�K�Z�?�	�>�,�'�+�;�%��I�8���7��6��=������1��0�ُ�40�q����o����οl��k���j���i���h���g�����e���d������X5����������]���\�İ��Z���Y���X���W���V���ʹT���S�����Q�����q�O�����M���L���K���J�m�|�H���G�]��5g�F���E���U�C�^�������?�g�>���c�<�A�;�v�:�X�x�8�}�w�6�J�6�4�`�3�]�2�Y�1�5�F�/����6p�m�S�,�)�o�*�O�K�N��5�L�$�S�#�"�"�D�!�#�&�A��?��O��4�����0����)����#����47����
��������
��%�#���	���������������������������������Ʊ�����������������ֵ#��7p�X����L(�P�p`���d,�x ,!�!t"�"<#�#d$(%�%l&�&T'�'((�(�)X*�*x+�+8,�,�,�-�./�/�0,1�102�2�2T34�4P5�5�6,7�7�8�p�8�������������/���.�������+���*�������'���&�������#�x���!����������������������\����e��9�[������a��z��}�����C�
�D�@��<�
�k�;����4�m���.�>�|�1��*�(���V���r���y�z�x�P����9���x:�����7�����!��
��=���������J�������I����G����=��������ߍ�ލ����܍�<;܍���ڍ׻�؍�׍
�֍��Սԍ����ҍ���Ѝ�����۰̍Ů��ۯ����ƍ����č͸Í������+�<�������������������������������������������r�������p�m��<���w��h��p��������_��E�����k�=��F��>��6����$=�[��`��!��������ݍ�܍�ۍ�ڍ��=ڍ�ٍ��؍���֍���ԍ��Ӎ�ҍ��э��3��=Ѝ��ύٴ΍����������������ɹō��ӷ�����������������������������z�������������g�������w�u�D>����������x�������{�o����q�l���v��o��T��o��5�D�ߍ7�^�4�z�.�p�>�L�׍f�֍w�Սx�ԍn�ӍK�H���?3�Ѝ �ύ_�>�͍<�H�	�ʍ���:�ƍ�3�č*�0�+����������9���G�����������������#���*����?��,�'�հ!���ۻ�����	���������������������������������������ʻ�����������������������������������������;�|@��̮Ǵ����������Ϻ������������������{���������������w�s�v����t���s���r���c�p���o�}�hAo�����m�c�W�k�k�j���q�^�|�����d�X�c�e���a���P�K�^���]�t�\�m�f�Z�e�Y�8�]�W�]�i�U���B=�T�U�S�N�I�b�R�O�1�N�J�5�e�K�*�J��I�Q�H�*�G���E�%�D�(��(�8�@�/�'�0�=�E�<��%�:���8�1�7�#�6�+�5���B5�v� �u�"�t��s�����o�
�n���m��l����j���i���˸g�ܷf���e���d���c���b���a���C��C�߲��]���\�����Z�����X�ή��V�����T���S�����Q�R�����P�����N�}�M�l�L���K�Y���HDJ���I�������Q���D�\�C���B�G�A�I�@���?�m�>�4�=���<�}���9�Ǖ�D9�A�8�o�a�6�"�5�+�[�3��_�1��0��/�
�.��-���2�*���)�.�(���&�%��$�	�hE��#��"���!��������������\���[���Z���Y�ҫX�K�F��W���V���U���T�~���S�v�o�Q�z�x���N�����L�a�K�~�����pFI�|�H�V�{�F�{�E���D�n�C�Y�^�A�j�@�N�?�p�A�=�g�6�;�i�:�D�?�8���7�H�6�~�5�s�4�ϖ�F4�4�3��^�1��E�/��.��-�-�,�V��*�=�)�)�(�B�4�&���%��$�	�#��"��	� �����������G�
�����������)������
������������ݴ����ٶ����
���������E�����C���B�S�4H��A�����?���>���=��<��г:�������7���6���5�����3���2�����0���/���.���-�����*���)���(����H(���'���&���y�$�t�#�^���m�p�n�o�����a��d�����o��N��^�8��j��(�P��D��9��ח�I�R��D��.�
�=��T����	�.��#�.�����������DJ�
�������������������������������ک����������[��J���3�������߼/��.���-�����+���*���)���(���'���&���%���u�����!��� �����������������(Kh����\��|��m�j��f����{�k����`��i��`�
�V���s���	�F��}�M�O��F��5�c��B�G��H���K���B�]�ߘ�K��!���,���1���e���6���]���O���6�#����V��!��5�:��������/����%����������!��L��ߌ�-�݌�ں����׌������Ԍ��ь�Ќ��ό��Ό��͌��̌ʵ����Ɍ���nj��ƌ��c�tM��Č��Ìڧ���������������������������ն������y������������������������������� N����������X�����g�������k�������P�I���\�~�����یy�z�I�W�|�}�?�<�ь��Ќx�ό1�v�͌��N͌0�̌\�ˌ)�a�ɌȌ[�nj�ƌ'�Ō�0�5�Œ=���%�����%���5���)�pO#���.���������!����������˱���������������������Ŵ����Ԯ������k��O��������������������������������t�������s���u���g���d���s����P��`���K���E�������F�|���A�֌M�ՌI�Ԍ:�ӌ��Ҍ.�ь,�0�8�Ό �͌�Q&�̌:�ˌ �ʌM�$�%�ƌ1�Ō)�'�Ì�Œ�L��������
���	������4�����������1��Q������������������د�����������������������զ����s�R��������������y���������������i��������������R������q���y���x�f���o�ی��ڌ_�ٌ}�،T�׌U�֌���R+�Ռ �Ԍ>�ӌC�A�ьЌ(�ό+��͌9�PS͌�p�S͌��������v�Ȍ��nj����d��c�������{��S�Z��X�Z��f�������F���N���^�O�u�w���n���s���<�Z����T�X�^��j�T��!�O�<��R��K����F��A��9��������3�ߌ&���tTތ���܌�ی�ڌ�ٌ�،�������Ҍ�ьǵЌ��ό��ͬ͌¾̌��ˌʌ��Ɍ��ȌA��TȌ������Ō��Č����׵����۸������������ҩ������������u�����������s�������z���q���������������UX�c�����������h�����R�����i���Y���ތP�|���H�E�o�q�׌S�֌w���ӌ4�Ҍ8�ьm�Ќl�όX�Όu�S�̌ŝXV̌U�?�J�ɌV�]�nja�/�ŌR�ČK�L�Œ�I������B���
������7����*�'���;������:�#���A��������
��������W���(���ع��������� ��ʨ������֨����
�����������������������������Ţ������������������I��W��֮��������������������ܹ���~�������{���z�Įy�r�x���v�v�u�u�ç��r�o�q�_�p�����\���l����Xl���k�X�j�e�]�m�T�f�t���d�U�l�W�a���L�]���@�[�Z�P�Y�R�X�Q�W�g�V�T�X�T�*�<�R�$�Q�#�}�O�7�N�͞tYN�4�M�k�L�j�T�J�*�I�:�H��G��K�D�*�C�.���
�&�>��&�<�D��������6���4���3��2��1����4Z$�/����.���+����j�
�i���h����f�����d���åb���a���`���^���]��\�¤[��Z��Y����W�Q��ZW�׷V���U�������R���P���O���عM���L���K�շ��I�������F���E���D���C���B�A���@�����?����[?�|���=�n�x�;�9���8���7�[�6�j�5�\�4�W�3�^�"�՟\\1��0��D�.�6�-�O��+�:�*�J�)�A�(�<�'�1�&�0�%���$�%�#� ��!�(� ��#��$�������\�2����������Ҫ������������������ޱ֯������G�ѤF���E�Y�l]E���D�ҵC���B���A�Я����>���=���<�����ʱ9���8���7�Ĺ6���5���4���3���^3�4���2���1�U�0�j�/�L�.�S�-��,�[�+�@�:�)���(�v�'�y�&�z�%�w�$�ݠ�^$�A�#�)�e�!�d�b�U����>��������������$_۪�������$�����������Q�����O�a��_p:4;�;�<=�=�=<>�>�?t@`AB�B�C@D�D`E�EhF�F|G,H�H�I<J�J K�K�LlMN�NhO�OxP�P|QR�R�RHS�S�S�SlT�T�UPVW�W�XlY,Z�Z�[T\�\d]^�^_�_�_�p�_O���N�����L���K�q�l�J����`J���I�X�H�J�G�|�l�z�D�N�Y�B�k�o�@�C�?�A�>�O�K�� a5�;�3�:��#�8�@�7��6���!�3�)�2���0��1�	�#��+��*�B�)����!�&�����#�'��a�����2�����������[��Z�ѬY�Ĥ����U�ع�ҵR���Q��P��O��N�i�,bN�����L���K���J�����H�������E���D�������A�B�|����bA���@���?�x�>���=�j�<�P�;�M�:�t�e�_�7�|�6�W�R�4�S�3�2�9�1��,c1��0�I�/��.�>�-�5�S�+�D�1�)�(�(�	�'��&��%�"�$�/��c$��#��"����a���`��_���^���]���\�q�d\���[�����Z�s�Y���X���t�V���y�o�����Q�o�P�f�O�����pdN�\���L�q�c�J�_�I�\�H�^�G�?�F���E�J�D�K�c�B���Q�@�}�?�y�|�=���<�%�;�V�{�9�n����d#�]�5�j�4�,�d�2�c�1�b�0�`�/�I�.���5�,��3�*�0�)���.�
�%�7��e%�'�&�$��!�� ����#����פ���[��Z��ܨX���V�ˡ˺������������M����K�����«H�y��eH���G�F���E���D���C���ߝ��@��������<�z�~�:�}�9�����t�w�5���4�t�3���2���l�h�/�d�k����f-�.�Z�V�,���+�Q�*�I�)�>�+�'�<�&�ŕ.�ĕ��lgĕq�Õ:�•_���a���I���G���"���F���<���8���4������+������&�-���(���1�ߜ��?��g!�������������
�С��������������������������?���dh?��>���ު<�ޫ��:���ݵ8��}�6���5�����3�2���1���0���/���.���������*���)�å�h)�Y�(�H�E�'�����?�#���B�!�3� �l���(����#����xi$���������������������
�����������G��i�����������������ů��ұ�����ַ����D���C���ɝA�����@j@�ھ?���>���=���<���;�����Ҳ8�˵7�6�Ͳ5���t�3�r�y���0�����������+���*�����(�k�i�&���%�˦�jf�$�[�#�a�"�]��� �Y�_��r����k�O����f�y��9��9��n��z�3��T�
�hk�*������N���P���/�?���>���=�&���K�+���8���	�4�G����<���+�*�����0�-�+��%����"�,��������O��k�����Ӛ��Ҿ��ٰ�����������
���ڞ��е�����������}������z�ˣx�����v�؛u�ҙt���s������l��לp���o���n�����m���l���k�����h�}�g���{�e�x�d�ɩ����a�����}�^�p�]�n�\���k�Y�r�X�]�W�d�`�ӧ�m\�T�^�S��T�W��R���K��G��6��>��;��n��C��Q�R���@n�b��7��E�:���J�ߗ�ޗ�ݗ
�ܗO�ۗ�ڗ���ٗ+�)�ח(�֗+�W��n՗�ԗs���q�޺p��o����ݼ�����i��h����e���d��c���b�ȫ��`�����^���]�߶��[�ɬZ�՝Y���@oY���X���W���T���S���R�����P�����N���M���L�r�q�J�K�����I���������E���D���C�ۨp|���A���@���?���=���B�;�ژE�6�Q�ט4�Q�՘��Ԙj�R�ҘA�ј�3����p�͘\�d�˘��"�Ș\�Ƙ�Ę�Ø�˜���C��������������������������_�$q�����Ú��ȩ���Ͱ�����Q��P��O�ϣ��֜��K���J���I���H��������q�����B���A����?���ݫ=���<�����9���8�6���5�4�������1���0�����.���-���,��������&���%��@rX�$���#���"�|�!�s� �v�����X�m�����_�~�=�U�@��o��k��%��r���F���]��� ��R������8���K�A���2�/���R���.���-��������=�4���-������$���g�xs������'���
����������������������������צ��Ġ���� t����������*���)���(���'���&�{�����#���"���t���� ���������������������=�����������{���@��J��}��;�u��t��-��tn�q�	�.�j��f������W���K���@���+��'�������o��u����������*���������������������������������ֺ�������͗��ԡ��¶��ڟ�����u����������������������~���}���|���{�����ė�������b��_��z����������v�s��I����
�-�+��@�n�5�R��!�5�Dw/�1��H� ��*��)��9���
�4����2�����7�+���7������L�
������	�
������6�w��w��Τ�����ܸ��ӡѡٸ���������������ә�����������ś��4x���}���|���{���ݮy���x���w�����u���t���s���r���q�����̚n���m�������j�����������������������x����|��v���������L�����W�����������w���v�T���u���h��i�g��]��j��m��\��"��=�tyi��]��)��K��`��C��H�C��2�ߛ6�9�/�;�3�G�כ*�֛՛&�ԛ�,zԛ(�ӛr�޹ڨp��o��n�̤m����k��j��i��g��f�âe��d��c���b���a����za�Ȗ`�����^�]���\�y�t���Z�o�Y�c�X�v��@{]�[�U��X��[�d��\�G�K��E��{��I�4���+��6���+�)�*�2��'���2��-������ݜ �ܜ��x����{x��w�
�v��	�t�*�s��q�����n���m��l���Πj���i���h���g���f�ɮd|f���e���̬d�Ğc���b���a����|�~���j�M�,}����<���5�����H}����<�ѯl}<�=�����}<�g�;���:�ٟU��}ٟ`�؟J�ןQ��P�A�O��N�
��L�������ɟ������
�ğ����������������}����"��ߵ��������՝���������������������ˬ����������ܛ������������ɓ���������������ֶ����ġٰ\~����ݛע������u���������p���������������������Ɩc���ϑv�ê�����������K���J�n�I��LI�t�H�s�F�����D���S��~�V�ߟ@�ޟQ�ݟN�j�۟J�d�|�؟L�ןC�u�՟?�ԟ<�ӟ9�ҟ]��ҟ5�џ_�П'�ϟ)�ΟD�͟D�̟ �8��ɟ1�ȟ
�ǟ�Ɵ�ğ�9�<�Ÿ,�*����������������������
�����������������S�����Q���P���O���ŎM���L����J�� �a�a$b�b$c�cdhd�dxe�e�fdg�g\h�hpi�i8j�j`k�k�lxm8n�n8o�o�pq�q8r�rpst�t�t�u�u�v<w�w,x�xly$z�z8{�{�{\|�|$}@}d}|}�}�}T~D�������p����ŞH�����ѳ��D������A���@���?���ݖ��������9���8���7���6���������0���/���.���o�����*���)�\�(�Z�#�Ȃ'�����%���$�q���[��� ����M��W�x����\�������*�e���(���T�Q���2�H���P���K����%������A���$�4��(����������G����5�����������B�����	���������/������������ْ��ގ��Ω����������������������ʵ������������y��ϯ�������s���r�׭q���p���֡n��܄n���m�ёl����j�k���ȱѣ����ضc���b���a���`���_���^�t�]�����[���Z�r�Y�[�X�+�������������]�d����V�S����^����������Z�����|��{������r��l��7�V�a�j�S�@�m�D�i�ڠk�٠d�ؠ�נH�֠]�ՠK�Ԡ!�����ѠM�Р��A�ϠG�Π	�͠�:�ˠ��������Ǡ
�Ơ*�Š&�Ġc�Џb���a��`�����^�Ų\��ŚZ���Y��t�����V�����ЯS�˥Q���P�˦O�ըN�����L�����J���G���F������z�B�y�i���?���q���s�j�8�q�7�6�3��7�l�6�W�5�h�4�g�3�d�2�q�1�Z�0�V�/�N�.�͡D�o�ʡ0�b�x�ǡ1�R�š.�%�-�u���¡O���,���1���$�_���@�#����!��������:�����'�����%�8�������
���������������������������8���������ݩ�������������ݯɧ��������ݚ���Δ�����ط����Ǥ��Ō�����ݷ~�շ}���ڷ|����|�������Ģ��ӷȷڷ·s�r�����p�Ʒo�m�طl���~�i�����g�o���ķd���c���b���������^�������[���Z���;�̊��������T��������������i�����q��������J��m�z�;�0�1�2�}�/�1�ۡI�(�١,�.�֡}���֡"�?�ԡ`�ӡ�ҡQ��С�ϡL�
�͡�̡�ˡ������ǡȡ�����á�1��������������8�	�������������%������������޷���ݷ��������з��ޠ��I�۷�ˑF�ͷD���C���C���B���Ħ@���?�����������:�9���8�����6�|���ĩǢ1���0���/�����-�C���-���,�}���+�w�u���q�'�e�&�A�%�p�$���l�!�V� �^��}�d���Z���������N���K�L����O���N���U���'���=���H���)������7���3�1�-���&���'�Ƕ�������!�������������������Йӕ�����������������������	�,���4��3�՜2�ߛ1���0���/�ն.���-�����+�~�������^�e���$�K���$�`�#�U�d��� �B�C���;��6��2��O��1�'�*��R����,�����(���!�����������������
�����5������������Ϸ��������������޶ܝ��׶���������>��=�����<���;���:���9���8�7�y�6�}�5�S�p�5�6�X�K�Z�W�m�1�R�0���/�v�.�R�-�r�;�ʤ:�ɤ3�Ȥe�0�1�/�^�3�*�����+�E�a���0�$�a�!���"���1��������<�����
�
����������������׸8�2�������*�������܌��������������������������������������������������������Ȓ���َ��������������������������������������������������������������������[�t��\���������T�
���	�h���������������|��x��~��|�k�r�g�����,���`������������D���_�����P����L�����������D������������������߹������������������#������������������~���}�����|�!�L�|��{���z���y�ƞ��w���v�����t�����z��x��c���a��_�x�
�{����q�
�v�	��x�~�V�U�K��|�Q��L�O���{���,���I���T���?�9�>������"�<���3�3���1��h��E�� ��E��;����F������������
�������������������������������ũ~���ם|���{�������w�v�����t�՞�r����p���o�n�)�H�n�Ȏm�����l����j�����g���f���e�����c���b���a�`���k������������^�����q���]���o���X��� ���o���#����������1���������#����������������������������~���}���|���{�1�Ę˥{�ڭz��]��s�X��i��0��������l�I���(�����������S�9�ęS���R�v�{�ܙR��@��4��������������"�����%����I����2�������(��	��,�-��ש
�'�!������.�ڨ����̩ا
��ڬ
��٬׬ĩ�֬��լ˜Ԭ��ҬʍLJЬ�ģ��ͬՊ����ʬ�������Ƭ��Ŭۥ�ì��ҝ������������ƉǑ��A����������������������פ�����������������ׄ��ţ����y�����y�̂��|���Əo���ȕ����������w�����������������j�������������[���}�����T���M�1��]��s�(�o��ž`��j��i��?�c����\��W�����Ԝ����I����)���æ��&�����ĥ������Ō����}�������ŧ��h�������������r�����������������0�����m���}���������_�o�����u�t���}�����V��W���I���n�g�w����Z�C�g�s��s����a�����f��u�3�V�P�p�ܪͿ̝ܪ9�۪e��٪*�c�תZ�֪V�ժ#�Ԫ��;�Ӫ'���Ъ��Ϫ�Ϊ��ͪ������˪���ɪ��Ȫ��#�ƪ��Ī�êb���`�����^������[�Y���X�������U���T���S���R������M�L�Q�$�L���K�����I�׃H���G���F�������C���A�����?���>���<���;���:�����8���7���ԟ����5���4�o�g���O�/���-�\�,�U�+�M�*�P�n�(�t�p�&�\�īëk�«f���R��h���`���`���i���W�X���S���M���L���9�����C���(������������ϹR�Y�d�R�S�����S��F���{����y�5�x�_�u�k�u�d�t�s�]�R�r�F����٬p�C�o��/�m�!�B�b�j�ά�_��ɬH�1�����<������ �1������5���4����.����������(�������ޕ
���,����-�$���֡���"����؅���؉����Ѣ��ŏ������ٳֳ��ճ܃Ԕ���γ������ͳ��ԑ���������a�������Ԅ��<��l����0��Ċ��0�܌�����$���$����h���0���l�$���D������@��P�����P�x�����ԙ������X�̜�(�ĝ���̟`��\�x���������p��›Ù��ǚ����ג����������������פ��ƒ�����������������������â��������ǂ������������
�������������
���	����������~�d��e�{��z���r�F���5���j���l�c���c�s���[���T��h�r��W�X��R��Q��>��/��A��U��V��R��Q��P�$���?~����D�����7��@�>��ܬ��;��جި׬'��׬*�u�ڨ֨s�بr��q��˨ͨɣm�l�k�ʨǨ܇h�����f���ס�c�b��a���`���_���^�����\�i�Ԧ\��[���Z��~Y�������W��V�|�U�v�T�����T�m�S��k��}�����n��������k�����p��g�C��8�6�<���h�߭2�_�ݭu�ܭ3�-�*�:�׭,�O�9�a�`�(�ѭ �h���Чέ�ͭ,�̭[�˭C���ȭ��6�ŭ.��í���������������������/������~���������ٞ������ń��Q�q��Q�R���h�R��{����|���/������7���������y�����-���,���ԩ,�-�W�˰���˰4�ʰ?��˰��ʰi�
�h���$�h�i�������H��Z���h��6�Z��5�3�4�����Z0�1���.���$�-�5�}+��{+�'��&�K�(��#�!��� ����{�&����G����0��{��ؐތȱ�����������Ȗۋ����ǘ
�������������Ɇś�{����������ɏ����������8��������|���љ��Ҁ����ؑƕ�������}����z���w�ӗ�����}��Ɔ���������qŅ�������������������������}t����������������~����y|��{��z�P�x�߱a�w�b�ұu�4�t�ͱc�̱|
���˱̱O�P�̱k�ԋӫΑҫg��yӖ�|��ͫ՗̫�˫Ƌ��Ԍ���ƫ�ūU���d���ǂ������N������������z����C�����?���=�����;��~:�����8���7���6������������0�������-�Zx��ԭ��+���*�p�|�n�T�q{��$�V�[�_�!��� ���d���yy���N~O���{�}�X�c�p��y��t��s�l�V�]������Y���`�
�Q���\���N�e���W���S�x���*���=���;���������������
���W�L�������������"����{��#{�����}��ܽ�������������������ׇ���x��������ߗ������������~�ނ����{�‹z���y���x���w��|��z��x��{���w���k����|����J�
�Y��P���|
�`~	�V�h�{��^��}�}�(��Qw�+�����#�����w��������)�����&���������(x������������_���������ݎ����Ů̄������њُ�������(���H�(�)�ȴ5�&|j�{�l�0�g�j�a�DQ|%�\�t�ZvA�r���]�4� ��B���
����*����+�����%�A����0�H|�6{���Ox������g�����}��ϱ��α��͋˱���|ˏ����ȧ޼����<���/���.��w-���,�����,�-�v�t�+�O�*�4�)�L�C|��,�U�+vL��E�~{E�C��E��xv>��n{-���<�O��9�L�N~7���5�bw��3���[�1�]�0�8��D�A�����������o�4�����=�����=�>���Ĵ>�ݶx�0�]�9�bw��׶9vB�b�<�a�R�`� �P�_�V�\�5�ش]�c�Ƕ1�Z�W�~X�¶W�>wT���
�R�U�Q���O�
�N����L��K�8�J�;�I���H�}�����������}��������w�8���������������������{��������������ߺ��ٺ��պ�������˚��0�˺/�ź.�º-���,���+���*�o�)����|'���l�'����~}�z�z�"�{�y��w��b��t��J����=�̶�����$���[���8�[�\����L�����^�G�E�d���)�E���C��B��s@��?��>��:�%��8�C�7�ݸ6�ܸ5�ڸ4��Ѹ2�͸����͸.�,�ȸ*�̸��ʸsɸ��Ǹ�Ƹ��ĸT����T�U��X�U��M�l�������������������4�Ʉ��||��̓/�����-�����'���&�}�{�k�#���y�z�x���xv��z�����t��~s��vr�b�q��p����n��k�
�j�\��h��g��c�jz�a�b���,�]�����3�1��(�����Y�U��S��M���D��C��D����3���.���%������U������z�������̯��z��І��˃��|��z�y�x��w���u���t��s��q���p���0�p�q������un���m��xl���k���j�ʉi�̶h�ög���f���������p������ĺ�������Z�����Ur�L�*���(�W�'��&��X�xD��Bx6��oi]�x��p�5`���̦x�ȧ���`�t�����̩���@�`�x�0����H�\�̭��D�دt������@�T���4�����,�����д0��d�Ķ�0�D�\�x��P�d�x����� ���(���D�p���Ļ�p̻Ļ�pؼ��ؼ�(�p��(:)���:)�)���)�p(��)~*E�8�~* +��L� +�p`� +�+��p��+dt���dt�p��dtuM���u�u�����u�pн�uJv���Jv�v���v�p��v�wU���w0x��,�0x�p@�0xq��P�qr�d���|��������Q���QR����R���о������������1���12<Znx�yq]�$�q+COTV:���T����Y�mop�Y��������MiY2tfYeYdYbY`Y_Y#���_Y2t^Y3t\Y[Ye���p�7��� �0�D�X�h�|�������Ƚؽ���$�8�H�\�t�������Ⱦܾ���L�|���������[YgbZYmq��ZYbYY���YYbXY+��XY�aWY�aVYm���VY+bRY*bQY)bOY&bNY bKYbIYbFY����p�9FY	�DY�������l���2Y	(Y	$Y	YY3����p(:Y��u���D�X�x��pL:�Xkj��X��������\�d��������0���8��pLG|��p����;����p��m���P�\�h�t��������������������������(�4�@�L�X�d�p�|����������L���9�`����м����t����������09	
��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0909��	

 !"#$%&'()*+,-./0123444444444444444444444444444444444444444444444444444444444444444444444444444��09090909090909090909090909090909��	

                     090909��	

0909��090909090909��	
























0�			



  !!!!!!"##########$$$$$$$%&'(()***+,---.////0001233455567889:::;<===>?@AAAAAAABBCCCCCDDEFGGHHHIJKLMNOOOOOPPQQQQQQRSTUUVWXXYYZZ[\\\\]^^^___`abcddeefffghhii��	


��	









09��09��	








09��	





































































��0�	



 !!!"##$%%%&'((((((((((()*++++,,,---./////0000122222222333333444444444555667777889999:::::::::::::::::::::;<==>>>>>???????@0909��	
0�				







  !!""##$$$$%%&'((()*+++++,,-...//0001234456666660909��	



































































































09��																																																																																										0�	

 !!""#$$###$%%&&&'())))**++++++++++,-.....///////00111111123333444555555555566677789::::;<<<=>>>>>>????@@@@@@@@@@@AAAAAAAABBBCCCCDEEEEF0�			










  !""#####""$%%&''()****+++++++,,,,---./////000112344455678999:;<=>???@ABBCDEFFGHIJJKKLMNNNNOPQQQQQRSTUUUUUUUUVWWXXYZ[\\\\]^_``abbbb0�	


 !"###$$$$%&'())*****++++,,,,,----..//0111111223455666788999::;<<<<<<<=========>?@ABCDDDDDEEEFFGGGHIIIIIJKLMNOOPPQRSSSSSTUUUU0�		




    !!!!!!!!!!!!!"""""""""##$$%&''''''())**+++,,---./00000000�		


 !"###$%%%&&&&&&&&&'''''''(())*++,,-...////////01111222334456667778999:::;;;<<<<=>>?????@@@@@AAAABBBBBBBB0�					

















 !!"""""#$$$$%%&''(((()*+,--../0�	

















  !!!!!!!"""####$$%&'''''())***++++++++++++,---./00111123333444556678889999999:;<<<<<===>>>>>??@@@@@@@@@@AAAABBBBBB0�							




















 !!""""""""#######0�			


         !""##$$$$$%&&&&&&&''())*++,,,,-../01222234555566667788899::;;<<<===>>>>?@ABBBBBBBCDDDDDDDEEEEFGGGGGHHHIIJJKLLLLLMMMMM0�	







     !!!!!!!!""""""""##$$$$$$$$$$$%%&'''''''''''())****+++++++++++++,,,,,,,,,,,,,,,,,,,,,,---...0�	






  !!!!!!!!!!!!!!!"#$%&&&'(()))*+,-..../////000001222233333330�	


    !!!"#$$%&&'((()*+++,-.../00122333344444456677777789999:::::;;<<=>>>???@@AABBCCDEEFFFGGHHIJ0�			




    !"###$%&&''())*+,---..////////000111112223345677777899:;;<<<<<====>???@@@@@AAAABBBBCCDEEEFFFFFFFFFFFFFFFFFFFGGGGGGG0�				




  !"""#$%%%%&'(((())*****+,,,-0�		




  !!"##$%&''''())))****++,,,,---.//01112233333344555567789999::::::::;<<<=>>>??@@@@AABBBBCDDDDEFGHHHIJJJJJJJKLMNOPPQQRSTUU0�	




 !""#$$$$$$$%&&&'''''(((((((()***++++++++++,,,,,,,-./////////00112222333334444556777789:;;;<==>>>>>>>?@AAAABB0�					








			





               !!!"""#$$$%&''())*+,-.////////001112333345566677777777899::0�	



 !!!!!"""#$$%%%&&&'(())))****++++,,,,,---------...../////0000111122222222222222222222222222344444444556666667889::;<<<0�	






 !"""""#$%%&&'())))****+,-.../01234456666666678888888888999:;<==>>>??@@ABBBBBBBBCDDDDEFGHIIJJJJJKKKLLLLLLLMMMMMMMNNNOOPQRSTUVVVVVV0�								





 !!!!"""#####$%&''''''''''''((())))))))**+++,,,,---.//0000000000000000011223340�			



    !!!!!!!!!!"##########$$$$$$$$$$$$%%%%%%&''''''())))*+++,,,,,,,-----..////////000000010�									







0�		

























  !"#####$$$$$$$$%%%&&&'((()))*******+++++,-.///0123334566777788999:;;;;;<<<=>0�		



 !!  "#$$%&&'()**++,,---.///000012233333345566778999:;;<=>?@AAAABCDEEFFGGHHHIIIIJJKKKLLLLLMMNNOOPQQRSSSSSTUVWWXXYYZZ[[[[[[\\\]]]0�				



  !!!!!!!!""""""""####$%&&'''((((((((((())***************+++,--.....///////0001122334556666789::;<<<====>>>???@ABCCDDDEFGGGGGG0�										



       !!!""#############$$$$%%%%%&&&&&&&&&&&''(())))))*++++++,,,,,,,-----------.////0�														












 0�			











     !!!!""""###$$$$$%%%%%%%&&&''''''()))*********++++++++++,,,,,0�	

  !!!!!"#$$%%%%%%%%%%%%&&&&&&&&&&&&'((()*******+++,,,,-.////0110�	

 !"#$%&'()*+,,--./012344567889:;<=>?@ABCDEFGHIIJK0�	












0�0�0�0�	

 !"#$%&'()*+,-./012345555555667788779999::;;<<=>==?????????0�	

 !"#$%%%%%%%%%%%%%%%&'()*+,-./0123456789:;<=>?@ABCDEFGGGGGGGGGGGGG0�	

 !"#$%&'()*+,-./0123456789:;<====>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>?????????????????????0�		

                                                                            !!!!!!!!!!!!!!!0�	






0�				









     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!0�	

0�											






















0�	








   !!!!!"""##$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0�	


 !!  !"""####$%&&&'())*++,,--.../00122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222220�			










 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_P`abcdefghijklmnopqrstuvw0�			





   !"""########$$$$$$$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdFefghijjklmnopqrstuvwxyz{|}~��0�						



 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx0�						


  !!!""!!!!!!!!!!!!########$$$$%%%%%%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~����0�		

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh5ijklmnopqrstuvwxyz{0�				


 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv0�		




  !!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0�	

























 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE6FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk7lmnopqrs0�		









 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0�	

    !!!"""###$$%%%&&&&&&&&'''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~������0�			







 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv0�			




 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn0�		









 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr0�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`0�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab0�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc0�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr0�	











  !!!!!!""#$%&'()*+,-./0123456789:;<:=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\2]^_`abcdefghijklmnopqrstuvwxyz{|}~0�	




            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0�	



    !!!""#$%&'((()))))))))))))**+,,,-...../0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu1vwxyz{|}~�������������0�				

       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[?\;]^_`abcdefghijklmnopqrstuvwxyz{|0�	


 !!""##$$$$$%%&'(()**++++++++++,,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�����������������0�	







    !"###$%%%&&&'''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~������0�	













 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz0�				















 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_`abcdefghijklmnopqrstuvrwxyz0�									






















 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs0�			












 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq0�														



















 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn0�					



   !!""""#$%&'()*+,-./01234*56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��0�		



   !!!!!!!"""""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{p|}~0�		











 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw0�		

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{0�				







 !"#$%&'()*+,-./0123456789:;<=>?@A)BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|0�		



























 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh0�				








 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl0�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab0�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab0�	

 !"#$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`0�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefffff0�							









 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMMNOPQRSTUVWXY3Z[\]^_`abcdecfghijklm0�	

	 !"#$%&'()*+,-./01232456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ0�	



 !"##$%%&''()*+++,--.//011234567889:;<=>>???@A>ABBBCDEEFFGGHHIJKLMNOPQRSTUVWXYZ[\]^_`abcdedf0�			







            !!""#$%&'()*+,*-./*0-123456789:;<=>??@ABCDEFGHIJKLMNOPQRSTUVWXYZ[WW\]^_`_abcdefghijklmnopqrstuvwxyz{0�							














 !"#$%&'()*+,-./012345(67889:;+.<=>?@AB@CD8E9FDG=HIJHHK2ALMMGNOPQRSTUVWLX5YZ[\LY0�	

 !"#$%&!'()*+,,"-./012345667859:;<=>?1@ABCDBEFGHIJKLHMNOPQRST0�				


  !"#$%&'()*+,-&./0123456789:;<=>?@ABCBDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��0�	






 !"""##$$$%&'())**+,,-,./0123456789:;<=>?@ABCDDDEFGHDIJKLMNOPPQNELRSTUVWPXXYZ[\]^[[_``abcdeVfghijjklmnopqrstuvwx0�			



 !"#$%&'()*++,-./012332'45*677889:;<=>?@A=:*BCDEFBGHIFJKLMNOPPQRSTUVWXYZ[\]^_`abcdee0�			



 !"#$%&'()((*+(,-./01(23.4567889:;<=>?@ABCDEFEGHIJDKLMNOPQRSTUVWXYZ[\]^_`abccdefghijklmnopoq0�	

 !"#$%&'(()))*+,-./0123456789:;<=>?@ABCDEEFGHIJKLMNOKPQRSSTUV��0�	

 !"#$%&'()*+,,-.//0122223455566789:;<=>?@ABCCDEFGHIJKKLMJNOPQRSTQU0�	

	 !"#!$%&'()*+,-./01--234567879:;<=>?@ABCDEEFGHIJKLMNOPQRSTUVW0�	

 !"#$%&'()(*(+,-./01233.4566789:;<=>?@ABCDEFGHIJKLMNOPQRSTMUVWXXY0�	

 !"#$%&'()*(*%+,-./0123456789::;<=>>?@ABCCDEFFFGGHHIJKLMNOO0�		

    !!!!!"#$%&'()*+,-.-/012.345637489:;<=>=?@A0�	


 !"#$$$%&'()*+,-./012345-6789:;<=>?@=ABCDEFGHHIIJKLKMNOPQRHSTUVWMXYZ[\]^__`0�	









































 !""#$%&'()*+,-./01234567889:;<=>?@AB6CDEFGHAHIJKKLKMMNOOPQRSTTTUUVTUUVWXXYZ[0�	


   !"#$%&'(')*+,-./012344456789:;<=>?>@ABCDEFGHIJKLMNOOPQRRSTUVWWXXYZ[\]^^^____`abcdeefghijklm0�		


     !""#$%&'(')*+,-.///0123456789:;<=>?@ABCDEFDGHHHHIJKLMNOLPQRSTTUVWTXYZ[\]^_`abbcdeffghijklmnopqrst0�		


 !"""#$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJDKLMNOPQRSTUVWXYZ[\]]^_`abbcdefghijklmnopq0�																																															
























 !"#$%&''()*''+++,-./,0123345-6789:;:<=>?<@ABCDEDFGHIJKLLMNOPNNQRSTUVWXXYZ[\0�	

 !"#$%%%&'((&&)*+,,,--././..0122222334566666667778889:9;;;<==>>?0�																																						




 !!!"##$%&&'((()**+$+++,-..///000012202233333333345556789:;<=>?@AB0�	



 !"#$""%&&'(((())*+,-.../011111112324567897::;<=>?@ABCDEFDGHIJKLMNOPQRSTL0�	

 !"#$%&'()*+,-.,/01/23414567879:;:<=>?@ABCDEFGHIJJJKLMNOPQRSTUVWXY0�		


 !"#$%&''()*+,- ./0(102/3456789:;<=;>?@AABCD9E?FGHIJKLMNO0�	







 !"#$%&'()*+,-./0123456789:;<<=>?@AABCDEFGHIJKLMNJOPQRGSTQUVWRXYZ[[\]^_S_`^a]bcdefgghijkilm0�								




 !""#$%&'()*+,-./01233456789:;<==>?@@ABCD%E2FGHIJKLMNOPQRSTUVWXYZ[\]^_`aab0�		

 !"##$%&&' ())$*)#+*,-./0/1234567118829:;<9=>?@ABCDEFGHIJKL0�	


 !"#$%&'()*+,----./0111223344444455555677888888889999::::;;0�	




 !"#$%&'%()*+*,,-./.0123456789:;<=>=?@ABCDEEFGHHIJKLMNNNONOPQORSTUVWXYYZ0�0�	

0�	


                                                                                              0�						






0�	



	





 !"##
$%#&'()
*+,-./0122334567889:::;<=======>8??????????????????????????????????????????????????????????????????????????????????????????????�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��	

 !"#$%&'()*+,-./0123456789:;<=>?@������		















����										
������				

     !""��	







������������																


��																		



������										


������	

��	





����������������																																										��������������������	



            ����������������������																						
������	

 !"#$%&'()*++,-./0123456789:;��	

    !""#$$$$$$%&'())))))))))*+��	

 !"#$%&'((()*+,----.///0��	

 !"#$$%&'()***+,-./01233345678��	

 !"#$%&'()*+,-.//��	

 !""#$$%&''()*+,,,,-)./0��	

 !"!#$%&&&&&'((((((((()��	

 !"#$%&&&&'()***+,��	



 !"#$��	

 !"#$��	




��	

��	







��	




























��	

 !"#$%&'()*+,-./01233��		

 !!"#$%&'()*+++,-.//��	

 !!"#$%&'()*+,-.��	

 !"#$%&'(()**+,-./01234��	



 !!!!!!!!!!"#$��	







 ��				



��	

          !"#$$%&��	

 !"#$%&'()**+,-./0123456788889��	




    !"""""""#$$$$%&&&'��	


 !"#$%&'()*+,-./0123455��	

 !"##$%&'()*+,-./01234456789:;<��	

 !"#$$%&'((��	

  !"#$%&'()*+++,--./012��	

 !"##$%&&&'())))))*+,-./��	

 !!!"####$%&'��	




 !!"#$%&��	

 !"#$%&'())*��	
	

  !"#$%%%%%&"'��	

  !"#$$$%��	

��															







��	

  !"#��	








 !��	

 ! "#$%&&&'(()*+++,-...��	

   !"#$$$%&&&&&&&��		

 !"##$%%��	



��	



��			

��														

��	

 !"#$%%&''()*+,-...��	

 !"#$%&'''())��	

 !!"#$$%&&&&&&'()**+,��	

 ��		







 !!!!!"""��				

��	


��	


��	

��	

 !"#$%&&&&'(()**��	

 !"#$%%%&'(((()**+,-./01222345��	




 !""#��	




    !""""#$$%&&&'()*+,-.��	

 !"""""""#$%%%%&��		

 !"#$$$$%&'��						


��					




 ��		


��	







��	



 !"��	



 !!"#####$%&&''())��	


 ��	



 !!!!!"#####$%&'()*++++,-��		












��	

 !""#$%&'((((((()*+,---��	

   !"#$%&'''��	

  !"######$%&''''()**��	

 !"#$$%&&&'(()**+,-./��	


 !"#$$$%&&&&&'((((()*++,��		


 !"##$%%&'(()*+,-.��	




 !"#$%&'()))*++,-...��			

  !"#$%%&'(((((��	

��	


��	

��	

















��	

 !"#$$$$%&''()))))*+,��	


 !"#$$%&&'(()**+,-.��	

    !"""#$$$%&'()*+��	

 !"#$%&''()*+,-./012344445678��	


   !""#$$$$$$%&''())��	

  !""""#$%%&'((((��	

 !"#$%&''()**+,-./0123��	

 !"#$%%%%&'(��		

     !""#$%��	

��	

 !"###��	




��	

��	

 !"#$$%&&&&&&&&��	

 !"#$$$$$$$$%&&'())��	

   !""""#$%%&'''''��	

 !"#$$%&%'''''()*+��	


   !"#$%%&'''()��				

��	






��	


 !"#$$%&''''())*++��	


 !""#$%&'()*+,-,,,,)./0��	




 !"#$%&'(()*+,-.///////��	



 !"#$%%%%%%%%&'(��	

 !""#$%&��	

 !"########$%&'((((((((��			










��	




 !"""��	

��		

��	



 !!!"##!!��	






��						




��	

��					











��							



��	












��	




��	

 !!!"###$%%��	

   !"#$%&'())*++++,--��	





 !"#$%&''()))*+,��	


 !"#$%&'(()&*++++,-./0123��			

 !!" #$%&'()**+,-./01��	

 !"#$$$%&'()*+��	

	  !"###$%&&&&'(()*+++,---��	

 !"##$%&&'(()**+,,,,,,-��	




  !"#$$$%&'()*+++��	

 !"##$%&$$'&()))))��	

��	



 !"##$%&'((��	

      !!!!"####$%%%%%%��			










 !��	



��	













��											

��	
��	

��			

 !"#$%&&��													

 !!!"##��	

��													





��			

��	




��	





��			

  !"""#$%%%&&��	

��	

 !"#$%&&'()*+,---��	

 !!"##$%&''''()��								

��		




   !""#$%%%%��	



��				

 !"""""#$$$��	













��	

��	

��	

 !"#$%&'())*+��	

 ��	

 !"#$%&''())*+,,-./0��	




 !" ####$%&&'(((()**+,,-��	



 !""#$$!%&''()))*+,-��	
	
��		


��	

 !"#$%&&&'())*+,-��	

 !"#$%%%��								




��		

 !"��	

��			

  !"""#$$%&'''()*+��	

��	


 !"####$%%%%&'��				

��	





��	



 !"#####��	














��	



 !"#$$$$$$$%&&'()**��	

 !"#$��	


��	




   !"#####$%%%%%%%%%%%&��	

��	



 !"#$%%&'$(((()*+,-./0��	


 !!"#$%&'())*+��	

��				





 !"��			
						

��						


��	

 !��	

��	











������������	

 !!"#$��	


 !"#$%&'()*++,--./01234556789��		








     !"#$%&'(((((��	

    !""""#$��					


 ��	

 !!!!!!!"#$$$��	

 !""""""#$%&'()*++,-./0��	

��	






   !"#$%&'()*+),,-.."/0123��	

 !"#$%&'()*+,-.//��	


 !"#####$%��			

  !""""#$%&&'(��	

��	

��		

 !"#$%&'()**)+��			

 !��	

 !"#$%&'()*++,-.///012��	



    !"""#$%&&'(()*+*,----��	


 !"#$%&'()*+,-..��					

 !!!!!!!"#$$%&''��	


 !"#$%&'((��	




 !"#####$$%%%&''��	

	  ��	


��	

 ��	


��	


��	






��											

��	







��	














��	





��					






 !!!!!��	

 !!"#$$$%&&&&'(��	




    !""#$$%&&%'''())*+��				

 ��	



  !""��	




��	




��	








 !!!"#$��		




 !!!��	



 !""#$#%��					


��	






















����	




   !"""""""     ��������������		

 ��	

 !"#$$%&'()*+,-./0123456789:��	

 !"#$$%&''()**+,,-........��	








��	







����	

 !"#$��	

 !"#$%&&&'()**+,,-./0122222222��					











��	




   !"#$%%&'%(&))��	




  !" ��	





 ��	



������	

��	



    !!"#$$$$%&''''())*+++,-.��	





 !"#$%&'()**+,,,-./000122��	

 !"###$%%%%%%$&'((((())*+,,-./01��	


 !!!!!!!"#$��					

 !"#$%&'()(*+,-.//01��	





 !!!!"###$%%%%&'(��	

��	

 !"#$%&$'()*+,-...//0��	

��	










����������������������	

  !  "#$%&'''''())*+��							



 !"###$%&'()**+,��		

 !!"#$%&''() ***+,-./00��	

        !����	

��	




 !!"#$%&'(((()*+,-��	

 !"#$$$$$%&'()*++++++++��	



  !"��	


 !""""#$��			



 !!!!"#��	


��	





��					

����	

��	


 !""#$$$$$$$$$$$$$$$$$$$$$$$$��		







����	






��	

������	

��	


 !"""""""#$%%%%&'()'*+,,,��	





��	











��	



����������	

��	



��������	

��	

 !!!!!!!!!!"#��	









��	



 !"��	



����	

��������������������������������			��				��													











��				







����	

 !"##############################��������						




��	��	



















������	


�����	

 !"#$%&'()***+,-.///0;D8]��`h]���H^����^���x_����_����`���zRx�$�\��0FJw�?:*3$"D�\�� \�]��op�]�����^��v�_�����_��$HWGNU���`�"�
�
x�@�v��
�pp�	�
�
D�@�v��
�p0	y�������
�
P�"X�"���o`��
�"0���	���o����o�o����o��"GA$3a1��
GA$3p1067�
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYoGA+GLIBCXX_ASSERTIONSgb18030.so-2.2.10-35.el8.x86_64.debugό�,�7zXZ�ִF!t/���>]?�E�h=��ڊ�2N��nm�E�]ҧ6�Ӱ����9�����6
�dn9�v��W4.6|)0�,�Xs�b��i<�dVG�"ty���]��x�(�m}��"9��=۔��DR*3"��3p��T1C":�������
�SY�ZzOXLz��૒��D�L/�Hc��=�3�I���.�蘿i��*�S�Y*/KbF�h/q}�}[�EUm�)��_7�}�=`�!]�Z�����b0	Lo!C(�r�x����S������6�#*�T��-�~v=4����"��W�!�ԉ�t�����$X�8v�D#� }��~��AM�U:����1�d5Q�% 
"������	qC�GSᢞ�x0�o�fx5j�i9#B��w�M��o��q�r���;D�cL(��t_�$|F�2T� ����U��4��}q�"�z�6'�t���'h��KL�����؛�u�NԺ1x9��@d�ׅ����$���e�\�g��J���fq�U9�G��in6Wu�S��g�d��@�	���Z���
��Rx�R��u��0e�4qv�w�xtd
s���j�S�? 9ڱ�Cz�����݂i����Vj
pZ1MXD~�pC����eQH���o2�_,HB��i*K�-R�0/u��Hm���O���1c#��-௪���4��@cB��Q�|=�ѹ��\O���pN|Z�؋�LOr���M
b�Y�
/�A���=uʡ4��1�&��p�Aw��N�=�	%�c%�Q����d��HnU�ߧ
��>~ш�MQ�ٰJkuf7�p�*@���f�H��ܾ)������g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T���^B��0h��c��0n   w@@D}�
�

��
�
� �����D�����ȪȪ �P�"P��X�"X��`�"`�` ���"�� ��"� ��"�(�(�"(��0�b(�H
p�,����+lib64/ruby/2.2.0/x86_64-linux/enc/trans/japanese.so000075500000027160150402105760015235 0ustar00ELF>@0'@8	@ PP P �� �� �   888$$�
�
�
  S�td�
�
�
  P�td 
 
 
44Q�tdR�tdPP P ��GNU@7���VP8�(����@ �BE���|�|��qX c , F"�(  �0  U�$�(  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_japaneserb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�P �X �` ` � �� �� �	� 	� 0  �( �8 �	H 	� �� � � �      ��H��H�9 H��t��H����5B �%C ��h�������h���������% D���% DH�= H�
 H9�tH�� H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�� H��t��fD�����=� u+UH�=b H��tH�=� �Y����d����u ]������w��������~���t@����A�0������޺pAF�k������p�����~O�@�q�@�9�����H��tN��V=��p�Oƍra��x���@�9�@�q�f.��r`���~ލr�x���D����A��f���H��H�=q �<���H�=� H���,�����H��H���Shift_JISEUC-JP		``$`4,<�D�4�`h�p�����@��;4����P���x��������������zRx�$H���0FJw�?:*3$"DP��� \���Ypd���g�����$HWGNU���` ����		#0��X�		#�z�������
�P X ���o`��
  0p��	���o����o�o����o
� ��GA$3a1��GA$3p1067��GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�)GA+GLIBCXX_ASSERTIONSjapanese.so-2.2.10-35.el8.x86_64.debug�LA�7zXZ�ִF!t/��g']?�E�h=��ڊ�2N����ў1��e2��k1�#s�?�YI����fihO�go�EOg����]=�Z�_��:\U�W0���76��F�H�����-;��%$nk�~	6a �6����	3���e��پ�{y>��"�6�N��C`bN��i��\�4��Td����lסC;qʣ�˄�|U�W4��wx"f��&���_��C�����vJ�
e6}U|U3*z%9U	�PaO��A��U�=C�呯�q㈏�msS�y��g�9ۈ�K��I-���q�����ݶ�qX�H�%/1�,��X��!
~�b��٘��s���7&��C�P���Dԏ!�`��r��ƛǼ��X���f;B�`"�b1�f^�,�:��B��@T�D4�0>l!��հ`f�G�M���ߠ2\æy�bC�p��yo�x��U롑M���i<Y�2V��p�kҢk^���j�ޫ��MjIB�:����Q�?]98�����"��$��b���[���i�R�ΥY�>D@e7��ސ[T�p!��%M�R�Z$uo#�eK����©B��%-�7��	2���o��x�[5&�t�mt#��R�x��<��E���Т�͞�S�(�Ue��r�%7y�q��d-���^�������D�Q�+
���7��E�S�t�xo�͆���n�aS=��%q<���V�-Zgʤ����h�W�VBL�DvD�fm\���to��p��ۗ���Op�#�pX:��n�~�Kz�-)��m�}�j�v��n�P�V��NbI�w�u?
~潙'���~�ݱ�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T���^Bpp0h��c��0n�� w�}��
���? � 
 
4�X
X
���
�
 �P P�X X�` `` �� � �� � �   (�(  ( �0 `( H
p",�"h&+lib64/ruby/2.2.0/x86_64-linux/enc/trans/iso2022.so000075500000037400150402105760014545 0ustar00ELF> @�7@8	@(( �(�( �( �� �-�- �-   888$$  S�td  P�td�����Q�tdR�td�(�( �( ppGNU��X~��Ex��x�3H��L�B 	BE���
�_��|�qX b , F"�(0 U�l�00 �(0 __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_iso2022rb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��( ��( ��( �( �( ��( ��( �( �) �) �8) �@) H) �
P) `) �h) �x) �) ��) ��) ��) �)  �) �
�)  * �* �* (* �P* �X* �h* @x* ��* ��* ��* �* ��* ��* �+ @+ �@+ �H+ �X+ h+ ��+ �
�+ ��+ ��+ , �X, �
�, ��, ��, �, ��, ��, ��, �-  - �
-   - �(- �8- H- �p- �x- ��- p�- ��/ �/ �/ �/ 0  0 ��H��H�)$ H��t��H����52$ �%3$ ��h�������h���������%
$ D���%$ DH�=$ H��# H9�tH��# H��t	�����H�=�# H�5�# H)�H��H��H��?H�H�tH�u# H��t��fD�����=�# u+UH�=R# H��tH�=� �Y����d����e# ]������w�������1��fD���H��tk�>�t><tZ�AB�$L�Af����F��A��VI�@H)ȃ�A�P�fD<t�$L�A�A@�f��DI���I�Ȅ�tA�(�ABL�AfD�	��I�@H)ȃ�A��ff.����?��HD��f.����F��F�A��f�������A�F�A��fD��D�H��tb�<�t;A�����$�ABL�Af�����A��VI�@H)ȃ�A�P�f�H��A��tF�(�AIL�Af����E��t+A�(�ABL�AfD�	��I�@H)ȃ�A��DI����I������?SI��t#H��u�>�tpI��L���-���[I�L��L)��f�D�_L�
4A��C�D�H�LȀI��tA�$�ABL�IfD�D��@�E�M�QH��tsA�A�D�F�7�P_��>��I����I��s}@��t�$A�BBI��fA�R��������H��I��H��fA�B�L��[H)��@�>�u��^���t<����v���A��JA���h�����A�AL��[H)��@�GL��[H)�@�w�Ã�A�AL��[H)������1���tH��t�(�@BH��f�P�H)����GH����T�H��Hc�H€tA�$�FBH�NfD��H�Af�릐���?�t���!<^H���9H���ff.�@���>t'�?���D����Ȁ�A�F�Ȁ�A��f��~(�T�t%��@t8��Bt1����1��f.���Bt1���Ju��1��fD�1��f���1��?t�(�FBf�������<t5���}<tI<u�����!��?H���H���fD��f���P߀�v]�Pи��DvP����B�<v>��-t9�Jи@��Dv܃�y��H���9H������_<?H���H���D�@�f����<ta<tA<t-���t
�x_@��>wl��uh����Ȁ�A��fD�1��f.��~(�T�u��It�Jt1���Bu8�1��fD��@t+��Bu)�1����Ȁ��F�Ȁ�A���1��f���H��H�=q �L���H�=� �@���H�= �4���H�=m �(���H�=� ����H�= ����H�=� ����H�=] H������H��H���!#!V!W!"!&%r%!%#%%%'%)%c%e%g%C!<%"%$%&%(%*%+%-%/%1%3%5%7%9%;%=%?%A%D%F%H%J%K%L%M%N%O%R%U%X%[%^%_%`%a%b%d%f%h%i%j%k%l%m%o%s!+!,CP51932CP50220CP50221cp51932EUC-JPstateless-ISO-2022-JP
$,��H�PXY`XYt	�����	��H�����
���	H��@BBJ$(!~����BJ��;��� ���������$�8 �L��` ��������������@����`������������zRx�$@�0FJw�?:*3$"DH� \�
p�������������0�h�IH�\
L�
Hp
HG
KK��o��!0��~Dh��� Xt����l���������lH_GNU����( ����E����
����E�� �
 �����E��@������E��@������E�
�����E�
��l��E��� �
 ��8��E��p�y�������
�( �( ���o`��
0 0���	���o����o�o����oC�- ��GA$3a1�GA$3p1067�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY��GA+GLIBCXX_ASSERTIONSiso2022.so-2.2.10-35.el8.x86_64.debug#Ȱ�7zXZ�ִF!t/����]?�E�h=��ڊ�2N�.��gD��q�
*P�+�nV�H!��Րe]�b:�����l�0�y_t��?�!�@���;&���E�������Q4��x��L[��R)&g<O��T�'��vtEkN��0*��M�A*f�x;G���,c�N�_>��w�cn�`�6`�JJ��Z��/MU��#��P���^�ɂ|F�j��U�h'GˇpRY>��`�h���a��z~(������|�ּy�	һG	i2(SӉ�}ú�qli~
�������AG%� W�e#މ��l�1@��V8H^�;a1_E���=���y5TDeM�ꨰ�(oW2�q ��2���W�Fr.8���V�3�T�%���\� ?�|�瑰x�a:�_�4B���f�h9�o	G�eP�§�"!0/��h�
�p�\rcz$�^�W��`�����y�p|b��g�EY�� �p~/��b'���<bw�`ھ:�(�>�6`��>�^�c�c�p L�dK����)˷�E޸�i���y4f���\d�8ݭ���&jV��^����v��2�8]yp��w���n�����U)�9�6ց���Y�)�6���1�c_���w�m)�[��G�_��_d=X;cl���W/�TZ#��	��½��q@	X?Z�M�n���z������+uf[m�{�zM^�G~�7ո��z!��S_E���2���&n�&ʉ��
Q�A+M���T�}�	�����
�pAZb.����X=U���"�����;�wN��ǁ�������0)����F%�Lp{�T����y���w���7{CK�>�e�n�P�NX�(<ɭ�C<�R�	C����d�j��
���a��ǪK'������0�����w��֏y#��x��]A��:��vhs>6C�N�[�j�Q�H�E'>�%L��O��c��!h�����g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T���^B��0h��c��0n w  �}
�  � �����pp�� ��( �(��( �(��( �(  ��- �- ��/ �/ �0 0(�(0 (0�00`(0H
p2,�2��6+lib64/ruby/2.2.0/x86_64-linux/enc/trans/japanese_euc.so000075500001277020150402105760016074 0ustar00ELF> 	@�v@8	@papa �h�h%�h%�� �m�m%�m%  888$$PaPaPa  S�tdPaPaPa  P�td�`�`�`$$Q�tdR�td�h�h%�h%ppGNUH��������Z�	��Z�@ 	 BE���|Z�'��qX g , F"�(p%�0p%U�	l�(p%__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_japanese_eucrb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��h%�	�h%�	�h%�h%�h%`
�h%f
�h%���h%�
`i%`
hi%s
xi%���i%�
j%`
j%{
j%��(j%�
�j%`
�j%�
�j%���j%�
@k%f
Hk%`
Xk%��hk%�
�k%s
�k%`
�k%��l%�
�l%{
�l%`
�l%���l%�
 m%�
(m%`
8m%��Hm%�
�o%�o%�o%�o%p% p%��H��H�)g%H��t��H����52g%�%3g%��h�������h���������%
g%D���%g%DH�=g%H��f%H9�tH��f%H��t	�����H�=�f%H�5�f%H)�H��H��H��?H�H�tH�uf%H��t��fD�����=�f%u+UH�=Rf%H��tH�=�^%�Y����d����ef%]������w������H��H�=1c%����H�=�b%����H�=�a%��H�=-a%���H�=�`%����H�=�_%����H�=)_%����H�=}^%H�������H��H���UTF-8EUC-JIS-2004CP51932eucJP-msEUC-JP。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚		`	˘ˇ¸˙˝¯˛˚~΄΅¡¦¿ºª©®™¤№�	ΆΈΉΊΪΌΎΫΏάέήίϊΐόςύϋΰώ �	ЂЃЄЅІЇЈЉЊЋЌЎЏђѓєѕіїјљњћќўџ��ÆĐ	ĦIJŁĿŊØŒŦÞæđðħıijĸłŀʼnŋøœßŧþ�\ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ	ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ@�áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ	ġĥíìïîǐīįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż�@丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄�侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐(傒傓傔傖傛傜傞傟傠傡傢傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂�凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋0
匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿�咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒8
嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍嘎嘏嘐嘑嘒嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤囥囦囧囨囱囫园�囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭坮坯坰坱坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡@堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭�奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿H嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖寗寘寙寚寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩�屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤P巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪幫幬幭幮幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧�彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐忑忒忓忔忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷X悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐愑愒愓愔愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥�懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵`捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿�擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝h昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝� 杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮桯桰桱桲桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏p"棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲�#樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽x%歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖�&泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞�(湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊*濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔炕炖炗炘炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃焄焅焆焇焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠�+煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻-狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽�.珿琀琁琄琇琊琑琚琛琤琦琨琩琪琫琬琭琮琯琰琱琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆0甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹畺畻畼畽畾疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹�1瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢皣皤皥皦皧皨皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢3睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳�4碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞$6秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰�7笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙籚籛籜籝籞,9籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝�:綞綦綧綪綳綶綷綹緂緃緄緅緆緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭4<罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮�=胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆<?艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸�@荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓DB蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏蕐蕑蕒蕓蕖蕙蕜蕝蕞蕟蕠蕡蕢蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼�C藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠虡虢虣虤虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣LE蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃螄螅螆螇螈螉螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵�F蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊裋裌裍裎裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺TH襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔觕觖觗觘觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳�I誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂譃譄譅譆譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆\K貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢�L踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁dN轃轇轏轑轒轓轔轕轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃�O郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿lQ釂釃釅釓釔釗釙釚釞釤釥釩釪釬釭釮釯釰釱釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵鉶鉷鉸鉹鉻鉼鉽鉿銈銉銊銍銎銒銗�R銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿鋀鋁鋂鋃鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶tT鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉鏊鏋鏌鏍鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹�U镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂|W霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦Y頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱餲餳餴餵餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵�Z馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿鬀鬁鬂鬃\鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪魫魬魭魮魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸�]鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦鰧鰨鰩鰪鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻_鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵�`黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃齄齅齆齇齓齕齖齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥	`bx�T�8� �(
�0
�8�@�H�P�X�`� h"�#p%�&x(�)�+-�.0�13�46�7$9�:,<�=4?�@<B�CDE�FLH�ITK�L\N�OdQ�RlT�UtW�X|Z\�]_�`b,c�4c 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー—‐/\〜‖|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+−±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇Td◆□■△▲▽▼※〒→←↑↓〓	∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬ʼn♯♭♪†‡¶◯ �e	0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz��fぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん	��gァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ	@ iΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ	αβγδεζηθικλμνξοπρστυφχψω��jАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ	абвгдеёжзийклмнопрстуфхцчшщъыьэюяXk─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂	`pl亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭m院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応�n押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改p魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱�q粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄s機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京�t供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈v掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲�w検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向 y后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込�z此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷(|察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時�}次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周0宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償��勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾8�拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾��澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線@�繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎Ć臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只H�叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵̉帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓P�邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到Ԍ董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入X�如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦܏函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美`�鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服�福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋h�法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満�漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒p�諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃�痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯x�蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕	���弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲؜僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨\�辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨�咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉d�圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩�奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓l�屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏�廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚t�悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛��戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼|�據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼�曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍��棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣�檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾��沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌�漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼��燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱�瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰��癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬 �磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐��筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆(�紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺��罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋0�隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙��茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈8�蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙��蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞@�襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫��譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊H�蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸��遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮P�錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞��陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰X�顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷��髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈`�鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠��堯槇遙瑤凜熙	 h�Ld�e�f�gi�jPkhl�l|np�qs�tv�wy�z |�}(��0���8���@�ĉH�̌P�ԏX�ܒ`��h��p��МT�؟\��d��l��t���|������������� ���(���0���8���@���H���P���X���`������	˘ˇ¸˙˝¯˛˚~΄΅¡¦¿ºª©®™¤№���	ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡ�D�ⅢⅣⅤⅥⅦⅧⅨⅩ'"㈱№℡炻仼僴凬匇匤﨎咊坙﨏塚增寬峵嵓﨑德悅愠敎昻晥晴朗栁﨓﨔橫櫢淸淲瀨凞猪甁皂皞益礰礼神祥福竧靖精綠緖羽荢﨟薰蘒﨡蠇諸譿賴赶﨣﨤逸郞都鄕﨧﨨閒隆﨩霻靍靑飯飼館馞髙魲鶴黑����������� ���(���<��T�8� �(
�0
�8�@�H�P�X�`� h"�#p%�&x(�)�+-�.0�13�46�7$9�:,<�=4?�@<B�CDE�FLH�ITK�L\N�OdQ�RlT�UtW�X|Z\�]_�`b,c|������������� ���(��0� 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇��◆□■△▲▽▼※〒→←↑↓〓	∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬ʼn♯♭♪†‡¶◯ �①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ	㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡㍻〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪A	��D���L���T���\��d��x������gi�jPkhl�l<�|np�qs�tv�wy�z |�}(��0���8���@�ĉH�̌P�ԏX�ܒ`��h��p��МT�؟\��d��l��t���|������������� ���(���0���8���@���H���P���X���`�����D���L���T��\��d��	l�纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德�忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱l�犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚�釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑	ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"�
t�����gi�jPkhl�l<�|np�qs�tv�wy�z |�}(��0���8���@�ĉH�̌P�ԏX�ܒ`��h��p��МT�؟\��d��l��t���|������������� ���(���0���8���@���H���P���X���`���d��l���丂丏丒丩丫丮乀乇么乑㐆Q乚乩亝㐬㐮亹亻�亼仃仈仐仫仚仱仵伀伖佤伷伾佔佘�佷佸佺佽侂侅侒侚俦侲侾俅俋俏俒㑪俲倀倐倓倜倞倢㑨偂偆偎偓偗偣偦偪偰傣傈傒傓傕傖傜傪傱傺傻僄僇僳Q僎�	僔僙僡僩㒒T儈�
儗儛兠Q
关冃冋㒼冘冣冭㓇冼��凳凴刂划刖剕剜剬剷劄劂Q劘�劤劦劯劺劻勊㔟勑�勷匊匋匤匵匾卂Q卧卬卺厤厴�厷叀�㕝㕞叕叚㕣叴叵呕吤吨㕮呃呢呦呬咊咍咕咠咦咭咮咷咺咿哃哬哯哱哳唀唁唉�唼啁㖦啇啊㖨啠啡啤Q啽喂喈喑㗅嗒��喿嗉嗌嗑嗝㗚嗢 嗩嘨Q!嘇嘐嘰嘷㗴嘽嘿噀噇噞噠噭㘅嚈嚌嚕嚚嚝嚨嚭嚲囅囍囟囨囶囷�"圕圣�#圩%坅坆坌坍Q&坨坯坳坴坵坻�'�(垬垚垝垞垨埗*埌Q+�,埞埦埰㙊埸埻埽堄堞\堠堧堲堹�-塉塌塧墊墋墍墏墐墔墝墪墱/壃壍壢壳壴夅夆夋复夔夤Q0㚑夽㚙奆㚖�1奛奟�2奵奶奼妟妮妼姈姍姞姣姤姧姮4Q5㛏娌娍娗娧娭婕婥婺媋媜媟媠媢媱媳媵媺媿嫚嫜嫠嫥嫰嫮嫵嬀嬈嬗嬴嬭孌孒孨孯孼孿宁宄�6�宖宬㝡寀㝢寎寖㝬㝫寱寽㝵尃尩尰�7屟屣屧屨屩屰9Q:屼�;�<岈岊㟁>Q?岠岢岦岧�@岭岵�A峉CQD崆崐崫崝崠崤崦崱崹嵂㟨嵡嵪㟴嵰�E㟽嶈㠀嶒嶔嶗嶙嶰嶲嶴�F嶹巑巗巘巠H巤巩㠯帀㠶帒帕㡀帟帮帾幉㡜幖㡡幫幬幭d	幮QI庥庪庬庹庿廆廒廙�J廽弈弎弜�K弞彇彣彲彾徏徢徤徸忄㣺忇忋忒忓忔忢忮忯忳忼㤗怗怢怤㤚恌恿悊悕您M悰悱悾惈惙惛惮惲惵愐愒愓愙愞愺㥯慁慆慠慼QN憒憓憗憘憥憨憭�O懕懝懟懵�P戕戣戩扆扌扑扒扡扤扻扭扳�
抙抦拕R拽挃挍挐QS�T挲挵挻挼捁捄捎�U捙WQX捬掄掙�Y掔掽揷揔揕揜揠揫揬揲搉搞搥搩搯摚摛摝摳摽撇撑撝撟擋擌擕擗�Z擤擥擿攄㩮攏攔攖㩳攞攲敄敔敫敺斁斄斅斊斲斵斸斿旂旉旔㫖旲旹旼昄昈昡昪晅晑晎㫪\晗l晛晣Q]�^晪晫晬晭晻暀暐暒暙㬎暭暱暵㬚暿㬜曬㫗朁朅朒�_朙aQb杌杍杔杝�c�df杴杶Qg枒�h荣栐枰枲柃柈柒柙柛柰柷�ikQl栘栟栭�m栳栻栾桄桅桉桌桕桗㭷桫桮桺桼梂梐梖㭭梘梙梚梜梪梫梴梻棻�np﨓棃棅棌棏棖�
棙棤棥棬棷椃椇㮇㮈Qq椻㮍楆楩楬楲楺楿榒㮤榖榘榦榰榷榺榼槀槑槖�r�s樰uQv槣槮槯槳㯍槴槾樑樚樝�w樲樳樴樿橆橉橺橎橒橤�x橾檃檋㯰檑檟檡z檫檽櫆櫔櫐櫜櫝Q{�|櫬櫱櫲櫳櫽�}欋欏欐欑欗㰦欯歊歘歬歵歺殁t殛殮Q�殽殾毇毈毉毚毦毧毮毱氂氊氎氵氶氺��氿汍汛汭沄沉㳃沔沕沗沭泂泐㳒泖泚泜泩泬泭т洀洊洤洦洧汧洯洼浛浞浠浰涀涁涊涍涑涘�渗Q���ч涫涮涴淂洴淈淎淏淐淟淩淶渶渞渢渧㴑渲渼湈湉湋湌湏湑湓湔湗湣㴞�溓溧溴溿滃滊滙漵滫滹滻漊漌漘漥漶漼�潒潗潚潠潨澘潽澐澖澾澟澥澯㵤澵濈濉濚濞濩Q�濼瀀瀇瀊瀣��瀹瀺瀼灃灇灋㶚灔灥灩灬灮灶灾炁炆炕炗炻ь炟炱�烬烊烑烓烜焃焄焆焇焈焌㷀焯焱煐煊煓煞㷔熖熀熛熠熢熮熯|熳Q�燋燓燙燜爇㸅爫爫爴爸爹丬牂牓牗牣��牮牯牸牿犎ё犭犮犰犱狁㹠狌㹦㹨狳狺猇猒猘猙㺃猹猬猱猳猽獒㺔獫獬�獮獯獱獷玁玅玊玔玘玜玞玥玨玵玷玹玼玿珅珋珡珧珹琓珺琁琤琱琹瑓瑀瑃瑍瑒瑝瑱璁璅璈Q�璒璗璙璠璡璥璪璫璹璻璺瓖瓘瓞瓯瓫��瓺і甠甤甪㽗�甽甾畀畈畎畐畒畬畲畱畺畽畾疁Q�疌㽵疢㽷疰疷疿痀痆痏痓痝痟痠痧痬痮痱痹瘃瘘瘇瘏㾮��瘓瘛瘜ћ瘥瘨瘼瘳�㿉癁Q�癉癕㿗癮皕皜皡皠皧皨皯��盉Ѡ盨盬�眗眚眭眵�Q�䀹��ѥ睘睠睪�睲睼睽Q�䁘瞚瞟瞢瞤瞩矞矟矤矦矪矬䂓矰矴矻��砅砆砉砍砙砡砬硇硤硪Ѫ碊碔碤碝碞碟碻磈磌磎磕磠磡磦磹磺磻磾�礐礛礰礥礻祊祘祛䄅祧祲禔禕禖禛禡禩禴离秂秇秌种秖䅈Q���䅏稊稑稕稛稞䅣稭稸穇穌穖穙穜穟穠穧穪穵穸窂窊窐窣窬ѯ䆴窹窼窾䆿竌竑竧竨竴�Q�笇��笽笧笪笮笯笱䇦䇳筿筁䇮筕筹筤筦筩筳Ѵ䈇箐箑箛䈎箯箵箼篅篊�Q�篔篖篚篪篰簃簋簎簏簦籅籊籑籗籞籡籩籮籯籰��ѹ�粦Q�粶粷粿��糄Ѿ糈�糍�糗Q�糦糫��糵紃紉䋆紒紞���紽紾絀絇Q���䋖絙絚絪絰䋝絿��綆綈綌綗�綝綧綪綶綷緀緗緙緦緱緹䌂Q�縉縐縗縝縠縧縬繅繳繵繾纆纇䌫纑纘纚䍃缼缻缾罃罄罏㓁��罒��罡罣罤罭罽罾�羐养Q�羖羜羭��翃翏翣翥翯翲耂耊耈耎耑耖耤耬耰聃聦聱聵聻肙肜肤肧肸��胅胕胘胦�脍胵胻䏮脵脖脞䏰脤脧脬Q�脽䐈腩䐗膁䐜膄膅䐢膘膲臁臃臖臛��臤��臬�臽臿Q�舄��舙舡舢��舲舴舼艆艉艅�艋䑶艏䑺艗Q�艜艣��艹艹艹䒑艽艿芃芊芓芧芨�芲芴芺芼苢苨苷茇茈茌荔茛茝茰茼荄荗䒾荿䓔䒳莍莔莕莛莝菉菐菔菝菥菹萏萑萕��萗萹葊葏葑葒葙葚葜�葥葶葸葼蒁䔍蓜蒗蒦蒾䔈蓎蓏蓓Q�蓧蓪蓯蓰蓱蓺蓽蔌蔛蔤蔥蔫蔴蕏蕯䔥䕃蔾蕑蕓蕞蕡蕢��蕻蕽蕿薁薆薓薝薟���Q�薷薼藇藊藘藙藟藡藦藶蘀蘑蘞蘡蘤蘧��蘹蘼��虀蘒虓虖虯虷虺蚇蚉蚍蚑蚜蚝蚨﨡蚱蚳蛁蛃蛑蛕蛗蛣蛦䖸蜅蜇蜎蜐蜓蜙蜟蜡蜣蜱蜺蜾蝀蝃蝑蝘蝤蝥蝲蝼�Q�螧螉螋螓螠��䗥螾��蟁蟎蟵蟟�蟣蟥蟦蟪蟫蟭蠁蠃蠋蠓蠨�蠮蠲蠼䘏衊衘衟衤Q���衩�衯袠袼袽袾裀裒�裑裓裛裰裱䙁褁Q�褷��襂襅襉�䙥襢覀覉覐覟覰覷觖觘觫䚡觱觳觽觿䚯訑訔�訡訵訾詅詍詘誮誐誷誾諗諼Q�謊謅謍謜謟謭譃䜌譑譞譶譿讁讋讔讕讜讞谹��谽�豅豇豏豔  豗豩豭豳Q貓貒貙䝤貛貤賖賕賙�賰賱�贉贎赬趄趕趦跆跈跙跬踌䟽跽踆Q踔踖踡踢踧�䠖踶踹蹋蹔蹢蹬蹭蹯躘躞躮躳躵躶躻�	軑軔䡎軹輀輈輗輫轀轊轘Q辤辴辶辶�
迁迆﨤迊迍迓迕迠迱迵迻适逌逷�遃遄遝�!Q邅邌邐阝邡䢵邰邶郃郈�郜郟�郶郲鄀郫郾郿鄄鄆鄘鄜鄞鄷鄹鄺酆酇酗酙酡酤酴酹醅醎醨醮醳醶釃釄釚Q釬釮鈁鈊鈖鈗�鈳鉂鉇鉊鉎鉑鉖鉙鉠鉡鉥鉧鉨�鉼鉽鉿銉銍銗銙銟銧銫Q�銲銿鋀鋆鋎鋐鋗鋙鋥鋧錑�(#鋷鋹鋻錂錍錕錝錞錧錩Q �!鍇鍑鍗鍚鍫鍱鍳鎡�"$鎈鎋鎏鎞鏵Q%�&鏱鏁鏇鏜鏢鏧鐉鐏鐖鐗鏻鐲鐴鐻鑅�')鑭鑯镸镹閆閌閍Q*閫閴�+闈�,.阬阳阴Q/阼陁陡�0隂�1隚3䧧隩隯隳隺隽䧺Q4雘雚雝䨄霔霣䨩霶靁靇靕靗靛�$靪�5�6鞖鞚鞞鞢鞱鞲鞾韌韑韔韘韙韡韱頄頍頎頔頖䪼8頣頲頳頥顇顦颫颭颰Q9颷颸颻颼颿飂飇飋飠�:飡飣飥飪飰飱飳餈䬻�;餖餗=餚餛餜Q>餱餲餳餺餻餼饀饁饆饍饎饜饟饠馣馦馹馽馿駃駉駔駙駞�?駰駹駼騊騑騖騚騠0&騱騶驄驌驘䯂骯䯊骷䯒骹�@髆髐髒髕䯨髜髠髥髩鬃鬌鬐鬒鬖鬜鬫鬳鬽䰠魋魣魥魫魬魳魶魷鮦鮬鮱BQC鮲鮸鮾鯇鯳鯘鯝鯧鯪鯫鯯鯮�D鯺�E鯷G鰖鰘鰙鰚鰝鰢鰧鰩鰪QH鰱鰶鰷鱅鱜�I鱉鱊�J鱔鱘鱛鱝鱟鱩鱪鱫鱭鱮鱰鱲鱵鱺�'鳦鳲鴋鴂L鴑鴗鴘QM䳄�N鴲䳑鵂鵊鵟鵢�O鵩鵫Q鵳鵶鵷鵾鶄鶍鶙鶡鶿鶵鶹鶽鷃鷇鷉鷖鷚鷟鷠鷣鷴䴇鸊鸂鸍鸙鸜鸝鹻QR麀麅麛麨�S麽�T黟黧黮黿鼂䵷鼃鼗鼙鼯鼷鼺鼽齁齅齆齓齕齘V齝QW齩�X齭齰齵�Y	@8)�T�\	�
d�
l�t�|��� �! #�$(&�'0)�*l�*◆□■△▲▽▼※〒→←↑↓〓'"-~〳〴〵〻〼ヿゟ∈∋⊆⊇⊂⊃∪∩⊄⊅⊊⊋∉∅⌅⌆∧∨¬⇒⇔∀∃⊕⊖⊗∥∦⦅⦆〘〙〖〗∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬≢≃≅≈≶≷↔ʼn♯♭♪†‡¶♮♫♬♩◯+▷▶◁◀↗↘↖↙⇄⇨⇦⇧⇩⤴⤵0123456789⦿◉〽﹆﹅◦•ABCDEFGHIJKLMNOPQRSTUVWXYZ∓ℵℏ㏋ℓ℧abcdefghijklmnopqrstuvwxyz゠–⧺⧻�,ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんゔゕゖ	@ .ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ♤♠♢♦♡♥♧♣αβγδεζηθικλμνξοπρστυφχψως⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾☖☗〠☎☀☁☂☃♨▱ㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹ	ㇺㇻㇼㇽㇾㇿ�/АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ⎾⎿⏀⏁⏂⏃⏄⏅⏆⏇⏈⏉⏊⏋⏌абвгдеёжзийклмнопрстуфхцчшщъыьэюяヷヸヹヺ⋚⋛⅓⅔⅕✓⌘␣⏎1─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿	◐◑◒◓‼⁇⁈⁉ǍǎǐḾḿǸǹǑǒǔǖǘǚǜ��2€ ¡¤¦©ª«­®¯²³·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀĪŪĒŌāīūēō�3Ą˘ŁĽŚŠŞŤŹŽŻą˛łľśˇšşťź˝žżŔĂĹĆČĘĚĎŃŇŐŘŮŰŢŕăĺćčęěďđńňőřůűţ˙ĈĜĤĴŜŬĉĝĥĵŝŭɱʋɾʃʒɬɮɹʈɖɳɽʂʐɻɭɟɲʝʎɡŋɰʁħʕt5ʔɦʘǂɓɗʄɠƓœŒɨʉɘɵəɜɞɐɯʊɤʌɔɑɒʍɥʢʡɕʑɺɧɚ	ǽὰάὲέ͡ˈˌːˑ̆‿̋́̄̀̏̌̂˥˦˧˨˩̥̬̹̜̟̠̩̯̈̽˞̴̤̰̼̝̞̘̙̪̺̻̃̚,�6❶❷❸❹❺❻❼❽❾❿⓫⓬⓭⓮⓯⓰⓱⓲⓳⓴ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ㋐㋑㋒㋓㋔㋕㋖㋗㋘㋙㋚㋛㋜㋝㋞㋟㋠㋡㋢㋣㋺㋩㋥㋭㋬	⁑⁂�T8①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪ㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡Ⅻ	㍻〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼∮∟⊿❖☞��9俱�㐂丨丯丰亍仡份仿伃伋你佈佉佖佟佪佬佾侊侔侗侮俉俠倁倂倎倘倧倮偀倻偁傔僌僲僐僦僧儆儃儋儞儵兊免兕兗㒵冝凃凊凞凢凮刁㓛刓刕剉剗剡劓勈勉勌勐勖勛勤勰勻匀匇匜卑卡卣卽厓厝厲吒吧呍咜呫呴呿咈咖咡�:咩哆哿唎唫唵啐啞喁喆喎喝喭嗎嘆嘈嘎嘻噉噶噦器噯噱噲嚙嚞嚩嚬嚳囉囊圊Q�圡圯圳圴坰坷坼垜﨏��垸埇埈埏埤埭埵埶埿堉塚塡塤塀塼墉增墨墩��壒壎壔壚壠壩夌虁奝奭妋妒妤姃姒姝娓娣婧婭婷婾媄媞媧嫄�嬙嬥剝�<蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕Q�孁孖孽宓寘寬尒尞尣尫㞍屢層屮��屺岏岟岣岪岺峋峐峒峴��㟢崍崧﨑嵆嵇嵓嵊嵭嶁嶠嶤嶧嶸巋吞>堯槇遙瑤凜熙噓巢帔帘幘幞庾廊廋廹开异弇弝弣弴弶弽彀彅彔彘彤彧彽徉徜徧徯徵德忉忞忡忩怍怔怘怳怵恇悔悝悞惋惔惕惝惸愜愫愰愷慨憍憎憼憹懲戢戾扃扖扚扯抅拄拖拼挊挘挹捃捥捼揥揭揵搐搔搢摹摑摠摭擎撾撿�?擄擊擐擷擻攢攩敏敧斝既昀昉昕昞昺昢昤昫昰昱昳曻晈晌�晙晚晡晥晳晷晸暍暑暠暲暻曆曈㬢曛曨曺朓朗朳杦杇杈杻极枓枘枛枻柹柀柗柼栁桒栝栬栱桛桲桵梅梣梥梲棈棐棨棭棰棱棼椊楉Q�椵楂楗楣楤楨榀﨔榥榭槏㮶A㯃槢槩槪槵槶樏樕��樻樾橅橐橖橛橫橳��檉檔檝檞檥櫤櫧㰏欄欛欞欬欵歆歖歠步歧歷殂殩殭殺每毖毗毿氅氐氳汙汜沪汴汶沅沆沘沜泻泆泔泠泫泮�洄洎洮洱洹洿浘浥海涂涇涉涔涪涬涿淄淖淚淛淝淼渚渴湄湜湞溫溱滁�B滇滎漐漚漢漪漯漳潑潙潞潡潢潾澈澌澍澔澠澧澶澼濇濊濹濰濵瀅瀆瀨灊灝灞灎灤灵炅炤炫炷烔烘烤焏焫焞焠焮焰煆煇煑煮煒煜煠煨凞熅熇熒燁熺燄燾爀爕牕牖㸿犍犛犾狀狻Q�猧猨猪獐獦獼玕玟玠玢玦玫珉珏珖珙珣珩D琇琊琚琛琢琦琨琪琫琬琮琯琰瑄瑆瑇瑋瑗瑢瑫瑭璆璇璉璘璜璟璣璐璦璨璩璵璿瓈瓉瓚瓿甁甗甯畯畹疒㽲痎痤瘀瘂瘈瘕瘖瘙瘞瘭瘵癃癋癤癥癭癯癱皁皛皝皞皦皪皶盅盌盎盔盦盱盼眊眙眴眶睆睍睎睜睟睢睺瞀瞔瞪矠砭���E硃硎硏硑硨确碑碰��碭磤磲礀磷礜礮礱礴社祉祅祆祈祐祖祜祝神祥祹禍禎福禘禱禸秈秊�秔秞秫秭稃穀稹穝穭突窅窠Q�窳窻竎竫竽笒笭笻筇筎筠筭筯筲箞節篗篙簁簱簞簠簳簶䉤��籙籭籹粏粔粠粼糕糙糝紇紈紓紝紣紱G絁絈絓絜絺綃綋綠綦緂緌緖緣練縨縈縑縕繁繇繒繡纊纍罇署羑羗羿翎翛翟翬翮翺者耔耦耵耷耼胊胗胠胳脘腊腠腧腨腭膻臊臏臗臭䑓䑛艠艴��芎芡芣芤芩芮芷芾芿苆苕苽苾茀茁荢茢茭茺荃荇荑荕荽莆莒莘莧莩莿菀菇菏�H菑菡菪萁萆萊著葈葟葰葳蒅蒞蒯蒴蒺蓀蓂�蔲蔞蔣蔯蕙蕤﨟薭蕺薌薏薢薰藋藎藭蘒藿蘄蘅蘐Q�蘘蘩蘸虗虛虜虢䖝虬虵蚘蚸蛺蛼蛽蜋蝱螇螈螬螭螵䗪蟖蟬蠆蠊蠐蠔蠟袘袪裊裎��裵褜褐褘褙褚褧褰褲褹襀覔視觔觥觶訒訕$J訢訷詇詎詝詡詵詹誧諐諟諴諶諸謁謹譆譔譙譩讝豉豨賓賡賴賸賾贈贒贛趯跎跑跗踠踣踽蹰蹻��軀䡄軺輞輭輶轔�辦辵迤迨迮逈逭逸邈邕邗邙邛邢邳邾郄郅郇郗郝郞郯郴都鄔鄕鄖鄢鄣鄧鄯鄱鄴鄽酈酛醃醞醬醱醼釗釻釤�K釥釭釱鈇鈐鈸鈹鈺鈼鉀鉃鉏鉸銈鋂鋋鋌鋓鋠鋿錄錟錡錥鍈鍉鍊鍤鍥鍪鍰鎛鎣鎺鏆鏞鏟鐄鏽鐳鑊鑣鑫鑱鑲閎閟閦閩閬閶閽闋闐闓䦰闚闞陘隄隆隝隤隥雒雞難雩雯霳霻靍靎靏靚靮靳鞕鞮鞺韁韉韞韛韴響頊頞頫頰頻顒顓顖,M顗顙顚類顥顬颺飈飧饘馞騂騃騤騭騮騸驊驎驒骶髁髃髎髖髹鬂鬈鬠䰗鬭魞魹魦魲魵鮄鮊鮏鮞鮧鯁鯎鯥鯸鯽鰀鰣鱁鱏鱐鱓鱣鱥鱷鴝鴞鵃鵇鵒鵣鵰鵼鶊鶖鷀鶬鶼鷗Q�鷧鸇鸕鹼麞麤麬麯麴麵黃黑鼐鼹齗龐龔龗龢姸屛幷瘦繫�N+�e�,.�/�j1�2�3l5�6L8�9�:x<�=|np�qs�tv�wy�z |�}(��0���8���@�ĉH�̌P�ԏX�ܒ`��h��p���?T�؟\��d��l��t���|������������� ���(���0���8���@���H���P���X���`�A�BD�EG�HJ�K$M�N,P�4P	��������������������������������������������������Q������������������������������������������������	������������������������������������������������������������������������������������������������������������������������������������������� R������������������������������������������������������������	���������������������������������������������������������������������������������������������������������������������S,S������������������������������������������	����������������������������������������������������������������������������������������������������������������������������������������������(T�	���������������������������������������������������4U	������������������[�U	�����������������������������������������������������������������������������������������������������������������������������������U������������������������������������	��V	�����������������������������������������������������������������������������������������������������������������������������������������!�V��������������������������������	�����������������������������������������c�W,U�|X�|X	��������������������������������X	����������	�X	��������KY	����� Y��	���������������������������������������8Y	���������������Y	����������S�Y	����Y��������	������������������������������������������������������Y	�����Z	������������[�Z	��������������Z	������Z��	��������![�X,U�XY0Y�Y�Y�Y�Y|Z�Z�Z�Z�Z [c([��������	�������������������������������������p[	�������������������������������������������������������������������������������������������������������������������������������[����������������������������������������	������������������������������������������������������������������������\��������������������������������������������������������������������������������������������������������������	��������)�]�[�\�]�^,Uk�^��������������	��������������ͿТ�������У������ʺ�����ξ�����������Ф��������������Х�����Ц��ð��ЧШ��^������Щǵ�����	���Ƿ����˳�����Ъ��Ы��������������֦����������������������������_��	ЬЭλͽ��Я�������в�������������������������где˴ж��������������μ���зий�����1D`����о���м	н������лкʩ�������¾п��������������������������������������������������������Ǥ���������s�`�����������	������������������Ȳ�����������������������������������ȼ��������������������������a���	�����â����������������������ͤ������������������;��������դ�����������������������������ʻ���������������������������db	�����������������������������������������������������������������������������ե����������η��������������������98c��������¥��������	�������������������������������¯���������������������������������������ɶ�����������������{�c,U�_<`�`�a\b0c�c�d��d������	��������������������������������������������������������������������������������������������������������������������d�����������	��������������������������������������������������������������������������������¦�������A�e����	�������������˵��������������������������������������������������������������ѣ�����������������tf���	Ѥ�����������ѡѢ���Ư������������������ѥ���ν������Ѧ������ѩ���ѧ�����������ѨѪ���������Ѭ���ѫ���������$g��Ѯѯ�����	���������ѭ�����������������ѲѱѰ��������ѳ��������������Ѵ���������ͥ�����������������������Ѷ������ѵѸѷѹ �gѺ�����������������������Ѽ���������	ѻ���ѽ����������������Ѿ�����������Ȭ��ϻ����ʼ¶��ŵ�����I �h��	�������������������������������������������������������������̽������������������������������������������������� li	���������������ο������������������������������������������������������������������������������ȡ��� Dj���������������ʬ����	��������������������������������Ƚ���������������������������������������!k	�������§������������������˶���������������������������������������������������������������Q!�k���	�����������έ���������������������������������������������������������Ңң��������ϫҥ�����������������Ҥ������!hl���Ҧ	�����ļ���ͦ��������ҧ�����������ư���Ҩ��̳��������ҩ��ҭ�����Ҫ�����ҫ����������������������Ү���ү������Ұұ�������!4m���������	��Ҳҳ���������ҵҷҶ������Ҹ���������ҹ������������������Һ�����������������������һ���Ҽ���ҽ���Ҿɤ�������������ƿ"nҿ�������	��������Ⱦ����������´������ñ��������������������������������������������¨������������������Y"�n	���������������������������������������������������������������������������������������������֛"�o���	�������������ͧ��ȿ�������������������������������������������������������á�������������������������������"Tp	�����������������Ʊ̾���������������������������������������������������������������ʭ������#(q��	Ϥ����������������������������������������������������������������̣�������������̿���a#�q�����	������������������������������������������������ӣ��������������ӡ�������Ӿ��������������������ӥ��Ӥ����#|r����Ӣ	�����������������Ӧ�����ӯӧӨ����������ӭӬ���ů���Ӯ���ӫ�������#Ds������	������������������������ө��Ӫ�����������Ӵͣ�����Ӻ������ӹӰ�����������'$�sӱ���	��Ӷ�����������ӳ�������������ӷӸ���������ӵӻ���������Ӳ��������������i$\tӽ����������	����������ӿ������������������������Ӽ�������������������������������������������$�t	�������������ԧ������������������������������������������������������������������$�u	���ò�����������������������������������������������������������������������������������/% v��������������	���������������������������������������������������������������������ʮ�����ȸq%�v��	���������������������������������������������ǹ�������������������������������������������%Tw��������	�����������������������������������������������������������������������������������������������������%�w����������	���ԡ����Ԣ���ԣ�������Ԥ���Ԧԥ������Ԩ��������������������ԩ�����������������������������Ԫԫԭ���������7&�xԮ	����������˷������Ԭԯ�������Գ��������ó������԰�����������������������������������������������Դy&�y	��������ԲԵ�����Զ���������������������������Է�������Թ���������Ժ���ԻԸ������&,zԱ	ԼԽ����������������Կ�Ծ�����Ǹ��������������������������������������������������������������&�z��	Ʋ��������������������������������������������������������������������������������?'`{ʽ��	��������������������������������ȹ�����������������������Ŷ��������������������'�{������	������������������������������������������������������������������������ʯ��������������'�|	�������������������������������������������������������������������������������������������������������(4}	�������������������������������ͼ������¿����������̴�������������ŷ�������������������������������������G(�}	��������������������������������������������������������������å�������ʳ����������������ա������������(�~	բǡ����ǥ������ի����������������̯֬գ���զ��������˸��������������է�������������������(|	���������ը������������������������լխժ����������������������թ��ɱ������������������������
)������	�����ղ���������հ������̼ճձ���կ��������ծ�������������������շո��O)��մϬ	��������������ն��������������չ�����������պյ���������������̻�)H�	�����������������ջɲ������������������������������������������ռ�ս����)��	��տ�����������վ�������������������������������������������������*8�������	����������������������������������������������������W*�������	��������������������������¸��������������������������¹��������֣�������������������ƙ* ������	��������������������������������������������������������������������ͨ���������������������������������������������������*̃��������������̩��	������������������������������������������������������ǫ����������������������������������+��	���������������º�������Ƴ��������������������������������������������������������������������Ǣ_+�����	������������֢֡���Ÿ���������°����������������������֤���֥�������������֧֨�������������+D�	���������֩�����֪���֫���������������������������̨֭�������������ֱ֯�����ְֳ֮�+��	ֲִ������������ֵ���ƽ����ֶֹֻ����������������ָ��ַ%,��	��������ּ������������ֽ��־�����������������������������������������g,��	����������������������������������ֿ����������������������������������������������,��	��������������������ֺ����������������������������������������������������������������,�	��������������������������������������������������������������������̦��������������ç��--�����	��������������������������ġ������������������������������������Ģ���������˹���o-H���	����������������������������������������������Ȩ��ʾ�������������������������ʿǯ������������ͩ����-����ģ	�������������������Ź�������������������������������������������������������-��	���������ϭ�������������������������ספץ���ף������קצע���רש���ת׭׫׬׮����ׯ����Ƕװ�5.<�	�����ױϮ���������ײ�׵Сб������׶��Ĥ��׷ʦ������������������������������������׸������׹���׿��������ĥ�����׺���ɫ��������w.����׻	���������׼��׽���׾�������������������״׳�������������ɧ�����ɷĦ�������������������������������������������.�������������	���������Χ���������������������������������������������������������������������ħ���Ű�����.��	�����ɬ��������������Ǧ�������������������˺˻����������������������������������������ح��������ǰ�����������������=/|��elfg�g�hdi<j�j�k`l,mn�n�oLp q�qtr<s�sTt�t�uv�vLw�w�x|y$z�zX{�{�|,}�}�~t���@���0����ă��x�<�����x����@�܊��4���܍��t�8�@�	�����������������������������������������������������������������������������������/L���������	����������������������������������������������������������������������©���������������/�	�����ء�����������ا���������إ��������أؤ����آ��������ͪ�������������ئ���Ǻ������������جذ�����ة�����خ���0��	��������د����������������������ث������ر������������������تب�������������ؽ�����ظ���صض�����عؼ������E0t�ط�����غ	ش�����������ؾؿ�����������������س���������������������ػ�������������������������������������������04�	�������������������������ز������������������������������������θ����������������������������������0��������ͫ������	�����������������������������������������������ʰ���ƴ����������������������������������1�������������	�������������������������������������������������������������������Ĩ���������������M1l�����	����������������������������������������١�����٢��������������٣���٤��٥٦٧������������˼�1���٨���������	���������������٩��������������ʧ��������٬���٪٭٫���ٮ���ʱ���������������ٯ���ٲ���1ܗ��	ٰٷ��ٱ����������������ٳٴٸ��ٵ������ȴ����������ڭ����������������ٻ����������2��	�����ôپ��������������ټ��ٺ����ٶ������ٹ���������������������������������������������������ٽU24�	������������������������������ĩ���������������������������������������������������2�	���������������ª����������������������������Ľ�������������������������������������������������DZ����������2����	����������������������������������������������������Ϋ��õ��������������������������������������������3@������	·��������������������������������ͬ������������������������������������������������]3�	��������»�������������������������������������������������������������������������؟3��	���������������������Ŧ��������������������������������������������������34�	����������������������������Dz������Ƶ���������ű��������������������������ڥ����������#4��	��ڧ���ڣڤ�����������������������ڢٿ������ڦڡګڬŧڮ��������ک�����������گ���ڨڳڲ���ڱ���ڴ���ڶ�����e4X�ڵ���	���ڹ���������������������ڷ������ڸ�����������ڻں�������ڼڰ��������ڽھ�ڿ������������������4�	��������������������������������������������������������������������Ũ�����������4̟	����������ʸ�������������������������������������������������������������������������������������+5d�	���������ι���������������²������������������������������ö�������������������������������������m5����	�������������������������������������������������¡�����¢�£�¤�¥���¦�����§�¨�©�ª���«���¬�­�®�������°�¯��ۦ�5С�±���������²�³	���´���µ�·���¶���¸�¹�º�»�¼�������½�¾�����������������������������������������������������������5�������	��������������������������������������������������Ī������������������˽���ۢ���������36x�����������ۡ	������������������ۣ��ۤ���������ۥۧ���ۨ���������۩������۪۫��������¿��������u6(���	����������ͭ�����۬�����Ŀۭϯ���˾���īۮ�������ۯ۰��̤�����۲������۴۷۶������۳�6ؤ	۵��۸�������������¼��������ۻ����۹«ۺ����ۼ۽���á���â���ã��ۿ�������ä���å���æ������6��	�ç�è���۾�����é�ê���ë�ì���í���î�ï���ð����������������ñ�ò�ó�����ô���������õ�ö�÷;7L��ù���ú�û��ü��	�ý�þɢ����˿���ÿ����������ͮ�����������������������������������������������ø������}7��	�����������������������������������������������������������������������������׿7������������������	���������������������������������������������ɰ������������������������������������������8P�	���������������������������������������������������������������������������������������������C8�	����ܲ�������������ġ�Ģ��ģܡܣ�Ĥܧ��ĥê�Ħ�ħ��ܫ�ܨ�Ĩܢ�ĩ�Ī�ī�Ĭ�ĭ��ܬ�Į�į���İ�ıܪ���IJ�ij�Ĵ�8ĩ���	ܦ���ĵ��Ķ�ķ̺��������ĸ�Ĺܥ�ĺ�Ļ�ļ��ܯ����ܱ�ܰܩ�ܭܮܿ�Ľ�ľ���Ŀܤ��ܻ��ܽ���8��	���������������ܸ�����ܾ�����ܵ����������������������������ܷ�����ܺ�������������ܼ��ܴܶܳ������ϰ��ܹ���	9@��������	������������ϱ���������������������������������������������������������������K9�	�������������������������������������������������������������������������������������9�������������	���������������������ɸ����������������������������������š�����Ţ������ţî�Ť�ť�9<�	���Ŧ�ŧ����Ũ�ũ���Ū�ū�Ŭ�ŭ�Ů�ů�����Ű�������ű��Ų�ų�Ŵ���ŵ���Ŷ��:�����ŷ	�Ÿ��Ź�ź�Ż�ż�����Žݡ�ž���ſ����������ݬ���ݨ�����������ݧ���ݦݣ���������S:��	��ݥݤ���������������ݪϦ���������ݭ��������ݩݫ������ȧݮ������������ݲݯ�����ܕ:$�	��������ݰ��������������������ݳݴ�����������ݶ�������������������������������ݸݷݺ�������������:��	ݽ���ݼݾ��������÷ݿ����������������������������������������������������������ơ��;X���	�Ƣ�����ƣ���������������Ƥ���ƥ���Ʀ�Ƨ�ƨ�Ʃ���ƪ�ƫ�����Ƭ�ƭ�Ʈ���Ư�������������ư�Ʊ�������Ʋ�Ƴ��[;���	�ƴ�Ƶ�����ƶ���Ʒ�����������Ƹ��ƹ�����ƺ�ƻ�Ƽ�ƽ�����ƾ���ƿ��������;ȱ	�������������������������̱�����������������������������������������������ɹ��������������;T������	������������������������������������������������Ƕ���������������������������������������!<�	������������������������������������������������������������������������ʨ�ޡ��������c<��	���������������������������ˡ���ޤ�ǡޢ�Ǣ��ǣˢ����ť�Ǥ���ǥޥ�Ǧ�ǧ�Ǩޣ����ǩ���Ǫ�<H�	�ǫ�Ǭ�ǭ��ް�Ǯ�ǯ�ǰޯ�DZ��ެ�Dz��ƶަ���dz�Ǵ�ǵ����ީ�Ƿ�Ǹ�ǹ��ޮޭިޫ�Ǻ���ǻު���Ǽ�<��	ή�����ǽ޶޴���Ǿ�ǿ��ޱ޳���������ϲ����������������޵���)=��	���޺�����Ͱ޷������޲���޸����������������������������޾���������������k=���	�������޿�������������������������������������������ø�����������������������������������ʥ�����޻��ź���=�����	�����������޽����޼�����������������������������������¬����������������������������=`�	��������������̫����������������������ù���������ȡ�Ȣͯ�ȣ���������Ȥ���ȥ�Ȧ����1>��	��Ȯ�ȧ�����Ȩ�����ȩί�����Ȫ�����ȫ���Ȭ�ȭ���Ȯ���ȯ����Ů�Ȱ���ȱs>���Ȳ�ȳ���ȴ����	�ȵ�ȶ���ȷ����ȸ�ȹ�Ⱥ�������������Ȼ��ȼ�Ƚ��ũߣ��Ⱦ�ȿ������>0�	��ɺ������������������ϳ��ߢ�����������������������������̡���������������������������ߡ��>̹	���������������������߯������ߪ������������������߳������߬Ĭߩ����ߦߥ߮������9?t�ߨߧ߭�����	ߤ���������������߰���߱�����������������������߶ߵ߷������������ߺ��������ߴ����߸��{?����߲ǻ	��߹������߾߼߿�ɡ���ɢ߻��Ǩ޹�ɣ�ɤ��߽���ɥ�߫�ɦ���ɧ���ɨ�ɩ���?�����l�,����d��ԗ��,����8�����,���P��ğ\��ȡ��p� �Ф��D����H������8�����4��|����P����L����@�������X����(�Ĺl�����D�L��ɪ��	�ɫ�ɬ�ɭ�����ɮ�������ɯ�������������ɰ�ɱ������ɲ�����ɳ�ɴ�ɵ�ɶ���?X�	�ɷ�ɸ�ɹ�ɺ�ɻ�ɼ������ɽ�ɾ���ɿ�������������������������������������A@�	���������ϧ����������������������������������ú������������������������@d�	����������������������������������������ˣ������@�	������������������������������ʲ��������̵������������������������A@�	���������������������������������������������������ʡ�������ʢ��IA���ʣ	���ʤ�ʥ�����ʦ���ʧ������ʨ�ʩ���ʪ�ʫ�����ʬ�ʭǮ�ʮ�ʯ���ʰ��ʱ�A<��ʲ�ʳ	dz�ʴ���ʵ�ʶ�����ʷ����ʸ���ʹ�ʺ�ʻ���������������ʼ�����ʽ��A���ʾ	��ʿ������������������������������������������������������������BT�����������	��������������������ĭ�������������������������̶�����ϴ��������ʪ�����������������������������������QB�����	���������������������������������������������������B��	������������������������������������������������������ì������ϵ���ˡ�B(�	�ˢ�ˣ�ˤ�˥���˦�˧�˨�˩�����˪�˫�������ˬ���˭�ˮ���˯�˰���ǭ�˱�����˲�˳���˴ͱͲ�˵�˶�˷����C��	�˸�����˹�����˺�˻�˼���˽�˾�˿�������������������������������������������������������YCt�������	�����������Ψ��������������������������������������������������������������������������������C���	��������������������������������������������������������������������������������������̡�C���̢�̣	���̤����̥ΰ�̦�̧�̨�̩��̪���̫�̬�̭�̮�̯�̰�̱�̲�̳�̴�̵����������̶����D\��̷��	�̸�̹�̺�̻�̼�̽�̾�̿�������������������������������������������������������������aD��������	�������������������������������������������������������������������������������������������������D��	������������������������������������ɻ�����������������������������������DD�	�����������͡���͢�ͣ����ż����ͤ�ͥ���ͦ����ͧ���ͨ�ͩ����ͪ��ͳ�����ͫ��Ҵ�ͬĮ����ͭ�ͮ�ͯ'E���Ͱ	�ͱ���Ͳ�ͳ��������ʹ���͵Ȫ�Ͷ���ͷα�������͸�͹ȫ�ͺɭ�ά����������ͻ���ͼ�����������ͽ�;�Ϳ���������iE��	����������������ɥ��������������������������������������������������������������������ϫE����������������������	�����������������������������������������Ρ������������������������������������������E,���������������	�������������������������������������������������������������������������������������Ρ���΢/F���Τ�Υ���Φ�Χ�Ψ�������Ω�Σ�Ϊ��	��Ϋ����ά��έ���ή�ί������ΰ�α�β��γ��δ��ȯ�����ɴqF����ε	�Ū�ζ�������η�θ�����ι����κ�λ�μ�ν�ξ�ο�������������������������������������F`�	����������������������������������������ݹ��������������������������������ľ���������������F������	��������������������������������������������̲��������������������������������������į��������7G����	����������������������������������������������ϡ�����Ϣ���ϣ���Ϥ�ϥ�Ϧ�ϧ�Ϩ���ϩ�Ϫ����yG���ϫ	�Ϭ���ϭ�Ϯ�����ϯ�ϰ�ϱ�ϲ���ϳ���ϴ���ϵ�϶�����Ϸ�ϸ���ϹƷ�Ϻ�����������ϻ���G(�	�ϼ���Ͻ���Ͼ�Ͽ��������̷���������������������������������û������������������������G��	���������������������������������������������������������ˤ������������?HT�	�������������������������������������������������β�������ȣ����������H��	�������������������������������������������������������������������������С��Т��У�HL�	�����Ф�Х�Ц���Ч�Ш����Щ�Ъ��Ы�Ь��Ю�Я�а�б�Э�в����г����д�е��з�и�й�к��лI���ж��	�м��н���о����п����������������������������������������������������GI�����	������������������������ʹ���������������������������Ǫ�����ɼ���������������������������I0�����	Ͻ������������ʡ���������������������������������������������ǩ����������������������I���������	���������������������������������ѡ��Ѣ�����ѣ������Ѥ�ѥ��Ѧ���ѧ�Ѩ���ѩ
J����	�Ѫ�ѫ�Ѭ���ѭ�Ѯ��ѯ�����Ѱ̭�ѱɣ�������Ѳ���ѳ�����Ѵ�ѵ�Ѷ�ѷ���Ѹ�ѹ�����Ѻ�ѻ���Ѽ�ѽ�Ѿ����������OJ8���	�����ѿ�������������������������������������������������������������������������������������������J��������������������	���������������������������������������������������������������������������J��	������������������Ω��������������������������ε������������Ƹ��������è��������ü����������ѿ���������������KL�	��������������������ū�������������������������������ҡ��Ң�����ң�ҤWK��ҥ�Ҧ	�ɮ�ҧȦ������Ҩȵ������ҩ����Ҫ�ҫ��Ҭ��ҭ�Ү��ү��Ұ���ұ�Ҳ���ҳ��K��	�Ҵ�����ҵ���Ҷ��ҷ�Ҹ���̧�ҹ������Һ���һ��Ҽ���ҽý�Ҿ���ҿ��Ȣ���������Ȥ�������������Kd�������	�����������������������������������������������������϶������������������������������L���������������	�������������������������������������������������������������������������������������������_L����	�����������������������������������������������ӡ�Ӣ�����ӣ�Ӥ���ӥ�Ӧ�ӧ�Ө�����ө�Ӫ�ӫ���L|�	�������Ӭ�ӭʴ��̰�Ӯ��γ�ӯ����Ǵ���Ӱ���ӱ���������Ӳ�����������ӳ�������Ӵ�ӵ���Ӷ�ӷ�Ӹ�����ӹ�L,���	���Ӻ���ӻ�Ӽ�ӽ���Ӿ���ӿ������������������������ʵ������������������������������%M����	���������������������Ǽ���ɳ�����������������������ʶ�������������������������������������������������������gM����������������������	������������������������������������������������������������������������������Mh�	��������������������������������³������ԡ������Ԣ�ԣ�Ԥ���������������ԥ����Ԧ�ԧ���Ԩ�þ������M0�	�ԩ�Ԫ�ԫ�Ԭ�ԭ������Ԯ�ԯ�԰���������Ա���Բ������������Դ���Ե�Զ�����Է�Ը���Թ���Ժ����Ի�Լ�Խ�Ծ��-N���Գ��	�����Կ����������������������������������������������˥�������������������������������������oN��	���������������������������������������������������������������������������������������������������Np�	��������������������������Ż��������������������������N$�	�������������������5O��	�������������������������������������������������������ȳ�ա����������բ�գ�դwO���ե	����������զ��է��ը�թ�ժ��ի�լ��խ���ծ�կ����հ�����ձ�ղ����ճ����մ���յ�O���ն��	�շ�����ո�����չ�պ�������ջ�ռ�����ս�վ���տ������������������������������������O4�ܽ\�ܾ8���4���L���� ���l����T�����<�������$�����X����x� ���L���D�����(�����0�����D����\����t�$�����`�(�����h����,U��x�,�������Ϸ	���������������������������������������������������������������������������������������������������������������ÿ�����=P�����	���������������ʹ������������������������������İ�����������ϸ��P��	���������ȥ����Ͼȩ�������ɪ����������������������������������������������������P8�	����������������������������������˦��������������֡��֢�֣ƹ�֤���֥�֦�ǽ�֧Q��	���֨������̮����֩�֪�֫�֬����֭�֮�֯��ְ�ֱ��ֲ��ֳæǾ�ִı�ֵ�ֶ�EQ|�	�ַ��ָ�ֹ��ֺ������ֻ������ּ��ֽ�־���ֿ��������������������IJʢ�����Q����������������	����������������������������ɨ��������������������������������ǿ�Q���	���������������������������¡����������������������������������������������������������������������������������������RP�����������	������ڪ�������������а��������������������������������������������������������������MR$���	����������ס�ע�ף�פ�ץ�������צ�����ק���ר�����ש�������ת���������׫�������׬�׭���׮�R���ׯ�װ	�ױ�ײ�׳�״�׵�����׶�׷���׸�׹�׺���׻�׼�����׽�׾�׿������������������������������������˧���������������������������R��	������������������������������������������������������������������������������������Sd����������������������������	�����������������������������������������������������������������US��	���������������������������ؾ�����������������������ء�آ�S���أ	�ؤ�إ��ئ����ا��ب��ة�ت��ث�ج��ح�خ�د������ذ�ر��ز���س���������ش�ص�SL��ض��	���ط�ظ�������ع�غ�ػ���ؼ�������ؽ�����ؿ���������ɩ��������������������T��	�����ƺ����������˨�������������������������������������������]T��	�������������������Ϊ����������������������������������ơ�����������������������������Ǭ�������������������������T�	������������������������������������������������������������������������������T��������	����������������������̬���������١�٢�٣˩ϡ�٤�٥�٦�٧���٨�٪�٫��٬��#U`���	�٭�ٮ���ٯ�ٰ�ٱ�ٲ��̢��������ٳ�ٴ����ٵ�ٶ�ٷ�ٸ���ٹ�ٺ�ٻ����ټ�٩�ٽ�پ¢�ٿ����eU����	�����������������������������������������������������������������Ƣ�������������������������קU������	����������������������������������������������������������������������������������������������������UX�	��������������������������������ƣ�������������������������ڡ+V$��ڢ	��ڣ�ڤ�������ڥ�ڦ�ڧ�ڨ�ک�ݱݢ�ڪ�ګ���ڬ�ڭ�ڮ���گ�ڰ�����ڱ�ڲ�ڳ�ڴ�ڵ��mV���ڶ����ڷ	�ڸ�������ڹ�ں�����ڻ�ڼ�ڽ�ھ��κ�ڿ������������������������������������������������VP�	���������������������������������������������������������������������������������������V�������	�����������������������������������������������������Ⱥ��������������������������������3W����	˪��������������������������������������������̪�����������ۡ���ۢ�ۣ�ۤ�ۥ�����ۦ�ۧ���ۨ�۩�۪��uW4��۫	�۬�ۭ��Ϲ��ۮ������ۯ��۰���۱��۲�۳������۴�۵�۶�ij��۷���W�	��۸�۹�ۺ�ۻ�ۼ�۽�۾�ۿ��ͻ�����������������������������������������������������������W������	�������������������������������������������������������������������������������;X �	��������������������������������������������������������������������������������ܡ���ܢ}X����ܣ���ܤ���ܥ��	�ܦ�ܧ�ܨ�ܩ��ާ�ܪ�ܫ�����ܬ�ܭ���ܮ���ܯ���ܰ�����ܱ�ܲ�������ܳɽ�ܴ�����ܵ�������ܶ�ܷ�������Xt��ܸ����	��������µ���ܹ���ܺ�ܻ�ܼ���ܽ�ܾ�����ܿ��������������������������Y<�������������	���������������΢�����������͵����������������Σ������������������������������������CY�	����������ʣ���������������˫����������������������������������������������������������������Y|�����������������	��������������������������������������������������������ݡ�ݢ�ݣ����Y$�	���ʤ����ݤ����ݥ���ݦ��ݧ�ݨ�������ݩ�ݪ�ݫ�ݬ��ݭ��������ݮ����ݯ�ݰ�ݱ�ݲ��ݳ��	Z��	���ݴ�ݵ�ݶ�ݷ�ݸ������ݹ����ݺ�ݻ�ݼ�ݽ�ݾ��ݿ��������KZ���	����������������Ƥ�����������������������������������������������ˬ�����������������������������������֍Z�����	���������������������������������ɾ���������������������������������������������������������������������������������Z����	��������������������ǧ������������������Ͷ����������������������������������ï�����ޡ�ޢ���ޣ���ޤĴ[�	���ޥ���ަ���ާ�ި�ީ���������ު���ޫ�ެ�ޭ��ޮ����ĵ�ޯ���ް��������������ޱ͡���޲�����޳�޴�޵�������޶��޷S[h������	ƥ�޸�޹���޿�޺�������޻�������������޼���޽�޾���������ɵ�����������������[4	�������������������������������������������������������������������������������������[�����	�������������������������������������������\�	ë��������������[\�	����Ʀ�������˭�����������������������������������������������������Ю����������ɿ�������\	�����ߡ���ߢ�����ߣ�ߤ�ߥ����ߦ�ߧ�ߨ�����������ߩ��������������������������������ߪ�߫��Ž�����\�����Ϩ�����߬�߭�����߮±�߯	�����߰����߲�߱�߳�������ߴ�����ߵ���������߶���߷���߸�߹�ߺ�߻�߼�߽���������߾�߿!]�	����������£����������������������������c]d	����������������������������������ʥ]�	��������Ķ�����������������������������������������������­��������������������]	���	�������������������������������������������������������������������������ϩ���������ķ�����������)^�		�����������������Ƨ����������������������������������������k^<
�����	������������������������������������������������������������^�
	������������������������������������������������������������������������������^�������	��������������������������������������ž��������������������������������������1_(���	�������������������������������������������������������������������������������������������������͢���������s_�����������������	����Ų�����������������������������������ᬵ_�
	����������������������ҡ�������ä�������������������é�_������	������������������������������������������������ų���������������������������������9`���0���t����H������\����D��������X�����P����H����,��x����l�4��t�������`,�|�,U��\�	�	4
�
x ��
�HP�������ƨ�������	���������Ʃ�������������������������®¤���Ϣ���������������������������������������ɯ����{`\	���������������ͷ�������������ƻã��������½����������������������Ŭ���������������������������������`8����������	��������������������͸����������������������������ˮ����������������š����`	����������������Ϻ�����������������������������������͹����������Aa���	������������������������������������������������Ţ���������������������������������҃a\	����������������������������������������������������������������������������������������������a�	��������������������������������������������Ȱ�������������������������������������������������������������b���������	������������Τ������������������ţ����������������������������������������������������������Ibh����	���������������������������������������������������������������������������������������������������������b@���	������Ŵ��������������������������������������������������������ȭ������������������������������������������������������b���	��Ƽ��������������������������ĸ���������������������������������������c���������	�������������������˯�������������������������������������������������������������������������Qcp���	�������������������������������������������������������������������ϣ���Ͽ����������������c0	��������������������������������������������������������������������������������������c�������	�����������������������������������������������������������d�	���������������������������ŭ���������������������������������������������������Yd(	����������������������������������������ƪ������������������������������������������d�	������������������������������������������������������������������������������������dd	������e	Ĺ������ae ��	����������������������������������������������������ȶ���������������������������������泣e@	��������������������������������Ʈ���������������������������e	������������������������������������������������������������'f�������	����������������������������������������������������������ƫ�Φ����������������if�	��������������δ���������������������������������������������������������������������������������Ȼ�f�����	ͺ�������������������������������������Υ������������ʷ��������������f� ��	�������������������������������������������̸��������Ϫ��۱������/g,!	�����������������������������������������������������������������������������������������qg�!�����	������������������������������������������������������������������������������������������������׳g�"	�����������������������������������������������������������������������������ǣ�������������������������������gD#	��ĺ������������������������������������������������������������Ƭ������������������������7h�#	�����������������������������������ſ����������������������yh�$	��������������������������ûhX%	�������������������������������������������Ҭݻ��������������˰���h�%	��������������������������������������������������������������������������������������������������?i(&�������	�������������������������������������������������i�&	�������������������������������������������������i\'	�����������������������������������������������������������������������������j�'	�������������������������������������������������������ƭ����������������Gjx(��������������	����������������������������������������������������j)	�����������������������������������������������j�)�����	������������������������������������������������������������������ȱ����ɦ���������������������
k�)�������������	��������������������������������������������ݵ������������������Ok�*	������̥�������������������������������������������������������ϥ������������������ёkh+���	����������������������������������ʫ���������������������������������������������������������������������k,����	����������������������������������������������������������������������������������l�,��	����������������������������������������������������������������������������������������������Wl�-	������������í��������������������������������������������������������������������������������������ؙlP.	Ļ�����ȷ���������˱�����������l�.	�������ƾ�����������������������������������������������������������������������m@/	�������������������������������������̹�������������˲���������������_m�/	���������������������������������������������������������췡m�0	������������������������������������������������������������������������m1	����������������������������������������%n�1	�������������������gn2�����������������	�������������������ϼ���������������������������������������������������������������������n42	���������������������������������������������������������������������������������������n�2	����������Ť������������������������������������������������������ɡ��������-o�3	����������������������������������������������������������������������������������������������������ooP4	ζ�����������������������������������������o50�T��`8��h(�� �\�,U8����x $!�!�"<#�#�$P%�% &�&T'�'p()|)�)�*`+,�,x-H.�.8/�/x01�1�1,2�2�3H45X5�o`55p|X	������������������������������������������������������������������������������������������������������������������������Wph6������������������������������������������������������������	���������������������������������������������������������������ph7����������������������������������������������������������������	�pl8	����q�8,U`7d8�89_q9�X�q49�49�q49R$S T$U,U�U�U�V�V�WtX�X�Xh[�^�dD�P���TX6`6,9<9D9L9�qT9	����������������������������������������r�9	����������������������������s:	�����������`s`:	������������������������������������������s�:��	���������������������������������������������s�:	������������&tP;	����������������������������������������htx;X:,U|:�:Y0YH;�Yp;�Y�;|Z�Z�Z�Z�Z [�t�;��������	���������������������������������������t(<	������.u�<	����������pu�<	�����������������������u�<	�������������������u=	������������6vD=	����xvl=�<�\�]�^,U�<�<=<=d=|=�v�=����о���м	н������лкʩ�������¾п��������������������������������������������������������Ǥ�����������v�=,U�_<`�`|>\b0c�c�d��>���	Ѥ�����������ѡѢ���Ư������������������ѥ���ν������Ѧ������ѩ���ѧ�����������ѨѪ�����������Ѭ���ѫ��������>w�>	���������������ο��������������������������������������������������������������������������������ȡ���wt?���������	��Ҳ��ҳ���������ҵҷҶ������Ҹ���������ҹ������������������Һ�������������������������һ���Ҽ���ҽ���Ҿɤ�������������ƿ�w4@�����	��������������������������������������������������ӣ��������������ӡ�������Ӿ��������������������ӥ��Ӥ���xAԮ	����������˷������Ԭԯ���������Գ��������ó������԰�����������������������������������������������ԴFx�A������	��������������������������������������������������������������������������ʯ��������������x�B��������������̩��	������������������������������������������������������ǫ�������������������������������������x4C	ֲִ������������ֵ���ƽ����ֶֹֻ������������������ָ��ַyD	������������������������������������ֿ����������������������������������������������Ny|D������������	���������Χ���������������������������������������������������������������������ħ�����Ű�����yE�elfgl?�hdi<j,@�k`l,mnA�oLp q�qtr�A�sTt�t�uv�vLw�w�x|y�B�zX{�{�|,C�}�~t���@���0����ă��D<����tDx�E��@�܊��4���܍���E8��E	�����ء�������������ا���������إ��������أؤ����آ��������ͪ�������������ئ���Ǻ������������جذ�����ة�����خ����y�Fط�����غ	ش�����������ؾؿ�����������������س�����������������������ػ������������������������������������������z�G	����������������������������������������������������������������������Ũ����������Vz�H���	�������������������������������������������������¡�����¢�£�¤�¥���¦�����§�¨�©�ª���«���¬�­�®�������°�¯�����ۦ�zI�±���������²�³	���´���µ�·���¶���¸�¹�º�»�¼�������½�¾��������������������������������������������������������������z�I	���������������������������������������������������������������������������������{�J	���Ŧ�ŧ����Ũ�ũ���Ū�ū�Ŭ�ŭ�Ů�ů�����Ű�������ű��Ų�ų����Ŵ���ŵ���Ŷ��^{`K	��ݥݤ���������������ݪϦ���������ݭ��������ݩݫ���������ȧݮ������������ݲݯ�����ܠ{�K��	�������޿�������������������������������������������ø��������������������������������������ʥ��������޻��ź����{|L����G,�xH��d��ԗ��,����8�����,���P��ğI�ȡ�I�J �Ф��D����XK�����8�����4���K�tLP����L����@�������@M���(�Ĺl�����D�HM�ɪ��	�ɫ�ɬ�ɭ�����ɮ�������ɯ�������������ɰ�ɱ���������ɲ�����ɳ�ɴ�ɵ�ɶ��$|TN	���������ϧ����������������������������������ú�������������������������f|�N	��������������͡���͢�ͣ����ż����ͤ�ͥ���ͦ����ͧ���ͨ�ͩ����ͪ��ͳ�����ͫ��Ҵ�ͬĮ����ͭ�ͮ�ͯ�|hO��ε����Ū�ζ�����	��η�θ�����ι����κ�λ�μ����ν�ξ�ο�������������������������������������|0P�ж��	�м��н���о����п�������������������������������������������������������,}�P	������������������Ω��������������������������ε������������Ƹ�����������è��������ü����������ѿ���������������n}�Q	��������������������������������³������ԡ���������Ԣ�ԣ�Ԥ���������������ԥ����Ԧ�ԧ���Ԩ�þ������}PR	�ԩ�Ԫ�ԫ�Ԭ�ԭ������Ԯ�ԯ�԰������������Ա���Բ������������Դ���Ե�Զ�����Է�Ը���Թ���Ժ����Ի�Լ�Խ�Ծ���} S�N\�`O8���4���L���� ���l����T�����<���(P��$�����X��P��x� ���L���D�����xQ����0�����D�HR��\����t�$�����`�(�S�Sh����,U��x�,����S�	���������������������������ؾ��������������������������ء�آ4~�T����	������������������������������������������������������������������������������������������������������v~tU	�����������������������������������������������������������������������������������ܡ���ܢ�~DV	���������������������������������������������������������������������������������������~�V����Ϩ�����߬�߭�����߮±�߯	�����߰����߲�߱�߳�������ߴ�����ߵ���������߶���߷���߸�߹�ߺ����߻�߼�߽���������߾�߿<�W	��������������������������������������~|X��0���t����H������\����lU�������X�����P�<V��H����,��x�����V4��t�������`,��W�,U��tX��X�	4
�
x ��
�H�X	����������������Ϻ��������������������������������������͹�����������Y��	���������������������������������������������������Ţ�����������������������������������tZ��	�������������������������������������������������������ȶ����������������������������������D�[��	�������������������������������������������̸��������Ϫ��۱������������[	���������������������������������������������������������������������������������������������Ȁ�\	��������������������������������������������������
�T]�����	��������������������������������������������������������������������ȱ����ɦ���������������������L��]	������̥�������������������������������������������������������ϥ��������������������ю��^	����������������������������������������������������������������������������������������Ё@_0�lZ[�`8��h(�� �\�,U8�[���x $!�\L]<#�#�$P%�% &�&T'�]p()|)�)�^`+8_�,x-H.�.8/�/x01�1�1,2�2�_H45X5�o�_���������������������������������������������������������������������������������������������������������������������������������`��������������������������������������������������������������������������������������������������������������������������������b��������������������������������������������������������������������������������������������������������������������������������c��������������������������������������������������������������������������������������������������������������������������������d��������������������������������������������������������������������������������������������������������������������������������(e��������������������������������������������������������������������������������������������������������������������������������4f��������������������������������������������������������������������������������������������������������������������������������@g��������������������������������������������������������������������������������������������������������������������������������Lh��������������������������������������������������������������������������������������������������������������������������������Xi��������������������������������������������������������������������������������������������������������������������������������dj��������������������������������������������������������������������������������������������������������������������������������pk��������������������������������������������������������������������������������������������������������������������������������|l���������������������������������������������������������������������������������������������������������������������������������m���������������������������������������������������������������������������������������������������������������������������������n�����������������������������������������������������������������������������������������������������������������������������������������������������o�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������p�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������q�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������r�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������s�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������t�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������u�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������v������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������x������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������y������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������z������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������${������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������0|������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<}������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������H~������������������������������������������������������������������������	�T�acd e,f8gDhPi\jhktl�m�n�o�p�q�r�s�t�u�v�wyz{(|4}@~L�,UT��	��Ŗ�L�	���؂`�	�����������������������������������������������������������������������������������������t�	���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	��������������������������������������������������������������\��	����������������,UX�l������88��@�:$S T$U,U�U�U�V�V�WtX�X�X <�=�>�FLN�T�Y�``6D�d�<9D9L9"�l�	��������������	����[��	��������������������������������������������������������������������������������(�����	��������������߅Ԅ	��������������������������������������������������������������������������������������������������!����������������������������������	��c�܅	����������0�	�����������������������������������������sP�X:,UH���Y0YH;�Yp;�Y�;|Z�Z�Z�Z�Z [�t�����	�������������ͿТ����У������ʺ��ξ����Ф��Х��Ц��ð��ЧШ��	Щǵ��Ƿ����˳��Ъ��Ы��������֦�����)�����	ЬЭλͽ��Я����в����������������где˴ж��������������μзий��k������о	мн������лкʩ����¾п����������������������������Ǥ����������	�����������Ȳ�����������ȼ��������������	��â����������ͤ��������;��������դ��������ʻ��������1���	����������������������������������ե�������η��s���	��¥����������������¯������������������������ɶ������������l�,U������x��d����	��������������������������������������������������������� ���	����������������������������¦�������9����	�˵�������������ѣ�������{��	Ѥ��ѡѢƯ������ѥ��νѦѩѧ��ѨѪ��Ѭѫ����X���Ѯѯ	��ѭ��ѲѱѰ��ѳ��Ѵͥ��ѶѵѸѷѹ����Ѻ��	�����������������Ѽ������ѻѽ����Ѿ�������Ȭ��ϻ����ʼ¶��ŵ��A����	���������������������������������������̽������������������������������������	���������ο��������������������������������������ȡ��Ŋ`���	����ʬ��������������������Ƚ��������������������������	����§������������˶���������������������������I�`�	�����έ����������������������Ңң����ϫҥ��Ҥ����؏��Ҧ	��ļͦ��ҧ��ưҨ��̳����ҩ��ҭ��Ҫ��ҫ����ҮүҰұ������͋P������	��Ҳ��ҳҵҷҶҸ������ҹ������Һ����һҼҽҾɤ����ƿ�ؐҿ��	����������Ⱦ����´������ñ����������������������¨������������Q�\�	�����������������������������������������	����������ͧ��ȿ���������������������������á���������������������������ՌP�	��������������Ʊ̾���������������������������������ʭ����������	Ϥ����������������������̣����������̿Y�|���	�������������������ӣ����ӡ�Ӿ�����ӥ��Ӥ��ܓ����Ӣ	�����Ӧ��ӯӧӨ����ӭӬůӮӫ��ݍP�	������ө��Ӫ��Ӵͣ��ӺӹӰ�����ӱ	��Ӷ��ӳ����ӷӸӵӻӲ�����a���ӽ	����������ӿ���Ӽ�����������������������������D�	����ԧ�����������������������	ò��������������������������'���	��������������������ʮ��ȸi�@���	������������ǹ����������������������	��������������������������������Ȗ�	���ԡ�Ԣԣ����ԤԦԥԨ��ԩ��������Ԫԫԭ/�4�Ԯ	����˷Ԭԯ������Գ����ó԰��Դq���	��ԲԵ��ԶԷ����ԹԺ��ԻԸ���Ա	ԼԽ��������Կ�Ծ��Ǹ������������������0���	Ʋ��������������������������������7���ʽ��	��������������ȹ��������Ŷ����������y��	����������������������ʯ������������L�	��������������������������������������������������������������	������������ͼ������¿����̴����ŷ�������������������?�$�	�������������������������������������å�ʳ����ա������	բǡ����ǥի����̯֬գզ����˸��է��������Ò(�	ը������������լխժ����թ��ɱ���������	����ղհ̼ճձկ��ծ����շո��G��մϬ	��ն��չ��պյ̻��0�	��ջɲռ�ս˓h�	��տ��վ�������������������
���	����������������������O�؜��	����������������¸��������������������¹��֣�������������	�����������������������������������������ͨ��������������������Ӕ����	��������̩����������������������������������ǫ�������������������������$�	���������������º����Ƴ�������������������������������ǢW�Ȟ���	������������֢֡���Ÿ°�������֤֥����֧֨��X�	֩��֪֫��������̨֭����ֱ֯����ְֳ֮ە̟	ֲִֵƽ����ֶֹֻ������ָ��ַ�(�	��ּ������ֽ��־�������������_�x�	��������������ֿ��������������Ƞ	��������ֺ������������������������	����������������������������������������̦��������ç��%�`�	�����������ġ������������������Ģ������˹g�ܡ��	�������������������Ȩ��ʾ����ʿǯ������������ͩ�����@�	ģ�������������Ź������������������������	������ϭ����ספץף���קצערשת׭׫׬׮����ׯ����Ƕװ�-� �	��ױϮײ�׵Сб���׶��Ĥ��׷ʦ��������������׸׹׿����ĥ��׺ɫ��o���	׻��׼��׽׾�������״׳����ɧ����ɷĦ��������������������H�������������	������Χ������������������������������ħ��Ű�����̤	��ɬ��Ǧ����˺˻������������ح��ǰ��������5�\����P������X�؎X�ЏH�АT��H��t�ԓH����<����8�|���,����(����D������ ���ܛ(�`���М������P�ğ �p����X�ԡ8������@�ĤT�����	��������������������������������������������w�̦	��������������������������������������������©��������4�	��ء������ا���إ��أؤ�آ��ͪ����ئǺ������جذ��ة��خ����	��د����ث��ر��������تب�������ؽ����ظصض��عؼ=�@�ط��	غش��ؾؿ����س��������ػ����������������������	�������������ز���������������������������θ��������������������0�	ͫ�������������������ʰƴ�������������������	������������������������Ĩ���������������E�$��	������������������������١��٢��٣٤��٥٦٧������˼������٨	���������٩��ʧ��٬٪٭٫ٮʱ������ٯٲ��ɛ���	ٰٷ��ٱ����ٳٴٸ��ٵ������ȴ������ڭ����ٻ�������	��ôپ�����������ټ��ٺ����ٶٹ���������������������������������ٽM���	������������ĩ������������������������	ª����������Ľ�������������������DZќ���	����������������������Ϋ��õ���������������������������<���	·�����������ͬ��������������������U���	��»�����������������������������	���Ŧ������������ٝd�	�������Dz��Ƶű��������������ڥ����	��ڧڣڤ����ڢٿڦڡګڬŧڮ��ک��گڨڳڲڱڴڶ��]���ڵ	ڹڷڸ��ڻں�ڼڰ��ڽھ�ڿ����������l�	����������������������������������������Ũ�����̯	����ʸ����������������������������������������������#�8�	������ι������²���������������ö����������������e�����	���������������������������������������������������������ۦ��(�	���������������������������������������������������������	�����������������������Ī��������˽ۢ�����+�0�	�ۡ���ۣ��ۤ���ۥۧۨ۩������۪۫����������������m�����	����ͭ����۬��Ŀۭϯ˾īۮ��ۯ۰��̤�����۲����۴۷۶����۳���	۵۸�������¼����ۻ��۹«ۺ����ۼ۽����������ۿ������������������	���۾�����������������������������������������3�<�����	���ɢ����˿��������ͮ�������������������������������u���	����������������������������������������0�����������	����������������������������ɰ�������������	���������������������������������������������������;��	��ܲ�����������ܡܣܧ�ê��ܫ�ܨܢ��ܬ��ܪ��}�x����	ܦ���̺�������ܥ��ܯ����ܱ�ܰܩ�ܭܮܿ��ܤܻܽ�����	���ܸ��ܾ��ܵ������������ܷ��ܺ����ܼ��ܴܶܳϰ��ܹ�h�	����������ϱ��������������������������C��	�������������������������������������������������@�	�����������������ɸ������������������������������îǣ��	��������������������������������	�,���	�����ݡ�����ݬݨ��ݧݦݣK���	��ݥݤݪϦݭ��ݩݫ����ȧݮݲݯ��й	��ݰ��ݳݴ��ݶ����������ݸݷݺ������Ϥ�	ݽݼݾ��÷ݿ�������������������������������������t���	��������������������������������������������������S����	���������������������������������`�	����̱��������������ɹ������ץ�������	������������������������������������������	������������������������������������ʨ�ޡ��������[�h�	�����������ˡ�ޤ��ޢ�ˢ����ť��ޥޣ��������	����ްޯ��ެ��ƶަ������ީ��ޮޭިޫ��ު��ߦT�	ή����޶޴��ޱ޳����ϲ������������޵!���	޺����Ͱ޷޲޸��������������޾���c����	����޿������������������ø�������������������ʥ����޻��ź����d�	��������޽����޼����������������������������¬������������������	��̫��������ù����ͯ��������������)�|��	��Ȯ��������ί������������������Ů����k�п	��������������������������ũߣ������0�	��ɺ����ϳ��ߢ��������̡������ߡ����	������߯ߪ������߳߬Ĭߩ����ߦߥ߮1��ߨߧ߭	��ߤ��߰߱��߶ߵ߷ߺ��ߴ��߸s�@����߲ǻ	߹߾߼߿��߻��Ǩ޹��߽���߫������������,���8���(�������x����ܬ4����\����d�į0��� ���(������4���(�����p��`�ܷ8���$�x�ȹ�l��X����`��L����\��t�ȿ(����8������	��������������������������������������������	�������������������9�p�	��ϧ������������ú�������������{���	�������������ˣ������	����������ʲ��̵��������,�	�����������������������������������A�h�	�������������������Ǯ�������	��dz��������������������������������ū�	�������������������������t��	��������ĭ�������̶��ϴ��ʪ��������I�������	���������������������0�	�����������������������������ì��ϵ��ͬ��	���������������������ǭ������ͱͲ�������	������������������������������Q�@�	��Ψ����������������������	������������������������������������խ��	�������ΰ�������������������������$�	����������������������������������Y�|�	������������������	������ɻ�������������ݮ�	����������������ż�����������������ͳ������ҴĮ����`�	�����������Ȫ��α������ȫɭ�ά�������������������������a���	����������ɥ����������������������������������������	�������������������������Ρ�����������������������	��������������������������'�`�	��������������������������ȯ�����ɴi����	���Ū�����������������������������������	����������������ݹ��������������ľ��������	����������������̲�����������į��/����	��������������������������q�`�	������������������Ʒ����������������	��������̷������������û������������	��������������������ˤ������7�H�	��������β����ȣ������y���	����������������������������������������	���������������������,�	����������������������?�x����	������ʹ������������Ǫ��ɼ�������������	Ͻ������ʡ����������ǩ���������ó(�����	��������������������������������	�������̭ɣ������������������������������G�����	��������������������������������������������P�	��������������������������������������˴��	������������Ω����������������ε������������Ƹ����è����ü����ѿ������
��	��������������ū���������������O���	�ɮȦ�����ȵ��������������������	����������̧������������ý��Ȣ�Ȥӵ�����	��������������������϶�����������	����������������������������������W�D���	������������������������������������	������ʴ��̰��γ����Ǵ����������������������������������۶����	�������������ʵ�������������������t���	���������Ǽɳ�����������ʶ�������������������������_���	��������������������������������������������h�	�����³��������������������������������þ��������	�������������������������������������������%�h�	���������������������������˥�������������������g���	���������������������������������������������������H�	�������������Ż����������	����-��	����������������������ȳ���������o�$�	������������������������������������	��������������������������������������h�����$�`�����l���(�x���8������t����X���x���X��������X�����@�����$�p��� �����H�������x���<�����l���`���`���@����,U����X�`���Ϸ	������������������������������������ÿ��5�l�	������������ʹ���������������İ��������ϸ��w���	������ȥ�Ͼȩ����ɪ��������������������������������<�	�����������������˦��������ƹ���ǽ����	��������̮���������æǾı�=��	����������������������IJʢ�����`��	������������ɨ��������������ǿ�����	���������¡�����������������������������������0�	����������ڪ����������а�����������������������������������E�����	�����������������������������������������,�	��������������������������˧��������ɼ��	������������������������������������������	�������������������������������M�T��	���������������������������	���������������������ѽ�	�������������������������������ɩ������������d�	��ƺ����˨�������������������������U���	������Ϊ�������ơ��������������Ǭ���������(�	����������������������������������پ��	����������������̬��������˩ϡ����������	����̢���������������¢��]�8���	����������������������Ƣ������������	�����������������������������������	���������ƣ������������#�`�	��������ݱݢ����������e���	������������κ�����������������	���������������������������D�	�����������������������Ⱥ�����������������+�����	˪��������������������̪������������m���	��Ϲ����������������ij�����L�	�ͻ�������������	����������������3���	������������������������u�,���	��������ާ��������������������ɽ������������������|�	������������µ������������������������������	���������΢��͵����������Σ��������������������;�P�	����ʣ������˫���������������}���	���������������������������	���ʤ������������������������������p��	������������C�����	�������Ƥ�������������������ˬ��������������������	��������������ɾ��������������������������������������	�����������ǧ������Ͷ������������������������ï��������Ĵ	��	���������������������ĵ�����������������͡���������������K���������	ƥ�������������������������������ɵ���������	������������������������������������	����������������	ë��S�4�	�Ʀ�˭�����������Ю��ɿ����P�	������������������������������������������������������Ž������������Ϩ����	����±������������������������������������������@�	������£������������������[���	�������������������������	��Ķ��������­������D�	����������������������������ϩķ�����!�x�	������Ƨ��������c���	�����������������������	�����������������������l�	�������������������ž��������������)���	��������������������������������������͢�������k�$�	������������Ų��������������������	����������ҡ�������ä�����������é����	�����������������������ų���������������1�8���4����X���(���$�����L����\��� �����0�����X�����<�����D�����$�t���H����h��������������,�,UH���8����<�p����d��������0���������	ƨ�������Ʃ�������������������®¤���Ϣ������������ɯ�s���	���������ͷ����������ƻã�����½������������Ŭ����������������������H��������	�����͸��ˮ������š����	����Ϻ�����������͹����9�P�	�������Ţ����{���	���������������������������������������������	��������������Ȱ����������������������(�����	����������Τ��������������ţ������������������������������������A���	���������������������������������������	Ŵ�����������������������ȭ����������������l���	��Ƽ������������ĸ�����������	���˯����������������������������������I�$�	�����������������������������ϣ���Ͽ�������	������������������������������	��������������������H�	�����ŭ�������������Q���	�������ƪ�����������������	����������������������������������������� �	�����	ĹY�����	������������������������������������ȶ��������������������	����������������Ʈ����������(�	����������������l���	�����������������������������������ƫ�Φ����a���	��δ�������������������������������������������Ȼ��$�����	ͺ���������������������Υ��������ʷ���������������	�����������������������̸����Ϫ��۱��������'�4�	���������������������������������������������������������i���	��������������������������������������0�	��������������ǣ����������������	��ĺ������������������������������Ƭ����������/��	�����������������ſ������������q�D�	���������	�������������Ҭݻ��������˰�����	����������������������������7�	�������������y��	�����������������������������	��������������������������������������������	������������������ƭ����?�`��	�����������������������������������	���������������	����������������������ȱ�ɦ�������	�������������ݵ����G��	������̥���������ϥ��������	������ʫ�����������������������(�	������������������������������������
����	��������������������������������������������������O��	����í����������������X	Ļ��ȷ������˱�������	����ƾ����������������������������	�������������̹���˲�����W� 	������������������|	���������������������	�������	����������_�,	������������ϼ�������������������������������P	�������������������������������������������������������	����Ť����������ɡ��%�4	����������������������������g�l	ζ��������@���H����� �x��d������@�����x���,U�� �d������,���(����<�����x��X��|� |�P��t�$H�,d���o�	�����	��؂�	�����������������������������������������������������������������		�������������������������������������������������������������������������������������������������������������������������������		���������������
,U�	�	�
��8�
��
� �,Ū�ԅ(��X�X���=�Ħ�d����`6�
<9D9L9��	��������������������������������������������������������������h�����������������������������������������������������������������������������������������������������������������������������������������������������	������������������������������������������������$��	��������������������������������������������������������������������������������������f��
	����P	������������������������������d	����������������������������������������������������������������������,��	����������������������������������������n�H	�������������������������������������������	�������������������������������������������������������	��4����������������������	v��	�������	�����������,U��<�	��������������������������������������~�	������������x	����	����������������D��	���������������������������������������������������������	��������������������\	��������������
����	����������������������������������������������������L��	����������������������������8	����������������������������|	������	��������T��	���������������������������������	����	����X	���������������������������������������������������������������������������������������������l	������������������\�4����	��������������������������h��������	�����������������	����������������������������������"��	����@	����������������������d�T	�������	�����	����*��p��,U�T��0t���Pd�;,|Z�Z`��8L����l����������	����������������������������������������������������������������T����������������������������������������������	��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	��������������������������������2��	������������������������������t�L	�������������������������������������������	�����������������������������������������������������	������:�l	�����������|��	�����־��	����������	��������B��	��Ȅ��	��������������	�������,	���������J�D	��ʌ�`	�����t	�����������	���R��	������������������	�����	�������������������	������Z����	��������0	�����L	������ �`	���b�x	�����ߤ��	������������	�����������(��	������j��	�����������������	����������	�����0�8	�����r�P	������h	����	���8�����	��z��	�������	���������	������@��	���������Ȃ�	�����,	�������@��\��,UD�<��d=<=d=�����$<Xl�����(DXp�����0H`x�����$8PH�X	���4 	����H 	���\ 	����p 	��������� 	����P�� 	��������Ȓ�� 	��������� 	����� 	�������!	������X�!	����4!	��������H!	�������������`!	����������`��!	������������!	������!	���������&��!	�����!	�����h�"	�������"	���R�0"	��������D"	������.�\"	���p�t"	������"	������"	�����"	�����6��"	���x��"	�����"	������#	������>�#	�����4#	����H#	�������������\#	�����F�|#	���������#	�����#	���Y��#��������	�����������Ϳ���Т�������У������ʺ��ξ�������Ф��������������Х��Ц��ð��ЧШ��#���	Щǵ��������Ƿ����˳�����Ъ��Ы�����������֦��������N��$��	ЬЭλͽ��Я������в�������������������где˴ж��������������μзий��������������$����о���м	н���������лкʩ�������¾п����������������������������������������Ǥ������%�����	�������������Ȳ��������������ȼ�����������������\&	��â��������������ͤ��������������;��������դ�������������������ʻ����������������������V��&	��������������������������������������������ե����������η��������'	��¥��������������������������¯����������������������������������ɶ���������(@ T h ,U| � � � � � !,!@!X!x!�!�!�!�!�!"("<"T"l"�"�"�"�"�"�"�"#,#@#T#t#�#�#�#�#�$�$�%T&�&|'(�(��(�������	����������������������������������������������������������������������������^�t)���������	��������������������������������������������¦��������� *�	����˵�������������������������������������ѣ���������������*	Ѥ��������ѡѢ��Ư��������������ѥ���νѦ���ѩѧ�������ѨѪ�����Ѭѫ��$� +��Ѯѯ����	�����ѭ����ѲѱѰ�����ѳ�������Ѵͥ����ѶѵѸѷѹf��+Ѻ��	�����������������Ѽ������ѻѽ�����������Ѿ�����Ȭ��ϻ�������ʼ¶��ŵ�������,,��	���������������������������������������������������̽��������������������������������������,	�������������ο������������������������������������������������ȡ��,��-�����������	ʬ����������������������������Ƚ������������������������n�,.	����§�����������������˶���������������������������������������������.	�����������έ�����������������������������Ңң�����ϫҥ��������Ҥ���X/	Ҧ��ļͦ���������ҧ�������ư��Ҩ��̳����ҩ��ҭ��Ҫ��ҫ������Үү���Ұұ��������4��/�����	��Ҳ��ҳ������ҵҷҶҸ������ҹ��������Һ�����һҼҽ���Ҿɤ�������ƿv��0ҿ�������	��������Ⱦ����´������ñ������������������������������¨�������������������(1	����������������������������������������������������1���	����������ͧ��ȿ�������������������������������á���������������������������������<�D2	��������������Ʊ̾��������������������������������������������ʭ������~��2��	Ϥ�����������������������������������������̣������������̿�����3��	�����������������������������������ӣ�������ӡ�������Ӿ�����������ӥ��Ӥ���4����Ӣ����	������Ӧ��ӯӧӨ�������ӭӬ������ů���Ӯӫ��D�4������	�����������ө��Ӫ����Ӵͣ��Ӻ��ӹӰ������45ӱ���	��Ӷ��������ӳ������ӷӸӵӻ��������Ӳ�������������5ӽ���������	���������ӿ��������Ӽ��������������������������������
6	����ԧ�������������������������������������������L�6	ò����������������������������������������������������Ď�6���	�������������������������������������������ʮ����ȸ�h7��	�������������������������������ǹ��������������������������7��������	�����������������������������������������������������TT8�	���ԡ���Ԣԣ����Ԥ���ԦԥԨ�������ԩ�����������������Ԫԫԭ��8Ԯ	����������˷������Ԭԯ����Գ��ó���԰�����������������������Դ�h9	��ԲԵ��Զ�����������Է����Թ���Ժ���ԻԸ���9Ա	ԼԽ�������������Կ�Ծ�����Ǹ��������������������������������������������\@:��	Ʋ������������������������������������������������������:ʽ��	��������������������ȹ���������������Ŷ�������������P;	���������������������������������������������������ʯ����������"�;	�������������������������������������������������������������������������������������dD<	���������������������������ͼ������¿����̴�������ŷ������������������������<	����������������������������������������å���ʳ����������ա�������=	բǡ����ǥ��ի������̯֬գ���զ����˸�����է���������*$>	��ը��������������������լխժ������������������թ��ɱ�����������l�>	����ղ������հ�����̼ճձկ����ծ����������շո���?մϬ	��ն�����չ�������պյ���������̻��?	�������ջɲ����������������������������ռ�ս���2�?	��տ����վ����������������������������������������t4@���	����������������������������������������@����	����������������������¸�����������������������¹�����֣������������������@�����	�������������������������������������������������ͨ�����������������������:�A���	��������̩����������������������������������������ǫ������������������������������|8B	������������������º����Ƴ�������������������������������������������Ǣ��B���	������������֢֡���Ÿ��°������������������������֤֥�������֧֨������C	������֩����֪֫������������������������̨֭����������ֱ֯����ְֳ֮B0D	ֲִ���������ֵƽ����ֶֹֻ������ָ��ַ��D	�����ּ�����������ֽ��־�����������������������������������E	�������������������ֿ��������������������	�E	������������ֺ����������������������������������������������J	�E	����������������������������������������������������������̦��������ç���	pF���	������������������ġ�������������������������Ģ������˹����	G��	���������������������������Ȩ��ʾ����������������ʿǯ��������������ͩ���
�G	�������������������������������������������������R
0H	���������ϭ��������ס���פץף���קצערשת׭׫׬׮����ׯ�����Ƕ���װ��
�H����ױϮ	����ײ�׵Сб������׶��Ĥ��׷ʦ��������������������׸׹׿���ĥ���׺ɫ����
TI�׻	����׼��׽׾���������״׳��������ɧ���ɷĦ�������������������������J������������	�������Χ��������������������������������������������ħ�������Ű����Z�J	�����ɬ����������Ǧ�������������˺˻�������������������������ح�����ǰ������������lK*�*+�+$,�,�-$.�.P/�/�0 1�1<2�2�34�4,5�56�6�6`7�7L8�8`9�98:�:H;�;<<�<�=>�>?|?�?,@�@�@�A0B�B�C(D�DE�E�EhFG�G(H�HLIJ�JdKLL	����������������������������������������������������������������M	�����������������������������������������������©��������� �M	��ء�����ا���إ�����أؤ�آ������ͪ����ئ���Ǻ������������جذ��ة��خ���b(N	��د���������ث����ر��������������تب����������ؽ�����ظ���صض����عؼ��Nط��	غش��ؾؿ�����������س��������������ػ�������������������������`O	�������������������ز������������������������������θ���������������������(
�O	ͫ�������������������������������ʰ���ƴ��������������������������j
�P	���������������������������������Ĩ�������������������
Q�	�������������������������١��٢����������٣٤��٥٦٧��������˼�
�Q��٨	�����������������٩��������ʧ������٬٪٭���٫���ٮ���ʱ��������������ٯٲ��0(R��	ٰٷ����ٱ����ٳٴٸ��ٵ���������ȴ�������ڭ����ٻ����r�R	����ôپ�����������ټ��ٺ����ٶ�����ٹ��������������������������������������ٽ�HS	�����������������������ĩ��������������������������������������S	��������ª�������������Ľ���������������������������DZ��8pT��	�������������������������������Ϋ��õ�����������������������������z�T��	·�����������������ͬ�������������������������������������������xU	�����»�������������������������������������������U	����Ŧ����������������������������@hV	�������������Dz���Ƶ���ű��������������ڥ�����V	��ڧ��ڣڤ�������������ڢٿ������ڦڡګڬŧڮ��������ک��گڨڳڲڱ��ڴ��ڶ������0Wڵ	���ڹ���������ڷڸ�������ڻں���ڼڰ�����ڽھ�ڿ���������W	�������������������������������������������������Ũ�������HTX	�������������ʸ����������������������������������������������������������������X	���������ι���������²������������������ö��������������������������pY��	���������������������������������������������������������������������������ۦ�Y	�������������������������������������������������������������������������������������������������P�Z�����	������������������������������Ī��������������˽���ۢ���������`[	�ۡ�������ۣ��ۤ�����ۥۧ��ۨ���۩������۪۫������������������[�����	�������ͭ��۬�������Ŀۭϯ���˾īۮ��ۯ۰��̤�����۲������۴۷۶����۳�\	۵۸�����������������¼�������ۻ�����۹«ۺ����ۼ۽����������ۿ�����������������������X$]	�����۾����������������������������������������������������������]����	���������ɢ����˿����������������ͮ���������������������������������������������d^	�����������������������������������������������������������������_����������������	����������������������������������������ɰ�������������������������`�_	�������������������������������������������������������������������������������������������8`	��������ܲ�����������������ܡܣ���ܧ����ê��ܫ�ܨ������ܢ���������ܬ���������ܪ���������`���	���ܦ��������̺�������ܥ��ܯ����ܱ�ܰܩ�ܭܮܿ����ܤܻ���ܽ��&�a	����������ܸ����ܾ��ܵ�������������������ܷ�����ܺ�������ܼ��ܴܶܳ���ϰ��ܹ���h,b������	���������ϱ���������������������������������������������������b�����	��������������������������������������������������������������������������������Xc	������������������������ɸ������������������������������������������������î�����.d	���������������������������������������������������������p�d��	������������������ݡ�����������������ݬ���ݨ��ݧݦݣ��� e	��ݥݤ������ݪϦ���ݭ��������ݩݫ����ȧݮ������������ݲݯ�����e	��ݰ��������������ݳݴ���������ݶ�����������������ݸݷݺ������6f	ݽ��ݼݾ�����÷ݿ����������������������������������������������������������x�f�����������	�����������������������������������������������������������4g��	�������������������������������������������������������g	��������������̱��������������������ɹ��������>Lh�����	������������������������������������������������������h	��������������������������������������������������������ʨ�ޡ���������<i	�������������������ˡ����ޤ���ޢ������ˢ����ť�����ޥ����������ޣ��������i���	�������ް��ޯ��ެ��ƶަ���������������ީ���������ޮ���ޭިޫ�������ު����F�j	ή������޶޴�����������ޱ޳������ϲ�������������޵�k��������	޺���������Ͱ���޷���޲��޸��������������������������޾�������k��	���������޿���������������������������������������ø��������������������ʥ�����޻��ź��l	��������޽����޼��������������������������������������¬�����������������������N�l	���������̫����������������������ù��������ͯ���������������dm�	��Ȯ����������ί��������������������������Ů������m	����������������������������������������ũߣ��������\n	��ɺ��������ϳ����ߢ����������������̡����������������ߡ�V�n	������������߯����ߪ��������������߳��߬Ĭߩ����ߦߥ߮�����loߨߧ߭	��ߤ������߰��߱������������߶ߵ߷����ߺ����ߴ����߸������o���߲ǻ	߹����������߾߼߿��������߻��Ǩ޹�����߽�����߫�������������|p�M N�NXO�O�PQ�Q R�R@S�ShT�TpU�U`V�V(W�WLX�XhY�Y�ZX[�[x\]�]\^_�_0`�`�a$b�bPc�c�de�ef�f,g�gDh�h4i�i|jk�kl�l\m�mTn�ndo�otpqq�����	���������������������������������������������������������^r	������������������������������������������������������������۠�r	��������ϧ�����������������������ú��������������������s	����������������������������������ˣ��$�s	��������������������������ʲ������̵������������������f�s	������������������������������������������������������Dt��	�������������������������������������Ǯ���������t	��dz������������������������������������������,0u��	������������������������������������n�u�	����������ĭ���������������̶��ϴ����ʪ����������������(v����	���������������������������������v��������	������������������������������ì�������ϵ��4w	�����������������������������������ǭ���������������ͱͲ����������v�w	��������������������������������������������������������x	��������Ψ���������������������������������������������������������������x��	��������������������������������������������������������< y	����������ΰ��������������������������������������������������~ �y�����	�������������������������������������������������������������� z	����������������������������������������������������������������!�z	������������������ɻ���������������������D!@{	������������������ż�����������������������ͳ������ҴĮ�������!�{��	�����������������Ȫ����α������ȫɭ�ά�����������������������������������������!`|	�������������ɥ�����������������������������������������������������
"$}���	���������������������������������������������Ρ�������������������������������������L"�}���������	����������������������������������������������������������������������"X~	����������������������������������������������������ȯ�����ɴ�"�~���	�Ū���������������������������������������������������������#�	��������������������������ݹ����������������������ľ�������T#,�	������������������������̲�������������������į���#Ȁ��	���������������������������������������������������#D���	��������������������������������Ʒ������������$��	��������̷��������������������������û��������������\$,�	�������������������������������������ˤ�������$��	�����������������������β������ȣ�����$�	�������������������������������������������������������������"%\�	����������������������������������������������������������d%�����	������������������������������������������%d����	�������������ʹ��������������������Ǫ�����ɼ�����������%Є����	Ͻ������ʡ��������������������������ǩ�������������������*&\��������	���������������������������������������������������l&���	�������������̭��ɣ�����������������������������������������&l���	���������������������������������������������������������������������&��	��������������������������������������������������������������2'��	������������Ω��������������������ε������������Ƹ������è����ü������ѿ��������t' �	������������������ū������������������������������������'Ј	����ɮ��Ȧ�������ȵ����������������������������������������������'\�	����������������̧���������������ý�����Ȣ����Ȥ���:(����	������������������������������������������϶���������|(������	������������������������������������������������������������(���	��������������������������������������������������������������������)��	������ʴ��̰����γ������Ǵ����������������������������������������������B)���	���������������������������ʵ�������������������������)����	�����������������Ǽɳ���������������ʶ��������������������������������������)@�����������������	����������������������������������������������*��	�����������������³�����������������������������������������������þ�����J*�����	�����������������������������������������������������������������*P�	��������������������������������������������������˥�����������������������*�	�������������������������������������������������������������������+|�	���������������������Ż����������������R+�	�������������+p�	����������������������������������������������ȳ����������������+��	���������������������������������������������,0�	�������������������������������������������������������������Z,���rs|s�s<t�t(u�u v�vw�wx�xy�yz�z8{�{X|}�}P~�~�$���<���$����T�؃\�ȄT��d�����ȈT���x��������8����H�؏t��h�,U��(���<�D���Ϸ�����������	��������������������������������������������������������������ÿ���,P�	���������������ʹ���������������������İ��������������ϸ���,�	������ȥ�Ͼȩ����ɪ��������������������������������������������� -l�	������������������������������˦���������������ƹ���������ǽb-�	��������̮�����������������������������æǾ���ı�����-|�	�����������������������������������IJʢ�����-�������������	�������������ɨ�������������������ǿ(.h���������	������������¡������������������������������������������������������j.�	�������������ڪ����������а�����������������������������������������������������.����	�����������������������������������������������������������������������������.4�	��������������������������������������������������������˧�����������������������0/̙	��������������������������������������������������������r/l��������������������	������������������������������������������/��	�����������������������������������������������/��	������������������������������������������������80������	����������������������������������������������������ɩ������������z0��	����ƺ��������˨�����������������������������������������0�	���������Ϊ���������������������������ơ�������������������Ǭ������������������0��	������������������������������������������������������@1(�������	��������������������̬������������������˩ϡ���������������������1����	�������̢��������������������������������������¢������1$���	����������������������������������������Ƣ�������������������2������	����������������������������������������������������������H20�	�������������������������������ƣ�����������������������2̠���	�������������������ݱݢ�����������������������������������2P������	����������������������κ����������������������������3ԡ	���������������������������������������������������������P3L�	�����������������������������������������Ⱥ���������������������������3����	˪����������������������������������������̪�������������������������������3L����	�����Ϲ���������������������������������ij������4ܣ	�����������ͻ���������������������������X4\�����	������������������������������������������������4��	���������������������������������������������������������4<���	�����������ާ�����������������������������ɽ����������������������5��	������������µ������������������������������������������`5H�������������	����΢�����������͵�������������Σ���������������������������5��	�������ʣ������˫���������������������������������5T�������������	��������������������������&6̧�����	�ʤ����������������������������������������������h6<��	��������������������������������������Ҫ6̨��	�������Ƥ��������������������������������ˬ������������������������6,�	������������������������ɾ�������������������������������������������.7ȩ	�����������ǧ���������Ͷ���������������������������ï������������Ĵp7\�	��������������������������ĵ�����������������͡���������������������7�������	ƥ����������������������������������������������ɵ����������7��	��������������������������������������������������68�����	������������������������������x8��	ë���������8�	����Ʀ������˭�������������������������Ю��������ɿ���8�	���������������������������������������������������������������������Ž����>9������Ϩ����	����±�������������������������������������������������������������9<�	������£���������������������������9ܮ	�����������������������:,�	�����Ķ����������������­����F:h�	����������������������������������������������ϩķ���������:��	������������Ƨ������������������������������������:(�	������������������������������������������;��	������������������������������������������N;���	�����������������������ž��������������������;�����	�����������������������������������������������������͢��������;����	���������������Ų���������������������<��	���������������ҡ�������ä�������������������éV<ܲ	������������������������������������������������ų���������������������������<H��d��t��`����,�ęd�����x���� ������(�ĠH�̡D���D�ԣT���4���@���L�ħ4�Ĩ$���T��|�����,U���4�Ԯ$�`��� �������x�Բ@�ܳ��������ƨ	������������Ʃ�������������������®¤���Ϣ�����������������ɯ��<�	���������������ͷ����������ƻã�����½�������������Ŭ��������������������=������������	�������������͸���������������ˮ��������������š��^=X�	����������������Ϻ�������������������������������͹��������������=����	������������������������������Ţ����������������������=l�	����������������������������������������������������������������������$>�	����������������������Ȱ����������������������������������������f>l�����	����������������Τ��������������ţ��������������������������������������������>�	��������������������������������������������������>����	�����Ŵ�������������������������������������������ȭ����������������������������,?���	��Ƽ������������������������ĸ����������������������n?�����	����������������˯��������������������������������������������?�	���������������������������������������������������ϣ���Ͽ����?��	�������������������������������������������������������4@�	��������������������������������������v@��	�����������ŭ����������������������������������@�	���������������������ƪ�����������������������@\�	������������������������������������������������������<AȽ	Ĺ������~A@���	�����������������������������������������������ȶ���������������������������������A\�	�������������������������Ʈ������������B�	������������������������������DBd�������	���������������������������������������ƫ�Φ�����B��	�������δ������������������������������������������������������������Ȼ����B<�����	ͺ����������������������������������Υ������������ʷ���������
C���	�����������������������������̸����Ϫ�����۱��������LC��	������������������������������������������������������������������������������C�	����������������������������������������������������������������C��	����������������������������������������ǣ�����������������D0�	��ĺ���������������������������������������������������������Ƭ������������������TD��	������������������������������ſ������������������DP�	��������������������������������D��	�����������������������������������������Ҭݻ�����������������˰��E�	��������������������������������������������������������������\E���������	��������������������������������E0�	������������������������������������������E��	�����������������������������������������������������������������"F��	�������������������������������������������ƭ������������dFh���	����������������������������������������������F��	����������������������FD�����	������������������������������������������������ȱ�ɦ��������*Gx�	������������������������������������������ݵ����������lG�	������̥����������������������������ϥ�����������������G��	����������ʫ����������������������������������������G����	�����������������������������������������������������������������������������2H����	����������������������������������������������������������������������������������������tH,�	���������í������������������������������������������������������������������������������H��	Ļ�����ȷ���������˱�����Ht�	�������ƾ���������������������������������������������:I��	����������������������������̹������������˲�������������������|I,�	�������������������������������������������������I����������	�������������������������������������������J4�	��������������������������BJ��	����������������J�������	�������������ϼ���������������������������������������������������J�	������������������������������������������������������������������K��	����������Ť�����������������������������ɡ�����JK<�	����������������������������������������������������������������K��	ζ��������������K$���P��d�طd���������������T���8���,UT��\���4�������(���H������(�����`���<�p�������$���l���$���,��������4����P��oX�	�������LX�	����x�	����RL��	���������������������������������������������������������������������L��������������������������������������������������������������������������������������������	�L4�	�������	����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,Up�����,�������89M �	��ZMX�	����������Ml�	����M��	��ƨ���	��� N��	���bN��	������	�������	������	����N�	����(�	����N<�	���R�P�	������(Od�	��ʊ�|�	��Ҁ���	���jO��	��٨���	���jO��	������	�������	���4��	�������O�	����O4�	�����H�d�,U��������������� �4�H�\�t���������������,�@�T�0P\�	�����rP��	��������޴P��	���������P�	�����8Q �	���zQ8�	���zQL�	������Q`�	����Qx�	������	��@R��	��ՂR��	����R��	������	�������	�����	���S�	���������HS,�	�����������ȊSH�	����Sh�	�����T|�	���PT��	���T��	�������,U�����0�D�X�p����������������$�@�`�t����������T��	����<�	�����P�	���PTd�	���Sx�	���U��	���XU��	��� N��	���R���	����U��	����������U��	���V�	������`V �	���4�8�,UH�\�p���������������0�D��VL�	����T��	���������V��	���&W��	���������������������hW��	�����������۪W�	����� �	���8�4�	�����H�	��zQ\�	����������Wp�	������	��������.X��	�����pX��	������X��	�������X��	�����	�����	��6Y,����	��xY@����	�YX�	���������Yl�	��6Y��,U���������,�@�T�h��������������$�8�P�d�����>Z��	�����	��͚��	������Z,�	��D�	�𳖂X�	���Zl�	��bN��	������	������	����[��	�����	�������	������F[��	���[�	���ZM(�,U�$�<�P�d�x�������������� �4��[<�	����\��	���M��	�򡖂��	����N\��	��PT��	��p���	�����	���\�	����\0�	���\D�	���]X�	��bNl�	����V]��	����]��	�������]��	���&W��	������^��	��4���	������	�������^^ �	������^<�	����X�	��؂l�	�������^��,U������������(�<�P�d�x�������������4�P�d�x���$_��	����f_�	����S$�	���S8�	���L�	���R`�p�`�	���R|�	���6Y��	�������	���jO��	�����ب_��	�������_��	���jO��	���PT�	�����$�	������,`8�	����P�	��Ė�d�	���Ux�	���jO����	���n`��	�������	����������`���0�,UD�X�l�t���������������0�H�\�p������������`��	��@RT�	������4ah�	���������va��	���a��	���N��	����������a��	�����<b��	������~b��	��•�	��֌�$�	���zQ8�	�������bL�	����d�	����Ux�	����S��	����a��	���Y���,U`�x�������������0�D�\�p���������c��	������Dc�	��Y�4�	����RH�	���U\�	����p�	���p���	����O��	��� N��	�������c��	�������c��	���������
d��	������������Ld�	�������d,�	�������dD�	����\\�	���������ep�	������Te��	��׸a��	���bN��	������	������e��	���N��	��� N�	���&W �	���U4�,U,�@�T�h�|������������$�<�T�h���������������,�@��eH�	������f��	����a��	���R���	�������	��ֺ��	����\$�	��ݸa8�	����RL�	���&W`�	���XUt�	������\f��	��ݤN��	�������	���������f��	����\��,U��������0�D�X�l��������������f��	������"gD�	����R\�	�����p�	���a��	���p���	���Y���	���bN��	������dg��	���&W��T�,Uh�|��������������g��X��4��������L����<�,��g4����
H\�,U@��x�̄�ԅ(��XL, l)MrH��P��X`6P�h�D9L9hp���	

 !"#$%&'()*+,-./0123456789:;<=>?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@����	

��	

��	

��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDDDDDDDDDDDDDDDDDDDDDDDDDDD��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0123456789:;<=>?��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTTTTTTTTTTT��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWWWWWWW��	

 !"#$%&'()*+,-./01��	

 !"""""""""""""""#$%&'()*+,-./0123456789:;<=>?@ABC"""""""""""""��	

 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!��	

 !"#$%&'()*+,-./01234444444444444444444444444444444444444444444���	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOOPQRSTUVWXYZ[\]�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU𠂉𠂢𠂤𠆢𠈓𠌫𠎁𠍱𠏹𠑊𠔉𠗖𠘨𠝏𠠇𠠺𠢹𠥼𠦝𠫓𠬝𠵅𠷡𠺕𠹭𠹤𠽟𡈁𡉕𡉻𡉴𡋤𡋗𡋽𡌶𡍄𡏄𡑭𡗗𦰩𡙇𡜆𡝂𡧃𡱖𡴭𡵅𡵸𡵢𡶡𡶜𡶒𡶷𡷠𡸳𡼞𡽶𡿺𢅻𢌞𢎭𢛳𢡛𢢫𢦏𢪸𢭏𢭐𢭆𢰝𢮦𢰤𢷡𣇃𣇵𣆶𣍲𣏓𣏒𣏐𣏤𣏕𣏚𣏟𣑊𣑑𣑋𣑥𣓤𣕚𣖔𣘹𣙇𣘸𣘺𣜜𣜌𣝤𣟿𣟧𣠤𣠽𣪘𣱿𣴀𣵀𣷺𣷹𣷓𣽾𤂖𤄃𤇆𤇾𤎼𤘩𤚥𤢖𤩍𤭖𤭯𤰖𤴔𤸎𤸷𤹪𤺋𥁊𥁕𥄢𥆩𥇥𥇍𥈞𥉌𥐮𥓙𥖧𥞩𥞴𥧔𥫤𥫣𥫱𥮲𥱋𥱤𥸮𥹖𥹥𥹢𥻘𥻂𥻨𥼣𥽜𥿠𥿔𦀌𥿻𦀗𦁠𦃭𦉰𦊆𦍌𣴎𦐂𦙾𦚰𦜝𦣝𦣪𦥑𦥯𦧝𦨞𦩘𦪌𦪷𦱳𦳝𦹥𦾔𦿸𦿶𦿷𧄍𧄹𧏛𧏚𧏾𧐐𧑉𧘕𧘔𧘱𧚓𧜎𧜣𧝒𧦅𧪄𧮳𧮾𧯇𧲸𧶠𧸐𧾷𨂊𨂻𨊂𨋳𨐌𨑕𨕫𨗈𨗉𨛗𨛺𨥉𨥆𨥫𨦇𨦈𨦺𨦻𨨞𨨩𨩱𨩃𨪙𨫍𨫤𨫝𨯁𨯯𨴐𨵱𨷻𨸟𨸶𨺉𨻫𨼲𨿸𩊠𩊱𩒐𩗏𩙿𩛰𩜙𩝐𩣆𩩲𩷛𩸽𩸕𩺊𩹉𩻄𩻩𩻛𩿎𪀯𪀚𪃹𪂂𢈘𪎌𪐷𪗱𪘂𪘚𪚲��	

��	

 !"#$%&'()*+,-./0123456789:;<=>????????@ABCDEFGHIJKLMNOPQRSTU??��	

 !"#$%&'$$$$$$$$()*+,-./0123456789:;<$$=>?@ABCDEFGHIJKLMNOPQRST��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTTTTTTTTTUV��	

 !"#$%&'()*+,-./0123456788888889:;<=>?@ABCDEFGHI888J8888KL888MN𠀋𡈽𡌛𡑮𡢽𠮟𡚴𡸴𣇄𣗄𣜿𣝣𣳾𤟱𥒎𥔎𥝱𥧄𥶡𦫿𦹀𧃴𧚄𨉷𨏍𪆐�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?@��	

 !"#$%&'()*+,-./0123456789:;<��	

 !"#$%&'()*+,-./0123456789:;<=>����	

����	

 !"#$%&'()*+,-./0123456789��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?��	

����	

��������	

��������	

������������	

��	

��	

 !"#$%&'()*+,-./012345678��	

 !"#$%&'()*+,-./0123456788889:;<8����	

 !"#$%&'()*+,-.��	

 !"��	

 !"#$%&'()*��	

 !"#$%&'()*+,-.��	

 !"#$%&'��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-.��	��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*��	

 !"#$%&'()��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,��	


















 !"
#$%&'()*


��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./��	

 !"#$%&��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*��	

 !"#$%��	

 !"#$%&'()*+,-./��	

 ��	

 ��	

 ��	

 !"#$%&'(��	

 ��	

 !"#��	

 !"#$��	

 !"#$��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./0��	

 !"#$%&'��	

 ��	

 !"#$%&'��	

 !"#$��	

 !"#��	

 !"#$%��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./��	

 !"#$%��	

 !"#$%&��	

��	

��	

��	

��	

��	

 !"#$%&'(��	

 !"#$%&'()*+,-./0123456��	
			
				 !"#	$		%&'(	)*+,	-	.		/01��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*��	

 !"��	

��	

��	

 ��	

 !"��	

 !"#$%&'��	

 !"#$��	

 !"#$%&'()*+,-��	

 !"#��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-.��	

 !"#$��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-��	

 !"#$%&'()*��	

 !"#$%&'()��	

 !"#$%&'()*+,-��	

 !"#$%&'()*��	

 !"#$%&��	

 !"#$%&'()*+,-��	

 !"��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-��	

 !"#$%��	

 !"��	

��	

 !"#$%&��	

 !"#$%&'()*+,-��	

 !"#$%&'()*��	

 !"#��	

 !"#$%&'()*+��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()��	

 !"#$%&'()��	

 !"#$%&'()*��	

 !"#$%&'()*+,-��	

 !"#$%&'()��	

 !"#$%&'()*+,-.��	

 !��	

 !"#$%&'()*+,��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*��	

 !"#$%&'()*+,-.��	

 !"#��	

 !"#$%��	

 !"#$%&'()*+,-��	

��	

 !"#$%��	

 ��	

 !"#$%&'��	

 !"#$%&'()��	

 !"#$%&'()*+,-��	

 ��	

 !"#��	

 !"#$%&'(��	

 !"#$%&'()��	

 !"#$%&'()*��	

 !"#$%&��	

��	

��	

 !"#$%&'()*+,-.��	

 !"#$%&'��	

 !"#$%��	

��	

 !"#$��	

 !"#$%&'��	

 !��	

 !"#$%&'(��	

 !"#$��	

 ��	

��	

��	

��	

��	

��	

��	

 !"#��	

 !"��	

 !"#$%&'()*+,-./��	

��	

 !"#$��	

 !"#$%&'()��	

 !"#$��	

 !"#$%��	

 !"#$%&'(��	

 !"#��	

 !"#$%&'��	

 !"#$%&'��	

 !"#$%&��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./01234��	

 !"#$%&��		
	
											 	!"#$%&'				()	*	+,��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,��	

 !"#$%&'()*��	

 !"#$%&'()*+��	

 !"#$%&'()*��	

 !"#$%&'��	

 !"��	

 !"#��	

��	

��	

 !"#$%&'(��	

 !"#$%&'��	

 !��	

 !"#$%&'()*��	

 !"#$%&'(��	

 !"#$%&'��	

 !"#$%&'()*+,��	

 !"#$%&'()*��	

 !"#$%&��	

 !"#$%&'()*+,-./0��	

 !"#$%&��	

 !"#$%&'��	

 !"#$%&'()*��	

 !"#$%&'(��	

 !"#$%&'()*+��	

 !"#$%&'()��	

 !"#$%&'()*+��	

 !"#$%&'(��	

 !"#$%&'()*+,-./0123��	









 !
"


#
$%&'
()
*+,-
.
/��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,��	

 !"#$%&'()*+��	

 !"#$%&'()*��	

��	��	

 !"#$%&'()*+��	

 !"#$%&'()*��	

 !"#$%��	

 !"#$%&'()*+,-./01��	

��	

 !"#$��	

 !"#$%&'��	

 ��	

 !"#��	

 !"#$%&'()��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-��	

 !"#$%&'(��	

 !"#$%&'()*+,-./012��	

 !"#$%&'��	


















 !"#$%&'()*
+,

��	

��	

 !"#$%&'��	

 !"#$��	

��	

 !"#$%&'()*+,-.��	

 !��	

 !"#$��	

 !"#$%&��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./0��	

 !"��	

 !"#��	

 !"#$%&��	

 !"��	

 !"#$%&'(��	

 !"#$%&'()*+,��	

 !��	

 !"#$%��	

 !"#$%&��	

 !"#$%&'()��	

 !"#$%&'()*+,-./��	

 !��	

 !"#$%&'()��	

 !"#$%&'��	

 !"#$%&'()*+��	

 !"#$%&'()*��	

��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./0��	

 !"#$%��	

 !"#$%&'()��	

����	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./��	








 
!
"
#$
%&
'

(
)*
+,-./0��	

��	

��	

��	

 !"#$%&'()��	

 !"��	

 !"#$%&'()��	

 !"#$%&'��	

 !"#$��	

 !"#$%&'()*+,-./01��	
		
																																��	

��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()��	

 !"#��	

 !"#$%��	

 !"#$%&'��	

 !"#$%&'()*+,-.��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,��	

 !"#$%&'()*+,-./0��	

 !"#$%&'��	

 !"#$%&'()*+,-��	

 !"#$%&'()��	

 !"#$%&'(��	

 !"#$��	

 !"#$%��	

 !"#$��	

 !"#$%������	

 !"#$%&'()*+,-.��	

��	

��	

 !"#$%&'()*+��	

 !"#$%&'()*+,-./01��	

 !"#$%&'(��	

 !"#$%&��	

 !"#$%&'()*+,-.��	

 !"#$%&'()��	

 !"#$%&'()*��	

 !"#$%&'()*+,-./��	

 !"#��	

��	

��	

 !"#$%&'()*+,-��	

��	

��	

 !"#$%&'(��	

 !��	

��	

��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-./��	

 !"#$%&'��	

 !"#$%&'()*+,-��	

 !"#$%&'()��	

 !"#$%&'()*+,-./01��	

 !"#$%&'(��	

��	

 !"#$��	

 !"#$%&��	

 !"#��	

 !"#$%��	

��	��	

 !"#$%&'()*+,-��	

 !"#$%&'()*��	

 !"#$%&'��	

 !"#$%&'()*+,��	

��	

 !"#$%&'()*+,-./0123456789:;<=����	

 !"#$%&'()*+,-./0123456789:;<=��	

 !"#$%&'()*+,-./0123456789:;<=>��	

 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!���������	

��	

��	

����	

��	

����	

��	

��	

������	
��	
������	
��	

 !"#$%&'()*+,-./��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-��	

 !"#$%&'()*+,-./0123456��	

 !"#$%&'()*+,-./0��	

 !"#$%&'(��	

 !"#$%&��	
			
				 !"#	$%	&'()	*+,-	.	/		012��	

��	

 !��	

 !"#$%&'()*+,-./0��	

 !"#$%&'()*+,-./012��	

 !"#$%&'()*+,-./��	

 !"#$��	

 !"#$%&'()*+,-./0123��	

 !"#$%&'()*+,-./0123��	

 !"��	

 ��	

 !��	

 !"#$%&'()*+,-./0��	

 !��	

��	

 !"#$%&'()*+,-./��	









 !
"

#$
%


&

'()*

+
,��	

 !"��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*+,-��	

��	

 !"#$%&'()*+,-./01��	

 !"#$%&'()*��	

 !"#$%&'()*��	








 
!
"
#$
%&
'
()
*+
,-./01��	

��	

 !"#$��	

 !"#$%&��	

 !"#$%&'()*+,-./��	

 !"#$%&'��	

 !"#$%&'()*+,-./0��	

��	

 !"#$%&'()*+,-./0��	

 !"#$%&'(��	

 !"#$%&'()*+��	

��	

������	

 !��	

  !"#$%&'()*+,-./0123456789:;<=>?�����	

������	

 !"#$%&'(��	
��	

 !"#$%&'()*+,-./012��	

����	

 !��	

��	

 !"#$��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'��	

��	

��	

��	

��	

��	

��	

 !"#��	

��	

 !"#$%&��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
����	

��	
��	

��	

 !"��	

 !"#$%&��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"��	

 !"��	

��	

 !��	

��	

��	

��	

��	

��	

��	

 !��	

��	

��	

��	

��	

��	

 !"#��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

 !��	

 !��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

 ��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	
��	

��	

 ��	

 !"��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	
����	

��	

 !"#��	

��	

��	
��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'()��	

��	

��	��	

��	

��	

 !"#��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

������	

��	

��	
��	

��	

 !��	

��	

��	

��	

��	

��	

��	

����	

��	

��	
��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	
��	
��	

��	

��	

��	

������	

��	

��	
��	

���	





��	

��	

 !"#��	

 !"#$%&'()*+,����	

��	

 !"#$��	

��	

��	

 ����	
��������	

������	��	

��	
����	

��	

��	

������	

����	

 !"#$%&'()*+,-./��	
��	

��	
��	

��	
��������	

��	

 !"#$��	

 !"#$%&'()*+,-./0123456789:;<=��	

��	

��	

��	

��������������������������������������������������������������������������������	

 !"#$%&'()*+,-./01234��������������������������������������������������������������������	

 !"#$%&'()*��	

��	

 !"#$%&'()��	

 !"#$%&'()��	

��	

 !"#$%&'()*��	

��	

 !"#$��	

 !"#$%&'()*+,-./01��	

 !"#$%&'(��	

��	

��	

 ��	

��	

 !"#$%&'(��	

 !"#$%&'()*+,��	

 !"#��	

 !"��	

 !"#��	

 !��	

 !"#$%&'��	

 !"#��	

 !"#$%&'()��	

��	

 !"#$%&'()*��	

 !"#$��	

��	

 !"#$%&��	

��	

��	

��	

 ��	

��	

��	

��	

��	

 ��	

��	

��	

��	

 !"#��	

��	

��	

��	

 !"#$%&'()��	

 !"#��	

 !"#��	

��	

��	

��	

��	

��	

��	

��	

 !"#$��	

 !"#$%&'��	

 !"#$%&'()*��	

 !"#$%&'��	

 !"#$��	

��	

��	

��	

��	

��	

 !"#��	

��	

 !"#$%&��	

��	

 !"#$%&'(��	

 !"#$%&'()*+,��	

 !"#$%&'��	

 !"#$%&'()*��	

 !"#$��	

��	

 ��	

 !"#$%��	

 !"#��	

 !��	

 !"#$%��	

��	

��	

 !"#��	

 !"#$%��	

��	

 !"#$%&'(��	

��	

��	

 !��	

��	

��	

��	

��	

 !"#$%&��	

��	

��	

 !"#$%��	

 ��	

 !"#$%&'��	

 !"#$%&'()*+,��	

 !"��	

 ��	

 !"#$%&��	

 !"#$%&'()*��	

 ��	

 !"#$%&'(��	

��	

 !"#$%&��	

 !"#$%&'()��	

 !"#$%&'()��	

 !"��	

 !"#$%&'��	

��	

 !"#$%&'��	

 !"#$%&'��	

��	

��	

��	

��	

 !"#$%��	

 !"#��	

��	

��	

��	

 !"#$%&'��	

 !"#$%��	

 !"#��	

��	

��	

 !"#$%&'()*��	

 !"#$%��	

��	

��	

��	

 ��	

��	

 ��	

 !"��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

��	

��	

��	

��	

 !"��	

 !"#��	

��	

 !"#$%&��	

 !"#$%&'()*+,-.��	

 ��	

 !"#$%&'��	

 !"#��	

 !"#$%��	

 !"#$��	

 !"#$��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

 ��	

 ��	

��	

 ��	

 !"#$��	

 ��	

 !"#$%&'()��	

 ��	

 !"#$%&��	

��	

��	

��	

��	

 !"#$%��	

 !��	

 !"#$%&'()*+,��	




















 !
"#

$%

&
'��	

 !"#$%&'(��	

 !��	

 !"#$��	

 !��	

����	

 !"#��	

 ��	

��	

 !"#$%��	

��	

��	

��	

��	

��	

��	

 !"#$%��	

 !"#$%&��	

 !"#��	

 !"#$%��	

��	

 !"#��	

��	

��	

 !"��	

��	

 !"#$��	

��	

��	

��	

 !��	

 !"#$��	

��	

��	

��	

��	

 !��	

 !��	

��	

��	

��	

��	

 ��	

��	

 !"��	

��	

��	

 !��	

��	

 !"#$��	

 !"��	

 !��	

 !"#��	

��	

��	

����	

��	

 !"#$%&'(��	

 !"#$%��	

��	
��	

��	

��	

��	

��	

��	

��	

 ��	

��	

��	

 !"#$��	

 !"#$%&'()��	

 !"#$%&'()*+��	

 !��	

��	

��	

 ��	

��	

 !"#$%&'��	

��	

 !"#��	

��	

��	

 ��	

��	

��	

��	

��	

����	

 !"#$%&'(��	

��	

��	

 !��	

 !"#$%&'()*��	

 !"#$��	

��	

 !"#$%��	

��	

��	

 !"#$%&'��	

��	

��	

��	

 !��	

��	

��	

��	

��	

��	
��	

 !"#��	

��	

��	

��	

 !"#$��	

 !"#$%&'(��	

 !"#$��	
��	

��	

 !"��	

��	

��	
����	

 !"#��	

 ��	

��	

��	
������	

 !��	

 !"#$%&'()*+,,,,,,,,,,,,,,,,,,,,,��	
������������������������	

������������������������������������	

��������������	

����������������������������	

������������	

��������������������������	

��������������	

����������������	

����������������������	

��������	

������	
��	
�	

   !; ���<L���d,���|zRx�$ا��0FJw�?:*3$"D�� \����lH_GNU��	�	�h%`
f
����i�
@�`
s
`��i�
@�`
{
���i�
@�`
�
�9��i�
@�f
`
�Q��i�
@�s
`
L��i�
@�{
`
���i�
@��
`
����i�
@�~�������
L
�h%�h%���o`��
p%0���	���o����o�o����o#�m%��GA$3a1�Y
GA$3p1067�	L
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignjapanese_euc.so-2.2.10-35.el8.x86_64.debug����7zXZ�ִF!t/��]?�E�h=��ڊ�2N�.�wGD���HV��J+,ڈR7�K�K|r�f4)�f��� ���(�]9��!�:�v(|h,�^`Ws��Fi,-�K`b
6��[{F�x�Y�bu��G�
a�O���"�ވ��
�ƕ�s�NJ���ڤI0�G�Sl%ڙ,��џ!b�����)�h��=�:rv
��5�x@4���5L`M��ϟY4p�콇�C�,����B��gY�sU�n��ȓ9a@�S�v�h��ƞ�9�nx6���x׈(?��7�f㤠��E��_��펉�#����ei������3�U�W\�(�Ɇ/7$��~\�a���Z�
�4=+�0�T���L(�q`�����n_�7�~%e�ӛ!��S�`B�qR����Xg���W�R6krsu=��^�,�&drP���	t���U�x��9s��n�ט�{��Y��Dmx��+�#V���m���B���]c��'�)�%�-�Ω�|���q]��=?��Jv슧4�A0'\�P5i��)\ή��2��9G�~�����>mm�L��ji��C'P)ȅ��Ue�̝d��L��i�2�x�ꬺ��hp����&0���Þ�I��L)5o�ϞA�����ه��r����'/ʼ]�h���Ҋ[ϑ��QG:�;҇�iR�$�M�;�S���O���"){	������%��o~wyxΨA��YR�5��f����w�$��m�)�+�j��X�Z�^F�9;"d�u�)�<G�v��\x�8��j8�{���g>��31HG�|�s\��W�;��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T���^B��0h��c��0n		 w 	 	,}L
L

�`
`
QV ��`�`$��`�`t�PaPa ��h%�h��h%�h��h%�h  ��m%�m ��o%�o �p%p(�(p%(p�0pe(p�
 r0PrT�u+lib64/ruby/2.2.0/x86_64-linux/enc/trans/escape.so000075500000027200150402105760014702 0ustar00ELF>@@'@8	@pp     �� �   888$$PPP  S�tdPPP  P�td```<<Q�tdR�td  ��GNUs�t\¥�)%P�5�>�c>��B 	BE���|�qX	-	 a , F"�(  �0  �(  U0	<__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_escaperb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	� � p    @ �	H �	X @
h �	� �� �� �� 	� �	� �	� @
 �	� �	� �	� @
� �	  �	( �	8 @
H �	� � � �      ��H��H�I H��t��H����5R �%S ��h�������h���������%- D���%% DH�=! H� H9�tH�� H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�� H��t��fD�����=� u+UH�=r H��tH�=� �Y����d����� ]������w�������1��fD���?�u�H����A�"���ff.�����?�u�"�H���"��ff.�@��H��H�=� ���H�=5 ���H�=� ���H�=� H���t�����H��H���xml_attr_quotexml_attr_content_escapexml_text_escapeamp_escape�@�@��у���@��у(D�&amp;�&lt;&gt;�&quot;�;<P���X�����`����p�������������zRx�$�0FJw�?:*3$"D���� \����
p����$����!��<HoGNU��p  �	�	H@
�	���	�	�	<@
�	�	�	 @
�	�	�	@
�	x�������
l	  ���o`��
  0`��	���o����o�o����o� ��GA$3a1�y	GA$3p1067�l	GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY��GA+GLIBCXX_ASSERTIONSescape.so-2.2.10-35.el8.x86_64.debug&i$�7zXZ�ִF!t/���4]?�E�h=��ڊ�2N�sU�-ٕ�����%�\��b���vBizjK��Kv
`Β�#V='&n�b����@�:L΋�W�BT����b�!��P�hɑ8�<?��>I.0�a�=R�V��3/�΋�
���:F�8���e<o�(��%?���J����@Kip�	bS-��c�g<���+� H�)�K%ee6��P��Z���
wώs�H��2�΃��CT��	>ԛy*���@H6kP!��2d�Y�s?
�X�O���IUg
X�D+ �q���KWԞ%;A�w��Q�\�1g�]�[�KNt��k|L���[�I�x#^ג�_n>�9���&L�Uro�l@rc��!B��usѽ���������5�&8��m\�+h�f>���K'\h�T����Ѫ��L��I]#j|��}�\�wD�Kތ,�!����pԚ��λ�J6�a����w��LZ�*z���S�fe^隄�s�T�8�f�fʄ�Ȃ2!H}�r�C�{�`Dp��t��.c[��
��̥�6 �zX�?�'v���{�~[}?�XI~g��@zܥY*��T5�D}L� �w�S	�	��̊%��b�	��&x������6���Մ�ނ�m;o�7��F���1��Db(-�0F�3����ܶ�|
���
o�S֫m������z
G����&a�Z��Zy(�Y�%��LdD�,���I�������"��z���|9fV�=���t��]��c�3�le&�~�3qړ�FQI��"�u���3���$[��ߒ����	?���<
±�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T���^B``0h��c��0n�� wl}l	l	
��	�	� �``<�����PP � � �   � �� � �� � �   (�(  ( �0 `( H
p",�"t&+lib64/ruby/2.2.0/x86_64-linux/enc/trans/korean.so000075500000737000150402105760014727 0ustar00ELF>�@��@8	@`�`� ��#�#  ����#��#  888$$@�@�@�  S�td@�@�@�  P�td������$$Q�tdR�td��#�#��GNU*�ٓX	<�����r�!�`��@ A	BE���|�qX�� a , F"�(�#�0�#�(�#U`<__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_koreanrb_register_transcoderlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	��#P�# �# �#@�#�H�#�X�# 	h�#��#��#���# 	�#���#���#���# 	��#� �#�(�#�8�# 	H�#��#�#�#��#�# �#��H��H���#H��t��H����5��#�%��#��h�������h���������%��#D���%��#DH�=��#H�z�#H9�tH�&�#H��t	�����H�=Q�#H�5J�#H)�H��H��H��?H�H�tH���#H��t��fD�����=
�#u+UH�=ҧ#H��tH�=�#�Y����d�����#]������w������H��H�=��#����H�=�#����H�=Y�#��H�=��#H�������H��H���CP949UTF-8EUC-KR	������������������������������������������	����������������������Bd	������������������������	����������������		��������������J	�������������������������������������������������������������������������������D����	����������������	��������������������������������������������������������������������������������������������������$��������������������������������	��R��LL	���������������������������d	������	����������:�	����������������|�	�����������������������������������������������������	���������������������	����B���	������������������������������������������������	���������������L	������������x	��J�	��������������������������������������������������������������	�����������������������������������������������������0	�������������������������������������������������������������	��������������������������������������������������������������������������������������������������������R,������������������������	�	���������������������������������\����	�����������������	������������Z���	�������������������������	������Dp��(�$T��	H	�P	��������	�������������������������� �		������������������������������������������������������������������������������������������������������������������������������b
����������������������������������������	�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������	��	������������������������������(	���������������������������������������������������������������������������������������������������������������������������������b$
������������������������������	j	0����������������������������������������������������������	�	|	�����������������������������������������������������������	����������	����������������������������������������������������������������������������������������������������������������0
�����������������������	����������������r
��	��
(t�|���
�����	��ز��߲߾�����������ܰ������ӡ��
 	��Ҭ��޿��������������������߭��8�	կ�������������������������������������Ӣ��z����	�����˿���������������ֵ�����������X	���������������������ֶ������ʡ��	��ӣ������������������������ʢ��������@	�������������������������ٲ���������|	���������������������������������������|�P�t�8
@	ܱ����������������������ۧ�����������������H
p	��ʣ̧��������������������
���	�ۨ�ߡ�����������߿���
$	�������������������ʤ���h����	�������������������P����	�����������к������������Ү����������׿����ܲ�����������	���ٳ���ή٢�������֩��	�����������������������������������	������������֪���ܬ��ߢξ����������ʾX 	�����лշ����˧�����������������	��м�ױ�������ʥ֫���ҽ̤����	������������������������ٴ�������������в�ڨ0	��������������������ˡ�������`�ϡ�	���������س�������������ܦ�����������ʿհ��������	�������������������t	�����������������������ϢͯϣͰ�У���ʦ����������&�	�����������٣��������������������������������h$	����ͱ����Ͳګʧ����٤���	����Ϥ�������������������	������ʨ���������.	��������������������pT	������Ӻ��������	���������������������������Ӥ��	�����������������6	��ʩϥ�������xH	���������x	���ޭ��������	ҥ�������������ַͳ>�	��������������ӥ���Ф������	��г۩ӻ�����������������Ϧ���@	���������ϧ��	����������������������F���	��̱��˨����������������������	�������������������������������X	���������������������������	��Ӧ��������פ��������������������N�	����������������������������L	����ү��Х��������������������������ҳҿ������	����������������۪������� 	��ٵ���ʹ�������˩��������������VX 	������Ҧ���������ش������ 	ץ����������� 	��ڬ�� !	ʪ������������^@!	���������ޮ�p!��	����������ݡ������͵��������ݢ��������!	���������������������ί�������������������������ʫ�����$"��	��������Ϩݣ��������Ҽج���������һ�����ΰ�����������f�"	������������������������۫������Ͷ�ڭ���#��	�����������ܳ�צ��������ߣ����#	���˪���ˢ�����ھ��ֹ�,�#�	����������������n $	����������˫������X$	ڮ��չ������$	ϩ���������ֺ���4�$	��ص�����������������������������v�$	��������������������������ٶ���P%��	���۬��ح������������Ҵܴ�������������%	������������ݤ����ͷ������ˬ���<&	����֯��ϪΩ�����������������������~\&	ܧ��������������������������˭����&	��ˮگضӧ����������������ޯ�����ۭ�����'����	���������������������������������ڰ�������D|'	�����������������ҷ������'�`��|���(��l���L��@p���8���P��D� P � � !8!h!�!�!�"#|#�#$P$�$�$�$H%�%�%T&�&'t'�'((b0(	�����ֻ�����������̥�<)	�������������ο������������Ҹ������
|)	�����������������������������ڿ���L�)	����������������������������@*	�����������������������������������*	��������������ٷ��������طα�������������˯���*	���������޻�����������̨���������Ӽ��TX+	���������������������ϫ����+�	���������������н�������������ۮ�,���	���������������ݦ���� h,�	�̼������������������������\ �,	����ҹ������������������Ϭ���������������͸���� -	������������ظ��� |-	���������������������Һ��"!�-	���������������������������d!�-��	��Ц����������̩����ߺ�!H.	�������������������!�.	����ؤ�ٸٹ��*"�.	����߮�ҵ��������������ӵl"�.	������̪������ӽ�������պ�������������"@/��	����������ջ��͹������ۯ���"�/	ͺ��������ϭ�������ߤ������ͻ����ݧ��2#�/	ְ�����ް�����������������ݨ��������Ө۰���t#T0	۱�������ײ������ө���������������������#�0	���۲����٥����������ܵ������������������ܶ���#,1	������������������������������ع���������������:$�1	��ʬ���������������٦ͼ����ٺ������������|$ 2	��Ӿ���������������������������غ�����$�2��	������������������ѡѢ������ڱ����������������%�2	��ߴ�������������ѣ��������������������B%`3	����۳�����������ͽ���ʭʮϮ���%�3	ܷ��ٻ���������ϯ��ʯҰ�׳����������%4	�����������������̫�&|4�����	������������������J&�4	������������������������������ڲ�&5	ѥܸ�Ѥ�������о��������͡ߵ�ԡβ�&\5��	�������٧�����'�5	�������������������ڳ��������п�����R'�5	���۴�����״���'L6	;��ϰ������Ϊ��Ч�����'|6	������ק�������ټ�����������(�6	��������й��Ѧ����Z(7Ӫ	̬������������ޱ���(<7	Ԣ�����������(x7	ձ����ղռ������ѧ��γ )�7	����ʰ��ϱ��������������������b)�7	��������������ֱ޲��ӫ��߯����)<8	���ϲ��ٽ��Ը���������پ��ϳ�)�8	������Ѩ�޼���(*�8����ϴ	���ߥ������˰�����������ڡ̽ѩ��j*9	�Ѫ�����������������ک������������������Ϳ�����*p9	������������������������������������*�9	��֬����զ�����������������������0+L:	׵���޳����������ݩ���������r+�:	������������������������+�:��	�������ѫ�����ԣ�ר��ӿ�����������������������+8;	߶���������Ԥ����������������������ڴ���8,�;	��ڵ�Ӭ����������������������z,<	���׶ϵ٨��ݪ͢�������,p<	۵������������ԥ��������ػ�,�<	������ש������خ���ؼ��������@-=	��̾���������������������������-P=	߻������������������������Ӷ�-�=̭��ֲ��	��������Ԧ��ս����޴��.�=t)�)8*�*�*P+�+�+`,�,�,t-�-�-@.�.�.�.8/�/�/L0�0$1�12|2�2X3�34t4�4�4T5�5�5D6t6�6�647p7�7�748�8�89h9�9D:�:�:0;�;<h<�<�<H=�=�=H>bP>	����Թ���׷��޵��������������������ճH.\?	δ��������ؽ����϶����.�?	�����������������������ܹ������.�?	֭�����է���������/P@	�������������������P/�@	��֡������������߰����������������/�@	��������������������������/A	����������������������������ԧ�0`A��	����մ����������ݫ������X0�A��	����������Ժ���޶ٿ�����ڪ����̲�0B���	Ի��̳���0`B��	��������Ϸ�������������1�B	����������������������`1�B	��������Լ�����ִ�ӷ���1C	�����������ϸ��Ѭ������޷ּ�����1TC��	ʱ��ߦ�����������ը����������Ш���������&2�C	��Ϲ�����׸�����������ѭ��Ѯ�����ε������������h2D���	�����������������׹��������إ�����2�D	ѯ����֢������������Ѱ�����������������2�D	��������ζ�����������.3\E	̴ܺ��������ߧ�����������ˣ������p3�E	дͣ�������׺���������������������ѱ˱Ѳ�3F	˲�����������ߨ���������Ӹ���������3hF	ʲܻ������������������ئ����64�F��	����������׻�תx4G	���������������ͤ��ۡ�����4LG	���������������٩�4�G	���������������Ԩ����������������������>5�G	����ڶ����������������54H�	�����Խ����ԩ�����5tH	��٪ؾܭ��������̡Ϻ6�H	����������ϻӭ�����F6�H	�������������6$I	Щ����׼�������6TI	ѳ�������������ܡ�����ا7�I	�۶���ͥ��ب��Ѵ����N7�I	���������������7J��ѵ	Ѷѷ�����������������������Ѹ���70J	������������������Ԫ��������Ծ8�J���	ܼҶ��Ρ���������������V8�J��	���������������������������ԫʳͦ���8$K��	��������������������ϼ�������8�K	�������������������Ъ9�K	�Ы���ء����ܽ�����������Ӯ��������^9L	����������آݬ�ֽ��9xL	�������������������е������9�L	������ѹߩ���η�������$:M���	�����������Կ��f:DM	����ӯ����������ֳݭ�:|M	վ����������ڷ�:�M	���أ�����������������������,;�M	��������˳��ͧЬn;,NѺ	�����������ڢڣҡ���������������۷�������׫���������;\N	���������̿��թ�������������˴�̵Ͻ�;�N	������������˵�������ѻ�������4<<O	�����������Ӱ�������������֣��v<�O	���������������������׬�����<�O	�����������������̶ͨ���ͩ�<8P	������������տ<=�P	ݮ���~=�P	�θ�������������������=�P	�Ѽ��˶ڸ��־��������������>Q	�������ֿ��������������������D>`Q�?�?H@�@�@AXA�ABXB�B�BCLC�CD�D�DTE�E�E`F�FGDG�G�G,HlH�H�HILIxI�I�I(J�J�JK|K�KLpL�L�L<MtM�M�M$NTN�N4O�O�O0P�P�P�PQXQ�Qb�Q���	���ѽϾ�ұ�����Ѿ�������>�R	�����޽��ڤ֤��������������>S	����������ѿ����������̷۸���������
?XS	���������ˤ��������������L?�S	�������������������������ޡ�?T	���ݯݰ˷������������������?LT۹	̮����ݱد�������������������@�T��	ޢ�����������������������Ͽ�T@�T	�����������������˸��ۺ����������@@Uݲ	���������������������@�U	��������ݳ���߷���������������ۻ����������A�U	��������ʴ����������������\APV	�����ʵ����٫���������������A�V��	�����������������A�V	�������������ݴ�ذ��"B$W	��ι����ж΢�������������ޣ������dB`W	��Ԭ����������ؿ���ժ�B�W	���������������Э���B�W	�����ߪۼ��������*C,X��	٬��������������֥���lCdX	١����߸�׭���������������C�X	����������������������C�X	��ڹ�˹������߱������2D0Y	������������������������ΫtDtY	���������ܢ��յա�D�Y	��������������������D�Y	ڥ۽�������:E0Z	��ӱ�������������|EXZ��	������ޤ���E�Z	�����������������F�Z	����٭����բBF�Z	��������������F[	�������������FD[��	���������ʶ������������߹��Ҥ������Gp[	�ٱʷ����Ӳ���������JG�[	�֮��������������ޥ������գ��G\	����������������׮���G\\	˺���������H�\	�������̸Ю����̯ԭ��������RH�\κ	���������H]��	��ݵͪ���������������������۾������ʸ�����H0]	����������������������������������I�]	��Σ����������ͫ������������Τަ�����ZI�]	����������������������������������������I\^������	�ں������ۿ����˻�������׽�����I�^	��������������ާ��̹���� J$_�	ܨ����������bJl_	��ͬ�J�_	�������������������������J�_	���������ݶ��޸������λ�������������ި�����(K�_���������	�ʹ����޹�������������ݷ�Ԯ��ݸ����jKd`	��������������K�`	�������Яݹ���Ka	������������ݺ�0L0a	��ۢ�ʺ��������Υ��ԯrL`a	������������L�a	����԰�������������L�a	������������8Mb��	��������������ʻ��zM0b	�����������������������֦ܾ����������������Mlb	�������������M�b	����ո��ܩ�ܪ�����@Nc	��������ʼ������̦ڻ�����N@cSPS�S�SDT�T�T8U�U�UHV�V�VWXW�W�W$X\X�X�X(YlY�Y�Y(ZPZ�Z�Z�Z[<[h[�[\T\�\�\](]�]�]T^�^_d_�_�_�_\`�`�`(aXa�a�a�a(bdb�bc8c�cb�c�����Ա	���������������Բ������������������֧�����а������N�d	����������Φ����Գӹ�����������̺���������������ס����O e���������	��رܫդ����������������������HO�e	��������ݻά��Դ�Of	������ީ��ӳ�ODf	��������������ٮլ������߫Ppf	���������������ۣ����PP�f��	�����������������ݼ����������P�f	��̢��߼��з�����PTg˥	����������ۤ����Q�g��	���������ٯ����������XQ�g	����������˼�Qh	�������������������������Q,h	��֨ΧԵ��Ӵ�����Rxh	������������������`R�h	��������ׯ��R�h	�����������Ri	���������&S4i	�hS\iڦ	����������������˦������б��������Spi	����������μ��ܣ�S�i	ݽ����������.T�i��	��ݾװ��˽�����������������������Զ�����pT$j	����������̰ͭ������������������T�j����	��������������������������������ڧ�����������T�j��	���������������߬��ܤ�6Ulk	��������ުڼ�����������xU�k	��������������U�k	������Է��������U(l�������	���������������������������޺>VXl	Ψ���������׾��������V�l	��߽���V�l	����ޫ��������������������Wm	������������ܿνFW\m	����������������W�m	����������ة������������W�m	��������ʽݿ�����խ��Xn	޾�������������NXDn��	�����������������������Xxn	�����X�n	������ۥY�n	��ע���СVY�n	����ۦ������ت�����Yo	����������YPo	��������Zto	�������������^Z�o	˾ܮ��Z�o	�������ٰ���Z�o	���������$[p	̻��������f[(p	������[Pp	ͮ�����������[lp	�ն,\�p	�������n\�p	�������������ث���\�p	�������̣���������ڽ�\q	�ܯ����ެ4]@q	����������������v]hq	ף������]�qe�ef<fhf�f�fLg�g�g�g$hph�h�hi,iTihi�i�ij�j�jdk�k�k lPl�l�lmTm�m�mn<npn�n�n�noHolo�o�o�o�o pHpdp�p�p�p�p8q`q�q�q�]�q����	��������������������������������������������������������<^�r��	����������������������~^Ds����	�����������������������������������������������������^�s	������������������������������������������_t��	��������������������������������D_ht	�����������������������������������������_�t	���������������������_u����	������������������������
`Tu����	����������������������L`�u����	���������������������������������������������������`�u	�������������`\v��	������������������������������a�v	������������������������Ta�v	�����������������������aw��	�������������������aPw��	����������������������������b�w<s|s�s`t�tuLu�u�uTv|v�vwHw�w�w\b�w����	���������������b$x	�����������������������������bXx��	����������������������������������������������������"c�x	����������������������dcy	���������������������������������������������cXy����	�������������������������c�y��	����������������������*dz	��������������������������ldHz	�������������������������d�z	�����������������d�z	������������������������������������2e�z	��������������������������������������������������������teT{����	�����������������e�{	�������������������������������������e|����	��������������������:fd|	����������������������������������|f�|	�����������������f�|	������������������g(}��	����������������Bg\}��	�������������������������������g�}	�������������������������������g�}����	��������������������������h,~	����������������������������Jhx~��	�����������������h�~	���������������h�~	������i 	��������������Ri<	���������ih����	�������������������i�	����������������������������j���	������������������������������������������Zj�	�������������������jt�����	�������������������������������������j����	�������������������������� k�	����������bkP�����	���������������������������������kt�	�����������ḱ��	��������������������������������(l�	����������������������������jlD�	�����������������������������������������������������l������	�����������l���	����������������������������������������0m0�	������������������������������rm��	�����������m���	�����������������������������������m�	������������������������8n\�	����������������zn����	�����������������n̄��	�������������������������������������������������������n�����	����������������@o��	�����������������������������������������������o����	���������������������������o$�	����������������pl���	����������������Hp������	�������������������������������pІ	�����������������p$���	������������������qT�	������������������������������������������������Pq����	�������������������q��	���������������������q4�	����������������rl�����	����������Xr��	�����rȈ	�����������������r�Px�xyPy�yz@z�z�z�zL{�{|\|�|�| }T}�}�}$~p~�~�~4`���l����H�l�ā�<�����(���؃��T���Ą��x����d���Ȇ�L����,�d�����؈�b�	��s�	������������`s0�	���������������������������������������sX�����	�������������������������������������s����	��������������������������������������������&t���	����������������������������������ht��	�����������������������������������t؋	�����������������������������t,���	������������������������������������.ut�	����������������������������puЌ	���������������������������������u�	�������������������������������uh���	��������������������������6v��	��������������������xv��	�������v4���	�������������������������vP�	����������������>w��	�����������������wĎ��	���������w�	��������������x�����	������������������������FxD�	�������������������������������������������������������x����	�����������������������������������������x�	��������������������������������������������������������yl�����	����������������������������������������������Ny�����	���������������������������������y`���	�������������������������������������y������	����������������������������������z�	��������������������������������������Vzp���	�����������������������������������������������z̒	���������������������������������������������������������z<�����	��������������������{������	������������������������������������^{����	���������������������{\�����	�����������������������������{��	��������������������������$|���	��������������������f|,�	�����������������������|h�	�����������������|������	��������������¡¢£¤¥¦§¨©ª«¬­®¯°±²,}ԕ³	´µ¶·¸¹º»n}P�	¼½¾¿�������������}��	���������}����	����������������������4~�	������������v~ �	�����������������������~H�	�����~��	��������<��	������������������������áâã~��	äåæçèéêëìíîïðñò��	óôõö÷øùúûüýþÿ�h�	����������������D���	�����������������������������	����������������Ȁ$�	��������������������
�T�	��������������������L���	������������������ę	ġĢģĤĥĦħĨĩĪīĬĭĮЁ�	įİıIJijĴĵĶķĸĹĺĻļĽ�P�	ľĿ����������������T�������	��������������������������������ؚ	������������������������؂,���	�����������l�	�������������������\���(�P����x�Ћ$�l�Ȍ�`����,�H�������<����d��X����h�Ē4����T����$�`���̕H�|���ؖ�@�|������`���ؘ�L������H���К$�d���ěb̛�	����������؜	šŢţŤťŦŧŨũŪūŬŭŮ��	ůŰűŲųŴŵŶŷ"�T�ŸŹ	źŻżŽžſ����������������������d���	�������������������	������������������������������	������������������������*�`���	������l���	�����������������	���ơ���Ƣƣ	ƤƥƦƧƨƩƪƫƬƭƮƯưƱ2��Ʋ	ƳƴƵƶƷƸƹƺƻƼƽƾƿt�h���	��������������������������������������������������	����������$���	����������������������������������:�D�	���������������������|���	�ǡǢ���ǣ	ǤǥǦǧǨǩǪǫǬǭ��Ǯ	ǯǰDZDzdzǴǵB�@�	ǶǷǸǹǺǻǼǽǾǿ���p�	���������������ƈ����	�������������������������������������ܡ	��������������J�8�	������������������������������������d����	���������ȡȢȣȤȥΉ��Ȧ	ȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵ��	ȶȷȸȹȺȻȼȽȾȿ������R�X�	������������������������������������	����������������������������֊�	����������������������������������������8�	���������Z����L�����X�������`����<������8�h���ԡ0�\����P����0���Ĥ��̤����������έ�Ти�����������������������������������������������������ҢңҧҨҩҪҫҭҲҾ��������������������������������bX�����������������������������������������������������եիծָ����������ܥݥ������߳�����������������������������bd���������������������������������������������������������������������������������������������������bp������������������������������������������������������������������������������������������b|�������������������������	���	������������������������������������������������������������������������������������������������������������������������������bȩ��������������������������������������������������������������	��Ԫ	�������������`�\�h�t�����̪X���B���\����������\��<��DT\�	h4)T?�R�d�rx�МP�����ȫЫȌث 、。·‥…¨〃­―∥\∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬��X�⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®	�ܭ!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[₩]^_`abcdefghijklmnopqrstuvwxyz{|} ̄���ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ����ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ	ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω��─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊	ߎ0�㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆	?�P�ÆÐªĦ	IJĿŁØŒºÞŦŊ㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞����æđðħıijĸŀłøœßþŧŋʼn㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄���ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん	����ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ	_���АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ	абвгдеёжзийклмнопрстуфхцчшщъыьэюя��`��가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆����괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸���깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙����끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝���뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥����덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸���땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗����래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩���륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼����묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗��$�벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤����빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤��,�샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭����숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰��4�쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎����에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨��<�웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊����점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓��D�징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻����찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층��L�치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼����큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜��T�퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁����퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠��\�혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝����伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕��d�匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢����瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械��l�棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜����科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾��t�區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴����鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣��|�朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉���納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶����丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃���棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅����蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣���煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼����遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬���立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅����蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�� �汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑����發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖��(�碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦����孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥��0�脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索���傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署��8胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬���聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁��@戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧���嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁��H沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額���	櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬��P旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒���簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳��X烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療���窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓��`運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜���濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼��h議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄���立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長��p障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱���煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖��x靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫���踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只���咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯��鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策��� 責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢��"椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃���#贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託��%鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑���&阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃��(品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航���)行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型��$+形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵���,禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆��,.爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰���/ԭ����(�H�������X�p�x�����������������$���,���4���<���D���L���T���\���d���l���t���|������������� ���(��0�8�@�	H�P�X�`�h�p�x�� "�#%�&(�)+�,$.�/,1�41�����A�B���C�D���������E�F�G�H�I�����������������J�����������K�L���M�N�O���P�Q�R�S�T�U�V�����W�������X�Y�Z�a�b�c�����d�e���f�g�hb�2���i�j�k�l�m�n�o�p�q�r���s���t�u�v�w�x�y���z������������������������������������������������������������������������������������b�3��������������������������������������������������������������������������������������������������������������������������������b�4��������������������������������������������������������������������������������������������������������������������������������b�5�����������������������������������������A�B�C�D���E�F�G���H�I�J���K�L�M�N�O�P�Q�R���S�T�����U�V�W�X�Y�Z�����a�b���c�d�e���f�g�hb�6�i�j�k�l�����m���n���o�p�q�r�s�t���u�v�w���x�y�z��������������������������������������������������������������������������������b�7��������������������������������������������������������������������������������������������������������������������������������b�8���������������������������������������������������������������������������������������������������������������������A�B���C�D��b:�����E�F�G�H�I�J�����K���L���M�N�O�P�Q�R���S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�����t�u���v�w�����x���y�z������b;��������������������������������������������������������������������������������������������������������������������������������b<��������������������������������������������������������������������������������������������������������������������������������b$=�����������������������������������������������������������������������������A�B���C�D���E���F�G�H�I�J�K���L�M�N���O�P�Q���R�S�Tb0>�U�V�W�X�Y�Z�a�����b�c�d�e���f�g���h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z��������������������������������������������������������b<?��������������������������������������������������������������������������������������������������������������������������������bH@�������������������������������������������������������������������������������������������������������������������������������AbTA���B�C�D�E�F�G�������H���I�����J�K�L�M�N���O�P�Q�R�S�T�U���V�W�X�Y�Z�a�b�c�d�e�f�����g�h�i�j�k�l�����m�n���o�p�q���r�s�t�u�v�w�xb`B�3�4�5�6�7�8�9;<=(>4?@@LAXBdC\blC�����y�z������������������������������������������������������������������������������������������������������������������������b�C��������������������������������������������������������������������������������������������������������������������������������b�D���������������������������������������������������������������������������A�B�C�����D�����������E���F�������G�H���I�J�K���L�M�Nb�E�O�P�Q�R�����S�������T�U�V�W�X�Y�����Z�a���b�c�d���e�f�g�h�i�j�k���l�m�n�o���p�q�r�s�t�u�v�w�x�y�z������������������������������b�F��������������������������������������������������������������������������������������������������������������������������������b�G��������������������������������������������������������������������������������������������������������������������������������b�H�������������������������������������������������������������A�B�C�D�E�F�G�H�I�J���K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�gbJ�h�i�j�k�l�m�n�o�p�q�r�s���t�u�v���w�x�y���z������������������������������������������������������������������������������������bK��������������������������������������������������������������������������������������������������������������������������������bL�����������������������������������������������������������������������������������������������A�B�C�D�E�����F�G�H�I�J�K���L�M�Nb(M�O�P�Q�R�����S�T�U���V�W�X�Y�Z�a�����b�c���d�e�f�������g�h�i�j�k�����l���m�����n�o�p���q���r�s�t���u�v�w���x�y�z����������������b4N��������������������������������������������������������������������������������������������������������������������������������b@O��������������������������������������������������������������������������������������������������������������������������������bLP�����������������������������������������������������������������������������A���B���C���D�E���F�����G�H���I�J�K���L�M�N�O�P�Q�RbXQ�����S�������T�U�V�W�X�Y���Z�a�b���c�d�e���f�g�h�i�j�k�l�m�n�o�p�����q�r�s�t�u�v���w�x�y���z������������������������������������bdR��������������������������������������������������������������������������������������������������������������������������������bpS��������������������������������������������������������������������������������������������������������������������������������b|T�����������A�B�C�D�E�F�G�H�I�J�K�����L�M���N�O�P���Q�R�S�T�U�V�W�����X���Y���Z�a�b�c�d�e���f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�xb�U���y�z��������������������������������������������������������������������������������������������������������������������������b�V��������������������������������������������������������������������������������������������������������������������������������b�W�������������������������������������������������������������A�B�C�D�E�F�����G���������H�I�J�K�L�����M�N���O�P�Q���R�S�T�U�V�W�Xb�X�����Y�������Z�a�b�c�d�������e�f���g�h�i���j�k�l�m�n�o�p�����q�������r�s�t�u�v�w�x�y�z������������������������������������������b�Y��������������������������������������������������������������������������������������������������������������������������������b�Z��������������������������������������������������������������������������������������������������������������������������������b�[�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�����Q�R���S�T�U���V�W�X�Y�Z�a�b�c�d�e�f�g���h�i�j�k�l�m���n�o�p�q�r�s�t���u�v�w�x�y�z����������b�\��������������������������������������������������������������������������������������������������������������������������������b�]��������������������������������������������������������������������������������������������������������������������������������b�^�������A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q���R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r���s�t�u���v�w�x���y�z����������b`��������������������������������������������������������������������������������������������������������������������������������ba��������������������������������������������������������������������������������������������������������������������������������bb���������������������������������������������������������������A���B�C�D�E�F�G�H�����I�������J�K�L�M�N�O�����P�Q���R�S�T�U�V�W�Xb$c�Y�Z�a�b�c�d�e���f���g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z��������������������������������������������������������������������b0d��������������������������������������������������������������������������������������������������������������������������������b<e��������������������������������������������������������������������������������������������������������������������������������bHf�����������A�B�C�D�E�F�G�H���I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�g�h���i�j�k�l�m�n�o���p�q�r���s�t�u���v�w�x�y�z����bTg��������������������������������������������������������������������������������������������������������������������������������b`h��������������������������������������������������������������������������������������������������������������������������������bli�����������������������������������������������������A�B���C�D�E���F�G�H�I�J�K�L�����M���N���O�P�Q�R�S�T�����U�V���W�X�Y���Z�a�bbxj�c�d�e�f�����g���h�����i�j�����k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z������������������������������������������������������������������b�k��������������������������������������������������������������������������������������������������������������������������������b�l��������������������������������������������������������������������������������������������������������������������������������b�m���������������A�����B���C�����D�E�F�G�������H�I���J�K�L���M�N�O�P�Q�R�S�����T�������U�V�W�X�Y�Z�����a�b���c�d�e���f�g�h�i�j�k�lb�n�m�n�o�������p���q�r�s�t���u�v�w�x�y�z������������������������������������������������������������������������������������������b�o��������������������������������������������������������������������������������������������������������������������������������b�p���������������������������������������������������������������������������������A���B���C�D�E�F�G�H�I�J�������K���L�M���������Nb�q�O�P�Q�R�����S���T���U�V�W���X�����Y�Z�a���b�c�d���e�f�g�h�i�j�k�l���m���n�o�p�q�r�s�t�u���v�w�x�y�z����������������������������b�r��������������������������������������������������������������������������������������������������������������������������������b�s��������������������������������������������������������������������������������������������������������������������������������b�t�������A�B�C�D�E�����F�������G���H���I�J�����������K�L�����������M�N�O�P�����Q���R���S�T�U���V�W�����X�Y���Z�a�b���c�d�e�f�g�h�ib�u�����j�������k�l�m���n�o�����p�q���r�s�t�u�v�w�x�y�z����������������������������������������������������������������������������bw��������������������������������������������������������������������������������������������������������������������������������bx�����������������������������������������������������������������������������������������������������������������������������A�Bb y�C�D�E�F�����G���H���I�J�K�L�M�N���O�P�Q���R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f���g�h�i�j�k�l�m���n�o�p�q�r�s�t�u�v�w�x�y�z������������b,z��������������������������������������������������������������������������������������������������������������������������������b8{��������������������������������������������������������������������������������������������������������������������������������bD|�������������������������������������A�B�����C�D���E�F�G���H�I�J�K�L�M�N�O�P�Q�R�S���T�U�V�W�X�Y���Z�a�b���c�d�e���f�g�h�i�j�k�lbP}���m�n���o���p�q�r�s�t�u�����v�w���x�y�z����������������������������������������������������������������������������������������b\~��������������������������������������������������������������������������������������������������������������������������������bh�����������������������������������������������������������������������������������������������������������������A�B�C�D�E�F�G�Hbt��I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�����Y�Z���a�b�����c�d�e�f�g�h�i���j�k�������l�m�n�o�p�q���r�s�t�u�v�w�x�y�z��������������������b����������������������������������������������������������������������������������������������������������������������������������b����������������������������������������������������������������������������������������������������������������������������������b���������A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q���R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r���s�t�u�v�w�x�y�z��������������b����������������������������������������������������������������������������������������������������������������������������������b���D�E�F�G�H�IKL M,N8ODPPQ\RhStT�U�V�W�X�Y�Z�[�\�]�^�_abc(d4e@fLgXhdipj|k�l�m�n�o�p�q�r�s�t�uwxy$z0{<|H}T~`l�x�����������b����������������������������������������������������������������������������������������������������������������������������������bȇ�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q���R�S�T�U�V�W���X�Y�Z���a�b�c���d�e�f�g�h�i�j�����k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z������������bԈ��������������������������������������������������������������������������������������������������������������������������������b���������������������������������������������������������������������������������������������������������������������������������b������������������������������������������������������������������������������������������������������A�B�C�D���E�����F�G���H�I�Jb�����K�L�M�N�O�P�Q�����R�������S�T�U�V�W�X�����Y�Z���a�b�c���d�e�f�g�h�i�j�����k�������l�m�n�o�p�q���r�s�t���u�v�w���x�y�z��������b���������������������������������������������������������������������������������������������������������������������������������b���������������������������������������������������������������������������������������������������������������������������������b��������������������������������������������������������������������������A�B�C�D�����E���F���G���H�����I���J�K�L�M�N�O�P�Q�R�S�Tb(��U�V�W�X�Y�Z�a�b���c�d�e�f�g�h�i�����j�k���l�m�n���o�p�q�r�s�t�u���v�w�x�y���z��������������������������������������������������b4���������������������������������������������������������������������������������������������������������������������������������b@���������������������������������������������������������������������������������������������������������������������������������bL����������������������������������A�B�C�������D�E���F�G�H���I�J�K�L�M�N�O�����P�Q�����R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�mbX��n�o�p�q�r���s�t�u�v�w�x�y�z����������������������������������������������������������������������������������������������������bd���������������������������������������������������������������������������������������������������������������������������������bp��������������������������������������������������������A���B�C�����D���E�F�G�H�I�����J�K�L���M�N�O�P�Q�R�����S�T���U�V�W�X�Y�Z�ab|��b�c�d�e�f�g�h�i���j�k�l�m�n�o�p���q�r�s�t�u�v�w�x�y�z��������������������������������������������������������������������������b����������������������������������������������������������������������������������������������������������������������������������b���������������������������������������������������������������������������������������A�B�C�D�E�F�G�H�I�J�K�L�M�N���O�P�Q���R�S�Tb���U�V�W�X�Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z����������������������������������������������������������������b����������������������������������������������������������������������������������������������������������������������������������b����������������������������������������������������������������������������������������������������������������������������������bĝ���������������������������������������������A�����B�C�D���E�F�G���H�I�J�K�L�M�N�O���P�Q�R�S�T�U�V�W�X�Y�����Z�a�����b���������cbО�d�e�f�g���������������h���i���j�����k�l���m�n�o���p�q�r�s�t�u�v�����w���x���y�z������������������������������������������������bܟ��������������������������������������������������������������������������������������������������������������������������������b���������������������������������������������������������������������������������������������������������������������������������b����������������������������������������������������������������������������������A���B�C�D�E�F�G�����H�I���J�K�L�������M�N�O�P�Qb������R���S���T�U�V�W�X�Y�����Z�a���b�c�d���e�f�g�h�i�j�k�����l�m�����n�o�p�q�r�s�����t�u���v�w�x���y�z��������������������������b���������������������������������������������������������������������������������������������������������������������������������b���������������������������������������������������������������������������������������������������������������������������������b$������������������������������������������������������������������������������������������������������������������A�B�C�D�����E��b0������F�G�H�I�J�K�����L�M���N���O���P�Q�R�S�T�U�V���W�X�Y�Z���a�b�c�d�e�f���g�h�i���j�k�l���m�n�o�p�q�r�s�t�u�v�w�x�y�z����������b<���������������������������������������������������������������������������������������������������������������������������������bH���������������������������������������������������������������������������������������������������������������������������������bT����������������������������������������������������������������������������A�B�C���D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�����W�Xb`��Y�Z�a�b���c�d�e���f�g�h���i�j�k�l�m�n�o�����p���q���r�s�t�u�v�w�����x�y���z����������������������������������������������������bl����������������������������������A���B�C�D�E�F�G���H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z���a�b�c�d�e�f�g���h�i�j�k�l�m�n�o�p�q�rbx��s�t�u�v�w�x�y�z�����������������������������������������������������������������������������������A�B�C���D�E�F�G�H�I�J���K�L�Mb���N�O�P�Q�R�S�T�U�����V�W���X�Y�Z���a�b�c�d�e�f�g�����h���i���j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z����������������������������������b��������������������������������������������¡¢����£¤��¥¦�A�B§�C¨�D©�E�Fª�G�H�I�J«¬�K­®¯�L�M�N�O�P�Q°±�R�S²�T�U�Vb��³�W�X�Y�Z�a�b�c´µ�d¶·¸�e�f�g�h�i�j¹�k�l�mº�n�o�p�q�r�s�t�u�v�w�x�y�z������»��������������������������������������������b�����������������A�B�C�D�E¼½�F�G¾�H�I�J¿�K�L�M�N�O�P�Q���R�������S�T�U�V�W�X���Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r���s�tb���u�v�w�x���y�z�������������������������������������������������������������������A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�����U�Vb�����W�X�Y���Z�a�b�c�d�e�f�����g���h���i���j�k�l�m�����n�o�p�q�r�s���t�u�v�w�x�y�z������������������������������������������������b̴�����������������������A�B�C�D�E���F�G�H���I�J�K���L�M�N�O�P�Q�R�����S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�vbص�w���x�y�z���������������������������������������������������������������������������������A�B�C�D�E�F�G�H�I�J�K�����L�M�N�O�P�Qb��R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s���t�u�v�w�x�y�z��������������������������������������������������������b������������A�B�C�D�E�F�G�H�I�J�K�L�M�N�O���P�Q�R�S�T�U�V�W�X�Y�Z�a�b�c�d���e�f���g���h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z������b����������������������������������������������������������������������������A�B����C�D��E��F��G�H�I�J�K�L�M���N�áâã�Ob��P�Q�R�Säå�T�Uæ�V�W�Xç�Y�Z�a�b�c�d�eèé�fêëì�g�h�i�j�k�lí�m�n�oî�pï�qð�r�s�t�u�v�w�xñ�y�z����ò��������������������b������������������������������������������A�B�C�Dóô�E�Fõ�G�H�Iö�J�K�L�M�N�O�P÷ø�Qùúû�R�S�T�U�V�Wüý�X�Yþ�Z�a�bÿ�c�d�eb ��f�g�h�i���j���k���l�m�n�o�p�q���r�s�t���u�v�w�x�y�z�����������������������������������������������������������������������A�Bb,��C���D�E�F�G�H�I�����J�K���L�M�N���O�P�Q�R�S�T�U�����V���W���X�Y�Z�a�b�c���d�e�f���g�h�i���j�k�l�m�n�o�p�q�r�s�t�u���v�w�x�y�z��b8��������������������������������������������������������������������A�B�C���D�E�F�G�H�I�J�����K���L���M�N�O�P�Q�R���S�T�U�V�W�X�YbD��Z�a�b�c�d�e�f�g���h�i�j�k�l�m�n�o�p�q�r�����s�t���u�v�w���x�y�z����������������������������������������������������������������bP��������������A�B�C�D�E�F���G�H�I���J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f���g�h�i���j�k�l���m�n�o�p�q�r�s�����t���u���v�wb\��x�y�z�����������������������������������������������������������������������������A�B�C�D���E��F��G�H�I�J�K�L�M�N�O�Pbh��Q�R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�m�nġĢ�o�pģ�q�rĤĥĦ�s�t�u�v�w�xħĨ�yĩ�zĪ������������īĬ����ĭ������Į������bt���������įİ��ı��IJ������������ijĴ����ĵ������Ķ���A�B�C�D�E�Fķĸ�GĹĺĻ�H�I�J�K�L�MļĽ�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�a�b�c�d�eb���fľ�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z����������������������������Ŀ����������������������������������������������������b�������A�B���C�D�E���F�G�H�I�J�K�L�����M���N���O�P�Q�R�S�T���U�V�W���X�Y�Z���a�b�c�d�e�f�g�����h�������i�j�k�l�m�n���o�p�q�r�s�t�ub���v�w�x�y�z���������������������������������������������������������������������������������A�B�C�����D�E���F�G�H���I�J�K�L�M�N�Ob�����P�Q�R�S���T�U�V�W�X�Y���Z�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s���t�u�v�w�x�y���z��������������������������������������������b���������������������������A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�����U�V���W�X�Y���Z�a�b�c�d�e�f�����g���h���i�j�k�l�m�n��o�p�qb��̈؉������ �,�8�D�P�\�h�t�������������Ȟԟ�������(�4�@�L�X�d�p�|�����������Ĵеܶ�����$�0�<�H�T�`�l�x�������������b����r�s�t��u�v�w�x�y�z��������������������������������������������������������������������A�B�C�D�E�F���G�H��I�J�K��L�M�Nb���O�P�Q�RšŢ�Sţ�TŤ�U�V�W�X�Y�Zť�a�b�cŦ�d�e�fŧ�g�h�i�j�k�l�mŨ�n�o�p�q�r�s�t�u�v�w�xũŪ�y�zū������Ŭ��������������ŭŮ����b����ů���������������������������������������A�B�C�D�E�F�G�H�I�J�K�L�M�N�OŰű�P�QŲ�R�S�Tų�U�V�W�X�Y�Z�aŴŵ�bŶ�cŷ�d�e�f�g�h�ib��ŸŹ�j�kź�l�m�nŻż�o�p�q�r�s�tŽž�uſ���v�w�x�y�z��������������������������������������������������������������������������b�������������A�B�C�D�E�F�G�H���I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�����q�r���s�t�u���v���w�x�y�z��b����������������������������������������������������������������������������������������������A�B�C�D�E�F�G�H�I�J�K�L�M�N���O�P�Qb��R�S�T�U���V�W�X���Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�����v�w���x�y�z������������������������������������������������b����������������������������������A�B�C�D�E�F�G�H���I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�g�h�i���j�k�l���m�n�o�p�q�r�sb(��t�u�v�w�x�y�z�����������������������������������������������������������������������A�B���C�D��E�F�G��H�I�J�K�L�M�N���O�b4��P��Q�R�S�T�U�V��W�X�Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o��p�q�r�s�t�u�vơ�w�x�y�z����������������������������������������������b@�Ƣƣ����Ƥ������ƥ���������A�B�CƦƧ�D�E�Fƨ�G�H�I�J�K�LƩ�M�N�Oƪ�P�Q�Rƫ�S�T�U�V�W�X�YƬ�Z�a�b�cƭ�d�e�f�g�h�iƮƯ�j�kư�l�mƱbL�Ʋ�nƳ�o�p�q�r�sƴƵ�tƶ�u�v�w�x�y�z����Ʒ������Ƹ������ƹ��������������ƺƻ��������������������Ƽƽ����ƾ������ƿ�����A�B�C�D�EbX����F���G���H�I�J�K�L�M�������N���O�P�Q���R���S�T�U�V�W�����X�������Y�Z�a���b�c�����d�e���f�g�h���i�j�k�l�m�n�o�����p�������q�rbd��s�t�u�v�����w�x�y�z�����������������������������������������������������������������A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�����S�Tbp����U�V�W���X�Y�Z�a�b�c�d�����e�������f�g�h�i�j�k�����l�m���n�o�p���q�r�s�t�u�v�w�����x���y���z����������������������������������b|������������������������������������������������A���B�C�D�E�F�G�H�I��J��K�L�M�N�O�P�Q�R���S�T��U�V�W��X�Y�Z�a�b�c�d���e�b���f��g�h�i�j�k�lǡ�m�n�o�p�q�r�s�t�u�v�w�x�y�z������������Ǣ�����������������������������������������������������A�B�C�D�E�F�G�Hb��ǣ�I�J�KǤ�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�g�hǥ�i�j�kǦ�l�m�nǧ�o�p�q�r�s�t�u�vǨ�wǩ�x�y�z����������Ǫǫ����Ǭ����ǭb��Ǯ��ǯ����������ǰDZ��Dz��dz������������Ǵ�������������������A�B�C�D�E�F�G�H�I�J�Kǵ�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�a�b�c�d�e�f�gb���h�i�j�k�l�m�n�o�p�q�r�sǶ�t�u�vǷ�w�x�yǸ�z������������ǹ����Ǻ����������������ǻ������Ǽ������ǽ��������������Ǿ����ǿ����A�Bb���C�D�E�F��G�H�I���J�K�L���M�N�O�P�Q�R�S�����T���U�V�W�X�Y�Z�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z����������������b���������������������������������������������������������������������������A���B�C�����D���E���F�G�H�I�J�K�����L�M���N�O�P���Q�R�Sb���T�U�V�W�����X�������Y�Z�a�b�c�d���e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x���y�z������������������������������������������������b�����������������������A�B���C�D�E���F���G�H�I�J�K�����L���M���N�O�P�Q�R�S�����T�U���V�W�X���Y�Z�a�b�c�d�e�����f���g���h�i�j�k�l�mb������n�o��p�q�r��s�t�u�v�w�x�y���z���‚ƒ„…†�‡ˆ‰�Š‹ŒȡŽ‘’“”Ȣ•–—˜™š›œžȣȤŸ ȥ�A�B�Cb��Ȧ�D�E�F�Gȧ�H�IȨȩ�JȪ�Kȫ�L�M�NȬ�O�PȭȮ�Q�Rȯ�S�T�UȰ�V�W�X�Y�Z�a�b�c�d�eȱ�fȲ�g�h�i�j�k�lȳȴ�m�nȵ�o�p�q�r�s�t�u�v�w�x�yb��zÁÂȶÃȷÄÅÆÇÈÉȸȹÊËȺÌÍÎȻÏÐÑÒÓÔÕÖȼ×ȽØȾÙÚÛÜÝÞȿßà�A��B�C�D��E�F�G�H�I�J�K�L���M���N�O�P�Qb��R�S�T�U�����V�W���X�Y�Z���a�b�c�d���e�f���g�h���i���j�k�l�m�n�o���p�q�r���s�t�u���v�w�x�y�zāĂ��㥹Ć��ćĈĉĊċČ����čĎb���ďĐđ��ĒēĔĕĖėĘęĚěĜĝ��ĞğĠ�A�B�C�����D�E���F�G�H���I�J�K�L�M�N�O�����P���Q���R�S�T�U�V�W�����X�Y���Z�a�b���c�d�eb$��f�g�h�i���j�k���l���m�n�o�p�q�r�����s�t���u���������v�w�x�y�zŁ����ł��Ń��ńŅņ��Ňň��ʼnŊŋ��ŌōŎ��ŏŐőŒœŔŕ���Ŗŗb0�Ř�řŚśŜŝŞ��şŠ��A�B�C��D�E�F�G�H�I�J���K��L��M�N�O�P�Q�R	��<����������� �,�8�D�P�\�h�t��������������������������(�4�������\��<��DT\�	h4)T?�R�d�r�C����`�����ȫЫȌh�갂갃갅갆갋갌갍갎갏갘갞갟갡갢갣갥갦갧갨갩갪갫갮갲갳갴갵갶갷갺갻갽갾갿걁걂걃걄걅걆걇걈걉걊걌걎걏걐걑걒걓걕걖걗걙걚걛걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯걲걳걵걶걹걻걼걽걾걿겂겇겈겍겎겏겑겒겓겕겖겗겘겙겚겛겞겢겣겤겥겦겧겫겭겮겱겲겳겴겵겶겷겺겾겿곀곂곃곅곆곇곉곊곋곍곎곏곐곑곒곓곔곖곘곙곚곛곜곝곞곟곢곣곥곦곩곫곭곮곲곴곷곸곹곺곻곾곿괁괂괃괅괇괈괉괊괋괎괐괒괓’��괔괕괖괗괙괚괛괝괞괟괡괢괣괤괥괦괧괨괪괫괮괯괰괱괲괳괶괷괹괺괻괽괾괿굀굁굂굃굆굈굊굋굌굍굎굏굑굒굓굕굖굗굙굚굛굜굝굞굟굠굢굤굥굦굧굨굩굪굫굮굯굱굲굷굸굹굺굾궀궃궄궅궆궇궊궋궍궎궏궑궒궓궔궕궖궗궘궙궚궛궞궟궠궡궢궣궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궸궹궺궻궼궽궾궿귂귃귅귆귇귉귊귋귌귍귎귏귒귔귕귖귗귘귙귚귛귝귞귟귡귢귣귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷’��귺귻귽귾긂긃긄긅긆긇긊긌긎긏긐긑긒긓긕긖긗긘긙긚긛긜긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯긲긳긵긶긹긻긼긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗깘깙깚깛깞깢깣깤깦깧깪깫깭깮깯깱깲깳깴깵깶깷깺깾깿꺀꺁꺂꺃꺆꺇꺈꺉꺊꺋꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺿껁껂껃껅껆껇껈껉껊껋껎껒껓껔껕껖껗껚껛껝껞껟껠껡껢껣껤껥’��껦껧껩껪껬껮껯껰껱껲껳껵껶껷껹껺껻껽껾껿꼀꼁꼂꼃꼄꼅꼆꼉꼊꼋꼌꼎꼏꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣꼤꼥꼦꼧꼨꼩꼪꼫꼮꼯꼱꼳꼵꼶꼷꼸꼹꼺꼻꼾꽀꽄꽅꽆꽇꽊꽋꽌꽍꽎꽏꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽞꽟꽠꽡꽢꽣꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽺꽻꽼꽽꽾꽿꾁꾂꾃꾅꾆꾇꾉꾊꾋꾌꾍꾎꾏꾒꾓꾔꾖꾗꾘꾙꾚꾛꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾺꾻꾽꾾’d�꾿꿁꿂꿃꿄꿅꿆꿊꿌꿏꿐꿑꿒꿓꿕꿖꿗꿘꿙꿚꿛꿝꿞꿟꿠꿡꿢꿣꿤꿥꿦꿧꿪꿫꿬꿭꿮꿯꿲꿳꿵꿶꿷꿹꿺꿻꿼꿽꿾꿿뀂뀃뀅뀆뀇뀈뀉뀊뀋뀍뀎뀏뀑뀒뀓뀕뀖뀗뀘뀙뀚뀛뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끾끿낁낂낃낅낆낇낈낉낊낋낎낐낒낓낔낕낖낗낛낝낞낣낤’8�낥낦낧낪낰낲낶낷낹낺낻낽낾낿냀냁냂냃냆냊냋냌냍냎냏냒냓냕냖냗냙냚냛냜냝냞냟냡냢냣냤냦냧냨냩냪냫냬냭냮냯냰냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇넊넍넎넏넑넔넕넖넗넚넞넟넠넡넢넦넧넩넪넫넭넮넯넰넱넲넳넶넺넻넼넽넾넿녂녃녅녆녇녉녊녋녌녍녎녏녒녓녖녗녙녚녛녝녞녟녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷녺녻녽녾녿놁놃놄놅놆놇놊놌놎놏놐놑놕놖놗놙놚놛놝’�놞놟놠놡놢놣놤놥놦놧놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇍뇎뇏뇑뇒뇓뇕뇖뇗뇘뇙뇚뇛뇞뇠뇡뇢뇣뇤뇥뇦뇧뇪뇫뇭뇮뇯뇱뇲뇳뇴뇵뇶뇷뇸뇺뇼뇾뇿눀눁눂눃눆눇눉눊눍눎눏눐눑눒눓눖눘눚눛눜눝눞눟눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눵눶눷눸눹눺눻눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉙뉚뉛뉝뉞뉟뉡뉢뉣뉤뉥뉦뉧뉪뉫뉬뉭뉮’�뉯뉰뉱뉲뉳뉶뉷뉸뉹뉺뉻뉽뉾뉿늀늁늂늃늆늇늈늊늋늌늍늎늏늒늓늕늖늗늛늜늝늞늟늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇닊닋닍닎닏닑닓닔닕닖닗닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉댊댋댌댍댎댏댒댖댗댘댙댚댛댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓덗덙덚덝덠덡덢덣’�덦덨덪덬덭덯덲덳덵덶덷덹덺덻덼덽덾덿뎂뎆뎇뎈뎉뎊뎋뎍뎎뎏뎑뎒뎓뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎢뎣뎤뎥뎦뎧뎩뎪뎫뎭뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됑됒됓됔됕됖됗됙됚됛됝됞됟됡됢됣됤됥됦됧됪됬됭됮됯됰됱됲됳됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄’�둅둆둇둈둉둊둋둌둍둎둏둒둓둕둖둗둙둚둛둜둝둞둟둢둤둦둧둨둩둪둫둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒁뒂뒃뒄뒅뒆뒇뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒞뒟뒠뒡뒢뒣뒥뒦뒧뒩뒪뒫뒭뒮뒯뒰뒱뒲뒳뒴뒶뒸뒺뒻뒼뒽뒾뒿듁듂듃듅듆듇듉듊듋듌듍듎듏듑듒듓듔듖듗듘듙듚듛듞듟듡듢듥듧듨듩듪듫듮듰듲듳듴듵듶듷듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓딖딗딙딚딝’\딞딟딠딡딢딣딦딫딬딭딮딯딲딳딵딶딷딹딺딻딼딽딾딿땂땆땇땈땉땊땎땏땑땒땓땕땖땗땘땙땚땛땞땢땣땤땥땦땧땨땩땪땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떢떣떥떦떧떩떬떭떮떯떲떶떷떸떹떺떾떿뗁뗂뗃뗅뗆뗇뗈뗉뗊뗋뗎뗒뗓뗔뗕뗖뗗뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿’0	똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏똒똓똕똖똗똙똚똛똜똝똞똟똠똡똢똣똤똦똧똨똩똪똫똭똮똯똰똱똲똳똵똶똷똸똹똺똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙥뙦뙧뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚞뚟뚡뚢뚣뚥뚦뚧뚨뚩뚪뚭뚮뚯뚰뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂’뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛕뛖뛗뛘뛙뛚뛛뛜뛝뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛱뛲뛳뛵뛶뛷뛹뛺뛻뛼뛽뛾뛿뜂뜃뜄뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜪뜫뜭뜮뜱뜲뜳뜴뜵뜶뜷뜺뜼뜽뜾뜿띀띁띂띃띅띆띇띉띊띋띍띎띏띐띑띒띓띖띗띘띙띚띛띜띝띞띟띡띢띣띥띦띧띩띪띫띬띭띮띯띲띴띶띷띸띹띺띻띾띿랁랂랃랅랆랇랈랉랊랋랎랓랔랕랚랛랝랞’�랟랡랢랣랤랥랦랧랪랮랯랰랱랲랳랶랷랹랺랻랼랽랾랿럀럁럂럃럄럅럆럈럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝럞럟럠럡럢럣럤럥럦럧럨럩럪럫럮럯럱럲럳럵럶럷럸럹럺럻럾렂렃렄렅렆렊렋렍렎렏렑렒렓렔렕렖렗렚렜렞렟렠렡렢렣렦렧렩렪렫렭렮렯렰렱렲렳렶렺렻렼렽렾렿롁롂롃롅롆롇롈롉롊롋롌롍롎롏롐롒롔롕롖롗롘롙롚롛롞롟롡롢롣롥롦롧롨롩롪롫롮롰롲롳롴롵롶롷롹롺롻롽롾롿뢀뢁뢂뢃뢄’�뢅뢆뢇뢈뢉뢊뢋뢌뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟뢠뢡뢢뢣뢤뢥뢦뢧뢩뢪뢫뢬뢭뢮뢯뢱뢲뢳뢵뢶뢷뢹뢺뢻뢼뢽뢾뢿룂룄룆룇룈룉룊룋룍룎룏룑룒룓룕룖룗룘룙룚룛룜룞룠룢룣룤룥룦룧룪룫룭룮룯룱룲룳룴룵룶룷룺룼룾룿뤀뤁뤂뤃뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤙뤚뤛뤜뤝뤞뤟뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤾뤿륁륂륃륅륆륇륈륉륊륋륍륎륐륒륓륔륕륖륗’�륚륛륝륞륟륡륢륣륤륥륦륧륪륬륮륯륰륱륲륳륶륷륹륺륻륽륾륿릀릁릂릃릆릈릋릌릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞릟릠릡릢릣릤릥릦릧릨릩릪릫릮릯릱릲릳릵릶릷릸릹릺릻릾맀맂맃맄맅맆맇맊맋맍맓맔맕맖맗맚맜맟맠맢맦맧맩맪맫맭맮맯맰맱맲맳맶맻맼맽맾맿먂먃먄먅먆먇먉먊먋먌먍먎먏먐먑먒먓먔먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷먺먻먽먾먿멁멃멄멅멆’T멇멊멌멏멐멑멒멖멗멙멚멛멝멞멟멠멡멢멣멦멪멫멬멭멮멯멲멳멵멶멷멹멺멻멼멽멾멿몀몁몂몆몈몉몊몋몍몎몏몐몑몒몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧몪몭몮몯몱몳몴몵몶몷몺몼몾몿뫀뫁뫂뫃뫅뫆뫇뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫽뫾뫿묁묂묃묅묆묇묈묉묊묋묌묎묐묒묓묔묕묖묗묙묚묛묝묞묟묡묢묣묤묥묦묧’(묨묪묬묭묮묯묰묱묲묳묷묹묺묿뭀뭁뭂뭃뭆뭈뭊뭋뭌뭎뭑뭒뭓뭕뭖뭗뭙뭚뭛뭜뭝뭞뭟뭠뭢뭤뭥뭦뭧뭨뭩뭪뭫뭭뭮뭯뭰뭱뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮉뮊뮋뮍뮎뮏뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮥뮦뮧뮩뮪뮫뮭뮮뮯뮰뮱뮲뮳뮵뮶뮸뮹뮺뮻뮼뮽뮾뮿믁믂믃믅믆믇믉믊믋믌믍믎믏믑믒믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷믺믻믽믾밁’�밃밄밅밆밇밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵밶밷밹밺밻밼밽밾밿뱂뱆뱇뱈뱊뱋뱎뱏뱑뱒뱓뱔뱕뱖뱗뱘뱙뱚뱛뱜뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃벆벇벉벊벍벏벐벑벒벓벖벘벛벜벝벞벟벢벣벥벦벩벪벫벬벭벮벯벲벶벷벸벹벺벻벾벿볁볂볃볅볆볇볈볉볊볋볌볎볒볓볔볖볗볙볚볛볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳볷볹볺볻볽’�볾볿봀봁봂봃봆봈봊봋봌봍봎봏봑봒봓봕봖봗봘봙봚봛봜봝봞봟봠봡봢봣봥봦봧봨봩봪봫봭봮봯봰봱봲봳봴봵봶봷봸봹봺봻봼봽봾봿뵁뵂뵃뵄뵅뵆뵇뵊뵋뵍뵎뵏뵑뵒뵓뵔뵕뵖뵗뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵥뵦뵧뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿붂붃붅붆붋붌붍붎붏붒붔붖붗붘붛붝붞붟붠붡붢붣붥붦붧붨붩붪붫붬붭붮붯붱붲붳붴붵붶붷붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑’�"뷒뷓뷖뷗뷙뷚뷛뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷪뷫뷬뷭뷮뷯뷱뷲뷳뷵뷶뷷뷹뷺뷻뷼뷽뷾뷿븁븂븄븆븇븈븉븊븋븎븏븑븒븓븕븖븗븘븙븚븛븞븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃빆빇빉빊빋빍빏빐빑빒빓빖빘빜빝빞빟빢빣빥빦빧빩빫빬빭빮빯빲빶빷빸빹빺빾빿뺁뺂뺃뺅뺆뺇뺈뺉뺊뺋뺎뺒뺓뺔뺕뺖뺗뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷’x%뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻒뻓뻕뻖뻙뻚뻛뻜뻝뻞뻟뻡뻢뻦뻧뻨뻩뻪뻫뻭뻮뻯뻰뻱뻲뻳뻴뻵뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼂뼃뼄뼅뼆뼇뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼚뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽂뽃뽅뽆뽇뽉뽊뽋뽌뽍뽎뽏뽒뽓뽔뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂’L(뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾕뾖뾗뾘뾙뾚뾛뾜뾝뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾱뾲뾳뾴뾵뾶뾷뾸뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿆뿇뿈뿉뿊뿋뿎뿏뿑뿒뿓뿕뿖뿗뿘뿙뿚뿛뿝뿞뿠뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀽쀾쀿’ +쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁒쁓쁔쁕쁖쁗쁙쁚쁛쁝쁞쁟쁡쁢쁣쁤쁥쁦쁧쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삒삓삕삖삗삙삚삛삜삝삞삟삢삤삦삧삨삩삪삫삮삱삲삷삸삹삺삻삾샂샃샄샆샇샊샋샍샎샏샑샒샓샔샕샖샗샚샞샟샠샡샢샣샦샧샩샪샫샭샮샯샰샱샲샳샶샸샺샻샼샽샾샿섁섂섃섅섆섇섉섊섋섌섍섎섏섑섒섓섔섖섗섘섙섚섛섡섢섥섨섩섪섫섮’�-섲섳섴섵섷섺섻섽섾섿셁셂셃셄셅셆셇셊셎셏셐셑셒셓셖셗셙셚셛셝셞셟셠셡셢셣셦셪셫셬셭셮셯셱셲셳셵셶셷셹셺셻셼셽셾셿솀솁솂솃솄솆솇솈솉솊솋솏솑솒솓솕솗솘솙솚솛솞솠솢솣솤솦솧솪솫솭솮솯솱솲솳솴솵솶솷솸솹솺솻솼솾솿쇀쇁쇂쇃쇅쇆쇇쇉쇊쇋쇍쇎쇏쇐쇑쇒쇓쇕쇖쇙쇚쇛쇜쇝쇞쇟쇡쇢쇣쇥쇦쇧쇩쇪쇫쇬쇭쇮쇯쇲쇴쇵쇶쇷쇸쇹쇺쇻쇾쇿숁숂숃숅숆숇숈숉숊숋숎숐숒숓숔숕숖숗숚숛숝숞숡숢숣’�0숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏’�3쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚’p6쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩’D9쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔’<얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦’�>욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷’�A잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤’�D좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬’hG줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®	��<J쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[₩]^_`abcdefghijklmnopqrstuvwxyz{|} ̄’�L짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ’�O쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ	ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωB�`R쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊	��T쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆	•@W쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆÐªĦ	IJĿŁØŒºÞŦŊ㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞���Y쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄’�\찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん	B�|_첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ	�(b쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ	абвгдеёжзийклмнопрстуфхцчшщъыьэюя˜�d쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅	��Hg췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫	���h츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙	��j캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆’hk켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸’<n콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙’q쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝’�s퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥’�v킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸’�y턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗’`|텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩’4퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼’�툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗’܄튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤’��틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤’��퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭’X�폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰’,�퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎’�풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨’ԕ퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊’��핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓’|�헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻’P�혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층’$�횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼’��휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜’̦힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣	퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁B���	퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�p�	혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝���›	伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕���	匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢��	瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械���	棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜� �	科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾���	區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�0�	鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣���	朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�@�	納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�Ⱥ	丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�P�	棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�ؽ	蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�`�	煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼��	遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�p�	立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅���	蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文���	汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑��	發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖���	碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦��	孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥���	脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�(�	傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署���	胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�8�	聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁���	戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�H�	嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁���	沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�X�	櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬���	旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�h�	簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳���	烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�x�	窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓��	運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜���	濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼��	議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄���	立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長� �	障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱���	煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�0�	靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫���	踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�@�	咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯���	鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�P�	責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢���	椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�`�	贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託���	鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�p�	阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃���	品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航���	行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型��	形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵���	禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆��	爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�������\�0�����T(	���xL ���"p%D(+�-�0�3h6<9<�>�A�D`G4J�L�OXR�T8W�Y�\t_ b�d@g�hj`k4nq�s�v�yX|,�Ԅ��|�P�$���̕��t�H���Ħ��h��x���������(���8���H�нX��h���x������� ���0���@���P���`���p�����������(���8���H���X���h���x������� ���(���	

��	
��	��	
������	

 !"#$%&'(��	
��	

 !"#$%&'()*+,-./012��	

����	

������	��	

��	
����	

��������	

��	

��	

��	

 !"#$%&'()*+,-./0123456789��	




















































��	

��	
����	

��	

��	

��	

 !"#$%&'()*+,-./0123456789:;<=>?@��	

 !"#$%&'()*+,-./01234��	

 !"#$%&'()*+,-./01234567888888888��	

��	

��	

��	

��	

 !"#$%&'()*+,-./0123456789:;<=>��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	��	

��	

��	

��	

��	

��	

 ��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	
��	��	

��	
��	������	
��	

��	

����	

��	

��	

��	

��	

��	

��	

��	

��	

��	

������	����	

��	

 ��	

 ��	

��	

��	

��	
��	
����	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

��	
����	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	��	
��	

��	
��	
����	

��	

��	

��	

��	
��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	
��	
��	

��	

��	

��	

��	

����	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	
��	

��	

��	
��	
��	
��	����	

��	
��	��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	
��	
����	

��	��	

��	

��	

��	

��	

��	

��	����	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	
��	

��	
��	
��	
��	

��	

��	
��	

��	

��	
��	
����	
����	
����	����	

��	
��	

��	
����	

����	

��	

��	

��	

��	

��	

������	

��	

��	

��	����	��	
����	
����	
��	

��	��	
��	

��	

 ��	

 ��	

��	����	

��	

��	

��	
��	
��	

����	

��	
��	
����������	

��	����	

��	

��	

��	

��	

����	��	

��	

����	

��	
��	
��	

��	
��	
��	

��������	
������������������������	
��	
����	
����	

 !"#$%&'()*+,-./0123456789:;<��	

��	

��	

��	

��	

��	

��	
��	

��	

��	

����	

��	

��	
��	
��	

��	

��	
��	

��	

��	
��	

��	

��	

��	

��	

��	��	

��	

��	
��	

��	

��	

��	��	
��	
��	

��	

��	

��	

��	
����������	
��	

��	

��	
��	

��	

����	

����	

��	

��	

����	

��	

����	

��	

��	��	
��	

��	
��	

��	

��	��	
��	

��	��	
��	

��	
��	
��	������	������	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
����	

��	��	������	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	

��	
��	

��	

��	
��	
��	��	

��	
��	
����	

����	
������	

��	

��	

��	
��	

��	��	
��	
��	

��	

��	

��	
��	

��	

����	
��	
��	

��	
��	

����	

��	

����	
����	

��	

��	

����	

��	

����	
��	��	
��	��	

����	

��	

��	

��	

��	

��	

��	

��	
��	

 ��	

                                 ����	�����	


��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHHHHHHHHHHHHHHHHHHHHHHH��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEEEEEEEEEEEEEEEEEEEEEEEEEE��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPPPPPPPPPPPPPPP��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTTTTTTTTTTT��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWWWWWWW��	

 !"""""""""""""""#$%&'()*+,-./0123456789:;<=>?@ABC"""""""""""""���	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[��	

 !"#$%%%%%%%%%%%%%%%%%%%%%%%%%%%%A�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������������������������A�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������������������������A�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_____`abcdefghi_______jklmnopqrstuvwxyz{|}~��________������������������������______A�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������������������������A�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������������������������A�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZY[\]^_`abYcdefghijklmnopqrstuvwxyz{|}~�������������������������������������������������A�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������������������������A�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������������������������A�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvvvvvvvvvvvvvvvwxyz{|}~������������������������vvvvvvvvvvvvvA�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUA�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqA�	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_A��	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~J; �`��<�`��d�a��|zRx�$h`��0FJw�?:*3$"Dp`�� \8a��<HoGNU�P �#��$ 	�������� 	�������2 	������P� 	����x������0
��#�#���o`��
�#0�(	���o����o�o����o��#`pGA$3a10�GA$3p1067`�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignkorean.so-2.2.10-35.el8.x86_64.debug2�K��7zXZ�ִF!t/��]?�E�h=��ڊ�2N�H:�^ ��7,��X�\�*u�K�k�qμr�#\�R����#(^A��p�
l?{/�#uM�M�Y�/eQ餀EBm�=ɡ�ܯ��D�w��Ol��h��j�i~ږ�U>^�pp��D�u�F{�r���K�����2�d{�3�Uc�����	؜Lݩ|�N�AN�K���ԫi����dW��md,|�����-j!�m�C�!��2:�s��~��
�2~\���n �)����^Ӕ]�?jFzL�o�^�j8�:oX�ւ-ʘ��|y��xU�F�)y���ƨI��/�)I��6Oǂͷ�~7�W�Q��g~�}��� R߾�E۽��ġ��y1F����H�3��n�Ҩ�Q�9M��f��i��)f�~�Vћv�)�ߚ+)�T�LK˼��W�y���j�
s�>�cK��ā*��:lDE4[��s���wHǍ<�?���$���@�f}�����O<6;A��١|�%Ɇ�/��������P��3$]�<�J��M	�߂O�`�3�n9/J¼"�Ғw���U��H�M�%0�+D�,�J��d֡�}��t��1� �,�F*���JA7�TY]�Ɍ�q���fr��Q�󽉆���`��ќ�g�$�a�	�j�T:M���k�C�H��I��	%��������(��Ý%3e�C�	|N��t(@3m g��
OU�wM@�<W����Ӑ?��&Zo��zm�F �->T�7����֏�=�e�ͷ��Gr|e@����Z<����X)6��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0��8���o��E���o�� T��(^B0h00cPP0n�� w���}��
���� �����$�ȦȦt�@�@� ��#���#�� �# �� ���#�� ��#� ��#�(�(�#(��0�c(��
 �,L�H��+lib64/ruby/2.2.0/x86_64-linux/enc/iso_8859_15.so000075500000027250150402105760014114 0ustar00ELF>�
@h'@8	@��   (0 �� �   888$$���  S�td���  P�td���DDQ�tdR�td  ��GNU��Q���Dƀ�
�@*���B  BE��d��߻�|�qX #U���� �Ff��, F"Y8  �0l@  `8  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeonigenc_get_case_fold_codes_by_str_with_maponigenc_apply_all_case_fold_with_mapInit_iso_8859_15rb_enc_registeronigenc_single_byte_mbc_enc_lenonigenc_is_mbc_newline_0x0aonigenc_single_byte_mbc_to_codeonigenc_single_byte_code_to_mbclenonigenc_single_byte_code_to_mbconigenc_minimum_property_name_to_ctypeonigenc_not_support_get_ctype_code_rangeonigenc_single_byte_left_adjust_char_headonigenc_always_true_is_allowed_reverse_matchlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64Oui	q @     H `x �� �� �� P@ 
X ` h p � � � � � � 	� �      (  
0  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h��������%� D���%� D���%� D���%� DH�=� H�� H9�tH�6 H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH� H��t��fD�����=- u+UH�=� H��tH�=� �Y����d���� ]������w������1����w��H�9���x����ff.�f���H��I��I�ѺQH�5����"���H���@����I��I�ѿ"�H�5����ff.���H��<�tH�����H����@t޸ssf��H��ff.���H�5 H�=������H��H���ISO-8859-15��������������������������������������������������������������������@@@@@@@@@B	BBBB@@@@@@@@@@@@@@@@@@�B�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�x�x�x�x�x�x�x�x�x�x�A�A�A�A�A�A�A�|�|�|�|�|�|�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�t�A�A�A�A�Q�A�x�x�x�x�x�x�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�A�A�A�A@�������4��0��0����������4�0���0��0��4�0�4��4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4��4�4�4�4�4�4�4�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0��0�0�0�0�0�0�0�0	

 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������;D`���`�����������������@���������zRx�$����PFJw�?:*3$"D ���@\���#p$���,HL W�8���"�T���B�����GNU�@  `���P
,7EO}�	
H  ���o`��
�  `�	��	���oh���o�o:���o� 
 
0
@
GA$3a1�	UGA$3p1067PGGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYPsGA+GLIBCXX_ASSERTIONSiso_8859_15.so-2.2.10-35.el8.x86_64.debug�K�G�7zXZ�ִF!t/���H]?�E�h=��ڊ�2N���. ���x�'�'�	��A�A"��:y���XN��~s*d��Ђ�Avm�p$O��^�q\���ca�����F���y;�f�F5\���@�a�r��,��,^i�s&�z�S+]6xSx�xѿ���-4��9���Y�Q�36��r�0���:͆�L��"|���]X�bғ���y;��Q.�������4ш��%��k����J&JV�D�r��nE�J:R�azVT<%�hT��U�m����<�a�j�q�
̖`N�bFN������T%yy�N~x�tdq�>�@�/qR�B�����eR�q�_y>P��B�=�Z�Xl�C��A:ܿah^
�Z��z��dY�@>Rh���^�V��Z䊰JpګQ���"�����K)�14r�m�n���s��nñ�Ht�ns8tf�,2�9V:)Z����v�)NK�h̩���*4��bH�m��8�i�l�RP�t���`klc�Jm�+P�d�M�s#Yk�N�8t9{!� u%c�����”L\��K	Y{Nc�2̯�̌
�(Õ��F�G��B�3K�d�o��7I6u�̔�mN����i�@�o��d�?�0�/����Yr���O��2Q�p�<4�&�F�.�KC�L�����c�e�`R������+�J,!��"8��d���
dJ�잓�1/Io�$��%�`ht�J��MdB�	p��������B{����c/ֈIX�L6<X��i�
��j�w�!n�~^\zB���˲-Bt&��Ba	Z��@���k�mQ�J�ѕ���ݞ�in{ʺ�æ�c�!��L�
��$�'������̦s���g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0���8���o::*E���ohh T���^B�	�	`h�	�	c

PnP
P
@w�
�
�}HH
�``@ ���D������� � � �   � �� � �� � �   8�8  8 �@ `8 H
�"0�"�8&+lib64/ruby/2.2.0/x86_64-linux/rbconfig/sizeof.so000075500000017030150402105760014636 0ustar00ELF>�@�@8	@pp �
�
 �
 �� �
�
 �
   888$$PPP  S�tdPPP  P�td�
�
�
$$Q�tdR�td�
�
 �
 XXGNU �hIg�B�c�9�<��
7
�@ 


BE��h)��|�qX �� m, F"~a�H U`�P H __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizeInit_sizeofrb_hash_newrb_define_modulerb_define_constrb_str_new_staticrb_hash_asetlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�
 P�
 �
 �
 � � � �    ( 0 8 @ 	��H��H�1	 H��t��H����52	 �%3	 ��h�������h��������h�������h�������h�������h��������%� D���%� D���%� D���%� D���%� D���%� DH�=� H�� H9�tH�& H��t	�����H�=q H�5j H)�H��H��H��?H�H�tH�� H��t��fD�����=- u+UH�=� H��tH�=� �9����d���� ]������w������S�&���H�=�H�����H��H�5�H������H�=�����	H��H������H�=�����H��H������H�=��b����H��H���b����	H�=i�A����H��H���A����H�=R� ����!H��H��� ����H�=:����H��H������H�=�����H��H�������H�=����	H��H������H�=�����H��H������H�=��{����H��H���{����H�=��Z����H��H���Z����H�=��9����H��H���9����	H�=�����H�ߺ[H��������H��H���RbConfigSIZEOFintshortlong long__int128off_tvoid*floatdoubletime_tclock_tsize_tptrdiff_t;$ ���@����h�����zRx�$���pFJw�?:*3$"D ���`\(����E��GNU�P�
 �������
<
�
 �
 ���o`��
J �p�	���oP���o�o2���o�
 �� 0GA$3a1�I
GA$3p1067`9
GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignsizeof.so-2.2.10-35.el8.x86_64.debug��m�7zXZ�ִF!t/���]?�E�h=��ڊ�2N�H:�^ ��7,��X�\�*u�K�k�]X�Pi!��d.T6|u[�{��êI
.gTJ��.�
K�jl�b}0���2�3� ��i��_��aMp!�
D��Z`ؚ3�Ϲa���%�7L72��Fi�`���Z���}�-ȈKMD��z{F��ߩ��N���i��{��:���a�i+K7Y�C���z(z}�U.Ŗ�c:2���p�V<d�9<4݄Ԓ���GuD�G~����xl�.ށ+�����I0_k
������^{l��5(t��}���Fue�Ca�c�������I��D��T&�?CXQ�.Ók��3/)�=9�[%9=��?@7};���#���ږ�kꝀ�YYě��ջ7��כN��VT*���fVh�'a=|�mT*&Ŧ���|p���t�+���x�~_7�k��~X�%�vy�
����oD�Q����&���ٴ¢�M�9B�6tЋP�����JTZ�b��_U	�ʼn+0�O�0…�:Z���c��2\�6n;���%.8b�a3��;�ֵ���߂(BY'g�mm8�)��v#�&C��/xi%l���Pb&�KM�N��Ћ51kR5�/��v�&rN�*GRg��+{>~�*�}|�i_���/H��@�3H��6&JL�vF7�+�k�诏t��X.��'B)�T��/�!
�/�O,CE�Z�w��1+��V��G[uɐ(�O�	����2�	p��1ݶb	t��`�6�Q/��M|ȓ��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��P0��J8���o22E���oPP Tpp�^B�h��c��pn@@`w���}<
<

�2I
I
f��
�
$��
�
x�PP ��
 �
��
 �
��
 �
��
 �
 �� � � H�H H�P`H�
@,l@�+lib64/ruby/2.2.0/x86_64-linux/objspace.so000075500000122550150402105760013340 0ustar00ELF>`*@(�@8	@���� �� � ��
 ���� ��   888$$������  S�td������  P�tdЁЁЁ��Q�tdR�td�� � ��GNU�A��6w
1]ݸV�!LΫ6�b�@`� 8	bfg4~ȺBE��t�Fٻ�|�qXf-7߬����s����;��$3 �t!W�NK��#����c�����Z����i9E,/G< �����o:Ue��{9,�,�E�i�� _�>�ELs, VS��F"�i	�( r0��� ��`	��� ��� �`�`U�__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_obj_idrb_id2symrb_intern2rb_bugrb_sym2strrb_sprintfrb_hash_newrb_funcallrb_objspace_reachable_objects_from_rootrb_hash_foreach__stack_chk_failrb_ary_newrb_hash_tblst_foreachrb_hash_asetrb_ary_pushrb_str_new_cstrrb_hash_lookuprb_objspace_markable_object_prb_objspace_internal_object_prb_data_typed_object_allocrb_obj_memsize_ofrb_gc_markrb_scan_argsrb_objspace_each_objectsrb_eTypeErrorrb_raiserb_hash_arefrb_fix2intrb_objspace_data_type_namerb_internrb_uint2bigrb_obj_is_kind_ofrb_typeddata_is_kind_ofst_init_numtablerb_objspace_reachable_objects_fromst_insertInit_objspacerb_cObjectrb_const_getrb_define_module_functionrb_define_class_underrb_define_methodInit_object_tracingInit_objspace_dumpst_lookupfwrite__fprintf_chkruby_xfreeruby_xmalloc2st_init_strtablest_clearrb_tracepoint_disablerb_tracepoint_enablerb_tracepoint_newrb_bug_reporter_addst_deleterb_tracearg_from_tracepointrb_tracearg_objectruby_xmallocstrncpyst_add_directst_get_keyrb_tracearg_pathrb_tracearg_linenorb_tracearg_method_idrb_tracearg_defined_classrb_gc_countrb_class_path_cachedrb_num2intrb_yieldrb_ensureobjspace_lookup_allocation_info__vfprintf_chkrb_str_vcatfruby_node_namerb_obj_gc_flagsrb_id2namerb_obj_frozen_prb_enc_str_coderangerb_str_capacityrb_enc_from_indexrb_class2namerb_enc_get_indexrb_io_check_iorb_io_get_write_iorb_io_flushrb_io_taint_checkrb_io_check_closedrb_io_stdio_filestdoutrb_str_new_staticrb_requirerb_assoc_newrb_path2classrb_funcallvrb_eArgErrorlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.4GLIBC_2.2.5GLIBC_2.3.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ii
�ui	�ti	�� +� �* �  � @� �|H� �3X� 03�� �� 
�� �� ȏ 7Џ 8؏ X� Z� ]�  � (� 0� 8� @� H� P� 	X� 
`� h� p� x� b�� �� �� �� �� �� �� �� �� Ȑ А ؐ � � � ��  � !� "� #� $ � %(� &0� '8� (@� )H� *P� +X� ,`� -h� .p� /x� 0�� 1�� 2�� 3�� 4�� d�� 5�� 6�� 9�� :ȑ ;Б <ؑ =� >� ?� @�� A� B� C� D� E � F(� G0� H8� I@� JH� KP� LX� M`� Nh� Op� Px� Q�� R�� S�� T�� U�� V�� W�� g�� Y�� [Ȓ \В ]ؒ ^� _� `� a��H��H�q H��t��H����52q �%3q ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1�������%mk D���%ek D���%]k D���%Uk D���%Mk D���%Ek D���%=k D���%5k D���%-k D���%%k D���%k D���%k D���%
k D���%k D���%�j D���%�j D���%�j D���%�j D���%�j D���%�j D���%�j D���%�j D���%�j D���%�j D���%�j D���%�j D���%�j D���%�j D���%�j D���%�j D���%}j D���%uj D���%mj D���%ej D���%]j D���%Uj D���%Mj D���%Ej D���%=j D���%5j D���%-j D���%%j D���%j D���%j D���%
j D���%j D���%�i D���%�i D���%�i D���%�i D���%�i D���%�i D���%�i D���%�i D���%�i D���%�i D���%�i D���%�i D���%�i D���%�i D���%�i D���%�i D���%}i D���%ui D���%mi D���%ei D���%]i D���%Ui D���%Mi D���%Ei D���%=i D���%5i D���%-i D���%%i D���%i D���%i D���%
i D���%i D���%�h D���%�h D���%�h D���%�h D���%�h D���%�h D���%�h D���%�h D���%�h D���%�h D���%�h D���%�h D���%�h D���%�h DH�=�h H��h H9�tH�6e H��t	�����H�=ah H�5Zh H)�H��H��H��?H�H�tH�e H��t��fD�����=h u+UH�=e H��tH�=.b �����d�����g ]������w�������5f.�H�H��t A��A��A��uH��%�H�DH�H9�u�1��ff.�f���H� ����H������H�
�N��Hc�H�>��H�=�j H����H������H�=�j H��u�H�=JH��S���H��H��j ���H�=�j H��u�H�=�G��#���H��H�yj ��H�=qj H��u�H�=�G���H��H�Qj �d���@H�=Ij H���P���H�=�G����H��H�%j �0���H�=!j H��� ���H�=PG����H��H��i ����H�=�i H����H�=GG��_���H��H��i ����H�=�i H�������H�=G��/���H��H�}i ���H�=ai H�������H�=�F����H��H�=i �p���H�=ii H���`���H�=�F�
����H��H�Ei �@���H�=Ai H���0���H�=KF�	���H��H�i ����H�=i H������H�=F��o���H��H��h ���H�=�h H������H�=�E��?���H��H��h ���H�=�h H�������H�=�E�����H��H��h ���H�=�h H���p���H�=lE�����H��H�}h �P���H�=yh H���@���H�=3E����H��H�Uh � ���H�=Qh H������H�=�D�����H��H�-h ��H�=)h H�����H�=�D��O���H��H�h ���H�=h H�������H�=�D�����H��H��g ���H�=�g H�������H�=RD����H��H��g �`���H�=�g H���P���H�=D����H��H��g �0���H�=�g H��� ���H�=�C����H��H�eg ����H�=ag H����H�=�C��_���H��H�=g ����H�=9g H�������H�=pC��/���H��H�g ���H�=g H�������H�=9C����H��H��f �p�����1�H�=�C� ���H�=�C�����H��H��e �@�����SH�_ �;�����H�����H��H�=�C[H��1��0�����H�G H�8������ff.�f���SH��0dH�%(H�D$(1��r���H�5{e H�D$H��H�$H��tF1�H��1��z���H��H�=��H��H�5QH������H��H�L$(dH3%(u#H��0[þH�=C����H��H�e ���ff.���AUI��ATI��UH��SH���t���L��H���i���H��H�5OH����H��L��H���	���H��1�[]A\A]�ff.����H��H��H�׺����1�H��Ð��H��H���P���1�H���f���AUATUH��SH��H��H9zt~H�z���H�CI������H�5d I��H�CH��t^1�L��1��"�H�;L���7���H����H�;L��L���?���H���7��tH9+tH9ku8H��[]A\A]�DL�b��f��H�=�A�o���H��H��c �H���X��uH��H��H��L��[]A\A]���@H�=9d H��H�7Z ���H����H�=&I1��O�ff.�@���g����H9�tWAUI��ATI��UH��SH��H����L�H9�t!H�;t�H���"�H�;L��ID�H9�u�H��1�[]A\A]�f�1��ff.�f��������H��(H��@dH�%(H�D$1�H�L$���H�t$��tMH��tH�FH��tH�@������H�=���H�D$H�T$dH3%(��H��(�fD@��uH�����t
�����t�H�H[ H�5@H�81��������H�D$H���f�H��H�t$�c���H�t$H��H��H�5!����|�H�t$�R����]�ff.�f���H9���AWAVL�5�?AUI��ATI��UH��SH��H���L�H9�tUH�H��t����u�L�{M��tOL��L���$�H��tH�������PHc�H�TL��L��L��h�H9�u�H��1�[]A\A]A^A_�f�H�����H��ID�H����H�����I���@1��D��AWH��>AVAUATUSH��xdH�%(H��$h1�H�L$������H�t$H��H��XH��@H�H��H9�u�H�=�����H�\$H����H�CH��tH�@������1�L�=P>I��������?L�%DD@H�}tLH��i�\Ic�L�>��H�=�\ H�������I��DH�}H�T?L9�wrH�|$L����H��H��H��ju�H��$hdH3%(H�D$��H��x[]A\A]A^A_�H�=*\ H���S�d�H�}I��H�T?L9�v��+�H���H�=�[ H����1�I���Y���H�=�[ H������I���<���H�=�[ H������I������H�=�[ H���I���I������H�=�[ H�����I�����H�=�[ H������I������H�=�[ H������I�����H�=l[ H���U�f�I�����H�=W[ H����I�I���q���H�=B[ H�����,�I���T���H�=-[ H������I���7���H�=[ H���a���I������H�=[ H���$���I�����H�=�Z H������I�����H�=�Z H������I������H�=�Z H���m�~�I�����H�=�Z H���0�a�I�����H�=�Z H�����D�I���l���H�=�Z H�����'�I���O���H�=pZ H���y�
�I���2���H�=[Z H���<���I������H�=FZ H�������I�����H�=1Z H������I������H�=Z H������I�����H�=Z H���H�y�I�����H�=�Y H����\�I�����H�=�Y H�����?�I���g���H�=�Y H�����"�I���J���H�=�Y H���T��I���-���H�=�Y H������I������H�=�Y H�������I����H�=tY H������I������H�=_Y H���`��I�����H�=JY H���#�t�I�����H�=5Y H�����W�I������H�= Y H�����:�I���b���H�=Y H���l��I���E���H�=�X H���/��I���(���H�=�X H�������I������H�=�X H�������I�����H�=�X H���x��I������H�=�X H���;��I�����H�=�X H�����o�I�����H�=xX H�����R�I���z���H�=cX H�����5�I���]���H�=NX H���G��I���@���H�=9X H���
��I���#���H�=$X H����
���I������H�=X H����
��I�����H�=�W H���S
��I������H�=�W H���
��I�����H�=�W H�����j�I�����H�=�W H�����M�I���u���H�=�W H���_�0�I���X���H�=�W H���"��I���;���H�=|W H������I������H�=gW H�������I������H�=RW H���k��I�����H�==W H���.��I������H�=(W H����
��I�����H�=W H����
�e�I�����H�=�V H���w
�H�I���p���H�=�V H���:
�+�I���S���H�=�V H����	��I���6���H�=�V H����	���I������H�=�V H����	���I�����H�=�V H���F	��I������H�=�V H���		��I������H�=kV H�����}�I�����H�=VV H�����`�I�����H�=AV H���R�C�I���k���H�=,V H����&�I���N���H�=V H�����	�I���1���H�=V H�������I������H�=�U H���^���I�����H�=�U H���!��I������H�=�U H������I�����H�=�U H�����x�I�����H�=�U H���j�[�I�����H�=�U H���-�>�I���f���H�=oU H�����!�I���I���H�=ZU H������I���,���H�=EU H���v���I������H�=0U H���9���I����H�=U H������I������H�=U H������I�����H�=�T H�����s�I�����H�=�T H���E�V�I���~���H�=�T H����9�I���a���H�=�T H������I���D���H�=�T H������I���'���H�=�T H���Q���I���
���H�=sT H������I�����H�=^T H������I�����H�=IT H������I����H�=4T H���]�n�I����H�=T H��� �Q�I���y�H�=
T H�����4�I���\�H�=�S H������I���?�H�=�S H���i��I���"�H�=�S H���,���I����H�=�S H������I�����H�=YP H������I�����H�=�S H��t}��I����H�D$�uH�����tH��������H��L H�5p1H�81��
�f.��+�H�D$��H�����H��H�5��H��������L���
���H��H��R �g���H�=�5���H��H��O �.���H�=
1�
��H��H��R ��H�=�0��u�H��H�{R ���H�=�0�	�U�H��H�SR �w���H�=�0�	�5�H��H�+R �:���H�=�0�
��H��H�R ���H�=�0�
��H��H��Q ���H�=�0�
���H��H��Q ���H�=u0�	��H��H��Q �F���H�=_0���H��H�cQ �	���H�=H0�
�u�H��H�;Q ����H�=30�	�U�H��H�Q ���H�=0�	�5�H��H��P �R���H�=0�
��H��H��P ����H�=�/�
��H��H��P ����H�=�/����H��H�sP ���H�=�/���H��H�KP �^���H�=�/���H��H�#P �!���H�=�/��u�H��H��O ���H�=�/��U�H��H��O ���H�=s/�
�5�H��H��O �j���H�=^/�
��H��H��O �-���H�=I/�
��H��H�[O ��H�=4/����H��H�3O ���H�=$/�
��H��H�O �v���H�=/�
��H��H��N �9���H�=�.��u�H��H��N ���H�=�.�
�U�H��H��N ���H�=�.��5�H��H�kN ���H�=�.���H��H�CN �E���H�=�.�
��H��H�N ����H�=�.�
���H��H��M ����H�=�.���H��H��M ���H�=v.���H��H��M �Q���H�=f.�
�u�H��H�{M ����H�=T.�	�U�H��H�SM ����H�=>.�
�5�H��H�+M ���H�=).�
��H��H�M �]���H�=.�
��H��H��L � ���H�=�-����H��H��L ���H�=�-�
��H��H��L ���H�=�-���H��H�cL �i���H�=�-��u�H��H�;L �,���H�=�-�	�U�H��H�L ���H�=�-��5�H��H��K ��H�=�-�
��H��H��K �u�H�=o-�	��H��H��K �8�H�=Y-�	���H��H�sK ��H�=C-�	��H��H�KK ��H�=--�	��H��H�#K ��H�=-�
�u�H��H��J �D�H�=-�	�U�H��H��J ��H�=�,��5�H��H��J ���H�=�,�
��H��H��J ��H�=�,�
���H��H�[J �P�H�=�,�����H��H�3J ��H�=�,����H��H�J ���H�=�,����H��H��I ��H�=s,��u��H��H��I �\�H�=\,�	�U��H��H��I ��H�=F,�	�5��H��H�kI ���H�=0,�
���H��H�CI ��H�=,�
���H��H�I �h�H�=,�
����H��H��H �+�H�=�+����H��H��H ���H�=�+�	���H��H��H ��H�=�+�
�u��H��H�{H �t�H�=�+��U��H��H�SH �7�H�=�+��5��H��H�+H ��H�=�+����H��H�H ��H�=+����H��H��G ��H�=l+�
����H��H��G �C�H�=Z+�
���H��H��G ��H�=E+����H��H�cG ���H�=1+��u��H��H�;G ��H�= +��U��H��H�G �O�H�=+�	�5��H��H��F ��H�=�*�	���H��H��F ���H�=�*�
���H��H��F ��H�=�*�����H��H�sF �[�H�=�*�
���H��H�KF ��H�=�*�
���H��H�#F ���H�=�*��u��H��H��E ��H�=}*��U��H��H��E �g�H�=i*��5��H��H��E �*�H�=U*����H��H��E ���H�=A*�	���H��H�[E ��H�=+*�	����H��H�3E �s�H�=*�	���H��H�E �6�H�=�)�
���H��H��D ��H�=�)�
�u��H��H��D ��H�=�)�	�U��H��H��D ��H�=�)��5��H��H�kD �B�H�=�)�	���H��H�CD ��H�=�)�
���H��H�D ���H�=})�����H��H��C ��H�=j)����H��H��C �N�H�=W)����H��H��C ��H�=D)��u��H��H�{C ���H�=0)��U��H��H�SC ��H�=)�	�5��H��H�+C �Z�H�=)�
���H��H�C ��H�=�(�	���H��H��B ���H�=�(�
����H��H��B ��H�=�(����H��H��B ��������AVH��#AUATUSH�� dH�%(H��$1�H�L$�	�����8H�l$H��H���H�H��H9�u�H��H�=F�����H�\$H���bH�CH��tH�@�����[I��������?1�E1��f.�H��H�� t?H�|�t���'��H�|�I��I�H�T?L9���H�|$L��H���=��H�� u�H��������?I9���O�d$H�=XA H�������H�|$L��H�����H�D$H��$dH3%(��H�� []A\A]A^�fD�C��H���m���H�D$�uH�����tH����������H�y= H�5F"H�81�����H�=
'�����H��H��@ �Q���L������I���1�������H�D$����H���x��H��H�5>��H���������|��ff.����SH�� dH�%(H�D$1�H��H�$H�D$��~H�KH��!����H�=�H������H�<$H��������?H9�wH�D?H�T$dH3%(uH�� [�f����������@��H��H���P��H��������?H9�wH�DH����H��H������@��H9���AUI��ATI��UH��SH��H���1��t"I�uH��t
H���3��H��tH������IEL�H9�t$H�3H��t�����t(~�����w�L�H9�u�H��1�[]A\A]�f���u�H�����t���t���1��ff.�f���UH���SH��H��(dH�%(H�D$1��V����u"H�L$dH3%(H��uhH��([]���k��H�5�8 H��H��������tH�[ �l��H�$�C��H��H��H�5&H�D$���H�<$H��H�5���I����2��f���ATUH��SH�������u	[]A\�@H��I�������uH�}L��H��[]A\�^��fDH�=�A H��H��7 �B��H�}H��I���������USH��H�5�A H���VH�-?: H�}�v���H�����H�5�#H��H���x��H�߹����H�����H�5�#�]��H�߹����H�����H�5�#�B��H�߹����H����H�5�#�'��H�߹����H����H�5�#���H�߹H����H�5�#����1�H��H����H�5�#����H�UH��H�5�#����1�H�=��H�5�#H��H��@ �g��H�=�@ 1�H����H�5q#�K��H�=�@ 1�H����H�5]#�/��H�����H��H��[]���f��H�=~"�O��H��H�E@ ���H��H�
M@ dH�%(H�D$1�H��tH��H�yH������1Ʌ�tH�$H�T$dH3%(H��uH�������f.���H��H�����H��tH�@0H���f��H���fD��H��H���`���H��tH�@ H��H�D�D�H���ff.���H��H��� ���H��t3H�x8H��������?H9�wH�D?H���fDH���?����H���ff.���H��H�����H��tH�x(H��tH���y��f��H���fD��H��H�����H��tH�xH��tH���9��f��H���fD��SH��H���&�H�=�#����H��> H��tH�xH��H�5%�P��H�ٺ$�[H�=�#���fD��UL�Q$H��H��SH�M$H��H��H���L�N���H�*$LD�1��m��H�K(H����H�"$�H��1��J��H�KL�C H��H�$H�$H��HD�1����H�{0H��u$H���H�=�#����H��1�[]�f����H�HH� tH�HH��#�H��1������f�H�KH��#H��1������W������H������1�H���ff.����H��H�����1�H���f�H��< H��t�S�0�����H���H��< ��< H�C�CH�C���H�CH��< ���H�C H��< [�D��S���1�H�5]���H�xH���Q��H�{���H�{ 1�H�5����6��H�{ �����[�fD��S�6���H�Ë��~�����t�[�DH�{���H�{���H�C�H�C[�ff.�@��S����H�Ë�P���~�[ÐH�{H��t���H�{����[�f�H��H�������1�H�پ H�CH������H�{H�C�����F; SH���<; ��tH��[�[���H�=����1��; ����H��[�7����SH�� H�t$dH�%(H�D$1�H��t)H�T$H�����H�T$H��t)H�t$H��H�����H�D$dH3%(u#H�� [�f�H��H�t$1��a��H�|$�'�����`����USH��H��(dH�%(H�D$1�H�l$�9��H���a��H�{H��H��H�D$�����t�C��t"H�D$�H�D$dH3%(uHH��([]�H�{H��H�t$����H�D$H�{ H�p���H�D$H�{ H�p(����H�|$�q������f.�ATUSH�� dH�%(H�D$1�H��tUI��H�T$H��H���P����u\I�|$���L��H��H��H�D$�_��H�D$�H��B� H�t$���H�D$H�L$dH3%(u4H�� []A\�DH�D$H��H��H�P�l��H�T$H��H����������D��AWE1�AVAUATUH��SH��(dH�%(H�D$1����I��H������L��H������L��H�D$�P��L��I���u��L��I������H�t$I��H�����t H��� �EH�VH�vH�} ���I��I�����t
A����E1�H�}H�T$H��������*H�D$H�} H�p�(���H�D$H�} H�p(����H�D$H�L��A���H�PH�SL�xH�P������L�t$H�I�F M�n0M�f(���H�}H�T$H��I�F8�	��H�D$dH3%(��H��([]A\A]A^A_�fDI�$�ƒ����(���������L�����H���������H��� uaH��H�p��H�} ���I�����DH��H������������0���fD�@���H�D$���@H�PH�p�����f���SH������H�=\/ H��[H�������g������W������S1�H��H�����H�5��c��H��1�H�����H�5(�K��H��1�H�/���H�5��3��H��1�H����H�5���H��1�H����H�5 ���H�߹H�4���H�5�����H�߹H�9���H�5�����H�߹H�����H�5����H�߹H����H�5����H��[�H�'���H�5��{��f.��H���H�T$0H�L$8L�D$@L�L$H��t7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�dH�%(H�D$1�H��$��$H�D$H�D$ H�D$H�G�D$0H��t+H��H��H�����H�D$dH3%(uH����H�H��t�H�������������H9~0tFSH�~8H��H��tH��H�5�1����H�C8[�H��H�5p1�����H�C8[���ff.�@AWAVAUATI��UH��SH��HdH�%(H�D$81�A����H��H��������H�VH�}(H�F8������H�OH�N0H9��^���jH�#Hc�H�>��f�H�����4��H�5
H��H��1�����H��H�5��H���>��H�}8��H������I��H��t?H�H H�P1�H��H�5�����I�}0H������iI�U8H�5�H��1����H�����H���L�l$H�ߺ(L�����H��H��tpH�5�H��L�{�1��a���L�5�f.�K�|�����L��H��H��1��6���M9�tH�5�H��1�� ���I��L9�u�H�5�H��1�����H�5zH��1����H�D$8dH3%(�oH��H[]A\A]A^A_�f�H�5wH��1������DH�F0H9�t�H�
�f�H�
Kf�H��H�57H��1��|���H�U0H����H���7��H����H�;�������=���H��Hc�H�>��@H�{����H�CH�5H��H�1���������H�CH�����PH�5H��1��������f.�H�C1�H��tH�PH��1�H�5hH�����H��ƒ����������@�����H�S H�5HH��1�����y���f��� �tH��H����1�H�5"H���Y���H�H�� �'���,���������t��@�gH���������������������H�5H��1��������� �LH���ܾ��=0�~H��Ѓ���t�� �6H��%`H=`�;�� ��H����1�H�5�H�����H��� tK%`H=`t>H������H��� ��H����H9�tH�����H�5�H��H��1��2���f�H���(���=��H�;H������������d���H�5�H��H�P1��������D�؃������CH�5�H��������@��� uH�SH�5�H��1�����y���f�H�}0�e���H���m���H�56H��H��1��Y����D���@H�
���@H�
����@H�
����@H�
�
���@H�
�
�t���@H�
�
�d���@H�
�
�T���@H�
�
�D���@H�
�
�4���@H�
�
�$���@H�
�
����@H�
�
����@H�
�
��@H�
�
���@H�
�
����@H�
^����@H�
W���@H�
Q���@H�
w
���@H�
p
���@H�
��t���@H�
q
�d���@H�
X
�T���@H�
�D���@H�5�H��1�����\���f.�H�5wH��1�����+���f.�H��H�5�H��1��|�������H�5~H��1��_����g���f.�����H�PH� tH�PH�5dH��1��)����k���@H�{����������������f�H�S����H�S�S����H��f�H9������H�ڸH��?H)�H��H��H	�H��H�D$�~D$����@H�5�H��1�������H�5�H��1��q���H����H�5�H��1��X����6���H�5^H��1��B����l���H�5�H��L�k1��(���1�H�5H������H��� tL�kE1�L�5��^�H����I9��C�T=�Ѐ�
��E����������H�5+H��1����DH�I���� t�H�C�fD��
t;��udH�5�H��1��s����ɐ��"t��\uFH�5�H��1��U����H�5�H��1��?����DH�5�H��1��'����z���f�<��H�5�H��1������Z���f�H�5wH��1�����B���L��H��1�����0���H�5�H��1�������1�H�5�H����H�H�� �w���H���X��������H�S�5���H�5�H��1��w������ݸ��ff.�f���H9�tWAUI��ATI��UH��SH��H����L�H9�tH�;t�H��L��L��\���H9�u�H��1�[]A\A]�f.�1��ff.�f���ATI��UH��SH�B H��H9���H��t��t1�H�5=H����H�C H9���H��t��t(L��H��H��1�H�5���H�k �C[]A\�@L��H��H�51��l�H�k �C[]A\�ff.�@AVAUM��ATI��UH��SH��H��dH�%(H�D$1�H�������H9�( ��H;�( ��H;�( ��H�����H�$H���HH��( H���_���H�EH����H�}����H�hH���^���H���&���I�$H�L$dH3%(H����H��[]A\A]A^�fDH�y  H�I�$H�E�H�59( H����H���.���f�1�H�=肶��H�E�@H�=�����H�=��[���L��I������L��H�����L�-�' H�$M��t-H�=r蹸��H��L��H��覷��H�$���D�H�=9�'���I��H�=' �����H�� H��H�5"H�81����ff.���Uf�H�SH��hdH�%(H�D$X1�H��L�D$)D$)D$ H�\$)D$0)D$@H�$H�D$�4���H�T$H�t$ H�
�& H�|$L�����H�<$H��H���#�H;-�& t4H;-�& �tH�T$XdH3%(uH��h[]�DH�|$ �ֶ��H�D$ ���
���f.���Uf�H�:SH��hdH�%(H�D$X1�H�L$)D$H�\$)D$ )D$0)D$@H�D$�_���H�
& H�T$H�sH�{L�����H��H�=%���H���
����D$(��u]H��H�=��������H;-�% t7H;-�% �tH�T$XdH3%(u:H��h[]��H�|$ ���H�D$ ���H�5H��1����������S�����H��H����H�52���H�߹����H����H�5�Ŷ��H�=% H��ti��H�=�$ H�% H�����ض��H�=�$ H��$ H��tu���H�=�$ H��$ H��t=訶��H��1�1�[H��$ �$���@H�=�
��O���H��H��$ �w���H�=�
��/���H��H�M$ �H�=r
�����H��H�5$ �k���H�=K
����H��H�$ �3�����H��H���T_NONET_OBJECTT_CLASST_MODULET_FLOATT_STRINGT_REGEXPT_ARRAYT_HASHT_STRUCTT_BIGNUMT_FILET_DATAT_MATCHT_COMPLEXT_RATIONALT_NILT_TRUET_FALSET_SYMBOLT_FIXNUMT_UNDEFT_NODET_ICLASST_ZOMBIEtype2sym: unknown type (%d)#<InternalObject:%p %li>compare_by_identity01non-hash givenunknownNODE_SCOPENODE_BLOCKNODE_IFNODE_CASENODE_WHENNODE_OPT_NNODE_WHILENODE_UNTILNODE_ITERNODE_FORNODE_BREAKNODE_NEXTNODE_REDONODE_RETRYNODE_BEGINNODE_RESCUENODE_RESBODYNODE_ENSURENODE_ANDNODE_ORNODE_MASGNNODE_LASGNNODE_DASGNNODE_DASGN_CURRNODE_GASGNNODE_IASGNNODE_IASGN2NODE_CDECLNODE_CVASGNNODE_CVDECLNODE_OP_ASGN1NODE_OP_ASGN2NODE_OP_ASGN_ANDNODE_OP_ASGN_ORNODE_OP_CDECLNODE_CALLNODE_FCALLNODE_VCALLNODE_SUPERNODE_ZSUPERNODE_ARRAYNODE_ZARRAYNODE_VALUESNODE_HASHNODE_RETURNNODE_YIELDNODE_LVARNODE_DVARNODE_GVARNODE_IVARNODE_CONSTNODE_CVARNODE_NTH_REFNODE_BACK_REFNODE_MATCHNODE_MATCH2NODE_MATCH3NODE_LITNODE_STRNODE_DSTRNODE_XSTRNODE_DXSTRNODE_EVSTRNODE_DREGXNODE_DREGX_ONCENODE_ARGSNODE_ARGS_AUXNODE_OPT_ARGNODE_KW_ARGNODE_POSTARGNODE_ARGSCATNODE_ARGSPUSHNODE_SPLATNODE_TO_ARYNODE_BLOCK_ARGNODE_BLOCK_PASSNODE_DEFNNODE_DEFSNODE_ALIASNODE_VALIASNODE_UNDEFNODE_CLASSNODE_MODULENODE_SCLASSNODE_COLON2NODE_COLON3NODE_CREFNODE_DOT2NODE_DOT3NODE_FLIP2NODE_FLIP3NODE_SELFNODE_NILNODE_TRUENODE_FALSENODE_ERRINFONODE_DEFINEDNODE_POSTEXENODE_ALLOCANODE_BMETHODNODE_MEMONODE_IFUNCNODE_DSYMNODE_ATTRASGNNODE_PRELUDENODE_LAMBDATOTALObjectSpacememsize_ofmemsize_of_allcount_objects_sizecount_nodescount_tdata_objectsreachable_objects_fromreachable_objects_from_rootInternalObjectWrappertypeinspectinternal_object_id�ĵ������d���4������Դ������t���D����������������T���$���$���d���4������Ա��IJ��$���$���$���$���$����������������-����������������b��E��(����������������z��]��@��#����������������u��X��;������������������p��S��6�������������������k��N��1�������������������f��I��,����������������~���a���D���'���
����������������y���\���?���"��������˿����������t���W���:�����������ƾ����������o���R���5����������޽��������������j���M���0����������ټ��������������O���ۻ����reachable_object_from_root_i: category should insert at onceObjectSpace::InternalObjectWrapper== object_allocations_reporter: START
== object_allocations_reporter: END
trace_object_allocations_starttrace_object_allocations_cleartrace_object_allocations_debug_startlivedead-- %p (%s F: %p, C: %sC: %p@%s:%lu (%s))
trace_object_allocationstrace_object_allocations_stopallocation_sourcefileallocation_sourcelineallocation_class_pathallocation_method_idallocation_generation, "references":["%p", "%p"UNKNOWN{}{"address":"%p", "type":"%s", "class":"%p", "frozen":true, "node_type":"%s", "embedded":true, "broken":true, "fstring":true, "shared":true, "bytesize":%ld, "capacity":%ld, "value":\%c\u0000\b\t\f\n\r\u%04d, "encoding":"%s", "size":%ld, "default":"%p", "length":%ld, "name":"%s", "struct":"%s", "value":"%g", "ivars":%ld, "fd":%d], "file":"%s", "line":%lu, "method":"%s", "generation":%zu, "memsize":%zu, "flags":{"%s":true]}
tempfile.jsoncreateTempfilewrong output option: %li1:0:dumpdump_alloutputstdoutstring���������� �0�@�P�`�p���������@����������@�@�@�@�@��u�0� �����$�$�������$���������l�������������������������������t�����rubyobjrubyheap{"type":"ROOT", "root":"%s", "references":["%p";�8������P���(����<����P����l�������������� ���@���(`���xp��������������L��������p�����(p��l ������� ��������<���\P�����������0���@��`�� ���8���T@��p���� ���p����������$p��X������������������	 �0	���	���	���	p�8
P�d
P�
zRx�$����FJw�?:*3$"D�����\ ���Cp\���
�X����Dp
L�,���0E�a�@��� �L����E�D@u
AA4�ج��TF�E�D �D(�D0t(C ABB,���HVD���HNL\���F�B�A �D(�G0x
(A ABBFx
(J ABBI���	8�ܭ��cK�E�D �D(�G0v(C ABBC��������	���H0q
GP,����O�B�I �E(�D0�D8�G@c
8C0A(B BBBCh������L�|����F�I�B �B(�A0�A8�G� 
8A0A(B BBBAD���F�I�B �A(�A0�G�?
0A(A BBBG ����E�D0s
AC<`��<H`
HG@\����O�E�D �D(�G0[
(C ABBJ`����(�����E�I�G@p
AAI4����oF�A�D �M
ABEZ
ABK,����E�A�D S
DAN4��VD L
AP\��*HU
CIpl��2HU
KI ����RHi
GD
LI����:HZ
NI����:HZ
NI���ZE�I(L��E�N�Q �
CAC<0��HKT8��HNl@��kQ�Y����JE�D����QE�]
Fh ���xE�Y
B]
C�d��IK�U
H\ ����A�D0W
AC(,����E�A�G@`
AAA0X����B�A�A �D@~
 AABFH���F�E�B �B(�A0�D8�D`G
8A0A(B BBBG����)E�S����	���E��$����G��
A @���QK�d
AWI�Ld���S
B�B�B �B(�D0�D8�D��
8A0A(B BBBC8���cK�E�D �D(�G0n(C ABBK����4�,��F�D�D �Z
ABE]AB@(���B�B�E �D(�D0�G@�
0A(A BBBG(l0��E�L�D��
AAF(���E�L�D��
AAI���0E��
PGNU�+�* � �|�303`o�����
Ps� � ���o`x�
� ��h	���o`���o�o����o�� �� 0@P`p��������    0 @ P ` p � � � � � � � � !! !0!@!P!`!p!�!�!�!�!�!�!�!�!"" "0"@"P"`"p"�"�"�"�"�"�"�"�"## #0#@#P#`#p#�#�#�#�#�#�#�#�#$$ $0$@$P$`$p$�$�$GA$3a1�]sGA$3p1067 +�aGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p1067�aPsGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY +�bGA+GLIBCXX_ASSERTIONSobjspace.so-2.2.10-35.el8.x86_64.debug�'��7zXZ�ִF!t/���x]?�E�h=��ڊ�2N��|7��Ut��5�ܹE�2��B^k�.�h���z�fA��a��T���!���''e4��^�q��X
bG��z���C��!C"[�P�p^8/�_��d���6*;v1�e��b��48�E��1qE$�E����]�y���Uk��C+�c�n�U�`]�ךۈڼ���
ќW�,�cZ�����=��g]�H��#hra�y���_p�ዜk�i��)!�6�B�y9^���8h���cB�\+*X�D�6X�5��h�閾mE}�i0���hy 8�w���s�w�.@�P��t�1��S��ܞ��Tm�8N����e��;
�lllv�B�
gq>�x�3�J�J	�~�Y�Y?A�鴿����V�x����rb4b�l)��|��-r����G9�D��$OUP��x
.�_8�	&���5�ޢT[Cx���S���OFA�<(8�M�@9��)�f�2l��:�2�+�8��{,�����b$��=�� �^r�9�x��G��,���;��_�e���F�-
����Hc��/5����=�ף�]a�j��<c7��ϐORn�/���ŻAA��=ZD\���su�)�i��τΆ�j�=$yա3�Aլn�r:�
=��Z�����i7|�yt���j=`�ǁD\��Cp�g��5��eڜ�`�q��L��i��������I��u���4M�)����nӈ��@���ȍ���#f�g� +|���ã�5��pX�.N��*;�HH�u�mP�Փ�1!��wHf�ޗ?����AȔ��	�}������fPZ�I4���|�6�Fཟ���$���{�gT
� �%%�A�
i^D�|��=XIW$����m���U�+E&�	�#Q�L|���Z�IF>��?�ȜTٚC�4����*�~!D�1�d�*�z���핉�Db`ؐnɲS�į��]s�G��a�9��$p�5�J�Ӧ`ߙ��e�v��z�
��#��t��N������בkŀ���@�J*5�앷_M|:k.Z��qһTm"��ݕ[q58fյ�_K���K��\9��IFD����t�.����C��]ai�Ы�ܛ0�F��q�b�)L�1}:�
����=�ҫ�X�������|�,xq�&2,���m��Q�)dP-�mSS�v�ֺ7���ag�g�m�G� �gu县��í�C��nt=�Qi�H�,��@C#�l7��#�5�+	�[����$Kݑ'��^��%@+$1뜠��V��T�	N��	��ˬ���Tza�nlc5˝�U(��Dɪ�ȡ尺�q��[q_�I"Y�d�Rt�@�A�v���\�usT4ImhY��ac��t�(.��=���=�����)��-��
*��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``@(���	0xx8���o���E���o``@T��h^B�h��c���n�$�$�w`*`*�H}PsPs
�`s`sp�ЁЁ������������ �� ��� �� �  �h ��� �� ��� ��H�� ����� ������`��
�,@����+lib64/ruby/2.2.0/x86_64-linux/io/wait.so000075500000027330150402105760013125 0ustar00ELF>�
@�'@8	@�� �� � �� �� �   888$$���  S�td���  P�tdPPPDDQ�tdR�td�� � ``GNU�;*������9-��qB��`"BE���|�qXM�V� ���� Ugz, �F"�|�  ��  ��  ��__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_io_taint_checkrb_io_check_closedrb_io_check_writablerb_scan_argsrb_time_intervalrb_wait_for_single_fdrb_sys_fail__stack_chk_failrb_io_check_readablerb_io_read_pendingioctlInit_waitrb_cIOrb_define_methodlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64rui	�ii
�� `�  � � � � � � �      (  0  8  @  H  	P  
X  `  
h  p  x  ��H��H�� H��t��H����5 �% ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!�������%- D���%% D���% D���% D���%
 D���% D���%� D���%� D���%� D���%� D���%� D���%� D���%� DH�=� H�� H9�tH� H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�� H��t��fD�����=U u+UH�=� H��tH�=n �I����d����- ]������w������AUI��ATA��H��UH��SH��8dH�%(H�D$(1����H�XH�����H�����D��H�L$L��H�X1��4���H�|$1�H��t����H�D$H�T$H�T$�{����A�ą�x0H���G���A���HE�H�L$(dH3%(uH��8[]A\A]�1��h���������AUI��ATA��H��UH��SH��8dH�%(H�D$(1�����H�XH������H�����D��H�L$L��H��1�E1��a���H�|$H��t�1���L�d$H�D$H�T$H�������uf�{L��������xYH���j����{1�H�T$�T�&�����u9�D$���HO�H�L$(dH3%(u!H��8[]A\A]�����1��b�������ff.�f���SH��dH�%(H�D$1�����H�XH������H�����H�������uB�{H�T$�T������u
�D$1҅�H�L$dH3%(H��uH��[�@����4���@��SH��dH�%(H�D$1��B���H�XH���F���H������H���f�����~"H�H�DH�L$dH3%(u<H��[�D�{H�T$�T1������¸��uƋT$��~�Hc�H�D����f.���SH�\ 1�H�K���H�5�H�;���H�;1�H�����H�5o���H�;�����H�u���H�5[���H�;�����H�Z���H�5E�n���H�;[�����H�n���H�57�R�����H��H���01nreadready?waitwait_readablewait_writable;D����`����� �������������<0���`zRx�$H����FJw�?:*3$"D����8\x����F�E�G �D(�D`�
(A ABBA8����F�E�G �D(�D`�
(A ABBI ����E�D q
AE �L����E�D P
AF����E�qGNU�` � 0?OZhr��
� � ���o`��
�  8���	���o����o�o����o� 	 	0	@	P	`	p	�	�	�	�	�	�	GA$3a1�GA$3p1067pGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYp=GA+GLIBCXX_ASSERTIONSwait.so-2.2.10-35.el8.x86_64.debug�ݏA�7zXZ�ִF!t/���6]?�E�h=��ڊ�2N����. �ުM�X��D���!��T�/����p��v�j���,�q�RT��<�ᅧ2�}�ɠK؂$D������_�sq�2��:�1]6Y���(��~����Ub�.�.˱���{��S� ���5�d�X�*H�ݚG�`�j�L��v�6S� ���OR���;�M����M�
�m�B���d�|���q�g�rg9�qrl��+�YZ�c��
j'�"�-���ݤ��eκVבw�������d��DЏ>��bf
��3�A�{�o������}\��#��n[����)̀�퓦\m��f�䀀��v}&U<.d�J�n-�z�Y/���4W�U�K��E_�C-E��6����
�Q���*Eo�7�X��[86�Ya�5�p�Lu�4��G�3� ��ޣ)�!����)^P��3?X2�RW�<�5<Ȧ8C����-��C���9�ۢ�(�)'���V"�L�������]�����y���F���%NBC,��ě�*�NJ���Bc��wPe�hm�_o�1؋�H�"��qɱo�+S�� 6��0��Y_�qC>��%yӝ�#"wM����%���ʵ��T�քa�{P�^TXL��`�f�mc�
�vF�,`&��2E�����N�C��z��!��+���0����zؖ�U1��κ�`r���F`�Lt+�(S}���'�d����:D����8���������q�TK4ʌCU,i,B/߇ŘV���X�s�]����9�K
��^(�'T>5�������ׄ-ž/�@h?������g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��0���8���o��,E���o��0T���^B��8h��c		�n�	�	�w�
�
^}
�21�PPD���8��� �� ��� ��� ��� � �� �(�   ���  � �� `� H
�"(�"xh&+lib64/ruby/2.2.0/x86_64-linux/io/console.so000075500000050250150402105760013620 0ustar00ELF>p@hI@8	@// �=�= �= �0 �=�= �=   888$$�.�.�.  S�td�.�.�.  P�td|)|)|)��Q�tdR�td�=�= �= ppGNU��}U�Y�����K�K��1�H!@135BE���|�qX/D�o����.�� #�%�K{��a�b|�U =nW���	Kl���l��3W��, F"�a�s"pA 5�A )pA w�&�� (�__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_funcallvrb_intern2rb_cIOrb_cFilerb_const_definedrb_cloexec_openrb_update_max_fdrb_class_new_instancerb_io_taint_checkrb_io_check_closedrb_str_new_staticrb_obj_freezerb_const_setrb_const_getrb_const_removerb_id2symrb_check_typerb_io_closerb_sym2idrb_funcallrb_error_arity__stack_chk_failtcflushrb_sys_failtcgetattr__errno_locationtcsetattrcfmakerawrb_scan_argsrb_hash_arefrb_funcallv_publicrb_fix2intrb_num2intioctlrb_assoc_newrb_Arrayrb_gc_writebarrier_unprotectrb_num2uintrb_protectrb_jump_tagrb_yieldInitVM_consolerb_define_methodrb_define_singleton_methodrb_define_module_underInit_consolelibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib640ui	:ii
F�ui	:�=  �= ��= �= �? �? �? �? �? +�? ,�? 0@  @ (@ 0@ 8@ @@ H@ P@ 	X@ 
`@ h@ p@ 
x@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@  �@ !A "A #A $A % A &(A 40A '8A (@A )HA *PA ,XA -`A .hA /��H��H��. H��t��H����5/ �%/ ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A�������%M, D���%E, D���%=, D���%5, D���%-, D���%%, D���%, D���%, D���%
, D���%, D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%}+ D���%u+ D���%m+ D���%e+ D���%]+ D���%U+ D���%M+ D���%E+ D���%=+ D���%5+ D���%-+ D���%%+ D���%+ D���%+ D���%
+ D���%+ D���%�* DH�=�* H��* H9�tH�>) H��t	�����H�=�* H�5�* H)�H��H��H��?H�H�tH�) H��t��fD�����=�* u+UH�=�( H��tH�=�& �)����d����]* ]������w������H�"�O{�H	�����g�����ATI��H�5* U��SH��H��tL���H��[]A\�S����H�=Q���H��H��) ����H�5�) 1�1�����ff.����AVAUATUSH�� dH�%(H�D$1�����I��H��1��OH��' H9u
H��' H�H�5�) H���������H����1ҾH�=��~���Lc�E����D��O�d$���H��H��L�$$H�D$�H���H��I���}���L�pL������H�=G���H������A�NL��H��I�FH�5�( �m���H����H�L$dH3%(L���H�� []A\A]A^�H�5�( H�����I�ĨuH�����uZH�5�( H������H���	���H�=k( ���H9���A��DH�.�I��H��������������u�I�D$H��t��x�t�H���A���H�=( �I���H9�u$L��A����H�5�' H���'�������f�H���(���L��L��1�H��1����I������1�����M���ff.�f���UH��SH�����H�XH�����{1��8�����u
H��H��[]�1�����SH��PdH�%(H�D$H1����H�XH������{H���;�����u)�D$��H��H�H�Ѓ�H�T$HdH3%(u
H��P[�1�������f�U��SH��H���
�����8u&H�ھ�������u�H���[]��H��1�[]����AUI��ATUH��SH��XdH�%(H�D$H1�I������H�XH�������[L����k�����uP�D$I�����u:��D$L����I�����t.H�T$HdH3%(H��u"H��X[]A\A]����x�D$��1�������ff.���ATUH��SH��PdH�%(H�D$H1�I���)���H�XH���-����[L��������u@L���H�"�L${�H	$�����tH�T$HdH3%(H��uH��P[]A\�1����������UH��SH��H���+����c�H��t�E��x�C�E��x�CH��[]��AUI��ATI��U��SH��H��XdH�%(H�D$H1�����1���uDH�C0�oL���oK�oS H�D$0�C8H��)$H��)L$)T$ �D$8A��H�މ������H�T$HdH3%(��uH��X[]A\A]��*���f.�ATUSH��H��H�� dH�%(H�D$1�H�L$���H�|$�8H�=$ H�����s���H�|$H������H�=�# H��H�����N���H�|$H�����H�I��1�H��u_I��u!H�T$dH3%(��H�� []A\�@L��H�L$��*H�D$�(���H�Ǩtq�L����CH���@H���th�3����H��I��t��fDH�=�
����H��H�# �=���H�=�
�����H��H�# �������f��{����f�1�� ������@��AUATUH��SH��hdH�%(H�D$X1�H�T$�U���H��I���*���H�XH���.���D�cH�\$H��D�������u8L��H���;���H��D�������tH�L$XdH3%(H��uH��h[]A\A]�1��������f���UH��SH�����H�XH�����H�{XH��t���H�XH������{�����u
H��H��[]�1����fD��SH��dH�%(H�D$1��B���H�XH���F���H�{XH��t�(���H�XH���,����{1�H��T���u.�t$�<$H�t6H�|?�.���H�L$dH3%(u
H��[�1�������ff.����ATUH��S��H�XH����H�{XD�cH��u�D������uJH��[]A\�fD�s�H�XH���w�[���t�A9�t�1�D�����u������t�1��e���D��ATI��USH��H��0dH�%(H�D$(1��	�H�hH���
�H����H��H����H��H� ����H�sH�;�� ��H����H��H��H��H�D$ P1�L�L$ L�D$��H�}XXZH�����]H�D$ H�<$1�H��t��H�|$f�D$ 1�H��t��H�|$f�D$"1�H��t�l�H�|$f�D$$1�H��t�U�f�D$&H�T$ 1��T�����uWH�L$(dH3%(L��u?H��0[]A\�D�{�%�����H�s ����f����H�XH�����[�3������1����ff.�AWAVAUI��ATI��UH��SH��H�4$dH�%(H��$�1��D$�����b�L�xL���f�A�_�����I�XA���D$H�����D$����H��E1�A���H�hH����A���tD9u��E����|$���KH��$�dH3%(L���+H�Ĩ[]A\A]A^A_��H�t$ L��L������������D$A��A�_�D$I�XH��tD���n�A��L�xL���o�A�_����!���A9�����H�t$\L��L���������GH�<$H��H�T$�D$A���H��I����H�hH���	�A�������H�}XH����}9����H�t$\�v������������D$������L$�L$1������������f.�H�<$H��H�T$E1��\�H��I���a�H�hH���e�A����\���D9u�I���H�t$ D��������4������D$������L$E���h����#������A�����A�_��D$�o���fD���������D$������H�hH������}9�����������s�������f���H�5M 1�H����������H�5- 1�H�|�������SH��H��dH�%(H�D$1�H���L���H�e���H�5��H��H���s���H�L$dH3%(uH��[��8����SH��H��dH�%(H�D$1�H�����H�5� H�����H��H������H�L$dH3%(uH��[�������SH�T �����H�����H�5kH�;���H�;�����H�����H�5Q��H�;1�H����H�5>��H�;1�H���H�5-�~�H�;�����H�����H�5�c�H�;�H���H�5�H�H�;1�H��H�5��0�H�;1�H�4���H�5���H�;1�H�L���H�5���H�;�H�a���H�5����H�;1�H�y�H�5����H�;1�H�����H�5���H�;1�H�����H�5���H�;�����H���H�5r��H�;H�5k�#������H�W�[H�5H���W����H��H�q H��t<H�} H�V H��tyH�b H�; H��t6H�G H���v�fD�H�=q���H� �fD�H�=���H�� H�� H���(���H�=���H�� �j�����H��H���getc/dev/tty0:mintime22rawraw!cookedcooked!getchecho=echo?noechowinsizewinsize=iflushioflushconsolegeneric_readableclose;����D�$��<��P��d4��T�������D�8��lD�������@4���t����4�������d���,�l����$����D�����������(����DzRx�$���FJw�?:*3$"D��\p�p|�	(�x�MF�K�C �Q
ABH���@���3F�B�B �A(�A0�DP
0A(A BBBA(��=E�D�D c
DAA 4��nE�D`W
AA0X�IA�C�G f
FAHDCA8� ��F�E�A �D(�D�n
(A ABBH0����F�A�D �Dpp
 AABA$���9E�D�G fAA8$�B�E�D �C(�G�u
(A ABBA0`l�|B�A�A �N@�
 AABE8���F�B�A �D(�D�z
(A ABBA(��ZE�D�D @
DAA �P�E�D }
AA( ��F�A�D �s
ABG<L0�F�D�A �GPjXM`VXAP�
 AABFH���B�B�B �E(�D0�D8�G��
8A0A(B BBBH�D����P��� \���XE�G E
AA $����XE�G E
AAH����E�� dX����H}
KC
MGNU� ��= ���P�
�(�= �= ���o`��
}@ ���	���o����o�o&���o�=  0@P`p�������� 0@P`p�������� 0@P`p����GA$3a1��(GA$3p10670�(GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY0IGA+GLIBCXX_ASSERTIONSconsole.so-2.2.10-35.el8.x86_64.debug��Z��7zXZ�ִF!t/���]?�E�h=��ڊ�2N�$F�x���Ph�!h�s�A��w�c/�)J-����ۜ��*��Yq"�׵�6�;�H<3�`�(	�Cz
�C^�,ɝTY	���"��%9�f���yޕgB��fQE�D�^�P`D:�i6��K�%�ا`�A�59h\*bZz�E�S	�y�P`oO������Y�ɻ4m˛36�4�i�7c�H!���,�
'#��~�ו4�<T�c)B�����a��&�Ȅb		7�c���kF������� r7��I�r�	�~�.-Zi�m?���æ��O/�4�2��X���E�!~rK�S$�lX]�J`�zߝ32���;��@����3�gn|�*��Z��x(ӓ�L��*����OX����==��u�s1�5� �z���3���`�h�4f?=Vb2^cjf�bx&t[Ŭu��*Ӈ�5�9�J��
��<i�5�5���шZ���W��y%�-�E�\�0�9b�|���z�U�W�]my�m�>�7E
#����6�td33&
6W��V�+��[Sp7�KN��U�:�c�8�p��B��rK�^���6V��^%�
���Yu�a@z:M�@c�����Op(�IϾ'�+7!�t�?�
e�N�CX����4�qi�c�
���,Qm�+8���->)N���P��R_<�5��@?�Ϊ^0N��y��=�0a�^�����xs�7=��,hc���;O��N`z�̲ZX�g�\CC
!Y�`���
��I&��3w�寁!�Z�Wa���H����N<��[���xqӕ�s8!��,�Q�Rl�[����V��T�f��[�H�]�e(�Y�Uj8��2E8go厹�1����u���P�}�d�o���]/�}��n��#��mq5U*�Kx�g�[�{����g�O])�¶T�Z��"ovt�Lm��u�j�U5����؍v)�M4o�uK�b�b`�����+^\��1�R�񽇒�ia��̦
���<}��K`=�����4?���N[o[sy:^IB͒��ƫ�1V���#p�̒��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``8(��0��}8���o&&lE���o��PT���^B��h��c�n���wppm}�(�(
�2�(�(��|)|)��`*`*���.�. ��= �=��= �=��= �=��= �= ��? �?8�@ @p�pA pAP��A`pAH
�C,�CT8H+lib64/ruby/2.2.0/x86_64-linux/io/nonblock.so000075500000027320150402105760013765 0ustar00ELF>�	@�'@8	@�� �� � �� �� �   888$$���  S�td���  P�td


TTQ�tdR�td�� � hhGNU�	(�J�X#~��v��VE�@ �BE���|�qX�0� U���� �gy��, F"[Bh  Up  Ih  ��[__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizefcntlrb_sys_failrb_io_taint_checkrb_io_check_closedrb_scan_argsrb_yieldrb_ensure__stack_chk_failrb_io_set_nonblockInit_nonblockrb_cIOrb_define_methodlibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.4GLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib648ii
Zui	d� `
�  
� � � � � � � 
�      (  0  8  @  	H  
P  X  `  ��H��H�� H��t��H����5� �%� ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q�������%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� DH�=� H�� H9�tH� H��t	�����H�=� H�5z H)�H��H��H��?H�H�tH�� H��t��fD�����== u+UH�=� H��tH�=f �I����d���� ]������w������H���W�?1��������t
�H���1������H��1���`������tH���1�����ff.�@��S���H�XH������{���[H��4H��?���D��%��t-��u4����H��1��������tH������t������1��U���D��AVI��AUA��H��ATA�UH��SH�� dH�%(H�D$1�����H�XH������E��~)1�H�L$L��D��H�=E1��l���H�D$����A�ċ{�����{D��ƉD$�|$�"���H�=� H�L$H��H�|����G���H�T$dH3%(u
H�� []A\A]A^�����D��ATI��UH��S�-���H�XH���1���I�����tH������H��[]A\���{�8����{1҉����H��[]A\�@��SH�\ 1�H�;���H�5PH�;����H�;�H�m���H�5<���H�;[�����H�����H�5*�����H��H���01nonblock?nonblock=nonblock;P	T���l����d��������������D������`t����zRx�$���FJw�?:*3$"Dh����\����/H_
Ax���!DU
A����+E�Z���K[UT@� ����F�E�H �G(�D0�DP�
0A(A BBBA4����\F�D�D �f
ABIXABH���[E�~GNU�`
 
� � .8p8
�� � ���o`x�
�  �Hp�	���o@���o�o���o� p��������	GA$3a18�GA$3p1067p
�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFYp
�
GA+GLIBCXX_ASSERTIONSnonblock.so-2.2.10-35.el8.x86_64.debug%P��7zXZ�ִF!t/���H]?�E�h=��ڊ�2N����> �.;8��'dB�s�}:Rx�@�����m��5ĢN�/:S�ۡ�C�=7V����C�D�drM�y��:�GjHV�m��‡�r�j����a��z���Ⱦ	�S�t�q�Y���*�X�Ы|<iW�o�ѝgȰ�}�M����)�L��� �ck�#Ҹ�WC.)+���I��-�
��=N����8Z2���5i���}3.��Yjs���Y�G��j=��Z���,�G�D��
�L��u��޸���&��ݕ�(�~1�l�#:�BzUzJI5ν_@se`�1�0��i��s���_�T��G\��4�/��{�?�,���T�)T�	cu cZ^+˼0�O�k���U���t��-z`�&�q�,��4� -����ee��trO42�l7J?�� �x){�|J�g��
���?!@�.��Ʈ[��O���*(=�f�^��v5)G�m���sG��#��4M ��&�p͖�_=W��%Yy����(�m�a�I��$��P.}Ik���l�c�54/�g4@B��扬���6��M�ඨ��y2򣅡���g4��،;$�Q�	���W-�.�}�D�N63X���iq:�)�nܗ}���7�vG:_Co���J�!��ϭ*�8$�������������=� 2�(;R
��55V�[�K�T�m��E�!Զk0��P�;G�&inv��]���efaE���0{?xd���9G��!�>��È�%�5+���iͦ�v7�Ő�U����&��2��a	?�}��9����{~��׿�+�#��ߊE��˾
����@!:��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0xx�8���o(E���o@@0Tpp�^BHH�h88c``�n		�w�	�	+}��
�2�� �

T�`
`
d��� �� ��� ��� ��� � �� �0�   h�h  h �p `h H
�",�"�d&+lib64/ruby/2.2.0/x86_64-linux/racc/cparse.so000075500000050130150402105760013731 0ustar00ELF>�@I@8	@:: == = H� �=�= �=   888$$�9�9�9  S�td�9�9�9  P�td�5�5�5��Q�tdR�td== = ��GNU٠
�<���2�ou,0�A @023BE���|�qX7�/x��S 
��k���m=H�� �<U3�{�}������, ^,F"e�U�'`�
XA  �A XA ��0z__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_gc_markrb_ary_storerb_funcallrb_int2bigrb_ary_subseqrb_catchrb_ivar_getrb_fix2intrb_num2intrb_num2longrb_sym2idrb_eTypeErrorrb_raiserb_check_typeddatarb_check_typerb_ary_entryrb_ary_new_caparb_ivar_setrb_iv_setrb_ary_poprb_ary_newrb_id2namerb_eArgErrorrb_str_new_staticrb_obj_classrb_hash_arefruby_xcallocrb_data_typed_object_alloc__stack_chk_failrb_block_callrb_iter_breakInit_cparserb_intern2rb_cObjectrb_const_definedrb_const_getrb_const_get_atrb_define_private_methodrb_define_constrb_define_class_underrb_undef_alloc_funcrb_undef_methodrb_eRuntimeErrorrb_define_modulelibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5GLIBC_2.4/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64ui	%ii
1= p= 0 =  = @= �4H= �X= ��? �? �? �? �?  �? %�? &�? (@  @ (@ 0@ 8@ @@ 	H@ 
P@ X@ `@ 
h@ p@ x@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ !�@ "A #A $A 'A ( A )(A *0A +8A ,@A -HA .PA /��H��H�)/ H��t��H����5R/ �%S/ ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q�������%�, D���%�, D���%�, D���%�, D���%�, D���%�, D���%�, D���%�, D���%�, D���%�, D���%}, D���%u, D���%m, D���%e, D���%], D���%U, D���%M, D���%E, D���%=, D���%5, D���%-, D���%%, D���%, D���%, D���%
, D���%, D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ DH�=�+ H��+ H9�tH��) H��t	�����H�=a+ H�5Z+ H)�H��H��H��?H�H�tH��) H��t��fD�����=+ u+UH�=�) H��tH�=�& ����d�����* ]������w���������fD��SH��H�?����H�{����H�{���H�{(���H�{0���H�{8���H�{@���H�{H���H�{P���H�{X����H�{`�v���H�{p�m���H�{x�d���H����X���H����L���H����@���H����4���H���[�'����ATI��H��UH��SH��H���H�7�� ��H�������������tFH���H�7�� urH�wL�����H�{L��1�L���L����H�5�) ����H�@H���H�xXH�T-H���H�7�� t1H��[]��A\����H������H�w�T����H�w[]A\�c���H�����H���H��x;H��� u#H�GH9�H��HN�H)�H�����f.�H���������f.�UH��SH)�H��H��H���H�H�5�H�=����H�{H�5�( H���\����t8H�H���H���t���H��[]�f.��{���H��[]�@H���h����fD@��t@��uH�����t�����u���PH�L& H�5�H�81����AWI��AVM��AUI��ATI��H�5�# UH��SH�����H��L�(L�`L�xI��tL���{���H�C H�5�' L���x����H��H�������������i���H�E�� ��H�UH�B�H����1�H���`����I��H���0���L�s(�H���?����I��H������L�s0�H�������I��H�����L�s8�H������I��H������L�s@�H�������I��H�����L�sH�H������I��H�����L�sP�H������I��H���j���L�sX�H���y����I��H���I���L�s`�H���X�����PH�H�Ch�	H���<����I��H������L�sp�
H�������I��H�����L�sx�H��������H�H����H���������H�H���H�E �#����ǃ����FH����@�M����@H����<���Hǃ�H�0H����� ��H�pH�Ǻ�z���H�5c% �L��Hǃ�Hǃ�Hǃ��5����CH���L��Hǃ�H�5Hǃ����������H���H�5�L������H��L��[]A\A]A^A_�@H�����E���@H�}
�����
H��������H���������������������@�������f��H�5OL���<����i����H���8����C���H���(�������H���������H����H��H�=2$ H�5�1����@��AWH��H�5� AVAUATUSH��(�_���H���H�xpH�����H�{pH��H���H�p���H�{pI��H���H�p�n���I��@���IH�L������I��H��uVH9o# ���������H�D$4L���H�D$I�0�� �I�p��H9# H���u(H��� �H�wH)����H�D$4H�D$�H�����1�H��H�D$��H�D$L���H���tI��L������I��u�����H�D$4L���@L�����H��u�L���L9=l" M��t9D���H�{E����L�L$H�L$L��1����L���H�D$I�0�� ���H����H�T$L������D���E��tWH���H�7�� ��H����L�����H��H�{M��L�������1�H�L$ H�5�! ���^_H���H�7�� ��H������H���T���H�I��A����I�L+sh�'H�{`H��� ��H����L9���L����H������EH�I���H�{HH��� ��H����L9���L����H��H����H�{PH��� ��H�GL9�~sL����I��H��tbH�@L���K�D6I9�uEA��A���d@���D���H�D$E����H�D$4H�D$�����H�{XH��� �H����L9��E1�H���H�7�� tvH��H�����E��tsH�H���H��(�[]A\A]A^A_�@H�wH������C���H����I��A���O���L����I���B���H�wH����E��u�H����H���f.�H�W�/����H�L$�L��1���L���H�D$����H���0�H������H�WL9����L�����A��H��A������@H�w�����H��H�ƃ����f�H��������H�D$4�"�L���H�D$H�D$�-����H���H��I���>���L���H�D$f�L�����I��u�L�������fDH�G�U���������uH�D$4���H�����\���H���H�����L���H�D$���L�����]���H�= H�5Q1���f.�AVAUI��ATM��USH��H����I��H�����H�������H��ƒ������� uJH�kH��uP1�H���N�I�EH��� trH���¸����uqI�$H��[]A\A]A^��H����H��H��t�A�>��H�>���H�
&H��H�M I��H�5�H�81����H�{��„�t��H�����H��H�=����I�$H��[]A\A]A^�H��H�t$���H�t$H��A���t-H�>�S�H�
�H��H�� I��H�5�H�81���H�
ZH�\��H�
JH�L�,���ff.�AUATUSH��H��(H�t$H�T$����H����H����H�{@H��� �H�GH9��H����H�{8H��� ��H����H�¸H9���H����I��M����L9���=H���H��~3H��������?H�x�H�H����sH�T?H�{H�5S �N�H�L$L��H�߽H��������H���������H�@L���H�� H�L6H�5� H�{�1��7�H�������H����H9������H�������H�I��H�����tnH��thD�SE����H�����L���H��([]A\A]�DL���H�{xH�t$��H���H����D���E�������H�L�H���+H�{(H��� ��H����H9��H�����H������H�I��H�{0H��� ��H�GH9���H����H������)H�H���1�H9���������f.�H���x��L���D����Hǃ�E���)����H�{L�L$H���L�D$H�5 1��w�H��������fDH����I���U�����H���fDH���1�����f�����%���H�I��M���*���H���H��M��t	I9��|I9���L9���������ulH���1��^�Hǃ�H���H��([]A\A]ÐH�G�S����H���H���@H�W�{����H����E���@H�{H�5� 1�1��\��{����H�����-���@��H�����H��L�D$��L�D$H������f�H���H����H��uH������H�{H�5� �Hǃ��w�H����vfDH��H����������H�����H���H�7�� �.H�����.H������"H����H������xH����H�{@H��� ��H����H9���H����H�������H�H��I���}H�{(H��� ��H����L9�~aL���a�H��tS��3H�I��H�{0H��� ��H����L9�~)L���)�H��t���H�H9����H���H��� �����H�������H�wH�������H����������H�W����H�G�9����H��������H�G�Q����Hǃ�Hǃ��
���DH������H���H�{1�L���L����H�5 ������H���8�I������L��H���5���t@����������H�{L�D$�1�H���H���L���H�5� �0�H����$���@H�����I�����H�{H�5� 1�1���H�L$H�s H�{L�D$H�������,���DH�����C���H���s�����M��~9L9����L9�������H�=x L��H�51����t�H���H��L9�}�L��H���$�������&���Hǃ�Hǃ��s���H�= L��H�5�1���H� H�5�H�81��{�H�L$�L��H���f��o������AUI��ATI��UH���SH��(dH�%(H�D$1��Z�H�=� H� H��H����1�A�H��I������H��H�D$�‰��L����1ɺH���C�H�D$����H�D$H�D$H�D$H���H�L$dH3%(uH��([]A\A]����ff.���AWM��AVI��AUI����ATI��UH���SH��(dH�%(H�D$1��p�H�=� H�" H��H�����1�M��L��I�����H��H��H�D$�‰��L����1ɺH���C�H�D$���H�s H�{1�L�1�L�v�A�H���t5H�D$H�D$H�D$H���H�L$dH3%(u3H��([]A\A]A^A_�H�{ ��H�5�H��H�� H�81��^���f���UH��H��H�5.
 SH��(dH�%(H�D$1����H���uZH�p H�xH��H��H�L$L�D$�m�H�T$H�t$H�߹��H���w9H�T$dH3%(�uH��([]�H�A H�5)H�81��������ff.���AT�H�=US��H�-� H��H��H�}�!����H�}H�����H�=�I���I�L��H����H��H�߹H�����H�5�� ��H��H�����H�5����H�=��4�H��H�5�H������<H�=.��H��H�5�H�����H�UH�5�L����H��H�� ���H�=� H�5��J�H�=� H�5~�7�H��
 �H�=vH�H�� �U��
H�=�H�� �=��H�=LH�r �%��H�==H�R �
��H�=2H�2 ���
H�=-H� ����H�= H�� ����H�=H�� ���H�=H�� ���H�=H�� �}��
H�=�H�r �e�[]H�\ A\�f�H�=����H�UH�5�H��I����H�������H��H���racc_jumpnot symbol[Racc Bug] wrong arg.size %ld@vstack@tstackreturnednext_tokenyielded$token given after EOFextra token after EndOfTokenRaccParser_racc_do_parse_c_racc_yyparse_c1.4.5Racc_Runtime_Core_Version_CRacc_Runtime_Core_Id_CCparseParamsinitializeinitialize_copy@yydebugon_error_reduce_none@racc_error_statusracc_shiftracc_reduceracc_acceptracc_read_tokenracc_next_stateracc_e_popracc/cparsestate stack unexpectedly empty%s() %s %li (must be Array[2])%s() %s wrong size of array (%ld for 2)[Racc Bug] unknown act value %ld%s() is finished before EndOfToken$originalId: cparse.c,v 1.8 2006/07/06 11:39:46 aamine Exp $;�����H���������X�X�T��h8��x������\h���������D��������zRx�$���FJw�?:*3$"Dp���\���
p����E��8�8��B�G�D ��
AEFe
ABH���F4�8��A�I�J O
AAKI
AAE��=eH(��,B�E�E �E(�K0�D8�D@"
8D0A(B BBBEXt��F�L�B �B(�A0�A8�D`hTpYhA`�
8F0A(B BBBEX�d��B�B�E �D(�A0�D@v
0A(A BBBH�
0A(A BBBAL,���B�B�A �A(�GP�
(A ABBF
(A ABBB8|���F�E�I �I(�DP�
(A ABBAH�����'F�E�E �J(�D0�I8�D`�
8A0A(B BBBA(p����E�N�D@v
AAA,0���zF�M�A �(
AIJGNU�p0 = �4���������������;�
<3= = ���o`x�
h@ ��xP	���oH���o�o�
���o�= ���� 0@P`p�������� 0@P`p�������� 0GA$3a1�I3GA$3p1067�:3GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY��GA+GLIBCXX_ASSERTIONScparse.so-2.2.10-35.el8.x86_64.debug:]��7zXZ�ִF!t/����]?�E�h=��ڊ�2N��~ ��AKK������N>�J�q��8�o�l#� J9sDt�`�a4�>-K�L3��I�W����SX��'{���g���b��ը����%u�r���E).�2�^e�=�=��l�T�b��5����X�:��J��͗���E�S
s��/nE0B,��b+�9��'3�7�Q62vz��ɿ�
�g��sq�A��`��^�G�Ga|\7�0ȹ�� Z���=�ҭ�1p�OBY�F���+��@����nK?����C�-��� �mz��Cy��s����{�bxh7����C#\
.�,��!PZ��X
'���`�=F^����N ��{��ե��X��9fJE�i�
�-F���,���F��Q9������g�nt�����;��^cK[���_�h��wOA�T	.��w1��ٽ�zՒ�L:k��_���@���>�^�NȪ%���޲e�@�CW%�r�t��~��ĢBM��>��Г�0&��3���~|v��!��>#p頗"ջ�Z l�^��)�ڼ���"��y��Z �>�˰���ڿ��j�AԹ����s��b4����&�����D���?�9�O��Tf��}�>mXS*#AĀ	:�*�cY��:�օ���zB]I,J hX��|�bbq��_����;�^�K.���q�A����^+��vV���������f�3�B(�Y�(��ظ��$�e@a�2�_�
�E��^�e)ك=��D!�Ä�b�=�Йk���8��N���B]l�S0[�v���"ƐCʩ�QC�_cN纠��y��I�%"�mi��G�[%į+�#�:E
�@�a��y�O����F{'��f�����;U�%U�V�1rKT��ͼh	S%�}��:�e>���ȇ�������=�
He^q��oL8[�/��Øj��Nu�����X����~Жǰ���(��g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(���0xxh8���o�
�
hE���oHH0TxxP^B���h��c���n@@�w��z}<3<3
�2P3P3���5�5���6�6`��9�9 �= =�= =� =  =h ��= �= ��? �?@�@ @X�XA XAp��A`XAH
�C,�C�G+lib64/ruby/2.2.0/x86_64-linux/digest.so000075500000050340150402105770013027 0ustar00ELF>�@�I@8	@�.�. == = P� �=�= �=   888$$�.�.�.  S�td�.�.�.  P�td ) ) )Q�tdR�td== = ��GNUT��_6#㉠����!n{82�B 245BE���|�qXYR	��� ��2���e��UsL�� X����<��� oGf�x�^��, (F"�-��`A ��A �`A R "-__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_string_valuerb_usascii_str_newrb_eRuntimeErrorrb_raiserb_funcallvrb_funcallrb_scan_argsrb_obj_clone__stack_chk_failrb_obj_classnamestrlenrb_str_buf_newrb_str_catrb_str_cat_cstrrb_str_buf_appendrb_class_superclassrb_ivar_definedrb_ivar_getrb_check_typerb_obj_classrb_check_typeddatarb_str_newmemcpyrb_error_frozen_objectrb_eTypeErrorruby_xmallocrb_data_typed_object_allocrb_eNotImpErrorrb_obj_allocrb_obj_call_initrb_eArgErrorrb_obj_is_kind_ofrb_check_string_typerb_str_cmpInit_digestrb_define_modulerb_define_module_functionrb_define_module_underrb_define_methodrb_define_private_methodrb_cObjectrb_define_class_underrb_include_modulerb_define_singleton_methodrb_define_alloc_funcrb_intern2libruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.14GLIBC_2.4GLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64z����ii
�ui	�= P=  =  = @= (�? �? �? �? �? �? $�? *�? ,�? -@  @ (@ 0@ 8@ @@ 	H@ 
P@ X@ `@ 
h@ p@ x@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@ �@  �@ !�@ "A #A %A &A ' A ((A )0A +8A -@A .HA /PA 0XA 1��H��H�a. H��t��H����5�. �%�. ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a�������%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%�+ D���%}+ D���%u+ D���%m+ D���%e+ D���%]+ D���%U+ D���%M+ D���%E+ D���%=+ D���%5+ D���%-+ D���%%+ D���%+ D���%+ D���%
+ D���%+ D���%�* D���%�* D���%�* D���%�* D���%�* D���%�* D���%�* D���%�* D���%�* DH�=�* H��* H9�tH��( H��t	�����H�=�* H�5�* H)�H��H��H��?H�H�tH��( H��t��fD�����=E* u+UH�=�( H��tH�=�% �����d����* ]������w������H����USH��H�|$H�|$�;���H�D$H��� unH��H�h��1�H�4���H�xH� u{H��t:1�L�MD�L�΃�@��A���A�40�LW@�4WH��H9�u�H��[]�DH�XH�hH��������?H9�v�H��' H�5;H�81����H�x�|������H����H��H�5d) H�׉����H��H������fD��H����@��H�5) 1�1�����ff.����H�5) 1�1����ff.����U1�1�SH��H��H�5�( ����H�5�( H��1�H��1����H��H��[]�o���ff.�@��U1�1�SH��H��H�5�( �s���H�5�( H��1�H��1��]���H��H��[]���USH��H�H��dH�%(H�D$1�H��������~xH�5I( 1�H��1��
���H�$�1�H�5#( H����H�5( 1�1�H�����H�5	( 1�H��H��1�����H�����H�L$dH3%(u-H��[]�H�-�' H���y���1�H��H��1����H����`�����S�V���H�5�' 1�H��H��1��`���H��[�ff.�SH������H��H�5
H��H�c% H�81����f���PXH�5
H�����f.���PXH�5�H�����f.���PXH�5�H���z���f.���PXH�5�H���Z���f.���ATUH��S�`���H��I���E���H�xE�����H�5�H��H���u���L��H�����H�ߺH�5d�V���H��1�1����H��H�����H�ߺH�5<�+���H��[]A\�PXH�5%H��H�,$ H�81��r���f�SH��tYH���@H���x���H��H��t?H�5�% H�����H��t�H�5�% H������H��H������H�C �8u[ÐH��# H�5�H�81����H��# H�5RH�81������H�����H���[���Hc@H��H�D�ff.�f���H���S���H���+���Hc@H��H�D�ff.�f���USH��H������H�����H��H�5|  H������H��U ��u
H��H��[]����f.���ATUH��S����H�����H��H�5.  H�����H�s1�I�����H��H�C0H�uH�E tH�uL���L��S ��uH��[]A\��2���f���ATUSH��H��H�t$�W���H���/���H�5� H��I���=���H�|$H��� ���H�t$I�D$(H��� uH��H����H���H��H��[]A\�f�H�VH�v��fD��ATUSH��H9�tz@��u|H�����tsH��ƒ���tf��uaH�����H�����H��I�����H���|���I9�uAH��H�5� ���H�5� H��H���v���I�T$H��H������H��[]A\�H�����H�'! H�5T	H�81����ff.���H9=-# ATUSt:H�����H�xI���K���H��H��A�T$ ��u.H��H��H�^ []A\����H��  H�5�	H�81�����������ATUSH�� dH�%(H�D$1���~nH�I�ԉ�H�|$H��H�D$�v���L������H�U�s�H�D$H�|$�(���H�L$H�|$1�H�5=" �����H�L$dH3%(u!H�� []A\�H�;  H�5EH�81��j����D��USH��H��H��dH�%(H�D$1�H���T��~pH�5�! 1�H��1���H�$�1�H�5�! H����H�5�! 1�1�H���p�H�5�! 1�H��H��1��Z�H�L$dH3%(H��u*H��[]�H�-Y! H������1�H��H��1��"�H���������H��H��1�1�dH�%(H�D$1�����H��H�$��H�$H��� u$H��
��>H��H�L$dH3%(uH���@HcBH�D������UH��SH��H��H��(H�5�  dH�%(H�D$1��q�H����H�5p  1�H��1��T�H��H�D$��H�D$H��t>H�|$�R�H�|$�H�H�|$H��� t;H�t$H�WH��� uAH����H9�t>1�H�L$dH3%(ucH��([]�DH��H�t$��H��H��� t�H�FH9�u�����u���H��1�1�����H��1�1�H�D$���H�D$�M����d�@��H��H�i H���8H�� H�J H����H�r H�+ H����H�S H� H���sH�4 H�� H���<H� H�� H���H�=eH�� �R�H�����H�5MH��H� ���H�=	 H�5:�=�H���H�5�H��H�� �k�H�=� �H�����H�5�L�H�=� 1�H�|���H�5]��H�=� 1�H�@���H�5;��H�=u 1�H����H�5���H�=Y 1�H���H�5����H�== �H�I���H�5v��H�= 1�H�-���H�5]��H�= 1�H�1���H�5I��H�=� �����H�����H�5��f�H�=� 1�H���H�5�J�H�=� �����H����H�5��+�H�=� 1�H�[�H�5���H�=p 1�H��H�5����H�=T 1�H���H�5����H�=8 1�H���H�5���H�� H�= H�5~H��~�1�H�u�H�5lH��H�� ��H�5� H�=� ���H�=� �����H���H�5��]�H�=� �����H���H�5��>�H� H���.H�w H�=� H�5�H�" ���H�5���H��H�D �g�H�=8 �H�4���H�5����H�= 1�H����H�5���H�=� �H�y���H�5���H�=� �H�Z���H�5$�n�H�=� 1�H����H�5�"�H�=� 1�H�2���H�5��6�H�=� 1�H���H�54H����fD�H�=&���H� ����H�=����H�� ����
H�=M��H�� �����	H�=#��H�� ����H�=�o�H�x �p����H�=��O�H�` �9����H�=s�/�H�H ������H��H���digest string too long01%s does not implement %s()block_lengthresetfinishupdate#<: >Digest initialization failed.different algorithmsno data givenhexdigestdigest_lengthDigesthexencodeInstance<<==inspectnewhexdigest!to_ssizeClassinitializemetadataBaseinitialize_copyIncompatible digest API versionDigest::Base cannot be directly inherited in RubyDigest::Base is an abstract class0123456789abcdef; P�(��P@�hP�| ��P��`����������$0�L�x0�`�����������p�H��d �P������@���D����t�������p��������HzRx�$ ��FJw�?:*3$"D���\��(p���A�A�D0�
AAF�p�*HZ���������$���AE�E�G fDA$��=E�E�G fDA(@���E�A�N0�
AADl��%E�_���'A����EAK���EAK���EAK���EAK(���F�A�D �~AB< �AAKX$��A�]
Bx��#HU���#HU(���FE�A�G n
DAA,���nF�A�D �Z
ABA0(�zF�A�A �G0W
 DABC,8t�F�A�A ��
ABA(h�hM�A�A �t
ABE0�H�F�A�A �D@}
 AABA(����E�A�N0�
AAA�h�pH S
E(��E�D�J@�
AAF<��-H=
KGNU�P = (��������!8GWbpz�P
P'= = ���o`��
�@ �x
@8	���o���o�o����o�= �������� 0@P`p�������� 0@P`p��������GA$3a1P]'GA$3p1067`M'GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY`hGA+GLIBCXX_ASSERTIONSdigest.so-2.2.10-35.el8.x86_64.debugO���7zXZ�ִF!t/���]]?�E�h=��ڊ�2N�Hf�n ��o?�=�BM���K2e���"�K�I��'<��__��aT�h�R_�[��<{�(o���N�Jȯ�ְ�/
��$	%�{uɡ:�uP��ui�Ӯ����<��߶�.�wfY�fV컖�<���#8�,u����Nv��, ��vC_Ϣ�G��@�Od=����'_��9%�qs�E"^|!�X����6I��.*P��P��2��Pi�L���[�<�&��1'��LS�Bb�bZ0��T��c���?4�.}Qv������$���=׊!�\��{}�j)~u?�j�.!BN����&�Fl�~|���$��Z*�]��7Ӧ�`��o�-FoEI�u��3�:�J�s���\��%�����F4K	s�ʥֈ�W��M&�g��"b�Y���t�I�\�~���'̒����.����"�L��W�@@=���g+1SD�0���s��k��2�����{k/��� �W�[x�Z�O�YSe)��(gE��S���h���˿��[ �1���4�s	�2��p�Ϭ�\RL��
�kf~(z�gg�0��D��95	�F{	�<B�H�9��%Nm��,;��~�u[>@~襤"x�Q��.�4M���_'����{��BWj�9��¸J.1�Ⱥ�7�� 4�^*�����h2���C��.��``�F���XêC��n�^�@��Y���zǦ���-u���&~^i�BC4�ʧ�h^m��}���r�$1��DPw�0���?G~��߄�ѿx'�<��N,W�E��'����J��k]��^�-�U.�W�XK���3~q����/���"�'��V��Dz]w��@
!����~��Ē)`?�����4n�6�7�-O�<���pU.h,.�����1�S�b��"���!@�`"`�QE��Z�R�NSF�`
�����q�Go=��+���~$�P�S]��'(�9�!��H�C
��~N@]����J��wH�/��2��+�KF��d)���k�	�QI
u�|��[ӿM�P^,�33��f�f3��a��F�o$�#���ʇ�b�M�г��D�K���q����{D��'2����g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��0���8���o��lE���o@T@@8^Bx
x
�hPPcpp�n�w���}P'P'
�`'`'�� ) )�0*0*X��.�. �= =�= =� =  =h ��= �= ��? �?H�@ @`�`A `A���A``AH
�C,�C�tH+lib64/ruby/2.2.0/x86_64-linux/coverage.so000075500000027510150402105770013346 0ustar00ELF>@�'@8	@�� �� �  �� �   888$$���  S�td���  P�td���<<Q�tdR�td�� � ``GNU����%��i-�Nce;9(���@ BE���q?���|�qX� �m�{ `�4�NU�#�, �F"	���  �
Q��  ��  __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizerb_ary_duprb_ary_clearrb_ary_freezerb_hash_asetrb_get_coveragesrb_hash_newrb_hash_tblst_foreachrb_hash_freezerb_reset_coveragesrb_eRuntimeErrorrb_raiserb_set_coveragesrb_obj_hideInit_coveragerb_define_modulerb_define_module_functionrb_gc_register_addresslibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6_edata__bss_start_endGLIBC_2.2.5/opt/alt/openssl/lib64:/opt/alt/ruby22/lib64�ui	�� �� �� � � � � � �      (  0  8  @  H  	P  
X  `  h  
p  x  �  �  �  �  ��H��H� H��t��H����5" �%# ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h��������%
 D���% D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� D���%� DH�=� H�� H9�tH�� H��t	�����H�=a H�5Z H)�H��H��H��?H�H�tH�� H��t��fD�����= u+UH�=b H��tH�= �9����d����� ]������w������AUI��H��ATI��UH��SH�����H��H���V���H������H��L��L���0���H��1�[]A\A]���USH�����H������H�����t4H��H�����H��H�5{���H������H���������H��H��[]�H�m H�5�H�81��t���@��H���#���H�����uH�=� H��4t�Y����H�����3���H��H�� ����H�=� �(�����fD��SH�=����1�H�����H�5xH��H���T���H��1�H�����H�5`�<���H�=e [�O�����H��H���coverage measurement is not enabledCoveragestartresult;<H���Xh����8��������������X���zRx�$�� FJw�?:*3$"D��4\����MF�H�D �D(�D0j(C ABB(�����lE�A�D D
DAA��ZHh
H�8���QE�GGNU���� et������	
D� � ���o`�
  � `�	���o@���o�o
���o� �	

 
0
@
P
`
p
�
�
�
�
�
�
�
�
4GA$3a1�	QGA$3p1067�AGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�
GA+GLIBCXX_ASSERTIONScoverage.so-2.2.10-35.el8.x86_64.debugt�T�7zXZ�ִF!t/���4]?�E�h=��ڊ�2N���}1ۉ疟��(N�+��T?�J�/�.p����6�}s~����[4K�d��\���]��5�1Bs�u�ʾ��L�K�b��a��w~�;�]�M
-K
)�H�:����ncՎ�j|W�k5����#P�1�g�Y�/$�M�)�+���|��z��?/�ŝ�^�[��b����F�ۥ0�FJ�o���ћI�e�LG�_F�hvHXC �!vx����,�?�l�G#`��9tD��e��҅��Zh�Ҭ���kÁ��x�f���a�e�pV�ƛ�Cv�]�i��۞�DU^�\c:���Я��X1ڿ��9��<��!k��A5��B,g�7X�B��.>�Jh#Z��d;ڗ.��9�u��Ł�/v1
^�`�ew�����ǶE���d'��~����(�b;�x-!����E��� KO��D���H�(�Ivo~�
��y��x��K�u�N�3/bmy�(…�e\��:�.P������L,Ԡ��y(�{��b���Cs��Tkr��dޤ�˵	(����"P����&^?g������]C��s��COPY�:��}��'q bol �%Lz�su��<kwGw�m6��L?J0]ј�;	W$@�3��7���]+d�.��k��M����T.}�)4Ǽ@����Q��X���U8�#*��z[)��2c�ʗʏ�i�3�l�0��ڮ�G\2�	
�|=�%3+3ow�(�҅�O��:���4���迮���x
�|[��R/WU�u�v��>c<�lG�w�6\4;���������̱�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``4(��p08���o

4E���o@@ T``�^B  �h�	�	c�	�	 nw1}DD
�2XX>���<������� �� ��� ��� ��� � �� �(�   ���  � ��  � �� `� H�","#t�&1lib64/ruby/2.2.0/scanf.rb000064400000057054150402105770010537 0ustar00# scanf for Ruby
#
#--
# $Release Version: 1.1.2 $
# $Revision: 44961 $
# $Id: scanf.rb 44961 2014-02-15 01:33:03Z ryan $
# $Author: ryan $
#++
#
# == Description
#
# scanf is an implementation of the C function scanf(3), modified as necessary
# for Ruby compatibility.
#
# the methods provided are String#scanf, IO#scanf, and
# Kernel#scanf. Kernel#scanf is a wrapper around STDIN.scanf.  IO#scanf
# can be used on any IO stream, including file handles and sockets.
# scanf can be called either with or without a block.
#
# Scanf scans an input string or stream according to a <b>format</b>, as
# described below in Conversions, and returns an array of matches between
# the format and the input.  The format is defined in a string, and is
# similar (though not identical) to the formats used in Kernel#printf and
# Kernel#sprintf.
#
# The format may contain <b>conversion specifiers</b>, which tell scanf
# what form (type) each particular matched substring should be converted
# to (e.g., decimal integer, floating point number, literal string,
# etc.)  The matches and conversions take place from left to right, and
# the conversions themselves are returned as an array.
#
# The format string may also contain characters other than those in the
# conversion specifiers.  White space (blanks, tabs, or newlines) in the
# format string matches any amount of white space, including none, in
# the input.  Everything else matches only itself.
#
# Scanning stops, and scanf returns, when any input character fails to
# match the specifications in the format string, or when input is
# exhausted, or when everything in the format string has been
# matched. All matches found up to the stopping point are returned in
# the return array (or yielded to the block, if a block was given).
#
#
# == Basic usage
#
#   require 'scanf'
#
#   # String#scanf and IO#scanf take a single argument, the format string
#   array = a_string.scanf("%d%s")
#   array = an_io.scanf("%d%s")
#
#   # Kernel#scanf reads from STDIN
#   array = scanf("%d%s")
#
# == Block usage
#
# When called with a block, scanf keeps scanning the input, cycling back
# to the beginning of the format string, and yields a new array of
# conversions to the block every time the format string is matched
# (including partial matches, but not including complete failures).  The
# actual return value of scanf when called with a block is an array
# containing the results of all the executions of the block.
#
#   str = "123 abc 456 def 789 ghi"
#   str.scanf("%d%s") { |num,str| [ num * 2, str.upcase ] }
#   # => [[246, "ABC"], [912, "DEF"], [1578, "GHI"]]
#
# == Conversions
#
# The single argument to scanf is a format string, which generally
# includes one or more conversion specifiers.  Conversion specifiers
# begin with the percent character ('%') and include information about
# what scanf should next scan for (string, decimal number, single
# character, etc.).
#
# There may be an optional maximum field width, expressed as a decimal
# integer, between the % and the conversion.  If no width is given, a
# default of `infinity' is used (with the exception of the %c specifier;
# see below).  Otherwise, given a field width of <em>n</em> for a given
# conversion, at most <em>n</em> characters are scanned in processing
# that conversion.  Before conversion begins, most conversions skip
# white space in the input string; this white space is not counted
# against the field width.
#
# The following conversions are available.
#
# [%]
#   Matches a literal `%'. That is, `%%' in the format string matches a
#   single input `%' character. No conversion is done, and the resulting
#   '%' is not included in the return array.
#
# [d]
#   Matches an optionally signed decimal integer.
#
# [u]
#   Same as d.
#
# [i]
#   Matches an optionally signed integer. The integer is read in base
#   16 if it begins with `0x' or `0X', in base 8 if it begins with `0',
#   and in base 10 other- wise. Only characters that correspond to the
#   base are recognized.
#
# [o]
#   Matches an optionally signed octal integer.
#
# [x, X]
#   Matches an optionally signed hexadecimal integer,
#
# [a, e, f, g, A, E, F, G]
#   Matches an optionally signed floating-point number.
#
# [s]
#   Matches a sequence of non-white-space character. The input string stops at
#   white space or at the maximum field width, whichever occurs first.
#
# [c]
#   Matches a single character, or a sequence of <em>n</em> characters if a
#   field width of <em>n</em> is specified. The usual skip of leading white
#   space is suppressed. To skip white space first, use an explicit space in
#   the format.
#
# [[]
#   Matches a nonempty sequence of characters from the specified set
#   of accepted characters.  The usual skip of leading white space is
#   suppressed.  This bracketed sub-expression is interpreted exactly like a
#   character class in a Ruby regular expression.  (In fact, it is placed as-is
#   in a regular expression.)  The matching against the input string ends with
#   the appearance of a character not in (or, with a circumflex, in) the set,
#   or when the field width runs out, whichever comes first.
#
# === Assignment suppression
#
# To require that a particular match occur, but without including the result
# in the return array, place the <b>assignment suppression flag</b>, which is
# the star character ('*'), immediately after the leading '%' of a format
# specifier (just before the field width, if any).
#
# == scanf for Ruby compared with scanf in C
#
# scanf for Ruby is based on the C function scanf(3), but with modifications,
# dictated mainly by the underlying differences between the languages.
#
# === Unimplemented flags and specifiers
#
# * The only flag implemented in scanf for Ruby is '<tt>*</tt>' (ignore
#   upcoming conversion).  Many of the flags available in C versions of
#   scanf(3) have to do with the type of upcoming pointer arguments, and are
#   meaningless in Ruby.
#
# * The <tt>n</tt> specifier (store number of characters consumed so far in
#   next pointer) is not implemented.
#
# * The <tt>p</tt> specifier (match a pointer value) is not implemented.
#
# === Altered specifiers
#
# [o, u, x, X]
#   In scanf for Ruby, all of these specifiers scan for an optionally signed
#   integer, rather than for an unsigned integer like their C counterparts.
#
# === Return values
#
# scanf for Ruby returns an array of successful conversions, whereas
# scanf(3) returns the number of conversions successfully
# completed. (See below for more details on scanf for Ruby's return
# values.)
#
# == Return values
#
# Without a block, scanf returns an array containing all the conversions
# it has found.  If none are found, scanf will return an empty array. An
# unsuccessful match is never ignored, but rather always signals the end
# of the scanning operation.  If the first unsuccessful match takes place
# after one or more successful matches have already taken place, the
# returned array will contain the results of those successful matches.
#
# With a block scanf returns a 'map'-like array of transformations from
# the block -- that is, an array reflecting what the block did with each
# yielded result from the iterative scanf operation.  (See "Block
# usage", above.)
#
# == Current limitations and bugs
#
# When using IO#scanf under Windows, make sure you open your files in
# binary mode:
#
#     File.open("filename", "rb")
#
# so that scanf can keep track of characters correctly.
#
# Support for character classes is reasonably complete (since it
# essentially piggy-backs on Ruby's regular expression handling of
# character classes), but users are advised that character class testing
# has not been exhaustive, and that they should exercise some caution
# in using any of the more complex and/or arcane character class
# idioms.
#
# == License and copyright
#
# Copyright:: (c) 2002-2003 David Alan Black
# License:: Distributed on the same licensing terms as Ruby itself
#
# == Warranty disclaimer
#
# This software is provided "as is" and without any express or implied
# warranties, including, without limitation, the implied warranties of
# merchantability and fitness for a particular purpose.
#
# == Credits and acknowledgements
#
# scanf was developed as the major activity of the Austin Ruby Codefest
# (Austin, Texas, August 2002).
#
# Principal author:: David Alan Black (mailto:dblack@superlink.net)
# Co-author:: Hal Fulton (mailto:hal9000@hypermetrics.com)
# Project contributors:: Nolan Darilek, Jason Johnston
#
# Thanks to Hal Fulton for hosting the Codefest.
#
# Thanks to Matz for suggestions about the class design.
#
# Thanks to Gavin Sinclair for some feedback on the documentation.
#
# The text for parts of this document, especially the Description and
# Conversions sections, above, were adapted from the Linux Programmer's
# Manual manpage for scanf(3), dated 1995-11-01.
#
# == Bugs and bug reports
#
# scanf for Ruby is based on something of an amalgam of C scanf
# implementations and documentation, rather than on a single canonical
# description.  Suggestions for features and behaviors which appear in
# other scanfs, and would be meaningful in Ruby, are welcome, as are
# reports of suspicious behaviors and/or bugs.  (Please see "Credits and
# acknowledgements", above, for email addresses.)

module Scanf
  # :stopdoc:

  # ==Technical notes
  #
  # ===Rationale behind scanf for Ruby
  #
  # The impetus for a scanf implementation in Ruby comes chiefly from the fact
  # that existing pattern matching operations, such as Regexp#match and
  # String#scan, return all results as strings, which have to be converted to
  # integers or floats explicitly in cases where what's ultimately wanted are
  # integer or float values.
  #
  # ===Design of scanf for Ruby
  #
  # scanf for Ruby is essentially a <format string>-to-<regular
  # expression> converter.
  #
  # When scanf is called, a FormatString object is generated from the
  # format string ("%d%s...") argument. The FormatString object breaks the
  # format string down into atoms ("%d", "%5f", "blah", etc.), and from
  # each atom it creates a FormatSpecifier object, which it
  # saves.
  #
  # Each FormatSpecifier has a regular expression fragment and a "handler"
  # associated with it. For example, the regular expression fragment
  # associated with the format "%d" is "([-+]?\d+)", and the handler
  # associated with it is a wrapper around String#to_i. scanf itself calls
  # FormatString#match, passing in the input string. FormatString#match
  # iterates through its FormatSpecifiers; for each one, it matches the
  # corresponding regular expression fragment against the string. If
  # there's a match, it sends the matched string to the handler associated
  # with the FormatSpecifier.
  #
  # Thus, to follow up the "%d" example: if "123" occurs in the input
  # string when a FormatSpecifier consisting of "%d" is reached, the "123"
  # will be matched against "([-+]?\d+)", and the matched string will be
  # rendered into an integer by a call to to_i.
  #
  # The rendered match is then saved to an accumulator array, and the
  # input string is reduced to the post-match substring. Thus the string
  # is "eaten" from the left as the FormatSpecifiers are applied in
  # sequence.  (This is done to a duplicate string; the original string is
  # not altered.)
  #
  # As soon as a regular expression fragment fails to match the string, or
  # when the FormatString object runs out of FormatSpecifiers, scanning
  # stops and results accumulated so far are returned in an array.

  class FormatSpecifier

    attr_reader :re_string, :matched_string, :conversion, :matched

    private

    def skip;  /^\s*%\*/.match(@spec_string); end

    def extract_float(s)
      return nil unless s &&! skip
      if /\A(?<sign>[-+]?)0[xX](?<frac>\.\h+|\h+(?:\.\h*)?)[pP](?<exp>[-+]\d+)/ =~ s
        f1, f2 = frac.split('.')
        f = f1.hex
        if f2
          len = f2.length
          if len > 0
            f += f2.hex / (16.0 ** len)
          end
        end
        (sign == ?- ? -1 : 1) * Math.ldexp(f, exp.to_i)
      elsif /\A([-+]?\d+)\.([eE][-+]\d+)/ =~ s
        ($1 << $2).to_f
      else
        s.to_f
      end
    end
    def extract_decimal(s); s.to_i if s &&! skip; end
    def extract_hex(s); s.hex if s &&! skip; end
    def extract_octal(s); s.oct if s &&! skip; end
    def extract_integer(s); Integer(s) if s &&! skip; end
    def extract_plain(s); s unless skip; end

    def nil_proc(s); nil; end

    public

    def to_s
      @spec_string
    end

    def count_space?
      /(?:\A|\S)%\*?\d*c|%\d*\[/.match(@spec_string)
    end

    def initialize(str)
      @spec_string = str
      h = '[A-Fa-f0-9]'

      @re_string, @handler =
        case @spec_string

          # %[[:...:]]
        when /%\*?(\[\[:[a-z]+:\]\])/
          [ "(#{$1}+)", :extract_plain ]

          # %5[[:...:]]
        when /%\*?(\d+)(\[\[:[a-z]+:\]\])/
          [ "(#{$2}{1,#{$1}})", :extract_plain ]

          # %[...]
        when /%\*?\[([^\]]*)\]/
          yes = $1
          if /^\^/.match(yes) then no = yes[1..-1] else no = '^' + yes end
          [ "([#{yes}]+)(?=[#{no}]|\\z)", :extract_plain ]

          # %5[...]
        when /%\*?(\d+)\[([^\]]*)\]/
          yes = $2
          w = $1
          [ "([#{yes}]{1,#{w}})", :extract_plain ]

          # %i
        when /%\*?i/
          [ "([-+]?(?:(?:0[0-7]+)|(?:0[Xx]#{h}+)|(?:[1-9]\\d*)))", :extract_integer ]

          # %5i
        when /%\*?(\d+)i/
          n = $1.to_i
          s = "("
          if n > 1 then s += "[1-9]\\d{1,#{n-1}}|" end
          if n > 1 then s += "0[0-7]{1,#{n-1}}|" end
          if n > 2 then s += "[-+]0[0-7]{1,#{n-2}}|" end
          if n > 2 then s += "[-+][1-9]\\d{1,#{n-2}}|" end
          if n > 2 then s += "0[Xx]#{h}{1,#{n-2}}|" end
          if n > 3 then s += "[-+]0[Xx]#{h}{1,#{n-3}}|" end
          s += "\\d"
          s += ")"
          [ s, :extract_integer ]

          # %d, %u
        when /%\*?[du]/
          [ '([-+]?\d+)', :extract_decimal ]

          # %5d, %5u
        when /%\*?(\d+)[du]/
          n = $1.to_i
          s = "("
          if n > 1 then s += "[-+]\\d{1,#{n-1}}|" end
          s += "\\d{1,#{$1}})"
          [ s, :extract_decimal ]

          # %x
        when /%\*?[Xx]/
          [ "([-+]?(?:0[Xx])?#{h}+)", :extract_hex ]

          # %5x
        when /%\*?(\d+)[Xx]/
          n = $1.to_i
          s = "("
          if n > 3 then s += "[-+]0[Xx]#{h}{1,#{n-3}}|" end
          if n > 2 then s += "0[Xx]#{h}{1,#{n-2}}|" end
          if n > 1 then s += "[-+]#{h}{1,#{n-1}}|" end
          s += "#{h}{1,#{n}}"
          s += ")"
          [ s, :extract_hex ]

          # %o
        when /%\*?o/
          [ '([-+]?[0-7]+)', :extract_octal ]

          # %5o
        when /%\*?(\d+)o/
          [ "([-+][0-7]{1,#{$1.to_i-1}}|[0-7]{1,#{$1}})", :extract_octal ]

          # %f
        when /%\*?[aefgAEFG]/
          [ '([-+]?(?:0[xX](?:\.\h+|\h+(?:\.\h*)?)[pP][-+]\d+|\d+(?![\d.])|\d*\.\d*(?:[eE][-+]?\d+)?))', :extract_float ]

          # %5f
        when /%\*?(\d+)[aefgAEFG]/
          [ '(?=[-+]?(?:0[xX](?:\.\h+|\h+(?:\.\h*)?)[pP][-+]\d+|\d+(?![\d.])|\d*\.\d*(?:[eE][-+]?\d+)?))' +
            "(\\S{1,#{$1}})", :extract_float ]

          # %5s
        when /%\*?(\d+)s/
          [ "(\\S{1,#{$1}})", :extract_plain ]

          # %s
        when /%\*?s/
          [ '(\S+)', :extract_plain ]

          # %c
        when /\s%\*?c/
          [ "\\s*(.)", :extract_plain ]

          # %c
        when /%\*?c/
          [ "(.)", :extract_plain ]

          # %5c (whitespace issues are handled by the count_*_space? methods)
        when /%\*?(\d+)c/
          [ "(.{1,#{$1}})", :extract_plain ]

          # %%
        when /%%/
          [ '(\s*%)', :nil_proc ]

          # literal characters
        else
          [ "(#{Regexp.escape(@spec_string)})", :nil_proc ]
        end

      @re_string = '\A' + @re_string
    end

    def to_re
      Regexp.new(@re_string,Regexp::MULTILINE)
    end

    def match(str)
      @matched = false
      s = str.dup
      s.sub!(/\A\s+/,'') unless count_space?
      res = to_re.match(s)
      if res
        @conversion = send(@handler, res[1])
        @matched_string = @conversion.to_s
        @matched = true
      end
      res
    end

    def letter
      @spec_string[/%\*?\d*([a-z\[])/, 1]
    end

    def width
      w = @spec_string[/%\*?(\d+)/, 1]
      w && w.to_i
    end

    def mid_match?
      return false unless @matched
      cc_no_width    = letter == '[' &&! width
      c_or_cc_width  = (letter == 'c' || letter == '[') && width
      width_left     = c_or_cc_width && (matched_string.size < width)

      return width_left || cc_no_width
    end

  end

  class FormatString

    attr_reader :string_left, :last_spec_tried,
                :last_match_tried, :matched_count, :space

    SPECIFIERS = 'diuXxofFeEgGscaA'
    REGEX = /
        # possible space, followed by...
          (?:\s*
          # percent sign, followed by...
            %
            # another percent sign, or...
              (?:%|
                 # optional assignment suppression flag
                 \*?
                 # optional maximum field width
                 \d*
                   # named character class, ...
                   (?:\[\[:\w+:\]\]|
                   # traditional character class, or...
                      \[[^\]]*\]|
                   # specifier letter.
                      [#{SPECIFIERS}])))|
            # or miscellaneous characters
              [^%\s]+/ix

    def initialize(str)
      @specs = []
      @i = 1
      s = str.to_s
      return unless /\S/.match(s)
      @space = true if /\s\z/.match(s)
      @specs.replace s.scan(REGEX).map {|spec| FormatSpecifier.new(spec) }
    end

    def to_s
      @specs.join('')
    end

    def prune(n=matched_count)
      n.times { @specs.shift }
    end

    def spec_count
      @specs.size
    end

    def last_spec
      @i == spec_count - 1
    end

    def match(str)
      accum = []
      @string_left = str
      @matched_count = 0

      @specs.each_with_index do |spec,i|
        @i=i
        @last_spec_tried = spec
        @last_match_tried = spec.match(@string_left)
        break unless @last_match_tried
        @matched_count += 1

        accum << spec.conversion

        @string_left = @last_match_tried.post_match
        break if @string_left.empty?
      end
      return accum.compact
    end
  end
  # :startdoc:
end

class IO

  #:stopdoc:
  # The trick here is doing a match where you grab one *line*
  # of input at a time.  The linebreak may or may not occur
  # at the boundary where the string matches a format specifier.
  # And if it does, some rule about whitespace may or may not
  # be in effect...
  #
  # That's why this is much more elaborate than the string
  # version.
  #
  # For each line:
  #
  # Match succeeds (non-emptily)
  # and the last attempted spec/string sub-match succeeded:
  #
  #   could the last spec keep matching?
  #     yes: save interim results and continue (next line)
  #
  # The last attempted spec/string did not match:
  #
  # are we on the next-to-last spec in the string?
  #   yes:
  #     is fmt_string.string_left all spaces?
  #       yes: does current spec care about input space?
  #         yes: fatal failure
  #         no: save interim results and continue
  #   no: continue  [this state could be analyzed further]
  #
  #:startdoc:

  # Scans the current string until the match is exhausted,
  # yielding each match as it is encountered in the string.
  # A block is not necessary though, as the results will simply
  # be aggregated into the final array.
  #
  #   "123 456".block_scanf("%d")
  #   # => [123, 456]
  #
  # If a block is given, the value from that is returned from
  # the yield is added to an output array.
  #
  #   "123 456".block_scanf("%d") do |digit,| # the ',' unpacks the Array
  #     digit + 100
  #   end
  #   # => [223, 556]
  #
  # See Scanf for details on creating a format string.
  #
  # You will need to require 'scanf' to use use IO#scanf.
  def scanf(str,&b) #:yield: current_match
    return block_scanf(str,&b) if b
    return [] unless str.size > 0

    start_position = pos rescue 0
    matched_so_far = 0
    source_buffer = ""
    result_buffer = []
    final_result = []

    fstr = Scanf::FormatString.new(str)

    loop do
      if eof || (tty? &&! fstr.match(source_buffer))
        final_result.concat(result_buffer)
        break
      end

      source_buffer << gets

      current_match = fstr.match(source_buffer)

      spec = fstr.last_spec_tried

      if spec.matched
        if spec.mid_match?
          result_buffer.replace(current_match)
          next
        end

      elsif (fstr.matched_count == fstr.spec_count - 1)
        if /\A\s*\z/.match(fstr.string_left)
          break if spec.count_space?
          result_buffer.replace(current_match)
          next
        end
      end

      final_result.concat(current_match)

      matched_so_far += source_buffer.size
      source_buffer.replace(fstr.string_left)
      matched_so_far -= source_buffer.size
      break if fstr.last_spec
      fstr.prune
    end

    begin
      seek(start_position + matched_so_far, IO::SEEK_SET)
    rescue Errno::ESPIPE
    end

    soak_up_spaces if fstr.last_spec && fstr.space

    return final_result
  end

  private

  def soak_up_spaces
    c = getc
    ungetc(c) if c
    until eof ||! c || /\S/.match(c.chr)
      c = getc
    end
    ungetc(c) if (c && /\S/.match(c.chr))
  end

  def block_scanf(str)
    final = []
# Sub-ideal, since another FS gets created in scanf.
# But used here to determine the number of specifiers.
    fstr = Scanf::FormatString.new(str)
    last_spec = fstr.last_spec
    begin
      current = scanf(str)
      break if current.empty?
      final.push(yield(current))
    end until eof || fstr.last_spec_tried == last_spec
    return final
  end
end

class String

  # :section: scanf
  #
  # You will need to require 'scanf' to use these methods

  # Scans the current string. If a block is given, it
  # functions exactly like block_scanf.
  #
  #   arr = "123 456".scanf("%d%d")
  #   # => [123, 456]
  #
  #   require 'pp'
  #
  #   "this 123 read that 456 other".scanf("%s%d%s") {|m| pp m}
  #
  #   # ["this", 123, "read"]
  #   # ["that", 456, "other"]
  #   # => [["this", 123, "read"], ["that", 456, "other"]]
  #
  # See Scanf for details on creating a format string.
  #
  # You will need to require 'scanf' to use String#scanf
  def scanf(fstr,&b) #:yield: current_match
    if b
      block_scanf(fstr,&b)
    else
      fs =
        if fstr.is_a? Scanf::FormatString
          fstr
        else
          Scanf::FormatString.new(fstr)
        end
      fs.match(self)
    end
  end

  # Scans the current string until the match is exhausted
  # yielding each match as it is encountered in the string.
  # A block is not necessary as the results will simply
  # be aggregated into the final array.
  #
  #   "123 456".block_scanf("%d")
  #   # => [123, 456]
  #
  # If a block is given, the value from that is returned from
  # the yield is added to an output array.
  #
  #   "123 456".block_scanf("%d) do |digit,| # the ',' unpacks the Array
  #     digit + 100
  #   end
  #   # => [223, 556]
  #
  # See Scanf for details on creating a format string.
  #
  # You will need to require 'scanf' to use String#block_scanf
  def block_scanf(fstr) #:yield: current_match
    fs = Scanf::FormatString.new(fstr)
    str = self.dup
    final = []
    begin
      current = str.scanf(fs)
      final.push(yield(current)) unless current.empty?
      str = fs.string_left
    end until current.empty? || str.empty?
    return final
  end
end

module Kernel
  private
  # Scans STDIN for data matching +format+.  See IO#scanf for details.
  #
  # See Scanf for details on creating a format string.
  #
  # You will need to require 'scanf' to use Kernel#scanf.
  def scanf(format, &b) #:doc:
    STDIN.scanf(format ,&b)
  end
end
lib64/ruby/2.2.0/irb/version.rb000064400000000373150402105770011676 0ustar00#
#   irb/version.rb - irb version definition file
#   	$Release Version: 0.9.6$
#   	$Revision: 38358 $
#   	by Keiju ISHITSUKA(keiju@ishitsuka.com)
#
# --
#
#
#

module IRB # :nodoc:
  @RELEASE_VERSION = "0.9.6"
  @LAST_UPDATE_DATE = "09/06/30"
end
lib64/ruby/2.2.0/irb/output-method.rb000064400000004646150402105770013036 0ustar00#
#   output-method.rb - output methods used by irb
#   	$Release Version: 0.9.6$
#   	$Revision: 47120 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "e2mmap"

module IRB
  # An abstract output class for IO in irb. This is mainly used internally by
  # IRB::Notifier. You can define your own output method to use with Irb.new,
  # or Context.new
  class OutputMethod
    extend Exception2MessageMapper
    def_exception :NotImplementedError, "Need to define `%s'"


    # Open this method to implement your own output method, raises a
    # NotImplementedError if you don't define #print in your own class.
    def print(*opts)
      OutputMethod.Raise NotImplementedError, "print"
    end

    # Prints the given +opts+, with a newline delimiter.
    def printn(*opts)
      print opts.join(" "), "\n"
    end

    # Extends IO#printf to format the given +opts+ for Kernel#sprintf using
    # #parse_printf_format
    def printf(format, *opts)
      if /(%*)%I/ =~ format
        format, opts = parse_printf_format(format, opts)
      end
      print sprintf(format, *opts)
    end

    # Returns an array of the given +format+ and +opts+ to be used by
    # Kernel#sprintf, if there was a successful Regexp match in the given
    # +format+ from #printf
    #
    #     %
    #     <flag>  [#0- +]
    #     <minimum field width> (\*|\*[1-9][0-9]*\$|[1-9][0-9]*)
    #     <precision>.(\*|\*[1-9][0-9]*\$|[1-9][0-9]*|)?
    #     #<length modifier>(hh|h|l|ll|L|q|j|z|t)
    #     <conversion specifier>[diouxXeEfgGcsb%]
    def parse_printf_format(format, opts)
      return format, opts if $1.size % 2 == 1
    end

    # Calls #print on each element in the given +objs+, followed by a newline
    # character.
    def puts(*objs)
      for obj in objs
        print(*obj)
        print "\n"
      end
    end

    # Prints the given +objs+ calling Object#inspect on each.
    #
    # See #puts for more detail.
    def pp(*objs)
      puts(*objs.collect{|obj| obj.inspect})
    end

    # Prints the given +objs+ calling Object#inspect on each and appending the
    # given +prefix+.
    #
    # See #puts for more detail.
    def ppx(prefix, *objs)
      puts(*objs.collect{|obj| prefix+obj.inspect})
    end

  end

  # A standard output printer
  class StdioOutputMethod<OutputMethod
    # Prints the given +opts+ to standard output, see IO#print for more
    # information.
    def print(*opts)
      STDOUT.print(*opts)
    end
  end
end
lib64/ruby/2.2.0/irb/init.rb000064400000017150150402105770011155 0ustar00#
#   irb/init.rb - irb initialize module
#   	$Release Version: 0.9.6$
#   	$Revision: 47114 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

module IRB # :nodoc:

  # initialize config
  def IRB.setup(ap_path)
    IRB.init_config(ap_path)
    IRB.init_error
    IRB.parse_opts
    IRB.run_config
    IRB.load_modules

    unless @CONF[:PROMPT][@CONF[:PROMPT_MODE]]
      IRB.fail(UndefinedPromptMode, @CONF[:PROMPT_MODE])
    end
  end

  # @CONF default setting
  def IRB.init_config(ap_path)
    # class instance variables
    @TRACER_INITIALIZED = false

    # default configurations
    unless ap_path and @CONF[:AP_NAME]
      ap_path = File.join(File.dirname(File.dirname(__FILE__)), "irb.rb")
    end
    @CONF[:AP_NAME] = File::basename(ap_path, ".rb")

    @CONF[:IRB_NAME] = "irb"
    @CONF[:IRB_LIB_PATH] = File.dirname(__FILE__)

    @CONF[:RC] = true
    @CONF[:LOAD_MODULES] = []
    @CONF[:IRB_RC] = nil

    @CONF[:MATH_MODE] = false
    @CONF[:USE_READLINE] = false unless defined?(ReadlineInputMethod)
    @CONF[:INSPECT_MODE] = true
    @CONF[:USE_TRACER] = false
    @CONF[:USE_LOADER] = false
    @CONF[:IGNORE_SIGINT] = true
    @CONF[:IGNORE_EOF] = false
    @CONF[:ECHO] = nil
    @CONF[:VERBOSE] = nil

    @CONF[:EVAL_HISTORY] = nil
    @CONF[:SAVE_HISTORY] = nil

    @CONF[:BACK_TRACE_LIMIT] = 16

    @CONF[:PROMPT] = {
      :NULL => {
        :PROMPT_I => nil,
        :PROMPT_N => nil,
        :PROMPT_S => nil,
        :PROMPT_C => nil,
        :RETURN => "%s\n"
      },
      :DEFAULT => {
        :PROMPT_I => "%N(%m):%03n:%i> ",
        :PROMPT_N => "%N(%m):%03n:%i> ",
        :PROMPT_S => "%N(%m):%03n:%i%l ",
        :PROMPT_C => "%N(%m):%03n:%i* ",
        :RETURN => "=> %s\n"
      },
      :CLASSIC => {
        :PROMPT_I => "%N(%m):%03n:%i> ",
        :PROMPT_N => "%N(%m):%03n:%i> ",
        :PROMPT_S => "%N(%m):%03n:%i%l ",
        :PROMPT_C => "%N(%m):%03n:%i* ",
        :RETURN => "%s\n"
      },
      :SIMPLE => {
        :PROMPT_I => ">> ",
        :PROMPT_N => ">> ",
        :PROMPT_S => nil,
        :PROMPT_C => "?> ",
        :RETURN => "=> %s\n"
      },
      :INF_RUBY => {
        :PROMPT_I => "%N(%m):%03n:%i> ",
        :PROMPT_N => nil,
        :PROMPT_S => nil,
        :PROMPT_C => nil,
        :RETURN => "%s\n",
        :AUTO_INDENT => true
      },
      :XMP => {
        :PROMPT_I => nil,
        :PROMPT_N => nil,
        :PROMPT_S => nil,
        :PROMPT_C => nil,
        :RETURN => "    ==>%s\n"
      }
    }

    @CONF[:PROMPT_MODE] = (STDIN.tty? ? :DEFAULT : :NULL)
    @CONF[:AUTO_INDENT] = false

    @CONF[:CONTEXT_MODE] = 3 # use binding in function on TOPLEVEL_BINDING
    @CONF[:SINGLE_IRB] = false

    @CONF[:LC_MESSAGES] = Locale.new

    @CONF[:AT_EXIT] = []

    @CONF[:DEBUG_LEVEL] = 0
  end

  def IRB.init_error
    @CONF[:LC_MESSAGES].load("irb/error.rb")
  end

  # option analyzing
  def IRB.parse_opts
    load_path = []
    while opt = ARGV.shift
      case opt
      when "-f"
        @CONF[:RC] = false
      when "-m"
        @CONF[:MATH_MODE] = true
      when "-d"
        $DEBUG = true
        $VERBOSE = true
      when "-w"
        $VERBOSE = true
      when /^-W(.+)?/
        opt = $1 || ARGV.shift
        case opt
        when "0"
          $VERBOSE = nil
        when "1"
          $VERBOSE = false
        else
          $VERBOSE = true
        end
      when /^-r(.+)?/
        opt = $1 || ARGV.shift
        @CONF[:LOAD_MODULES].push opt if opt
      when /^-I(.+)?/
        opt = $1 || ARGV.shift
        load_path.concat(opt.split(File::PATH_SEPARATOR)) if opt
      when '-U'
        set_encoding("UTF-8", "UTF-8")
      when /^-E(.+)?/, /^--encoding(?:=(.+))?/
        opt = $1 || ARGV.shift
        set_encoding(*opt.split(':', 2))
      when "--inspect"
        if /^-/ !~ ARGV.first
          @CONF[:INSPECT_MODE] = ARGV.shift
        else
          @CONF[:INSPECT_MODE] = true
        end
      when "--noinspect"
        @CONF[:INSPECT_MODE] = false
      when "--readline"
        @CONF[:USE_READLINE] = true
      when "--noreadline"
        @CONF[:USE_READLINE] = false
      when "--echo"
        @CONF[:ECHO] = true
      when "--noecho"
        @CONF[:ECHO] = false
      when "--verbose"
        @CONF[:VERBOSE] = true
      when "--noverbose"
        @CONF[:VERBOSE] = false
      when /^--prompt-mode(?:=(.+))?/, /^--prompt(?:=(.+))?/
        opt = $1 || ARGV.shift
        prompt_mode = opt.upcase.tr("-", "_").intern
        @CONF[:PROMPT_MODE] = prompt_mode
      when "--noprompt"
        @CONF[:PROMPT_MODE] = :NULL
      when "--inf-ruby-mode"
        @CONF[:PROMPT_MODE] = :INF_RUBY
      when "--sample-book-mode", "--simple-prompt"
        @CONF[:PROMPT_MODE] = :SIMPLE
      when "--tracer"
        @CONF[:USE_TRACER] = true
      when /^--back-trace-limit(?:=(.+))?/
        @CONF[:BACK_TRACE_LIMIT] = ($1 || ARGV.shift).to_i
      when /^--context-mode(?:=(.+))?/
        @CONF[:CONTEXT_MODE] = ($1 || ARGV.shift).to_i
      when "--single-irb"
        @CONF[:SINGLE_IRB] = true
      when /^--irb_debug(?:=(.+))?/
        @CONF[:DEBUG_LEVEL] = ($1 || ARGV.shift).to_i
      when "-v", "--version"
        print IRB.version, "\n"
        exit 0
      when "-h", "--help"
        require "irb/help"
        IRB.print_usage
        exit 0
      when "--"
        if opt = ARGV.shift
          @CONF[:SCRIPT] = opt
          $0 = opt
        end
        break
      when /^-/
        IRB.fail UnrecognizedSwitch, opt
      else
        @CONF[:SCRIPT] = opt
        $0 = opt
        break
      end
    end
    load_path.collect! do |path|
      /\A\.\// =~ path ? path : File.expand_path(path)
    end
    $LOAD_PATH.unshift(*load_path)

  end

  # running config
  def IRB.run_config
    if @CONF[:RC]
      begin
        load rc_file
      rescue LoadError, Errno::ENOENT
      rescue # StandardError, ScriptError
        print "load error: #{rc_file}\n"
        print $!.class, ": ", $!, "\n"
        for err in $@[0, $@.size - 2]
          print "\t", err, "\n"
        end
      end
    end
  end

  IRBRC_EXT = "rc"
  def IRB.rc_file(ext = IRBRC_EXT)
    if !@CONF[:RC_NAME_GENERATOR]
      rc_file_generators do |rcgen|
        @CONF[:RC_NAME_GENERATOR] ||= rcgen
        if File.exist?(rcgen.call(IRBRC_EXT))
          @CONF[:RC_NAME_GENERATOR] = rcgen
          break
        end
      end
    end
    case rc_file = @CONF[:RC_NAME_GENERATOR].call(ext)
    when String
      return rc_file
    else
      IRB.fail IllegalRCNameGenerator
    end
  end

  # enumerate possible rc-file base name generators
  def IRB.rc_file_generators
    if irbrc = ENV["IRBRC"]
      yield proc{|rc| rc == "rc" ? irbrc : irbrc+rc}
    end
    if home = ENV["HOME"]
      yield proc{|rc| home+"/.irb#{rc}"}
    end
    home = Dir.pwd
    yield proc{|rc| home+"/.irb#{rc}"}
    yield proc{|rc| home+"/irb#{rc.sub(/\A_?/, '.')}"}
    yield proc{|rc| home+"/_irb#{rc}"}
    yield proc{|rc| home+"/$irb#{rc}"}
  end

  # loading modules
  def IRB.load_modules
    for m in @CONF[:LOAD_MODULES]
      begin
        require m
      rescue LoadError => err
        warn err.backtrace[0] << ":#{err.class}: #{err}"
      end
    end
  end


  DefaultEncodings = Struct.new(:external, :internal)
  class << IRB
    private
    def set_encoding(extern, intern = nil)
      verbose, $VERBOSE = $VERBOSE, nil
      Encoding.default_external = extern unless extern.nil? || extern.empty?
      Encoding.default_internal = intern unless intern.nil? || intern.empty?
      @CONF[:ENCODINGS] = IRB::DefaultEncodings.new(extern, intern)
      [$stdin, $stdout, $stderr].each do |io|
        io.set_encoding(extern, intern)
      end
      @CONF[:LC_MESSAGES].instance_variable_set(:@encoding, extern)
    ensure
      $VERBOSE = verbose
    end
  end
end
lib64/ruby/2.2.0/irb/inspector.rb000064400000007117150402105770012222 0ustar00#
#   irb/inspector.rb - inspect methods
#   	$Release Version: 0.9.6$
#   	$Revision: 1.19 $
#   	$Date: 2002/06/11 07:51:31 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

module IRB # :nodoc:


  # Convenience method to create a new Inspector, using the given +inspect+
  # proc, and optional +init+ proc and passes them to Inspector.new
  #
  #     irb(main):001:0> ins = IRB::Inspector(proc{ |v| "omg! #{v}" })
  #     irb(main):001:0> IRB.CurrentContext.inspect_mode = ins # => omg! #<IRB::Inspector:0x007f46f7ba7d28>
  #     irb(main):001:0> "what?" #=> omg! what?
  #
  def IRB::Inspector(inspect, init = nil)
    Inspector.new(inspect, init)
  end

  # An irb inspector
  #
  # In order to create your own custom inspector there are two things you
  # should be aware of:
  #
  # Inspector uses #inspect_value, or +inspect_proc+, for output of return values.
  #
  # This also allows for an optional #init+, or +init_proc+, which is called
  # when the inspector is activated.
  #
  # Knowing this, you can create a rudimentary inspector as follows:
  #
  #     irb(main):001:0> ins = IRB::Inspector.new(proc{ |v| "omg! #{v}" })
  #     irb(main):001:0> IRB.CurrentContext.inspect_mode = ins # => omg! #<IRB::Inspector:0x007f46f7ba7d28>
  #     irb(main):001:0> "what?" #=> omg! what?
  #
  class Inspector
    # Default inspectors available to irb, this includes:
    #
    # +:pp+::       Using Kernel#pretty_inspect
    # +:yaml+::     Using YAML.dump
    # +:marshal+::  Using Marshal.dump
    INSPECTORS = {}

    # Determines the inspector to use where +inspector+ is one of the keys passed
    # during inspector definition.
    def self.keys_with_inspector(inspector)
      INSPECTORS.select{|k,v| v == inspector}.collect{|k, v| k}
    end

    # Example
    #
    #     Inspector.def_inspector(key, init_p=nil){|v| v.inspect}
    #     Inspector.def_inspector([key1,..], init_p=nil){|v| v.inspect}
    #     Inspector.def_inspector(key, inspector)
    #     Inspector.def_inspector([key1,...], inspector)
    def self.def_inspector(key, arg=nil, &block)
      if block_given?
        inspector = IRB::Inspector(block, arg)
      else
        inspector = arg
      end

      case key
      when Array
        for k in key
          def_inspector(k, inspector)
        end
      when Symbol
        INSPECTORS[key] = inspector
        INSPECTORS[key.to_s] = inspector
      when String
        INSPECTORS[key] = inspector
        INSPECTORS[key.intern] = inspector
      else
        INSPECTORS[key] = inspector
      end
    end

    # Creates a new inspector object, using the given +inspect_proc+ when
    # output return values in irb.
    def initialize(inspect_proc, init_proc = nil)
      @init = init_proc
      @inspect = inspect_proc
    end

    # Proc to call when the inspector is activated, good for requiring
    # dependent libraries.
    def init
      @init.call if @init
    end

    # Proc to call when the input is evaluated and output in irb.
    def inspect_value(v)
      @inspect.call(v)
    end
  end

  Inspector.def_inspector([false, :to_s, :raw]){|v| v.to_s}
  Inspector.def_inspector([true, :p, :inspect]){|v|
    begin
      v.inspect
    rescue NoMethodError
      puts "(Object doesn't support #inspect)"
    end
  }
  Inspector.def_inspector([:pp, :pretty_inspect], proc{require "pp"}){|v| v.pretty_inspect.chomp}
  Inspector.def_inspector([:yaml, :YAML], proc{require "yaml"}){|v|
    begin
      YAML.dump(v)
    rescue
      puts "(can't dump yaml. use inspect)"
      v.inspect
    end
  }

  Inspector.def_inspector([:marshal, :Marshal, :MARSHAL, Marshal]){|v|
    Marshal.dump(v)
  }
end





lib64/ruby/2.2.0/irb/ruby-token.rb000064400000016534150402105770012316 0ustar00#
#   irb/ruby-token.rb - ruby tokens
#   	$Release Version: 0.9.6$
#   	$Revision: 47298 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
# :stopdoc:
module RubyToken
  EXPR_BEG = :EXPR_BEG
  EXPR_MID = :EXPR_MID
  EXPR_END = :EXPR_END
  EXPR_ARG = :EXPR_ARG
  EXPR_FNAME = :EXPR_FNAME
  EXPR_DOT = :EXPR_DOT
  EXPR_CLASS = :EXPR_CLASS

  class Token
    def initialize(seek, line_no, char_no)
      @seek = seek
      @line_no = line_no
      @char_no = char_no
    end
    attr_reader :seek, :line_no, :char_no
  end

  class TkNode < Token
    def initialize(seek, line_no, char_no)
      super
    end
    attr_reader :node
  end

  class TkId < Token
    def initialize(seek, line_no, char_no, name)
      super(seek, line_no, char_no)
      @name = name
    end
    attr_reader :name
  end

  class TkVal < Token
    def initialize(seek, line_no, char_no, value = nil)
      super(seek, line_no, char_no)
      @value = value
    end
    attr_reader :value
  end

  class TkOp < Token
    attr_accessor :name
  end

  class TkOPASGN < TkOp
    def initialize(seek, line_no, char_no, op)
      super(seek, line_no, char_no)
      op = TkReading2Token[op][0] unless op.kind_of?(Symbol)
      @op = op
    end
    attr_reader :op
  end

  class TkUnknownChar < Token
    def initialize(seek, line_no, char_no, id)
      super(seek, line_no, char_no)
      @name = name
    end
    attr_reader :name
  end

  class TkError < Token
  end

  def Token(token, value = nil)
    case token
    when String
      if (tk = TkReading2Token[token]).nil?
        IRB.fail TkReading2TokenNoKey, token
      end
      tk = Token(tk[0], value)
      if tk.kind_of?(TkOp)
        tk.name = token
      end
      return tk
    when Symbol
      if (tk = TkSymbol2Token[token]).nil?
        IRB.fail TkSymbol2TokenNoKey, token
      end
      return Token(tk[0], value)
    else
      if (token.ancestors & [TkId, TkVal, TkOPASGN, TkUnknownChar]).empty?
        token.new(@prev_seek, @prev_line_no, @prev_char_no)
      else
        token.new(@prev_seek, @prev_line_no, @prev_char_no, value)
      end
    end
  end

  TokenDefinitions = [
    [:TkCLASS,      TkId,  "class",  EXPR_CLASS],
    [:TkMODULE,     TkId,  "module", EXPR_BEG],
    [:TkDEF,	    TkId,  "def",    EXPR_FNAME],
    [:TkUNDEF,      TkId,  "undef",  EXPR_FNAME],
    [:TkBEGIN,      TkId,  "begin",  EXPR_BEG],
    [:TkRESCUE,     TkId,  "rescue", EXPR_MID],
    [:TkENSURE,     TkId,  "ensure", EXPR_BEG],
    [:TkEND,	    TkId,  "end",    EXPR_END],
    [:TkIF,         TkId,  "if",     EXPR_BEG, :TkIF_MOD],
    [:TkUNLESS,     TkId,  "unless", EXPR_BEG, :TkUNLESS_MOD],
    [:TkTHEN,	    TkId,  "then",   EXPR_BEG],
    [:TkELSIF,      TkId,  "elsif",  EXPR_BEG],
    [:TkELSE,	    TkId,  "else",   EXPR_BEG],
    [:TkCASE,	    TkId,  "case",   EXPR_BEG],
    [:TkWHEN,	    TkId,  "when",   EXPR_BEG],
    [:TkWHILE,      TkId,  "while",  EXPR_BEG, :TkWHILE_MOD],
    [:TkUNTIL,      TkId,  "until",  EXPR_BEG, :TkUNTIL_MOD],
    [:TkFOR,	    TkId,  "for",    EXPR_BEG],
    [:TkBREAK,      TkId,  "break",  EXPR_END],
    [:TkNEXT,	    TkId,  "next",   EXPR_END],
    [:TkREDO,	    TkId,  "redo",   EXPR_END],
    [:TkRETRY,      TkId,  "retry",  EXPR_END],
    [:TkIN,	    TkId,  "in",     EXPR_BEG],
    [:TkDO,	    TkId,  "do",     EXPR_BEG],
    [:TkRETURN,     TkId,  "return", EXPR_MID],
    [:TkYIELD,      TkId,  "yield",  EXPR_END],
    [:TkSUPER,      TkId,  "super",  EXPR_END],
    [:TkSELF,	    TkId,  "self",   EXPR_END],
    [:TkNIL, 	    TkId,  "nil",    EXPR_END],
    [:TkTRUE,	    TkId,  "true",   EXPR_END],
    [:TkFALSE,      TkId,  "false",  EXPR_END],
    [:TkAND,	    TkId,  "and",    EXPR_BEG],
    [:TkOR, 	    TkId,  "or",     EXPR_BEG],
    [:TkNOT,	    TkId,  "not",    EXPR_BEG],
    [:TkIF_MOD,     TkId],
    [:TkUNLESS_MOD, TkId],
    [:TkWHILE_MOD,  TkId],
    [:TkUNTIL_MOD,  TkId],
    [:TkALIAS,      TkId,  "alias",    EXPR_FNAME],
    [:TkDEFINED,    TkId,  "defined?", EXPR_END],
    [:TklBEGIN,     TkId,  "BEGIN",    EXPR_END],
    [:TklEND,	    TkId,  "END",      EXPR_END],
    [:Tk__LINE__,   TkId,  "__LINE__", EXPR_END],
    [:Tk__FILE__,   TkId,  "__FILE__", EXPR_END],

    [:TkIDENTIFIER, TkId],
    [:TkFID,	    TkId],
    [:TkGVAR,	    TkId],
    [:TkCVAR,	    TkId],
    [:TkIVAR,	    TkId],
    [:TkCONSTANT,   TkId],

    [:TkINTEGER,    TkVal],
    [:TkFLOAT,      TkVal],
    [:TkSTRING,     TkVal],
    [:TkXSTRING,    TkVal],
    [:TkREGEXP,     TkVal],
    [:TkSYMBOL,     TkVal],

    [:TkDSTRING,    TkNode],
    [:TkDXSTRING,   TkNode],
    [:TkDREGEXP,    TkNode],
    [:TkNTH_REF,    TkNode],
    [:TkBACK_REF,   TkNode],

    [:TkUPLUS,      TkOp,   "+@"],
    [:TkUMINUS,     TkOp,   "-@"],
    [:TkPOW,	    TkOp,   "**"],
    [:TkCMP,	    TkOp,   "<=>"],
    [:TkEQ,	    TkOp,   "=="],
    [:TkEQQ,	    TkOp,   "==="],
    [:TkNEQ,	    TkOp,   "!="],
    [:TkGEQ,	    TkOp,   ">="],
    [:TkLEQ,	    TkOp,   "<="],
    [:TkANDOP,      TkOp,   "&&"],
    [:TkOROP,	    TkOp,   "||"],
    [:TkMATCH,      TkOp,   "=~"],
    [:TkNMATCH,     TkOp,   "!~"],
    [:TkDOT2,	    TkOp,   ".."],
    [:TkDOT3,	    TkOp,   "..."],
    [:TkAREF,	    TkOp,   "[]"],
    [:TkASET,	    TkOp,   "[]="],
    [:TkLSHFT,      TkOp,   "<<"],
    [:TkRSHFT,      TkOp,   ">>"],
    [:TkCOLON2,     TkOp],
    [:TkCOLON3,     TkOp],
    [:TkASSOC,      TkOp,   "=>"],
    [:TkQUESTION,   TkOp,   "?"],	 #?
    [:TkCOLON,      TkOp,   ":"],        #:

    [:TkfLPAREN],         # func( #
    [:TkfLBRACK],         # func[ #
    [:TkfLBRACE],         # func{ #
    [:TkSTAR],            # *arg
    [:TkAMPER],           # &arg #
    [:TkSYMBEG],          # :SYMBOL

    [:TkGT,	    TkOp,   ">"],
    [:TkLT,	    TkOp,   "<"],
    [:TkPLUS,	    TkOp,   "+"],
    [:TkMINUS,      TkOp,   "-"],
    [:TkMULT,	    TkOp,   "*"],
    [:TkDIV,	    TkOp,   "/"],
    [:TkMOD,	    TkOp,   "%"],
    [:TkBITOR,      TkOp,   "|"],
    [:TkBITXOR,     TkOp,   "^"],
    [:TkBITAND,     TkOp,   "&"],
    [:TkBITNOT,     TkOp,   "~"],
    [:TkNOTOP,      TkOp,   "!"],

    [:TkBACKQUOTE,  TkOp,   "`"],

    [:TkASSIGN,     Token,  "="],
    [:TkDOT,	    Token,  "."],
    [:TkLPAREN,     Token,  "("],  #(exp)
    [:TkLBRACK,     Token,  "["],  #[arry]
    [:TkLBRACE,     Token,  "{"],  #{hash}
    [:TkRPAREN,     Token,  ")"],
    [:TkRBRACK,     Token,  "]"],
    [:TkRBRACE,     Token,  "}"],
    [:TkCOMMA,      Token,  ","],
    [:TkSEMICOLON,  Token,  ";"],

    [:TkCOMMENT],
    [:TkRD_COMMENT],
    [:TkSPACE],
    [:TkNL],
    [:TkEND_OF_SCRIPT],

    [:TkBACKSLASH,  TkUnknownChar,  "\\"],
    [:TkAT,	    TkUnknownChar,  "@"],
    [:TkDOLLAR,     TkUnknownChar,  "$"],
  ]

  # {reading => token_class}
  # {reading => [token_class, *opt]}
  TkReading2Token = {}
  TkSymbol2Token = {}

  def RubyToken.def_token(token_n, super_token = Token, reading = nil, *opts)
    token_n = token_n.id2name if token_n.kind_of?(Symbol)
    if RubyToken.const_defined?(token_n)
      IRB.fail AlreadyDefinedToken, token_n
    end
    token_c = eval("class #{token_n} < #{super_token}; end; #{token_n}")

    if reading
      if TkReading2Token[reading]
        IRB.fail TkReading2TokenDuplicateError, token_n, reading
      end
      if opts.empty?
        TkReading2Token[reading] = [token_c]
      else
        TkReading2Token[reading] = [token_c].concat(opts)
      end
    end
    TkSymbol2Token[token_n.intern] = token_c
  end

  for defs in TokenDefinitions
    def_token(*defs)
  end
end
# :startdoc:
lib64/ruby/2.2.0/irb/cmd/nop.rb000064400000001012150402106000011522 0ustar00#
#   nop.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47266 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
# :stopdoc:
module IRB
  module ExtendCommand
    class Nop


      def self.execute(conf, *opts)
        command = new(conf)
        command.execute(*opts)
      end

      def initialize(conf)
        @irb_context = conf
      end

      attr_reader :irb_context

      def irb
        @irb_context.irb
      end

      def execute(*opts)
        #nop
      end
    end
  end
end
# :startdoc:
lib64/ruby/2.2.0/irb/cmd/pushws.rb000064400000001206150402106000012264 0ustar00#
#   change-ws.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47112 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "irb/cmd/nop.rb"
require "irb/ext/workspaces.rb"

# :stopdoc:
module IRB
  module ExtendCommand
    class Workspaces<Nop
      def execute(*obj)
        irb_context.workspaces.collect{|ws| ws.main}
      end
    end

    class PushWorkspace<Workspaces
      def execute(*obj)
        irb_context.push_workspace(*obj)
        super
      end
    end

    class PopWorkspace<Workspaces
      def execute(*obj)
        irb_context.pop_workspace(*obj)
        super
      end
    end
  end
end
# :startdoc:

lib64/ruby/2.2.0/irb/cmd/chws.rb000064400000000773150402106000011707 0ustar00#
#   change-ws.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47112 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "irb/cmd/nop.rb"
require "irb/ext/change-ws.rb"

# :stopdoc:
module IRB
  module ExtendCommand

    class CurrentWorkingWorkspace<Nop
      def execute(*obj)
        irb_context.main
      end
    end

    class ChangeWorkspace<Nop
      def execute(*obj)
        irb_context.change_workspace(*obj)
        irb_context.main
      end
    end
  end
end
# :startdoc:
lib64/ruby/2.2.0/irb/cmd/help.rb000064400000001230150402106000011660 0ustar00#
#   help.rb - helper using ri
#   	$Release Version: 0.9.6$
#   	$Revision: 38358 $
#
# --
#
#
#

require 'rdoc/ri/driver'

require "irb/cmd/nop.rb"

# :stopdoc:
module IRB
  module ExtendCommand
    class Help<Nop
      begin
        Ri = RDoc::RI::Driver.new
      rescue SystemExit
      else
        def execute(*names)
          if names.empty?
            Ri.interactive
            return
          end
          names.each do |name|
            begin
              Ri.display_name(name.to_s)
            rescue RDoc::RI::Error
              puts $!.message
            end
          end
          nil
        end
      end
    end
  end
end
# :startdoc:
lib64/ruby/2.2.0/irb/cmd/subirb.rb000064400000001160150402106000012220 0ustar00#   multi.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47112 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "irb/cmd/nop.rb"
require "irb/ext/multi-irb"

# :stopdoc:
module IRB
  module ExtendCommand
    class IrbCommand<Nop
      def execute(*obj)
        IRB.irb(nil, *obj)
      end
    end

    class Jobs<Nop
      def execute
        IRB.JobManager
      end
    end

    class Foreground<Nop
      def execute(key)
        IRB.JobManager.switch(key)
      end
    end

    class Kill<Nop
      def execute(*keys)
        IRB.JobManager.kill(*keys)
      end
    end
  end
end
# :startdoc:
lib64/ruby/2.2.0/irb/cmd/fork.rb000064400000001144150402106000011675 0ustar00#
#   fork.rb -
#   	$Release Version: 0.9.6 $
#   	$Revision: 47266 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#


# :stopdoc:
module IRB
  module ExtendCommand
    class Fork<Nop
      def execute
        pid = send ExtendCommand.irb_original_method_name("fork")
        unless pid
          class << self
            alias_method :exit, ExtendCommand.irb_original_method_name('exit')
          end
          if iterator?
            begin
              yield
            ensure
              exit
            end
          end
        end
        pid
      end
    end
  end
end
# :startdoc:


lib64/ruby/2.2.0/irb/cmd/load.rb000064400000002253150402106000011655 0ustar00#
#   load.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47114 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "irb/cmd/nop.rb"
require "irb/ext/loader"

# :stopdoc:
module IRB
  module ExtendCommand
    class Load<Nop
      include IrbLoader

      def execute(file_name, priv = nil)
        return irb_load(file_name, priv)
      end
    end

    class Require<Nop
      include IrbLoader

      def execute(file_name)

        rex = Regexp.new("#{Regexp.quote(file_name)}(\.o|\.rb)?")
        return false if $".find{|f| f =~ rex}

        case file_name
        when /\.rb$/
          begin
            if irb_load(file_name)
              $".push file_name
              return true
            end
          rescue LoadError
          end
        when /\.(so|o|sl)$/
          return ruby_require(file_name)
        end

        begin
          irb_load(f = file_name + ".rb")
          $".push f
          return true
        rescue LoadError
          return ruby_require(file_name)
        end
      end
    end

    class Source<Nop
      include IrbLoader
      def execute(file_name)
        source_file(file_name)
      end
    end
  end

end
# :startdoc:
lib64/ruby/2.2.0/irb/context.rb000064400000030575150402106000011667 0ustar00#
#   irb/context.rb - irb context
#   	$Release Version: 0.9.6$
#   	$Revision: 47114 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
require "irb/workspace"
require "irb/inspector"

module IRB
  # A class that wraps the current state of the irb session, including the
  # configuration of IRB.conf.
  class Context
    # Creates a new IRB context.
    #
    # The optional +input_method+ argument:
    #
    # +nil+::     uses stdin or Readline
    # +String+::  uses a File
    # +other+::   uses this as InputMethod
    def initialize(irb, workspace = nil, input_method = nil, output_method = nil)
      @irb = irb
      if workspace
        @workspace = workspace
      else
        @workspace = WorkSpace.new
      end
      @thread = Thread.current if defined? Thread

      # copy of default configuration
      @ap_name = IRB.conf[:AP_NAME]
      @rc = IRB.conf[:RC]
      @load_modules = IRB.conf[:LOAD_MODULES]

      @use_readline = IRB.conf[:USE_READLINE]
      @verbose = IRB.conf[:VERBOSE]
      @io = nil

      self.inspect_mode = IRB.conf[:INSPECT_MODE]
      self.math_mode = IRB.conf[:MATH_MODE] if IRB.conf[:MATH_MODE]
      self.use_tracer = IRB.conf[:USE_TRACER] if IRB.conf[:USE_TRACER]
      self.use_loader = IRB.conf[:USE_LOADER] if IRB.conf[:USE_LOADER]
      self.eval_history = IRB.conf[:EVAL_HISTORY] if IRB.conf[:EVAL_HISTORY]

      @ignore_sigint = IRB.conf[:IGNORE_SIGINT]
      @ignore_eof = IRB.conf[:IGNORE_EOF]

      @back_trace_limit = IRB.conf[:BACK_TRACE_LIMIT]

      self.prompt_mode = IRB.conf[:PROMPT_MODE]

      if IRB.conf[:SINGLE_IRB] or !defined?(IRB::JobManager)
        @irb_name = IRB.conf[:IRB_NAME]
      else
        @irb_name = IRB.conf[:IRB_NAME]+"#"+IRB.JobManager.n_jobs.to_s
      end
      @irb_path = "(" + @irb_name + ")"

      case input_method
      when nil
        case use_readline?
        when nil
          if (defined?(ReadlineInputMethod) && STDIN.tty? &&
              IRB.conf[:PROMPT_MODE] != :INF_RUBY)
            @io = ReadlineInputMethod.new
          else
            @io = StdioInputMethod.new
          end
        when false
          @io = StdioInputMethod.new
        when true
          if defined?(ReadlineInputMethod)
            @io = ReadlineInputMethod.new
          else
            @io = StdioInputMethod.new
          end
        end

      when String
        @io = FileInputMethod.new(input_method)
        @irb_name = File.basename(input_method)
        @irb_path = input_method
      else
        @io = input_method
      end
      self.save_history = IRB.conf[:SAVE_HISTORY] if IRB.conf[:SAVE_HISTORY]

      if output_method
        @output_method = output_method
      else
        @output_method = StdioOutputMethod.new
      end

      @echo = IRB.conf[:ECHO]
      if @echo.nil?
        @echo = true
      end
      self.debug_level = IRB.conf[:DEBUG_LEVEL]
    end

    # The top-level workspace, see WorkSpace#main
    def main
      @workspace.main
    end

    # The toplevel workspace, see #home_workspace
    attr_reader :workspace_home
    # WorkSpace in the current context
    attr_accessor :workspace
    # The current thread in this context
    attr_reader :thread
    # The current input method
    #
    # Can be either StdioInputMethod, ReadlineInputMethod, FileInputMethod or
    # other specified when the context is created. See ::new for more
    # information on +input_method+.
    attr_accessor :io

    # Current irb session
    attr_accessor :irb
    # A copy of the default <code>IRB.conf[:AP_NAME]</code>
    attr_accessor :ap_name
    # A copy of the default <code>IRB.conf[:RC]</code>
    attr_accessor :rc
    # A copy of the default <code>IRB.conf[:LOAD_MODULES]</code>
    attr_accessor :load_modules
    # Can be either name from <code>IRB.conf[:IRB_NAME]</code>, or the number of
    # the current job set by JobManager, such as <code>irb#2</code>
    attr_accessor :irb_name
    # Can be either the #irb_name surrounded by parenthesis, or the
    # +input_method+ passed to Context.new
    attr_accessor :irb_path

    # Whether +Readline+ is enabled or not.
    #
    # A copy of the default <code>IRB.conf[:USE_READLINE]</code>
    #
    # See #use_readline= for more information.
    attr_reader :use_readline
    # A copy of the default <code>IRB.conf[:INSPECT_MODE]</code>
    attr_reader :inspect_mode

    # A copy of the default <code>IRB.conf[:PROMPT_MODE]</code>
    attr_reader :prompt_mode
    # Standard IRB prompt
    #
    # See IRB@Customizing+the+IRB+Prompt for more information.
    attr_accessor :prompt_i
    # IRB prompt for continuated strings
    #
    # See IRB@Customizing+the+IRB+Prompt for more information.
    attr_accessor :prompt_s
    # IRB prompt for continuated statement (e.g. immediately after an +if+)
    #
    # See IRB@Customizing+the+IRB+Prompt for more information.
    attr_accessor :prompt_c
    # See IRB@Customizing+the+IRB+Prompt for more information.
    attr_accessor :prompt_n
    # Can be either the default <code>IRB.conf[:AUTO_INDENT]</code>, or the
    # mode set by #prompt_mode=
    #
    # To enable auto-indentation in irb:
    #
    #     IRB.conf[:AUTO_INDENT] = true
    #
    # or
    #
    #     irb_context.auto_indent_mode = true
    #
    # or
    #
    #     IRB.CurrentContext.auto_indent_mode = true
    #
    # See IRB@Configuration for more information.
    attr_accessor :auto_indent_mode
    # The format of the return statement, set by #prompt_mode= using the
    # +:RETURN+ of the +mode+ passed to set the current #prompt_mode.
    attr_accessor :return_format

    # Whether <code>^C</code> (+control-c+) will be ignored or not.
    #
    # If set to +false+, <code>^C</code> will quit irb.
    #
    # If set to +true+,
    #
    # * during input:   cancel input then return to top level.
    # * during execute: abandon current execution.
    attr_accessor :ignore_sigint
    # Whether <code>^D</code> (+control-d+) will be ignored or not.
    #
    # If set to +false+, <code>^D</code> will quit irb.
    attr_accessor :ignore_eof
    # Whether to echo the return value to output or not.
    #
    # Uses IRB.conf[:ECHO] if available, or defaults to +true+.
    #
    #     puts "hello"
    #     # hello
    #     #=> nil
    #     IRB.CurrentContext.echo = false
    #     puts "omg"
    #     # omg
    attr_accessor :echo
    # Whether verbose messages are displayed or not.
    #
    # A copy of the default <code>IRB.conf[:VERBOSE]</code>
    attr_accessor :verbose
    # The debug level of irb
    #
    # See #debug_level= for more information.
    attr_reader :debug_level

    # The limit of backtrace lines displayed as top +n+ and tail +n+.
    #
    # The default value is 16.
    #
    # Can also be set using the +--back-trace-limit+ command line option.
    #
    # See IRB@Command+line+options for more command line options.
    attr_accessor :back_trace_limit

    # Alias for #use_readline
    alias use_readline? use_readline
    # Alias for #rc
    alias rc? rc
    alias ignore_sigint? ignore_sigint
    alias ignore_eof? ignore_eof
    alias echo? echo

    # Returns whether messages are displayed or not.
    def verbose?
      if @verbose.nil?
        if defined?(ReadlineInputMethod) && @io.kind_of?(ReadlineInputMethod)
          false
        elsif !STDIN.tty? or @io.kind_of?(FileInputMethod)
          true
        else
          false
        end
      else
        @verbose
      end
    end

    # Whether #verbose? is +true+, and +input_method+ is either
    # StdioInputMethod or ReadlineInputMethod, see #io for more information.
    def prompting?
      verbose? || (STDIN.tty? && @io.kind_of?(StdioInputMethod) ||
                   (defined?(ReadlineInputMethod) && @io.kind_of?(ReadlineInputMethod)))
    end

    # The return value of the last statement evaluated.
    attr_reader :last_value

    # Sets the return value from the last statement evaluated in this context
    # to #last_value.
    def set_last_value(value)
      @last_value = value
      @workspace.evaluate self, "_ = IRB.CurrentContext.last_value"
    end

    # Sets the +mode+ of the prompt in this context.
    #
    # See IRB@Customizing+the+IRB+Prompt for more information.
    def prompt_mode=(mode)
      @prompt_mode = mode
      pconf = IRB.conf[:PROMPT][mode]
      @prompt_i = pconf[:PROMPT_I]
      @prompt_s = pconf[:PROMPT_S]
      @prompt_c = pconf[:PROMPT_C]
      @prompt_n = pconf[:PROMPT_N]
      @return_format = pconf[:RETURN]
      if ai = pconf.include?(:AUTO_INDENT)
        @auto_indent_mode = ai
      else
        @auto_indent_mode = IRB.conf[:AUTO_INDENT]
      end
    end

    # Whether #inspect_mode is set or not, see #inspect_mode= for more detail.
    def inspect?
      @inspect_mode.nil? or @inspect_mode
    end

    # Whether #io uses a File for the +input_method+ passed when creating the
    # current context, see ::new
    def file_input?
      @io.class == FileInputMethod
    end

    # Specifies the inspect mode with +opt+:
    #
    # +true+::  display +inspect+
    # +false+:: display +to_s+
    # +nil+::   inspect mode in non-math mode,
    #           non-inspect mode in math mode
    #
    # See IRB::Inspector for more information.
    #
    # Can also be set using the +--inspect+ and +--noinspect+ command line
    # options.
    #
    # See IRB@Command+line+options for more command line options.
    def inspect_mode=(opt)

      if i = Inspector::INSPECTORS[opt]
        @inspect_mode = opt
        @inspect_method = i
        i.init
      else
        case opt
        when nil
          if Inspector.keys_with_inspector(Inspector::INSPECTORS[true]).include?(@inspect_mode)
            self.inspect_mode = false
          elsif Inspector.keys_with_inspector(Inspector::INSPECTORS[false]).include?(@inspect_mode)
            self.inspect_mode = true
          else
            puts "Can't switch inspect mode."
            return
          end
        when /^\s*\{.*\}\s*$/
          begin
            inspector = eval "proc#{opt}"
          rescue Exception
            puts "Can't switch inspect mode(#{opt})."
            return
          end
          self.inspect_mode = inspector
        when Proc
          self.inspect_mode = IRB::Inspector(opt)
        when Inspector
          prefix = "usr%d"
          i = 1
          while Inspector::INSPECTORS[format(prefix, i)]; i += 1; end
          @inspect_mode = format(prefix, i)
          @inspect_method = opt
          Inspector.def_inspector(format(prefix, i), @inspect_method)
        else
          puts "Can't switch inspect mode(#{opt})."
          return
        end
      end
      print "Switch to#{unless @inspect_mode; ' non';end} inspect mode.\n" if verbose?
      @inspect_mode
    end

    # Obsolete method.
    #
    # Can be set using the +--noreadline+ and +--readline+ command line
    # options.
    #
    # See IRB@Command+line+options for more command line options.
    def use_readline=(opt)
      print "This method is obsolete."
      print "Do nothing."
    end

    # Sets the debug level of irb
    #
    # Can also be set using the +--irb_debug+ command line option.
    #
    # See IRB@Command+line+options for more command line options.
    def debug_level=(value)
      @debug_level = value
      RubyLex.debug_level = value
    end

    # Whether or not debug mode is enabled, see #debug_level=.
    def debug?
      @debug_level > 0
    end

    def evaluate(line, line_no) # :nodoc:
      @line_no = line_no
      set_last_value(@workspace.evaluate(self, line, irb_path, line_no))
    end

    def inspect_last_value # :nodoc:
      @inspect_method.inspect_value(@last_value)
    end

    alias __exit__ exit
    # Exits the current session, see IRB.irb_exit
    def exit(ret = 0)
      IRB.irb_exit(@irb, ret)
    end

    NOPRINTING_IVARS = ["@last_value"] # :nodoc:
    NO_INSPECTING_IVARS = ["@irb", "@io"] # :nodoc:
    IDNAME_IVARS = ["@prompt_mode"] # :nodoc:

    alias __inspect__ inspect
    def inspect # :nodoc:
      array = []
      for ivar in instance_variables.sort{|e1, e2| e1 <=> e2}
        ivar = ivar.to_s
        name = ivar.sub(/^@(.*)$/, '\1')
        val = instance_eval(ivar)
        case ivar
        when *NOPRINTING_IVARS
          array.push format("conf.%s=%s", name, "...")
        when *NO_INSPECTING_IVARS
          array.push format("conf.%s=%s", name, val.to_s)
        when *IDNAME_IVARS
          array.push format("conf.%s=:%s", name, val.id2name)
        else
          array.push format("conf.%s=%s", name, val.inspect)
        end
      end
      array.join("\n")
    end
    alias __to_s__ to_s
    alias to_s inspect
  end
end
lib64/ruby/2.2.0/irb/ext/save-history.rb000064400000005067150402106000013436 0ustar00#   save-history.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47266 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "readline"

module IRB
  module HistorySavingAbility # :nodoc:
  end

  class Context
    def init_save_history# :nodoc:
      unless (class<<@io;self;end).include?(HistorySavingAbility)
        @io.extend(HistorySavingAbility)
      end
    end

    # A copy of the default <code>IRB.conf[:SAVE_HISTORY]</code>
    def save_history
      IRB.conf[:SAVE_HISTORY]
    end

    # Sets <code>IRB.conf[:SAVE_HISTORY]</code> to the given +val+ and calls
    # #init_save_history with this context.
    #
    # Will store the number of +val+ entries of history in the #history_file
    #
    # Add the following to your +.irbrc+ to change the number of history
    # entries stored to 1000:
    #
    #     IRB.conf[:SAVE_HISTORY] = 1000
    def save_history=(val)
      IRB.conf[:SAVE_HISTORY] = val
      if val
        main_context = IRB.conf[:MAIN_CONTEXT]
        main_context = self unless main_context
        main_context.init_save_history
      end
    end

    # A copy of the default <code>IRB.conf[:HISTORY_FILE]</code>
    def history_file
      IRB.conf[:HISTORY_FILE]
    end

    # Set <code>IRB.conf[:HISTORY_FILE]</code> to the given +hist+.
    def history_file=(hist)
      IRB.conf[:HISTORY_FILE] = hist
    end
  end

  module HistorySavingAbility # :nodoc:
    include Readline

    def HistorySavingAbility.extended(obj)
      IRB.conf[:AT_EXIT].push proc{obj.save_history}
      obj.load_history
      obj
    end

    def load_history
      if history_file = IRB.conf[:HISTORY_FILE]
        history_file = File.expand_path(history_file)
      end
      history_file = IRB.rc_file("_history") unless history_file
      if File.exist?(history_file)
        open(history_file) do |f|
          f.each {|l| HISTORY << l.chomp}
        end
      end
    end

    def save_history
      if num = IRB.conf[:SAVE_HISTORY] and (num = num.to_i) > 0
        if history_file = IRB.conf[:HISTORY_FILE]
          history_file = File.expand_path(history_file)
        end
        history_file = IRB.rc_file("_history") unless history_file

        # Change the permission of a file that already exists[BUG #7694]
        begin
          if File.stat(history_file).mode & 066 != 0
            File.chmod(0600, history_file)
          end
        rescue Errno::ENOENT
        rescue
          raise
        end

        open(history_file, 'w', 0600 ) do |f|
          hist = HISTORY.to_a
          f.puts(hist[-num..-1] || hist)
        end
      end
    end
  end
end
lib64/ruby/2.2.0/irb/ext/multi-irb.rb000064400000014723150402106000012704 0ustar00#
#   irb/multi-irb.rb - multiple irb module
#   	$Release Version: 0.9.6$
#   	$Revision: 47266 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
IRB.fail CantShiftToMultiIrbMode unless defined?(Thread)
require "thread"

module IRB
  class JobManager

    # Creates a new JobManager object
    def initialize
      @jobs = []
      @current_job = nil
    end

    # The active irb session
    attr_accessor :current_job

    # The total number of irb sessions, used to set +irb_name+ of the current
    # Context.
    def n_jobs
      @jobs.size
    end

    # Returns the thread for the given +key+ object, see #search for more
    # information.
    def thread(key)
      th, = search(key)
      th
    end

    # Returns the irb session for the given +key+ object, see #search for more
    # information.
    def irb(key)
      _, irb = search(key)
      irb
    end

    # Returns the top level thread.
    def main_thread
      @jobs[0][0]
    end

    # Returns the top level irb session.
    def main_irb
      @jobs[0][1]
    end

    # Add the given +irb+ session to the jobs Array.
    def insert(irb)
      @jobs.push [Thread.current, irb]
    end

    # Changes the current active irb session to the given +key+ in the jobs
    # Array.
    #
    # Raises an IrbAlreadyDead exception if the given +key+ is no longer alive.
    #
    # If the given irb session is already active, an IrbSwitchedToCurrentThread
    # exception is raised.
    def switch(key)
      th, irb = search(key)
      IRB.fail IrbAlreadyDead unless th.alive?
      IRB.fail IrbSwitchedToCurrentThread if th == Thread.current
      @current_job = irb
      th.run
      Thread.stop
      @current_job = irb(Thread.current)
    end

    # Terminates the irb sessions specified by the given +keys+.
    #
    # Raises an IrbAlreadyDead exception if one of the given +keys+ is already
    # terminated.
    #
    # See Thread#exit for more information.
    def kill(*keys)
      for key in keys
        th, _ = search(key)
        IRB.fail IrbAlreadyDead unless th.alive?
        th.exit
      end
    end

    # Returns the associated job for the given +key+.
    #
    # If given an Integer, it will return the +key+ index for the jobs Array.
    #
    # When an instance of Irb is given, it will return the irb session
    # associated with +key+.
    #
    # If given an instance of Thread, it will return the associated thread
    # +key+ using Object#=== on the jobs Array.
    #
    # Otherwise returns the irb session with the same top-level binding as the
    # given +key+.
    #
    # Raises a NoSuchJob exception if no job can be found with the given +key+.
    def search(key)
      job = case key
            when Integer
              @jobs[key]
            when Irb
              @jobs.find{|k, v| v.equal?(key)}
            when Thread
              @jobs.assoc(key)
            else
              @jobs.find{|k, v| v.context.main.equal?(key)}
            end
      IRB.fail NoSuchJob, key if job.nil?
      job
    end

    # Deletes the job at the given +key+.
    def delete(key)
      case key
      when Integer
        IRB.fail NoSuchJob, key unless @jobs[key]
        @jobs[key] = nil
      else
        catch(:EXISTS) do
          @jobs.each_index do
            |i|
            if @jobs[i] and (@jobs[i][0] == key ||
                @jobs[i][1] == key ||
                @jobs[i][1].context.main.equal?(key))
              @jobs[i] = nil
              throw :EXISTS
            end
          end
          IRB.fail NoSuchJob, key
        end
      end
      until assoc = @jobs.pop; end unless @jobs.empty?
      @jobs.push assoc
    end

    # Outputs a list of jobs, see the irb command +irb_jobs+, or +jobs+.
    def inspect
      ary = []
      @jobs.each_index do
        |i|
        th, irb = @jobs[i]
        next if th.nil?

        if th.alive?
          if th.stop?
            t_status = "stop"
          else
            t_status = "running"
          end
        else
          t_status = "exited"
        end
        ary.push format("#%d->%s on %s (%s: %s)",
          i,
          irb.context.irb_name,
          irb.context.main,
          th,
          t_status)
      end
      ary.join("\n")
    end
  end

  @JobManager = JobManager.new

  # The current JobManager in the session
  def IRB.JobManager
    @JobManager
  end

  # The current Context in this session
  def IRB.CurrentContext
    IRB.JobManager.irb(Thread.current).context
  end

  # Creates a new IRB session, see Irb.new.
  #
  # The optional +file+ argument is given to Context.new, along with the
  # workspace created with the remaining arguments, see WorkSpace.new
  def IRB.irb(file = nil, *main)
    workspace = WorkSpace.new(*main)
    parent_thread = Thread.current
    Thread.start do
      begin
        irb = Irb.new(workspace, file)
      rescue
        print "Subirb can't start with context(self): ", workspace.main.inspect, "\n"
        print "return to main irb\n"
        Thread.pass
        Thread.main.wakeup
        Thread.exit
      end
      @CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC]
      @JobManager.insert(irb)
      @JobManager.current_job = irb
      begin
        system_exit = false
        catch(:IRB_EXIT) do
          irb.eval_input
        end
      rescue SystemExit
        system_exit = true
        raise
        #fail
      ensure
        unless system_exit
          @JobManager.delete(irb)
          if @JobManager.current_job == irb
            if parent_thread.alive?
              @JobManager.current_job = @JobManager.irb(parent_thread)
              parent_thread.run
            else
              @JobManager.current_job = @JobManager.main_irb
              @JobManager.main_thread.run
            end
          end
        end
      end
    end
    Thread.stop
    @JobManager.current_job = @JobManager.irb(Thread.current)
  end

  @CONF[:SINGLE_IRB_MODE] = false
  @JobManager.insert(@CONF[:MAIN_CONTEXT].irb)
  @JobManager.current_job = @CONF[:MAIN_CONTEXT].irb

  class Irb
    def signal_handle
      unless @context.ignore_sigint?
        print "\nabort!!\n" if @context.verbose?
        exit
      end

      case @signal_status
      when :IN_INPUT
        print "^C\n"
        IRB.JobManager.thread(self).raise RubyLex::TerminateLineInput
      when :IN_EVAL
        IRB.irb_abort(self)
      when :IN_LOAD
        IRB.irb_abort(self, LoadAbort)
      when :IN_IRB
        # ignore
      else
        # ignore other cases as well
      end
    end
  end

  trap("SIGINT") do
    @JobManager.current_job.signal_handle
    Thread.stop
  end

end
lib64/ruby/2.2.0/irb/ext/change-ws.rb000064400000001763150402106000012654 0ustar00#
#   irb/ext/cb.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47114 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

module IRB # :nodoc:
  class Context

    # Inherited from +TOPLEVEL_BINDING+.
    def home_workspace
      if defined? @home_workspace
        @home_workspace
      else
        @home_workspace = @workspace
      end
    end

    # Changes the current workspace to given object or binding.
    #
    # If the optional argument is omitted, the workspace will be
    # #home_workspace which is inherited from +TOPLEVEL_BINDING+ or the main
    # object, <code>IRB.conf[:MAIN_CONTEXT]</code> when irb was initialized.
    #
    # See IRB::WorkSpace.new for more information.
    def change_workspace(*_main)
      if _main.empty?
        @workspace = home_workspace
        return main
      end

      @workspace = WorkSpace.new(_main[0])

      if !(class<<main;ancestors;end).include?(ExtendCommandBundle)
        main.extend ExtendCommandBundle
      end
    end
  end
end

lib64/ruby/2.2.0/irb/ext/loader.rb000064400000006146150402106000012246 0ustar00#
#   loader.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47266 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#


module IRB # :nodoc:
  # Raised in the event of an exception in a file loaded from an Irb session
  class LoadAbort < Exception;end

  # Provides a few commands for loading files within an irb session.
  #
  # See ExtendCommandBundle for more information.
  module IrbLoader

    alias ruby_load load
    alias ruby_require require

    # Loads the given file similarly to Kernel#load
    def irb_load(fn, priv = nil)
      path = search_file_from_ruby_path(fn)
      raise LoadError, "No such file to load -- #{fn}" unless path

      load_file(path, priv)
    end

    def search_file_from_ruby_path(fn) # :nodoc:
      if /^#{Regexp.quote(File::Separator)}/ =~ fn
        return fn if File.exist?(fn)
        return nil
      end

      for path in $:
        if File.exist?(f = File.join(path, fn))
          return f
        end
      end
      return nil
    end

    # Loads a given file in the current session and displays the source lines
    #
    # See Irb#suspend_input_method for more information.
    def source_file(path)
      irb.suspend_name(path, File.basename(path)) do
        irb.suspend_input_method(FileInputMethod.new(path)) do
          |back_io|
          irb.signal_status(:IN_LOAD) do
            if back_io.kind_of?(FileInputMethod)
              irb.eval_input
            else
              begin
                irb.eval_input
              rescue LoadAbort
                print "load abort!!\n"
              end
            end
          end
        end
      end
    end

    # Loads the given file in the current session's context and evaluates it.
    #
    # See Irb#suspend_input_method for more information.
    def load_file(path, priv = nil)
      irb.suspend_name(path, File.basename(path)) do

        if priv
          ws = WorkSpace.new(Module.new)
        else
          ws = WorkSpace.new
        end
        irb.suspend_workspace(ws) do
          irb.suspend_input_method(FileInputMethod.new(path)) do
            |back_io|
            irb.signal_status(:IN_LOAD) do
              if back_io.kind_of?(FileInputMethod)
                irb.eval_input
              else
                begin
                  irb.eval_input
                rescue LoadAbort
                  print "load abort!!\n"
                end
              end
            end
          end
        end
      end
    end

    def old # :nodoc:
      back_io = @io
      back_path = @irb_path
      back_name = @irb_name
      back_scanner = @irb.scanner
      begin
        @io = FileInputMethod.new(path)
        @irb_name = File.basename(path)
        @irb_path = path
        @irb.signal_status(:IN_LOAD) do
          if back_io.kind_of?(FileInputMethod)
            @irb.eval_input
          else
            begin
              @irb.eval_input
            rescue LoadAbort
              print "load abort!!\n"
            end
          end
        end
      ensure
        @io = back_io
        @irb_name = back_name
        @irb_path = back_path
        @irb.scanner = back_scanner
      end
    end
  end
end

lib64/ruby/2.2.0/irb/ext/history.rb000064400000004664150402106000012504 0ustar00#
#   history.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47266 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

module IRB # :nodoc:

  class Context

    NOPRINTING_IVARS.push "@eval_history_values"

    # See #set_last_value
    alias _set_last_value set_last_value

    def set_last_value(value)
      _set_last_value(value)

      if @eval_history
        @eval_history_values.push @line_no, @last_value
        @workspace.evaluate self, "__ = IRB.CurrentContext.instance_eval{@eval_history_values}"
      end

      @last_value
    end

    # The command result history limit.
    attr_reader :eval_history
    # Sets command result history limit.
    #
    # +no+ is an Integer or +nil+.
    #
    # Returns +no+ of history items if greater than 0.
    #
    # If +no+ is 0, the number of history items is unlimited.
    #
    # If +no+ is +nil+, execution result history isn't used (default).
    def eval_history=(no)
      if no
        if defined?(@eval_history) && @eval_history
          @eval_history_values.size(no)
        else
          @eval_history_values = History.new(no)
          IRB.conf[:__TMP__EHV__] = @eval_history_values
          @workspace.evaluate(self, "__ = IRB.conf[:__TMP__EHV__]")
          IRB.conf.delete(:__TMP_EHV__)
        end
      else
        @eval_history_values = nil
      end
      @eval_history = no
    end
  end

  class History # :nodoc:

    def initialize(size = 16)
      @size = size
      @contents = []
    end

    def size(size)
      if size != 0 && size < @size
        @contents = @contents[@size - size .. @size]
      end
      @size = size
    end

    def [](idx)
      begin
        if idx >= 0
          @contents.find{|no, val| no == idx}[1]
        else
          @contents[idx][1]
        end
      rescue NameError
        nil
      end
    end

    def push(no, val)
      @contents.push [no, val]
      @contents.shift if @size != 0 && @contents.size > @size
    end

    alias real_inspect inspect

    def inspect
      if @contents.empty?
        return real_inspect
      end

      unless (last = @contents.pop)[1].equal?(self)
        @contents.push last
        last = nil
      end
      str = @contents.collect{|no, val|
        if val.equal?(self)
          "#{no} ...self-history..."
        else
          "#{no} #{val.inspect}"
        end
      }.join("\n")
      if str == ""
        str = "Empty."
      end
      @contents.push last if last
      str
    end
  end
end


lib64/ruby/2.2.0/irb/ext/tracer.rb000064400000003254150402106000012255 0ustar00#
#   irb/lib/tracer.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47112 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
require "tracer"

module IRB

  # initialize tracing function
  def IRB.initialize_tracer
    Tracer.verbose = false
    Tracer.add_filter {
      |event, file, line, id, binding, *rests|
      /^#{Regexp.quote(@CONF[:IRB_LIB_PATH])}/ !~ file and
        File::basename(file) != "irb.rb"
    }
  end

  class Context
    # Whether Tracer is used when evaluating statements in this context.
    #
    # See +lib/tracer.rb+ for more information.
    attr_reader :use_tracer
    alias use_tracer? use_tracer

    # Sets whether or not to use the Tracer library when evaluating statements
    # in this context.
    #
    # See +lib/tracer.rb+ for more information.
    def use_tracer=(opt)
      if opt
        Tracer.set_get_line_procs(@irb_path) {
          |line_no, *rests|
          @io.line(line_no)
        }
      elsif !opt && @use_tracer
        Tracer.off
      end
      @use_tracer=opt
    end
  end

  class WorkSpace
    alias __evaluate__ evaluate
    # Evaluate the context of this workspace and use the Tracer library to
    # output the exact lines of code are being executed in chronological order.
    #
    # See +lib/tracer.rb+ for more information.
    def evaluate(context, statements, file = nil, line = nil)
      if context.use_tracer? && file != nil && line != nil
        Tracer.on
        begin
          __evaluate__(context, statements, file, line)
        ensure
          Tracer.off
        end
      else
        __evaluate__(context, statements, file || __FILE__, line || __LINE__)
      end
    end
  end

  IRB.initialize_tracer
end

lib64/ruby/2.2.0/irb/ext/use-loader.rb000064400000003336150402106000013036 0ustar00#
#   use-loader.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47112 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "irb/cmd/load"
require "irb/ext/loader"

class Object
  alias __original__load__IRB_use_loader__ load
  alias __original__require__IRB_use_loader__ require
end

module IRB
  module ExtendCommandBundle
    # Loads the given file similarly to Kernel#load, see IrbLoader#irb_load
    def irb_load(*opts, &b)
      ExtendCommand::Load.execute(irb_context, *opts, &b)
    end
    # Loads the given file similarly to Kernel#require
    def irb_require(*opts, &b)
      ExtendCommand::Require.execute(irb_context, *opts, &b)
    end
  end

  class Context

    IRB.conf[:USE_LOADER] = false

    # Returns whether +irb+'s own file reader method is used by
    # +load+/+require+ or not.
    #
    # This mode is globally affected (irb-wide).
    def use_loader
      IRB.conf[:USE_LOADER]
    end

    alias use_loader? use_loader

    # Sets IRB.conf[:USE_LOADER]
    #
    # See #use_loader for more information.
    def use_loader=(opt)

      if IRB.conf[:USE_LOADER] != opt
        IRB.conf[:USE_LOADER] = opt
        if opt
          if !$".include?("irb/cmd/load")
          end
          (class<<@workspace.main;self;end).instance_eval {
            alias_method :load, :irb_load
            alias_method :require, :irb_require
          }
        else
          (class<<@workspace.main;self;end).instance_eval {
            alias_method :load, :__original__load__IRB_use_loader__
            alias_method :require, :__original__require__IRB_use_loader__
          }
        end
      end
      print "Switch to load/require#{unless use_loader; ' non';end} trace mode.\n" if verbose?
      opt
    end
  end
end


lib64/ruby/2.2.0/irb/ext/math-mode.rb000064400000001653150402106000012651 0ustar00#
#   math-mode.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47112 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
require "mathn"

module IRB
  class Context
    # Returns whether bc mode is enabled.
    #
    # See #math_mode=
    attr_reader :math_mode
    # Alias for #math_mode
    alias math? math_mode

    # Sets bc mode, which loads +lib/mathn.rb+ so fractions or matrix are
    # available.
    #
    # Also available as the +-m+ command line option.
    #
    # See IRB@Command+line+options and the unix manpage <code>bc(1)</code> for
    # more information.
    def math_mode=(opt)
      if @math_mode == true && !opt
        IRB.fail CantReturnToNormalMode
        return
      end

      @math_mode = opt
      if math_mode
        main.extend Math
        print "start math mode\n" if verbose?
      end
    end

    def inspect?
      @inspect_mode.nil? && !@math_mode or @inspect_mode
    end
  end
end

lib64/ruby/2.2.0/irb/ext/workspaces.rb000064400000002723150402106000013156 0ustar00#
#   push-ws.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47112 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

module IRB # :nodoc:
  class Context

    # Size of the current WorkSpace stack
    def irb_level
      workspace_stack.size
    end

    # WorkSpaces in the current stack
    def workspaces
      if defined? @workspaces
        @workspaces
      else
        @workspaces = []
      end
    end

    # Creates a new workspace with the given object or binding, and appends it
    # onto the current #workspaces stack.
    #
    # See IRB::Context#change_workspace and IRB::WorkSpace.new for more
    # information.
    def push_workspace(*_main)
      if _main.empty?
        if workspaces.empty?
          print "No other workspace\n"
          return nil
        end
        ws = workspaces.pop
        workspaces.push @workspace
        @workspace = ws
        return workspaces
      end

      workspaces.push @workspace
      @workspace = WorkSpace.new(@workspace.binding, _main[0])
      if !(class<<main;ancestors;end).include?(ExtendCommandBundle)
        main.extend ExtendCommandBundle
      end
    end

    # Removes the last element from the current #workspaces stack and returns
    # it, or +nil+ if the current workspace stack is empty.
    #
    # Also, see #push_workspace.
    def pop_workspace
      if workspaces.empty?
        print "workspace stack empty\n"
        return
      end
      @workspace = workspaces.pop
    end
  end
end

lib64/ruby/2.2.0/irb/ws-for-case-2.rb000064400000000303150402106000012452 0ustar00#
#   irb/ws-for-case-2.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 29726 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

while true
  IRB::BINDING_QUEUE.push _ = binding
end
lib64/ruby/2.2.0/irb/frame.rb000064400000003612150402106000011265 0ustar00#
#   frame.rb -
#   	$Release Version: 0.9$
#   	$Revision: 47112 $
#   	by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd)
#
# --
#
#
#

require "e2mmap"

module IRB
  class Frame
    extend Exception2MessageMapper
    def_exception :FrameOverflow, "frame overflow"
    def_exception :FrameUnderflow, "frame underflow"

    # Default number of stack frames
    INIT_STACK_TIMES = 3
    # Default number of frames offset
    CALL_STACK_OFFSET = 3

    # Creates a new stack frame
    def initialize
      @frames = [TOPLEVEL_BINDING] * INIT_STACK_TIMES
    end

    # Used by Kernel#set_trace_func to register each event in the call stack
    def trace_func(event, file, line, id, binding)
      case event
      when 'call', 'class'
        @frames.push binding
      when 'return', 'end'
        @frames.pop
      end
    end

    # Returns the +n+ number of frames on the call stack from the last frame
    # initialized.
    #
    # Raises FrameUnderflow if there are no frames in the given stack range.
    def top(n = 0)
      bind = @frames[-(n + CALL_STACK_OFFSET)]
      Fail FrameUnderflow unless bind
      bind
    end

    # Returns the +n+ number of frames on the call stack from the first frame
    # initialized.
    #
    # Raises FrameOverflow if there are no frames in the given stack range.
    def bottom(n = 0)
      bind = @frames[n]
      Fail FrameOverflow unless bind
      bind
    end

    # Convenience method for Frame#bottom
    def Frame.bottom(n = 0)
      @backtrace.bottom(n)
    end

    # Convenience method for Frame#top
    def Frame.top(n = 0)
      @backtrace.top(n)
    end

    # Returns the binding context of the caller from the last frame initialized
    def Frame.sender
      eval "self", @backtrace.top
    end

    @backtrace = Frame.new
    set_trace_func proc{|event, file, line, id, binding, klass|
      @backtrace.trace_func(event, file, line, id, binding)
    }
  end
end
lib64/ruby/2.2.0/irb/src_encoding.rb000064400000000132150402106000012622 0ustar00# DO NOT WRITE ANY MAGIC COMMENT HERE.
def default_src_encoding
  return __ENCODING__
end
lib64/ruby/2.2.0/irb/extend-command.rb000064400000023276150402106000013106 0ustar00#
#   irb/extend-command.rb - irb extend command
#   	$Release Version: 0.9.6$
#   	$Revision: 47114 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
module IRB # :nodoc:
  # Installs the default irb extensions command bundle.
  module ExtendCommandBundle
    EXCB = ExtendCommandBundle # :nodoc:

    # See #install_alias_method.
    NO_OVERRIDE = 0
    # See #install_alias_method.
    OVERRIDE_PRIVATE_ONLY = 0x01
    # See #install_alias_method.
    OVERRIDE_ALL = 0x02

    # Quits the current irb context
    #
    # +ret+ is the optional signal or message to send to Context#exit
    #
    # Same as <code>IRB.CurrentContext.exit</code>.
    def irb_exit(ret = 0)
      irb_context.exit(ret)
    end

    # Displays current configuration.
    #
    # Modifing the configuration is achieved by sending a message to IRB.conf.
    def irb_context
      IRB.CurrentContext
    end

    @ALIASES = [
      [:context, :irb_context, NO_OVERRIDE],
      [:conf, :irb_context, NO_OVERRIDE],
      [:irb_quit, :irb_exit, OVERRIDE_PRIVATE_ONLY],
      [:exit, :irb_exit, OVERRIDE_PRIVATE_ONLY],
      [:quit, :irb_exit, OVERRIDE_PRIVATE_ONLY],
    ]

    @EXTEND_COMMANDS = [
      [:irb_current_working_workspace, :CurrentWorkingWorkspace, "irb/cmd/chws",
       [:irb_print_working_workspace, OVERRIDE_ALL],
       [:irb_cwws, OVERRIDE_ALL],
       [:irb_pwws, OVERRIDE_ALL],
       [:cwws, NO_OVERRIDE],
       [:pwws, NO_OVERRIDE],
       [:irb_current_working_binding, OVERRIDE_ALL],
       [:irb_print_working_binding, OVERRIDE_ALL],
       [:irb_cwb, OVERRIDE_ALL],
       [:irb_pwb, OVERRIDE_ALL],
    ],
    [:irb_change_workspace, :ChangeWorkspace, "irb/cmd/chws",
     [:irb_chws, OVERRIDE_ALL],
     [:irb_cws, OVERRIDE_ALL],
     [:chws, NO_OVERRIDE],
     [:cws, NO_OVERRIDE],
     [:irb_change_binding, OVERRIDE_ALL],
     [:irb_cb, OVERRIDE_ALL],
     [:cb, NO_OVERRIDE]],

    [:irb_workspaces, :Workspaces, "irb/cmd/pushws",
     [:workspaces, NO_OVERRIDE],
     [:irb_bindings, OVERRIDE_ALL],
     [:bindings, NO_OVERRIDE]],
    [:irb_push_workspace, :PushWorkspace, "irb/cmd/pushws",
     [:irb_pushws, OVERRIDE_ALL],
     [:pushws, NO_OVERRIDE],
     [:irb_push_binding, OVERRIDE_ALL],
     [:irb_pushb, OVERRIDE_ALL],
     [:pushb, NO_OVERRIDE]],
    [:irb_pop_workspace, :PopWorkspace, "irb/cmd/pushws",
     [:irb_popws, OVERRIDE_ALL],
     [:popws, NO_OVERRIDE],
     [:irb_pop_binding, OVERRIDE_ALL],
     [:irb_popb, OVERRIDE_ALL],
     [:popb, NO_OVERRIDE]],

    [:irb_load, :Load, "irb/cmd/load"],
    [:irb_require, :Require, "irb/cmd/load"],
    [:irb_source, :Source, "irb/cmd/load",
     [:source, NO_OVERRIDE]],

    [:irb, :IrbCommand, "irb/cmd/subirb"],
    [:irb_jobs, :Jobs, "irb/cmd/subirb",
     [:jobs, NO_OVERRIDE]],
    [:irb_fg, :Foreground, "irb/cmd/subirb",
     [:fg, NO_OVERRIDE]],
    [:irb_kill, :Kill, "irb/cmd/subirb",
     [:kill, OVERRIDE_PRIVATE_ONLY]],

    [:irb_help, :Help, "irb/cmd/help",
     [:help, NO_OVERRIDE]],

    ]

    # Installs the default irb commands:
    #
    # +irb_current_working_workspace+::   Context#main
    # +irb_change_workspace+::            Context#change_workspace
    # +irb_workspaces+::                  Context#workspaces
    # +irb_push_workspace+::              Context#push_workspace
    # +irb_pop_workspace+::               Context#pop_workspace
    # +irb_load+::                        #irb_load
    # +irb_require+::                     #irb_require
    # +irb_source+::                      IrbLoader#source_file
    # +irb+::                             IRB.irb
    # +irb_jobs+::                        JobManager
    # +irb_fg+::                          JobManager#switch
    # +irb_kill+::                        JobManager#kill
    # +irb_help+::                        IRB@Command+line+options
    def self.install_extend_commands
      for args in @EXTEND_COMMANDS
        def_extend_command(*args)
      end
    end

    # Evaluate the given +cmd_name+ on the given +cmd_class+ Class.
    #
    # Will also define any given +aliases+ for the method.
    #
    # The optional +load_file+ parameter will be required within the method
    # definition.
    def self.def_extend_command(cmd_name, cmd_class, load_file = nil, *aliases)
      case cmd_class
      when Symbol
        cmd_class = cmd_class.id2name
      when String
      when Class
        cmd_class = cmd_class.name
      end

      if load_file
        line = __LINE__; eval %[
          def #{cmd_name}(*opts, &b)
            require "#{load_file}"
            arity = ExtendCommand::#{cmd_class}.instance_method(:execute).arity
            args = (1..(arity < 0 ? ~arity : arity)).map {|i| "arg" + i.to_s }
            args << "*opts" if arity < 0
            args << "&block"
            args = args.join(", ")
            line = __LINE__; eval %[
              def #{cmd_name}(\#{args})
            ExtendCommand::#{cmd_class}.execute(irb_context, \#{args})
              end
            ], nil, __FILE__, line
            send :#{cmd_name}, *opts, &b
          end
        ], nil, __FILE__, line
      else
        line = __LINE__; eval %[
          def #{cmd_name}(*opts, &b)
            ExtendCommand::#{cmd_class}.execute(irb_context, *opts, &b)
          end
        ], nil, __FILE__, line
      end

      for ali, flag in aliases
        @ALIASES.push [ali, cmd_name, flag]
      end
    end

    # Installs alias methods for the default irb commands, see
    # ::install_extend_commands.
    def install_alias_method(to, from, override = NO_OVERRIDE)
      to = to.id2name unless to.kind_of?(String)
      from = from.id2name unless from.kind_of?(String)

      if override == OVERRIDE_ALL or
          (override == OVERRIDE_PRIVATE_ONLY) && !respond_to?(to) or
          (override == NO_OVERRIDE) &&  !respond_to?(to, true)
        target = self
        (class << self; self; end).instance_eval{
          if target.respond_to?(to, true) &&
            !target.respond_to?(EXCB.irb_original_method_name(to), true)
            alias_method(EXCB.irb_original_method_name(to), to)
          end
          alias_method to, from
        }
      else
        print "irb: warn: can't alias #{to} from #{from}.\n"
      end
    end

    def self.irb_original_method_name(method_name) # :nodoc:
      "irb_" + method_name + "_org"
    end

    # Installs alias methods for the default irb commands on the given object
    # using #install_alias_method.
    def self.extend_object(obj)
      unless (class << obj; ancestors; end).include?(EXCB)
        super
        for ali, com, flg in @ALIASES
          obj.install_alias_method(ali, com, flg)
        end
      end
    end

    install_extend_commands
  end

  # Extends methods for the Context module
  module ContextExtender
    CE = ContextExtender # :nodoc:

    @EXTEND_COMMANDS = [
      [:eval_history=, "irb/ext/history.rb"],
      [:use_tracer=, "irb/ext/tracer.rb"],
      [:math_mode=, "irb/ext/math-mode.rb"],
      [:use_loader=, "irb/ext/use-loader.rb"],
      [:save_history=, "irb/ext/save-history.rb"],
    ]

    # Installs the default context extensions as irb commands:
    #
    # Context#eval_history=::   +irb/ext/history.rb+
    # Context#use_tracer=::     +irb/ext/tracer.rb+
    # Context#math_mode=::      +irb/ext/math-mode.rb+
    # Context#use_loader=::     +irb/ext/use-loader.rb+
    # Context#save_history=::   +irb/ext/save-history.rb+
    def self.install_extend_commands
      for args in @EXTEND_COMMANDS
        def_extend_command(*args)
      end
    end

    # Evaluate the given +command+ from the given +load_file+ on the Context
    # module.
    #
    # Will also define any given +aliases+ for the method.
    def self.def_extend_command(cmd_name, load_file, *aliases)
      line = __LINE__; Context.module_eval %[
        def #{cmd_name}(*opts, &b)
          Context.module_eval {remove_method(:#{cmd_name})}
          require "#{load_file}"
          send :#{cmd_name}, *opts, &b
        end
        for ali in aliases
          alias_method ali, cmd_name
        end
      ], __FILE__, line
    end

    CE.install_extend_commands
  end

  # A convenience module for extending Ruby methods.
  module MethodExtender
    # Extends the given +base_method+ with a prefix call to the given
    # +extend_method+.
    def def_pre_proc(base_method, extend_method)
      base_method = base_method.to_s
      extend_method = extend_method.to_s

      alias_name = new_alias_name(base_method)
      module_eval %[
        alias_method alias_name, base_method
        def #{base_method}(*opts)
          send :#{extend_method}, *opts
          send :#{alias_name}, *opts
        end
      ]
    end

    # Extends the given +base_method+ with a postfix call to the given
    # +extend_method+.
    def def_post_proc(base_method, extend_method)
      base_method = base_method.to_s
      extend_method = extend_method.to_s

      alias_name = new_alias_name(base_method)
      module_eval %[
        alias_method alias_name, base_method
        def #{base_method}(*opts)
          send :#{alias_name}, *opts
          send :#{extend_method}, *opts
        end
      ]
    end

    # Returns a unique method name to use as an alias for the given +name+.
    #
    # Usually returns <code>#{prefix}#{name}#{postfix}<num></code>, example:
    #
    #     new_alias_name('foo') #=> __alias_of__foo__
    #     def bar; end
    #     new_alias_name('bar') #=> __alias_of__bar__2
    def new_alias_name(name, prefix = "__alias_of__", postfix = "__")
      base_name = "#{prefix}#{name}#{postfix}"
      all_methods = instance_methods(true) + private_instance_methods(true)
      same_methods = all_methods.grep(/^#{Regexp.quote(base_name)}[0-9]*$/)
      return base_name if same_methods.empty?
      no = same_methods.size
      while !same_methods.include?(alias_name = base_name + no)
        no += 1
      end
      alias_name
    end
  end
end

lib64/ruby/2.2.0/irb/locale.rb000064400000011135150402106000011431 0ustar00#
#   irb/locale.rb - internationalization module
#   	$Release Version: 0.9.6$
#   	$Revision: 47266 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
module IRB # :nodoc:
  class Locale

    LOCALE_NAME_RE = %r[
      (?<language>[[:alpha:]]{2,3})
      (?:_  (?<territory>[[:alpha:]]{2,3}) )?
      (?:\. (?<codeset>[^@]+) )?
      (?:@  (?<modifier>.*) )?
    ]x
    LOCALE_DIR = "/lc/"

    @@legacy_encoding_alias_map = {}.freeze

    def initialize(locale = nil)
      @lang = @territory = @encoding_name = @modifier = nil
      @locale = locale || ENV["IRB_LANG"] || ENV["LC_MESSAGES"] || ENV["LC_ALL"] || ENV["LANG"] || "C"
      if m = LOCALE_NAME_RE.match(@locale)
        @lang, @territory, @encoding_name, @modifier = m[:language], m[:territory], m[:codeset], m[:modifier]

        if @encoding_name
          begin load 'irb/encoding_aliases.rb'; rescue LoadError; end
          if @encoding = @@legacy_encoding_alias_map[@encoding_name]
            warn "%s is obsolete. use %s" % ["#{@lang}_#{@territory}.#{@encoding_name}", "#{@lang}_#{@territory}.#{@encoding.name}"]
          end
          @encoding = Encoding.find(@encoding_name) rescue nil
        end
      end
      @encoding ||= (Encoding.find('locale') rescue Encoding::ASCII_8BIT)
    end

    attr_reader :lang, :territory, :encoding, :modifier

    def String(mes)
      mes = super(mes)
      if @encoding
        mes.encode(@encoding, undef: :replace)
      else
        mes
      end
    end

    def format(*opts)
      String(super(*opts))
    end

    def gets(*rs)
      String(super(*rs))
    end

    def readline(*rs)
      String(super(*rs))
    end

    def print(*opts)
      ary = opts.collect{|opt| String(opt)}
      super(*ary)
    end

    def printf(*opts)
      s = format(*opts)
      print s
    end

    def puts(*opts)
      ary = opts.collect{|opt| String(opt)}
      super(*ary)
    end

    def require(file, priv = nil)
      rex = Regexp.new("lc/#{Regexp.quote(file)}\.(so|o|sl|rb)?")
      return false if $".find{|f| f =~ rex}

      case file
      when /\.rb$/
        begin
          load(file, priv)
          $".push file
          return true
        rescue LoadError
        end
      when /\.(so|o|sl)$/
        return super
      end

      begin
        load(f = file + ".rb")
        $".push f  #"
        return true
      rescue LoadError
        return ruby_require(file)
      end
    end

    alias toplevel_load load

    def load(file, priv=nil)
      found = find(file)
      if found
        return real_load(found, priv)
      else
        raise LoadError, "No such file to load -- #{file}"
      end
    end

    def find(file , paths = $:)
      dir = File.dirname(file)
      dir = "" if dir == "."
      base = File.basename(file)

      if dir.start_with?('/')
        return each_localized_path(dir, base).find{|full_path| File.readable? full_path}
      else
        return search_file(paths, dir, base)
      end
    end

    private
    def real_load(path, priv)
      src = MagicFile.open(path){|f| f.read}
      if priv
        eval("self", TOPLEVEL_BINDING).extend(Module.new {eval(src, nil, path)})
      else
        eval(src, TOPLEVEL_BINDING, path)
      end
    end

    # @param paths load paths in which IRB find a localized file.
    # @param dir directory
    # @param file basename to be localized
    #
    # typically, for the parameters and a <path> in paths, it searches
    #   <path>/<dir>/<locale>/<file>
    def search_file(lib_paths, dir, file)
      each_localized_path(dir, file) do |lc_path|
        lib_paths.each do |libpath|
          full_path = File.join(libpath, lc_path)
          return full_path if File.readable?(full_path)
        end
        redo if defined?(Gem) and Gem.try_activate(lc_path)
      end
      nil
    end

    def each_localized_path(dir, file)
      return enum_for(:each_localized_path) unless block_given?
      each_sublocale do |lc|
        yield lc.nil? ? File.join(dir, LOCALE_DIR, file) : File.join(dir, LOCALE_DIR, lc, file)
      end
    end

    def each_sublocale
      if @lang
        if @territory
          if @encoding_name
            yield "#{@lang}_#{@territory}.#{@encoding_name}@#{@modifier}" if @modifier
            yield "#{@lang}_#{@territory}.#{@encoding_name}"
          end
          yield "#{@lang}_#{@territory}@#{@modifier}" if @modifier
          yield "#{@lang}_#{@territory}"
        end
        if @encoding_name
          yield "#{@lang}.#{@encoding_name}@#{@modifier}" if @modifier
          yield "#{@lang}.#{@encoding_name}"
        end
        yield "#{@lang}@#{@modifier}" if @modifier
        yield "#{@lang}"
      end
      yield nil
    end
  end
end
lib64/ruby/2.2.0/irb/xmp.rb000064400000007762150402106010011012 0ustar00#
#   xmp.rb - irb version of gotoken xmp
#   	$Release Version: 0.9$
#   	$Revision: 47266 $
#   	by Keiju ISHITSUKA(Nippon Rational Inc.)
#
# --
#
#
#

require "irb"
require "irb/frame"

# An example printer for irb.
#
# It's much like the standard library PrettyPrint, that shows the value of each
# expression as it runs.
#
# In order to use this library, you must first require it:
#
#     require 'irb/xmp'
#
# Now, you can take advantage of the Object#xmp convenience method.
#
#     xmp <<END
#       foo = "bar"
#       baz = 42
#     END
#     #=> foo = "bar"
#       #==>"bar"
#     #=> baz = 42
#       #==>42
#
# You can also create an XMP object, with an optional binding to print
# expressions in the given binding:
#
#     ctx = binding
#     x = XMP.new ctx
#     x.puts
#     #=> today = "a good day"
#       #==>"a good day"
#     ctx.eval 'today # is what?'
#     #=> "a good day"
class XMP

  # Creates a new XMP object.
  #
  # The top-level binding or, optional +bind+ parameter will be used when
  # creating the workspace. See WorkSpace.new for more information.
  #
  # This uses the +:XMP+ prompt mode, see IRB@Customizing+the+IRB+Prompt for
  # full detail.
  def initialize(bind = nil)
    IRB.init_config(nil)

    IRB.conf[:PROMPT_MODE] = :XMP

    bind = IRB::Frame.top(1) unless bind
    ws = IRB::WorkSpace.new(bind)
    @io = StringInputMethod.new
    @irb = IRB::Irb.new(ws, @io)
    @irb.context.ignore_sigint = false

    IRB.conf[:MAIN_CONTEXT] = @irb.context
  end

  # Evaluates the given +exps+, for example:
  #
  #   require 'irb/xmp'
  #   x = XMP.new
  #
  #   x.puts '{:a => 1, :b => 2, :c => 3}'
  #   #=> {:a => 1, :b => 2, :c => 3}
  #     # ==>{:a=>1, :b=>2, :c=>3}
  #   x.puts 'foo = "bar"'
  #   # => foo = "bar"
  #     # ==>"bar"
  def puts(exps)
    @io.puts exps

    if @irb.context.ignore_sigint
      begin
        trap_proc_b = trap("SIGINT"){@irb.signal_handle}
        catch(:IRB_EXIT) do
          @irb.eval_input
        end
      ensure
        trap("SIGINT", trap_proc_b)
      end
    else
      catch(:IRB_EXIT) do
        @irb.eval_input
      end
    end
  end

  # A custom InputMethod class used by XMP for evaluating string io.
  class StringInputMethod < IRB::InputMethod
    # Creates a new StringInputMethod object
    def initialize
      super
      @exps = []
    end

    # Whether there are any expressions left in this printer.
    def eof?
      @exps.empty?
    end

    # Reads the next expression from this printer.
    #
    # See IO#gets for more information.
    def gets
      while l = @exps.shift
        next if /^\s+$/ =~ l
        l.concat "\n"
        print @prompt, l
        break
      end
      l
    end

    # Concatenates all expressions in this printer, separated by newlines.
    #
    # An Encoding::CompatibilityError is raised of the given +exps+'s encoding
    # doesn't match the previous expression evaluated.
    def puts(exps)
      if @encoding and exps.encoding != @encoding
        enc = Encoding.compatible?(@exps.join("\n"), exps)
        if enc.nil?
          raise Encoding::CompatibilityError, "Encoding in which the passed expression is encoded is not compatible to the preceding's one"
        else
          @encoding = enc
        end
      else
        @encoding = exps.encoding
      end
      @exps.concat exps.split(/\n/)
    end

    # Returns the encoding of last expression printed by #puts.
    attr_reader :encoding
  end
end

# A convenience method that's only available when the you require the IRB::XMP standard library.
#
# Creates a new XMP object, using the given expressions as the +exps+
# parameter, and optional binding as +bind+ or uses the top-level binding. Then
# evaluates the given expressions using the +:XMP+ prompt mode.
#
# For example:
#
#   require 'irb/xmp'
#   ctx = binding
#   xmp 'foo = "bar"', ctx
#   #=> foo = "bar"
#     #==>"bar"
#   ctx.eval 'foo'
#   #=> "bar"
#
# See XMP.new for more information.
def xmp(exps, bind = nil)
  bind = IRB::Frame.top(1) unless bind
  xmp = XMP.new(bind)
  xmp.puts exps
  xmp
end
lib64/ruby/2.2.0/irb/help.rb000064400000001242150402106010011121 0ustar00#
#   irb/help.rb - print usage module
#   	$Release Version: 0.9.6$
#   	$Revision: 47112 $
#   	by Keiju ISHITSUKA(keiju@ishitsuka.com)
#
# --
#
#
#

require 'irb/magic-file'

module IRB
  # Outputs the irb help message, see IRB@Command+line+options.
  def IRB.print_usage
    lc = IRB.conf[:LC_MESSAGES]
    path = lc.find("irb/help-message")
    space_line = false
    IRB::MagicFile.open(path){|f|
      f.each_line do |l|
        if /^\s*$/ =~ l
          lc.puts l unless space_line
          space_line = true
          next
        end
        space_line = false

        l.sub!(/#.*$/, "")
        next if /^\s*$/ =~ l
        lc.puts l
      end
    }
  end
end

lib64/ruby/2.2.0/irb/lc/error.rb000064400000001700150402106010011717 0ustar00#
#   irb/lc/error.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 38600 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
require "e2mmap"

# :stopdoc:
module IRB

  # exceptions
  extend Exception2MessageMapper
  def_exception :UnrecognizedSwitch, "Unrecognized switch: %s"
  def_exception :NotImplementedError, "Need to define `%s'"
  def_exception :CantReturnToNormalMode, "Can't return to normal mode."
  def_exception :IllegalParameter, "Invalid parameter(%s)."
  def_exception :IrbAlreadyDead, "Irb is already dead."
  def_exception :IrbSwitchedToCurrentThread, "Switched to current thread."
  def_exception :NoSuchJob, "No such job(%s)."
  def_exception :CantShiftToMultiIrbMode, "Can't shift to multi irb mode."
  def_exception :CantChangeBinding, "Can't change binding to (%s)."
  def_exception :UndefinedPromptMode, "Undefined prompt mode(%s)."
  def_exception :IllegalRCGenerator, 'Define illegal RC_NAME_GENERATOR.'

end
# :startdoc:
lib64/ruby/2.2.0/irb/lc/ja/error.rb000064400000002271150402106010012315 0ustar00# -*- coding: utf-8 -*-
#   irb/lc/ja/error.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 38600 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
require "e2mmap"

# :stopdoc:
module IRB
  # exceptions
  extend Exception2MessageMapper
  def_exception :UnrecognizedSwitch, 'スイッチ(%s)が分りません'
  def_exception :NotImplementedError, '`%s\'の定義が必要です'
  def_exception :CantReturnToNormalMode, 'Normalモードに戻れません.'
  def_exception :IllegalParameter, 'パラメータ(%s)が間違っています.'
  def_exception :IrbAlreadyDead, 'Irbは既に死んでいます.'
  def_exception :IrbSwitchedToCurrentThread, 'カレントスレッドに切り替わりました.'
  def_exception :NoSuchJob, 'そのようなジョブ(%s)はありません.'
  def_exception :CantShiftToMultiIrbMode, 'multi-irb modeに移れません.'
  def_exception :CantChangeBinding, 'バインディング(%s)に変更できません.'
  def_exception :UndefinedPromptMode, 'プロンプトモード(%s)は定義されていません.'
  def_exception :IllegalRCNameGenerator, 'RC_NAME_GENERATORが正しく定義されていません.'
end
# :startdoc:
# vim:fileencoding=utf-8
lib64/ruby/2.2.0/irb/lc/ja/encoding_aliases.rb000064400000000260150402106010014447 0ustar00# :stopdoc:
module IRB
  class Locale
    @@legacy_encoding_alias_map = {
      'ujis' => Encoding::EUC_JP,
      'euc' => Encoding::EUC_JP
    }.freeze
  end
end
# :startdoc:
lib64/ruby/2.2.0/irb/lc/ja/help-message000064400000004730150402106010013136 0ustar00# -*- coding: utf-8 -*-
#   irb/lc/ja/help-message.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 41071 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
Usage:  irb.rb [options] [programfile] [arguments]
  -f		    ~/.irbrc を読み込まない.
  -m		    bcモード(分数, 行列の計算ができる)
  -d                $DEBUG をtrueにする(ruby -d と同じ)
  -r load-module    ruby -r と同じ.
  -I path           $LOAD_PATH に path を追加する.
  -U                ruby -U と同じ.
  -E enc            ruby -E と同じ.
  -w                ruby -w と同じ.
  -W[level=2]       ruby -W と同じ.
  --context-mode n  新しいワークスペースを作成した時に関連する Binding
		    オブジェクトの作成方法を 0 から 3 のいずれかに設定する.
  --echo	    実行結果を表示する(デフォルト).
  --noecho	    実行結果を表示しない.
  --inspect	    結果出力にinspectを用いる(bcモード以外はデフォルト).
  --noinspect	    結果出力にinspectを用いない.
  --readline	    readlineライブラリを利用する.
  --noreadline	    readlineライブラリを利用しない.
  --prompt prompt-mode/--prompt-mode prompt-mode
		    プロンプトモードを切替えます. 現在定義されているプ
		    ロンプトモードは, default, simple, xmp, inf-rubyが
		    用意されています.
  --inf-ruby-mode   emacsのinf-ruby-mode用のプロンプト表示を行なう. 特
		    に指定がない限り, readlineライブラリは使わなくなる.
  --sample-book-mode/--simple-prompt
		    非常にシンプルなプロンプトを用いるモードです.
  --noprompt	    プロンプト表示を行なわない.
  --single-irb	    irb 中で self を実行して得られるオブジェクトをサ
		    ブ irb と共有する.
  --tracer	    コマンド実行時にトレースを行なう.
  --back-trace-limit n
		    バックトレース表示をバックトレースの頭から n, 後ろ
		    からnだけ行なう. デフォルトは16

  --irb_debug n	    irbのデバッグレベルをnに設定する(非推奨).

  --verbose	    詳細なメッセージを出力する.
  --noverbose	    詳細なメッセージを出力しない(デフォルト).
  -v, --version	    irbのバージョンを表示する.
  -h, --help	    irb のヘルプを表示する.
  --		    以降のコマンドライン引数をオプションとして扱わない.

# vim:fileencoding=utf-8
lib64/ruby/2.2.0/irb/lc/help-message000064400000003613150402106010012543 0ustar00# -*- coding: utf-8 -*-
#
#   irb/lc/help-message.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 41028 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
Usage:  irb.rb [options] [programfile] [arguments]
  -f		    Suppress read of ~/.irbrc
  -m		    Bc mode (load mathn, fraction or matrix are available)
  -d                Set $DEBUG to true (same as `ruby -d')
  -r load-module    Same as `ruby -r'
  -I path           Specify $LOAD_PATH directory
  -U                Same as `ruby -U`
  -E enc            Same as `ruby -E`
  -w                Same as `ruby -w`
  -W[level=2]       Same as `ruby -W`
  --context-mode n  Set n[0-3] to method to create Binding Object,
                    when new workspace was created
  --echo            Show result(default)
  --noecho          Don't show result
  --inspect	    Use `inspect' for output (default except for bc mode)
  --noinspect	    Don't use inspect for output
  --readline        Use Readline extension module
  --noreadline	    Don't use Readline extension module
  --prompt prompt-mode/--prompt-mode prompt-mode
		    Switch prompt mode. Pre-defined prompt modes are
		    `default', `simple', `xmp' and `inf-ruby'
  --inf-ruby-mode   Use prompt appropriate for inf-ruby-mode on emacs.
		    Suppresses --readline.
  --sample-book-mode/--simple-prompt
                    Simple prompt mode
  --noprompt        No prompt mode
  --single-irb      Share self with sub-irb.
  --tracer          Display trace for each execution of commands.
  --back-trace-limit n
		    Display backtrace top n and tail n. The default
		    value is 16.
  --irb_debug n	    Set internal debug level to n (not for popular use)
  --verbose         Show details
  --noverbose       Don't show details
  -v, --version	    Print the version of irb
  -h, --help        Print help
  --                Separate options of irb from the list of command-line args

# vim:fileencoding=utf-8
lib64/ruby/2.2.0/irb/input-method.rb000064400000011152150402106010012607 0ustar00#
#   irb/input-method.rb - input methods used irb
#   	$Release Version: 0.9.6$
#   	$Revision: 47266 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
require 'irb/src_encoding'
require 'irb/magic-file'

module IRB
  STDIN_FILE_NAME = "(line)" # :nodoc:
  class InputMethod

    # Creates a new input method object
    def initialize(file = STDIN_FILE_NAME)
      @file_name = file
    end
    # The file name of this input method, usually given during initialization.
    attr_reader :file_name

    # The irb prompt associated with this input method
    attr_accessor :prompt

    # Reads the next line from this input method.
    #
    # See IO#gets for more information.
    def gets
      IRB.fail NotImplementedError, "gets"
    end
    public :gets

    # Whether this input method is still readable when there is no more data to
    # read.
    #
    # See IO#eof for more information.
    def readable_after_eof?
      false
    end
  end

  class StdioInputMethod < InputMethod
    # Creates a new input method object
    def initialize
      super
      @line_no = 0
      @line = []
      @stdin = IO.open(STDIN.to_i, :external_encoding => IRB.conf[:LC_MESSAGES].encoding, :internal_encoding => "-")
      @stdout = IO.open(STDOUT.to_i, 'w', :external_encoding => IRB.conf[:LC_MESSAGES].encoding, :internal_encoding => "-")
    end

    # Reads the next line from this input method.
    #
    # See IO#gets for more information.
    def gets
      print @prompt
      line = @stdin.gets
      @line[@line_no += 1] = line
    end

    # Whether the end of this input method has been reached, returns +true+ if
    # there is no more data to read.
    #
    # See IO#eof? for more information.
    def eof?
      @stdin.eof?
    end

    # Whether this input method is still readable when there is no more data to
    # read.
    #
    # See IO#eof for more information.
    def readable_after_eof?
      true
    end

    # Returns the current line number for #io.
    #
    # #line counts the number of times #gets is called.
    #
    # See IO#lineno for more information.
    def line(line_no)
      @line[line_no]
    end

    # The external encoding for standard input.
    def encoding
      @stdin.external_encoding
    end
  end

  # Use a File for IO with irb, see InputMethod
  class FileInputMethod < InputMethod
    # Creates a new input method object
    def initialize(file)
      super
      @io = IRB::MagicFile.open(file)
    end
    # The file name of this input method, usually given during initialization.
    attr_reader :file_name

    # Whether the end of this input method has been reached, returns +true+ if
    # there is no more data to read.
    #
    # See IO#eof? for more information.
    def eof?
      @io.eof?
    end

    # Reads the next line from this input method.
    #
    # See IO#gets for more information.
    def gets
      print @prompt
      l = @io.gets
      l
    end

    # The external encoding for standard input.
    def encoding
      @io.external_encoding
    end
  end

  begin
    require "readline"
    class ReadlineInputMethod < InputMethod
      include Readline
      # Creates a new input method object using Readline
      def initialize
        super

        @line_no = 0
        @line = []
        @eof = false

        @stdin = IO.open(STDIN.to_i, :external_encoding => IRB.conf[:LC_MESSAGES].encoding, :internal_encoding => "-")
        @stdout = IO.open(STDOUT.to_i, 'w', :external_encoding => IRB.conf[:LC_MESSAGES].encoding, :internal_encoding => "-")
      end

      # Reads the next line from this input method.
      #
      # See IO#gets for more information.
      def gets
        Readline.input = @stdin
        Readline.output = @stdout
        if l = readline(@prompt, false)
          HISTORY.push(l) if !l.empty?
          @line[@line_no += 1] = l + "\n"
        else
          @eof = true
          l
        end
      end

      # Whether the end of this input method has been reached, returns +true+
      # if there is no more data to read.
      #
      # See IO#eof? for more information.
      def eof?
        @eof
      end

      # Whether this input method is still readable when there is no more data to
      # read.
      #
      # See IO#eof for more information.
      def readable_after_eof?
        true
      end

      # Returns the current line number for #io.
      #
      # #line counts the number of times #gets is called.
      #
      # See IO#lineno for more information.
      def line(line_no)
        @line[line_no]
      end

      # The external encoding for standard input.
      def encoding
        @stdin.external_encoding
      end
    end
  rescue LoadError
  end
end
lib64/ruby/2.2.0/irb/magic-file.rb000064400000001575150402106010012177 0ustar00module IRB
  class << (MagicFile = Object.new)
    # see parser_magic_comment in parse.y
    ENCODING_SPEC_RE = %r"coding\s*[=:]\s*([[:alnum:]\-_]+)"

    def open(path)
      io = File.open(path, 'rb')
      line = io.gets
      line = io.gets if line[0,2] == "#!"
      encoding = detect_encoding(line)
      internal_encoding = encoding
      encoding ||= default_src_encoding
      io.rewind
      io.set_encoding(encoding, internal_encoding)

      if block_given?
        begin
          return (yield io)
        ensure
          io.close
        end
      else
        return io
      end
    end

    private
    def detect_encoding(line)
      return unless line[0] == ?#
      line = line[1..-1]
      line = $1 if line[/-\*-\s*(.*?)\s*-*-$/]
      return nil unless ENCODING_SPEC_RE =~ line
      encoding = $1
      return encoding.sub(/-(?:mac|dos|unix)/i, '')
    end
  end
end
lib64/ruby/2.2.0/irb/slex.rb000064400000015465150402106010011160 0ustar00#
#   irb/slex.rb - simple lex analyzer
#   	$Release Version: 0.9.6$
#   	$Revision: 47266 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "e2mmap"
require "irb/notifier"

# :stopdoc:
module IRB
  class SLex

    extend Exception2MessageMapper
    def_exception :ErrNodeNothing, "node nothing"
    def_exception :ErrNodeAlreadyExists, "node already exists"

    DOUT = Notifier::def_notifier("SLex::")
    D_WARN = DOUT::def_notifier(1, "Warn: ")
    D_DEBUG = DOUT::def_notifier(2, "Debug: ")
    D_DETAIL = DOUT::def_notifier(4, "Detail: ")

    DOUT.level = Notifier::D_NOMSG

    def initialize
      @head = Node.new("")
    end

    def def_rule(token, preproc = nil, postproc = nil, &block)
      D_DETAIL.pp token

      postproc = block if block_given?
      create(token, preproc, postproc)
    end

    def def_rules(*tokens, &block)
      if block_given?
        p = block
      end
      for token in tokens
        def_rule(token, nil, p)
      end
    end

    def preproc(token, proc)
      node = search(token)
      node.preproc=proc
    end

    #$BMW%A%'%C%/(B?
    def postproc(token)
      node = search(token, proc)
      node.postproc=proc
    end

    def search(token)
      @head.search(token.split(//))
    end

    def create(token, preproc = nil, postproc = nil)
      @head.create_subnode(token.split(//), preproc, postproc)
    end

    def match(token)
      case token
      when Array
      when String
        return match(token.split(//))
      else
        return @head.match_io(token)
      end
      ret = @head.match(token)
      D_DETAIL.exec_if{D_DETAIL.printf "match end: %s:%s\n", ret, token.inspect}
      ret
    end

    def inspect
      format("<SLex: @head = %s>", @head.inspect)
    end

    #----------------------------------------------------------------------
    #
    #   class Node -
    #
    #----------------------------------------------------------------------
    class Node
      # if postproc is nil, this node is an abstract node.
      # if postproc is non-nil, this node is a real node.
      def initialize(preproc = nil, postproc = nil)
        @Tree = {}
        @preproc = preproc
        @postproc = postproc
      end

      attr_accessor :preproc
      attr_accessor :postproc

      def search(chrs, opt = nil)
        return self if chrs.empty?
        ch = chrs.shift
        if node = @Tree[ch]
          node.search(chrs, opt)
        else
          if opt
            chrs.unshift ch
            self.create_subnode(chrs)
          else
            SLex.fail ErrNodeNothing
          end
        end
      end

      def create_subnode(chrs, preproc = nil, postproc = nil)
        if chrs.empty?
          if @postproc
            D_DETAIL.pp node
            SLex.fail ErrNodeAlreadyExists
          else
            D_DEBUG.puts "change abstract node to real node."
            @preproc = preproc
            @postproc = postproc
          end
          return self
        end

        ch = chrs.shift
        if node = @Tree[ch]
          if chrs.empty?
            if node.postproc
              DebugLogger.pp node
              DebugLogger.pp self
              DebugLogger.pp ch
              DebugLogger.pp chrs
              SLex.fail ErrNodeAlreadyExists
            else
              D_WARN.puts "change abstract node to real node"
              node.preproc = preproc
              node.postproc = postproc
            end
          else
            node.create_subnode(chrs, preproc, postproc)
          end
        else
          if chrs.empty?
            node = Node.new(preproc, postproc)
          else
            node = Node.new
            node.create_subnode(chrs, preproc, postproc)
          end
          @Tree[ch] = node
        end
        node
      end

      #
      # chrs: String
      #       character array
      #       io must have getc()/ungetc(); and ungetc() must be
      #       able to be called arbitrary number of times.
      #
      def match(chrs, op = "")
        D_DETAIL.print "match>: ", chrs, "op:", op, "\n"
        if chrs.empty?
          if @preproc.nil? || @preproc.call(op, chrs)
            DOUT.printf(D_DETAIL, "op1: %s\n", op)
            @postproc.call(op, chrs)
          else
            nil
          end
        else
          ch = chrs.shift
          if node = @Tree[ch]
            if ret = node.match(chrs, op+ch)
              return ret
            else
              chrs.unshift ch
              if @postproc and @preproc.nil? || @preproc.call(op, chrs)
                DOUT.printf(D_DETAIL, "op2: %s\n", op.inspect)
                ret = @postproc.call(op, chrs)
                return ret
              else
                return nil
              end
            end
          else
            chrs.unshift ch
            if @postproc and @preproc.nil? || @preproc.call(op, chrs)
              DOUT.printf(D_DETAIL, "op3: %s\n", op)
              @postproc.call(op, chrs)
              return ""
            else
              return nil
            end
          end
        end
      end

      def match_io(io, op = "")
        if op == ""
          ch = io.getc
          if ch == nil
            return nil
          end
        else
          ch = io.getc_of_rests
        end
        if ch.nil?
          if @preproc.nil? || @preproc.call(op, io)
            D_DETAIL.printf("op1: %s\n", op)
            @postproc.call(op, io)
          else
            nil
          end
        else
          if node = @Tree[ch]
            if ret = node.match_io(io, op+ch)
              ret
            else
              io.ungetc ch
              if @postproc and @preproc.nil? || @preproc.call(op, io)
                DOUT.exec_if{D_DETAIL.printf "op2: %s\n", op.inspect}
                @postproc.call(op, io)
              else
                nil
              end
            end
          else
            io.ungetc ch
            if @postproc and @preproc.nil? || @preproc.call(op, io)
              D_DETAIL.printf("op3: %s\n", op)
              @postproc.call(op, io)
            else
              nil
            end
          end
        end
      end
    end
  end
end
# :startdoc:

if $0 == __FILE__
  case $1
  when "1"
    tr = SLex.new
    print "0: ", tr.inspect, "\n"
    tr.def_rule("=") {print "=\n"}
    print "1: ", tr.inspect, "\n"
    tr.def_rule("==") {print "==\n"}
    print "2: ", tr.inspect, "\n"

    print "case 1:\n"
    print tr.match("="), "\n"
    print "case 2:\n"
    print tr.match("=="), "\n"
    print "case 3:\n"
    print tr.match("=>"), "\n"

  when "2"
    tr = SLex.new
    print "0: ", tr.inspect, "\n"
    tr.def_rule("=") {print "=\n"}
    print "1: ", tr.inspect, "\n"
    tr.def_rule("==", proc{false}) {print "==\n"}
    print "2: ", tr.inspect, "\n"

    print "case 1:\n"
    print tr.match("="), "\n"
    print "case 2:\n"
    print tr.match("=="), "\n"
    print "case 3:\n"
    print tr.match("=>"), "\n"
  end
  exit
end
lib64/ruby/2.2.0/irb/completion.rb000064400000014722150402106010012351 0ustar00#
#   irb/completor.rb -
#   	$Release Version: 0.9$
#   	$Revision: 47266 $
#   	by Keiju ISHITSUKA(keiju@ishitsuka.com)
#       From Original Idea of shugo@ruby-lang.org
#

require "readline"

module IRB
  module InputCompletor # :nodoc:


    # Set of reserved words used by Ruby, you should not use these for
    # constants or variables
    ReservedWords = %w[
      BEGIN END
      alias and
      begin break
      case class
      def defined do
      else elsif end ensure
      false for
      if in
      module
      next nil not
      or
      redo rescue retry return
      self super
      then true
      undef unless until
      when while
      yield
    ]

    CompletionProc = proc { |input|
      bind = IRB.conf[:MAIN_CONTEXT].workspace.binding

      case input
      when /^((["'`]).*\2)\.([^.]*)$/
        # String
        receiver = $1
        message = Regexp.quote($3)

        candidates = String.instance_methods.collect{|m| m.to_s}
        select_message(receiver, message, candidates)

      when /^(\/[^\/]*\/)\.([^.]*)$/
        # Regexp
        receiver = $1
        message = Regexp.quote($2)

        candidates = Regexp.instance_methods.collect{|m| m.to_s}
        select_message(receiver, message, candidates)

      when /^([^\]]*\])\.([^.]*)$/
        # Array
        receiver = $1
        message = Regexp.quote($2)

        candidates = Array.instance_methods.collect{|m| m.to_s}
        select_message(receiver, message, candidates)

      when /^([^\}]*\})\.([^.]*)$/
        # Proc or Hash
        receiver = $1
        message = Regexp.quote($2)

        candidates = Proc.instance_methods.collect{|m| m.to_s}
        candidates |= Hash.instance_methods.collect{|m| m.to_s}
        select_message(receiver, message, candidates)

      when /^(:[^:.]*)$/
        # Symbol
        if Symbol.respond_to?(:all_symbols)
          sym = $1
          candidates = Symbol.all_symbols.collect{|s| ":" + s.id2name}
          candidates.grep(/^#{Regexp.quote(sym)}/)
        else
          []
        end

      when /^::([A-Z][^:\.\(]*)$/
        # Absolute Constant or class methods
        receiver = $1
        candidates = Object.constants.collect{|m| m.to_s}
        candidates.grep(/^#{receiver}/).collect{|e| "::" + e}

      when /^([A-Z].*)::([^:.]*)$/
        # Constant or class methods
        receiver = $1
        message = Regexp.quote($2)
        begin
          candidates = eval("#{receiver}.constants.collect{|m| m.to_s}", bind)
          candidates |= eval("#{receiver}.methods.collect{|m| m.to_s}", bind)
        rescue Exception
          candidates = []
        end
        select_message(receiver, message, candidates, "::")

      when /^(:[^:.]+)(\.|::)([^.]*)$/
        # Symbol
        receiver = $1
        sep = $2
        message = Regexp.quote($3)

        candidates = Symbol.instance_methods.collect{|m| m.to_s}
        select_message(receiver, message, candidates, sep)

      when /^(-?(0[dbo])?[0-9_]+(\.[0-9_]+)?([eE]-?[0-9]+)?)(\.|::)([^.]*)$/
        # Numeric
        receiver = $1
        sep = $5
        message = Regexp.quote($6)

        begin
          candidates = eval(receiver, bind).methods.collect{|m| m.to_s}
        rescue Exception
          candidates = []
        end
        select_message(receiver, message, candidates, sep)

      when /^(-?0x[0-9a-fA-F_]+)(\.|::)([^.]*)$/
        # Numeric(0xFFFF)
        receiver = $1
        sep = $2
        message = Regexp.quote($3)

        begin
          candidates = eval(receiver, bind).methods.collect{|m| m.to_s}
        rescue Exception
          candidates = []
        end
        select_message(receiver, message, candidates, sep)

      when /^(\$[^.]*)$/
        # global var
        regmessage = Regexp.new(Regexp.quote($1))
        candidates = global_variables.collect{|m| m.to_s}.grep(regmessage)

      when /^([^."].*)(\.|::)([^.]*)$/
        # variable.func or func.func
        receiver = $1
        sep = $2
        message = Regexp.quote($3)

        gv = eval("global_variables", bind).collect{|m| m.to_s}
        lv = eval("local_variables", bind).collect{|m| m.to_s}
        iv = eval("instance_variables", bind).collect{|m| m.to_s}
        cv = eval("self.class.constants", bind).collect{|m| m.to_s}

        if (gv | lv | iv | cv).include?(receiver) or /^[A-Z]/ =~ receiver && /\./ !~ receiver
          # foo.func and foo is var. OR
          # foo::func and foo is var. OR
          # foo::Const and foo is var. OR
          # Foo::Bar.func
          begin
            candidates = []
            rec = eval(receiver, bind)
            if sep == "::" and rec.kind_of?(Module)
              candidates = rec.constants.collect{|m| m.to_s}
            end
            candidates |= rec.methods.collect{|m| m.to_s}
          rescue Exception
            candidates = []
          end
        else
          # func1.func2
          candidates = []
          ObjectSpace.each_object(Module){|m|
            begin
              name = m.name
            rescue Exception
              name = ""
            end
            begin
              next if name != "IRB::Context" and
                /^(IRB|SLex|RubyLex|RubyToken)/ =~ name
            rescue Exception
              next
            end
            candidates.concat m.instance_methods(false).collect{|x| x.to_s}
          }
          candidates.sort!
          candidates.uniq!
        end
        select_message(receiver, message, candidates, sep)

      when /^\.([^.]*)$/
        # unknown(maybe String)

        receiver = ""
        message = Regexp.quote($1)

        candidates = String.instance_methods(true).collect{|m| m.to_s}
        select_message(receiver, message, candidates)

      else
        candidates = eval("methods | private_methods | local_variables | instance_variables | self.class.constants", bind).collect{|m| m.to_s}

        (candidates|ReservedWords).grep(/^#{Regexp.quote(input)}/)
      end
    }

    # Set of available operators in Ruby
    Operators = %w[% & * ** + - / < << <= <=> == === =~ > >= >> [] []= ^ ! != !~]

    def self.select_message(receiver, message, candidates, sep = ".")
      candidates.grep(/^#{message}/).collect do |e|
        case e
        when /^[a-zA-Z_]/
          receiver + sep + e
        when /^[0-9]/
        when *Operators
          #receiver + " " + e
        end
      end
    end
  end
end

if Readline.respond_to?("basic_word_break_characters=")
  Readline.basic_word_break_characters= " \t\n`><=;|&{("
end
Readline.completion_append_character = nil
Readline.completion_proc = IRB::InputCompletor::CompletionProc
lib64/ruby/2.2.0/irb/notifier.rb000064400000016227150402106010012021 0ustar00#
#   notifier.rb - output methods used by irb
#   	$Release Version: 0.9.6$
#   	$Revision: 47112 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "e2mmap"
require "irb/output-method"

module IRB
  # An output formatter used internally by the lexer.
  module Notifier
    extend Exception2MessageMapper
    def_exception :ErrUndefinedNotifier,
      "undefined notifier level: %d is specified"
    def_exception :ErrUnrecognizedLevel,
      "unrecognized notifier level: %s is specified"

    # Define a new Notifier output source, returning a new CompositeNotifier
    # with the given +prefix+ and +output_method+.
    #
    # The optional +prefix+ will be appended to all objects being inspected
    # during output, using the given +output_method+ as the output source. If
    # no +output_method+ is given, StdioOutputMethod will be used, and all
    # expressions will be sent directly to STDOUT without any additional
    # formatting.
    def def_notifier(prefix = "", output_method = StdioOutputMethod.new)
      CompositeNotifier.new(prefix, output_method)
    end
    module_function :def_notifier

    # An abstract class, or superclass, for CompositeNotifier and
    # LeveledNotifier to inherit. It provides several wrapper methods for the
    # OutputMethod object used by the Notifier.
    class AbstractNotifier
      # Creates a new Notifier object
      def initialize(prefix, base_notifier)
        @prefix = prefix
        @base_notifier = base_notifier
      end

      # The +prefix+ for this Notifier, which is appended to all objects being
      # inspected during output.
      attr_reader :prefix

      # A wrapper method used to determine whether notifications are enabled.
      #
      # Defaults to +true+.
      def notify?
        true
      end

      # See OutputMethod#print for more detail.
      def print(*opts)
        @base_notifier.print prefix, *opts if notify?
      end

      # See OutputMethod#printn for more detail.
      def printn(*opts)
        @base_notifier.printn prefix, *opts if notify?
      end

      # See OutputMethod#printf for more detail.
      def printf(format, *opts)
        @base_notifier.printf(prefix + format, *opts) if notify?
      end

      # See OutputMethod#puts for more detail.
      def puts(*objs)
        if notify?
          @base_notifier.puts(*objs.collect{|obj| prefix + obj.to_s})
        end
      end

      # Same as #ppx, except it uses the #prefix given during object
      # initialization.
      # See OutputMethod#ppx for more detail.
      def pp(*objs)
        if notify?
          @base_notifier.ppx @prefix, *objs
        end
      end

      # Same as #pp, except it concatenates the given +prefix+ with the #prefix
      # given during object initialization.
      #
      # See OutputMethod#ppx for more detail.
      def ppx(prefix, *objs)
        if notify?
          @base_notifier.ppx @prefix+prefix, *objs
        end
      end

      # Execute the given block if notifications are enabled.
      def exec_if
        yield(@base_notifier) if notify?
      end
    end

    # A class that can be used to create a group of notifier objects with the
    # intent of representing a leveled notification system for irb.
    #
    # This class will allow you to generate other notifiers, and assign them
    # the appropriate level for output.
    #
    # The Notifier class provides a class-method Notifier.def_notifier to
    # create a new composite notifier. Using the first composite notifier
    # object you create, sibling notifiers can be initialized with
    # #def_notifier.
    class CompositeNotifier<AbstractNotifier
      # Create a new composite notifier object with the given +prefix+, and
      # +base_notifier+ to use for output.
      def initialize(prefix, base_notifier)
        super

        @notifiers = [D_NOMSG]
        @level_notifier = D_NOMSG
      end

      # List of notifiers in the group
      attr_reader :notifiers

      # Creates a new LeveledNotifier in the composite #notifiers group.
      #
      # The given +prefix+ will be assigned to the notifier, and +level+ will
      # be used as the index of the #notifiers Array.
      #
      # This method returns the newly created instance.
      def def_notifier(level, prefix = "")
        notifier = LeveledNotifier.new(self, level, prefix)
        @notifiers[level] = notifier
        notifier
      end

      # Returns the leveled notifier for this object
      attr_reader :level_notifier
      alias level level_notifier

      # Sets the leveled notifier for this object.
      #
      # When the given +value+ is an instance of AbstractNotifier,
      # #level_notifier is set to the given object.
      #
      # When an Integer is given, #level_notifier is set to the notifier at the
      # index +value+ in the #notifiers Array.
      #
      # If no notifier exists at the index +value+ in the #notifiers Array, an
      # ErrUndefinedNotifier exception is raised.
      #
      # An ErrUnrecognizedLevel exception is raised if the given +value+ is not
      # found in the existing #notifiers Array, or an instance of
      # AbstractNotifier
      def level_notifier=(value)
        case value
        when AbstractNotifier
          @level_notifier = value
        when Integer
          l = @notifiers[value]
          Notifier.Raise ErrUndefinedNotifier, value unless l
          @level_notifier = l
        else
          Notifier.Raise ErrUnrecognizedLevel, value unless l
        end
      end

      alias level= level_notifier=
    end

    # A leveled notifier is comparable to the composite group from
    # CompositeNotifier#notifiers.
    class LeveledNotifier<AbstractNotifier
      include Comparable

      # Create a new leveled notifier with the given +base+, and +prefix+ to
      # send to AbstractNotifier.new
      #
      # The given +level+ is used to compare other leveled notifiers in the
      # CompositeNotifier group to determine whether or not to output
      # notifications.
      def initialize(base, level, prefix)
        super(prefix, base)

        @level = level
      end

      # The current level of this notifier object
      attr_reader :level

      # Compares the level of this notifier object with the given +other+
      # notifier.
      #
      # See the Comparable module for more information.
      def <=>(other)
        @level <=> other.level
      end

      # Whether to output messages to the output method, depending on the level
      # of this notifier object.
      def notify?
        @base_notifier.level >= self
      end
    end

    # NoMsgNotifier is a LeveledNotifier that's used as the default notifier
    # when creating a new CompositeNotifier.
    #
    # This notifier is used as the +zero+ index, or level +0+, for
    # CompositeNotifier#notifiers, and will not output messages of any sort.
    class NoMsgNotifier<LeveledNotifier
      # Creates a new notifier that should not be used to output messages.
      def initialize
        @base_notifier = nil
        @level = 0
        @prefix = ""
      end

      # Ensures notifications are ignored, see AbstractNotifier#notify? for
      # more information.
      def notify?
        false
      end
    end

    D_NOMSG = NoMsgNotifier.new # :nodoc:
  end
end
lib64/ruby/2.2.0/irb/workspace.rb000064400000006361150402106010012176 0ustar00#
#   irb/workspace-binding.rb -
#   	$Release Version: 0.9.6$
#   	$Revision: 47112 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
module IRB # :nodoc:
  class WorkSpace
    # Creates a new workspace.
    #
    # set self to main if specified, otherwise
    # inherit main from TOPLEVEL_BINDING.
    def initialize(*main)
      if main[0].kind_of?(Binding)
        @binding = main.shift
      elsif IRB.conf[:SINGLE_IRB]
        @binding = TOPLEVEL_BINDING
      else
        case IRB.conf[:CONTEXT_MODE]
        when 0	# binding in proc on TOPLEVEL_BINDING
          @binding = eval("proc{binding}.call",
                          TOPLEVEL_BINDING,
                          __FILE__,
                          __LINE__)
        when 1	# binding in loaded file
          require "tempfile"
          f = Tempfile.open("irb-binding")
          f.print <<EOF
      $binding = binding
EOF
          f.close
          load f.path
          @binding = $binding

        when 2	# binding in loaded file(thread use)
          unless defined? BINDING_QUEUE
            require "thread"

            IRB.const_set(:BINDING_QUEUE, SizedQueue.new(1))
            Thread.abort_on_exception = true
            Thread.start do
              eval "require \"irb/ws-for-case-2\"", TOPLEVEL_BINDING, __FILE__, __LINE__
            end
            Thread.pass
          end
          @binding = BINDING_QUEUE.pop

        when 3	# binding in function on TOPLEVEL_BINDING(default)
          @binding = eval("def irb_binding; private; binding; end; irb_binding",
                          TOPLEVEL_BINDING,
                          __FILE__,
                          __LINE__ - 3)
        end
      end
      if main.empty?
        @main = eval("self", @binding)
      else
        @main = main[0]
        IRB.conf[:__MAIN__] = @main
        case @main
        when Module
          @binding = eval("IRB.conf[:__MAIN__].module_eval('binding', __FILE__, __LINE__)", @binding, __FILE__, __LINE__)
        else
          begin
            @binding = eval("IRB.conf[:__MAIN__].instance_eval('binding', __FILE__, __LINE__)", @binding, __FILE__, __LINE__)
          rescue TypeError
            IRB.fail CantChangeBinding, @main.inspect
          end
        end
      end
      eval("_=nil", @binding)
    end

    # The Binding of this workspace
    attr_reader :binding
    # The top-level workspace of this context, also available as
    # <code>IRB.conf[:__MAIN__]</code>
    attr_reader :main

    # Evaluate the given +statements+ within the  context of this workspace.
    def evaluate(context, statements, file = __FILE__, line = __LINE__)
      eval(statements, @binding, file, line)
    end

    # error message manipulator
    def filter_backtrace(bt)
      case IRB.conf[:CONTEXT_MODE]
      when 0
        return nil if bt =~ /\(irb_local_binding\)/
      when 1
        if(bt =~ %r!/tmp/irb-binding! or
            bt =~ %r!irb/.*\.rb! or
            bt =~ /irb\.rb/)
          return nil
        end
      when 2
        return nil if bt =~ /irb\/.*\.rb/
        return nil if bt =~ /irb\.rb/
      when 3
        return nil if bt =~ /irb\/.*\.rb/
        return nil if bt =~ /irb\.rb/
        bt = bt.sub(/:\s*in `irb_binding'/, '')
      end
      bt
    end

    def IRB.delete_caller
    end
  end
end
lib64/ruby/2.2.0/irb/ruby-lex.rb000064400000057770150402106010011761 0ustar00#
#   irb/ruby-lex.rb - ruby lexcal analyzer
#   	$Release Version: 0.9.6$
#   	$Revision: 58086 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "e2mmap"
require "irb/slex"
require "irb/ruby-token"

# :stopdoc:
class RubyLex

  extend Exception2MessageMapper
  def_exception(:AlreadyDefinedToken, "Already defined token(%s)")
  def_exception(:TkReading2TokenNoKey, "key nothing(key='%s')")
  def_exception(:TkSymbol2TokenNoKey, "key nothing(key='%s')")
  def_exception(:TkReading2TokenDuplicateError,
                "key duplicate(token_n='%s', key='%s')")
  def_exception(:SyntaxError, "%s")

  def_exception(:TerminateLineInput, "Terminate Line Input")

  include RubyToken

  class << self
    attr_accessor :debug_level
    def debug?
      @debug_level > 0
    end
  end
  @debug_level = 0

  def initialize
    lex_init
    set_input(STDIN)

    @seek = 0
    @exp_line_no = @line_no = 1
    @base_char_no = 0
    @char_no = 0
    @rests = []
    @readed = []
    @here_readed = []

    @indent = 0
    @indent_stack = []
    @lex_state = EXPR_BEG
    @space_seen = false
    @here_header = false
    @post_symbeg = false

    @continue = false
    @line = ""

    @skip_space = false
    @readed_auto_clean_up = false
    @exception_on_syntax_error = true

    @prompt = nil
  end

  attr_accessor :skip_space
  attr_accessor :readed_auto_clean_up
  attr_accessor :exception_on_syntax_error

  attr_reader :seek
  attr_reader :char_no
  attr_reader :line_no
  attr_reader :indent

  # io functions
  def set_input(io, p = nil, &block)
    @io = io
    if p.respond_to?(:call)
      @input = p
    elsif block_given?
      @input = block
    else
      @input = Proc.new{@io.gets}
    end
  end

  def get_readed
    if idx = @readed.rindex("\n")
      @base_char_no = @readed.size - (idx + 1)
    else
      @base_char_no += @readed.size
    end

    readed = @readed.join("")
    @readed = []
    readed
  end

  def getc
    while @rests.empty?
      @rests.push nil unless buf_input
    end
    c = @rests.shift
    if @here_header
      @here_readed.push c
    else
      @readed.push c
    end
    @seek += 1
    if c == "\n"
      @line_no += 1
      @char_no = 0
    else
      @char_no += 1
    end
    c
  end

  def gets
    l = ""
    while c = getc
      l.concat(c)
      break if c == "\n"
    end
    return nil if l == "" and c.nil?
    l
  end

  def eof?
    @io.eof?
  end

  def getc_of_rests
    if @rests.empty?
      nil
    else
      getc
    end
  end

  def ungetc(c = nil)
    if @here_readed.empty?
      c2 = @readed.pop
    else
      c2 = @here_readed.pop
    end
    c = c2 unless c
    @rests.unshift c #c =
    @seek -= 1
    if c == "\n"
      @line_no -= 1
      if idx = @readed.rindex("\n")
        @char_no = idx + 1
      else
        @char_no = @base_char_no + @readed.size
      end
    else
      @char_no -= 1
    end
  end

  def peek_equal?(str)
    chrs = str.split(//)
    until @rests.size >= chrs.size
      return false unless buf_input
    end
    @rests[0, chrs.size] == chrs
  end

  def peek_match?(regexp)
    while @rests.empty?
      return false unless buf_input
    end
    regexp =~ @rests.join("")
  end

  def peek(i = 0)
    while @rests.size <= i
      return nil unless buf_input
    end
    @rests[i]
  end

  def buf_input
    prompt
    line = @input.call
    return nil unless line
    @rests.concat line.chars.to_a
    true
  end
  private :buf_input

  def set_prompt(p = nil, &block)
    p = block if block_given?
    if p.respond_to?(:call)
      @prompt = p
    else
      @prompt = Proc.new{print p}
    end
  end

  def prompt
    if @prompt
      @prompt.call(@ltype, @indent, @continue, @line_no)
    end
  end

  def initialize_input
    @ltype = nil
    @quoted = nil
    @indent = 0
    @indent_stack = []
    @lex_state = EXPR_BEG
    @space_seen = false
    @here_header = false

    @continue = false
    @post_symbeg = false

    prompt

    @line = ""
    @exp_line_no = @line_no
  end

  def each_top_level_statement
    initialize_input
    catch(:TERM_INPUT) do
      loop do
        begin
          @continue = false
          prompt
          unless l = lex
            throw :TERM_INPUT if @line == ''
          else
            @line.concat l
            if @ltype or @continue or @indent > 0
              next
            end
          end
          if @line != "\n"
            @line.force_encoding(@io.encoding)
            yield @line, @exp_line_no
          end
          break unless l
          @line = ''
          @exp_line_no = @line_no

          @indent = 0
          @indent_stack = []
          prompt
        rescue TerminateLineInput
          initialize_input
          prompt
          get_readed
        end
      end
    end
  end

  def lex
    until (((tk = token).kind_of?(TkNL) || tk.kind_of?(TkEND_OF_SCRIPT)) &&
        !@continue or
        tk.nil?)
    end
    line = get_readed
    if line == "" and tk.kind_of?(TkEND_OF_SCRIPT) || tk.nil?
      nil
    else
      line
    end
  end

  def token
    @prev_seek = @seek
    @prev_line_no = @line_no
    @prev_char_no = @char_no
    begin
      begin
        tk = @OP.match(self)
        @space_seen = tk.kind_of?(TkSPACE)
        @lex_state = EXPR_END if @post_symbeg && tk.kind_of?(TkOp)
        @post_symbeg = tk.kind_of?(TkSYMBEG)
      rescue SyntaxError
        raise if @exception_on_syntax_error
        tk = TkError.new(@seek, @line_no, @char_no)
      end
    end while @skip_space and tk.kind_of?(TkSPACE)
    if @readed_auto_clean_up
      get_readed
    end
    tk
  end

  ENINDENT_CLAUSE = [
    "case", "class", "def", "do", "for", "if",
    "module", "unless", "until", "while", "begin"
  ]
  DEINDENT_CLAUSE = ["end"
  ]

  PERCENT_LTYPE = {
    "q" => "\'",
    "Q" => "\"",
    "x" => "\`",
    "r" => "/",
    "w" => "]",
    "W" => "]",
    "i" => "]",
    "I" => "]",
    "s" => ":"
  }

  PERCENT_PAREN = {
    "{" => "}",
    "[" => "]",
    "<" => ">",
    "(" => ")"
  }

  Ltype2Token = {
    "\'" => TkSTRING,
    "\"" => TkSTRING,
    "\`" => TkXSTRING,
    "/" => TkREGEXP,
    "]" => TkDSTRING,
    ":" => TkSYMBOL
  }
  DLtype2Token = {
    "\"" => TkDSTRING,
    "\`" => TkDXSTRING,
    "/" => TkDREGEXP,
  }

  def lex_init()
    @OP = IRB::SLex.new
    @OP.def_rules("\0", "\004", "\032") do |op, io|
      Token(TkEND_OF_SCRIPT)
    end

    @OP.def_rules(" ", "\t", "\f", "\r", "\13") do |op, io|
      @space_seen = true
      while getc =~ /[ \t\f\r\13]/; end
      ungetc
      Token(TkSPACE)
    end

    @OP.def_rule("#") do |op, io|
      identify_comment
    end

    @OP.def_rule("=begin",
                 proc{|op, io| @prev_char_no == 0 && peek(0) =~ /\s/}) do
      |op, io|
      @ltype = "="
      until getc == "\n"; end
      until peek_equal?("=end") && peek(4) =~ /\s/
        until getc == "\n"; end
      end
      gets
      @ltype = nil
      Token(TkRD_COMMENT)
    end

    @OP.def_rule("\n") do |op, io|
      print "\\n\n" if RubyLex.debug?
      case @lex_state
      when EXPR_BEG, EXPR_FNAME, EXPR_DOT
        @continue = true
      else
        @continue = false
        @lex_state = EXPR_BEG
        until (@indent_stack.empty? ||
            [TkLPAREN, TkLBRACK, TkLBRACE,
             TkfLPAREN, TkfLBRACK, TkfLBRACE].include?(@indent_stack.last))
          @indent_stack.pop
        end
      end
      @here_header = false
      @here_readed = []
      Token(TkNL)
    end

    @OP.def_rules("*", "**",
                  "=", "==", "===",
                  "=~", "<=>",
                  "<", "<=",
                  ">", ">=", ">>",
                  "!", "!=", "!~") do
      |op, io|
      case @lex_state
      when EXPR_FNAME, EXPR_DOT
        @lex_state = EXPR_ARG
      else
        @lex_state = EXPR_BEG
      end
      Token(op)
    end

    @OP.def_rules("<<") do
      |op, io|
      tk = nil
      if @lex_state != EXPR_END && @lex_state != EXPR_CLASS &&
          (@lex_state != EXPR_ARG || @space_seen)
        c = peek(0)
        if /\S/ =~ c && (/["'`]/ =~ c || /\w/ =~ c || c == "-")
          tk = identify_here_document
        end
      end
      unless tk
        tk = Token(op)
        case @lex_state
        when EXPR_FNAME, EXPR_DOT
          @lex_state = EXPR_ARG
        else
          @lex_state = EXPR_BEG
        end
      end
      tk
    end

    @OP.def_rules("'", '"') do
      |op, io|
      identify_string(op)
    end

    @OP.def_rules("`") do
      |op, io|
      if @lex_state == EXPR_FNAME
        @lex_state = EXPR_END
        Token(op)
      else
        identify_string(op)
      end
    end

    @OP.def_rules('?') do
      |op, io|
      if @lex_state == EXPR_END
        @lex_state = EXPR_BEG
        Token(TkQUESTION)
      else
        ch = getc
        if @lex_state == EXPR_ARG && ch =~ /\s/
          ungetc
          @lex_state = EXPR_BEG;
          Token(TkQUESTION)
        else
          if (ch == '\\')
            read_escape
          end
          @lex_state = EXPR_END
          Token(TkINTEGER)
        end
      end
    end

    @OP.def_rules("&", "&&", "|", "||") do
      |op, io|
      @lex_state = EXPR_BEG
      Token(op)
    end

    @OP.def_rules("+=", "-=", "*=", "**=",
                  "&=", "|=", "^=", "<<=", ">>=", "||=", "&&=") do
      |op, io|
      @lex_state = EXPR_BEG
      op =~ /^(.*)=$/
      Token(TkOPASGN, $1)
    end

    @OP.def_rule("+@", proc{|op, io| @lex_state == EXPR_FNAME}) do
      |op, io|
      @lex_state = EXPR_ARG
      Token(op)
    end

    @OP.def_rule("-@", proc{|op, io| @lex_state == EXPR_FNAME}) do
      |op, io|
      @lex_state = EXPR_ARG
      Token(op)
    end

    @OP.def_rules("+", "-") do
      |op, io|
      catch(:RET) do
        if @lex_state == EXPR_ARG
          if @space_seen and peek(0) =~ /[0-9]/
            throw :RET, identify_number
          else
            @lex_state = EXPR_BEG
          end
        elsif @lex_state != EXPR_END and peek(0) =~ /[0-9]/
          throw :RET, identify_number
        else
          @lex_state = EXPR_BEG
        end
        Token(op)
      end
    end

    @OP.def_rule(".") do
      |op, io|
      @lex_state = EXPR_BEG
      if peek(0) =~ /[0-9]/
        ungetc
        identify_number
      else
        # for "obj.if" etc.
        @lex_state = EXPR_DOT
        Token(TkDOT)
      end
    end

    @OP.def_rules("..", "...") do
      |op, io|
      @lex_state = EXPR_BEG
      Token(op)
    end

    lex_int2
  end

  def lex_int2
    @OP.def_rules("]", "}", ")") do
      |op, io|
      @lex_state = EXPR_END
      @indent -= 1
      @indent_stack.pop
      Token(op)
    end

    @OP.def_rule(":") do
      |op, io|
      if @lex_state == EXPR_END || peek(0) =~ /\s/
        @lex_state = EXPR_BEG
        Token(TkCOLON)
      else
        @lex_state = EXPR_FNAME
        Token(TkSYMBEG)
      end
    end

    @OP.def_rule("::") do
       |op, io|
      if @lex_state == EXPR_BEG or @lex_state == EXPR_ARG && @space_seen
        @lex_state = EXPR_BEG
        Token(TkCOLON3)
      else
        @lex_state = EXPR_DOT
        Token(TkCOLON2)
      end
    end

    @OP.def_rule("/") do
      |op, io|
      if @lex_state == EXPR_BEG || @lex_state == EXPR_MID
        identify_string(op)
      elsif peek(0) == '='
        getc
        @lex_state = EXPR_BEG
        Token(TkOPASGN, "/") #/)
      elsif @lex_state == EXPR_ARG and @space_seen and peek(0) !~ /\s/
        identify_string(op)
      else
        @lex_state = EXPR_BEG
        Token("/") #/)
      end
    end

    @OP.def_rules("^") do
      |op, io|
      @lex_state = EXPR_BEG
      Token("^")
    end

    @OP.def_rules(",") do
      |op, io|
      @lex_state = EXPR_BEG
      Token(op)
    end

    @OP.def_rules(";") do
      |op, io|
      @lex_state = EXPR_BEG
      until (@indent_stack.empty? ||
          [TkLPAREN, TkLBRACK, TkLBRACE,
           TkfLPAREN, TkfLBRACK, TkfLBRACE].include?(@indent_stack.last))
        @indent_stack.pop
      end
      Token(op)
    end

    @OP.def_rule("~") do
      |op, io|
      @lex_state = EXPR_BEG
      Token("~")
    end

    @OP.def_rule("~@", proc{|op, io| @lex_state == EXPR_FNAME}) do
      |op, io|
      @lex_state = EXPR_BEG
      Token("~")
    end

    @OP.def_rule("(") do
      |op, io|
      @indent += 1
      if @lex_state == EXPR_BEG || @lex_state == EXPR_MID
        @lex_state = EXPR_BEG
        tk_c = TkfLPAREN
      else
        @lex_state = EXPR_BEG
        tk_c = TkLPAREN
      end
      @indent_stack.push tk_c
      Token(tk_c)
    end

    @OP.def_rule("[]", proc{|op, io| @lex_state == EXPR_FNAME}) do
      |op, io|
      @lex_state = EXPR_ARG
      Token("[]")
    end

    @OP.def_rule("[]=", proc{|op, io| @lex_state == EXPR_FNAME}) do
      |op, io|
      @lex_state = EXPR_ARG
      Token("[]=")
    end

    @OP.def_rule("[") do
      |op, io|
      @indent += 1
      if @lex_state == EXPR_FNAME
        tk_c = TkfLBRACK
      else
        if @lex_state == EXPR_BEG || @lex_state == EXPR_MID
          tk_c = TkLBRACK
        elsif @lex_state == EXPR_ARG && @space_seen
          tk_c = TkLBRACK
        else
          tk_c = TkfLBRACK
        end
        @lex_state = EXPR_BEG
      end
      @indent_stack.push tk_c
      Token(tk_c)
    end

    @OP.def_rule("{") do
      |op, io|
      @indent += 1
      if @lex_state != EXPR_END && @lex_state != EXPR_ARG
        tk_c = TkLBRACE
      else
        tk_c = TkfLBRACE
      end
      @lex_state = EXPR_BEG
      @indent_stack.push tk_c
      Token(tk_c)
    end

    @OP.def_rule('\\') do
      |op, io|
      if getc == "\n"
        @space_seen = true
        @continue = true
        Token(TkSPACE)
      else
        read_escape
        Token("\\")
      end
    end

    @OP.def_rule('%') do
      |op, io|
      if @lex_state == EXPR_BEG || @lex_state == EXPR_MID
        identify_quotation
      elsif peek(0) == '='
        getc
        Token(TkOPASGN, :%)
      elsif @lex_state == EXPR_ARG and @space_seen and peek(0) !~ /\s/
        identify_quotation
      else
        @lex_state = EXPR_BEG
        Token("%") #))
      end
    end

    @OP.def_rule('$') do
      |op, io|
      identify_gvar
    end

    @OP.def_rule('@') do
      |op, io|
      if peek(0) =~ /[\w@]/
        ungetc
        identify_identifier
      else
        Token("@")
      end
    end

    @OP.def_rule("") do
      |op, io|
      printf "MATCH: start %s: %s\n", op, io.inspect if RubyLex.debug?
      if peek(0) =~ /[0-9]/
        t = identify_number
      elsif peek(0) =~ /[^\x00-\/:-@\[-^`{-\x7F]/
        t = identify_identifier
      end
      printf "MATCH: end %s: %s\n", op, io.inspect if RubyLex.debug?
      t
    end

    p @OP if RubyLex.debug?
  end

  def identify_gvar
    @lex_state = EXPR_END

    case ch = getc
    when /[~_*$?!@\/\\;,=:<>".]/   #"
      Token(TkGVAR, "$" + ch)
    when "-"
      Token(TkGVAR, "$-" + getc)
    when "&", "`", "'", "+"
      Token(TkBACK_REF, "$"+ch)
    when /[1-9]/
      while getc =~ /[0-9]/; end
      ungetc
      Token(TkNTH_REF)
    when /\w/
      ungetc
      ungetc
      identify_identifier
    else
      ungetc
      Token("$")
    end
  end

  def identify_identifier
    token = ""
    if peek(0) =~ /[$@]/
      token.concat(c = getc)
      if c == "@" and peek(0) == "@"
        token.concat getc
      end
    end

    while (ch = getc) =~ /[^\x00-\/:-@\[-^`{-\x7F]/
      print ":", ch, ":" if RubyLex.debug?
      token.concat ch
    end
    ungetc

    if (ch == "!" || ch == "?") && token[0,1] =~ /\w/ && peek(0) != "="
      token.concat getc
    end

    # almost fix token

    case token
    when /^\$/
      return Token(TkGVAR, token)
    when /^\@\@/
      @lex_state = EXPR_END
      # p Token(TkCVAR, token)
      return Token(TkCVAR, token)
    when /^\@/
      @lex_state = EXPR_END
      return Token(TkIVAR, token)
    end

    if @lex_state != EXPR_DOT
      print token, "\n" if RubyLex.debug?

      token_c, *trans = TkReading2Token[token]
      if token_c
        # reserved word?

        if (@lex_state != EXPR_BEG &&
            @lex_state != EXPR_FNAME &&
            trans[1])
          # modifiers
          token_c = TkSymbol2Token[trans[1]]
          @lex_state = trans[0]
        else
          if @lex_state != EXPR_FNAME and peek(0) != ':'
            if ENINDENT_CLAUSE.include?(token)
              # check for ``class = val'' etc.
              valid = true
              case token
              when "class"
                valid = false unless peek_match?(/^\s*(<<|\w|::)/)
              when "def"
                valid = false if peek_match?(/^\s*(([+\-\/*&\|^]|<<|>>|\|\||\&\&)=|\&\&|\|\|)/)
              when "do"
                valid = false if peek_match?(/^\s*([+\-\/*]?=|\*|<|>|\&)/)
              when *ENINDENT_CLAUSE
                valid = false if peek_match?(/^\s*([+\-\/*]?=|\*|<|>|\&|\|)/)
              else
                # no nothing
              end
              if valid
                if token == "do"
                  if ![TkFOR, TkWHILE, TkUNTIL].include?(@indent_stack.last)
                    @indent += 1
                    @indent_stack.push token_c
                  end
                else
                  @indent += 1
                  @indent_stack.push token_c
                end
              end

            elsif DEINDENT_CLAUSE.include?(token)
              @indent -= 1
              @indent_stack.pop
            end
            @lex_state = trans[0]
          else
            @lex_state = EXPR_END
          end
        end
        return Token(token_c, token)
      end
    end

    if @lex_state == EXPR_FNAME
      @lex_state = EXPR_END
      if peek(0) == '='
        token.concat getc
      end
    elsif @lex_state == EXPR_BEG || @lex_state == EXPR_DOT
      @lex_state = EXPR_ARG
    else
      @lex_state = EXPR_END
    end

    if token[0, 1] =~ /[A-Z]/
      return Token(TkCONSTANT, token)
    elsif token[token.size - 1, 1] =~ /[!?]/
      return Token(TkFID, token)
    else
      return Token(TkIDENTIFIER, token)
    end
  end

  def identify_here_document
    ch = getc
    if ch == "-"
      ch = getc
      indent = true
    end
    if /['"`]/ =~ ch
      lt = ch
      quoted = ""
      while (c = getc) && c != lt
        quoted.concat c
      end
    else
      lt = '"'
      quoted = ch.dup
      while (c = getc) && c =~ /\w/
        quoted.concat c
      end
      ungetc
    end

    ltback, @ltype = @ltype, lt
    reserve = []
    while ch = getc
      reserve.push ch
      if ch == "\\"
        reserve.push ch = getc
      elsif ch == "\n"
        break
      end
    end

    @here_header = false

    line = ""
    while ch = getc
      if ch == "\n"
        if line == quoted
          break
        end
        line = ""
      else
        line.concat ch unless indent && line == "" && /\s/ =~ ch
        if @ltype != "'" && ch == "#" && peek(0) == "{"
          identify_string_dvar
        end
      end
    end

    @here_header = true
    @here_readed.concat reserve
    while ch = reserve.pop
      ungetc ch
    end

    @ltype = ltback
    @lex_state = EXPR_END
    Token(Ltype2Token[lt])
  end

  def identify_quotation
    ch = getc
    if lt = PERCENT_LTYPE[ch]
      ch = getc
    elsif ch =~ /\W/
      lt = "\""
    else
      RubyLex.fail SyntaxError, "unknown type of %string"
    end
    @quoted = ch unless @quoted = PERCENT_PAREN[ch]
    identify_string(lt, @quoted)
  end

  def identify_number
    @lex_state = EXPR_END

    if peek(0) == "0" && peek(1) !~ /[.eE]/
      getc
      case peek(0)
      when /[xX]/
        ch = getc
        match = /[0-9a-fA-F_]/
      when /[bB]/
        ch = getc
        match = /[01_]/
      when /[oO]/
        ch = getc
        match = /[0-7_]/
      when /[dD]/
        ch = getc
        match = /[0-9_]/
      when /[0-7]/
        match = /[0-7_]/
      when /[89]/
        RubyLex.fail SyntaxError, "Invalid octal digit"
      else
        return Token(TkINTEGER)
      end

      len0 = true
      non_digit = false
      while ch = getc
        if match =~ ch
          if ch == "_"
            if non_digit
              RubyLex.fail SyntaxError, "trailing `#{ch}' in number"
            else
              non_digit = ch
            end
          else
            non_digit = false
            len0 = false
          end
        else
          ungetc
          if len0
            RubyLex.fail SyntaxError, "numeric literal without digits"
          end
          if non_digit
            RubyLex.fail SyntaxError, "trailing `#{non_digit}' in number"
          end
          break
        end
      end
      return Token(TkINTEGER)
    end

    type = TkINTEGER
    allow_point = true
    allow_e = true
    non_digit = false
    while ch = getc
      case ch
      when /[0-9]/
        non_digit = false
      when "_"
        non_digit = ch
      when allow_point && "."
        if non_digit
          RubyLex.fail SyntaxError, "trailing `#{non_digit}' in number"
        end
        type = TkFLOAT
        if peek(0) !~ /[0-9]/
          type = TkINTEGER
          ungetc
          break
        end
        allow_point = false
      when allow_e && "e", allow_e && "E"
        if non_digit
          RubyLex.fail SyntaxError, "trailing `#{non_digit}' in number"
        end
        type = TkFLOAT
        if peek(0) =~ /[+-]/
          getc
        end
        allow_e = false
        allow_point = false
        non_digit = ch
      else
        if non_digit
          RubyLex.fail SyntaxError, "trailing `#{non_digit}' in number"
        end
        ungetc
        break
      end
    end
    Token(type)
  end

  def identify_string(ltype, quoted = ltype)
    @ltype = ltype
    @quoted = quoted
    subtype = nil
    begin
      nest = 0
      while ch = getc
        if @quoted == ch and nest == 0
          break
        elsif @ltype != "'" && ch == "#" && peek(0) == "{"
          identify_string_dvar
        elsif @ltype != "'" && @ltype != "]" && @ltype != ":" and ch == "#"
          subtype = true
        elsif ch == '\\' and @ltype == "'" #'
          case ch = getc
          when "\\", "\n", "'"
          else
            ungetc
          end
        elsif ch == '\\' #'
          read_escape
        end
        if PERCENT_PAREN.values.include?(@quoted)
          if PERCENT_PAREN[ch] == @quoted
            nest += 1
          elsif ch == @quoted
            nest -= 1
          end
        end
      end
      if @ltype == "/"
        while /[imxoesun]/ =~ peek(0)
          getc
        end
      end
      if subtype
        Token(DLtype2Token[ltype])
      else
        Token(Ltype2Token[ltype])
      end
    ensure
      @ltype = nil
      @quoted = nil
      @lex_state = EXPR_END
    end
  end

  def identify_string_dvar
    begin
      getc

      reserve_continue = @continue
      reserve_ltype = @ltype
      reserve_indent = @indent
      reserve_indent_stack = @indent_stack
      reserve_state = @lex_state
      reserve_quoted = @quoted

      @ltype = nil
      @quoted = nil
      @indent = 0
      @indent_stack = []
      @lex_state = EXPR_BEG

      loop do
        @continue = false
        prompt
        tk = token
        if @ltype or @continue or @indent >= 0
          next
        end
        break if tk.kind_of?(TkRBRACE)
      end
    ensure
      @continue = reserve_continue
      @ltype = reserve_ltype
      @indent = reserve_indent
      @indent_stack = reserve_indent_stack
      @lex_state = reserve_state
      @quoted = reserve_quoted
    end
  end

  def identify_comment
    @ltype = "#"

    while ch = getc
      if ch == "\n"
        @ltype = nil
        ungetc
        break
      end
    end
    return Token(TkCOMMENT)
  end

  def read_escape
    case ch = getc
    when "\n", "\r", "\f"
    when "\\", "n", "t", "r", "f", "v", "a", "e", "b", "s" #"
    when /[0-7]/
      ungetc ch
      3.times do
        case ch = getc
        when /[0-7]/
        when nil
          break
        else
          ungetc
          break
        end
      end

    when "x"
      2.times do
        case ch = getc
        when /[0-9a-fA-F]/
        when nil
          break
        else
          ungetc
          break
        end
      end

    when "M"
      if (ch = getc) != '-'
        ungetc
      else
        if (ch = getc) == "\\" #"
          read_escape
        end
      end

    when "C", "c" #, "^"
      if ch == "C" and (ch = getc) != "-"
        ungetc
      elsif (ch = getc) == "\\" #"
        read_escape
      end
    else
      # other characters
    end
  end
end
# :startdoc:
lib64/ruby/2.2.0/profile.rb000064400000000315150402106010011055 0ustar00require 'profiler'

RubyVM::InstructionSequence.compile_option = {
  :trace_instruction => true,
  :specialized_instruction => false
}
END {
  Profiler__::print_profile(STDERR)
}
Profiler__::start_profile
lib64/ruby/2.2.0/fiddle/value.rb000064400000005134150402106010011764 0ustar00require 'fiddle'

module Fiddle
  module ValueUtil #:nodoc: all
    def unsigned_value(val, ty)
      case ty.abs
      when TYPE_CHAR
        [val].pack("c").unpack("C")[0]
      when TYPE_SHORT
        [val].pack("s!").unpack("S!")[0]
      when TYPE_INT
        [val].pack("i!").unpack("I!")[0]
      when TYPE_LONG
        [val].pack("l!").unpack("L!")[0]
      when TYPE_LONG_LONG
        [val].pack("q").unpack("Q")[0]
      else
        val
      end
    end

    def signed_value(val, ty)
      case ty.abs
      when TYPE_CHAR
        [val].pack("C").unpack("c")[0]
      when TYPE_SHORT
        [val].pack("S!").unpack("s!")[0]
      when TYPE_INT
        [val].pack("I!").unpack("i!")[0]
      when TYPE_LONG
        [val].pack("L!").unpack("l!")[0]
      when TYPE_LONG_LONG
        [val].pack("Q").unpack("q")[0]
      else
        val
      end
    end

    def wrap_args(args, tys, funcs, &block)
      result = []
      tys ||= []
      args.each_with_index{|arg, idx|
        result.push(wrap_arg(arg, tys[idx], funcs, &block))
      }
      result
    end

    def wrap_arg(arg, ty, funcs = [], &block)
      funcs ||= []
      case arg
      when nil
        return 0
      when Pointer
        return arg.to_i
      when IO
        case ty
        when TYPE_VOIDP
          return Pointer[arg].to_i
        else
          return arg.to_i
        end
      when Function
        if( block )
          arg.bind_at_call(&block)
          funcs.push(arg)
        elsif !arg.bound?
          raise(RuntimeError, "block must be given.")
        end
        return arg.to_i
      when String
        if( ty.is_a?(Array) )
          return arg.unpack('C*')
        else
          case SIZEOF_VOIDP
          when SIZEOF_LONG
            return [arg].pack("p").unpack("l!")[0]
          when SIZEOF_LONG_LONG
            return [arg].pack("p").unpack("q")[0]
          else
            raise(RuntimeError, "sizeof(void*)?")
          end
        end
      when Float, Integer
        return arg
      when Array
        if( ty.is_a?(Array) ) # used only by struct
          case ty[0]
          when TYPE_VOIDP
            return arg.collect{|v| Integer(v)}
          when TYPE_CHAR
            if( arg.is_a?(String) )
              return val.unpack('C*')
            end
          end
          return arg
        else
          return arg
        end
      else
        if( arg.respond_to?(:to_ptr) )
          return arg.to_ptr.to_i
        else
          begin
            return Integer(arg)
          rescue
            raise(ArgumentError, "unknown argument type: #{arg.class}")
          end
        end
      end
    end
  end
end
lib64/ruby/2.2.0/fiddle/closure.rb000064400000002273150402106010012325 0ustar00module Fiddle
  class Closure

    # the C type of the return of the FFI closure
    attr_reader :ctype

    # arguments of the FFI closure
    attr_reader :args

    # Extends Fiddle::Closure to allow for building the closure in a block
    class BlockCaller < Fiddle::Closure

      # == Description
      #
      # Construct a new BlockCaller object.
      #
      # * +ctype+ is the C type to be returned
      # * +args+ are passed the callback
      # * +abi+ is the abi of the closure
      #
      # If there is an error in preparing the +ffi_cif+ or +ffi_prep_closure+,
      # then a RuntimeError will be raised.
      #
      # == Example
      #
      #   include Fiddle
      #
      #   cb = Closure::BlockCaller.new(TYPE_INT, [TYPE_INT]) do |one|
      #     one
      #   end
      #
      #   func = Function.new(cb, [TYPE_INT], TYPE_INT)
      #
      def initialize ctype, args, abi = Fiddle::Function::DEFAULT, &block
        super(ctype, args, abi)
        @block = block
      end

      # Calls the constructed BlockCaller, with +args+
      #
      # For an example see Fiddle::Closure::BlockCaller.new
      #
      def call *args
        @block.call(*args)
      end
    end
  end
end
lib64/ruby/2.2.0/fiddle/types.rb000064400000003531150402106010012013 0ustar00module Fiddle
  # Adds Windows type aliases to the including class for use with
  # Fiddle::Importer.
  #
  # The aliases added are:
  # * ATOM
  # * BOOL
  # * BYTE
  # * DWORD
  # * DWORD32
  # * DWORD64
  # * HANDLE
  # * HDC
  # * HINSTANCE
  # * HWND
  # * LPCSTR
  # * LPSTR
  # * PBYTE
  # * PDWORD
  # * PHANDLE
  # * PVOID
  # * PWORD
  # * UCHAR
  # * UINT
  # * ULONG
  # * WORD
  module Win32Types
    def included(m) # :nodoc:
      m.module_eval{
        typealias "DWORD", "unsigned long"
        typealias "PDWORD", "unsigned long *"
        typealias "DWORD32", "unsigned long"
        typealias "DWORD64", "unsigned long long"
        typealias "WORD", "unsigned short"
        typealias "PWORD", "unsigned short *"
        typealias "BOOL", "int"
        typealias "ATOM", "int"
        typealias "BYTE", "unsigned char"
        typealias "PBYTE", "unsigned char *"
        typealias "UINT", "unsigned int"
        typealias "ULONG", "unsigned long"
        typealias "UCHAR", "unsigned char"
        typealias "HANDLE", "uintptr_t"
        typealias "PHANDLE", "void*"
        typealias "PVOID", "void*"
        typealias "LPCSTR", "char*"
        typealias "LPSTR", "char*"
        typealias "HINSTANCE", "unsigned int"
        typealias "HDC", "unsigned int"
        typealias "HWND", "unsigned int"
      }
    end
    module_function :included
  end

  # Adds basic type aliases to the including class for use with Fiddle::Importer.
  #
  # The aliases added are +uint+ and +u_int+ (<tt>unsigned int</tt>) and
  # +ulong+ and +u_long+ (<tt>unsigned long</tt>)
  module BasicTypes
    def included(m) # :nodoc:
      m.module_eval{
        typealias "uint", "unsigned int"
        typealias "u_int", "unsigned int"
        typealias "ulong", "unsigned long"
        typealias "u_long", "unsigned long"
      }
    end
    module_function :included
  end
end
lib64/ruby/2.2.0/fiddle/cparser.rb000064400000011004150402106010012300 0ustar00module Fiddle
  # A mixin that provides methods for parsing C struct and prototype signatures.
  #
  # == Example
  #   require 'fiddle/import'
  #
  #   include Fiddle::CParser
  #     #=> Object
  #
  #   parse_ctype('int increment(int)')
  #     #=> ["increment", Fiddle::TYPE_INT, [Fiddle::TYPE_INT]]
  #
  module CParser
    # Parses a C struct's members
    #
    # Example:
    #
    #   include Fiddle::CParser
    #     #=> Object
    #
    #   parse_struct_signature(['int i', 'char c'])
    #     #=> [[Fiddle::TYPE_INT, Fiddle::TYPE_CHAR], ["i", "c"]]
    #
    def parse_struct_signature(signature, tymap=nil)
      if( signature.is_a?(String) )
        signature = signature.split(/\s*,\s*/)
      end
      mems = []
      tys  = []
      signature.each{|msig|
        tks = msig.split(/\s+(\*)?/)
        ty = tks[0..-2].join(" ")
        member = tks[-1]

        case ty
        when /\[(\d+)\]/
          n = $1.to_i
          ty.gsub!(/\s*\[\d+\]/,"")
          ty = [ty, n]
        when /\[\]/
          ty.gsub!(/\s*\[\]/, "*")
        end

        case member
        when /\[(\d+)\]/
          ty = [ty, $1.to_i]
          member.gsub!(/\s*\[\d+\]/,"")
        when /\[\]/
          ty = ty + "*"
          member.gsub!(/\s*\[\]/, "")
        end

        mems.push(member)
        tys.push(parse_ctype(ty,tymap))
      }
      return tys, mems
    end

    # Parses a C prototype signature
    #
    # If Hash +tymap+ is provided, the return value and the arguments from the
    # +signature+ are expected to be keys, and the value will be the C type to
    # be looked up.
    #
    # Example:
    #
    #   include Fiddle::CParser
    #     #=> Object
    #
    #   parse_signature('double sum(double, double)')
    #     #=> ["sum", Fiddle::TYPE_DOUBLE, [Fiddle::TYPE_DOUBLE, Fiddle::TYPE_DOUBLE]]
    #
    def parse_signature(signature, tymap=nil)
      tymap ||= {}
      signature = signature.gsub(/\s+/, " ").strip
      case signature
      when /^([\w@\*\s]+)\(([\w\*\s\,\[\]]*)\)$/
        ret = $1
        (args = $2).strip!
        ret = ret.split(/\s+/)
        args = args.split(/\s*,\s*/)
        func = ret.pop
        if( func =~ /^\*/ )
          func.gsub!(/^\*+/,"")
          ret.push("*")
        end
        ret  = ret.join(" ")
        return [func, parse_ctype(ret, tymap), args.collect{|arg| parse_ctype(arg, tymap)}]
      else
        raise(RuntimeError,"can't parse the function prototype: #{signature}")
      end
    end

    # Given a String of C type +ty+, returns the corresponding Fiddle constant.
    #
    # +ty+ can also accept an Array of C type Strings, and will be returned in
    # a corresponding Array.
    #
    # If Hash +tymap+ is provided, +ty+ is expected to be the key, and the
    # value will be the C type to be looked up.
    #
    # Example:
    #
    #   include Fiddle::CParser
    #     #=> Object
    #
    #   parse_ctype('int')
    #     #=> Fiddle::TYPE_INT
    #
    #   parse_ctype('double')
    #     #=> Fiddle::TYPE_DOUBLE
    #
    #   parse_ctype('unsigned char')
    #     #=> -Fiddle::TYPE_CHAR
    #
    def parse_ctype(ty, tymap=nil)
      tymap ||= {}
      case ty
      when Array
        return [parse_ctype(ty[0], tymap), ty[1]]
      when "void"
        return TYPE_VOID
      when "char"
        return TYPE_CHAR
      when "unsigned char"
        return  -TYPE_CHAR
      when "short"
        return TYPE_SHORT
      when "unsigned short"
        return -TYPE_SHORT
      when "int"
        return TYPE_INT
      when "unsigned int", 'uint'
        return -TYPE_INT
      when "long"
        return TYPE_LONG
      when "unsigned long"
        return -TYPE_LONG
      when "long long"
        if( defined?(TYPE_LONG_LONG) )
          return TYPE_LONG_LONG
        else
          raise(RuntimeError, "unsupported type: #{ty}")
        end
      when "unsigned long long"
        if( defined?(TYPE_LONG_LONG) )
          return -TYPE_LONG_LONG
        else
          raise(RuntimeError, "unsupported type: #{ty}")
        end
      when "float"
        return TYPE_FLOAT
      when "double"
        return TYPE_DOUBLE
      when "size_t"
        return TYPE_SIZE_T
      when "ssize_t"
        return TYPE_SSIZE_T
      when "ptrdiff_t"
        return TYPE_PTRDIFF_T
      when "intptr_t"
        return TYPE_INTPTR_T
      when "uintptr_t"
        return TYPE_UINTPTR_T
      when /\*/, /\[\s*\]/
        return TYPE_VOIDP
      else
        if( tymap[ty] )
          return parse_ctype(tymap[ty], tymap)
        else
          raise(DLError, "unknown type: #{ty}")
        end
      end
    end
  end
end
lib64/ruby/2.2.0/fiddle/import.rb000064400000021142150402106010012157 0ustar00require 'fiddle'
require 'fiddle/struct'
require 'fiddle/cparser'

module Fiddle

  # Used internally by Fiddle::Importer
  class CompositeHandler
    # Create a new handler with the open +handlers+
    #
    # Used internally by Fiddle::Importer.dlload
    def initialize(handlers)
      @handlers = handlers
    end

    # Array of the currently loaded libraries.
    def handlers()
      @handlers
    end

    # Returns the address as an Integer from any handlers with the function
    # named +symbol+.
    #
    # Raises a DLError if the handle is closed.
    def sym(symbol)
      @handlers.each{|handle|
        if( handle )
          begin
            addr = handle.sym(symbol)
            return addr
          rescue DLError
          end
        end
      }
      return nil
    end

    # See Fiddle::CompositeHandler.sym
    def [](symbol)
      sym(symbol)
    end
  end

  # A DSL that provides the means to dynamically load libraries and build
  # modules around them including calling extern functions within the C
  # library that has been loaded.
  #
  # == Example
  #
  #   require 'fiddle'
  #   require 'fiddle/import'
  #
  #   module LibSum
  #   	extend Fiddle::Importer
  #   	dlload './libsum.so'
  #   	extern 'double sum(double*, int)'
  #   	extern 'double split(double)'
  #   end
  #
  module Importer
    include Fiddle
    include CParser
    extend Importer

    # Creates an array of handlers for the given +libs+, can be an instance of
    # Fiddle::Handle, Fiddle::Importer, or will create a new instance of
    # Fiddle::Handle using Fiddle.dlopen
    #
    # Raises a DLError if the library cannot be loaded.
    #
    # See Fiddle.dlopen
    def dlload(*libs)
      handles = libs.collect{|lib|
        case lib
        when nil
          nil
        when Handle
          lib
        when Importer
          lib.handlers
        else
          begin
            Fiddle.dlopen(lib)
          rescue DLError
            raise(DLError, "can't load #{lib}")
          end
        end
      }.flatten()
      @handler = CompositeHandler.new(handles)
      @func_map = {}
      @type_alias = {}
    end

    # Sets the type alias for +alias_type+ as +orig_type+
    def typealias(alias_type, orig_type)
      @type_alias[alias_type] = orig_type
    end

    # Returns the sizeof +ty+, using Fiddle::Importer.parse_ctype to determine
    # the C type and the appropriate Fiddle constant.
    def sizeof(ty)
      case ty
      when String
        ty = parse_ctype(ty, @type_alias).abs()
        case ty
        when TYPE_CHAR
          return SIZEOF_CHAR
        when TYPE_SHORT
          return SIZEOF_SHORT
        when TYPE_INT
          return SIZEOF_INT
        when TYPE_LONG
          return SIZEOF_LONG
        when TYPE_LONG_LONG
          return SIZEOF_LONG_LONG
        when TYPE_FLOAT
          return SIZEOF_FLOAT
        when TYPE_DOUBLE
          return SIZEOF_DOUBLE
        when TYPE_VOIDP
          return SIZEOF_VOIDP
        else
          raise(DLError, "unknown type: #{ty}")
        end
      when Class
        if( ty.instance_methods().include?(:to_ptr) )
          return ty.size()
        end
      end
      return Pointer[ty].size()
    end

    def parse_bind_options(opts)
      h = {}
      while( opt = opts.shift() )
        case opt
        when :stdcall, :cdecl
          h[:call_type] = opt
        when :carried, :temp, :temporal, :bind
          h[:callback_type] = opt
          h[:carrier] = opts.shift()
        else
          h[opt] = true
        end
      end
      h
    end
    private :parse_bind_options

    # :stopdoc:
    CALL_TYPE_TO_ABI = Hash.new { |h, k|
      raise RuntimeError, "unsupported call type: #{k}"
    }.merge({ :stdcall => (Function::STDCALL rescue Function::DEFAULT),
              :cdecl   => Function::DEFAULT,
              nil      => Function::DEFAULT
            }).freeze
    private_constant :CALL_TYPE_TO_ABI
    # :startdoc:

    # Creates a global method from the given C +signature+.
    def extern(signature, *opts)
      symname, ctype, argtype = parse_signature(signature, @type_alias)
      opt = parse_bind_options(opts)
      f = import_function(symname, ctype, argtype, opt[:call_type])
      name = symname.gsub(/@.+/,'')
      @func_map[name] = f
      # define_method(name){|*args,&block| f.call(*args,&block)}
      begin
        /^(.+?):(\d+)/ =~ caller.first
        file, line = $1, $2.to_i
      rescue
        file, line = __FILE__, __LINE__+3
      end
      module_eval(<<-EOS, file, line)
        def #{name}(*args, &block)
          @func_map['#{name}'].call(*args,&block)
        end
      EOS
      module_function(name)
      f
    end

    # Creates a global method from the given C +signature+ using the given
    # +opts+ as bind parameters with the given block.
    def bind(signature, *opts, &blk)
      name, ctype, argtype = parse_signature(signature, @type_alias)
      h = parse_bind_options(opts)
      case h[:callback_type]
      when :bind, nil
        f = bind_function(name, ctype, argtype, h[:call_type], &blk)
      else
        raise(RuntimeError, "unknown callback type: #{h[:callback_type]}")
      end
      @func_map[name] = f
      #define_method(name){|*args,&block| f.call(*args,&block)}
      begin
        /^(.+?):(\d+)/ =~ caller.first
        file, line = $1, $2.to_i
      rescue
        file, line = __FILE__, __LINE__+3
      end
      module_eval(<<-EOS, file, line)
        def #{name}(*args,&block)
          @func_map['#{name}'].call(*args,&block)
        end
      EOS
      module_function(name)
      f
    end

    # Creates a class to wrap the C struct described by +signature+.
    #
    #   MyStruct = struct ['int i', 'char c']
    def struct(signature)
      tys, mems = parse_struct_signature(signature, @type_alias)
      Fiddle::CStructBuilder.create(CStruct, tys, mems)
    end

    # Creates a class to wrap the C union described by +signature+.
    #
    #   MyUnion = union ['int i', 'char c']
    def union(signature)
      tys, mems = parse_struct_signature(signature, @type_alias)
      Fiddle::CStructBuilder.create(CUnion, tys, mems)
    end

    # Returns the function mapped to +name+, that was created by either
    # Fiddle::Importer.extern or Fiddle::Importer.bind
    def [](name)
      @func_map[name]
    end

    # Creates a class to wrap the C struct with the value +ty+
    #
    # See also Fiddle::Importer.struct
    def create_value(ty, val=nil)
      s = struct([ty + " value"])
      ptr = s.malloc()
      if( val )
        ptr.value = val
      end
      return ptr
    end
    alias value create_value

    # Returns a new instance of the C struct with the value +ty+ at the +addr+
    # address.
    def import_value(ty, addr)
      s = struct([ty + " value"])
      ptr = s.new(addr)
      return ptr
    end


    # The Fiddle::CompositeHandler instance
    #
    # Will raise an error if no handlers are open.
    def handler
      @handler or raise "call dlload before importing symbols and functions"
    end

    # Returns a new Fiddle::Pointer instance at the memory address of the given
    # +name+ symbol.
    #
    # Raises a DLError if the +name+ doesn't exist.
    #
    # See Fiddle::CompositeHandler.sym and Fiddle::Handle.sym
    def import_symbol(name)
      addr = handler.sym(name)
      if( !addr )
        raise(DLError, "cannot find the symbol: #{name}")
      end
      Pointer.new(addr)
    end

    # Returns a new Fiddle::Function instance at the memory address of the given
    # +name+ function.
    #
    # Raises a DLError if the +name+ doesn't exist.
    #
    # * +argtype+ is an Array of arguments, passed to the +name+ function.
    # * +ctype+ is the return type of the function
    # * +call_type+ is the ABI of the function
    #
    # See also Fiddle:Function.new
    #
    # See Fiddle::CompositeHandler.sym and Fiddle::Handler.sym
    def import_function(name, ctype, argtype, call_type = nil)
      addr = handler.sym(name)
      if( !addr )
        raise(DLError, "cannot find the function: #{name}()")
      end
      Function.new(addr, argtype, ctype, CALL_TYPE_TO_ABI[call_type],
                   name: name)
    end

    # Returns a new closure wrapper for the +name+ function.
    #
    # * +ctype+ is the return type of the function
    # * +argtype+ is an Array of arguments, passed to the callback function
    # * +call_type+ is the abi of the closure
    # * +block+ is passed to the callback
    #
    # See Fiddle::Closure
    def bind_function(name, ctype, argtype, call_type = nil, &block)
      abi = CALL_TYPE_TO_ABI[call_type]
      closure = Class.new(Fiddle::Closure) {
        define_method(:call, block)
      }.new(ctype, argtype, abi)

      Function.new(closure, argtype, ctype, abi, name: name)
    end
  end
end
lib64/ruby/2.2.0/fiddle/function.rb000064400000000445150402106010012475 0ustar00module Fiddle
  class Function
    # The ABI of the Function.
    attr_reader :abi

    # The address of this function
    attr_reader :ptr

    # The name of this function
    attr_reader :name

    # The integer memory location of this function
    def to_i
      ptr.to_i
    end
  end
end
lib64/ruby/2.2.0/fiddle/pack.rb000064400000005645150402106010011575 0ustar00require 'fiddle'

module Fiddle
  module PackInfo # :nodoc: all
    ALIGN_MAP = {
      TYPE_VOIDP => ALIGN_VOIDP,
      TYPE_CHAR  => ALIGN_CHAR,
      TYPE_SHORT => ALIGN_SHORT,
      TYPE_INT   => ALIGN_INT,
      TYPE_LONG  => ALIGN_LONG,
      TYPE_FLOAT => ALIGN_FLOAT,
      TYPE_DOUBLE => ALIGN_DOUBLE,
      -TYPE_CHAR  => ALIGN_CHAR,
      -TYPE_SHORT => ALIGN_SHORT,
      -TYPE_INT   => ALIGN_INT,
      -TYPE_LONG  => ALIGN_LONG,
    }

    PACK_MAP = {
      TYPE_VOIDP => ((SIZEOF_VOIDP == SIZEOF_LONG_LONG) ? "q" : "l!"),
      TYPE_CHAR  => "c",
      TYPE_SHORT => "s!",
      TYPE_INT   => "i!",
      TYPE_LONG  => "l!",
      TYPE_FLOAT => "f",
      TYPE_DOUBLE => "d",
      -TYPE_CHAR  => "c",
      -TYPE_SHORT => "s!",
      -TYPE_INT   => "i!",
      -TYPE_LONG  => "l!",
    }

    SIZE_MAP = {
      TYPE_VOIDP => SIZEOF_VOIDP,
      TYPE_CHAR  => SIZEOF_CHAR,
      TYPE_SHORT => SIZEOF_SHORT,
      TYPE_INT   => SIZEOF_INT,
      TYPE_LONG  => SIZEOF_LONG,
      TYPE_FLOAT => SIZEOF_FLOAT,
      TYPE_DOUBLE => SIZEOF_DOUBLE,
      -TYPE_CHAR  => SIZEOF_CHAR,
      -TYPE_SHORT => SIZEOF_SHORT,
      -TYPE_INT   => SIZEOF_INT,
      -TYPE_LONG  => SIZEOF_LONG,
    }
    if defined?(TYPE_LONG_LONG)
      ALIGN_MAP[TYPE_LONG_LONG] = ALIGN_MAP[-TYPE_LONG_LONG] = ALIGN_LONG_LONG
      PACK_MAP[TYPE_LONG_LONG] = PACK_MAP[-TYPE_LONG_LONG] = "q"
      SIZE_MAP[TYPE_LONG_LONG] = SIZE_MAP[-TYPE_LONG_LONG] = SIZEOF_LONG_LONG
    end

    def align(addr, align)
      d = addr % align
      if( d == 0 )
        addr
      else
        addr + (align - d)
      end
    end
    module_function :align
  end

  class Packer # :nodoc: all
    include PackInfo

    def self.[](*types)
      new(types)
    end

    def initialize(types)
      parse_types(types)
    end

    def size()
      @size
    end

    def pack(ary)
      case SIZEOF_VOIDP
      when SIZEOF_LONG
        ary.pack(@template)
      when SIZEOF_LONG_LONG
        ary.pack(@template)
      else
        raise(RuntimeError, "sizeof(void*)?")
      end
    end

    def unpack(ary)
      case SIZEOF_VOIDP
      when SIZEOF_LONG
        ary.join().unpack(@template)
      when SIZEOF_LONG_LONG
        ary.join().unpack(@template)
      else
        raise(RuntimeError, "sizeof(void*)?")
      end
    end

    private

    def parse_types(types)
      @template = ""
      addr     = 0
      types.each{|t|
        orig_addr = addr
        if( t.is_a?(Array) )
          addr = align(orig_addr, ALIGN_MAP[TYPE_VOIDP])
        else
          addr = align(orig_addr, ALIGN_MAP[t])
        end
        d = addr - orig_addr
        if( d > 0 )
          @template << "x#{d}"
        end
        if( t.is_a?(Array) )
          @template << (PACK_MAP[t[0]] * t[1])
          addr += (SIZE_MAP[t[0]] * t[1])
        else
          @template << PACK_MAP[t]
          addr += SIZE_MAP[t]
        end
      }
      addr = align(addr, ALIGN_MAP[TYPE_VOIDP])
      @size = addr
    end
  end
end
lib64/ruby/2.2.0/fiddle/struct.rb000064400000014507150402106010012200 0ustar00require 'fiddle'
require 'fiddle/value'
require 'fiddle/pack'

module Fiddle
  # C struct shell
  class CStruct
    # accessor to Fiddle::CStructEntity
    def CStruct.entity_class
      CStructEntity
    end
  end

  # C union shell
  class CUnion
    # accessor to Fiddle::CUnionEntity
    def CUnion.entity_class
      CUnionEntity
    end
  end

  # Used to construct C classes (CUnion, CStruct, etc)
  #
  # Fiddle::Importer#struct and Fiddle::Importer#union wrap this functionality in an
  # easy-to-use manner.
  module CStructBuilder
    # Construct a new class given a C:
    # * class +klass+ (CUnion, CStruct, or other that provide an
    #   #entity_class)
    # * +types+ (Fiddle::TYPE_INT, Fiddle::TYPE_SIZE_T, etc., see the C types
    #   constants)
    # * corresponding +members+
    #
    # Fiddle::Importer#struct and Fiddle::Importer#union wrap this functionality in an
    # easy-to-use manner.
    #
    # Example:
    #
    #   require 'fiddle/struct'
    #   require 'fiddle/cparser'
    #
    #   include Fiddle::CParser
    #
    #   types, members = parse_struct_signature(['int i','char c'])
    #
    #   MyStruct = Fiddle::CStructBuilder.create(Fiddle::CUnion, types, members)
    #
    #   obj = MyStruct.allocate
    #
    def create(klass, types, members)
      new_class = Class.new(klass){
        define_method(:initialize){|addr|
          @entity = klass.entity_class.new(addr, types)
          @entity.assign_names(members)
        }
        define_method(:to_ptr){ @entity }
        define_method(:to_i){ @entity.to_i }
        members.each{|name|
          define_method(name){ @entity[name] }
          define_method(name + "="){|val| @entity[name] = val }
        }
      }
      size = klass.entity_class.size(types)
      new_class.module_eval(<<-EOS, __FILE__, __LINE__+1)
        def new_class.size()
          #{size}
        end
        def new_class.malloc()
          addr = Fiddle.malloc(#{size})
          new(addr)
        end
      EOS
      return new_class
    end
    module_function :create
  end

  # A C struct wrapper
  class CStructEntity < Fiddle::Pointer
    include PackInfo
    include ValueUtil

    # Allocates a C struct with the +types+ provided.
    #
    # When the instance is garbage collected, the C function +func+ is called.
    def CStructEntity.malloc(types, func = nil)
      addr = Fiddle.malloc(CStructEntity.size(types))
      CStructEntity.new(addr, types, func)
    end

    # Returns the offset for the packed sizes for the given +types+.
    #
    #   Fiddle::CStructEntity.size(
    #     [ Fiddle::TYPE_DOUBLE,
    #       Fiddle::TYPE_INT,
    #       Fiddle::TYPE_CHAR,
    #       Fiddle::TYPE_VOIDP ]) #=> 24
    def CStructEntity.size(types)
      offset = 0

      max_align = types.map { |type, count = 1|
        last_offset = offset

        align = PackInfo::ALIGN_MAP[type]
        offset = PackInfo.align(last_offset, align) +
                 (PackInfo::SIZE_MAP[type] * count)

        align
      }.max

      PackInfo.align(offset, max_align)
    end

    # Wraps the C pointer +addr+ as a C struct with the given +types+.
    #
    # When the instance is garbage collected, the C function +func+ is called.
    #
    # See also Fiddle::Pointer.new
    def initialize(addr, types, func = nil)
      set_ctypes(types)
      super(addr, @size, func)
    end

    # Set the names of the +members+ in this C struct
    def assign_names(members)
      @members = members
    end

    # Calculates the offsets and sizes for the given +types+ in the struct.
    def set_ctypes(types)
      @ctypes = types
      @offset = []
      offset = 0

      max_align = types.map { |type, count = 1|
        orig_offset = offset
        align = ALIGN_MAP[type]
        offset = PackInfo.align(orig_offset, align)

        @offset << offset

        offset += (SIZE_MAP[type] * count)

        align
      }.max

      @size = PackInfo.align(offset, max_align)
    end

    # Fetch struct member +name+
    def [](name)
      idx = @members.index(name)
      if( idx.nil? )
        raise(ArgumentError, "no such member: #{name}")
      end
      ty = @ctypes[idx]
      if( ty.is_a?(Array) )
        r = super(@offset[idx], SIZE_MAP[ty[0]] * ty[1])
      else
        r = super(@offset[idx], SIZE_MAP[ty.abs])
      end
      packer = Packer.new([ty])
      val = packer.unpack([r])
      case ty
      when Array
        case ty[0]
        when TYPE_VOIDP
          val = val.collect{|v| Pointer.new(v)}
        end
      when TYPE_VOIDP
        val = Pointer.new(val[0])
      else
        val = val[0]
      end
      if( ty.is_a?(Integer) && (ty < 0) )
        return unsigned_value(val, ty)
      elsif( ty.is_a?(Array) && (ty[0] < 0) )
        return val.collect{|v| unsigned_value(v,ty[0])}
      else
        return val
      end
    end

    # Set struct member +name+, to value +val+
    def []=(name, val)
      idx = @members.index(name)
      if( idx.nil? )
        raise(ArgumentError, "no such member: #{name}")
      end
      ty  = @ctypes[idx]
      packer = Packer.new([ty])
      val = wrap_arg(val, ty, [])
      buff = packer.pack([val].flatten())
      super(@offset[idx], buff.size, buff)
      if( ty.is_a?(Integer) && (ty < 0) )
        return unsigned_value(val, ty)
      elsif( ty.is_a?(Array) && (ty[0] < 0) )
        return val.collect{|v| unsigned_value(v,ty[0])}
      else
        return val
      end
    end

    def to_s() # :nodoc:
      super(@size)
    end
  end

  # A C union wrapper
  class CUnionEntity < CStructEntity
    include PackInfo

    # Allocates a C union the +types+ provided.
    #
    # When the instance is garbage collected, the C function +func+ is called.
    def CUnionEntity.malloc(types, func=nil)
      addr = Fiddle.malloc(CUnionEntity.size(types))
      CUnionEntity.new(addr, types, func)
    end

    # Returns the size needed for the union with the given +types+.
    #
    #   Fiddle::CUnionEntity.size(
    #     [ Fiddle::TYPE_DOUBLE,
    #       Fiddle::TYPE_INT,
    #       Fiddle::TYPE_CHAR,
    #       Fiddle::TYPE_VOIDP ]) #=> 8
    def CUnionEntity.size(types)
      types.map { |type, count = 1|
        PackInfo::SIZE_MAP[type] * count
      }.max
    end

    # Calculate the necessary offset and for each union member with the given
    # +types+
    def set_ctypes(types)
      @ctypes = types
      @offset = Array.new(types.length, 0)
      @size   = self.class.size types
    end
  end
end

lib64/ruby/2.2.0/optparse/version.rb000064400000003756150402106010012753 0ustar00# OptionParser internal utility

class << OptionParser
  def show_version(*pkgs)
    progname = ARGV.options.program_name
    result = false
    show = proc do |klass, cname, version|
      str = "#{progname}"
      unless klass == ::Object and cname == :VERSION
        version = version.join(".") if Array === version
        str << ": #{klass}" unless klass == Object
        str << " version #{version}"
      end
      [:Release, :RELEASE].find do |rel|
        if klass.const_defined?(rel)
          str << " (#{klass.const_get(rel)})"
        end
      end
      puts str
      result = true
    end
    if pkgs.size == 1 and pkgs[0] == "all"
      self.search_const(::Object, /\AV(?:ERSION|ersion)\z/) do |klass, cname, version|
        unless cname[1] == ?e and klass.const_defined?(:Version)
          show.call(klass, cname.intern, version)
        end
      end
    else
      pkgs.each do |pkg|
        begin
          pkg = pkg.split(/::|\//).inject(::Object) {|m, c| m.const_get(c)}
          v = case
              when pkg.const_defined?(:Version)
                pkg.const_get(n = :Version)
              when pkg.const_defined?(:VERSION)
                pkg.const_get(n = :VERSION)
              else
                n = nil
                "unknown"
              end
          show.call(pkg, n, v)
        rescue NameError
        end
      end
    end
    result
  end

  def each_const(path, base = ::Object)
    path.split(/::|\//).inject(base) do |klass, name|
      raise NameError, path unless Module === klass
      klass.constants.grep(/#{name}/i) do |c|
        klass.const_defined?(c) or next
        klass.const_get(c)
      end
    end
  end

  def search_const(klass, name)
    klasses = [klass]
    while klass = klasses.shift
      klass.constants.each do |cname|
        klass.const_defined?(cname) or next
        const = klass.const_get(cname)
        yield klass, cname, const if name === cname
        klasses << const if Module === const and const != ::Object
      end
    end
  end
end
lib64/ruby/2.2.0/optparse/uri.rb000064400000000144150402106010012051 0ustar00# -*- ruby -*-

require 'optparse'
require 'uri'

OptionParser.accept(URI) {|s,| URI.parse(s) if s}
lib64/ruby/2.2.0/optparse/shellwords.rb000064400000000171150402106010013440 0ustar00# -*- ruby -*-

require 'shellwords'
require 'optparse'

OptionParser.accept(Shellwords) {|s,| Shellwords.shellwords(s)}
lib64/ruby/2.2.0/optparse/date.rb000064400000000505150402106010012170 0ustar00require 'optparse'
require 'date'

OptionParser.accept(DateTime) do |s,|
  begin
    DateTime.parse(s) if s
  rescue ArgumentError
    raise OptionParser::InvalidArgument, s
  end
end
OptionParser.accept(Date) do |s,|
  begin
    Date.parse(s) if s
  rescue ArgumentError
    raise OptionParser::InvalidArgument, s
  end
end
lib64/ruby/2.2.0/optparse/time.rb000064400000000274150402106010012214 0ustar00require 'optparse'
require 'time'

OptionParser.accept(Time) do |s,|
  begin
    (Time.httpdate(s) rescue Time.parse(s)) if s
  rescue
    raise OptionParser::InvalidArgument, s
  end
end
lib64/ruby/2.2.0/optparse/ac.rb000064400000002574150402106020011647 0ustar00require 'optparse'

class OptionParser::AC < OptionParser
  private

  def _check_ac_args(name, block)
    unless /\A\w[-\w]*\z/ =~ name
      raise ArgumentError, name
    end
    unless block
      raise ArgumentError, "no block given", ParseError.filter_backtrace(caller)
    end
  end

  def _ac_arg_enable(prefix, name, help_string, block)
    _check_ac_args(name, block)

    sdesc = []
    ldesc = ["--#{prefix}-#{name}"]
    desc = [help_string]
    q = name.downcase
    enable = Switch::NoArgument.new(nil, proc {true}, sdesc, ldesc, nil, desc, block)
    disable = Switch::NoArgument.new(nil, proc {false}, sdesc, ldesc, nil, desc, block)
    top.append(enable, [], ["enable-" + q], disable, ['disable-' + q])
    enable
  end

  public

  def ac_arg_enable(name, help_string, &block)
    _ac_arg_enable("enable", name, help_string, block)
  end

  def ac_arg_disable(name, help_string, &block)
    _ac_arg_enable("disable", name, help_string, block)
  end

  def ac_arg_with(name, help_string, &block)
    _check_ac_args(name, block)

    sdesc = []
    ldesc = ["--with-#{name}"]
    desc = [help_string]
    q = name.downcase
    with = Switch::PlacedArgument.new(*search(:atype, String), sdesc, ldesc, nil, desc, block)
    without = Switch::NoArgument.new(nil, proc {}, sdesc, ldesc, nil, desc, block)
    top.append(with, [], ["with-" + q], without, ['without-' + q])
    with
  end
end
lib64/ruby/2.2.0/pathname.rb000064400000037115150402106020011223 0ustar00#
# = pathname.rb
#
# Object-Oriented Pathname Class
#
# Author:: Tanaka Akira <akr@m17n.org>
# Documentation:: Author and Gavin Sinclair
#
# For documentation, see class Pathname.
#

require 'pathname.so'

class Pathname

  # :stopdoc:
  if RUBY_VERSION < "1.9"
    TO_PATH = :to_str
  else
    # to_path is implemented so Pathname objects are usable with File.open, etc.
    TO_PATH = :to_path
  end

  SAME_PATHS = if File::FNM_SYSCASE.nonzero?
    # Avoid #zero? here because #casecmp can return nil.
    proc {|a, b| a.casecmp(b) == 0}
  else
    proc {|a, b| a == b}
  end


  if File::ALT_SEPARATOR
    SEPARATOR_LIST = "#{Regexp.quote File::ALT_SEPARATOR}#{Regexp.quote File::SEPARATOR}"
    SEPARATOR_PAT = /[#{SEPARATOR_LIST}]/
  else
    SEPARATOR_LIST = "#{Regexp.quote File::SEPARATOR}"
    SEPARATOR_PAT = /#{Regexp.quote File::SEPARATOR}/
  end

  # :startdoc:

  # chop_basename(path) -> [pre-basename, basename] or nil
  def chop_basename(path) # :nodoc:
    base = File.basename(path)
    if /\A#{SEPARATOR_PAT}?\z/o =~ base
      return nil
    else
      return path[0, path.rindex(base)], base
    end
  end
  private :chop_basename

  # split_names(path) -> prefix, [name, ...]
  def split_names(path) # :nodoc:
    names = []
    while r = chop_basename(path)
      path, basename = r
      names.unshift basename
    end
    return path, names
  end
  private :split_names

  def prepend_prefix(prefix, relpath) # :nodoc:
    if relpath.empty?
      File.dirname(prefix)
    elsif /#{SEPARATOR_PAT}/o =~ prefix
      prefix = File.dirname(prefix)
      prefix = File.join(prefix, "") if File.basename(prefix + 'a') != 'a'
      prefix + relpath
    else
      prefix + relpath
    end
  end
  private :prepend_prefix

  # Returns clean pathname of +self+ with consecutive slashes and useless dots
  # removed.  The filesystem is not accessed.
  #
  # If +consider_symlink+ is +true+, then a more conservative algorithm is used
  # to avoid breaking symbolic linkages.  This may retain more +..+
  # entries than absolutely necessary, but without accessing the filesystem,
  # this can't be avoided.
  #
  # See Pathname#realpath.
  #
  def cleanpath(consider_symlink=false)
    if consider_symlink
      cleanpath_conservative
    else
      cleanpath_aggressive
    end
  end

  #
  # Clean the path simply by resolving and removing excess +.+ and +..+ entries.
  # Nothing more, nothing less.
  #
  def cleanpath_aggressive # :nodoc:
    path = @path
    names = []
    pre = path
    while r = chop_basename(pre)
      pre, base = r
      case base
      when '.'
      when '..'
        names.unshift base
      else
        if names[0] == '..'
          names.shift
        else
          names.unshift base
        end
      end
    end
    pre.tr!(File::ALT_SEPARATOR, File::SEPARATOR) if File::ALT_SEPARATOR
    if /#{SEPARATOR_PAT}/o =~ File.basename(pre)
      names.shift while names[0] == '..'
    end
    self.class.new(prepend_prefix(pre, File.join(*names)))
  end
  private :cleanpath_aggressive

  # has_trailing_separator?(path) -> bool
  def has_trailing_separator?(path) # :nodoc:
    if r = chop_basename(path)
      pre, basename = r
      pre.length + basename.length < path.length
    else
      false
    end
  end
  private :has_trailing_separator?

  # add_trailing_separator(path) -> path
  def add_trailing_separator(path) # :nodoc:
    if File.basename(path + 'a') == 'a'
      path
    else
      File.join(path, "") # xxx: Is File.join is appropriate to add separator?
    end
  end
  private :add_trailing_separator

  def del_trailing_separator(path) # :nodoc:
    if r = chop_basename(path)
      pre, basename = r
      pre + basename
    elsif /#{SEPARATOR_PAT}+\z/o =~ path
      $` + File.dirname(path)[/#{SEPARATOR_PAT}*\z/o]
    else
      path
    end
  end
  private :del_trailing_separator

  def cleanpath_conservative # :nodoc:
    path = @path
    names = []
    pre = path
    while r = chop_basename(pre)
      pre, base = r
      names.unshift base if base != '.'
    end
    pre.tr!(File::ALT_SEPARATOR, File::SEPARATOR) if File::ALT_SEPARATOR
    if /#{SEPARATOR_PAT}/o =~ File.basename(pre)
      names.shift while names[0] == '..'
    end
    if names.empty?
      self.class.new(File.dirname(pre))
    else
      if names.last != '..' && File.basename(path) == '.'
        names << '.'
      end
      result = prepend_prefix(pre, File.join(*names))
      if /\A(?:\.|\.\.)\z/ !~ names.last && has_trailing_separator?(path)
        self.class.new(add_trailing_separator(result))
      else
        self.class.new(result)
      end
    end
  end
  private :cleanpath_conservative

  # Returns the parent directory.
  #
  # This is same as <code>self + '..'</code>.
  def parent
    self + '..'
  end

  # Returns +true+ if +self+ points to a mountpoint.
  def mountpoint?
    begin
      stat1 = self.lstat
      stat2 = self.parent.lstat
      stat1.dev == stat2.dev && stat1.ino == stat2.ino ||
        stat1.dev != stat2.dev
    rescue Errno::ENOENT
      false
    end
  end

  #
  # Predicate method for root directories.  Returns +true+ if the
  # pathname consists of consecutive slashes.
  #
  # It doesn't access the filesystem.  So it may return +false+ for some
  # pathnames which points to roots such as <tt>/usr/..</tt>.
  #
  def root?
    !!(chop_basename(@path) == nil && /#{SEPARATOR_PAT}/o =~ @path)
  end

  # Predicate method for testing whether a path is absolute.
  #
  # It returns +true+ if the pathname begins with a slash.
  #
  #   p = Pathname.new('/im/sure')
  #   p.absolute?
  #       #=> true
  #
  #   p = Pathname.new('not/so/sure')
  #   p.absolute?
  #       #=> false
  def absolute?
    !relative?
  end

  # The opposite of Pathname#absolute?
  #
  # It returns +false+ if the pathname begins with a slash.
  #
  #   p = Pathname.new('/im/sure')
  #   p.relative?
  #       #=> false
  #
  #   p = Pathname.new('not/so/sure')
  #   p.relative?
  #       #=> true
  def relative?
    path = @path
    while r = chop_basename(path)
      path, = r
    end
    path == ''
  end

  #
  # Iterates over each component of the path.
  #
  #   Pathname.new("/usr/bin/ruby").each_filename {|filename| ... }
  #     # yields "usr", "bin", and "ruby".
  #
  # Returns an Enumerator if no block was given.
  #
  #   enum = Pathname.new("/usr/bin/ruby").each_filename
  #     # ... do stuff ...
  #   enum.each { |e| ... }
  #     # yields "usr", "bin", and "ruby".
  #
  def each_filename # :yield: filename
    return to_enum(__method__) unless block_given?
    _, names = split_names(@path)
    names.each {|filename| yield filename }
    nil
  end

  # Iterates over and yields a new Pathname object
  # for each element in the given path in descending order.
  #
  #  Pathname.new('/path/to/some/file.rb').descend {|v| p v}
  #     #<Pathname:/>
  #     #<Pathname:/path>
  #     #<Pathname:/path/to>
  #     #<Pathname:/path/to/some>
  #     #<Pathname:/path/to/some/file.rb>
  #
  #  Pathname.new('path/to/some/file.rb').descend {|v| p v}
  #     #<Pathname:path>
  #     #<Pathname:path/to>
  #     #<Pathname:path/to/some>
  #     #<Pathname:path/to/some/file.rb>
  #
  # It doesn't access the filesystem.
  #
  def descend
    vs = []
    ascend {|v| vs << v }
    vs.reverse_each {|v| yield v }
    nil
  end

  # Iterates over and yields a new Pathname object
  # for each element in the given path in ascending order.
  #
  #  Pathname.new('/path/to/some/file.rb').ascend {|v| p v}
  #     #<Pathname:/path/to/some/file.rb>
  #     #<Pathname:/path/to/some>
  #     #<Pathname:/path/to>
  #     #<Pathname:/path>
  #     #<Pathname:/>
  #
  #  Pathname.new('path/to/some/file.rb').ascend {|v| p v}
  #     #<Pathname:path/to/some/file.rb>
  #     #<Pathname:path/to/some>
  #     #<Pathname:path/to>
  #     #<Pathname:path>
  #
  # It doesn't access the filesystem.
  #
  def ascend
    path = @path
    yield self
    while r = chop_basename(path)
      path, = r
      break if path.empty?
      yield self.class.new(del_trailing_separator(path))
    end
  end

  #
  # Appends a pathname fragment to +self+ to produce a new Pathname object.
  #
  #   p1 = Pathname.new("/usr")      # Pathname:/usr
  #   p2 = p1 + "bin/ruby"           # Pathname:/usr/bin/ruby
  #   p3 = p1 + "/etc/passwd"        # Pathname:/etc/passwd
  #
  #   # / is aliased to +.
  #   p4 = p1 / "bin/ruby"           # Pathname:/usr/bin/ruby
  #   p5 = p1 / "/etc/passwd"        # Pathname:/etc/passwd
  #
  # This method doesn't access the file system; it is pure string manipulation.
  #
  def +(other)
    other = Pathname.new(other) unless Pathname === other
    Pathname.new(plus(@path, other.to_s))
  end
  alias / +

  def plus(path1, path2) # -> path # :nodoc:
    prefix2 = path2
    index_list2 = []
    basename_list2 = []
    while r2 = chop_basename(prefix2)
      prefix2, basename2 = r2
      index_list2.unshift prefix2.length
      basename_list2.unshift basename2
    end
    return path2 if prefix2 != ''
    prefix1 = path1
    while true
      while !basename_list2.empty? && basename_list2.first == '.'
        index_list2.shift
        basename_list2.shift
      end
      break unless r1 = chop_basename(prefix1)
      prefix1, basename1 = r1
      next if basename1 == '.'
      if basename1 == '..' || basename_list2.empty? || basename_list2.first != '..'
        prefix1 = prefix1 + basename1
        break
      end
      index_list2.shift
      basename_list2.shift
    end
    r1 = chop_basename(prefix1)
    if !r1 && /#{SEPARATOR_PAT}/o =~ File.basename(prefix1)
      while !basename_list2.empty? && basename_list2.first == '..'
        index_list2.shift
        basename_list2.shift
      end
    end
    if !basename_list2.empty?
      suffix2 = path2[index_list2.first..-1]
      r1 ? File.join(prefix1, suffix2) : prefix1 + suffix2
    else
      r1 ? prefix1 : File.dirname(prefix1)
    end
  end
  private :plus

  #
  # Joins the given pathnames onto +self+ to create a new Pathname object.
  #
  #   path0 = Pathname.new("/usr")                # Pathname:/usr
  #   path0 = path0.join("bin/ruby")              # Pathname:/usr/bin/ruby
  #       # is the same as
  #   path1 = Pathname.new("/usr") + "bin/ruby"   # Pathname:/usr/bin/ruby
  #   path0 == path1
  #       #=> true
  #
  def join(*args)
    return self if args.empty?
    result = args.pop
    result = Pathname.new(result) unless Pathname === result
    return result if result.absolute?
    args.reverse_each {|arg|
      arg = Pathname.new(arg) unless Pathname === arg
      result = arg + result
      return result if result.absolute?
    }
    self + result
  end

  #
  # Returns the children of the directory (files and subdirectories, not
  # recursive) as an array of Pathname objects.
  #
  # By default, the returned pathnames will have enough information to access
  # the files. If you set +with_directory+ to +false+, then the returned
  # pathnames will contain the filename only.
  #
  # For example:
  #   pn = Pathname("/usr/lib/ruby/1.8")
  #   pn.children
  #       # -> [ Pathname:/usr/lib/ruby/1.8/English.rb,
  #              Pathname:/usr/lib/ruby/1.8/Env.rb,
  #              Pathname:/usr/lib/ruby/1.8/abbrev.rb, ... ]
  #   pn.children(false)
  #       # -> [ Pathname:English.rb, Pathname:Env.rb, Pathname:abbrev.rb, ... ]
  #
  # Note that the results never contain the entries +.+ and +..+ in
  # the directory because they are not children.
  #
  def children(with_directory=true)
    with_directory = false if @path == '.'
    result = []
    Dir.foreach(@path) {|e|
      next if e == '.' || e == '..'
      if with_directory
        result << self.class.new(File.join(@path, e))
      else
        result << self.class.new(e)
      end
    }
    result
  end

  # Iterates over the children of the directory
  # (files and subdirectories, not recursive).
  #
  # It yields Pathname object for each child.
  #
  # By default, the yielded pathnames will have enough information to access
  # the files.
  #
  # If you set +with_directory+ to +false+, then the returned pathnames will
  # contain the filename only.
  #
  #   Pathname("/usr/local").each_child {|f| p f }
  #   #=> #<Pathname:/usr/local/share>
  #   #   #<Pathname:/usr/local/bin>
  #   #   #<Pathname:/usr/local/games>
  #   #   #<Pathname:/usr/local/lib>
  #   #   #<Pathname:/usr/local/include>
  #   #   #<Pathname:/usr/local/sbin>
  #   #   #<Pathname:/usr/local/src>
  #   #   #<Pathname:/usr/local/man>
  #
  #   Pathname("/usr/local").each_child(false) {|f| p f }
  #   #=> #<Pathname:share>
  #   #   #<Pathname:bin>
  #   #   #<Pathname:games>
  #   #   #<Pathname:lib>
  #   #   #<Pathname:include>
  #   #   #<Pathname:sbin>
  #   #   #<Pathname:src>
  #   #   #<Pathname:man>
  #
  # Note that the results never contain the entries +.+ and +..+ in
  # the directory because they are not children.
  #
  # See Pathname#children
  #
  def each_child(with_directory=true, &b)
    children(with_directory).each(&b)
  end

  #
  # Returns a relative path from the given +base_directory+ to the receiver.
  #
  # If +self+ is absolute, then +base_directory+ must be absolute too.
  #
  # If +self+ is relative, then +base_directory+ must be relative too.
  #
  # This method doesn't access the filesystem.  It assumes no symlinks.
  #
  # ArgumentError is raised when it cannot find a relative path.
  #
  def relative_path_from(base_directory)
    dest_directory = self.cleanpath.to_s
    base_directory = base_directory.cleanpath.to_s
    dest_prefix = dest_directory
    dest_names = []
    while r = chop_basename(dest_prefix)
      dest_prefix, basename = r
      dest_names.unshift basename if basename != '.'
    end
    base_prefix = base_directory
    base_names = []
    while r = chop_basename(base_prefix)
      base_prefix, basename = r
      base_names.unshift basename if basename != '.'
    end
    unless SAME_PATHS[dest_prefix, base_prefix]
      raise ArgumentError, "different prefix: #{dest_prefix.inspect} and #{base_directory.inspect}"
    end
    while !dest_names.empty? &&
          !base_names.empty? &&
          SAME_PATHS[dest_names.first, base_names.first]
      dest_names.shift
      base_names.shift
    end
    if base_names.include? '..'
      raise ArgumentError, "base_directory has ..: #{base_directory.inspect}"
    end
    base_names.fill('..')
    relpath_names = base_names + dest_names
    if relpath_names.empty?
      Pathname.new('.')
    else
      Pathname.new(File.join(*relpath_names))
    end
  end
end


class Pathname    # * Find *
  #
  # Iterates over the directory tree in a depth first manner, yielding a
  # Pathname for each file under "this" directory.
  #
  # Returns an Enumerator if no block is given.
  #
  # Since it is implemented by the standard library module Find, Find.prune can
  # be used to control the traversal.
  #
  # If +self+ is +.+, yielded pathnames begin with a filename in the
  # current directory, not +./+.
  #
  # See Find.find
  #
  def find(ignore_error: true) # :yield: pathname
    return to_enum(__method__, ignore_error: ignore_error) unless block_given?
    require 'find'
    if @path == '.'
      Find.find(@path, ignore_error: ignore_error) {|f| yield self.class.new(f.sub(%r{\A\./}, '')) }
    else
      Find.find(@path, ignore_error: ignore_error) {|f| yield self.class.new(f) }
    end
  end
end


class Pathname    # * FileUtils *
  # Creates a full path, including any intermediate directories that don't yet
  # exist.
  #
  # See FileUtils.mkpath and FileUtils.mkdir_p
  def mkpath
    require 'fileutils'
    FileUtils.mkpath(@path)
    nil
  end

  # Recursively deletes a directory, including all directories beneath it.
  #
  # See FileUtils.rm_r
  def rmtree
    # The name "rmtree" is borrowed from File::Path of Perl.
    # File::Path provides "mkpath" and "rmtree".
    require 'fileutils'
    FileUtils.rm_r(@path)
    nil
  end
end

lib64/ruby/2.2.0/ubygems.rb000064400000000414150402106020011071 0ustar00# This file allows for the running of rubygems with a nice
# command line look-and-feel: ruby -rubygems foo.rb
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++


require 'rubygems'
lib64/ruby/2.2.0/fiddle.rb000064400000003234150402106020010650 0ustar00require 'fiddle.so'
require 'fiddle/function'
require 'fiddle/closure'

module Fiddle
  if WINDOWS
    # Returns the last win32 +Error+ of the current executing +Thread+ or nil
    # if none
    def self.win32_last_error
      Thread.current[:__FIDDLE_WIN32_LAST_ERROR__]
    end

    # Sets the last win32 +Error+ of the current executing +Thread+ to +error+
    def self.win32_last_error= error
      Thread.current[:__FIDDLE_WIN32_LAST_ERROR__] = error
    end
  end

  # Returns the last +Error+ of the current executing +Thread+ or nil if none
  def self.last_error
    Thread.current[:__FIDDLE_LAST_ERROR__]
  end

  # Sets the last +Error+ of the current executing +Thread+ to +error+
  def self.last_error= error
    Thread.current[:__DL2_LAST_ERROR__] = error
    Thread.current[:__FIDDLE_LAST_ERROR__] = error
  end

  # call-seq: dlopen(library) => Fiddle::Handle
  #
  # Creates a new handler that opens +library+, and returns an instance of
  # Fiddle::Handle.
  #
  # If +nil+ is given for the +library+, Fiddle::Handle::DEFAULT is used, which
  # is the equivalent to RTLD_DEFAULT. See <code>man 3 dlopen</code> for more.
  #
  #   lib = Fiddle.dlopen(nil)
  #
  # The default is dependent on OS, and provide a handle for all libraries
  # already loaded. For example, in most cases you can use this to access
  # +libc+ functions, or ruby functions like +rb_str_new+.
  #
  # See Fiddle::Handle.new for more.
  def dlopen library
    Fiddle::Handle.new library
  end
  module_function :dlopen

  # Add constants for backwards compat

  RTLD_GLOBAL = Handle::RTLD_GLOBAL # :nodoc:
  RTLD_LAZY   = Handle::RTLD_LAZY   # :nodoc:
  RTLD_NOW    = Handle::RTLD_NOW    # :nodoc:
end
lib64/ruby/2.2.0/psych/nodes/mapping.rb000064400000002754150402106020013320 0ustar00module Psych
  module Nodes
    ###
    # This class represents a {YAML Mapping}[http://yaml.org/spec/1.1/#mapping].
    #
    # A Psych::Nodes::Mapping node may have 0 or more children, but must have
    # an even number of children.  Here are the valid children a
    # Psych::Nodes::Mapping node may have:
    #
    # * Psych::Nodes::Sequence
    # * Psych::Nodes::Mapping
    # * Psych::Nodes::Scalar
    # * Psych::Nodes::Alias
    class Mapping < Psych::Nodes::Node
      # Any Map Style
      ANY   = 0

      # Block Map Style
      BLOCK = 1

      # Flow Map Style
      FLOW  = 2

      # The optional anchor for this mapping
      attr_accessor :anchor

      # The optional tag for this mapping
      attr_accessor :tag

      # Is this an implicit mapping?
      attr_accessor :implicit

      # The style of this mapping
      attr_accessor :style

      ###
      # Create a new Psych::Nodes::Mapping object.
      #
      # +anchor+ is the anchor associated with the map or +nil+.
      # +tag+ is the tag associated with the map or +nil+.
      # +implicit+ is a boolean indicating whether or not the map was implicitly
      # started.
      # +style+ is an integer indicating the mapping style.
      #
      # == See Also
      # See also Psych::Handler#start_mapping
      def initialize anchor = nil, tag = nil, implicit = true, style = BLOCK
        super()
        @anchor   = anchor
        @tag      = tag
        @implicit = implicit
        @style    = style
      end
    end
  end
end
lib64/ruby/2.2.0/psych/nodes/stream.rb000064400000001705150402106020013153 0ustar00module Psych
  module Nodes
    ###
    # Represents a YAML stream.  This is the root node for any YAML parse
    # tree.  This node must have one or more child nodes.  The only valid
    # child node for a Psych::Nodes::Stream node is Psych::Nodes::Document.
    class Stream < Psych::Nodes::Node

      # Encodings supported by Psych (and libyaml)

      # Any encoding
      ANY     = Psych::Parser::ANY

      # UTF-8 encoding
      UTF8    = Psych::Parser::UTF8

      # UTF-16LE encoding
      UTF16LE = Psych::Parser::UTF16LE

      # UTF-16BE encoding
      UTF16BE = Psych::Parser::UTF16BE

      # The encoding used for this stream
      attr_accessor :encoding

      ###
      # Create a new Psych::Nodes::Stream node with an +encoding+ that
      # defaults to Psych::Nodes::Stream::UTF8.
      #
      # See also Psych::Handler#start_stream
      def initialize encoding = UTF8
        super()
        @encoding = encoding
      end
    end
  end
end
lib64/ruby/2.2.0/psych/nodes/document.rb000064400000003403150402106020013473 0ustar00module Psych
  module Nodes
    ###
    # This represents a YAML Document.  This node must be a child of
    # Psych::Nodes::Stream.  A Psych::Nodes::Document must have one child,
    # and that child may be one of the following:
    #
    # * Psych::Nodes::Sequence
    # * Psych::Nodes::Mapping
    # * Psych::Nodes::Scalar
    class Document < Psych::Nodes::Node
      # The version of the YAML document
      attr_accessor :version

      # A list of tag directives for this document
      attr_accessor :tag_directives

      # Was this document implicitly created?
      attr_accessor :implicit

      # Is the end of the document implicit?
      attr_accessor :implicit_end

      ###
      # Create a new Psych::Nodes::Document object.
      #
      # +version+ is a list indicating the YAML version.
      # +tags_directives+ is a list of tag directive declarations
      # +implicit+ is a flag indicating whether the document will be implicitly
      # started.
      #
      # == Example:
      # This creates a YAML document object that represents a YAML 1.1 document
      # with one tag directive, and has an implicit start:
      #
      #   Psych::Nodes::Document.new(
      #     [1,1],
      #     [["!", "tag:tenderlovemaking.com,2009:"]],
      #     true
      #   )
      #
      # == See Also
      # See also Psych::Handler#start_document
      def initialize version = [], tag_directives = [], implicit = false
        super()
        @version        = version
        @tag_directives = tag_directives
        @implicit       = implicit
        @implicit_end   = true
      end

      ###
      # Returns the root node.  A Document may only have one root node:
      # http://yaml.org/spec/1.1/#id898031
      def root
        children.first
      end
    end
  end
end
lib64/ruby/2.2.0/psych/nodes/scalar.rb000064400000003107150402106020013123 0ustar00module Psych
  module Nodes
    ###
    # This class represents a {YAML Scalar}[http://yaml.org/spec/1.1/#id858081].
    #
    # This node type is a terminal node and should not have any children.
    class Scalar < Psych::Nodes::Node
      # Any style scalar, the emitter chooses
      ANY           = 0

      # Plain scalar style
      PLAIN         = 1

      # Single quoted style
      SINGLE_QUOTED = 2

      # Double quoted style
      DOUBLE_QUOTED = 3

      # Literal style
      LITERAL       = 4

      # Folded style
      FOLDED        = 5

      # The scalar value
      attr_accessor :value

      # The anchor value (if there is one)
      attr_accessor :anchor

      # The tag value (if there is one)
      attr_accessor :tag

      # Is this a plain scalar?
      attr_accessor :plain

      # Is this scalar quoted?
      attr_accessor :quoted

      # The style of this scalar
      attr_accessor :style

      ###
      # Create a new Psych::Nodes::Scalar object.
      #
      # +value+ is the string value of the scalar
      # +anchor+ is an associated anchor or nil
      # +tag+ is an associated tag or nil
      # +plain+ is a boolean value
      # +quoted+ is a boolean value
      # +style+ is an integer idicating the string style
      #
      # == See Also
      #
      # See also Psych::Handler#scalar
      def initialize value, anchor = nil, tag = nil, plain = true, quoted = false, style = ANY
        @value  = value
        @anchor = anchor
        @tag    = tag
        @plain  = plain
        @quoted = quoted
        @style  = style
      end
    end
  end
end
lib64/ruby/2.2.0/psych/nodes/alias.rb000064400000000720150402106020012745 0ustar00module Psych
  module Nodes
    ###
    # This class represents a {YAML Alias}[http://yaml.org/spec/1.1/#alias].
    # It points to an +anchor+.
    #
    # A Psych::Nodes::Alias is a terminal node and may have no children.
    class Alias < Psych::Nodes::Node
      # The anchor this alias links to
      attr_accessor :anchor

      # Create a new Alias that points to an +anchor+
      def initialize anchor
        @anchor = anchor
      end
    end
  end
end
lib64/ruby/2.2.0/psych/nodes/sequence.rb000064400000003743150402106030013475 0ustar00module Psych
  module Nodes
    ###
    # This class represents a
    # {YAML sequence}[http://yaml.org/spec/1.1/#sequence/syntax].
    #
    # A YAML sequence is basically a list, and looks like this:
    #
    #   %YAML 1.1
    #   ---
    #   - I am
    #   - a Sequence
    #
    # A YAML sequence may have an anchor like this:
    #
    #   %YAML 1.1
    #   ---
    #   &A [
    #     "This sequence",
    #     "has an anchor"
    #   ]
    #
    # A YAML sequence may also have a tag like this:
    #
    #   %YAML 1.1
    #   ---
    #   !!seq [
    #     "This sequence",
    #     "has a tag"
    #   ]
    #
    # This class represents a sequence in a YAML document.  A
    # Psych::Nodes::Sequence node may have 0 or more children.  Valid children
    # for this node are:
    #
    # * Psych::Nodes::Sequence
    # * Psych::Nodes::Mapping
    # * Psych::Nodes::Scalar
    # * Psych::Nodes::Alias
    class Sequence < Psych::Nodes::Node
      # Any Styles, emitter chooses
      ANY   = 0

      # Block style sequence
      BLOCK = 1

      # Flow style sequence
      FLOW  = 2

      # The anchor for this sequence (if any)
      attr_accessor :anchor

      # The tag name for this sequence (if any)
      attr_accessor :tag

      # Is this sequence started implicitly?
      attr_accessor :implicit

      # The sequence style used
      attr_accessor :style

      ###
      # Create a new object representing a YAML sequence.
      #
      # +anchor+ is the anchor associated with the sequence or nil.
      # +tag+ is the tag associated with the sequence or nil.
      # +implicit+ a boolean indicating whether or not the sequence was
      # implicitly started.
      # +style+ is an integer indicating the list style.
      #
      # See Psych::Handler#start_sequence
      def initialize anchor = nil, tag = nil, implicit = true, style = BLOCK
        super()
        @anchor   = anchor
        @tag      = tag
        @implicit = implicit
        @style    = style
      end
    end
  end
end
lib64/ruby/2.2.0/psych/nodes/node.rb000064400000002360150402106030012604 0ustar00require 'stringio'
require 'psych/class_loader'
require 'psych/scalar_scanner'

module Psych
  module Nodes
    ###
    # The base class for any Node in a YAML parse tree.  This class should
    # never be instantiated.
    class Node
      include Enumerable

      # The children of this node
      attr_reader :children

      # An associated tag
      attr_reader :tag

      # Create a new Psych::Nodes::Node
      def initialize
        @children = []
      end

      ###
      # Iterate over each node in the tree. Yields each node to +block+ depth
      # first.
      def each &block
        return enum_for :each unless block_given?
        Visitors::DepthFirst.new(block).accept self
      end

      ###
      # Convert this node to Ruby.
      #
      # See also Psych::Visitors::ToRuby
      def to_ruby
        Visitors::ToRuby.create.accept(self)
      end
      alias :transform :to_ruby

      ###
      # Convert this node to YAML.
      #
      # See also Psych::Visitors::Emitter
      def yaml io = nil, options = {}
        real_io = io || StringIO.new(''.encode('utf-8'))

        Visitors::Emitter.new(real_io, options).accept self
        return real_io.string unless io
        io
      end
      alias :to_yaml :yaml
    end
  end
end
lib64/ruby/2.2.0/psych/y.rb000064400000000240150402106030011012 0ustar00module Kernel
  ###
  # An alias for Psych.dump_stream meant to be used with IRB.
  def y *objects
    puts Psych.dump_stream(*objects)
  end
  private :y
end

lib64/ruby/2.2.0/psych/class_loader.rb000064400000003605150402106030013205 0ustar00require 'psych/omap'
require 'psych/set'

module Psych
  class ClassLoader # :nodoc:
    BIG_DECIMAL = 'BigDecimal'
    COMPLEX     = 'Complex'
    DATE        = 'Date'
    DATE_TIME   = 'DateTime'
    EXCEPTION   = 'Exception'
    OBJECT      = 'Object'
    PSYCH_OMAP  = 'Psych::Omap'
    PSYCH_SET   = 'Psych::Set'
    RANGE       = 'Range'
    RATIONAL    = 'Rational'
    REGEXP      = 'Regexp'
    STRUCT      = 'Struct'
    SYMBOL      = 'Symbol'

    def initialize
      @cache = CACHE.dup
    end

    def load klassname
      return nil if !klassname || klassname.empty?

      find klassname
    end

    def symbolize sym
      symbol
      sym.to_sym
    end

    constants.each do |const|
      konst = const_get const
      define_method(const.to_s.downcase) do
        load konst
      end
    end

    private

    def find klassname
      @cache[klassname] ||= resolve(klassname)
    end

    def resolve klassname
      name    = klassname
      retried = false

      begin
        path2class(name)
      rescue ArgumentError, NameError => ex
        unless retried
          name    = "Struct::#{name}"
          retried = ex
          retry
        end
        raise retried
      end
    end

    CACHE = Hash[constants.map { |const|
      val = const_get const
      begin
        [val, ::Object.const_get(val)]
      rescue
        nil
      end
    }.compact]

    class Restricted < ClassLoader
      def initialize classes, symbols
        @classes = classes
        @symbols = symbols
        super()
      end

      def symbolize sym
        return super if @symbols.empty?

        if @symbols.include? sym
          super
        else
          raise DisallowedClass, 'Symbol'
        end
      end

      private

      def find klassname
        if @classes.include? klassname
          super
        else
          raise DisallowedClass, klassname
        end
      end
    end
  end
end
lib64/ruby/2.2.0/psych/exception.rb000064400000000352150402106030012544 0ustar00module Psych
  class Exception < RuntimeError
  end

  class BadAlias < Exception
  end

  class DisallowedClass < Exception
    def initialize klass_name
      super "Tried to load unspecified class: #{klass_name}"
    end
  end
end
lib64/ruby/2.2.0/psych/visitors/visitor.rb000064400000000511150402106030014124 0ustar00module Psych
  module Visitors
    class Visitor
      def accept target
        visit target
      end

      private

      DISPATCH = Hash.new do |hash, klass|
        hash[klass] = "visit_#{klass.name.gsub('::', '_')}"
      end

      def visit target
        send DISPATCH[target.class], target
      end
    end
  end
end
lib64/ruby/2.2.0/psych/visitors/json_tree.rb000064400000001055150402106030014421 0ustar00require 'psych/json/ruby_events'

module Psych
  module Visitors
    class JSONTree < YAMLTree
      include Psych::JSON::RubyEvents

      def self.create options = {}
        emitter = Psych::JSON::TreeBuilder.new
        class_loader = ClassLoader.new
        ss           = ScalarScanner.new class_loader
        new(emitter, ss, options)
      end

      def accept target
        if target.respond_to?(:encode_with)
          dump_coder target
        else
          send(@dispatch_cache[target.class], target)
        end
      end
    end
  end
end
lib64/ruby/2.2.0/psych/visitors/emitter.rb000064400000002654150402106030014110 0ustar00module Psych
  module Visitors
    class Emitter < Psych::Visitors::Visitor
      def initialize io, options = {}
        opts = [:indentation, :canonical, :line_width].find_all { |opt|
          options.key?(opt)
        }

        if opts.empty?
          @handler = Psych::Emitter.new io
        else
          du = Handler::DumperOptions.new
          opts.each { |option| du.send :"#{option}=", options[option] }
          @handler = Psych::Emitter.new io, du
        end
      end

      def visit_Psych_Nodes_Stream o
        @handler.start_stream o.encoding
        o.children.each { |c| accept c }
        @handler.end_stream
      end

      def visit_Psych_Nodes_Document o
        @handler.start_document o.version, o.tag_directives, o.implicit
        o.children.each { |c| accept c }
        @handler.end_document o.implicit_end
      end

      def visit_Psych_Nodes_Scalar o
        @handler.scalar o.value, o.anchor, o.tag, o.plain, o.quoted, o.style
      end

      def visit_Psych_Nodes_Sequence o
        @handler.start_sequence o.anchor, o.tag, o.implicit, o.style
        o.children.each { |c| accept c }
        @handler.end_sequence
      end

      def visit_Psych_Nodes_Mapping o
        @handler.start_mapping o.anchor, o.tag, o.implicit, o.style
        o.children.each { |c| accept c }
        @handler.end_mapping
      end

      def visit_Psych_Nodes_Alias o
        @handler.alias o.anchor
      end
    end
  end
end
lib64/ruby/2.2.0/psych/visitors/depth_first.rb000064400000001124150402106030014741 0ustar00module Psych
  module Visitors
    class DepthFirst < Psych::Visitors::Visitor
      def initialize block
        @block = block
      end

      private

      def nary o
        o.children.each { |x| visit x }
        @block.call o
      end
      alias :visit_Psych_Nodes_Stream   :nary
      alias :visit_Psych_Nodes_Document :nary
      alias :visit_Psych_Nodes_Sequence :nary
      alias :visit_Psych_Nodes_Mapping  :nary

      def terminal o
        @block.call o
      end
      alias :visit_Psych_Nodes_Scalar :terminal
      alias :visit_Psych_Nodes_Alias  :terminal
    end
  end
end
lib64/ruby/2.2.0/psych/visitors/yaml_tree.rb000064400000037403150402106040014421 0ustar00require 'psych/tree_builder'
require 'psych/scalar_scanner'
require 'psych/class_loader'

module Psych
  module Visitors
    ###
    # YAMLTree builds a YAML ast given a Ruby object.  For example:
    #
    #   builder = Psych::Visitors::YAMLTree.new
    #   builder << { :foo => 'bar' }
    #   builder.tree # => #<Psych::Nodes::Stream .. }
    #
    class YAMLTree < Psych::Visitors::Visitor
      class Registrar # :nodoc:
        def initialize
          @obj_to_id   = {}
          @obj_to_node = {}
          @targets     = []
          @counter     = 0
        end

        def register target, node
          @targets << target
          @obj_to_node[target.object_id] = node
        end

        def key? target
          @obj_to_node.key? target.object_id
        rescue NoMethodError
          false
        end

        def id_for target
          @obj_to_id[target.object_id] ||= (@counter += 1)
        end

        def node_for target
          @obj_to_node[target.object_id]
        end
      end

      attr_reader :started, :finished
      alias :finished? :finished
      alias :started? :started

      def self.create options = {}, emitter = nil
        emitter      ||= TreeBuilder.new
        class_loader = ClassLoader.new
        ss           = ScalarScanner.new class_loader
        new(emitter, ss, options)
      end

      def self.new emitter = nil, ss = nil, options = nil
        return super if emitter && ss && options

        if $VERBOSE
          warn "This API is deprecated, please pass an emitter, scalar scanner, and options or call #{self}.create() (#{caller.first})"
        end
        create emitter, ss
      end

      def initialize emitter, ss, options
        super()
        @started  = false
        @finished = false
        @emitter  = emitter
        @st       = Registrar.new
        @ss       = ss
        @options  = options
        @coders   = []

        @dispatch_cache = Hash.new do |h,klass|
          method = "visit_#{(klass.name || '').split('::').join('_')}"

          method = respond_to?(method) ? method : h[klass.superclass]

          raise(TypeError, "Can't dump #{target.class}") unless method

          h[klass] = method
        end
      end

      def start encoding = Nodes::Stream::UTF8
        @emitter.start_stream(encoding).tap do
          @started = true
        end
      end

      def finish
        @emitter.end_stream.tap do
          @finished = true
        end
      end

      def tree
        finish unless finished?
        @emitter.root
      end

      def push object
        start unless started?
        version = []
        version = [1,1] if @options[:header]

        case @options[:version]
        when Array
          version = @options[:version]
        when String
          version = @options[:version].split('.').map { |x| x.to_i }
        else
          version = [1,1]
        end if @options.key? :version

        @emitter.start_document version, [], false
        accept object
        @emitter.end_document !@emitter.streaming?
      end
      alias :<< :push

      def accept target
        # return any aliases we find
        if @st.key? target
          oid         = @st.id_for target
          node        = @st.node_for target
          anchor      = oid.to_s
          node.anchor = anchor
          return @emitter.alias anchor
        end

        if target.respond_to?(:to_yaml)
          begin
            loc = target.method(:to_yaml).source_location.first
            if loc !~ /(syck\/rubytypes.rb|psych\/core_ext.rb)/
              unless target.respond_to?(:encode_with)
                if $VERBOSE
                  warn "implementing to_yaml is deprecated, please implement \"encode_with\""
                end

                target.to_yaml(:nodump => true)
              end
            end
          rescue
            # public_method or source_location might be overridden,
            # and it's OK to skip it since it's only to emit a warning
          end
        end

        if target.respond_to?(:encode_with)
          dump_coder target
        else
          send(@dispatch_cache[target.class], target)
        end
      end

      def visit_Psych_Omap o
        seq = @emitter.start_sequence(nil, '!omap', false, Nodes::Sequence::BLOCK)
        register(o, seq)

        o.each { |k,v| visit_Hash k => v }
        @emitter.end_sequence
      end

      def visit_Encoding o
        tag = "!ruby/encoding"
        @emitter.scalar o.name, nil, tag, false, false, Nodes::Scalar::ANY
      end

      def visit_Object o
        tag = Psych.dump_tags[o.class]
        unless tag
          klass = o.class == Object ? nil : o.class.name
          tag   = ['!ruby/object', klass].compact.join(':')
        end

        map = @emitter.start_mapping(nil, tag, false, Nodes::Mapping::BLOCK)
        register(o, map)

        dump_ivars o
        @emitter.end_mapping
      end

      def visit_Struct o
        tag = ['!ruby/struct', o.class.name].compact.join(':')

        register o, @emitter.start_mapping(nil, tag, false, Nodes::Mapping::BLOCK)
        o.members.each do |member|
          @emitter.scalar member.to_s, nil, nil, true, false, Nodes::Scalar::ANY
          accept o[member]
        end

        dump_ivars o

        @emitter.end_mapping
      end

      def visit_Exception o
        tag = ['!ruby/exception', o.class.name].join ':'

        @emitter.start_mapping nil, tag, false, Nodes::Mapping::BLOCK

        {
          'message'   => private_iv_get(o, 'mesg'),
          'backtrace' => private_iv_get(o, 'backtrace'),
        }.each do |k,v|
          next unless v
          @emitter.scalar k, nil, nil, true, false, Nodes::Scalar::ANY
          accept v
        end

        dump_ivars o

        @emitter.end_mapping
      end

      def visit_NameError o
        tag = ['!ruby/exception', o.class.name].join ':'

        @emitter.start_mapping nil, tag, false, Nodes::Mapping::BLOCK

        {
          'message'   => o.message.to_s,
          'backtrace' => private_iv_get(o, 'backtrace'),
        }.each do |k,v|
          next unless v
          @emitter.scalar k, nil, nil, true, false, Nodes::Scalar::ANY
          accept v
        end

        dump_ivars o

        @emitter.end_mapping
      end

      def visit_Regexp o
        register o, @emitter.scalar(o.inspect, nil, '!ruby/regexp', false, false, Nodes::Scalar::ANY)
      end

      def visit_DateTime o
        formatted = if o.offset.zero?
                      o.strftime("%Y-%m-%d %H:%M:%S.%9N Z".freeze)
                    else
                      o.strftime("%Y-%m-%d %H:%M:%S.%9N %:z".freeze)
                    end
        tag = '!ruby/object:DateTime'
        register o, @emitter.scalar(formatted, nil, tag, false, false, Nodes::Scalar::ANY)
      end

      def visit_Time o
        formatted = format_time o
        register o, @emitter.scalar(formatted, nil, nil, true, false, Nodes::Scalar::ANY)
      end

      def visit_Rational o
        register o, @emitter.start_mapping(nil, '!ruby/object:Rational', false, Nodes::Mapping::BLOCK)

        [
          'denominator', o.denominator.to_s,
          'numerator', o.numerator.to_s
        ].each do |m|
          @emitter.scalar m, nil, nil, true, false, Nodes::Scalar::ANY
        end

        @emitter.end_mapping
      end

      def visit_Complex o
        register o, @emitter.start_mapping(nil, '!ruby/object:Complex', false, Nodes::Mapping::BLOCK)

        ['real', o.real.to_s, 'image', o.imag.to_s].each do |m|
          @emitter.scalar m, nil, nil, true, false, Nodes::Scalar::ANY
        end

        @emitter.end_mapping
      end

      def visit_Integer o
        @emitter.scalar o.to_s, nil, nil, true, false, Nodes::Scalar::ANY
      end
      alias :visit_TrueClass :visit_Integer
      alias :visit_FalseClass :visit_Integer
      alias :visit_Date :visit_Integer

      def visit_Float o
        if o.nan?
          @emitter.scalar '.nan', nil, nil, true, false, Nodes::Scalar::ANY
        elsif o.infinite?
          @emitter.scalar((o.infinite? > 0 ? '.inf' : '-.inf'),
            nil, nil, true, false, Nodes::Scalar::ANY)
        else
          @emitter.scalar o.to_s, nil, nil, true, false, Nodes::Scalar::ANY
        end
      end

      def visit_BigDecimal o
        @emitter.scalar o._dump, nil, '!ruby/object:BigDecimal', false, false, Nodes::Scalar::ANY
      end

      def visit_String o
        plain = true
        quote = true
        style = Nodes::Scalar::PLAIN
        tag   = nil
        str   = o

        if binary?(o)
          str   = [o].pack('m').chomp
          tag   = '!binary' # FIXME: change to below when syck is removed
          #tag   = 'tag:yaml.org,2002:binary'
          style = Nodes::Scalar::LITERAL
          plain = false
          quote = false
        elsif o =~ /\n/
          style = Nodes::Scalar::LITERAL
        elsif o == '<<'
          style = Nodes::Scalar::SINGLE_QUOTED
          tag   = 'tag:yaml.org,2002:str'
          plain = false
          quote = false
        elsif o =~ /^\W[^"]*$/
          style = Nodes::Scalar::DOUBLE_QUOTED
        else
          unless String === @ss.tokenize(o)
            style = Nodes::Scalar::SINGLE_QUOTED
          end
        end

        ivars = find_ivars o

        if ivars.empty?
          unless o.class == ::String
            tag = "!ruby/string:#{o.class}"
            plain = false
            quote = false
          end
          @emitter.scalar str, nil, tag, plain, quote, style
        else
          maptag = '!ruby/string'
          maptag << ":#{o.class}" unless o.class == ::String

          register o, @emitter.start_mapping(nil, maptag, false, Nodes::Mapping::BLOCK)
          @emitter.scalar 'str', nil, nil, true, false, Nodes::Scalar::ANY
          @emitter.scalar str, nil, tag, plain, quote, style

          dump_ivars o

          @emitter.end_mapping
        end
      end

      def visit_Module o
        raise TypeError, "can't dump anonymous module: #{o}" unless o.name
        register o, @emitter.scalar(o.name, nil, '!ruby/module', false, false, Nodes::Scalar::SINGLE_QUOTED)
      end

      def visit_Class o
        raise TypeError, "can't dump anonymous class: #{o}" unless o.name
        register o, @emitter.scalar(o.name, nil, '!ruby/class', false, false, Nodes::Scalar::SINGLE_QUOTED)
      end

      def visit_Range o
        register o, @emitter.start_mapping(nil, '!ruby/range', false, Nodes::Mapping::BLOCK)
        ['begin', o.begin, 'end', o.end, 'excl', o.exclude_end?].each do |m|
          accept m
        end
        @emitter.end_mapping
      end

      def visit_Hash o
        tag      = o.class == ::Hash ? nil : "!ruby/hash:#{o.class}"
        implicit = !tag

        register(o, @emitter.start_mapping(nil, tag, implicit, Psych::Nodes::Mapping::BLOCK))

        o.each do |k,v|
          accept k
          accept v
        end

        @emitter.end_mapping
      end

      def visit_Psych_Set o
        register(o, @emitter.start_mapping(nil, '!set', false, Psych::Nodes::Mapping::BLOCK))

        o.each do |k,v|
          accept k
          accept v
        end

        @emitter.end_mapping
      end

      def visit_Array o
        if o.class == ::Array
          register o, @emitter.start_sequence(nil, nil, true, Nodes::Sequence::BLOCK)
          o.each { |c| accept c }
          @emitter.end_sequence
        else
          visit_array_subclass o
        end
      end

      def visit_NilClass o
        @emitter.scalar('', nil, 'tag:yaml.org,2002:null', true, false, Nodes::Scalar::ANY)
      end

      def visit_Symbol o
        if o.empty?
          @emitter.scalar "", nil, '!ruby/symbol', false, false, Nodes::Scalar::ANY
        else
          @emitter.scalar ":#{o}", nil, nil, true, false, Nodes::Scalar::ANY
        end
      end

      def visit_BasicObject o
        tag = Psych.dump_tags[o.class]
        tag ||= "!ruby/marshalable:#{o.class.name}"

        map = @emitter.start_mapping(nil, tag, false, Nodes::Mapping::BLOCK)
        register(o, map)

        o.marshal_dump.each(&method(:accept))

        @emitter.end_mapping
      end

      private
      # FIXME: Remove the index and count checks in Psych 3.0
      NULL         = "\x00"
      BINARY_RANGE = "\x00-\x7F"
      WS_RANGE     = "^ -~\t\r\n"

      def binary? string
        (string.encoding == Encoding::ASCII_8BIT && !string.ascii_only?) ||
          string.index(NULL) ||
          string.count(BINARY_RANGE, WS_RANGE).fdiv(string.length) > 0.3
      end

      def visit_array_subclass o
        tag = "!ruby/array:#{o.class}"
        if o.instance_variables.empty?
          node = @emitter.start_sequence(nil, tag, false, Nodes::Sequence::BLOCK)
          register o, node
          o.each { |c| accept c }
          @emitter.end_sequence
        else
          node = @emitter.start_mapping(nil, tag, false, Nodes::Sequence::BLOCK)
          register o, node

          # Dump the internal list
          accept 'internal'
          @emitter.start_sequence(nil, nil, true, Nodes::Sequence::BLOCK)
          o.each { |c| accept c }
          @emitter.end_sequence

          # Dump the ivars
          accept 'ivars'
          @emitter.start_mapping(nil, nil, true, Nodes::Sequence::BLOCK)
          o.instance_variables.each do |ivar|
            accept ivar
            accept o.instance_variable_get ivar
          end
          @emitter.end_mapping

          @emitter.end_mapping
        end
      end

      def dump_list o
      end

      # '%:z' was no defined until 1.9.3
      if RUBY_VERSION < '1.9.3'
        def format_time time
          formatted = time.strftime("%Y-%m-%d %H:%M:%S.%9N")

          if time.utc?
            formatted += " Z"
          else
            zone = time.strftime('%z')
            formatted += " #{zone[0,3]}:#{zone[3,5]}"
          end

          formatted
        end
      else
        def format_time time
          if time.utc?
            time.strftime("%Y-%m-%d %H:%M:%S.%9N Z")
          else
            time.strftime("%Y-%m-%d %H:%M:%S.%9N %:z")
          end
        end
      end

      # FIXME: remove this method once "to_yaml_properties" is removed
      def find_ivars target
        begin
          loc = target.method(:to_yaml_properties).source_location.first
          unless loc.start_with?(Psych::DEPRECATED) || loc.end_with?('rubytypes.rb')
            if $VERBOSE
              warn "#{loc}: to_yaml_properties is deprecated, please implement \"encode_with(coder)\""
            end
            return target.to_yaml_properties
          end
        rescue
          # public_method or source_location might be overridden,
          # and it's OK to skip it since it's only to emit a warning.
        end

        target.instance_variables
      end

      def register target, yaml_obj
        @st.register target, yaml_obj
        yaml_obj
      end

      def dump_coder o
        @coders << o
        tag = Psych.dump_tags[o.class]
        unless tag
          klass = o.class == Object ? nil : o.class.name
          tag   = ['!ruby/object', klass].compact.join(':')
        end

        c = Psych::Coder.new(tag)
        o.encode_with(c)
        emit_coder c
      end

      def emit_coder c
        case c.type
        when :scalar
          @emitter.scalar c.scalar, nil, c.tag, c.tag.nil?, false, Nodes::Scalar::ANY
        when :seq
          @emitter.start_sequence nil, c.tag, c.tag.nil?, Nodes::Sequence::BLOCK
          c.seq.each do |thing|
            accept thing
          end
          @emitter.end_sequence
        when :map
          @emitter.start_mapping nil, c.tag, c.implicit, c.style
          c.map.each do |k,v|
            accept k
            accept v
          end
          @emitter.end_mapping
        when :object
          accept c.object
        end
      end

      def dump_ivars target
        ivars = find_ivars target

        ivars.each do |iv|
          @emitter.scalar("#{iv.to_s.sub(/^@/, '')}", nil, nil, true, false, Nodes::Scalar::ANY)
          accept target.instance_variable_get(iv)
        end
      end
    end
  end
end
lib64/ruby/2.2.0/psych/visitors/to_ruby.rb000064400000025663150402106040014130 0ustar00require 'psych/scalar_scanner'
require 'psych/class_loader'
require 'psych/exception'

unless defined?(Regexp::NOENCODING)
  Regexp::NOENCODING = 32
end

module Psych
  module Visitors
    ###
    # This class walks a YAML AST, converting each node to Ruby
    class ToRuby < Psych::Visitors::Visitor
      def self.create
        class_loader = ClassLoader.new
        scanner      = ScalarScanner.new class_loader
        new(scanner, class_loader)
      end

      attr_reader :class_loader

      def initialize ss, class_loader
        super()
        @st = {}
        @ss = ss
        @domain_types = Psych.domain_types
        @class_loader = class_loader
      end

      def accept target
        result = super
        return result if @domain_types.empty? || !target.tag

        key = target.tag.sub(/^[!\/]*/, '').sub(/(,\d+)\//, '\1:')
        key = "tag:#{key}" unless key =~ /^(tag:|x-private)/

        if @domain_types.key? key
          value, block = @domain_types[key]
          return block.call value, result
        end

        result
      end

      def deserialize o
        if klass = resolve_class(Psych.load_tags[o.tag])
          instance = klass.allocate

          if instance.respond_to?(:init_with)
            coder = Psych::Coder.new(o.tag)
            coder.scalar = o.value
            instance.init_with coder
          end

          return instance
        end

        return o.value if o.quoted
        return @ss.tokenize(o.value) unless o.tag

        case o.tag
        when '!binary', 'tag:yaml.org,2002:binary'
          o.value.unpack('m').first
        when /^!(?:str|ruby\/string)(?::(.*))?/, 'tag:yaml.org,2002:str'
          klass = resolve_class($1)
          if klass
            klass.allocate.replace o.value
          else
            o.value
          end
        when '!ruby/object:BigDecimal'
          require 'bigdecimal'
          class_loader.big_decimal._load o.value
        when "!ruby/object:DateTime"
          class_loader.date_time
          require 'date'
          @ss.parse_time(o.value).to_datetime
        when '!ruby/encoding'
          ::Encoding.find o.value
        when "!ruby/object:Complex"
          class_loader.complex
          Complex(o.value)
        when "!ruby/object:Rational"
          class_loader.rational
          Rational(o.value)
        when "!ruby/class", "!ruby/module"
          resolve_class o.value
        when "tag:yaml.org,2002:float", "!float"
          Float(@ss.tokenize(o.value))
        when "!ruby/regexp"
          klass = class_loader.regexp
          o.value =~ /^\/(.*)\/([mixn]*)$/
          source  = $1
          options = 0
          lang    = nil
          ($2 || '').split('').each do |option|
            case option
            when 'x' then options |= Regexp::EXTENDED
            when 'i' then options |= Regexp::IGNORECASE
            when 'm' then options |= Regexp::MULTILINE
            when 'n' then options |= Regexp::NOENCODING
            else lang = option
            end
          end
          klass.new(*[source, options, lang].compact)
        when "!ruby/range"
          klass = class_loader.range
          args = o.value.split(/([.]{2,3})/, 2).map { |s|
            accept Nodes::Scalar.new(s)
          }
          args.push(args.delete_at(1) == '...')
          klass.new(*args)
        when /^!ruby\/sym(bol)?:?(.*)?$/
          class_loader.symbolize o.value
        else
          @ss.tokenize o.value
        end
      end
      private :deserialize

      def visit_Psych_Nodes_Scalar o
        register o, deserialize(o)
      end

      def visit_Psych_Nodes_Sequence o
        if klass = resolve_class(Psych.load_tags[o.tag])
          instance = klass.allocate

          if instance.respond_to?(:init_with)
            coder = Psych::Coder.new(o.tag)
            coder.seq = o.children.map { |c| accept c }
            instance.init_with coder
          end

          return instance
        end

        case o.tag
        when nil
          register_empty(o)
        when '!omap', 'tag:yaml.org,2002:omap'
          map = register(o, Psych::Omap.new)
          o.children.each { |a|
            map[accept(a.children.first)] = accept a.children.last
          }
          map
        when /^!(?:seq|ruby\/array):(.*)$/
          klass = resolve_class($1)
          list  = register(o, klass.allocate)
          o.children.each { |c| list.push accept c }
          list
        else
          register_empty(o)
        end
      end

      def visit_Psych_Nodes_Mapping o
        if Psych.load_tags[o.tag]
          return revive(resolve_class(Psych.load_tags[o.tag]), o)
        end
        return revive_hash(register(o, {}), o) unless o.tag

        case o.tag
        when /^!ruby\/struct:?(.*)?$/
          klass = resolve_class($1) if $1

          if klass
            s = register(o, klass.allocate)

            members = {}
            struct_members = s.members.map { |x| class_loader.symbolize x }
            o.children.each_slice(2) do |k,v|
              member = accept(k)
              value  = accept(v)
              if struct_members.include?(class_loader.symbolize(member))
                s.send("#{member}=", value)
              else
                members[member.to_s.sub(/^@/, '')] = value
              end
            end
            init_with(s, members, o)
          else
            klass = class_loader.struct
            members = o.children.map { |c| accept c }
            h = Hash[*members]
            s = klass.new(*h.map { |k,v|
              class_loader.symbolize k
            }).new(*h.map { |k,v| v })
            register(o, s)
            s
          end

        when /^!ruby\/object:?(.*)?$/
          name = $1 || 'Object'

          if name == 'Complex'
            class_loader.complex
            h = Hash[*o.children.map { |c| accept c }]
            register o, Complex(h['real'], h['image'])
          elsif name == 'Rational'
            class_loader.rational
            h = Hash[*o.children.map { |c| accept c }]
            register o, Rational(h['numerator'], h['denominator'])
          elsif name == 'Hash'
            revive_hash(register(o, {}), o)
          else
            obj = revive((resolve_class(name) || class_loader.object), o)
            obj
          end

        when /^!(?:str|ruby\/string)(?::(.*))?/, 'tag:yaml.org,2002:str'
          klass   = resolve_class($1)
          members = {}
          string  = nil

          o.children.each_slice(2) do |k,v|
            key   = accept k
            value = accept v

            if key == 'str'
              if klass
                string = klass.allocate.replace value
              else
                string = value
              end
              register(o, string)
            else
              members[key] = value
            end
          end
          init_with(string, members.map { |k,v| [k.to_s.sub(/^@/, ''),v] }, o)
        when /^!ruby\/array:(.*)$/
          klass = resolve_class($1)
          list  = register(o, klass.allocate)

          members = Hash[o.children.map { |c| accept c }.each_slice(2).to_a]
          list.replace members['internal']

          members['ivars'].each do |ivar, v|
            list.instance_variable_set ivar, v
          end
          list

        when '!ruby/range'
          klass = class_loader.range
          h = Hash[*o.children.map { |c| accept c }]
          register o, klass.new(h['begin'], h['end'], h['excl'])

        when /^!ruby\/exception:?(.*)?$/
          h = Hash[*o.children.map { |c| accept c }]

          e = build_exception((resolve_class($1) || class_loader.exception),
                              h.delete('message'))
          init_with(e, h, o)

        when '!set', 'tag:yaml.org,2002:set'
          set = class_loader.psych_set.new
          @st[o.anchor] = set if o.anchor
          o.children.each_slice(2) do |k,v|
            set[accept(k)] = accept(v)
          end
          set

        when /^!map:(.*)$/, /^!ruby\/hash:(.*)$/
          revive_hash register(o, resolve_class($1).new), o

        when '!omap', 'tag:yaml.org,2002:omap'
          map = register(o, class_loader.psych_omap.new)
          o.children.each_slice(2) do |l,r|
            map[accept(l)] = accept r
          end
          map

        when /^!ruby\/marshalable:(.*)$/
          name = $1
          klass = resolve_class(name)
          obj = register(o, klass.allocate)

          if obj.respond_to?(:init_with)
            init_with(obj, revive_hash({}, o), o)
          elsif obj.respond_to?(:marshal_load)
            marshal_data = o.children.map(&method(:accept))
            obj.marshal_load(marshal_data)
            obj
          else
            raise ArgumentError, "Cannot deserialize #{name}"
          end

        else
          revive_hash(register(o, {}), o)
        end
      end

      def visit_Psych_Nodes_Document o
        accept o.root
      end

      def visit_Psych_Nodes_Stream o
        o.children.map { |c| accept c }
      end

      def visit_Psych_Nodes_Alias o
        @st.fetch(o.anchor) { raise BadAlias, "Unknown alias: #{o.anchor}" }
      end

      private
      def register node, object
        @st[node.anchor] = object if node.anchor
        object
      end

      def register_empty object
        list = register(object, [])
        object.children.each { |c| list.push accept c }
        list
      end

      def revive_hash hash, o
        o.children.each_slice(2) { |k,v|
          key = accept(k)
          val = accept(v)

          if key == '<<' && k.tag != "tag:yaml.org,2002:str"
            case v
            when Nodes::Alias, Nodes::Mapping
              begin
                hash.merge! val
              rescue TypeError
                hash[key] = val
              end
            when Nodes::Sequence
              begin
                h = {}
                val.reverse_each do |value|
                  h.merge! value
                end
                hash.merge! h
              rescue TypeError
                hash[key] = val
              end
            else
              hash[key] = val
            end
          else
            hash[key] = val
          end

        }
        hash
      end

      def merge_key hash, key, val
      end

      def revive klass, node
        s = register(node, klass.allocate)
        init_with(s, revive_hash({}, node), node)
      end

      def init_with o, h, node
        c = Psych::Coder.new(node.tag)
        c.map = h

        if o.respond_to?(:init_with)
          o.init_with c
        elsif o.respond_to?(:yaml_initialize)
          if $VERBOSE
            warn "Implementing #{o.class}#yaml_initialize is deprecated, please implement \"init_with(coder)\""
          end
          o.yaml_initialize c.tag, c.map
        else
          h.each { |k,v| o.instance_variable_set(:"@#{k}", v) }
        end
        o
      end

      # Convert +klassname+ to a Class
      def resolve_class klassname
        class_loader.load klassname
      end
    end

    class NoAliasRuby < ToRuby
      def visit_Psych_Nodes_Alias o
        raise BadAlias, "Unknown alias: #{o.anchor}"
      end
    end
  end
end
lib64/ruby/2.2.0/psych/stream.rb000064400000001575150402106040012052 0ustar00module Psych
  ###
  # Psych::Stream is a streaming YAML emitter.  It will not buffer your YAML,
  # but send it straight to an IO.
  #
  # Here is an example use:
  #
  #   stream = Psych::Stream.new($stdout)
  #   stream.start
  #   stream.push({:foo => 'bar'})
  #   stream.finish
  #
  # YAML will be immediately emitted to $stdout with no buffering.
  #
  # Psych::Stream#start will take a block and ensure that Psych::Stream#finish
  # is called, so you can do this form:
  #
  #   stream = Psych::Stream.new($stdout)
  #   stream.start do |em|
  #     em.push(:foo => 'bar')
  #   end
  #
  class Stream < Psych::Visitors::YAMLTree
    class Emitter < Psych::Emitter # :nodoc:
      def end_document implicit_end = !streaming?
        super
      end

      def streaming?
        true
      end
    end

    include Psych::Streaming
    extend Psych::Streaming::ClassMethods
  end
end
lib64/ruby/2.2.0/psych/handler.rb000064400000016024150402106040012167 0ustar00module Psych
  ###
  # Psych::Handler is an abstract base class that defines the events used
  # when dealing with Psych::Parser.  Clients who want to use Psych::Parser
  # should implement a class that inherits from Psych::Handler and define
  # events that they can handle.
  #
  # Psych::Handler defines all events that Psych::Parser can possibly send to
  # event handlers.
  #
  # See Psych::Parser for more details
  class Handler
    ###
    # Configuration options for dumping YAML.
    class DumperOptions
      attr_accessor :line_width, :indentation, :canonical

      def initialize
        @line_width  = 0
        @indentation = 2
        @canonical   = false
      end
    end

    # Default dumping options
    OPTIONS = DumperOptions.new

    # Events that a Handler should respond to.
    EVENTS = [ :alias,
               :empty,
               :end_document,
               :end_mapping,
               :end_sequence,
               :end_stream,
               :scalar,
               :start_document,
               :start_mapping,
               :start_sequence,
               :start_stream ]

    ###
    # Called with +encoding+ when the YAML stream starts.  This method is
    # called once per stream.  A stream may contain multiple documents.
    #
    # See the constants in Psych::Parser for the possible values of +encoding+.
    def start_stream encoding
    end

    ###
    # Called when the document starts with the declared +version+,
    # +tag_directives+, if the document is +implicit+.
    #
    # +version+ will be an array of integers indicating the YAML version being
    # dealt with, +tag_directives+ is a list of tuples indicating the prefix
    # and suffix of each tag, and +implicit+ is a boolean indicating whether
    # the document is started implicitly.
    #
    # === Example
    #
    # Given the following YAML:
    #
    #   %YAML 1.1
    #   %TAG ! tag:tenderlovemaking.com,2009:
    #   --- !squee
    #
    # The parameters for start_document must be this:
    #
    #   version         # => [1, 1]
    #   tag_directives  # => [["!", "tag:tenderlovemaking.com,2009:"]]
    #   implicit        # => false
    def start_document version, tag_directives, implicit
    end

    ###
    # Called with the document ends.  +implicit+ is a boolean value indicating
    # whether or not the document has an implicit ending.
    #
    # === Example
    #
    # Given the following YAML:
    #
    #   ---
    #     hello world
    #
    # +implicit+ will be true.  Given this YAML:
    #
    #   ---
    #     hello world
    #   ...
    #
    # +implicit+ will be false.
    def end_document implicit
    end

    ###
    # Called when an alias is found to +anchor+.  +anchor+ will be the name
    # of the anchor found.
    #
    # === Example
    #
    # Here we have an example of an array that references itself in YAML:
    #
    #   --- &ponies
    #   - first element
    #   - *ponies
    #
    # &ponies is the achor, *ponies is the alias.  In this case, alias is
    # called with "ponies".
    def alias anchor
    end

    ###
    # Called when a scalar +value+ is found.  The scalar may have an
    # +anchor+, a +tag+, be implicitly +plain+ or implicitly +quoted+
    #
    # +value+ is the string value of the scalar
    # +anchor+ is an associated anchor or nil
    # +tag+ is an associated tag or nil
    # +plain+ is a boolean value
    # +quoted+ is a boolean value
    # +style+ is an integer idicating the string style
    #
    # See the constants in Psych::Nodes::Scalar for the possible values of
    # +style+
    #
    # === Example
    #
    # Here is a YAML document that exercises most of the possible ways this
    # method can be called:
    #
    #   ---
    #   - !str "foo"
    #   - &anchor fun
    #   - many
    #     lines
    #   - |
    #     many
    #     newlines
    #
    # The above YAML document contains a list with four strings.  Here are
    # the parameters sent to this method in the same order:
    #
    #   # value               anchor    tag     plain   quoted  style
    #   ["foo",               nil,      "!str", false,  false,  3    ]
    #   ["fun",               "anchor", nil,    true,   false,  1    ]
    #   ["many lines",        nil,      nil,    true,   false,  1    ]
    #   ["many\nnewlines\n",  nil,      nil,    false,  true,   4    ]
    #
    def scalar value, anchor, tag, plain, quoted, style
    end

    ###
    # Called when a sequence is started.
    #
    # +anchor+ is the anchor associated with the sequence or nil.
    # +tag+ is the tag associated with the sequence or nil.
    # +implicit+ a boolean indicating whether or not the sequence was implicitly
    # started.
    # +style+ is an integer indicating the list style.
    #
    # See the constants in Psych::Nodes::Sequence for the possible values of
    # +style+.
    #
    # === Example
    #
    # Here is a YAML document that exercises most of the possible ways this
    # method can be called:
    #
    #   ---
    #   - !!seq [
    #     a
    #   ]
    #   - &pewpew
    #     - b
    #
    # The above YAML document consists of three lists, an outer list that
    # contains two inner lists.  Here is a matrix of the parameters sent
    # to represent these lists:
    #
    #   # anchor    tag                       implicit  style
    #   [nil,       nil,                      true,     1     ]
    #   [nil,       "tag:yaml.org,2002:seq",  false,    2     ]
    #   ["pewpew",  nil,                      true,     1     ]

    def start_sequence anchor, tag, implicit, style
    end

    ###
    # Called when a sequence ends.
    def end_sequence
    end

    ###
    # Called when a map starts.
    #
    # +anchor+ is the anchor associated with the map or +nil+.
    # +tag+ is the tag associated with the map or +nil+.
    # +implicit+ is a boolean indicating whether or not the map was implicitly
    # started.
    # +style+ is an integer indicating the mapping style.
    #
    # See the constants in Psych::Nodes::Mapping for the possible values of
    # +style+.
    #
    # === Example
    #
    # Here is a YAML document that exercises most of the possible ways this
    # method can be called:
    #
    #   ---
    #   k: !!map { hello: world }
    #   v: &pewpew
    #     hello: world
    #
    # The above YAML document consists of three maps, an outer map that contains
    # two inner maps.  Below is a matrix of the parameters sent in order to
    # represent these three maps:
    #
    #   # anchor    tag                       implicit  style
    #   [nil,       nil,                      true,     1     ]
    #   [nil,       "tag:yaml.org,2002:map",  false,    2     ]
    #   ["pewpew",  nil,                      true,     1     ]

    def start_mapping anchor, tag, implicit, style
    end

    ###
    # Called when a map ends
    def end_mapping
    end

    ###
    # Called when an empty event happens. (Which, as far as I can tell, is
    # never).
    def empty
    end

    ###
    # Called when the YAML stream ends
    def end_stream
    end

    ###
    # Is this handler a streaming handler?
    def streaming?
      false
    end
  end
end
lib64/ruby/2.2.0/psych/set.rb000064400000000054150402106040011341 0ustar00module Psych
  class Set < ::Hash
  end
end
lib64/ruby/2.2.0/psych/deprecated.rb000064400000004767150402106040012665 0ustar00require 'date'

module Psych
  DEPRECATED = __FILE__ # :nodoc:

  module DeprecatedMethods # :nodoc:
    attr_accessor :taguri
    attr_accessor :to_yaml_style
  end

  def self.quick_emit thing, opts = {}, &block # :nodoc:
    warn "#{caller[0]}: YAML.quick_emit is deprecated" if $VERBOSE && !caller[0].start_with?(File.dirname(__FILE__))
    target = eval 'self', block.binding
    target.extend DeprecatedMethods
    metaclass = class << target; self; end
    metaclass.send(:define_method, :encode_with) do |coder|
      target.taguri        = coder.tag
      target.to_yaml_style = coder.style
      block.call coder
    end
    target.psych_to_yaml unless opts[:nodump]
  end

  # This method is deprecated, use Psych.load_stream instead.
  def self.load_documents yaml, &block
    if $VERBOSE
      warn "#{caller[0]}: load_documents is deprecated, use load_stream"
    end
    list = load_stream yaml
    return list unless block_given?
    list.each(&block)
  end

  def self.detect_implicit thing
    warn "#{caller[0]}: detect_implicit is deprecated" if $VERBOSE
    return '' unless String === thing
    return 'null' if '' == thing
    ss = ScalarScanner.new(ClassLoader.new)
    ss.tokenize(thing).class.name.downcase
  end

  def self.add_ruby_type type_tag, &block
    warn "#{caller[0]}: add_ruby_type is deprecated, use add_domain_type" if $VERBOSE
    domain = 'ruby.yaml.org,2002'
    key = ['tag', domain, type_tag].join ':'
    @domain_types[key] = [key, block]
  end

  def self.add_private_type type_tag, &block
    warn "#{caller[0]}: add_private_type is deprecated, use add_domain_type" if $VERBOSE
    domain = 'x-private'
    key = [domain, type_tag].join ':'
    @domain_types[key] = [key, block]
  end

  def self.tagurize thing
    warn "#{caller[0]}: add_private_type is deprecated, use add_domain_type" if $VERBOSE
    return thing unless String === thing
    "tag:yaml.org,2002:#{thing}"
  end

  def self.read_type_class type, reference
    warn "#{caller[0]}: read_type_class is deprecated" if $VERBOSE
    _, _, type, name = type.split ':', 4

    reference = name.split('::').inject(reference) do |k,n|
      k.const_get(n.to_sym)
    end if name
    [type, reference]
  end

  def self.object_maker klass, hash
    warn "#{caller[0]}: object_maker is deprecated" if $VERBOSE
    klass.allocate.tap do |obj|
      hash.each { |k,v| obj.instance_variable_set(:"@#{k}", v) }
    end
  end
end

class Object
  undef :to_yaml_properties rescue nil
  def to_yaml_properties # :nodoc:
    instance_variables
  end
end
lib64/ruby/2.2.0/psych/handlers/document_stream.rb000064400000000750150402106040015542 0ustar00require 'psych/tree_builder'

module Psych
  module Handlers
    class DocumentStream < Psych::TreeBuilder # :nodoc:
      def initialize &block
        super
        @block = block
      end

      def start_document version, tag_directives, implicit
        n = Nodes::Document.new version, tag_directives, implicit
        push n
      end

      def end_document implicit_end = !streaming?
        @last.implicit_end = implicit_end
        @block.call pop
      end
    end
  end
end
lib64/ruby/2.2.0/psych/handlers/recorder.rb000064400000001527150402106040014161 0ustar00require 'psych/handler'

module Psych
  module Handlers
    ###
    # This handler will capture an event and record the event.  Recorder events
    # are available vial Psych::Handlers::Recorder#events.
    #
    # For example:
    #
    #   recorder = Psych::Handlers::Recorder.new
    #   parser = Psych::Parser.new recorder
    #   parser.parse '--- foo'
    #
    #   recorder.events # => [list of events]
    #
    #   # Replay the events
    #
    #   emitter = Psych::Emitter.new $stdout
    #   recorder.events.each do |m, args|
    #     emitter.send m, *args
    #   end

    class Recorder < Psych::Handler
      attr_reader :events

      def initialize
        @events = []
        super
      end

      EVENTS.each do |event|
        define_method event do |*args|
          @events << [event, args]
        end
      end
    end
  end
end
lib64/ruby/2.2.0/psych/omap.rb000064400000000055150402106040011503 0ustar00module Psych
  class Omap < ::Hash
  end
end
lib64/ruby/2.2.0/psych/nodes.rb000064400000004515150402106040011664 0ustar00require 'psych/nodes/node'
require 'psych/nodes/stream'
require 'psych/nodes/document'
require 'psych/nodes/sequence'
require 'psych/nodes/scalar'
require 'psych/nodes/mapping'
require 'psych/nodes/alias'

module Psych
  ###
  # = Overview
  #
  # When using Psych.load to deserialize a YAML document, the document is
  # translated to an intermediary AST.  That intermediary AST is then
  # translated in to a Ruby object graph.
  #
  # In the opposite direction, when using Psych.dump, the Ruby object graph is
  # translated to an intermediary AST which is then converted to a YAML
  # document.
  #
  # Psych::Nodes contains all of the classes that make up the nodes of a YAML
  # AST.  You can manually build an AST and use one of the visitors (see
  # Psych::Visitors) to convert that AST to either a YAML document or to a
  # Ruby object graph.
  #
  # Here is an example of building an AST that represents a list with one
  # scalar:
  #
  #   # Create our nodes
  #   stream = Psych::Nodes::Stream.new
  #   doc    = Psych::Nodes::Document.new
  #   seq    = Psych::Nodes::Sequence.new
  #   scalar = Psych::Nodes::Scalar.new('foo')
  #
  #   # Build up our tree
  #   stream.children << doc
  #   doc.children    << seq
  #   seq.children    << scalar
  #
  # The stream is the root of the tree.  We can then convert the tree to YAML:
  #
  #   stream.to_yaml => "---\n- foo\n"
  #
  # Or convert it to Ruby:
  #
  #   stream.to_ruby => [["foo"]]
  #
  # == YAML AST Requirements
  #
  # A valid YAML AST *must* have one Psych::Nodes::Stream at the root.  A
  # Psych::Nodes::Stream node must have 1 or more Psych::Nodes::Document nodes
  # as children.
  #
  # Psych::Nodes::Document nodes must have one and *only* one child.  That child
  # may be one of:
  #
  # * Psych::Nodes::Sequence
  # * Psych::Nodes::Mapping
  # * Psych::Nodes::Scalar
  #
  # Psych::Nodes::Sequence and Psych::Nodes::Mapping nodes may have many
  # children, but Psych::Nodes::Mapping nodes should have an even number of
  # children.
  #
  # All of these are valid children for Psych::Nodes::Sequence and
  # Psych::Nodes::Mapping nodes:
  #
  # * Psych::Nodes::Sequence
  # * Psych::Nodes::Mapping
  # * Psych::Nodes::Scalar
  # * Psych::Nodes::Alias
  #
  # Psych::Nodes::Scalar and Psych::Nodes::Alias are both terminal nodes and
  # should not have any children.
  module Nodes
  end
end
lib64/ruby/2.2.0/psych/coder.rb000064400000004024150402106040011643 0ustar00module Psych
  ###
  # If an object defines +encode_with+, then an instance of Psych::Coder will
  # be passed to the method when the object is being serialized.  The Coder
  # automatically assumes a Psych::Nodes::Mapping is being emitted.  Other
  # objects like Sequence and Scalar may be emitted if +seq=+ or +scalar=+ are
  # called, respectively.
  class Coder
    attr_accessor :tag, :style, :implicit, :object
    attr_reader   :type, :seq

    def initialize tag
      @map      = {}
      @seq      = []
      @implicit = false
      @type     = :map
      @tag      = tag
      @style    = Psych::Nodes::Mapping::BLOCK
      @scalar   = nil
      @object   = nil
    end

    def scalar *args
      if args.length > 0
        warn "#{caller[0]}: Coder#scalar(a,b,c) is deprecated" if $VERBOSE
        @tag, @scalar, _ = args
        @type = :scalar
      end
      @scalar
    end

    # Emit a map.  The coder will be yielded to the block.
    def map tag = @tag, style = @style
      @tag   = tag
      @style = style
      yield self if block_given?
      @map
    end

    # Emit a scalar with +value+ and +tag+
    def represent_scalar tag, value
      self.tag    = tag
      self.scalar = value
    end

    # Emit a sequence with +list+ and +tag+
    def represent_seq tag, list
      @tag = tag
      self.seq = list
    end

    # Emit a sequence with +map+ and +tag+
    def represent_map tag, map
      @tag = tag
      self.map = map
    end

    # Emit an arbitrary object +obj+ and +tag+
    def represent_object tag, obj
      @tag    = tag
      @type   = :object
      @object = obj
    end

    # Emit a scalar with +value+
    def scalar= value
      @type   = :scalar
      @scalar = value
    end

    # Emit a map with +value+
    def map= map
      @type = :map
      @map  = map
    end

    def []= k, v
      @type = :map
      @map[k] = v
    end
    alias :add :[]=

    def [] k
      @type = :map
      @map[k]
    end

    # Emit a sequence of +list+
    def seq= list
      @type = :seq
      @seq  = list
    end
  end
end
lib64/ruby/2.2.0/psych/tree_builder.rb000064400000004070150402106040013215 0ustar00require 'psych/handler'

module Psych
  ###
  # This class works in conjunction with Psych::Parser to build an in-memory
  # parse tree that represents a YAML document.
  #
  # == Example
  #
  #   parser = Psych::Parser.new Psych::TreeBuilder.new
  #   parser.parse('--- foo')
  #   tree = parser.handler.root
  #
  # See Psych::Handler for documentation on the event methods used in this
  # class.
  class TreeBuilder < Psych::Handler
    # Returns the root node for the built tree
    attr_reader :root

    # Create a new TreeBuilder instance
    def initialize
      @stack = []
      @last  = nil
      @root  = nil
    end

    %w{
      Sequence
      Mapping
    }.each do |node|
      class_eval %{
        def start_#{node.downcase}(anchor, tag, implicit, style)
          n = Nodes::#{node}.new(anchor, tag, implicit, style)
          @last.children << n
          push n
        end

        def end_#{node.downcase}
          pop
        end
      }
    end

    ###
    # Handles start_document events with +version+, +tag_directives+,
    # and +implicit+ styling.
    #
    # See Psych::Handler#start_document
    def start_document version, tag_directives, implicit
      n = Nodes::Document.new version, tag_directives, implicit
      @last.children << n
      push n
    end

    ###
    # Handles end_document events with +version+, +tag_directives+,
    # and +implicit+ styling.
    #
    # See Psych::Handler#start_document
    def end_document implicit_end = !streaming?
      @last.implicit_end = implicit_end
      pop
    end

    def start_stream encoding
      @root = Nodes::Stream.new(encoding)
      push @root
    end

    def end_stream
      pop
    end

    def scalar value, anchor, tag, plain, quoted, style
      s = Nodes::Scalar.new(value,anchor,tag,plain,quoted,style)
      @last.children << s
      s
    end

    def alias anchor
      @last.children << Nodes::Alias.new(anchor)
    end

    private
    def push value
      @stack.push value
      @last = value
    end

    def pop
      x = @stack.pop
      @last = @stack.last
      x
    end
  end
end
lib64/ruby/2.2.0/psych/core_ext.rb000064400000001357150402106040012365 0ustar00class Object
  def self.yaml_tag url
    Psych.add_tag(url, self)
  end

  # FIXME: rename this to "to_yaml" when syck is removed

  ###
  # call-seq: to_yaml(options = {})
  #
  # Convert an object to YAML.  See Psych.dump for more information on the
  # available +options+.
  def psych_to_yaml options = {}
    Psych.dump self, options
  end
  remove_method :to_yaml rescue nil
  alias :to_yaml :psych_to_yaml
end

class Module
  def psych_yaml_as url
    return if caller[0].end_with?('rubytypes.rb')
    if $VERBOSE
      warn "#{caller[0]}: yaml_as is deprecated, please use yaml_tag"
    end
    Psych.add_tag(url, self)
  end

  remove_method :yaml_as rescue nil
  alias :yaml_as :psych_yaml_as
end

if defined?(::IRB)
  require 'psych/y'
end
lib64/ruby/2.2.0/psych/streaming.rb000064400000001175150402106040012544 0ustar00module Psych
  module Streaming
    module ClassMethods
      ###
      # Create a new streaming emitter.  Emitter will print to +io+.  See
      # Psych::Stream for an example.
      def new io
        emitter      = const_get(:Emitter).new(io)
        class_loader = ClassLoader.new
        ss           = ScalarScanner.new class_loader
        super(emitter, ss, {})
      end
    end

    ###
    # Start streaming using +encoding+
    def start encoding = Nodes::Stream::UTF8
      super.tap { yield self if block_given?  }
    ensure
      finish if block_given?
    end

    private
    def register target, obj
    end
  end
end
lib64/ruby/2.2.0/psych/syntax_error.rb000064400000001053150402106040013305 0ustar00require 'psych/exception'

module Psych
  class SyntaxError < Psych::Exception
    attr_reader :file, :line, :column, :offset, :problem, :context

    def initialize file, line, col, offset, problem, context
      err      = [problem, context].compact.join ' '
      filename = file || '<unknown>'
      message  = "(%s): %s at line %d column %d" % [filename, err, line, col]

      @file    = file
      @line    = line
      @column  = col
      @offset  = offset
      @problem = problem
      @context = context
      super(message)
    end
  end
end
lib64/ruby/2.2.0/psych/json/yaml_events.rb000064400000001355150402106040014052 0ustar00module Psych
  module JSON
    module YAMLEvents # :nodoc:
      def start_document version, tag_directives, implicit
        super(version, tag_directives, !streaming?)
      end

      def end_document implicit_end = !streaming?
        super(implicit_end)
      end

      def start_mapping anchor, tag, implicit, style
        super(anchor, nil, true, Nodes::Mapping::FLOW)
      end

      def start_sequence anchor, tag, implicit, style
        super(anchor, nil, true, Nodes::Sequence::FLOW)
      end

      def scalar value, anchor, tag, plain, quoted, style
        if "tag:yaml.org,2002:null" == tag
          super('null', nil, nil, true, false, Nodes::Scalar::PLAIN)
        else
          super
        end
      end
    end
  end
end
lib64/ruby/2.2.0/psych/json/stream.rb000064400000000570150402106040013015 0ustar00require 'psych/json/ruby_events'
require 'psych/json/yaml_events'

module Psych
  module JSON
    class Stream < Psych::Visitors::JSONTree
      include Psych::JSON::RubyEvents
      include Psych::Streaming
      extend Psych::Streaming::ClassMethods

      class Emitter < Psych::Stream::Emitter # :nodoc:
        include Psych::JSON::YAMLEvents
      end
    end
  end
end
lib64/ruby/2.2.0/psych/json/ruby_events.rb000064400000000712150402106040014065 0ustar00module Psych
  module JSON
    module RubyEvents # :nodoc:
      def visit_Time o
        formatted = format_time o
        @emitter.scalar formatted, nil, nil, false, true, Nodes::Scalar::DOUBLE_QUOTED
      end

      def visit_DateTime o
        visit_Time o.to_time
      end

      def visit_String o
        @emitter.scalar o.to_s, nil, nil, false, true, Nodes::Scalar::DOUBLE_QUOTED
      end
      alias :visit_Symbol :visit_String
    end
  end
end
lib64/ruby/2.2.0/psych/json/tree_builder.rb000064400000000507150402106040014167 0ustar00require 'psych/json/yaml_events'

module Psych
  module JSON
    ###
    # Psych::JSON::TreeBuilder is an event based AST builder.  Events are sent
    # to an instance of Psych::JSON::TreeBuilder and a JSON AST is constructed.
    class TreeBuilder < Psych::TreeBuilder
      include Psych::JSON::YAMLEvents
    end
  end
end
lib64/ruby/2.2.0/psych/visitors.rb000064400000000316150402106040012431 0ustar00require 'psych/visitors/visitor'
require 'psych/visitors/to_ruby'
require 'psych/visitors/emitter'
require 'psych/visitors/yaml_tree'
require 'psych/visitors/json_tree'
require 'psych/visitors/depth_first'
lib64/ruby/2.2.0/psych/scalar_scanner.rb000064400000010372150402106040013530 0ustar00require 'strscan'

module Psych
  ###
  # Scan scalars for built in types
  class ScalarScanner
    # Taken from http://yaml.org/type/timestamp.html
    TIME = /^-?\d{4}-\d{1,2}-\d{1,2}(?:[Tt]|\s+)\d{1,2}:\d\d:\d\d(?:\.\d*)?(?:\s*(?:Z|[-+]\d{1,2}:?(?:\d\d)?))?$/

    # Taken from http://yaml.org/type/float.html
    FLOAT = /^(?:[-+]?([0-9][0-9_,]*)?\.[0-9]*([eE][-+][0-9]+)?(?# base 10)
              |[-+]?[0-9][0-9_,]*(:[0-5]?[0-9])+\.[0-9_]*(?# base 60)
              |[-+]?\.(inf|Inf|INF)(?# infinity)
              |\.(nan|NaN|NAN)(?# not a number))$/x

    # Taken from http://yaml.org/type/int.html
    INTEGER = /^(?:[-+]?0b[0-1_]+          (?# base 2)
                  |[-+]?0[0-7_]+           (?# base 8)
                  |[-+]?(?:0|[1-9][0-9_]*) (?# base 10)
                  |[-+]?0x[0-9a-fA-F_]+    (?# base 16))$/x

    attr_reader :class_loader

    # Create a new scanner
    def initialize class_loader
      @string_cache = {}
      @symbol_cache = {}
      @class_loader = class_loader
    end

    # Tokenize +string+ returning the Ruby object
    def tokenize string
      return nil if string.empty?
      return string if @string_cache.key?(string)
      return @symbol_cache[string] if @symbol_cache.key?(string)

      case string
      # Check for a String type, being careful not to get caught by hash keys, hex values, and
      # special floats (e.g., -.inf).
      when /^[^\d\.:-]?[A-Za-z_\s!@#\$%\^&\*\(\)\{\}\<\>\|\/\\~;=]+/, /\n/
        if string.length > 5
          @string_cache[string] = true
          return string
        end

        case string
        when /^[^ytonf~]/i
          @string_cache[string] = true
          string
        when '~', /^null$/i
          nil
        when /^(yes|true|on)$/i
          true
        when /^(no|false|off)$/i
          false
        else
          @string_cache[string] = true
          string
        end
      when TIME
        begin
          parse_time string
        rescue ArgumentError
          string
        end
      when /^\d{4}-(?:1[012]|0\d|\d)-(?:[12]\d|3[01]|0\d|\d)$/
        require 'date'
        begin
          class_loader.date.strptime(string, '%Y-%m-%d')
        rescue ArgumentError
          string
        end
      when /^\.inf$/i
        Float::INFINITY
      when /^-\.inf$/i
        -Float::INFINITY
      when /^\.nan$/i
        Float::NAN
      when /^:./
        if string =~ /^:(["'])(.*)\1/
          @symbol_cache[string] = class_loader.symbolize($2.sub(/^:/, ''))
        else
          @symbol_cache[string] = class_loader.symbolize(string.sub(/^:/, ''))
        end
      when /^[-+]?[0-9][0-9_]*(:[0-5]?[0-9])+$/
        i = 0
        string.split(':').each_with_index do |n,e|
          i += (n.to_i * 60 ** (e - 2).abs)
        end
        i
      when /^[-+]?[0-9][0-9_]*(:[0-5]?[0-9])+\.[0-9_]*$/
        i = 0
        string.split(':').each_with_index do |n,e|
          i += (n.to_f * 60 ** (e - 2).abs)
        end
        i
      when FLOAT
        if string =~ /\A[-+]?\.\Z/
          @string_cache[string] = true
          string
        else
          Float(string.gsub(/[,_]|\.$/, ''))
        end
      else
        int = parse_int string.gsub(/[,_]/, '')
        return int if int

        @string_cache[string] = true
        string
      end
    end

    ###
    # Parse and return an int from +string+
    def parse_int string
      return unless INTEGER === string
      Integer(string)
    end

    ###
    # Parse and return a Time from +string+
    def parse_time string
      klass = class_loader.load 'Time'

      date, time = *(string.split(/[ tT]/, 2))
      (yy, m, dd) = date.match(/^(-?\d{4})-(\d{1,2})-(\d{1,2})/).captures.map { |x| x.to_i }
      md = time.match(/(\d+:\d+:\d+)(?:\.(\d*))?\s*(Z|[-+]\d+(:\d\d)?)?/)

      (hh, mm, ss) = md[1].split(':').map { |x| x.to_i }
      us = (md[2] ? Rational("0.#{md[2]}") : 0) * 1000000

      time = klass.utc(yy, m, dd, hh, mm, ss, us)

      return time if 'Z' == md[3]
      return klass.at(time.to_i, us) unless md[3]

      tz = md[3].match(/^([+\-]?\d{1,2})\:?(\d{1,2})?$/)[1..-1].compact.map { |digit| Integer(digit, 10) }
      offset = tz.first * 3600

      if offset < 0
        offset -= ((tz[1] || 0) * 60)
      else
        offset += ((tz[1] || 0) * 60)
      end

      klass.at((time - offset).to_i, us)
    end
  end
end
lib64/ruby/2.2.0/psych/parser.rb000064400000003221150402106040012041 0ustar00module Psych
  ###
  # YAML event parser class.  This class parses a YAML document and calls
  # events on the handler that is passed to the constructor.  The events can
  # be used for things such as constructing a YAML AST or deserializing YAML
  # documents.  It can even be fed back to Psych::Emitter to emit the same
  # document that was parsed.
  #
  # See Psych::Handler for documentation on the events that Psych::Parser emits.
  #
  # Here is an example that prints out ever scalar found in a YAML document:
  #
  #   # Handler for detecting scalar values
  #   class ScalarHandler < Psych::Handler
  #     def scalar value, anchor, tag, plain, quoted, style
  #       puts value
  #     end
  #   end
  #
  #   parser = Psych::Parser.new(ScalarHandler.new)
  #   parser.parse(yaml_document)
  #
  # Here is an example that feeds the parser back in to Psych::Emitter.  The
  # YAML document is read from STDIN and written back out to STDERR:
  #
  #   parser = Psych::Parser.new(Psych::Emitter.new($stderr))
  #   parser.parse($stdin)
  #
  # Psych uses Psych::Parser in combination with Psych::TreeBuilder to
  # construct an AST of the parsed YAML document.

  class Parser
    class Mark < Struct.new(:index, :line, :column)
    end

    # The handler on which events will be called
    attr_accessor :handler

    # Set the encoding for this parser to +encoding+
    attr_writer :external_encoding

    ###
    # Creates a new Psych::Parser instance with +handler+.  YAML events will
    # be called on +handler+.  See Psych::Parser for more details.

    def initialize handler = Handler.new
      @handler = handler
      @external_encoding = ANY
    end
  end
end
lib64/ruby/2.2.0/ipaddr.rb000064400000042072150402106040010671 0ustar00#
# ipaddr.rb - A class to manipulate an IP address
#
# Copyright (c) 2002 Hajimu UMEMOTO <ume@mahoroba.org>.
# Copyright (c) 2007, 2009, 2012 Akinori MUSHA <knu@iDaemons.org>.
# All rights reserved.
#
# You can redistribute and/or modify it under the same terms as Ruby.
#
# $Id: ipaddr.rb 52741 2015-11-24 15:49:21Z nagachika $
#
# Contact:
#   - Akinori MUSHA <knu@iDaemons.org> (current maintainer)
#
# TODO:
#   - scope_id support
#
require 'socket'

# IPAddr provides a set of methods to manipulate an IP address.  Both IPv4 and
# IPv6 are supported.
#
# == Example
#
#   require 'ipaddr'
#
#   ipaddr1 = IPAddr.new "3ffe:505:2::1"
#
#   p ipaddr1                   #=> #<IPAddr: IPv6:3ffe:0505:0002:0000:0000:0000:0000:0001/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff>
#
#   p ipaddr1.to_s              #=> "3ffe:505:2::1"
#
#   ipaddr2 = ipaddr1.mask(48)  #=> #<IPAddr: IPv6:3ffe:0505:0002:0000:0000:0000:0000:0000/ffff:ffff:ffff:0000:0000:0000:0000:0000>
#
#   p ipaddr2.to_s              #=> "3ffe:505:2::"
#
#   ipaddr3 = IPAddr.new "192.168.2.0/24"
#
#   p ipaddr3                   #=> #<IPAddr: IPv4:192.168.2.0/255.255.255.0>

class IPAddr

  # 32 bit mask for IPv4
  IN4MASK = 0xffffffff
  # 128 bit mask for IPv4
  IN6MASK = 0xffffffffffffffffffffffffffffffff
  # Format string for IPv6
  IN6FORMAT = (["%.4x"] * 8).join(':')

  # Regexp _internally_ used for parsing IPv4 address.
  RE_IPV4ADDRLIKE = %r{
    \A
    (\d+) \. (\d+) \. (\d+) \. (\d+)
    \z
  }x

  # Regexp _internally_ used for parsing IPv6 address.
  RE_IPV6ADDRLIKE_FULL = %r{
    \A
    (?:
      (?: [\da-f]{1,4} : ){7} [\da-f]{1,4}
    |
      ( (?: [\da-f]{1,4} : ){6} )
      (\d+) \. (\d+) \. (\d+) \. (\d+)
    )
    \z
  }xi

  # Regexp _internally_ used for parsing IPv6 address.
  RE_IPV6ADDRLIKE_COMPRESSED = %r{
    \A
    ( (?: (?: [\da-f]{1,4} : )* [\da-f]{1,4} )? )
    ::
    ( (?:
      ( (?: [\da-f]{1,4} : )* )
      (?:
        [\da-f]{1,4}
      |
        (\d+) \. (\d+) \. (\d+) \. (\d+)
      )
    )? )
    \z
  }xi

  # Generic IPAddr related error. Exceptions raised in this class should
  # inherit from Error.
  class Error < ArgumentError; end

  # Raised when the provided IP address is an invalid address.
  class InvalidAddressError < Error; end

  # Raised when the address family is invalid such as an address with an
  # unsupported family, an address with an inconsistent family, or an address
  # who's family cannot be determined.
  class AddressFamilyError < Error; end

  # Raised when the address is an invalid length.
  class InvalidPrefixError < InvalidAddressError; end

  # Returns the address family of this IP address.
  attr_reader :family

  # Creates a new ipaddr containing the given network byte ordered
  # string form of an IP address.
  def IPAddr::new_ntoh(addr)
    return IPAddr.new(IPAddr::ntop(addr))
  end

  # Convert a network byte ordered string form of an IP address into
  # human readable form.
  def IPAddr::ntop(addr)
    case addr.size
    when 4
      s = addr.unpack('C4').join('.')
    when 16
      s = IN6FORMAT % addr.unpack('n8')
    else
      raise AddressFamilyError, "unsupported address family"
    end
    return s
  end

  # Returns a new ipaddr built by bitwise AND.
  def &(other)
    return self.clone.set(@addr & coerce_other(other).to_i)
  end

  # Returns a new ipaddr built by bitwise OR.
  def |(other)
    return self.clone.set(@addr | coerce_other(other).to_i)
  end

  # Returns a new ipaddr built by bitwise right-shift.
  def >>(num)
    return self.clone.set(@addr >> num)
  end

  # Returns a new ipaddr built by bitwise left shift.
  def <<(num)
    return self.clone.set(addr_mask(@addr << num))
  end

  # Returns a new ipaddr built by bitwise negation.
  def ~
    return self.clone.set(addr_mask(~@addr))
  end

  # Returns true if two ipaddrs are equal.
  def ==(other)
    other = coerce_other(other)
    return @family == other.family && @addr == other.to_i
  end

  # Returns a new ipaddr built by masking IP address with the given
  # prefixlen/netmask. (e.g. 8, 64, "255.255.255.0", etc.)
  def mask(prefixlen)
    return self.clone.mask!(prefixlen)
  end

  # Returns true if the given ipaddr is in the range.
  #
  # e.g.:
  #   require 'ipaddr'
  #   net1 = IPAddr.new("192.168.2.0/24")
  #   net2 = IPAddr.new("192.168.2.100")
  #   net3 = IPAddr.new("192.168.3.0")
  #   p net1.include?(net2)     #=> true
  #   p net1.include?(net3)     #=> false
  def include?(other)
    other = coerce_other(other)
    if ipv4_mapped?
      if (@mask_addr >> 32) != 0xffffffffffffffffffffffff
        return false
      end
      mask_addr = (@mask_addr & IN4MASK)
      addr = (@addr & IN4MASK)
      family = Socket::AF_INET
    else
      mask_addr = @mask_addr
      addr = @addr
      family = @family
    end
    if other.ipv4_mapped?
      other_addr = (other.to_i & IN4MASK)
      other_family = Socket::AF_INET
    else
      other_addr = other.to_i
      other_family = other.family
    end

    if family != other_family
      return false
    end
    return ((addr & mask_addr) == (other_addr & mask_addr))
  end
  alias === include?

  # Returns the integer representation of the ipaddr.
  def to_i
    return @addr
  end

  # Returns a string containing the IP address representation.
  def to_s
    str = to_string
    return str if ipv4?

    str.gsub!(/\b0{1,3}([\da-f]+)\b/i, '\1')
    loop do
      break if str.sub!(/\A0:0:0:0:0:0:0:0\z/, '::')
      break if str.sub!(/\b0:0:0:0:0:0:0\b/, ':')
      break if str.sub!(/\b0:0:0:0:0:0\b/, ':')
      break if str.sub!(/\b0:0:0:0:0\b/, ':')
      break if str.sub!(/\b0:0:0:0\b/, ':')
      break if str.sub!(/\b0:0:0\b/, ':')
      break if str.sub!(/\b0:0\b/, ':')
      break
    end
    str.sub!(/:{3,}/, '::')

    if /\A::(ffff:)?([\da-f]{1,4}):([\da-f]{1,4})\z/i =~ str
      str = sprintf('::%s%d.%d.%d.%d', $1, $2.hex / 256, $2.hex % 256, $3.hex / 256, $3.hex % 256)
    end

    str
  end

  # Returns a string containing the IP address representation in
  # canonical form.
  def to_string
    return _to_string(@addr)
  end

  # Returns a network byte ordered string form of the IP address.
  def hton
    case @family
    when Socket::AF_INET
      return [@addr].pack('N')
    when Socket::AF_INET6
      return (0..7).map { |i|
        (@addr >> (112 - 16 * i)) & 0xffff
      }.pack('n8')
    else
      raise AddressFamilyError, "unsupported address family"
    end
  end

  # Returns true if the ipaddr is an IPv4 address.
  def ipv4?
    return @family == Socket::AF_INET
  end

  # Returns true if the ipaddr is an IPv6 address.
  def ipv6?
    return @family == Socket::AF_INET6
  end

  # Returns true if the ipaddr is an IPv4-mapped IPv6 address.
  def ipv4_mapped?
    return ipv6? && (@addr >> 32) == 0xffff
  end

  # Returns true if the ipaddr is an IPv4-compatible IPv6 address.
  def ipv4_compat?
    if !ipv6? || (@addr >> 32) != 0
      return false
    end
    a = (@addr & IN4MASK)
    return a != 0 && a != 1
  end

  # Returns a new ipaddr built by converting the native IPv4 address
  # into an IPv4-mapped IPv6 address.
  def ipv4_mapped
    if !ipv4?
      raise InvalidAddressError, "not an IPv4 address"
    end
    return self.clone.set(@addr | 0xffff00000000, Socket::AF_INET6)
  end

  # Returns a new ipaddr built by converting the native IPv4 address
  # into an IPv4-compatible IPv6 address.
  def ipv4_compat
    if !ipv4?
      raise InvalidAddressError, "not an IPv4 address"
    end
    return self.clone.set(@addr, Socket::AF_INET6)
  end

  # Returns a new ipaddr built by converting the IPv6 address into a
  # native IPv4 address.  If the IP address is not an IPv4-mapped or
  # IPv4-compatible IPv6 address, returns self.
  def native
    if !ipv4_mapped? && !ipv4_compat?
      return self
    end
    return self.clone.set(@addr & IN4MASK, Socket::AF_INET)
  end

  # Returns a string for DNS reverse lookup.  It returns a string in
  # RFC3172 form for an IPv6 address.
  def reverse
    case @family
    when Socket::AF_INET
      return _reverse + ".in-addr.arpa"
    when Socket::AF_INET6
      return ip6_arpa
    else
      raise AddressFamilyError, "unsupported address family"
    end
  end

  # Returns a string for DNS reverse lookup compatible with RFC3172.
  def ip6_arpa
    if !ipv6?
      raise InvalidAddressError, "not an IPv6 address"
    end
    return _reverse + ".ip6.arpa"
  end

  # Returns a string for DNS reverse lookup compatible with RFC1886.
  def ip6_int
    if !ipv6?
      raise InvalidAddressError, "not an IPv6 address"
    end
    return _reverse + ".ip6.int"
  end

  # Returns the successor to the ipaddr.
  def succ
    return self.clone.set(@addr + 1, @family)
  end

  # Compares the ipaddr with another.
  def <=>(other)
    other = coerce_other(other)

    return nil if other.family != @family

    return @addr <=> other.to_i
  end
  include Comparable

  # Checks equality used by Hash.
  def eql?(other)
    return self.class == other.class && self.hash == other.hash && self == other
  end

  # Returns a hash value used by Hash, Set, and Array classes
  def hash
    return ([@addr, @mask_addr].hash << 1) | (ipv4? ? 0 : 1)
  end

  # Creates a Range object for the network address.
  def to_range
    begin_addr = (@addr & @mask_addr)

    case @family
    when Socket::AF_INET
      end_addr = (@addr | (IN4MASK ^ @mask_addr))
    when Socket::AF_INET6
      end_addr = (@addr | (IN6MASK ^ @mask_addr))
    else
      raise AddressFamilyError, "unsupported address family"
    end

    return clone.set(begin_addr, @family)..clone.set(end_addr, @family)
  end

  # Returns a string containing a human-readable representation of the
  # ipaddr. ("#<IPAddr: family:address/mask>")
  def inspect
    case @family
    when Socket::AF_INET
      af = "IPv4"
    when Socket::AF_INET6
      af = "IPv6"
    else
      raise AddressFamilyError, "unsupported address family"
    end
    return sprintf("#<%s: %s:%s/%s>", self.class.name,
                   af, _to_string(@addr), _to_string(@mask_addr))
  end

  protected

  # Set +@addr+, the internal stored ip address, to given +addr+. The
  # parameter +addr+ is validated using the first +family+ member,
  # which is +Socket::AF_INET+ or +Socket::AF_INET6+.
  def set(addr, *family)
    case family[0] ? family[0] : @family
    when Socket::AF_INET
      if addr < 0 || addr > IN4MASK
        raise InvalidAddressError, "invalid address"
      end
    when Socket::AF_INET6
      if addr < 0 || addr > IN6MASK
        raise InvalidAddressError, "invalid address"
      end
    else
      raise AddressFamilyError, "unsupported address family"
    end
    @addr = addr
    if family[0]
      @family = family[0]
    end
    return self
  end

  # Set current netmask to given mask.
  def mask!(mask)
    if mask.kind_of?(String)
      if mask =~ /\A\d+\z/
        prefixlen = mask.to_i
      else
        m = IPAddr.new(mask)
        if m.family != @family
          raise InvalidPrefixError, "address family is not same"
        end
        @mask_addr = m.to_i
        @addr &= @mask_addr
        return self
      end
    else
      prefixlen = mask
    end
    case @family
    when Socket::AF_INET
      if prefixlen < 0 || prefixlen > 32
        raise InvalidPrefixError, "invalid length"
      end
      masklen = 32 - prefixlen
      @mask_addr = ((IN4MASK >> masklen) << masklen)
    when Socket::AF_INET6
      if prefixlen < 0 || prefixlen > 128
        raise InvalidPrefixError, "invalid length"
      end
      masklen = 128 - prefixlen
      @mask_addr = ((IN6MASK >> masklen) << masklen)
    else
      raise AddressFamilyError, "unsupported address family"
    end
    @addr = ((@addr >> masklen) << masklen)
    return self
  end

  private

  # Creates a new ipaddr object either from a human readable IP
  # address representation in string, or from a packed in_addr value
  # followed by an address family.
  #
  # In the former case, the following are the valid formats that will
  # be recognized: "address", "address/prefixlen" and "address/mask",
  # where IPv6 address may be enclosed in square brackets (`[' and
  # `]').  If a prefixlen or a mask is specified, it returns a masked
  # IP address.  Although the address family is determined
  # automatically from a specified string, you can specify one
  # explicitly by the optional second argument.
  #
  # Otherwise an IP address is generated from a packed in_addr value
  # and an address family.
  #
  # The IPAddr class defines many methods and operators, and some of
  # those, such as &, |, include? and ==, accept a string, or a packed
  # in_addr value instead of an IPAddr object.
  def initialize(addr = '::', family = Socket::AF_UNSPEC)
    if !addr.kind_of?(String)
      case family
      when Socket::AF_INET, Socket::AF_INET6
        set(addr.to_i, family)
        @mask_addr = (family == Socket::AF_INET) ? IN4MASK : IN6MASK
        return
      when Socket::AF_UNSPEC
        raise AddressFamilyError, "address family must be specified"
      else
        raise AddressFamilyError, "unsupported address family: #{family}"
      end
    end
    prefix, prefixlen = addr.split('/')
    if prefix =~ /\A\[(.*)\]\z/i
      prefix = $1
      family = Socket::AF_INET6
    end
    # It seems AI_NUMERICHOST doesn't do the job.
    #Socket.getaddrinfo(left, nil, Socket::AF_INET6, Socket::SOCK_STREAM, nil,
    #                  Socket::AI_NUMERICHOST)
    @addr = @family = nil
    if family == Socket::AF_UNSPEC || family == Socket::AF_INET
      @addr = in_addr(prefix)
      if @addr
        @family = Socket::AF_INET
      end
    end
    if !@addr && (family == Socket::AF_UNSPEC || family == Socket::AF_INET6)
      @addr = in6_addr(prefix)
      @family = Socket::AF_INET6
    end
    if family != Socket::AF_UNSPEC && @family != family
      raise AddressFamilyError, "address family mismatch"
    end
    if prefixlen
      mask!(prefixlen)
    else
      @mask_addr = (@family == Socket::AF_INET) ? IN4MASK : IN6MASK
    end
  end

  def coerce_other(other)
    case other
    when IPAddr
      other
    when String
      self.class.new(other)
    else
      self.class.new(other, @family)
    end
  end

  def in_addr(addr)
    case addr
    when Array
      octets = addr
    else
      m = RE_IPV4ADDRLIKE.match(addr) or return nil
      octets = m.captures
    end
    octets.inject(0) { |i, s|
      (n = s.to_i) < 256 or raise InvalidAddressError, "invalid address"
      s.match(/\A0./) and raise InvalidAddressError, "zero-filled number in IPv4 address is ambiguous"
      i << 8 | n
    }
  end

  def in6_addr(left)
    case left
    when RE_IPV6ADDRLIKE_FULL
      if $2
        addr = in_addr($~[2,4])
        left = $1 + ':'
      else
        addr = 0
      end
      right = ''
    when RE_IPV6ADDRLIKE_COMPRESSED
      if $4
        left.count(':') <= 6 or raise InvalidAddressError, "invalid address"
        addr = in_addr($~[4,4])
        left = $1
        right = $3 + '0:0'
      else
        left.count(':') <= ($1.empty? || $2.empty? ? 8 : 7) or
          raise InvalidAddressError, "invalid address"
        left = $1
        right = $2
        addr = 0
      end
    else
      raise InvalidAddressError, "invalid address"
    end
    l = left.split(':')
    r = right.split(':')
    rest = 8 - l.size - r.size
    if rest < 0
      return nil
    end
    (l + Array.new(rest, '0') + r).inject(0) { |i, s|
      i << 16 | s.hex
    } | addr
  end

  def addr_mask(addr)
    case @family
    when Socket::AF_INET
      return addr & IN4MASK
    when Socket::AF_INET6
      return addr & IN6MASK
    else
      raise AddressFamilyError, "unsupported address family"
    end
  end

  def _reverse
    case @family
    when Socket::AF_INET
      return (0..3).map { |i|
        (@addr >> (8 * i)) & 0xff
      }.join('.')
    when Socket::AF_INET6
      return ("%.32x" % @addr).reverse!.gsub!(/.(?!$)/, '\&.')
    else
      raise AddressFamilyError, "unsupported address family"
    end
  end

  def _to_string(addr)
    case @family
    when Socket::AF_INET
      return (0..3).map { |i|
        (addr >> (24 - 8 * i)) & 0xff
      }.join('.')
    when Socket::AF_INET6
      return (("%.32x" % addr).gsub!(/.{4}(?!$)/, '\&:'))
    else
      raise AddressFamilyError, "unsupported address family"
    end
  end

end

unless Socket.const_defined? :AF_INET6
  class Socket < BasicSocket
    # IPv6 protocol family
    AF_INET6 = Object.new
  end

  class << IPSocket
    private

    def valid_v6?(addr)
      case addr
      when IPAddr::RE_IPV6ADDRLIKE_FULL
        if $2
          $~[2,4].all? {|i| i.to_i < 256 }
        else
          true
        end
      when IPAddr::RE_IPV6ADDRLIKE_COMPRESSED
        if $4
          addr.count(':') <= 6 && $~[4,4].all? {|i| i.to_i < 256}
        else
          addr.count(':') <= 7
        end
      else
        false
      end
    end

    alias getaddress_orig getaddress

    public

    # Returns a +String+ based representation of a valid DNS hostname,
    # IPv4 or IPv6 address.
    #
    #   IPSocket.getaddress 'localhost'         #=> "::1"
    #   IPSocket.getaddress 'broadcasthost'     #=> "255.255.255.255"
    #   IPSocket.getaddress 'www.ruby-lang.org' #=> "221.186.184.68"
    #   IPSocket.getaddress 'www.ccc.de'        #=> "2a00:1328:e102:ccc0::122"
    def getaddress(s)
      if valid_v6?(s)
        s
      else
        getaddress_orig(s)
      end
    end
  end
end
lib64/ruby/2.2.0/pstore.rb000064400000035057150402106040010747 0ustar00# = PStore -- Transactional File Storage for Ruby Objects
#
# pstore.rb -
#   originally by matz
#   documentation by Kev Jackson and James Edward Gray II
#   improved by Hongli Lai
#
# See PStore for documentation.

require "digest/md5"

#
# PStore implements a file based persistence mechanism based on a Hash.  User
# code can store hierarchies of Ruby objects (values) into the data store file
# by name (keys).  An object hierarchy may be just a single object.  User code
# may later read values back from the data store or even update data, as needed.
#
# The transactional behavior ensures that any changes succeed or fail together.
# This can be used to ensure that the data store is not left in a transitory
# state, where some values were updated but others were not.
#
# Behind the scenes, Ruby objects are stored to the data store file with
# Marshal.  That carries the usual limitations.  Proc objects cannot be
# marshalled, for example.
#
# == Usage example:
#
#  require "pstore"
#
#  # a mock wiki object...
#  class WikiPage
#    def initialize( page_name, author, contents )
#      @page_name = page_name
#      @revisions = Array.new
#
#      add_revision(author, contents)
#    end
#
#    attr_reader :page_name
#
#    def add_revision( author, contents )
#      @revisions << { :created  => Time.now,
#                      :author   => author,
#                      :contents => contents }
#    end
#
#    def wiki_page_references
#      [@page_name] + @revisions.last[:contents].scan(/\b(?:[A-Z]+[a-z]+){2,}/)
#    end
#
#    # ...
#  end
#
#  # create a new page...
#  home_page = WikiPage.new( "HomePage", "James Edward Gray II",
#                            "A page about the JoysOfDocumentation..." )
#
#  # then we want to update page data and the index together, or not at all...
#  wiki = PStore.new("wiki_pages.pstore")
#  wiki.transaction do  # begin transaction; do all of this or none of it
#    # store page...
#    wiki[home_page.page_name] = home_page
#    # ensure that an index has been created...
#    wiki[:wiki_index] ||= Array.new
#    # update wiki index...
#    wiki[:wiki_index].push(*home_page.wiki_page_references)
#  end                   # commit changes to wiki data store file
#
#  ### Some time later... ###
#
#  # read wiki data...
#  wiki.transaction(true) do  # begin read-only transaction, no changes allowed
#    wiki.roots.each do |data_root_name|
#      p data_root_name
#      p wiki[data_root_name]
#    end
#  end
#
# == Transaction modes
#
# By default, file integrity is only ensured as long as the operating system
# (and the underlying hardware) doesn't raise any unexpected I/O errors. If an
# I/O error occurs while PStore is writing to its file, then the file will
# become corrupted.
#
# You can prevent this by setting <em>pstore.ultra_safe = true</em>.
# However, this results in a minor performance loss, and only works on platforms
# that support atomic file renames. Please consult the documentation for
# +ultra_safe+ for details.
#
# Needless to say, if you're storing valuable data with PStore, then you should
# backup the PStore files from time to time.
class PStore
  RDWR_ACCESS = {mode: IO::RDWR | IO::CREAT | IO::BINARY, encoding: Encoding::ASCII_8BIT}.freeze
  RD_ACCESS = {mode: IO::RDONLY | IO::BINARY, encoding: Encoding::ASCII_8BIT}.freeze
  WR_ACCESS = {mode: IO::WRONLY | IO::CREAT | IO::TRUNC | IO::BINARY, encoding: Encoding::ASCII_8BIT}.freeze

  # The error type thrown by all PStore methods.
  class Error < StandardError
  end

  # Whether PStore should do its best to prevent file corruptions, even when under
  # unlikely-to-occur error conditions such as out-of-space conditions and other
  # unusual OS filesystem errors. Setting this flag comes at the price in the form
  # of a performance loss.
  #
  # This flag only has effect on platforms on which file renames are atomic (e.g.
  # all POSIX platforms: Linux, MacOS X, FreeBSD, etc). The default value is false.
  attr_accessor :ultra_safe

  #
  # To construct a PStore object, pass in the _file_ path where you would like
  # the data to be stored.
  #
  # PStore objects are always reentrant. But if _thread_safe_ is set to true,
  # then it will become thread-safe at the cost of a minor performance hit.
  #
  def initialize(file, thread_safe = false)
    dir = File::dirname(file)
    unless File::directory? dir
      raise PStore::Error, format("directory %s does not exist", dir)
    end
    if File::exist? file and not File::readable? file
      raise PStore::Error, format("file %s not readable", file)
    end
    @filename = file
    @abort = false
    @ultra_safe = false
    @thread_safe = thread_safe
    @lock = Mutex.new
  end

  # Raises PStore::Error if the calling code is not in a PStore#transaction.
  def in_transaction
    raise PStore::Error, "not in transaction" unless @lock.locked?
  end
  #
  # Raises PStore::Error if the calling code is not in a PStore#transaction or
  # if the code is in a read-only PStore#transaction.
  #
  def in_transaction_wr
    in_transaction
    raise PStore::Error, "in read-only transaction" if @rdonly
  end
  private :in_transaction, :in_transaction_wr

  #
  # Retrieves a value from the PStore file data, by _name_.  The hierarchy of
  # Ruby objects stored under that root _name_ will be returned.
  #
  # *WARNING*:  This method is only valid in a PStore#transaction.  It will
  # raise PStore::Error if called at any other time.
  #
  def [](name)
    in_transaction
    @table[name]
  end
  #
  # This method is just like PStore#[], save that you may also provide a
  # _default_ value for the object.  In the event the specified _name_ is not
  # found in the data store, your _default_ will be returned instead.  If you do
  # not specify a default, PStore::Error will be raised if the object is not
  # found.
  #
  # *WARNING*:  This method is only valid in a PStore#transaction.  It will
  # raise PStore::Error if called at any other time.
  #
  def fetch(name, default=PStore::Error)
    in_transaction
    unless @table.key? name
      if default == PStore::Error
        raise PStore::Error, format("undefined root name `%s'", name)
      else
        return default
      end
    end
    @table[name]
  end
  #
  # Stores an individual Ruby object or a hierarchy of Ruby objects in the data
  # store file under the root _name_.  Assigning to a _name_ already in the data
  # store clobbers the old data.
  #
  # == Example:
  #
  #  require "pstore"
  #
  #  store = PStore.new("data_file.pstore")
  #  store.transaction do  # begin transaction
  #    # load some data into the store...
  #    store[:single_object] = "My data..."
  #    store[:obj_heirarchy] = { "Kev Jackson" => ["rational.rb", "pstore.rb"],
  #                              "James Gray"  => ["erb.rb", "pstore.rb"] }
  #  end                   # commit changes to data store file
  #
  # *WARNING*:  This method is only valid in a PStore#transaction and it cannot
  # be read-only.  It will raise PStore::Error if called at any other time.
  #
  def []=(name, value)
    in_transaction_wr
    @table[name] = value
  end
  #
  # Removes an object hierarchy from the data store, by _name_.
  #
  # *WARNING*:  This method is only valid in a PStore#transaction and it cannot
  # be read-only.  It will raise PStore::Error if called at any other time.
  #
  def delete(name)
    in_transaction_wr
    @table.delete name
  end

  #
  # Returns the names of all object hierarchies currently in the store.
  #
  # *WARNING*:  This method is only valid in a PStore#transaction.  It will
  # raise PStore::Error if called at any other time.
  #
  def roots
    in_transaction
    @table.keys
  end
  #
  # Returns true if the supplied _name_ is currently in the data store.
  #
  # *WARNING*:  This method is only valid in a PStore#transaction.  It will
  # raise PStore::Error if called at any other time.
  #
  def root?(name)
    in_transaction
    @table.key? name
  end
  # Returns the path to the data store file.
  def path
    @filename
  end

  #
  # Ends the current PStore#transaction, committing any changes to the data
  # store immediately.
  #
  # == Example:
  #
  #  require "pstore"
  #
  #  store = PStore.new("data_file.pstore")
  #  store.transaction do  # begin transaction
  #    # load some data into the store...
  #    store[:one] = 1
  #    store[:two] = 2
  #
  #    store.commit        # end transaction here, committing changes
  #
  #    store[:three] = 3   # this change is never reached
  #  end
  #
  # *WARNING*:  This method is only valid in a PStore#transaction.  It will
  # raise PStore::Error if called at any other time.
  #
  def commit
    in_transaction
    @abort = false
    throw :pstore_abort_transaction
  end
  #
  # Ends the current PStore#transaction, discarding any changes to the data
  # store.
  #
  # == Example:
  #
  #  require "pstore"
  #
  #  store = PStore.new("data_file.pstore")
  #  store.transaction do  # begin transaction
  #    store[:one] = 1     # this change is not applied, see below...
  #    store[:two] = 2     # this change is not applied, see below...
  #
  #    store.abort         # end transaction here, discard all changes
  #
  #    store[:three] = 3   # this change is never reached
  #  end
  #
  # *WARNING*:  This method is only valid in a PStore#transaction.  It will
  # raise PStore::Error if called at any other time.
  #
  def abort
    in_transaction
    @abort = true
    throw :pstore_abort_transaction
  end

  #
  # Opens a new transaction for the data store.  Code executed inside a block
  # passed to this method may read and write data to and from the data store
  # file.
  #
  # At the end of the block, changes are committed to the data store
  # automatically.  You may exit the transaction early with a call to either
  # PStore#commit or PStore#abort.  See those methods for details about how
  # changes are handled.  Raising an uncaught Exception in the block is
  # equivalent to calling PStore#abort.
  #
  # If _read_only_ is set to +true+, you will only be allowed to read from the
  # data store during the transaction and any attempts to change the data will
  # raise a PStore::Error.
  #
  # Note that PStore does not support nested transactions.
  #
  def transaction(read_only = false)  # :yields:  pstore
    value = nil
    if !@thread_safe
      raise PStore::Error, "nested transaction" unless @lock.try_lock
    else
      begin
        @lock.lock
      rescue ThreadError
        raise PStore::Error, "nested transaction"
      end
    end
    begin
      @rdonly = read_only
      @abort = false
      file = open_and_lock_file(@filename, read_only)
      if file
        begin
          @table, checksum, original_data_size = load_data(file, read_only)

          catch(:pstore_abort_transaction) do
            value = yield(self)
          end

          if !@abort && !read_only
            save_data(checksum, original_data_size, file)
          end
        ensure
          file.close if !file.closed?
        end
      else
        # This can only occur if read_only == true.
        @table = {}
        catch(:pstore_abort_transaction) do
          value = yield(self)
        end
      end
    ensure
      @lock.unlock
    end
    value
  end

  private
  # Constant for relieving Ruby's garbage collector.
  EMPTY_STRING = ""
  EMPTY_MARSHAL_DATA = Marshal.dump({})
  EMPTY_MARSHAL_CHECKSUM = Digest::MD5.digest(EMPTY_MARSHAL_DATA)

  #
  # Open the specified filename (either in read-only mode or in
  # read-write mode) and lock it for reading or writing.
  #
  # The opened File object will be returned. If _read_only_ is true,
  # and the file does not exist, then nil will be returned.
  #
  # All exceptions are propagated.
  #
  def open_and_lock_file(filename, read_only)
    if read_only
      begin
        file = File.new(filename, RD_ACCESS)
        begin
          file.flock(File::LOCK_SH)
          return file
        rescue
          file.close
          raise
        end
      rescue Errno::ENOENT
        return nil
      end
    else
      file = File.new(filename, RDWR_ACCESS)
      file.flock(File::LOCK_EX)
      return file
    end
  end

  # Load the given PStore file.
  # If +read_only+ is true, the unmarshalled Hash will be returned.
  # If +read_only+ is false, a 3-tuple will be returned: the unmarshalled
  # Hash, an MD5 checksum of the data, and the size of the data.
  def load_data(file, read_only)
    if read_only
      begin
        table = load(file)
        raise Error, "PStore file seems to be corrupted." unless table.is_a?(Hash)
      rescue EOFError
        # This seems to be a newly-created file.
        table = {}
      end
      table
    else
      data = file.read
      if data.empty?
        # This seems to be a newly-created file.
        table = {}
        checksum = empty_marshal_checksum
        size = empty_marshal_data.bytesize
      else
        table = load(data)
        checksum = Digest::MD5.digest(data)
        size = data.bytesize
        raise Error, "PStore file seems to be corrupted." unless table.is_a?(Hash)
      end
      data.replace(EMPTY_STRING)
      [table, checksum, size]
    end
  end

  def on_windows?
    is_windows = RUBY_PLATFORM =~ /mswin|mingw|bccwin|wince/
    self.class.__send__(:define_method, :on_windows?) do
      is_windows
    end
    is_windows
  end

  def save_data(original_checksum, original_file_size, file)
    new_data = dump(@table)

    if new_data.bytesize != original_file_size || Digest::MD5.digest(new_data) != original_checksum
      if @ultra_safe && !on_windows?
        # Windows doesn't support atomic file renames.
        save_data_with_atomic_file_rename_strategy(new_data, file)
      else
        save_data_with_fast_strategy(new_data, file)
      end
    end

    new_data.replace(EMPTY_STRING)
  end

  def save_data_with_atomic_file_rename_strategy(data, file)
    temp_filename = "#{@filename}.tmp.#{Process.pid}.#{rand 1000000}"
    temp_file = File.new(temp_filename, WR_ACCESS)
    begin
      temp_file.flock(File::LOCK_EX)
      temp_file.write(data)
      temp_file.flush
      File.rename(temp_filename, @filename)
    rescue
      File.unlink(temp_file) rescue nil
      raise
    ensure
      temp_file.close
    end
  end

  def save_data_with_fast_strategy(data, file)
    file.rewind
    file.write(data)
    file.truncate(data.bytesize)
  end


  # This method is just a wrapped around Marshal.dump
  # to allow subclass overriding used in YAML::Store.
  def dump(table)  # :nodoc:
    Marshal::dump(table)
  end

  # This method is just a wrapped around Marshal.load.
  # to allow subclass overriding used in YAML::Store.
  def load(content)  # :nodoc:
    Marshal::load(content)
  end

  def empty_marshal_data
    EMPTY_MARSHAL_DATA
  end
  def empty_marshal_checksum
    EMPTY_MARSHAL_CHECKSUM
  end
end
lib64/ruby/2.2.0/net/telnet.rb000064400000077577150402106040011531 0ustar00# = net/telnet.rb - Simple Telnet Client Library
#
# Author:: Wakou Aoyama <wakou@ruby-lang.org>
# Documentation:: William Webber and Wakou Aoyama
#
# This file holds the class Net::Telnet, which provides client-side
# telnet functionality.
#
# For documentation, see Net::Telnet.
#

require "net/protocol"
require "English"

module Net

  #
  # == Net::Telnet
  #
  # Provides telnet client functionality.
  #
  # This class also has, through delegation, all the methods of a
  # socket object (by default, a +TCPSocket+, but can be set by the
  # +Proxy+ option to <tt>new()</tt>).  This provides methods such as
  # <tt>close()</tt> to end the session and <tt>sysread()</tt> to read
  # data directly from the host, instead of via the <tt>waitfor()</tt>
  # mechanism.  Note that if you do use <tt>sysread()</tt> directly
  # when in telnet mode, you should probably pass the output through
  # <tt>preprocess()</tt> to extract telnet command sequences.
  #
  # == Overview
  #
  # The telnet protocol allows a client to login remotely to a user
  # account on a server and execute commands via a shell.  The equivalent
  # is done by creating a Net::Telnet class with the +Host+ option
  # set to your host, calling #login() with your user and password,
  # issuing one or more #cmd() calls, and then calling #close()
  # to end the session.  The #waitfor(), #print(), #puts(), and
  # #write() methods, which #cmd() is implemented on top of, are
  # only needed if you are doing something more complicated.
  #
  # A Net::Telnet object can also be used to connect to non-telnet
  # services, such as SMTP or HTTP.  In this case, you normally
  # want to provide the +Port+ option to specify the port to
  # connect to, and set the +Telnetmode+ option to false to prevent
  # the client from attempting to interpret telnet command sequences.
  # Generally, #login() will not work with other protocols, and you
  # have to handle authentication yourself.
  #
  # For some protocols, it will be possible to specify the +Prompt+
  # option once when you create the Telnet object and use #cmd() calls;
  # for others, you will have to specify the response sequence to
  # look for as the Match option to every #cmd() call, or call
  # #puts() and #waitfor() directly; for yet others, you will have
  # to use #sysread() instead of #waitfor() and parse server
  # responses yourself.
  #
  # It is worth noting that when you create a new Net::Telnet object,
  # you can supply a proxy IO channel via the Proxy option.  This
  # can be used to attach the Telnet object to other Telnet objects,
  # to already open sockets, or to any read-write IO object.  This
  # can be useful, for instance, for setting up a test fixture for
  # unit testing.
  #
  # == Examples
  #
  # === Log in and send a command, echoing all output to stdout
  #
  #   localhost = Net::Telnet::new("Host" => "localhost",
  #                                "Timeout" => 10,
  #                                "Prompt" => /[$%#>] \z/n)
  #   localhost.login("username", "password") { |c| print c }
  #   localhost.cmd("command") { |c| print c }
  #   localhost.close
  #
  #
  # === Check a POP server to see if you have mail
  #
  #   pop = Net::Telnet::new("Host" => "your_destination_host_here",
  #                          "Port" => 110,
  #                          "Telnetmode" => false,
  #                          "Prompt" => /^\+OK/n)
  #   pop.cmd("user " + "your_username_here") { |c| print c }
  #   pop.cmd("pass " + "your_password_here") { |c| print c }
  #   pop.cmd("list") { |c| print c }
  #
  # == References
  #
  # There are a large number of RFCs relevant to the Telnet protocol.
  # RFCs 854-861 define the base protocol.  For a complete listing
  # of relevant RFCs, see
  # http://www.omnifarious.org/~hopper/technical/telnet-rfc.html
  #
  class Telnet

    # :stopdoc:
    IAC   = 255.chr # "\377" # "\xff" # interpret as command
    DONT  = 254.chr # "\376" # "\xfe" # you are not to use option
    DO    = 253.chr # "\375" # "\xfd" # please, you use option
    WONT  = 252.chr # "\374" # "\xfc" # I won't use option
    WILL  = 251.chr # "\373" # "\xfb" # I will use option
    SB    = 250.chr # "\372" # "\xfa" # interpret as subnegotiation
    GA    = 249.chr # "\371" # "\xf9" # you may reverse the line
    EL    = 248.chr # "\370" # "\xf8" # erase the current line
    EC    = 247.chr # "\367" # "\xf7" # erase the current character
    AYT   = 246.chr # "\366" # "\xf6" # are you there
    AO    = 245.chr # "\365" # "\xf5" # abort output--but let prog finish
    IP    = 244.chr # "\364" # "\xf4" # interrupt process--permanently
    BREAK = 243.chr # "\363" # "\xf3" # break
    DM    = 242.chr # "\362" # "\xf2" # data mark--for connect. cleaning
    NOP   = 241.chr # "\361" # "\xf1" # nop
    SE    = 240.chr # "\360" # "\xf0" # end sub negotiation
    EOR   = 239.chr # "\357" # "\xef" # end of record (transparent mode)
    ABORT = 238.chr # "\356" # "\xee" # Abort process
    SUSP  = 237.chr # "\355" # "\xed" # Suspend process
    EOF   = 236.chr # "\354" # "\xec" # End of file
    SYNCH = 242.chr # "\362" # "\xf2" # for telfunc calls

    OPT_BINARY         =   0.chr # "\000" # "\x00" # Binary Transmission
    OPT_ECHO           =   1.chr # "\001" # "\x01" # Echo
    OPT_RCP            =   2.chr # "\002" # "\x02" # Reconnection
    OPT_SGA            =   3.chr # "\003" # "\x03" # Suppress Go Ahead
    OPT_NAMS           =   4.chr # "\004" # "\x04" # Approx Message Size Negotiation
    OPT_STATUS         =   5.chr # "\005" # "\x05" # Status
    OPT_TM             =   6.chr # "\006" # "\x06" # Timing Mark
    OPT_RCTE           =   7.chr # "\a"   # "\x07" # Remote Controlled Trans and Echo
    OPT_NAOL           =   8.chr # "\010" # "\x08" # Output Line Width
    OPT_NAOP           =   9.chr # "\t"   # "\x09" # Output Page Size
    OPT_NAOCRD         =  10.chr # "\n"   # "\x0a" # Output Carriage-Return Disposition
    OPT_NAOHTS         =  11.chr # "\v"   # "\x0b" # Output Horizontal Tab Stops
    OPT_NAOHTD         =  12.chr # "\f"   # "\x0c" # Output Horizontal Tab Disposition
    OPT_NAOFFD         =  13.chr # "\r"   # "\x0d" # Output Formfeed Disposition
    OPT_NAOVTS         =  14.chr # "\016" # "\x0e" # Output Vertical Tabstops
    OPT_NAOVTD         =  15.chr # "\017" # "\x0f" # Output Vertical Tab Disposition
    OPT_NAOLFD         =  16.chr # "\020" # "\x10" # Output Linefeed Disposition
    OPT_XASCII         =  17.chr # "\021" # "\x11" # Extended ASCII
    OPT_LOGOUT         =  18.chr # "\022" # "\x12" # Logout
    OPT_BM             =  19.chr # "\023" # "\x13" # Byte Macro
    OPT_DET            =  20.chr # "\024" # "\x14" # Data Entry Terminal
    OPT_SUPDUP         =  21.chr # "\025" # "\x15" # SUPDUP
    OPT_SUPDUPOUTPUT   =  22.chr # "\026" # "\x16" # SUPDUP Output
    OPT_SNDLOC         =  23.chr # "\027" # "\x17" # Send Location
    OPT_TTYPE          =  24.chr # "\030" # "\x18" # Terminal Type
    OPT_EOR            =  25.chr # "\031" # "\x19" # End of Record
    OPT_TUID           =  26.chr # "\032" # "\x1a" # TACACS User Identification
    OPT_OUTMRK         =  27.chr # "\e"   # "\x1b" # Output Marking
    OPT_TTYLOC         =  28.chr # "\034" # "\x1c" # Terminal Location Number
    OPT_3270REGIME     =  29.chr # "\035" # "\x1d" # Telnet 3270 Regime
    OPT_X3PAD          =  30.chr # "\036" # "\x1e" # X.3 PAD
    OPT_NAWS           =  31.chr # "\037" # "\x1f" # Negotiate About Window Size
    OPT_TSPEED         =  32.chr # " "    # "\x20" # Terminal Speed
    OPT_LFLOW          =  33.chr # "!"    # "\x21" # Remote Flow Control
    OPT_LINEMODE       =  34.chr # "\""   # "\x22" # Linemode
    OPT_XDISPLOC       =  35.chr # "#"    # "\x23" # X Display Location
    OPT_OLD_ENVIRON    =  36.chr # "$"    # "\x24" # Environment Option
    OPT_AUTHENTICATION =  37.chr # "%"    # "\x25" # Authentication Option
    OPT_ENCRYPT        =  38.chr # "&"    # "\x26" # Encryption Option
    OPT_NEW_ENVIRON    =  39.chr # "'"    # "\x27" # New Environment Option
    OPT_EXOPL          = 255.chr # "\377" # "\xff" # Extended-Options-List

    NULL = "\000"
    CR   = "\015"
    LF   = "\012"
    EOL  = CR + LF
    REVISION = '$Id: telnet.rb 47298 2014-08-27 12:10:21Z hsbt $'
    # :startdoc:

    #
    # Creates a new Net::Telnet object.
    #
    # Attempts to connect to the host (unless the Proxy option is
    # provided: see below).  If a block is provided, it is yielded
    # status messages on the attempt to connect to the server, of
    # the form:
    #
    #   Trying localhost...
    #   Connected to localhost.
    #
    # +options+ is a hash of options.  The following example lists
    # all options and their default values.
    #
    #   host = Net::Telnet::new(
    #            "Host"       => "localhost",  # default: "localhost"
    #            "Port"       => 23,           # default: 23
    #            "Binmode"    => false,        # default: false
    #            "Output_log" => "output_log", # default: nil (no output)
    #            "Dump_log"   => "dump_log",   # default: nil (no output)
    #            "Prompt"     => /[$%#>] \z/n, # default: /[$%#>] \z/n
    #            "Telnetmode" => true,         # default: true
    #            "Timeout"    => 10,           # default: 10
    #              # if ignore timeout then set "Timeout" to false.
    #            "Waittime"   => 0,            # default: 0
    #            "Proxy"      => proxy         # default: nil
    #                            # proxy is Net::Telnet or IO object
    #          )
    #
    # The options have the following meanings:
    #
    # Host:: the hostname or IP address of the host to connect to, as a String.
    #        Defaults to "localhost".
    #
    # Port:: the port to connect to.  Defaults to 23.
    #
    # Binmode:: if false (the default), newline substitution is performed.
    #           Outgoing LF is
    #           converted to CRLF, and incoming CRLF is converted to LF.  If
    #           true, this substitution is not performed.  This value can
    #           also be set with the #binmode() method.  The
    #           outgoing conversion only applies to the #puts() and #print()
    #           methods, not the #write() method.  The precise nature of
    #           the newline conversion is also affected by the telnet options
    #           SGA and BIN.
    #
    # Output_log:: the name of the file to write connection status messages
    #              and all received traffic to.  In the case of a proper
    #              Telnet session, this will include the client input as
    #              echoed by the host; otherwise, it only includes server
    #              responses.  Output is appended verbatim to this file.
    #              By default, no output log is kept.
    #
    # Dump_log:: as for Output_log, except that output is written in hexdump
    #            format (16 bytes per line as hex pairs, followed by their
    #            printable equivalent), with connection status messages
    #            preceded by '#', sent traffic preceded by '>', and
    #            received traffic preceded by '<'.  By default, not dump log
    #            is kept.
    #
    # Prompt:: a regular expression matching the host's command-line prompt
    #          sequence.  This is needed by the Telnet class to determine
    #          when the output from a command has finished and the host is
    #          ready to receive a new command.  By default, this regular
    #          expression is /[$%#>] \z/n.
    #
    # Telnetmode:: a boolean value, true by default.  In telnet mode,
    #              traffic received from the host is parsed for special
    #              command sequences, and these sequences are escaped
    #              in outgoing traffic sent using #puts() or #print()
    #              (but not #write()).  If you are using the Net::Telnet
    #              object to connect to a non-telnet service (such as
    #              SMTP or POP), this should be set to "false" to prevent
    #              undesired data corruption.  This value can also be set
    #              by the #telnetmode() method.
    #
    # Timeout:: the number of seconds to wait before timing out both the
    #           initial attempt to connect to host (in this constructor),
    #           which raises a Net::OpenTimeout, and all attempts to read data
    #           from the host, which raises a Net::ReadTimeout (in #waitfor(),
    #           #cmd(), and #login()).  The default value is 10 seconds.
    #           You can disable the timeout by setting this value to false.
    #           In this case, the connect attempt will eventually timeout
    #           on the underlying connect(2) socket call with an
    #           Errno::ETIMEDOUT error (but generally only after a few
    #           minutes), but other attempts to read data from the host
    #           will hang indefinitely if no data is forthcoming.
    #
    # Waittime:: the amount of time to wait after seeing what looks like a
    #            prompt (that is, received data that matches the Prompt
    #            option regular expression) to see if more data arrives.
    #            If more data does arrive in this time, Net::Telnet assumes
    #            that what it saw was not really a prompt.  This is to try to
    #            avoid false matches, but it can also lead to missing real
    #            prompts (if, for instance, a background process writes to
    #            the terminal soon after the prompt is displayed).  By
    #            default, set to 0, meaning not to wait for more data.
    #
    # Proxy:: a proxy object to used instead of opening a direct connection
    #         to the host.  Must be either another Net::Telnet object or
    #         an IO object.  If it is another Net::Telnet object, this
    #         instance will use that one's socket for communication.  If an
    #         IO object, it is used directly for communication.  Any other
    #         kind of object will cause an error to be raised.
    #
    def initialize(options) # :yield: mesg
      @options = options
      @options["Host"]       = "localhost"   unless @options.has_key?("Host")
      @options["Port"]       = 23            unless @options.has_key?("Port")
      @options["Prompt"]     = /[$%#>] \z/n  unless @options.has_key?("Prompt")
      @options["Timeout"]    = 10            unless @options.has_key?("Timeout")
      @options["Waittime"]   = 0             unless @options.has_key?("Waittime")
      unless @options.has_key?("Binmode")
        @options["Binmode"]    = false
      else
        unless (true == @options["Binmode"] or false == @options["Binmode"])
          raise ArgumentError, "Binmode option must be true or false"
        end
      end

      unless @options.has_key?("Telnetmode")
        @options["Telnetmode"] = true
      else
        unless (true == @options["Telnetmode"] or false == @options["Telnetmode"])
          raise ArgumentError, "Telnetmode option must be true or false"
        end
      end

      @telnet_option = { "SGA" => false, "BINARY" => false }

      if @options.has_key?("Output_log")
        @log = File.open(@options["Output_log"], 'a+')
        @log.sync = true
        @log.binmode
      end

      if @options.has_key?("Dump_log")
        @dumplog = File.open(@options["Dump_log"], 'a+')
        @dumplog.sync = true
        @dumplog.binmode
        def @dumplog.log_dump(dir, x)  # :nodoc:
          len = x.length
          addr = 0
          offset = 0
          while 0 < len
            if len < 16
              line = x[offset, len]
            else
              line = x[offset, 16]
            end
            hexvals = line.unpack('H*')[0]
            hexvals += ' ' * (32 - hexvals.length)
            hexvals = format("%s %s %s %s  " * 4, *hexvals.unpack('a2' * 16))
            line = line.gsub(/[\000-\037\177-\377]/n, '.')
            printf "%s 0x%5.5x: %s%s\n", dir, addr, hexvals, line
            addr += 16
            offset += 16
            len -= 16
          end
          print "\n"
        end
      end

      if @options.has_key?("Proxy")
        if @options["Proxy"].kind_of?(Net::Telnet)
          @sock = @options["Proxy"].sock
        elsif @options["Proxy"].kind_of?(IO)
          @sock = @options["Proxy"]
        else
          raise "Error: Proxy must be an instance of Net::Telnet or IO."
        end
      else
        message = "Trying " + @options["Host"] + "...\n"
        yield(message) if block_given?
        @log.write(message) if @options.has_key?("Output_log")
        @dumplog.log_dump('#', message) if @options.has_key?("Dump_log")

        begin
          if @options["Timeout"] == false
            @sock = TCPSocket.open(@options["Host"], @options["Port"])
          else
            Timeout.timeout(@options["Timeout"], Net::OpenTimeout) do
              @sock = TCPSocket.open(@options["Host"], @options["Port"])
            end
          end
        rescue Net::OpenTimeout
          raise Net::OpenTimeout, "timed out while opening a connection to the host"
        rescue
          @log.write($ERROR_INFO.to_s + "\n") if @options.has_key?("Output_log")
          @dumplog.log_dump('#', $ERROR_INFO.to_s + "\n") if @options.has_key?("Dump_log")
          raise
        end
        @sock.sync = true
        @sock.binmode

        message = "Connected to " + @options["Host"] + ".\n"
        yield(message) if block_given?
        @log.write(message) if @options.has_key?("Output_log")
        @dumplog.log_dump('#', message) if @options.has_key?("Dump_log")
      end

    end # initialize

    # The socket the Telnet object is using.  Note that this object becomes
    # a delegate of the Telnet object, so normally you invoke its methods
    # directly on the Telnet object.
    attr_reader :sock

    # Set telnet command interpretation on (+mode+ == true) or off
    # (+mode+ == false), or return the current value (+mode+ not
    # provided).  It should be on for true telnet sessions, off if
    # using Net::Telnet to connect to a non-telnet service such
    # as SMTP.
    def telnetmode(mode = nil)
      case mode
      when nil
        @options["Telnetmode"]
      when true, false
        @options["Telnetmode"] = mode
      else
        raise ArgumentError, "argument must be true or false, or missing"
      end
    end

    # Turn telnet command interpretation on (true) or off (false).  It
    # should be on for true telnet sessions, off if using Net::Telnet
    # to connect to a non-telnet service such as SMTP.
    def telnetmode=(mode)
      if (true == mode or false == mode)
        @options["Telnetmode"] = mode
      else
        raise ArgumentError, "argument must be true or false"
      end
    end

    # Turn newline conversion on (+mode+ == false) or off (+mode+ == true),
    # or return the current value (+mode+ is not specified).
    def binmode(mode = nil)
      case mode
      when nil
        @options["Binmode"]
      when true, false
        @options["Binmode"] = mode
      else
        raise ArgumentError, "argument must be true or false"
      end
    end

    # Turn newline conversion on (false) or off (true).
    def binmode=(mode)
      if (true == mode or false == mode)
        @options["Binmode"] = mode
      else
        raise ArgumentError, "argument must be true or false"
      end
    end

    # Preprocess received data from the host.
    #
    # Performs newline conversion and detects telnet command sequences.
    # Called automatically by #waitfor().  You should only use this
    # method yourself if you have read input directly using sysread()
    # or similar, and even then only if in telnet mode.
    def preprocess(string)
      # combine CR+NULL into CR
      string = string.gsub(/#{CR}#{NULL}/no, CR) if @options["Telnetmode"]

      # combine EOL into "\n"
      string = string.gsub(/#{EOL}/no, "\n") unless @options["Binmode"]

      # remove NULL
      string = string.gsub(/#{NULL}/no, '') unless @options["Binmode"]

      string.gsub(/#{IAC}(
                   [#{IAC}#{AO}#{AYT}#{DM}#{IP}#{NOP}]|
                   [#{DO}#{DONT}#{WILL}#{WONT}]
                     [#{OPT_BINARY}-#{OPT_NEW_ENVIRON}#{OPT_EXOPL}]|
                   #{SB}[^#{IAC}]*#{IAC}#{SE}
                 )/xno) do
        if    IAC == $1  # handle escaped IAC characters
          IAC
        elsif AYT == $1  # respond to "IAC AYT" (are you there)
          self.write("nobody here but us pigeons" + EOL)
          ''
        elsif DO[0] == $1[0]  # respond to "IAC DO x"
          if OPT_BINARY[0] == $1[1]
            @telnet_option["BINARY"] = true
            self.write(IAC + WILL + OPT_BINARY)
          else
            self.write(IAC + WONT + $1[1..1])
          end
          ''
        elsif DONT[0] == $1[0]  # respond to "IAC DON'T x" with "IAC WON'T x"
          self.write(IAC + WONT + $1[1..1])
          ''
        elsif WILL[0] == $1[0]  # respond to "IAC WILL x"
          if    OPT_BINARY[0] == $1[1]
            self.write(IAC + DO + OPT_BINARY)
          elsif OPT_ECHO[0] == $1[1]
            self.write(IAC + DO + OPT_ECHO)
          elsif OPT_SGA[0]  == $1[1]
            @telnet_option["SGA"] = true
            self.write(IAC + DO + OPT_SGA)
          else
            self.write(IAC + DONT + $1[1..1])
          end
          ''
        elsif WONT[0] == $1[0]  # respond to "IAC WON'T x"
          if    OPT_ECHO[0] == $1[1]
            self.write(IAC + DONT + OPT_ECHO)
          elsif OPT_SGA[0]  == $1[1]
            @telnet_option["SGA"] = false
            self.write(IAC + DONT + OPT_SGA)
          else
            self.write(IAC + DONT + $1[1..1])
          end
          ''
        else
          ''
        end
      end
    end # preprocess

    # Read data from the host until a certain sequence is matched.
    #
    # If a block is given, the received data will be yielded as it
    # is read in (not necessarily all in one go), or nil if EOF
    # occurs before any data is received.  Whether a block is given
    # or not, all data read will be returned in a single string, or again
    # nil if EOF occurs before any data is received.  Note that
    # received data includes the matched sequence we were looking for.
    #
    # +options+ can be either a regular expression or a hash of options.
    # If a regular expression, this specifies the data to wait for.
    # If a hash, this can specify the following options:
    #
    # Match:: a regular expression, specifying the data to wait for.
    # Prompt:: as for Match; used only if Match is not specified.
    # String:: as for Match, except a string that will be converted
    #          into a regular expression.  Used only if Match and
    #          Prompt are not specified.
    # Timeout:: the number of seconds to wait for data from the host
    #           before raising a Timeout::Error.  If set to false,
    #           no timeout will occur.  If not specified, the
    #           Timeout option value specified when this instance
    #           was created will be used, or, failing that, the
    #           default value of 10 seconds.
    # Waittime:: the number of seconds to wait after matching against
    #            the input data to see if more data arrives.  If more
    #            data arrives within this time, we will judge ourselves
    #            not to have matched successfully, and will continue
    #            trying to match.  If not specified, the Waittime option
    #            value specified when this instance was created will be
    #            used, or, failing that, the default value of 0 seconds,
    #            which means not to wait for more input.
    # FailEOF:: if true, when the remote end closes the connection then an
    #           EOFError will be raised. Otherwise, defaults to the old
    #           behaviour that the function will return whatever data
    #           has been received already, or nil if nothing was received.
    #
    def waitfor(options) # :yield: recvdata
      time_out = @options["Timeout"]
      waittime = @options["Waittime"]
      fail_eof = @options["FailEOF"]

      if options.kind_of?(Hash)
        prompt   = if options.has_key?("Match")
                     options["Match"]
                   elsif options.has_key?("Prompt")
                     options["Prompt"]
                   elsif options.has_key?("String")
                     Regexp.new( Regexp.quote(options["String"]) )
                   end
        time_out = options["Timeout"]  if options.has_key?("Timeout")
        waittime = options["Waittime"] if options.has_key?("Waittime")
        fail_eof = options["FailEOF"]  if options.has_key?("FailEOF")
      else
        prompt = options
      end

      if time_out == false
        time_out = nil
      end

      line = ''
      buf = ''
      rest = ''
      until(prompt === line and not IO::select([@sock], nil, nil, waittime))
        unless IO::select([@sock], nil, nil, time_out)
          raise Net::ReadTimeout, "timed out while waiting for more data"
        end
        begin
          c = @sock.readpartial(1024 * 1024)
          @dumplog.log_dump('<', c) if @options.has_key?("Dump_log")
          if @options["Telnetmode"]
            c = rest + c
            if Integer(c.rindex(/#{IAC}#{SE}/no) || 0) <
               Integer(c.rindex(/#{IAC}#{SB}/no) || 0)
              buf = preprocess(c[0 ... c.rindex(/#{IAC}#{SB}/no)])
              rest = c[c.rindex(/#{IAC}#{SB}/no) .. -1]
            elsif pt = c.rindex(/#{IAC}[^#{IAC}#{AO}#{AYT}#{DM}#{IP}#{NOP}]?\z/no) ||
                       c.rindex(/\r\z/no)
              buf = preprocess(c[0 ... pt])
              rest = c[pt .. -1]
            else
              buf = preprocess(c)
              rest = ''
            end
         else
           # Not Telnetmode.
           #
           # We cannot use preprocess() on this data, because that
           # method makes some Telnetmode-specific assumptions.
           buf = rest + c
           rest = ''
           unless @options["Binmode"]
             if pt = buf.rindex(/\r\z/no)
               buf = buf[0 ... pt]
               rest = buf[pt .. -1]
             end
             buf.gsub!(/#{EOL}/no, "\n")
           end
          end
          @log.print(buf) if @options.has_key?("Output_log")
          line += buf
          yield buf if block_given?
        rescue EOFError # End of file reached
          raise if fail_eof
          if line == ''
            line = nil
            yield nil if block_given?
          end
          break
        end
      end
      line
    end

    # Write +string+ to the host.
    #
    # Does not perform any conversions on +string+.  Will log +string+ to the
    # dumplog, if the Dump_log option is set.
    def write(string)
      length = string.length
      while 0 < length
        IO::select(nil, [@sock])
        @dumplog.log_dump('>', string[-length..-1]) if @options.has_key?("Dump_log")
        length -= @sock.syswrite(string[-length..-1])
      end
    end

    # Sends a string to the host.
    #
    # This does _not_ automatically append a newline to the string.  Embedded
    # newlines may be converted and telnet command sequences escaped
    # depending upon the values of telnetmode, binmode, and telnet options
    # set by the host.
    def print(string)
      string = string.gsub(/#{IAC}/no, IAC + IAC) if @options["Telnetmode"]

      if @options["Binmode"]
        self.write(string)
      else
        if @telnet_option["BINARY"] and @telnet_option["SGA"]
          # IAC WILL SGA IAC DO BIN send EOL --> CR
          self.write(string.gsub(/\n/n, CR))
        elsif @telnet_option["SGA"]
          # IAC WILL SGA send EOL --> CR+NULL
          self.write(string.gsub(/\n/n, CR + NULL))
        else
          # NONE send EOL --> CR+LF
          self.write(string.gsub(/\n/n, EOL))
        end
      end
    end

    # Sends a string to the host.
    #
    # Same as #print(), but appends a newline to the string.
    def puts(string)
      self.print(string + "\n")
    end

    # Send a command to the host.
    #
    # More exactly, sends a string to the host, and reads in all received
    # data until is sees the prompt or other matched sequence.
    #
    # If a block is given, the received data will be yielded to it as
    # it is read in.  Whether a block is given or not, the received data
    # will be return as a string.  Note that the received data includes
    # the prompt and in most cases the host's echo of our command.
    #
    # +options+ is either a String, specified the string or command to
    # send to the host; or it is a hash of options.  If a hash, the
    # following options can be specified:
    #
    # String:: the command or other string to send to the host.
    # Match:: a regular expression, the sequence to look for in
    #         the received data before returning.  If not specified,
    #         the Prompt option value specified when this instance
    #         was created will be used, or, failing that, the default
    #         prompt of /[$%#>] \z/n.
    # Timeout:: the seconds to wait for data from the host before raising
    #           a Timeout error.  If not specified, the Timeout option
    #           value specified when this instance was created will be
    #           used, or, failing that, the default value of 10 seconds.
    #
    # The command or other string will have the newline sequence appended
    # to it.
    def cmd(options) # :yield: recvdata
      match    = @options["Prompt"]
      time_out = @options["Timeout"]
      fail_eof = @options["FailEOF"]

      if options.kind_of?(Hash)
        string   = options["String"]
        match    = options["Match"]   if options.has_key?("Match")
        time_out = options["Timeout"] if options.has_key?("Timeout")
        fail_eof = options["FailEOF"] if options.has_key?("FailEOF")
      else
        string = options
      end

      self.puts(string)
      if block_given?
        waitfor({"Prompt" => match, "Timeout" => time_out, "FailEOF" => fail_eof}){|c| yield c }
      else
        waitfor({"Prompt" => match, "Timeout" => time_out, "FailEOF" => fail_eof})
      end
    end

    # Login to the host with a given username and password.
    #
    # The username and password can either be provided as two string
    # arguments in that order, or as a hash with keys "Name" and
    # "Password".
    #
    # This method looks for the strings "login" and "Password" from the
    # host to determine when to send the username and password.  If the
    # login sequence does not follow this pattern (for instance, you
    # are connecting to a service other than telnet), you will need
    # to handle login yourself.
    #
    # The password can be omitted, either by only
    # provided one String argument, which will be used as the username,
    # or by providing a has that has no "Password" key.  In this case,
    # the method will not look for the "Password:" prompt; if it is
    # sent, it will have to be dealt with by later calls.
    #
    # The method returns all data received during the login process from
    # the host, including the echoed username but not the password (which
    # the host should not echo).  If a block is passed in, this received
    # data is also yielded to the block as it is received.
    def login(options, password = nil) # :yield: recvdata
      login_prompt = /[Ll]ogin[: ]*\z/n
      password_prompt = /[Pp]ass(?:word|phrase)[: ]*\z/n
      if options.kind_of?(Hash)
        username = options["Name"]
        password = options["Password"]
        login_prompt = options["LoginPrompt"] if options["LoginPrompt"]
        password_prompt = options["PasswordPrompt"] if options["PasswordPrompt"]
      else
        username = options
      end

      if block_given?
        line = waitfor(login_prompt){|c| yield c }
        if password
          line += cmd({"String" => username,
                       "Match" => password_prompt}){|c| yield c }
          line += cmd(password){|c| yield c }
        else
          line += cmd(username){|c| yield c }
        end
      else
        line = waitfor(login_prompt)
        if password
          line += cmd({"String" => username,
                       "Match" => password_prompt})
          line += cmd(password)
        else
          line += cmd(username)
        end
      end
      line
    end

    # Closes the connection
    def close
      @sock.close
    end

  end  # class Telnet
end  # module Net

lib64/ruby/2.2.0/net/protocol.rb000064400000020413150402106040012050 0ustar00#
# = net/protocol.rb
#
#--
# Copyright (c) 1999-2004 Yukihiro Matsumoto
# Copyright (c) 1999-2004 Minero Aoki
#
# written and maintained by Minero Aoki <aamine@loveruby.net>
#
# This program is free software. You can re-distribute and/or
# modify this program under the same terms as Ruby itself,
# Ruby Distribute License or GNU General Public License.
#
# $Id: protocol.rb 46060 2014-05-23 12:36:30Z nobu $
#++
#
# WARNING: This file is going to remove.
# Do not rely on the implementation written in this file.
#

require 'socket'
require 'timeout'

module Net # :nodoc:

  class Protocol   #:nodoc: internal use only
    private
    def Protocol.protocol_param(name, val)
      module_eval(<<-End, __FILE__, __LINE__ + 1)
        def #{name}
          #{val}
        end
      End
    end
  end


  class ProtocolError          < StandardError; end
  class ProtoSyntaxError       < ProtocolError; end
  class ProtoFatalError        < ProtocolError; end
  class ProtoUnknownError      < ProtocolError; end
  class ProtoServerError       < ProtocolError; end
  class ProtoAuthError         < ProtocolError; end
  class ProtoCommandError      < ProtocolError; end
  class ProtoRetriableError    < ProtocolError; end
  ProtocRetryError = ProtoRetriableError

  ##
  # OpenTimeout, a subclass of Timeout::Error, is raised if a connection cannot
  # be created within the open_timeout.

  class OpenTimeout            < Timeout::Error; end

  ##
  # ReadTimeout, a subclass of Timeout::Error, is raised if a chunk of the
  # response cannot be read within the read_timeout.

  class ReadTimeout            < Timeout::Error; end


  class BufferedIO   #:nodoc: internal use only
    def initialize(io)
      @io = io
      @read_timeout = 60
      @continue_timeout = nil
      @debug_output = nil
      @rbuf = ''
    end

    attr_reader :io
    attr_accessor :read_timeout
    attr_accessor :continue_timeout
    attr_accessor :debug_output

    def inspect
      "#<#{self.class} io=#{@io}>"
    end

    def eof?
      @io.eof?
    end

    def closed?
      @io.closed?
    end

    def close
      @io.close
    end

    #
    # Read
    #

    public

    def read(len, dest = '', ignore_eof = false)
      LOG "reading #{len} bytes..."
      read_bytes = 0
      begin
        while read_bytes + @rbuf.size < len
          dest << (s = rbuf_consume(@rbuf.size))
          read_bytes += s.size
          rbuf_fill
        end
        dest << (s = rbuf_consume(len - read_bytes))
        read_bytes += s.size
      rescue EOFError
        raise unless ignore_eof
      end
      LOG "read #{read_bytes} bytes"
      dest
    end

    def read_all(dest = '')
      LOG 'reading all...'
      read_bytes = 0
      begin
        while true
          dest << (s = rbuf_consume(@rbuf.size))
          read_bytes += s.size
          rbuf_fill
        end
      rescue EOFError
        ;
      end
      LOG "read #{read_bytes} bytes"
      dest
    end

    def readuntil(terminator, ignore_eof = false)
      begin
        until idx = @rbuf.index(terminator)
          rbuf_fill
        end
        return rbuf_consume(idx + terminator.size)
      rescue EOFError
        raise unless ignore_eof
        return rbuf_consume(@rbuf.size)
      end
    end

    def readline
      readuntil("\n").chop
    end

    private

    BUFSIZE = 1024 * 16

    def rbuf_fill
      begin
        @rbuf << @io.read_nonblock(BUFSIZE)
      rescue IO::WaitReadable
        if IO.select([@io], nil, nil, @read_timeout)
          retry
        else
          raise Net::ReadTimeout
        end
      rescue IO::WaitWritable
        # OpenSSL::Buffering#read_nonblock may fail with IO::WaitWritable.
        # http://www.openssl.org/support/faq.html#PROG10
        if IO.select(nil, [@io], nil, @read_timeout)
          retry
        else
          raise Net::ReadTimeout
        end
      end
    end

    def rbuf_consume(len)
      s = @rbuf.slice!(0, len)
      @debug_output << %Q[-> #{s.dump}\n] if @debug_output
      s
    end

    #
    # Write
    #

    public

    def write(str)
      writing {
        write0 str
      }
    end

    alias << write

    def writeline(str)
      writing {
        write0 str + "\r\n"
      }
    end

    private

    def writing
      @written_bytes = 0
      @debug_output << '<- ' if @debug_output
      yield
      @debug_output << "\n" if @debug_output
      bytes = @written_bytes
      @written_bytes = nil
      bytes
    end

    def write0(str)
      @debug_output << str.dump if @debug_output
      len = @io.write(str)
      @written_bytes += len
      len
    end

    #
    # Logging
    #

    private

    def LOG_off
      @save_debug_out = @debug_output
      @debug_output = nil
    end

    def LOG_on
      @debug_output = @save_debug_out
    end

    def LOG(msg)
      return unless @debug_output
      @debug_output << msg + "\n"
    end
  end


  class InternetMessageIO < BufferedIO   #:nodoc: internal use only
    def initialize(io)
      super
      @wbuf = nil
    end

    #
    # Read
    #

    def each_message_chunk
      LOG 'reading message...'
      LOG_off()
      read_bytes = 0
      while (line = readuntil("\r\n")) != ".\r\n"
        read_bytes += line.size
        yield line.sub(/\A\./, '')
      end
      LOG_on()
      LOG "read message (#{read_bytes} bytes)"
    end

    # *library private* (cannot handle 'break')
    def each_list_item
      while (str = readuntil("\r\n")) != ".\r\n"
        yield str.chop
      end
    end

    def write_message_0(src)
      prev = @written_bytes
      each_crlf_line(src) do |line|
        write0 dot_stuff(line)
      end
      @written_bytes - prev
    end

    #
    # Write
    #

    def write_message(src)
      LOG "writing message from #{src.class}"
      LOG_off()
      len = writing {
        using_each_crlf_line {
          write_message_0 src
        }
      }
      LOG_on()
      LOG "wrote #{len} bytes"
      len
    end

    def write_message_by_block(&block)
      LOG 'writing message from block'
      LOG_off()
      len = writing {
        using_each_crlf_line {
          begin
            block.call(WriteAdapter.new(self, :write_message_0))
          rescue LocalJumpError
            # allow `break' from writer block
          end
        }
      }
      LOG_on()
      LOG "wrote #{len} bytes"
      len
    end

    private

    def dot_stuff(s)
      s.sub(/\A\./, '..')
    end

    def using_each_crlf_line
      @wbuf = ''
      yield
      if not @wbuf.empty?   # unterminated last line
        write0 dot_stuff(@wbuf.chomp) + "\r\n"
      elsif @written_bytes == 0   # empty src
        write0 "\r\n"
      end
      write0 ".\r\n"
      @wbuf = nil
    end

    def each_crlf_line(src)
      buffer_filling(@wbuf, src) do
        while line = @wbuf.slice!(/\A[^\r\n]*(?:\n|\r(?:\n|(?!\z)))/)
          yield line.chomp("\n") + "\r\n"
        end
      end
    end

    def buffer_filling(buf, src)
      case src
      when String    # for speeding up.
        0.step(src.size - 1, 1024) do |i|
          buf << src[i, 1024]
          yield
        end
      when File    # for speeding up.
        while s = src.read(1024)
          buf << s
          yield
        end
      else    # generic reader
        src.each do |str|
          buf << str
          yield if buf.size > 1024
        end
        yield unless buf.empty?
      end
    end
  end


  #
  # The writer adapter class
  #
  class WriteAdapter
    def initialize(socket, method)
      @socket = socket
      @method_id = method
    end

    def inspect
      "#<#{self.class} socket=#{@socket.inspect}>"
    end

    def write(str)
      @socket.__send__(@method_id, str)
    end

    alias print write

    def <<(str)
      write str
      self
    end

    def puts(str = '')
      write str.chomp("\n") + "\n"
    end

    def printf(*args)
      write sprintf(*args)
    end
  end


  class ReadAdapter   #:nodoc: internal use only
    def initialize(block)
      @block = block
    end

    def inspect
      "#<#{self.class}>"
    end

    def <<(str)
      call_block(str, &@block) if @block
    end

    private

    # This method is needed because @block must be called by yield,
    # not Proc#call.  You can see difference when using `break' in
    # the block.
    def call_block(str)
      yield str
    end
  end


  module NetPrivate   #:nodoc: obsolete
    Socket = ::Net::InternetMessageIO
  end

end   # module Net
lib64/ruby/2.2.0/net/https.rb000064400000000760150402106040011354 0ustar00=begin

= net/https -- SSL/TLS enhancement for Net::HTTP.

  This file has been merged with net/http.  There is no longer any need to
  require 'net/https' to use HTTPS.

  See Net::HTTP for details on how to make HTTPS connections.

== Info
  'OpenSSL for Ruby 2' project
  Copyright (C) 2001 GOTOU Yuuzou <gotoyuzo@notwork.org>
  All rights reserved.

== Licence
  This program is licenced under the same licence as Ruby.
  (See the file 'LICENCE'.)

=end

require 'net/http'
require 'openssl'
lib64/ruby/2.2.0/net/pop.rb000064400000065060150402106040011014 0ustar00# = net/pop.rb
#
# Copyright (c) 1999-2007 Yukihiro Matsumoto.
#
# Copyright (c) 1999-2007 Minero Aoki.
#
# Written & maintained by Minero Aoki <aamine@loveruby.net>.
#
# Documented by William Webber and Minero Aoki.
#
# This program is free software. You can re-distribute and/or
# modify this program under the same terms as Ruby itself,
# Ruby Distribute License.
#
# NOTE: You can find Japanese version of this document at:
# http://www.ruby-lang.org/ja/man/html/net_pop.html
#
#   $Id: pop.rb 44164 2013-12-13 02:38:55Z a_matsuda $
#
# See Net::POP3 for documentation.
#

require 'net/protocol'
require 'digest/md5'
require 'timeout'

begin
  require "openssl"
rescue LoadError
end

module Net

  # Non-authentication POP3 protocol error
  # (reply code "-ERR", except authentication).
  class POPError < ProtocolError; end

  # POP3 authentication error.
  class POPAuthenticationError < ProtoAuthError; end

  # Unexpected response from the server.
  class POPBadResponse < POPError; end

  #
  # == What is This Library?
  #
  # This library provides functionality for retrieving
  # email via POP3, the Post Office Protocol version 3. For details
  # of POP3, see [RFC1939] (http://www.ietf.org/rfc/rfc1939.txt).
  #
  # == Examples
  #
  # === Retrieving Messages
  #
  # This example retrieves messages from the server and deletes them
  # on the server.
  #
  # Messages are written to files named 'inbox/1', 'inbox/2', ....
  # Replace 'pop.example.com' with your POP3 server address, and
  # 'YourAccount' and 'YourPassword' with the appropriate account
  # details.
  #
  #     require 'net/pop'
  #
  #     pop = Net::POP3.new('pop.example.com')
  #     pop.start('YourAccount', 'YourPassword')             # (1)
  #     if pop.mails.empty?
  #       puts 'No mail.'
  #     else
  #       i = 0
  #       pop.each_mail do |m|   # or "pop.mails.each ..."   # (2)
  #         File.open("inbox/#{i}", 'w') do |f|
  #           f.write m.pop
  #         end
  #         m.delete
  #         i += 1
  #       end
  #       puts "#{pop.mails.size} mails popped."
  #     end
  #     pop.finish                                           # (3)
  #
  # 1. Call Net::POP3#start and start POP session.
  # 2. Access messages by using POP3#each_mail and/or POP3#mails.
  # 3. Close POP session by calling POP3#finish or use the block form of #start.
  #
  # === Shortened Code
  #
  # The example above is very verbose. You can shorten the code by using
  # some utility methods. First, the block form of Net::POP3.start can
  # be used instead of POP3.new, POP3#start and POP3#finish.
  #
  #     require 'net/pop'
  #
  #     Net::POP3.start('pop.example.com', 110,
  #                     'YourAccount', 'YourPassword') do |pop|
  #       if pop.mails.empty?
  #         puts 'No mail.'
  #       else
  #         i = 0
  #         pop.each_mail do |m|   # or "pop.mails.each ..."
  #           File.open("inbox/#{i}", 'w') do |f|
  #             f.write m.pop
  #           end
  #           m.delete
  #           i += 1
  #         end
  #         puts "#{pop.mails.size} mails popped."
  #       end
  #     end
  #
  # POP3#delete_all is an alternative for #each_mail and #delete.
  #
  #     require 'net/pop'
  #
  #     Net::POP3.start('pop.example.com', 110,
  #                     'YourAccount', 'YourPassword') do |pop|
  #       if pop.mails.empty?
  #         puts 'No mail.'
  #       else
  #         i = 1
  #         pop.delete_all do |m|
  #           File.open("inbox/#{i}", 'w') do |f|
  #             f.write m.pop
  #           end
  #           i += 1
  #         end
  #       end
  #     end
  #
  # And here is an even shorter example.
  #
  #     require 'net/pop'
  #
  #     i = 0
  #     Net::POP3.delete_all('pop.example.com', 110,
  #                          'YourAccount', 'YourPassword') do |m|
  #       File.open("inbox/#{i}", 'w') do |f|
  #         f.write m.pop
  #       end
  #       i += 1
  #     end
  #
  # === Memory Space Issues
  #
  # All the examples above get each message as one big string.
  # This example avoids this.
  #
  #     require 'net/pop'
  #
  #     i = 1
  #     Net::POP3.delete_all('pop.example.com', 110,
  #                          'YourAccount', 'YourPassword') do |m|
  #       File.open("inbox/#{i}", 'w') do |f|
  #         m.pop do |chunk|    # get a message little by little.
  #           f.write chunk
  #         end
  #         i += 1
  #       end
  #     end
  #
  # === Using APOP
  #
  # The net/pop library supports APOP authentication.
  # To use APOP, use the Net::APOP class instead of the Net::POP3 class.
  # You can use the utility method, Net::POP3.APOP(). For example:
  #
  #     require 'net/pop'
  #
  #     # Use APOP authentication if $isapop == true
  #     pop = Net::POP3.APOP($is_apop).new('apop.example.com', 110)
  #     pop.start(YourAccount', 'YourPassword') do |pop|
  #       # Rest of the code is the same.
  #     end
  #
  # === Fetch Only Selected Mail Using 'UIDL' POP Command
  #
  # If your POP server provides UIDL functionality,
  # you can grab only selected mails from the POP server.
  # e.g.
  #
  #     def need_pop?( id )
  #       # determine if we need pop this mail...
  #     end
  #
  #     Net::POP3.start('pop.example.com', 110,
  #                     'Your account', 'Your password') do |pop|
  #       pop.mails.select { |m| need_pop?(m.unique_id) }.each do |m|
  #         do_something(m.pop)
  #       end
  #     end
  #
  # The POPMail#unique_id() method returns the unique-id of the message as a
  # String. Normally the unique-id is a hash of the message.
  #
  class POP3 < Protocol

    # svn revision of this library
    Revision = %q$Revision: 44164 $.split[1]

    #
    # Class Parameters
    #

    # returns the port for POP3
    def POP3.default_port
      default_pop3_port()
    end

    # The default port for POP3 connections, port 110
    def POP3.default_pop3_port
      110
    end

    # The default port for POP3S connections, port 995
    def POP3.default_pop3s_port
      995
    end

    def POP3.socket_type   #:nodoc: obsolete
      Net::InternetMessageIO
    end

    #
    # Utilities
    #

    # Returns the APOP class if +isapop+ is true; otherwise, returns
    # the POP class.  For example:
    #
    #     # Example 1
    #     pop = Net::POP3::APOP($is_apop).new(addr, port)
    #
    #     # Example 2
    #     Net::POP3::APOP($is_apop).start(addr, port) do |pop|
    #       ....
    #     end
    #
    def POP3.APOP(isapop)
      isapop ? APOP : POP3
    end

    # Starts a POP3 session and iterates over each POPMail object,
    # yielding it to the +block+.
    # This method is equivalent to:
    #
    #     Net::POP3.start(address, port, account, password) do |pop|
    #       pop.each_mail do |m|
    #         yield m
    #       end
    #     end
    #
    # This method raises a POPAuthenticationError if authentication fails.
    #
    # === Example
    #
    #     Net::POP3.foreach('pop.example.com', 110,
    #                       'YourAccount', 'YourPassword') do |m|
    #       file.write m.pop
    #       m.delete if $DELETE
    #     end
    #
    def POP3.foreach(address, port = nil,
                     account = nil, password = nil,
                     isapop = false, &block)  # :yields: message
      start(address, port, account, password, isapop) {|pop|
        pop.each_mail(&block)
      }
    end

    # Starts a POP3 session and deletes all messages on the server.
    # If a block is given, each POPMail object is yielded to it before
    # being deleted.
    #
    # This method raises a POPAuthenticationError if authentication fails.
    #
    # === Example
    #
    #     Net::POP3.delete_all('pop.example.com', 110,
    #                          'YourAccount', 'YourPassword') do |m|
    #       file.write m.pop
    #     end
    #
    def POP3.delete_all(address, port = nil,
                        account = nil, password = nil,
                        isapop = false, &block)
      start(address, port, account, password, isapop) {|pop|
        pop.delete_all(&block)
      }
    end

    # Opens a POP3 session, attempts authentication, and quits.
    #
    # This method raises POPAuthenticationError if authentication fails.
    #
    # === Example: normal POP3
    #
    #     Net::POP3.auth_only('pop.example.com', 110,
    #                         'YourAccount', 'YourPassword')
    #
    # === Example: APOP
    #
    #     Net::POP3.auth_only('pop.example.com', 110,
    #                         'YourAccount', 'YourPassword', true)
    #
    def POP3.auth_only(address, port = nil,
                       account = nil, password = nil,
                       isapop = false)
      new(address, port, isapop).auth_only account, password
    end

    # Starts a pop3 session, attempts authentication, and quits.
    # This method must not be called while POP3 session is opened.
    # This method raises POPAuthenticationError if authentication fails.
    def auth_only(account, password)
      raise IOError, 'opening previously opened POP session' if started?
      start(account, password) {
        ;
      }
    end

    #
    # SSL
    #

    @ssl_params = nil

    # :call-seq:
    #    Net::POP.enable_ssl(params = {})
    #
    # Enable SSL for all new instances.
    # +params+ is passed to OpenSSL::SSLContext#set_params.
    def POP3.enable_ssl(*args)
      @ssl_params = create_ssl_params(*args)
    end

    # Constructs proper parameters from arguments
    def POP3.create_ssl_params(verify_or_params = {}, certs = nil)
      begin
        params = verify_or_params.to_hash
      rescue NoMethodError
        params = {}
        params[:verify_mode] = verify_or_params
        if certs
          if File.file?(certs)
            params[:ca_file] = certs
          elsif File.directory?(certs)
            params[:ca_path] = certs
          end
        end
      end
      return params
    end

    # Disable SSL for all new instances.
    def POP3.disable_ssl
      @ssl_params = nil
    end

    # returns the SSL Parameters
    #
    # see also POP3.enable_ssl
    def POP3.ssl_params
      return @ssl_params
    end

    # returns +true+ if POP3.ssl_params is set
    def POP3.use_ssl?
      return !@ssl_params.nil?
    end

    # returns whether verify_mode is enable from POP3.ssl_params
    def POP3.verify
      return @ssl_params[:verify_mode]
    end

    # returns the :ca_file or :ca_path from POP3.ssl_params
    def POP3.certs
      return @ssl_params[:ca_file] || @ssl_params[:ca_path]
    end

    #
    # Session management
    #

    # Creates a new POP3 object and open the connection.  Equivalent to
    #
    #   Net::POP3.new(address, port, isapop).start(account, password)
    #
    # If +block+ is provided, yields the newly-opened POP3 object to it,
    # and automatically closes it at the end of the session.
    #
    # === Example
    #
    #    Net::POP3.start(addr, port, account, password) do |pop|
    #      pop.each_mail do |m|
    #        file.write m.pop
    #        m.delete
    #      end
    #    end
    #
    def POP3.start(address, port = nil,
                   account = nil, password = nil,
                   isapop = false, &block)   # :yield: pop
      new(address, port, isapop).start(account, password, &block)
    end

    # Creates a new POP3 object.
    #
    # +address+ is the hostname or ip address of your POP3 server.
    #
    # The optional +port+ is the port to connect to.
    #
    # The optional +isapop+ specifies whether this connection is going
    # to use APOP authentication; it defaults to +false+.
    #
    # This method does *not* open the TCP connection.
    def initialize(addr, port = nil, isapop = false)
      @address = addr
      @ssl_params = POP3.ssl_params
      @port = port
      @apop = isapop

      @command = nil
      @socket = nil
      @started = false
      @open_timeout = 30
      @read_timeout = 60
      @debug_output = nil

      @mails = nil
      @n_mails = nil
      @n_bytes = nil
    end

    # Does this instance use APOP authentication?
    def apop?
      @apop
    end

    # does this instance use SSL?
    def use_ssl?
      return !@ssl_params.nil?
    end

    # :call-seq:
    #    Net::POP#enable_ssl(params = {})
    #
    # Enables SSL for this instance.  Must be called before the connection is
    # established to have any effect.
    # +params[:port]+ is port to establish the SSL connection on; Defaults to 995.
    # +params+ (except :port) is passed to OpenSSL::SSLContext#set_params.
    def enable_ssl(verify_or_params = {}, certs = nil, port = nil)
      begin
        @ssl_params = verify_or_params.to_hash.dup
        @port = @ssl_params.delete(:port) || @port
      rescue NoMethodError
        @ssl_params = POP3.create_ssl_params(verify_or_params, certs)
        @port = port || @port
      end
    end

    # Disable SSL for all new instances.
    def disable_ssl
      @ssl_params = nil
    end

    # Provide human-readable stringification of class state.
    def inspect
      "#<#{self.class} #{@address}:#{@port} open=#{@started}>"
    end

    # *WARNING*: This method causes a serious security hole.
    # Use this method only for debugging.
    #
    # Set an output stream for debugging.
    #
    # === Example
    #
    #   pop = Net::POP.new(addr, port)
    #   pop.set_debug_output $stderr
    #   pop.start(account, passwd) do |pop|
    #     ....
    #   end
    #
    def set_debug_output(arg)
      @debug_output = arg
    end

    # The address to connect to.
    attr_reader :address

    # The port number to connect to.
    def port
      return @port || (use_ssl? ? POP3.default_pop3s_port : POP3.default_pop3_port)
    end

    # Seconds to wait until a connection is opened.
    # If the POP3 object cannot open a connection within this time,
    # it raises a Net::OpenTimeout exception. The default value is 30 seconds.
    attr_accessor :open_timeout

    # Seconds to wait until reading one block (by one read(1) call).
    # If the POP3 object cannot complete a read() within this time,
    # it raises a Net::ReadTimeout exception. The default value is 60 seconds.
    attr_reader :read_timeout

    # Set the read timeout.
    def read_timeout=(sec)
      @command.socket.read_timeout = sec if @command
      @read_timeout = sec
    end

    # +true+ if the POP3 session has started.
    def started?
      @started
    end

    alias active? started?   #:nodoc: obsolete

    # Starts a POP3 session.
    #
    # When called with block, gives a POP3 object to the block and
    # closes the session after block call finishes.
    #
    # This method raises a POPAuthenticationError if authentication fails.
    def start(account, password) # :yield: pop
      raise IOError, 'POP session already started' if @started
      if block_given?
        begin
          do_start account, password
          return yield(self)
        ensure
          do_finish
        end
      else
        do_start account, password
        return self
      end
    end

    # internal method for Net::POP3.start
    def do_start(account, password) # :nodoc:
      s = Timeout.timeout(@open_timeout, Net::OpenTimeout) do
        TCPSocket.open(@address, port)
      end
      if use_ssl?
        raise 'openssl library not installed' unless defined?(OpenSSL)
        context = OpenSSL::SSL::SSLContext.new
        context.set_params(@ssl_params)
        s = OpenSSL::SSL::SSLSocket.new(s, context)
        s.sync_close = true
        s.connect
        if context.verify_mode != OpenSSL::SSL::VERIFY_NONE
          s.post_connection_check(@address)
        end
      end
      @socket = InternetMessageIO.new(s)
      logging "POP session started: #{@address}:#{@port} (#{@apop ? 'APOP' : 'POP'})"
      @socket.read_timeout = @read_timeout
      @socket.debug_output = @debug_output
      on_connect
      @command = POP3Command.new(@socket)
      if apop?
        @command.apop account, password
      else
        @command.auth account, password
      end
      @started = true
    ensure
      # Authentication failed, clean up connection.
      unless @started
        s.close if s and not s.closed?
        @socket = nil
        @command = nil
      end
    end
    private :do_start

    # Does nothing
    def on_connect # :nodoc:
    end
    private :on_connect

    # Finishes a POP3 session and closes TCP connection.
    def finish
      raise IOError, 'POP session not yet started' unless started?
      do_finish
    end

    # nil's out the:
    # - mails
    # - number counter for mails
    # - number counter for bytes
    # - quits the current command, if any
    def do_finish # :nodoc:
      @mails = nil
      @n_mails = nil
      @n_bytes = nil
      @command.quit if @command
    ensure
      @started = false
      @command = nil
      @socket.close if @socket and not @socket.closed?
      @socket = nil
    end
    private :do_finish

    # Returns the current command.
    #
    # Raises IOError if there is no active socket
    def command # :nodoc:
      raise IOError, 'POP session not opened yet' \
                                      if not @socket or @socket.closed?
      @command
    end
    private :command

    #
    # POP protocol wrapper
    #

    # Returns the number of messages on the POP server.
    def n_mails
      return @n_mails if @n_mails
      @n_mails, @n_bytes = command().stat
      @n_mails
    end

    # Returns the total size in bytes of all the messages on the POP server.
    def n_bytes
      return @n_bytes if @n_bytes
      @n_mails, @n_bytes = command().stat
      @n_bytes
    end

    # Returns an array of Net::POPMail objects, representing all the
    # messages on the server.  This array is renewed when the session
    # restarts; otherwise, it is fetched from the server the first time
    # this method is called (directly or indirectly) and cached.
    #
    # This method raises a POPError if an error occurs.
    def mails
      return @mails.dup if @mails
      if n_mails() == 0
        # some popd raises error for LIST on the empty mailbox.
        @mails = []
        return []
      end

      @mails = command().list.map {|num, size|
        POPMail.new(num, size, self, command())
      }
      @mails.dup
    end

    # Yields each message to the passed-in block in turn.
    # Equivalent to:
    #
    #   pop3.mails.each do |popmail|
    #     ....
    #   end
    #
    # This method raises a POPError if an error occurs.
    def each_mail(&block)  # :yield: message
      mails().each(&block)
    end

    alias each each_mail

    # Deletes all messages on the server.
    #
    # If called with a block, yields each message in turn before deleting it.
    #
    # === Example
    #
    #     n = 1
    #     pop.delete_all do |m|
    #       File.open("inbox/#{n}") do |f|
    #         f.write m.pop
    #       end
    #       n += 1
    #     end
    #
    # This method raises a POPError if an error occurs.
    #
    def delete_all # :yield: message
      mails().each do |m|
        yield m if block_given?
        m.delete unless m.deleted?
      end
    end

    # Resets the session.  This clears all "deleted" marks from messages.
    #
    # This method raises a POPError if an error occurs.
    def reset
      command().rset
      mails().each do |m|
        m.instance_eval {
          @deleted = false
        }
      end
    end

    def set_all_uids   #:nodoc: internal use only (called from POPMail#uidl)
      uidl = command().uidl
      @mails.each {|m| m.uid = uidl[m.number] }
    end

    # debugging output for +msg+
    def logging(msg)
      @debug_output << msg + "\n" if @debug_output
    end

  end   # class POP3

  # class aliases
  POP = POP3 # :nodoc:
  POPSession  = POP3 # :nodoc:
  POP3Session = POP3 # :nodoc:

  #
  # This class is equivalent to POP3, except that it uses APOP authentication.
  #
  class APOP < POP3
    # Always returns true.
    def apop?
      true
    end
  end

  # class aliases
  APOPSession = APOP

  #
  # This class represents a message which exists on the POP server.
  # Instances of this class are created by the POP3 class; they should
  # not be directly created by the user.
  #
  class POPMail

    def initialize(num, len, pop, cmd)   #:nodoc:
      @number = num
      @length = len
      @pop = pop
      @command = cmd
      @deleted = false
      @uid = nil
    end

    # The sequence number of the message on the server.
    attr_reader :number

    # The length of the message in octets.
    attr_reader :length
    alias size length

    # Provide human-readable stringification of class state.
    def inspect
      "#<#{self.class} #{@number}#{@deleted ? ' deleted' : ''}>"
    end

    #
    # This method fetches the message.  If called with a block, the
    # message is yielded to the block one chunk at a time.  If called
    # without a block, the message is returned as a String.  The optional
    # +dest+ argument will be prepended to the returned String; this
    # argument is essentially obsolete.
    #
    # === Example without block
    #
    #     POP3.start('pop.example.com', 110,
    #                'YourAccount, 'YourPassword') do |pop|
    #       n = 1
    #       pop.mails.each do |popmail|
    #         File.open("inbox/#{n}", 'w') do |f|
    #           f.write popmail.pop
    #         end
    #         popmail.delete
    #         n += 1
    #       end
    #     end
    #
    # === Example with block
    #
    #     POP3.start('pop.example.com', 110,
    #                'YourAccount, 'YourPassword') do |pop|
    #       n = 1
    #       pop.mails.each do |popmail|
    #         File.open("inbox/#{n}", 'w') do |f|
    #           popmail.pop do |chunk|            ####
    #             f.write chunk
    #           end
    #         end
    #         n += 1
    #       end
    #     end
    #
    # This method raises a POPError if an error occurs.
    #
    def pop( dest = '', &block ) # :yield: message_chunk
      if block_given?
        @command.retr(@number, &block)
        nil
      else
        @command.retr(@number) do |chunk|
          dest << chunk
        end
        dest
      end
    end

    alias all pop    #:nodoc: obsolete
    alias mail pop   #:nodoc: obsolete

    # Fetches the message header and +lines+ lines of body.
    #
    # The optional +dest+ argument is obsolete.
    #
    # This method raises a POPError if an error occurs.
    def top(lines, dest = '')
      @command.top(@number, lines) do |chunk|
        dest << chunk
      end
      dest
    end

    # Fetches the message header.
    #
    # The optional +dest+ argument is obsolete.
    #
    # This method raises a POPError if an error occurs.
    def header(dest = '')
      top(0, dest)
    end

    # Marks a message for deletion on the server.  Deletion does not
    # actually occur until the end of the session; deletion may be
    # cancelled for _all_ marked messages by calling POP3#reset().
    #
    # This method raises a POPError if an error occurs.
    #
    # === Example
    #
    #     POP3.start('pop.example.com', 110,
    #                'YourAccount, 'YourPassword') do |pop|
    #       n = 1
    #       pop.mails.each do |popmail|
    #         File.open("inbox/#{n}", 'w') do |f|
    #           f.write popmail.pop
    #         end
    #         popmail.delete         ####
    #         n += 1
    #       end
    #     end
    #
    def delete
      @command.dele @number
      @deleted = true
    end

    alias delete! delete    #:nodoc: obsolete

    # True if the mail has been deleted.
    def deleted?
      @deleted
    end

    # Returns the unique-id of the message.
    # Normally the unique-id is a hash string of the message.
    #
    # This method raises a POPError if an error occurs.
    def unique_id
      return @uid if @uid
      @pop.set_all_uids
      @uid
    end

    alias uidl unique_id

    def uid=(uid)   #:nodoc: internal use only
      @uid = uid
    end

  end   # class POPMail


  class POP3Command   #:nodoc: internal use only

    def initialize(sock)
      @socket = sock
      @error_occurred = false
      res = check_response(critical { recv_response() })
      @apop_stamp = res.slice(/<[!-~]+@[!-~]+>/)
    end

    attr_reader :socket

    def inspect
      "#<#{self.class} socket=#{@socket}>"
    end

    def auth(account, password)
      check_response_auth(critical {
        check_response_auth(get_response('USER %s', account))
        get_response('PASS %s', password)
      })
    end

    def apop(account, password)
      raise POPAuthenticationError, 'not APOP server; cannot login' \
                                                      unless @apop_stamp
      check_response_auth(critical {
        get_response('APOP %s %s',
                     account,
                     Digest::MD5.hexdigest(@apop_stamp + password))
      })
    end

    def list
      critical {
        getok 'LIST'
        list = []
        @socket.each_list_item do |line|
          m = /\A(\d+)[ \t]+(\d+)/.match(line) or
                  raise POPBadResponse, "bad response: #{line}"
          list.push  [m[1].to_i, m[2].to_i]
        end
        return list
      }
    end

    def stat
      res = check_response(critical { get_response('STAT') })
      m = /\A\+OK\s+(\d+)\s+(\d+)/.match(res) or
              raise POPBadResponse, "wrong response format: #{res}"
      [m[1].to_i, m[2].to_i]
    end

    def rset
      check_response(critical { get_response('RSET') })
    end

    def top(num, lines = 0, &block)
      critical {
        getok('TOP %d %d', num, lines)
        @socket.each_message_chunk(&block)
      }
    end

    def retr(num, &block)
      critical {
        getok('RETR %d', num)
        @socket.each_message_chunk(&block)
      }
    end

    def dele(num)
      check_response(critical { get_response('DELE %d', num) })
    end

    def uidl(num = nil)
      if num
        res = check_response(critical { get_response('UIDL %d', num) })
        return res.split(/ /)[1]
      else
        critical {
          getok('UIDL')
          table = {}
          @socket.each_list_item do |line|
            num, uid = line.split
            table[num.to_i] = uid
          end
          return table
        }
      end
    end

    def quit
      check_response(critical { get_response('QUIT') })
    end

    private

    def getok(fmt, *fargs)
      @socket.writeline sprintf(fmt, *fargs)
      check_response(recv_response())
    end

    def get_response(fmt, *fargs)
      @socket.writeline sprintf(fmt, *fargs)
      recv_response()
    end

    def recv_response
      @socket.readline
    end

    def check_response(res)
      raise POPError, res unless /\A\+OK/i =~ res
      res
    end

    def check_response_auth(res)
      raise POPAuthenticationError, res unless /\A\+OK/i =~ res
      res
    end

    def critical
      return '+OK dummy ok response' if @error_occurred
      begin
        return yield()
      rescue Exception
        @error_occurred = true
        raise
      end
    end

  end   # class POP3Command

end   # module Net
lib64/ruby/2.2.0/net/http.rb000064400000136453150402106040011202 0ustar00#
# = net/http.rb
#
# Copyright (c) 1999-2007 Yukihiro Matsumoto
# Copyright (c) 1999-2007 Minero Aoki
# Copyright (c) 2001 GOTOU Yuuzou
#
# Written and maintained by Minero Aoki <aamine@loveruby.net>.
# HTTPS support added by GOTOU Yuuzou <gotoyuzo@notwork.org>.
#
# This file is derived from "http-access.rb".
#
# Documented by Minero Aoki; converted to RDoc by William Webber.
#
# This program is free software. You can re-distribute and/or
# modify this program under the same terms of ruby itself ---
# Ruby Distribution License or GNU General Public License.
#
# See Net::HTTP for an overview and examples.
#

require 'net/protocol'
require 'uri'

module Net   #:nodoc:
  autoload :OpenSSL, 'openssl'

  # :stopdoc:
  class HTTPBadResponse < StandardError; end
  class HTTPHeaderSyntaxError < StandardError; end
  # :startdoc:

  # == An HTTP client API for Ruby.
  #
  # Net::HTTP provides a rich library which can be used to build HTTP
  # user-agents.  For more details about HTTP see
  # [RFC2616](http://www.ietf.org/rfc/rfc2616.txt)
  #
  # Net::HTTP is designed to work closely with URI.  URI::HTTP#host,
  # URI::HTTP#port and URI::HTTP#request_uri are designed to work with
  # Net::HTTP.
  #
  # If you are only performing a few GET requests you should try OpenURI.
  #
  # == Simple Examples
  #
  # All examples assume you have loaded Net::HTTP with:
  #
  #   require 'net/http'
  #
  # This will also require 'uri' so you don't need to require it separately.
  #
  # The Net::HTTP methods in the following section do not persist
  # connections.  They are not recommended if you are performing many HTTP
  # requests.
  #
  # === GET
  #
  #   Net::HTTP.get('example.com', '/index.html') # => String
  #
  # === GET by URI
  #
  #   uri = URI('http://example.com/index.html?count=10')
  #   Net::HTTP.get(uri) # => String
  #
  # === GET with Dynamic Parameters
  #
  #   uri = URI('http://example.com/index.html')
  #   params = { :limit => 10, :page => 3 }
  #   uri.query = URI.encode_www_form(params)
  #
  #   res = Net::HTTP.get_response(uri)
  #   puts res.body if res.is_a?(Net::HTTPSuccess)
  #
  # === POST
  #
  #   uri = URI('http://www.example.com/search.cgi')
  #   res = Net::HTTP.post_form(uri, 'q' => 'ruby', 'max' => '50')
  #   puts res.body
  #
  # === POST with Multiple Values
  #
  #   uri = URI('http://www.example.com/search.cgi')
  #   res = Net::HTTP.post_form(uri, 'q' => ['ruby', 'perl'], 'max' => '50')
  #   puts res.body
  #
  # == How to use Net::HTTP
  #
  # The following example code can be used as the basis of a HTTP user-agent
  # which can perform a variety of request types using persistent
  # connections.
  #
  #   uri = URI('http://example.com/some_path?query=string')
  #
  #   Net::HTTP.start(uri.host, uri.port) do |http|
  #     request = Net::HTTP::Get.new uri
  #
  #     response = http.request request # Net::HTTPResponse object
  #   end
  #
  # Net::HTTP::start immediately creates a connection to an HTTP server which
  # is kept open for the duration of the block.  The connection will remain
  # open for multiple requests in the block if the server indicates it
  # supports persistent connections.
  #
  # The request types Net::HTTP supports are listed below in the section "HTTP
  # Request Classes".
  #
  # If you wish to re-use a connection across multiple HTTP requests without
  # automatically closing it you can use ::new instead of ::start.  #request
  # will automatically open a connection to the server if one is not currently
  # open.  You can manually close the connection with #finish.
  #
  # For all the Net::HTTP request objects and shortcut request methods you may
  # supply either a String for the request path or a URI from which Net::HTTP
  # will extract the request path.
  #
  # === Response Data
  #
  #   uri = URI('http://example.com/index.html')
  #   res = Net::HTTP.get_response(uri)
  #
  #   # Headers
  #   res['Set-Cookie']            # => String
  #   res.get_fields('set-cookie') # => Array
  #   res.to_hash['set-cookie']    # => Array
  #   puts "Headers: #{res.to_hash.inspect}"
  #
  #   # Status
  #   puts res.code       # => '200'
  #   puts res.message    # => 'OK'
  #   puts res.class.name # => 'HTTPOK'
  #
  #   # Body
  #   puts res.body if res.response_body_permitted?
  #
  # === Following Redirection
  #
  # Each Net::HTTPResponse object belongs to a class for its response code.
  #
  # For example, all 2XX responses are instances of a Net::HTTPSuccess
  # subclass, a 3XX response is an instance of a Net::HTTPRedirection
  # subclass and a 200 response is an instance of the Net::HTTPOK class.  For
  # details of response classes, see the section "HTTP Response Classes"
  # below.
  #
  # Using a case statement you can handle various types of responses properly:
  #
  #   def fetch(uri_str, limit = 10)
  #     # You should choose a better exception.
  #     raise ArgumentError, 'too many HTTP redirects' if limit == 0
  #
  #     response = Net::HTTP.get_response(URI(uri_str))
  #
  #     case response
  #     when Net::HTTPSuccess then
  #       response
  #     when Net::HTTPRedirection then
  #       location = response['location']
  #       warn "redirected to #{location}"
  #       fetch(location, limit - 1)
  #     else
  #       response.value
  #     end
  #   end
  #
  #   print fetch('http://www.ruby-lang.org')
  #
  # === POST
  #
  # A POST can be made using the Net::HTTP::Post request class.  This example
  # creates a urlencoded POST body:
  #
  #   uri = URI('http://www.example.com/todo.cgi')
  #   req = Net::HTTP::Post.new(uri)
  #   req.set_form_data('from' => '2005-01-01', 'to' => '2005-03-31')
  #
  #   res = Net::HTTP.start(uri.hostname, uri.port) do |http|
  #     http.request(req)
  #   end
  #
  #   case res
  #   when Net::HTTPSuccess, Net::HTTPRedirection
  #     # OK
  #   else
  #     res.value
  #   end
  #
  # At this time Net::HTTP does not support multipart/form-data.  To send
  # multipart/form-data use Net::HTTPRequest#body= and
  # Net::HTTPRequest#content_type=:
  #
  #   req = Net::HTTP::Post.new(uri)
  #   req.body = multipart_data
  #   req.content_type = 'multipart/form-data'
  #
  # Other requests that can contain a body such as PUT can be created in the
  # same way using the corresponding request class (Net::HTTP::Put).
  #
  # === Setting Headers
  #
  # The following example performs a conditional GET using the
  # If-Modified-Since header.  If the files has not been modified since the
  # time in the header a Not Modified response will be returned.  See RFC 2616
  # section 9.3 for further details.
  #
  #   uri = URI('http://example.com/cached_response')
  #   file = File.stat 'cached_response'
  #
  #   req = Net::HTTP::Get.new(uri)
  #   req['If-Modified-Since'] = file.mtime.rfc2822
  #
  #   res = Net::HTTP.start(uri.hostname, uri.port) {|http|
  #     http.request(req)
  #   }
  #
  #   open 'cached_response', 'w' do |io|
  #     io.write res.body
  #   end if res.is_a?(Net::HTTPSuccess)
  #
  # === Basic Authentication
  #
  # Basic authentication is performed according to
  # [RFC2617](http://www.ietf.org/rfc/rfc2617.txt)
  #
  #   uri = URI('http://example.com/index.html?key=value')
  #
  #   req = Net::HTTP::Get.new(uri)
  #   req.basic_auth 'user', 'pass'
  #
  #   res = Net::HTTP.start(uri.hostname, uri.port) {|http|
  #     http.request(req)
  #   }
  #   puts res.body
  #
  # === Streaming Response Bodies
  #
  # By default Net::HTTP reads an entire response into memory.  If you are
  # handling large files or wish to implement a progress bar you can instead
  # stream the body directly to an IO.
  #
  #   uri = URI('http://example.com/large_file')
  #
  #   Net::HTTP.start(uri.host, uri.port) do |http|
  #     request = Net::HTTP::Get.new uri
  #
  #     http.request request do |response|
  #       open 'large_file', 'w' do |io|
  #         response.read_body do |chunk|
  #           io.write chunk
  #         end
  #       end
  #     end
  #   end
  #
  # === HTTPS
  #
  # HTTPS is enabled for an HTTP connection by Net::HTTP#use_ssl=.
  #
  #   uri = URI('https://secure.example.com/some_path?query=string')
  #
  #   Net::HTTP.start(uri.host, uri.port,
  #     :use_ssl => uri.scheme == 'https') do |http|
  #     request = Net::HTTP::Get.new uri
  #
  #     response = http.request request # Net::HTTPResponse object
  #   end
  #
  # In previous versions of Ruby you would need to require 'net/https' to use
  # HTTPS.  This is no longer true.
  #
  # === Proxies
  #
  # Net::HTTP will automatically create a proxy from the +http_proxy+
  # environment variable if it is present.  To disable use of +http_proxy+,
  # pass +nil+ for the proxy address.
  #
  # You may also create a custom proxy:
  #
  #   proxy_addr = 'your.proxy.host'
  #   proxy_port = 8080
  #
  #   Net::HTTP.new('example.com', nil, proxy_addr, proxy_port).start { |http|
  #     # always proxy via your.proxy.addr:8080
  #   }
  #
  # See Net::HTTP.new for further details and examples such as proxies that
  # require a username and password.
  #
  # === Compression
  #
  # Net::HTTP automatically adds Accept-Encoding for compression of response
  # bodies and automatically decompresses gzip and deflate responses unless a
  # Range header was sent.
  #
  # Compression can be disabled through the Accept-Encoding: identity header.
  #
  # == HTTP Request Classes
  #
  # Here is the HTTP request class hierarchy.
  #
  # * Net::HTTPRequest
  #   * Net::HTTP::Get
  #   * Net::HTTP::Head
  #   * Net::HTTP::Post
  #   * Net::HTTP::Patch
  #   * Net::HTTP::Put
  #   * Net::HTTP::Proppatch
  #   * Net::HTTP::Lock
  #   * Net::HTTP::Unlock
  #   * Net::HTTP::Options
  #   * Net::HTTP::Propfind
  #   * Net::HTTP::Delete
  #   * Net::HTTP::Move
  #   * Net::HTTP::Copy
  #   * Net::HTTP::Mkcol
  #   * Net::HTTP::Trace
  #
  # == HTTP Response Classes
  #
  # Here is HTTP response class hierarchy.  All classes are defined in Net
  # module and are subclasses of Net::HTTPResponse.
  #
  # HTTPUnknownResponse:: For unhandled HTTP extensions
  # HTTPInformation::                    1xx
  #   HTTPContinue::                        100
  #   HTTPSwitchProtocol::                  101
  # HTTPSuccess::                        2xx
  #   HTTPOK::                              200
  #   HTTPCreated::                         201
  #   HTTPAccepted::                        202
  #   HTTPNonAuthoritativeInformation::     203
  #   HTTPNoContent::                       204
  #   HTTPResetContent::                    205
  #   HTTPPartialContent::                  206
  #   HTTPMultiStatus::                     207
  #   HTTPIMUsed::                          226
  # HTTPRedirection::                    3xx
  #   HTTPMultipleChoices::                 300
  #   HTTPMovedPermanently::                301
  #   HTTPFound::                           302
  #   HTTPSeeOther::                        303
  #   HTTPNotModified::                     304
  #   HTTPUseProxy::                        305
  #   HTTPTemporaryRedirect::               307
  # HTTPClientError::                    4xx
  #   HTTPBadRequest::                      400
  #   HTTPUnauthorized::                    401
  #   HTTPPaymentRequired::                 402
  #   HTTPForbidden::                       403
  #   HTTPNotFound::                        404
  #   HTTPMethodNotAllowed::                405
  #   HTTPNotAcceptable::                   406
  #   HTTPProxyAuthenticationRequired::     407
  #   HTTPRequestTimeOut::                  408
  #   HTTPConflict::                        409
  #   HTTPGone::                            410
  #   HTTPLengthRequired::                  411
  #   HTTPPreconditionFailed::              412
  #   HTTPRequestEntityTooLarge::           413
  #   HTTPRequestURITooLong::               414
  #   HTTPUnsupportedMediaType::            415
  #   HTTPRequestedRangeNotSatisfiable::    416
  #   HTTPExpectationFailed::               417
  #   HTTPUnprocessableEntity::             422
  #   HTTPLocked::                          423
  #   HTTPFailedDependency::                424
  #   HTTPUpgradeRequired::                 426
  #   HTTPPreconditionRequired::            428
  #   HTTPTooManyRequests::                 429
  #   HTTPRequestHeaderFieldsTooLarge::     431
  # HTTPServerError::                    5xx
  #   HTTPInternalServerError::             500
  #   HTTPNotImplemented::                  501
  #   HTTPBadGateway::                      502
  #   HTTPServiceUnavailable::              503
  #   HTTPGatewayTimeOut::                  504
  #   HTTPVersionNotSupported::             505
  #   HTTPInsufficientStorage::             507
  #   HTTPNetworkAuthenticationRequired::   511
  #
  # There is also the Net::HTTPBadResponse exception which is raised when
  # there is a protocol error.
  #
  class HTTP < Protocol

    # :stopdoc:
    Revision = %q$Revision: 56787 $.split[1]
    HTTPVersion = '1.1'
    begin
      require 'zlib'
      require 'stringio'  #for our purposes (unpacking gzip) lump these together
      HAVE_ZLIB=true
    rescue LoadError
      HAVE_ZLIB=false
    end
    # :startdoc:

    # Turns on net/http 1.2 (Ruby 1.8) features.
    # Defaults to ON in Ruby 1.8 or later.
    def HTTP.version_1_2
      true
    end

    # Returns true if net/http is in version 1.2 mode.
    # Defaults to true.
    def HTTP.version_1_2?
      true
    end

    def HTTP.version_1_1?  #:nodoc:
      false
    end

    class << HTTP
      alias is_version_1_1? version_1_1?   #:nodoc:
      alias is_version_1_2? version_1_2?   #:nodoc:
    end

    #
    # short cut methods
    #

    #
    # Gets the body text from the target and outputs it to $stdout.  The
    # target can either be specified as
    # (+uri+), or as (+host+, +path+, +port+ = 80); so:
    #
    #    Net::HTTP.get_print URI('http://www.example.com/index.html')
    #
    # or:
    #
    #    Net::HTTP.get_print 'www.example.com', '/index.html'
    #
    def HTTP.get_print(uri_or_host, path = nil, port = nil)
      get_response(uri_or_host, path, port) {|res|
        res.read_body do |chunk|
          $stdout.print chunk
        end
      }
      nil
    end

    # Sends a GET request to the target and returns the HTTP response
    # as a string.  The target can either be specified as
    # (+uri+), or as (+host+, +path+, +port+ = 80); so:
    #
    #    print Net::HTTP.get(URI('http://www.example.com/index.html'))
    #
    # or:
    #
    #    print Net::HTTP.get('www.example.com', '/index.html')
    #
    def HTTP.get(uri_or_host, path = nil, port = nil)
      get_response(uri_or_host, path, port).body
    end

    # Sends a GET request to the target and returns the HTTP response
    # as a Net::HTTPResponse object.  The target can either be specified as
    # (+uri+), or as (+host+, +path+, +port+ = 80); so:
    #
    #    res = Net::HTTP.get_response(URI('http://www.example.com/index.html'))
    #    print res.body
    #
    # or:
    #
    #    res = Net::HTTP.get_response('www.example.com', '/index.html')
    #    print res.body
    #
    def HTTP.get_response(uri_or_host, path = nil, port = nil, &block)
      if path
        host = uri_or_host
        new(host, port || HTTP.default_port).start {|http|
          return http.request_get(path, &block)
        }
      else
        uri = uri_or_host
        start(uri.hostname, uri.port,
              :use_ssl => uri.scheme == 'https') {|http|
          return http.request_get(uri, &block)
        }
      end
    end

    # Posts HTML form data to the specified URI object.
    # The form data must be provided as a Hash mapping from String to String.
    # Example:
    #
    #   { "cmd" => "search", "q" => "ruby", "max" => "50" }
    #
    # This method also does Basic Authentication iff +url+.user exists.
    # But userinfo for authentication is deprecated (RFC3986).
    # So this feature will be removed.
    #
    # Example:
    #
    #   require 'net/http'
    #   require 'uri'
    #
    #   Net::HTTP.post_form URI('http://www.example.com/search.cgi'),
    #                       { "q" => "ruby", "max" => "50" }
    #
    def HTTP.post_form(url, params)
      req = Post.new(url)
      req.form_data = params
      req.basic_auth url.user, url.password if url.user
      start(url.hostname, url.port,
            :use_ssl => url.scheme == 'https' ) {|http|
        http.request(req)
      }
    end

    #
    # HTTP session management
    #

    # The default port to use for HTTP requests; defaults to 80.
    def HTTP.default_port
      http_default_port()
    end

    # The default port to use for HTTP requests; defaults to 80.
    def HTTP.http_default_port
      80
    end

    # The default port to use for HTTPS requests; defaults to 443.
    def HTTP.https_default_port
      443
    end

    def HTTP.socket_type   #:nodoc: obsolete
      BufferedIO
    end

    # :call-seq:
    #   HTTP.start(address, port, p_addr, p_port, p_user, p_pass, &block)
    #   HTTP.start(address, port=nil, p_addr=nil, p_port=nil, p_user=nil, p_pass=nil, opt, &block)
    #
    # Creates a new Net::HTTP object, then additionally opens the TCP
    # connection and HTTP session.
    #
    # Arguments are the following:
    # _address_ :: hostname or IP address of the server
    # _port_    :: port of the server
    # _p_addr_  :: address of proxy
    # _p_port_  :: port of proxy
    # _p_user_  :: user of proxy
    # _p_pass_  :: pass of proxy
    # _opt_     :: optional hash
    #
    # _opt_ sets following values by its accessor.
    # The keys are ca_file, ca_path, cert, cert_store, ciphers,
    # close_on_empty_response, key, open_timeout, read_timeout, ssl_timeout,
    # ssl_version, use_ssl, verify_callback, verify_depth and verify_mode.
    # If you set :use_ssl as true, you can use https and default value of
    # verify_mode is set as OpenSSL::SSL::VERIFY_PEER.
    #
    # If the optional block is given, the newly
    # created Net::HTTP object is passed to it and closed when the
    # block finishes.  In this case, the return value of this method
    # is the return value of the block.  If no block is given, the
    # return value of this method is the newly created Net::HTTP object
    # itself, and the caller is responsible for closing it upon completion
    # using the finish() method.
    def HTTP.start(address, *arg, &block) # :yield: +http+
      arg.pop if opt = Hash.try_convert(arg[-1])
      port, p_addr, p_port, p_user, p_pass = *arg
      port = https_default_port if !port && opt && opt[:use_ssl]
      http = new(address, port, p_addr, p_port, p_user, p_pass)

      if opt
        if opt[:use_ssl]
          opt = {verify_mode: OpenSSL::SSL::VERIFY_PEER}.update(opt)
        end
        http.methods.grep(/\A(\w+)=\z/) do |meth|
          key = $1.to_sym
          opt.key?(key) or next
          http.__send__(meth, opt[key])
        end
      end

      http.start(&block)
    end

    class << HTTP
      alias newobj new # :nodoc:
    end

    # Creates a new Net::HTTP object without opening a TCP connection or
    # HTTP session.
    #
    # The +address+ should be a DNS hostname or IP address, the +port+ is the
    # port the server operates on.  If no +port+ is given the default port for
    # HTTP or HTTPS is used.
    #
    # If none of the +p_+ arguments are given, the proxy host and port are
    # taken from the +http_proxy+ environment variable (or its uppercase
    # equivalent) if present.  If the proxy requires authentication you must
    # supply it by hand.  See URI::Generic#find_proxy for details of proxy
    # detection from the environment.  To disable proxy detection set +p_addr+
    # to nil.
    #
    # If you are connecting to a custom proxy, +p_addr+ the DNS name or IP
    # address of the proxy host, +p_port+ the port to use to access the proxy,
    # and +p_user+ and +p_pass+ the username and password if authorization is
    # required to use the proxy.
    #
    def HTTP.new(address, port = nil, p_addr = :ENV, p_port = nil, p_user = nil, p_pass = nil)
      http = super address, port

      if proxy_class? then # from Net::HTTP::Proxy()
        http.proxy_from_env = @proxy_from_env
        http.proxy_address  = @proxy_address
        http.proxy_port     = @proxy_port
        http.proxy_user     = @proxy_user
        http.proxy_pass     = @proxy_pass
      elsif p_addr == :ENV then
        http.proxy_from_env = true
      else
        http.proxy_address = p_addr
        http.proxy_port    = p_port || default_port
        http.proxy_user    = p_user
        http.proxy_pass    = p_pass
      end

      http
    end

    # Creates a new Net::HTTP object for the specified server address,
    # without opening the TCP connection or initializing the HTTP session.
    # The +address+ should be a DNS hostname or IP address.
    def initialize(address, port = nil)
      @address = address
      @port    = (port || HTTP.default_port)
      @local_host = nil
      @local_port = nil
      @curr_http_version = HTTPVersion
      @keep_alive_timeout = 2
      @last_communicated = nil
      @close_on_empty_response = false
      @socket  = nil
      @started = false
      @open_timeout = nil
      @read_timeout = 60
      @continue_timeout = nil
      @debug_output = nil

      @proxy_from_env = false
      @proxy_uri      = nil
      @proxy_address  = nil
      @proxy_port     = nil
      @proxy_user     = nil
      @proxy_pass     = nil

      @use_ssl = false
      @ssl_context = nil
      @ssl_session = nil
      @enable_post_connection_check = true
      @sspi_enabled = false
      SSL_IVNAMES.each do |ivname|
        instance_variable_set ivname, nil
      end
    end

    def inspect
      "#<#{self.class} #{@address}:#{@port} open=#{started?}>"
    end

    # *WARNING* This method opens a serious security hole.
    # Never use this method in production code.
    #
    # Sets an output stream for debugging.
    #
    #   http = Net::HTTP.new(hostname)
    #   http.set_debug_output $stderr
    #   http.start { .... }
    #
    def set_debug_output(output)
      warn 'Net::HTTP#set_debug_output called after HTTP started' if started?
      @debug_output = output
    end

    # The DNS host name or IP address to connect to.
    attr_reader :address

    # The port number to connect to.
    attr_reader :port

    # The local host used to establish the connection.
    attr_accessor :local_host

    # The local port used to establish the connection.
    attr_accessor :local_port

    attr_writer :proxy_from_env
    attr_writer :proxy_address
    attr_writer :proxy_port
    attr_writer :proxy_user
    attr_writer :proxy_pass

    # Number of seconds to wait for the connection to open. Any number
    # may be used, including Floats for fractional seconds. If the HTTP
    # object cannot open a connection in this many seconds, it raises a
    # Net::OpenTimeout exception. The default value is +nil+.
    attr_accessor :open_timeout

    # Number of seconds to wait for one block to be read (via one read(2)
    # call). Any number may be used, including Floats for fractional
    # seconds. If the HTTP object cannot read data in this many seconds,
    # it raises a Net::ReadTimeout exception. The default value is 60 seconds.
    attr_reader :read_timeout

    # Setter for the read_timeout attribute.
    def read_timeout=(sec)
      @socket.read_timeout = sec if @socket
      @read_timeout = sec
    end

    # Seconds to wait for 100 Continue response. If the HTTP object does not
    # receive a response in this many seconds it sends the request body. The
    # default value is +nil+.
    attr_reader :continue_timeout

    # Setter for the continue_timeout attribute.
    def continue_timeout=(sec)
      @socket.continue_timeout = sec if @socket
      @continue_timeout = sec
    end

    # Seconds to reuse the connection of the previous request.
    # If the idle time is less than this Keep-Alive Timeout,
    # Net::HTTP reuses the TCP/IP socket used by the previous communication.
    # The default value is 2 seconds.
    attr_accessor :keep_alive_timeout

    # Returns true if the HTTP session has been started.
    def started?
      @started
    end

    alias active? started?   #:nodoc: obsolete

    attr_accessor :close_on_empty_response

    # Returns true if SSL/TLS is being used with HTTP.
    def use_ssl?
      @use_ssl
    end

    # Turn on/off SSL.
    # This flag must be set before starting session.
    # If you change use_ssl value after session started,
    # a Net::HTTP object raises IOError.
    def use_ssl=(flag)
      flag = flag ? true : false
      if started? and @use_ssl != flag
        raise IOError, "use_ssl value changed, but session already started"
      end
      @use_ssl = flag
    end

    SSL_IVNAMES = [
      :@ca_file,
      :@ca_path,
      :@cert,
      :@cert_store,
      :@ciphers,
      :@key,
      :@ssl_timeout,
      :@ssl_version,
      :@verify_callback,
      :@verify_depth,
      :@verify_mode,
    ]
    SSL_ATTRIBUTES = [
      :ca_file,
      :ca_path,
      :cert,
      :cert_store,
      :ciphers,
      :key,
      :ssl_timeout,
      :ssl_version,
      :verify_callback,
      :verify_depth,
      :verify_mode,
    ]

    # Sets path of a CA certification file in PEM format.
    #
    # The file can contain several CA certificates.
    attr_accessor :ca_file

    # Sets path of a CA certification directory containing certifications in
    # PEM format.
    attr_accessor :ca_path

    # Sets an OpenSSL::X509::Certificate object as client certificate.
    # (This method is appeared in Michal Rokos's OpenSSL extension).
    attr_accessor :cert

    # Sets the X509::Store to verify peer certificate.
    attr_accessor :cert_store

    # Sets the available ciphers.  See OpenSSL::SSL::SSLContext#ciphers=
    attr_accessor :ciphers

    # Sets an OpenSSL::PKey::RSA or OpenSSL::PKey::DSA object.
    # (This method is appeared in Michal Rokos's OpenSSL extension.)
    attr_accessor :key

    # Sets the SSL timeout seconds.
    attr_accessor :ssl_timeout

    # Sets the SSL version.  See OpenSSL::SSL::SSLContext#ssl_version=
    attr_accessor :ssl_version

    # Sets the verify callback for the server certification verification.
    attr_accessor :verify_callback

    # Sets the maximum depth for the certificate chain verification.
    attr_accessor :verify_depth

    # Sets the flags for server the certification verification at beginning of
    # SSL/TLS session.
    #
    # OpenSSL::SSL::VERIFY_NONE or OpenSSL::SSL::VERIFY_PEER are acceptable.
    attr_accessor :verify_mode

    # Returns the X.509 certificates the server presented.
    def peer_cert
      if not use_ssl? or not @socket
        return nil
      end
      @socket.io.peer_cert
    end

    # Opens a TCP connection and HTTP session.
    #
    # When this method is called with a block, it passes the Net::HTTP
    # object to the block, and closes the TCP connection and HTTP session
    # after the block has been executed.
    #
    # When called with a block, it returns the return value of the
    # block; otherwise, it returns self.
    #
    def start  # :yield: http
      raise IOError, 'HTTP session already opened' if @started
      if block_given?
        begin
          do_start
          return yield(self)
        ensure
          do_finish
        end
      end
      do_start
      self
    end

    def do_start
      connect
      @started = true
    end
    private :do_start

    def connect
      if proxy? then
        conn_address = proxy_address
        conn_port    = proxy_port
      else
        conn_address = address
        conn_port    = port
      end

      D "opening connection to #{conn_address}:#{conn_port}..."
      s = Timeout.timeout(@open_timeout, Net::OpenTimeout) {
        TCPSocket.open(conn_address, conn_port, @local_host, @local_port)
      }
      s.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
      D "opened"
      if use_ssl?
        ssl_parameters = Hash.new
        iv_list = instance_variables
        SSL_IVNAMES.each_with_index do |ivname, i|
          if iv_list.include?(ivname) and
            value = instance_variable_get(ivname)
            ssl_parameters[SSL_ATTRIBUTES[i]] = value if value
          end
        end
        @ssl_context = OpenSSL::SSL::SSLContext.new
        @ssl_context.set_params(ssl_parameters)
        D "starting SSL for #{conn_address}:#{conn_port}..."
        s = OpenSSL::SSL::SSLSocket.new(s, @ssl_context)
        s.sync_close = true
        D "SSL established"
      end
      @socket = BufferedIO.new(s)
      @socket.read_timeout = @read_timeout
      @socket.continue_timeout = @continue_timeout
      @socket.debug_output = @debug_output
      if use_ssl?
        begin
          if proxy?
            buf = "CONNECT #{@address}:#{@port} HTTP/#{HTTPVersion}\r\n"
            buf << "Host: #{@address}:#{@port}\r\n"
            if proxy_user
              credential = ["#{proxy_user}:#{proxy_pass}"].pack('m')
              credential.delete!("\r\n")
              buf << "Proxy-Authorization: Basic #{credential}\r\n"
            end
            buf << "\r\n"
            @socket.write(buf)
            HTTPResponse.read_new(@socket).value
          end
          # Server Name Indication (SNI) RFC 3546
          s.hostname = @address if s.respond_to? :hostname=
          if @ssl_session and
             Process.clock_gettime(Process::CLOCK_REALTIME) < @ssl_session.time.to_f + @ssl_session.timeout
            s.session = @ssl_session if @ssl_session
          end
          Timeout.timeout(@open_timeout, Net::OpenTimeout) { s.connect }
          if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE
            s.post_connection_check(@address)
          end
          @ssl_session = s.session
        rescue => exception
          D "Conn close because of connect error #{exception}"
          @socket.close if @socket and not @socket.closed?
          raise exception
        end
      end
      on_connect
    end
    private :connect

    def on_connect
    end
    private :on_connect

    # Finishes the HTTP session and closes the TCP connection.
    # Raises IOError if the session has not been started.
    def finish
      raise IOError, 'HTTP session not yet started' unless started?
      do_finish
    end

    def do_finish
      @started = false
      @socket.close if @socket and not @socket.closed?
      @socket = nil
    end
    private :do_finish

    #
    # proxy
    #

    public

    # no proxy
    @is_proxy_class = false
    @proxy_from_env = false
    @proxy_addr = nil
    @proxy_port = nil
    @proxy_user = nil
    @proxy_pass = nil

    # Creates an HTTP proxy class which behaves like Net::HTTP, but
    # performs all access via the specified proxy.
    #
    # This class is obsolete.  You may pass these same parameters directly to
    # Net::HTTP.new.  See Net::HTTP.new for details of the arguments.
    def HTTP.Proxy(p_addr = :ENV, p_port = nil, p_user = nil, p_pass = nil)
      return self unless p_addr

      Class.new(self) {
        @is_proxy_class = true

        if p_addr == :ENV then
          @proxy_from_env = true
          @proxy_address = nil
          @proxy_port    = nil
        else
          @proxy_from_env = false
          @proxy_address = p_addr
          @proxy_port    = p_port || default_port
        end

        @proxy_user = p_user
        @proxy_pass = p_pass
      }
    end

    class << HTTP
      # returns true if self is a class which was created by HTTP::Proxy.
      def proxy_class?
        defined?(@is_proxy_class) ? @is_proxy_class : false
      end

      # Address of proxy host. If Net::HTTP does not use a proxy, nil.
      attr_reader :proxy_address

      # Port number of proxy host. If Net::HTTP does not use a proxy, nil.
      attr_reader :proxy_port

      # User name for accessing proxy. If Net::HTTP does not use a proxy, nil.
      attr_reader :proxy_user

      # User password for accessing proxy. If Net::HTTP does not use a proxy,
      # nil.
      attr_reader :proxy_pass
    end

    # True if requests for this connection will be proxied
    def proxy?
      !!if @proxy_from_env then
        proxy_uri
      else
        @proxy_address
      end
    end

    # True if the proxy for this connection is determined from the environment
    def proxy_from_env?
      @proxy_from_env
    end

    # The proxy URI determined from the environment for this connection.
    def proxy_uri # :nodoc:
      @proxy_uri ||= URI::HTTP.new(
        "http".freeze, nil, address, port, nil, nil, nil, nil, nil
      ).find_proxy
    end

    # The address of the proxy server, if one is configured.
    def proxy_address
      if @proxy_from_env then
        proxy_uri && proxy_uri.hostname
      else
        @proxy_address
      end
    end

    # The port of the proxy server, if one is configured.
    def proxy_port
      if @proxy_from_env then
        proxy_uri && proxy_uri.port
      else
        @proxy_port
      end
    end

    # The proxy username, if one is configured
    def proxy_user
      @proxy_user
    end

    # The proxy password, if one is configured
    def proxy_pass
      @proxy_pass
    end

    alias proxyaddr proxy_address   #:nodoc: obsolete
    alias proxyport proxy_port      #:nodoc: obsolete

    private

    # without proxy, obsolete

    def conn_address # :nodoc:
      address()
    end

    def conn_port # :nodoc:
      port()
    end

    def edit_path(path)
      if proxy? and not use_ssl? then
        "http://#{addr_port}#{path}"
      else
        path
      end
    end

    #
    # HTTP operations
    #

    public

    # Retrieves data from +path+ on the connected-to host which may be an
    # absolute path String or a URI to extract the path from.
    #
    # +initheader+ must be a Hash like { 'Accept' => '*/*', ... },
    # and it defaults to an empty hash.
    # If +initheader+ doesn't have the key 'accept-encoding', then
    # a value of "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" is used,
    # so that gzip compression is used in preference to deflate
    # compression, which is used in preference to no compression.
    # Ruby doesn't have libraries to support the compress (Lempel-Ziv)
    # compression, so that is not supported.  The intent of this is
    # to reduce bandwidth by default.   If this routine sets up
    # compression, then it does the decompression also, removing
    # the header as well to prevent confusion.  Otherwise
    # it leaves the body as it found it.
    #
    # This method returns a Net::HTTPResponse object.
    #
    # If called with a block, yields each fragment of the
    # entity body in turn as a string as it is read from
    # the socket.  Note that in this case, the returned response
    # object will *not* contain a (meaningful) body.
    #
    # +dest+ argument is obsolete.
    # It still works but you must not use it.
    #
    # This method never raises an exception.
    #
    #     response = http.get('/index.html')
    #
    #     # using block
    #     File.open('result.txt', 'w') {|f|
    #       http.get('/~foo/') do |str|
    #         f.write str
    #       end
    #     }
    #
    def get(path, initheader = nil, dest = nil, &block) # :yield: +body_segment+
      res = nil
      request(Get.new(path, initheader)) {|r|
        r.read_body dest, &block
        res = r
      }
      res
    end

    # Gets only the header from +path+ on the connected-to host.
    # +header+ is a Hash like { 'Accept' => '*/*', ... }.
    #
    # This method returns a Net::HTTPResponse object.
    #
    # This method never raises an exception.
    #
    #     response = nil
    #     Net::HTTP.start('some.www.server', 80) {|http|
    #       response = http.head('/index.html')
    #     }
    #     p response['content-type']
    #
    def head(path, initheader = nil)
      request(Head.new(path, initheader))
    end

    # Posts +data+ (must be a String) to +path+. +header+ must be a Hash
    # like { 'Accept' => '*/*', ... }.
    #
    # This method returns a Net::HTTPResponse object.
    #
    # If called with a block, yields each fragment of the
    # entity body in turn as a string as it is read from
    # the socket.  Note that in this case, the returned response
    # object will *not* contain a (meaningful) body.
    #
    # +dest+ argument is obsolete.
    # It still works but you must not use it.
    #
    # This method never raises exception.
    #
    #     response = http.post('/cgi-bin/search.rb', 'query=foo')
    #
    #     # using block
    #     File.open('result.txt', 'w') {|f|
    #       http.post('/cgi-bin/search.rb', 'query=foo') do |str|
    #         f.write str
    #       end
    #     }
    #
    # You should set Content-Type: header field for POST.
    # If no Content-Type: field given, this method uses
    # "application/x-www-form-urlencoded" by default.
    #
    def post(path, data, initheader = nil, dest = nil, &block) # :yield: +body_segment+
      send_entity(path, data, initheader, dest, Post, &block)
    end

    # Sends a PATCH request to the +path+ and gets a response,
    # as an HTTPResponse object.
    def patch(path, data, initheader = nil, dest = nil, &block) # :yield: +body_segment+
      send_entity(path, data, initheader, dest, Patch, &block)
    end

    def put(path, data, initheader = nil)   #:nodoc:
      request(Put.new(path, initheader), data)
    end

    # Sends a PROPPATCH request to the +path+ and gets a response,
    # as an HTTPResponse object.
    def proppatch(path, body, initheader = nil)
      request(Proppatch.new(path, initheader), body)
    end

    # Sends a LOCK request to the +path+ and gets a response,
    # as an HTTPResponse object.
    def lock(path, body, initheader = nil)
      request(Lock.new(path, initheader), body)
    end

    # Sends a UNLOCK request to the +path+ and gets a response,
    # as an HTTPResponse object.
    def unlock(path, body, initheader = nil)
      request(Unlock.new(path, initheader), body)
    end

    # Sends a OPTIONS request to the +path+ and gets a response,
    # as an HTTPResponse object.
    def options(path, initheader = nil)
      request(Options.new(path, initheader))
    end

    # Sends a PROPFIND request to the +path+ and gets a response,
    # as an HTTPResponse object.
    def propfind(path, body = nil, initheader = {'Depth' => '0'})
      request(Propfind.new(path, initheader), body)
    end

    # Sends a DELETE request to the +path+ and gets a response,
    # as an HTTPResponse object.
    def delete(path, initheader = {'Depth' => 'Infinity'})
      request(Delete.new(path, initheader))
    end

    # Sends a MOVE request to the +path+ and gets a response,
    # as an HTTPResponse object.
    def move(path, initheader = nil)
      request(Move.new(path, initheader))
    end

    # Sends a COPY request to the +path+ and gets a response,
    # as an HTTPResponse object.
    def copy(path, initheader = nil)
      request(Copy.new(path, initheader))
    end

    # Sends a MKCOL request to the +path+ and gets a response,
    # as an HTTPResponse object.
    def mkcol(path, body = nil, initheader = nil)
      request(Mkcol.new(path, initheader), body)
    end

    # Sends a TRACE request to the +path+ and gets a response,
    # as an HTTPResponse object.
    def trace(path, initheader = nil)
      request(Trace.new(path, initheader))
    end

    # Sends a GET request to the +path+.
    # Returns the response as a Net::HTTPResponse object.
    #
    # When called with a block, passes an HTTPResponse object to the block.
    # The body of the response will not have been read yet;
    # the block can process it using HTTPResponse#read_body,
    # if desired.
    #
    # Returns the response.
    #
    # This method never raises Net::* exceptions.
    #
    #     response = http.request_get('/index.html')
    #     # The entity body is already read in this case.
    #     p response['content-type']
    #     puts response.body
    #
    #     # Using a block
    #     http.request_get('/index.html') {|response|
    #       p response['content-type']
    #       response.read_body do |str|   # read body now
    #         print str
    #       end
    #     }
    #
    def request_get(path, initheader = nil, &block) # :yield: +response+
      request(Get.new(path, initheader), &block)
    end

    # Sends a HEAD request to the +path+ and returns the response
    # as a Net::HTTPResponse object.
    #
    # Returns the response.
    #
    # This method never raises Net::* exceptions.
    #
    #     response = http.request_head('/index.html')
    #     p response['content-type']
    #
    def request_head(path, initheader = nil, &block)
      request(Head.new(path, initheader), &block)
    end

    # Sends a POST request to the +path+.
    #
    # Returns the response as a Net::HTTPResponse object.
    #
    # When called with a block, the block is passed an HTTPResponse
    # object.  The body of that response will not have been read yet;
    # the block can process it using HTTPResponse#read_body, if desired.
    #
    # Returns the response.
    #
    # This method never raises Net::* exceptions.
    #
    #     # example
    #     response = http.request_post('/cgi-bin/nice.rb', 'datadatadata...')
    #     p response.status
    #     puts response.body          # body is already read in this case
    #
    #     # using block
    #     http.request_post('/cgi-bin/nice.rb', 'datadatadata...') {|response|
    #       p response.status
    #       p response['content-type']
    #       response.read_body do |str|   # read body now
    #         print str
    #       end
    #     }
    #
    def request_post(path, data, initheader = nil, &block) # :yield: +response+
      request Post.new(path, initheader), data, &block
    end

    def request_put(path, data, initheader = nil, &block)   #:nodoc:
      request Put.new(path, initheader), data, &block
    end

    alias get2   request_get    #:nodoc: obsolete
    alias head2  request_head   #:nodoc: obsolete
    alias post2  request_post   #:nodoc: obsolete
    alias put2   request_put    #:nodoc: obsolete


    # Sends an HTTP request to the HTTP server.
    # Also sends a DATA string if +data+ is given.
    #
    # Returns a Net::HTTPResponse object.
    #
    # This method never raises Net::* exceptions.
    #
    #    response = http.send_request('GET', '/index.html')
    #    puts response.body
    #
    def send_request(name, path, data = nil, header = nil)
      has_response_body = name != 'HEAD'
      r = HTTPGenericRequest.new(name,(data ? true : false),has_response_body,path,header)
      request r, data
    end

    # Sends an HTTPRequest object +req+ to the HTTP server.
    #
    # If +req+ is a Net::HTTP::Post or Net::HTTP::Put request containing
    # data, the data is also sent. Providing data for a Net::HTTP::Head or
    # Net::HTTP::Get request results in an ArgumentError.
    #
    # Returns an HTTPResponse object.
    #
    # When called with a block, passes an HTTPResponse object to the block.
    # The body of the response will not have been read yet;
    # the block can process it using HTTPResponse#read_body,
    # if desired.
    #
    # This method never raises Net::* exceptions.
    #
    def request(req, body = nil, &block)  # :yield: +response+
      unless started?
        start {
          req['connection'] ||= 'close'
          return request(req, body, &block)
        }
      end
      if proxy_user()
        req.proxy_basic_auth proxy_user(), proxy_pass() unless use_ssl?
      end
      req.set_body_internal body
      res = transport_request(req, &block)
      if sspi_auth?(res)
        sspi_auth(req)
        res = transport_request(req, &block)
      end
      res
    end

    private

    # Executes a request which uses a representation
    # and returns its body.
    def send_entity(path, data, initheader, dest, type, &block)
      res = nil
      request(type.new(path, initheader), data) {|r|
        r.read_body dest, &block
        res = r
      }
      res
    end

    IDEMPOTENT_METHODS_ = %w/GET HEAD PUT DELETE OPTIONS TRACE/ # :nodoc:

    def transport_request(req)
      count = 0
      begin
        begin_transport req
        res = catch(:response) {
          req.exec @socket, @curr_http_version, edit_path(req.path)
          begin
            res = HTTPResponse.read_new(@socket)
            res.decode_content = req.decode_content
          end while res.kind_of?(HTTPInformation)

          res.uri = req.uri

          res
        }
        res.reading_body(@socket, req.response_body_permitted?) {
          yield res if block_given?
        }
      rescue Net::OpenTimeout
        raise
      rescue Net::ReadTimeout, IOError, EOFError,
             Errno::ECONNRESET, Errno::ECONNABORTED, Errno::EPIPE,
             # avoid a dependency on OpenSSL
             defined?(OpenSSL::SSL) ? OpenSSL::SSL::SSLError : IOError,
             Timeout::Error => exception
        if count == 0 && IDEMPOTENT_METHODS_.include?(req.method)
          count += 1
          @socket.close if @socket and not @socket.closed?
          D "Conn close because of error #{exception}, and retry"
          retry
        end
        D "Conn close because of error #{exception}"
        @socket.close if @socket and not @socket.closed?
        raise
      end

      end_transport req, res
      res
    rescue => exception
      D "Conn close because of error #{exception}"
      @socket.close if @socket and not @socket.closed?
      raise exception
    end

    def begin_transport(req)
      if @socket.closed?
        connect
      elsif @last_communicated && @last_communicated + @keep_alive_timeout < Time.now
        D 'Conn close because of keep_alive_timeout'
        @socket.close
        connect
      end

      if not req.response_body_permitted? and @close_on_empty_response
        req['connection'] ||= 'close'
      end

      req.update_uri address, port, use_ssl?
      req['host'] ||= addr_port()
    end

    def end_transport(req, res)
      @curr_http_version = res.http_version
      @last_communicated = nil
      if @socket.closed?
        D 'Conn socket closed'
      elsif not res.body and @close_on_empty_response
        D 'Conn close'
        @socket.close
      elsif keep_alive?(req, res)
        D 'Conn keep-alive'
        @last_communicated = Time.now
      else
        D 'Conn close'
        @socket.close
      end
    end

    def keep_alive?(req, res)
      return false if req.connection_close?
      if @curr_http_version <= '1.0'
        res.connection_keep_alive?
      else   # HTTP/1.1 or later
        not res.connection_close?
      end
    end

    def sspi_auth?(res)
      return false unless @sspi_enabled
      if res.kind_of?(HTTPProxyAuthenticationRequired) and
          proxy? and res["Proxy-Authenticate"].include?("Negotiate")
        begin
          require 'win32/sspi'
          true
        rescue LoadError
          false
        end
      else
        false
      end
    end

    def sspi_auth(req)
      n = Win32::SSPI::NegotiateAuth.new
      req["Proxy-Authorization"] = "Negotiate #{n.get_initial_token}"
      # Some versions of ISA will close the connection if this isn't present.
      req["Connection"] = "Keep-Alive"
      req["Proxy-Connection"] = "Keep-Alive"
      res = transport_request(req)
      authphrase = res["Proxy-Authenticate"]  or return res
      req["Proxy-Authorization"] = "Negotiate #{n.complete_authentication(authphrase)}"
    rescue => err
      raise HTTPAuthenticationError.new('HTTP authentication failed', err)
    end

    #
    # utils
    #

    private

    def addr_port
      if use_ssl?
        address() + (port == HTTP.https_default_port ? '' : ":#{port()}")
      else
        address() + (port == HTTP.http_default_port ? '' : ":#{port()}")
      end
    end

    def D(msg)
      return unless @debug_output
      @debug_output << msg
      @debug_output << "\n"
    end
  end

end

require 'net/http/exceptions'

require 'net/http/header'

require 'net/http/generic_request'
require 'net/http/request'
require 'net/http/requests'

require 'net/http/response'
require 'net/http/responses'

require 'net/http/proxy_delta'

require 'net/http/backward'

lib64/ruby/2.2.0/net/imap.rb000064400000325752150402106040011153 0ustar00#
# = net/imap.rb
#
# Copyright (C) 2000  Shugo Maeda <shugo@ruby-lang.org>
#
# This library is distributed under the terms of the Ruby license.
# You can freely distribute/modify this library.
#
# Documentation: Shugo Maeda, with RDoc conversion and overview by William
# Webber.
#
# See Net::IMAP for documentation.
#


require "socket"
require "monitor"
require "digest/md5"
require "strscan"
begin
  require "openssl"
rescue LoadError
end

module Net

  #
  # Net::IMAP implements Internet Message Access Protocol (IMAP) client
  # functionality.  The protocol is described in [IMAP].
  #
  # == IMAP Overview
  #
  # An IMAP client connects to a server, and then authenticates
  # itself using either #authenticate() or #login().  Having
  # authenticated itself, there is a range of commands
  # available to it.  Most work with mailboxes, which may be
  # arranged in an hierarchical namespace, and each of which
  # contains zero or more messages.  How this is implemented on
  # the server is implementation-dependent; on a UNIX server, it
  # will frequently be implemented as files in mailbox format
  # within a hierarchy of directories.
  #
  # To work on the messages within a mailbox, the client must
  # first select that mailbox, using either #select() or (for
  # read-only access) #examine().  Once the client has successfully
  # selected a mailbox, they enter _selected_ state, and that
  # mailbox becomes the _current_ mailbox, on which mail-item
  # related commands implicitly operate.
  #
  # Messages have two sorts of identifiers: message sequence
  # numbers and UIDs.
  #
  # Message sequence numbers number messages within a mailbox
  # from 1 up to the number of items in the mailbox.  If a new
  # message arrives during a session, it receives a sequence
  # number equal to the new size of the mailbox.  If messages
  # are expunged from the mailbox, remaining messages have their
  # sequence numbers "shuffled down" to fill the gaps.
  #
  # UIDs, on the other hand, are permanently guaranteed not to
  # identify another message within the same mailbox, even if
  # the existing message is deleted.  UIDs are required to
  # be assigned in ascending (but not necessarily sequential)
  # order within a mailbox; this means that if a non-IMAP client
  # rearranges the order of mailitems within a mailbox, the
  # UIDs have to be reassigned.  An IMAP client thus cannot
  # rearrange message orders.
  #
  # == Examples of Usage
  #
  # === List sender and subject of all recent messages in the default mailbox
  #
  #   imap = Net::IMAP.new('mail.example.com')
  #   imap.authenticate('LOGIN', 'joe_user', 'joes_password')
  #   imap.examine('INBOX')
  #   imap.search(["RECENT"]).each do |message_id|
  #     envelope = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
  #     puts "#{envelope.from[0].name}: \t#{envelope.subject}"
  #   end
  #
  # === Move all messages from April 2003 from "Mail/sent-mail" to "Mail/sent-apr03"
  #
  #   imap = Net::IMAP.new('mail.example.com')
  #   imap.authenticate('LOGIN', 'joe_user', 'joes_password')
  #   imap.select('Mail/sent-mail')
  #   if not imap.list('Mail/', 'sent-apr03')
  #     imap.create('Mail/sent-apr03')
  #   end
  #   imap.search(["BEFORE", "30-Apr-2003", "SINCE", "1-Apr-2003"]).each do |message_id|
  #     imap.copy(message_id, "Mail/sent-apr03")
  #     imap.store(message_id, "+FLAGS", [:Deleted])
  #   end
  #   imap.expunge
  #
  # == Thread Safety
  #
  # Net::IMAP supports concurrent threads. For example,
  #
  #   imap = Net::IMAP.new("imap.foo.net", "imap2")
  #   imap.authenticate("cram-md5", "bar", "password")
  #   imap.select("inbox")
  #   fetch_thread = Thread.start { imap.fetch(1..-1, "UID") }
  #   search_result = imap.search(["BODY", "hello"])
  #   fetch_result = fetch_thread.value
  #   imap.disconnect
  #
  # This script invokes the FETCH command and the SEARCH command concurrently.
  #
  # == Errors
  #
  # An IMAP server can send three different types of responses to indicate
  # failure:
  #
  # NO:: the attempted command could not be successfully completed.  For
  #      instance, the username/password used for logging in are incorrect;
  #      the selected mailbox does not exist; etc.
  #
  # BAD:: the request from the client does not follow the server's
  #       understanding of the IMAP protocol.  This includes attempting
  #       commands from the wrong client state; for instance, attempting
  #       to perform a SEARCH command without having SELECTed a current
  #       mailbox.  It can also signal an internal server
  #       failure (such as a disk crash) has occurred.
  #
  # BYE:: the server is saying goodbye.  This can be part of a normal
  #       logout sequence, and can be used as part of a login sequence
  #       to indicate that the server is (for some reason) unwilling
  #       to accept your connection.  As a response to any other command,
  #       it indicates either that the server is shutting down, or that
  #       the server is timing out the client connection due to inactivity.
  #
  # These three error response are represented by the errors
  # Net::IMAP::NoResponseError, Net::IMAP::BadResponseError, and
  # Net::IMAP::ByeResponseError, all of which are subclasses of
  # Net::IMAP::ResponseError.  Essentially, all methods that involve
  # sending a request to the server can generate one of these errors.
  # Only the most pertinent instances have been documented below.
  #
  # Because the IMAP class uses Sockets for communication, its methods
  # are also susceptible to the various errors that can occur when
  # working with sockets.  These are generally represented as
  # Errno errors.  For instance, any method that involves sending a
  # request to the server and/or receiving a response from it could
  # raise an Errno::EPIPE error if the network connection unexpectedly
  # goes down.  See the socket(7), ip(7), tcp(7), socket(2), connect(2),
  # and associated man pages.
  #
  # Finally, a Net::IMAP::DataFormatError is thrown if low-level data
  # is found to be in an incorrect format (for instance, when converting
  # between UTF-8 and UTF-16), and Net::IMAP::ResponseParseError is
  # thrown if a server response is non-parseable.
  #
  #
  # == References
  #
  # [[IMAP]]
  #    M. Crispin, "INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1",
  #    RFC 2060, December 1996.  (Note: since obsoleted by RFC 3501)
  #
  # [[LANGUAGE-TAGS]]
  #    Alvestrand, H., "Tags for the Identification of
  #    Languages", RFC 1766, March 1995.
  #
  # [[MD5]]
  #    Myers, J., and M. Rose, "The Content-MD5 Header Field", RFC
  #    1864, October 1995.
  #
  # [[MIME-IMB]]
  #    Freed, N., and N. Borenstein, "MIME (Multipurpose Internet
  #    Mail Extensions) Part One: Format of Internet Message Bodies", RFC
  #    2045, November 1996.
  #
  # [[RFC-822]]
  #    Crocker, D., "Standard for the Format of ARPA Internet Text
  #    Messages", STD 11, RFC 822, University of Delaware, August 1982.
  #
  # [[RFC-2087]]
  #    Myers, J., "IMAP4 QUOTA extension", RFC 2087, January 1997.
  #
  # [[RFC-2086]]
  #    Myers, J., "IMAP4 ACL extension", RFC 2086, January 1997.
  #
  # [[RFC-2195]]
  #    Klensin, J., Catoe, R., and Krumviede, P., "IMAP/POP AUTHorize Extension
  #    for Simple Challenge/Response", RFC 2195, September 1997.
  #
  # [[SORT-THREAD-EXT]]
  #    Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - SORT and THREAD
  #    Extensions", draft-ietf-imapext-sort, May 2003.
  #
  # [[OSSL]]
  #    http://www.openssl.org
  #
  # [[RSSL]]
  #    http://savannah.gnu.org/projects/rubypki
  #
  # [[UTF7]]
  #    Goldsmith, D. and Davis, M., "UTF-7: A Mail-Safe Transformation Format of
  #    Unicode", RFC 2152, May 1997.
  #
  class IMAP
    include MonitorMixin
    if defined?(OpenSSL::SSL)
      include OpenSSL
      include SSL
    end

    #  Returns an initial greeting response from the server.
    attr_reader :greeting

    # Returns recorded untagged responses.  For example:
    #
    #   imap.select("inbox")
    #   p imap.responses["EXISTS"][-1]
    #   #=> 2
    #   p imap.responses["UIDVALIDITY"][-1]
    #   #=> 968263756
    attr_reader :responses

    # Returns all response handlers.
    attr_reader :response_handlers

    # The thread to receive exceptions.
    attr_accessor :client_thread

    # Flag indicating a message has been seen.
    SEEN = :Seen

    # Flag indicating a message has been answered.
    ANSWERED = :Answered

    # Flag indicating a message has been flagged for special or urgent
    # attention.
    FLAGGED = :Flagged

    # Flag indicating a message has been marked for deletion.  This
    # will occur when the mailbox is closed or expunged.
    DELETED = :Deleted

    # Flag indicating a message is only a draft or work-in-progress version.
    DRAFT = :Draft

    # Flag indicating that the message is "recent," meaning that this
    # session is the first session in which the client has been notified
    # of this message.
    RECENT = :Recent

    # Flag indicating that a mailbox context name cannot contain
    # children.
    NOINFERIORS = :Noinferiors

    # Flag indicating that a mailbox is not selected.
    NOSELECT = :Noselect

    # Flag indicating that a mailbox has been marked "interesting" by
    # the server; this commonly indicates that the mailbox contains
    # new messages.
    MARKED = :Marked

    # Flag indicating that the mailbox does not contains new messages.
    UNMARKED = :Unmarked

    # Returns the debug mode.
    def self.debug
      return @@debug
    end

    # Sets the debug mode.
    def self.debug=(val)
      return @@debug = val
    end

    # Returns the max number of flags interned to symbols.
    def self.max_flag_count
      return @@max_flag_count
    end

    # Sets the max number of flags interned to symbols.
    def self.max_flag_count=(count)
      @@max_flag_count = count
    end

    # Adds an authenticator for Net::IMAP#authenticate.  +auth_type+
    # is the type of authentication this authenticator supports
    # (for instance, "LOGIN").  The +authenticator+ is an object
    # which defines a process() method to handle authentication with
    # the server.  See Net::IMAP::LoginAuthenticator,
    # Net::IMAP::CramMD5Authenticator, and Net::IMAP::DigestMD5Authenticator
    # for examples.
    #
    #
    # If +auth_type+ refers to an existing authenticator, it will be
    # replaced by the new one.
    def self.add_authenticator(auth_type, authenticator)
      @@authenticators[auth_type] = authenticator
    end

    # The default port for IMAP connections, port 143
    def self.default_port
      return PORT
    end

    # The default port for IMAPS connections, port 993
    def self.default_tls_port
      return SSL_PORT
    end

    class << self
      alias default_imap_port default_port
      alias default_imaps_port default_tls_port
      alias default_ssl_port default_tls_port
    end

    # Disconnects from the server.
    def disconnect
      begin
        begin
          # try to call SSL::SSLSocket#io.
          @sock.io.shutdown
        rescue NoMethodError
          # @sock is not an SSL::SSLSocket.
          @sock.shutdown
        end
      rescue Errno::ENOTCONN
        # ignore `Errno::ENOTCONN: Socket is not connected' on some platforms.
      rescue Exception => e
        @receiver_thread.raise(e)
      end
      @receiver_thread.join
      synchronize do
        unless @sock.closed?
          @sock.close
        end
      end
      raise e if e
    end

    # Returns true if disconnected from the server.
    def disconnected?
      return @sock.closed?
    end

    # Sends a CAPABILITY command, and returns an array of
    # capabilities that the server supports.  Each capability
    # is a string.  See [IMAP] for a list of possible
    # capabilities.
    #
    # Note that the Net::IMAP class does not modify its
    # behaviour according to the capabilities of the server;
    # it is up to the user of the class to ensure that
    # a certain capability is supported by a server before
    # using it.
    def capability
      synchronize do
        send_command("CAPABILITY")
        return @responses.delete("CAPABILITY")[-1]
      end
    end

    # Sends a NOOP command to the server. It does nothing.
    def noop
      send_command("NOOP")
    end

    # Sends a LOGOUT command to inform the server that the client is
    # done with the connection.
    def logout
      send_command("LOGOUT")
    end

    # Sends a STARTTLS command to start TLS session.
    def starttls(options = {}, verify = true)
      send_command("STARTTLS") do |resp|
        if resp.kind_of?(TaggedResponse) && resp.name == "OK"
          begin
            # for backward compatibility
            certs = options.to_str
            options = create_ssl_params(certs, verify)
          rescue NoMethodError
          end
          start_tls_session(options)
        end
      end
    end

    # Sends an AUTHENTICATE command to authenticate the client.
    # The +auth_type+ parameter is a string that represents
    # the authentication mechanism to be used. Currently Net::IMAP
    # supports the authentication mechanisms:
    #
    #   LOGIN:: login using cleartext user and password.
    #   CRAM-MD5:: login with cleartext user and encrypted password
    #              (see [RFC-2195] for a full description).  This
    #              mechanism requires that the server have the user's
    #              password stored in clear-text password.
    #
    # For both of these mechanisms, there should be two +args+: username
    # and (cleartext) password.  A server may not support one or the other
    # of these mechanisms; check #capability() for a capability of
    # the form "AUTH=LOGIN" or "AUTH=CRAM-MD5".
    #
    # Authentication is done using the appropriate authenticator object:
    # see @@authenticators for more information on plugging in your own
    # authenticator.
    #
    # For example:
    #
    #    imap.authenticate('LOGIN', user, password)
    #
    # A Net::IMAP::NoResponseError is raised if authentication fails.
    def authenticate(auth_type, *args)
      auth_type = auth_type.upcase
      unless @@authenticators.has_key?(auth_type)
        raise ArgumentError,
          format('unknown auth type - "%s"', auth_type)
      end
      authenticator = @@authenticators[auth_type].new(*args)
      send_command("AUTHENTICATE", auth_type) do |resp|
        if resp.instance_of?(ContinuationRequest)
          data = authenticator.process(resp.data.text.unpack("m")[0])
          s = [data].pack("m").gsub(/\n/, "")
          send_string_data(s)
          put_string(CRLF)
        end
      end
    end

    # Sends a LOGIN command to identify the client and carries
    # the plaintext +password+ authenticating this +user+.  Note
    # that, unlike calling #authenticate() with an +auth_type+
    # of "LOGIN", #login() does *not* use the login authenticator.
    #
    # A Net::IMAP::NoResponseError is raised if authentication fails.
    def login(user, password)
      send_command("LOGIN", user, password)
    end

    # Sends a SELECT command to select a +mailbox+ so that messages
    # in the +mailbox+ can be accessed.
    #
    # After you have selected a mailbox, you may retrieve the
    # number of items in that mailbox from @responses["EXISTS"][-1],
    # and the number of recent messages from @responses["RECENT"][-1].
    # Note that these values can change if new messages arrive
    # during a session; see #add_response_handler() for a way of
    # detecting this event.
    #
    # A Net::IMAP::NoResponseError is raised if the mailbox does not
    # exist or is for some reason non-selectable.
    def select(mailbox)
      synchronize do
        @responses.clear
        send_command("SELECT", mailbox)
      end
    end

    # Sends a EXAMINE command to select a +mailbox+ so that messages
    # in the +mailbox+ can be accessed.  Behaves the same as #select(),
    # except that the selected +mailbox+ is identified as read-only.
    #
    # A Net::IMAP::NoResponseError is raised if the mailbox does not
    # exist or is for some reason non-examinable.
    def examine(mailbox)
      synchronize do
        @responses.clear
        send_command("EXAMINE", mailbox)
      end
    end

    # Sends a CREATE command to create a new +mailbox+.
    #
    # A Net::IMAP::NoResponseError is raised if a mailbox with that name
    # cannot be created.
    def create(mailbox)
      send_command("CREATE", mailbox)
    end

    # Sends a DELETE command to remove the +mailbox+.
    #
    # A Net::IMAP::NoResponseError is raised if a mailbox with that name
    # cannot be deleted, either because it does not exist or because the
    # client does not have permission to delete it.
    def delete(mailbox)
      send_command("DELETE", mailbox)
    end

    # Sends a RENAME command to change the name of the +mailbox+ to
    # +newname+.
    #
    # A Net::IMAP::NoResponseError is raised if a mailbox with the
    # name +mailbox+ cannot be renamed to +newname+ for whatever
    # reason; for instance, because +mailbox+ does not exist, or
    # because there is already a mailbox with the name +newname+.
    def rename(mailbox, newname)
      send_command("RENAME", mailbox, newname)
    end

    # Sends a SUBSCRIBE command to add the specified +mailbox+ name to
    # the server's set of "active" or "subscribed" mailboxes as returned
    # by #lsub().
    #
    # A Net::IMAP::NoResponseError is raised if +mailbox+ cannot be
    # subscribed to; for instance, because it does not exist.
    def subscribe(mailbox)
      send_command("SUBSCRIBE", mailbox)
    end

    # Sends a UNSUBSCRIBE command to remove the specified +mailbox+ name
    # from the server's set of "active" or "subscribed" mailboxes.
    #
    # A Net::IMAP::NoResponseError is raised if +mailbox+ cannot be
    # unsubscribed from; for instance, because the client is not currently
    # subscribed to it.
    def unsubscribe(mailbox)
      send_command("UNSUBSCRIBE", mailbox)
    end

    # Sends a LIST command, and returns a subset of names from
    # the complete set of all names available to the client.
    # +refname+ provides a context (for instance, a base directory
    # in a directory-based mailbox hierarchy).  +mailbox+ specifies
    # a mailbox or (via wildcards) mailboxes under that context.
    # Two wildcards may be used in +mailbox+: '*', which matches
    # all characters *including* the hierarchy delimiter (for instance,
    # '/' on a UNIX-hosted directory-based mailbox hierarchy); and '%',
    # which matches all characters *except* the hierarchy delimiter.
    #
    # If +refname+ is empty, +mailbox+ is used directly to determine
    # which mailboxes to match.  If +mailbox+ is empty, the root
    # name of +refname+ and the hierarchy delimiter are returned.
    #
    # The return value is an array of +Net::IMAP::MailboxList+. For example:
    #
    #   imap.create("foo/bar")
    #   imap.create("foo/baz")
    #   p imap.list("", "foo/%")
    #   #=> [#<Net::IMAP::MailboxList attr=[:Noselect], delim="/", name="foo/">, \\
    #        #<Net::IMAP::MailboxList attr=[:Noinferiors, :Marked], delim="/", name="foo/bar">, \\
    #        #<Net::IMAP::MailboxList attr=[:Noinferiors], delim="/", name="foo/baz">]
    def list(refname, mailbox)
      synchronize do
        send_command("LIST", refname, mailbox)
        return @responses.delete("LIST")
      end
    end

    # Sends a XLIST command, and returns a subset of names from
    # the complete set of all names available to the client.
    # +refname+ provides a context (for instance, a base directory
    # in a directory-based mailbox hierarchy).  +mailbox+ specifies
    # a mailbox or (via wildcards) mailboxes under that context.
    # Two wildcards may be used in +mailbox+: '*', which matches
    # all characters *including* the hierarchy delimiter (for instance,
    # '/' on a UNIX-hosted directory-based mailbox hierarchy); and '%',
    # which matches all characters *except* the hierarchy delimiter.
    #
    # If +refname+ is empty, +mailbox+ is used directly to determine
    # which mailboxes to match.  If +mailbox+ is empty, the root
    # name of +refname+ and the hierarchy delimiter are returned.
    #
    # The XLIST command is like the LIST command except that the flags
    # returned refer to the function of the folder/mailbox, e.g. :Sent
    #
    # The return value is an array of +Net::IMAP::MailboxList+. For example:
    #
    #   imap.create("foo/bar")
    #   imap.create("foo/baz")
    #   p imap.xlist("", "foo/%")
    #   #=> [#<Net::IMAP::MailboxList attr=[:Noselect], delim="/", name="foo/">, \\
    #        #<Net::IMAP::MailboxList attr=[:Noinferiors, :Marked], delim="/", name="foo/bar">, \\
    #        #<Net::IMAP::MailboxList attr=[:Noinferiors], delim="/", name="foo/baz">]
    def xlist(refname, mailbox)
      synchronize do
        send_command("XLIST", refname, mailbox)
        return @responses.delete("XLIST")
      end
    end

    # Sends the GETQUOTAROOT command along with the specified +mailbox+.
    # This command is generally available to both admin and user.
    # If this mailbox exists, it returns an array containing objects of type
    # Net::IMAP::MailboxQuotaRoot and Net::IMAP::MailboxQuota.
    def getquotaroot(mailbox)
      synchronize do
        send_command("GETQUOTAROOT", mailbox)
        result = []
        result.concat(@responses.delete("QUOTAROOT"))
        result.concat(@responses.delete("QUOTA"))
        return result
      end
    end

    # Sends the GETQUOTA command along with specified +mailbox+.
    # If this mailbox exists, then an array containing a
    # Net::IMAP::MailboxQuota object is returned.  This
    # command is generally only available to server admin.
    def getquota(mailbox)
      synchronize do
        send_command("GETQUOTA", mailbox)
        return @responses.delete("QUOTA")
      end
    end

    # Sends a SETQUOTA command along with the specified +mailbox+ and
    # +quota+.  If +quota+ is nil, then +quota+ will be unset for that
    # mailbox.  Typically one needs to be logged in as a server admin
    # for this to work.  The IMAP quota commands are described in
    # [RFC-2087].
    def setquota(mailbox, quota)
      if quota.nil?
        data = '()'
      else
        data = '(STORAGE ' + quota.to_s + ')'
      end
      send_command("SETQUOTA", mailbox, RawData.new(data))
    end

    # Sends the SETACL command along with +mailbox+, +user+ and the
    # +rights+ that user is to have on that mailbox.  If +rights+ is nil,
    # then that user will be stripped of any rights to that mailbox.
    # The IMAP ACL commands are described in [RFC-2086].
    def setacl(mailbox, user, rights)
      if rights.nil?
        send_command("SETACL", mailbox, user, "")
      else
        send_command("SETACL", mailbox, user, rights)
      end
    end

    # Send the GETACL command along with a specified +mailbox+.
    # If this mailbox exists, an array containing objects of
    # Net::IMAP::MailboxACLItem will be returned.
    def getacl(mailbox)
      synchronize do
        send_command("GETACL", mailbox)
        return @responses.delete("ACL")[-1]
      end
    end

    # Sends a LSUB command, and returns a subset of names from the set
    # of names that the user has declared as being "active" or
    # "subscribed."  +refname+ and +mailbox+ are interpreted as
    # for #list().
    # The return value is an array of +Net::IMAP::MailboxList+.
    def lsub(refname, mailbox)
      synchronize do
        send_command("LSUB", refname, mailbox)
        return @responses.delete("LSUB")
      end
    end

    # Sends a STATUS command, and returns the status of the indicated
    # +mailbox+. +attr+ is a list of one or more attributes whose
    # statuses are to be requested.  Supported attributes include:
    #
    #   MESSAGES:: the number of messages in the mailbox.
    #   RECENT:: the number of recent messages in the mailbox.
    #   UNSEEN:: the number of unseen messages in the mailbox.
    #
    # The return value is a hash of attributes. For example:
    #
    #   p imap.status("inbox", ["MESSAGES", "RECENT"])
    #   #=> {"RECENT"=>0, "MESSAGES"=>44}
    #
    # A Net::IMAP::NoResponseError is raised if status values
    # for +mailbox+ cannot be returned; for instance, because it
    # does not exist.
    def status(mailbox, attr)
      synchronize do
        send_command("STATUS", mailbox, attr)
        return @responses.delete("STATUS")[-1].attr
      end
    end

    # Sends a APPEND command to append the +message+ to the end of
    # the +mailbox+. The optional +flags+ argument is an array of
    # flags initially passed to the new message.  The optional
    # +date_time+ argument specifies the creation time to assign to the
    # new message; it defaults to the current time.
    # For example:
    #
    #   imap.append("inbox", <<EOF.gsub(/\n/, "\r\n"), [:Seen], Time.now)
    #   Subject: hello
    #   From: shugo@ruby-lang.org
    #   To: shugo@ruby-lang.org
    #
    #   hello world
    #   EOF
    #
    # A Net::IMAP::NoResponseError is raised if the mailbox does
    # not exist (it is not created automatically), or if the flags,
    # date_time, or message arguments contain errors.
    def append(mailbox, message, flags = nil, date_time = nil)
      args = []
      if flags
        args.push(flags)
      end
      args.push(date_time) if date_time
      args.push(Literal.new(message))
      send_command("APPEND", mailbox, *args)
    end

    # Sends a CHECK command to request a checkpoint of the currently
    # selected mailbox.  This performs implementation-specific
    # housekeeping; for instance, reconciling the mailbox's
    # in-memory and on-disk state.
    def check
      send_command("CHECK")
    end

    # Sends a CLOSE command to close the currently selected mailbox.
    # The CLOSE command permanently removes from the mailbox all
    # messages that have the \Deleted flag set.
    def close
      send_command("CLOSE")
    end

    # Sends a EXPUNGE command to permanently remove from the currently
    # selected mailbox all messages that have the \Deleted flag set.
    def expunge
      synchronize do
        send_command("EXPUNGE")
        return @responses.delete("EXPUNGE")
      end
    end

    # Sends a SEARCH command to search the mailbox for messages that
    # match the given searching criteria, and returns message sequence
    # numbers.  +keys+ can either be a string holding the entire
    # search string, or a single-dimension array of search keywords and
    # arguments.  The following are some common search criteria;
    # see [IMAP] section 6.4.4 for a full list.
    #
    # <message set>:: a set of message sequence numbers.  ',' indicates
    #                 an interval, ':' indicates a range.  For instance,
    #                 '2,10:12,15' means "2,10,11,12,15".
    #
    # BEFORE <date>:: messages with an internal date strictly before
    #                 <date>.  The date argument has a format similar
    #                 to 8-Aug-2002.
    #
    # BODY <string>:: messages that contain <string> within their body.
    #
    # CC <string>:: messages containing <string> in their CC field.
    #
    # FROM <string>:: messages that contain <string> in their FROM field.
    #
    # NEW:: messages with the \Recent, but not the \Seen, flag set.
    #
    # NOT <search-key>:: negate the following search key.
    #
    # OR <search-key> <search-key>:: "or" two search keys together.
    #
    # ON <date>:: messages with an internal date exactly equal to <date>,
    #             which has a format similar to 8-Aug-2002.
    #
    # SINCE <date>:: messages with an internal date on or after <date>.
    #
    # SUBJECT <string>:: messages with <string> in their subject.
    #
    # TO <string>:: messages with <string> in their TO field.
    #
    # For example:
    #
    #   p imap.search(["SUBJECT", "hello", "NOT", "NEW"])
    #   #=> [1, 6, 7, 8]
    def search(keys, charset = nil)
      return search_internal("SEARCH", keys, charset)
    end

    # Similar to #search(), but returns unique identifiers.
    def uid_search(keys, charset = nil)
      return search_internal("UID SEARCH", keys, charset)
    end

    # Sends a FETCH command to retrieve data associated with a message
    # in the mailbox.
    #
    # The +set+ parameter is a number or a range between two numbers,
    # or an array of those.  The number is a message sequence number,
    # where -1 repesents a '*' for use in range notation like 100..-1
    # being interpreted as '100:*'.  Beware that the +exclude_end?+
    # property of a Range object is ignored, and the contents of a
    # range are independent of the order of the range endpoints as per
    # the protocol specification, so 1...5, 5..1 and 5...1 are all
    # equivalent to 1..5.
    #
    # +attr+ is a list of attributes to fetch; see the documentation
    # for Net::IMAP::FetchData for a list of valid attributes.
    #
    # The return value is an array of Net::IMAP::FetchData or nil
    # (instead of an empty array) if there is no matching message.
    #
    # For example:
    #
    #   p imap.fetch(6..8, "UID")
    #   #=> [#<Net::IMAP::FetchData seqno=6, attr={"UID"=>98}>, \\
    #        #<Net::IMAP::FetchData seqno=7, attr={"UID"=>99}>, \\
    #        #<Net::IMAP::FetchData seqno=8, attr={"UID"=>100}>]
    #   p imap.fetch(6, "BODY[HEADER.FIELDS (SUBJECT)]")
    #   #=> [#<Net::IMAP::FetchData seqno=6, attr={"BODY[HEADER.FIELDS (SUBJECT)]"=>"Subject: test\r\n\r\n"}>]
    #   data = imap.uid_fetch(98, ["RFC822.SIZE", "INTERNALDATE"])[0]
    #   p data.seqno
    #   #=> 6
    #   p data.attr["RFC822.SIZE"]
    #   #=> 611
    #   p data.attr["INTERNALDATE"]
    #   #=> "12-Oct-2000 22:40:59 +0900"
    #   p data.attr["UID"]
    #   #=> 98
    def fetch(set, attr)
      return fetch_internal("FETCH", set, attr)
    end

    # Similar to #fetch(), but +set+ contains unique identifiers.
    def uid_fetch(set, attr)
      return fetch_internal("UID FETCH", set, attr)
    end

    # Sends a STORE command to alter data associated with messages
    # in the mailbox, in particular their flags. The +set+ parameter
    # is a number, an array of numbers, or a Range object. Each number
    # is a message sequence number.  +attr+ is the name of a data item
    # to store: 'FLAGS' will replace the message's flag list
    # with the provided one, '+FLAGS' will add the provided flags,
    # and '-FLAGS' will remove them.  +flags+ is a list of flags.
    #
    # The return value is an array of Net::IMAP::FetchData. For example:
    #
    #   p imap.store(6..8, "+FLAGS", [:Deleted])
    #   #=> [#<Net::IMAP::FetchData seqno=6, attr={"FLAGS"=>[:Seen, :Deleted]}>, \\
    #        #<Net::IMAP::FetchData seqno=7, attr={"FLAGS"=>[:Seen, :Deleted]}>, \\
    #        #<Net::IMAP::FetchData seqno=8, attr={"FLAGS"=>[:Seen, :Deleted]}>]
    def store(set, attr, flags)
      return store_internal("STORE", set, attr, flags)
    end

    # Similar to #store(), but +set+ contains unique identifiers.
    def uid_store(set, attr, flags)
      return store_internal("UID STORE", set, attr, flags)
    end

    # Sends a COPY command to copy the specified message(s) to the end
    # of the specified destination +mailbox+. The +set+ parameter is
    # a number, an array of numbers, or a Range object. The number is
    # a message sequence number.
    def copy(set, mailbox)
      copy_internal("COPY", set, mailbox)
    end

    # Similar to #copy(), but +set+ contains unique identifiers.
    def uid_copy(set, mailbox)
      copy_internal("UID COPY", set, mailbox)
    end

    # Sends a SORT command to sort messages in the mailbox.
    # Returns an array of message sequence numbers. For example:
    #
    #   p imap.sort(["FROM"], ["ALL"], "US-ASCII")
    #   #=> [1, 2, 3, 5, 6, 7, 8, 4, 9]
    #   p imap.sort(["DATE"], ["SUBJECT", "hello"], "US-ASCII")
    #   #=> [6, 7, 8, 1]
    #
    # See [SORT-THREAD-EXT] for more details.
    def sort(sort_keys, search_keys, charset)
      return sort_internal("SORT", sort_keys, search_keys, charset)
    end

    # Similar to #sort(), but returns an array of unique identifiers.
    def uid_sort(sort_keys, search_keys, charset)
      return sort_internal("UID SORT", sort_keys, search_keys, charset)
    end

    # Adds a response handler. For example, to detect when
    # the server sends a new EXISTS response (which normally
    # indicates new messages being added to the mailbox),
    # add the following handler after selecting the
    # mailbox:
    #
    #   imap.add_response_handler { |resp|
    #     if resp.kind_of?(Net::IMAP::UntaggedResponse) and resp.name == "EXISTS"
    #       puts "Mailbox now has #{resp.data} messages"
    #     end
    #   }
    #
    def add_response_handler(handler = Proc.new)
      @response_handlers.push(handler)
    end

    # Removes the response handler.
    def remove_response_handler(handler)
      @response_handlers.delete(handler)
    end

    # Similar to #search(), but returns message sequence numbers in threaded
    # format, as a Net::IMAP::ThreadMember tree.  The supported algorithms
    # are:
    #
    # ORDEREDSUBJECT:: split into single-level threads according to subject,
    #                  ordered by date.
    # REFERENCES:: split into threads by parent/child relationships determined
    #              by which message is a reply to which.
    #
    # Unlike #search(), +charset+ is a required argument.  US-ASCII
    # and UTF-8 are sample values.
    #
    # See [SORT-THREAD-EXT] for more details.
    def thread(algorithm, search_keys, charset)
      return thread_internal("THREAD", algorithm, search_keys, charset)
    end

    # Similar to #thread(), but returns unique identifiers instead of
    # message sequence numbers.
    def uid_thread(algorithm, search_keys, charset)
      return thread_internal("UID THREAD", algorithm, search_keys, charset)
    end

    # Sends an IDLE command that waits for notifications of new or expunged
    # messages.  Yields responses from the server during the IDLE.
    #
    # Use #idle_done() to leave IDLE.
    def idle(&response_handler)
      raise LocalJumpError, "no block given" unless response_handler

      response = nil

      synchronize do
        tag = Thread.current[:net_imap_tag] = generate_tag
        put_string("#{tag} IDLE#{CRLF}")

        begin
          add_response_handler(response_handler)
          @idle_done_cond = new_cond
          @idle_done_cond.wait
          @idle_done_cond = nil
          if @receiver_thread_terminating
            raise Net::IMAP::Error, "connection closed"
          end
        ensure
          unless @receiver_thread_terminating
            remove_response_handler(response_handler)
            put_string("DONE#{CRLF}")
            response = get_tagged_response(tag, "IDLE")
          end
        end
      end

      return response
    end

    # Leaves IDLE.
    def idle_done
      synchronize do
        if @idle_done_cond.nil?
          raise Net::IMAP::Error, "not during IDLE"
        end
        @idle_done_cond.signal
      end
    end

    # Decode a string from modified UTF-7 format to UTF-8.
    #
    # UTF-7 is a 7-bit encoding of Unicode [UTF7].  IMAP uses a
    # slightly modified version of this to encode mailbox names
    # containing non-ASCII characters; see [IMAP] section 5.1.3.
    #
    # Net::IMAP does _not_ automatically encode and decode
    # mailbox names to and from UTF-7.
    def self.decode_utf7(s)
      return s.gsub(/&([^-]+)?-/n) {
        if $1
          ($1.tr(",", "/") + "===").unpack("m")[0].encode(Encoding::UTF_8, Encoding::UTF_16BE)
        else
          "&"
        end
      }
    end

    # Encode a string from UTF-8 format to modified UTF-7.
    def self.encode_utf7(s)
      return s.gsub(/(&)|[^\x20-\x7e]+/) {
        if $1
          "&-"
        else
          base64 = [$&.encode(Encoding::UTF_16BE)].pack("m")
          "&" + base64.delete("=\n").tr("/", ",") + "-"
        end
      }.force_encoding("ASCII-8BIT")
    end

    # Formats +time+ as an IMAP-style date.
    def self.format_date(time)
      return time.strftime('%d-%b-%Y')
    end

    # Formats +time+ as an IMAP-style date-time.
    def self.format_datetime(time)
      return time.strftime('%d-%b-%Y %H:%M %z')
    end

    private

    CRLF = "\r\n"      # :nodoc:
    PORT = 143         # :nodoc:
    SSL_PORT = 993   # :nodoc:

    @@debug = false
    @@authenticators = {}
    @@max_flag_count = 10000

    # :call-seq:
    #    Net::IMAP.new(host, options = {})
    #
    # Creates a new Net::IMAP object and connects it to the specified
    # +host+.
    #
    # +options+ is an option hash, each key of which is a symbol.
    #
    # The available options are:
    #
    # port::  Port number (default value is 143 for imap, or 993 for imaps)
    # ssl::   If options[:ssl] is true, then an attempt will be made
    #         to use SSL (now TLS) to connect to the server.  For this to work
    #         OpenSSL [OSSL] and the Ruby OpenSSL [RSSL] extensions need to
    #         be installed.
    #         If options[:ssl] is a hash, it's passed to
    #         OpenSSL::SSL::SSLContext#set_params as parameters.
    #
    # The most common errors are:
    #
    # Errno::ECONNREFUSED:: Connection refused by +host+ or an intervening
    #                       firewall.
    # Errno::ETIMEDOUT:: Connection timed out (possibly due to packets
    #                    being dropped by an intervening firewall).
    # Errno::ENETUNREACH:: There is no route to that network.
    # SocketError:: Hostname not known or other socket error.
    # Net::IMAP::ByeResponseError:: The connected to the host was successful, but
    #                               it immediately said goodbye.
    def initialize(host, port_or_options = {},
                   usessl = false, certs = nil, verify = true)
      super()
      @host = host
      begin
        options = port_or_options.to_hash
      rescue NoMethodError
        # for backward compatibility
        options = {}
        options[:port] = port_or_options
        if usessl
          options[:ssl] = create_ssl_params(certs, verify)
        end
      end
      @port = options[:port] || (options[:ssl] ? SSL_PORT : PORT)
      @tag_prefix = "RUBY"
      @tagno = 0
      @parser = ResponseParser.new
      @sock = TCPSocket.open(@host, @port)
      begin
        if options[:ssl]
          start_tls_session(options[:ssl])
          @usessl = true
        else
          @usessl = false
        end
        @responses = Hash.new([].freeze)
        @tagged_responses = {}
        @response_handlers = []
        @tagged_response_arrival = new_cond
        @continuation_request_arrival = new_cond
        @idle_done_cond = nil
        @logout_command_tag = nil
        @debug_output_bol = true
        @exception = nil

        @greeting = get_response
        if @greeting.nil?
          raise Error, "connection closed"
        end
        if @greeting.name == "BYE"
          raise ByeResponseError, @greeting
        end

        @client_thread = Thread.current
        @receiver_thread = Thread.start {
          begin
            receive_responses
          rescue Exception
          end
        }
        @receiver_thread_terminating = false
      rescue Exception
        @sock.close
        raise
      end
    end

    def receive_responses
      connection_closed = false
      until connection_closed
        synchronize do
          @exception = nil
        end
        begin
          resp = get_response
        rescue Exception => e
          synchronize do
            @sock.close
            @exception = e
          end
          break
        end
        unless resp
          synchronize do
            @exception = EOFError.new("end of file reached")
          end
          break
        end
        begin
          synchronize do
            case resp
            when TaggedResponse
              @tagged_responses[resp.tag] = resp
              @tagged_response_arrival.broadcast
              if resp.tag == @logout_command_tag
                return
              end
            when UntaggedResponse
              record_response(resp.name, resp.data)
              if resp.data.instance_of?(ResponseText) &&
                  (code = resp.data.code)
                record_response(code.name, code.data)
              end
              if resp.name == "BYE" && @logout_command_tag.nil?
                @sock.close
                @exception = ByeResponseError.new(resp)
                connection_closed = true
              end
            when ContinuationRequest
              @continuation_request_arrival.signal
            end
            @response_handlers.each do |handler|
              handler.call(resp)
            end
          end
        rescue Exception => e
          @exception = e
          synchronize do
            @tagged_response_arrival.broadcast
            @continuation_request_arrival.broadcast
          end
        end
      end
      synchronize do
        @receiver_thread_terminating = true
        @tagged_response_arrival.broadcast
        @continuation_request_arrival.broadcast
        if @idle_done_cond
          @idle_done_cond.signal
        end
      end
    end

    def get_tagged_response(tag, cmd)
      until @tagged_responses.key?(tag)
        raise @exception if @exception
        @tagged_response_arrival.wait
      end
      resp = @tagged_responses.delete(tag)
      case resp.name
      when /\A(?:NO)\z/ni
        raise NoResponseError, resp
      when /\A(?:BAD)\z/ni
        raise BadResponseError, resp
      else
        return resp
      end
    end

    def get_response
      buff = ""
      while true
        s = @sock.gets(CRLF)
        break unless s
        buff.concat(s)
        if /\{(\d+)\}\r\n/n =~ s
          s = @sock.read($1.to_i)
          buff.concat(s)
        else
          break
        end
      end
      return nil if buff.length == 0
      if @@debug
        $stderr.print(buff.gsub(/^/n, "S: "))
      end
      return @parser.parse(buff)
    end

    def record_response(name, data)
      unless @responses.has_key?(name)
        @responses[name] = []
      end
      @responses[name].push(data)
    end

    def send_command(cmd, *args, &block)
      synchronize do
        args.each do |i|
          validate_data(i)
        end
        tag = generate_tag
        put_string(tag + " " + cmd)
        args.each do |i|
          put_string(" ")
          send_data(i)
        end
        put_string(CRLF)
        if cmd == "LOGOUT"
          @logout_command_tag = tag
        end
        if block
          add_response_handler(block)
        end
        begin
          return get_tagged_response(tag, cmd)
        ensure
          if block
            remove_response_handler(block)
          end
        end
      end
    end

    def generate_tag
      @tagno += 1
      return format("%s%04d", @tag_prefix, @tagno)
    end

    def put_string(str)
      @sock.print(str)
      if @@debug
        if @debug_output_bol
          $stderr.print("C: ")
        end
        $stderr.print(str.gsub(/\n(?!\z)/n, "\nC: "))
        if /\r\n\z/n.match(str)
          @debug_output_bol = true
        else
          @debug_output_bol = false
        end
      end
    end

    def validate_data(data)
      case data
      when nil
      when String
      when Integer
        NumValidator.ensure_number(data)
      when Array
        data.each do |i|
          validate_data(i)
        end
      when Time
      when Symbol
      else
        data.validate
      end
    end

    def send_data(data)
      case data
      when nil
        put_string("NIL")
      when String
        send_string_data(data)
      when Integer
        send_number_data(data)
      when Array
        send_list_data(data)
      when Time
        send_time_data(data)
      when Symbol
        send_symbol_data(data)
      else
        data.send_data(self)
      end
    end

    def send_string_data(str)
      case str
      when ""
        put_string('""')
      when /[\x80-\xff\r\n]/n
        # literal
        send_literal(str)
      when /[(){ \x00-\x1f\x7f%*"\\]/n
        # quoted string
        send_quoted_string(str)
      else
        put_string(str)
      end
    end

    def send_quoted_string(str)
      put_string('"' + str.gsub(/["\\]/n, "\\\\\\&") + '"')
    end

    def send_literal(str)
      put_string("{" + str.bytesize.to_s + "}" + CRLF)
      @continuation_request_arrival.wait
      raise @exception if @exception
      put_string(str)
    end

    def send_number_data(num)
      put_string(num.to_s)
    end

    def send_list_data(list)
      put_string("(")
      first = true
      list.each do |i|
        if first
          first = false
        else
          put_string(" ")
        end
        send_data(i)
      end
      put_string(")")
    end

    DATE_MONTH = %w(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)

    def send_time_data(time)
      t = time.dup.gmtime
      s = format('"%2d-%3s-%4d %02d:%02d:%02d +0000"',
                 t.day, DATE_MONTH[t.month - 1], t.year,
                 t.hour, t.min, t.sec)
      put_string(s)
    end

    def send_symbol_data(symbol)
      put_string("\\" + symbol.to_s)
    end

    def search_internal(cmd, keys, charset)
      if keys.instance_of?(String)
        keys = [RawData.new(keys)]
      else
        normalize_searching_criteria(keys)
      end
      synchronize do
        if charset
          send_command(cmd, "CHARSET", charset, *keys)
        else
          send_command(cmd, *keys)
        end
        return @responses.delete("SEARCH")[-1]
      end
    end

    def fetch_internal(cmd, set, attr)
      case attr
      when String then
        attr = RawData.new(attr)
      when Array then
        attr = attr.map { |arg|
          arg.is_a?(String) ? RawData.new(arg) : arg
        }
      end

      synchronize do
        @responses.delete("FETCH")
        send_command(cmd, MessageSet.new(set), attr)
        return @responses.delete("FETCH")
      end
    end

    def store_internal(cmd, set, attr, flags)
      if attr.instance_of?(String)
        attr = RawData.new(attr)
      end
      synchronize do
        @responses.delete("FETCH")
        send_command(cmd, MessageSet.new(set), attr, flags)
        return @responses.delete("FETCH")
      end
    end

    def copy_internal(cmd, set, mailbox)
      send_command(cmd, MessageSet.new(set), mailbox)
    end

    def sort_internal(cmd, sort_keys, search_keys, charset)
      if search_keys.instance_of?(String)
        search_keys = [RawData.new(search_keys)]
      else
        normalize_searching_criteria(search_keys)
      end
      normalize_searching_criteria(search_keys)
      synchronize do
        send_command(cmd, sort_keys, charset, *search_keys)
        return @responses.delete("SORT")[-1]
      end
    end

    def thread_internal(cmd, algorithm, search_keys, charset)
      if search_keys.instance_of?(String)
        search_keys = [RawData.new(search_keys)]
      else
        normalize_searching_criteria(search_keys)
      end
      normalize_searching_criteria(search_keys)
      send_command(cmd, algorithm, charset, *search_keys)
      return @responses.delete("THREAD")[-1]
    end

    def normalize_searching_criteria(keys)
      keys.collect! do |i|
        case i
        when -1, Range, Array
          MessageSet.new(i)
        else
          i
        end
      end
    end

    def create_ssl_params(certs = nil, verify = true)
      params = {}
      if certs
        if File.file?(certs)
          params[:ca_file] = certs
        elsif File.directory?(certs)
          params[:ca_path] = certs
        end
      end
      if verify
        params[:verify_mode] = VERIFY_PEER
      else
        params[:verify_mode] = VERIFY_NONE
      end
      return params
    end

    def start_tls_session(params = {})
      unless defined?(OpenSSL::SSL)
        raise "SSL extension not installed"
      end
      if @sock.kind_of?(OpenSSL::SSL::SSLSocket)
        raise RuntimeError, "already using SSL"
      end
      begin
        params = params.to_hash
      rescue NoMethodError
        params = {}
      end
      context = SSLContext.new
      context.set_params(params)
      if defined?(VerifyCallbackProc)
        context.verify_callback = VerifyCallbackProc
      end
      @sock = SSLSocket.new(@sock, context)
      @sock.sync_close = true
      @sock.connect
      if context.verify_mode != VERIFY_NONE
        @sock.post_connection_check(@host)
      end
    end

    class RawData # :nodoc:
      def send_data(imap)
        imap.send(:put_string, @data)
      end

      def validate
      end

      private

      def initialize(data)
        @data = data
      end
    end

    class Atom # :nodoc:
      def send_data(imap)
        imap.send(:put_string, @data)
      end

      def validate
      end

      private

      def initialize(data)
        @data = data
      end
    end

    class QuotedString # :nodoc:
      def send_data(imap)
        imap.send(:send_quoted_string, @data)
      end

      def validate
      end

      private

      def initialize(data)
        @data = data
      end
    end

    class Literal # :nodoc:
      def send_data(imap)
        imap.send(:send_literal, @data)
      end

      def validate
      end

      private

      def initialize(data)
        @data = data
      end
    end

    class MessageSet # :nodoc:
      def send_data(imap)
        imap.send(:put_string, format_internal(@data))
      end

      def validate
        validate_internal(@data)
      end

      private

      def initialize(data)
        @data = data
      end

      def format_internal(data)
        case data
        when "*"
          return data
        when Integer
          if data == -1
            return "*"
          else
            return data.to_s
          end
        when Range
          return format_internal(data.first) +
            ":" + format_internal(data.last)
        when Array
          return data.collect {|i| format_internal(i)}.join(",")
        when ThreadMember
          return data.seqno.to_s +
            ":" + data.children.collect {|i| format_internal(i).join(",")}
        end
      end

      def validate_internal(data)
        case data
        when "*"
        when Integer
          NumValidator.ensure_nz_number(data)
        when Range
        when Array
          data.each do |i|
            validate_internal(i)
          end
        when ThreadMember
          data.children.each do |i|
            validate_internal(i)
          end
        else
          raise DataFormatError, data.inspect
        end
      end
    end

    # Common validators of number and nz_number types
    module NumValidator # :nodoc
      class << self
        # Check is passed argument valid 'number' in RFC 3501 terminology
        def valid_number?(num)
          # [RFC 3501]
          # number          = 1*DIGIT
          #                    ; Unsigned 32-bit integer
          #                    ; (0 <= n < 4,294,967,296)
          num >= 0 && num < 4294967296
        end

        # Check is passed argument valid 'nz_number' in RFC 3501 terminology
        def valid_nz_number?(num)
          # [RFC 3501]
          # nz-number       = digit-nz *DIGIT
          #                    ; Non-zero unsigned 32-bit integer
          #                    ; (0 < n < 4,294,967,296)
          num != 0 && valid_number?(num)
        end

        # Ensure argument is 'number' or raise DataFormatError
        def ensure_number(num)
          return if valid_number?(num)

          msg = "number must be unsigned 32-bit integer: #{num}"
          raise DataFormatError, msg
        end

        # Ensure argument is 'nz_number' or raise DataFormatError
        def ensure_nz_number(num)
          return if valid_nz_number?(num)

          msg = "nz_number must be non-zero unsigned 32-bit integer: #{num}"
          raise DataFormatError, msg
        end
      end
    end

    # Net::IMAP::ContinuationRequest represents command continuation requests.
    #
    # The command continuation request response is indicated by a "+" token
    # instead of a tag.  This form of response indicates that the server is
    # ready to accept the continuation of a command from the client.  The
    # remainder of this response is a line of text.
    #
    #   continue_req    ::= "+" SPACE (resp_text / base64)
    #
    # ==== Fields:
    #
    # data:: Returns the data (Net::IMAP::ResponseText).
    #
    # raw_data:: Returns the raw data string.
    ContinuationRequest = Struct.new(:data, :raw_data)

    # Net::IMAP::UntaggedResponse represents untagged responses.
    #
    # Data transmitted by the server to the client and status responses
    # that do not indicate command completion are prefixed with the token
    # "*", and are called untagged responses.
    #
    #   response_data   ::= "*" SPACE (resp_cond_state / resp_cond_bye /
    #                       mailbox_data / message_data / capability_data)
    #
    # ==== Fields:
    #
    # name:: Returns the name, such as "FLAGS", "LIST", or "FETCH".
    #
    # data:: Returns the data such as an array of flag symbols,
    #        a ((<Net::IMAP::MailboxList>)) object.
    #
    # raw_data:: Returns the raw data string.
    UntaggedResponse = Struct.new(:name, :data, :raw_data)

    # Net::IMAP::TaggedResponse represents tagged responses.
    #
    # The server completion result response indicates the success or
    # failure of the operation.  It is tagged with the same tag as the
    # client command which began the operation.
    #
    #   response_tagged ::= tag SPACE resp_cond_state CRLF
    #
    #   tag             ::= 1*<any ATOM_CHAR except "+">
    #
    #   resp_cond_state ::= ("OK" / "NO" / "BAD") SPACE resp_text
    #
    # ==== Fields:
    #
    # tag:: Returns the tag.
    #
    # name:: Returns the name, one of "OK", "NO", or "BAD".
    #
    # data:: Returns the data. See ((<Net::IMAP::ResponseText>)).
    #
    # raw_data:: Returns the raw data string.
    #
    TaggedResponse = Struct.new(:tag, :name, :data, :raw_data)

    # Net::IMAP::ResponseText represents texts of responses.
    # The text may be prefixed by the response code.
    #
    #   resp_text       ::= ["[" resp_text_code "]" SPACE] (text_mime2 / text)
    #                       ;; text SHOULD NOT begin with "[" or "="
    #
    # ==== Fields:
    #
    # code:: Returns the response code. See ((<Net::IMAP::ResponseCode>)).
    #
    # text:: Returns the text.
    #
    ResponseText = Struct.new(:code, :text)

    # Net::IMAP::ResponseCode represents response codes.
    #
    #   resp_text_code  ::= "ALERT" / "PARSE" /
    #                       "PERMANENTFLAGS" SPACE "(" #(flag / "\*") ")" /
    #                       "READ-ONLY" / "READ-WRITE" / "TRYCREATE" /
    #                       "UIDVALIDITY" SPACE nz_number /
    #                       "UNSEEN" SPACE nz_number /
    #                       atom [SPACE 1*<any TEXT_CHAR except "]">]
    #
    # ==== Fields:
    #
    # name:: Returns the name, such as "ALERT", "PERMANENTFLAGS", or "UIDVALIDITY".
    #
    # data:: Returns the data, if it exists.
    #
    ResponseCode = Struct.new(:name, :data)

    # Net::IMAP::MailboxList represents contents of the LIST response.
    #
    #   mailbox_list    ::= "(" #("\Marked" / "\Noinferiors" /
    #                       "\Noselect" / "\Unmarked" / flag_extension) ")"
    #                       SPACE (<"> QUOTED_CHAR <"> / nil) SPACE mailbox
    #
    # ==== Fields:
    #
    # attr:: Returns the name attributes. Each name attribute is a symbol
    #        capitalized by String#capitalize, such as :Noselect (not :NoSelect).
    #
    # delim:: Returns the hierarchy delimiter.
    #
    # name:: Returns the mailbox name.
    #
    MailboxList = Struct.new(:attr, :delim, :name)

    # Net::IMAP::MailboxQuota represents contents of GETQUOTA response.
    # This object can also be a response to GETQUOTAROOT.  In the syntax
    # specification below, the delimiter used with the "#" construct is a
    # single space (SPACE).
    #
    #    quota_list      ::= "(" #quota_resource ")"
    #
    #    quota_resource  ::= atom SPACE number SPACE number
    #
    #    quota_response  ::= "QUOTA" SPACE astring SPACE quota_list
    #
    # ==== Fields:
    #
    # mailbox:: The mailbox with the associated quota.
    #
    # usage:: Current storage usage of the mailbox.
    #
    # quota:: Quota limit imposed on the mailbox.
    #
    MailboxQuota = Struct.new(:mailbox, :usage, :quota)

    # Net::IMAP::MailboxQuotaRoot represents part of the GETQUOTAROOT
    # response. (GETQUOTAROOT can also return Net::IMAP::MailboxQuota.)
    #
    #    quotaroot_response ::= "QUOTAROOT" SPACE astring *(SPACE astring)
    #
    # ==== Fields:
    #
    # mailbox:: The mailbox with the associated quota.
    #
    # quotaroots:: Zero or more quotaroots that affect the quota on the
    #              specified mailbox.
    #
    MailboxQuotaRoot = Struct.new(:mailbox, :quotaroots)

    # Net::IMAP::MailboxACLItem represents the response from GETACL.
    #
    #    acl_data        ::= "ACL" SPACE mailbox *(SPACE identifier SPACE rights)
    #
    #    identifier      ::= astring
    #
    #    rights          ::= astring
    #
    # ==== Fields:
    #
    # user:: Login name that has certain rights to the mailbox
    #        that was specified with the getacl command.
    #
    # rights:: The access rights the indicated user has to the
    #          mailbox.
    #
    MailboxACLItem = Struct.new(:user, :rights, :mailbox)

    # Net::IMAP::StatusData represents the contents of the STATUS response.
    #
    # ==== Fields:
    #
    # mailbox:: Returns the mailbox name.
    #
    # attr:: Returns a hash. Each key is one of "MESSAGES", "RECENT", "UIDNEXT",
    #        "UIDVALIDITY", "UNSEEN". Each value is a number.
    #
    StatusData = Struct.new(:mailbox, :attr)

    # Net::IMAP::FetchData represents the contents of the FETCH response.
    #
    # ==== Fields:
    #
    # seqno:: Returns the message sequence number.
    #         (Note: not the unique identifier, even for the UID command response.)
    #
    # attr:: Returns a hash. Each key is a data item name, and each value is
    #        its value.
    #
    #        The current data items are:
    #
    #        [BODY]
    #           A form of BODYSTRUCTURE without extension data.
    #        [BODY[<section>]<<origin_octet>>]
    #           A string expressing the body contents of the specified section.
    #        [BODYSTRUCTURE]
    #           An object that describes the [MIME-IMB] body structure of a message.
    #           See Net::IMAP::BodyTypeBasic, Net::IMAP::BodyTypeText,
    #           Net::IMAP::BodyTypeMessage, Net::IMAP::BodyTypeMultipart.
    #        [ENVELOPE]
    #           A Net::IMAP::Envelope object that describes the envelope
    #           structure of a message.
    #        [FLAGS]
    #           A array of flag symbols that are set for this message. Flag symbols
    #           are capitalized by String#capitalize.
    #        [INTERNALDATE]
    #           A string representing the internal date of the message.
    #        [RFC822]
    #           Equivalent to BODY[].
    #        [RFC822.HEADER]
    #           Equivalent to BODY.PEEK[HEADER].
    #        [RFC822.SIZE]
    #           A number expressing the [RFC-822] size of the message.
    #        [RFC822.TEXT]
    #           Equivalent to BODY[TEXT].
    #        [UID]
    #           A number expressing the unique identifier of the message.
    #
    FetchData = Struct.new(:seqno, :attr)

    # Net::IMAP::Envelope represents envelope structures of messages.
    #
    # ==== Fields:
    #
    # date:: Returns a string that represents the date.
    #
    # subject:: Returns a string that represents the subject.
    #
    # from:: Returns an array of Net::IMAP::Address that represents the from.
    #
    # sender:: Returns an array of Net::IMAP::Address that represents the sender.
    #
    # reply_to:: Returns an array of Net::IMAP::Address that represents the reply-to.
    #
    # to:: Returns an array of Net::IMAP::Address that represents the to.
    #
    # cc:: Returns an array of Net::IMAP::Address that represents the cc.
    #
    # bcc:: Returns an array of Net::IMAP::Address that represents the bcc.
    #
    # in_reply_to:: Returns a string that represents the in-reply-to.
    #
    # message_id:: Returns a string that represents the message-id.
    #
    Envelope = Struct.new(:date, :subject, :from, :sender, :reply_to,
                          :to, :cc, :bcc, :in_reply_to, :message_id)

    #
    # Net::IMAP::Address represents electronic mail addresses.
    #
    # ==== Fields:
    #
    # name:: Returns the phrase from [RFC-822] mailbox.
    #
    # route:: Returns the route from [RFC-822] route-addr.
    #
    # mailbox:: nil indicates end of [RFC-822] group.
    #           If non-nil and host is nil, returns [RFC-822] group name.
    #           Otherwise, returns [RFC-822] local-part.
    #
    # host:: nil indicates [RFC-822] group syntax.
    #        Otherwise, returns [RFC-822] domain name.
    #
    Address = Struct.new(:name, :route, :mailbox, :host)

    #
    # Net::IMAP::ContentDisposition represents Content-Disposition fields.
    #
    # ==== Fields:
    #
    # dsp_type:: Returns the disposition type.
    #
    # param:: Returns a hash that represents parameters of the Content-Disposition
    #         field.
    #
    ContentDisposition = Struct.new(:dsp_type, :param)

    # Net::IMAP::ThreadMember represents a thread-node returned
    # by Net::IMAP#thread.
    #
    # ==== Fields:
    #
    # seqno:: The sequence number of this message.
    #
    # children:: An array of Net::IMAP::ThreadMember objects for mail
    #            items that are children of this in the thread.
    #
    ThreadMember = Struct.new(:seqno, :children)

    # Net::IMAP::BodyTypeBasic represents basic body structures of messages.
    #
    # ==== Fields:
    #
    # media_type:: Returns the content media type name as defined in [MIME-IMB].
    #
    # subtype:: Returns the content subtype name as defined in [MIME-IMB].
    #
    # param:: Returns a hash that represents parameters as defined in [MIME-IMB].
    #
    # content_id:: Returns a string giving the content id as defined in [MIME-IMB].
    #
    # description:: Returns a string giving the content description as defined in
    #               [MIME-IMB].
    #
    # encoding:: Returns a string giving the content transfer encoding as defined in
    #            [MIME-IMB].
    #
    # size:: Returns a number giving the size of the body in octets.
    #
    # md5:: Returns a string giving the body MD5 value as defined in [MD5].
    #
    # disposition:: Returns a Net::IMAP::ContentDisposition object giving
    #               the content disposition.
    #
    # language:: Returns a string or an array of strings giving the body
    #            language value as defined in [LANGUAGE-TAGS].
    #
    # extension:: Returns extension data.
    #
    # multipart?:: Returns false.
    #
    class BodyTypeBasic < Struct.new(:media_type, :subtype,
                                     :param, :content_id,
                                     :description, :encoding, :size,
                                     :md5, :disposition, :language,
                                     :extension)
      def multipart?
        return false
      end

      # Obsolete: use +subtype+ instead.  Calling this will
      # generate a warning message to +stderr+, then return
      # the value of +subtype+.
      def media_subtype
        $stderr.printf("warning: media_subtype is obsolete.\n")
        $stderr.printf("         use subtype instead.\n")
        return subtype
      end
    end

    # Net::IMAP::BodyTypeText represents TEXT body structures of messages.
    #
    # ==== Fields:
    #
    # lines:: Returns the size of the body in text lines.
    #
    # And Net::IMAP::BodyTypeText has all fields of Net::IMAP::BodyTypeBasic.
    #
    class BodyTypeText < Struct.new(:media_type, :subtype,
                                    :param, :content_id,
                                    :description, :encoding, :size,
                                    :lines,
                                    :md5, :disposition, :language,
                                    :extension)
      def multipart?
        return false
      end

      # Obsolete: use +subtype+ instead.  Calling this will
      # generate a warning message to +stderr+, then return
      # the value of +subtype+.
      def media_subtype
        $stderr.printf("warning: media_subtype is obsolete.\n")
        $stderr.printf("         use subtype instead.\n")
        return subtype
      end
    end

    # Net::IMAP::BodyTypeMessage represents MESSAGE/RFC822 body structures of messages.
    #
    # ==== Fields:
    #
    # envelope:: Returns a Net::IMAP::Envelope giving the envelope structure.
    #
    # body:: Returns an object giving the body structure.
    #
    # And Net::IMAP::BodyTypeMessage has all methods of Net::IMAP::BodyTypeText.
    #
    class BodyTypeMessage < Struct.new(:media_type, :subtype,
                                       :param, :content_id,
                                       :description, :encoding, :size,
                                       :envelope, :body, :lines,
                                       :md5, :disposition, :language,
                                       :extension)
      def multipart?
        return false
      end

      # Obsolete: use +subtype+ instead.  Calling this will
      # generate a warning message to +stderr+, then return
      # the value of +subtype+.
      def media_subtype
        $stderr.printf("warning: media_subtype is obsolete.\n")
        $stderr.printf("         use subtype instead.\n")
        return subtype
      end
    end

    # Net::IMAP::BodyTypeAttachment represents attachment body structures
    # of messages.
    #
    # ==== Fields:
    #
    # media_type:: Returns the content media type name.
    #
    # subtype:: Returns +nil+.
    #
    # param:: Returns a hash that represents parameters.
    #
    # multipart?:: Returns false.
    #
    class BodyTypeAttachment < Struct.new(:media_type, :subtype,
                                          :param)
      def multipart?
        return false
      end
    end

    # Net::IMAP::BodyTypeMultipart represents multipart body structures
    # of messages.
    #
    # ==== Fields:
    #
    # media_type:: Returns the content media type name as defined in [MIME-IMB].
    #
    # subtype:: Returns the content subtype name as defined in [MIME-IMB].
    #
    # parts:: Returns multiple parts.
    #
    # param:: Returns a hash that represents parameters as defined in [MIME-IMB].
    #
    # disposition:: Returns a Net::IMAP::ContentDisposition object giving
    #               the content disposition.
    #
    # language:: Returns a string or an array of strings giving the body
    #            language value as defined in [LANGUAGE-TAGS].
    #
    # extension:: Returns extension data.
    #
    # multipart?:: Returns true.
    #
    class BodyTypeMultipart < Struct.new(:media_type, :subtype,
                                         :parts,
                                         :param, :disposition, :language,
                                         :extension)
      def multipart?
        return true
      end

      # Obsolete: use +subtype+ instead.  Calling this will
      # generate a warning message to +stderr+, then return
      # the value of +subtype+.
      def media_subtype
        $stderr.printf("warning: media_subtype is obsolete.\n")
        $stderr.printf("         use subtype instead.\n")
        return subtype
      end
    end

    class BodyTypeExtension < Struct.new(:media_type, :subtype,
                                         :params, :content_id,
                                         :description, :encoding, :size)
      def multipart?
        return false
      end
    end

    class ResponseParser # :nodoc:
      def initialize
        @str = nil
        @pos = nil
        @lex_state = nil
        @token = nil
        @flag_symbols = {}
      end

      def parse(str)
        @str = str
        @pos = 0
        @lex_state = EXPR_BEG
        @token = nil
        return response
      end

      private

      EXPR_BEG          = :EXPR_BEG
      EXPR_DATA         = :EXPR_DATA
      EXPR_TEXT         = :EXPR_TEXT
      EXPR_RTEXT        = :EXPR_RTEXT
      EXPR_CTEXT        = :EXPR_CTEXT

      T_SPACE   = :SPACE
      T_NIL     = :NIL
      T_NUMBER  = :NUMBER
      T_ATOM    = :ATOM
      T_QUOTED  = :QUOTED
      T_LPAR    = :LPAR
      T_RPAR    = :RPAR
      T_BSLASH  = :BSLASH
      T_STAR    = :STAR
      T_LBRA    = :LBRA
      T_RBRA    = :RBRA
      T_LITERAL = :LITERAL
      T_PLUS    = :PLUS
      T_PERCENT = :PERCENT
      T_CRLF    = :CRLF
      T_EOF     = :EOF
      T_TEXT    = :TEXT

      BEG_REGEXP = /\G(?:\
(?# 1:  SPACE   )( +)|\
(?# 2:  NIL     )(NIL)(?=[\x80-\xff(){ \x00-\x1f\x7f%*"\\\[\]+])|\
(?# 3:  NUMBER  )(\d+)(?=[\x80-\xff(){ \x00-\x1f\x7f%*"\\\[\]+])|\
(?# 4:  ATOM    )([^\x80-\xff(){ \x00-\x1f\x7f%*"\\\[\]+]+)|\
(?# 5:  QUOTED  )"((?:[^\x00\r\n"\\]|\\["\\])*)"|\
(?# 6:  LPAR    )(\()|\
(?# 7:  RPAR    )(\))|\
(?# 8:  BSLASH  )(\\)|\
(?# 9:  STAR    )(\*)|\
(?# 10: LBRA    )(\[)|\
(?# 11: RBRA    )(\])|\
(?# 12: LITERAL )\{(\d+)\}\r\n|\
(?# 13: PLUS    )(\+)|\
(?# 14: PERCENT )(%)|\
(?# 15: CRLF    )(\r\n)|\
(?# 16: EOF     )(\z))/ni

      DATA_REGEXP = /\G(?:\
(?# 1:  SPACE   )( )|\
(?# 2:  NIL     )(NIL)|\
(?# 3:  NUMBER  )(\d+)|\
(?# 4:  QUOTED  )"((?:[^\x00\r\n"\\]|\\["\\])*)"|\
(?# 5:  LITERAL )\{(\d+)\}\r\n|\
(?# 6:  LPAR    )(\()|\
(?# 7:  RPAR    )(\)))/ni

      TEXT_REGEXP = /\G(?:\
(?# 1:  TEXT    )([^\x00\r\n]*))/ni

      RTEXT_REGEXP = /\G(?:\
(?# 1:  LBRA    )(\[)|\
(?# 2:  TEXT    )([^\x00\r\n]*))/ni

      CTEXT_REGEXP = /\G(?:\
(?# 1:  TEXT    )([^\x00\r\n\]]*))/ni

      Token = Struct.new(:symbol, :value)

      def response
        token = lookahead
        case token.symbol
        when T_PLUS
          result = continue_req
        when T_STAR
          result = response_untagged
        else
          result = response_tagged
        end
        match(T_CRLF)
        match(T_EOF)
        return result
      end

      def continue_req
        match(T_PLUS)
        match(T_SPACE)
        return ContinuationRequest.new(resp_text, @str)
      end

      def response_untagged
        match(T_STAR)
        match(T_SPACE)
        token = lookahead
        if token.symbol == T_NUMBER
          return numeric_response
        elsif token.symbol == T_ATOM
          case token.value
          when /\A(?:OK|NO|BAD|BYE|PREAUTH)\z/ni
            return response_cond
          when /\A(?:FLAGS)\z/ni
            return flags_response
          when /\A(?:LIST|LSUB|XLIST)\z/ni
            return list_response
          when /\A(?:QUOTA)\z/ni
            return getquota_response
          when /\A(?:QUOTAROOT)\z/ni
            return getquotaroot_response
          when /\A(?:ACL)\z/ni
            return getacl_response
          when /\A(?:SEARCH|SORT)\z/ni
            return search_response
          when /\A(?:THREAD)\z/ni
            return thread_response
          when /\A(?:STATUS)\z/ni
            return status_response
          when /\A(?:CAPABILITY)\z/ni
            return capability_response
          else
            return text_response
          end
        else
          parse_error("unexpected token %s", token.symbol)
        end
      end

      def response_tagged
        tag = atom
        match(T_SPACE)
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        return TaggedResponse.new(tag, name, resp_text, @str)
      end

      def response_cond
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        return UntaggedResponse.new(name, resp_text, @str)
      end

      def numeric_response
        n = number
        match(T_SPACE)
        token = match(T_ATOM)
        name = token.value.upcase
        case name
        when "EXISTS", "RECENT", "EXPUNGE"
          return UntaggedResponse.new(name, n, @str)
        when "FETCH"
          shift_token
          match(T_SPACE)
          data = FetchData.new(n, msg_att(n))
          return UntaggedResponse.new(name, data, @str)
        end
      end

      def msg_att(n)
        match(T_LPAR)
        attr = {}
        while true
          token = lookahead
          case token.symbol
          when T_RPAR
            shift_token
            break
          when T_SPACE
            shift_token
            next
          end
          case token.value
          when /\A(?:ENVELOPE)\z/ni
            name, val = envelope_data
          when /\A(?:FLAGS)\z/ni
            name, val = flags_data
          when /\A(?:INTERNALDATE)\z/ni
            name, val = internaldate_data
          when /\A(?:RFC822(?:\.HEADER|\.TEXT)?)\z/ni
            name, val = rfc822_text
          when /\A(?:RFC822\.SIZE)\z/ni
            name, val = rfc822_size
          when /\A(?:BODY(?:STRUCTURE)?)\z/ni
            name, val = body_data
          when /\A(?:UID)\z/ni
            name, val = uid_data
          else
            parse_error("unknown attribute `%s' for {%d}", token.value, n)
          end
          attr[name] = val
        end
        return attr
      end

      def envelope_data
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        return name, envelope
      end

      def envelope
        @lex_state = EXPR_DATA
        token = lookahead
        if token.symbol == T_NIL
          shift_token
          result = nil
        else
          match(T_LPAR)
          date = nstring
          match(T_SPACE)
          subject = nstring
          match(T_SPACE)
          from = address_list
          match(T_SPACE)
          sender = address_list
          match(T_SPACE)
          reply_to = address_list
          match(T_SPACE)
          to = address_list
          match(T_SPACE)
          cc = address_list
          match(T_SPACE)
          bcc = address_list
          match(T_SPACE)
          in_reply_to = nstring
          match(T_SPACE)
          message_id = nstring
          match(T_RPAR)
          result = Envelope.new(date, subject, from, sender, reply_to,
                                to, cc, bcc, in_reply_to, message_id)
        end
        @lex_state = EXPR_BEG
        return result
      end

      def flags_data
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        return name, flag_list
      end

      def internaldate_data
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        token = match(T_QUOTED)
        return name, token.value
      end

      def rfc822_text
        token = match(T_ATOM)
        name = token.value.upcase
        token = lookahead
        if token.symbol == T_LBRA
          shift_token
          match(T_RBRA)
        end
        match(T_SPACE)
        return name, nstring
      end

      def rfc822_size
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        return name, number
      end

      def body_data
        token = match(T_ATOM)
        name = token.value.upcase
        token = lookahead
        if token.symbol == T_SPACE
          shift_token
          return name, body
        end
        name.concat(section)
        token = lookahead
        if token.symbol == T_ATOM
          name.concat(token.value)
          shift_token
        end
        match(T_SPACE)
        data = nstring
        return name, data
      end

      def body
        @lex_state = EXPR_DATA
        token = lookahead
        if token.symbol == T_NIL
          shift_token
          result = nil
        else
          match(T_LPAR)
          token = lookahead
          if token.symbol == T_LPAR
            result = body_type_mpart
          else
            result = body_type_1part
          end
          match(T_RPAR)
        end
        @lex_state = EXPR_BEG
        return result
      end

      def body_type_1part
        token = lookahead
        case token.value
        when /\A(?:TEXT)\z/ni
          return body_type_text
        when /\A(?:MESSAGE)\z/ni
          return body_type_msg
        when /\A(?:ATTACHMENT)\z/ni
          return body_type_attachment
        when /\A(?:MIXED)\z/ni
          return body_type_mixed
        else
          return body_type_basic
        end
      end

      def body_type_basic
        mtype, msubtype = media_type
        token = lookahead
        if token.symbol == T_RPAR
          return BodyTypeBasic.new(mtype, msubtype)
        end
        match(T_SPACE)
        param, content_id, desc, enc, size = body_fields
        md5, disposition, language, extension = body_ext_1part
        return BodyTypeBasic.new(mtype, msubtype,
                                 param, content_id,
                                 desc, enc, size,
                                 md5, disposition, language, extension)
      end

      def body_type_text
        mtype, msubtype = media_type
        match(T_SPACE)
        param, content_id, desc, enc, size = body_fields
        match(T_SPACE)
        lines = number
        md5, disposition, language, extension = body_ext_1part
        return BodyTypeText.new(mtype, msubtype,
                                param, content_id,
                                desc, enc, size,
                                lines,
                                md5, disposition, language, extension)
      end

      def body_type_msg
        mtype, msubtype = media_type
        match(T_SPACE)
        param, content_id, desc, enc, size = body_fields

        token = lookahead
        if token.symbol == T_RPAR
          # If this is not message/rfc822, we shouldn't apply the RFC822
          # spec to it.  We should handle anything other than
          # message/rfc822 using multipart extension data [rfc3501] (i.e.
          # the data itself won't be returned, we would have to retrieve it
          # with BODYSTRUCTURE instead of with BODY

          # Also, sometimes a message/rfc822 is included as a large
          # attachment instead of having all of the other details
          # (e.g. attaching a .eml file to an email)
          if msubtype == "RFC822"
            return BodyTypeMessage.new(mtype, msubtype, param, content_id,
                                       desc, enc, size, nil, nil, nil, nil,
                                       nil, nil, nil)
          else
            return BodyTypeExtension.new(mtype, msubtype,
                                         param, content_id,
                                         desc, enc, size)
          end
        end

        match(T_SPACE)
        env = envelope
        match(T_SPACE)
        b = body
        match(T_SPACE)
        lines = number
        md5, disposition, language, extension = body_ext_1part
        return BodyTypeMessage.new(mtype, msubtype,
                                   param, content_id,
                                   desc, enc, size,
                                   env, b, lines,
                                   md5, disposition, language, extension)
      end

      def body_type_attachment
        mtype = case_insensitive_string
        match(T_SPACE)
        param = body_fld_param
        return BodyTypeAttachment.new(mtype, nil, param)
      end

      def body_type_mixed
        mtype = "MULTIPART"
        msubtype = case_insensitive_string
        param, disposition, language, extension = body_ext_mpart
        return BodyTypeBasic.new(mtype, msubtype, param, nil, nil, nil, nil, nil, disposition, language, extension)
      end

      def body_type_mpart
        parts = []
        while true
          token = lookahead
          if token.symbol == T_SPACE
            shift_token
            break
          end
          parts.push(body)
        end
        mtype = "MULTIPART"
        msubtype = case_insensitive_string
        param, disposition, language, extension = body_ext_mpart
        return BodyTypeMultipart.new(mtype, msubtype, parts,
                                     param, disposition, language,
                                     extension)
      end

      def media_type
        mtype = case_insensitive_string
        token = lookahead
        if token.symbol != T_SPACE
          return mtype, nil
        end
        match(T_SPACE)
        msubtype = case_insensitive_string
        return mtype, msubtype
      end

      def body_fields
        param = body_fld_param
        match(T_SPACE)
        content_id = nstring
        match(T_SPACE)
        desc = nstring
        match(T_SPACE)
        enc = case_insensitive_string
        match(T_SPACE)
        size = number
        return param, content_id, desc, enc, size
      end

      def body_fld_param
        token = lookahead
        if token.symbol == T_NIL
          shift_token
          return nil
        end
        match(T_LPAR)
        param = {}
        while true
          token = lookahead
          case token.symbol
          when T_RPAR
            shift_token
            break
          when T_SPACE
            shift_token
          end
          name = case_insensitive_string
          match(T_SPACE)
          val = string
          param[name] = val
        end
        return param
      end

      def body_ext_1part
        token = lookahead
        if token.symbol == T_SPACE
          shift_token
        else
          return nil
        end
        md5 = nstring

        token = lookahead
        if token.symbol == T_SPACE
          shift_token
        else
          return md5
        end
        disposition = body_fld_dsp

        token = lookahead
        if token.symbol == T_SPACE
          shift_token
        else
          return md5, disposition
        end
        language = body_fld_lang

        token = lookahead
        if token.symbol == T_SPACE
          shift_token
        else
          return md5, disposition, language
        end

        extension = body_extensions
        return md5, disposition, language, extension
      end

      def body_ext_mpart
        token = lookahead
        if token.symbol == T_SPACE
          shift_token
        else
          return nil
        end
        param = body_fld_param

        token = lookahead
        if token.symbol == T_SPACE
          shift_token
        else
          return param
        end
        disposition = body_fld_dsp

        token = lookahead
        if token.symbol == T_SPACE
          shift_token
        else
          return param, disposition
        end
        language = body_fld_lang

        token = lookahead
        if token.symbol == T_SPACE
          shift_token
        else
          return param, disposition, language
        end

        extension = body_extensions
        return param, disposition, language, extension
      end

      def body_fld_dsp
        token = lookahead
        if token.symbol == T_NIL
          shift_token
          return nil
        end
        match(T_LPAR)
        dsp_type = case_insensitive_string
        match(T_SPACE)
        param = body_fld_param
        match(T_RPAR)
        return ContentDisposition.new(dsp_type, param)
      end

      def body_fld_lang
        token = lookahead
        if token.symbol == T_LPAR
          shift_token
          result = []
          while true
            token = lookahead
            case token.symbol
            when T_RPAR
              shift_token
              return result
            when T_SPACE
              shift_token
            end
            result.push(case_insensitive_string)
          end
        else
          lang = nstring
          if lang
            return lang.upcase
          else
            return lang
          end
        end
      end

      def body_extensions
        result = []
        while true
          token = lookahead
          case token.symbol
          when T_RPAR
            return result
          when T_SPACE
            shift_token
          end
          result.push(body_extension)
        end
      end

      def body_extension
        token = lookahead
        case token.symbol
        when T_LPAR
          shift_token
          result = body_extensions
          match(T_RPAR)
          return result
        when T_NUMBER
          return number
        else
          return nstring
        end
      end

      def section
        str = ""
        token = match(T_LBRA)
        str.concat(token.value)
        token = match(T_ATOM, T_NUMBER, T_RBRA)
        if token.symbol == T_RBRA
          str.concat(token.value)
          return str
        end
        str.concat(token.value)
        token = lookahead
        if token.symbol == T_SPACE
          shift_token
          str.concat(token.value)
          token = match(T_LPAR)
          str.concat(token.value)
          while true
            token = lookahead
            case token.symbol
            when T_RPAR
              str.concat(token.value)
              shift_token
              break
            when T_SPACE
              shift_token
              str.concat(token.value)
            end
            str.concat(format_string(astring))
          end
        end
        token = match(T_RBRA)
        str.concat(token.value)
        return str
      end

      def format_string(str)
        case str
        when ""
          return '""'
        when /[\x80-\xff\r\n]/n
          # literal
          return "{" + str.bytesize.to_s + "}" + CRLF + str
        when /[(){ \x00-\x1f\x7f%*"\\]/n
          # quoted string
          return '"' + str.gsub(/["\\]/n, "\\\\\\&") + '"'
        else
          # atom
          return str
        end
      end

      def uid_data
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        return name, number
      end

      def text_response
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        @lex_state = EXPR_TEXT
        token = match(T_TEXT)
        @lex_state = EXPR_BEG
        return UntaggedResponse.new(name, token.value)
      end

      def flags_response
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        return UntaggedResponse.new(name, flag_list, @str)
      end

      def list_response
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        return UntaggedResponse.new(name, mailbox_list, @str)
      end

      def mailbox_list
        attr = flag_list
        match(T_SPACE)
        token = match(T_QUOTED, T_NIL)
        if token.symbol == T_NIL
          delim = nil
        else
          delim = token.value
        end
        match(T_SPACE)
        name = astring
        return MailboxList.new(attr, delim, name)
      end

      def getquota_response
        # If quota never established, get back
        # `NO Quota root does not exist'.
        # If quota removed, get `()' after the
        # folder spec with no mention of `STORAGE'.
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        mailbox = astring
        match(T_SPACE)
        match(T_LPAR)
        token = lookahead
        case token.symbol
        when T_RPAR
          shift_token
          data = MailboxQuota.new(mailbox, nil, nil)
          return UntaggedResponse.new(name, data, @str)
        when T_ATOM
          shift_token
          match(T_SPACE)
          token = match(T_NUMBER)
          usage = token.value
          match(T_SPACE)
          token = match(T_NUMBER)
          quota = token.value
          match(T_RPAR)
          data = MailboxQuota.new(mailbox, usage, quota)
          return UntaggedResponse.new(name, data, @str)
        else
          parse_error("unexpected token %s", token.symbol)
        end
      end

      def getquotaroot_response
        # Similar to getquota, but only admin can use getquota.
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        mailbox = astring
        quotaroots = []
        while true
          token = lookahead
          break unless token.symbol == T_SPACE
          shift_token
          quotaroots.push(astring)
        end
        data = MailboxQuotaRoot.new(mailbox, quotaroots)
        return UntaggedResponse.new(name, data, @str)
      end

      def getacl_response
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        mailbox = astring
        data = []
        token = lookahead
        if token.symbol == T_SPACE
          shift_token
          while true
            token = lookahead
            case token.symbol
            when T_CRLF
              break
            when T_SPACE
              shift_token
            end
            user = astring
            match(T_SPACE)
            rights = astring
            data.push(MailboxACLItem.new(user, rights, mailbox))
          end
        end
        return UntaggedResponse.new(name, data, @str)
      end

      def search_response
        token = match(T_ATOM)
        name = token.value.upcase
        token = lookahead
        if token.symbol == T_SPACE
          shift_token
          data = []
          while true
            token = lookahead
            case token.symbol
            when T_CRLF
              break
            when T_SPACE
              shift_token
            when T_NUMBER
              data.push(number)
            when T_LPAR
              # TODO: include the MODSEQ value in a response
              shift_token
              match(T_ATOM)
              match(T_SPACE)
              match(T_NUMBER)
              match(T_RPAR)
            end
          end
        else
          data = []
        end
        return UntaggedResponse.new(name, data, @str)
      end

      def thread_response
        token = match(T_ATOM)
        name = token.value.upcase
        token = lookahead

        if token.symbol == T_SPACE
          threads = []

          while true
            shift_token
            token = lookahead

            case token.symbol
            when T_LPAR
              threads << thread_branch(token)
            when T_CRLF
              break
            end
          end
        else
          # no member
          threads = []
        end

        return UntaggedResponse.new(name, threads, @str)
      end

      def thread_branch(token)
        rootmember = nil
        lastmember = nil

        while true
          shift_token    # ignore first T_LPAR
          token = lookahead

          case token.symbol
          when T_NUMBER
            # new member
            newmember = ThreadMember.new(number, [])
            if rootmember.nil?
              rootmember = newmember
            else
              lastmember.children << newmember
            end
            lastmember = newmember
          when T_SPACE
            # do nothing
          when T_LPAR
            if rootmember.nil?
              # dummy member
              lastmember = rootmember = ThreadMember.new(nil, [])
            end

            lastmember.children << thread_branch(token)
          when T_RPAR
            break
          end
        end

        return rootmember
      end

      def status_response
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        mailbox = astring
        match(T_SPACE)
        match(T_LPAR)
        attr = {}
        while true
          token = lookahead
          case token.symbol
          when T_RPAR
            shift_token
            break
          when T_SPACE
            shift_token
          end
          token = match(T_ATOM)
          key = token.value.upcase
          match(T_SPACE)
          val = number
          attr[key] = val
        end
        data = StatusData.new(mailbox, attr)
        return UntaggedResponse.new(name, data, @str)
      end

      def capability_response
        token = match(T_ATOM)
        name = token.value.upcase
        match(T_SPACE)
        data = []
        while true
          token = lookahead
          case token.symbol
          when T_CRLF
            break
          when T_SPACE
            shift_token
            next
          end
          data.push(atom.upcase)
        end
        return UntaggedResponse.new(name, data, @str)
      end

      def resp_text
        @lex_state = EXPR_RTEXT
        token = lookahead
        if token.symbol == T_LBRA
          code = resp_text_code
        else
          code = nil
        end
        token = match(T_TEXT)
        @lex_state = EXPR_BEG
        return ResponseText.new(code, token.value)
      end

      def resp_text_code
        @lex_state = EXPR_BEG
        match(T_LBRA)
        token = match(T_ATOM)
        name = token.value.upcase
        case name
        when /\A(?:ALERT|PARSE|READ-ONLY|READ-WRITE|TRYCREATE|NOMODSEQ)\z/n
          result = ResponseCode.new(name, nil)
        when /\A(?:PERMANENTFLAGS)\z/n
          match(T_SPACE)
          result = ResponseCode.new(name, flag_list)
        when /\A(?:UIDVALIDITY|UIDNEXT|UNSEEN)\z/n
          match(T_SPACE)
          result = ResponseCode.new(name, number)
        else
          token = lookahead
          if token.symbol == T_SPACE
            shift_token
            @lex_state = EXPR_CTEXT
            token = match(T_TEXT)
            @lex_state = EXPR_BEG
            result = ResponseCode.new(name, token.value)
          else
            result = ResponseCode.new(name, nil)
          end
        end
        match(T_RBRA)
        @lex_state = EXPR_RTEXT
        return result
      end

      def address_list
        token = lookahead
        if token.symbol == T_NIL
          shift_token
          return nil
        else
          result = []
          match(T_LPAR)
          while true
            token = lookahead
            case token.symbol
            when T_RPAR
              shift_token
              break
            when T_SPACE
              shift_token
            end
            result.push(address)
          end
          return result
        end
      end

      ADDRESS_REGEXP = /\G\
(?# 1: NAME     )(?:NIL|"((?:[^\x80-\xff\x00\r\n"\\]|\\["\\])*)") \
(?# 2: ROUTE    )(?:NIL|"((?:[^\x80-\xff\x00\r\n"\\]|\\["\\])*)") \
(?# 3: MAILBOX  )(?:NIL|"((?:[^\x80-\xff\x00\r\n"\\]|\\["\\])*)") \
(?# 4: HOST     )(?:NIL|"((?:[^\x80-\xff\x00\r\n"\\]|\\["\\])*)")\
\)/ni

      def address
        match(T_LPAR)
        if @str.index(ADDRESS_REGEXP, @pos)
          # address does not include literal.
          @pos = $~.end(0)
          name = $1
          route = $2
          mailbox = $3
          host = $4
          for s in [name, route, mailbox, host]
            if s
              s.gsub!(/\\(["\\])/n, "\\1")
            end
          end
        else
          name = nstring
          match(T_SPACE)
          route = nstring
          match(T_SPACE)
          mailbox = nstring
          match(T_SPACE)
          host = nstring
          match(T_RPAR)
        end
        return Address.new(name, route, mailbox, host)
      end

      FLAG_REGEXP = /\
(?# FLAG        )\\([^\x80-\xff(){ \x00-\x1f\x7f%"\\]+)|\
(?# ATOM        )([^\x80-\xff(){ \x00-\x1f\x7f%*"\\]+)/n

      def flag_list
        if @str.index(/\(([^)]*)\)/ni, @pos)
          @pos = $~.end(0)
          return $1.scan(FLAG_REGEXP).collect { |flag, atom|
            if atom
              atom
            else
              symbol = flag.capitalize.untaint.intern
              @flag_symbols[symbol] = true
              if @flag_symbols.length > IMAP.max_flag_count
                raise FlagCountError, "number of flag symbols exceeded"
              end
              symbol
            end
          }
        else
          parse_error("invalid flag list")
        end
      end

      def nstring
        token = lookahead
        if token.symbol == T_NIL
          shift_token
          return nil
        else
          return string
        end
      end

      def astring
        token = lookahead
        if string_token?(token)
          return string
        else
          return atom
        end
      end

      def string
        token = lookahead
        if token.symbol == T_NIL
          shift_token
          return nil
        end
        token = match(T_QUOTED, T_LITERAL)
        return token.value
      end

      STRING_TOKENS = [T_QUOTED, T_LITERAL, T_NIL]

      def string_token?(token)
        return STRING_TOKENS.include?(token.symbol)
      end

      def case_insensitive_string
        token = lookahead
        if token.symbol == T_NIL
          shift_token
          return nil
        end
        token = match(T_QUOTED, T_LITERAL)
        return token.value.upcase
      end

      def atom
        result = ""
        while true
          token = lookahead
          if atom_token?(token)
            result.concat(token.value)
            shift_token
          else
            if result.empty?
              parse_error("unexpected token %s", token.symbol)
            else
              return result
            end
          end
        end
      end

      ATOM_TOKENS = [
        T_ATOM,
        T_NUMBER,
        T_NIL,
        T_LBRA,
        T_RBRA,
        T_PLUS
      ]

      def atom_token?(token)
        return ATOM_TOKENS.include?(token.symbol)
      end

      def number
        token = lookahead
        if token.symbol == T_NIL
          shift_token
          return nil
        end
        token = match(T_NUMBER)
        return token.value.to_i
      end

      def nil_atom
        match(T_NIL)
        return nil
      end

      def match(*args)
        token = lookahead
        unless args.include?(token.symbol)
          parse_error('unexpected token %s (expected %s)',
                      token.symbol.id2name,
                      args.collect {|i| i.id2name}.join(" or "))
        end
        shift_token
        return token
      end

      def lookahead
        unless @token
          @token = next_token
        end
        return @token
      end

      def shift_token
        @token = nil
      end

      def next_token
        case @lex_state
        when EXPR_BEG
          if @str.index(BEG_REGEXP, @pos)
            @pos = $~.end(0)
            if $1
              return Token.new(T_SPACE, $+)
            elsif $2
              return Token.new(T_NIL, $+)
            elsif $3
              return Token.new(T_NUMBER, $+)
            elsif $4
              return Token.new(T_ATOM, $+)
            elsif $5
              return Token.new(T_QUOTED,
                               $+.gsub(/\\(["\\])/n, "\\1"))
            elsif $6
              return Token.new(T_LPAR, $+)
            elsif $7
              return Token.new(T_RPAR, $+)
            elsif $8
              return Token.new(T_BSLASH, $+)
            elsif $9
              return Token.new(T_STAR, $+)
            elsif $10
              return Token.new(T_LBRA, $+)
            elsif $11
              return Token.new(T_RBRA, $+)
            elsif $12
              len = $+.to_i
              val = @str[@pos, len]
              @pos += len
              return Token.new(T_LITERAL, val)
            elsif $13
              return Token.new(T_PLUS, $+)
            elsif $14
              return Token.new(T_PERCENT, $+)
            elsif $15
              return Token.new(T_CRLF, $+)
            elsif $16
              return Token.new(T_EOF, $+)
            else
              parse_error("[Net::IMAP BUG] BEG_REGEXP is invalid")
            end
          else
            @str.index(/\S*/n, @pos)
            parse_error("unknown token - %s", $&.dump)
          end
        when EXPR_DATA
          if @str.index(DATA_REGEXP, @pos)
            @pos = $~.end(0)
            if $1
              return Token.new(T_SPACE, $+)
            elsif $2
              return Token.new(T_NIL, $+)
            elsif $3
              return Token.new(T_NUMBER, $+)
            elsif $4
              return Token.new(T_QUOTED,
                               $+.gsub(/\\(["\\])/n, "\\1"))
            elsif $5
              len = $+.to_i
              val = @str[@pos, len]
              @pos += len
              return Token.new(T_LITERAL, val)
            elsif $6
              return Token.new(T_LPAR, $+)
            elsif $7
              return Token.new(T_RPAR, $+)
            else
              parse_error("[Net::IMAP BUG] DATA_REGEXP is invalid")
            end
          else
            @str.index(/\S*/n, @pos)
            parse_error("unknown token - %s", $&.dump)
          end
        when EXPR_TEXT
          if @str.index(TEXT_REGEXP, @pos)
            @pos = $~.end(0)
            if $1
              return Token.new(T_TEXT, $+)
            else
              parse_error("[Net::IMAP BUG] TEXT_REGEXP is invalid")
            end
          else
            @str.index(/\S*/n, @pos)
            parse_error("unknown token - %s", $&.dump)
          end
        when EXPR_RTEXT
          if @str.index(RTEXT_REGEXP, @pos)
            @pos = $~.end(0)
            if $1
              return Token.new(T_LBRA, $+)
            elsif $2
              return Token.new(T_TEXT, $+)
            else
              parse_error("[Net::IMAP BUG] RTEXT_REGEXP is invalid")
            end
          else
            @str.index(/\S*/n, @pos)
            parse_error("unknown token - %s", $&.dump)
          end
        when EXPR_CTEXT
          if @str.index(CTEXT_REGEXP, @pos)
            @pos = $~.end(0)
            if $1
              return Token.new(T_TEXT, $+)
            else
              parse_error("[Net::IMAP BUG] CTEXT_REGEXP is invalid")
            end
          else
            @str.index(/\S*/n, @pos) #/
            parse_error("unknown token - %s", $&.dump)
          end
        else
          parse_error("invalid @lex_state - %s", @lex_state.inspect)
        end
      end

      def parse_error(fmt, *args)
        if IMAP.debug
          $stderr.printf("@str: %s\n", @str.dump)
          $stderr.printf("@pos: %d\n", @pos)
          $stderr.printf("@lex_state: %s\n", @lex_state)
          if @token
            $stderr.printf("@token.symbol: %s\n", @token.symbol)
            $stderr.printf("@token.value: %s\n", @token.value.inspect)
          end
        end
        raise ResponseParseError, format(fmt, *args)
      end
    end

    # Authenticator for the "LOGIN" authentication type.  See
    # #authenticate().
    class LoginAuthenticator
      def process(data)
        case @state
        when STATE_USER
          @state = STATE_PASSWORD
          return @user
        when STATE_PASSWORD
          return @password
        end
      end

      private

      STATE_USER = :USER
      STATE_PASSWORD = :PASSWORD

      def initialize(user, password)
        @user = user
        @password = password
        @state = STATE_USER
      end
    end
    add_authenticator "LOGIN", LoginAuthenticator

    # Authenticator for the "PLAIN" authentication type.  See
    # #authenticate().
    class PlainAuthenticator
      def process(data)
        return "\0#{@user}\0#{@password}"
      end

      private

      def initialize(user, password)
        @user = user
        @password = password
      end
    end
    add_authenticator "PLAIN", PlainAuthenticator

    # Authenticator for the "CRAM-MD5" authentication type.  See
    # #authenticate().
    class CramMD5Authenticator
      def process(challenge)
        digest = hmac_md5(challenge, @password)
        return @user + " " + digest
      end

      private

      def initialize(user, password)
        @user = user
        @password = password
      end

      def hmac_md5(text, key)
        if key.length > 64
          key = Digest::MD5.digest(key)
        end

        k_ipad = key + "\0" * (64 - key.length)
        k_opad = key + "\0" * (64 - key.length)
        for i in 0..63
          k_ipad[i] = (k_ipad[i].ord ^ 0x36).chr
          k_opad[i] = (k_opad[i].ord ^ 0x5c).chr
        end

        digest = Digest::MD5.digest(k_ipad + text)

        return Digest::MD5.hexdigest(k_opad + digest)
      end
    end
    add_authenticator "CRAM-MD5", CramMD5Authenticator

    # Authenticator for the "DIGEST-MD5" authentication type.  See
    # #authenticate().
    class DigestMD5Authenticator
      def process(challenge)
        case @stage
        when STAGE_ONE
          @stage = STAGE_TWO
          sparams = {}
          c = StringScanner.new(challenge)
          while c.scan(/(?:\s*,)?\s*(\w+)=("(?:[^\\"]+|\\.)*"|[^,]+)\s*/)
            k, v = c[1], c[2]
            if v =~ /^"(.*)"$/
              v = $1
              if v =~ /,/
                v = v.split(',')
              end
            end
            sparams[k] = v
          end

          raise DataFormatError, "Bad Challenge: '#{challenge}'" unless c.rest.size == 0
          raise Error, "Server does not support auth (qop = #{sparams['qop'].join(',')})" unless sparams['qop'].include?("auth")

          response = {
            :nonce => sparams['nonce'],
            :username => @user,
            :realm => sparams['realm'],
            :cnonce => Digest::MD5.hexdigest("%.15f:%.15f:%d" % [Time.now.to_f, rand, Process.pid.to_s]),
            :'digest-uri' => 'imap/' + sparams['realm'],
            :qop => 'auth',
            :maxbuf => 65535,
            :nc => "%08d" % nc(sparams['nonce']),
            :charset => sparams['charset'],
          }

          response[:authzid] = @authname unless @authname.nil?

          # now, the real thing
          a0 = Digest::MD5.digest( [ response.values_at(:username, :realm), @password ].join(':') )

          a1 = [ a0, response.values_at(:nonce,:cnonce) ].join(':')
          a1 << ':' + response[:authzid] unless response[:authzid].nil?

          a2 = "AUTHENTICATE:" + response[:'digest-uri']
          a2 << ":00000000000000000000000000000000" if response[:qop] and response[:qop] =~ /^auth-(?:conf|int)$/

          response[:response] = Digest::MD5.hexdigest(
            [
             Digest::MD5.hexdigest(a1),
             response.values_at(:nonce, :nc, :cnonce, :qop),
             Digest::MD5.hexdigest(a2)
            ].join(':')
          )

          return response.keys.map {|key| qdval(key.to_s, response[key]) }.join(',')
        when STAGE_TWO
          @stage = nil
          # if at the second stage, return an empty string
          if challenge =~ /rspauth=/
            return ''
          else
            raise ResponseParseError, challenge
          end
        else
          raise ResponseParseError, challenge
        end
      end

      def initialize(user, password, authname = nil)
        @user, @password, @authname = user, password, authname
        @nc, @stage = {}, STAGE_ONE
      end

      private

      STAGE_ONE = :stage_one
      STAGE_TWO = :stage_two

      def nc(nonce)
        if @nc.has_key? nonce
          @nc[nonce] = @nc[nonce] + 1
        else
          @nc[nonce] = 1
        end
        return @nc[nonce]
      end

      # some responses need quoting
      def qdval(k, v)
        return if k.nil? or v.nil?
        if %w"username authzid realm nonce cnonce digest-uri qop".include? k
          v.gsub!(/([\\"])/, "\\\1")
          return '%s="%s"' % [k, v]
        else
          return '%s=%s' % [k, v]
        end
      end
    end
    add_authenticator "DIGEST-MD5", DigestMD5Authenticator

    # Superclass of IMAP errors.
    class Error < StandardError
    end

    # Error raised when data is in the incorrect format.
    class DataFormatError < Error
    end

    # Error raised when a response from the server is non-parseable.
    class ResponseParseError < Error
    end

    # Superclass of all errors used to encapsulate "fail" responses
    # from the server.
    class ResponseError < Error

      # The response that caused this error
      attr_accessor :response

      def initialize(response)
        @response = response

        super @response.data.text
      end

    end

    # Error raised upon a "NO" response from the server, indicating
    # that the client command could not be completed successfully.
    class NoResponseError < ResponseError
    end

    # Error raised upon a "BAD" response from the server, indicating
    # that the client command violated the IMAP protocol, or an internal
    # server failure has occurred.
    class BadResponseError < ResponseError
    end

    # Error raised upon a "BYE" response from the server, indicating
    # that the client is not being allowed to login, or has been timed
    # out due to inactivity.
    class ByeResponseError < ResponseError
    end

    # Error raised when too many flags are interned to symbols.
    class FlagCountError < Error
    end
  end
end
lib64/ruby/2.2.0/net/ftp.rb000064400000072274150402106040011014 0ustar00#
# = net/ftp.rb - FTP Client Library
#
# Written by Shugo Maeda <shugo@ruby-lang.org>.
#
# Documentation by Gavin Sinclair, sourced from "Programming Ruby" (Hunt/Thomas)
# and "Ruby In a Nutshell" (Matsumoto), used with permission.
#
# This library is distributed under the terms of the Ruby license.
# You can freely distribute/modify this library.
#
# It is included in the Ruby standard library.
#
# See the Net::FTP class for an overview.
#

require "socket"
require "monitor"
require "net/protocol"

module Net

  # :stopdoc:
  class FTPError < StandardError; end
  class FTPReplyError < FTPError; end
  class FTPTempError < FTPError; end
  class FTPPermError < FTPError; end
  class FTPProtoError < FTPError; end
  class FTPConnectionError < FTPError; end
  # :startdoc:

  #
  # This class implements the File Transfer Protocol.  If you have used a
  # command-line FTP program, and are familiar with the commands, you will be
  # able to use this class easily.  Some extra features are included to take
  # advantage of Ruby's style and strengths.
  #
  # == Example
  #
  #   require 'net/ftp'
  #
  # === Example 1
  #
  #   ftp = Net::FTP.new('example.com')
  #   ftp.login
  #   files = ftp.chdir('pub/lang/ruby/contrib')
  #   files = ftp.list('n*')
  #   ftp.getbinaryfile('nif.rb-0.91.gz', 'nif.gz', 1024)
  #   ftp.close
  #
  # === Example 2
  #
  #   Net::FTP.open('example.com') do |ftp|
  #     ftp.login
  #     files = ftp.chdir('pub/lang/ruby/contrib')
  #     files = ftp.list('n*')
  #     ftp.getbinaryfile('nif.rb-0.91.gz', 'nif.gz', 1024)
  #   end
  #
  # == Major Methods
  #
  # The following are the methods most likely to be useful to users:
  # - FTP.open
  # - #getbinaryfile
  # - #gettextfile
  # - #putbinaryfile
  # - #puttextfile
  # - #chdir
  # - #nlst
  # - #size
  # - #rename
  # - #delete
  #
  class FTP
    include MonitorMixin

    # :stopdoc:
    FTP_PORT = 21
    CRLF = "\r\n"
    DEFAULT_BLOCKSIZE = BufferedIO::BUFSIZE
    # :startdoc:

    # When +true+, transfers are performed in binary mode.  Default: +true+.
    attr_reader :binary

    # When +true+, the connection is in passive mode.  Default: +false+.
    attr_accessor :passive

    # When +true+, all traffic to and from the server is written
    # to +$stdout+.  Default: +false+.
    attr_accessor :debug_mode

    # Sets or retrieves the +resume+ status, which decides whether incomplete
    # transfers are resumed or restarted.  Default: +false+.
    attr_accessor :resume

    # Number of seconds to wait for the connection to open. Any number
    # may be used, including Floats for fractional seconds. If the FTP
    # object cannot open a connection in this many seconds, it raises a
    # Net::OpenTimeout exception. The default value is +nil+.
    attr_accessor :open_timeout

    # Number of seconds to wait for one block to be read (via one read(2)
    # call). Any number may be used, including Floats for fractional
    # seconds. If the FTP object cannot read data in this many seconds,
    # it raises a Timeout::Error exception. The default value is 60 seconds.
    attr_reader :read_timeout

    # Setter for the read_timeout attribute.
    def read_timeout=(sec)
      @sock.read_timeout = sec
      @read_timeout = sec
    end

    # The server's welcome message.
    attr_reader :welcome

    # The server's last response code.
    attr_reader :last_response_code
    alias lastresp last_response_code

    # The server's last response.
    attr_reader :last_response

    #
    # A synonym for <tt>FTP.new</tt>, but with a mandatory host parameter.
    #
    # If a block is given, it is passed the +FTP+ object, which will be closed
    # when the block finishes, or when an exception is raised.
    #
    def FTP.open(host, user = nil, passwd = nil, acct = nil)
      if block_given?
        ftp = new(host, user, passwd, acct)
        begin
          yield ftp
        ensure
          ftp.close
        end
      else
        new(host, user, passwd, acct)
      end
    end

    #
    # Creates and returns a new +FTP+ object. If a +host+ is given, a connection
    # is made. Additionally, if the +user+ is given, the given user name,
    # password, and (optionally) account are used to log in.  See #login.
    #
    def initialize(host = nil, user = nil, passwd = nil, acct = nil)
      super()
      @binary = true
      @passive = false
      @debug_mode = false
      @resume = false
      @sock = NullSocket.new
      @logged_in = false
      @open_timeout = nil
      @read_timeout = 60
      if host
        connect(host)
        if user
          login(user, passwd, acct)
        end
      end
    end

    # A setter to toggle transfers in binary mode.
    # +newmode+ is either +true+ or +false+
    def binary=(newmode)
      if newmode != @binary
        @binary = newmode
        send_type_command if @logged_in
      end
    end

    # Sends a command to destination host, with the current binary sendmode
    # type.
    #
    # If binary mode is +true+, then "TYPE I" (image) is sent, otherwise "TYPE
    # A" (ascii) is sent.
    def send_type_command # :nodoc:
      if @binary
        voidcmd("TYPE I")
      else
        voidcmd("TYPE A")
      end
    end
    private :send_type_command

    # Toggles transfers in binary mode and yields to a block.
    # This preserves your current binary send mode, but allows a temporary
    # transaction with binary sendmode of +newmode+.
    #
    # +newmode+ is either +true+ or +false+
    def with_binary(newmode) # :nodoc:
      oldmode = binary
      self.binary = newmode
      begin
        yield
      ensure
        self.binary = oldmode
      end
    end
    private :with_binary

    # Obsolete
    def return_code # :nodoc:
      $stderr.puts("warning: Net::FTP#return_code is obsolete and do nothing")
      return "\n"
    end

    # Obsolete
    def return_code=(s) # :nodoc:
      $stderr.puts("warning: Net::FTP#return_code= is obsolete and do nothing")
    end

    # Constructs a socket with +host+ and +port+.
    #
    # If SOCKSSocket is defined and the environment (ENV) defines
    # SOCKS_SERVER, then a SOCKSSocket is returned, else a TCPSocket is
    # returned.
    def open_socket(host, port) # :nodoc:
      return Timeout.timeout(@open_timeout, Net::OpenTimeout) {
        if defined? SOCKSSocket and ENV["SOCKS_SERVER"]
          @passive = true
          sock = SOCKSSocket.open(host, port)
        else
          sock = TCPSocket.open(host, port)
        end
        io = BufferedSocket.new(sock)
        io.read_timeout = @read_timeout
        io
      }
    end
    private :open_socket

    #
    # Establishes an FTP connection to host, optionally overriding the default
    # port. If the environment variable +SOCKS_SERVER+ is set, sets up the
    # connection through a SOCKS proxy. Raises an exception (typically
    # <tt>Errno::ECONNREFUSED</tt>) if the connection cannot be established.
    #
    def connect(host, port = FTP_PORT)
      if @debug_mode
        print "connect: ", host, ", ", port, "\n"
      end
      synchronize do
        @sock = open_socket(host, port)
        voidresp
      end
    end

    #
    # Set the socket used to connect to the FTP server.
    #
    # May raise FTPReplyError if +get_greeting+ is false.
    def set_socket(sock, get_greeting = true)
      synchronize do
        @sock = sock
        if get_greeting
          voidresp
        end
      end
    end

    # If string +s+ includes the PASS command (password), then the contents of
    # the password are cleaned from the string using "*"
    def sanitize(s) # :nodoc:
      if s =~ /^PASS /i
        return s[0, 5] + "*" * (s.length - 5)
      else
        return s
      end
    end
    private :sanitize

    # Ensures that +line+ has a control return / line feed (CRLF) and writes
    # it to the socket.
    def putline(line) # :nodoc:
      if @debug_mode
        print "put: ", sanitize(line), "\n"
      end
      if /[\r\n]/ =~ line
        raise ArgumentError, "A line must not contain CR or LF"
      end
      line = line + CRLF
      @sock.write(line)
    end
    private :putline

    # Reads a line from the sock.  If EOF, then it will raise EOFError
    def getline # :nodoc:
      line = @sock.readline # if get EOF, raise EOFError
      line.sub!(/(\r\n|\n|\r)\z/n, "")
      if @debug_mode
        print "get: ", sanitize(line), "\n"
      end
      return line
    end
    private :getline

    # Receive a section of lines until the response code's match.
    def getmultiline # :nodoc:
      line = getline
      buff = line
      if line[3] == ?-
          code = line[0, 3]
        begin
          line = getline
          buff << "\n" << line
        end until line[0, 3] == code and line[3] != ?-
      end
      return buff << "\n"
    end
    private :getmultiline

    # Receives a response from the destination host.
    #
    # Returns the response code or raises FTPTempError, FTPPermError, or
    # FTPProtoError
    def getresp # :nodoc:
      @last_response = getmultiline
      @last_response_code = @last_response[0, 3]
      case @last_response_code
      when /\A[123]/
        return @last_response
      when /\A4/
        raise FTPTempError, @last_response
      when /\A5/
        raise FTPPermError, @last_response
      else
        raise FTPProtoError, @last_response
      end
    end
    private :getresp

    # Receives a response.
    #
    # Raises FTPReplyError if the first position of the response code is not
    # equal 2.
    def voidresp # :nodoc:
      resp = getresp
      if resp[0] != ?2
        raise FTPReplyError, resp
      end
    end
    private :voidresp

    #
    # Sends a command and returns the response.
    #
    def sendcmd(cmd)
      synchronize do
        putline(cmd)
        return getresp
      end
    end

    #
    # Sends a command and expect a response beginning with '2'.
    #
    def voidcmd(cmd)
      synchronize do
        putline(cmd)
        voidresp
      end
    end

    # Constructs and send the appropriate PORT (or EPRT) command
    def sendport(host, port) # :nodoc:
      af = (@sock.peeraddr)[0]
      if af == "AF_INET"
        cmd = "PORT " + (host.split(".") + port.divmod(256)).join(",")
      elsif af == "AF_INET6"
        cmd = sprintf("EPRT |2|%s|%d|", host, port)
      else
        raise FTPProtoError, host
      end
      voidcmd(cmd)
    end
    private :sendport

    # Constructs a TCPServer socket
    def makeport # :nodoc:
      TCPServer.open(@sock.addr[3], 0)
    end
    private :makeport

    # sends the appropriate command to enable a passive connection
    def makepasv # :nodoc:
      if @sock.peeraddr[0] == "AF_INET"
        host, port = parse227(sendcmd("PASV"))
      else
        host, port = parse229(sendcmd("EPSV"))
        #     host, port = parse228(sendcmd("LPSV"))
      end
      return host, port
    end
    private :makepasv

    # Constructs a connection for transferring data
    def transfercmd(cmd, rest_offset = nil) # :nodoc:
      if @passive
        host, port = makepasv
        conn = open_socket(host, port)
        if @resume and rest_offset
          resp = sendcmd("REST " + rest_offset.to_s)
          if resp[0] != ?3
            raise FTPReplyError, resp
          end
        end
        resp = sendcmd(cmd)
        # skip 2XX for some ftp servers
        resp = getresp if resp[0] == ?2
        if resp[0] != ?1
          raise FTPReplyError, resp
        end
      else
        sock = makeport
        begin
          sendport(sock.addr[3], sock.addr[1])
          if @resume and rest_offset
            resp = sendcmd("REST " + rest_offset.to_s)
            if resp[0] != ?3
              raise FTPReplyError, resp
            end
          end
          resp = sendcmd(cmd)
          # skip 2XX for some ftp servers
          resp = getresp if resp[0] == ?2
          if resp[0] != ?1
            raise FTPReplyError, resp
          end
          conn = BufferedSocket.new(sock.accept)
          conn.read_timeout = @read_timeout
          sock.shutdown(Socket::SHUT_WR) rescue nil
          sock.read rescue nil
        ensure
          sock.close
        end
      end
      return conn
    end
    private :transfercmd

    #
    # Logs in to the remote host.  The session must have been
    # previously connected.  If +user+ is the string "anonymous" and
    # the +password+ is +nil+, "anonymous@" is used as a password.  If
    # the +acct+ parameter is not +nil+, an FTP ACCT command is sent
    # following the successful login.  Raises an exception on error
    # (typically <tt>Net::FTPPermError</tt>).
    #
    def login(user = "anonymous", passwd = nil, acct = nil)
      if user == "anonymous" and passwd == nil
        passwd = "anonymous@"
      end

      resp = ""
      synchronize do
        resp = sendcmd('USER ' + user)
        if resp[0] == ?3
          raise FTPReplyError, resp if passwd.nil?
          resp = sendcmd('PASS ' + passwd)
        end
        if resp[0] == ?3
          raise FTPReplyError, resp if acct.nil?
          resp = sendcmd('ACCT ' + acct)
        end
      end
      if resp[0] != ?2
        raise FTPReplyError, resp
      end
      @welcome = resp
      send_type_command
      @logged_in = true
    end

    #
    # Puts the connection into binary (image) mode, issues the given command,
    # and fetches the data returned, passing it to the associated block in
    # chunks of +blocksize+ characters. Note that +cmd+ is a server command
    # (such as "RETR myfile").
    #
    def retrbinary(cmd, blocksize, rest_offset = nil) # :yield: data
      synchronize do
        with_binary(true) do
          begin
            conn = transfercmd(cmd, rest_offset)
            loop do
              data = conn.read(blocksize)
              break if data == nil
              yield(data)
            end
            conn.shutdown(Socket::SHUT_WR)
            conn.read_timeout = 1
            conn.read
          ensure
            conn.close if conn
          end
          voidresp
        end
      end
    end

    #
    # Puts the connection into ASCII (text) mode, issues the given command, and
    # passes the resulting data, one line at a time, to the associated block. If
    # no block is given, prints the lines. Note that +cmd+ is a server command
    # (such as "RETR myfile").
    #
    def retrlines(cmd) # :yield: line
      synchronize do
        with_binary(false) do
          begin
            conn = transfercmd(cmd)
            loop do
              line = conn.gets
              break if line == nil
              yield(line.sub(/\r?\n\z/, ""), !line.match(/\n\z/).nil?)
            end
            conn.shutdown(Socket::SHUT_WR)
            conn.read_timeout = 1
            conn.read
          ensure
            conn.close if conn
          end
          voidresp
        end
      end
    end

    #
    # Puts the connection into binary (image) mode, issues the given server-side
    # command (such as "STOR myfile"), and sends the contents of the file named
    # +file+ to the server. If the optional block is given, it also passes it
    # the data, in chunks of +blocksize+ characters.
    #
    def storbinary(cmd, file, blocksize, rest_offset = nil) # :yield: data
      if rest_offset
        file.seek(rest_offset, IO::SEEK_SET)
      end
      synchronize do
        with_binary(true) do
          conn = transfercmd(cmd)
          loop do
            buf = file.read(blocksize)
            break if buf == nil
            conn.write(buf)
            yield(buf) if block_given?
          end
          conn.close
          voidresp
        end
      end
    rescue Errno::EPIPE
      # EPIPE, in this case, means that the data connection was unexpectedly
      # terminated.  Rather than just raising EPIPE to the caller, check the
      # response on the control connection.  If getresp doesn't raise a more
      # appropriate exception, re-raise the original exception.
      getresp
      raise
    end

    #
    # Puts the connection into ASCII (text) mode, issues the given server-side
    # command (such as "STOR myfile"), and sends the contents of the file
    # named +file+ to the server, one line at a time. If the optional block is
    # given, it also passes it the lines.
    #
    def storlines(cmd, file) # :yield: line
      synchronize do
        with_binary(false) do
          conn = transfercmd(cmd)
          loop do
            buf = file.gets
            break if buf == nil
            if buf[-2, 2] != CRLF
              buf = buf.chomp + CRLF
            end
            conn.write(buf)
            yield(buf) if block_given?
          end
          conn.close
          voidresp
        end
      end
    rescue Errno::EPIPE
      # EPIPE, in this case, means that the data connection was unexpectedly
      # terminated.  Rather than just raising EPIPE to the caller, check the
      # response on the control connection.  If getresp doesn't raise a more
      # appropriate exception, re-raise the original exception.
      getresp
      raise
    end

    #
    # Retrieves +remotefile+ in binary mode, storing the result in +localfile+.
    # If +localfile+ is nil, returns retrieved data.
    # If a block is supplied, it is passed the retrieved data in +blocksize+
    # chunks.
    #
    def getbinaryfile(remotefile, localfile = File.basename(remotefile),
                      blocksize = DEFAULT_BLOCKSIZE) # :yield: data
      result = nil
      if localfile
        if @resume
          rest_offset = File.size?(localfile)
          f = File.open(localfile, "a")
        else
          rest_offset = nil
          f = File.open(localfile, "w")
        end
      elsif !block_given?
        result = ""
      end
      begin
        f.binmode if localfile
        retrbinary("RETR " + remotefile.to_s, blocksize, rest_offset) do |data|
          f.write(data) if localfile
          yield(data) if block_given?
          result.concat(data) if result
        end
        return result
      ensure
        f.close if localfile
      end
    end

    #
    # Retrieves +remotefile+ in ASCII (text) mode, storing the result in
    # +localfile+.
    # If +localfile+ is nil, returns retrieved data.
    # If a block is supplied, it is passed the retrieved data one
    # line at a time.
    #
    def gettextfile(remotefile, localfile = File.basename(remotefile)) # :yield: line
      result = nil
      if localfile
        f = File.open(localfile, "w")
      elsif !block_given?
        result = ""
      end
      begin
        retrlines("RETR " + remotefile) do |line, newline|
          l = newline ? line + "\n" : line
          f.print(l) if localfile
          yield(line, newline) if block_given?
          result.concat(l) if result
        end
        return result
      ensure
        f.close if localfile
      end
    end

    #
    # Retrieves +remotefile+ in whatever mode the session is set (text or
    # binary).  See #gettextfile and #getbinaryfile.
    #
    def get(remotefile, localfile = File.basename(remotefile),
            blocksize = DEFAULT_BLOCKSIZE, &block) # :yield: data
      if @binary
        getbinaryfile(remotefile, localfile, blocksize, &block)
      else
        gettextfile(remotefile, localfile, &block)
      end
    end

    #
    # Transfers +localfile+ to the server in binary mode, storing the result in
    # +remotefile+. If a block is supplied, calls it, passing in the transmitted
    # data in +blocksize+ chunks.
    #
    def putbinaryfile(localfile, remotefile = File.basename(localfile),
                      blocksize = DEFAULT_BLOCKSIZE, &block) # :yield: data
      if @resume
        begin
          rest_offset = size(remotefile)
        rescue Net::FTPPermError
          rest_offset = nil
        end
      else
        rest_offset = nil
      end
      f = File.open(localfile)
      begin
        f.binmode
        if rest_offset
          storbinary("APPE " + remotefile, f, blocksize, rest_offset, &block)
        else
          storbinary("STOR " + remotefile, f, blocksize, rest_offset, &block)
        end
      ensure
        f.close
      end
    end

    #
    # Transfers +localfile+ to the server in ASCII (text) mode, storing the result
    # in +remotefile+. If callback or an associated block is supplied, calls it,
    # passing in the transmitted data one line at a time.
    #
    def puttextfile(localfile, remotefile = File.basename(localfile), &block) # :yield: line
      f = File.open(localfile)
      begin
        storlines("STOR " + remotefile, f, &block)
      ensure
        f.close
      end
    end

    #
    # Transfers +localfile+ to the server in whatever mode the session is set
    # (text or binary).  See #puttextfile and #putbinaryfile.
    #
    def put(localfile, remotefile = File.basename(localfile),
            blocksize = DEFAULT_BLOCKSIZE, &block)
      if @binary
        putbinaryfile(localfile, remotefile, blocksize, &block)
      else
        puttextfile(localfile, remotefile, &block)
      end
    end

    #
    # Sends the ACCT command.
    #
    # This is a less common FTP command, to send account
    # information if the destination host requires it.
    #
    def acct(account)
      cmd = "ACCT " + account
      voidcmd(cmd)
    end

    #
    # Returns an array of filenames in the remote directory.
    #
    def nlst(dir = nil)
      cmd = "NLST"
      if dir
        cmd = cmd + " " + dir
      end
      files = []
      retrlines(cmd) do |line|
        files.push(line)
      end
      return files
    end

    #
    # Returns an array of file information in the directory (the output is like
    # `ls -l`).  If a block is given, it iterates through the listing.
    #
    def list(*args, &block) # :yield: line
      cmd = "LIST"
      args.each do |arg|
        cmd = cmd + " " + arg.to_s
      end
      if block
        retrlines(cmd, &block)
      else
        lines = []
        retrlines(cmd) do |line|
          lines << line
        end
        return lines
      end
    end
    alias ls list
    alias dir list

    #
    # Renames a file on the server.
    #
    def rename(fromname, toname)
      resp = sendcmd("RNFR " + fromname)
      if resp[0] != ?3
        raise FTPReplyError, resp
      end
      voidcmd("RNTO " + toname)
    end

    #
    # Deletes a file on the server.
    #
    def delete(filename)
      resp = sendcmd("DELE " + filename)
      if resp[0, 3] == "250"
        return
      elsif resp[0] == ?5
        raise FTPPermError, resp
      else
        raise FTPReplyError, resp
      end
    end

    #
    # Changes the (remote) directory.
    #
    def chdir(dirname)
      if dirname == ".."
        begin
          voidcmd("CDUP")
          return
        rescue FTPPermError => e
          if e.message[0, 3] != "500"
            raise e
          end
        end
      end
      cmd = "CWD " + dirname
      voidcmd(cmd)
    end

    #
    # Returns the size of the given (remote) filename.
    #
    def size(filename)
      with_binary(true) do
        resp = sendcmd("SIZE " + filename)
        if resp[0, 3] != "213"
          raise FTPReplyError, resp
        end
        return resp[3..-1].strip.to_i
      end
    end

    MDTM_REGEXP = /^(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/  # :nodoc:

    #
    # Returns the last modification time of the (remote) file.  If +local+ is
    # +true+, it is returned as a local time, otherwise it's a UTC time.
    #
    def mtime(filename, local = false)
      str = mdtm(filename)
      ary = str.scan(MDTM_REGEXP)[0].collect {|i| i.to_i}
      return local ? Time.local(*ary) : Time.gm(*ary)
    end

    #
    # Creates a remote directory.
    #
    def mkdir(dirname)
      resp = sendcmd("MKD " + dirname)
      return parse257(resp)
    end

    #
    # Removes a remote directory.
    #
    def rmdir(dirname)
      voidcmd("RMD " + dirname)
    end

    #
    # Returns the current remote directory.
    #
    def pwd
      resp = sendcmd("PWD")
      return parse257(resp)
    end
    alias getdir pwd

    #
    # Returns system information.
    #
    def system
      resp = sendcmd("SYST")
      if resp[0, 3] != "215"
        raise FTPReplyError, resp
      end
      return resp[4 .. -1]
    end

    #
    # Aborts the previous command (ABOR command).
    #
    def abort
      line = "ABOR" + CRLF
      print "put: ABOR\n" if @debug_mode
      @sock.send(line, Socket::MSG_OOB)
      resp = getmultiline
      unless ["426", "226", "225"].include?(resp[0, 3])
        raise FTPProtoError, resp
      end
      return resp
    end

    #
    # Returns the status (STAT command).
    #
    def status
      line = "STAT" + CRLF
      print "put: STAT\n" if @debug_mode
      @sock.send(line, Socket::MSG_OOB)
      return getresp
    end

    #
    # Returns the raw last modification time of the (remote) file in the format
    # "YYYYMMDDhhmmss" (MDTM command).
    #
    # Use +mtime+ if you want a parsed Time instance.
    #
    def mdtm(filename)
      resp = sendcmd("MDTM " + filename)
      if resp[0, 3] == "213"
        return resp[3 .. -1].strip
      end
    end

    #
    # Issues the HELP command.
    #
    def help(arg = nil)
      cmd = "HELP"
      if arg
        cmd = cmd + " " + arg
      end
      sendcmd(cmd)
    end

    #
    # Exits the FTP session.
    #
    def quit
      voidcmd("QUIT")
    end

    #
    # Issues a NOOP command.
    #
    # Does nothing except return a response.
    #
    def noop
      voidcmd("NOOP")
    end

    #
    # Issues a SITE command.
    #
    def site(arg)
      cmd = "SITE " + arg
      voidcmd(cmd)
    end

    #
    # Closes the connection.  Further operations are impossible until you open
    # a new connection with #connect.
    #
    def close
      if @sock and not @sock.closed?
        begin
          @sock.shutdown(Socket::SHUT_WR) rescue nil
          orig, self.read_timeout = self.read_timeout, 3
          @sock.read rescue nil
        ensure
          @sock.close
          self.read_timeout = orig
        end
      end
    end

    #
    # Returns +true+ iff the connection is closed.
    #
    def closed?
      @sock == nil or @sock.closed?
    end

    # handler for response code 227
    # (Entering Passive Mode (h1,h2,h3,h4,p1,p2))
    #
    # Returns host and port.
    def parse227(resp) # :nodoc:
      if resp[0, 3] != "227"
        raise FTPReplyError, resp
      end
      if m = /\((?<host>\d+(,\d+){3}),(?<port>\d+,\d+)\)/.match(resp)
        return parse_pasv_ipv4_host(m["host"]), parse_pasv_port(m["port"])
      else
        raise FTPProtoError, resp
      end
    end
    private :parse227

    # handler for response code 228
    # (Entering Long Passive Mode)
    #
    # Returns host and port.
    def parse228(resp) # :nodoc:
      if resp[0, 3] != "228"
        raise FTPReplyError, resp
      end
      if m = /\(4,4,(?<host>\d+(,\d+){3}),2,(?<port>\d+,\d+)\)/.match(resp)
        return parse_pasv_ipv4_host(m["host"]), parse_pasv_port(m["port"])
      elsif m = /\(6,16,(?<host>\d+(,(\d+)){15}),2,(?<port>\d+,\d+)\)/.match(resp)
        return parse_pasv_ipv6_host(m["host"]), parse_pasv_port(m["port"])
      else
        raise FTPProtoError, resp
      end
    end
    private :parse228

    def parse_pasv_ipv4_host(s)
      return s.tr(",", ".")
    end
    private :parse_pasv_ipv4_host

    def parse_pasv_ipv6_host(s)
      return s.split(/,/).map { |i|
        "%02x" % i.to_i
      }.each_slice(2).map(&:join).join(":")
    end
    private :parse_pasv_ipv6_host

    def parse_pasv_port(s)
      return s.split(/,/).map(&:to_i).inject { |x, y|
        (x << 8) + y
      }
    end
    private :parse_pasv_port

    # handler for response code 229
    # (Extended Passive Mode Entered)
    #
    # Returns host and port.
    def parse229(resp) # :nodoc:
      if resp[0, 3] != "229"
        raise FTPReplyError, resp
      end
      if m = /\((?<d>[!-~])\k<d>\k<d>(?<port>\d+)\k<d>\)/.match(resp)
        return @sock.peeraddr[3], m["port"].to_i
      else
        raise FTPProtoError, resp
      end
    end
    private :parse229

    # handler for response code 257
    # ("PATHNAME" created)
    #
    # Returns host and port.
    def parse257(resp) # :nodoc:
      if resp[0, 3] != "257"
        raise FTPReplyError, resp
      end
      if resp[3, 2] != ' "'
        return ""
      end
      dirname = ""
      i = 5
      n = resp.length
      while i < n
        c = resp[i, 1]
        i = i + 1
        if c == '"'
          if i > n or resp[i, 1] != '"'
            break
          end
          i = i + 1
        end
        dirname = dirname + c
      end
      return dirname
    end
    private :parse257

    # :stopdoc:
    class NullSocket
      def read_timeout=(sec)
      end

      def closed?
        true
      end

      def close
      end

      def method_missing(mid, *args)
        raise FTPConnectionError, "not connected"
      end
    end

    class BufferedSocket < BufferedIO
      [:addr, :peeraddr, :send, :shutdown].each do |method|
        define_method(method) { |*args|
          @io.__send__(method, *args)
        }
      end

      def read(len = nil)
        if len
          s = super(len, "", true)
          return s.empty? ? nil : s
        else
          result = ""
          while s = super(DEFAULT_BLOCKSIZE, "", true)
            break if s.empty?
            result << s
          end
          return result
        end
      end

      def gets
        line = readuntil("\n", true)
        return line.empty? ? nil : line
      end

      def readline
        line = gets
        if line.nil?
          raise EOFError, "end of file reached"
        end
        return line
      end
    end
    # :startdoc:
  end
end


# Documentation comments:
#  - sourced from pickaxe and nutshell, with improvements (hopefully)
lib64/ruby/2.2.0/net/http/request.rb000064400000001313150402106040012654 0ustar00# HTTP request class.
# This class wraps together the request header and the request path.
# You cannot use this class directly. Instead, you should use one of its
# subclasses: Net::HTTP::Get, Net::HTTP::Post, Net::HTTP::Head.
#
class Net::HTTPRequest < Net::HTTPGenericRequest
  # Creates an HTTP request object for +path+.
  #
  # +initheader+ are the default headers to use.  Net::HTTP adds
  # Accept-Encoding to enable compression of the response body unless
  # Accept-Encoding or Range are supplied in +initheader+.

  def initialize(path, initheader = nil)
    super self.class::METHOD,
          self.class::REQUEST_HAS_BODY,
          self.class::RESPONSE_HAS_BODY,
          path, initheader
  end
end

lib64/ruby/2.2.0/net/http/backward.rb000064400000001102150402106040012736 0ustar00# for backward compatibility

# :enddoc:

class Net::HTTP
  ProxyMod = ProxyDelta
end

module Net
  HTTPSession = Net::HTTP
end

module Net::NetPrivate
  HTTPRequest = ::Net::HTTPRequest
end

Net::HTTPInformationCode  = Net::HTTPInformation
Net::HTTPSuccessCode      = Net::HTTPSuccess
Net::HTTPRedirectionCode  = Net::HTTPRedirection
Net::HTTPRetriableCode    = Net::HTTPRedirection
Net::HTTPClientErrorCode  = Net::HTTPClientError
Net::HTTPFatalErrorCode   = Net::HTTPClientError
Net::HTTPServerErrorCode  = Net::HTTPServerError
Net::HTTPResponceReceiver = Net::HTTPResponse

lib64/ruby/2.2.0/net/http/proxy_delta.rb000064400000000361150402106050013521 0ustar00module Net::HTTP::ProxyDelta   #:nodoc: internal use only
  private

  def conn_address
    proxy_address()
  end

  def conn_port
    proxy_port()
  end

  def edit_path(path)
    use_ssl? ? path : "http://#{addr_port()}#{path}"
  end
end

lib64/ruby/2.2.0/net/http/generic_request.rb000064400000022512150402106050014355 0ustar00# HTTPGenericRequest is the parent of the HTTPRequest class.
# Do not use this directly; use a subclass of HTTPRequest.
#
# Mixes in the HTTPHeader module to provide easier access to HTTP headers.
#
class Net::HTTPGenericRequest

  include Net::HTTPHeader

  def initialize(m, reqbody, resbody, uri_or_path, initheader = nil)
    @method = m
    @request_has_body = reqbody
    @response_has_body = resbody

    if URI === uri_or_path then
      @uri = uri_or_path.dup
      host = @uri.hostname.dup
      host << ":".freeze << @uri.port.to_s if @uri.port != @uri.default_port
      @path = uri_or_path.request_uri
      raise ArgumentError, "no HTTP request path given" unless @path
    else
      @uri = nil
      host = nil
      raise ArgumentError, "no HTTP request path given" unless uri_or_path
      raise ArgumentError, "HTTP request path is empty" if uri_or_path.empty?
      @path = uri_or_path.dup
    end

    @decode_content = false

    if @response_has_body and Net::HTTP::HAVE_ZLIB then
      if !initheader ||
         !initheader.keys.any? { |k|
           %w[accept-encoding range].include? k.downcase
         } then
        @decode_content = true
        initheader = initheader ? initheader.dup : {}
        initheader["accept-encoding"] =
          "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
      end
    end

    initialize_http_header initheader
    self['Accept'] ||= '*/*'
    self['User-Agent'] ||= 'Ruby'
    self['Host'] ||= host if host
    @body = nil
    @body_stream = nil
    @body_data = nil
  end

  attr_reader :method
  attr_reader :path
  attr_reader :uri

  # Automatically set to false if the user sets the Accept-Encoding header.
  # This indicates they wish to handle Content-encoding in responses
  # themselves.
  attr_reader :decode_content

  def inspect
    "\#<#{self.class} #{@method}>"
  end

  ##
  # Don't automatically decode response content-encoding if the user indicates
  # they want to handle it.

  def []=(key, val) # :nodoc:
    @decode_content = false if key.downcase == 'accept-encoding'

    super key, val
  end

  def request_body_permitted?
    @request_has_body
  end

  def response_body_permitted?
    @response_has_body
  end

  def body_exist?
    warn "Net::HTTPRequest#body_exist? is obsolete; use response_body_permitted?" if $VERBOSE
    response_body_permitted?
  end

  attr_reader :body

  def body=(str)
    @body = str
    @body_stream = nil
    @body_data = nil
    str
  end

  attr_reader :body_stream

  def body_stream=(input)
    @body = nil
    @body_stream = input
    @body_data = nil
    input
  end

  def set_body_internal(str)   #:nodoc: internal use only
    raise ArgumentError, "both of body argument and HTTPRequest#body set" if str and (@body or @body_stream)
    self.body = str if str
    if @body.nil? && @body_stream.nil? && @body_data.nil? && request_body_permitted?
      self.body = ''
    end
  end

  #
  # write
  #

  def exec(sock, ver, path)   #:nodoc: internal use only
    if @body
      send_request_with_body sock, ver, path, @body
    elsif @body_stream
      send_request_with_body_stream sock, ver, path, @body_stream
    elsif @body_data
      send_request_with_body_data sock, ver, path, @body_data
    else
      write_header sock, ver, path
    end
  end

  def update_uri(addr, port, ssl) # :nodoc: internal use only
    # reflect the connection and @path to @uri
    return unless @uri

    if ssl
      scheme = 'https'.freeze
      klass = URI::HTTPS
    else
      scheme = 'http'.freeze
      klass = URI::HTTP
    end

    if host = self['host']
      host.sub!(/:.*/s, ''.freeze)
    elsif host = @uri.host
    else
     host = addr
    end
    # convert the class of the URI
    if @uri.is_a?(klass)
      @uri.host = host
      @uri.port = port
    else
      @uri = klass.new(
        scheme, @uri.userinfo,
        host, port, nil,
        @uri.path, nil, @uri.query, nil)
    end
  end

  private

  class Chunker #:nodoc:
    def initialize(sock)
      @sock = sock
      @prev = nil
    end

    def write(buf)
      # avoid memcpy() of buf, buf can huge and eat memory bandwidth
      @sock.write("#{buf.bytesize.to_s(16)}\r\n")
      rv = @sock.write(buf)
      @sock.write("\r\n")
      rv
    end

    def finish
      @sock.write("0\r\n\r\n")
    end
  end

  def send_request_with_body(sock, ver, path, body)
    self.content_length = body.bytesize
    delete 'Transfer-Encoding'
    supply_default_content_type
    write_header sock, ver, path
    wait_for_continue sock, ver if sock.continue_timeout
    sock.write body
  end

  def send_request_with_body_stream(sock, ver, path, f)
    unless content_length() or chunked?
      raise ArgumentError,
          "Content-Length not given and Transfer-Encoding is not `chunked'"
    end
    supply_default_content_type
    write_header sock, ver, path
    wait_for_continue sock, ver if sock.continue_timeout
    if chunked?
      chunker = Chunker.new(sock)
      IO.copy_stream(f, chunker)
      chunker.finish
    else
      # copy_stream can sendfile() to sock.io unless we use SSL.
      # If sock.io is an SSLSocket, copy_stream will hit SSL_write()
      IO.copy_stream(f, sock.io)
    end
  end

  def send_request_with_body_data(sock, ver, path, params)
    if /\Amultipart\/form-data\z/i !~ self.content_type
      self.content_type = 'application/x-www-form-urlencoded'
      return send_request_with_body(sock, ver, path, URI.encode_www_form(params))
    end

    opt = @form_option.dup
    require 'securerandom' unless defined?(SecureRandom)
    opt[:boundary] ||= SecureRandom.urlsafe_base64(40)
    self.set_content_type(self.content_type, boundary: opt[:boundary])
    if chunked?
      write_header sock, ver, path
      encode_multipart_form_data(sock, params, opt)
    else
      require 'tempfile'
      file = Tempfile.new('multipart')
      file.binmode
      encode_multipart_form_data(file, params, opt)
      file.rewind
      self.content_length = file.size
      write_header sock, ver, path
      IO.copy_stream(file, sock)
      file.close(true)
    end
  end

  def encode_multipart_form_data(out, params, opt)
    charset = opt[:charset]
    boundary = opt[:boundary]
    require 'securerandom' unless defined?(SecureRandom)
    boundary ||= SecureRandom.urlsafe_base64(40)
    chunked_p = chunked?

    buf = ''
    params.each do |key, value, h={}|
      key = quote_string(key, charset)
      filename =
        h.key?(:filename) ? h[:filename] :
        value.respond_to?(:to_path) ? File.basename(value.to_path) :
        nil

      buf << "--#{boundary}\r\n"
      if filename
        filename = quote_string(filename, charset)
        type = h[:content_type] || 'application/octet-stream'
        buf << "Content-Disposition: form-data; " \
          "name=\"#{key}\"; filename=\"#{filename}\"\r\n" \
          "Content-Type: #{type}\r\n\r\n"
        if !out.respond_to?(:write) || !value.respond_to?(:read)
          # if +out+ is not an IO or +value+ is not an IO
          buf << (value.respond_to?(:read) ? value.read : value)
        elsif value.respond_to?(:size) && chunked_p
          # if +out+ is an IO and +value+ is a File, use IO.copy_stream
          flush_buffer(out, buf, chunked_p)
          out << "%x\r\n" % value.size if chunked_p
          IO.copy_stream(value, out)
          out << "\r\n" if chunked_p
        else
          # +out+ is an IO, and +value+ is not a File but an IO
          flush_buffer(out, buf, chunked_p)
          1 while flush_buffer(out, value.read(4096), chunked_p)
        end
      else
        # non-file field:
        #   HTML5 says, "The parts of the generated multipart/form-data
        #   resource that correspond to non-file fields must not have a
        #   Content-Type header specified."
        buf << "Content-Disposition: form-data; name=\"#{key}\"\r\n\r\n"
        buf << (value.respond_to?(:read) ? value.read : value)
      end
      buf << "\r\n"
    end
    buf << "--#{boundary}--\r\n"
    flush_buffer(out, buf, chunked_p)
    out << "0\r\n\r\n" if chunked_p
  end

  def quote_string(str, charset)
    str = str.encode(charset, fallback:->(c){'&#%d;'%c.encode("UTF-8").ord}) if charset
    str.gsub(/[\\"]/, '\\\\\&')
  end

  def flush_buffer(out, buf, chunked_p)
    return unless buf
    out << "%x\r\n"%buf.bytesize if chunked_p
    out << buf
    out << "\r\n" if chunked_p
    buf.clear
  end

  def supply_default_content_type
    return if content_type()
    warn 'net/http: warning: Content-Type did not set; using application/x-www-form-urlencoded' if $VERBOSE
    set_content_type 'application/x-www-form-urlencoded'
  end

  ##
  # Waits up to the continue timeout for a response from the server provided
  # we're speaking HTTP 1.1 and are expecting a 100-continue response.

  def wait_for_continue(sock, ver)
    if ver >= '1.1' and @header['expect'] and
        @header['expect'].include?('100-continue')
      if IO.select([sock.io], nil, nil, sock.continue_timeout)
        res = Net::HTTPResponse.read_new(sock)
        unless res.kind_of?(Net::HTTPContinue)
          res.decode_content = @decode_content
          throw :response, res
        end
      end
    end
  end

  def write_header(sock, ver, path)
    reqline = "#{@method} #{path} HTTP/#{ver}"
    if /[\r\n]/ =~ reqline
      raise ArgumentError, "A Request-Line must not contain CR or LF"
    end
    buf = ""
    buf << reqline << "\r\n"
    each_capitalized do |k,v|
      buf << "#{k}: #{v}\r\n"
    end
    buf << "\r\n"
    sock.write buf
  end

end

lib64/ruby/2.2.0/net/http/requests.rb000064400000005606150402106050013051 0ustar00#
# HTTP/1.1 methods --- RFC2616
#

# See Net::HTTPGenericRequest for attributes and methods.
# See Net::HTTP for usage examples.
class Net::HTTP::Get < Net::HTTPRequest
  METHOD = 'GET'
  REQUEST_HAS_BODY  = false
  RESPONSE_HAS_BODY = true
end

# See Net::HTTPGenericRequest for attributes and methods.
# See Net::HTTP for usage examples.
class Net::HTTP::Head < Net::HTTPRequest
  METHOD = 'HEAD'
  REQUEST_HAS_BODY = false
  RESPONSE_HAS_BODY = false
end

# See Net::HTTPGenericRequest for attributes and methods.
# See Net::HTTP for usage examples.
class Net::HTTP::Post < Net::HTTPRequest
  METHOD = 'POST'
  REQUEST_HAS_BODY = true
  RESPONSE_HAS_BODY = true
end

# See Net::HTTPGenericRequest for attributes and methods.
# See Net::HTTP for usage examples.
class Net::HTTP::Put < Net::HTTPRequest
  METHOD = 'PUT'
  REQUEST_HAS_BODY = true
  RESPONSE_HAS_BODY = true
end

# See Net::HTTPGenericRequest for attributes and methods.
# See Net::HTTP for usage examples.
class Net::HTTP::Delete < Net::HTTPRequest
  METHOD = 'DELETE'
  REQUEST_HAS_BODY = false
  RESPONSE_HAS_BODY = true
end

# See Net::HTTPGenericRequest for attributes and methods.
class Net::HTTP::Options < Net::HTTPRequest
  METHOD = 'OPTIONS'
  REQUEST_HAS_BODY = false
  RESPONSE_HAS_BODY = true
end

# See Net::HTTPGenericRequest for attributes and methods.
class Net::HTTP::Trace < Net::HTTPRequest
  METHOD = 'TRACE'
  REQUEST_HAS_BODY = false
  RESPONSE_HAS_BODY = true
end

#
# PATCH method --- RFC5789
#

# See Net::HTTPGenericRequest for attributes and methods.
class Net::HTTP::Patch < Net::HTTPRequest
  METHOD = 'PATCH'
  REQUEST_HAS_BODY = true
  RESPONSE_HAS_BODY = true
end

#
# WebDAV methods --- RFC2518
#

# See Net::HTTPGenericRequest for attributes and methods.
class Net::HTTP::Propfind < Net::HTTPRequest
  METHOD = 'PROPFIND'
  REQUEST_HAS_BODY = true
  RESPONSE_HAS_BODY = true
end

# See Net::HTTPGenericRequest for attributes and methods.
class Net::HTTP::Proppatch < Net::HTTPRequest
  METHOD = 'PROPPATCH'
  REQUEST_HAS_BODY = true
  RESPONSE_HAS_BODY = true
end

# See Net::HTTPGenericRequest for attributes and methods.
class Net::HTTP::Mkcol < Net::HTTPRequest
  METHOD = 'MKCOL'
  REQUEST_HAS_BODY = true
  RESPONSE_HAS_BODY = true
end

# See Net::HTTPGenericRequest for attributes and methods.
class Net::HTTP::Copy < Net::HTTPRequest
  METHOD = 'COPY'
  REQUEST_HAS_BODY = false
  RESPONSE_HAS_BODY = true
end

# See Net::HTTPGenericRequest for attributes and methods.
class Net::HTTP::Move < Net::HTTPRequest
  METHOD = 'MOVE'
  REQUEST_HAS_BODY = false
  RESPONSE_HAS_BODY = true
end

# See Net::HTTPGenericRequest for attributes and methods.
class Net::HTTP::Lock < Net::HTTPRequest
  METHOD = 'LOCK'
  REQUEST_HAS_BODY = true
  RESPONSE_HAS_BODY = true
end

# See Net::HTTPGenericRequest for attributes and methods.
class Net::HTTP::Unlock < Net::HTTPRequest
  METHOD = 'UNLOCK'
  REQUEST_HAS_BODY = true
  RESPONSE_HAS_BODY = true
end

lib64/ruby/2.2.0/net/http/exceptions.rb000064400000001306150402106050013350 0ustar00# Net::HTTP exception class.
# You cannot use Net::HTTPExceptions directly; instead, you must use
# its subclasses.
module Net::HTTPExceptions
  def initialize(msg, res)   #:nodoc:
    super msg
    @response = res
  end
  attr_reader :response
  alias data response    #:nodoc: obsolete
end
class Net::HTTPError < Net::ProtocolError
  include Net::HTTPExceptions
end
class Net::HTTPRetriableError < Net::ProtoRetriableError
  include Net::HTTPExceptions
end
class Net::HTTPServerException < Net::ProtoServerError
  # We cannot use the name "HTTPServerError", it is the name of the response.
  include Net::HTTPExceptions
end
class Net::HTTPFatalError < Net::ProtoFatalError
  include Net::HTTPExceptions
end

lib64/ruby/2.2.0/net/http/header.rb000064400000034602150402106050012424 0ustar00# The HTTPHeader module defines methods for reading and writing
# HTTP headers.
#
# It is used as a mixin by other classes, to provide hash-like
# access to HTTP header values. Unlike raw hash access, HTTPHeader
# provides access via case-insensitive keys. It also provides
# methods for accessing commonly-used HTTP header values in more
# convenient formats.
#
module Net::HTTPHeader

  def initialize_http_header(initheader)
    @header = {}
    return unless initheader
    initheader.each do |key, value|
      warn "net/http: warning: duplicated HTTP header: #{key}" if key?(key) and $VERBOSE
      @header[key.downcase] = [value.strip]
    end
  end

  def size   #:nodoc: obsolete
    @header.size
  end

  alias length size   #:nodoc: obsolete

  # Returns the header field corresponding to the case-insensitive key.
  # For example, a key of "Content-Type" might return "text/html"
  def [](key)
    a = @header[key.downcase] or return nil
    a.join(', ')
  end

  # Sets the header field corresponding to the case-insensitive key.
  def []=(key, val)
    unless val
      @header.delete key.downcase
      return val
    end
    @header[key.downcase] = [val]
  end

  # [Ruby 1.8.3]
  # Adds a value to a named header field, instead of replacing its value.
  # Second argument +val+ must be a String.
  # See also #[]=, #[] and #get_fields.
  #
  #   request.add_field 'X-My-Header', 'a'
  #   p request['X-My-Header']              #=> "a"
  #   p request.get_fields('X-My-Header')   #=> ["a"]
  #   request.add_field 'X-My-Header', 'b'
  #   p request['X-My-Header']              #=> "a, b"
  #   p request.get_fields('X-My-Header')   #=> ["a", "b"]
  #   request.add_field 'X-My-Header', 'c'
  #   p request['X-My-Header']              #=> "a, b, c"
  #   p request.get_fields('X-My-Header')   #=> ["a", "b", "c"]
  #
  def add_field(key, val)
    if @header.key?(key.downcase)
      @header[key.downcase].push val
    else
      @header[key.downcase] = [val]
    end
  end

  # [Ruby 1.8.3]
  # Returns an array of header field strings corresponding to the
  # case-insensitive +key+.  This method allows you to get duplicated
  # header fields without any processing.  See also #[].
  #
  #   p response.get_fields('Set-Cookie')
  #     #=> ["session=al98axx; expires=Fri, 31-Dec-1999 23:58:23",
  #          "query=rubyscript; expires=Fri, 31-Dec-1999 23:58:23"]
  #   p response['Set-Cookie']
  #     #=> "session=al98axx; expires=Fri, 31-Dec-1999 23:58:23, query=rubyscript; expires=Fri, 31-Dec-1999 23:58:23"
  #
  def get_fields(key)
    return nil unless @header[key.downcase]
    @header[key.downcase].dup
  end

  # Returns the header field corresponding to the case-insensitive key.
  # Returns the default value +args+, or the result of the block, or
  # raises an IndexError if there's no header field named +key+
  # See Hash#fetch
  def fetch(key, *args, &block)   #:yield: +key+
    a = @header.fetch(key.downcase, *args, &block)
    a.kind_of?(Array) ? a.join(', ') : a
  end

  # Iterates through the header names and values, passing in the name
  # and value to the code block supplied.
  #
  # Example:
  #
  #     response.header.each_header {|key,value| puts "#{key} = #{value}" }
  #
  def each_header   #:yield: +key+, +value+
    block_given? or return enum_for(__method__)
    @header.each do |k,va|
      yield k, va.join(', ')
    end
  end

  alias each each_header

  # Iterates through the header names in the header, passing
  # each header name to the code block.
  def each_name(&block)   #:yield: +key+
    block_given? or return enum_for(__method__)
    @header.each_key(&block)
  end

  alias each_key each_name

  # Iterates through the header names in the header, passing
  # capitalized header names to the code block.
  #
  # Note that header names are capitalized systematically;
  # capitalization may not match that used by the remote HTTP
  # server in its response.
  def each_capitalized_name  #:yield: +key+
    block_given? or return enum_for(__method__)
    @header.each_key do |k|
      yield capitalize(k)
    end
  end

  # Iterates through header values, passing each value to the
  # code block.
  def each_value   #:yield: +value+
    block_given? or return enum_for(__method__)
    @header.each_value do |va|
      yield va.join(', ')
    end
  end

  # Removes a header field, specified by case-insensitive key.
  def delete(key)
    @header.delete(key.downcase)
  end

  # true if +key+ header exists.
  def key?(key)
    @header.key?(key.downcase)
  end

  # Returns a Hash consisting of header names and array of values.
  # e.g.
  # {"cache-control" => ["private"],
  #  "content-type" => ["text/html"],
  #  "date" => ["Wed, 22 Jun 2005 22:11:50 GMT"]}
  def to_hash
    @header.dup
  end

  # As for #each_header, except the keys are provided in capitalized form.
  #
  # Note that header names are capitalized systematically;
  # capitalization may not match that used by the remote HTTP
  # server in its response.
  def each_capitalized
    block_given? or return enum_for(__method__)
    @header.each do |k,v|
      yield capitalize(k), v.join(', ')
    end
  end

  alias canonical_each each_capitalized

  def capitalize(name)
    name.split(/-/).map {|s| s.capitalize }.join('-')
  end
  private :capitalize

  # Returns an Array of Range objects which represent the Range:
  # HTTP header field, or +nil+ if there is no such header.
  def range
    return nil unless @header['range']

    value = self['Range']
    # byte-range-set = *( "," OWS ) ( byte-range-spec / suffix-byte-range-spec )
    #   *( OWS "," [ OWS ( byte-range-spec / suffix-byte-range-spec ) ] )
    # corrected collected ABNF
    # http://tools.ietf.org/html/draft-ietf-httpbis-p5-range-19#section-5.4.1
    # http://tools.ietf.org/html/draft-ietf-httpbis-p5-range-19#appendix-C
    # http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-19#section-3.2.5
    unless /\Abytes=((?:,[ \t]*)*(?:\d+-\d*|-\d+)(?:[ \t]*,(?:[ \t]*\d+-\d*|-\d+)?)*)\z/ =~ value
      raise Net::HTTPHeaderSyntaxError, "invalid syntax for byte-ranges-specifier: '#{value}'"
    end

    byte_range_set = $1
    result = byte_range_set.split(/,/).map {|spec|
      m = /(\d+)?\s*-\s*(\d+)?/i.match(spec) or
              raise Net::HTTPHeaderSyntaxError, "invalid byte-range-spec: '#{spec}'"
      d1 = m[1].to_i
      d2 = m[2].to_i
      if m[1] and m[2]
        if d1 > d2
          raise Net::HTTPHeaderSyntaxError, "last-byte-pos MUST greater than or equal to first-byte-pos but '#{spec}'"
        end
        d1..d2
      elsif m[1]
        d1..-1
      elsif m[2]
        -d2..-1
      else
        raise Net::HTTPHeaderSyntaxError, 'range is not specified'
      end
    }
    # if result.empty?
    # byte-range-set must include at least one byte-range-spec or suffix-byte-range-spec
    # but above regexp already denies it.
    if result.size == 1 && result[0].begin == 0 && result[0].end == -1
      raise Net::HTTPHeaderSyntaxError, 'only one suffix-byte-range-spec with zero suffix-length'
    end
    result
  end

  # Sets the HTTP Range: header.
  # Accepts either a Range object as a single argument,
  # or a beginning index and a length from that index.
  # Example:
  #
  #   req.range = (0..1023)
  #   req.set_range 0, 1023
  #
  def set_range(r, e = nil)
    unless r
      @header.delete 'range'
      return r
    end
    r = (r...r+e) if e
    case r
    when Numeric
      n = r.to_i
      rangestr = (n > 0 ? "0-#{n-1}" : "-#{-n}")
    when Range
      first = r.first
      last = r.end
      last -= 1 if r.exclude_end?
      if last == -1
        rangestr = (first > 0 ? "#{first}-" : "-#{-first}")
      else
        raise Net::HTTPHeaderSyntaxError, 'range.first is negative' if first < 0
        raise Net::HTTPHeaderSyntaxError, 'range.last is negative' if last < 0
        raise Net::HTTPHeaderSyntaxError, 'must be .first < .last' if first > last
        rangestr = "#{first}-#{last}"
      end
    else
      raise TypeError, 'Range/Integer is required'
    end
    @header['range'] = ["bytes=#{rangestr}"]
    r
  end

  alias range= set_range

  # Returns an Integer object which represents the HTTP Content-Length:
  # header field, or +nil+ if that field was not provided.
  def content_length
    return nil unless key?('Content-Length')
    len = self['Content-Length'].slice(/\d+/) or
        raise Net::HTTPHeaderSyntaxError, 'wrong Content-Length format'
    len.to_i
  end

  def content_length=(len)
    unless len
      @header.delete 'content-length'
      return nil
    end
    @header['content-length'] = [len.to_i.to_s]
  end

  # Returns "true" if the "transfer-encoding" header is present and
  # set to "chunked".  This is an HTTP/1.1 feature, allowing the
  # the content to be sent in "chunks" without at the outset
  # stating the entire content length.
  def chunked?
    return false unless @header['transfer-encoding']
    field = self['Transfer-Encoding']
    (/(?:\A|[^\-\w])chunked(?![\-\w])/i =~ field) ? true : false
  end

  # Returns a Range object which represents the value of the Content-Range:
  # header field.
  # For a partial entity body, this indicates where this fragment
  # fits inside the full entity body, as range of byte offsets.
  def content_range
    return nil unless @header['content-range']
    m = %r<bytes\s+(\d+)-(\d+)/(\d+|\*)>i.match(self['Content-Range']) or
        raise Net::HTTPHeaderSyntaxError, 'wrong Content-Range format'
    m[1].to_i .. m[2].to_i
  end

  # The length of the range represented in Content-Range: header.
  def range_length
    r = content_range() or return nil
    r.end - r.begin + 1
  end

  # Returns a content type string such as "text/html".
  # This method returns nil if Content-Type: header field does not exist.
  def content_type
    return nil unless main_type()
    if sub_type()
    then "#{main_type()}/#{sub_type()}"
    else main_type()
    end
  end

  # Returns a content type string such as "text".
  # This method returns nil if Content-Type: header field does not exist.
  def main_type
    return nil unless @header['content-type']
    self['Content-Type'].split(';').first.to_s.split('/')[0].to_s.strip
  end

  # Returns a content type string such as "html".
  # This method returns nil if Content-Type: header field does not exist
  # or sub-type is not given (e.g. "Content-Type: text").
  def sub_type
    return nil unless @header['content-type']
    _, sub = *self['Content-Type'].split(';').first.to_s.split('/')
    return nil unless sub
    sub.strip
  end

  # Any parameters specified for the content type, returned as a Hash.
  # For example, a header of Content-Type: text/html; charset=EUC-JP
  # would result in type_params returning {'charset' => 'EUC-JP'}
  def type_params
    result = {}
    list = self['Content-Type'].to_s.split(';')
    list.shift
    list.each do |param|
      k, v = *param.split('=', 2)
      result[k.strip] = v.strip
    end
    result
  end

  # Sets the content type in an HTTP header.
  # The +type+ should be a full HTTP content type, e.g. "text/html".
  # The +params+ are an optional Hash of parameters to add after the
  # content type, e.g. {'charset' => 'iso-8859-1'}
  def set_content_type(type, params = {})
    @header['content-type'] = [type + params.map{|k,v|"; #{k}=#{v}"}.join('')]
  end

  alias content_type= set_content_type

  # Set header fields and a body from HTML form data.
  # +params+ should be an Array of Arrays or
  # a Hash containing HTML form data.
  # Optional argument +sep+ means data record separator.
  #
  # Values are URL encoded as necessary and the content-type is set to
  # application/x-www-form-urlencoded
  #
  # Example:
  #    http.form_data = {"q" => "ruby", "lang" => "en"}
  #    http.form_data = {"q" => ["ruby", "perl"], "lang" => "en"}
  #    http.set_form_data({"q" => "ruby", "lang" => "en"}, ';')
  #
  def set_form_data(params, sep = '&')
    query = URI.encode_www_form(params)
    query.gsub!(/&/, sep) if sep != '&'
    self.body = query
    self.content_type = 'application/x-www-form-urlencoded'
  end

  alias form_data= set_form_data

  # Set a HTML form data set.
  # +params+ is the form data set; it is an Array of Arrays or a Hash
  # +enctype is the type to encode the form data set.
  # It is application/x-www-form-urlencoded or multipart/form-data.
  # +formpot+ is an optional hash to specify the detail.
  #
  # boundary:: the boundary of the multipart message
  # charset::  the charset of the message. All names and the values of
  #            non-file fields are encoded as the charset.
  #
  # Each item of params is an array and contains following items:
  # +name+::  the name of the field
  # +value+:: the value of the field, it should be a String or a File
  # +opt+::   an optional hash to specify additional information
  #
  # Each item is a file field or a normal field.
  # If +value+ is a File object or the +opt+ have a filename key,
  # the item is treated as a file field.
  #
  # If Transfer-Encoding is set as chunked, this send the request in
  # chunked encoding. Because chunked encoding is HTTP/1.1 feature,
  # you must confirm the server to support HTTP/1.1 before sending it.
  #
  # Example:
  #    http.set_form([["q", "ruby"], ["lang", "en"]])
  #
  # See also RFC 2388, RFC 2616, HTML 4.01, and HTML5
  #
  def set_form(params, enctype='application/x-www-form-urlencoded', formopt={})
    @body_data = params
    @body = nil
    @body_stream = nil
    @form_option = formopt
    case enctype
    when /\Aapplication\/x-www-form-urlencoded\z/i,
      /\Amultipart\/form-data\z/i
      self.content_type = enctype
    else
      raise ArgumentError, "invalid enctype: #{enctype}"
    end
  end

  # Set the Authorization: header for "Basic" authorization.
  def basic_auth(account, password)
    @header['authorization'] = [basic_encode(account, password)]
  end

  # Set Proxy-Authorization: header for "Basic" authorization.
  def proxy_basic_auth(account, password)
    @header['proxy-authorization'] = [basic_encode(account, password)]
  end

  def basic_encode(account, password)
    'Basic ' + ["#{account}:#{password}"].pack('m').delete("\r\n")
  end
  private :basic_encode

  def connection_close?
    tokens(@header['connection']).include?('close') or
    tokens(@header['proxy-connection']).include?('close')
  end

  def connection_keep_alive?
    tokens(@header['connection']).include?('keep-alive') or
    tokens(@header['proxy-connection']).include?('keep-alive')
  end

  def tokens(vals)
    return [] unless vals
    vals.map {|v| v.split(',') }.flatten\
        .reject {|str| str.strip.empty? }\
        .map {|tok| tok.strip.downcase }
  end
  private :tokens

end

lib64/ruby/2.2.0/net/http/responses.rb000064400000021050150402106050013206 0ustar00# :stopdoc:
class Net::HTTPUnknownResponse < Net::HTTPResponse
  HAS_BODY = true
  EXCEPTION_TYPE = Net::HTTPError
end
class Net::HTTPInformation < Net::HTTPResponse           # 1xx
  HAS_BODY = false
  EXCEPTION_TYPE = Net::HTTPError
end
class Net::HTTPSuccess < Net::HTTPResponse               # 2xx
  HAS_BODY = true
  EXCEPTION_TYPE = Net::HTTPError
end
class Net::HTTPRedirection < Net::HTTPResponse           # 3xx
  HAS_BODY = true
  EXCEPTION_TYPE = Net::HTTPRetriableError
end
class Net::HTTPClientError < Net::HTTPResponse           # 4xx
  HAS_BODY = true
  EXCEPTION_TYPE = Net::HTTPServerException   # for backward compatibility
end
class Net::HTTPServerError < Net::HTTPResponse           # 5xx
  HAS_BODY = true
  EXCEPTION_TYPE = Net::HTTPFatalError    # for backward compatibility
end

class Net::HTTPContinue < Net::HTTPInformation           # 100
  HAS_BODY = false
end
class Net::HTTPSwitchProtocol < Net::HTTPInformation     # 101
  HAS_BODY = false
end
# 102 - RFC 2518; removed in RFC 4918

class Net::HTTPOK < Net::HTTPSuccess                            # 200
  HAS_BODY = true
end
class Net::HTTPCreated < Net::HTTPSuccess                       # 201
  HAS_BODY = true
end
class Net::HTTPAccepted < Net::HTTPSuccess                      # 202
  HAS_BODY = true
end
class Net::HTTPNonAuthoritativeInformation < Net::HTTPSuccess   # 203
  HAS_BODY = true
end
class Net::HTTPNoContent < Net::HTTPSuccess                     # 204
  HAS_BODY = false
end
class Net::HTTPResetContent < Net::HTTPSuccess                  # 205
  HAS_BODY = false
end
class Net::HTTPPartialContent < Net::HTTPSuccess                # 206
  HAS_BODY = true
end
class Net::HTTPMultiStatus < Net::HTTPSuccess                   # 207 - RFC 4918
  HAS_BODY = true
end
# 208 Already Reported - RFC 5842; experimental
class Net::HTTPIMUsed < Net::HTTPSuccess                        # 226 - RFC 3229
  HAS_BODY = true
end

class Net::HTTPMultipleChoices < Net::HTTPRedirection    # 300
  HAS_BODY = true
end
Net::HTTPMultipleChoice = Net::HTTPMultipleChoices
class Net::HTTPMovedPermanently < Net::HTTPRedirection   # 301
  HAS_BODY = true
end
class Net::HTTPFound < Net::HTTPRedirection              # 302
  HAS_BODY = true
end
Net::HTTPMovedTemporarily = Net::HTTPFound
class Net::HTTPSeeOther < Net::HTTPRedirection           # 303
  HAS_BODY = true
end
class Net::HTTPNotModified < Net::HTTPRedirection        # 304
  HAS_BODY = false
end
class Net::HTTPUseProxy < Net::HTTPRedirection           # 305
  HAS_BODY = false
end
# 306 Switch Proxy - no longer unused
class Net::HTTPTemporaryRedirect < Net::HTTPRedirection  # 307
  HAS_BODY = true
end
class Net::HTTPPermanentRedirect < Net::HTTPRedirection  # 308
  HAS_BODY = true
end

class Net::HTTPBadRequest < Net::HTTPClientError                    # 400
  HAS_BODY = true
end
class Net::HTTPUnauthorized < Net::HTTPClientError                  # 401
  HAS_BODY = true
end
class Net::HTTPPaymentRequired < Net::HTTPClientError               # 402
  HAS_BODY = true
end
class Net::HTTPForbidden < Net::HTTPClientError                     # 403
  HAS_BODY = true
end
class Net::HTTPNotFound < Net::HTTPClientError                      # 404
  HAS_BODY = true
end
class Net::HTTPMethodNotAllowed < Net::HTTPClientError              # 405
  HAS_BODY = true
end
class Net::HTTPNotAcceptable < Net::HTTPClientError                 # 406
  HAS_BODY = true
end
class Net::HTTPProxyAuthenticationRequired < Net::HTTPClientError   # 407
  HAS_BODY = true
end
class Net::HTTPRequestTimeOut < Net::HTTPClientError                # 408
  HAS_BODY = true
end
class Net::HTTPConflict < Net::HTTPClientError                      # 409
  HAS_BODY = true
end
class Net::HTTPGone < Net::HTTPClientError                          # 410
  HAS_BODY = true
end
class Net::HTTPLengthRequired < Net::HTTPClientError                # 411
  HAS_BODY = true
end
class Net::HTTPPreconditionFailed < Net::HTTPClientError            # 412
  HAS_BODY = true
end
class Net::HTTPRequestEntityTooLarge < Net::HTTPClientError         # 413
  HAS_BODY = true
end
class Net::HTTPRequestURITooLong < Net::HTTPClientError             # 414
  HAS_BODY = true
end
Net::HTTPRequestURITooLarge = Net::HTTPRequestURITooLong
class Net::HTTPUnsupportedMediaType < Net::HTTPClientError          # 415
  HAS_BODY = true
end
class Net::HTTPRequestedRangeNotSatisfiable < Net::HTTPClientError  # 416
  HAS_BODY = true
end
class Net::HTTPExpectationFailed < Net::HTTPClientError             # 417
  HAS_BODY = true
end
# 418 I'm a teapot - RFC 2324; a joke RFC
# 420 Enhance Your Calm - Twitter
class Net::HTTPUnprocessableEntity < Net::HTTPClientError           # 422 - RFC 4918
  HAS_BODY = true
end
class Net::HTTPLocked < Net::HTTPClientError                        # 423 - RFC 4918
  HAS_BODY = true
end
class Net::HTTPFailedDependency < Net::HTTPClientError              # 424 - RFC 4918
  HAS_BODY = true
end
# 425 Unordered Collection - existed only in draft
class Net::HTTPUpgradeRequired < Net::HTTPClientError               # 426 - RFC 2817
  HAS_BODY = true
end
class Net::HTTPPreconditionRequired < Net::HTTPClientError          # 428 - RFC 6585
  HAS_BODY = true
end
class Net::HTTPTooManyRequests < Net::HTTPClientError               # 429 - RFC 6585
  HAS_BODY = true
end
class Net::HTTPRequestHeaderFieldsTooLarge < Net::HTTPClientError   # 431 - RFC 6585
  HAS_BODY = true
end
# 444 No Response - Nginx
# 449 Retry With - Microsoft
# 450 Blocked by Windows Parental Controls - Microsoft
# 499 Client Closed Request - Nginx

class Net::HTTPInternalServerError < Net::HTTPServerError           # 500
  HAS_BODY = true
end
class Net::HTTPNotImplemented < Net::HTTPServerError                # 501
  HAS_BODY = true
end
class Net::HTTPBadGateway < Net::HTTPServerError                    # 502
  HAS_BODY = true
end
class Net::HTTPServiceUnavailable < Net::HTTPServerError            # 503
  HAS_BODY = true
end
class Net::HTTPGatewayTimeOut < Net::HTTPServerError                # 504
  HAS_BODY = true
end
class Net::HTTPVersionNotSupported < Net::HTTPServerError           # 505
  HAS_BODY = true
end
# 506 Variant Also Negotiates - RFC 2295; experimental
class Net::HTTPInsufficientStorage < Net::HTTPServerError           # 507 - RFC 4918
  HAS_BODY = true
end
# 508 Loop Detected - RFC 5842; experimental
# 509 Bandwidth Limit Exceeded - Apache bw/limited extension
# 510 Not Extended - RFC 2774; experimental
class Net::HTTPNetworkAuthenticationRequired < Net::HTTPServerError # 511 - RFC 6585
  HAS_BODY = true
end

class Net::HTTPResponse
  CODE_CLASS_TO_OBJ = {
    '1' => Net::HTTPInformation,
    '2' => Net::HTTPSuccess,
    '3' => Net::HTTPRedirection,
    '4' => Net::HTTPClientError,
    '5' => Net::HTTPServerError
  }
  CODE_TO_OBJ = {
    '100' => Net::HTTPContinue,
    '101' => Net::HTTPSwitchProtocol,

    '200' => Net::HTTPOK,
    '201' => Net::HTTPCreated,
    '202' => Net::HTTPAccepted,
    '203' => Net::HTTPNonAuthoritativeInformation,
    '204' => Net::HTTPNoContent,
    '205' => Net::HTTPResetContent,
    '206' => Net::HTTPPartialContent,
    '207' => Net::HTTPMultiStatus,
    '226' => Net::HTTPIMUsed,

    '300' => Net::HTTPMultipleChoices,
    '301' => Net::HTTPMovedPermanently,
    '302' => Net::HTTPFound,
    '303' => Net::HTTPSeeOther,
    '304' => Net::HTTPNotModified,
    '305' => Net::HTTPUseProxy,
    '307' => Net::HTTPTemporaryRedirect,

    '400' => Net::HTTPBadRequest,
    '401' => Net::HTTPUnauthorized,
    '402' => Net::HTTPPaymentRequired,
    '403' => Net::HTTPForbidden,
    '404' => Net::HTTPNotFound,
    '405' => Net::HTTPMethodNotAllowed,
    '406' => Net::HTTPNotAcceptable,
    '407' => Net::HTTPProxyAuthenticationRequired,
    '408' => Net::HTTPRequestTimeOut,
    '409' => Net::HTTPConflict,
    '410' => Net::HTTPGone,
    '411' => Net::HTTPLengthRequired,
    '412' => Net::HTTPPreconditionFailed,
    '413' => Net::HTTPRequestEntityTooLarge,
    '414' => Net::HTTPRequestURITooLong,
    '415' => Net::HTTPUnsupportedMediaType,
    '416' => Net::HTTPRequestedRangeNotSatisfiable,
    '417' => Net::HTTPExpectationFailed,
    '422' => Net::HTTPUnprocessableEntity,
    '423' => Net::HTTPLocked,
    '424' => Net::HTTPFailedDependency,
    '426' => Net::HTTPUpgradeRequired,
    '428' => Net::HTTPPreconditionRequired,
    '429' => Net::HTTPTooManyRequests,
    '431' => Net::HTTPRequestHeaderFieldsTooLarge,

    '500' => Net::HTTPInternalServerError,
    '501' => Net::HTTPNotImplemented,
    '502' => Net::HTTPBadGateway,
    '503' => Net::HTTPServiceUnavailable,
    '504' => Net::HTTPGatewayTimeOut,
    '505' => Net::HTTPVersionNotSupported,
    '507' => Net::HTTPInsufficientStorage,
    '511' => Net::HTTPNetworkAuthenticationRequired,
  }
end

# :startdoc:

lib64/ruby/2.2.0/net/http/response.rb000064400000024172150402106050013033 0ustar00# HTTP response class.
#
# This class wraps together the response header and the response body (the
# entity requested).
#
# It mixes in the HTTPHeader module, which provides access to response
# header values both via hash-like methods and via individual readers.
#
# Note that each possible HTTP response code defines its own
# HTTPResponse subclass.  These are listed below.
#
# All classes are defined under the Net module. Indentation indicates
# inheritance.  For a list of the classes see Net::HTTP.
#
#
class Net::HTTPResponse
  class << self
    # true if the response has a body.
    def body_permitted?
      self::HAS_BODY
    end

    def exception_type   # :nodoc: internal use only
      self::EXCEPTION_TYPE
    end

    def read_new(sock)   #:nodoc: internal use only
      httpv, code, msg = read_status_line(sock)
      res = response_class(code).new(httpv, code, msg)
      each_response_header(sock) do |k,v|
        res.add_field k, v
      end
      res
    end

    private

    def read_status_line(sock)
      str = sock.readline
      m = /\AHTTP(?:\/(\d+\.\d+))?\s+(\d\d\d)(?:\s+(.*))?\z/in.match(str) or
        raise Net::HTTPBadResponse, "wrong status line: #{str.dump}"
      m.captures
    end

    def response_class(code)
      CODE_TO_OBJ[code] or
      CODE_CLASS_TO_OBJ[code[0,1]] or
      Net::HTTPUnknownResponse
    end

    def each_response_header(sock)
      key = value = nil
      while true
        line = sock.readuntil("\n", true).sub(/\s+\z/, '')
        break if line.empty?
        if line[0] == ?\s or line[0] == ?\t and value
          value << ' ' unless value.empty?
          value << line.strip
        else
          yield key, value if key
          key, value = line.strip.split(/\s*:\s*/, 2)
          raise Net::HTTPBadResponse, 'wrong header line format' if value.nil?
        end
      end
      yield key, value if key
    end
  end

  # next is to fix bug in RDoc, where the private inside class << self
  # spills out.
  public

  include Net::HTTPHeader

  def initialize(httpv, code, msg)   #:nodoc: internal use only
    @http_version = httpv
    @code         = code
    @message      = msg
    initialize_http_header nil
    @body = nil
    @read = false
    @uri  = nil
    @decode_content = false
  end

  # The HTTP version supported by the server.
  attr_reader :http_version

  # The HTTP result code string. For example, '302'.  You can also
  # determine the response type by examining which response subclass
  # the response object is an instance of.
  attr_reader :code

  # The HTTP result message sent by the server. For example, 'Not Found'.
  attr_reader :message
  alias msg message   # :nodoc: obsolete

  # The URI used to fetch this response.  The response URI is only available
  # if a URI was used to create the request.
  attr_reader :uri

  # Set to true automatically when the request did not contain an
  # Accept-Encoding header from the user.
  attr_accessor :decode_content

  def inspect
    "#<#{self.class} #{@code} #{@message} readbody=#{@read}>"
  end

  #
  # response <-> exception relationship
  #

  def code_type   #:nodoc:
    self.class
  end

  def error!   #:nodoc:
    raise error_type().new(@code + ' ' + @message.dump, self)
  end

  def error_type   #:nodoc:
    self.class::EXCEPTION_TYPE
  end

  # Raises an HTTP error if the response is not 2xx (success).
  def value
    error! unless self.kind_of?(Net::HTTPSuccess)
  end

  def uri= uri # :nodoc:
    @uri = uri.dup if uri
  end

  #
  # header (for backward compatibility only; DO NOT USE)
  #

  def response   #:nodoc:
    warn "#{caller(1)[0]}: warning: Net::HTTPResponse#response is obsolete" if $VERBOSE
    self
  end

  def header   #:nodoc:
    warn "#{caller(1)[0]}: warning: Net::HTTPResponse#header is obsolete" if $VERBOSE
    self
  end

  def read_header   #:nodoc:
    warn "#{caller(1)[0]}: warning: Net::HTTPResponse#read_header is obsolete" if $VERBOSE
    self
  end

  #
  # body
  #

  def reading_body(sock, reqmethodallowbody)  #:nodoc: internal use only
    @socket = sock
    @body_exist = reqmethodallowbody && self.class.body_permitted?
    begin
      yield
      self.body   # ensure to read body
    ensure
      @socket = nil
    end
  end

  # Gets the entity body returned by the remote HTTP server.
  #
  # If a block is given, the body is passed to the block, and
  # the body is provided in fragments, as it is read in from the socket.
  #
  # Calling this method a second or subsequent time for the same
  # HTTPResponse object will return the value already read.
  #
  #   http.request_get('/index.html') {|res|
  #     puts res.read_body
  #   }
  #
  #   http.request_get('/index.html') {|res|
  #     p res.read_body.object_id   # 538149362
  #     p res.read_body.object_id   # 538149362
  #   }
  #
  #   # using iterator
  #   http.request_get('/index.html') {|res|
  #     res.read_body do |segment|
  #       print segment
  #     end
  #   }
  #
  def read_body(dest = nil, &block)
    if @read
      raise IOError, "#{self.class}\#read_body called twice" if dest or block
      return @body
    end
    to = procdest(dest, block)
    stream_check
    if @body_exist
      read_body_0 to
      @body = to
    else
      @body = nil
    end
    @read = true

    @body
  end

  # Returns the full entity body.
  #
  # Calling this method a second or subsequent time will return the
  # string already read.
  #
  #   http.request_get('/index.html') {|res|
  #     puts res.body
  #   }
  #
  #   http.request_get('/index.html') {|res|
  #     p res.body.object_id   # 538149362
  #     p res.body.object_id   # 538149362
  #   }
  #
  def body
    read_body()
  end

  # Because it may be necessary to modify the body, Eg, decompression
  # this method facilitates that.
  def body=(value)
    @body = value
  end

  alias entity body   #:nodoc: obsolete

  private

  ##
  # Checks for a supported Content-Encoding header and yields an Inflate
  # wrapper for this response's socket when zlib is present.  If the
  # Content-Encoding is unsupported or zlib is missing the plain socket is
  # yielded.
  #
  # If a Content-Range header is present a plain socket is yielded as the
  # bytes in the range may not be a complete deflate block.

  def inflater # :nodoc:
    return yield @socket unless Net::HTTP::HAVE_ZLIB
    return yield @socket unless @decode_content
    return yield @socket if self['content-range']

    v = self['content-encoding']
    case v && v.downcase
    when 'deflate', 'gzip', 'x-gzip' then
      self.delete 'content-encoding'

      inflate_body_io = Inflater.new(@socket)

      begin
        yield inflate_body_io
      ensure
        orig_err = $!
        begin
          inflate_body_io.finish
        rescue => err
          raise orig_err || err
        end
      end
    when 'none', 'identity' then
      self.delete 'content-encoding'

      yield @socket
    else
      yield @socket
    end
  end

  def read_body_0(dest)
    inflater do |inflate_body_io|
      if chunked?
        read_chunked dest, inflate_body_io
        return
      end

      @socket = inflate_body_io

      clen = content_length()
      if clen
        @socket.read clen, dest, true   # ignore EOF
        return
      end
      clen = range_length()
      if clen
        @socket.read clen, dest
        return
      end
      @socket.read_all dest
    end
  end

  ##
  # read_chunked reads from +@socket+ for chunk-size, chunk-extension, CRLF,
  # etc. and +chunk_data_io+ for chunk-data which may be deflate or gzip
  # encoded.
  #
  # See RFC 2616 section 3.6.1 for definitions

  def read_chunked(dest, chunk_data_io) # :nodoc:
    total = 0
    while true
      line = @socket.readline
      hexlen = line.slice(/[0-9a-fA-F]+/) or
          raise Net::HTTPBadResponse, "wrong chunk size line: #{line}"
      len = hexlen.hex
      break if len == 0
      begin
        chunk_data_io.read len, dest
      ensure
        total += len
        @socket.read 2   # \r\n
      end
    end
    until @socket.readline.empty?
      # none
    end
  end

  def stream_check
    raise IOError, 'attempt to read body out of block' if @socket.closed?
  end

  def procdest(dest, block)
    raise ArgumentError, 'both arg and block given for HTTP method' if
      dest and block
    if block
      Net::ReadAdapter.new(block)
    else
      dest || ''
    end
  end

  ##
  # Inflater is a wrapper around Net::BufferedIO that transparently inflates
  # zlib and gzip streams.

  class Inflater # :nodoc:

    ##
    # Creates a new Inflater wrapping +socket+

    def initialize socket
      @socket = socket
      # zlib with automatic gzip detection
      @inflate = Zlib::Inflate.new(32 + Zlib::MAX_WBITS)
    end

    ##
    # Finishes the inflate stream.

    def finish
      return if @inflate.total_in == 0
      @inflate.finish
    end

    ##
    # Returns a Net::ReadAdapter that inflates each read chunk into +dest+.
    #
    # This allows a large response body to be inflated without storing the
    # entire body in memory.

    def inflate_adapter(dest)
      if dest.respond_to?(:set_encoding)
        dest.set_encoding(Encoding::ASCII_8BIT)
      elsif dest.respond_to?(:force_encoding)
        dest.force_encoding(Encoding::ASCII_8BIT)
      end
      block = proc do |compressed_chunk|
        @inflate.inflate(compressed_chunk) do |chunk|
          dest << chunk
        end
      end

      Net::ReadAdapter.new(block)
    end

    ##
    # Reads +clen+ bytes from the socket, inflates them, then writes them to
    # +dest+.  +ignore_eof+ is passed down to Net::BufferedIO#read
    #
    # Unlike Net::BufferedIO#read, this method returns more than +clen+ bytes.
    # At this time there is no way for a user of Net::HTTPResponse to read a
    # specific number of bytes from the HTTP response body, so this internal
    # API does not return the same number of bytes as were requested.
    #
    # See https://bugs.ruby-lang.org/issues/6492 for further discussion.

    def read clen, dest, ignore_eof = false
      temp_dest = inflate_adapter(dest)

      @socket.read clen, temp_dest, ignore_eof
    end

    ##
    # Reads the rest of the socket, inflates it, then writes it to +dest+.

    def read_all dest
      temp_dest = inflate_adapter(dest)

      @socket.read_all temp_dest
    end

  end

end

lib64/ruby/2.2.0/net/smtp.rb000064400000074157150402106050011211 0ustar00# = net/smtp.rb
#
# Copyright (c) 1999-2007 Yukihiro Matsumoto.
#
# Copyright (c) 1999-2007 Minero Aoki.
#
# Written & maintained by Minero Aoki <aamine@loveruby.net>.
#
# Documented by William Webber and Minero Aoki.
#
# This program is free software. You can re-distribute and/or
# modify this program under the same terms as Ruby itself.
#
# NOTE: You can find Japanese version of this document at:
# http://www.ruby-lang.org/ja/man/html/net_smtp.html
#
# $Id: smtp.rb 46793 2014-07-11 19:22:19Z kosaki $
#
# See Net::SMTP for documentation.
#

require 'net/protocol'
require 'digest/md5'
require 'timeout'
begin
  require 'openssl'
rescue LoadError
end

module Net

  # Module mixed in to all SMTP error classes
  module SMTPError
    # This *class* is a module for backward compatibility.
    # In later release, this module becomes a class.
  end

  # Represents an SMTP authentication error.
  class SMTPAuthenticationError < ProtoAuthError
    include SMTPError
  end

  # Represents SMTP error code 420 or 450, a temporary error.
  class SMTPServerBusy < ProtoServerError
    include SMTPError
  end

  # Represents an SMTP command syntax error (error code 500)
  class SMTPSyntaxError < ProtoSyntaxError
    include SMTPError
  end

  # Represents a fatal SMTP error (error code 5xx, except for 500)
  class SMTPFatalError < ProtoFatalError
    include SMTPError
  end

  # Unexpected reply code returned from server.
  class SMTPUnknownError < ProtoUnknownError
    include SMTPError
  end

  # Command is not supported on server.
  class SMTPUnsupportedCommand < ProtocolError
    include SMTPError
  end

  #
  # == What is This Library?
  #
  # This library provides functionality to send internet
  # mail via SMTP, the Simple Mail Transfer Protocol. For details of
  # SMTP itself, see [RFC2821] (http://www.ietf.org/rfc/rfc2821.txt).
  #
  # == What is This Library NOT?
  #
  # This library does NOT provide functions to compose internet mails.
  # You must create them by yourself. If you want better mail support,
  # try RubyMail or TMail or search for alternatives in
  # {RubyGems.org}[https://rubygems.org/] or {The Ruby
  # Toolbox}[https://www.ruby-toolbox.com/].
  #
  # FYI: the official documentation on internet mail is: [RFC2822] (http://www.ietf.org/rfc/rfc2822.txt).
  #
  # == Examples
  #
  # === Sending Messages
  #
  # You must open a connection to an SMTP server before sending messages.
  # The first argument is the address of your SMTP server, and the second
  # argument is the port number. Using SMTP.start with a block is the simplest
  # way to do this. This way, the SMTP connection is closed automatically
  # after the block is executed.
  #
  #     require 'net/smtp'
  #     Net::SMTP.start('your.smtp.server', 25) do |smtp|
  #       # Use the SMTP object smtp only in this block.
  #     end
  #
  # Replace 'your.smtp.server' with your SMTP server. Normally
  # your system manager or internet provider supplies a server
  # for you.
  #
  # Then you can send messages.
  #
  #     msgstr = <<END_OF_MESSAGE
  #     From: Your Name <your@mail.address>
  #     To: Destination Address <someone@example.com>
  #     Subject: test message
  #     Date: Sat, 23 Jun 2001 16:26:43 +0900
  #     Message-Id: <unique.message.id.string@example.com>
  #
  #     This is a test message.
  #     END_OF_MESSAGE
  #
  #     require 'net/smtp'
  #     Net::SMTP.start('your.smtp.server', 25) do |smtp|
  #       smtp.send_message msgstr,
  #                         'your@mail.address',
  #                         'his_address@example.com'
  #     end
  #
  # === Closing the Session
  #
  # You MUST close the SMTP session after sending messages, by calling
  # the #finish method:
  #
  #     # using SMTP#finish
  #     smtp = Net::SMTP.start('your.smtp.server', 25)
  #     smtp.send_message msgstr, 'from@address', 'to@address'
  #     smtp.finish
  #
  # You can also use the block form of SMTP.start/SMTP#start.  This closes
  # the SMTP session automatically:
  #
  #     # using block form of SMTP.start
  #     Net::SMTP.start('your.smtp.server', 25) do |smtp|
  #       smtp.send_message msgstr, 'from@address', 'to@address'
  #     end
  #
  # I strongly recommend this scheme.  This form is simpler and more robust.
  #
  # === HELO domain
  #
  # In almost all situations, you must provide a third argument
  # to SMTP.start/SMTP#start. This is the domain name which you are on
  # (the host to send mail from). It is called the "HELO domain".
  # The SMTP server will judge whether it should send or reject
  # the SMTP session by inspecting the HELO domain.
  #
  #     Net::SMTP.start('your.smtp.server', 25,
  #                     'mail.from.domain') { |smtp| ... }
  #
  # === SMTP Authentication
  #
  # The Net::SMTP class supports three authentication schemes;
  # PLAIN, LOGIN and CRAM MD5.  (SMTP Authentication: [RFC2554])
  # To use SMTP authentication, pass extra arguments to
  # SMTP.start/SMTP#start.
  #
  #     # PLAIN
  #     Net::SMTP.start('your.smtp.server', 25, 'mail.from.domain',
  #                     'Your Account', 'Your Password', :plain)
  #     # LOGIN
  #     Net::SMTP.start('your.smtp.server', 25, 'mail.from.domain',
  #                     'Your Account', 'Your Password', :login)
  #
  #     # CRAM MD5
  #     Net::SMTP.start('your.smtp.server', 25, 'mail.from.domain',
  #                     'Your Account', 'Your Password', :cram_md5)
  #
  class SMTP

    Revision = %q$Revision: 46793 $.split[1]

    # The default SMTP port number, 25.
    def SMTP.default_port
      25
    end

    # The default mail submission port number, 587.
    def SMTP.default_submission_port
      587
    end

    # The default SMTPS port number, 465.
    def SMTP.default_tls_port
      465
    end

    class << self
      alias default_ssl_port default_tls_port
    end

    def SMTP.default_ssl_context
      OpenSSL::SSL::SSLContext.new
    end

    #
    # Creates a new Net::SMTP object.
    #
    # +address+ is the hostname or ip address of your SMTP
    # server.  +port+ is the port to connect to; it defaults to
    # port 25.
    #
    # This method does not open the TCP connection.  You can use
    # SMTP.start instead of SMTP.new if you want to do everything
    # at once.  Otherwise, follow SMTP.new with SMTP#start.
    #
    def initialize(address, port = nil)
      @address = address
      @port = (port || SMTP.default_port)
      @esmtp = true
      @capabilities = nil
      @socket = nil
      @started = false
      @open_timeout = 30
      @read_timeout = 60
      @error_occurred = false
      @debug_output = nil
      @tls = false
      @starttls = false
      @ssl_context = nil
    end

    # Provide human-readable stringification of class state.
    def inspect
      "#<#{self.class} #{@address}:#{@port} started=#{@started}>"
    end

    #
    # Set whether to use ESMTP or not.  This should be done before
    # calling #start.  Note that if #start is called in ESMTP mode,
    # and the connection fails due to a ProtocolError, the SMTP
    # object will automatically switch to plain SMTP mode and
    # retry (but not vice versa).
    #
    attr_accessor :esmtp

    # +true+ if the SMTP object uses ESMTP (which it does by default).
    alias :esmtp? :esmtp

    # true if server advertises STARTTLS.
    # You cannot get valid value before opening SMTP session.
    def capable_starttls?
      capable?('STARTTLS')
    end

    def capable?(key)
      return nil unless @capabilities
      @capabilities[key] ? true : false
    end
    private :capable?

    # true if server advertises AUTH PLAIN.
    # You cannot get valid value before opening SMTP session.
    def capable_plain_auth?
      auth_capable?('PLAIN')
    end

    # true if server advertises AUTH LOGIN.
    # You cannot get valid value before opening SMTP session.
    def capable_login_auth?
      auth_capable?('LOGIN')
    end

    # true if server advertises AUTH CRAM-MD5.
    # You cannot get valid value before opening SMTP session.
    def capable_cram_md5_auth?
      auth_capable?('CRAM-MD5')
    end

    def auth_capable?(type)
      return nil unless @capabilities
      return false unless @capabilities['AUTH']
      @capabilities['AUTH'].include?(type)
    end
    private :auth_capable?

    # Returns supported authentication methods on this server.
    # You cannot get valid value before opening SMTP session.
    def capable_auth_types
      return [] unless @capabilities
      return [] unless @capabilities['AUTH']
      @capabilities['AUTH']
    end

    # true if this object uses SMTP/TLS (SMTPS).
    def tls?
      @tls
    end

    alias ssl? tls?

    # Enables SMTP/TLS (SMTPS: SMTP over direct TLS connection) for
    # this object.  Must be called before the connection is established
    # to have any effect.  +context+ is a OpenSSL::SSL::SSLContext object.
    def enable_tls(context = SMTP.default_ssl_context)
      raise 'openssl library not installed' unless defined?(OpenSSL)
      raise ArgumentError, "SMTPS and STARTTLS is exclusive" if @starttls
      @tls = true
      @ssl_context = context
    end

    alias enable_ssl enable_tls

    # Disables SMTP/TLS for this object.  Must be called before the
    # connection is established to have any effect.
    def disable_tls
      @tls = false
      @ssl_context = nil
    end

    alias disable_ssl disable_tls

    # Returns truth value if this object uses STARTTLS.
    # If this object always uses STARTTLS, returns :always.
    # If this object uses STARTTLS when the server support TLS, returns :auto.
    def starttls?
      @starttls
    end

    # true if this object uses STARTTLS.
    def starttls_always?
      @starttls == :always
    end

    # true if this object uses STARTTLS when server advertises STARTTLS.
    def starttls_auto?
      @starttls == :auto
    end

    # Enables SMTP/TLS (STARTTLS) for this object.
    # +context+ is a OpenSSL::SSL::SSLContext object.
    def enable_starttls(context = SMTP.default_ssl_context)
      raise 'openssl library not installed' unless defined?(OpenSSL)
      raise ArgumentError, "SMTPS and STARTTLS is exclusive" if @tls
      @starttls = :always
      @ssl_context = context
    end

    # Enables SMTP/TLS (STARTTLS) for this object if server accepts.
    # +context+ is a OpenSSL::SSL::SSLContext object.
    def enable_starttls_auto(context = SMTP.default_ssl_context)
      raise 'openssl library not installed' unless defined?(OpenSSL)
      raise ArgumentError, "SMTPS and STARTTLS is exclusive" if @tls
      @starttls = :auto
      @ssl_context = context
    end

    # Disables SMTP/TLS (STARTTLS) for this object.  Must be called
    # before the connection is established to have any effect.
    def disable_starttls
      @starttls = false
      @ssl_context = nil
    end

    # The address of the SMTP server to connect to.
    attr_reader :address

    # The port number of the SMTP server to connect to.
    attr_reader :port

    # Seconds to wait while attempting to open a connection.
    # If the connection cannot be opened within this time, a
    # Net::OpenTimeout is raised. The default value is 30 seconds.
    attr_accessor :open_timeout

    # Seconds to wait while reading one block (by one read(2) call).
    # If the read(2) call does not complete within this time, a
    # Net::ReadTimeout is raised. The default value is 60 seconds.
    attr_reader :read_timeout

    # Set the number of seconds to wait until timing-out a read(2)
    # call.
    def read_timeout=(sec)
      @socket.read_timeout = sec if @socket
      @read_timeout = sec
    end

    #
    # WARNING: This method causes serious security holes.
    # Use this method for only debugging.
    #
    # Set an output stream for debug logging.
    # You must call this before #start.
    #
    #   # example
    #   smtp = Net::SMTP.new(addr, port)
    #   smtp.set_debug_output $stderr
    #   smtp.start do |smtp|
    #     ....
    #   end
    #
    def debug_output=(arg)
      @debug_output = arg
    end

    alias set_debug_output debug_output=

    #
    # SMTP session control
    #

    #
    # Creates a new Net::SMTP object and connects to the server.
    #
    # This method is equivalent to:
    #
    #   Net::SMTP.new(address, port).start(helo_domain, account, password, authtype)
    #
    # === Example
    #
    #     Net::SMTP.start('your.smtp.server') do |smtp|
    #       smtp.send_message msgstr, 'from@example.com', ['dest@example.com']
    #     end
    #
    # === Block Usage
    #
    # If called with a block, the newly-opened Net::SMTP object is yielded
    # to the block, and automatically closed when the block finishes.  If called
    # without a block, the newly-opened Net::SMTP object is returned to
    # the caller, and it is the caller's responsibility to close it when
    # finished.
    #
    # === Parameters
    #
    # +address+ is the hostname or ip address of your smtp server.
    #
    # +port+ is the port to connect to; it defaults to port 25.
    #
    # +helo+ is the _HELO_ _domain_ provided by the client to the
    # server (see overview comments); it defaults to 'localhost'.
    #
    # The remaining arguments are used for SMTP authentication, if required
    # or desired.  +user+ is the account name; +secret+ is your password
    # or other authentication token; and +authtype+ is the authentication
    # type, one of :plain, :login, or :cram_md5.  See the discussion of
    # SMTP Authentication in the overview notes.
    #
    # === Errors
    #
    # This method may raise:
    #
    # * Net::SMTPAuthenticationError
    # * Net::SMTPServerBusy
    # * Net::SMTPSyntaxError
    # * Net::SMTPFatalError
    # * Net::SMTPUnknownError
    # * Net::OpenTimeout
    # * Net::ReadTimeout
    # * IOError
    #
    def SMTP.start(address, port = nil, helo = 'localhost',
                   user = nil, secret = nil, authtype = nil,
                   &block)   # :yield: smtp
      new(address, port).start(helo, user, secret, authtype, &block)
    end

    # +true+ if the SMTP session has been started.
    def started?
      @started
    end

    #
    # Opens a TCP connection and starts the SMTP session.
    #
    # === Parameters
    #
    # +helo+ is the _HELO_ _domain_ that you'll dispatch mails from; see
    # the discussion in the overview notes.
    #
    # If both of +user+ and +secret+ are given, SMTP authentication
    # will be attempted using the AUTH command.  +authtype+ specifies
    # the type of authentication to attempt; it must be one of
    # :login, :plain, and :cram_md5.  See the notes on SMTP Authentication
    # in the overview.
    #
    # === Block Usage
    #
    # When this methods is called with a block, the newly-started SMTP
    # object is yielded to the block, and automatically closed after
    # the block call finishes.  Otherwise, it is the caller's
    # responsibility to close the session when finished.
    #
    # === Example
    #
    # This is very similar to the class method SMTP.start.
    #
    #     require 'net/smtp'
    #     smtp = Net::SMTP.new('smtp.mail.server', 25)
    #     smtp.start(helo_domain, account, password, authtype) do |smtp|
    #       smtp.send_message msgstr, 'from@example.com', ['dest@example.com']
    #     end
    #
    # The primary use of this method (as opposed to SMTP.start)
    # is probably to set debugging (#set_debug_output) or ESMTP
    # (#esmtp=), which must be done before the session is
    # started.
    #
    # === Errors
    #
    # If session has already been started, an IOError will be raised.
    #
    # This method may raise:
    #
    # * Net::SMTPAuthenticationError
    # * Net::SMTPServerBusy
    # * Net::SMTPSyntaxError
    # * Net::SMTPFatalError
    # * Net::SMTPUnknownError
    # * Net::OpenTimeout
    # * Net::ReadTimeout
    # * IOError
    #
    def start(helo = 'localhost',
              user = nil, secret = nil, authtype = nil)   # :yield: smtp
      if block_given?
        begin
          do_start helo, user, secret, authtype
          return yield(self)
        ensure
          do_finish
        end
      else
        do_start helo, user, secret, authtype
        return self
      end
    end

    # Finishes the SMTP session and closes TCP connection.
    # Raises IOError if not started.
    def finish
      raise IOError, 'not yet started' unless started?
      do_finish
    end

    private

    def tcp_socket(address, port)
      TCPSocket.open address, port
    end

    def do_start(helo_domain, user, secret, authtype)
      raise IOError, 'SMTP session already started' if @started
      if user or secret
        check_auth_method(authtype || DEFAULT_AUTH_TYPE)
        check_auth_args user, secret
      end
      s = Timeout.timeout(@open_timeout, Net::OpenTimeout) do
        tcp_socket(@address, @port)
      end
      logging "Connection opened: #{@address}:#{@port}"
      @socket = new_internet_message_io(tls? ? tlsconnect(s) : s)
      check_response critical { recv_response() }
      do_helo helo_domain
      if starttls_always? or (capable_starttls? and starttls_auto?)
        unless capable_starttls?
          raise SMTPUnsupportedCommand,
              "STARTTLS is not supported on this server"
        end
        starttls
        @socket = new_internet_message_io(tlsconnect(s))
        # helo response may be different after STARTTLS
        do_helo helo_domain
      end
      authenticate user, secret, (authtype || DEFAULT_AUTH_TYPE) if user
      @started = true
    ensure
      unless @started
        # authentication failed, cancel connection.
        s.close if s and not s.closed?
        @socket = nil
      end
    end

    def ssl_socket(socket, context)
      OpenSSL::SSL::SSLSocket.new socket, context
    end

    def tlsconnect(s)
      verified = false
      s = ssl_socket(s, @ssl_context)
      logging "TLS connection started"
      s.sync_close = true
      s.connect
      if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE
        s.post_connection_check(@address)
      end
      verified = true
      s
    ensure
      s.close unless verified
    end

    def new_internet_message_io(s)
      io = InternetMessageIO.new(s)
      io.read_timeout = @read_timeout
      io.debug_output = @debug_output
      io
    end

    def do_helo(helo_domain)
      res = @esmtp ? ehlo(helo_domain) : helo(helo_domain)
      @capabilities = res.capabilities
    rescue SMTPError
      if @esmtp
        @esmtp = false
        @error_occurred = false
        retry
      end
      raise
    end

    def do_finish
      quit if @socket and not @socket.closed? and not @error_occurred
    ensure
      @started = false
      @error_occurred = false
      @socket.close if @socket and not @socket.closed?
      @socket = nil
    end

    #
    # Message Sending
    #

    public

    #
    # Sends +msgstr+ as a message.  Single CR ("\r") and LF ("\n") found
    # in the +msgstr+, are converted into the CR LF pair.  You cannot send a
    # binary message with this method. +msgstr+ should include both
    # the message headers and body.
    #
    # +from_addr+ is a String representing the source mail address.
    #
    # +to_addr+ is a String or Strings or Array of Strings, representing
    # the destination mail address or addresses.
    #
    # === Example
    #
    #     Net::SMTP.start('smtp.example.com') do |smtp|
    #       smtp.send_message msgstr,
    #                         'from@example.com',
    #                         ['dest@example.com', 'dest2@example.com']
    #     end
    #
    # === Errors
    #
    # This method may raise:
    #
    # * Net::SMTPServerBusy
    # * Net::SMTPSyntaxError
    # * Net::SMTPFatalError
    # * Net::SMTPUnknownError
    # * Net::ReadTimeout
    # * IOError
    #
    def send_message(msgstr, from_addr, *to_addrs)
      raise IOError, 'closed session' unless @socket
      mailfrom from_addr
      rcptto_list(to_addrs) {data msgstr}
    end

    alias send_mail send_message
    alias sendmail send_message   # obsolete

    #
    # Opens a message writer stream and gives it to the block.
    # The stream is valid only in the block, and has these methods:
    #
    # puts(str = '')::       outputs STR and CR LF.
    # print(str)::           outputs STR.
    # printf(fmt, *args)::   outputs sprintf(fmt,*args).
    # write(str)::           outputs STR and returns the length of written bytes.
    # <<(str)::              outputs STR and returns self.
    #
    # If a single CR ("\r") or LF ("\n") is found in the message,
    # it is converted to the CR LF pair.  You cannot send a binary
    # message with this method.
    #
    # === Parameters
    #
    # +from_addr+ is a String representing the source mail address.
    #
    # +to_addr+ is a String or Strings or Array of Strings, representing
    # the destination mail address or addresses.
    #
    # === Example
    #
    #     Net::SMTP.start('smtp.example.com', 25) do |smtp|
    #       smtp.open_message_stream('from@example.com', ['dest@example.com']) do |f|
    #         f.puts 'From: from@example.com'
    #         f.puts 'To: dest@example.com'
    #         f.puts 'Subject: test message'
    #         f.puts
    #         f.puts 'This is a test message.'
    #       end
    #     end
    #
    # === Errors
    #
    # This method may raise:
    #
    # * Net::SMTPServerBusy
    # * Net::SMTPSyntaxError
    # * Net::SMTPFatalError
    # * Net::SMTPUnknownError
    # * Net::ReadTimeout
    # * IOError
    #
    def open_message_stream(from_addr, *to_addrs, &block)   # :yield: stream
      raise IOError, 'closed session' unless @socket
      mailfrom from_addr
      rcptto_list(to_addrs) {data(&block)}
    end

    alias ready open_message_stream   # obsolete

    #
    # Authentication
    #

    public

    DEFAULT_AUTH_TYPE = :plain

    def authenticate(user, secret, authtype = DEFAULT_AUTH_TYPE)
      check_auth_method authtype
      check_auth_args user, secret
      send auth_method(authtype), user, secret
    end

    def auth_plain(user, secret)
      check_auth_args user, secret
      res = critical {
        get_response('AUTH PLAIN ' + base64_encode("\0#{user}\0#{secret}"))
      }
      check_auth_response res
      res
    end

    def auth_login(user, secret)
      check_auth_args user, secret
      res = critical {
        check_auth_continue get_response('AUTH LOGIN')
        check_auth_continue get_response(base64_encode(user))
        get_response(base64_encode(secret))
      }
      check_auth_response res
      res
    end

    def auth_cram_md5(user, secret)
      check_auth_args user, secret
      res = critical {
        res0 = get_response('AUTH CRAM-MD5')
        check_auth_continue res0
        crammed = cram_md5_response(secret, res0.cram_md5_challenge)
        get_response(base64_encode("#{user} #{crammed}"))
      }
      check_auth_response res
      res
    end

    private

    def check_auth_method(type)
      unless respond_to?(auth_method(type), true)
        raise ArgumentError, "wrong authentication type #{type}"
      end
    end

    def auth_method(type)
      "auth_#{type.to_s.downcase}".intern
    end

    def check_auth_args(user, secret, authtype = DEFAULT_AUTH_TYPE)
      unless user
        raise ArgumentError, 'SMTP-AUTH requested but missing user name'
      end
      unless secret
        raise ArgumentError, 'SMTP-AUTH requested but missing secret phrase'
      end
    end

    def base64_encode(str)
      # expects "str" may not become too long
      [str].pack('m').gsub(/\s+/, '')
    end

    IMASK = 0x36
    OMASK = 0x5c

    # CRAM-MD5: [RFC2195]
    def cram_md5_response(secret, challenge)
      tmp = Digest::MD5.digest(cram_secret(secret, IMASK) + challenge)
      Digest::MD5.hexdigest(cram_secret(secret, OMASK) + tmp)
    end

    CRAM_BUFSIZE = 64

    def cram_secret(secret, mask)
      secret = Digest::MD5.digest(secret) if secret.size > CRAM_BUFSIZE
      buf = secret.ljust(CRAM_BUFSIZE, "\0")
      0.upto(buf.size - 1) do |i|
        buf[i] = (buf[i].ord ^ mask).chr
      end
      buf
    end

    #
    # SMTP command dispatcher
    #

    public

    # Aborts the current mail transaction

    def rset
      getok('RSET')
    end

    def starttls
      getok('STARTTLS')
    end

    def helo(domain)
      getok("HELO #{domain}")
    end

    def ehlo(domain)
      getok("EHLO #{domain}")
    end

    def mailfrom(from_addr)
      if $SAFE > 0
        raise SecurityError, 'tainted from_addr' if from_addr.tainted?
      end
      getok("MAIL FROM:<#{from_addr}>")
    end

    def rcptto_list(to_addrs)
      raise ArgumentError, 'mail destination not given' if to_addrs.empty?
      ok_users = []
      unknown_users = []
      to_addrs.flatten.each do |addr|
        begin
          rcptto addr
        rescue SMTPAuthenticationError
          unknown_users << addr.dump
        else
          ok_users << addr
        end
      end
      raise ArgumentError, 'mail destination not given' if ok_users.empty?
      ret = yield
      unless unknown_users.empty?
        raise SMTPAuthenticationError, "failed to deliver for #{unknown_users.join(', ')}"
      end
      ret
    end

    def rcptto(to_addr)
      if $SAFE > 0
        raise SecurityError, 'tainted to_addr' if to_addr.tainted?
      end
      getok("RCPT TO:<#{to_addr}>")
    end

    # This method sends a message.
    # If +msgstr+ is given, sends it as a message.
    # If block is given, yield a message writer stream.
    # You must write message before the block is closed.
    #
    #   # Example 1 (by string)
    #   smtp.data(<<EndMessage)
    #   From: john@example.com
    #   To: betty@example.com
    #   Subject: I found a bug
    #
    #   Check vm.c:58879.
    #   EndMessage
    #
    #   # Example 2 (by block)
    #   smtp.data {|f|
    #     f.puts "From: john@example.com"
    #     f.puts "To: betty@example.com"
    #     f.puts "Subject: I found a bug"
    #     f.puts ""
    #     f.puts "Check vm.c:58879."
    #   }
    #
    def data(msgstr = nil, &block)   #:yield: stream
      if msgstr and block
        raise ArgumentError, "message and block are exclusive"
      end
      unless msgstr or block
        raise ArgumentError, "message or block is required"
      end
      res = critical {
        check_continue get_response('DATA')
        socket_sync_bak = @socket.io.sync
        begin
          @socket.io.sync = false
          if msgstr
            @socket.write_message msgstr
          else
            @socket.write_message_by_block(&block)
          end
        ensure
          @socket.io.flush
          @socket.io.sync = socket_sync_bak
        end
        recv_response()
      }
      check_response res
      res
    end

    def quit
      getok('QUIT')
    end

    private

    def getok(reqline)
      res = critical {
        @socket.writeline reqline
        recv_response()
      }
      check_response res
      res
    end

    def get_response(reqline)
      @socket.writeline reqline
      recv_response()
    end

    def recv_response
      buf = ''
      while true
        line = @socket.readline
        buf << line << "\n"
        break unless line[3,1] == '-'   # "210-PIPELINING"
      end
      Response.parse(buf)
    end

    def critical
      return Response.parse('200 dummy reply code') if @error_occurred
      begin
        return yield()
      rescue Exception
        @error_occurred = true
        raise
      end
    end

    def check_response(res)
      unless res.success?
        raise res.exception_class, res.message
      end
    end

    def check_continue(res)
      unless res.continue?
        raise SMTPUnknownError, "could not get 3xx (#{res.status}: #{res.string})"
      end
    end

    def check_auth_response(res)
      unless res.success?
        raise SMTPAuthenticationError, res.message
      end
    end

    def check_auth_continue(res)
      unless res.continue?
        raise res.exception_class, res.message
      end
    end

    # This class represents a response received by the SMTP server. Instances
    # of this class are created by the SMTP class; they should not be directly
    # created by the user. For more information on SMTP responses, view
    # {Section 4.2 of RFC 5321}[http://tools.ietf.org/html/rfc5321#section-4.2]
    class Response
      # Parses the received response and separates the reply code and the human
      # readable reply text
      def self.parse(str)
        new(str[0,3], str)
      end

      # Creates a new instance of the Response class and sets the status and
      # string attributes
      def initialize(status, string)
        @status = status
        @string = string
      end

      # The three digit reply code of the SMTP response
      attr_reader :status

      # The human readable reply text of the SMTP response
      attr_reader :string

      # Takes the first digit of the reply code to determine the status type
      def status_type_char
        @status[0, 1]
      end

      # Determines whether the response received was a Positive Completion
      # reply (2xx reply code)
      def success?
        status_type_char() == '2'
      end

      # Determines whether the response received was a Positive Intermediate
      # reply (3xx reply code)
      def continue?
        status_type_char() == '3'
      end

      # The first line of the human readable reply text
      def message
        @string.lines.first
      end

      # Creates a CRAM-MD5 challenge. You can view more information on CRAM-MD5
      # on Wikipedia: http://en.wikipedia.org/wiki/CRAM-MD5
      def cram_md5_challenge
        @string.split(/ /)[1].unpack('m')[0]
      end

      # Returns a hash of the human readable reply text in the response if it
      # is multiple lines. It does not return the first line. The key of the
      # hash is the first word the value of the hash is an array with each word
      # thereafter being a value in the array
      def capabilities
        return {} unless @string[3, 1] == '-'
        h = {}
        @string.lines.drop(1).each do |line|
          k, *v = line[4..-1].chomp.split
          h[k] = v
        end
        h
      end

      # Determines whether there was an error and raises the appropriate error
      # based on the reply code of the response
      def exception_class
        case @status
        when /\A4/  then SMTPServerBusy
        when /\A50/ then SMTPSyntaxError
        when /\A53/ then SMTPAuthenticationError
        when /\A5/  then SMTPFatalError
        else             SMTPUnknownError
        end
      end
    end

    def logging(msg)
      @debug_output << msg + "\n" if @debug_output
    end

  end   # class SMTP

  SMTPSession = SMTP # :nodoc:

end
lib64/ruby/2.2.0/open3.rb000064400000051061150402106050010451 0ustar00#
# = open3.rb: Popen, but with stderr, too
#
# Author:: Yukihiro Matsumoto
# Documentation:: Konrad Meyer
#
# Open3 gives you access to stdin, stdout, and stderr when running other
# programs.
#

#
# Open3 grants you access to stdin, stdout, stderr and a thread to wait for the
# child process when running another program.
# You can specify various attributes, redirections, current directory, etc., of
# the program in the same way as for Process.spawn.
#
# - Open3.popen3 : pipes for stdin, stdout, stderr
# - Open3.popen2 : pipes for stdin, stdout
# - Open3.popen2e : pipes for stdin, merged stdout and stderr
# - Open3.capture3 : give a string for stdin; get strings for stdout, stderr
# - Open3.capture2 : give a string for stdin; get a string for stdout
# - Open3.capture2e : give a string for stdin; get a string for merged stdout and stderr
# - Open3.pipeline_rw : pipes for first stdin and last stdout of a pipeline
# - Open3.pipeline_r : pipe for last stdout of a pipeline
# - Open3.pipeline_w : pipe for first stdin of a pipeline
# - Open3.pipeline_start : run a pipeline without waiting
# - Open3.pipeline : run a pipeline and wait for its completion
#

module Open3

  # Open stdin, stdout, and stderr streams and start external executable.
  # In addition, a thread to wait for the started process is created.
  # The thread has a pid method and a thread variable :pid which is the pid of
  # the started process.
  #
  # Block form:
  #
  #   Open3.popen3([env,] cmd... [, opts]) {|stdin, stdout, stderr, wait_thr|
  #     pid = wait_thr.pid # pid of the started process.
  #     ...
  #     exit_status = wait_thr.value # Process::Status object returned.
  #   }
  #
  # Non-block form:
  #
  #   stdin, stdout, stderr, wait_thr = Open3.popen3([env,] cmd... [, opts])
  #   pid = wait_thr[:pid]  # pid of the started process
  #   ...
  #   stdin.close  # stdin, stdout and stderr should be closed explicitly in this form.
  #   stdout.close
  #   stderr.close
  #   exit_status = wait_thr.value  # Process::Status object returned.
  #
  # The parameters env, cmd, and opts are passed to Process.spawn.
  # A commandline string and a list of argument strings can be accepted as follows:
  #
  #   Open3.popen3("echo abc") {|i, o, e, t| ... }
  #   Open3.popen3("echo", "abc") {|i, o, e, t| ... }
  #   Open3.popen3(["echo", "argv0"], "abc") {|i, o, e, t| ... }
  #
  # If the last parameter, opts, is a Hash, it is recognized as an option for Process.spawn.
  #
  #   Open3.popen3("pwd", :chdir=>"/") {|i,o,e,t|
  #     p o.read.chomp #=> "/"
  #   }
  #
  # wait_thr.value waits for the termination of the process.
  # The block form also waits for the process when it returns.
  #
  # Closing stdin, stdout and stderr does not wait for the process to complete.
  #
  # You should be careful to avoid deadlocks.
  # Since pipes are fixed length buffers,
  # Open3.popen3("prog") {|i, o, e, t| o.read } deadlocks if
  # the program generates too much output on stderr.
  # You should read stdout and stderr simultaneously (using threads or IO.select).
  # However, if you don't need stderr output, you can use Open3.popen2.
  # If merged stdout and stderr output is not a problem, you can use Open3.popen2e.
  # If you really need stdout and stderr output as separate strings, you can consider Open3.capture3.
  #
  def popen3(*cmd, **opts, &block)
    in_r, in_w = IO.pipe
    opts[:in] = in_r
    in_w.sync = true

    out_r, out_w = IO.pipe
    opts[:out] = out_w

    err_r, err_w = IO.pipe
    opts[:err] = err_w

    popen_run(cmd, opts, [in_r, out_w, err_w], [in_w, out_r, err_r], &block)
  end
  module_function :popen3

  # Open3.popen2 is similar to Open3.popen3 except that it doesn't create a pipe for
  # the standard error stream.
  #
  # Block form:
  #
  #   Open3.popen2([env,] cmd... [, opts]) {|stdin, stdout, wait_thr|
  #     pid = wait_thr.pid # pid of the started process.
  #     ...
  #     exit_status = wait_thr.value # Process::Status object returned.
  #   }
  #
  # Non-block form:
  #
  #   stdin, stdout, wait_thr = Open3.popen2([env,] cmd... [, opts])
  #   ...
  #   stdin.close  # stdin and stdout should be closed explicitly in this form.
  #   stdout.close
  #
  # See Process.spawn for the optional hash arguments _env_ and _opts_.
  #
  # Example:
  #
  #   Open3.popen2("wc -c") {|i,o,t|
  #     i.print "answer to life the universe and everything"
  #     i.close
  #     p o.gets #=> "42\n"
  #   }
  #
  #   Open3.popen2("bc -q") {|i,o,t|
  #     i.puts "obase=13"
  #     i.puts "6 * 9"
  #     p o.gets #=> "42\n"
  #   }
  #
  #   Open3.popen2("dc") {|i,o,t|
  #     i.print "42P"
  #     i.close
  #     p o.read #=> "*"
  #   }
  #
  def popen2(*cmd, **opts, &block)
    in_r, in_w = IO.pipe
    opts[:in] = in_r
    in_w.sync = true

    out_r, out_w = IO.pipe
    opts[:out] = out_w

    popen_run(cmd, opts, [in_r, out_w], [in_w, out_r], &block)
  end
  module_function :popen2

  # Open3.popen2e is similar to Open3.popen3 except that it merges
  # the standard output stream and the standard error stream.
  #
  # Block form:
  #
  #   Open3.popen2e([env,] cmd... [, opts]) {|stdin, stdout_and_stderr, wait_thr|
  #     pid = wait_thr.pid # pid of the started process.
  #     ...
  #     exit_status = wait_thr.value # Process::Status object returned.
  #   }
  #
  # Non-block form:
  #
  #   stdin, stdout_and_stderr, wait_thr = Open3.popen2e([env,] cmd... [, opts])
  #   ...
  #   stdin.close  # stdin and stdout_and_stderr should be closed explicitly in this form.
  #   stdout_and_stderr.close
  #
  # See Process.spawn for the optional hash arguments _env_ and _opts_.
  #
  # Example:
  #   # check gcc warnings
  #   source = "foo.c"
  #   Open3.popen2e("gcc", "-Wall", source) {|i,oe,t|
  #     oe.each {|line|
  #       if /warning/ =~ line
  #         ...
  #       end
  #     }
  #   }
  #
  def popen2e(*cmd, **opts, &block)
    in_r, in_w = IO.pipe
    opts[:in] = in_r
    in_w.sync = true

    out_r, out_w = IO.pipe
    opts[[:out, :err]] = out_w

    popen_run(cmd, opts, [in_r, out_w], [in_w, out_r], &block)
  end
  module_function :popen2e

  def popen_run(cmd, opts, child_io, parent_io) # :nodoc:
    pid = spawn(*cmd, opts)
    wait_thr = Process.detach(pid)
    child_io.each {|io| io.close }
    result = [*parent_io, wait_thr]
    if defined? yield
      begin
        return yield(*result)
      ensure
        parent_io.each{|io| io.close unless io.closed?}
        wait_thr.join
      end
    end
    result
  end
  module_function :popen_run
  class << self
    private :popen_run
  end

  # Open3.capture3 captures the standard output and the standard error of a command.
  #
  #   stdout_str, stderr_str, status = Open3.capture3([env,] cmd... [, opts])
  #
  # The arguments env, cmd and opts are passed to Open3.popen3 except
  # <code>opts[:stdin_data]</code> and <code>opts[:binmode]</code>.  See Process.spawn.
  #
  # If <code>opts[:stdin_data]</code> is specified, it is sent to the command's standard input.
  #
  # If <code>opts[:binmode]</code> is true, internal pipes are set to binary mode.
  #
  # Examples:
  #
  #   # dot is a command of graphviz.
  #   graph = <<'End'
  #     digraph g {
  #       a -> b
  #     }
  #   End
  #   drawn_graph, dot_log = Open3.capture3("dot -v", :stdin_data=>graph)
  #
  #   o, e, s = Open3.capture3("echo abc; sort >&2", :stdin_data=>"foo\nbar\nbaz\n")
  #   p o #=> "abc\n"
  #   p e #=> "bar\nbaz\nfoo\n"
  #   p s #=> #<Process::Status: pid 32682 exit 0>
  #
  #   # generate a thumbnail image using the convert command of ImageMagick.
  #   # However, if the image is really stored in a file,
  #   # system("convert", "-thumbnail", "80", "png:#{filename}", "png:-") is better
  #   # because of reduced memory consumption.
  #   # But if the image is stored in a DB or generated by the gnuplot Open3.capture2 example,
  #   # Open3.capture3 should be considered.
  #   #
  #   image = File.read("/usr/share/openclipart/png/animals/mammals/sheep-md-v0.1.png", :binmode=>true)
  #   thumbnail, err, s = Open3.capture3("convert -thumbnail 80 png:- png:-", :stdin_data=>image, :binmode=>true)
  #   if s.success?
  #     STDOUT.binmode; print thumbnail
  #   end
  #
  def capture3(*cmd, stdin_data: '', binmode: false, **opts)
    popen3(*cmd, opts) {|i, o, e, t|
      if binmode
        i.binmode
        o.binmode
        e.binmode
      end
      out_reader = Thread.new { o.read }
      err_reader = Thread.new { e.read }
      begin
        i.write stdin_data
      rescue Errno::EPIPE
      end
      i.close
      [out_reader.value, err_reader.value, t.value]
    }
  end
  module_function :capture3

  # Open3.capture2 captures the standard output of a command.
  #
  #   stdout_str, status = Open3.capture2([env,] cmd... [, opts])
  #
  # The arguments env, cmd and opts are passed to Open3.popen3 except
  # <code>opts[:stdin_data]</code> and <code>opts[:binmode]</code>.  See Process.spawn.
  #
  # If <code>opts[:stdin_data]</code> is specified, it is sent to the command's standard input.
  #
  # If <code>opts[:binmode]</code> is true, internal pipes are set to binary mode.
  #
  # Example:
  #
  #   # factor is a command for integer factorization.
  #   o, s = Open3.capture2("factor", :stdin_data=>"42")
  #   p o #=> "42: 2 3 7\n"
  #
  #   # generate x**2 graph in png using gnuplot.
  #   gnuplot_commands = <<"End"
  #     set terminal png
  #     plot x**2, "-" with lines
  #     1 14
  #     2 1
  #     3 8
  #     4 5
  #     e
  #   End
  #   image, s = Open3.capture2("gnuplot", :stdin_data=>gnuplot_commands, :binmode=>true)
  #
  def capture2(*cmd, stdin_data: nil, binmode: false, **opts)
    popen2(*cmd, opts) {|i, o, t|
      if binmode
        i.binmode
        o.binmode
      end
      out_reader = Thread.new { o.read }
      if stdin_data
        begin
          i.write stdin_data
        rescue Errno::EPIPE
        end
      end
      i.close
      [out_reader.value, t.value]
    }
  end
  module_function :capture2

  # Open3.capture2e captures the standard output and the standard error of a command.
  #
  #   stdout_and_stderr_str, status = Open3.capture2e([env,] cmd... [, opts])
  #
  # The arguments env, cmd and opts are passed to Open3.popen3 except
  # <code>opts[:stdin_data]</code> and <code>opts[:binmode]</code>.  See Process.spawn.
  #
  # If <code>opts[:stdin_data]</code> is specified, it is sent to the command's standard input.
  #
  # If <code>opts[:binmode]</code> is true, internal pipes are set to binary mode.
  #
  # Example:
  #
  #   # capture make log
  #   make_log, s = Open3.capture2e("make")
  #
  def capture2e(*cmd, stdin_data: nil, binmode: false, **opts)
    popen2e(*cmd, opts) {|i, oe, t|
      if binmode
        i.binmode
        oe.binmode
      end
      outerr_reader = Thread.new { oe.read }
      if stdin_data
        begin
          i.write stdin_data
        rescue Errno::EPIPE
        end
      end
      i.close
      [outerr_reader.value, t.value]
    }
  end
  module_function :capture2e

  # Open3.pipeline_rw starts a list of commands as a pipeline with pipes
  # which connect to stdin of the first command and stdout of the last command.
  #
  #   Open3.pipeline_rw(cmd1, cmd2, ... [, opts]) {|first_stdin, last_stdout, wait_threads|
  #     ...
  #   }
  #
  #   first_stdin, last_stdout, wait_threads = Open3.pipeline_rw(cmd1, cmd2, ... [, opts])
  #   ...
  #   first_stdin.close
  #   last_stdout.close
  #
  # Each cmd is a string or an array.
  # If it is an array, the elements are passed to Process.spawn.
  #
  #   cmd:
  #     commandline                              command line string which is passed to a shell
  #     [env, commandline, opts]                 command line string which is passed to a shell
  #     [env, cmdname, arg1, ..., opts]          command name and one or more arguments (no shell)
  #     [env, [cmdname, argv0], arg1, ..., opts] command name and arguments including argv[0] (no shell)
  #
  #   Note that env and opts are optional, as for Process.spawn.
  #
  # The options to pass to Process.spawn are constructed by merging
  # +opts+, the last hash element of the array, and
  # specifications for the pipes between each of the commands.
  #
  # Example:
  #
  #   Open3.pipeline_rw("tr -dc A-Za-z", "wc -c") {|i, o, ts|
  #     i.puts "All persons more than a mile high to leave the court."
  #     i.close
  #     p o.gets #=> "42\n"
  #   }
  #
  #   Open3.pipeline_rw("sort", "cat -n") {|stdin, stdout, wait_thrs|
  #     stdin.puts "foo"
  #     stdin.puts "bar"
  #     stdin.puts "baz"
  #     stdin.close     # send EOF to sort.
  #     p stdout.read   #=> "     1\tbar\n     2\tbaz\n     3\tfoo\n"
  #   }
  def pipeline_rw(*cmds, **opts, &block)
    in_r, in_w = IO.pipe
    opts[:in] = in_r
    in_w.sync = true

    out_r, out_w = IO.pipe
    opts[:out] = out_w

    pipeline_run(cmds, opts, [in_r, out_w], [in_w, out_r], &block)
  end
  module_function :pipeline_rw

  # Open3.pipeline_r starts a list of commands as a pipeline with a pipe
  # which connects to stdout of the last command.
  #
  #   Open3.pipeline_r(cmd1, cmd2, ... [, opts]) {|last_stdout, wait_threads|
  #     ...
  #   }
  #
  #   last_stdout, wait_threads = Open3.pipeline_r(cmd1, cmd2, ... [, opts])
  #   ...
  #   last_stdout.close
  #
  # Each cmd is a string or an array.
  # If it is an array, the elements are passed to Process.spawn.
  #
  #   cmd:
  #     commandline                              command line string which is passed to a shell
  #     [env, commandline, opts]                 command line string which is passed to a shell
  #     [env, cmdname, arg1, ..., opts]          command name and one or more arguments (no shell)
  #     [env, [cmdname, argv0], arg1, ..., opts] command name and arguments including argv[0] (no shell)
  #
  #   Note that env and opts are optional, as for Process.spawn.
  #
  # Example:
  #
  #   Open3.pipeline_r("zcat /var/log/apache2/access.log.*.gz",
  #                    [{"LANG"=>"C"}, "grep", "GET /favicon.ico"],
  #                    "logresolve") {|o, ts|
  #     o.each_line {|line|
  #       ...
  #     }
  #   }
  #
  #   Open3.pipeline_r("yes", "head -10") {|o, ts|
  #     p o.read      #=> "y\ny\ny\ny\ny\ny\ny\ny\ny\ny\n"
  #     p ts[0].value #=> #<Process::Status: pid 24910 SIGPIPE (signal 13)>
  #     p ts[1].value #=> #<Process::Status: pid 24913 exit 0>
  #   }
  #
  def pipeline_r(*cmds, **opts, &block)
    out_r, out_w = IO.pipe
    opts[:out] = out_w

    pipeline_run(cmds, opts, [out_w], [out_r], &block)
  end
  module_function :pipeline_r

  # Open3.pipeline_w starts a list of commands as a pipeline with a pipe
  # which connects to stdin of the first command.
  #
  #   Open3.pipeline_w(cmd1, cmd2, ... [, opts]) {|first_stdin, wait_threads|
  #     ...
  #   }
  #
  #   first_stdin, wait_threads = Open3.pipeline_w(cmd1, cmd2, ... [, opts])
  #   ...
  #   first_stdin.close
  #
  # Each cmd is a string or an array.
  # If it is an array, the elements are passed to Process.spawn.
  #
  #   cmd:
  #     commandline                              command line string which is passed to a shell
  #     [env, commandline, opts]                 command line string which is passed to a shell
  #     [env, cmdname, arg1, ..., opts]          command name and one or more arguments (no shell)
  #     [env, [cmdname, argv0], arg1, ..., opts] command name and arguments including argv[0] (no shell)
  #
  #   Note that env and opts are optional, as for Process.spawn.
  #
  # Example:
  #
  #   Open3.pipeline_w("bzip2 -c", :out=>"/tmp/hello.bz2") {|i, ts|
  #     i.puts "hello"
  #   }
  #
  def pipeline_w(*cmds, **opts, &block)
    in_r, in_w = IO.pipe
    opts[:in] = in_r
    in_w.sync = true

    pipeline_run(cmds, opts, [in_r], [in_w], &block)
  end
  module_function :pipeline_w

  # Open3.pipeline_start starts a list of commands as a pipeline.
  # No pipes are created for stdin of the first command and
  # stdout of the last command.
  #
  #   Open3.pipeline_start(cmd1, cmd2, ... [, opts]) {|wait_threads|
  #     ...
  #   }
  #
  #   wait_threads = Open3.pipeline_start(cmd1, cmd2, ... [, opts])
  #   ...
  #
  # Each cmd is a string or an array.
  # If it is an array, the elements are passed to Process.spawn.
  #
  #   cmd:
  #     commandline                              command line string which is passed to a shell
  #     [env, commandline, opts]                 command line string which is passed to a shell
  #     [env, cmdname, arg1, ..., opts]          command name and one or more arguments (no shell)
  #     [env, [cmdname, argv0], arg1, ..., opts] command name and arguments including argv[0] (no shell)
  #
  #   Note that env and opts are optional, as for Process.spawn.
  #
  # Example:
  #
  #   # Run xeyes in 10 seconds.
  #   Open3.pipeline_start("xeyes") {|ts|
  #     sleep 10
  #     t = ts[0]
  #     Process.kill("TERM", t.pid)
  #     p t.value #=> #<Process::Status: pid 911 SIGTERM (signal 15)>
  #   }
  #
  #   # Convert pdf to ps and send it to a printer.
  #   # Collect error message of pdftops and lpr.
  #   pdf_file = "paper.pdf"
  #   printer = "printer-name"
  #   err_r, err_w = IO.pipe
  #   Open3.pipeline_start(["pdftops", pdf_file, "-"],
  #                        ["lpr", "-P#{printer}"],
  #                        :err=>err_w) {|ts|
  #     err_w.close
  #     p err_r.read # error messages of pdftops and lpr.
  #   }
  #
  def pipeline_start(*cmds, **opts, &block)
    if block
      pipeline_run(cmds, opts, [], [], &block)
    else
      ts, = pipeline_run(cmds, opts, [], [])
      ts
    end
  end
  module_function :pipeline_start

  # Open3.pipeline starts a list of commands as a pipeline.
  # It waits for the completion of the commands.
  # No pipes are created for stdin of the first command and
  # stdout of the last command.
  #
  #   status_list = Open3.pipeline(cmd1, cmd2, ... [, opts])
  #
  # Each cmd is a string or an array.
  # If it is an array, the elements are passed to Process.spawn.
  #
  #   cmd:
  #     commandline                              command line string which is passed to a shell
  #     [env, commandline, opts]                 command line string which is passed to a shell
  #     [env, cmdname, arg1, ..., opts]          command name and one or more arguments (no shell)
  #     [env, [cmdname, argv0], arg1, ..., opts] command name and arguments including argv[0] (no shell)
  #
  #   Note that env and opts are optional, as Process.spawn.
  #
  # Example:
  #
  #   fname = "/usr/share/man/man1/ruby.1.gz"
  #   p Open3.pipeline(["zcat", fname], "nroff -man", "less")
  #   #=> [#<Process::Status: pid 11817 exit 0>,
  #   #    #<Process::Status: pid 11820 exit 0>,
  #   #    #<Process::Status: pid 11828 exit 0>]
  #
  #   fname = "/usr/share/man/man1/ls.1.gz"
  #   Open3.pipeline(["zcat", fname], "nroff -man", "colcrt")
  #
  #   # convert PDF to PS and send to a printer by lpr
  #   pdf_file = "paper.pdf"
  #   printer = "printer-name"
  #   Open3.pipeline(["pdftops", pdf_file, "-"],
  #                  ["lpr", "-P#{printer}"])
  #
  #   # count lines
  #   Open3.pipeline("sort", "uniq -c", :in=>"names.txt", :out=>"count")
  #
  #   # cyclic pipeline
  #   r,w = IO.pipe
  #   w.print "ibase=14\n10\n"
  #   Open3.pipeline("bc", "tee /dev/tty", :in=>r, :out=>w)
  #   #=> 14
  #   #   18
  #   #   22
  #   #   30
  #   #   42
  #   #   58
  #   #   78
  #   #   106
  #   #   202
  #
  def pipeline(*cmds, **opts)
    pipeline_run(cmds, opts, [], []) {|ts|
      ts.map {|t| t.value }
    }
  end
  module_function :pipeline

  def pipeline_run(cmds, pipeline_opts, child_io, parent_io) # :nodoc:
    if cmds.empty?
      raise ArgumentError, "no commands"
    end

    opts_base = pipeline_opts.dup
    opts_base.delete :in
    opts_base.delete :out

    wait_thrs = []
    r = nil
    cmds.each_with_index {|cmd, i|
      cmd_opts = opts_base.dup
      if String === cmd
        cmd = [cmd]
      else
        cmd_opts.update cmd.pop if Hash === cmd.last
      end
      if i == 0
        if !cmd_opts.include?(:in)
          if pipeline_opts.include?(:in)
            cmd_opts[:in] = pipeline_opts[:in]
          end
        end
      else
        cmd_opts[:in] = r
      end
      if i != cmds.length - 1
        r2, w2 = IO.pipe
        cmd_opts[:out] = w2
      else
        if !cmd_opts.include?(:out)
          if pipeline_opts.include?(:out)
            cmd_opts[:out] = pipeline_opts[:out]
          end
        end
      end
      pid = spawn(*cmd, cmd_opts)
      wait_thrs << Process.detach(pid)
      r.close if r
      w2.close if w2
      r = r2
    }
    result = parent_io + [wait_thrs]
    child_io.each {|io| io.close }
    if defined? yield
      begin
        return yield(*result)
      ensure
        parent_io.each{|io| io.close unless io.closed?}
        wait_thrs.each {|t| t.join }
      end
    end
    result
  end
  module_function :pipeline_run
  class << self
    private :pipeline_run
  end

end
lib64/ruby/2.2.0/drb/timeridconv.rb000064400000004031150402106050012512 0ustar00require 'drb/drb'
require 'monitor'

module DRb

  # Timer id conversion keeps objects alive for a certain amount of time after
  # their last access.  The default time period is 600 seconds and can be
  # changed upon initialization.
  #
  # To use TimerIdConv:
  #
  #  DRb.install_id_conv TimerIdConv.new 60 # one minute

  class TimerIdConv < DRbIdConv
    class TimerHolder2 # :nodoc:
      include MonitorMixin

      class InvalidIndexError < RuntimeError; end

      def initialize(keeping=600)
        super()
        @sentinel = Object.new
        @gc = {}
        @renew = {}
        @keeping = keeping
        @expires = Time.now + @keeping
      end

      def add(obj)
        synchronize do
          rotate
          key = obj.__id__
          @renew[key] = obj
          return key
        end
      end

      def fetch(key, dv=@sentinel)
        synchronize do
          rotate
          obj = peek(key)
          if obj == @sentinel
            return dv unless dv == @sentinel
            raise InvalidIndexError
          end
          @renew[key] = obj # KeepIt
          return obj
        end
      end

      private
      def peek(key)
        synchronize do
          return @renew.fetch(key) { @gc.fetch(key, @sentinel) }
        end
      end

      def rotate
        synchronize do
          return if @expires > Time.now
          @gc = @renew      # GCed
          @renew = {}
          @expires = Time.now + @keeping
        end
      end

      def keeper
        Thread.new do
          loop do
            rotate
            sleep(@keeping)
          end
        end
      end
    end

    # Creates a new TimerIdConv which will hold objects for +keeping+ seconds.
    def initialize(keeping=600)
      @holder = TimerHolder2.new(keeping)
    end

    def to_obj(ref) # :nodoc:
      return super if ref.nil?
      @holder.fetch(ref)
    rescue TimerHolder2::InvalidIndexError
      raise "invalid reference"
    end

    def to_id(obj) # :nodoc:
      return @holder.add(obj)
    end
  end
end

# DRb.install_id_conv(TimerIdConv.new)
lib64/ruby/2.2.0/drb/eq.rb000064400000000364150402106050010601 0ustar00module DRb
  class DRbObject # :nodoc:
    def ==(other)
      return false unless DRbObject === other
     (@ref == other.__drbref) && (@uri == other.__drburi)
    end

    def hash
      [@uri, @ref].hash
    end

    alias eql? ==
  end
end
lib64/ruby/2.2.0/drb/invokemethod.rb000064400000001352150402106050012666 0ustar00# for ruby-1.8.0

module DRb # :nodoc: all
  class DRbServer
    module InvokeMethod18Mixin
      def block_yield(x)
        if x.size == 1 && x[0].class == Array
          x[0] = DRbArray.new(x[0])
        end
        @block.call(*x)
      end

      def perform_with_block
        @obj.__send__(@msg_id, *@argv) do |*x|
          jump_error = nil
          begin
            block_value = block_yield(x)
          rescue LocalJumpError
            jump_error = $!
          end
          if jump_error
            case jump_error.reason
            when :break
              break(jump_error.exit_value)
            else
              raise jump_error
            end
          end
          block_value
        end
      end
    end
  end
end
lib64/ruby/2.2.0/drb/extservm.rb000064400000003327150402106050012053 0ustar00=begin
 external service manager
        Copyright (c) 2000 Masatoshi SEKI
=end

require 'drb/drb'
require 'thread'
require 'monitor'

module DRb
  class ExtServManager
    include DRbUndumped
    include MonitorMixin

    @@command = {}

    def self.command
      @@command
    end

    def self.command=(cmd)
      @@command = cmd
    end

    def initialize
      super()
      @cond = new_cond
      @servers = {}
      @waiting = []
      @queue = Queue.new
      @thread = invoke_thread
      @uri = nil
    end
    attr_accessor :uri

    def service(name)
      synchronize do
        while true
          server = @servers[name]
          return server if server && server.alive?
          invoke_service(name)
          @cond.wait
        end
      end
    end

    def regist(name, ro)
      synchronize do
        @servers[name] = ro
        @cond.signal
      end
      self
    end

    def unregist(name)
      synchronize do
        @servers.delete(name)
      end
    end

    private
    def invoke_thread
      Thread.new do
        while true
          name = @queue.pop
          invoke_service_command(name, @@command[name])
        end
      end
    end

    def invoke_service(name)
      @queue.push(name)
    end

    def invoke_service_command(name, command)
      raise "invalid command. name: #{name}" unless command
      synchronize do
        return if @servers.include?(name)
        @servers[name] = false
      end
      uri = @uri || DRb.uri
      if command.respond_to? :to_ary
        command = command.to_ary + [uri, name]
        pid = spawn(*command)
      else
        pid = spawn("#{command} #{uri} #{name}")
      end
      th = Process.detach(pid)
      th[:drb_service] = name
      th
    end
  end
end
lib64/ruby/2.2.0/drb/gw.rb000064400000005741150402106050010615 0ustar00require 'drb/drb'
require 'monitor'

module DRb

  # Gateway id conversion forms a gateway between different DRb protocols or
  # networks.
  #
  # The gateway needs to install this id conversion and create servers for
  # each of the protocols or networks it will be a gateway between.  It then
  # needs to create a server that attaches to each of these networks.  For
  # example:
  #
  #   require 'drb/drb'
  #   require 'drb/unix'
  #   require 'drb/gw'
  #
  #   DRb.install_id_conv DRb::GWIdConv.new
  #   gw = DRb::GW.new
  #   s1 = DRb::DRbServer.new 'drbunix:/path/to/gateway', gw
  #   s2 = DRb::DRbServer.new 'druby://example:10000', gw
  #
  #   s1.thread.join
  #   s2.thread.join
  #
  # Each client must register services with the gateway, for example:
  #
  #   DRb.start_service 'drbunix:', nil # an anonymous server
  #   gw = DRbObject.new nil, 'drbunix:/path/to/gateway'
  #   gw[:unix] = some_service
  #   DRb.thread.join

  class GWIdConv < DRbIdConv
    def to_obj(ref) # :nodoc:
      if Array === ref && ref[0] == :DRbObject
        return DRbObject.new_with(ref[1], ref[2])
      end
      super(ref)
    end
  end

  # The GW provides a synchronized store for participants in the gateway to
  # communicate.

  class GW
    include MonitorMixin

    # Creates a new GW

    def initialize
      super()
      @hash = {}
    end

    # Retrieves +key+ from the GW

    def [](key)
      synchronize do
        @hash[key]
      end
    end

    # Stores value +v+ at +key+ in the GW

    def []=(key, v)
      synchronize do
        @hash[key] = v
      end
    end
  end

  class DRbObject # :nodoc:
    def self._load(s)
      uri, ref = Marshal.load(s)
      if DRb.uri == uri
        return ref ? DRb.to_obj(ref) : DRb.front
      end

      self.new_with(DRb.uri, [:DRbObject, uri, ref])
    end

    def _dump(lv)
      if DRb.uri == @uri
        if Array === @ref && @ref[0] == :DRbObject
          Marshal.dump([@ref[1], @ref[2]])
        else
          Marshal.dump([@uri, @ref]) # ??
        end
      else
        Marshal.dump([DRb.uri, [:DRbObject, @uri, @ref]])
      end
    end
  end
end

=begin
DRb.install_id_conv(DRb::GWIdConv.new)

front = DRb::GW.new

s1 = DRb::DRbServer.new('drbunix:/tmp/gw_b_a', front)
s2 = DRb::DRbServer.new('drbunix:/tmp/gw_b_c', front)

s1.thread.join
s2.thread.join
=end

=begin
# foo.rb

require 'drb/drb'

class Foo
  include DRbUndumped
  def initialize(name, peer=nil)
    @name = name
    @peer = peer
  end

  def ping(obj)
    puts "#{@name}: ping: #{obj.inspect}"
    @peer.ping(self) if @peer
  end
end
=end

=begin
# gw_a.rb
require 'drb/unix'
require 'foo'

obj = Foo.new('a')
DRb.start_service("drbunix:/tmp/gw_a", obj)

robj = DRbObject.new_with_uri('drbunix:/tmp/gw_b_a')
robj[:a] = obj

DRb.thread.join
=end

=begin
# gw_c.rb
require 'drb/unix'
require 'foo'

foo = Foo.new('c', nil)

DRb.start_service("drbunix:/tmp/gw_c", nil)

robj = DRbObject.new_with_uri("drbunix:/tmp/gw_b_c")

puts "c->b"
a = robj[:a]
sleep 2

a.ping(foo)

DRb.thread.join
=end

lib64/ruby/2.2.0/drb/acl.rb000064400000010516150402106050010733 0ustar00# Copyright (c) 2000,2002,2003 Masatoshi SEKI
#
# acl.rb is copyrighted free software by Masatoshi SEKI.
# You can redistribute it and/or modify it under the same terms as Ruby.

require 'ipaddr'

##
# Simple Access Control Lists.
#
# Access control lists are composed of "allow" and "deny" halves to control
# access.  Use "all" or "*" to match any address.  To match a specific address
# use any address or address mask that IPAddr can understand.
#
# Example:
#
#   list = %w[
#     deny all
#     allow 192.168.1.1
#     allow ::ffff:192.168.1.2
#     allow 192.168.1.3
#   ]
#
#   # From Socket#peeraddr, see also ACL#allow_socket?
#   addr = ["AF_INET", 10, "lc630", "192.168.1.3"]
#
#   acl = ACL.new
#   p acl.allow_addr?(addr) # => true
#
#   acl = ACL.new(list, ACL::DENY_ALLOW)
#   p acl.allow_addr?(addr) # => true

class ACL

  ##
  # The current version of ACL

  VERSION=["2.0.0"]

  ##
  # An entry in an ACL

  class ACLEntry

    ##
    # Creates a new entry using +str+.
    #
    # +str+ may be "*" or "all" to match any address, an IP address string
    # to match a specific address, an IP address mask per IPAddr, or one
    # containing "*" to match part of an IPv4 address.

    def initialize(str)
      if str == '*' or str == 'all'
        @pat = [:all]
      elsif str.include?('*')
        @pat = [:name, dot_pat(str)]
      else
        begin
          @pat = [:ip, IPAddr.new(str)]
        rescue ArgumentError
          @pat = [:name, dot_pat(str)]
        end
      end
    end

    private

    ##
    # Creates a regular expression to match IPv4 addresses

    def dot_pat_str(str)
      list = str.split('.').collect { |s|
        (s == '*') ? '.+' : s
      }
      list.join("\\.")
    end

    private

    ##
    # Creates a Regexp to match an address.

    def dot_pat(str)
      exp = "^" + dot_pat_str(str) + "$"
      Regexp.new(exp)
    end

    public

    ##
    # Matches +addr+ against this entry.

    def match(addr)
      case @pat[0]
      when :all
        true
      when :ip
        begin
          ipaddr = IPAddr.new(addr[3])
          ipaddr = ipaddr.ipv4_mapped if @pat[1].ipv6? && ipaddr.ipv4?
        rescue ArgumentError
          return false
        end
        (@pat[1].include?(ipaddr)) ? true : false
      when :name
        (@pat[1] =~ addr[2]) ? true : false
      else
        false
      end
    end
  end

  ##
  # A list of ACLEntry objects.  Used to implement the allow and deny halves
  # of an ACL

  class ACLList

    ##
    # Creates an empty ACLList

    def initialize
      @list = []
    end

    public

    ##
    # Matches +addr+ against each ACLEntry in this list.

    def match(addr)
      @list.each do |e|
        return true if e.match(addr)
      end
      false
    end

    public

    ##
    # Adds +str+ as an ACLEntry in this list

    def add(str)
      @list.push(ACLEntry.new(str))
    end

  end

  ##
  # Default to deny

  DENY_ALLOW = 0

  ##
  # Default to allow

  ALLOW_DENY = 1

  ##
  # Creates a new ACL from +list+ with an evaluation +order+ of DENY_ALLOW or
  # ALLOW_DENY.
  #
  # An ACL +list+ is an Array of "allow" or "deny" and an address or address
  # mask or "all" or "*" to match any address:
  #
  #   %w[
  #     deny all
  #     allow 192.0.2.2
  #     allow 192.0.2.128/26
  #   ]

  def initialize(list=nil, order = DENY_ALLOW)
    @order = order
    @deny = ACLList.new
    @allow = ACLList.new
    install_list(list) if list
  end

  public

  ##
  # Allow connections from Socket +soc+?

  def allow_socket?(soc)
    allow_addr?(soc.peeraddr)
  end

  public

  ##
  # Allow connections from addrinfo +addr+?  It must be formatted like
  # Socket#peeraddr:
  #
  #   ["AF_INET", 10, "lc630", "192.0.2.1"]

  def allow_addr?(addr)
    case @order
    when DENY_ALLOW
      return true if @allow.match(addr)
      return false if @deny.match(addr)
      return true
    when ALLOW_DENY
      return false if @deny.match(addr)
      return true if @allow.match(addr)
      return false
    else
      false
    end
  end

  public

  ##
  # Adds +list+ of ACL entries to this ACL.

  def install_list(list)
    i = 0
    while i < list.size
      permission, domain = list.slice(i,2)
      case permission.downcase
      when 'allow'
        @allow.add(domain)
      when 'deny'
        @deny.add(domain)
      else
        raise "Invalid ACL entry #{list}"
      end
      i += 2
    end
  end

end
lib64/ruby/2.2.0/drb/ssl.rb000064400000027060150402106050010777 0ustar00require 'socket'
require 'openssl'
require 'drb/drb'
require 'singleton'

module DRb

  # The protocol for DRb over an SSL socket
  #
  # The URI for a DRb socket over SSL is:
  # <code>drbssl://<host>:<port>?<option></code>.  The option is optional
  class DRbSSLSocket < DRbTCPSocket

    # SSLConfig handles the needed SSL information for establishing a
    # DRbSSLSocket connection, including generating the X509 / RSA pair.
    #
    # An instance of this config can be passed to DRbSSLSocket.new,
    # DRbSSLSocket.open and DRbSSLSocket.open_server
    #
    # See DRb::DRbSSLSocket::SSLConfig.new for more details
    class SSLConfig

      # Default values for a SSLConfig instance.
      #
      # See DRb::DRbSSLSocket::SSLConfig.new for more details
      DEFAULT = {
        :SSLCertificate       => nil,
        :SSLPrivateKey        => nil,
        :SSLClientCA          => nil,
        :SSLCACertificatePath => nil,
        :SSLCACertificateFile => nil,
        :SSLTmpDhCallback     => nil,
        :SSLVerifyMode        => ::OpenSSL::SSL::VERIFY_NONE,
        :SSLVerifyDepth       => nil,
        :SSLVerifyCallback    => nil,   # custom verification
        :SSLCertificateStore  => nil,
        # Must specify if you use auto generated certificate.
        :SSLCertName          => nil,   # e.g. [["CN","fqdn.example.com"]]
        :SSLCertComment       => "Generated by Ruby/OpenSSL"
      }

      # Create a new DRb::DRbSSLSocket::SSLConfig instance
      #
      # The DRb::DRbSSLSocket will take either a +config+ Hash or an instance
      # of SSLConfig, and will setup the certificate for its session for the
      # configuration. If want it to generate a generic certificate, the bare
      # minimum is to provide the :SSLCertName
      #
      # === Config options
      #
      # From +config+ Hash:
      #
      # :SSLCertificate ::
      #   An instance of OpenSSL::X509::Certificate.  If this is not provided,
      #   then a generic X509 is generated, with a correspond :SSLPrivateKey
      #
      # :SSLPrivateKey ::
      #   A private key instance, like OpenSSL::PKey::RSA.  This key must be
      #   the key that signed the :SSLCertificate
      #
      # :SSLClientCA ::
      #   An OpenSSL::X509::Certificate, or Array of certificates that will
      #   used as ClientCAs in the SSL Context
      #
      # :SSLCACertificatePath ::
      #   A path to the directory of CA certificates.  The certificates must
      #   be in PEM format.
      #
      # :SSLCACertificateFile ::
      #   A path to a CA certificate file, in PEM format.
      #
      # :SSLTmpDhCallback ::
      #   A DH callback. See OpenSSL::SSL::SSLContext.tmp_dh_callback
      #
      # :SSLVerifyMode ::
      #   This is the SSL verification mode.  See OpenSSL::SSL::VERIFY_* for
      #   available modes.  The default is OpenSSL::SSL::VERIFY_NONE
      #
      # :SSLVerifyDepth ::
      #   Number of CA certificates to walk, when verifying a certificate
      #   chain.
      #
      # :SSLVerifyCallback ::
      #   A callback to be used for additional verification.  See
      #   OpenSSL::SSL::SSLContext.verify_callback
      #
      # :SSLCertificateStore ::
      #   A OpenSSL::X509::Store used for verification of certificates
      #
      # :SSLCertName ::
      #   Issuer name for the certificate.  This is required when generating
      #   the certificate (if :SSLCertificate and :SSLPrivateKey were not
      #   given).  The value of this is to be an Array of pairs:
      #
      #     [["C", "Raleigh"], ["ST","North Carolina"],
      #      ["CN","fqdn.example.com"]]
      #
      #   See also OpenSSL::X509::Name
      #
      # :SSLCertComment ::
      #   A comment to be used for generating the certificate.  The default is
      #   "Generated by Ruby/OpenSSL"
      #
      #
      # === Example
      #
      # These values can be added after the fact, like a Hash.
      #
      #   require 'drb/ssl'
      #   c = DRb::DRbSSLSocket::SSLConfig.new {}
      #   c[:SSLCertificate] =
      #     OpenSSL::X509::Certificate.new(File.read('mycert.crt'))
      #   c[:SSLPrivateKey] = OpenSSL::PKey::RSA.new(File.read('mycert.key'))
      #   c[:SSLVerifyMode] = OpenSSL::SSL::VERIFY_PEER
      #   c[:SSLCACertificatePath] = "/etc/ssl/certs/"
      #   c.setup_certificate
      #
      # or
      #
      #   require 'drb/ssl'
      #   c = DRb::DRbSSLSocket::SSLConfig.new({
      #           :SSLCertName => [["CN" => DRb::DRbSSLSocket.getservername]]
      #           })
      #   c.setup_certificate
      #
      def initialize(config)
        @config  = config
        @cert    = config[:SSLCertificate]
        @pkey    = config[:SSLPrivateKey]
        @ssl_ctx = nil
      end

      # A convenience method to access the values like a Hash
      def [](key);
        @config[key] || DEFAULT[key]
      end

      # Connect to IO +tcp+, with context of the current certificate
      # configuration
      def connect(tcp)
        ssl = ::OpenSSL::SSL::SSLSocket.new(tcp, @ssl_ctx)
        ssl.sync = true
        ssl.connect
        ssl
      end

      # Accept connection to IO +tcp+, with context of the current certificate
      # configuration
      def accept(tcp)
        ssl = OpenSSL::SSL::SSLSocket.new(tcp, @ssl_ctx)
        ssl.sync = true
        ssl.accept
        ssl
      end

      # Ensures that :SSLCertificate and :SSLPrivateKey have been provided
      # or that a new certificate is generated with the other parameters
      # provided.
      def setup_certificate
        if @cert && @pkey
          return
        end

        rsa = OpenSSL::PKey::RSA.new(1024){|p, n|
          next unless self[:verbose]
          case p
          when 0; $stderr.putc "."  # BN_generate_prime
          when 1; $stderr.putc "+"  # BN_generate_prime
          when 2; $stderr.putc "*"  # searching good prime,
                                    # n = #of try,
                                    # but also data from BN_generate_prime
          when 3; $stderr.putc "\n" # found good prime, n==0 - p, n==1 - q,
                                    # but also data from BN_generate_prime
          else;   $stderr.putc "*"  # BN_generate_prime
          end
        }

        cert = OpenSSL::X509::Certificate.new
        cert.version = 3
        cert.serial = 0
        name = OpenSSL::X509::Name.new(self[:SSLCertName])
        cert.subject = name
        cert.issuer = name
        cert.not_before = Time.now
        cert.not_after = Time.now + (365*24*60*60)
        cert.public_key = rsa.public_key

        ef = OpenSSL::X509::ExtensionFactory.new(nil,cert)
        cert.extensions = [
          ef.create_extension("basicConstraints","CA:FALSE"),
          ef.create_extension("subjectKeyIdentifier", "hash") ]
        ef.issuer_certificate = cert
        cert.add_extension(ef.create_extension("authorityKeyIdentifier",
                                               "keyid:always,issuer:always"))
        if comment = self[:SSLCertComment]
          cert.add_extension(ef.create_extension("nsComment", comment))
        end
        cert.sign(rsa, OpenSSL::Digest::SHA1.new)

        @cert = cert
        @pkey = rsa
      end

      # Establish the OpenSSL::SSL::SSLContext with the configuration
      # parameters provided.
      def setup_ssl_context
        ctx = ::OpenSSL::SSL::SSLContext.new
        ctx.cert            = @cert
        ctx.key             = @pkey
        ctx.client_ca       = self[:SSLClientCA]
        ctx.ca_path         = self[:SSLCACertificatePath]
        ctx.ca_file         = self[:SSLCACertificateFile]
        ctx.tmp_dh_callback = self[:SSLTmpDhCallback]
        ctx.verify_mode     = self[:SSLVerifyMode]
        ctx.verify_depth    = self[:SSLVerifyDepth]
        ctx.verify_callback = self[:SSLVerifyCallback]
        ctx.cert_store      = self[:SSLCertificateStore]
        @ssl_ctx = ctx
      end
    end

    # Parse the dRuby +uri+ for an SSL connection.
    #
    # Expects drbssl://...
    #
    # Raises DRbBadScheme or DRbBadURI if +uri+ is not matching or malformed
    def self.parse_uri(uri) # :nodoc:
      if uri =~ /^drbssl:\/\/(.*?):(\d+)(\?(.*))?$/
        host = $1
        port = $2.to_i
        option = $4
        [host, port, option]
      else
        raise(DRbBadScheme, uri) unless uri =~ /^drbssl:/
        raise(DRbBadURI, 'can\'t parse uri:' + uri)
      end
    end

    # Return an DRb::DRbSSLSocket instance as a client-side connection,
    # with the SSL connected.  This is called from DRb::start_service or while
    # connecting to a remote object:
    #
    #   DRb.start_service 'drbssl://localhost:0', front, config
    #
    # +uri+ is the URI we are connected to,
    # <code>'drbssl://localhost:0'</code> above, +config+ is our
    # configuration.  Either a Hash or DRb::DRbSSLSocket::SSLConfig
    def self.open(uri, config)
      host, port, = parse_uri(uri)
      host.untaint
      port.untaint
      soc = TCPSocket.open(host, port)
      ssl_conf = SSLConfig::new(config)
      ssl_conf.setup_ssl_context
      ssl = ssl_conf.connect(soc)
      self.new(uri, ssl, ssl_conf, true)
    end

    # Returns a DRb::DRbSSLSocket instance as a server-side connection, with
    # the SSL connected.  This is called from DRb::start_service or while
    # connecting to a remote object:
    #
    #   DRb.start_service 'drbssl://localhost:0', front, config
    #
    # +uri+ is the URI we are connected to,
    # <code>'drbssl://localhost:0'</code> above, +config+ is our
    # configuration.  Either a Hash or DRb::DRbSSLSocket::SSLConfig
    def self.open_server(uri, config)
      uri = 'drbssl://:0' unless uri
      host, port, = parse_uri(uri)
      if host.size == 0
        host = getservername
        soc = open_server_inaddr_any(host, port)
      else
        soc = TCPServer.open(host, port)
      end
      port = soc.addr[1] if port == 0
      @uri = "drbssl://#{host}:#{port}"

      ssl_conf = SSLConfig.new(config)
      ssl_conf.setup_certificate
      ssl_conf.setup_ssl_context
      self.new(@uri, soc, ssl_conf, false)
    end

    # This is a convenience method to parse +uri+ and separate out any
    # additional options appended in the +uri+.
    #
    # Returns an option-less uri and the option => [uri,option]
    #
    # The +config+ is completely unused, so passing nil is sufficient.
    def self.uri_option(uri, config) # :nodoc:
      host, port, option = parse_uri(uri)
      return "drbssl://#{host}:#{port}", option
    end

    # Create a DRb::DRbSSLSocket instance.
    #
    # +uri+ is the URI we are connected to.
    # +soc+ is the tcp socket we are bound to.
    # +config+ is our configuration. Either a Hash or SSLConfig
    # +is_established+ is a boolean of whether +soc+ is currently established
    #
    # This is called automatically based on the DRb protocol.
    def initialize(uri, soc, config, is_established)
      @ssl = is_established ? soc : nil
      super(uri, soc.to_io, config)
    end

    # Returns the SSL stream
    def stream; @ssl; end # :nodoc:

    # Closes the SSL stream before closing the dRuby connection.
    def close # :nodoc:
      if @ssl
        @ssl.close
        @ssl = nil
      end
      super
    end

    def accept # :nodoc:
      begin
      while true
        soc = accept_or_shutdown
        return nil unless soc
        break if (@acl ? @acl.allow_socket?(soc) : true)
        soc.close
      end
      begin
        ssl = @config.accept(soc)
      rescue Exception
        soc.close
        raise
      end
      self.class.new(uri, ssl, @config, true)
      rescue OpenSSL::SSL::SSLError
        warn("#{__FILE__}:#{__LINE__}: warning: #{$!.message} (#{$!.class})") if @config[:verbose]
        retry
      end
    end
  end

  DRbProtocol.add_protocol(DRbSSLSocket)
end
lib64/ruby/2.2.0/drb/extserv.rb000064400000001440150402106050011670 0ustar00=begin
 external service
        Copyright (c) 2000,2002 Masatoshi SEKI
=end

require 'drb/drb'
require 'monitor'

module DRb
  class ExtServ
    include MonitorMixin
    include DRbUndumped

    def initialize(there, name, server=nil)
      super()
      @server = server || DRb::primary_server
      @name = name
      ro = DRbObject.new(nil, there)
      synchronize do
        @invoker = ro.regist(name, DRbObject.new(self, @server.uri))
      end
    end
    attr_reader :server

    def front
      DRbObject.new(nil, @server.uri)
    end

    def stop_service
      synchronize do
        @invoker.unregist(@name)
        server = @server
        @server = nil
        server.stop_service
        true
      end
    end

    def alive?
      @server ? @server.alive? : false
    end
  end
end
lib64/ruby/2.2.0/drb/drb.rb000064400000160511150402106050010744 0ustar00#
# = drb/drb.rb
#
# Distributed Ruby: _dRuby_ version 2.0.4
#
# Copyright (c) 1999-2003 Masatoshi SEKI.  You can redistribute it and/or
# modify it under the same terms as Ruby.
#
# Author:: Masatoshi SEKI
#
# Documentation:: William Webber (william@williamwebber.com)
#
# == Overview
#
# dRuby is a distributed object system for Ruby.  It allows an object in one
# Ruby process to invoke methods on an object in another Ruby process on the
# same or a different machine.
#
# The Ruby standard library contains the core classes of the dRuby package.
# However, the full package also includes access control lists and the
# Rinda tuple-space distributed task management system, as well as a
# large number of samples.  The full dRuby package can be downloaded from
# the dRuby home page (see *References*).
#
# For an introduction and examples of usage see the documentation to the
# DRb module.
#
# == References
#
# [http://www2a.biglobe.ne.jp/~seki/ruby/druby.html]
#    The dRuby home page, in Japanese.  Contains the full dRuby package
#    and links to other Japanese-language sources.
#
# [http://www2a.biglobe.ne.jp/~seki/ruby/druby.en.html]
#    The English version of the dRuby home page.
#
# [http://pragprog.com/book/sidruby/the-druby-book]
#    The dRuby Book: Distributed and Parallel Computing with Ruby
#    by Masatoshi Seki and Makoto Inoue
#
# [http://www.ruby-doc.org/docs/ProgrammingRuby/html/ospace.html]
#   The chapter from *Programming* *Ruby* by Dave Thomas and Andy Hunt
#   which discusses dRuby.
#
# [http://www.clio.ne.jp/home/web-i31s/Flotuard/Ruby/PRC2K_seki/dRuby.en.html]
#   Translation of presentation on Ruby by Masatoshi Seki.

require 'socket'
require 'thread'
require 'fcntl'
require 'drb/eq'

#
# == Overview
#
# dRuby is a distributed object system for Ruby.  It is written in
# pure Ruby and uses its own protocol.  No add-in services are needed
# beyond those provided by the Ruby runtime, such as TCP sockets.  It
# does not rely on or interoperate with other distributed object
# systems such as CORBA, RMI, or .NET.
#
# dRuby allows methods to be called in one Ruby process upon a Ruby
# object located in another Ruby process, even on another machine.
# References to objects can be passed between processes.  Method
# arguments and return values are dumped and loaded in marshalled
# format.  All of this is done transparently to both the caller of the
# remote method and the object that it is called upon.
#
# An object in a remote process is locally represented by a
# DRb::DRbObject instance.  This acts as a sort of proxy for the
# remote object.  Methods called upon this DRbObject instance are
# forwarded to its remote object.  This is arranged dynamically at run
# time.  There are no statically declared interfaces for remote
# objects, such as CORBA's IDL.
#
# dRuby calls made into a process are handled by a DRb::DRbServer
# instance within that process.  This reconstitutes the method call,
# invokes it upon the specified local object, and returns the value to
# the remote caller.  Any object can receive calls over dRuby.  There
# is no need to implement a special interface, or mixin special
# functionality.  Nor, in the general case, does an object need to
# explicitly register itself with a DRbServer in order to receive
# dRuby calls.
#
# One process wishing to make dRuby calls upon another process must
# somehow obtain an initial reference to an object in the remote
# process by some means other than as the return value of a remote
# method call, as there is initially no remote object reference it can
# invoke a method upon.  This is done by attaching to the server by
# URI.  Each DRbServer binds itself to a URI such as
# 'druby://example.com:8787'.  A DRbServer can have an object attached
# to it that acts as the server's *front* *object*.  A DRbObject can
# be explicitly created from the server's URI.  This DRbObject's
# remote object will be the server's front object.  This front object
# can then return references to other Ruby objects in the DRbServer's
# process.
#
# Method calls made over dRuby behave largely the same as normal Ruby
# method calls made within a process.  Method calls with blocks are
# supported, as are raising exceptions.  In addition to a method's
# standard errors, a dRuby call may also raise one of the
# dRuby-specific errors, all of which are subclasses of DRb::DRbError.
#
# Any type of object can be passed as an argument to a dRuby call or
# returned as its return value.  By default, such objects are dumped
# or marshalled at the local end, then loaded or unmarshalled at the
# remote end.  The remote end therefore receives a copy of the local
# object, not a distributed reference to it; methods invoked upon this
# copy are executed entirely in the remote process, not passed on to
# the local original.  This has semantics similar to pass-by-value.
#
# However, if an object cannot be marshalled, a dRuby reference to it
# is passed or returned instead.  This will turn up at the remote end
# as a DRbObject instance.  All methods invoked upon this remote proxy
# are forwarded to the local object, as described in the discussion of
# DRbObjects.  This has semantics similar to the normal Ruby
# pass-by-reference.
#
# The easiest way to signal that we want an otherwise marshallable
# object to be passed or returned as a DRbObject reference, rather
# than marshalled and sent as a copy, is to include the
# DRb::DRbUndumped mixin module.
#
# dRuby supports calling remote methods with blocks.  As blocks (or
# rather the Proc objects that represent them) are not marshallable,
# the block executes in the local, not the remote, context.  Each
# value yielded to the block is passed from the remote object to the
# local block, then the value returned by each block invocation is
# passed back to the remote execution context to be collected, before
# the collected values are finally returned to the local context as
# the return value of the method invocation.
#
# == Examples of usage
#
# For more dRuby samples, see the +samples+ directory in the full
# dRuby distribution.
#
# === dRuby in client/server mode
#
# This illustrates setting up a simple client-server drb
# system.  Run the server and client code in different terminals,
# starting the server code first.
#
# ==== Server code
#
#   require 'drb/drb'
#
#   # The URI for the server to connect to
#   URI="druby://localhost:8787"
#
#   class TimeServer
#
#     def get_current_time
#       return Time.now
#     end
#
#   end
#
#   # The object that handles requests on the server
#   FRONT_OBJECT=TimeServer.new
#
#   $SAFE = 1   # disable eval() and friends
#
#   DRb.start_service(URI, FRONT_OBJECT)
#   # Wait for the drb server thread to finish before exiting.
#   DRb.thread.join
#
# ==== Client code
#
#   require 'drb/drb'
#
#   # The URI to connect to
#   SERVER_URI="druby://localhost:8787"
#
#   # Start a local DRbServer to handle callbacks.
#   #
#   # Not necessary for this small example, but will be required
#   # as soon as we pass a non-marshallable object as an argument
#   # to a dRuby call.
#   #
#   # Note: this must be called at least once per process to take any effect.
#   # This is particularly important if your application forks.
#   DRb.start_service
#
#   timeserver = DRbObject.new_with_uri(SERVER_URI)
#   puts timeserver.get_current_time
#
# === Remote objects under dRuby
#
# This example illustrates returning a reference to an object
# from a dRuby call.  The Logger instances live in the server
# process.  References to them are returned to the client process,
# where methods can be invoked upon them.  These methods are
# executed in the server process.
#
# ==== Server code
#
#   require 'drb/drb'
#
#   URI="druby://localhost:8787"
#
#   class Logger
#
#       # Make dRuby send Logger instances as dRuby references,
#       # not copies.
#       include DRb::DRbUndumped
#
#       def initialize(n, fname)
#           @name = n
#           @filename = fname
#       end
#
#       def log(message)
#           File.open(@filename, "a") do |f|
#               f.puts("#{Time.now}: #{@name}: #{message}")
#           end
#       end
#
#   end
#
#   # We have a central object for creating and retrieving loggers.
#   # This retains a local reference to all loggers created.  This
#   # is so an existing logger can be looked up by name, but also
#   # to prevent loggers from being garbage collected.  A dRuby
#   # reference to an object is not sufficient to prevent it being
#   # garbage collected!
#   class LoggerFactory
#
#       def initialize(bdir)
#           @basedir = bdir
#           @loggers = {}
#       end
#
#       def get_logger(name)
#           if !@loggers.has_key? name
#               # make the filename safe, then declare it to be so
#               fname = name.gsub(/[.\/\\\:]/, "_").untaint
#               @loggers[name] = Logger.new(name, @basedir + "/" + fname)
#           end
#           return @loggers[name]
#       end
#
#   end
#
#   FRONT_OBJECT=LoggerFactory.new("/tmp/dlog")
#
#   $SAFE = 1   # disable eval() and friends
#
#   DRb.start_service(URI, FRONT_OBJECT)
#   DRb.thread.join
#
# ==== Client code
#
#   require 'drb/drb'
#
#   SERVER_URI="druby://localhost:8787"
#
#   DRb.start_service
#
#   log_service=DRbObject.new_with_uri(SERVER_URI)
#
#   ["loga", "logb", "logc"].each do |logname|
#
#       logger=log_service.get_logger(logname)
#
#       logger.log("Hello, world!")
#       logger.log("Goodbye, world!")
#       logger.log("=== EOT ===")
#
#   end
#
# == Security
#
# As with all network services, security needs to be considered when
# using dRuby.  By allowing external access to a Ruby object, you are
# not only allowing outside clients to call the methods you have
# defined for that object, but by default to execute arbitrary Ruby
# code on your server.  Consider the following:
#
#    # !!! UNSAFE CODE !!!
#    ro = DRbObject::new_with_uri("druby://your.server.com:8989")
#    class << ro
#      undef :instance_eval  # force call to be passed to remote object
#    end
#    ro.instance_eval("`rm -rf *`")
#
# The dangers posed by instance_eval and friends are such that a
# DRbServer should generally be run with $SAFE set to at least
# level 1.  This will disable eval() and related calls on strings
# passed across the wire.  The sample usage code given above follows
# this practice.
#
# A DRbServer can be configured with an access control list to
# selectively allow or deny access from specified IP addresses.  The
# main druby distribution provides the ACL class for this purpose.  In
# general, this mechanism should only be used alongside, rather than
# as a replacement for, a good firewall.
#
# == dRuby internals
#
# dRuby is implemented using three main components: a remote method
# call marshaller/unmarshaller; a transport protocol; and an
# ID-to-object mapper.  The latter two can be directly, and the first
# indirectly, replaced, in order to provide different behaviour and
# capabilities.
#
# Marshalling and unmarshalling of remote method calls is performed by
# a DRb::DRbMessage instance.  This uses the Marshal module to dump
# the method call before sending it over the transport layer, then
# reconstitute it at the other end.  There is normally no need to
# replace this component, and no direct way is provided to do so.
# However, it is possible to implement an alternative marshalling
# scheme as part of an implementation of the transport layer.
#
# The transport layer is responsible for opening client and server
# network connections and forwarding dRuby request across them.
# Normally, it uses DRb::DRbMessage internally to manage marshalling
# and unmarshalling.  The transport layer is managed by
# DRb::DRbProtocol.  Multiple protocols can be installed in
# DRbProtocol at the one time; selection between them is determined by
# the scheme of a dRuby URI.  The default transport protocol is
# selected by the scheme 'druby:', and implemented by
# DRb::DRbTCPSocket.  This uses plain TCP/IP sockets for
# communication.  An alternative protocol, using UNIX domain sockets,
# is implemented by DRb::DRbUNIXSocket in the file drb/unix.rb, and
# selected by the scheme 'drbunix:'.  A sample implementation over
# HTTP can be found in the samples accompanying the main dRuby
# distribution.
#
# The ID-to-object mapping component maps dRuby object ids to the
# objects they refer to, and vice versa.  The implementation to use
# can be specified as part of a DRb::DRbServer's configuration.  The
# default implementation is provided by DRb::DRbIdConv.  It uses an
# object's ObjectSpace id as its dRuby id.  This means that the dRuby
# reference to that object only remains meaningful for the lifetime of
# the object's process and the lifetime of the object within that
# process.  A modified implementation is provided by DRb::TimerIdConv
# in the file drb/timeridconv.rb.  This implementation retains a local
# reference to all objects exported over dRuby for a configurable
# period of time (defaulting to ten minutes), to prevent them being
# garbage-collected within this time.  Another sample implementation
# is provided in sample/name.rb in the main dRuby distribution.  This
# allows objects to specify their own id or "name".  A dRuby reference
# can be made persistent across processes by having each process
# register an object using the same dRuby name.
#
module DRb

  # Superclass of all errors raised in the DRb module.
  class DRbError < RuntimeError; end

  # Error raised when an error occurs on the underlying communication
  # protocol.
  class DRbConnError < DRbError; end

  # Class responsible for converting between an object and its id.
  #
  # This, the default implementation, uses an object's local ObjectSpace
  # __id__ as its id.  This means that an object's identification over
  # drb remains valid only while that object instance remains alive
  # within the server runtime.
  #
  # For alternative mechanisms, see DRb::TimerIdConv in rdb/timeridconv.rb
  # and DRbNameIdConv in sample/name.rb in the full drb distribution.
  class DRbIdConv

    # Convert an object reference id to an object.
    #
    # This implementation looks up the reference id in the local object
    # space and returns the object it refers to.
    def to_obj(ref)
      ObjectSpace._id2ref(ref)
    end

    # Convert an object into a reference id.
    #
    # This implementation returns the object's __id__ in the local
    # object space.
    def to_id(obj)
      obj.nil? ? nil : obj.__id__
    end
  end

  # Mixin module making an object undumpable or unmarshallable.
  #
  # If an object which includes this module is returned by method
  # called over drb, then the object remains in the server space
  # and a reference to the object is returned, rather than the
  # object being marshalled and moved into the client space.
  module DRbUndumped
    def _dump(dummy)  # :nodoc:
      raise TypeError, 'can\'t dump'
    end
  end

  # Error raised by the DRb module when an attempt is made to refer to
  # the context's current drb server but the context does not have one.
  # See #current_server.
  class DRbServerNotFound < DRbError; end

  # Error raised by the DRbProtocol module when it cannot find any
  # protocol implementation support the scheme specified in a URI.
  class DRbBadURI < DRbError; end

  # Error raised by a dRuby protocol when it doesn't support the
  # scheme specified in a URI.  See DRb::DRbProtocol.
  class DRbBadScheme < DRbError; end

  # An exception wrapping a DRb::DRbUnknown object
  class DRbUnknownError < DRbError

    # Create a new DRbUnknownError for the DRb::DRbUnknown object +unknown+
    def initialize(unknown)
      @unknown = unknown
      super(unknown.name)
    end

    # Get the wrapped DRb::DRbUnknown object.
    attr_reader :unknown

    def self._load(s)  # :nodoc:
      Marshal::load(s)
    end

    def _dump(lv) # :nodoc:
      Marshal::dump(@unknown)
    end
  end

  # An exception wrapping an error object
  class DRbRemoteError < DRbError

    # Creates a new remote error that wraps the Exception +error+
    def initialize(error)
      @reason = error.class.to_s
      super("#{error.message} (#{error.class})")
      set_backtrace(error.backtrace)
    end

    # the class of the error, as a string.
    attr_reader :reason
  end

  # Class wrapping a marshalled object whose type is unknown locally.
  #
  # If an object is returned by a method invoked over drb, but the
  # class of the object is unknown in the client namespace, or
  # the object is a constant unknown in the client namespace, then
  # the still-marshalled object is returned wrapped in a DRbUnknown instance.
  #
  # If this object is passed as an argument to a method invoked over
  # drb, then the wrapped object is passed instead.
  #
  # The class or constant name of the object can be read from the
  # +name+ attribute.  The marshalled object is held in the +buf+
  # attribute.
  class DRbUnknown

    # Create a new DRbUnknown object.
    #
    # +buf+ is a string containing a marshalled object that could not
    # be unmarshalled.  +err+ is the error message that was raised
    # when the unmarshalling failed.  It is used to determine the
    # name of the unmarshalled object.
    def initialize(err, buf)
      case err.to_s
      when /uninitialized constant (\S+)/
        @name = $1
      when /undefined class\/module (\S+)/
        @name = $1
      else
        @name = nil
      end
      @buf = buf
    end

    # The name of the unknown thing.
    #
    # Class name for unknown objects; variable name for unknown
    # constants.
    attr_reader :name

    # Buffer contained the marshalled, unknown object.
    attr_reader :buf

    def self._load(s) # :nodoc:
      begin
        Marshal::load(s)
      rescue NameError, ArgumentError
        DRbUnknown.new($!, s)
      end
    end

    def _dump(lv) # :nodoc:
      @buf
    end

    # Attempt to load the wrapped marshalled object again.
    #
    # If the class of the object is now known locally, the object
    # will be unmarshalled and returned.  Otherwise, a new
    # but identical DRbUnknown object will be returned.
    def reload
      self.class._load(@buf)
    end

    # Create a DRbUnknownError exception containing this object.
    def exception
      DRbUnknownError.new(self)
    end
  end

  # An Array wrapper that can be sent to another server via DRb.
  #
  # All entries in the array will be dumped or be references that point to
  # the local server.

  class DRbArray

    # Creates a new DRbArray that either dumps or wraps all the items in the
    # Array +ary+ so they can be loaded by a remote DRb server.

    def initialize(ary)
      @ary = ary.collect { |obj|
        if obj.kind_of? DRbUndumped
          DRbObject.new(obj)
        else
          begin
            Marshal.dump(obj)
            obj
          rescue
            DRbObject.new(obj)
          end
        end
      }
    end

    def self._load(s) # :nodoc:
      Marshal::load(s)
    end

    def _dump(lv) # :nodoc:
      Marshal.dump(@ary)
    end
  end

  # Handler for sending and receiving drb messages.
  #
  # This takes care of the low-level marshalling and unmarshalling
  # of drb requests and responses sent over the wire between server
  # and client.  This relieves the implementor of a new drb
  # protocol layer with having to deal with these details.
  #
  # The user does not have to directly deal with this object in
  # normal use.
  class DRbMessage
    def initialize(config) # :nodoc:
      @load_limit = config[:load_limit]
      @argc_limit = config[:argc_limit]
    end

    def dump(obj, error=false)  # :nodoc:
      obj = make_proxy(obj, error) if obj.kind_of? DRbUndumped
      begin
        str = Marshal::dump(obj)
      rescue
        str = Marshal::dump(make_proxy(obj, error))
      end
      [str.size].pack('N') + str
    end

    def load(soc)  # :nodoc:
      begin
        sz = soc.read(4)        # sizeof (N)
      rescue
        raise(DRbConnError, $!.message, $!.backtrace)
      end
      raise(DRbConnError, 'connection closed') if sz.nil?
      raise(DRbConnError, 'premature header') if sz.size < 4
      sz = sz.unpack('N')[0]
      raise(DRbConnError, "too large packet #{sz}") if @load_limit < sz
      begin
        str = soc.read(sz)
      rescue
        raise(DRbConnError, $!.message, $!.backtrace)
      end
      raise(DRbConnError, 'connection closed') if str.nil?
      raise(DRbConnError, 'premature marshal format(can\'t read)') if str.size < sz
      DRb.mutex.synchronize do
        begin
          save = Thread.current[:drb_untaint]
          Thread.current[:drb_untaint] = []
          Marshal::load(str)
        rescue NameError, ArgumentError
          DRbUnknown.new($!, str)
        ensure
          Thread.current[:drb_untaint].each do |x|
            x.untaint
          end
          Thread.current[:drb_untaint] = save
        end
      end
    end

    def send_request(stream, ref, msg_id, arg, b) # :nodoc:
      ary = []
      ary.push(dump(ref.__drbref))
      ary.push(dump(msg_id.id2name))
      ary.push(dump(arg.length))
      arg.each do |e|
        ary.push(dump(e))
      end
      ary.push(dump(b))
      stream.write(ary.join(''))
    rescue
      raise(DRbConnError, $!.message, $!.backtrace)
    end

    def recv_request(stream) # :nodoc:
      ref = load(stream)
      ro = DRb.to_obj(ref)
      msg = load(stream)
      argc = load(stream)
      raise(DRbConnError, "too many arguments") if @argc_limit < argc
      argv = Array.new(argc, nil)
      argc.times do |n|
        argv[n] = load(stream)
      end
      block = load(stream)
      return ro, msg, argv, block
    end

    def send_reply(stream, succ, result)  # :nodoc:
      stream.write(dump(succ) + dump(result, !succ))
    rescue
      raise(DRbConnError, $!.message, $!.backtrace)
    end

    def recv_reply(stream)  # :nodoc:
      succ = load(stream)
      result = load(stream)
      [succ, result]
    end

    private
    def make_proxy(obj, error=false) # :nodoc:
      if error
        DRbRemoteError.new(obj)
      else
        DRbObject.new(obj)
      end
    end
  end

  # Module managing the underlying network protocol(s) used by drb.
  #
  # By default, drb uses the DRbTCPSocket protocol.  Other protocols
  # can be defined.  A protocol must define the following class methods:
  #
  #   [open(uri, config)] Open a client connection to the server at +uri+,
  #                       using configuration +config+.  Return a protocol
  #                       instance for this connection.
  #   [open_server(uri, config)] Open a server listening at +uri+,
  #                              using configuration +config+.  Return a
  #                              protocol instance for this listener.
  #   [uri_option(uri, config)] Take a URI, possibly containing an option
  #                             component (e.g. a trailing '?param=val'),
  #                             and return a [uri, option] tuple.
  #
  # All of these methods should raise a DRbBadScheme error if the URI
  # does not identify the protocol they support (e.g. "druby:" for
  # the standard Ruby protocol).  This is how the DRbProtocol module,
  # given a URI, determines which protocol implementation serves that
  # protocol.
  #
  # The protocol instance returned by #open_server must have the
  # following methods:
  #
  # [accept] Accept a new connection to the server.  Returns a protocol
  #          instance capable of communicating with the client.
  # [close] Close the server connection.
  # [uri] Get the URI for this server.
  #
  # The protocol instance returned by #open must have the following methods:
  #
  # [send_request (ref, msg_id, arg, b)]
  #      Send a request to +ref+ with the given message id and arguments.
  #      This is most easily implemented by calling DRbMessage.send_request,
  #      providing a stream that sits on top of the current protocol.
  # [recv_reply]
  #      Receive a reply from the server and return it as a [success-boolean,
  #      reply-value] pair.  This is most easily implemented by calling
  #      DRb.recv_reply, providing a stream that sits on top of the
  #      current protocol.
  # [alive?]
  #      Is this connection still alive?
  # [close]
  #      Close this connection.
  #
  # The protocol instance returned by #open_server().accept() must have
  # the following methods:
  #
  # [recv_request]
  #     Receive a request from the client and return a [object, message,
  #     args, block] tuple.  This is most easily implemented by calling
  #     DRbMessage.recv_request, providing a stream that sits on top of
  #     the current protocol.
  # [send_reply(succ, result)]
  #     Send a reply to the client.  This is most easily implemented
  #     by calling DRbMessage.send_reply, providing a stream that sits
  #     on top of the current protocol.
  # [close]
  #     Close this connection.
  #
  # A new protocol is registered with the DRbProtocol module using
  # the add_protocol method.
  #
  # For examples of other protocols, see DRbUNIXSocket in drb/unix.rb,
  # and HTTP0 in sample/http0.rb and sample/http0serv.rb in the full
  # drb distribution.
  module DRbProtocol

    # Add a new protocol to the DRbProtocol module.
    def add_protocol(prot)
      @protocol.push(prot)
    end
    module_function :add_protocol

    # Open a client connection to +uri+ with the configuration +config+.
    #
    # The DRbProtocol module asks each registered protocol in turn to
    # try to open the URI.  Each protocol signals that it does not handle that
    # URI by raising a DRbBadScheme error.  If no protocol recognises the
    # URI, then a DRbBadURI error is raised.  If a protocol accepts the
    # URI, but an error occurs in opening it, a DRbConnError is raised.
    def open(uri, config, first=true)
      @protocol.each do |prot|
        begin
          return prot.open(uri, config)
        rescue DRbBadScheme
        rescue DRbConnError
          raise($!)
        rescue
          raise(DRbConnError, "#{uri} - #{$!.inspect}")
        end
      end
      if first && (config[:auto_load] != false)
        auto_load(uri, config)
        return open(uri, config, false)
      end
      raise DRbBadURI, 'can\'t parse uri:' + uri
    end
    module_function :open

    # Open a server listening for connections at +uri+ with
    # configuration +config+.
    #
    # The DRbProtocol module asks each registered protocol in turn to
    # try to open a server at the URI.  Each protocol signals that it does
    # not handle that URI by raising a DRbBadScheme error.  If no protocol
    # recognises the URI, then a DRbBadURI error is raised.  If a protocol
    # accepts the URI, but an error occurs in opening it, the underlying
    # error is passed on to the caller.
    def open_server(uri, config, first=true)
      @protocol.each do |prot|
        begin
          return prot.open_server(uri, config)
        rescue DRbBadScheme
        end
      end
      if first && (config[:auto_load] != false)
        auto_load(uri, config)
        return open_server(uri, config, false)
      end
      raise DRbBadURI, 'can\'t parse uri:' + uri
    end
    module_function :open_server

    # Parse +uri+ into a [uri, option] pair.
    #
    # The DRbProtocol module asks each registered protocol in turn to
    # try to parse the URI.  Each protocol signals that it does not handle that
    # URI by raising a DRbBadScheme error.  If no protocol recognises the
    # URI, then a DRbBadURI error is raised.
    def uri_option(uri, config, first=true)
      @protocol.each do |prot|
        begin
          uri, opt = prot.uri_option(uri, config)
          # opt = nil if opt == ''
          return uri, opt
        rescue DRbBadScheme
        end
      end
      if first && (config[:auto_load] != false)
        auto_load(uri, config)
        return uri_option(uri, config, false)
      end
      raise DRbBadURI, 'can\'t parse uri:' + uri
    end
    module_function :uri_option

    def auto_load(uri, config)  # :nodoc:
      if uri =~ /^drb([a-z0-9]+):/
        require("drb/#{$1}") rescue nil
      end
    end
    module_function :auto_load
  end

  # The default drb protocol which communicates over a TCP socket.
  #
  # The DRb TCP protocol URI looks like:
  # <code>druby://<host>:<port>?<option></code>.  The option is optional.

  class DRbTCPSocket
    # :stopdoc:
    private
    def self.parse_uri(uri)
      if uri =~ /^druby:\/\/(.*?):(\d+)(\?(.*))?$/
        host = $1
        port = $2.to_i
        option = $4
        [host, port, option]
      else
        raise(DRbBadScheme, uri) unless uri =~ /^druby:/
        raise(DRbBadURI, 'can\'t parse uri:' + uri)
      end
    end

    public

    # Open a client connection to +uri+ (DRb URI string) using configuration
    # +config+.
    #
    # This can raise DRb::DRbBadScheme or DRb::DRbBadURI if +uri+ is not for a
    # recognized protocol.  See DRb::DRbServer.new for information on built-in
    # URI protocols.
    def self.open(uri, config)
      host, port, = parse_uri(uri)
      host.untaint
      port.untaint
      soc = TCPSocket.open(host, port)
      self.new(uri, soc, config)
    end

    # Returns the hostname of this server
    def self.getservername
      host = Socket::gethostname
      begin
        Socket::gethostbyname(host)[0]
      rescue
        'localhost'
      end
    end

    # For the families available for +host+, returns a TCPServer on +port+.
    # If +port+ is 0 the first available port is used.  IPv4 servers are
    # preferred over IPv6 servers.
    def self.open_server_inaddr_any(host, port)
      infos = Socket::getaddrinfo(host, nil,
                                  Socket::AF_UNSPEC,
                                  Socket::SOCK_STREAM,
                                  0,
                                  Socket::AI_PASSIVE)
      families = Hash[*infos.collect { |af, *_| af }.uniq.zip([]).flatten]
      return TCPServer.open('0.0.0.0', port) if families.has_key?('AF_INET')
      return TCPServer.open('::', port) if families.has_key?('AF_INET6')
      return TCPServer.open(port)
      # :stopdoc:
    end

    # Open a server listening for connections at +uri+ using
    # configuration +config+.
    def self.open_server(uri, config)
      uri = 'druby://:0' unless uri
      host, port, _ = parse_uri(uri)
      config = {:tcp_original_host => host}.update(config)
      if host.size == 0
        host = getservername
        soc = open_server_inaddr_any(host, port)
      else
        soc = TCPServer.open(host, port)
      end
      port = soc.addr[1] if port == 0
      config[:tcp_port] = port
      uri = "druby://#{host}:#{port}"
      self.new(uri, soc, config)
    end

    # Parse +uri+ into a [uri, option] pair.
    def self.uri_option(uri, config)
      host, port, option = parse_uri(uri)
      return "druby://#{host}:#{port}", option
    end

    # Create a new DRbTCPSocket instance.
    #
    # +uri+ is the URI we are connected to.
    # +soc+ is the tcp socket we are bound to.  +config+ is our
    # configuration.
    def initialize(uri, soc, config={})
      @uri = uri
      @socket = soc
      @config = config
      @acl = config[:tcp_acl]
      @msg = DRbMessage.new(config)
      set_sockopt(@socket)
      @shutdown_pipe_r, @shutdown_pipe_w = IO.pipe
    end

    # Get the URI that we are connected to.
    attr_reader :uri

    # Get the address of our TCP peer (the other end of the socket
    # we are bound to.
    def peeraddr
      @socket.peeraddr
    end

    # Get the socket.
    def stream; @socket; end

    # On the client side, send a request to the server.
    def send_request(ref, msg_id, arg, b)
      @msg.send_request(stream, ref, msg_id, arg, b)
    end

    # On the server side, receive a request from the client.
    def recv_request
      @msg.recv_request(stream)
    end

    # On the server side, send a reply to the client.
    def send_reply(succ, result)
      @msg.send_reply(stream, succ, result)
    end

    # On the client side, receive a reply from the server.
    def recv_reply
      @msg.recv_reply(stream)
    end

    public

    # Close the connection.
    #
    # If this is an instance returned by #open_server, then this stops
    # listening for new connections altogether.  If this is an instance
    # returned by #open or by #accept, then it closes this particular
    # client-server session.
    def close
      if @socket
        @socket.close
        @socket = nil
      end
      close_shutdown_pipe
    end

    def close_shutdown_pipe
      if @shutdown_pipe_r && !@shutdown_pipe_r.closed?
        @shutdown_pipe_r.close
        @shutdown_pipe_r = nil
      end
      if @shutdown_pipe_w && !@shutdown_pipe_w.closed?
        @shutdown_pipe_w.close
        @shutdown_pipe_w = nil
      end
    end
    private :close_shutdown_pipe

    # On the server side, for an instance returned by #open_server,
    # accept a client connection and return a new instance to handle
    # the server's side of this client-server session.
    def accept
      while true
        s = accept_or_shutdown
        return nil unless s
        break if (@acl ? @acl.allow_socket?(s) : true)
        s.close
      end
      if @config[:tcp_original_host].to_s.size == 0
        uri = "druby://#{s.addr[3]}:#{@config[:tcp_port]}"
      else
        uri = @uri
      end
      self.class.new(uri, s, @config)
    end

    def accept_or_shutdown
      readables, = IO.select([@socket, @shutdown_pipe_r])
      if readables.include? @shutdown_pipe_r
        return nil
      end
      @socket.accept
    end
    private :accept_or_shutdown

    # Graceful shutdown
    def shutdown
      @shutdown_pipe_w.close if @shutdown_pipe_w && !@shutdown_pipe_w.closed?
    end

    # Check to see if this connection is alive.
    def alive?
      return false unless @socket
      if IO.select([@socket], nil, nil, 0)
        close
        return false
      end
      true
    end

    def set_sockopt(soc) # :nodoc:
      soc.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
      soc.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) if defined? Fcntl::FD_CLOEXEC
    end
  end

  module DRbProtocol
    @protocol = [DRbTCPSocket] # default
  end

  class DRbURIOption  # :nodoc:  I don't understand the purpose of this class...
    def initialize(option)
      @option = option.to_s
    end
    attr_reader :option
    def to_s; @option; end

    def ==(other)
      return false unless DRbURIOption === other
      @option == other.option
    end

    def hash
      @option.hash
    end

    alias eql? ==
  end

  # Object wrapping a reference to a remote drb object.
  #
  # Method calls on this object are relayed to the remote
  # object that this object is a stub for.
  class DRbObject

    # Unmarshall a marshalled DRbObject.
    #
    # If the referenced object is located within the local server, then
    # the object itself is returned.  Otherwise, a new DRbObject is
    # created to act as a stub for the remote referenced object.
    def self._load(s)
      uri, ref = Marshal.load(s)

      if DRb.here?(uri)
        obj = DRb.to_obj(ref)
        if ((! obj.tainted?) && Thread.current[:drb_untaint])
          Thread.current[:drb_untaint].push(obj)
        end
        return obj
      end

      self.new_with(uri, ref)
    end

    # Creates a DRb::DRbObject given the reference information to the remote
    # host +uri+ and object +ref+.

    def self.new_with(uri, ref)
      it = self.allocate
      it.instance_variable_set(:@uri, uri)
      it.instance_variable_set(:@ref, ref)
      it
    end

    # Create a new DRbObject from a URI alone.
    def self.new_with_uri(uri)
      self.new(nil, uri)
    end

    # Marshall this object.
    #
    # The URI and ref of the object are marshalled.
    def _dump(lv)
      Marshal.dump([@uri, @ref])
    end

    # Create a new remote object stub.
    #
    # +obj+ is the (local) object we want to create a stub for.  Normally
    # this is +nil+.  +uri+ is the URI of the remote object that this
    # will be a stub for.
    def initialize(obj, uri=nil)
      @uri = nil
      @ref = nil
      if obj.nil?
        return if uri.nil?
        @uri, option = DRbProtocol.uri_option(uri, DRb.config)
        @ref = DRbURIOption.new(option) unless option.nil?
      else
        @uri = uri ? uri : (DRb.uri rescue nil)
        @ref = obj ? DRb.to_id(obj) : nil
      end
    end

    # Get the URI of the remote object.
    def __drburi
      @uri
    end

    # Get the reference of the object, if local.
    def __drbref
      @ref
    end

    undef :to_s
    undef :to_a if respond_to?(:to_a)

    # Routes respond_to? to the referenced remote object.
    def respond_to?(msg_id, priv=false)
      case msg_id
      when :_dump
        true
      when :marshal_dump
        false
      else
        method_missing(:respond_to?, msg_id, priv)
      end
    end

    # Routes method calls to the referenced remote object.
    def method_missing(msg_id, *a, &b)
      if DRb.here?(@uri)
        obj = DRb.to_obj(@ref)
        DRb.current_server.check_insecure_method(obj, msg_id)
        return obj.__send__(msg_id, *a, &b)
      end

      succ, result = self.class.with_friend(@uri) do
        DRbConn.open(@uri) do |conn|
          conn.send_message(self, msg_id, a, b)
        end
      end

      if succ
        return result
      elsif DRbUnknown === result
        raise result
      else
        bt = self.class.prepare_backtrace(@uri, result)
        result.set_backtrace(bt + caller)
        raise result
      end
    end

    # Given the +uri+ of another host executes the block provided.
    def self.with_friend(uri) # :nodoc:
      friend = DRb.fetch_server(uri)
      return yield() unless friend

      save = Thread.current['DRb']
      Thread.current['DRb'] = { 'server' => friend }
      return yield
    ensure
      Thread.current['DRb'] = save if friend
    end

    # Returns a modified backtrace from +result+ with the +uri+ where each call
    # in the backtrace came from.
    def self.prepare_backtrace(uri, result) # :nodoc:
      prefix = "(#{uri}) "
      bt = []
      result.backtrace.each do |x|
        break if /`__send__'$/ =~ x
        if /^\(druby:\/\// =~ x
          bt.push(x)
        else
          bt.push(prefix + x)
        end
      end
      bt
    end

    def pretty_print(q)   # :nodoc:
      q.pp_object(self)
    end

    def pretty_print_cycle(q)   # :nodoc:
      q.object_address_group(self) {
        q.breakable
        q.text '...'
      }
    end
  end

  # Class handling the connection between a DRbObject and the
  # server the real object lives on.
  #
  # This class maintains a pool of connections, to reduce the
  # overhead of starting and closing down connections for each
  # method call.
  #
  # This class is used internally by DRbObject.  The user does
  # not normally need to deal with it directly.
  class DRbConn
    POOL_SIZE = 16  # :nodoc:
    @mutex = Mutex.new
    @pool = []

    def self.open(remote_uri)  # :nodoc:
      begin
        conn = nil

        @mutex.synchronize do
          #FIXME
          new_pool = []
          @pool.each do |c|
            if conn.nil? and c.uri == remote_uri
              conn = c if c.alive?
            else
              new_pool.push c
            end
          end
          @pool = new_pool
        end

        conn = self.new(remote_uri) unless conn
        succ, result = yield(conn)
        return succ, result

      ensure
        if conn
          if succ
            @mutex.synchronize do
              @pool.unshift(conn)
              @pool.pop.close while @pool.size > POOL_SIZE
            end
          else
            conn.close
          end
        end
      end
    end

    def initialize(remote_uri)  # :nodoc:
      @uri = remote_uri
      @protocol = DRbProtocol.open(remote_uri, DRb.config)
    end
    attr_reader :uri  # :nodoc:

    def send_message(ref, msg_id, arg, block)  # :nodoc:
      @protocol.send_request(ref, msg_id, arg, block)
      @protocol.recv_reply
    end

    def close  # :nodoc:
      @protocol.close
      @protocol = nil
    end

    def alive?  # :nodoc:
      return false unless @protocol
      @protocol.alive?
    end
  end

  # Class representing a drb server instance.
  #
  # A DRbServer must be running in the local process before any incoming
  # dRuby calls can be accepted, or any local objects can be passed as
  # dRuby references to remote processes, even if those local objects are
  # never actually called remotely. You do not need to start a DRbServer
  # in the local process if you are only making outgoing dRuby calls
  # passing marshalled parameters.
  #
  # Unless multiple servers are being used, the local DRbServer is normally
  # started by calling DRb.start_service.
  class DRbServer
    @@acl = nil
    @@idconv = DRbIdConv.new
    @@secondary_server = nil
    @@argc_limit = 256
    @@load_limit = 256 * 102400
    @@verbose = false
    @@safe_level = 0

    # Set the default value for the :argc_limit option.
    #
    # See #new().  The initial default value is 256.
    def self.default_argc_limit(argc)
      @@argc_limit = argc
    end

    # Set the default value for the :load_limit option.
    #
    # See #new().  The initial default value is 25 MB.
    def self.default_load_limit(sz)
      @@load_limit = sz
    end

    # Set the default access control list to +acl+.  The default ACL is +nil+.
    #
    # See also DRb::ACL and #new()
    def self.default_acl(acl)
      @@acl = acl
    end

    # Set the default value for the :id_conv option.
    #
    # See #new().  The initial default value is a DRbIdConv instance.
    def self.default_id_conv(idconv)
      @@idconv = idconv
    end

    # Set the default safe level to +level+.  The default safe level is 0
    #
    # See #new for more information.
    def self.default_safe_level(level)
      @@safe_level = level
    end

    # Set the default value of the :verbose option.
    #
    # See #new().  The initial default value is false.
    def self.verbose=(on)
      @@verbose = on
    end

    # Get the default value of the :verbose option.
    def self.verbose
      @@verbose
    end

    def self.make_config(hash={})  # :nodoc:
      default_config = {
        :idconv => @@idconv,
        :verbose => @@verbose,
        :tcp_acl => @@acl,
        :load_limit => @@load_limit,
        :argc_limit => @@argc_limit,
        :safe_level => @@safe_level
      }
      default_config.update(hash)
    end

    # Create a new DRbServer instance.
    #
    # +uri+ is the URI to bind to.  This is normally of the form
    # 'druby://<hostname>:<port>' where <hostname> is a hostname of
    # the local machine.  If nil, then the system's default hostname
    # will be bound to, on a port selected by the system; these value
    # can be retrieved from the +uri+ attribute.  'druby:' specifies
    # the default dRuby transport protocol: another protocol, such
    # as 'drbunix:', can be specified instead.
    #
    # +front+ is the front object for the server, that is, the object
    # to which remote method calls on the server will be passed.  If
    # nil, then the server will not accept remote method calls.
    #
    # If +config_or_acl+ is a hash, it is the configuration to
    # use for this server.  The following options are recognised:
    #
    # :idconv :: an id-to-object conversion object.  This defaults
    #            to an instance of the class DRb::DRbIdConv.
    # :verbose :: if true, all unsuccessful remote calls on objects
    #             in the server will be logged to $stdout. false
    #             by default.
    # :tcp_acl :: the access control list for this server.  See
    #             the ACL class from the main dRuby distribution.
    # :load_limit :: the maximum message size in bytes accepted by
    #                the server.  Defaults to 25 MB (26214400).
    # :argc_limit :: the maximum number of arguments to a remote
    #                method accepted by the server.  Defaults to
    #                256.
    # :safe_level :: The safe level of the DRbServer.  The attribute
    #                sets $SAFE for methods performed in the main_loop.
    #                Defaults to 0.
    #
    # The default values of these options can be modified on
    # a class-wide basis by the class methods #default_argc_limit,
    # #default_load_limit, #default_acl, #default_id_conv,
    # and #verbose=
    #
    # If +config_or_acl+ is not a hash, but is not nil, it is
    # assumed to be the access control list for this server.
    # See the :tcp_acl option for more details.
    #
    # If no other server is currently set as the primary server,
    # this will become the primary server.
    #
    # The server will immediately start running in its own thread.
    def initialize(uri=nil, front=nil, config_or_acl=nil)
      if Hash === config_or_acl
        config = config_or_acl.dup
      else
        acl = config_or_acl || @@acl
        config = {
          :tcp_acl => acl
        }
      end

      @config = self.class.make_config(config)

      @protocol = DRbProtocol.open_server(uri, @config)
      @uri = @protocol.uri
      @exported_uri = [@uri]

      @front = front
      @idconv = @config[:idconv]
      @safe_level = @config[:safe_level]

      @grp = ThreadGroup.new
      @thread = run

      DRb.regist_server(self)
    end

    # The URI of this DRbServer.
    attr_reader :uri

    # The main thread of this DRbServer.
    #
    # This is the thread that listens for and accepts connections
    # from clients, not that handles each client's request-response
    # session.
    attr_reader :thread

    # The front object of the DRbServer.
    #
    # This object receives remote method calls made on the server's
    # URI alone, with an object id.
    attr_reader :front

    # The configuration of this DRbServer
    attr_reader :config

    # The safe level for this server.  This is a number corresponding to
    # $SAFE.
    #
    # The default safe_level is 0
    attr_reader :safe_level

    # Set whether to operate in verbose mode.
    #
    # In verbose mode, failed calls are logged to stdout.
    def verbose=(v); @config[:verbose]=v; end

    # Get whether the server is in verbose mode.
    #
    # In verbose mode, failed calls are logged to stdout.
    def verbose; @config[:verbose]; end

    # Is this server alive?
    def alive?
      @thread.alive?
    end

    # Is +uri+ the URI for this server?
    def here?(uri)
      @exported_uri.include?(uri)
    end

    # Stop this server.
    def stop_service
      DRb.remove_server(self)
      if  Thread.current['DRb'] && Thread.current['DRb']['server'] == self
        Thread.current['DRb']['stop_service'] = true
      else
        if @protocol.respond_to? :shutdown
          @protocol.shutdown
        else
          @thread.kill # xxx: Thread#kill
        end
        @thread.join
      end
    end

    # Convert a dRuby reference to the local object it refers to.
    def to_obj(ref)
      return front if ref.nil?
      return front[ref.to_s] if DRbURIOption === ref
      @idconv.to_obj(ref)
    end

    # Convert a local object to a dRuby reference.
    def to_id(obj)
      return nil if obj.__id__ == front.__id__
      @idconv.to_id(obj)
    end

    private

    ##
    # Starts the DRb main loop in a new thread.

    def run
      Thread.start do
        begin
          while main_loop
          end
        ensure
          @protocol.close if @protocol
        end
      end
    end

    # List of insecure methods.
    #
    # These methods are not callable via dRuby.
    INSECURE_METHOD = [
      :__send__
    ]

    # Has a method been included in the list of insecure methods?
    def insecure_method?(msg_id)
      INSECURE_METHOD.include?(msg_id)
    end

    # Coerce an object to a string, providing our own representation if
    # to_s is not defined for the object.
    def any_to_s(obj)
      obj.to_s + ":#{obj.class}"
    rescue
      sprintf("#<%s:0x%lx>", obj.class, obj.__id__)
    end

    # Check that a method is callable via dRuby.
    #
    # +obj+ is the object we want to invoke the method on. +msg_id+ is the
    # method name, as a Symbol.
    #
    # If the method is an insecure method (see #insecure_method?) a
    # SecurityError is thrown.  If the method is private or undefined,
    # a NameError is thrown.
    def check_insecure_method(obj, msg_id)
      return true if Proc === obj && msg_id == :__drb_yield
      raise(ArgumentError, "#{any_to_s(msg_id)} is not a symbol") unless Symbol == msg_id.class
      raise(SecurityError, "insecure method `#{msg_id}'") if insecure_method?(msg_id)

      if obj.private_methods.include?(msg_id)
        desc = any_to_s(obj)
        raise NoMethodError, "private method `#{msg_id}' called for #{desc}"
      elsif obj.protected_methods.include?(msg_id)
        desc = any_to_s(obj)
        raise NoMethodError, "protected method `#{msg_id}' called for #{desc}"
      else
        true
      end
    end
    public :check_insecure_method

    class InvokeMethod  # :nodoc:
      def initialize(drb_server, client)
        @drb_server = drb_server
        @safe_level = drb_server.safe_level
        @client = client
      end

      def perform
        @result = nil
        @succ = false
        setup_message

        if $SAFE < @safe_level
          info = Thread.current['DRb']
          if @block
            @result = Thread.new {
              Thread.current['DRb'] = info
              $SAFE = @safe_level
              perform_with_block
            }.value
          else
            @result = Thread.new {
              Thread.current['DRb'] = info
              $SAFE = @safe_level
              perform_without_block
            }.value
          end
        else
          if @block
            @result = perform_with_block
          else
            @result = perform_without_block
          end
        end
        @succ = true
        if @msg_id == :to_ary && @result.class == Array
          @result = DRbArray.new(@result)
        end
        return @succ, @result
      rescue StandardError, ScriptError, Interrupt
        @result = $!
        return @succ, @result
      end

      private
      def init_with_client
        obj, msg, argv, block = @client.recv_request
        @obj = obj
        @msg_id = msg.intern
        @argv = argv
        @block = block
      end

      def check_insecure_method
        @drb_server.check_insecure_method(@obj, @msg_id)
      end

      def setup_message
        init_with_client
        check_insecure_method
      end

      def perform_without_block
        if Proc === @obj && @msg_id == :__drb_yield
          if @argv.size == 1
            ary = @argv
          else
            ary = [@argv]
          end
          ary.collect(&@obj)[0]
        else
          @obj.__send__(@msg_id, *@argv)
        end
      end

    end

    require 'drb/invokemethod'
    class InvokeMethod
      include InvokeMethod18Mixin
    end

    # The main loop performed by a DRbServer's internal thread.
    #
    # Accepts a connection from a client, and starts up its own
    # thread to handle it.  This thread loops, receiving requests
    # from the client, invoking them on a local object, and
    # returning responses, until the client closes the connection
    # or a local method call fails.
    def main_loop
      client0 = @protocol.accept
      return nil if !client0
      Thread.start(client0) do |client|
        @grp.add Thread.current
        Thread.current['DRb'] = { 'client' => client ,
                                  'server' => self }
        DRb.mutex.synchronize do
          client_uri = client.uri
          @exported_uri << client_uri unless @exported_uri.include?(client_uri)
        end
        loop do
          begin
            succ = false
            invoke_method = InvokeMethod.new(self, client)
            succ, result = invoke_method.perform
            if !succ && verbose
              p result
              result.backtrace.each do |x|
                puts x
              end
            end
            client.send_reply(succ, result) rescue nil
          ensure
            client.close unless succ
            if Thread.current['DRb']['stop_service']
              Thread.new { stop_service }
            end
            break unless succ
          end
        end
      end
    end
  end

  @primary_server = nil

  # Start a dRuby server locally.
  #
  # The new dRuby server will become the primary server, even
  # if another server is currently the primary server.
  #
  # +uri+ is the URI for the server to bind to.  If nil,
  # the server will bind to random port on the default local host
  # name and use the default dRuby protocol.
  #
  # +front+ is the server's front object.  This may be nil.
  #
  # +config+ is the configuration for the new server.  This may
  # be nil.
  #
  # See DRbServer::new.
  def start_service(uri=nil, front=nil, config=nil)
    @primary_server = DRbServer.new(uri, front, config)
  end
  module_function :start_service

  # The primary local dRuby server.
  #
  # This is the server created by the #start_service call.
  attr_accessor :primary_server
  module_function :primary_server=, :primary_server

  # Get the 'current' server.
  #
  # In the context of execution taking place within the main
  # thread of a dRuby server (typically, as a result of a remote
  # call on the server or one of its objects), the current
  # server is that server.  Otherwise, the current server is
  # the primary server.
  #
  # If the above rule fails to find a server, a DRbServerNotFound
  # error is raised.
  def current_server
    drb = Thread.current['DRb']
    server = (drb && drb['server']) ? drb['server'] : @primary_server
    raise DRbServerNotFound unless server
    return server
  end
  module_function :current_server

  # Stop the local dRuby server.
  #
  # This operates on the primary server.  If there is no primary
  # server currently running, it is a noop.
  def stop_service
    @primary_server.stop_service if @primary_server
    @primary_server = nil
  end
  module_function :stop_service

  # Get the URI defining the local dRuby space.
  #
  # This is the URI of the current server.  See #current_server.
  def uri
    drb = Thread.current['DRb']
    client = (drb && drb['client'])
    if client
      uri = client.uri
      return uri if uri
    end
    current_server.uri
  end
  module_function :uri

  # Is +uri+ the URI for the current local server?
  def here?(uri)
    current_server.here?(uri) rescue false
    # (current_server.uri rescue nil) == uri
  end
  module_function :here?

  # Get the configuration of the current server.
  #
  # If there is no current server, this returns the default configuration.
  # See #current_server and DRbServer::make_config.
  def config
    current_server.config
  rescue
    DRbServer.make_config
  end
  module_function :config

  # Get the front object of the current server.
  #
  # This raises a DRbServerNotFound error if there is no current server.
  # See #current_server.
  def front
    current_server.front
  end
  module_function :front

  # Convert a reference into an object using the current server.
  #
  # This raises a DRbServerNotFound error if there is no current server.
  # See #current_server.
  def to_obj(ref)
    current_server.to_obj(ref)
  end

  # Get a reference id for an object using the current server.
  #
  # This raises a DRbServerNotFound error if there is no current server.
  # See #current_server.
  def to_id(obj)
    current_server.to_id(obj)
  end
  module_function :to_id
  module_function :to_obj

  # Get the thread of the primary server.
  #
  # This returns nil if there is no primary server.  See #primary_server.
  def thread
    @primary_server ? @primary_server.thread : nil
  end
  module_function :thread

  # Set the default id conversion object.
  #
  # This is expected to be an instance such as DRb::DRbIdConv that responds to
  # #to_id and #to_obj that can convert objects to and from DRb references.
  #
  # See DRbServer#default_id_conv.
  def install_id_conv(idconv)
    DRbServer.default_id_conv(idconv)
  end
  module_function :install_id_conv

  # Set the default ACL to +acl+.
  #
  # See DRb::DRbServer.default_acl.
  def install_acl(acl)
    DRbServer.default_acl(acl)
  end
  module_function :install_acl

  @mutex = Mutex.new
  def mutex # :nodoc:
    @mutex
  end
  module_function :mutex

  @server = {}
  # Registers +server+ with DRb.
  #
  # This is called when a new DRb::DRbServer is created.
  #
  # If there is no primary server then +server+ becomes the primary server.
  #
  # Example:
  #
  #  require 'drb'
  #
  #  s = DRb::DRbServer.new # automatically calls regist_server
  #  DRb.fetch_server s.uri #=> #<DRb::DRbServer:0x...>
  def regist_server(server)
    @server[server.uri] = server
    mutex.synchronize do
      @primary_server = server unless @primary_server
    end
  end
  module_function :regist_server

  # Removes +server+ from the list of registered servers.
  def remove_server(server)
    @server.delete(server.uri)
  end
  module_function :remove_server

  # Retrieves the server with the given +uri+.
  #
  # See also regist_server and remove_server.
  def fetch_server(uri)
    @server[uri]
  end
  module_function :fetch_server
end

# :stopdoc:
DRbObject = DRb::DRbObject
DRbUndumped = DRb::DRbUndumped
DRbIdConv = DRb::DRbIdConv
lib64/ruby/2.2.0/drb/unix.rb000064400000005430150402106050011156 0ustar00require 'socket'
require 'drb/drb'
require 'tmpdir'

raise(LoadError, "UNIXServer is required") unless defined?(UNIXServer)

module DRb

  # Implements DRb over a UNIX socket
  #
  # DRb UNIX socket URIs look like <code>drbunix:<path>?<option></code>.  The
  # option is optional.

  class DRbUNIXSocket < DRbTCPSocket
    # :stopdoc:
    def self.parse_uri(uri)
      if /^drbunix:(.*?)(\?(.*))?$/ =~ uri
        filename = $1
        option = $3
        [filename, option]
      else
        raise(DRbBadScheme, uri) unless uri =~ /^drbunix:/
        raise(DRbBadURI, 'can\'t parse uri:' + uri)
      end
    end

    def self.open(uri, config)
      filename, = parse_uri(uri)
      filename.untaint
      soc = UNIXSocket.open(filename)
      self.new(uri, soc, config)
    end

    def self.open_server(uri, config)
      filename, = parse_uri(uri)
      if filename.size == 0
        soc = temp_server
        filename = soc.path
        uri = 'drbunix:' + soc.path
      else
        soc = UNIXServer.open(filename)
      end
      owner = config[:UNIXFileOwner]
      group = config[:UNIXFileGroup]
      if owner || group
        require 'etc'
        owner = Etc.getpwnam( owner ).uid  if owner
        group = Etc.getgrnam( group ).gid  if group
        File.chown owner, group, filename
      end
      mode = config[:UNIXFileMode]
      File.chmod(mode, filename) if mode

      self.new(uri, soc, config, true)
    end

    def self.uri_option(uri, config)
      filename, option = parse_uri(uri)
      return "drbunix:#{filename}", option
    end

    def initialize(uri, soc, config={}, server_mode = false)
      super(uri, soc, config)
      set_sockopt(@socket)
      @server_mode = server_mode
      @acl = nil
    end

    # import from tempfile.rb
    Max_try = 10
    private
    def self.temp_server
      tmpdir = Dir::tmpdir
      n = 0
      while true
        begin
          tmpname = sprintf('%s/druby%d.%d', tmpdir, $$, n)
          lock = tmpname + '.lock'
          unless File.exist?(tmpname) or File.exist?(lock)
            Dir.mkdir(lock)
            break
          end
        rescue
          raise "cannot generate tempfile `%s'" % tmpname if n >= Max_try
          #sleep(1)
        end
        n += 1
      end
      soc = UNIXServer.new(tmpname)
      Dir.rmdir(lock)
      soc
    end

    public
    def close
      return unless @socket
      path = @socket.path if @server_mode
      @socket.close
      File.unlink(path) if @server_mode
      @socket = nil
      close_shutdown_pipe
    end

    def accept
      s = accept_or_shutdown
      return nil unless s
      self.class.new(nil, s, @config)
    end

    def set_sockopt(soc)
      soc.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) if defined? Fcntl::FD_CLOEXEC
    end
  end

  DRbProtocol.add_protocol(DRbUNIXSocket)
  # :startdoc:
end
lib64/ruby/2.2.0/drb/observer.rb000064400000001174150402106050012023 0ustar00require 'observer'

module DRb
  # The Observable module extended to DRb.  See Observable for details.
  module DRbObservable
    include Observable

    # Notifies observers of a change in state.  See also
    # Observable#notify_observers
    def notify_observers(*arg)
      if defined? @observer_state and @observer_state
        if defined? @observer_peers
          @observer_peers.each do |observer, method|
            begin
              observer.send(method, *arg)
            rescue
              delete_observer(observer)
            end
          end
        end
        @observer_state = false
      end
    end
  end
end
lib64/ruby/2.2.0/sync.rb000064400000016405150402106050010404 0ustar00#
#   sync.rb - 2 phase lock with counter
#       $Release Version: 1.0$
#       $Revision: 40825 $
#       by Keiju ISHITSUKA(keiju@ishitsuka.com)
#
# --
#  Sync_m, Synchronizer_m
#  Usage:
#   obj.extend(Sync_m)
#   or
#   class Foo
#       include Sync_m
#       :
#   end
#
#   Sync_m#sync_mode
#   Sync_m#sync_locked?, locked?
#   Sync_m#sync_shared?, shared?
#   Sync_m#sync_exclusive?, sync_exclusive?
#   Sync_m#sync_try_lock, try_lock
#   Sync_m#sync_lock, lock
#   Sync_m#sync_unlock, unlock
#
#  Sync, Synchronizer:
#  Usage:
#   sync = Sync.new
#
#   Sync#mode
#   Sync#locked?
#   Sync#shared?
#   Sync#exclusive?
#   Sync#try_lock(mode) -- mode = :EX, :SH, :UN
#   Sync#lock(mode)     -- mode = :EX, :SH, :UN
#   Sync#unlock
#   Sync#synchronize(mode) {...}
#
#

unless defined? Thread
  raise "Thread not available for this ruby interpreter"
end

##
# A module that provides a two-phase lock with a counter.

module Sync_m
  # lock mode
  UN = :UN
  SH = :SH
  EX = :EX

  # exceptions
  class Err < StandardError
    def Err.Fail(*opt)
      fail self, sprintf(self::Message, *opt)
    end

    class UnknownLocker < Err
      Message = "Thread(%s) not locked."
      def UnknownLocker.Fail(th)
        super(th.inspect)
      end
    end

    class LockModeFailer < Err
      Message = "Unknown lock mode(%s)"
      def LockModeFailer.Fail(mode)
        if mode.id2name
          mode = id2name
        end
        super(mode)
      end
    end
  end

  def Sync_m.define_aliases(cl)
    cl.module_eval %q{
      alias locked? sync_locked?
      alias shared? sync_shared?
      alias exclusive? sync_exclusive?
      alias lock sync_lock
      alias unlock sync_unlock
      alias try_lock sync_try_lock
      alias synchronize sync_synchronize
    }
  end

  def Sync_m.append_features(cl)
    super
    # do nothing for Modules
    # make aliases for Classes.
    define_aliases(cl) unless cl.instance_of?(Module)
    self
  end

  def Sync_m.extend_object(obj)
    super
    obj.sync_extend
  end

  def sync_extend
    unless (defined? locked? and
            defined? shared? and
            defined? exclusive? and
            defined? lock and
            defined? unlock and
            defined? try_lock and
            defined? synchronize)
      Sync_m.define_aliases(singleton_class)
    end
    sync_initialize
  end

  # accessing
  def sync_locked?
    sync_mode != UN
  end

  def sync_shared?
    sync_mode == SH
  end

  def sync_exclusive?
    sync_mode == EX
  end

  # locking methods.
  def sync_try_lock(mode = EX)
    return unlock if mode == UN
    @sync_mutex.synchronize do
      sync_try_lock_sub(mode)
    end
  end

  def sync_lock(m = EX)
    return unlock if m == UN
    Thread.handle_interrupt(StandardError => :on_blocking) do
      while true
        @sync_mutex.synchronize do
          begin
            if sync_try_lock_sub(m)
              return self
            else
              if sync_sh_locker[Thread.current]
                sync_upgrade_waiting.push [Thread.current, sync_sh_locker[Thread.current]]
                sync_sh_locker.delete(Thread.current)
              else
                unless sync_waiting.include?(Thread.current) || sync_upgrade_waiting.reverse_each.any?{|w| w.first == Thread.current }
                  sync_waiting.push Thread.current
                end
              end
              @sync_mutex.sleep
            end
          ensure
            sync_waiting.delete(Thread.current)
          end
        end
      end
    end
    self
  end

  def sync_unlock(m = EX)
    wakeup_threads = []
    @sync_mutex.synchronize do
      if sync_mode == UN
        Err::UnknownLocker.Fail(Thread.current)
      end

      m = sync_mode if m == EX and sync_mode == SH

      runnable = false
      case m
      when UN
        Err::UnknownLocker.Fail(Thread.current)

      when EX
        if sync_ex_locker == Thread.current
          if (self.sync_ex_count = sync_ex_count - 1) == 0
            self.sync_ex_locker = nil
            if sync_sh_locker.include?(Thread.current)
              self.sync_mode = SH
            else
              self.sync_mode = UN
            end
            runnable = true
          end
        else
          Err::UnknownLocker.Fail(Thread.current)
        end

      when SH
        if (count = sync_sh_locker[Thread.current]).nil?
          Err::UnknownLocker.Fail(Thread.current)
        else
          if (sync_sh_locker[Thread.current] = count - 1) == 0
            sync_sh_locker.delete(Thread.current)
            if sync_sh_locker.empty? and sync_ex_count == 0
              self.sync_mode = UN
              runnable = true
            end
          end
        end
      end

      if runnable
        if sync_upgrade_waiting.size > 0
          th, count = sync_upgrade_waiting.shift
          sync_sh_locker[th] = count
          th.wakeup
          wakeup_threads.push th
        else
          wait = sync_waiting
          self.sync_waiting = []
          for th in wait
            th.wakeup
            wakeup_threads.push th
          end
        end
      end
    end
    for th in wakeup_threads
      th.run
    end
    self
  end

  def sync_synchronize(mode = EX)
    Thread.handle_interrupt(StandardError => :on_blocking) do
      sync_lock(mode)
      begin
        yield
      ensure
        sync_unlock
      end
    end
  end

  attr_accessor :sync_mode

  attr_accessor :sync_waiting
  attr_accessor :sync_upgrade_waiting
  attr_accessor :sync_sh_locker
  attr_accessor :sync_ex_locker
  attr_accessor :sync_ex_count

  def sync_inspect
    sync_iv = instance_variables.select{|iv| /^@sync_/ =~ iv.id2name}.collect{|iv| iv.id2name + '=' + instance_eval(iv.id2name).inspect}.join(",")
    print "<#{self.class}.extend Sync_m: #{inspect}, <Sync_m: #{sync_iv}>"
  end

  private

  def sync_initialize
    @sync_mode = UN
    @sync_waiting = []
    @sync_upgrade_waiting = []
    @sync_sh_locker = Hash.new
    @sync_ex_locker = nil
    @sync_ex_count = 0

    @sync_mutex = Mutex.new
  end

  def initialize(*args)
    super
    sync_initialize
  end

  def sync_try_lock_sub(m)
    case m
    when SH
      case sync_mode
      when UN
        self.sync_mode = m
        sync_sh_locker[Thread.current] = 1
        ret = true
      when SH
        count = 0 unless count = sync_sh_locker[Thread.current]
        sync_sh_locker[Thread.current] = count + 1
        ret = true
      when EX
        # in EX mode, lock will upgrade to EX lock
        if sync_ex_locker == Thread.current
          self.sync_ex_count = sync_ex_count + 1
          ret = true
        else
          ret = false
        end
      end
    when EX
      if sync_mode == UN or
          sync_mode == SH && sync_sh_locker.size == 1 && sync_sh_locker.include?(Thread.current)
        self.sync_mode = m
        self.sync_ex_locker = Thread.current
        self.sync_ex_count = 1
        ret = true
      elsif sync_mode == EX && sync_ex_locker == Thread.current
        self.sync_ex_count = sync_ex_count + 1
        ret = true
      else
        ret = false
      end
    else
      Err::LockModeFailer.Fail mode
    end
    return ret
  end
end

##
# An alias for Sync_m from sync.rb

Synchronizer_m = Sync_m

##
# A class that provides two-phase lock with a counter.  See Sync_m for
# details.

class Sync
  include Sync_m
end

##
# An alias for Sync from sync.rb.  See Sync_m for details.

Synchronizer = Sync
lib64/ruby/2.2.0/set.rb000064400000046225150402106050010226 0ustar00#--
# set.rb - defines the Set class
#++
# Copyright (c) 2002-2013 Akinori MUSHA <knu@iDaemons.org>
#
# Documentation by Akinori MUSHA and Gavin Sinclair.
#
# All rights reserved.  You can redistribute and/or modify it under the same
# terms as Ruby.
#
#   $Id: set.rb 47085 2014-08-06 11:28:21Z knu $
#
# == Overview
#
# This library provides the Set class, which deals with a collection
# of unordered values with no duplicates.  It is a hybrid of Array's
# intuitive inter-operation facilities and Hash's fast lookup.  If you
# need to keep values sorted in some order, use the SortedSet class.
#
# The method +to_set+ is added to Enumerable for convenience.
#
# See the Set and SortedSet documentation for examples of usage.


#
# Set implements a collection of unordered values with no duplicates.
# This is a hybrid of Array's intuitive inter-operation facilities and
# Hash's fast lookup.
#
# Set is easy to use with Enumerable objects (implementing +each+).
# Most of the initializer methods and binary operators accept generic
# Enumerable objects besides sets and arrays.  An Enumerable object
# can be converted to Set using the +to_set+ method.
#
# Set uses Hash as storage, so you must note the following points:
#
# * Equality of elements is determined according to Object#eql? and
#   Object#hash.
# * Set assumes that the identity of each element does not change
#   while it is stored.  Modifying an element of a set will render the
#   set to an unreliable state.
# * When a string is to be stored, a frozen copy of the string is
#   stored instead unless the original string is already frozen.
#
# == Comparison
#
# The comparison operators <, >, <= and >= are implemented as
# shorthand for the {proper_,}{subset?,superset?} methods.  However,
# the <=> operator is intentionally left out because not every pair of
# sets is comparable. ({x,y} vs. {x,z} for example)
#
# == Example
#
#   require 'set'
#   s1 = Set.new [1, 2]                   # -> #<Set: {1, 2}>
#   s2 = [1, 2].to_set                    # -> #<Set: {1, 2}>
#   s1 == s2                              # -> true
#   s1.add("foo")                         # -> #<Set: {1, 2, "foo"}>
#   s1.merge([2, 6])                      # -> #<Set: {1, 2, "foo", 6}>
#   s1.subset? s2                         # -> false
#   s2.subset? s1                         # -> true
#
# == Contact
#
#   - Akinori MUSHA <knu@iDaemons.org> (current maintainer)
#
class Set
  include Enumerable

  # Creates a new set containing the given objects.
  def self.[](*ary)
    new(ary)
  end

  # Creates a new set containing the elements of the given enumerable
  # object.
  #
  # If a block is given, the elements of enum are preprocessed by the
  # given block.
  def initialize(enum = nil, &block) # :yields: o
    @hash ||= Hash.new

    enum.nil? and return

    if block
      do_with_enum(enum) { |o| add(block[o]) }
    else
      merge(enum)
    end
  end

  def do_with_enum(enum, &block) # :nodoc:
    if enum.respond_to?(:each_entry)
      enum.each_entry(&block) if block
    elsif enum.respond_to?(:each)
      enum.each(&block) if block
    else
      raise ArgumentError, "value must be enumerable"
    end
  end
  private :do_with_enum

  # Dup internal hash.
  def initialize_dup(orig)
    super
    @hash = orig.instance_variable_get(:@hash).dup
  end

  # Clone internal hash.
  def initialize_clone(orig)
    super
    @hash = orig.instance_variable_get(:@hash).clone
  end

  def freeze    # :nodoc:
    @hash.freeze
    super
  end

  def taint     # :nodoc:
    @hash.taint
    super
  end

  def untaint   # :nodoc:
    @hash.untaint
    super
  end

  # Returns the number of elements.
  def size
    @hash.size
  end
  alias length size

  # Returns true if the set contains no elements.
  def empty?
    @hash.empty?
  end

  # Removes all elements and returns self.
  def clear
    @hash.clear
    self
  end

  # Replaces the contents of the set with the contents of the given
  # enumerable object and returns self.
  def replace(enum)
    if enum.instance_of?(self.class)
      @hash.replace(enum.instance_variable_get(:@hash))
      self
    else
      do_with_enum(enum)
      clear
      merge(enum)
    end
  end

  # Converts the set to an array.  The order of elements is uncertain.
  def to_a
    @hash.keys
  end

  # Returns self if no arguments are given.  Otherwise, converts the
  # set to another with klass.new(self, *args, &block).
  #
  # In subclasses, returns klass.new(self, *args, &block) unless
  # overridden.
  def to_set(klass = Set, *args, &block)
    return self if instance_of?(Set) && klass == Set && block.nil? && args.empty?
    klass.new(self, *args, &block)
  end

  def flatten_merge(set, seen = Set.new) # :nodoc:
    set.each { |e|
      if e.is_a?(Set)
        if seen.include?(e_id = e.object_id)
          raise ArgumentError, "tried to flatten recursive Set"
        end

        seen.add(e_id)
        flatten_merge(e, seen)
        seen.delete(e_id)
      else
        add(e)
      end
    }

    self
  end
  protected :flatten_merge

  # Returns a new set that is a copy of the set, flattening each
  # containing set recursively.
  def flatten
    self.class.new.flatten_merge(self)
  end

  # Equivalent to Set#flatten, but replaces the receiver with the
  # result in place.  Returns nil if no modifications were made.
  def flatten!
    if detect { |e| e.is_a?(Set) }
      replace(flatten())
    else
      nil
    end
  end

  # Returns true if the set contains the given object.
  def include?(o)
    @hash.include?(o)
  end
  alias member? include?

  # Returns true if the set is a superset of the given set.
  def superset?(set)
    set.is_a?(Set) or raise ArgumentError, "value must be a set"
    return false if size < set.size
    set.all? { |o| include?(o) }
  end
  alias >= superset?

  # Returns true if the set is a proper superset of the given set.
  def proper_superset?(set)
    set.is_a?(Set) or raise ArgumentError, "value must be a set"
    return false if size <= set.size
    set.all? { |o| include?(o) }
  end
  alias > proper_superset?

  # Returns true if the set is a subset of the given set.
  def subset?(set)
    set.is_a?(Set) or raise ArgumentError, "value must be a set"
    return false if set.size < size
    all? { |o| set.include?(o) }
  end
  alias <= subset?

  # Returns true if the set is a proper subset of the given set.
  def proper_subset?(set)
    set.is_a?(Set) or raise ArgumentError, "value must be a set"
    return false if set.size <= size
    all? { |o| set.include?(o) }
  end
  alias < proper_subset?

  # Returns true if the set and the given set have at least one
  # element in common.
  #
  # e.g.:
  #
  #   require 'set'
  #   Set[1, 2, 3].intersect? Set[4, 5] # => false
  #   Set[1, 2, 3].intersect? Set[3, 4] # => true
  def intersect?(set)
    set.is_a?(Set) or raise ArgumentError, "value must be a set"
    if size < set.size
      any? { |o| set.include?(o) }
    else
      set.any? { |o| include?(o) }
    end
  end

  # Returns true if the set and the given set have no element in
  # common.  This method is the opposite of +intersect?+.
  #
  # e.g.:
  #
  #   require 'set'
  #   Set[1, 2, 3].disjoint? Set[3, 4] # => false
  #   Set[1, 2, 3].disjoint? Set[4, 5] # => true

  def disjoint?(set)
    !intersect?(set)
  end

  # Calls the given block once for each element in the set, passing
  # the element as parameter.  Returns an enumerator if no block is
  # given.
  def each(&block)
    block or return enum_for(__method__)
    @hash.each_key(&block)
    self
  end

  # Adds the given object to the set and returns self.  Use +merge+ to
  # add many elements at once.
  def add(o)
    @hash[o] = true
    self
  end
  alias << add

  # Adds the given object to the set and returns self.  If the
  # object is already in the set, returns nil.
  def add?(o)
    if include?(o)
      nil
    else
      add(o)
    end
  end

  # Deletes the given object from the set and returns self.  Use +subtract+ to
  # delete many items at once.
  def delete(o)
    @hash.delete(o)
    self
  end

  # Deletes the given object from the set and returns self.  If the
  # object is not in the set, returns nil.
  def delete?(o)
    if include?(o)
      delete(o)
    else
      nil
    end
  end

  # Deletes every element of the set for which block evaluates to
  # true, and returns self.
  def delete_if
    block_given? or return enum_for(__method__)
    # @hash.delete_if should be faster, but using it breaks the order
    # of enumeration in subclasses.
    select { |o| yield o }.each { |o| @hash.delete(o) }
    self
  end

  # Deletes every element of the set for which block evaluates to
  # false, and returns self.
  def keep_if
    block_given? or return enum_for(__method__)
    # @hash.keep_if should be faster, but using it breaks the order of
    # enumeration in subclasses.
    reject { |o| yield o }.each { |o| @hash.delete(o) }
    self
  end

  # Replaces the elements with ones returned by collect().
  def collect!
    block_given? or return enum_for(__method__)
    set = self.class.new
    each { |o| set << yield(o) }
    replace(set)
  end
  alias map! collect!

  # Equivalent to Set#delete_if, but returns nil if no changes were
  # made.
  def reject!(&block)
    block or return enum_for(__method__)
    n = size
    delete_if(&block)
    size == n ? nil : self
  end

  # Equivalent to Set#keep_if, but returns nil if no changes were
  # made.
  def select!(&block)
    block or return enum_for(__method__)
    n = size
    keep_if(&block)
    size == n ? nil : self
  end

  # Merges the elements of the given enumerable object to the set and
  # returns self.
  def merge(enum)
    if enum.instance_of?(self.class)
      @hash.update(enum.instance_variable_get(:@hash))
    else
      do_with_enum(enum) { |o| add(o) }
    end

    self
  end

  # Deletes every element that appears in the given enumerable object
  # and returns self.
  def subtract(enum)
    do_with_enum(enum) { |o| delete(o) }
    self
  end

  # Returns a new set built by merging the set and the elements of the
  # given enumerable object.
  def |(enum)
    dup.merge(enum)
  end
  alias + |             ##
  alias union |         ##

  # Returns a new set built by duplicating the set, removing every
  # element that appears in the given enumerable object.
  def -(enum)
    dup.subtract(enum)
  end
  alias difference -    ##

  # Returns a new set containing elements common to the set and the
  # given enumerable object.
  def &(enum)
    n = self.class.new
    do_with_enum(enum) { |o| n.add(o) if include?(o) }
    n
  end
  alias intersection &  ##

  # Returns a new set containing elements exclusive between the set
  # and the given enumerable object.  (set ^ enum) is equivalent to
  # ((set | enum) - (set & enum)).
  def ^(enum)
    n = Set.new(enum)
    each { |o| if n.include?(o) then n.delete(o) else n.add(o) end }
    n
  end

  # Returns true if two sets are equal.  The equality of each couple
  # of elements is defined according to Object#eql?.
  def ==(other)
    if self.equal?(other)
      true
    elsif other.instance_of?(self.class)
      @hash == other.instance_variable_get(:@hash)
    elsif other.is_a?(Set) && self.size == other.size
      other.all? { |o| @hash.include?(o) }
    else
      false
    end
  end

  def hash      # :nodoc:
    @hash.hash
  end

  def eql?(o)   # :nodoc:
    return false unless o.is_a?(Set)
    @hash.eql?(o.instance_variable_get(:@hash))
  end

  # Classifies the set by the return value of the given block and
  # returns a hash of {value => set of elements} pairs.  The block is
  # called once for each element of the set, passing the element as
  # parameter.
  #
  # e.g.:
  #
  #   require 'set'
  #   files = Set.new(Dir.glob("*.rb"))
  #   hash = files.classify { |f| File.mtime(f).year }
  #   p hash    # => {2000=>#<Set: {"a.rb", "b.rb"}>,
  #             #     2001=>#<Set: {"c.rb", "d.rb", "e.rb"}>,
  #             #     2002=>#<Set: {"f.rb"}>}
  def classify # :yields: o
    block_given? or return enum_for(__method__)

    h = {}

    each { |i|
      x = yield(i)
      (h[x] ||= self.class.new).add(i)
    }

    h
  end

  # Divides the set into a set of subsets according to the commonality
  # defined by the given block.
  #
  # If the arity of the block is 2, elements o1 and o2 are in common
  # if block.call(o1, o2) is true.  Otherwise, elements o1 and o2 are
  # in common if block.call(o1) == block.call(o2).
  #
  # e.g.:
  #
  #   require 'set'
  #   numbers = Set[1, 3, 4, 6, 9, 10, 11]
  #   set = numbers.divide { |i,j| (i - j).abs == 1 }
  #   p set     # => #<Set: {#<Set: {1}>,
  #             #            #<Set: {11, 9, 10}>,
  #             #            #<Set: {3, 4}>,
  #             #            #<Set: {6}>}>
  def divide(&func)
    func or return enum_for(__method__)

    if func.arity == 2
      require 'tsort'

      class << dig = {}         # :nodoc:
        include TSort

        alias tsort_each_node each_key
        def tsort_each_child(node, &block)
          fetch(node).each(&block)
        end
      end

      each { |u|
        dig[u] = a = []
        each{ |v| func.call(u, v) and a << v }
      }

      set = Set.new()
      dig.each_strongly_connected_component { |css|
        set.add(self.class.new(css))
      }
      set
    else
      Set.new(classify(&func).values)
    end
  end

  InspectKey = :__inspect_key__         # :nodoc:

  # Returns a string containing a human-readable representation of the
  # set. ("#<Set: {element1, element2, ...}>")
  def inspect
    ids = (Thread.current[InspectKey] ||= [])

    if ids.include?(object_id)
      return sprintf('#<%s: {...}>', self.class.name)
    end

    begin
      ids << object_id
      return sprintf('#<%s: {%s}>', self.class, to_a.inspect[1..-2])
    ensure
      ids.pop
    end
  end

  def pretty_print(pp)  # :nodoc:
    pp.text sprintf('#<%s: {', self.class.name)
    pp.nest(1) {
      pp.seplist(self) { |o|
        pp.pp o
      }
    }
    pp.text "}>"
  end

  def pretty_print_cycle(pp)    # :nodoc:
    pp.text sprintf('#<%s: {%s}>', self.class.name, empty? ? '' : '...')
  end
end

#
# SortedSet implements a Set that guarantees that its elements are
# yielded in sorted order (according to the return values of their
# #<=> methods) when iterating over them.
#
# All elements that are added to a SortedSet must respond to the <=>
# method for comparison.
#
# Also, all elements must be <em>mutually comparable</em>: <tt>el1 <=>
# el2</tt> must not return <tt>nil</tt> for any elements <tt>el1</tt>
# and <tt>el2</tt>, else an ArgumentError will be raised when
# iterating over the SortedSet.
#
# == Example
#
#   require "set"
#
#   set = SortedSet.new([2, 1, 5, 6, 4, 5, 3, 3, 3])
#   ary = []
#
#   set.each do |obj|
#     ary << obj
#   end
#
#   p ary # => [1, 2, 3, 4, 5, 6]
#
#   set2 = SortedSet.new([1, 2, "3"])
#   set2.each { |obj| } # => raises ArgumentError: comparison of Fixnum with String failed
#
class SortedSet < Set
  @@setup = false

  class << self
    def [](*ary)        # :nodoc:
      new(ary)
    end

    def setup   # :nodoc:
      @@setup and return

      module_eval {
        # a hack to shut up warning
        alias old_init initialize
      }
      begin
        require 'rbtree'

        module_eval <<-END, __FILE__, __LINE__+1
          def initialize(*args)
            @hash = RBTree.new
            super
          end

          def add(o)
            o.respond_to?(:<=>) or raise ArgumentError, "value must respond to <=>"
            super
          end
          alias << add
        END
      rescue LoadError
        module_eval <<-END, __FILE__, __LINE__+1
          def initialize(*args)
            @keys = nil
            super
          end

          def clear
            @keys = nil
            super
          end

          def replace(enum)
            @keys = nil
            super
          end

          def add(o)
            o.respond_to?(:<=>) or raise ArgumentError, "value must respond to <=>"
            @keys = nil
            super
          end
          alias << add

          def delete(o)
            @keys = nil
            @hash.delete(o)
            self
          end

          def delete_if
            block_given? or return enum_for(__method__)
            n = @hash.size
            super
            @keys = nil if @hash.size != n
            self
          end

          def keep_if
            block_given? or return enum_for(__method__)
            n = @hash.size
            super
            @keys = nil if @hash.size != n
            self
          end

          def merge(enum)
            @keys = nil
            super
          end

          def each(&block)
            block or return enum_for(__method__)
            to_a.each(&block)
            self
          end

          def to_a
            (@keys = @hash.keys).sort! unless @keys
            @keys
          end
        END
      end
      module_eval {
        # a hack to shut up warning
        remove_method :old_init
      }

      @@setup = true
    end
  end

  def initialize(*args, &block) # :nodoc:
    SortedSet.setup
    initialize(*args, &block)
  end
end

module Enumerable
  # Makes a set from the enumerable object with given arguments.
  # Needs to +require "set"+ to use this method.
  def to_set(klass = Set, *args, &block)
    klass.new(self, *args, &block)
  end
end

# =begin
# == RestricedSet class
# RestricedSet implements a set with restrictions defined by a given
# block.
#
# === Super class
#     Set
#
# === Class Methods
# --- RestricedSet::new(enum = nil) { |o| ... }
# --- RestricedSet::new(enum = nil) { |rset, o| ... }
#     Creates a new restricted set containing the elements of the given
#     enumerable object.  Restrictions are defined by the given block.
#
#     If the block's arity is 2, it is called with the RestrictedSet
#     itself and an object to see if the object is allowed to be put in
#     the set.
#
#     Otherwise, the block is called with an object to see if the object
#     is allowed to be put in the set.
#
# === Instance Methods
# --- restriction_proc
#     Returns the restriction procedure of the set.
#
# =end
#
# class RestricedSet < Set
#   def initialize(*args, &block)
#     @proc = block or raise ArgumentError, "missing a block"
#
#     if @proc.arity == 2
#       instance_eval %{
#       def add(o)
#         @hash[o] = true if @proc.call(self, o)
#         self
#       end
#       alias << add
#
#       def add?(o)
#         if include?(o) || !@proc.call(self, o)
#           nil
#         else
#           @hash[o] = true
#           self
#         end
#       end
#
#       def replace(enum)
#         enum.respond_to?(:each) or raise ArgumentError, "value must be enumerable"
#         clear
#         enum.each_entry { |o| add(o) }
#
#         self
#       end
#
#       def merge(enum)
#         enum.respond_to?(:each) or raise ArgumentError, "value must be enumerable"
#         enum.each_entry { |o| add(o) }
#
#         self
#       end
#       }
#     else
#       instance_eval %{
#       def add(o)
#         if @proc.call(o)
#           @hash[o] = true
#         end
#         self
#       end
#       alias << add
#
#       def add?(o)
#         if include?(o) || !@proc.call(o)
#           nil
#         else
#           @hash[o] = true
#           self
#         end
#       end
#       }
#     end
#
#     super(*args)
#   end
#
#   def restriction_proc
#     @proc
#   end
# end

# Tests have been moved to test/test_set.rb.
lib64/ruby/2.2.0/digest/sha2.rb000064400000005015150402106050011537 0ustar00#--
# sha2.rb - defines Digest::SHA2 class which wraps up the SHA256,
#           SHA384, and SHA512 classes.
#++
# Copyright (c) 2006 Akinori MUSHA <knu@iDaemons.org>
#
# All rights reserved.  You can redistribute and/or modify it under the same
# terms as Ruby.
#
#   $Id: sha2.rb 35293 2012-04-10 22:41:04Z drbrain $

require 'digest'
require 'digest/sha2.so'

module Digest
  #
  # A meta digest provider class for SHA256, SHA384 and SHA512.
  #
  class SHA2 < Digest::Class
    # call-seq:
    #   Digest::SHA2.new(bitlen = 256) -> digest_obj
    #
    # Creates a new SHA2 hash object with a given bit length.
    #
    # Valid bit lengths are 256, 384 and 512.
    def initialize(bitlen = 256)
      case bitlen
      when 256
        @sha2 = Digest::SHA256.new
      when 384
        @sha2 = Digest::SHA384.new
      when 512
        @sha2 = Digest::SHA512.new
      else
        raise ArgumentError, "unsupported bit length: %s" % bitlen.inspect
      end
      @bitlen = bitlen
    end

    # call-seq:
    #   digest_obj.reset -> digest_obj
    #
    # Resets the digest to the initial state and returns self.
    def reset
      @sha2.reset
      self
    end

    # call-seq:
    #   digest_obj.update(string) -> digest_obj
    #   digest_obj << string -> digest_obj
    #
    # Updates the digest using a given _string_ and returns self.
    def update(str)
      @sha2.update(str)
      self
    end
    alias << update

    def finish # :nodoc:
      @sha2.digest!
    end
    private :finish


    # call-seq:
    #   digest_obj.block_length -> Integer
    #
    # Returns the block length of the digest in bytes.
    #
    #   Digest::SHA256.new.block_length * 8
    #   # => 512
    #   Digest::SHA384.new.block_length * 8
    #   # => 1024
    #   Digest::SHA512.new.block_length * 8
    #   # => 1024
    def block_length
      @sha2.block_length
    end

    # call-seq:
    #   digest_obj.digest_length -> Integer
    #
    # Returns the length of the hash value of the digest in bytes.
    #
    #   Digest::SHA256.new.digest_length * 8
    #   # => 256
    #   Digest::SHA384.new.digest_length * 8
    #   # => 384
    #   Digest::SHA512.new.digest_length * 8
    #   # => 512
    #
    # For example, digests produced by Digest::SHA256 will always be 32 bytes
    # (256 bits) in size.
    def digest_length
      @sha2.digest_length
    end

    def initialize_copy(other) # :nodoc:
      @sha2 = other.instance_eval { @sha2.clone }
    end

    def inspect # :nodoc:
      "#<%s:%d %s>" % [self.class.name, @bitlen, hexdigest]
    end
  end
end
lib64/ruby/2.2.0/English.rb000064400000014660150402106050011022 0ustar00#  Include the English library file in a Ruby script, and you can
#  reference the global variables such as \VAR{\$\_} using less
#  cryptic names, listed in the following table.% \vref{tab:english}.
#
#  Without 'English':
#
#      $\ = ' -- '
#      "waterbuffalo" =~ /buff/
#      print $', $$, "\n"
#
#  With English:
#
#      require "English"
#
#      $OUTPUT_FIELD_SEPARATOR = ' -- '
#      "waterbuffalo" =~ /buff/
#      print $POSTMATCH, $PID, "\n"
#
#  Below is a full list of descriptive aliases and their associated global
#  variable:
#
#  $ERROR_INFO::              $!
#  $ERROR_POSITION::          $@
#  $FS::                      $;
#  $FIELD_SEPARATOR::         $;
#  $OFS::                     $,
#  $OUTPUT_FIELD_SEPARATOR::  $,
#  $RS::                      $/
#  $INPUT_RECORD_SEPARATOR::  $/
#  $ORS::                     $\
#  $OUTPUT_RECORD_SEPARATOR:: $\
#  $INPUT_LINE_NUMBER::       $.
#  $NR::                      $.
#  $LAST_READ_LINE::          $_
#  $DEFAULT_OUTPUT::          $>
#  $DEFAULT_INPUT::           $<
#  $PID::                     $$
#  $PROCESS_ID::              $$
#  $CHILD_STATUS::            $?
#  $LAST_MATCH_INFO::         $~
#  $IGNORECASE::              $=
#  $ARGV::                    $*
#  $MATCH::                   $&
#  $PREMATCH::                $`
#  $POSTMATCH::               $'
#  $LAST_PAREN_MATCH::        $+
#
module English end if false

# The exception object passed to +raise+.
alias $ERROR_INFO              $!

# The stack backtrace generated by the last
# exception. <tt>See Kernel.caller</tt> for details. Thread local.
alias $ERROR_POSITION          $@

# The default separator pattern used by <tt>String.split</tt>.  May be
# set from the command line using the <tt>-F</tt> flag.
alias $FS                      $;

# The default separator pattern used by <tt>String.split</tt>.  May be
# set from the command line using the <tt>-F</tt> flag.
alias $FIELD_SEPARATOR         $;

# The separator string output between the parameters to methods such
# as <tt>Kernel.print</tt> and <tt>Array.join</tt>. Defaults to +nil+,
# which adds no text.
alias $OFS                     $,

# The separator string output between the parameters to methods such
# as <tt>Kernel.print</tt> and <tt>Array.join</tt>. Defaults to +nil+,
# which adds no text.
alias $OUTPUT_FIELD_SEPARATOR  $,

# The input record separator (newline by default). This is the value
# that routines such as <tt>Kernel.gets</tt> use to determine record
# boundaries. If set to +nil+, +gets+ will read the entire file.
alias $RS                      $/

# The input record separator (newline by default). This is the value
# that routines such as <tt>Kernel.gets</tt> use to determine record
# boundaries. If set to +nil+, +gets+ will read the entire file.
alias $INPUT_RECORD_SEPARATOR  $/

# The string appended to the output of every call to methods such as
# <tt>Kernel.print</tt> and <tt>IO.write</tt>. The default value is
# +nil+.
alias $ORS                     $\

# The string appended to the output of every call to methods such as
# <tt>Kernel.print</tt> and <tt>IO.write</tt>. The default value is
# +nil+.
alias $OUTPUT_RECORD_SEPARATOR $\

# The number of the last line read from the current input file.
alias $INPUT_LINE_NUMBER       $.

# The number of the last line read from the current input file.
alias $NR                      $.

# The last line read by <tt>Kernel.gets</tt> or
# <tt>Kernel.readline</tt>. Many string-related functions in the
# +Kernel+ module operate on <tt>$_</tt> by default. The variable is
# local to the current scope. Thread local.
alias $LAST_READ_LINE          $_

# The destination of output for <tt>Kernel.print</tt>
# and <tt>Kernel.printf</tt>. The default value is
# <tt>$stdout</tt>.
alias $DEFAULT_OUTPUT          $>

# An object that provides access to the concatenation
# of the contents of all the files
# given as command-line arguments, or <tt>$stdin</tt>
# (in the case where there are no
# arguments). <tt>$<</tt> supports methods similar to a
# +File+ object:
# +inmode+, +close+,
# <tt>closed?</tt>, +each+,
# <tt>each_byte</tt>, <tt>each_line</tt>,
# +eof+, <tt>eof?</tt>, +file+,
# +filename+, +fileno+,
# +getc+, +gets+, +lineno+,
# <tt>lineno=</tt>, +path+,
# +pos+, <tt>pos=</tt>,
# +read+, +readchar+,
# +readline+, +readlines+,
# +rewind+, +seek+, +skip+,
# +tell+, <tt>to_a</tt>, <tt>to_i</tt>,
# <tt>to_io</tt>, <tt>to_s</tt>, along with the
# methods in +Enumerable+. The method +file+
# returns a +File+ object for the file currently
# being read. This may change as <tt>$<</tt> reads
# through the files on the command line. Read only.
alias $DEFAULT_INPUT           $<

# The process number of the program being executed. Read only.
alias $PID                     $$

# The process number of the program being executed. Read only.
alias $PROCESS_ID              $$

# The exit status of the last child process to terminate. Read
# only. Thread local.
alias $CHILD_STATUS            $?

# A +MatchData+ object that encapsulates the results of a successful
# pattern match. The variables <tt>$&</tt>, <tt>$`</tt>, <tt>$'</tt>,
# and <tt>$1</tt> to <tt>$9</tt> are all derived from
# <tt>$~</tt>. Assigning to <tt>$~</tt> changes the values of these
# derived variables.  This variable is local to the current
# scope.
alias $LAST_MATCH_INFO         $~

# If set to any value apart from +nil+ or +false+, all pattern matches
# will be case insensitive, string comparisons will ignore case, and
# string hash values will be case insensitive. Deprecated
alias $IGNORECASE              $=

# An array of strings containing the command-line
# options from the invocation of the program. Options
# used by the Ruby interpreter will have been
# removed. Read only. Also known simply as +ARGV+.
alias $ARGV                    $*

# The string matched by the last successful pattern
# match. This variable is local to the current
# scope. Read only.
alias $MATCH                   $&

# The string preceding the match in the last
# successful pattern match. This variable is local to
# the current scope. Read only.
alias $PREMATCH                $`

# The string following the match in the last
# successful pattern match. This variable is local to
# the current scope. Read only.
alias $POSTMATCH               $'

# The contents of the highest-numbered group matched in the last
# successful pattern match. Thus, in <tt>"cat" =~ /(c|a)(t|z)/</tt>,
# <tt>$+</tt> will be set to "t".  This variable is local to the
# current scope. Read only.
alias $LAST_PAREN_MATCH        $+
lib64/ruby/2.2.0/cgi/cookie.rb000064400000012354150402106060011443 0ustar00require 'cgi/util'
class CGI
  # Class representing an HTTP cookie.
  #
  # In addition to its specific fields and methods, a Cookie instance
  # is a delegator to the array of its values.
  #
  # See RFC 2965.
  #
  # == Examples of use
  #   cookie1 = CGI::Cookie.new("name", "value1", "value2", ...)
  #   cookie1 = CGI::Cookie.new("name" => "name", "value" => "value")
  #   cookie1 = CGI::Cookie.new('name'    => 'name',
  #                              'value'   => ['value1', 'value2', ...],
  #                              'path'    => 'path',   # optional
  #                              'domain'  => 'domain', # optional
  #                              'expires' => Time.now, # optional
  #                              'secure'  => true      # optional
  #                             )
  #
  #   cgi.out("cookie" => [cookie1, cookie2]) { "string" }
  #
  #   name    = cookie1.name
  #   values  = cookie1.value
  #   path    = cookie1.path
  #   domain  = cookie1.domain
  #   expires = cookie1.expires
  #   secure  = cookie1.secure
  #
  #   cookie1.name    = 'name'
  #   cookie1.value   = ['value1', 'value2', ...]
  #   cookie1.path    = 'path'
  #   cookie1.domain  = 'domain'
  #   cookie1.expires = Time.now + 30
  #   cookie1.secure  = true
  class Cookie < Array
    @@accept_charset="UTF-8" unless defined?(@@accept_charset)

    # Create a new CGI::Cookie object.
    #
    # :call-seq:
    #   Cookie.new(name_string,*value)
    #   Cookie.new(options_hash)
    #
    # +name_string+::
    #   The name of the cookie; in this form, there is no #domain or
    #   #expiration.  The #path is gleaned from the +SCRIPT_NAME+ environment
    #   variable, and #secure is false.
    # <tt>*value</tt>::
    #   value or list of values of the cookie
    # +options_hash+::
    #   A Hash of options to initialize this Cookie.  Possible options are:
    #
    #   name:: the name of the cookie.  Required.
    #   value:: the cookie's value or list of values.
    #   path:: the path for which this cookie applies.  Defaults to the
    #          the value of the +SCRIPT_NAME+ environment variable.
    #   domain:: the domain for which this cookie applies.
    #   expires:: the time at which this cookie expires, as a +Time+ object.
    #   secure:: whether this cookie is a secure cookie or not (default to
    #            false).  Secure cookies are only transmitted to HTTPS
    #            servers.
    #
    #   These keywords correspond to attributes of the cookie object.
    def initialize(name = "", *value)
      @domain = nil
      @expires = nil
      if name.kind_of?(String)
        @name = name
        %r|^(.*/)|.match(ENV["SCRIPT_NAME"])
        @path = ($1 or "")
        @secure = false
        return super(value)
      end

      options = name
      unless options.has_key?("name")
        raise ArgumentError, "`name' required"
      end

      @name = options["name"]
      value = Array(options["value"])
      # simple support for IE
      if options["path"]
        @path = options["path"]
      else
        %r|^(.*/)|.match(ENV["SCRIPT_NAME"])
        @path = ($1 or "")
      end
      @domain = options["domain"]
      @expires = options["expires"]
      @secure = options["secure"] == true ? true : false

      super(value)
    end

    # Name of this cookie, as a +String+
    attr_accessor :name
    # Path for which this cookie applies, as a +String+
    attr_accessor :path
    # Domain for which this cookie applies, as a +String+
    attr_accessor :domain
    # Time at which this cookie expires, as a +Time+
    attr_accessor :expires
    # True if this cookie is secure; false otherwise
    attr_reader("secure")

    # Returns the value or list of values for this cookie.
    def value
      self
    end

    # Replaces the value of this cookie with a new value or list of values.
    def value=(val)
      replace(Array(val))
    end

    # Set whether the Cookie is a secure cookie or not.
    #
    # +val+ must be a boolean.
    def secure=(val)
      @secure = val if val == true or val == false
      @secure
    end

    # Convert the Cookie to its string representation.
    def to_s
      val = collect{|v| CGI.escape(v) }.join("&")
      buf = "#{@name}=#{val}"
      buf << "; domain=#{@domain}" if @domain
      buf << "; path=#{@path}"     if @path
      buf << "; expires=#{CGI::rfc1123_date(@expires)}" if @expires
      buf << "; secure"            if @secure == true
      buf
    end

    # Parse a raw cookie string into a hash of cookie-name=>Cookie
    # pairs.
    #
    #   cookies = CGI::Cookie.parse("raw_cookie_string")
    #     # { "name1" => cookie1, "name2" => cookie2, ... }
    #
    def self.parse(raw_cookie)
      cookies = Hash.new([])
      return cookies unless raw_cookie

      raw_cookie.split(/[;,]\s?/).each do |pairs|
        name, values = pairs.split('=',2)
        next unless name and values
        name = CGI.unescape(name)
        values ||= ""
        values = values.split('&').collect{|v| CGI.unescape(v,@@accept_charset) }
        if cookies.has_key?(name)
          values = cookies[name].value + values
        end
        cookies[name] = Cookie.new(name, *values)
      end

      cookies
    end

    # A summary of cookie string.
    def inspect
      "#<CGI::Cookie: #{self.to_s.inspect}>"
    end

  end # class Cookie
end


lib64/ruby/2.2.0/cgi/html.rb000064400000104154150402106060011136 0ustar00class CGI
  # Base module for HTML-generation mixins.
  #
  # Provides methods for code generation for tags following
  # the various DTD element types.
  module TagMaker # :nodoc:

    # Generate code for an element with required start and end tags.
    #
    #   - -
    def nn_element(element, attributes = {})
      s = nOE_element(element, attributes)
      if block_given?
        s << yield.to_s
      end
      s << "</#{element.upcase}>"
    end

    def nn_element_def(attributes = {}, &block)
      nn_element(__callee__, attributes, &block)
    end

    # Generate code for an empty element.
    #
    #   - O EMPTY
    def nOE_element(element, attributes = {})
      attributes={attributes=>nil} if attributes.kind_of?(String)
      s = "<#{element.upcase}"
      attributes.each do|name, value|
        next unless value
        s << " "
        s << CGI::escapeHTML(name.to_s)
        if value != true
          s << '="'
          s << CGI::escapeHTML(value.to_s)
          s << '"'
        end
      end
      s << ">"
    end

    def nOE_element_def(attributes = {}, &block)
      nOE_element(__callee__, attributes, &block)
    end


    # Generate code for an element for which the end (and possibly the
    # start) tag is optional.
    #
    #   O O or - O
    def nO_element(element, attributes = {})
      s = nOE_element(element, attributes)
      if block_given?
        s << yield.to_s
        s << "</#{element.upcase}>"
      end
      s
    end

    def nO_element_def(attributes = {}, &block)
      nO_element(__callee__, attributes, &block)
    end

  end # TagMaker


  # Mixin module providing HTML generation methods.
  #
  # For example,
  #   cgi.a("http://www.example.com") { "Example" }
  #     # => "<A HREF=\"http://www.example.com\">Example</A>"
  #
  # Modules Html3, Html4, etc., contain more basic HTML-generation methods
  # (+#title+, +#h1+, etc.).
  #
  # See class CGI for a detailed example.
  #
  module HtmlExtension


    # Generate an Anchor element as a string.
    #
    # +href+ can either be a string, giving the URL
    # for the HREF attribute, or it can be a hash of
    # the element's attributes.
    #
    # The body of the element is the string returned by the no-argument
    # block passed in.
    #
    #   a("http://www.example.com") { "Example" }
    #     # => "<A HREF=\"http://www.example.com\">Example</A>"
    #
    #   a("HREF" => "http://www.example.com", "TARGET" => "_top") { "Example" }
    #     # => "<A HREF=\"http://www.example.com\" TARGET=\"_top\">Example</A>"
    #
    def a(href = "") # :yield:
      attributes = if href.kind_of?(String)
                     { "HREF" => href }
                   else
                     href
                   end
      super(attributes)
    end

    # Generate a Document Base URI element as a String.
    #
    # +href+ can either by a string, giving the base URL for the HREF
    # attribute, or it can be a has of the element's attributes.
    #
    # The passed-in no-argument block is ignored.
    #
    #   base("http://www.example.com/cgi")
    #     # => "<BASE HREF=\"http://www.example.com/cgi\">"
    def base(href = "") # :yield:
      attributes = if href.kind_of?(String)
                     { "HREF" => href }
                   else
                     href
                   end
      super(attributes)
    end

    # Generate a BlockQuote element as a string.
    #
    # +cite+ can either be a string, give the URI for the source of
    # the quoted text, or a hash, giving all attributes of the element,
    # or it can be omitted, in which case the element has no attributes.
    #
    # The body is provided by the passed-in no-argument block
    #
    #   blockquote("http://www.example.com/quotes/foo.html") { "Foo!" }
    #     #=> "<BLOCKQUOTE CITE=\"http://www.example.com/quotes/foo.html\">Foo!</BLOCKQUOTE>
    def blockquote(cite = {})  # :yield:
      attributes = if cite.kind_of?(String)
                     { "CITE" => cite }
                   else
                     cite
                   end
      super(attributes)
    end


    # Generate a Table Caption element as a string.
    #
    # +align+ can be a string, giving the alignment of the caption
    # (one of top, bottom, left, or right).  It can be a hash of
    # all the attributes of the element.  Or it can be omitted.
    #
    # The body of the element is provided by the passed-in no-argument block.
    #
    #   caption("left") { "Capital Cities" }
    #     # => <CAPTION ALIGN=\"left\">Capital Cities</CAPTION>
    def caption(align = {}) # :yield:
      attributes = if align.kind_of?(String)
                     { "ALIGN" => align }
                   else
                     align
                   end
      super(attributes)
    end


    # Generate a Checkbox Input element as a string.
    #
    # The attributes of the element can be specified as three arguments,
    # +name+, +value+, and +checked+.  +checked+ is a boolean value;
    # if true, the CHECKED attribute will be included in the element.
    #
    # Alternatively, the attributes can be specified as a hash.
    #
    #   checkbox("name")
    #     # = checkbox("NAME" => "name")
    #
    #   checkbox("name", "value")
    #     # = checkbox("NAME" => "name", "VALUE" => "value")
    #
    #   checkbox("name", "value", true)
    #     # = checkbox("NAME" => "name", "VALUE" => "value", "CHECKED" => true)
    def checkbox(name = "", value = nil, checked = nil)
      attributes = if name.kind_of?(String)
                     { "TYPE" => "checkbox", "NAME" => name,
                       "VALUE" => value, "CHECKED" => checked }
                   else
                     name["TYPE"] = "checkbox"
                     name
                   end
      input(attributes)
    end

    # Generate a sequence of checkbox elements, as a String.
    #
    # The checkboxes will all have the same +name+ attribute.
    # Each checkbox is followed by a label.
    # There will be one checkbox for each value.  Each value
    # can be specified as a String, which will be used both
    # as the value of the VALUE attribute and as the label
    # for that checkbox.  A single-element array has the
    # same effect.
    #
    # Each value can also be specified as a three-element array.
    # The first element is the VALUE attribute; the second is the
    # label; and the third is a boolean specifying whether this
    # checkbox is CHECKED.
    #
    # Each value can also be specified as a two-element
    # array, by omitting either the value element (defaults
    # to the same as the label), or the boolean checked element
    # (defaults to false).
    #
    #   checkbox_group("name", "foo", "bar", "baz")
    #     # <INPUT TYPE="checkbox" NAME="name" VALUE="foo">foo
    #     # <INPUT TYPE="checkbox" NAME="name" VALUE="bar">bar
    #     # <INPUT TYPE="checkbox" NAME="name" VALUE="baz">baz
    #
    #   checkbox_group("name", ["foo"], ["bar", true], "baz")
    #     # <INPUT TYPE="checkbox" NAME="name" VALUE="foo">foo
    #     # <INPUT TYPE="checkbox" CHECKED NAME="name" VALUE="bar">bar
    #     # <INPUT TYPE="checkbox" NAME="name" VALUE="baz">baz
    #
    #   checkbox_group("name", ["1", "Foo"], ["2", "Bar", true], "Baz")
    #     # <INPUT TYPE="checkbox" NAME="name" VALUE="1">Foo
    #     # <INPUT TYPE="checkbox" CHECKED NAME="name" VALUE="2">Bar
    #     # <INPUT TYPE="checkbox" NAME="name" VALUE="Baz">Baz
    #
    #   checkbox_group("NAME" => "name",
    #                    "VALUES" => ["foo", "bar", "baz"])
    #
    #   checkbox_group("NAME" => "name",
    #                    "VALUES" => [["foo"], ["bar", true], "baz"])
    #
    #   checkbox_group("NAME" => "name",
    #                    "VALUES" => [["1", "Foo"], ["2", "Bar", true], "Baz"])
    def checkbox_group(name = "", *values)
      if name.kind_of?(Hash)
        values = name["VALUES"]
        name = name["NAME"]
      end
      values.collect{|value|
        if value.kind_of?(String)
          checkbox(name, value) + value
        else
          if value[-1] == true || value[-1] == false
            checkbox(name, value[0],  value[-1]) +
            value[-2]
          else
            checkbox(name, value[0]) +
            value[-1]
          end
        end
      }.join
    end


    # Generate an File Upload Input element as a string.
    #
    # The attributes of the element can be specified as three arguments,
    # +name+, +size+, and +maxlength+.  +maxlength+ is the maximum length
    # of the file's _name_, not of the file's _contents_.
    #
    # Alternatively, the attributes can be specified as a hash.
    #
    # See #multipart_form() for forms that include file uploads.
    #
    #   file_field("name")
    #     # <INPUT TYPE="file" NAME="name" SIZE="20">
    #
    #   file_field("name", 40)
    #     # <INPUT TYPE="file" NAME="name" SIZE="40">
    #
    #   file_field("name", 40, 100)
    #     # <INPUT TYPE="file" NAME="name" SIZE="40" MAXLENGTH="100">
    #
    #   file_field("NAME" => "name", "SIZE" => 40)
    #     # <INPUT TYPE="file" NAME="name" SIZE="40">
    def file_field(name = "", size = 20, maxlength = nil)
      attributes = if name.kind_of?(String)
                     { "TYPE" => "file", "NAME" => name,
                       "SIZE" => size.to_s }
                   else
                     name["TYPE"] = "file"
                     name
                   end
      attributes["MAXLENGTH"] = maxlength.to_s if maxlength
      input(attributes)
    end


    # Generate a Form element as a string.
    #
    # +method+ should be either "get" or "post", and defaults to the latter.
    # +action+ defaults to the current CGI script name.  +enctype+
    # defaults to "application/x-www-form-urlencoded".
    #
    # Alternatively, the attributes can be specified as a hash.
    #
    # See also #multipart_form() for forms that include file uploads.
    #
    #   form{ "string" }
    #     # <FORM METHOD="post" ENCTYPE="application/x-www-form-urlencoded">string</FORM>
    #
    #   form("get") { "string" }
    #     # <FORM METHOD="get" ENCTYPE="application/x-www-form-urlencoded">string</FORM>
    #
    #   form("get", "url") { "string" }
    #     # <FORM METHOD="get" ACTION="url" ENCTYPE="application/x-www-form-urlencoded">string</FORM>
    #
    #   form("METHOD" => "post", "ENCTYPE" => "enctype") { "string" }
    #     # <FORM METHOD="post" ENCTYPE="enctype">string</FORM>
    def form(method = "post", action = script_name, enctype = "application/x-www-form-urlencoded")
      attributes = if method.kind_of?(String)
                     { "METHOD" => method, "ACTION" => action,
                       "ENCTYPE" => enctype }
                   else
                     unless method.has_key?("METHOD")
                       method["METHOD"] = "post"
                     end
                     unless method.has_key?("ENCTYPE")
                       method["ENCTYPE"] = enctype
                     end
                     method
                   end
      if block_given?
        body = yield
      else
        body = ""
      end
      if @output_hidden
        body << @output_hidden.collect{|k,v|
          "<INPUT TYPE=\"HIDDEN\" NAME=\"#{k}\" VALUE=\"#{v}\">"
        }.join
      end
      super(attributes){body}
    end

    # Generate a Hidden Input element as a string.
    #
    # The attributes of the element can be specified as two arguments,
    # +name+ and +value+.
    #
    # Alternatively, the attributes can be specified as a hash.
    #
    #   hidden("name")
    #     # <INPUT TYPE="hidden" NAME="name">
    #
    #   hidden("name", "value")
    #     # <INPUT TYPE="hidden" NAME="name" VALUE="value">
    #
    #   hidden("NAME" => "name", "VALUE" => "reset", "ID" => "foo")
    #     # <INPUT TYPE="hidden" NAME="name" VALUE="value" ID="foo">
    def hidden(name = "", value = nil)
      attributes = if name.kind_of?(String)
                     { "TYPE" => "hidden", "NAME" => name, "VALUE" => value }
                   else
                     name["TYPE"] = "hidden"
                     name
                   end
      input(attributes)
    end

    # Generate a top-level HTML element as a string.
    #
    # The attributes of the element are specified as a hash.  The
    # pseudo-attribute "PRETTY" can be used to specify that the generated
    # HTML string should be indented.  "PRETTY" can also be specified as
    # a string as the sole argument to this method.  The pseudo-attribute
    # "DOCTYPE", if given, is used as the leading DOCTYPE SGML tag; it
    # should include the entire text of this tag, including angle brackets.
    #
    # The body of the html element is supplied as a block.
    #
    #   html{ "string" }
    #     # <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML>string</HTML>
    #
    #   html("LANG" => "ja") { "string" }
    #     # <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML LANG="ja">string</HTML>
    #
    #   html("DOCTYPE" => false) { "string" }
    #     # <HTML>string</HTML>
    #
    #   html("DOCTYPE" => '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">') { "string" }
    #     # <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><HTML>string</HTML>
    #
    #   html("PRETTY" => "  ") { "<BODY></BODY>" }
    #     # <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    #     # <HTML>
    #     #   <BODY>
    #     #   </BODY>
    #     # </HTML>
    #
    #   html("PRETTY" => "\t") { "<BODY></BODY>" }
    #     # <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    #     # <HTML>
    #     #         <BODY>
    #     #         </BODY>
    #     # </HTML>
    #
    #   html("PRETTY") { "<BODY></BODY>" }
    #     # = html("PRETTY" => "  ") { "<BODY></BODY>" }
    #
    #   html(if $VERBOSE then "PRETTY" end) { "HTML string" }
    #
    def html(attributes = {}) # :yield:
      if nil == attributes
        attributes = {}
      elsif "PRETTY" == attributes
        attributes = { "PRETTY" => true }
      end
      pretty = attributes.delete("PRETTY")
      pretty = "  " if true == pretty
      buf = ""

      if attributes.has_key?("DOCTYPE")
        if attributes["DOCTYPE"]
          buf << attributes.delete("DOCTYPE")
        else
          attributes.delete("DOCTYPE")
        end
      else
        buf << doctype
      end

      buf << super(attributes)

      if pretty
        CGI::pretty(buf, pretty)
      else
        buf
      end

    end

    # Generate an Image Button Input element as a string.
    #
    # +src+ is the URL of the image to use for the button.  +name+
    # is the input name.  +alt+ is the alternative text for the image.
    #
    # Alternatively, the attributes can be specified as a hash.
    #
    #   image_button("url")
    #     # <INPUT TYPE="image" SRC="url">
    #
    #   image_button("url", "name", "string")
    #     # <INPUT TYPE="image" SRC="url" NAME="name" ALT="string">
    #
    #   image_button("SRC" => "url", "ALT" => "string")
    #     # <INPUT TYPE="image" SRC="url" ALT="string">
    def image_button(src = "", name = nil, alt = nil)
      attributes = if src.kind_of?(String)
                     { "TYPE" => "image", "SRC" => src, "NAME" => name,
                       "ALT" => alt }
                   else
                     src["TYPE"] = "image"
                     src["SRC"] ||= ""
                     src
                   end
      input(attributes)
    end


    # Generate an Image element as a string.
    #
    # +src+ is the URL of the image.  +alt+ is the alternative text for
    # the image.  +width+ is the width of the image, and +height+ is
    # its height.
    #
    # Alternatively, the attributes can be specified as a hash.
    #
    #   img("src", "alt", 100, 50)
    #     # <IMG SRC="src" ALT="alt" WIDTH="100" HEIGHT="50">
    #
    #   img("SRC" => "src", "ALT" => "alt", "WIDTH" => 100, "HEIGHT" => 50)
    #     # <IMG SRC="src" ALT="alt" WIDTH="100" HEIGHT="50">
    def img(src = "", alt = "", width = nil, height = nil)
      attributes = if src.kind_of?(String)
                     { "SRC" => src, "ALT" => alt }
                   else
                     src
                   end
      attributes["WIDTH"] = width.to_s if width
      attributes["HEIGHT"] = height.to_s if height
      super(attributes)
    end


    # Generate a Form element with multipart encoding as a String.
    #
    # Multipart encoding is used for forms that include file uploads.
    #
    # +action+ is the action to perform.  +enctype+ is the encoding
    # type, which defaults to "multipart/form-data".
    #
    # Alternatively, the attributes can be specified as a hash.
    #
    #   multipart_form{ "string" }
    #     # <FORM METHOD="post" ENCTYPE="multipart/form-data">string</FORM>
    #
    #   multipart_form("url") { "string" }
    #     # <FORM METHOD="post" ACTION="url" ENCTYPE="multipart/form-data">string</FORM>
    def multipart_form(action = nil, enctype = "multipart/form-data")
      attributes = if action == nil
                     { "METHOD" => "post", "ENCTYPE" => enctype }
                   elsif action.kind_of?(String)
                     { "METHOD" => "post", "ACTION" => action,
                       "ENCTYPE" => enctype }
                   else
                     unless action.has_key?("METHOD")
                       action["METHOD"] = "post"
                     end
                     unless action.has_key?("ENCTYPE")
                       action["ENCTYPE"] = enctype
                     end
                     action
                   end
      if block_given?
        form(attributes){ yield }
      else
        form(attributes)
      end
    end


    # Generate a Password Input element as a string.
    #
    # +name+ is the name of the input field.  +value+ is its default
    # value.  +size+ is the size of the input field display.  +maxlength+
    # is the maximum length of the inputted password.
    #
    # Alternatively, attributes can be specified as a hash.
    #
    #   password_field("name")
    #     # <INPUT TYPE="password" NAME="name" SIZE="40">
    #
    #   password_field("name", "value")
    #     # <INPUT TYPE="password" NAME="name" VALUE="value" SIZE="40">
    #
    #   password_field("password", "value", 80, 200)
    #     # <INPUT TYPE="password" NAME="name" VALUE="value" SIZE="80" MAXLENGTH="200">
    #
    #   password_field("NAME" => "name", "VALUE" => "value")
    #     # <INPUT TYPE="password" NAME="name" VALUE="value">
    def password_field(name = "", value = nil, size = 40, maxlength = nil)
      attributes = if name.kind_of?(String)
                     { "TYPE" => "password", "NAME" => name,
                       "VALUE" => value, "SIZE" => size.to_s }
                   else
                     name["TYPE"] = "password"
                     name
                   end
      attributes["MAXLENGTH"] = maxlength.to_s if maxlength
      input(attributes)
    end

    # Generate a Select element as a string.
    #
    # +name+ is the name of the element.  The +values+ are the options that
    # can be selected from the Select menu.  Each value can be a String or
    # a one, two, or three-element Array.  If a String or a one-element
    # Array, this is both the value of that option and the text displayed for
    # it.  If a three-element Array, the elements are the option value, displayed
    # text, and a boolean value specifying whether this option starts as selected.
    # The two-element version omits either the option value (defaults to the same
    # as the display text) or the boolean selected specifier (defaults to false).
    #
    # The attributes and options can also be specified as a hash.  In this
    # case, options are specified as an array of values as described above,
    # with the hash key of "VALUES".
    #
    #   popup_menu("name", "foo", "bar", "baz")
    #     # <SELECT NAME="name">
    #     #   <OPTION VALUE="foo">foo</OPTION>
    #     #   <OPTION VALUE="bar">bar</OPTION>
    #     #   <OPTION VALUE="baz">baz</OPTION>
    #     # </SELECT>
    #
    #   popup_menu("name", ["foo"], ["bar", true], "baz")
    #     # <SELECT NAME="name">
    #     #   <OPTION VALUE="foo">foo</OPTION>
    #     #   <OPTION VALUE="bar" SELECTED>bar</OPTION>
    #     #   <OPTION VALUE="baz">baz</OPTION>
    #     # </SELECT>
    #
    #   popup_menu("name", ["1", "Foo"], ["2", "Bar", true], "Baz")
    #     # <SELECT NAME="name">
    #     #   <OPTION VALUE="1">Foo</OPTION>
    #     #   <OPTION SELECTED VALUE="2">Bar</OPTION>
    #     #   <OPTION VALUE="Baz">Baz</OPTION>
    #     # </SELECT>
    #
    #   popup_menu("NAME" => "name", "SIZE" => 2, "MULTIPLE" => true,
    #               "VALUES" => [["1", "Foo"], ["2", "Bar", true], "Baz"])
    #     # <SELECT NAME="name" MULTIPLE SIZE="2">
    #     #   <OPTION VALUE="1">Foo</OPTION>
    #     #   <OPTION SELECTED VALUE="2">Bar</OPTION>
    #     #   <OPTION VALUE="Baz">Baz</OPTION>
    #     # </SELECT>
    def popup_menu(name = "", *values)

      if name.kind_of?(Hash)
        values   = name["VALUES"]
        size     = name["SIZE"].to_s if name["SIZE"]
        multiple = name["MULTIPLE"]
        name     = name["NAME"]
      else
        size = nil
        multiple = nil
      end

      select({ "NAME" => name, "SIZE" => size,
               "MULTIPLE" => multiple }){
        values.collect{|value|
          if value.kind_of?(String)
            option({ "VALUE" => value }){ value }
          else
            if value[value.size - 1] == true
              option({ "VALUE" => value[0], "SELECTED" => true }){
                value[value.size - 2]
              }
            else
              option({ "VALUE" => value[0] }){
                value[value.size - 1]
              }
            end
          end
        }.join
      }

    end

    # Generates a radio-button Input element.
    #
    # +name+ is the name of the input field.  +value+ is the value of
    # the field if checked.  +checked+ specifies whether the field
    # starts off checked.
    #
    # Alternatively, the attributes can be specified as a hash.
    #
    #   radio_button("name", "value")
    #     # <INPUT TYPE="radio" NAME="name" VALUE="value">
    #
    #   radio_button("name", "value", true)
    #     # <INPUT TYPE="radio" NAME="name" VALUE="value" CHECKED>
    #
    #   radio_button("NAME" => "name", "VALUE" => "value", "ID" => "foo")
    #     # <INPUT TYPE="radio" NAME="name" VALUE="value" ID="foo">
    def radio_button(name = "", value = nil, checked = nil)
      attributes = if name.kind_of?(String)
                     { "TYPE" => "radio", "NAME" => name,
                       "VALUE" => value, "CHECKED" => checked }
                   else
                     name["TYPE"] = "radio"
                     name
                   end
      input(attributes)
    end

    # Generate a sequence of radio button Input elements, as a String.
    #
    # This works the same as #checkbox_group().  However, it is not valid
    # to have more than one radiobutton in a group checked.
    #
    #   radio_group("name", "foo", "bar", "baz")
    #     # <INPUT TYPE="radio" NAME="name" VALUE="foo">foo
    #     # <INPUT TYPE="radio" NAME="name" VALUE="bar">bar
    #     # <INPUT TYPE="radio" NAME="name" VALUE="baz">baz
    #
    #   radio_group("name", ["foo"], ["bar", true], "baz")
    #     # <INPUT TYPE="radio" NAME="name" VALUE="foo">foo
    #     # <INPUT TYPE="radio" CHECKED NAME="name" VALUE="bar">bar
    #     # <INPUT TYPE="radio" NAME="name" VALUE="baz">baz
    #
    #   radio_group("name", ["1", "Foo"], ["2", "Bar", true], "Baz")
    #     # <INPUT TYPE="radio" NAME="name" VALUE="1">Foo
    #     # <INPUT TYPE="radio" CHECKED NAME="name" VALUE="2">Bar
    #     # <INPUT TYPE="radio" NAME="name" VALUE="Baz">Baz
    #
    #   radio_group("NAME" => "name",
    #                 "VALUES" => ["foo", "bar", "baz"])
    #
    #   radio_group("NAME" => "name",
    #                 "VALUES" => [["foo"], ["bar", true], "baz"])
    #
    #   radio_group("NAME" => "name",
    #                 "VALUES" => [["1", "Foo"], ["2", "Bar", true], "Baz"])
    def radio_group(name = "", *values)
      if name.kind_of?(Hash)
        values = name["VALUES"]
        name = name["NAME"]
      end
      values.collect{|value|
        if value.kind_of?(String)
          radio_button(name, value) + value
        else
          if value[-1] == true || value[-1] == false
            radio_button(name, value[0],  value[-1]) +
            value[-2]
          else
            radio_button(name, value[0]) +
            value[-1]
          end
        end
      }.join
    end

    # Generate a reset button Input element, as a String.
    #
    # This resets the values on a form to their initial values.  +value+
    # is the text displayed on the button. +name+ is the name of this button.
    #
    # Alternatively, the attributes can be specified as a hash.
    #
    #   reset
    #     # <INPUT TYPE="reset">
    #
    #   reset("reset")
    #     # <INPUT TYPE="reset" VALUE="reset">
    #
    #   reset("VALUE" => "reset", "ID" => "foo")
    #     # <INPUT TYPE="reset" VALUE="reset" ID="foo">
    def reset(value = nil, name = nil)
      attributes = if (not value) or value.kind_of?(String)
                     { "TYPE" => "reset", "VALUE" => value, "NAME" => name }
                   else
                     value["TYPE"] = "reset"
                     value
                   end
      input(attributes)
    end

    alias scrolling_list popup_menu

    # Generate a submit button Input element, as a String.
    #
    # +value+ is the text to display on the button.  +name+ is the name
    # of the input.
    #
    # Alternatively, the attributes can be specified as a hash.
    #
    #   submit
    #     # <INPUT TYPE="submit">
    #
    #   submit("ok")
    #     # <INPUT TYPE="submit" VALUE="ok">
    #
    #   submit("ok", "button1")
    #     # <INPUT TYPE="submit" VALUE="ok" NAME="button1">
    #
    #   submit("VALUE" => "ok", "NAME" => "button1", "ID" => "foo")
    #     # <INPUT TYPE="submit" VALUE="ok" NAME="button1" ID="foo">
    def submit(value = nil, name = nil)
      attributes = if (not value) or value.kind_of?(String)
                     { "TYPE" => "submit", "VALUE" => value, "NAME" => name }
                   else
                     value["TYPE"] = "submit"
                     value
                   end
      input(attributes)
    end

    # Generate a text field Input element, as a String.
    #
    # +name+ is the name of the input field.  +value+ is its initial
    # value.  +size+ is the size of the input area.  +maxlength+
    # is the maximum length of input accepted.
    #
    # Alternatively, the attributes can be specified as a hash.
    #
    #   text_field("name")
    #     # <INPUT TYPE="text" NAME="name" SIZE="40">
    #
    #   text_field("name", "value")
    #     # <INPUT TYPE="text" NAME="name" VALUE="value" SIZE="40">
    #
    #   text_field("name", "value", 80)
    #     # <INPUT TYPE="text" NAME="name" VALUE="value" SIZE="80">
    #
    #   text_field("name", "value", 80, 200)
    #     # <INPUT TYPE="text" NAME="name" VALUE="value" SIZE="80" MAXLENGTH="200">
    #
    #   text_field("NAME" => "name", "VALUE" => "value")
    #     # <INPUT TYPE="text" NAME="name" VALUE="value">
    def text_field(name = "", value = nil, size = 40, maxlength = nil)
      attributes = if name.kind_of?(String)
                     { "TYPE" => "text", "NAME" => name, "VALUE" => value,
                       "SIZE" => size.to_s }
                   else
                     name["TYPE"] = "text"
                     name
                   end
      attributes["MAXLENGTH"] = maxlength.to_s if maxlength
      input(attributes)
    end

    # Generate a TextArea element, as a String.
    #
    # +name+ is the name of the textarea.  +cols+ is the number of
    # columns and +rows+ is the number of rows in the display.
    #
    # Alternatively, the attributes can be specified as a hash.
    #
    # The body is provided by the passed-in no-argument block
    #
    #   textarea("name")
    #      # = textarea("NAME" => "name", "COLS" => 70, "ROWS" => 10)
    #
    #   textarea("name", 40, 5)
    #      # = textarea("NAME" => "name", "COLS" => 40, "ROWS" => 5)
    def textarea(name = "", cols = 70, rows = 10)  # :yield:
      attributes = if name.kind_of?(String)
                     { "NAME" => name, "COLS" => cols.to_s,
                       "ROWS" => rows.to_s }
                   else
                     name
                   end
      super(attributes)
    end

  end # HtmlExtension


  # Mixin module for HTML version 3 generation methods.
  module Html3 # :nodoc:
    include TagMaker

    # The DOCTYPE declaration for this version of HTML
    def doctype
      %|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">|
    end

    instance_method(:nn_element_def).tap do |m|
      # - -
      for element in %w[ A TT I B U STRIKE BIG SMALL SUB SUP EM STRONG
          DFN CODE SAMP KBD VAR CITE FONT ADDRESS DIV CENTER MAP
          APPLET PRE XMP LISTING DL OL UL DIR MENU SELECT TABLE TITLE
          STYLE SCRIPT H1 H2 H3 H4 H5 H6 TEXTAREA FORM BLOCKQUOTE
          CAPTION ]
        define_method(element.downcase, m)
      end
    end

    instance_method(:nOE_element_def).tap do |m|
      # - O EMPTY
      for element in %w[ IMG BASE BASEFONT BR AREA LINK PARAM HR INPUT
          ISINDEX META ]
        define_method(element.downcase, m)
      end
    end

    instance_method(:nO_element_def).tap do |m|
      # O O or - O
      for element in %w[ HTML HEAD BODY P PLAINTEXT DT DD LI OPTION TR
          TH TD ]
        define_method(element.downcase, m)
      end
    end

  end # Html3


  # Mixin module for HTML version 4 generation methods.
  module Html4 # :nodoc:
    include TagMaker

    # The DOCTYPE declaration for this version of HTML
    def doctype
      %|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">|
    end

    # Initialize the HTML generation methods for this version.
    # - -
    instance_method(:nn_element_def).tap do |m|
      for element in %w[ TT I B BIG SMALL EM STRONG DFN CODE SAMP KBD
        VAR CITE ABBR ACRONYM SUB SUP SPAN BDO ADDRESS DIV MAP OBJECT
        H1 H2 H3 H4 H5 H6 PRE Q INS DEL DL OL UL LABEL SELECT OPTGROUP
        FIELDSET LEGEND BUTTON TABLE TITLE STYLE SCRIPT NOSCRIPT
        TEXTAREA FORM A BLOCKQUOTE CAPTION ]
        define_method(element.downcase, m)
      end
    end

    # - O EMPTY
    instance_method(:nOE_element_def).tap do |m|
      for element in %w[ IMG BASE BR AREA LINK PARAM HR INPUT COL META ]
        define_method(element.downcase, m)
      end
    end

    # O O or - O
    instance_method(:nO_element_def).tap do |m|
      for element in %w[ HTML BODY P DT DD LI OPTION THEAD TFOOT TBODY
          COLGROUP TR TH TD HEAD ]
        define_method(element.downcase, m)
      end
    end

  end # Html4


  # Mixin module for HTML version 4 transitional generation methods.
  module Html4Tr # :nodoc:
    include TagMaker

    # The DOCTYPE declaration for this version of HTML
    def doctype
      %|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">|
    end

    # Initialise the HTML generation methods for this version.
    # - -
    instance_method(:nn_element_def).tap do |m|
      for element in %w[ TT I B U S STRIKE BIG SMALL EM STRONG DFN
          CODE SAMP KBD VAR CITE ABBR ACRONYM FONT SUB SUP SPAN BDO
          ADDRESS DIV CENTER MAP OBJECT APPLET H1 H2 H3 H4 H5 H6 PRE Q
          INS DEL DL OL UL DIR MENU LABEL SELECT OPTGROUP FIELDSET
          LEGEND BUTTON TABLE IFRAME NOFRAMES TITLE STYLE SCRIPT
          NOSCRIPT TEXTAREA FORM A BLOCKQUOTE CAPTION ]
        define_method(element.downcase, m)
      end
    end

    # - O EMPTY
    instance_method(:nOE_element_def).tap do |m|
      for element in %w[ IMG BASE BASEFONT BR AREA LINK PARAM HR INPUT
          COL ISINDEX META ]
        define_method(element.downcase, m)
      end
    end

    # O O or - O
    instance_method(:nO_element_def).tap do |m|
      for element in %w[ HTML BODY P DT DD LI OPTION THEAD TFOOT TBODY
          COLGROUP TR TH TD HEAD ]
        define_method(element.downcase, m)
      end
    end

  end # Html4Tr


  # Mixin module for generating HTML version 4 with framesets.
  module Html4Fr # :nodoc:
    include TagMaker

    # The DOCTYPE declaration for this version of HTML
    def doctype
      %|<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">|
    end

    # Initialise the HTML generation methods for this version.
    # - -
    instance_method(:nn_element_def).tap do |m|
      for element in %w[ FRAMESET ]
        define_method(element.downcase, m)
      end
    end

    # - O EMPTY
    instance_method(:nOE_element_def).tap do |m|
      for element in %w[ FRAME ]
        define_method(element.downcase, m)
      end
    end

  end # Html4Fr


  # Mixin module for HTML version 5 generation methods.
  module Html5 # :nodoc:
    include TagMaker

    # The DOCTYPE declaration for this version of HTML
    def doctype
      %|<!DOCTYPE HTML>|
    end

    # Initialise the HTML generation methods for this version.
    # - -
    instance_method(:nn_element_def).tap do |m|
      for element in %w[ SECTION NAV ARTICLE ASIDE HGROUP HEADER
        FOOTER FIGURE FIGCAPTION S TIME U MARK RUBY BDI IFRAME
        VIDEO AUDIO CANVAS DATALIST OUTPUT PROGRESS METER DETAILS
        SUMMARY MENU DIALOG I B SMALL EM STRONG DFN CODE SAMP KBD
        VAR CITE ABBR SUB SUP SPAN BDO ADDRESS DIV MAP OBJECT
        H1 H2 H3 H4 H5 H6 PRE Q INS DEL DL OL UL LABEL SELECT
        FIELDSET LEGEND BUTTON TABLE TITLE STYLE SCRIPT NOSCRIPT
        TEXTAREA FORM A BLOCKQUOTE CAPTION ]
        define_method(element.downcase, m)
      end
    end

    # - O EMPTY
    instance_method(:nOE_element_def).tap do |m|
      for element in %w[ IMG BASE BR AREA LINK PARAM HR INPUT COL META
        COMMAND EMBED KEYGEN SOURCE TRACK WBR ]
        define_method(element.downcase, m)
      end
    end

    # O O or - O
    instance_method(:nO_element_def).tap do |m|
      for element in %w[ HTML HEAD BODY P DT DD LI OPTION THEAD TFOOT TBODY
          OPTGROUP COLGROUP RT RP TR TH TD ]
        define_method(element.downcase, m)
      end
    end

  end # Html5

  class HTML3
    include Html3
    include HtmlExtension
  end

  class HTML4
    include Html4
    include HtmlExtension
  end

  class HTML4Tr
    include Html4Tr
    include HtmlExtension
  end

  class HTML4Fr
    include Html4Tr
    include Html4Fr
    include HtmlExtension
  end

  class HTML5
    include Html5
    include HtmlExtension
  end

end
lib64/ruby/2.2.0/cgi/session/pstore.rb000064400000005627150402106060013176 0ustar00#
# cgi/session/pstore.rb - persistent storage of marshalled session data
#
# Documentation: William Webber (william@williamwebber.com)
#
# == Overview
#
# This file provides the CGI::Session::PStore class, which builds
# persistent of session data on top of the pstore library.  See
# cgi/session.rb for more details on session storage managers.

require 'cgi/session'
require 'pstore'

class CGI
  class Session
    # PStore-based session storage class.
    #
    # This builds upon the top-level PStore class provided by the
    # library file pstore.rb.  Session data is marshalled and stored
    # in a file.  File locking and transaction services are provided.
    class PStore
      # Create a new CGI::Session::PStore instance
      #
      # This constructor is used internally by CGI::Session.  The
      # user does not generally need to call it directly.
      #
      # +session+ is the session for which this instance is being
      # created.  The session id must only contain alphanumeric
      # characters; automatically generated session ids observe
      # this requirement.
      #
      # +option+ is a hash of options for the initializer.  The
      # following options are recognised:
      #
      # tmpdir:: the directory to use for storing the PStore
      #          file.  Defaults to Dir::tmpdir (generally "/tmp"
      #          on Unix systems).
      # prefix:: the prefix to add to the session id when generating
      #          the filename for this session's PStore file.
      #          Defaults to the empty string.
      #
      # This session's PStore file will be created if it does
      # not exist, or opened if it does.
      def initialize(session, option={})
        dir = option['tmpdir'] || Dir::tmpdir
        prefix = option['prefix'] || ''
        id = session.session_id
        require 'digest/md5'
        md5 = Digest::MD5.hexdigest(id)[0,16]
        path = dir+"/"+prefix+md5
        path.untaint
        if File::exist?(path)
          @hash = nil
        else
          unless session.new_session
            raise CGI::Session::NoSession, "uninitialized session"
          end
          @hash = {}
        end
        @p = ::PStore.new(path)
        @p.transaction do |p|
          File.chmod(0600, p.path)
        end
      end

      # Restore session state from the session's PStore file.
      #
      # Returns the session state as a hash.
      def restore
        unless @hash
          @p.transaction do
            @hash = @p['hash'] || {}
          end
        end
        @hash
      end

      # Save session state to the session's PStore file.
      def update
        @p.transaction do
          @p['hash'] = @hash
        end
      end

      # Update and close the session's PStore file.
      def close
        update
      end

      # Close and delete the session's PStore file.
      def delete
        path = @p.path
        File::unlink path
      end

    end
  end
end
# :enddoc:
lib64/ruby/2.2.0/cgi/util.rb000064400000014644150402106060011153 0ustar00class CGI; module Util; end; extend Util; end
module CGI::Util
  @@accept_charset="UTF-8" unless defined?(@@accept_charset)
  # URL-encode a string.
  #   url_encoded_string = CGI::escape("'Stop!' said Fred")
  #      # => "%27Stop%21%27+said+Fred"
  def escape(string)
    encoding = string.encoding
    string.b.gsub(/([^ a-zA-Z0-9_.-]+)/) do |m|
      '%' + m.unpack('H2' * m.bytesize).join('%').upcase
    end.tr(' ', '+').force_encoding(encoding)
  end

  # URL-decode a string with encoding(optional).
  #   string = CGI::unescape("%27Stop%21%27+said+Fred")
  #      # => "'Stop!' said Fred"
  def unescape(string,encoding=@@accept_charset)
    str=string.tr('+', ' ').b.gsub(/((?:%[0-9a-fA-F]{2})+)/) do |m|
      [m.delete('%')].pack('H*')
    end.force_encoding(encoding)
    str.valid_encoding? ? str : str.force_encoding(string.encoding)
  end

  # The set of special characters and their escaped values
  TABLE_FOR_ESCAPE_HTML__ = {
    "'" => '&#39;',
    '&' => '&amp;',
    '"' => '&quot;',
    '<' => '&lt;',
    '>' => '&gt;',
  }

  # Escape special characters in HTML, namely &\"<>
  #   CGI::escapeHTML('Usage: foo "bar" <baz>')
  #      # => "Usage: foo &quot;bar&quot; &lt;baz&gt;"
  def escapeHTML(string)
    string.gsub(/['&\"<>]/, TABLE_FOR_ESCAPE_HTML__)
  end

  # Unescape a string that has been HTML-escaped
  #   CGI::unescapeHTML("Usage: foo &quot;bar&quot; &lt;baz&gt;")
  #      # => "Usage: foo \"bar\" <baz>"
  def unescapeHTML(string)
    return string unless string.include? '&'
    enc = string.encoding
    if enc != Encoding::UTF_8 && [Encoding::UTF_16BE, Encoding::UTF_16LE, Encoding::UTF_32BE, Encoding::UTF_32LE].include?(enc)
      return string.gsub(Regexp.new('&(apos|amp|quot|gt|lt|#[0-9]+|#x[0-9A-Fa-f]+);'.encode(enc))) do
        case $1.encode(Encoding::US_ASCII)
        when 'apos'                then "'".encode(enc)
        when 'amp'                 then '&'.encode(enc)
        when 'quot'                then '"'.encode(enc)
        when 'gt'                  then '>'.encode(enc)
        when 'lt'                  then '<'.encode(enc)
        when /\A#0*(\d+)\z/        then $1.to_i.chr(enc)
        when /\A#x([0-9a-f]+)\z/i  then $1.hex.chr(enc)
        end
      end
    end
    asciicompat = Encoding.compatible?(string, "a")
    string.gsub(/&(apos|amp|quot|gt|lt|\#[0-9]+|\#[xX][0-9A-Fa-f]+);/) do
      match = $1.dup
      case match
      when 'apos'                then "'"
      when 'amp'                 then '&'
      when 'quot'                then '"'
      when 'gt'                  then '>'
      when 'lt'                  then '<'
      when /\A#0*(\d+)\z/
        n = $1.to_i
        if enc == Encoding::UTF_8 or
          enc == Encoding::ISO_8859_1 && n < 256 or
          asciicompat && n < 128
          n.chr(enc)
        else
          "&##{$1};"
        end
      when /\A#x([0-9a-f]+)\z/i
        n = $1.hex
        if enc == Encoding::UTF_8 or
          enc == Encoding::ISO_8859_1 && n < 256 or
          asciicompat && n < 128
          n.chr(enc)
        else
          "&#x#{$1};"
        end
      else
        "&#{match};"
      end
    end
  end

  # Synonym for CGI::escapeHTML(str)
  alias escape_html escapeHTML

  # Synonym for CGI::unescapeHTML(str)
  alias unescape_html unescapeHTML

  # Escape only the tags of certain HTML elements in +string+.
  #
  # Takes an element or elements or array of elements.  Each element
  # is specified by the name of the element, without angle brackets.
  # This matches both the start and the end tag of that element.
  # The attribute list of the open tag will also be escaped (for
  # instance, the double-quotes surrounding attribute values).
  #
  #   print CGI::escapeElement('<BR><A HREF="url"></A>', "A", "IMG")
  #     # "<BR>&lt;A HREF=&quot;url&quot;&gt;&lt;/A&gt"
  #
  #   print CGI::escapeElement('<BR><A HREF="url"></A>', ["A", "IMG"])
  #     # "<BR>&lt;A HREF=&quot;url&quot;&gt;&lt;/A&gt"
  def escapeElement(string, *elements)
    elements = elements[0] if elements[0].kind_of?(Array)
    unless elements.empty?
      string.gsub(/<\/?(?:#{elements.join("|")})(?!\w)(?:.|\n)*?>/i) do
        CGI::escapeHTML($&)
      end
    else
      string
    end
  end

  # Undo escaping such as that done by CGI::escapeElement()
  #
  #   print CGI::unescapeElement(
  #           CGI::escapeHTML('<BR><A HREF="url"></A>'), "A", "IMG")
  #     # "&lt;BR&gt;<A HREF="url"></A>"
  #
  #   print CGI::unescapeElement(
  #           CGI::escapeHTML('<BR><A HREF="url"></A>'), ["A", "IMG"])
  #     # "&lt;BR&gt;<A HREF="url"></A>"
  def unescapeElement(string, *elements)
    elements = elements[0] if elements[0].kind_of?(Array)
    unless elements.empty?
      string.gsub(/&lt;\/?(?:#{elements.join("|")})(?!\w)(?:.|\n)*?&gt;/i) do
        unescapeHTML($&)
      end
    else
      string
    end
  end

  # Synonym for CGI::escapeElement(str)
  alias escape_element escapeElement

  # Synonym for CGI::unescapeElement(str)
  alias unescape_element unescapeElement

  # Abbreviated day-of-week names specified by RFC 822
  RFC822_DAYS = %w[ Sun Mon Tue Wed Thu Fri Sat ]

  # Abbreviated month names specified by RFC 822
  RFC822_MONTHS = %w[ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ]

  # Format a +Time+ object as a String using the format specified by RFC 1123.
  #
  #   CGI::rfc1123_date(Time.now)
  #     # Sat, 01 Jan 2000 00:00:00 GMT
  def rfc1123_date(time)
    t = time.clone.gmtime
    return format("%s, %.2d %s %.4d %.2d:%.2d:%.2d GMT",
                  RFC822_DAYS[t.wday], t.day, RFC822_MONTHS[t.month-1], t.year,
                  t.hour, t.min, t.sec)
  end

  # Prettify (indent) an HTML string.
  #
  # +string+ is the HTML string to indent.  +shift+ is the indentation
  # unit to use; it defaults to two spaces.
  #
  #   print CGI::pretty("<HTML><BODY></BODY></HTML>")
  #     # <HTML>
  #     #   <BODY>
  #     #   </BODY>
  #     # </HTML>
  #
  #   print CGI::pretty("<HTML><BODY></BODY></HTML>", "\t")
  #     # <HTML>
  #     #         <BODY>
  #     #         </BODY>
  #     # </HTML>
  #
  def pretty(string, shift = "  ")
    lines = string.gsub(/(?!\A)<.*?>/m, "\n\\0").gsub(/<.*?>(?!\n)/m, "\\0\n")
    end_pos = 0
    while end_pos = lines.index(/^<\/(\w+)/, end_pos)
      element = $1.dup
      start_pos = lines.rindex(/^\s*<#{element}/i, end_pos)
      lines[start_pos ... end_pos] = "__" + lines[start_pos ... end_pos].gsub(/\n(?!\z)/, "\n" + shift) + "__"
    end
    lines.gsub(/^((?:#{Regexp::quote(shift)})*)__(?=<\/?\w)/, '\1')
  end

  alias h escapeHTML
end
lib64/ruby/2.2.0/cgi/session.rb000064400000044133150402106060011655 0ustar00#
# cgi/session.rb - session support for cgi scripts
#
# Copyright (C) 2001  Yukihiro "Matz" Matsumoto
# Copyright (C) 2000  Network Applied Communication Laboratory, Inc.
# Copyright (C) 2000  Information-technology Promotion Agency, Japan
#
# Author: Yukihiro "Matz" Matsumoto
#
# Documentation: William Webber (william@williamwebber.com)

require 'cgi'
require 'tmpdir'

class CGI

  # == Overview
  #
  # This file provides the CGI::Session class, which provides session
  # support for CGI scripts.  A session is a sequence of HTTP requests
  # and responses linked together and associated with a single client.
  # Information associated with the session is stored
  # on the server between requests.  A session id is passed between client
  # and server with every request and response, transparently
  # to the user.  This adds state information to the otherwise stateless
  # HTTP request/response protocol.
  #
  # == Lifecycle
  #
  # A CGI::Session instance is created from a CGI object.  By default,
  # this CGI::Session instance will start a new session if none currently
  # exists, or continue the current session for this client if one does
  # exist.  The +new_session+ option can be used to either always or
  # never create a new session.  See #new() for more details.
  #
  # #delete() deletes a session from session storage.  It
  # does not however remove the session id from the client.  If the client
  # makes another request with the same id, the effect will be to start
  # a new session with the old session's id.
  #
  # == Setting and retrieving session data.
  #
  # The Session class associates data with a session as key-value pairs.
  # This data can be set and retrieved by indexing the Session instance
  # using '[]', much the same as hashes (although other hash methods
  # are not supported).
  #
  # When session processing has been completed for a request, the
  # session should be closed using the close() method.  This will
  # store the session's state to persistent storage.  If you want
  # to store the session's state to persistent storage without
  # finishing session processing for this request, call the update()
  # method.
  #
  # == Storing session state
  #
  # The caller can specify what form of storage to use for the session's
  # data with the +database_manager+ option to CGI::Session::new.  The
  # following storage classes are provided as part of the standard library:
  #
  # CGI::Session::FileStore:: stores data as plain text in a flat file.  Only
  #                           works with String data.  This is the default
  #                           storage type.
  # CGI::Session::MemoryStore:: stores data in an in-memory hash.  The data
  #                             only persists for as long as the current Ruby
  #                             interpreter instance does.
  # CGI::Session::PStore:: stores data in Marshalled format.  Provided by
  #                        cgi/session/pstore.rb.  Supports data of any type,
  #                        and provides file-locking and transaction support.
  #
  # Custom storage types can also be created by defining a class with
  # the following methods:
  #
  #    new(session, options)
  #    restore  # returns hash of session data.
  #    update
  #    close
  #    delete
  #
  # Changing storage type mid-session does not work.  Note in particular
  # that by default the FileStore and PStore session data files have the
  # same name.  If your application switches from one to the other without
  # making sure that filenames will be different
  # and clients still have old sessions lying around in cookies, then
  # things will break nastily!
  #
  # == Maintaining the session id.
  #
  # Most session state is maintained on the server.  However, a session
  # id must be passed backwards and forwards between client and server
  # to maintain a reference to this session state.
  #
  # The simplest way to do this is via cookies.  The CGI::Session class
  # provides transparent support for session id communication via cookies
  # if the client has cookies enabled.
  #
  # If the client has cookies disabled, the session id must be included
  # as a parameter of all requests sent by the client to the server.  The
  # CGI::Session class in conjunction with the CGI class will transparently
  # add the session id as a hidden input field to all forms generated
  # using the CGI#form() HTML generation method.  No built-in support is
  # provided for other mechanisms, such as URL re-writing.  The caller is
  # responsible for extracting the session id from the session_id
  # attribute and manually encoding it in URLs and adding it as a hidden
  # input to HTML forms created by other mechanisms.  Also, session expiry
  # is not automatically handled.
  #
  # == Examples of use
  #
  # === Setting the user's name
  #
  #   require 'cgi'
  #   require 'cgi/session'
  #   require 'cgi/session/pstore'     # provides CGI::Session::PStore
  #
  #   cgi = CGI.new("html4")
  #
  #   session = CGI::Session.new(cgi,
  #       'database_manager' => CGI::Session::PStore,  # use PStore
  #       'session_key' => '_rb_sess_id',              # custom session key
  #       'session_expires' => Time.now + 30 * 60,     # 30 minute timeout
  #       'prefix' => 'pstore_sid_')                   # PStore option
  #   if cgi.has_key?('user_name') and cgi['user_name'] != ''
  #       # coerce to String: cgi[] returns the
  #       # string-like CGI::QueryExtension::Value
  #       session['user_name'] = cgi['user_name'].to_s
  #   elsif !session['user_name']
  #       session['user_name'] = "guest"
  #   end
  #   session.close
  #
  # === Creating a new session safely
  #
  #   require 'cgi'
  #   require 'cgi/session'
  #
  #   cgi = CGI.new("html4")
  #
  #   # We make sure to delete an old session if one exists,
  #   # not just to free resources, but to prevent the session
  #   # from being maliciously hijacked later on.
  #   begin
  #       session = CGI::Session.new(cgi, 'new_session' => false)
  #       session.delete
  #   rescue ArgumentError  # if no old session
  #   end
  #   session = CGI::Session.new(cgi, 'new_session' => true)
  #   session.close
  #
  class Session

    class NoSession < RuntimeError #:nodoc:
    end

    # The id of this session.
    attr_reader :session_id, :new_session

    def Session::callback(dbman)  #:nodoc:
      Proc.new{
        dbman[0].close unless dbman.empty?
      }
    end

    # Create a new session id.
    #
    # The session id is an MD5 hash based upon the time,
    # a random number, and a constant string.  This routine
    # is used internally for automatically generated
    # session ids.
    def create_new_id
      require 'securerandom'
      begin
        session_id = SecureRandom.hex(16)
      rescue NotImplementedError
        require 'digest/md5'
        md5 = Digest::MD5::new
        now = Time::now
        md5.update(now.to_s)
        md5.update(String(now.usec))
        md5.update(String(rand(0)))
        md5.update(String($$))
        md5.update('foobar')
        session_id = md5.hexdigest
      end
      session_id
    end
    private :create_new_id

    # Create a new CGI::Session object for +request+.
    #
    # +request+ is an instance of the +CGI+ class (see cgi.rb).
    # +option+ is a hash of options for initialising this
    # CGI::Session instance.  The following options are
    # recognised:
    #
    # session_key:: the parameter name used for the session id.
    #               Defaults to '_session_id'.
    # session_id:: the session id to use.  If not provided, then
    #              it is retrieved from the +session_key+ parameter
    #              of the request, or automatically generated for
    #              a new session.
    # new_session:: if true, force creation of a new session.  If not set,
    #               a new session is only created if none currently
    #               exists.  If false, a new session is never created,
    #               and if none currently exists and the +session_id+
    #               option is not set, an ArgumentError is raised.
    # database_manager:: the name of the class providing storage facilities
    #                    for session state persistence.  Built-in support
    #                    is provided for +FileStore+ (the default),
    #                    +MemoryStore+, and +PStore+ (from
    #                    cgi/session/pstore.rb).  See the documentation for
    #                    these classes for more details.
    #
    # The following options are also recognised, but only apply if the
    # session id is stored in a cookie.
    #
    # session_expires:: the time the current session expires, as a
    #                   +Time+ object.  If not set, the session will terminate
    #                   when the user's browser is closed.
    # session_domain:: the hostname domain for which this session is valid.
    #                  If not set, defaults to the hostname of the server.
    # session_secure:: if +true+, this session will only work over HTTPS.
    # session_path:: the path for which this session applies.  Defaults
    #                to the directory of the CGI script.
    #
    # +option+ is also passed on to the session storage class initializer; see
    # the documentation for each session storage class for the options
    # they support.
    #
    # The retrieved or created session is automatically added to +request+
    # as a cookie, and also to its +output_hidden+ table, which is used
    # to add hidden input elements to forms.
    #
    # *WARNING* the +output_hidden+
    # fields are surrounded by a <fieldset> tag in HTML 4 generation, which
    # is _not_ invisible on many browsers; you may wish to disable the
    # use of fieldsets with code similar to the following
    # (see http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/37805)
    #
    #   cgi = CGI.new("html4")
    #   class << cgi
    #       undef_method :fieldset
    #   end
    #
    def initialize(request, option={})
      @new_session = false
      session_key = option['session_key'] || '_session_id'
      session_id = option['session_id']
      unless session_id
        if option['new_session']
          session_id = create_new_id
          @new_session = true
        end
      end
      unless session_id
        if request.key?(session_key)
          session_id = request[session_key]
          session_id = session_id.read if session_id.respond_to?(:read)
        end
        unless session_id
          session_id, = request.cookies[session_key]
        end
        unless session_id
          unless option.fetch('new_session', true)
            raise ArgumentError, "session_key `%s' should be supplied"%session_key
          end
          session_id = create_new_id
          @new_session = true
        end
      end
      @session_id = session_id
      dbman = option['database_manager'] || FileStore
      begin
        @dbman = dbman::new(self, option)
      rescue NoSession
        unless option.fetch('new_session', true)
          raise ArgumentError, "invalid session_id `%s'"%session_id
        end
        session_id = @session_id = create_new_id unless session_id
        @new_session=true
        retry
      end
      request.instance_eval do
        @output_hidden = {session_key => session_id} unless option['no_hidden']
        @output_cookies =  [
          Cookie::new("name" => session_key,
          "value" => session_id,
          "expires" => option['session_expires'],
          "domain" => option['session_domain'],
          "secure" => option['session_secure'],
          "path" =>
          if option['session_path']
            option['session_path']
          elsif ENV["SCRIPT_NAME"]
            File::dirname(ENV["SCRIPT_NAME"])
          else
          ""
          end)
        ] unless option['no_cookies']
      end
      @dbprot = [@dbman]
      ObjectSpace::define_finalizer(self, Session::callback(@dbprot))
    end

    # Retrieve the session data for key +key+.
    def [](key)
      @data ||= @dbman.restore
      @data[key]
    end

    # Set the session data for key +key+.
    def []=(key, val)
      @write_lock ||= true
      @data ||= @dbman.restore
      @data[key] = val
    end

    # Store session data on the server.  For some session storage types,
    # this is a no-op.
    def update
      @dbman.update
    end

    # Store session data on the server and close the session storage.
    # For some session storage types, this is a no-op.
    def close
      @dbman.close
      @dbprot.clear
    end

    # Delete the session from storage.  Also closes the storage.
    #
    # Note that the session's data is _not_ automatically deleted
    # upon the session expiring.
    def delete
      @dbman.delete
      @dbprot.clear
    end

    # File-based session storage class.
    #
    # Implements session storage as a flat file of 'key=value' values.
    # This storage type only works directly with String values; the
    # user is responsible for converting other types to Strings when
    # storing and from Strings when retrieving.
    class FileStore
      # Create a new FileStore instance.
      #
      # This constructor is used internally by CGI::Session.  The
      # user does not generally need to call it directly.
      #
      # +session+ is the session for which this instance is being
      # created.  The session id must only contain alphanumeric
      # characters; automatically generated session ids observe
      # this requirement.
      #
      # +option+ is a hash of options for the initializer.  The
      # following options are recognised:
      #
      # tmpdir:: the directory to use for storing the FileStore
      #          file.  Defaults to Dir::tmpdir (generally "/tmp"
      #          on Unix systems).
      # prefix:: the prefix to add to the session id when generating
      #          the filename for this session's FileStore file.
      #          Defaults to "cgi_sid_".
      # suffix:: the prefix to add to the session id when generating
      #          the filename for this session's FileStore file.
      #          Defaults to the empty string.
      #
      # This session's FileStore file will be created if it does
      # not exist, or opened if it does.
      def initialize(session, option={})
        dir = option['tmpdir'] || Dir::tmpdir
        prefix = option['prefix'] || 'cgi_sid_'
        suffix = option['suffix'] || ''
        id = session.session_id
        require 'digest/md5'
        md5 = Digest::MD5.hexdigest(id)[0,16]
        @path = dir+"/"+prefix+md5+suffix
        if File::exist? @path
          @hash = nil
        else
          unless session.new_session
            raise CGI::Session::NoSession, "uninitialized session"
          end
          @hash = {}
        end
      end

      # Restore session state from the session's FileStore file.
      #
      # Returns the session state as a hash.
      def restore
        unless @hash
          @hash = {}
          begin
            lockf = File.open(@path+".lock", "r")
            lockf.flock File::LOCK_SH
            f = File.open(@path, 'r')
            for line in f
              line.chomp!
              k, v = line.split('=',2)
              @hash[CGI::unescape(k)] = Marshal.restore(CGI::unescape(v))
            end
          ensure
            f.close unless f.nil?
            lockf.close if lockf
          end
        end
        @hash
      end

      # Save session state to the session's FileStore file.
      def update
        return unless @hash
        begin
          lockf = File.open(@path+".lock", File::CREAT|File::RDWR, 0600)
          lockf.flock File::LOCK_EX
          f = File.open(@path+".new", File::CREAT|File::TRUNC|File::WRONLY, 0600)
          for k,v in @hash
            f.printf "%s=%s\n", CGI::escape(k), CGI::escape(String(Marshal.dump(v)))
          end
          f.close
          File.rename @path+".new", @path
        ensure
          f.close if f and !f.closed?
          lockf.close if lockf
        end
      end

      # Update and close the session's FileStore file.
      def close
        update
      end

      # Close and delete the session's FileStore file.
      def delete
        File::unlink @path+".lock" rescue nil
        File::unlink @path+".new" rescue nil
        File::unlink @path rescue nil
      end
    end

    # In-memory session storage class.
    #
    # Implements session storage as a global in-memory hash.  Session
    # data will only persist for as long as the Ruby interpreter
    # instance does.
    class MemoryStore
      GLOBAL_HASH_TABLE = {} #:nodoc:

      # Create a new MemoryStore instance.
      #
      # +session+ is the session this instance is associated with.
      # +option+ is a list of initialisation options.  None are
      # currently recognized.
      def initialize(session, option=nil)
        @session_id = session.session_id
        unless GLOBAL_HASH_TABLE.key?(@session_id)
          unless session.new_session
            raise CGI::Session::NoSession, "uninitialized session"
          end
          GLOBAL_HASH_TABLE[@session_id] = {}
        end
      end

      # Restore session state.
      #
      # Returns session data as a hash.
      def restore
        GLOBAL_HASH_TABLE[@session_id]
      end

      # Update session state.
      #
      # A no-op.
      def update
        # don't need to update; hash is shared
      end

      # Close session storage.
      #
      # A no-op.
      def close
        # don't need to close
      end

      # Delete the session state.
      def delete
        GLOBAL_HASH_TABLE.delete(@session_id)
      end
    end

    # Dummy session storage class.
    #
    # Implements session storage place holder.  No actual storage
    # will be done.
    class NullStore
      # Create a new NullStore instance.
      #
      # +session+ is the session this instance is associated with.
      # +option+ is a list of initialisation options.  None are
      # currently recognised.
      def initialize(session, option=nil)
      end

      # Restore (empty) session state.
      def restore
        {}
      end

      # Update session state.
      #
      # A no-op.
      def update
      end

      # Close session storage.
      #
      # A no-op.
      def close
      end

      # Delete the session state.
      #
      # A no-op.
      def delete
      end
    end
  end
end
lib64/ruby/2.2.0/cgi/core.rb000064400000071221150402106060011120 0ustar00#--
# Methods for generating HTML, parsing CGI-related parameters, and
# generating HTTP responses.
#++
class CGI

  $CGI_ENV = ENV    # for FCGI support

  # String for carriage return
  CR  = "\015"

  # String for linefeed
  LF  = "\012"

  # Standard internet newline sequence
  EOL = CR + LF

  REVISION = '$Id: core.rb 46973 2014-07-27 11:04:28Z hsbt $' #:nodoc:

  # Whether processing will be required in binary vs text
  NEEDS_BINMODE = File::BINARY != 0

  # Path separators in different environments.
  PATH_SEPARATOR = {'UNIX'=>'/', 'WINDOWS'=>'\\', 'MACINTOSH'=>':'}

  # HTTP status codes.
  HTTP_STATUS = {
    "OK"                  => "200 OK",
    "PARTIAL_CONTENT"     => "206 Partial Content",
    "MULTIPLE_CHOICES"    => "300 Multiple Choices",
    "MOVED"               => "301 Moved Permanently",
    "REDIRECT"            => "302 Found",
    "NOT_MODIFIED"        => "304 Not Modified",
    "BAD_REQUEST"         => "400 Bad Request",
    "AUTH_REQUIRED"       => "401 Authorization Required",
    "FORBIDDEN"           => "403 Forbidden",
    "NOT_FOUND"           => "404 Not Found",
    "METHOD_NOT_ALLOWED"  => "405 Method Not Allowed",
    "NOT_ACCEPTABLE"      => "406 Not Acceptable",
    "LENGTH_REQUIRED"     => "411 Length Required",
    "PRECONDITION_FAILED" => "412 Precondition Failed",
    "SERVER_ERROR"        => "500 Internal Server Error",
    "NOT_IMPLEMENTED"     => "501 Method Not Implemented",
    "BAD_GATEWAY"         => "502 Bad Gateway",
    "VARIANT_ALSO_VARIES" => "506 Variant Also Negotiates"
  }

  # :startdoc:

  # Synonym for ENV.
  def env_table
    ENV
  end

  # Synonym for $stdin.
  def stdinput
    $stdin
  end

  # Synonym for $stdout.
  def stdoutput
    $stdout
  end

  private :env_table, :stdinput, :stdoutput

  # Create an HTTP header block as a string.
  #
  # :call-seq:
  #   http_header(content_type_string="text/html")
  #   http_header(headers_hash)
  #
  # Includes the empty line that ends the header block.
  #
  # +content_type_string+::
  #   If this form is used, this string is the <tt>Content-Type</tt>
  # +headers_hash+::
  #   A Hash of header values. The following header keys are recognized:
  #
  #   type:: The Content-Type header.  Defaults to "text/html"
  #   charset:: The charset of the body, appended to the Content-Type header.
  #   nph:: A boolean value.  If true, prepend protocol string and status
  #         code, and date; and sets default values for "server" and
  #         "connection" if not explicitly set.
  #   status::
  #     The HTTP status code as a String, returned as the Status header.  The
  #     values are:
  #
  #     OK:: 200 OK
  #     PARTIAL_CONTENT:: 206 Partial Content
  #     MULTIPLE_CHOICES:: 300 Multiple Choices
  #     MOVED:: 301 Moved Permanently
  #     REDIRECT:: 302 Found
  #     NOT_MODIFIED:: 304 Not Modified
  #     BAD_REQUEST:: 400 Bad Request
  #     AUTH_REQUIRED:: 401 Authorization Required
  #     FORBIDDEN:: 403 Forbidden
  #     NOT_FOUND:: 404 Not Found
  #     METHOD_NOT_ALLOWED:: 405 Method Not Allowed
  #     NOT_ACCEPTABLE:: 406 Not Acceptable
  #     LENGTH_REQUIRED:: 411 Length Required
  #     PRECONDITION_FAILED:: 412 Precondition Failed
  #     SERVER_ERROR:: 500 Internal Server Error
  #     NOT_IMPLEMENTED:: 501 Method Not Implemented
  #     BAD_GATEWAY:: 502 Bad Gateway
  #     VARIANT_ALSO_VARIES:: 506 Variant Also Negotiates
  #
  #   server:: The server software, returned as the Server header.
  #   connection:: The connection type, returned as the Connection header (for
  #                instance, "close".
  #   length:: The length of the content that will be sent, returned as the
  #            Content-Length header.
  #   language:: The language of the content, returned as the Content-Language
  #              header.
  #   expires:: The time on which the current content expires, as a +Time+
  #             object, returned as the Expires header.
  #   cookie::
  #     A cookie or cookies, returned as one or more Set-Cookie headers.  The
  #     value can be the literal string of the cookie; a CGI::Cookie object;
  #     an Array of literal cookie strings or Cookie objects; or a hash all of
  #     whose values are literal cookie strings or Cookie objects.
  #
  #     These cookies are in addition to the cookies held in the
  #     @output_cookies field.
  #
  #   Other headers can also be set; they are appended as key: value.
  #
  # Examples:
  #
  #   http_header
  #     # Content-Type: text/html
  #
  #   http_header("text/plain")
  #     # Content-Type: text/plain
  #
  #   http_header("nph"        => true,
  #               "status"     => "OK",  # == "200 OK"
  #                 # "status"     => "200 GOOD",
  #               "server"     => ENV['SERVER_SOFTWARE'],
  #               "connection" => "close",
  #               "type"       => "text/html",
  #               "charset"    => "iso-2022-jp",
  #                 # Content-Type: text/html; charset=iso-2022-jp
  #               "length"     => 103,
  #               "language"   => "ja",
  #               "expires"    => Time.now + 30,
  #               "cookie"     => [cookie1, cookie2],
  #               "my_header1" => "my_value"
  #               "my_header2" => "my_value")
  #
  # This method does not perform charset conversion.
  def http_header(options='text/html')
    if options.is_a?(String)
      content_type = options
      buf = _header_for_string(content_type)
    elsif options.is_a?(Hash)
      if options.size == 1 && options.has_key?('type')
        content_type = options['type']
        buf = _header_for_string(content_type)
      else
        buf = _header_for_hash(options.dup)
      end
    else
      raise ArgumentError.new("expected String or Hash but got #{options.class}")
    end
    if defined?(MOD_RUBY)
      _header_for_modruby(buf)
      return ''
    else
      buf << EOL    # empty line of separator
      return buf
    end
  end # http_header()

  # This method is an alias for #http_header, when HTML5 tag maker is inactive.
  #
  # NOTE: use #http_header to create HTTP header blocks, this alias is only
  # provided for backwards compatibility.
  #
  # Using #header with the HTML5 tag maker will create a <header> element.
  alias :header :http_header

  def _header_for_string(content_type) #:nodoc:
    buf = ''
    if nph?()
      buf << "#{$CGI_ENV['SERVER_PROTOCOL'] || 'HTTP/1.0'} 200 OK#{EOL}"
      buf << "Date: #{CGI.rfc1123_date(Time.now)}#{EOL}"
      buf << "Server: #{$CGI_ENV['SERVER_SOFTWARE']}#{EOL}"
      buf << "Connection: close#{EOL}"
    end
    buf << "Content-Type: #{content_type}#{EOL}"
    if @output_cookies
      @output_cookies.each {|cookie| buf << "Set-Cookie: #{cookie}#{EOL}" }
    end
    return buf
  end # _header_for_string
  private :_header_for_string

  def _header_for_hash(options)  #:nodoc:
    buf = ''
    ## add charset to option['type']
    options['type'] ||= 'text/html'
    charset = options.delete('charset')
    options['type'] += "; charset=#{charset}" if charset
    ## NPH
    options.delete('nph') if defined?(MOD_RUBY)
    if options.delete('nph') || nph?()
      protocol = $CGI_ENV['SERVER_PROTOCOL'] || 'HTTP/1.0'
      status = options.delete('status')
      status = HTTP_STATUS[status] || status || '200 OK'
      buf << "#{protocol} #{status}#{EOL}"
      buf << "Date: #{CGI.rfc1123_date(Time.now)}#{EOL}"
      options['server'] ||= $CGI_ENV['SERVER_SOFTWARE'] || ''
      options['connection'] ||= 'close'
    end
    ## common headers
    status = options.delete('status')
    buf << "Status: #{HTTP_STATUS[status] || status}#{EOL}" if status
    server = options.delete('server')
    buf << "Server: #{server}#{EOL}" if server
    connection = options.delete('connection')
    buf << "Connection: #{connection}#{EOL}" if connection
    type = options.delete('type')
    buf << "Content-Type: #{type}#{EOL}" #if type
    length = options.delete('length')
    buf << "Content-Length: #{length}#{EOL}" if length
    language = options.delete('language')
    buf << "Content-Language: #{language}#{EOL}" if language
    expires = options.delete('expires')
    buf << "Expires: #{CGI.rfc1123_date(expires)}#{EOL}" if expires
    ## cookie
    if cookie = options.delete('cookie')
      case cookie
      when String, Cookie
        buf << "Set-Cookie: #{cookie}#{EOL}"
      when Array
        arr = cookie
        arr.each {|c| buf << "Set-Cookie: #{c}#{EOL}" }
      when Hash
        hash = cookie
        hash.each_value {|c| buf << "Set-Cookie: #{c}#{EOL}" }
      end
    end
    if @output_cookies
      @output_cookies.each {|c| buf << "Set-Cookie: #{c}#{EOL}" }
    end
    ## other headers
    options.each do |key, value|
      buf << "#{key}: #{value}#{EOL}"
    end
    return buf
  end # _header_for_hash
  private :_header_for_hash

  def nph?  #:nodoc:
    return /IIS\/(\d+)/.match($CGI_ENV['SERVER_SOFTWARE']) && $1.to_i < 5
  end

  def _header_for_modruby(buf)  #:nodoc:
    request = Apache::request
    buf.scan(/([^:]+): (.+)#{EOL}/o) do |name, value|
      warn sprintf("name:%s value:%s\n", name, value) if $DEBUG
      case name
      when 'Set-Cookie'
        request.headers_out.add(name, value)
      when /^status$/i
        request.status_line = value
        request.status = value.to_i
      when /^content-type$/i
        request.content_type = value
      when /^content-encoding$/i
        request.content_encoding = value
      when /^location$/i
        request.status = 302 if request.status == 200
        request.headers_out[name] = value
      else
        request.headers_out[name] = value
      end
    end
    request.send_http_header
    return ''
  end
  private :_header_for_modruby

  # Print an HTTP header and body to $DEFAULT_OUTPUT ($>)
  #
  # :call-seq:
  #   cgi.out(content_type_string='text/html')
  #   cgi.out(headers_hash)
  #
  # +content_type_string+::
  #   If a string is passed, it is assumed to be the content type.
  # +headers_hash+::
  #   This is a Hash of headers, similar to that used by #http_header.
  # +block+::
  #   A block is required and should evaluate to the body of the response.
  #
  # <tt>Content-Length</tt> is automatically calculated from the size of
  # the String returned by the content block.
  #
  # If <tt>ENV['REQUEST_METHOD'] == "HEAD"</tt>, then only the header
  # is output (the content block is still required, but it is ignored).
  #
  # If the charset is "iso-2022-jp" or "euc-jp" or "shift_jis" then the
  # content is converted to this charset, and the language is set to "ja".
  #
  # Example:
  #
  #   cgi = CGI.new
  #   cgi.out{ "string" }
  #     # Content-Type: text/html
  #     # Content-Length: 6
  #     #
  #     # string
  #
  #   cgi.out("text/plain") { "string" }
  #     # Content-Type: text/plain
  #     # Content-Length: 6
  #     #
  #     # string
  #
  #   cgi.out("nph"        => true,
  #           "status"     => "OK",  # == "200 OK"
  #           "server"     => ENV['SERVER_SOFTWARE'],
  #           "connection" => "close",
  #           "type"       => "text/html",
  #           "charset"    => "iso-2022-jp",
  #             # Content-Type: text/html; charset=iso-2022-jp
  #           "language"   => "ja",
  #           "expires"    => Time.now + (3600 * 24 * 30),
  #           "cookie"     => [cookie1, cookie2],
  #           "my_header1" => "my_value",
  #           "my_header2" => "my_value") { "string" }
  #      # HTTP/1.1 200 OK
  #      # Date: Sun, 15 May 2011 17:35:54 GMT
  #      # Server: Apache 2.2.0
  #      # Connection: close
  #      # Content-Type: text/html; charset=iso-2022-jp
  #      # Content-Length: 6
  #      # Content-Language: ja
  #      # Expires: Tue, 14 Jun 2011 17:35:54 GMT
  #      # Set-Cookie: foo
  #      # Set-Cookie: bar
  #      # my_header1: my_value
  #      # my_header2: my_value
  #      #
  #      # string
  def out(options = "text/html") # :yield:

    options = { "type" => options } if options.kind_of?(String)
    content = yield
    options["length"] = content.bytesize.to_s
    output = stdoutput
    output.binmode if defined? output.binmode
    output.print http_header(options)
    output.print content unless "HEAD" == env_table['REQUEST_METHOD']
  end


  # Print an argument or list of arguments to the default output stream
  #
  #   cgi = CGI.new
  #   cgi.print    # default:  cgi.print == $DEFAULT_OUTPUT.print
  def print(*options)
    stdoutput.print(*options)
  end

  # Parse an HTTP query string into a hash of key=>value pairs.
  #
  #   params = CGI::parse("query_string")
  #     # {"name1" => ["value1", "value2", ...],
  #     #  "name2" => ["value1", "value2", ...], ... }
  #
  def CGI::parse(query)
    params = {}
    query.split(/[&;]/).each do |pairs|
      key, value = pairs.split('=',2).collect{|v| CGI::unescape(v) }

      next unless key

      params[key] ||= []
      params[key].push(value) if value
    end

    params.default=[].freeze
    params
  end

  # Maximum content length of post data
  ##MAX_CONTENT_LENGTH  = 2 * 1024 * 1024

  # Maximum number of request parameters when multipart
  MAX_MULTIPART_COUNT = 128

  # Mixin module that provides the following:
  #
  # 1. Access to the CGI environment variables as methods.  See
  #    documentation to the CGI class for a list of these variables.  The
  #    methods are exposed by removing the leading +HTTP_+ (if it exists) and
  #    downcasing the name.  For example, +auth_type+ will return the
  #    environment variable +AUTH_TYPE+, and +accept+ will return the value
  #    for +HTTP_ACCEPT+.
  #
  # 2. Access to cookies, including the cookies attribute.
  #
  # 3. Access to parameters, including the params attribute, and overloading
  #    #[] to perform parameter value lookup by key.
  #
  # 4. The initialize_query method, for initializing the above
  #    mechanisms, handling multipart forms, and allowing the
  #    class to be used in "offline" mode.
  #
  module QueryExtension

    %w[ CONTENT_LENGTH SERVER_PORT ].each do |env|
      define_method(env.sub(/^HTTP_/, '').downcase) do
        (val = env_table[env]) && Integer(val)
      end
    end

    %w[ AUTH_TYPE CONTENT_TYPE GATEWAY_INTERFACE PATH_INFO
        PATH_TRANSLATED QUERY_STRING REMOTE_ADDR REMOTE_HOST
        REMOTE_IDENT REMOTE_USER REQUEST_METHOD SCRIPT_NAME
        SERVER_NAME SERVER_PROTOCOL SERVER_SOFTWARE

        HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ACCEPT_ENCODING
        HTTP_ACCEPT_LANGUAGE HTTP_CACHE_CONTROL HTTP_FROM HTTP_HOST
        HTTP_NEGOTIATE HTTP_PRAGMA HTTP_REFERER HTTP_USER_AGENT ].each do |env|
      define_method(env.sub(/^HTTP_/, '').downcase) do
        env_table[env]
      end
    end

    # Get the raw cookies as a string.
    def raw_cookie
      env_table["HTTP_COOKIE"]
    end

    # Get the raw RFC2965 cookies as a string.
    def raw_cookie2
      env_table["HTTP_COOKIE2"]
    end

    # Get the cookies as a hash of cookie-name=>Cookie pairs.
    attr_accessor :cookies

    # Get the parameters as a hash of name=>values pairs, where
    # values is an Array.
    attr_reader :params

    # Get the uploaded files as a hash of name=>values pairs
    attr_reader :files

    # Set all the parameters.
    def params=(hash)
      @params.clear
      @params.update(hash)
    end

    ##
    # Parses multipart form elements according to
    #   http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2
    #
    # Returns a hash of multipart form parameters with bodies of type StringIO or
    # Tempfile depending on whether the multipart form element exceeds 10 KB
    #
    #   params[name => body]
    #
    def read_multipart(boundary, content_length)
      ## read first boundary
      stdin = stdinput
      first_line = "--#{boundary}#{EOL}"
      content_length -= first_line.bytesize
      status = stdin.read(first_line.bytesize)
      raise EOFError.new("no content body")  unless status
      raise EOFError.new("bad content body") unless first_line == status
      ## parse and set params
      params = {}
      @files = {}
      boundary_rexp = /--#{Regexp.quote(boundary)}(#{EOL}|--)/
      boundary_size = "#{EOL}--#{boundary}#{EOL}".bytesize
      buf = ''
      bufsize = 10 * 1024
      max_count = MAX_MULTIPART_COUNT
      n = 0
      tempfiles = []
      while true
        (n += 1) < max_count or raise StandardError.new("too many parameters.")
        ## create body (StringIO or Tempfile)
        body = create_body(bufsize < content_length)
        tempfiles << body if defined?(Tempfile) && body.kind_of?(Tempfile)
        class << body
          if method_defined?(:path)
            alias local_path path
          else
            def local_path
              nil
            end
          end
          attr_reader :original_filename, :content_type
        end
        ## find head and boundary
        head = nil
        separator = EOL * 2
        until head && matched = boundary_rexp.match(buf)
          if !head && pos = buf.index(separator)
            len  = pos + EOL.bytesize
            head = buf[0, len]
            buf  = buf[(pos+separator.bytesize)..-1]
          else
            if head && buf.size > boundary_size
              len = buf.size - boundary_size
              body.print(buf[0, len])
              buf[0, len] = ''
            end
            c = stdin.read(bufsize < content_length ? bufsize : content_length)
            raise EOFError.new("bad content body") if c.nil? || c.empty?
            buf << c
            content_length -= c.bytesize
          end
        end
        ## read to end of boundary
        m = matched
        len = m.begin(0)
        s = buf[0, len]
        if s =~ /(\r?\n)\z/
          s = buf[0, len - $1.bytesize]
        end
        body.print(s)
        buf = buf[m.end(0)..-1]
        boundary_end = m[1]
        content_length = -1 if boundary_end == '--'
        ## reset file cursor position
        body.rewind
        ## original filename
        /Content-Disposition:.* filename=(?:"(.*?)"|([^;\r\n]*))/i.match(head)
        filename = $1 || $2 || ''
        filename = CGI.unescape(filename) if unescape_filename?()
        body.instance_variable_set(:@original_filename, filename.taint)
        ## content type
        /Content-Type: (.*)/i.match(head)
        (content_type = $1 || '').chomp!
        body.instance_variable_set(:@content_type, content_type.taint)
        ## query parameter name
        /Content-Disposition:.* name=(?:"(.*?)"|([^;\r\n]*))/i.match(head)
        name = $1 || $2 || ''
        if body.original_filename.empty?
          value=body.read.dup.force_encoding(@accept_charset)
          body.close! if defined?(Tempfile) && body.kind_of?(Tempfile)
          (params[name] ||= []) << value
          unless value.valid_encoding?
            if @accept_charset_error_block
              @accept_charset_error_block.call(name,value)
            else
              raise InvalidEncoding,"Accept-Charset encoding error"
            end
          end
          class << params[name].last;self;end.class_eval do
            define_method(:read){self}
            define_method(:original_filename){""}
            define_method(:content_type){""}
          end
        else
          (params[name] ||= []) << body
          @files[name]=body
        end
        ## break loop
        break if content_length == -1
      end
      raise EOFError, "bad boundary end of body part" unless boundary_end =~ /--/
      params.default = []
      params
    rescue Exception
      if tempfiles
        tempfiles.each {|t|
          if t.path
            t.close!
          end
        }
      end
      raise
    end # read_multipart
    private :read_multipart
    def create_body(is_large)  #:nodoc:
      if is_large
        require 'tempfile'
        body = Tempfile.new('CGI', encoding: Encoding::ASCII_8BIT)
      else
        begin
          require 'stringio'
          body = StringIO.new("".force_encoding(Encoding::ASCII_8BIT))
        rescue LoadError
          require 'tempfile'
          body = Tempfile.new('CGI', encoding: Encoding::ASCII_8BIT)
        end
      end
      body.binmode if defined? body.binmode
      return body
    end
    def unescape_filename?  #:nodoc:
      user_agent = $CGI_ENV['HTTP_USER_AGENT']
      return /Mac/i.match(user_agent) && /Mozilla/i.match(user_agent) && !/MSIE/i.match(user_agent)
    end

    # offline mode. read name=value pairs on standard input.
    def read_from_cmdline
      require "shellwords"

      string = unless ARGV.empty?
        ARGV.join(' ')
      else
        if STDIN.tty?
          STDERR.print(
            %|(offline mode: enter name=value pairs on standard input)\n|
          )
        end
        array = readlines rescue nil
        if not array.nil?
            array.join(' ').gsub(/\n/n, '')
        else
            ""
        end
      end.gsub(/\\=/n, '%3D').gsub(/\\&/n, '%26')

      words = Shellwords.shellwords(string)

      if words.find{|x| /=/n.match(x) }
        words.join('&')
      else
        words.join('+')
      end
    end
    private :read_from_cmdline

    # A wrapper class to use a StringIO object as the body and switch
    # to a TempFile when the passed threshold is passed.
    # Initialize the data from the query.
    #
    # Handles multipart forms (in particular, forms that involve file uploads).
    # Reads query parameters in the @params field, and cookies into @cookies.
    def initialize_query()
      if ("POST" == env_table['REQUEST_METHOD']) and
        %r|\Amultipart/form-data.*boundary=\"?([^\";,]+)\"?|.match(env_table['CONTENT_TYPE'])
        current_max_multipart_length = @max_multipart_length.respond_to?(:call) ? @max_multipart_length.call : @max_multipart_length
        raise StandardError.new("too large multipart data.") if env_table['CONTENT_LENGTH'].to_i > current_max_multipart_length
        boundary = $1.dup
        @multipart = true
        @params = read_multipart(boundary, Integer(env_table['CONTENT_LENGTH']))
      else
        @multipart = false
        @params = CGI::parse(
                    case env_table['REQUEST_METHOD']
                    when "GET", "HEAD"
                      if defined?(MOD_RUBY)
                        Apache::request.args or ""
                      else
                        env_table['QUERY_STRING'] or ""
                      end
                    when "POST"
                      stdinput.binmode if defined? stdinput.binmode
                      stdinput.read(Integer(env_table['CONTENT_LENGTH'])) or ''
                    else
                      read_from_cmdline
                    end.dup.force_encoding(@accept_charset)
                  )
        unless Encoding.find(@accept_charset) == Encoding::ASCII_8BIT
          @params.each do |key,values|
            values.each do |value|
              unless value.valid_encoding?
                if @accept_charset_error_block
                  @accept_charset_error_block.call(key,value)
                else
                  raise InvalidEncoding,"Accept-Charset encoding error"
                end
              end
            end
          end
        end
      end

      @cookies = CGI::Cookie::parse((env_table['HTTP_COOKIE'] or env_table['COOKIE']))
    end
    private :initialize_query

    # Returns whether the form contained multipart/form-data
    def multipart?
      @multipart
    end

    # Get the value for the parameter with a given key.
    #
    # If the parameter has multiple values, only the first will be
    # retrieved; use #params to get the array of values.
    def [](key)
      params = @params[key]
      return '' unless params
      value = params[0]
      if @multipart
        if value
          return value
        elsif defined? StringIO
          StringIO.new("".force_encoding(Encoding::ASCII_8BIT))
        else
          Tempfile.new("CGI",encoding: Encoding::ASCII_8BIT)
        end
      else
        str = if value then value.dup else "" end
        str
      end
    end

    # Return all query parameter names as an array of String.
    def keys(*args)
      @params.keys(*args)
    end

    # Returns true if a given query string parameter exists.
    def has_key?(*args)
      @params.has_key?(*args)
    end
    alias key? has_key?
    alias include? has_key?

  end # QueryExtension

  # Exception raised when there is an invalid encoding detected
  class InvalidEncoding < Exception; end

  # @@accept_charset is default accept character set.
  # This default value default is "UTF-8"
  # If you want to change the default accept character set
  # when create a new CGI instance, set this:
  #
  #   CGI.accept_charset = "EUC-JP"
  #
  @@accept_charset="UTF-8"

  # Return the accept character set for all new CGI instances.
  def self.accept_charset
    @@accept_charset
  end

  # Set the accept character set for all new CGI instances.
  def self.accept_charset=(accept_charset)
    @@accept_charset=accept_charset
  end

  # Return the accept character set for this CGI instance.
  attr_reader :accept_charset

  # @@max_multipart_length is the maximum length of multipart data.
  # The default value is 128 * 1024 * 1024 bytes
  #
  # The default can be set to something else in the CGI constructor,
  # via the :max_multipart_length key in the option hash.
  #
  # See CGI.new documentation.
  #
  @@max_multipart_length= 128 * 1024 * 1024

  # Create a new CGI instance.
  #
  # :call-seq:
  #   CGI.new(tag_maker) { block }
  #   CGI.new(options_hash = {}) { block }
  #
  #
  # <tt>tag_maker</tt>::
  #   This is the same as using the +options_hash+ form with the value <tt>{
  #   :tag_maker => tag_maker }</tt> Note that it is recommended to use the
  #   +options_hash+ form, since it also allows you specify the charset you
  #   will accept.
  # <tt>options_hash</tt>::
  #   A Hash that recognizes three options:
  #
  #   <tt>:accept_charset</tt>::
  #     specifies encoding of received query string.  If omitted,
  #     <tt>@@accept_charset</tt> is used.  If the encoding is not valid, a
  #     CGI::InvalidEncoding will be raised.
  #
  #     Example. Suppose <tt>@@accept_charset</tt> is "UTF-8"
  #
  #     when not specified:
  #
  #         cgi=CGI.new      # @accept_charset # => "UTF-8"
  #
  #     when specified as "EUC-JP":
  #
  #         cgi=CGI.new(:accept_charset => "EUC-JP") # => "EUC-JP"
  #
  #   <tt>:tag_maker</tt>::
  #     String that specifies which version of the HTML generation methods to
  #     use.  If not specified, no HTML generation methods will be loaded.
  #
  #     The following values are supported:
  #
  #     "html3":: HTML 3.x
  #     "html4":: HTML 4.0
  #     "html4Tr":: HTML 4.0 Transitional
  #     "html4Fr":: HTML 4.0 with Framesets
  #     "html5":: HTML 5
  #
  #   <tt>:max_multipart_length</tt>::
  #     Specifies maximum length of multipart data. Can be an Integer scalar or
  #     a lambda, that will be evaluated when the request is parsed. This
  #     allows more complex logic to be set when determining whether to accept
  #     multipart data (e.g. consult a registered users upload allowance)
  #
  #     Default is 128 * 1024 * 1024 bytes
  #
  #         cgi=CGI.new(:max_multipart_length => 268435456) # simple scalar
  #
  #         cgi=CGI.new(:max_multipart_length => -> {check_filesystem}) # lambda
  #
  # <tt>block</tt>::
  #   If provided, the block is called when an invalid encoding is
  #   encountered. For example:
  #
  #     encoding_errors={}
  #     cgi=CGI.new(:accept_charset=>"EUC-JP") do |name,value|
  #       encoding_errors[name] = value
  #     end
  #
  # Finally, if the CGI object is not created in a standard CGI call
  # environment (that is, it can't locate REQUEST_METHOD in its environment),
  # then it will run in "offline" mode.  In this mode, it reads its parameters
  # from the command line or (failing that) from standard input.  Otherwise,
  # cookies and other parameters are parsed automatically from the standard
  # CGI locations, which varies according to the REQUEST_METHOD.
  def initialize(options = {}, &block) # :yields: name, value
    @accept_charset_error_block = block_given? ? block : nil
    @options={
      :accept_charset=>@@accept_charset,
      :max_multipart_length=>@@max_multipart_length
    }
    case options
    when Hash
      @options.merge!(options)
    when String
      @options[:tag_maker]=options
    end
    @accept_charset=@options[:accept_charset]
    @max_multipart_length=@options[:max_multipart_length]
    if defined?(MOD_RUBY) && !ENV.key?("GATEWAY_INTERFACE")
      Apache.request.setup_cgi_env
    end

    extend QueryExtension
    @multipart = false

    initialize_query()  # set @params, @cookies
    @output_cookies = nil
    @output_hidden = nil

    case @options[:tag_maker]
    when "html3"
      require 'cgi/html'
      extend Html3
      extend HtmlExtension
    when "html4"
      require 'cgi/html'
      extend Html4
      extend HtmlExtension
    when "html4Tr"
      require 'cgi/html'
      extend Html4Tr
      extend HtmlExtension
    when "html4Fr"
      require 'cgi/html'
      extend Html4Tr
      extend Html4Fr
      extend HtmlExtension
    when "html5"
      require 'cgi/html'
      extend Html5
      extend HtmlExtension
    end
  end

end   # class CGI
lib64/ruby/2.2.0/resolv.rb000064400000220071150402106060010737 0ustar00require 'socket'
require 'timeout'
require 'thread'

begin
  require 'securerandom'
rescue LoadError
end

# Resolv is a thread-aware DNS resolver library written in Ruby.  Resolv can
# handle multiple DNS requests concurrently without blocking the entire Ruby
# interpreter.
#
# See also resolv-replace.rb to replace the libc resolver with Resolv.
#
# Resolv can look up various DNS resources using the DNS module directly.
#
# Examples:
#
#   p Resolv.getaddress "www.ruby-lang.org"
#   p Resolv.getname "210.251.121.214"
#
#   Resolv::DNS.open do |dns|
#     ress = dns.getresources "www.ruby-lang.org", Resolv::DNS::Resource::IN::A
#     p ress.map { |r| r.address }
#     ress = dns.getresources "ruby-lang.org", Resolv::DNS::Resource::IN::MX
#     p ress.map { |r| [r.exchange.to_s, r.preference] }
#   end
#
#
# == Bugs
#
# * NIS is not supported.
# * /etc/nsswitch.conf is not supported.

class Resolv

  ##
  # Looks up the first IP address for +name+.

  def self.getaddress(name)
    DefaultResolver.getaddress(name)
  end

  ##
  # Looks up all IP address for +name+.

  def self.getaddresses(name)
    DefaultResolver.getaddresses(name)
  end

  ##
  # Iterates over all IP addresses for +name+.

  def self.each_address(name, &block)
    DefaultResolver.each_address(name, &block)
  end

  ##
  # Looks up the hostname of +address+.

  def self.getname(address)
    DefaultResolver.getname(address)
  end

  ##
  # Looks up all hostnames for +address+.

  def self.getnames(address)
    DefaultResolver.getnames(address)
  end

  ##
  # Iterates over all hostnames for +address+.

  def self.each_name(address, &proc)
    DefaultResolver.each_name(address, &proc)
  end

  ##
  # Creates a new Resolv using +resolvers+.

  def initialize(resolvers=[Hosts.new, DNS.new])
    @resolvers = resolvers
  end

  ##
  # Looks up the first IP address for +name+.

  def getaddress(name)
    each_address(name) {|address| return address}
    raise ResolvError.new("no address for #{name}")
  end

  ##
  # Looks up all IP address for +name+.

  def getaddresses(name)
    ret = []
    each_address(name) {|address| ret << address}
    return ret
  end

  ##
  # Iterates over all IP addresses for +name+.

  def each_address(name)
    if AddressRegex =~ name
      yield name
      return
    end
    yielded = false
    @resolvers.each {|r|
      r.each_address(name) {|address|
        yield address.to_s
        yielded = true
      }
      return if yielded
    }
  end

  ##
  # Looks up the hostname of +address+.

  def getname(address)
    each_name(address) {|name| return name}
    raise ResolvError.new("no name for #{address}")
  end

  ##
  # Looks up all hostnames for +address+.

  def getnames(address)
    ret = []
    each_name(address) {|name| ret << name}
    return ret
  end

  ##
  # Iterates over all hostnames for +address+.

  def each_name(address)
    yielded = false
    @resolvers.each {|r|
      r.each_name(address) {|name|
        yield name.to_s
        yielded = true
      }
      return if yielded
    }
  end

  ##
  # Indicates a failure to resolve a name or address.

  class ResolvError < StandardError; end

  ##
  # Indicates a timeout resolving a name or address.

  class ResolvTimeout < Timeout::Error; end

  ##
  # Resolv::Hosts is a hostname resolver that uses the system hosts file.

  class Hosts
    begin
      raise LoadError unless /mswin|mingw|cygwin/ =~ RUBY_PLATFORM
      require 'win32/resolv'
      DefaultFileName = Win32::Resolv.get_hosts_path
    rescue LoadError
      DefaultFileName = '/etc/hosts'
    end

    ##
    # Creates a new Resolv::Hosts, using +filename+ for its data source.

    def initialize(filename = DefaultFileName)
      @filename = filename
      @mutex = Mutex.new
      @initialized = nil
    end

    def lazy_initialize # :nodoc:
      @mutex.synchronize {
        unless @initialized
          @name2addr = {}
          @addr2name = {}
          open(@filename, 'rb') {|f|
            f.each {|line|
              line.sub!(/#.*/, '')
              addr, hostname, *aliases = line.split(/\s+/)
              next unless addr
              addr.untaint
              hostname.untaint
              @addr2name[addr] = [] unless @addr2name.include? addr
              @addr2name[addr] << hostname
              @addr2name[addr] += aliases
              @name2addr[hostname] = [] unless @name2addr.include? hostname
              @name2addr[hostname] << addr
              aliases.each {|n|
                n.untaint
                @name2addr[n] = [] unless @name2addr.include? n
                @name2addr[n] << addr
              }
            }
          }
          @name2addr.each {|name, arr| arr.reverse!}
          @initialized = true
        end
      }
      self
    end

    ##
    # Gets the IP address of +name+ from the hosts file.

    def getaddress(name)
      each_address(name) {|address| return address}
      raise ResolvError.new("#{@filename} has no name: #{name}")
    end

    ##
    # Gets all IP addresses for +name+ from the hosts file.

    def getaddresses(name)
      ret = []
      each_address(name) {|address| ret << address}
      return ret
    end

    ##
    # Iterates over all IP addresses for +name+ retrieved from the hosts file.

    def each_address(name, &proc)
      lazy_initialize
      if @name2addr.include?(name)
        @name2addr[name].each(&proc)
      end
    end

    ##
    # Gets the hostname of +address+ from the hosts file.

    def getname(address)
      each_name(address) {|name| return name}
      raise ResolvError.new("#{@filename} has no address: #{address}")
    end

    ##
    # Gets all hostnames for +address+ from the hosts file.

    def getnames(address)
      ret = []
      each_name(address) {|name| ret << name}
      return ret
    end

    ##
    # Iterates over all hostnames for +address+ retrieved from the hosts file.

    def each_name(address, &proc)
      lazy_initialize
      if @addr2name.include?(address)
        @addr2name[address].each(&proc)
      end
    end
  end

  ##
  # Resolv::DNS is a DNS stub resolver.
  #
  # Information taken from the following places:
  #
  # * STD0013
  # * RFC 1035
  # * ftp://ftp.isi.edu/in-notes/iana/assignments/dns-parameters
  # * etc.

  class DNS

    ##
    # Default DNS Port

    Port = 53

    ##
    # Default DNS UDP packet size

    UDPSize = 512

    ##
    # Creates a new DNS resolver.  See Resolv::DNS.new for argument details.
    #
    # Yields the created DNS resolver to the block, if given, otherwise
    # returns it.

    def self.open(*args)
      dns = new(*args)
      return dns unless block_given?
      begin
        yield dns
      ensure
        dns.close
      end
    end

    ##
    # Creates a new DNS resolver.
    #
    # +config_info+ can be:
    #
    # nil:: Uses /etc/resolv.conf.
    # String:: Path to a file using /etc/resolv.conf's format.
    # Hash:: Must contain :nameserver, :search and :ndots keys.
    # :nameserver_port can be used to specify port number of nameserver address.
    #
    # The value of :nameserver should be an address string or
    # an array of address strings.
    # - :nameserver => '8.8.8.8'
    # - :nameserver => ['8.8.8.8', '8.8.4.4']
    #
    # The value of :nameserver_port should be an array of
    # pair of nameserver address and port number.
    # - :nameserver_port => [['8.8.8.8', 53], ['8.8.4.4', 53]]
    #
    # Example:
    #
    #   Resolv::DNS.new(:nameserver => ['210.251.121.21'],
    #                   :search => ['ruby-lang.org'],
    #                   :ndots => 1)

    def initialize(config_info=nil)
      @mutex = Mutex.new
      @config = Config.new(config_info)
      @initialized = nil
    end

    # Sets the resolver timeouts.  This may be a single positive number
    # or an array of positive numbers representing timeouts in seconds.
    # If an array is specified, a DNS request will retry and wait for
    # each successive interval in the array until a successful response
    # is received.  Specifying +nil+ reverts to the default timeouts:
    # [ 5, second = 5 * 2 / nameserver_count, 2 * second, 4 * second ]
    #
    # Example:
    #
    #   dns.timeouts = 3
    #
    def timeouts=(values)
      @config.timeouts = values
    end

    def lazy_initialize # :nodoc:
      @mutex.synchronize {
        unless @initialized
          @config.lazy_initialize
          @initialized = true
        end
      }
      self
    end

    ##
    # Closes the DNS resolver.

    def close
      @mutex.synchronize {
        if @initialized
          @initialized = false
        end
      }
    end

    ##
    # Gets the IP address of +name+ from the DNS resolver.
    #
    # +name+ can be a Resolv::DNS::Name or a String.  Retrieved address will
    # be a Resolv::IPv4 or Resolv::IPv6

    def getaddress(name)
      each_address(name) {|address| return address}
      raise ResolvError.new("DNS result has no information for #{name}")
    end

    ##
    # Gets all IP addresses for +name+ from the DNS resolver.
    #
    # +name+ can be a Resolv::DNS::Name or a String.  Retrieved addresses will
    # be a Resolv::IPv4 or Resolv::IPv6

    def getaddresses(name)
      ret = []
      each_address(name) {|address| ret << address}
      return ret
    end

    ##
    # Iterates over all IP addresses for +name+ retrieved from the DNS
    # resolver.
    #
    # +name+ can be a Resolv::DNS::Name or a String.  Retrieved addresses will
    # be a Resolv::IPv4 or Resolv::IPv6

    def each_address(name)
      each_resource(name, Resource::IN::A) {|resource| yield resource.address}
      if use_ipv6?
        each_resource(name, Resource::IN::AAAA) {|resource| yield resource.address}
      end
    end

    def use_ipv6? # :nodoc:
      begin
        list = Socket.ip_address_list
      rescue NotImplementedError
        return true
      end
      list.any? {|a| a.ipv6? && !a.ipv6_loopback? && !a.ipv6_linklocal? }
    end
    private :use_ipv6?

    ##
    # Gets the hostname for +address+ from the DNS resolver.
    #
    # +address+ must be a Resolv::IPv4, Resolv::IPv6 or a String.  Retrieved
    # name will be a Resolv::DNS::Name.

    def getname(address)
      each_name(address) {|name| return name}
      raise ResolvError.new("DNS result has no information for #{address}")
    end

    ##
    # Gets all hostnames for +address+ from the DNS resolver.
    #
    # +address+ must be a Resolv::IPv4, Resolv::IPv6 or a String.  Retrieved
    # names will be Resolv::DNS::Name instances.

    def getnames(address)
      ret = []
      each_name(address) {|name| ret << name}
      return ret
    end

    ##
    # Iterates over all hostnames for +address+ retrieved from the DNS
    # resolver.
    #
    # +address+ must be a Resolv::IPv4, Resolv::IPv6 or a String.  Retrieved
    # names will be Resolv::DNS::Name instances.

    def each_name(address)
      case address
      when Name
        ptr = address
      when IPv4::Regex
        ptr = IPv4.create(address).to_name
      when IPv6::Regex
        ptr = IPv6.create(address).to_name
      else
        raise ResolvError.new("cannot interpret as address: #{address}")
      end
      each_resource(ptr, Resource::IN::PTR) {|resource| yield resource.name}
    end

    ##
    # Look up the +typeclass+ DNS resource of +name+.
    #
    # +name+ must be a Resolv::DNS::Name or a String.
    #
    # +typeclass+ should be one of the following:
    #
    # * Resolv::DNS::Resource::IN::A
    # * Resolv::DNS::Resource::IN::AAAA
    # * Resolv::DNS::Resource::IN::ANY
    # * Resolv::DNS::Resource::IN::CNAME
    # * Resolv::DNS::Resource::IN::HINFO
    # * Resolv::DNS::Resource::IN::MINFO
    # * Resolv::DNS::Resource::IN::MX
    # * Resolv::DNS::Resource::IN::NS
    # * Resolv::DNS::Resource::IN::PTR
    # * Resolv::DNS::Resource::IN::SOA
    # * Resolv::DNS::Resource::IN::TXT
    # * Resolv::DNS::Resource::IN::WKS
    #
    # Returned resource is represented as a Resolv::DNS::Resource instance,
    # i.e. Resolv::DNS::Resource::IN::A.

    def getresource(name, typeclass)
      each_resource(name, typeclass) {|resource| return resource}
      raise ResolvError.new("DNS result has no information for #{name}")
    end

    ##
    # Looks up all +typeclass+ DNS resources for +name+.  See #getresource for
    # argument details.

    def getresources(name, typeclass)
      ret = []
      each_resource(name, typeclass) {|resource| ret << resource}
      return ret
    end

    ##
    # Iterates over all +typeclass+ DNS resources for +name+.  See
    # #getresource for argument details.

    def each_resource(name, typeclass, &proc)
      fetch_resource(name, typeclass) {|reply, reply_name|
        extract_resources(reply, reply_name, typeclass, &proc)
      }
    end

    def fetch_resource(name, typeclass)
      lazy_initialize
      requester = make_udp_requester
      senders = {}
      begin
        @config.resolv(name) {|candidate, tout, nameserver, port|
          msg = Message.new
          msg.rd = 1
          msg.add_question(candidate, typeclass)
          unless sender = senders[[candidate, nameserver, port]]
            sender = requester.sender(msg, candidate, nameserver, port)
            next if !sender
            senders[[candidate, nameserver, port]] = sender
          end
          reply, reply_name = requester.request(sender, tout)
          case reply.rcode
          when RCode::NoError
            if reply.tc == 1 and not Requester::TCP === requester
              requester.close
              # Retry via TCP:
              requester = make_tcp_requester(nameserver, port)
              senders = {}
              # This will use TCP for all remaining candidates (assuming the
              # current candidate does not already respond successfully via
              # TCP).  This makes sense because we already know the full
              # response will not fit in an untruncated UDP packet.
              redo
            else
              yield(reply, reply_name)
            end
            return
          when RCode::NXDomain
            raise Config::NXDomain.new(reply_name.to_s)
          else
            raise Config::OtherResolvError.new(reply_name.to_s)
          end
        }
      ensure
        requester.close
      end
    end

    def make_udp_requester # :nodoc:
      nameserver_port = @config.nameserver_port
      if nameserver_port.length == 1
        Requester::ConnectedUDP.new(*nameserver_port[0])
      else
        Requester::UnconnectedUDP.new(*nameserver_port)
      end
    end

    def make_tcp_requester(host, port) # :nodoc:
      return Requester::TCP.new(host, port)
    end

    def extract_resources(msg, name, typeclass) # :nodoc:
      if typeclass < Resource::ANY
        n0 = Name.create(name)
        msg.each_answer {|n, ttl, data|
          yield data if n0 == n
        }
      end
      yielded = false
      n0 = Name.create(name)
      msg.each_answer {|n, ttl, data|
        if n0 == n
          case data
          when typeclass
            yield data
            yielded = true
          when Resource::CNAME
            n0 = data.name
          end
        end
      }
      return if yielded
      msg.each_answer {|n, ttl, data|
        if n0 == n
          case data
          when typeclass
            yield data
          end
        end
      }
    end

    if defined? SecureRandom
      def self.random(arg) # :nodoc:
        begin
          SecureRandom.random_number(arg)
        rescue NotImplementedError
          rand(arg)
        end
      end
    else
      def self.random(arg) # :nodoc:
        rand(arg)
      end
    end


    def self.rangerand(range) # :nodoc:
      base = range.begin
      len = range.end - range.begin
      if !range.exclude_end?
        len += 1
      end
      base + random(len)
    end

    RequestID = {} # :nodoc:
    RequestIDMutex = Mutex.new # :nodoc:

    def self.allocate_request_id(host, port) # :nodoc:
      id = nil
      RequestIDMutex.synchronize {
        h = (RequestID[[host, port]] ||= {})
        begin
          id = rangerand(0x0000..0xffff)
        end while h[id]
        h[id] = true
      }
      id
    end

    def self.free_request_id(host, port, id) # :nodoc:
      RequestIDMutex.synchronize {
        key = [host, port]
        if h = RequestID[key]
          h.delete id
          if h.empty?
            RequestID.delete key
          end
        end
      }
    end

    def self.bind_random_port(udpsock, bind_host="0.0.0.0") # :nodoc:
      begin
        port = rangerand(1024..65535)
        udpsock.bind(bind_host, port)
      rescue Errno::EADDRINUSE, # POSIX
             Errno::EACCES, # SunOS: See PRIV_SYS_NFS in privileges(5)
             Errno::EPERM # FreeBSD: security.mac.portacl.port_high is configurable.  See mac_portacl(4).
        retry
      end
    end

    class Requester # :nodoc:
      def initialize
        @senders = {}
        @socks = nil
      end

      def request(sender, tout)
        start = Time.now
        timelimit = start + tout
        begin
          sender.send
        rescue Errno::EHOSTUNREACH, # multi-homed IPv6 may generate this
               Errno::ENETUNREACH
          raise ResolvTimeout
        end
        while true
          before_select = Time.now
          timeout = timelimit - before_select
          if timeout <= 0
            raise ResolvTimeout
          end
          select_result = IO.select(@socks, nil, nil, timeout)
          if !select_result
            after_select = Time.now
            next if after_select < timelimit
            raise ResolvTimeout
          end
          begin
            reply, from = recv_reply(select_result[0])
          rescue Errno::ECONNREFUSED, # GNU/Linux, FreeBSD
                 Errno::ECONNRESET # Windows
            # No name server running on the server?
            # Don't wait anymore.
            raise ResolvTimeout
          end
          begin
            msg = Message.decode(reply)
          rescue DecodeError
            next # broken DNS message ignored
          end
          if s = sender_for(from, msg)
            break
          else
            # unexpected DNS message ignored
          end
        end
        return msg, s.data
      end

      def sender_for(addr, msg)
        @senders[[addr,msg.id]]
      end

      def close
        socks = @socks
        @socks = nil
        if socks
          socks.each {|sock| sock.close }
        end
      end

      class Sender # :nodoc:
        def initialize(msg, data, sock)
          @msg = msg
          @data = data
          @sock = sock
        end
      end

      class UnconnectedUDP < Requester # :nodoc:
        def initialize(*nameserver_port)
          super()
          @nameserver_port = nameserver_port
          @socks_hash = {}
          @socks = []
          nameserver_port.each {|host, port|
            if host.index(':')
              bind_host = "::"
              af = Socket::AF_INET6
            else
              bind_host = "0.0.0.0"
              af = Socket::AF_INET
            end
            next if @socks_hash[bind_host]
            begin
              sock = UDPSocket.new(af)
            rescue Errno::EAFNOSUPPORT
              next # The kernel doesn't support the address family.
            end
            sock.do_not_reverse_lookup = true
            DNS.bind_random_port(sock, bind_host)
            @socks << sock
            @socks_hash[bind_host] = sock
          }
        end

        def recv_reply(readable_socks)
          reply, from = readable_socks[0].recvfrom(UDPSize)
          return reply, [from[3],from[1]]
        end

        def sender(msg, data, host, port=Port)
          sock = @socks_hash[host.index(':') ? "::" : "0.0.0.0"]
          return nil if !sock
          service = [host, port]
          id = DNS.allocate_request_id(host, port)
          request = msg.encode
          request[0,2] = [id].pack('n')
          return @senders[[service, id]] =
            Sender.new(request, data, sock, host, port)
        end

        def close
          super
          @senders.each_key {|service, id|
            DNS.free_request_id(service[0], service[1], id)
          }
        end

        class Sender < Requester::Sender # :nodoc:
          def initialize(msg, data, sock, host, port)
            super(msg, data, sock)
            @host = host
            @port = port
          end
          attr_reader :data

          def send
            raise "@sock is nil." if @sock.nil?
            @sock.send(@msg, 0, @host, @port)
          end
        end
      end

      class ConnectedUDP < Requester # :nodoc:
        def initialize(host, port=Port)
          super()
          @host = host
          @port = port
          is_ipv6 = host.index(':')
          sock = UDPSocket.new(is_ipv6 ? Socket::AF_INET6 : Socket::AF_INET)
          @socks = [sock]
          sock.do_not_reverse_lookup = true
          DNS.bind_random_port(sock, is_ipv6 ? "::" : "0.0.0.0")
          sock.connect(host, port)
        end

        def recv_reply(readable_socks)
          reply = readable_socks[0].recv(UDPSize)
          return reply, nil
        end

        def sender(msg, data, host=@host, port=@port)
          unless host == @host && port == @port
            raise RequestError.new("host/port don't match: #{host}:#{port}")
          end
          id = DNS.allocate_request_id(@host, @port)
          request = msg.encode
          request[0,2] = [id].pack('n')
          return @senders[[nil,id]] = Sender.new(request, data, @socks[0])
        end

        def close
          super
          @senders.each_key {|from, id|
            DNS.free_request_id(@host, @port, id)
          }
        end

        class Sender < Requester::Sender # :nodoc:
          def send
            raise "@sock is nil." if @sock.nil?
            @sock.send(@msg, 0)
          end
          attr_reader :data
        end
      end

      class MDNSOneShot < UnconnectedUDP # :nodoc:
        def sender(msg, data, host, port=Port)
          id = DNS.allocate_request_id(host, port)
          request = msg.encode
          request[0,2] = [id].pack('n')
          sock = @socks_hash[host.index(':') ? "::" : "0.0.0.0"]
          return @senders[id] =
            UnconnectedUDP::Sender.new(request, data, sock, host, port)
        end

        def sender_for(addr, msg)
          @senders[msg.id]
        end
      end

      class TCP < Requester # :nodoc:
        def initialize(host, port=Port)
          super()
          @host = host
          @port = port
          sock = TCPSocket.new(@host, @port)
          @socks = [sock]
          @senders = {}
        end

        def recv_reply(readable_socks)
          len = readable_socks[0].read(2).unpack('n')[0]
          reply = @socks[0].read(len)
          return reply, nil
        end

        def sender(msg, data, host=@host, port=@port)
          unless host == @host && port == @port
            raise RequestError.new("host/port don't match: #{host}:#{port}")
          end
          id = DNS.allocate_request_id(@host, @port)
          request = msg.encode
          request[0,2] = [request.length, id].pack('nn')
          return @senders[[nil,id]] = Sender.new(request, data, @socks[0])
        end

        class Sender < Requester::Sender # :nodoc:
          def send
            @sock.print(@msg)
            @sock.flush
          end
          attr_reader :data
        end

        def close
          super
          @senders.each_key {|from,id|
            DNS.free_request_id(@host, @port, id)
          }
        end
      end

      ##
      # Indicates a problem with the DNS request.

      class RequestError < StandardError
      end
    end

    class Config # :nodoc:
      def initialize(config_info=nil)
        @mutex = Mutex.new
        @config_info = config_info
        @initialized = nil
        @timeouts = nil
      end

      def timeouts=(values)
        if values
          values = Array(values)
          values.each do |t|
            Numeric === t or raise ArgumentError, "#{t.inspect} is not numeric"
            t > 0.0 or raise ArgumentError, "timeout=#{t} must be positive"
          end
          @timeouts = values
        else
          @timeouts = nil
        end
      end

      def Config.parse_resolv_conf(filename)
        nameserver = []
        search = nil
        ndots = 1
        open(filename, 'rb') {|f|
          f.each {|line|
            line.sub!(/[#;].*/, '')
            keyword, *args = line.split(/\s+/)
            args.each { |arg|
              arg.untaint
            }
            next unless keyword
            case keyword
            when 'nameserver'
              nameserver += args
            when 'domain'
              next if args.empty?
              search = [args[0]]
            when 'search'
              next if args.empty?
              search = args
            when 'options'
              args.each {|arg|
                case arg
                when /\Andots:(\d+)\z/
                  ndots = $1.to_i
                end
              }
            end
          }
        }
        return { :nameserver => nameserver, :search => search, :ndots => ndots }
      end

      def Config.default_config_hash(filename="/etc/resolv.conf")
        if File.exist? filename
          config_hash = Config.parse_resolv_conf(filename)
        else
          if /mswin|cygwin|mingw|bccwin/ =~ RUBY_PLATFORM
            require 'win32/resolv'
            search, nameserver = Win32::Resolv.get_resolv_info
            config_hash = {}
            config_hash[:nameserver] = nameserver if nameserver
            config_hash[:search] = [search].flatten if search
          end
        end
        config_hash || {}
      end

      def lazy_initialize
        @mutex.synchronize {
          unless @initialized
            @nameserver_port = []
            @search = nil
            @ndots = 1
            case @config_info
            when nil
              config_hash = Config.default_config_hash
            when String
              config_hash = Config.parse_resolv_conf(@config_info)
            when Hash
              config_hash = @config_info.dup
              if String === config_hash[:nameserver]
                config_hash[:nameserver] = [config_hash[:nameserver]]
              end
              if String === config_hash[:search]
                config_hash[:search] = [config_hash[:search]]
              end
            else
              raise ArgumentError.new("invalid resolv configuration: #{@config_info.inspect}")
            end
            if config_hash.include? :nameserver
              @nameserver_port = config_hash[:nameserver].map {|ns| [ns, Port] }
            end
            if config_hash.include? :nameserver_port
              @nameserver_port = config_hash[:nameserver_port].map {|ns, port| [ns, (port || Port)] }
            end
            @search = config_hash[:search] if config_hash.include? :search
            @ndots = config_hash[:ndots] if config_hash.include? :ndots

            if @nameserver_port.empty?
              @nameserver_port << ['0.0.0.0', Port]
            end
            if @search
              @search = @search.map {|arg| Label.split(arg) }
            else
              hostname = Socket.gethostname
              if /\./ =~ hostname
                @search = [Label.split($')]
              else
                @search = [[]]
              end
            end

            if !@nameserver_port.kind_of?(Array) ||
               @nameserver_port.any? {|ns_port|
                  !(Array === ns_port) ||
                  ns_port.length != 2
                  !(String === ns_port[0]) ||
                  !(Integer === ns_port[1])
               }
              raise ArgumentError.new("invalid nameserver config: #{@nameserver_port.inspect}")
            end

            if !@search.kind_of?(Array) ||
               !@search.all? {|ls| ls.all? {|l| Label::Str === l } }
              raise ArgumentError.new("invalid search config: #{@search.inspect}")
            end

            if !@ndots.kind_of?(Integer)
              raise ArgumentError.new("invalid ndots config: #{@ndots.inspect}")
            end

            @initialized = true
          end
        }
        self
      end

      def single?
        lazy_initialize
        if @nameserver_port.length == 1
          return @nameserver_port[0]
        else
          return nil
        end
      end

      def nameserver_port
        @nameserver_port
      end

      def generate_candidates(name)
        candidates = nil
        name = Name.create(name)
        if name.absolute?
          candidates = [name]
        else
          if @ndots <= name.length - 1
            candidates = [Name.new(name.to_a)]
          else
            candidates = []
          end
          candidates.concat(@search.map {|domain| Name.new(name.to_a + domain)})
          fname = Name.create("#{name}.")
          if !candidates.include?(fname)
            candidates << fname
          end
        end
        return candidates
      end

      InitialTimeout = 5

      def generate_timeouts
        ts = [InitialTimeout]
        ts << ts[-1] * 2 / @nameserver_port.length
        ts << ts[-1] * 2
        ts << ts[-1] * 2
        return ts
      end

      def resolv(name)
        candidates = generate_candidates(name)
        timeouts = @timeouts || generate_timeouts
        begin
          candidates.each {|candidate|
            begin
              timeouts.each {|tout|
                @nameserver_port.each {|nameserver, port|
                  begin
                    yield candidate, tout, nameserver, port
                  rescue ResolvTimeout
                  end
                }
              }
              raise ResolvError.new("DNS resolv timeout: #{name}")
            rescue NXDomain
            end
          }
        rescue ResolvError
        end
      end

      ##
      # Indicates no such domain was found.

      class NXDomain < ResolvError
      end

      ##
      # Indicates some other unhandled resolver error was encountered.

      class OtherResolvError < ResolvError
      end
    end

    module OpCode # :nodoc:
      Query = 0
      IQuery = 1
      Status = 2
      Notify = 4
      Update = 5
    end

    module RCode # :nodoc:
      NoError = 0
      FormErr = 1
      ServFail = 2
      NXDomain = 3
      NotImp = 4
      Refused = 5
      YXDomain = 6
      YXRRSet = 7
      NXRRSet = 8
      NotAuth = 9
      NotZone = 10
      BADVERS = 16
      BADSIG = 16
      BADKEY = 17
      BADTIME = 18
      BADMODE = 19
      BADNAME = 20
      BADALG = 21
    end

    ##
    # Indicates that the DNS response was unable to be decoded.

    class DecodeError < StandardError
    end

    ##
    # Indicates that the DNS request was unable to be encoded.

    class EncodeError < StandardError
    end

    module Label # :nodoc:
      def self.split(arg)
        labels = []
        arg.scan(/[^\.]+/) {labels << Str.new($&)}
        return labels
      end

      class Str # :nodoc:
        def initialize(string)
          @string = string
          @downcase = string.downcase
        end
        attr_reader :string, :downcase

        def to_s
          return @string
        end

        def inspect
          return "#<#{self.class} #{self}>"
        end

        def ==(other)
          return self.class == other.class && @downcase == other.downcase
        end

        def eql?(other)
          return self == other
        end

        def hash
          return @downcase.hash
        end
      end
    end

    ##
    # A representation of a DNS name.

    class Name

      ##
      # Creates a new DNS name from +arg+.  +arg+ can be:
      #
      # Name:: returns +arg+.
      # String:: Creates a new Name.

      def self.create(arg)
        case arg
        when Name
          return arg
        when String
          return Name.new(Label.split(arg), /\.\z/ =~ arg ? true : false)
        else
          raise ArgumentError.new("cannot interpret as DNS name: #{arg.inspect}")
        end
      end

      def initialize(labels, absolute=true) # :nodoc:
        labels = labels.map {|label|
          case label
          when String then Label::Str.new(label)
          when Label::Str then label
          else
            raise ArgumentError, "unexpected label: #{label.inspect}"
          end
        }
        @labels = labels
        @absolute = absolute
      end

      def inspect # :nodoc:
        "#<#{self.class}: #{self}#{@absolute ? '.' : ''}>"
      end

      ##
      # True if this name is absolute.

      def absolute?
        return @absolute
      end

      def ==(other) # :nodoc:
        return false unless Name === other
        return false unless @absolute == other.absolute?
        return @labels == other.to_a
      end

      alias eql? == # :nodoc:

      ##
      # Returns true if +other+ is a subdomain.
      #
      # Example:
      #
      #   domain = Resolv::DNS::Name.create("y.z")
      #   p Resolv::DNS::Name.create("w.x.y.z").subdomain_of?(domain) #=> true
      #   p Resolv::DNS::Name.create("x.y.z").subdomain_of?(domain) #=> true
      #   p Resolv::DNS::Name.create("y.z").subdomain_of?(domain) #=> false
      #   p Resolv::DNS::Name.create("z").subdomain_of?(domain) #=> false
      #   p Resolv::DNS::Name.create("x.y.z.").subdomain_of?(domain) #=> false
      #   p Resolv::DNS::Name.create("w.z").subdomain_of?(domain) #=> false
      #

      def subdomain_of?(other)
        raise ArgumentError, "not a domain name: #{other.inspect}" unless Name === other
        return false if @absolute != other.absolute?
        other_len = other.length
        return false if @labels.length <= other_len
        return @labels[-other_len, other_len] == other.to_a
      end

      def hash # :nodoc:
        return @labels.hash ^ @absolute.hash
      end

      def to_a # :nodoc:
        return @labels
      end

      def length # :nodoc:
        return @labels.length
      end

      def [](i) # :nodoc:
        return @labels[i]
      end

      ##
      # returns the domain name as a string.
      #
      # The domain name doesn't have a trailing dot even if the name object is
      # absolute.
      #
      # Example:
      #
      #   p Resolv::DNS::Name.create("x.y.z.").to_s #=> "x.y.z"
      #   p Resolv::DNS::Name.create("x.y.z").to_s #=> "x.y.z"

      def to_s
        return @labels.join('.')
      end
    end

    class Message # :nodoc:
      @@identifier = -1

      def initialize(id = (@@identifier += 1) & 0xffff)
        @id = id
        @qr = 0
        @opcode = 0
        @aa = 0
        @tc = 0
        @rd = 0 # recursion desired
        @ra = 0 # recursion available
        @rcode = 0
        @question = []
        @answer = []
        @authority = []
        @additional = []
      end

      attr_accessor :id, :qr, :opcode, :aa, :tc, :rd, :ra, :rcode
      attr_reader :question, :answer, :authority, :additional

      def ==(other)
        return @id == other.id &&
               @qr == other.qr &&
               @opcode == other.opcode &&
               @aa == other.aa &&
               @tc == other.tc &&
               @rd == other.rd &&
               @ra == other.ra &&
               @rcode == other.rcode &&
               @question == other.question &&
               @answer == other.answer &&
               @authority == other.authority &&
               @additional == other.additional
      end

      def add_question(name, typeclass)
        @question << [Name.create(name), typeclass]
      end

      def each_question
        @question.each {|name, typeclass|
          yield name, typeclass
        }
      end

      def add_answer(name, ttl, data)
        @answer << [Name.create(name), ttl, data]
      end

      def each_answer
        @answer.each {|name, ttl, data|
          yield name, ttl, data
        }
      end

      def add_authority(name, ttl, data)
        @authority << [Name.create(name), ttl, data]
      end

      def each_authority
        @authority.each {|name, ttl, data|
          yield name, ttl, data
        }
      end

      def add_additional(name, ttl, data)
        @additional << [Name.create(name), ttl, data]
      end

      def each_additional
        @additional.each {|name, ttl, data|
          yield name, ttl, data
        }
      end

      def each_resource
        each_answer {|name, ttl, data| yield name, ttl, data}
        each_authority {|name, ttl, data| yield name, ttl, data}
        each_additional {|name, ttl, data| yield name, ttl, data}
      end

      def encode
        return MessageEncoder.new {|msg|
          msg.put_pack('nnnnnn',
            @id,
            (@qr & 1) << 15 |
            (@opcode & 15) << 11 |
            (@aa & 1) << 10 |
            (@tc & 1) << 9 |
            (@rd & 1) << 8 |
            (@ra & 1) << 7 |
            (@rcode & 15),
            @question.length,
            @answer.length,
            @authority.length,
            @additional.length)
          @question.each {|q|
            name, typeclass = q
            msg.put_name(name)
            msg.put_pack('nn', typeclass::TypeValue, typeclass::ClassValue)
          }
          [@answer, @authority, @additional].each {|rr|
            rr.each {|r|
              name, ttl, data = r
              msg.put_name(name)
              msg.put_pack('nnN', data.class::TypeValue, data.class::ClassValue, ttl)
              msg.put_length16 {data.encode_rdata(msg)}
            }
          }
        }.to_s
      end

      class MessageEncoder # :nodoc:
        def initialize
          @data = ''
          @names = {}
          yield self
        end

        def to_s
          return @data
        end

        def put_bytes(d)
          @data << d
        end

        def put_pack(template, *d)
          @data << d.pack(template)
        end

        def put_length16
          length_index = @data.length
          @data << "\0\0"
          data_start = @data.length
          yield
          data_end = @data.length
          @data[length_index, 2] = [data_end - data_start].pack("n")
        end

        def put_string(d)
          self.put_pack("C", d.length)
          @data << d
        end

        def put_string_list(ds)
          ds.each {|d|
            self.put_string(d)
          }
        end

        def put_name(d)
          put_labels(d.to_a)
        end

        def put_labels(d)
          d.each_index {|i|
            domain = d[i..-1]
            if idx = @names[domain]
              self.put_pack("n", 0xc000 | idx)
              return
            else
              @names[domain] = @data.length
              self.put_label(d[i])
            end
          }
          @data << "\0"
        end

        def put_label(d)
          self.put_string(d.to_s)
        end
      end

      def Message.decode(m)
        o = Message.new(0)
        MessageDecoder.new(m) {|msg|
          id, flag, qdcount, ancount, nscount, arcount =
            msg.get_unpack('nnnnnn')
          o.id = id
          o.qr = (flag >> 15) & 1
          o.opcode = (flag >> 11) & 15
          o.aa = (flag >> 10) & 1
          o.tc = (flag >> 9) & 1
          o.rd = (flag >> 8) & 1
          o.ra = (flag >> 7) & 1
          o.rcode = flag & 15
          (1..qdcount).each {
            name, typeclass = msg.get_question
            o.add_question(name, typeclass)
          }
          (1..ancount).each {
            name, ttl, data = msg.get_rr
            o.add_answer(name, ttl, data)
          }
          (1..nscount).each {
            name, ttl, data = msg.get_rr
            o.add_authority(name, ttl, data)
          }
          (1..arcount).each {
            name, ttl, data = msg.get_rr
            o.add_additional(name, ttl, data)
          }
        }
        return o
      end

      class MessageDecoder # :nodoc:
        def initialize(data)
          @data = data
          @index = 0
          @limit = data.length
          yield self
        end

        def inspect
          "\#<#{self.class}: #{@data[0, @index].inspect} #{@data[@index..-1].inspect}>"
        end

        def get_length16
          len, = self.get_unpack('n')
          save_limit = @limit
          @limit = @index + len
          d = yield(len)
          if @index < @limit
            raise DecodeError.new("junk exists")
          elsif @limit < @index
            raise DecodeError.new("limit exceeded")
          end
          @limit = save_limit
          return d
        end

        def get_bytes(len = @limit - @index)
          raise DecodeError.new("limit exceeded") if @limit < @index + len
          d = @data[@index, len]
          @index += len
          return d
        end

        def get_unpack(template)
          len = 0
          template.each_byte {|byte|
            byte = "%c" % byte
            case byte
            when ?c, ?C
              len += 1
            when ?n
              len += 2
            when ?N
              len += 4
            else
              raise StandardError.new("unsupported template: '#{byte.chr}' in '#{template}'")
            end
          }
          raise DecodeError.new("limit exceeded") if @limit < @index + len
          arr = @data.unpack("@#{@index}#{template}")
          @index += len
          return arr
        end

        def get_string
          raise DecodeError.new("limit exceeded") if @limit <= @index
          len = @data[@index].ord
          raise DecodeError.new("limit exceeded") if @limit < @index + 1 + len
          d = @data[@index + 1, len]
          @index += 1 + len
          return d
        end

        def get_string_list
          strings = []
          while @index < @limit
            strings << self.get_string
          end
          strings
        end

        def get_name
          return Name.new(self.get_labels)
        end

        def get_labels
          prev_index = @index
          save_index = nil
          d = []
          while true
            raise DecodeError.new("limit exceeded") if @limit <= @index
            case @data[@index].ord
            when 0
              @index += 1
              if save_index
                @index = save_index
              end
              return d
            when 192..255
              idx = self.get_unpack('n')[0] & 0x3fff
              if prev_index <= idx
                raise DecodeError.new("non-backward name pointer")
              end
              prev_index = idx
              if !save_index
                save_index = @index
              end
              @index = idx
            else
              d << self.get_label
            end
          end
        end

        def get_label
          return Label::Str.new(self.get_string)
        end

        def get_question
          name = self.get_name
          type, klass = self.get_unpack("nn")
          return name, Resource.get_class(type, klass)
        end

        def get_rr
          name = self.get_name
          type, klass, ttl = self.get_unpack('nnN')
          typeclass = Resource.get_class(type, klass)
          res = self.get_length16 { typeclass.decode_rdata self }
          res.instance_variable_set :@ttl, ttl
          return name, ttl, res
        end
      end
    end

    ##
    # A DNS query abstract class.

    class Query
      def encode_rdata(msg) # :nodoc:
        raise EncodeError.new("#{self.class} is query.")
      end

      def self.decode_rdata(msg) # :nodoc:
        raise DecodeError.new("#{self.class} is query.")
      end
    end

    ##
    # A DNS resource abstract class.

    class Resource < Query

      ##
      # Remaining Time To Live for this Resource.

      attr_reader :ttl

      ClassHash = {} # :nodoc:

      def encode_rdata(msg) # :nodoc:
        raise NotImplementedError.new
      end

      def self.decode_rdata(msg) # :nodoc:
        raise NotImplementedError.new
      end

      def ==(other) # :nodoc:
        return false unless self.class == other.class
        s_ivars = self.instance_variables
        s_ivars.sort!
        s_ivars.delete :@ttl
        o_ivars = other.instance_variables
        o_ivars.sort!
        o_ivars.delete :@ttl
        return s_ivars == o_ivars &&
          s_ivars.collect {|name| self.instance_variable_get name} ==
            o_ivars.collect {|name| other.instance_variable_get name}
      end

      def eql?(other) # :nodoc:
        return self == other
      end

      def hash # :nodoc:
        h = 0
        vars = self.instance_variables
        vars.delete :@ttl
        vars.each {|name|
          h ^= self.instance_variable_get(name).hash
        }
        return h
      end

      def self.get_class(type_value, class_value) # :nodoc:
        return ClassHash[[type_value, class_value]] ||
               Generic.create(type_value, class_value)
      end

      ##
      # A generic resource abstract class.

      class Generic < Resource

        ##
        # Creates a new generic resource.

        def initialize(data)
          @data = data
        end

        ##
        # Data for this generic resource.

        attr_reader :data

        def encode_rdata(msg) # :nodoc:
          msg.put_bytes(data)
        end

        def self.decode_rdata(msg) # :nodoc:
          return self.new(msg.get_bytes)
        end

        def self.create(type_value, class_value) # :nodoc:
          c = Class.new(Generic)
          c.const_set(:TypeValue, type_value)
          c.const_set(:ClassValue, class_value)
          Generic.const_set("Type#{type_value}_Class#{class_value}", c)
          ClassHash[[type_value, class_value]] = c
          return c
        end
      end

      ##
      # Domain Name resource abstract class.

      class DomainName < Resource

        ##
        # Creates a new DomainName from +name+.

        def initialize(name)
          @name = name
        end

        ##
        # The name of this DomainName.

        attr_reader :name

        def encode_rdata(msg) # :nodoc:
          msg.put_name(@name)
        end

        def self.decode_rdata(msg) # :nodoc:
          return self.new(msg.get_name)
        end
      end

      # Standard (class generic) RRs

      ClassValue = nil # :nodoc:

      ##
      # An authoritative name server.

      class NS < DomainName
        TypeValue = 2 # :nodoc:
      end

      ##
      # The canonical name for an alias.

      class CNAME < DomainName
        TypeValue = 5 # :nodoc:
      end

      ##
      # Start Of Authority resource.

      class SOA < Resource

        TypeValue = 6 # :nodoc:

        ##
        # Creates a new SOA record.  See the attr documentation for the
        # details of each argument.

        def initialize(mname, rname, serial, refresh, retry_, expire, minimum)
          @mname = mname
          @rname = rname
          @serial = serial
          @refresh = refresh
          @retry = retry_
          @expire = expire
          @minimum = minimum
        end

        ##
        # Name of the host where the master zone file for this zone resides.

        attr_reader :mname

        ##
        # The person responsible for this domain name.

        attr_reader :rname

        ##
        # The version number of the zone file.

        attr_reader :serial

        ##
        # How often, in seconds, a secondary name server is to check for
        # updates from the primary name server.

        attr_reader :refresh

        ##
        # How often, in seconds, a secondary name server is to retry after a
        # failure to check for a refresh.

        attr_reader :retry

        ##
        # Time in seconds that a secondary name server is to use the data
        # before refreshing from the primary name server.

        attr_reader :expire

        ##
        # The minimum number of seconds to be used for TTL values in RRs.

        attr_reader :minimum

        def encode_rdata(msg) # :nodoc:
          msg.put_name(@mname)
          msg.put_name(@rname)
          msg.put_pack('NNNNN', @serial, @refresh, @retry, @expire, @minimum)
        end

        def self.decode_rdata(msg) # :nodoc:
          mname = msg.get_name
          rname = msg.get_name
          serial, refresh, retry_, expire, minimum = msg.get_unpack('NNNNN')
          return self.new(
            mname, rname, serial, refresh, retry_, expire, minimum)
        end
      end

      ##
      # A Pointer to another DNS name.

      class PTR < DomainName
        TypeValue = 12 # :nodoc:
      end

      ##
      # Host Information resource.

      class HINFO < Resource

        TypeValue = 13 # :nodoc:

        ##
        # Creates a new HINFO running +os+ on +cpu+.

        def initialize(cpu, os)
          @cpu = cpu
          @os = os
        end

        ##
        # CPU architecture for this resource.

        attr_reader :cpu

        ##
        # Operating system for this resource.

        attr_reader :os

        def encode_rdata(msg) # :nodoc:
          msg.put_string(@cpu)
          msg.put_string(@os)
        end

        def self.decode_rdata(msg) # :nodoc:
          cpu = msg.get_string
          os = msg.get_string
          return self.new(cpu, os)
        end
      end

      ##
      # Mailing list or mailbox information.

      class MINFO < Resource

        TypeValue = 14 # :nodoc:

        def initialize(rmailbx, emailbx)
          @rmailbx = rmailbx
          @emailbx = emailbx
        end

        ##
        # Domain name responsible for this mail list or mailbox.

        attr_reader :rmailbx

        ##
        # Mailbox to use for error messages related to the mail list or mailbox.

        attr_reader :emailbx

        def encode_rdata(msg) # :nodoc:
          msg.put_name(@rmailbx)
          msg.put_name(@emailbx)
        end

        def self.decode_rdata(msg) # :nodoc:
          rmailbx = msg.get_string
          emailbx = msg.get_string
          return self.new(rmailbx, emailbx)
        end
      end

      ##
      # Mail Exchanger resource.

      class MX < Resource

        TypeValue= 15 # :nodoc:

        ##
        # Creates a new MX record with +preference+, accepting mail at
        # +exchange+.

        def initialize(preference, exchange)
          @preference = preference
          @exchange = exchange
        end

        ##
        # The preference for this MX.

        attr_reader :preference

        ##
        # The host of this MX.

        attr_reader :exchange

        def encode_rdata(msg) # :nodoc:
          msg.put_pack('n', @preference)
          msg.put_name(@exchange)
        end

        def self.decode_rdata(msg) # :nodoc:
          preference, = msg.get_unpack('n')
          exchange = msg.get_name
          return self.new(preference, exchange)
        end
      end

      ##
      # Unstructured text resource.

      class TXT < Resource

        TypeValue = 16 # :nodoc:

        def initialize(first_string, *rest_strings)
          @strings = [first_string, *rest_strings]
        end

        ##
        # Returns an Array of Strings for this TXT record.

        attr_reader :strings

        ##
        # Returns the concatenated string from +strings+.

        def data
          @strings.join("")
        end

        def encode_rdata(msg) # :nodoc:
          msg.put_string_list(@strings)
        end

        def self.decode_rdata(msg) # :nodoc:
          strings = msg.get_string_list
          return self.new(*strings)
        end
      end

      ##
      # Location resource

      class LOC < Resource

        TypeValue = 29 # :nodoc:

        def initialize(version, ssize, hprecision, vprecision, latitude, longitude, altitude)
          @version    = version
          @ssize      = Resolv::LOC::Size.create(ssize)
          @hprecision = Resolv::LOC::Size.create(hprecision)
          @vprecision = Resolv::LOC::Size.create(vprecision)
          @latitude   = Resolv::LOC::Coord.create(latitude)
          @longitude  = Resolv::LOC::Coord.create(longitude)
          @altitude   = Resolv::LOC::Alt.create(altitude)
        end

        ##
        # Returns the version value for this LOC record which should always be 00

        attr_reader :version

        ##
        # The spherical size of this LOC
        # in meters using scientific notation as 2 integers of XeY

        attr_reader :ssize

        ##
        # The horizontal precision using ssize type values
        # in meters using scientific notation as 2 integers of XeY
        # for precision use value/2 e.g. 2m = +/-1m

        attr_reader :hprecision

        ##
        # The vertical precision using ssize type values
        # in meters using scientific notation as 2 integers of XeY
        # for precision use value/2 e.g. 2m = +/-1m

        attr_reader :vprecision

        ##
        # The latitude for this LOC where 2**31 is the equator
        # in thousandths of an arc second as an unsigned 32bit integer

        attr_reader :latitude

        ##
        # The longitude for this LOC where 2**31 is the prime meridian
        # in thousandths of an arc second as an unsigned 32bit integer

        attr_reader :longitude

        ##
        # The altitude of the LOC above a reference sphere whose surface sits 100km below the WGS84 spheroid
        # in centimeters as an unsigned 32bit integer

        attr_reader :altitude


        def encode_rdata(msg) # :nodoc:
          msg.put_bytes(@version)
          msg.put_bytes(@ssize.scalar)
          msg.put_bytes(@hprecision.scalar)
          msg.put_bytes(@vprecision.scalar)
          msg.put_bytes(@latitude.coordinates)
          msg.put_bytes(@longitude.coordinates)
          msg.put_bytes(@altitude.altitude)
        end

        def self.decode_rdata(msg) # :nodoc:
          version    = msg.get_bytes(1)
          ssize      = msg.get_bytes(1)
          hprecision = msg.get_bytes(1)
          vprecision = msg.get_bytes(1)
          latitude   = msg.get_bytes(4)
          longitude  = msg.get_bytes(4)
          altitude   = msg.get_bytes(4)
          return self.new(
            version,
            Resolv::LOC::Size.new(ssize),
            Resolv::LOC::Size.new(hprecision),
            Resolv::LOC::Size.new(vprecision),
            Resolv::LOC::Coord.new(latitude,"lat"),
            Resolv::LOC::Coord.new(longitude,"lon"),
            Resolv::LOC::Alt.new(altitude)
          )
        end
      end

      ##
      # A Query type requesting any RR.

      class ANY < Query
        TypeValue = 255 # :nodoc:
      end

      ClassInsensitiveTypes = [ # :nodoc:
        NS, CNAME, SOA, PTR, HINFO, MINFO, MX, TXT, LOC, ANY
      ]

      ##
      # module IN contains ARPA Internet specific RRs.

      module IN

        ClassValue = 1 # :nodoc:

        ClassInsensitiveTypes.each {|s|
          c = Class.new(s)
          c.const_set(:TypeValue, s::TypeValue)
          c.const_set(:ClassValue, ClassValue)
          ClassHash[[s::TypeValue, ClassValue]] = c
          self.const_set(s.name.sub(/.*::/, ''), c)
        }

        ##
        # IPv4 Address resource

        class A < Resource
          TypeValue = 1
          ClassValue = IN::ClassValue
          ClassHash[[TypeValue, ClassValue]] = self # :nodoc:

          ##
          # Creates a new A for +address+.

          def initialize(address)
            @address = IPv4.create(address)
          end

          ##
          # The Resolv::IPv4 address for this A.

          attr_reader :address

          def encode_rdata(msg) # :nodoc:
            msg.put_bytes(@address.address)
          end

          def self.decode_rdata(msg) # :nodoc:
            return self.new(IPv4.new(msg.get_bytes(4)))
          end
        end

        ##
        # Well Known Service resource.

        class WKS < Resource
          TypeValue = 11
          ClassValue = IN::ClassValue
          ClassHash[[TypeValue, ClassValue]] = self # :nodoc:

          def initialize(address, protocol, bitmap)
            @address = IPv4.create(address)
            @protocol = protocol
            @bitmap = bitmap
          end

          ##
          # The host these services run on.

          attr_reader :address

          ##
          # IP protocol number for these services.

          attr_reader :protocol

          ##
          # A bit map of enabled services on this host.
          #
          # If protocol is 6 (TCP) then the 26th bit corresponds to the SMTP
          # service (port 25).  If this bit is set, then an SMTP server should
          # be listening on TCP port 25; if zero, SMTP service is not
          # supported.

          attr_reader :bitmap

          def encode_rdata(msg) # :nodoc:
            msg.put_bytes(@address.address)
            msg.put_pack("n", @protocol)
            msg.put_bytes(@bitmap)
          end

          def self.decode_rdata(msg) # :nodoc:
            address = IPv4.new(msg.get_bytes(4))
            protocol, = msg.get_unpack("n")
            bitmap = msg.get_bytes
            return self.new(address, protocol, bitmap)
          end
        end

        ##
        # An IPv6 address record.

        class AAAA < Resource
          TypeValue = 28
          ClassValue = IN::ClassValue
          ClassHash[[TypeValue, ClassValue]] = self # :nodoc:

          ##
          # Creates a new AAAA for +address+.

          def initialize(address)
            @address = IPv6.create(address)
          end

          ##
          # The Resolv::IPv6 address for this AAAA.

          attr_reader :address

          def encode_rdata(msg) # :nodoc:
            msg.put_bytes(@address.address)
          end

          def self.decode_rdata(msg) # :nodoc:
            return self.new(IPv6.new(msg.get_bytes(16)))
          end
        end

        ##
        # SRV resource record defined in RFC 2782
        #
        # These records identify the hostname and port that a service is
        # available at.

        class SRV < Resource
          TypeValue = 33
          ClassValue = IN::ClassValue
          ClassHash[[TypeValue, ClassValue]] = self # :nodoc:

          # Create a SRV resource record.
          #
          # See the documentation for #priority, #weight, #port and #target
          # for +priority+, +weight+, +port and +target+ respectively.

          def initialize(priority, weight, port, target)
            @priority = priority.to_int
            @weight = weight.to_int
            @port = port.to_int
            @target = Name.create(target)
          end

          # The priority of this target host.
          #
          # A client MUST attempt to contact the target host with the
          # lowest-numbered priority it can reach; target hosts with the same
          # priority SHOULD be tried in an order defined by the weight field.
          # The range is 0-65535.  Note that it is not widely implemented and
          # should be set to zero.

          attr_reader :priority

          # A server selection mechanism.
          #
          # The weight field specifies a relative weight for entries with the
          # same priority. Larger weights SHOULD be given a proportionately
          # higher probability of being selected. The range of this number is
          # 0-65535.  Domain administrators SHOULD use Weight 0 when there
          # isn't any server selection to do, to make the RR easier to read
          # for humans (less noisy). Note that it is not widely implemented
          # and should be set to zero.

          attr_reader :weight

          # The port on this target host of this service.
          #
          # The range is 0-65535.

          attr_reader :port

          # The domain name of the target host.
          #
          # A target of "." means that the service is decidedly not available
          # at this domain.

          attr_reader :target

          def encode_rdata(msg) # :nodoc:
            msg.put_pack("n", @priority)
            msg.put_pack("n", @weight)
            msg.put_pack("n", @port)
            msg.put_name(@target)
          end

          def self.decode_rdata(msg) # :nodoc:
            priority, = msg.get_unpack("n")
            weight,   = msg.get_unpack("n")
            port,     = msg.get_unpack("n")
            target    = msg.get_name
            return self.new(priority, weight, port, target)
          end
        end
      end
    end
  end

  ##
  # A Resolv::DNS IPv4 address.

  class IPv4

    ##
    # Regular expression IPv4 addresses must match.

    Regex256 = /0
               |1(?:[0-9][0-9]?)?
               |2(?:[0-4][0-9]?|5[0-5]?|[6-9])?
               |[3-9][0-9]?/x
    Regex = /\A(#{Regex256})\.(#{Regex256})\.(#{Regex256})\.(#{Regex256})\z/

    def self.create(arg)
      case arg
      when IPv4
        return arg
      when Regex
        if (0..255) === (a = $1.to_i) &&
           (0..255) === (b = $2.to_i) &&
           (0..255) === (c = $3.to_i) &&
           (0..255) === (d = $4.to_i)
          return self.new([a, b, c, d].pack("CCCC"))
        else
          raise ArgumentError.new("IPv4 address with invalid value: " + arg)
        end
      else
        raise ArgumentError.new("cannot interpret as IPv4 address: #{arg.inspect}")
      end
    end

    def initialize(address) # :nodoc:
      unless address.kind_of?(String)
        raise ArgumentError, 'IPv4 address must be a string'
      end
      unless address.length == 4
        raise ArgumentError, "IPv4 address expects 4 bytes but #{address.length} bytes"
      end
      @address = address
    end

    ##
    # A String representation of this IPv4 address.

    ##
    # The raw IPv4 address as a String.

    attr_reader :address

    def to_s # :nodoc:
      return sprintf("%d.%d.%d.%d", *@address.unpack("CCCC"))
    end

    def inspect # :nodoc:
      return "#<#{self.class} #{self}>"
    end

    ##
    # Turns this IPv4 address into a Resolv::DNS::Name.

    def to_name
      return DNS::Name.create(
        '%d.%d.%d.%d.in-addr.arpa.' % @address.unpack('CCCC').reverse)
    end

    def ==(other) # :nodoc:
      return @address == other.address
    end

    def eql?(other) # :nodoc:
      return self == other
    end

    def hash # :nodoc:
      return @address.hash
    end
  end

  ##
  # A Resolv::DNS IPv6 address.

  class IPv6

    ##
    # IPv6 address format a:b:c:d:e:f:g:h
    Regex_8Hex = /\A
      (?:[0-9A-Fa-f]{1,4}:){7}
         [0-9A-Fa-f]{1,4}
      \z/x

    ##
    # Compressed IPv6 address format a::b

    Regex_CompressedHex = /\A
      ((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?) ::
      ((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)
      \z/x

    ##
    # IPv4 mapped IPv6 address format a:b:c:d:e:f:w.x.y.z

    Regex_6Hex4Dec = /\A
      ((?:[0-9A-Fa-f]{1,4}:){6,6})
      (\d+)\.(\d+)\.(\d+)\.(\d+)
      \z/x

    ##
    # Compressed IPv4 mapped IPv6 address format a::b:w.x.y.z

    Regex_CompressedHex4Dec = /\A
      ((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?) ::
      ((?:[0-9A-Fa-f]{1,4}:)*)
      (\d+)\.(\d+)\.(\d+)\.(\d+)
      \z/x

    ##
    # A composite IPv6 address Regexp.

    Regex = /
      (?:#{Regex_8Hex}) |
      (?:#{Regex_CompressedHex}) |
      (?:#{Regex_6Hex4Dec}) |
      (?:#{Regex_CompressedHex4Dec})/x

    ##
    # Creates a new IPv6 address from +arg+ which may be:
    #
    # IPv6:: returns +arg+.
    # String:: +arg+ must match one of the IPv6::Regex* constants

    def self.create(arg)
      case arg
      when IPv6
        return arg
      when String
        address = ''
        if Regex_8Hex =~ arg
          arg.scan(/[0-9A-Fa-f]+/) {|hex| address << [hex.hex].pack('n')}
        elsif Regex_CompressedHex =~ arg
          prefix = $1
          suffix = $2
          a1 = ''
          a2 = ''
          prefix.scan(/[0-9A-Fa-f]+/) {|hex| a1 << [hex.hex].pack('n')}
          suffix.scan(/[0-9A-Fa-f]+/) {|hex| a2 << [hex.hex].pack('n')}
          omitlen = 16 - a1.length - a2.length
          address << a1 << "\0" * omitlen << a2
        elsif Regex_6Hex4Dec =~ arg
          prefix, a, b, c, d = $1, $2.to_i, $3.to_i, $4.to_i, $5.to_i
          if (0..255) === a && (0..255) === b && (0..255) === c && (0..255) === d
            prefix.scan(/[0-9A-Fa-f]+/) {|hex| address << [hex.hex].pack('n')}
            address << [a, b, c, d].pack('CCCC')
          else
            raise ArgumentError.new("not numeric IPv6 address: " + arg)
          end
        elsif Regex_CompressedHex4Dec =~ arg
          prefix, suffix, a, b, c, d = $1, $2, $3.to_i, $4.to_i, $5.to_i, $6.to_i
          if (0..255) === a && (0..255) === b && (0..255) === c && (0..255) === d
            a1 = ''
            a2 = ''
            prefix.scan(/[0-9A-Fa-f]+/) {|hex| a1 << [hex.hex].pack('n')}
            suffix.scan(/[0-9A-Fa-f]+/) {|hex| a2 << [hex.hex].pack('n')}
            omitlen = 12 - a1.length - a2.length
            address << a1 << "\0" * omitlen << a2 << [a, b, c, d].pack('CCCC')
          else
            raise ArgumentError.new("not numeric IPv6 address: " + arg)
          end
        else
          raise ArgumentError.new("not numeric IPv6 address: " + arg)
        end
        return IPv6.new(address)
      else
        raise ArgumentError.new("cannot interpret as IPv6 address: #{arg.inspect}")
      end
    end

    def initialize(address) # :nodoc:
      unless address.kind_of?(String) && address.length == 16
        raise ArgumentError.new('IPv6 address must be 16 bytes')
      end
      @address = address
    end

    ##
    # The raw IPv6 address as a String.

    attr_reader :address

    def to_s # :nodoc:
      address = sprintf("%X:%X:%X:%X:%X:%X:%X:%X", *@address.unpack("nnnnnnnn"))
      unless address.sub!(/(^|:)0(:0)+(:|$)/, '::')
        address.sub!(/(^|:)0(:|$)/, '::')
      end
      return address
    end

    def inspect # :nodoc:
      return "#<#{self.class} #{self}>"
    end

    ##
    # Turns this IPv6 address into a Resolv::DNS::Name.
    #--
    # ip6.arpa should be searched too. [RFC3152]

    def to_name
      return DNS::Name.new(
        @address.unpack("H32")[0].split(//).reverse + ['ip6', 'arpa'])
    end

    def ==(other) # :nodoc:
      return @address == other.address
    end

    def eql?(other) # :nodoc:
      return self == other
    end

    def hash # :nodoc:
      return @address.hash
    end
  end

  ##
  # Resolv::MDNS is a one-shot Multicast DNS (mDNS) resolver.  It blindly
  # makes queries to the mDNS addresses without understanding anything about
  # multicast ports.
  #
  # Information taken form the following places:
  #
  # * RFC 6762

  class MDNS < DNS

    ##
    # Default mDNS Port

    Port = 5353

    ##
    # Default IPv4 mDNS address

    AddressV4 = '224.0.0.251'

    ##
    # Default IPv6 mDNS address

    AddressV6 = 'ff02::fb'

    ##
    # Default mDNS addresses

    Addresses = [
      [AddressV4, Port],
      [AddressV6, Port],
    ]

    ##
    # Creates a new one-shot Multicast DNS (mDNS) resolver.
    #
    # +config_info+ can be:
    #
    # nil::
    #   Uses the default mDNS addresses
    #
    # Hash::
    #   Must contain :nameserver or :nameserver_port like
    #   Resolv::DNS#initialize.

    def initialize(config_info=nil)
      if config_info then
        super({ nameserver_port: Addresses }.merge(config_info))
      else
        super(nameserver_port: Addresses)
      end
    end

    ##
    # Iterates over all IP addresses for +name+ retrieved from the mDNS
    # resolver, provided name ends with "local".  If the name does not end in
    # "local" no records will be returned.
    #
    # +name+ can be a Resolv::DNS::Name or a String.  Retrieved addresses will
    # be a Resolv::IPv4 or Resolv::IPv6

    def each_address(name)
      name = Resolv::DNS::Name.create(name)

      return unless name.to_a.last == 'local'

      super(name)
    end

    def make_udp_requester # :nodoc:
      nameserver_port = @config.nameserver_port
      Requester::MDNSOneShot.new(*nameserver_port)
    end

  end

  module LOC

    ##
    # A Resolv::LOC::Size

    class Size

      Regex = /^(\d+\.*\d*)[m]$/

      ##
      # Creates a new LOC::Size from +arg+ which may be:
      #
      # LOC::Size:: returns +arg+.
      # String:: +arg+ must match the LOC::Size::Regex constant

      def self.create(arg)
        case arg
        when Size
          return arg
        when String
          scalar = ''
          if Regex =~ arg
            scalar = [(($1.to_f*(1e2)).to_i.to_s[0].to_i*(2**4)+(($1.to_f*(1e2)).to_i.to_s.length-1))].pack("C")
          else
            raise ArgumentError.new("not a properly formed Size string: " + arg)
          end
          return Size.new(scalar)
        else
          raise ArgumentError.new("cannot interpret as Size: #{arg.inspect}")
        end
      end

      def initialize(scalar)
        @scalar = scalar
      end

      ##
      # The raw size

      attr_reader :scalar

      def to_s # :nodoc:
        s = @scalar.unpack("H2").join.to_s
        return ((s[0].to_i)*(10**(s[1].to_i-2))).to_s << "m"
      end

      def inspect # :nodoc:
        return "#<#{self.class} #{self}>"
      end

      def ==(other) # :nodoc:
        return @scalar == other.scalar
      end

      def eql?(other) # :nodoc:
        return self == other
      end

      def hash # :nodoc:
        return @scalar.hash
      end

    end

    ##
    # A Resolv::LOC::Coord

    class Coord

      Regex = /^(\d+)\s(\d+)\s(\d+\.\d+)\s([NESW])$/

      ##
      # Creates a new LOC::Coord from +arg+ which may be:
      #
      # LOC::Coord:: returns +arg+.
      # String:: +arg+ must match the LOC::Coord::Regex constant

      def self.create(arg)
        case arg
        when Coord
          return arg
        when String
          coordinates = ''
          if Regex =~ arg &&  $1<180
            hemi = ($4[/([NE])/,1]) || ($4[/([SW])/,1]) ? 1 : -1
            coordinates = [(($1.to_i*(36e5))+($2.to_i*(6e4))+($3.to_f*(1e3)))*hemi+(2**31)].pack("N")
            (orientation ||= '') << $4[[/NS/],1] ? 'lat' : 'lon'
          else
            raise ArgumentError.new("not a properly formed Coord string: " + arg)
          end
          return Coord.new(coordinates,orientation)
        else
          raise ArgumentError.new("cannot interpret as Coord: #{arg.inspect}")
        end
      end

      def initialize(coordinates,orientation)
        unless coordinates.kind_of?(String)
          raise ArgumentError.new("Coord must be a 32bit unsigned integer in hex format: #{coordinates.inspect}")
        end
        unless orientation.kind_of?(String) && orientation[/^lon$|^lat$/]
          raise ArgumentError.new('Coord expects orientation to be a String argument of "lat" or "lon"')
        end
        @coordinates = coordinates
        @orientation = orientation
      end

      ##
      # The raw coordinates

      attr_reader :coordinates

      ## The orientation of the hemisphere as 'lat' or 'lon'

      attr_reader :orientation

      def to_s # :nodoc:
          c = @coordinates.unpack("N").join.to_i
          val      = (c - (2**31)).abs
          fracsecs = (val % 1e3).to_i.to_s
          val      = val / 1e3
          secs     = (val % 60).to_i.to_s
          val      = val / 60
          mins     = (val % 60).to_i.to_s
          degs     = (val / 60).to_i.to_s
          posi = (c >= 2**31)
          case posi
          when true
            hemi = @orientation[/^lat$/] ? "N" : "E"
          else
            hemi = @orientation[/^lon$/] ? "W" : "S"
          end
          return degs << " " << mins << " " << secs << "." << fracsecs << " " << hemi
      end

      def inspect # :nodoc:
        return "#<#{self.class} #{self}>"
      end

      def ==(other) # :nodoc:
        return @coordinates == other.coordinates
      end

      def eql?(other) # :nodoc:
        return self == other
      end

      def hash # :nodoc:
        return @coordinates.hash
      end

    end

    ##
    # A Resolv::LOC::Alt

    class Alt

      Regex = /^([+-]*\d+\.*\d*)[m]$/

      ##
      # Creates a new LOC::Alt from +arg+ which may be:
      #
      # LOC::Alt:: returns +arg+.
      # String:: +arg+ must match the LOC::Alt::Regex constant

      def self.create(arg)
        case arg
        when Alt
          return arg
        when String
          altitude = ''
          if Regex =~ arg
            altitude = [($1.to_f*(1e2))+(1e7)].pack("N")
          else
            raise ArgumentError.new("not a properly formed Alt string: " + arg)
          end
          return Alt.new(altitude)
        else
          raise ArgumentError.new("cannot interpret as Alt: #{arg.inspect}")
        end
      end

      def initialize(altitude)
        @altitude = altitude
      end

      ##
      # The raw altitude

      attr_reader :altitude

      def to_s # :nodoc:
        a = @altitude.unpack("N").join.to_i
        return ((a.to_f/1e2)-1e5).to_s + "m"
      end

      def inspect # :nodoc:
        return "#<#{self.class} #{self}>"
      end

      def ==(other) # :nodoc:
        return @altitude == other.altitude
      end

      def eql?(other) # :nodoc:
        return self == other
      end

      def hash # :nodoc:
        return @altitude.hash
      end

    end

  end

  ##
  # Default resolver to use for Resolv class methods.

  DefaultResolver = self.new

  ##
  # Replaces the resolvers in the default resolver with +new_resolvers+.  This
  # allows resolvers to be changed for resolv-replace.

  def DefaultResolver.replace_resolvers new_resolvers
    @resolvers = new_resolvers
  end

  ##
  # Address Regexp to use for matching IP addresses.

  AddressRegex = /(?:#{IPv4::Regex})|(?:#{IPv6::Regex})/

end

lib64/ruby/2.2.0/mkmf.rb000064400000245137150402106060010371 0ustar00# -*- coding: us-ascii -*-
# module to create Makefile for extension modules
# invoke like: ruby -r mkmf extconf.rb

require 'rbconfig'
require 'fileutils'
require 'shellwords'

# :stopdoc:
class String
  # Wraps a string in escaped quotes if it contains whitespace.
  def quote
    /\s/ =~ self ? "\"#{self}\"" : "#{self}"
  end

  # Escape whitespaces for Makefile.
  def unspace
    gsub(/\s/, '\\\\\\&')
  end

  # Generates a string used as cpp macro name.
  def tr_cpp
    strip.upcase.tr_s("^A-Z0-9_*", "_").tr_s("*", "P")
  end

  def funcall_style
    /\)\z/ =~ self ? dup : "#{self}()"
  end

  def sans_arguments
    self[/\A[^()]+/]
  end
end

class Array
  # Wraps all strings in escaped quotes if they contain whitespace.
  def quote
    map {|s| s.quote}
  end
end
# :startdoc:

##
# mkmf.rb is used by Ruby C extensions to generate a Makefile which will
# correctly compile and link the C extension to Ruby and a third-party
# library.
module MakeMakefile
  #### defer until this module become global-state free.
  # def self.extended(obj)
  #   obj.init_mkmf
  #   super
  # end
  #
  # def initialize(*args, rbconfig: RbConfig, **rest)
  #   init_mkmf(rbconfig::MAKEFILE_CONFIG, rbconfig::CONFIG)
  #   super(*args, **rest)
  # end

  ##
  # The makefile configuration using the defaults from when Ruby was built.

  CONFIG = RbConfig::MAKEFILE_CONFIG
  ORIG_LIBPATH = ENV['LIB']

  ##
  # Extensions for files compiled with a C compiler

  C_EXT = %w[c m]

  ##
  # Extensions for files complied with a C++ compiler

  CXX_EXT = %w[cc mm cxx cpp]
  unless File.exist?(File.join(*File.split(__FILE__).tap {|d, b| b.swapcase}))
    CXX_EXT.concat(%w[C])
  end

  ##
  # Extensions for source files

  SRC_EXT = C_EXT + CXX_EXT

  ##
  # Extensions for header files

  HDR_EXT = %w[h hpp]
  $static = nil
  $config_h = '$(arch_hdrdir)/ruby/config.h'
  $default_static = $static

  unless defined? $configure_args
    $configure_args = {}
    args = CONFIG["configure_args"]
    if ENV["CONFIGURE_ARGS"]
      args << " " << ENV["CONFIGURE_ARGS"]
    end
    for arg in Shellwords::shellwords(args)
      arg, val = arg.split('=', 2)
      next unless arg
      arg.tr!('_', '-')
      if arg.sub!(/^(?!--)/, '--')
        val or next
        arg.downcase!
      end
      next if /^--(?:top|topsrc|src|cur)dir$/ =~ arg
      $configure_args[arg] = val || true
    end
    for arg in ARGV
      arg, val = arg.split('=', 2)
      next unless arg
      arg.tr!('_', '-')
      if arg.sub!(/^(?!--)/, '--')
        val or next
        arg.downcase!
      end
      $configure_args[arg] = val || true
    end
  end

  $libdir = CONFIG["libdir"]
  $rubylibdir = CONFIG["rubylibdir"]
  $archdir = CONFIG["archdir"]
  $sitedir = CONFIG["sitedir"]
  $sitelibdir = CONFIG["sitelibdir"]
  $sitearchdir = CONFIG["sitearchdir"]
  $vendordir = CONFIG["vendordir"]
  $vendorlibdir = CONFIG["vendorlibdir"]
  $vendorarchdir = CONFIG["vendorarchdir"]

  $mswin = /mswin/ =~ RUBY_PLATFORM
  $bccwin = /bccwin/ =~ RUBY_PLATFORM
  $mingw = /mingw/ =~ RUBY_PLATFORM
  $cygwin = /cygwin/ =~ RUBY_PLATFORM
  $netbsd = /netbsd/ =~ RUBY_PLATFORM
  $os2 = /os2/ =~ RUBY_PLATFORM
  $beos = /beos/ =~ RUBY_PLATFORM
  $haiku = /haiku/ =~ RUBY_PLATFORM
  $solaris = /solaris/ =~ RUBY_PLATFORM
  $universal = /universal/ =~ RUBY_PLATFORM
  $dest_prefix_pattern = (File::PATH_SEPARATOR == ';' ? /\A([[:alpha:]]:)?/ : /\A/)

  # :stopdoc:

  def config_string(key, config = CONFIG)
    s = config[key] and !s.empty? and block_given? ? yield(s) : s
  end
  module_function :config_string

  def dir_re(dir)
    Regexp.new('\$(?:\('+dir+'\)|\{'+dir+'\})(?:\$(?:\(target_prefix\)|\{target_prefix\}))?')
  end
  module_function :dir_re

  def relative_from(path, base)
    dir = File.join(path, "")
    if File.expand_path(dir) == File.expand_path(dir, base)
      path
    else
      File.join(base, path)
    end
  end

  INSTALL_DIRS = [
    [dir_re('commondir'), "$(RUBYCOMMONDIR)"],
    [dir_re('sitedir'), "$(RUBYCOMMONDIR)"],
    [dir_re('vendordir'), "$(RUBYCOMMONDIR)"],
    [dir_re('rubylibdir'), "$(RUBYLIBDIR)"],
    [dir_re('archdir'), "$(RUBYARCHDIR)"],
    [dir_re('sitelibdir'), "$(RUBYLIBDIR)"],
    [dir_re('vendorlibdir'), "$(RUBYLIBDIR)"],
    [dir_re('sitearchdir'), "$(RUBYARCHDIR)"],
    [dir_re('vendorarchdir'), "$(RUBYARCHDIR)"],
    [dir_re('rubyhdrdir'), "$(RUBYHDRDIR)"],
    [dir_re('sitehdrdir'), "$(SITEHDRDIR)"],
    [dir_re('vendorhdrdir'), "$(VENDORHDRDIR)"],
    [dir_re('bindir'), "$(BINDIR)"],
  ]

  def install_dirs(target_prefix = nil)
    if $extout
      dirs = [
        ['BINDIR',        '$(extout)/bin'],
        ['RUBYCOMMONDIR', '$(extout)/common'],
        ['RUBYLIBDIR',    '$(RUBYCOMMONDIR)$(target_prefix)'],
        ['RUBYARCHDIR',   '$(extout)/$(arch)$(target_prefix)'],
        ['HDRDIR',        '$(extout)/include/ruby$(target_prefix)'],
        ['ARCHHDRDIR',    '$(extout)/include/$(arch)/ruby$(target_prefix)'],
        ['extout',        "#$extout"],
        ['extout_prefix', "#$extout_prefix"],
      ]
    elsif $extmk
      dirs = [
        ['BINDIR',        '$(bindir)'],
        ['RUBYCOMMONDIR', '$(rubylibdir)'],
        ['RUBYLIBDIR',    '$(rubylibdir)$(target_prefix)'],
        ['RUBYARCHDIR',   '$(archdir)$(target_prefix)'],
        ['HDRDIR',        '$(rubyhdrdir)/ruby$(target_prefix)'],
        ['ARCHHDRDIR',    '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
      ]
    elsif $configure_args.has_key?('--vendor')
      dirs = [
        ['BINDIR',        '$(bindir)'],
        ['RUBYCOMMONDIR', '$(vendordir)$(target_prefix)'],
        ['RUBYLIBDIR',    '$(vendorlibdir)$(target_prefix)'],
        ['RUBYARCHDIR',   '$(vendorarchdir)$(target_prefix)'],
        ['HDRDIR',        '$(rubyhdrdir)/ruby$(target_prefix)'],
        ['ARCHHDRDIR',    '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
      ]
    else
      dirs = [
        ['BINDIR',        '$(bindir)'],
        ['RUBYCOMMONDIR', '$(sitedir)$(target_prefix)'],
        ['RUBYLIBDIR',    '$(sitelibdir)$(target_prefix)'],
        ['RUBYARCHDIR',   '$(sitearchdir)$(target_prefix)'],
        ['HDRDIR',        '$(rubyhdrdir)/ruby$(target_prefix)'],
        ['ARCHHDRDIR',    '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
      ]
    end
    dirs << ['target_prefix', (target_prefix ? "/#{target_prefix}" : "")]
    dirs
  end

  def map_dir(dir, map = nil)
    map ||= INSTALL_DIRS
    map.inject(dir) {|d, (orig, new)| d.gsub(orig, new)}
  end

  topdir = File.dirname(File.dirname(__FILE__))
  path = File.expand_path($0)
  until (dir = File.dirname(path)) == path
    if File.identical?(dir, topdir)
      $extmk = true if %r"\A(?:ext|enc|tool|test)\z" =~ File.basename(path)
      break
    end
    path = dir
  end
  $extmk ||= false
  if not $extmk and File.exist?(($hdrdir = RbConfig::CONFIG["rubyhdrdir"]) + "/ruby/ruby.h")
    $topdir = $hdrdir
    $top_srcdir = $hdrdir
    $arch_hdrdir = RbConfig::CONFIG["rubyarchhdrdir"]
  elsif File.exist?(($hdrdir = ($top_srcdir ||= topdir) + "/include")  + "/ruby.h")
    $topdir ||= RbConfig::CONFIG["topdir"]
    $arch_hdrdir = "$(extout)/include/$(arch)"
  else
    abort "mkmf.rb can't find header files for ruby at #{$hdrdir}/ruby.h"
  end

  CONFTEST = "conftest".freeze
  CONFTEST_C = "#{CONFTEST}.c"

  OUTFLAG = CONFIG['OUTFLAG']
  COUTFLAG = CONFIG['COUTFLAG']
  CPPOUTFILE = config_string('CPPOUTFILE') {|str| str.sub(/\bconftest\b/, CONFTEST)}

  def rm_f(*files)
    opt = (Hash === files.last ? [files.pop] : [])
    FileUtils.rm_f(Dir[*files.flatten], *opt)
  end
  module_function :rm_f

  def rm_rf(*files)
    opt = (Hash === files.last ? [files.pop] : [])
    FileUtils.rm_rf(Dir[*files.flatten], *opt)
  end
  module_function :rm_rf

  # Returns time stamp of the +target+ file if it exists and is newer than or
  # equal to all of +times+.
  def modified?(target, times)
    (t = File.mtime(target)) rescue return nil
    Array === times or times = [times]
    t if times.all? {|n| n <= t}
  end

  def split_libs(*strs)
    strs.map {|s| s.split(/\s+(?=-|\z)/)}.flatten
  end

  def merge_libs(*libs)
    libs.inject([]) do |x, y|
      y = y.inject([]) {|ary, e| ary.last == e ? ary : ary << e}
      y.each_with_index do |v, yi|
        if xi = x.rindex(v)
          x[(xi+1)..-1] = merge_libs(y[(yi+1)..-1], x[(xi+1)..-1])
          x[xi, 0] = y[0...yi]
          break
        end
      end and x.concat(y)
      x
    end
  end

  # This is a custom logging module. It generates an mkmf.log file when you
  # run your extconf.rb script. This can be useful for debugging unexpected
  # failures.
  #
  # This module and its associated methods are meant for internal use only.
  #
  module Logging
    @log = nil
    @logfile = 'mkmf.log'
    @orgerr = $stderr.dup
    @orgout = $stdout.dup
    @postpone = 0
    @quiet = $extmk

    def self::log_open
      @log ||= File::open(@logfile, 'wb')
      @log.sync = true
    end

    def self::log_opened?
      @log and not @log.closed?
    end

    def self::open
      log_open
      $stderr.reopen(@log)
      $stdout.reopen(@log)
      yield
    ensure
      $stderr.reopen(@orgerr)
      $stdout.reopen(@orgout)
    end

    def self::message(*s)
      log_open
      @log.printf(*s)
    end

    def self::logfile file
      @logfile = file
      log_close
    end

    def self::log_close
      if @log and not @log.closed?
        @log.flush
        @log.close
        @log = nil
      end
    end

    def self::postpone
      tmplog = "mkmftmp#{@postpone += 1}.log"
      open do
        log, *save = @log, @logfile, @orgout, @orgerr
        @log, @logfile, @orgout, @orgerr = nil, tmplog, log, log
        begin
          log.print(open {yield @log})
        ensure
          @log.close if @log and not @log.closed?
          File::open(tmplog) {|t| FileUtils.copy_stream(t, log)} if File.exist?(tmplog)
          @log, @logfile, @orgout, @orgerr = log, *save
          @postpone -= 1
          MakeMakefile.rm_f tmplog
        end
      end
    end

    class << self
      attr_accessor :quiet
    end
  end

  def libpath_env
    # used only if native compiling
    if libpathenv = config_string("LIBPATHENV")
      pathenv = ENV[libpathenv]
      libpath = RbConfig.expand($DEFLIBPATH.join(File::PATH_SEPARATOR))
      {libpathenv => [libpath, pathenv].compact.join(File::PATH_SEPARATOR)}
    else
      {}
    end
  end

  def xsystem command, opts = nil
    varpat = /\$\((\w+)\)|\$\{(\w+)\}/
    if varpat =~ command
      vars = Hash.new {|h, k| h[k] = ENV[k]}
      command = command.dup
      nil while command.gsub!(varpat) {vars[$1||$2]}
    end
    Logging::open do
      puts command.quote
      if opts and opts[:werror]
        result = nil
        Logging.postpone do |log|
          result = (system(libpath_env, command) and File.zero?(log.path))
          ""
        end
        result
      else
        system(libpath_env, command)
      end
    end
  end

  def xpopen command, *mode, &block
    Logging::open do
      case mode[0]
      when nil, /^r/
        puts "#{command} |"
      else
        puts "| #{command}"
      end
      IO.popen(libpath_env, command, *mode, &block)
    end
  end

  def log_src(src, heading="checked program was")
    src = src.split(/^/)
    fmt = "%#{src.size.to_s.size}d: %s"
    Logging::message <<"EOM"
#{heading}:
/* begin */
EOM
    src.each_with_index {|line, no| Logging::message fmt, no+1, line}
    Logging::message <<"EOM"
/* end */

EOM
  end

  def create_tmpsrc(src)
    src = "#{COMMON_HEADERS}\n#{src}"
    src = yield(src) if block_given?
    src.gsub!(/[ \t]+$/, '')
    src.gsub!(/\A\n+|^\n+$/, '')
    src.sub!(/[^\n]\z/, "\\&\n")
    count = 0
    begin
      open(CONFTEST_C, "wb") do |cfile|
        cfile.print src
      end
    rescue Errno::EACCES
      if (count += 1) < 5
        sleep 0.2
        retry
      end
    end
    src
  end

  def have_devel?
    unless defined? $have_devel
      $have_devel = true
      $have_devel = try_link(MAIN_DOES_NOTHING)
    end
    $have_devel
  end

  def try_do(src, command, *opts, &b)
    unless have_devel?
      raise <<MSG
The compiler failed to generate an executable file.
You have to install development tools first.
MSG
    end
    begin
      src = create_tmpsrc(src, &b)
      xsystem(command, *opts)
    ensure
      log_src(src)
      MakeMakefile.rm_rf "#{CONFTEST}.dSYM"
    end
  end

  def link_command(ldflags, opt="", libpath=$LIBPATH|$DEFLIBPATH)
    librubyarg = $extmk ? $LIBRUBYARG_STATIC : "$(LIBRUBYARG)"
    conf = RbConfig::CONFIG.merge('hdrdir' => $hdrdir.quote,
                                  'src' => "#{CONFTEST_C}",
                                  'arch_hdrdir' => $arch_hdrdir.quote,
                                  'top_srcdir' => $top_srcdir.quote,
                                  'INCFLAGS' => "#$INCFLAGS",
                                  'CPPFLAGS' => "#$CPPFLAGS",
                                  'CFLAGS' => "#$CFLAGS",
                                  'ARCH_FLAG' => "#$ARCH_FLAG",
                                  'LDFLAGS' => "#$LDFLAGS #{ldflags}",
                                  'LOCAL_LIBS' => "#$LOCAL_LIBS #$libs",
                                  'LIBS' => "#{librubyarg} #{opt} #$LIBS")
    conf['LIBPATH'] = libpathflag(libpath.map {|s| RbConfig::expand(s.dup, conf)})
    RbConfig::expand(TRY_LINK.dup, conf)
  end

  def cc_command(opt="")
    conf = RbConfig::CONFIG.merge('hdrdir' => $hdrdir.quote, 'srcdir' => $srcdir.quote,
                                  'arch_hdrdir' => $arch_hdrdir.quote,
                                  'top_srcdir' => $top_srcdir.quote)
    RbConfig::expand("$(CC) #$INCFLAGS #$CPPFLAGS #$CFLAGS #$ARCH_FLAG #{opt} -c #{CONFTEST_C}",
                     conf)
  end

  def cpp_command(outfile, opt="")
    conf = RbConfig::CONFIG.merge('hdrdir' => $hdrdir.quote, 'srcdir' => $srcdir.quote,
                                  'arch_hdrdir' => $arch_hdrdir.quote,
                                  'top_srcdir' => $top_srcdir.quote)
    if $universal and (arch_flag = conf['ARCH_FLAG']) and !arch_flag.empty?
      conf['ARCH_FLAG'] = arch_flag.gsub(/(?:\G|\s)-arch\s+\S+/, '')
    end
    RbConfig::expand("$(CPP) #$INCFLAGS #$CPPFLAGS #$CFLAGS #{opt} #{CONFTEST_C} #{outfile}",
                     conf)
  end

  def libpathflag(libpath=$LIBPATH|$DEFLIBPATH)
    libpath.map{|x|
      case x
      when "$(topdir)", /\A\./
        LIBPATHFLAG
      else
        LIBPATHFLAG+RPATHFLAG
      end % x.quote
    }.join
  end

  def with_werror(opt, opts = nil)
    if opts
      if opts[:werror] and config_string("WERRORFLAG") {|flag| opt = opt ? "#{opt} #{flag}" : flag}
        (opts = opts.dup).delete(:werror)
      end
      yield(opt, opts)
    else
      yield(opt)
    end
  end

  def try_link0(src, opt="", *opts, &b) # :nodoc:
    cmd = link_command("", opt)
    if $universal
      require 'tmpdir'
      Dir.mktmpdir("mkmf_", oldtmpdir = ENV["TMPDIR"]) do |tmpdir|
        begin
          ENV["TMPDIR"] = tmpdir
          try_do(src, cmd, *opts, &b)
        ensure
          ENV["TMPDIR"] = oldtmpdir
        end
      end
    else
      try_do(src, cmd, *opts, &b)
    end and begin
        st = File.stat(CONFTEST+$EXEEXT)
        st.file? and st.executable?
    end
  end

  # Returns whether or not the +src+ can be compiled as a C source and linked
  # with its depending libraries successfully.  +opt+ is passed to the linker
  # as options. Note that +$CFLAGS+ and +$LDFLAGS+ are also passed to the
  # linker.
  #
  # If a block given, it is called with the source before compilation. You can
  # modify the source in the block.
  #
  # [+src+] a String which contains a C source
  # [+opt+] a String which contains linker options
  def try_link(src, opt="", *opts, &b)
    try_link0(src, opt, *opts, &b)
  ensure
    MakeMakefile.rm_f "#{CONFTEST}*", "c0x32*"
  end

  # Returns whether or not the +src+ can be compiled as a C source.  +opt+ is
  # passed to the C compiler as options. Note that +$CFLAGS+ is also passed to
  # the compiler.
  #
  # If a block given, it is called with the source before compilation. You can
  # modify the source in the block.
  #
  # [+src+] a String which contains a C source
  # [+opt+] a String which contains compiler options
  def try_compile(src, opt="", *opts, &b)
    with_werror(opt, *opts) {|_opt, *_opts| try_do(src, cc_command(_opt), *_opts, &b)} and
      File.file?("#{CONFTEST}.#{$OBJEXT}")
  ensure
    MakeMakefile.rm_f "#{CONFTEST}*"
  end

  # Returns whether or not the +src+ can be preprocessed with the C
  # preprocessor.  +opt+ is passed to the preprocessor as options. Note that
  # +$CFLAGS+ is also passed to the preprocessor.
  #
  # If a block given, it is called with the source before preprocessing. You
  # can modify the source in the block.
  #
  # [+src+] a String which contains a C source
  # [+opt+] a String which contains preprocessor options
  def try_cpp(src, opt="", *opts, &b)
    try_do(src, cpp_command(CPPOUTFILE, opt), *opts, &b) and
      File.file?("#{CONFTEST}.i")
  ensure
    MakeMakefile.rm_f "#{CONFTEST}*"
  end

  alias_method :try_header, (config_string('try_header') || :try_cpp)

  def cpp_include(header)
    if header
      header = [header] unless header.kind_of? Array
      header.map {|h| String === h ? "#include <#{h}>\n" : h}.join
    else
      ""
    end
  end

  def with_cppflags(flags)
    cppflags = $CPPFLAGS
    $CPPFLAGS = flags
    ret = yield
  ensure
    $CPPFLAGS = cppflags unless ret
  end

  def try_cppflags(flags)
    try_header(MAIN_DOES_NOTHING, flags)
  end

  def with_cflags(flags)
    cflags = $CFLAGS
    $CFLAGS = flags
    ret = yield
  ensure
    $CFLAGS = cflags unless ret
  end

  def try_cflags(flags)
    try_compile(MAIN_DOES_NOTHING, flags)
  end

  def with_ldflags(flags)
    ldflags = $LDFLAGS
    $LDFLAGS = flags
    ret = yield
  ensure
    $LDFLAGS = ldflags unless ret
  end

  def try_ldflags(flags)
    try_link(MAIN_DOES_NOTHING, flags)
  end

  def try_static_assert(expr, headers = nil, opt = "", &b)
    headers = cpp_include(headers)
    try_compile(<<SRC, opt, &b)
#{headers}
/*top*/
int conftest_const[(#{expr}) ? 1 : -1];
SRC
  end

  def try_constant(const, headers = nil, opt = "", &b)
    includes = cpp_include(headers)
    neg = try_static_assert("#{const} < 0", headers, opt)
    if CROSS_COMPILING
      if neg
        const = "-(#{const})"
      elsif try_static_assert("#{const} > 0", headers, opt)
        # positive constant
      elsif try_static_assert("#{const} == 0", headers, opt)
        return 0
      else
        # not a constant
        return nil
      end
      upper = 1
      until try_static_assert("#{const} <= #{upper}", headers, opt)
        lower = upper
        upper <<= 1
      end
      return nil unless lower
      while upper > lower + 1
        mid = (upper + lower) / 2
        if try_static_assert("#{const} > #{mid}", headers, opt)
          lower = mid
        else
          upper = mid
        end
      end
      upper = -upper if neg
      return upper
    else
      src = %{#{includes}
#include <stdio.h>
/*top*/
typedef#{neg ? '' : ' unsigned'}
#ifdef PRI_LL_PREFIX
#define PRI_CONFTEST_PREFIX PRI_LL_PREFIX
LONG_LONG
#else
#define PRI_CONFTEST_PREFIX "l"
long
#endif
conftest_type;
conftest_type conftest_const = (conftest_type)(#{const});
int main() {printf("%"PRI_CONFTEST_PREFIX"#{neg ? 'd' : 'u'}\\n", conftest_const); return 0;}
}
      begin
        if try_link0(src, opt, &b)
          xpopen("./#{CONFTEST}") do |f|
            return Integer(f.gets)
          end
        end
      ensure
        MakeMakefile.rm_f "#{CONFTEST}*"
      end
    end
    nil
  end

  # You should use +have_func+ rather than +try_func+.
  #
  # [+func+] a String which contains a symbol name
  # [+libs+] a String which contains library names.
  # [+headers+] a String or an Array of strings which contains names of header
  #             files.
  def try_func(func, libs, headers = nil, opt = "", &b)
    headers = cpp_include(headers)
    case func
    when /^&/
      decltype = proc {|x|"const volatile void *#{x}"}
    when /\)$/
      call = func
    else
      call = "#{func}()"
      decltype = proc {|x| "void ((*#{x})())"}
    end
    if opt and !opt.empty?
      [[:to_str], [:join, " "], [:to_s]].each do |meth, *args|
        if opt.respond_to?(meth)
          break opt = opt.send(meth, *args)
        end
      end
      opt = "#{opt} #{libs}"
    else
      opt = libs
    end
    decltype && try_link(<<"SRC", opt, &b) or
#{headers}
/*top*/
extern int t(void);
#{MAIN_DOES_NOTHING 't'}
int t(void) { #{decltype["volatile p"]}; p = (#{decltype[]})#{func}; return 0; }
SRC
    call && try_link(<<"SRC", opt, &b)
#{headers}
/*top*/
extern int t(void);
#{MAIN_DOES_NOTHING 't'}
int t(void) { #{call}; return 0; }
SRC
  end

  # You should use +have_var+ rather than +try_var+.
  def try_var(var, headers = nil, opt = "", &b)
    headers = cpp_include(headers)
    try_compile(<<"SRC", opt, &b)
#{headers}
/*top*/
extern int t(void);
#{MAIN_DOES_NOTHING 't'}
int t(void) { const volatile void *volatile p; p = &(&#{var})[0]; return 0; }
SRC
  end

  # Returns whether or not the +src+ can be preprocessed with the C
  # preprocessor and matches with +pat+.
  #
  # If a block given, it is called with the source before compilation. You can
  # modify the source in the block.
  #
  # [+pat+] a Regexp or a String
  # [+src+] a String which contains a C source
  # [+opt+] a String which contains preprocessor options
  #
  # NOTE: When pat is a Regexp the matching will be checked in process,
  # otherwise egrep(1) will be invoked to check it.
  def egrep_cpp(pat, src, opt = "", &b)
    src = create_tmpsrc(src, &b)
    xpopen(cpp_command('', opt)) do |f|
      if Regexp === pat
        puts("    ruby -ne 'print if #{pat.inspect}'")
        f.grep(pat) {|l|
          puts "#{f.lineno}: #{l}"
          return true
        }
        false
      else
        puts("    egrep '#{pat}'")
        begin
          stdin = $stdin.dup
          $stdin.reopen(f)
          system("egrep", pat)
        ensure
          $stdin.reopen(stdin)
        end
      end
    end
  ensure
    MakeMakefile.rm_f "#{CONFTEST}*"
    log_src(src)
  end

  # This is used internally by the have_macro? method.
  def macro_defined?(macro, src, opt = "", &b)
    src = src.sub(/[^\n]\z/, "\\&\n")
    try_compile(src + <<"SRC", opt, &b)
/*top*/
#ifndef #{macro}
# error
|:/ === #{macro} undefined === /:|
#endif
SRC
  end

  # Returns whether or not:
  # * the +src+ can be compiled as a C source,
  # * the result object can be linked with its depending libraries
  #   successfully,
  # * the linked file can be invoked as an executable
  # * and the executable exits successfully
  #
  # +opt+ is passed to the linker as options. Note that +$CFLAGS+ and
  # +$LDFLAGS+ are also passed to the linker.
  #
  # If a block given, it is called with the source before compilation. You can
  # modify the source in the block.
  #
  # [+src+] a String which contains a C source
  # [+opt+] a String which contains linker options
  #
  # Returns true when the executable exits successfully, false when it fails,
  # or nil when preprocessing, compilation or link fails.
  def try_run(src, opt = "", &b)
    raise "cannot run test program while cross compiling" if CROSS_COMPILING
    if try_link0(src, opt, &b)
      xsystem("./#{CONFTEST}")
    else
      nil
    end
  ensure
    MakeMakefile.rm_f "#{CONFTEST}*"
  end

  def install_files(mfile, ifiles, map = nil, srcprefix = nil)
    ifiles or return
    ifiles.empty? and return
    srcprefix ||= "$(srcdir)/#{srcprefix}".chomp('/')
    RbConfig::expand(srcdir = srcprefix.dup)
    dirs = []
    path = Hash.new {|h, i| h[i] = dirs.push([i])[-1]}
    ifiles.each do |files, dir, prefix|
      dir = map_dir(dir, map)
      prefix &&= %r|\A#{Regexp.quote(prefix)}/?|
      if /\A\.\// =~ files
        # install files which are in current working directory.
        files = files[2..-1]
        len = nil
      else
        # install files which are under the $(srcdir).
        files = File.join(srcdir, files)
        len = srcdir.size
      end
      f = nil
      Dir.glob(files) do |fx|
        f = fx
        f[0..len] = "" if len
        case File.basename(f)
        when *$NONINSTALLFILES
          next
        end
        d = File.dirname(f)
        d.sub!(prefix, "") if prefix
        d = (d.empty? || d == ".") ? dir : File.join(dir, d)
        f = File.join(srcprefix, f) if len
        path[d] << f
      end
      unless len or f
        d = File.dirname(files)
        d.sub!(prefix, "") if prefix
        d = (d.empty? || d == ".") ? dir : File.join(dir, d)
        path[d] << files
      end
    end
    dirs
  end

  def install_rb(mfile, dest, srcdir = nil)
    install_files(mfile, [["lib/**/*.rb", dest, "lib"]], nil, srcdir)
  end

  def append_library(libs, lib) # :no-doc:
    format(LIBARG, lib) + " " + libs
  end

  def message(*s)
    unless Logging.quiet and not $VERBOSE
      printf(*s)
      $stdout.flush
    end
  end

  # This emits a string to stdout that allows users to see the results of the
  # various have* and find* methods as they are tested.
  #
  # Internal use only.
  #
  def checking_for(m, fmt = nil)
    f = caller[0][/in `([^<].*)'$/, 1] and f << ": " #` for vim #'
    m = "checking #{/\Acheck/ =~ f ? '' : 'for '}#{m}... "
    message "%s", m
    a = r = nil
    Logging::postpone do
      r = yield
      a = (fmt ? "#{fmt % r}" : r ? "yes" : "no") << "\n"
      "#{f}#{m}-------------------- #{a}\n"
    end
    message(a)
    Logging::message "--------------------\n\n"
    r
  end

  def checking_message(target, place = nil, opt = nil)
    [["in", place], ["with", opt]].inject("#{target}") do |msg, (pre, noun)|
      if noun
        [[:to_str], [:join, ","], [:to_s]].each do |meth, *args|
          if noun.respond_to?(meth)
            break noun = noun.send(meth, *args)
          end
        end
        msg << " #{pre} #{noun}" unless noun.empty?
      end
      msg
    end
  end

  # :startdoc:

  # Returns whether or not +macro+ is defined either in the common header
  # files or within any +headers+ you provide.
  #
  # Any options you pass to +opt+ are passed along to the compiler.
  #
  def have_macro(macro, headers = nil, opt = "", &b)
    checking_for checking_message(macro, headers, opt) do
      macro_defined?(macro, cpp_include(headers), opt, &b)
    end
  end

  # Returns whether or not the given entry point +func+ can be found within
  # +lib+.  If +func+ is +nil+, the <code>main()</code> entry point is used by
  # default.  If found, it adds the library to list of libraries to be used
  # when linking your extension.
  #
  # If +headers+ are provided, it will include those header files as the
  # header files it looks in when searching for +func+.
  #
  # The real name of the library to be linked can be altered by
  # <code>--with-FOOlib</code> configuration option.
  #
  def have_library(lib, func = nil, headers = nil, opt = "", &b)
    func = "main" if !func or func.empty?
    lib = with_config(lib+'lib', lib)
    checking_for checking_message(func.funcall_style, LIBARG%lib, opt) do
      if COMMON_LIBS.include?(lib)
        true
      else
        libs = append_library($libs, lib)
        if try_func(func, libs, headers, opt, &b)
          $libs = libs
          true
        else
          false
        end
      end
    end
  end

  # Returns whether or not the entry point +func+ can be found within the
  # library +lib+ in one of the +paths+ specified, where +paths+ is an array
  # of strings.  If +func+ is +nil+ , then the <code>main()</code> function is
  # used as the entry point.
  #
  # If +lib+ is found, then the path it was found on is added to the list of
  # library paths searched and linked against.
  #
  def find_library(lib, func, *paths, &b)
    func = "main" if !func or func.empty?
    lib = with_config(lib+'lib', lib)
    paths = paths.collect {|path| path.split(File::PATH_SEPARATOR)}.flatten
    checking_for checking_message(func.funcall_style, LIBARG%lib) do
      libpath = $LIBPATH
      libs = append_library($libs, lib)
      begin
        until r = try_func(func, libs, &b) or paths.empty?
          $LIBPATH = libpath | [paths.shift]
        end
        if r
          $libs = libs
          libpath = nil
        end
      ensure
        $LIBPATH = libpath if libpath
      end
      r
    end
  end

  # Returns whether or not the function +func+ can be found in the common
  # header files, or within any +headers+ that you provide.  If found, a macro
  # is passed as a preprocessor constant to the compiler using the function
  # name, in uppercase, prepended with +HAVE_+.
  #
  # To check functions in an additional library, you need to check that
  # library first using <code>have_library()</code>.  The +func+ shall be
  # either mere function name or function name with arguments.
  #
  # For example, if <code>have_func('foo')</code> returned +true+, then the
  # +HAVE_FOO+ preprocessor macro would be passed to the compiler.
  #
  def have_func(func, headers = nil, opt = "", &b)
    checking_for checking_message(func.funcall_style, headers, opt) do
      if try_func(func, $libs, headers, opt, &b)
        $defs << "-DHAVE_#{func.sans_arguments.tr_cpp}"
        true
      else
        false
      end
    end
  end

  # Returns whether or not the variable +var+ can be found in the common
  # header files, or within any +headers+ that you provide.  If found, a macro
  # is passed as a preprocessor constant to the compiler using the variable
  # name, in uppercase, prepended with +HAVE_+.
  #
  # To check variables in an additional library, you need to check that
  # library first using <code>have_library()</code>.
  #
  # For example, if <code>have_var('foo')</code> returned true, then the
  # +HAVE_FOO+ preprocessor macro would be passed to the compiler.
  #
  def have_var(var, headers = nil, opt = "", &b)
    checking_for checking_message(var, headers, opt) do
      if try_var(var, headers, opt, &b)
        $defs.push(format("-DHAVE_%s", var.tr_cpp))
        true
      else
        false
      end
    end
  end

  # Returns whether or not the given +header+ file can be found on your system.
  # If found, a macro is passed as a preprocessor constant to the compiler
  # using the header file name, in uppercase, prepended with +HAVE_+.
  #
  # For example, if <code>have_header('foo.h')</code> returned true, then the
  # +HAVE_FOO_H+ preprocessor macro would be passed to the compiler.
  #
  def have_header(header, preheaders = nil, opt = "", &b)
    checking_for header do
      if try_header(cpp_include(preheaders)+cpp_include(header), opt, &b)
        $defs.push(format("-DHAVE_%s", header.tr_cpp))
        true
      else
        false
      end
    end
  end

  # Returns whether or not the given +framework+ can be found on your system.
  # If found, a macro is passed as a preprocessor constant to the compiler
  # using the framework name, in uppercase, prepended with +HAVE_FRAMEWORK_+.
  #
  # For example, if <code>have_framework('Ruby')</code> returned true, then
  # the +HAVE_FRAMEWORK_RUBY+ preprocessor macro would be passed to the
  # compiler.
  #
  # If +fw+ is a pair of the framework name and its header file name
  # that header file is checked, instead of the normally used header
  # file which is named same as the framework.
  def have_framework(fw, &b)
    if Array === fw
      fw, header = *fw
    else
      header = "#{fw}.h"
    end
    checking_for fw do
      src = cpp_include("#{fw}/#{header}") << "\n" "int main(void){return 0;}"
      opt = " -framework #{fw}"
      if try_link(src, opt, &b) or (objc = try_link(src, "-ObjC#{opt}", &b))
        $defs.push(format("-DHAVE_FRAMEWORK_%s", fw.tr_cpp))
        # TODO: non-worse way than this hack, to get rid of separating
        # option and its argument.
        $LDFLAGS << " -ObjC" if objc and /(\A|\s)-ObjC(\s|\z)/ !~ $LDFLAGS
        $LIBS << opt
        true
      else
        false
      end
    end
  end

  # Instructs mkmf to search for the given +header+ in any of the +paths+
  # provided, and returns whether or not it was found in those paths.
  #
  # If the header is found then the path it was found on is added to the list
  # of included directories that are sent to the compiler (via the
  # <code>-I</code> switch).
  #
  def find_header(header, *paths)
    message = checking_message(header, paths)
    header = cpp_include(header)
    checking_for message do
      if try_header(header)
        true
      else
        found = false
        paths.each do |dir|
          opt = "-I#{dir}".quote
          if try_header(header, opt)
            $INCFLAGS << " " << opt
            found = true
            break
          end
        end
        found
      end
    end
  end

  # Returns whether or not the struct of type +type+ contains +member+.  If
  # it does not, or the struct type can't be found, then false is returned.
  # You may optionally specify additional +headers+ in which to look for the
  # struct (in addition to the common header files).
  #
  # If found, a macro is passed as a preprocessor constant to the compiler
  # using the type name and the member name, in uppercase, prepended with
  # +HAVE_+.
  #
  # For example, if <code>have_struct_member('struct foo', 'bar')</code>
  # returned true, then the +HAVE_STRUCT_FOO_BAR+ preprocessor macro would be
  # passed to the compiler.
  #
  # +HAVE_ST_BAR+ is also defined for backward compatibility.
  #
  def have_struct_member(type, member, headers = nil, opt = "", &b)
    checking_for checking_message("#{type}.#{member}", headers) do
      if try_compile(<<"SRC", opt, &b)
#{cpp_include(headers)}
/*top*/
int s = (char *)&((#{type}*)0)->#{member} - (char *)0;
#{MAIN_DOES_NOTHING}
SRC
        $defs.push(format("-DHAVE_%s_%s", type.tr_cpp, member.tr_cpp))
        $defs.push(format("-DHAVE_ST_%s", member.tr_cpp)) # backward compatibility
        true
      else
        false
      end
    end
  end

  # Returns whether or not the static type +type+ is defined.
  #
  # See also +have_type+
  #
  def try_type(type, headers = nil, opt = "", &b)
    if try_compile(<<"SRC", opt, &b)
#{cpp_include(headers)}
/*top*/
typedef #{type} conftest_type;
int conftestval[sizeof(conftest_type)?1:-1];
SRC
      $defs.push(format("-DHAVE_TYPE_%s", type.tr_cpp))
      true
    else
      false
    end
  end

  # Returns whether or not the static type +type+ is defined.  You may
  # optionally pass additional +headers+ to check against in addition to the
  # common header files.
  #
  # You may also pass additional flags to +opt+ which are then passed along to
  # the compiler.
  #
  # If found, a macro is passed as a preprocessor constant to the compiler
  # using the type name, in uppercase, prepended with +HAVE_TYPE_+.
  #
  # For example, if <code>have_type('foo')</code> returned true, then the
  # +HAVE_TYPE_FOO+ preprocessor macro would be passed to the compiler.
  #
  def have_type(type, headers = nil, opt = "", &b)
    checking_for checking_message(type, headers, opt) do
      try_type(type, headers, opt, &b)
    end
  end

  # Returns where the static type +type+ is defined.
  #
  # You may also pass additional flags to +opt+ which are then passed along to
  # the compiler.
  #
  # See also +have_type+.
  #
  def find_type(type, opt, *headers, &b)
    opt ||= ""
    fmt = "not found"
    def fmt.%(x)
      x ? x.respond_to?(:join) ? x.join(",") : x : self
    end
    checking_for checking_message(type, nil, opt), fmt do
      headers.find do |h|
        try_type(type, h, opt, &b)
      end
    end
  end

  # Returns whether or not the constant +const+ is defined.
  #
  # See also +have_const+
  #
  def try_const(const, headers = nil, opt = "", &b)
    const, type = *const
    if try_compile(<<"SRC", opt, &b)
#{cpp_include(headers)}
/*top*/
typedef #{type || 'int'} conftest_type;
conftest_type conftestval = #{type ? '' : '(int)'}#{const};
SRC
      $defs.push(format("-DHAVE_CONST_%s", const.tr_cpp))
      true
    else
      false
    end
  end

  # Returns whether or not the constant +const+ is defined.  You may
  # optionally pass the +type+ of +const+ as <code>[const, type]</code>,
  # such as:
  #
  #   have_const(%w[PTHREAD_MUTEX_INITIALIZER pthread_mutex_t], "pthread.h")
  #
  # You may also pass additional +headers+ to check against in addition to the
  # common header files, and additional flags to +opt+ which are then passed
  # along to the compiler.
  #
  # If found, a macro is passed as a preprocessor constant to the compiler
  # using the type name, in uppercase, prepended with +HAVE_CONST_+.
  #
  # For example, if <code>have_const('foo')</code> returned true, then the
  # +HAVE_CONST_FOO+ preprocessor macro would be passed to the compiler.
  #
  def have_const(const, headers = nil, opt = "", &b)
    checking_for checking_message([*const].compact.join(' '), headers, opt) do
      try_const(const, headers, opt, &b)
    end
  end

  # :stopdoc:
  STRING_OR_FAILED_FORMAT = "%s"
  def STRING_OR_FAILED_FORMAT.%(x) # :nodoc:
    x ? super : "failed"
  end

  def typedef_expr(type, headers)
    typename, member = type.split('.', 2)
    prelude = cpp_include(headers).split(/$/)
    prelude << "typedef #{typename} rbcv_typedef_;\n"
    return "rbcv_typedef_", member, prelude
  end

  def try_signedness(type, member, headers = nil, opts = nil)
    raise ArgumentError, "don't know how to tell signedness of members" if member
    if try_static_assert("(#{type})-1 < 0", headers, opts)
      return -1
    elsif try_static_assert("(#{type})-1 > 0", headers, opts)
      return +1
    end
  end

  # :startdoc:

  # Returns the size of the given +type+.  You may optionally specify
  # additional +headers+ to search in for the +type+.
  #
  # If found, a macro is passed as a preprocessor constant to the compiler
  # using the type name, in uppercase, prepended with +SIZEOF_+, followed by
  # the type name, followed by <code>=X</code> where "X" is the actual size.
  #
  # For example, if <code>check_sizeof('mystruct')</code> returned 12, then
  # the <code>SIZEOF_MYSTRUCT=12</code> preprocessor macro would be passed to
  # the compiler.
  #
  def check_sizeof(type, headers = nil, opts = "", &b)
    typedef, member, prelude = typedef_expr(type, headers)
    prelude << "static #{typedef} *rbcv_ptr_;\n"
    prelude = [prelude]
    expr = "sizeof((*rbcv_ptr_)#{"." << member if member})"
    fmt = STRING_OR_FAILED_FORMAT
    checking_for checking_message("size of #{type}", headers), fmt do
      if size = try_constant(expr, prelude, opts, &b)
        $defs.push(format("-DSIZEOF_%s=%s", type.tr_cpp, size))
        size
      end
    end
  end

  # Returns the signedness of the given +type+.  You may optionally specify
  # additional +headers+ to search in for the +type+.
  #
  # If the +type+ is found and is a numeric type, a macro is passed as a
  # preprocessor constant to the compiler using the +type+ name, in uppercase,
  # prepended with +SIGNEDNESS_OF_+, followed by the +type+ name, followed by
  # <code>=X</code> where "X" is positive integer if the +type+ is unsigned
  # and a negative integer if the +type+ is signed.
  #
  # For example, if +size_t+ is defined as unsigned, then
  # <code>check_signedness('size_t')</code> would return +1 and the
  # <code>SIGNEDNESS_OF_SIZE_T=+1</code> preprocessor macro would be passed to
  # the compiler.  The <code>SIGNEDNESS_OF_INT=-1</code> macro would be set
  # for <code>check_signedness('int')</code>
  #
  def check_signedness(type, headers = nil, opts = nil, &b)
    typedef, member, prelude = typedef_expr(type, headers)
    signed = nil
    checking_for("signedness of #{type}", STRING_OR_FAILED_FORMAT) do
      signed = try_signedness(typedef, member, [prelude], opts, &b) or next nil
      $defs.push("-DSIGNEDNESS_OF_%s=%+d" % [type.tr_cpp, signed])
      signed < 0 ? "signed" : "unsigned"
    end
    signed
  end

  # Returns the convertible integer type of the given +type+.  You may
  # optionally specify additional +headers+ to search in for the +type+.
  # _convertible_ means actually the same type, or typedef'd from the same
  # type.
  #
  # If the +type+ is a integer type and the _convertible_ type is found,
  # the following macros are passed as preprocessor constants to the compiler
  # using the +type+ name, in uppercase.
  #
  # * +TYPEOF_+, followed by the +type+ name, followed by <code>=X</code>
  #   where "X" is the found _convertible_ type name.
  # * +TYP2NUM+ and +NUM2TYP+,
  #   where +TYP+ is the +type+ name in uppercase with replacing an +_t+
  #   suffix with "T", followed by <code>=X</code> where "X" is the macro name
  #   to convert +type+ to an Integer object, and vice versa.
  #
  # For example, if +foobar_t+ is defined as unsigned long, then
  # <code>convertible_int("foobar_t")</code> would return "unsigned long", and
  # define these macros:
  #
  #   #define TYPEOF_FOOBAR_T unsigned long
  #   #define FOOBART2NUM ULONG2NUM
  #   #define NUM2FOOBART NUM2ULONG
  #
  def convertible_int(type, headers = nil, opts = nil, &b)
    type, macname = *type
    checking_for("convertible type of #{type}", STRING_OR_FAILED_FORMAT) do
      if UNIVERSAL_INTS.include?(type)
        type
      else
        typedef, member, prelude = typedef_expr(type, headers, &b)
        if member
          prelude << "static rbcv_typedef_ rbcv_var;"
          compat = UNIVERSAL_INTS.find {|t|
            try_static_assert("sizeof(rbcv_var.#{member}) == sizeof(#{t})", [prelude], opts, &b)
          }
        else
          next unless signed = try_signedness(typedef, member, [prelude])
          u = "unsigned " if signed > 0
          prelude << "extern rbcv_typedef_ foo();"
          compat = UNIVERSAL_INTS.find {|t|
            try_compile([prelude, "extern #{u}#{t} foo();"].join("\n"), opts, :werror=>true, &b)
          }
        end
        if compat
          macname ||= type.sub(/_(?=t\z)/, '').tr_cpp
          conv = (compat == "long long" ? "LL" : compat.upcase)
          compat = "#{u}#{compat}"
          typename = type.tr_cpp
          $defs.push(format("-DSIZEOF_%s=SIZEOF_%s", typename, compat.tr_cpp))
          $defs.push(format("-DTYPEOF_%s=%s", typename, compat.quote))
          $defs.push(format("-DPRI_%s_PREFIX=PRI_%s_PREFIX", macname, conv))
          conv = (u ? "U" : "") + conv
          $defs.push(format("-D%s2NUM=%s2NUM", macname, conv))
          $defs.push(format("-DNUM2%s=NUM2%s", macname, conv))
          compat
        end
      end
    end
  end
  # :stopdoc:

  # Used internally by the what_type? method to determine if +type+ is a scalar
  # pointer.
  def scalar_ptr_type?(type, member = nil, headers = nil, &b)
    try_compile(<<"SRC", &b)   # pointer
#{cpp_include(headers)}
/*top*/
volatile #{type} conftestval;
extern int t(void);
#{MAIN_DOES_NOTHING 't'}
int t(void) {return (int)(1-*(conftestval#{member ? ".#{member}" : ""}));}
SRC
  end

  # Used internally by the what_type? method to determine if +type+ is a scalar
  # pointer.
  def scalar_type?(type, member = nil, headers = nil, &b)
    try_compile(<<"SRC", &b)   # pointer
#{cpp_include(headers)}
/*top*/
volatile #{type} conftestval;
extern int t(void);
#{MAIN_DOES_NOTHING 't'}
int t(void) {return (int)(1-(conftestval#{member ? ".#{member}" : ""}));}
SRC
  end

  # Used internally by the what_type? method to check if the _typeof_ GCC
  # extension is available.
  def have_typeof?
    return $typeof if defined?($typeof)
    $typeof = %w[__typeof__ typeof].find do |t|
      try_compile(<<SRC)
int rbcv_foo;
#{t}(rbcv_foo) rbcv_bar;
SRC
    end
  end

  def what_type?(type, member = nil, headers = nil, &b)
    m = "#{type}"
    var = val = "*rbcv_var_"
    func = "rbcv_func_(void)"
    if member
      m << "." << member
    else
      type, member = type.split('.', 2)
    end
    if member
      val = "(#{var}).#{member}"
    end
    prelude = [cpp_include(headers).split(/^/)]
    prelude << ["typedef #{type} rbcv_typedef_;\n",
                "extern rbcv_typedef_ *#{func};\n",
                "static rbcv_typedef_ #{var};\n",
               ]
    type = "rbcv_typedef_"
    fmt = member && !(typeof = have_typeof?) ? "seems %s" : "%s"
    if typeof
      var = "*rbcv_member_"
      func = "rbcv_mem_func_(void)"
      member = nil
      type = "rbcv_mem_typedef_"
      prelude[-1] << "typedef #{typeof}(#{val}) #{type};\n"
      prelude[-1] << "extern #{type} *#{func};\n"
      prelude[-1] << "static #{type} #{var};\n"
      val = var
    end
    def fmt.%(x)
      x ? super : "unknown"
    end
    checking_for checking_message(m, headers), fmt do
      if scalar_ptr_type?(type, member, prelude, &b)
        if try_static_assert("sizeof(*#{var}) == 1", prelude)
          return "string"
        end
        ptr = "*"
      elsif scalar_type?(type, member, prelude, &b)
        unless member and !typeof or try_static_assert("(#{type})-1 < 0", prelude)
          unsigned = "unsigned"
        end
        ptr = ""
      else
        next
      end
      type = UNIVERSAL_INTS.find do |t|
        pre = prelude
        unless member
          pre += [["static #{unsigned} #{t} #{ptr}#{var};\n",
                   "extern #{unsigned} #{t} #{ptr}*#{func};\n"]]
        end
        try_static_assert("sizeof(#{ptr}#{val}) == sizeof(#{unsigned} #{t})", pre)
      end
      type or next
      [unsigned, type, ptr].join(" ").strip
    end
  end

  # This method is used internally by the find_executable method.
  #
  # Internal use only.
  #
  def find_executable0(bin, path = nil)
    executable_file = proc do |name|
      begin
        stat = File.stat(name)
      rescue SystemCallError
      else
        next name if stat.file? and stat.executable?
      end
    end

    exts = config_string('EXECUTABLE_EXTS') {|s| s.split} || config_string('EXEEXT') {|s| [s]}
    if File.expand_path(bin) == bin
      return bin if executable_file.call(bin)
      if exts
        exts.each {|ext| executable_file.call(file = bin + ext) and return file}
      end
      return nil
    end
    if path ||= ENV['PATH']
      path = path.split(File::PATH_SEPARATOR)
    else
      path = %w[/usr/local/bin /usr/ucb /usr/bin /bin]
    end
    file = nil
    path.each do |dir|
      return file if executable_file.call(file = File.join(dir, bin))
      if exts
        exts.each {|ext| executable_file.call(ext = file + ext) and return ext}
      end
    end
    nil
  end

  # :startdoc:

  # Searches for the executable +bin+ on +path+.  The default path is your
  # +PATH+ environment variable. If that isn't defined, it will resort to
  # searching /usr/local/bin, /usr/ucb, /usr/bin and /bin.
  #
  # If found, it will return the full path, including the executable name, of
  # where it was found.
  #
  # Note that this method does not actually affect the generated Makefile.
  #
  def find_executable(bin, path = nil)
    checking_for checking_message(bin, path) do
      find_executable0(bin, path)
    end
  end

  # :stopdoc:

  def arg_config(config, default=nil, &block)
    $arg_config << [config, default]
    defaults = []
    if default
      defaults << default
    elsif !block
      defaults << nil
    end
    $configure_args.fetch(config.tr('_', '-'), *defaults, &block)
  end

  # :startdoc:

  # Tests for the presence of a <tt>--with-</tt>_config_ or
  # <tt>--without-</tt>_config_ option.  Returns +true+ if the with option is
  # given, +false+ if the without option is given, and the default value
  # otherwise.
  #
  # This can be useful for adding custom definitions, such as debug
  # information.
  #
  # Example:
  #
  #    if with_config("debug")
  #       $defs.push("-DOSSL_DEBUG") unless $defs.include? "-DOSSL_DEBUG"
  #    end
  #
  def with_config(config, default=nil)
    config = config.sub(/^--with[-_]/, '')
    val = arg_config("--with-"+config) do
      if arg_config("--without-"+config)
        false
      elsif block_given?
        yield(config, default)
      else
        break default
      end
    end
    case val
    when "yes"
      true
    when "no"
      false
    else
      val
    end
  end

  # Tests for the presence of an <tt>--enable-</tt>_config_ or
  # <tt>--disable-</tt>_config_ option. Returns +true+ if the enable option is
  # given, +false+ if the disable option is given, and the default value
  # otherwise.
  #
  # This can be useful for adding custom definitions, such as debug
  # information.
  #
  # Example:
  #
  #    if enable_config("debug")
  #       $defs.push("-DOSSL_DEBUG") unless $defs.include? "-DOSSL_DEBUG"
  #    end
  #
  def enable_config(config, default=nil)
    if arg_config("--enable-"+config)
      true
    elsif arg_config("--disable-"+config)
      false
    elsif block_given?
      yield(config, default)
    else
      return default
    end
  end

  # Generates a header file consisting of the various macro definitions
  # generated by other methods such as have_func and have_header. These are
  # then wrapped in a custom <code>#ifndef</code> based on the +header+ file
  # name, which defaults to "extconf.h".
  #
  # For example:
  #
  #   # extconf.rb
  #   require 'mkmf'
  #   have_func('realpath')
  #   have_header('sys/utime.h')
  #   create_header
  #   create_makefile('foo')
  #
  # The above script would generate the following extconf.h file:
  #
  #   #ifndef EXTCONF_H
  #   #define EXTCONF_H
  #   #define HAVE_REALPATH 1
  #   #define HAVE_SYS_UTIME_H 1
  #   #endif
  #
  # Given that the create_header method generates a file based on definitions
  # set earlier in your extconf.rb file, you will probably want to make this
  # one of the last methods you call in your script.
  #
  def create_header(header = "extconf.h")
    message "creating %s\n", header
    sym = header.tr_cpp
    hdr = ["#ifndef #{sym}\n#define #{sym}\n"]
    for line in $defs
      case line
      when /^-D([^=]+)(?:=(.*))?/
        hdr << "#define #$1 #{$2 ? Shellwords.shellwords($2)[0].gsub(/(?=\t+)/, "\\\n") : 1}\n"
      when /^-U(.*)/
        hdr << "#undef #$1\n"
      end
    end
    hdr << "#endif\n"
    hdr = hdr.join("")
    log_src(hdr, "#{header} is")
    unless (IO.read(header) == hdr rescue false)
      open(header, "wb") do |hfile|
        hfile.write(hdr)
      end
    end
    $extconf_h = header
  end

  # call-seq:
  #   dir_config(target)
  #   dir_config(target, prefix)
  #   dir_config(target, idefault, ldefault)
  #
  # Sets a +target+ name that the user can then use to configure
  # various "with" options with on the command line by using that
  # name.  For example, if the target is set to "foo", then the user
  # could use the <code>--with-foo-dir=prefix</code>,
  # <code>--with-foo-include=dir</code> and
  # <code>--with-foo-lib=dir</code> command line options to tell where
  # to search for header/library files.
  #
  # You may pass along additional parameters to specify default
  # values.  If one is given it is taken as default +prefix+, and if
  # two are given they are taken as "include" and "lib" defaults in
  # that order.
  #
  # In any case, the return value will be an array of determined
  # "include" and "lib" directories, either of which can be nil if no
  # corresponding command line option is given when no default value
  # is specified.
  #
  # Note that dir_config only adds to the list of places to search for
  # libraries and include files.  It does not link the libraries into your
  # application.
  #
  def dir_config(target, idefault=nil, ldefault=nil)
    if dir = with_config(target + "-dir", (idefault unless ldefault))
      defaults = Array === dir ? dir : dir.split(File::PATH_SEPARATOR)
      idefault = ldefault = nil
    end

    idir = with_config(target + "-include", idefault)
    $arg_config.last[1] ||= "${#{target}-dir}/include"
    ldir = with_config(target + "-lib", ldefault)
    $arg_config.last[1] ||= "${#{target}-dir}/#{_libdir_basename}"

    idirs = idir ? Array === idir ? idir.dup : idir.split(File::PATH_SEPARATOR) : []
    if defaults
      idirs.concat(defaults.collect {|d| d + "/include"})
      idir = ([idir] + idirs).compact.join(File::PATH_SEPARATOR)
    end
    unless idirs.empty?
      idirs.collect! {|d| "-I" + d}
      idirs -= Shellwords.shellwords($CPPFLAGS)
      unless idirs.empty?
        $CPPFLAGS = (idirs.quote << $CPPFLAGS).join(" ")
      end
    end

    ldirs = ldir ? Array === ldir ? ldir.dup : ldir.split(File::PATH_SEPARATOR) : []
    if defaults
      ldirs.concat(defaults.collect {|d| "#{d}/#{_libdir_basename}"})
      ldir = ([ldir] + ldirs).compact.join(File::PATH_SEPARATOR)
    end
    $LIBPATH = ldirs | $LIBPATH

    [idir, ldir]
  end

  # Returns compile/link information about an installed library in a
  # tuple of <code>[cflags, ldflags, libs]</code>, by using the
  # command found first in the following commands:
  #
  # 1. If <code>--with-{pkg}-config={command}</code> is given via
  #    command line option: <code>{command} {option}</code>
  #
  # 2. <code>{pkg}-config {option}</code>
  #
  # 3. <code>pkg-config {option} {pkg}</code>
  #
  # Where {option} is, for instance, <code>--cflags</code>.
  #
  # The values obtained are appended to +$CFLAGS+, +$LDFLAGS+ and
  # +$libs+.
  #
  # If an <code>option</code> argument is given, the config command is
  # invoked with the option and a stripped output string is returned
  # without modifying any of the global values mentioned above.
  def pkg_config(pkg, option=nil)
    if pkgconfig = with_config("#{pkg}-config") and find_executable0(pkgconfig)
      # iff package specific config command is given
    elsif ($PKGCONFIG ||=
           (pkgconfig = with_config("pkg-config", ("pkg-config" unless CROSS_COMPILING))) &&
           find_executable0(pkgconfig) && pkgconfig) and
        system("#{$PKGCONFIG} --exists #{pkg}")
      # default to pkg-config command
      pkgconfig = $PKGCONFIG
      get = proc {|opt|
        opt = IO.popen("#{$PKGCONFIG} --#{opt} #{pkg}", err:[:child, :out], &:read)
        opt.strip if $?.success?
      }
    elsif find_executable0(pkgconfig = "#{pkg}-config")
      # default to package specific config command, as a last resort.
    else
      pkgconfig = nil
    end
    if pkgconfig
      get ||= proc {|opt|
        opt = IO.popen("#{pkgconfig} --#{opt}", err:[:child, :out], &:read)
        opt.strip if $?.success?
      }
    end
    orig_ldflags = $LDFLAGS
    if get and option
      get[option]
    elsif get and try_ldflags(ldflags = get['libs'])
      if incflags = get['cflags-only-I']
        $INCFLAGS << " " << incflags
        cflags = get['cflags-only-other']
      else
        cflags = get['cflags']
      end
      libs = get['libs-only-l']
      if cflags
        $CFLAGS += " " << cflags
        $CXXFLAGS += " " << cflags
      end
      if libs
        ldflags = (Shellwords.shellwords(ldflags) - Shellwords.shellwords(libs)).quote.join(" ")
      else
        libs, ldflags = Shellwords.shellwords(ldflags).partition {|s| s =~ /-l([^ ]+)/ }.map {|l|l.quote.join(" ")}
      end
      $libs += " " << libs

      $LDFLAGS = [orig_ldflags, ldflags].join(' ')
      Logging::message "package configuration for %s\n", pkg
      Logging::message "cflags: %s\nldflags: %s\nlibs: %s\n\n",
                       cflags, ldflags, libs
      [cflags, ldflags, libs]
    else
      Logging::message "package configuration for %s is not found\n", pkg
      nil
    end
  end

  # :stopdoc:

  def with_destdir(dir)
    dir = dir.sub($dest_prefix_pattern, '')
    /\A\$[\(\{]/ =~ dir ? dir : "$(DESTDIR)"+dir
  end

  # Converts forward slashes to backslashes. Aimed at MS Windows.
  #
  # Internal use only.
  #
  def winsep(s)
    s.tr('/', '\\')
  end

  # Converts native path to format acceptable in Makefile
  #
  # Internal use only.
  #
  if !CROSS_COMPILING
    case CONFIG['build_os']
    when 'mingw32'
      def mkintpath(path)
        # mingw uses make from msys and it needs special care
        # converts from C:\some\path to /C/some/path
        path = path.dup
        path.tr!('\\', '/')
        path.sub!(/\A([A-Za-z]):(?=\/)/, '/\1')
        path
      end
    when 'cygwin'
      if CONFIG['target_os'] != 'cygwin'
        def mkintpath(path)
          IO.popen(["cygpath", "-u", path], &:read).chomp
        end
      end
    end
  end
  unless method_defined?(:mkintpath)
    def mkintpath(path)
      path
    end
  end

  def configuration(srcdir)
    mk = []
    vpath = $VPATH.dup
    CONFIG["hdrdir"] ||= $hdrdir
    mk << %{
SHELL = /bin/sh

# V=0 quiet, V=1 verbose.  other values don't work.
V = 0
Q1 = $(V:1=)
Q = $(Q1:0=@)
ECHO1 = $(V:1=@#{CONFIG['NULLCMD']})
ECHO = $(ECHO1:0=@echo)
NULLCMD = #{CONFIG['NULLCMD']}

#### Start of system configuration section. ####
#{"top_srcdir = " + $top_srcdir.sub(%r"\A#{Regexp.quote($topdir)}/", "$(topdir)/") if $extmk}
srcdir = #{srcdir.gsub(/\$\((srcdir)\)|\$\{(srcdir)\}/) {mkintpath(CONFIG[$1||$2]).unspace}}
topdir = #{mkintpath(topdir = $extmk ? CONFIG["topdir"] : $topdir).unspace}
hdrdir = #{(hdrdir = CONFIG["hdrdir"]) == topdir ? "$(topdir)" : mkintpath(hdrdir).unspace}
arch_hdrdir = #{$arch_hdrdir.quote}
PATH_SEPARATOR = #{CONFIG['PATH_SEPARATOR']}
VPATH = #{vpath.join(CONFIG['PATH_SEPARATOR'])}
}
    if $extmk
      mk << "RUBYLIB =\n""RUBYOPT = -\n"
    end
    prefix = mkintpath(CONFIG["prefix"])
    if destdir = prefix[$dest_prefix_pattern, 1]
      mk << "\nDESTDIR = #{destdir}\n"
      prefix = prefix[destdir.size..-1]
    end
    mk << "prefix = #{with_destdir(prefix).unspace}\n"
    CONFIG.each do |key, var|
      mk << "#{key} = #{with_destdir(mkintpath(var)).unspace}\n" if /.prefix$/ =~ key
    end
    CONFIG.each do |key, var|
      next if /^abs_/ =~ key
      next if /^(?:src|top|hdr)dir$/ =~ key
      next unless /dir$/ =~ key
      mk << "#{key} = #{with_destdir(var)}\n"
    end
    if !$extmk and !$configure_args.has_key?('--ruby') and
        sep = config_string('BUILD_FILE_SEPARATOR')
      sep = ":/=#{sep}"
    else
      sep = ""
    end
    possible_command = (proc {|s| s if /top_srcdir/ !~ s} unless $extmk)
    extconf_h = $extconf_h ? "-DRUBY_EXTCONF_H=\\\"$(RUBY_EXTCONF_H)\\\" " : $defs.join(" ") << " "
    headers = %w[
      $(hdrdir)/ruby.h
      $(hdrdir)/ruby/ruby.h
      $(hdrdir)/ruby/defines.h
      $(hdrdir)/ruby/missing.h
      $(hdrdir)/ruby/intern.h
      $(hdrdir)/ruby/st.h
      $(hdrdir)/ruby/subst.h
    ]
    if RULE_SUBST
      headers.each {|h| h.sub!(/.*/, &RULE_SUBST.method(:%))}
    end
    headers << $config_h
    headers << '$(RUBY_EXTCONF_H)' if $extconf_h
    mk << %{

CC = #{CONFIG['CC']}
CXX = #{CONFIG['CXX']}
LIBRUBY = #{CONFIG['LIBRUBY']}
LIBRUBY_A = #{CONFIG['LIBRUBY_A']}
LIBRUBYARG_SHARED = #$LIBRUBYARG_SHARED
LIBRUBYARG_STATIC = #$LIBRUBYARG_STATIC
empty =
OUTFLAG = #{OUTFLAG}$(empty)
COUTFLAG = #{COUTFLAG}$(empty)

RUBY_EXTCONF_H = #{$extconf_h}
cflags   = #{CONFIG['cflags']}
optflags = #{CONFIG['optflags']}
debugflags = #{CONFIG['debugflags']}
warnflags = #{$warnflags}
CCDLFLAGS = #{$static ? '' : CONFIG['CCDLFLAGS']}
CFLAGS   = $(CCDLFLAGS) #$CFLAGS $(ARCH_FLAG)
INCFLAGS = -I. #$INCFLAGS
DEFS     = #{CONFIG['DEFS']}
CPPFLAGS = #{extconf_h}#{$CPPFLAGS}
CXXFLAGS = $(CCDLFLAGS) #$CXXFLAGS $(ARCH_FLAG)
ldflags  = #{$LDFLAGS}
dldflags = #{$DLDFLAGS} #{CONFIG['EXTDLDFLAGS']}
ARCH_FLAG = #{$ARCH_FLAG}
DLDFLAGS = $(ldflags) $(dldflags) $(ARCH_FLAG)
LDSHARED = #{CONFIG['LDSHARED']}
LDSHAREDXX = #{config_string('LDSHAREDXX') || '$(LDSHARED)'}
AR = #{CONFIG['AR']}
EXEEXT = #{CONFIG['EXEEXT']}

}
    CONFIG.each do |key, val|
      mk << "#{key} = #{val}\n" if /^RUBY.*NAME/ =~ key
    end
    mk << %{
arch = #{CONFIG['arch']}
sitearch = #{CONFIG['sitearch']}
ruby_version = #{RbConfig::CONFIG['ruby_version']}
ruby = #{$ruby.sub(%r[\A#{Regexp.quote(RbConfig::CONFIG['bindir'])}(?=/|\z)]) {'$(bindir)'}}
RUBY = $(ruby#{sep})
ruby_headers = #{headers.join(' ')}

RM = #{config_string('RM', &possible_command) || '$(RUBY) -run -e rm -- -f'}
RM_RF = #{'$(RUBY) -run -e rm -- -rf'}
RMDIRS = #{config_string('RMDIRS', &possible_command) || '$(RUBY) -run -e rmdir -- -p'}
MAKEDIRS = #{config_string('MAKEDIRS', &possible_command) || '@$(RUBY) -run -e mkdir -- -p'}
INSTALL = #{config_string('INSTALL', &possible_command) || '@$(RUBY) -run -e install -- -vp'}
INSTALL_PROG = #{config_string('INSTALL_PROG') || '$(INSTALL) -m 0755'}
INSTALL_DATA = #{config_string('INSTALL_DATA') || '$(INSTALL) -m 0644'}
COPY = #{config_string('CP', &possible_command) || '@$(RUBY) -run -e cp -- -v'}
TOUCH = exit >

#### End of system configuration section. ####

preload = #{defined?($preload) && $preload ? $preload.join(' ') : ''}
}
    if $nmake == ?b
      mk.each do |x|
        x.gsub!(/^(MAKEDIRS|INSTALL_(?:PROG|DATA))+\s*=.*\n/) do
          "!ifndef " + $1 + "\n" +
          $& +
          "!endif\n"
        end
      end
    end
    mk
  end

  def timestamp_file(name, target_prefix = nil)
    if target_prefix
      pat = []
      install_dirs.each do |n, d|
        pat << n if /\$\(target_prefix\)\z/ =~ d
      end
      name = name.gsub(/\$\((#{pat.join("|")})\)/) {$&+target_prefix}
    end
    name = name.gsub(/(\$[({]|[})])|(\/+)|[^-.\w]+/) {$1 ? "" : $2 ? ".-." : "_"}
    "$(TIMESTAMP_DIR)/.#{name}.time"
  end
  # :startdoc:

  # creates a stub Makefile.
  #
  def dummy_makefile(srcdir)
    configuration(srcdir) << <<RULES << CLEANINGS
CLEANFILES = #{$cleanfiles.join(' ')}
DISTCLEANFILES = #{$distcleanfiles.join(' ')}

all install static install-so install-rb: Makefile
.PHONY: all install static install-so install-rb
.PHONY: clean clean-so clean-static clean-rb

RULES
  end

  def each_compile_rules # :nodoc:
    vpath_splat = /\$\(\*VPATH\*\)/
    COMPILE_RULES.each do |rule|
      if vpath_splat =~ rule
        $VPATH.each do |path|
          yield rule.sub(vpath_splat) {path}
        end
      else
        yield rule
      end
    end
  end

  # Processes the data contents of the "depend" file.  Each line of this file
  # is expected to be a file name.
  #
  # Returns the output of findings, in Makefile format.
  #
  def depend_rules(depend)
    suffixes = []
    depout = []
    cont = implicit = nil
    impconv = proc do
      each_compile_rules {|rule| depout << (rule % implicit[0]) << implicit[1]}
      implicit = nil
    end
    ruleconv = proc do |line|
      if implicit
        if /\A\t/ =~ line
          implicit[1] << line
          next
        else
          impconv[]
        end
      end
      if m = /\A\.(\w+)\.(\w+)(?:\s*:)/.match(line)
        suffixes << m[1] << m[2]
        implicit = [[m[1], m[2]], [m.post_match]]
        next
      elsif RULE_SUBST and /\A(?!\s*\w+\s*=)[$\w][^#]*:/ =~ line
        line.sub!(/\s*\#.*$/, '')
        comment = $&
        line.gsub!(%r"(\s)(?!\.)([^$(){}+=:\s\\,]+)(?=\s|\z)") {$1 + RULE_SUBST % $2}
        line = line.chomp + comment + "\n" if comment
      end
      depout << line
    end
    depend.each_line do |line|
      line.gsub!(/\.o\b/, ".#{$OBJEXT}")
      line.gsub!(/\{\$\(VPATH\)\}/, "") unless $nmake
      line.gsub!(/\$\((?:hdr|top)dir\)\/config.h/, $config_h)
      line.gsub!(%r"\$\(hdrdir\)/(?!ruby(?![^:;/\s]))(?=[-\w]+\.h)", '\&ruby/')
      if $nmake && /\A\s*\$\(RM|COPY\)/ =~ line
        line.gsub!(%r"[-\w\./]{2,}"){$&.tr("/", "\\")}
        line.gsub!(/(\$\((?!RM|COPY)[^:)]+)(?=\))/, '\1:/=\\')
      end
      if /(?:^|[^\\])(?:\\\\)*\\$/ =~ line
        (cont ||= []) << line
        next
      elsif cont
        line = (cont << line).join
        cont = nil
      end
      ruleconv.call(line)
    end
    if cont
      ruleconv.call(cont.join)
    elsif implicit
      impconv.call
    end
    unless suffixes.empty?
      depout.unshift(".SUFFIXES: ." + suffixes.uniq.join(" .") + "\n\n")
    end
    depout.unshift("$(OBJS): $(RUBY_EXTCONF_H)\n\n") if $extconf_h
    depout.flatten!
    depout
  end

  # Generates the Makefile for your extension, passing along any options and
  # preprocessor constants that you may have generated through other methods.
  #
  # The +target+ name should correspond the name of the global function name
  # defined within your C extension, minus the +Init_+.  For example, if your
  # C extension is defined as +Init_foo+, then your target would simply be
  # "foo".
  #
  # If any "/" characters are present in the target name, only the last name
  # is interpreted as the target name, and the rest are considered toplevel
  # directory names, and the generated Makefile will be altered accordingly to
  # follow that directory structure.
  #
  # For example, if you pass "test/foo" as a target name, your extension will
  # be installed under the "test" directory.  This means that in order to
  # load the file within a Ruby program later, that directory structure will
  # have to be followed, e.g. <code>require 'test/foo'</code>.
  #
  # The +srcprefix+ should be used when your source files are not in the same
  # directory as your build script. This will not only eliminate the need for
  # you to manually copy the source files into the same directory as your
  # build script, but it also sets the proper +target_prefix+ in the generated
  # Makefile.
  #
  # Setting the +target_prefix+ will, in turn, install the generated binary in
  # a directory under your <code>RbConfig::CONFIG['sitearchdir']</code> that
  # mimics your local filesystem when you run <code>make install</code>.
  #
  # For example, given the following file tree:
  #
  #   ext/
  #     extconf.rb
  #     test/
  #       foo.c
  #
  # And given the following code:
  #
  #   create_makefile('test/foo', 'test')
  #
  # That will set the +target_prefix+ in the generated Makefile to "test".
  # That, in turn, will create the following file tree when installed via the
  # <code>make install</code> command:
  #
  #   /path/to/ruby/sitearchdir/test/foo.so
  #
  # It is recommended that you use this approach to generate your makefiles,
  # instead of copying files around manually, because some third party
  # libraries may depend on the +target_prefix+ being set properly.
  #
  # The +srcprefix+ argument can be used to override the default source
  # directory, i.e. the current directory.  It is included as part of the
  # +VPATH+ and added to the list of +INCFLAGS+.
  #
  def create_makefile(target, srcprefix = nil)
    $target = target
    libpath = $LIBPATH|$DEFLIBPATH
    message "creating Makefile\n"
    MakeMakefile.rm_f "#{CONFTEST}*"
    if CONFIG["DLEXT"] == $OBJEXT
      for lib in libs = $libs.split
        lib.sub!(/-l(.*)/, %%"lib\\1.#{$LIBEXT}"%)
      end
      $defs.push(format("-DEXTLIB='%s'", libs.join(",")))
    end

    if target.include?('/')
      target_prefix, target = File.split(target)
      target_prefix[0,0] = '/'
    else
      target_prefix = ""
    end

    srcprefix ||= "$(srcdir)/#{srcprefix}".chomp('/')
    RbConfig.expand(srcdir = srcprefix.dup)

    ext = ".#{$OBJEXT}"
    orig_srcs = Dir[File.join(srcdir, "*.{#{SRC_EXT.join(%q{,})}}")]
    if not $objs
      srcs = $srcs || orig_srcs
      objs = srcs.inject(Hash.new {[]}) {|h, f| h[File.basename(f, ".*") << ext] <<= f; h}
      $objs = objs.keys
      unless objs.delete_if {|b, f| f.size == 1}.empty?
        dups = objs.sort.map {|b, f|
          "#{b[/.*\./]}{#{f.collect {|n| n[/([^.]+)\z/]}.join(',')}}"
        }
        abort "source files duplication - #{dups.join(", ")}"
      end
    else
      $objs.collect! {|o| File.basename(o, ".*") << ext} unless $OBJEXT == "o"
      srcs = $srcs || $objs.collect {|o| o.chomp(ext) << ".c"}
    end
    $srcs = srcs

    hdrs = Dir[File.join(srcdir, "*.{#{HDR_EXT.join(%q{,})}}")]

    target = nil if $objs.empty?

    if target and EXPORT_PREFIX
      if File.exist?(File.join(srcdir, target + '.def'))
        deffile = "$(srcdir)/$(TARGET).def"
        unless EXPORT_PREFIX.empty?
          makedef = %{-pe "$_.sub!(/^(?=\\w)/,'#{EXPORT_PREFIX}') unless 1../^EXPORTS$/i"}
        end
      else
        makedef = %{-e "puts 'EXPORTS', '$(TARGET_ENTRY)'"}
      end
      if makedef
        $cleanfiles << '$(DEFFILE)'
        origdef = deffile
        deffile = "$(TARGET)-$(arch).def"
      end
    end
    origdef ||= ''

    if $extout and $INSTALLFILES
      $cleanfiles.concat($INSTALLFILES.collect {|files, dir|File.join(dir, files.sub(/\A\.\//, ''))})
      $distcleandirs.concat($INSTALLFILES.collect {|files, dir| dir})
    end

    if $extmk and $static
      $defs << "-DRUBY_EXPORT=1"
    end

    if $extmk and not $extconf_h
      create_header
    end

    libpath = libpathflag(libpath)

    dllib = target ? "$(TARGET).#{CONFIG['DLEXT']}" : ""
    staticlib = target ? "$(TARGET).#$LIBEXT" : ""
    mfile = open("Makefile", "wb")
    conf = configuration(srcprefix)
    conf = yield(conf) if block_given?
    mfile.puts(conf)
    mfile.print "
libpath = #{($LIBPATH|$DEFLIBPATH).join(" ")}
LIBPATH = #{libpath}
DEFFILE = #{deffile}

CLEANFILES = #{$cleanfiles.join(' ')}
DISTCLEANFILES = #{$distcleanfiles.join(' ')}
DISTCLEANDIRS = #{$distcleandirs.join(' ')}

extout = #{$extout && $extout.quote}
extout_prefix = #{$extout_prefix}
target_prefix = #{target_prefix}
LOCAL_LIBS = #{$LOCAL_LIBS}
LIBS = #{$LIBRUBYARG} #{$libs} #{$LIBS}
ORIG_SRCS = #{orig_srcs.collect(&File.method(:basename)).join(' ')}
SRCS = $(ORIG_SRCS) #{(srcs - orig_srcs).collect(&File.method(:basename)).join(' ')}
OBJS = #{$objs.join(" ")}
HDRS = #{hdrs.map{|h| '$(srcdir)/' + File.basename(h)}.join(' ')}
TARGET = #{target}
TARGET_NAME = #{target && target[/\A\w+/]}
TARGET_ENTRY = #{EXPORT_PREFIX || ''}Init_$(TARGET_NAME)
DLLIB = #{dllib}
EXTSTATIC = #{$static || ""}
STATIC_LIB = #{staticlib unless $static.nil?}
#{!$extout && defined?($installed_list) ? "INSTALLED_LIST = #{$installed_list}\n" : ""}
TIMESTAMP_DIR = #{$extout ? '$(extout)/.timestamp' : '.'}
" #"
    # TODO: fixme
    install_dirs.each {|d| mfile.print("%-14s= %s\n" % d) if /^[[:upper:]]/ =~ d[0]}
    n = ($extout ? '$(RUBYARCHDIR)/' : '') + '$(TARGET)'
    mfile.print "
TARGET_SO     = #{($extout ? '$(RUBYARCHDIR)/' : '')}$(DLLIB)
CLEANLIBS     = #{n}.#{CONFIG['DLEXT']} #{config_string('cleanlibs') {|t| t.gsub(/\$\*/) {n}}}
CLEANOBJS     = *.#{$OBJEXT} #{config_string('cleanobjs') {|t| t.gsub(/\$\*/, "$(TARGET)#{deffile ? '-$(arch)': ''}")} if target} *.bak

all:    #{$extout ? "install" : target ? "$(DLLIB)" : "Makefile"}
static: $(STATIC_LIB)#{$extout ? " install-rb" : ""}
.PHONY: all install static install-so install-rb
.PHONY: clean clean-so clean-static clean-rb
"
    mfile.print CLEANINGS
    fsep = config_string('BUILD_FILE_SEPARATOR') {|s| s unless s == "/"}
    if fsep
      sep = ":/=#{fsep}"
      fseprepl = proc {|s|
        s = s.gsub("/", fsep)
        s = s.gsub(/(\$\(\w+)(\))/) {$1+sep+$2}
        s.gsub(/(\$\{\w+)(\})/) {$1+sep+$2}
      }
      rsep = ":#{fsep}=/"
    else
      fseprepl = proc {|s| s}
      sep = ""
      rsep = ""
    end
    dirs = []
    mfile.print "install: install-so install-rb\n\n"
    sodir = (dir = "$(RUBYARCHDIR)").dup
    mfile.print("install-so: ")
    if target
      f = "$(DLLIB)"
      dest = "#{dir}/#{f}"
      if $extout
        mfile.puts dest
        mfile.print "clean-so::\n"
        mfile.print "\t-$(Q)$(RM) #{fseprepl[dest]}\n"
        mfile.print "\t-$(Q)$(RMDIRS) #{fseprepl[dir]}#{$ignore_error}\n"
      else
        mfile.print "#{f} #{timestamp_file(dir, target_prefix)}\n"
        mfile.print "\t$(INSTALL_PROG) #{fseprepl[f]} #{dir}\n"
        if defined?($installed_list)
          mfile.print "\t@echo #{dir}/#{File.basename(f)}>>$(INSTALLED_LIST)\n"
        end
      end
      mfile.print "clean-static::\n"
      mfile.print "\t-$(Q)$(RM) $(STATIC_LIB)\n"
    else
      mfile.puts "Makefile"
    end
    mfile.print("install-rb: pre-install-rb install-rb-default\n")
    mfile.print("install-rb-default: pre-install-rb-default\n")
    mfile.print("pre-install-rb: Makefile\n")
    mfile.print("pre-install-rb-default: Makefile\n")
    for sfx, i in [["-default", [["lib/**/*.rb", "$(RUBYLIBDIR)", "lib"]]], ["", $INSTALLFILES]]
      files = install_files(mfile, i, nil, srcprefix) or next
      for dir, *files in files
        unless dirs.include?(dir)
          dirs << dir
          mfile.print "pre-install-rb#{sfx}: #{timestamp_file(dir, target_prefix)}\n"
        end
        for f in files
          dest = "#{dir}/#{File.basename(f)}"
          mfile.print("install-rb#{sfx}: #{dest}\n")
          mfile.print("#{dest}: #{f} #{timestamp_file(dir, target_prefix)}\n")
          mfile.print("\t$(Q) $(#{$extout ? 'COPY' : 'INSTALL_DATA'}) #{f} $(@D)\n")
          if defined?($installed_list) and !$extout
            mfile.print("\t@echo #{dest}>>$(INSTALLED_LIST)\n")
          end
          if $extout
            mfile.print("clean-rb#{sfx}::\n")
            mfile.print("\t-$(Q)$(RM) #{fseprepl[dest]}\n")
          end
        end
      end
      mfile.print "pre-install-rb#{sfx}:\n"
      if files.empty?
        mfile.print("\t@$(NULLCMD)\n")
      else
        mfile.print("\t$(ECHO) installing#{sfx.sub(/^-/, " ")} #{target} libraries\n")
      end
      if $extout
        dirs.uniq!
        unless dirs.empty?
          mfile.print("clean-rb#{sfx}::\n")
          for dir in dirs.sort_by {|d| -d.count('/')}
            mfile.print("\t-$(Q)$(RMDIRS) #{fseprepl[dir]}#{$ignore_error}\n")
          end
        end
      end
    end
    dirs.unshift(sodir) if target and !dirs.include?(sodir)
    dirs.each do |d|
      t = timestamp_file(d, target_prefix)
      mfile.print "#{t}:\n\t$(Q) $(MAKEDIRS) $(@D) #{d}\n\t$(Q) $(TOUCH) $@\n"
    end

    mfile.print <<-SITEINSTALL

site-install: site-install-so site-install-rb
site-install-so: install-so
site-install-rb: install-rb

    SITEINSTALL

    return unless target

    mfile.puts SRC_EXT.collect {|e| ".path.#{e} = $(VPATH)"} if $nmake == ?b
    mfile.print ".SUFFIXES: .#{(SRC_EXT + [$OBJEXT, $ASMEXT]).compact.join(' .')}\n"
    mfile.print "\n"

    compile_command = "\n\t$(ECHO) compiling $(<#{rsep})\n\t$(Q) %s\n\n"
    command = compile_command % COMPILE_CXX
    asm_command = compile_command.sub(/compiling/, 'translating') % ASSEMBLE_CXX
    CXX_EXT.each do |e|
      each_compile_rules do |rule|
        mfile.printf(rule, e, $OBJEXT)
        mfile.print(command)
        mfile.printf(rule, e, $ASMEXT)
        mfile.print(asm_command)
      end
    end
    command = compile_command % COMPILE_C
    asm_command = compile_command.sub(/compiling/, 'translating') % ASSEMBLE_C
    C_EXT.each do |e|
      each_compile_rules do |rule|
        mfile.printf(rule, e, $OBJEXT)
        mfile.print(command)
        mfile.printf(rule, e, $ASMEXT)
        mfile.print(asm_command)
      end
    end

    mfile.print "$(RUBYARCHDIR)/" if $extout
    mfile.print "$(DLLIB): "
    mfile.print "$(DEFFILE) " if makedef
    mfile.print "$(OBJS) Makefile"
    mfile.print " #{timestamp_file('$(RUBYARCHDIR)', target_prefix)}" if $extout
    mfile.print "\n"
    mfile.print "\t$(ECHO) linking shared-object #{target_prefix.sub(/\A\/(.*)/, '\1/')}$(DLLIB)\n"
    mfile.print "\t-$(Q)$(RM) $(@#{sep})\n"
    link_so = LINK_SO.gsub(/^/, "\t$(Q) ")
    if srcs.any?(&%r"\.(?:#{CXX_EXT.join('|')})\z".method(:===))
      link_so = link_so.sub(/\bLDSHARED\b/, '\&XX')
    end
    mfile.print link_so, "\n\n"
    unless $static.nil?
      mfile.print "$(STATIC_LIB): $(OBJS)\n\t-$(Q)$(RM) $(@#{sep})\n\t"
      mfile.print "$(ECHO) linking static-library $(@#{rsep})\n\t$(Q) "
      mfile.print "$(AR) #{config_string('ARFLAGS') || 'cru '}$@ $(OBJS)"
      config_string('RANLIB') do |ranlib|
        mfile.print "\n\t-$(Q)#{ranlib} $(@) 2> /dev/null || true"
      end
    end
    mfile.print "\n\n"
    if makedef
      mfile.print "$(DEFFILE): #{origdef}\n"
      mfile.print "\t$(ECHO) generating $(@#{rsep})\n"
      mfile.print "\t$(Q) $(RUBY) #{makedef} #{origdef} > $@\n\n"
    end

    depend = File.join(srcdir, "depend")
    if File.exist?(depend)
      mfile.print("###\n", *depend_rules(File.read(depend)))
    else
      mfile.print "$(OBJS): $(HDRS) $(ruby_headers)\n"
    end

    $makefile_created = true
  ensure
    mfile.close if mfile
  end

  # :stopdoc:

  def init_mkmf(config = CONFIG, rbconfig = RbConfig::CONFIG)
    $makefile_created = false
    $arg_config = []
    $enable_shared = config['ENABLE_SHARED'] == 'yes'
    $defs = []
    $extconf_h = nil
    if $warnflags = CONFIG['warnflags'] and CONFIG['GCC'] == 'yes'
      # turn warnings into errors only for bundled extensions.
      config['warnflags'] = $warnflags.gsub(/(\A|\s)-Werror[-=]/, '\1-W')
      if /icc\z/ =~ config['CC']
        config['warnflags'].gsub!(/(\A|\s)-W(?:division-by-zero|deprecated-declarations)/, '\1')
      end
      RbConfig.expand(rbconfig['warnflags'] = config['warnflags'].dup)
      config.each do |key, val|
        RbConfig.expand(rbconfig[key] = val.dup) if /warnflags/ =~ val
      end
      $warnflags = config['warnflags'] unless $extmk
    end
    $CFLAGS = with_config("cflags", arg_config("CFLAGS", config["CFLAGS"])).dup
    $CXXFLAGS = (with_config("cxxflags", arg_config("CXXFLAGS", config["CXXFLAGS"]))||'').dup
    $ARCH_FLAG = with_config("arch_flag", arg_config("ARCH_FLAG", config["ARCH_FLAG"])).dup
    $CPPFLAGS = with_config("cppflags", arg_config("CPPFLAGS", config["CPPFLAGS"])).dup
    $LDFLAGS = with_config("ldflags", arg_config("LDFLAGS", config["LDFLAGS"])).dup
    $INCFLAGS = "-I$(arch_hdrdir)"
    $INCFLAGS << " -I$(hdrdir)/ruby/backward" unless $extmk
    $INCFLAGS << " -I$(hdrdir) -I$(srcdir)"
    $DLDFLAGS = with_config("dldflags", arg_config("DLDFLAGS", config["DLDFLAGS"])).dup
    $LIBEXT = config['LIBEXT'].dup
    $OBJEXT = config["OBJEXT"].dup
    $EXEEXT = config["EXEEXT"].dup
    $ASMEXT = config_string('ASMEXT', &:dup) || 'S'
    $LIBS = "#{config['LIBS']} #{config['DLDLIBS']}"
    $LIBRUBYARG = ""
    $LIBRUBYARG_STATIC = config['LIBRUBYARG_STATIC']
    $LIBRUBYARG_SHARED = config['LIBRUBYARG_SHARED']
    $DEFLIBPATH = [$extmk ? "$(topdir)" : "$(#{config["libdirname"] || "libdir"})"]
    $DEFLIBPATH.unshift(".")
    $LIBPATH = []
    $INSTALLFILES = []
    $NONINSTALLFILES = [/~\z/, /\A#.*#\z/, /\A\.#/, /\.bak\z/i, /\.orig\z/, /\.rej\z/, /\.l[ao]\z/, /\.o\z/]
    $VPATH = %w[$(srcdir) $(arch_hdrdir)/ruby $(hdrdir)/ruby]

    $objs = nil
    $srcs = nil
    $libs = ""
    if $enable_shared or RbConfig.expand(config["LIBRUBY"].dup) != RbConfig.expand(config["LIBRUBY_A"].dup)
      $LIBRUBYARG = config['LIBRUBYARG']
    end

    $LOCAL_LIBS = ""

    $cleanfiles = config_string('CLEANFILES') {|s| Shellwords.shellwords(s)} || []
    $cleanfiles << "mkmf.log"
    $distcleanfiles = config_string('DISTCLEANFILES') {|s| Shellwords.shellwords(s)} || []
    $distcleandirs = config_string('DISTCLEANDIRS') {|s| Shellwords.shellwords(s)} || []

    $extout ||= nil
    $extout_prefix ||= nil

    $arg_config.clear
    dir_config("opt")
  end

  FailedMessage = <<MESSAGE
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
MESSAGE

  # Returns whether or not the Makefile was successfully generated. If not,
  # the script will abort with an error message.
  #
  # Internal use only.
  #
  def mkmf_failed(path)
    unless $makefile_created or File.exist?("Makefile")
      opts = $arg_config.collect {|t, n| "\t#{t}#{n ? "=#{n}" : ""}\n"}
      abort "*** #{path} failed ***\n" + FailedMessage + opts.join
    end
  end

  private

  def _libdir_basename
    @libdir_basename ||= config_string("libdir") {|name| name[/\A\$\(exec_prefix\)\/(.*)/, 1]} || "lib"
  end

  def MAIN_DOES_NOTHING(*refs)
    src = MAIN_DOES_NOTHING
    unless refs.empty?
      src = src.sub(/\{/) do
        $& +
          "\n  if (argc > 1000000) {\n" +
          refs.map {|n|"    printf(\"%p\", &#{n});\n"}.join("") +
          "  }\n"
      end
    end
    src
  end

  extend self
  init_mkmf

  $make = with_config("make-prog", ENV["MAKE"] || "make")
  make, = Shellwords.shellwords($make)
  $nmake = nil
  case
  when $mswin
    $nmake = ?m if /nmake/i =~ make
  when $bccwin
    $nmake = ?b if /Borland/i =~ `#{make} -h`
  end
  $ignore_error = $nmake ? '' : ' 2> /dev/null || true'

  RbConfig::CONFIG["srcdir"] = CONFIG["srcdir"] =
    $srcdir = arg_config("--srcdir", File.dirname($0))
  $configure_args["--topsrcdir"] ||= $srcdir
  if $curdir = arg_config("--curdir")
    RbConfig.expand(curdir = $curdir.dup)
  else
    curdir = $curdir = "."
  end
  unless File.expand_path(RbConfig::CONFIG["topdir"]) == File.expand_path(curdir)
    CONFIG["topdir"] = $curdir
    RbConfig::CONFIG["topdir"] = curdir
  end
  $configure_args["--topdir"] ||= $curdir
  $ruby = arg_config("--ruby", File.join(RbConfig::CONFIG["bindir"], CONFIG["ruby_install_name"]))

  RbConfig.expand(CONFIG["RUBY_SO_NAME"])

  # :startdoc:

  split = Shellwords.method(:shellwords).to_proc

  EXPORT_PREFIX = config_string('EXPORT_PREFIX') {|s| s.strip}

  hdr = ['#include "ruby.h"' "\n"]
  config_string('COMMON_MACROS') do |s|
    Shellwords.shellwords(s).each do |w|
      w, v = w.split(/=/, 2)
      hdr << "#ifndef #{w}"
      hdr << "#define #{[w, v].compact.join(" ")}"
      hdr << "#endif /* #{w} */"
    end
  end
  config_string('COMMON_HEADERS') do |s|
    Shellwords.shellwords(s).each {|w| hdr << "#include <#{w}>"}
  end

  ##
  # Common headers for Ruby C extensions

  COMMON_HEADERS = hdr.join("\n")

  ##
  # Common libraries for Ruby C extensions

  COMMON_LIBS = config_string('COMMON_LIBS', &split) || []

  ##
  # make compile rules

  COMPILE_RULES = config_string('COMPILE_RULES', &split) || %w[.%s.%s:]
  RULE_SUBST = config_string('RULE_SUBST')

  ##
  # Command which will compile C files in the generated Makefile

  COMPILE_C = config_string('COMPILE_C') || '$(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<'

  ##
  # Command which will compile C++ files in the generated Makefile

  COMPILE_CXX = config_string('COMPILE_CXX') || '$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<'

  ##
  # Command which will translate C files to assembler sources in the generated Makefile

  ASSEMBLE_C = config_string('ASSEMBLE_C') || COMPILE_C.sub(/(?<=\s)-c(?=\s)/, '-S')

  ##
  # Command which will translate C++ files to assembler sources in the generated Makefile

  ASSEMBLE_CXX = config_string('ASSEMBLE_CXX') || COMPILE_CXX.sub(/(?<=\s)-c(?=\s)/, '-S')

  ##
  # Command which will compile a program in order to test linking a library

  TRY_LINK = config_string('TRY_LINK') ||
    "$(CC) #{OUTFLAG}#{CONFTEST}#{$EXEEXT} $(INCFLAGS) $(CPPFLAGS) " \
    "$(CFLAGS) $(src) $(LIBPATH) $(LDFLAGS) $(ARCH_FLAG) $(LOCAL_LIBS) $(LIBS)"

  ##
  # Command which will link a shared library

  LINK_SO = (config_string('LINK_SO') || "").sub(/^$/) do
    if CONFIG["DLEXT"] == $OBJEXT
      "ld $(DLDFLAGS) -r -o $@ $(OBJS)\n"
    else
      "$(LDSHARED) #{OUTFLAG}$@ $(OBJS) " \
      "$(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)"
    end
  end

  ##
  # Argument which will add a library path to the linker

  LIBPATHFLAG = config_string('LIBPATHFLAG') || ' -L%s'
  RPATHFLAG = config_string('RPATHFLAG') || ''

  ##
  # Argument which will add a library to the linker

  LIBARG = config_string('LIBARG') || '-l%s'

  ##
  # A C main function which does no work

  MAIN_DOES_NOTHING = config_string('MAIN_DOES_NOTHING') || "int main(int argc, char **argv)\n{\n  return 0;\n}"
  UNIVERSAL_INTS = config_string('UNIVERSAL_INTS') {|s| Shellwords.shellwords(s)} ||
    %w[int short long long\ long]

  sep = config_string('BUILD_FILE_SEPARATOR') {|s| ":/=#{s}" if s != "/"} || ""

  ##
  # Makefile rules that will clean the extension build directory

  CLEANINGS = "
clean-static::
clean-rb-default::
clean-rb::
clean-so::
clean: clean-so clean-static clean-rb-default clean-rb
\t\t-$(Q)$(RM) $(CLEANLIBS#{sep}) $(CLEANOBJS#{sep}) $(CLEANFILES#{sep}) .*.time

distclean-rb-default::
distclean-rb::
distclean-so::
distclean-static::
distclean: clean distclean-so distclean-static distclean-rb-default distclean-rb
\t\t-$(Q)$(RM) Makefile $(RUBY_EXTCONF_H) #{CONFTEST}.* mkmf.log
\t\t-$(Q)$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES#{sep})
\t\t-$(Q)$(RMDIRS) $(DISTCLEANDIRS#{sep})#{$ignore_error}

realclean: distclean
"
end

include MakeMakefile

if not $extmk and /\A(extconf|makefile).rb\z/ =~ File.basename($0)
  END {mkmf_failed($0)}
end
lib64/ruby/2.2.0/uri.rb000064400000006107150402106060010226 0ustar00# URI is a module providing classes to handle Uniform Resource Identifiers
# (RFC2396[http://tools.ietf.org/html/rfc2396])
#
# == Features
#
# * Uniform handling of handling URIs
# * Flexibility to introduce custom URI schemes
# * Flexibility to have an alternate URI::Parser (or just different patterns
#   and regexp's)
#
# == Basic example
#
#   require 'uri'
#
#   uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413")
#   #=> #<URI::HTTP:0x00000000b14880
#         URL:http://foo.com/posts?id=30&limit=5#time=1305298413>
#   uri.scheme
#   #=> "http"
#   uri.host
#   #=> "foo.com"
#   uri.path
#   #=> "/posts"
#   uri.query
#   #=> "id=30&limit=5"
#   uri.fragment
#   #=> "time=1305298413"
#
#   uri.to_s
#   #=> "http://foo.com/posts?id=30&limit=5#time=1305298413"
#
# == Adding custom URIs
#
#   module URI
#     class RSYNC < Generic
#       DEFAULT_PORT = 873
#     end
#     @@schemes['RSYNC'] = RSYNC
#   end
#   #=> URI::RSYNC
#
#   URI.scheme_list
#   #=> {"FTP"=>URI::FTP, "HTTP"=>URI::HTTP, "HTTPS"=>URI::HTTPS,
#        "LDAP"=>URI::LDAP, "LDAPS"=>URI::LDAPS, "MAILTO"=>URI::MailTo,
#        "RSYNC"=>URI::RSYNC}
#
#   uri = URI("rsync://rsync.foo.com")
#   #=> #<URI::RSYNC:0x00000000f648c8 URL:rsync://rsync.foo.com>
#
# == RFC References
#
# A good place to view an RFC spec is http://www.ietf.org/rfc.html
#
# Here is a list of all related RFC's.
# - RFC822[http://tools.ietf.org/html/rfc822]
# - RFC1738[http://tools.ietf.org/html/rfc1738]
# - RFC2255[http://tools.ietf.org/html/rfc2255]
# - RFC2368[http://tools.ietf.org/html/rfc2368]
# - RFC2373[http://tools.ietf.org/html/rfc2373]
# - RFC2396[http://tools.ietf.org/html/rfc2396]
# - RFC2732[http://tools.ietf.org/html/rfc2732]
# - RFC3986[http://tools.ietf.org/html/rfc3986]
#
# == Class tree
#
# - URI::Generic (in uri/generic.rb)
#   - URI::FTP - (in uri/ftp.rb)
#   - URI::HTTP - (in uri/http.rb)
#     - URI::HTTPS - (in uri/https.rb)
#   - URI::LDAP - (in uri/ldap.rb)
#     - URI::LDAPS - (in uri/ldaps.rb)
#   - URI::MailTo - (in uri/mailto.rb)
# - URI::Parser - (in uri/common.rb)
# - URI::REGEXP - (in uri/common.rb)
#   - URI::REGEXP::PATTERN - (in uri/common.rb)
# - URI::Util - (in uri/common.rb)
# - URI::Escape - (in uri/common.rb)
# - URI::Error - (in uri/common.rb)
#   - URI::InvalidURIError - (in uri/common.rb)
#   - URI::InvalidComponentError - (in uri/common.rb)
#   - URI::BadURIError - (in uri/common.rb)
#
# == Copyright Info
#
# Author:: Akira Yamada <akira@ruby-lang.org>
# Documentation::
#   Akira Yamada <akira@ruby-lang.org>
#   Dmitry V. Sabanin <sdmitry@lrn.ru>
#   Vincent Batts <vbatts@hashbangbash.com>
# License::
#  Copyright (c) 2001 akira yamada <akira@ruby-lang.org>
#  You can redistribute it and/or modify it under the same term as Ruby.
# Revision:: $Id: uri.rb 48243 2014-11-03 00:33:44Z naruse $
#

module URI
  # :stopdoc:
  VERSION_CODE = '001000'.freeze
  VERSION = VERSION_CODE.scan(/../).collect{|n| n.to_i}.join('.').freeze
  # :startdoc:

end

require 'uri/common'
require 'uri/generic'
require 'uri/ftp'
require 'uri/http'
require 'uri/https'
require 'uri/ldap'
require 'uri/ldaps'
require 'uri/mailto'
lib64/ruby/2.2.0/securerandom.rb000064400000022314150402106060012114 0ustar00# -*- coding: us-ascii -*-
begin
  require 'openssl'
rescue LoadError
end

# == Secure random number generator interface.
#
# This library is an interface for secure random number generator which is
# suitable for generating session key in HTTP cookies, etc.
#
# You can use this library in your application by requiring it:
#
#   require 'securerandom'
#
# It supports following secure random number generators.
#
# * openssl
# * /dev/urandom
# * Win32
#
# === Examples
#
# Hexadecimal string.
#
#   require 'securerandom'
#
#   p SecureRandom.hex(10) #=> "52750b30ffbc7de3b362"
#   p SecureRandom.hex(10) #=> "92b15d6c8dc4beb5f559"
#   p SecureRandom.hex(13) #=> "39b290146bea6ce975c37cfc23"
#
# Base64 string.
#
#   p SecureRandom.base64(10) #=> "EcmTPZwWRAozdA=="
#   p SecureRandom.base64(10) #=> "KO1nIU+p9DKxGg=="
#   p SecureRandom.base64(12) #=> "7kJSM/MzBJI+75j8"
#
# Binary string.
#
#   p SecureRandom.random_bytes(10) #=> "\016\t{\370g\310pbr\301"
#   p SecureRandom.random_bytes(10) #=> "\323U\030TO\234\357\020\a\337"
module SecureRandom
  if /mswin|mingw/ =~ RUBY_PLATFORM
    require "fiddle/import"

    module AdvApi32 # :nodoc:
      extend Fiddle::Importer
      dlload "advapi32"
      extern "int CryptAcquireContext(void*, void*, void*, unsigned long, unsigned long)"
      extern "int CryptGenRandom(void*, unsigned long, void*)"

      def self.get_provider
        hProvStr = " " * Fiddle::SIZEOF_VOIDP
        prov_rsa_full = 1
        crypt_verifycontext = 0xF0000000

        if CryptAcquireContext(hProvStr, nil, nil, prov_rsa_full, crypt_verifycontext) == 0
          raise SystemCallError, "CryptAcquireContext failed: #{lastWin32ErrorMessage}"
        end
        type = Fiddle::SIZEOF_VOIDP == Fiddle::SIZEOF_LONG_LONG ? 'q' : 'l'
        hProv, = hProvStr.unpack(type)
        hProv
      end

      def self.gen_random(n)
        @hProv ||= get_provider
        bytes = " ".force_encoding("ASCII-8BIT") * n
        if CryptGenRandom(@hProv, bytes.size, bytes) == 0
          raise SystemCallError, "CryptGenRandom failed: #{Kernel32.last_error_message}"
        end
        bytes
      end
    end

    module Kernel32 # :nodoc:
      extend Fiddle::Importer
      dlload "kernel32"
      extern "unsigned long GetLastError()"
      extern "unsigned long FormatMessageA(unsigned long, void*, unsigned long, unsigned long, void*, unsigned long, void*)"

      # Following code is based on David Garamond's GUID library for Ruby.
      def self.last_error_message
        format_message_ignore_inserts = 0x00000200
        format_message_from_system    = 0x00001000

        code = GetLastError()
        msg = "\0" * 1024
        len = FormatMessageA(format_message_ignore_inserts + format_message_from_system, 0, code, 0, msg, 1024, nil)
        msg[0, len].force_encoding("filesystem").tr("\r", '').chomp
      end
    end
  end

  # SecureRandom.random_bytes generates a random binary string.
  #
  # The argument _n_ specifies the length of the result string.
  #
  # If _n_ is not specified or is nil, 16 is assumed.
  # It may be larger in future.
  #
  # The result may contain any byte: "\x00" - "\xff".
  #
  #   p SecureRandom.random_bytes #=> "\xD8\\\xE0\xF4\r\xB2\xFC*WM\xFF\x83\x18\xF45\xB6"
  #   p SecureRandom.random_bytes #=> "m\xDC\xFC/\a\x00Uf\xB2\xB2P\xBD\xFF6S\x97"
  #
  # If secure random number generator is not available,
  # NotImplementedError is raised.
  def self.random_bytes(n=nil)
    n = n ? n.to_int : 16
    gen_random(n)
  end

  if defined?(OpenSSL::Random) && !defined?(AdvApi32)
    def self.gen_random(n)
      @pid = 0 unless defined?(@pid)
      pid = $$
      unless @pid == pid
        now = Process.clock_gettime(Process::CLOCK_REALTIME, :nanosecond)
        ary = [now, @pid, pid]
        OpenSSL::Random.random_add(ary.join("").to_s, 0.0)
        @pid = pid
      end
      return OpenSSL::Random.random_bytes(n)
    end
  elsif defined?(AdvApi32)
    def self.gen_random(n)
      return AdvApi32.gen_random(n)
    end

    def self.lastWin32ErrorMessage # :nodoc:
      # for compatibility
      return Kernel32.last_error_message
    end
  else
    def self.gen_random(n)
      flags = File::RDONLY
      flags |= File::NONBLOCK if defined? File::NONBLOCK
      flags |= File::NOCTTY if defined? File::NOCTTY
      begin
        File.open("/dev/urandom", flags) {|f|
          unless f.stat.chardev?
            break
          end
          ret = f.read(n)
          unless ret.length == n
            raise NotImplementedError, "Unexpected partial read from random device: only #{ret.length} for #{n} bytes"
          end
          return ret
        }
      rescue Errno::ENOENT
      end

      raise NotImplementedError, "No random device"
    end
  end

  # SecureRandom.hex generates a random hexadecimal string.
  #
  # The argument _n_ specifies the length, in bytes, of the random number to be generated.
  # The length of the resulting hexadecimal string is twice _n_.
  #
  # If _n_ is not specified or is nil, 16 is assumed.
  # It may be larger in future.
  #
  # The result may contain 0-9 and a-f.
  #
  #   p SecureRandom.hex #=> "eb693ec8252cd630102fd0d0fb7c3485"
  #   p SecureRandom.hex #=> "91dc3bfb4de5b11d029d376634589b61"
  #
  # If secure random number generator is not available,
  # NotImplementedError is raised.
  def self.hex(n=nil)
    random_bytes(n).unpack("H*")[0]
  end

  # SecureRandom.base64 generates a random base64 string.
  #
  # The argument _n_ specifies the length, in bytes, of the random number
  # to be generated. The length of the result string is about 4/3 of _n_.
  #
  # If _n_ is not specified or is nil, 16 is assumed.
  # It may be larger in future.
  #
  # The result may contain A-Z, a-z, 0-9, "+", "/" and "=".
  #
  #   p SecureRandom.base64 #=> "/2BuBuLf3+WfSKyQbRcc/A=="
  #   p SecureRandom.base64 #=> "6BbW0pxO0YENxn38HMUbcQ=="
  #
  # If secure random number generator is not available,
  # NotImplementedError is raised.
  #
  # See RFC 3548 for the definition of base64.
  def self.base64(n=nil)
    [random_bytes(n)].pack("m*").delete("\n")
  end

  # SecureRandom.urlsafe_base64 generates a random URL-safe base64 string.
  #
  # The argument _n_ specifies the length, in bytes, of the random number
  # to be generated. The length of the result string is about 4/3 of _n_.
  #
  # If _n_ is not specified or is nil, 16 is assumed.
  # It may be larger in future.
  #
  # The boolean argument _padding_ specifies the padding.
  # If it is false or nil, padding is not generated.
  # Otherwise padding is generated.
  # By default, padding is not generated because "=" may be used as a URL delimiter.
  #
  # The result may contain A-Z, a-z, 0-9, "-" and "_".
  # "=" is also used if _padding_ is true.
  #
  #   p SecureRandom.urlsafe_base64 #=> "b4GOKm4pOYU_-BOXcrUGDg"
  #   p SecureRandom.urlsafe_base64 #=> "UZLdOkzop70Ddx-IJR0ABg"
  #
  #   p SecureRandom.urlsafe_base64(nil, true) #=> "i0XQ-7gglIsHGV2_BNPrdQ=="
  #   p SecureRandom.urlsafe_base64(nil, true) #=> "-M8rLhr7JEpJlqFGUMmOxg=="
  #
  # If secure random number generator is not available,
  # NotImplementedError is raised.
  #
  # See RFC 3548 for the definition of URL-safe base64.
  def self.urlsafe_base64(n=nil, padding=false)
    s = [random_bytes(n)].pack("m*")
    s.delete!("\n")
    s.tr!("+/", "-_")
    s.delete!("=") unless padding
    s
  end

  # SecureRandom.random_number generates a random number.
  #
  # If a positive integer is given as _n_,
  # SecureRandom.random_number returns an integer:
  # 0 <= SecureRandom.random_number(n) < n.
  #
  #   p SecureRandom.random_number(100) #=> 15
  #   p SecureRandom.random_number(100) #=> 88
  #
  # If 0 is given or an argument is not given,
  # SecureRandom.random_number returns a float:
  # 0.0 <= SecureRandom.random_number() < 1.0.
  #
  #   p SecureRandom.random_number #=> 0.596506046187744
  #   p SecureRandom.random_number #=> 0.350621695741409
  #
  def self.random_number(n=0)
    if 0 < n
      if defined? OpenSSL::BN
        OpenSSL::BN.rand_range(n).to_i
      else
        hex = n.to_s(16)
        hex = '0' + hex if (hex.length & 1) == 1
        bin = [hex].pack("H*")
        mask = bin[0].ord
        mask |= mask >> 1
        mask |= mask >> 2
        mask |= mask >> 4
        begin
          rnd = SecureRandom.random_bytes(bin.length)
          rnd[0] = (rnd[0].ord & mask).chr
        end until rnd < bin
        rnd.unpack("H*")[0].hex
      end
    else
      # assumption: Float::MANT_DIG <= 64
      if defined? OpenSSL::BN
        i64 = OpenSSL::BN.rand(64, -1).to_i
      else
        i64 = SecureRandom.random_bytes(8).unpack("Q")[0]
      end
      Math.ldexp(i64 >> (64-Float::MANT_DIG), -Float::MANT_DIG)
    end
  end

  # SecureRandom.uuid generates a v4 random UUID (Universally Unique IDentifier).
  #
  #   p SecureRandom.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594"
  #   p SecureRandom.uuid #=> "bad85eb9-0713-4da7-8d36-07a8e4b00eab"
  #   p SecureRandom.uuid #=> "62936e70-1815-439b-bf89-8492855a7e6b"
  #
  # The version 4 UUID is purely random (except the version).
  # It doesn't contain meaningful information such as MAC address, time, etc.
  #
  # See RFC 4122 for details of UUID.
  #
  def self.uuid
    ary = self.random_bytes(16).unpack("NnnnnN")
    ary[2] = (ary[2] & 0x0fff) | 0x4000
    ary[3] = (ary[3] & 0x3fff) | 0x8000
    "%08x-%04x-%04x-%04x-%04x%08x" % ary
  end
end
lib64/ruby/2.2.0/openssl.rb000064400000001020150402106060011077 0ustar00=begin
= $RCSfile$ -- Loader for all OpenSSL C-space and Ruby-space definitions

= Info
  'OpenSSL for Ruby 2' project
  Copyright (C) 2002  Michal Rokos <m.rokos@sh.cvut.cz>
  All rights reserved.

= Licence
  This program is licenced under the same licence as Ruby.
  (See the file 'LICENCE'.)

= Version
  $Id: openssl.rb 32664 2011-07-25 06:30:07Z nahi $
=end

require 'openssl.so'

require 'openssl/bn'
require 'openssl/cipher'
require 'openssl/config'
require 'openssl/digest'
require 'openssl/x509'
require 'openssl/ssl'
lib64/ruby/2.2.0/matrix/lup_decomposition.rb000064400000012577150402106060014477 0ustar00class Matrix
  # Adapted from JAMA: http://math.nist.gov/javanumerics/jama/

  #
  # For an m-by-n matrix A with m >= n, the LU decomposition is an m-by-n
  # unit lower triangular matrix L, an n-by-n upper triangular matrix U,
  # and a m-by-m permutation matrix P so that L*U = P*A.
  # If m < n, then L is m-by-m and U is m-by-n.
  #
  # The LUP decomposition with pivoting always exists, even if the matrix is
  # singular, so the constructor will never fail.  The primary use of the
  # LU decomposition is in the solution of square systems of simultaneous
  # linear equations.  This will fail if singular? returns true.
  #

  class LUPDecomposition
    # Returns the lower triangular factor +L+

    include Matrix::ConversionHelper

    def l
      Matrix.build(@row_count, [@column_count, @row_count].min) do |i, j|
        if (i > j)
          @lu[i][j]
        elsif (i == j)
          1
        else
          0
        end
      end
    end

    # Returns the upper triangular factor +U+

    def u
      Matrix.build([@column_count, @row_count].min, @column_count) do |i, j|
        if (i <= j)
          @lu[i][j]
        else
          0
        end
      end
    end

    # Returns the permutation matrix +P+

    def p
      rows = Array.new(@row_count){Array.new(@row_count, 0)}
      @pivots.each_with_index{|p, i| rows[i][p] = 1}
      Matrix.send :new, rows, @row_count
    end

    # Returns +L+, +U+, +P+ in an array

    def to_ary
      [l, u, p]
    end
    alias_method :to_a, :to_ary

    # Returns the pivoting indices

    attr_reader :pivots

    # Returns +true+ if +U+, and hence +A+, is singular.

    def singular? ()
      @column_count.times do |j|
        if (@lu[j][j] == 0)
          return true
        end
      end
      false
    end

    # Returns the determinant of +A+, calculated efficiently
    # from the factorization.

    def det
      if (@row_count != @column_count)
        Matrix.Raise Matrix::ErrDimensionMismatch
      end
      d = @pivot_sign
      @column_count.times do |j|
        d *= @lu[j][j]
      end
      d
    end
    alias_method :determinant, :det

    # Returns +m+ so that <tt>A*m = b</tt>,
    # or equivalently so that <tt>L*U*m = P*b</tt>
    # +b+ can be a Matrix or a Vector

    def solve b
      if (singular?)
        Matrix.Raise Matrix::ErrNotRegular, "Matrix is singular."
      end
      if b.is_a? Matrix
        if (b.row_count != @row_count)
          Matrix.Raise Matrix::ErrDimensionMismatch
        end

        # Copy right hand side with pivoting
        nx = b.column_count
        m = @pivots.map{|row| b.row(row).to_a}

        # Solve L*Y = P*b
        @column_count.times do |k|
          (k+1).upto(@column_count-1) do |i|
            nx.times do |j|
              m[i][j] -= m[k][j]*@lu[i][k]
            end
          end
        end
        # Solve U*m = Y
        (@column_count-1).downto(0) do |k|
          nx.times do |j|
            m[k][j] = m[k][j].quo(@lu[k][k])
          end
          k.times do |i|
            nx.times do |j|
              m[i][j] -= m[k][j]*@lu[i][k]
            end
          end
        end
        Matrix.send :new, m, nx
      else # same algorithm, specialized for simpler case of a vector
        b = convert_to_array(b)
        if (b.size != @row_count)
          Matrix.Raise Matrix::ErrDimensionMismatch
        end

        # Copy right hand side with pivoting
        m = b.values_at(*@pivots)

        # Solve L*Y = P*b
        @column_count.times do |k|
          (k+1).upto(@column_count-1) do |i|
            m[i] -= m[k]*@lu[i][k]
          end
        end
        # Solve U*m = Y
        (@column_count-1).downto(0) do |k|
          m[k] = m[k].quo(@lu[k][k])
          k.times do |i|
            m[i] -= m[k]*@lu[i][k]
          end
        end
        Vector.elements(m, false)
      end
    end

    def initialize a
      raise TypeError, "Expected Matrix but got #{a.class}" unless a.is_a?(Matrix)
      # Use a "left-looking", dot-product, Crout/Doolittle algorithm.
      @lu = a.to_a
      @row_count = a.row_count
      @column_count = a.column_count
      @pivots = Array.new(@row_count)
      @row_count.times do |i|
         @pivots[i] = i
      end
      @pivot_sign = 1
      lu_col_j = Array.new(@row_count)

      # Outer loop.

      @column_count.times do |j|

        # Make a copy of the j-th column to localize references.

        @row_count.times do |i|
          lu_col_j[i] = @lu[i][j]
        end

        # Apply previous transformations.

        @row_count.times do |i|
          lu_row_i = @lu[i]

          # Most of the time is spent in the following dot product.

          kmax = [i, j].min
          s = 0
          kmax.times do |k|
            s += lu_row_i[k]*lu_col_j[k]
          end

          lu_row_i[j] = lu_col_j[i] -= s
        end

        # Find pivot and exchange if necessary.

        p = j
        (j+1).upto(@row_count-1) do |i|
          if (lu_col_j[i].abs > lu_col_j[p].abs)
            p = i
          end
        end
        if (p != j)
          @column_count.times do |k|
            t = @lu[p][k]; @lu[p][k] = @lu[j][k]; @lu[j][k] = t
          end
          k = @pivots[p]; @pivots[p] = @pivots[j]; @pivots[j] = k
          @pivot_sign = -@pivot_sign
        end

        # Compute multipliers.

        if (j < @row_count && @lu[j][j] != 0)
          (j+1).upto(@row_count-1) do |i|
            @lu[i][j] = @lu[i][j].quo(@lu[j][j])
          end
        end
      end
    end
  end
end
lib64/ruby/2.2.0/matrix/eigenvalue_decomposition.rb000064400000053315150402106060016016 0ustar00class Matrix
  # Adapted from JAMA: http://math.nist.gov/javanumerics/jama/

  # Eigenvalues and eigenvectors of a real matrix.
  #
  # Computes the eigenvalues and eigenvectors of a matrix A.
  #
  # If A is diagonalizable, this provides matrices V and D
  # such that A = V*D*V.inv, where D is the diagonal matrix with entries
  # equal to the eigenvalues and V is formed by the eigenvectors.
  #
  # If A is symmetric, then V is orthogonal and thus A = V*D*V.t

  class EigenvalueDecomposition

    # Constructs the eigenvalue decomposition for a square matrix +A+
    #
    def initialize(a)
      # @d, @e: Arrays for internal storage of eigenvalues.
      # @v: Array for internal storage of eigenvectors.
      # @h: Array for internal storage of nonsymmetric Hessenberg form.
      raise TypeError, "Expected Matrix but got #{a.class}" unless a.is_a?(Matrix)
      @size = a.row_count
      @d = Array.new(@size, 0)
      @e = Array.new(@size, 0)

      if (@symmetric = a.symmetric?)
        @v = a.to_a
        tridiagonalize
        diagonalize
      else
        @v = Array.new(@size) { Array.new(@size, 0) }
        @h = a.to_a
        @ort = Array.new(@size, 0)
        reduce_to_hessenberg
        hessenberg_to_real_schur
      end
    end

    # Returns the eigenvector matrix +V+
    #
    def eigenvector_matrix
      Matrix.send(:new, build_eigenvectors.transpose)
    end
    alias v eigenvector_matrix

    # Returns the inverse of the eigenvector matrix +V+
    #
    def eigenvector_matrix_inv
      r = Matrix.send(:new, build_eigenvectors)
      r = r.transpose.inverse unless @symmetric
      r
    end
    alias v_inv eigenvector_matrix_inv

    # Returns the eigenvalues in an array
    #
    def eigenvalues
      values = @d.dup
      @e.each_with_index{|imag, i| values[i] = Complex(values[i], imag) unless imag == 0}
      values
    end

    # Returns an array of the eigenvectors
    #
    def eigenvectors
      build_eigenvectors.map{|ev| Vector.send(:new, ev)}
    end

    # Returns the block diagonal eigenvalue matrix +D+
    #
    def eigenvalue_matrix
      Matrix.diagonal(*eigenvalues)
    end
    alias d eigenvalue_matrix

    # Returns [eigenvector_matrix, eigenvalue_matrix, eigenvector_matrix_inv]
    #
    def to_ary
      [v, d, v_inv]
    end
    alias_method :to_a, :to_ary

  private
    def build_eigenvectors
      # JAMA stores complex eigenvectors in a strange way
      # See http://web.archive.org/web/20111016032731/http://cio.nist.gov/esd/emaildir/lists/jama/msg01021.html
      @e.each_with_index.map do |imag, i|
        if imag == 0
          Array.new(@size){|j| @v[j][i]}
        elsif imag > 0
          Array.new(@size){|j| Complex(@v[j][i], @v[j][i+1])}
        else
          Array.new(@size){|j| Complex(@v[j][i-1], -@v[j][i])}
        end
      end
    end
    # Complex scalar division.

    def cdiv(xr, xi, yr, yi)
      if (yr.abs > yi.abs)
        r = yi/yr
        d = yr + r*yi
        [(xr + r*xi)/d, (xi - r*xr)/d]
      else
        r = yr/yi
        d = yi + r*yr
        [(r*xr + xi)/d, (r*xi - xr)/d]
      end
    end


    # Symmetric Householder reduction to tridiagonal form.

    def tridiagonalize

      #  This is derived from the Algol procedures tred2 by
      #  Bowdler, Martin, Reinsch, and Wilkinson, Handbook for
      #  Auto. Comp., Vol.ii-Linear Algebra, and the corresponding
      #  Fortran subroutine in EISPACK.

        @size.times do |j|
          @d[j] = @v[@size-1][j]
        end

        # Householder reduction to tridiagonal form.

        (@size-1).downto(0+1) do |i|

          # Scale to avoid under/overflow.

          scale = 0.0
          h = 0.0
          i.times do |k|
            scale = scale + @d[k].abs
          end
          if (scale == 0.0)
            @e[i] = @d[i-1]
            i.times do |j|
              @d[j] = @v[i-1][j]
              @v[i][j] = 0.0
              @v[j][i] = 0.0
            end
          else

            # Generate Householder vector.

            i.times do |k|
              @d[k] /= scale
              h += @d[k] * @d[k]
            end
            f = @d[i-1]
            g = Math.sqrt(h)
            if (f > 0)
              g = -g
            end
            @e[i] = scale * g
            h -= f * g
            @d[i-1] = f - g
            i.times do |j|
              @e[j] = 0.0
            end

            # Apply similarity transformation to remaining columns.

            i.times do |j|
              f = @d[j]
              @v[j][i] = f
              g = @e[j] + @v[j][j] * f
              (j+1).upto(i-1) do |k|
                g += @v[k][j] * @d[k]
                @e[k] += @v[k][j] * f
              end
              @e[j] = g
            end
            f = 0.0
            i.times do |j|
              @e[j] /= h
              f += @e[j] * @d[j]
            end
            hh = f / (h + h)
            i.times do |j|
              @e[j] -= hh * @d[j]
            end
            i.times do |j|
              f = @d[j]
              g = @e[j]
              j.upto(i-1) do |k|
                @v[k][j] -= (f * @e[k] + g * @d[k])
              end
              @d[j] = @v[i-1][j]
              @v[i][j] = 0.0
            end
          end
          @d[i] = h
        end

        # Accumulate transformations.

        0.upto(@size-1-1) do |i|
          @v[@size-1][i] = @v[i][i]
          @v[i][i] = 1.0
          h = @d[i+1]
          if (h != 0.0)
            0.upto(i) do |k|
              @d[k] = @v[k][i+1] / h
            end
            0.upto(i) do |j|
              g = 0.0
              0.upto(i) do |k|
                g += @v[k][i+1] * @v[k][j]
              end
              0.upto(i) do |k|
                @v[k][j] -= g * @d[k]
              end
            end
          end
          0.upto(i) do |k|
            @v[k][i+1] = 0.0
          end
        end
        @size.times do |j|
          @d[j] = @v[@size-1][j]
          @v[@size-1][j] = 0.0
        end
        @v[@size-1][@size-1] = 1.0
        @e[0] = 0.0
      end


    # Symmetric tridiagonal QL algorithm.

    def diagonalize
      #  This is derived from the Algol procedures tql2, by
      #  Bowdler, Martin, Reinsch, and Wilkinson, Handbook for
      #  Auto. Comp., Vol.ii-Linear Algebra, and the corresponding
      #  Fortran subroutine in EISPACK.

      1.upto(@size-1) do |i|
        @e[i-1] = @e[i]
      end
      @e[@size-1] = 0.0

      f = 0.0
      tst1 = 0.0
      eps = Float::EPSILON
      @size.times do |l|

        # Find small subdiagonal element

        tst1 = [tst1, @d[l].abs + @e[l].abs].max
        m = l
        while (m < @size) do
          if (@e[m].abs <= eps*tst1)
            break
          end
          m+=1
        end

        # If m == l, @d[l] is an eigenvalue,
        # otherwise, iterate.

        if (m > l)
          iter = 0
          begin
            iter = iter + 1  # (Could check iteration count here.)

            # Compute implicit shift

            g = @d[l]
            p = (@d[l+1] - g) / (2.0 * @e[l])
            r = Math.hypot(p, 1.0)
            if (p < 0)
              r = -r
            end
            @d[l] = @e[l] / (p + r)
            @d[l+1] = @e[l] * (p + r)
            dl1 = @d[l+1]
            h = g - @d[l]
            (l+2).upto(@size-1) do |i|
              @d[i] -= h
            end
            f += h

            # Implicit QL transformation.

            p = @d[m]
            c = 1.0
            c2 = c
            c3 = c
            el1 = @e[l+1]
            s = 0.0
            s2 = 0.0
            (m-1).downto(l) do |i|
              c3 = c2
              c2 = c
              s2 = s
              g = c * @e[i]
              h = c * p
              r = Math.hypot(p, @e[i])
              @e[i+1] = s * r
              s = @e[i] / r
              c = p / r
              p = c * @d[i] - s * g
              @d[i+1] = h + s * (c * g + s * @d[i])

              # Accumulate transformation.

              @size.times do |k|
                h = @v[k][i+1]
                @v[k][i+1] = s * @v[k][i] + c * h
                @v[k][i] = c * @v[k][i] - s * h
              end
            end
            p = -s * s2 * c3 * el1 * @e[l] / dl1
            @e[l] = s * p
            @d[l] = c * p

            # Check for convergence.

          end while (@e[l].abs > eps*tst1)
        end
        @d[l] = @d[l] + f
        @e[l] = 0.0
      end

      # Sort eigenvalues and corresponding vectors.

      0.upto(@size-2) do |i|
        k = i
        p = @d[i]
        (i+1).upto(@size-1) do |j|
          if (@d[j] < p)
            k = j
            p = @d[j]
          end
        end
        if (k != i)
          @d[k] = @d[i]
          @d[i] = p
          @size.times do |j|
            p = @v[j][i]
            @v[j][i] = @v[j][k]
            @v[j][k] = p
          end
        end
      end
    end

    # Nonsymmetric reduction to Hessenberg form.

    def reduce_to_hessenberg
      #  This is derived from the Algol procedures orthes and ortran,
      #  by Martin and Wilkinson, Handbook for Auto. Comp.,
      #  Vol.ii-Linear Algebra, and the corresponding
      #  Fortran subroutines in EISPACK.

      low = 0
      high = @size-1

      (low+1).upto(high-1) do |m|

        # Scale column.

        scale = 0.0
        m.upto(high) do |i|
          scale = scale + @h[i][m-1].abs
        end
        if (scale != 0.0)

          # Compute Householder transformation.

          h = 0.0
          high.downto(m) do |i|
            @ort[i] = @h[i][m-1]/scale
            h += @ort[i] * @ort[i]
          end
          g = Math.sqrt(h)
          if (@ort[m] > 0)
            g = -g
          end
          h -= @ort[m] * g
          @ort[m] = @ort[m] - g

          # Apply Householder similarity transformation
          # @h = (I-u*u'/h)*@h*(I-u*u')/h)

          m.upto(@size-1) do |j|
            f = 0.0
            high.downto(m) do |i|
              f += @ort[i]*@h[i][j]
            end
            f = f/h
            m.upto(high) do |i|
              @h[i][j] -= f*@ort[i]
            end
          end

          0.upto(high) do |i|
            f = 0.0
            high.downto(m) do |j|
              f += @ort[j]*@h[i][j]
            end
            f = f/h
            m.upto(high) do |j|
              @h[i][j] -= f*@ort[j]
            end
          end
          @ort[m] = scale*@ort[m]
          @h[m][m-1] = scale*g
        end
      end

      # Accumulate transformations (Algol's ortran).

      @size.times do |i|
        @size.times do |j|
          @v[i][j] = (i == j ? 1.0 : 0.0)
        end
      end

      (high-1).downto(low+1) do |m|
        if (@h[m][m-1] != 0.0)
          (m+1).upto(high) do |i|
            @ort[i] = @h[i][m-1]
          end
          m.upto(high) do |j|
            g = 0.0
            m.upto(high) do |i|
              g += @ort[i] * @v[i][j]
            end
            # Double division avoids possible underflow
            g = (g / @ort[m]) / @h[m][m-1]
            m.upto(high) do |i|
              @v[i][j] += g * @ort[i]
            end
          end
        end
      end
    end



    # Nonsymmetric reduction from Hessenberg to real Schur form.

    def hessenberg_to_real_schur

      #  This is derived from the Algol procedure hqr2,
      #  by Martin and Wilkinson, Handbook for Auto. Comp.,
      #  Vol.ii-Linear Algebra, and the corresponding
      #  Fortran subroutine in EISPACK.

      # Initialize

      nn = @size
      n = nn-1
      low = 0
      high = nn-1
      eps = Float::EPSILON
      exshift = 0.0
      p=q=r=s=z=0

      # Store roots isolated by balanc and compute matrix norm

      norm = 0.0
      nn.times do |i|
        if (i < low || i > high)
          @d[i] = @h[i][i]
          @e[i] = 0.0
        end
        ([i-1, 0].max).upto(nn-1) do |j|
          norm = norm + @h[i][j].abs
        end
      end

      # Outer loop over eigenvalue index

      iter = 0
      while (n >= low) do

        # Look for single small sub-diagonal element

        l = n
        while (l > low) do
          s = @h[l-1][l-1].abs + @h[l][l].abs
          if (s == 0.0)
            s = norm
          end
          if (@h[l][l-1].abs < eps * s)
            break
          end
          l-=1
        end

        # Check for convergence
        # One root found

        if (l == n)
          @h[n][n] = @h[n][n] + exshift
          @d[n] = @h[n][n]
          @e[n] = 0.0
          n-=1
          iter = 0

        # Two roots found

        elsif (l == n-1)
          w = @h[n][n-1] * @h[n-1][n]
          p = (@h[n-1][n-1] - @h[n][n]) / 2.0
          q = p * p + w
          z = Math.sqrt(q.abs)
          @h[n][n] = @h[n][n] + exshift
          @h[n-1][n-1] = @h[n-1][n-1] + exshift
          x = @h[n][n]

          # Real pair

          if (q >= 0)
            if (p >= 0)
              z = p + z
            else
              z = p - z
            end
            @d[n-1] = x + z
            @d[n] = @d[n-1]
            if (z != 0.0)
              @d[n] = x - w / z
            end
            @e[n-1] = 0.0
            @e[n] = 0.0
            x = @h[n][n-1]
            s = x.abs + z.abs
            p = x / s
            q = z / s
            r = Math.sqrt(p * p+q * q)
            p /= r
            q /= r

            # Row modification

            (n-1).upto(nn-1) do |j|
              z = @h[n-1][j]
              @h[n-1][j] = q * z + p * @h[n][j]
              @h[n][j] = q * @h[n][j] - p * z
            end

            # Column modification

            0.upto(n) do |i|
              z = @h[i][n-1]
              @h[i][n-1] = q * z + p * @h[i][n]
              @h[i][n] = q * @h[i][n] - p * z
            end

            # Accumulate transformations

            low.upto(high) do |i|
              z = @v[i][n-1]
              @v[i][n-1] = q * z + p * @v[i][n]
              @v[i][n] = q * @v[i][n] - p * z
            end

          # Complex pair

          else
            @d[n-1] = x + p
            @d[n] = x + p
            @e[n-1] = z
            @e[n] = -z
          end
          n -= 2
          iter = 0

        # No convergence yet

        else

          # Form shift

          x = @h[n][n]
          y = 0.0
          w = 0.0
          if (l < n)
            y = @h[n-1][n-1]
            w = @h[n][n-1] * @h[n-1][n]
          end

          # Wilkinson's original ad hoc shift

          if (iter == 10)
            exshift += x
            low.upto(n) do |i|
              @h[i][i] -= x
            end
            s = @h[n][n-1].abs + @h[n-1][n-2].abs
            x = y = 0.75 * s
            w = -0.4375 * s * s
          end

          # MATLAB's new ad hoc shift

          if (iter == 30)
             s = (y - x) / 2.0
             s *= s + w
             if (s > 0)
                s = Math.sqrt(s)
                if (y < x)
                  s = -s
                end
                s = x - w / ((y - x) / 2.0 + s)
                low.upto(n) do |i|
                  @h[i][i] -= s
                end
                exshift += s
                x = y = w = 0.964
             end
          end

          iter = iter + 1  # (Could check iteration count here.)

          # Look for two consecutive small sub-diagonal elements

          m = n-2
          while (m >= l) do
            z = @h[m][m]
            r = x - z
            s = y - z
            p = (r * s - w) / @h[m+1][m] + @h[m][m+1]
            q = @h[m+1][m+1] - z - r - s
            r = @h[m+2][m+1]
            s = p.abs + q.abs + r.abs
            p /= s
            q /= s
            r /= s
            if (m == l)
              break
            end
            if (@h[m][m-1].abs * (q.abs + r.abs) <
              eps * (p.abs * (@h[m-1][m-1].abs + z.abs +
              @h[m+1][m+1].abs)))
                break
            end
            m-=1
          end

          (m+2).upto(n) do |i|
            @h[i][i-2] = 0.0
            if (i > m+2)
              @h[i][i-3] = 0.0
            end
          end

          # Double QR step involving rows l:n and columns m:n

          m.upto(n-1) do |k|
            notlast = (k != n-1)
            if (k != m)
              p = @h[k][k-1]
              q = @h[k+1][k-1]
              r = (notlast ? @h[k+2][k-1] : 0.0)
              x = p.abs + q.abs + r.abs
              next if x == 0
              p /= x
              q /= x
              r /= x
            end
            s = Math.sqrt(p * p + q * q + r * r)
            if (p < 0)
              s = -s
            end
            if (s != 0)
              if (k != m)
                @h[k][k-1] = -s * x
              elsif (l != m)
                @h[k][k-1] = -@h[k][k-1]
              end
              p += s
              x = p / s
              y = q / s
              z = r / s
              q /= p
              r /= p

              # Row modification

              k.upto(nn-1) do |j|
                p = @h[k][j] + q * @h[k+1][j]
                if (notlast)
                  p += r * @h[k+2][j]
                  @h[k+2][j] = @h[k+2][j] - p * z
                end
                @h[k][j] = @h[k][j] - p * x
                @h[k+1][j] = @h[k+1][j] - p * y
              end

              # Column modification

              0.upto([n, k+3].min) do |i|
                p = x * @h[i][k] + y * @h[i][k+1]
                if (notlast)
                  p += z * @h[i][k+2]
                  @h[i][k+2] = @h[i][k+2] - p * r
                end
                @h[i][k] = @h[i][k] - p
                @h[i][k+1] = @h[i][k+1] - p * q
              end

              # Accumulate transformations

              low.upto(high) do |i|
                p = x * @v[i][k] + y * @v[i][k+1]
                if (notlast)
                  p += z * @v[i][k+2]
                  @v[i][k+2] = @v[i][k+2] - p * r
                end
                @v[i][k] = @v[i][k] - p
                @v[i][k+1] = @v[i][k+1] - p * q
              end
            end  # (s != 0)
          end  # k loop
        end  # check convergence
      end  # while (n >= low)

      # Backsubstitute to find vectors of upper triangular form

      if (norm == 0.0)
        return
      end

      (nn-1).downto(0) do |n|
        p = @d[n]
        q = @e[n]

        # Real vector

        if (q == 0)
          l = n
          @h[n][n] = 1.0
          (n-1).downto(0) do |i|
            w = @h[i][i] - p
            r = 0.0
            l.upto(n) do |j|
              r += @h[i][j] * @h[j][n]
            end
            if (@e[i] < 0.0)
              z = w
              s = r
            else
              l = i
              if (@e[i] == 0.0)
                if (w != 0.0)
                  @h[i][n] = -r / w
                else
                  @h[i][n] = -r / (eps * norm)
                end

              # Solve real equations

              else
                x = @h[i][i+1]
                y = @h[i+1][i]
                q = (@d[i] - p) * (@d[i] - p) + @e[i] * @e[i]
                t = (x * s - z * r) / q
                @h[i][n] = t
                if (x.abs > z.abs)
                  @h[i+1][n] = (-r - w * t) / x
                else
                  @h[i+1][n] = (-s - y * t) / z
                end
              end

              # Overflow control

              t = @h[i][n].abs
              if ((eps * t) * t > 1)
                i.upto(n) do |j|
                  @h[j][n] = @h[j][n] / t
                end
              end
            end
          end

        # Complex vector

        elsif (q < 0)
          l = n-1

          # Last vector component imaginary so matrix is triangular

          if (@h[n][n-1].abs > @h[n-1][n].abs)
            @h[n-1][n-1] = q / @h[n][n-1]
            @h[n-1][n] = -(@h[n][n] - p) / @h[n][n-1]
          else
            cdivr, cdivi = cdiv(0.0, -@h[n-1][n], @h[n-1][n-1]-p, q)
            @h[n-1][n-1] = cdivr
            @h[n-1][n] = cdivi
          end
          @h[n][n-1] = 0.0
          @h[n][n] = 1.0
          (n-2).downto(0) do |i|
            ra = 0.0
            sa = 0.0
            l.upto(n) do |j|
              ra = ra + @h[i][j] * @h[j][n-1]
              sa = sa + @h[i][j] * @h[j][n]
            end
            w = @h[i][i] - p

            if (@e[i] < 0.0)
              z = w
              r = ra
              s = sa
            else
              l = i
              if (@e[i] == 0)
                cdivr, cdivi = cdiv(-ra, -sa, w, q)
                @h[i][n-1] = cdivr
                @h[i][n] = cdivi
              else

                # Solve complex equations

                x = @h[i][i+1]
                y = @h[i+1][i]
                vr = (@d[i] - p) * (@d[i] - p) + @e[i] * @e[i] - q * q
                vi = (@d[i] - p) * 2.0 * q
                if (vr == 0.0 && vi == 0.0)
                  vr = eps * norm * (w.abs + q.abs +
                  x.abs + y.abs + z.abs)
                end
                cdivr, cdivi = cdiv(x*r-z*ra+q*sa, x*s-z*sa-q*ra, vr, vi)
                @h[i][n-1] = cdivr
                @h[i][n] = cdivi
                if (x.abs > (z.abs + q.abs))
                  @h[i+1][n-1] = (-ra - w * @h[i][n-1] + q * @h[i][n]) / x
                  @h[i+1][n] = (-sa - w * @h[i][n] - q * @h[i][n-1]) / x
                else
                  cdivr, cdivi = cdiv(-r-y*@h[i][n-1], -s-y*@h[i][n], z, q)
                  @h[i+1][n-1] = cdivr
                  @h[i+1][n] = cdivi
                end
              end

              # Overflow control

              t = [@h[i][n-1].abs, @h[i][n].abs].max
              if ((eps * t) * t > 1)
                i.upto(n) do |j|
                  @h[j][n-1] = @h[j][n-1] / t
                  @h[j][n] = @h[j][n] / t
                end
              end
            end
          end
        end
      end

      # Vectors of isolated roots

      nn.times do |i|
        if (i < low || i > high)
          i.upto(nn-1) do |j|
            @v[i][j] = @h[i][j]
          end
        end
      end

      # Back transformation to get eigenvectors of original matrix

      (nn-1).downto(low) do |j|
        low.upto(high) do |i|
          z = 0.0
          low.upto([j, high].min) do |k|
            z += @v[i][k] * @h[k][j]
          end
          @v[i][j] = z
        end
      end
    end

  end
end
lib64/ruby/2.2.0/abbrev.rb000064400000006727150402106060010700 0ustar00#--
# Copyright (c) 2001,2003 Akinori MUSHA <knu@iDaemons.org>
#
# All rights reserved.  You can redistribute and/or modify it under
# the same terms as Ruby.
#
# $Idaemons: /home/cvs/rb/abbrev.rb,v 1.2 2001/05/30 09:37:45 knu Exp $
# $RoughId: abbrev.rb,v 1.4 2003/10/14 19:45:42 knu Exp $
# $Id: abbrev.rb 46784 2014-07-11 08:16:05Z hsbt $
#++

##
# Calculates the set of unambiguous abbreviations for a given set of strings.
#
#   require 'abbrev'
#   require 'pp'
#
#   pp Abbrev.abbrev(['ruby'])
#   #=>  {"ruby"=>"ruby", "rub"=>"ruby", "ru"=>"ruby", "r"=>"ruby"}
#
#   pp Abbrev.abbrev(%w{ ruby rules })
#
# _Generates:_
#   { "ruby"  =>  "ruby",
#     "rub"   =>  "ruby",
#     "rules" =>  "rules",
#     "rule"  =>  "rules",
#     "rul"   =>  "rules" }
#
# It also provides an array core extension, Array#abbrev.
#
#   pp %w{ summer winter }.abbrev
#
# _Generates:_
#   { "summer"  => "summer",
#     "summe"   => "summer",
#     "summ"    => "summer",
#     "sum"     => "summer",
#     "su"      => "summer",
#     "s"       => "summer",
#     "winter"  => "winter",
#     "winte"   => "winter",
#     "wint"    => "winter",
#     "win"     => "winter",
#     "wi"      => "winter",
#     "w"       => "winter" }

module Abbrev

  # Given a set of strings, calculate the set of unambiguous abbreviations for
  # those strings, and return a hash where the keys are all the possible
  # abbreviations and the values are the full strings.
  #
  # Thus, given +words+ is "car" and "cone", the keys pointing to "car" would
  # be "ca" and "car", while those pointing to "cone" would be "co", "con", and
  # "cone".
  #
  #   require 'abbrev'
  #
  #   Abbrev.abbrev(%w{ car cone })
  #   #=> {"ca"=>"car", "con"=>"cone", "co"=>"cone", "car"=>"car", "cone"=>"cone"}
  #
  # The optional +pattern+ parameter is a pattern or a string. Only input
  # strings that match the pattern or start with the string are included in the
  # output hash.
  #
  #   Abbrev.abbrev(%w{car box cone crab}, /b/)
  #   #=> {"box"=>"box", "bo"=>"box", "b"=>"box", "crab" => "crab"}
  #
  #   Abbrev.abbrev(%w{car box cone}, 'ca')
  #   #=> {"car"=>"car", "ca"=>"car"}
  def abbrev(words, pattern = nil)
    table = {}
    seen = Hash.new(0)

    if pattern.is_a?(String)
      pattern = /\A#{Regexp.quote(pattern)}/  # regard as a prefix
    end

    words.each do |word|
      next if word.empty?
      word.size.downto(1) { |len|
        abbrev = word[0...len]

        next if pattern && pattern !~ abbrev

        case seen[abbrev] += 1
        when 1
          table[abbrev] = word
        when 2
          table.delete(abbrev)
        else
          break
        end
      }
    end

    words.each do |word|
      next if pattern && pattern !~ word

      table[word] = word
    end

    table
  end

  module_function :abbrev
end

class Array
  # Calculates the set of unambiguous abbreviations for the strings in +self+.
  #
  #   require 'abbrev'
  #   %w{ car cone }.abbrev
  #   #=> {"car"=>"car", "ca"=>"car", "cone"=>"cone", "con"=>"cone", "co"=>"cone"}
  #
  # The optional +pattern+ parameter is a pattern or a string. Only input
  # strings that match the pattern or start with the string are included in the
  # output hash.
  #
  #   %w{ fast boat day }.abbrev(/^.a/)
  #   #=> {"fast"=>"fast", "fas"=>"fast", "fa"=>"fast", "day"=>"day", "da"=>"day"}
  #
  #   Abbrev.abbrev(%w{car box cone}, "ca")
  #   #=> {"car"=>"car", "ca"=>"car"}
  #
  # See also Abbrev.abbrev
  def abbrev(pattern = nil)
    Abbrev::abbrev(self, pattern)
  end
end
lib64/ruby/2.2.0/shellwords.rb000064400000013722150402106060011616 0ustar00##
# == Manipulates strings like the UNIX Bourne shell
#
# This module manipulates strings according to the word parsing rules
# of the UNIX Bourne shell.
#
# The shellwords() function was originally a port of shellwords.pl,
# but modified to conform to POSIX / SUSv3 (IEEE Std 1003.1-2001 [1]).
#
# === Usage
#
# You can use Shellwords to parse a string into a Bourne shell friendly Array.
#
#   require 'shellwords'
#
#   argv = Shellwords.split('three blind "mice"')
#   argv #=> ["three", "blind", "mice"]
#
# Once you've required Shellwords, you can use the #split alias
# String#shellsplit.
#
#   argv = "see how they run".shellsplit
#   argv #=> ["see", "how", "they", "run"]
#
# Be careful you don't leave a quote unmatched.
#
#   argv = "they all ran after the farmer's wife".shellsplit
#        #=> ArgumentError: Unmatched double quote: ...
#
# In this case, you might want to use Shellwords.escape, or its alias
# String#shellescape.
#
# This method will escape the String for you to safely use with a Bourne shell.
#
#   argv = Shellwords.escape("special's.txt")
#   argv #=> "special\\'s.txt"
#   system("cat " + argv)
#
# Shellwords also comes with a core extension for Array, Array#shelljoin.
#
#   argv = %w{ls -lta lib}
#   system(argv.shelljoin)
#
# You can use this method to create an escaped string out of an array of tokens
# separated by a space. In this example we used the literal shortcut for
# Array.new.
#
# === Authors
# * Wakou Aoyama
# * Akinori MUSHA <knu@iDaemons.org>
#
# === Contact
# * Akinori MUSHA <knu@iDaemons.org> (current maintainer)
#
# === Resources
#
# 1: {IEEE Std 1003.1-2004}[http://pubs.opengroup.org/onlinepubs/009695399/toc.htm]

module Shellwords
  # Splits a string into an array of tokens in the same way the UNIX
  # Bourne shell does.
  #
  #   argv = Shellwords.split('here are "two words"')
  #   argv #=> ["here", "are", "two words"]
  #
  # String#shellsplit is a shortcut for this function.
  #
  #   argv = 'here are "two words"'.shellsplit
  #   argv #=> ["here", "are", "two words"]
  def shellsplit(line)
    words = []
    field = ''
    line.scan(/\G\s*(?>([^\s\\\'\"]+)|'([^\']*)'|"((?:[^\"\\]|\\.)*)"|(\\.?)|(\S))(\s|\z)?/m) do
      |word, sq, dq, esc, garbage, sep|
      raise ArgumentError, "Unmatched double quote: #{line.inspect}" if garbage
      field << (word || sq || (dq || esc).gsub(/\\(.)/, '\\1'))
      if sep
        words << field
        field = ''
      end
    end
    words
  end

  alias shellwords shellsplit

  module_function :shellsplit, :shellwords

  class << self
    alias split shellsplit
  end

  # Escapes a string so that it can be safely used in a Bourne shell
  # command line.  +str+ can be a non-string object that responds to
  # +to_s+.
  #
  # Note that a resulted string should be used unquoted and is not
  # intended for use in double quotes nor in single quotes.
  #
  #   argv = Shellwords.escape("It's better to give than to receive")
  #   argv #=> "It\\'s\\ better\\ to\\ give\\ than\\ to\\ receive"
  #
  # String#shellescape is a shorthand for this function.
  #
  #   argv = "It's better to give than to receive".shellescape
  #   argv #=> "It\\'s\\ better\\ to\\ give\\ than\\ to\\ receive"
  #
  #   # Search files in lib for method definitions
  #   pattern = "^[ \t]*def "
  #   open("| grep -Ern #{pattern.shellescape} lib") { |grep|
  #     grep.each_line { |line|
  #       file, lineno, matched_line = line.split(':', 3)
  #       # ...
  #     }
  #   }
  #
  # It is the caller's responsibility to encode the string in the right
  # encoding for the shell environment where this string is used.
  #
  # Multibyte characters are treated as multibyte characters, not as bytes.
  #
  # Returns an empty quoted String if +str+ has a length of zero.
  def shellescape(str)
    str = str.to_s

    # An empty argument will be skipped, so return empty quotes.
    return "''" if str.empty?

    str = str.dup

    # Treat multibyte characters as is.  It is the caller's responsibility
    # to encode the string in the right encoding for the shell
    # environment.
    str.gsub!(/([^A-Za-z0-9_\-.,:\/@\n])/, "\\\\\\1")

    # A LF cannot be escaped with a backslash because a backslash + LF
    # combo is regarded as a line continuation and simply ignored.
    str.gsub!(/\n/, "'\n'")

    return str
  end

  module_function :shellescape

  class << self
    alias escape shellescape
  end

  # Builds a command line string from an argument list, +array+.
  #
  # All elements are joined into a single string with fields separated by a
  # space, where each element is escaped for the Bourne shell and stringified
  # using +to_s+.
  #
  #   ary = ["There's", "a", "time", "and", "place", "for", "everything"]
  #   argv = Shellwords.join(ary)
  #   argv #=> "There\\'s a time and place for everything"
  #
  # Array#shelljoin is a shortcut for this function.
  #
  #   ary = ["Don't", "rock", "the", "boat"]
  #   argv = ary.shelljoin
  #   argv #=> "Don\\'t rock the boat"
  #
  # You can also mix non-string objects in the elements as allowed in Array#join.
  #
  #   output = `#{['ps', '-p', $$].shelljoin}`
  #
  def shelljoin(array)
    array.map { |arg| shellescape(arg) }.join(' ')
  end

  module_function :shelljoin

  class << self
    alias join shelljoin
  end
end

class String
  # call-seq:
  #   str.shellsplit => array
  #
  # Splits +str+ into an array of tokens in the same way the UNIX
  # Bourne shell does.
  #
  # See Shellwords.shellsplit for details.
  def shellsplit
    Shellwords.split(self)
  end

  # call-seq:
  #   str.shellescape => string
  #
  # Escapes +str+ so that it can be safely used in a Bourne shell
  # command line.
  #
  # See Shellwords.shellescape for details.
  def shellescape
    Shellwords.escape(self)
  end
end

class Array
  # call-seq:
  #   array.shelljoin => string
  #
  # Builds a command line string from an argument list +array+ joining
  # all elements escaped for the Bourne shell and separated by a space.
  #
  # See Shellwords.shelljoin for details.
  def shelljoin
    Shellwords.join(self)
  end
end
lib64/ruby/2.2.0/pp.rb000064400000034245150402106060010052 0ustar00require 'prettyprint'

module Kernel
  # Returns a pretty printed object as a string.
  #
  # In order to use this method you must first require the PP module:
  #
  #   require 'pp'
  #
  # See the PP module for more information.
  def pretty_inspect
    PP.pp(self, '')
  end

  private
  # prints arguments in pretty form.
  #
  # pp returns argument(s).
  def pp(*objs) # :nodoc:
    objs.each {|obj|
      PP.pp(obj)
    }
    objs.size <= 1 ? objs.first : objs
  end
  module_function :pp # :nodoc:
end

##
# A pretty-printer for Ruby objects.
#
# All examples assume you have loaded the PP class with:
#   require 'pp'
#
##
# == What PP Does
#
# Standard output by #p returns this:
#   #<PP:0x81fedf0 @genspace=#<Proc:0x81feda0>, @group_queue=#<PrettyPrint::GroupQueue:0x81fed3c @queue=[[#<PrettyPrint::Group:0x81fed78 @breakables=[], @depth=0, @break=false>], []]>, @buffer=[], @newline="\n", @group_stack=[#<PrettyPrint::Group:0x81fed78 @breakables=[], @depth=0, @break=false>], @buffer_width=0, @indent=0, @maxwidth=79, @output_width=2, @output=#<IO:0x8114ee4>>
#
# Pretty-printed output returns this:
#   #<PP:0x81fedf0
#    @buffer=[],
#    @buffer_width=0,
#    @genspace=#<Proc:0x81feda0>,
#    @group_queue=
#     #<PrettyPrint::GroupQueue:0x81fed3c
#      @queue=
#       [[#<PrettyPrint::Group:0x81fed78 @break=false, @breakables=[], @depth=0>],
#        []]>,
#    @group_stack=
#     [#<PrettyPrint::Group:0x81fed78 @break=false, @breakables=[], @depth=0>],
#    @indent=0,
#    @maxwidth=79,
#    @newline="\n",
#    @output=#<IO:0x8114ee4>,
#    @output_width=2>
#
##
# == Usage
#
#   pp(obj)             #=> obj
#   pp obj              #=> obj
#   pp(obj1, obj2, ...) #=> [obj1, obj2, ...]
#   pp()                #=> nil
#
# Output <tt>obj(s)</tt> to <tt>$></tt> in pretty printed format.
#
# It returns <tt>obj(s)</tt>.
#
##
# == Output Customization
#
# To define a customized pretty printing function for your classes,
# redefine method <code>#pretty_print(pp)</code> in the class.
#
# <code>#pretty_print</code> takes the +pp+ argument, which is an instance of the PP class.
# The method uses #text, #breakable, #nest, #group and #pp to print the
# object.
#
##
# == Pretty-Print JSON
#
# To pretty-print JSON refer to JSON#pretty_generate.
#
##
# == Author
# Tanaka Akira <akr@fsij.org>

class PP < PrettyPrint
  # Outputs +obj+ to +out+ in pretty printed format of
  # +width+ columns in width.
  #
  # If +out+ is omitted, <code>$></code> is assumed.
  # If +width+ is omitted, 79 is assumed.
  #
  # PP.pp returns +out+.
  def PP.pp(obj, out=$>, width=79)
    q = PP.new(out, width)
    q.guard_inspect_key {q.pp obj}
    q.flush
    #$pp = q
    out << "\n"
  end

  # Outputs +obj+ to +out+ like PP.pp but with no indent and
  # newline.
  #
  # PP.singleline_pp returns +out+.
  def PP.singleline_pp(obj, out=$>)
    q = SingleLine.new(out)
    q.guard_inspect_key {q.pp obj}
    q.flush
    out
  end

  # :stopdoc:
  def PP.mcall(obj, mod, meth, *args, &block)
    mod.instance_method(meth).bind(obj).call(*args, &block)
  end
  # :startdoc:

  @sharing_detection = false
  class << self
    # Returns the sharing detection flag as a boolean value.
    # It is false by default.
    attr_accessor :sharing_detection
  end

  module PPMethods

    # Yields to a block
    # and preserves the previous set of objects being printed.
    def guard_inspect_key
      if Thread.current[:__recursive_key__] == nil
        Thread.current[:__recursive_key__] = {}.taint
      end

      if Thread.current[:__recursive_key__][:inspect] == nil
        Thread.current[:__recursive_key__][:inspect] = {}.taint
      end

      save = Thread.current[:__recursive_key__][:inspect]

      begin
        Thread.current[:__recursive_key__][:inspect] = {}.taint
        yield
      ensure
        Thread.current[:__recursive_key__][:inspect] = save
      end
    end

    # Check whether the object_id +id+ is in the current buffer of objects
    # to be pretty printed. Used to break cycles in chains of objects to be
    # pretty printed.
    def check_inspect_key(id)
      Thread.current[:__recursive_key__] &&
      Thread.current[:__recursive_key__][:inspect] &&
      Thread.current[:__recursive_key__][:inspect].include?(id)
    end

    # Adds the object_id +id+ to the set of objects being pretty printed, so
    # as to not repeat objects.
    def push_inspect_key(id)
      Thread.current[:__recursive_key__][:inspect][id] = true
    end

    # Removes an object from the set of objects being pretty printed.
    def pop_inspect_key(id)
      Thread.current[:__recursive_key__][:inspect].delete id
    end

    # Adds +obj+ to the pretty printing buffer
    # using Object#pretty_print or Object#pretty_print_cycle.
    #
    # Object#pretty_print_cycle is used when +obj+ is already
    # printed, a.k.a the object reference chain has a cycle.
    def pp(obj)
      id = obj.object_id

      if check_inspect_key(id)
        group {obj.pretty_print_cycle self}
        return
      end

      begin
        push_inspect_key(id)
        group {obj.pretty_print self}
      ensure
        pop_inspect_key(id) unless PP.sharing_detection
      end
    end

    # A convenience method which is same as follows:
    #
    #   group(1, '#<' + obj.class.name, '>') { ... }
    def object_group(obj, &block) # :yield:
      group(1, '#<' + obj.class.name, '>', &block)
    end

    # A convenience method, like object_group, but also reformats the Object's
    # object_id.
    def object_address_group(obj, &block)
      str = Kernel.instance_method(:to_s).bind(obj).call
      str.chomp!('>')
      group(1, str, '>', &block)
    end

    # A convenience method which is same as follows:
    #
    #   text ','
    #   breakable
    def comma_breakable
      text ','
      breakable
    end

    # Adds a separated list.
    # The list is separated by comma with breakable space, by default.
    #
    # #seplist iterates the +list+ using +iter_method+.
    # It yields each object to the block given for #seplist.
    # The procedure +separator_proc+ is called between each yields.
    #
    # If the iteration is zero times, +separator_proc+ is not called at all.
    #
    # If +separator_proc+ is nil or not given,
    # +lambda { comma_breakable }+ is used.
    # If +iter_method+ is not given, :each is used.
    #
    # For example, following 3 code fragments has similar effect.
    #
    #   q.seplist([1,2,3]) {|v| xxx v }
    #
    #   q.seplist([1,2,3], lambda { q.comma_breakable }, :each) {|v| xxx v }
    #
    #   xxx 1
    #   q.comma_breakable
    #   xxx 2
    #   q.comma_breakable
    #   xxx 3
    def seplist(list, sep=nil, iter_method=:each) # :yield: element
      sep ||= lambda { comma_breakable }
      first = true
      list.__send__(iter_method) {|*v|
        if first
          first = false
        else
          sep.call
        end
        yield(*v)
      }
    end

    # A present standard failsafe for pretty printing any given Object
    def pp_object(obj)
      object_address_group(obj) {
        seplist(obj.pretty_print_instance_variables, lambda { text ',' }) {|v|
          breakable
          v = v.to_s if Symbol === v
          text v
          text '='
          group(1) {
            breakable ''
            pp(obj.instance_eval(v))
          }
        }
      }
    end

    # A pretty print for a Hash
    def pp_hash(obj)
      group(1, '{', '}') {
        seplist(obj, nil, :each_pair) {|k, v|
          group {
            pp k
            text '=>'
            group(1) {
              breakable ''
              pp v
            }
          }
        }
      }
    end
  end

  include PPMethods

  class SingleLine < PrettyPrint::SingleLine # :nodoc:
    include PPMethods
  end

  module ObjectMixin # :nodoc:
    # 1. specific pretty_print
    # 2. specific inspect
    # 3. generic pretty_print

    # A default pretty printing method for general objects.
    # It calls #pretty_print_instance_variables to list instance variables.
    #
    # If +self+ has a customized (redefined) #inspect method,
    # the result of self.inspect is used but it obviously has no
    # line break hints.
    #
    # This module provides predefined #pretty_print methods for some of
    # the most commonly used built-in classes for convenience.
    def pretty_print(q)
      method_method = Object.instance_method(:method).bind(self)
      begin
        inspect_method = method_method.call(:inspect)
      rescue NameError
      end
      if inspect_method && /\(Kernel\)#/ !~ inspect_method.inspect
        q.text self.inspect
      elsif !inspect_method && self.respond_to?(:inspect)
        q.text self.inspect
      else
        q.pp_object(self)
      end
    end

    # A default pretty printing method for general objects that are
    # detected as part of a cycle.
    def pretty_print_cycle(q)
      q.object_address_group(self) {
        q.breakable
        q.text '...'
      }
    end

    # Returns a sorted array of instance variable names.
    #
    # This method should return an array of names of instance variables as symbols or strings as:
    # +[:@a, :@b]+.
    def pretty_print_instance_variables
      instance_variables.sort
    end

    # Is #inspect implementation using #pretty_print.
    # If you implement #pretty_print, it can be used as follows.
    #
    #   alias inspect pretty_print_inspect
    #
    # However, doing this requires that every class that #inspect is called on
    # implement #pretty_print, or a RuntimeError will be raised.
    def pretty_print_inspect
      if /\(PP::ObjectMixin\)#/ =~ Object.instance_method(:method).bind(self).call(:pretty_print).inspect
        raise "pretty_print is not overridden for #{self.class}"
      end
      PP.singleline_pp(self, '')
    end
  end
end

class Array # :nodoc:
  def pretty_print(q) # :nodoc:
    q.group(1, '[', ']') {
      q.seplist(self) {|v|
        q.pp v
      }
    }
  end

  def pretty_print_cycle(q) # :nodoc:
    q.text(empty? ? '[]' : '[...]')
  end
end

class Hash # :nodoc:
  def pretty_print(q) # :nodoc:
    q.pp_hash self
  end

  def pretty_print_cycle(q) # :nodoc:
    q.text(empty? ? '{}' : '{...}')
  end
end

class << ENV # :nodoc:
  def pretty_print(q) # :nodoc:
    h = {}
    ENV.keys.sort.each {|k|
      h[k] = ENV[k]
    }
    q.pp_hash h
  end
end

class Struct # :nodoc:
  def pretty_print(q) # :nodoc:
    q.group(1, sprintf("#<struct %s", PP.mcall(self, Kernel, :class).name), '>') {
      q.seplist(PP.mcall(self, Struct, :members), lambda { q.text "," }) {|member|
        q.breakable
        q.text member.to_s
        q.text '='
        q.group(1) {
          q.breakable ''
          q.pp self[member]
        }
      }
    }
  end

  def pretty_print_cycle(q) # :nodoc:
    q.text sprintf("#<struct %s:...>", PP.mcall(self, Kernel, :class).name)
  end
end

class Range # :nodoc:
  def pretty_print(q) # :nodoc:
    q.pp self.begin
    q.breakable ''
    q.text(self.exclude_end? ? '...' : '..')
    q.breakable ''
    q.pp self.end
  end
end

class File < IO # :nodoc:
  class Stat # :nodoc:
    def pretty_print(q) # :nodoc:
      require 'etc.so'
      q.object_group(self) {
        q.breakable
        q.text sprintf("dev=0x%x", self.dev); q.comma_breakable
        q.text "ino="; q.pp self.ino; q.comma_breakable
        q.group {
          m = self.mode
          q.text sprintf("mode=0%o", m)
          q.breakable
          q.text sprintf("(%s %c%c%c%c%c%c%c%c%c)",
            self.ftype,
            (m & 0400 == 0 ? ?- : ?r),
            (m & 0200 == 0 ? ?- : ?w),
            (m & 0100 == 0 ? (m & 04000 == 0 ? ?- : ?S) :
                             (m & 04000 == 0 ? ?x : ?s)),
            (m & 0040 == 0 ? ?- : ?r),
            (m & 0020 == 0 ? ?- : ?w),
            (m & 0010 == 0 ? (m & 02000 == 0 ? ?- : ?S) :
                             (m & 02000 == 0 ? ?x : ?s)),
            (m & 0004 == 0 ? ?- : ?r),
            (m & 0002 == 0 ? ?- : ?w),
            (m & 0001 == 0 ? (m & 01000 == 0 ? ?- : ?T) :
                             (m & 01000 == 0 ? ?x : ?t)))
        }
        q.comma_breakable
        q.text "nlink="; q.pp self.nlink; q.comma_breakable
        q.group {
          q.text "uid="; q.pp self.uid
          begin
            pw = Etc.getpwuid(self.uid)
          rescue ArgumentError
          end
          if pw
            q.breakable; q.text "(#{pw.name})"
          end
        }
        q.comma_breakable
        q.group {
          q.text "gid="; q.pp self.gid
          begin
            gr = Etc.getgrgid(self.gid)
          rescue ArgumentError
          end
          if gr
            q.breakable; q.text "(#{gr.name})"
          end
        }
        q.comma_breakable
        q.group {
          q.text sprintf("rdev=0x%x", self.rdev)
          if self.rdev_major && self.rdev_minor
            q.breakable
            q.text sprintf('(%d, %d)', self.rdev_major, self.rdev_minor)
          end
        }
        q.comma_breakable
        q.text "size="; q.pp self.size; q.comma_breakable
        q.text "blksize="; q.pp self.blksize; q.comma_breakable
        q.text "blocks="; q.pp self.blocks; q.comma_breakable
        q.group {
          t = self.atime
          q.text "atime="; q.pp t
          q.breakable; q.text "(#{t.tv_sec})"
        }
        q.comma_breakable
        q.group {
          t = self.mtime
          q.text "mtime="; q.pp t
          q.breakable; q.text "(#{t.tv_sec})"
        }
        q.comma_breakable
        q.group {
          t = self.ctime
          q.text "ctime="; q.pp t
          q.breakable; q.text "(#{t.tv_sec})"
        }
      }
    end
  end
end

class MatchData # :nodoc:
  def pretty_print(q) # :nodoc:
    nc = []
    self.regexp.named_captures.each {|name, indexes|
      indexes.each {|i| nc[i] = name }
    }
    q.object_group(self) {
      q.breakable
      q.seplist(0...self.size, lambda { q.breakable }) {|i|
        if i == 0
          q.pp self[i]
        else
          if nc[i]
            q.text nc[i]
          else
            q.pp i
          end
          q.text ':'
          q.pp self[i]
        end
      }
    }
  end
end

class Object < BasicObject # :nodoc:
  include PP::ObjectMixin
end

[Numeric, Symbol, FalseClass, TrueClass, NilClass, Module].each {|c|
  c.class_eval {
    def pretty_print_cycle(q)
      q.text inspect
    end
  }
}

[Numeric, FalseClass, TrueClass, Module].each {|c|
  c.class_eval {
    def pretty_print(q)
      q.text inspect
    end
  }
}
lib64/ruby/2.2.0/tsort.rb000064400000034423150402106060010604 0ustar00#--
# tsort.rb - provides a module for topological sorting and strongly connected components.
#++
#

#
# TSort implements topological sorting using Tarjan's algorithm for
# strongly connected components.
#
# TSort is designed to be able to be used with any object which can be
# interpreted as a directed graph.
#
# TSort requires two methods to interpret an object as a graph,
# tsort_each_node and tsort_each_child.
#
# * tsort_each_node is used to iterate for all nodes over a graph.
# * tsort_each_child is used to iterate for child nodes of a given node.
#
# The equality of nodes are defined by eql? and hash since
# TSort uses Hash internally.
#
# == A Simple Example
#
# The following example demonstrates how to mix the TSort module into an
# existing class (in this case, Hash). Here, we're treating each key in
# the hash as a node in the graph, and so we simply alias the required
# #tsort_each_node method to Hash's #each_key method. For each key in the
# hash, the associated value is an array of the node's child nodes. This
# choice in turn leads to our implementation of the required #tsort_each_child
# method, which fetches the array of child nodes and then iterates over that
# array using the user-supplied block.
#
#   require 'tsort'
#
#   class Hash
#     include TSort
#     alias tsort_each_node each_key
#     def tsort_each_child(node, &block)
#       fetch(node).each(&block)
#     end
#   end
#
#   {1=>[2, 3], 2=>[3], 3=>[], 4=>[]}.tsort
#   #=> [3, 2, 1, 4]
#
#   {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}.strongly_connected_components
#   #=> [[4], [2, 3], [1]]
#
# == A More Realistic Example
#
# A very simple `make' like tool can be implemented as follows:
#
#   require 'tsort'
#
#   class Make
#     def initialize
#       @dep = {}
#       @dep.default = []
#     end
#
#     def rule(outputs, inputs=[], &block)
#       triple = [outputs, inputs, block]
#       outputs.each {|f| @dep[f] = [triple]}
#       @dep[triple] = inputs
#     end
#
#     def build(target)
#       each_strongly_connected_component_from(target) {|ns|
#         if ns.length != 1
#           fs = ns.delete_if {|n| Array === n}
#           raise TSort::Cyclic.new("cyclic dependencies: #{fs.join ', '}")
#         end
#         n = ns.first
#         if Array === n
#           outputs, inputs, block = n
#           inputs_time = inputs.map {|f| File.mtime f}.max
#           begin
#             outputs_time = outputs.map {|f| File.mtime f}.min
#           rescue Errno::ENOENT
#             outputs_time = nil
#           end
#           if outputs_time == nil ||
#              inputs_time != nil && outputs_time <= inputs_time
#             sleep 1 if inputs_time != nil && inputs_time.to_i == Time.now.to_i
#             block.call
#           end
#         end
#       }
#     end
#
#     def tsort_each_child(node, &block)
#       @dep[node].each(&block)
#     end
#     include TSort
#   end
#
#   def command(arg)
#     print arg, "\n"
#     system arg
#   end
#
#   m = Make.new
#   m.rule(%w[t1]) { command 'date > t1' }
#   m.rule(%w[t2]) { command 'date > t2' }
#   m.rule(%w[t3]) { command 'date > t3' }
#   m.rule(%w[t4], %w[t1 t3]) { command 'cat t1 t3 > t4' }
#   m.rule(%w[t5], %w[t4 t2]) { command 'cat t4 t2 > t5' }
#   m.build('t5')
#
# == Bugs
#
# * 'tsort.rb' is wrong name because this library uses
#   Tarjan's algorithm for strongly connected components.
#   Although 'strongly_connected_components.rb' is correct but too long.
#
# == References
#
# R. E. Tarjan, "Depth First Search and Linear Graph Algorithms",
# <em>SIAM Journal on Computing</em>, Vol. 1, No. 2, pp. 146-160, June 1972.
#

module TSort
  class Cyclic < StandardError
  end

  # Returns a topologically sorted array of nodes.
  # The array is sorted from children to parents, i.e.
  # the first element has no child and the last node has no parent.
  #
  # If there is a cycle, TSort::Cyclic is raised.
  #
  #   class G
  #     include TSort
  #     def initialize(g)
  #       @g = g
  #     end
  #     def tsort_each_child(n, &b) @g[n].each(&b) end
  #     def tsort_each_node(&b) @g.each_key(&b) end
  #   end
  #
  #   graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
  #   p graph.tsort #=> [4, 2, 3, 1]
  #
  #   graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]})
  #   p graph.tsort # raises TSort::Cyclic
  #
  def tsort
    each_node = method(:tsort_each_node)
    each_child = method(:tsort_each_child)
    TSort.tsort(each_node, each_child)
  end

  # Returns a topologically sorted array of nodes.
  # The array is sorted from children to parents, i.e.
  # the first element has no child and the last node has no parent.
  #
  # The graph is represented by _each_node_ and _each_child_.
  # _each_node_ should have +call+ method which yields for each node in the graph.
  # _each_child_ should have +call+ method which takes a node argument and yields for each child node.
  #
  # If there is a cycle, TSort::Cyclic is raised.
  #
  #   g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
  #   each_node = lambda {|&b| g.each_key(&b) }
  #   each_child = lambda {|n, &b| g[n].each(&b) }
  #   p TSort.tsort(each_node, each_child) #=> [4, 2, 3, 1]
  #
  #   g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
  #   each_node = lambda {|&b| g.each_key(&b) }
  #   each_child = lambda {|n, &b| g[n].each(&b) }
  #   p TSort.tsort(each_node, each_child) # raises TSort::Cyclic
  #
  def TSort.tsort(each_node, each_child)
    TSort.tsort_each(each_node, each_child).to_a
  end

  # The iterator version of the #tsort method.
  # <tt><em>obj</em>.tsort_each</tt> is similar to <tt><em>obj</em>.tsort.each</tt>, but
  # modification of _obj_ during the iteration may lead to unexpected results.
  #
  # #tsort_each returns +nil+.
  # If there is a cycle, TSort::Cyclic is raised.
  #
  #   class G
  #     include TSort
  #     def initialize(g)
  #       @g = g
  #     end
  #     def tsort_each_child(n, &b) @g[n].each(&b) end
  #     def tsort_each_node(&b) @g.each_key(&b) end
  #   end
  #
  #   graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
  #   graph.tsort_each {|n| p n }
  #   #=> 4
  #   #   2
  #   #   3
  #   #   1
  #
  def tsort_each(&block) # :yields: node
    each_node = method(:tsort_each_node)
    each_child = method(:tsort_each_child)
    TSort.tsort_each(each_node, each_child, &block)
  end

  # The iterator version of the TSort.tsort method.
  #
  # The graph is represented by _each_node_ and _each_child_.
  # _each_node_ should have +call+ method which yields for each node in the graph.
  # _each_child_ should have +call+ method which takes a node argument and yields for each child node.
  #
  #   g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
  #   each_node = lambda {|&b| g.each_key(&b) }
  #   each_child = lambda {|n, &b| g[n].each(&b) }
  #   TSort.tsort_each(each_node, each_child) {|n| p n }
  #   #=> 4
  #   #   2
  #   #   3
  #   #   1
  #
  def TSort.tsort_each(each_node, each_child) # :yields: node
    return to_enum(__method__, each_node, each_child) unless block_given?

    TSort.each_strongly_connected_component(each_node, each_child) {|component|
      if component.size == 1
        yield component.first
      else
        raise Cyclic.new("topological sort failed: #{component.inspect}")
      end
    }
  end

  # Returns strongly connected components as an array of arrays of nodes.
  # The array is sorted from children to parents.
  # Each elements of the array represents a strongly connected component.
  #
  #   class G
  #     include TSort
  #     def initialize(g)
  #       @g = g
  #     end
  #     def tsort_each_child(n, &b) @g[n].each(&b) end
  #     def tsort_each_node(&b) @g.each_key(&b) end
  #   end
  #
  #   graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
  #   p graph.strongly_connected_components #=> [[4], [2], [3], [1]]
  #
  #   graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]})
  #   p graph.strongly_connected_components #=> [[4], [2, 3], [1]]
  #
  def strongly_connected_components
    each_node = method(:tsort_each_node)
    each_child = method(:tsort_each_child)
    TSort.strongly_connected_components(each_node, each_child)
  end

  # Returns strongly connected components as an array of arrays of nodes.
  # The array is sorted from children to parents.
  # Each elements of the array represents a strongly connected component.
  #
  # The graph is represented by _each_node_ and _each_child_.
  # _each_node_ should have +call+ method which yields for each node in the graph.
  # _each_child_ should have +call+ method which takes a node argument and yields for each child node.
  #
  #   g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
  #   each_node = lambda {|&b| g.each_key(&b) }
  #   each_child = lambda {|n, &b| g[n].each(&b) }
  #   p TSort.strongly_connected_components(each_node, each_child)
  #   #=> [[4], [2], [3], [1]]
  #
  #   g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
  #   each_node = lambda {|&b| g.each_key(&b) }
  #   each_child = lambda {|n, &b| g[n].each(&b) }
  #   p TSort.strongly_connected_components(each_node, each_child)
  #   #=> [[4], [2, 3], [1]]
  #
  def TSort.strongly_connected_components(each_node, each_child)
    TSort.each_strongly_connected_component(each_node, each_child).to_a
  end

  # The iterator version of the #strongly_connected_components method.
  # <tt><em>obj</em>.each_strongly_connected_component</tt> is similar to
  # <tt><em>obj</em>.strongly_connected_components.each</tt>, but
  # modification of _obj_ during the iteration may lead to unexpected results.
  #
  # #each_strongly_connected_component returns +nil+.
  #
  #   class G
  #     include TSort
  #     def initialize(g)
  #       @g = g
  #     end
  #     def tsort_each_child(n, &b) @g[n].each(&b) end
  #     def tsort_each_node(&b) @g.each_key(&b) end
  #   end
  #
  #   graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
  #   graph.each_strongly_connected_component {|scc| p scc }
  #   #=> [4]
  #   #   [2]
  #   #   [3]
  #   #   [1]
  #
  #   graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]})
  #   graph.each_strongly_connected_component {|scc| p scc }
  #   #=> [4]
  #   #   [2, 3]
  #   #   [1]
  #
  def each_strongly_connected_component(&block) # :yields: nodes
    each_node = method(:tsort_each_node)
    each_child = method(:tsort_each_child)
    TSort.each_strongly_connected_component(each_node, each_child, &block)
  end

  # The iterator version of the TSort.strongly_connected_components method.
  #
  # The graph is represented by _each_node_ and _each_child_.
  # _each_node_ should have +call+ method which yields for each node in the graph.
  # _each_child_ should have +call+ method which takes a node argument and yields for each child node.
  #
  #   g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
  #   each_node = lambda {|&b| g.each_key(&b) }
  #   each_child = lambda {|n, &b| g[n].each(&b) }
  #   TSort.each_strongly_connected_component(each_node, each_child) {|scc| p scc }
  #   #=> [4]
  #   #   [2]
  #   #   [3]
  #   #   [1]
  #
  #   g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
  #   each_node = lambda {|&b| g.each_key(&b) }
  #   each_child = lambda {|n, &b| g[n].each(&b) }
  #   TSort.each_strongly_connected_component(each_node, each_child) {|scc| p scc }
  #   #=> [4]
  #   #   [2, 3]
  #   #   [1]
  #
  def TSort.each_strongly_connected_component(each_node, each_child) # :yields: nodes
    return to_enum(__method__, each_node, each_child) unless block_given?

    id_map = {}
    stack = []
    each_node.call {|node|
      unless id_map.include? node
        TSort.each_strongly_connected_component_from(node, each_child, id_map, stack) {|c|
          yield c
        }
      end
    }
    nil
  end

  # Iterates over strongly connected component in the subgraph reachable from
  # _node_.
  #
  # Return value is unspecified.
  #
  # #each_strongly_connected_component_from doesn't call #tsort_each_node.
  #
  #   class G
  #     include TSort
  #     def initialize(g)
  #       @g = g
  #     end
  #     def tsort_each_child(n, &b) @g[n].each(&b) end
  #     def tsort_each_node(&b) @g.each_key(&b) end
  #   end
  #
  #   graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
  #   graph.each_strongly_connected_component_from(2) {|scc| p scc }
  #   #=> [4]
  #   #   [2]
  #
  #   graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]})
  #   graph.each_strongly_connected_component_from(2) {|scc| p scc }
  #   #=> [4]
  #   #   [2, 3]
  #
  def each_strongly_connected_component_from(node, id_map={}, stack=[], &block) # :yields: nodes
    TSort.each_strongly_connected_component_from(node, method(:tsort_each_child), id_map, stack, &block)
  end

  # Iterates over strongly connected components in a graph.
  # The graph is represented by _node_ and _each_child_.
  #
  # _node_ is the first node.
  # _each_child_ should have +call+ method which takes a node argument
  # and yields for each child node.
  #
  # Return value is unspecified.
  #
  # #TSort.each_strongly_connected_component_from is a class method and
  # it doesn't need a class to represent a graph which includes TSort.
  #
  #   graph = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
  #   each_child = lambda {|n, &b| graph[n].each(&b) }
  #   TSort.each_strongly_connected_component_from(1, each_child) {|scc|
  #     p scc
  #   }
  #   #=> [4]
  #   #   [2, 3]
  #   #   [1]
  #
  def TSort.each_strongly_connected_component_from(node, each_child, id_map={}, stack=[]) # :yields: nodes
    return to_enum(__method__, node, each_child, id_map, stack) unless block_given?

    minimum_id = node_id = id_map[node] = id_map.size
    stack_length = stack.length
    stack << node

    each_child.call(node) {|child|
      if id_map.include? child
        child_id = id_map[child]
        minimum_id = child_id if child_id && child_id < minimum_id
      else
        sub_minimum_id =
          TSort.each_strongly_connected_component_from(child, each_child, id_map, stack) {|c|
            yield c
          }
        minimum_id = sub_minimum_id if sub_minimum_id < minimum_id
      end
    }

    if node_id == minimum_id
      component = stack.slice!(stack_length .. -1)
      component.each {|n| id_map[n] = nil}
      yield component
    end

    minimum_id
  end

  # Should be implemented by a extended class.
  #
  # #tsort_each_node is used to iterate for all nodes over a graph.
  #
  def tsort_each_node # :yields: node
    raise NotImplementedError.new
  end

  # Should be implemented by a extended class.
  #
  # #tsort_each_child is used to iterate for child nodes of _node_.
  #
  def tsort_each_child(node) # :yields: child
    raise NotImplementedError.new
  end
end
lib64/ruby/2.2.0/mathn.rb000064400000007540150402106060010540 0ustar00#--
# $Release Version: 0.5 $
# $Revision: 1.1.1.1.4.1 $

##
# = mathn
#
# mathn serves to make mathematical operations more precise in Ruby
# and to integrate other mathematical standard libraries.
#
# Without mathn:
#
#   3 / 2 => 1 # Integer
#
# With mathn:
#
#   3 / 2 => 3/2 # Rational
#
# mathn keeps value in exact terms.
#
# Without mathn:
#
#   20 / 9 * 3 * 14 / 7 * 3 / 2 # => 18
#
# With mathn:
#
#   20 / 9 * 3 * 14 / 7 * 3 / 2 # => 20
#
#
# When you require 'mathn', the libraries for Prime, CMath, Matrix and Vector
# are also loaded.
#
# == Copyright
#
# Author: Keiju ISHITSUKA (SHL Japan Inc.)
#--
# class Numeric follows to make this documentation findable in a reasonable
# location

warn('lib/mathn.rb is deprecated') if $VERBOSE

class Numeric; end

require "cmath.rb"
require "matrix.rb"
require "prime.rb"

require "mathn/rational"
require "mathn/complex"

unless defined?(Math.exp!)
  Object.instance_eval{remove_const :Math}
  Math = CMath # :nodoc:
end

##
# When mathn is required, Fixnum's division is enhanced to
# return more precise values from mathematical expressions.
#
#   2/3*3  # => 0
#   require 'mathn'
#   2/3*3  # => 2

class Fixnum
  remove_method :/

  ##
  # +/+ defines the Rational division for Fixnum.
  #
  #   1/3  # => (1/3)

  alias / quo
end

##
# When mathn is required Bignum's division is enhanced to
# return more precise values from mathematical expressions.
#
#   (2**72) / ((2**70) * 3)  # => 4/3

class Bignum
  remove_method :/

  ##
  # +/+ defines the Rational division for Bignum.
  #
  #   (2**72) / ((2**70) * 3)  # => 4/3

  alias / quo
end

##
# When mathn is required, the Math module changes as follows:
#
# Standard Math module behaviour:
#   Math.sqrt(4/9)     # => 0.0
#   Math.sqrt(4.0/9.0) # => 0.666666666666667
#   Math.sqrt(- 4/9)   # => Errno::EDOM: Numerical argument out of domain - sqrt
#
# After require 'mathn', this is changed to:
#
#   require 'mathn'
#   Math.sqrt(4/9)      # => 2/3
#   Math.sqrt(4.0/9.0)  # => 0.666666666666667
#   Math.sqrt(- 4/9)    # => Complex(0, 2/3)

module Math
  remove_method(:sqrt)

  ##
  # Computes the square root of +a+.  It makes use of Complex and
  # Rational to have no rounding errors if possible.
  #
  #   Math.sqrt(4/9)      # => 2/3
  #   Math.sqrt(- 4/9)    # => Complex(0, 2/3)
  #   Math.sqrt(4.0/9.0)  # => 0.666666666666667

  def sqrt(a)
    if a.kind_of?(Complex)
      abs = sqrt(a.real*a.real + a.imag*a.imag)
      x = sqrt((a.real + abs)/Rational(2))
      y = sqrt((-a.real + abs)/Rational(2))
      if a.imag >= 0
        Complex(x, y)
      else
        Complex(x, -y)
      end
    elsif a.respond_to?(:nan?) and a.nan?
      a
    elsif a >= 0
      rsqrt(a)
    else
      Complex(0,rsqrt(-a))
    end
  end

  ##
  # Compute square root of a non negative number. This method is
  # internally used by +Math.sqrt+.

  def rsqrt(a)
    if a.kind_of?(Float)
      sqrt!(a)
    elsif a.kind_of?(Rational)
      rsqrt(a.numerator)/rsqrt(a.denominator)
    else
      src = a
      max = 2 ** 32
      byte_a = [src & 0xffffffff]
      # ruby's bug
      while (src >= max) and (src >>= 32)
        byte_a.unshift src & 0xffffffff
      end

      answer = 0
      main = 0
      side = 0
      for elm in byte_a
        main = (main << 32) + elm
        side <<= 16
        if answer != 0
          if main * 4  < side * side
            applo = main.div(side)
          else
            applo = ((sqrt!(side * side + 4 * main) - side)/2.0).to_i + 1
          end
        else
          applo = sqrt!(main).to_i + 1
        end

        while (x = (side + applo) * applo) > main
          applo -= 1
        end
        main -= x
        answer = (answer << 16) + applo
        side += applo * 2
      end
      if main == 0
        answer
      else
        sqrt!(a)
      end
    end
  end

  class << self
    remove_method(:sqrt)
  end
  module_function :sqrt
  module_function :rsqrt
end
lib64/ruby/2.2.0/rdoc/markup/heading.rb000064400000002715150402106060013255 0ustar00##
# A heading with a level (1-6) and text

RDoc::Markup::Heading =
  Struct.new :level, :text do

  @to_html = nil
  @to_label = nil

  ##
  # A singleton RDoc::Markup::ToLabel formatter for headings.

  def self.to_label
    @to_label ||= RDoc::Markup::ToLabel.new
  end

  ##
  # A singleton plain HTML formatter for headings.  Used for creating labels
  # for the Table of Contents

  def self.to_html
    return @to_html if @to_html

    markup = RDoc::Markup.new
    markup.add_special RDoc::CrossReference::CROSSREF_REGEXP, :CROSSREF

    @to_html = RDoc::Markup::ToHtml.new nil

    def @to_html.handle_special_CROSSREF special
      special.text.sub(/^\\/, '')
    end

    @to_html
  end

  ##
  # Calls #accept_heading on +visitor+

  def accept visitor
    visitor.accept_heading self
  end

  ##
  # An HTML-safe anchor reference for this header.

  def aref
    "label-#{self.class.to_label.convert text.dup}"
  end

  ##
  # Creates a fully-qualified label which will include the label from
  # +context+.  This helps keep ids unique in HTML.

  def label context = nil
    label = aref

    label = [context.aref, label].compact.join '-' if
      context and context.respond_to? :aref

    label
  end

  ##
  # HTML markup of the text of this label without the surrounding header
  # element.

  def plain_html
    self.class.to_html.to_html(text.dup)
  end

  def pretty_print q # :nodoc:
    q.group 2, "[head: #{level} ", ']' do
      q.pp text
    end
  end

end

lib64/ruby/2.2.0/rdoc/markup/attributes.rb000064400000002240150402106060014035 0ustar00##
# We manage a set of attributes.  Each attribute has a symbol name and a bit
# value.

class RDoc::Markup::Attributes

  ##
  # The special attribute type.  See RDoc::Markup#add_special

  attr_reader :special

  ##
  # Creates a new attributes set.

  def initialize
    @special = 1

    @name_to_bitmap = [
      [:_SPECIAL_, @special],
    ]

    @next_bitmap = @special << 1
  end

  ##
  # Returns a unique bit for +name+

  def bitmap_for name
    bitmap = @name_to_bitmap.assoc name

    unless bitmap then
      bitmap = @next_bitmap
      @next_bitmap <<= 1
      @name_to_bitmap << [name, bitmap]
    else
      bitmap = bitmap.last
    end

    bitmap
  end

  ##
  # Returns a string representation of +bitmap+

  def as_string bitmap
    return 'none' if bitmap.zero?
    res = []

    @name_to_bitmap.each do |name, bit|
      res << name if (bitmap & bit) != 0
    end

    res.join ','
  end

  ##
  # yields each attribute name in +bitmap+

  def each_name_of bitmap
    return enum_for __method__, bitmap unless block_given?

    @name_to_bitmap.each do |name, bit|
      next if bit == @special

      yield name.to_s if (bitmap & bit) != 0
    end
  end

end

lib64/ruby/2.2.0/rdoc/markup/list.rb000064400000003447150402106060012634 0ustar00##
# A List is a homogeneous set of ListItems.
#
# The supported list types include:
#
# :BULLET::
#   An unordered list
# :LABEL::
#   An unordered definition list, but using an alternate RDoc::Markup syntax
# :LALPHA::
#   An ordered list using increasing lowercase English letters
# :NOTE::
#   An unordered definition list
# :NUMBER::
#   An ordered list using increasing Arabic numerals
# :UALPHA::
#   An ordered list using increasing uppercase English letters
#
# Definition lists behave like HTML definition lists.  Each list item can
# describe multiple terms.  See RDoc::Markup::ListItem for how labels and
# definition are stored as list items.

class RDoc::Markup::List

  ##
  # The list's type

  attr_accessor :type

  ##
  # Items in the list

  attr_reader :items

  ##
  # Creates a new list of +type+ with +items+.  Valid list types are:
  # +:BULLET+, +:LABEL+, +:LALPHA+, +:NOTE+, +:NUMBER+, +:UALPHA+

  def initialize type = nil, *items
    @type = type
    @items = []
    @items.concat items
  end

  ##
  # Appends +item+ to the list

  def << item
    @items << item
  end

  def == other # :nodoc:
    self.class == other.class and
      @type == other.type and
      @items == other.items
  end

  ##
  # Runs this list and all its #items through +visitor+

  def accept visitor
    visitor.accept_list_start self

    @items.each do |item|
      item.accept visitor
    end

    visitor.accept_list_end self
  end

  ##
  # Is the list empty?

  def empty?
    @items.empty?
  end

  ##
  # Returns the last item in the list

  def last
    @items.last
  end

  def pretty_print q # :nodoc:
    q.group 2, "[list: #{@type} ", ']' do
      q.seplist @items do |item|
        q.pp item
      end
    end
  end

  ##
  # Appends +items+ to the list

  def push *items
    @items.concat items
  end

end

lib64/ruby/2.2.0/rdoc/markup/to_joined_paragraph.rb000064400000003062150402106060015651 0ustar00##
# Joins the parts of an RDoc::Markup::Paragraph into a single String.
#
# This allows for easier maintenance and testing of Markdown support.
#
# This formatter only works on Paragraph instances.  Attempting to process
# other markup syntax items will not work.

class RDoc::Markup::ToJoinedParagraph < RDoc::Markup::Formatter

  def initialize # :nodoc:
    super nil
  end

  def start_accepting # :nodoc:
  end

  def end_accepting # :nodoc:
  end

  ##
  # Converts the parts of +paragraph+ to a single entry.

  def accept_paragraph paragraph
    parts = []
    string = false

    paragraph.parts.each do |part|
      if String === part then
        if string then
          string << part
        else
          parts << part
          string = part
        end
      else
        parts << part
        string = false
      end
    end

    parts = parts.map do |part|
      if String === part then
        part.rstrip
      else
        part
      end
    end

    # TODO use Enumerable#chunk when Ruby 1.8 support is dropped
    #parts = paragraph.parts.chunk do |part|
    #  String === part
    #end.map do |string, chunk|
    #  string ? chunk.join.rstrip : chunk
    #end.flatten

    paragraph.parts.replace parts
  end

  alias accept_block_quote     ignore
  alias accept_heading         ignore
  alias accept_list_end        ignore
  alias accept_list_item_end   ignore
  alias accept_list_item_start ignore
  alias accept_list_start      ignore
  alias accept_raw             ignore
  alias accept_rule            ignore
  alias accept_verbatim        ignore

end

lib64/ruby/2.2.0/rdoc/markup/to_html.rb000064400000020713150402106060013322 0ustar00require 'cgi'

##
# Outputs RDoc markup as HTML.

class RDoc::Markup::ToHtml < RDoc::Markup::Formatter

  include RDoc::Text

  # :section: Utilities

  ##
  # Maps RDoc::Markup::Parser::LIST_TOKENS types to HTML tags

  LIST_TYPE_TO_HTML = {
    :BULLET => ['<ul>',                                      '</ul>'],
    :LABEL  => ['<dl class="rdoc-list label-list">',         '</dl>'],
    :LALPHA => ['<ol style="list-style-type: lower-alpha">', '</ol>'],
    :NOTE   => ['<dl class="rdoc-list note-list">',          '</dl>'],
    :NUMBER => ['<ol>',                                      '</ol>'],
    :UALPHA => ['<ol style="list-style-type: upper-alpha">', '</ol>'],
  }

  attr_reader :res # :nodoc:
  attr_reader :in_list_entry # :nodoc:
  attr_reader :list # :nodoc:

  ##
  # The RDoc::CodeObject HTML is being generated for.  This is used to
  # generate namespaced URI fragments

  attr_accessor :code_object

  ##
  # Path to this document for relative links

  attr_accessor :from_path

  # :section:

  ##
  # Creates a new formatter that will output HTML

  def initialize options, markup = nil
    super

    @code_object = nil
    @from_path = ''
    @in_list_entry = nil
    @list = nil
    @th = nil
    @hard_break = "<br>\n"

    # external links
    @markup.add_special(/(?:link:|https?:|mailto:|ftp:|irc:|www\.)\S+\w/,
                        :HYPERLINK)

    add_special_RDOCLINK
    add_special_TIDYLINK

    init_tags
  end

  # :section: Special Handling
  #
  # These methods handle special markup added by RDoc::Markup#add_special.

  def handle_RDOCLINK url # :nodoc:
    case url
    when /^rdoc-ref:/
      $'
    when /^rdoc-label:/
      text = $'

      text = case text
             when /\Alabel-/    then $'
             when /\Afootmark-/ then $'
             when /\Afoottext-/ then $'
             else                    text
             end

      gen_url url, text
    when /^rdoc-image:/
      "<img src=\"#{$'}\">"
    else
      url =~ /\Ardoc-[a-z]+:/

      $'
    end
  end

  ##
  # +special+ is a <code><br></code>

  def handle_special_HARD_BREAK special
    '<br>'
  end

  ##
  # +special+ is a potential link.  The following schemes are handled:
  #
  # <tt>mailto:</tt>::
  #   Inserted as-is.
  # <tt>http:</tt>::
  #   Links are checked to see if they reference an image. If so, that image
  #   gets inserted using an <tt><img></tt> tag. Otherwise a conventional
  #   <tt><a href></tt> is used.
  # <tt>link:</tt>::
  #   Reference to a local file relative to the output directory.

  def handle_special_HYPERLINK(special)
    url = special.text

    gen_url url, url
  end

  ##
  # +special+ is an rdoc-schemed link that will be converted into a hyperlink.
  #
  # For the +rdoc-ref+ scheme the named reference will be returned without
  # creating a link.
  #
  # For the +rdoc-label+ scheme the footnote and label prefixes are stripped
  # when creating a link.  All other contents will be linked verbatim.

  def handle_special_RDOCLINK special
    handle_RDOCLINK special.text
  end

  ##
  # This +special+ is a link where the label is different from the URL
  # <tt>label[url]</tt> or <tt>{long label}[url]</tt>

  def handle_special_TIDYLINK(special)
    text = special.text

    return text unless
      text =~ /^\{(.*)\}\[(.*?)\]$/ or text =~ /^(\S+)\[(.*?)\]$/

    label = $1
    url   = $2

    label = handle_RDOCLINK label if /^rdoc-image:/ =~ label

    gen_url url, label
  end

  # :section: Visitor
  #
  # These methods implement the HTML visitor.

  ##
  # Prepares the visitor for HTML generation

  def start_accepting
    @res = []
    @in_list_entry = []
    @list = []
  end

  ##
  # Returns the generated output

  def end_accepting
    @res.join
  end

  ##
  # Adds +block_quote+ to the output

  def accept_block_quote block_quote
    @res << "\n<blockquote>"

    block_quote.parts.each do |part|
      part.accept self
    end

    @res << "</blockquote>\n"
  end

  ##
  # Adds +paragraph+ to the output

  def accept_paragraph paragraph
    @res << "\n<p>"
    text = paragraph.text @hard_break
    text = text.gsub(/\r?\n/, ' ')
    @res << wrap(to_html(text))
    @res << "</p>\n"
  end

  ##
  # Adds +verbatim+ to the output

  def accept_verbatim verbatim
    text = verbatim.text.rstrip

    klass = nil

    content = if verbatim.ruby? or parseable? text then
                begin
                  tokens = RDoc::RubyLex.tokenize text, @options
                  klass  = ' class="ruby"'

                  RDoc::TokenStream.to_html tokens
                rescue RDoc::RubyLex::Error
                  CGI.escapeHTML text
                end
              else
                CGI.escapeHTML text
              end

    if @options.pipe then
      @res << "\n<pre><code>#{CGI.escapeHTML text}</code></pre>\n"
    else
      @res << "\n<pre#{klass}>#{content}</pre>\n"
    end
  end

  ##
  # Adds +rule+ to the output

  def accept_rule rule
    @res << "<hr>\n"
  end

  ##
  # Prepares the visitor for consuming +list+

  def accept_list_start(list)
    @list << list.type
    @res << html_list_name(list.type, true)
    @in_list_entry.push false
  end

  ##
  # Finishes consumption of +list+

  def accept_list_end(list)
    @list.pop
    if tag = @in_list_entry.pop
      @res << tag
    end
    @res << html_list_name(list.type, false) << "\n"
  end

  ##
  # Prepares the visitor for consuming +list_item+

  def accept_list_item_start(list_item)
    if tag = @in_list_entry.last
      @res << tag
    end

    @res << list_item_start(list_item, @list.last)
  end

  ##
  # Finishes consumption of +list_item+

  def accept_list_item_end(list_item)
    @in_list_entry[-1] = list_end_for(@list.last)
  end

  ##
  # Adds +blank_line+ to the output

  def accept_blank_line(blank_line)
    # @res << annotate("<p />") << "\n"
  end

  ##
  # Adds +heading+ to the output.  The headings greater than 6 are trimmed to
  # level 6.

  def accept_heading heading
    level = [6, heading.level].min

    label = heading.label @code_object

    @res << if @options.output_decoration
              "\n<h#{level} id=\"#{label}\">"
            else
              "\n<h#{level}>"
            end
    @res << to_html(heading.text)
    unless @options.pipe then
      @res << "<span><a href=\"##{label}\">&para;</a>"
      @res << " <a href=\"#top\">&uarr;</a></span>"
    end
    @res << "</h#{level}>\n"
  end

  ##
  # Adds +raw+ to the output

  def accept_raw raw
    @res << raw.parts.join("\n")
  end

  # :section: Utilities

  ##
  # CGI-escapes +text+

  def convert_string(text)
    CGI.escapeHTML text
  end

  ##
  # Generate a link to +url+ with content +text+.  Handles the special cases
  # for img: and link: described under handle_special_HYPERLINK

  def gen_url url, text
    scheme, url, id = parse_url url

    if %w[http https link].include?(scheme) and
       url =~ /\.(gif|png|jpg|jpeg|bmp)$/ then
      "<img src=\"#{url}\" />"
    else
      text = text.sub %r%^#{scheme}:/*%i, ''
      text = text.sub %r%^[*\^](\d+)$%,   '\1'

      link = "<a#{id} href=\"#{url}\">#{text}</a>"

      link = "<sup>#{link}</sup>" if /"foot/ =~ id

      link
    end
  end

  ##
  # Determines the HTML list element for +list_type+ and +open_tag+

  def html_list_name(list_type, open_tag)
    tags = LIST_TYPE_TO_HTML[list_type]
    raise RDoc::Error, "Invalid list type: #{list_type.inspect}" unless tags
    tags[open_tag ? 0 : 1]
  end

  ##
  # Maps attributes to HTML tags

  def init_tags
    add_tag :BOLD, "<strong>", "</strong>"
    add_tag :TT,   "<code>",   "</code>"
    add_tag :EM,   "<em>",     "</em>"
  end

  ##
  # Returns the HTML tag for +list_type+, possible using a label from
  # +list_item+

  def list_item_start(list_item, list_type)
    case list_type
    when :BULLET, :LALPHA, :NUMBER, :UALPHA then
      "<li>"
    when :LABEL, :NOTE then
      Array(list_item.label).map do |label|
        "<dt>#{to_html label}\n"
      end.join << "<dd>"
    else
      raise RDoc::Error, "Invalid list type: #{list_type.inspect}"
    end
  end

  ##
  # Returns the HTML end-tag for +list_type+

  def list_end_for(list_type)
    case list_type
    when :BULLET, :LALPHA, :NUMBER, :UALPHA then
      "</li>"
    when :LABEL, :NOTE then
      "</dd>"
    else
      raise RDoc::Error, "Invalid list type: #{list_type.inspect}"
    end
  end

  ##
  # Returns true if text is valid ruby syntax

  def parseable? text
    eval("BEGIN {return true}\n#{text}")
  rescue SyntaxError
    false
  end

  ##
  # Converts +item+ to HTML using RDoc::Text#to_html

  def to_html item
    super convert_flow @am.flow item
  end

end

lib64/ruby/2.2.0/rdoc/markup/formatter_test_case.rb000064400000041541150402106060015713 0ustar00require 'minitest/unit'

##
# Test case for creating new RDoc::Markup formatters.  See
# test/test_rdoc_markup_to_*.rb for examples.
#
# This test case adds a variety of tests to your subclass when
# #add_visitor_tests is called.  Most tests set up a scenario then call a
# method you will provide to perform the assertion on the output.
#
# Your subclass must instantiate a visitor and assign it to <tt>@to</tt>.
#
# For example, test_accept_blank_line sets up a RDoc::Markup::BlockLine then
# calls accept_blank_line on your visitor.  You are responsible for asserting
# that the output is correct.
#
# Example:
#
#  class TestRDocMarkupToNewFormat < RDoc::Markup::FormatterTestCase
#
#    add_visitor_tests
#
#    def setup
#      super
#
#      @to = RDoc::Markup::ToNewFormat.new
#    end
#
#    def accept_blank_line
#      assert_equal :junk, @to.res.join
#    end
#
#    # ...
#
#  end

class RDoc::Markup::FormatterTestCase < RDoc::TestCase

  ##
  # Call #setup when inheriting from this test case.
  #
  # Provides the following instance variables:
  #
  # +@m+::           RDoc::Markup.new
  # +@RM+::          RDoc::Markup # to reduce typing
  # +@bullet_list+:: @RM::List.new :BULLET, # ...
  # +@label_list+::  @RM::List.new :LABEL, # ...
  # +@lalpha_list+:: @RM::List.new :LALPHA, # ...
  # +@note_list+::   @RM::List.new :NOTE, # ...
  # +@number_list+:: @RM::List.new :NUMBER, # ...
  # +@ualpha_list+:: @RM::List.new :UALPHA, # ...

  def setup
    super

    @options = RDoc::Options.new

    @m = @RM.new

    @bullet_list = @RM::List.new(:BULLET,
      @RM::ListItem.new(nil, @RM::Paragraph.new('l1')),
      @RM::ListItem.new(nil, @RM::Paragraph.new('l2')))

    @label_list = @RM::List.new(:LABEL,
      @RM::ListItem.new('cat', @RM::Paragraph.new('cats are cool')),
      @RM::ListItem.new('dog', @RM::Paragraph.new('dogs are cool too')))

    @lalpha_list = @RM::List.new(:LALPHA,
      @RM::ListItem.new(nil, @RM::Paragraph.new('l1')),
      @RM::ListItem.new(nil, @RM::Paragraph.new('l2')))

    @note_list = @RM::List.new(:NOTE,
      @RM::ListItem.new('cat', @RM::Paragraph.new('cats are cool')),
      @RM::ListItem.new('dog', @RM::Paragraph.new('dogs are cool too')))

    @number_list = @RM::List.new(:NUMBER,
      @RM::ListItem.new(nil, @RM::Paragraph.new('l1')),
      @RM::ListItem.new(nil, @RM::Paragraph.new('l2')))

    @ualpha_list = @RM::List.new(:UALPHA,
      @RM::ListItem.new(nil, @RM::Paragraph.new('l1')),
      @RM::ListItem.new(nil, @RM::Paragraph.new('l2')))
  end

  ##
  # Call to add the visitor tests to your test case

  def self.add_visitor_tests
    class_eval do

      ##
      # Calls start_accepting which needs to verify startup state

      def test_start_accepting
        @to.start_accepting

        start_accepting
      end

      ##
      # Calls end_accepting on your test case which needs to call
      # <tt>@to.end_accepting</tt> and verify document generation

      def test_end_accepting
        @to.start_accepting
        @to.res << 'hi'

        end_accepting
      end

      ##
      # Calls accept_blank_line

      def test_accept_blank_line
        @to.start_accepting

        @to.accept_blank_line @RM::BlankLine.new

        accept_blank_line
      end

      ##
      # Calls accept_block_quote

      def test_accept_block_quote
        @to.start_accepting

        @to.accept_block_quote block para 'quote'

        accept_block_quote
      end
      ##
      # Test case that calls <tt>@to.accept_document</tt>

      def test_accept_document
        @to.start_accepting
        @to.accept_document @RM::Document.new @RM::Paragraph.new 'hello'

        accept_document
      end

      ##
      # Calls accept_heading with a level 5 RDoc::Markup::Heading

      def test_accept_heading
        @to.start_accepting

        @to.accept_heading @RM::Heading.new(5, 'Hello')

        accept_heading
      end

      ##
      # Calls accept_heading_1 with a level 1 RDoc::Markup::Heading

      def test_accept_heading_1
        @to.start_accepting

        @to.accept_heading @RM::Heading.new(1, 'Hello')

        accept_heading_1
      end

      ##
      # Calls accept_heading_2 with a level 2 RDoc::Markup::Heading

      def test_accept_heading_2
        @to.start_accepting

        @to.accept_heading @RM::Heading.new(2, 'Hello')

        accept_heading_2
      end

      ##
      # Calls accept_heading_3 with a level 3 RDoc::Markup::Heading

      def test_accept_heading_3
        # HACK this doesn't belong here
        skip "No String#chars, upgrade your ruby" unless ''.respond_to? :chars

        @to.start_accepting

        @to.accept_heading @RM::Heading.new(3, 'Hello')

        accept_heading_3
      end

      ##
      # Calls accept_heading_4 with a level 4 RDoc::Markup::Heading

      def test_accept_heading_4
        @to.start_accepting

        @to.accept_heading @RM::Heading.new(4, 'Hello')

        accept_heading_4
      end

      ##
      # Calls accept_heading_b with a bold level 1 RDoc::Markup::Heading

      def test_accept_heading_b
        @to.start_accepting

        @to.accept_heading @RM::Heading.new(1, '*Hello*')

        accept_heading_b
      end

      ##
      # Calls accept_heading_suppressed_crossref with a level 1
      # RDoc::Markup::Heading containing a suppressed crossref

      def test_accept_heading_suppressed_crossref # HACK to_html_crossref test
        @to.start_accepting

        @to.accept_heading @RM::Heading.new(1, '\\Hello')

        accept_heading_suppressed_crossref
      end

      ##
      # Calls accept_paragraph

      def test_accept_paragraph
        @to.start_accepting

        @to.accept_paragraph @RM::Paragraph.new('hi')

        accept_paragraph
      end

      ##
      # Calls accept_paragraph_b with a RDoc::Markup::Paragraph containing
      # bold words

      def test_accept_paragraph_b
        @to.start_accepting

        @to.accept_paragraph @RM::Paragraph.new('reg <b>bold words</b> reg')

        accept_paragraph_b
      end

      ##
      # Calls accept_paragraph_br with a RDoc::Markup::Paragraph containing
      # a \<br>

      def test_accept_paragraph_br
        @to.start_accepting

        @to.accept_paragraph para 'one<br>two'

        accept_paragraph_br
      end

      ##
      # Calls accept_paragraph with a Paragraph containing a hard break

      def test_accept_paragraph_break
        @to.start_accepting

        @to.accept_paragraph para('hello', hard_break, 'world')

        accept_paragraph_break
      end

      ##
      # Calls accept_paragraph_i with a RDoc::Markup::Paragraph containing
      # emphasized words

      def test_accept_paragraph_i
        @to.start_accepting

        @to.accept_paragraph @RM::Paragraph.new('reg <em>italic words</em> reg')

        accept_paragraph_i
      end

      ##
      # Calls accept_paragraph_plus with a RDoc::Markup::Paragraph containing
      # teletype words

      def test_accept_paragraph_plus
        @to.start_accepting

        @to.accept_paragraph @RM::Paragraph.new('reg +teletype+ reg')

        accept_paragraph_plus
      end

      ##
      # Calls accept_paragraph_star with a RDoc::Markup::Paragraph containing
      # bold words

      def test_accept_paragraph_star
        @to.start_accepting

        @to.accept_paragraph @RM::Paragraph.new('reg *bold* reg')

        accept_paragraph_star
      end

      ##
      # Calls accept_paragraph_underscore with a RDoc::Markup::Paragraph
      # containing emphasized words

      def test_accept_paragraph_underscore
        @to.start_accepting

        @to.accept_paragraph @RM::Paragraph.new('reg _italic_ reg')

        accept_paragraph_underscore
      end

      ##
      # Calls accept_verbatim with a RDoc::Markup::Verbatim

      def test_accept_verbatim
        @to.start_accepting

        @to.accept_verbatim @RM::Verbatim.new("hi\n", "  world\n")

        accept_verbatim
      end

      ##
      # Calls accept_raw with a RDoc::Markup::Raw

      def test_accept_raw
        @to.start_accepting

        @to.accept_raw @RM::Raw.new("<table>",
                                    "<tr><th>Name<th>Count",
                                    "<tr><td>a<td>1",
                                    "<tr><td>b<td>2",
                                    "</table>")

        accept_raw
      end

      ##
      # Calls accept_rule with a RDoc::Markup::Rule

      def test_accept_rule
        @to.start_accepting

        @to.accept_rule @RM::Rule.new(4)

        accept_rule
      end

      ##
      # Calls accept_list_item_start_bullet

      def test_accept_list_item_start_bullet
        @to.start_accepting

        @to.accept_list_start @bullet_list

        @to.accept_list_item_start @bullet_list.items.first

        accept_list_item_start_bullet
      end

      ##
      # Calls accept_list_item_start_label

      def test_accept_list_item_start_label
        @to.start_accepting

        @to.accept_list_start @label_list

        @to.accept_list_item_start @label_list.items.first

        accept_list_item_start_label
      end

      ##
      # Calls accept_list_item_start_lalpha

      def test_accept_list_item_start_lalpha
        @to.start_accepting

        @to.accept_list_start @lalpha_list

        @to.accept_list_item_start @lalpha_list.items.first

        accept_list_item_start_lalpha
      end

      ##
      # Calls accept_list_item_start_note

      def test_accept_list_item_start_note
        @to.start_accepting

        @to.accept_list_start @note_list

        @to.accept_list_item_start @note_list.items.first

        accept_list_item_start_note
      end

      ##
      # Calls accept_list_item_start_note_2

      def test_accept_list_item_start_note_2
        list = list(:NOTE,
                 item('<tt>teletype</tt>',
                   para('teletype description')))

        @to.start_accepting

        list.accept @to

        @to.end_accepting

        accept_list_item_start_note_2
      end

      ##
      # Calls accept_list_item_start_note_multi_description

      def test_accept_list_item_start_note_multi_description
        list = list(:NOTE,
                 item(%w[label],
                   para('description one')),
                 item(nil, para('description two')))

        @to.start_accepting

        list.accept @to

        @to.end_accepting

        accept_list_item_start_note_multi_description
      end

      ##
      # Calls accept_list_item_start_note_multi_label

      def test_accept_list_item_start_note_multi_label
        list = list(:NOTE,
                 item(%w[one two],
                   para('two headers')))

        @to.start_accepting

        list.accept @to

        @to.end_accepting

        accept_list_item_start_note_multi_label
      end

      ##
      # Calls accept_list_item_start_number

      def test_accept_list_item_start_number
        @to.start_accepting

        @to.accept_list_start @number_list

        @to.accept_list_item_start @number_list.items.first

        accept_list_item_start_number
      end

      ##
      # Calls accept_list_item_start_ualpha

      def test_accept_list_item_start_ualpha
        @to.start_accepting

        @to.accept_list_start @ualpha_list

        @to.accept_list_item_start @ualpha_list.items.first

        accept_list_item_start_ualpha
      end

      ##
      # Calls accept_list_item_end_bullet

      def test_accept_list_item_end_bullet
        @to.start_accepting

        @to.accept_list_start @bullet_list

        @to.accept_list_item_start @bullet_list.items.first

        @to.accept_list_item_end @bullet_list.items.first

        accept_list_item_end_bullet
      end

      ##
      # Calls accept_list_item_end_label

      def test_accept_list_item_end_label
        @to.start_accepting

        @to.accept_list_start @label_list

        @to.accept_list_item_start @label_list.items.first

        @to.accept_list_item_end @label_list.items.first

        accept_list_item_end_label
      end

      ##
      # Calls accept_list_item_end_lalpha

      def test_accept_list_item_end_lalpha
        @to.start_accepting

        @to.accept_list_start @lalpha_list

        @to.accept_list_item_start @lalpha_list.items.first

        @to.accept_list_item_end @lalpha_list.items.first

        accept_list_item_end_lalpha
      end

      ##
      # Calls accept_list_item_end_note

      def test_accept_list_item_end_note
        @to.start_accepting

        @to.accept_list_start @note_list

        @to.accept_list_item_start @note_list.items.first

        @to.accept_list_item_end @note_list.items.first

        accept_list_item_end_note
      end

      ##
      # Calls accept_list_item_end_number

      def test_accept_list_item_end_number
        @to.start_accepting

        @to.accept_list_start @number_list

        @to.accept_list_item_start @number_list.items.first

        @to.accept_list_item_end @number_list.items.first

        accept_list_item_end_number
      end

      ##
      # Calls accept_list_item_end_ualpha

      def test_accept_list_item_end_ualpha
        @to.start_accepting

        @to.accept_list_start @ualpha_list

        @to.accept_list_item_start @ualpha_list.items.first

        @to.accept_list_item_end @ualpha_list.items.first

        accept_list_item_end_ualpha
      end

      ##
      # Calls accept_list_start_bullet

      def test_accept_list_start_bullet
        @to.start_accepting

        @to.accept_list_start @bullet_list

        accept_list_start_bullet
      end

      ##
      # Calls accept_list_start_label

      def test_accept_list_start_label
        @to.start_accepting

        @to.accept_list_start @label_list

        accept_list_start_label
      end

      ##
      # Calls accept_list_start_lalpha

      def test_accept_list_start_lalpha
        @to.start_accepting

        @to.accept_list_start @lalpha_list

        accept_list_start_lalpha
      end

      ##
      # Calls accept_list_start_note

      def test_accept_list_start_note
        @to.start_accepting

        @to.accept_list_start @note_list

        accept_list_start_note
      end

      ##
      # Calls accept_list_start_number

      def test_accept_list_start_number
        @to.start_accepting

        @to.accept_list_start @number_list

        accept_list_start_number
      end

      ##
      # Calls accept_list_start_ualpha

      def test_accept_list_start_ualpha
        @to.start_accepting

        @to.accept_list_start @ualpha_list

        accept_list_start_ualpha
      end

      ##
      # Calls accept_list_end_bullet

      def test_accept_list_end_bullet
        @to.start_accepting

        @to.accept_list_start @bullet_list

        @to.accept_list_end @bullet_list

        accept_list_end_bullet
      end

      ##
      # Calls accept_list_end_label

      def test_accept_list_end_label
        @to.start_accepting

        @to.accept_list_start @label_list

        @to.accept_list_end @label_list

        accept_list_end_label
      end

      ##
      # Calls accept_list_end_lalpha

      def test_accept_list_end_lalpha
        @to.start_accepting

        @to.accept_list_start @lalpha_list

        @to.accept_list_end @lalpha_list

        accept_list_end_lalpha
      end

      ##
      # Calls accept_list_end_number

      def test_accept_list_end_number
        @to.start_accepting

        @to.accept_list_start @number_list

        @to.accept_list_end @number_list

        accept_list_end_number
      end

      ##
      # Calls accept_list_end_note

      def test_accept_list_end_note
        @to.start_accepting

        @to.accept_list_start @note_list

        @to.accept_list_end @note_list

        accept_list_end_note
      end

      ##
      # Calls accept_list_end_ualpha

      def test_accept_list_end_ualpha
        @to.start_accepting

        @to.accept_list_start @ualpha_list

        @to.accept_list_end @ualpha_list

        accept_list_end_ualpha
      end

      ##
      # Calls list_nested with a two-level list

      def test_list_nested
        doc = @RM::Document.new(
                @RM::List.new(:BULLET,
                  @RM::ListItem.new(nil,
                    @RM::Paragraph.new('l1'),
                    @RM::List.new(:BULLET,
                      @RM::ListItem.new(nil,
                        @RM::Paragraph.new('l1.1')))),
                  @RM::ListItem.new(nil,
                    @RM::Paragraph.new('l2'))))

        doc.accept @to

        list_nested
      end

      ##
      # Calls list_verbatim with a list containing a verbatim block

      def test_list_verbatim # HACK overblown
        doc =
          doc(
            list(:BULLET,
              item(nil,
                para('list stuff'),
                blank_line,
                verb("* list\n",
                     "  with\n",
                     "\n",
                     "  second\n",
                     "\n",
                     "  1. indented\n",
                     "  2. numbered\n",
                     "\n",
                     "  third\n",
                     "\n",
                     "* second\n"))))

        doc.accept @to

        list_verbatim
      end
    end
  end

end

lib64/ruby/2.2.0/rdoc/markup/to_bs.rb000064400000003257150402106070012767 0ustar00##
# Outputs RDoc markup with hot backspace action!  You will probably need a
# pager to use this output format.
#
# This formatter won't work on 1.8.6 because it lacks String#chars.

class RDoc::Markup::ToBs < RDoc::Markup::ToRdoc

  ##
  # Returns a new ToBs that is ready for hot backspace action!

  def initialize markup = nil
    super

    @in_b  = false
    @in_em = false
  end

  ##
  # Sets a flag that is picked up by #annotate to do the right thing in
  # #convert_string

  def init_tags
    add_tag :BOLD, '+b', '-b'
    add_tag :EM,   '+_', '-_'
    add_tag :TT,   ''  , ''   # we need in_tt information maintained
  end

  ##
  # Makes heading text bold.

  def accept_heading heading
    use_prefix or @res << ' ' * @indent
    @res << @headings[heading.level][0]
    @in_b = true
    @res << attributes(heading.text)
    @in_b = false
    @res << @headings[heading.level][1]
    @res << "\n"
  end

  ##
  # Turns on or off special handling for +convert_string+

  def annotate tag
    case tag
    when '+b' then @in_b = true
    when '-b' then @in_b = false
    when '+_' then @in_em = true
    when '-_' then @in_em = false
    end
    ''
  end

  ##
  # Calls convert_string on the result of convert_special

  def convert_special special
    convert_string super
  end

  ##
  # Adds bold or underline mixed with backspaces

  def convert_string string
    return string unless string.respond_to? :chars # your ruby is lame
    return string unless @in_b or @in_em
    chars = if @in_b then
              string.chars.map do |char| "#{char}\b#{char}" end
            elsif @in_em then
              string.chars.map do |char| "_\b#{char}" end
            end

    chars.join
  end

end

lib64/ruby/2.2.0/rdoc/markup/to_test.rb000064400000002160150402106070013332 0ustar00##
# This Markup outputter is used for testing purposes.

class RDoc::Markup::ToTest < RDoc::Markup::Formatter

  # :stopdoc:

  ##
  # :section: Visitor

  def start_accepting
    @res = []
    @list = []
  end

  def end_accepting
    @res
  end

  def accept_paragraph(paragraph)
    @res << convert_flow(@am.flow(paragraph.text))
  end

  def accept_raw raw
    @res << raw.parts.join
  end

  def accept_verbatim(verbatim)
    @res << verbatim.text.gsub(/^(\S)/, '  \1')
  end

  def accept_list_start(list)
    @list << case list.type
             when :BULLET then
               '*'
             when :NUMBER then
               '1'
             else
               list.type
             end
  end

  def accept_list_end(list)
    @list.pop
  end

  def accept_list_item_start(list_item)
    @res << "#{' ' * (@list.size - 1)}#{@list.last}: "
  end

  def accept_list_item_end(list_item)
  end

  def accept_blank_line(blank_line)
    @res << "\n"
  end

  def accept_heading(heading)
    @res << "#{'=' * heading.level} #{heading.text}"
  end

  def accept_rule(rule)
    @res << '-' * rule.weight
  end

  # :startdoc:

end

lib64/ruby/2.2.0/rdoc/markup/to_html_snippet.rb000064400000012660150402106070015067 0ustar00##
# Outputs RDoc markup as paragraphs with inline markup only.

class RDoc::Markup::ToHtmlSnippet < RDoc::Markup::ToHtml

  ##
  # After this many characters the input will be cut off.

  attr_reader :character_limit

  ##
  # The number of characters seen so far.

  attr_reader :characters # :nodoc:

  ##
  # The attribute bitmask

  attr_reader :mask

  ##
  # After this many paragraphs the input will be cut off.

  attr_reader :paragraph_limit

  ##
  # Count of paragraphs found

  attr_reader :paragraphs

  ##
  # Creates a new ToHtmlSnippet formatter that will cut off the input on the
  # next word boundary after the given number of +characters+ or +paragraphs+
  # of text have been encountered.

  def initialize options, characters = 100, paragraphs = 3, markup = nil
    super options, markup

    @character_limit = characters
    @paragraph_limit = paragraphs

    @characters = 0
    @mask       = 0
    @paragraphs = 0

    @markup.add_special RDoc::CrossReference::CROSSREF_REGEXP, :CROSSREF
  end

  ##
  # Adds +heading+ to the output as a paragraph

  def accept_heading heading
    @res << "<p>#{to_html heading.text}\n"

    add_paragraph
  end

  ##
  # Raw sections are untrusted and ignored

  alias accept_raw ignore

  ##
  # Rules are ignored

  alias accept_rule ignore

  def accept_paragraph paragraph
    para = @in_list_entry.last || "<p>"

    text = paragraph.text @hard_break

    @res << "#{para}#{wrap to_html text}\n"

    add_paragraph
  end

  ##
  # Finishes consumption of +list_item+

  def accept_list_item_end list_item
  end

  ##
  # Prepares the visitor for consuming +list_item+

  def accept_list_item_start list_item
    @res << list_item_start(list_item, @list.last)
  end

  ##
  # Prepares the visitor for consuming +list+

  def accept_list_start list
    @list << list.type
    @res << html_list_name(list.type, true)
    @in_list_entry.push ''
  end

  ##
  # Adds +verbatim+ to the output

  def accept_verbatim verbatim
    throw :done if @characters >= @character_limit
    input = verbatim.text.rstrip

    text = truncate input
    text << ' ...' unless text == input

    super RDoc::Markup::Verbatim.new text

    add_paragraph
  end

  ##
  # Prepares the visitor for HTML snippet generation

  def start_accepting
    super

    @characters = 0
  end

  ##
  # Removes escaping from the cross-references in +special+

  def handle_special_CROSSREF special
    special.text.sub(/\A\\/, '')
  end

  ##
  # +special+ is a <code><br></code>

  def handle_special_HARD_BREAK special
    @characters -= 4
    '<br>'
  end

  ##
  # Lists are paragraphs, but notes and labels have a separator

  def list_item_start list_item, list_type
    throw :done if @characters >= @character_limit

    case list_type
    when :BULLET, :LALPHA, :NUMBER, :UALPHA then
      "<p>"
    when :LABEL, :NOTE then
      labels = Array(list_item.label).map do |label|
        to_html label
      end.join ', '

      labels << " &mdash; " unless labels.empty?

      start = "<p>#{labels}"
      @characters += 1 # try to include the label
      start
    else
      raise RDoc::Error, "Invalid list type: #{list_type.inspect}"
    end
  end

  ##
  # Returns just the text of +link+, +url+ is only used to determine the link
  # type.

  def gen_url url, text
    if url =~ /^rdoc-label:([^:]*)(?::(.*))?/ then
      type = "link"
    elsif url =~ /([A-Za-z]+):(.*)/ then
      type = $1
    else
      type = "http"
    end

    if (type == "http" or type == "https" or type == "link") and
       url =~ /\.(gif|png|jpg|jpeg|bmp)$/ then
      ''
    else
      text.sub(%r%^#{type}:/*%, '')
    end
  end

  ##
  # In snippets, there are no lists

  def html_list_name list_type, open_tag
    ''
  end

  ##
  # Throws +:done+ when paragraph_limit paragraphs have been encountered

  def add_paragraph
    @paragraphs += 1

    throw :done if @paragraphs >= @paragraph_limit
  end

  ##
  # Marks up +content+

  def convert content
    catch :done do
      return super
    end

    end_accepting
  end

  ##
  # Converts flow items +flow+

  def convert_flow flow
    throw :done if @characters >= @character_limit

    res = []
    @mask = 0

    flow.each do |item|
      case item
      when RDoc::Markup::AttrChanger then
        off_tags res, item
        on_tags  res, item
      when String then
        text = convert_string item
        res << truncate(text)
      when RDoc::Markup::Special then
        text = convert_special item
        res << truncate(text)
      else
        raise "Unknown flow element: #{item.inspect}"
      end

      if @characters >= @character_limit then
        off_tags res, RDoc::Markup::AttrChanger.new(0, @mask)
        break
      end
    end

    res << ' ...' if @characters >= @character_limit

    res.join
  end

  ##
  # Maintains a bitmask to allow HTML elements to be closed properly.  See
  # RDoc::Markup::Formatter.

  def on_tags res, item
    @mask ^= item.turn_on

    super
  end

  ##
  # Maintains a bitmask to allow HTML elements to be closed properly.  See
  # RDoc::Markup::Formatter.

  def off_tags res, item
    @mask ^= item.turn_off

    super
  end

  ##
  # Truncates +text+ at the end of the first word after the character_limit.

  def truncate text
    length = text.length
    characters = @characters
    @characters += length

    return text if @characters < @character_limit

    remaining = @character_limit - characters

    text =~ /\A(.{#{remaining},}?)(\s|$)/m # TODO word-break instead of \s?

    $1
  end

end

lib64/ruby/2.2.0/rdoc/markup/indented_paragraph.rb000064400000001554150402106070015476 0ustar00##
# An Indented Paragraph of text

class RDoc::Markup::IndentedParagraph < RDoc::Markup::Raw

  ##
  # The indent in number of spaces

  attr_reader :indent

  ##
  # Creates a new IndentedParagraph containing +parts+ indented with +indent+
  # spaces

  def initialize indent, *parts
    @indent = indent

    super(*parts)
  end

  def == other # :nodoc:
    super and indent == other.indent
  end

  ##
  # Calls #accept_indented_paragraph on +visitor+

  def accept visitor
    visitor.accept_indented_paragraph self
  end

  ##
  # Joins the raw paragraph text and converts inline HardBreaks to the
  # +hard_break+ text followed by the indent.

  def text hard_break = nil
    @parts.map do |part|
      if RDoc::Markup::HardBreak === part then
        '%1$s%3$*2$s' % [hard_break, @indent, ' '] if hard_break
      else
        part
      end
    end.join
  end

end

lib64/ruby/2.2.0/rdoc/markup/to_markdown.rb000064400000007134150402106070014203 0ustar00# :markup: markdown

##
# Outputs parsed markup as Markdown

class RDoc::Markup::ToMarkdown < RDoc::Markup::ToRdoc

  ##
  # Creates a new formatter that will output Markdown format text

  def initialize markup = nil
    super

    @headings[1] = ['# ',      '']
    @headings[2] = ['## ',     '']
    @headings[3] = ['### ',    '']
    @headings[4] = ['#### ',   '']
    @headings[5] = ['##### ',  '']
    @headings[6] = ['###### ', '']

    add_special_RDOCLINK
    add_special_TIDYLINK

    @hard_break = "  \n"
  end

  ##
  # Maps attributes to HTML sequences

  def init_tags
    add_tag :BOLD, '**', '**'
    add_tag :EM,   '*',  '*'
    add_tag :TT,   '`',  '`'
  end

  ##
  # Adds a newline to the output

  def handle_special_HARD_BREAK special
    "  \n"
  end

  ##
  # Finishes consumption of `list`

  def accept_list_end list
    @res << "\n"

    super
  end

  ##
  # Finishes consumption of `list_item`

  def accept_list_item_end list_item
    width = case @list_type.last
            when :BULLET then
              4
            when :NOTE, :LABEL then
              use_prefix

              4
            else
              @list_index[-1] = @list_index.last.succ
              4
            end

    @indent -= width
  end

  ##
  # Prepares the visitor for consuming `list_item`

  def accept_list_item_start list_item
    type = @list_type.last

    case type
    when :NOTE, :LABEL then
      bullets = Array(list_item.label).map do |label|
        attributes(label).strip
      end.join "\n"

      bullets << "\n:"

      @prefix = ' ' * @indent
      @indent += 4
      @prefix << bullets + (' ' * (@indent - 1))
    else
      bullet = type == :BULLET ? '*' : @list_index.last.to_s + '.'
      @prefix = (' ' * @indent) + bullet.ljust(4)

      @indent += 4
    end
  end

  ##
  # Prepares the visitor for consuming `list`

  def accept_list_start list
    case list.type
    when :BULLET, :LABEL, :NOTE then
      @list_index << nil
    when :LALPHA, :NUMBER, :UALPHA then
      @list_index << 1
    else
      raise RDoc::Error, "invalid list type #{list.type}"
    end

    @list_width << 4
    @list_type << list.type
  end

  ##
  # Adds `rule` to the output

  def accept_rule rule
    use_prefix or @res << ' ' * @indent
    @res << '-' * 3
    @res << "\n"
  end

  ##
  # Outputs `verbatim` indented 4 columns

  def accept_verbatim verbatim
    indent = ' ' * (@indent + 4)

    verbatim.parts.each do |part|
      @res << indent unless part == "\n"
      @res << part
    end

    @res << "\n" unless @res =~ /\n\z/
  end

  ##
  # Creates a Markdown-style URL from +url+ with +text+.

  def gen_url url, text
    scheme, url, = parse_url url

    "[#{text.sub(%r{^#{scheme}:/*}i, '')}](#{url})"
  end

  ##
  # Handles <tt>rdoc-</tt> type links for footnotes.

  def handle_rdoc_link url
    case url
    when /^rdoc-ref:/ then
      $'
    when /^rdoc-label:footmark-(\d+)/ then
      "[^#{$1}]:"
    when /^rdoc-label:foottext-(\d+)/ then
      "[^#{$1}]"
    when /^rdoc-label:label-/ then
      gen_url url, $'
    when /^rdoc-image:/ then
      "![](#{$'})"
    when /^rdoc-[a-z]+:/ then
      $'
    end
  end

  ##
  # Converts the RDoc markup tidylink into a Markdown.style link.

  def handle_special_TIDYLINK special
    text = special.text

    return text unless text =~ /\{(.*?)\}\[(.*?)\]/ or text =~ /(\S+)\[(.*?)\]/

    label = $1
    url   = $2

    if url =~ /^rdoc-label:foot/ then
      handle_rdoc_link url
    else
      gen_url url, label
    end
  end

  ##
  # Converts the rdoc-...: links into a Markdown.style links.

  def handle_special_RDOCLINK special
    handle_rdoc_link special.text
  end

end

lib64/ruby/2.2.0/rdoc/markup/to_ansi.rb000064400000004030150402106070013303 0ustar00##
# Outputs RDoc markup with vibrant ANSI color!

class RDoc::Markup::ToAnsi < RDoc::Markup::ToRdoc

  ##
  # Creates a new ToAnsi visitor that is ready to output vibrant ANSI color!

  def initialize markup = nil
    super

    @headings.clear
    @headings[1] = ["\e[1;32m", "\e[m"] # bold
    @headings[2] = ["\e[4;32m", "\e[m"] # underline
    @headings[3] = ["\e[32m",   "\e[m"] # just green
  end

  ##
  # Maps attributes to ANSI sequences

  def init_tags
    add_tag :BOLD, "\e[1m", "\e[m"
    add_tag :TT,   "\e[7m", "\e[m"
    add_tag :EM,   "\e[4m", "\e[m"
  end

  ##
  # Overrides indent width to ensure output lines up correctly.

  def accept_list_item_end list_item
    width = case @list_type.last
            when :BULLET then
              2
            when :NOTE, :LABEL then
              if @prefix then
                @res << @prefix.strip
                @prefix = nil
              end

              @res << "\n" unless res.length == 1
              2
            else
              bullet = @list_index.last.to_s
              @list_index[-1] = @list_index.last.succ
              bullet.length + 2
            end

    @indent -= width
  end

  ##
  # Adds coloring to note and label list items

  def accept_list_item_start list_item
    bullet = case @list_type.last
             when :BULLET then
               '*'
             when :NOTE, :LABEL then
               labels = Array(list_item.label).map do |label|
                 attributes(label).strip
               end.join "\n"

               labels << ":\n" unless labels.empty?

               labels
             else
               @list_index.last.to_s + '.'
             end

    case @list_type.last
    when :NOTE, :LABEL then
      @indent += 2
      @prefix = bullet + (' ' * @indent)
    else
      @prefix = (' ' * @indent) + bullet.ljust(bullet.length + 1)

      width = bullet.gsub(/\e\[[\d;]*m/, '').length + 1

      @indent += width
    end
  end

  ##
  # Starts accepting with a reset screen

  def start_accepting
    super

    @res = ["\e[0m"]
  end

end

lib64/ruby/2.2.0/rdoc/markup/to_label.rb000064400000003460150402106070013436 0ustar00require 'cgi'

##
# Creates HTML-safe labels suitable for use in id attributes.  Tidylinks are
# converted to their link part and cross-reference links have the suppression
# marks removed (\\SomeClass is converted to SomeClass).

class RDoc::Markup::ToLabel < RDoc::Markup::Formatter

  attr_reader :res # :nodoc:

  ##
  # Creates a new formatter that will output HTML-safe labels

  def initialize markup = nil
    super nil, markup

    @markup.add_special RDoc::CrossReference::CROSSREF_REGEXP, :CROSSREF
    @markup.add_special(/(((\{.*?\})|\b\S+?)\[\S+?\])/, :TIDYLINK)

    add_tag :BOLD, '', ''
    add_tag :TT,   '', ''
    add_tag :EM,   '', ''

    @res = []
  end

  ##
  # Converts +text+ to an HTML-safe label

  def convert text
    label = convert_flow @am.flow text

    CGI.escape(label).gsub('%', '-').sub(/^-/, '')
  end

  ##
  # Converts the CROSSREF +special+ to plain text, removing the suppression
  # marker, if any

  def handle_special_CROSSREF special
    text = special.text

    text.sub(/^\\/, '')
  end

  ##
  # Converts the TIDYLINK +special+ to just the text part

  def handle_special_TIDYLINK special
    text = special.text

    return text unless text =~ /\{(.*?)\}\[(.*?)\]/ or text =~ /(\S+)\[(.*?)\]/

    $1
  end

  alias accept_blank_line         ignore
  alias accept_block_quote        ignore
  alias accept_heading            ignore
  alias accept_list_end           ignore
  alias accept_list_item_end      ignore
  alias accept_list_item_start    ignore
  alias accept_list_start         ignore
  alias accept_paragraph          ignore
  alias accept_raw                ignore
  alias accept_rule               ignore
  alias accept_verbatim           ignore
  alias end_accepting             ignore
  alias handle_special_HARD_BREAK ignore
  alias start_accepting           ignore

end

lib64/ruby/2.2.0/rdoc/markup/include.rb000064400000001437150402106070013302 0ustar00##
# A file included at generation time.  Objects of this class are created by
# RDoc::RD for an extension-less include.
#
# This implementation in incomplete.

class RDoc::Markup::Include

  ##
  # The filename to be included, without extension

  attr_reader :file

  ##
  # Directories to search for #file

  attr_reader :include_path

  ##
  # Creates a new include that will import +file+ from +include_path+

  def initialize file, include_path
    @file = file
    @include_path = include_path
  end

  def == other # :nodoc:
    self.class === other and
      @file == other.file and @include_path == other.include_path
  end

  def pretty_print q # :nodoc:
    q.group 2, '[incl ', ']' do
      q.text file
      q.breakable
      q.text 'from '
      q.pp include_path
    end
  end

end

lib64/ruby/2.2.0/rdoc/markup/document.rb000064400000006172150402106070013476 0ustar00##
# A Document containing lists, headings, paragraphs, etc.

class RDoc::Markup::Document

  include Enumerable

  ##
  # The file this document was created from.  See also
  # RDoc::ClassModule#add_comment

  attr_reader :file

  ##
  # If a heading is below the given level it will be omitted from the
  # table_of_contents

  attr_accessor :omit_headings_below

  ##
  # The parts of the Document

  attr_reader :parts

  ##
  # Creates a new Document with +parts+

  def initialize *parts
    @parts = []
    @parts.concat parts

    @file = nil
    @omit_headings_from_table_of_contents_below = nil
  end

  ##
  # Appends +part+ to the document

  def << part
    case part
    when RDoc::Markup::Document then
      unless part.empty? then
        parts.concat part.parts
        parts << RDoc::Markup::BlankLine.new
      end
    when String then
      raise ArgumentError,
            "expected RDoc::Markup::Document and friends, got String" unless
        part.empty?
    else
      parts << part
    end
  end

  def == other # :nodoc:
    self.class == other.class and
      @file == other.file and
      @parts == other.parts
  end

  ##
  # Runs this document and all its #items through +visitor+

  def accept visitor
    visitor.start_accepting

    visitor.accept_document self

    visitor.end_accepting
  end

  ##
  # Concatenates the given +parts+ onto the document

  def concat parts
    self.parts.concat parts
  end

  ##
  # Enumerator for the parts of this document

  def each &block
    @parts.each(&block)
  end

  ##
  # Does this document have no parts?

  def empty?
    @parts.empty? or (@parts.length == 1 and merged? and @parts.first.empty?)
  end

  ##
  # The file this Document was created from.

  def file= location
    @file = case location
            when RDoc::TopLevel then
              location.relative_name
            else
              location
            end
  end

  ##
  # When this is a collection of documents (#file is not set and this document
  # contains only other documents as its direct children) #merge replaces
  # documents in this class with documents from +other+ when the file matches
  # and adds documents from +other+ when the files do not.
  #
  # The information in +other+ is preferred over the receiver

  def merge other
    if empty? then
      @parts = other.parts
      return self
    end

    other.parts.each do |other_part|
      self.parts.delete_if do |self_part|
        self_part.file and self_part.file == other_part.file
      end

      self.parts << other_part
    end

    self
  end

  ##
  # Does this Document contain other Documents?

  def merged?
    RDoc::Markup::Document === @parts.first
  end

  def pretty_print q # :nodoc:
    start = @file ? "[doc (#{@file}): " : '[doc: '

    q.group 2, start, ']' do
      q.seplist @parts do |part|
        q.pp part
      end
    end
  end

  ##
  # Appends +parts+ to the document

  def push *parts
    self.parts.concat parts
  end

  ##
  # Returns an Array of headings in the document.
  #
  # Require 'rdoc/markup/formatter' before calling this method.

  def table_of_contents
    accept RDoc::Markup::ToTableOfContents.to_toc
  end

end

lib64/ruby/2.2.0/rdoc/markup/list_item.rb000064400000003274150402106070013651 0ustar00##
# An item within a List that contains paragraphs, headings, etc.
#
# For BULLET, NUMBER, LALPHA and UALPHA lists, the label will always be nil.
# For NOTE and LABEL lists, the list label may contain:
#
# * a single String for a single label
# * an Array of Strings for a list item with multiple terms
# * nil for an extra description attached to a previously labeled list item

class RDoc::Markup::ListItem

  ##
  # The label for the ListItem

  attr_accessor :label

  ##
  # Parts of the ListItem

  attr_reader :parts

  ##
  # Creates a new ListItem with an optional +label+ containing +parts+

  def initialize label = nil, *parts
    @label = label
    @parts = []
    @parts.concat parts
  end

  ##
  # Appends +part+ to the ListItem

  def << part
    @parts << part
  end

  def == other # :nodoc:
    self.class == other.class and
      @label == other.label and
      @parts == other.parts
  end

  ##
  # Runs this list item and all its #parts through +visitor+

  def accept visitor
    visitor.accept_list_item_start self

    @parts.each do |part|
      part.accept visitor
    end

    visitor.accept_list_item_end self
  end

  ##
  # Is the ListItem empty?

  def empty?
    @parts.empty?
  end

  ##
  # Length of parts in the ListItem

  def length
    @parts.length
  end

  def pretty_print q # :nodoc:
    q.group 2, '[item: ', ']' do
      case @label
      when Array then
        q.pp @label
        q.text ';'
        q.breakable
      when String then
        q.pp @label
        q.text ';'
        q.breakable
      end

      q.seplist @parts do |part|
        q.pp part
      end
    end
  end

  ##
  # Adds +parts+ to the ListItem

  def push *parts
    @parts.concat parts
  end

end

lib64/ruby/2.2.0/rdoc/markup/rule.rb000064400000000435150402106100012615 0ustar00##
# A horizontal rule with a weight

class RDoc::Markup::Rule < Struct.new :weight

  ##
  # Calls #accept_rule on +visitor+

  def accept visitor
    visitor.accept_rule self
  end

  def pretty_print q # :nodoc:
    q.group 2, '[rule:', ']' do
      q.pp weight
    end
  end

end

lib64/ruby/2.2.0/rdoc/markup/attr_changer.rb000064400000000612150402106100014304 0ustar00class RDoc::Markup

  AttrChanger = Struct.new :turn_on, :turn_off # :nodoc:

end

##
# An AttrChanger records a change in attributes. It contains a bitmap of the
# attributes to turn on, and a bitmap of those to turn off.

class RDoc::Markup::AttrChanger

  def to_s # :nodoc:
    "Attr: +#{turn_on}/-#{turn_off}"
  end

  def inspect # :nodoc:
    '+%d/-%d' % [turn_on, turn_off]
  end

end

lib64/ruby/2.2.0/rdoc/markup/formatter.rb000064400000012444150402106100013654 0ustar00##
# Base class for RDoc markup formatters
#
# Formatters are a visitor that converts an RDoc::Markup tree (from a comment)
# into some kind of output.  RDoc ships with formatters for converting back to
# rdoc, ANSI text, HTML, a Table of Contents and other formats.
#
# If you'd like to write your own Formatter use
# RDoc::Markup::FormatterTestCase.  If you're writing a text-output formatter
# use RDoc::Markup::TextFormatterTestCase which provides extra test cases.

class RDoc::Markup::Formatter

  ##
  # Tag for inline markup containing a +bit+ for the bitmask and the +on+ and
  # +off+ triggers.

  InlineTag = Struct.new(:bit, :on, :off)

  ##
  # Converts a target url to one that is relative to a given path

  def self.gen_relative_url path, target
    from        = File.dirname path
    to, to_file = File.split target

    from = from.split "/"
    to   = to.split "/"

    from.delete '.'
    to.delete '.'

    while from.size > 0 and to.size > 0 and from[0] == to[0] do
      from.shift
      to.shift
    end

    from.fill ".."
    from.concat to
    from << to_file
    File.join(*from)
  end

  ##
  # Creates a new Formatter

  def initialize options, markup = nil
    @options = options

    @markup = markup || RDoc::Markup.new
    @am     = @markup.attribute_manager
    @am.add_special(/<br>/, :HARD_BREAK)

    @attributes = @am.attributes

    @attr_tags = []

    @in_tt = 0
    @tt_bit = @attributes.bitmap_for :TT

    @hard_break = ''
    @from_path = '.'
  end

  ##
  # Adds +document+ to the output

  def accept_document document
    document.parts.each do |item|
      case item
      when RDoc::Markup::Document then # HACK
        accept_document item
      else
        item.accept self
      end
    end
  end

  ##
  # Adds a special for links of the form rdoc-...:

  def add_special_RDOCLINK
    @markup.add_special(/rdoc-[a-z]+:[^\s\]]+/, :RDOCLINK)
  end

  ##
  # Adds a special for links of the form {<text>}[<url>] and <word>[<url>]

  def add_special_TIDYLINK
    @markup.add_special(/(?:
                          \{.*?\} |    # multi-word label
                          \b[^\s{}]+? # single-word label
                         )

                         \[\S+?\]     # link target
                        /x, :TIDYLINK)
  end

  ##
  # Add a new set of tags for an attribute. We allow separate start and end
  # tags for flexibility

  def add_tag(name, start, stop)
    attr = @attributes.bitmap_for name
    @attr_tags << InlineTag.new(attr, start, stop)
  end

  ##
  # Allows +tag+ to be decorated with additional information.

  def annotate(tag)
    tag
  end

  ##
  # Marks up +content+

  def convert content
    @markup.convert content, self
  end

  ##
  # Converts flow items +flow+

  def convert_flow(flow)
    res = []

    flow.each do |item|
      case item
      when String then
        res << convert_string(item)
      when RDoc::Markup::AttrChanger then
        off_tags res, item
        on_tags res, item
      when RDoc::Markup::Special then
        res << convert_special(item)
      else
        raise "Unknown flow element: #{item.inspect}"
      end
    end

    res.join
  end

  ##
  # Converts added specials.  See RDoc::Markup#add_special

  def convert_special special
    return special.text if in_tt?

    handled = false

    @attributes.each_name_of special.type do |name|
      method_name = "handle_special_#{name}"

      if respond_to? method_name then
        special.text = send method_name, special
        handled = true
      end
    end

    unless handled then
      special_name = @attributes.as_string special.type

      raise RDoc::Error, "Unhandled special #{special_name}: #{special}"
    end

    special.text
  end

  ##
  # Converts a string to be fancier if desired

  def convert_string string
    string
  end

  ##
  # Use ignore in your subclass to ignore the content of a node.
  #
  #   ##
  #   # We don't support raw nodes in ToNoRaw
  #
  #   alias accept_raw ignore

  def ignore *node
  end

  ##
  # Are we currently inside tt tags?

  def in_tt?
    @in_tt > 0
  end

  ##
  # Turns on tags for +item+ on +res+

  def on_tags res, item
    attr_mask = item.turn_on
    return if attr_mask.zero?

    @attr_tags.each do |tag|
      if attr_mask & tag.bit != 0 then
        res << annotate(tag.on)
        @in_tt += 1 if tt? tag
      end
    end
  end

  ##
  # Turns off tags for +item+ on +res+

  def off_tags res, item
    attr_mask = item.turn_off
    return if attr_mask.zero?

    @attr_tags.reverse_each do |tag|
      if attr_mask & tag.bit != 0 then
        @in_tt -= 1 if tt? tag
        res << annotate(tag.off)
      end
    end
  end

  ##
  # Extracts and a scheme, url and an anchor id from +url+ and returns them.

  def parse_url url
    case url
    when /^rdoc-label:([^:]*)(?::(.*))?/ then
      scheme = 'link'
      path   = "##{$1}"
      id     = " id=\"#{$2}\"" if $2
    when /([A-Za-z]+):(.*)/ then
      scheme = $1.downcase
      path   = $2
    when /^#/ then
    else
      scheme = 'http'
      path   = url
      url    = url
    end

    if scheme == 'link' then
      url = if path[0, 1] == '#' then # is this meaningful?
              path
            else
              self.class.gen_relative_url @from_path, path
            end
    end

    [scheme, url, id]
  end

  ##
  # Is +tag+ a tt tag?

  def tt? tag
    tag.bit == @tt_bit
  end

end

lib64/ruby/2.2.0/rdoc/markup/to_rdoc.rb000064400000014171150402106100013301 0ustar00##
# Outputs RDoc markup as RDoc markup! (mostly)

class RDoc::Markup::ToRdoc < RDoc::Markup::Formatter

  ##
  # Current indent amount for output in characters

  attr_accessor :indent

  ##
  # Output width in characters

  attr_accessor :width

  ##
  # Stack of current list indexes for alphabetic and numeric lists

  attr_reader :list_index

  ##
  # Stack of list types

  attr_reader :list_type

  ##
  # Stack of list widths for indentation

  attr_reader :list_width

  ##
  # Prefix for the next list item.  See #use_prefix

  attr_reader :prefix

  ##
  # Output accumulator

  attr_reader :res

  ##
  # Creates a new formatter that will output (mostly) \RDoc markup

  def initialize markup = nil
    super nil, markup

    @markup.add_special(/\\\S/, :SUPPRESSED_CROSSREF)
    @width = 78
    init_tags

    @headings = {}
    @headings.default = []

    @headings[1] = ['= ',      '']
    @headings[2] = ['== ',     '']
    @headings[3] = ['=== ',    '']
    @headings[4] = ['==== ',   '']
    @headings[5] = ['===== ',  '']
    @headings[6] = ['====== ', '']

    @hard_break = "\n"
  end

  ##
  # Maps attributes to HTML sequences

  def init_tags
    add_tag :BOLD, "<b>", "</b>"
    add_tag :TT,   "<tt>", "</tt>"
    add_tag :EM,   "<em>", "</em>"
  end

  ##
  # Adds +blank_line+ to the output

  def accept_blank_line blank_line
    @res << "\n"
  end

  ##
  # Adds +paragraph+ to the output

  def accept_block_quote block_quote
    @indent += 2

    block_quote.parts.each do |part|
      @prefix = '> '

      part.accept self
    end

    @indent -= 2
  end

  ##
  # Adds +heading+ to the output

  def accept_heading heading
    use_prefix or @res << ' ' * @indent
    @res << @headings[heading.level][0]
    @res << attributes(heading.text)
    @res << @headings[heading.level][1]
    @res << "\n"
  end

  ##
  # Finishes consumption of +list+

  def accept_list_end list
    @list_index.pop
    @list_type.pop
    @list_width.pop
  end

  ##
  # Finishes consumption of +list_item+

  def accept_list_item_end list_item
    width = case @list_type.last
            when :BULLET then
              2
            when :NOTE, :LABEL then
              if @prefix then
                @res << @prefix.strip
                @prefix = nil
              end

              @res << "\n"
              2
            else
              bullet = @list_index.last.to_s
              @list_index[-1] = @list_index.last.succ
              bullet.length + 2
            end

    @indent -= width
  end

  ##
  # Prepares the visitor for consuming +list_item+

  def accept_list_item_start list_item
    type = @list_type.last

    case type
    when :NOTE, :LABEL then
      bullets = Array(list_item.label).map do |label|
        attributes(label).strip
      end.join "\n"

      bullets << ":\n" unless bullets.empty?

      @prefix = ' ' * @indent
      @indent += 2
      @prefix << bullets + (' ' * @indent)
    else
      bullet = type == :BULLET ? '*' :  @list_index.last.to_s + '.'
      @prefix = (' ' * @indent) + bullet.ljust(bullet.length + 1)
      width = bullet.length + 1
      @indent += width
    end
  end

  ##
  # Prepares the visitor for consuming +list+

  def accept_list_start list
    case list.type
    when :BULLET then
      @list_index << nil
      @list_width << 1
    when :LABEL, :NOTE then
      @list_index << nil
      @list_width << 2
    when :LALPHA then
      @list_index << 'a'
      @list_width << list.items.length.to_s.length
    when :NUMBER then
      @list_index << 1
      @list_width << list.items.length.to_s.length
    when :UALPHA then
      @list_index << 'A'
      @list_width << list.items.length.to_s.length
    else
      raise RDoc::Error, "invalid list type #{list.type}"
    end

    @list_type << list.type
  end

  ##
  # Adds +paragraph+ to the output

  def accept_paragraph paragraph
    text = paragraph.text @hard_break
    wrap attributes text
  end

  ##
  # Adds +paragraph+ to the output

  def accept_indented_paragraph paragraph
    @indent += paragraph.indent
    text = paragraph.text @hard_break
    wrap attributes text
    @indent -= paragraph.indent
  end

  ##
  # Adds +raw+ to the output

  def accept_raw raw
    @res << raw.parts.join("\n")
  end

  ##
  # Adds +rule+ to the output

  def accept_rule rule
    use_prefix or @res << ' ' * @indent
    @res << '-' * (@width - @indent)
    @res << "\n"
  end

  ##
  # Outputs +verbatim+ indented 2 columns

  def accept_verbatim verbatim
    indent = ' ' * (@indent + 2)

    verbatim.parts.each do |part|
      @res << indent unless part == "\n"
      @res << part
    end

    @res << "\n" unless @res =~ /\n\z/
  end

  ##
  # Applies attribute-specific markup to +text+ using RDoc::AttributeManager

  def attributes text
    flow = @am.flow text.dup
    convert_flow flow
  end

  ##
  # Returns the generated output

  def end_accepting
    @res.join
  end

  ##
  # Removes preceding \\ from the suppressed crossref +special+

  def handle_special_SUPPRESSED_CROSSREF special
    text = special.text
    text = text.sub('\\', '') unless in_tt?
    text
  end

  ##
  # Adds a newline to the output

  def handle_special_HARD_BREAK special
    "\n"
  end

  ##
  # Prepares the visitor for text generation

  def start_accepting
    @res = [""]
    @indent = 0
    @prefix = nil

    @list_index = []
    @list_type  = []
    @list_width = []
  end

  ##
  # Adds the stored #prefix to the output and clears it.  Lists generate a
  # prefix for later consumption.

  def use_prefix
    prefix, @prefix = @prefix, nil
    @res << prefix if prefix

    prefix
  end

  ##
  # Wraps +text+ to #width

  def wrap text
    return unless text && !text.empty?

    text_len = @width - @indent

    text_len = 20 if text_len < 20

    re = /^(.{0,#{text_len}})[ \n]/
    next_prefix = ' ' * @indent

    prefix = @prefix || next_prefix
    @prefix = nil

    @res << prefix

    while text.length > text_len
      if text =~ re then
        @res << $1
        text.slice!(0, $&.length)
      else
        @res << text.slice!(0, text_len)
      end

      @res << "\n" << next_prefix
    end

    if text.empty? then
      @res.pop
      @res.pop
    else
      @res << text
      @res << "\n"
    end
  end

end

lib64/ruby/2.2.0/rdoc/markup/to_tt_only.rb000064400000004361150402106100014042 0ustar00##
# Extracts sections of text enclosed in plus, tt or code.  Used to discover
# undocumented parameters.

class RDoc::Markup::ToTtOnly < RDoc::Markup::Formatter

  ##
  # Stack of list types

  attr_reader :list_type

  ##
  # Output accumulator

  attr_reader :res

  ##
  # Creates a new tt-only formatter.

  def initialize markup = nil
    super nil, markup

    add_tag :TT, nil, nil
  end

  ##
  # Adds tts from +block_quote+ to the output

  def accept_block_quote block_quote
    tt_sections block_quote.text
  end

  ##
  # Pops the list type for +list+ from #list_type

  def accept_list_end list
    @list_type.pop
  end

  ##
  # Pushes the list type for +list+ onto #list_type

  def accept_list_start list
    @list_type << list.type
  end

  ##
  # Prepares the visitor for consuming +list_item+

  def accept_list_item_start list_item
    case @list_type.last
    when :NOTE, :LABEL then
      Array(list_item.label).map do |label|
        tt_sections label
      end.flatten
    end
  end

  ##
  # Adds +paragraph+ to the output

  def accept_paragraph paragraph
    tt_sections(paragraph.text)
  end

  ##
  # Does nothing to +markup_item+ because it doesn't have any user-built
  # content

  def do_nothing markup_item
  end

  alias accept_blank_line    do_nothing # :nodoc:
  alias accept_heading       do_nothing # :nodoc:
  alias accept_list_item_end do_nothing # :nodoc:
  alias accept_raw           do_nothing # :nodoc:
  alias accept_rule          do_nothing # :nodoc:
  alias accept_verbatim      do_nothing # :nodoc:

  ##
  # Extracts tt sections from +text+

  def tt_sections text
    flow = @am.flow text.dup

    flow.each do |item|
      case item
      when String then
        @res << item if in_tt?
      when RDoc::Markup::AttrChanger then
        off_tags res, item
        on_tags res, item
      when RDoc::Markup::Special then
        @res << convert_special(item) if in_tt? # TODO can this happen?
      else
        raise "Unknown flow element: #{item.inspect}"
      end
    end

    res
  end

  ##
  # Returns an Array of items that were wrapped in plus, tt or code.

  def end_accepting
    @res.compact
  end

  ##
  # Prepares the visitor for gathering tt sections

  def start_accepting
    @res = []

    @list_type = []
  end

end

lib64/ruby/2.2.0/rdoc/markup/raw.rb000064400000001712150402106100012436 0ustar00##
# A section of text that is added to the output document as-is

class RDoc::Markup::Raw

  ##
  # The component parts of the list

  attr_reader :parts

  ##
  # Creates a new Raw containing +parts+

  def initialize *parts
    @parts = []
    @parts.concat parts
  end

  ##
  # Appends +text+

  def << text
    @parts << text
  end

  def == other # :nodoc:
    self.class == other.class and @parts == other.parts
  end

  ##
  # Calls #accept_raw+ on +visitor+

  def accept visitor
    visitor.accept_raw self
  end

  ##
  # Appends +other+'s parts

  def merge other
    @parts.concat other.parts
  end

  def pretty_print q # :nodoc:
    self.class.name =~ /.*::(\w{1,4})/i

    q.group 2, "[#{$1.downcase}: ", ']' do
      q.seplist @parts do |part|
        q.pp part
      end
    end
  end

  ##
  # Appends +texts+ onto this Paragraph

  def push *texts
    self.parts.concat texts
  end

  ##
  # The raw text

  def text
    @parts.join ' '
  end

end

lib64/ruby/2.2.0/rdoc/markup/attribute_manager.rb000064400000017646150402106100015357 0ustar00##
# Manages changes of attributes in a block of text

class RDoc::Markup::AttributeManager

  ##
  # The NUL character

  NULL = "\000".freeze

  #--
  # We work by substituting non-printing characters in to the text. For now
  # I'm assuming that I can substitute a character in the range 0..8 for a 7
  # bit character without damaging the encoded string, but this might be
  # optimistic
  #++

  A_PROTECT = 004 # :nodoc:

  ##
  # Special mask character to prevent inline markup handling

  PROTECT_ATTR = A_PROTECT.chr # :nodoc:

  ##
  # The attributes enabled for this markup object.

  attr_reader :attributes

  ##
  # This maps delimiters that occur around words (such as *bold* or +tt+)
  # where the start and end delimiters and the same. This lets us optimize
  # the regexp

  attr_reader :matching_word_pairs

  ##
  # And this is used when the delimiters aren't the same. In this case the
  # hash maps a pattern to the attribute character

  attr_reader :word_pair_map

  ##
  # This maps HTML tags to the corresponding attribute char

  attr_reader :html_tags

  ##
  # A \ in front of a character that would normally be processed turns off
  # processing. We do this by turning \< into <#{PROTECT}

  attr_reader :protectable

  ##
  # And this maps _special_ sequences to a name. A special sequence is
  # something like a WikiWord

  attr_reader :special

  ##
  # Creates a new attribute manager that understands bold, emphasized and
  # teletype text.

  def initialize
    @html_tags = {}
    @matching_word_pairs = {}
    @protectable = %w[<]
    @special = []
    @word_pair_map = {}
    @attributes = RDoc::Markup::Attributes.new

    add_word_pair "*", "*", :BOLD
    add_word_pair "_", "_", :EM
    add_word_pair "+", "+", :TT

    add_html "em", :EM
    add_html "i",  :EM
    add_html "b",  :BOLD
    add_html "tt",   :TT
    add_html "code", :TT
  end

  ##
  # Return an attribute object with the given turn_on and turn_off bits set

  def attribute(turn_on, turn_off)
    RDoc::Markup::AttrChanger.new turn_on, turn_off
  end

  ##
  # Changes the current attribute from +current+ to +new+

  def change_attribute current, new
    diff = current ^ new
    attribute(new & diff, current & diff)
  end

  ##
  # Used by the tests to change attributes by name from +current_set+ to
  # +new_set+

  def changed_attribute_by_name current_set, new_set
    current = new = 0
    current_set.each do |name|
      current |= @attributes.bitmap_for(name)
    end

    new_set.each do |name|
      new |= @attributes.bitmap_for(name)
    end

    change_attribute(current, new)
  end

  ##
  # Copies +start_pos+ to +end_pos+ from the current string

  def copy_string(start_pos, end_pos)
    res = @str[start_pos...end_pos]
    res.gsub!(/\000/, '')
    res
  end

  ##
  # Map attributes like <b>text</b>to the sequence
  # \001\002<char>\001\003<char>, where <char> is a per-attribute specific
  # character

  def convert_attrs(str, attrs)
    # first do matching ones
    tags = @matching_word_pairs.keys.join("")

    re = /(^|\W)([#{tags}])([#\\]?[\w:.\/-]+?\S?)\2(\W|$)/

    1 while str.gsub!(re) do
      attr = @matching_word_pairs[$2]
      attrs.set_attrs($`.length + $1.length + $2.length, $3.length, attr)
      $1 + NULL * $2.length + $3 + NULL * $2.length + $4
    end

    # then non-matching
    unless @word_pair_map.empty? then
      @word_pair_map.each do |regexp, attr|
        str.gsub!(regexp) {
          attrs.set_attrs($`.length + $1.length, $2.length, attr)
          NULL * $1.length + $2 + NULL * $3.length
        }
      end
    end
  end

  ##
  # Converts HTML tags to RDoc attributes

  def convert_html(str, attrs)
    tags = @html_tags.keys.join '|'

    1 while str.gsub!(/<(#{tags})>(.*?)<\/\1>/i) {
      attr = @html_tags[$1.downcase]
      html_length = $1.length + 2
      seq = NULL * html_length
      attrs.set_attrs($`.length + html_length, $2.length, attr)
      seq + $2 + seq + NULL
    }
  end

  ##
  # Converts special sequences to RDoc attributes

  def convert_specials str, attrs
    @special.each do |regexp, attribute|
      str.scan(regexp) do
        capture = $~.size == 1 ? 0 : 1

        s, e = $~.offset capture

        attrs.set_attrs s, e - s, attribute | @attributes.special
      end
    end
  end

  ##
  # Escapes special sequences of text to prevent conversion to RDoc

  def mask_protected_sequences
    # protect __send__, __FILE__, etc.
    @str.gsub!(/__([a-z]+)__/i,
      "_#{PROTECT_ATTR}_#{PROTECT_ATTR}\\1_#{PROTECT_ATTR}_#{PROTECT_ATTR}")
    @str.gsub!(/(\A|[^\\])\\([#{Regexp.escape @protectable.join}])/m,
               "\\1\\2#{PROTECT_ATTR}")
    @str.gsub!(/\\(\\[#{Regexp.escape @protectable.join}])/m, "\\1")
  end

  ##
  # Unescapes special sequences of text

  def unmask_protected_sequences
    @str.gsub!(/(.)#{PROTECT_ATTR}/, "\\1\000")
  end

  ##
  # Adds a markup class with +name+ for words wrapped in the +start+ and
  # +stop+ character.  To make words wrapped with "*" bold:
  #
  #   am.add_word_pair '*', '*', :BOLD

  def add_word_pair(start, stop, name)
    raise ArgumentError, "Word flags may not start with '<'" if
      start[0,1] == '<'

    bitmap = @attributes.bitmap_for name

    if start == stop then
      @matching_word_pairs[start] = bitmap
    else
      pattern = /(#{Regexp.escape start})(\S+)(#{Regexp.escape stop})/
      @word_pair_map[pattern] = bitmap
    end

    @protectable << start[0,1]
    @protectable.uniq!
  end

  ##
  # Adds a markup class with +name+ for words surrounded by HTML tag +tag+.
  # To process emphasis tags:
  #
  #   am.add_html 'em', :EM

  def add_html(tag, name)
    @html_tags[tag.downcase] = @attributes.bitmap_for name
  end

  ##
  # Adds a special handler for +pattern+ with +name+.  A simple URL handler
  # would be:
  #
  #   @am.add_special(/((https?:)\S+\w)/, :HYPERLINK)

  def add_special pattern, name
    @special << [pattern, @attributes.bitmap_for(name)]
  end

  ##
  # Processes +str+ converting attributes, HTML and specials

  def flow str
    @str = str

    mask_protected_sequences

    @attrs = RDoc::Markup::AttrSpan.new @str.length

    convert_attrs    @str, @attrs
    convert_html     @str, @attrs
    convert_specials @str, @attrs

    unmask_protected_sequences

    split_into_flow
  end

  ##
  # Debug method that prints a string along with its attributes

  def display_attributes
    puts
    puts @str.tr(NULL, "!")
    bit = 1
    16.times do |bno|
      line = ""
      @str.length.times do |i|
        if (@attrs[i] & bit) == 0
          line << " "
        else
          if bno.zero?
            line << "S"
          else
            line << ("%d" % (bno+1))
          end
        end
      end
      puts(line) unless line =~ /^ *$/
      bit <<= 1
    end
  end

  ##
  # Splits the string into chunks by attribute change

  def split_into_flow
    res = []
    current_attr = 0

    str_len = @str.length

    # skip leading invisible text
    i = 0
    i += 1 while i < str_len and @str[i].chr == "\0"
    start_pos = i

    # then scan the string, chunking it on attribute changes
    while i < str_len
      new_attr = @attrs[i]
      if new_attr != current_attr
        if i > start_pos
          res << copy_string(start_pos, i)
          start_pos = i
        end

        res << change_attribute(current_attr, new_attr)
        current_attr = new_attr

        if (current_attr & @attributes.special) != 0 then
          i += 1 while
            i < str_len and (@attrs[i] & @attributes.special) != 0

          res << RDoc::Markup::Special.new(current_attr,
                                           copy_string(start_pos, i))
          start_pos = i
          next
        end
      end

      # move on, skipping any invisible characters
      begin
        i += 1
      end while i < str_len and @str[i].chr == "\0"
    end

    # tidy up trailing text
    if start_pos < str_len
      res << copy_string(start_pos, str_len)
    end

    # and reset to all attributes off
    res << change_attribute(current_attr, 0) if current_attr != 0

    res
  end

end

lib64/ruby/2.2.0/rdoc/markup/inline.rb000064400000000130150402106100013114 0ustar00warn "requiring rdoc/markup/inline is deprecated and will be removed in RDoc 4." if $-w
lib64/ruby/2.2.0/rdoc/markup/hard_break.rb000064400000000640150402106100013726 0ustar00##
# A hard-break in the middle of a paragraph.

class RDoc::Markup::HardBreak

  @instance = new

  ##
  # RDoc::Markup::HardBreak is a singleton

  def self.new
    @instance
  end

  ##
  # Calls #accept_hard_break on +visitor+

  def accept visitor
    visitor.accept_hard_break self
  end

  def == other # :nodoc:
    self.class === other
  end

  def pretty_print q # :nodoc:
    q.text "[break]"
  end

end

lib64/ruby/2.2.0/rdoc/markup/blank_line.rb000064400000000551150402106100013743 0ustar00##
# An empty line.  This class is a singleton.

class RDoc::Markup::BlankLine

  @instance = new

  ##
  # RDoc::Markup::BlankLine is a singleton

  def self.new
    @instance
  end

  ##
  # Calls #accept_blank_line on +visitor+

  def accept visitor
    visitor.accept_blank_line self
  end

  def pretty_print q # :nodoc:
    q.text 'blankline'
  end

end

lib64/ruby/2.2.0/rdoc/markup/block_quote.rb000064400000000336150402106100014155 0ustar00##
# A quoted section which contains markup items.

class RDoc::Markup::BlockQuote < RDoc::Markup::Raw

  ##
  # Calls #accept_block_quote on +visitor+

  def accept visitor
    visitor.accept_block_quote self
  end

end

lib64/ruby/2.2.0/rdoc/markup/to_table_of_contents.rb000064400000003231150402106110016036 0ustar00##
# Extracts just the RDoc::Markup::Heading elements from a
# RDoc::Markup::Document to help build a table of contents

class RDoc::Markup::ToTableOfContents < RDoc::Markup::Formatter

  @to_toc = nil

  ##
  # Singleton for table-of-contents generation

  def self.to_toc
    @to_toc ||= new
  end

  ##
  # Output accumulator

  attr_reader :res

  ##
  # Omits headings with a level less than the given level.

  attr_accessor :omit_headings_below

  def initialize # :nodoc:
    super nil

    @omit_headings_below = nil
  end

  ##
  # Adds +document+ to the output, using its heading cutoff if present

  def accept_document document
    @omit_headings_below = document.omit_headings_below

    super
  end

  ##
  # Adds +heading+ to the table of contents

  def accept_heading heading
    @res << heading unless suppressed? heading
  end

  ##
  # Returns the table of contents

  def end_accepting
    @res
  end

  ##
  # Prepares the visitor for text generation

  def start_accepting
    @omit_headings_below = nil
    @res = []
  end

  ##
  # Returns true if +heading+ is below the display threshold

  def suppressed? heading
    return false unless @omit_headings_below

    heading.level > @omit_headings_below
  end

  # :stopdoc:
  alias accept_block_quote     ignore
  alias accept_raw             ignore
  alias accept_rule            ignore
  alias accept_blank_line      ignore
  alias accept_paragraph       ignore
  alias accept_verbatim        ignore
  alias accept_list_end        ignore
  alias accept_list_item_start ignore
  alias accept_list_item_end   ignore
  alias accept_list_end_bullet ignore
  alias accept_list_start      ignore
  # :startdoc:

end

lib64/ruby/2.2.0/rdoc/markup/text_formatter_test_case.rb000064400000004761150402106110016756 0ustar00##
# Test case for creating new plain-text RDoc::Markup formatters.  See also
# RDoc::Markup::FormatterTestCase
#
# See test_rdoc_markup_to_rdoc.rb for a complete example.
#
# Example:
#
#  class TestRDocMarkupToNewTextFormat < RDoc::Markup::TextFormatterTestCase
#
#    add_visitor_tests
#    add_text_tests
#
#    def setup
#      super
#
#      @to = RDoc::Markup::ToNewTextFormat.new
#    end
#
#    def accept_blank_line
#      assert_equal :junk, @to.res.join
#    end
#
#    # ...
#
#  end

class RDoc::Markup::TextFormatterTestCase < RDoc::Markup::FormatterTestCase

  ##
  # Adds test cases to the calling TestCase.

  def self.add_text_tests
    self.class_eval do

      ##
      # Test case that calls <tt>@to.accept_heading</tt>

      def test_accept_heading_indent
        @to.start_accepting
        @to.indent = 3
        @to.accept_heading @RM::Heading.new(1, 'Hello')

        accept_heading_indent
      end

      ##
      # Test case that calls <tt>@to.accept_rule</tt>

      def test_accept_rule_indent
        @to.start_accepting
        @to.indent = 3
        @to.accept_rule @RM::Rule.new(1)

        accept_rule_indent
      end

      ##
      # Test case that calls <tt>@to.accept_verbatim</tt>

      def test_accept_verbatim_indent
        @to.start_accepting
        @to.indent = 2
        @to.accept_verbatim @RM::Verbatim.new("hi\n", " world\n")

        accept_verbatim_indent
      end

      ##
      # Test case that calls <tt>@to.accept_verbatim</tt> with a big indent

      def test_accept_verbatim_big_indent
        @to.start_accepting
        @to.indent = 2
        @to.accept_verbatim @RM::Verbatim.new("hi\n", "world\n")

        accept_verbatim_big_indent
      end

      ##
      # Test case that calls <tt>@to.accept_paragraph</tt> with an indent

      def test_accept_paragraph_indent
        @to.start_accepting
        @to.indent = 3
        @to.accept_paragraph @RM::Paragraph.new(('words ' * 30).strip)

        accept_paragraph_indent
      end

      ##
      # Test case that calls <tt>@to.accept_paragraph</tt> with a long line

      def test_accept_paragraph_wrap
        @to.start_accepting
        @to.accept_paragraph @RM::Paragraph.new(('words ' * 30).strip)

        accept_paragraph_wrap
      end

      ##
      # Test case that calls <tt>@to.attributes</tt> with an escaped
      # cross-reference.  If this test doesn't pass something may be very
      # wrong.

      def test_attributes
        assert_equal 'Dog', @to.attributes("\\Dog")
      end

    end
  end

end

lib64/ruby/2.2.0/rdoc/markup/to_html_crossref.rb000064400000010457150402106110015230 0ustar00##
# Subclass of the RDoc::Markup::ToHtml class that supports looking up method
# names, classes, etc to create links.  RDoc::CrossReference is used to
# generate those links based on the current context.

class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml

  # :stopdoc:
  ALL_CROSSREF_REGEXP = RDoc::CrossReference::ALL_CROSSREF_REGEXP
  CLASS_REGEXP_STR    = RDoc::CrossReference::CLASS_REGEXP_STR
  CROSSREF_REGEXP     = RDoc::CrossReference::CROSSREF_REGEXP
  METHOD_REGEXP_STR   = RDoc::CrossReference::METHOD_REGEXP_STR
  # :startdoc:

  ##
  # RDoc::CodeObject for generating references

  attr_accessor :context

  ##
  # Should we show '#' characters on method references?

  attr_accessor :show_hash

  ##
  # Creates a new crossref resolver that generates links relative to +context+
  # which lives at +from_path+ in the generated files.  '#' characters on
  # references are removed unless +show_hash+ is true.  Only method names
  # preceded by '#' or '::' are linked, unless +hyperlink_all+ is true.

  def initialize(options, from_path, context, markup = nil)
    raise ArgumentError, 'from_path cannot be nil' if from_path.nil?

    super options, markup

    @context       = context
    @from_path     = from_path
    @hyperlink_all = @options.hyperlink_all
    @show_hash     = @options.show_hash

    crossref_re = @hyperlink_all ? ALL_CROSSREF_REGEXP : CROSSREF_REGEXP
    @markup.add_special crossref_re, :CROSSREF

    @cross_reference = RDoc::CrossReference.new @context
  end

  ##
  # Creates a link to the reference +name+ if the name exists.  If +text+ is
  # given it is used as the link text, otherwise +name+ is used.

  def cross_reference name, text = nil
    lookup = name

    name = name[1..-1] unless @show_hash if name[0, 1] == '#'

    name = "#{CGI.unescape $'} at #{$1}" if name =~ /(.*[^#:])@/

    text = name unless text

    link lookup, text
  end

  ##
  # We're invoked when any text matches the CROSSREF pattern.  If we find the
  # corresponding reference, generate a link.  If the name we're looking for
  # contains no punctuation, we look for it up the module/class chain.  For
  # example, ToHtml is found, even without the <tt>RDoc::Markup::</tt> prefix,
  # because we look for it in module Markup first.

  def handle_special_CROSSREF(special)
    name = special.text

    return name if name =~ /@[\w-]+\.[\w-]/ # labels that look like emails

    unless @hyperlink_all then
      # This ensures that words entirely consisting of lowercase letters will
      # not have cross-references generated (to suppress lots of erroneous
      # cross-references to "new" in text, for instance)
      return name if name =~ /\A[a-z]*\z/
    end

    cross_reference name
  end

  ##
  # Handles <tt>rdoc-ref:</tt> scheme links and allows RDoc::Markup::ToHtml to
  # handle other schemes.

  def handle_special_HYPERLINK special
    return cross_reference $' if special.text =~ /\Ardoc-ref:/

    super
  end

  ##
  # +special+ is an rdoc-schemed link that will be converted into a hyperlink.
  # For the rdoc-ref scheme the cross-reference will be looked up and the
  # given name will be used.
  #
  # All other contents are handled by
  # {the superclass}[rdoc-ref:RDoc::Markup::ToHtml#handle_special_RDOCLINK]

  def handle_special_RDOCLINK special
    url = special.text

    case url
    when /\Ardoc-ref:/ then
      cross_reference $'
    else
      super
    end
  end

  ##
  # Generates links for <tt>rdoc-ref:</tt> scheme URLs and allows
  # RDoc::Markup::ToHtml to handle other schemes.

  def gen_url url, text
    return super unless url =~ /\Ardoc-ref:/

    cross_reference $', text
  end

  ##
  # Creates an HTML link to +name+ with the given +text+.

  def link name, text
    original_name = name

    if name =~ /(.*[^#:])@/ then
      name = $1
      label = $'
    end

    ref = @cross_reference.resolve name, text

    text = ref.output_name @context if
      RDoc::MethodAttr === ref and text == original_name

    case ref
    when String then
      ref
    else
      path = ref.as_href @from_path

      if path =~ /#/ then
        path << "-label-#{label}"
      elsif ref.sections and
            ref.sections.any? { |section| label == section.title } then
        path << "##{label}"
      else
        path << "#label-#{label}"
      end if label

      "<a href=\"#{path}\">#{text}</a>"
    end
  end

end

lib64/ruby/2.2.0/rdoc/markup/special.rb000064400000001163150402106110013266 0ustar00##
# Hold details of a special sequence

class RDoc::Markup::Special

  ##
  # Special type

  attr_reader   :type

  ##
  # Special text

  attr_accessor :text

  ##
  # Creates a new special sequence of +type+ with +text+

  def initialize(type, text)
    @type, @text = type, text
  end

  ##
  # Specials are equal when the have the same text and type

  def ==(o)
    self.text == o.text && self.type == o.type
  end

  def inspect # :nodoc:
    "#<RDoc::Markup::Special:0x%x @type=%p, @text=%p>" % [
      object_id, @type, text.dump]
  end

  def to_s # :nodoc:
    "Special: type=#{type} text=#{text.dump}"
  end

end

lib64/ruby/2.2.0/rdoc/markup/verbatim.rb000064400000002405150402106110013457 0ustar00##
# A section of verbatim text

class RDoc::Markup::Verbatim < RDoc::Markup::Raw

  ##
  # Format of this verbatim section

  attr_accessor :format

  def initialize *parts # :nodoc:
    super

    @format = nil
  end

  def == other # :nodoc:
    super and @format == other.format
  end

  ##
  # Calls #accept_verbatim on +visitor+

  def accept visitor
    visitor.accept_verbatim self
  end

  ##
  # Collapses 3+ newlines into two newlines

  def normalize
    parts = []

    newlines = 0

    @parts.each do |part|
      case part
      when /^\s*\n/ then
        newlines += 1
        parts << part if newlines == 1
      else
        newlines = 0
        parts << part
      end
    end

    parts.pop if parts.last =~ /\A\r?\n\z/

    @parts = parts
  end

  def pretty_print q # :nodoc:
    self.class.name =~ /.*::(\w{1,4})/i

    q.group 2, "[#{$1.downcase}: ", ']' do
      if @format then
        q.text "format: #{@format}"
        q.breakable
      end

      q.seplist @parts do |part|
        q.pp part
      end
    end
  end

  ##
  # Is this verbatim section Ruby code?

  def ruby?
    @format ||= nil # TODO for older ri data, switch the tree to marshal_dump
    @format == :ruby
  end

  ##
  # The text of the section

  def text
    @parts.join
  end

end

lib64/ruby/2.2.0/rdoc/markup/paragraph.rb000064400000000717150402106110013617 0ustar00##
# A Paragraph of text

class RDoc::Markup::Paragraph < RDoc::Markup::Raw

  ##
  # Calls #accept_paragraph on +visitor+

  def accept visitor
    visitor.accept_paragraph self
  end

  ##
  # Joins the raw paragraph text and converts inline HardBreaks to the
  # +hard_break+ text.

  def text hard_break = ''
    @parts.map do |part|
      if RDoc::Markup::HardBreak === part then
        hard_break
      else
        part
      end
    end.join
  end

end

lib64/ruby/2.2.0/rdoc/markup/pre_process.rb000064400000020252150402106110014172 0ustar00##
# Handle common directives that can occur in a block of text:
#
#   \:include: filename
#
# Directives can be escaped by preceding them with a backslash.
#
# RDoc plugin authors can register additional directives to be handled by
# using RDoc::Markup::PreProcess::register.
#
# Any directive that is not built-in to RDoc (including those registered via
# plugins) will be stored in the metadata hash on the CodeObject the comment
# is attached to.  See RDoc::Markup@Directives for the list of built-in
# directives.

class RDoc::Markup::PreProcess

  ##
  # An RDoc::Options instance that will be filled in with overrides from
  # directives

  attr_accessor :options

  ##
  # Adds a post-process handler for directives.  The handler will be called
  # with the result RDoc::Comment (or text String) and the code object for the
  # comment (if any).

  def self.post_process &block
    @post_processors << block
  end

  ##
  # Registered post-processors

  def self.post_processors
    @post_processors
  end

  ##
  # Registers +directive+ as one handled by RDoc.  If a block is given the
  # directive will be replaced by the result of the block, otherwise the
  # directive will be removed from the processed text.
  #
  # The block will be called with the directive name and the directive
  # parameter:
  #
  #   RDoc::Markup::PreProcess.register 'my-directive' do |directive, param|
  #     # replace text, etc.
  #   end

  def self.register directive, &block
    @registered[directive] = block
  end

  ##
  # Registered directives

  def self.registered
    @registered
  end

  ##
  # Clears all registered directives and post-processors

  def self.reset
    @post_processors = []
    @registered = {}
  end

  reset

  ##
  # Creates a new pre-processor for +input_file_name+ that will look for
  # included files in +include_path+

  def initialize(input_file_name, include_path)
    @input_file_name = input_file_name
    @include_path = include_path
    @options = nil
  end

  ##
  # Look for directives in the given +text+.
  #
  # Options that we don't handle are yielded.  If the block returns false the
  # directive is restored to the text.  If the block returns nil or no block
  # was given the directive is handled according to the registered directives.
  # If a String was returned the directive is replaced with the string.
  #
  # If no matching directive was registered the directive is restored to the
  # text.
  #
  # If +code_object+ is given and the directive is unknown then the
  # directive's parameter is set as metadata on the +code_object+.  See
  # RDoc::CodeObject#metadata for details.

  def handle text, code_object = nil, &block
    if RDoc::Comment === text then
      comment = text
      text = text.text
    end

    encoding = text.encoding if defined?(Encoding)

    # regexp helper (square brackets for optional)
    # $1      $2  $3        $4      $5
    # [prefix][\]:directive:[spaces][param]newline
    text.gsub!(/^([ \t]*(?:#|\/?\*)?[ \t]*)(\\?):(\w+):([ \t]*)(.+)?(\r?\n|$)/) do
      # skip something like ':toto::'
      next $& if $4.empty? and $5 and $5[0, 1] == ':'

      # skip if escaped
      next "#$1:#$3:#$4#$5\n" unless $2.empty?

      # This is not in handle_directive because I didn't want to pass another
      # argument into it
      if comment and $3 == 'markup' then
        next "#{$1.strip}\n" unless $5
        comment.format = $5.downcase
        next "#{$1.strip}\n"
      end

      handle_directive $1, $3, $5, code_object, encoding, &block
    end

    comment = text unless comment

    self.class.post_processors.each do |handler|
      handler.call comment, code_object
    end

    text
  end

  ##
  # Performs the actions described by +directive+ and its parameter +param+.
  #
  # +code_object+ is used for directives that operate on a class or module.
  # +prefix+ is used to ensure the replacement for handled directives is
  # correct.  +encoding+ is used for the <tt>include</tt> directive.
  #
  # For a list of directives in RDoc see RDoc::Markup.
  #--
  # When 1.8.7 support is ditched prefix can be defaulted to ''

  def handle_directive prefix, directive, param, code_object = nil,
                       encoding = nil
    blankline = "#{prefix.strip}\n"
    directive = directive.downcase

    case directive
    when 'arg', 'args' then
      return "#{prefix}:#{directive}: #{param}\n" unless code_object

      code_object.params = param

      blankline
    when 'category' then
      if RDoc::Context === code_object then
        section = code_object.add_section param
        code_object.temporary_section = section
      end

      blankline # ignore category if we're not on an RDoc::Context
    when 'doc' then
      return blankline unless code_object
      code_object.document_self = true
      code_object.force_documentation = true

      blankline
    when 'enddoc' then
      return blankline unless code_object
      code_object.done_documenting = true

      blankline
    when 'include' then
      filename = param.split.first
      include_file filename, prefix, encoding
    when 'main' then
      @options.main_page = param if @options.respond_to? :main_page

      blankline
    when 'nodoc' then
      return blankline unless code_object
      code_object.document_self = nil # notify nodoc
      code_object.document_children = param !~ /all/i

      blankline
    when 'notnew', 'not_new', 'not-new' then
      return blankline unless RDoc::AnyMethod === code_object

      code_object.dont_rename_initialize = true

      blankline
    when 'startdoc' then
      return blankline unless code_object

      code_object.start_doc
      code_object.force_documentation = true

      blankline
    when 'stopdoc' then
      return blankline unless code_object

      code_object.stop_doc

      blankline
    when 'title' then
      @options.default_title = param if @options.respond_to? :default_title=

      blankline
    when 'yield', 'yields' then
      return blankline unless code_object
      # remove parameter &block
      code_object.params.sub!(/,?\s*&\w+/, '') if code_object.params

      code_object.block_params = param

      blankline
    else
      result = yield directive, param if block_given?

      case result
      when nil then
        code_object.metadata[directive] = param if code_object

        if RDoc::Markup::PreProcess.registered.include? directive then
          handler = RDoc::Markup::PreProcess.registered[directive]
          result = handler.call directive, param if handler
        else
          result = "#{prefix}:#{directive}: #{param}\n"
        end
      when false then
        result = "#{prefix}:#{directive}: #{param}\n"
      end

      result
    end
  end

  ##
  # Handles the <tt>:include: _filename_</tt> directive.
  #
  # If the first line of the included file starts with '#', and contains
  # an encoding information in the form 'coding:' or 'coding=', it is
  # removed.
  #
  # If all lines in the included file start with a '#', this leading '#'
  # is removed before inclusion. The included content is indented like
  # the <tt>:include:</tt> directive.
  #--
  # so all content will be verbatim because of the likely space after '#'?
  # TODO shift left the whole file content in that case
  # TODO comment stop/start #-- and #++ in included file must be processed here

  def include_file name, indent, encoding
    full_name = find_include_file name

    unless full_name then
      warn "Couldn't find file to include '#{name}' from #{@input_file_name}"
      return ''
    end

    content = RDoc::Encoding.read_file full_name, encoding, true

    # strip magic comment
    content = content.sub(/\A# .*coding[=:].*$/, '').lstrip

    # strip leading '#'s, but only if all lines start with them
    if content =~ /^[^#]/ then
      content.gsub(/^/, indent)
    else
      content.gsub(/^#?/, indent)
    end
  end

  ##
  # Look for the given file in the directory containing the current file,
  # and then in each of the directories specified in the RDOC_INCLUDE path

  def find_include_file(name)
    to_search = [File.dirname(@input_file_name)].concat @include_path
    to_search.each do |dir|
      full_name = File.join(dir, name)
      stat = File.stat(full_name) rescue next
      return full_name if stat.readable?
    end
    nil
  end

end

lib64/ruby/2.2.0/rdoc/markup/attr_span.rb000064400000000726150402106110013645 0ustar00##
# An array of attributes which parallels the characters in a string.

class RDoc::Markup::AttrSpan

  ##
  # Creates a new AttrSpan for +length+ characters

  def initialize(length)
    @attrs = Array.new(length, 0)
  end

  ##
  # Toggles +bits+ from +start+ to +length+
  def set_attrs(start, length, bits)
    for i in start ... (start+length)
      @attrs[i] |= bits
    end
  end

  ##
  # Accesses flags for character +n+

  def [](n)
    @attrs[n]
  end

end

lib64/ruby/2.2.0/rdoc/markup/parser.rb000064400000034224150402106110013146 0ustar00require 'strscan'

##
# A recursive-descent parser for RDoc markup.
#
# The parser tokenizes an input string then parses the tokens into a Document.
# Documents can be converted into output formats by writing a visitor like
# RDoc::Markup::ToHTML.
#
# The parser only handles the block-level constructs Paragraph, List,
# ListItem, Heading, Verbatim, BlankLine and Rule.  Inline markup such as
# <tt>\+blah\+</tt> is handled separately by RDoc::Markup::AttributeManager.
#
# To see what markup the Parser implements read RDoc.  To see how to use
# RDoc markup to format text in your program read RDoc::Markup.

class RDoc::Markup::Parser

  include RDoc::Text

  ##
  # List token types

  LIST_TOKENS = [
    :BULLET,
    :LABEL,
    :LALPHA,
    :NOTE,
    :NUMBER,
    :UALPHA,
  ]

  ##
  # Parser error subclass

  class Error < RuntimeError; end

  ##
  # Raised when the parser is unable to handle the given markup

  class ParseError < Error; end

  ##
  # Enables display of debugging information

  attr_accessor :debug

  ##
  # Token accessor

  attr_reader :tokens

  ##
  # Parses +str+ into a Document.
  #
  # Use RDoc::Markup#parse instead of this method.

  def self.parse str
    parser = new
    parser.tokenize str
    doc = RDoc::Markup::Document.new
    parser.parse doc
  end

  ##
  # Returns a token stream for +str+, for testing

  def self.tokenize str
    parser = new
    parser.tokenize str
    parser.tokens
  end

  ##
  # Creates a new Parser.  See also ::parse

  def initialize
    @binary_input   = nil
    @current_token  = nil
    @debug          = false
    @have_encoding  = Object.const_defined? :Encoding
    @have_byteslice = ''.respond_to? :byteslice
    @input          = nil
    @input_encoding = nil
    @line           = 0
    @line_pos       = 0
    @s              = nil
    @tokens         = []
  end

  ##
  # Builds a Heading of +level+

  def build_heading level
    type, text, = get

    text = case type
           when :TEXT then
             skip :NEWLINE
             text
           else
             unget
             ''
           end

    RDoc::Markup::Heading.new level, text
  end

  ##
  # Builds a List flush to +margin+

  def build_list margin
    p :list_start => margin if @debug

    list = RDoc::Markup::List.new
    label = nil

    until @tokens.empty? do
      type, data, column, = get

      case type
      when *LIST_TOKENS then
        if column < margin || (list.type && list.type != type) then
          unget
          break
        end

        list.type = type
        peek_type, _, column, = peek_token

        case type
        when :NOTE, :LABEL then
          label = [] unless label

          if peek_type == :NEWLINE then
            # description not on the same line as LABEL/NOTE
            # skip the trailing newline & any blank lines below
            while peek_type == :NEWLINE
              get
              peek_type, _, column, = peek_token
            end

            # we may be:
            #   - at end of stream
            #   - at a column < margin:
            #         [text]
            #       blah blah blah
            #   - at the same column, but with a different type of list item
            #       [text]
            #       * blah blah
            #   - at the same column, with the same type of list item
            #       [one]
            #       [two]
            # In all cases, we have an empty description.
            # In the last case only, we continue.
            if peek_type.nil? || column < margin then
              empty = true
            elsif column == margin then
              case peek_type
              when type
                empty = :continue
              when *LIST_TOKENS
                empty = true
              else
                empty = false
              end
            else
              empty = false
            end

            if empty then
              label << data
              next if empty == :continue
              break
            end
          end
        else
          data = nil
        end

        if label then
          data = label << data
          label = nil
        end

        list_item = RDoc::Markup::ListItem.new data
        parse list_item, column
        list << list_item

      else
        unget
        break
      end
    end

    p :list_end => margin if @debug

    if list.empty? then
      return nil unless label
      return nil unless [:LABEL, :NOTE].include? list.type

      list_item = RDoc::Markup::ListItem.new label, RDoc::Markup::BlankLine.new
      list << list_item
    end

    list
  end

  ##
  # Builds a Paragraph that is flush to +margin+

  def build_paragraph margin
    p :paragraph_start => margin if @debug

    paragraph = RDoc::Markup::Paragraph.new

    until @tokens.empty? do
      type, data, column, = get

      if type == :TEXT and column == margin then
        paragraph << data

        break if peek_token.first == :BREAK

        data << ' ' if skip :NEWLINE
      else
        unget
        break
      end
    end

    paragraph.parts.last.sub!(/ \z/, '') # cleanup

    p :paragraph_end => margin if @debug

    paragraph
  end

  ##
  # Builds a Verbatim that is indented from +margin+.
  #
  # The verbatim block is shifted left (the least indented lines start in
  # column 0).  Each part of the verbatim is one line of text, always
  # terminated by a newline.  Blank lines always consist of a single newline
  # character, and there is never a single newline at the end of the verbatim.

  def build_verbatim margin
    p :verbatim_begin => margin if @debug
    verbatim = RDoc::Markup::Verbatim.new

    min_indent = nil
    generate_leading_spaces = true
    line = ''

    until @tokens.empty? do
      type, data, column, = get

      if type == :NEWLINE then
        line << data
        verbatim << line
        line = ''
        generate_leading_spaces = true
        next
      end

      if column <= margin
        unget
        break
      end

      if generate_leading_spaces then
        indent = column - margin
        line << ' ' * indent
        min_indent = indent if min_indent.nil? || indent < min_indent
        generate_leading_spaces = false
      end

      case type
      when :HEADER then
        line << '=' * data
        _, _, peek_column, = peek_token
        peek_column ||= column + data
        indent = peek_column - column - data
        line << ' ' * indent
      when :RULE then
        width = 2 + data
        line << '-' * width
        _, _, peek_column, = peek_token
        peek_column ||= column + width
        indent = peek_column - column - width
        line << ' ' * indent
      when :BREAK, :TEXT then
        line << data
      else # *LIST_TOKENS
        list_marker = case type
                      when :BULLET then data
                      when :LABEL  then "[#{data}]"
                      when :NOTE   then "#{data}::"
                      else # :LALPHA, :NUMBER, :UALPHA
                        "#{data}."
                      end
        line << list_marker
        peek_type, _, peek_column = peek_token
        unless peek_type == :NEWLINE then
          peek_column ||= column + list_marker.length
          indent = peek_column - column - list_marker.length
          line << ' ' * indent
        end
      end

    end

    verbatim << line << "\n" unless line.empty?
    verbatim.parts.each { |p| p.slice!(0, min_indent) unless p == "\n" } if min_indent > 0
    verbatim.normalize

    p :verbatim_end => margin if @debug

    verbatim
  end

  ##
  # The character offset for the input string at the given +byte_offset+

  def char_pos byte_offset
    if @have_byteslice then
      @input.byteslice(0, byte_offset).length
    elsif @have_encoding then
      matched = @binary_input[0, byte_offset]
      matched.force_encoding @input_encoding
      matched.length
    else
      byte_offset
    end
  end

  ##
  # Pulls the next token from the stream.

  def get
    @current_token = @tokens.shift
    p :get => @current_token if @debug
    @current_token
  end

  ##
  # Parses the tokens into an array of RDoc::Markup::XXX objects,
  # and appends them to the passed +parent+ RDoc::Markup::YYY object.
  #
  # Exits at the end of the token stream, or when it encounters a token
  # in a column less than +indent+ (unless it is a NEWLINE).
  #
  # Returns +parent+.

  def parse parent, indent = 0
    p :parse_start => indent if @debug

    until @tokens.empty? do
      type, data, column, = get

      case type
      when :BREAK then
        parent << RDoc::Markup::BlankLine.new
        skip :NEWLINE, false
        next
      when :NEWLINE then
        # trailing newlines are skipped below, so this is a blank line
        parent << RDoc::Markup::BlankLine.new
        skip :NEWLINE, false
        next
      end

      # indentation change: break or verbatim
      if column < indent then
        unget
        break
      elsif column > indent then
        unget
        parent << build_verbatim(indent)
        next
      end

      # indentation is the same
      case type
      when :HEADER then
        parent << build_heading(data)
      when :RULE then
        parent << RDoc::Markup::Rule.new(data)
        skip :NEWLINE
      when :TEXT then
        unget
        parse_text parent, indent
      when *LIST_TOKENS then
        unget
        parent << build_list(indent)
      else
        type, data, column, line = @current_token
        raise ParseError, "Unhandled token #{type} (#{data.inspect}) at #{line}:#{column}"
      end
    end

    p :parse_end => indent if @debug

    parent

  end

  ##
  # Small hook that is overridden by RDoc::TomDoc

  def parse_text parent, indent # :nodoc:
    parent << build_paragraph(indent)
  end

  ##
  # Returns the next token on the stream without modifying the stream

  def peek_token
    token = @tokens.first || []
    p :peek => token if @debug
    token
  end

  ##
  # Creates the StringScanner

  def setup_scanner input
    @line     = 0
    @line_pos = 0
    @input    = input.dup

    if @have_encoding and not @have_byteslice then
      @input_encoding = @input.encoding
      @binary_input   = @input.force_encoding Encoding::BINARY
    end

    @s = StringScanner.new input
  end

  ##
  # Skips the next token if its type is +token_type+.
  #
  # Optionally raises an error if the next token is not of the expected type.

  def skip token_type, error = true
    type, = get
    return unless type # end of stream
    return @current_token if token_type == type
    unget
    raise ParseError, "expected #{token_type} got #{@current_token.inspect}" if error
  end

  ##
  # Turns text +input+ into a stream of tokens

  def tokenize input
    setup_scanner input

    until @s.eos? do
      pos = @s.pos

      # leading spaces will be reflected by the column of the next token
      # the only thing we loose are trailing spaces at the end of the file
      next if @s.scan(/ +/)

      # note: after BULLET, LABEL, etc.,
      # indent will be the column of the next non-newline token

      @tokens << case
                 # [CR]LF => :NEWLINE
                 when @s.scan(/\r?\n/) then
                   token = [:NEWLINE, @s.matched, *token_pos(pos)]
                   @line_pos = char_pos @s.pos
                   @line += 1
                   token
                 # === text => :HEADER then :TEXT
                 when @s.scan(/(=+)(\s*)/) then
                   level = @s[1].length
                   header = [:HEADER, level, *token_pos(pos)]

                   if @s[2] =~ /^\r?\n/ then
                     @s.pos -= @s[2].length
                     header
                   else
                     pos = @s.pos
                     @s.scan(/.*/)
                     @tokens << header
                     [:TEXT, @s.matched.sub(/\r$/, ''), *token_pos(pos)]
                   end
                 # --- (at least 3) and nothing else on the line => :RULE
                 when @s.scan(/(-{3,}) *\r?$/) then
                   [:RULE, @s[1].length - 2, *token_pos(pos)]
                 # * or - followed by white space and text => :BULLET
                 when @s.scan(/([*-]) +(\S)/) then
                   @s.pos -= @s[2].bytesize # unget \S
                   [:BULLET, @s[1], *token_pos(pos)]
                 # A. text, a. text, 12. text => :UALPHA, :LALPHA, :NUMBER
                 when @s.scan(/([a-z]|\d+)\. +(\S)/i) then
                   # FIXME if tab(s), the column will be wrong
                   # either support tabs everywhere by first expanding them to
                   # spaces, or assume that they will have been replaced
                   # before (and provide a check for that at least in debug
                   # mode)
                   list_label = @s[1]
                   @s.pos -= @s[2].bytesize # unget \S
                   list_type =
                     case list_label
                     when /[a-z]/ then :LALPHA
                     when /[A-Z]/ then :UALPHA
                     when /\d/    then :NUMBER
                     else
                       raise ParseError, "BUG token #{list_label}"
                     end
                   [list_type, list_label, *token_pos(pos)]
                 # [text] followed by spaces or end of line => :LABEL
                 when @s.scan(/\[(.*?)\]( +|\r?$)/) then
                   [:LABEL, @s[1], *token_pos(pos)]
                 # text:: followed by spaces or end of line => :NOTE
                 when @s.scan(/(.*?)::( +|\r?$)/) then
                   [:NOTE, @s[1], *token_pos(pos)]
                 # anything else: :TEXT
                 else @s.scan(/(.*?)(  )?\r?$/)
                   token = [:TEXT, @s[1], *token_pos(pos)]

                   if @s[2] then
                     @tokens << token
                     [:BREAK, @s[2], *token_pos(pos + @s[1].length)]
                   else
                     token
                   end
                 end
    end

    self
  end

  ##
  # Calculates the column (by character) and line of the current token based
  # on +byte_offset+.

  def token_pos byte_offset
    offset = char_pos byte_offset

    [offset - @line_pos, @line]
  end

  ##
  # Returns the current token to the token stream

  def unget
    token = @current_token
    p :unget => token if @debug
    raise Error, 'too many #ungets' if token == @tokens.first
    @tokens.unshift token if token
  end

end

lib64/ruby/2.2.0/rdoc/erbio.rb000064400000001432150402106110011446 0ustar00require 'erb'

##
# A subclass of ERB that writes directly to an IO.  Credit to Aaron Patterson
# and Masatoshi SEKI.
#
# To use:
#
#   erbio = RDoc::ERBIO.new '<%= "hello world" %>', nil, nil
#
#   open 'hello.txt', 'w' do |io|
#     erbio.result binding
#   end
#
# Note that binding must enclose the io you wish to output on.

class RDoc::ERBIO < ERB

  ##
  # Defaults +eoutvar+ to 'io', otherwise is identical to ERB's initialize

  def initialize str, safe_level = nil, trim_mode = nil, eoutvar = 'io'
    super
  end

  ##
  # Instructs +compiler+ how to write to +io_variable+

  def set_eoutvar compiler, io_variable
    compiler.put_cmd    = "#{io_variable}.write"
    compiler.insert_cmd = "#{io_variable}.write"
    compiler.pre_cmd    = []
    compiler.post_cmd   = []
  end

end

lib64/ruby/2.2.0/rdoc/rd.rb000064400000007047150402106110010763 0ustar00##
# RDoc::RD implements the RD format from the rdtool gem.
#
# To choose RD as your only default format see
# RDoc::Options@Saved+Options for instructions on setting up a
# <code>.doc_options</code> file to store your project default.
#
# == LICENSE
#
# The grammar that produces RDoc::RD::BlockParser and RDoc::RD::InlineParser
# is included in RDoc under the Ruby License.
#
# You can find the original source for rdtool at
# https://github.com/uwabami/rdtool/
#
# You can use, re-distribute or change these files under Ruby's License or GPL.
#
# 1. You may make and give away verbatim copies of the source form of the
#    software without restriction, provided that you duplicate all of the
#    original copyright notices and associated disclaimers.
#
# 2. You may modify your copy of the software in any way, provided that
#    you do at least ONE of the following:
#
#    a. place your modifications in the Public Domain or otherwise
#       make them Freely Available, such as by posting said
#       modifications to Usenet or an equivalent medium, or by allowing
#       the author to include your modifications in the software.
#
#    b. use the modified software only within your corporation or
#       organization.
#
#    c. give non-standard binaries non-standard names, with
#       instructions on where to get the original software distribution.
#
#    d. make other distribution arrangements with the author.
#
# 3. You may distribute the software in object code or binary form,
#    provided that you do at least ONE of the following:
#
#    a. distribute the binaries and library files of the software,
#       together with instructions (in the manual page or equivalent)
#       on where to get the original distribution.
#
#    b. accompany the distribution with the machine-readable source of
#       the software.
#
#    c. give non-standard binaries non-standard names, with
#       instructions on where to get the original software distribution.
#
#    d. make other distribution arrangements with the author.
#
# 4. You may modify and include the part of the software into any other
#    software (possibly commercial).  But some files in the distribution
#    are not written by the author, so that they are not under these terms.
#
#    For the list of those files and their copying conditions, see the
#    file LEGAL.
#
# 5. The scripts and library files supplied as input to or produced as
#    output from the software do not automatically fall under the
#    copyright of the software, but belong to whomever generated them,
#    and may be sold commercially, and may be aggregated with this
#    software.
#
# 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
#    IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
#    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
#    PURPOSE.

class RDoc::RD

  ##
  # Parses +rd+ source and returns an RDoc::Markup::Document.  If the
  # <tt>=begin</tt> or <tt>=end</tt> lines are missing they will be added.

  def self.parse rd
    rd = rd.lines.to_a

    if rd.find { |i| /\S/ === i } and !rd.find{|i| /^=begin\b/ === i } then
      rd.unshift("=begin\n").push("=end\n")
    end

    parser = RDoc::RD::BlockParser.new
    document = parser.parse rd

    # isn't this always true?
    document.parts.shift if RDoc::Markup::BlankLine === document.parts.first
    document.parts.pop   if RDoc::Markup::BlankLine === document.parts.last

    document
  end

  autoload :BlockParser,  'rdoc/rd/block_parser'
  autoload :InlineParser, 'rdoc/rd/inline_parser'
  autoload :Inline,       'rdoc/rd/inline'

end

lib64/ruby/2.2.0/rdoc/text.rb000064400000017476150402106110011351 0ustar00# coding: utf-8

##
# For RDoc::Text#to_html

require 'strscan'

##
# For RDoc::Text#snippet

begin
  gem 'json'
rescue Gem::LoadError
end

require 'json'

##
# Methods for manipulating comment text

module RDoc::Text

  ##
  # Maps markup formats to classes that can parse them.  If the format is
  # unknown, "rdoc" format is used.

  MARKUP_FORMAT = {
    'markdown' => RDoc::Markdown,
    'rdoc'     => RDoc::Markup,
    'rd'       => RDoc::RD,
    'tomdoc'   => RDoc::TomDoc,
  }

  MARKUP_FORMAT.default = RDoc::Markup

  ##
  # Maps an encoding to a Hash of characters properly transcoded for that
  # encoding.
  #
  # See also encode_fallback.

  TO_HTML_CHARACTERS = Hash.new do |h, encoding|
    h[encoding] = {
      :close_dquote => encode_fallback('”', encoding, '"'),
      :close_squote => encode_fallback('’', encoding, '\''),
      :copyright    => encode_fallback('©', encoding, '(c)'),
      :ellipsis     => encode_fallback('…', encoding, '...'),
      :em_dash      => encode_fallback('—', encoding, '---'),
      :en_dash      => encode_fallback('–', encoding, '--'),
      :open_dquote  => encode_fallback('“', encoding, '"'),
      :open_squote  => encode_fallback('‘', encoding, '\''),
      :trademark    => encode_fallback('®', encoding, '(r)'),
    }
  end if Object.const_defined? :Encoding

  ##
  # Transcodes +character+ to +encoding+ with a +fallback+ character.

  def self.encode_fallback character, encoding, fallback
    character.encode(encoding, :fallback => { character => fallback },
                     :undef => :replace, :replace => fallback)
  end

  ##
  # Expands tab characters in +text+ to eight spaces

  def expand_tabs text
    expanded = []

    text.each_line do |line|
      nil while line.gsub!(/(?:\G|\r)((?:.{8})*?)([^\t\r\n]{0,7})\t/) do
        r = "#{$1}#{$2}#{' ' * (8 - $2.size)}"
        r.force_encoding text.encoding if Object.const_defined? :Encoding
        r
      end

      expanded << line
    end

    expanded.join
  end

  ##
  # Flush +text+ left based on the shortest line

  def flush_left text
    indent = 9999

    text.each_line do |line|
      line_indent = line =~ /\S/ || 9999
      indent = line_indent if indent > line_indent
    end

    empty = ''
    empty.force_encoding text.encoding if Object.const_defined? :Encoding

    text.gsub(/^ {0,#{indent}}/, empty)
  end

  ##
  # Convert a string in markup format into HTML.
  #
  # Requires the including class to implement #formatter

  def markup text
    if @store.rdoc.options
      locale = @store.rdoc.options.locale
    else
      locale = nil
    end
    if locale
      i18n_text = RDoc::I18n::Text.new(text)
      text = i18n_text.translate(locale)
    end
    parse(text).accept formatter
  end

  ##
  # Strips hashes, expands tabs then flushes +text+ to the left

  def normalize_comment text
    return text if text.empty?

    text = strip_stars    text
    text = strip_hashes   text
    text = expand_tabs    text
    text = flush_left     text
    text = strip_newlines text
    text
  end

  ##
  # Normalizes +text+ then builds a RDoc::Markup::Document from it

  def parse text, format = 'rdoc'
    return text if RDoc::Markup::Document === text
    return text.parse if RDoc::Comment === text

    text = normalize_comment text # TODO remove, should not be necessary

    return RDoc::Markup::Document.new if text =~ /\A\n*\z/

    MARKUP_FORMAT[format].parse text
  end

  ##
  # The first +limit+ characters of +text+ as HTML

  def snippet text, limit = 100
    document = parse text

    RDoc::Markup::ToHtmlSnippet.new(options, limit).convert document
  end

  ##
  # Strips leading # characters from +text+

  def strip_hashes text
    return text if text =~ /^(?>\s*)[^\#]/

    empty = ''
    empty.force_encoding text.encoding if Object.const_defined? :Encoding

    text.gsub(/^\s*(#+)/) { $1.tr '#', ' ' }.gsub(/^\s+$/, empty)
  end

  ##
  # Strips leading and trailing \n characters from +text+

  def strip_newlines text
    text.gsub(/\A\n*(.*?)\n*\z/m) do $1 end # block preserves String encoding
  end

  ##
  # Strips /* */ style comments

  def strip_stars text
    return text unless text =~ %r%/\*.*\*/%m

    encoding = text.encoding if Object.const_defined? :Encoding

    text = text.gsub %r%Document-method:\s+[\w:.#=!?]+%, ''

    space = ' '
    space.force_encoding encoding if encoding

    text.sub!  %r%/\*+%       do space * $&.length end
    text.sub!  %r%\*+/%       do space * $&.length end
    text.gsub! %r%^[ \t]*\*%m do space * $&.length end

    empty = ''
    empty.force_encoding encoding if encoding
    text.gsub(/^\s+$/, empty)
  end

  ##
  # Converts ampersand, dashes, ellipsis, quotes, copyright and registered
  # trademark symbols in +text+ to properly encoded characters.

  def to_html text
    if Object.const_defined? :Encoding then
      html = ''.encode text.encoding

      encoded = RDoc::Text::TO_HTML_CHARACTERS[text.encoding]
    else
      html = ''
      encoded = {
        :close_dquote => '”',
        :close_squote => '’',
        :copyright    => '©',
        :ellipsis     => '…',
        :em_dash      => '—',
        :en_dash      => '–',
        :open_dquote  => '“',
        :open_squote  => '‘',
        :trademark    => '®',
      }
    end

    s = StringScanner.new text
    insquotes = false
    indquotes = false
    after_word = nil

    until s.eos? do
      case
      when s.scan(/<(tt|code)>.*?<\/\1>/) then # skip contents of tt
        html << s.matched.gsub('\\\\', '\\')
      when s.scan(/<(tt|code)>.*?/) then
        warn "mismatched <#{s[1]}> tag" # TODO signal file/line
        html << s.matched
      when s.scan(/<[^>]+\/?s*>/) then # skip HTML tags
        html << s.matched
      when s.scan(/\\(\S)/) then # unhandled suppressed crossref
        html << s[1]
        after_word = nil
      when s.scan(/\.\.\.(\.?)/) then
        html << s[1] << encoded[:ellipsis]
        after_word = nil
      when s.scan(/\(c\)/) then
        html << encoded[:copyright]
        after_word = nil
      when s.scan(/\(r\)/) then
        html << encoded[:trademark]
        after_word = nil
      when s.scan(/---/) then
        html << encoded[:em_dash]
        after_word = nil
      when s.scan(/--/) then
        html << encoded[:en_dash]
        after_word = nil
      when s.scan(/&quot;|"/) then
        html << encoded[indquotes ? :close_dquote : :open_dquote]
        indquotes = !indquotes
        after_word = nil
      when s.scan(/``/) then # backtick double quote
        html << encoded[:open_dquote]
        after_word = nil
      when s.scan(/''/) then # tick double quote
        html << encoded[:close_dquote]
        after_word = nil
      when s.scan(/'/) then # single quote
        if insquotes
          html << encoded[:close_squote]
          insquotes = false
        elsif after_word
          # Mary's dog, my parents' house: do not start paired quotes
          html << encoded[:close_squote]
        else
          html << encoded[:open_squote]
          insquotes = true
        end

        after_word = nil
      else # advance to the next potentially significant character
        match = s.scan(/.+?(?=[<\\.("'`&-])/) #"

        if match then
          html << match
          after_word = match =~ /\w$/
        else
          html << s.rest
          break
        end
      end
    end

    html
  end

  ##
  # Wraps +txt+ to +line_len+

  def wrap(txt, line_len = 76)
    res = []
    sp = 0
    ep = txt.length

    while sp < ep
      # scan back for a space
      p = sp + line_len - 1
      if p >= ep
        p = ep
      else
        while p > sp and txt[p] != ?\s
          p -= 1
        end
        if p <= sp
          p = sp + line_len
          while p < ep and txt[p] != ?\s
            p += 1
          end
        end
      end
      res << txt[sp...p] << "\n"
      sp = p
      sp += 1 while sp < ep and txt[sp] == ?\s
    end

    res.join.strip
  end

end

lib64/ruby/2.2.0/rdoc/anon_class.rb000064400000000216150402106110012465 0ustar00##
# An anonymous class like:
#
#   c = Class.new do end
#
# AnonClass is currently not used.

class RDoc::AnonClass < RDoc::ClassModule
end

lib64/ruby/2.2.0/rdoc/ruby_token.rb000064400000026514150402106110012537 0ustar00#--
#   irb/ruby-token.rb - ruby tokens
#   	$Release Version: 0.9.5$
#   	$Revision: 11708 $
#   	$Date: 2007-02-12 15:01:19 -0800 (Mon, 12 Feb 2007) $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#++
# Definitions of all tokens involved in the lexical analysis.
#
# This class is not documented because it is so deep in the internals.

module RDoc::RubyToken
  # :stopdoc:

  EXPR_BEG = :EXPR_BEG
  EXPR_MID = :EXPR_MID
  EXPR_END = :EXPR_END
  EXPR_ARG = :EXPR_ARG
  EXPR_FNAME = :EXPR_FNAME
  EXPR_DOT = :EXPR_DOT
  EXPR_CLASS = :EXPR_CLASS

  # for ruby 1.4X
  if !defined?(Symbol)
    Symbol = Integer
  end

  def set_token_position(line, char)
    @prev_line_no = line
    @prev_char_no = char
  end

  class Token
    def initialize(seek, line_no, char_no, text = nil)
      @seek = seek
      @line_no = line_no
      @char_no = char_no
      @text = text
    end

    attr_reader :seek
    attr_reader :line_no
    attr_reader :char_no

    attr_accessor :text

    def ==(other)
      self.class == other.class and
      other.line_no == @line_no and
      other.char_no == @char_no and
      other.text == @text
    end

    ##
    # Because we're used in contexts that expect to return a token, we set the
    # text string and then return ourselves

    def set_text(text)
      @text = text
      self
    end

    def inspect # :nodoc:
      klass = self.class.name.split('::').last
      "{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @text]
    end

  end

  class TkNode < Token
    def initialize(seek, line_no, char_no, node = nil)
      super seek, line_no, char_no
      @node = node
    end

    attr_reader:node

    def ==(other)
      self.class == other.class and
      other.line_no == @line_no and
      other.char_no == @char_no and
      other.node == @node
    end

    def set_text text
      @node = text
      self
    end

    alias text node

    def inspect # :nodoc:
      klass = self.class.name.split('::').last
      "{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @node]
    end

  end

  class TkId < Token
    def initialize(seek, line_no, char_no, name)
      super(seek, line_no, char_no)
      @name = name
    end
    attr_reader:name

    def ==(other)
      self.class == other.class and
      other.line_no == @line_no and
      other.char_no == @char_no and
      other.name == @name
    end

    def set_text text
      @name = text
      self
    end

    alias text name

    def inspect # :nodoc:
      klass = self.class.name.split('::').last
      "{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @name]
    end

  end

  class TkKW < TkId
  end

  class TkVal < Token
    def initialize(seek, line_no, char_no, value = nil)
      super(seek, line_no, char_no)
      @value = value
    end
    attr_accessor :value

    def ==(other)
      self.class == other.class and
      other.line_no == @line_no and
      other.char_no == @char_no and
      other.value == @value
    end

    def set_text text
      @value = text
      self
    end

    alias text value

    def inspect # :nodoc:
      klass = self.class.name.split('::').last
      "{%s %s, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @value]
    end

  end

  class TkOp < Token
    def initialize(seek, line_no, char_no, name = nil)
      super seek, line_no, char_no
      @name = name
    end

    attr_accessor :name

    def ==(other)
      self.class == other.class and
      other.line_no == @line_no and
      other.char_no == @char_no and
      other.name == @name
    end

    def set_text text
      @name = text
      self
    end

    alias text name

    def inspect # :nodoc:
      klass = self.class.name.split('::').last
      "{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @name]
    end

  end

  class TkOPASGN < TkOp
    def initialize(seek, line_no, char_no, op)
      super(seek, line_no, char_no)
      op = TkReading2Token[op][0] unless op.kind_of?(Symbol)
      @op = op
      @text = nil
    end

    attr_reader:op

    def ==(other)
      self.class == other.class and
      other.line_no == @line_no and
      other.char_no == @char_no and
      other.op == @op
    end

    def text
      @text ||= "#{TkToken2Reading[op]}="
    end

    def inspect # :nodoc:
      klass = self.class.name.split('::').last
      "{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @op]
    end

  end

  class TkUnknownChar < Token
    def initialize(seek, line_no, char_no, name)
      super(seek, line_no, char_no)
      @name = name
    end
    attr_reader:name

    def ==(other)
      self.class == other.class and
      other.line_no == @line_no and
      other.char_no == @char_no and
      other.name == @name
    end

    def set_text text
      @name = text
      self
    end

    alias text name

    def inspect # :nodoc:
      klass = self.class.name.split('::').last
      "{%s %d, %d:%d %p}" % [klass, @seek, @line_no, @char_no, @name]
    end

  end

  class TkError < Token
  end

  def Token(token, value = nil)
    value ||= TkToken2Reading[token]

    case token
    when String
      if (tk = TkReading2Token[token]).nil?
        IRB.fail TkReading2TokenNoKey, token
      end

      tk = Token(tk[0], value)

      if tk.kind_of?(TkOp) then
        tk.name = token
      end
    when Symbol
      if (tk = TkSymbol2Token[token]).nil?
        IRB.fail TkSymbol2TokenNoKey, token
      end

      tk = Token(tk[0], value)
    else
      if token.instance_method(:initialize).arity == 3 then
        tk = token.new(@prev_seek, @prev_line_no, @prev_char_no)
        tk.set_text value
      else
        tk = token.new(@prev_seek, @prev_line_no, @prev_char_no, value)
      end
    end

    tk
  end

  TokenDefinitions = [
    [:TkCLASS,      TkKW,  "class",  :EXPR_CLASS],
    [:TkMODULE,     TkKW,  "module", :EXPR_BEG],
    [:TkDEF,        TkKW,  "def",    :EXPR_FNAME],
    [:TkUNDEF,      TkKW,  "undef",  :EXPR_FNAME],
    [:TkBEGIN,      TkKW,  "begin",  :EXPR_BEG],
    [:TkRESCUE,     TkKW,  "rescue", :EXPR_MID],
    [:TkENSURE,     TkKW,  "ensure", :EXPR_BEG],
    [:TkEND,        TkKW,  "end",    :EXPR_END],
    [:TkIF,         TkKW,  "if",     :EXPR_BEG, :TkIF_MOD],
    [:TkUNLESS,     TkKW,  "unless", :EXPR_BEG, :TkUNLESS_MOD],
    [:TkTHEN,       TkKW,  "then",   :EXPR_BEG],
    [:TkELSIF,      TkKW,  "elsif",  :EXPR_BEG],
    [:TkELSE,       TkKW,  "else",   :EXPR_BEG],
    [:TkCASE,       TkKW,  "case",   :EXPR_BEG],
    [:TkWHEN,       TkKW,  "when",   :EXPR_BEG],
    [:TkWHILE,      TkKW,  "while",  :EXPR_BEG, :TkWHILE_MOD],
    [:TkUNTIL,      TkKW,  "until",  :EXPR_BEG, :TkUNTIL_MOD],
    [:TkFOR,        TkKW,  "for",    :EXPR_BEG],
    [:TkBREAK,      TkKW,  "break",  :EXPR_MID],
    [:TkNEXT,       TkKW,  "next",   :EXPR_END],
    [:TkREDO,       TkKW,  "redo",   :EXPR_END],
    [:TkRETRY,      TkKW,  "retry",  :EXPR_END],
    [:TkIN,         TkKW,  "in",     :EXPR_BEG],
    [:TkDO,         TkKW,  "do",     :EXPR_BEG],
    [:TkRETURN,     TkKW,  "return", :EXPR_MID],
    [:TkYIELD,      TkKW,  "yield",  :EXPR_END],
    [:TkSUPER,      TkKW,  "super",  :EXPR_END],
    [:TkSELF,       TkKW,  "self",   :EXPR_END],
    [:TkNIL,        TkKW,  "nil",    :EXPR_END],
    [:TkTRUE,       TkKW,  "true",   :EXPR_END],
    [:TkFALSE,      TkKW,  "false",  :EXPR_END],
    [:TkAND,        TkKW,  "and",    :EXPR_BEG],
    [:TkOR,         TkKW,  "or",     :EXPR_BEG],
    [:TkNOT,        TkKW,  "not",    :EXPR_BEG],
    [:TkIF_MOD,     TkKW],
    [:TkUNLESS_MOD, TkKW],
    [:TkWHILE_MOD,  TkKW],
    [:TkUNTIL_MOD,  TkKW],
    [:TkALIAS,      TkKW,  "alias",    :EXPR_FNAME],
    [:TkDEFINED,    TkKW,  "defined?", :EXPR_END],
    [:TklBEGIN,     TkKW,  "BEGIN",    :EXPR_END],
    [:TklEND,       TkKW,  "END",      :EXPR_END],
    [:Tk__LINE__,   TkKW,  "__LINE__", :EXPR_END],
    [:Tk__FILE__,   TkKW,  "__FILE__", :EXPR_END],

    [:TkIDENTIFIER, TkId],
    [:TkFID,        TkId],
    [:TkGVAR,       TkId],
    [:TkCVAR,       TkId],
    [:TkIVAR,       TkId],
    [:TkCONSTANT,   TkId],

    [:TkINTEGER,    TkVal],
    [:TkFLOAT,      TkVal],
    [:TkSTRING,     TkVal],
    [:TkHEREDOC,    TkVal],
    [:TkXSTRING,    TkVal],
    [:TkREGEXP,     TkVal],
    [:TkSYMBOL,     TkVal],
    [:TkCHAR,       TkVal],

    [:TkDSTRING,    TkNode],
    [:TkDXSTRING,   TkNode],
    [:TkDREGEXP,    TkNode],
    [:TkNTH_REF,    TkNode],
    [:TkBACK_REF,   TkNode],

    [:TkUPLUS,      TkOp,   "+@"],
    [:TkUMINUS,     TkOp,   "-@"],
    [:TkPOW,        TkOp,   "**"],
    [:TkCMP,        TkOp,   "<=>"],
    [:TkEQ,         TkOp,   "=="],
    [:TkEQQ,        TkOp,   "==="],
    [:TkNEQ,        TkOp,   "!="],
    [:TkGEQ,        TkOp,   ">="],
    [:TkLEQ,        TkOp,   "<="],
    [:TkANDOP,      TkOp,   "&&"],
    [:TkOROP,       TkOp,   "||"],
    [:TkMATCH,      TkOp,   "=~"],
    [:TkNMATCH,     TkOp,   "!~"],
    [:TkDOT2,       TkOp,   ".."],
    [:TkDOT3,       TkOp,   "..."],
    [:TkAREF,       TkOp,   "[]"],
    [:TkASET,       TkOp,   "[]="],
    [:TkLSHFT,      TkOp,   "<<"],
    [:TkRSHFT,      TkOp,   ">>"],
    [:TkCOLON2,     TkOp,   '::'],
    [:TkCOLON3,     TkOp,   '::'],
    #[:OPASGN,       TkOp],               # +=, -=  etc. #
    [:TkASSOC,      TkOp,   "=>"],
    [:TkQUESTION,   TkOp,   "?"], #?
    [:TkCOLON,      TkOp,   ":"],        #:

    [:TkfLPAREN,    Token,  "("], # func( #
    [:TkfLBRACK,    Token,  "["], # func[ #
    [:TkfLBRACE,    Token,  "{"], # func{ #
    [:TkSYMBEG,     Token,  ":"], # :SYMBOL

    [:TkAMPER,      TkOp,   "&"],
    [:TkGT,         TkOp,   ">"],
    [:TkLT,         TkOp,   "<"],
    [:TkPLUS,       TkOp,   "+"],
    [:TkSTAR,       TkOp,   "*"],
    [:TkMINUS,      TkOp,   "-"],
    [:TkMULT,       TkOp,   "*"],
    [:TkDIV,        TkOp,   "/"],
    [:TkMOD,        TkOp,   "%"],
    [:TkBITOR,      TkOp,   "|"],
    [:TkBITXOR,     TkOp,   "^"],
    [:TkBITAND,     TkOp,   "&"],
    [:TkBITNOT,     TkOp,   "~"],
    [:TkNOTOP,      TkOp,   "!"],

    [:TkBACKQUOTE,  TkOp,   "`"],

    [:TkASSIGN,     Token,  "="],
    [:TkDOT,        Token,  "."],
    [:TkLPAREN,     Token,  "("],  #(exp)
    [:TkLBRACK,     Token,  "["],  #[arry]
    [:TkLBRACE,     Token,  "{"],  #{hash}
    [:TkRPAREN,     Token,  ")"],
    [:TkRBRACK,     Token,  "]"],
    [:TkRBRACE,     Token,  "}"],
    [:TkCOMMA,      Token,  ","],
    [:TkSEMICOLON,  Token,  ";"],

    [:TkCOMMENT,    TkVal],
    [:TkSPACE,      Token,  " "],
    [:TkNL,         Token,  "\n"],
    [:TkEND_OF_SCRIPT],

    [:TkBACKSLASH,  TkUnknownChar,  "\\"],
    [:TkAT,         TkUnknownChar,  "@"],
    [:TkDOLLAR,     TkUnknownChar,  "$"],
  ]

  # {reading => token_class}
  # {reading => [token_class, *opt]}
  TkReading2Token = {}
  TkToken2Reading = {}
  TkSymbol2Token = {}

  def self.def_token(token_n, super_token = Token, reading = nil, *opts)
    token_n = token_n.id2name if token_n.kind_of?(Symbol)
    if const_defined?(token_n)
      IRB.fail AlreadyDefinedToken, token_n
    end
    token_c = eval("class #{token_n} < #{super_token}; end; #{token_n}")

    if reading
      TkToken2Reading[token_c] = reading

      return if TkReading2Token[reading]

      if opts.empty?
        TkReading2Token[reading] = [token_c]
      else
        TkReading2Token[reading] = [token_c].concat(opts)
      end
    end
    TkSymbol2Token[token_n.intern] = token_c
  end

  for defs in TokenDefinitions
    def_token(*defs)
  end

  def_token :TkRD_COMMENT, TkCOMMENT

  NEWLINE_TOKEN = TkNL.new 0, 0, 0, "\n"

  class TkSYMBOL

    def to_sym
      @sym ||= text[1..-1].intern
    end

  end

  # :startdoc:
end

lib64/ruby/2.2.0/rdoc/options.rb000064400000075620150402106110012053 0ustar00require 'optparse'
require 'pathname'

##
# RDoc::Options handles the parsing and storage of options
#
# == Saved Options
#
# You can save some options like the markup format in the
# <tt>.rdoc_options</tt> file in your gem.  The easiest way to do this is:
#
#   rdoc --markup tomdoc --write-options
#
# Which will automatically create the file and fill it with the options you
# specified.
#
# The following options will not be saved since they interfere with the user's
# preferences or with the normal operation of RDoc:
#
# * +--coverage-report+
# * +--dry-run+
# * +--encoding+
# * +--force-update+
# * +--format+
# * +--pipe+
# * +--quiet+
# * +--template+
# * +--verbose+
#
# == Custom Options
#
# Generators can hook into RDoc::Options to add generator-specific command
# line options.
#
# When <tt>--format</tt> is encountered in ARGV, RDoc calls ::setup_options on
# the generator class to add extra options to the option parser.  Options for
# custom generators must occur after <tt>--format</tt>.  <tt>rdoc --help</tt>
# will list options for all installed generators.
#
# Example:
#
#   class RDoc::Generator::Spellcheck
#     RDoc::RDoc.add_generator self
#
#     def self.setup_options rdoc_options
#       op = rdoc_options.option_parser
#
#       op.on('--spell-dictionary DICTIONARY',
#             RDoc::Options::Path) do |dictionary|
#         rdoc_options.spell_dictionary = dictionary
#       end
#     end
#   end
#
# Of course, RDoc::Options does not respond to +spell_dictionary+ by default
# so you will need to add it:
#
#   class RDoc::Options
#
#     ##
#     # The spell dictionary used by the spell-checking plugin.
#
#     attr_accessor :spell_dictionary
#
#   end
#
# == Option Validators
#
# OptionParser validators will validate and cast user input values.  In
# addition to the validators that ship with OptionParser (String, Integer,
# Float, TrueClass, FalseClass, Array, Regexp, Date, Time, URI, etc.),
# RDoc::Options adds Path, PathArray and Template.

class RDoc::Options

  ##
  # The deprecated options.

  DEPRECATED = {
    '--accessor'      => 'support discontinued',
    '--diagram'       => 'support discontinued',
    '--help-output'   => 'support discontinued',
    '--image-format'  => 'was an option for --diagram',
    '--inline-source' => 'source code is now always inlined',
    '--merge'         => 'ri now always merges class information',
    '--one-file'      => 'support discontinued',
    '--op-name'       => 'support discontinued',
    '--opname'        => 'support discontinued',
    '--promiscuous'   => 'files always only document their content',
    '--ri-system'     => 'Ruby installers use other techniques',
  }

  ##
  # RDoc options ignored (or handled specially) by --write-options

  SPECIAL = %w[
    coverage_report
    dry_run
    encoding
    files
    force_output
    force_update
    generator
    generator_name
    generator_options
    generators
    op_dir
    option_parser
    pipe
    rdoc_include
    root
    static_path
    stylesheet_url
    template
    template_dir
    update_output_dir
    verbosity
    write_options
  ]

  ##
  # Option validator for OptionParser that matches a directory that exists on
  # the filesystem.

  Directory = Object.new

  ##
  # Option validator for OptionParser that matches a file or directory that
  # exists on the filesystem.

  Path = Object.new

  ##
  # Option validator for OptionParser that matches a comma-separated list of
  # files or directories that exist on the filesystem.

  PathArray = Object.new

  ##
  # Option validator for OptionParser that matches a template directory for an
  # installed generator that lives in
  # <tt>"rdoc/generator/template/#{template_name}"</tt>

  Template = Object.new

  ##
  # Character-set for HTML output.  #encoding is preferred over #charset

  attr_accessor :charset

  ##
  # If true, RDoc will not write any files.

  attr_accessor :dry_run

  ##
  # The output encoding.  All input files will be transcoded to this encoding.
  #
  # The default encoding is UTF-8.  This is set via --encoding.

  attr_accessor :encoding

  ##
  # Files matching this pattern will be excluded

  attr_accessor :exclude

  ##
  # The list of files to be processed

  attr_accessor :files

  ##
  # Create the output even if the output directory does not look
  # like an rdoc output directory

  attr_accessor :force_output

  ##
  # Scan newer sources than the flag file if true.

  attr_accessor :force_update

  ##
  # Formatter to mark up text with

  attr_accessor :formatter

  ##
  # Description of the output generator (set with the <tt>--format</tt> option)

  attr_accessor :generator

  ##
  # For #==

  attr_reader :generator_name # :nodoc:

  ##
  # Loaded generator options.  Used to prevent --help from loading the same
  # options multiple times.

  attr_accessor :generator_options

  ##
  # Old rdoc behavior: hyperlink all words that match a method name,
  # even if not preceded by '#' or '::'

  attr_accessor :hyperlink_all

  ##
  # Include line numbers in the source code

  attr_accessor :line_numbers

  ##
  # The output locale.

  attr_accessor :locale

  ##
  # The directory where locale data live.

  attr_accessor :locale_dir

  ##
  # Name of the file, class or module to display in the initial index page (if
  # not specified the first file we encounter is used)

  attr_accessor :main_page

  ##
  # The default markup format.  The default is 'rdoc'.  'markdown', 'tomdoc'
  # and 'rd' are also built-in.

  attr_accessor :markup

  ##
  # If true, only report on undocumented files

  attr_accessor :coverage_report

  ##
  # The name of the output directory

  attr_accessor :op_dir

  ##
  # The OptionParser for this instance

  attr_accessor :option_parser

  ##
  # Output heading decorations?
  attr_accessor :output_decoration

  ##
  # Directory where guides, FAQ, and other pages not associated with a class
  # live.  You may leave this unset if these are at the root of your project.

  attr_accessor :page_dir

  ##
  # Is RDoc in pipe mode?

  attr_accessor :pipe

  ##
  # Array of directories to search for files to satisfy an :include:

  attr_accessor :rdoc_include

  ##
  # Root of the source documentation will be generated for.  Set this when
  # building documentation outside the source directory.  Defaults to the
  # current directory.

  attr_accessor :root

  ##
  # Include the '#' at the front of hyperlinked instance method names

  attr_accessor :show_hash

  ##
  # Directory to copy static files from

  attr_accessor :static_path

  ##
  # The number of columns in a tab

  attr_accessor :tab_width

  ##
  # Template to be used when generating output

  attr_accessor :template

  ##
  # Directory the template lives in

  attr_accessor :template_dir

  ##
  # Additional template stylesheets

  attr_accessor :template_stylesheets

  ##
  # Documentation title

  attr_accessor :title

  ##
  # Should RDoc update the timestamps in the output dir?

  attr_accessor :update_output_dir

  ##
  # Verbosity, zero means quiet

  attr_accessor :verbosity

  ##
  # URL of web cvs frontend

  attr_accessor :webcvs

  ##
  # Minimum visibility of a documented method. One of +:public+, +:protected+,
  # +:private+ or +:nodoc+.
  #
  # The +:nodoc+ visibility ignores all directives related to visibility.  The
  # other visibilities may be overridden on a per-method basis with the :doc:
  # directive.

  attr_reader :visibility

  def initialize # :nodoc:
    init_ivars
  end

  def init_ivars # :nodoc:
    @dry_run = false
    @exclude = []
    @files = nil
    @force_output = false
    @force_update = true
    @generator = nil
    @generator_name = nil
    @generator_options = []
    @generators = RDoc::RDoc::GENERATORS
    @hyperlink_all = false
    @line_numbers = false
    @locale = nil
    @locale_name = nil
    @locale_dir = 'locale'
    @main_page = nil
    @markup = 'rdoc'
    @coverage_report = false
    @op_dir = nil
    @page_dir = nil
    @pipe = false
    @output_decoration = true
    @rdoc_include = []
    @root = Pathname(Dir.pwd)
    @show_hash = false
    @static_path = []
    @stylesheet_url = nil # TODO remove in RDoc 4
    @tab_width = 8
    @template = nil
    @template_dir = nil
    @template_stylesheets = []
    @title = nil
    @update_output_dir = true
    @verbosity = 1
    @visibility = :protected
    @webcvs = nil
    @write_options = false

    if Object.const_defined? :Encoding then
      @encoding = Encoding::UTF_8
      @charset = @encoding.name
    else
      @encoding = nil
      @charset = 'UTF-8'
    end
  end

  def init_with map # :nodoc:
    init_ivars

    encoding = map['encoding']
    @encoding = if Object.const_defined? :Encoding then
                  encoding ? Encoding.find(encoding) : encoding
                end

    @charset        = map['charset']
    @exclude        = map['exclude']
    @generator_name = map['generator_name']
    @hyperlink_all  = map['hyperlink_all']
    @line_numbers   = map['line_numbers']
    @locale_name    = map['locale_name']
    @locale_dir     = map['locale_dir']
    @main_page      = map['main_page']
    @markup         = map['markup']
    @op_dir         = map['op_dir']
    @show_hash      = map['show_hash']
    @tab_width      = map['tab_width']
    @template_dir   = map['template_dir']
    @title          = map['title']
    @visibility     = map['visibility']
    @webcvs         = map['webcvs']

    @rdoc_include = sanitize_path map['rdoc_include']
    @static_path  = sanitize_path map['static_path']
  end

  def yaml_initialize tag, map # :nodoc:
    init_with map
  end

  def == other # :nodoc:
    self.class === other and
      @encoding       == other.encoding       and
      @generator_name == other.generator_name and
      @hyperlink_all  == other.hyperlink_all  and
      @line_numbers   == other.line_numbers   and
      @locale         == other.locale         and
      @locale_dir     == other.locale_dir and
      @main_page      == other.main_page      and
      @markup         == other.markup         and
      @op_dir         == other.op_dir         and
      @rdoc_include   == other.rdoc_include   and
      @show_hash      == other.show_hash      and
      @static_path    == other.static_path    and
      @tab_width      == other.tab_width      and
      @template       == other.template       and
      @title          == other.title          and
      @visibility     == other.visibility     and
      @webcvs         == other.webcvs
  end

  ##
  # Check that the files on the command line exist

  def check_files
    @files.delete_if do |file|
      if File.exist? file then
        if File.readable? file then
          false
        else
          warn "file '#{file}' not readable"

          true
        end
      else
        warn "file '#{file}' not found"

        true
      end
    end
  end

  ##
  # Ensure only one generator is loaded

  def check_generator
    if @generator then
      raise OptionParser::InvalidOption,
        "generator already set to #{@generator_name}"
    end
  end

  ##
  # Set the title, but only if not already set. Used to set the title
  # from a source file, so that a title set from the command line
  # will have the priority.

  def default_title=(string)
    @title ||= string
  end

  ##
  # For dumping YAML

  def encode_with coder # :nodoc:
    encoding = @encoding ? @encoding.name : nil

    coder.add 'encoding', encoding
    coder.add 'static_path',  sanitize_path(@static_path)
    coder.add 'rdoc_include', sanitize_path(@rdoc_include)

    ivars = instance_variables.map { |ivar| ivar.to_s[1..-1] }
    ivars -= SPECIAL

    ivars.sort.each do |ivar|
      coder.add ivar, instance_variable_get("@#{ivar}")
    end
  end

  ##
  # Completes any unfinished option setup business such as filtering for
  # existent files, creating a regexp for #exclude and setting a default
  # #template.

  def finish
    @op_dir ||= 'doc'

    @rdoc_include << "." if @rdoc_include.empty?
    root = @root.to_s
    @rdoc_include << root unless @rdoc_include.include?(root)

    if @exclude.nil? or Regexp === @exclude then
      # done, #finish is being re-run
    elsif @exclude.empty? then
      @exclude = nil
    else
      @exclude = Regexp.new(@exclude.join("|"))
    end

    finish_page_dir

    check_files

    # If no template was specified, use the default template for the output
    # formatter

    unless @template then
      @template     = @generator_name
      @template_dir = template_dir_for @template
    end

    if @locale_name
      @locale = RDoc::I18n::Locale[@locale_name]
      @locale.load(@locale_dir)
    else
      @locale = nil
    end

    self
  end

  ##
  # Fixes the page_dir to be relative to the root_dir and adds the page_dir to
  # the files list.

  def finish_page_dir
    return unless @page_dir

    @files << @page_dir.to_s

    page_dir = @page_dir.expand_path.relative_path_from @root

    @page_dir = page_dir
  end

  ##
  # Returns a properly-space list of generators and their descriptions.

  def generator_descriptions
    lengths = []

    generators = RDoc::RDoc::GENERATORS.map do |name, generator|
      lengths << name.length

      description = generator::DESCRIPTION if
        generator.const_defined? :DESCRIPTION

      [name, description]
    end

    longest = lengths.max

    generators.sort.map do |name, description|
      if description then
        "  %-*s - %s" % [longest, name, description]
      else
        "  #{name}"
      end
    end.join "\n"
  end

  ##
  # Parses command line options.

  def parse argv
    ignore_invalid = true

    argv.insert(0, *ENV['RDOCOPT'].split) if ENV['RDOCOPT']

    opts = OptionParser.new do |opt|
      @option_parser = opt
      opt.program_name = File.basename $0
      opt.version = RDoc::VERSION
      opt.release = nil
      opt.summary_indent = ' ' * 4
      opt.banner = <<-EOF
Usage: #{opt.program_name} [options] [names...]

  Files are parsed, and the information they contain collected, before any
  output is produced. This allows cross references between all files to be
  resolved. If a name is a directory, it is traversed. If no names are
  specified, all Ruby files in the current directory (and subdirectories) are
  processed.

  How RDoc generates output depends on the output formatter being used, and on
  the options you give.

  Options can be specified via the RDOCOPT environment variable, which
  functions similar to the RUBYOPT environment variable for ruby.

    $ export RDOCOPT="--show-hash"

  will make rdoc show hashes in method links by default.  Command-line options
  always will override those in RDOCOPT.

  Available formatters:

#{generator_descriptions}

  RDoc understands the following file formats:

      EOF

      parsers = Hash.new { |h,parser| h[parser] = [] }

      RDoc::Parser.parsers.each do |regexp, parser|
        parsers[parser.name.sub('RDoc::Parser::', '')] << regexp.source
      end

      parsers.sort.each do |parser, regexp|
        opt.banner << "  - #{parser}: #{regexp.join ', '}\n"
      end
      opt.banner << "  - TomDoc:  Only in ruby files\n"

      opt.banner << "\n  The following options are deprecated:\n\n"

      name_length = DEPRECATED.keys.sort_by { |k| k.length }.last.length

      DEPRECATED.sort_by { |k,| k }.each do |name, reason|
        opt.banner << "    %*1$2$s  %3$s\n" % [-name_length, name, reason]
      end

      opt.accept Template do |template|
        template_dir = template_dir_for template

        unless template_dir then
          $stderr.puts "could not find template #{template}"
          nil
        else
          [template, template_dir]
        end
      end

      opt.accept Directory do |directory|
        directory = File.expand_path directory

        raise OptionParser::InvalidArgument unless File.directory? directory

        directory
      end

      opt.accept Path do |path|
        path = File.expand_path path

        raise OptionParser::InvalidArgument unless File.exist? path

        path
      end

      opt.accept PathArray do |paths,|
        paths = if paths then
                  paths.split(',').map { |d| d unless d.empty? }
                end

        paths.map do |path|
          path = File.expand_path path

          raise OptionParser::InvalidArgument unless File.exist? path

          path
        end
      end

      opt.separator nil
      opt.separator "Parsing options:"
      opt.separator nil

      if Object.const_defined? :Encoding then
        opt.on("--encoding=ENCODING", "-e", Encoding.list.map { |e| e.name },
               "Specifies the output encoding.  All files",
               "read will be converted to this encoding.",
               "The default encoding is UTF-8.",
               "--encoding is preferred over --charset") do |value|
                 @encoding = Encoding.find value
                 @charset = @encoding.name # may not be valid value
               end

        opt.separator nil
      end


      opt.on("--locale=NAME",
             "Specifies the output locale.") do |value|
        @locale_name = value
      end

      opt.on("--locale-data-dir=DIR",
             "Specifies the directory where locale data live.") do |value|
        @locale_dir = value
      end

      opt.separator nil

      opt.on("--all", "-a",
             "Synonym for --visibility=private.") do |value|
        @visibility = :private
      end

      opt.separator nil

      opt.on("--exclude=PATTERN", "-x", Regexp,
             "Do not process files or directories",
             "matching PATTERN.") do |value|
        @exclude << value
      end

      opt.separator nil

      opt.on("--extension=NEW=OLD", "-E",
             "Treat files ending with .new as if they",
             "ended with .old. Using '-E cgi=rb' will",
             "cause xxx.cgi to be parsed as a Ruby file.") do |value|
        new, old = value.split(/=/, 2)

        unless new and old then
          raise OptionParser::InvalidArgument, "Invalid parameter to '-E'"
        end

        unless RDoc::Parser.alias_extension old, new then
          raise OptionParser::InvalidArgument, "Unknown extension .#{old} to -E"
        end
      end

      opt.separator nil

      opt.on("--[no-]force-update", "-U",
             "Forces rdoc to scan all sources even if",
             "newer than the flag file.") do |value|
        @force_update = value
      end

      opt.separator nil

      opt.on("--pipe", "-p",
             "Convert RDoc on stdin to HTML") do
        @pipe = true
      end

      opt.separator nil

      opt.on("--tab-width=WIDTH", "-w", Integer,
             "Set the width of tab characters.") do |value|
        raise OptionParser::InvalidArgument,
              "#{value} is an invalid tab width" if value <= 0
        @tab_width = value
      end

      opt.separator nil

      opt.on("--visibility=VISIBILITY", "-V", RDoc::VISIBILITIES + [:nodoc],
             "Minimum visibility to document a method.",
             "One of 'public', 'protected' (the default),",
             "'private' or 'nodoc' (show everything)") do |value|
        @visibility = value
      end

      opt.separator nil

      markup_formats = RDoc::Text::MARKUP_FORMAT.keys.sort

      opt.on("--markup=MARKUP", markup_formats,
             "The markup format for the named files.",
             "The default is rdoc.  Valid values are:",
             markup_formats.join(', ')) do |value|
        @markup = value
      end

      opt.separator nil

      opt.on("--root=ROOT", Directory,
             "Root of the source tree documentation",
             "will be generated for.  Set this when",
             "building documentation outside the",
             "source directory.  Default is the",
             "current directory.") do |root|
        @root = Pathname(root)
      end

      opt.separator nil

      opt.on("--page-dir=DIR", Directory,
             "Directory where guides, your FAQ or",
             "other pages not associated with a class",
             "live.  Set this when you don't store",
             "such files at your project root.",
             "NOTE: Do not use the same file name in",
             "the page dir and the root of your project") do |page_dir|
        @page_dir = Pathname(page_dir)
      end

      opt.separator nil
      opt.separator "Common generator options:"
      opt.separator nil

      opt.on("--force-output", "-O",
             "Forces rdoc to write the output files,",
             "even if the output directory exists",
             "and does not seem to have been created",
             "by rdoc.") do |value|
        @force_output = value
      end

      opt.separator nil

      generator_text = @generators.keys.map { |name| "  #{name}" }.sort

      opt.on("-f", "--fmt=FORMAT", "--format=FORMAT", @generators.keys,
             "Set the output formatter.  One of:", *generator_text) do |value|
        check_generator

        @generator_name = value.downcase
        setup_generator
      end

      opt.separator nil

      opt.on("--include=DIRECTORIES", "-i", PathArray,
             "Set (or add to) the list of directories to",
             "be searched when satisfying :include:",
             "requests. Can be used more than once.") do |value|
        @rdoc_include.concat value.map { |dir| dir.strip }
      end

      opt.separator nil

      opt.on("--[no-]coverage-report=[LEVEL]", "--[no-]dcov", "-C", Integer,
             "Prints a report on undocumented items.",
             "Does not generate files.") do |value|
        value = 0 if value.nil? # Integer converts -C to nil

        @coverage_report = value
        @force_update = true if value
      end

      opt.separator nil

      opt.on("--output=DIR", "--op", "-o",
             "Set the output directory.") do |value|
        @op_dir = value
      end

      opt.separator nil

      opt.on("-d",
             "Deprecated --diagram option.",
             "Prevents firing debug mode",
             "with legacy invocation.") do |value|
      end

      opt.separator nil
      opt.separator 'HTML generator options:'
      opt.separator nil

      opt.on("--charset=CHARSET", "-c",
             "Specifies the output HTML character-set.",
             "Use --encoding instead of --charset if",
             "available.") do |value|
        @charset = value
      end

      opt.separator nil

      opt.on("--hyperlink-all", "-A",
             "Generate hyperlinks for all words that",
             "correspond to known methods, even if they",
             "do not start with '#' or '::' (legacy",
             "behavior).") do |value|
        @hyperlink_all = value
      end

      opt.separator nil

      opt.on("--main=NAME", "-m",
             "NAME will be the initial page displayed.") do |value|
        @main_page = value
      end

      opt.separator nil

      opt.on("--[no-]line-numbers", "-N",
             "Include line numbers in the source code.",
             "By default, only the number of the first",
             "line is displayed, in a leading comment.") do |value|
        @line_numbers = value
      end

      opt.separator nil

      opt.on("--show-hash", "-H",
             "A name of the form #name in a comment is a",
             "possible hyperlink to an instance method",
             "name. When displayed, the '#' is removed",
             "unless this option is specified.") do |value|
        @show_hash = value
      end

      opt.separator nil

      opt.on("--template=NAME", "-T", Template,
             "Set the template used when generating",
             "output. The default depends on the",
             "formatter used.") do |(template, template_dir)|
        @template     = template
        @template_dir = template_dir
      end

      opt.separator nil

      opt.on("--template-stylesheets=FILES", PathArray,
             "Set (or add to) the list of files to",
             "include with the html template.") do |value|
        @template_stylesheets << value
      end

      opt.separator nil

      opt.on("--title=TITLE", "-t",
             "Set TITLE as the title for HTML output.") do |value|
        @title = value
      end

      opt.separator nil

      opt.on("--copy-files=PATH", Path,
             "Specify a file or directory to copy static",
             "files from.",
             "If a file is given it will be copied into",
             "the output dir.  If a directory is given the",
             "entire directory will be copied.",
             "You can use this multiple times") do |value|
        @static_path << value
      end

      opt.separator nil

      opt.on("--webcvs=URL", "-W",
             "Specify a URL for linking to a web frontend",
             "to CVS. If the URL contains a '\%s', the",
             "name of the current file will be",
             "substituted; if the URL doesn't contain a",
             "'\%s', the filename will be appended to it.") do |value|
        @webcvs = value
      end

      opt.separator nil
      opt.separator "ri generator options:"
      opt.separator nil

      opt.on("--ri", "-r",
             "Generate output for use by `ri`. The files",
             "are stored in the '.rdoc' directory under",
             "your home directory unless overridden by a",
             "subsequent --op parameter, so no special",
             "privileges are needed.") do |value|
        check_generator

        @generator_name = "ri"
        @op_dir ||= RDoc::RI::Paths::HOMEDIR
        setup_generator
      end

      opt.separator nil

      opt.on("--ri-site", "-R",
             "Generate output for use by `ri`. The files",
             "are stored in a site-wide directory,",
             "making them accessible to others, so",
             "special privileges are needed.") do |value|
        check_generator

        @generator_name = "ri"
        @op_dir = RDoc::RI::Paths.site_dir
        setup_generator
      end

      opt.separator nil
      opt.separator "Generic options:"
      opt.separator nil

      opt.on("--write-options",
             "Write .rdoc_options to the current",
             "directory with the given options.  Not all",
             "options will be used.  See RDoc::Options",
             "for details.") do |value|
        @write_options = true
      end

      opt.separator nil

      opt.on("--[no-]dry-run",
             "Don't write any files") do |value|
        @dry_run = value
      end

      opt.separator nil

      opt.on("-D", "--[no-]debug",
             "Displays lots on internal stuff.") do |value|
        $DEBUG_RDOC = value
      end

      opt.separator nil

      opt.on("--[no-]ignore-invalid",
             "Ignore invalid options and continue",
             "(default true).") do |value|
        ignore_invalid = value
      end

      opt.separator nil

      opt.on("--quiet", "-q",
             "Don't show progress as we parse.") do |value|
        @verbosity = 0
      end

      opt.separator nil

      opt.on("--verbose", "-V",
             "Display extra progress as RDoc parses") do |value|
        @verbosity = 2
      end

      opt.separator nil

      opt.on("--version", "-v", "print the version") do
        puts opt.version
        exit
      end

      opt.separator nil

      opt.on("--help", "-h", "Display this help") do
        RDoc::RDoc::GENERATORS.each_key do |generator|
          setup_generator generator
        end

        puts opt.help
        exit
      end

      opt.separator nil
    end

    setup_generator 'darkfish' if
      argv.grep(/\A(-f|--fmt|--format|-r|-R|--ri|--ri-site)\b/).empty?

    deprecated = []
    invalid = []

    begin
      opts.parse! argv
    rescue OptionParser::ParseError => e
      if DEPRECATED[e.args.first] then
        deprecated << e.args.first
      elsif %w[--format --ri -r --ri-site -R].include? e.args.first then
        raise
      else
        invalid << e.args.join(' ')
      end

      retry
    end

    unless @generator then
      @generator = RDoc::Generator::Darkfish
      @generator_name = 'darkfish'
    end

    if @pipe and not argv.empty? then
      @pipe = false
      invalid << '-p (with files)'
    end

    unless quiet then
      deprecated.each do |opt|
        $stderr.puts 'option ' << opt << ' is deprecated: ' << DEPRECATED[opt]
      end
    end

    unless invalid.empty? then
      invalid = "invalid options: #{invalid.join ', '}"

      if ignore_invalid then
        unless quiet then
          $stderr.puts invalid
          $stderr.puts '(invalid options are ignored)'
        end
      else
        unless quiet then
          $stderr.puts opts
        end
        $stderr.puts invalid
        exit 1
      end
    end

    @files = argv.dup

    finish

    if @write_options then
      write_options
      exit
    end

    self
  end

  ##
  # Don't display progress as we process the files

  def quiet
    @verbosity.zero?
  end

  ##
  # Set quietness to +bool+

  def quiet= bool
    @verbosity = bool ? 0 : 1
  end

  ##
  # Removes directories from +path+ that are outside the current directory

  def sanitize_path path
    require 'pathname'
    dot = Pathname.new('.').expand_path

    path.reject do |item|
      path = Pathname.new(item).expand_path
      relative = path.relative_path_from(dot).to_s
      relative.start_with? '..'
    end
  end

  ##
  # Set up an output generator for the named +generator_name+.
  #
  # If the found generator responds to :setup_options it will be called with
  # the options instance.  This allows generators to add custom options or set
  # default options.

  def setup_generator generator_name = @generator_name
    @generator = @generators[generator_name]

    unless @generator then
      raise OptionParser::InvalidArgument,
            "Invalid output formatter #{generator_name}"
    end

    return if @generator_options.include? @generator

    @generator_name = generator_name
    @generator_options << @generator

    if @generator.respond_to? :setup_options then
      @option_parser ||= OptionParser.new
      @generator.setup_options self
    end
  end

  ##
  # Finds the template dir for +template+

  def template_dir_for template
    template_path = File.join 'rdoc', 'generator', 'template', template

    $LOAD_PATH.map do |path|
      File.join File.expand_path(path), template_path
    end.find do |dir|
      File.directory? dir
    end
  end

  ##
  # This is compatibility code for syck

  def to_yaml opts = {} # :nodoc:
    return super if YAML.const_defined?(:ENGINE) and not YAML::ENGINE.syck?

    YAML.quick_emit self, opts do |out|
      out.map taguri, to_yaml_style do |map|
        encode_with map
      end
    end
  end

  # Sets the minimum visibility of a documented method.
  #
  # Accepts +:public+, +:protected+, +:private+, +:nodoc+, or +:all+.
  #
  # When +:all+ is passed, visibility is set to +:private+, similarly to
  # RDOCOPT="--all", see #visibility for more information.

  def visibility= visibility
    case visibility
    when :all
      @visibility = :private
    else
      @visibility = visibility
    end
  end

  ##
  # Displays a warning using Kernel#warn if we're being verbose

  def warn message
    super message if @verbosity > 1
  end

  ##
  # Writes the YAML file .rdoc_options to the current directory containing the
  # parsed options.

  def write_options
    RDoc.load_yaml

    open '.rdoc_options', 'w' do |io|
      io.set_encoding Encoding::UTF_8 if Object.const_defined? :Encoding

      YAML.dump self, io
    end
  end

end

lib64/ruby/2.2.0/rdoc/stats.rb000064400000024713150402106110011513 0ustar00##
# RDoc statistics collector which prints a summary and report of a project's
# documentation totals.

class RDoc::Stats

  include RDoc::Text

  ##
  # Output level for the coverage report

  attr_reader :coverage_level

  ##
  # Count of files parsed during parsing

  attr_reader :files_so_far

  ##
  # Total number of files found

  attr_reader :num_files

  ##
  # Creates a new Stats that will have +num_files+.  +verbosity+ defaults to 1
  # which will create an RDoc::Stats::Normal outputter.

  def initialize store, num_files, verbosity = 1
    @num_files = num_files
    @store     = store

    @coverage_level   = 0
    @doc_items        = nil
    @files_so_far     = 0
    @fully_documented = false
    @num_params       = 0
    @percent_doc      = nil
    @start            = Time.now
    @undoc_params     = 0

    @display = case verbosity
               when 0 then Quiet.new   num_files
               when 1 then Normal.new  num_files
               else        Verbose.new num_files
               end
  end

  ##
  # Records the parsing of an alias +as+.

  def add_alias as
    @display.print_alias as
  end

  ##
  # Records the parsing of an attribute +attribute+

  def add_attribute attribute
    @display.print_attribute attribute
  end

  ##
  # Records the parsing of a class +klass+

  def add_class klass
    @display.print_class klass
  end

  ##
  # Records the parsing of +constant+

  def add_constant constant
    @display.print_constant constant
  end

  ##
  # Records the parsing of +file+

  def add_file(file)
    @files_so_far += 1
    @display.print_file @files_so_far, file
  end

  ##
  # Records the parsing of +method+

  def add_method(method)
    @display.print_method method
  end

  ##
  # Records the parsing of a module +mod+

  def add_module(mod)
    @display.print_module mod
  end

  ##
  # Call this to mark the beginning of parsing for display purposes

  def begin_adding
    @display.begin_adding
  end

  ##
  # Calculates documentation totals and percentages for classes, modules,
  # constants, attributes and methods.

  def calculate
    return if @doc_items

    ucm = @store.unique_classes_and_modules

    classes = @store.unique_classes.reject { |cm| cm.full_name == 'Object' }

    constants = []
    ucm.each { |cm| constants.concat cm.constants }

    methods = []
    ucm.each { |cm| methods.concat cm.method_list }

    attributes = []
    ucm.each { |cm| attributes.concat cm.attributes }

    @num_attributes, @undoc_attributes = doc_stats attributes
    @num_classes,    @undoc_classes    = doc_stats classes
    @num_constants,  @undoc_constants  = doc_stats constants
    @num_methods,    @undoc_methods    = doc_stats methods
    @num_modules,    @undoc_modules    = doc_stats @store.unique_modules

    @num_items =
      @num_attributes +
      @num_classes +
      @num_constants +
      @num_methods +
      @num_modules +
      @num_params

    @undoc_items =
      @undoc_attributes +
      @undoc_classes +
      @undoc_constants +
      @undoc_methods +
      @undoc_modules +
      @undoc_params

    @doc_items = @num_items - @undoc_items
  end

  ##
  # Sets coverage report level.  Accepted values are:
  #
  # false or nil:: No report
  # 0:: Classes, modules, constants, attributes, methods
  # 1:: Level 0 + method parameters

  def coverage_level= level
    level = -1 unless level

    @coverage_level = level
  end

  ##
  # Returns the length and number of undocumented items in +collection+.

  def doc_stats collection
    visible = collection.select { |item| item.display? }
    [visible.length, visible.count { |item| not item.documented? }]
  end

  ##
  # Call this to mark the end of parsing for display purposes

  def done_adding
    @display.done_adding
  end

  ##
  # The documentation status of this project.  +true+ when 100%, +false+ when
  # less than 100% and +nil+ when unknown.
  #
  # Set by calling #calculate

  def fully_documented?
    @fully_documented
  end

  ##
  # A report that says you did a great job!

  def great_job
    report = RDoc::Markup::Document.new

    report << RDoc::Markup::Paragraph.new('100% documentation!')
    report << RDoc::Markup::Paragraph.new('Great Job!')

    report
  end

  ##
  # Calculates the percentage of items documented.

  def percent_doc
    return @percent_doc if @percent_doc

    @fully_documented = (@num_items - @doc_items) == 0

    @percent_doc = @doc_items.to_f / @num_items * 100 if @num_items.nonzero?
    @percent_doc ||= 0

    @percent_doc
  end

  ##
  # Returns a report on which items are not documented

  def report
    if @coverage_level > 0 then
      extend RDoc::Text
    end

    if @coverage_level.zero? then
      calculate

      return great_job if @num_items == @doc_items
    end

    ucm = @store.unique_classes_and_modules

    report = RDoc::Markup::Document.new
    report << RDoc::Markup::Paragraph.new('The following items are not documented:')
    report << RDoc::Markup::BlankLine.new

    ucm.sort.each do |cm|
      body = report_class_module(cm) {
        [
          report_constants(cm),
          report_attributes(cm),
          report_methods(cm),
        ].compact
      }

      report << body if body
    end

    if @coverage_level > 0 then
      calculate

      return great_job if @num_items == @doc_items
    end

    report
  end

  ##
  # Returns a report on undocumented attributes in ClassModule +cm+

  def report_attributes cm
    return if cm.attributes.empty?

    report = []

    cm.each_attribute do |attr|
      next if attr.documented?
      line = attr.line ? ":#{attr.line}" : nil
      report << "  #{attr.definition} :#{attr.name} # in file #{attr.file.full_name}#{line}\n"
      report << "\n"
    end

    report
  end

  ##
  # Returns a report on undocumented items in ClassModule +cm+

  def report_class_module cm
    return if cm.fully_documented? and @coverage_level.zero?
    return unless cm.display?

    report = RDoc::Markup::Document.new

    if cm.in_files.empty? then
      report << RDoc::Markup::Paragraph.new("#{cm.definition} is referenced but empty.")
      report << RDoc::Markup::Paragraph.new("It probably came from another project.  I'm sorry I'm holding it against you.")

      return report
    elsif cm.documented? then
      documented = true
      klass = RDoc::Markup::Verbatim.new("#{cm.definition} # is documented\n")
    else
      report << RDoc::Markup::Paragraph.new('In files:')

      list = RDoc::Markup::List.new :BULLET

      cm.in_files.each do |file|
        para = RDoc::Markup::Paragraph.new file.full_name
        list << RDoc::Markup::ListItem.new(nil, para)
      end

      report << list
      report << RDoc::Markup::BlankLine.new

      klass = RDoc::Markup::Verbatim.new("#{cm.definition}\n")
    end

    klass << "\n"

    body = yield.flatten # HACK remove #flatten

    if body.empty? then
      return if documented

      klass.parts.pop
    else
      klass.parts.concat body
    end

    klass << "end\n"

    report << klass

    report
  end

  ##
  # Returns a report on undocumented constants in ClassModule +cm+

  def report_constants cm
    return if cm.constants.empty?

    report = []

    cm.each_constant do |constant|
      # TODO constant aliases are listed in the summary but not reported
      # figure out what to do here
      next if constant.documented? || constant.is_alias_for

      line = constant.line ? ":#{constant.line}" : line
      report << "  # in file #{constant.file.full_name}#{line}\n"
      report << "  #{constant.name} = nil\n"
      report << "\n"
    end

    report
  end

  ##
  # Returns a report on undocumented methods in ClassModule +cm+

  def report_methods cm
    return if cm.method_list.empty?

    report = []

    cm.each_method do |method|
      next if method.documented? and @coverage_level.zero?

      if @coverage_level > 0 then
        params, undoc = undoc_params method

        @num_params += params

        unless undoc.empty? then
          @undoc_params += undoc.length

          undoc = undoc.map do |param| "+#{param}+" end
          param_report = "  # #{undoc.join ', '} is not documented\n"
        end
      end

      next if method.documented? and not param_report

      line = method.line ? ":#{method.line}" : nil
      scope = method.singleton ? 'self.' : nil

      report << "  # in file #{method.file.full_name}#{line}\n"
      report << param_report if param_report
      report << "  def #{scope}#{method.name}#{method.params}; end\n"
      report << "\n"
    end

    report
  end

  ##
  # Returns a summary of the collected statistics.

  def summary
    calculate

    num_width = [@num_files, @num_items].max.to_s.length
    undoc_width = [
      @undoc_attributes,
      @undoc_classes,
      @undoc_constants,
      @undoc_items,
      @undoc_methods,
      @undoc_modules,
      @undoc_params,
    ].max.to_s.length

    report = RDoc::Markup::Verbatim.new

    report << "Files:      %*d\n" % [num_width, @num_files]

    report << "\n"

    report << "Classes:    %*d (%*d undocumented)\n" % [
      num_width, @num_classes, undoc_width, @undoc_classes]
    report << "Modules:    %*d (%*d undocumented)\n" % [
      num_width, @num_modules, undoc_width, @undoc_modules]
    report << "Constants:  %*d (%*d undocumented)\n" % [
      num_width, @num_constants, undoc_width, @undoc_constants]
    report << "Attributes: %*d (%*d undocumented)\n" % [
      num_width, @num_attributes, undoc_width, @undoc_attributes]
    report << "Methods:    %*d (%*d undocumented)\n" % [
      num_width, @num_methods, undoc_width, @undoc_methods]
    report << "Parameters: %*d (%*d undocumented)\n" % [
      num_width, @num_params, undoc_width, @undoc_params] if
        @coverage_level > 0

    report << "\n"

    report << "Total:      %*d (%*d undocumented)\n" % [
      num_width, @num_items, undoc_width, @undoc_items]

    report << "%6.2f%% documented\n" % percent_doc
    report << "\n"
    report << "Elapsed: %0.1fs\n" % (Time.now - @start)

    RDoc::Markup::Document.new report
  end

  ##
  # Determines which parameters in +method+ were not documented.  Returns a
  # total parameter count and an Array of undocumented methods.

  def undoc_params method
    @formatter ||= RDoc::Markup::ToTtOnly.new

    params = method.param_list

    params = params.map { |param| param.gsub(/^\*\*?/, '') }

    return 0, [] if params.empty?

    document = parse method.comment

    tts = document.accept @formatter

    undoc = params - tts

    [params.length, undoc]
  end

  autoload :Quiet,   'rdoc/stats/quiet'
  autoload :Normal,  'rdoc/stats/normal'
  autoload :Verbose, 'rdoc/stats/verbose'

end

lib64/ruby/2.2.0/rdoc/i18n.rb000064400000000227150402106110011126 0ustar00##
# This module provides i18n realated features.

module RDoc::I18n

  autoload :Locale, 'rdoc/i18n/locale'
  autoload :Text,   'rdoc/i18n/text'

end
lib64/ruby/2.2.0/rdoc/require.rb000064400000001647150402106110012032 0ustar00##
# A file loaded by \#require

class RDoc::Require < RDoc::CodeObject

  ##
  # Name of the required file

  attr_accessor :name

  ##
  # Creates a new Require that loads +name+ with +comment+

  def initialize(name, comment)
    super()
    @name = name.gsub(/'|"/, "") #'
    @top_level = nil
    self.comment = comment
  end

  def inspect # :nodoc:
    "#<%s:0x%x require '%s' in %s>" % [
      self.class,
      object_id,
      @name,
      parent_file_name,
    ]
  end

  def to_s # :nodoc:
    "require #{name} in: #{parent}"
  end

  ##
  # The RDoc::TopLevel corresponding to this require, or +nil+ if not found.

  def top_level
    @top_level ||= begin
      tl = RDoc::TopLevel.all_files_hash[name + '.rb']

      if tl.nil? and RDoc::TopLevel.all_files.first.full_name =~ %r(^lib/) then
        # second chance
        tl = RDoc::TopLevel.all_files_hash['lib/' + name + '.rb']
      end

      tl
    end
  end

end

lib64/ruby/2.2.0/rdoc/mixin.rb000064400000005344150402106110011500 0ustar00##
# A Mixin adds features from a module into another context.  RDoc::Include and
# RDoc::Extend are both mixins.

class RDoc::Mixin < RDoc::CodeObject

  ##
  # Name of included module

  attr_accessor :name

  ##
  # Creates a new Mixin for +name+ with +comment+

  def initialize(name, comment)
    super()
    @name = name
    self.comment = comment
    @module = nil # cache for module if found
  end

  ##
  # Mixins are sorted by name

  def <=> other
    return unless self.class === other

    name <=> other.name
  end

  def == other # :nodoc:
    self.class === other and @name == other.name
  end

  alias eql? == # :nodoc:

  ##
  # Full name based on #module

  def full_name
    m = self.module
    RDoc::ClassModule === m ? m.full_name : @name
  end

  def hash # :nodoc:
    [@name, self.module].hash
  end

  def inspect # :nodoc:
    "#<%s:0x%x %s.%s %s>" % [
      self.class,
      object_id,
      parent_name, self.class.name.downcase, @name,
    ]
  end

  ##
  # Attempts to locate the included module object.  Returns the name if not
  # known.
  #
  # The scoping rules of Ruby to resolve the name of an included module are:
  # - first look into the children of the current context;
  # - if not found, look into the children of included modules,
  #   in reverse inclusion order;
  # - if still not found, go up the hierarchy of names.
  #
  # This method has <code>O(n!)</code> behavior when the module calling
  # include is referencing nonexistent modules.  Avoid calling #module until
  # after all the files are parsed.  This behavior is due to ruby's constant
  # lookup behavior.
  #
  # As of the beginning of October, 2011, no gem includes nonexistent modules.

  def module
    return @module if @module

    # search the current context
    return @name unless parent
    full_name = parent.child_name(@name)
    @module = @store.modules_hash[full_name]
    return @module if @module
    return @name if @name =~ /^::/

    # search the includes before this one, in reverse order
    searched = parent.includes.take_while { |i| i != self }.reverse
    searched.each do |i|
      inc = i.module
      next if String === inc
      full_name = inc.child_name(@name)
      @module = @store.modules_hash[full_name]
      return @module if @module
    end

    # go up the hierarchy of names
    up = parent.parent
    while up
      full_name = up.child_name(@name)
      @module = @store.modules_hash[full_name]
      return @module if @module
      up = up.parent
    end

    @name
  end

  ##
  # Sets the store for this class or module and its contained code objects.

  def store= store
    super

    @file = @store.add_file @file.full_name if @file
  end

  def to_s # :nodoc:
    "#{self.class.name.downcase} #@name in: #{parent}"
  end

end

lib64/ruby/2.2.0/rdoc/context.rb000064400000071415150402106110012042 0ustar00require 'cgi'

##
# A Context is something that can hold modules, classes, methods, attributes,
# aliases, requires, and includes. Classes, modules, and files are all
# Contexts.

class RDoc::Context < RDoc::CodeObject

  include Comparable

  ##
  # Types of methods

  TYPES = %w[class instance]

  ##
  # If a context has these titles it will be sorted in this order.

  TOMDOC_TITLES = [nil, 'Public', 'Internal', 'Deprecated'] # :nodoc:
  TOMDOC_TITLES_SORT = TOMDOC_TITLES.sort_by { |title| title.to_s } # :nodoc:

  ##
  # Class/module aliases

  attr_reader :aliases

  ##
  # All attr* methods

  attr_reader :attributes

  ##
  # Block params to be used in the next MethodAttr parsed under this context

  attr_accessor :block_params

  ##
  # Constants defined

  attr_reader :constants

  ##
  # Sets the current documentation section of documentation

  attr_writer :current_section

  ##
  # Files this context is found in

  attr_reader :in_files

  ##
  # Modules this context includes

  attr_reader :includes

  ##
  # Modules this context is extended with

  attr_reader :extends

  ##
  # Methods defined in this context

  attr_reader :method_list

  ##
  # Name of this class excluding namespace.  See also full_name

  attr_reader :name

  ##
  # Files this context requires

  attr_reader :requires

  ##
  # Use this section for the next method, attribute or constant added.

  attr_accessor :temporary_section

  ##
  # Hash <tt>old_name => [aliases]</tt>, for aliases
  # that haven't (yet) been resolved to a method/attribute.
  # (Not to be confused with the aliases of the context.)

  attr_accessor :unmatched_alias_lists

  ##
  # Aliases that could not be resolved.

  attr_reader :external_aliases

  ##
  # Current visibility of this context

  attr_accessor :visibility

  ##
  # Hash of registered methods. Attributes are also registered here,
  # twice if they are RW.

  attr_reader :methods_hash

  ##
  # Params to be used in the next MethodAttr parsed under this context

  attr_accessor :params

  ##
  # Hash of registered constants.

  attr_reader :constants_hash

  ##
  # Creates an unnamed empty context with public current visibility

  def initialize
    super

    @in_files = []

    @name    ||= "unknown"
    @parent  = nil
    @visibility = :public

    @current_section = Section.new self, nil, nil
    @sections = { nil => @current_section }
    @temporary_section = nil

    @classes = {}
    @modules = {}

    initialize_methods_etc
  end

  ##
  # Sets the defaults for methods and so-forth

  def initialize_methods_etc
    @method_list = []
    @attributes  = []
    @aliases     = []
    @requires    = []
    @includes    = []
    @extends     = []
    @constants   = []
    @external_aliases = []

    # This Hash maps a method name to a list of unmatched aliases (aliases of
    # a method not yet encountered).
    @unmatched_alias_lists = {}

    @methods_hash   = {}
    @constants_hash = {}

    @params = nil

    @store ||= nil
  end

  ##
  # Contexts are sorted by full_name

  def <=>(other)
    return nil unless RDoc::CodeObject === other

    full_name <=> other.full_name
  end

  ##
  # Adds an item of type +klass+ with the given +name+ and +comment+ to the
  # context.
  #
  # Currently only RDoc::Extend and RDoc::Include are supported.

  def add klass, name, comment
    if RDoc::Extend == klass then
      ext = RDoc::Extend.new name, comment
      add_extend ext
    elsif RDoc::Include == klass then
      incl = RDoc::Include.new name, comment
      add_include incl
    else
      raise NotImplementedError, "adding a #{klass} is not implemented"
    end
  end

  ##
  # Adds +an_alias+ that is automatically resolved

  def add_alias an_alias
    return an_alias unless @document_self

    method_attr = find_method(an_alias.old_name, an_alias.singleton) ||
                  find_attribute(an_alias.old_name, an_alias.singleton)

    if method_attr then
      method_attr.add_alias an_alias, self
    else
      add_to @external_aliases, an_alias
      unmatched_alias_list =
        @unmatched_alias_lists[an_alias.pretty_old_name] ||= []
      unmatched_alias_list.push an_alias
    end

    an_alias
  end

  ##
  # Adds +attribute+ if not already there. If it is (as method(s) or attribute),
  # updates the comment if it was empty.
  #
  # The attribute is registered only if it defines a new method.
  # For instance, <tt>attr_reader :foo</tt> will not be registered
  # if method +foo+ exists, but <tt>attr_accessor :foo</tt> will be registered
  # if method +foo+ exists, but <tt>foo=</tt> does not.

  def add_attribute attribute
    return attribute unless @document_self

    # mainly to check for redefinition of an attribute as a method
    # TODO find a policy for 'attr_reader :foo' + 'def foo=()'
    register = false

    key = nil

    if attribute.rw.index 'R' then
      key = attribute.pretty_name
      known = @methods_hash[key]

      if known then
        known.comment = attribute.comment if known.comment.empty?
      elsif registered = @methods_hash[attribute.pretty_name << '='] and
            RDoc::Attr === registered then
        registered.rw = 'RW'
      else
        @methods_hash[key] = attribute
        register = true
      end
    end

    if attribute.rw.index 'W' then
      key = attribute.pretty_name << '='
      known = @methods_hash[key]

      if known then
        known.comment = attribute.comment if known.comment.empty?
      elsif registered = @methods_hash[attribute.pretty_name] and
            RDoc::Attr === registered then
        registered.rw = 'RW'
      else
        @methods_hash[key] = attribute
        register = true
      end
    end

    if register then
      attribute.visibility = @visibility
      add_to @attributes, attribute
      resolve_aliases attribute
    end

    attribute
  end

  ##
  # Adds a class named +given_name+ with +superclass+.
  #
  # Both +given_name+ and +superclass+ may contain '::', and are
  # interpreted relative to the +self+ context. This allows handling correctly
  # examples like these:
  #   class RDoc::Gauntlet < Gauntlet
  #   module Mod
  #     class Object   # implies < ::Object
  #     class SubObject < Object  # this is _not_ ::Object
  #
  # Given <tt>class Container::Item</tt> RDoc assumes +Container+ is a module
  # unless it later sees <tt>class Container</tt>.  +add_class+ automatically
  # upgrades +given_name+ to a class in this case.

  def add_class class_type, given_name, superclass = '::Object'
    # superclass +nil+ is passed by the C parser in the following cases:
    # - registering Object in 1.8 (correct)
    # - registering BasicObject in 1.9 (correct)
    # - registering RubyVM in 1.9 in iseq.c (incorrect: < Object in vm.c)
    #
    # If we later find a superclass for a registered class with a nil
    # superclass, we must honor it.

    # find the name & enclosing context
    if given_name =~ /^:+(\w+)$/ then
      full_name = $1
      enclosing = top_level
      name = full_name.split(/:+/).last
    else
      full_name = child_name given_name

      if full_name =~ /^(.+)::(\w+)$/ then
        name = $2
        ename = $1
        enclosing = @store.classes_hash[ename] || @store.modules_hash[ename]
        # HACK: crashes in actionpack/lib/action_view/helpers/form_helper.rb (metaprogramming)
        unless enclosing then
          # try the given name at top level (will work for the above example)
          enclosing = @store.classes_hash[given_name] ||
                      @store.modules_hash[given_name]
          return enclosing if enclosing
          # not found: create the parent(s)
          names = ename.split('::')
          enclosing = self
          names.each do |n|
            enclosing = enclosing.classes_hash[n] ||
                        enclosing.modules_hash[n] ||
                        enclosing.add_module(RDoc::NormalModule, n)
          end
        end
      else
        name = full_name
        enclosing = self
      end
    end

    # fix up superclass
    if full_name == 'BasicObject' then
      superclass = nil
    elsif full_name == 'Object' then
      superclass = defined?(::BasicObject) ? '::BasicObject' : nil
    end

    # find the superclass full name
    if superclass then
      if superclass =~ /^:+/ then
        superclass = $' #'
      else
        if superclass =~ /^(\w+):+(.+)$/ then
          suffix = $2
          mod = find_module_named($1)
          superclass = mod.full_name + '::' + suffix if mod
        else
          mod = find_module_named(superclass)
          superclass = mod.full_name if mod
        end
      end

      # did we believe it was a module?
      mod = @store.modules_hash.delete superclass

      upgrade_to_class mod, RDoc::NormalClass, mod.parent if mod

      # e.g., Object < Object
      superclass = nil if superclass == full_name
    end

    klass = @store.classes_hash[full_name]

    if klass then
      # if TopLevel, it may not be registered in the classes:
      enclosing.classes_hash[name] = klass

      # update the superclass if needed
      if superclass then
        existing = klass.superclass
        existing = existing.full_name unless existing.is_a?(String) if existing
        if existing.nil? ||
           (existing == 'Object' && superclass != 'Object') then
          klass.superclass = superclass
        end
      end
    else
      # this is a new class
      mod = @store.modules_hash.delete full_name

      if mod then
        klass = upgrade_to_class mod, RDoc::NormalClass, enclosing

        klass.superclass = superclass unless superclass.nil?
      else
        klass = class_type.new name, superclass

        enclosing.add_class_or_module(klass, enclosing.classes_hash,
                                      @store.classes_hash)
      end
    end

    klass.parent = self

    klass
  end

  ##
  # Adds the class or module +mod+ to the modules or
  # classes Hash +self_hash+, and to +all_hash+ (either
  # <tt>TopLevel::modules_hash</tt> or <tt>TopLevel::classes_hash</tt>),
  # unless #done_documenting is +true+. Sets the #parent of +mod+
  # to +self+, and its #section to #current_section. Returns +mod+.

  def add_class_or_module mod, self_hash, all_hash
    mod.section = current_section # TODO declaring context? something is
                                  # wrong here...
    mod.parent = self
    mod.store = @store

    unless @done_documenting then
      self_hash[mod.name] = mod
      # this must be done AFTER adding mod to its parent, so that the full
      # name is correct:
      all_hash[mod.full_name] = mod
    end

    mod
  end

  ##
  # Adds +constant+ if not already there. If it is, updates the comment,
  # value and/or is_alias_for of the known constant if they were empty/nil.

  def add_constant constant
    return constant unless @document_self

    # HACK: avoid duplicate 'PI' & 'E' in math.c (1.8.7 source code)
    # (this is a #ifdef: should be handled by the C parser)
    known = @constants_hash[constant.name]

    if known then
      known.comment = constant.comment if known.comment.empty?

      known.value = constant.value if
        known.value.nil? or known.value.strip.empty?

      known.is_alias_for ||= constant.is_alias_for
    else
      @constants_hash[constant.name] = constant
      add_to @constants, constant
    end

    constant
  end

  ##
  # Adds included module +include+ which should be an RDoc::Include

  def add_include include
    add_to @includes, include

    include
  end

  ##
  # Adds extension module +ext+ which should be an RDoc::Extend

  def add_extend ext
    add_to @extends, ext

    ext
  end

  ##
  # Adds +method+ if not already there. If it is (as method or attribute),
  # updates the comment if it was empty.

  def add_method method
    return method unless @document_self

    # HACK: avoid duplicate 'new' in io.c & struct.c (1.8.7 source code)
    key = method.pretty_name
    known = @methods_hash[key]

    if known then
      if @store then # otherwise we are loading
        known.comment = method.comment if known.comment.empty?
        previously = ", previously in #{known.file}" unless
          method.file == known.file
        @store.rdoc.options.warn \
          "Duplicate method #{known.full_name} in #{method.file}#{previously}"
      end
    else
      @methods_hash[key] = method
      method.visibility = @visibility
      add_to @method_list, method
      resolve_aliases method
    end

    method
  end

  ##
  # Adds a module named +name+.  If RDoc already knows +name+ is a class then
  # that class is returned instead.  See also #add_class.

  def add_module(class_type, name)
    mod = @classes[name] || @modules[name]
    return mod if mod

    full_name = child_name name
    mod = @store.modules_hash[full_name] || class_type.new(name)

    add_class_or_module mod, @modules, @store.modules_hash
  end

  ##
  # Adds an alias from +from+ (a class or module) to +name+ which was defined
  # in +file+.

  def add_module_alias from, name, file
    return from if @done_documenting

    to_name = child_name name

    # if we already know this name, don't register an alias:
    # see the metaprogramming in lib/active_support/basic_object.rb,
    # where we already know BasicObject is a class when we find
    # BasicObject = BlankSlate
    return from if @store.find_class_or_module to_name

    to = from.dup
    to.name = name
    to.full_name = nil

    if to.module? then
      @store.modules_hash[to_name] = to
      @modules[name] = to
    else
      @store.classes_hash[to_name] = to
      @classes[name] = to
    end

    # Registers a constant for this alias.  The constant value and comment
    # will be updated later, when the Ruby parser adds the constant
    const = RDoc::Constant.new name, nil, to.comment
    const.record_location file
    const.is_alias_for = from
    add_constant const

    to
  end

  ##
  # Adds +require+ to this context's top level

  def add_require(require)
    return require unless @document_self

    if RDoc::TopLevel === self then
      add_to @requires, require
    else
      parent.add_require require
    end
  end

  ##
  # Returns a section with +title+, creating it if it doesn't already exist.
  # +comment+ will be appended to the section's comment.
  #
  # A section with a +title+ of +nil+ will return the default section.
  #
  # See also RDoc::Context::Section

  def add_section title, comment = nil
    if section = @sections[title] then
      section.add_comment comment if comment
    else
      section = Section.new self, title, comment
      @sections[title] = section
    end

    section
  end

  ##
  # Adds +thing+ to the collection +array+

  def add_to array, thing
    array << thing if @document_self

    thing.parent  = self
    thing.store   = @store if @store
    thing.section = current_section
  end

  ##
  # Is there any content?
  #
  # This means any of: comment, aliases, methods, attributes, external
  # aliases, require, constant.
  #
  # Includes and extends are also checked unless <tt>includes == false</tt>.

  def any_content(includes = true)
    @any_content ||= !(
      @comment.empty? &&
      @method_list.empty? &&
      @attributes.empty? &&
      @aliases.empty? &&
      @external_aliases.empty? &&
      @requires.empty? &&
      @constants.empty?
    )
    @any_content || (includes && !(@includes + @extends).empty? )
  end

  ##
  # Creates the full name for a child with +name+

  def child_name name
    if name =~ /^:+/
      $'  #'
    elsif RDoc::TopLevel === self then
      name
    else
      "#{self.full_name}::#{name}"
    end
  end

  ##
  # Class attributes

  def class_attributes
    @class_attributes ||= attributes.select { |a| a.singleton }
  end

  ##
  # Class methods

  def class_method_list
    @class_method_list ||= method_list.select { |a| a.singleton }
  end

  ##
  # Array of classes in this context

  def classes
    @classes.values
  end

  ##
  # All classes and modules in this namespace

  def classes_and_modules
    classes + modules
  end

  ##
  # Hash of classes keyed by class name

  def classes_hash
    @classes
  end

  ##
  # The current documentation section that new items will be added to.  If
  # temporary_section is available it will be used.

  def current_section
    if section = @temporary_section then
      @temporary_section = nil
    else
      section = @current_section
    end

    section
  end

  ##
  # Is part of this thing was defined in +file+?

  def defined_in?(file)
    @in_files.include?(file)
  end

  def display(method_attr) # :nodoc:
    if method_attr.is_a? RDoc::Attr
      "#{method_attr.definition} #{method_attr.pretty_name}"
    else
      "method #{method_attr.pretty_name}"
    end
  end

  ##
  # Iterator for ancestors for duck-typing.  Does nothing.  See
  # RDoc::ClassModule#each_ancestor.
  #
  # This method exists to make it easy to work with Context subclasses that
  # aren't part of RDoc.

  def each_ancestor # :nodoc:
  end

  ##
  # Iterator for attributes

  def each_attribute # :yields: attribute
    @attributes.each { |a| yield a }
  end

  ##
  # Iterator for classes and modules

  def each_classmodule(&block) # :yields: module
    classes_and_modules.sort.each(&block)
  end

  ##
  # Iterator for constants

  def each_constant # :yields: constant
    @constants.each {|c| yield c}
  end

  ##
  # Iterator for included modules

  def each_include # :yields: include
    @includes.each do |i| yield i end
  end

  ##
  # Iterator for extension modules

  def each_extend # :yields: extend
    @extends.each do |e| yield e end
  end

  ##
  # Iterator for methods

  def each_method # :yields: method
    return enum_for __method__ unless block_given?

    @method_list.sort.each { |m| yield m }
  end

  ##
  # Iterator for each section's contents sorted by title.  The +section+, the
  # section's +constants+ and the sections +attributes+ are yielded.  The
  # +constants+ and +attributes+ collections are sorted.
  #
  # To retrieve methods in a section use #methods_by_type with the optional
  # +section+ parameter.
  #
  # NOTE: Do not edit collections yielded by this method

  def each_section # :yields: section, constants, attributes
    return enum_for __method__ unless block_given?

    constants  = @constants.group_by  do |constant|  constant.section end
    attributes = @attributes.group_by do |attribute| attribute.section end

    constants.default  = []
    attributes.default = []

    sort_sections.each do |section|
      yield section, constants[section].sort, attributes[section].sort
    end
  end

  ##
  # Finds an attribute +name+ with singleton value +singleton+.

  def find_attribute(name, singleton)
    name = $1 if name =~ /^(.*)=$/
    @attributes.find { |a| a.name == name && a.singleton == singleton }
  end

  ##
  # Finds an attribute with +name+ in this context

  def find_attribute_named(name)
    case name
    when /\A#/ then
      find_attribute name[1..-1], false
    when /\A::/ then
      find_attribute name[2..-1], true
    else
      @attributes.find { |a| a.name == name }
    end
  end

  ##
  # Finds a class method with +name+ in this context

  def find_class_method_named(name)
    @method_list.find { |meth| meth.singleton && meth.name == name }
  end

  ##
  # Finds a constant with +name+ in this context

  def find_constant_named(name)
    @constants.find {|m| m.name == name}
  end

  ##
  # Find a module at a higher scope

  def find_enclosing_module_named(name)
    parent && parent.find_module_named(name)
  end

  ##
  # Finds an external alias +name+ with singleton value +singleton+.

  def find_external_alias(name, singleton)
    @external_aliases.find { |m| m.name == name && m.singleton == singleton }
  end

  ##
  # Finds an external alias with +name+ in this context

  def find_external_alias_named(name)
    case name
    when /\A#/ then
      find_external_alias name[1..-1], false
    when /\A::/ then
      find_external_alias name[2..-1], true
    else
      @external_aliases.find { |a| a.name == name }
    end
  end

  ##
  # Finds a file with +name+ in this context

  def find_file_named name
    @store.find_file_named name
  end

  ##
  # Finds an instance method with +name+ in this context

  def find_instance_method_named(name)
    @method_list.find { |meth| !meth.singleton && meth.name == name }
  end

  ##
  # Finds a method, constant, attribute, external alias, module or file
  # named +symbol+ in this context.

  def find_local_symbol(symbol)
    find_method_named(symbol) or
    find_constant_named(symbol) or
    find_attribute_named(symbol) or
    find_external_alias_named(symbol) or
    find_module_named(symbol) or
    find_file_named(symbol)
  end

  ##
  # Finds a method named +name+ with singleton value +singleton+.

  def find_method(name, singleton)
    @method_list.find { |m| m.name == name && m.singleton == singleton }
  end

  ##
  # Finds a instance or module method with +name+ in this context

  def find_method_named(name)
    case name
    when /\A#/ then
      find_method name[1..-1], false
    when /\A::/ then
      find_method name[2..-1], true
    else
      @method_list.find { |meth| meth.name == name }
    end
  end

  ##
  # Find a module with +name+ using ruby's scoping rules

  def find_module_named(name)
    res = @modules[name] || @classes[name]
    return res if res
    return self if self.name == name
    find_enclosing_module_named name
  end

  ##
  # Look up +symbol+, first as a module, then as a local symbol.

  def find_symbol(symbol)
    find_symbol_module(symbol) || find_local_symbol(symbol)
  end

  ##
  # Look up a module named +symbol+.

  def find_symbol_module(symbol)
    result = nil

    # look for a class or module 'symbol'
    case symbol
    when /^::/ then
      result = @store.find_class_or_module symbol
    when /^(\w+):+(.+)$/
      suffix = $2
      top = $1
      searched = self
      while searched do
        mod = searched.find_module_named(top)
        break unless mod
        result = @store.find_class_or_module "#{mod.full_name}::#{suffix}"
        break if result || searched.is_a?(RDoc::TopLevel)
        searched = searched.parent
      end
    else
      searched = self
      while searched do
        result = searched.find_module_named(symbol)
        break if result || searched.is_a?(RDoc::TopLevel)
        searched = searched.parent
      end
    end

    result
  end

  ##
  # The full name for this context.  This method is overridden by subclasses.

  def full_name
    '(unknown)'
  end

  ##
  # Does this context and its methods and constants all have documentation?
  #
  # (Yes, fully documented doesn't mean everything.)

  def fully_documented?
    documented? and
      attributes.all? { |a| a.documented? } and
      method_list.all? { |m| m.documented? } and
      constants.all? { |c| c.documented? }
  end

  ##
  # URL for this with a +prefix+

  def http_url(prefix)
    path = name_for_path
    path = path.gsub(/<<\s*(\w*)/, 'from-\1') if path =~ /<</
    path = [prefix] + path.split('::')

    File.join(*path.compact) + '.html'
  end

  ##
  # Instance attributes

  def instance_attributes
    @instance_attributes ||= attributes.reject { |a| a.singleton }
  end

  ##
  # Instance methods
  #--
  # TODO rename to instance_methods

  def instance_method_list
    @instance_method_list ||= method_list.reject { |a| a.singleton }
  end

  ##
  # Breaks method_list into a nested hash by type (<tt>'class'</tt> or
  # <tt>'instance'</tt>) and visibility (+:public+, +:protected+, +:private+).
  #
  # If +section+ is provided only methods in that RDoc::Context::Section will
  # be returned.

  def methods_by_type section = nil
    methods = {}

    TYPES.each do |type|
      visibilities = {}
      RDoc::VISIBILITIES.each do |vis|
        visibilities[vis] = []
      end

      methods[type] = visibilities
    end

    each_method do |method|
      next if section and not method.section == section
      methods[method.type][method.visibility] << method
    end

    methods
  end

  ##
  # Yields AnyMethod and Attr entries matching the list of names in +methods+.

  def methods_matching(methods, singleton = false, &block)
    (@method_list + @attributes).each do |m|
      yield m if methods.include?(m.name) and m.singleton == singleton
    end

    each_ancestor do |parent|
      parent.methods_matching(methods, singleton, &block)
    end
  end

  ##
  # Array of modules in this context

  def modules
    @modules.values
  end

  ##
  # Hash of modules keyed by module name

  def modules_hash
    @modules
  end

  ##
  # Name to use to generate the url.
  # <tt>#full_name</tt> by default.

  def name_for_path
    full_name
  end

  ##
  # Changes the visibility for new methods to +visibility+

  def ongoing_visibility=(visibility)
    @visibility = visibility
  end

  ##
  # Record +top_level+ as a file +self+ is in.

  def record_location(top_level)
    @in_files << top_level unless @in_files.include?(top_level)
  end

  ##
  # Should we remove this context from the documentation?
  #
  # The answer is yes if:
  # * #received_nodoc is +true+
  # * #any_content is +false+ (not counting includes)
  # * All #includes are modules (not a string), and their module has
  #   <tt>#remove_from_documentation? == true</tt>
  # * All classes and modules have <tt>#remove_from_documentation? == true</tt>

  def remove_from_documentation?
    @remove_from_documentation ||=
      @received_nodoc &&
      !any_content(false) &&
      @includes.all? { |i| !i.module.is_a?(String) && i.module.remove_from_documentation? } &&
      classes_and_modules.all? { |cm| cm.remove_from_documentation? }
  end

  ##
  # Removes methods and attributes with a visibility less than +min_visibility+.
  #--
  # TODO mark the visibility of attributes in the template (if not public?)

  def remove_invisible min_visibility
    return if [:private, :nodoc].include? min_visibility
    remove_invisible_in @method_list, min_visibility
    remove_invisible_in @attributes, min_visibility
  end

  ##
  # Only called when min_visibility == :public or :private

  def remove_invisible_in array, min_visibility # :nodoc:
    if min_visibility == :public then
      array.reject! { |e|
        e.visibility != :public and not e.force_documentation
      }
    else
      array.reject! { |e|
        e.visibility == :private and not e.force_documentation
      }
    end
  end

  ##
  # Tries to resolve unmatched aliases when a method or attribute has just
  # been added.

  def resolve_aliases added
    # resolve any pending unmatched aliases
    key = added.pretty_name
    unmatched_alias_list = @unmatched_alias_lists[key]
    return unless unmatched_alias_list
    unmatched_alias_list.each do |unmatched_alias|
      added.add_alias unmatched_alias, self
      @external_aliases.delete unmatched_alias
    end
    @unmatched_alias_lists.delete key
  end

  ##
  # Returns RDoc::Context::Section objects referenced in this context for use
  # in a table of contents.

  def section_contents
    used_sections = {}

    each_method do |method|
      next unless method.display?

      used_sections[method.section] = true
    end

    # order found sections
    sections = sort_sections.select do |section|
      used_sections[section]
    end

    # only the default section is used
    return [] if
      sections.length == 1 and not sections.first.title

    sections
  end

  ##
  # Sections in this context

  def sections
    @sections.values
  end

  def sections_hash # :nodoc:
    @sections
  end

  ##
  # Sets the current section to a section with +title+.  See also #add_section

  def set_current_section title, comment
    @current_section = add_section title, comment
  end

  ##
  # Given an array +methods+ of method names, set the visibility of each to
  # +visibility+

  def set_visibility_for(methods, visibility, singleton = false)
    methods_matching methods, singleton do |m|
      m.visibility = visibility
    end
  end

  ##
  # Sorts sections alphabetically (default) or in TomDoc fashion (none,
  # Public, Internal, Deprecated)

  def sort_sections
    titles = @sections.map { |title, _| title }

    if titles.length > 1 and
       TOMDOC_TITLES_SORT ==
         (titles | TOMDOC_TITLES).sort_by { |title| title.to_s } then
      @sections.values_at(*TOMDOC_TITLES).compact
    else
      @sections.sort_by { |title, _|
        title.to_s
      }.map { |_, section|
        section
      }
    end
  end

  def to_s # :nodoc:
    "#{self.class.name} #{self.full_name}"
  end

  ##
  # Return the TopLevel that owns us
  #--
  # FIXME we can be 'owned' by several TopLevel (see #record_location &
  # #in_files)

  def top_level
    return @top_level if defined? @top_level
    @top_level = self
    @top_level = @top_level.parent until RDoc::TopLevel === @top_level
    @top_level
  end

  ##
  # Upgrades NormalModule +mod+ in +enclosing+ to a +class_type+

  def upgrade_to_class mod, class_type, enclosing
    enclosing.modules_hash.delete mod.name

    klass = RDoc::ClassModule.from_module class_type, mod
    klass.store = @store

    # if it was there, then we keep it even if done_documenting
    @store.classes_hash[mod.full_name] = klass
    enclosing.classes_hash[mod.name]   = klass

    klass
  end

  autoload :Section, 'rdoc/context/section'

end

lib64/ruby/2.2.0/rdoc/generator/pot/message_extractor.rb000064400000003001150402106110016647 0ustar00##
# Extracts message from RDoc::Store

class RDoc::Generator::POT::MessageExtractor

  ##
  # Creates a message extractor for +store+.

  def initialize store
    @store = store
    @po = RDoc::Generator::POT::PO.new
  end

  ##
  # Extracts messages from +store+, stores them into
  # RDoc::Generator::POT::PO and returns it.

  def extract
    @store.all_classes_and_modules.each do |klass|
      extract_from_klass(klass)
    end
    @po
  end

  private

  def extract_from_klass klass
    extract_text(klass.comment_location, klass.full_name)

    klass.each_section do |section, constants, attributes|
      extract_text(section.title ,"#{klass.full_name}: section title")
      section.comments.each do |comment|
        extract_text(comment, "#{klass.full_name}: #{section.title}")
      end
    end

    klass.each_constant do |constant|
      extract_text(constant.comment, constant.full_name)
    end

    klass.each_attribute do |attribute|
      extract_text(attribute.comment, attribute.full_name)
    end

    klass.each_method do |method|
      extract_text(method.comment, method.full_name)
    end
  end

  def extract_text text, comment, location = nil
    return if text.nil?

    options = {
      :extracted_comment => comment,
      :references => [location].compact,
    }
    i18n_text = RDoc::I18n::Text.new(text)
    i18n_text.extract_messages do |part|
      @po.add(entry(part[:paragraph], options))
    end
  end

  def entry msgid, options
    RDoc::Generator::POT::POEntry.new(msgid, options)
  end

end
lib64/ruby/2.2.0/rdoc/generator/pot/po_entry.rb000064400000006333150402106120015003 0ustar00##
# A PO entry in PO

class RDoc::Generator::POT::POEntry

  # The msgid content
  attr_reader :msgid

  # The msgstr content
  attr_reader :msgstr

  # The comment content created by translator (PO editor)
  attr_reader :translator_comment

  # The comment content extracted from source file
  attr_reader :extracted_comment

  # The locations where the PO entry is extracted
  attr_reader :references

  # The flags of the PO entry
  attr_reader :flags

  ##
  # Creates a PO entry for +msgid+. Other valus can be specified by
  # +options+.

  def initialize msgid, options = {}
    @msgid = msgid
    @msgstr = options[:msgstr] || ""
    @translator_comment = options[:translator_comment]
    @extracted_comment = options[:extracted_comment]
    @references = options[:references] || []
    @flags = options[:flags] || []
  end

  ##
  # Returns the PO entry in PO format.

  def to_s
    entry = ''
    entry << format_translator_comment
    entry << format_extracted_comment
    entry << format_references
    entry << format_flags
    entry << <<-ENTRY
msgid #{format_message(@msgid)}
msgstr #{format_message(@msgstr)}
    ENTRY
  end

  ##
  # Merges the PO entry with +other_entry+.

  def merge other_entry
    options = {
      :extracted_comment  => merge_string(@extracted_comment,
                                          other_entry.extracted_comment),
      :translator_comment => merge_string(@translator_comment,
                                          other_entry.translator_comment),
      :references         => merge_array(@references,
                                         other_entry.references),
      :flags              => merge_array(@flags,
                                         other_entry.flags),
    }
    self.class.new(@msgid, options)
  end

  private

  def format_comment mark, comment
    return '' unless comment
    return '' if comment.empty?

    formatted_comment = ''
    comment.each_line do |line|
      formatted_comment << "#{mark} #{line}"
    end
    formatted_comment << "\n" unless formatted_comment.end_with?("\n")
    formatted_comment
  end

  def format_translator_comment
    format_comment('#', @translator_comment)
  end

  def format_extracted_comment
    format_comment('#.', @extracted_comment)
  end

  def format_references
    return '' if @references.empty?

    formatted_references = ''
    @references.sort.each do |file, line|
      formatted_references << "\#: #{file}:#{line}\n"
    end
    formatted_references
  end

  def format_flags
    return '' if @flags.empty?

    formatted_flags = flags.join(",")
    "\#, #{formatted_flags}\n"
  end

  def format_message message
    return "\"#{escape(message)}\"" unless message.include?("\n")

    formatted_message = '""'
    message.each_line do |line|
      formatted_message << "\n"
      formatted_message << "\"#{escape(line)}\""
    end
    formatted_message
  end

  def escape string
    string.gsub(/["\\\t\n]/) do |special_character|
      case special_character
      when "\t"
        "\\t"
      when "\n"
        "\\n"
      else
        "\\#{special_character}"
      end
    end
  end

  def merge_string string1, string2
    [string1, string2].compact.join("\n")
  end

  def merge_array array1, array2
      (array1 + array2).uniq
  end

end
lib64/ruby/2.2.0/rdoc/generator/pot/po.rb000064400000003175150402106120013563 0ustar00##
# Generates a PO format text

class RDoc::Generator::POT::PO

  ##
  # Creates an object that represents PO format.

  def initialize
    @entries = {}
    add_header
  end

  ##
  # Adds a PO entry to the PO.

  def add entry
    existing_entry = @entries[entry.msgid]
    if existing_entry
      entry = existing_entry.merge(entry)
    end
    @entries[entry.msgid] = entry
  end

  ##
  # Returns PO format text for the PO.

  def to_s
    po = ''
    sort_entries.each do |entry|
      po << "\n" unless po.empty?
      po << entry.to_s
    end
    po
  end

  private

  def add_header
    add(header_entry)
  end

  def header_entry
    comment = <<-COMMENT
SOME DESCRIPTIVE TITLE.
Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
This file is distributed under the same license as the PACKAGE package.
FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
    COMMENT

    content = <<-CONTENT
Project-Id-Version: PACKAGE VERSEION
Report-Msgid-Bugs-To:
PO-Revision-Date: YEAR-MO_DA HO:MI+ZONE
Last-Translator: FULL NAME <EMAIL@ADDRESS>
Language-Team: LANGUAGE <LL@li.org>
Language:
MIME-Version: 1.0
Content-Type: text/plain; charset=CHARSET
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;
    CONTENT

    options = {
      :msgstr => content,
      :translator_comment => comment,
      :flags => ['fuzzy'],
    }
    RDoc::Generator::POT::POEntry.new('', options)
  end

  def sort_entries
    headers, messages = @entries.values.partition do |entry|
      entry.msgid.empty?
    end
    # TODO: sort by location
    sorted_messages = messages.sort_by do |entry|
      entry.msgid
    end
    headers + sorted_messages
  end

end
lib64/ruby/2.2.0/rdoc/generator/pot.rb000064400000004457150402106120013151 0ustar00##
# Generates a POT file.
#
# Here is a translator work flow with the generator.
#
# == Create .pot
#
# You create .pot file by pot formatter:
#
#   % rdoc --format pot
#
# It generates doc/rdoc.pot.
#
# == Create .po
#
# You create .po file from doc/rdoc.pot. This operation is needed only
# the first time. This work flow assumes that you are a translator
# for Japanese.
#
# You create locale/ja/rdoc.po from doc/rdoc.pot. You can use msginit
# provided by GNU gettext or rmsginit provided by gettext gem. This
# work flow uses gettext gem because it is more portable than GNU
# gettext for Rubyists. Gettext gem is implemented by pure Ruby.
#
#   % gem install gettext
#   % mkdir -p locale/ja
#   % rmsginit --input doc/rdoc.pot --output locale/ja/rdoc.po --locale ja
#
# Translate messages in .po
#
# You translate messages in .po by a PO file editor. po-mode.el exists
# for Emacs users. There are some GUI tools such as GTranslator.
# There are some Web services such as POEditor and Tansifex. You can
# edit by your favorite text editor because .po is a text file.
# Generate localized documentation
#
# You can generate localized documentation with locale/ja/rdoc.po:
#
#   % rdoc --locale ja
#
# You can find documentation in Japanese in doc/. Yay!
#
# == Update translation
#
# You need to update translation when your application is added or
# modified messages.
#
# You can update .po by the following command lines:
#
#   % rdoc --format pot
#   % rmsgmerge --update locale/ja/rdoc.po doc/rdoc.pot
#
# You edit locale/ja/rdoc.po to translate new messages.

class RDoc::Generator::POT

  RDoc::RDoc.add_generator self

  ##
  # Description of this generator

  DESCRIPTION = 'creates .pot file'

  ##
  # Set up a new .pot generator

  def initialize store, options #:not-new:
    @options    = options
    @store      = store
  end

  ##
  # Writes .pot to disk.

  def generate
    po = extract_messages
    pot_path = 'rdoc.pot'
    File.open(pot_path, "w") do |pot|
      pot.print(po.to_s)
    end
  end

  def class_dir
    nil
  end

  private
  def extract_messages
    extractor = MessageExtractor.new(@store)
    extractor.extract
  end

  autoload :MessageExtractor, 'rdoc/generator/pot/message_extractor'
  autoload :PO,               'rdoc/generator/pot/po'
  autoload :POEntry,          'rdoc/generator/pot/po_entry'

end
lib64/ruby/2.2.0/rdoc/generator/template/json_index/js/navigation.js000064400000007117150402106120021102 0ustar00/*
 * Navigation allows movement using the arrow keys through the search results.
 *
 * When using this library you will need to set scrollIntoView to the
 * appropriate function for your layout.  Use scrollInWindow if the container
 * is not scrollable and scrollInElement if the container is a separate
 * scrolling region.
 */
Navigation = new function() {
  this.initNavigation = function() {
    var _this = this;

    $(document).keydown(function(e) {
      _this.onkeydown(e);
    }).keyup(function(e) {
      _this.onkeyup(e);
    });

    this.navigationActive = true;
  }

  this.setNavigationActive = function(state) {
    this.navigationActive = state;
    this.clearMoveTimeout();
  }

  this.onkeyup = function(e) {
    if (!this.navigationActive) return;

    switch(e.keyCode) {
      case 37: //Event.KEY_LEFT:
      case 38: //Event.KEY_UP:
      case 39: //Event.KEY_RIGHT:
      case 40: //Event.KEY_DOWN:
        this.clearMoveTimeout();
        break;
    }
  }

  this.onkeydown = function(e) {
    if (!this.navigationActive) return;
    switch(e.keyCode) {
      case 37: //Event.KEY_LEFT:
        if (this.moveLeft()) e.preventDefault();
        break;
      case 38: //Event.KEY_UP:
        if (e.keyCode == 38 || e.ctrlKey) {
          if (this.moveUp()) e.preventDefault();
          this.startMoveTimeout(false);
        }
        break;
      case 39: //Event.KEY_RIGHT:
        if (this.moveRight()) e.preventDefault();
        break;
      case 40: //Event.KEY_DOWN:
        if (e.keyCode == 40 || e.ctrlKey) {
          if (this.moveDown()) e.preventDefault();
          this.startMoveTimeout(true);
        }
        break;
      case 13: //Event.KEY_RETURN:
        if (this.$current)
          e.preventDefault();
          this.select(this.$current);
        break;
    }
    if (e.ctrlKey && e.shiftKey) this.select(this.$current);
  }

  this.clearMoveTimeout = function() {
    clearTimeout(this.moveTimeout);
    this.moveTimeout = null;
  }

  this.startMoveTimeout = function(isDown) {
    if (!$.browser.mozilla && !$.browser.opera) return;
    if (this.moveTimeout) this.clearMoveTimeout();
    var _this = this;

    var go = function() {
      if (!_this.moveTimeout) return;
      _this[isDown ? 'moveDown' : 'moveUp']();
      _this.moveTimout = setTimeout(go, 100);
    }
    this.moveTimeout = setTimeout(go, 200);
  }

  this.moveRight = function() {
  }

  this.moveLeft = function() {
  }

  this.move = function(isDown) {
  }

  this.moveUp = function() {
    return this.move(false);
  }

  this.moveDown = function() {
    return this.move(true);
  }

  /*
   * Scrolls to the given element in the scrollable element view.
   */
  this.scrollInElement = function(element, view) {
    var offset, viewHeight, viewScroll, height;
    offset = element.offsetTop;
    height = element.offsetHeight;
    viewHeight = view.offsetHeight;
    viewScroll = view.scrollTop;

    if (offset - viewScroll + height > viewHeight) {
      view.scrollTop = offset - viewHeight + height;
    }
    if (offset < viewScroll) {
      view.scrollTop = offset;
    }
  }

  /*
   * Scrolls to the given element in the window.  The second argument is
   * ignored
   */
  this.scrollInWindow = function(element, ignored) {
    var offset, viewHeight, viewScroll, height;
    offset = element.offsetTop;
    height = element.offsetHeight;
    viewHeight = window.innerHeight;
    viewScroll = window.scrollY;

    if (offset - viewScroll + height > viewHeight) {
      window.scrollTo(window.scrollX, offset - viewHeight + height);
    }
    if (offset < viewScroll) {
      window.scrollTo(window.scrollX, offset);
    }
  }
}

lib64/ruby/2.2.0/rdoc/generator/template/json_index/js/searcher.js000064400000014713150402106120020537 0ustar00Searcher = function(data) {
  this.data = data;
  this.handlers = [];
}

Searcher.prototype = new function() {
  // search is performed in chunks of 1000 for non-blocking user input
  var CHUNK_SIZE = 1000;
  // do not try to find more than 100 results
  var MAX_RESULTS = 100;
  var huid = 1;
  var suid = 1;
  var runs = 0;

  this.find = function(query) {
    var queries = splitQuery(query);
    var regexps = buildRegexps(queries);
    var highlighters = buildHilighters(queries);
    var state = { from: 0, pass: 0, limit: MAX_RESULTS, n: suid++};
    var _this = this;

    this.currentSuid = state.n;

    if (!query) return;

    var run = function() {
      // stop current search thread if new search started
      if (state.n != _this.currentSuid) return;

      var results =
        performSearch(_this.data, regexps, queries, highlighters, state);
      var hasMore = (state.limit > 0 && state.pass < 4);

      triggerResults.call(_this, results, !hasMore);
      if (hasMore) {
        setTimeout(run, 2);
      }
      runs++;
    };
    runs = 0;

    // start search thread
    run();
  }

  /*  ----- Events ------  */
  this.ready = function(fn) {
    fn.huid = huid;
    this.handlers.push(fn);
  }

  /*  ----- Utilities ------  */
  function splitQuery(query) {
    return jQuery.grep(query.split(/(\s+|::?|\(\)?)/), function(string) {
      return string.match(/\S/)
    });
  }

  function buildRegexps(queries) {
    return jQuery.map(queries, function(query) {
      return new RegExp(query.replace(/(.)/g, '([$1])([^$1]*?)'), 'i')
    });
  }

  function buildHilighters(queries) {
    return jQuery.map(queries, function(query) {
      return jQuery.map(query.split(''), function(l, i) {
        return '\u0001$' + (i*2+1) + '\u0002$' + (i*2+2);
      }).join('');
    });
  }

  // function longMatchRegexp(index, longIndex, regexps) {
  //     for (var i = regexps.length - 1; i >= 0; i--){
  //         if (!index.match(regexps[i]) && !longIndex.match(regexps[i])) return false;
  //     };
  //     return true;
  // }


  /*  ----- Mathchers ------  */

  /*
   * This record matches if the index starts with queries[0] and the record
   * matches all of the regexps
   */
  function matchPassBeginning(index, longIndex, queries, regexps) {
    if (index.indexOf(queries[0]) != 0) return false;
    for (var i=1, l = regexps.length; i < l; i++) {
      if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
        return false;
    };
    return true;
  }

  /*
   * This record matches if the longIndex starts with queries[0] and the
   * longIndex matches all of the regexps
   */
  function matchPassLongIndex(index, longIndex, queries, regexps) {
    if (longIndex.indexOf(queries[0]) != 0) return false;
    for (var i=1, l = regexps.length; i < l; i++) {
      if (!longIndex.match(regexps[i]))
        return false;
    };
    return true;
  }

  /*
   * This record matches if the index contains queries[0] and the record
   * matches all of the regexps
   */
  function matchPassContains(index, longIndex, queries, regexps) {
    if (index.indexOf(queries[0]) == -1) return false;
    for (var i=1, l = regexps.length; i < l; i++) {
      if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
        return false;
    };
    return true;
  }

  /*
   * This record matches if regexps[0] matches the index and the record
   * matches all of the regexps
   */
  function matchPassRegexp(index, longIndex, queries, regexps) {
    if (!index.match(regexps[0])) return false;
    for (var i=1, l = regexps.length; i < l; i++) {
      if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
        return false;
    };
    return true;
  }


  /*  ----- Highlighters ------  */
  function highlightRegexp(info, queries, regexps, highlighters) {
    var result = createResult(info);
    for (var i=0, l = regexps.length; i < l; i++) {
      result.title = result.title.replace(regexps[i], highlighters[i]);
      result.namespace = result.namespace.replace(regexps[i], highlighters[i]);
    };
    return result;
  }

  function hltSubstring(string, pos, length) {
    return string.substring(0, pos) + '\u0001' + string.substring(pos, pos + length) + '\u0002' + string.substring(pos + length);
  }

  function highlightQuery(info, queries, regexps, highlighters) {
    var result = createResult(info);
    var pos = 0;
    var lcTitle = result.title.toLowerCase();

    pos = lcTitle.indexOf(queries[0]);
    if (pos != -1) {
      result.title = hltSubstring(result.title, pos, queries[0].length);
    }

    result.namespace = result.namespace.replace(regexps[0], highlighters[0]);
    for (var i=1, l = regexps.length; i < l; i++) {
      result.title = result.title.replace(regexps[i], highlighters[i]);
      result.namespace = result.namespace.replace(regexps[i], highlighters[i]);
    };
    return result;
  }

  function createResult(info) {
    var result = {};
    result.title = info[0];
    result.namespace = info[1];
    result.path = info[2];
    result.params = info[3];
    result.snippet = info[4];
    return result;
  }

  /*  ----- Searching ------  */
  function performSearch(data, regexps, queries, highlighters, state) {
    var searchIndex = data.searchIndex;
    var longSearchIndex = data.longSearchIndex;
    var info = data.info;
    var result = [];
    var i = state.from;
    var l = searchIndex.length;
    var togo = CHUNK_SIZE;
    var matchFunc, hltFunc;

    while (state.pass < 4 && state.limit > 0 && togo > 0) {
      if (state.pass == 0) {
        matchFunc = matchPassBeginning;
        hltFunc = highlightQuery;
      } else if (state.pass == 1) {
        matchFunc = matchPassLongIndex;
        hltFunc = highlightQuery;
      } else if (state.pass == 2) {
        matchFunc = matchPassContains;
        hltFunc = highlightQuery;
      } else if (state.pass == 3) {
        matchFunc = matchPassRegexp;
        hltFunc = highlightRegexp;
      }

      for (; togo > 0 && i < l && state.limit > 0; i++, togo--) {
        if (info[i].n == state.n) continue;
        if (matchFunc(searchIndex[i], longSearchIndex[i], queries, regexps)) {
          info[i].n = state.n;
          result.push(hltFunc(info[i], queries, regexps, highlighters));
          state.limit--;
        }
      };
      if (searchIndex.length <= i) {
        state.pass++;
        i = state.from = 0;
      } else {
        state.from = i;
      }
    }
    return result;
  }

  function triggerResults(results, isLast) {
    jQuery.each(this.handlers, function(i, fn) {
      fn.call(this, results, isLast)
    })
  }
}

lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml000064400000000756150402106120024016 0ustar00<% comment = if current.respond_to? :comment_location then
               current.comment_location
             else
               current.comment
             end
   table = current.parse(comment).table_of_contents

   if table.length > 1 then %>
<div class="nav-section">
  <h3>Table of Contents</h3>

  <ul class="link-list" role="directory">
<%   table.each do |heading| %>
    <li><a href="#<%= heading.label current %>"><%= heading.plain_html %></a>
<%   end %>
  </ul>
</div>
<% end %>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/fonts/Lato-Light.ttf000064400000270714150402106120021245 0ustar00GPOS�jN�K�GSUBV.TL�OS/2�8�M�`cmapRԟ�N@�cvt &�7g|8fpgm�zAg�	�gaspgtglyf�i�S(��head�DeJ޼6hheaix��$hmtxESvJ�Tkern�2���ll�locaK�p�PP,maxp>
�R| name�
U�R�:post:�\�c��prep�x9�qH�
0JDFLTlatn����kernkernJnv�$R�
�^�	h
B
l�&��rj����Z���j��L��*|�DV�:�� �!.!�##L#�$4$~%�&J'$'�(�)�*�+f+�,6,�-�.(.�/t/�/�0:0|2"2�33T3�3�4&4l4�55b5�66L6�6�7B7�7�888�9d9�9�:&:�:�;@<�=�>j?,?�@hA�B�CzD�E�F�G*G�HfI�K	�V��B��V#��$�V&��*��2��4��97:7<?7D��F��G��H��R��T��m�Bo�By�B}�B��V��V��V��V��V��V��V��������������������������������������������������������������������������������V��������������B�B���B�B�B��VK	�V��B��V#��$�V&��*��2��4��97:7<?7D��F��G��H��R��T��m�Bo�By�B}�B��V��V��V��V��V��V��V��������������������������������������������������������������������������������V��������������B�B���B�B�B��V"#��&��*��2��4��F��G��H��R��T���������������������������������������������������������������������K	�V��B��V#��$�V&��*��2��4��97:7<?7D��F��G��H��R��T��m�Bo�By�B}�B��V��V��V��V��V��V��V��������������������������������������������������������������������������������V��������������B�B���B�B�B��V-�
�
��v#��&��*��2��4��7�L9�L:��<�y?�LY��Z��\��l�m�vo�vr�y�v|�}�v�����������������������y�����y�v�v�����v�v�v��'�B	��
�B
�B�v�v��$��7�L9��:��;��<�`=��?��l�Br�B|�B�����������������������`���`�������B�B�v�B�B�v��B���-�
�
��v#��&��*��2��4��7�L9�L:��<�y?�LY��Z��\��l�m�vo�vr�y�v|�}�v�����������������������y�����y�v�v�����v�v�v��k7	��
7
7�G���G������"<#��$��&��*��-�o2��4��D��F��G��H��I��J�{P��Q��R��S��T��U��V��W��X��Y��[��\��]��l7m��o��r7tFuFw��y��{F|7}���������������������������������������������������������������������������������������������������������������������������������������7�7�G�7�7�G����7���)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������6�V
�V
�V��"��#��&��*��--2��4��7��8��9��:��<�t?��Y��\��l�Vm��o��r�Vt�`u�`y��{�`|�V}�������������������������������������t�����t�����V�V�V�V��������V
�em�eo�ey�e}�e�e�e�e�e�e)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������4	���L�L������"$��-�.F��G��H��P��Q��R��S��T��U��X��w�������������������������������������������������������������������������������������L�L���	��������$��������������������������������1��#��&��*��2��4��F��G��H��I��R��T��W��Y��Z��\��m��o��y��}�������������������������������������������������������������������������������I��
��
��4�$4"��#��&��*��2��4��7�[9�V:�y<�=?�VF��G��H��R��T��Y��Z��\��l��m�$o�$r��t�Bu�By�${�B|��}�$�����������������������=�����������������������������������������������=�$�$�����4�����4�$�$�$���)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������.	������$��-�VD��F��G��H��R��T�����������������������������������������������������������������������������������������������)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������#��&��*��2��4��7��8���������������������������������������[	���L�L�L���`�`#��$��&��*��-�82��4��D�F�)G�)H�)J�>P�`Q�`R�)S�`T�)U�`V�DX�`Y�LZ�t[�g\�L]��m�Lo�Lw�`y�L}�L����������������������������������������������������������)��)��)��)��)��)��`��)��)��)��)��)��)��`��`��`��`������)�)�`���)�L�L�L�L�L�L�L���	��������$��������������������������������k7	��
7
7�G���G������"<#��$��&��*��-�o2��4��D��F��G��H��I��J�{P��Q��R��S��T��U��V��W��X��Y��[��\��]��l7m��o��r7tFuFw��y��{F|7}���������������������������������������������������������������������������������������������������������������������������������������7�7�G�7�7�G����7���I7	��
7
7��������"%$��-��D��F��G��H��J��R��T��V��l7m��o��r7t7u7y��{7|7}�����������������������������������������������������������������������������������������������7�7��7�7��������7���1��#��&��*��2��4��F��G��H��I��R��T��W��Y��Z��\��m��o��y��}�������������������������������������������������������������������������������i	�t

�y�`�y�t����"%#��$�t&��*��-�82��4��D��F�`G�`H�`J�[P��Q��R�`S��T�`U��V��X��Y��Z��[��\��lm�`o�`rt-u-w��y�`{-|}�`��t��t��t��t��t��t��t��������������������������������������������`��`��`��`��`��`�����`��`��`��`��`��`�������������t�����`�`�����`�`�`���y���y�`�`�`���t0��"%#��&��*��2��4��F��G��H��R��T��V��Y��\��m��o��y��}��������������������������������������������������������������������������"#��&��*��2��4��F��G��H��R��T���������������������������������������������������������������������6�V
�V
�V��"��#��&��*��--2��4��7��8��9��:��<�t?��Y��\��l�Vm��o��r�Vt�`u�`y��{�`|�V}�������������������������������������t�����t�����V�V�V�V��������V��
��
��Y��Z��\��l��r��t��u��{��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|���������K
K
K�y�ylKrKtdud{d|K�K�K�y�K�K�y�K��
��
��Y��Z��\��l��r��t��u��{��|���������F��G��H��R��T����������������������������������������������
��
��Y��Z��\��l��r��t��u��{��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|���������
����D���������������������������$	��������$��F��G��H��R��T��������������������������������������������������������������������������������F��G��H��R��T��������������������������������������������$	��������$��F��G��H��R��T������������������������������������������������������������������������"#��&��*��2��4��F��G��H��R��T���������������������������������������������������������������������K	�V��B��V#��$�V&��*��2��4��97:7<?7D��F��G��H��R��T��m�Bo�By�B}�B��V��V��V��V��V��V��V��������������������������������������������������������������������������������V��������������B�B���B�B�B��V'�B	��
�B
�B�v�v��$��7�L9��:��;��<�`=��?��l�Br�B|�B�����������������������`���`�������B�B�v�B�B�v��B���'�B	��
�B
�B�v�v��$��7�L9��:��;��<�`=��?��l�Br�B|�B�����������������������`���`�������B�B�v�B�B�v��B���)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������K	�V��B��V#��$�V&��*��2��4��97:7<?7D��F��G��H��R��T��m�Bo�By�B}�B��V��V��V��V��V��V��V��������������������������������������������������������������������������������V��������������B�B���B�B�B��V	�`�`$�`9F:F<(?F��`��`��`��`��`��`��`�(�`�(��`	�`�`$�`9F:F<(?F��`��`��`��`��`��`��`�(�`�(��`'�B	��
�B
�B�v�v��$��7�L9��:��;��<�`=��?��l�Br�B|�B�����������������������`���`�������B�B�v�B�B�v��B���	�`�`$�`9F:F<(?F��`��`��`��`��`��`��`�(�`�(��`K	�V��B��V#��$�V&��*��2��4��97:7<?7D��F��G��H��R��T��m�Bo�By�B}�B��V��V��V��V��V��V��V��������������������������������������������������������������������������������V��������������B�B���B�B�B��V'�B	��
�B
�B�v�v��$��7�L9��:��;��<�`=��?��l�Br�B|�B�����������������������`���`�������B�B�v�B�B�v��B���6�V
�V
�V��"��#��&��*��--2��4��7��8��9��:��<�t?��Y��\��l�Vm��o��r�Vt�`u�`y��{�`|�V}�������������������������������������t�����t�����V�V�V�V��������V6�V
�V
�V��"��#��&��*��--2��4��7��8��9��:��<�t?��Y��\��l�Vm��o��r�Vt�`u�`y��{�`|�V}�������������������������������������t�����t�����V�V�V�V��������V6�V
�V
�V��"��#��&��*��--2��4��7��8��9��:��<�t?��Y��\��l�Vm��o��r�Vt�`u�`y��{�`|�V}�������������������������������������t�����t�����V�V�V�V��������V6�V
�V
�V��"��#��&��*��--2��4��7��8��9��:��<�t?��Y��\��l�Vm��o��r�Vt�`u�`y��{�`|�V}�������������������������������������t�����t�����V�V�V�V��������V6�V
�V
�V��"��#��&��*��--2��4��7��8��9��:��<�t?��Y��\��l�Vm��o��r�Vt�`u�`y��{�`|�V}�������������������������������������t�����t�����V�V�V�V��������V6�V
�V
�V��"��#��&��*��--2��4��7��8��9��:��<�t?��Y��\��l�Vm��o��r�Vt�`u�`y��{�`|�V}�������������������������������������t�����t�����V�V�V�V��������V
�em�eo�ey�e}�e�e�e�e�e�e)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������	��������$��������������������������������	��������$��������������������������������	��������$��������������������������������	��������$��������������������������������i	�t

�y�`�y�t����"%#��$�t&��*��-�82��4��D��F�`G�`H�`J�[P��Q��R�`S��T�`U��V��X��Y��Z��[��\��lm�`o�`rt-u-w��y�`{-|}�`��t��t��t��t��t��t��t��������������������������������������������`��`��`��`��`��`�����`��`��`��`��`��`�������������t�����`�`�����`�`�`���y���y�`�`�`���t)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|��������������������������������������������������������
��
��Y��Z��\��l��r��t��u��{��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|���������6�V
�V
�V��"��#��&��*��--2��4��7��8��9��:��<�t?��Y��\��l�Vm��o��r�Vt�`u�`y��{�`|�V}�������������������������������������t�����t�����V�V�V�V��������V��
��
��Y��Z��\��l��r��t��u��{��|���������
�em�eo�ey�e}�e�e�e�e�e�e��
����
��9��:��?��@��Y��[��\��`��l��r��|��������� �t
�t
�t�o9�j:��<�y?�jY��\��l�tm�oo�or�tt��u��y�o{��|�t}�o��y�y�o�o�t�t�t�t�o�o�o��t��
��
��Y��Z��\��l��r��t��u��{��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|���������i	�t

�y�`�y�t����"%#��$�t&��*��-�82��4��D��F�`G�`H�`J�[P��Q��R�`S��T�`U��V��X��Y��Z��[��\��lm�`o�`rt-u-w��y�`{-|}�`��t��t��t��t��t��t��t��������������������������������������������`��`��`��`��`��`�����`��`��`��`��`��`�������������t�����`�`�����`�`�`���y���y�`�`�`���t0��"%#��&��*��2��4��F��G��H��R��T��V��Y��\��m��o��y��}��������������������������������������������������������������������������0��"%#��&��*��2��4��F��G��H��R��T��V��Y��\��m��o��y��}��������������������������������������������������������������������������0��"%#��&��*��2��4��F��G��H��R��T��V��Y��\��m��o��y��}��������������������������������������������������������������������������'�B	��
�B
�B�v�v��$��7�L9��:��;��<�`=��?��l�Br�B|�B�����������������������`���`�������B�B�v�B�B�v��B���'�B	��
�B
�B�v�v��$��7�L9��:��;��<�`=��?��l�Br�B|�B�����������������������`���`�������B�B�v�B�B�v��B���K	�V��B��V#��$�V&��*��2��4��97:7<?7D��F��G��H��R��T��m�Bo�By�B}�B��V��V��V��V��V��V��V��������������������������������������������������������������������������������V��������������B�B���B�B�B��VK	�V��B��V#��$�V&��*��2��4��97:7<?7D��F��G��H��R��T��m�Bo�By�B}�B��V��V��V��V��V��V��V��������������������������������������������������������������������������������V��������������B�B���B�B�B��V-�
�
��v#��&��*��2��4��7�L9�L:��<�y?�LY��Z��\��l�m�vo�vr�y�v|�}�v�����������������������y�����y�v�v�����v�v�v��K	�V��B��V#��$�V&��*��2��4��97:7<?7D��F��G��H��R��T��m�Bo�By�B}�B��V��V��V��V��V��V��V��������������������������������������������������������������������������������V��������������B�B���B�B�B��VK	�V��B��V#��$�V&��*��2��4��97:7<?7D��F��G��H��R��T��m�Bo�By�B}�B��V��V��V��V��V��V��V��������������������������������������������������������������������������������V��������������B�B���B�B�B��V-�
�
��v#��&��*��2��4��7�L9�L:��<�y?�LY��Z��\��l�m�vo�vr�y�v|�}�v�����������������������y�����y�v�v�����v�v�v��'�B	��
�B
�B�v�v��$��7�L9��:��;��<�`=��?��l�Br�B|�B�����������������������`���`�������B�B�v�B�B�v��B���'�B	��
�B
�B�v�v��$��7�L9��:��;��<�`=��?��l�Br�B|�B�����������������������`���`�������B�B�v�B�B�v��B���'�B	��
�B
�B�v�v��$��7�L9��:��;��<�`=��?��l�Br�B|�B�����������������������`���`�������B�B�v�B�B�v��B���K	�V��B��V#��$�V&��*��2��4��97:7<?7D��F��G��H��R��T��m�Bo�By�B}�B��V��V��V��V��V��V��V��������������������������������������������������������������������������������V��������������B�B���B�B�B��V6�V
�V
�V��"��#��&��*��--2��4��7��8��9��:��<�t?��Y��\��l�Vm��o��r�Vt�`u�`y��{�`|�V}�������������������������������������t�����t�����V�V�V�V��������Vv

#$&')-./2345789:;<=>?DEHIKNPQRSUYZ[\^lmoprtuy{|}��������������������������������������������������������������
8�DFLTlatn����case&case,liga2liga8sups>supsD,>B	

@LO,{tuCjqv�������I�,xx�D���P`KtyPL@�J�z��� ��� �&
	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a���������������������������������rdei�x�pk�vj���sgw�����l|����cn���m}�b�������������������y���������������������q���z���`T@
~�1DS[a~�����    " & 0 : D �!"!&"""""""+"H"`"e%�&i���
 �1ARZ`x�����      & 0 9 D �!"!&"""""""+"H"`"d%�&i����������������{�u�q�[�H����$��������������I�����������������޸ޡޞ�:ڜ`T@
~�1DS[a~�����    " & 0 : D �!"!&"""""""+"H"`"e%�&i���
 �1ARZ`x�����      & 0 9 D �!"!&"""""""+"H"`"d%�&i����������������{�u�q�[�H����$��������������I�����������������޸ޡޞ�:ڜ/��'37;��BK�	PX@3	`f[[		QCQ
D@4hf[[		QCQ
DY@
;:$$#,$
+>32#'&>54.#"#"'4632#"&!!7!!3<G*6]E'!1:3%
A 1;2"/?#.B.{,! ,, !,����]#[��n$;S47O;-('rz/**5C/$8'�� ..  ..��y$?����
&@#QCSD

+#.54>32#"&tA1!""'5���-PS\88\SP-<��""!5��)�
,@)
BQD

$+#"&/!#"&/		u		��ܙ�$�ܙ�$V<�6:��5BK�-PX@(
Y	CQ
C
D@&
Z
Y	C
DY@:98766421/-,(&#"!#!+#"&547!+#"&5<?3#76;>;!323+32%!!�^)V��V*^��R�(�W*_*_*W�(�R���*R����E��m�
	
�&!��F��p&!�{,F����
\;FQ�@)
!
LA*7BK�PX@2j

h
f_

SC	TD@1j

h
fk

SC	TDY@NMCB;965$#$+.'7632.54>?>;#".'+4.'>��H	&4EX8 D�e>4e�_	$e�?
'?]A/_WJ7:m�f
$�2Tm<P}U,��,Lc8LqL&bP'!'#|4QwZE�e>��K?"!(%�� (4G[<V�sF�
�B\@+��7Yu�>X?-(0K`W����'0DX?@<[	[CSC
C		SDUS((%"&((($
+#".54>324.#"32>>;+#".54>324.#"32>�0Rl<>mP..Pm>>lQ/L#=Q--P<##<P--Q=#eC�
D�0Ql<>mP..Pm>>lQ.L#<Q--Q<##<Q--Q<#3W�X--X�WX�Y--Y�XMnG!!GnMMmF!!Fm�
��PW�X--X�WX�Y--Y�XMoG!!GoMMmF  Fmj��T�@RS@PN9K*$BhfSC
CSDGE0.'%!
@@+2#"&'.#">7>;#"&/#".54>7.54>32>7&'�CxY5
":W;<bF'TX�-57C>*Y�-l~�OK�sG4Z|HGG3^���;^s8F}m[&�5BkJ(�.Ng8D<*%C\7R�V�HH�I
^�[���4X?$2a�ZH�mVP�VFwX2��MrM& 9N/�N_n���
@BQD

$+#"&/		��ܙ�$������(+.54>7�yx*Mi@@iM*
wyv�e�
v���uu���v
��eb�����(+4'&54?'&5476Zyw
*Lj@@jL*xyv���
v���uu���v
��{���51@.1-,($#
	BMQE55+5467'7>7./7.=3>?'.'t����4����
��	m,n
n-n
��	m-m	
n-n	�m��,@)MYQE+!!#!5!i��QN�R���=I�;�I�n��@B?S
D"+74632'&5467>7#"&n0'+/(8"
	%/U#2;0)URL 	

'5@$2d)5z@MQE+!!d�/zQi��"�@SD($+74>32#"&i!""'5M""!5������@kD""++6;[ 'n')-�%I��?�'@SCSD((($+#".54>324.#"32>?P��ii��OO��ii��PdBo�RR�pBBp�RR�oB�WW����WW����HH���GG����*@'
BhCR
D%+%!47#"/3!!5E��
	�J5�'J|"&��	(i��J��2>@;.BhSCQ
D-,+)$"
22+2>3!2!5467>54.#"#"&#'>ZQ�pB1To=�E E#c�o�<fK+4Wq>CqW9
0Kr��/_�`P�~w>�<8"�=rtzENsJ$)Ie<#[�b3����HU@RD
Bhh[SCSDB@;910/.&$HH	+2#".'763232>54.#5>54.#"#"/>eQ�m?+Kf<��Fz�ay�h:&#4KeBZ�[-)`�s\�^02Tp=CpV:1
Jr��-Z�XEoT9��W�l=Ah�@
599-<]s6ApQ/E-NlAKnH"(He>#[�b3?^� @[C
D!#+!+#!"&/3467![
�V�e	�UV��^�4
�j�
/��&�������/@@=-,Bh[QCSD(#&(#"+#!>32#".'763232>54.#"'!��UCx7n�q:N��d;j^N

1MiFR�i;-[�^9�H>o|^�(?q�\p�|B#.'$5d�]L�[3s����02@/B[CSD-+#!	+2#".54676;>32>54.#"t[�o?E{�gc�u@T`�"T�Z4;���1Z�QV�a43]�NX�`2N<m�``�vB@x�mSт��)H#=E�]O�a66_�MQ�[1=a|�/�@QC
D#'++67!"&=/�wA�
���+	��=x���';OD@A
B[SCSD=<)(GE<O=O31(;);''	+".54>7.54>32'2>54.#"2>54.#"Df�yD-RqD>`A"9j�_^�k9"B`>DqR.Dy�fQ�`4Dj�<<�jD4_�QQwN%*QuKKvQ*%Nw6f�ZNzZ<>Vi<K�b88b�K<iV><ZzNZ�f6L-StG]|JJ|]GtS-�1Sj9=iN,,Ni=9jS1��22@/B[SC
D/-%#	+".54>32+>74.#"32>=W�k<Cx�b^�q?-@)��"V�3:�"2Z{IN�]40W{KU�\/Z9j�\[�rA@u�d7ddi<��H*K#@F�M�[32Z}KN}W.:^u���J�#;K�#PX@SCSD@[SDY�(&($+74>32#"&4>32#"&�!""'5!""'5M""!5D""!5��J�-H@
(B?K�#PX@SCS
D@[S
DY�,*$($+4>32#"&4632'&5467>7#"&�!""'50'+/(8"
	%/j""!5�#2;0)URL 	

'5@$2�	�5�(+����!'*)���A��		��A����e!@YMQE+!!!!�;��;��,J�J�	�5�(+546767.'&=�*("���	A	
A�)!����(:9@6BhfSCSD(&#-$+>32#'54>54.#"#"'4>32#"&!DQ`8F|]7/HTI3A0GSG0*H^3BaB&�!""'52'*NqFLnS?78"��)>:<KbC6U;#+#�i""!5l�3Naf@c
U
8Bh[

[	[OSGPOYWOaPaFD<:641/'%NN
+%"&'#".54>3232>54.#"3267632#"$&546$32%2>7.#"�XY8�R8R6A}�t5]%[%09hP/a��}���mq����d
p����zv�����q:e���$MG>P3"Z�g9(;�]W]S'D\5U��V��.I,7 <o�b�ݒHj�������]DA%JPi�%���wS��m��HF?kS6Iv�K(E2��
$@!BZC
D# +!#"&'!+3!.'�O��I�NCf��z����e��{�++�z�*=@:B[SCS
D*(" !+3!2#!2654.#%!2>54&#!��y�t9'JkE��@z�q��c��3`�Y��3b�Y*�����0]�U8hXA��Z�d5�����CkK(K2Rh7��|���2D@ABhfSCSD,*" 	22+%2#".54>32#".#"32>7>�
(,h{�X���be���M�ob/	+=TnF�؜WV��yLwdV*	�+/K5g���
�i+@*-%Y�뒖�W(:'�y�@SCS
D!(!$+#!!24.#!!2>yb��������bjR�Ҁ�c��ҕRĤ���b�b������T�T���"�.@+YQCQ
D+!!!!!"�l����U��S��U��"�	(@%YQC
D		+!!!#"���{g�U��U�v�|��C�4H@E!
Bh[SCSD,*%#44+%2>7!"&=!#".546$32#"'.#"2Ixg]/���5r��Y���dd��Q�vf/		9a�h�ޝUV��C+}	8�	%:'g����g+?),,0&X�쓖�X�� @YC
D+!#!#3!3g��ggvg��Z��l��^�@C
D+!#3^gg�Y����'@$BhCSD#'$+#"&'>7>3232>53�;m�b-\1	#-LzV-g�w�|?	0c�f���"&@#B[C
D'(' +32>7>;#"&'.+#3VT;S��!�S�� [ff�	K
���Xd�V����@CR
D+%!!38���fWW��H� %@"BhC
D!5(+>7>;#47+"'#32z
,GZ����YF;� �
�y��#��J�
�(��@C
D!+2&53#"'#3	�Z1�hY2��6��y��Y�{����'@SCSD((($+#".54>324.#"32>�b������cc������bjR�Ҁ~їSS��~�ҕRĤ���gg����hg������WW�씕�VV���S�*@'[SC
D
!+#!2#%!2>54&#!Vfm��E��u��^�g7���:�����]�q?R4\}J��{����0T@
BK�PX@SCSCD@kSCSDY�(((%&+#"&'#".54>324.#"32>�+PsHpV ��?�N���cc������bjR�Ҁ~їSS��~�ҕR�k��~-�vFg����hg������WW�씕�VV�����"2@/B[SC
D" *!+#!2#"&'.#'32>54&#!Vfi��8i�]�Y�;')��^�g6ƽ��������Q�eA
��>L-TvJ��W����==@:=BhfSCSD;9(&!#!+#".#"#"&'763232>54.54>32~	
)FiMMuO)=d�d==t�l��L	(8J`=T�[0=d�d=6h�bn�H�%-&,Ld7H^B-,5PuWY�tCcV,#)#3XyEKaA,*4Qy[G�e=FH#n� @QC
D+!#!5n�f��W��0W����#@ CSD+%2>53#".53�f�p;fJ��||NjJg;o�IG~�ck��u˗VV��uk��c�~H��@BC
D* +3267>;#Q��P��[��j.46,��y��' @#BC
D,; +32>7>;2>7>;#&'#Ue	
��eN�C\�^�][��u..��u,-��y��4��@BC
D(")!+	32>7>;	#"&'+�e
��
b��e�B
�J]����L
�T�%���	��@BC
D,"+#32>7>;�g��Y��ZH��H?
�v++�s��
$@!QCQ
D

+!!547!5��~�������#�U%�U�����
'@$[OQE

!#+!+32�>�����$
��
$������@kD" +32#"&')'n' �%�"k����
!@[OQE!"+46;#"&=!!k��=���
s
$�� ��@
BkD,!+3#"&'.'+ <UD�	
	�
G���
��L���3@MQE+!5���DDV���	@kD		+2#"&/��6���
�k��C�'7T@Q-Bh[SC
C	SD)(/.(7)7" 	''
+!"/#".54>754&#"#"/>32%2>7)QXf=3`J-H��wuHeF,
N�mPxO(�J:aSH#�ͅ?!6H(@,>aD?lP0h��(0(NP3_�S�x5->$#<S52I/�����#�K�%PX@
B@
BYK�%PX@CSCSD@!CSC
CSDY@##&#+33>32#"&'#"32>54&�`B�m��9o�ih�6hc�?9�ZX�Y-����Xf��m��PQOz�f[��VE@u�b��X��X�,9@6,BhfSCSD(&#(#"+#".#"32>32#".54>321	
#:W>V�[01Z�NHa?%
FXg8_�q?<s�la�8^ =r�ei�o:"("
 4&E��yr��K>5W����#q@
BK�%PX@CSCS
D@!CSC
CSDY@##
+!"/#"&54>323%267.#"c
B�n��9o�ie�6`�^c�?:�XX�Y-��Zj��m��PKHN�Q@f[
UF@u�b��X����%0H@EBh[SCSD'&,+&0'0	%%	+2#!32>32#".54>"!4.T�i;
�14`�TKnK,

Oao8f�xA=s�kMzY7	�,Pp�:o�ip�s:!)!
 4%G��k��JG0Z~NPX/n�_�BK�!PX@SCQC
D@[SC
DY@!$%!	+3'&=354>32#"&#"!!nj�,PqD?)1S<!C��{	'~U�V+
.@gK{G��K����:Pd�@3B+BK�PX@,
[[CS	CSD@/h
[[S	CSDY@RQ\ZQdRdMKA?$"::+23#"'#".5467.54>7.54>4.'32>2>54.#"�Ao,��4]�OVF*0<c�c<>u�gi�k6h[2; -GO3]��1Rkuv3&A.-W~RL�a7��@dD#$Ec??dE$$Ed� !&_6HuS.B+.-QC>rX5+I`6Or@9.-()�[HuT.��/9 
	'1;#,K7 ">V.%B\88]B$$B]88\B%���-@*BCSC
D##+33>32#4&#"�_E�nR}R*_��b�B���Ue4b�W��|��eX��G�&@#SCC
D
+##".54>32_�    ��W!!���G�'4@1	BSCCSD$"!$%+#"&'76323265#".54>32;Y<.
QN�    �4XA%
0XQbW!!���0@-B[CC
D%(%!+3267>;#"&'.+#.�T�I
�S�^-`���{�_

�
�
�
���@C
D+#_��Q����,8@5+
BCSC
D,,##&&!	+332>32>32#4&#"#4&#"�4	BKU/m�ATc4JvS,`~u4_I+_toQ�6��)D1q>Z;1`�Z��|��&KpJ��|��aV����1@.BCSC
D#$!+332>32#4&#"�4	D�oR}R*_��b�B��Vi4b�W��|��eX�W����',@)SCSD''	+2#".54>2>54.#"k�t==t�kk�u==u�kY�Y,,Y�YY�Y--Y��I��uu��HH��uu��I�K=r�dc�s>>s�cd�r=�����$D@ABCSCSCD$$&%!+32>32#"&'"32>54&�4
	B�n��9n�if�6Bc�>9�YX�Y-���C�Zj��m��PJI�g\��VF@u�b��W����#D@ABCSCSCD##&#+##"&54>32763267.#"�`B�l��9o�ig�6	��c�?6�YX�Y-��Xf��m��PNLp�]f[RH@u�b�����8@5BhCSC
D#$%!+332>32#".#"�20�u-L"
!0q�-��y�B
���yY����<=@:<BhfSCSD:8'%" #!+#".#"#"&'7>3232>54.54>32�#9S<6Y?#0NchcN0/Y�Si�<
&=[C?`@!0NcicN0.UzL[�;h4E&/>,  ':T<ApR0C6" % #<Q-2B.  &:S>5bJ,464���@#x@
!BK�PX@%jhQCSD@#jh[SDY@
	##	+"&5#"&=7>;!!32>32�eq��
-9��%2$4&&upu�%d	��G�]);&
**3�����-@*BC
CSD$!#+32673#"/#".5逃a�C`5	E�oS|R*���cX��Vh4b�W|��@
BC
D,!+!#32>7>;T�\KH

	JH�	��*+
��* @#BC
D*!); +32>76;2>76;#"'.'+I�'		�F��F����C�	��**��-*+�(��#v�@BC
D("(!+	3267>;	#"&'+���[
$

X��j[��
��U���Z�	�����h	����@BCD,""++32>7>;{D��[OO	KI����	��
J:�
@QCQ
D+!!547!5!:��d�)q������K&MK?����H3@0*B[[OSG@>;83-+4.#52>54.54>;+";2#".54>�):##:)&HiB7!+G3)55)3G+!7BiH&�!7)=)7!7hhi8=hM+*8P19lii5%>./=%5ijl81P8*+Mh=8ihh��Q�@QD+3#KK�i���H5@2B[[OSGEDCB530-3)++546;2>54.54>7.54>54.+"&=323"}&HiB7	!+G3)55)3G+!	7BiH&)9##9)�7hhi8=hM+*8P18lji5%=/.>%5iil91P8*+Mh=8ihh7!7)=)7����9@6jk[OSG
+2>53#".#"#4>32%=*N <X83kib+&;*M <W84khb70B'7^F('0'0B'7^F('0'���
&@#SCQD

+4>734632#"&A�5'""'5��&-PS\88\SP-���'5""7����0;U@R6&,BjhfkSCTD##'#	+.54>?>;#".'>32+M`�r>@{�s
$W�5		!7P8+KfC'EXh:
$��/Y}N,\�a3J��tp��M�
�:.!��"' 1%�
�b�o@i?q�CQ�:@@=3)Bh[SCS
D#&#%&%"	+46;4>32#"'.#"!#!>3!#!5>5#C�4g�fLtW>&	

->V<NuP(�
�?H?+�6"@2��&]�uC%@V0;.4]�O��'��Yy+(A
(:N4F���D#79@6!B
@ ?WSD42*((+467'7>327'#"&''7.732>54.#"�($�1�-n?>m-�1�$*)$�2�-n>>m-�1�$)H+Ic88cJ++Jc88cI+�>m-�2�$*)$�2�-n?>m-�2�$)($�2�-n?8bI++Ib88cJ++JcU(� 8@5	B
Z	YC
D *!+!3267>;!!!!#!5!5!�Z�ZO
Z
	YP�Y[��n��_��n��h�g#!'���:v:��~:v��Q�@YQD+3#3#KKKK������}k�H\A@>HZP=#BhfWSDFD-+(&!#!+#".#"#"&'7>3232>54.5467.54>32>54.'(#9S<8[@#2RhmhR2TR6C/Y�Si�<
&>\D>`B"4VmqmV4[g7E.UzL[�;��'CX`c-G>$=QZ]+YJ
5F'.D7.07F]>S{#&bEApR0C6" % "<Q/3L;004EY=M{%%cJ6aK,55��)A5-*+ `=-F7,)'&^'�"W'3K�PX@
SD@OSGY�((($+#".54>32#".54>32�

W









U����,H\�@
BK�PX@4hf[[		SCSDK�PX@4hf[[		SCSD@4hf[[		SCSDYY@
YW*,((#&(%!
+632#".54>32#".#"3264>32#".732>54.#"8;�t`�s@Cx�c4WJ@
!:[DS�a55^�MU{�S4]���dd���]44]���dc���]4;g���hh���g�
;FAv�fd�wB)!5b�WZ�a3)Pc���^44^���cd���^44^���d��hh���ii��j>5�&4B@? ,Bh[WSD('.-'4(4$##' 	+#"&/#".54>754&#"#"/>322>755 

15=$!<.*]�iDI+;(0jCeh��!81+��!*GD$
%9'$A13LO
0-ub��"�D8'����%�%(+55���
	
���
	
�
z
��	��
{
z
��	��
�S��=K�	PX@_MQE@kMQEY�+!#!�=R���'d)5z@MQE+!!d�/zQU����/FO��:BK�PX@/h		[
[SCSDK�PX@/h		[
[SCSD@/h		[
[SCSDYY@00OMIG0F0E)!(*,&+4>32#".732>54.#"#32#"&'.#'32654&+U4]���dd���]44]���dc���]4;g���hh���g�U����u	P
��n�ywlv��c���^44^���cd���^44^���d��hh���ii��yusvd���
_
@a[\T�5%@MQE+!!!��%A[D��'@WSD((($+4>32#".732>54.#"[/Qn??nQ//Qn??nQ/G$>T00T=$$=T00T>$n>mQ..Qm>>lQ//Ql>0T>$$>T00T?$$?TmP�7@4YYMQE
	+!!#!5!!!i��QN�R��R��U��jI�n�I��Ia�;W-g@
+BK�#PX@h[SD@!h[OQEY@(&#!
--+2>3!2!546?>54.#"#"&/>V,N9!*8�'�&�1%'4>H|W1I0(E?;�*�89< #4"G7`fb|=W?�@=BK�PX@,hh[[SD@1hh[[OSGY@;964.-,+#!??	+2#".'7>3232>54.#5>54.#"#"/>\,L7 H<IM%@V0<Q7!$;-)>).J5[Y'3?I{W/C+BWTB0M73C$
(%*4!4%1K?"2!A;`f���	@kD	#++7>3�9���
������0@-BCS
CD&$!#+32673#"/#"&'#"&5逃a�C`5	F�fb�%0���cX��X\MH+X$��6�B��*@'hiSD+##!#".54>3��U��Vg�r==r�g�R�
�
y8b�MP�\2��o�@OSG($+4>32#".�$&&$P&&%%����V@
BK�	PX@^jTD@jjTDY@+232654.'73#"&'76�(390A'*=Y]1D()N
��
,&!�`<;0!��5RO�	BK�PX@jjQD@jjMRFY�$+37#"/733!����:����%~	��c1W;��)@&WSD	+2#".54>2654&#"wBjJ''JjBDjK''KjDhiihkii�*OoEEoO**OoEEoO*��rq��qr�����)�'(+7'&547>7.'&54?'&547>7.'&54?�������	&

%	��
��	&

%	��
�q�#-O@L!	Bh		Z
[CS
D-+(&#"$!"
+%3+#5!"/3%37#"/733!47!+>;�~m?��`C�����:�������( 
*�$�� �#%~	��c1w�}�
d�K�-=Ge@b710+Bhh		Z[CS

DGEB@=<;:9853/.(&#!
--
+2>3!2!546?>54.#"#"&/>%37#"/733!+>;f,N9!*8�'�&�1%'4>I|�����:����( 
*�1I0(E?;�*�89< #4"@>`f%~	��c1�b
dSq�PU_]@N	
$SBK�	PX@B

h		h
	
	[[
\SCS
DK�PX@B

h		h
	
	[[
\SCS
DK�
PX@B

h		h
	
	[[
\SCS
D@B

h		h
	
	[[
\SCS
DYYY@!_]ZXUTKHEC=<;:20)' PP!"+%3+#5!"/32#".'7>3232>54.#5>54.#"#*.'>47!+>;�~m?��`C�Z,L7 H<IM%@V0<Q7!$;-)>).J5[Y'3>J	{�����( 
*�$�� ��/C+BWTB0M73C$
(%*4!4%1K?"2!G5`f���}�
d*����);5@2BhfSCTD('#-$+#".54>?332>324>32#"&�DQ`8E}]70GTJ3A0GTG0*H^3E_@$
		��!""'5�2')MoGLkM924#��*<45E]B6U;#+#O""!5����&$	[����&$[����&$
`����&$`����&$
`����&$`����4@1YYQCS
D"	+!!!!!!!+!����Hj��K��8���
O� i�U��S��U��c7.|���Oh@e<B
M	Bhf
hSCSC	S			DKIA@:820(&!OO+232654.'7.54>32#".#"32>7>32#"&'76�(390A'$��Ze���M�ob/	+=TnF�؜WV��yLwdV*	
(,ey�UY]1D()N
��
,&!sn���
�i+@*-%Y�뒖�W(:'+.J5K<;0!���"�&(	Z���"�&(Z���"�&(
_���"�&(
_����&,	���N�&,��E�&,
	��N�&,
	1��!,@)YSCS
D!%(!+3!2#!#%4.#!!!!2>1����bb������R�Ҁ�c��l��ҕR��b��������b���T��@��T������&1���{����&2	���{����&2���{����&2
���{����&2���{����&2
����D�	(+		'	7	�t3����4u��5pn����4t��4vp6��o{����!-9b@
21&%BK�PX@kCSCSD@jkSCSDY�**%(%$+#"&'+7&54>327>;.#"4&'32>�b���s�Q�
 ,�lwc���y�So7�eo�$^U�G�j~їSrVN�E�d�ҕRĤ���g=9��`���hC?��`�갠�R�9<W�씘�R�35V��������&8	�������&8�������&8
�������&8
�����&</�S�.@+[[C
D
!+#3!2#%!2>54&#!Vff��E��u��^�g7����������]�q?R4\}J����'�J>@;BhSC
CSDED?='%" JJ+2#"&'7>3232>54.54>54.#"#4>�U�Z./GRG/!7EIE7!2Z~Me�<

%<Y?;\?!;XfX;0ITI0?fIG}^6_Bu��3Qd2>\G87:%$1$!)<S;DrR-C6" % #=R/CQ4&1K?1H>:DS8I?*+X�^��e�o;��k��C�&DC���k��C�&Dv���k��C�&D����k��Ci&D����k��CW&Dj���k��C�&D��k����BR]�@:@BK�1PX@5hh

[S	CSD@?hh

[S	CSCSDY@&TSYXS]T]NLDC><7520-,$"
	BB+2#!32>32#"&'#".54>754&#"#"&/>32>32>5"!4.�K�`7
�l0X|LGdD&
JZe4��/Uly7?lP.H��wuHeF,M�k~�/���ͅ?!<R1BtW2�HsR1V(He�<s�op�r:!'!
4%��MjBBhI@qV6E��)0)
NP�po��(BY58O2,U|O+4^�RU�]1X��X�Gh@e6:
E	Bhf
hSCSC	S			DCA9842/-%# GG+232654.'7.54>32#".#"32>32#"&'76�(390A'%W�g8<s�la�8	
#:W>V�[01Z�NHa?%
-�jY]1D()N
��
,&!vK��sr��K>5" =r�ei�o:"("
 :NO<;0!��X����&HC���X����&Hv���X����&H����X���W&Hj���"V�&�C������&�v�������&��������W&�j�Y���}6J6@3<2B65@[SD87B@7J8J.,$"+&54?.'.546?7#".54>32.'2>7.#"�~<�J
Z�N�
r?iM*9r�s[�wD:o�g5kcV �n�9X�\2;XvLX�Y-7_}.

m!/<0�d/z��u��WAy�l`�I9X<��K��-E��t3fP2<j�R]�d5����i&Q���W����&RC���W����&Rv���W����&R����W���i&R����W���W&Rj�m�_#+@([YOSG($(#+!!4632#"&4632#"&m��Uy5'""'55'""'5�I�'7#!5�_'7#!5W���& ,6=@:54%$
BjkSCSD.--6.6'%($'+#"'+7.54>327>;.#"2>54'h<>=t�k�lQ
!&�DF=u�kX�7W2��/0�-vKY�[.iY�Z.P�
WiC�vu��HOm�C�u��I1-t��h�9�*,?s���>r�d�s�]E�������&XC��������&Xv��������&X��������W&Xj�������&\v������!@@=BCSCSCD!!&#+3>32#"&'"32>54&�_B�m��9n�if�6Bc�>9�YX�Y-�����Xg��m��PNL�g\��VF@u�b�������W&\j���c�&/O@L,BAhZC
CSD('#!&&	+2#"&54>7&'!+3"32>!.'F
T/L^'1��I�NCfC23&@2&�z���"KB92*��e��y/A'05��++k����BRn@k-H	6Bh
h		[SCSCSDDCJICRDR?=1/*(%# BB+2#"&54>7&/#".54>754&#"#"&/>3232>2>7�
T/L^)4
)QXf=3`J-H��wuHeF,N�mPxO(.(@2&��:aSH#�ͅ?!6H�"KB ;3+	(@,>aD?lP0h��(0(
NP3_�S�x"-705(->$#<S52I/��|���&&��X��X�&Fv���A�'T@Q	B
		hYQCQ
C		SD$"''+2#"&54>7!!!!!!#32>$
T/L^&1�RP�l���[.(@2&�"KB82+�U��S��U"-705X����CNg@d2Bhh

[		SCSCSDEDJIDNEN@>0.+)$"CC
+2#"&54>7"#".54>32#!32>3232>"!4.�
T/L^!+
f�xA=s�jT�i;
�14`�TKnK,

7EP*,&@2&�MzY7	�,Pp�"KB4/)G��k��J:o�ip�s:!)!
 *"",505�0Z~NPX/��@C
D+#_��:�#@ BCR
D+%!!54?3c��r�����f��?��WKeB
]�9�#@ 
BC
D+7#54?[��_�����Y2T���Z4Tv����&1������&Qv{��7� 4�@

BK�PX@+YSCQC	S
DK�%PX@)YSCQC	S
DK�)PX@3YSCQC	Q
C	SD@1YSCQCQ
C		SDYYY@
1/%(%
+!!!!!#".54>32!4.#"32>7�l���%k��]�ߠYY�߇]��k%E��J��sr��KK��rs��J2��S��UNR�Y/f�
���h0Z�RM�=��XX�씕�WW��W��W�2FQa@^.
Bh

[
	SCSDHG43MLGQHQ><3F4F,*" 
	22+2#!32>32#"&'#".54>32>2>54.#""!4.�K�`7�l0Y|LCcE)JZe4��,*Ĕb�m::m�c��*E^x�ZR{R))R{RS|S))S|?HsR1W(Ie�<s�op�r:!)!
 4%����H��uu��I��BjL)�K=r�dc�s>>s�cd�r=n4^�RU�]1��W����&6��Y����&Vv���W����&6��Y����&V������&<
4��s��&=h��J:�&]v���s��&=k��J:�&]����s��&=k��J:�&]��v����#2@/YSCSD##""	+#543>7'&=37>3#"!{`Dl�X$3`N7
_��ض$5`N7
e��b�\+0 FpR

'���3FpR�G �(�@BkD* +#"/&'+73(A��C�U���� �(�
@BkD' +32?>;# C��A�U��

�����5%q5�� @WD
+".5332>53$B[9E(A00A)E9[�'DZ2%B22B%2ZD'��}�@SD($+#".54>32}    F!!xs��=K�'PX@WSD@[OSGY�$&($+4>32#".732654&#"x/?##?//?##?/:@32@@23@$<++<$$;,,;$2@@22@@����
+@(B@jSD+2#"&54>732>�
T/L^-81.(@2&�"KB"=6,
"-705&�*iQK�PX@WSD@[OSGY@
+2673#".#"#4>32�+,;%6"!;63*,=&6"";537/$?.!'!9-$?.!'!|���	#@ SD




	#++7>3!+7>3��*�R�/�
��
��
�.��s�\�BK�1PX@SCS
D@SC
CSDY@!$##	++#!#"&'7632325#5463s�_�,mi4
	���$�e��=nt	'��"
��f@MQE+!!���fG��f@MQE+!!���fG�!.��(+.5467�L=&2#!&K&N�;3d6;=n��(+'&547>54'&547�L=&2#�&K&N�;2e6:=n���(+7'&547>54'&547�L=&2#�&K&N�;2e6:=�!;�)�(+.5467.5467�L=&2#�L=&2#!&K&N�;3d6;=&K&N�;3d6;=n'�)�(+'&547>54'&547%'&547>54'&547�L=&2#JL=&2#�&K&N�;2e6:=&K&N�;2e6:=n�'�)�(+7'&547>54'&547%'&547>54'&547�L=&2#JL=&2#�&K&N�;2e6:=&K&N�;2e6:=������@BK�PX@CCSCDK�%PX@ZCCD@`ZCDYY@
#!""+463632>72!#"'!�M�S

R�N��

����

� ��

�������-�@&"	BK�PX@/
	

	`
	
[CCSCDK�%PX@-
	

	`Z
	
[CCD@/`
	

	`Z
	
[CDYY@+)('%#! !"#+7!!5463632>72!!#.'#"'"&5�|��M�S

R�N��}N�R

S�M�� �

� �B �

�1i|@OSG($+4>32#"..Pj<=lP..Pl=<jP.T=lQ..Ql=<iP..Pii����#5@SD(&(&($+74>32#"&%4>32#"&%4>32#"&i!""'5�!""'5�!""'5M""!5'""!5'""!5W��z�'0DXl�K@H[	[CSC
C
		S
D}{sqig_]US((%"&((($+#".54>324.#"32>>;+#".54>324.#"32>%#".54>324.#"32>�0Rl<>mP..Pm>>lQ/L#=Q--P<##<P--Q=#eC�
D�0Ql<>mP..Pm>>lQ.L#<Q--Q<##<Q--Q<# 0Ql<>mP..Pm>>lQ.L#<Q--Q<##<Q--Q<#3W�X--X�WX�Y--Y�XMnG!!GnMMmF!!Fm�
��PW�X--X�WX�Y--Y�XMoG!!GoMMmF  FmMW�X--X�WX�Y--Y�XMoG!!GoMMmF  Fm�����(+5���
	
�
z
��	��
�����(+7'&547>7.'&54?����	&

%	��
�6��	@C
D#"+'+>;k( 
*
d��o�N[@X;	Bh		h
[	[SC
S


DNMHGFEA?97$##%'$+3>32#".#"!#!!#!32>32#".'#53.547#�Z��n@m]Q%
"1CY:Z�qJZ���
Hp�Z>_H4$	
	%$TfxFq��T���_�ҒN,A+#%?z�v/2'|�~@%+%	#.K5N�ً;'10HH�#C@@
BhS	CS	D##!4%
+67>;#7+"'#32###5��	
9>��?9
	�W�G��
l���,��z*�E?��x;��;h}�71@.1BSCS
D76***+!>54.#"!"&=!5.54>32!#c`�r>V��ooŔV>q�`��b�yDe�뇇�eDx�b�kOw�g~�~??~�~g�wO��4�\��m�ؖOO�؉m��\�4{���.BC@@4Bh[SCSD0/:8/B0B#+(($+>32#".54>32>54&#"#"&'2>7.#"�$CCG(W�_2G�ԌQ�`5I��q5cVD��1K8%
MR�oO
+GeEb�k9(If=#H��~����6f�[rɖV9W;;5-��
�&G��y3cN/I�dKvR+�@BCR
D+3!7!&'^\M�
��*
��ySz!+&M���$@!QCD+##!##5�b��b��R�k��k�RW����&@#
BQCQD+!!!!547	&5W�����{�[��`�R����R$1.
�z��@MQE+!!�=���I(��"@Bj[
D*# +#"&=!267>;#5�:�
�:��O�
��.)%'�
�IJ
�';OL@IK-B[
	O
	SG=<)(GE<O=O31(;);	''+".'#".54>32>32%2>7.#"!2>54.#"�7\NCCN[79hO//Oh97[NCCN\79hO//Oh�F,KB;;BK,,M:!!:M�+M9!!9M+-KB;;BK(BW//VC(+PsGGrP+(CW..WC(+PrGGsP+N&@S--T@&:V78V::V87V:&@T--S@&����K�)*@'BSCSD!%)U$+>32#"&#"#"&'7>3232>7�
:Vo@'9
4XC-	�?]xE!A

"<`G/
>W�U+
+
 DgH��c�Z*	'	 GqQ����/d@a('B[[[	O	SG,*%# //

+267#".#"'>32267#".#"'>32
4Xd84ec`.7Wc<4fc_.4Xd84ec`.7Wc<4fc_*-:+/$,$-8-0$,$��-:+.$,$-8-/$,$���pkK�	PX@)^_	ZMQE@'jk	ZMQEY@

+!3!!!!#!5!7!��uGt��h��@vHv��Th�De��J�J��J��P�O!@	@MQE+!!��
��''%���v>����	?x��I�P�O!@
@MQE+5467>7.'.=!5!�
&&&��
���(��?>�I��f��"@
BMQE+3	#	>7	.'��B��nB��L		N��	
�@����@�S�������@CD+3#���k�a�BK�!PX@SCQC	
D@[SC	
DY@!$%!
+3'&=354>32#"&#"!#!nj�6g�_!G
+!��G`�{	'U\�g7
0
��R�<}����"�K�!PX@SCQC	
DK�1PX@[SC	
D@![CSC	
DYY@""A15!
+3'&=354>32;#.#"!!nj�4d�`"IE<H_6w0KvQ+ ��{	'AX�n>�nO/Y~NAG����R��
@jD


+2+:	 0["6M6
��	@ja		+2#"&'%t�G
���	
��2E�%@OSG&(($+#".54>32#".54632�

�

0!
�





!1
U5�q@MQE+!!U��aq<�J�	@ja	#++7>3J��
F����
	<�@Bja, +#"&/.'+73<I��J�Z{{�<�@Bja, +32>?>;#J�	�I�Z�{{�2��
(@%jOSG


+"&5332653$|v@R``R@v�pfGQQGbt�8{�@OSG($+#".54>32{  �}���!@[OSG$&($+4>32#".732654&#"}-="">-->""=-5@32@@23@^";**;"#:**:#2@@22@@*)�1@.[OSG
+2673#".#"#4>32�*,6"5"!<85*+8$4""<84P7+#;- % 8*"<- % j��	+@(OSG




	#++7>3!+7>3��/�
q�4���	��	���m�
@kD


+2+U	 3�#;U<.���U_<��ʓ^p�ӡ�6��z�	��V�6�:z/������V���Wgj��X�Xb {�m�n�d�i���I�������?�������x�������������!kl	�|����x��|��V��Y(������;{��;{��W�#��	����sX���Xk��IV�kD��XDW�X��K:���������7�:�:W.�DW�\Y�4:����#��JX?XXi��������C���UX��I'MU�jj����dMUI[�m�a�bI�:��6�I����Wj������S�*						7��|��������VV�VV'1��;{;{;{;{;{��;{��������������k�k�k�k�k�kIk�X�X�X�X�X�"������0Y:�:W:W:W:W:W�m:W:�:�:�:��.��	�k|�X���X��*:X9��:��{�W:W\YW\Y��s�J�s�J�s�J�vI I II5I�IxI�I&I|�.:�7����n�n���n�n�����`i�Wk�k��6��H�h�{TMTW��c(TJ��������������*lI�IIIUI�III2I�I}I*IjI�l�#`�	�V��B��V#��$�V&��*��2��4��97:7<?7D��F��G��H��R��T��m�Bo�By�B}�B��V��V��V��V��V��V��V��������������������������������������������������������������������������������V��������������B�B���B�B�B��V
	�V
�
�B
�
�V
#��
$�V
&��
*��
2��
4��
97
:7
<
?7
D��
F��
G��
H��
R��
T��
m�B
o�B
y�B
}�B
��V
��V
��V
��V
��V
��V
��V
���
���
���
���
���
���
���
�
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
�V
��
��
��
��
��
��
�
�B
�B
�
�
�B
�B
�B
��V#��&��*��2��4��F��G��H��R��T���������������������������������������������������������������������
	�V
�
�B
�
�V
#��
$�V
&��
*��
2��
4��
97
:7
<
?7
D��
F��
G��
H��
R��
T��
m�B
o�B
y�B
}�B
��V
��V
��V
��V
��V
��V
��V
���
���
���
���
���
���
���
�
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
�V
��
��
��
��
��
��
�
�B
�B
�
�
�B
�B
�B
��V�
�
��v#��&��*��2��4��7�L9�L:��<�y?�LY��Z��\��l�m�vo�vr�y�v|�}�v�����������������������y�����y�v�v�����v�v�v���B	��
�B
�B�v�v��$��7�L9��:��;��<�`=��?��l�Br�B|�B�����������������������`���`�������B�B�v�B�B�v��B����
�
��v#��&��*��2��4��7�L9�L:��<�y?�LY��Z��\��l�m�vo�vr�y�v|�}�v�����������������������y�����y�v�v�����v�v�v��7	��
7
7�G���G������"<#��$��&��*��-�o2��4��D��F��G��H��I��J�{P��Q��R��S��T��U��V��W��X��Y��[��\��]��l7m��o��r7tFuFw��y��{F|7}���������������������������������������������������������������������������������������������������������������������������������������7�7�G�7�7�G����7���#��#	��#
��#��#
��#��#��#��#$��#7��#9��#;��#<��#=��#?��#@��#`��#l��#r��#|��#���#���#���#���#���#���#���#���#��#��#��#��#��#��#��#��#��#��#��#���#���$�V$
�V$
�V$��$"��$#��$&��$*��$--$2��$4��$7��$8��$9��$:��$<�t$?��$Y��$\��$l�V$m��$o��$r�V$t�`$u�`$y��${�`$|�V$}��$���$���$���$���$���$���$���$���$���$���$���$��t$��$��$�t$��$��$�V$�V$�V$�V$��$��$��$��V&�e&m�e&o�e&y�e&}�e&�e&�e&�e&�e&�e'��'	��'
��'��'
��'��'��'��'$��'7��'9��';��'<��'=��'?��'@��'`��'l��'r��'|��'���'���'���'���'���'���'���'���'��'��'��'��'��'��'��'��'��'��'��'���'���)	��)�L)�L)��)��)��)")$��)-�.)F��)G��)H��)P��)Q��)R��)S��)T��)U��)X��)w��)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)��)��)��)��)��)�L)�L)���-	��-��-��-��-$��-���-���-���-���-���-���-���-��-��-��-���.��.#��.&��.*��.2��.4��.F��.G��.H��.I��.R��.T��.W��.Y��.Z��.\��.m��.o��.y��.}��.���.���.���.���.���.���.���.���.���.���.���.���.���.���.���.���.���.���.���.��.��.��.��.��.��.��.��.��.��/��/
��/
��/4/�$/4/"��/#��/&��/*��/2��/4��/7�[/9�V/:�y/<�=/?�V/F��/G��/H��/R��/T��/Y��/Z��/\��/l��/m�$/o�$/r��/t�B/u�B/y�$/{�B/|��/}�$/���/���/���/���/���/���/���/��=/���/���/���/���/���/���/���/���/���/���/���/���/��/��/��/��/��/�=/�$/�$/��/��/�4/��/��/�4/�$/�$/�$/���2��2	��2
��2��2
��2��2��2��2$��27��29��2;��2<��2=��2?��2@��2`��2l��2r��2|��2���2���2���2���2���2���2���2���2��2��2��2��2��2��2��2��2��2��2��2���2���3	��3�3�3��3$��3-�V3D��3F��3G��3H��3R��3T��3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3��3��3��3��3��3�3�3���4��4	��4
��4��4
��4��4��4��4$��47��49��4;��4<��4=��4?��4@��4`��4l��4r��4|��4���4���4���4���4���4���4���4���4��4��4��4��4��4��4��4��4��4��4��4���4���5#��5&��5*��52��54��57��58��5���5���5���5���5���5���5���5���5���5���5���5��5��7	��7�L7�L7�L7��7�`7�`7#��7$��7&��7*��7-�872��74��7D�7F�)7G�)7H�)7J�>7P�`7Q�`7R�)7S�`7T�)7U�`7V�D7X�`7Y�L7Z�t7[�g7\�L7]��7m�L7o�L7w�`7y�L7}�L7���7���7���7���7���7���7���7���7���7���7���7���7���7���7��7��7��7��7��7��7��7��)7��)7��)7��)7��)7��)7��`7��)7��)7��)7��)7��)7��)7��`7��`7��`7��`7��7�7��7�)7�)7�`7��7�)7�L7�L7�L7�L7�L7�L7�L7���8	��8��8��8��8$��8���8���8���8���8���8���8���8��8��8��8���979	��9
79
79�G9��9�G9��9��9��9"<9#��9$��9&��9*��9-�o92��94��9D��9F��9G��9H��9I��9J�{9P��9Q��9R��9S��9T��9U��9V��9W��9X��9Y��9[��9\��9]��9l79m��9o��9r79tF9uF9w��9y��9{F9|79}��9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9��9��9��9��9��9��9��9��9�9�9�79�79�G9�79�79�G9�9�9�9�79���:7:	��:
7:
7:��:��:��:��:"%:$��:-��:D��:F��:G��:H��:J��:R��:T��:V��:l7:m��:o��:r7:t7:u7:y��:{7:|7:}��:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:��:��:��:��:��:��:��:�7:�7:�:�7:�7:�:��:��:��:�7:���;��;#��;&��;*��;2��;4��;F��;G��;H��;I��;R��;T��;W��;Y��;Z��;\��;m��;o��;y��;}��;���;���;���;���;���;���;���;���;���;���;���;���;���;���;���;���;���;���;���;��;��;��;��;��;��;��;��;��;��<<	�t<
<
<�y<�`<�y<�t<��<��<"%<#��<$�t<&��<*��<-�8<2��<4��<D��<F�`<G�`<H�`<J�[<P��<Q��<R�`<S��<T�`<U��<V��<X��<Y��<Z��<[��<\��<l<m�`<o�`<r<t-<u-<w��<y�`<{-<|<}�`<��t<��t<��t<��t<��t<��t<��t<���<���<���<���<���<���<���<���<���<���<���<���<���<���<��`<��`<��`<��`<��`<��`<���<��`<��`<��`<��`<��`<��`<���<���<���<���<�t<��<��<�`<�`<��<��<�`<�`<�`<�<�<�y<�<�<�y<�`<�`<�`<�<��t=��="%=#��=&��=*��=2��=4��=F��=G��=H��=R��=T��=V��=Y��=\��=m��=o��=y��=}��=���=���=���=���=���=���=���=���=���=���=���=���=���=���=���=���=���=���=���=��=��=��=��=��=�=�=�=�=�>#��>&��>*��>2��>4��>F��>G��>H��>R��>T��>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>��>��>��>��>��?�V?
�V?
�V?��?"��?#��?&��?*��?--?2��?4��?7��?8��?9��?:��?<�t??��?Y��?\��?l�V?m��?o��?r�V?t�`?u�`?y��?{�`?|�V?}��?���?���?���?���?���?���?���?���?���?���?���?��t?��?��?�t?��?��?�V?�V?�V?�V?��?��?��?��VD��D
��D
��DY��DZ��D\��Dl��Dr��Dt��Du��D{��D|��D�D�D�D�D���E��E
��E��E
��E9��E:��E?��E@��EY��E[��E\��E`��El��Er��E|��E�E�E�E�E���H��H
��H��H
��H9��H:��H?��H@��HY��H[��H\��H`��Hl��Hr��H|��H�H�H�H�H���IKI
KI
KI�yI�yIlKIrKItdIudI{dI|KI�KI�KI�yI�KI�KI�yI�KK��K
��K
��KY��KZ��K\��Kl��Kr��Kt��Ku��K{��K|��K�K�K�K�K���NF��NG��NH��NR��NT��N���N���N���N���N���N���N���N���N���N���N���N���N��N��N��P��P
��P
��PY��PZ��P\��Pl��Pr��Pt��Pu��P{��P|��P�P�P�P�P���Q��Q
��Q
��QY��QZ��Q\��Ql��Qr��Qt��Qu��Q{��Q|��Q�Q�Q�Q�Q���R��R
��R��R
��R9��R:��R?��R@��RY��R[��R\��R`��Rl��Rr��R|��R�R�R�R�R���S��S
��S��S
��S9��S:��S?��S@��SY��S[��S\��S`��Sl��Sr��S|��S�S�S�S�S���U��U��UD��U���U���U���U���U���U���U���U��U�U�Y	��Y��Y��Y��Y$��YF��YG��YH��YR��YT��Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y��Y��Y��Y��Y�Y�Y���Z��Z��Z��Z��[F��[G��[H��[R��[T��[���[���[���[���[���[���[���[���[���[���[���[���[��[��[��\	��\��\��\��\$��\F��\G��\H��\R��\T��\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\��\��\��\��\�\�\���^#��^&��^*��^2��^4��^F��^G��^H��^R��^T��^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^��^��^��^��^��l	�Vl�l�Bl�l�Vl#��l$�Vl&��l*��l2��l4��l97l:7l<l?7lD��lF��lG��lH��lR��lT��lm�Blo�Bly�Bl}�Bl��Vl��Vl��Vl��Vl��Vl��Vl��Vl���l���l���l���l���l���l���l�l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l�Vl��l��l��l��l��l��l�l�Bl�Bl�l�l�Bl�Bl�Bl��Vm�Bm	��m
�Bm
�Bm�vm�vm��m$��m7�Lm9��m:��m;��m<�`m=��m?��ml�Bmr�Bm|�Bm���m���m���m���m���m���m���m��`m��m�`m��m��m��m�Bm�Bm�vm�Bm�Bm�vm��Bm���o�Bo	��o
�Bo
�Bo�vo�vo��o$��o7�Lo9��o:��o;��o<�`o=��o?��ol�Bor�Bo|�Bo���o���o���o���o���o���o���o��`o��o�`o��o��o��o�Bo�Bo�vo�Bo�Bo�vo��Bo���p��p	��p
��p��p
��p��p��p��p$��p7��p9��p;��p<��p=��p?��p@��p`��pl��pr��p|��p���p���p���p���p���p���p���p���p��p��p��p��p��p��p��p��p��p��p��p���p���r	�Vr�r�Br�r�Vr#��r$�Vr&��r*��r2��r4��r97r:7r<r?7rD��rF��rG��rH��rR��rT��rm�Bro�Bry�Br}�Br��Vr��Vr��Vr��Vr��Vr��Vr��Vr���r���r���r���r���r���r���r�r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r�Vr��r��r��r��r��r��r�r�Br�Br�r�r�Br�Br�Br��Vt	�`t�`t$�`t9Ft:Ft<(t?Ft��`t��`t��`t��`t��`t��`t��`t�(t�`t�(t��`u	�`u�`u$�`u9Fu:Fu<(u?Fu��`u��`u��`u��`u��`u��`u��`u�(u�`u�(u��`y�By	��y
�By
�By�vy�vy��y$��y7�Ly9��y:��y;��y<�`y=��y?��yl�Byr�By|�By���y���y���y���y���y���y���y��`y��y�`y��y��y��y�By�By�vy�By�By�vy��By���{	�`{�`{$�`{9F{:F{<({?F{��`{��`{��`{��`{��`{��`{��`{�({�`{�({��`|	�V|�|�B|�|�V|#��|$�V|&��|*��|2��|4��|97|:7|<|?7|D��|F��|G��|H��|R��|T��|m�B|o�B|y�B|}�B|��V|��V|��V|��V|��V|��V|��V|���|���|���|���|���|���|���|�|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|�V|��|��|��|��|��|��|�|�B|�B|�|�|�B|�B|�B|��V}�B}	��}
�B}
�B}�v}�v}��}$��}7�L}9��}:��};��}<�`}=��}?��}l�B}r�B}|�B}���}���}���}���}���}���}���}��`}��}�`}��}��}��}�B}�B}�v}�B}�B}�v}��B}�����V�
�V�
�V����"���#���&���*���--�2���4���7���8���9���:���<�t�?���Y���\���l�V�m���o���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������t��������t��������V��V��V��V������������V��V�
�V�
�V����"���#���&���*���--�2���4���7���8���9���:���<�t�?���Y���\���l�V�m���o���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������t��������t��������V��V��V��V������������V��V�
�V�
�V����"���#���&���*���--�2���4���7���8���9���:���<�t�?���Y���\���l�V�m���o���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������t��������t��������V��V��V��V������������V��V�
�V�
�V����"���#���&���*���--�2���4���7���8���9���:���<�t�?���Y���\���l�V�m���o���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������t��������t��������V��V��V��V������������V��V�
�V�
�V����"���#���&���*���--�2���4���7���8���9���:���<�t�?���Y���\���l�V�m���o���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������t��������t��������V��V��V��V������������V��V�
�V�
�V����"���#���&���*���--�2���4���7���8���9���:���<�t�?���Y���\���l�V�m���o���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������t��������t��������V��V��V��V������������V��e�m�e�o�e�y�e�}�e��e��e��e��e��e����	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|�������������������������������������������������������������������������������	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|�������������������������������������������������������������������������������	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|�������������������������������������������������������������������������������	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|�������������������������������������������������������������������������������	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|�������������������������������������������������������������������������������	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|����������������������������������������������������������������������������	������������$��������������������������������������������	������������$��������������������������������������������	������������$��������������������������������������������	������������$���������������������������������������������	�t�
�
��y��`��y��t�������"%�#���$�t�&���*���-�8�2���4���D���F�`�G�`�H�`�J�[�P���Q���R�`�S���T�`�U���V���X���Y���Z���[���\���l�m�`�o�`�r�t-�u-�w���y�`�{-�|�}�`���t���t���t���t���t���t���t�����������������������������������������������������������`���`���`���`���`���`�������`���`���`���`���`���`������������������t��������`��`��������`��`��`������y������y��`��`��`�����t����	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|�������������������������������������������������������������������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|����������������V�
�V�
�V����"���#���&���*���--�2���4���7���8���9���:���<�t�?���Y���\���l�V�m���o���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������t��������t��������V��V��V��V������������V����
���
���Y���Z���\���l���r���t���u���{���|����������������e�m�e�o�e�y�e�}�e��e��e��e��e��e����
������
���9���:���?���@���Y���[���\���`���l���r���|����������������t�
�t�
�t��o�9�j�:���<�y�?�j�Y���\���l�t�m�o�o�o�r�t�t���u���y�o�{���|�t�}�o���y��y��o��o��t��t��t��t��o��o��o���t����
���
���Y���Z���\���l���r���t���u���{���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|����������������	�t�
�
��y��`��y��t�������"%�#���$�t�&���*���-�8�2���4���D���F�`�G�`�H�`�J�[�P���Q���R�`�S���T�`�U���V���X���Y���Z���[���\���l�m�`�o�`�r�t-�u-�w���y�`�{-�|�}�`���t���t���t���t���t���t���t�����������������������������������������������������������`���`���`���`���`���`�������`���`���`���`���`���`������������������t��������`��`��������`��`��`������y������y��`��`��`�����t����"%�#���&���*���2���4���F���G���H���R���T���V���Y���\���m���o���y���}�����������������������������������������������������������������������������������������������������������"%�#���&���*���2���4���F���G���H���R���T���V���Y���\���m���o���y���}�����������������������������������������������������������������������������������������������������������"%�#���&���*���2���4���F���G���H���R���T���V���Y���\���m���o���y���}���������������������������������������������������������������������������������������������������������B�	���
�B�
�B��v��v����$���7�L�9���:���;���<�`�=���?���l�B�r�B�|�B�������������������������������`�����`�����������B��B��v��B��B��v���B������B�	���
�B�
�B��v��v����$���7�L�9���:���;���<�`�=���?���l�B�r�B�|�B�������������������������������`�����`�����������B��B��v��B��B��v���B�����	�V����B����V�#���$�V�&���*���2���4���97�:7�<�?7�D���F���G���H���R���T���m�B�o�B�y�B�}�B���V���V���V���V���V���V���V������������������������������������������������������������������������������������������������������������V����������������������B��B������B��B��B���V�	�V����B����V�#���$�V�&���*���2���4���97�:7�<�?7�D���F���G���H���R���T���m�B�o�B�y�B�}�B���V���V���V���V���V���V���V������������������������������������������������������������������������������������������������������������V����������������������B��B������B��B��B���V���
��
���v�#���&���*���2���4���7�L�9�L�:���<�y�?�L�Y���Z���\���l��m�v�o�v�r��y�v�|��}�v�������������������������������y��������y��v��v����������v��v��v����	�V����B����V�#���$�V�&���*���2���4���97�:7�<�?7�D���F���G���H���R���T���m�B�o�B�y�B�}�B���V���V���V���V���V���V���V������������������������������������������������������������������������������������������������������������V����������������������B��B������B��B��B���V�	�V����B����V�#���$�V�&���*���2���4���97�:7�<�?7�D���F���G���H���R���T���m�B�o�B�y�B�}�B���V���V���V���V���V���V���V������������������������������������������������������������������������������������������������������������V����������������������B��B������B��B��B���V���
��
���v�#���&���*���2���4���7�L�9�L�:���<�y�?�L�Y���Z���\���l��m�v�o�v�r��y�v�|��}�v�������������������������������y��������y��v��v����������v��v��v�����B�	���
�B�
�B��v��v����$���7�L�9���:���;���<�`�=���?���l�B�r�B�|�B�������������������������������`�����`�����������B��B��v��B��B��v���B������B�	���
�B�
�B��v��v����$���7�L�9���:���;���<�`�=���?���l�B�r�B�|�B�������������������������������`�����`�����������B��B��v��B��B��v���B������B�	���
�B�
�B��v��v����$���7�L�9���:���;���<�`�=���?���l�B�r�B�|�B�������������������������������`�����`�����������B��B��v��B��B��v���B�����	�V����B����V�#���$�V�&���*���2���4���97�:7�<�?7�D���F���G���H���R���T���m�B�o�B�y�B�}�B���V���V���V���V���V���V���V������������������������������������������������������������������������������������������������������������V����������������������B��B������B��B��B���V��V�
�V�
�V����"���#���&���*���--�2���4���7���8���9���:���<�t�?���Y���\���l�V�m���o���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������t��������t��������V��V��V��V������������V�����"��"��J��"<b��n�6�2�	(	z	�

,
R
�~����

�
�
�Zv��@~�F��F��Fr���*�z�T����T��V�`����P���r�NN���Jl 
 ^!B!�!�"$">##&#n#�$"$�$�%.%d%�%�&.&t&�'0'�))r)~)�)�)�)�)�**�*�*�*�*�*�*�*�++T+`+l+x+�+�+�+�,P,\,h,t,�,�,�-P-\-h-t-�-�-�.x///(/4/@/L/X/d/p/�0000&020>0�1111$101<1�1�22�2�2�3<3�3�4*4\4h4t5<5�5�5�6666(646@6L6X6d6�6�777D7n7�7�8R8�8�8�99>9d9�9�::V:�;t;�;�<�<�= =>=�>4>�??F?p?�?�?�@�@�A^A�A�B6BxB�B�CbC�C�C�DD.D\D�D�D�E$EhE�E��`"/n�	� ��
��(�
�(�
�0�%	%
�42(
�Z	6	J	^	Pl	�	P�	�	` 	�		�	
��	0
V	d
�	
�
�	4n	�	
�Copyright (c) 2010-2013 by tyPoland Lukasz Dziedzic with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1.Lato LightRegulartyPolandLukaszDziedzic: Lato Light: 2013Version 1.105; Western+Polish opensourceLato-LightLato is a trademark of tyPoland Lukasz Dziedzic.Lukasz DziedzicLato is a sanserif typeface family designed in the Summer 2010 by Warsaw-based designer Lukasz Dziedzic ("Lato" means "Summer" in Polish). It tries to carefully balance some potentially conflicting priorities: it should seem quite "transparent" when used in body text but would display some original traits when used in larger sizes. The classical proportions, particularly visible in the uppercase, give the letterforms familiar harmony and elegance. At the same time, its sleek sanserif look makes evident the fact that Lato was designed in 2010, even though it does not follow any current trend. The semi-rounded details of the letters give Lato a feeling of warmth, while the strong structure provides stability and seriousness.http://www.typoland.com/http://www.typoland.com/designers/Lukasz_Dziedzic/Copyright (c) 2013-2013 by tyPoland Lukasz Dziedzic (http://www.typoland.com/) with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1 (http://scripts.sil.org/OFL).http://scripts.sil.org/OFLCopyright (c) 2010-2013 by tyPoland Lukasz Dziedzic with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1.Lato LightRegulartyPolandLukaszDziedzic: Lato Light: 2013Lato-LightVersion 1.105; Western+Polish opensourceLato is a trademark of tyPoland Lukasz Dziedzic.Lukasz DziedzicLato is a sanserif typeface family designed in the Summer 2010 by Warsaw-based designer Lukasz Dziedzic ("Lato" means "Summer" in Polish). It tries to carefully balance some potentially conflicting priorities: it should seem quite "transparent" when used in body text but would display some original traits when used in larger sizes. The classical proportions, particularly visible in the uppercase, give the letterforms familiar harmony and elegance. At the same time, its sleek sanserif look makes evident the fact that Lato was designed in 2010, even though it does not follow any current trend. The semi-rounded details of the letters give Lato a feeling of warmth, while the strong structure provides stability and seriousness.http://www.typoland.com/http://www.typoland.com/designers/Lukasz_Dziedzic/Copyright (c) 2013-2013 by tyPoland Lukasz Dziedzic (http://www.typoland.com/) with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1 (http://scripts.sil.org/OFL).http://scripts.sil.org/OFLLatoLight�ZD	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a��������������������������������bc�d�e�������f����g�����h���jikmln�oqprsutvw�xzy{}|��~�������	
�����
����������������������������������������������� !"#NULLuni00A0uni00ADmacronperiodcenteredAogonekaogonekEogonekeogonekNacutenacuteSacutesacuteZacutezacute
Zdotaccent
zdotaccentuni02C9EuroDeltauni2669undercommaaccent
grave.case
dieresis.casemacron.case
acute.casecircumflex.case
caron.case
breve.casedotaccent.case	ring.case
tilde.casehungarumlaut.case
caron.salt��bKbK�������V��������V�,� `f-�, d ��P�&Z�E[X!#!�X �PPX!�@Y �8PX!�8YY �Ead�(PX!�E �0PX!�0Y ��PX f ��a �
PX` � PX!�
` �6PX!�6``YYY�+YY#�PXeYY-�, E �%ad �CPX�#B�#B!!Y�`-�,#!#! d�bB �#B�*! �C � ��+�0%�QX`PaRYX#Y! �@SX�+!�@Y#�PXeY-�,�C+�C`B-�,�#B# �#Ba��b�`�*-�,  E �Ec�Eb`D�`-�,  E �+#�%` E�#a d � PX!��0PX� �@YY#�PXeY�%#aDD�`-�,�E�aD-�	,�`  �	CJ�PX �	#BY�
CJ�RX �
#BY-�
, �b �c�#a�C` �` �#B#-�,KTX�DY$�
e#x-�,KQXKSX�DY!Y$�e#x-�
,�CUX�C�aB�
+Y�C�%B�	%B�
%B�# �%PX�C`�%B�� �#a�	*!#�a �#a�	*!�C`�%B�%a�	*!Y�	CG�
CG`��b �Ec�Eb`�#D�C�>�C`B-�,�ETX�#B `�a�

BB�`�
+�m+"Y-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�	+-�,�+�ETX�#B `�a�

BB�`�
+�m+"Y-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-� ,�+-�!,�+-�",�+-�#,�	+-�$, <�`-�%, `�
` C#�`C�%a�`�$*!-�&,�%+�%*-�',  G  �Ec�Eb`#a8# �UX G  �Ec�Eb`#a8!Y-�(,�ETX��'*�0"Y-�),�+�ETX��'*�0"Y-�*, 5�`-�+,�Ec�Eb�+�Ec�Eb�+��D>#8�**-�,, < G �Ec�Eb`�Ca8-�-,.<-�., < G �Ec�Eb`�Ca�Cc8-�/,�% . G�#B�%I��G#G#a Xb!Y�#B�.*-�0,��%�%G#G#a�E+e�.#  <�8-�1,��%�% .G#G#a �#B�E+ �`PX �@QX�  �&YBB# �C �#G#G#a#F`�C��b` �+ ��a �C`d#�CadPX�Ca�C`Y�%��ba#  �&#Fa8#�CF�%�CG#G#a` �C��b`# �+#�C`�+�%a�%��b�&a �%`d#�%`dPX!#!Y#  �&#Fa8Y-�2,�   �& .G#G#a#<8-�3,� �#B   F#G�+#a8-�4,��%�%G#G#a�TX. <#!�%�%G#G#a �%�%G#G#a�%�%I�%a�Ec# Xb!Yc�Eb`#.#  <�8#!Y-�5,� �C .G#G#a `� `f��b#  <�8-�6,# .F�%FRX <Y.�&+-�7,# .F�%FPX <Y.�&+-�8,# .F�%FRX <Y# .F�%FPX <Y.�&+-�9,�0+# .F�%FRX <Y.�&+-�:,�1+�  <�#B�8# .F�%FRX <Y.�&+�C.�&+-�;,��%�& .G#G#a�E+# < .#8�&+-�<,�%B��%�% .G#G#a �#B�E+ �`PX �@QX�  �&YBB# G�C��b` �+ ��a �C`d#�CadPX�Ca�C`Y�%��ba�%Fa8# <#8!  F#G�+#a8!Y�&+-�=,�0+.�&+-�>,�1+!#  <�#B#8�&+�C.�&+-�?,� G�#B�.�,*-�@,� G�#B�.�,*-�A,��-*-�B,�/*-�C,�E# . F�#a8�&+-�D,�#B�C+-�E,�<+-�F,�<+-�G,�<+-�H,�<+-�I,�=+-�J,�=+-�K,�=+-�L,�=+-�M,�9+-�N,�9+-�O,�9+-�P,�9+-�Q,�;+-�R,�;+-�S,�;+-�T,�;+-�U,�>+-�V,�>+-�W,�>+-�X,�>+-�Y,�:+-�Z,�:+-�[,�:+-�\,�:+-�],�2+.�&+-�^,�2+�6+-�_,�2+�7+-�`,��2+�8+-�a,�3+.�&+-�b,�3+�6+-�c,�3+�7+-�d,�3+�8+-�e,�4+.�&+-�f,�4+�6+-�g,�4+�7+-�h,�4+�8+-�i,�5+.�&+-�j,�5+�6+-�k,�5+�7+-�l,�5+�8+-�m,+�e�$Px�0-K�KRX��Y�c �#D�#p�E  �(`f �UX�%a�Ec#b�#D�*�*�*Y�(	ERD�*�D�$�QX�@�X�D�&�QX��X�DYYYY������Dlib64/ruby/2.2.0/rdoc/generator/template/darkfish/fonts/Lato-RegularItalic.ttf000064400000272124150402106120022722 0ustar00 DSIGtLGPOS�,HPGSUBV.TI|OS/2ٮ��J�`cmapRԟ�J��cvt '�i�8fpgm�zAj4	�gaspi�glyfmr��O��>head��d��6hhea�`�L$hmtx4W��pTkern@�B���g�loca�E�/R�,maxpC
�T� name��UTpost:�]fX�prep�x9�s��
0JDFLTlatn����kernkernGr�����T��v		�

����
V
��8�,^$^�0��
D��J��J���J�L F �!z"##P#�$4$~%x&&�'�(�)�*�+�+�,J,�-n..�/$/V/�/�/�1�242n2�2�33V3�3�44J4�4�4�5�5�6�7�7�7�8~8�8�:�;";�;�<�=2>,?&?�@�A�B�C8C�D�E.F(>	�U�������U$�U96:0<-?6D��F��G��H��R��T��m��o��y��}����U��U��U��U��U��U��U�-����������������������������������������������������������U���������-����������U>	�U�������U$�U96:0<-?6D��F��G��H��R��T��m��o��y��}����U��U��U��U��U��U��U�-����������������������������������������������������������U���������-����������U-#��&��*��2��4��D��F��G��H��R��T��k��p��������������������������������������������������������������������������������������������>	�U�������U$�U96:0<-?6D��F��G��H��R��T��m��o��y��}����U��U��U��U��U��U��U�-����������������������������������������������������������U���������-����������U0��
��
���;#��&��*��2��4��7�59�,:�|<�;?�,Y�rZ��\�|k��l��m�;o�;p��r��y�;|��}�;�����������������������;��r��r�����;�;�;�����;�;�;&��	��
��
���^�^��$��7�A9��;��<�@=��?��l��r��|�������������������������@���@���������^���^�^���0��
��
���;#��&��*��2��4��7�59�,:�|<�;?�,Y�rZ��\�|k��l��m�;o�;p��r��y�;|��}�;�����������������������;��r��r�����;�;�;�����;�;�;q6	��
6
6�A���A������":#��$��&��*��-�i2��4��D��F��G��H��P��Q��R��S��T��U��V��X��Y��Z��\��]��k��l6m��o��p��r6tPuPw��y��{P|6}�������������������������������������������������������������������������������������������������������������������������������������������������������6�6�A�6�6�A��A�����$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������:�J
�J
�J��#��&��*��->2��4��7�|8��9��:��<�h?��W��Y��Z��\��k��l�Jm��o��p��r�Jt�Iu�Iy��{�I|�J}�������������������������������������h�����������h�����J�J�J�J������
��m��o��y��}�������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������>	�|�L�L�|����"$�|-�:D��F��G��H��P��Q��R��S��T��U��X��w����|��|��|��|��|��|��|�������������������������������������������������������������������������|�����������L�L�L��|	����$����������������������������+

��#��&��*��2��4��I��W��Y��Z��\��k��lm��o��p��ry��|}������������������������������������������3��
��
���;#��&��*��2��4��7�89�J:�h<�,?�JY�|Z��\�|k��l��m�;o�;p��r��t�,u�,y�;{�,|��}�;�����������������������,��|��|�����,�;�;�����;�;�;$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������/	�v�C�C�v$�v-�JD��F��G��H��R��T����v��v��v��v��v��v��v����������������������������������������������������������v���������C�C�C��v$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������#��&��*��2��4��7��8��k��p���������������������������������������f	�|�L�L�L�|�f�f"'#��$�|&��*��-�82��4��D�/F�/G�/H�/J�EP�fQ�fR�/S�fT�/U�fV�JX�fY�WZ�[�Z\�L]�_k��m�Lo�Lp��w�fy�L}�L��|��|��|��|��|��|��|�����������������������/��/��/��/��/��/��/��/��/��/��/��/��/��f��/��/��/��/��/��/��f��f��f��f��W��W�|�/���/�/�f���/�J�J�_�_�_�L�L�L�L�L�L�L�L��|	����$����������������������������q6	��
6
6�A���A������":#��$��&��*��-�i2��4��D��F��G��H��P��Q��R��S��T��U��V��X��Y��Z��\��]��k��l6m��o��p��r6tPuPw��y��{P|6}�������������������������������������������������������������������������������������������������������������������������������������������������������6�6�A�6�6�A��A�����N:	��
:
:����������$��-��D��F��G��H��J��P��Q��R��S��T��U��V��X��l:r:t<u<w��{<|:��������������������������������������������������������������������������������������������������������������:�:��:�:�����+

��#��&��*��2��4��I��W��Y��Z��\��k��lm��o��p��ry��|}������������������������������������������m7	�r
7
7�'�J�'�r����"2#��$�r&��*��-�82��4��D�AF�AG�AH�AJ�WP��Q��R�AS��T�AU��V�AX��]��k��l7m�Jo�Jp��r7t>u>w��y�J{>|7}�J��r��r��r��r��r��r��r�����������������������A��A��A��A��A��A��A��A��A��A��A��A��A�����A��A��A��A��A��A�������������r�A���A�A�����A�A�A�������J�J�7�7�'�7�7�'�J�'�J�J��r��"##��&��*��2��4��k��m��o��p��y��}��������������������������������-#��&��*��2��4��D��F��G��H��R��T��k��p��������������������������������������������������������������������������������������������:�J
�J
�J��#��&��*��->2��4��7�|8��9��:��<�h?��W��Y��Z��\��k��l�Jm��o��p��r�Jt�Iu�Iy��{�I|�J}�������������������������������������h�����������h�����J�J�J�J��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|������E
E
E��lErEtdud{d|E�E�E��E�E����
��
��Y��\��l��r��t��u��{��|����������������D��F��G��H��R��T���������������������������������������������������������������������
��
��Y��\��l��r��t��u��{��|������������������
��
��Y��\��l��r��t��u��{��|������������������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|������"�h�hD��F��G��H��R��T��������������������������������������������������������������������h�h�h.	���r�r��$��D��F��G��H��R��T�������������������������������������������������������������������������������������������r�r�r���	��������$�������������������������������D��F��G��H��R��T�������������������������������������������������������������������.	���h�h��$��D��F��G��H��R��T�������������������������������������������������������������������������������������������h�h�h���-#��&��*��2��4��D��F��G��H��R��T��k��p��������������������������������������������������������������������������������������������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������>	�U�������U$�U96:0<-?6D��F��G��H��R��T��m��o��y��}����U��U��U��U��U��U��U�-����������������������������������������������������������U���������-����������U&��	��
��
���^�^��$��7�A9��;��<�@=��?��l��r��|�������������������������@���@���������^���^�^���&��	��
��
���^�^��$��7�A9��;��<�@=��?��l��r��|�������������������������@���@���������^���^�^���$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������>	�U�������U$�U96:0<-?6D��F��G��H��R��T��m��o��y��}����U��U��U��U��U��U��U�-����������������������������������������������������������U���������-����������U	�T�T$�T9:::<(?:��T��T��T��T��T��T��T�(�T�(��T	�T�T$�T9:::<(?:��T��T��T��T��T��T��T�(�T�(��T&��	��
��
���^�^��$��7�A9��;��<�@=��?��l��r��|�������������������������@���@���������^���^�^���	�T�T$�T9:::<(?:��T��T��T��T��T��T��T�(�T�(��T>	�U�������U$�U96:0<-?6D��F��G��H��R��T��m��o��y��}����U��U��U��U��U��U��U�-����������������������������������������������������������U���������-����������U&��	��
��
���^�^��$��7�A9��;��<�@=��?��l��r��|�������������������������@���@���������^���^�^���:�J
�J
�J��#��&��*��->2��4��7�|8��9��:��<�h?��W��Y��Z��\��k��l�Jm��o��p��r�Jt�Iu�Iy��{�I|�J}�������������������������������������h�����������h�����J�J�J�J������:�J
�J
�J��#��&��*��->2��4��7�|8��9��:��<�h?��W��Y��Z��\��k��l�Jm��o��p��r�Jt�Iu�Iy��{�I|�J}�������������������������������������h�����������h�����J�J�J�J������:�J
�J
�J��#��&��*��->2��4��7�|8��9��:��<�h?��W��Y��Z��\��k��l�Jm��o��p��r�Jt�Iu�Iy��{�I|�J}�������������������������������������h�����������h�����J�J�J�J������:�J
�J
�J��#��&��*��->2��4��7�|8��9��:��<�h?��W��Y��Z��\��k��l�Jm��o��p��r�Jt�Iu�Iy��{�I|�J}�������������������������������������h�����������h�����J�J�J�J������:�J
�J
�J��#��&��*��->2��4��7�|8��9��:��<�h?��W��Y��Z��\��k��l�Jm��o��p��r�Jt�Iu�Iy��{�I|�J}�������������������������������������h�����������h�����J�J�J�J������:�J
�J
�J��#��&��*��->2��4��7�|8��9��:��<�h?��W��Y��Z��\��k��l�Jm��o��p��r�Jt�Iu�Iy��{�I|�J}�������������������������������������h�����������h�����J�J�J�J������
��m��o��y��}�������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������	����$����������������������������	����$����������������������������	����$����������������������������	����$����������������������������m7	�r
7
7�'�J�'�r����"2#��$�r&��*��-�82��4��D�AF�AG�AH�AJ�WP��Q��R�AS��T�AU��V�AX��]��k��l7m�Jo�Jp��r7t>u>w��y�J{>|7}�J��r��r��r��r��r��r��r�����������������������A��A��A��A��A��A��A��A��A��A��A��A��A�����A��A��A��A��A��A�������������r�A���A�A�����A�A�A�������J�J�7�7�'�7�7�'�J�'�J�J��r$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�������������������������������������������������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
��
��Y��\��l��r��t��u��{��|������������������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|������.	���r�r��$��D��F��G��H��R��T�������������������������������������������������������������������������������������������r�r�r�����
����
��@��[��`��l��r��|������.	���r�r��$��D��F��G��H��R��T�������������������������������������������������������������������������������������������r�r�r���:�J
�J
�J��#��&��*��->2��4��7�|8��9��:��<�h?��W��Y��Z��\��k��l�Jm��o��p��r�Jt�Iu�Iy��{�I|�J}�������������������������������������h�����������h�����J�J�J�J������
��m��o��y��}���������
����
��@��[��`��l��r��|������"�i
�i
�i��9�^:��<�h?�^Y��Z��\��l�im��o��r�it�}u�}y��{�}|�i}����h�������h���i�i�i�i�����
��
��Y��\��l��r��t��u��{��|������������������
����
��@��[��`��l��r��|������m7	�r
7
7�'�J�'�r����"2#��$�r&��*��-�82��4��D�AF�AG�AH�AJ�WP��Q��R�AS��T�AU��V�AX��]��k��l7m�Jo�Jp��r7t>u>w��y�J{>|7}�J��r��r��r��r��r��r��r�����������������������A��A��A��A��A��A��A��A��A��A��A��A��A�����A��A��A��A��A��A�������������r�A���A�A�����A�A�A�������J�J�7�7�'�7�7�'�J�'�J�J��r��"##��&��*��2��4��k��m��o��p��y��}����������������������������������"##��&��*��2��4��k��m��o��p��y��}����������������������������������"##��&��*��2��4��k��m��o��p��y��}��������������������������������&��	��
��
���^�^��$��7�A9��;��<�@=��?��l��r��|�������������������������@���@���������^���^�^���&��	��
��
���^�^��$��7�A9��;��<�@=��?��l��r��|�������������������������@���@���������^���^�^���>	�U�������U$�U96:0<-?6D��F��G��H��R��T��m��o��y��}����U��U��U��U��U��U��U�-����������������������������������������������������������U���������-����������U>	�U�������U$�U96:0<-?6D��F��G��H��R��T��m��o��y��}����U��U��U��U��U��U��U�-����������������������������������������������������������U���������-����������U0��
��
���;#��&��*��2��4��7�59�,:�|<�;?�,Y�rZ��\�|k��l��m�;o�;p��r��y�;|��}�;�����������������������;��r��r�����;�;�;�����;�;�;>	�U�������U$�U96:0<-?6D��F��G��H��R��T��m��o��y��}����U��U��U��U��U��U��U�-����������������������������������������������������������U���������-����������U>	�U�������U$�U96:0<-?6D��F��G��H��R��T��m��o��y��}����U��U��U��U��U��U��U�-����������������������������������������������������������U���������-����������U0��
��
���;#��&��*��2��4��7�59�,:�|<�;?�,Y�rZ��\�|k��l��m�;o�;p��r��y�;|��}�;�����������������������;��r��r�����;�;�;�����;�;�;&��	��
��
���^�^��$��7�A9��;��<�@=��?��l��r��|�������������������������@���@���������^���^�^���0��
��
���;#��&��*��2��4��7�59�,:�|<�;?�,Y�rZ��\�|k��l��m�;o�;p��r��y�;|��}�;�����������������������;��r��r�����;�;�;�����;�;�;&��	��
��
���^�^��$��7�A9��;��<�@=��?��l��r��|�������������������������@���@���������^���^�^���&��	��
��
���^�^��$��7�A9��;��<�@=��?��l��r��|�������������������������@���@���������^���^�^���>	�U�������U$�U96:0<-?6D��F��G��H��R��T��m��o��y��}����U��U��U��U��U��U��U�-����������������������������������������������������������U���������-����������U:�J
�J
�J��#��&��*��->2��4��7�|8��9��:��<�h?��W��Y��Z��\��k��l�Jm��o��p��r�Jt�Iu�Iy��{�I|�J}�������������������������������������h�����������h�����J�J�J�J������r

#$&')-./2345789:;<=>?EHIKNPQRSUYZ[\^klmoprtuy{|}����������������������������������������������������������
8�DFLTlatn����case&case,liga2liga8sups>supsD,>B	

@LO,{tuCjqv�������I��xx�t���P`KtyPL�J�z��� ��� �&
	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a���������������������������������rdei�x�pk�vj���sgw�����l|����cn���m}�b�������������������y���������������������q���z���`T@
~�1DS[a~�����    " & 0 : D �!"!&"""""""+"H"`"e%�&i���
 �1ARZ`x�����      & 0 9 D �!"!&"""""""+"H"`"d%�&i����������������{�u�q�[�H����$��������������I�����������������޸ޡޞ�:ڜ`T@
~�1DS[a~�����    " & 0 : D �!"!&"""""""+"H"`"e%�&i���
 �1ARZ`x�����      & 0 9 D �!"!&"""""""+"H"`"d%�&i����������������{�u�q�[�H����$��������������I�����������������޸ޡޞ�:ڜ-��(8<@J@GBhf[[		QCQ
D@?($#-$
+>32#'.54>54&#"#"'4632#"&!!7!!�9DO.?gI)-60#z
-5-I9)8(c>0((0>���22c��u&#@[87P;+&%ia/(&.8'3<��/@)(?��g6,����
!&@#QCSD

+#>74>32#".FuF�!-."".-!���-UV\44\VU->��."".-""-����
*@'	BQD

$+#"&=!#"&=�$"%�$"%��ߛ""�!�ߛ""�!6��<@H@E
Y	CQ
C
D@?>=<<6431.-(&##!#!+#"&547#+#"546?3#7>;>;3323+32%3#�Nq�t0M��+�j�'&�v
-N���Mv�&%�j����j���X]��#�(
7KGk �X�	��G��
7KG�bf8CN�@J)?BAK�	PX@$jhfkCDK�
PX@$jhfkCD@$jhfkCDYY�#'#%+.'7632.54>?>;#".'+4.'>�w�?=+A\Dg>w]9B|�o@&g�30%6I2]@~c>F��u"@�":N,`JsP)�5H)WHkG"aKN&1/1KoRS�xL��Q;@"!�2IlO_��S��,A0#�2Oh�*?1%�-DUZ����'1EY�K�PX@'[	[SC		S
DK� PX@+[	[SC
C		SD@/[	[CSC
C		SDYY@
VT((%#&((($
+#".54>324.#"32>>;+#".54>324.#"32>�;`{A8^C%6]}F8^C&�$1(G4$1'G5w|��
~:`|A8]C%6]}F8]D%�$1(G5$1'G6xc�j7)MoFc�k8)NpH2H."JsQ1E-!GqU��
�c�i7)MnFc�l8)NpH2G."JrQ1F-!Hr9����BN�@;LK.&BK�PX@*hSCS
CS
D@(hSCS
CSDY@IG20)'#!
BB+2#"'.#">7>;#"./#".54>7.54>3267�FrR-e)<)3R; /2B)6w[G�`^�R�b65]}H'%9i��q#=T1_�F��sr�,Nj>!8-&C[49x?�gB�Gs�`��zWf1[�QO�u\ B�?R�j>��8W<VF�>�����
@	BQD

$+#"&=�$"%��ߛ""�!z��S
�(+.547*Q*;& U�uGJrN)�J���C.V���S�	�/r�������
�(+4.'&546?
'.547>9)R);& T�uFIsN)1I���C/W���T������.r��a��6C@0,+'$#	BK�PX@kD@
jaY@
66+7>7'767&/7&546?3>?'.'i�!�$$$�3�T
	� �# �2�a�!

dIefIe��!
dIefHd
�s�A�.@+jkMRF+!!#!7!�5��f5�5�i�6��S��Q���2��$�@
?S
D"+74632'&54>7#"&2A6.1F-
 *'4A{/B'3-a_Z&&5E*Ea<�@MQE+!!s��8��-��'�@SD($+74>32#".-"--""--"n."".-""-����.�	@kD#"++>;]:I�4 I "�!O��j�',@)SCSD''	+2#".54>2>54.#"�_�sAb��~`�sAb�� T�qB-Le8T�qB-Le�I�ے���kI�ۓ�J�k��Y��x�j0Y���x�i0���*@'
BhCR
D$+7!7#"&/3!!�6{��,֌����M�
Kq��/J�4;@80BhSCQ
D-+'%
44+2>3!2!7>7>54.#"#"&/>�S�f99b�J�Q)R&��HIrO)#>U2p�%#Wc���/Z�R[��~C�x
"5;)�AusxE6R6ufb�f4]��X�CU@R?
Bhh[SCSD<:64.-,+#!CC	+2#".'763232>54.#7>54.#"#"&/>�T�b6*MmCz{V��jd�jBP,B\AR�W.N�f��">T2r�&#Xc���.UxIOyZ;#�pl�{B.\�_:W:8Zr;0Q;"{��5P5veb�f4-f�'@$
B\C
D!#+3+#!"&/3>7!���.�/��"+����b��{W���7�9D��F�.@@=,+Bh[QCSD(#&(""+#!632#".'763232>54.#"'!<37�9so\i�i4]��u?p_N=/C_CS�d7$HnK2sDg��M$/�9d�Q~͐O)6J%8e�V9]C$�h��0�22@/B[CSD/-%#	+2#".54>7>;>32>54.#"�O�e:T��vb�l99W<�3��.%7���$Dd@O�a6'Ge>O�^5l2`�Wo��P<n�_>wy}E���3,$)�!;cH(5^�L=cE%8_~���$@!BQC
D$'++>7!"&=7�
	�'����D-�+�)uR��>�3GD@AB[SCSD54! ?=4G5G+) 3!3	+".5467.54>32'2>54.#"2>54.#"c�r>��aaH�iZ�e6��t|Q��cN~Z0-Lc5Bz_9$Fd�QqG :X;HoL'9Y3^�Q��)&�bX�q@4[{F��-#�ui�w?�.RtF@Z9$LwS5W?#�4Sf3-N;"-Lh:+P=%�w�12@/B[SC
D.,&$	+".54>32+>74.#"32>5K�`7R��p^�h8;T6�c0��.=�P%D_:I{Z3�xO~Y0M0\�Ti��N;j�XH}vvB�<6-/�:_D%2Y{Ju�5Zv-����';K�$PX@SCSD@[SDY�((($+74>32#".4>32#".-"--""--"d"--""--"n."".-""-	."".-""-.����,D�
?K�$PX@SCS
D@[S
DY@	)'"+74632'&54>7#"&4>32#"..A6.1F-
 *'4Ai"--""--"{/B'3-a_Z&&5E*E."".-""-���W�(+�6�#/+��-��
�
�'0����!@YMQE+!!!!�Z��:X��=�Ѓ}��X�(+	7>7%>7.'%.54>7����/+�Z�|�o
�
�'0�n����%95@2BhfSCSD(&#*$+>32#7>54&#"#"'4>32#".�!KWc8FqP*/HWO=
%w5LWI1_Q8R;'

!-."".-!4(*Je;TvW?;@+��0JA>H[=NZ$��."".-""-M��MTdf@c
[
<Bh[

[	[OSGVU^\UdVdLJ@>9731)'TT
+%"&'#".54>3232>54.#"3267>32#".54>32%2>7&#"FR?�H0G. ?[w�T?[)�!3aK.Dz�e��lP��v��Lk�����_<k���muϛZEv��1<:8k#)I�a92�JMPE#<R0<~uhN-��4L#F�it�v<u�્ړL>03HR_����ɥu@O�؊םYu3WC(	Gr�I9H����
$@!BZC
D# +!#"&'!+3!.'��N���	%����>�
^����zQB&&Cae�*=@:B[SCS
D*(" !+3!2#!2>54&#%32>54&+a��p�h2%JoJ��G��y�?OxP(�����QyQ(|���-SwI@tbL�pc�xB��*NnE_q�+MlAggd����/D@ABhfSCSD'%" 
//+%2>32#".546$32#".#"�BfN7)	A^���̍Kt��L|fS$@(EmWtʔU:g�� ' Qfq\�䉻6�{2F+N

(/(]���o�{Ba=�@SCS
D!(!$+#!!24.#!!2>=q����ՔP�7g�]�Ό2xƎO1����v�Z��l�yA��[��aA�(@%YQCQ
D+!!!!!!.��<��=u�ϱ/�����aA�	"@YQC
D+!!!#!.��?��L��/�����d��%�:G@D&
Bh[SCSD20+)" ::+%2>7#"&50>17!#".546$32#"'.#"�4ZOI$'�	�C6s��R�ӖQs��S�nY%<
5KjK{͓R;l��D

O��':']�芹3�z2D(N


)%^���q�~CaE� @ZC
D+!#!#3!3��Q�EP���O�O���r��}����@C
D+!#3=���������QK�PX�B�BYK�PX@CSD@hCSDY�#%"+#"&'7>3232>73���6^0
!+4\J3u���m"N~\�r%� &@#
B\C
D'(% +3267>;#".'.+#3�B#-�,���%#����'+QQ���" ��	
#�Y
	<�n�af�@CR
D+%!!3/7������av�"&@#BhC
D!6(+67>;#>7+"'#3243����	��/.������[�'*'�	�g#.�~++�.���	�{aE�@BC
D!+2>73#"&'#3rj���^�����`���)�gH���d����)@SCSD(((&+#".546$324.#"32>�4_���k�ӕOr���ӕO�8g�]vƎP8g�]xƎO2zڹ�h8^�扷3�|_��m�|D_���m�|C^��ri�/@,[SC
D
!+#!2#32>54.#nB���r�m6J�υtJ�U�X."DhE���6d�Vq��M�4]�L:\A#d����0P�BK�PX@SCSCD@kSCSDY�(((%&+#"&'#".546$324.#"32>�3^�R!�"5�6q<�ӕOr���ӕO�8g�]vƎP8g�]xƎO2yظ�4�w^�扷3�|_��m�|D_���m�|C^��rU�#7@4B[SC
D#",!+#!2#"'.#32>54&#vJ��yr�m54b�W 5�1��
"%/D�U�Y-��Y���0YNW�wS&��(���0WwGms����==@:=BhfSCSD;9(&#!#"+#".#"#"&'7>3232>54.54>32�&;T?@dE$0NeheN0F��t��AB,DdKEoM*0NcicN0@x�ln�9�#)#(E\54G3')2JhJf��PeVY-7-,NmB7I2%&0JlOX�|JTI{�� @QC
D+!#!7��Y����W��������$�#@ CSD+%2>73#".5473vP�eAk�jc��{o�w>j�k'Ko�>m�Zi��{ӛXH��j-/i��&K|Z1|W�@BC
D, +32>7>;#|���%��7��� M**L!�g���,!@'
BC
D,> +32>7>;2>7>;#.'#���
�$+�

�'�����
�/���
( <��
:  :��gO&&������@BC
D'"(!+	3267>;	#"&'+�	
l��z���
�Q$�������l��
q
��$y��@BC
D,"+#32>7>;�G�G����
}!�=��;^��44>��$@!QCQ
D+!!7>7!7�	����"	l�7�<�l�;��!��W�'@$[OQE!#+!+32!�W�ř��C��	l��q�	@kD# +32#"&'lI +iH2�"�9" ���)�'@$
B[OQE!#+!!7>;#"&57�X�	����C80��@
BkD+!+3#"&'.'+>rg��
����z`+,+��������X@MQE+!7��+�ttM���	@kD		+2#"&'�
kc���0���+^@ BK�"PX@SCS
D@SC
CSDY@
$!++*' +!#"&57#".54>322>7.#"0\#$S]f7<bE&-St��ZA{<��1^TI++<pbP9 $�@hI(/[�VZ��]3��=l�Y\'Fat�E�O����,�K�"PX@ B@ BYK�	PX@CSCTDK�"PX@CSCTD@!CSC
CTDYY@$",,(%+33>32#"&'#"32>54&O��X&X`h6��"?Ym�FQ�*
�0b[P &j74\L<)V��4=eF'��R���_6D?Au<j�W��6-,Kes{<w|<��b/d�BK�	PX@$hfSCSD@$hfSCSDY�%(#%($+%#".54>32#".#"32>3234]^e:X�[/M��rd�38+A3E{\58Q6-F6)!,�9L-<m�\{�hGDC
K��f>eG'!65���*s@ BK�"PX@CSCS
D@!CSC
CSDY@$"**
+!"&57#"&54>323%2>7.#"�#&Zck7��"?Ym�FJ{+E���90a[O!&j6OY0V$�AjK)��R���^6:6-�?�;i�V5,^��Yw};��q*9b@
0BK�	PX@hSCSD@hSCSDY@,++9,9*&%*+32>32#".54>32%">54.q6���uv0K;-& ,3afo@W�`4!?[u�QMpH#��?jR:��d #8BoYB��#75K2:k�^N��xW2,DRB4[{G19B$' ?���#g@
BK�2PX@"SCQCQD@MWSDY@
##T%#++'.5737>32#"&#"3ve.KF�d�AcI>3	+I8&�a���KW
NbW�]0\8ZA]������;K^�@9$BK�PX@+	[[CSCSD@.h	[[SCSDY@=<[YSQEC<K=K4320(&
+#".54>32.5467#".54>32!2>54&#"4&'.#"32>0"(")1)Bz�mW�e7R��Y$G#	&^<:eL,5f�bnQ~	
�~6R9YN6R8W
6_*RxN&yoBmM+�2PD<<?%*DHU:Gb9$B]8OrJ")B)&JoJH�mB4;9��/M`1XZ,J^3Z^�-	0?"HL#:NO��,@)BCSC
D&#+33>32#>54&#"O��SO�es|L�L=B-_ZNA��Tvy��+�{�%RP1ZN��_��GK�	PX@SCC
D@SCC
DY@

+##".54>32�z�z�#,,!",,#���>-##-.##/�g����(Y�	BK�	PX@SCCSD@SCCSDY@%#U%+#"&'7>323267#".54>32��-LiC#2GE
��#-+!"+,#���=iN-

`
IQ@>-##-.##/N��0@-B\CC
D%(%!+3267>;#"&'.+#�jO��y0���
";�����W�s
 ����X��@C
D+33X�����?G�0Z@BK�"PX@SC
D@CSC
DY@00&%$$!	+332>32>32#654&#"#>54&#"GzY<K�cgbL�hpoL�L2;+VPEA�M/;0YOD?�<�~�������2�{�1(KG+S{P���0GD0[�R��G�P@
BK�"PX@SC
D@CSC
DY@&$!+332>32#>54&#"GyY<Q�mq}L�L=A0c\O:�<���*�{�%RO4_�S��7���#NK�	PX@SCSD@SCSDY@##	+%2>54&#"".54>32�IxT.nhJwT.mYS�d8P��nS�d8P��}P��_��O��_���9l�d��b9l�c�c���+�@BK�	PX@SCSCDK�"PX@SCSCD@!CSCSCDYY@#!++(&!+32>32#"&'"32>54&�Y<&Zcl8��"?Ym�FK|*6�0c\O &k74\L<)V��M<�BkL)��R���_6;7�E�<l�W��7-,Kes{<w|0���0b@%
	BK�	PX@SCSCD@SCSCDY@
 )&0 0*, +#"&54>5#".54>322>7.#"p ;#PZb4<bE&-St��ZA{<��0]TH-+<pbP9 ��%�;^C$/[�VZ��]3��<j�Wc'Fat�E�G��,@)
BSC
D#*!+332>32&#"GzY A�Y** /,a�38��������*
��99@69BhfSCSD/#%/#"+#".#"#"&'7>3232>54.54>32�!/D0-J6>^m^>7g�Za�/, 0I81O7>^l^>3`�V[�2S,;!/8)&:ZHF�a:E6D
#2C&3<(#7XI@w\7=4_���>0b�+BK�2PX@#jhQCSD@!jh\SDY@	%#(+&+74>7#"&54>?>;!!32>32#"&�?q
�K^,
��=/)(	%0}?ap�$:/�9����)231	U+1j`����#L�BK�"PX@CT
D@C
CTDY@##*!&+32>73#"&54>57#"&5467bL=B.a[N?�zX"Q�jq}L��|$RP2\�P�"("Q����*�K��@BC
D, +32>7>;#K��:�����t%J$$I&��Q��. @'BC
D*!,< +32>7>;2>7>;#"'.'+Q�]Jq
��W�{
�����t#A  A#��p#B! C#��"�! �R"����@BC
D(")!+32>7>;	#"&'+h���
�����
��
�!���/�+�����Q����@
BCD,"!++32>7>;<)�����	@���)����*+Y�@QCQ
D+!!7>7!7!P����6	K���#�&�J
#ߌ1��Y�E7@4&:B[[OSG=;303++4&#72654.54>;+";2#".54>�85
JI-Y�V1	
'B/"3;5@#C=
2EfC" & �4Bhw|575a�i7MEoQ;?<MgA![?<rsu?FU%(Gb:Bxsq���5�@QD+3#����������G7@4<(B[[OSG?=525++3"+7>;2>5<&454>7.54>54&+"&54>5732�85
JI-Y�V1	

'B/"3;5@#C=
2EfC" & 4Bhw|575a�i7M

	EoQ<?;LhA![?<rsu?FU%(Gb:Bxsq9��9@6jkO[SG
+2673#".#"#4>32�AI�%Ef@4f_V$AI�%EeA4f_VeUFCpP, '!TGCpP-!'!����
!&@#SCQD

+>734>32#".�C

hB."--""--"��-UW\45\VU-���."".-""-��&�/8�@%BK�	PX@.jhfkSCSD@.jhfkSCSDY@
##'#+.54>?>;#".'>32+�R�`4M�ф"@-R}04+=*�@[?*	'!S`i6!@�tj�Z�]0
	Dq�`~מ\��?1<	��"<#6&����Dv���>?@<+Bh[SCS
D&&%#%&"	+#!>3!#!7>7#7>;>32#"&'.#"!z�Y	60<�	
�;#9+$�q!P��mT{X9K#2H4AkQ3 ���Kj*I
p
/C..F	^�zF&B[5,

0$+OpE��F��+`#7?@<!B
@ ?WSD42*((+467'7>327'#"&''7.732>54.#"!�[�,h:9f+�Y�"!�[�,h99e,�Z�!�#>Q//S=$$=S//Q>#�9e,�Z�"!�[�,g:9f+�\�!!�[�,g:.Q=$$=Q./R>##>R~��"8@5
B
Z	YC
D"! ,!+!32>7>;!!!!#!7!7!�6�ʐ�
	_"��6��
V��'�'��
V
��p'��!:; =��cic��Aci���5�@YQD+3#3#����������;���FVA@>FTL;!BhfWSDDB+)&$#!+#".#"#"&'7>3232>54.5467.54>32>54.'R!/B0/K6DfvfDY_%-6f�^a�00	!0I:2O7)BUYUB)ag%.3a�W[�/��:Zn3:26Ug1E9�.>".A88JdH[�)!U9J�`7D6B
"3E))<0(*0?R8Y�'"X>AvZ5>6��/B82V51D70#P^���'@SD((($+#".54>32#".54>32? )(() g))))((**((**]���+Ga�@
BK�	PX@5h
f[[		SCSD@5h
f[[		SCSDY@\ZPNB@42(&+++2#".54>32#".#"32>%4>32#".732>54.#";		<9�tb�s?Dz�bm�9.2M:GpP**Kg>?V9!�.4`���ee���_44_���ed���`4e,Qs��XX��sR-c��X��sQ,�@BIDz�de�yCC8A-TxKMyR+�e���`44`���ed���`44`���eY��tS--St��Y��e.Sv���?��-9L@I!Bh[	WSD/.32.9/9%#
--
+"&/#"&54>?6454&#"#"&/>32'26?.04AR%V�j(0"0$6xD,D//�.G$
B\9*H	1 ED(K;&&.6
(2.4G(��P&#m*"����%�%(+77�4�

o ;]4�

o ;���
��
 ����
��
 �>�=K�	PX@_MQE@kMQEY�+!#!�[4�$�9�^ a<�@MQE+!!s��8��^���3IV��>BK�	PX@/h		[
[SCSD@/h		[
[SCSDY@44VTLJ4I4H)!*,,&+4>32#".732>54.#"#!2#"'.#'32>54.+^4`���ee���`44`���ee���`4e,Rr��XX��sR-c�焄�b� ��kj
�!�	Ps8M/+F4��e���`44`���ed���`44`���eY��tS--St��Y��ee���|}z^�
��.
r(:&%8$p��A@MQE+!!~��Aq�'�'@WSD((($+4>32#".732>54.#"�3XvDEwX22XwEDvX3}6I**I66I**I6hCvW22WvCBuW33WuA*I66I**J77J3PK�<@9jhZMQE
	+!!#!7!!!�/��e-�-�j�/����D������r�{�$����d-9@6+	Bh[SD(&#!
--+26;2!7>?>54&#"#"&/>�`m0?"�2*��
�6(6**A!C�ddS,HA<�*�89:-0+2ji�|�d:S@P6Bhh[[SD31.,('&%::	+2#".'763232>54&#7>54&#"#"&/>�.K5�980Nd48Q7"	:
+!"5%FV[S5,2=@5HWd->$�-E7<]?!1G/!%011Y=>,-.+4P4���	@kD	#++7>3��f�"��������%2@/BCT
CD%%'%!&+32673#"&=#"&'#"&5<7\SVQF�=]�|gF�PA^#U %��Y
RYJB�
lHC/+$H �� k�7��*@'hiSD+##!#".54>3�ܵ���붝j]�i9H��q���7�7]2Z~MZ�tC����@OSG($+4>32#".�)67((76)Q8((86))6��w
�K�PX@B@BYK�	PX@^TDK�PX@jTD@jjTDYY@
+232654&'73#"&'76E(+GB:k JC!;Q0&B�	(#	�R?.$9'5��z^N�
BK�2PX@jjQD@jjMRFY�$+37#"&/733!�6
y �hNy�u��,\		6���]�<��!)@&WSD!!	+2#".54>2654&#"�:]A"0UxH;^A#0Wy
ZYA?2E+@�%Ea<R�]2%Eb<Q�]2���uKU&C^8KTw���%�%(+'&54767&'&54?'&54767&'&54?���5
�
	p!;���5
�
	p!;�{

 �|�{

 �k�+1V@S%/
Bhh
Z\	C
D10+*)('&$##!#
+3+#7!"&/3+>;37#"&/733!>73�n
Uj���w��/F�1!G�u�6
y �hNy�u����I��>�] [���,\		6���]�,���\�	7Hb@_B;5Bhh
Z[	CT
D
HGFEDC?=9820,*
77#"
+%+>;26;2!7>?>54&#"#"&/>%37#"&/733!�/F�1!G�`m3C$�2*��
�6(6*/=	
+����6
y �hNy�u5 [�IdS-LC>!�8*�89:-04)
ji<�,\		6���]�z�TZ~@{P
"/
	X
B

h	
	
h

h	[

[\

SC
DZYMKGEA@?>8631+)TT##!#+3+#7!"&/3+>;%2#".'763232>54&#7>54&#"#"&/>>73n
Uj���w��/F�1!G�u.K5�980Nd48Q7"	:
46"5%FV[S5,2@15HW
���I��>�] [->$�-E7<]?!1G/,2%011Y=>,-0%	4P4�c,����u';5@2BhfSCSD(&#,$+#".54>?332>324>32#".u!LWb8DoQ,/IWN:	$u	1HSF/-;!7S<'��!-."".-!�4''HgAQsS<56$��-B:8CV;)?+$."".-""-������&$	O������&$_������&$
O������&$O������&$
O�����-&$P����9@6AYYQCS
D#	+!!!!!!!+!��L�*�:��&�������������$@d����J�K�PX@9=HB@9=HBYK�	PX@0hfSCSC	SDK�PX@0hfSCSC	SD@7hf	hSCSCSDYY@FD<;64/-%# JJ
+232654&'7.546$32#".#"32>32#"&'76�(+GB0r�~Bt��L|fS$@(EmWtʔU:g�UBfN7)	AWߒJC!;Q0&B�	(#	vd�ڀ�6�{2F+N

(/(]���o�{B ' Q^o:?.$9'5��aA�&(	$��aA�&($��aA�&(
$��aA�&(
$��V
�&,	����&,��g��&,
�����&,
E��!,@)YSCS
D!%(!+3!2#!#%4.#!!!!2>S�P�ԕOp��Q�{7f�]��>\
��?2xŎN	�Z�㈷���v��l�yA�n��[����aE�&1���d����&2	���d����&2���d����&2
���d����&2���d����&2
�l�9W�	(+		'	7	9�|8f��nP���g0������]d��]e[]��Z0����%1=g@5*)#
BK� PX@kCSCSD@jkSCSDY�**'(%&+#"&'+.546$327>;.#"%4&'32>�4_���ka�Cm=J�MRr��h�EY`�EJ��+)�2�OvƎP�$"�<0wHxƎO2zڹ�h82/�	T錷3�|;6p�T��a�<.1_��*X�;��&'^�������$�&8	������$�&8������$�&8
������$�&8
���y��&<<��	�����++���,@)\[C
D"( +32+#332>54&#��r�n6J�΅�!���3J�U�X.���6c�Uq��L����a��4]�Lt�3�&�P}@JGBAK�,PX@(hSCSCQD@%hWSCSDY@LKFD=;%# PP+2#"&'7>3232>54.54>54.#"+'&573>�Y~Q&/FQF/+@K@+>i�OY�10	"-@0*G3.DQD.1JWJ1-I4>mU:
l.KF�n(�^���6Se/D`H638&#/)+=XAV�_3E6B"6I*0?.(4H8>XE:@P8;0Ct�U���KW!M\��K��0����&DCi��0����&Dv+��0����&D�"��0����&D�"��0����&Dj"��0����&D�6���GUbG@E?"BK�	PX@5hh

[S	CSDK�PX@5hh

[S	CSDK�,PX@?hh

[S	CSCSD@Jhh

[S	CS	CSCSDYYY@&WV\[VbWbQOIHCA<:75/.(& 
	GG+232>32#"&'#"&54>7>54#"#"&/>32>32>7">54&]<fK*7��zl1K;-&,3afo@i�' Ydj1��@���<U?0W�hlz<���x�g-NA4]K4	�<bI2��c(K%BY39lU7

��#74L1rr>W8wxG�c>(�!)!7QP`UT^��%<Q2HE%JoJ�-TvH$3@$9D<��bI�K�PX@6<GB@6<GBYK�	PX@0hfSCSC	SDK�PX@0hfSCSC	SD@7hf	hSCSCSDYY@EC;:42-+#!II
+232654&'7.54>32#".#"32>32#"&'76(+GB2JqL'M��rd�38+A3E{\58Q6-F6)!,/TTW1JC!;Q0&B�	(#	y
Ck�T{�hGDC
K��f>eG'!63H-<?.$9'5��;��q�&HC���;����&Hv���;��q�&H����;����&Hj���=��&�C���_u�&�v���"^�&�����/w�&�j�<����1E6@37-B10@[SD32=;2E3E+)!+.54?.'&54?7#".54>32.'2>7.#"��)`7%X�F�qQ^F�ȂR�e8E}�ia�0LL�!AoX>	&<U9KwR+"=S)		^%
7@3|9	ST���k9k�_l��U[\��E���3l�v,Q?&<i�QCjI'��G��&Q����++��7����&RC����++��7����&Rv����++��7����&R�����++��7����&R�����++��7����&Rj����++s�A~'+@([YOSG(&(%+!!4>32#"&4>32#"&���B�&2'&21;X&2'&20<��2&(1$>�f2&(1$>���%)4�@32#"BK�	PX@!CSCSCDK�PX@!CSCSCDK�PX@!kCSCSD@!jkSCSDYYY@+**4+4&$+"'+7.54>327>;&#"2>54&'�|Z$:C�(+P��n}["  Z�'+P�����8NJzY1�I{Y1
�F7=1�5�X��b@.�5�W�c�YBZ-L���sM��g,K ��,��`����&XC����++��`����&Xv����++��`����&X�����++��`����&Xj����++��Q����&\v����++%����,p@ BK�	PX@!CSCSCD@!CSCSCDY@$",,(%+3>32#"&'#"32>54&%ݰY&X`h6��"?Ym�FK{+.'0b\O!&k74\L<)V���4=eF'��R���_6;6��&�<j�W��6,,Kes{<w|��Q����&\j����++������'0�K�PX@
-B@
-BYK�PX@!ZC
C	SD@(	hZC
CSDY@)($"''
+2#"&5467#"&'!+3#32>!.'�
Y0LRVB
N���	%���_-&( ���
�@F:?n)^����g!*3 '	�QB&&C0���4F(K�PX@&;BK�"PX@&;B@&;BYYK�	PX@#SC	SCSDK�PX@#SC	SCSDK�"PX@*hSC	SCSD@.hSC
C	SCSDYYY@65?<5F6F1/('$"44
+2#"&54>7.57#".54>32#32>2>7.#">
Y0LR*:"$S]f7<bE&-St��ZA{<y-&( �C1^TI++<pbP9 �@F: =81�@hI(/[�VZ��]3�,!*3 '	\=l�Y\'Fat�E���d����&&���<��o�&Fv����++a��A�%�K�PX�B�	BYK�PX@*YQCQ
C	
SD@1
		hYQCQ
C		SDY@" 
%%+2#"&5467!!!!!!#32>G
Y0LRVB���/��<��=ui-&( �@F:?n)������!*3 '	;��qAP�K�PX@G2B@G2BYK�	PX@*h	SCSCSDK�PX@*h	SCSCSD@1hh	SCSCSDYY@CBBPCP><0.)'
AA
+2#"&5467.54>3232>3232>">54.I
Y0LRI9U�_2!?[u�QMpH#6���uv0K;-& ,M�T+$( ?jR:��d #8�@F::f(<j�]N��xW2,DR%BoYB��#7P]!)2 '	Y4[{G19B$' _��@C
D+#�z�z�����!@
BCR
D+%!!76?3�m��=7�E��Y�&�}���-`�
W�Lb�@BC
D+4?37#L�N�F��\�T��D��Jf!I��E��aE�&1���G��&Qv���++d����2'@
BK�PX@"YS
C	S
DK�PX@-YS
CS
C	S
DK� PX@*YSCQ
C	S
DK�"PX@4YSCQ
CS
C		S
D@2YSCQ
CQ
C		SDYYYY@/-%#(#+!!!!!7#".54>324.#"32>���;��=q��Z��u��Fh���K�kS h/Z�Sm��I0[�Sm��H�������r~\�ㇹ6�~&Ge?��j�|Dc���k�|Cb��.���4FU�@
L2"BK�	PX@$hS	C
SD@$hS	C
SDY@ HG65GUHU><5F6F0.&$ 44+232>32#"&'#".54>32>2>54&#"">54.�AhJ'8\��~ym0K;-&,2afp@i�'E΁QzQ)U��kk�#?��IQ}U+]aN|X/.JH;fP8��h&'="?X5)LC;0&
��#74L1tsny;e�H���Xe[Zf�vN��qs�L��y/VB(.YQ3:A!*!�����&6���
��#�&Vv���++������&6���
��,�&V�~���++��y��&<
<��	�����++����&=8��Y�&]v����++���&=8��Y�&]�����++����&=8��Y�&]�����++��i�'6@3
BYSCSD''#"+#763>7'.546767376$3#"!��2���:.UH8���*0�/UI9+G�!˹[7:^E�	
�ſ_;^E�}Q���@BkD, +#"&/.'+3�rd�w����	q���@BkD( +32?>;#qxd
�s��������p��Aq���� @WD
	+".5467332>73r>V6y4B'6#z&Eg�!:M-
3?)9!6aI+��@SD($+#".54>32#.-""-.#:-""-/##/�kJ�=K�PX@WSD@[OSGY�$&($+4>32#".732654&#"� 7H()I8  8I)(H7 d6/-77-/6#*D22D*)D00D),88,-88/��t
YK�PX@B@@B@YK�PX@
SD@jSDY@+2#"&54>732>R
Y0LR.@%W-&( �@F:"@:2
!*3 '	h���QK�*PX@WSD@O[SGY@	+273#".#"#>32�Ai!2B% 5-) (j"3A%!4-()X/M7#-,.N8#��)�	#@ SD




	#++7>3!+7>3�H�"��S� ������������!Y�BK�(PX@SCS
D@SC
CSDY@! 6##++#!#"&'7>3267#7>3�"|l�k��O�z=<;N��D#��u�}w�H	?C�?
���@MQE+!!����}�o�@MQE+!!���7�}�����(+.5467�j^/	!

�%J%d�L	
09@"6
�����(+'&5467>54&'&547pj^0	!

�%J%d�L	
08@#6
����(+7'&5467>54&'&547�j^0	!

�%J%d�L	
08@#6
����1�(+.5467.5467�j^/	!

�j^/	!

�%J%d�L	
09@"6
*%J%d�L	
09@"6
����1�(+'&5467>54&'&547%'&5467>54&'&547yj^0	!

�j^0	!

�%J%d�L	
08@#6
*%J%d�L	
08@#6
�����1�(+7'&5467>54&'&547%'&5467>54&'&547�j^0	!

�j^0	!

�%J%d�L	
08@#6
*%J%d�L	
08@#6
�����%,@)BCSCD$&$"+>3632>32!#"&'!�,*?�G#)33#P$KIF &!��6H0+u6���/��,
	)
�D���B����9E@B)!("B[C	SCD98'%#&$"
+>3632>32!!#.'#"&'#"&5<>7!!�,*?�G#)33#P$KIF &"��Pj.*?�G!0+O$KIG&!kP���/��,
	'(�v:/�/�
(�����,K�PX@SD@OSGY�($+4>32#".�:e�LM�e;;e�ML�e:SM�e;;e�MM�d;;d�-��,�';@SD((((($+74>32#".%4>32#".%4>32#".-"--""--""--""--"!..""..!n."".-""-."".-""-."".-""-Z����'1EYm��K�PX@+[	[SC
		S

DK� PX@/[	[SC
C
		S
D@3[	[CSC
C
		S
DYY@~|trjh`^VT((%#&((($+#".54>324.#"32>>;+#".54>324.#"32>%#".54>324.#"32>�;`{A8^C%6]}F8^C&�$1(G4$1'G5w|��
~:`|A8]C%6]}F8]D%�$1(G5$1'G6):`{A8^C%6]}F8]D%�$1(F5#1'F6xc�j7)MoFc�k8)NpH2H."JsQ1E-!GqU��
�c�i7)MnFc�l8)NpH2G."JrQ1F-!HrRc�i7)MnFc�l8)NpH2G."JrQ1F-!Hr�����(+7�4�

o ;���
��
 w����(+'&54767&'&54?���5
�
	p!;�{

 �c�	@C
D#"+'+>;?/F�1!G5 [*����B[@X	4	Bh		h
[	[SC
S


DBA?>=<861/"##%%$+3>32#".#"!#!!#!32>32#".'#7367#T�!w��p��;C&6J3M�oT0����d��RoI.ASގq�v>����̎LcWB 4f�`7#H&6��-6-DeqR�ҀcJG�I6�%B@?BhS	CS	D%%!4(
+>7>;#7+"'#32'###7�
�	fGk.�
}.iGg�
�<x;�P

3��rG��RH��Ne��eA�=/@,!BSCS
D=<,**+!>54.#"!"&546767!7.54>32!�5T�i<5a�Re��H*Lj@4�/LxR,0X|��`zȎNAw�f~
(�Jx�pZ�_0B��zMyY:�O%�Tv�Ta��tQ+L��prěl�a A���3HB@?"Bh[SCSD54?=4H5H#*++$+>32#".5467>32>7>54&#"#"&'2>7.#"�'JMT0ItQ,n�݉HwT._��g^�"	e\'C7)
:qdU .I5K{\:]9*8l�c?!���/X~P#sʔVRQ"=9����7o�r-S@'>m�Wgp����@	BCR
D+)3!.'��ԩ���

����9 !9�����$@!QCD+##!##7��Ȳ�ɱȼ����]��]����$@!BQCQD+!!!!7>7	&5<7�R�����A��
��!
���;4�;�A��^�@MQE+!!�[���Ll�"@Bj[
D,'!+!##"&5<>7!2>7>;p���"Ne[n� 
�[ A 7Q=���';OL@IK-B[
	O
	SG=<)(GE<O=O31(;);	''+%".'#".54>32>32%2>7.#"!2>54.#"{3P?1DNX35[C'7\xB3O@2DMX35\D'7]y��!<86$,4!&A1$1S%B1$1!;86%+4�!8K))K8!(KhAR�i=!9K))K9!(KiAR�i<�5E''E4!<T4&:&!<T4'9&4E''E5�{����!(@%BSCSD6'%"+>32#"#"&'7>32>7�)��#A*\n�Og}F D
6Q=,C��Wnu��f�_-
L
:^B����7^@[0!/"B[[	O[	SG42+)&$77

+2>7#".#"'>322>7#".#"'>32@80%(u=4c_\-90%
)wB4d^\81%
'v=4c_\-81%
)wB5c_[W
l0."("i31!)!��
m/-!(!
h31!)!��}kK�PX@)^_	ZMQE@'jk	ZMQEY@

+!733!!!#7!7!7!��}����w��5�}���Pw�S���ʃ����ZP�� @	@MQE+!!�3�-2/��*>��yz�
�z{�
�iP��@
@MQE+%!7!7>7%>7.'%.54657n��>���2/�a�P����z�
�z������"@
BMQE+3	#>7	&'��|��y|�	��
�5���4��&&EF,#&���~�-K�PX@kD@
jaY@	+3v���0>���'s@

BK�2PX@(SCQC
CQD@MWSC
DY@''W%#+#!+'&5737>32#"&#"�y�k�}f.KF�c(�Iz�k''#
SzU1	�`���KX#O8]�n=Z$HnK5>��!�@	BK�	PX@(SCQC
CQDK�&PX@(SCQC
CQDK�2PX@,CSCQC
CQD@$MWCSC
DYYY@!!#!%#	++'&5737>32;#.#"3wg.KF�b(�
Bn�aG�5w���-_+u��a���KX!Q7T�pA
�Z$
��7�G��2��5K�0PX@QD@MQEY@	+#2~mQR��U
	�	@ja		+2#"&/����
�
����'@OSG((($+#".54>32#".54>32P%##%X$$$$�$$%%$$%%�(��@MQE+!!�4���f
�@ja
#++7>3����
��
�	
f
��@Bja& +#"&/+73ǃr�	���
kk��
��@Bja!+#'327>3�ƒr�	���kk����(@%jOSG
+"&547332673�syo�NOp,Ie�^^c><4T< *@OSG($+#".54>32"-,!!,-"�,!!,,"",��V-!@[OSG$&($+4>32#".732654&#"�4D&'E44E'&D4Y6/-77-/6{'B//B'&@..@&+99+-88���1@.O[SG
+2673#".#"#>32)^.>% 82.'a.>%!82-|*%*G5 -%*H5 �
b�	+@(OSG




	#++7>3!+7>3(�S�'��]�)����

�}��
@kD


+2+�+$<]�

9^I
D��{��_<�	�ʓ^p�ӡ���-	��VO������'-�{����6�G�Z9��(z(�����s�2�a�-����O���/�]�-�D�h���R���-�.+���+}���M���a�dia+aaEdpa6�1���r�a�aoa�dhr�d�r�?{?��|Z�����y|(!�l(������8M�0Ob<5�;]?���$O�_�g�N�XGG�7�0�G

�_`�K�Q����QZ(1X�(���9�{�������~X��;8^=]x�k����a=^8p��3����8;k#�8����kw������������������������d+a+a+a+a6V6�6g6��Eoa�d�d�d�d�d�l�0?�?�?�?��yh�I3�0�0�0�0�0�0�b<�;�;�;�;�=�_�"�/�<G�7�7�7�7�7�s�````�Q%�Q���0�db<+a�;�_�YLoaG�d.�

�

�y|Z|Z|Z�8Q8q8p8�88�8/8h8�x�����������������,�,B���-OZV�VwA��*/�]+A��Y�����xL�=�{����+Z+i����>G>8G8U8�8�88f8�8�8*8�8�8�8g�P`�	�U�������U$�U96:0<-?6D��F��G��H��R��T��m��o��y��}����U��U��U��U��U��U��U�-����������������������������������������������������������U���������-����������U
	�U
��
��
��
�U
$�U
96
:0
<-
?6
D��
F��
G��
H��
R��
T��
m��
o��
y��
}��
��U
��U
��U
��U
��U
��U
��U
�-
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
�U
��
��
��
��
�-
�
�
�
�
�
�
�
�
��U#��&��*��2��4��D��F��G��H��R��T��k��p��������������������������������������������������������������������������������������������
	�U
��
��
��
�U
$�U
96
:0
<-
?6
D��
F��
G��
H��
R��
T��
m��
o��
y��
}��
��U
��U
��U
��U
��U
��U
��U
�-
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
�U
��
��
��
��
�-
�
�
�
�
�
�
�
�
��U��
��
���;#��&��*��2��4��7�59�,:�|<�;?�,Y�rZ��\�|k��l��m�;o�;p��r��y�;|��}�;�����������������������;��r��r�����;�;�;�����;�;�;��	��
��
���^�^��$��7�A9��;��<�@=��?��l��r��|�������������������������@���@���������^���^�^�����
��
���;#��&��*��2��4��7�59�,:�|<�;?�,Y�rZ��\�|k��l��m�;o�;p��r��y�;|��}�;�����������������������;��r��r�����;�;�;�����;�;�;6	��
6
6�A���A������":#��$��&��*��-�i2��4��D��F��G��H��P��Q��R��S��T��U��V��X��Y��Z��\��]��k��l6m��o��p��r6tPuPw��y��{P|6}�������������������������������������������������������������������������������������������������������������������������������������������������������6�6�A�6�6�A��A�����#��#	��#
��#��#
��#��#$��#7��#9��#;��#<��#=��#?��#@��#`��#l��#r��#|��#���#���#���#���#���#���#���#���#��#��#��#��#��#��#��#��#��#���$�J$
�J$
�J$��$#��$&��$*��$->$2��$4��$7�|$8��$9��$:��$<�h$?��$W��$Y��$Z��$\��$k��$l�J$m��$o��$p��$r�J$t�I$u�I$y��${�I$|�J$}��$���$���$���$���$���$���$���$���$���$���$���$��h$���$���$��$��$�h$��$��$�J$�J$�J$�J$��$��$��&��&m��&o��&y��&}��&�&�&�&�&�'��'	��'
��'��'
��'��'$��'7��'9��';��'<��'=��'?��'@��'`��'l��'r��'|��'���'���'���'���'���'���'���'���'��'��'��'��'��'��'��'��'��'���)	�|)�L)�L)�|)��)��)")$�|)-�:)D��)F��)G��)H��)P��)Q��)R��)S��)T��)U��)X��)w��)��|)��|)��|)��|)��|)��|)��|)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)�|)��)��)��)��)��)�L)�L)�L)��|-	��-��-$��-���-���-���-���-���-���-���-��-���..
.
.��.#��.&��.*��.2��.4��.I��.W��.Y��.Z��.\��.k��.l.m��.o��.p��.r.y��.|.}��.���.���.���.���.���.���.���.���.���.��.��.�.�.�.�.�.�.�.�.�/��/
��/
��/�;/#��/&��/*��/2��/4��/7�8/9�J/:�h/<�,/?�J/Y�|/Z��/\�|/k��/l��/m�;/o�;/p��/r��/t�,/u�,/y�;/{�,/|��/}�;/���/���/���/���/���/���/���/��,/��|/��|/��/��/�,/�;/�;/�/�/�/�/�;/�;/�;2��2	��2
��2��2
��2��2$��27��29��2;��2<��2=��2?��2@��2`��2l��2r��2|��2���2���2���2���2���2���2���2���2��2��2��2��2��2��2��2��2��2���3	�v3�C3�C3�v3$�v3-�J3D��3F��3G��3H��3R��3T��3��v3��v3��v3��v3��v3��v3��v3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3�v3��3��3��3��3�C3�C3�C3��v4��4	��4
��4��4
��4��4$��47��49��4;��4<��4=��4?��4@��4`��4l��4r��4|��4���4���4���4���4���4���4���4���4��4��4��4��4��4��4��4��4��4���5#��5&��5*��52��54��57��58��5k��5p��5���5���5���5���5���5���5���5���5���5���5���5��5��7	�|7�L7�L7�L7�|7�f7�f7"'7#��7$�|7&��7*��7-�872��74��7D�/7F�/7G�/7H�/7J�E7P�f7Q�f7R�/7S�f7T�/7U�f7V�J7X�f7Y�W7Z�7[�Z7\�L7]�_7k��7m�L7o�L7p��7w�f7y�L7}�L7��|7��|7��|7��|7��|7��|7��|7���7���7���7���7���7���7���7��/7��/7��/7��/7��/7��/7��/7��/7��/7��/7��/7��/7��/7��f7��/7��/7��/7��/7��/7��/7��f7��f7��f7��f7��W7��W7�|7�/7��7�/7�/7�f7��7�/7�J7�J7�_7�_7�_7�L7�L7�L7�L7�L7�L7�L7�L7��|8	��8��8$��8���8���8���8���8���8���8���8��8���969	��9
69
69�A9��9�A9��9��9��9":9#��9$��9&��9*��9-�i92��94��9D��9F��9G��9H��9P��9Q��9R��9S��9T��9U��9V��9X��9Y��9Z��9\��9]��9k��9l69m��9o��9p��9r69tP9uP9w��9y��9{P9|69}��9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9��9��9��9��9��9��9��9��9��9��9��9��9��9�9�9�69�69�A9�69�69�A9�9�A9�9�9���:::	��:
::
::��:��:��:��:��:$��:-��:D��:F��:G��:H��:J��:P��:Q��:R��:S��:T��:U��:V��:X��:l::r::t<:u<:w��:{<:|::���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:��:��:��:��:��:��:��:��:�::�::�:�::�::�:�:���;;
;
;��;#��;&��;*��;2��;4��;I��;W��;Y��;Z��;\��;k��;l;m��;o��;p��;r;y��;|;}��;���;���;���;���;���;���;���;���;���;��;��;�;�;�;�;�;�;�;�;�<7<	�r<
7<
7<�'<�J<�'<�r<��<��<"2<#��<$�r<&��<*��<-�8<2��<4��<D�A<F�A<G�A<H�A<J�W<P��<Q��<R�A<S��<T�A<U��<V�A<X��<]��<k��<l7<m�J<o�J<p��<r7<t><u><w��<y�J<{><|7<}�J<��r<��r<��r<��r<��r<��r<��r<���<���<���<���<���<���<���<��A<��A<��A<��A<��A<��A<��A<��A<��A<��A<��A<��A<��A<���<��A<��A<��A<��A<��A<��A<���<���<���<���<�r<�A<��<�A<�A<��<��<�A<�A<�A<��<��<��<�J<�J<�7<�7<�'<�7<�7<�'<�J<�'<�J<�J<��r=��="#=#��=&��=*��=2��=4��=k��=m��=o��=p��=y��=}��=���=���=���=���=���=���=���=��=��=�=�=�=�=�>#��>&��>*��>2��>4��>D��>F��>G��>H��>R��>T��>k��>p��>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>��>��>��>��>��>��?�J?
�J?
�J?��?#��?&��?*��?->?2��?4��?7�|?8��?9��?:��?<�h??��?W��?Y��?Z��?\��?k��?l�J?m��?o��?p��?r�J?t�I?u�I?y��?{�I?|�J?}��?���?���?���?���?���?���?���?���?���?���?���?��h?���?���?��?��?�h?��?��?�J?�J?�J?�J?��?��?��E��E
��E��E
��E@��E[��E`��El��Er��E|��E�E�E�E�H��H
��H��H
��H@��H[��H`��Hl��Hr��H|��H�H�H�H�IEI
EI
EI�I�IlEIrEItdIudI{dI|EI�EI�EI�I�EI�EI�I�K��K
��K
��KY��K\��Kl��Kr��Kt��Ku��K{��K|��K���K���K��K��K��K��ND��NF��NG��NH��NR��NT��N���N���N���N���N���N���N���N���N���N���N���N���N���N���N���N���N���N���N���N��N��N��N��P��P
��P
��PY��P\��Pl��Pr��Pt��Pu��P{��P|��P���P���P��P��P��P��Q��Q
��Q
��QY��Q\��Ql��Qr��Qt��Qu��Q{��Q|��Q���Q���Q��Q��Q��Q��R��R
��R��R
��R@��R[��R`��Rl��Rr��R|��R�R�R�R�S��S
��S��S
��S@��S[��S`��Sl��Sr��S|��S�S�S�S�U�hU�hUD��UF��UG��UH��UR��UT��U���U���U���U���U���U���U���U���U���U���U���U���U���U���U���U���U���U���U���U��U��U��U��U�hU�hU�hY	��Y�rY�rY��Y$��YD��YF��YG��YH��YR��YT��Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y��Y��Y��Y��Y��Y�rY�rY�rY���Z	��Z��Z��Z��Z$��Z���Z���Z���Z���Z���Z���Z���Z��Z�Z�Z�Z���[D��[F��[G��[H��[R��[T��[���[���[���[���[���[���[���[���[���[���[���[���[���[���[���[���[���[���[���[��[��[��[��\	��\�h\�h\��\$��\D��\F��\G��\H��\R��\T��\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\��\��\��\��\��\�h\�h\�h\���^#��^&��^*��^2��^4��^D��^F��^G��^H��^R��^T��^k��^p��^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^��^��^��^��^��^��k��k	��k
��k��k
��k��k$��k7��k9��k;��k<��k=��k?��k@��k`��kl��kr��k|��k���k���k���k���k���k���k���k���k��k��k��k��k��k��k��k��k��k���l	�Ul��l��l��l�Ul$�Ul96l:0l<-l?6lD��lF��lG��lH��lR��lT��lm��lo��ly��l}��l��Ul��Ul��Ul��Ul��Ul��Ul��Ul�-l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l�Ul��l��l��l��l�-l�l�l�l�l�l�l�l�l��Um��m	��m
��m
��m�^m�^m��m$��m7�Am9��m;��m<�@m=��m?��ml��mr��m|��m���m���m���m���m���m���m���m��@m��m�@m��m��m��m�m�m�^m�m�m�^m�^m���o��o	��o
��o
��o�^o�^o��o$��o7�Ao9��o;��o<�@o=��o?��ol��or��o|��o���o���o���o���o���o���o���o��@o��o�@o��o��o��o�o�o�^o�o�o�^o�^o���p��p	��p
��p��p
��p��p$��p7��p9��p;��p<��p=��p?��p@��p`��pl��pr��p|��p���p���p���p���p���p���p���p���p��p��p��p��p��p��p��p��p��p���r	�Ur��r��r��r�Ur$�Ur96r:0r<-r?6rD��rF��rG��rH��rR��rT��rm��ro��ry��r}��r��Ur��Ur��Ur��Ur��Ur��Ur��Ur�-r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r�Ur��r��r��r��r�-r�r�r�r�r�r�r�r�r��Ut	�Tt�Tt$�Tt9:t::t<(t?:t��Tt��Tt��Tt��Tt��Tt��Tt��Tt�(t�Tt�(t��Tu	�Tu�Tu$�Tu9:u::u<(u?:u��Tu��Tu��Tu��Tu��Tu��Tu��Tu�(u�Tu�(u��Ty��y	��y
��y
��y�^y�^y��y$��y7�Ay9��y;��y<�@y=��y?��yl��yr��y|��y���y���y���y���y���y���y���y��@y��y�@y��y��y��y�y�y�^y�y�y�^y�^y���{	�T{�T{$�T{9:{::{<({?:{��T{��T{��T{��T{��T{��T{��T{�({�T{�({��T|	�U|��|��|��|�U|$�U|96|:0|<-|?6|D��|F��|G��|H��|R��|T��|m��|o��|y��|}��|��U|��U|��U|��U|��U|��U|��U|�-|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|�U|��|��|��|��|�-|�|�|�|�|�|�|�|�|��U}��}	��}
��}
��}�^}�^}��}$��}7�A}9��};��}<�@}=��}?��}l��}r��}|��}���}���}���}���}���}���}���}��@}��}�@}��}��}��}�}�}�^}�}�}�^}�^}�����J�
�J�
�J����#���&���*���->�2���4���7�|�8���9���:���<�h�?���W���Y���Z���\���k���l�J�m���o���p���r�J�t�I�u�I�y���{�I�|�J�}�������������������������������������������������h����������������h��������J��J��J��J�����������J�
�J�
�J����#���&���*���->�2���4���7�|�8���9���:���<�h�?���W���Y���Z���\���k���l�J�m���o���p���r�J�t�I�u�I�y���{�I�|�J�}�������������������������������������������������h����������������h��������J��J��J��J�����������J�
�J�
�J����#���&���*���->�2���4���7�|�8���9���:���<�h�?���W���Y���Z���\���k���l�J�m���o���p���r�J�t�I�u�I�y���{�I�|�J�}�������������������������������������������������h����������������h��������J��J��J��J�����������J�
�J�
�J����#���&���*���->�2���4���7�|�8���9���:���<�h�?���W���Y���Z���\���k���l�J�m���o���p���r�J�t�I�u�I�y���{�I�|�J�}�������������������������������������������������h����������������h��������J��J��J��J�����������J�
�J�
�J����#���&���*���->�2���4���7�|�8���9���:���<�h�?���W���Y���Z���\���k���l�J�m���o���p���r�J�t�I�u�I�y���{�I�|�J�}�������������������������������������������������h����������������h��������J��J��J��J�����������J�
�J�
�J����#���&���*���->�2���4���7�|�8���9���:���<�h�?���W���Y���Z���\���k���l�J�m���o���p���r�J�t�I�u�I�y���{�I�|�J�}�������������������������������������������������h����������������h��������J��J��J��J�������������m���o���y���}����������������	���
������
������$���7���9���;���<���=���?���@���`���l���r���|���������������������������������������������������������������������	���
������
������$���7���9���;���<���=���?���@���`���l���r���|���������������������������������������������������������������������	���
������
������$���7���9���;���<���=���?���@���`���l���r���|���������������������������������������������������������������������	���
������
������$���7���9���;���<���=���?���@���`���l���r���|���������������������������������������������������������������������	���
������
������$���7���9���;���<���=���?���@���`���l���r���|���������������������������������������������������������������������	���
������
������$���7���9���;���<���=���?���@���`���l���r���|������������������������������������������������������������������	������$��������������������������������������	������$��������������������������������������	������$��������������������������������������	������$��������������������������������������7�	�r�
7�
7��'��J��'��r�������"2�#���$�r�&���*���-�8�2���4���D�A�F�A�G�A�H�A�J�W�P���Q���R�A�S���T�A�U���V�A�X���]���k���l7�m�J�o�J�p���r7�t>�u>�w���y�J�{>�|7�}�J���r���r���r���r���r���r���r�������������������������������A���A���A���A���A���A���A���A���A���A���A���A���A�������A���A���A���A���A���A������������������r��A�����A��A��������A��A��A�����������J��J��7��7��'��7��7��'��J��'��J��J���r����	���
������
������$���7���9���;���<���=���?���@���`���l���r���|���������������������������������������������������������������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
���
���Y���\���l���r���t���u���{���|��������������������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|�����������	����r��r����$���D���F���G���H���R���T���������������������������������������������������������������������������������������������������������������������������r��r��r��������
������
���@���[���`���l���r���|�����������	����r��r����$���D���F���G���H���R���T���������������������������������������������������������������������������������������������������������������������������r��r��r������J�
�J�
�J����#���&���*���->�2���4���7�|�8���9���:���<�h�?���W���Y���Z���\���k���l�J�m���o���p���r�J�t�I�u�I�y���{�I�|�J�}�������������������������������������������������h����������������h��������J��J��J��J�������������m���o���y���}����������������
������
���@���[���`���l���r���|������������i�
�i�
�i����9�^�:���<�h�?�^�Y���Z���\���l�i�m���o���r�i�t�}�u�}�y���{�}�|�i�}�����h����������h������i��i��i��i����������
���
���Y���\���l���r���t���u���{���|��������������������������
������
���@���[���`���l���r���|�����������7�	�r�
7�
7��'��J��'��r�������"2�#���$�r�&���*���-�8�2���4���D�A�F�A�G�A�H�A�J�W�P���Q���R�A�S���T�A�U���V�A�X���]���k���l7�m�J�o�J�p���r7�t>�u>�w���y�J�{>�|7�}�J���r���r���r���r���r���r���r�������������������������������A���A���A���A���A���A���A���A���A���A���A���A���A�������A���A���A���A���A���A������������������r��A�����A��A��������A��A��A�����������J��J��7��7��'��7��7��'��J��'��J��J���r����"#�#���&���*���2���4���k���m���o���p���y���}��������������������������������������������������"#�#���&���*���2���4���k���m���o���p���y���}��������������������������������������������������"#�#���&���*���2���4���k���m���o���p���y���}��������������������������������������������������	���
���
����^��^����$���7�A�9���;���<�@�=���?���l���r���|���������������������������������@�����@���������������^������^��^��������	���
���
����^��^����$���7�A�9���;���<�@�=���?���l���r���|���������������������������������@�����@���������������^������^��^�����	�U�����������U�$�U�96�:0�<-�?6�D���F���G���H���R���T���m���o���y���}�����U���U���U���U���U���U���U��-������������������������������������������������������������������������������U��������������-�������������������U�	�U�����������U�$�U�96�:0�<-�?6�D���F���G���H���R���T���m���o���y���}�����U���U���U���U���U���U���U��-������������������������������������������������������������������������������U��������������-�������������������U����
���
����;�#���&���*���2���4���7�5�9�,�:�|�<�;�?�,�Y�r�Z���\�|�k���l���m�;�o�;�p���r���y�;�|���}�;�������������������������������;���r���r��������;��;��;����������;��;��;�	�U�����������U�$�U�96�:0�<-�?6�D���F���G���H���R���T���m���o���y���}�����U���U���U���U���U���U���U��-������������������������������������������������������������������������������U��������������-�������������������U�	�U�����������U�$�U�96�:0�<-�?6�D���F���G���H���R���T���m���o���y���}�����U���U���U���U���U���U���U��-������������������������������������������������������������������������������U��������������-�������������������U����
���
����;�#���&���*���2���4���7�5�9�,�:�|�<�;�?�,�Y�r�Z���\�|�k���l���m�;�o�;�p���r���y�;�|���}�;�������������������������������;���r���r��������;��;��;����������;��;��;����	���
���
����^��^����$���7�A�9���;���<�@�=���?���l���r���|���������������������������������@�����@���������������^������^��^��������
���
����;�#���&���*���2���4���7�5�9�,�:�|�<�;�?�,�Y�r�Z���\�|�k���l���m�;�o�;�p���r���y�;�|���}�;�������������������������������;���r���r��������;��;��;����������;��;��;����	���
���
����^��^����$���7�A�9���;���<�@�=���?���l���r���|���������������������������������@�����@���������������^������^��^��������	���
���
����^��^����$���7�A�9���;���<�@�=���?���l���r���|���������������������������������@�����@���������������^������^��^�����	�U�����������U�$�U�96�:0�<-�?6�D���F���G���H���R���T���m���o���y���}�����U���U���U���U���U���U���U��-������������������������������������������������������������������������������U��������������-�������������������U��J�
�J�
�J����#���&���*���->�2���4���7�|�8���9���:���<�h�?���W���Y���Z���\���k���l�J�m���o���p���r�J�t�I�u�I�y���{�I�|�J�}�������������������������������������������������h����������������h��������J��J��J��J���������������Z,�
Bz�(Zt��J�B��N�		r	�
.
^
�
��z�
 
P
z
�2���>|���Lr��F���(Hx���X�d�`���(���t�(�.l�R��@���f|�@@�   �!!l!�"&"l#<#�#�$,$F%%%b%�&&�&�&�'2'^'�((Z(�)")�*�*�++++$+0+<+�,n,z,�,�,�,�,�,�,�--*-6-B-N-Z-f-�. .,.8.D.P.b.�/R/^/j/v/�/�/�0�1�1�1�1�1�1�1�1�2
2�2�2�2�2�2�2�3L444*4<4N4`4�4�5�6|6�6�7"7�88P8~8�8�9~:8:D:T:`:p:�:�:�:�:�:�:�;8;h;�;�;�;�<J<�<�=,=�=�=�=�>>H>�>�?4?�@@:@�A�A�A�BB�CCxDD0D\D�D�D�E�E�FRF�F�G0GpG�HH�H�IIJIdI�I�I�JJ:JzJ�J�K�b"/n�	�n���)��(��0�+	C
�R.2F
�x:	T	h	p	R|	�	P�	�	`4	0�		�	
��	0
�	d
�	
�.	4�Copyright (c) 2010-2013 by tyPoland Lukasz Dziedzic with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1.LatoItalictyPolandLukaszDziedzic: Lato Italic: 2013Lato ItalicVersion 1.105; Western+Polish opensourceLato-ItalicLato is a trademark of tyPoland Lukasz Dziedzic.tyPoland Lukasz DziedzicLukasz DziedzicLato is a sanserif typeface family designed in the Summer 2010 by Warsaw-based designer Lukasz Dziedzic ("Lato" means "Summer" in Polish). It tries to carefully balance some potentially conflicting priorities: it should seem quite "transparent" when used in body text but would display some original traits when used in larger sizes. The classical proportions, particularly visible in the uppercase, give the letterforms familiar harmony and elegance. At the same time, its sleek sanserif look makes evident the fact that Lato was designed in 2010, even though it does not follow any current trend. The semi-rounded details of the letters give Lato a feeling of warmth, while the strong structure provides stability and seriousness.http://www.typoland.com/http://www.typoland.com/designers/Lukasz_Dziedzic/Copyright (c) 2010-2013 by tyPoland Lukasz Dziedzic (http://www.typoland.com/) with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1 (http://scripts.sil.org/OFL).http://scripts.sil.org/OFLCopyright (c) 2010-2013 by tyPoland Lukasz Dziedzic with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1.LatoItalictyPolandLukaszDziedzic: Lato Italic: 2013Lato-ItalicVersion 1.105; Western+Polish opensourceLato is a trademark of tyPoland Lukasz Dziedzic.tyPoland Lukasz DziedzicLukasz DziedzicLato is a sanserif typeface family designed in the Summer 2010 by Warsaw-based designer Lukasz Dziedzic ("Lato" means "Summer" in Polish). It tries to carefully balance some potentially conflicting priorities: it should seem quite "transparent" when used in body text but would display some original traits when used in larger sizes. The classical proportions, particularly visible in the uppercase, give the letterforms familiar harmony and elegance. At the same time, its sleek sanserif look makes evident the fact that Lato was designed in 2010, even though it does not follow any current trend. The semi-rounded details of the letters give Lato a feeling of warmth, while the strong structure provides stability and seriousness.http://www.typoland.com/http://www.typoland.com/designers/Lukasz_Dziedzic/Copyright (c) 2010-2013 by tyPoland Lukasz Dziedzic (http://www.typoland.com/) with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1 (http://scripts.sil.org/OFL).http://scripts.sil.org/OFL���rt	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a��������������������������������bc�d�e�������f����g�����h���jikmln�oqprsutvw�xzy{}|��~�������	
�����
����������������������������������������������� !"#NULLuni00A0uni00ADmacronperiodcenteredAogonekaogonekEogonekeogonekNacutenacuteSacutesacuteZacutezacute
Zdotaccent
zdotaccentuni02C9EuroDeltauni2669undercommaaccent
grave.case
dieresis.casemacron.case
acute.casecircumflex.case
caron.case
breve.casedotaccent.case	ring.case
tilde.casehungarumlaut.case
caron.salt�������������V��������V�,� `f-�, d ��P�&Z�E[X!#!�X �PPX!�@Y �8PX!�8YY �Ead�(PX!�E �0PX!�0Y ��PX f ��a �
PX` � PX!�
` �6PX!�6``YYY�+YY#�PXeYY-�, E �%ad �CPX�#B�#B!!Y�`-�,#!#! d�bB �#B�*! �C � ��+�0%�QX`PaRYX#Y! �@SX�+!�@Y#�PXeY-�,�C+�C`B-�,�#B# �#Ba��b�`�*-�,  E �Ec�Eb`D�`-�,  E �+#�%` E�#a d � PX!��0PX� �@YY#�PXeY�%#aDD�`-�,�E�aD-�	,�`  �	CJ�PX �	#BY�
CJ�RX �
#BY-�
, �b �c�#a�C` �` �#B#-�,KTX�DY$�
e#x-�,KQXKSX�DY!Y$�e#x-�
,�CUX�C�aB�
+Y�C�%B�	%B�
%B�# �%PX�C`�%B�� �#a�	*!#�a �#a�	*!�C`�%B�%a�	*!Y�	CG�
CG`��b �Ec�Eb`�#D�C�>�C`B-�,�ETX�#B `�a�

BB�`�
+�m+"Y-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�	+-�,�+�ETX�#B `�a�

BB�`�
+�m+"Y-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-� ,�+-�!,�+-�",�+-�#,�	+-�$, <�`-�%, `�
` C#�`C�%a�`�$*!-�&,�%+�%*-�',  G  �Ec�Eb`#a8# �UX G  �Ec�Eb`#a8!Y-�(,�ETX��'*�0"Y-�),�+�ETX��'*�0"Y-�*, 5�`-�+,�Ec�Eb�+�Ec�Eb�+��D>#8�**-�,, < G �Ec�Eb`�Ca8-�-,.<-�., < G �Ec�Eb`�Ca�Cc8-�/,�% . G�#B�%I��G#G#a Xb!Y�#B�.*-�0,��%�%G#G#a�E+e�.#  <�8-�1,��%�% .G#G#a �#B�E+ �`PX �@QX�  �&YBB# �C �#G#G#a#F`�C��b` �+ ��a �C`d#�CadPX�Ca�C`Y�%��ba#  �&#Fa8#�CF�%�CG#G#a` �C��b`# �+#�C`�+�%a�%��b�&a �%`d#�%`dPX!#!Y#  �&#Fa8Y-�2,�   �& .G#G#a#<8-�3,� �#B   F#G�+#a8-�4,��%�%G#G#a�TX. <#!�%�%G#G#a �%�%G#G#a�%�%I�%a�Ec# Xb!Yc�Eb`#.#  <�8#!Y-�5,� �C .G#G#a `� `f��b#  <�8-�6,# .F�%FRX <Y.�&+-�7,# .F�%FPX <Y.�&+-�8,# .F�%FRX <Y# .F�%FPX <Y.�&+-�9,�0+# .F�%FRX <Y.�&+-�:,�1+�  <�#B�8# .F�%FRX <Y.�&+�C.�&+-�;,��%�& .G#G#a�E+# < .#8�&+-�<,�%B��%�% .G#G#a �#B�E+ �`PX �@QX�  �&YBB# G�C��b` �+ ��a �C`d#�CadPX�Ca�C`Y�%��ba�%Fa8# <#8!  F#G�+#a8!Y�&+-�=,�0+.�&+-�>,�1+!#  <�#B#8�&+�C.�&+-�?,� G�#B�.�,*-�@,� G�#B�.�,*-�A,��-*-�B,�/*-�C,�E# . F�#a8�&+-�D,�#B�C+-�E,�<+-�F,�<+-�G,�<+-�H,�<+-�I,�=+-�J,�=+-�K,�=+-�L,�=+-�M,�9+-�N,�9+-�O,�9+-�P,�9+-�Q,�;+-�R,�;+-�S,�;+-�T,�;+-�U,�>+-�V,�>+-�W,�>+-�X,�>+-�Y,�:+-�Z,�:+-�[,�:+-�\,�:+-�],�2+.�&+-�^,�2+�6+-�_,�2+�7+-�`,��2+�8+-�a,�3+.�&+-�b,�3+�6+-�c,�3+�7+-�d,�3+�8+-�e,�4+.�&+-�f,�4+�6+-�g,�4+�7+-�h,�4+�8+-�i,�5+.�&+-�j,�5+�6+-�k,�5+�7+-�l,�5+�8+-�m,+�e�$Px�0-K�KRX��Y�c �#D�#p�E  �(`f �UX�%a�Ec#b�#D�*�*�*Y�(	ERD�*�D�$�QX�@�X�D�&�QX��X�DYYYY������Dlib64/ruby/2.2.0/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf000064400000213040150402106120022660 0ustar00�pFFTMf�h�OS/2s�x`cmap_�ceXcvt ��
"fpgmY�7`sgasp���glyf�p�e���head��u��6hheaA�4$hmtxf�]��~locabk3�
<vmaxpS�X nameD����p;Xpost6z
�3prep~��AZ��R_<����������������:Qc
�X��XK�X^2 	 ADBE 
"��`��� �MX�SF@��~@F�F�J8R3*#.<>=5��tFbb	T7A^l,@J;DkAB&J$F2@8�JiV<�=HC/7R4HO*L>$H/H/t51>%Fj�i4�`C$�Gp�+FFe��F���>0����<g						��7^^^^JJJJB&&&&&T@@@@I=======C7777OOOO/H/////F/>>>>H	=	=	=7C7C7C7CA/^7^7^7^7^7,4,4,4,4@��JOJOJOJOJO;*DLLk>k>k>k
!>BHBHBH��&/&/&/FtFeFt2525252511@>@>@>@>@>@>8F8F8F:.&/@>	=JO&/@>@>@>@>@>,4&/251*	H/H467/< 42���S��������������������|�������p����E��"�������������s����v���A/A/,4@H@Hk>7>k>A$BHBHBHFjFjFB2525118F1@P���4FF���������������������������OC[-COX$F���������������������������������������4
~1Ie~��������7CRTYaeoy�����������$(.1CIMPRX[���!%+;Ico������    " : D q y � � � � � � � � � �""��
 �4Lh��������7CPTXaeoy�����������#&.1CGMORV[��� $*6BZl������    " 9 D p t } � � � � � � � � �""����������������������w�n�l�@�%���
�
���������������������������������z�s�r�m�k�Z�W�T�S�R�O�M�
�
��������z�j�b�R�J�H�E�?���������������}�z�u�i�g�f�c�_�]�Z��
	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc��������������������������������tfgk�z�rmxl��uiyn~���ep?od�����������6���{������������������v�s}~|��w�,K�	PX��Y����D�	_^-�,  EiD�`-�,�*!-�, F�%FRX#Y � �Id� F had�%F hadRX#e�Y/ �SXi �TX!�@Yi �TX!�@eYY:-�, F�%FRX#�Y F jad�%F jadRX#�Y/�-�,K �&PXQX��D�@DY!! E��PX��D!YY-�,  EiD�`  E}iD�`-�,�*-�,K �&SX�@�Y�� �&SX#!�����#Y �&SX#!�����#Y �&SX#!����#Y �&SX#!�@���#Y �&SX�%E��PX#!��#!�%E#!#!Y!YD-�	,KSXED!!Y-�+�+�+�%+�.& +�+� E}iDK�`RX��Y��s��H�B{��6D�.��4j�����l��b���F���D�T�		L	�	�

V
�
�>��*r�
(
�
�
�,��&\z�����t�2�Vt�T�l�(��T��0�^��f���6��Pn�������,4p����>pz������� $ 0 < H T ` l � � � � �!!!!&!2!�!�!�!�!�!�!�""�"�"�"�"�"�##|#�#�#�#�#�#�$~$�$�$�$�$�$�$�$�$�%n%z%�%�%�%�%�%�&v&�&�&�&�&�'*'6'B'N'Z'f'�(v(�(�(�(�(�(�(�(�(�(�(�)�)�)�)�)�)�)�*4*�*�*�*�*�*�*�+++ +,+8+D+�,,&,2,>,J,V,b,�-4-@-h-t-�-�-�-�-�....$.0.<.H.�.�.�.�////&/�/�/�/�/�/�/�0:0�0�0�0�1
11"1.1:1F1R1^1j1v1�1�1�1�1�1�1�1�1�1�1�2222*2�333(343@3L3X3d3p3|3�3�4"4z4�5B5�66l6x6�6�6�6�6�6�6�6�6�6�6�777 7,787D7�8*868B8N8Z8�99�9�:l:�;;h;�<H<�==^=�>>`>�>�?2?n?�@$@,@4@X@|@�@�@�@�@�@�@�@�@�@�@�@�@�A.A�A�A�A�BBPBdB�B�B�CC@CbC�C�C�C�DD6DjD�D�D�EE0E�E�F:F�GG^G�G�HJH�H�IIDI�I�I�I�I�I�I�I�JJJ J,J8JDJRJbJnJzJ�J�J�J�J�J�J�J�J�J�KKKK&K2K>KJKVKbKnKzK�K�K�K�K�K�K�K�K�K�K�L
L~L�L�L�L�L�L�L�L�L�MM,MPMZMhMvM�M�M�M�M�NN4N>NHNRN\NfNpNzN�N�N�N�N�N�N�N�OOOO&O0O:O�P.P�QdQ�R:R�SJS�T$T�T�UUULUpU�VV@V�V�W W�W�X
X,X>XRXrX�X�X�YY<YfY�Y�Y�ZZJZ�Z�[
[P[�[�\\2\^����-�EX�/�
>Y�EX�/�>Y�	ܸ�01'3#4632#"&��`49++99++9����-77--99��S/�'�|�F���EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�+�+��
ии�ии�ии�и�017#537#53733733#3##7##7#�JUO[ThTO[
T_UgU�h
�^n^����^n^���nn@���,G�/�'/�&ܹ��ܺ&9�и��&9�&�)�01.#"#5.'732654.546753�#?)E+AKA+VTb1h&@0U0$&+ALA+XLb4M�.+>-?]��)!d!*>.AV��+ ����H�'��D&����J�
A��EX�3/�3
>Y�EX�!/�!>Y�EX�/�>Y�!��3!9�
!39�
�+ии3�ܸ�ии��
�;��>�017327.'>54&#"&'#".54>7.54>32>7�1(  #?-%{, 3(#DF%Y73N5&*<%JS#,= 	�%.C$$#").'�<m3 	w/"3C& 5+$&G#>/PD3,&; J,�/���+01'3#��#Z�����M���+01.5467�bqqbRYQ)@-R�W䎎�WAW�v;i`Y+A~�M���	+01>54&'7~-@)QYRbqqbr+Y`i;v�WAW䎎�W@[6/�/�9���и�
и��01?'7737'xa��N��a@tt��DG+��+GD�,��F^6�+��и�	�01#53533##���l��lh��h���'���+0165#".54632��'A/>>jh�-a
&/8[Q`� ��F~������EX�
/�
>Y��0174>32#"&�++@44@i+  +2CCJ�`��EX�/�>Y��01#3�{I{�f8�� �'3K�EX�
/�
>Y�EX�/�>Y�
����(9�(/�.�01".54>32"32>54."&54632,7Z@##@Z77Z@##@Z7)))) ++  +++T|QQzS))SzQQ|T+!1R>>S33S>>R1��)##))##)R{=�EX�
/�
>Y�EX�/�>Y��и
�й�01%!53#5>73�9��8O#lwwwo[
��3�!C�EX�/�>Y�EX� /� >Y��к 9���017>54&#"'>32>;!:DpP,62&?O17=%2R;!&AT.?��#T9cVL"/1'O&
5J.(SSS(|*���-S�EX�/�>Y�EX�*/�*>Y��*9�/����"901732654.#52654&#"'>32#"&'n O,4C,J8^M2,&@!J/k>4V>"@9<R)E\2Rv%�$'$"
h/&!%Z&+-@*2EM>,E/1)#.{	Y�EX�/�>Y�EX�
/�
>Y�+����	и�и	�и��015467###5!533U$`}P���	�PkO6�p��e~��.��{$U�EX�/�>Y�EX�!/�!>Y�	+�!��!9��и��01732654&#"'!!>32#"&'p I-6EA3A���&,O<#)EZ1Ss'�%2102	*A|w0J35R93&<��!�2W�EX�//�/>Y�EX�%/�%>Y�+�%��%/9���/��01%2>54&#".#">32#".54>32:#4*<$�< 5)"S$*G5%?R.1\H,.Mb5Df b'1+"&3
�/L8!$0J22N8$LwTY�T)->{3�EX�/�>Y�EX�/�>Y���	�013>7!5!#�+D2���<J*�O�ys?|ZCu}�]=���
>W�EX�'/�'>Y�EX�:/�:>Y��'��9�/�/и//�ܸ��01732654.'7654&#"4>75.54>32#".�B1-7)8"#�0.,#1F�!+(5 9P/0M65&,  =Z:7X>!�*/'(
2�+2%-$%',�/&G3(A.-A'-F(3 &@/.@5���2W�EX�%/�%>Y�EX�//�/>Y�+�/%9���%��/��01267.#"32>7#".54>32#"&'<$#4c< 5)#S#*H5%?R.1]H+.Lc4Df!V#%3
'1+�/M8!%0J21O8$LwTY�T).������"'C����'�"'Ct�y;�+��и/��9��и/��01%%t���	�~��������F��&t�b�y;�+��и/��9��и/��015%5%5�~	���������b����)*�EX�'/�'>Y�
+�'�!ܸ�01&>54&#"'>324632#"&�'"* 0R$b<+K7 $("�9++99++9�!5*"   K(2)=)!0("%+�-77--99�m&�6@?� '+�1+�:+�>+�19��=�01%#'##".54>754.#"3267#".54>3232675&N<)/"#A\9 2!#F8#$;L)-;**T6<oV30Rm=9S5�#F9d3#&3(;)2'"JuRNsM%I0c�ff�`.&BY4�\$	O�	A�EX�/�
>Y�EX�
/�
>Y�
	+���
��01'.'###3#n


��(�˰˜<1n34m1<s���tT-�&W�EX�/�
>Y�EX�/�>Y�%9�%/��%9����&�0132+2654&+254&+T�3W@%
*FH&D[5��60143@v9=@�&>/,&
JB2H/�+%% ���Y+'�7��9�9�EX�/�
>Y�EX�/�>Y�����014>32.#"3267#".70TrA?a!Q6##:+\J#9QR|?pT1BQX.3 [6N1eo Y`+T}A,�9�EX�/�
>Y�EX�/�>Y�����0132+72>54.+A�GtR--QpD��&?--?&�&OzTT|Q(w1P;:O/�b^�M�EX�/�
>Y�EX�/�>Y���9�/����01!!3#!!^�����%�H�|�{�|l�	C�EX�/�
>Y�EX�	/�	>Y���	9�/��01!!3##l������|�|�,��#�#M�EX�/�
>Y�EX�/�>Y�����9�/��014>32.#"32675#53#".,/Qn?B] Q2' 6(MN"_�!l??mQ.BRW.3 [6N1eo

px��0+T}@�I�EX�/�
>Y�EX�/�>Y�	9�	/����013353###@����������t��J�A�EX�/�
>Y�EX�/�>Y����и�	�0173#5!#3!J��Ę��<|�||�l|;���5�EX�/�
>Y�EX�/�>Y����0173265#5!#".'�:B32��:]C:84�H3D'{�R0U@%)DR�k�EX�/�
>Y�EX�/�
>Y�EX�/�>Y�EX�/�>Y�9�	9�	�и�
�01333##D����֣�L�������xd�k �+�EX�/�
>Y�EX�/�>Y��013!!k�"�K���|A�M�EX�/�
>Y�EX�/�>Y�+��и�	и���0133?3#54>7##/##A�B?�w32A21u��ZZ�t�OTO����OTO�B�Y�EX�/�
>Y�EX�/�>Y�9���к9��
���0133.=3#'##B��8���8�����4�9�tE�6|:�&��2�5�EX�
/�

>Y�EX�/�>Y��
��01".54>32'2654&#",:aE&&Ea::aE&&Ea:3<<33<</X~PP}U--V}OP~X/scbnnbcsJ7�G�EX�/�
>Y�EX�/�>Y�9�/�����0132+#254&+J�5]E()F\4[��w<;R�1Q;9T6�Rh3*�$�ND�*K�EX�/�
>Y�EX�/�>Y�'+������$�01"32654&#".'.54>323267)4::43;;�00PA0Xh&D`;:`D&^QC#nbcsscbn�J	.A&��P}U--V}O��#FH�S�EX�
/�

>Y�EX�/�>Y�

9�
/��
���и
��013254&+'##32�Hw<;H�}M��4[E(@4�`a0&�����/N:H]��2��'�/I�EX�/�
>Y�EX�,/�,>Y��,9��� ,901732654./.54>32.#"#"&'�%W+3/%T3&#?X5<p-K"B*+/</OAK"@^=B�5�&"	$
 +9$(G5,*]"TE)I7!//9�3�EX�/�
>Y�EX�/�>Y����01#5!##��Ô||��@���3�EX�/�
>Y�EX�/�>Y���	�01332653#"&5@�,//-�swxv��`;>>;��o����I�
3�EX�/�
>Y�EX�
/�
>Y���
�0133>73#�NM�ı���6e66e60�tT�!M�EX�/�
>Y�EX� /� >Y�
+� ��и�и ��0133>?33>73#'.'##�-Y+�Q�)
	'����*R**R*��(T**S)[�t�AA�F�]�EX�/�
>Y�EX�/�>Y�9�9��к
9��к90133>?3#'.'##г�?:����GD�O={33{�����33�H�@�EX�/�
>Y�EX�/�
>Y�EX�/�>Y�901733>?3#�ҞBB�Ҕ���&H''H&��P�8#�	=�EX�/�
>Y�EX�/�>Y����017!5!!!82����5�Y�{Y�I|�h���+�+01!#3!�'�����N�@NJ�`��EX�/�>Y��013#J{I{��i�h���+�+01#5!!5�'��J�N��NV�	&�EX�/�
>Y�ܺ9�	�013#/##�v�y.--.y��t����<�\��
�+01!5� 6nn���>~��=���)��EX�/�>Y�EX�/�>Y�EX�/�>Y�9�/����!�!9�9��$��%�0174>7.#"'>32#'##".732675=$O|X33$I*43u@hxx&Z0&<*�% !:7H*�*?,"&`&nr��8')6+RH��)�!��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�9��������!�013>32#"&'##732654#"H�I$.K3$<M*#Es�-)8[/-��N$A]9@dE$" 6�EM�.C��$�9�EX�/�>Y�EX�/�>Y�����0174>32&#"3267#".C/Oh9;_ D77@PM>'B<-m3;dK*�>aB#&['LAAL]&##Ba/���#��EX�/�>Y�EX�
/�
>Y�EX�/�>Y�EX�/�>Y�9�9��������!�0174>32'53#'##".732675.#"/$;L)+:�xH&/M7�2.*));�=`C$M��C3$$C`?JD�D7��"�#C�EX�/�>Y�EX�/�>Y�#
+���� �0174>32!3267#".%4&#"7+H]29X:��Q7"=!0*h2:dJ+f.3(>
�=`C$$@W3$	81X#C`t*4.0RI�V�EX�/�>Y�EX�/�>Y�EX�/�>Y����и��	�01&#"3###5754>32-170-�����6T:+K B*-s��}m
+J7 4�-<�DP��EX�"/�">Y�EX�%/�%>Y�EX�$/�$>Y�EX�@/�@>Y�EX�
/�
>Y�@��
�
ии
�7�/ܹE�1E/9�1�и%�&�$�'�"�K�0132654&+"&'475.54675.54>323##"';2#".2654&#"�C;<J,+>#xM!&#:M*.$�e	 7K+ $(,\bg*LnC0S<"�--++>#$=&
( 2A,-C-k#+>)
:C'B/0k))())())H�e�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�
/�
>Y�
9�����013>32#4&#"#H�#)1TM� )-���_l^��2.��O��;�EX�/�>Y�EX�/�>Y����ܸ�01!##%"&54632OZ��
+77++77�}�0))33))0*�<��A�EX�/�>Y�EX�/�>Y�����ܸ�01!#"&'73265#%"&54632OZ5YC.K +15'�
+77++77�.-R>%i
36e�0))33))0LI�m�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�	9�	�и�
�013373#'#L����˟�I���k����M}>�� �5�EX�/�>Y�EX�/�>Y����01!3267#"&5#>#
&!""&^_����	l
o_�$=� ��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX� /� >Y�EX�/�>Y�EX�/�>Y� 9��	и��	������0133>32>32#4#"#4#"#$n1+!-	5*4:�q��>+)("/UK��Q.0��Q.��H�e�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�����0133>32#4&#"#Hx S8TN� )-��B .l^��2.��/��)�5�EX�/�>Y�EX�/�>Y����0174>32#".732654&#"/*G[11[G**G[11[G*�33333333�>aB##Ba>>aB##Ba>ALLAALLH�H)� ��EX�	/�	>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�	9�	9�����	��� �01#33>32#"'732654#"ۓxN(.J4$<M*D8-*8[/-'��2#$B]9@cE$6cEM�./�H�#��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�
/�
>Y�9�9��������!�0174>32373#57#".732675.#"/$;L)*As�F#/M7�2.*));�=`C$!3�X�L $C`?JD�Dt$�T�EX�/�>Y�EX�/�>Y�EX�/�>Y�9��
���0133>32.#"#tx%h<!)%.Y ��l=;

{6C��5���/I�EX�/�>Y�EX�,/�,>Y��,9���,901732654&'.54>32.#"#"&'w+W23,I<!?2 ;U5Bm'B"H'/'"/%B2 =[<C�0� 	#.":(+X

"0 ":+, 1��&tM�/�EX�/�>Y�EX�/�>Y����и�и�
�01#5?33#3267#".5�}�y��260!Q0;R3}m��s�9/
j
 9P1>��
�e�EX�
/�
>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�����01!#'##"&5332673
x!P6UL�*+�G&-l^2��2.!F9�
<�EX�/�>Y�EX�
/�
>Y�EX�
/�
>Y��0133>?3#�NN�����&L''L&�T�!t�EX�/�>Y�EX�
/�
>Y�EX�/�>Y�EX�!/�!>Y�EX�/�>Y�!9��к90133>?33>?3#'.'##�
g!�M�	���%H&&J#��%H&&H%��#G(D3�%2�e�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9��и�
и�01'33>?3#'.'##ѡ�3


,����91��P+,P��R,+R�>;�[�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y���
901326?33>?3#"&'7]+1
גS
I��*6G/&H$��#K'%K%�/G/pF�	=�EX�/�>Y�EX�/�>Y����017#5!!!F�����)O.sN��sj�h��7+�34+�+�
+�'
9014>54.'5>54.546;#";#"&� 5((5 Z`M)(	.66.	()M`Z
*''

V

('+Q=N(N-93		39.L)N=�m��+013#낂�i�h��7+�5+�+�'(+�('9012>54&54675.54654.+532+5�'	.66.	')M`Z 5))5 Z`MJ)L.93		39-N(N=Q+'(

V

''*Q=N4�$�'�+�+��и��01>323267#".#"4 T/.'#&X T/.'#'NC(*)NC(*�R���EX�/�>Y�	ܸ�01#737#"&54632p�`49++99++9)���-77--99`���$\�EX�/�>Y�!
+� +� �и/�!�и/�
�
и
/�ܸ�и/01#5.54>753&'>77$$%#�D"Q1O8 :N/Q'?C$�@--AE__(AX65V?)a]Z��C&�*W�EX�/�>Y�EX�/�>Y�+���и��� и�#�01%!5>54'#57.54>32.#"3#&�4BpT"<T2>Y#O,07��||[O6
V(/L5*'P.0$[$4$?4S*�"+�(+01?&5467'76327'#"'32654&#"$Q"PIY0642YIQ"RIZ47.Zi2$$22$$2�R.A 7RJZZJR-@!7RJ[[-55--559{l�EX�/�>Y�EX�	/�	>Y�EX�/�>Y�	9��й�иܸй�и��013>?33#3##5#535#53�==������������{�!B !B ���F7F��F7F%�m��+�+013##낂���Jl�:�G���
AO�+%+�>+�.%9�>+9�.9��к8.9�8��01654.'7.#"#"&'732654.5467.54632� 3>$ 2=%�86(=G=(+)0H/7j"T3<';E;',&]U:\ Q!&!�' -@-,A&":*)+K3-@/&C(DU)��p;�����E�'EM�EX�/�>Y�EX�/�>Y���#�-й4��Aй:�014>32#".732>54.#"4>32.#"3267#".-Mf99fM--Mf99fM-@9P11P99P11P980?"'57%'&!/7!&?.ENzU--UzNN{W..W{N>dH''Hd>=dG&&Gd>,G2=
=-3<
D3I�����U���+�'�|��F^~
�+01!#5!F�l��~���F~e7��'5>=�+�
+�62+��)и2�/и�4и1�01".54>32'2>54.#"'32#'##72654&++)H66H))H66H)5''5 4''41Y#.*<:N76J,,J66J,,J61(8##8((8##8(� "M<<d6���P��������
+�+01".54>32'2654&#"-5''55''5%%%%�'4 5''5 4'F)! )) !)F6D�EX�/�>Y�+��ܸ�и�и���01#53533##!!���l��l��4&h��h�6h�����������������>���>�<K�'s�'/�EX�/�>Y�EX�	/�	>Y�EX� /� >Y�EX�/�>Y� ��	 9�����013326733:7#"&'##"&'#>�#"0�
%19
>%%���6*"+2,`]Tm0.,-	<c70���%�EX�/�
>Y�EX�/�
>Y013##".54>;|��4(1WB&&AV1*��$;W9?U5����������#��������������U���<.�'�|����Q|'��D&���G|'��D&����R�'��D&��g�F��)*�EX�'/�'>Y�
+�'�!ܸ�01%3267#".54>'7#"&54632'"*  0Q$b<+K7 $("�8,+88+,8�"4*" ! J)2(>)!0("%+�-77--99��	O6&&#��	O6&&$��	O6&&%��	OG&&&��	OH&&*��	O}&&,��S�f�EX�/�
>Y�EX�/�>Y�EX�/�>Y�
+�+�������01#!5##!#3#7
p��v-��|�vv1]+]�|���|�|���7�#9�&(/0��^6&*#��^6&*$��^6&*%��^H&**��J6&.#��J6&.$��J6&.%��JH&.*2�!S�EX�/�
>Y�EX�/�>Y�+�������01#5732+72>54.+3#GEE�FtR--PqC��&?--?&kk-B&OzTT|Q(w1P;:O/�G���BG&3&��&��26&4#��&��26&4$��&��26&4%��&��2G&4&��&��2H&4*Tp#)�	+�
	9�
�и
�и�01?'77'T��I��I��I�����J��J��J����C�*}�EX�&/�&
>Y�EX�/�>Y�&9��и��&9��	и&���и�и�и	�(�01732654&/&#"#"''7.54>327�%3<&)3<<&Ea:R;3N@&Ea:U?5N�sc!l$nb,$'*kBP~X/,I2]+rFP}U-0M2��@��6&:#��@��6&:$��@��6&:%��@��H&:*��H6&>$I6�9�EX�/�
>Y�EX�/�>Y�
+�+01332+#7254&+I�[5]E()F\4[��w<;R�c1P;:S6{�h3)�=��;�9Z�EX�/�>Y�EX�9/�9>Y�EX�/�>Y�"�"9��4�%49014>32#"&'732654.54>54&#"#=8V90H.")",A+*?"1*")")&��.P;!/= $1'!%3$"<,d
".!,(+#<3���=���&F���=���&F���=���&F���=���&F���=���&F���=���&F���Q�09E��EX�
/�
>Y�EX�/�>Y�EX�&/�&>Y�EX�,/�,>Y�1+�
,9�/�
��&
9�&��)&
9��6�,�<��C�017467.#"'>32>32#3267#"&'#".%4.#"3267./or94*P+,7:,&:'�0#%2H 6G'C""3#�%�.!1+�MS#$`(!%$&AW1"
33^*#)$(7�$14�0')��C�#$�&H�)��7��"�&J�
��7��"�&J�
��7��"�&J�
��7��"�&J���O��&��-��O��&��-��O��&��-��O�&��-/��&�4k�EX�//�/>Y�EX�/�>Y�#	+���&/9�&��/9��)и�2и,�01%265<'.#"#".54>32.''7&'77,4=8 6? ,�@O#A_<3ZC($>O,$B1#�&x+3@&I"�&kLK	:<-�<�r<fJ*">Y76T:-I KA<Y)EA��H�&S���/��)�&T���/��)�&T���/��)�&T���/��)�&T���/��)�&T�FIK%�+��ܸܸ�ܸ�01"&546324632#"&!!,#..##..t.##..##.��4�+""++""+��"++""++
h/��)*}�EX�&/�&>Y�EX�/�>Y�&9��и��&9��	и&���и�и�и	�(�01732654&/&#"%#"''7.54>327�"33$"33!*G[1L?,7.!*G[1L>-7{QAAQA#�!X7>aB#(5*8 X7>aB#'6+��>��
�&Z����>��
�&Z����>��
�&Z����>��
�&Z�����>;�&^�H�H)�$��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�9������"��$�01#3>32#"&'532>54&#"ۓ�G&.J3%<M(%<.#,0.-�u�L$B]9@cE$Q�$7&CC.���>;�&^���	O-&&'��=���&F���	O6&&(��=���&F�	�!e�	(e�EX�/�
>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�%
+�+���01'.'##"&54>7#'##33267n

�;0B('�(�˰�!
<1n34m1<�61-)!����t	=�.+�1=��EX�/�>Y�EX�-/�->Y�EX�/�>Y�EX� /� >Y�-9�/��� ���(и-�5��9�0174>7.#"'>323267#"&54>7'##".732675=$O|X33$I*43u@hx1'
:-=	&Z0&<*�% !:7H*�*?,"&`&nr��0B.-%:')6+R��7��96&($6��C��$�&H�)��7��96&(%6��C��$�&H�)��7��9W&()6��C��$�&H�)��7��96&(.6��C��$�&H�)��A,6&).�����x&I�8��2��/��R�*��EX�/�>Y�EX�'/�'>Y�EX�/�>Y�EX�/�>Y�
)+�!9�!������9���
�и
�$и)�%�01&#"3267#'##".54>32'5#53533}'**<2.*�BxH&/M7$;L)+:���BO!>BE?���3$"A\;:]A"M,GJJ��^-&*'��7��"�&J�
��^6&*(��7��"�&J�
��^W&*)��7��"�&J�
^�!*�#^�EX�/�
>Y�EX�
/�
>Y�EX�"/�">Y�+�+���"��01!!3#!#3267#"&54>7!^�����%
!;0C
���|�{�| 	J1-(!7�."�18^�EX�"/�">Y�EX�/�>Y�EX�/�>Y�8*+����.�"�5�01%3267#"&5467#".54>32!3267'4&#"!+	
:-;%:dJ++H]29X:��Q7"=!A.3(>
.$B.-%:#C`>=`C$$@W3$	81�*4.0��^6&*.��7��"�&J�
��,��#6&,%��4�-<�&L���,��#6&,(��4�-<�&L���,��#W&,)��4�-<�&L���,�#�&,�"��4�-<�&L9��@6&-%����f&M%�j0U���EX�/�
>Y�EX�/�
>Y�EX�/�>Y�EX�
/�
>Y��ܹ�ܸ�и���и�и��01#37#####57533533����=���==���=�UU����A`___���EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�
/�
>Y�+�9������и�и��01>32#4&#"##57533#�#)1TM� )-�BB����l^��2.��,AKJG/��JG&.&��O�&��-��J-&.'��O��&��-��J6&.(��O��&��-J�!�#`�EX�/�
>Y�EX�
/�
>Y�EX�"/�">Y�+�"����и��0173#5!#3#3267#".54>7#J��Ę��)"";)�|�||�l|/	J#(!O�.��&g�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y����
��ܸ!�01#5!3267#"&54>7#"&54632�Z(
:-=
	*C+77++77}s�/B.-%90))33))0��JW&.)O��/�EX�/�>Y�EX�/�>Y���01!##OZ���}��;��6&/%��*�<��&\�-��D�R�&0���L�I�&P�LI�m�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�	9�	�и�
�013?3#'#L����˟�J�������H{��k 6&1$���>�� m&Q$�7��k� �&1� ��>� �&Q�>��k �&18����>�� &Q8���k'�&1�����
��9�&Q�����! �
I�EX�/�
>Y�EX�/�>Y��9��и�и	�01%!55737 �KJJ���||�)r)T��qrq�>�� �W�EX�/�>Y�EX�/�>Y�	9�	�и�
�	�ии��01%#"&=575#5!73267 ""&^_qq�#��
&
o_R?u@�t�PuQ�	��B6&3$��H�&S���B��&3���H��&S���B6&3.��H�&S�����&m�EX�/�>Y�EX�$/�$>Y�EX�#/�#>Y�EX�/�>Y�+���&#9�&�!�0167#"&54632%>32#4&#"#3.i
)25*9=WXfG2JE�!�xp/[2*.7UKR}(�-k]��!1-���@��&��2-&4'��/��)�&T���&��26&4(��/��)�&T���&��26&4-��/��)�&T�S�!O�EX�/�
>Y�EX�/�>Y�
+����
��014>3!#3#3!".7;#"*Je;"�yy���:bH(�((ITzO&{�{�|(Q|T;Q1�/N��P�4=��EX�/�>Y�EX�/�>Y�EX�*/�*>Y�EX�0/�0>Y�5+�0���	�*9�*�#�-*9��:�01732654&#"4>32>32#3267#"&'#".%4.#"�  �3D&+<>%%:'�/#"2F'C:-&C2�"�AMMAAMMA>aB#/'*,&AW133^(%&'#Bam$14��FH6&7$��t$�&W�'��F�H�&7���e�$�&W����FH6&7.��t$�&W�'��2��'6&8$��5���&X���2��'6&8%��5���&X���2�#'�&8/��5�#�&X���2��'6&8.��5���&X����#9�&9/��1�#&t&Y�I��96&9.��1��&&Y8���@��G&:&��>��
�&Z����@��-&:'��>��
�&Z����@��6&:(��>��
�&Z����@��}&:,��>��
�&Z����@��6&:-��>���&Z��@�!�(R�EX�/�
>Y�EX�	/�	
>Y�EX�%/�%>Y�+�%��%��013326533267#"&54>7.5@�,./.�>>$
";0Cjh��`;>>;��o^w
	J1-&�v>�.!�(��EX�/�>Y�EX�'/�'>Y�EX�/�>Y�EX�
/�
>Y�EX�/�>Y�
���к9��#��&�01!3267#"&54>7'##"&5332673
2&
:-=
!P6UL�*+�/B.-%I&-l^2��2.!F��T6&<%��T�&\���H6&>%���>;�&^���HH&>*��8#6&?$��F�&_���8#W&?)��F�&_���8#6&?.��F�&_���)�
)��EX�/�>Y�EX�#/�#>Y�EX�/�>Y�EX�/�>Y�"+�9�������9��
�"�!и"�&и�'�01732654#"'>32#"&'###57533#�-)8[/-I$.K3$<M*#EsBB����@H|.m"?Y7>`B#" 6,AKJG/:��0�"C�EX�
/�

>Y�EX�/�>Y�+���
��013267>32#".547!.#"�5*'7	��"[?7[B$%B]88\B$`;6#2KKLKG )-W}PP~W.-V}OSU.��&�+B�EX�&/�&
>Y�+�	+�&��	�и� �01.#"3##"&'7>?#5737>32
&'s-G6!2
WK2I4
+#7k�-N:!	l 6+�e+7N2&��S,G�EX�$/�$
>Y�EX�/�>Y��$��$9��&�01%2654&#"#".54>32>54&',3<<33<<=>0$)&Ea::aE&&Ea:B8 
sscbnnbcs�)3<+RP~X//X~PP}U-	/��I~-G�EX�$/�$>Y�EX�/�>Y��$��$9��'�01%2654&#"#".54>32>54&',33333332<."(*G[11[G**G[15$
kLAALLAAL)3:!_=>aB##Ba>>aB#@���$"J�EX�/�
>Y�EX�/�
>Y�EX�/�>Y�����01#"&5332653>54&'w!.swxv�,//-F
$)+��������`;>>;�
	>��n�#a�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�
/�
>Y�	
9��	��01#'##"&5332673>54&'Q8)x!P6UL�*+1
�)19�>G&-l^2��2.!F
��	O6&&.��=���&F���J6&..��O��&��-��&��26&4.��/��)�&T���@��6&:.��>��
�&Z����@���&:1��>��
9&Z0���@���&:3��>��
P&Z2���@���&:5��>��
P&Z4���@���&:7��>��
P&Z6���,��#6&,.��4�-<�&L�&�!2�&2K�EX�/�
>Y�EX�	/�	>Y�#+�	�и	�'��-�01#"&5467.54>323267'2654&#"�;0C(<Y;&Ea::aE&.@'& 
`3<<33<<�1-'<;\uAP}U--V}OCiQ85	�scbnnbcs/�.)�&2\�EX�
/�
>Y�EX�/�>Y�EX�$/�$>Y��и$���*�
�0�01467.54>323267#"&32654&#"�%-Q<$*F[21\F*.@'$
:-=33333333w&8(BZ9>aB##Ba>2L<-.B.�ALLAALL��2�'�&8�
��5��&X����9�&9���1�&t&Y�D*�<��5�EX�/�>Y�EX�/�>Y����01!#"&'73265#OZ5YC.K +15'��.-R>%i
36e	0�,c�EX�$/�$
>Y�EX�/�>Y��иии
и$��
9�� и�"и!�01%2654&+3#3254&++5#5732)<>==Bjj5g336�FH'C\5�KK�3W?$49i644/@GF$Q$ �OE4K1�A�%<,)JH��"�)v�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�/���9��!��$��%�013267#"&533>324&#">"$O|X33$I*43u@hxx&Z0%=*�% !:7H*g*?-"&a&nr8')6+R/���#�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y��9���9����
�01732675.#"4>32373#'##".�2.*));�$;N*&CsxK$/M7�JD�DH=`C$!3�3$$C`H��)�"��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y���9���9����	�01%4#"3267#"&'##33>32�^+,):�$<N*"FsxN+.J3���DRAdE$" 6�3$$A\4���5�EX�/�>Y�EX�/�>Y����01%#"&'732654&#"'>32,Kg:5i+<=%AQI< :D h?9cK+�>aB##&]LAAL[&#Ba6��!�#C�EX�/�>Y�EX�/�>Y�+���� �01%#"&'73267!.54>32.#"!+Jd:2h*0!="7N�� >[;0ZD)�	7*25�>`C#X18	$3W@$$C`0.4*7��"�#C�EX�/�>Y�EX�/�>Y�#+���� �017467!.#"'>32#".732677O
A6"B1+g2;aE&)F]3:X<�12+;�$	61\$C`=<aC$$AX+5-3/�<� /��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�
/�
>Y���9�9�
�!��$��%��(�01326?#".54>32373#"&'2675.#"#M79I#/M7#;N+N9s��*j,�+*$6,/#@$AY69]A$?3� eo�!0>B<�H�a�EX�
/�
>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�
9����01#57#"&5332673�S8TM� )-���_-l^2��2.K ��9� ��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�	9���	������01!#'##"&'#"&533273326739n1, -	5*4:�q�>+)(!0UK\��.0O��.O4����T�EX�/�>Y�EX�/�>Y�EX�/�>Y�9��
���01!#'##"&'732673�x%h<!)%.Y �l<<

|6C2�|'�A�EX�/�>Y�EX�/�>Y��и�и�
�01%3##5#5354&#"'>32�}�y��260!Q0;R3ss��s�9/
j
9Q19�
@�EX�/�>Y�EX�/�>Y�EX�
/�
>Y�901!#'.'##39�NN����&L''L&��T�!i�/�EX�/�>Y�EX� /� >Y�EX�/�>Y�EX�/�>Y� 9�9�901!#'.'##'.'##33>?3T�
g!�M�	��%H&&J#��%H&&H%��#G(D3�9�R�EX�/�>Y�EX�/�>Y�EX�/�>Y���
9�
��01&#"#'.'##>32�).גS
I��)5E.$O(-��#K'%K%�	.H1p�H�c�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�	9�	��01###73753����˟�J��}��$�H{���:�/�/�EX�/�>Y�+�9���013>32#54&#"#�h5$92hh�p<H>˾�����4�EX�/�	>Y�+����ܸ�013#"&'7326=#7"&54632��$<.0"~�&&''M��7)
I	#�~!##!��U6�/�EX�/�	>Y�
+�9���0133>32.#"#�V@#5hMH)'V",�S�M!Z�/�EX�/�	>Y�EX�
/�
	>Y�EX�/�	>Y���и
��� �0133>?33>?3#'.'##SfG^1xwM�02dd00���f/,#f���MA�EX�/�	>Y�EX�	/�		>Y�+�9���017326?33>?3#"&'7��h/(ct".�?�./��� 0N���"������"�������
�
+�+012654&#56'�2$$2QNNQ2&&6E88E��p�
�+�
+01"3&546p2%%2QNNQ�&&6E88E���>������>����yx��+013#�Z����P������>������>~���xb�+01#3x�Z��k���>������9������$������.�����?������=������(�EX�/�>Y�+���0133267#"&=#��
%D<D��PK?����U)+�&+�+�&9�90132654&'.54632.#"#"&'�50'!PF+D/,-)!RN*Sk
	.:=
!->|�MK�/�/�EX�/�	>Y�EX�/�	>Y�9��и�
и�01'33>?3#'&'##�holioo"l��33��33�>~��+013#��Yk��>���+01#73EkY�>��>���+��ܸ�013#'##�|dk55k�__�?��'�+��ܹ�и��01>3232673#".#"#�	>.K	>.
K?IFHG�P��
�+01!!����]�>���	+�	�ܸ�01".'332673,%7$RR$7>+9 ++ 9+�9��
�+01"&54632,+77++7790))33))0p;���+��и��01"&546323"&54632�#,,##++�#++##,,;-"!--!"--"!--!"-�-���+��ܹ�01>54&'7�$+\L&3g
J1(%
�$���+��ܸ�01"&54632'2654&#",3>>33>>3$7//77//77�=��+��и��013#73#�u_Z�u_[ԗ���>���+��ܸ�013373#�k55kd|�``�E=���+��и��01#'3#'3�Z_uf[_u=���� a��
+���01632#"5467a8 B03�'S*C�m��
+���0167#"&54632�8B03J'S*C"��~�+���01>54&'7"%
e.>#� ,)!0����
�+01"&54632,+77++77�0))33))0��(���+��и��01"&546323"&54632�''''�''''�())(())(�����+��	ܹ�01'>54&'7D50@$$/*'&%
;6�#��+��иܹ
�01%3'>54&'V 0@$$/"/#%
;
�.��EX�/�>Y�+014>733267#"&�
S6
:-=w&*-B.��.���
�	+01".'332673,#3"RR"3�&3""3&��C���
�+01!5!����^���U"9�/�+�+� +�9���01467&#"'>32#'##"&732675�\g5.%!L(AJU309d6)_5:
+CIN�!:25����T�/�EX�/�>Y�+�+�9�9�����013>32#"'##732654#"�h/?G(30)	Qh

#8�p1\K*C-+#_*2U����!T�
/�EX�
/�
>Y�+�+�9�9�����014>32'53#'##"&732675.#"�(3%gT0@Lk
$�(A,1o�2 [R/*�	*���U"!�+�+�
+014>32#327#".74&#"�/; &9%�2"&'#D&@0� '�(@-+:!#=,@L! �z�UBNd�EX�#/�#	>Y�>+�!I+�8	+�C.+�	89��
и.�1ии#�&�01732654&+"&'475.54675.54>323##"&';2#".72654&#"�,%&1(	U4'4�A&2

<BGl\ 8(��	
 '!
+-K*
	
&-5B	 ����S�/�/�EX�/�>Y�EX�/�	>Y�
9�
��	9�	��013373#'#�hrq|�pQ-h��}��},Qs�UT�/�/�/�EX�/�	>Y�+�+�9����0133>32>32#54#"#54#"#sN
 .$#'cPbM)6 :1��������U�+�+014>32#".732654&#"�/<!!<//<!!</j    �)@--@))@,,@))11)*00���UT�/�EX�/�	>Y�	+�+�	9�	9�����01%#33>32#"&'732654#"hU3?F(3'

#8�_� \K*C-E*2U����I�EX�/�	>Y�EX�/�
>Y�
+����и�	�01#5?33#327#".5�EJ
W�� #3(8"�MVVQn$J&5!���MA�EX�/�	>Y�EX�/�	>Y�+�9���01#'##"&=3326753�U5#92hh-H=̿
�v�M
3�/�EX�
/�
	>Y�EX�/�	>Y���0133>?3#vh0
0cuxM�22������U�+�+014>32&#"3267#".�3C%"50'//$ )@&@0�)@-@0*)1	A,@���8�
/�EX�/�	>Y�+����01.#"3##5#5754>32�#<oogJJ%9'3}3	Q��M	0$��M	4�	/�EX�/�	>Y�	����017#5!3!���#����;�Q7�Q��A�,�&)����/��&I�	��A�C,�&)����/�C�&I�	��,��#-&,'��4�-<�&L���@��&-���H��&M���@�.�&-���H�.�&M���k� �&1� ��>� �&Q�>��7� -&1&'�� ��>� �&Q'�����>��k�C �&1� ��>�C �&Q�>��A��&2���$�=�&R���BW&3)��H�&S���B��&3���H��&S���B�C�&3���H�C�&S���F�H�&7���j�$�&W����F�H-&7&'���j�$�&W&�'����F�CH�&7���B�C$�&W����2��'W&8)��5���&X���2�'�&8�
��5��&X����9�&9���1�&t&Y�D���C9�&9���1�C&t&Y�D��T6&<#��T�&\���T6&<$��T�&\���TH&<*��T�&\���HW&>)���>;�&^���8�#�&?�
��F��&_���1��&d&Y����@��5�*h�EX�/�
>Y�EX�)/�)>Y�EX�/�>Y�! +�	! 9����%�%9014>32#"&'732654&/7.#"#@:[@WqH*!+@+8LL33
K%-(��.Q<#eRz +9%(F3&Y( 3V}$=>�Z��H6&>#���>;�&^����H�&>����H�&^����Hv&>+���>;�&^���HG&>&���>;�&^�P�6
�+01!!P��H6o�D6
�+01!!0��6o�"���+01632#"&5467�57
(36*8=WXkD01*.7TLR}(�"���
+0167#"&54632�i	)36*9<VXp/\2*.7UKR}(����������4"�'�|����F"$�'�|����F�$�'�|�������e���
+01%".54>32,#<,,<##<,,<e,:#";,,;"#:,����+01757��>>���7��7����+01%'7'?>��>��7���7Gp�+01?'7�3��3�e�/��0�����������*�/�EX�/�	>Y���ܸ�013#5#7"&54632��h}�&&''M���~!##!����������������������������������������� ����_�\!����_�\"���U:�/�/�EX�/�	>Y�+�9���0133>32#54&#"#�U5%83hhM*H>˾�����K���W���W���W����W���W����K���W����W���W����K���W����K���W����W���W����K���W����K�� �W������!�W������"�W���U!!�+�+�+014673.#"'>32#".73267��)!&#@ L]-; &9&X %�#?\Q(?-+:
! O��3�
4��EX�$/�$>Y�EX�/�>Y�й���$��и�и�
и�и�ܸи�и$�!и$�#ܸ�(�#�)и(�+и�1и�2и2/01%&+#7&'#7.54>?33273&'672	24&($-&Z62
2KY"?X722
2Q02%v�eKf7R).cciy �vFqT4	gbdq
O�h	+C&�1}�EX�/�>Y�EX�/�>Y�
+�$'+���
�и/�'�
и$�и/���
�*и�,�01%!5>7#573.'#57&54>32.#"3#3#&�-?pO[C"<T2>Y#O,07����||[A,EE/L5*'P.0
KJ)<{+��EX�#/�#>Y�EX�'/�'>Y�EX�/�>Y�EX�/�>Y�+�&+����к	#9��
и&�и#���и�и�и�и�и�и/��и&�!и!/�&�)�01#3#3'3'#'3'#3##'##5#575#57533533�;/!*�;/!*GEE�YKjFFFF�YKjEV0:�0:~�0:����404����:;{!c�EX�/�>Y�EX�/�>Y�+�+����
и�и�и� �01267#53.##+##575323,6��
6,5=+?P,,�DD�,P?*>3&#I�H&"�+>)�|U�'?-[2�-V�EX�/�>Y�"+����
�"�ܸ'и�-�)и-�,�017!!.#"3267#'##"&54>32'5#5353h��]	"2*##�Hd	;#N]2? %/��yJJh+&0,aD�n$b\*B/CJ11-��G�1m�EX�/�>Y�EX�/�>Y�($+�(�+�и(�и$�и$�!�и���.�01%#".'#57&45<7#57>32.#"3!3#3267G)d=3XG2@77@�l3_%Q4 3B�����B1#6P-/9U8EDpz(&O>9JK7:;{
5��EX�./�.>Y�EX�$/�$>Y�	"+�.��й�ܹ��и�и�и�&и�)и�*и�-и�4�016454&'#27#53&##3#+##575#575323w�">~}@5;;F.<H',�CCCC�(H;-G�
-a''�$$^
:"1 �Z4.4�1#C���&S�EX�/�>Y�EX�/�>Y�&+��и�и���"�013#5.54>753.#"3275#K�I)b2S<"!<S3b*KQ4 BFJA"Lj��$ff1QqGEoT5
he(Pqehl
zO��3�${�EX�/�>Y�EX�/�>Y�EX�
/�
>Y�EX�
/�
>Y���
��
�ܸ�ܸ�!и�"�01#5.54>753.'67C012/�!O/Q5ZA$#@Z7Q*NQ"+#jTUj$-ed0RrJGrT4][' O
�Z
(X{p�EX�/�>Y�EX�/�>Y�EX�/�>Y���иии��и�й
�
и
/01#3##'#5327#573.+5!�%LJI6���VJt�Q�
E8J�12J@Q��uGDu$��'{#]�EX�/�>Y�EX�/�>Y��9��"ии�иии�и�01%>54&'7'55755753779,y;o�dUUUU�����}", DiE"�)Q)7)Q)�~MQM7MQM�F~
�+01!!F�4~h��Gp�����D(�EX�/�>Y�
+���01".54>32'2654&#", 6((6  6((6 ,?''=++=''?,O(33$$33(��8
�EX�
/�
>Y�+01%#5>73#QSk�@����D,�EX�/�>Y�+����017>54&#"'>323!�5'>@)<F2\��7(% 
#8$:3#@W����D*:�EX�'/�'>Y�+�
	+�'��	
901732654&#52654&#"'>32#"&'�-#& "*D)+ #$1F#`7	>
!!
&%��88�EX�	/�	>Y�+�
+��и�
�01%57###5#5733A"!�3^�x�3c>;B==3ȹ����8 D�EX�/�>Y�+�	+���	9��
�01732654&#"'73#>32#"&'�++Յ2;$1"D#`�X#3.(����D	&F�EX�/�>Y�#
+�+���#9���01%2654#"7.#">32#"&54>323&d
&"'.6!.HN)=) 6C�."0.)]J"=.��8&�EX�/�>Y�+��	�013>7#5!#�
 �#	p"854W8 ;<B'����D6<�EX�4/�4>Y�#+�4��49�#901%32654&'7654&#"4675.54>32#"&5
&"-6H
	#1<JW
`
z"!
1*!5����D	'F�EX�$/�$>Y�+�+�$9���$�
�01%3267.#"3267#"&54>32#"&'%#3
&!!.-6!.#8'*=(!6�
�-!//),>%!=/����
�+017467.�93O)**)O39�Ow800g78g008w����
�+01%'>54&'7�93O)**)O39�Pw800g87g008w��w6�+013#��Qu6x���6�+01#73VuQ��x���6�+��ܸ�0173#'#�`�`q55�xx==���G+�+��ܸ�и���01".#"#>3232673k"
K<'"
K<�ECEC���-
�+01!!���-]���6
�+��ܸ
�01"&'332673,BAQQA�B66B���W
�+01"&54632,%00%%00�+""++""+���H�+��и��01"&546323"&54632�''''�''''�((((((((���v�+��ܹ�01>54&'7�$+\L&3�I1(%���}�+��ܸ�01"&54632'2654&#",3>>33>>3�5--55--57��6�+��и��017373#�?}Y�}Zc�xxxx���6�+��ܸ�01#'337�`�`q556xx==�#��+��иܹ
�01%3'>54&'V!1@##/"/#%
;
�;�9+�+��и�и�ܹ�01"&546323"&54632%!!�####�####����;#$$##$$#�E����+�
+�
�ܹ��и
��01!!"&546323"&54632���*####�####�E�$##$$##$�;�P%�+�
+��и
��013#"&546323"&54632;~s^####�####Po�#$$##$$#����)�
+�
�ܸܸ�и
��013#"&546323"&546322�vu####�####�x�$##$$##$�;�P+�+��ܹ��и��013373#"&546323"&54632�d..dV|%####�####P::o�#$$##$$#����+�+��и�и�ܹ�01"&546323"&54632#'337�####�####*`�`q55�$##$$##$xx<<�;�P)�
+�
�ܸܸ�и
��01#'3"&54632#"&54632p^s~r####�####�o��#$$##$$#����)�
+�
�ܸܸ�и
��01#'3"&54632#"&54632wuv�i####�####Vx��$##$$##$�$[
�+01'3^$�E��!���+��	ܹ�01.54>7OC61@$$/+!'&&;
6>.e#�A�`��	��
�'�$9�	,	E	u	F�	(�	�/	$�	�.	4Q		�	2�	
#�	H9�Typographic alternatesTypographic alternatesSource Code ProSource Code ProBoldBold1.017;ADBE;SourceCodePro-Bold;ADOBE1.017;ADBE;SourceCodePro-Bold;ADOBESource Code Pro BoldSource Code Pro BoldVersion 1.017;PS Version 1.000;hotconv 1.0.70;makeotf.lib2.5.5900Version 1.017;PS Version 1.000;hotconv 1.0.70;makeotf.lib2.5.5900SourceCodePro-BoldSourceCodePro-BoldSource is a trademark of Adobe Systems Incorporated in the United States and/or other countries.Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.Adobe Systems IncorporatedAdobe Systems IncorporatedPaul D. HuntPaul D. Hunthttp://www.adobe.com/typehttp://www.adobe.com/typeCopyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.



This Font Software is licensed under the SIL Open Font License, Version 1.1.



This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL



-----------------------------------------------------------

SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007

-----------------------------------------------------------



PREAMBLE

The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.



The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.



DEFINITIONS

"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.



"Reserved Font Name" refers to any names specified as such after the copyright statement(s).



"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).



"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.



"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.



PERMISSION & CONDITIONS

Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:



1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.



2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.



3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.



4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.



5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.



TERMINATION

This license becomes null and void if any of the above conditions are not met.



DISCLAIMER

THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.

This Font Software is licensed under the SIL Open Font License, Version 1.1.

This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL

-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.

The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the copyright statement(s).

"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.

"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.

5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
http://www.adobe.com/type/legal.htmlhttp://www.adobe.com/type/legal.html��2:	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a��������������������	����������bc�d�e�������f����g�����h���jikmln�oqprsutvw�xzy{}|��~�����

��� !"��#$%&'()*+,-./012��3456789:;<=>?��@ABCDEFGHIJKL��MNOPQRSTUVWX��YZ[\]^_`abcdefghijkl�mnop��qrstuvwxyz{|}~����������������������������������������������������������������������������������������������������������������������������������������	

������������ !"#$%&'()*+,-./01234�56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXNULLCRuni00A0uni00ADtwo.sups
three.supsuni00B5one.supsAmacronamacronAbreveabreveAogonekaogonekCcircumflexccircumflex
Cdotaccent
cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve
Edotaccent
edotaccentEogonekeogonekEcaronecaronGcircumflexgcircumflex
Gdotaccent
gdotaccentuni0122uni0123HcircumflexhcircumflexHbarhbarItildeitildeImacronimacronuni012Cuni012DIogonekiogonekJcircumflexjcircumflexuni0136uni0137kgreenlandicLacutelacuteuni013Buni013CLcaronlcaronLdotldotNacutenacuteuni0145uni0146NcaronncaronnapostropheOmacronomacronuni014Euni014F
Ohungarumlaut
ohungarumlautRacuteracuteuni0156uni0157RcaronrcaronSacutesacuteScircumflexscircumflexuni015Euni015Funi0162uni0163TcarontcaronUtildeutildeUmacronumacronUbreveubreveUringuring
Uhungarumlaut
uhungarumlautUogonekuogonekWcircumflexwcircumflexYcircumflexycircumflexZacutezacute
Zdotaccent
zdotaccentuni0180uni018Funi0192OhornohornUhornuhornuni01CDuni01CEuni01CFuni01D0uni01D1uni01D2uni01D3uni01D4uni01D5uni01D6uni01D7uni01D8uni01D9uni01DAuni01DBuni01DCGcarongcaronuni01EAuni01EBuni0218uni0219uni021Auni021Buni0237uni0243uni0250uni0251uni0252uni0254uni0258uni0259uni0261uni0265uni026Funi0279uni0287uni028Cuni028Duni028Euni029Eh.supsj.supsr.supsw.supsy.supsuni02BBuni02BCuni02BEuni02BFuni02C8uni02C9uni02CAuni02CBuni02CCl.supss.supsx.supsuni0300uni0301uni0302uni0303uni0304uni0306uni0307uni0308uni0309uni030Auni030Buni030Cuni030Funi0312uni0313uni031Buni0323uni0324uni0326uni0327uni0328uni032Euni0331a.supsb.supsd.supse.supsg.supsk.supsm.supso.supsp.supst.supsu.supsv.supsc.supsf.supsz.supsuni1E0Cuni1E0Duni1E0Euni1E0Funi1E20uni1E21uni1E24uni1E25uni1E2Auni1E2Buni1E36uni1E37uni1E38uni1E39uni1E3Auni1E3Buni1E42uni1E43uni1E44uni1E45uni1E46uni1E47uni1E48uni1E49uni1E5Auni1E5Buni1E5Cuni1E5Duni1E5Euni1E5Funi1E60uni1E61uni1E62uni1E63uni1E6Cuni1E6Duni1E6Euni1E6FWgravewgraveWacutewacute	Wdieresis	wdieresisuni1E8Euni1E8Funi1E92uni1E93uni1E97uni1E9EYgraveygraveuni1EF4uni1EF5uni1EF6uni1EF7uni1EF8uni1EF9	zero.supsi.sups	four.sups	five.supssix.sups
seven.sups
eight.sups	nine.supsparenleft.supsparenright.supsn.sups	zero.subsone.substwo.subs
three.subs	four.subs	five.subssix.subs
seven.subs
eight.subs	nine.subsparenleft.subsparenright.subsuni0259.sups
colonmonetarylirauni20A6pesetadongEurouni20B1uni20B2uni20B5uni20B9uni20BAuni2215	zero.dnomone.dnomtwo.dnom
three.dnom	four.dnom	five.dnomsix.dnom
seven.dnom
eight.dnom	nine.dnomparenleft.dnomparenright.dnomuni0300.capuni0301.capuni0302.capuni0303.capuni0304.capuni0306.capuni0307.capuni0308.capuni0309.capuni030A.capuni030B.capuni030C.capuni0327.capuni03080304uni03080304.capuni03080301uni03080301.capuni0308030Cuni0308030C.capuni03080300uni03080300.cap	uni030C.a	uni0326.a���m�U��w��lib64/ruby/2.2.0/rdoc/generator/template/darkfish/fonts/Lato-Regular.ttf000064400000273670150402106120021603 0ustar00 DSIGw�GPOS��,K�GSUBV.TL�OS/2ٮ�iM�`cmapRԟ�NP�cvt '��m`8fpgm�zAm�	�gaspmXglyf*~ʙS8�Bhead��e��|6hhea���$hmtx[�`���TkernlBjT�,l�loca�.�V,maxp<
�X< name�$�X\^post:�]i��prep�x9�w,�
0JDFLTlatn����kernkernJnv�$R�
�^�	h
B
l�&��rj����Z���j��L��*|�DV�:�� �!.!�##L#�$4$~%�&J'$'�(�)�*�+f+�,6,�-�.(.�/t/�/�0:0|2"2�33T3�3�4&4l4�55b5�66L6�6�7B7�7�888�9d9�9�:&:�:�;@<�=�>j?,?�@hA�B�CzD�E�F�G*G�HfI�K	�J��N��J#��$�J&��*��2��4��90:0<?0D��F��G��H��R��T��m�No�Ny�N}�N��J��J��J��J��J��J��J��������������������������������������������������������������������������������J��������������N�N���N�N�N��JK	�J��N��J#��$�J&��*��2��4��90:0<?0D��F��G��H��R��T��m�No�Ny�N}�N��J��J��J��J��J��J��J��������������������������������������������������������������������������������J��������������N�N���N�N�N��J"#��&��*��2��4��F��G��H��R��T���������������������������������������������������������������������K	�J��N��J#��$�J&��*��2��4��90:0<?0D��F��G��H��R��T��m�No�Ny�N}�N��J��J��J��J��J��J��J��������������������������������������������������������������������������������J��������������N�N���N�N�N��J-�
�
��x#��&��*��2��4��7�L9�L:��<�h?�LY�|Z��\�|l�m�xo�xr�y�x|�}�x�����������������������h�����h�x�x�����x�x�x��'�N	��
�N
�N�x�x��$��7�L9��:��;��<�`=��?��l�Nr�N|�N�����������������������`���`�������N�N�x�N�N�x��N���-�
�
��x#��&��*��2��4��7�L9�L:��<�h?�LY�|Z��\�|l�m�xo�xr�y�x|�}�x�����������������������h�����h�x�x�����x�x�x��k0	�x
0
0�@���@�x����"0#��$�x&��*��-�h2��4��D��F��G��H��I��J�xP��Q��R��S��T��U��V��W��X��Y��[��\��]��l0m��o��r0t:u:w��y��{:|0}����x��x��x��x��x��x��x����������������������������������������������������������������������������������������������x�����������������0�0�@�0�0�@����0��x)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������6�J
�J
�J��"��#��&��*��-22��4��7�|8��9�x:��<�\?�xY��\��l�Jm��o��r�Jt�Hu�Hy��{�H|�J}�������������������������������������\�����\�����J�J�J�J��������J
�jm�jo�jy�j}�j�j�j�j�j�j)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������4	�|�L�L�|����"$�|-�:F��G��H��P��Q��R��S��T��U��X��w����|��|��|��|��|��|��|����������������������������������������������������|���������L�L��|	��������$��������������������������������1��#��&��*��2��4��F��G��H��I��R��T��W��Y��Z��\��m��o��y��}�������������������������������������������������������������������������������I��
��
��6�:6"��#��&��*��2��4��7�T9�J:�h<�,?�JF��G��H��R��T��Y��Z��\��l��m�:o�:r��t�6u�6y�:{�6|��}�:�����������������������,�����������������������������������������������,�:�:�����6�����6�:�:�:���)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������.	�v���v$�v-�JD��F��G��H��R��T����v��v��v��v��v��v��v����������������������������������������������������������v������������v)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������#��&��*��2��4��7��8���������������������������������������[	�|�L�L�L�|�`�`#��$�|&��*��-�82��4��D�F�.G�.H�.J�DP�`Q�`R�.S�`T�.U�`V�^X�`Y�LZ�t[�p\�L]��m�Lo�Lw�`y�L}�L��|��|��|��|��|��|��|�������������������������������������.��.��.��.��.��.��`��.��.��.��.��.��.��`��`��`��`�|����.�.�`���.�L�L�L�L�L�L�L��|	��������$��������������������������������k0	�x
0
0�@���@�x����"0#��$�x&��*��-�h2��4��D��F��G��H��I��J�xP��Q��R��S��T��U��V��W��X��Y��[��\��]��l0m��o��r0t:u:w��y��{:|0}����x��x��x��x��x��x��x����������������������������������������������������������������������������������������������x�����������������0�0�@�0�0�@����0��xI0	��
0
0��������""$��-��D��F��G��H��J��R��T��V��l0m��o��r0t0u0y��{0|0}�����������������������������������������������������������������������������������������������0�0��0�0��������0���1��#��&��*��2��4��F��G��H��I��R��T��W��Y��Z��\��m��o��y��}�������������������������������������������������������������������������������i	�\

�h�`�h�\����""#��$�\&��*��-�82��4��D��F�`G�`H�`J�TP��Q��R�`S��T�`U��V��X��Y��Z��[�|\��lm�`o�`rt2u2w��y�`{2|}�`��\��\��\��\��\��\��\��������������������������������������������`��`��`��`��`��`�����`��`��`��`��`��`�������������\�����`�`�����`�`�`���h���h�`�`�`���\0��""#��&��*��2��4��F��G��H��R��T��V��Y��\��m��o��y��}��������������������������������������������������������������������������"#��&��*��2��4��F��G��H��R��T���������������������������������������������������������������������6�J
�J
�J��"��#��&��*��-22��4��7�|8��9�x:��<�\?�xY��\��l�Jm��o��r�Jt�Hu�Hy��{�H|�J}�������������������������������������\�����\�����J�J�J�J��������J��
��
��Y��Z��\��l��r��t��u��{��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|���������D
D
D�~�~lDrDtdud{d|D�D�D�~�D�D�~�D��
��
��Y��Z��\��l��r��t��u��{��|���������F��G��H��R��T����������������������������������������������
��
��Y��Z��\��l��r��t��u��{��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|���������
�|�|D��������������������������|�|$	���|�|��$��F��G��H��R��T��������������������������������������������������������������������|�|�����������F��G��H��R��T��������������������������������������������$	���|�|��$��F��G��H��R��T��������������������������������������������������������������������|�|���"#��&��*��2��4��F��G��H��R��T���������������������������������������������������������������������K	�J��N��J#��$�J&��*��2��4��90:0<?0D��F��G��H��R��T��m�No�Ny�N}�N��J��J��J��J��J��J��J��������������������������������������������������������������������������������J��������������N�N���N�N�N��J'�N	��
�N
�N�x�x��$��7�L9��:��;��<�`=��?��l�Nr�N|�N�����������������������`���`�������N�N�x�N�N�x��N���'�N	��
�N
�N�x�x��$��7�L9��:��;��<�`=��?��l�Nr�N|�N�����������������������`���`�������N�N�x�N�N�x��N���)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������K	�J��N��J#��$�J&��*��2��4��90:0<?0D��F��G��H��R��T��m�No�Ny�N}�N��J��J��J��J��J��J��J��������������������������������������������������������������������������������J��������������N�N���N�N�N��J	�H�H$�H9:::<(?:��H��H��H��H��H��H��H�(�H�(��H	�H�H$�H9:::<(?:��H��H��H��H��H��H��H�(�H�(��H'�N	��
�N
�N�x�x��$��7�L9��:��;��<�`=��?��l�Nr�N|�N�����������������������`���`�������N�N�x�N�N�x��N���	�H�H$�H9:::<(?:��H��H��H��H��H��H��H�(�H�(��HK	�J��N��J#��$�J&��*��2��4��90:0<?0D��F��G��H��R��T��m�No�Ny�N}�N��J��J��J��J��J��J��J��������������������������������������������������������������������������������J��������������N�N���N�N�N��J'�N	��
�N
�N�x�x��$��7�L9��:��;��<�`=��?��l�Nr�N|�N�����������������������`���`�������N�N�x�N�N�x��N���6�J
�J
�J��"��#��&��*��-22��4��7�|8��9�x:��<�\?�xY��\��l�Jm��o��r�Jt�Hu�Hy��{�H|�J}�������������������������������������\�����\�����J�J�J�J��������J6�J
�J
�J��"��#��&��*��-22��4��7�|8��9�x:��<�\?�xY��\��l�Jm��o��r�Jt�Hu�Hy��{�H|�J}�������������������������������������\�����\�����J�J�J�J��������J6�J
�J
�J��"��#��&��*��-22��4��7�|8��9�x:��<�\?�xY��\��l�Jm��o��r�Jt�Hu�Hy��{�H|�J}�������������������������������������\�����\�����J�J�J�J��������J6�J
�J
�J��"��#��&��*��-22��4��7�|8��9�x:��<�\?�xY��\��l�Jm��o��r�Jt�Hu�Hy��{�H|�J}�������������������������������������\�����\�����J�J�J�J��������J6�J
�J
�J��"��#��&��*��-22��4��7�|8��9�x:��<�\?�xY��\��l�Jm��o��r�Jt�Hu�Hy��{�H|�J}�������������������������������������\�����\�����J�J�J�J��������J6�J
�J
�J��"��#��&��*��-22��4��7�|8��9�x:��<�\?�xY��\��l�Jm��o��r�Jt�Hu�Hy��{�H|�J}�������������������������������������\�����\�����J�J�J�J��������J
�jm�jo�jy�j}�j�j�j�j�j�j)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|������������������������������������������������������	��������$��������������������������������	��������$��������������������������������	��������$��������������������������������	��������$��������������������������������i	�\

�h�`�h�\����""#��$�\&��*��-�82��4��D��F�`G�`H�`J�TP��Q��R�`S��T�`U��V��X��Y��Z��[�|\��lm�`o�`rt2u2w��y�`{2|}�`��\��\��\��\��\��\��\��������������������������������������������`��`��`��`��`��`�����`��`��`��`��`��`�������������\�����`�`�����`�`�`���h���h�`�`�`���\)��	��
����
��������$��7��9��;��<��=��?��@��`��l��r��|��������������������������������������������������������
��
��Y��Z��\��l��r��t��u��{��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
��
��Y��Z��\��l��r��t��u��{��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|���������6�J
�J
�J��"��#��&��*��-22��4��7�|8��9�x:��<�\?�xY��\��l�Jm��o��r�Jt�Hu�Hy��{�H|�J}�������������������������������������\�����\�����J�J�J�J��������J��
��
��Y��Z��\��l��r��t��u��{��|���������
�jm�jo�jy�j}�j�j�j�j�j�j��
����
��9��:��?��@��Y��[��\��`��l��r��|��������� �t
�t
�t��9�^:��<�h?�^Y��\��l�tm��o��r�tt�|u�|y��{�||�t}����h�h���t�t�t�t�����t��
��
��Y��Z��\��l��r��t��u��{��|�����������
����
��9��:��?��@��Y��[��\��`��l��r��|���������i	�\

�h�`�h�\����""#��$�\&��*��-�82��4��D��F�`G�`H�`J�TP��Q��R�`S��T�`U��V��X��Y��Z��[�|\��lm�`o�`rt2u2w��y�`{2|}�`��\��\��\��\��\��\��\��������������������������������������������`��`��`��`��`��`�����`��`��`��`��`��`�������������\�����`�`�����`�`�`���h���h�`�`�`���\0��""#��&��*��2��4��F��G��H��R��T��V��Y��\��m��o��y��}��������������������������������������������������������������������������0��""#��&��*��2��4��F��G��H��R��T��V��Y��\��m��o��y��}��������������������������������������������������������������������������0��""#��&��*��2��4��F��G��H��R��T��V��Y��\��m��o��y��}��������������������������������������������������������������������������'�N	��
�N
�N�x�x��$��7�L9��:��;��<�`=��?��l�Nr�N|�N�����������������������`���`�������N�N�x�N�N�x��N���'�N	��
�N
�N�x�x��$��7�L9��:��;��<�`=��?��l�Nr�N|�N�����������������������`���`�������N�N�x�N�N�x��N���K	�J��N��J#��$�J&��*��2��4��90:0<?0D��F��G��H��R��T��m�No�Ny�N}�N��J��J��J��J��J��J��J��������������������������������������������������������������������������������J��������������N�N���N�N�N��JK	�J��N��J#��$�J&��*��2��4��90:0<?0D��F��G��H��R��T��m�No�Ny�N}�N��J��J��J��J��J��J��J��������������������������������������������������������������������������������J��������������N�N���N�N�N��J-�
�
��x#��&��*��2��4��7�L9�L:��<�h?�LY�|Z��\�|l�m�xo�xr�y�x|�}�x�����������������������h�����h�x�x�����x�x�x��K	�J��N��J#��$�J&��*��2��4��90:0<?0D��F��G��H��R��T��m�No�Ny�N}�N��J��J��J��J��J��J��J��������������������������������������������������������������������������������J��������������N�N���N�N�N��JK	�J��N��J#��$�J&��*��2��4��90:0<?0D��F��G��H��R��T��m�No�Ny�N}�N��J��J��J��J��J��J��J��������������������������������������������������������������������������������J��������������N�N���N�N�N��J-�
�
��x#��&��*��2��4��7�L9�L:��<�h?�LY�|Z��\�|l�m�xo�xr�y�x|�}�x�����������������������h�����h�x�x�����x�x�x��'�N	��
�N
�N�x�x��$��7�L9��:��;��<�`=��?��l�Nr�N|�N�����������������������`���`�������N�N�x�N�N�x��N���'�N	��
�N
�N�x�x��$��7�L9��:��;��<�`=��?��l�Nr�N|�N�����������������������`���`�������N�N�x�N�N�x��N���'�N	��
�N
�N�x�x��$��7�L9��:��;��<�`=��?��l�Nr�N|�N�����������������������`���`�������N�N�x�N�N�x��N���K	�J��N��J#��$�J&��*��2��4��90:0<?0D��F��G��H��R��T��m�No�Ny�N}�N��J��J��J��J��J��J��J��������������������������������������������������������������������������������J��������������N�N���N�N�N��J6�J
�J
�J��"��#��&��*��-22��4��7�|8��9�x:��<�\?�xY��\��l�Jm��o��r�Jt�Hu�Hy��{�H|�J}�������������������������������������\�����\�����J�J�J�J��������Jv

#$&')-./2345789:;<=>?DEHIKNPQRSUYZ[\^lmoprtuy{|}��������������������������������������������������������������
8�DFLTlatn����case&case,liga2liga8sups>supsD,>B	

@LO,{tuCjqv�������I�xx�x���P`KtyPL@�J�z��� ��� �&
	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a���������������������������������rdei�x�pk�vj���sgw�����l|����cn���m}�b�������������������y���������������������q���z���`T@
~�1DS[a~�����    " & 0 : D �!"!&"""""""+"H"`"e%�&i���
 �1ARZ`x�����      & 0 9 D �!"!&"""""""+"H"`"d%�&i����������������{�u�q�[�H����$��������������I�����������������޸ޡޞ�:ڜ`T@
~�1DS[a~�����    " & 0 : D �!"!&"""""""+"H"`"e%�&i���
 �1ARZ`x�����      & 0 9 D �!"!&"""""""+"H"`"d%�&i����������������{�u�q�[�H����$��������������I�����������������޸ޡޞ�:ڜ-��%59=J@GBhf[[		QCQ
D=<($#*$
+>32#'&>54&#"#"'4632#"&!!7!!�9DO.?gI)-60#z-70 I9)8(c>0((0>���22c��u&#@[87P;+&%iu"3+(.:(3<��/@)(?��g6,����
!&@#QCSD

+#.54>32#".�	y	+!..""..!���-VW[44[WV-<��."".-""-����
,@)	BQD

$+#"&/!#"&/3���ޛ ## �"�ޛ ## �"6Q�>BH@E
Y	CQ
C
DBA@?>>86530/*(##!#!+#"&5467#+#"&546?3#7>;>;3323+32%3#TQ G�G-OU��A�
$'�H+PT�TO!I�
%&�A�	���A���Y"Z��%�9FJf"�Z���K��9�Fj�$g8CN~@J( I>)
?4BK�	PX@$hfSCSD@$hfSCSDY�#&#&+.'7>32.54>?>;#".'+4.'>�y�H50FaD%F�kA9m�h
Bi�<+):L1!H�pE<s�kB�%@V1"AeE#��"<P/A_=aKR&1.5U�aI�lE��
R:B!!�4R{\Z�xK��2H4&�-F]�0G6(�(<KH����'1EY�K�PX@'[	[SC		S
DK�"PX@+[	[SC
C		SD@/[	[CSC
C		SDYY@
VT((%#&((($
+#".54>324.#"32>>;+#".54>324.#"32>�4Wt?DsV00VsDCuU1�1A%%A00A%%A1�
���
�54Ws?DsV00VsDCtV0�1A%%A00A%%A1?T�[00[�TV�\00\�VB\;;\BA[99[w��
RT�[00[�TV�\00\�VB]::]BAZ99ZR��x�?K�@8IH+%BK�PX@*hSCS
CS
D@(hSCS
CSDY@FD/-(&" 	??+2#"&'.#">7>;#"&/#".54>7.54>3267�O�_7o
1E.2P9"6&�&-nFB,�$�^��P�yJ/SrD=:5d���0Nd4p�D�Yjk�3To<8. 9M-#@AE&�]C�Js�a���[j6g�]F}jTM�NI�_7��AcD#RD�9���3�
@	BQD

$+#"&/3��ޛ ## �"����
(+.54>7!nhOKiAAiKO
imu�m�0s���zy���t1��lJ����	(+4'&546?'.54676*mi
OKiAAiKOhnu���1t���yz���s0��`_��0J@-)($ BK�PX@QD@MQEY@
00+5467'767./7.=3>?'.'b!�,�$%#�,�#	X�,�!!�,�_�"cKdeKd %��)cKdeKd!'�d�"�,@)MYQE+!!#!5!���i��k���U��R���^��P�@?S
D$+74>32'&547>7#".^,/0G-

 
*{)'3-a_Z&
%0:!!-dR�@MQE+!!d���X��Q�@SD($+74>32#".X!..""..!n."".-""-����	@kD#"++>;�7KY
0!K#"� "<��L�'@SCSD((($+#".54>324.#"32>LQ��mn��PP��nm��Q�7]zBBz\77\zBBz]7̼��XX����XX��켤߈;;�ߤ�ވ;;����*@'BhCR
D&+%!47#"&/3!!4�
	8�����,-�
	Mq��h$�3;@8/BhSCQ
D,*$"
33+2>3!2!5467>54.#"#"&/>Y[�sB0Rk<��(R&�"�D�9^C$(F^66\G1
 ]P{��6g�^P�}u=�~
"l=(�:klo??_> 9N/b�f5l��.�JU@RF
Bhh[SCSDCA;910/.&$JJ	+2#".'763232>54.#5>54.#"#"&/>l[�o>#A\9��K��cr�pHL(DeKKqK&Q�p[�R%'D]66\G0 ]P{��4`�SDkQ8%��c�o;9d�P 		I@,1N`/:`F(�&B\8>\< 9O.b�f5(`�&@#B[C
D!#+3+#!"&/3467!�����������f��y[���< �;l����.@@=,+Bh[QCSD(#&(""+#!632#".'763232>54.#"'!�09�>Bp_p�t;P��m?tdV!63HaCKxU.'OvO6t>pt�K&1��Bt�]r��F*6L&0Y|MClL*!�l��2�.2@/B[CSD+)!	+2#".5467>;>32>54.#"�V�tDH��ml�|CT[k2 ��3|��(MoGHtS-,PpCHtQ+n9m�fc�~HE�p^�z���#'�LErR-.RpBFqO*1Smn<�@QC
D$'++>7!"&=<��
.'Z
��P",�S%�*y`��&�3GD@AB[SCSD54! ?=4G5G+) 3!3	+".5467.54>32'2>54.#"2>54.#"Ck��F��qs>r�ba�r>tp��G�kFoM)1Sl;;lS1)MoFFc>!Aa@@aA!>c9j�^��&*�tO�f::f�Ot�*&��^�j9�'Gc<JiBBiJ<cG'�+G\12XB&&BX21\G+�6�32@/B[SC
D0.&$	+".54>32+>74.#"32>%Q�nAF~�hg�xA,='��
0��&7�+Li?BmM*'IiAHoL(L6i�c^�zFDz�g>oji8�;4,.�CmL)+Lj?DkJ&/Nf���y�';K�$PX@SCSD@[SDY�((($+74>32#".4>32#".�!..""..!!..""..!n."".-""-	."".-""-���y�2D�?K�$PX@SCS
D@[S
DY@	/-%#$+74>32'&547>7#".4>32#".�,/0G-

 
*!..""..!{)'3-a_Z&
%0:!!-�."".-""-���W�(+��?--�����
�
�
������!@YMQE+!!!!�[��[��>�և���W�(+75467%>7.'%.=��++�?�
�
�
�oJ"����(<9@6BhfSCSD(&#-$+>32#'54>54.#"#"'4>32#"."KYg<O�b8-ERG3z-EOE-":O-=W<%�!..""..!4(.TxKLnS=66!��*A99EX<+F1$��."".-""-V�OQaf@c
X
7Bh[

[	[OSGSR[YRaSaGE;9530.&$QQ
+%"&'#".54>3232>54.#"3267632#"$&54>32%2>7&#"�Nb
:�N<X;A��}Ce-])1XC'Y��z��dk�����U
k�ﭭ���}7d���l\���_5=k��?;1L'.K}Z3B�KNQF)Id:U��X��K1$/
8f�W�ЋEf�������XB3	BHRn�,�mʯ�g9(Ns��kl��Lx2VA'	?f�EHW
I�
$@!BZC
D# +!#"&'!+3!&'I� ��}�"�=���
Z����{G6Q)E���*=@:B[SCS
D*(" !+3!2#!2>54&#%!2>54&#!�Ʉ�{;!CeD��C��x��6SwM$����RxO&�����4`�W5bTB��[�l;��
&E_9o��$@[6~vZ��	�.D@ABhfSCSD)'..+2#".546$32#".#"32>76�
LX�����bi�	���Y?
(6Jb@s��MM��i@fWK&(
Sfrk����kbTY

 O�҂�ґL 1"���@SCS
D!(!$+#!!24.#!!2>�f��������f�H��s��Us��H̡���g�g�����АL��L���!�.@+YQCQ
D+!!!!!!�P-��������$�����!�	(@%YQC
D		+!!!#!�PL����������Z��@�4K@H!
Bh[SCSD,*%#44+%2>7#"&=!#"$&546$32#"'.#"-:aVL&��6u��Y����ig��U�}j.7>YySyĊJM���<n��':'k����j/C*X(%O�т�ՔN�8� @YC
D+!#!#3!38�������t������@C
D+!#3����<����QK�PX�B�BYK�PX@CSD@hCSDY�!&$+#"'>7>3232>53�;s�mai<2BgG%��x��F9(T�Z��:�"&@#
B[C
D)(% +3267>;#".'.+#3�I&-�) ���%*:��!X��%�� 
	$�Y
	9�p����@CR
D+%!!3pl��£�����#%@"BhC
D!6)+>7>;#467+"'#32o

�
���--�
��
�53q
�g0��--�2���
���8�@C
D!+2.53#"&'#3>�b���d�
��1��g70��\����'@SCSD((($+#"$&546$324.#"32>�f��������ff����f�H��ts��HH��st��H̡���kk�
��
�ll��ґNN�҄�ёMM����*@'[SC
D
!+#!2#'32>54&+����ɄAF�ȁ��SV,������?t�ed�xC�,OnB��\��$�0s�BK�	PX@kSCSDK�PX@SCSCD@kSCSDYY�(((%&+#"&'#"$&546$324.#"32>�)NpFp�$8�9{C����ff����f�H��ts��HH��st��H�e���/�sk�
��
�ll��ґNN�҄�ёMM�����#2@/B[SC
D#!,!+#!2#"'.#'32>54&+����Ɓ>0[�S$��5��((��U�W,���V���7h�[L�iJ(��)�)Kh?��:����==@:=BhfSCSD;9(&#!#"+#".#"#"&'7>3232>54.54>32�	-EaEAdC";a{�{a;@{�r��Q86QsSElK(;`{�{`;;p�kx�J�")"#<Q/<O8),7TzY^�zFeV\-6-&E`;AS8')6V�_L�nBLH~� @QC
D+!#!5~�1�/���
������#@ CSD+%2>53#".53�Y�a3�O�Ԅ�ԔO�3a��<l�Zg��|ԛXX��|g��Z�l=G�@BC
D, +32>7>;#� �	�"������
"P++P"��g��( @#BC
D+< +32>7>;2>7>;#&'#�"(
	Q#8!O
)#��A���		�����>""?��4C!<��gE)%����@BC
D("(!+	3267>;	#"&'+��'�va	��%�����	���
���P�Y����@BC
D,"+#32>7>;���HG	�:��:_��#>>"-V��
$@!QCQ
D

+!!547!5���2��,���H"���Lv������
'@$[OQE

!#+!+32�p����F��F����	@kD# +32#"&'L!0
YK8
�" �'"#Z����
!@[OQE!"+46;#"&=!!Z��p���3F�����@
BkD+!+3#"&'.'+sf��
����z`+,+�����[@MQE+!5��xx&���	@kD		+2#"&'�! �f���
\��z)9}@!/BK�PX@'h[SCS
D@+h[SC
CSDY@+*10*9+9%##' 	+!#"&/#".54>754&#"#"&/>322>75zO (LT_:;gL-B��ecAYA/ T�vU�Z.�2/NE?{�l1,<^$9'!BeE<oV7Ovy!)!9QP8d�U��#2 �2D*(:%����%�@	BK�	PX@CSCSDK�"PX@CSCSD@!CSC
CSDYY@%%(#+33>32#"&'#"32654.��?�iX�d6<q�fb�3	&QW�70uH��#B`���IYB��~p��QLD\&wPI�B6ʻc�[*J��*i@
*BK�	PX@$hfSCSD@$hfSCSDY�($#(#"+#".#"32>32#".54>32E#6M8JrM'*LmDAT8$2B�n_�xE?y�sj�?A5d�X\�a3&AQKF��|q��NE?H����%p@BK�"PX@CSCS
D@!CSC
CSDY@%%+!"/#".54>323%267.#"[&
A�lW�d6<q�g]�4��=W�71uG��"B`%{O_C��~p��Q?92�?�PI�B5ʻc�[*J���$-{�BK�	PX@'h[SCSD@'h[SCSDY@&%)(%-&-
	$$	+2#!32>32#".54>"!4.#[�p?�^0TtHCaF/2!\ip7i��HAz�r��'"B_=s�l*`�_/$A(;&G�ʃj��M���>gK)��]@
BK�2PX@SCQC
D@YSC
DY@
4%+3'.=354>32+"!!�p�1[�PD: .K6%��]
IbW�]0Y6XA]���2���9M]�@2A*BK�PX@,
[[CS	CSD@/h
[[S	CSDY@ONWUN]O]JH@>#!99+2!#"'#".5467.54>7.54>4.'32>2>54&#"�Bs/*s"9e�SG? !:`zz`:Az�oo�n7_S+3!0 KU9f��*H^hl19G#HmJHrO*��6S8qlkq8RB!	APJyV..$%	2XFAz_9,Ja5KiC8/.**�]JyU.��&.N6";+0BN6K-]nn]-K6���-@*BCSC
D##+33>32#4&#"��A�gSU,�ilO�:���ES7e�V�{�sLA����GK�	PX@SCC
D@SCC
DY@

+##".54>32X��#.-##-.#���>-##-/##/�����(Y�	BK�	PX@SCCSD@SCCSDY@%#U%+#"&'7>323265#".54>32X EmL!6
NB�#.-##-.#���=iN-

`
IQ@>-##-/##/���0@-B[CC
D%(%!+3267>;#"&'.+#K.@���
����2����W�s
��
���X�@C
D+#X���?���*V�)BK�PX@SC
D@CSC
DY@**##&$!	+332>32>32#4&#"#4&#"�j&

8�\gEVa2P}W.�hc,O<#�b^Bq/�%hEXra7P43b�\�{�w{<[<�{�zxG=�
��L�BK�PX@SC
D@CSC
DY@#$!+332>32#4&#"�j&
B�kSU,�ilO�:�%nIZ7e�V�{�sLA�H��#NK�	PX@SCSD@SCSDY@##	+2#".54>2654&#",o�}CC}�oo�~DD~�o����LpK%%KpJ��wx��II��xw��J�xɴ��4b�ZZ�a4���%�@BK�	PX@SCSCDK�PX@SCSCD@!CSCSCDYY@%%($!+32>32#"&'"32654.�j&
A�mW�d6<p�f^�3W�71uH��#B`��L%xO`C��~p��Q>9�@�PI�B6ʻc�[*H���%�K�PX@B@BYK�	PX@SCSCDK�PX@SCSCD@!CSCSCDYY@%%(#+##".54>32763267.#"Ų@�iW�d6<q�gb�6
&��W�70vG��"B`����JZC��~p��QF@O%��PI�@7ʻc�[*��lK�PX@B@BYK�PX@SC
D@hCSC
DY@!$%!+332>32#"&#"�f4�g*D:4]}*��jw�lg�{>��<=@:<BhfSCSD:8'%" #!+#".#"#"&'7>3232>54.54>32�&7L4-H3-J^c^J-2b�]j�<*(9Q=4N4-J_c_J-0\�Vd�:N(5'4&!(<W=FwW2E6D
".<"*7' )>[A:kQ0?7,���>!t@
	BK�2PX@$jhQCTD@"jh[TDY@
!!+"&5#"&=7>;!!32>32�x�z�)Z"��>1)4.��~lG9�����@>U+1z����L�BK�PX@CS
D@C
CSDY@$!#+32673#"/#".5,jkN�:�j&
B�jSV+��zs~JB�%mIY7d�V���@BC
D, +32>7>;#���c���t$H##H$����. @'BC
D*!,< +32>7>;2>7>;#"'.'+���M�	�����
�

����t$C""C$��p#D!!H��"�/0�R"��@BC
D("(!+	3267>;	#"&'+����	�
���c���
��
��@����������@BCD,""++32>7>;�	���^�	
	�������,,}FU�@QCQ
D+!!5467!5!U��)�
'����#�&�J
#ߌ,���@3@0$B[[OSG86303++4&#52654.54>;+";2#".54>�FCCF)S{R5MY)7!!7)YM5R{S)�?QkP@2bbd4EtT.OeV8hcb2&A3%		%4@%2bch8WdP/TtE4ccb�p�@QD+3#把���X��,�@5@2B[[OSG?>=<1/,)3)++546;2654.54>7.54>54&+"&=323"�*R{R5MY)7!!7)YM5R{R*FCCF�2bcc4EtT/PdW8hcb2%@4%		%3A&2bch8VeO.TtE4dbb2@PkQt�9@6jkO[SG
+2673#".#"#4>32�AI�%Ef@4f_V$AI�%EeA4f_VeUFCpP, '!TGCpP-!'!���
!&@#SCQD

+4>734>32#".	y	�"--""--"��-UW\44\WU-���-""-."".���.7�@32&*BK�	PX@)jhfTCSDK�PX@)jhfTCSD@)jhfTCSDYY@	##'#+.54>?>;#".'>32+1\�q?B~�wBR�6.!-?*4?U;&0<�kB�y4LsN'
O��ro��Q��?1>�"	?HJ���9c�4[�>@@=7+Bh[SCS
D%&#&'%"	+46;4>32#"&'.#"!#!>3!#!5>5#4 �6n�nNy^EH

)3B-?`@ ��{929��<">0��$^�{G'DZ4./#*NnD��H�Km-Ls
"3E.!��`#7?@<!B
@ ?WSD42*((+467'7>327'#"&''7.732>54.#"�!�[�,h:9f+�Y�"!�[�,h99e,�Y�"�#>Q//S=$$=S//Q>#�9e,�Z�"!�[�,g:9f+�\�"!�[�,g:.Q=$$=Q./R>##>R,S�"8@5
B
Z	YC
D"! ,!+!32>7>;!!!!#!5!5!�2�h�
!��g3��T�����T��q(��#:;"6��fig��;gi�p�@YQD+3#3#把�������r����HZA@>HXN=#BhfWSDFD-+(&!#!+#".#"#"&'7>3232>54.5467.54>32>54.'1&7L40M51OfifO1NT1>2a�\j�<)(:U?2O62RhnhR2V]2?0\�Vd�:��Fm�>604FOT(B6�*8&9/+.7G\=Q&%bEFwW2E6D
#->&-B3*,3F]@N}#&iK:kP0>7��3G95K/$8.&##I�V{'3K� PX@
SD@OSGY�((($+#".54>32#".54>32� )(() g))))	((**((**D����.Jb�@
BK�	PX@4hf[[		SCSD@4hf[[		SCSDY@
_],,*(#%(%"
+>32#".54>32#".#"32>4>32#".732>54.#"=9�tb�s?Ez�bl�9.2L;FqO++Lj>0B0%�R4_���ee���_44_���ee���_4d,Rr��X��c-Rs��X��b�@BIDz�de�yCD7A-TxKMyR+	e���`44`���ed���`44`���eY��tS-d��Y��vS.e��\?T�)5E@B!-Bh[WSD+*/.*5+5%##' 	+#"&/#".54>754&#"#"&/>322675T<.28"&A0&X�k:9&2%4yI6T:��3J$Fa<4H1 )<)"C5#%?<
*1."<T3��&#i#*"���)�)(+55��:
�
�:/�:
�
�:�
��
��
��
��
��
�;��=K�	PX@_MQE@kMQEY�+!#!�\��;�X!dR�@MQE+!!d���D����3IV��>BK�	PX@/h		[
[SCSD@/h		[
[SCSDY@44VTLJ4I4H)!*,,&+4>32#".732>54.#"#!2#"'.#'32>54.+D4_���ee���_44_���ee���_4d,Rr��X��c-Rs��X��b� ��kj�!�	Pt7M/+F4��e���`44`���ed���`44`���eY��tS-d��Y��vS.e���|}z^�
��.
r(:&%8$�RD@MQE+!!>��DuF'��'@WSD((($+4>32#".732>54.#"F2XwEEwX22XwEEwX26I**H66H**I6hCvW22WvCBuW33WuA*I66I**J77JdP"�7@4YYMQE
	+!!#!5!!!���i��k��k��B������p�x�%�R�Qe-9@6+Bh[SD(&" 
--+2>;2!546?>54&#"#"&/>Z4U<!*6�/��
�, <-.9	G�e6M/(E>:�M+
�455370*jjT|Re=S@P9Bhh[[SD640.*)('==	+2#".'763232>54.#5>54&#"#"&/>b3R; wBE*E[09T=+7+ / 'A/WG:009	C,ATe3D(�-N>7T91H/
 (+W<424/(5O5��U�	@kD	#++7>3U�j�! ���
�z����3@0BCS
CD&$!#+32673#"/#"&'#"&5,liN�:�j&
C�WJp'Y&)��nmxJB�%mHD3.*W&��($*�7�*@'hiSD+##!#".54>3۝��h�u??u�h���7�7]=i�QV�e8|���@OSG($+4>32#".|)68((86)Q8((86))6����
�K�PX@
B@
BYK�	PX@^TDK�PX@jTD@jjTDYY@+232654.'73#"&'76� *+)<&+pZQ 9P0)J�	!�PE6 3$7x�D_O�	BK�$PX@jjQD@jjMRFY�$+37#"/733!��k	'�l��i��+X	8��zUH<��)@&WSD	+2#".54>2654&#"~FqP,,PqFGrQ,,QrGTSSTWSS�+PsGHtQ++QtHGsP+��iddhhddi��
�%�%(+7'&54767&'&54?%'&54767&'&54?�:
�
�
:�(�:
�
�
:�

�{�{

f|� &0O@L$	Bh		Z
[CS
D0.+)&% $!#
+3+#5!"&/3%37#"/733!4673+>;m
Rm��
V|���k	'�l��i��,L2. MA��9�;�+X	8��zU�,���\ f]�-=Ge@b710+Bhh		Z[CS

DGEB@=<;:9853/.(&" 
--
+2>;2!546?>54&#"#"&/>%37#"/733!+>;f4U<!*6�/��
�, <-.9	G����k	'�l��i�,L2. M�6M/(E>:�M+
�455370*jj3�+X	8��zU�v\ D}�NT^x@uJ	
%RB

h		h
	
	[[
\SCS
D^\YWTSGEA?;:980.)'!NN!#+3+#5!"&/32#".'763232>54.#5>54&#"#"&/>4673+>;m
Rm��
V|�B3R; wBE*E[09T=+7+ / 'A/WG:009	C,AT���,L2. MA��9��3D(�-N>7T91H/
 (+W<424/(5O5�\,���\ ,��)=9@6BhfSCTD('#-$+#".54>?332>324>32#".KXh<O�b8-ERG3z-EOE-":O-=W<&�q!..""..!�4(,RvKLjL601!��,>2/<P;,E1$."".-""-��
I�&$	k��
I�&$k��
I�&$
v��
I�&$v��
I�&$
v��
I-&$s����:@7BYYQCS
D#	+!!!!!!!+!���</��=a��1�Գ%���^���$�������)EZ��	�K2K�PX@:>
IB@:>
IBYK�	PX@0hfSCSC	SDK�
PX@0hfSCSC	SDK�PX@0hfSCSC	SD@7hf	hSCSCSDYYY@GE=<861/'% KK
+232654.'7.546$32#".#"32>7632#"&'76� *+)<&$��Vi�	���Y?
(6Jb@s��MM��i@fWK&
LS�ZQ 9P0)J�	!vu����kbTY

 O�҂�ґL 1"
Sap7E6 3$7���!�&(	7���!�&(7���!�&(
B���!�&(
B������&,	������&,�����{�&,
����x�&,
2��!,@)YSCS
D!%(!+3!2#!#%4.#!!!!2>2���ff��������H��t��}��Ut��H�g��������g�2�АL�r�L����8�&1���\����&2	���\����&2���\����&2
���\����&2���\����&2
�~�X�	(+		'	7	���b_����_d��_YX�����`b��`dY`��X\����!-8h@21&%BK�PX@kCSCSD@jkSCSDY�)*%(%$+#"&'+&546$327>;.#"4&'32>�f����l�Od:N�p{f��s�SR  d�gp�AKE�<�Ws��H�A<�qt�t��H̡���k10�b ��
�l:6o�b�꫇�I�*+N�҄~�H��FM��������&8	�������&8�������&8
�������&8
�����&<9��.@+[[C
D!+#332#'32>54&+����ɄAF�ȁ��SV,��������?t�ed�xC�,OnB�����v�HwK�PX�B�BYK�PX@hSCSD@#hSC
CSDY@CB=;%# HH+2#"&'7>3232>54.54>54.#"#4>�g�b/+@K@+5P]P59d�Oa�<)(7K5,F18TbT8-CNC-8Y?DoO+�E���<]n3<VB203 '4-/FfNNzU-E6D
".@%8F3*:SB5O?6<G0 A4!*T~T�&�h�zB��\��z�&DC���\��z�&Dv���\��z�&D����\��z�&D����\��z{&Dj���\��z�&D��\��CQ\�@A;BK�	PX@5hh

[S	CSDK�PX@5hh

[S	CSD@?hh

[S	CSCSDYY@&SRXWR\S\MKED?=8631.-%#
	CC+2#!32>32#"&'#".54>754&#"#"&/>32>32>5"!4.�R�g;��.MiAE\=&/!Wcj4u�7Wjw;ErS-B��ecAYA/ T�qx�!6���{�l1dQ9cI*�=`E)�<W@z�p)[�Z,$	=(;&qt>X8#FjH<t\;2v~#*#9QPf[Xg��#8H*WP$JnJ�)NpFAoP-J��H�K�PX@7;
FB@7;
FBYK�PX@-hffSCTD@3hfffSCTDY@DB42/-%# HH	+232654.'7.54>32#".#"32>32#"&'76� *+)<&%S�f:?y�sj�?/#6M8JrM'*LmDAT8$2;�aZQ 9P0)J�	!yO��qq��NE?@5d�X\�a3&	AHJ:E6 3$7��J����&HC���J����&Hv���J����&H����J���{&Hj�������&�C����(�&�v�����6�&�������){&�j�L���4H6@3:0B43@[SD65@>5H6H.,$"+.54?.'.54?7#".54>32.'2>7.#"�g-e9`�Q�#a<cF'>{�xb�}H>t�hd�Au^�_GsQ.4Kc>KqL'.Pi)
H"><0z9
C1|��n��VB{�p^�~JVW��@���6m�o+Q?%2WwDQV-�����&Q���H���&RC���H���&Rv���H���&R����H���&R����H��{&Rj�d�"�++@([YOSG(((%+!!4>32#".4>32#".d��Bb!--""--!!--""--!��."".-""-�S."".-""-@��-I!+5t@43%$BAK�	PX@ jkSCSD@ jkSCSDY@
-,,5-5%%(%'+#"&'+7.54>327>;&#"2>54'�=BC}�oL�67;C�BFD~�oO�8D  Z��;�IoLtO(7KsO(4�OFtD�vx��I" J�E�|w��J&#[���aN86d��$5d�Z�`��0��z����&XC���z����&Xv���z����&X����z���{&Xj�������&\v�����#q@BK�	PX@!CSCSCD@!CSCSCDY@##(#+3>32#"&'"32654.��?�iW�d6<p�f_�3W�71uH��#B`����JYB��~p��QE?�3�PI�B6ʻc�[*�����{&\j�
����'/�K�PX@
,B@
,BYK�PX@!ZC
C	SD@(	hZC
CSDY@)($"
''
+2#"&5467"&'!+3#32>!&'d	]3XeO< ��}�"�=�=%*"1*
�?�
�BOB:e&Z����g'/&+	�G6Q)E\���CS�@;I	BK�PX@1h		[SC
SCSD@8hh		[SC
SCSDY@EDKJDSES%##.%#'+!32>32#"&54>7&/#".54>754&#"#"&/>322>75z*"1*
	]3Xe'5
(LT_:;gL-B��ecAYA/	 T�vU�Z.�2/NE?{�l1,<'/&+	BOB83- ^$9'!BeE<oV7Ovy!)!9QP8d�U��#2 �2D*(:%��Z��	�&&���J���&Fv����4�&�K�PX�B�	BYK�PX@*YQCQ
C	
SD@1
		hYQCQ
C		SDY@#!
&&+2#"&5467!!!!!!#32>	]3XeO<�Zs�P-���[*"1*
�BOB:e&���$���'/&+	J���<E�K�PX@
-B@
-BYK�PX@2h		[SCSC
SD@9h
h		[SCSCSDY@>=A@=E>E97+)&$ 
<<+2#"&5467.54>32#!32>3232>"!4.�	]3XeB4g�~FAz�n[�p?�^0TtHCaF/22�R'!1*
���'"B_�BOB5]%H�ȁj��M=s�l*`�_/$A<G&.&+	U��>gK)�X�@C
D+#X����,�#@ 
BCR
D+%!!54?3����l�һ��%ā��"�*_�
V�6K�#@ 
BC
D+7#54?���������MfC��LiD���8�&1������&Qv\��'�02@
BK�PX@"YS
C	S
DK�"PX@,YSCQ
C	S
DK�,PX@6YSCQ
C	Q
C	SDK�0PX@4YSCQ
C	Q
C	SD@2YSCQ
CQ
C		SDYYYY@-+#!(#+!!!!!5#".54>3254.#"32>'�P-�����T����\\�ꎡ�T@w�hh�xAAx�hh�w@���$����x�k�
��
�l�y�3�ӔOO�ӄ�ӓNN��H��u0@K�@.
BK�	PX@,h

[
	SCSD@,h

[
	SCSDY@$BA21GFAKBK:81@2@,*" 
	00+2#!32>32#"&'#".54>32>2654.#""!4.�R�g;��.MiA=Y@-3!Wcj4w�76��d�u@@w�f��52�����"DhEGhE"�e=`E*�<W@z�p)[�Z,$A(;&swpzI��xw��Jyni~�xɴZ�b44b�Z��)NpFAoP-��:����&6��>���&Vv���:����&6��>���&V������&<
D��V��&=N��FU�&]v���V�&=X��FU�&]����V��&=X��FU�&]��j����#6@3
BYSCTD###"+#5432>7'.=37>3#"!�Y��<-Q?,Y����.Q@-	B�&͹^9:\D�I�ƿb:]D���d�
@BkD' +#"/+3dw��{ߦ�~~	�d�@BkD+ +32>?>;#{��wߦ�
}	

}	�����RDq �D� @WD
+".5332>532MhA~"9++9"~Ai�+Ib7!9((9!7bI+����@SD($+#".54>32�#.-""-.#:-""-/##/jk��=K�PX@WSD@[OSGY�$&($+4>32#".732654&#"j 7H()I8  8I)(H7 d6/-77-/6#*D22D*)D00D),88,-88����
YK�PX@B@@B@YK�PX@
SD@jSDY@+2#"&54>732>�	]3Xe+;"\*"1*
�BOB;6/
'/&+	�Y�QK�.PX@WSD@O[SGY@
+2673#".#"#4>32�$'l/A(#=60Ho0B'#=6/-*,/O8"X0O9"^���	#@ SD




	#++7>3!+7>3��J�
!!��V�!������
�0����!Y�BK�(PX@SCS
D@SC
CSDY@! 6##++#!#"&'7>3265#54>3����sy�"BB9�	�H$��r��w�K	>B|@
�
��@MQE+!!� �����
��@MQE+!!�2����:�'��(+.5467rYP7
�0a0Z�E"
,16 D&
Z�F��(+'.547>54&'&547YO7
�0`0[�E"
-16 D&Z��F��(+%'.547>54&'&547YO7
�0`0[�E"
-16 D&:�W�1�(+.5467.5467rYP7
�YP7
�0a0Z�E"
,16 D&
,0a0Z�E"
,16 D&
Z�v�1�(+'.547>54&'&547%'.547>54&'&547YO7
�YO7
�0`0[�E"
-16 D&,0`0[�E"
-16 D&Z��v�1�(+%'.547>54&'&547%'.547>54&'&547YO7
�YO7
�0`0[�E"
-16 D&,0`0[�E"
-16 D&v���3@0
	BCSCD#$&"+4632632>72!#"'!v)+"LPP'(57&N�E,(�x&75(�w�0	
��0<�`��	�v���/G@D
	%$ B[C	SCD/.$$#$&"
+4632632>72!!#.'#"'"&=!!v)+"LPP'(57&N�E,(�x�(,E�N&75(N�E+)��w�0	
��0<��<0��0<X����,K�PX@SD@OSGY�($+4>32#".�;d�LM�e;;e�ML�d;SM�e;;e�MM�d;;d�X��V�';@SD((((($+74>32#".%4>32#".%4>32#".X!..""..!!..""..!��!..""..!n."".-""-."".-""-."".-""-H����'1EYm��K�PX@+[	[SC
		S

DK�"PX@/[	[SC
C
		S
D@3[	[CSC
C
		S
DYY@~|trjh`^VT((%#&((($+#".54>324.#"32>>;+#".54>324.#"32>%#".54>324.#"32>�4Wt?DsV00VsDCuU1�1A%%A00A%%A1�	���
�54Ws?DsV00VsDCtV0�1A%%A00A%%A1h4Wt?DsV00VsDCuU1�1A%%A00A%%A1?T�[00[�TV�\00\�VB\;;\BA[99[}
��
RT�[00[�TV�\00\�VB]::]BAZ99ZAT�[00[�TV�\00\�VB]::]BAZ99Z�����(+5��:
�
�:�
��
��
�����(+'&54767&'&54?�:
�
�
:�{

�D#�	@C
D#"+'+>;,L2. M5\ "��r�G[@X	5	Bh		h
[	[SC
S


DGF@?>=9720"###%$+3>32#".#"!#!!#!32>32#".'#53&45467#"�_��l��F=%>aK�� #���j��6R<+ KFЏt��W����~ˏLdXD	
&.&�7(8�� % FfqO�Ӄf)@I)�&C@@BhS	CS	D&&!4)
+>7>;#7+"'#32'###5��	jn	�
�nj�~�U/
��mK��MH��P
i��iV~�71@.1BSCS
D76***+!>54.#"!"&=!5.54>32!#DQ�c7E{�dd�{E7b�Q�$�`�l;c���c;m�`�$�Ag�]k�m88m�k]�gA�J#d�`��e�֚VV�րe��`�d#\��2�*>C@@0Bh[SCSD,+64+>,>#'(($+>32#".54>32>54&#"#"&'2>7.#"\'INV3Z�h9I�ݔV�h:L��ph�0�|*G8*
xBw`G
&>W:T�X- <U9*J�ʀ���9k�_sʔVYV%C����7p�s,S@&>m�WAfF%b�@	BCR
D+3!%!.'`�S��M��				��g��:"";>���$@!QCD+##!##5���������W��W�T���&@#BQCQD+!!!!5467	.5T��e=����Q	
u�����;4�;�A�
�\��@MQE+!!�\���.��"@
Bj[
D,# +#"&=!2>7>;#�)O�	�s�֕�!)9�e D"8G�P:� �';OL@IK-B[
	O
	SG=<)(GE<O=O31(;);	''+%".'#".54>32>32%2>7.#"!2>54.#"�8[MAAL\7>qU22Uq>7\LAAM[8>pV22Vp�O$>7227>$$?00?�$?//?$$>8228>�";L**L;"0Y|LL|X1";L**L;"1X|LL|Y0�5E''E4/H00H//H00H/4E''E5����\�#(@%BSCSD6''"+>32#"#"&'7>32>7v��&E do�
Ac�K#J
	 :W=%C��V	
mv��f�_-
L
;]B�~��7�@0!/"BK�	PX@+[[	O[	SGK�PX@$[[	WSD@+[[	O[	SGYY@42+)&$77

+2>7#".#"'>322>7#".#"'>326."	#p=4ge_-8."	#qB5hd_-6."	#p=4ge_-8."	#qB5hd_Zr/.!(!
m31!)!��
q0.!)!m31!(!���~kK�PX@)^_	ZMQE@'jk	ZMQEY@

+!733!!!#7!5!7!��r�r��_��2w�w��K_�V���ȇ�����P��!@@MQE+!!��G.32�����yz�
�z{�
��P��!@	@MQE+5467%67.'%.=!5!��)81�G��J��z�
�z�������"@
BMQE+3	#>7	&'��|��z|�	��
�5���4��&&EF+#&�����@CD+3#�����!a@BK�2PX@SCQC
D@YSC
DY@!!U%+3'.=354>32#"&#"!#!�p�:t�s&O��d��T]
I8]�p>

]
��3�`������BK�&PX@SCQC
DK�2PX@"CSCQC
D@ YCSC
DYY@A!%	+3'.=354>32;#.#"!!�p�4h�hS�Hd�6m(����]
I6T�pB
�Y*��6��������
@SD


+2+h
>1P
2H4��
��	@ja		+2#"&'%�  Ӌ���
����v�'@OSG((($+#".54>32#".54>32�)'')�((((�''))''))D'"�@MQE+!!D�"�j�
��@ja
#++7>3�����
���
��
x�@Bja* +#"&/&'+73x�	��	��
__���
x�@
Bja,!+#'32>?>;���	��	�
�^^�J�
(@%jOSG


+"&53326533��sNVVNs��sr;==;i|��@OSG($+#".54>32�"-,!!,-"�,!!,,"",v��-!@[OSG$&($+4>32#".732654&#"v3D&'E55E'&D3Y6/-77-/6{'B//B'&@..@&+99+-88V�1@.O[SG
+2673#".#"#4>32�#%b*>(#@;4"%d+?'#@:4)%+H5+$+I4N
��	+@(OSG




	#++7>3!+7>3��V�&!��`�( ��
��
��|��
@SD


+2+� 
>9�
!;ZBG���C�_<��ʓ^p�ӡ�D���-	��V	�D�C�'-�����6�j$H~R��X�XJ `�d�^�d�X���<���h�l�(�l�l�n�`������������"lVP
�ZZ����l��Z��f�x<R��0���<\��<\�$:���P���VX���XZ��f&�\^��J^HJ��2X�������j�X�XHP�^H&�d>�,Xz���FX,X�XX�t������4���,X��rf<D�\�����d<DfF�d�R�Tf�Xz:*"|f��x�H���f�f�D,P
P
P
P
P
P
B��ZZ��������f��f�f��f��*2��<\<\<\<\<\�~<\��������������\�\�\�\�\�\`\�JJJJJ�������RLX�XHXHXHXHXH�dX@XzXzXzXzP�P
�\ZZ�J��J�>,�6��X��\�HH:d>$:d>��V�F�V�F�V�F�jffff f�fjf�ff^�0X�j��:�Z�Z�:�Z�Z�v�v���X	Hx�x�f�D�"�@�V�\pX>XT��z.X: ��������������t�f�f��f��fDf�f��f��ff�fvffNf�l�#`�	�J��N��J#��$�J&��*��2��4��90:0<?0D��F��G��H��R��T��m�No�Ny�N}�N��J��J��J��J��J��J��J��������������������������������������������������������������������������������J��������������N�N���N�N�N��J
	�J
�
�N
�
�J
#��
$�J
&��
*��
2��
4��
90
:0
<
?0
D��
F��
G��
H��
R��
T��
m�N
o�N
y�N
}�N
��J
��J
��J
��J
��J
��J
��J
���
���
���
���
���
���
���
�
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
�J
��
��
��
��
��
��
�
�N
�N
�
�
�N
�N
�N
��J#��&��*��2��4��F��G��H��R��T���������������������������������������������������������������������
	�J
�
�N
�
�J
#��
$�J
&��
*��
2��
4��
90
:0
<
?0
D��
F��
G��
H��
R��
T��
m�N
o�N
y�N
}�N
��J
��J
��J
��J
��J
��J
��J
���
���
���
���
���
���
���
�
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
�J
��
��
��
��
��
��
�
�N
�N
�
�
�N
�N
�N
��J�
�
��x#��&��*��2��4��7�L9�L:��<�h?�LY�|Z��\�|l�m�xo�xr�y�x|�}�x�����������������������h�����h�x�x�����x�x�x���N	��
�N
�N�x�x��$��7�L9��:��;��<�`=��?��l�Nr�N|�N�����������������������`���`�������N�N�x�N�N�x��N����
�
��x#��&��*��2��4��7�L9�L:��<�h?�LY�|Z��\�|l�m�xo�xr�y�x|�}�x�����������������������h�����h�x�x�����x�x�x��0	�x
0
0�@���@�x����"0#��$�x&��*��-�h2��4��D��F��G��H��I��J�xP��Q��R��S��T��U��V��W��X��Y��[��\��]��l0m��o��r0t:u:w��y��{:|0}����x��x��x��x��x��x��x����������������������������������������������������������������������������������������������x�����������������0�0�@�0�0�@����0��x#��#	��#
��#��#
��#��#��#��#$��#7��#9��#;��#<��#=��#?��#@��#`��#l��#r��#|��#���#���#���#���#���#���#���#���#��#��#��#��#��#��#��#��#��#��#��#���#���$�J$
�J$
�J$��$"��$#��$&��$*��$-2$2��$4��$7�|$8��$9�x$:��$<�\$?�x$Y��$\��$l�J$m��$o��$r�J$t�H$u�H$y��${�H$|�J$}��$���$���$���$���$���$���$���$���$���$���$���$��\$��$��$�\$��$��$�J$�J$�J$�J$��$��$��$��J&�j&m�j&o�j&y�j&}�j&�j&�j&�j&�j&�j'��'	��'
��'��'
��'��'��'��'$��'7��'9��';��'<��'=��'?��'@��'`��'l��'r��'|��'���'���'���'���'���'���'���'���'��'��'��'��'��'��'��'��'��'��'��'���'���)	�|)�L)�L)�|)��)��)")$�|)-�:)F��)G��)H��)P��)Q��)R��)S��)T��)U��)X��)w��)��|)��|)��|)��|)��|)��|)��|)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)�|)��)��)��)��)�L)�L)��|-	��-��-��-��-$��-���-���-���-���-���-���-���-��-��-��-���.��.#��.&��.*��.2��.4��.F��.G��.H��.I��.R��.T��.W��.Y��.Z��.\��.m��.o��.y��.}��.���.���.���.���.���.���.���.���.���.���.���.���.���.���.���.���.���.���.���.��.��.��.��.��.��.��.��.��.��/��/
��/
��/6/�:/6/"��/#��/&��/*��/2��/4��/7�T/9�J/:�h/<�,/?�J/F��/G��/H��/R��/T��/Y��/Z��/\��/l��/m�:/o�:/r��/t�6/u�6/y�:/{�6/|��/}�:/���/���/���/���/���/���/���/��,/���/���/���/���/���/���/���/���/���/���/���/���/��/��/��/��/��/�,/�:/�:/��/��/�6/��/��/�6/�:/�:/�:/���2��2	��2
��2��2
��2��2��2��2$��27��29��2;��2<��2=��2?��2@��2`��2l��2r��2|��2���2���2���2���2���2���2���2���2��2��2��2��2��2��2��2��2��2��2��2���2���3	�v3�3�3�v3$�v3-�J3D��3F��3G��3H��3R��3T��3��v3��v3��v3��v3��v3��v3��v3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3�v3��3��3��3��3�3�3��v4��4	��4
��4��4
��4��4��4��4$��47��49��4;��4<��4=��4?��4@��4`��4l��4r��4|��4���4���4���4���4���4���4���4���4��4��4��4��4��4��4��4��4��4��4��4���4���5#��5&��5*��52��54��57��58��5���5���5���5���5���5���5���5���5���5���5���5��5��7	�|7�L7�L7�L7�|7�`7�`7#��7$�|7&��7*��7-�872��74��7D�7F�.7G�.7H�.7J�D7P�`7Q�`7R�.7S�`7T�.7U�`7V�^7X�`7Y�L7Z�t7[�p7\�L7]��7m�L7o�L7w�`7y�L7}�L7��|7��|7��|7��|7��|7��|7��|7���7���7���7���7���7���7���7��7��7��7��7��7��7��7��.7��.7��.7��.7��.7��.7��`7��.7��.7��.7��.7��.7��.7��`7��`7��`7��`7�|7�7��7�.7�.7�`7��7�.7�L7�L7�L7�L7�L7�L7�L7��|8	��8��8��8��8$��8���8���8���8���8���8���8���8��8��8��8���909	�x9
09
09�@9��9�@9�x9��9��9"09#��9$�x9&��9*��9-�h92��94��9D��9F��9G��9H��9I��9J�x9P��9Q��9R��9S��9T��9U��9V��9W��9X��9Y��9[��9\��9]��9l09m��9o��9r09t:9u:9w��9y��9{:9|09}��9��x9��x9��x9��x9��x9��x9��x9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9�x9��9��9��9��9��9��9��9�9�9�09�09�@9�09�09�@9�9�9�9�09��x:0:	��:
0:
0:��:��:��:��:"":$��:-��:D��:F��:G��:H��:J��:R��:T��:V��:l0:m��:o��:r0:t0:u0:y��:{0:|0:}��:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:��:��:��:��:��:��:��:�0:�0:�:�0:�0:�:��:��:��:�0:���;��;#��;&��;*��;2��;4��;F��;G��;H��;I��;R��;T��;W��;Y��;Z��;\��;m��;o��;y��;}��;���;���;���;���;���;���;���;���;���;���;���;���;���;���;���;���;���;���;���;��;��;��;��;��;��;��;��;��;��<<	�\<
<
<�h<�`<�h<�\<��<��<""<#��<$�\<&��<*��<-�8<2��<4��<D��<F�`<G�`<H�`<J�T<P��<Q��<R�`<S��<T�`<U��<V��<X��<Y��<Z��<[�|<\��<l<m�`<o�`<r<t2<u2<w��<y�`<{2<|<}�`<��\<��\<��\<��\<��\<��\<��\<���<���<���<���<���<���<���<���<���<���<���<���<���<���<��`<��`<��`<��`<��`<��`<���<��`<��`<��`<��`<��`<��`<���<���<���<���<�\<��<��<�`<�`<��<��<�`<�`<�`<�<�<�h<�<�<�h<�`<�`<�`<�<��\=��=""=#��=&��=*��=2��=4��=F��=G��=H��=R��=T��=V��=Y��=\��=m��=o��=y��=}��=���=���=���=���=���=���=���=���=���=���=���=���=���=���=���=���=���=���=���=��=��=��=��=��=�=�=�=�=�>#��>&��>*��>2��>4��>F��>G��>H��>R��>T��>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>��>��>��>��>��?�J?
�J?
�J?��?"��?#��?&��?*��?-2?2��?4��?7�|?8��?9�x?:��?<�\??�x?Y��?\��?l�J?m��?o��?r�J?t�H?u�H?y��?{�H?|�J?}��?���?���?���?���?���?���?���?���?���?���?���?��\?��?��?�\?��?��?�J?�J?�J?�J?��?��?��?��JD��D
��D
��DY��DZ��D\��Dl��Dr��Dt��Du��D{��D|��D�D�D�D�D���E��E
��E��E
��E9��E:��E?��E@��EY��E[��E\��E`��El��Er��E|��E�E�E�E�E���H��H
��H��H
��H9��H:��H?��H@��HY��H[��H\��H`��Hl��Hr��H|��H�H�H�H�H���IDI
DI
DI�~I�~IlDIrDItdIudI{dI|DI�DI�DI�~I�DI�DI�~I�DK��K
��K
��KY��KZ��K\��Kl��Kr��Kt��Ku��K{��K|��K�K�K�K�K���NF��NG��NH��NR��NT��N���N���N���N���N���N���N���N���N���N���N���N���N��N��N��P��P
��P
��PY��PZ��P\��Pl��Pr��Pt��Pu��P{��P|��P�P�P�P�P���Q��Q
��Q
��QY��QZ��Q\��Ql��Qr��Qt��Qu��Q{��Q|��Q�Q�Q�Q�Q���R��R
��R��R
��R9��R:��R?��R@��RY��R[��R\��R`��Rl��Rr��R|��R�R�R�R�R���S��S
��S��S
��S9��S:��S?��S@��SY��S[��S\��S`��Sl��Sr��S|��S�S�S�S�S���U�|U�|UD��U���U���U���U���U���U���U���U��U�|U�|Y	��Y�|Y�|Y��Y$��YF��YG��YH��YR��YT��Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y��Y��Y��Y��Y�|Y�|Y���Z��Z��Z��Z��[F��[G��[H��[R��[T��[���[���[���[���[���[���[���[���[���[���[���[���[��[��[��\	��\�|\�|\��\$��\F��\G��\H��\R��\T��\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\��\��\��\��\�|\�|\���^#��^&��^*��^2��^4��^F��^G��^H��^R��^T��^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^��^��^��^��^��l	�Jl�l�Nl�l�Jl#��l$�Jl&��l*��l2��l4��l90l:0l<l?0lD��lF��lG��lH��lR��lT��lm�Nlo�Nly�Nl}�Nl��Jl��Jl��Jl��Jl��Jl��Jl��Jl���l���l���l���l���l���l���l�l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l�Jl��l��l��l��l��l��l�l�Nl�Nl�l�l�Nl�Nl�Nl��Jm�Nm	��m
�Nm
�Nm�xm�xm��m$��m7�Lm9��m:��m;��m<�`m=��m?��ml�Nmr�Nm|�Nm���m���m���m���m���m���m���m��`m��m�`m��m��m��m�Nm�Nm�xm�Nm�Nm�xm��Nm���o�No	��o
�No
�No�xo�xo��o$��o7�Lo9��o:��o;��o<�`o=��o?��ol�Nor�No|�No���o���o���o���o���o���o���o��`o��o�`o��o��o��o�No�No�xo�No�No�xo��No���p��p	��p
��p��p
��p��p��p��p$��p7��p9��p;��p<��p=��p?��p@��p`��pl��pr��p|��p���p���p���p���p���p���p���p���p��p��p��p��p��p��p��p��p��p��p��p���p���r	�Jr�r�Nr�r�Jr#��r$�Jr&��r*��r2��r4��r90r:0r<r?0rD��rF��rG��rH��rR��rT��rm�Nro�Nry�Nr}�Nr��Jr��Jr��Jr��Jr��Jr��Jr��Jr���r���r���r���r���r���r���r�r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r�Jr��r��r��r��r��r��r�r�Nr�Nr�r�r�Nr�Nr�Nr��Jt	�Ht�Ht$�Ht9:t::t<(t?:t��Ht��Ht��Ht��Ht��Ht��Ht��Ht�(t�Ht�(t��Hu	�Hu�Hu$�Hu9:u::u<(u?:u��Hu��Hu��Hu��Hu��Hu��Hu��Hu�(u�Hu�(u��Hy�Ny	��y
�Ny
�Ny�xy�xy��y$��y7�Ly9��y:��y;��y<�`y=��y?��yl�Nyr�Ny|�Ny���y���y���y���y���y���y���y��`y��y�`y��y��y��y�Ny�Ny�xy�Ny�Ny�xy��Ny���{	�H{�H{$�H{9:{::{<({?:{��H{��H{��H{��H{��H{��H{��H{�({�H{�({��H|	�J|�|�N|�|�J|#��|$�J|&��|*��|2��|4��|90|:0|<|?0|D��|F��|G��|H��|R��|T��|m�N|o�N|y�N|}�N|��J|��J|��J|��J|��J|��J|��J|���|���|���|���|���|���|���|�|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|�J|��|��|��|��|��|��|�|�N|�N|�|�|�N|�N|�N|��J}�N}	��}
�N}
�N}�x}�x}��}$��}7�L}9��}:��};��}<�`}=��}?��}l�N}r�N}|�N}���}���}���}���}���}���}���}��`}��}�`}��}��}��}�N}�N}�x}�N}�N}�x}��N}�����J�
�J�
�J����"���#���&���*���-2�2���4���7�|�8���9�x�:���<�\�?�x�Y���\���l�J�m���o���r�J�t�H�u�H�y���{�H�|�J�}�������������������������������������������������\��������\��������J��J��J��J������������J��J�
�J�
�J����"���#���&���*���-2�2���4���7�|�8���9�x�:���<�\�?�x�Y���\���l�J�m���o���r�J�t�H�u�H�y���{�H�|�J�}�������������������������������������������������\��������\��������J��J��J��J������������J��J�
�J�
�J����"���#���&���*���-2�2���4���7�|�8���9�x�:���<�\�?�x�Y���\���l�J�m���o���r�J�t�H�u�H�y���{�H�|�J�}�������������������������������������������������\��������\��������J��J��J��J������������J��J�
�J�
�J����"���#���&���*���-2�2���4���7�|�8���9�x�:���<�\�?�x�Y���\���l�J�m���o���r�J�t�H�u�H�y���{�H�|�J�}�������������������������������������������������\��������\��������J��J��J��J������������J��J�
�J�
�J����"���#���&���*���-2�2���4���7�|�8���9�x�:���<�\�?�x�Y���\���l�J�m���o���r�J�t�H�u�H�y���{�H�|�J�}�������������������������������������������������\��������\��������J��J��J��J������������J��J�
�J�
�J����"���#���&���*���-2�2���4���7�|�8���9�x�:���<�\�?�x�Y���\���l�J�m���o���r�J�t�H�u�H�y���{�H�|�J�}�������������������������������������������������\��������\��������J��J��J��J������������J��j�m�j�o�j�y�j�}�j��j��j��j��j��j����	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|�������������������������������������������������������������������������������	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|�������������������������������������������������������������������������������	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|�������������������������������������������������������������������������������	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|�������������������������������������������������������������������������������	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|�������������������������������������������������������������������������������	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|����������������������������������������������������������������������������	������������$��������������������������������������������	������������$��������������������������������������������	������������$��������������������������������������������	������������$���������������������������������������������	�\�
�
��h��`��h��\�������""�#���$�\�&���*���-�8�2���4���D���F�`�G�`�H�`�J�T�P���Q���R�`�S���T�`�U���V���X���Y���Z���[�|�\���l�m�`�o�`�r�t2�u2�w���y�`�{2�|�}�`���\���\���\���\���\���\���\�����������������������������������������������������������`���`���`���`���`���`�������`���`���`���`���`���`������������������\��������`��`��������`��`��`������h������h��`��`��`�����\����	���
������
������������$���7���9���;���<���=���?���@���`���l���r���|�������������������������������������������������������������������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
���
���Y���Z���\���l���r���t���u���{���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|����������������J�
�J�
�J����"���#���&���*���-2�2���4���7�|�8���9�x�:���<�\�?�x�Y���\���l�J�m���o���r�J�t�H�u�H�y���{�H�|�J�}�������������������������������������������������\��������\��������J��J��J��J������������J����
���
���Y���Z���\���l���r���t���u���{���|����������������j�m�j�o�j�y�j�}�j��j��j��j��j��j����
������
���9���:���?���@���Y���[���\���`���l���r���|����������������t�
�t�
�t����9�^�:���<�h�?�^�Y���\���l�t�m���o���r�t�t�|�u�|�y���{�|�|�t�}�����h��h������t��t��t��t���������t����
���
���Y���Z���\���l���r���t���u���{���|������������������
������
���9���:���?���@���Y���[���\���`���l���r���|����������������	�\�
�
��h��`��h��\�������""�#���$�\�&���*���-�8�2���4���D���F�`�G�`�H�`�J�T�P���Q���R�`�S���T�`�U���V���X���Y���Z���[�|�\���l�m�`�o�`�r�t2�u2�w���y�`�{2�|�}�`���\���\���\���\���\���\���\�����������������������������������������������������������`���`���`���`���`���`�������`���`���`���`���`���`������������������\��������`��`��������`��`��`������h������h��`��`��`�����\����""�#���&���*���2���4���F���G���H���R���T���V���Y���\���m���o���y���}�����������������������������������������������������������������������������������������������������������""�#���&���*���2���4���F���G���H���R���T���V���Y���\���m���o���y���}�����������������������������������������������������������������������������������������������������������""�#���&���*���2���4���F���G���H���R���T���V���Y���\���m���o���y���}���������������������������������������������������������������������������������������������������������N�	���
�N�
�N��x��x����$���7�L�9���:���;���<�`�=���?���l�N�r�N�|�N�������������������������������`�����`�����������N��N��x��N��N��x���N������N�	���
�N�
�N��x��x����$���7�L�9���:���;���<�`�=���?���l�N�r�N�|�N�������������������������������`�����`�����������N��N��x��N��N��x���N�����	�J����N����J�#���$�J�&���*���2���4���90�:0�<�?0�D���F���G���H���R���T���m�N�o�N�y�N�}�N���J���J���J���J���J���J���J������������������������������������������������������������������������������������������������������������J����������������������N��N������N��N��N���J�	�J����N����J�#���$�J�&���*���2���4���90�:0�<�?0�D���F���G���H���R���T���m�N�o�N�y�N�}�N���J���J���J���J���J���J���J������������������������������������������������������������������������������������������������������������J����������������������N��N������N��N��N���J���
��
���x�#���&���*���2���4���7�L�9�L�:���<�h�?�L�Y�|�Z���\�|�l��m�x�o�x�r��y�x�|��}�x�������������������������������h��������h��x��x����������x��x��x����	�J����N����J�#���$�J�&���*���2���4���90�:0�<�?0�D���F���G���H���R���T���m�N�o�N�y�N�}�N���J���J���J���J���J���J���J������������������������������������������������������������������������������������������������������������J����������������������N��N������N��N��N���J�	�J����N����J�#���$�J�&���*���2���4���90�:0�<�?0�D���F���G���H���R���T���m�N�o�N�y�N�}�N���J���J���J���J���J���J���J������������������������������������������������������������������������������������������������������������J����������������������N��N������N��N��N���J���
��
���x�#���&���*���2���4���7�L�9�L�:���<�h�?�L�Y�|�Z���\�|�l��m�x�o�x�r��y�x�|��}�x�������������������������������h��������h��x��x����������x��x��x�����N�	���
�N�
�N��x��x����$���7�L�9���:���;���<�`�=���?���l�N�r�N�|�N�������������������������������`�����`�����������N��N��x��N��N��x���N������N�	���
�N�
�N��x��x����$���7�L�9���:���;���<�`�=���?���l�N�r�N�|�N�������������������������������`�����`�����������N��N��x��N��N��x���N������N�	���
�N�
�N��x��x����$���7�L�9���:���;���<�`�=���?���l�N�r�N�|�N�������������������������������`�����`�����������N��N��x��N��N��x���N�����	�J����N����J�#���$�J�&���*���2���4���90�:0�<�?0�D���F���G���H���R���T���m�N�o�N�y�N�}�N���J���J���J���J���J���J���J������������������������������������������������������������������������������������������������������������J����������������������N��N������N��N��N���J��J�
�J�
�J����"���#���&���*���-2�2���4���7�|�8���9�x�:���<�\�?�x�Y���\���l�J�m���o���r�J�t�H�u�H�y���{�H�|�J�}�������������������������������������������������\��������\��������J��J��J��J������������J������D��(\��8R|�� �Z� R�	@	�

*
N
t
���:��

:
�
�
�:���*z�>�&`��.d���8Tv��l�HP�Tn�"���`�N��*Z��N����  z � �!�!�"�# #j#�#�$n$�$�%%l%�&&X&�&�'('l'�'�(l))�*>*J*V*b*n*z*�*�+�+�+�+�,,, ,,,8,�,�,�,�,�,�,�,�-�-�-�-�-�-�..�.�.�.�.�.�.�/�0�0�0�0�0�0�0�0�11�1�1�1�1�1�1�2(2�2�2�2�2�2�3d3p44�4�4�5d6"6<6p6�6�6�7�8T8`8l8x8�8�8�8�8�8�8�8�9*9R9�9�9�9�:4:�:�;;x;�;�;�<<0<~<�==j=�>>p?~?�?�?�@~@�ADA�A�BBNBhB�C8C�D8D�D�EEHE^E�F8F`F�F�F�GG4GbG�G�G�H@HzH��b"/n�	�n���*��(��0�/	G
�V22J
�|>	X	l	t	T�	�	P�	�	`>	0�		�	
��	0
�	d
�	
�8	4�Copyright (c) 2010-2013 by tyPoland Lukasz Dziedzic with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1.LatoRegulartyPolandLukaszDziedzic: Lato Regular: 2013Lato RegularVersion 1.105; Western+Polish opensourceLato-RegularLato is a trademark of tyPoland Lukasz Dziedzic.tyPoland Lukasz DziedzicLukasz DziedzicLato is a sanserif typeface family designed in the Summer 2010 by Warsaw-based designer Lukasz Dziedzic ("Lato" means "Summer" in Polish). It tries to carefully balance some potentially conflicting priorities: it should seem quite "transparent" when used in body text but would display some original traits when used in larger sizes. The classical proportions, particularly visible in the uppercase, give the letterforms familiar harmony and elegance. At the same time, its sleek sanserif look makes evident the fact that Lato was designed in 2010, even though it does not follow any current trend. The semi-rounded details of the letters give Lato a feeling of warmth, while the strong structure provides stability and seriousness.http://www.typoland.com/http://www.typoland.com/designers/Lukasz_Dziedzic/Copyright (c) 2010-2013 by tyPoland Lukasz Dziedzic (http://www.typoland.com/) with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1 (http://scripts.sil.org/OFL).http://scripts.sil.org/OFLCopyright (c) 2010-2013 by tyPoland Lukasz Dziedzic with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1.LatoRegulartyPolandLukaszDziedzic: Lato Regular: 2013Lato-RegularVersion 1.105; Western+Polish opensourceLato is a trademark of tyPoland Lukasz Dziedzic.tyPoland Lukasz DziedzicLukasz DziedzicLato is a sanserif typeface family designed in the Summer 2010 by Warsaw-based designer Lukasz Dziedzic ("Lato" means "Summer" in Polish). It tries to carefully balance some potentially conflicting priorities: it should seem quite "transparent" when used in body text but would display some original traits when used in larger sizes. The classical proportions, particularly visible in the uppercase, give the letterforms familiar harmony and elegance. At the same time, its sleek sanserif look makes evident the fact that Lato was designed in 2010, even though it does not follow any current trend. The semi-rounded details of the letters give Lato a feeling of warmth, while the strong structure provides stability and seriousness.http://www.typoland.com/http://www.typoland.com/designers/Lukasz_Dziedzic/Copyright (c) 2010-2013 by tyPoland Lukasz Dziedzic (http://www.typoland.com/) with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1 (http://scripts.sil.org/OFL).http://scripts.sil.org/OFL�tx	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a��������������������������������bc�d�e�������f����g�����h���jikmln�oqprsutvw�xzy{}|��~�������	
�����
����������������������������������������������� !"#NULLuni00A0uni00ADmacronperiodcenteredAogonekaogonekEogonekeogonekNacutenacuteSacutesacuteZacutezacute
Zdotaccent
zdotaccentuni02C9EuroDeltauni2669undercommaaccent
grave.case
dieresis.casemacron.case
acute.casecircumflex.case
caron.case
breve.casedotaccent.case	ring.case
tilde.casehungarumlaut.case
caron.salt�������������V��������V�,� `f-�, d ��P�&Z�E[X!#!�X �PPX!�@Y �8PX!�8YY �Ead�(PX!�E �0PX!�0Y ��PX f ��a �
PX` � PX!�
` �6PX!�6``YYY�+YY#�PXeYY-�, E �%ad �CPX�#B�#B!!Y�`-�,#!#! d�bB �#B�*! �C � ��+�0%�QX`PaRYX#Y! �@SX�+!�@Y#�PXeY-�,�C+�C`B-�,�#B# �#Ba��b�`�*-�,  E �Ec�Eb`D�`-�,  E �+#�%` E�#a d � PX!��0PX� �@YY#�PXeY�%#aDD�`-�,�E�aD-�	,�`  �	CJ�PX �	#BY�
CJ�RX �
#BY-�
, �b �c�#a�C` �` �#B#-�,KTX�DY$�
e#x-�,KQXKSX�DY!Y$�e#x-�
,�CUX�C�aB�
+Y�C�%B�	%B�
%B�# �%PX�C`�%B�� �#a�	*!#�a �#a�	*!�C`�%B�%a�	*!Y�	CG�
CG`��b �Ec�Eb`�#D�C�>�C`B-�,�ETX�#B `�a�

BB�`�
+�m+"Y-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�	+-�,�+�ETX�#B `�a�

BB�`�
+�m+"Y-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-� ,�+-�!,�+-�",�+-�#,�	+-�$, <�`-�%, `�
` C#�`C�%a�`�$*!-�&,�%+�%*-�',  G  �Ec�Eb`#a8# �UX G  �Ec�Eb`#a8!Y-�(,�ETX��'*�0"Y-�),�+�ETX��'*�0"Y-�*, 5�`-�+,�Ec�Eb�+�Ec�Eb�+��D>#8�**-�,, < G �Ec�Eb`�Ca8-�-,.<-�., < G �Ec�Eb`�Ca�Cc8-�/,�% . G�#B�%I��G#G#a Xb!Y�#B�.*-�0,��%�%G#G#a�E+e�.#  <�8-�1,��%�% .G#G#a �#B�E+ �`PX �@QX�  �&YBB# �C �#G#G#a#F`�C��b` �+ ��a �C`d#�CadPX�Ca�C`Y�%��ba#  �&#Fa8#�CF�%�CG#G#a` �C��b`# �+#�C`�+�%a�%��b�&a �%`d#�%`dPX!#!Y#  �&#Fa8Y-�2,�   �& .G#G#a#<8-�3,� �#B   F#G�+#a8-�4,��%�%G#G#a�TX. <#!�%�%G#G#a �%�%G#G#a�%�%I�%a�Ec# Xb!Yc�Eb`#.#  <�8#!Y-�5,� �C .G#G#a `� `f��b#  <�8-�6,# .F�%FRX <Y.�&+-�7,# .F�%FPX <Y.�&+-�8,# .F�%FRX <Y# .F�%FPX <Y.�&+-�9,�0+# .F�%FRX <Y.�&+-�:,�1+�  <�#B�8# .F�%FRX <Y.�&+�C.�&+-�;,��%�& .G#G#a�E+# < .#8�&+-�<,�%B��%�% .G#G#a �#B�E+ �`PX �@QX�  �&YBB# G�C��b` �+ ��a �C`d#�CadPX�Ca�C`Y�%��ba�%Fa8# <#8!  F#G�+#a8!Y�&+-�=,�0+.�&+-�>,�1+!#  <�#B#8�&+�C.�&+-�?,� G�#B�.�,*-�@,� G�#B�.�,*-�A,��-*-�B,�/*-�C,�E# . F�#a8�&+-�D,�#B�C+-�E,�<+-�F,�<+-�G,�<+-�H,�<+-�I,�=+-�J,�=+-�K,�=+-�L,�=+-�M,�9+-�N,�9+-�O,�9+-�P,�9+-�Q,�;+-�R,�;+-�S,�;+-�T,�;+-�U,�>+-�V,�>+-�W,�>+-�X,�>+-�Y,�:+-�Z,�:+-�[,�:+-�\,�:+-�],�2+.�&+-�^,�2+�6+-�_,�2+�7+-�`,��2+�8+-�a,�3+.�&+-�b,�3+�6+-�c,�3+�7+-�d,�3+�8+-�e,�4+.�&+-�f,�4+�6+-�g,�4+�7+-�h,�4+�8+-�i,�5+.�&+-�j,�5+�6+-�k,�5+�7+-�l,�5+�8+-�m,+�e�$Px�0-K�KRX��Y�c �#D�#p�E  �(`f �UX�%a�Ec#b�#D�*�*�*Y�(	ERD�*�D�$�QX�@�X�D�&�QX��X�DYYYY������Dlib64/ruby/2.2.0/rdoc/generator/template/darkfish/fonts/Lato-LightItalic.ttf000064400000267764150402106120022406 0ustar00GPOS'��HPGSUBV.TIlOS/2�8��J|`cmapRԟ�J��cvt &�6e�8fpgm�zAe�	�gaspe�glyf�^��O���head��d��6hhea�1��$hmtx?k���TkernO�Q��@g�loca�)N4,maxp>
�P` name�BbdP�}post:�\�b�prep�x9�op�
0JDFLTlatn����kernkernGr�����T��v		�

����
V
��8�,^$^�0��
D��J��J���J�L F �!z"##P#�$4$~%x&&�'�(�)�*�+�+�,J,�-n..�/$/V/�/�/�1�242n2�2�33V3�3�44J4�4�4�5�5�6�7�7�7�8~8�8�:�;";�;�<�=2>,?&?�@�A�B�C8C�D�E.F(>	�[�j�y�j�[$�[9>:A</?>D��F��G��H��R��T��m�yo�yy�y}�y��[��[��[��[��[��[��[�/����������������������������������������������������������[���������/�y�y�j�j�y�j�y�y��[>	�[�j�y�j�[$�[9>:A</?>D��F��G��H��R��T��m�yo�yy�y}�y��[��[��[��[��[��[��[�/����������������������������������������������������������[���������/�y�y�j�j�y�j�y�y��[-#��&��*��2��4��D��F��G��H��R��T��k��p��������������������������������������������������������������������������������������������>	�[�j�y�j�[$�[9>:A</?>D��F��G��H��R��T��m�yo�yy�y}�y��[��[��[��[��[��[��[�/����������������������������������������������������������[���������/�y�y�j�j�y�j�y�y��[0�=
�=
�=�I#��&��*��2��4��7�A9�=:�m<�d?�=Y�~Z��\��k��l�=m�Io�Ip��r�=y�I|�=}�I�����������������������d��~��~�����d�I�I�=�=�=�=�I�I�I&�y	��
�y
�y�j�j��$��7�G9��;��<�Q=��?��l�yr�y|�y�����������������������Q���Q�������y�y�j�y�y�j�j���0�=
�=
�=�I#��&��*��2��4��7�A9�=:�m<�d?�=Y�~Z��\��k��l�=m�Io�Ip��r�=y�I|�=}�I�����������������������d��~��~�����d�I�I�=�=�=�=�I�I�Iq>	��
>
>�G���G������"F#��$��&��*��-�o2��4��D��F��G��H��P��Q��R��S��T��U��V��X��Y��Z��\��]��k��l>m��o��p��r>tPuPw��y��{P|>}�������������������������������������������������������������������������������������������������������������������������������������������������������>�>�G�>�>�G��G�����$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������:�V
�V
�V��#��&��*��-22��4��7��8��9��:��<�y?��W��Y��Z��\��k��l�Vm��o��p��r�Vt�`u�`y��{�`|�V}�������������������������������������y�����������y�����V�V�V�V������
�om�oo�oy�o}�o�o�o�o�o�o$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������>	���L�L������"$��-�.D��F��G��H��P��Q��R��S��T��U��X��w������������������������������������������������������������������������������������������������������������L�L�L���	����$����������������������������+

��#��&��*��2��4��I��W��Y��Z��\��k��lm��o��p��ry��|}������������������������������������������3��
��
���$#��&��*��2��4��7�89�V:�y<�=?�VY�zZ��\�zk��l��m�$o�$p��r��t�=u�=y�${�=|��}�$�����������������������=��z��z�����=�$�$���������$�$�$$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������/	���=�=��$��-�VD��F��G��H��R��T�������������������������������������������������������������������������������������������=�=�=���$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������#��&��*��2��4��7��8��k��p���������������������������������������f	���L�L�L���]�]"-#��$��&��*��-�82��4��D�)F�)G�)H�)J�AP�]Q�]R�)S�]T�)U�]V�FX�]Y�QZ�y[�b\�L]�ek��m�Lo�Lp��w�]y�L}�L��������������������������������������������)��)��)��)��)��)��)��)��)��)��)��)��)��]��)��)��)��)��)��)��]��]��]��]��Q��Q���)���)�)�]���)�F�F�e�e�e�L�L�L�L�L�L�L�L���	����$����������������������������q>	��
>
>�G���G������"F#��$��&��*��-�o2��4��D��F��G��H��P��Q��R��S��T��U��V��X��Y��Z��\��]��k��l>m��o��p��r>tPuPw��y��{P|>}�������������������������������������������������������������������������������������������������������������������������������������������������������>�>�G�>�>�G��G�����NF	��
F
F����������$��-��D��F��G��H��J��P��Q��R��S��T��U��V��X��lFrFt<u<w��{<|F��������������������������������������������������������������������������������������������������������������F�F��F�F�����+

��#��&��*��2��4��I��W��Y��Z��\��k��lm��o��p��ry��|}������������������������������������������m4	�~
4
4�[�V�[�~����"2#��$�~&��*��-�82��4��D�GF�GG�GH�GJ�_P��Q��R�GS��T�GU��V�GX��]��k��l4m�Vo�Vp��r4t2u2w��y�V{2|4}�V��~��~��~��~��~��~��~�����������������������G��G��G��G��G��G��G��G��G��G��G��G��G�����G��G��G��G��G��G�������������~�G���G�G�����G�G�G�������V�V�4�4�[�4�4�[�V�[�V�V��~��" #��&��*��2��4��k��m��o��p��y��}��������������������������������-#��&��*��2��4��D��F��G��H��R��T��k��p��������������������������������������������������������������������������������������������:�V
�V
�V��#��&��*��-22��4��7��8��9��:��<�y?��W��Y��Z��\��k��l�Vm��o��p��r�Vt�`u�`y��{�`|�V}�������������������������������������y�����������y�����V�V�V�V��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|������K
K
K�y�ylKrKtdud{d|K�K�K�y�K�K�y�y��
��
��Y��\��l��r��t��u��{��|����������������D��F��G��H��R��T���������������������������������������������������������������������
��
��Y��\��l��r��t��u��{��|������������������
��
��Y��\��l��r��t��u��{��|������������������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|������"�y�yD��F��G��H��R��T��������������������������������������������������������������������y�y�y.	���~�~��$��D��F��G��H��R��T�������������������������������������������������������������������������������������������~�~�~���	��������$����������������������������������D��F��G��H��R��T�������������������������������������������������������������������.	���y�y��$��D��F��G��H��R��T�������������������������������������������������������������������������������������������y�y�y���-#��&��*��2��4��D��F��G��H��R��T��k��p��������������������������������������������������������������������������������������������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������>	�[�j�y�j�[$�[9>:A</?>D��F��G��H��R��T��m�yo�yy�y}�y��[��[��[��[��[��[��[�/����������������������������������������������������������[���������/�y�y�j�j�y�j�y�y��[&�y	��
�y
�y�j�j��$��7�G9��;��<�Q=��?��l�yr�y|�y�����������������������Q���Q�������y�y�j�y�y�j�j���&�y	��
�y
�y�j�j��$��7�G9��;��<�Q=��?��l�yr�y|�y�����������������������Q���Q�������y�y�j�y�y�j�j���$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������>	�[�j�y�j�[$�[9>:A</?>D��F��G��H��R��T��m�yo�yy�y}�y��[��[��[��[��[��[��[�/����������������������������������������������������������[���������/�y�y�j�j�y�j�y�y��[	�e�e$�e9F:F<(?F��e��e��e��e��e��e��e�(�e�(��e	�e�e$�e9F:F<(?F��e��e��e��e��e��e��e�(�e�(��e&�y	��
�y
�y�j�j��$��7�G9��;��<�Q=��?��l�yr�y|�y�����������������������Q���Q�������y�y�j�y�y�j�j���	�e�e$�e9F:F<(?F��e��e��e��e��e��e��e�(�e�(��e>	�[�j�y�j�[$�[9>:A</?>D��F��G��H��R��T��m�yo�yy�y}�y��[��[��[��[��[��[��[�/����������������������������������������������������������[���������/�y�y�j�j�y�j�y�y��[&�y	��
�y
�y�j�j��$��7�G9��;��<�Q=��?��l�yr�y|�y�����������������������Q���Q�������y�y�j�y�y�j�j���:�V
�V
�V��#��&��*��-22��4��7��8��9��:��<�y?��W��Y��Z��\��k��l�Vm��o��p��r�Vt�`u�`y��{�`|�V}�������������������������������������y�����������y�����V�V�V�V������:�V
�V
�V��#��&��*��-22��4��7��8��9��:��<�y?��W��Y��Z��\��k��l�Vm��o��p��r�Vt�`u�`y��{�`|�V}�������������������������������������y�����������y�����V�V�V�V������:�V
�V
�V��#��&��*��-22��4��7��8��9��:��<�y?��W��Y��Z��\��k��l�Vm��o��p��r�Vt�`u�`y��{�`|�V}�������������������������������������y�����������y�����V�V�V�V������:�V
�V
�V��#��&��*��-22��4��7��8��9��:��<�y?��W��Y��Z��\��k��l�Vm��o��p��r�Vt�`u�`y��{�`|�V}�������������������������������������y�����������y�����V�V�V�V������:�V
�V
�V��#��&��*��-22��4��7��8��9��:��<�y?��W��Y��Z��\��k��l�Vm��o��p��r�Vt�`u�`y��{�`|�V}�������������������������������������y�����������y�����V�V�V�V������:�V
�V
�V��#��&��*��-22��4��7��8��9��:��<�y?��W��Y��Z��\��k��l�Vm��o��p��r�Vt�`u�`y��{�`|�V}�������������������������������������y�����������y�����V�V�V�V������
�om�oo�oy�o}�o�o�o�o�o�o$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�����������������������������������������������	����$����������������������������	����$����������������������������	����$����������������������������	����$����������������������������m4	�~
4
4�[�V�[�~����"2#��$�~&��*��-�82��4��D�GF�GG�GH�GJ�_P��Q��R�GS��T�GU��V�GX��]��k��l4m�Vo�Vp��r4t2u2w��y�V{2|4}�V��~��~��~��~��~��~��~�����������������������G��G��G��G��G��G��G��G��G��G��G��G��G�����G��G��G��G��G��G�������������~�G���G�G�����G�G�G�������V�V�4�4�[�4�4�[�V�[�V�V��~$��	��
����
����$��7��9��;��<��=��?��@��`��l��r��|�������������������������������������������������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
��
��Y��\��l��r��t��u��{��|������������������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|��������
����
��@��[��`��l��r��|������.	���~�~��$��D��F��G��H��R��T�������������������������������������������������������������������������������������������~�~�~�����
����
��@��[��`��l��r��|������.	���~�~��$��D��F��G��H��R��T�������������������������������������������������������������������������������������������~�~�~���:�V
�V
�V��#��&��*��-22��4��7��8��9��:��<�y?��W��Y��Z��\��k��l�Vm��o��p��r�Vt�`u�`y��{�`|�V}�������������������������������������y�����������y�����V�V�V�V������
�om�oo�oy�o}�o�o�o�o�o�o��
����
��@��[��`��l��r��|������"�o
�o
�o�t9�j:��<�y?�jY��Z��\��l�om�to�tr�ot��u��y�t{��|�o}�t��y�������y�t�t�o�o�o�o�t�t�t��
��
��Y��\��l��r��t��u��{��|������������������
����
��@��[��`��l��r��|������m4	�~
4
4�[�V�[�~����"2#��$�~&��*��-�82��4��D�GF�GG�GH�GJ�_P��Q��R�GS��T�GU��V�GX��]��k��l4m�Vo�Vp��r4t2u2w��y�V{2|4}�V��~��~��~��~��~��~��~�����������������������G��G��G��G��G��G��G��G��G��G��G��G��G�����G��G��G��G��G��G�������������~�G���G�G�����G�G�G�������V�V�4�4�[�4�4�[�V�[�V�V��~��" #��&��*��2��4��k��m��o��p��y��}����������������������������������" #��&��*��2��4��k��m��o��p��y��}����������������������������������" #��&��*��2��4��k��m��o��p��y��}��������������������������������&�y	��
�y
�y�j�j��$��7�G9��;��<�Q=��?��l�yr�y|�y�����������������������Q���Q�������y�y�j�y�y�j�j���&�y	��
�y
�y�j�j��$��7�G9��;��<�Q=��?��l�yr�y|�y�����������������������Q���Q�������y�y�j�y�y�j�j���>	�[�j�y�j�[$�[9>:A</?>D��F��G��H��R��T��m�yo�yy�y}�y��[��[��[��[��[��[��[�/����������������������������������������������������������[���������/�y�y�j�j�y�j�y�y��[>	�[�j�y�j�[$�[9>:A</?>D��F��G��H��R��T��m�yo�yy�y}�y��[��[��[��[��[��[��[�/����������������������������������������������������������[���������/�y�y�j�j�y�j�y�y��[0�=
�=
�=�I#��&��*��2��4��7�A9�=:�m<�d?�=Y�~Z��\��k��l�=m�Io�Ip��r�=y�I|�=}�I�����������������������d��~��~�����d�I�I�=�=�=�=�I�I�I>	�[�j�y�j�[$�[9>:A</?>D��F��G��H��R��T��m�yo�yy�y}�y��[��[��[��[��[��[��[�/����������������������������������������������������������[���������/�y�y�j�j�y�j�y�y��[>	�[�j�y�j�[$�[9>:A</?>D��F��G��H��R��T��m�yo�yy�y}�y��[��[��[��[��[��[��[�/����������������������������������������������������������[���������/�y�y�j�j�y�j�y�y��[0�=
�=
�=�I#��&��*��2��4��7�A9�=:�m<�d?�=Y�~Z��\��k��l�=m�Io�Ip��r�=y�I|�=}�I�����������������������d��~��~�����d�I�I�=�=�=�=�I�I�I&�y	��
�y
�y�j�j��$��7�G9��;��<�Q=��?��l�yr�y|�y�����������������������Q���Q�������y�y�j�y�y�j�j���0�=
�=
�=�I#��&��*��2��4��7�A9�=:�m<�d?�=Y�~Z��\��k��l�=m�Io�Ip��r�=y�I|�=}�I�����������������������d��~��~�����d�I�I�=�=�=�=�I�I�I&�y	��
�y
�y�j�j��$��7�G9��;��<�Q=��?��l�yr�y|�y�����������������������Q���Q�������y�y�j�y�y�j�j���&�y	��
�y
�y�j�j��$��7�G9��;��<�Q=��?��l�yr�y|�y�����������������������Q���Q�������y�y�j�y�y�j�j���>	�[�j�y�j�[$�[9>:A</?>D��F��G��H��R��T��m�yo�yy�y}�y��[��[��[��[��[��[��[�/����������������������������������������������������������[���������/�y�y�j�j�y�j�y�y��[:�V
�V
�V��#��&��*��-22��4��7��8��9��:��<�y?��W��Y��Z��\��k��l�Vm��o��p��r�Vt�`u�`y��{�`|�V}�������������������������������������y�����������y�����V�V�V�V������r

#$&')-./2345789:;<=>?EHIKNPQRSUYZ[\^klmoprtuy{|}����������������������������������������������������������
8�DFLTlatn����case&case,liga2liga8sups>supsD,>B	

@LO,{tuCjqv�������I�,xx�A���P`KtyPL�J�z��� ��� �&
	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a���������������������������������rdei�x�pk�vj���sgw�����l|����cn���m}�b�������������������y���������������������q���z���`T@
~�1DS[a~�����    " & 0 : D �!"!&"""""""+"H"`"e%�&i���
 �1ARZ`x�����      & 0 9 D �!"!&"""""""+"H"`"d%�&i����������������{�u�q�[�H����$��������������I�����������������޸ޡޞ�:ڜ`T@
~�1DS[a~�����    " & 0 : D �!"!&"""""""+"H"`"e%�&i���
 �1ARZ`x�����      & 0 9 D �!"!&"""""""+"H"`"d%�&i����������������{�u�q�[�H����$��������������I�����������������޸ޡޞ�:ڜ/��,8<@��BK�	PX@3	`f[[		QCQ
D@4hf[[		QCQ
DY@@?>=<;:9751/+)&$$
+>32#'.<54>54.#"#"'4632#"&!!7!!3<G*6]E'!1;3$
A!1:1!/?#.B.{,! ,, !,����]#[��n$;S47O;-('rT.)*4C.$8'�� ..  ..��y$?�����
)@&hCSD

+#>74>32#"&�F
>F�!""'5���-PS\88\SP-<��""!5��t�
,@)	BkD

$+#"&'7!#"&'7e$
&]$
&��ܚ�$�ܚ�$Pr�:>yK�)PX@(
Y	CQ
C
D@&
Z
Y	C
DY@>=<;::5320-,'%#"!#!+#"&547!+#"546?3#76;>;!323+32%!!�'��Ԇ)��ۂ�
)։(�+�)�����	��,�����E
	��l��%��D�
	�m$�yE�r��B[9DO�@!
*BK�PX@2j

h
f_

SC	SD@1j

h
fk

SC	SDY@LKA@#$#$+.'7632.54>?>;#".'+4.'>ေ>	"/AU8o<rY6=r�g
#"d�7#;XAc@|c=D~�p$
#�-Lb6kY�b4��'DX2`TV,bP&!(#�/HhLN�pE��J@!!)%��0GhN\�N��:P9)��>c��6M9*,6Tl}��8�'0DXuK�PX@+[	[SC
C		SD@/[	[CSC
C		SDY@
US((%"&((($
+#".54>324.#"32>>;+#".54>324.#"32>�7Zt>3W?#4XvA3V?$J.>$0XC'-?$0WC(XA��B�7Zt>3W>#4XuA3V?$J.=$0XC(.?$0WB(qg�h4&ImGg�i5&JmI<W9)W�]<V8(V�b
���g�h5&JlGg�i5&KmH<W9)W�];V8(V�M����?OT@QK8J)#BhSCS
CSDFD/-&$ 
??	+2"#"'.#">7>;#"&/#".54>7.54>32>7�>hJ)40K6=eI(>;a2A
<TD�M�/lz�GG|\6:c�M106b��0.J_2>si^(��GrP,�)Kh?	 E:%,Mi>E�I�NH�G^�[���3V>#-U|NR�y\F�FP�d8��BeD"!:P/�Viz��e�
@	BkD

$+#"&'7e$
&��ܚ�$���H� �(+.54>7�!2!	++<'
4UxR&	S~T+�O���H		X���PV�����r	w������ �(+4.'&546?'&547>\!1!	++<'
4UxR&	S~T++O���H		Y���PV�����r	w��	����;*@'40/+'&"
	Bja;;+7>7'7>7./7.5<?3>?'.'x	
��
��2	

����

��n+n		n,n	��	n,n	
	n+n	
���3�.@+jkMRF+!!#!7!�7��O7L8�Q	�8��=G�;�G�?���@B?S
D"+74632'.54>7#"&?0'+/(8"'$	%/U#2;0)URL 	%9J,2c*x@MQE+!!n�	�RxN:����@SD&$+74>32#"&:!#7''5M""'55�����@kD""++6;	!&�''/�$Z��`�',@)SCSD''	+2#".54>2>54.#"�\�r@b��y\�r@b��.c��Q5\}Gc��Q5]}�H�ّ���jH�ّ�G�j��_�)ʂ�z;_��Ƀ�{;���)@&BhCR
D$+%!7#"/3!!F����I�5�(H�E��	'i��HF5�1<@9-BhSCQ
D+)#!
11+2>3!2!7>7>54.#"#"/>�K�c9;e�K�	 G#h�q
	!K}Z2-Mf9Du_F.\~��*S}R[���D�8!5!�C{|�NCcA 'Ig?Z�b4q��<�HU@RD
Bhh[SCSDB@:80/.-%#HH	+2#".'763232>54.#7>54.#"#"/>�K�`73XwCEgF#Q��ha�f<)	
2OpNa�g6$V�m	a�k8,Kd9Dv`F.[~��)OvLP~^?
7Oe:`�xD.\�Y
GhF"Ci�@7aG)B2X|L@_?'Hg@Z�b4>^�+@(
B\C
D!#+!+#!"&/367!Z�1T2�g;Tk�5b�2
�i�
-�� '��g��8�-@@=+*Bh[QCSD(#&(""+#!632#".'763232>54.#"'!2����kg�g3[��m:hXI 
-HgF[�yF(T�Xn�8�{_�$6a�P}NJJ#-'%=r�iBmN,%r���32@/B[CSD0.&$	+2#".54>7>;>32>54.#"�T�b6Q��oY�f7:Z>�	Q�&>B���*PsJ^�p=,QtG_�o=M5`�Rl��J7h�\:qwH	

��*K#?G�-DtU0=l�WFrP+Do����$@!BQC
D$'++>7!"&57�	��H.
��
�#	��


>f��&�%;OD@A
B[SCSD=<'&GE<O=O1/&;';%%	+".54>7.54>32'2>54.#"2>54.#"^�m<6`�MmpBx�fW�_1)MpH<cG'N��eY�l==`u7,]ZQ=$.Ty�[�Y+%HjES�\2!Fk1ZNY�fA!�hT�l?3WuCDw`F5NiBf�q<J3_�SOkA"8PkE?fJ(�9]v>6]E'2XwE2^H+�Z�22@/B[SC
D/-%#	+".54>32+>74.#"32>MP�^3O��iU�c5:V7�H T� >B�V+NnBV�l=)MnD]�i8Z3\�Of�I8f�VDrosE��I&L)BH�CqQ-9g�VClK(Ai�:��Z�;K�#PX@SCSD@[SDY�&&&$+74>32#"&4>32#"&:!#7''5f!#7''5M""'55D""'55<�e�)K@
B?K�#PX@SCS
D@[S
DY@	(& "+74632'.54>7#"&4>32#"&<0'+/(8"'$	%/o!#7''5U#2;0)URL 	%9J,2<""'55�	�5�(+���%(�B��A��

��
���	c!@YMQE+!!!!�;	��/:��+GG�	�5�(+	767>7&'&5<>7���L%(�����A


�~����'95@2BhfSCSD(&#,$+>32#7>54.#"#"'4>32#"&EQ\4=gK*1LYQ< @9NZL2 9M,>\@(
"!""'5
3'&Fa;SvXA<>(��,E>?PhH/K5#*#�g""!5a��2Wlf@c
^
?Bh[

[	[OSGYXb`XlYlOMCA=;86,*" 
WW
+%"&5<7#".54>3232>54.#"3267632#".54>32%2>7.#"IG?�L-B*!>Zq�N1T!';sZ7L��g\���a7V��z��_	o�����^<j���hpɘXDq��%!HHFp.;l\K5/�NH\S 9L,;|tfL,��=Z !*	I��v|�|?7f���z��PD>JP[�����ǡq=I�҉�ՙTD?lT7%AXck4!9*��X�
$@!BZC
D# +!#"&'!+3!.'XLe���L�b�>E�	
��b��z�*�5�*=@:B[SCS
D*(" !+3!2#!2654.#%!2>54&#!��yf�b/,QtI��C�s�JD��)OsJ��a�\,�����*OrHD|eI�yb�p<�����:]B$H:_zAw~�����/D@A
BhfSCSD'%" //+%2>32#".546$32#".#"�ItZA.	#.ix�PzŋKp��ItaQ&)N}`��aBv�E%+%*/K5X�⊹3�y,B*(,5,h���|NjJ�-�@SCS
D!(!&+#!!24.#!!2>-1[���g�$��}ʍLg?u�h���x�ޢZ/}ڵ�b3�U�ދy†H�c��?�(@%YQCQ
D+!!!!!!4�WG7��I���5��P��R��?�	"@YQC
D+!!!#!4�WJO��Pd�5��S�u�����9G@D$	Bh[SCSD1/(& 99+%2>7#"504>7!#".546$32#"'.#"�CobZ-0�k?5o}�R͐Mn��M~hV&	'7Kb?��]Bz�A*��
%:'Y�㊻3�w,@)'!h���|njK�!� @ZC
D+!#!#3!3sdS��Sd�dR(Rd��Y��k����@C
D+!#3	d�d�����'@$BhCSD#%$+#"&'7>3232>73}Hn�W6Y+

#1#;lW=
xd�u�q76%W�i���� &@#
B\C
D'(% +3267>;#"&'.+#3^M"(PQ�~�P	�*	TTc�d�L���Xf�U��X�@CR
D+7!!3�h�6�cUU��<�!'@$BhC
D!6(+67>;#>7+"'#32-
~E�W���	�n�W�D���
�y��#��F���!�@BC
D!+2>73#"'#3b
��W�.�Q�W�1��0��y�-�G����q�'@SCSD((($+#".546$324.#"32>qm���|ȍLn��}ɍLg?v�g�ޣ\@v�g�ޢ[0����xY�≺3�xY��{ŋKh��{ŊKg��?�/@,[SC
D



!+#!2#32>54&#GFc�T��J��v�T�^�k:��;�����l��H��S<j�V�����q�/T@
BK�PX@SCSCD@kSCSDY�((($&+#"&'#".546$324.#"32>q5a�U#N
�|�|ȍLn��}ɍLg?v�g�ޣ\@v�g�ޢ[0�⼓1�{
C2Y�≺3�xY��{ŋKh��{ŊKg��3�!7@4B[SC
D! *!+#!2#"'.#32>54&#POc�P��<n�^qU��!%SM�_�j8�������\�sH��@���4`�S�~'����==@:=BhfSCSD;9(&!#!+#".#"#"&'763232>54.54>32�";]FLwS,2QgmgQ2B{�m��<!	!-@U8T�`32QglhQ1:m�ef�8�&-&1Uq@=S;+)1FdI`��LcV+#)#9d�N>S:((0GgKQ�sDKH��� @QC
D+!#!7�
�8�c��6
�T��3T����#@ CSD+%2>73#".5473o]�uLkdl]��sg�o:kdl-W�FH~�cl��u˖VG|�e,-l��(T�h;
�@BC
D, +32>7>;#O&
	GN�:Y��c00��y�~�( @#BC
D+; +32>7>;2>7>;#.'#�N���
�M��Y�	��Y��h))��h))��y��/����@
BC
D)"'!+	32676;	#"&'+��Y
-�c��Y
���	b��
��4�r���p
���@BC
D,"+#32>7>;gIcI��X+�SG��H?�d! �,��$@!QCQ
D+!!7>7!7��28�A	���!	�R!
�RD��D�'@$[OQE!#+!+32D�&
�̼���#��
q��H�@kD" +32#"&'q''	�%�$�+���'@$B[OQE!#+!!7>;#"5�(���˻�
#v ��@	BkD+!+3#"&'&'+\;UC�

�F���
��L������1@MQE+!7�	�+�AA�~�@kD+2#"/�s5����<��s�+^@ BK�%PX@SCS
D@SC
CSDY@
#!++*' +!#"&5#".54>322>7&#"�.!&[gr=?^? ,Qp��R<h3��9odY#2;EC~o]D%[
9P�^41Z�PW��~\4��@u�d�-Pn��L��f����0h�"BK�%PX@CSCSD@!CSC
CSDY@(&00*%+33>32#"&'#"32>54&f�]a'`ju<AbB" ;Ul�HU�*9sk]$#7?C#?mYE/f���O�\32[�PM���b9MLl�@t�d��'7"3Xu��A��H��F�25@2BhfSCSD%(#&*$+%#".54>32#".#"32>325_[^5VT*!>Xn�I1OB6	
1N;T�k=AbC5TA1&
�;L,;j�VO��vV1#2! % Z��lEvV0")"
@����.p@"BK�%PX@CSCS
D@!CSC
CSDY@&$..
+!"&5#".54>323%2>7.#"�!'alv=AbB" ;Ul�IQ�,I\��I9rk]$#+�E?mYE/f
=Q�_42\�QL���b9GGK�Q@?t�c N@3Xt��@��F��F�,=7@42BhSCSD.--=.=*&%,+32>32#".54>32%">54.F8`�Ќ��5UC3(	1]_f:S�X.;Wp�OIe?��P�cC��O,,G%)JB;1')��$($
4K07e�ZK��zZ4)=GgDq�Q%)0361(B���%^�BK�!PX@kSCQD@kYSDY@%%!$%$	++'&546737>32#"&#"!2j*#�~�
:Wn?8
(-Q?-	
~���w~U�V+
0AhK{F�����>Td�@<& CBBK�PX@+	[[CSCSD@.h	[[SCSDY@VU^\UdVdQOGD7642*(
+#".54>32.5467#".54>32!4&'.#"32>2>54&#"�(/(#*#@t�dO�_4K��b"D#")[69bG(1]�W3Z#
�l 1X)c�a1'Hf>N�[2�@eF$n]@dE$l�7ZKA>@$3016@'?uZ6 =X8HoL(4 #H3$GgDE�h? 

L��1F%?T.+C-*FZ
6Wo8hi3Tm9jnf��,@)BCSC
D%%+33>32#654&#"f�^\(akp9po
^KMS6pi^$A��KuQ*��2]��|.)fj7g�Z��x��&@#SCC
D
+##".54>32Ny]y���W !�m����(4@1	BSCCSD%#!%%+#"&'7>323267#".54>32J�(?W5)JR
���4XA%
XQbW !c��0@-B\CC
D%(%!+3267>;#"&'.+#rm%�R�9	lP	��$=]����	{�_

�


�
�
�u��@C
D+33u�]���Q^��5Z@
BK�)PX@SC
D@CSC
DY@55%&($!	+332>32>32#>54&#"#654&#"^x+#N�qdU']gl5k^
]K>M1eaW#C]K	:Jr�I?�$�ꛫ~v"'PwO'�}
6_��|7Z]-Z�\��|E6TW�^��!P@
BK�)PX@SC
D@CSC
DY@!!%&!+332>32#654&#"^x+")cnt;op
^KMS8rk^$=�$��O}W-��	2[��|.)ej9i�]��G����%,@)SCSD%%	+%2>54&#"".54>32�W�f7�~:fVE/�wP�]3H��lP�]3I��>[��g��)Jex�F��K8j�`yߪe9i�^yޫf2����-m@!BK�)PX@SCSCD@!CSCSCDY@%#--*&!+32>32#"&'"32>54&2�+# 'amv=AbB" ;Ul�HQ�+;�9sj^$#,�E?mYE/f��F$��Q�_42[�PM���b9HF�?t�d��O@3Xu��A��<��s�.6@3#BSCSCD&$..*) +#"&547#".54>322>?&#"�6O&Yeo<?^? ,Qp��R<h3��9mdX#4;EC~o]D%[��sM}Z11Z�PW��~\4��?t�c�-Pn��L��^��,@)
BSC
D#$!+332>32&#"^x+#D�c)+.(k�=<�$�أ�Y��!����<=@:<BhfSCSD:8'%" #!+#".#"#"&'7>3232>54.54>32�
2J73[C'&?OTO?&3^�Ra�/	
5R>;aE&&>PSP>&2Z|JT|0i"9K*)8)%4K5@x]8C6" ' 'DY2,<+#2H4:kS144l���@+g@
	&BK�!PX@#jhQCSD@!jh\SDY@	%#(&&+74>7#"5?>;!!32>32#"&�D��B
./ ��E=0!3&(r9R]�$9,5)d	��G��)4!A:**3Zr����"P@
BK�%PX@CT
D@C
CTDY@""'!%+32>73#"&5#"&54>7!KMS7pj^$@^x,)cmt:oo
�/(fk8i�\�O|U-��	3Z��S��@BC
D+ +3267>;#SI�
�G�N�	��,*0
�Vx�) @#BC
D(!+: +32>76;2>7>;#"'&5+VC�	V$�
FB�VD���B���))��**
�(����V�@BC
D("(!+3267>;	#"&'+s�P
�	 	T��P
�	��P��rq	�0����QV����@
BCD,"!++32>7>;�C��J
�
�	I����
��	
	<�@QCQ
D+!!7>7!7!6�a/	�^
���
����K&	MKG��F�D7@4"5B[[OSG<:303)+4&#72654&54>;+";20#".54>�D9J\+NoE3:P1	'?.*")"'8#38U:#*#�9I;tw<�<U�_3(3Vn:B�>-TF3
)5 =vw{A)B0

	%BY4D{ut���@QD+3#�KK����D7@45"B[[OSG<:303)+3"+7>;2>54&54>7.54>54.+"&504>732�D9J\+NoE3:P1	'>/*")"'9"37V:#*#9I;tw<�<U�_3(3Vm;B�>-TF3
(6 =vw{A(C0

	%BY4D{utP���9@6jk[OSG
+2>53#".#"#4>32�%=*N <X83kib+&;*M <W84khb70B'7^F('0'0B'7^F('0'�����
)@&hSCD

+>734632#"&�D

)			C 5'#7''5��&-PS\88\SP-���'7#'55���/:K@H%BjhfkSCSD##'#	+.54>?>;#".'>32+V�b4L�ˀ#
#)V�.
	4N8�KlI*J]l:$
#�)LmE�i�r=@o�`�לX��;- ��"' 	1%�
�Q�]7lJ��i�=C@@+
Bh[SCS
D%&%##("	+#!>3!#!7>7#7>;>32#"'.#"!a�%'#/)�5$=/*��$Lz�fPuQ4(	&;XAN�`=	$����,F9/'@
#4I5W%)]�uC%?V0 <.4_�O��$��D#79@6!B
@ ?WSD42*((+467'7>327'#"&''7.732>54.#"(#�2�-n?>n-�1�%))#�1�-n?>m,�1�$)H+Ib89cJ++Jc98bI+�>m-�2�%*)$�2�-n?>m-�2�$)($�2�-m?8bI++Ib88cJ++Jc���!8@5	B
Z	YC
D! +!+!32>7>;!!!!#!7!7!�[��M	

�N��[��o��/]/��n��h�d##���9v8��8v���@YQD+3#3#�KKKK����X�}b�EYA@>EWM:#BhfWSDCA,*'%!#!+#".#"#"&'763232>54.5467.54>32>54.'K	1I76[B%(BUXUB(^](22]�Ta�0
4P>>bD$Im�mIdq*42Z}LS{0��!8IPR$NC2CJL#`M
#:N*)>3,-3AR7^�&"U;Dy\5B6" % 'CY2=S@:GaGU�)!V>;lR145��&<2+(+&kE(?3*&&+gv�qm%3K�'PX@
SD@OSGY�&(($+#".54>32#".54632

V
0"





"1
k���/Ka�@
BK�PX@4hf[[		SCSDK�PX@4hf[[		SCSD@4hf[[		SCSDYY@
^\*,*(#&(%"
+>32#".54>32#".#"32>4>32#".732>54.#"Y";�t`�s@Cw�c4WJA	!;[DS�a55_�L<V?-�%4^���dc���^44^���cc���^4<g��\��yW/h���g�#;FAv�fd�wB)!5b�WZ�a3,c���^44^���cd���^44^���d��h/Wy��]��ii���>d�0:L@I!Bh[	WSD21651:2:%#00
+"&=#".54>7>454#"#"&/>32'26?4cB2&)[�go'8)

	1i?*>)�=[+��9GD.11!*H7!w/-1A$	4Y�a*5)�KB.)����%�%(+77�

�			� =

�			� z
����	{z
����	�T��=K�	PX@_MQE@kMQEY�+!#!�<.O$���'c*x@MQE+!!n�	�RxNq���1GP��<BK�PX@/h		[
[SCSDK�PX@/h		[
[SCSD@/h		[
[SCSDYY@22PNJH2G2F)!**,&+4>32#".732>54.#"#32#"'.#'32654&+q4^���dd���^44^���cc���^4<g��\��yW/h���g�U����v
O��n�ywkw��c���^44^���cd���^44^���d��h/Wy��]��ii��yusvd�
��_
@a[\Tr�q$@MQE+!!y��	$@�D��'@WSD((($+4>32#".732>54.#"�0Qm>?nQ//Qn?>mQ0E$>U00T=$$=T00U>$n>mQ..Qm>>lQ//Ql>0T>$$>T00T?$$?T<P8<@9jhZMQE
	+!!#!7!!!�2�	�O1L1�S�2����V�jG�l�G��G���V/g@
-BK�!PX@h[SD@!h[OQEY@+)%#
//+2>3!2!767%>54.#"#"/>�(E33C%�(�'
"=,#/9Z$�V,?*-LD?!��;>@$-B=`e�|�V>�@:BK�PX@,hh[[SD@1hh[[OSGY@8631+*)( >>	+2#".'763232>54.#7>54.#"#"/>�(D2UE@A+H^3<N1 	
 9.,E/+D0ae".?T	$1BPV)<&K_K95U>!3C$
('0;-!2RH+B;0I2�T�@kD"++7>3T�7�
�������$7@4#BCS
CD$$&(!&+32673#"50>7#"&'#"&5RcjX�H][z3K�]Xn(.��cmybX�	;3X[JD*R#��y�B4�*@'hiSD+##!#".54>34	�U����Vm\�h8E��n�R�
�
y-SwKV�i;����@OSG($+4>32#".�$&&$P&&%%��TV@
BK�	PX@^jTD@jjTDY@+232654.'73#"&'764#3:(8"8:'JN2E(&D
��
2*�a73!5%��lQN�	BK�PX@jjQD@jjMRFY�$+37#"/733!��C�
�9R����%��h5�;��#)@&WSD##	+2#".54>2>54&#"�7U;+OpE8V;+Oq7T8RR:U8R�$C]9O�[2$B]9O�\2��*MlBYk+NlAYj���%�#(+7'&54767&'&54?'&54767&'&54?�	�	��	�	���
'	'
����
'	'
���`�(.Q@N"Bhh
Z\	C
D.-('&%$#%"#!"
+%3+#7!"5'3+6;37#"/733!>7!�n=���A��&�$(���C��9R�������'��"�Ud#�k%w
��h5t�|�H�9Jb@_D=7Bhh
Z[	CT
D
	JIHGFEB@;:52/-	9
9""
+%+6;2>3!2!7>7%>54.#"#*/>%37#"/733!w&�$(y(E33C%�(�'
"=,#/>X����C��9R���d#�K,?*-LD?!� �;>@$-F9`e %w
��h5�r�Y_y@vU
!.
	
B

h	
	
h

h	[

[\

SC
D_^SPMKEDCB:820*(YY"#!#+%3+#7!"5'3+6;%2#".'763232>54.#7>54.#"#*/>>7!�		n=���A��&�$(��(D2UE@A+H^3<N1 	"6*,E/+D0ae".?V		1BP+���'��"�Ud#)<&K_K95U>!3C$
-%0;-!2RH+E80I2���|��;�(:5@2BhfSCSD('#,$+#".54>?332>324>32#"&;DP\4;gL+1KZP; >6MXK1!8K)=]B'�!""'5�3'%Db>RtS=68%��+?99KeG0L5$*$P""!5����X�&$	@����X�&$H����X�&$
@����X�&$@����X�&$
@����X�&$@����:@7BYYQCS
D#	+!!!!!!+!!��6��W�X���Mwz���
5��P��R��b��z5+�����Lh@e9?
J	Bhf
hSCSC	S			DHF>=750.&$!LL+232654.'7.546$32#".#"32>32#"&'76#3:(8"/r��Fp��ItaQ&)N}`��aBv�bItZA.	#-ds�LJN2E(&D
��
2*r^�܅�3�y,B*(,5,h���|NjJ%+%*-I5L73!5%���?�&(	G���?�&(G���?�&(
G���?�&(
G�����&,	�����&,�����&,
�����&,
E`�!,@)YSCS
D!%(!+3!2#!#%4.#!!!!2>M�R�}ɍLl�����$T��?u�g��Hs��Jx�ݡZ��U�މ����r�y†H��>��c����!�&1������q�&2	������q�&2������q�&2
������q�&2������q�&2
���)C�	(+		'	7	)�cF6���Z,���9C�
����3u��3wp4��pO����!-9b@
21&%BK�PX@kCSCSD@jkSCSDY�**%(%$+#"&'+7.546$327>;.#"%4&'32>qm���h�C�")�JNn��m�Ez
4�DH�w:6%:�`�ޣ\"40��9�Z�ޢ[0����x>9��Q卺3�xE?��Q��v�E�<@h��(o�E�67g�������&8	�������&8�������&8
�������&8
������&<&�Y�,@)\[C
D"& +32+#332>54&#����J��u�#c�d-T�^�k:��i��l��H������T<j�V��;���P�@
JBK�PX@-hkSCQCSD@+hk[SCSDY@LKIGFD<:$"PP	+2#"&'763232>54.54>54.#"+'&573>�InJ%4MZM4.EQE.6_�M]~03L::^B$/HRH/5O]O54T=A{cEp*#���W|��-I\.FdL<:A+)3'&7TBL\3C6! % (E]58F0#-B58RC=GZ?D9&Bv�^�z�v	(_��K��<��s�&DCT��<����&Dv-��<��s�&D���<���h&D���<���m&Dj��<��s�&D�22��j�GWd�@?E!BK�)PX@5hh

[S	CSD@?hh

[S	CSCSDY@&YX^]XdYdSQIHCA=;860/'%
	GG+232>32#"&'#".54>?>54&#"#"/>32>32>7">54&Z7]D&>���y5UD3(	0\`g:t�[jo08]C%F��\[BaF.Q�crt9�����=0B'=oY<
�GtY;
��{4b� ;Q0:hN0))��$($
3K1��MjA8W<K}[6U#in(/(NPxkjx�'Eb?.B+-U|P+6c�V'<N-HQH��F�Nh@e;A
L	Bhf
hSCSC	S			DJH@?9720(&#!NN+232654.'7.54>32#".#"32>32#"&'76#3:(8"1OtM&!>Xn�I1OB6	
1N;T�k=AbC5TA1&
2XVV/ JN2E(&D
��
2*u?i�SO��vV1#2! % Z��lEvV0")"
7I,P73!5%��F��F�&HC���F��F�&Hv���F��F�&H����F��Qm&Hj���a`�&�C���x'�&�v���B%�&�����IDm&�j�I���y7I5@20B76
@[SD98A?8I9I,*" +&54?.'&54?7#".54>324654&'267.#"��3vD
Q�C�
�+H4@��~L�^5Ay�i1`TE\U�I��!	+GeDZ�`2*Hc.	y#0	=3�
	o(f~�Y����n9h�[m��U9X=��K��,��3dO1H|�^M{V.��^�j&Q����++��G����&RC����++��G����&Rv����++��G����&R�����++��G���j&R�����++��G���o&Rj����++��3^#+@([YOSG&&&%+!!4>32#"&4>32#"&���U�%$.&$,X%$.%#-�G{&1#%/�Y&1#%/ ��� *5u@
43$#BK�PX@!kCSCSD@!jkSCSDY@,++5,5'%  +"'+7.54>327>;&#"2>54&'��YF
!&+-H��lDq-=2u),I����7GnW�h9W�g9��G
K`�5�[yߪe(&S�5�Xyޫf��W�GY��AZ��kBn*�GB��r����&XC����++��r����&Xv����++��r����&X�����++��r���o&Xj����++��V����&\v����++;����0?@<"BCSCSCD(&00*%+3>32#"&'#"32>54&;�]b'`kt<AbB" ;Ul�HQ�+6$9sk]$#7>C#?mYF/g����N�\32[�PM���b9HG�E@u�d��'6"3Xu��A����V���o&\j����++�����'0L@I-BAhZC
CSD)($"''+2#"&54>7.'!+332>!.'�	
Q+BK*6e���L�bg7.3*$��E�		�!B:">6.��b��y$0<")0
��+,<��s�4F�K�%PX@&;B@&;BYK�%PX@*hSC	SCSD@.hSC
C	SCSDY@65><5F6F1/('$"44
+2#"&54>7.5#".54>32#32>2>7&#",	
Q+BK-8!&[gr=?^? ,Qp��R<h3u3+3*$�09odY#2;EC~o]D%[�!B:#@7/
4P�^41Z�PW��~\4�?$0<")0
6@u�d�-Pn��L���������&&���H��F�&Fv����++���?�'T@Q	B
		hYQCQ
C		SD$"''+2#"&54>7!!!!!!#32>X	
Q+BK*6����WG7��I�p3+3*$�!B:">6.�R��P��R$0<")0
F��F�L]e@bR9@?Bh	h
SCSCSDNMM]N]IG>=750.LL+2#"&54>7"#".54>3232>32732>">54.C	
Q+BK$/S�X.;Wp�OIe?8`�Ќ��5UC3(	/XZ_6)-3+3*$P�cC��O,,G�!B:93-7e�ZK��zZ4)=G)JB;1')��$($
1H0
$0<")0
�Dq�Q%)0361(xN�@C
D+#Ny]y��0��!@BCR
D+%!!7>?3g��~Dh�6H�	
�[c��=
��UMf@
^�S8�@BC
D+46?37#S�L]H��_\Z��
Tv��W2V���V���!�&1���^��&Qv���++���� 46@
BK�PX@*YSCQ
C	S
DK�PX@4YSCQ
CS
C		S
DK�#PX@*YSCQ
C	S
DK�%PX@4YSCQ
CS
C		S
D@2YSCQ
CQ
C		SDYYYY@1/'%  (%+!!!!!#".54>324.#"32>	�ZG2	��H��'+q��Vo�}Ce��W�rQ,]7g�]w̕U8h�\x̔T�R��P��R>N{U-W�އ�6�z5a�Vg��x‰Kk��x‰Ij�6����8N]S@PT6$BhS	C
SDPO:9O]P]FD9N:N42*(" 88+232>32#"&'#".54>32>2>54.#"">54.�=aD#8^�ƃ�y5UD3(	0\`g:y�Ui~GOtK$M��ix�:�8GrW>(:W;Z�h88Z~H{_?��{-0J� 9O0%F@80'��$($
3K1��EnL):aE���Z�uv��I2Vs��?CoO+T�ۈ6fP0q:k�_:EN'6)��'����&6��!����&Vv����++��'����&6
��!����&V�����++�����&<
&��,��&=F��	<�&]v����++��,��&=F��	<�&]�����++��,��&=F��	<�&]�����++��U�%SK�PX@ YSCSDK�PX@ YSCSDK�PX@ YSCSDK�PX@ YSCSDK�PX@ YSCSDK�PX@ YSCSDK�PX@ YSCSD@ YSCSDYYYYYYY@%%""	+#763>7'&546737>3#"!��Vw�W%3eWE���//�"5dWE1f	��b�\+/FqS
���1 FqR�Eo�R�
@BkD' +#"/+73R=	{�A�S������r�
@BkD' +32?6;#�A{�?�S������r�q$q��a� @WD+".547332>73e5K.C 3&,?+C#=Y�5H*4%3B&2ZD'2���@SD($+#".54>32�    F!!�s�=K�'PX@WSD@[OSGY�$&($+4>32#".732654&#"�/?##?//?##?/:@32@@23@$<++<$$;,,;$2@@22@@7��\
+@(B@jSD+2#"&54>732>F	
Q+BK1>-3+3*$�!B:%C:/
$0<")0
|�nhQK�PX@WSD@[OSGY@
+2673#".#"#>32�(.9(6 1-+&0:)5 2,*�7/$>.!(!:-$?-!'!����	#@ SD



	#++7>3!+7>3��)�=�-�
�������Y�\�BK�1PX@SCS
D@SC
CSDY@!$##	++#!#"&'7632327#7>3Y�q]q�VVsb0	�V��$�d��;ns	&
��!
�ld@MQE+!!���+dE�Bd@MQE+!!��	�VdE�#���(+&5467�\H):#7;X�B
1v?/*�\��(+'&5467>54&'&547E\H*8
�7;X�A		1v?,
����(+7'&5467>54&'&547�\H*8
�7;X�A		1v?,�#��)�(+&5467&5467�\H):�\H):#7;X�B
1v?/*7;X�B
1v?/*�e�+�(+'&5467>54&'&547%'&5467>54&'&547T\H*8
8\H*8
�7;X�A		1v?,7;X�A		1v?,����+�(+7'&5467>54&'&547%'&5467>54&'&547|\H*8
8\H*8
�7;X�A		1v?,7;X�A		1v?,����"YK�PX@#CSCSCD@OCSCDY@
$!#"+>3>32>72!#"'!�F�K/	GL�F��=O
h=�����&
����f����6��*
BK�PX@6		`

[CSCSC


D@1		`O

[CSC


DY@661.,+)'$##!##+%!7>3>32>72!!#.'#"'"&5467�X��F�K/	GL�F��Z_F�K,
G&OOM$�� ��&
�+�'�
91�|@OSG($+4>32#".9.Pi<=lP..Pl=<iP.T=lQ..Ql=<iP..Pi:����!1@SD&&(&&$+74>32#"&%4>32#"&%4>32#"&:!#7''5�!""'5�!#7''5M""'55'""!5'""'55}����'0DXl��K�PX@/[	[SC
C
		S
D@3[	[CSC
C
		S
DY@}{sqig_]US((%"&((($+#".54>324.#"32>>;+#".54>324.#"32>%#".54>324.#"32>�7Zt>3W?#4XvA3V?$J.>$0XC'-?$0WC(XA��B�7Zt>3W>#4XuA3V?$J.=$0XC(.?$0WB(�6Zt?3W>#4XuA3V?$J.=$0WC'->$0WC'qg�h4&ImGg�i5&JmI<W9)W�]<V8(V�b
���g�h5&JlGg�i5&KmH<W9)W�];V8(V�]g�h5&JlGg�i5&KmH<W9)W�];V8(V������(+7�

�			� z
����	����(+7'&54767&'&54?�	�	���
'	'
�����@C
D""+'+6;�&�$(d#)����J[@X9	Bh		h
[	[SC
S


DJIFEDC?=75$##%'$+3>32#".#"!#!!#!32>32#".5#73>7#L�q��r@jWI %,@W:_��`e��	�4a�Y>cM:)	 )^l|Fn�u<���^�ғN,A*$$@}�u*X0z��C%+%	!.K5Q�ه9/Y*�H�&9@6BhiS	D&&!4)
+>7>;#7+"'#32'###7��

6E<6	�	
�7<F7

��?E?�

n���'��|)�B?
:��:(;�:3@0 BSCS
D::***+!>54.#"!"504>7!7.54>32!�,d�yDCv�]p˛[0Y|L+�3�N�]4l��rÍPK��g�hY��yj�n7I�׎V�hF��
�Rw�\��YF��v}͛h�3W����/AC@@5"Bh[SCSD10;90A1A#)**$+>32#".54>32>54&#"#"'2>7.#"�%BBD&EjH&	k�ԂClM)&Eaw�K1WG4ol-G6%
NK�v_!7V?f�r=t=#5d�^AI����,SvKR��tT/7T:N�V���&F��x4dN0`��`y���i�@	BCR
D+)3!.'i�j�Y�j�������%&���w�$@!QCD+##!##7w	��_���_��	�P�i��i�P���*@'BQCQD+!!!767	&5467	�I��R�
�����R����R$2-
�{��@MQE+!!�<	���GES�"@Bj[
D+%!+!##"&5467!267>;RM��9�
�7�	��)#(�L��';OL@IK-B[
	O
	SG=<)(GE<O=O31(;);	''+".'#".54>32>32%2>7.#"!2>54.#"�3O?3"HPX30T>$3Un<3O?3"GPX31U?$2Up��(IDA -4@(-P=$-<m0Q;"-<$(ICA!,5?'BV..VB'$C`<N�_5'BV..VB'$C`<L�`7N&?T--T@&'Ge=.F0*Id:-F0&@S--T@&�e����'*@'BSCSD!%'U$+>32#"&#"#"&'7>3232>7�EZl;$4

	`�"�Kas@;
 6[J7>W�U+
,
����d�Z)	' GrQ����7d@a!0"/B[[[	O	SG42+)&$77

+2>7#".#"'>322>7#".#"'>3243-%#i83a]\.3,%#h<4a][2-&#h84a]\/3,$$h<5a]Z(8+.$,$6-/$,$��8*/$,$6-0%+%��	pkK�	PX@)^_	ZMQE@'jk	ZMQEY@

+!3!!!!#!7!7!��F��͇�	�F�E���Z��>c
��G�G��G�gP�O@@MQE+!!���&)$�@A�
��v>��	��
x��IuP�Q@@MQE+%!7!7>767.'&5<>7c�	�A��G&)$���PI��>	
����f�"@
BMQE+3	#	>7	.'��B��nB��L		M��		�@����@�S�����~�@ja+3v���0@�T�%k@BK�!PX@"kSCQC
D@ k[SC
DY@!&%$	+!#!+'&5737>32#"&#"8w^n�Fl*"�~�Dl�X%$ 	
,"���<}���v	*U\�e6.��@���$�@

BK�!PX@$kSC
	QC
DK�%PX@"k
	[SC
DK�)PX@&k
	[CSC
D@-hk
	[CSC
DYYY@$$!!%$++'&5737>32;#.#"!3l*"�~�Bj�YE�94�]�/h0EqU7	~���v	*BX�m>
�nL/X~NBFS�����-K�1PX@jD@
jaY@	+#�n;N[��{��	@ja		+2#"&/��I	��	
���6��@OSG$$$"+#"&54632#"&546324/../O.--.�,, -- ,, --�6�p@MQE+!!�	��p:,��	@ja	#++7>3���I����
	���@Bja+ +#"&/.'+73�G��G�W������@Bja+ +326?>;#�G��G�W��������(@%jOSG
+"&547332673�gc>DNXU?
{�XT9AQHcr@8��@OSG($+#".54>32�  ���1�!@[OSG$&($+4>32#".732654&#"�-<"">-->""<-5?32@@23?^";**;"#:**:#2@@22@@���1@.[OSG
+2673#".#"#>32&/4&4 3/-&/7'4 4.-O7+"<, & 9*"<, % ��	+@(OSG



	#++7>3!+7>3�-�Z�3���������@kD	+2+�	$U�
!;XB
-��M�_<�	�ʓ^p�ӡ���	��V �����/�T����P�r�}�M��(�(�����?dc�:����Z���F�q�>�g����f���:�<+���+���a�������v�?��`�p�&�B������n���F������'5�E���T��S��,(D�q(����<�f]H�@F8Bq��f�x��mxc�u^^�G�2�<�^!�l�r�SSVV���VF	(GX�(�P�T��������X��XvMkk�2���dcMqr���<������y�����2��������������������������������?�?�?�?�&�&�&�&��En��������������OE�E�E�E�S�F�;�<�<�<�<�<�<�2]HFFFF�a�x�B�I�I^�G�G�G�G�G��� �r�r�r�r�V�;�V����<�]H?�F�x�02Sn�^��6�'!�'!S��,F	�,F	�,F	�o�r�2�7|�<������n�n��
g�g�g��,�,f�9`: }E�E��)!�l(+W���T�����bE�L�e����+g+u�����@@S{��,���@���g�P`�	�[�j�y�j�[$�[9>:A</?>D��F��G��H��R��T��m�yo�yy�y}�y��[��[��[��[��[��[��[�/����������������������������������������������������������[���������/�y�y�j�j�y�j�y�y��[
	�[
�j
�y
�j
�[
$�[
9>
:A
</
?>
D��
F��
G��
H��
R��
T��
m�y
o�y
y�y
}�y
��[
��[
��[
��[
��[
��[
��[
�/
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
�[
��
��
��
��
�/
�y
�y
�j
�j
�y
�j
�y
�y
��[#��&��*��2��4��D��F��G��H��R��T��k��p��������������������������������������������������������������������������������������������
	�[
�j
�y
�j
�[
$�[
9>
:A
</
?>
D��
F��
G��
H��
R��
T��
m�y
o�y
y�y
}�y
��[
��[
��[
��[
��[
��[
��[
�/
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
���
�[
��
��
��
��
�/
�y
�y
�j
�j
�y
�j
�y
�y
��[�=
�=
�=�I#��&��*��2��4��7�A9�=:�m<�d?�=Y�~Z��\��k��l�=m�Io�Ip��r�=y�I|�=}�I�����������������������d��~��~�����d�I�I�=�=�=�=�I�I�I�y	��
�y
�y�j�j��$��7�G9��;��<�Q=��?��l�yr�y|�y�����������������������Q���Q�������y�y�j�y�y�j�j����=
�=
�=�I#��&��*��2��4��7�A9�=:�m<�d?�=Y�~Z��\��k��l�=m�Io�Ip��r�=y�I|�=}�I�����������������������d��~��~�����d�I�I�=�=�=�=�I�I�I>	��
>
>�G���G������"F#��$��&��*��-�o2��4��D��F��G��H��P��Q��R��S��T��U��V��X��Y��Z��\��]��k��l>m��o��p��r>tPuPw��y��{P|>}�������������������������������������������������������������������������������������������������������������������������������������������������������>�>�G�>�>�G��G�����#��#	��#
��#��#
��#��#$��#7��#9��#;��#<��#=��#?��#@��#`��#l��#r��#|��#���#���#���#���#���#���#���#���#��#��#��#��#��#��#��#��#��#���$�V$
�V$
�V$��$#��$&��$*��$-2$2��$4��$7��$8��$9��$:��$<�y$?��$W��$Y��$Z��$\��$k��$l�V$m��$o��$p��$r�V$t�`$u�`$y��${�`$|�V$}��$���$���$���$���$���$���$���$���$���$���$���$��y$���$���$��$��$�y$��$��$�V$�V$�V$�V$��$��$��&�o&m�o&o�o&y�o&}�o&�o&�o&�o&�o&�o'��'	��'
��'��'
��'��'$��'7��'9��';��'<��'=��'?��'@��'`��'l��'r��'|��'���'���'���'���'���'���'���'���'��'��'��'��'��'��'��'��'��'���)	��)�L)�L)��)��)��)")$��)-�.)D��)F��)G��)H��)P��)Q��)R��)S��)T��)U��)X��)w��)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)���)��)��)��)��)��)��)�L)�L)�L)���-	��-��-$��-���-���-���-���-���-���-���-��-���..
.
.��.#��.&��.*��.2��.4��.I��.W��.Y��.Z��.\��.k��.l.m��.o��.p��.r.y��.|.}��.���.���.���.���.���.���.���.���.���.��.��.�.�.�.�.�.�.�.�.�/��/
��/
��/�$/#��/&��/*��/2��/4��/7�8/9�V/:�y/<�=/?�V/Y�z/Z��/\�z/k��/l��/m�$/o�$/p��/r��/t�=/u�=/y�$/{�=/|��/}�$/���/���/���/���/���/���/���/��=/��z/��z/��/��/�=/�$/�$/��/��/��/��/�$/�$/�$2��2	��2
��2��2
��2��2$��27��29��2;��2<��2=��2?��2@��2`��2l��2r��2|��2���2���2���2���2���2���2���2���2��2��2��2��2��2��2��2��2��2���3	��3�=3�=3��3$��3-�V3D��3F��3G��3H��3R��3T��3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3���3��3��3��3��3��3�=3�=3�=3���4��4	��4
��4��4
��4��4$��47��49��4;��4<��4=��4?��4@��4`��4l��4r��4|��4���4���4���4���4���4���4���4���4��4��4��4��4��4��4��4��4��4���5#��5&��5*��52��54��57��58��5k��5p��5���5���5���5���5���5���5���5���5���5���5���5��5��7	��7�L7�L7�L7��7�]7�]7"-7#��7$��7&��7*��7-�872��74��7D�)7F�)7G�)7H�)7J�A7P�]7Q�]7R�)7S�]7T�)7U�]7V�F7X�]7Y�Q7Z�y7[�b7\�L7]�e7k��7m�L7o�L7p��7w�]7y�L7}�L7���7���7���7���7���7���7���7���7���7���7���7���7���7���7��)7��)7��)7��)7��)7��)7��)7��)7��)7��)7��)7��)7��)7��]7��)7��)7��)7��)7��)7��)7��]7��]7��]7��]7��Q7��Q7��7�)7��7�)7�)7�]7��7�)7�F7�F7�e7�e7�e7�L7�L7�L7�L7�L7�L7�L7�L7���8	��8��8$��8���8���8���8���8���8���8���8��8���9>9	��9
>9
>9�G9��9�G9��9��9��9"F9#��9$��9&��9*��9-�o92��94��9D��9F��9G��9H��9P��9Q��9R��9S��9T��9U��9V��9X��9Y��9Z��9\��9]��9k��9l>9m��9o��9p��9r>9tP9uP9w��9y��9{P9|>9}��9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9���9��9��9��9��9��9��9��9��9��9��9��9��9��9�9�9�>9�>9�G9�>9�>9�G9�9�G9�9�9���:F:	��:
F:
F:��:��:��:��:��:$��:-��:D��:F��:G��:H��:J��:P��:Q��:R��:S��:T��:U��:V��:X��:lF:rF:t<:u<:w��:{<:|F:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:���:��:��:��:��:��:��:��:��:�F:�F:�:�F:�F:�:�:���;;
;
;��;#��;&��;*��;2��;4��;I��;W��;Y��;Z��;\��;k��;l;m��;o��;p��;r;y��;|;}��;���;���;���;���;���;���;���;���;���;��;��;�;�;�;�;�;�;�;�;�<4<	�~<
4<
4<�[<�V<�[<�~<��<��<"2<#��<$�~<&��<*��<-�8<2��<4��<D�G<F�G<G�G<H�G<J�_<P��<Q��<R�G<S��<T�G<U��<V�G<X��<]��<k��<l4<m�V<o�V<p��<r4<t2<u2<w��<y�V<{2<|4<}�V<��~<��~<��~<��~<��~<��~<��~<���<���<���<���<���<���<���<��G<��G<��G<��G<��G<��G<��G<��G<��G<��G<��G<��G<��G<���<��G<��G<��G<��G<��G<��G<���<���<���<���<�~<�G<��<�G<�G<��<��<�G<�G<�G<��<��<��<�V<�V<�4<�4<�[<�4<�4<�[<�V<�[<�V<�V<��~=��=" =#��=&��=*��=2��=4��=k��=m��=o��=p��=y��=}��=���=���=���=���=���=���=���=��=��=�=�=�=�=�>#��>&��>*��>2��>4��>D��>F��>G��>H��>R��>T��>k��>p��>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>���>��>��>��>��>��>��?�V?
�V?
�V?��?#��?&��?*��?-2?2��?4��?7��?8��?9��?:��?<�y??��?W��?Y��?Z��?\��?k��?l�V?m��?o��?p��?r�V?t�`?u�`?y��?{�`?|�V?}��?���?���?���?���?���?���?���?���?���?���?���?��y?���?���?��?��?�y?��?��?�V?�V?�V?�V?��?��?��E��E
��E��E
��E@��E[��E`��El��Er��E|��E�E�E�E�H��H
��H��H
��H@��H[��H`��Hl��Hr��H|��H�H�H�H�IKI
KI
KI�yI�yIlKIrKItdIudI{dI|KI�KI�KI�yI�KI�KI�yI�yK��K
��K
��KY��K\��Kl��Kr��Kt��Ku��K{��K|��K���K���K��K��K��K��ND��NF��NG��NH��NR��NT��N���N���N���N���N���N���N���N���N���N���N���N���N���N���N���N���N���N���N���N��N��N��N��P��P
��P
��PY��P\��Pl��Pr��Pt��Pu��P{��P|��P���P���P��P��P��P��Q��Q
��Q
��QY��Q\��Ql��Qr��Qt��Qu��Q{��Q|��Q���Q���Q��Q��Q��Q��R��R
��R��R
��R@��R[��R`��Rl��Rr��R|��R�R�R�R�S��S
��S��S
��S@��S[��S`��Sl��Sr��S|��S�S�S�S�U�yU�yUD��UF��UG��UH��UR��UT��U���U���U���U���U���U���U���U���U���U���U���U���U���U���U���U���U���U���U���U��U��U��U��U�yU�yU�yY	��Y�~Y�~Y��Y$��YD��YF��YG��YH��YR��YT��Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y���Y��Y��Y��Y��Y��Y�~Y�~Y�~Y���Z	��Z��Z��Z��Z$��Z���Z���Z���Z���Z���Z���Z���Z��Z��Z��Z��Z���[D��[F��[G��[H��[R��[T��[���[���[���[���[���[���[���[���[���[���[���[���[���[���[���[���[���[���[���[��[��[��[��\	��\�y\�y\��\$��\D��\F��\G��\H��\R��\T��\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\���\��\��\��\��\��\�y\�y\�y\���^#��^&��^*��^2��^4��^D��^F��^G��^H��^R��^T��^k��^p��^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^���^��^��^��^��^��^��k��k	��k
��k��k
��k��k$��k7��k9��k;��k<��k=��k?��k@��k`��kl��kr��k|��k���k���k���k���k���k���k���k���k��k��k��k��k��k��k��k��k��k���l	�[l�jl�yl�jl�[l$�[l9>l:Al</l?>lD��lF��lG��lH��lR��lT��lm�ylo�yly�yl}�yl��[l��[l��[l��[l��[l��[l��[l�/l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l���l�[l��l��l��l��l�/l�yl�yl�jl�jl�yl�jl�yl�yl��[m�ym	��m
�ym
�ym�jm�jm��m$��m7�Gm9��m;��m<�Qm=��m?��ml�ymr�ym|�ym���m���m���m���m���m���m���m��Qm��m�Qm��m��m��m�ym�ym�jm�ym�ym�jm�jm���o�yo	��o
�yo
�yo�jo�jo��o$��o7�Go9��o;��o<�Qo=��o?��ol�yor�yo|�yo���o���o���o���o���o���o���o��Qo��o�Qo��o��o��o�yo�yo�jo�yo�yo�jo�jo���p��p	��p
��p��p
��p��p$��p7��p9��p;��p<��p=��p?��p@��p`��pl��pr��p|��p���p���p���p���p���p���p���p���p��p��p��p��p��p��p��p��p��p���r	�[r�jr�yr�jr�[r$�[r9>r:Ar</r?>rD��rF��rG��rH��rR��rT��rm�yro�yry�yr}�yr��[r��[r��[r��[r��[r��[r��[r�/r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r���r�[r��r��r��r��r�/r�yr�yr�jr�jr�yr�jr�yr�yr��[t	�et�et$�et9Ft:Ft<(t?Ft��et��et��et��et��et��et��et�(t�et�(t��eu	�eu�eu$�eu9Fu:Fu<(u?Fu��eu��eu��eu��eu��eu��eu��eu�(u�eu�(u��ey�yy	��y
�yy
�yy�jy�jy��y$��y7�Gy9��y;��y<�Qy=��y?��yl�yyr�yy|�yy���y���y���y���y���y���y���y��Qy��y�Qy��y��y��y�yy�yy�jy�yy�yy�jy�jy���{	�e{�e{$�e{9F{:F{<({?F{��e{��e{��e{��e{��e{��e{��e{�({�e{�({��e|	�[|�j|�y|�j|�[|$�[|9>|:A|</|?>|D��|F��|G��|H��|R��|T��|m�y|o�y|y�y|}�y|��[|��[|��[|��[|��[|��[|��[|�/|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|���|�[|��|��|��|��|�/|�y|�y|�j|�j|�y|�j|�y|�y|��[}�y}	��}
�y}
�y}�j}�j}��}$��}7�G}9��};��}<�Q}=��}?��}l�y}r�y}|�y}���}���}���}���}���}���}���}��Q}��}�Q}��}��}��}�y}�y}�j}�y}�y}�j}�j}�����V�
�V�
�V����#���&���*���-2�2���4���7���8���9���:���<�y�?���W���Y���Z���\���k���l�V�m���o���p���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������y����������������y��������V��V��V��V�����������V�
�V�
�V����#���&���*���-2�2���4���7���8���9���:���<�y�?���W���Y���Z���\���k���l�V�m���o���p���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������y����������������y��������V��V��V��V�����������V�
�V�
�V����#���&���*���-2�2���4���7���8���9���:���<�y�?���W���Y���Z���\���k���l�V�m���o���p���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������y����������������y��������V��V��V��V�����������V�
�V�
�V����#���&���*���-2�2���4���7���8���9���:���<�y�?���W���Y���Z���\���k���l�V�m���o���p���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������y����������������y��������V��V��V��V�����������V�
�V�
�V����#���&���*���-2�2���4���7���8���9���:���<�y�?���W���Y���Z���\���k���l�V�m���o���p���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������y����������������y��������V��V��V��V�����������V�
�V�
�V����#���&���*���-2�2���4���7���8���9���:���<�y�?���W���Y���Z���\���k���l�V�m���o���p���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������y����������������y��������V��V��V��V�����������o�m�o�o�o�y�o�}�o��o��o��o��o��o����	���
������
������$���7���9���;���<���=���?���@���`���l���r���|���������������������������������������������������������������������	���
������
������$���7���9���;���<���=���?���@���`���l���r���|���������������������������������������������������������������������	���
������
������$���7���9���;���<���=���?���@���`���l���r���|���������������������������������������������������������������������	���
������
������$���7���9���;���<���=���?���@���`���l���r���|���������������������������������������������������������������������	���
������
������$���7���9���;���<���=���?���@���`���l���r���|���������������������������������������������������������������������	���
������
������$���7���9���;���<���=���?���@���`���l���r���|������������������������������������������������������������������	������$��������������������������������������	������$��������������������������������������	������$��������������������������������������	������$��������������������������������������4�	�~�
4�
4��[��V��[��~�������"2�#���$�~�&���*���-�8�2���4���D�G�F�G�G�G�H�G�J�_�P���Q���R�G�S���T�G�U���V�G�X���]���k���l4�m�V�o�V�p���r4�t2�u2�w���y�V�{2�|4�}�V���~���~���~���~���~���~���~�������������������������������G���G���G���G���G���G���G���G���G���G���G���G���G�������G���G���G���G���G���G������������������~��G�����G��G��������G��G��G�����������V��V��4��4��[��4��4��[��V��[��V��V���~����	���
������
������$���7���9���;���<���=���?���@���`���l���r���|���������������������������������������������������������������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
���
���Y���\���l���r���t���u���{���|��������������������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|��������������
������
���@���[���`���l���r���|�����������	����~��~����$���D���F���G���H���R���T���������������������������������������������������������������������������������������������������������������������������~��~��~��������
������
���@���[���`���l���r���|�����������	����~��~����$���D���F���G���H���R���T���������������������������������������������������������������������������������������������������������������������������~��~��~������V�
�V�
�V����#���&���*���-2�2���4���7���8���9���:���<�y�?���W���Y���Z���\���k���l�V�m���o���p���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������y����������������y��������V��V��V��V�����������o�m�o�o�o�y�o�}�o��o��o��o��o��o����
������
���@���[���`���l���r���|������������o�
�o�
�o��t�9�j�:���<�y�?�j�Y���Z���\���l�o�m�t�o�t�r�o�t���u���y�t�{���|�o�}�t���y����������y��t��t��o��o��o��o��t��t��t����
���
���Y���\���l���r���t���u���{���|��������������������������
������
���@���[���`���l���r���|�����������4�	�~�
4�
4��[��V��[��~�������"2�#���$�~�&���*���-�8�2���4���D�G�F�G�G�G�H�G�J�_�P���Q���R�G�S���T�G�U���V�G�X���]���k���l4�m�V�o�V�p���r4�t2�u2�w���y�V�{2�|4�}�V���~���~���~���~���~���~���~�������������������������������G���G���G���G���G���G���G���G���G���G���G���G���G�������G���G���G���G���G���G������������������~��G�����G��G��������G��G��G�����������V��V��4��4��[��4��4��[��V��[��V��V���~����" �#���&���*���2���4���k���m���o���p���y���}��������������������������������������������������" �#���&���*���2���4���k���m���o���p���y���}��������������������������������������������������" �#���&���*���2���4���k���m���o���p���y���}������������������������������������������������y�	���
�y�
�y��j��j����$���7�G�9���;���<�Q�=���?���l�y�r�y�|�y�������������������������������Q�����Q�����������y��y��j��y��y��j��j������y�	���
�y�
�y��j��j����$���7�G�9���;���<�Q�=���?���l�y�r�y�|�y�������������������������������Q�����Q�����������y��y��j��y��y��j��j�����	�[��j��y��j��[�$�[�9>�:A�</�?>�D���F���G���H���R���T���m�y�o�y�y�y�}�y���[���[���[���[���[���[���[��/������������������������������������������������������������������������������[��������������/��y��y��j��j��y��j��y��y���[�	�[��j��y��j��[�$�[�9>�:A�</�?>�D���F���G���H���R���T���m�y�o�y�y�y�}�y���[���[���[���[���[���[���[��/������������������������������������������������������������������������������[��������������/��y��y��j��j��y��j��y��y���[��=�
�=�
�=��I�#���&���*���2���4���7�A�9�=�:�m�<�d�?�=�Y�~�Z���\���k���l�=�m�I�o�I�p���r�=�y�I�|�=�}�I�������������������������������d���~���~��������d��I��I��=��=��=��=��I��I��I�	�[��j��y��j��[�$�[�9>�:A�</�?>�D���F���G���H���R���T���m�y�o�y�y�y�}�y���[���[���[���[���[���[���[��/������������������������������������������������������������������������������[��������������/��y��y��j��j��y��j��y��y���[�	�[��j��y��j��[�$�[�9>�:A�</�?>�D���F���G���H���R���T���m�y�o�y�y�y�}�y���[���[���[���[���[���[���[��/������������������������������������������������������������������������������[��������������/��y��y��j��j��y��j��y��y���[��=�
�=�
�=��I�#���&���*���2���4���7�A�9�=�:�m�<�d�?�=�Y�~�Z���\���k���l�=�m�I�o�I�p���r�=�y�I�|�=�}�I�������������������������������d���~���~��������d��I��I��=��=��=��=��I��I��I��y�	���
�y�
�y��j��j����$���7�G�9���;���<�Q�=���?���l�y�r�y�|�y�������������������������������Q�����Q�����������y��y��j��y��y��j��j������=�
�=�
�=��I�#���&���*���2���4���7�A�9�=�:�m�<�d�?�=�Y�~�Z���\���k���l�=�m�I�o�I�p���r�=�y�I�|�=�}�I�������������������������������d���~���~��������d��I��I��=��=��=��=��I��I��I��y�	���
�y�
�y��j��j����$���7�G�9���;���<�Q�=���?���l�y�r�y�|�y�������������������������������Q�����Q�����������y��y��j��y��y��j��j������y�	���
�y�
�y��j��j����$���7�G�9���;���<�Q�=���?���l�y�r�y�|�y�������������������������������Q�����Q�����������y��y��j��y��y��j��j�����	�[��j��y��j��[�$�[�9>�:A�</�?>�D���F���G���H���R���T���m�y�o�y�y�y�}�y���[���[���[���[���[���[���[��/������������������������������������������������������������������������������[��������������/��y��y��j��j��y��j��y��y���[��V�
�V�
�V����#���&���*���-2�2���4���7���8���9���:���<�y�?���W���Y���Z���\���k���l�V�m���o���p���r�V�t�`�u�`�y���{�`�|�V�}�������������������������������������������������y����������������y��������V��V��V��V��������������.��B�>t�Tn��<�4t�@x		n	�
 
L
r
��l�

B
l
�"^��N��R�@��P���:j����r�N"j�Pj�@�
j���j����dd�$�  n �!*!|"f"�#&#V#p$@$Z$�$�%`&& &v&�&�'6'|'�((�)$)�*X*d*p*|*�*�*�*�+�+�+�+�+�+�+�+�+�,>,J,V,b,n,z,�,�-<-H-T-`-l-x-�.j.v.�.�.�.�.�/�0<0H0T0`0l0x0�0�0�1 121D1V1h1z1�1�2j2|2�2�2�2�3,3>3�4r4~4�4�5�5�5�6.6:6L7:7�7�888 8,888J8V8h8t8�9l9�9�9�9�:&:t:�;
;>;�;�;�;�<"<J<�<�==�>(>T>�?�?�?�@@�@�AjA�BBBB�B�B�CjC�DBD�D�EE`EzE�F�F�F�GG(GJGxG�G�HHDH�H�H��d"/n�	� ��
��/��(�0B	B
�Q-2E
�w9	S	g	{	^�	 �	P	 �	`U	�		�	
��	0
�	d
�	
�	4�	�	�Copyright (c) 2010-2013 by tyPoland Lukasz Dziedzic with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1.Lato LightItalictyPolandLukaszDziedzic: Lato Light Italic: 2013Lato Light ItalicVersion 1.105; Western+Polish opensourceLato-LightItalicLato is a trademark of tyPoland Lukasz Dziedzic.Lukasz DziedzicLato is a sanserif typeface family designed in the Summer 2010 by Warsaw-based designer Lukasz Dziedzic ("Lato" means "Summer" in Polish). It tries to carefully balance some potentially conflicting priorities: it should seem quite "transparent" when used in body text but would display some original traits when used in larger sizes. The classical proportions, particularly visible in the uppercase, give the letterforms familiar harmony and elegance. At the same time, its sleek sanserif look makes evident the fact that Lato was designed in 2010, even though it does not follow any current trend. The semi-rounded details of the letters give Lato a feeling of warmth, while the strong structure provides stability and seriousness.http://www.typoland.com/http://www.typoland.com/designers/Lukasz_Dziedzic/Copyright (c) 2013-2013 by tyPoland Lukasz Dziedzic (http://www.typoland.com/) with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1 (http://scripts.sil.org/OFL).http://scripts.sil.org/OFLCopyright (c) 2010-2013 by tyPoland Lukasz Dziedzic with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1.Lato LightItalictyPolandLukaszDziedzic: Lato Light Italic: 2013Lato-LightItalicVersion 1.105; Western+Polish opensourceLato is a trademark of tyPoland Lukasz Dziedzic.Lukasz DziedzicLato is a sanserif typeface family designed in the Summer 2010 by Warsaw-based designer Lukasz Dziedzic ("Lato" means "Summer" in Polish). It tries to carefully balance some potentially conflicting priorities: it should seem quite "transparent" when used in body text but would display some original traits when used in larger sizes. The classical proportions, particularly visible in the uppercase, give the letterforms familiar harmony and elegance. At the same time, its sleek sanserif look makes evident the fact that Lato was designed in 2010, even though it does not follow any current trend. The semi-rounded details of the letters give Lato a feeling of warmth, while the strong structure provides stability and seriousness.http://www.typoland.com/http://www.typoland.com/designers/Lukasz_Dziedzic/Copyright (c) 2013-2013 by tyPoland Lukasz Dziedzic (http://www.typoland.com/) with Reserved Font Name "Lato". Licensed under the SIL Open Font License, Version 1.1 (http://scripts.sil.org/OFL).http://scripts.sil.org/OFLLatoLight Italic���XA	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a��������������������������������bc�d�e�������f����g�����h���jikmln�oqprsutvw�xzy{}|��~�������	
�����
����������������������������������������������� !"#NULLuni00A0uni00ADmacronperiodcenteredAogonekaogonekEogonekeogonekNacutenacuteSacutesacuteZacutezacute
Zdotaccent
zdotaccentuni02C9EuroDeltauni2669undercommaaccent
grave.case
dieresis.casemacron.case
acute.casecircumflex.case
caron.case
breve.casedotaccent.case	ring.case
tilde.casehungarumlaut.case
caron.salt��_K_K�������V��������V�,� `f-�, d ��P�&Z�E[X!#!�X �PPX!�@Y �8PX!�8YY �Ead�(PX!�E �0PX!�0Y ��PX f ��a �
PX` � PX!�
` �6PX!�6``YYY�+YY#�PXeYY-�, E �%ad �CPX�#B�#B!!Y�`-�,#!#! d�bB �#B�*! �C � ��+�0%�QX`PaRYX#Y! �@SX�+!�@Y#�PXeY-�,�C+�C`B-�,�#B# �#Ba��b�`�*-�,  E �Ec�Eb`D�`-�,  E �+#�%` E�#a d � PX!��0PX� �@YY#�PXeY�%#aDD�`-�,�E�aD-�	,�`  �	CJ�PX �	#BY�
CJ�RX �
#BY-�
, �b �c�#a�C` �` �#B#-�,KTX�DY$�
e#x-�,KQXKSX�DY!Y$�e#x-�
,�CUX�C�aB�
+Y�C�%B�	%B�
%B�# �%PX�C`�%B�� �#a�	*!#�a �#a�	*!�C`�%B�%a�	*!Y�	CG�
CG`��b �Ec�Eb`�#D�C�>�C`B-�,�ETX�#B `�a�

BB�`�
+�m+"Y-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-�,�	+-�,�+�ETX�#B `�a�

BB�`�
+�m+"Y-�,�+-�,�+-�,�+-�,�+-�,�+-�,�+-� ,�+-�!,�+-�",�+-�#,�	+-�$, <�`-�%, `�
` C#�`C�%a�`�$*!-�&,�%+�%*-�',  G  �Ec�Eb`#a8# �UX G  �Ec�Eb`#a8!Y-�(,�ETX��'*�0"Y-�),�+�ETX��'*�0"Y-�*, 5�`-�+,�Ec�Eb�+�Ec�Eb�+��D>#8�**-�,, < G �Ec�Eb`�Ca8-�-,.<-�., < G �Ec�Eb`�Ca�Cc8-�/,�% . G�#B�%I��G#G#a Xb!Y�#B�.*-�0,��%�%G#G#a�E+e�.#  <�8-�1,��%�% .G#G#a �#B�E+ �`PX �@QX�  �&YBB# �C �#G#G#a#F`�C��b` �+ ��a �C`d#�CadPX�Ca�C`Y�%��ba#  �&#Fa8#�CF�%�CG#G#a` �C��b`# �+#�C`�+�%a�%��b�&a �%`d#�%`dPX!#!Y#  �&#Fa8Y-�2,�   �& .G#G#a#<8-�3,� �#B   F#G�+#a8-�4,��%�%G#G#a�TX. <#!�%�%G#G#a �%�%G#G#a�%�%I�%a�Ec# Xb!Yc�Eb`#.#  <�8#!Y-�5,� �C .G#G#a `� `f��b#  <�8-�6,# .F�%FRX <Y.�&+-�7,# .F�%FPX <Y.�&+-�8,# .F�%FRX <Y# .F�%FPX <Y.�&+-�9,�0+# .F�%FRX <Y.�&+-�:,�1+�  <�#B�8# .F�%FRX <Y.�&+�C.�&+-�;,��%�& .G#G#a�E+# < .#8�&+-�<,�%B��%�% .G#G#a �#B�E+ �`PX �@QX�  �&YBB# G�C��b` �+ ��a �C`d#�CadPX�Ca�C`Y�%��ba�%Fa8# <#8!  F#G�+#a8!Y�&+-�=,�0+.�&+-�>,�1+!#  <�#B#8�&+�C.�&+-�?,� G�#B�.�,*-�@,� G�#B�.�,*-�A,��-*-�B,�/*-�C,�E# . F�#a8�&+-�D,�#B�C+-�E,�<+-�F,�<+-�G,�<+-�H,�<+-�I,�=+-�J,�=+-�K,�=+-�L,�=+-�M,�9+-�N,�9+-�O,�9+-�P,�9+-�Q,�;+-�R,�;+-�S,�;+-�T,�;+-�U,�>+-�V,�>+-�W,�>+-�X,�>+-�Y,�:+-�Z,�:+-�[,�:+-�\,�:+-�],�2+.�&+-�^,�2+�6+-�_,�2+�7+-�`,��2+�8+-�a,�3+.�&+-�b,�3+�6+-�c,�3+�7+-�d,�3+�8+-�e,�4+.�&+-�f,�4+�6+-�g,�4+�7+-�h,�4+�8+-�i,�5+.�&+-�j,�5+�6+-�k,�5+�7+-�l,�5+�8+-�m,+�e�$Px�0-K�KRX��Y�c �#D�#p�E  �(`f �UX�%a�Ec#b�#D�*�*�*Y�(	ERD�*�D�$�QX�@�X�D�&�QX��X�DYYYY������Dlib64/ruby/2.2.0/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf000064400000214014150402106120023403 0ustar00�pFFTMf�h��OS/2r��x`cmap_�ceXcvt �q
"fpgmY�7`sgasp���glyf�'�b���head��u��6hhea;�4$hmtxz�pF�~loca��
<vmaxpS�X nameqB���P;dpost6z
�3prep&�#��AZ½jV_<�������v������v:Vj
�X��XK�X^2 	 ADBE@
"��`��� �MX��WU*��zTU�U�cGbE9'8MFDC��xUkm1 gBUs�5O_Qb�QS0f1dC*O+
6&A�cco<�Q]P<EgH]Z7jQ<]<]<�HEM3@1GxcL�qM:5[��SUUp��U���MH����a'{      ��Bssss____S00000f-OOOO&eXQQQQQQPEEEEZZZZ<]<<<<<U<MMMM1]1 Q Q QBPBPBPBPU3<sEsEsEsEsE5H5H5H5HO

_Z_Z_Z_Z_ZQ7bjj�Q�Q�Q�+5QS]S]S]��0<0<0<!d�dtd�CHCHCHCH*E*EOMOMOMOMOMOM
&1&AGAGAG>10<OM Q_Z0<OMOMOMOMOM5H0<CH*E7^<]=?E<M.?631���R���������������������������������l��#����������������������U<U<5HO]O]�QCQ�QQ<S]S]S]d�d�dMCHCH*E*E


&1AGEO&1&1&1&1P���_gg���������������������������`N/+m:+T`l8U��������������������������������������4
~1Ie~��������7CRTYaeoy�����������$(.1CIMPRX[���!%+;Ico������    " : D q y � � � � � � � � � �""��
 �4Lh��������7CPTXaeoy�����������#&.1CGMORV[��� $*6BZl������    " 9 D p t } � � � � � � � � �""����������������������w�n�l�@�%���
�
���������������������������������z�s�r�m�k�Z�W�T�S�R�O�M�
�
��������z�j�b�R�J�H�E�?���������������}�z�u�i�g�f�c�_�]�Z��
	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc��������������������������������tfgk�z�rmxl��uiyn~���ep?od�����������6���{������������������v�s}~|��w�,K�	PX��Y����D�	_^-�,  EiD�`-�,�*!-�, F�%FRX#Y � �Id� F had�%F hadRX#e�Y/ �SXi �TX!�@Yi �TX!�@eYY:-�, F�%FRX#�Y F jad�%F jadRX#�Y/�-�,K �&PXQX��D�@DY!! E��PX��D!YY-�,  EiD�`  E}iD�`-�,�*-�,K �&SX�@�Y�� �&SX#!�����#Y �&SX#!�����#Y �&SX#!����#Y �&SX#!�@���#Y �&SX�%E��PX#!��#!�%E#!#!Y!YD-�	,KSXED!!Y-�+�+�+�@6*!+�M@2$+�+� E}iDK�`RX��Y��DV�3�>~��8D�$4��>t����d��`���H���D�P�		B	�	�

R
�
�:��4~�
D
�
� X�R����$�&v�L�j�V��b��L�V�`��Vj�

8�
d��px*2���,6@H���      0 @ P � � � � � � �!B!N!Z!f!r!~!�!�!�!�!�"
"""".":"F"t"�### #,#8#|#�$$$$($4$@$�%%%%(%4%@%L%X%d%�%�&&& &,&8&x''''$'0'<'�'�'�'�'�'�(b))))&)2)>)J)V)b)n)z)�**"*.*:*F*R*^*�+H+T+`+l+x+�+�+�+�+�+�+�+�,@,�,�,�,�,�,�,�-X-�-�-�....*.|.�.�.�.�.�.�.�.�//l/x/�/�/�/�/�0&020>0J0V0b0n0�1h1t1�1�1�1�1�1�1�1�1�1�1�2222(242@2L2X2d2p2|2�2�2�2�2�3 3�3�3�3�3�3�3�3�3�444 4�5
5h5�6H6�777*767B7N7Z7f7r7~7�7�7�7�7�7�7�7�7�8`8�8�8�999T9�:H:�;8;�;�<<<�==�=�>4>p>�?8?�?�@@F@�@�AA
A0AVA^AfA�A�A�A�A�A�A�A�A�A�A�BBhB�B�B�CC8CLCzC�C�C�D(DJDhD�D�D�EEERE~E�E�FFFjF�G"GfHHDH�H�I2I|I�I�J.JpJ�J�J�J�J�J�J�J�J�K
KK"K.K<KLKXKdKpK|K�K�K�K�K�K�K�K�K�K�LLLL(L4L@LLLXLdLpL|L�L�L�L�L�L�L�L�L�L�MhMtM�M�M�M�M�M�M�M�M�NN:NDNPN\NjN�N�N�N�N�OO$O.O8OBOLOVO`OjO�O�O�O�O�O�O�O�O�PPPP PbQQ�RLR�S$S�T4T�U&U�U�VVVJVlV�V�W8W�W�XX�X�X�Y Y2YFYfY�Y�Y�ZZ4Z^Z�Z�Z�[[@[�[�[�\D\�\�]
] ]N��u�-�EX�/�
>Y�EX�/�>Y�	ܸ�01'3#4632#"&P
8-++++@^^���#))#$**���`��&�sW���EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�+�+��
ии�ии�ии�и�017#537#53733733#3##7##7#�OVU[5�5QWV]6�6���9�:����:�9�����U���1G�/�,/�+ܹ��ܺ+9�и��!+9�+�.�01.#"#5.'732654.546753�"(3;/GRG//A'<8d#'&[9<=/FSF/YI<7J�
-&$*<. 7)��,9)1&) )9,?P��*����=�'�{M&��*��A�
G��EX�3/�3
>Y�EX�!/�!>Y�EX�/�>Y�!��!39�3!9��+ии3���и�;��Eи>и�G�0173267.'>54&#"&'#".54>7.54>32>73z".:0U" *F%!#&jAH$W8,H3#,%5!=B(2 S-)L4$<5�- *d6=-:!%+6��7#(0C( 6-')O#!8*H: 4/)3^'(_9Av4.�`c��+01'3#�n8Ann��P���+01.5467�hyyh-e__e-�Q䑑�Q*U��U*z�P��
�
+01>54&'7ze__e-hyyh�U��U*Q䑑�QTo,/�/�9���и�
и��01?'7737'�l��	0	��l*xx��F.7��7.F���Uh,�+��и�	�01#53533##��B��B+>��>��+���+01>7#"&54632�>>	 .0 --]S�O<%&%'E;Xy��U+i��}��EX�	/�	>Y��0174632#"&�/""//""/H&//&&..c�`���EX�/�>Y��01#3�JHJ�fG���'K�EX�/�>Y�EX�/�>Y�����9�/�"�01"&54632"32654."&54632,kzzkkzzk!8)UCCU)8!%%%%��������TAcE����EcA��# ## #b~=�EX�
/�
>Y�EX�/�>Y��и
�й�01%!53#5>73�R��3L=DDD�5��E
�C�EX�/�>Y�EX�/�>Y��к9���017>54&#"'>32>;!IQ}U,DG-M/+cD0M6+NlA=�?1HtaT(7F- /,51F*-[ai;G9���3S�EX�/�>Y�EX�0/�0>Y��
09�
/����&
901732>54.#52>54&#"'>32#"&'c Y>!8)8X?9O2G;-P ,(f>-M9 L< 9,$?T0Sp#�.+/"? ,/6$4#-)<':J)6!*D/7#'!~	Y�EX�/�>Y�EX�
/�
>Y�+����	и�и	�и��01%5>7###5!533p"��cN��?Xc��=/�B��7��t8��
~(U�EX�/�>Y�EX�#/�#>Y�
+�#��#9���01732>54&#"'!!>32#".'a$+5 ";,UH(8",i��5%.P;"'BU.+E7-�&6!BJ3G�1K44P7M���
0W�EX�-/�->Y�EX�#/�#>Y�+�#��#-9���-��01%2>54&#".#">32#".54>32A2$FB&T)	U�B$&F5!&_0,I5#:M+4YB%,Ja4;W 5%3 BE'/]`�@iM&-1J1.K6&MsM`�U''F~3�EX�/�>Y�EX�/�>Y���	�013>7!5!#�2M7���?R2V[��~CG3H���^D���
@W�EX�)/�)>Y�EX�</�<>Y��)��9�/�1и1/�ܸ� �01732654.'7654&#"4>75.54>32#".�WJHL6I*/>�PB?6B.=�&1(95H+/I39(.":U76W<!�6D>2!- A�:F0A8/) �!4*I3%<+-?%-O
&3"$>./@C���
0W�EX�#/�#>Y�EX�-/�->Y�+�-#9���#��-��01267.#"32>7#".54>32#"&'%T*
SG1$EYB%&E5 ']1,I4";M*4ZB%-J`4;W 6'.^`%4BE�AhM&,1J1.K6&MsM`�U'&����}'f���+�'fx0�h;�+��и/��9��и/��01%%xu��-��k�O��O���U��&k�k0�h;�+��и/��9��и/��015%5%5�-��u-�O��O�m����)*�EX�'/�'>Y�
+�'�!ܸ�017&>54&#"'>324632#"&�#,'77&A1"\:*D1'-%f++++�$8.('**7-#.)9$!3+(,3 �#))#$**1�p"{4=?�%+�/+�8+�;+�/9��:�01%#'##".546754.#"3267#".54>323275"2G'/#��$9'-R?%$>T1-C'R2;jP/-Pk>4L2�+%88hXd:*"1MN$@0*S}SP}V--3c�``�`1$@W3�#(@~7 8�	A�EX�/�
>Y�EX�
/�
>Y�
	+���
��01'.'###3#�  ��?U�^�Xd7m99m7dC���pg!�%W�EX�/�
>Y�EX�/�>Y�$9�$/��
$9����%�0132+2654&+2654&+g�2S;!9:HP$A[7æTIMLVcU\ZWc�&=+1OND0H0x:76/��?C=9�B��*�!9�EX�/�
>Y�EX�/�>Y�����014>32.#"3267#".B+Nl@<Z/@*/M66M/-F 0'b?>iM,HO~X/0 5!%Eb=>cF&&#3-2.WU%�
9�EX�/�
>Y�EX�
/�
>Y���
��0132+72654&+U���'LpI��poopH���N{U-D�}}���s�M�EX�/�
>Y�EX�/�>Y���9�/����01!!!!!!s�����K�a�F�G�G��	C�EX�/�
>Y�EX�	/�	>Y���	9�/��01!!!!#����
��S�F�F��5���'M�EX�/�
>Y�EX�#/�#>Y���#��#9�/��014>32.#"32675#53#".5+Mk@!6-#/>0.K63L0#<�� d@>hL*HOW/5"%Eb=>cF&�E�� ,.WO	�I�EX�/�
>Y�EX�/�>Y�	9�	/����013!3#!#OTTT��T����p5��_��A�EX�/�
>Y�EX�/�>Y����и�	�0173#5!#3!_������fGFF��GQ����5�EX�	/�	
>Y�EX�/�>Y��	��0173265!5!#"&'�H&GA��f3S=8i"�,*KQrF�A.Q<#49bC�k�EX�/�
>Y�EX�/�
>Y�EX�/�>Y�EX�/�>Y�9�	9�	�и�
�01333##bT^��]�rT���I��jU����+�EX�/�
>Y�EX�/�>Y��013!!�RE�i���GQ�M�EX�/�
>Y�EX�/�>Y�+��и�	и���013373#4>7##/##Q\]! \\G+Z-Z,F���jj�pq675����576��S�Y�EX�/�
>Y�EX�/�>Y�9���к9��
���0133.53#'##SU�B	OU�B	O��b�1k4T�p��3g3��0��(�'5�EX�
/�

>Y�EX�/�>Y��
��01".54>32'2>54.#",8\C%%C\87]C%%C]7%>++>%&=++=0YOO}W./W}NOY0I&Gc>=bD%%Db=>cG&f!�G�EX�/�
>Y�EX�/�>Y�9�/�����0132+#2654&+f�6Z?##@Y6vS�WSUUk�-J64L2��HAFG7��1�])�4K�EX�$/�$
>Y�EX�/�>Y�1+���$���.�0132>54.#"#"&'.54>323267�+=&%=++=%&=+�$Wm/M7$B\87\B$4K-J3	K=dG''Gd==cE%%Ec��XC7WvGO}W//W~NFtW8	*+d)�S�EX�/�
>Y�EX�
/�
>Y�
9�/����
�	�0132654&+##32�mMQQMm�uS�2T="PC�Y?@A4�����,F3M\��C���3I�EX�/�
>Y�EX�0/�0>Y��09��� 0901732654./.54>32.#"#"&'u%b6FL +^2) 9O/>h$, M1<F!*\5' <V6Hy-�%-;0#)
(7$%@/-$6!3-!	()7$'D34-*.�3�EX�/�
>Y�EX�/�>Y����01#5!##��TJFF��O��	�3�EX�/�
>Y�EX�/�>Y���
�01332>53#".5OT%22&Q!:Q00R;!��f3G++G3��hGb??bG+-�3�EX�/�
>Y�EX�/�>Y����0133>73#+Xj	iU�a���;d:546b�p
N�!M�EX�/�
>Y�EX� /� >Y�
+� ��и�и ��0133>?33>73#.'##
S5	
E;E	2Oa\KHZ��d*O))P)��(Q))P)��o<<��6"�]�EX�/�
>Y�EX�/�>Y�9�9��к
9��к90133>?3#'.'##��\\
ZX��\c
bXS=�++������33�&2�@�EX�/�
>Y�EX�/�
>Y�EX�/�>Y�901%33>?3#�Xc$&_V�T���&K((L&�Z�A�	=�EX�/�
>Y�EX�/�>Y����017!5!!!Ao�����u�&2F2��G�h���+�+01!#3!�����0�0c�`���EX�/�>Y��013#cJHJ��c�hw��+�+01#5!!55���h�0��0o��	&�EX�/�
>Y�ܺ9�	�013#/##H�HB11BH��~����<�t��
�+01!5� EGG���=m��Q���!/��EX�/�>Y�EX�/�>Y�EX�/�>Y�9�/��
��'�

'9�9��*��+�0174>7.#"'>32#'##".732675Q'U�^1#0X" 17> daC)c4"<-P'*Q*Ni?~)=,,!%8
m[��B .#3'	%#�']���'��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�9������$��'�013>32#"&'##732>54.#"]R#W+1L3$=P+#Q#BR#G 6(!4$ I&��^"(#A[8>bD##6r1H-(B/#&P���!9�EX�/�>Y�EX�/�>Y�����0174>32.#"3267#".P+Jc7<W)A&*F11E*-K$(c69aH(�=_B"*52E**D1#5$("A_<����$��EX�/�>Y�EX�
/�
>Y�EX�/�>Y�EX�/�>Y�9�9�������� �0174>32'53#'##".73275.#"<%=P+-D"RDS-0M8UKDHA!?  7)�;_B$"Z��8@-"A^>XbI�1DE���'C�EX�/�>Y�EX�/�>Y�'
+����"�0174>32!3267#".%4&#"E*EY/4R9��1C(+G"$\;6_G)�LD7,�<_B#!<T3
	'>,6"#A^dIN'8$gB�V�EX�/�>Y�EX�/�>Y�EX�/�>Y����и�
�
�01.#"3###5754632/3 B9��Q��_eHDz	C<,C�]�>)YlH� 6�EU��EX�%/�%>Y�EX�(/�(>Y�EX�'/�'>Y�EX�C/�C>Y�EX�/�>Y�C���ии�:�2ܹF�5F29�5�и(�)�'�*�%�N�0132>54&+"&'4675.54675.54>323##"&';2#"&2654.#"�QN*D078_%#G)'#4E'( ɂ3E'+&50m^[&Fd>ku�/A))BQ&0$#)8&1?,(@-?4 '>+		 4>">.Fk>5**5>]�e�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�����013>32#4&#"#]R'X9WQR4<%$&R��s)6ca��#EC!��Z��;�EX�/�>Y�EX�/�>Y����ܸ�01!##%"&54632Z4R�%%&&���"##"7�'��!A�EX�/�>Y�EX�/�>Y�����ܸ�01!#"&'732>5#%"&54632Z4/N;&H9$0�%%&&�-K7=
"1��"##"j>�m�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�	9�	�и�
�01333#'#jR^��\�sR�����o�Q���5�EX�/�>Y�EX�/�>Y����013327#"&5#Q�3,(4!:(NQ���6/>XW�<,� ��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX� /� >Y�EX�/�>Y�EX�/�>Y� 9���������0133>32>32#4#"#4#"#<@1*J4)37O5&B7$O�@"*T&.MI��UV%&��UV%&��]�e�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�����0133>32#4&#"#]D&X9WQR4<%$&R�S)6ca��#EC!��<���'5�EX�/�>Y�EX�/�>Y���#�0174>32#".732>54.#"<'BW00WB''BW00WB'U)9##9))9##9)�=_B""B_=<_A""A_<*D11D**E22E]�3�%��EX�	/�	>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�	9�	9�����	�"��%�01#33>32#"&'732654.#"�RD"Y-1K3$=P,"O!#FBT!4$ I&)��> *#A[9>aD#!?f[(B/#&<�3��$��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�
/�
>Y�9�9�������� �0174>32373#57#".73275.#"<%=P+-F#BR Q-0M8UKDHA!?  7)�;_B$" 6�M�X+"A^>XbI�1D��T�EX�/�>Y�EX�/�>Y�EX�/�>Y�9��
���0133>32.#"#�D&oD.#7e,R�s;D	G	?L��H���-I�EX�/�>Y�EX�*/�*>Y��*9���*901732654&'.54>32.#"#"&'p)^BB@EY&C23M27h$( N-".RBc_7Q4Hy-v$, ,	#*3%%5'@84(-E��"nM�/�EX�/�>Y�EX�/�>Y����и�и��01#5?33#3267#".5Ή�D��0##8!P(5H+�>��C�!1"
<5J-M����e�EX�
/�
>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�����01!#'##"&5332673�C%W9XQS3=*D)RU+6ca.��EC+/Q3%�
<�EX�/�>Y�EX�
/�
>Y�EX�
/�
>Y��0133>73#3Sp

pO�\��%G##G%�P�!t�EX�/�>Y�EX�
/�
>Y�EX�/�>Y�EX�!/�!>Y�EX�/�>Y�!9��к90133>?33>73#'.'##T;;F<;Njc:	8b��#B""C"��#B""B#��#E% D*�@�e�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9��и�
и�017'33>?3#'.'##��[M

IW��ZU!PX��k*,i�p.+p1�/'�[�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y���901326?33>73#"'7T
3@�Sw
jN�$2A)$�;-$�� J##I!
��$>-
AG�	=�EX�/�>Y�EX�/�>Y����017!5!!!GM�����X�3,wC,��Cx�h��9+�34+�+�
+�'
9014>54.#52>54&54>;#";#". 9,,9 	.F/=4&1
'44'
1&4=/F.1..40]4'3
0
#+[/13		313T.#
0
3�Q��+013#JJ�c�h��9+�7+�+�'(+�('9012>54&54675.54654.+5323"+5�&1
&44&
1&3=/E.	 9,,9 .E/=h
#.T313		31/[+#
0
3'4]04..1'3
0L��'�+�+��
и��01>3232>7#".#"LH&/)'	5H&/)')F7 "F6 "4�Hu��EX�/�>Y�	ܸ�01#737#"&54632RP
8-++++Z^^X�$))$#**q����%\�EX�/�>Y�"
+�!+�!�и/�"�и/�
�
и
/�ܸ�и/01#5.54>753.'>7:8@?9�H'3-J56J*3,@(- 4�
XBCX
	"gh$=T54S<$jg"4��M�)W�EX�/�>Y�EX�/�>Y�+���и��� и�#�01%!5>54'#57.54>32.#"3#�;?=uc7M0>U0;*BE��%&GG2_94 = *D0+ /A4 ; 85F:SA 4�&+�0+01?.5467'76327'#"'732>54.#":TS,W0?>1W,TT,X9>1WP ++  ++ �U:##;V-Z%%Z-V;##:U-Y&Y�1$$11$$15#~l�EX�/�>Y�EX�	/�	>Y�EX�/�>Y�	9��й�иܸй�и��013>?33#3##5#535#53�\!"\R�����R�����~�!C##C!���/A0��0A/@�Q��+�+013##JJJJ�5M�0�[����GO�/(+�D+�2(9�D/9� 29� �к<29�<��01%>54.'.#"#"&'732654.5467.54>32s #)>I %)?IT8#*&*?I?*1)*;$7\ 2=*)-*>J>*3(&8&2Q�&"",!)!+!k%$+=.0<'2$&!-(&*=.-@'/$"���L�����:�'EM�EX�/�>Y�EX�/�>Y���#�-й4��Aй:�014>32#".732>54.#"4>32.#"3267#".)Ic99cI))Ic99cI). ;S22S;  ;S22S; F.;!#1".85-&4&";,CL{U..U{LM{W//W{MBkM**MkBBjL))LjB+F2'K;BM*3I�����N���S4��&��sUhi
�+01!#5!U�B��i����U+ip?��'5>=�+�
+�62+��)и2�/и�4и1�01".54>32'2>54.#"32#'##72654&+,'E33E''D33D'7''7 6((6)L /..#))C?4H,,H44H,,H4%*;$#;++;#$;*$SFFfC���Y��������
+�+01".54>32'2654&#",-##-.""."**"!**�!//""//!..#%..%#.U,D�EX�/�>Y�+��ܸ�и�и���01#53533##!!��B��B���R0>��>�A>�����������������=���M�E.�(s�(/�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y���9��
���01332>733:7#"&'##"&'#MS49&&'S&$ Q/#;S��CE	+#<c�X>5:85 &;43H����%�EX�/�
>Y�EX�/�
>Y013##".54>;�QQ6 5ZB%$?V2+�� 25R9;Q3���}����+v�����a�������N���a4�&��s��?~'�{M&����<~'�{M&����'U�'�{M&��{�<��'*�EX�%/�%>Y�
+�%�ܸ�01%3267#"&54>'7#"&54632g#,'87&A0!]:Te'-$g,++,�$8.('+*6-#.TH!3+(,2!�$))$#**�� 82&&#�� 82&&$�� 82&&%�� 83&&&�� 8-&&*�� 8k&&,��O�f�EX�/�
>Y�EX�/�>Y�EX�/�>Y�
+�+�������01#!5##!#3#=+.���IWC���L6i6w�G���F�G�B�+*�&(//��s2&*#��s2&*$��s2&*%��s-&**��_�2&.#��_�2&.$��_�2&.%��_�-&.*+�S�EX�/�
>Y�EX�/�>Y�+��
�����01#5732+72654&+3#[KK�������poopH��A* ����D�}}��/���S3&3&��0��(2&4#��0��(2&4$��0��(2&4%��0��(3&4&��0��(-&4*f~�)�	+�
	9�
�и
�и�01?'77'f��,��,��,�����-��-��-��-��,�
/}�EX�+/�+
>Y�EX�/�>Y�+9���
+9�
�и+��
�и� и�#и�-�01732>54/.#"#"''7.54>327�7 %>+8!&=+L%C]7Z@50?%C\8\?6/t&Gc>Y@8%Db=_@�+sHOY0=O ]-vIO}W.=O ��O��	2&:#��O��	2&:$��O��	2&:%��O��	-&:*��&22&>$e!�9�EX�/�
>Y�EX�/�>Y�
+�+01332+#72654&+eTv6Z?##@Y6vT�WSUUk�n.I64M2��@GG6��X��4�9Z�EX�/�>Y�EX�9/�9>Y�EX�/�>Y�"�"9��4�%49014>32#"&'732654.54>54&#"#X4J/(=*",5,+<%*F !4*--4-",*7?R.L6)5&5,) $5' 6(:/&!-#"1-/ %1KK���Q���&F���Q���&F���Q���&F���Q���&F���Q���&F���Q���&F���U�.7D��EX�
/�
>Y�EX�/�>Y�EX�&/�&>Y�EX�,/�,>Y�/+�
,9�/�
��&
9�&��)&
9��4�,�;��B�017467.#"'>32>32!3267#"&'#"&%4.#"3267./||'/AP-0;E0%7%��<;/A&5H)O&<F�!/9�(">\O�IW6E8 8*/3$=P-
L]
60+-.K�8+RI�'($#5:��P�+�&H�*��E���&J���E���&J���E���&J���E���&J���Z��&��0��Z��&��0��Z��&��0��Z��&��0<���9k�EX�4/�4>Y�EX�/�>Y�'+���*49�*��49��-и�7и0�01%2>5<'.#"#".54>32.''7.'77,(;'#R'(=),<{BP!>X7/VB'"=S2/T=.��<"&(J"�85H,/&,;"&=+*=�y<cG' =W63S; *&Ee(M)D!4*E)��]�&S���<���&T���<���&T���<���&T���<���&T���<���&T�U`3%�+��ܸܸ�ܸ�01"&546324632#"&'!!,M���R����><���
0}�EX�,/�,>Y�EX�/�>Y�,9���
,9�
�и,��
�и�!и�$и�.�01732>54&/.#"#"''7.54>327�):#9)
2#9)
5 'BW0S?3%5 'BW0S?3%\&1E*!:&2F*!8  Y7<_A"0;> X6=_B"0;��M����&Z����M����&Z����M����&Z����M����&Z����1�/'�&^�]�3�%��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�9������"��%�01#3>32#"&'532>54&#"�RR#V+1L3%=P+$L!#E 7(AI H&���W"(#A[9>aD#"\�1H-Pc#&��1�/'�&^��� 8&&'��Q���&F��� 82&&(��Q���&F� �,W�	%e�EX�/�
>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�#
+�+���01'.'##"&54>7#'##3327�  �.(7
>�?U�^�#-d7m99m7d�=,+& 	����p= Q�2�4B��EX�/�>Y�EX�0/�0>Y�EX�/�>Y�EX�#/�#>Y�09�/��
�#���+и0�:��>�0174>7.#"'>32327#"&54>7'##".732675Q'U�^1#0X" 17> da*,.&4)c4"<-P'*Q*Ni?~)=,,!%8
m[��;
)+*% 	> .#3'	%#�'��B��*2&($/��P���&H�+��B��*2&(%/��P���&H�+��B��*5&()/��P���&H�+��B��*2&(./��P���&H�+��U%2&).��3��T�&I�8��+��<��C�
,��EX� /� >Y�EX�)/�)>Y�EX�/�>Y�EX�/�>Y�++�# 9�#�� ���� 9��
��и�&и+�'�01.#"327#'##".54>32'5#53533�!? 8)KDHA�HDS-0M8%=P+-D"��RH`.A'S]I���@- ?Z;9[@""ZB0]]��s&*'��E���&J���s2&*(��E���&J���s5&*)��E���&J�s�,!�!^�EX�/�
>Y�EX�
/�
>Y�EX� /� >Y�+�+��� ��01!!!!!#3267#"&5467!s�����K!
.'8/���F�G�G%-,+*AE�2�5>^�EX�$/�$>Y�EX�/�>Y�EX�/�>Y�>,+����2�$�9�01%3267#"&54>7#".54>32!3267'4&#""-
-&4"6_G)*EY/4R9��1C(+G"LD7,-)$!)+*$ 	#A^<<_B#!<T3
	'>,�IN'8$��s2&*.��E���&J���5��2&,%��H� 6�&L���5��2&,(��H� 6�&L���5��5&,)��H� 6�&L���5�(�&,�#��H� 6�&L9��O	2&-%��
\&M%�f*
N���EX�/�
>Y�EX�/�
>Y�EX�/�>Y�EX�
/�
>Y��ܹ�ܸ�и���и�и��01!!7##!##5753!533����ET��TEETTE�oo�5���*uuuu���EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�+�9������и�и��01>32#4&#"##57533#�'X9WQR4<%$&RIIR��)6ca��EC!��;+]]0I��_�3&.&��Z��&��0��_�&.'��Z��&��0��_�2&.(��Z��&��0_�,��`�EX�/�
>Y�EX�
/�
>Y�EX�/�>Y�+������0173#5!#3#327#"&5467#_������ ".(7*�GFF��G4-,++<Z�2��&g�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y����
��ܸ!�01#5!3267#"&54>7#"&54632<�4#
-&5
 %%&&�C�6)+*#J"##"��_�5&.)Z��/�EX�/�>Y�EX�/�>Y���01!##Z4R�����Q���2&/%��7�'��&\�0��b�(C�&0�&��j�(>�&P�#j>�m�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�	9�	�и�
�01373#'#jR^��\�sR������n����2&1$���Q��f&Q$�4����(�&1�.��Q�(�&Q�G����&18|���Q���&Q8�����&1�����+����&Q�����5�
I�EX�/�
>Y�EX�/�>Y��9��и�и	�01%!55737�iQQR��GG�+C,i��xDx�Q���W�EX�
/�
>Y�EX�/�>Y�
9��
и
���ии��01%#"&=575#537327!:(NQ||����3,(4XW�GFG�C��[G[�6/��S2&3$��]�&S���S�(�&3���]�(�&S�
��S2&3.��]�&S���V�&m�EX�/�>Y�EX�$/�$>Y�EX�#/�#>Y�EX�/�>Y�+���&#9�&�!�01>7#"&54632%>32#4&#"#305 '* (2LC
#P5OLS.4'='RD�O5' #+@9Kv#<%3`^��)B@)(���L��0��(&4'��<���&T���0��(2&4(��<���&T���0��(2&4-��<���&T�!O�O�EX�/�
>Y�EX�
/�
>Y�	+���
��и��01463!#3#3!".7;#"!�}”���>aD$VTVVTK��F�G�G-U{N~����T�;D��EX�/�>Y�EX�/�>Y�EX�2/�2>Y�EX�7/�7>Y�<'+�7����29�2�+�529��A�01732>54.#"4>32>32#3267#"&'#".%4.#"X
&%%&
M0@%/EA0"5#�:6';#0H+]&@/-0�*E11E**D22D*=_A"=87>$<Q-L]697p"A_`8+SH��d)2&7$����&W�*��d�()�&7���t�(�&W����d)2&7.����&W�*��C��2&8$��H���&X���C��2&8%��H���&X���C�+�&8/
��H�+�&X���C��2&8.��H���&X���*�+.�&9/��E�+"n&Y�L��*.2&9.��E��"�&Y8���O��	3&:&��M����&Z����O��	&:'��M����&Z����O��	2&:(��M����&Z����O��	k&:,��M����&Z����O��	2&:-��M����&Z��O�,	�*R�EX�/�
>Y�EX�
/�

>Y�EX�'/�'>Y�+�'��'��01332>533267#"&54>7.5OT$23%QE750
-(8
	nk��f3G++G3��hft=-,+!	�}M�2�%��EX�/�>Y�EX�$/�$>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y����к9�� ��#�01!327#"&5467'##"&5332673�-).&40 %W9XQS3=*D)R6
)+*)=Q+6ca.��EC+/Q��
N2&<%��P�&\���&22&>%��1�/'�&^���&2-&>*��A2&?$��G�&_���A5&?)��G�&_���A2&?.��G�&_����+��EX�/�>Y�EX�%/�%>Y�EX� /� >Y�EX�/�>Y�!$+�9������	�
9�
��$�#и$�(и!�)�01732654&#"'>32#"&'###57533#�#G@T@I I&#W+1L3$=P+#Q#BIIR��raVL]#&D"("=X6<^A"#6;+]]0I>��&�#C�EX�
/�

>Y�EX�/�>Y�+���
� �013267>32#".5467!.#"�RBDW��V:9Z?"$A\77Y>"�TP)Ajvxi7 )/W}OO~Y00Y|Lv�!1���(B�EX�%/�%
>Y�+�
+�%���и
�!�01.#"3##"&'7326?#5737>32#��(>,*4-
hF)
PT0J$/??�.K6>OM�;8dh0��24G�EX�,/�,
>Y�EX�"/�">Y��,�
�",9��.�01%2>54.#"#".54>32>54&',%>++>%&=++=9-,0%C]78\C%%C\8?5'(=&Gc>=bD%%Db=>cG&� -2+�[OY00YOO}W.
<��,e4G�EX�,/�,>Y�EX�"/�">Y��,�
�",9��.�01%2>54.#"#".54>32>54&',#9))9##9))9
8,&.'BW00WB''BW061,)81D**E22E**D1- ,2!eC<_A""A_<=_B"
O��v(J�EX�/�
>Y�EX�!/�!
>Y�EX�/�>Y�!����01#".5332>53>54&'_'!:Q00R;!T%22&#(0 $��Gb??bG��f3G++G3�#
M��Vo#a�EX�/�>Y�EX�/�>Y�EX�	/�	>Y�EX�/�>Y�9����01#'##"&5332673>54&'?

"C%W9XQS3=*D)#0o #�:U+6ca.��EC+/Q"
�� 82&&.��Q���&F���_�2&..��Z��&��0��0��(2&4.��<���&T���O��	2&:.��M����&Z����O��	�&:1��M���&Z0���O��	�&:3��M���7&Z2���O��	�&:5��M���7&Z4���O��	�&:7��M���7&Z6���5��2&,.��H� 6�&L�0�,(�%9K�EX�/�
>Y�EX�	/�	>Y�#+�	�и	�&��0�01#"&5467.54>32327'2>54.#"�-(8$A]=%C\87]C%`O	W%>++>%&=++=�,+!;:_zAO}W./W}N��"	
�&Gc>=bD%%Db=>cG&<�2�(<\�EX�/�>Y�EX�/�>Y�EX�&/�&>Y��и&���.��8�014>7.54>323267#"&32>54.#"�/T>$'BW00WB'-@(#$	.&4Y)9##9))9##9)y!$A\:=_B""B_=3M;+8)+�*D11D**E22E��C�(�&8�
��H�(�&X�
��*�(.�&9���E�("n&Y�O7�'��5�EX�/�>Y�EX�/�>Y����01!#"&'732>5#Z4/N;&H9$0��-K7=
"1�)�-c�EX�%/�%
>Y�EX�/�>Y��иии
и%��
9��!и�#и"�01%2654&+3#32654&++5#5732&U^\Wk��ZTJNL^�HP$A[7�MM�2S;!8;?CFA<e/r=8860�PE2I1�*�&<*0K^���!/v�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�/��
�9��'��*��+�013267#"&533>324.#">(U�^0#0Y" 17> dbD(d3"=-P'*Q*Nh?h)=,-!%8
m[*B .$3'	%#�'<����
$�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX� /� >Y�� 9��� 9����	�0173275.#"4>32373#'##".�KDHA!?  7)U$>P,+H"BDT./M8�XbI�1D+;_B$" 6�@-"A^]���%��EX�/�>Y�EX�!/�!>Y�EX�/�>Y�EX�/�>Y�!��!9���!9����
�01%4&#"32>7#"&'##33>32�AI$J #E 6(U$=P+$P#BDZ11K3�Sc%$� 2F0>bD##6�@-#A[=���!5�EX�/�>Y�EX�/�>Y����01%#"&'732>54.#"'>32)Fa79d'%M-)E1.B',F*_B5]F)�<_A"($5#1D**E25*"B_?���'C�EX�/�>Y�EX�/�>Y�+����"�01%#"&'732>7!.54>32.#")G_6;\$"G+(B0��">U31V@%T
PB7*�<^A#"6+?'	
3T<!#B_HO&9$E���#C�EX�/�>Y�EX�/�>Y�#+���� �017467!.#"'>32#".73267E{UT*J!$^99\A$$AY53S; LQBHR�	JY8"B^<<_B# =W+ONRK<�'��!/��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�
/�
>Y���9�9�
�"��$��%��(�01326?#".54>32373#"&'7275.#"}&P%FKT-/M8$=Q,+J Bvm0a(�FC!@ 7*MjF;b*"?[99\@##6�\j�I�0A'R`M�3��a�EX�
/�
>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�
9����01#57#"&5332>73�R'X9WQR4<%$&Rͮr(7ca.��EC!S.��� ��EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�9���������01!#'##"'#"&533267332673@1*J4)38O5&C6%N@"*T&.MI\��V%&`��V%&`?����T�EX�/�>Y�EX�/�>Y�EX�/�>Y�9��
���01!#'##"&'732673�D&oD.#7e,Rs;D	G	?L6�x�A�EX�/�>Y�EX�/�>Y��и�и�
�01%3##5#5354&#"'>32���D��5F#8!P(5H+CC��C�AD
=5J-3%�
@�EX�/�>Y�EX�/�>Y�EX�
/�
>Y�901!#.'##3%Sp

pO�\%H##H%���P�!i�/�EX�/�>Y�EX� /� >Y�EX�/�>Y�EX�/�>Y� 9�9�901!#.'##'.'##33>?3PT;;F<;Njc:	8b#B""C"��#B""B#���#E% D*�1'�R�EX�/�>Y�EX�/�>Y�EX�/�>Y���9���01.#"#.'##>32	0=�Sw
jN�
$0>'!�<.?�
 J##I!��*$>.A�3��c�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�9�	9�	��01###73753�R��^��\�sR���%�n����:�/�/�EX�/�>Y�+�9���013>32#54&#"#�@8$94@$'@�}E!A>��*'��w��4�EX�/�	>Y�
+����ܸ�013#"&'73265#7"&54632��
 6(-" / ��F��2&
.+(r��N6�/�EX�/�	>Y�+�9���0133>32.#"#�6B'#
=@FK',
6(2�R�F!Z�/�EX�/�	>Y�EX�
/�
	>Y�EX�/�	>Y���и
��� �0133>?33>?3#'.'##R@%	$3%$<CM#"JF�--��--����-,��|�FA�EX�/�	>Y�EX�	/�		>Y�+�9���017326?33>?3#"&'7�%�@E	<>�<5
	
�#@�//���3@1���^|�����^�������
�
+�+012654&#56'�3,,3EHHE*#"*$>45>��h�
�+�
+01"3&546h3++3EHHE�*"#*$>54>���=������=�����_��EX�/�>Y��013#�f8�����Y������=������=m����_B�+01#3_f8�@���?������Jn�����������2�����C������;�������(�EX�/�>Y�+���0133267#"&5#đ"62Q�� 2<86���N-+�*+�+�*9�90132654.'.54632.#"#"&'�7%(& +"G@$?-&!,#IF+LS
(5(

)9��FK�/�/�EX�/�	>Y�EX�/�	>Y�9��и�
и�01'33>?3#'.'##fD+&DhoE/
	+C��BB��FF�=m��+013#�ZZ?є�=���+01#73*?ZZ=��=���+��ܸ�013#'##	Fa?CC?єcc�C��'�+��ܹ�
�01>323273#".#"#�+(	/+(	/C0=6/>7�Y��
�+013#����9�?���	+�	�ܸ�01".'332>73,!/ 3&%3 /?'/ 3/'�Jn�
�+01"&54632,&&&&J"##"�L���+��и��01"&546323"&54632��L        �)��+��ܹ�01>54'7 S	BH(O'0)&
����+��ܸ�01"&54632'2654&#",)44))44)3**22**3%�;���+��и��013#73#IX7�HX7ʏ���=���+��ܸ�013373#�?CC?aF�cc�l;���+��и��01#'3#'3�7XIM7XH;����!Z��+���01632#"5467Z3&+�#E#?� _��
+���0167#"&54632�62&+@.E#>#��e�+���01>54&'7#**;

'4�
 (�n��
�+01"&54632,&&&&�"##"��7����+��и��01"&546323"&54632����(p���+��	ܹ�01'>54&'73.(5(10#" 
(&�+p�+��иܹ
�01%3'>54&'5#(5(1!5  
)�2��EX�/�>Y�
+014673327#"&�.: $.&4y)@7
)+��2���
�	+01".'332673, /3$##$3/�%-//-%��U���
�+01#53����:���N#9�/�+�
+�!+�
9�� �01467.#"'>32#'##"&732675�fm'4H(?=49 +<?"+QCY58,
+H?�%2/R	%���� T�/�EX�/�>Y�+�+�9�9���� �013>32#"&'##732654&#"�@5BD(522@((4'.),�}8YK)A- K
?93=(���� T�
/�EX�
/�
>Y�+�+�9�9�����014>32'53#'##"&73275.#"�(5+@55?LB.*+(&'5�'?,6y�,%XQ7=(�>���N !�+�+�
+014>32#3267#".74&#"�+9DH�=/*;##<-�+(#7�'?,SE17
)+?B-00-�r�NAMd�EX�%/�%	>Y�?+�"H+�7	+�B0+�	79��
и0�2ии%�(�01732654&+"&'475.54675.54>323##"';2#"&72654&#"�326?%#;65
#/�R".?G@>0D*FO�((((�%( 
)+0)"$))-�&  ((  &���S�/�/�EX�/�>Y�EX�/�	>Y�
9�
��	9�	��013373#'#�@�G|�GkF@�Π�˜CU��NT�/�/�/�EX�/�	>Y�+�+�9��и���0133>32>32#54#"#54#"#�2!1
$"%=5 =F*740��3.��3����N�+�+014>32#".732654&#"�+9  9,,9  9+B1++11++1�(?++?((?++?(5@@54AA��NT�/�EX�/�	>Y�	+�+�	9�	9�����017#33>32#"'732654&#"�@46AD(5/.((4'.'.�k�$YK)A-%.
?93=(����I�EX�/�	>Y�EX�/�
>Y�
+����и�	�01#5?33#3267#"&5�MP5��"-
0H80ZZ3�**.J=���FA�EX�/�	>Y�EX�/�	>Y�+�9���01#'##"&=3326753�49%74@#)@3!A>��*&���F
3�/�EX�
/�
	>Y�EX�/�	>Y���0133>?3#�B=	>=vJF�00������N�+�+014>32.#"3267#".�/="#2 !0<:0(; #=,�(?+)
A45@
)+?���8�/�EX�/�	>Y�+��	�
и��01.#"3###5754632�"*$��?OOAE-�*#3��0:G��F	4�	/�EX�/�	>Y�	��и���017#5!3!�ս���&�3"�3��U�%�&)����<���&I���U�U%�&)����<�U��&I���5��&,'��H� 6�&L���O�	�&-���]��&M���O�2	�&-���]�2�&M�
�����&1�.��Q��&Q�G��C�&1&'��.��Q�p&Q'�����G����U�&1�.��Q�U�&Q�G��Q��&2���<�,�&R���S5&3)��]�&S���S��&3���]��&S�
��S�U�&3���]�U�&S�
��d�)�&7������&W����d�)&7&'������&W&�*����d�U)�&7���M�U�&W����C��5&8)��H���&X���C��&8�
��H��&X�
��*�.�&9���E�"n&Y�O��*�U.�&9���E�U"n&Y�O��
N2&<#��P�&\���
N2&<$��P�&\���
N-&<*��P�&\���&25&>)��1�/'�&^���A��&?���G��&_���E��"@&Y����O��3�*h�EX�/�
>Y�EX�)/�)>Y�EX�/�>Y�! +�	! 9����%�%9014>32#"&'732654./7.#"#O9X;NbuXR-?(4S03,0&?1v9,DLU�2W?$TF�bH'C1(!5?2*$
6�"0Y^�`��&22&>#��1�/'�&^���&�2�&>���1�"'�&^����&2h&>+��1�/'�&^�	��&23&>&��1�/'�&^�P� 
�+01!!P��H H�D 
�+01!!0�� H�^|��+01632#"&5467|/5'* '3LD�O4( #*?9Kw#�^���+01>7#"&54632�05 '* (2LC�O5' #+@9Kv#����|�����_^��&��s��g^��&��s��g��|'����s���s���
+01%".54>32,6))66))6s'6!!6''6!!6'�4���+01757ř''�P�#��"�4���+01%'7'R'��'��#�P�" <p�+01?'7�!��!�M��#������������*�/�EX�/�	>Y���ܸ�013##7"&54632��@��F��r����������������������������������������� ����l�C!����llC"���N:�/�/�EX�/�	>Y�+�9���0133>32#54&#"#�57%85@$'@F0!A>��*'�����K���W���Wa��W����W���W����K���W����W���W����K���W����K���W����W���W����K���W����K�� �W�����!�W���l�"�W���N!�+�+�+014673.#"'>32#"&73267��3/*;#GV)7 CM9-)'/�	/5)XQ'?+T>001/`��"�	7��EX�&/�&>Y�EX�/�>Y�й���&�	�и	�
и�и�и�ܸи�и&�#и&�%ܸ�)�%�*и)�,и�3и�4и4/01%.#*#7.'#7.546?33273.'>7!>
'>A$#&#T6&
&DNvg&&-1
<#7G
�dLs!(0ccm|#�q��gbgr /�#N�4��EX�/�>Y�EX�/�>Y�+���и����	и�и� ��'и�(и�-и�.�01%!5>=#573.'#57.54>32.#"3#3#�;?=|WaP7M0>U0;*BEξ	��%&GG2_9,-%*D0+ /A4#115F/'~	/��EX�'/�'>Y�EX�+/�+>Y�EX�/�>Y�EX�/�>Y�'�ܹ
�и
�ии��и��'���и�и�и�и�"и
�#и�&и�)и-�015#3#3/5#'3'#3##'##5#575#57533533�ZD7>�H;C5HHTapAJJJJTfkAH=.+��;&f��<+����&<%����*+*~!c�EX�/�>Y�EX�/�>Y�+�+����
и�и�и� �01267#3.##+##575323EN��NE*@%<M-EOKK�-N;%@.:9sl;1�,A*��3�'?-m"�/V�EX�/�>Y�$+�����$�ܸ)и�/�+и/�.�017!!.#"3267#'##"&54>32'5#5353yz��-)944�N:>'L[1?!'5��G11y +>Ex,�S+a\)B/S"1CC:��6�1m�EX�/�>Y�EX�/�>Y�("+�(�+�и(�	и"�и"��и���.�01%#"&'#57&45<7#57>32.#"!!!#32676&\>b�@;;@�j3X1;&JZ&���XE+AQ,1�v+		,v�-!/!bW1
	0U`$#+*~
4��EX�//�/>Y�EX�%/�%>Y�	#+�/��й�ܹ��и�и�и�'и�*и�+и�.и�3�01>54&'#27#3.##3#+##575#575323��;p!��G6*A@H
)8F'EOKKKK�NsJ�
	;tKK?"h	
)"1!�y$;%x7AT���*u�EX�/�>Y�EX�/�>Y�EX�/�>Y�EX�/�>Y�*'+��ܸ�ܸ���#�01%#5.54>753.#"32675#53CX<2T<! ;T4<.O1;&,C/-A* :t�=>	dd2TtHFsU3ec,.!%Db<>bD%�E`��"�%{�EX�/�>Y�EX�/�>Y�EX�
/�
>Y�EX�
/�
>Y���
��
�ܸ�ܸ�!и�"�017#5.54>753.'>7JHMMH�!O354V>"!=W55/O12 "6E�lp�
&0dc1TvIGtT4a`+/��#l~p�EX�/�>Y�EX�/�>Y�EX�/�>Y���иии��и�й
�
и
/01#3##'#53267!573.+5!�!+IG]I�^�YOS`��L�]LO�M5#1LX���C:<,.&D8��~$]�EX�/�>Y�EX�/�>Y�� 9� �#ии �иии�и�017>54&'7'575575377�%NA)E:f�OhhhhT����B)='
?^>050H041ǞV5VHV4W�U+i
�+01!!U��Ri>�� <p�����=(�EX�/�>Y�+���01"&54632'2654&#",=NN==NN= ..  ..XONTTNOX29<<55<<9�a1�EX�/�>Y�+01%#5>73#"R!)2?�*����=,�EX�/�>Y�
+����017>54&#"'>323#�NS&';$6>!,��$;N! !#52'')5����=$<�EX�!/�!>Y�+�	+�!��	901732654#52654&#"'>32#"&'�1#`*'(=#/;8 'F3#CQ3&&,(7&-0��18�EX�	/�	>Y�+�
+��и�
�01%57###5#5733N-6�29��G2t8RAI+IIɽ����1D�EX�/�>Y�+�	+���	9��
�01732654&#"'73#632#"&'�-%$��
 2>F6*<Q�6F300:����=&F�EX�/�>Y�#+�+���#9��	�01%2654&#"7.#">32#"&546328#,o+4-34+;NUE,&&"�
;95*&QGV[��1&�EX�/�>Y�+��	�013>7#53#�
$�� (
A'A;:5$#??D(����=8<�EX�4/�4>Y�%+�4��49�%901732654.'7>54&#"4675.54>32#".�')/W,r'*2A!%"-.!P
<n %/%!%!  ����=$F�EX�!/�!>Y�	+�+�!9���!��0173267.#"3267#"&54632#"&'�#,*2-33@3;NUE-�&$�995*,<QGV[���
�+017467.�72.-((-.27�Ko2!-c;;c- 1o��l�
�+01%'>54&'7l72.-((-.27�Ko1 -c;;c-!2o��_2�+013#�^XE2p���2�+01#73>EX^�p���2�+��ܸ�0173#'#�`P`CCC�ppDD���3+�+��ܸ�и���01".#"#>3232673h .,$ .,�/=.>���
�+013#���9���2�	+�	�ܸ�01".'332673,,2""""2,�(''(��e5
�+01"&54632,!!!!����-�+��и��01"&546323"&54632�����h�+��ܹ�01>54'7 S	BH(�'0)&
���k�+��ܸ�01"&54632'2654&#",)44)(55(�/)(00()/$���2�+��и��017373#�BMS�MT;�pppp���2�+��ܸ�01#'337�`P`CCC2ppDD�+k�+��иܹ
�01%3'>54&'6#(5(1!5  
)�L�+�+��и�и�ܹ�01"&546323"&54632'3#���L�/����+�
+�
�ܹ��и
��013#"&546323"&54632���&��.��L�7%�+�
+��и
��013#"&546323"&54632IOg:!�7g�����)�
+�
�ܸܸ�и
��013#"&546323"&54632R[pD#��o|�L�7+�+��ܹ��и��013373#"&546323"&54632�=??=[F3�7@@g�����+�+��и�и�ܹ�01"&546323"&546327#'337��`P`CCC��ooDD�L�7)�
+�
�ܸܸ�и
��01#'3"&54632#"&54632a:gOs��g�����)�
+�
�ܸܸ�и
��01#'3"&54632#"&54632_Dp[|�Go�$A��+01'3
;$�9����+��	ܹ�01.54>7H3.(4'1$! 
)&>.e�&�"A�$`��	�	
�'�$:	,	E	u	L�		�2	*�	�:	4]		�	2�	
#�#	H9�Typographic alternatesTypographic alternatesSource Code ProSource Code ProRegularRegular1.017;ADBE;SourceCodePro-Regular;ADOBE1.017;ADBE;SourceCodePro-Regular;ADOBESource Code ProSource Code ProVersion 1.017;PS Version 1.000;hotconv 1.0.70;makeotf.lib2.5.5900Version 1.017;PS Version 1.000;hotconv 1.0.70;makeotf.lib2.5.5900SourceCodePro-RegularSourceCodePro-RegularSource is a trademark of Adobe Systems Incorporated in the United States and/or other countries.Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.Adobe Systems IncorporatedAdobe Systems IncorporatedPaul D. HuntPaul D. Hunthttp://www.adobe.com/typehttp://www.adobe.com/typeCopyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.



This Font Software is licensed under the SIL Open Font License, Version 1.1.



This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL



-----------------------------------------------------------

SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007

-----------------------------------------------------------



PREAMBLE

The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.



The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.



DEFINITIONS

"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.



"Reserved Font Name" refers to any names specified as such after the copyright statement(s).



"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).



"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.



"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.



PERMISSION & CONDITIONS

Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:



1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.



2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.



3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.



4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.



5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.



TERMINATION

This license becomes null and void if any of the above conditions are not met.



DISCLAIMER

THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.

This Font Software is licensed under the SIL Open Font License, Version 1.1.

This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL

-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.

The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the copyright statement(s).

"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.

"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.

5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
http://www.adobe.com/type/legal.htmlhttp://www.adobe.com/type/legal.html��2:	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a��������������������	����������bc�d�e�������f����g�����h���jikmln�oqprsutvw�xzy{}|��~�����

��� !"��#$%&'()*+,-./012��3456789:;<=>?��@ABCDEFGHIJKL��MNOPQRSTUVWX��YZ[\]^_`abcdefghijkl�mnop��qrstuvwxyz{|}~����������������������������������������������������������������������������������������������������������������������������������������	

������������ !"#$%&'()*+,-./01234�56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXNULLCRuni00A0uni00ADtwo.sups
three.supsuni00B5one.supsAmacronamacronAbreveabreveAogonekaogonekCcircumflexccircumflex
Cdotaccent
cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve
Edotaccent
edotaccentEogonekeogonekEcaronecaronGcircumflexgcircumflex
Gdotaccent
gdotaccentuni0122uni0123HcircumflexhcircumflexHbarhbarItildeitildeImacronimacronuni012Cuni012DIogonekiogonekJcircumflexjcircumflexuni0136uni0137kgreenlandicLacutelacuteuni013Buni013CLcaronlcaronLdotldotNacutenacuteuni0145uni0146NcaronncaronnapostropheOmacronomacronuni014Euni014F
Ohungarumlaut
ohungarumlautRacuteracuteuni0156uni0157RcaronrcaronSacutesacuteScircumflexscircumflexuni015Euni015Funi0162uni0163TcarontcaronUtildeutildeUmacronumacronUbreveubreveUringuring
Uhungarumlaut
uhungarumlautUogonekuogonekWcircumflexwcircumflexYcircumflexycircumflexZacutezacute
Zdotaccent
zdotaccentuni0180uni018Funi0192OhornohornUhornuhornuni01CDuni01CEuni01CFuni01D0uni01D1uni01D2uni01D3uni01D4uni01D5uni01D6uni01D7uni01D8uni01D9uni01DAuni01DBuni01DCGcarongcaronuni01EAuni01EBuni0218uni0219uni021Auni021Buni0237uni0243uni0250uni0251uni0252uni0254uni0258uni0259uni0261uni0265uni026Funi0279uni0287uni028Cuni028Duni028Euni029Eh.supsj.supsr.supsw.supsy.supsuni02BBuni02BCuni02BEuni02BFuni02C8uni02C9uni02CAuni02CBuni02CCl.supss.supsx.supsuni0300uni0301uni0302uni0303uni0304uni0306uni0307uni0308uni0309uni030Auni030Buni030Cuni030Funi0312uni0313uni031Buni0323uni0324uni0326uni0327uni0328uni032Euni0331a.supsb.supsd.supse.supsg.supsk.supsm.supso.supsp.supst.supsu.supsv.supsc.supsf.supsz.supsuni1E0Cuni1E0Duni1E0Euni1E0Funi1E20uni1E21uni1E24uni1E25uni1E2Auni1E2Buni1E36uni1E37uni1E38uni1E39uni1E3Auni1E3Buni1E42uni1E43uni1E44uni1E45uni1E46uni1E47uni1E48uni1E49uni1E5Auni1E5Buni1E5Cuni1E5Duni1E5Euni1E5Funi1E60uni1E61uni1E62uni1E63uni1E6Cuni1E6Duni1E6Euni1E6FWgravewgraveWacutewacute	Wdieresis	wdieresisuni1E8Euni1E8Funi1E92uni1E93uni1E97uni1E9EYgraveygraveuni1EF4uni1EF5uni1EF6uni1EF7uni1EF8uni1EF9	zero.supsi.sups	four.sups	five.supssix.sups
seven.sups
eight.sups	nine.supsparenleft.supsparenright.supsn.sups	zero.subsone.substwo.subs
three.subs	four.subs	five.subssix.subs
seven.subs
eight.subs	nine.subsparenleft.subsparenright.subsuni0259.sups
colonmonetarylirauni20A6pesetadongEurouni20B1uni20B2uni20B5uni20B9uni20BAuni2215	zero.dnomone.dnomtwo.dnom
three.dnom	four.dnom	five.dnomsix.dnom
seven.dnom
eight.dnom	nine.dnomparenleft.dnomparenright.dnomuni0300.capuni0301.capuni0302.capuni0303.capuni0304.capuni0306.capuni0307.capuni0308.capuni0309.capuni030A.capuni030B.capuni030C.capuni0327.capuni03080304uni03080304.capuni03080301uni03080301.capuni0308030Cuni0308030C.capuni03080300uni03080300.cap	uni030C.a	uni0326.a���m�U����lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml000064400000000254150402106120022107 0ustar00<div id="file-list-section" class="nav-section">
  <h3>Defined In</h3>

  <ul>
<% klass.in_files.each do |tl| %>
    <li><%= h tl.relative_name %>
<% end %>
  </ul>
</div>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/index.rhtml000064400000001072150402106120017575 0ustar00<body id="top" role="document" class="file">
<nav role="navigation">
  <div id="project-navigation">
    <%= render '_sidebar_navigation.rhtml' %>

    <%= render '_sidebar_search.rhtml' %>
  </div>

  <div id="project-metadata">
    <%= render '_sidebar_pages.rhtml' %>
    <%= render '_sidebar_classes.rhtml' %>
  </div>
</nav>

<main role="main">
<% if @options.main_page and
      main_page = @files.find { |f| f.full_name == @options.main_page } then %>
<%= main_page.description %>
<% else %>
<p>This is the API documentation for <%= @title %>.
<% end %>
</main>

lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_footer.rhtml000064400000000540150402106120020122 0ustar00<footer id="validator-badges" role="contentinfo">
  <p><a href="http://validator.w3.org/check/referer">Validate</a>
  <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> <%= RDoc::VERSION %>.
  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
</footer>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/class.rhtml000064400000012654150402106120017603 0ustar00<body id="top" role="document" class="<%= klass.type %>">
<nav role="navigation">
  <div id="project-navigation">
    <%= render '_sidebar_navigation.rhtml' %>
    <%= render '_sidebar_search.rhtml' %>
  </div>

  <%= render '_sidebar_table_of_contents.rhtml' %>

  <div id="class-metadata">
    <%= render '_sidebar_sections.rhtml' %>
    <%= render '_sidebar_parent.rhtml' %>
    <%= render '_sidebar_includes.rhtml' %>
    <%= render '_sidebar_extends.rhtml' %>
    <%= render '_sidebar_methods.rhtml' %>
  </div>
</nav>

<main role="main" aria-labelledby="<%=h klass.aref %>">
  <h1 id="<%=h klass.aref %>" class="<%= klass.type %>">
    <%= klass.type %> <%= klass.full_name %>
  </h1>

  <section class="description">
    <%= klass.description %>
  </section>

  <% klass.each_section do |section, constants, attributes| %>
  <% constants = constants.select { |const| const.display? } %>
  <% attributes = attributes.select { |attr| attr.display? } %>
  <section id="<%= section.aref %>" class="documentation-section">
    <% if section.title then %>
    <header class="documentation-section-title">
      <h2>
        <%= section.title %>
      </h2>
      <span class="section-click-top">
        <a href="#top">&uarr; top</a>
      </span>
    </header>
    <% end %>

    <% if section.comment then %>
    <div>
      <%= section.description %>
    </div>
    <% end %>

    <% unless constants.empty? then %>
    <section class="constants-list">
      <header>
        <h3>Constants</h3>
      </header>
      <dl>
      <% constants.each do |const| %>
        <dt id="<%= const.name %>"><%= const.name %>
        <% if const.comment then %>
        <dd><%= const.description.strip %>
        <% else %>
        <dd class="missing-docs">(Not documented)
        <% end %>
      <% end %>
      </dl>
    </section>
    <% end %>

    <% unless attributes.empty? then %>
    <section class="attribute-method-details" class="method-section">
      <header>
        <h3>Attributes</h3>
      </header>

      <% attributes.each do |attrib| %>
      <div id="<%= attrib.aref %>" class="method-detail">
        <div class="method-heading attribute-method-heading">
          <span class="method-name"><%= h attrib.name %></span><span
            class="attribute-access-type">[<%= attrib.rw %>]</span>
        </div>

        <div class="method-description">
        <% if attrib.comment then %>
        <%= attrib.description.strip %>
        <% else %>
        <p class="missing-docs">(Not documented)
        <% end %>
        </div>
      </div>
      <% end %>
    </section>
    <% end %>

    <% klass.methods_by_type(section).each do |type, visibilities|
       next if visibilities.empty?
       visibilities.each do |visibility, methods|
         next if methods.empty? %>
     <section id="<%= visibility %>-<%= type %>-<%= section.aref %>-method-details" class="method-section">
       <header>
         <h3><%= visibility.to_s.capitalize %> <%= type.capitalize %> Methods</h3>
       </header>

    <% methods.each do |method| %>
      <div id="<%= method.aref %>" class="method-detail <%= method.is_alias_for ? "method-alias" : '' %>">
        <% if method.call_seq then %>
        <%   method.call_seq.strip.split("\n").each_with_index do |call_seq, i| %>
        <div class="method-heading">
          <span class="method-callseq">
            <%= h(call_seq.strip.
                  gsub( /^\w+\./m, '')).
                  gsub(/(.*)[-=]&gt;/, '\1&rarr;') %>
          </span>
          <% if i == 0 and method.token_stream then %>
          <span class="method-click-advice">click to toggle source</span>
          <% end %>
        </div>
        <%   end %>
        <% else %>
        <div class="method-heading">
          <span class="method-name"><%= h method.name %></span><span
            class="method-args"><%= method.param_seq %></span>
          <% if method.token_stream then %>
          <span class="method-click-advice">click to toggle source</span>
          <% end %>
        </div>
        <% end %>

        <div class="method-description">
          <% if method.comment then %>
          <%= method.description.strip %>
          <% else %>
          <p class="missing-docs">(Not documented)
          <% end %>
          <% if method.calls_super then %>
            <div class="method-calls-super">
              Calls superclass method
              <%=
                  method.superclass_method ?
                  method.formatter.link(method.superclass_method.full_name, method.superclass_method.full_name) : nil
              %>
            </div>
          <% end %>

          <% if method.token_stream then %>
          <div class="method-source-code" id="<%= method.html_name %>-source">
            <pre><%= method.markup_code %></pre>
          </div>
          <% end %>
        </div>

        <% unless method.aliases.empty? then %>
        <div class="aliases">
          Also aliased as: <%= method.aliases.map do |aka|
            if aka.parent then # HACK lib/rexml/encodings
              %{<a href="#{klass.aref_to aka.path}">#{h aka.name}</a>}
            else
              h aka.name
            end
          end.join ", " %>
        </div>
        <% end %>

        <% if method.is_alias_for then %>
        <div class="aliases">
          Alias for: <a href="<%= klass.aref_to method.is_alias_for.path %>"><%= h method.is_alias_for.name %></a>
        </div>
        <% end %>
      </div>

    <% end %>
    </section>
  <% end
     end %>
  </section>
<% end %>
</main>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_installed.rhtml000064400000000521150402106120022273 0ustar00<div id="home-section" class="nav-section">
  <h3>Documentation</h3>

  <ul>
  <% installed.each do |name, href, exists, type, _| %>
    <% next if type == :extra %>
    <li class="folder">
    <% if exists then %>
      <a href="<%= href %>"><%= h name %></a>
    <% else %>
      <%= h name %>
    <% end %>
  <% end %>
  </ul>
</div>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/servlet_not_found.rhtml000064400000000516150402106120022227 0ustar00<body role="document">
<nav role="navigation">
  <%= render '_sidebar_navigation.rhtml' %>

  <%= render '_sidebar_search.rhtml' %>

  <div id="project-metadata">
    <%= render '_sidebar_pages.rhtml' %>
    <%= render '_sidebar_classes.rhtml' %>
  </div>
</nav>

<main role="main">
  <h1>Not Found</h1>

  <p><%= message %>
</main>

lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_sections.rhtml000064400000000474150402106120022152 0ustar00<% unless klass.sections.length == 1 then %>
<div id="sections-section" class="nav-section">
  <h3>Sections</h3>

  <ul class="link-list" role="directory">
    <% klass.sort_sections.each do |section| %>
      <li><a href="#<%= section.aref %>"><%= h section.title %></a></li>
    <% end %>
  </ul>
</div>
<% end %>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/table_of_contents.rhtml000064400000002747150402106120022170 0ustar00<body id="top" class="table-of-contents">
<main role="main">
<h1 class="class"><%= h @title %></h1>

<% simple_files = @files.select { |f| f.text? } %>
<% unless simple_files.empty? then %>
<h2 id="pages">Pages</h2>
<ul>
<% simple_files.sort.each do |file| %>
  <li class="file">
    <a href="<%= file.path %>"><%= h file.page_name %></a>
<%
   # HACK table_of_contents should not exist on Document
   table = file.parse(file.comment).table_of_contents
   unless table.empty? then %>
    <ul>
<% table.each do |heading| %>
      <li><a href="<%= file.path %>#<%= heading.aref %>"><%= heading.plain_html %></a>
<%   end %>
    </ul>
<% end %>
  </li>
  <% end %>
</ul>
<% end %>

<h2 id="classes">Classes and Modules</h2>
<ul>
<% @modsort.each do |klass| %>
  <li class="<%= klass.type %>">
    <a href="<%= klass.path %>"><%= klass.full_name %></a>
<% table = []
   table.concat klass.parse(klass.comment_location).table_of_contents
   table.concat klass.section_contents

   unless table.empty? then %>
    <ul>
<% table.each do |item| %>
      <li><a href="<%= klass.path %>#<%= item.aref %>"><%= item.plain_html %></a>
<%   end %>
    </ul>
<% end %>
  </li>
<% end %>
</ul>

<h2 id="methods">Methods</h2>
<ul>
<% @store.all_classes_and_modules.map do |mod|
     mod.method_list
   end.flatten.sort.each do |method| %>
  <li class="method">
    <a href="<%= method.path %>"><%= h method.pretty_name %></a>
    &mdash;
    <span class="container"><%= method.parent.full_name %></span>
<% end %>
</ul>
</main>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_classes.rhtml000064400000000415150402106120021753 0ustar00<div id="classindex-section" class="nav-section">
  <h3>Class and Module Index</h3>

  <ul class="link-list">
  <% @modsort.each do |index_klass| %>
    <li><a href="<%= rel_prefix %>/<%= index_klass.path %>"><%= index_klass.full_name %></a>
  <% end %>
  </ul>
</div>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_methods.rhtml000064400000000626150402106120021765 0ustar00<% unless klass.method_list.empty? then %>
<!-- Method Quickref -->
<div id="method-list-section" class="nav-section">
  <h3>Methods</h3>

  <ul class="link-list" role="directory">
    <% klass.each_method do |meth| %>
    <li <% if meth.calls_super %>class="calls-super" <% end %>><a href="#<%= meth.aref %>"><%= meth.singleton ? '::' : '#' %><%= h meth.name %></a>
    <% end %>
  </ul>
</div>
<% end %>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_includes.rhtml000064400000000666150402106120022134 0ustar00<% unless klass.includes.empty? then %>
<div id="includes-section" class="nav-section">
  <h3>Included Modules</h3>

  <ul class="link-list">
  <% klass.each_include do |inc| %>
  <% unless String === inc.module then %>
    <li><a class="include" href="<%= klass.aref_to inc.module.path %>"><%= inc.module.full_name %></a>
  <% else %>
    <li><span class="include"><%= inc.name %></span>
  <% end %>
  <% end %>
  </ul>
</div>
<% end %>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/js/jquery.js000064400000263025150402106120017717 0ustar00/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */
(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bW(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bP,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bW(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bW(a,c,d,e,"*",g));return l}function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bL),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bt:bu;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function V(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(Q.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(w,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:H?function(a){return a==null?"":H.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?F.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(!b)return-1;if(I)return I.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=G.call(arguments,2),g=function(){return a.apply(c,f.concat(G.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){J["[object "+b+"]"]=b.toLowerCase()}),A=e.uaMatch(z),A.browser&&(e.browser[A.browser]=!0,e.browser.version=A.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?C=function(){c.removeEventListener("DOMContentLoaded",C,!1),e.ready()}:c.attachEvent&&(C=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",C),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g+"With"](this===b?d:this,[h])}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u,v;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete 
t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,M(a.origType,a.selector),f.extend({},a,{handler:L,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,M(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?D:C):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=D;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=D;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=D,this.stopPropagation()},isDefaultPrevented:C,isPropagationStopped:C,isImmediatePropagationStopped:C};var E=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},F=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?F:E,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?F:E)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="submit"||c==="image")&&f(b).closest("form").length&&J("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&J("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var G,H=function(a){var b=f.nodeName(a,"input")?a.type:"",c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var K={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||C,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=w.exec(h),k="",j&&(k=j[0],h=h.replace(w,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,K[h]?(a.push(K[h]+k),h=h+k):h=(K[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+M(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+M(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var N=/Until$/,O=/^(?:parents|prevUntil|prevAll)/,P=/,/,Q=/^.[^:#\[\.,]*$/,R=Array.prototype.slice,S=f.expr.match.POS,T={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(V(this,a,!1),"not",a)},filter:function(a){return this.pushStack(V(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=S.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|object|embed|option|style)/i,bb=/checked\s*(?:[^=]|=\s*.checked.)/i,bc=/\/(java|ecma)script/i,bd=/^\s*<!(?:\[CDATA\[|\-\-)/,be={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bb.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bf(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bl)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!ba.test(a[0])&&(f.support.checkClone||!bb.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean
(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bk(k[i]);else bk(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bc.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bm=/alpha\([^)]*\)/i,bn=/opacity=([^)]*)/,bo=/([A-Z]|^ms)/g,bp=/^-?\d+(?:px)?$/i,bq=/^-?\d/,br=/^([\-+])=([\-+.\de]+)/,bs={position:"absolute",visibility:"hidden",display:"block"},bt=["Left","Right"],bu=["Top","Bottom"],bv,bw,bx;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bv(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=br.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bv)return bv(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return by(a,b,d);f.swap(a,bs,function(){e=by(a,b,d)});return e}},set:function(a,b){if(!bp.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cr(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cq("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cq("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cr(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cq("show",1),slideUp:cq("hide",1),slideToggle:cq("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return d.step(a)}var d=this,e=f.fx;this.startTime=cn||co(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&f.timers.push(g)&&!cl&&(cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||co(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cs=/^t(?:able|d|h)$/i,ct=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cu(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cs.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);lib64/ruby/2.2.0/rdoc/generator/template/darkfish/js/search.js000064400000005660150402106120017644 0ustar00Search = function(data, input, result) {
  this.data = data;
  this.$input = $(input);
  this.$result = $(result);

  this.$current = null;
  this.$view = this.$result.parent();
  this.searcher = new Searcher(data.index);
  this.init();
}

Search.prototype = $.extend({}, Navigation, new function() {
  var suid = 1;

  this.init = function() {
    var _this = this;
    var observer = function(e) {
      switch(e.originalEvent.keyCode) {
        case 38: // Event.KEY_UP
        case 40: // Event.KEY_DOWN
          return;
      }
      _this.search(_this.$input[0].value);
    };
    this.$input.keyup(observer);
    this.$input.click(observer); // mac's clear field

    this.searcher.ready(function(results, isLast) {
      _this.addResults(results, isLast);
    })

    this.initNavigation();
    this.setNavigationActive(false);
  }

  this.search = function(value, selectFirstMatch) {
    value = jQuery.trim(value).toLowerCase();
    if (value) {
      this.setNavigationActive(true);
    } else {
      this.setNavigationActive(false);
    }

    if (value == '') {
      this.lastQuery = value;
      this.$result.empty();
      this.$result.attr('aria-expanded', 'false');
      this.setNavigationActive(false);
    } else if (value != this.lastQuery) {
      this.lastQuery = value;
      this.$result.attr('aria-busy',     'true');
      this.$result.attr('aria-expanded', 'true');
      this.firstRun = true;
      this.searcher.find(value);
    }
  }

  this.addResults = function(results, isLast) {
    var target = this.$result.get(0);
    if (this.firstRun && (results.length > 0 || isLast)) {
      this.$current = null;
      this.$result.empty();
    }

    for (var i=0, l = results.length; i < l; i++) {
      var item = this.renderItem.call(this, results[i]);
      item.setAttribute('id', 'search-result-' + target.childElementCount);
      target.appendChild(item);
    };

    if (this.firstRun && results.length > 0) {
      this.firstRun = false;
      this.$current = $(target.firstChild);
      this.$current.addClass('search-selected');
    }
    if (jQuery.browser.msie) this.$element[0].className += '';

    if (isLast) this.$result.attr('aria-busy', 'false');
  }

  this.move = function(isDown) {
    if (!this.$current) return;
    var $next = this.$current[isDown ? 'next' : 'prev']();
    if ($next.length) {
      this.$current.removeClass('search-selected');
      $next.addClass('search-selected');
      this.$input.attr('aria-activedescendant', $next.attr('id'));
      this.scrollIntoView($next[0], this.$view[0]);
      this.$current = $next;
      this.$input.val($next[0].firstChild.firstChild.text);
      this.$input.select();
    }
    return true;
  }

  this.hlt = function(html) {
    return this.escapeHTML(html).
      replace(/\u0001/g, '<em>').
      replace(/\u0002/g, '</em>');
  }

  this.escapeHTML = function(html) {
    return html.replace(/[&<>]/g, function(c) {
      return '&#' + c.charCodeAt(0) + ';';
    });
  }

});

lib64/ruby/2.2.0/rdoc/generator/template/darkfish/js/darkfish.js000064400000011072150402106130020165 0ustar00/**
 *
 * Darkfish Page Functions
 * $Id: darkfish.js 53 2009-01-07 02:52:03Z deveiant $
 *
 * Author: Michael Granger <mgranger@laika.com>
 *
 */

/* Provide console simulation for firebug-less environments */
if (!("console" in window) || !("firebug" in console)) {
  var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

  window.console = {};
  for (var i = 0; i < names.length; ++i)
    window.console[names[i]] = function() {};
};


/**
 * Unwrap the first element that matches the given @expr@ from the targets and return them.
 */
$.fn.unwrap = function( expr ) {
  return this.each( function() {
    $(this).parents( expr ).eq( 0 ).after( this ).remove();
  });
};


function showSource( e ) {
  var target = e.target;
  var codeSections = $(target).
    parents('.method-detail').
    find('.method-source-code');

  $(target).
    parents('.method-detail').
    find('.method-source-code').
    slideToggle();
};

function hookSourceViews() {
  $('.method-heading').click( showSource );
};

function hookSearch() {
  var input  = $('#search-field').eq(0);
  var result = $('#search-results').eq(0);
  $(result).show();

  var search_section = $('#search-section').get(0);
  $(search_section).show();

  var search = new Search(search_data, input, result);

  search.renderItem = function(result) {
    var li = document.createElement('li');
    var html = '';

    // TODO add relative path to <script> per-page
    html += '<p class="search-match"><a href="' + rdoc_rel_prefix + result.path + '">' + this.hlt(result.title);
    if (result.params)
      html += '<span class="params">' + result.params + '</span>';
    html += '</a>';


    if (result.namespace)
      html += '<p class="search-namespace">' + this.hlt(result.namespace);

    if (result.snippet)
      html += '<div class="search-snippet">' + result.snippet + '</div>';

    li.innerHTML = html;

    return li;
  }

  search.select = function(result) {
    var result_element = result.get(0);
    window.location.href = result_element.firstChild.firstChild.href;
  }

  search.scrollIntoView = search.scrollInWindow;
};

function highlightTarget( anchor ) {
  console.debug( "Highlighting target '%s'.", anchor );

  $("a[name]").each( function() {
    if ( $(this).attr("name") == anchor ) {
      if ( !$(this).parent().parent().hasClass('target-section') ) {
        console.debug( "Wrapping the target-section" );
        $('div.method-detail').unwrap( 'div.target-section' );
        $(this).parent().wrap( '<div class="target-section"></div>' );
      } else {
        console.debug( "Already wrapped." );
      }
    }
  });
};

function highlightLocationTarget() {
  console.debug( "Location hash: %s", window.location.hash );
  if ( ! window.location.hash || window.location.hash.length == 0 ) return;

  var anchor = window.location.hash.substring(1);
  console.debug( "Found anchor: %s; matching %s", anchor, "a[name=" + anchor + "]" );

  highlightTarget( anchor );
};

function highlightClickTarget( event ) {
  console.debug( "Highlighting click target for event %o", event.target );
  try {
    var anchor = $(event.target).attr( 'href' ).substring(1);
    console.debug( "Found target anchor: %s", anchor );
    highlightTarget( anchor );
  } catch ( err ) {
    console.error( "Exception while highlighting: %o", err );
  };
};

function loadAsync(path, success) {
  $.ajax({
    url: rdoc_rel_prefix + path,
    dataType: 'script',
    success: success,
    cache: true
  });
};

$(document).ready( function() {
  hookSourceViews();
  highlightLocationTarget();
  $('ul.link-list a').bind( "click", highlightClickTarget );

  var search_scripts_loaded = {
    navigation_loaded:   false,
    search_loaded:       false,
    search_index_loaded: false,
    searcher_loaded:     false,
  }

  var search_success_function = function(variable) {
    return (function (data, status, xhr) {
      search_scripts_loaded[variable] = true;

      if (search_scripts_loaded['navigation_loaded']   == true &&
          search_scripts_loaded['search_loaded']       == true &&
          search_scripts_loaded['search_index_loaded'] == true &&
          search_scripts_loaded['searcher_loaded']     == true)
        hookSearch();
    });
  }

  loadAsync('js/navigation.js',   search_success_function('navigation_loaded'));
  loadAsync('js/search.js',       search_success_function('search_loaded'));
  loadAsync('js/search_index.js', search_success_function('search_index_loaded'));
  loadAsync('js/searcher.js',     search_success_function('searcher_loaded'));
});
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml000064400000000666150402106130021775 0ustar00<% if !svninfo.empty? then %>
<div id="file-svninfo-section" class="nav-section">
  <h3>VCS Info</h3>

  <div class="section-body">
    <dl class="svninfo">
      <dt>Rev
      <dd><%= svninfo[:rev] %>

      <dt>Last Checked In
      <dd><%= svninfo[:commitdate].strftime('%Y-%m-%d %H:%M:%S') %>
        (<%= svninfo[:commitdelta] %> ago)

      <dt>Checked in by
      <dd><%= svninfo[:committer] %>
    </dl>
  </div>
</div>
<% end %>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/servlet_root.rhtml000064400000003350150402106130021217 0ustar00<body role="document">
<nav role="navigation">
  <div id="project-navigation">
    <div id="home-section" class="nav-section">
      <h2>
        <a href="<%= rel_prefix %>/" rel="home">Home</a>
      </h2>
    </div>

    <%= render '_sidebar_search.rhtml' %>
  </div>

<%= render '_sidebar_installed.rhtml' %>
</nav>

<main role="main">
  <h1>Local RDoc Documentation</h1>

  <p>Here you can browse local documentation from the ruby standard library and
  your installed gems.

<% extra_dirs = installed.select { |_, _, _, type,| type == :extra } %>
<% unless extra_dirs.empty? %>
  <h2>Extra Documentation Directories</h2>

  <p>The following additional documentation directories are available:</p>

  <ol>
  <% extra_dirs.each do |name, href, exists, _, path| %>
    <li>
    <% if exists %>
      <a href="<%= href %>"><%= h name %></a> (<%= h path %>)
    <% else %>
      <%= h name %> (<%= h path %>; <i>not available</i>)
    <% end %>
    </li>
  <% end %>
  </ol>
<% end %>

<% gems = installed.select { |_, _, _, type,| type == :gem } %>
<% missing = gems.reject { |_, _, exists,| exists } %>
<% unless missing.empty? then %>
  <h2>Missing Gem Documentation</h2>

  <p>You are missing documentation for some of your installed gems.
  You can install missing documentation for gems by running
  <kbd>gem rdoc --all</kbd>.  After installing the missing documentation you
  only need to reload this page.  The newly created documentation will
  automatically appear.

  <p>You can also install documentation for a specific gem by running one of
  the following commands.

  <ul>
  <% names = missing.map { |name,| name.sub(/-([^-]*)$/, '') }.uniq %>
  <% names.each do |name| %>
    <li><kbd>gem rdoc <%=h name %></kbd>
  <% end %>
  </ul>
<% end %>
</main>

lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/tag_green.png000064400000001145150402106130021326 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT8˅�I�a��O�Uÿ �{�bFc�N4FMt�n����-=�6c li4�BH!�(�dX�՗���.U�>����B�ZE�RA�\F�TB�XD�P�������}!���r��^�C2��^�@�I`�&���tl�$�ɝ�,S3M�D.��'�	��9�0�NCӴ�������Y6��)F?��2���m$	�b�
�@�W��H<���N��t͐x��j�D"�5��v���1o��f�����^���g��V�f�I.l���f����hě��9<��V��O�C|8��i4�>��C8%�J�lGk8�z����#�S�mȉr�X���Z�\@��{�x<.���`����^o�r�Ō��B�x<��^��'��j��}���U�����1���}Q�W��hT��]"�k�L|�s���n���ێ#�~�ߢK\}b���x'�BQ'{i��^�o�PȲ��z��].�c�)��weS�L|iW��(��SIEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png000064400000000317150402106130023436 0ustar00�PNG


IHDR��7�gAMA��7��tEXtSoftwareAdobe ImageReadyq�e<aIDAT(�c�π2�Q��������+�/ދE����p�,
�%ւ��)X���C�۱)X�dB=6���P�M��u]�[�z+����_70!I�ȓzS5��IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/bug.png000064400000001406150402106130020150 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT8˝��OSQ�\^[�تtz��%l$�*�**�2:�
iRp�����
�c0���ąKw&&`44���(�e��K�ɽ�w�wrO��X�\���Hi�s�cUQz@��������;քId�Taˀ���)j���C'يKT��8=����ʯ�9ނ^z�����Θ���1OF�Z�[��W�-G�z�?���&�%*��M���Gn�N!�aO>Nc��[ɨX·��0N��qg*�1Su��b|�{g|�fz)̾����&\
��5\	�0	�3�i�D��;`|�0>A?Tx4^���`�o�qs��`>ʦ�`��fC��v�@m�X����[r\���At.��)�G�[Ì�����`��N1���)�B������W�s+�:�Nd��s�V�a�*D�X.pB�&B�]���H@T�3@�Pڏڠ	wV�P6��3yp-�����4�Ǽ

�$�H�'��9��{m@�U�$�ZjC���X�:T��g����L�:�:�?��[#��{1��P=.2���F\�i���A-D
7�7q��XI��פb4�ka��Aj�%
ͼj&Q˫H��&�s.��
`�j������KLE3�*ΫXw�6��_�l���=�@�����h�ߊv��,qq��IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/brick.png000064400000000704150402106130020465 0ustar00�PNG


IHDR��7�gAMA��7��tEXtSoftwareAdobe ImageReadyq�e<VIDAT�?HT��ݝ��^ٟ�
ju
��ɥ����pOhi/���8ԩ�!�p*��0��Ў��;��}E�,tn�M2��|13 "by��K�$i�^NFD��Й�;��4eZ|�U�j|��jf^��$ig)kY�b�I��u�K��W��P�cJ'U>�4�MK����B݆�eS��J���tO9�iԄ
�ʆ���n#2����u`� *�����_�
�R4���+�*����B����u���Ϙ�MY�U׷o���AaL��G��۽�kE�|"�2w��9�m�[�y�Gw�S��B�3{��e�r�~�㫹��<�{
@���%
�@�IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/macFFBgHack.png000064400000000317150402106130021407 0ustar00�PNG


IHDR��csBIT|d�	pHYs��~�tEXtSoftwareAdobe Fireworks CS3��FtEXtCreation Time7/16/07Z��(IDATH���A0!��U[
Gϱ�JJJJJJJJJ�Y�����IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/page_green.png000064400000001155150402106130021470 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT�?��s��~~���TI�!!�b�F� ,H8���b�1a5�l�
�N�QB� b`�^8M�A��~����y*��޿�����\�)(��0���k��������J�������i�ΆIH ���q�����~����{�СM�кOg��Ԫ(2X2�s��,�}�O>�};���x��3o}~�W�tܠ��$��S�j�bjLEMa8�����y�޿��ww>�����J�Ҫ�*m*��u�=g6=W�|�v�jz
:@B�(%U�Z��4�\��1���m��f��j"�j��A�ƚ6��hT��*J	�V��ZJZ$@�1�0PHZ�(}
)B�e����� @)zc�Ԋe����0�2FH����d�#�����W?�9��</����;���C�9�A��x�y���轍y3t�-�;��w^�t'I����WM����eС*>��W����i!�Gc��{s��ގl6�IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/page_white_text.png000064400000000526150402106130022555 0ustar00�PNG


IHDR��7�gAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT�1nSA��Ǟ�4A����(�I�Sp.KPp"��Q�A�7%����1Ӣ�;���+���Z######����DWk=�C��?����|��X��j�9昇���S�ekMs9���NNV��G@���kD)��4�hn�������.Q�@�nJ)1]:�;1@���T��:�t���i��:���I�$fM��-�+g�]����^LvIEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/delete.png000064400000001313150402106130020632 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<]IDAT8˥��KSa�[���n��QP��2w��ܦγL�[,bi��a�A��\�C��v��_2Ml�ZFjס���NMjm��kʷ�`&.#z�����<ϓ ���bV��P�T3�%�I��{G��qRiv�ȅ�
�tz�#E��6����Edd���J�`���DR�2<]N��;�4�Ѿ;���m>�7��8��ɀQe6�L�I���t��殷c�q!z�|v��j�/Xi���@��
�%1|h���l� !���|������!
�Y#�u�U�N�w]�˼H3��u�	t]E��>k%�I�f��o���R��D:�0��`�~�|�
���(r�
�on�3oG0!�$����V��
�*[W0_������-+���� d��W�&�2�ZfMF��VJp�iF&B��
>��R���g�-� �~	C�m��ڴ���ER�
ឫ� p�5ްy����+��21���K�aw�h�`� ��#���a�Z񽞆�T�Zo���L��ѓ���`"�(?��'��ˎJv�K�ކ��|�:�G9[�a�w8�2
Jw��f'��y����m�zsӘ��Tsw��_��_��ιIr�IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/add.png000064400000001335150402106130020124 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<oIDAT8˥��K�a��[�/���Y(�)%X(o�l��Nۖsk��n.���-����h�;8�f���E��P��"jï��MGˈ�}yພ羹�$I���.t�u���lu���	AX��:�𼂒Z�H�h1�D�nZJ�OJB��{�Z����?�`2`��S���=�N$��ő�=;��a��&j�w��q�JG�#�<"N���2h8�޵`��6���x�ցn_+~��Zto��}`���x%XЛ͈	hXѿ�ƻ/��}���B�J�_G�&�|Q�r-��6��AރEL�⬡\�U3:WUh[�C6+�	6.f� �*��K͸ܝF��q�����ou4܄?�d�|X���ҥ�Mv��D`�
*_���[
���#A���2��0li��R�|x�q`4w=\������u�Q	��m+G��|%$��5��Թ���5�RO*�YGM��UO��G�qj4ְ(X�&
s1�c�˭(LV�f�
R���d�j��Q	'-1��A�TA>U	�j4,�p�V�"4L$e�@.ArB���Y a~m�y���Y])Q8tN�L���ܞt2��"��I	���
�o=C�S��d�)�_��_�AF�(�IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/package.png000064400000001525150402106130020770 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT8�}�Kh\u��{g�̝4�L���)�B�1>�n\��F��)��PAD��Q�TWf!�"؍�����`�HC0ijC�1ͳ��L�fw���(v!�g}�6�9���)wyc�/T4�"����Գ�X�8ѫ������̛v���כ*��������WGU}[E>����7�&����t�Ji�G�+*rQE�>�{�	`�����=�����9o/ror��g�aw=MЪ�U��Q��VcƏ�;}ź;q�D�>��r��7j�T�1a��U&m�8�6��l7K���Vio{�Ǥ9s���VԨ�,O"a��Wū���mpt�k��.h-��V}�����֯K��*�R�\�M�-Юޡ�'O�'C�U0)�7����9Ms�&�3�P#����V
'w'�ů� �
N,�o��p���#�LRi4�Q�j��h�]��G�S\���;Q���Ƥ��B�H��`�1����@<Ѐd�^�{�9�]� �!���"���dlǁD�	@|0mp��
���Q���
a+��k��K7����
�"$���� h$?$�B�r�N#&Cif
�N�7�S���V[�6��l�a�L/Hb�F�6�t����X�=�ֽɕد}��GO�|뻗zU�C5r���h�8�D>��)4V�w���ͦ�|�"������L\>2�FΫ�[�^y�jW��?�'q{�g�Bi��o�.��ȧ��T��c��t�ܲ^&��IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/bullet_black.png000064400000000323150402106130022013 0ustar00�PNG


IHDR��7�gAMA��7��tEXtSoftwareAdobe ImageReadyq�e<eIDAT(�c�π2.�R�
�We��7JaWА�����\
X�]��?���XH^��?���
��7��3`��[����*60H
ڐ��s���VIEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/tag_blue.png000064400000003530150402106130021155 0ustar00�PNG


IHDR�agAMA��7��iCCPICC Profilex�T�k�P��e���:g	>h�ndStC��kW��Z�6�!H��m\��$�~�ًo:�w�>�كo{�
�a���"L�"���4M'S�����9'��^��qZ�/USO������^C+�hM��J&G@Ӳy���lt�o߫�c՚�� ��5�"�Y�i\�t�։�15��LsX�	g8oc�ግ#�f45@�	��B:K�@8�i��
�΁�'&��.�<�ER/�dE���s��_���雭��m�N�|��9}p���?_�A��pX6�5~B�$�&���ti��e��Y)%$�bT�3li�������P���4�43Y���P��1��KF��ۑ��5>�)�@����r��y������[�:V���ͦ#��wQ?HB��d(�Ba�cĪ�L"J��itTy�8�;(���Gx�_�^�[�����%׎��ŷ��Q�麲�ua��n�7��m�Q���H^e�O�Q�u6�S��u�2��%vX���^�*l
O�—����ޭˀq,>��S���%�L��d����B���1CZ��$M��9��P'w����\/����]��.r#���E|!�3�>_�o�a�۾�d�1Z�ӑ���z���'�=������~V+��cjJ�tO%mN�����|��-���bW�O+
o�^�I�H�.�;���S�]�i_s9�*p����.7U^��s.�3u�	�|^,��<����;�c�=ma��>V��t.[��՟Ϫ����x���#
�¡_2	pHYs��diTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/">
         <xmp:CreatorTool>Adobe ImageReady</xmp:CreatorTool>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
�z`IDAT8}RMka~vW#�j-�V�&ZjR
��B��"�Q�����!z�R!��JA��"��T	~zi*U��̶��G_�ݝ}g��yEQp�:::�+��z2��t�~&΍�o*��L�o�$��d2�e�e�
'�V @4�3H6��DX�0O���@(R���m���F�ٍ��od��F���ɾ͇xU�p:<"��N�����T�d�}����\��3��,@��A�Z�������r��r��7�!��� ��tZ����W�w��F��_�Z�>���lhR���lޢl�k1��<\�ؼ
��*��q:����Z�UB:������{ے�ܡP�@M���elۀ^��z�>�:�D"1�iX��Z
{�e<��)iJl�
E�n)�ev��`PO�y����db=;;C��X��.�c���k�1k&8�j���ר_���d��{~?j�c�fi�R�ԡs�b��O����A����9��&�yd�V;�8�����$�p.r�=�XL���v�}�@!Oa�X,*�C�;���z�����J��n���Y�T��a�B��!�^�L{n�7��k���IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/transparent.png000064400000000141150402106130021727 0ustar00�PNG


IHDR%=m"PLTE������tRNS@��fIDATc` 
0���zIEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/loadingAnimation.gif000064400000013376150402106130022642 0ustar00GIF89a�
���������������������������������������������������������������!�NETSCAPE2.0!�
,�
� �@Ri�h��l�p,�tm�#6N���+�r��rD4�h��@F�Cjz]L�����j�]﹬�R���3-���H$w�Py���|KI��������\K�������Q\���]P��I������������~$�
~�	
��������������������������J�������������������%:`���@X�P@AO	2|�(�D��**�H�E�}l�F�=��$��Ƌ@\9��L�J(��)?�

``��C�=�4�RO@�>}5�TDU�^=�U�Q�H�~���X�e���֫��:<��!���b`�^O�v��y':<�/%Ƅ��E��n`ʎ3A�����Ɗ�~�`�۸Rf*�4�L����E3��DZ�[�����FU��պ�g*>|Ao��G��4Q�]���V;��ޙ
<��G)��}����SvO�<}��&p���y��]�Xg
X�
�`�"1���A� fJh!�B2�8'�m
��uљtbj)򖜊��H	s6.7�L;jԣJ?���p6���l�@k[���-)��P��V�X���fQ9�{f�ĥZ^v	&��0�
l���p�)g9P!�
,�� EMb��T��5+��k��sl�y���[�J;��w3iH�ʒ:�Q��X�R$�Á��511��@��eg;=��(g�ڙ��n%pf�"�|��w}��zv[xE%`	+�%		�����1"	
��������1������������������Ʒ�1��++�'i1֘~���~������%�t����"�����������ݫ'�$|dЉ'N�7o%p�Dz�:�)�D����H�$��D��E��tl���̑5żlP�4	#��y��5��S�RzC>� j��U���z�ҧ]�$�j�QM
ʆķ��772�1@ܒ�DH�;܋%Ѕ���q��ۛX���M�g����Nά�g�MWz!`���d���ѥ]���uj��a��}�aݸ�6;�5լD�zT�h,5�~�z~�@y[�:�3M�7�g�G�]�����q�=@c5

4�u����흃�5_���_9���_A�Mt�B\���Kⵘ}" @l��D�i��Qu�+b�aq&��{#'�L�H�jz��"$&�� �$B!�
,�� EI���@*�P�R*;ò[������L���l7DҎ�%�G�I�0)���m��IԲ�����`��I��}>ă�}-R�wFu�}y�|O�(p�*�"�rt�{R��A>(
�^(		�"��4���	
����3������������3��3���.�.����Чɞ

v.*o3��u���z���z����(�	����D���.��z�Ha ���р�P����*6���=�%������8��A%ϤH�]J��Q&����2�L��z�녆Aɔ>50j�(�]�T�.�s
�*�I�@m:n�Tx^7�}�v(�H�y�!8�/�
��4^ֹ��Gi`z��A�"��?l�8�]�'STҧX�*3��@X��MS<@�蜮-�.���/A��y5��|��U�v�۬�ϰ�V�r�4<A:\�4��bm��dv�i��{˿�ӛ�W��'7��n�����a��q{�"8V�_��u_^���2���_��[k��o�Tpbp
:��M
�s�k�x_"Vؓ��!�
,�� %R�4�y�ԬԢ���\�K���٩��l'#���Q�<�P:��A*�4� G����Z����L���nq�,���I�\��EoI�Uzqx#)��_"�"
����0��0���+�0�#��#�I�"����'�����2�0��	q�+��t�'����k���`���n�����܀�#�����|�2�aq�Vk������oE�f
NC��})Tǐ`���R8��ć=��5��&�D9�ۦZ�{�@滗1M�۴��͇)�Ty��N39]Ʊ�A�o���V
j�>Z0ՠV�T�y����ïe�]U���4�f!P�c0z��kW+_��^��ў`v�"�Ŋa@x:@O,��Ȭt�K5�z�sR�tH5�y3�ʥ�>yz=�3[/�Z|��&�����x@��7n��Gd�n� �B�^��|{Z�C�N�3�Z�&$�p�{f�;^C}C���o� ���%!�
,�� %�$5��,%�:��k��.]�#>�����	�B"�ZRp�]2�S���hk�9�E�-�e<ͩ��k�Gj6�-��t������wsz|m���OQti����x��41
)
�U"		���	�B������Q
��������B������)��������#����B+u���	�)�ێ����#��������"�����p��g�߿=�Q�Ǎ��P�aQ��*֑X�b<88����l$�����Q,?�	y2��=0յT#r�Η5��
�9`jLmgT�J�2��M�Wy6�jukիK�y�0�i��P0J�Cg&(`���oq]�혗']u}C* ���^\sx�a��GtKpeÈa�@��j�v�l�g�V�D�z$�ͣQ�>m�b��1�����6�}�4 @�l�`Ѫ�zvs�Gt�2y֐��/V+��S��NJ=^����"�+Y �	09ڛ>0}���Lj��`���ab�q�O
��'8^�X�d����|5 [��ahW�Y��7֑W6!��i���!��qHX�&�(@�3�&B!�
,�� Q$�@RS��"��	�k;��	S�]�3X'���+�ζS
���tUi���k���`��m��0���c�]���w��l��dt$v}��k~zq,l��ryu�x��?)B��		����
�����;	�0��0�����;�����+	��­�����G�0-g��+�	���.z�����%�������$��z��������+�l�(jx�9hN����t�<�; 8O��7�y�xH#�|�����bH�$ѼLip�ȅѐ�
��2"��-��A��(���P�$��tj�@{��s(W��$( ��=�!u�5��(�jm�nwmĸo����A���@w/��������d�1+:'���l��1�f��#�|,z2�0Hg�������@1}�թٯ�[��3�S�+|�7U�ǃ�.�{��P卵0ʶc=+PL�0�3�:~���p��'����v{��O��n<����~)�@��u�P6
��k(����àK'v�K
V�`I�9(Z�L�G!!�
,�� �PeRN*�'�,Ԣ���v*�o<�����bK�s M��3�k>o�����R��sAE1f�m):��k��v���v�M{w�l
��r�tqPm�|��uF~�?W	a3�&
���A�6��������6	�-�����3���-	����.�,����6o3/h��-��o���	������'�d�����z���z��&�����(�CGo߉O���a��9ќD=
�kOOEuj(�Ǒ�L����ʏ�T��IR&K�.��H���=�����
�t��tI��£B�0E:qjԪP������h�Y��‰	ʾ�B�F�dÎT0@�ܝK!Aݽ_�aw�9��hP�(�!Ѣ,�f�ʓmZ�,r��Ɲ[|.��1鑣wZ���h%�.�:�^m�Ri綽7V޿}c\����u�;o�>o���ü��u+],E�b��d]/\��.������*h�3�;��߯��~�����
��|H�oXg���6�]����	!!�
,�� E9�$�#%5(�,Ԓr��(i�0.����݊�`lXt��D%�ydJ�6���H�^�.�p���l��[k�=.˿�(>�S�x~�gypv}�lNtj�x�{e>	�(	�~~	
�����-������-����,-�(���������������'�e-/p��(��u�'����"�	�����u�������������GN�
����šL��1��:�I<���9u���G '��9��cɕ-Q�$��L�'lD���7U�T��T��ׄ �t�Ѧ�BU�@%J��JŪ�)W?L�S��Y	�b��Zvm��މ���Б]x�F�0�I�{�V�Xg�|��-Bf�E��#��|.@�4O���P4�u8S
g֥_�n�;Ө՞�(�բQ�)����wǮ<.�(��ʳ2?�����eG��|L�Յ"x�/��-���/�y��+,�p=E��1�� �d�Q��ٷ�~��2Kꔛ$���r
`m*Ys�C
zFn� ak}��nn��I#�����Q!�
,�� %R�4��Ԝ"CA,���(~ں8׼د��DA֐���2hs��݌�+�p]���ˤ�Ob��K��w8^>��u�z�`�H~htkv"x�m��|1Z,
���-���#�5��1"�1�����'���'�[�#����,�
��,},�'�	p�#��h�1�w���a�������"��������w��#�p�"b�1��V-��ak�c���B�)��P@�;�]Xq�Č#N�-A�"߲Syr����L�4eM�ʚph�\@�e�q/o��	���D2(𯘳q��s:g��u@��Fu+��Q�AU���ӯZ��#xbR����4�v�G1��
M�����ɻ���;8F�P`B۩3he�11O~�	�˟��>z�(�C�3���A=��\���Z-�ڇ�A����a��-qiS�R�����Ym�G�(�1���;��Ž��=dt�q�B�[���!�	
,�
� %�di�h��l�p,�4�0T:�Ԕ��n琘�9␄\����<
�P)�J�Z���+^�f�(��-N	�Ǥ4��an��t#o~$z|u�#��Svx��@��������"�'�������%	�#m#	���S���%�
���	��$��%�§	������#���ְ��ͽ�$�&	A��"����%���$��#��H݃'/�9�����BH
Ed�O�C�)L��q#F�o�	��g�B��b�DIʤC������'C��Rg̙G��	4^M=<iEj0�ћM�-0��R=��jB+î��{u,H�YÖ$+vhP�z�z�$W-]���&������=���-�>F\�dd��3 X�堙Kl��٣�̊@��@���T��?}��IV�UT+��������o�l�|gr�
T�e��lu�ӭ��ޒ�v��G�]l<ݑ�sg��_D
�)4E�Q����_i���)�Pi#���!h Da
%���.@��q�M��OQ	`�pn��yHW��C�"�$�s*
��]hp$��V
8��<��c!;lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/find.png000064400000001223150402106130020310 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<%IDAT8�c���?%���4��y�dÞ����'/Xf�Ʀ�"ʀ��G�vi�QT�o���@���5 )����%�k;��o�4�����7��Y%u��Z�bV����Ty�E��,X�����ݣ�o6ة��m�=���x��)k����?"����e�KZ��帹y�����L���e����?��	��'��?e���}K��j���m�ѹ�Ó�.dfay����6�\V���o��]Z�������9�մ�6�\�K/�b�Ĭ`�
*Y�Bc~Z�:��
��ola�_[�����S1qI��bR����/*.�����?##�;�L�@�	�:
�]��_����@�$������e��;��@1��/x%�|���W4�
��|F�=c� 9��WA12 5��za�N�?(8����S����SQE�QBZ�(�`�‚���?�֎n�x% �P`�����_IU�
�P,��a�j(��X���@��K�*��п�9����}�c�e&R1�2h�Z<uIEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/plugin.png000064400000001117150402106130020670 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT8˥�=H�q��f~\?��,��yoX�{KC��7�PcM�5�4EkS$�8V*w����J�B%��{�s^1㪋g9�����9IDp�8��ラ�%w%I�
=���@]m�v�bS?��|b��~��?��Gժi�lT70��������p��,�@ۙ�ܘ^�Y3�$ՙO�<o�a ��x8A�܉�BW!�����!JB�x8K?�Y�\����z܃S�<f����R�DKC�������Pf'� ��h����af��WãI��n�]�BW��)䎇�p��!Gos�A�MN���X���	�0eY[�ra�B�A���m����h=ڊ�I#͘�0���6�1;����Ū���3Q�@s�e
���p�k_�;+���?R15�S_?q���9�*�H�3��ɞ����`�!w������2/��L.�\��c�Ie��صf|��Ĕ�b��`���M �o��w=��_��m�6E�XIEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png000064400000000321150402106130023261 0ustar00�PNG


IHDR��7�gAMA��7��tEXtSoftwareAdobe ImageReadyq�e<cIDAT(�c�π2�Q��������+�/ދE����p�,
�%��ć�O��`
P�oǦ`1�	���BrC6�u�o�_�?��$�
}J ƦgIEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/wrench_orange.png000064400000001110150402106130022204 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT8˕��kSQ��8H)N]uA,����w��j�azcbb6���&�	Qcn^b4b2e	�l� x�W�
}$�����9�X��t:�$��n"�0����T8�J)N��!��h4ʉ�F��|�p8|2�X,f��[����͵`0������S���~�O�Z%
}
��i�z=�n���H�X��t:4
��"�B�r�L�R��tv�_�T'�-�l��u��&f_���u�R�����l6� �u]e�
�5~lޢ�n����z�{�e�j���jU��i�w��|}�������?��$����&������x
�r��|TN��%��*4�Ç l��;'T�^�ٗG<����"pF�ୌw��!y��h�ݔ��e��E���6��	�
ܙצ���P���J��:�C\DW�^���,<<�4���A����	�ѹ�]��s��6�ޑ�����IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/zoom.png000064400000001264150402106130020361 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<FIDAT8ˍ�KH�A���̪-��K�C=�
�Cm�fu�P��)D��B�"�K�$A�
e��t�����J��Z�yu�m���0�}f~3#�sL��|!!|g-V�9��Q�鎺��c�`��T���C8*�����5�b�F'��R!D�Ћ�
�kb�^sP��!��������Loc��g�ע≣�.=^u��֘����[�
���65�޶FG��� �!�� P
�%wN5�\��q=(�t@ȀѶ(t2)է�"�L?B�2�uXcY��V$�����&����a]c��t����<��*����Q��1��}E	)h��Y����ҁ�갎����6`�D�Xr<:=UR���̞��O���9��8�*}�V&b==h��ցq�ف�+;�˜�JT<������������A�!C�:����̼�}�nAH��~0b�M���36��+�/痗����s�IĢ̾�����Ek����J{�v��!���=_�M�yK�b]�ö�a��{6W�03�<U��=�c�@_��@,�/fg�kM�q�?)�+��H�IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/page_white_width.png000064400000000465150402106130022712 0ustar00�PNG


IHDR��7�gAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT(υ�A�0E��֕n\x���qob♼��R�w(���g�I�u2�U��5�S����6�VX���ʲJ6Yhl�Oe<�Ƥj�56�S&����5���n�2 ��,��be�%,r�[;�z�ֳ��
X`���<�Ɛ�dz�B����7|�!A��/�n2=V����Y����r�o� v��ZdIEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/arrow_up.png000064400000000564150402106130021235 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<IDAT8˥�?/Q�ϲ��hg5��j%�'��F,[
���LH��	3�(���v��w�=�fcoN{O~9���VM4Q7ܿ�)v/�WQ����=��&���b����p�S�O�������^��'&^:\˨6���eND!&� ���9꒣�_|�?\����s���r�x�,�����g�*,(F�#d[�O���aAA�*�P
p1����O+C�$`�)����*�w`A��#�0�$���	�*�?�����b&N�RIEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/brick_link.png000064400000001374150402106130021506 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT8�mR�K�Q����	-f=��?�I�ZT�v��rpm�EDR-*"+RJ,+"ZLR�.JŢ��>DÔ��?��R;��c����}��s�}W��b{{����Jlff�`��[��%��n�Js.��Û/�ZA���8>>F�P@>������5�}q$	{�_���Kx<�B!���y�+q�����IE���auuN�S�1st���ppp�LMM���;99���G ��T/=/����������
LNN�aO�d2H$8;;��9�pzzZt�xgg�p^�W"bbbBU���$A:����-"������W�U9D6nnnJ����JUUqss�d2�X,&U����]�H�tF'$���fS����4
�x\>C����v����XZZ������d�j�r��*���^�G�Q�R)������ג�c���t�]��l6G�M��r�����������8��������d���0���e\SS���$immMW��p�544�zzz�Ipuu�^���u90�_�9�������>�������^WTT|�	������P]]���:	�$����A����W���Ã��w�{5n���ZZZ���&c��]�5�}EP^^�����`�0��,˃�ccc�W�/"֘�kX����Y�j�IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/wrench.png000064400000001142150402106130020656 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT8˕��oQ�_�[�c�+W.]�х�i��5 g�m���J[F�q����#_�)�qո��;,��@��{�;���upL�TʙH$�(Z� X��M��ɤ���n�i"��\nt:�}��yD���	�<o��u]�q�}���,���5Q�X��j�P*��DޅB!5�ɠ�l�����X�2�|X��P�VQ( IEA�X���k�
ί���:�lU*h�{-��PU�,����n�	�Y���>�����0�\�ږIU���4(�r�����
�HM�k̈��_���4��_z����iy�'�"[�
��n1��rM���_�A�`b���=$Ik�_p-�q�S~����=li~3�Bv"q�Z�A���ԧ̸�r�[��G���]<&�e�!�'ڸ67	�y��q�$O�X!�=_��~1�Gs�~�E��ZQ�x&qW��K3��!ޤ�u��n�kz�Grj�Q�n�IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/date.png000064400000001162150402106130020307 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<IDAT8˕RmkA~�ԋ�K$��5X�%� �ǂ!��#�?P��@P�Z(*E�A�#�ܹۙ�w��:�0�;3ϼ�@J	���f?W��o�L����`
�O�Z�+���M������<�ww�
^�I���ś�K�����Z��Rj�F�NV0+�v�E8�q ���+��bF"�v���s��;�4t��� ��>9�ck��t���yx�	��D��7��гm\P���S�t�]�Io�@��#�/�د���)�[�f����^ѻ�#dHk��b�G"������uݿ�q�\.X��c8�Y��h��H������|�r��}�/�!�F���s�R�B�(�������]���j�T5���V��?ZxY�l6���s�d2Qg��wp�d����C2���p8�A���厊����*��X,¢��<�}"�W����
����
8s"��j�R-�-tiM�1�e�K�
���l�T*=L��/�F�#�C�7~��
-:MW1��IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/images/ruby.png000064400000001120150402106130020345 0ustar00�PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT8�͓�K�Q���&*z��(	z�2��4��r�!��\e7�7�V"�x!bT7�R*�c�
�<��|���|:[WAD�>���9���{L�i'�v����%IID=z�/�;��"�\k��޸)�k�u�9��x�]2��$��W0=
��������$��Q��H�>}F|`���n6ϜϤkN7
>��9LL��(,.�������}>ּ^��
��OMM|��%꿏�:/T]�F$�6VW)��)t��5����F�K�����ò�Qq"��r�f ��y_�O�a|	���p�HJ�*MT��X8��[^D��r���-|��|[��v(33���!�.���44���NJ�e�bʡr�טu�͚�d�+��@� S[K���o~TK��r�j�k������ora��P�DP��y5�@Y�?i�܅��Sg��@'�˼Zj��_M�5���̻��w��.�;�'5�ڿ_���IEND�B`�lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_parent.rhtml000064400000000561150402106130021612 0ustar00<% if klass.type == 'class' then %>
<div id="parent-class-section" class="nav-section">
  <h3>Parent</h3>

  <% if klass.superclass and not String === klass.superclass then %>
  <p class="link"><a href="<%= klass.aref_to klass.superclass.path %>"><%= klass.superclass.full_name %></a>
  <% else %>
  <p class="link"><%= klass.superclass %>
  <% end %>
</div>
<% end %>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_navigation.rhtml000064400000000671150402106130022462 0ustar00<div id="home-section" role="region" title="Quick navigation" class="nav-section">
  <h2>
    <a href="<%= rel_prefix %>/index.html" rel="home">Home</a>
  </h2>

  <div id="table-of-contents-navigation">
    <a href="<%= rel_prefix %>/table_of_contents.html#pages">Pages</a>
    <a href="<%= rel_prefix %>/table_of_contents.html#classes">Classes</a>
    <a href="<%= rel_prefix %>/table_of_contents.html#methods">Methods</a>
  </div>
</div>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_extends.rhtml000064400000000670150402106130021774 0ustar00<% unless klass.extends.empty? then %>
<div id="extends-section" class="nav-section">
  <h3>Extended With Modules</h3>

  <ul class="link-list">
    <% klass.each_extend do |ext| %>
  <% unless String === ext.module then %>
    <li><a class="extend" href="<%= klass.aref_to ext.module.path %>"><%= ext.module.full_name %></a>
  <% else %>
    <li><span class="extend"><%= ext.name %></span>
  <% end %>
  <% end %>
  </ul>
</div>
<% end %>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/css/rdoc.css000064400000022164150402106130017655 0ustar00/*
 * "Darkfish" Rdoc CSS
 * $Id: rdoc.css 54 2009-01-27 01:09:48Z deveiant $
 *
 * Author: Michael Granger <ged@FaerieMUD.org>
 *
 */

/* vim: ft=css et sw=2 ts=2 sts=2 */
/* Base Green is: #6C8C22 */

* { padding: 0; margin: 0; }

body {
  background: #fafafa;
  font-family: Lato, sans-serif;
  font-weight: 300;
}

h1 span,
h2 span,
h3 span,
h4 span,
h5 span,
h6 span {
  position: relative;

  display: none;
  padding-left: 1em;
  line-height: 0;
  vertical-align: baseline;
  font-size: 10px;
}

h1 span { top: -1.3em; }
h2 span { top: -1.2em; }
h3 span { top: -1.0em; }
h4 span { top: -0.8em; }
h5 span { top: -0.5em; }
h6 span { top: -0.5em; }

h1:hover span,
h2:hover span,
h3:hover span,
h4:hover span,
h5:hover span,
h6:hover span {
  display: inline;
}

:link,
:visited {
  color: #6C8C22;
  text-decoration: none;
}

:link:hover,
:visited:hover {
  border-bottom: 1px dotted #6C8C22;
}

code,
pre {
  font-family: "Source Code Pro", Monaco, monospace;
}

/* @group Generic Classes */

.initially-hidden {
  display: none;
}

#search-field {
  width: 98%;
  background: white;
  border: none;
  height: 1.5em;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  text-align: left;
}
#search-field:focus {
  background: #f1edba;
}
#search-field:-moz-placeholder,
#search-field::-webkit-input-placeholder {
  font-weight: bold;
  color: #666;
}

.missing-docs {
  font-size: 120%;
  background: white url(images/wrench_orange.png) no-repeat 4px center;
  color: #ccc;
  line-height: 2em;
  border: 1px solid #d00;
  opacity: 1;
  padding-left: 20px;
  text-indent: 24px;
  letter-spacing: 3px;
  font-weight: bold;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
}

.target-section {
  border: 2px solid #dcce90;
  border-left-width: 8px;
  padding: 0 1em;
  background: #fff3c2;
}

/* @end */

/* @group Index Page, Standalone file pages */
.table-of-contents ul {
  margin: 1em;
  list-style: none;
}

.table-of-contents ul ul {
  margin-top: 0.25em;
}

.table-of-contents ul :link,
.table-of-contents ul :visited {
  font-size: 16px;
}

.table-of-contents li {
  margin-bottom: 0.25em;
}

.table-of-contents li .toc-toggle {
  width: 16px;
  height: 16px;
  background: url(images/add.png) no-repeat;
}

.table-of-contents li .toc-toggle.open {
  background: url(images/delete.png) no-repeat;
}

/* @end */

/* @group Top-Level Structure */

nav {
  float: left;
  width: 260px;
  font-family: Helvetica, sans-serif;
  font-size: 14px;
}

main {
  display: block;
  margin: 0 2em 5em 260px;
  padding-left: 20px;
  min-width: 340px;
  font-size: 16px;
}

main h1,
main h2,
main h3,
main h4,
main h5,
main h6 {
  font-family: Helvetica, sans-serif;
}

.table-of-contents main {
  margin-left: 2em;
}

#validator-badges {
  clear: both;
  margin: 1em 1em 2em;
  font-size: smaller;
}

/* @end */

/* @group navigation */
nav {
  margin-bottom: 1em;
}

nav .nav-section {
  margin-top: 2em;
  border-top: 2px solid #aaa;
  font-size: 90%;
  overflow: hidden;
}

nav h2 {
  margin: 0;
  padding: 2px 8px 2px 8px;
  background-color: #e8e8e8;
  color: #555;
  font-size: 125%;
  text-align: center;
}

nav h3,
#table-of-contents-navigation {
  margin: 0;
  padding: 2px 8px 2px 8px;
  text-align: right;
  background-color: #e8e8e8;
  color: #555;
}

nav ul,
nav dl,
nav p {
  padding: 4px 8px 0;
  list-style: none;
}

#project-navigation .nav-section {
  margin: 0;
  border-top: 0;
}

#home-section h2 {
  text-align: center;
}

#table-of-contents-navigation {
  font-size: 1.2em;
  font-weight: bold;
  text-align: center;
}

#search-section {
  margin-top: 0;
  border-top: 0;
}

#search-field-wrapper {
  border-top: 1px solid #aaa;
  border-bottom: 1px solid #aaa;
  padding: 3px 8px;
  background-color: #e8e8e8;
  color: #555;
}

ul.link-list li {
  white-space: nowrap;
  line-height: 1.4em;
}

ul.link-list .type {
  font-size: 8px;
  text-transform: uppercase;
  color: white;
  background: #969696;
  padding: 2px 4px;
  -webkit-border-radius: 5px;
}

.calls-super {
  background: url(images/arrow_up.png) no-repeat right center;
}

/* @end */

/* @group Documentation Section */
main {
  color: #333;
}

main > h1:first-child,
main > h2:first-child,
main > h3:first-child,
main > h4:first-child,
main > h5:first-child,
main > h6:first-child {
  margin-top: 0px;
}

main sup {
  vertical-align: super;
  font-size: 0.8em;
}

/* The heading with the class name */
main h1[class] {
  margin-top: 0;
  margin-bottom: 1em;
  font-size: 2em;
  color: #6C8C22;
}

main h1 {
  margin: 2em 0 0.5em;
  font-size: 1.7em;
}

main h2 {
  margin: 2em 0 0.5em;
  font-size: 1.5em;
}

main h3 {
  margin: 2em 0 0.5em;
  font-size: 1.2em;
}

main h4 {
  margin: 2em 0 0.5em;
  font-size: 1.1em;
}

main h5 {
  margin: 2em 0 0.5em;
  font-size: 1em;
}

main h6 {
  margin: 2em 0 0.5em;
  font-size: 1em;
}

main p {
  margin: 0 0 0.5em;
  line-height: 1.4em;
}

main pre {
  margin: 1.2em 0.5em;
  padding: 1em;
  font-size: 0.8em;
}

main hr {
  margin: 1.5em 1em;
  border: 2px solid #ddd;
}

main blockquote {
  margin: 0 2em 1.2em 1.2em;
  padding-left: 0.5em;
  border-left: 2px solid #ddd;
}

main ol,
main ul {
  margin: 1em 2em;
}

main li > p {
  margin-bottom: 0.5em;
}

main dl {
  margin: 1em 0.5em;
}

main dt {
  margin-bottom: 0.5em;
  font-weight: bold;
}

main dd {
  margin: 0 1em 1em 0.5em;
}

main header h2 {
  margin-top: 2em;
  border-width: 0;
  border-top: 4px solid #bbb;
  font-size: 130%;
}

main header h3 {
  margin: 2em 0 1.5em;
  border-width: 0;
  border-top: 3px solid #bbb;
  font-size: 120%;
}

.documentation-section-title {
  position: relative;
}
.documentation-section-title .section-click-top {
  position: absolute;
  top: 6px;
  left: 12px;
  font-size: 10px;
  color: #9b9877;
  visibility: hidden;
  padding-left: 0.5px;
}

.documentation-section-title:hover .section-click-top {
  visibility: visible;
}

.constants-list > dl {
  margin: 1em 0 2em;
  border: 0;
}

.constants-list > dl dt {
  margin-bottom: 0.75em;
  padding-left: 0;
  font-family: "Source Code Pro", Monaco, monospace;
  font-size: 110%;
}

.constants-list > dl dt a {
  color: inherit;
}

.constants-list > dl dd {
  margin: 0 0 2em 0;
  padding: 0;
  color: #666;
}

.documentation-section h2 {
  position: relative;
}

.documentation-section h2 a {
  position: absolute;
  top: 8px;
  right: 10px;
  font-size: 12px;
  color: #9b9877;
  visibility: hidden;
}

.documentation-section h2:hover a {
  visibility: visible;
}

/* @group Method Details */

main .method-source-code {
  display: none;
}

main .method-description .method-calls-super {
  color: #333;
  font-weight: bold;
}

main .method-detail {
  margin-bottom: 2.5em;
  cursor: pointer;
}

main .method-detail:target {
  margin-left: -10px;
  border-left: 10px solid #f1edba;
}

main .method-heading {
  position: relative;
  font-family: "Source Code Pro", Monaco, monospace;
  font-size: 110%;
  font-weight: bold;
  color: #333;
}
main .method-heading :link,
main .method-heading :visited {
  color: inherit;
}
main .method-click-advice {
  position: absolute;
  top: 2px;
  right: 5px;
  font-size: 12px;
  color: #9b9877;
  visibility: hidden;
  padding-right: 20px;
  line-height: 20px;
  background: url(images/zoom.png) no-repeat right top;
}
main .method-heading:hover .method-click-advice {
  visibility: visible;
}

main .method-alias .method-heading {
  color: #666;
}

main .method-description,
main .aliases {
  margin-top: 0.75em;
  color: #333;
}

main .aliases {
  padding-top: 4px;
  font-style: italic;
  cursor: default;
}
main .method-description ul {
  margin-left: 1.5em;
}

main #attribute-method-details .method-detail:hover {
  background-color: transparent;
  cursor: default;
}
main .attribute-access-type {
  text-transform: uppercase;
  padding: 0 1em;
}
/* @end */

/* @end */

/* @group Source Code */

pre {
  margin: 0.5em 0;
  border: 1px dashed #999;
  padding: 0.5em;
  background: #262626;
  color: white;
  overflow: auto;
}

.ruby-constant   { color: #7fffd4; background: transparent; }
.ruby-keyword    { color: #00ffff; background: transparent; }
.ruby-ivar       { color: #eedd82; background: transparent; }
.ruby-operator   { color: #00ffee; background: transparent; }
.ruby-identifier { color: #ffdead; background: transparent; }
.ruby-node       { color: #ffa07a; background: transparent; }
.ruby-comment    { color: #dc0000; background: transparent; }
.ruby-regexp     { color: #ffa07a; background: transparent; }
.ruby-value      { color: #7fffd4; background: transparent; }

/* @end */


/* @group search results */
#search-results {
  font-family: Lato, sans-serif;
  font-weight: 300;
}

#search-results .search-match {
  font-family: Helvetica, sans-serif;
  font-weight: normal;
}

#search-results .search-selected {
  background: #e8e8e8;
  border-bottom: 1px solid transparent;
}

#search-results li {
  list-style: none;
  border-bottom: 1px solid #aaa;
  margin-bottom: 0.5em;
}

#search-results li:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

#search-results li p {
  padding: 0;
  margin: 0.5em;
}

#search-results .search-namespace {
  font-weight: bold;
}

#search-results li em {
  background: yellow;
  font-style: normal;
}

#search-results pre {
  margin: 0.5em;
  font-family: "Source Code Pro", Monaco, monospace;
}

/* @end */

lib64/ruby/2.2.0/rdoc/generator/template/darkfish/css/fonts.css000064400000014342150402106130020056 0ustar00/*
 * Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/),
 * with Reserved Font Name "Source". All Rights Reserved. Source is a
 * trademark of Adobe Systems Incorporated in the United States and/or other
 * countries.
 *
 * This Font Software is licensed under the SIL Open Font License, Version
 * 1.1.
 *
 * This license is copied below, and is also available with a FAQ at:
 * http://scripts.sil.org/OFL
 */

@font-face {
  font-family: "Source Code Pro";
  font-style: normal;
  font-weight: 400;
  src: local("Source Code Pro"),
       local("SourceCodePro-Regular"),
       url("fonts/SourceCodePro-Regular.ttf") format("truetype");
}

@font-face {
  font-family: "Source Code Pro";
  font-style: normal;
  font-weight: 700;
  src: local("Source Code Pro Bold"),
       local("SourceCodePro-Bold"),
       url("fonts/SourceCodePro-Bold.ttf") format("truetype");
}

/*
 * Copyright (c) 2010, Łukasz Dziedzic (dziedzic@typoland.com),
 * with Reserved Font Name Lato.
 *
 * This Font Software is licensed under the SIL Open Font License, Version
 * 1.1.
 *
 * This license is copied below, and is also available with a FAQ at:
 * http://scripts.sil.org/OFL
 */

@font-face {
  font-family: "Lato";
  font-style: normal;
  font-weight: 300;
  src: local("Lato Light"),
       local("Lato-Light"),
       url("fonts/Lato-Light.ttf") format("truetype");
}

@font-face {
  font-family: "Lato";
  font-style: italic;
  font-weight: 300;
  src: local("Lato Light Italic"),
       local("Lato-LightItalic"),
       url("fonts/Lato-LightItalic.ttf") format("truetype");
}

@font-face {
  font-family: "Lato";
  font-style: normal;
  font-weight: 700;
  src: local("Lato Regular"),
       local("Lato-Regular"),
       url("fonts/Lato-Regular.ttf") format("truetype");
}

@font-face {
  font-family: "Lato";
  font-style: italic;
  font-weight: 700;
  src: local("Lato Italic"),
       local("Lato-Italic"),
       url("fonts/Lato-RegularItalic.ttf") format("truetype");
}

/*
 * -----------------------------------------------------------
 * SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
 * -----------------------------------------------------------
 *
 * PREAMBLE
 * The goals of the Open Font License (OFL) are to stimulate worldwide
 * development of collaborative font projects, to support the font creation
 * efforts of academic and linguistic communities, and to provide a free and
 * open framework in which fonts may be shared and improved in partnership
 * with others.
 *
 * The OFL allows the licensed fonts to be used, studied, modified and
 * redistributed freely as long as they are not sold by themselves. The
 * fonts, including any derivative works, can be bundled, embedded,
 * redistributed and/or sold with any software provided that any reserved
 * names are not used by derivative works. The fonts and derivatives,
 * however, cannot be released under any other type of license. The
 * requirement for fonts to remain under this license does not apply
 * to any document created using the fonts or their derivatives.
 *
 * DEFINITIONS
 * "Font Software" refers to the set of files released by the Copyright
 * Holder(s) under this license and clearly marked as such. This may
 * include source files, build scripts and documentation.
 *
 * "Reserved Font Name" refers to any names specified as such after the
 * copyright statement(s).
 *
 * "Original Version" refers to the collection of Font Software components as
 * distributed by the Copyright Holder(s).
 *
 * "Modified Version" refers to any derivative made by adding to, deleting,
 * or substituting -- in part or in whole -- any of the components of the
 * Original Version, by changing formats or by porting the Font Software to a
 * new environment.
 *
 * "Author" refers to any designer, engineer, programmer, technical
 * writer or other person who contributed to the Font Software.
 *
 * PERMISSION & CONDITIONS
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of the Font Software, to use, study, copy, merge, embed, modify,
 * redistribute, and sell modified and unmodified copies of the Font
 * Software, subject to the following conditions:
 *
 * 1) Neither the Font Software nor any of its individual components,
 * in Original or Modified Versions, may be sold by itself.
 *
 * 2) Original or Modified Versions of the Font Software may be bundled,
 * redistributed and/or sold with any software, provided that each copy
 * contains the above copyright notice and this license. These can be
 * included either as stand-alone text files, human-readable headers or
 * in the appropriate machine-readable metadata fields within text or
 * binary files as long as those fields can be easily viewed by the user.
 *
 * 3) No Modified Version of the Font Software may use the Reserved Font
 * Name(s) unless explicit written permission is granted by the corresponding
 * Copyright Holder. This restriction only applies to the primary font name as
 * presented to the users.
 *
 * 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
 * Software shall not be used to promote, endorse or advertise any
 * Modified Version, except to acknowledge the contribution(s) of the
 * Copyright Holder(s) and the Author(s) or with their explicit written
 * permission.
 *
 * 5) The Font Software, modified or unmodified, in part or in whole,
 * must be distributed entirely under this license, and must not be
 * distributed under any other license. The requirement for fonts to
 * remain under this license does not apply to any document created
 * using the Font Software.
 *
 * TERMINATION
 * This license becomes null and void if any of the above conditions are
 * not met.
 *
 * DISCLAIMER
 * THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
 * OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
 * COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
 * DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
 * OTHER DEALINGS IN THE FONT SOFTWARE.
 */

lib64/ruby/2.2.0/rdoc/generator/template/darkfish/page.rhtml000064400000000657150402106130017413 0ustar00<body id="top" role="document" class="file">
<nav role="navigation">
  <div id="project-navigation">
    <%= render '_sidebar_navigation.rhtml' %>
    <%= render '_sidebar_search.rhtml' %>
  </div>

  <%= render '_sidebar_table_of_contents.rhtml' %>

  <div id="project-metadata">
    <%= render '_sidebar_pages.rhtml' %>
  </div>
</nav>

<main role="main" aria-label="Page <%=h file.full_name%>">
<%= file.description %>
</main>

lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_pages.rhtml000064400000000506150402106130021417 0ustar00<% simple_files = @files.select { |f| f.text? } %>
<% unless simple_files.empty? then %>
<div id="fileindex-section" class="nav-section">
  <h3>Pages</h3>

  <ul class="link-list">
  <% simple_files.each do |f| %>
    <li><a href="<%= rel_prefix %>/<%= f.path %>"><%= h f.page_name %></a>
  <% end %>
  </ul>
</div>
<% end %>
lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_head.rhtml000064400000001223150402106130017525 0ustar00<meta charset="<%= @options.charset %>">

<title><%= h @title %></title>

<script type="text/javascript">
  var rdoc_rel_prefix = "<%= rel_prefix %>/";
</script>

<script src="<%= asset_rel_prefix %>/js/jquery.js"></script>
<script src="<%= asset_rel_prefix %>/js/darkfish.js"></script>

<link href="<%= asset_rel_prefix %>/css/fonts.css" rel="stylesheet">
<link href="<%= asset_rel_prefix %>/css/rdoc.css" rel="stylesheet">
<% if @options.template_stylesheets.flatten.any? then %>
<%   @options.template_stylesheets.flatten.each do |stylesheet| %>
<link href="<%= asset_rel_prefix %>/<%= File.basename stylesheet %>" rel="stylesheet">
<%   end %>
<% end %>

lib64/ruby/2.2.0/rdoc/generator/template/darkfish/_sidebar_search.rhtml000064400000001221150402106130021560 0ustar00<div id="search-section" role="search" class="project-section initially-hidden">
  <form action="#" method="get" accept-charset="utf-8">
    <div id="search-field-wrapper">
      <input id="search-field" role="combobox" aria-label="Search"
             aria-autocomplete="list" aria-controls="search-results"
             type="text" name="search" placeholder="Search" spellcheck="false"
             title="Type to search, Up and Down to navigate, Enter to load">
    </div>

    <ul id="search-results" aria-label="Search Results"
        aria-busy="false" aria-expanded="false"
        aria-atomic="false" class="initially-hidden"></ul>
  </form>
</div>
lib64/ruby/2.2.0/rdoc/generator/markup.rb000064400000006670150402106130013646 0ustar00##
# Handle common RDoc::Markup tasks for various CodeObjects
#
# This module is loaded by generators.  It allows RDoc's CodeObject tree to
# avoid loading generator code to improve startup time for +ri+.

module RDoc::Generator::Markup

  ##
  # Generates a relative URL from this object's path to +target_path+

  def aref_to(target_path)
    RDoc::Markup::ToHtml.gen_relative_url path, target_path
  end

  ##
  # Generates a relative URL from +from_path+ to this object's path

  def as_href(from_path)
    RDoc::Markup::ToHtml.gen_relative_url from_path, path
  end

  ##
  # Handy wrapper for marking up this object's comment

  def description
    markup @comment
  end

  ##
  # Creates an RDoc::Markup::ToHtmlCrossref formatter

  def formatter
    return @formatter if defined? @formatter

    options = @store.rdoc.options
    this = RDoc::Context === self ? self : @parent

    @formatter = RDoc::Markup::ToHtmlCrossref.new options, this.path, this
    @formatter.code_object = self
    @formatter
  end

  ##
  # Build a webcvs URL starting for the given +url+ with +full_path+ appended
  # as the destination path.  If +url+ contains '%s' +full_path+ will be
  # will replace the %s using sprintf on the +url+.

  def cvs_url(url, full_path)
    if /%s/ =~ url then
      sprintf url, full_path
    else
      url + full_path
    end
  end

end

class RDoc::CodeObject

  include RDoc::Generator::Markup

end

class RDoc::MethodAttr

  @add_line_numbers = false

  class << self
    ##
    # Allows controlling whether <tt>#markup_code</tt> adds line numbers to
    # the source code.

    attr_accessor :add_line_numbers
  end

  ##
  # Prepend +src+ with line numbers.  Relies on the first line of a source
  # code listing having:
  #
  #   # File xxxxx, line dddd
  #
  # If it has this comment then line numbers are added to +src+ and the <tt>,
  # line dddd</tt> portion of the comment is removed.

  def add_line_numbers(src)
    return unless src.sub!(/\A(.*)(, line (\d+))/, '\1')
    first = $3.to_i - 1
    last  = first + src.count("\n")
    size = last.to_s.length

    line = first
    src.gsub!(/^/) do
      res = if line == first then
              " " * (size + 1)
            else
              "<span class=\"line-num\">%2$*1$d</span> " % [size, line]
            end

      line += 1
      res
    end
  end

  ##
  # Turns the method's token stream into HTML.
  #
  # Prepends line numbers if +add_line_numbers+ is true.

  def markup_code
    return '' unless @token_stream

    src = RDoc::TokenStream.to_html @token_stream

    # dedent the source
    indent = src.length
    lines = src.lines.to_a
    lines.shift if src =~ /\A.*#\ *File/i # remove '# File' comment
    lines.each do |line|
      if line =~ /^ *(?=\S)/
        n = $&.length
        indent = n if n < indent
        break if n == 0
      end
    end
    src.gsub!(/^#{' ' * indent}/, '') if indent > 0

    add_line_numbers(src) if RDoc::MethodAttr.add_line_numbers

    src
  end

end

class RDoc::ClassModule

  ##
  # Handy wrapper for marking up this class or module's comment

  def description
    markup @comment_location
  end

end

class RDoc::Context::Section

  include RDoc::Generator::Markup

end

class RDoc::TopLevel

  ##
  # Returns a URL for this source file on some web repository.  Use the -W
  # command line option to set.

  def cvs_url
    url = @store.rdoc.options.webcvs

    if /%s/ =~ url then
      url % @relative_name
    else
      url + @relative_name
    end
  end

end

lib64/ruby/2.2.0/rdoc/generator/json_index.rb000064400000016572150402106130014511 0ustar00require 'json'
require 'zlib'

##
# The JsonIndex generator is designed to complement an HTML generator and
# produces a JSON search index.  This generator is derived from sdoc by
# Vladimir Kolesnikov and contains verbatim code written by him.
#
# This generator is designed to be used with a regular HTML generator:
#
#   class RDoc::Generator::Darkfish
#     def initialize options
#       # ...
#       @base_dir = Pathname.pwd.expand_path
#
#       @json_index = RDoc::Generator::JsonIndex.new self, options
#     end
#
#     def generate
#       # ...
#       @json_index.generate
#     end
#   end
#
# == Index Format
#
# The index is output as a JSON file assigned to the global variable
# +search_data+.  The structure is:
#
#   var search_data = {
#     "index": {
#       "searchIndex":
#         ["a", "b", ...],
#       "longSearchIndex":
#         ["a", "a::b", ...],
#       "info": [
#         ["A", "A", "A.html", "", ""],
#         ["B", "A::B", "A::B.html", "", ""],
#         ...
#       ]
#     }
#   }
#
# The same item is described across the +searchIndex+, +longSearchIndex+ and
# +info+ fields.  The +searchIndex+ field contains the item's short name, the
# +longSearchIndex+ field contains the full_name (when appropriate) and the
# +info+ field contains the item's name, full_name, path, parameters and a
# snippet of the item's comment.
#
# == LICENSE
#
# Copyright (c) 2009 Vladimir Kolesnikov
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

class RDoc::Generator::JsonIndex

  include RDoc::Text

  ##
  # Where the search index lives in the generated output

  SEARCH_INDEX_FILE = File.join 'js', 'search_index.js'

  attr_reader :index # :nodoc:

  ##
  # Creates a new generator.  +parent_generator+ is used to determine the
  # class_dir and file_dir of links in the output index.
  #
  # +options+ are the same options passed to the parent generator.

  def initialize parent_generator, options
    @parent_generator = parent_generator
    @store            = parent_generator.store
    @options          = options

    @template_dir = File.expand_path '../template/json_index', __FILE__
    @base_dir = @parent_generator.base_dir

    @classes = nil
    @files   = nil
    @index   = nil
  end

  ##
  # Builds the JSON index as a Hash.

  def build_index
    reset @store.all_files.sort, @store.all_classes_and_modules.sort

    index_classes
    index_methods
    index_pages

    { :index => @index }
  end

  ##
  # Output progress information if debugging is enabled

  def debug_msg *msg
    return unless $DEBUG_RDOC
    $stderr.puts(*msg)
  end

  ##
  # Writes the JSON index to disk

  def generate
    debug_msg "Generating JSON index"

    debug_msg "  writing search index to %s" % SEARCH_INDEX_FILE
    data = build_index

    return if @options.dry_run

    out_dir = @base_dir + @options.op_dir
    index_file = out_dir + SEARCH_INDEX_FILE

    FileUtils.mkdir_p index_file.dirname, :verbose => $DEBUG_RDOC

    index_file.open 'w', 0644 do |io|
      io.set_encoding Encoding::UTF_8 if Object.const_defined? :Encoding
      io.write 'var search_data = '

      JSON.dump data, io, 0
    end

    Dir.chdir @template_dir do
      Dir['**/*.js'].each do |source|
        dest = File.join out_dir, source

        FileUtils.install source, dest, :mode => 0644, :verbose => $DEBUG_RDOC
      end
    end
  end

  ##
  # Compress the search_index.js file using gzip

  def generate_gzipped
    debug_msg "Compressing generated JSON index"
    out_dir = @base_dir + @options.op_dir

    search_index_file = out_dir + SEARCH_INDEX_FILE
    outfile           = out_dir + "#{search_index_file}.gz"

    debug_msg "Reading the JSON index file from %s" % search_index_file
    search_index = search_index_file.read

    debug_msg "Writing gzipped search index to %s" % outfile

    Zlib::GzipWriter.open(outfile) do |gz|
      gz.mtime = File.mtime(search_index_file)
      gz.orig_name = search_index_file.to_s
      gz.write search_index
      gz.close
    end

    # GZip the rest of the js files
    Dir.chdir @template_dir do
      Dir['**/*.js'].each do |source|
        dest = out_dir + source
        outfile = out_dir + "#{dest}.gz"

        debug_msg "Reading the original js file from %s" % dest
        data = dest.read

        debug_msg "Writing gzipped file to %s" % outfile

        Zlib::GzipWriter.open(outfile) do |gz|
          gz.mtime = File.mtime(dest)
          gz.orig_name = dest.to_s
          gz.write data
          gz.close
        end
      end
    end
  end

  ##
  # Adds classes and modules to the index

  def index_classes
    debug_msg "  generating class search index"

    documented = @classes.uniq.select do |klass|
      klass.document_self_or_methods
    end

    documented.each do |klass|
      debug_msg "    #{klass.full_name}"
      record = klass.search_record
      @index[:searchIndex]     << search_string(record.shift)
      @index[:longSearchIndex] << search_string(record.shift)
      @index[:info]            << record
    end
  end

  ##
  # Adds methods to the index

  def index_methods
    debug_msg "  generating method search index"

    list = @classes.uniq.map do |klass|
      klass.method_list
    end.flatten.sort_by do |method|
      [method.name, method.parent.full_name]
    end

    list.each do |method|
      debug_msg "    #{method.full_name}"
      record = method.search_record
      @index[:searchIndex]     << "#{search_string record.shift}()"
      @index[:longSearchIndex] << "#{search_string record.shift}()"
      @index[:info]            << record
    end
  end

  ##
  # Adds pages to the index

  def index_pages
    debug_msg "  generating pages search index"

    pages = @files.select do |file|
      file.text?
    end

    pages.each do |page|
      debug_msg "    #{page.page_name}"
      record = page.search_record
      @index[:searchIndex]     << search_string(record.shift)
      @index[:longSearchIndex] << ''
      record.shift
      @index[:info]            << record
    end
  end

  ##
  # The directory classes are written to

  def class_dir
    @parent_generator.class_dir
  end

  ##
  # The directory files are written to

  def file_dir
    @parent_generator.file_dir
  end

  def reset files, classes # :nodoc:
    @files   = files
    @classes = classes

    @index = {
      :searchIndex => [],
      :longSearchIndex => [],
      :info => []
    }
  end

  ##
  # Removes whitespace and downcases +string+

  def search_string string
    string.downcase.gsub(/\s/, '')
  end

end

lib64/ruby/2.2.0/rdoc/generator/darkfish.rb000064400000047150150402106130014140 0ustar00# -*- mode: ruby; ruby-indent-level: 2; tab-width: 2 -*-

require 'erb'
require 'fileutils'
require 'pathname'
require 'rdoc/generator/markup'

##
# Darkfish RDoc HTML Generator
#
# $Id: darkfish.rb 52 2009-01-07 02:08:11Z deveiant $
#
# == Author/s
# * Michael Granger (ged@FaerieMUD.org)
#
# == Contributors
# * Mahlon E. Smith (mahlon@martini.nu)
# * Eric Hodel (drbrain@segment7.net)
#
# == License
#
# Copyright (c) 2007, 2008, Michael Granger. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
#   this list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright notice,
#   this list of conditions and the following disclaimer in the documentation
#   and/or other materials provided with the distribution.
#
# * Neither the name of the author/s, nor the names of the project's
#   contributors may be used to endorse or promote products derived from this
#   software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# == Attributions
#
# Darkfish uses the {Silk Icons}[http://www.famfamfam.com/lab/icons/silk/] set
# by Mark James.

class RDoc::Generator::Darkfish

  RDoc::RDoc.add_generator self

  include ERB::Util

  ##
  # Stylesheets, fonts, etc. that are included in RDoc.

  BUILTIN_STYLE_ITEMS = # :nodoc:
    %w[
      css/fonts.css
      fonts/Lato-Light.ttf
      fonts/Lato-LightItalic.ttf
      fonts/Lato-Regular.ttf
      fonts/Lato-RegularItalic.ttf
      fonts/SourceCodePro-Bold.ttf
      fonts/SourceCodePro-Regular.ttf
      css/rdoc.css
  ]

  ##
  # Path to this file's parent directory. Used to find templates and other
  # resources.

  GENERATOR_DIR = File.join 'rdoc', 'generator'

  ##
  # Release Version

  VERSION = '3'

  ##
  # Description of this generator

  DESCRIPTION = 'HTML generator, written by Michael Granger'

  ##
  # The relative path to style sheets and javascript.  By default this is set
  # the same as the rel_prefix.

  attr_accessor :asset_rel_path

  ##
  # The path to generate files into, combined with <tt>--op</tt> from the
  # options for a full path.

  attr_reader :base_dir

  ##
  # Classes and modules to be used by this generator, not necessarily
  # displayed.  See also #modsort

  attr_reader :classes

  ##
  # No files will be written when dry_run is true.

  attr_accessor :dry_run

  ##
  # When false the generate methods return a String instead of writing to a
  # file.  The default is true.

  attr_accessor :file_output

  ##
  # Files to be displayed by this generator

  attr_reader :files

  ##
  # The JSON index generator for this Darkfish generator

  attr_reader :json_index

  ##
  # Methods to be displayed by this generator

  attr_reader :methods

  ##
  # Sorted list of classes and modules to be displayed by this generator

  attr_reader :modsort

  ##
  # The RDoc::Store that is the source of the generated content

  attr_reader :store

  ##
  # The directory where the template files live

  attr_reader :template_dir # :nodoc:

  ##
  # The output directory

  attr_reader :outputdir

  ##
  # Initialize a few instance variables before we start

  def initialize store, options
    @store   = store
    @options = options

    @asset_rel_path = ''
    @base_dir       = Pathname.pwd.expand_path
    @dry_run        = @options.dry_run
    @file_output    = true
    @template_dir   = Pathname.new options.template_dir
    @template_cache = {}

    @classes = nil
    @context = nil
    @files   = nil
    @methods = nil
    @modsort = nil

    @json_index = RDoc::Generator::JsonIndex.new self, options
  end

  ##
  # Output progress information if debugging is enabled

  def debug_msg *msg
    return unless $DEBUG_RDOC
    $stderr.puts(*msg)
  end

  ##
  # Directory where generated class HTML files live relative to the output
  # dir.

  def class_dir
    nil
  end

  ##
  # Directory where generated class HTML files live relative to the output
  # dir.

  def file_dir
    nil
  end

  ##
  # Create the directories the generated docs will live in if they don't
  # already exist.

  def gen_sub_directories
    @outputdir.mkpath
  end

  ##
  # Copy over the stylesheet into the appropriate place in the output
  # directory.

  def write_style_sheet
    debug_msg "Copying static files"
    options = { :verbose => $DEBUG_RDOC, :noop => @dry_run }

    BUILTIN_STYLE_ITEMS.each do |item|
      install_rdoc_static_file @template_dir + item, "./#{item}", options
    end

    @options.template_stylesheets.each do |stylesheet|
      FileUtils.cp stylesheet, '.', options
    end

    Dir[(@template_dir + "{js,images}/**/*").to_s].each do |path|
      next if File.directory? path
      next if File.basename(path) =~ /^\./

      dst = Pathname.new(path).relative_path_from @template_dir

      install_rdoc_static_file @template_dir + path, dst, options
    end
  end

  ##
  # Build the initial indices and output objects based on an array of TopLevel
  # objects containing the extracted information.

  def generate
    setup

    write_style_sheet
    generate_index
    generate_class_files
    generate_file_files
    generate_table_of_contents
    @json_index.generate
    @json_index.generate_gzipped

    copy_static

  rescue => e
    debug_msg "%s: %s\n  %s" % [
      e.class.name, e.message, e.backtrace.join("\n  ")
    ]

    raise
  end

  ##
  # Copies static files from the static_path into the output directory

  def copy_static
    return if @options.static_path.empty?

    fu_options = { :verbose => $DEBUG_RDOC, :noop => @dry_run }

    @options.static_path.each do |path|
      unless File.directory? path then
        FileUtils.install path, @outputdir, fu_options.merge(:mode => 0644)
        next
      end

      Dir.chdir path do
        Dir[File.join('**', '*')].each do |entry|
          dest_file = @outputdir + entry

          if File.directory? entry then
            FileUtils.mkdir_p entry, fu_options
          else
            FileUtils.install entry, dest_file, fu_options.merge(:mode => 0644)
          end
        end
      end
    end
  end

  ##
  # Return a list of the documented modules sorted by salience first, then
  # by name.

  def get_sorted_module_list classes
    classes.select do |klass|
      klass.display?
    end.sort
  end

  ##
  # Generate an index page which lists all the classes which are documented.

  def generate_index
    setup

    template_file = @template_dir + 'index.rhtml'
    return unless template_file.exist?

    debug_msg "Rendering the index page..."

    out_file = @base_dir + @options.op_dir + 'index.html'
    rel_prefix = @outputdir.relative_path_from out_file.dirname
    search_index_rel_prefix = rel_prefix
    search_index_rel_prefix += @asset_rel_path if @file_output

    # suppress 1.9.3 warning
    asset_rel_prefix = asset_rel_prefix = rel_prefix + @asset_rel_path

    @title = @options.title

    render_template template_file, out_file do |io| binding end
  rescue => e
    error = RDoc::Error.new \
      "error generating index.html: #{e.message} (#{e.class})"
    error.set_backtrace e.backtrace

    raise error
  end

  ##
  # Generates a class file for +klass+

  def generate_class klass, template_file = nil
    setup

    current = klass

    template_file ||= @template_dir + 'class.rhtml'

    debug_msg "  working on %s (%s)" % [klass.full_name, klass.path]
    out_file   = @outputdir + klass.path
    rel_prefix = @outputdir.relative_path_from out_file.dirname
    search_index_rel_prefix = rel_prefix
    search_index_rel_prefix += @asset_rel_path if @file_output

    # suppress 1.9.3 warning
    asset_rel_prefix = asset_rel_prefix = rel_prefix + @asset_rel_path
    svninfo          = svninfo          = get_svninfo(current)

    @title = "#{klass.type} #{klass.full_name} - #{@options.title}"

    debug_msg "  rendering #{out_file}"
    render_template template_file, out_file do |io| binding end
  end

  ##
  # Generate a documentation file for each class and module

  def generate_class_files
    setup

    template_file = @template_dir + 'class.rhtml'
    template_file = @template_dir + 'classpage.rhtml' unless
      template_file.exist?
    return unless template_file.exist?
    debug_msg "Generating class documentation in #{@outputdir}"

    current = nil

    @classes.each do |klass|
      current = klass

      generate_class klass, template_file
    end
  rescue => e
    error = RDoc::Error.new \
      "error generating #{current.path}: #{e.message} (#{e.class})"
    error.set_backtrace e.backtrace

    raise error
  end

  ##
  # Generate a documentation file for each file

  def generate_file_files
    setup

    page_file     = @template_dir + 'page.rhtml'
    fileinfo_file = @template_dir + 'fileinfo.rhtml'

    # for legacy templates
    filepage_file = @template_dir + 'filepage.rhtml' unless
      page_file.exist? or fileinfo_file.exist?

    return unless
      page_file.exist? or fileinfo_file.exist? or filepage_file.exist?

    debug_msg "Generating file documentation in #{@outputdir}"

    out_file = nil
    current = nil

    @files.each do |file|
      current = file

      if file.text? and page_file.exist? then
        generate_page file
        next
      end

      template_file = nil
      out_file = @outputdir + file.path
      debug_msg "  working on %s (%s)" % [file.full_name, out_file]
      rel_prefix = @outputdir.relative_path_from out_file.dirname
      search_index_rel_prefix = rel_prefix
      search_index_rel_prefix += @asset_rel_path if @file_output

      # suppress 1.9.3 warning
      asset_rel_prefix = asset_rel_prefix = rel_prefix + @asset_rel_path

      unless filepage_file then
        if file.text? then
          next unless page_file.exist?
          template_file = page_file
          @title = file.page_name
        else
          next unless fileinfo_file.exist?
          template_file = fileinfo_file
          @title = "File: #{file.base_name}"
        end
      end

      @title += " - #{@options.title}"
      template_file ||= filepage_file

      render_template template_file, out_file do |io| binding end
    end
  rescue => e
    error =
      RDoc::Error.new "error generating #{out_file}: #{e.message} (#{e.class})"
    error.set_backtrace e.backtrace

    raise error
  end

  ##
  # Generate a page file for +file+

  def generate_page file
    setup

    template_file = @template_dir + 'page.rhtml'

    out_file = @outputdir + file.path
    debug_msg "  working on %s (%s)" % [file.full_name, out_file]
    rel_prefix = @outputdir.relative_path_from out_file.dirname
    search_index_rel_prefix = rel_prefix
    search_index_rel_prefix += @asset_rel_path if @file_output

    # suppress 1.9.3 warning
    current          = current          = file
    asset_rel_prefix = asset_rel_prefix = rel_prefix + @asset_rel_path

    @title = "#{file.page_name} - #{@options.title}"

    debug_msg "  rendering #{out_file}"
    render_template template_file, out_file do |io| binding end
  end

  ##
  # Generates the 404 page for the RDoc servlet

  def generate_servlet_not_found message
    setup

    template_file = @template_dir + 'servlet_not_found.rhtml'
    return unless template_file.exist?

    debug_msg "Rendering the servlet 404 Not Found page..."

    rel_prefix = rel_prefix = ''
    search_index_rel_prefix = rel_prefix
    search_index_rel_prefix += @asset_rel_path if @file_output

    # suppress 1.9.3 warning
    asset_rel_prefix = asset_rel_prefix = ''

    @title = 'Not Found'

    render_template template_file do |io| binding end
  rescue => e
    error = RDoc::Error.new \
      "error generating servlet_not_found: #{e.message} (#{e.class})"
    error.set_backtrace e.backtrace

    raise error
  end

  ##
  # Generates the servlet root page for the RDoc servlet

  def generate_servlet_root installed
    setup

    template_file = @template_dir + 'servlet_root.rhtml'
    return unless template_file.exist?

    debug_msg 'Rendering the servlet root page...'

    rel_prefix = '.'
    asset_rel_prefix = rel_prefix
    search_index_rel_prefix = asset_rel_prefix
    search_index_rel_prefix += @asset_rel_path if @file_output

    @title = 'Local RDoc Documentation'

    render_template template_file do |io| binding end
  rescue => e
    error = RDoc::Error.new \
      "error generating servlet_root: #{e.message} (#{e.class})"
    error.set_backtrace e.backtrace

    raise error
  end

  ##
  # Generate an index page which lists all the classes which are documented.

  def generate_table_of_contents
    setup

    template_file = @template_dir + 'table_of_contents.rhtml'
    return unless template_file.exist?

    debug_msg "Rendering the Table of Contents..."

    out_file = @outputdir + 'table_of_contents.html'
    rel_prefix = @outputdir.relative_path_from out_file.dirname
    search_index_rel_prefix = rel_prefix
    search_index_rel_prefix += @asset_rel_path if @file_output

    # suppress 1.9.3 warning
    asset_rel_prefix = asset_rel_prefix = rel_prefix + @asset_rel_path

    @title = "Table of Contents - #{@options.title}"

    render_template template_file, out_file do |io| binding end
  rescue => e
    error = RDoc::Error.new \
      "error generating table_of_contents.html: #{e.message} (#{e.class})"
    error.set_backtrace e.backtrace

    raise error
  end

  def install_rdoc_static_file source, destination, options # :nodoc:
    return unless source.exist?

    begin
      FileUtils.mkdir_p File.dirname(destination), options

      begin
        FileUtils.ln source, destination, options
      rescue Errno::EEXIST
        FileUtils.rm destination
        retry
      end
    rescue
      FileUtils.cp source, destination, options
    end
  end

  ##
  # Prepares for generation of output from the current directory

  def setup
    return if instance_variable_defined? :@outputdir

    @outputdir = Pathname.new(@options.op_dir).expand_path @base_dir

    return unless @store

    @classes = @store.all_classes_and_modules.sort
    @files   = @store.all_files.sort
    @methods = @classes.map { |m| m.method_list }.flatten.sort
    @modsort = get_sorted_module_list @classes
  end

  ##
  # Return a string describing the amount of time in the given number of
  # seconds in terms a human can understand easily.

  def time_delta_string seconds
    return 'less than a minute'          if seconds < 60
    return "#{seconds / 60} minute#{seconds / 60 == 1 ? '' : 's'}" if
                                            seconds < 3000     # 50 minutes
    return 'about one hour'              if seconds < 5400     # 90 minutes
    return "#{seconds / 3600} hours"     if seconds < 64800    # 18 hours
    return 'one day'                     if seconds < 86400    #  1 day
    return 'about one day'               if seconds < 172800   #  2 days
    return "#{seconds / 86400} days"     if seconds < 604800   #  1 week
    return 'about one week'              if seconds < 1209600  #  2 week
    return "#{seconds / 604800} weeks"   if seconds < 7257600  #  3 months
    return "#{seconds / 2419200} months" if seconds < 31536000 #  1 year
    return "#{seconds / 31536000} years"
  end

  # %q$Id: darkfish.rb 52 2009-01-07 02:08:11Z deveiant $"
  SVNID_PATTERN = /
    \$Id:\s
    (\S+)\s                # filename
    (\d+)\s                # rev
    (\d{4}-\d{2}-\d{2})\s  # Date (YYYY-MM-DD)
    (\d{2}:\d{2}:\d{2}Z)\s # Time (HH:MM:SSZ)
    (\w+)\s                # committer
    \$$
  /x

  ##
  # Try to extract Subversion information out of the first constant whose
  # value looks like a subversion Id tag. If no matching constant is found,
  # and empty hash is returned.

  def get_svninfo klass
    constants = klass.constants or return {}

    constants.find { |c| c.value =~ SVNID_PATTERN } or return {}

    filename, rev, date, time, committer = $~.captures
    commitdate = Time.parse "#{date} #{time}"

    return {
      :filename    => filename,
      :rev         => Integer(rev),
      :commitdate  => commitdate,
      :commitdelta => time_delta_string(Time.now - commitdate),
      :committer   => committer,
    }
  end

  ##
  # Creates a template from its components and the +body_file+.
  #
  # For backwards compatibility, if +body_file+ contains "<html" the body is
  # used directly.

  def assemble_template body_file
    body = body_file.read
    return body if body =~ /<html/

    head_file = @template_dir + '_head.rhtml'
    footer_file = @template_dir + '_footer.rhtml'

    <<-TEMPLATE
<!DOCTYPE html>

<html>
<head>
#{head_file.read}

#{body}

#{footer_file.read}
    TEMPLATE
  end

  ##
  # Renders the ERb contained in +file_name+ relative to the template
  # directory and returns the result based on the current context.

  def render file_name
    template_file = @template_dir + file_name

    template = template_for template_file, false, RDoc::ERBPartial

    template.filename = template_file.to_s

    template.result @context
  end

  ##
  # Load and render the erb template in the given +template_file+ and write
  # it out to +out_file+.
  #
  # Both +template_file+ and +out_file+ should be Pathname-like objects.
  #
  # An io will be yielded which must be captured by binding in the caller.

  def render_template template_file, out_file = nil # :yield: io
    io_output = out_file && !@dry_run && @file_output
    erb_klass = io_output ? RDoc::ERBIO : ERB

    template = template_for template_file, true, erb_klass

    if io_output then
      debug_msg "Outputting to %s" % [out_file.expand_path]

      out_file.dirname.mkpath
      out_file.open 'w', 0644 do |io|
        io.set_encoding @options.encoding if Object.const_defined? :Encoding

        @context = yield io

        template_result template, @context, template_file
      end
    else
      @context = yield nil

      output = template_result template, @context, template_file

      debug_msg "  would have written %d characters to %s" % [
        output.length, out_file.expand_path
      ] if @dry_run

      output
    end
  end

  ##
  # Creates the result for +template+ with +context+.  If an error is raised a
  # Pathname +template_file+ will indicate the file where the error occurred.

  def template_result template, context, template_file
    template.filename = template_file.to_s
    template.result context
  rescue NoMethodError => e
    raise RDoc::Error, "Error while evaluating %s: %s" % [
      template_file.expand_path,
      e.message,
    ], e.backtrace
  end

  ##
  # Retrieves a cache template for +file+, if present, or fills the cache.

  def template_for file, page = true, klass = ERB
    template = @template_cache[file]

    return template if template

    if page then
      template = assemble_template file
      erbout = 'io'
    else
      template = file.read
      template = template.encode @options.encoding if
        Object.const_defined? :Encoding

      file_var = File.basename(file).sub(/\..*/, '')

      erbout = "_erbout_#{file_var}"
    end

    template = klass.new template, nil, '<>', erbout
    @template_cache[file] = template
    template
  end

end

lib64/ruby/2.2.0/rdoc/generator/ri.rb000064400000000662150402106130012754 0ustar00##
# Generates ri data files

class RDoc::Generator::RI

  RDoc::RDoc.add_generator self

  ##
  # Description of this generator

  DESCRIPTION = 'creates ri data files'

  ##
  # Set up a new ri generator

  def initialize store, options #:not-new:
    @options    = options
    @store      = store
    @store.path = '.'
  end

  ##
  # Writes the parsed data store to disk for use by ri.

  def generate
    @store.save
  end

end

lib64/ruby/2.2.0/rdoc/method_attr.rb000064400000022006150402106130012662 0ustar00##
# Abstract class representing either a method or an attribute.

class RDoc::MethodAttr < RDoc::CodeObject

  include Comparable

  ##
  # Name of this method/attribute.

  attr_accessor :name

  ##
  # public, protected, private

  attr_accessor :visibility

  ##
  # Is this a singleton method/attribute?

  attr_accessor :singleton

  ##
  # Source file token stream

  attr_reader :text

  ##
  # Array of other names for this method/attribute

  attr_reader :aliases

  ##
  # The method/attribute we're aliasing

  attr_accessor :is_alias_for

  #--
  # The attributes below are for AnyMethod only.
  # They are left here for the time being to
  # allow ri to operate.
  # TODO modify ri to avoid calling these on attributes.
  #++

  ##
  # Parameters yielded by the called block

  attr_reader :block_params

  ##
  # Parameters for this method

  attr_accessor :params

  ##
  # Different ways to call this method

  attr_accessor :call_seq

  ##
  # The call_seq or the param_seq with method name, if there is no call_seq.

  attr_reader :arglists

  ##
  # Pretty parameter list for this method

  attr_reader :param_seq


  ##
  # Creates a new MethodAttr from token stream +text+ and method or attribute
  # name +name+.
  #
  # Usually this is called by super from a subclass.

  def initialize text, name
    super()

    @text = text
    @name = name

    @aliases      = []
    @is_alias_for = nil
    @parent_name  = nil
    @singleton    = nil
    @visibility   = :public
    @see = false

    @arglists     = nil
    @block_params = nil
    @call_seq     = nil
    @param_seq    = nil
    @params       = nil
  end

  ##
  # Resets cached data for the object so it can be rebuilt by accessor methods

  def initialize_copy other # :nodoc:
    @full_name = nil
  end

  def initialize_visibility # :nodoc:
    super
    @see = nil
  end

  ##
  # Order by #singleton then #name

  def <=>(other)
    return unless other.respond_to?(:singleton) &&
                  other.respond_to?(:name)

    [     @singleton ? 0 : 1,       name] <=>
    [other.singleton ? 0 : 1, other.name]
  end

  def == other # :nodoc:
    equal?(other) or self.class == other.class and full_name == other.full_name
  end

  ##
  # A method/attribute is documented if any of the following is true:
  # - it was marked with :nodoc:;
  # - it has a comment;
  # - it is an alias for a documented method;
  # - it has a +#see+ method that is documented.

  def documented?
    super or
      (is_alias_for and is_alias_for.documented?) or
      (see and see.documented?)
  end

  ##
  # A method/attribute to look at,
  # in particular if this method/attribute has no documentation.
  #
  # It can be a method/attribute of the superclass or of an included module,
  # including the Kernel module, which is always appended to the included
  # modules.
  #
  # Returns +nil+ if there is no such method/attribute.
  # The +#is_alias_for+ method/attribute, if any, is not included.
  #
  # Templates may generate a "see also ..." if this method/attribute
  # has documentation, and "see ..." if it does not.

  def see
    @see = find_see if @see == false
    @see
  end

  ##
  # Sets the store for this class or module and its contained code objects.

  def store= store
    super

    @file = @store.add_file @file.full_name if @file
  end

  def find_see # :nodoc:
    return nil if singleton || is_alias_for

    # look for the method
    other = find_method_or_attribute name
    return other if other

    # if it is a setter, look for a getter
    return nil unless name =~ /[a-z_]=$/i   # avoid == or ===
    return find_method_or_attribute name[0..-2]
  end

  def find_method_or_attribute name # :nodoc:
    return nil unless parent.respond_to? :ancestors

    searched = parent.ancestors
    kernel = @store.modules_hash['Kernel']

    searched << kernel if kernel &&
      parent != kernel && !searched.include?(kernel)

    searched.each do |ancestor|
      next if String === ancestor
      next if parent == ancestor

      other = ancestor.find_method_named('#' << name) ||
              ancestor.find_attribute_named(name)

      return other if other
    end

    nil
  end

  ##
  # Abstract method. Contexts in their building phase call this
  # to register a new alias for this known method/attribute.
  #
  # - creates a new AnyMethod/Attribute named <tt>an_alias.new_name</tt>;
  # - adds +self+ as an alias for the new method or attribute
  # - adds the method or attribute to #aliases
  # - adds the method or attribute to +context+.

  def add_alias(an_alias, context)
    raise NotImplementedError
  end

  ##
  # HTML fragment reference for this method

  def aref
    type = singleton ? 'c' : 'i'
    # % characters are not allowed in html names => dash instead
    "#{aref_prefix}-#{type}-#{html_name}"
  end

  ##
  # Prefix for +aref+, defined by subclasses.

  def aref_prefix
    raise NotImplementedError
  end

  ##
  # Attempts to sanitize the content passed by the Ruby parser:
  # remove outer parentheses, etc.

  def block_params=(value)
    # 'yield.to_s' or 'assert yield, msg'
    return @block_params = '' if value =~ /^[\.,]/

    # remove trailing 'if/unless ...'
    return @block_params = '' if value =~ /^(if|unless)\s/

    value = $1.strip if value =~ /^(.+)\s(if|unless)\s/

    # outer parentheses
    value = $1 if value =~ /^\s*\((.*)\)\s*$/
    value = value.strip

    # proc/lambda
    return @block_params = $1 if value =~ /^(proc|lambda)(\s*\{|\sdo)/

    # surrounding +...+ or [...]
    value = $1.strip if value =~ /^\+(.*)\+$/
    value = $1.strip if value =~ /^\[(.*)\]$/

    return @block_params = '' if value.empty?

    # global variable
    return @block_params = 'str' if value =~ /^\$[&0-9]$/

    # wipe out array/hash indices
    value.gsub!(/(\w)\[[^\[]+\]/, '\1')

    # remove @ from class/instance variables
    value.gsub!(/@@?([a-z0-9_]+)/, '\1')

    # method calls => method name
    value.gsub!(/([A-Z:a-z0-9_]+)\.([a-z0-9_]+)(\s*\(\s*[a-z0-9_.,\s]*\s*\)\s*)?/) do
      case $2
      when 'to_s'      then $1
      when 'const_get' then 'const'
      when 'new' then
        $1.split('::').last.  # ClassName => class_name
          gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
          gsub(/([a-z\d])([A-Z])/,'\1_\2').
          downcase
      else
        $2
      end
    end

    # class prefixes
    value.gsub!(/[A-Za-z0-9_:]+::/, '')

    # simple expressions
    value = $1 if value =~ /^([a-z0-9_]+)\s*[-*+\/]/

    @block_params = value.strip
  end

  ##
  # HTML id-friendly method/attribute name

  def html_name
    require 'cgi'

    CGI.escape(@name.gsub('-', '-2D')).gsub('%','-').sub(/^-/, '')
  end

  ##
  # Full method/attribute name including namespace

  def full_name
    @full_name ||= "#{parent_name}#{pretty_name}"
  end

  def inspect # :nodoc:
    alias_for = @is_alias_for ? " (alias for #{@is_alias_for.name})" : nil
    visibility = self.visibility
    visibility = "forced #{visibility}" if force_documentation
    "#<%s:0x%x %s (%s)%s>" % [
      self.class, object_id,
      full_name,
      visibility,
      alias_for,
    ]
  end

  ##
  # '::' for a class method/attribute, '#' for an instance method.

  def name_prefix
    @singleton ? '::' : '#'
  end

  ##
  # Name for output to HTML.  For class methods the full name with a "." is
  # used like +SomeClass.method_name+.  For instance methods the class name is
  # used if +context+ does not match the parent.
  #
  # This is to help prevent people from using :: to call class methods.

  def output_name context
    return "#{name_prefix}#{@name}" if context == parent

    "#{parent_name}#{@singleton ? '.' : '#'}#{@name}"
  end

  ##
  # Method/attribute name with class/instance indicator

  def pretty_name
    "#{name_prefix}#{@name}"
  end

  ##
  # Type of method/attribute (class or instance)

  def type
    singleton ? 'class' : 'instance'
  end

  ##
  # Path to this method for use with HTML generator output.

  def path
    "#{@parent.path}##{aref}"
  end

  ##
  # Name of our parent with special handling for un-marshaled methods

  def parent_name
    @parent_name || super
  end

  def pretty_print q # :nodoc:
    alias_for =
      if @is_alias_for.respond_to? :name then
        "alias for #{@is_alias_for.name}"
      elsif Array === @is_alias_for then
        "alias for #{@is_alias_for.last}"
      end

    q.group 2, "[#{self.class.name} #{full_name} #{visibility}", "]" do
      if alias_for then
        q.breakable
        q.text alias_for
      end

      if text then
        q.breakable
        q.text "text:"
        q.breakable
        q.pp @text
      end

      unless comment.empty? then
        q.breakable
        q.text "comment:"
        q.breakable
        q.pp @comment
      end
    end
  end

  ##
  # Used by RDoc::Generator::JsonIndex to create a record for the search
  # engine.

  def search_record
    [
      @name,
      full_name,
      @name,
      @parent.full_name,
      path,
      params,
      snippet(@comment),
    ]
  end

  def to_s # :nodoc:
    if @is_alias_for
      "#{self.class.name}: #{full_name} -> #{is_alias_for}"
    else
      "#{self.class.name}: #{full_name}"
    end
  end

end

lib64/ruby/2.2.0/rdoc/tom_doc.rb000064400000014415150402106130012001 0ustar00# :markup: tomdoc

# A parser for TomDoc based on TomDoc 1.0.0-rc1 (02adef9b5a)
#
# The TomDoc specification can be found at:
#
# http://tomdoc.org
#
# The latest version of the TomDoc specification can be found at:
#
# https://github.com/mojombo/tomdoc/blob/master/tomdoc.md
#
# To choose TomDoc as your only default format see RDoc::Options@Saved+Options
# for instructions on setting up a <code>.rdoc_options</code> file to store
# your project default.
#
# There are a few differences between this parser and the specification.  A
# best-effort was made to follow the specification as closely as possible but
# some choices to deviate were made.
#
# A future version of RDoc will warn when a MUST or MUST NOT is violated and
# may warn when a SHOULD or SHOULD NOT is violated.  RDoc will always try
# to emit documentation even if given invalid TomDoc.
#
# Here are some implementation choices this parser currently makes:
#
# This parser allows rdoc-style inline markup but you should not depended on
# it.
#
# This parser allows a space between the comment and the method body.
#
# This parser does not require the default value to be described for an
# optional argument.
#
# This parser does not examine the order of sections.  An Examples section may
# precede the Arguments section.
#
# This class is documented in TomDoc format.  Since this is a subclass of the
# RDoc markup parser there isn't much to see here, unfortunately.

class RDoc::TomDoc < RDoc::Markup::Parser

  # Internal: Token accessor

  attr_reader :tokens

  # Internal: Adds a post-processor which sets the RDoc section based on the
  # comment's status.
  #
  # Returns nothing.

  def self.add_post_processor # :nodoc:
    RDoc::Markup::PreProcess.post_process do |comment, code_object|
      next unless code_object and
                  RDoc::Comment === comment and comment.format == 'tomdoc'

      comment.text.gsub!(/(\A\s*# )(Public|Internal|Deprecated):\s+/) do
        section = code_object.add_section $2
        code_object.temporary_section = section

        $1
      end
    end
  end

  add_post_processor

  # Public: Parses TomDoc from text
  #
  # text - A String containing TomDoc-format text.
  #
  # Examples
  #
  #   RDoc::TomDoc.parse <<-TOMDOC
  #   This method does some things
  #
  #   Returns nothing.
  #   TOMDOC
  #   # => #<RDoc::Markup::Document:0xXXX @parts=[...], @file=nil>
  #
  # Returns an RDoc::Markup::Document representing the TomDoc format.

  def self.parse text
    parser = new

    parser.tokenize text
    doc = RDoc::Markup::Document.new
    parser.parse doc
    doc
  end

  # Internal: Extracts the Signature section's method signature
  #
  # comment - An RDoc::Comment that will be parsed and have the signature
  #           extracted
  #
  # Returns a String containing the signature and nil if not

  def self.signature comment
    return unless comment.tomdoc?

    document = comment.parse

    signature = nil
    found_heading = false
    found_signature = false

    document.parts.delete_if do |part|
      next false if found_signature

      found_heading ||=
        RDoc::Markup::Heading === part && part.text == 'Signature'

      next false unless found_heading

      next true if RDoc::Markup::BlankLine === part

      if RDoc::Markup::Verbatim === part then
        signature = part
        found_signature = true
      end
    end

    signature and signature.text
  end

  # Public: Creates a new TomDoc parser.  See also RDoc::Markup::parse

  def initialize
    super

    @section      = nil
    @seen_returns = false
  end

  # Internal: Builds a heading from the token stream
  #
  # level - The level of heading to create
  #
  # Returns an RDoc::Markup::Heading

  def build_heading level
    heading = super

    @section = heading.text

    heading
  end

  # Internal: Builds a verbatim from the token stream.  A verbatim in the
  # Examples section will be marked as in Ruby format.
  #
  # margin - The indentation from the margin for lines that belong to this
  #          verbatim section.
  #
  # Returns an RDoc::Markup::Verbatim

  def build_verbatim margin
    verbatim = super

    verbatim.format = :ruby if @section == 'Examples'

    verbatim
  end

  # Internal: Builds a paragraph from the token stream
  #
  # margin - Unused
  #
  # Returns an RDoc::Markup::Paragraph.

  def build_paragraph margin
    p :paragraph_start => margin if @debug

    paragraph = RDoc::Markup::Paragraph.new

    until @tokens.empty? do
      type, data, = get

      case type
      when :TEXT then
        @section = 'Returns' if data =~ /\AReturns/

        paragraph << data
      when :NEWLINE then
        if :TEXT == peek_token[0] then
          paragraph << ' '
        else
          break
        end
      else
        unget
        break
      end
    end

    p :paragraph_end => margin if @debug

    paragraph
  end

  ##
  # Detects a section change to "Returns" and adds a heading

  def parse_text parent, indent # :nodoc:
    paragraph = build_paragraph indent

    if false == @seen_returns and 'Returns' == @section then
      @seen_returns = true
      parent << RDoc::Markup::Heading.new(3, 'Returns')
      parent << RDoc::Markup::BlankLine.new
    end

    parent << paragraph
  end

  # Internal: Turns text into an Array of tokens
  #
  # text - A String containing TomDoc-format text.
  #
  # Returns self.

  def tokenize text
    text.sub!(/\A(Public|Internal|Deprecated):\s+/, '')

    setup_scanner text

    until @s.eos? do
      pos = @s.pos

      # leading spaces will be reflected by the column of the next token
      # the only thing we loose are trailing spaces at the end of the file
      next if @s.scan(/ +/)

      @tokens << case
                 when @s.scan(/\r?\n/) then
                   token = [:NEWLINE, @s.matched, *token_pos(pos)]
                   @line_pos = char_pos @s.pos
                   @line += 1
                   token
                 when @s.scan(/(Examples|Signature)$/) then
                   @tokens << [:HEADER, 3, *token_pos(pos)]

                   [:TEXT, @s[1], *token_pos(pos)]
                 when @s.scan(/([:\w][\w\[\]]*)[ ]+- /) then
                   [:NOTE, @s[1], *token_pos(pos)]
                 else
                   @s.scan(/.*/)
                   [:TEXT, @s.matched.sub(/\r$/, ''), *token_pos(pos)]
                 end
    end

    self
  end

end

lib64/ruby/2.2.0/rdoc/task.rb000064400000017245150402106130011323 0ustar00#--
# Copyright (c) 2003, 2004 Jim Weirich, 2009 Eric Hodel
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#++

require 'rubygems'
begin
  gem 'rdoc'
rescue Gem::LoadError
end unless defined?(RDoc)

begin
  gem 'rake'
rescue Gem::LoadError
end unless defined?(Rake)

require 'rdoc'
require 'rake'
require 'rake/tasklib'

##
# RDoc::Task creates the following rake tasks to generate and clean up RDoc
# output:
#
# [rdoc]
#   Main task for this RDoc task.
#
# [clobber_rdoc]
#   Delete all the rdoc files.  This target is automatically added to the main
#   clobber target.
#
# [rerdoc]
#   Rebuild the rdoc files from scratch, even if they are not out of date.
#
# Simple Example:
#
#   require 'rdoc/task'
#
#   RDoc::Task.new do |rdoc|
#     rdoc.main = "README.rdoc"
#     rdoc.rdoc_files.include("README.rdoc", "lib/**/*.rb")
#   end
#
# The +rdoc+ object passed to the block is an RDoc::Task object. See the
# attributes list for the RDoc::Task class for available customization options.
#
# == Specifying different task names
#
# You may wish to give the task a different name, such as if you are
# generating two sets of documentation.  For instance, if you want to have a
# development set of documentation including private methods:
#
#   require 'rdoc/task'
#
#   RDoc::Task.new :rdoc_dev do |rdoc|
#     rdoc.main = "README.doc"
#     rdoc.rdoc_files.include("README.rdoc", "lib/**/*.rb")
#     rdoc.options << "--all"
#   end
#
# The tasks would then be named :<em>rdoc_dev</em>,
# :clobber_<em>rdoc_dev</em>, and :re<em>rdoc_dev</em>.
#
# If you wish to have completely different task names, then pass a Hash as
# first argument. With the <tt>:rdoc</tt>, <tt>:clobber_rdoc</tt> and
# <tt>:rerdoc</tt> options, you can customize the task names to your liking.
#
# For example:
#
#   require 'rdoc/task'
#
#   RDoc::Task.new(:rdoc => "rdoc", :clobber_rdoc => "rdoc:clean",
#                  :rerdoc => "rdoc:force")
#
# This will create the tasks <tt>:rdoc</tt>, <tt>:rdoc:clean</tt> and
# <tt>:rdoc:force</tt>.

class RDoc::Task < Rake::TaskLib

  ##
  # Name of the main, top level task.  (default is :rdoc)

  attr_accessor :name

  ##
  # Comment markup format.  rdoc, rd and tomdoc are supported.  (default is
  # 'rdoc')

  attr_accessor :markup

  ##
  # Name of directory to receive the html output files. (default is "html")

  attr_accessor :rdoc_dir

  ##
  # Title of RDoc documentation. (defaults to rdoc's default)

  attr_accessor :title

  ##
  # Name of file to be used as the main, top level file of the RDoc. (default
  # is none)

  attr_accessor :main

  ##
  # Name of template to be used by rdoc. (defaults to rdoc's default)

  attr_accessor :template

  ##
  # Name of format generator (<tt>--format<tt>) used by rdoc. (defaults to
  # rdoc's default)

  attr_accessor :generator

  ##
  # List of files to be included in the rdoc generation. (default is [])

  attr_accessor :rdoc_files

  ##
  # Additional list of options to be passed rdoc.  (default is [])

  attr_accessor :options

  ##
  # Whether to run the rdoc process as an external shell (default is false)

  attr_accessor :external

  ##
  # Create an RDoc task with the given name. See the RDoc::Task class overview
  # for documentation.

  def initialize name = :rdoc # :yield: self
    defaults

    check_names name

    @name = name

    yield self if block_given?

    define
  end

  ##
  # Ensures that +names+ only includes names for the :rdoc, :clobber_rdoc and
  # :rerdoc.  If other names are given an ArgumentError is raised.

  def check_names names
    return unless Hash === names

    invalid_options =
      names.keys.map { |k| k.to_sym } - [:rdoc, :clobber_rdoc, :rerdoc]

    unless invalid_options.empty? then
      raise ArgumentError, "invalid options: #{invalid_options.join ', '}"
    end
  end

  ##
  # Task description for the clobber rdoc task or its renamed equivalent

  def clobber_task_description
    "Remove RDoc HTML files"
  end

  ##
  # Sets default task values

  def defaults
    @name = :rdoc
    @rdoc_files = Rake::FileList.new
    @rdoc_dir = 'html'
    @main = nil
    @title = nil
    @template = nil
    @generator = nil
    @options = []
  end

  ##
  # All source is inline now.  This method is deprecated

  def inline_source # :nodoc:
    warn "RDoc::Task#inline_source is deprecated"
    true
  end

  ##
  # All source is inline now.  This method is deprecated

  def inline_source=(value) # :nodoc:
    warn "RDoc::Task#inline_source is deprecated"
  end

  ##
  # Create the tasks defined by this task lib.

  def define
    desc rdoc_task_description
    task rdoc_task_name

    desc rerdoc_task_description
    task rerdoc_task_name => [clobber_task_name, rdoc_task_name]

    desc clobber_task_description
    task clobber_task_name do
      rm_r @rdoc_dir rescue nil
    end

    task :clobber => [clobber_task_name]

    directory @rdoc_dir

    rdoc_target_deps = [
      @rdoc_files,
      Rake.application.rakefile
    ].flatten.compact

    task rdoc_task_name => [rdoc_target]
    file rdoc_target => rdoc_target_deps do
      @before_running_rdoc.call if @before_running_rdoc
      args = option_list + @rdoc_files

      $stderr.puts "rdoc #{args.join ' '}" if Rake.application.options.trace
      RDoc::RDoc.new.document args
    end

    self
  end

  ##
  # List of options that will be supplied to RDoc

  def option_list
    result = @options.dup
    result << "-o"       << @rdoc_dir
    result << "--main"   << main      if main
    result << "--markup" << markup    if markup
    result << "--title"  << title     if title
    result << "-T"       << template  if template
    result << '-f'       << generator if generator
    result
  end

  ##
  # The block passed to this method will be called just before running the
  # RDoc generator. It is allowed to modify RDoc::Task attributes inside the
  # block.

  def before_running_rdoc(&block)
    @before_running_rdoc = block
  end

  ##
  # Task description for the rdoc task or its renamed equivalent

  def rdoc_task_description
    'Build RDoc HTML files'
  end

  ##
  # Task description for the rerdoc task or its renamed description

  def rerdoc_task_description
    "Rebuild RDoc HTML files"
  end

  private

  def rdoc_target
    "#{rdoc_dir}/created.rid"
  end

  def rdoc_task_name
    case name
    when Hash then (name[:rdoc] || "rdoc").to_s
    else           name.to_s
    end
  end

  def clobber_task_name
    case name
    when Hash then (name[:clobber_rdoc] || "clobber_rdoc").to_s
    else           "clobber_#{name}"
    end
  end

  def rerdoc_task_name
    case name
    when Hash then (name[:rerdoc] || "rerdoc").to_s
    else           "re#{name}"
    end
  end

end

# :stopdoc:
module Rake

  ##
  # For backwards compatibility

  RDocTask = RDoc::Task

end
# :startdoc:

lib64/ruby/2.2.0/rdoc/code_object.rb000064400000022603150402106130012613 0ustar00##
# Base class for the RDoc code tree.
#
# We contain the common stuff for contexts (which are containers) and other
# elements (methods, attributes and so on)
#
# Here's the tree of the CodeObject subclasses:
#
# * RDoc::Context
#   * RDoc::TopLevel
#   * RDoc::ClassModule
#     * RDoc::AnonClass (never used so far)
#     * RDoc::NormalClass
#     * RDoc::NormalModule
#     * RDoc::SingleClass
# * RDoc::MethodAttr
#   * RDoc::Attr
#   * RDoc::AnyMethod
#     * RDoc::GhostMethod
#     * RDoc::MetaMethod
# * RDoc::Alias
# * RDoc::Constant
# * RDoc::Mixin
#   * RDoc::Require
#   * RDoc::Include

class RDoc::CodeObject

  include RDoc::Text

  ##
  # Our comment

  attr_reader :comment

  ##
  # Do we document our children?

  attr_reader :document_children

  ##
  # Do we document ourselves?

  attr_reader :document_self

  ##
  # Are we done documenting (ie, did we come across a :enddoc:)?

  attr_reader :done_documenting

  ##
  # Which file this code object was defined in

  attr_reader :file

  ##
  # Force documentation of this CodeObject

  attr_reader :force_documentation

  ##
  # Line in #file where this CodeObject was defined

  attr_accessor :line

  ##
  # Hash of arbitrary metadata for this CodeObject

  attr_reader :metadata

  ##
  # Offset in #file where this CodeObject was defined
  #--
  # TODO character or byte?

  attr_accessor :offset

  ##
  # Sets the parent CodeObject

  attr_writer :parent

  ##
  # Did we ever receive a +:nodoc:+ directive?

  attr_reader :received_nodoc

  ##
  # Set the section this CodeObject is in

  attr_writer :section

  ##
  # The RDoc::Store for this object.

  attr_reader :store

  ##
  # We are the model of the code, but we know that at some point we will be
  # worked on by viewers. By implementing the Viewable protocol, viewers can
  # associated themselves with these objects.

  attr_accessor :viewer

  ##
  # Creates a new CodeObject that will document itself and its children

  def initialize
    @metadata         = {}
    @comment          = ''
    @parent           = nil
    @parent_name      = nil # for loading
    @parent_class     = nil # for loading
    @section          = nil
    @section_title    = nil # for loading
    @file             = nil
    @full_name        = nil
    @store            = nil
    @track_visibility = true

    initialize_visibility
  end

  ##
  # Initializes state for visibility of this CodeObject and its children.

  def initialize_visibility # :nodoc:
    @document_children   = true
    @document_self       = true
    @done_documenting    = false
    @force_documentation = false
    @received_nodoc      = false
    @ignored             = false
    @suppressed          = false
    @track_visibility    = true
  end

  ##
  # Replaces our comment with +comment+, unless it is empty.

  def comment=(comment)
    @comment = case comment
               when NilClass               then ''
               when RDoc::Markup::Document then comment
               when RDoc::Comment          then comment.normalize
               else
                 if comment and not comment.empty? then
                   normalize_comment comment
                 else
                   # HACK correct fix is to have #initialize create @comment
                   #      with the correct encoding
                   if String === @comment and
                      Object.const_defined? :Encoding and @comment.empty? then
                     @comment.force_encoding comment.encoding
                   end
                   @comment
                 end
               end
  end

  ##
  # Should this CodeObject be displayed in output?
  #
  # A code object should be displayed if:
  #
  # * The item didn't have a nodoc or wasn't in a container that had nodoc
  # * The item wasn't ignored
  # * The item has documentation and was not suppressed

  def display?
    @document_self and not @ignored and
      (documented? or not @suppressed)
  end

  ##
  # Enables or disables documentation of this CodeObject's children unless it
  # has been turned off by :enddoc:

  def document_children=(document_children)
    return unless @track_visibility

    @document_children = document_children unless @done_documenting
  end

  ##
  # Enables or disables documentation of this CodeObject unless it has been
  # turned off by :enddoc:.  If the argument is +nil+ it means the
  # documentation is turned off by +:nodoc:+.

  def document_self=(document_self)
    return unless @track_visibility
    return if @done_documenting

    @document_self = document_self
    @received_nodoc = true if document_self.nil?
  end

  ##
  # Does this object have a comment with content or is #received_nodoc true?

  def documented?
    @received_nodoc or !@comment.empty?
  end

  ##
  # Turns documentation on/off, and turns on/off #document_self
  # and #document_children.
  #
  # Once documentation has been turned off (by +:enddoc:+),
  # the object will refuse to turn #document_self or
  # #document_children on, so +:doc:+ and +:start_doc:+ directives
  # will have no effect in the current file.

  def done_documenting=(value)
    return unless @track_visibility
    @done_documenting  = value
    @document_self     = !value
    @document_children = @document_self
  end

  ##
  # Yields each parent of this CodeObject.  See also
  # RDoc::ClassModule#each_ancestor

  def each_parent
    code_object = self

    while code_object = code_object.parent do
      yield code_object
    end

    self
  end

  ##
  # File name where this CodeObject was found.
  #
  # See also RDoc::Context#in_files

  def file_name
    return unless @file

    @file.absolute_name
  end

  ##
  # Force the documentation of this object unless documentation
  # has been turned off by :enddoc:
  #--
  # HACK untested, was assigning to an ivar

  def force_documentation=(value)
    @force_documentation = value unless @done_documenting
  end

  ##
  # Sets the full_name overriding any computed full name.
  #
  # Set to +nil+ to clear RDoc's cached value

  def full_name= full_name
    @full_name = full_name
  end

  ##
  # Use this to ignore a CodeObject and all its children until found again
  # (#record_location is called).  An ignored item will not be displayed in
  # documentation.
  #
  # See github issue #55
  #
  # The ignored status is temporary in order to allow implementation details
  # to be hidden.  At the end of processing a file RDoc allows all classes
  # and modules to add new documentation to previously created classes.
  #
  # If a class was ignored (via stopdoc) then reopened later with additional
  # documentation it should be displayed.  If a class was ignored and never
  # reopened it should not be displayed.  The ignore flag allows this to
  # occur.

  def ignore
    return unless @track_visibility

    @ignored = true

    stop_doc
  end

  ##
  # Has this class been ignored?
  #
  # See also #ignore

  def ignored?
    @ignored
  end

  ##
  # The options instance from the store this CodeObject is attached to, or a
  # default options instance if the CodeObject is not attached.
  #
  # This is used by Text#snippet

  def options
    if @store and @store.rdoc then
      @store.rdoc.options
    else
      RDoc::Options.new
    end
  end

  ##
  # Our parent CodeObject.  The parent may be missing for classes loaded from
  # legacy RI data stores.

  def parent
    return @parent if @parent
    return nil unless @parent_name

    if @parent_class == RDoc::TopLevel then
      @parent = @store.add_file @parent_name
    else
      @parent = @store.find_class_or_module @parent_name

      return @parent if @parent

      begin
        @parent = @store.load_class @parent_name
      rescue RDoc::Store::MissingFileError
        nil
      end
    end
  end

  ##
  # File name of our parent

  def parent_file_name
    @parent ? @parent.base_name : '(unknown)'
  end

  ##
  # Name of our parent

  def parent_name
    @parent ? @parent.full_name : '(unknown)'
  end

  ##
  # Records the RDoc::TopLevel (file) where this code object was defined

  def record_location top_level
    @ignored    = false
    @suppressed = false
    @file       = top_level
  end

  ##
  # The section this CodeObject is in.  Sections allow grouping of constants,
  # attributes and methods inside a class or module.

  def section
    return @section if @section

    @section = parent.add_section @section_title if parent
  end

  ##
  # Enable capture of documentation unless documentation has been
  # turned off by :enddoc:

  def start_doc
    return if @done_documenting

    @document_self = true
    @document_children = true
    @ignored    = false
    @suppressed = false
  end

  ##
  # Disable capture of documentation

  def stop_doc
    return unless @track_visibility

    @document_self = false
    @document_children = false
  end

  ##
  # Sets the +store+ that contains this CodeObject

  def store= store
    @store = store

    return unless @track_visibility

    if :nodoc == options.visibility then
      initialize_visibility
      @track_visibility = false
    end
  end

  ##
  # Use this to suppress a CodeObject and all its children until the next file
  # it is seen in or documentation is discovered.  A suppressed item with
  # documentation will be displayed while an ignored item with documentation
  # may not be displayed.

  def suppress
    return unless @track_visibility

    @suppressed = true

    stop_doc
  end

  ##
  # Has this class been suppressed?
  #
  # See also #suppress

  def suppressed?
    @suppressed
  end

end

lib64/ruby/2.2.0/rdoc/test_case.rb000064400000010244150402106140012324 0ustar00require 'rubygems'

begin
  gem 'minitest', '~> 4.0' unless defined?(Test::Unit)
rescue NoMethodError, Gem::LoadError
  # for ruby tests
end

require 'minitest/autorun'
require 'minitest/benchmark' if ENV['BENCHMARK']

require 'fileutils'
require 'pp'
require 'tempfile'
require 'tmpdir'
require 'stringio'

require 'rdoc'

##
# RDoc::TestCase is an abstract TestCase to provide common setup and teardown
# across all RDoc tests.  The test case uses minitest, so all the assertions
# of minitest may be used.
#
# The testcase provides the following:
#
# * A reset code-object tree
# * A reset markup preprocessor (RDoc::Markup::PreProcess)
# * The <code>@RM</code> alias of RDoc::Markup (for less typing)
# * <code>@pwd</code> containing the current working directory
# * FileUtils, pp, Tempfile, Dir.tmpdir and StringIO

class RDoc::TestCase < MiniTest::Unit::TestCase

  ##
  # Abstract test-case setup

  def setup
    super

    @top_level = nil

    @have_encoding = Object.const_defined? :Encoding

    @RM = RDoc::Markup

    RDoc::Markup::PreProcess.reset

    @pwd = Dir.pwd

    @store = RDoc::Store.new

    @rdoc = RDoc::RDoc.new
    @rdoc.store = @store
    @rdoc.options = RDoc::Options.new

    g = Object.new
    def g.class_dir() end
    def g.file_dir() end
    @rdoc.generator = g
  end

  ##
  # Asserts +path+ is a file

  def assert_file path
    assert File.file?(path), "#{path} is not a file"
  end

  ##
  # Asserts +path+ is a directory

  def assert_directory path
    assert File.directory?(path), "#{path} is not a directory"
  end

  ##
  # Refutes +path+ exists

  def refute_file path
    refute File.exist?(path), "#{path} exists"
  end

  ##
  # Shortcut for RDoc::Markup::BlankLine.new

  def blank_line
    @RM::BlankLine.new
  end

  ##
  # Shortcut for RDoc::Markup::BlockQuote.new with +contents+

  def block *contents
    @RM::BlockQuote.new(*contents)
  end

  ##
  # Creates an RDoc::Comment with +text+ which was defined on +top_level+.
  # By default the comment has the 'rdoc' format.

  def comment text, top_level = @top_level
    RDoc::Comment.new text, top_level
  end

  ##
  # Shortcut for RDoc::Markup::Document.new with +contents+

  def doc *contents
    @RM::Document.new(*contents)
  end

  ##
  # Shortcut for RDoc::Markup::HardBreak.new

  def hard_break
    @RM::HardBreak.new
  end

  ##
  # Shortcut for RDoc::Markup::Heading.new with +level+ and +text+

  def head level, text
    @RM::Heading.new level, text
  end

  ##
  # Shortcut for RDoc::Markup::ListItem.new with +label+ and +parts+

  def item label = nil, *parts
    @RM::ListItem.new label, *parts
  end

  ##
  # Shortcut for RDoc::Markup::List.new with +type+ and +items+

  def list type = nil, *items
    @RM::List.new type, *items
  end

  ##
  # Enables pretty-print output

  def mu_pp obj # :nodoc:
    s = ''
    s = PP.pp obj, s
    s = s.force_encoding Encoding.default_external if defined? Encoding
    s.chomp
  end

  ##
  # Shortcut for RDoc::Markup::Paragraph.new with +contents+

  def para *a
    @RM::Paragraph.new(*a)
  end

  ##
  # Shortcut for RDoc::Markup::Rule.new with +weight+

  def rule weight
    @RM::Rule.new weight
  end

  ##
  # Shortcut for RDoc::Markup::Raw.new with +contents+

  def raw *contents
    @RM::Raw.new(*contents)
  end

  ##
  # Creates a temporary directory changes the current directory to it for the
  # duration of the block.
  #
  # Depends upon Dir.mktmpdir

  def temp_dir
    skip "No Dir::mktmpdir, upgrade your ruby" unless Dir.respond_to? :mktmpdir

    Dir.mktmpdir do |temp_dir|
      Dir.chdir temp_dir do
        yield temp_dir
      end
    end
  end

  ##
  # Shortcut for RDoc::Markup::Verbatim.new with +parts+

  def verb *parts
    @RM::Verbatim.new(*parts)
  end

  ##
  # run capture_io with setting $VERBOSE = true

  def verbose_capture_io
    capture_io do
      begin
        orig_verbose = $VERBOSE
        $VERBOSE = true
        yield
      ensure
        $VERBOSE = orig_verbose
      end
    end
  end
end

# This hack allows autoload to work when Dir.pwd is changed for Ruby 1.8 since
# -I paths are not expanded.
$LOAD_PATH.each do |load_path|
  break if load_path[0] == ?/
  load_path.replace File.expand_path load_path
end if RUBY_VERSION < '1.9'

lib64/ruby/2.2.0/rdoc/i18n/text.rb000064400000005544150402106140012124 0ustar00##
# An i18n supported text.
#
# This object provides the following two features:
#
#   * Extracts translation messages from wrapped raw text.
#   * Translates wrapped raw text in specified locale.
#
# Wrapped raw text is one of String, RDoc::Comment or Array of them.

class RDoc::I18n::Text

  ##
  # Creates a new i18n supported text for +raw+ text.

  def initialize(raw)
    @raw = raw
  end

  ##
  # Extracts translation target messages and yields each message.
  #
  # Each yielded message is a Hash. It consists of the followings:
  #
  # :type      :: :paragraph
  # :paragraph :: String (The translation target message itself.)
  # :line_no   :: Integer (The line number of the :paragraph is started.)
  #
  # The above content may be added in the future.

  def extract_messages
    parse do |part|
      case part[:type]
      when :empty_line
        # ignore
      when :paragraph
        yield(part)
      end
    end
  end

  # Translates raw text into +locale+.
  def translate(locale)
    translated_text = ''
    parse do |part|
      case part[:type]
      when :paragraph
        translated_text << locale.translate(part[:paragraph])
      when :empty_line
        translated_text << part[:line]
      else
        raise "should not reach here: unexpected type: #{type}"
      end
    end
    translated_text
  end

  private
  def parse(&block)
    paragraph = ''
    paragraph_start_line = 0
    line_no = 0

    each_line(@raw) do |line|
      line_no += 1
      case line
      when /\A\s*\z/
        if paragraph.empty?
          emit_empty_line_event(line, line_no, &block)
        else
          paragraph << line
          emit_paragraph_event(paragraph, paragraph_start_line, line_no,
                               &block)
          paragraph = ''
        end
      else
        paragraph_start_line = line_no if paragraph.empty?
        paragraph << line
      end
    end

    unless paragraph.empty?
      emit_paragraph_event(paragraph, paragraph_start_line, line_no, &block)
    end
  end

  def each_line(raw, &block)
    case raw
    when RDoc::Comment
      raw.text.each_line(&block)
    when Array
      raw.each do |comment, location|
        each_line(comment, &block)
      end
    else
      raw.each_line(&block)
    end
  end

  def emit_empty_line_event(line, line_no)
    part = {
      :type => :empty_line,
      :line => line,
      :line_no => line_no,
    }
    yield(part)
  end

  def emit_paragraph_event(paragraph, paragraph_start_line, line_no, &block)
    paragraph_part = {
      :type => :paragraph,
      :line_no => paragraph_start_line,
    }
    match_data = /(\s*)\z/.match(paragraph)
    if match_data
      paragraph_part[:paragraph] = match_data.pre_match
      yield(paragraph_part)
      emit_empty_line_event(match_data[1], line_no, &block)
    else
      paragraph_part[:paragraph] = paragraph
      yield(paragraph_part)
    end
  end

end
lib64/ruby/2.2.0/rdoc/i18n/locale.rb000064400000004510150402106140012367 0ustar00##
# A message container for a locale.
#
# This object provides the following two features:
#
#   * Loads translated messages from .po file.
#   * Translates a message into the locale.

class RDoc::I18n::Locale

  @@locales = {} # :nodoc:

  class << self

    ##
    # Returns the locale object for +locale_name+.

    def [](locale_name)
      @@locales[locale_name] ||= new(locale_name)
    end

    ##
    # Sets the locale object for +locale_name+.
    #
    # Normally, this method is not used. This method is useful for
    # testing.

    def []=(locale_name, locale)
      @@locales[locale_name] = locale
    end

  end

  ##
  # The name of the locale. It uses IETF language tag format
  # +[language[_territory][.codeset][@modifier]]+.
  #
  # See also {BCP 47 - Tags for Identifying
  # Languages}[http://tools.ietf.org/rfc/bcp/bcp47.txt].

  attr_reader :name

  ##
  # Creates a new locale object for +name+ locale. +name+ must
  # follow IETF language tag format.

  def initialize(name)
    @name = name
    @messages = {}
  end

  ##
  # Loads translation messages from +locale_directory+/+@name+/rdoc.po
  # or +locale_directory+/+@name+.po. The former has high priority.
  #
  # This method requires gettext gem for parsing .po file. If you
  # don't have gettext gem, this method doesn't load .po file. This
  # method warns and returns +false+.
  #
  # Returns +true+ if succeeded, +false+ otherwise.

  def load(locale_directory)
    return false if @name.nil?

    po_file_candidates = [
      File.join(locale_directory, @name, 'rdoc.po'),
      File.join(locale_directory, "#{@name}.po"),
    ]
    po_file = po_file_candidates.find do |po_file_candidate|
      File.exist?(po_file_candidate)
    end
    return false unless po_file

    begin
      require 'gettext/po_parser'
      require 'gettext/mo'
    rescue LoadError
      warn('Need gettext gem for i18n feature:')
      warn('  gem install gettext')
      return false
    end

    po_parser = GetText::POParser.new
    messages = GetText::MO.new
    po_parser.report_warning = false
    po_parser.parse_file(po_file, messages)

    @messages.merge!(messages)

    true
  end

  ##
  # Translates the +message+ into locale. If there is no tranlsation
  # messages for +message+ in locale, +message+ itself is returned.

  def translate(message)
    @messages[message] || message
  end

end
lib64/ruby/2.2.0/rdoc/store.rb000064400000054572150402106140011522 0ustar00require 'fileutils'

##
# A set of rdoc data for a single project (gem, path, etc.).
#
# The store manages reading and writing ri data for a project and maintains a
# cache of methods, classes and ancestors in the store.
#
# The store maintains a #cache of its contents for faster lookup.  After
# adding items to the store it must be flushed using #save_cache.  The cache
# contains the following structures:
#
#    @cache = {
#      :ancestors        => {}, # class name => ancestor names
#      :attributes       => {}, # class name => attributes
#      :class_methods    => {}, # class name => class methods
#      :instance_methods => {}, # class name => instance methods
#      :modules          => [], # classes and modules in this store
#      :pages            => [], # page names
#    }
#--
# TODO need to prune classes

class RDoc::Store

  ##
  # Errors raised from loading or saving the store

  class Error < RDoc::Error
  end

  ##
  # Raised when a stored file for a class, module, page or method is missing.

  class MissingFileError < Error

    ##
    # The store the file should exist in

    attr_reader :store

    ##
    # The file the #name should be saved as

    attr_reader :file

    ##
    # The name of the object the #file would be loaded from

    attr_reader :name

    ##
    # Creates a new MissingFileError for the missing +file+ for the given
    # +name+ that should have been in the +store+.

    def initialize store, file, name
      @store = store
      @file  = file
      @name  = name
    end

    def message # :nodoc:
      "store at #{@store.path} missing file #{@file} for #{@name}"
    end

  end

  ##
  # Stores the name of the C variable a class belongs to.  This helps wire up
  # classes defined from C across files.

  attr_reader :c_enclosure_classes # :nodoc:

  attr_reader :c_enclosure_names # :nodoc:

  ##
  # Maps C variables to class or module names for each parsed C file.

  attr_reader :c_class_variables

  ##
  # Maps C variables to singleton class names for each parsed C file.

  attr_reader :c_singleton_class_variables

  ##
  # If true this Store will not write any files

  attr_accessor :dry_run

  ##
  # Path this store reads or writes

  attr_accessor :path

  ##
  # The RDoc::RDoc driver for this parse tree.  This allows classes consulting
  # the documentation tree to access user-set options, for example.

  attr_accessor :rdoc

  ##
  # Type of ri datastore this was loaded from.  See RDoc::RI::Driver,
  # RDoc::RI::Paths.

  attr_accessor :type

  ##
  # The contents of the Store

  attr_reader :cache

  ##
  # The encoding of the contents in the Store

  attr_accessor :encoding

  ##
  # Creates a new Store of +type+ that will load or save to +path+

  def initialize path = nil, type = nil
    @dry_run  = false
    @encoding = nil
    @path     = path
    @rdoc     = nil
    @type     = type

    @cache = {
      :ancestors                   => {},
      :attributes                  => {},
      :class_methods               => {},
      :c_class_variables           => {},
      :c_singleton_class_variables => {},
      :encoding                    => @encoding,
      :instance_methods            => {},
      :main                        => nil,
      :modules                     => [],
      :pages                       => [],
      :title                       => nil,
    }

    @classes_hash = {}
    @modules_hash = {}
    @files_hash   = {}

    @c_enclosure_classes = {}
    @c_enclosure_names   = {}

    @c_class_variables           = {}
    @c_singleton_class_variables = {}

    @unique_classes = nil
    @unique_modules = nil
  end

  ##
  # Adds +module+ as an enclosure (namespace) for the given +variable+ for C
  # files.

  def add_c_enclosure variable, namespace
    @c_enclosure_classes[variable] = namespace
  end

  ##
  # Adds C variables from an RDoc::Parser::C

  def add_c_variables c_parser
    filename = c_parser.top_level.relative_name

    @c_class_variables[filename] = make_variable_map c_parser.classes

    @c_singleton_class_variables[filename] = c_parser.singleton_classes
  end

  ##
  # Adds the file with +name+ as an RDoc::TopLevel to the store.  Returns the
  # created RDoc::TopLevel.

  def add_file absolute_name, relative_name = absolute_name
    unless top_level = @files_hash[relative_name] then
      top_level = RDoc::TopLevel.new absolute_name, relative_name
      top_level.store = self
      @files_hash[relative_name] = top_level
    end

    top_level
  end

  ##
  # Returns all classes discovered by RDoc

  def all_classes
    @classes_hash.values
  end

  ##
  # Returns all classes and modules discovered by RDoc

  def all_classes_and_modules
    @classes_hash.values + @modules_hash.values
  end

  ##
  # All TopLevels known to RDoc

  def all_files
    @files_hash.values
  end

  ##
  # Returns all modules discovered by RDoc

  def all_modules
    modules_hash.values
  end

  ##
  # Ancestors cache accessor.  Maps a klass name to an Array of its ancestors
  # in this store.  If Foo in this store inherits from Object, Kernel won't be
  # listed (it will be included from ruby's ri store).

  def ancestors
    @cache[:ancestors]
  end

  ##
  # Attributes cache accessor.  Maps a class to an Array of its attributes.

  def attributes
    @cache[:attributes]
  end

  ##
  # Path to the cache file

  def cache_path
    File.join @path, 'cache.ri'
  end

  ##
  # Path to the ri data for +klass_name+

  def class_file klass_name
    name = klass_name.split('::').last
    File.join class_path(klass_name), "cdesc-#{name}.ri"
  end

  ##
  # Class methods cache accessor.  Maps a class to an Array of its class
  # methods (not full name).

  def class_methods
    @cache[:class_methods]
  end

  ##
  # Path where data for +klass_name+ will be stored (methods or class data)

  def class_path klass_name
    File.join @path, *klass_name.split('::')
  end

  ##
  # Hash of all classes known to RDoc

  def classes_hash
    @classes_hash
  end

  ##
  # Removes empty items and ensures item in each collection are unique and
  # sorted

  def clean_cache_collection collection # :nodoc:
    collection.each do |name, item|
      if item.empty? then
        collection.delete name
      else
        # HACK mongrel-1.1.5 documents its files twice
        item.uniq!
        item.sort!
      end
    end
  end

  ##
  # Prepares the RDoc code object tree for use by a generator.
  #
  # It finds unique classes/modules defined, and replaces classes/modules that
  # are aliases for another one by a copy with RDoc::ClassModule#is_alias_for
  # set.
  #
  # It updates the RDoc::ClassModule#constant_aliases attribute of "real"
  # classes or modules.
  #
  # It also completely removes the classes and modules that should be removed
  # from the documentation and the methods that have a visibility below
  # +min_visibility+, which is the <tt>--visibility</tt> option.
  #
  # See also RDoc::Context#remove_from_documentation?

  def complete min_visibility
    fix_basic_object_inheritance

    # cache included modules before they are removed from the documentation
    all_classes_and_modules.each { |cm| cm.ancestors }

    unless min_visibility == :nodoc then
      remove_nodoc @classes_hash
      remove_nodoc @modules_hash
    end

    @unique_classes = find_unique @classes_hash
    @unique_modules = find_unique @modules_hash

    unique_classes_and_modules.each do |cm|
      cm.complete min_visibility
    end

    @files_hash.each_key do |file_name|
      tl = @files_hash[file_name]

      unless tl.text? then
        tl.modules_hash.clear
        tl.classes_hash.clear

        tl.classes_or_modules.each do |cm|
          name = cm.full_name
          if cm.type == 'class' then
            tl.classes_hash[name] = cm if @classes_hash[name]
          else
            tl.modules_hash[name] = cm if @modules_hash[name]
          end
        end
      end
    end
  end

  ##
  # Hash of all files known to RDoc

  def files_hash
    @files_hash
  end

  ##
  # Finds the enclosure (namespace) for the given C +variable+.

  def find_c_enclosure variable
    @c_enclosure_classes.fetch variable do
      break unless name = @c_enclosure_names[variable]

      mod = find_class_or_module name

      unless mod then
        loaded_mod = load_class_data name

        file = loaded_mod.in_files.first

        return unless file # legacy data source

        file.store = self

        mod = file.add_module RDoc::NormalModule, name
      end

      @c_enclosure_classes[variable] = mod
    end
  end

  ##
  # Finds the class with +name+ in all discovered classes

  def find_class_named name
    @classes_hash[name]
  end

  ##
  # Finds the class with +name+ starting in namespace +from+

  def find_class_named_from name, from
    from = find_class_named from unless RDoc::Context === from

    until RDoc::TopLevel === from do
      return nil unless from

      klass = from.find_class_named name
      return klass if klass

      from = from.parent
    end

    find_class_named name
  end

  ##
  # Finds the class or module with +name+

  def find_class_or_module name
    name = $' if name =~ /^::/
    @classes_hash[name] || @modules_hash[name]
  end

  ##
  # Finds the file with +name+ in all discovered files

  def find_file_named name
    @files_hash[name]
  end

  ##
  # Finds the module with +name+ in all discovered modules

  def find_module_named name
    @modules_hash[name]
  end

  ##
  # Returns the RDoc::TopLevel that is a text file and has the given
  # +file_name+

  def find_text_page file_name
    @files_hash.each_value.find do |file|
      file.text? and file.full_name == file_name
    end
  end

  ##
  # Finds unique classes/modules defined in +all_hash+,
  # and returns them as an array. Performs the alias
  # updates in +all_hash+: see ::complete.
  #--
  # TODO  aliases should be registered by Context#add_module_alias

  def find_unique all_hash
    unique = []

    all_hash.each_pair do |full_name, cm|
      unique << cm if full_name == cm.full_name
    end

    unique
  end

  ##
  # Fixes the erroneous <tt>BasicObject < Object</tt> in 1.9.
  #
  # Because we assumed all classes without a stated superclass
  # inherit from Object, we have the above wrong inheritance.
  #
  # We fix BasicObject right away if we are running in a Ruby
  # version >= 1.9. If not, we may be documenting 1.9 source
  # while running under 1.8: we search the files of BasicObject
  # for "object.c", and fix the inheritance if we find it.

  def fix_basic_object_inheritance
    basic = classes_hash['BasicObject']
    return unless basic
    if RUBY_VERSION >= '1.9'
      basic.superclass = nil
    elsif basic.in_files.any? { |f| File.basename(f.full_name) == 'object.c' }
      basic.superclass = nil
    end
  end

  ##
  # Friendly rendition of #path

  def friendly_path
    case type
    when :gem    then
      parent = File.expand_path '..', @path
      "gem #{File.basename parent}"
    when :home   then '~/.rdoc'
    when :site   then 'ruby site'
    when :system then 'ruby core'
    else @path
    end
  end

  def inspect # :nodoc:
    "#<%s:0x%x %s %p>" % [self.class, object_id, @path, module_names.sort]
  end

  ##
  # Instance methods cache accessor.  Maps a class to an Array of its
  # instance methods (not full name).

  def instance_methods
    @cache[:instance_methods]
  end

  ##
  # Loads all items from this store into memory.  This recreates a
  # documentation tree for use by a generator

  def load_all
    load_cache

    module_names.each do |module_name|
      mod = find_class_or_module(module_name) || load_class(module_name)

      # load method documentation since the loaded class/module does not have
      # it
      loaded_methods = mod.method_list.map do |method|
        load_method module_name, method.full_name
      end

      mod.method_list.replace loaded_methods

      loaded_attributes = mod.attributes.map do |attribute|
        load_method module_name, attribute.full_name
      end

      mod.attributes.replace loaded_attributes
    end

    all_classes_and_modules.each do |mod|
      descendent_re = /^#{mod.full_name}::[^:]+$/

      module_names.each do |name|
        next unless name =~ descendent_re

        descendent = find_class_or_module name

        case descendent
        when RDoc::NormalClass then
          mod.classes_hash[name] = descendent
        when RDoc::NormalModule then
          mod.modules_hash[name] = descendent
        end
      end
    end

    @cache[:pages].each do |page_name|
      page = load_page page_name
      @files_hash[page_name] = page
    end
  end

  ##
  # Loads cache file for this store

  def load_cache
    #orig_enc = @encoding

    open cache_path, 'rb' do |io|
      @cache = Marshal.load io.read
    end

    load_enc = @cache[:encoding]

    # TODO this feature will be time-consuming to add:
    # a) Encodings may be incompatible but transcodeable
    # b) Need to warn in the appropriate spots, wherever they may be
    # c) Need to handle cross-cache differences in encodings
    # d) Need to warn when generating into a cache with different encodings
    #
    #if orig_enc and load_enc != orig_enc then
    #  warn "Cached encoding #{load_enc} is incompatible with #{orig_enc}\n" \
    #       "from #{path}/cache.ri" unless
    #    Encoding.compatible? orig_enc, load_enc
    #end

    @encoding = load_enc unless @encoding

    @cache[:pages]                       ||= []
    @cache[:main]                        ||= nil
    @cache[:c_class_variables]           ||= {}
    @cache[:c_singleton_class_variables] ||= {}

    @cache[:c_class_variables].each do |_, map|
      map.each do |variable, name|
        @c_enclosure_names[variable] = name
      end
    end

    @cache
  rescue Errno::ENOENT
  end

  ##
  # Loads ri data for +klass_name+ and hooks it up to this store.

  def load_class klass_name
    obj = load_class_data klass_name

    obj.store = self

    case obj
    when RDoc::NormalClass then
      @classes_hash[klass_name] = obj
    when RDoc::NormalModule then
      @modules_hash[klass_name] = obj
    end
  end

  ##
  # Loads ri data for +klass_name+

  def load_class_data klass_name
    file = class_file klass_name

    open file, 'rb' do |io|
      Marshal.load io.read
    end
  rescue Errno::ENOENT => e
    error = MissingFileError.new(self, file, klass_name)
    error.set_backtrace e.backtrace
    raise error
  end

  ##
  # Loads ri data for +method_name+ in +klass_name+

  def load_method klass_name, method_name
    file = method_file klass_name, method_name

    open file, 'rb' do |io|
      obj = Marshal.load io.read
      obj.store = self
      obj.parent =
        find_class_or_module(klass_name) || load_class(klass_name) unless
          obj.parent
      obj
    end
  rescue Errno::ENOENT => e
    error = MissingFileError.new(self, file, klass_name + method_name)
    error.set_backtrace e.backtrace
    raise error
  end

  ##
  # Loads ri data for +page_name+

  def load_page page_name
    file = page_file page_name

    open file, 'rb' do |io|
      obj = Marshal.load io.read
      obj.store = self
      obj
    end
  rescue Errno::ENOENT => e
    error = MissingFileError.new(self, file, page_name)
    error.set_backtrace e.backtrace
    raise error
  end

  ##
  # Gets the main page for this RDoc store.  This page is used as the root of
  # the RDoc server.

  def main
    @cache[:main]
  end

  ##
  # Sets the main page for this RDoc store.

  def main= page
    @cache[:main] = page
  end

  ##
  # Converts the variable => ClassModule map +variables+ from a C parser into
  # a variable => class name map.

  def make_variable_map variables
    map = {}

    variables.each { |variable, class_module|
      map[variable] = class_module.full_name
    }

    map
  end

  ##
  # Path to the ri data for +method_name+ in +klass_name+

  def method_file klass_name, method_name
    method_name = method_name.split('::').last
    method_name =~ /#(.*)/
    method_type = $1 ? 'i' : 'c'
    method_name = $1 if $1

    method_name = if ''.respond_to? :ord then
                    method_name.gsub(/\W/) { "%%%02x" % $&[0].ord }
                  else
                    method_name.gsub(/\W/) { "%%%02x" % $&[0] }
                  end

    File.join class_path(klass_name), "#{method_name}-#{method_type}.ri"
  end

  ##
  # Modules cache accessor.  An Array of all the module (and class) names in
  # the store.

  def module_names
    @cache[:modules]
  end

  ##
  # Hash of all modules known to RDoc

  def modules_hash
    @modules_hash
  end

  ##
  # Returns the RDoc::TopLevel that is a text file and has the given +name+

  def page name
    @files_hash.each_value.find do |file|
      file.text? and file.page_name == name
    end
  end

  ##
  # Path to the ri data for +page_name+

  def page_file page_name
    file_name = File.basename(page_name).gsub('.', '_')

    File.join @path, File.dirname(page_name), "page-#{file_name}.ri"
  end

  ##
  # Removes from +all_hash+ the contexts that are nodoc or have no content.
  #
  # See RDoc::Context#remove_from_documentation?

  def remove_nodoc all_hash
    all_hash.keys.each do |name|
      context = all_hash[name]
      all_hash.delete(name) if context.remove_from_documentation?
    end
  end

  ##
  # Saves all entries in the store

  def save
    load_cache

    all_classes_and_modules.each do |klass|
      save_class klass

      klass.each_method do |method|
        save_method klass, method
      end

      klass.each_attribute do |attribute|
        save_method klass, attribute
      end
    end

    all_files.each do |file|
      save_page file
    end

    save_cache
  end

  ##
  # Writes the cache file for this store

  def save_cache
    clean_cache_collection @cache[:ancestors]
    clean_cache_collection @cache[:attributes]
    clean_cache_collection @cache[:class_methods]
    clean_cache_collection @cache[:instance_methods]

    @cache[:modules].uniq!
    @cache[:modules].sort!

    @cache[:pages].uniq!
    @cache[:pages].sort!

    @cache[:encoding] = @encoding # this gets set twice due to assert_cache

    @cache[:c_class_variables].merge!           @c_class_variables
    @cache[:c_singleton_class_variables].merge! @c_singleton_class_variables

    return if @dry_run

    marshal = Marshal.dump @cache

    open cache_path, 'wb' do |io|
      io.write marshal
    end
  end

  ##
  # Writes the ri data for +klass+ (or module)

  def save_class klass
    full_name = klass.full_name

    FileUtils.mkdir_p class_path(full_name) unless @dry_run

    @cache[:modules] << full_name

    path = class_file full_name

    begin
      disk_klass = load_class full_name

      klass = disk_klass.merge klass
    rescue MissingFileError
    end

    # BasicObject has no ancestors
    ancestors = klass.direct_ancestors.compact.map do |ancestor|
      # HACK for classes we don't know about (class X < RuntimeError)
      String === ancestor ? ancestor : ancestor.full_name
    end

    @cache[:ancestors][full_name] ||= []
    @cache[:ancestors][full_name].concat ancestors

    attribute_definitions = klass.attributes.map do |attribute|
      "#{attribute.definition} #{attribute.name}"
    end

    unless attribute_definitions.empty? then
      @cache[:attributes][full_name] ||= []
      @cache[:attributes][full_name].concat attribute_definitions
    end

    to_delete = []

    unless klass.method_list.empty? then
      @cache[:class_methods][full_name]    ||= []
      @cache[:instance_methods][full_name] ||= []

      class_methods, instance_methods =
        klass.method_list.partition { |meth| meth.singleton }

      class_methods    = class_methods.   map { |method| method.name }
      instance_methods = instance_methods.map { |method| method.name }
      attribute_names  = klass.attributes.map { |attr|   attr.name }

      old = @cache[:class_methods][full_name] - class_methods
      to_delete.concat old.map { |method|
        method_file full_name, "#{full_name}::#{method}"
      }

      old = @cache[:instance_methods][full_name] -
        instance_methods - attribute_names
      to_delete.concat old.map { |method|
        method_file full_name, "#{full_name}##{method}"
      }

      @cache[:class_methods][full_name]    = class_methods
      @cache[:instance_methods][full_name] = instance_methods
    end

    return if @dry_run

    FileUtils.rm_f to_delete

    marshal = Marshal.dump klass

    open path, 'wb' do |io|
      io.write marshal
    end
  end

  ##
  # Writes the ri data for +method+ on +klass+

  def save_method klass, method
    full_name = klass.full_name

    FileUtils.mkdir_p class_path(full_name) unless @dry_run

    cache = if method.singleton then
              @cache[:class_methods]
            else
              @cache[:instance_methods]
            end
    cache[full_name] ||= []
    cache[full_name] << method.name

    return if @dry_run

    marshal = Marshal.dump method

    open method_file(full_name, method.full_name), 'wb' do |io|
      io.write marshal
    end
  end

  ##
  # Writes the ri data for +page+

  def save_page page
    return unless page.text?

    path = page_file page.full_name

    FileUtils.mkdir_p File.dirname(path) unless @dry_run

    cache[:pages] ||= []
    cache[:pages] << page.full_name

    return if @dry_run

    marshal = Marshal.dump page

    open path, 'wb' do |io|
      io.write marshal
    end
  end

  ##
  # Source of the contents of this store.
  #
  # For a store from a gem the source is the gem name.  For a store from the
  # home directory the source is "home".  For system ri store (the standard
  # library documentation) the source is"ruby".  For a store from the site
  # ri directory the store is "site".  For other stores the source is the
  # #path.

  def source
    case type
    when :gem    then File.basename File.expand_path '..', @path
    when :home   then 'home'
    when :site   then 'site'
    when :system then 'ruby'
    else @path
    end
  end

  ##
  # Gets the title for this RDoc store.  This is used as the title in each
  # page on the RDoc server

  def title
    @cache[:title]
  end

  ##
  # Sets the title page for this RDoc store.

  def title= title
    @cache[:title] = title
  end

  ##
  # Returns the unique classes discovered by RDoc.
  #
  # ::complete must have been called prior to using this method.

  def unique_classes
    @unique_classes
  end

  ##
  # Returns the unique classes and modules discovered by RDoc.
  # ::complete must have been called prior to using this method.

  def unique_classes_and_modules
    @unique_classes + @unique_modules
  end

  ##
  # Returns the unique modules discovered by RDoc.
  # ::complete must have been called prior to using this method.

  def unique_modules
    @unique_modules
  end

end

lib64/ruby/2.2.0/rdoc/markup.rb000064400000070362150402106140011660 0ustar00##
# RDoc::Markup parses plain text documents and attempts to decompose them into
# their constituent parts.  Some of these parts are high-level: paragraphs,
# chunks of verbatim text, list entries and the like.  Other parts happen at
# the character level: a piece of bold text, a word in code font.  This markup
# is similar in spirit to that used on WikiWiki webs, where folks create web
# pages using a simple set of formatting rules.
#
# RDoc::Markup and other markup formats do no output formatting, this is
# handled by the RDoc::Markup::Formatter subclasses.
#
# = Supported Formats
#
# Besides the RDoc::Markup format, the following formats are built in to RDoc:
#
# markdown::
#   The markdown format as described by
#   http://daringfireball.net/projects/markdown/.  See RDoc::Markdown for
#   details on the parser and supported extensions.
# rd::
#   The rdtool format.  See RDoc::RD for details on the parser and format.
# tomdoc::
#   The TomDoc format as described by http://tomdoc.org/.  See RDoc::TomDoc
#   for details on the parser and supported extensions.
#
# You can choose a markup format using the following methods:
#
# per project::
#   If you build your documentation with rake use RDoc::Task#markup.
#
#   If you build your documentation by hand run:
#
#      rdoc --markup your_favorite_format --write-options
#
#   and commit <tt>.rdoc_options</tt> and ship it with your packaged gem.
# per file::
#   At the top of the file use the <tt>:markup:</tt> directive to set the
#   default format for the rest of the file.
# per comment::
#   Use the <tt>:markup:</tt> directive at the top of a comment you want
#   to write in a different format.
#
# = RDoc::Markup
#
# RDoc::Markup is extensible at runtime: you can add \new markup elements to
# be recognized in the documents that RDoc::Markup parses.
#
# RDoc::Markup is intended to be the basis for a family of tools which share
# the common requirement that simple, plain-text should be rendered in a
# variety of different output formats and media.  It is envisaged that
# RDoc::Markup could be the basis for formatting RDoc style comment blocks,
# Wiki entries, and online FAQs.
#
# == Synopsis
#
# This code converts +input_string+ to HTML.  The conversion takes place in
# the +convert+ method, so you can use the same RDoc::Markup converter to
# convert multiple input strings.
#
#   require 'rdoc'
#
#   h = RDoc::Markup::ToHtml.new(RDoc::Options.new)
#
#   puts h.convert(input_string)
#
# You can extend the RDoc::Markup parser to recognize new markup
# sequences, and to add special processing for text that matches a
# regular expression.  Here we make WikiWords significant to the parser,
# and also make the sequences {word} and \<no>text...</no> signify
# strike-through text.  We then subclass the HTML output class to deal
# with these:
#
#   require 'rdoc'
#
#   class WikiHtml < RDoc::Markup::ToHtml
#     def handle_special_WIKIWORD(special)
#       "<font color=red>" + special.text + "</font>"
#     end
#   end
#
#   markup = RDoc::Markup.new
#   markup.add_word_pair("{", "}", :STRIKE)
#   markup.add_html("no", :STRIKE)
#
#   markup.add_special(/\b([A-Z][a-z]+[A-Z]\w+)/, :WIKIWORD)
#
#   wh = WikiHtml.new RDoc::Options.new, markup
#   wh.add_tag(:STRIKE, "<strike>", "</strike>")
#
#   puts "<body>#{wh.convert ARGF.read}</body>"
#
# == Encoding
#
# Where Encoding support is available, RDoc will automatically convert all
# documents to the same output encoding.  The output encoding can be set via
# RDoc::Options#encoding and defaults to Encoding.default_external.
#
# = \RDoc Markup Reference
#
# == Block Markup
#
# === Paragraphs and Verbatim
#
# The markup engine looks for a document's natural left margin.  This is
# used as the initial margin for the document.
#
# Consecutive lines starting at this margin are considered to be a
# paragraph. Empty lines separate paragraphs.
#
# Any line that starts to the right of the current margin is treated
# as verbatim text.  This is useful for code listings:
#
#   3.times { puts "Ruby" }
#
# In verbatim text, two or more blank lines are collapsed into one,
# and trailing blank lines are removed:
#
#   This is the first line
#
#
#   This is the second non-blank line,
#   after 2 blank lines in the source markup.
#
#
# There were two trailing blank lines right above this paragraph, that
# have been removed. In addition, the verbatim text has been shifted
# left, so the amount of indentation of verbatim text is unimportant.
#
# For HTML output RDoc makes a small effort to determine if a verbatim section
# contains Ruby source code.  If so, the verbatim block will be marked up as
# HTML.  Triggers include "def", "class", "module", "require", the "hash
# rocket"# (=>) or a block call with a parameter.
#
# === Headers
#
# A line starting with an equal sign (=) is treated as a
# heading.  Level one headings have one equals sign, level two headings
# have two, and so on until level six, which is the maximum
# (seven hyphens or more result in a level six heading).
#
# For example, the above header was obtained with:
#
#   === Headers
#
# In HTML output headers have an id matching their name.  The above example's
# HTML is:
#
#   <h3 id="label-Headers">Headers</h3>
#
# If a heading is inside a method body the id will be prefixed with the
# method's id.  If the above header where in the documentation for a method
# such as:
#
#   ##
#   # This method does fun things
#   #
#   # = Example
#   #
#   #   Example of fun things goes here ...
#
#   def do_fun_things
#   end
#
# The header's id would be:
#
#   <h1 id="method-i-do_fun_things-label-Example">Example</h1>
#
# The label can be linked-to using <tt>SomeClass@Headers</tt>.  See
# {Links}[RDoc::Markup@Links] for further details.
#
# === Rules
#
# A line starting with three or more hyphens (at the current indent)
# generates a horizontal rule.
#
#   ---
#
# produces:
#
# ---
#
# === Simple Lists
#
# If a paragraph starts with a "*", "-", "<digit>." or "<letter>.",
# then it is taken to be the start of a list.  The margin is increased to be
# the first non-space following the list start flag.  Subsequent lines
# should be indented to this new margin until the list ends.  For example:
#
#   * this is a list with three paragraphs in
#     the first item.  This is the first paragraph.
#
#     And this is the second paragraph.
#
#     1. This is an indented, numbered list.
#     2. This is the second item in that list
#
#     This is the third conventional paragraph in the
#     first list item.
#
#   * This is the second item in the original list
#
# produces:
#
# * this is a list with three paragraphs in
#   the first item.  This is the first paragraph.
#
#   And this is the second paragraph.
#
#   1. This is an indented, numbered list.
#   2. This is the second item in that list
#
#   This is the third conventional paragraph in the
#   first list item.
#
# * This is the second item in the original list
#
# === Labeled Lists
#
# You can also construct labeled lists, sometimes called description
# or definition lists.  Do this by putting the label in square brackets
# and indenting the list body:
#
#   [cat]  a small furry mammal
#          that seems to sleep a lot
#
#   [ant]  a little insect that is known
#          to enjoy picnics
#
# produces:
#
# [cat]  a small furry mammal
#        that seems to sleep a lot
#
# [ant]  a little insect that is known
#        to enjoy picnics
#
# If you want the list bodies to line up to the left of the labels,
# use two colons:
#
#   cat::  a small furry mammal
#          that seems to sleep a lot
#
#   ant::  a little insect that is known
#          to enjoy picnics
#
# produces:
#
# cat::  a small furry mammal
#        that seems to sleep a lot
#
# ant::  a little insect that is known
#        to enjoy picnics
#
# Notice that blank lines right after the label are ignored in labeled lists:
#
#   [one]
#
#       definition 1
#
#   [two]
#
#       definition 2
#
# produces the same output as
#
#   [one]  definition 1
#   [two]  definition 2
#
#
# === Lists and Verbatim
#
# If you want to introduce a verbatim section right after a list, it has to be
# less indented than the list item bodies, but more indented than the list
# label, letter, digit or bullet. For instance:
#
#   *   point 1
#
#   *   point 2, first paragraph
#
#       point 2, second paragraph
#         verbatim text inside point 2
#       point 2, third paragraph
#     verbatim text outside of the list (the list is therefore closed)
#   regular paragraph after the list
#
# produces:
#
# *   point 1
#
# *   point 2, first paragraph
#
#     point 2, second paragraph
#       verbatim text inside point 2
#     point 2, third paragraph
#   verbatim text outside of the list (the list is therefore closed)
# regular paragraph after the list
#
# == Text Markup
#
# === Bold, Italic, Typewriter Text
#
# You can use markup within text (except verbatim) to change the
# appearance of parts of that text.  Out of the box, RDoc::Markup
# supports word-based and general markup.
#
# Word-based markup uses flag characters around individual words:
#
# <tt>\*_word_\*</tt>::  displays _word_ in a *bold* font
# <tt>\__word_\_</tt>::  displays _word_ in an _emphasized_ font
# <tt>\+_word_\+</tt>::  displays _word_ in a +code+ font
#
# General markup affects text between a start delimiter and an end
# delimiter.  Not surprisingly, these delimiters look like HTML markup.
#
# <tt>\<b>_text_</b></tt>::    displays _text_ in a *bold* font
# <tt>\<em>_text_</em></tt>::  displays _text_ in an _emphasized_ font
#                              (alternate tag: <tt>\<i></tt>)
# <tt>\<tt>_text_\</tt></tt>:: displays _text_ in a +code+ font
#                              (alternate tag: <tt>\<code></tt>)
#
# Unlike conventional Wiki markup, general markup can cross line
# boundaries.  You can turn off the interpretation of markup by
# preceding the first character with a backslash (see <i>Escaping
# Text Markup</i>, below).
#
# === Links
#
# Links to starting with +http:+, +https:+, +mailto:+, +ftp:+ or +www.+
# are recognized.  An HTTP url that references an external image is converted
# into an inline image element.
#
# Classes and methods will be automatically linked to their definition.  For
# example, <tt>RDoc::Markup</tt> will link to this documentation.  By default
# methods will only be automatically linked if they contain an <tt>_</tt> (all
# methods can be automatically linked through the <tt>--hyperlink-all</tt>
# command line option).
#
# Single-word methods can be linked by using the <tt>#</tt> character for
# instance methods or <tt>::</tt> for class methods.  For example,
# <tt>#convert</tt> links to #convert.  A class or method may be combined like
# <tt>RDoc::Markup#convert</tt>.
#
# A heading inside the documentation can be linked by following the class
# or method by an <tt>@</tt> then the heading name.
# <tt>RDoc::Markup@Links</tt> will link to this section like this:
# RDoc::Markup@Links.  Spaces in headings with multiple words must be escaped
# with <tt>+</tt> like <tt>RDoc::Markup@Escaping+Text+Markup</tt>.
# Punctuation and other special characters must be escaped like CGI.escape.
#
# The <tt>@</tt> can also be used to link to sections.  If a section and a
# heading share the same name the section is preferred for the link.
#
# Links can also be of the form <tt>label[url]</tt>, in which case +label+ is
# used in the displayed text, and +url+ is used as the target.  If +label+
# contains multiple words, put it in braces: <tt>{multi word label}[url]</tt>.
# The +url+ may be an +http:+-type link or a cross-reference to a class,
# module or method with a label.
#
# Links with the <code>rdoc-image:</code> scheme will create an image tag for
# HTML output.  Only fully-qualified URLs are supported.
#
# Links with the <tt>rdoc-ref:</tt> scheme will link to the referenced class,
# module, method, file, etc.  If the referenced item is does not exist
# no link will be generated and <tt>rdoc-ref:</tt> will be removed from the
# resulting text.
#
# Links starting with <tt>rdoc-label:label_name</tt> will link to the
# +label_name+.  You can create a label for the current link (for
# bidirectional links) by supplying a name for the current link like
# <tt>rdoc-label:label-other:label-mine</tt>.
#
# Links starting with +link:+ refer to local files whose path is relative to
# the <tt>--op</tt> directory.  Use <tt>rdoc-ref:</tt> instead of
# <tt>link:</tt> to link to files generated by RDoc as the link target may
# be different across RDoc generators.
#
# Example links:
#
#   https://github.com/rdoc/rdoc
#   mailto:user@example.com
#   {RDoc Documentation}[http://rdoc.rubyforge.org]
#   {RDoc Markup}[rdoc-ref:RDoc::Markup]
#
# === Escaping Text Markup
#
# Text markup can be escaped with a backslash, as in \<tt>, which was obtained
# with <tt>\\<tt></tt>.  Except in verbatim sections and between \<tt> tags,
# to produce a backslash you have to double it unless it is followed by a
# space, tab or newline. Otherwise, the HTML formatter will discard it, as it
# is used to escape potential links:
#
#   * The \ must be doubled if not followed by white space: \\.
#   * But not in \<tt> tags: in a Regexp, <tt>\S</tt> matches non-space.
#   * This is a link to {ruby-lang}[www.ruby-lang.org].
#   * This is not a link, however: \{ruby-lang.org}[www.ruby-lang.org].
#   * This will not be linked to \RDoc::RDoc#document
#
# generates:
#
# * The \ must be doubled if not followed by white space: \\.
# * But not in \<tt> tags: in a Regexp, <tt>\S</tt> matches non-space.
# * This is a link to {ruby-lang}[www.ruby-lang.org]
# * This is not a link, however: \{ruby-lang.org}[www.ruby-lang.org]
# * This will not be linked to \RDoc::RDoc#document
#
# Inside \<tt> tags, more precisely, leading backslashes are removed only if
# followed by a markup character (<tt><*_+</tt>), a backslash, or a known link
# reference (a known class or method). So in the example above, the backslash
# of <tt>\S</tt> would be removed if there was a class or module named +S+ in
# the current context.
#
# This behavior is inherited from RDoc version 1, and has been kept for
# compatibility with existing RDoc documentation.
#
# === Conversion of characters
#
# HTML will convert two/three dashes to an em-dash. Other common characters are
# converted as well:
#
#   em-dash::  -- or ---
#   ellipsis:: ...
#
#   single quotes:: 'text' or `text'
#   double quotes:: "text" or ``text''
#
#   copyright:: (c)
#   registered trademark:: (r)
#
# produces:
#
# em-dash::  -- or ---
# ellipsis:: ...
#
# single quotes:: 'text' or `text'
# double quotes:: "text" or ``text''
#
# copyright:: (c)
# registered trademark:: (r)
#
#
# == Documenting Source Code
#
# Comment blocks can be written fairly naturally, either using <tt>#</tt> on
# successive lines of the comment, or by including the comment in
# a <tt>=begin</tt>/<tt>=end</tt> block.  If you use the latter form,
# the <tt>=begin</tt> line _must_ be flagged with an +rdoc+ tag:
#
#   =begin rdoc
#   Documentation to be processed by RDoc.
#
#   ...
#   =end
#
# RDoc stops processing comments if it finds a comment line starting
# with <tt>--</tt> right after the <tt>#</tt> character (otherwise,
# it will be treated as a rule if it has three dashes or more).
# This can be used to separate external from internal comments,
# or to stop a comment being associated with a method, class, or module.
# Commenting can be turned back on with a line that starts with <tt>++</tt>.
#
#   ##
#   # Extract the age and calculate the date-of-birth.
#   #--
#   # FIXME: fails if the birthday falls on February 29th
#   #++
#   # The DOB is returned as a Time object.
#
#   def get_dob(person)
#     # ...
#   end
#
# Names of classes, files, and any method names containing an underscore or
# preceded by a hash character are automatically linked from comment text to
# their description. This linking works inside the current class or module,
# and with ancestor methods (in included modules or in the superclass).
#
# Method parameter lists are extracted and displayed with the method
# description.  If a method calls +yield+, then the parameters passed to yield
# will also be displayed:
#
#   def fred
#     ...
#     yield line, address
#
# This will get documented as:
#
#   fred() { |line, address| ... }
#
# You can override this using a comment containing ':yields: ...' immediately
# after the method definition
#
#   def fred # :yields: index, position
#     # ...
#
#     yield line, address
#
# which will get documented as
#
#    fred() { |index, position| ... }
#
# +:yields:+ is an example of a documentation directive.  These appear
# immediately after the start of the document element they are modifying.
#
# RDoc automatically cross-references words with underscores or camel-case.
# To suppress cross-references, prefix the word with a \ character.  To
# include special characters like "<tt>\n</tt>", you'll need to use
# two \ characters in normal text, but only one in \<tt> text:
#
#   "\\n" or "<tt>\n</tt>"
#
# produces:
#
# "\\n" or "<tt>\n</tt>"
#
# == Directives
#
# Directives are keywords surrounded by ":" characters.
#
# === Controlling what is documented
#
# [+:nodoc:+ / <tt>:nodoc: all</tt>]
#   This directive prevents documentation for the element from
#   being generated.  For classes and modules, methods, aliases,
#   constants, and attributes directly within the affected class or
#   module also will be omitted.  By default, though, modules and
#   classes within that class or module _will_ be documented.  This is
#   turned off by adding the +all+ modifier.
#
#     module MyModule # :nodoc:
#       class Input
#       end
#     end
#
#     module OtherModule # :nodoc: all
#       class Output
#       end
#     end
#
#   In the above code, only class <tt>MyModule::Input</tt> will be documented.
#
#   The +:nodoc:+ directive, like +:enddoc:+, +:stopdoc:+ and +:startdoc:+
#   presented below, is local to the current file: if you do not want to
#   document a module that appears in several files, specify +:nodoc:+ on each
#   appearance, at least once per file.
#
# [+:stopdoc:+ / +:startdoc:+]
#   Stop and start adding new documentation elements to the current container.
#   For example, if a class has a number of constants that you don't want to
#   document, put a +:stopdoc:+ before the first, and a +:startdoc:+ after the
#   last.  If you don't specify a +:startdoc:+ by the end of the container,
#   disables documentation for the rest of the current file.
#
# [+:doc:+]
#   Forces a method or attribute to be documented even if it wouldn't be
#   otherwise.  Useful if, for example, you want to include documentation of a
#   particular private method.
#
# [+:enddoc:+]
#   Document nothing further at the current level: directives +:startdoc:+ and
#   +:doc:+ that appear after this will not be honored for the current container
#   (file, class or module), in the current file.
#
# [+:notnew:+ / +:not_new:+ / +:not-new:+ ]
#   Only applicable to the +initialize+ instance method.  Normally RDoc
#   assumes that the documentation and parameters for +initialize+ are
#   actually for the +new+ method, and so fakes out a +new+ for the class.
#   The +:notnew:+ directive stops this.  Remember that +initialize+ is private,
#   so you won't see the documentation unless you use the +-a+ command line
#   option.
#
# === Method arguments
#
# [+:arg:+ or +:args:+ _parameters_]
#   Overrides the default argument handling with exactly these parameters.
#
#     ##
#     #  :args: a, b
#
#     def some_method(*a)
#     end
#
# [+:yield:+ or +:yields:+ _parameters_]
#   Overrides the default yield discovery with these parameters.
#
#     ##
#     # :yields: key, value
#
#     def each_thing &block
#       @things.each(&block)
#     end
#
# [+:call-seq:+]
#   Lines up to the next blank line or lines with a common prefix in the
#   comment are treated as the method's calling sequence, overriding the
#   default parsing of method parameters and yield arguments.
#
#   Multiple lines may be used.
#
#     # :call-seq:
#     #   ARGF.readlines(sep=$/)     -> array
#     #   ARGF.readlines(limit)      -> array
#     #   ARGF.readlines(sep, limit) -> array
#     #
#     #   ARGF.to_a(sep=$/)     -> array
#     #   ARGF.to_a(limit)      -> array
#     #   ARGF.to_a(sep, limit) -> array
#     #
#     # The remaining lines are documentation ...
#
# === Sections
#
# Sections allow you to group methods in a class into sensible containers.  If
# you use the sections 'Public', 'Internal' and 'Deprecated' (the three
# allowed method statuses from TomDoc) the sections will be displayed in that
# order placing the most useful methods at the top.  Otherwise, sections will
# be displayed in alphabetical order.
#
# [+:category:+ _section_]
#   Adds this item to the named +section+ overriding the current section.  Use
#   this to group methods by section in RDoc output while maintaining a
#   sensible ordering (like alphabetical).
#
#     # :category: Utility Methods
#     #
#     # CGI escapes +text+
#
#     def convert_string text
#       CGI.escapeHTML text
#     end
#
#   An empty category will place the item in the default category:
#
#     # :category:
#     #
#     # This method is in the default category
#
#     def some_method
#       # ...
#     end
#
#   Unlike the :section: directive, :category: is not sticky.  The category
#   only applies to the item immediately following the comment.
#
#   Use the :section: directive to provide introductory text for a section of
#   documentation.
#
# [+:section:+ _title_]
#   Provides section introductory text in RDoc output.  The title following
#   +:section:+ is used as the section name and the remainder of the comment
#   containing the section is used as introductory text.  A section's comment
#   block must be separated from following comment blocks.  Use an empty title
#   to switch to the default section.
#
#   The :section: directive is sticky, so subsequent methods, aliases,
#   attributes, and classes will be contained in this section until the
#   section is changed.  The :category: directive will override the :section:
#   directive.
#
#   A :section: comment block may have one or more lines before the :section:
#   directive.  These will be removed, and any identical lines at the end of
#   the block are also removed.  This allows you to add visual cues to the
#   section.
#
#   Example:
#
#     # ----------------------------------------
#     # :section: My Section
#     # This is the section that I wrote.
#     # See it glisten in the noon-day sun.
#     # ----------------------------------------
#
#     ##
#     # Comment for some_method
#
#     def some_method
#       # ...
#     end
#
# === Other directives
#
# [+:markup:+ _type_]
#   Overrides the default markup type for this comment with the specified
#   markup type.  For Ruby files, if the first comment contains this directive
#   it is applied automatically to all comments in the file.
#
#   Unless you are converting between markup formats you should use a
#   <code>.rdoc_options</code> file to specify the default documentation
#   format for your entire project.  See RDoc::Options@Saved+Options for
#   instructions.
#
#   At the top of a file the +:markup:+ directive applies to the entire file:
#
#     # coding: UTF-8
#     # :markup: TomDoc
#
#     # TomDoc comment here ...
#
#     class MyClass
#       # ...
#
#   For just one comment:
#
#       # ...
#     end
#
#     # :markup: RDoc
#     #
#     # This is a comment in RDoc markup format ...
#
#     def some_method
#       # ...
#
#   See Markup@CONTRIBUTING for instructions on adding a new markup format.
#
# [+:include:+ _filename_]
#   Include the contents of the named file at this point. This directive
#   must appear alone on one line, possibly preceded by spaces. In this
#   position, it can be escaped with a \ in front of the first colon.
#
#   The file will be searched for in the directories listed by the +--include+
#   option, or in the current directory by default.  The contents of the file
#   will be shifted to have the same indentation as the ':' at the start of
#   the +:include:+ directive.
#
# [+:title:+ _text_]
#   Sets the title for the document.  Equivalent to the <tt>--title</tt>
#   command line parameter.  (The command line parameter overrides any :title:
#   directive in the source).
#
# [+:main:+ _name_]
#   Equivalent to the <tt>--main</tt> command line parameter.
#
#--
# Original Author:: Dave Thomas,  dave@pragmaticprogrammer.com
# License:: Ruby license

class RDoc::Markup

  ##
  # An AttributeManager which handles inline markup.

  attr_reader :attribute_manager

  ##
  # Parses +str+ into an RDoc::Markup::Document.

  def self.parse str
    RDoc::Markup::Parser.parse str
  rescue RDoc::Markup::Parser::Error => e
    $stderr.puts <<-EOF
While parsing markup, RDoc encountered a #{e.class}:

#{e}
\tfrom #{e.backtrace.join "\n\tfrom "}

---8<---
#{text}
---8<---

RDoc #{RDoc::VERSION}

Ruby #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} #{RUBY_RELEASE_DATE}

Please file a bug report with the above information at:

https://github.com/rdoc/rdoc/issues

    EOF
    raise
  end

  ##
  # Take a block of text and use various heuristics to determine its
  # structure (paragraphs, lists, and so on).  Invoke an event handler as we
  # identify significant chunks.

  def initialize attribute_manager = nil
    @attribute_manager = attribute_manager || RDoc::Markup::AttributeManager.new
    @output = nil
  end

  ##
  # Add to the sequences used to add formatting to an individual word (such
  # as *bold*).  Matching entries will generate attributes that the output
  # formatters can recognize by their +name+.

  def add_word_pair(start, stop, name)
    @attribute_manager.add_word_pair(start, stop, name)
  end

  ##
  # Add to the sequences recognized as general markup.

  def add_html(tag, name)
    @attribute_manager.add_html(tag, name)
  end

  ##
  # Add to other inline sequences.  For example, we could add WikiWords using
  # something like:
  #
  #    parser.add_special(/\b([A-Z][a-z]+[A-Z]\w+)/, :WIKIWORD)
  #
  # Each wiki word will be presented to the output formatter via the
  # accept_special method.

  def add_special(pattern, name)
    @attribute_manager.add_special(pattern, name)
  end

  ##
  # We take +input+, parse it if necessary, then invoke the output +formatter+
  # using a Visitor to render the result.

  def convert input, formatter
    document = case input
               when RDoc::Markup::Document then
                 input
               else
                 RDoc::Markup::Parser.parse input
               end

    document.accept formatter
  end

  autoload :Parser,                'rdoc/markup/parser'
  autoload :PreProcess,            'rdoc/markup/pre_process'

  # Inline markup classes
  autoload :AttrChanger,           'rdoc/markup/attr_changer'
  autoload :AttrSpan,              'rdoc/markup/attr_span'
  autoload :Attributes,            'rdoc/markup/attributes'
  autoload :AttributeManager,      'rdoc/markup/attribute_manager'
  autoload :Special,               'rdoc/markup/special'

  # RDoc::Markup AST
  autoload :BlankLine,             'rdoc/markup/blank_line'
  autoload :BlockQuote,            'rdoc/markup/block_quote'
  autoload :Document,              'rdoc/markup/document'
  autoload :HardBreak,             'rdoc/markup/hard_break'
  autoload :Heading,               'rdoc/markup/heading'
  autoload :Include,               'rdoc/markup/include'
  autoload :IndentedParagraph,     'rdoc/markup/indented_paragraph'
  autoload :List,                  'rdoc/markup/list'
  autoload :ListItem,              'rdoc/markup/list_item'
  autoload :Paragraph,             'rdoc/markup/paragraph'
  autoload :Raw,                   'rdoc/markup/raw'
  autoload :Rule,                  'rdoc/markup/rule'
  autoload :Verbatim,              'rdoc/markup/verbatim'

  # Formatters
  autoload :Formatter,             'rdoc/markup/formatter'
  autoload :FormatterTestCase,     'rdoc/markup/formatter_test_case'
  autoload :TextFormatterTestCase, 'rdoc/markup/text_formatter_test_case'

  autoload :ToAnsi,                'rdoc/markup/to_ansi'
  autoload :ToBs,                  'rdoc/markup/to_bs'
  autoload :ToHtml,                'rdoc/markup/to_html'
  autoload :ToHtmlCrossref,        'rdoc/markup/to_html_crossref'
  autoload :ToHtmlSnippet,         'rdoc/markup/to_html_snippet'
  autoload :ToLabel,               'rdoc/markup/to_label'
  autoload :ToMarkdown,            'rdoc/markup/to_markdown'
  autoload :ToRdoc,                'rdoc/markup/to_rdoc'
  autoload :ToTableOfContents,     'rdoc/markup/to_table_of_contents'
  autoload :ToTest,                'rdoc/markup/to_test'
  autoload :ToTtOnly,              'rdoc/markup/to_tt_only'

end

lib64/ruby/2.2.0/rdoc/class_module.rb000064400000047350150402106140013034 0ustar00##
# ClassModule is the base class for objects representing either a class or a
# module.

class RDoc::ClassModule < RDoc::Context

  ##
  # 1::
  #   RDoc 3.7
  #   * Added visibility, singleton and file to attributes
  #   * Added file to constants
  #   * Added file to includes
  #   * Added file to methods
  # 2::
  #   RDoc 3.13
  #   * Added extends
  # 3::
  #   RDoc 4.0
  #   * Added sections
  #   * Added in_files
  #   * Added parent name
  #   * Complete Constant dump

  MARSHAL_VERSION = 3 # :nodoc:

  ##
  # Constants that are aliases for this class or module

  attr_accessor :constant_aliases

  ##
  # Comment and the location it came from.  Use #add_comment to add comments

  attr_accessor :comment_location

  attr_accessor :diagram # :nodoc:

  ##
  # Class or module this constant is an alias for

  attr_accessor :is_alias_for

  ##
  # Return a RDoc::ClassModule of class +class_type+ that is a copy
  # of module +module+. Used to promote modules to classes.
  #--
  # TODO move to RDoc::NormalClass (I think)

  def self.from_module class_type, mod
    klass = class_type.new mod.name

    mod.comment_location.each do |comment, location|
      klass.add_comment comment, location
    end

    klass.parent = mod.parent
    klass.section = mod.section
    klass.viewer = mod.viewer

    klass.attributes.concat mod.attributes
    klass.method_list.concat mod.method_list
    klass.aliases.concat mod.aliases
    klass.external_aliases.concat mod.external_aliases
    klass.constants.concat mod.constants
    klass.includes.concat mod.includes
    klass.extends.concat mod.extends

    klass.methods_hash.update mod.methods_hash
    klass.constants_hash.update mod.constants_hash

    klass.current_section = mod.current_section
    klass.in_files.concat mod.in_files
    klass.sections.concat mod.sections
    klass.unmatched_alias_lists = mod.unmatched_alias_lists
    klass.current_section = mod.current_section
    klass.visibility = mod.visibility

    klass.classes_hash.update mod.classes_hash
    klass.modules_hash.update mod.modules_hash
    klass.metadata.update mod.metadata

    klass.document_self = mod.received_nodoc ? nil : mod.document_self
    klass.document_children = mod.document_children
    klass.force_documentation = mod.force_documentation
    klass.done_documenting = mod.done_documenting

    # update the parent of all children

    (klass.attributes +
     klass.method_list +
     klass.aliases +
     klass.external_aliases +
     klass.constants +
     klass.includes +
     klass.extends +
     klass.classes +
     klass.modules).each do |obj|
      obj.parent = klass
      obj.full_name = nil
    end

    klass
  end

  ##
  # Creates a new ClassModule with +name+ with optional +superclass+
  #
  # This is a constructor for subclasses, and must never be called directly.

  def initialize(name, superclass = nil)
    @constant_aliases = []
    @diagram          = nil
    @is_alias_for     = nil
    @name             = name
    @superclass       = superclass
    @comment_location = [] # [[comment, location]]

    super()
  end

  ##
  # Adds +comment+ to this ClassModule's list of comments at +location+.  This
  # method is preferred over #comment= since it allows ri data to be updated
  # across multiple runs.

  def add_comment comment, location
    return unless document_self

    original = comment

    comment = case comment
              when RDoc::Comment then
                comment.normalize
              else
                normalize_comment comment
              end

    @comment_location.delete_if { |(_, l)| l == location }

    @comment_location << [comment, location]

    self.comment = original
  end

  def add_things my_things, other_things # :nodoc:
    other_things.each do |group, things|
      my_things[group].each { |thing| yield false, thing } if
        my_things.include? group

      things.each do |thing|
        yield true, thing
      end
    end
  end

  ##
  # Ancestors list for this ClassModule: the list of included modules
  # (classes will add their superclass if any).
  #
  # Returns the included classes or modules, not the includes
  # themselves. The returned values are either String or
  # RDoc::NormalModule instances (see RDoc::Include#module).
  #
  # The values are returned in reverse order of their inclusion,
  # which is the order suitable for searching methods/attributes
  # in the ancestors. The superclass, if any, comes last.

  def ancestors
    includes.map { |i| i.module }.reverse
  end

  def aref_prefix # :nodoc:
    raise NotImplementedError, "missing aref_prefix for #{self.class}"
  end

  ##
  # HTML fragment reference for this module or class.  See
  # RDoc::NormalClass#aref and RDoc::NormalModule#aref

  def aref
    "#{aref_prefix}-#{full_name}"
  end

  ##
  # Ancestors of this class or module only

  alias direct_ancestors ancestors

  ##
  # Clears the comment. Used by the Ruby parser.

  def clear_comment
    @comment = ''
  end

  ##
  # This method is deprecated, use #add_comment instead.
  #
  # Appends +comment+ to the current comment, but separated by a rule.  Works
  # more like <tt>+=</tt>.

  def comment= comment # :nodoc:
    comment = case comment
              when RDoc::Comment then
                comment.normalize
              else
                normalize_comment comment
              end

    comment = "#{@comment}\n---\n#{comment}" unless @comment.empty?

    super comment
  end

  ##
  # Prepares this ClassModule for use by a generator.
  #
  # See RDoc::Store#complete

  def complete min_visibility
    update_aliases
    remove_nodoc_children
    update_includes
    remove_invisible min_visibility
  end

  ##
  # Does this ClassModule or any of its methods have document_self set?

  def document_self_or_methods
    document_self || method_list.any?{ |m| m.document_self }
  end

  ##
  # Does this class or module have a comment with content or is
  # #received_nodoc true?

  def documented?
    return true if @received_nodoc
    return false if @comment_location.empty?
    @comment_location.any? { |comment, _| not comment.empty? }
  end

  ##
  # Iterates the ancestors of this class or module for which an
  # RDoc::ClassModule exists.

  def each_ancestor # :yields: module
    return enum_for __method__ unless block_given?

    ancestors.each do |mod|
      next if String === mod
      next if self == mod
      yield mod
    end
  end

  ##
  # Looks for a symbol in the #ancestors. See Context#find_local_symbol.

  def find_ancestor_local_symbol symbol
    each_ancestor do |m|
      res = m.find_local_symbol(symbol)
      return res if res
    end

    nil
  end

  ##
  # Finds a class or module with +name+ in this namespace or its descendants

  def find_class_named name
    return self if full_name == name
    return self if @name == name

    @classes.values.find do |klass|
      next if klass == self
      klass.find_class_named name
    end
  end

  ##
  # Return the fully qualified name of this class or module

  def full_name
    @full_name ||= if RDoc::ClassModule === parent then
                     "#{parent.full_name}::#{@name}"
                   else
                     @name
                   end
  end

  ##
  # TODO: filter included items by #display?

  def marshal_dump # :nodoc:
    attrs = attributes.sort.map do |attr|
      next unless attr.display?
      [ attr.name, attr.rw,
        attr.visibility, attr.singleton, attr.file_name,
      ]
    end.compact

    method_types = methods_by_type.map do |type, visibilities|
      visibilities = visibilities.map do |visibility, methods|
        method_names = methods.map do |method|
          next unless method.display?
          [method.name, method.file_name]
        end.compact

        [visibility, method_names.uniq]
      end

      [type, visibilities]
    end

    [ MARSHAL_VERSION,
      @name,
      full_name,
      @superclass,
      parse(@comment_location),
      attrs,
      constants.select { |constant| constant.display? },
      includes.map do |incl|
        next unless incl.display?
        [incl.name, parse(incl.comment), incl.file_name]
      end.compact,
      method_types,
      extends.map do |ext|
        next unless ext.display?
        [ext.name, parse(ext.comment), ext.file_name]
      end.compact,
      @sections.values,
      @in_files.map do |tl|
        tl.relative_name
      end,
      parent.full_name,
      parent.class,
    ]
  end

  def marshal_load array # :nodoc:
    initialize_visibility
    initialize_methods_etc
    @current_section   = nil
    @document_self     = true
    @done_documenting  = false
    @parent            = nil
    @temporary_section = nil
    @visibility        = nil
    @classes           = {}
    @modules           = {}

    @name       = array[1]
    @full_name  = array[2]
    @superclass = array[3]
    @comment    = array[4]

    @comment_location = if RDoc::Markup::Document === @comment.parts.first then
                          @comment
                        else
                          RDoc::Markup::Document.new @comment
                        end

    array[5].each do |name, rw, visibility, singleton, file|
      singleton  ||= false
      visibility ||= :public

      attr = RDoc::Attr.new nil, name, rw, nil, singleton

      add_attribute attr
      attr.visibility = visibility
      attr.record_location RDoc::TopLevel.new file
    end

    array[6].each do |constant, comment, file|
      case constant
      when RDoc::Constant then
        add_constant constant
      else
        constant = add_constant RDoc::Constant.new(constant, nil, comment)
        constant.record_location RDoc::TopLevel.new file
      end
    end

    array[7].each do |name, comment, file|
      incl = add_include RDoc::Include.new(name, comment)
      incl.record_location RDoc::TopLevel.new file
    end

    array[8].each do |type, visibilities|
      visibilities.each do |visibility, methods|
        @visibility = visibility

        methods.each do |name, file|
          method = RDoc::AnyMethod.new nil, name
          method.singleton = true if type == 'class'
          method.record_location RDoc::TopLevel.new file
          add_method method
        end
      end
    end

    array[9].each do |name, comment, file|
      ext = add_extend RDoc::Extend.new(name, comment)
      ext.record_location RDoc::TopLevel.new file
    end if array[9] # Support Marshal version 1

    sections = (array[10] || []).map do |section|
      [section.title, section]
    end

    @sections = Hash[*sections.flatten]
    @current_section = add_section nil

    @in_files = []

    (array[11] || []).each do |filename|
      record_location RDoc::TopLevel.new filename
    end

    @parent_name  = array[12]
    @parent_class = array[13]
  end

  ##
  # Merges +class_module+ into this ClassModule.
  #
  # The data in +class_module+ is preferred over the receiver.

  def merge class_module
    @parent      = class_module.parent
    @parent_name = class_module.parent_name

    other_document = parse class_module.comment_location

    if other_document then
      document = parse @comment_location

      document = document.merge other_document

      @comment = @comment_location = document
    end

    cm = class_module
    other_files = cm.in_files

    merge_collections attributes, cm.attributes, other_files do |add, attr|
      if add then
        add_attribute attr
      else
        @attributes.delete attr
        @methods_hash.delete attr.pretty_name
      end
    end

    merge_collections constants, cm.constants, other_files do |add, const|
      if add then
        add_constant const
      else
        @constants.delete const
        @constants_hash.delete const.name
      end
    end

    merge_collections includes, cm.includes, other_files do |add, incl|
      if add then
        add_include incl
      else
        @includes.delete incl
      end
    end

    @includes.uniq! # clean up

    merge_collections extends, cm.extends, other_files do |add, ext|
      if add then
        add_extend ext
      else
        @extends.delete ext
      end
    end

    @extends.uniq! # clean up

    merge_collections method_list, cm.method_list, other_files do |add, meth|
      if add then
        add_method meth
      else
        @method_list.delete meth
        @methods_hash.delete meth.pretty_name
      end
    end

    merge_sections cm

    self
  end

  ##
  # Merges collection +mine+ with +other+ preferring other.  +other_files+ is
  # used to help determine which items should be deleted.
  #
  # Yields whether the item should be added or removed (true or false) and the
  # item to be added or removed.
  #
  #   merge_collections things, other.things, other.in_files do |add, thing|
  #     if add then
  #       # add the thing
  #     else
  #       # remove the thing
  #     end
  #   end

  def merge_collections mine, other, other_files, &block # :nodoc:
    my_things    = mine. group_by { |thing| thing.file }
    other_things = other.group_by { |thing| thing.file }

    remove_things my_things, other_files,  &block
    add_things    my_things, other_things, &block
  end

  ##
  # Merges the comments in this ClassModule with the comments in the other
  # ClassModule +cm+.

  def merge_sections cm # :nodoc:
    my_sections    =    sections.group_by { |section| section.title }
    other_sections = cm.sections.group_by { |section| section.title }

    other_files = cm.in_files

    remove_things my_sections, other_files do |_, section|
      @sections.delete section.title
    end

    other_sections.each do |group, sections|
      if my_sections.include? group
        my_sections[group].each do |my_section|
          other_section = cm.sections_hash[group]

          my_comments    = my_section.comments
          other_comments = other_section.comments

          other_files = other_section.in_files

          merge_collections my_comments, other_comments, other_files do |add, comment|
            if add then
              my_section.add_comment comment
            else
              my_section.remove_comment comment
            end
          end
        end
      else
        sections.each do |section|
          add_section group, section.comments
        end
      end
    end
  end

  ##
  # Does this object represent a module?

  def module?
    false
  end

  ##
  # Allows overriding the initial name.
  #
  # Used for modules and classes that are constant aliases.

  def name= new_name
    @name = new_name
  end

  ##
  # Parses +comment_location+ into an RDoc::Markup::Document composed of
  # multiple RDoc::Markup::Documents with their file set.

  def parse comment_location
    case comment_location
    when String then
      super
    when Array then
      docs = comment_location.map do |comment, location|
        doc = super comment
        doc.file = location
        doc
      end

      RDoc::Markup::Document.new(*docs)
    when RDoc::Comment then
      doc = super comment_location.text, comment_location.format
      doc.file = comment_location.location
      doc
    when RDoc::Markup::Document then
      return comment_location
    else
      raise ArgumentError, "unknown comment class #{comment_location.class}"
    end
  end

  ##
  # Path to this class or module for use with HTML generator output.

  def path
    http_url @store.rdoc.generator.class_dir
  end

  ##
  # Name to use to generate the url:
  # modules and classes that are aliases for another
  # module or class return the name of the latter.

  def name_for_path
    is_alias_for ? is_alias_for.full_name : full_name
  end

  ##
  # Returns the classes and modules that are not constants
  # aliasing another class or module. For use by formatters
  # only (caches its result).

  def non_aliases
    @non_aliases ||= classes_and_modules.reject { |cm| cm.is_alias_for }
  end

  ##
  # Updates the child modules or classes of class/module +parent+ by
  # deleting the ones that have been removed from the documentation.
  #
  # +parent_hash+ is either <tt>parent.modules_hash</tt> or
  # <tt>parent.classes_hash</tt> and +all_hash+ is ::all_modules_hash or
  # ::all_classes_hash.

  def remove_nodoc_children
    prefix = self.full_name + '::'

    modules_hash.each_key do |name|
      full_name = prefix + name
      modules_hash.delete name unless @store.modules_hash[full_name]
    end

    classes_hash.each_key do |name|
      full_name = prefix + name
      classes_hash.delete name unless @store.classes_hash[full_name]
    end
  end

  def remove_things my_things, other_files # :nodoc:
    my_things.delete_if do |file, things|
      next false unless other_files.include? file

      things.each do |thing|
        yield false, thing
      end

      true
    end
  end

  ##
  # Search record used by RDoc::Generator::JsonIndex

  def search_record
    [
      name,
      full_name,
      full_name,
      '',
      path,
      '',
      snippet(@comment_location),
    ]
  end

  ##
  # Sets the store for this class or module and its contained code objects.

  def store= store
    super

    @attributes .each do |attr|  attr.store  = store end
    @constants  .each do |const| const.store = store end
    @includes   .each do |incl|  incl.store  = store end
    @extends    .each do |ext|   ext.store   = store end
    @method_list.each do |meth|  meth.store  = store end
  end

  ##
  # Get the superclass of this class.  Attempts to retrieve the superclass
  # object, returns the name if it is not known.

  def superclass
    @store.find_class_named(@superclass) || @superclass
  end

  ##
  # Set the superclass of this class to +superclass+

  def superclass=(superclass)
    raise NoMethodError, "#{full_name} is a module" if module?
    @superclass = superclass
  end

  def to_s # :nodoc:
    if is_alias_for then
      "#{self.class.name} #{self.full_name} -> #{is_alias_for}"
    else
      super
    end
  end

  ##
  # 'module' or 'class'

  def type
    module? ? 'module' : 'class'
  end

  ##
  # Updates the child modules & classes by replacing the ones that are
  # aliases through a constant.
  #
  # The aliased module/class is replaced in the children and in
  # RDoc::Store#modules_hash or RDoc::Store#classes_hash
  # by a copy that has <tt>RDoc::ClassModule#is_alias_for</tt> set to
  # the aliased module/class, and this copy is added to <tt>#aliases</tt>
  # of the aliased module/class.
  #
  # Formatters can use the #non_aliases method to retrieve children that
  # are not aliases, for instance to list the namespace content, since
  # the aliased modules are included in the constants of the class/module,
  # that are listed separately.

  def update_aliases
    constants.each do |const|
      next unless cm = const.is_alias_for
      cm_alias = cm.dup
      cm_alias.name = const.name

      # Don't move top-level aliases under Object, they look ugly there
      unless RDoc::TopLevel === cm_alias.parent then
        cm_alias.parent = self
        cm_alias.full_name = nil # force update for new parent
      end

      cm_alias.aliases.clear
      cm_alias.is_alias_for = cm

      if cm.module? then
        @store.modules_hash[cm_alias.full_name] = cm_alias
        modules_hash[const.name] = cm_alias
      else
        @store.classes_hash[cm_alias.full_name] = cm_alias
        classes_hash[const.name] = cm_alias
      end

      cm.aliases << cm_alias
    end
  end

  ##
  # Deletes from #includes those whose module has been removed from the
  # documentation.
  #--
  # FIXME: includes are not reliably removed, see _possible_bug test case

  def update_includes
    includes.reject! do |include|
      mod = include.module
      !(String === mod) && @store.modules_hash[mod.full_name].nil?
    end

    includes.uniq!
  end

  ##
  # Deletes from #extends those whose module has been removed from the
  # documentation.
  #--
  # FIXME: like update_includes, extends are not reliably removed

  def update_extends
    extends.reject! do |ext|
      mod = ext.module

      !(String === mod) && @store.modules_hash[mod.full_name].nil?
    end

    extends.uniq!
  end

end

lib64/ruby/2.2.0/rdoc/generator.rb000064400000003420150402106140012336 0ustar00##
# RDoc uses generators to turn parsed source code in the form of an
# RDoc::CodeObject tree into some form of output.  RDoc comes with the HTML
# generator RDoc::Generator::Darkfish and an ri data generator
# RDoc::Generator::RI.
#
# == Registering a Generator
#
# Generators are registered by calling RDoc::RDoc.add_generator with the class
# of the generator:
#
#   class My::Awesome::Generator
#     RDoc::RDoc.add_generator self
#   end
#
# == Adding Options to +rdoc+
#
# Before option processing in +rdoc+, RDoc::Options will call ::setup_options
# on the generator class with an RDoc::Options instance.  The generator can
# use RDoc::Options#option_parser to add command-line options to the +rdoc+
# tool.  See RDoc::Options@Custom+Options for an example and see OptionParser
# for details on how to add options.
#
# You can extend the RDoc::Options instance with additional accessors for your
# generator.
#
# == Generator Instantiation
#
# After parsing, RDoc::RDoc will instantiate a generator by calling
# #initialize with an RDoc::Store instance and an RDoc::Options instance.
#
# The RDoc::Store instance holds documentation for parsed source code.  In
# RDoc 3 and earlier the RDoc::TopLevel class held this data.  When upgrading
# a generator from RDoc 3 and earlier you should only need to replace
# RDoc::TopLevel with the store instance.
#
# RDoc will then call #generate on the generator instance.  You can use the
# various methods on RDoc::Store and in the RDoc::CodeObject tree to create
# your desired output format.

module RDoc::Generator

  autoload :Markup,   'rdoc/generator/markup'

  autoload :Darkfish,  'rdoc/generator/darkfish'
  autoload :JsonIndex, 'rdoc/generator/json_index'
  autoload :RI,        'rdoc/generator/ri'
  autoload :POT,       'rdoc/generator/pot'

end

lib64/ruby/2.2.0/rdoc/include.rb000064400000000216150402106140011773 0ustar00##
# A Module included in a class with \#include
#
#   RDoc::Include.new 'Enumerable', 'comment ...'

class RDoc::Include < RDoc::Mixin

end

lib64/ruby/2.2.0/rdoc/extend.rb000064400000000214150402106140011635 0ustar00##
# A Module extension to a class with \#extend
#
#   RDoc::Extend.new 'Enumerable', 'comment ...'

class RDoc::Extend < RDoc::Mixin

end

lib64/ruby/2.2.0/rdoc/markdown.rb000064400001353377150402106140012216 0ustar00# coding: UTF-8
# :markup: markdown

##
# RDoc::Markdown as described by the [markdown syntax][syntax].
#
# To choose Markdown as your only default format see
# RDoc::Options@Saved+Options for instructions on setting up a `.doc_options`
# file to store your project default.
#
# ## Usage
#
# Here is a brief example of using this parse to read a markdown file by hand.
#
#     data = File.read("README.md")
#     formatter = RDoc::Markup::ToHtml.new(RDoc::Options.new, nil)
#     html = RDoc::Markdown.parse(data).accept(@formatter)
#
#     # do something with html
#
# ## Extensions
#
# The following markdown extensions are supported by the parser, but not all
# are used in RDoc output by default.
#
# ### RDoc
#
# The RDoc Markdown parser has the following built-in behaviors that cannot be
# disabled.
#
# Underscores embedded in words are never interpreted as emphasis.  (While the
# [markdown dingus][dingus] emphasizes in-word underscores, neither the
# Markdown syntax nor MarkdownTest mention this behavior.)
#
# For HTML output, RDoc always auto-links bare URLs.
#
# ### Break on Newline
#
# The break_on_newline extension converts all newlines into hard line breaks
# as in [Github Flavored Markdown][GFM].  This extension is disabled by
# default.
#
# ### CSS
#
# The #css extension enables CSS blocks to be included in the output, but they
# are not used for any built-in RDoc output format.  This extension is disabled
# by default.
#
# Example:
#
#     <style type="text/css">
#     h1 { font-size: 3em }
#     </style>
#
# ### Definition Lists
#
# The definition_lists extension allows definition lists using the [PHP
# Markdown Extra syntax][PHPE], but only one label and definition are supported
# at this time.  This extension is enabled by default.
#
# Example:
#
# ```
# cat
# :   A small furry mammal
# that seems to sleep a lot
#
# ant
# :   A little insect that is known
# to enjoy picnics
#
# ```
#
# Produces:
#
# cat
# :   A small furry mammal
# that seems to sleep a lot
#
# ant
# :   A little insect that is known
# to enjoy picnics
#
# ### Github
#
# The #github extension enables a partial set of [Github Flavored Markdown]
# [GFM].  This extension is enabled by default.
#
# Supported github extensions include:
#
# #### Fenced code blocks
#
# Use ` ``` ` around a block of code instead of indenting it four spaces.
#
# #### Syntax highlighting
#
# Use ` ``` ruby ` as the start of a code fence to add syntax highlighting.
# (Currently only `ruby` syntax is supported).
#
# ### HTML
#
# Enables raw HTML to be included in the output.  This extension is enabled by
# default.
#
# Example:
#
#     <table>
#     ...
#     </table>
#
# ### Notes
#
# The #notes extension enables footnote support.  This extension is enabled by
# default.
#
# Example:
#
#     Here is some text[^1] including an inline footnote ^[for short footnotes]
#
#     ...
#
#     [^1]: With the footnote text down at the bottom
#
# Produces:
#
# Here is some text[^1] including an inline footnote ^[for short footnotes]
#
# [^1]: With the footnote text down at the bottom
#
# ## Limitations
#
# * Link titles are not used
# * Footnotes are collapsed into a single paragraph
#
# ## Author
#
# This markdown parser is a port to kpeg from [peg-markdown][pegmarkdown] by
# John MacFarlane.
#
# It is used under the MIT license:
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
# The port to kpeg was performed by Eric Hodel and Evan Phoenix
#
# [dingus]: http://daringfireball.net/projects/markdown/dingus
# [GFM]: http://github.github.com/github-flavored-markdown/
# [pegmarkdown]: https://github.com/jgm/peg-markdown
# [PHPE]: http://michelf.com/projects/php-markdown/extra/#def-list
# [syntax]: http://daringfireball.net/projects/markdown/syntax
#--
# Last updated to jgm/peg-markdown commit 8f8fc22ef0
class RDoc::Markdown
  # :stopdoc:

    # This is distinct from setup_parser so that a standalone parser
    # can redefine #initialize and still have access to the proper
    # parser setup code.
    def initialize(str, debug=false)
      setup_parser(str, debug)
    end



    # Prepares for parsing +str+.  If you define a custom initialize you must
    # call this method before #parse
    def setup_parser(str, debug=false)
      set_string str, 0
      @memoizations = Hash.new { |h,k| h[k] = {} }
      @result = nil
      @failed_rule = nil
      @failing_rule_offset = -1

      setup_foreign_grammar
    end

    attr_reader :string
    attr_reader :failing_rule_offset
    attr_accessor :result, :pos

    def current_column(target=pos)
      if c = string.rindex("\n", target-1)
        return target - c - 1
      end

      target + 1
    end

    def current_line(target=pos)
      cur_offset = 0
      cur_line = 0

      string.each_line do |line|
        cur_line += 1
        cur_offset += line.size
        return cur_line if cur_offset >= target
      end

      -1
    end

    def lines
      lines = []
      string.each_line { |l| lines << l }
      lines
    end



    def get_text(start)
      @string[start..@pos-1]
    end

    # Sets the string and current parsing position for the parser.
    def set_string string, pos
      @string = string
      @string_size = string ? string.size : 0
      @pos = pos
    end

    def show_pos
      width = 10
      if @pos < width
        "#{@pos} (\"#{@string[0,@pos]}\" @ \"#{@string[@pos,width]}\")"
      else
        "#{@pos} (\"... #{@string[@pos - width, width]}\" @ \"#{@string[@pos,width]}\")"
      end
    end

    def failure_info
      l = current_line @failing_rule_offset
      c = current_column @failing_rule_offset

      if @failed_rule.kind_of? Symbol
        info = self.class::Rules[@failed_rule]
        "line #{l}, column #{c}: failed rule '#{info.name}' = '#{info.rendered}'"
      else
        "line #{l}, column #{c}: failed rule '#{@failed_rule}'"
      end
    end

    def failure_caret
      l = current_line @failing_rule_offset
      c = current_column @failing_rule_offset

      line = lines[l-1]
      "#{line}\n#{' ' * (c - 1)}^"
    end

    def failure_character
      l = current_line @failing_rule_offset
      c = current_column @failing_rule_offset
      lines[l-1][c-1, 1]
    end

    def failure_oneline
      l = current_line @failing_rule_offset
      c = current_column @failing_rule_offset

      char = lines[l-1][c-1, 1]

      if @failed_rule.kind_of? Symbol
        info = self.class::Rules[@failed_rule]
        "@#{l}:#{c} failed rule '#{info.name}', got '#{char}'"
      else
        "@#{l}:#{c} failed rule '#{@failed_rule}', got '#{char}'"
      end
    end

    class ParseError < RuntimeError
    end

    def raise_error
      raise ParseError, failure_oneline
    end

    def show_error(io=STDOUT)
      error_pos = @failing_rule_offset
      line_no = current_line(error_pos)
      col_no = current_column(error_pos)

      io.puts "On line #{line_no}, column #{col_no}:"

      if @failed_rule.kind_of? Symbol
        info = self.class::Rules[@failed_rule]
        io.puts "Failed to match '#{info.rendered}' (rule '#{info.name}')"
      else
        io.puts "Failed to match rule '#{@failed_rule}'"
      end

      io.puts "Got: #{string[error_pos,1].inspect}"
      line = lines[line_no-1]
      io.puts "=> #{line}"
      io.print(" " * (col_no + 3))
      io.puts "^"
    end

    def set_failed_rule(name)
      if @pos > @failing_rule_offset
        @failed_rule = name
        @failing_rule_offset = @pos
      end
    end

    attr_reader :failed_rule

    def match_string(str)
      len = str.size
      if @string[pos,len] == str
        @pos += len
        return str
      end

      return nil
    end

    def scan(reg)
      if m = reg.match(@string[@pos..-1])
        width = m.end(0)
        @pos += width
        return true
      end

      return nil
    end

    if "".respond_to? :ord
      def get_byte
        if @pos >= @string_size
          return nil
        end

        s = @string[@pos].ord
        @pos += 1
        s
      end
    else
      def get_byte
        if @pos >= @string_size
          return nil
        end

        s = @string[@pos]
        @pos += 1
        s
      end
    end

    def parse(rule=nil)
      # We invoke the rules indirectly via apply
      # instead of by just calling them as methods because
      # if the rules use left recursion, apply needs to
      # manage that.

      if !rule
        apply(:_root)
      else
        method = rule.gsub("-","_hyphen_")
        apply :"_#{method}"
      end
    end

    class MemoEntry
      def initialize(ans, pos)
        @ans = ans
        @pos = pos
        @result = nil
        @set = false
        @left_rec = false
      end

      attr_reader :ans, :pos, :result, :set
      attr_accessor :left_rec

      def move!(ans, pos, result)
        @ans = ans
        @pos = pos
        @result = result
        @set = true
        @left_rec = false
      end
    end

    def external_invoke(other, rule, *args)
      old_pos = @pos
      old_string = @string

      set_string other.string, other.pos

      begin
        if val = __send__(rule, *args)
          other.pos = @pos
          other.result = @result
        else
          other.set_failed_rule "#{self.class}##{rule}"
        end
        val
      ensure
        set_string old_string, old_pos
      end
    end

    def apply_with_args(rule, *args)
      memo_key = [rule, args]
      if m = @memoizations[memo_key][@pos]
        @pos = m.pos
        if !m.set
          m.left_rec = true
          return nil
        end

        @result = m.result

        return m.ans
      else
        m = MemoEntry.new(nil, @pos)
        @memoizations[memo_key][@pos] = m
        start_pos = @pos

        ans = __send__ rule, *args

        lr = m.left_rec

        m.move! ans, @pos, @result

        # Don't bother trying to grow the left recursion
        # if it's failing straight away (thus there is no seed)
        if ans and lr
          return grow_lr(rule, args, start_pos, m)
        else
          return ans
        end

        return ans
      end
    end

    def apply(rule)
      if m = @memoizations[rule][@pos]
        @pos = m.pos
        if !m.set
          m.left_rec = true
          return nil
        end

        @result = m.result

        return m.ans
      else
        m = MemoEntry.new(nil, @pos)
        @memoizations[rule][@pos] = m
        start_pos = @pos

        ans = __send__ rule

        lr = m.left_rec

        m.move! ans, @pos, @result

        # Don't bother trying to grow the left recursion
        # if it's failing straight away (thus there is no seed)
        if ans and lr
          return grow_lr(rule, nil, start_pos, m)
        else
          return ans
        end

        return ans
      end
    end

    def grow_lr(rule, args, start_pos, m)
      while true
        @pos = start_pos
        @result = m.result

        if args
          ans = __send__ rule, *args
        else
          ans = __send__ rule
        end
        return nil unless ans

        break if @pos <= m.pos

        m.move! ans, @pos, @result
      end

      @result = m.result
      @pos = m.pos
      return m.ans
    end

    class RuleInfo
      def initialize(name, rendered)
        @name = name
        @rendered = rendered
      end

      attr_reader :name, :rendered
    end

    def self.rule_info(name, rendered)
      RuleInfo.new(name, rendered)
    end


  # :startdoc:



  require 'rubygems'
  require 'rdoc'
  require 'rdoc/markup/to_joined_paragraph'
  require 'rdoc/markdown/entities'

  if RUBY_VERSION > '1.9' then
    require 'rdoc/markdown/literals_1_9'
  else
    require 'rdoc/markdown/literals_1_8'
  end

  ##
  # Supported extensions

  EXTENSIONS = []

  ##
  # Extensions enabled by default

  DEFAULT_EXTENSIONS = [
    :definition_lists,
    :github,
    :html,
    :notes,
  ]

  # :section: Extensions

  ##
  # Creates extension methods for the `name` extension to enable and disable
  # the extension and to query if they are active.

  def self.extension name
    EXTENSIONS << name

    define_method "#{name}?" do
      extension? name
    end

    define_method "#{name}=" do |enable|
      extension name, enable
    end
  end

  ##
  # Converts all newlines into hard breaks

  extension :break_on_newline

  ##
  # Allow style blocks

  extension :css

  ##
  # Allow PHP Markdown Extras style definition lists

  extension :definition_lists

  ##
  # Allow Github Flavored Markdown

  extension :github

  ##
  # Allow HTML

  extension :html

  ##
  # Enables the notes extension

  extension :notes

  # :section:

  ##
  # Parses the `markdown` document into an RDoc::Document using the default
  # extensions.

  def self.parse markdown
    parser = new

    parser.parse markdown
  end

  # TODO remove when kpeg 0.10 is released
  alias orig_initialize initialize # :nodoc:

  ##
  # Creates a new markdown parser that enables the given +extensions+.

  def initialize extensions = DEFAULT_EXTENSIONS, debug = false
    @debug      = debug
    @formatter  = RDoc::Markup::ToJoinedParagraph.new
    @extensions = extensions

    @references          = nil
    @unlinked_references = nil

    @footnotes       = nil
    @note_order      = nil
  end

  ##
  # Wraps `text` in emphasis for rdoc inline formatting

  def emphasis text
    if text =~ /\A[a-z\d.\/]+\z/i then
      "_#{text}_"
    else
      "<em>#{text}</em>"
    end
  end

  ##
  # :category: Extensions
  #
  # Is the extension `name` enabled?

  def extension? name
    @extensions.include? name
  end

  ##
  # :category: Extensions
  #
  # Enables or disables the extension with `name`

  def extension name, enable
    if enable then
      @extensions |= [name]
    else
      @extensions -= [name]
    end
  end

  ##
  # Parses `text` in a clone of this parser.  This is used for handling nested
  # lists the same way as markdown_parser.

  def inner_parse text # :nodoc:
    parser = clone

    parser.setup_parser text, @debug

    parser.peg_parse

    doc = parser.result

    doc.accept @formatter

    doc.parts
  end

  ##
  # Finds a link reference for `label` and creates a new link to it with
  # `content` as the link text.  If `label` was not encountered in the
  # reference-gathering parser pass the label and content are reconstructed
  # with the linking `text` (usually whitespace).

  def link_to content, label = content, text = nil
    raise 'enable notes extension' if
      content.start_with? '^' and label.equal? content

    if ref = @references[label] then
      "{#{content}}[#{ref}]"
    elsif label.equal? content then
      "[#{content}]#{text}"
    else
      "[#{content}]#{text}[#{label}]"
    end
  end

  ##
  # Creates an RDoc::Markup::ListItem by parsing the `unparsed` content from
  # the first parsing pass.

  def list_item_from unparsed
    parsed = inner_parse unparsed.join
    RDoc::Markup::ListItem.new nil, *parsed
  end

  ##
  # Stores `label` as a note and fills in previously unknown note references.

  def note label
    #foottext = "rdoc-label:foottext-#{label}:footmark-#{label}"

    #ref.replace foottext if ref = @unlinked_notes.delete(label)

    @notes[label] = foottext

    #"{^1}[rdoc-label:footmark-#{label}:foottext-#{label}] "
  end

  ##
  # Creates a new link for the footnote `reference` and adds the reference to
  # the note order list for proper display at the end of the document.

  def note_for ref
    @note_order << ref

    label = @note_order.length

    "{*#{label}}[rdoc-label:foottext-#{label}:footmark-#{label}]"
  end

  ##
  # The internal kpeg parse method

  alias peg_parse parse # :nodoc:

  ##
  # Creates an RDoc::Markup::Paragraph from `parts` and including
  # extension-specific behavior

  def paragraph parts
    parts = parts.map do |part|
      if "\n" == part then
        RDoc::Markup::HardBreak.new
      else
        part
      end
    end if break_on_newline?

    RDoc::Markup::Paragraph.new(*parts)
  end

  ##
  # Parses `markdown` into an RDoc::Document

  def parse markdown
    @references          = {}
    @unlinked_references = {}

    markdown += "\n\n"

    setup_parser markdown, @debug
    peg_parse 'References'

    if notes? then
      @footnotes       = {}

      setup_parser markdown, @debug
      peg_parse 'Notes'

      # using note_order on the first pass would be a bug
      @note_order      = []
    end

    setup_parser markdown, @debug
    peg_parse

    doc = result

    if notes? and not @footnotes.empty? then
      doc << RDoc::Markup::Rule.new(1)

      @note_order.each_with_index do |ref, index|
        label = index + 1
        note = @footnotes[ref]

        link = "{^#{label}}[rdoc-label:footmark-#{label}:foottext-#{label}] "
        note.parts.unshift link

        doc << note
      end
    end

    doc.accept @formatter

    doc
  end

  ##
  # Stores `label` as a reference to `link` and fills in previously unknown
  # link references.

  def reference label, link
    if ref = @unlinked_references.delete(label) then
      ref.replace link
    end

    @references[label] = link
  end

  ##
  # Wraps `text` in strong markup for rdoc inline formatting

  def strong text
    if text =~ /\A[a-z\d.\/-]+\z/i then
      "*#{text}*"
    else
      "<b>#{text}</b>"
    end
  end


  # :stopdoc:
  def setup_foreign_grammar
    @_grammar_literals = RDoc::Markdown::Literals.new(nil)
  end

  # root = Doc
  def _root
    _tmp = apply(:_Doc)
    set_failed_rule :_root unless _tmp
    return _tmp
  end

  # Doc = BOM? Block*:a { RDoc::Markup::Document.new(*a.compact) }
  def _Doc

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = apply(:_BOM)
      unless _tmp
        _tmp = true
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      _ary = []
      while true
        _tmp = apply(:_Block)
        _ary << @result if _tmp
        break unless _tmp
      end
      _tmp = true
      @result = _ary
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  RDoc::Markup::Document.new(*a.compact) ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Doc unless _tmp
    return _tmp
  end

  # Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)
  def _Block

    _save = self.pos
    while true # sequence
      while true
        _tmp = _BlankLine()
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end

      _save2 = self.pos
      while true # choice
        _tmp = apply(:_BlockQuote)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_Verbatim)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_CodeFence)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_Note)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_Reference)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_HorizontalRule)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_Heading)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_OrderedList)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_BulletList)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_DefinitionList)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_HtmlBlock)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_StyleBlock)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_Para)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_Plain)
        break if _tmp
        self.pos = _save2
        break
      end # end choice

      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Block unless _tmp
    return _tmp
  end

  # Para = @NonindentSpace Inlines:a @BlankLine+ { paragraph a }
  def _Para

    _save = self.pos
    while true # sequence
      _tmp = _NonindentSpace()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Inlines)
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = _BlankLine()
      if _tmp
        while true
          _tmp = _BlankLine()
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  paragraph a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Para unless _tmp
    return _tmp
  end

  # Plain = Inlines:a { paragraph a }
  def _Plain

    _save = self.pos
    while true # sequence
      _tmp = apply(:_Inlines)
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  paragraph a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Plain unless _tmp
    return _tmp
  end

  # AtxInline = !@Newline !(@Sp? /#*/ @Sp @Newline) Inline
  def _AtxInline

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = _Newline()
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos

      _save3 = self.pos
      while true # sequence
        _save4 = self.pos
        _tmp = _Sp()
        unless _tmp
          _tmp = true
          self.pos = _save4
        end
        unless _tmp
          self.pos = _save3
          break
        end
        _tmp = scan(/\A(?-mix:#*)/)
        unless _tmp
          self.pos = _save3
          break
        end
        _tmp = _Sp()
        unless _tmp
          self.pos = _save3
          break
        end
        _tmp = _Newline()
        unless _tmp
          self.pos = _save3
        end
        break
      end # end sequence

      _tmp = _tmp ? nil : true
      self.pos = _save2
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Inline)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_AtxInline unless _tmp
    return _tmp
  end

  # AtxStart = < /\#{1,6}/ > { text.length }
  def _AtxStart

    _save = self.pos
    while true # sequence
      _text_start = self.pos
      _tmp = scan(/\A(?-mix:\#{1,6})/)
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  text.length ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_AtxStart unless _tmp
    return _tmp
  end

  # AtxHeading = AtxStart:s @Sp? AtxInline+:a (@Sp? /#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }
  def _AtxHeading

    _save = self.pos
    while true # sequence
      _tmp = apply(:_AtxStart)
      s = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = _Sp()
      unless _tmp
        _tmp = true
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _ary = []
      _tmp = apply(:_AtxInline)
      if _tmp
        _ary << @result
        while true
          _tmp = apply(:_AtxInline)
          _ary << @result if _tmp
          break unless _tmp
        end
        _tmp = true
        @result = _ary
      else
        self.pos = _save2
      end
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save3 = self.pos

      _save4 = self.pos
      while true # sequence
        _save5 = self.pos
        _tmp = _Sp()
        unless _tmp
          _tmp = true
          self.pos = _save5
        end
        unless _tmp
          self.pos = _save4
          break
        end
        _tmp = scan(/\A(?-mix:#*)/)
        unless _tmp
          self.pos = _save4
          break
        end
        _tmp = _Sp()
        unless _tmp
          self.pos = _save4
        end
        break
      end # end sequence

      unless _tmp
        _tmp = true
        self.pos = _save3
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Newline()
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  RDoc::Markup::Heading.new(s, a.join) ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_AtxHeading unless _tmp
    return _tmp
  end

  # SetextHeading = (SetextHeading1 | SetextHeading2)
  def _SetextHeading

    _save = self.pos
    while true # choice
      _tmp = apply(:_SetextHeading1)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_SetextHeading2)
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_SetextHeading unless _tmp
    return _tmp
  end

  # SetextBottom1 = /={3,}/ @Newline
  def _SetextBottom1

    _save = self.pos
    while true # sequence
      _tmp = scan(/\A(?-mix:={3,})/)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Newline()
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_SetextBottom1 unless _tmp
    return _tmp
  end

  # SetextBottom2 = /-{3,}/ @Newline
  def _SetextBottom2

    _save = self.pos
    while true # sequence
      _tmp = scan(/\A(?-mix:-{3,})/)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Newline()
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_SetextBottom2 unless _tmp
    return _tmp
  end

  # SetextHeading1 = &(@RawLine SetextBottom1) @StartList:a (!@Endline Inline:b { a << b })+ @Sp? @Newline SetextBottom1 { RDoc::Markup::Heading.new(1, a.join) }
  def _SetextHeading1

    _save = self.pos
    while true # sequence
      _save1 = self.pos

      _save2 = self.pos
      while true # sequence
        _tmp = _RawLine()
        unless _tmp
          self.pos = _save2
          break
        end
        _tmp = apply(:_SetextBottom1)
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence

      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save3 = self.pos

      _save4 = self.pos
      while true # sequence
        _save5 = self.pos
        _tmp = _Endline()
        _tmp = _tmp ? nil : true
        self.pos = _save5
        unless _tmp
          self.pos = _save4
          break
        end
        _tmp = apply(:_Inline)
        b = @result
        unless _tmp
          self.pos = _save4
          break
        end
        @result = begin;  a << b ; end
        _tmp = true
        unless _tmp
          self.pos = _save4
        end
        break
      end # end sequence

      if _tmp
        while true

          _save6 = self.pos
          while true # sequence
            _save7 = self.pos
            _tmp = _Endline()
            _tmp = _tmp ? nil : true
            self.pos = _save7
            unless _tmp
              self.pos = _save6
              break
            end
            _tmp = apply(:_Inline)
            b = @result
            unless _tmp
              self.pos = _save6
              break
            end
            @result = begin;  a << b ; end
            _tmp = true
            unless _tmp
              self.pos = _save6
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save3
      end
      unless _tmp
        self.pos = _save
        break
      end
      _save8 = self.pos
      _tmp = _Sp()
      unless _tmp
        _tmp = true
        self.pos = _save8
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Newline()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_SetextBottom1)
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  RDoc::Markup::Heading.new(1, a.join) ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_SetextHeading1 unless _tmp
    return _tmp
  end

  # SetextHeading2 = &(@RawLine SetextBottom2) @StartList:a (!@Endline Inline:b { a << b })+ @Sp? @Newline SetextBottom2 { RDoc::Markup::Heading.new(2, a.join) }
  def _SetextHeading2

    _save = self.pos
    while true # sequence
      _save1 = self.pos

      _save2 = self.pos
      while true # sequence
        _tmp = _RawLine()
        unless _tmp
          self.pos = _save2
          break
        end
        _tmp = apply(:_SetextBottom2)
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence

      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save3 = self.pos

      _save4 = self.pos
      while true # sequence
        _save5 = self.pos
        _tmp = _Endline()
        _tmp = _tmp ? nil : true
        self.pos = _save5
        unless _tmp
          self.pos = _save4
          break
        end
        _tmp = apply(:_Inline)
        b = @result
        unless _tmp
          self.pos = _save4
          break
        end
        @result = begin;  a << b ; end
        _tmp = true
        unless _tmp
          self.pos = _save4
        end
        break
      end # end sequence

      if _tmp
        while true

          _save6 = self.pos
          while true # sequence
            _save7 = self.pos
            _tmp = _Endline()
            _tmp = _tmp ? nil : true
            self.pos = _save7
            unless _tmp
              self.pos = _save6
              break
            end
            _tmp = apply(:_Inline)
            b = @result
            unless _tmp
              self.pos = _save6
              break
            end
            @result = begin;  a << b ; end
            _tmp = true
            unless _tmp
              self.pos = _save6
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save3
      end
      unless _tmp
        self.pos = _save
        break
      end
      _save8 = self.pos
      _tmp = _Sp()
      unless _tmp
        _tmp = true
        self.pos = _save8
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Newline()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_SetextBottom2)
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  RDoc::Markup::Heading.new(2, a.join) ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_SetextHeading2 unless _tmp
    return _tmp
  end

  # Heading = (SetextHeading | AtxHeading)
  def _Heading

    _save = self.pos
    while true # choice
      _tmp = apply(:_SetextHeading)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_AtxHeading)
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_Heading unless _tmp
    return _tmp
  end

  # BlockQuote = BlockQuoteRaw:a { RDoc::Markup::BlockQuote.new(*a) }
  def _BlockQuote

    _save = self.pos
    while true # sequence
      _tmp = apply(:_BlockQuoteRaw)
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  RDoc::Markup::BlockQuote.new(*a) ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_BlockQuote unless _tmp
    return _tmp
  end

  # BlockQuoteRaw = @StartList:a (">" " "? Line:l { a << l } (!">" !@BlankLine Line:c { a << c })* (@BlankLine:n { a << n })*)+ { inner_parse a.join }
  def _BlockQuoteRaw

    _save = self.pos
    while true # sequence
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos

      _save2 = self.pos
      while true # sequence
        _tmp = match_string(">")
        unless _tmp
          self.pos = _save2
          break
        end
        _save3 = self.pos
        _tmp = match_string(" ")
        unless _tmp
          _tmp = true
          self.pos = _save3
        end
        unless _tmp
          self.pos = _save2
          break
        end
        _tmp = apply(:_Line)
        l = @result
        unless _tmp
          self.pos = _save2
          break
        end
        @result = begin;  a << l ; end
        _tmp = true
        unless _tmp
          self.pos = _save2
          break
        end
        while true

          _save5 = self.pos
          while true # sequence
            _save6 = self.pos
            _tmp = match_string(">")
            _tmp = _tmp ? nil : true
            self.pos = _save6
            unless _tmp
              self.pos = _save5
              break
            end
            _save7 = self.pos
            _tmp = _BlankLine()
            _tmp = _tmp ? nil : true
            self.pos = _save7
            unless _tmp
              self.pos = _save5
              break
            end
            _tmp = apply(:_Line)
            c = @result
            unless _tmp
              self.pos = _save5
              break
            end
            @result = begin;  a << c ; end
            _tmp = true
            unless _tmp
              self.pos = _save5
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
        unless _tmp
          self.pos = _save2
          break
        end
        while true

          _save9 = self.pos
          while true # sequence
            _tmp = _BlankLine()
            n = @result
            unless _tmp
              self.pos = _save9
              break
            end
            @result = begin;  a << n ; end
            _tmp = true
            unless _tmp
              self.pos = _save9
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence

      if _tmp
        while true

          _save10 = self.pos
          while true # sequence
            _tmp = match_string(">")
            unless _tmp
              self.pos = _save10
              break
            end
            _save11 = self.pos
            _tmp = match_string(" ")
            unless _tmp
              _tmp = true
              self.pos = _save11
            end
            unless _tmp
              self.pos = _save10
              break
            end
            _tmp = apply(:_Line)
            l = @result
            unless _tmp
              self.pos = _save10
              break
            end
            @result = begin;  a << l ; end
            _tmp = true
            unless _tmp
              self.pos = _save10
              break
            end
            while true

              _save13 = self.pos
              while true # sequence
                _save14 = self.pos
                _tmp = match_string(">")
                _tmp = _tmp ? nil : true
                self.pos = _save14
                unless _tmp
                  self.pos = _save13
                  break
                end
                _save15 = self.pos
                _tmp = _BlankLine()
                _tmp = _tmp ? nil : true
                self.pos = _save15
                unless _tmp
                  self.pos = _save13
                  break
                end
                _tmp = apply(:_Line)
                c = @result
                unless _tmp
                  self.pos = _save13
                  break
                end
                @result = begin;  a << c ; end
                _tmp = true
                unless _tmp
                  self.pos = _save13
                end
                break
              end # end sequence

              break unless _tmp
            end
            _tmp = true
            unless _tmp
              self.pos = _save10
              break
            end
            while true

              _save17 = self.pos
              while true # sequence
                _tmp = _BlankLine()
                n = @result
                unless _tmp
                  self.pos = _save17
                  break
                end
                @result = begin;  a << n ; end
                _tmp = true
                unless _tmp
                  self.pos = _save17
                end
                break
              end # end sequence

              break unless _tmp
            end
            _tmp = true
            unless _tmp
              self.pos = _save10
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  inner_parse a.join ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_BlockQuoteRaw unless _tmp
    return _tmp
  end

  # NonblankIndentedLine = !@BlankLine IndentedLine
  def _NonblankIndentedLine

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = _BlankLine()
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_IndentedLine)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_NonblankIndentedLine unless _tmp
    return _tmp
  end

  # VerbatimChunk = @BlankLine*:a NonblankIndentedLine+:b { a.concat b }
  def _VerbatimChunk

    _save = self.pos
    while true # sequence
      _ary = []
      while true
        _tmp = _BlankLine()
        _ary << @result if _tmp
        break unless _tmp
      end
      _tmp = true
      @result = _ary
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _ary = []
      _tmp = apply(:_NonblankIndentedLine)
      if _tmp
        _ary << @result
        while true
          _tmp = apply(:_NonblankIndentedLine)
          _ary << @result if _tmp
          break unless _tmp
        end
        _tmp = true
        @result = _ary
      else
        self.pos = _save2
      end
      b = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a.concat b ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_VerbatimChunk unless _tmp
    return _tmp
  end

  # Verbatim = VerbatimChunk+:a { RDoc::Markup::Verbatim.new(*a.flatten) }
  def _Verbatim

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _ary = []
      _tmp = apply(:_VerbatimChunk)
      if _tmp
        _ary << @result
        while true
          _tmp = apply(:_VerbatimChunk)
          _ary << @result if _tmp
          break unless _tmp
        end
        _tmp = true
        @result = _ary
      else
        self.pos = _save1
      end
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  RDoc::Markup::Verbatim.new(*a.flatten) ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Verbatim unless _tmp
    return _tmp
  end

  # HorizontalRule = @NonindentSpace ("*" @Sp "*" @Sp "*" (@Sp "*")* | "-" @Sp "-" @Sp "-" (@Sp "-")* | "_" @Sp "_" @Sp "_" (@Sp "_")*) @Sp @Newline @BlankLine+ { RDoc::Markup::Rule.new 1 }
  def _HorizontalRule

    _save = self.pos
    while true # sequence
      _tmp = _NonindentSpace()
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice

        _save2 = self.pos
        while true # sequence
          _tmp = match_string("*")
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = match_string("*")
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = match_string("*")
          unless _tmp
            self.pos = _save2
            break
          end
          while true

            _save4 = self.pos
            while true # sequence
              _tmp = _Sp()
              unless _tmp
                self.pos = _save4
                break
              end
              _tmp = match_string("*")
              unless _tmp
                self.pos = _save4
              end
              break
            end # end sequence

            break unless _tmp
          end
          _tmp = true
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save1

        _save5 = self.pos
        while true # sequence
          _tmp = match_string("-")
          unless _tmp
            self.pos = _save5
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save5
            break
          end
          _tmp = match_string("-")
          unless _tmp
            self.pos = _save5
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save5
            break
          end
          _tmp = match_string("-")
          unless _tmp
            self.pos = _save5
            break
          end
          while true

            _save7 = self.pos
            while true # sequence
              _tmp = _Sp()
              unless _tmp
                self.pos = _save7
                break
              end
              _tmp = match_string("-")
              unless _tmp
                self.pos = _save7
              end
              break
            end # end sequence

            break unless _tmp
          end
          _tmp = true
          unless _tmp
            self.pos = _save5
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save1

        _save8 = self.pos
        while true # sequence
          _tmp = match_string("_")
          unless _tmp
            self.pos = _save8
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save8
            break
          end
          _tmp = match_string("_")
          unless _tmp
            self.pos = _save8
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save8
            break
          end
          _tmp = match_string("_")
          unless _tmp
            self.pos = _save8
            break
          end
          while true

            _save10 = self.pos
            while true # sequence
              _tmp = _Sp()
              unless _tmp
                self.pos = _save10
                break
              end
              _tmp = match_string("_")
              unless _tmp
                self.pos = _save10
              end
              break
            end # end sequence

            break unless _tmp
          end
          _tmp = true
          unless _tmp
            self.pos = _save8
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Sp()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Newline()
      unless _tmp
        self.pos = _save
        break
      end
      _save11 = self.pos
      _tmp = _BlankLine()
      if _tmp
        while true
          _tmp = _BlankLine()
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save11
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  RDoc::Markup::Rule.new 1 ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HorizontalRule unless _tmp
    return _tmp
  end

  # Bullet = !HorizontalRule @NonindentSpace /[+*-]/ @Spacechar+
  def _Bullet

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = apply(:_HorizontalRule)
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _NonindentSpace()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = scan(/\A(?-mix:[+*-])/)
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = _Spacechar()
      if _tmp
        while true
          _tmp = _Spacechar()
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save2
      end
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Bullet unless _tmp
    return _tmp
  end

  # BulletList = &Bullet (ListTight | ListLoose):a { RDoc::Markup::List.new(:BULLET, *a) }
  def _BulletList

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = apply(:_Bullet)
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end

      _save2 = self.pos
      while true # choice
        _tmp = apply(:_ListTight)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_ListLoose)
        break if _tmp
        self.pos = _save2
        break
      end # end choice

      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  RDoc::Markup::List.new(:BULLET, *a) ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_BulletList unless _tmp
    return _tmp
  end

  # ListTight = ListItemTight+:a @BlankLine* !(Bullet | Enumerator) { a }
  def _ListTight

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _ary = []
      _tmp = apply(:_ListItemTight)
      if _tmp
        _ary << @result
        while true
          _tmp = apply(:_ListItemTight)
          _ary << @result if _tmp
          break unless _tmp
        end
        _tmp = true
        @result = _ary
      else
        self.pos = _save1
      end
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = _BlankLine()
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _save3 = self.pos

      _save4 = self.pos
      while true # choice
        _tmp = apply(:_Bullet)
        break if _tmp
        self.pos = _save4
        _tmp = apply(:_Enumerator)
        break if _tmp
        self.pos = _save4
        break
      end # end choice

      _tmp = _tmp ? nil : true
      self.pos = _save3
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_ListTight unless _tmp
    return _tmp
  end

  # ListLoose = @StartList:a (ListItem:b @BlankLine* { a << b })+ { a }
  def _ListLoose

    _save = self.pos
    while true # sequence
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos

      _save2 = self.pos
      while true # sequence
        _tmp = apply(:_ListItem)
        b = @result
        unless _tmp
          self.pos = _save2
          break
        end
        while true
          _tmp = _BlankLine()
          break unless _tmp
        end
        _tmp = true
        unless _tmp
          self.pos = _save2
          break
        end
        @result = begin;  a << b ; end
        _tmp = true
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence

      if _tmp
        while true

          _save4 = self.pos
          while true # sequence
            _tmp = apply(:_ListItem)
            b = @result
            unless _tmp
              self.pos = _save4
              break
            end
            while true
              _tmp = _BlankLine()
              break unless _tmp
            end
            _tmp = true
            unless _tmp
              self.pos = _save4
              break
            end
            @result = begin;  a << b ; end
            _tmp = true
            unless _tmp
              self.pos = _save4
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_ListLoose unless _tmp
    return _tmp
  end

  # ListItem = (Bullet | Enumerator) @StartList:a ListBlock:b { a << b } (ListContinuationBlock:c { a.push(*c) })* { list_item_from a }
  def _ListItem

    _save = self.pos
    while true # sequence

      _save1 = self.pos
      while true # choice
        _tmp = apply(:_Bullet)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_Enumerator)
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_ListBlock)
      b = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a << b ; end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save3 = self.pos
        while true # sequence
          _tmp = apply(:_ListContinuationBlock)
          c = @result
          unless _tmp
            self.pos = _save3
            break
          end
          @result = begin;  a.push(*c) ; end
          _tmp = true
          unless _tmp
            self.pos = _save3
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  list_item_from a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_ListItem unless _tmp
    return _tmp
  end

  # ListItemTight = (Bullet | Enumerator) ListBlock:a (!@BlankLine ListContinuationBlock:b { a.push(*b) })* !ListContinuationBlock { list_item_from a }
  def _ListItemTight

    _save = self.pos
    while true # sequence

      _save1 = self.pos
      while true # choice
        _tmp = apply(:_Bullet)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_Enumerator)
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_ListBlock)
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save3 = self.pos
        while true # sequence
          _save4 = self.pos
          _tmp = _BlankLine()
          _tmp = _tmp ? nil : true
          self.pos = _save4
          unless _tmp
            self.pos = _save3
            break
          end
          _tmp = apply(:_ListContinuationBlock)
          b = @result
          unless _tmp
            self.pos = _save3
            break
          end
          @result = begin;  a.push(*b) ; end
          _tmp = true
          unless _tmp
            self.pos = _save3
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _save5 = self.pos
      _tmp = apply(:_ListContinuationBlock)
      _tmp = _tmp ? nil : true
      self.pos = _save5
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  list_item_from a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_ListItemTight unless _tmp
    return _tmp
  end

  # ListBlock = !@BlankLine Line:a ListBlockLine*:c { [a, *c] }
  def _ListBlock

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = _BlankLine()
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Line)
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _ary = []
      while true
        _tmp = apply(:_ListBlockLine)
        _ary << @result if _tmp
        break unless _tmp
      end
      _tmp = true
      @result = _ary
      c = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  [a, *c] ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_ListBlock unless _tmp
    return _tmp
  end

  # ListContinuationBlock = @StartList:a @BlankLine* { a << "\n" } (Indent ListBlock:b { a.concat b })+ { a }
  def _ListContinuationBlock

    _save = self.pos
    while true # sequence
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = _BlankLine()
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a << "\n" ; end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos

      _save3 = self.pos
      while true # sequence
        _tmp = apply(:_Indent)
        unless _tmp
          self.pos = _save3
          break
        end
        _tmp = apply(:_ListBlock)
        b = @result
        unless _tmp
          self.pos = _save3
          break
        end
        @result = begin;  a.concat b ; end
        _tmp = true
        unless _tmp
          self.pos = _save3
        end
        break
      end # end sequence

      if _tmp
        while true

          _save4 = self.pos
          while true # sequence
            _tmp = apply(:_Indent)
            unless _tmp
              self.pos = _save4
              break
            end
            _tmp = apply(:_ListBlock)
            b = @result
            unless _tmp
              self.pos = _save4
              break
            end
            @result = begin;  a.concat b ; end
            _tmp = true
            unless _tmp
              self.pos = _save4
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save2
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_ListContinuationBlock unless _tmp
    return _tmp
  end

  # Enumerator = @NonindentSpace [0-9]+ "." @Spacechar+
  def _Enumerator

    _save = self.pos
    while true # sequence
      _tmp = _NonindentSpace()
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _save2 = self.pos
      _tmp = get_byte
      if _tmp
        unless _tmp >= 48 and _tmp <= 57
          self.pos = _save2
          _tmp = nil
        end
      end
      if _tmp
        while true
          _save3 = self.pos
          _tmp = get_byte
          if _tmp
            unless _tmp >= 48 and _tmp <= 57
              self.pos = _save3
              _tmp = nil
            end
          end
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(".")
      unless _tmp
        self.pos = _save
        break
      end
      _save4 = self.pos
      _tmp = _Spacechar()
      if _tmp
        while true
          _tmp = _Spacechar()
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save4
      end
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Enumerator unless _tmp
    return _tmp
  end

  # OrderedList = &Enumerator (ListTight | ListLoose):a { RDoc::Markup::List.new(:NUMBER, *a) }
  def _OrderedList

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = apply(:_Enumerator)
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end

      _save2 = self.pos
      while true # choice
        _tmp = apply(:_ListTight)
        break if _tmp
        self.pos = _save2
        _tmp = apply(:_ListLoose)
        break if _tmp
        self.pos = _save2
        break
      end # end choice

      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  RDoc::Markup::List.new(:NUMBER, *a) ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_OrderedList unless _tmp
    return _tmp
  end

  # ListBlockLine = !@BlankLine !(Indent? (Bullet | Enumerator)) !HorizontalRule OptionallyIndentedLine
  def _ListBlockLine

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = _BlankLine()
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos

      _save3 = self.pos
      while true # sequence
        _save4 = self.pos
        _tmp = apply(:_Indent)
        unless _tmp
          _tmp = true
          self.pos = _save4
        end
        unless _tmp
          self.pos = _save3
          break
        end

        _save5 = self.pos
        while true # choice
          _tmp = apply(:_Bullet)
          break if _tmp
          self.pos = _save5
          _tmp = apply(:_Enumerator)
          break if _tmp
          self.pos = _save5
          break
        end # end choice

        unless _tmp
          self.pos = _save3
        end
        break
      end # end sequence

      _tmp = _tmp ? nil : true
      self.pos = _save2
      unless _tmp
        self.pos = _save
        break
      end
      _save6 = self.pos
      _tmp = apply(:_HorizontalRule)
      _tmp = _tmp ? nil : true
      self.pos = _save6
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_OptionallyIndentedLine)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_ListBlockLine unless _tmp
    return _tmp
  end

  # HtmlOpenAnchor = "<" Spnl ("a" | "A") Spnl HtmlAttribute* ">"
  def _HtmlOpenAnchor

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("a")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("A")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlOpenAnchor unless _tmp
    return _tmp
  end

  # HtmlCloseAnchor = "<" Spnl "/" ("a" | "A") Spnl ">"
  def _HtmlCloseAnchor

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("a")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("A")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlCloseAnchor unless _tmp
    return _tmp
  end

  # HtmlAnchor = HtmlOpenAnchor (HtmlAnchor | !HtmlCloseAnchor .)* HtmlCloseAnchor
  def _HtmlAnchor

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlOpenAnchor)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlAnchor)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlCloseAnchor)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlCloseAnchor)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlAnchor unless _tmp
    return _tmp
  end

  # HtmlBlockOpenAddress = "<" Spnl ("address" | "ADDRESS") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenAddress

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("address")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("ADDRESS")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenAddress unless _tmp
    return _tmp
  end

  # HtmlBlockCloseAddress = "<" Spnl "/" ("address" | "ADDRESS") Spnl ">"
  def _HtmlBlockCloseAddress

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("address")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("ADDRESS")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseAddress unless _tmp
    return _tmp
  end

  # HtmlBlockAddress = HtmlBlockOpenAddress (HtmlBlockAddress | !HtmlBlockCloseAddress .)* HtmlBlockCloseAddress
  def _HtmlBlockAddress

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenAddress)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockAddress)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseAddress)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseAddress)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockAddress unless _tmp
    return _tmp
  end

  # HtmlBlockOpenBlockquote = "<" Spnl ("blockquote" | "BLOCKQUOTE") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenBlockquote

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("blockquote")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("BLOCKQUOTE")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenBlockquote unless _tmp
    return _tmp
  end

  # HtmlBlockCloseBlockquote = "<" Spnl "/" ("blockquote" | "BLOCKQUOTE") Spnl ">"
  def _HtmlBlockCloseBlockquote

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("blockquote")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("BLOCKQUOTE")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseBlockquote unless _tmp
    return _tmp
  end

  # HtmlBlockBlockquote = HtmlBlockOpenBlockquote (HtmlBlockBlockquote | !HtmlBlockCloseBlockquote .)* HtmlBlockCloseBlockquote
  def _HtmlBlockBlockquote

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenBlockquote)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockBlockquote)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseBlockquote)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseBlockquote)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockBlockquote unless _tmp
    return _tmp
  end

  # HtmlBlockOpenCenter = "<" Spnl ("center" | "CENTER") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenCenter

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("center")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("CENTER")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenCenter unless _tmp
    return _tmp
  end

  # HtmlBlockCloseCenter = "<" Spnl "/" ("center" | "CENTER") Spnl ">"
  def _HtmlBlockCloseCenter

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("center")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("CENTER")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseCenter unless _tmp
    return _tmp
  end

  # HtmlBlockCenter = HtmlBlockOpenCenter (HtmlBlockCenter | !HtmlBlockCloseCenter .)* HtmlBlockCloseCenter
  def _HtmlBlockCenter

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenCenter)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockCenter)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseCenter)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseCenter)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCenter unless _tmp
    return _tmp
  end

  # HtmlBlockOpenDir = "<" Spnl ("dir" | "DIR") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenDir

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("dir")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("DIR")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenDir unless _tmp
    return _tmp
  end

  # HtmlBlockCloseDir = "<" Spnl "/" ("dir" | "DIR") Spnl ">"
  def _HtmlBlockCloseDir

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("dir")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("DIR")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseDir unless _tmp
    return _tmp
  end

  # HtmlBlockDir = HtmlBlockOpenDir (HtmlBlockDir | !HtmlBlockCloseDir .)* HtmlBlockCloseDir
  def _HtmlBlockDir

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenDir)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockDir)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseDir)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseDir)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockDir unless _tmp
    return _tmp
  end

  # HtmlBlockOpenDiv = "<" Spnl ("div" | "DIV") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenDiv

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("div")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("DIV")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenDiv unless _tmp
    return _tmp
  end

  # HtmlBlockCloseDiv = "<" Spnl "/" ("div" | "DIV") Spnl ">"
  def _HtmlBlockCloseDiv

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("div")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("DIV")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseDiv unless _tmp
    return _tmp
  end

  # HtmlBlockDiv = HtmlBlockOpenDiv (HtmlBlockDiv | !HtmlBlockCloseDiv .)* HtmlBlockCloseDiv
  def _HtmlBlockDiv

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenDiv)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockDiv)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseDiv)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseDiv)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockDiv unless _tmp
    return _tmp
  end

  # HtmlBlockOpenDl = "<" Spnl ("dl" | "DL") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenDl

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("dl")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("DL")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenDl unless _tmp
    return _tmp
  end

  # HtmlBlockCloseDl = "<" Spnl "/" ("dl" | "DL") Spnl ">"
  def _HtmlBlockCloseDl

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("dl")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("DL")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseDl unless _tmp
    return _tmp
  end

  # HtmlBlockDl = HtmlBlockOpenDl (HtmlBlockDl | !HtmlBlockCloseDl .)* HtmlBlockCloseDl
  def _HtmlBlockDl

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenDl)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockDl)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseDl)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseDl)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockDl unless _tmp
    return _tmp
  end

  # HtmlBlockOpenFieldset = "<" Spnl ("fieldset" | "FIELDSET") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenFieldset

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("fieldset")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("FIELDSET")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenFieldset unless _tmp
    return _tmp
  end

  # HtmlBlockCloseFieldset = "<" Spnl "/" ("fieldset" | "FIELDSET") Spnl ">"
  def _HtmlBlockCloseFieldset

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("fieldset")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("FIELDSET")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseFieldset unless _tmp
    return _tmp
  end

  # HtmlBlockFieldset = HtmlBlockOpenFieldset (HtmlBlockFieldset | !HtmlBlockCloseFieldset .)* HtmlBlockCloseFieldset
  def _HtmlBlockFieldset

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenFieldset)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockFieldset)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseFieldset)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseFieldset)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockFieldset unless _tmp
    return _tmp
  end

  # HtmlBlockOpenForm = "<" Spnl ("form" | "FORM") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenForm

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("form")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("FORM")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenForm unless _tmp
    return _tmp
  end

  # HtmlBlockCloseForm = "<" Spnl "/" ("form" | "FORM") Spnl ">"
  def _HtmlBlockCloseForm

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("form")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("FORM")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseForm unless _tmp
    return _tmp
  end

  # HtmlBlockForm = HtmlBlockOpenForm (HtmlBlockForm | !HtmlBlockCloseForm .)* HtmlBlockCloseForm
  def _HtmlBlockForm

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenForm)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockForm)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseForm)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseForm)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockForm unless _tmp
    return _tmp
  end

  # HtmlBlockOpenH1 = "<" Spnl ("h1" | "H1") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenH1

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("h1")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("H1")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenH1 unless _tmp
    return _tmp
  end

  # HtmlBlockCloseH1 = "<" Spnl "/" ("h1" | "H1") Spnl ">"
  def _HtmlBlockCloseH1

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("h1")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("H1")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseH1 unless _tmp
    return _tmp
  end

  # HtmlBlockH1 = HtmlBlockOpenH1 (HtmlBlockH1 | !HtmlBlockCloseH1 .)* HtmlBlockCloseH1
  def _HtmlBlockH1

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenH1)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockH1)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseH1)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseH1)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockH1 unless _tmp
    return _tmp
  end

  # HtmlBlockOpenH2 = "<" Spnl ("h2" | "H2") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenH2

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("h2")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("H2")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenH2 unless _tmp
    return _tmp
  end

  # HtmlBlockCloseH2 = "<" Spnl "/" ("h2" | "H2") Spnl ">"
  def _HtmlBlockCloseH2

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("h2")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("H2")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseH2 unless _tmp
    return _tmp
  end

  # HtmlBlockH2 = HtmlBlockOpenH2 (HtmlBlockH2 | !HtmlBlockCloseH2 .)* HtmlBlockCloseH2
  def _HtmlBlockH2

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenH2)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockH2)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseH2)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseH2)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockH2 unless _tmp
    return _tmp
  end

  # HtmlBlockOpenH3 = "<" Spnl ("h3" | "H3") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenH3

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("h3")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("H3")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenH3 unless _tmp
    return _tmp
  end

  # HtmlBlockCloseH3 = "<" Spnl "/" ("h3" | "H3") Spnl ">"
  def _HtmlBlockCloseH3

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("h3")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("H3")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseH3 unless _tmp
    return _tmp
  end

  # HtmlBlockH3 = HtmlBlockOpenH3 (HtmlBlockH3 | !HtmlBlockCloseH3 .)* HtmlBlockCloseH3
  def _HtmlBlockH3

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenH3)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockH3)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseH3)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseH3)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockH3 unless _tmp
    return _tmp
  end

  # HtmlBlockOpenH4 = "<" Spnl ("h4" | "H4") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenH4

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("h4")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("H4")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenH4 unless _tmp
    return _tmp
  end

  # HtmlBlockCloseH4 = "<" Spnl "/" ("h4" | "H4") Spnl ">"
  def _HtmlBlockCloseH4

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("h4")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("H4")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseH4 unless _tmp
    return _tmp
  end

  # HtmlBlockH4 = HtmlBlockOpenH4 (HtmlBlockH4 | !HtmlBlockCloseH4 .)* HtmlBlockCloseH4
  def _HtmlBlockH4

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenH4)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockH4)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseH4)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseH4)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockH4 unless _tmp
    return _tmp
  end

  # HtmlBlockOpenH5 = "<" Spnl ("h5" | "H5") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenH5

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("h5")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("H5")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenH5 unless _tmp
    return _tmp
  end

  # HtmlBlockCloseH5 = "<" Spnl "/" ("h5" | "H5") Spnl ">"
  def _HtmlBlockCloseH5

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("h5")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("H5")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseH5 unless _tmp
    return _tmp
  end

  # HtmlBlockH5 = HtmlBlockOpenH5 (HtmlBlockH5 | !HtmlBlockCloseH5 .)* HtmlBlockCloseH5
  def _HtmlBlockH5

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenH5)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockH5)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseH5)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseH5)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockH5 unless _tmp
    return _tmp
  end

  # HtmlBlockOpenH6 = "<" Spnl ("h6" | "H6") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenH6

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("h6")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("H6")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenH6 unless _tmp
    return _tmp
  end

  # HtmlBlockCloseH6 = "<" Spnl "/" ("h6" | "H6") Spnl ">"
  def _HtmlBlockCloseH6

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("h6")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("H6")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseH6 unless _tmp
    return _tmp
  end

  # HtmlBlockH6 = HtmlBlockOpenH6 (HtmlBlockH6 | !HtmlBlockCloseH6 .)* HtmlBlockCloseH6
  def _HtmlBlockH6

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenH6)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockH6)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseH6)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseH6)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockH6 unless _tmp
    return _tmp
  end

  # HtmlBlockOpenMenu = "<" Spnl ("menu" | "MENU") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenMenu

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("menu")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("MENU")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenMenu unless _tmp
    return _tmp
  end

  # HtmlBlockCloseMenu = "<" Spnl "/" ("menu" | "MENU") Spnl ">"
  def _HtmlBlockCloseMenu

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("menu")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("MENU")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseMenu unless _tmp
    return _tmp
  end

  # HtmlBlockMenu = HtmlBlockOpenMenu (HtmlBlockMenu | !HtmlBlockCloseMenu .)* HtmlBlockCloseMenu
  def _HtmlBlockMenu

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenMenu)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockMenu)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseMenu)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseMenu)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockMenu unless _tmp
    return _tmp
  end

  # HtmlBlockOpenNoframes = "<" Spnl ("noframes" | "NOFRAMES") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenNoframes

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("noframes")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("NOFRAMES")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenNoframes unless _tmp
    return _tmp
  end

  # HtmlBlockCloseNoframes = "<" Spnl "/" ("noframes" | "NOFRAMES") Spnl ">"
  def _HtmlBlockCloseNoframes

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("noframes")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("NOFRAMES")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseNoframes unless _tmp
    return _tmp
  end

  # HtmlBlockNoframes = HtmlBlockOpenNoframes (HtmlBlockNoframes | !HtmlBlockCloseNoframes .)* HtmlBlockCloseNoframes
  def _HtmlBlockNoframes

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenNoframes)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockNoframes)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseNoframes)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseNoframes)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockNoframes unless _tmp
    return _tmp
  end

  # HtmlBlockOpenNoscript = "<" Spnl ("noscript" | "NOSCRIPT") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenNoscript

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("noscript")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("NOSCRIPT")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenNoscript unless _tmp
    return _tmp
  end

  # HtmlBlockCloseNoscript = "<" Spnl "/" ("noscript" | "NOSCRIPT") Spnl ">"
  def _HtmlBlockCloseNoscript

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("noscript")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("NOSCRIPT")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseNoscript unless _tmp
    return _tmp
  end

  # HtmlBlockNoscript = HtmlBlockOpenNoscript (HtmlBlockNoscript | !HtmlBlockCloseNoscript .)* HtmlBlockCloseNoscript
  def _HtmlBlockNoscript

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenNoscript)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockNoscript)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseNoscript)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseNoscript)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockNoscript unless _tmp
    return _tmp
  end

  # HtmlBlockOpenOl = "<" Spnl ("ol" | "OL") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenOl

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("ol")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("OL")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenOl unless _tmp
    return _tmp
  end

  # HtmlBlockCloseOl = "<" Spnl "/" ("ol" | "OL") Spnl ">"
  def _HtmlBlockCloseOl

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("ol")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("OL")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseOl unless _tmp
    return _tmp
  end

  # HtmlBlockOl = HtmlBlockOpenOl (HtmlBlockOl | !HtmlBlockCloseOl .)* HtmlBlockCloseOl
  def _HtmlBlockOl

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenOl)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockOl)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseOl)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseOl)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOl unless _tmp
    return _tmp
  end

  # HtmlBlockOpenP = "<" Spnl ("p" | "P") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenP

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("p")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("P")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenP unless _tmp
    return _tmp
  end

  # HtmlBlockCloseP = "<" Spnl "/" ("p" | "P") Spnl ">"
  def _HtmlBlockCloseP

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("p")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("P")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseP unless _tmp
    return _tmp
  end

  # HtmlBlockP = HtmlBlockOpenP (HtmlBlockP | !HtmlBlockCloseP .)* HtmlBlockCloseP
  def _HtmlBlockP

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenP)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockP)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseP)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseP)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockP unless _tmp
    return _tmp
  end

  # HtmlBlockOpenPre = "<" Spnl ("pre" | "PRE") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenPre

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("pre")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("PRE")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenPre unless _tmp
    return _tmp
  end

  # HtmlBlockClosePre = "<" Spnl "/" ("pre" | "PRE") Spnl ">"
  def _HtmlBlockClosePre

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("pre")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("PRE")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockClosePre unless _tmp
    return _tmp
  end

  # HtmlBlockPre = HtmlBlockOpenPre (HtmlBlockPre | !HtmlBlockClosePre .)* HtmlBlockClosePre
  def _HtmlBlockPre

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenPre)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockPre)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockClosePre)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockClosePre)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockPre unless _tmp
    return _tmp
  end

  # HtmlBlockOpenTable = "<" Spnl ("table" | "TABLE") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenTable

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("table")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("TABLE")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenTable unless _tmp
    return _tmp
  end

  # HtmlBlockCloseTable = "<" Spnl "/" ("table" | "TABLE") Spnl ">"
  def _HtmlBlockCloseTable

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("table")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("TABLE")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseTable unless _tmp
    return _tmp
  end

  # HtmlBlockTable = HtmlBlockOpenTable (HtmlBlockTable | !HtmlBlockCloseTable .)* HtmlBlockCloseTable
  def _HtmlBlockTable

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenTable)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockTable)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseTable)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseTable)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockTable unless _tmp
    return _tmp
  end

  # HtmlBlockOpenUl = "<" Spnl ("ul" | "UL") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenUl

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("ul")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("UL")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenUl unless _tmp
    return _tmp
  end

  # HtmlBlockCloseUl = "<" Spnl "/" ("ul" | "UL") Spnl ">"
  def _HtmlBlockCloseUl

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("ul")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("UL")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseUl unless _tmp
    return _tmp
  end

  # HtmlBlockUl = HtmlBlockOpenUl (HtmlBlockUl | !HtmlBlockCloseUl .)* HtmlBlockCloseUl
  def _HtmlBlockUl

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenUl)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockUl)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseUl)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseUl)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockUl unless _tmp
    return _tmp
  end

  # HtmlBlockOpenDd = "<" Spnl ("dd" | "DD") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenDd

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("dd")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("DD")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenDd unless _tmp
    return _tmp
  end

  # HtmlBlockCloseDd = "<" Spnl "/" ("dd" | "DD") Spnl ">"
  def _HtmlBlockCloseDd

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("dd")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("DD")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseDd unless _tmp
    return _tmp
  end

  # HtmlBlockDd = HtmlBlockOpenDd (HtmlBlockDd | !HtmlBlockCloseDd .)* HtmlBlockCloseDd
  def _HtmlBlockDd

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenDd)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockDd)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseDd)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseDd)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockDd unless _tmp
    return _tmp
  end

  # HtmlBlockOpenDt = "<" Spnl ("dt" | "DT") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenDt

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("dt")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("DT")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenDt unless _tmp
    return _tmp
  end

  # HtmlBlockCloseDt = "<" Spnl "/" ("dt" | "DT") Spnl ">"
  def _HtmlBlockCloseDt

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("dt")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("DT")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseDt unless _tmp
    return _tmp
  end

  # HtmlBlockDt = HtmlBlockOpenDt (HtmlBlockDt | !HtmlBlockCloseDt .)* HtmlBlockCloseDt
  def _HtmlBlockDt

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenDt)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockDt)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseDt)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseDt)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockDt unless _tmp
    return _tmp
  end

  # HtmlBlockOpenFrameset = "<" Spnl ("frameset" | "FRAMESET") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenFrameset

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("frameset")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("FRAMESET")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenFrameset unless _tmp
    return _tmp
  end

  # HtmlBlockCloseFrameset = "<" Spnl "/" ("frameset" | "FRAMESET") Spnl ">"
  def _HtmlBlockCloseFrameset

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("frameset")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("FRAMESET")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseFrameset unless _tmp
    return _tmp
  end

  # HtmlBlockFrameset = HtmlBlockOpenFrameset (HtmlBlockFrameset | !HtmlBlockCloseFrameset .)* HtmlBlockCloseFrameset
  def _HtmlBlockFrameset

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenFrameset)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockFrameset)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseFrameset)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseFrameset)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockFrameset unless _tmp
    return _tmp
  end

  # HtmlBlockOpenLi = "<" Spnl ("li" | "LI") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenLi

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("li")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("LI")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenLi unless _tmp
    return _tmp
  end

  # HtmlBlockCloseLi = "<" Spnl "/" ("li" | "LI") Spnl ">"
  def _HtmlBlockCloseLi

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("li")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("LI")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseLi unless _tmp
    return _tmp
  end

  # HtmlBlockLi = HtmlBlockOpenLi (HtmlBlockLi | !HtmlBlockCloseLi .)* HtmlBlockCloseLi
  def _HtmlBlockLi

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenLi)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockLi)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseLi)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseLi)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockLi unless _tmp
    return _tmp
  end

  # HtmlBlockOpenTbody = "<" Spnl ("tbody" | "TBODY") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenTbody

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("tbody")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("TBODY")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenTbody unless _tmp
    return _tmp
  end

  # HtmlBlockCloseTbody = "<" Spnl "/" ("tbody" | "TBODY") Spnl ">"
  def _HtmlBlockCloseTbody

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("tbody")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("TBODY")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseTbody unless _tmp
    return _tmp
  end

  # HtmlBlockTbody = HtmlBlockOpenTbody (HtmlBlockTbody | !HtmlBlockCloseTbody .)* HtmlBlockCloseTbody
  def _HtmlBlockTbody

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenTbody)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockTbody)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseTbody)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseTbody)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockTbody unless _tmp
    return _tmp
  end

  # HtmlBlockOpenTd = "<" Spnl ("td" | "TD") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenTd

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("td")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("TD")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenTd unless _tmp
    return _tmp
  end

  # HtmlBlockCloseTd = "<" Spnl "/" ("td" | "TD") Spnl ">"
  def _HtmlBlockCloseTd

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("td")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("TD")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseTd unless _tmp
    return _tmp
  end

  # HtmlBlockTd = HtmlBlockOpenTd (HtmlBlockTd | !HtmlBlockCloseTd .)* HtmlBlockCloseTd
  def _HtmlBlockTd

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenTd)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockTd)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseTd)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseTd)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockTd unless _tmp
    return _tmp
  end

  # HtmlBlockOpenTfoot = "<" Spnl ("tfoot" | "TFOOT") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenTfoot

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("tfoot")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("TFOOT")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenTfoot unless _tmp
    return _tmp
  end

  # HtmlBlockCloseTfoot = "<" Spnl "/" ("tfoot" | "TFOOT") Spnl ">"
  def _HtmlBlockCloseTfoot

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("tfoot")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("TFOOT")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseTfoot unless _tmp
    return _tmp
  end

  # HtmlBlockTfoot = HtmlBlockOpenTfoot (HtmlBlockTfoot | !HtmlBlockCloseTfoot .)* HtmlBlockCloseTfoot
  def _HtmlBlockTfoot

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenTfoot)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockTfoot)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseTfoot)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseTfoot)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockTfoot unless _tmp
    return _tmp
  end

  # HtmlBlockOpenTh = "<" Spnl ("th" | "TH") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenTh

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("th")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("TH")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenTh unless _tmp
    return _tmp
  end

  # HtmlBlockCloseTh = "<" Spnl "/" ("th" | "TH") Spnl ">"
  def _HtmlBlockCloseTh

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("th")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("TH")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseTh unless _tmp
    return _tmp
  end

  # HtmlBlockTh = HtmlBlockOpenTh (HtmlBlockTh | !HtmlBlockCloseTh .)* HtmlBlockCloseTh
  def _HtmlBlockTh

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenTh)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockTh)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseTh)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseTh)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockTh unless _tmp
    return _tmp
  end

  # HtmlBlockOpenThead = "<" Spnl ("thead" | "THEAD") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenThead

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("thead")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("THEAD")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenThead unless _tmp
    return _tmp
  end

  # HtmlBlockCloseThead = "<" Spnl "/" ("thead" | "THEAD") Spnl ">"
  def _HtmlBlockCloseThead

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("thead")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("THEAD")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseThead unless _tmp
    return _tmp
  end

  # HtmlBlockThead = HtmlBlockOpenThead (HtmlBlockThead | !HtmlBlockCloseThead .)* HtmlBlockCloseThead
  def _HtmlBlockThead

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenThead)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockThead)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseThead)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseThead)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockThead unless _tmp
    return _tmp
  end

  # HtmlBlockOpenTr = "<" Spnl ("tr" | "TR") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenTr

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("tr")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("TR")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenTr unless _tmp
    return _tmp
  end

  # HtmlBlockCloseTr = "<" Spnl "/" ("tr" | "TR") Spnl ">"
  def _HtmlBlockCloseTr

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("tr")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("TR")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseTr unless _tmp
    return _tmp
  end

  # HtmlBlockTr = HtmlBlockOpenTr (HtmlBlockTr | !HtmlBlockCloseTr .)* HtmlBlockCloseTr
  def _HtmlBlockTr

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenTr)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # choice
          _tmp = apply(:_HtmlBlockTr)
          break if _tmp
          self.pos = _save2

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = apply(:_HtmlBlockCloseTr)
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseTr)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockTr unless _tmp
    return _tmp
  end

  # HtmlBlockOpenScript = "<" Spnl ("script" | "SCRIPT") Spnl HtmlAttribute* ">"
  def _HtmlBlockOpenScript

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("script")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("SCRIPT")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockOpenScript unless _tmp
    return _tmp
  end

  # HtmlBlockCloseScript = "<" Spnl "/" ("script" | "SCRIPT") Spnl ">"
  def _HtmlBlockCloseScript

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("script")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("SCRIPT")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockCloseScript unless _tmp
    return _tmp
  end

  # HtmlBlockScript = HtmlBlockOpenScript (!HtmlBlockCloseScript .)* HtmlBlockCloseScript
  def _HtmlBlockScript

    _save = self.pos
    while true # sequence
      _tmp = apply(:_HtmlBlockOpenScript)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos
          _tmp = apply(:_HtmlBlockCloseScript)
          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = get_byte
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockCloseScript)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockScript unless _tmp
    return _tmp
  end

  # HtmlBlockInTags = (HtmlAnchor | HtmlBlockAddress | HtmlBlockBlockquote | HtmlBlockCenter | HtmlBlockDir | HtmlBlockDiv | HtmlBlockDl | HtmlBlockFieldset | HtmlBlockForm | HtmlBlockH1 | HtmlBlockH2 | HtmlBlockH3 | HtmlBlockH4 | HtmlBlockH5 | HtmlBlockH6 | HtmlBlockMenu | HtmlBlockNoframes | HtmlBlockNoscript | HtmlBlockOl | HtmlBlockP | HtmlBlockPre | HtmlBlockTable | HtmlBlockUl | HtmlBlockDd | HtmlBlockDt | HtmlBlockFrameset | HtmlBlockLi | HtmlBlockTbody | HtmlBlockTd | HtmlBlockTfoot | HtmlBlockTh | HtmlBlockThead | HtmlBlockTr | HtmlBlockScript)
  def _HtmlBlockInTags

    _save = self.pos
    while true # choice
      _tmp = apply(:_HtmlAnchor)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockAddress)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockBlockquote)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockCenter)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockDir)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockDiv)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockDl)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockFieldset)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockForm)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockH1)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockH2)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockH3)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockH4)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockH5)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockH6)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockMenu)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockNoframes)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockNoscript)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockOl)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockP)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockPre)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockTable)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockUl)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockDd)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockDt)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockFrameset)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockLi)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockTbody)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockTd)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockTfoot)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockTh)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockThead)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockTr)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_HtmlBlockScript)
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_HtmlBlockInTags unless _tmp
    return _tmp
  end

  # HtmlBlock = < (HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) > @BlankLine+ { if html? then                 RDoc::Markup::Raw.new text               end }
  def _HtmlBlock

    _save = self.pos
    while true # sequence
      _text_start = self.pos

      _save1 = self.pos
      while true # choice
        _tmp = apply(:_HtmlBlockInTags)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_HtmlComment)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_HtmlBlockSelfClosing)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_HtmlUnclosed)
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = _BlankLine()
      if _tmp
        while true
          _tmp = _BlankLine()
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save2
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  if html? then
                RDoc::Markup::Raw.new text
              end ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlock unless _tmp
    return _tmp
  end

  # HtmlUnclosed = "<" Spnl HtmlUnclosedType Spnl HtmlAttribute* Spnl ">"
  def _HtmlUnclosed

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlUnclosedType)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlUnclosed unless _tmp
    return _tmp
  end

  # HtmlUnclosedType = ("HR" | "hr")
  def _HtmlUnclosedType

    _save = self.pos
    while true # choice
      _tmp = match_string("HR")
      break if _tmp
      self.pos = _save
      _tmp = match_string("hr")
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_HtmlUnclosedType unless _tmp
    return _tmp
  end

  # HtmlBlockSelfClosing = "<" Spnl HtmlBlockType Spnl HtmlAttribute* "/" Spnl ">"
  def _HtmlBlockSelfClosing

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_HtmlBlockType)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlBlockSelfClosing unless _tmp
    return _tmp
  end

  # HtmlBlockType = ("ADDRESS" | "BLOCKQUOTE" | "CENTER" | "DD" | "DIR" | "DIV" | "DL" | "DT" | "FIELDSET" | "FORM" | "FRAMESET" | "H1" | "H2" | "H3" | "H4" | "H5" | "H6" | "HR" | "ISINDEX" | "LI" | "MENU" | "NOFRAMES" | "NOSCRIPT" | "OL" | "P" | "PRE" | "SCRIPT" | "TABLE" | "TBODY" | "TD" | "TFOOT" | "TH" | "THEAD" | "TR" | "UL" | "address" | "blockquote" | "center" | "dd" | "dir" | "div" | "dl" | "dt" | "fieldset" | "form" | "frameset" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "hr" | "isindex" | "li" | "menu" | "noframes" | "noscript" | "ol" | "p" | "pre" | "script" | "table" | "tbody" | "td" | "tfoot" | "th" | "thead" | "tr" | "ul")
  def _HtmlBlockType

    _save = self.pos
    while true # choice
      _tmp = match_string("ADDRESS")
      break if _tmp
      self.pos = _save
      _tmp = match_string("BLOCKQUOTE")
      break if _tmp
      self.pos = _save
      _tmp = match_string("CENTER")
      break if _tmp
      self.pos = _save
      _tmp = match_string("DD")
      break if _tmp
      self.pos = _save
      _tmp = match_string("DIR")
      break if _tmp
      self.pos = _save
      _tmp = match_string("DIV")
      break if _tmp
      self.pos = _save
      _tmp = match_string("DL")
      break if _tmp
      self.pos = _save
      _tmp = match_string("DT")
      break if _tmp
      self.pos = _save
      _tmp = match_string("FIELDSET")
      break if _tmp
      self.pos = _save
      _tmp = match_string("FORM")
      break if _tmp
      self.pos = _save
      _tmp = match_string("FRAMESET")
      break if _tmp
      self.pos = _save
      _tmp = match_string("H1")
      break if _tmp
      self.pos = _save
      _tmp = match_string("H2")
      break if _tmp
      self.pos = _save
      _tmp = match_string("H3")
      break if _tmp
      self.pos = _save
      _tmp = match_string("H4")
      break if _tmp
      self.pos = _save
      _tmp = match_string("H5")
      break if _tmp
      self.pos = _save
      _tmp = match_string("H6")
      break if _tmp
      self.pos = _save
      _tmp = match_string("HR")
      break if _tmp
      self.pos = _save
      _tmp = match_string("ISINDEX")
      break if _tmp
      self.pos = _save
      _tmp = match_string("LI")
      break if _tmp
      self.pos = _save
      _tmp = match_string("MENU")
      break if _tmp
      self.pos = _save
      _tmp = match_string("NOFRAMES")
      break if _tmp
      self.pos = _save
      _tmp = match_string("NOSCRIPT")
      break if _tmp
      self.pos = _save
      _tmp = match_string("OL")
      break if _tmp
      self.pos = _save
      _tmp = match_string("P")
      break if _tmp
      self.pos = _save
      _tmp = match_string("PRE")
      break if _tmp
      self.pos = _save
      _tmp = match_string("SCRIPT")
      break if _tmp
      self.pos = _save
      _tmp = match_string("TABLE")
      break if _tmp
      self.pos = _save
      _tmp = match_string("TBODY")
      break if _tmp
      self.pos = _save
      _tmp = match_string("TD")
      break if _tmp
      self.pos = _save
      _tmp = match_string("TFOOT")
      break if _tmp
      self.pos = _save
      _tmp = match_string("TH")
      break if _tmp
      self.pos = _save
      _tmp = match_string("THEAD")
      break if _tmp
      self.pos = _save
      _tmp = match_string("TR")
      break if _tmp
      self.pos = _save
      _tmp = match_string("UL")
      break if _tmp
      self.pos = _save
      _tmp = match_string("address")
      break if _tmp
      self.pos = _save
      _tmp = match_string("blockquote")
      break if _tmp
      self.pos = _save
      _tmp = match_string("center")
      break if _tmp
      self.pos = _save
      _tmp = match_string("dd")
      break if _tmp
      self.pos = _save
      _tmp = match_string("dir")
      break if _tmp
      self.pos = _save
      _tmp = match_string("div")
      break if _tmp
      self.pos = _save
      _tmp = match_string("dl")
      break if _tmp
      self.pos = _save
      _tmp = match_string("dt")
      break if _tmp
      self.pos = _save
      _tmp = match_string("fieldset")
      break if _tmp
      self.pos = _save
      _tmp = match_string("form")
      break if _tmp
      self.pos = _save
      _tmp = match_string("frameset")
      break if _tmp
      self.pos = _save
      _tmp = match_string("h1")
      break if _tmp
      self.pos = _save
      _tmp = match_string("h2")
      break if _tmp
      self.pos = _save
      _tmp = match_string("h3")
      break if _tmp
      self.pos = _save
      _tmp = match_string("h4")
      break if _tmp
      self.pos = _save
      _tmp = match_string("h5")
      break if _tmp
      self.pos = _save
      _tmp = match_string("h6")
      break if _tmp
      self.pos = _save
      _tmp = match_string("hr")
      break if _tmp
      self.pos = _save
      _tmp = match_string("isindex")
      break if _tmp
      self.pos = _save
      _tmp = match_string("li")
      break if _tmp
      self.pos = _save
      _tmp = match_string("menu")
      break if _tmp
      self.pos = _save
      _tmp = match_string("noframes")
      break if _tmp
      self.pos = _save
      _tmp = match_string("noscript")
      break if _tmp
      self.pos = _save
      _tmp = match_string("ol")
      break if _tmp
      self.pos = _save
      _tmp = match_string("p")
      break if _tmp
      self.pos = _save
      _tmp = match_string("pre")
      break if _tmp
      self.pos = _save
      _tmp = match_string("script")
      break if _tmp
      self.pos = _save
      _tmp = match_string("table")
      break if _tmp
      self.pos = _save
      _tmp = match_string("tbody")
      break if _tmp
      self.pos = _save
      _tmp = match_string("td")
      break if _tmp
      self.pos = _save
      _tmp = match_string("tfoot")
      break if _tmp
      self.pos = _save
      _tmp = match_string("th")
      break if _tmp
      self.pos = _save
      _tmp = match_string("thead")
      break if _tmp
      self.pos = _save
      _tmp = match_string("tr")
      break if _tmp
      self.pos = _save
      _tmp = match_string("ul")
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_HtmlBlockType unless _tmp
    return _tmp
  end

  # StyleOpen = "<" Spnl ("style" | "STYLE") Spnl HtmlAttribute* ">"
  def _StyleOpen

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("style")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("STYLE")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_StyleOpen unless _tmp
    return _tmp
  end

  # StyleClose = "<" Spnl "/" ("style" | "STYLE") Spnl ">"
  def _StyleClose

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("/")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = match_string("style")
        break if _tmp
        self.pos = _save1
        _tmp = match_string("STYLE")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_StyleClose unless _tmp
    return _tmp
  end

  # InStyleTags = StyleOpen (!StyleClose .)* StyleClose
  def _InStyleTags

    _save = self.pos
    while true # sequence
      _tmp = apply(:_StyleOpen)
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos
          _tmp = apply(:_StyleClose)
          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = get_byte
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_StyleClose)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_InStyleTags unless _tmp
    return _tmp
  end

  # StyleBlock = < InStyleTags > @BlankLine* { if css? then                     RDoc::Markup::Raw.new text                   end }
  def _StyleBlock

    _save = self.pos
    while true # sequence
      _text_start = self.pos
      _tmp = apply(:_InStyleTags)
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = _BlankLine()
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  if css? then
                    RDoc::Markup::Raw.new text
                  end ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_StyleBlock unless _tmp
    return _tmp
  end

  # Inlines = (!@Endline Inline:i { i } | @Endline:c &Inline { c })+:chunks @Endline? { chunks }
  def _Inlines

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _ary = []

      _save2 = self.pos
      while true # choice

        _save3 = self.pos
        while true # sequence
          _save4 = self.pos
          _tmp = _Endline()
          _tmp = _tmp ? nil : true
          self.pos = _save4
          unless _tmp
            self.pos = _save3
            break
          end
          _tmp = apply(:_Inline)
          i = @result
          unless _tmp
            self.pos = _save3
            break
          end
          @result = begin;  i ; end
          _tmp = true
          unless _tmp
            self.pos = _save3
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save2

        _save5 = self.pos
        while true # sequence
          _tmp = _Endline()
          c = @result
          unless _tmp
            self.pos = _save5
            break
          end
          _save6 = self.pos
          _tmp = apply(:_Inline)
          self.pos = _save6
          unless _tmp
            self.pos = _save5
            break
          end
          @result = begin;  c ; end
          _tmp = true
          unless _tmp
            self.pos = _save5
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save2
        break
      end # end choice

      if _tmp
        _ary << @result
        while true

          _save7 = self.pos
          while true # choice

            _save8 = self.pos
            while true # sequence
              _save9 = self.pos
              _tmp = _Endline()
              _tmp = _tmp ? nil : true
              self.pos = _save9
              unless _tmp
                self.pos = _save8
                break
              end
              _tmp = apply(:_Inline)
              i = @result
              unless _tmp
                self.pos = _save8
                break
              end
              @result = begin;  i ; end
              _tmp = true
              unless _tmp
                self.pos = _save8
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save7

            _save10 = self.pos
            while true # sequence
              _tmp = _Endline()
              c = @result
              unless _tmp
                self.pos = _save10
                break
              end
              _save11 = self.pos
              _tmp = apply(:_Inline)
              self.pos = _save11
              unless _tmp
                self.pos = _save10
                break
              end
              @result = begin;  c ; end
              _tmp = true
              unless _tmp
                self.pos = _save10
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save7
            break
          end # end choice

          _ary << @result if _tmp
          break unless _tmp
        end
        _tmp = true
        @result = _ary
      else
        self.pos = _save1
      end
      chunks = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save12 = self.pos
      _tmp = _Endline()
      unless _tmp
        _tmp = true
        self.pos = _save12
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  chunks ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Inlines unless _tmp
    return _tmp
  end

  # Inline = (Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)
  def _Inline

    _save = self.pos
    while true # choice
      _tmp = apply(:_Str)
      break if _tmp
      self.pos = _save
      _tmp = _Endline()
      break if _tmp
      self.pos = _save
      _tmp = apply(:_UlOrStarLine)
      break if _tmp
      self.pos = _save
      _tmp = _Space()
      break if _tmp
      self.pos = _save
      _tmp = apply(:_Strong)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_Emph)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_Image)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_Link)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_NoteReference)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_InlineNote)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_Code)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_RawHtml)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_Entity)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_EscapedChar)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_Symbol)
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_Inline unless _tmp
    return _tmp
  end

  # Space = @Spacechar+ { " " }
  def _Space

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = _Spacechar()
      if _tmp
        while true
          _tmp = _Spacechar()
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  " " ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Space unless _tmp
    return _tmp
  end

  # Str = @StartList:a < @NormalChar+ > { a = text } (StrChunk:c { a << c })* { a }
  def _Str

    _save = self.pos
    while true # sequence
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      _save1 = self.pos
      _tmp = _NormalChar()
      if _tmp
        while true
          _tmp = _NormalChar()
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a = text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save3 = self.pos
        while true # sequence
          _tmp = apply(:_StrChunk)
          c = @result
          unless _tmp
            self.pos = _save3
            break
          end
          @result = begin;  a << c ; end
          _tmp = true
          unless _tmp
            self.pos = _save3
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Str unless _tmp
    return _tmp
  end

  # StrChunk = < (@NormalChar | /_+/ &Alphanumeric)+ > { text }
  def _StrChunk

    _save = self.pos
    while true # sequence
      _text_start = self.pos
      _save1 = self.pos

      _save2 = self.pos
      while true # choice
        _tmp = _NormalChar()
        break if _tmp
        self.pos = _save2

        _save3 = self.pos
        while true # sequence
          _tmp = scan(/\A(?-mix:_+)/)
          unless _tmp
            self.pos = _save3
            break
          end
          _save4 = self.pos
          _tmp = apply(:_Alphanumeric)
          self.pos = _save4
          unless _tmp
            self.pos = _save3
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save2
        break
      end # end choice

      if _tmp
        while true

          _save5 = self.pos
          while true # choice
            _tmp = _NormalChar()
            break if _tmp
            self.pos = _save5

            _save6 = self.pos
            while true # sequence
              _tmp = scan(/\A(?-mix:_+)/)
              unless _tmp
                self.pos = _save6
                break
              end
              _save7 = self.pos
              _tmp = apply(:_Alphanumeric)
              self.pos = _save7
              unless _tmp
                self.pos = _save6
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save5
            break
          end # end choice

          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_StrChunk unless _tmp
    return _tmp
  end

  # EscapedChar = "\\" !@Newline < /[:\\`|*_{}\[\]()#+.!><-]/ > { text }
  def _EscapedChar

    _save = self.pos
    while true # sequence
      _tmp = match_string("\\")
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = _Newline()
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      _tmp = scan(/\A(?-mix:[:\\`|*_{}\[\]()#+.!><-])/)
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_EscapedChar unless _tmp
    return _tmp
  end

  # Entity = (HexEntity | DecEntity | CharEntity):a { a }
  def _Entity

    _save = self.pos
    while true # sequence

      _save1 = self.pos
      while true # choice
        _tmp = apply(:_HexEntity)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_DecEntity)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_CharEntity)
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Entity unless _tmp
    return _tmp
  end

  # Endline = (@LineBreak | @TerminalEndline | @NormalEndline)
  def _Endline

    _save = self.pos
    while true # choice
      _tmp = _LineBreak()
      break if _tmp
      self.pos = _save
      _tmp = _TerminalEndline()
      break if _tmp
      self.pos = _save
      _tmp = _NormalEndline()
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_Endline unless _tmp
    return _tmp
  end

  # NormalEndline = @Sp @Newline !@BlankLine !">" !AtxStart !(Line /={3,}|-{3,}=/ @Newline) { "\n" }
  def _NormalEndline

    _save = self.pos
    while true # sequence
      _tmp = _Sp()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Newline()
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = _BlankLine()
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = match_string(">")
      _tmp = _tmp ? nil : true
      self.pos = _save2
      unless _tmp
        self.pos = _save
        break
      end
      _save3 = self.pos
      _tmp = apply(:_AtxStart)
      _tmp = _tmp ? nil : true
      self.pos = _save3
      unless _tmp
        self.pos = _save
        break
      end
      _save4 = self.pos

      _save5 = self.pos
      while true # sequence
        _tmp = apply(:_Line)
        unless _tmp
          self.pos = _save5
          break
        end
        _tmp = scan(/\A(?-mix:={3,}|-{3,}=)/)
        unless _tmp
          self.pos = _save5
          break
        end
        _tmp = _Newline()
        unless _tmp
          self.pos = _save5
        end
        break
      end # end sequence

      _tmp = _tmp ? nil : true
      self.pos = _save4
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  "\n" ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_NormalEndline unless _tmp
    return _tmp
  end

  # TerminalEndline = @Sp @Newline @Eof
  def _TerminalEndline

    _save = self.pos
    while true # sequence
      _tmp = _Sp()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Newline()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Eof()
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_TerminalEndline unless _tmp
    return _tmp
  end

  # LineBreak = "  " @NormalEndline { RDoc::Markup::HardBreak.new }
  def _LineBreak

    _save = self.pos
    while true # sequence
      _tmp = match_string("  ")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _NormalEndline()
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  RDoc::Markup::HardBreak.new ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_LineBreak unless _tmp
    return _tmp
  end

  # Symbol = < @SpecialChar > { text }
  def _Symbol

    _save = self.pos
    while true # sequence
      _text_start = self.pos
      _tmp = _SpecialChar()
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Symbol unless _tmp
    return _tmp
  end

  # UlOrStarLine = (UlLine | StarLine):a { a }
  def _UlOrStarLine

    _save = self.pos
    while true # sequence

      _save1 = self.pos
      while true # choice
        _tmp = apply(:_UlLine)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_StarLine)
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_UlOrStarLine unless _tmp
    return _tmp
  end

  # StarLine = (< /\*{4,}/ > { text } | < @Spacechar /\*+/ &@Spacechar > { text })
  def _StarLine

    _save = self.pos
    while true # choice

      _save1 = self.pos
      while true # sequence
        _text_start = self.pos
        _tmp = scan(/\A(?-mix:\*{4,})/)
        if _tmp
          text = get_text(_text_start)
        end
        unless _tmp
          self.pos = _save1
          break
        end
        @result = begin;  text ; end
        _tmp = true
        unless _tmp
          self.pos = _save1
        end
        break
      end # end sequence

      break if _tmp
      self.pos = _save

      _save2 = self.pos
      while true # sequence
        _text_start = self.pos

        _save3 = self.pos
        while true # sequence
          _tmp = _Spacechar()
          unless _tmp
            self.pos = _save3
            break
          end
          _tmp = scan(/\A(?-mix:\*+)/)
          unless _tmp
            self.pos = _save3
            break
          end
          _save4 = self.pos
          _tmp = _Spacechar()
          self.pos = _save4
          unless _tmp
            self.pos = _save3
          end
          break
        end # end sequence

        if _tmp
          text = get_text(_text_start)
        end
        unless _tmp
          self.pos = _save2
          break
        end
        @result = begin;  text ; end
        _tmp = true
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence

      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_StarLine unless _tmp
    return _tmp
  end

  # UlLine = (< /_{4,}/ > { text } | < @Spacechar /_+/ &@Spacechar > { text })
  def _UlLine

    _save = self.pos
    while true # choice

      _save1 = self.pos
      while true # sequence
        _text_start = self.pos
        _tmp = scan(/\A(?-mix:_{4,})/)
        if _tmp
          text = get_text(_text_start)
        end
        unless _tmp
          self.pos = _save1
          break
        end
        @result = begin;  text ; end
        _tmp = true
        unless _tmp
          self.pos = _save1
        end
        break
      end # end sequence

      break if _tmp
      self.pos = _save

      _save2 = self.pos
      while true # sequence
        _text_start = self.pos

        _save3 = self.pos
        while true # sequence
          _tmp = _Spacechar()
          unless _tmp
            self.pos = _save3
            break
          end
          _tmp = scan(/\A(?-mix:_+)/)
          unless _tmp
            self.pos = _save3
            break
          end
          _save4 = self.pos
          _tmp = _Spacechar()
          self.pos = _save4
          unless _tmp
            self.pos = _save3
          end
          break
        end # end sequence

        if _tmp
          text = get_text(_text_start)
        end
        unless _tmp
          self.pos = _save2
          break
        end
        @result = begin;  text ; end
        _tmp = true
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence

      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_UlLine unless _tmp
    return _tmp
  end

  # Emph = (EmphStar | EmphUl)
  def _Emph

    _save = self.pos
    while true # choice
      _tmp = apply(:_EmphStar)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_EmphUl)
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_Emph unless _tmp
    return _tmp
  end

  # OneStarOpen = !StarLine "*" !@Spacechar !@Newline
  def _OneStarOpen

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = apply(:_StarLine)
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("*")
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = _Spacechar()
      _tmp = _tmp ? nil : true
      self.pos = _save2
      unless _tmp
        self.pos = _save
        break
      end
      _save3 = self.pos
      _tmp = _Newline()
      _tmp = _tmp ? nil : true
      self.pos = _save3
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_OneStarOpen unless _tmp
    return _tmp
  end

  # OneStarClose = !@Spacechar !@Newline Inline:a "*" { a }
  def _OneStarClose

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = _Spacechar()
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = _Newline()
      _tmp = _tmp ? nil : true
      self.pos = _save2
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Inline)
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("*")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_OneStarClose unless _tmp
    return _tmp
  end

  # EmphStar = OneStarOpen @StartList:a (!OneStarClose Inline:l { a << l })* OneStarClose:l { a << l } { emphasis a.join }
  def _EmphStar

    _save = self.pos
    while true # sequence
      _tmp = apply(:_OneStarOpen)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos
          _tmp = apply(:_OneStarClose)
          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = apply(:_Inline)
          l = @result
          unless _tmp
            self.pos = _save2
            break
          end
          @result = begin;  a << l ; end
          _tmp = true
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_OneStarClose)
      l = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a << l ; end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  emphasis a.join ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_EmphStar unless _tmp
    return _tmp
  end

  # OneUlOpen = !UlLine "_" !@Spacechar !@Newline
  def _OneUlOpen

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = apply(:_UlLine)
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("_")
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = _Spacechar()
      _tmp = _tmp ? nil : true
      self.pos = _save2
      unless _tmp
        self.pos = _save
        break
      end
      _save3 = self.pos
      _tmp = _Newline()
      _tmp = _tmp ? nil : true
      self.pos = _save3
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_OneUlOpen unless _tmp
    return _tmp
  end

  # OneUlClose = !@Spacechar !@Newline Inline:a "_" { a }
  def _OneUlClose

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = _Spacechar()
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = _Newline()
      _tmp = _tmp ? nil : true
      self.pos = _save2
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Inline)
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("_")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_OneUlClose unless _tmp
    return _tmp
  end

  # EmphUl = OneUlOpen @StartList:a (!OneUlClose Inline:l { a << l })* OneUlClose:l { a << l } { emphasis a.join }
  def _EmphUl

    _save = self.pos
    while true # sequence
      _tmp = apply(:_OneUlOpen)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos
          _tmp = apply(:_OneUlClose)
          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = apply(:_Inline)
          l = @result
          unless _tmp
            self.pos = _save2
            break
          end
          @result = begin;  a << l ; end
          _tmp = true
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_OneUlClose)
      l = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a << l ; end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  emphasis a.join ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_EmphUl unless _tmp
    return _tmp
  end

  # Strong = (StrongStar | StrongUl)
  def _Strong

    _save = self.pos
    while true # choice
      _tmp = apply(:_StrongStar)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_StrongUl)
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_Strong unless _tmp
    return _tmp
  end

  # TwoStarOpen = !StarLine "**" !@Spacechar !@Newline
  def _TwoStarOpen

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = apply(:_StarLine)
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("**")
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = _Spacechar()
      _tmp = _tmp ? nil : true
      self.pos = _save2
      unless _tmp
        self.pos = _save
        break
      end
      _save3 = self.pos
      _tmp = _Newline()
      _tmp = _tmp ? nil : true
      self.pos = _save3
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_TwoStarOpen unless _tmp
    return _tmp
  end

  # TwoStarClose = !@Spacechar !@Newline Inline:a "**" { a }
  def _TwoStarClose

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = _Spacechar()
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = _Newline()
      _tmp = _tmp ? nil : true
      self.pos = _save2
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Inline)
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("**")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_TwoStarClose unless _tmp
    return _tmp
  end

  # StrongStar = TwoStarOpen @StartList:a (!TwoStarClose Inline:l { a << l })* TwoStarClose:l { a << l } { strong a.join }
  def _StrongStar

    _save = self.pos
    while true # sequence
      _tmp = apply(:_TwoStarOpen)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos
          _tmp = apply(:_TwoStarClose)
          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = apply(:_Inline)
          l = @result
          unless _tmp
            self.pos = _save2
            break
          end
          @result = begin;  a << l ; end
          _tmp = true
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_TwoStarClose)
      l = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a << l ; end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  strong a.join ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_StrongStar unless _tmp
    return _tmp
  end

  # TwoUlOpen = !UlLine "__" !@Spacechar !@Newline
  def _TwoUlOpen

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = apply(:_UlLine)
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("__")
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = _Spacechar()
      _tmp = _tmp ? nil : true
      self.pos = _save2
      unless _tmp
        self.pos = _save
        break
      end
      _save3 = self.pos
      _tmp = _Newline()
      _tmp = _tmp ? nil : true
      self.pos = _save3
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_TwoUlOpen unless _tmp
    return _tmp
  end

  # TwoUlClose = !@Spacechar !@Newline Inline:a "__" { a }
  def _TwoUlClose

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = _Spacechar()
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = _Newline()
      _tmp = _tmp ? nil : true
      self.pos = _save2
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Inline)
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("__")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_TwoUlClose unless _tmp
    return _tmp
  end

  # StrongUl = TwoUlOpen @StartList:a (!TwoUlClose Inline:i { a << i })* TwoUlClose:l { a << l } { strong a.join }
  def _StrongUl

    _save = self.pos
    while true # sequence
      _tmp = apply(:_TwoUlOpen)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos
          _tmp = apply(:_TwoUlClose)
          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = apply(:_Inline)
          i = @result
          unless _tmp
            self.pos = _save2
            break
          end
          @result = begin;  a << i ; end
          _tmp = true
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_TwoUlClose)
      l = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a << l ; end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  strong a.join ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_StrongUl unless _tmp
    return _tmp
  end

  # Image = "!" (ExplicitLink | ReferenceLink):a { "rdoc-image:#{a[/\[(.*)\]/, 1]}" }
  def _Image

    _save = self.pos
    while true # sequence
      _tmp = match_string("!")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice
        _tmp = apply(:_ExplicitLink)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_ReferenceLink)
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  "rdoc-image:#{a[/\[(.*)\]/, 1]}" ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Image unless _tmp
    return _tmp
  end

  # Link = (ExplicitLink | ReferenceLink | AutoLink)
  def _Link

    _save = self.pos
    while true # choice
      _tmp = apply(:_ExplicitLink)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_ReferenceLink)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_AutoLink)
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_Link unless _tmp
    return _tmp
  end

  # ReferenceLink = (ReferenceLinkDouble | ReferenceLinkSingle)
  def _ReferenceLink

    _save = self.pos
    while true # choice
      _tmp = apply(:_ReferenceLinkDouble)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_ReferenceLinkSingle)
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_ReferenceLink unless _tmp
    return _tmp
  end

  # ReferenceLinkDouble = Label:content < Spnl > !"[]" Label:label { link_to content, label, text }
  def _ReferenceLinkDouble

    _save = self.pos
    while true # sequence
      _tmp = apply(:_Label)
      content = @result
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      _tmp = apply(:_Spnl)
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = match_string("[]")
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Label)
      label = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  link_to content, label, text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_ReferenceLinkDouble unless _tmp
    return _tmp
  end

  # ReferenceLinkSingle = Label:content < (Spnl "[]")? > { link_to content, content, text }
  def _ReferenceLinkSingle

    _save = self.pos
    while true # sequence
      _tmp = apply(:_Label)
      content = @result
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      _save1 = self.pos

      _save2 = self.pos
      while true # sequence
        _tmp = apply(:_Spnl)
        unless _tmp
          self.pos = _save2
          break
        end
        _tmp = match_string("[]")
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence

      unless _tmp
        _tmp = true
        self.pos = _save1
      end
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  link_to content, content, text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_ReferenceLinkSingle unless _tmp
    return _tmp
  end

  # ExplicitLink = Label:l Spnl "(" @Sp Source:s Spnl Title @Sp ")" { "{#{l}}[#{s}]" }
  def _ExplicitLink

    _save = self.pos
    while true # sequence
      _tmp = apply(:_Label)
      l = @result
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("(")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Sp()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Source)
      s = @result
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Title)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Sp()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(")")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  "{#{l}}[#{s}]" ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_ExplicitLink unless _tmp
    return _tmp
  end

  # Source = ("<" < SourceContents > ">" | < SourceContents >) { text }
  def _Source

    _save = self.pos
    while true # sequence

      _save1 = self.pos
      while true # choice

        _save2 = self.pos
        while true # sequence
          _tmp = match_string("<")
          unless _tmp
            self.pos = _save2
            break
          end
          _text_start = self.pos
          _tmp = apply(:_SourceContents)
          if _tmp
            text = get_text(_text_start)
          end
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = match_string(">")
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save1
        _text_start = self.pos
        _tmp = apply(:_SourceContents)
        if _tmp
          text = get_text(_text_start)
        end
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Source unless _tmp
    return _tmp
  end

  # SourceContents = (((!"(" !")" !">" Nonspacechar)+ | "(" SourceContents ")")* | "")
  def _SourceContents

    _save = self.pos
    while true # choice
      while true

        _save2 = self.pos
        while true # choice
          _save3 = self.pos

          _save4 = self.pos
          while true # sequence
            _save5 = self.pos
            _tmp = match_string("(")
            _tmp = _tmp ? nil : true
            self.pos = _save5
            unless _tmp
              self.pos = _save4
              break
            end
            _save6 = self.pos
            _tmp = match_string(")")
            _tmp = _tmp ? nil : true
            self.pos = _save6
            unless _tmp
              self.pos = _save4
              break
            end
            _save7 = self.pos
            _tmp = match_string(">")
            _tmp = _tmp ? nil : true
            self.pos = _save7
            unless _tmp
              self.pos = _save4
              break
            end
            _tmp = apply(:_Nonspacechar)
            unless _tmp
              self.pos = _save4
            end
            break
          end # end sequence

          if _tmp
            while true

              _save8 = self.pos
              while true # sequence
                _save9 = self.pos
                _tmp = match_string("(")
                _tmp = _tmp ? nil : true
                self.pos = _save9
                unless _tmp
                  self.pos = _save8
                  break
                end
                _save10 = self.pos
                _tmp = match_string(")")
                _tmp = _tmp ? nil : true
                self.pos = _save10
                unless _tmp
                  self.pos = _save8
                  break
                end
                _save11 = self.pos
                _tmp = match_string(">")
                _tmp = _tmp ? nil : true
                self.pos = _save11
                unless _tmp
                  self.pos = _save8
                  break
                end
                _tmp = apply(:_Nonspacechar)
                unless _tmp
                  self.pos = _save8
                end
                break
              end # end sequence

              break unless _tmp
            end
            _tmp = true
          else
            self.pos = _save3
          end
          break if _tmp
          self.pos = _save2

          _save12 = self.pos
          while true # sequence
            _tmp = match_string("(")
            unless _tmp
              self.pos = _save12
              break
            end
            _tmp = apply(:_SourceContents)
            unless _tmp
              self.pos = _save12
              break
            end
            _tmp = match_string(")")
            unless _tmp
              self.pos = _save12
            end
            break
          end # end sequence

          break if _tmp
          self.pos = _save2
          break
        end # end choice

        break unless _tmp
      end
      _tmp = true
      break if _tmp
      self.pos = _save
      _tmp = match_string("")
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_SourceContents unless _tmp
    return _tmp
  end

  # Title = (TitleSingle | TitleDouble | ""):a { a }
  def _Title

    _save = self.pos
    while true # sequence

      _save1 = self.pos
      while true # choice
        _tmp = apply(:_TitleSingle)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_TitleDouble)
        break if _tmp
        self.pos = _save1
        _tmp = match_string("")
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Title unless _tmp
    return _tmp
  end

  # TitleSingle = "'" (!("'" @Sp (")" | @Newline)) .)* "'"
  def _TitleSingle

    _save = self.pos
    while true # sequence
      _tmp = match_string("'")
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos

          _save4 = self.pos
          while true # sequence
            _tmp = match_string("'")
            unless _tmp
              self.pos = _save4
              break
            end
            _tmp = _Sp()
            unless _tmp
              self.pos = _save4
              break
            end

            _save5 = self.pos
            while true # choice
              _tmp = match_string(")")
              break if _tmp
              self.pos = _save5
              _tmp = _Newline()
              break if _tmp
              self.pos = _save5
              break
            end # end choice

            unless _tmp
              self.pos = _save4
            end
            break
          end # end sequence

          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = get_byte
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("'")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_TitleSingle unless _tmp
    return _tmp
  end

  # TitleDouble = "\"" (!("\"" @Sp (")" | @Newline)) .)* "\""
  def _TitleDouble

    _save = self.pos
    while true # sequence
      _tmp = match_string("\"")
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos

          _save4 = self.pos
          while true # sequence
            _tmp = match_string("\"")
            unless _tmp
              self.pos = _save4
              break
            end
            _tmp = _Sp()
            unless _tmp
              self.pos = _save4
              break
            end

            _save5 = self.pos
            while true # choice
              _tmp = match_string(")")
              break if _tmp
              self.pos = _save5
              _tmp = _Newline()
              break if _tmp
              self.pos = _save5
              break
            end # end choice

            unless _tmp
              self.pos = _save4
            end
            break
          end # end sequence

          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = get_byte
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("\"")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_TitleDouble unless _tmp
    return _tmp
  end

  # AutoLink = (AutoLinkUrl | AutoLinkEmail)
  def _AutoLink

    _save = self.pos
    while true # choice
      _tmp = apply(:_AutoLinkUrl)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_AutoLinkEmail)
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_AutoLink unless _tmp
    return _tmp
  end

  # AutoLinkUrl = "<" < /[A-Za-z]+/ "://" (!@Newline !">" .)+ > ">" { text }
  def _AutoLinkUrl

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos

      _save1 = self.pos
      while true # sequence
        _tmp = scan(/\A(?-mix:[A-Za-z]+)/)
        unless _tmp
          self.pos = _save1
          break
        end
        _tmp = match_string("://")
        unless _tmp
          self.pos = _save1
          break
        end
        _save2 = self.pos

        _save3 = self.pos
        while true # sequence
          _save4 = self.pos
          _tmp = _Newline()
          _tmp = _tmp ? nil : true
          self.pos = _save4
          unless _tmp
            self.pos = _save3
            break
          end
          _save5 = self.pos
          _tmp = match_string(">")
          _tmp = _tmp ? nil : true
          self.pos = _save5
          unless _tmp
            self.pos = _save3
            break
          end
          _tmp = get_byte
          unless _tmp
            self.pos = _save3
          end
          break
        end # end sequence

        if _tmp
          while true

            _save6 = self.pos
            while true # sequence
              _save7 = self.pos
              _tmp = _Newline()
              _tmp = _tmp ? nil : true
              self.pos = _save7
              unless _tmp
                self.pos = _save6
                break
              end
              _save8 = self.pos
              _tmp = match_string(">")
              _tmp = _tmp ? nil : true
              self.pos = _save8
              unless _tmp
                self.pos = _save6
                break
              end
              _tmp = get_byte
              unless _tmp
                self.pos = _save6
              end
              break
            end # end sequence

            break unless _tmp
          end
          _tmp = true
        else
          self.pos = _save2
        end
        unless _tmp
          self.pos = _save1
        end
        break
      end # end sequence

      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_AutoLinkUrl unless _tmp
    return _tmp
  end

  # AutoLinkEmail = "<" "mailto:"? < /[\w+.\/!%~$-]+/i "@" (!@Newline !">" .)+ > ">" { "mailto:#{text}" }
  def _AutoLinkEmail

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = match_string("mailto:")
      unless _tmp
        _tmp = true
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos

      _save2 = self.pos
      while true # sequence
        _tmp = scan(/\A(?i-mx:[\w+.\/!%~$-]+)/)
        unless _tmp
          self.pos = _save2
          break
        end
        _tmp = match_string("@")
        unless _tmp
          self.pos = _save2
          break
        end
        _save3 = self.pos

        _save4 = self.pos
        while true # sequence
          _save5 = self.pos
          _tmp = _Newline()
          _tmp = _tmp ? nil : true
          self.pos = _save5
          unless _tmp
            self.pos = _save4
            break
          end
          _save6 = self.pos
          _tmp = match_string(">")
          _tmp = _tmp ? nil : true
          self.pos = _save6
          unless _tmp
            self.pos = _save4
            break
          end
          _tmp = get_byte
          unless _tmp
            self.pos = _save4
          end
          break
        end # end sequence

        if _tmp
          while true

            _save7 = self.pos
            while true # sequence
              _save8 = self.pos
              _tmp = _Newline()
              _tmp = _tmp ? nil : true
              self.pos = _save8
              unless _tmp
                self.pos = _save7
                break
              end
              _save9 = self.pos
              _tmp = match_string(">")
              _tmp = _tmp ? nil : true
              self.pos = _save9
              unless _tmp
                self.pos = _save7
                break
              end
              _tmp = get_byte
              unless _tmp
                self.pos = _save7
              end
              break
            end # end sequence

            break unless _tmp
          end
          _tmp = true
        else
          self.pos = _save3
        end
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence

      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  "mailto:#{text}" ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_AutoLinkEmail unless _tmp
    return _tmp
  end

  # Reference = @NonindentSpace !"[]" Label:label ":" Spnl RefSrc:link RefTitle @BlankLine+ { # TODO use title               reference label, link               nil             }
  def _Reference

    _save = self.pos
    while true # sequence
      _tmp = _NonindentSpace()
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = match_string("[]")
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Label)
      label = @result
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(":")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_RefSrc)
      link = @result
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_RefTitle)
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = _BlankLine()
      if _tmp
        while true
          _tmp = _BlankLine()
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save2
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  # TODO use title
              reference label, link
              nil
            ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Reference unless _tmp
    return _tmp
  end

  # Label = "[" (!"^" &{ notes? } | &. &{ !notes? }) @StartList:a (!"]" Inline:l { a << l })* "]" { a.join.gsub(/\s+/, ' ') }
  def _Label

    _save = self.pos
    while true # sequence
      _tmp = match_string("[")
      unless _tmp
        self.pos = _save
        break
      end

      _save1 = self.pos
      while true # choice

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos
          _tmp = match_string("^")
          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _save4 = self.pos
          _tmp = begin;  notes? ; end
          self.pos = _save4
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save1

        _save5 = self.pos
        while true # sequence
          _save6 = self.pos
          _tmp = get_byte
          self.pos = _save6
          unless _tmp
            self.pos = _save5
            break
          end
          _save7 = self.pos
          _tmp = begin;  !notes? ; end
          self.pos = _save7
          unless _tmp
            self.pos = _save5
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save9 = self.pos
        while true # sequence
          _save10 = self.pos
          _tmp = match_string("]")
          _tmp = _tmp ? nil : true
          self.pos = _save10
          unless _tmp
            self.pos = _save9
            break
          end
          _tmp = apply(:_Inline)
          l = @result
          unless _tmp
            self.pos = _save9
            break
          end
          @result = begin;  a << l ; end
          _tmp = true
          unless _tmp
            self.pos = _save9
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("]")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a.join.gsub(/\s+/, ' ') ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Label unless _tmp
    return _tmp
  end

  # RefSrc = < Nonspacechar+ > { text }
  def _RefSrc

    _save = self.pos
    while true # sequence
      _text_start = self.pos
      _save1 = self.pos
      _tmp = apply(:_Nonspacechar)
      if _tmp
        while true
          _tmp = apply(:_Nonspacechar)
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_RefSrc unless _tmp
    return _tmp
  end

  # RefTitle = (RefTitleSingle | RefTitleDouble | RefTitleParens | EmptyTitle)
  def _RefTitle

    _save = self.pos
    while true # choice
      _tmp = apply(:_RefTitleSingle)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_RefTitleDouble)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_RefTitleParens)
      break if _tmp
      self.pos = _save
      _tmp = apply(:_EmptyTitle)
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_RefTitle unless _tmp
    return _tmp
  end

  # EmptyTitle = ""
  def _EmptyTitle
    _tmp = match_string("")
    set_failed_rule :_EmptyTitle unless _tmp
    return _tmp
  end

  # RefTitleSingle = Spnl "'" < (!("'" @Sp @Newline | @Newline) .)* > "'" { text }
  def _RefTitleSingle

    _save = self.pos
    while true # sequence
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("'")
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      while true

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos

          _save4 = self.pos
          while true # choice

            _save5 = self.pos
            while true # sequence
              _tmp = match_string("'")
              unless _tmp
                self.pos = _save5
                break
              end
              _tmp = _Sp()
              unless _tmp
                self.pos = _save5
                break
              end
              _tmp = _Newline()
              unless _tmp
                self.pos = _save5
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save4
            _tmp = _Newline()
            break if _tmp
            self.pos = _save4
            break
          end # end choice

          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = get_byte
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("'")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_RefTitleSingle unless _tmp
    return _tmp
  end

  # RefTitleDouble = Spnl "\"" < (!("\"" @Sp @Newline | @Newline) .)* > "\"" { text }
  def _RefTitleDouble

    _save = self.pos
    while true # sequence
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("\"")
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      while true

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos

          _save4 = self.pos
          while true # choice

            _save5 = self.pos
            while true # sequence
              _tmp = match_string("\"")
              unless _tmp
                self.pos = _save5
                break
              end
              _tmp = _Sp()
              unless _tmp
                self.pos = _save5
                break
              end
              _tmp = _Newline()
              unless _tmp
                self.pos = _save5
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save4
            _tmp = _Newline()
            break if _tmp
            self.pos = _save4
            break
          end # end choice

          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = get_byte
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("\"")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_RefTitleDouble unless _tmp
    return _tmp
  end

  # RefTitleParens = Spnl "(" < (!(")" @Sp @Newline | @Newline) .)* > ")" { text }
  def _RefTitleParens

    _save = self.pos
    while true # sequence
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("(")
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      while true

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos

          _save4 = self.pos
          while true # choice

            _save5 = self.pos
            while true # sequence
              _tmp = match_string(")")
              unless _tmp
                self.pos = _save5
                break
              end
              _tmp = _Sp()
              unless _tmp
                self.pos = _save5
                break
              end
              _tmp = _Newline()
              unless _tmp
                self.pos = _save5
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save4
            _tmp = _Newline()
            break if _tmp
            self.pos = _save4
            break
          end # end choice

          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = get_byte
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(")")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_RefTitleParens unless _tmp
    return _tmp
  end

  # References = (Reference | SkipBlock)*
  def _References
    while true

      _save1 = self.pos
      while true # choice
        _tmp = apply(:_Reference)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_SkipBlock)
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      break unless _tmp
    end
    _tmp = true
    set_failed_rule :_References unless _tmp
    return _tmp
  end

  # Ticks1 = "`" !"`"
  def _Ticks1

    _save = self.pos
    while true # sequence
      _tmp = match_string("`")
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = match_string("`")
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Ticks1 unless _tmp
    return _tmp
  end

  # Ticks2 = "``" !"`"
  def _Ticks2

    _save = self.pos
    while true # sequence
      _tmp = match_string("``")
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = match_string("`")
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Ticks2 unless _tmp
    return _tmp
  end

  # Ticks3 = "```" !"`"
  def _Ticks3

    _save = self.pos
    while true # sequence
      _tmp = match_string("```")
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = match_string("`")
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Ticks3 unless _tmp
    return _tmp
  end

  # Ticks4 = "````" !"`"
  def _Ticks4

    _save = self.pos
    while true # sequence
      _tmp = match_string("````")
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = match_string("`")
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Ticks4 unless _tmp
    return _tmp
  end

  # Ticks5 = "`````" !"`"
  def _Ticks5

    _save = self.pos
    while true # sequence
      _tmp = match_string("`````")
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = match_string("`")
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Ticks5 unless _tmp
    return _tmp
  end

  # Code = (Ticks1 @Sp < ((!"`" Nonspacechar)+ | !Ticks1 /`+/ | !(@Sp Ticks1) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks1 | Ticks2 @Sp < ((!"`" Nonspacechar)+ | !Ticks2 /`+/ | !(@Sp Ticks2) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks2 | Ticks3 @Sp < ((!"`" Nonspacechar)+ | !Ticks3 /`+/ | !(@Sp Ticks3) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks3 | Ticks4 @Sp < ((!"`" Nonspacechar)+ | !Ticks4 /`+/ | !(@Sp Ticks4) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks4 | Ticks5 @Sp < ((!"`" Nonspacechar)+ | !Ticks5 /`+/ | !(@Sp Ticks5) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks5) { "<code>#{text}</code>" }
  def _Code

    _save = self.pos
    while true # sequence

      _save1 = self.pos
      while true # choice

        _save2 = self.pos
        while true # sequence
          _tmp = apply(:_Ticks1)
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save2
            break
          end
          _text_start = self.pos
          _save3 = self.pos

          _save4 = self.pos
          while true # choice
            _save5 = self.pos

            _save6 = self.pos
            while true # sequence
              _save7 = self.pos
              _tmp = match_string("`")
              _tmp = _tmp ? nil : true
              self.pos = _save7
              unless _tmp
                self.pos = _save6
                break
              end
              _tmp = apply(:_Nonspacechar)
              unless _tmp
                self.pos = _save6
              end
              break
            end # end sequence

            if _tmp
              while true

                _save8 = self.pos
                while true # sequence
                  _save9 = self.pos
                  _tmp = match_string("`")
                  _tmp = _tmp ? nil : true
                  self.pos = _save9
                  unless _tmp
                    self.pos = _save8
                    break
                  end
                  _tmp = apply(:_Nonspacechar)
                  unless _tmp
                    self.pos = _save8
                  end
                  break
                end # end sequence

                break unless _tmp
              end
              _tmp = true
            else
              self.pos = _save5
            end
            break if _tmp
            self.pos = _save4

            _save10 = self.pos
            while true # sequence
              _save11 = self.pos
              _tmp = apply(:_Ticks1)
              _tmp = _tmp ? nil : true
              self.pos = _save11
              unless _tmp
                self.pos = _save10
                break
              end
              _tmp = scan(/\A(?-mix:`+)/)
              unless _tmp
                self.pos = _save10
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save4

            _save12 = self.pos
            while true # sequence
              _save13 = self.pos

              _save14 = self.pos
              while true # sequence
                _tmp = _Sp()
                unless _tmp
                  self.pos = _save14
                  break
                end
                _tmp = apply(:_Ticks1)
                unless _tmp
                  self.pos = _save14
                end
                break
              end # end sequence

              _tmp = _tmp ? nil : true
              self.pos = _save13
              unless _tmp
                self.pos = _save12
                break
              end

              _save15 = self.pos
              while true # choice
                _tmp = _Spacechar()
                break if _tmp
                self.pos = _save15

                _save16 = self.pos
                while true # sequence
                  _tmp = _Newline()
                  unless _tmp
                    self.pos = _save16
                    break
                  end
                  _save17 = self.pos
                  _tmp = _BlankLine()
                  _tmp = _tmp ? nil : true
                  self.pos = _save17
                  unless _tmp
                    self.pos = _save16
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save15
                break
              end # end choice

              unless _tmp
                self.pos = _save12
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save4
            break
          end # end choice

          if _tmp
            while true

              _save18 = self.pos
              while true # choice
                _save19 = self.pos

                _save20 = self.pos
                while true # sequence
                  _save21 = self.pos
                  _tmp = match_string("`")
                  _tmp = _tmp ? nil : true
                  self.pos = _save21
                  unless _tmp
                    self.pos = _save20
                    break
                  end
                  _tmp = apply(:_Nonspacechar)
                  unless _tmp
                    self.pos = _save20
                  end
                  break
                end # end sequence

                if _tmp
                  while true

                    _save22 = self.pos
                    while true # sequence
                      _save23 = self.pos
                      _tmp = match_string("`")
                      _tmp = _tmp ? nil : true
                      self.pos = _save23
                      unless _tmp
                        self.pos = _save22
                        break
                      end
                      _tmp = apply(:_Nonspacechar)
                      unless _tmp
                        self.pos = _save22
                      end
                      break
                    end # end sequence

                    break unless _tmp
                  end
                  _tmp = true
                else
                  self.pos = _save19
                end
                break if _tmp
                self.pos = _save18

                _save24 = self.pos
                while true # sequence
                  _save25 = self.pos
                  _tmp = apply(:_Ticks1)
                  _tmp = _tmp ? nil : true
                  self.pos = _save25
                  unless _tmp
                    self.pos = _save24
                    break
                  end
                  _tmp = scan(/\A(?-mix:`+)/)
                  unless _tmp
                    self.pos = _save24
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save18

                _save26 = self.pos
                while true # sequence
                  _save27 = self.pos

                  _save28 = self.pos
                  while true # sequence
                    _tmp = _Sp()
                    unless _tmp
                      self.pos = _save28
                      break
                    end
                    _tmp = apply(:_Ticks1)
                    unless _tmp
                      self.pos = _save28
                    end
                    break
                  end # end sequence

                  _tmp = _tmp ? nil : true
                  self.pos = _save27
                  unless _tmp
                    self.pos = _save26
                    break
                  end

                  _save29 = self.pos
                  while true # choice
                    _tmp = _Spacechar()
                    break if _tmp
                    self.pos = _save29

                    _save30 = self.pos
                    while true # sequence
                      _tmp = _Newline()
                      unless _tmp
                        self.pos = _save30
                        break
                      end
                      _save31 = self.pos
                      _tmp = _BlankLine()
                      _tmp = _tmp ? nil : true
                      self.pos = _save31
                      unless _tmp
                        self.pos = _save30
                      end
                      break
                    end # end sequence

                    break if _tmp
                    self.pos = _save29
                    break
                  end # end choice

                  unless _tmp
                    self.pos = _save26
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save18
                break
              end # end choice

              break unless _tmp
            end
            _tmp = true
          else
            self.pos = _save3
          end
          if _tmp
            text = get_text(_text_start)
          end
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = apply(:_Ticks1)
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save1

        _save32 = self.pos
        while true # sequence
          _tmp = apply(:_Ticks2)
          unless _tmp
            self.pos = _save32
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save32
            break
          end
          _text_start = self.pos
          _save33 = self.pos

          _save34 = self.pos
          while true # choice
            _save35 = self.pos

            _save36 = self.pos
            while true # sequence
              _save37 = self.pos
              _tmp = match_string("`")
              _tmp = _tmp ? nil : true
              self.pos = _save37
              unless _tmp
                self.pos = _save36
                break
              end
              _tmp = apply(:_Nonspacechar)
              unless _tmp
                self.pos = _save36
              end
              break
            end # end sequence

            if _tmp
              while true

                _save38 = self.pos
                while true # sequence
                  _save39 = self.pos
                  _tmp = match_string("`")
                  _tmp = _tmp ? nil : true
                  self.pos = _save39
                  unless _tmp
                    self.pos = _save38
                    break
                  end
                  _tmp = apply(:_Nonspacechar)
                  unless _tmp
                    self.pos = _save38
                  end
                  break
                end # end sequence

                break unless _tmp
              end
              _tmp = true
            else
              self.pos = _save35
            end
            break if _tmp
            self.pos = _save34

            _save40 = self.pos
            while true # sequence
              _save41 = self.pos
              _tmp = apply(:_Ticks2)
              _tmp = _tmp ? nil : true
              self.pos = _save41
              unless _tmp
                self.pos = _save40
                break
              end
              _tmp = scan(/\A(?-mix:`+)/)
              unless _tmp
                self.pos = _save40
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save34

            _save42 = self.pos
            while true # sequence
              _save43 = self.pos

              _save44 = self.pos
              while true # sequence
                _tmp = _Sp()
                unless _tmp
                  self.pos = _save44
                  break
                end
                _tmp = apply(:_Ticks2)
                unless _tmp
                  self.pos = _save44
                end
                break
              end # end sequence

              _tmp = _tmp ? nil : true
              self.pos = _save43
              unless _tmp
                self.pos = _save42
                break
              end

              _save45 = self.pos
              while true # choice
                _tmp = _Spacechar()
                break if _tmp
                self.pos = _save45

                _save46 = self.pos
                while true # sequence
                  _tmp = _Newline()
                  unless _tmp
                    self.pos = _save46
                    break
                  end
                  _save47 = self.pos
                  _tmp = _BlankLine()
                  _tmp = _tmp ? nil : true
                  self.pos = _save47
                  unless _tmp
                    self.pos = _save46
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save45
                break
              end # end choice

              unless _tmp
                self.pos = _save42
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save34
            break
          end # end choice

          if _tmp
            while true

              _save48 = self.pos
              while true # choice
                _save49 = self.pos

                _save50 = self.pos
                while true # sequence
                  _save51 = self.pos
                  _tmp = match_string("`")
                  _tmp = _tmp ? nil : true
                  self.pos = _save51
                  unless _tmp
                    self.pos = _save50
                    break
                  end
                  _tmp = apply(:_Nonspacechar)
                  unless _tmp
                    self.pos = _save50
                  end
                  break
                end # end sequence

                if _tmp
                  while true

                    _save52 = self.pos
                    while true # sequence
                      _save53 = self.pos
                      _tmp = match_string("`")
                      _tmp = _tmp ? nil : true
                      self.pos = _save53
                      unless _tmp
                        self.pos = _save52
                        break
                      end
                      _tmp = apply(:_Nonspacechar)
                      unless _tmp
                        self.pos = _save52
                      end
                      break
                    end # end sequence

                    break unless _tmp
                  end
                  _tmp = true
                else
                  self.pos = _save49
                end
                break if _tmp
                self.pos = _save48

                _save54 = self.pos
                while true # sequence
                  _save55 = self.pos
                  _tmp = apply(:_Ticks2)
                  _tmp = _tmp ? nil : true
                  self.pos = _save55
                  unless _tmp
                    self.pos = _save54
                    break
                  end
                  _tmp = scan(/\A(?-mix:`+)/)
                  unless _tmp
                    self.pos = _save54
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save48

                _save56 = self.pos
                while true # sequence
                  _save57 = self.pos

                  _save58 = self.pos
                  while true # sequence
                    _tmp = _Sp()
                    unless _tmp
                      self.pos = _save58
                      break
                    end
                    _tmp = apply(:_Ticks2)
                    unless _tmp
                      self.pos = _save58
                    end
                    break
                  end # end sequence

                  _tmp = _tmp ? nil : true
                  self.pos = _save57
                  unless _tmp
                    self.pos = _save56
                    break
                  end

                  _save59 = self.pos
                  while true # choice
                    _tmp = _Spacechar()
                    break if _tmp
                    self.pos = _save59

                    _save60 = self.pos
                    while true # sequence
                      _tmp = _Newline()
                      unless _tmp
                        self.pos = _save60
                        break
                      end
                      _save61 = self.pos
                      _tmp = _BlankLine()
                      _tmp = _tmp ? nil : true
                      self.pos = _save61
                      unless _tmp
                        self.pos = _save60
                      end
                      break
                    end # end sequence

                    break if _tmp
                    self.pos = _save59
                    break
                  end # end choice

                  unless _tmp
                    self.pos = _save56
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save48
                break
              end # end choice

              break unless _tmp
            end
            _tmp = true
          else
            self.pos = _save33
          end
          if _tmp
            text = get_text(_text_start)
          end
          unless _tmp
            self.pos = _save32
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save32
            break
          end
          _tmp = apply(:_Ticks2)
          unless _tmp
            self.pos = _save32
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save1

        _save62 = self.pos
        while true # sequence
          _tmp = apply(:_Ticks3)
          unless _tmp
            self.pos = _save62
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save62
            break
          end
          _text_start = self.pos
          _save63 = self.pos

          _save64 = self.pos
          while true # choice
            _save65 = self.pos

            _save66 = self.pos
            while true # sequence
              _save67 = self.pos
              _tmp = match_string("`")
              _tmp = _tmp ? nil : true
              self.pos = _save67
              unless _tmp
                self.pos = _save66
                break
              end
              _tmp = apply(:_Nonspacechar)
              unless _tmp
                self.pos = _save66
              end
              break
            end # end sequence

            if _tmp
              while true

                _save68 = self.pos
                while true # sequence
                  _save69 = self.pos
                  _tmp = match_string("`")
                  _tmp = _tmp ? nil : true
                  self.pos = _save69
                  unless _tmp
                    self.pos = _save68
                    break
                  end
                  _tmp = apply(:_Nonspacechar)
                  unless _tmp
                    self.pos = _save68
                  end
                  break
                end # end sequence

                break unless _tmp
              end
              _tmp = true
            else
              self.pos = _save65
            end
            break if _tmp
            self.pos = _save64

            _save70 = self.pos
            while true # sequence
              _save71 = self.pos
              _tmp = apply(:_Ticks3)
              _tmp = _tmp ? nil : true
              self.pos = _save71
              unless _tmp
                self.pos = _save70
                break
              end
              _tmp = scan(/\A(?-mix:`+)/)
              unless _tmp
                self.pos = _save70
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save64

            _save72 = self.pos
            while true # sequence
              _save73 = self.pos

              _save74 = self.pos
              while true # sequence
                _tmp = _Sp()
                unless _tmp
                  self.pos = _save74
                  break
                end
                _tmp = apply(:_Ticks3)
                unless _tmp
                  self.pos = _save74
                end
                break
              end # end sequence

              _tmp = _tmp ? nil : true
              self.pos = _save73
              unless _tmp
                self.pos = _save72
                break
              end

              _save75 = self.pos
              while true # choice
                _tmp = _Spacechar()
                break if _tmp
                self.pos = _save75

                _save76 = self.pos
                while true # sequence
                  _tmp = _Newline()
                  unless _tmp
                    self.pos = _save76
                    break
                  end
                  _save77 = self.pos
                  _tmp = _BlankLine()
                  _tmp = _tmp ? nil : true
                  self.pos = _save77
                  unless _tmp
                    self.pos = _save76
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save75
                break
              end # end choice

              unless _tmp
                self.pos = _save72
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save64
            break
          end # end choice

          if _tmp
            while true

              _save78 = self.pos
              while true # choice
                _save79 = self.pos

                _save80 = self.pos
                while true # sequence
                  _save81 = self.pos
                  _tmp = match_string("`")
                  _tmp = _tmp ? nil : true
                  self.pos = _save81
                  unless _tmp
                    self.pos = _save80
                    break
                  end
                  _tmp = apply(:_Nonspacechar)
                  unless _tmp
                    self.pos = _save80
                  end
                  break
                end # end sequence

                if _tmp
                  while true

                    _save82 = self.pos
                    while true # sequence
                      _save83 = self.pos
                      _tmp = match_string("`")
                      _tmp = _tmp ? nil : true
                      self.pos = _save83
                      unless _tmp
                        self.pos = _save82
                        break
                      end
                      _tmp = apply(:_Nonspacechar)
                      unless _tmp
                        self.pos = _save82
                      end
                      break
                    end # end sequence

                    break unless _tmp
                  end
                  _tmp = true
                else
                  self.pos = _save79
                end
                break if _tmp
                self.pos = _save78

                _save84 = self.pos
                while true # sequence
                  _save85 = self.pos
                  _tmp = apply(:_Ticks3)
                  _tmp = _tmp ? nil : true
                  self.pos = _save85
                  unless _tmp
                    self.pos = _save84
                    break
                  end
                  _tmp = scan(/\A(?-mix:`+)/)
                  unless _tmp
                    self.pos = _save84
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save78

                _save86 = self.pos
                while true # sequence
                  _save87 = self.pos

                  _save88 = self.pos
                  while true # sequence
                    _tmp = _Sp()
                    unless _tmp
                      self.pos = _save88
                      break
                    end
                    _tmp = apply(:_Ticks3)
                    unless _tmp
                      self.pos = _save88
                    end
                    break
                  end # end sequence

                  _tmp = _tmp ? nil : true
                  self.pos = _save87
                  unless _tmp
                    self.pos = _save86
                    break
                  end

                  _save89 = self.pos
                  while true # choice
                    _tmp = _Spacechar()
                    break if _tmp
                    self.pos = _save89

                    _save90 = self.pos
                    while true # sequence
                      _tmp = _Newline()
                      unless _tmp
                        self.pos = _save90
                        break
                      end
                      _save91 = self.pos
                      _tmp = _BlankLine()
                      _tmp = _tmp ? nil : true
                      self.pos = _save91
                      unless _tmp
                        self.pos = _save90
                      end
                      break
                    end # end sequence

                    break if _tmp
                    self.pos = _save89
                    break
                  end # end choice

                  unless _tmp
                    self.pos = _save86
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save78
                break
              end # end choice

              break unless _tmp
            end
            _tmp = true
          else
            self.pos = _save63
          end
          if _tmp
            text = get_text(_text_start)
          end
          unless _tmp
            self.pos = _save62
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save62
            break
          end
          _tmp = apply(:_Ticks3)
          unless _tmp
            self.pos = _save62
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save1

        _save92 = self.pos
        while true # sequence
          _tmp = apply(:_Ticks4)
          unless _tmp
            self.pos = _save92
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save92
            break
          end
          _text_start = self.pos
          _save93 = self.pos

          _save94 = self.pos
          while true # choice
            _save95 = self.pos

            _save96 = self.pos
            while true # sequence
              _save97 = self.pos
              _tmp = match_string("`")
              _tmp = _tmp ? nil : true
              self.pos = _save97
              unless _tmp
                self.pos = _save96
                break
              end
              _tmp = apply(:_Nonspacechar)
              unless _tmp
                self.pos = _save96
              end
              break
            end # end sequence

            if _tmp
              while true

                _save98 = self.pos
                while true # sequence
                  _save99 = self.pos
                  _tmp = match_string("`")
                  _tmp = _tmp ? nil : true
                  self.pos = _save99
                  unless _tmp
                    self.pos = _save98
                    break
                  end
                  _tmp = apply(:_Nonspacechar)
                  unless _tmp
                    self.pos = _save98
                  end
                  break
                end # end sequence

                break unless _tmp
              end
              _tmp = true
            else
              self.pos = _save95
            end
            break if _tmp
            self.pos = _save94

            _save100 = self.pos
            while true # sequence
              _save101 = self.pos
              _tmp = apply(:_Ticks4)
              _tmp = _tmp ? nil : true
              self.pos = _save101
              unless _tmp
                self.pos = _save100
                break
              end
              _tmp = scan(/\A(?-mix:`+)/)
              unless _tmp
                self.pos = _save100
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save94

            _save102 = self.pos
            while true # sequence
              _save103 = self.pos

              _save104 = self.pos
              while true # sequence
                _tmp = _Sp()
                unless _tmp
                  self.pos = _save104
                  break
                end
                _tmp = apply(:_Ticks4)
                unless _tmp
                  self.pos = _save104
                end
                break
              end # end sequence

              _tmp = _tmp ? nil : true
              self.pos = _save103
              unless _tmp
                self.pos = _save102
                break
              end

              _save105 = self.pos
              while true # choice
                _tmp = _Spacechar()
                break if _tmp
                self.pos = _save105

                _save106 = self.pos
                while true # sequence
                  _tmp = _Newline()
                  unless _tmp
                    self.pos = _save106
                    break
                  end
                  _save107 = self.pos
                  _tmp = _BlankLine()
                  _tmp = _tmp ? nil : true
                  self.pos = _save107
                  unless _tmp
                    self.pos = _save106
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save105
                break
              end # end choice

              unless _tmp
                self.pos = _save102
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save94
            break
          end # end choice

          if _tmp
            while true

              _save108 = self.pos
              while true # choice
                _save109 = self.pos

                _save110 = self.pos
                while true # sequence
                  _save111 = self.pos
                  _tmp = match_string("`")
                  _tmp = _tmp ? nil : true
                  self.pos = _save111
                  unless _tmp
                    self.pos = _save110
                    break
                  end
                  _tmp = apply(:_Nonspacechar)
                  unless _tmp
                    self.pos = _save110
                  end
                  break
                end # end sequence

                if _tmp
                  while true

                    _save112 = self.pos
                    while true # sequence
                      _save113 = self.pos
                      _tmp = match_string("`")
                      _tmp = _tmp ? nil : true
                      self.pos = _save113
                      unless _tmp
                        self.pos = _save112
                        break
                      end
                      _tmp = apply(:_Nonspacechar)
                      unless _tmp
                        self.pos = _save112
                      end
                      break
                    end # end sequence

                    break unless _tmp
                  end
                  _tmp = true
                else
                  self.pos = _save109
                end
                break if _tmp
                self.pos = _save108

                _save114 = self.pos
                while true # sequence
                  _save115 = self.pos
                  _tmp = apply(:_Ticks4)
                  _tmp = _tmp ? nil : true
                  self.pos = _save115
                  unless _tmp
                    self.pos = _save114
                    break
                  end
                  _tmp = scan(/\A(?-mix:`+)/)
                  unless _tmp
                    self.pos = _save114
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save108

                _save116 = self.pos
                while true # sequence
                  _save117 = self.pos

                  _save118 = self.pos
                  while true # sequence
                    _tmp = _Sp()
                    unless _tmp
                      self.pos = _save118
                      break
                    end
                    _tmp = apply(:_Ticks4)
                    unless _tmp
                      self.pos = _save118
                    end
                    break
                  end # end sequence

                  _tmp = _tmp ? nil : true
                  self.pos = _save117
                  unless _tmp
                    self.pos = _save116
                    break
                  end

                  _save119 = self.pos
                  while true # choice
                    _tmp = _Spacechar()
                    break if _tmp
                    self.pos = _save119

                    _save120 = self.pos
                    while true # sequence
                      _tmp = _Newline()
                      unless _tmp
                        self.pos = _save120
                        break
                      end
                      _save121 = self.pos
                      _tmp = _BlankLine()
                      _tmp = _tmp ? nil : true
                      self.pos = _save121
                      unless _tmp
                        self.pos = _save120
                      end
                      break
                    end # end sequence

                    break if _tmp
                    self.pos = _save119
                    break
                  end # end choice

                  unless _tmp
                    self.pos = _save116
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save108
                break
              end # end choice

              break unless _tmp
            end
            _tmp = true
          else
            self.pos = _save93
          end
          if _tmp
            text = get_text(_text_start)
          end
          unless _tmp
            self.pos = _save92
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save92
            break
          end
          _tmp = apply(:_Ticks4)
          unless _tmp
            self.pos = _save92
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save1

        _save122 = self.pos
        while true # sequence
          _tmp = apply(:_Ticks5)
          unless _tmp
            self.pos = _save122
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save122
            break
          end
          _text_start = self.pos
          _save123 = self.pos

          _save124 = self.pos
          while true # choice
            _save125 = self.pos

            _save126 = self.pos
            while true # sequence
              _save127 = self.pos
              _tmp = match_string("`")
              _tmp = _tmp ? nil : true
              self.pos = _save127
              unless _tmp
                self.pos = _save126
                break
              end
              _tmp = apply(:_Nonspacechar)
              unless _tmp
                self.pos = _save126
              end
              break
            end # end sequence

            if _tmp
              while true

                _save128 = self.pos
                while true # sequence
                  _save129 = self.pos
                  _tmp = match_string("`")
                  _tmp = _tmp ? nil : true
                  self.pos = _save129
                  unless _tmp
                    self.pos = _save128
                    break
                  end
                  _tmp = apply(:_Nonspacechar)
                  unless _tmp
                    self.pos = _save128
                  end
                  break
                end # end sequence

                break unless _tmp
              end
              _tmp = true
            else
              self.pos = _save125
            end
            break if _tmp
            self.pos = _save124

            _save130 = self.pos
            while true # sequence
              _save131 = self.pos
              _tmp = apply(:_Ticks5)
              _tmp = _tmp ? nil : true
              self.pos = _save131
              unless _tmp
                self.pos = _save130
                break
              end
              _tmp = scan(/\A(?-mix:`+)/)
              unless _tmp
                self.pos = _save130
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save124

            _save132 = self.pos
            while true # sequence
              _save133 = self.pos

              _save134 = self.pos
              while true # sequence
                _tmp = _Sp()
                unless _tmp
                  self.pos = _save134
                  break
                end
                _tmp = apply(:_Ticks5)
                unless _tmp
                  self.pos = _save134
                end
                break
              end # end sequence

              _tmp = _tmp ? nil : true
              self.pos = _save133
              unless _tmp
                self.pos = _save132
                break
              end

              _save135 = self.pos
              while true # choice
                _tmp = _Spacechar()
                break if _tmp
                self.pos = _save135

                _save136 = self.pos
                while true # sequence
                  _tmp = _Newline()
                  unless _tmp
                    self.pos = _save136
                    break
                  end
                  _save137 = self.pos
                  _tmp = _BlankLine()
                  _tmp = _tmp ? nil : true
                  self.pos = _save137
                  unless _tmp
                    self.pos = _save136
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save135
                break
              end # end choice

              unless _tmp
                self.pos = _save132
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save124
            break
          end # end choice

          if _tmp
            while true

              _save138 = self.pos
              while true # choice
                _save139 = self.pos

                _save140 = self.pos
                while true # sequence
                  _save141 = self.pos
                  _tmp = match_string("`")
                  _tmp = _tmp ? nil : true
                  self.pos = _save141
                  unless _tmp
                    self.pos = _save140
                    break
                  end
                  _tmp = apply(:_Nonspacechar)
                  unless _tmp
                    self.pos = _save140
                  end
                  break
                end # end sequence

                if _tmp
                  while true

                    _save142 = self.pos
                    while true # sequence
                      _save143 = self.pos
                      _tmp = match_string("`")
                      _tmp = _tmp ? nil : true
                      self.pos = _save143
                      unless _tmp
                        self.pos = _save142
                        break
                      end
                      _tmp = apply(:_Nonspacechar)
                      unless _tmp
                        self.pos = _save142
                      end
                      break
                    end # end sequence

                    break unless _tmp
                  end
                  _tmp = true
                else
                  self.pos = _save139
                end
                break if _tmp
                self.pos = _save138

                _save144 = self.pos
                while true # sequence
                  _save145 = self.pos
                  _tmp = apply(:_Ticks5)
                  _tmp = _tmp ? nil : true
                  self.pos = _save145
                  unless _tmp
                    self.pos = _save144
                    break
                  end
                  _tmp = scan(/\A(?-mix:`+)/)
                  unless _tmp
                    self.pos = _save144
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save138

                _save146 = self.pos
                while true # sequence
                  _save147 = self.pos

                  _save148 = self.pos
                  while true # sequence
                    _tmp = _Sp()
                    unless _tmp
                      self.pos = _save148
                      break
                    end
                    _tmp = apply(:_Ticks5)
                    unless _tmp
                      self.pos = _save148
                    end
                    break
                  end # end sequence

                  _tmp = _tmp ? nil : true
                  self.pos = _save147
                  unless _tmp
                    self.pos = _save146
                    break
                  end

                  _save149 = self.pos
                  while true # choice
                    _tmp = _Spacechar()
                    break if _tmp
                    self.pos = _save149

                    _save150 = self.pos
                    while true # sequence
                      _tmp = _Newline()
                      unless _tmp
                        self.pos = _save150
                        break
                      end
                      _save151 = self.pos
                      _tmp = _BlankLine()
                      _tmp = _tmp ? nil : true
                      self.pos = _save151
                      unless _tmp
                        self.pos = _save150
                      end
                      break
                    end # end sequence

                    break if _tmp
                    self.pos = _save149
                    break
                  end # end choice

                  unless _tmp
                    self.pos = _save146
                  end
                  break
                end # end sequence

                break if _tmp
                self.pos = _save138
                break
              end # end choice

              break unless _tmp
            end
            _tmp = true
          else
            self.pos = _save123
          end
          if _tmp
            text = get_text(_text_start)
          end
          unless _tmp
            self.pos = _save122
            break
          end
          _tmp = _Sp()
          unless _tmp
            self.pos = _save122
            break
          end
          _tmp = apply(:_Ticks5)
          unless _tmp
            self.pos = _save122
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  "<code>#{text}</code>" ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Code unless _tmp
    return _tmp
  end

  # RawHtml = < (HtmlComment | HtmlBlockScript | HtmlTag) > { if html? then text else '' end }
  def _RawHtml

    _save = self.pos
    while true # sequence
      _text_start = self.pos

      _save1 = self.pos
      while true # choice
        _tmp = apply(:_HtmlComment)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_HtmlBlockScript)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_HtmlTag)
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  if html? then text else '' end ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_RawHtml unless _tmp
    return _tmp
  end

  # BlankLine = @Sp @Newline { "\n" }
  def _BlankLine

    _save = self.pos
    while true # sequence
      _tmp = _Sp()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Newline()
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  "\n" ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_BlankLine unless _tmp
    return _tmp
  end

  # Quoted = ("\"" (!"\"" .)* "\"" | "'" (!"'" .)* "'")
  def _Quoted

    _save = self.pos
    while true # choice

      _save1 = self.pos
      while true # sequence
        _tmp = match_string("\"")
        unless _tmp
          self.pos = _save1
          break
        end
        while true

          _save3 = self.pos
          while true # sequence
            _save4 = self.pos
            _tmp = match_string("\"")
            _tmp = _tmp ? nil : true
            self.pos = _save4
            unless _tmp
              self.pos = _save3
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save3
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
        unless _tmp
          self.pos = _save1
          break
        end
        _tmp = match_string("\"")
        unless _tmp
          self.pos = _save1
        end
        break
      end # end sequence

      break if _tmp
      self.pos = _save

      _save5 = self.pos
      while true # sequence
        _tmp = match_string("'")
        unless _tmp
          self.pos = _save5
          break
        end
        while true

          _save7 = self.pos
          while true # sequence
            _save8 = self.pos
            _tmp = match_string("'")
            _tmp = _tmp ? nil : true
            self.pos = _save8
            unless _tmp
              self.pos = _save7
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save7
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
        unless _tmp
          self.pos = _save5
          break
        end
        _tmp = match_string("'")
        unless _tmp
          self.pos = _save5
        end
        break
      end # end sequence

      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_Quoted unless _tmp
    return _tmp
  end

  # HtmlAttribute = (AlphanumericAscii | "-")+ Spnl ("=" Spnl (Quoted | (!">" Nonspacechar)+))? Spnl
  def _HtmlAttribute

    _save = self.pos
    while true # sequence
      _save1 = self.pos

      _save2 = self.pos
      while true # choice
        _tmp = apply(:_AlphanumericAscii)
        break if _tmp
        self.pos = _save2
        _tmp = match_string("-")
        break if _tmp
        self.pos = _save2
        break
      end # end choice

      if _tmp
        while true

          _save3 = self.pos
          while true # choice
            _tmp = apply(:_AlphanumericAscii)
            break if _tmp
            self.pos = _save3
            _tmp = match_string("-")
            break if _tmp
            self.pos = _save3
            break
          end # end choice

          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _save4 = self.pos

      _save5 = self.pos
      while true # sequence
        _tmp = match_string("=")
        unless _tmp
          self.pos = _save5
          break
        end
        _tmp = apply(:_Spnl)
        unless _tmp
          self.pos = _save5
          break
        end

        _save6 = self.pos
        while true # choice
          _tmp = apply(:_Quoted)
          break if _tmp
          self.pos = _save6
          _save7 = self.pos

          _save8 = self.pos
          while true # sequence
            _save9 = self.pos
            _tmp = match_string(">")
            _tmp = _tmp ? nil : true
            self.pos = _save9
            unless _tmp
              self.pos = _save8
              break
            end
            _tmp = apply(:_Nonspacechar)
            unless _tmp
              self.pos = _save8
            end
            break
          end # end sequence

          if _tmp
            while true

              _save10 = self.pos
              while true # sequence
                _save11 = self.pos
                _tmp = match_string(">")
                _tmp = _tmp ? nil : true
                self.pos = _save11
                unless _tmp
                  self.pos = _save10
                  break
                end
                _tmp = apply(:_Nonspacechar)
                unless _tmp
                  self.pos = _save10
                end
                break
              end # end sequence

              break unless _tmp
            end
            _tmp = true
          else
            self.pos = _save7
          end
          break if _tmp
          self.pos = _save6
          break
        end # end choice

        unless _tmp
          self.pos = _save5
        end
        break
      end # end sequence

      unless _tmp
        _tmp = true
        self.pos = _save4
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlAttribute unless _tmp
    return _tmp
  end

  # HtmlComment = "<!--" (!"-->" .)* "-->"
  def _HtmlComment

    _save = self.pos
    while true # sequence
      _tmp = match_string("<!--")
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save2 = self.pos
        while true # sequence
          _save3 = self.pos
          _tmp = match_string("-->")
          _tmp = _tmp ? nil : true
          self.pos = _save3
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = get_byte
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("-->")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlComment unless _tmp
    return _tmp
  end

  # HtmlTag = "<" Spnl "/"? AlphanumericAscii+ Spnl HtmlAttribute* "/"? Spnl ">"
  def _HtmlTag

    _save = self.pos
    while true # sequence
      _tmp = match_string("<")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = match_string("/")
      unless _tmp
        _tmp = true
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = apply(:_AlphanumericAscii)
      if _tmp
        while true
          _tmp = apply(:_AlphanumericAscii)
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save2
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = apply(:_HtmlAttribute)
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      _save4 = self.pos
      _tmp = match_string("/")
      unless _tmp
        _tmp = true
        self.pos = _save4
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(">")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HtmlTag unless _tmp
    return _tmp
  end

  # Eof = !.
  def _Eof
    _save = self.pos
    _tmp = get_byte
    _tmp = _tmp ? nil : true
    self.pos = _save
    set_failed_rule :_Eof unless _tmp
    return _tmp
  end

  # Nonspacechar = !@Spacechar !@Newline .
  def _Nonspacechar

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = _Spacechar()
      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _tmp = _Newline()
      _tmp = _tmp ? nil : true
      self.pos = _save2
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = get_byte
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Nonspacechar unless _tmp
    return _tmp
  end

  # Sp = @Spacechar*
  def _Sp
    while true
      _tmp = _Spacechar()
      break unless _tmp
    end
    _tmp = true
    set_failed_rule :_Sp unless _tmp
    return _tmp
  end

  # Spnl = @Sp (@Newline @Sp)?
  def _Spnl

    _save = self.pos
    while true # sequence
      _tmp = _Sp()
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos

      _save2 = self.pos
      while true # sequence
        _tmp = _Newline()
        unless _tmp
          self.pos = _save2
          break
        end
        _tmp = _Sp()
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence

      unless _tmp
        _tmp = true
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Spnl unless _tmp
    return _tmp
  end

  # SpecialChar = (/[*_`&\[\]()<!#\\'"]/ | @ExtendedSpecialChar)
  def _SpecialChar

    _save = self.pos
    while true # choice
      _tmp = scan(/\A(?-mix:[*_`&\[\]()<!#\\'"])/)
      break if _tmp
      self.pos = _save
      _tmp = _ExtendedSpecialChar()
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_SpecialChar unless _tmp
    return _tmp
  end

  # NormalChar = !(@SpecialChar | @Spacechar | @Newline) .
  def _NormalChar

    _save = self.pos
    while true # sequence
      _save1 = self.pos

      _save2 = self.pos
      while true # choice
        _tmp = _SpecialChar()
        break if _tmp
        self.pos = _save2
        _tmp = _Spacechar()
        break if _tmp
        self.pos = _save2
        _tmp = _Newline()
        break if _tmp
        self.pos = _save2
        break
      end # end choice

      _tmp = _tmp ? nil : true
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = get_byte
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_NormalChar unless _tmp
    return _tmp
  end

  # Digit = [0-9]
  def _Digit
    _save = self.pos
    _tmp = get_byte
    if _tmp
      unless _tmp >= 48 and _tmp <= 57
        self.pos = _save
        _tmp = nil
      end
    end
    set_failed_rule :_Digit unless _tmp
    return _tmp
  end

  # Alphanumeric = %literals.Alphanumeric
  def _Alphanumeric
    _tmp = @_grammar_literals.external_invoke(self, :_Alphanumeric)
    set_failed_rule :_Alphanumeric unless _tmp
    return _tmp
  end

  # AlphanumericAscii = %literals.AlphanumericAscii
  def _AlphanumericAscii
    _tmp = @_grammar_literals.external_invoke(self, :_AlphanumericAscii)
    set_failed_rule :_AlphanumericAscii unless _tmp
    return _tmp
  end

  # BOM = %literals.BOM
  def _BOM
    _tmp = @_grammar_literals.external_invoke(self, :_BOM)
    set_failed_rule :_BOM unless _tmp
    return _tmp
  end

  # Newline = %literals.Newline
  def _Newline
    _tmp = @_grammar_literals.external_invoke(self, :_Newline)
    set_failed_rule :_Newline unless _tmp
    return _tmp
  end

  # NonAlphanumeric = %literals.NonAlphanumeric
  def _NonAlphanumeric
    _tmp = @_grammar_literals.external_invoke(self, :_NonAlphanumeric)
    set_failed_rule :_NonAlphanumeric unless _tmp
    return _tmp
  end

  # Spacechar = %literals.Spacechar
  def _Spacechar
    _tmp = @_grammar_literals.external_invoke(self, :_Spacechar)
    set_failed_rule :_Spacechar unless _tmp
    return _tmp
  end

  # HexEntity = /&#x/i < /[0-9a-fA-F]+/ > ";" { [text.to_i(16)].pack 'U' }
  def _HexEntity

    _save = self.pos
    while true # sequence
      _tmp = scan(/\A(?i-mx:&#x)/)
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      _tmp = scan(/\A(?-mix:[0-9a-fA-F]+)/)
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(";")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  [text.to_i(16)].pack 'U' ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_HexEntity unless _tmp
    return _tmp
  end

  # DecEntity = "&#" < /[0-9]+/ > ";" { [text.to_i].pack 'U' }
  def _DecEntity

    _save = self.pos
    while true # sequence
      _tmp = match_string("&#")
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      _tmp = scan(/\A(?-mix:[0-9]+)/)
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(";")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  [text.to_i].pack 'U' ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_DecEntity unless _tmp
    return _tmp
  end

  # CharEntity = "&" < /[A-Za-z0-9]+/ > ";" { if entity = HTML_ENTITIES[text] then                  entity.pack 'U*'                else                  "&#{text};"                end              }
  def _CharEntity

    _save = self.pos
    while true # sequence
      _tmp = match_string("&")
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      _tmp = scan(/\A(?-mix:[A-Za-z0-9]+)/)
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(";")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  if entity = HTML_ENTITIES[text] then
                 entity.pack 'U*'
               else
                 "&#{text};"
               end
             ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_CharEntity unless _tmp
    return _tmp
  end

  # NonindentSpace = / {0,3}/
  def _NonindentSpace
    _tmp = scan(/\A(?-mix: {0,3})/)
    set_failed_rule :_NonindentSpace unless _tmp
    return _tmp
  end

  # Indent = /\t|    /
  def _Indent
    _tmp = scan(/\A(?-mix:\t|    )/)
    set_failed_rule :_Indent unless _tmp
    return _tmp
  end

  # IndentedLine = Indent Line
  def _IndentedLine

    _save = self.pos
    while true # sequence
      _tmp = apply(:_Indent)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Line)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_IndentedLine unless _tmp
    return _tmp
  end

  # OptionallyIndentedLine = Indent? Line
  def _OptionallyIndentedLine

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = apply(:_Indent)
      unless _tmp
        _tmp = true
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Line)
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_OptionallyIndentedLine unless _tmp
    return _tmp
  end

  # StartList = &. { [] }
  def _StartList

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = get_byte
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  [] ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_StartList unless _tmp
    return _tmp
  end

  # Line = @RawLine:a { a }
  def _Line

    _save = self.pos
    while true # sequence
      _tmp = _RawLine()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Line unless _tmp
    return _tmp
  end

  # RawLine = (< (!"\r" !"\n" .)* @Newline > | < .+ > @Eof) { text }
  def _RawLine

    _save = self.pos
    while true # sequence

      _save1 = self.pos
      while true # choice
        _text_start = self.pos

        _save2 = self.pos
        while true # sequence
          while true

            _save4 = self.pos
            while true # sequence
              _save5 = self.pos
              _tmp = match_string("\r")
              _tmp = _tmp ? nil : true
              self.pos = _save5
              unless _tmp
                self.pos = _save4
                break
              end
              _save6 = self.pos
              _tmp = match_string("\n")
              _tmp = _tmp ? nil : true
              self.pos = _save6
              unless _tmp
                self.pos = _save4
                break
              end
              _tmp = get_byte
              unless _tmp
                self.pos = _save4
              end
              break
            end # end sequence

            break unless _tmp
          end
          _tmp = true
          unless _tmp
            self.pos = _save2
            break
          end
          _tmp = _Newline()
          unless _tmp
            self.pos = _save2
          end
          break
        end # end sequence

        if _tmp
          text = get_text(_text_start)
        end
        break if _tmp
        self.pos = _save1

        _save7 = self.pos
        while true # sequence
          _text_start = self.pos
          _save8 = self.pos
          _tmp = get_byte
          if _tmp
            while true
              _tmp = get_byte
              break unless _tmp
            end
            _tmp = true
          else
            self.pos = _save8
          end
          if _tmp
            text = get_text(_text_start)
          end
          unless _tmp
            self.pos = _save7
            break
          end
          _tmp = _Eof()
          unless _tmp
            self.pos = _save7
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save1
        break
      end # end choice

      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_RawLine unless _tmp
    return _tmp
  end

  # SkipBlock = (HtmlBlock | (!"#" !SetextBottom1 !SetextBottom2 !@BlankLine @RawLine)+ @BlankLine* | @BlankLine+ | @RawLine)
  def _SkipBlock

    _save = self.pos
    while true # choice
      _tmp = apply(:_HtmlBlock)
      break if _tmp
      self.pos = _save

      _save1 = self.pos
      while true # sequence
        _save2 = self.pos

        _save3 = self.pos
        while true # sequence
          _save4 = self.pos
          _tmp = match_string("#")
          _tmp = _tmp ? nil : true
          self.pos = _save4
          unless _tmp
            self.pos = _save3
            break
          end
          _save5 = self.pos
          _tmp = apply(:_SetextBottom1)
          _tmp = _tmp ? nil : true
          self.pos = _save5
          unless _tmp
            self.pos = _save3
            break
          end
          _save6 = self.pos
          _tmp = apply(:_SetextBottom2)
          _tmp = _tmp ? nil : true
          self.pos = _save6
          unless _tmp
            self.pos = _save3
            break
          end
          _save7 = self.pos
          _tmp = _BlankLine()
          _tmp = _tmp ? nil : true
          self.pos = _save7
          unless _tmp
            self.pos = _save3
            break
          end
          _tmp = _RawLine()
          unless _tmp
            self.pos = _save3
          end
          break
        end # end sequence

        if _tmp
          while true

            _save8 = self.pos
            while true # sequence
              _save9 = self.pos
              _tmp = match_string("#")
              _tmp = _tmp ? nil : true
              self.pos = _save9
              unless _tmp
                self.pos = _save8
                break
              end
              _save10 = self.pos
              _tmp = apply(:_SetextBottom1)
              _tmp = _tmp ? nil : true
              self.pos = _save10
              unless _tmp
                self.pos = _save8
                break
              end
              _save11 = self.pos
              _tmp = apply(:_SetextBottom2)
              _tmp = _tmp ? nil : true
              self.pos = _save11
              unless _tmp
                self.pos = _save8
                break
              end
              _save12 = self.pos
              _tmp = _BlankLine()
              _tmp = _tmp ? nil : true
              self.pos = _save12
              unless _tmp
                self.pos = _save8
                break
              end
              _tmp = _RawLine()
              unless _tmp
                self.pos = _save8
              end
              break
            end # end sequence

            break unless _tmp
          end
          _tmp = true
        else
          self.pos = _save2
        end
        unless _tmp
          self.pos = _save1
          break
        end
        while true
          _tmp = _BlankLine()
          break unless _tmp
        end
        _tmp = true
        unless _tmp
          self.pos = _save1
        end
        break
      end # end sequence

      break if _tmp
      self.pos = _save
      _save14 = self.pos
      _tmp = _BlankLine()
      if _tmp
        while true
          _tmp = _BlankLine()
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save14
      end
      break if _tmp
      self.pos = _save
      _tmp = _RawLine()
      break if _tmp
      self.pos = _save
      break
    end # end choice

    set_failed_rule :_SkipBlock unless _tmp
    return _tmp
  end

  # ExtendedSpecialChar = &{ notes? } "^"
  def _ExtendedSpecialChar

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = begin;  notes? ; end
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("^")
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_ExtendedSpecialChar unless _tmp
    return _tmp
  end

  # NoteReference = &{ notes? } RawNoteReference:ref { note_for ref }
  def _NoteReference

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = begin;  notes? ; end
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_RawNoteReference)
      ref = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  note_for ref ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_NoteReference unless _tmp
    return _tmp
  end

  # RawNoteReference = "[^" < (!@Newline !"]" .)+ > "]" { text }
  def _RawNoteReference

    _save = self.pos
    while true # sequence
      _tmp = match_string("[^")
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      _save1 = self.pos

      _save2 = self.pos
      while true # sequence
        _save3 = self.pos
        _tmp = _Newline()
        _tmp = _tmp ? nil : true
        self.pos = _save3
        unless _tmp
          self.pos = _save2
          break
        end
        _save4 = self.pos
        _tmp = match_string("]")
        _tmp = _tmp ? nil : true
        self.pos = _save4
        unless _tmp
          self.pos = _save2
          break
        end
        _tmp = get_byte
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence

      if _tmp
        while true

          _save5 = self.pos
          while true # sequence
            _save6 = self.pos
            _tmp = _Newline()
            _tmp = _tmp ? nil : true
            self.pos = _save6
            unless _tmp
              self.pos = _save5
              break
            end
            _save7 = self.pos
            _tmp = match_string("]")
            _tmp = _tmp ? nil : true
            self.pos = _save7
            unless _tmp
              self.pos = _save5
              break
            end
            _tmp = get_byte
            unless _tmp
              self.pos = _save5
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("]")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_RawNoteReference unless _tmp
    return _tmp
  end

  # Note = &{ notes? } @NonindentSpace RawNoteReference:ref ":" @Sp @StartList:a RawNoteBlock:i { a.concat i } (&Indent RawNoteBlock:i { a.concat i })* { @footnotes[ref] = paragraph a                    nil                 }
  def _Note

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = begin;  notes? ; end
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _NonindentSpace()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_RawNoteReference)
      ref = @result
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(":")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Sp()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_RawNoteBlock)
      i = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a.concat i ; end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      while true

        _save3 = self.pos
        while true # sequence
          _save4 = self.pos
          _tmp = apply(:_Indent)
          self.pos = _save4
          unless _tmp
            self.pos = _save3
            break
          end
          _tmp = apply(:_RawNoteBlock)
          i = @result
          unless _tmp
            self.pos = _save3
            break
          end
          @result = begin;  a.concat i ; end
          _tmp = true
          unless _tmp
            self.pos = _save3
          end
          break
        end # end sequence

        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  @footnotes[ref] = paragraph a

                  nil
                ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_Note unless _tmp
    return _tmp
  end

  # InlineNote = &{ notes? } "^[" @StartList:a (!"]" Inline:l { a << l })+ "]" {                ref = [:inline, @note_order.length]                @footnotes[ref] = paragraph a                 note_for ref              }
  def _InlineNote

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = begin;  notes? ; end
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("^[")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos

      _save3 = self.pos
      while true # sequence
        _save4 = self.pos
        _tmp = match_string("]")
        _tmp = _tmp ? nil : true
        self.pos = _save4
        unless _tmp
          self.pos = _save3
          break
        end
        _tmp = apply(:_Inline)
        l = @result
        unless _tmp
          self.pos = _save3
          break
        end
        @result = begin;  a << l ; end
        _tmp = true
        unless _tmp
          self.pos = _save3
        end
        break
      end # end sequence

      if _tmp
        while true

          _save5 = self.pos
          while true # sequence
            _save6 = self.pos
            _tmp = match_string("]")
            _tmp = _tmp ? nil : true
            self.pos = _save6
            unless _tmp
              self.pos = _save5
              break
            end
            _tmp = apply(:_Inline)
            l = @result
            unless _tmp
              self.pos = _save5
              break
            end
            @result = begin;  a << l ; end
            _tmp = true
            unless _tmp
              self.pos = _save5
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save2
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string("]")
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;
               ref = [:inline, @note_order.length]
               @footnotes[ref] = paragraph a

               note_for ref
             ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_InlineNote unless _tmp
    return _tmp
  end

  # Notes = (Note | SkipBlock)*
  def _Notes
    while true

      _save1 = self.pos
      while true # choice
        _tmp = apply(:_Note)
        break if _tmp
        self.pos = _save1
        _tmp = apply(:_SkipBlock)
        break if _tmp
        self.pos = _save1
        break
      end # end choice

      break unless _tmp
    end
    _tmp = true
    set_failed_rule :_Notes unless _tmp
    return _tmp
  end

  # RawNoteBlock = @StartList:a (!@BlankLine OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }
  def _RawNoteBlock

    _save = self.pos
    while true # sequence
      _tmp = _StartList()
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos

      _save2 = self.pos
      while true # sequence
        _save3 = self.pos
        _tmp = _BlankLine()
        _tmp = _tmp ? nil : true
        self.pos = _save3
        unless _tmp
          self.pos = _save2
          break
        end
        _tmp = apply(:_OptionallyIndentedLine)
        l = @result
        unless _tmp
          self.pos = _save2
          break
        end
        @result = begin;  a << l ; end
        _tmp = true
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence

      if _tmp
        while true

          _save4 = self.pos
          while true # sequence
            _save5 = self.pos
            _tmp = _BlankLine()
            _tmp = _tmp ? nil : true
            self.pos = _save5
            unless _tmp
              self.pos = _save4
              break
            end
            _tmp = apply(:_OptionallyIndentedLine)
            l = @result
            unless _tmp
              self.pos = _save4
              break
            end
            @result = begin;  a << l ; end
            _tmp = true
            unless _tmp
              self.pos = _save4
            end
            break
          end # end sequence

          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      while true
        _tmp = _BlankLine()
        break unless _tmp
      end
      _tmp = true
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a << text ; end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_RawNoteBlock unless _tmp
    return _tmp
  end

  # CodeFence = &{ github? } Ticks3 (@Sp StrChunk:format)? Spnl < ((!"`" Nonspacechar)+ | !Ticks3 /`+/ | Spacechar | @Newline)+ > Ticks3 @Sp @Newline* { verbatim = RDoc::Markup::Verbatim.new text               verbatim.format = format.intern if format               verbatim             }
  def _CodeFence

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = begin;  github? ; end
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Ticks3)
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos

      _save3 = self.pos
      while true # sequence
        _tmp = _Sp()
        unless _tmp
          self.pos = _save3
          break
        end
        _tmp = apply(:_StrChunk)
        format = @result
        unless _tmp
          self.pos = _save3
        end
        break
      end # end sequence

      unless _tmp
        _tmp = true
        self.pos = _save2
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Spnl)
      unless _tmp
        self.pos = _save
        break
      end
      _text_start = self.pos
      _save4 = self.pos

      _save5 = self.pos
      while true # choice
        _save6 = self.pos

        _save7 = self.pos
        while true # sequence
          _save8 = self.pos
          _tmp = match_string("`")
          _tmp = _tmp ? nil : true
          self.pos = _save8
          unless _tmp
            self.pos = _save7
            break
          end
          _tmp = apply(:_Nonspacechar)
          unless _tmp
            self.pos = _save7
          end
          break
        end # end sequence

        if _tmp
          while true

            _save9 = self.pos
            while true # sequence
              _save10 = self.pos
              _tmp = match_string("`")
              _tmp = _tmp ? nil : true
              self.pos = _save10
              unless _tmp
                self.pos = _save9
                break
              end
              _tmp = apply(:_Nonspacechar)
              unless _tmp
                self.pos = _save9
              end
              break
            end # end sequence

            break unless _tmp
          end
          _tmp = true
        else
          self.pos = _save6
        end
        break if _tmp
        self.pos = _save5

        _save11 = self.pos
        while true # sequence
          _save12 = self.pos
          _tmp = apply(:_Ticks3)
          _tmp = _tmp ? nil : true
          self.pos = _save12
          unless _tmp
            self.pos = _save11
            break
          end
          _tmp = scan(/\A(?-mix:`+)/)
          unless _tmp
            self.pos = _save11
          end
          break
        end # end sequence

        break if _tmp
        self.pos = _save5
        _tmp = apply(:_Spacechar)
        break if _tmp
        self.pos = _save5
        _tmp = _Newline()
        break if _tmp
        self.pos = _save5
        break
      end # end choice

      if _tmp
        while true

          _save13 = self.pos
          while true # choice
            _save14 = self.pos

            _save15 = self.pos
            while true # sequence
              _save16 = self.pos
              _tmp = match_string("`")
              _tmp = _tmp ? nil : true
              self.pos = _save16
              unless _tmp
                self.pos = _save15
                break
              end
              _tmp = apply(:_Nonspacechar)
              unless _tmp
                self.pos = _save15
              end
              break
            end # end sequence

            if _tmp
              while true

                _save17 = self.pos
                while true # sequence
                  _save18 = self.pos
                  _tmp = match_string("`")
                  _tmp = _tmp ? nil : true
                  self.pos = _save18
                  unless _tmp
                    self.pos = _save17
                    break
                  end
                  _tmp = apply(:_Nonspacechar)
                  unless _tmp
                    self.pos = _save17
                  end
                  break
                end # end sequence

                break unless _tmp
              end
              _tmp = true
            else
              self.pos = _save14
            end
            break if _tmp
            self.pos = _save13

            _save19 = self.pos
            while true # sequence
              _save20 = self.pos
              _tmp = apply(:_Ticks3)
              _tmp = _tmp ? nil : true
              self.pos = _save20
              unless _tmp
                self.pos = _save19
                break
              end
              _tmp = scan(/\A(?-mix:`+)/)
              unless _tmp
                self.pos = _save19
              end
              break
            end # end sequence

            break if _tmp
            self.pos = _save13
            _tmp = apply(:_Spacechar)
            break if _tmp
            self.pos = _save13
            _tmp = _Newline()
            break if _tmp
            self.pos = _save13
            break
          end # end choice

          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save4
      end
      if _tmp
        text = get_text(_text_start)
      end
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Ticks3)
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Sp()
      unless _tmp
        self.pos = _save
        break
      end
      while true
        _tmp = _Newline()
        break unless _tmp
      end
      _tmp = true
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  verbatim = RDoc::Markup::Verbatim.new text
              verbatim.format = format.intern if format
              verbatim
            ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_CodeFence unless _tmp
    return _tmp
  end

  # DefinitionList = &{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }
  def _DefinitionList

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _tmp = begin;  definition_lists? ; end
      self.pos = _save1
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _ary = []
      _tmp = apply(:_DefinitionListItem)
      if _tmp
        _ary << @result
        while true
          _tmp = apply(:_DefinitionListItem)
          _ary << @result if _tmp
          break unless _tmp
        end
        _tmp = true
        @result = _ary
      else
        self.pos = _save2
      end
      list = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  RDoc::Markup::List.new :NOTE, *list.flatten ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_DefinitionList unless _tmp
    return _tmp
  end

  # DefinitionListItem = DefinitionListLabel+:label DefinitionListDefinition+:defns { list_items = []                        list_items <<                          RDoc::Markup::ListItem.new(label, defns.shift)                         list_items.concat defns.map { |defn|                          RDoc::Markup::ListItem.new nil, defn                        } unless list_items.empty?                         list_items                      }
  def _DefinitionListItem

    _save = self.pos
    while true # sequence
      _save1 = self.pos
      _ary = []
      _tmp = apply(:_DefinitionListLabel)
      if _tmp
        _ary << @result
        while true
          _tmp = apply(:_DefinitionListLabel)
          _ary << @result if _tmp
          break unless _tmp
        end
        _tmp = true
        @result = _ary
      else
        self.pos = _save1
      end
      label = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save2 = self.pos
      _ary = []
      _tmp = apply(:_DefinitionListDefinition)
      if _tmp
        _ary << @result
        while true
          _tmp = apply(:_DefinitionListDefinition)
          _ary << @result if _tmp
          break unless _tmp
        end
        _tmp = true
        @result = _ary
      else
        self.pos = _save2
      end
      defns = @result
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  list_items = []
                       list_items <<
                         RDoc::Markup::ListItem.new(label, defns.shift)

                       list_items.concat defns.map { |defn|
                         RDoc::Markup::ListItem.new nil, defn
                       } unless list_items.empty?

                       list_items
                     ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_DefinitionListItem unless _tmp
    return _tmp
  end

  # DefinitionListLabel = StrChunk:label @Sp @Newline { label }
  def _DefinitionListLabel

    _save = self.pos
    while true # sequence
      _tmp = apply(:_StrChunk)
      label = @result
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Sp()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Newline()
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  label ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_DefinitionListLabel unless _tmp
    return _tmp
  end

  # DefinitionListDefinition = @NonindentSpace ":" @Space Inlines:a @BlankLine+ { paragraph a }
  def _DefinitionListDefinition

    _save = self.pos
    while true # sequence
      _tmp = _NonindentSpace()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = match_string(":")
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = _Space()
      unless _tmp
        self.pos = _save
        break
      end
      _tmp = apply(:_Inlines)
      a = @result
      unless _tmp
        self.pos = _save
        break
      end
      _save1 = self.pos
      _tmp = _BlankLine()
      if _tmp
        while true
          _tmp = _BlankLine()
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save1
      end
      unless _tmp
        self.pos = _save
        break
      end
      @result = begin;  paragraph a ; end
      _tmp = true
      unless _tmp
        self.pos = _save
      end
      break
    end # end sequence

    set_failed_rule :_DefinitionListDefinition unless _tmp
    return _tmp
  end

  Rules = {}
  Rules[:_root] = rule_info("root", "Doc")
  Rules[:_Doc] = rule_info("Doc", "BOM? Block*:a { RDoc::Markup::Document.new(*a.compact) }")
  Rules[:_Block] = rule_info("Block", "@BlankLine* (BlockQuote | Verbatim | CodeFence | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)")
  Rules[:_Para] = rule_info("Para", "@NonindentSpace Inlines:a @BlankLine+ { paragraph a }")
  Rules[:_Plain] = rule_info("Plain", "Inlines:a { paragraph a }")
  Rules[:_AtxInline] = rule_info("AtxInline", "!@Newline !(@Sp? /\#*/ @Sp @Newline) Inline")
  Rules[:_AtxStart] = rule_info("AtxStart", "< /\\\#{1,6}/ > { text.length }")
  Rules[:_AtxHeading] = rule_info("AtxHeading", "AtxStart:s @Sp? AtxInline+:a (@Sp? /\#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }")
  Rules[:_SetextHeading] = rule_info("SetextHeading", "(SetextHeading1 | SetextHeading2)")
  Rules[:_SetextBottom1] = rule_info("SetextBottom1", "/={3,}/ @Newline")
  Rules[:_SetextBottom2] = rule_info("SetextBottom2", "/-{3,}/ @Newline")
  Rules[:_SetextHeading1] = rule_info("SetextHeading1", "&(@RawLine SetextBottom1) @StartList:a (!@Endline Inline:b { a << b })+ @Sp? @Newline SetextBottom1 { RDoc::Markup::Heading.new(1, a.join) }")
  Rules[:_SetextHeading2] = rule_info("SetextHeading2", "&(@RawLine SetextBottom2) @StartList:a (!@Endline Inline:b { a << b })+ @Sp? @Newline SetextBottom2 { RDoc::Markup::Heading.new(2, a.join) }")
  Rules[:_Heading] = rule_info("Heading", "(SetextHeading | AtxHeading)")
  Rules[:_BlockQuote] = rule_info("BlockQuote", "BlockQuoteRaw:a { RDoc::Markup::BlockQuote.new(*a) }")
  Rules[:_BlockQuoteRaw] = rule_info("BlockQuoteRaw", "@StartList:a (\">\" \" \"? Line:l { a << l } (!\">\" !@BlankLine Line:c { a << c })* (@BlankLine:n { a << n })*)+ { inner_parse a.join }")
  Rules[:_NonblankIndentedLine] = rule_info("NonblankIndentedLine", "!@BlankLine IndentedLine")
  Rules[:_VerbatimChunk] = rule_info("VerbatimChunk", "@BlankLine*:a NonblankIndentedLine+:b { a.concat b }")
  Rules[:_Verbatim] = rule_info("Verbatim", "VerbatimChunk+:a { RDoc::Markup::Verbatim.new(*a.flatten) }")
  Rules[:_HorizontalRule] = rule_info("HorizontalRule", "@NonindentSpace (\"*\" @Sp \"*\" @Sp \"*\" (@Sp \"*\")* | \"-\" @Sp \"-\" @Sp \"-\" (@Sp \"-\")* | \"_\" @Sp \"_\" @Sp \"_\" (@Sp \"_\")*) @Sp @Newline @BlankLine+ { RDoc::Markup::Rule.new 1 }")
  Rules[:_Bullet] = rule_info("Bullet", "!HorizontalRule @NonindentSpace /[+*-]/ @Spacechar+")
  Rules[:_BulletList] = rule_info("BulletList", "&Bullet (ListTight | ListLoose):a { RDoc::Markup::List.new(:BULLET, *a) }")
  Rules[:_ListTight] = rule_info("ListTight", "ListItemTight+:a @BlankLine* !(Bullet | Enumerator) { a }")
  Rules[:_ListLoose] = rule_info("ListLoose", "@StartList:a (ListItem:b @BlankLine* { a << b })+ { a }")
  Rules[:_ListItem] = rule_info("ListItem", "(Bullet | Enumerator) @StartList:a ListBlock:b { a << b } (ListContinuationBlock:c { a.push(*c) })* { list_item_from a }")
  Rules[:_ListItemTight] = rule_info("ListItemTight", "(Bullet | Enumerator) ListBlock:a (!@BlankLine ListContinuationBlock:b { a.push(*b) })* !ListContinuationBlock { list_item_from a }")
  Rules[:_ListBlock] = rule_info("ListBlock", "!@BlankLine Line:a ListBlockLine*:c { [a, *c] }")
  Rules[:_ListContinuationBlock] = rule_info("ListContinuationBlock", "@StartList:a @BlankLine* { a << \"\\n\" } (Indent ListBlock:b { a.concat b })+ { a }")
  Rules[:_Enumerator] = rule_info("Enumerator", "@NonindentSpace [0-9]+ \".\" @Spacechar+")
  Rules[:_OrderedList] = rule_info("OrderedList", "&Enumerator (ListTight | ListLoose):a { RDoc::Markup::List.new(:NUMBER, *a) }")
  Rules[:_ListBlockLine] = rule_info("ListBlockLine", "!@BlankLine !(Indent? (Bullet | Enumerator)) !HorizontalRule OptionallyIndentedLine")
  Rules[:_HtmlOpenAnchor] = rule_info("HtmlOpenAnchor", "\"<\" Spnl (\"a\" | \"A\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlCloseAnchor] = rule_info("HtmlCloseAnchor", "\"<\" Spnl \"/\" (\"a\" | \"A\") Spnl \">\"")
  Rules[:_HtmlAnchor] = rule_info("HtmlAnchor", "HtmlOpenAnchor (HtmlAnchor | !HtmlCloseAnchor .)* HtmlCloseAnchor")
  Rules[:_HtmlBlockOpenAddress] = rule_info("HtmlBlockOpenAddress", "\"<\" Spnl (\"address\" | \"ADDRESS\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseAddress] = rule_info("HtmlBlockCloseAddress", "\"<\" Spnl \"/\" (\"address\" | \"ADDRESS\") Spnl \">\"")
  Rules[:_HtmlBlockAddress] = rule_info("HtmlBlockAddress", "HtmlBlockOpenAddress (HtmlBlockAddress | !HtmlBlockCloseAddress .)* HtmlBlockCloseAddress")
  Rules[:_HtmlBlockOpenBlockquote] = rule_info("HtmlBlockOpenBlockquote", "\"<\" Spnl (\"blockquote\" | \"BLOCKQUOTE\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseBlockquote] = rule_info("HtmlBlockCloseBlockquote", "\"<\" Spnl \"/\" (\"blockquote\" | \"BLOCKQUOTE\") Spnl \">\"")
  Rules[:_HtmlBlockBlockquote] = rule_info("HtmlBlockBlockquote", "HtmlBlockOpenBlockquote (HtmlBlockBlockquote | !HtmlBlockCloseBlockquote .)* HtmlBlockCloseBlockquote")
  Rules[:_HtmlBlockOpenCenter] = rule_info("HtmlBlockOpenCenter", "\"<\" Spnl (\"center\" | \"CENTER\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseCenter] = rule_info("HtmlBlockCloseCenter", "\"<\" Spnl \"/\" (\"center\" | \"CENTER\") Spnl \">\"")
  Rules[:_HtmlBlockCenter] = rule_info("HtmlBlockCenter", "HtmlBlockOpenCenter (HtmlBlockCenter | !HtmlBlockCloseCenter .)* HtmlBlockCloseCenter")
  Rules[:_HtmlBlockOpenDir] = rule_info("HtmlBlockOpenDir", "\"<\" Spnl (\"dir\" | \"DIR\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseDir] = rule_info("HtmlBlockCloseDir", "\"<\" Spnl \"/\" (\"dir\" | \"DIR\") Spnl \">\"")
  Rules[:_HtmlBlockDir] = rule_info("HtmlBlockDir", "HtmlBlockOpenDir (HtmlBlockDir | !HtmlBlockCloseDir .)* HtmlBlockCloseDir")
  Rules[:_HtmlBlockOpenDiv] = rule_info("HtmlBlockOpenDiv", "\"<\" Spnl (\"div\" | \"DIV\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseDiv] = rule_info("HtmlBlockCloseDiv", "\"<\" Spnl \"/\" (\"div\" | \"DIV\") Spnl \">\"")
  Rules[:_HtmlBlockDiv] = rule_info("HtmlBlockDiv", "HtmlBlockOpenDiv (HtmlBlockDiv | !HtmlBlockCloseDiv .)* HtmlBlockCloseDiv")
  Rules[:_HtmlBlockOpenDl] = rule_info("HtmlBlockOpenDl", "\"<\" Spnl (\"dl\" | \"DL\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseDl] = rule_info("HtmlBlockCloseDl", "\"<\" Spnl \"/\" (\"dl\" | \"DL\") Spnl \">\"")
  Rules[:_HtmlBlockDl] = rule_info("HtmlBlockDl", "HtmlBlockOpenDl (HtmlBlockDl | !HtmlBlockCloseDl .)* HtmlBlockCloseDl")
  Rules[:_HtmlBlockOpenFieldset] = rule_info("HtmlBlockOpenFieldset", "\"<\" Spnl (\"fieldset\" | \"FIELDSET\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseFieldset] = rule_info("HtmlBlockCloseFieldset", "\"<\" Spnl \"/\" (\"fieldset\" | \"FIELDSET\") Spnl \">\"")
  Rules[:_HtmlBlockFieldset] = rule_info("HtmlBlockFieldset", "HtmlBlockOpenFieldset (HtmlBlockFieldset | !HtmlBlockCloseFieldset .)* HtmlBlockCloseFieldset")
  Rules[:_HtmlBlockOpenForm] = rule_info("HtmlBlockOpenForm", "\"<\" Spnl (\"form\" | \"FORM\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseForm] = rule_info("HtmlBlockCloseForm", "\"<\" Spnl \"/\" (\"form\" | \"FORM\") Spnl \">\"")
  Rules[:_HtmlBlockForm] = rule_info("HtmlBlockForm", "HtmlBlockOpenForm (HtmlBlockForm | !HtmlBlockCloseForm .)* HtmlBlockCloseForm")
  Rules[:_HtmlBlockOpenH1] = rule_info("HtmlBlockOpenH1", "\"<\" Spnl (\"h1\" | \"H1\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseH1] = rule_info("HtmlBlockCloseH1", "\"<\" Spnl \"/\" (\"h1\" | \"H1\") Spnl \">\"")
  Rules[:_HtmlBlockH1] = rule_info("HtmlBlockH1", "HtmlBlockOpenH1 (HtmlBlockH1 | !HtmlBlockCloseH1 .)* HtmlBlockCloseH1")
  Rules[:_HtmlBlockOpenH2] = rule_info("HtmlBlockOpenH2", "\"<\" Spnl (\"h2\" | \"H2\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseH2] = rule_info("HtmlBlockCloseH2", "\"<\" Spnl \"/\" (\"h2\" | \"H2\") Spnl \">\"")
  Rules[:_HtmlBlockH2] = rule_info("HtmlBlockH2", "HtmlBlockOpenH2 (HtmlBlockH2 | !HtmlBlockCloseH2 .)* HtmlBlockCloseH2")
  Rules[:_HtmlBlockOpenH3] = rule_info("HtmlBlockOpenH3", "\"<\" Spnl (\"h3\" | \"H3\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseH3] = rule_info("HtmlBlockCloseH3", "\"<\" Spnl \"/\" (\"h3\" | \"H3\") Spnl \">\"")
  Rules[:_HtmlBlockH3] = rule_info("HtmlBlockH3", "HtmlBlockOpenH3 (HtmlBlockH3 | !HtmlBlockCloseH3 .)* HtmlBlockCloseH3")
  Rules[:_HtmlBlockOpenH4] = rule_info("HtmlBlockOpenH4", "\"<\" Spnl (\"h4\" | \"H4\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseH4] = rule_info("HtmlBlockCloseH4", "\"<\" Spnl \"/\" (\"h4\" | \"H4\") Spnl \">\"")
  Rules[:_HtmlBlockH4] = rule_info("HtmlBlockH4", "HtmlBlockOpenH4 (HtmlBlockH4 | !HtmlBlockCloseH4 .)* HtmlBlockCloseH4")
  Rules[:_HtmlBlockOpenH5] = rule_info("HtmlBlockOpenH5", "\"<\" Spnl (\"h5\" | \"H5\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseH5] = rule_info("HtmlBlockCloseH5", "\"<\" Spnl \"/\" (\"h5\" | \"H5\") Spnl \">\"")
  Rules[:_HtmlBlockH5] = rule_info("HtmlBlockH5", "HtmlBlockOpenH5 (HtmlBlockH5 | !HtmlBlockCloseH5 .)* HtmlBlockCloseH5")
  Rules[:_HtmlBlockOpenH6] = rule_info("HtmlBlockOpenH6", "\"<\" Spnl (\"h6\" | \"H6\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseH6] = rule_info("HtmlBlockCloseH6", "\"<\" Spnl \"/\" (\"h6\" | \"H6\") Spnl \">\"")
  Rules[:_HtmlBlockH6] = rule_info("HtmlBlockH6", "HtmlBlockOpenH6 (HtmlBlockH6 | !HtmlBlockCloseH6 .)* HtmlBlockCloseH6")
  Rules[:_HtmlBlockOpenMenu] = rule_info("HtmlBlockOpenMenu", "\"<\" Spnl (\"menu\" | \"MENU\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseMenu] = rule_info("HtmlBlockCloseMenu", "\"<\" Spnl \"/\" (\"menu\" | \"MENU\") Spnl \">\"")
  Rules[:_HtmlBlockMenu] = rule_info("HtmlBlockMenu", "HtmlBlockOpenMenu (HtmlBlockMenu | !HtmlBlockCloseMenu .)* HtmlBlockCloseMenu")
  Rules[:_HtmlBlockOpenNoframes] = rule_info("HtmlBlockOpenNoframes", "\"<\" Spnl (\"noframes\" | \"NOFRAMES\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseNoframes] = rule_info("HtmlBlockCloseNoframes", "\"<\" Spnl \"/\" (\"noframes\" | \"NOFRAMES\") Spnl \">\"")
  Rules[:_HtmlBlockNoframes] = rule_info("HtmlBlockNoframes", "HtmlBlockOpenNoframes (HtmlBlockNoframes | !HtmlBlockCloseNoframes .)* HtmlBlockCloseNoframes")
  Rules[:_HtmlBlockOpenNoscript] = rule_info("HtmlBlockOpenNoscript", "\"<\" Spnl (\"noscript\" | \"NOSCRIPT\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseNoscript] = rule_info("HtmlBlockCloseNoscript", "\"<\" Spnl \"/\" (\"noscript\" | \"NOSCRIPT\") Spnl \">\"")
  Rules[:_HtmlBlockNoscript] = rule_info("HtmlBlockNoscript", "HtmlBlockOpenNoscript (HtmlBlockNoscript | !HtmlBlockCloseNoscript .)* HtmlBlockCloseNoscript")
  Rules[:_HtmlBlockOpenOl] = rule_info("HtmlBlockOpenOl", "\"<\" Spnl (\"ol\" | \"OL\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseOl] = rule_info("HtmlBlockCloseOl", "\"<\" Spnl \"/\" (\"ol\" | \"OL\") Spnl \">\"")
  Rules[:_HtmlBlockOl] = rule_info("HtmlBlockOl", "HtmlBlockOpenOl (HtmlBlockOl | !HtmlBlockCloseOl .)* HtmlBlockCloseOl")
  Rules[:_HtmlBlockOpenP] = rule_info("HtmlBlockOpenP", "\"<\" Spnl (\"p\" | \"P\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseP] = rule_info("HtmlBlockCloseP", "\"<\" Spnl \"/\" (\"p\" | \"P\") Spnl \">\"")
  Rules[:_HtmlBlockP] = rule_info("HtmlBlockP", "HtmlBlockOpenP (HtmlBlockP | !HtmlBlockCloseP .)* HtmlBlockCloseP")
  Rules[:_HtmlBlockOpenPre] = rule_info("HtmlBlockOpenPre", "\"<\" Spnl (\"pre\" | \"PRE\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockClosePre] = rule_info("HtmlBlockClosePre", "\"<\" Spnl \"/\" (\"pre\" | \"PRE\") Spnl \">\"")
  Rules[:_HtmlBlockPre] = rule_info("HtmlBlockPre", "HtmlBlockOpenPre (HtmlBlockPre | !HtmlBlockClosePre .)* HtmlBlockClosePre")
  Rules[:_HtmlBlockOpenTable] = rule_info("HtmlBlockOpenTable", "\"<\" Spnl (\"table\" | \"TABLE\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseTable] = rule_info("HtmlBlockCloseTable", "\"<\" Spnl \"/\" (\"table\" | \"TABLE\") Spnl \">\"")
  Rules[:_HtmlBlockTable] = rule_info("HtmlBlockTable", "HtmlBlockOpenTable (HtmlBlockTable | !HtmlBlockCloseTable .)* HtmlBlockCloseTable")
  Rules[:_HtmlBlockOpenUl] = rule_info("HtmlBlockOpenUl", "\"<\" Spnl (\"ul\" | \"UL\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseUl] = rule_info("HtmlBlockCloseUl", "\"<\" Spnl \"/\" (\"ul\" | \"UL\") Spnl \">\"")
  Rules[:_HtmlBlockUl] = rule_info("HtmlBlockUl", "HtmlBlockOpenUl (HtmlBlockUl | !HtmlBlockCloseUl .)* HtmlBlockCloseUl")
  Rules[:_HtmlBlockOpenDd] = rule_info("HtmlBlockOpenDd", "\"<\" Spnl (\"dd\" | \"DD\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseDd] = rule_info("HtmlBlockCloseDd", "\"<\" Spnl \"/\" (\"dd\" | \"DD\") Spnl \">\"")
  Rules[:_HtmlBlockDd] = rule_info("HtmlBlockDd", "HtmlBlockOpenDd (HtmlBlockDd | !HtmlBlockCloseDd .)* HtmlBlockCloseDd")
  Rules[:_HtmlBlockOpenDt] = rule_info("HtmlBlockOpenDt", "\"<\" Spnl (\"dt\" | \"DT\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseDt] = rule_info("HtmlBlockCloseDt", "\"<\" Spnl \"/\" (\"dt\" | \"DT\") Spnl \">\"")
  Rules[:_HtmlBlockDt] = rule_info("HtmlBlockDt", "HtmlBlockOpenDt (HtmlBlockDt | !HtmlBlockCloseDt .)* HtmlBlockCloseDt")
  Rules[:_HtmlBlockOpenFrameset] = rule_info("HtmlBlockOpenFrameset", "\"<\" Spnl (\"frameset\" | \"FRAMESET\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseFrameset] = rule_info("HtmlBlockCloseFrameset", "\"<\" Spnl \"/\" (\"frameset\" | \"FRAMESET\") Spnl \">\"")
  Rules[:_HtmlBlockFrameset] = rule_info("HtmlBlockFrameset", "HtmlBlockOpenFrameset (HtmlBlockFrameset | !HtmlBlockCloseFrameset .)* HtmlBlockCloseFrameset")
  Rules[:_HtmlBlockOpenLi] = rule_info("HtmlBlockOpenLi", "\"<\" Spnl (\"li\" | \"LI\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseLi] = rule_info("HtmlBlockCloseLi", "\"<\" Spnl \"/\" (\"li\" | \"LI\") Spnl \">\"")
  Rules[:_HtmlBlockLi] = rule_info("HtmlBlockLi", "HtmlBlockOpenLi (HtmlBlockLi | !HtmlBlockCloseLi .)* HtmlBlockCloseLi")
  Rules[:_HtmlBlockOpenTbody] = rule_info("HtmlBlockOpenTbody", "\"<\" Spnl (\"tbody\" | \"TBODY\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseTbody] = rule_info("HtmlBlockCloseTbody", "\"<\" Spnl \"/\" (\"tbody\" | \"TBODY\") Spnl \">\"")
  Rules[:_HtmlBlockTbody] = rule_info("HtmlBlockTbody", "HtmlBlockOpenTbody (HtmlBlockTbody | !HtmlBlockCloseTbody .)* HtmlBlockCloseTbody")
  Rules[:_HtmlBlockOpenTd] = rule_info("HtmlBlockOpenTd", "\"<\" Spnl (\"td\" | \"TD\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseTd] = rule_info("HtmlBlockCloseTd", "\"<\" Spnl \"/\" (\"td\" | \"TD\") Spnl \">\"")
  Rules[:_HtmlBlockTd] = rule_info("HtmlBlockTd", "HtmlBlockOpenTd (HtmlBlockTd | !HtmlBlockCloseTd .)* HtmlBlockCloseTd")
  Rules[:_HtmlBlockOpenTfoot] = rule_info("HtmlBlockOpenTfoot", "\"<\" Spnl (\"tfoot\" | \"TFOOT\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseTfoot] = rule_info("HtmlBlockCloseTfoot", "\"<\" Spnl \"/\" (\"tfoot\" | \"TFOOT\") Spnl \">\"")
  Rules[:_HtmlBlockTfoot] = rule_info("HtmlBlockTfoot", "HtmlBlockOpenTfoot (HtmlBlockTfoot | !HtmlBlockCloseTfoot .)* HtmlBlockCloseTfoot")
  Rules[:_HtmlBlockOpenTh] = rule_info("HtmlBlockOpenTh", "\"<\" Spnl (\"th\" | \"TH\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseTh] = rule_info("HtmlBlockCloseTh", "\"<\" Spnl \"/\" (\"th\" | \"TH\") Spnl \">\"")
  Rules[:_HtmlBlockTh] = rule_info("HtmlBlockTh", "HtmlBlockOpenTh (HtmlBlockTh | !HtmlBlockCloseTh .)* HtmlBlockCloseTh")
  Rules[:_HtmlBlockOpenThead] = rule_info("HtmlBlockOpenThead", "\"<\" Spnl (\"thead\" | \"THEAD\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseThead] = rule_info("HtmlBlockCloseThead", "\"<\" Spnl \"/\" (\"thead\" | \"THEAD\") Spnl \">\"")
  Rules[:_HtmlBlockThead] = rule_info("HtmlBlockThead", "HtmlBlockOpenThead (HtmlBlockThead | !HtmlBlockCloseThead .)* HtmlBlockCloseThead")
  Rules[:_HtmlBlockOpenTr] = rule_info("HtmlBlockOpenTr", "\"<\" Spnl (\"tr\" | \"TR\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseTr] = rule_info("HtmlBlockCloseTr", "\"<\" Spnl \"/\" (\"tr\" | \"TR\") Spnl \">\"")
  Rules[:_HtmlBlockTr] = rule_info("HtmlBlockTr", "HtmlBlockOpenTr (HtmlBlockTr | !HtmlBlockCloseTr .)* HtmlBlockCloseTr")
  Rules[:_HtmlBlockOpenScript] = rule_info("HtmlBlockOpenScript", "\"<\" Spnl (\"script\" | \"SCRIPT\") Spnl HtmlAttribute* \">\"")
  Rules[:_HtmlBlockCloseScript] = rule_info("HtmlBlockCloseScript", "\"<\" Spnl \"/\" (\"script\" | \"SCRIPT\") Spnl \">\"")
  Rules[:_HtmlBlockScript] = rule_info("HtmlBlockScript", "HtmlBlockOpenScript (!HtmlBlockCloseScript .)* HtmlBlockCloseScript")
  Rules[:_HtmlBlockInTags] = rule_info("HtmlBlockInTags", "(HtmlAnchor | HtmlBlockAddress | HtmlBlockBlockquote | HtmlBlockCenter | HtmlBlockDir | HtmlBlockDiv | HtmlBlockDl | HtmlBlockFieldset | HtmlBlockForm | HtmlBlockH1 | HtmlBlockH2 | HtmlBlockH3 | HtmlBlockH4 | HtmlBlockH5 | HtmlBlockH6 | HtmlBlockMenu | HtmlBlockNoframes | HtmlBlockNoscript | HtmlBlockOl | HtmlBlockP | HtmlBlockPre | HtmlBlockTable | HtmlBlockUl | HtmlBlockDd | HtmlBlockDt | HtmlBlockFrameset | HtmlBlockLi | HtmlBlockTbody | HtmlBlockTd | HtmlBlockTfoot | HtmlBlockTh | HtmlBlockThead | HtmlBlockTr | HtmlBlockScript)")
  Rules[:_HtmlBlock] = rule_info("HtmlBlock", "< (HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) > @BlankLine+ { if html? then                 RDoc::Markup::Raw.new text               end }")
  Rules[:_HtmlUnclosed] = rule_info("HtmlUnclosed", "\"<\" Spnl HtmlUnclosedType Spnl HtmlAttribute* Spnl \">\"")
  Rules[:_HtmlUnclosedType] = rule_info("HtmlUnclosedType", "(\"HR\" | \"hr\")")
  Rules[:_HtmlBlockSelfClosing] = rule_info("HtmlBlockSelfClosing", "\"<\" Spnl HtmlBlockType Spnl HtmlAttribute* \"/\" Spnl \">\"")
  Rules[:_HtmlBlockType] = rule_info("HtmlBlockType", "(\"ADDRESS\" | \"BLOCKQUOTE\" | \"CENTER\" | \"DD\" | \"DIR\" | \"DIV\" | \"DL\" | \"DT\" | \"FIELDSET\" | \"FORM\" | \"FRAMESET\" | \"H1\" | \"H2\" | \"H3\" | \"H4\" | \"H5\" | \"H6\" | \"HR\" | \"ISINDEX\" | \"LI\" | \"MENU\" | \"NOFRAMES\" | \"NOSCRIPT\" | \"OL\" | \"P\" | \"PRE\" | \"SCRIPT\" | \"TABLE\" | \"TBODY\" | \"TD\" | \"TFOOT\" | \"TH\" | \"THEAD\" | \"TR\" | \"UL\" | \"address\" | \"blockquote\" | \"center\" | \"dd\" | \"dir\" | \"div\" | \"dl\" | \"dt\" | \"fieldset\" | \"form\" | \"frameset\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"hr\" | \"isindex\" | \"li\" | \"menu\" | \"noframes\" | \"noscript\" | \"ol\" | \"p\" | \"pre\" | \"script\" | \"table\" | \"tbody\" | \"td\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"ul\")")
  Rules[:_StyleOpen] = rule_info("StyleOpen", "\"<\" Spnl (\"style\" | \"STYLE\") Spnl HtmlAttribute* \">\"")
  Rules[:_StyleClose] = rule_info("StyleClose", "\"<\" Spnl \"/\" (\"style\" | \"STYLE\") Spnl \">\"")
  Rules[:_InStyleTags] = rule_info("InStyleTags", "StyleOpen (!StyleClose .)* StyleClose")
  Rules[:_StyleBlock] = rule_info("StyleBlock", "< InStyleTags > @BlankLine* { if css? then                     RDoc::Markup::Raw.new text                   end }")
  Rules[:_Inlines] = rule_info("Inlines", "(!@Endline Inline:i { i } | @Endline:c &Inline { c })+:chunks @Endline? { chunks }")
  Rules[:_Inline] = rule_info("Inline", "(Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)")
  Rules[:_Space] = rule_info("Space", "@Spacechar+ { \" \" }")
  Rules[:_Str] = rule_info("Str", "@StartList:a < @NormalChar+ > { a = text } (StrChunk:c { a << c })* { a }")
  Rules[:_StrChunk] = rule_info("StrChunk", "< (@NormalChar | /_+/ &Alphanumeric)+ > { text }")
  Rules[:_EscapedChar] = rule_info("EscapedChar", "\"\\\\\" !@Newline < /[:\\\\`|*_{}\\[\\]()\#+.!><-]/ > { text }")
  Rules[:_Entity] = rule_info("Entity", "(HexEntity | DecEntity | CharEntity):a { a }")
  Rules[:_Endline] = rule_info("Endline", "(@LineBreak | @TerminalEndline | @NormalEndline)")
  Rules[:_NormalEndline] = rule_info("NormalEndline", "@Sp @Newline !@BlankLine !\">\" !AtxStart !(Line /={3,}|-{3,}=/ @Newline) { \"\\n\" }")
  Rules[:_TerminalEndline] = rule_info("TerminalEndline", "@Sp @Newline @Eof")
  Rules[:_LineBreak] = rule_info("LineBreak", "\"  \" @NormalEndline { RDoc::Markup::HardBreak.new }")
  Rules[:_Symbol] = rule_info("Symbol", "< @SpecialChar > { text }")
  Rules[:_UlOrStarLine] = rule_info("UlOrStarLine", "(UlLine | StarLine):a { a }")
  Rules[:_StarLine] = rule_info("StarLine", "(< /\\*{4,}/ > { text } | < @Spacechar /\\*+/ &@Spacechar > { text })")
  Rules[:_UlLine] = rule_info("UlLine", "(< /_{4,}/ > { text } | < @Spacechar /_+/ &@Spacechar > { text })")
  Rules[:_Emph] = rule_info("Emph", "(EmphStar | EmphUl)")
  Rules[:_OneStarOpen] = rule_info("OneStarOpen", "!StarLine \"*\" !@Spacechar !@Newline")
  Rules[:_OneStarClose] = rule_info("OneStarClose", "!@Spacechar !@Newline Inline:a \"*\" { a }")
  Rules[:_EmphStar] = rule_info("EmphStar", "OneStarOpen @StartList:a (!OneStarClose Inline:l { a << l })* OneStarClose:l { a << l } { emphasis a.join }")
  Rules[:_OneUlOpen] = rule_info("OneUlOpen", "!UlLine \"_\" !@Spacechar !@Newline")
  Rules[:_OneUlClose] = rule_info("OneUlClose", "!@Spacechar !@Newline Inline:a \"_\" { a }")
  Rules[:_EmphUl] = rule_info("EmphUl", "OneUlOpen @StartList:a (!OneUlClose Inline:l { a << l })* OneUlClose:l { a << l } { emphasis a.join }")
  Rules[:_Strong] = rule_info("Strong", "(StrongStar | StrongUl)")
  Rules[:_TwoStarOpen] = rule_info("TwoStarOpen", "!StarLine \"**\" !@Spacechar !@Newline")
  Rules[:_TwoStarClose] = rule_info("TwoStarClose", "!@Spacechar !@Newline Inline:a \"**\" { a }")
  Rules[:_StrongStar] = rule_info("StrongStar", "TwoStarOpen @StartList:a (!TwoStarClose Inline:l { a << l })* TwoStarClose:l { a << l } { strong a.join }")
  Rules[:_TwoUlOpen] = rule_info("TwoUlOpen", "!UlLine \"__\" !@Spacechar !@Newline")
  Rules[:_TwoUlClose] = rule_info("TwoUlClose", "!@Spacechar !@Newline Inline:a \"__\" { a }")
  Rules[:_StrongUl] = rule_info("StrongUl", "TwoUlOpen @StartList:a (!TwoUlClose Inline:i { a << i })* TwoUlClose:l { a << l } { strong a.join }")
  Rules[:_Image] = rule_info("Image", "\"!\" (ExplicitLink | ReferenceLink):a { \"rdoc-image:\#{a[/\\[(.*)\\]/, 1]}\" }")
  Rules[:_Link] = rule_info("Link", "(ExplicitLink | ReferenceLink | AutoLink)")
  Rules[:_ReferenceLink] = rule_info("ReferenceLink", "(ReferenceLinkDouble | ReferenceLinkSingle)")
  Rules[:_ReferenceLinkDouble] = rule_info("ReferenceLinkDouble", "Label:content < Spnl > !\"[]\" Label:label { link_to content, label, text }")
  Rules[:_ReferenceLinkSingle] = rule_info("ReferenceLinkSingle", "Label:content < (Spnl \"[]\")? > { link_to content, content, text }")
  Rules[:_ExplicitLink] = rule_info("ExplicitLink", "Label:l Spnl \"(\" @Sp Source:s Spnl Title @Sp \")\" { \"{\#{l}}[\#{s}]\" }")
  Rules[:_Source] = rule_info("Source", "(\"<\" < SourceContents > \">\" | < SourceContents >) { text }")
  Rules[:_SourceContents] = rule_info("SourceContents", "(((!\"(\" !\")\" !\">\" Nonspacechar)+ | \"(\" SourceContents \")\")* | \"\")")
  Rules[:_Title] = rule_info("Title", "(TitleSingle | TitleDouble | \"\"):a { a }")
  Rules[:_TitleSingle] = rule_info("TitleSingle", "\"'\" (!(\"'\" @Sp (\")\" | @Newline)) .)* \"'\"")
  Rules[:_TitleDouble] = rule_info("TitleDouble", "\"\\\"\" (!(\"\\\"\" @Sp (\")\" | @Newline)) .)* \"\\\"\"")
  Rules[:_AutoLink] = rule_info("AutoLink", "(AutoLinkUrl | AutoLinkEmail)")
  Rules[:_AutoLinkUrl] = rule_info("AutoLinkUrl", "\"<\" < /[A-Za-z]+/ \"://\" (!@Newline !\">\" .)+ > \">\" { text }")
  Rules[:_AutoLinkEmail] = rule_info("AutoLinkEmail", "\"<\" \"mailto:\"? < /[\\w+.\\/!%~$-]+/i \"@\" (!@Newline !\">\" .)+ > \">\" { \"mailto:\#{text}\" }")
  Rules[:_Reference] = rule_info("Reference", "@NonindentSpace !\"[]\" Label:label \":\" Spnl RefSrc:link RefTitle @BlankLine+ { \# TODO use title               reference label, link               nil             }")
  Rules[:_Label] = rule_info("Label", "\"[\" (!\"^\" &{ notes? } | &. &{ !notes? }) @StartList:a (!\"]\" Inline:l { a << l })* \"]\" { a.join.gsub(/\\s+/, ' ') }")
  Rules[:_RefSrc] = rule_info("RefSrc", "< Nonspacechar+ > { text }")
  Rules[:_RefTitle] = rule_info("RefTitle", "(RefTitleSingle | RefTitleDouble | RefTitleParens | EmptyTitle)")
  Rules[:_EmptyTitle] = rule_info("EmptyTitle", "\"\"")
  Rules[:_RefTitleSingle] = rule_info("RefTitleSingle", "Spnl \"'\" < (!(\"'\" @Sp @Newline | @Newline) .)* > \"'\" { text }")
  Rules[:_RefTitleDouble] = rule_info("RefTitleDouble", "Spnl \"\\\"\" < (!(\"\\\"\" @Sp @Newline | @Newline) .)* > \"\\\"\" { text }")
  Rules[:_RefTitleParens] = rule_info("RefTitleParens", "Spnl \"(\" < (!(\")\" @Sp @Newline | @Newline) .)* > \")\" { text }")
  Rules[:_References] = rule_info("References", "(Reference | SkipBlock)*")
  Rules[:_Ticks1] = rule_info("Ticks1", "\"`\" !\"`\"")
  Rules[:_Ticks2] = rule_info("Ticks2", "\"``\" !\"`\"")
  Rules[:_Ticks3] = rule_info("Ticks3", "\"```\" !\"`\"")
  Rules[:_Ticks4] = rule_info("Ticks4", "\"````\" !\"`\"")
  Rules[:_Ticks5] = rule_info("Ticks5", "\"`````\" !\"`\"")
  Rules[:_Code] = rule_info("Code", "(Ticks1 @Sp < ((!\"`\" Nonspacechar)+ | !Ticks1 /`+/ | !(@Sp Ticks1) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks1 | Ticks2 @Sp < ((!\"`\" Nonspacechar)+ | !Ticks2 /`+/ | !(@Sp Ticks2) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks2 | Ticks3 @Sp < ((!\"`\" Nonspacechar)+ | !Ticks3 /`+/ | !(@Sp Ticks3) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks3 | Ticks4 @Sp < ((!\"`\" Nonspacechar)+ | !Ticks4 /`+/ | !(@Sp Ticks4) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks4 | Ticks5 @Sp < ((!\"`\" Nonspacechar)+ | !Ticks5 /`+/ | !(@Sp Ticks5) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks5) { \"<code>\#{text}</code>\" }")
  Rules[:_RawHtml] = rule_info("RawHtml", "< (HtmlComment | HtmlBlockScript | HtmlTag) > { if html? then text else '' end }")
  Rules[:_BlankLine] = rule_info("BlankLine", "@Sp @Newline { \"\\n\" }")
  Rules[:_Quoted] = rule_info("Quoted", "(\"\\\"\" (!\"\\\"\" .)* \"\\\"\" | \"'\" (!\"'\" .)* \"'\")")
  Rules[:_HtmlAttribute] = rule_info("HtmlAttribute", "(AlphanumericAscii | \"-\")+ Spnl (\"=\" Spnl (Quoted | (!\">\" Nonspacechar)+))? Spnl")
  Rules[:_HtmlComment] = rule_info("HtmlComment", "\"<!--\" (!\"-->\" .)* \"-->\"")
  Rules[:_HtmlTag] = rule_info("HtmlTag", "\"<\" Spnl \"/\"? AlphanumericAscii+ Spnl HtmlAttribute* \"/\"? Spnl \">\"")
  Rules[:_Eof] = rule_info("Eof", "!.")
  Rules[:_Nonspacechar] = rule_info("Nonspacechar", "!@Spacechar !@Newline .")
  Rules[:_Sp] = rule_info("Sp", "@Spacechar*")
  Rules[:_Spnl] = rule_info("Spnl", "@Sp (@Newline @Sp)?")
  Rules[:_SpecialChar] = rule_info("SpecialChar", "(/[*_`&\\[\\]()<!\#\\\\'\"]/ | @ExtendedSpecialChar)")
  Rules[:_NormalChar] = rule_info("NormalChar", "!(@SpecialChar | @Spacechar | @Newline) .")
  Rules[:_Digit] = rule_info("Digit", "[0-9]")
  Rules[:_Alphanumeric] = rule_info("Alphanumeric", "%literals.Alphanumeric")
  Rules[:_AlphanumericAscii] = rule_info("AlphanumericAscii", "%literals.AlphanumericAscii")
  Rules[:_BOM] = rule_info("BOM", "%literals.BOM")
  Rules[:_Newline] = rule_info("Newline", "%literals.Newline")
  Rules[:_NonAlphanumeric] = rule_info("NonAlphanumeric", "%literals.NonAlphanumeric")
  Rules[:_Spacechar] = rule_info("Spacechar", "%literals.Spacechar")
  Rules[:_HexEntity] = rule_info("HexEntity", "/&\#x/i < /[0-9a-fA-F]+/ > \";\" { [text.to_i(16)].pack 'U' }")
  Rules[:_DecEntity] = rule_info("DecEntity", "\"&\#\" < /[0-9]+/ > \";\" { [text.to_i].pack 'U' }")
  Rules[:_CharEntity] = rule_info("CharEntity", "\"&\" < /[A-Za-z0-9]+/ > \";\" { if entity = HTML_ENTITIES[text] then                  entity.pack 'U*'                else                  \"&\#{text};\"                end              }")
  Rules[:_NonindentSpace] = rule_info("NonindentSpace", "/ {0,3}/")
  Rules[:_Indent] = rule_info("Indent", "/\\t|    /")
  Rules[:_IndentedLine] = rule_info("IndentedLine", "Indent Line")
  Rules[:_OptionallyIndentedLine] = rule_info("OptionallyIndentedLine", "Indent? Line")
  Rules[:_StartList] = rule_info("StartList", "&. { [] }")
  Rules[:_Line] = rule_info("Line", "@RawLine:a { a }")
  Rules[:_RawLine] = rule_info("RawLine", "(< (!\"\\r\" !\"\\n\" .)* @Newline > | < .+ > @Eof) { text }")
  Rules[:_SkipBlock] = rule_info("SkipBlock", "(HtmlBlock | (!\"\#\" !SetextBottom1 !SetextBottom2 !@BlankLine @RawLine)+ @BlankLine* | @BlankLine+ | @RawLine)")
  Rules[:_ExtendedSpecialChar] = rule_info("ExtendedSpecialChar", "&{ notes? } \"^\"")
  Rules[:_NoteReference] = rule_info("NoteReference", "&{ notes? } RawNoteReference:ref { note_for ref }")
  Rules[:_RawNoteReference] = rule_info("RawNoteReference", "\"[^\" < (!@Newline !\"]\" .)+ > \"]\" { text }")
  Rules[:_Note] = rule_info("Note", "&{ notes? } @NonindentSpace RawNoteReference:ref \":\" @Sp @StartList:a RawNoteBlock:i { a.concat i } (&Indent RawNoteBlock:i { a.concat i })* { @footnotes[ref] = paragraph a                    nil                 }")
  Rules[:_InlineNote] = rule_info("InlineNote", "&{ notes? } \"^[\" @StartList:a (!\"]\" Inline:l { a << l })+ \"]\" {                ref = [:inline, @note_order.length]                @footnotes[ref] = paragraph a                 note_for ref              }")
  Rules[:_Notes] = rule_info("Notes", "(Note | SkipBlock)*")
  Rules[:_RawNoteBlock] = rule_info("RawNoteBlock", "@StartList:a (!@BlankLine OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }")
  Rules[:_CodeFence] = rule_info("CodeFence", "&{ github? } Ticks3 (@Sp StrChunk:format)? Spnl < ((!\"`\" Nonspacechar)+ | !Ticks3 /`+/ | Spacechar | @Newline)+ > Ticks3 @Sp @Newline* { verbatim = RDoc::Markup::Verbatim.new text               verbatim.format = format.intern if format               verbatim             }")
  Rules[:_DefinitionList] = rule_info("DefinitionList", "&{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }")
  Rules[:_DefinitionListItem] = rule_info("DefinitionListItem", "DefinitionListLabel+:label DefinitionListDefinition+:defns { list_items = []                        list_items <<                          RDoc::Markup::ListItem.new(label, defns.shift)                         list_items.concat defns.map { |defn|                          RDoc::Markup::ListItem.new nil, defn                        } unless list_items.empty?                         list_items                      }")
  Rules[:_DefinitionListLabel] = rule_info("DefinitionListLabel", "StrChunk:label @Sp @Newline { label }")
  Rules[:_DefinitionListDefinition] = rule_info("DefinitionListDefinition", "@NonindentSpace \":\" @Space Inlines:a @BlankLine+ { paragraph a }")
  # :startdoc:
end
lib64/ruby/2.2.0/rdoc/token_stream.rb000064400000004744150402106140013055 0ustar00##
# A TokenStream is a list of tokens, gathered during the parse of some entity
# (say a method). Entities populate these streams by being registered with the
# lexer. Any class can collect tokens by including TokenStream. From the
# outside, you use such an object by calling the start_collecting_tokens
# method, followed by calls to add_token and pop_token.

module RDoc::TokenStream

  ##
  # Converts +token_stream+ to HTML wrapping various tokens with
  # <tt><span></tt> elements.  The following tokens types are wrapped in spans
  # with the given class names:
  #
  # TkCONSTANT :: 'ruby-constant'
  # TkKW       :: 'ruby-keyword'
  # TkIVAR     :: 'ruby-ivar'
  # TkOp       :: 'ruby-operator'
  # TkId       :: 'ruby-identifier'
  # TkNode     :: 'ruby-node'
  # TkCOMMENT  :: 'ruby-comment'
  # TkREGEXP   :: 'ruby-regexp'
  # TkSTRING   :: 'ruby-string'
  # TkVal      :: 'ruby-value'
  #
  # Other token types are not wrapped in spans.

  def self.to_html token_stream
    token_stream.map do |t|
      next unless t

      style = case t
              when RDoc::RubyToken::TkCONSTANT then 'ruby-constant'
              when RDoc::RubyToken::TkKW       then 'ruby-keyword'
              when RDoc::RubyToken::TkIVAR     then 'ruby-ivar'
              when RDoc::RubyToken::TkOp       then 'ruby-operator'
              when RDoc::RubyToken::TkId       then 'ruby-identifier'
              when RDoc::RubyToken::TkNode     then 'ruby-node'
              when RDoc::RubyToken::TkCOMMENT  then 'ruby-comment'
              when RDoc::RubyToken::TkREGEXP   then 'ruby-regexp'
              when RDoc::RubyToken::TkSTRING   then 'ruby-string'
              when RDoc::RubyToken::TkVal      then 'ruby-value'
              end

      text = CGI.escapeHTML t.text

      if style then
        "<span class=\"#{style}\">#{text}</span>"
      else
        text
      end
    end.join
  end

  ##
  # Adds +tokens+ to the collected tokens

  def add_tokens(*tokens)
    tokens.flatten.each { |token| @token_stream << token }
  end

  alias add_token add_tokens

  ##
  # Starts collecting tokens

  def collect_tokens
    @token_stream = []
  end

  alias start_collecting_tokens collect_tokens

  ##
  # Remove the last token from the collected tokens

  def pop_token
    @token_stream.pop
  end

  ##
  # Current token stream

  def token_stream
    @token_stream
  end

  ##
  # Returns a string representation of the token stream

  def tokens_to_s
    token_stream.compact.map { |token| token.text }.join ''
  end

end

lib64/ruby/2.2.0/rdoc/top_level.rb000064400000012644150402106140012351 0ustar00##
# A TopLevel context is a representation of the contents of a single file

class RDoc::TopLevel < RDoc::Context

  MARSHAL_VERSION = 0 # :nodoc:

  ##
  # This TopLevel's File::Stat struct

  attr_accessor :file_stat

  ##
  # Relative name of this file

  attr_accessor :relative_name

  ##
  # Absolute name of this file

  attr_accessor :absolute_name

  ##
  # All the classes or modules that were declared in
  # this file. These are assigned to either +#classes_hash+
  # or +#modules_hash+ once we know what they really are.

  attr_reader :classes_or_modules

  attr_accessor :diagram # :nodoc:

  ##
  # The parser class that processed this file

  attr_accessor :parser

  ##
  # Creates a new TopLevel for the file at +absolute_name+.  If documentation
  # is being generated outside the source dir +relative_name+ is relative to
  # the source directory.

  def initialize absolute_name, relative_name = absolute_name
    super()
    @name = nil
    @absolute_name = absolute_name
    @relative_name = relative_name
    @file_stat     = File.stat(absolute_name) rescue nil # HACK for testing
    @diagram       = nil
    @parser        = nil

    @classes_or_modules = []
  end

  ##
  # An RDoc::TopLevel is equal to another with the same relative_name

  def == other
    self.class === other and @relative_name == other.relative_name
  end

  alias eql? ==

  ##
  # Adds +an_alias+ to +Object+ instead of +self+.

  def add_alias(an_alias)
    object_class.record_location self
    return an_alias unless @document_self
    object_class.add_alias an_alias
  end

  ##
  # Adds +constant+ to +Object+ instead of +self+.

  def add_constant constant
    object_class.record_location self
    return constant unless @document_self
    object_class.add_constant constant
  end

  ##
  # Adds +include+ to +Object+ instead of +self+.

  def add_include(include)
    object_class.record_location self
    return include unless @document_self
    object_class.add_include include
  end

  ##
  # Adds +method+ to +Object+ instead of +self+.

  def add_method(method)
    object_class.record_location self
    return method unless @document_self
    object_class.add_method method
  end

  ##
  # Adds class or module +mod+. Used in the building phase
  # by the Ruby parser.

  def add_to_classes_or_modules mod
    @classes_or_modules << mod
  end

  ##
  # Base name of this file

  def base_name
    File.basename @relative_name
  end

  alias name base_name

  ##
  # Only a TopLevel that contains text file) will be displayed.  See also
  # RDoc::CodeObject#display?

  def display?
    text? and super
  end

  ##
  # See RDoc::TopLevel::find_class_or_module
  #--
  # TODO Why do we search through all classes/modules found, not just the
  #       ones of this instance?

  def find_class_or_module name
    @store.find_class_or_module name
  end

  ##
  # Finds a class or module named +symbol+

  def find_local_symbol(symbol)
    find_class_or_module(symbol) || super
  end

  ##
  # Finds a module or class with +name+

  def find_module_named(name)
    find_class_or_module(name)
  end

  ##
  # Returns the relative name of this file

  def full_name
    @relative_name
  end

  ##
  # An RDoc::TopLevel has the same hash as another with the same
  # relative_name

  def hash
    @relative_name.hash
  end

  ##
  # URL for this with a +prefix+

  def http_url(prefix)
    path = [prefix, @relative_name.tr('.', '_')]

    File.join(*path.compact) + '.html'
  end

  def inspect # :nodoc:
    "#<%s:0x%x %p modules: %p classes: %p>" % [
      self.class, object_id,
      base_name,
      @modules.map { |n,m| m },
      @classes.map { |n,c| c }
    ]
  end

  ##
  # Time this file was last modified, if known

  def last_modified
    @file_stat ? file_stat.mtime : nil
  end

  ##
  # Dumps this TopLevel for use by ri.  See also #marshal_load

  def marshal_dump
    [
      MARSHAL_VERSION,
      @relative_name,
      @parser,
      parse(@comment),
    ]
  end

  ##
  # Loads this TopLevel from +array+.

  def marshal_load array # :nodoc:
    initialize array[1]

    @parser  = array[2]
    @comment = array[3]

    @file_stat          = nil
  end

  ##
  # Returns the NormalClass "Object", creating it if not found.
  #
  # Records +self+ as a location in "Object".

  def object_class
    @object_class ||= begin
      oc = @store.find_class_named('Object') || add_class(RDoc::NormalClass, 'Object')
      oc.record_location self
      oc
    end
  end

  ##
  # Base name of this file without the extension

  def page_name
    basename = File.basename @relative_name
    basename =~ /\.(rb|rdoc|txt|md)$/i

    $` || basename
  end

  ##
  # Path to this file for use with HTML generator output.

  def path
    http_url @store.rdoc.generator.file_dir
  end

  def pretty_print q # :nodoc:
    q.group 2, "[#{self.class}: ", "]" do
      q.text "base name: #{base_name.inspect}"
      q.breakable

      items = @modules.map { |n,m| m }
      items.concat @modules.map { |n,c| c }
      q.seplist items do |mod| q.pp mod end
    end
  end

  ##
  # Search record used by RDoc::Generator::JsonIndex

  def search_record
    return unless @parser < RDoc::Parser::Text

    [
      page_name,
      '',
      page_name,
      '',
      path,
      '',
      snippet(@comment),
    ]
  end

  ##
  # Is this TopLevel from a text file instead of a source code file?

  def text?
    @parser and @parser.ancestors.include? RDoc::Parser::Text
  end

  def to_s # :nodoc:
    "file #{full_name}"
  end

end

lib64/ruby/2.2.0/rdoc/stats/quiet.rb000064400000001442150402106140012637 0ustar00##
# Stats printer that prints nothing

class RDoc::Stats::Quiet

  ##
  # Creates a new Quiet that will print nothing

  def initialize num_files
    @num_files = num_files
  end

  ##
  # Prints a message at the beginning of parsing

  def begin_adding(*) end

  ##
  # Prints when an alias is added

  def print_alias(*) end

  ##
  # Prints when an attribute is added

  def print_attribute(*) end

  ##
  # Prints when a class is added

  def print_class(*) end

  ##
  # Prints when a constant is added

  def print_constant(*) end

  ##
  # Prints when a file is added

  def print_file(*) end

  ##
  # Prints when a method is added

  def print_method(*) end

  ##
  # Prints when a module is added

  def print_module(*) end

  ##
  # Prints when RDoc is done

  def done_adding(*) end

end

lib64/ruby/2.2.0/rdoc/stats/verbose.rb000064400000001726150402106140013162 0ustar00##
# Stats printer that prints everything documented, including the documented
# status

class RDoc::Stats::Verbose < RDoc::Stats::Normal

  ##
  # Returns a marker for RDoc::CodeObject +co+ being undocumented

  def nodoc co
    " (undocumented)" unless co.documented?
  end

  def print_alias as # :nodoc:
    puts "    alias #{as.new_name} #{as.old_name}#{nodoc as}"
  end

  def print_attribute attribute # :nodoc:
    puts "    #{attribute.definition} #{attribute.name}#{nodoc attribute}"
  end

  def print_class(klass) # :nodoc:
    puts "  class #{klass.full_name}#{nodoc klass}"
  end

  def print_constant(constant) # :nodoc:
    puts "    #{constant.name}#{nodoc constant}"
  end

  def print_file(files_so_far, file) # :nodoc:
    super
    puts
  end

  def print_method(method) # :nodoc:
    puts "    #{method.singleton ? '::' : '#'}#{method.name}#{nodoc method}"
  end

  def print_module(mod) # :nodoc:
    puts "  module #{mod.full_name}#{nodoc mod}"
  end

end


lib64/ruby/2.2.0/rdoc/stats/normal.rb000064400000003115150402106140012777 0ustar00begin
  require 'io/console/size'
rescue LoadError
end

##
# Stats printer that prints just the files being documented with a progress
# bar

class RDoc::Stats::Normal < RDoc::Stats::Quiet

  def begin_adding # :nodoc:
    puts "Parsing sources..."
    @last_width = 0
  end

  ##
  # Prints a file with a progress bar

  def print_file files_so_far, filename
    progress_bar = sprintf("%3d%% [%2d/%2d]  ",
                           100 * files_so_far / @num_files,
                           files_so_far,
                           @num_files)

    # Print a progress bar, but make sure it fits on a single line. Filename
    # will be truncated if necessary.
    terminal_width = if defined?(IO) && IO.respond_to?(:console_size)
                       IO.console_size[1].to_i.nonzero? || 80
                     else
                       80
                     end
    max_filename_size = terminal_width - progress_bar.size

    if filename.size > max_filename_size then
      # Turn "some_long_filename.rb" to "...ong_filename.rb"
      filename = filename[(filename.size - max_filename_size) .. -1]
      filename[0..2] = "..."
    end

    line = "#{progress_bar}#{filename}"
    if $stdout.tty?
      # Clean the line with whitespaces so that leftover output from the
      # previous line doesn't show up.
      $stdout.print("\r" << (" " * @last_width) << ("\b" * @last_width) << "\r") if @last_width && @last_width > 0
      @last_width = line.size
      $stdout.print("#{line}\r")
    else
      $stdout.puts(line)
    end
    $stdout.flush
  end

  def done_adding # :nodoc:
    puts
  end

end

lib64/ruby/2.2.0/rdoc/context/section.rb000064400000011471150402106140013505 0ustar00##
# A section of documentation like:
#
#   # :section: The title
#   # The body
#
# Sections can be referenced multiple times and will be collapsed into a
# single section.

class RDoc::Context::Section

  include RDoc::Text

  MARSHAL_VERSION = 0 # :nodoc:

  ##
  # Section comment

  attr_reader :comment

  ##
  # Section comments

  attr_reader :comments

  ##
  # Context this Section lives in

  attr_reader :parent

  ##
  # Section title

  attr_reader :title

  @@sequence = "SEC00000"

  ##
  # Creates a new section with +title+ and +comment+

  def initialize parent, title, comment
    @parent = parent
    @title = title ? title.strip : title

    @@sequence.succ!
    @sequence = @@sequence.dup

    @comments = []

    add_comment comment
  end

  ##
  # Sections are equal when they have the same #title

  def == other
    self.class === other and @title == other.title
  end

  ##
  # Adds +comment+ to this section

  def add_comment comment
    comment = extract_comment comment

    return if comment.empty?

    case comment
    when RDoc::Comment then
      @comments << comment
    when RDoc::Markup::Document then
      @comments.concat comment.parts
    when Array then
      @comments.concat comment
    else
      raise TypeError, "unknown comment type: #{comment.inspect}"
    end
  end

  ##
  # Anchor reference for linking to this section

  def aref
    title = @title || '[untitled]'

    CGI.escape(title).gsub('%', '-').sub(/^-/, '')
  end

  ##
  # Extracts the comment for this section from the original comment block.
  # If the first line contains :section:, strip it and use the rest.
  # Otherwise remove lines up to the line containing :section:, and look
  # for those lines again at the end and remove them. This lets us write
  #
  #   # :section: The title
  #   # The body

  def extract_comment comment
    case comment
    when Array then
      comment.map do |c|
        extract_comment c
      end
    when nil
      RDoc::Comment.new ''
    when RDoc::Comment then
      if comment.text =~ /^#[ \t]*:section:.*\n/ then
        start = $`
        rest = $'

        comment.text = if start.empty? then
                         rest
                       else
                         rest.sub(/#{start.chomp}\Z/, '')
                       end
      end

      comment
    when RDoc::Markup::Document then
      comment
    else
      raise TypeError, "unknown comment #{comment.inspect}"
    end
  end

  def inspect # :nodoc:
    "#<%s:0x%x %p>" % [self.class, object_id, title]
  end

  ##
  # The files comments in this section come from

  def in_files
    return [] if @comments.empty?

    case @comments
    when Array then
      @comments.map do |comment|
        comment.file
      end
    when RDoc::Markup::Document then
      @comment.parts.map do |document|
        document.file
      end
    else
      raise RDoc::Error, "BUG: unknown comment class #{@comments.class}"
    end
  end

  ##
  # Serializes this Section.  The title and parsed comment are saved, but not
  # the section parent which must be restored manually.

  def marshal_dump
    [
      MARSHAL_VERSION,
      @title,
      parse,
    ]
  end

  ##
  # De-serializes this Section.  The section parent must be restored manually.

  def marshal_load array
    @parent  = nil

    @title    = array[1]
    @comments = array[2]
  end

  ##
  # Parses +comment_location+ into an RDoc::Markup::Document composed of
  # multiple RDoc::Markup::Documents with their file set.

  def parse
    case @comments
    when String then
      super
    when Array then
      docs = @comments.map do |comment, location|
        doc = super comment
        doc.file = location if location
        doc
      end

      RDoc::Markup::Document.new(*docs)
    when RDoc::Comment then
      doc = super @comments.text, comments.format
      doc.file = @comments.location
      doc
    when RDoc::Markup::Document then
      return @comments
    else
      raise ArgumentError, "unknown comment class #{comments.class}"
    end
  end

  ##
  # The section's title, or 'Top Section' if the title is nil.
  #
  # This is used by the table of contents template so the name is silly.

  def plain_html
    @title || 'Top Section'
  end

  ##
  # Removes a comment from this section if it is from the same file as
  # +comment+

  def remove_comment comment
    return if @comments.empty?

    case @comments
    when Array then
      @comments.delete_if do |my_comment|
        my_comment.file == comment.file
      end
    when RDoc::Markup::Document then
      @comments.parts.delete_if do |document|
        document.file == comment.file.name
      end
    else
      raise RDoc::Error, "BUG: unknown comment class #{@comments.class}"
    end
  end

  ##
  # Section sequence number (deprecated)

  def sequence
    warn "RDoc::Context::Section#sequence is deprecated, use #aref"
    @sequence
  end

end

lib64/ruby/2.2.0/rdoc/code_objects.rb000064400000000171150402106140012773 0ustar00# This file was used to load all the RDoc::CodeObject subclasses at once.  Now
# autoload handles this.

require 'rdoc'

lib64/ruby/2.2.0/rdoc/ruby_lex.rb000064400000067334150402106140012217 0ustar00# coding: US-ASCII

#--
#   irb/ruby-lex.rb - ruby lexcal analyzer
#   	$Release Version: 0.9.5$
#   	$Revision: 17979 $
#   	$Date: 2008-07-09 10:17:05 -0700 (Wed, 09 Jul 2008) $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
#++

require "e2mmap"
require "irb/slex"
require "stringio"

##
# Ruby lexer adapted from irb.
#
# The internals are not documented because they are scary.

class RDoc::RubyLex

  ##
  # Raised upon invalid input

  class Error < RDoc::Error
  end

  # :stopdoc:

  extend Exception2MessageMapper

  def_exception(:AlreadyDefinedToken, "Already defined token(%s)")
  def_exception(:TkReading2TokenNoKey, "key nothing(key='%s')")
  def_exception(:TkSymbol2TokenNoKey, "key nothing(key='%s')")
  def_exception(:TkReading2TokenDuplicateError,
                "key duplicate(token_n='%s', key='%s')")
  def_exception(:SyntaxError, "%s")

  def_exception(:TerminateLineInput, "Terminate Line Input")

  include RDoc::RubyToken
  include IRB

  attr_accessor :continue
  attr_accessor :lex_state
  attr_reader :reader

  class << self
    attr_accessor :debug_level
  end

  def self.debug?
    @debug_level > 0
  end

  self.debug_level = 0

  # :startdoc:

  ##
  # Returns an Array of +ruby+ tokens.  See ::new for a description of
  # +options+.

  def self.tokenize ruby, options
    tokens = []

    scanner = RDoc::RubyLex.new ruby, options
    scanner.exception_on_syntax_error = true

    while token = scanner.token do
      tokens << token
    end

    tokens
  end

  ##
  # Creates a new lexer for +content+.  +options+ is an RDoc::Options, only
  # +tab_width is used.

  def initialize(content, options)
    lex_init

    if /\t/ =~ content then
      tab_width = options.tab_width
      content = content.split(/\n/).map do |line|
        1 while line.gsub!(/\t+/) {
          ' ' * (tab_width*$&.length - $`.length % tab_width)
        }  && $~
        line
      end.join("\n")
    end

    content << "\n" unless content[-1, 1] == "\n"

    set_input StringIO.new content

    @base_char_no = 0
    @char_no = 0
    @exp_line_no = @line_no = 1
    @here_readed = []
    @readed = []
    @rests = []
    @seek = 0

    @here_header = false
    @indent = 0
    @indent_stack = []
    @lex_state = :EXPR_BEG
    @space_seen = false

    @continue = false
    @line = ""

    @skip_space = false
    @readed_auto_clean_up = false
    @exception_on_syntax_error = true

    @prompt = nil
    @prev_seek = nil
    @ltype = nil
  end

  # :stopdoc:

  def inspect # :nodoc:
    "#<%s:0x%x pos %d lex_state %p space_seen %p>" % [
      self.class, object_id,
      @io.pos, @lex_state, @space_seen,
    ]
  end

  attr_accessor :skip_space
  attr_accessor :readed_auto_clean_up
  attr_accessor :exception_on_syntax_error

  attr_reader :seek
  attr_reader :char_no
  attr_reader :line_no
  attr_reader :indent

  # io functions
  def set_input(io, p = nil, &block)
    @io = io
    if p.respond_to?(:call)
      @input = p
    elsif block_given?
      @input = block
    else
      @input = Proc.new{@io.gets}
    end
  end

  def get_readed
    if idx = @readed.rindex("\n")
      @base_char_no = @readed.size - (idx + 1)
    else
      @base_char_no += @readed.size
    end

    readed = @readed.join("")
    @readed = []
    readed
  end

  def getc
    while @rests.empty?
      #      return nil unless buf_input
      @rests.push nil unless buf_input
    end
    c = @rests.shift
    if @here_header
      @here_readed.push c
    else
      @readed.push c
    end
    @seek += 1
    if c == "\n"
      @line_no += 1
      @char_no = 0
    else
      @char_no += 1
    end

    c
  end

  def gets
    l = ""
    while c = getc
      l.concat(c)
      break if c == "\n"
    end
    return nil if l == "" and c.nil?
    l
  end

  def eof?
    @io.eof?
  end

  def getc_of_rests
    if @rests.empty?
      nil
    else
      getc
    end
  end

  def ungetc(c = nil)
    if @here_readed.empty?
      c2 = @readed.pop
    else
      c2 = @here_readed.pop
    end
    c = c2 unless c
    @rests.unshift c #c =
    @seek -= 1
    if c == "\n"
      @line_no -= 1
      if idx = @readed.rindex("\n")
        @char_no = idx + 1
      else
        @char_no = @base_char_no + @readed.size
      end
    else
      @char_no -= 1
    end
  end

  def peek_equal?(str)
    chrs = str.split(//)
    until @rests.size >= chrs.size
      return false unless buf_input
    end
    @rests[0, chrs.size] == chrs
  end

  def peek_match?(regexp)
    while @rests.empty?
      return false unless buf_input
    end
    regexp =~ @rests.join("")
  end

  def peek(i = 0)
    while @rests.size <= i
      return nil unless buf_input
    end
    @rests[i]
  end

  def buf_input
    prompt
    line = @input.call
    return nil unless line
    @rests.concat line.split(//)
    true
  end
  private :buf_input

  def set_prompt(p = nil, &block)
    p = block if block_given?
    if p.respond_to?(:call)
      @prompt = p
    else
      @prompt = Proc.new{print p}
    end
  end

  def prompt
    if @prompt
      @prompt.call(@ltype, @indent, @continue, @line_no)
    end
  end

  def initialize_input
    @ltype = nil
    @quoted = nil
    @indent = 0
    @indent_stack = []
    @lex_state = :EXPR_BEG
    @space_seen = false
    @here_header = false

    @continue = false
    prompt

    @line = ""
    @exp_line_no = @line_no
  end

  def each_top_level_statement
    initialize_input
    catch(:TERM_INPUT) do
      loop do
        begin
          @continue = false
          prompt
          unless l = lex
            throw :TERM_INPUT if @line == ''
          else
            #p l
            @line.concat l
            if @ltype or @continue or @indent > 0
              next
            end
          end
          if @line != "\n"
            yield @line, @exp_line_no
          end
          break unless l
          @line = ''
          @exp_line_no = @line_no

          @indent = 0
          @indent_stack = []
          prompt
        rescue TerminateLineInput
          initialize_input
          prompt
          get_readed
        end
      end
    end
  end

  def lex
    until (((tk = token).kind_of?(TkNL) || tk.kind_of?(TkEND_OF_SCRIPT)) &&
           !@continue or
      tk.nil?)
      #p tk
      #p @lex_state
      #p self
    end
    line = get_readed
    #      print self.inspect
    if line == "" and tk.kind_of?(TkEND_OF_SCRIPT) || tk.nil?
      nil
    else
      line
    end
  end

  def token
    #      require "tracer"
    #      Tracer.on
    @prev_seek = @seek
    @prev_line_no = @line_no
    @prev_char_no = @char_no
    begin
      begin
        tk = @OP.match(self)
        @space_seen = tk.kind_of?(TkSPACE)
      rescue SyntaxError => e
        raise Error, "syntax error: #{e.message}" if
          @exception_on_syntax_error

        tk = TkError.new(@seek, @line_no, @char_no)
      end
    end while @skip_space and tk.kind_of?(TkSPACE)

    if @readed_auto_clean_up
      get_readed
    end
    #      Tracer.off
    tk
  end

  ENINDENT_CLAUSE = [
    "case", "class", "def", "do", "for", "if",
    "module", "unless", "until", "while", "begin" #, "when"
  ]

  DEINDENT_CLAUSE = ["end" #, "when"
  ]

  PERCENT_LTYPE = {
    "q" => "\'",
    "Q" => "\"",
    "x" => "\`",
    "r" => "/",
    "w" => "]",
    "W" => "]",
    "s" => ":"
  }

  PERCENT_PAREN = {
    "{" => "}",
    "[" => "]",
    "<" => ">",
    "(" => ")"
  }

  PERCENT_PAREN_REV = PERCENT_PAREN.invert

  Ltype2Token = {
    "\'" => TkSTRING,
    "\"" => TkSTRING,
    "\`" => TkXSTRING,
    "/" => TkREGEXP,
    "]" => TkDSTRING,
    ":" => TkSYMBOL
  }
  DLtype2Token = {
    "\"" => TkDSTRING,
    "\`" => TkDXSTRING,
    "/" => TkDREGEXP,
  }

  def lex_init()
    @OP = IRB::SLex.new
    @OP.def_rules("\0", "\004", "\032") do |op, io|
      Token(TkEND_OF_SCRIPT, '')
    end

    @OP.def_rules(" ", "\t", "\f", "\r", "\13") do |op, io|
      @space_seen = true
      str = op
      while (ch = getc) =~ /[ \t\f\r\13]/ do
        str << ch
      end
      ungetc
      Token TkSPACE, str
    end

    @OP.def_rule("#") do |op, io|
      identify_comment
    end

    @OP.def_rule("=begin",
                 proc{|op, io| @prev_char_no == 0 && peek(0) =~ /\s/}) do
      |op, io|
      @ltype = "="
      res = ''
      nil until getc == "\n"

      until ( peek_equal?("=end") && peek(4) =~ /\s/ ) do
        (ch = getc)
        res << ch
      end

      gets # consume =end

      @ltype = nil
      Token(TkRD_COMMENT, res)
    end

    @OP.def_rule("\n") do |op, io|
      print "\\n\n" if RDoc::RubyLex.debug?
      case @lex_state
      when :EXPR_BEG, :EXPR_FNAME, :EXPR_DOT
        @continue = true
      else
        @continue = false
        @lex_state = :EXPR_BEG
        until (@indent_stack.empty? ||
               [TkLPAREN, TkLBRACK, TkLBRACE,
                 TkfLPAREN, TkfLBRACK, TkfLBRACE].include?(@indent_stack.last))
          @indent_stack.pop
        end
      end
      @here_header = false
      @here_readed = []
      Token(TkNL)
    end

    @OP.def_rules("*", "**",
                  "=", "==", "===",
                  "=~", "<=>",
                  "<", "<=",
                  ">", ">=", ">>") do
      |op, io|
      case @lex_state
      when :EXPR_FNAME, :EXPR_DOT
        @lex_state = :EXPR_ARG
      else
        @lex_state = :EXPR_BEG
      end
      Token(op)
    end

    @OP.def_rules("!", "!=", "!~") do
      |op, io|
      @lex_state = :EXPR_BEG
      Token(op)
    end

    @OP.def_rules("<<") do
      |op, io|
      tk = nil
      if @lex_state != :EXPR_END && @lex_state != :EXPR_CLASS &&
         (@lex_state != :EXPR_ARG || @space_seen)
        c = peek(0)
        if /\S/ =~ c && (/["'`]/ =~ c || /\w/ =~ c || c == "-")
          tk = identify_here_document
        end
      end
      unless tk
        tk = Token(op)
        case @lex_state
        when :EXPR_FNAME, :EXPR_DOT
          @lex_state = :EXPR_ARG
        else
          @lex_state = :EXPR_BEG
        end
      end
      tk
    end

    @OP.def_rules("'", '"') do
      |op, io|
      identify_string(op)
    end

    @OP.def_rules("`") do
      |op, io|
      if @lex_state == :EXPR_FNAME
        @lex_state = :EXPR_END
        Token(op)
      else
        identify_string(op)
      end
    end

    @OP.def_rules('?') do
      |op, io|
      if @lex_state == :EXPR_END
        @lex_state = :EXPR_BEG
        Token(TkQUESTION)
      else
        ch = getc
        if @lex_state == :EXPR_ARG && ch =~ /\s/
          ungetc
          @lex_state = :EXPR_BEG;
          Token(TkQUESTION)
        else
          @lex_state = :EXPR_END
          Token(TkCHAR, "?#{ch}")
        end
      end
    end

    @OP.def_rules("&", "&&", "|", "||") do
      |op, io|
      @lex_state = :EXPR_BEG
      Token(op)
    end

    @OP.def_rules("+=", "-=", "*=", "**=",
                  "&=", "|=", "^=", "<<=", ">>=", "||=", "&&=") do
      |op, io|
      @lex_state = :EXPR_BEG
      op =~ /^(.*)=$/
      Token(TkOPASGN, $1)
    end

    @OP.def_rule("+@", proc{|op, io| @lex_state == :EXPR_FNAME}) do
      |op, io|
      @lex_state = :EXPR_ARG
      Token(op)
    end

    @OP.def_rule("-@", proc{|op, io| @lex_state == :EXPR_FNAME}) do
      |op, io|
      @lex_state = :EXPR_ARG
      Token(op)
    end

    @OP.def_rules("+", "-") do
      |op, io|
      catch(:RET) do
        if @lex_state == :EXPR_ARG
          if @space_seen and peek(0) =~ /[0-9]/
            throw :RET, identify_number(op)
          else
            @lex_state = :EXPR_BEG
          end
        elsif @lex_state != :EXPR_END and peek(0) =~ /[0-9]/
          throw :RET, identify_number(op)
        else
          @lex_state = :EXPR_BEG
        end
        Token(op)
      end
    end

    @OP.def_rule(".") do
      |op, io|
      @lex_state = :EXPR_BEG
      if peek(0) =~ /[0-9]/
        ungetc
        identify_number
      else
        # for "obj.if" etc.
        @lex_state = :EXPR_DOT
        Token(TkDOT)
      end
    end

    @OP.def_rules("..", "...") do
      |op, io|
      @lex_state = :EXPR_BEG
      Token(op)
    end

    lex_int2
  end

  def lex_int2
    @OP.def_rules("]", "}", ")") do
      |op, io|
      @lex_state = :EXPR_END
      @indent -= 1
      @indent_stack.pop
      Token(op)
    end

    @OP.def_rule(":") do
      |op, io|
      if @lex_state == :EXPR_END || peek(0) =~ /\s/
        @lex_state = :EXPR_BEG
        Token(TkCOLON)
      else
        @lex_state = :EXPR_FNAME;
        Token(TkSYMBEG)
      end
    end

    @OP.def_rule("::") do
      |op, io|
      #      p @lex_state.id2name, @space_seen
      if @lex_state == :EXPR_BEG or @lex_state == :EXPR_ARG && @space_seen
        @lex_state = :EXPR_BEG
        Token(TkCOLON3)
      else
        @lex_state = :EXPR_DOT
        Token(TkCOLON2)
      end
    end

    @OP.def_rule("/") do
      |op, io|
      if @lex_state == :EXPR_BEG || @lex_state == :EXPR_MID
        identify_string(op)
      elsif peek(0) == '='
        getc
        @lex_state = :EXPR_BEG
        Token(TkOPASGN, "/") #/)
      elsif @lex_state == :EXPR_ARG and @space_seen and peek(0) !~ /\s/
        identify_string(op)
      else
        @lex_state = :EXPR_BEG
        Token("/") #/)
      end
    end

    @OP.def_rules("^") do
      |op, io|
      @lex_state = :EXPR_BEG
      Token("^")
    end

    #       @OP.def_rules("^=") do
    # 	@lex_state = :EXPR_BEG
    # 	Token(OP_ASGN, :^)
    #       end

    @OP.def_rules(",") do
      |op, io|
      @lex_state = :EXPR_BEG
      Token(op)
    end

    @OP.def_rules(";") do
      |op, io|
      @lex_state = :EXPR_BEG
      until (@indent_stack.empty? ||
             [TkLPAREN, TkLBRACK, TkLBRACE,
               TkfLPAREN, TkfLBRACK, TkfLBRACE].include?(@indent_stack.last))
        @indent_stack.pop
      end
      Token(op)
    end

    @OP.def_rule("~") do
      |op, io|
      @lex_state = :EXPR_BEG
      Token("~")
    end

    @OP.def_rule("~@", proc{|op, io| @lex_state == :EXPR_FNAME}) do
      |op, io|
      @lex_state = :EXPR_BEG
      Token("~")
    end

    @OP.def_rule("(") do
      |op, io|
      @indent += 1
      if @lex_state == :EXPR_BEG || @lex_state == :EXPR_MID
        @lex_state = :EXPR_BEG
        tk_c = TkfLPAREN
      else
        @lex_state = :EXPR_BEG
        tk_c = TkLPAREN
      end
      @indent_stack.push tk_c
      Token tk_c
    end

    @OP.def_rule("[]", proc{|op, io| @lex_state == :EXPR_FNAME}) do
      |op, io|
      @lex_state = :EXPR_ARG
      Token("[]")
    end

    @OP.def_rule("[]=", proc{|op, io| @lex_state == :EXPR_FNAME}) do
      |op, io|
      @lex_state = :EXPR_ARG
      Token("[]=")
    end

    @OP.def_rule("[") do
      |op, io|
      @indent += 1
      if @lex_state == :EXPR_FNAME
        tk_c = TkfLBRACK
      else
        if @lex_state == :EXPR_BEG || @lex_state == :EXPR_MID
          tk_c = TkLBRACK
        elsif @lex_state == :EXPR_ARG && @space_seen
          tk_c = TkLBRACK
        else
          tk_c = TkfLBRACK
        end
        @lex_state = :EXPR_BEG
      end
      @indent_stack.push tk_c
      Token(tk_c)
    end

    @OP.def_rule("{") do
      |op, io|
      @indent += 1
      if @lex_state != :EXPR_END && @lex_state != :EXPR_ARG
        tk_c = TkLBRACE
      else
        tk_c = TkfLBRACE
      end
      @lex_state = :EXPR_BEG
      @indent_stack.push tk_c
      Token(tk_c)
    end

    @OP.def_rule('\\') do
      |op, io|
      if getc == "\n"
        @space_seen = true
        @continue = true
        Token(TkSPACE)
      else
        ungetc
        Token("\\")
      end
    end

    @OP.def_rule('%') do
      |op, io|
      if @lex_state == :EXPR_BEG || @lex_state == :EXPR_MID
        identify_quotation
      elsif peek(0) == '='
        getc
        Token(TkOPASGN, :%)
      elsif @lex_state == :EXPR_ARG and @space_seen and peek(0) !~ /\s/
        identify_quotation
      else
        @lex_state = :EXPR_BEG
        Token("%") #))
      end
    end

    @OP.def_rule('$') do
      |op, io|
      identify_gvar
    end

    @OP.def_rule('@') do
      |op, io|
      if peek(0) =~ /[\w@]/
        ungetc
        identify_identifier
      else
        Token("@")
      end
    end

    #       @OP.def_rule("def", proc{|op, io| /\s/ =~ io.peek(0)}) do
    # 	|op, io|
    # 	@indent += 1
    # 	@lex_state = :EXPR_FNAME
    # #	@lex_state = :EXPR_END
    # #	until @rests[0] == "\n" or @rests[0] == ";"
    # #	  rests.shift
    # #	end
    #       end

    @OP.def_rule("_") do
      if peek_match?(/_END__/) and @lex_state == :EXPR_BEG then
        6.times { getc }
        Token(TkEND_OF_SCRIPT, '__END__')
      else
        ungetc
        identify_identifier
      end
    end

    @OP.def_rule("") do
      |op, io|
      printf "MATCH: start %s: %s\n", op, io.inspect if RDoc::RubyLex.debug?
      if peek(0) =~ /[0-9]/
        t = identify_number
      else
        t = identify_identifier
      end
      printf "MATCH: end %s: %s\n", op, io.inspect if RDoc::RubyLex.debug?
      t
    end

    p @OP if RDoc::RubyLex.debug?
  end

  def identify_gvar
    @lex_state = :EXPR_END

    case ch = getc
    when /[~_*$?!@\/\\;,=:<>".]/   #"
      Token(TkGVAR, "$" + ch)
    when "-"
      Token(TkGVAR, "$-" + getc)
    when "&", "`", "'", "+"
      Token(TkBACK_REF, "$"+ch)
    when /[1-9]/
      ref = ch
      while (ch = getc) =~ /[0-9]/ do ref << ch end
      ungetc
      Token(TkNTH_REF, "$#{ref}")
    when /\w/
      ungetc
      ungetc
      identify_identifier
    else
      ungetc
      Token("$")
    end
  end

  IDENT_RE = if defined? Encoding then
               eval '/[\w\u{0080}-\u{FFFFF}]/u' # 1.8 can't parse \u{}
             else
               /[\w\x80-\xFF]/
             end

  def identify_identifier
    token = ""
    if peek(0) =~ /[$@]/
      token.concat(c = getc)
      if c == "@" and peek(0) == "@"
        token.concat getc
      end
    end

    while (ch = getc) =~ IDENT_RE do
      print " :#{ch}: " if RDoc::RubyLex.debug?
      token.concat ch
    end

    ungetc

    if (ch == "!" || ch == "?") && token[0,1] =~ /\w/ && peek(0) != "="
      token.concat getc
    end

    # almost fix token

    case token
    when /^\$/
      return Token(TkGVAR, token)
    when /^\@\@/
      @lex_state = :EXPR_END
      # p Token(TkCVAR, token)
      return Token(TkCVAR, token)
    when /^\@/
      @lex_state = :EXPR_END
      return Token(TkIVAR, token)
    end

    if @lex_state != :EXPR_DOT
      print token, "\n" if RDoc::RubyLex.debug?

      token_c, *trans = TkReading2Token[token]
      if token_c
        # reserved word?

        if (@lex_state != :EXPR_BEG &&
            @lex_state != :EXPR_FNAME &&
            trans[1])
          # modifiers
          token_c = TkSymbol2Token[trans[1]]
          @lex_state = trans[0]
        else
          if @lex_state != :EXPR_FNAME
            if ENINDENT_CLAUSE.include?(token)
              valid = peek(0) != ':'

              # check for ``class = val'' etc.
              case token
              when "class"
                valid = false unless peek_match?(/^\s*(<<|\w|::)/)
              when "def"
                valid = false if peek_match?(/^\s*(([+-\/*&\|^]|<<|>>|\|\||\&\&)=|\&\&|\|\|)/)
              when "do"
                valid = false if peek_match?(/^\s*([+-\/*]?=|\*|<|>|\&)/)
              when *ENINDENT_CLAUSE
                valid = false if peek_match?(/^\s*([+-\/*]?=|\*|<|>|\&|\|)/)
              else
                # no nothing
              end if valid

              if valid
                if token == "do"
                  if ![TkFOR, TkWHILE, TkUNTIL].include?(@indent_stack.last)
                    @indent += 1
                    @indent_stack.push token_c
                  end
                else
                  @indent += 1
                  @indent_stack.push token_c
                end
              else
                token_c = TkIDENTIFIER
              end

            elsif DEINDENT_CLAUSE.include?(token)
              @indent -= 1
              @indent_stack.pop
            end
            @lex_state = trans[0]
          else
            @lex_state = :EXPR_END
          end
        end
        return Token(token_c, token)
      end
    end

    if @lex_state == :EXPR_FNAME
      @lex_state = :EXPR_END
      if peek(0) == '='
        token.concat getc
      end
    elsif @lex_state == :EXPR_BEG || @lex_state == :EXPR_DOT ||
          @lex_state == :EXPR_ARG
      @lex_state = :EXPR_ARG
    else
      @lex_state = :EXPR_END
    end

    if token[0, 1] =~ /[A-Z]/
      return Token(TkCONSTANT, token)
    elsif token[token.size - 1, 1] =~ /[!?]/
      return Token(TkFID, token)
    else
      return Token(TkIDENTIFIER, token)
    end
  end

  def identify_here_document
    ch = getc
    #    if lt = PERCENT_LTYPE[ch]
    if ch == "-"
      ch = getc
      indent = true
    end
    if /['"`]/ =~ ch
      user_quote = lt = ch
      quoted = ""
      while (c = getc) && c != lt
        quoted.concat c
      end
    else
      user_quote = nil
      lt = '"'
      quoted = ch.dup
      while (c = getc) && c =~ /\w/
        quoted.concat c
      end
      ungetc
    end

    ltback, @ltype = @ltype, lt
    reserve = []
    while ch = getc
      reserve.push ch
      if ch == "\\"
        reserve.push ch = getc
      elsif ch == "\n"
        break
      end
    end

    output_heredoc = reserve.join =~ /\A\r?\n\z/

    if output_heredoc then
      doc = '<<'
      doc << '-' if indent
      doc << "#{user_quote}#{quoted}#{user_quote}\n"
    else
      doc = '"'
    end

    @here_header = false
    while l = gets
      l = l.sub(/(:?\r)?\n\z/, "\n")
      if (indent ? l.strip : l.chomp) == quoted
        break
      end
      doc << l
    end

    if output_heredoc then
      raise Error, "Missing terminating #{quoted} for string" unless l

      doc << l.chomp
    else
      doc << '"'
    end

    @here_header = true
    @here_readed.concat reserve
    while ch = reserve.pop
      ungetc ch
    end

    token_class = output_heredoc ? RDoc::RubyLex::TkHEREDOC : Ltype2Token[lt]
    @ltype = ltback
    @lex_state = :EXPR_END
    Token(token_class, doc)
  end

  def identify_quotation
    type = ch = getc
    if lt = PERCENT_LTYPE[type]
      ch = getc
    elsif type =~ /\W/
      type = nil
      lt = "\""
    else
      return Token(TkMOD, '%')
    end
    #     if ch !~ /\W/
    #       ungetc
    #       next
    #     end
    #@ltype = lt
    @quoted = ch unless @quoted = PERCENT_PAREN[ch]
    identify_string(lt, @quoted, type)
  end

  def identify_number(op = "")
    @lex_state = :EXPR_END

    num = op

    if peek(0) == "0" && peek(1) !~ /[.eE]/
      num << getc

      case peek(0)
      when /[xX]/
        ch = getc
        match = /[0-9a-fA-F_]/
      when /[bB]/
        ch = getc
        match = /[01_]/
      when /[oO]/
        ch = getc
        match = /[0-7_]/
      when /[dD]/
        ch = getc
        match = /[0-9_]/
      when /[0-7]/
        match = /[0-7_]/
      when /[89]/
        raise Error, "Illegal octal digit"
      else
        return Token(TkINTEGER, num)
      end

      num << ch if ch

      len0 = true
      non_digit = false
      while ch = getc
        num << ch
        if match =~ ch
          if ch == "_"
            if non_digit
              raise Error, "trailing `#{ch}' in number"
            else
              non_digit = ch
            end
          else
            non_digit = false
            len0 = false
          end
        else
          ungetc
          num[-1, 1] = ''
          if len0
            raise Error, "numeric literal without digits"
          end
          if non_digit
            raise Error, "trailing `#{non_digit}' in number"
          end
          break
        end
      end
      return Token(TkINTEGER, num)
    end

    type = TkINTEGER
    allow_point = true
    allow_e = true
    non_digit = false
    while ch = getc
      num << ch
      case ch
      when /[0-9]/
        non_digit = false
      when "_"
        non_digit = ch
      when allow_point && "."
        if non_digit
          raise Error, "trailing `#{non_digit}' in number"
        end
        type = TkFLOAT
        if peek(0) !~ /[0-9]/
          type = TkINTEGER
          ungetc
          num[-1, 1] = ''
          break
        end
        allow_point = false
      when allow_e && "e", allow_e && "E"
        if non_digit
          raise Error, "trailing `#{non_digit}' in number"
        end
        type = TkFLOAT
        if peek(0) =~ /[+-]/
          num << getc
        end
        allow_e = false
        allow_point = false
        non_digit = ch
      else
        if non_digit
          raise Error, "trailing `#{non_digit}' in number"
        end
        ungetc
        num[-1, 1] = ''
        break
      end
    end

    Token(type, num)
  end

  def identify_string(ltype, quoted = ltype, type = nil)
    close = PERCENT_PAREN.values.include?(quoted)
    @ltype = ltype
    @quoted = quoted

    str = if ltype == quoted and %w[" ' /].include? ltype then
            ltype.dup
          elsif RUBY_VERSION > '1.9' then
            "%#{type or PERCENT_LTYPE.key ltype}#{PERCENT_PAREN_REV[quoted]||quoted}"
          else
            "%#{type or PERCENT_LTYPE.index ltype}#{PERCENT_PAREN_REV[quoted]||quoted}"
          end

    subtype = nil
    begin
      nest = 0

      while ch = getc
        str << ch

        if @quoted == ch and nest <= 0
          break
        elsif @ltype != "'" && @ltype != "]" && @ltype != ":" and ch == "#"
          ch = getc
          subtype = true
          if ch == "{" then
            str << ch << skip_inner_expression
            next
          else
            ungetc
          end
        elsif ch == '\\'
          if %w[' /].include? @ltype then
            case ch = getc
            when "\\", "\n", "'"
            when @ltype
              str << ch
            else
              ungetc
            end
          else
            str << read_escape
          end
        end

        if close then
          if PERCENT_PAREN[ch] == @quoted
            nest += 1
          elsif ch == @quoted
            nest -= 1
          end
        end
      end

      if @ltype == "/"
        while peek(0) =~ /i|m|x|o|e|s|u|n/
          str << getc
        end
      end

      if subtype
        Token(DLtype2Token[ltype], str)
      else
        Token(Ltype2Token[ltype], str)
      end
    ensure
      @ltype = nil
      @quoted = nil
      @lex_state = :EXPR_END
    end
  end

  def skip_inner_expression
    res = ""
    nest = 0
    while ch = getc
      res << ch
      if ch == '}'
        break if nest.zero?
        nest -= 1
      elsif ch == '{'
        nest += 1
      end
    end
    res
  end

  def identify_comment
    @ltype = "#"

    comment = '#'

    while ch = getc
      # if ch == "\\" #"
      #   read_escape
      # end
      if ch == "\n"
        @ltype = nil
        ungetc
        break
      end

      comment << ch
    end

    return Token(TkCOMMENT, comment)
  end

  def read_escape
    escape = ''
    ch = getc

    case ch
    when "\n", "\r", "\f"
      escape << ch
    when "\\", "n", "t", "r", "f", "v", "a", "e", "b", "s" #"
      escape << ch
    when /[0-7]/
      ungetc ch
      3.times do
        ch = getc
        case ch
        when /[0-7]/
          escape << ch
        when nil
          break
        else
          ungetc
          break
        end
      end

    when "x"
      escape << ch

      2.times do
        ch = getc
        case ch
        when /[0-9a-fA-F]/
          escape << ch
        when nil
          break
        else
          ungetc
          break
        end
      end

    when "M"
      escape << ch

      ch = getc
      if ch != '-'
        ungetc
      else
        escape << ch

        ch = getc
        if ch == "\\" #"
          ungetc
          escape << read_escape
        else
          escape << ch
        end
      end

    when "C", "c" #, "^"
      escape << ch

      if ch == "C"
        ch = getc

        if ch == "-"
          escape << ch
          ch = getc
          escape << ch

          escape << read_escape if ch == "\\"
        else
          ungetc
        end
      elsif (ch = getc) == "\\" #"
        escape << ch << read_escape
      end
    else
      escape << ch

      # other characters
    end

    escape
  end

  # :startdoc:

end

#RDoc::RubyLex.debug_level = 1

lib64/ruby/2.2.0/rdoc/ghost_method.rb000064400000000162150402106140013034 0ustar00##
# GhostMethod represents a method referenced only by a comment

class RDoc::GhostMethod < RDoc::AnyMethod
end

lib64/ruby/2.2.0/rdoc/any_method.rb000064400000016046150402106150012510 0ustar00##
# AnyMethod is the base class for objects representing methods

class RDoc::AnyMethod < RDoc::MethodAttr

  ##
  # 2::
  #   RDoc 4
  #   Added calls_super
  #   Added parent name and class
  #   Added section title
  # 3::
  #   RDoc 4.1
  #   Added is_alias_for

  MARSHAL_VERSION = 3 # :nodoc:

  ##
  # Don't rename \#initialize to \::new

  attr_accessor :dont_rename_initialize

  ##
  # The C function that implements this method (if it was defined in a C file)

  attr_accessor :c_function

  ##
  # Different ways to call this method

  attr_reader :call_seq

  ##
  # Parameters for this method

  attr_accessor :params

  ##
  # If true this method uses +super+ to call a superclass version

  attr_accessor :calls_super

  include RDoc::TokenStream

  ##
  # Creates a new AnyMethod with a token stream +text+ and +name+

  def initialize text, name
    super

    @c_function = nil
    @dont_rename_initialize = false
    @token_stream = nil
    @calls_super = false
    @superclass_method = nil
  end

  ##
  # Adds +an_alias+ as an alias for this method in +context+.

  def add_alias an_alias, context = nil
    method = self.class.new an_alias.text, an_alias.new_name

    method.record_location an_alias.file
    method.singleton = self.singleton
    method.params = self.params
    method.visibility = self.visibility
    method.comment = an_alias.comment
    method.is_alias_for = self
    @aliases << method
    context.add_method method if context
    method
  end

  ##
  # Prefix for +aref+ is 'method'.

  def aref_prefix
    'method'
  end

  ##
  # The call_seq or the param_seq with method name, if there is no call_seq.
  #
  # Use this for displaying a method's argument lists.

  def arglists
    if @call_seq then
      @call_seq
    elsif @params then
      "#{name}#{param_seq}"
    end
  end

  ##
  # Sets the different ways you can call this method.  If an empty +call_seq+
  # is given nil is assumed.
  #
  # See also #param_seq

  def call_seq= call_seq
    return if call_seq.empty?

    @call_seq = call_seq
  end

  ##
  # Loads is_alias_for from the internal name.  Returns nil if the alias
  # cannot be found.

  def is_alias_for # :nodoc:
    case @is_alias_for
    when RDoc::MethodAttr then
      @is_alias_for
    when Array then
      return nil unless @store

      klass_name, singleton, method_name = @is_alias_for

      return nil unless klass = @store.find_class_or_module(klass_name)

      @is_alias_for = klass.find_method method_name, singleton
    end
  end

  ##
  # Dumps this AnyMethod for use by ri.  See also #marshal_load

  def marshal_dump
    aliases = @aliases.map do |a|
      [a.name, parse(a.comment)]
    end

    is_alias_for = [
      @is_alias_for.parent.full_name,
      @is_alias_for.singleton,
      @is_alias_for.name
    ] if @is_alias_for

    [ MARSHAL_VERSION,
      @name,
      full_name,
      @singleton,
      @visibility,
      parse(@comment),
      @call_seq,
      @block_params,
      aliases,
      @params,
      @file.relative_name,
      @calls_super,
      @parent.name,
      @parent.class,
      @section.title,
      is_alias_for,
    ]
  end

  ##
  # Loads this AnyMethod from +array+.  For a loaded AnyMethod the following
  # methods will return cached values:
  #
  # * #full_name
  # * #parent_name

  def marshal_load array
    initialize_visibility

    @dont_rename_initialize = nil
    @token_stream           = nil
    @aliases                = []
    @parent                 = nil
    @parent_name            = nil
    @parent_class           = nil
    @section                = nil
    @file                   = nil

    version        = array[0]
    @name          = array[1]
    @full_name     = array[2]
    @singleton     = array[3]
    @visibility    = array[4]
    @comment       = array[5]
    @call_seq      = array[6]
    @block_params  = array[7]
    #                      8 handled below
    @params        = array[9]
    #                      10 handled below
    @calls_super   = array[11]
    @parent_name   = array[12]
    @parent_title  = array[13]
    @section_title = array[14]
    @is_alias_for  = array[15]

    array[8].each do |new_name, comment|
      add_alias RDoc::Alias.new(nil, @name, new_name, comment, @singleton)
    end

    @parent_name ||= if @full_name =~ /#/ then
                       $`
                     else
                       name = @full_name.split('::')
                       name.pop
                       name.join '::'
                     end

    @file = RDoc::TopLevel.new array[10] if version > 0
  end

  ##
  # Method name
  #
  # If the method has no assigned name, it extracts it from #call_seq.

  def name
    return @name if @name

    @name =
      @call_seq[/^.*?\.(\w+)/, 1] ||
      @call_seq[/^.*?(\w+)/, 1] ||
      @call_seq if @call_seq
  end

  ##
  # A list of this method's method and yield parameters.  +call-seq+ params
  # are preferred over parsed method and block params.

  def param_list
    if @call_seq then
      params = @call_seq.split("\n").last
      params = params.sub(/.*?\((.*)\)/, '\1')
      params = params.sub(/(\{|do)\s*\|([^|]*)\|.*/, ',\2')
    elsif @params then
      params = @params.sub(/\((.*)\)/, '\1')

      params << ",#{@block_params}" if @block_params
    elsif @block_params then
      params = @block_params
    else
      return []
    end

    if @block_params then
      # If this method has explicit block parameters, remove any explicit
      # &block
      params.sub!(/,?\s*&\w+/, '')
    else
      params.sub!(/\&(\w+)/, '\1')
    end

    params = params.gsub(/\s+/, '').split(',').reject(&:empty?)

    params.map { |param| param.sub(/=.*/, '') }
  end

  ##
  # Pretty parameter list for this method.  If the method's parameters were
  # given by +call-seq+ it is preferred over the parsed values.

  def param_seq
    if @call_seq then
      params = @call_seq.split("\n").last
      params = params.sub(/[^( ]+/, '')
      params = params.sub(/(\|[^|]+\|)\s*\.\.\.\s*(end|\})/, '\1 \2')
    elsif @params then
      params = @params.gsub(/\s*\#.*/, '')
      params = params.tr("\n", " ").squeeze(" ")
      params = "(#{params})" unless params[0] == ?(
    else
      params = ''
    end

    if @block_params then
      # If this method has explicit block parameters, remove any explicit
      # &block
      params.sub!(/,?\s*&\w+/, '')

      block = @block_params.gsub(/\s*\#.*/, '')
      block = block.tr("\n", " ").squeeze(" ")
      if block[0] == ?(
        block.sub!(/^\(/, '').sub!(/\)/, '')
      end
      params << " { |#{block}| ... }"
    end

    params
  end

  ##
  # Sets the store for this method and its referenced code objects.

  def store= store
    super

    @file = @store.add_file @file.full_name if @file
  end

  ##
  # For methods that +super+, find the superclass method that would be called.

  def superclass_method
    return unless @calls_super
    return @superclass_method if @superclass_method

    parent.each_ancestor do |ancestor|
      if method = ancestor.method_list.find { |m| m.name == @name } then
        @superclass_method = method
        break
      end
    end

    @superclass_method
  end

end

lib64/ruby/2.2.0/rdoc/comment.rb000064400000012451150402106150012017 0ustar00##
# A comment holds the text comment for a RDoc::CodeObject and provides a
# unified way of cleaning it up and parsing it into an RDoc::Markup::Document.
#
# Each comment may have a different markup format set by #format=.  By default
# 'rdoc' is used.  The :markup: directive tells RDoc which format to use.
#
# See RDoc::Markup@Other+directives for instructions on adding an alternate
# format.

class RDoc::Comment

  include RDoc::Text

  ##
  # The format of this comment.  Defaults to RDoc::Markup

  attr_reader :format

  ##
  # The RDoc::TopLevel this comment was found in

  attr_accessor :location

  ##
  # For duck-typing when merging classes at load time

  alias file location # :nodoc:

  ##
  # The text for this comment

  attr_reader :text

  ##
  # Overrides the content returned by #parse.  Use when there is no #text
  # source for this comment

  attr_writer   :document

  ##
  # Creates a new comment with +text+ that is found in the RDoc::TopLevel
  # +location+.

  def initialize text = nil, location = nil
    @location = location
    @text     = text

    @document   = nil
    @format     = 'rdoc'
    @normalized = false
  end

  ##
  #--
  # TODO deep copy @document

  def initialize_copy copy # :nodoc:
    @text = copy.text.dup
  end

  def == other # :nodoc:
    self.class === other and
      other.text == @text and other.location == @location
  end

  ##
  # Look for a 'call-seq' in the comment to override the normal parameter
  # handling.  The :call-seq: is indented from the baseline.  All lines of the
  # same indentation level and prefix are consumed.
  #
  # For example, all of the following will be used as the :call-seq:
  #
  #   # :call-seq:
  #   #   ARGF.readlines(sep=$/)     -> array
  #   #   ARGF.readlines(limit)      -> array
  #   #   ARGF.readlines(sep, limit) -> array
  #   #
  #   #   ARGF.to_a(sep=$/)     -> array
  #   #   ARGF.to_a(limit)      -> array
  #   #   ARGF.to_a(sep, limit) -> array

  def extract_call_seq method
    # we must handle situations like the above followed by an unindented first
    # comment.  The difficulty is to make sure not to match lines starting
    # with ARGF at the same indent, but that are after the first description
    # paragraph.
    if @text =~ /^\s*:?call-seq:(.*?(?:\S).*?)^\s*$/m then
      all_start, all_stop = $~.offset(0)
      seq_start, seq_stop = $~.offset(1)

      # we get the following lines that start with the leading word at the
      # same indent, even if they have blank lines before
      if $1 =~ /(^\s*\n)+^(\s*\w+)/m then
        leading = $2 # ' *    ARGF' in the example above
        re = %r%
          \A(
             (^\s*\n)+
             (^#{Regexp.escape leading}.*?\n)+
            )+
          ^\s*$
        %xm

        if @text[seq_stop..-1] =~ re then
          all_stop = seq_stop + $~.offset(0).last
          seq_stop = seq_stop + $~.offset(1).last
        end
      end

      seq = @text[seq_start..seq_stop]
      seq.gsub!(/^\s*(\S|\n)/m, '\1')
      @text.slice! all_start...all_stop

      method.call_seq = seq.chomp

    elsif @text.sub!(/^\s*:?call-seq:(.*?)(^\s*$|\z)/m, '') then
      seq = $1
      seq.gsub!(/^\s*/, '')
      method.call_seq = seq
    end

    method
  end

  ##
  # A comment is empty if its text String is empty.

  def empty?
    @text.empty?
  end

  ##
  # HACK dubious

  def force_encoding encoding
    @text.force_encoding encoding
  end

  ##
  # Sets the format of this comment and resets any parsed document

  def format= format
    @format = format
    @document = nil
  end

  def inspect # :nodoc:
    location = @location ? @location.relative_name : '(unknown)'

    "#<%s:%x %s %p>" % [self.class, object_id, location, @text]
  end

  ##
  # Normalizes the text.  See RDoc::Text#normalize_comment for details

  def normalize
    return self unless @text
    return self if @normalized # TODO eliminate duplicate normalization

    @text = normalize_comment @text

    @normalized = true

    self
  end

  ##
  # Was this text normalized?

  def normalized? # :nodoc:
    @normalized
  end

  ##
  # Parses the comment into an RDoc::Markup::Document.  The parsed document is
  # cached until the text is changed.

  def parse
    return @document if @document

    @document = super @text, @format
    @document.file = @location
    @document
  end

  ##
  # Removes private sections from this comment.  Private sections are flush to
  # the comment marker and start with <tt>--</tt> and end with <tt>++</tt>.
  # For C-style comments, a private marker may not start at the opening of the
  # comment.
  #
  #   /*
  #    *--
  #    * private
  #    *++
  #    * public
  #    */

  def remove_private
    # Workaround for gsub encoding for Ruby 1.9.2 and earlier
    empty = ''
    empty.force_encoding @text.encoding if Object.const_defined? :Encoding

    @text = @text.gsub(%r%^\s*([#*]?)--.*?^\s*(\1)\+\+\n?%m, empty)
    @text = @text.sub(%r%^\s*[#*]?--.*%m, '')
  end

  ##
  # Replaces this comment's text with +text+ and resets the parsed document.
  #
  # An error is raised if the comment contains a document but no text.

  def text= text
    raise RDoc::Error, 'replacing document-only comment is not allowed' if
      @text.nil? and @document

    @document = nil
    @text = text
  end

  ##
  # Returns true if this comment is in TomDoc format.

  def tomdoc?
    @format == 'tomdoc'
  end

end

lib64/ruby/2.2.0/rdoc/single_class.rb000064400000000572150402106150013024 0ustar00##
# A singleton class

class RDoc::SingleClass < RDoc::ClassModule

  ##
  # Adds the superclass to the included modules.

  def ancestors
    superclass ? super + [superclass] : super
  end

  def aref_prefix # :nodoc:
    'sclass'
  end

  ##
  # The definition of this singleton class, <tt>class << MyClassName</tt>

  def definition
    "class << #{full_name}"
  end

end

lib64/ruby/2.2.0/rdoc/markdown/entities.rb000064400000154003150402106150014023 0ustar00##
# HTML entity name map for RDoc::Markdown

RDoc::Markdown::HTML_ENTITIES = {
  "AElig" => [0x000C6],
  "AMP" => [0x00026],
  "Aacute" => [0x000C1],
  "Abreve" => [0x00102],
  "Acirc" => [0x000C2],
  "Acy" => [0x00410],
  "Afr" => [0x1D504],
  "Agrave" => [0x000C0],
  "Alpha" => [0x00391],
  "Amacr" => [0x00100],
  "And" => [0x02A53],
  "Aogon" => [0x00104],
  "Aopf" => [0x1D538],
  "ApplyFunction" => [0x02061],
  "Aring" => [0x000C5],
  "Ascr" => [0x1D49C],
  "Assign" => [0x02254],
  "Atilde" => [0x000C3],
  "Auml" => [0x000C4],
  "Backslash" => [0x02216],
  "Barv" => [0x02AE7],
  "Barwed" => [0x02306],
  "Bcy" => [0x00411],
  "Because" => [0x02235],
  "Bernoullis" => [0x0212C],
  "Beta" => [0x00392],
  "Bfr" => [0x1D505],
  "Bopf" => [0x1D539],
  "Breve" => [0x002D8],
  "Bscr" => [0x0212C],
  "Bumpeq" => [0x0224E],
  "CHcy" => [0x00427],
  "COPY" => [0x000A9],
  "Cacute" => [0x00106],
  "Cap" => [0x022D2],
  "CapitalDifferentialD" => [0x02145],
  "Cayleys" => [0x0212D],
  "Ccaron" => [0x0010C],
  "Ccedil" => [0x000C7],
  "Ccirc" => [0x00108],
  "Cconint" => [0x02230],
  "Cdot" => [0x0010A],
  "Cedilla" => [0x000B8],
  "CenterDot" => [0x000B7],
  "Cfr" => [0x0212D],
  "Chi" => [0x003A7],
  "CircleDot" => [0x02299],
  "CircleMinus" => [0x02296],
  "CirclePlus" => [0x02295],
  "CircleTimes" => [0x02297],
  "ClockwiseContourIntegral" => [0x02232],
  "CloseCurlyDoubleQuote" => [0x0201D],
  "CloseCurlyQuote" => [0x02019],
  "Colon" => [0x02237],
  "Colone" => [0x02A74],
  "Congruent" => [0x02261],
  "Conint" => [0x0222F],
  "ContourIntegral" => [0x0222E],
  "Copf" => [0x02102],
  "Coproduct" => [0x02210],
  "CounterClockwiseContourIntegral" => [0x02233],
  "Cross" => [0x02A2F],
  "Cscr" => [0x1D49E],
  "Cup" => [0x022D3],
  "CupCap" => [0x0224D],
  "DD" => [0x02145],
  "DDotrahd" => [0x02911],
  "DJcy" => [0x00402],
  "DScy" => [0x00405],
  "DZcy" => [0x0040F],
  "Dagger" => [0x02021],
  "Darr" => [0x021A1],
  "Dashv" => [0x02AE4],
  "Dcaron" => [0x0010E],
  "Dcy" => [0x00414],
  "Del" => [0x02207],
  "Delta" => [0x00394],
  "Dfr" => [0x1D507],
  "DiacriticalAcute" => [0x000B4],
  "DiacriticalDot" => [0x002D9],
  "DiacriticalDoubleAcute" => [0x002DD],
  "DiacriticalGrave" => [0x00060],
  "DiacriticalTilde" => [0x002DC],
  "Diamond" => [0x022C4],
  "DifferentialD" => [0x02146],
  "Dopf" => [0x1D53B],
  "Dot" => [0x000A8],
  "DotDot" => [0x020DC],
  "DotEqual" => [0x02250],
  "DoubleContourIntegral" => [0x0222F],
  "DoubleDot" => [0x000A8],
  "DoubleDownArrow" => [0x021D3],
  "DoubleLeftArrow" => [0x021D0],
  "DoubleLeftRightArrow" => [0x021D4],
  "DoubleLeftTee" => [0x02AE4],
  "DoubleLongLeftArrow" => [0x027F8],
  "DoubleLongLeftRightArrow" => [0x027FA],
  "DoubleLongRightArrow" => [0x027F9],
  "DoubleRightArrow" => [0x021D2],
  "DoubleRightTee" => [0x022A8],
  "DoubleUpArrow" => [0x021D1],
  "DoubleUpDownArrow" => [0x021D5],
  "DoubleVerticalBar" => [0x02225],
  "DownArrow" => [0x02193],
  "DownArrowBar" => [0x02913],
  "DownArrowUpArrow" => [0x021F5],
  "DownBreve" => [0x00311],
  "DownLeftRightVector" => [0x02950],
  "DownLeftTeeVector" => [0x0295E],
  "DownLeftVector" => [0x021BD],
  "DownLeftVectorBar" => [0x02956],
  "DownRightTeeVector" => [0x0295F],
  "DownRightVector" => [0x021C1],
  "DownRightVectorBar" => [0x02957],
  "DownTee" => [0x022A4],
  "DownTeeArrow" => [0x021A7],
  "Downarrow" => [0x021D3],
  "Dscr" => [0x1D49F],
  "Dstrok" => [0x00110],
  "ENG" => [0x0014A],
  "ETH" => [0x000D0],
  "Eacute" => [0x000C9],
  "Ecaron" => [0x0011A],
  "Ecirc" => [0x000CA],
  "Ecy" => [0x0042D],
  "Edot" => [0x00116],
  "Efr" => [0x1D508],
  "Egrave" => [0x000C8],
  "Element" => [0x02208],
  "Emacr" => [0x00112],
  "EmptySmallSquare" => [0x025FB],
  "EmptyVerySmallSquare" => [0x025AB],
  "Eogon" => [0x00118],
  "Eopf" => [0x1D53C],
  "Epsilon" => [0x00395],
  "Equal" => [0x02A75],
  "EqualTilde" => [0x02242],
  "Equilibrium" => [0x021CC],
  "Escr" => [0x02130],
  "Esim" => [0x02A73],
  "Eta" => [0x00397],
  "Euml" => [0x000CB],
  "Exists" => [0x02203],
  "ExponentialE" => [0x02147],
  "Fcy" => [0x00424],
  "Ffr" => [0x1D509],
  "FilledSmallSquare" => [0x025FC],
  "FilledVerySmallSquare" => [0x025AA],
  "Fopf" => [0x1D53D],
  "ForAll" => [0x02200],
  "Fouriertrf" => [0x02131],
  "Fscr" => [0x02131],
  "GJcy" => [0x00403],
  "GT" => [0x0003E],
  "Gamma" => [0x00393],
  "Gammad" => [0x003DC],
  "Gbreve" => [0x0011E],
  "Gcedil" => [0x00122],
  "Gcirc" => [0x0011C],
  "Gcy" => [0x00413],
  "Gdot" => [0x00120],
  "Gfr" => [0x1D50A],
  "Gg" => [0x022D9],
  "Gopf" => [0x1D53E],
  "GreaterEqual" => [0x02265],
  "GreaterEqualLess" => [0x022DB],
  "GreaterFullEqual" => [0x02267],
  "GreaterGreater" => [0x02AA2],
  "GreaterLess" => [0x02277],
  "GreaterSlantEqual" => [0x02A7E],
  "GreaterTilde" => [0x02273],
  "Gscr" => [0x1D4A2],
  "Gt" => [0x0226B],
  "HARDcy" => [0x0042A],
  "Hacek" => [0x002C7],
  "Hat" => [0x0005E],
  "Hcirc" => [0x00124],
  "Hfr" => [0x0210C],
  "HilbertSpace" => [0x0210B],
  "Hopf" => [0x0210D],
  "HorizontalLine" => [0x02500],
  "Hscr" => [0x0210B],
  "Hstrok" => [0x00126],
  "HumpDownHump" => [0x0224E],
  "HumpEqual" => [0x0224F],
  "IEcy" => [0x00415],
  "IJlig" => [0x00132],
  "IOcy" => [0x00401],
  "Iacute" => [0x000CD],
  "Icirc" => [0x000CE],
  "Icy" => [0x00418],
  "Idot" => [0x00130],
  "Ifr" => [0x02111],
  "Igrave" => [0x000CC],
  "Im" => [0x02111],
  "Imacr" => [0x0012A],
  "ImaginaryI" => [0x02148],
  "Implies" => [0x021D2],
  "Int" => [0x0222C],
  "Integral" => [0x0222B],
  "Intersection" => [0x022C2],
  "InvisibleComma" => [0x02063],
  "InvisibleTimes" => [0x02062],
  "Iogon" => [0x0012E],
  "Iopf" => [0x1D540],
  "Iota" => [0x00399],
  "Iscr" => [0x02110],
  "Itilde" => [0x00128],
  "Iukcy" => [0x00406],
  "Iuml" => [0x000CF],
  "Jcirc" => [0x00134],
  "Jcy" => [0x00419],
  "Jfr" => [0x1D50D],
  "Jopf" => [0x1D541],
  "Jscr" => [0x1D4A5],
  "Jsercy" => [0x00408],
  "Jukcy" => [0x00404],
  "KHcy" => [0x00425],
  "KJcy" => [0x0040C],
  "Kappa" => [0x0039A],
  "Kcedil" => [0x00136],
  "Kcy" => [0x0041A],
  "Kfr" => [0x1D50E],
  "Kopf" => [0x1D542],
  "Kscr" => [0x1D4A6],
  "LJcy" => [0x00409],
  "LT" => [0x0003C],
  "Lacute" => [0x00139],
  "Lambda" => [0x0039B],
  "Lang" => [0x027EA],
  "Laplacetrf" => [0x02112],
  "Larr" => [0x0219E],
  "Lcaron" => [0x0013D],
  "Lcedil" => [0x0013B],
  "Lcy" => [0x0041B],
  "LeftAngleBracket" => [0x027E8],
  "LeftArrow" => [0x02190],
  "LeftArrowBar" => [0x021E4],
  "LeftArrowRightArrow" => [0x021C6],
  "LeftCeiling" => [0x02308],
  "LeftDoubleBracket" => [0x027E6],
  "LeftDownTeeVector" => [0x02961],
  "LeftDownVector" => [0x021C3],
  "LeftDownVectorBar" => [0x02959],
  "LeftFloor" => [0x0230A],
  "LeftRightArrow" => [0x02194],
  "LeftRightVector" => [0x0294E],
  "LeftTee" => [0x022A3],
  "LeftTeeArrow" => [0x021A4],
  "LeftTeeVector" => [0x0295A],
  "LeftTriangle" => [0x022B2],
  "LeftTriangleBar" => [0x029CF],
  "LeftTriangleEqual" => [0x022B4],
  "LeftUpDownVector" => [0x02951],
  "LeftUpTeeVector" => [0x02960],
  "LeftUpVector" => [0x021BF],
  "LeftUpVectorBar" => [0x02958],
  "LeftVector" => [0x021BC],
  "LeftVectorBar" => [0x02952],
  "Leftarrow" => [0x021D0],
  "Leftrightarrow" => [0x021D4],
  "LessEqualGreater" => [0x022DA],
  "LessFullEqual" => [0x02266],
  "LessGreater" => [0x02276],
  "LessLess" => [0x02AA1],
  "LessSlantEqual" => [0x02A7D],
  "LessTilde" => [0x02272],
  "Lfr" => [0x1D50F],
  "Ll" => [0x022D8],
  "Lleftarrow" => [0x021DA],
  "Lmidot" => [0x0013F],
  "LongLeftArrow" => [0x027F5],
  "LongLeftRightArrow" => [0x027F7],
  "LongRightArrow" => [0x027F6],
  "Longleftarrow" => [0x027F8],
  "Longleftrightarrow" => [0x027FA],
  "Longrightarrow" => [0x027F9],
  "Lopf" => [0x1D543],
  "LowerLeftArrow" => [0x02199],
  "LowerRightArrow" => [0x02198],
  "Lscr" => [0x02112],
  "Lsh" => [0x021B0],
  "Lstrok" => [0x00141],
  "Lt" => [0x0226A],
  "Map" => [0x02905],
  "Mcy" => [0x0041C],
  "MediumSpace" => [0x0205F],
  "Mellintrf" => [0x02133],
  "Mfr" => [0x1D510],
  "MinusPlus" => [0x02213],
  "Mopf" => [0x1D544],
  "Mscr" => [0x02133],
  "Mu" => [0x0039C],
  "NJcy" => [0x0040A],
  "Nacute" => [0x00143],
  "Ncaron" => [0x00147],
  "Ncedil" => [0x00145],
  "Ncy" => [0x0041D],
  "NegativeMediumSpace" => [0x0200B],
  "NegativeThickSpace" => [0x0200B],
  "NegativeThinSpace" => [0x0200B],
  "NegativeVeryThinSpace" => [0x0200B],
  "NestedGreaterGreater" => [0x0226B],
  "NestedLessLess" => [0x0226A],
  "NewLine" => [0x0000A],
  "Nfr" => [0x1D511],
  "NoBreak" => [0x02060],
  "NonBreakingSpace" => [0x000A0],
  "Nopf" => [0x02115],
  "Not" => [0x02AEC],
  "NotCongruent" => [0x02262],
  "NotCupCap" => [0x0226D],
  "NotDoubleVerticalBar" => [0x02226],
  "NotElement" => [0x02209],
  "NotEqual" => [0x02260],
  "NotEqualTilde" => [0x02242, 0x00338],
  "NotExists" => [0x02204],
  "NotGreater" => [0x0226F],
  "NotGreaterEqual" => [0x02271],
  "NotGreaterFullEqual" => [0x02267, 0x00338],
  "NotGreaterGreater" => [0x0226B, 0x00338],
  "NotGreaterLess" => [0x02279],
  "NotGreaterSlantEqual" => [0x02A7E, 0x00338],
  "NotGreaterTilde" => [0x02275],
  "NotHumpDownHump" => [0x0224E, 0x00338],
  "NotHumpEqual" => [0x0224F, 0x00338],
  "NotLeftTriangle" => [0x022EA],
  "NotLeftTriangleBar" => [0x029CF, 0x00338],
  "NotLeftTriangleEqual" => [0x022EC],
  "NotLess" => [0x0226E],
  "NotLessEqual" => [0x02270],
  "NotLessGreater" => [0x02278],
  "NotLessLess" => [0x0226A, 0x00338],
  "NotLessSlantEqual" => [0x02A7D, 0x00338],
  "NotLessTilde" => [0x02274],
  "NotNestedGreaterGreater" => [0x02AA2, 0x00338],
  "NotNestedLessLess" => [0x02AA1, 0x00338],
  "NotPrecedes" => [0x02280],
  "NotPrecedesEqual" => [0x02AAF, 0x00338],
  "NotPrecedesSlantEqual" => [0x022E0],
  "NotReverseElement" => [0x0220C],
  "NotRightTriangle" => [0x022EB],
  "NotRightTriangleBar" => [0x029D0, 0x00338],
  "NotRightTriangleEqual" => [0x022ED],
  "NotSquareSubset" => [0x0228F, 0x00338],
  "NotSquareSubsetEqual" => [0x022E2],
  "NotSquareSuperset" => [0x02290, 0x00338],
  "NotSquareSupersetEqual" => [0x022E3],
  "NotSubset" => [0x02282, 0x020D2],
  "NotSubsetEqual" => [0x02288],
  "NotSucceeds" => [0x02281],
  "NotSucceedsEqual" => [0x02AB0, 0x00338],
  "NotSucceedsSlantEqual" => [0x022E1],
  "NotSucceedsTilde" => [0x0227F, 0x00338],
  "NotSuperset" => [0x02283, 0x020D2],
  "NotSupersetEqual" => [0x02289],
  "NotTilde" => [0x02241],
  "NotTildeEqual" => [0x02244],
  "NotTildeFullEqual" => [0x02247],
  "NotTildeTilde" => [0x02249],
  "NotVerticalBar" => [0x02224],
  "Nscr" => [0x1D4A9],
  "Ntilde" => [0x000D1],
  "Nu" => [0x0039D],
  "OElig" => [0x00152],
  "Oacute" => [0x000D3],
  "Ocirc" => [0x000D4],
  "Ocy" => [0x0041E],
  "Odblac" => [0x00150],
  "Ofr" => [0x1D512],
  "Ograve" => [0x000D2],
  "Omacr" => [0x0014C],
  "Omega" => [0x003A9],
  "Omicron" => [0x0039F],
  "Oopf" => [0x1D546],
  "OpenCurlyDoubleQuote" => [0x0201C],
  "OpenCurlyQuote" => [0x02018],
  "Or" => [0x02A54],
  "Oscr" => [0x1D4AA],
  "Oslash" => [0x000D8],
  "Otilde" => [0x000D5],
  "Otimes" => [0x02A37],
  "Ouml" => [0x000D6],
  "OverBar" => [0x0203E],
  "OverBrace" => [0x023DE],
  "OverBracket" => [0x023B4],
  "OverParenthesis" => [0x023DC],
  "PartialD" => [0x02202],
  "Pcy" => [0x0041F],
  "Pfr" => [0x1D513],
  "Phi" => [0x003A6],
  "Pi" => [0x003A0],
  "PlusMinus" => [0x000B1],
  "Poincareplane" => [0x0210C],
  "Popf" => [0x02119],
  "Pr" => [0x02ABB],
  "Precedes" => [0x0227A],
  "PrecedesEqual" => [0x02AAF],
  "PrecedesSlantEqual" => [0x0227C],
  "PrecedesTilde" => [0x0227E],
  "Prime" => [0x02033],
  "Product" => [0x0220F],
  "Proportion" => [0x02237],
  "Proportional" => [0x0221D],
  "Pscr" => [0x1D4AB],
  "Psi" => [0x003A8],
  "QUOT" => [0x00022],
  "Qfr" => [0x1D514],
  "Qopf" => [0x0211A],
  "Qscr" => [0x1D4AC],
  "RBarr" => [0x02910],
  "REG" => [0x000AE],
  "Racute" => [0x00154],
  "Rang" => [0x027EB],
  "Rarr" => [0x021A0],
  "Rarrtl" => [0x02916],
  "Rcaron" => [0x00158],
  "Rcedil" => [0x00156],
  "Rcy" => [0x00420],
  "Re" => [0x0211C],
  "ReverseElement" => [0x0220B],
  "ReverseEquilibrium" => [0x021CB],
  "ReverseUpEquilibrium" => [0x0296F],
  "Rfr" => [0x0211C],
  "Rho" => [0x003A1],
  "RightAngleBracket" => [0x027E9],
  "RightArrow" => [0x02192],
  "RightArrowBar" => [0x021E5],
  "RightArrowLeftArrow" => [0x021C4],
  "RightCeiling" => [0x02309],
  "RightDoubleBracket" => [0x027E7],
  "RightDownTeeVector" => [0x0295D],
  "RightDownVector" => [0x021C2],
  "RightDownVectorBar" => [0x02955],
  "RightFloor" => [0x0230B],
  "RightTee" => [0x022A2],
  "RightTeeArrow" => [0x021A6],
  "RightTeeVector" => [0x0295B],
  "RightTriangle" => [0x022B3],
  "RightTriangleBar" => [0x029D0],
  "RightTriangleEqual" => [0x022B5],
  "RightUpDownVector" => [0x0294F],
  "RightUpTeeVector" => [0x0295C],
  "RightUpVector" => [0x021BE],
  "RightUpVectorBar" => [0x02954],
  "RightVector" => [0x021C0],
  "RightVectorBar" => [0x02953],
  "Rightarrow" => [0x021D2],
  "Ropf" => [0x0211D],
  "RoundImplies" => [0x02970],
  "Rrightarrow" => [0x021DB],
  "Rscr" => [0x0211B],
  "Rsh" => [0x021B1],
  "RuleDelayed" => [0x029F4],
  "SHCHcy" => [0x00429],
  "SHcy" => [0x00428],
  "SOFTcy" => [0x0042C],
  "Sacute" => [0x0015A],
  "Sc" => [0x02ABC],
  "Scaron" => [0x00160],
  "Scedil" => [0x0015E],
  "Scirc" => [0x0015C],
  "Scy" => [0x00421],
  "Sfr" => [0x1D516],
  "ShortDownArrow" => [0x02193],
  "ShortLeftArrow" => [0x02190],
  "ShortRightArrow" => [0x02192],
  "ShortUpArrow" => [0x02191],
  "Sigma" => [0x003A3],
  "SmallCircle" => [0x02218],
  "Sopf" => [0x1D54A],
  "Sqrt" => [0x0221A],
  "Square" => [0x025A1],
  "SquareIntersection" => [0x02293],
  "SquareSubset" => [0x0228F],
  "SquareSubsetEqual" => [0x02291],
  "SquareSuperset" => [0x02290],
  "SquareSupersetEqual" => [0x02292],
  "SquareUnion" => [0x02294],
  "Sscr" => [0x1D4AE],
  "Star" => [0x022C6],
  "Sub" => [0x022D0],
  "Subset" => [0x022D0],
  "SubsetEqual" => [0x02286],
  "Succeeds" => [0x0227B],
  "SucceedsEqual" => [0x02AB0],
  "SucceedsSlantEqual" => [0x0227D],
  "SucceedsTilde" => [0x0227F],
  "SuchThat" => [0x0220B],
  "Sum" => [0x02211],
  "Sup" => [0x022D1],
  "Superset" => [0x02283],
  "SupersetEqual" => [0x02287],
  "Supset" => [0x022D1],
  "THORN" => [0x000DE],
  "TRADE" => [0x02122],
  "TSHcy" => [0x0040B],
  "TScy" => [0x00426],
  "Tab" => [0x00009],
  "Tau" => [0x003A4],
  "Tcaron" => [0x00164],
  "Tcedil" => [0x00162],
  "Tcy" => [0x00422],
  "Tfr" => [0x1D517],
  "Therefore" => [0x02234],
  "Theta" => [0x00398],
  "ThickSpace" => [0x0205F, 0x0200A],
  "ThinSpace" => [0x02009],
  "Tilde" => [0x0223C],
  "TildeEqual" => [0x02243],
  "TildeFullEqual" => [0x02245],
  "TildeTilde" => [0x02248],
  "Topf" => [0x1D54B],
  "TripleDot" => [0x020DB],
  "Tscr" => [0x1D4AF],
  "Tstrok" => [0x00166],
  "Uacute" => [0x000DA],
  "Uarr" => [0x0219F],
  "Uarrocir" => [0x02949],
  "Ubrcy" => [0x0040E],
  "Ubreve" => [0x0016C],
  "Ucirc" => [0x000DB],
  "Ucy" => [0x00423],
  "Udblac" => [0x00170],
  "Ufr" => [0x1D518],
  "Ugrave" => [0x000D9],
  "Umacr" => [0x0016A],
  "UnderBar" => [0x0005F],
  "UnderBrace" => [0x023DF],
  "UnderBracket" => [0x023B5],
  "UnderParenthesis" => [0x023DD],
  "Union" => [0x022C3],
  "UnionPlus" => [0x0228E],
  "Uogon" => [0x00172],
  "Uopf" => [0x1D54C],
  "UpArrow" => [0x02191],
  "UpArrowBar" => [0x02912],
  "UpArrowDownArrow" => [0x021C5],
  "UpDownArrow" => [0x02195],
  "UpEquilibrium" => [0x0296E],
  "UpTee" => [0x022A5],
  "UpTeeArrow" => [0x021A5],
  "Uparrow" => [0x021D1],
  "Updownarrow" => [0x021D5],
  "UpperLeftArrow" => [0x02196],
  "UpperRightArrow" => [0x02197],
  "Upsi" => [0x003D2],
  "Upsilon" => [0x003A5],
  "Uring" => [0x0016E],
  "Uscr" => [0x1D4B0],
  "Utilde" => [0x00168],
  "Uuml" => [0x000DC],
  "VDash" => [0x022AB],
  "Vbar" => [0x02AEB],
  "Vcy" => [0x00412],
  "Vdash" => [0x022A9],
  "Vdashl" => [0x02AE6],
  "Vee" => [0x022C1],
  "Verbar" => [0x02016],
  "Vert" => [0x02016],
  "VerticalBar" => [0x02223],
  "VerticalLine" => [0x0007C],
  "VerticalSeparator" => [0x02758],
  "VerticalTilde" => [0x02240],
  "VeryThinSpace" => [0x0200A],
  "Vfr" => [0x1D519],
  "Vopf" => [0x1D54D],
  "Vscr" => [0x1D4B1],
  "Vvdash" => [0x022AA],
  "Wcirc" => [0x00174],
  "Wedge" => [0x022C0],
  "Wfr" => [0x1D51A],
  "Wopf" => [0x1D54E],
  "Wscr" => [0x1D4B2],
  "Xfr" => [0x1D51B],
  "Xi" => [0x0039E],
  "Xopf" => [0x1D54F],
  "Xscr" => [0x1D4B3],
  "YAcy" => [0x0042F],
  "YIcy" => [0x00407],
  "YUcy" => [0x0042E],
  "Yacute" => [0x000DD],
  "Ycirc" => [0x00176],
  "Ycy" => [0x0042B],
  "Yfr" => [0x1D51C],
  "Yopf" => [0x1D550],
  "Yscr" => [0x1D4B4],
  "Yuml" => [0x00178],
  "ZHcy" => [0x00416],
  "Zacute" => [0x00179],
  "Zcaron" => [0x0017D],
  "Zcy" => [0x00417],
  "Zdot" => [0x0017B],
  "ZeroWidthSpace" => [0x0200B],
  "Zeta" => [0x00396],
  "Zfr" => [0x02128],
  "Zopf" => [0x02124],
  "Zscr" => [0x1D4B5],
  "aacute" => [0x000E1],
  "abreve" => [0x00103],
  "ac" => [0x0223E],
  "acE" => [0x0223E, 0x00333],
  "acd" => [0x0223F],
  "acirc" => [0x000E2],
  "acute" => [0x000B4],
  "acy" => [0x00430],
  "aelig" => [0x000E6],
  "af" => [0x02061],
  "afr" => [0x1D51E],
  "agrave" => [0x000E0],
  "alefsym" => [0x02135],
  "aleph" => [0x02135],
  "alpha" => [0x003B1],
  "amacr" => [0x00101],
  "amalg" => [0x02A3F],
  "amp" => [0x00026],
  "and" => [0x02227],
  "andand" => [0x02A55],
  "andd" => [0x02A5C],
  "andslope" => [0x02A58],
  "andv" => [0x02A5A],
  "ang" => [0x02220],
  "ange" => [0x029A4],
  "angle" => [0x02220],
  "angmsd" => [0x02221],
  "angmsdaa" => [0x029A8],
  "angmsdab" => [0x029A9],
  "angmsdac" => [0x029AA],
  "angmsdad" => [0x029AB],
  "angmsdae" => [0x029AC],
  "angmsdaf" => [0x029AD],
  "angmsdag" => [0x029AE],
  "angmsdah" => [0x029AF],
  "angrt" => [0x0221F],
  "angrtvb" => [0x022BE],
  "angrtvbd" => [0x0299D],
  "angsph" => [0x02222],
  "angst" => [0x000C5],
  "angzarr" => [0x0237C],
  "aogon" => [0x00105],
  "aopf" => [0x1D552],
  "ap" => [0x02248],
  "apE" => [0x02A70],
  "apacir" => [0x02A6F],
  "ape" => [0x0224A],
  "apid" => [0x0224B],
  "apos" => [0x00027],
  "approx" => [0x02248],
  "approxeq" => [0x0224A],
  "aring" => [0x000E5],
  "ascr" => [0x1D4B6],
  "ast" => [0x0002A],
  "asymp" => [0x02248],
  "asympeq" => [0x0224D],
  "atilde" => [0x000E3],
  "auml" => [0x000E4],
  "awconint" => [0x02233],
  "awint" => [0x02A11],
  "bNot" => [0x02AED],
  "backcong" => [0x0224C],
  "backepsilon" => [0x003F6],
  "backprime" => [0x02035],
  "backsim" => [0x0223D],
  "backsimeq" => [0x022CD],
  "barvee" => [0x022BD],
  "barwed" => [0x02305],
  "barwedge" => [0x02305],
  "bbrk" => [0x023B5],
  "bbrktbrk" => [0x023B6],
  "bcong" => [0x0224C],
  "bcy" => [0x00431],
  "bdquo" => [0x0201E],
  "becaus" => [0x02235],
  "because" => [0x02235],
  "bemptyv" => [0x029B0],
  "bepsi" => [0x003F6],
  "bernou" => [0x0212C],
  "beta" => [0x003B2],
  "beth" => [0x02136],
  "between" => [0x0226C],
  "bfr" => [0x1D51F],
  "bigcap" => [0x022C2],
  "bigcirc" => [0x025EF],
  "bigcup" => [0x022C3],
  "bigodot" => [0x02A00],
  "bigoplus" => [0x02A01],
  "bigotimes" => [0x02A02],
  "bigsqcup" => [0x02A06],
  "bigstar" => [0x02605],
  "bigtriangledown" => [0x025BD],
  "bigtriangleup" => [0x025B3],
  "biguplus" => [0x02A04],
  "bigvee" => [0x022C1],
  "bigwedge" => [0x022C0],
  "bkarow" => [0x0290D],
  "blacklozenge" => [0x029EB],
  "blacksquare" => [0x025AA],
  "blacktriangle" => [0x025B4],
  "blacktriangledown" => [0x025BE],
  "blacktriangleleft" => [0x025C2],
  "blacktriangleright" => [0x025B8],
  "blank" => [0x02423],
  "blk12" => [0x02592],
  "blk14" => [0x02591],
  "blk34" => [0x02593],
  "block" => [0x02588],
  "bne" => [0x0003D, 0x020E5],
  "bnequiv" => [0x02261, 0x020E5],
  "bnot" => [0x02310],
  "bopf" => [0x1D553],
  "bot" => [0x022A5],
  "bottom" => [0x022A5],
  "bowtie" => [0x022C8],
  "boxDL" => [0x02557],
  "boxDR" => [0x02554],
  "boxDl" => [0x02556],
  "boxDr" => [0x02553],
  "boxH" => [0x02550],
  "boxHD" => [0x02566],
  "boxHU" => [0x02569],
  "boxHd" => [0x02564],
  "boxHu" => [0x02567],
  "boxUL" => [0x0255D],
  "boxUR" => [0x0255A],
  "boxUl" => [0x0255C],
  "boxUr" => [0x02559],
  "boxV" => [0x02551],
  "boxVH" => [0x0256C],
  "boxVL" => [0x02563],
  "boxVR" => [0x02560],
  "boxVh" => [0x0256B],
  "boxVl" => [0x02562],
  "boxVr" => [0x0255F],
  "boxbox" => [0x029C9],
  "boxdL" => [0x02555],
  "boxdR" => [0x02552],
  "boxdl" => [0x02510],
  "boxdr" => [0x0250C],
  "boxh" => [0x02500],
  "boxhD" => [0x02565],
  "boxhU" => [0x02568],
  "boxhd" => [0x0252C],
  "boxhu" => [0x02534],
  "boxminus" => [0x0229F],
  "boxplus" => [0x0229E],
  "boxtimes" => [0x022A0],
  "boxuL" => [0x0255B],
  "boxuR" => [0x02558],
  "boxul" => [0x02518],
  "boxur" => [0x02514],
  "boxv" => [0x02502],
  "boxvH" => [0x0256A],
  "boxvL" => [0x02561],
  "boxvR" => [0x0255E],
  "boxvh" => [0x0253C],
  "boxvl" => [0x02524],
  "boxvr" => [0x0251C],
  "bprime" => [0x02035],
  "breve" => [0x002D8],
  "brvbar" => [0x000A6],
  "bscr" => [0x1D4B7],
  "bsemi" => [0x0204F],
  "bsim" => [0x0223D],
  "bsime" => [0x022CD],
  "bsol" => [0x0005C],
  "bsolb" => [0x029C5],
  "bsolhsub" => [0x027C8],
  "bull" => [0x02022],
  "bullet" => [0x02022],
  "bump" => [0x0224E],
  "bumpE" => [0x02AAE],
  "bumpe" => [0x0224F],
  "bumpeq" => [0x0224F],
  "cacute" => [0x00107],
  "cap" => [0x02229],
  "capand" => [0x02A44],
  "capbrcup" => [0x02A49],
  "capcap" => [0x02A4B],
  "capcup" => [0x02A47],
  "capdot" => [0x02A40],
  "caps" => [0x02229, 0x0FE00],
  "caret" => [0x02041],
  "caron" => [0x002C7],
  "ccaps" => [0x02A4D],
  "ccaron" => [0x0010D],
  "ccedil" => [0x000E7],
  "ccirc" => [0x00109],
  "ccups" => [0x02A4C],
  "ccupssm" => [0x02A50],
  "cdot" => [0x0010B],
  "cedil" => [0x000B8],
  "cemptyv" => [0x029B2],
  "cent" => [0x000A2],
  "centerdot" => [0x000B7],
  "cfr" => [0x1D520],
  "chcy" => [0x00447],
  "check" => [0x02713],
  "checkmark" => [0x02713],
  "chi" => [0x003C7],
  "cir" => [0x025CB],
  "cirE" => [0x029C3],
  "circ" => [0x002C6],
  "circeq" => [0x02257],
  "circlearrowleft" => [0x021BA],
  "circlearrowright" => [0x021BB],
  "circledR" => [0x000AE],
  "circledS" => [0x024C8],
  "circledast" => [0x0229B],
  "circledcirc" => [0x0229A],
  "circleddash" => [0x0229D],
  "cire" => [0x02257],
  "cirfnint" => [0x02A10],
  "cirmid" => [0x02AEF],
  "cirscir" => [0x029C2],
  "clubs" => [0x02663],
  "clubsuit" => [0x02663],
  "colon" => [0x0003A],
  "colone" => [0x02254],
  "coloneq" => [0x02254],
  "comma" => [0x0002C],
  "commat" => [0x00040],
  "comp" => [0x02201],
  "compfn" => [0x02218],
  "complement" => [0x02201],
  "complexes" => [0x02102],
  "cong" => [0x02245],
  "congdot" => [0x02A6D],
  "conint" => [0x0222E],
  "copf" => [0x1D554],
  "coprod" => [0x02210],
  "copy" => [0x000A9],
  "copysr" => [0x02117],
  "crarr" => [0x021B5],
  "cross" => [0x02717],
  "cscr" => [0x1D4B8],
  "csub" => [0x02ACF],
  "csube" => [0x02AD1],
  "csup" => [0x02AD0],
  "csupe" => [0x02AD2],
  "ctdot" => [0x022EF],
  "cudarrl" => [0x02938],
  "cudarrr" => [0x02935],
  "cuepr" => [0x022DE],
  "cuesc" => [0x022DF],
  "cularr" => [0x021B6],
  "cularrp" => [0x0293D],
  "cup" => [0x0222A],
  "cupbrcap" => [0x02A48],
  "cupcap" => [0x02A46],
  "cupcup" => [0x02A4A],
  "cupdot" => [0x0228D],
  "cupor" => [0x02A45],
  "cups" => [0x0222A, 0x0FE00],
  "curarr" => [0x021B7],
  "curarrm" => [0x0293C],
  "curlyeqprec" => [0x022DE],
  "curlyeqsucc" => [0x022DF],
  "curlyvee" => [0x022CE],
  "curlywedge" => [0x022CF],
  "curren" => [0x000A4],
  "curvearrowleft" => [0x021B6],
  "curvearrowright" => [0x021B7],
  "cuvee" => [0x022CE],
  "cuwed" => [0x022CF],
  "cwconint" => [0x02232],
  "cwint" => [0x02231],
  "cylcty" => [0x0232D],
  "dArr" => [0x021D3],
  "dHar" => [0x02965],
  "dagger" => [0x02020],
  "daleth" => [0x02138],
  "darr" => [0x02193],
  "dash" => [0x02010],
  "dashv" => [0x022A3],
  "dbkarow" => [0x0290F],
  "dblac" => [0x002DD],
  "dcaron" => [0x0010F],
  "dcy" => [0x00434],
  "dd" => [0x02146],
  "ddagger" => [0x02021],
  "ddarr" => [0x021CA],
  "ddotseq" => [0x02A77],
  "deg" => [0x000B0],
  "delta" => [0x003B4],
  "demptyv" => [0x029B1],
  "dfisht" => [0x0297F],
  "dfr" => [0x1D521],
  "dharl" => [0x021C3],
  "dharr" => [0x021C2],
  "diam" => [0x022C4],
  "diamond" => [0x022C4],
  "diamondsuit" => [0x02666],
  "diams" => [0x02666],
  "die" => [0x000A8],
  "digamma" => [0x003DD],
  "disin" => [0x022F2],
  "div" => [0x000F7],
  "divide" => [0x000F7],
  "divideontimes" => [0x022C7],
  "divonx" => [0x022C7],
  "djcy" => [0x00452],
  "dlcorn" => [0x0231E],
  "dlcrop" => [0x0230D],
  "dollar" => [0x00024],
  "dopf" => [0x1D555],
  "dot" => [0x002D9],
  "doteq" => [0x02250],
  "doteqdot" => [0x02251],
  "dotminus" => [0x02238],
  "dotplus" => [0x02214],
  "dotsquare" => [0x022A1],
  "doublebarwedge" => [0x02306],
  "downarrow" => [0x02193],
  "downdownarrows" => [0x021CA],
  "downharpoonleft" => [0x021C3],
  "downharpoonright" => [0x021C2],
  "drbkarow" => [0x02910],
  "drcorn" => [0x0231F],
  "drcrop" => [0x0230C],
  "dscr" => [0x1D4B9],
  "dscy" => [0x00455],
  "dsol" => [0x029F6],
  "dstrok" => [0x00111],
  "dtdot" => [0x022F1],
  "dtri" => [0x025BF],
  "dtrif" => [0x025BE],
  "duarr" => [0x021F5],
  "duhar" => [0x0296F],
  "dwangle" => [0x029A6],
  "dzcy" => [0x0045F],
  "dzigrarr" => [0x027FF],
  "eDDot" => [0x02A77],
  "eDot" => [0x02251],
  "eacute" => [0x000E9],
  "easter" => [0x02A6E],
  "ecaron" => [0x0011B],
  "ecir" => [0x02256],
  "ecirc" => [0x000EA],
  "ecolon" => [0x02255],
  "ecy" => [0x0044D],
  "edot" => [0x00117],
  "ee" => [0x02147],
  "efDot" => [0x02252],
  "efr" => [0x1D522],
  "eg" => [0x02A9A],
  "egrave" => [0x000E8],
  "egs" => [0x02A96],
  "egsdot" => [0x02A98],
  "el" => [0x02A99],
  "elinters" => [0x023E7],
  "ell" => [0x02113],
  "els" => [0x02A95],
  "elsdot" => [0x02A97],
  "emacr" => [0x00113],
  "empty" => [0x02205],
  "emptyset" => [0x02205],
  "emptyv" => [0x02205],
  "emsp" => [0x02003],
  "emsp13" => [0x02004],
  "emsp14" => [0x02005],
  "eng" => [0x0014B],
  "ensp" => [0x02002],
  "eogon" => [0x00119],
  "eopf" => [0x1D556],
  "epar" => [0x022D5],
  "eparsl" => [0x029E3],
  "eplus" => [0x02A71],
  "epsi" => [0x003B5],
  "epsilon" => [0x003B5],
  "epsiv" => [0x003F5],
  "eqcirc" => [0x02256],
  "eqcolon" => [0x02255],
  "eqsim" => [0x02242],
  "eqslantgtr" => [0x02A96],
  "eqslantless" => [0x02A95],
  "equals" => [0x0003D],
  "equest" => [0x0225F],
  "equiv" => [0x02261],
  "equivDD" => [0x02A78],
  "eqvparsl" => [0x029E5],
  "erDot" => [0x02253],
  "erarr" => [0x02971],
  "escr" => [0x0212F],
  "esdot" => [0x02250],
  "esim" => [0x02242],
  "eta" => [0x003B7],
  "eth" => [0x000F0],
  "euml" => [0x000EB],
  "euro" => [0x020AC],
  "excl" => [0x00021],
  "exist" => [0x02203],
  "expectation" => [0x02130],
  "exponentiale" => [0x02147],
  "fallingdotseq" => [0x02252],
  "fcy" => [0x00444],
  "female" => [0x02640],
  "ffilig" => [0x0FB03],
  "fflig" => [0x0FB00],
  "ffllig" => [0x0FB04],
  "ffr" => [0x1D523],
  "filig" => [0x0FB01],
  "fjlig" => [0x00066, 0x0006A],
  "flat" => [0x0266D],
  "fllig" => [0x0FB02],
  "fltns" => [0x025B1],
  "fnof" => [0x00192],
  "fopf" => [0x1D557],
  "forall" => [0x02200],
  "fork" => [0x022D4],
  "forkv" => [0x02AD9],
  "fpartint" => [0x02A0D],
  "frac12" => [0x000BD],
  "frac13" => [0x02153],
  "frac14" => [0x000BC],
  "frac15" => [0x02155],
  "frac16" => [0x02159],
  "frac18" => [0x0215B],
  "frac23" => [0x02154],
  "frac25" => [0x02156],
  "frac34" => [0x000BE],
  "frac35" => [0x02157],
  "frac38" => [0x0215C],
  "frac45" => [0x02158],
  "frac56" => [0x0215A],
  "frac58" => [0x0215D],
  "frac78" => [0x0215E],
  "frasl" => [0x02044],
  "frown" => [0x02322],
  "fscr" => [0x1D4BB],
  "gE" => [0x02267],
  "gEl" => [0x02A8C],
  "gacute" => [0x001F5],
  "gamma" => [0x003B3],
  "gammad" => [0x003DD],
  "gap" => [0x02A86],
  "gbreve" => [0x0011F],
  "gcirc" => [0x0011D],
  "gcy" => [0x00433],
  "gdot" => [0x00121],
  "ge" => [0x02265],
  "gel" => [0x022DB],
  "geq" => [0x02265],
  "geqq" => [0x02267],
  "geqslant" => [0x02A7E],
  "ges" => [0x02A7E],
  "gescc" => [0x02AA9],
  "gesdot" => [0x02A80],
  "gesdoto" => [0x02A82],
  "gesdotol" => [0x02A84],
  "gesl" => [0x022DB, 0x0FE00],
  "gesles" => [0x02A94],
  "gfr" => [0x1D524],
  "gg" => [0x0226B],
  "ggg" => [0x022D9],
  "gimel" => [0x02137],
  "gjcy" => [0x00453],
  "gl" => [0x02277],
  "glE" => [0x02A92],
  "gla" => [0x02AA5],
  "glj" => [0x02AA4],
  "gnE" => [0x02269],
  "gnap" => [0x02A8A],
  "gnapprox" => [0x02A8A],
  "gne" => [0x02A88],
  "gneq" => [0x02A88],
  "gneqq" => [0x02269],
  "gnsim" => [0x022E7],
  "gopf" => [0x1D558],
  "grave" => [0x00060],
  "gscr" => [0x0210A],
  "gsim" => [0x02273],
  "gsime" => [0x02A8E],
  "gsiml" => [0x02A90],
  "gt" => [0x0003E],
  "gtcc" => [0x02AA7],
  "gtcir" => [0x02A7A],
  "gtdot" => [0x022D7],
  "gtlPar" => [0x02995],
  "gtquest" => [0x02A7C],
  "gtrapprox" => [0x02A86],
  "gtrarr" => [0x02978],
  "gtrdot" => [0x022D7],
  "gtreqless" => [0x022DB],
  "gtreqqless" => [0x02A8C],
  "gtrless" => [0x02277],
  "gtrsim" => [0x02273],
  "gvertneqq" => [0x02269, 0x0FE00],
  "gvnE" => [0x02269, 0x0FE00],
  "hArr" => [0x021D4],
  "hairsp" => [0x0200A],
  "half" => [0x000BD],
  "hamilt" => [0x0210B],
  "hardcy" => [0x0044A],
  "harr" => [0x02194],
  "harrcir" => [0x02948],
  "harrw" => [0x021AD],
  "hbar" => [0x0210F],
  "hcirc" => [0x00125],
  "hearts" => [0x02665],
  "heartsuit" => [0x02665],
  "hellip" => [0x02026],
  "hercon" => [0x022B9],
  "hfr" => [0x1D525],
  "hksearow" => [0x02925],
  "hkswarow" => [0x02926],
  "hoarr" => [0x021FF],
  "homtht" => [0x0223B],
  "hookleftarrow" => [0x021A9],
  "hookrightarrow" => [0x021AA],
  "hopf" => [0x1D559],
  "horbar" => [0x02015],
  "hscr" => [0x1D4BD],
  "hslash" => [0x0210F],
  "hstrok" => [0x00127],
  "hybull" => [0x02043],
  "hyphen" => [0x02010],
  "iacute" => [0x000ED],
  "ic" => [0x02063],
  "icirc" => [0x000EE],
  "icy" => [0x00438],
  "iecy" => [0x00435],
  "iexcl" => [0x000A1],
  "iff" => [0x021D4],
  "ifr" => [0x1D526],
  "igrave" => [0x000EC],
  "ii" => [0x02148],
  "iiiint" => [0x02A0C],
  "iiint" => [0x0222D],
  "iinfin" => [0x029DC],
  "iiota" => [0x02129],
  "ijlig" => [0x00133],
  "imacr" => [0x0012B],
  "image" => [0x02111],
  "imagline" => [0x02110],
  "imagpart" => [0x02111],
  "imath" => [0x00131],
  "imof" => [0x022B7],
  "imped" => [0x001B5],
  "in" => [0x02208],
  "incare" => [0x02105],
  "infin" => [0x0221E],
  "infintie" => [0x029DD],
  "inodot" => [0x00131],
  "int" => [0x0222B],
  "intcal" => [0x022BA],
  "integers" => [0x02124],
  "intercal" => [0x022BA],
  "intlarhk" => [0x02A17],
  "intprod" => [0x02A3C],
  "iocy" => [0x00451],
  "iogon" => [0x0012F],
  "iopf" => [0x1D55A],
  "iota" => [0x003B9],
  "iprod" => [0x02A3C],
  "iquest" => [0x000BF],
  "iscr" => [0x1D4BE],
  "isin" => [0x02208],
  "isinE" => [0x022F9],
  "isindot" => [0x022F5],
  "isins" => [0x022F4],
  "isinsv" => [0x022F3],
  "isinv" => [0x02208],
  "it" => [0x02062],
  "itilde" => [0x00129],
  "iukcy" => [0x00456],
  "iuml" => [0x000EF],
  "jcirc" => [0x00135],
  "jcy" => [0x00439],
  "jfr" => [0x1D527],
  "jmath" => [0x00237],
  "jopf" => [0x1D55B],
  "jscr" => [0x1D4BF],
  "jsercy" => [0x00458],
  "jukcy" => [0x00454],
  "kappa" => [0x003BA],
  "kappav" => [0x003F0],
  "kcedil" => [0x00137],
  "kcy" => [0x0043A],
  "kfr" => [0x1D528],
  "kgreen" => [0x00138],
  "khcy" => [0x00445],
  "kjcy" => [0x0045C],
  "kopf" => [0x1D55C],
  "kscr" => [0x1D4C0],
  "lAarr" => [0x021DA],
  "lArr" => [0x021D0],
  "lAtail" => [0x0291B],
  "lBarr" => [0x0290E],
  "lE" => [0x02266],
  "lEg" => [0x02A8B],
  "lHar" => [0x02962],
  "lacute" => [0x0013A],
  "laemptyv" => [0x029B4],
  "lagran" => [0x02112],
  "lambda" => [0x003BB],
  "lang" => [0x027E8],
  "langd" => [0x02991],
  "langle" => [0x027E8],
  "lap" => [0x02A85],
  "laquo" => [0x000AB],
  "larr" => [0x02190],
  "larrb" => [0x021E4],
  "larrbfs" => [0x0291F],
  "larrfs" => [0x0291D],
  "larrhk" => [0x021A9],
  "larrlp" => [0x021AB],
  "larrpl" => [0x02939],
  "larrsim" => [0x02973],
  "larrtl" => [0x021A2],
  "lat" => [0x02AAB],
  "latail" => [0x02919],
  "late" => [0x02AAD],
  "lates" => [0x02AAD, 0x0FE00],
  "lbarr" => [0x0290C],
  "lbbrk" => [0x02772],
  "lbrace" => [0x0007B],
  "lbrack" => [0x0005B],
  "lbrke" => [0x0298B],
  "lbrksld" => [0x0298F],
  "lbrkslu" => [0x0298D],
  "lcaron" => [0x0013E],
  "lcedil" => [0x0013C],
  "lceil" => [0x02308],
  "lcub" => [0x0007B],
  "lcy" => [0x0043B],
  "ldca" => [0x02936],
  "ldquo" => [0x0201C],
  "ldquor" => [0x0201E],
  "ldrdhar" => [0x02967],
  "ldrushar" => [0x0294B],
  "ldsh" => [0x021B2],
  "le" => [0x02264],
  "leftarrow" => [0x02190],
  "leftarrowtail" => [0x021A2],
  "leftharpoondown" => [0x021BD],
  "leftharpoonup" => [0x021BC],
  "leftleftarrows" => [0x021C7],
  "leftrightarrow" => [0x02194],
  "leftrightarrows" => [0x021C6],
  "leftrightharpoons" => [0x021CB],
  "leftrightsquigarrow" => [0x021AD],
  "leftthreetimes" => [0x022CB],
  "leg" => [0x022DA],
  "leq" => [0x02264],
  "leqq" => [0x02266],
  "leqslant" => [0x02A7D],
  "les" => [0x02A7D],
  "lescc" => [0x02AA8],
  "lesdot" => [0x02A7F],
  "lesdoto" => [0x02A81],
  "lesdotor" => [0x02A83],
  "lesg" => [0x022DA, 0x0FE00],
  "lesges" => [0x02A93],
  "lessapprox" => [0x02A85],
  "lessdot" => [0x022D6],
  "lesseqgtr" => [0x022DA],
  "lesseqqgtr" => [0x02A8B],
  "lessgtr" => [0x02276],
  "lesssim" => [0x02272],
  "lfisht" => [0x0297C],
  "lfloor" => [0x0230A],
  "lfr" => [0x1D529],
  "lg" => [0x02276],
  "lgE" => [0x02A91],
  "lhard" => [0x021BD],
  "lharu" => [0x021BC],
  "lharul" => [0x0296A],
  "lhblk" => [0x02584],
  "ljcy" => [0x00459],
  "ll" => [0x0226A],
  "llarr" => [0x021C7],
  "llcorner" => [0x0231E],
  "llhard" => [0x0296B],
  "lltri" => [0x025FA],
  "lmidot" => [0x00140],
  "lmoust" => [0x023B0],
  "lmoustache" => [0x023B0],
  "lnE" => [0x02268],
  "lnap" => [0x02A89],
  "lnapprox" => [0x02A89],
  "lne" => [0x02A87],
  "lneq" => [0x02A87],
  "lneqq" => [0x02268],
  "lnsim" => [0x022E6],
  "loang" => [0x027EC],
  "loarr" => [0x021FD],
  "lobrk" => [0x027E6],
  "longleftarrow" => [0x027F5],
  "longleftrightarrow" => [0x027F7],
  "longmapsto" => [0x027FC],
  "longrightarrow" => [0x027F6],
  "looparrowleft" => [0x021AB],
  "looparrowright" => [0x021AC],
  "lopar" => [0x02985],
  "lopf" => [0x1D55D],
  "loplus" => [0x02A2D],
  "lotimes" => [0x02A34],
  "lowast" => [0x02217],
  "lowbar" => [0x0005F],
  "loz" => [0x025CA],
  "lozenge" => [0x025CA],
  "lozf" => [0x029EB],
  "lpar" => [0x00028],
  "lparlt" => [0x02993],
  "lrarr" => [0x021C6],
  "lrcorner" => [0x0231F],
  "lrhar" => [0x021CB],
  "lrhard" => [0x0296D],
  "lrm" => [0x0200E],
  "lrtri" => [0x022BF],
  "lsaquo" => [0x02039],
  "lscr" => [0x1D4C1],
  "lsh" => [0x021B0],
  "lsim" => [0x02272],
  "lsime" => [0x02A8D],
  "lsimg" => [0x02A8F],
  "lsqb" => [0x0005B],
  "lsquo" => [0x02018],
  "lsquor" => [0x0201A],
  "lstrok" => [0x00142],
  "lt" => [0x0003C],
  "ltcc" => [0x02AA6],
  "ltcir" => [0x02A79],
  "ltdot" => [0x022D6],
  "lthree" => [0x022CB],
  "ltimes" => [0x022C9],
  "ltlarr" => [0x02976],
  "ltquest" => [0x02A7B],
  "ltrPar" => [0x02996],
  "ltri" => [0x025C3],
  "ltrie" => [0x022B4],
  "ltrif" => [0x025C2],
  "lurdshar" => [0x0294A],
  "luruhar" => [0x02966],
  "lvertneqq" => [0x02268, 0x0FE00],
  "lvnE" => [0x02268, 0x0FE00],
  "mDDot" => [0x0223A],
  "macr" => [0x000AF],
  "male" => [0x02642],
  "malt" => [0x02720],
  "maltese" => [0x02720],
  "map" => [0x021A6],
  "mapsto" => [0x021A6],
  "mapstodown" => [0x021A7],
  "mapstoleft" => [0x021A4],
  "mapstoup" => [0x021A5],
  "marker" => [0x025AE],
  "mcomma" => [0x02A29],
  "mcy" => [0x0043C],
  "mdash" => [0x02014],
  "measuredangle" => [0x02221],
  "mfr" => [0x1D52A],
  "mho" => [0x02127],
  "micro" => [0x000B5],
  "mid" => [0x02223],
  "midast" => [0x0002A],
  "midcir" => [0x02AF0],
  "middot" => [0x000B7],
  "minus" => [0x02212],
  "minusb" => [0x0229F],
  "minusd" => [0x02238],
  "minusdu" => [0x02A2A],
  "mlcp" => [0x02ADB],
  "mldr" => [0x02026],
  "mnplus" => [0x02213],
  "models" => [0x022A7],
  "mopf" => [0x1D55E],
  "mp" => [0x02213],
  "mscr" => [0x1D4C2],
  "mstpos" => [0x0223E],
  "mu" => [0x003BC],
  "multimap" => [0x022B8],
  "mumap" => [0x022B8],
  "nGg" => [0x022D9, 0x00338],
  "nGt" => [0x0226B, 0x020D2],
  "nGtv" => [0x0226B, 0x00338],
  "nLeftarrow" => [0x021CD],
  "nLeftrightarrow" => [0x021CE],
  "nLl" => [0x022D8, 0x00338],
  "nLt" => [0x0226A, 0x020D2],
  "nLtv" => [0x0226A, 0x00338],
  "nRightarrow" => [0x021CF],
  "nVDash" => [0x022AF],
  "nVdash" => [0x022AE],
  "nabla" => [0x02207],
  "nacute" => [0x00144],
  "nang" => [0x02220, 0x020D2],
  "nap" => [0x02249],
  "napE" => [0x02A70, 0x00338],
  "napid" => [0x0224B, 0x00338],
  "napos" => [0x00149],
  "napprox" => [0x02249],
  "natur" => [0x0266E],
  "natural" => [0x0266E],
  "naturals" => [0x02115],
  "nbsp" => [0x000A0],
  "nbump" => [0x0224E, 0x00338],
  "nbumpe" => [0x0224F, 0x00338],
  "ncap" => [0x02A43],
  "ncaron" => [0x00148],
  "ncedil" => [0x00146],
  "ncong" => [0x02247],
  "ncongdot" => [0x02A6D, 0x00338],
  "ncup" => [0x02A42],
  "ncy" => [0x0043D],
  "ndash" => [0x02013],
  "ne" => [0x02260],
  "neArr" => [0x021D7],
  "nearhk" => [0x02924],
  "nearr" => [0x02197],
  "nearrow" => [0x02197],
  "nedot" => [0x02250, 0x00338],
  "nequiv" => [0x02262],
  "nesear" => [0x02928],
  "nesim" => [0x02242, 0x00338],
  "nexist" => [0x02204],
  "nexists" => [0x02204],
  "nfr" => [0x1D52B],
  "ngE" => [0x02267, 0x00338],
  "nge" => [0x02271],
  "ngeq" => [0x02271],
  "ngeqq" => [0x02267, 0x00338],
  "ngeqslant" => [0x02A7E, 0x00338],
  "nges" => [0x02A7E, 0x00338],
  "ngsim" => [0x02275],
  "ngt" => [0x0226F],
  "ngtr" => [0x0226F],
  "nhArr" => [0x021CE],
  "nharr" => [0x021AE],
  "nhpar" => [0x02AF2],
  "ni" => [0x0220B],
  "nis" => [0x022FC],
  "nisd" => [0x022FA],
  "niv" => [0x0220B],
  "njcy" => [0x0045A],
  "nlArr" => [0x021CD],
  "nlE" => [0x02266, 0x00338],
  "nlarr" => [0x0219A],
  "nldr" => [0x02025],
  "nle" => [0x02270],
  "nleftarrow" => [0x0219A],
  "nleftrightarrow" => [0x021AE],
  "nleq" => [0x02270],
  "nleqq" => [0x02266, 0x00338],
  "nleqslant" => [0x02A7D, 0x00338],
  "nles" => [0x02A7D, 0x00338],
  "nless" => [0x0226E],
  "nlsim" => [0x02274],
  "nlt" => [0x0226E],
  "nltri" => [0x022EA],
  "nltrie" => [0x022EC],
  "nmid" => [0x02224],
  "nopf" => [0x1D55F],
  "not" => [0x000AC],
  "notin" => [0x02209],
  "notinE" => [0x022F9, 0x00338],
  "notindot" => [0x022F5, 0x00338],
  "notinva" => [0x02209],
  "notinvb" => [0x022F7],
  "notinvc" => [0x022F6],
  "notni" => [0x0220C],
  "notniva" => [0x0220C],
  "notnivb" => [0x022FE],
  "notnivc" => [0x022FD],
  "npar" => [0x02226],
  "nparallel" => [0x02226],
  "nparsl" => [0x02AFD, 0x020E5],
  "npart" => [0x02202, 0x00338],
  "npolint" => [0x02A14],
  "npr" => [0x02280],
  "nprcue" => [0x022E0],
  "npre" => [0x02AAF, 0x00338],
  "nprec" => [0x02280],
  "npreceq" => [0x02AAF, 0x00338],
  "nrArr" => [0x021CF],
  "nrarr" => [0x0219B],
  "nrarrc" => [0x02933, 0x00338],
  "nrarrw" => [0x0219D, 0x00338],
  "nrightarrow" => [0x0219B],
  "nrtri" => [0x022EB],
  "nrtrie" => [0x022ED],
  "nsc" => [0x02281],
  "nsccue" => [0x022E1],
  "nsce" => [0x02AB0, 0x00338],
  "nscr" => [0x1D4C3],
  "nshortmid" => [0x02224],
  "nshortparallel" => [0x02226],
  "nsim" => [0x02241],
  "nsime" => [0x02244],
  "nsimeq" => [0x02244],
  "nsmid" => [0x02224],
  "nspar" => [0x02226],
  "nsqsube" => [0x022E2],
  "nsqsupe" => [0x022E3],
  "nsub" => [0x02284],
  "nsubE" => [0x02AC5, 0x00338],
  "nsube" => [0x02288],
  "nsubset" => [0x02282, 0x020D2],
  "nsubseteq" => [0x02288],
  "nsubseteqq" => [0x02AC5, 0x00338],
  "nsucc" => [0x02281],
  "nsucceq" => [0x02AB0, 0x00338],
  "nsup" => [0x02285],
  "nsupE" => [0x02AC6, 0x00338],
  "nsupe" => [0x02289],
  "nsupset" => [0x02283, 0x020D2],
  "nsupseteq" => [0x02289],
  "nsupseteqq" => [0x02AC6, 0x00338],
  "ntgl" => [0x02279],
  "ntilde" => [0x000F1],
  "ntlg" => [0x02278],
  "ntriangleleft" => [0x022EA],
  "ntrianglelefteq" => [0x022EC],
  "ntriangleright" => [0x022EB],
  "ntrianglerighteq" => [0x022ED],
  "nu" => [0x003BD],
  "num" => [0x00023],
  "numero" => [0x02116],
  "numsp" => [0x02007],
  "nvDash" => [0x022AD],
  "nvHarr" => [0x02904],
  "nvap" => [0x0224D, 0x020D2],
  "nvdash" => [0x022AC],
  "nvge" => [0x02265, 0x020D2],
  "nvgt" => [0x0003E, 0x020D2],
  "nvinfin" => [0x029DE],
  "nvlArr" => [0x02902],
  "nvle" => [0x02264, 0x020D2],
  "nvlt" => [0x0003C, 0x020D2],
  "nvltrie" => [0x022B4, 0x020D2],
  "nvrArr" => [0x02903],
  "nvrtrie" => [0x022B5, 0x020D2],
  "nvsim" => [0x0223C, 0x020D2],
  "nwArr" => [0x021D6],
  "nwarhk" => [0x02923],
  "nwarr" => [0x02196],
  "nwarrow" => [0x02196],
  "nwnear" => [0x02927],
  "oS" => [0x024C8],
  "oacute" => [0x000F3],
  "oast" => [0x0229B],
  "ocir" => [0x0229A],
  "ocirc" => [0x000F4],
  "ocy" => [0x0043E],
  "odash" => [0x0229D],
  "odblac" => [0x00151],
  "odiv" => [0x02A38],
  "odot" => [0x02299],
  "odsold" => [0x029BC],
  "oelig" => [0x00153],
  "ofcir" => [0x029BF],
  "ofr" => [0x1D52C],
  "ogon" => [0x002DB],
  "ograve" => [0x000F2],
  "ogt" => [0x029C1],
  "ohbar" => [0x029B5],
  "ohm" => [0x003A9],
  "oint" => [0x0222E],
  "olarr" => [0x021BA],
  "olcir" => [0x029BE],
  "olcross" => [0x029BB],
  "oline" => [0x0203E],
  "olt" => [0x029C0],
  "omacr" => [0x0014D],
  "omega" => [0x003C9],
  "omicron" => [0x003BF],
  "omid" => [0x029B6],
  "ominus" => [0x02296],
  "oopf" => [0x1D560],
  "opar" => [0x029B7],
  "operp" => [0x029B9],
  "oplus" => [0x02295],
  "or" => [0x02228],
  "orarr" => [0x021BB],
  "ord" => [0x02A5D],
  "order" => [0x02134],
  "orderof" => [0x02134],
  "ordf" => [0x000AA],
  "ordm" => [0x000BA],
  "origof" => [0x022B6],
  "oror" => [0x02A56],
  "orslope" => [0x02A57],
  "orv" => [0x02A5B],
  "oscr" => [0x02134],
  "oslash" => [0x000F8],
  "osol" => [0x02298],
  "otilde" => [0x000F5],
  "otimes" => [0x02297],
  "otimesas" => [0x02A36],
  "ouml" => [0x000F6],
  "ovbar" => [0x0233D],
  "par" => [0x02225],
  "para" => [0x000B6],
  "parallel" => [0x02225],
  "parsim" => [0x02AF3],
  "parsl" => [0x02AFD],
  "part" => [0x02202],
  "pcy" => [0x0043F],
  "percnt" => [0x00025],
  "period" => [0x0002E],
  "permil" => [0x02030],
  "perp" => [0x022A5],
  "pertenk" => [0x02031],
  "pfr" => [0x1D52D],
  "phi" => [0x003C6],
  "phiv" => [0x003D5],
  "phmmat" => [0x02133],
  "phone" => [0x0260E],
  "pi" => [0x003C0],
  "pitchfork" => [0x022D4],
  "piv" => [0x003D6],
  "planck" => [0x0210F],
  "planckh" => [0x0210E],
  "plankv" => [0x0210F],
  "plus" => [0x0002B],
  "plusacir" => [0x02A23],
  "plusb" => [0x0229E],
  "pluscir" => [0x02A22],
  "plusdo" => [0x02214],
  "plusdu" => [0x02A25],
  "pluse" => [0x02A72],
  "plusmn" => [0x000B1],
  "plussim" => [0x02A26],
  "plustwo" => [0x02A27],
  "pm" => [0x000B1],
  "pointint" => [0x02A15],
  "popf" => [0x1D561],
  "pound" => [0x000A3],
  "pr" => [0x0227A],
  "prE" => [0x02AB3],
  "prap" => [0x02AB7],
  "prcue" => [0x0227C],
  "pre" => [0x02AAF],
  "prec" => [0x0227A],
  "precapprox" => [0x02AB7],
  "preccurlyeq" => [0x0227C],
  "preceq" => [0x02AAF],
  "precnapprox" => [0x02AB9],
  "precneqq" => [0x02AB5],
  "precnsim" => [0x022E8],
  "precsim" => [0x0227E],
  "prime" => [0x02032],
  "primes" => [0x02119],
  "prnE" => [0x02AB5],
  "prnap" => [0x02AB9],
  "prnsim" => [0x022E8],
  "prod" => [0x0220F],
  "profalar" => [0x0232E],
  "profline" => [0x02312],
  "profsurf" => [0x02313],
  "prop" => [0x0221D],
  "propto" => [0x0221D],
  "prsim" => [0x0227E],
  "prurel" => [0x022B0],
  "pscr" => [0x1D4C5],
  "psi" => [0x003C8],
  "puncsp" => [0x02008],
  "qfr" => [0x1D52E],
  "qint" => [0x02A0C],
  "qopf" => [0x1D562],
  "qprime" => [0x02057],
  "qscr" => [0x1D4C6],
  "quaternions" => [0x0210D],
  "quatint" => [0x02A16],
  "quest" => [0x0003F],
  "questeq" => [0x0225F],
  "quot" => [0x00022],
  "rAarr" => [0x021DB],
  "rArr" => [0x021D2],
  "rAtail" => [0x0291C],
  "rBarr" => [0x0290F],
  "rHar" => [0x02964],
  "race" => [0x0223D, 0x00331],
  "racute" => [0x00155],
  "radic" => [0x0221A],
  "raemptyv" => [0x029B3],
  "rang" => [0x027E9],
  "rangd" => [0x02992],
  "range" => [0x029A5],
  "rangle" => [0x027E9],
  "raquo" => [0x000BB],
  "rarr" => [0x02192],
  "rarrap" => [0x02975],
  "rarrb" => [0x021E5],
  "rarrbfs" => [0x02920],
  "rarrc" => [0x02933],
  "rarrfs" => [0x0291E],
  "rarrhk" => [0x021AA],
  "rarrlp" => [0x021AC],
  "rarrpl" => [0x02945],
  "rarrsim" => [0x02974],
  "rarrtl" => [0x021A3],
  "rarrw" => [0x0219D],
  "ratail" => [0x0291A],
  "ratio" => [0x02236],
  "rationals" => [0x0211A],
  "rbarr" => [0x0290D],
  "rbbrk" => [0x02773],
  "rbrace" => [0x0007D],
  "rbrack" => [0x0005D],
  "rbrke" => [0x0298C],
  "rbrksld" => [0x0298E],
  "rbrkslu" => [0x02990],
  "rcaron" => [0x00159],
  "rcedil" => [0x00157],
  "rceil" => [0x02309],
  "rcub" => [0x0007D],
  "rcy" => [0x00440],
  "rdca" => [0x02937],
  "rdldhar" => [0x02969],
  "rdquo" => [0x0201D],
  "rdquor" => [0x0201D],
  "rdsh" => [0x021B3],
  "real" => [0x0211C],
  "realine" => [0x0211B],
  "realpart" => [0x0211C],
  "reals" => [0x0211D],
  "rect" => [0x025AD],
  "reg" => [0x000AE],
  "rfisht" => [0x0297D],
  "rfloor" => [0x0230B],
  "rfr" => [0x1D52F],
  "rhard" => [0x021C1],
  "rharu" => [0x021C0],
  "rharul" => [0x0296C],
  "rho" => [0x003C1],
  "rhov" => [0x003F1],
  "rightarrow" => [0x02192],
  "rightarrowtail" => [0x021A3],
  "rightharpoondown" => [0x021C1],
  "rightharpoonup" => [0x021C0],
  "rightleftarrows" => [0x021C4],
  "rightleftharpoons" => [0x021CC],
  "rightrightarrows" => [0x021C9],
  "rightsquigarrow" => [0x0219D],
  "rightthreetimes" => [0x022CC],
  "ring" => [0x002DA],
  "risingdotseq" => [0x02253],
  "rlarr" => [0x021C4],
  "rlhar" => [0x021CC],
  "rlm" => [0x0200F],
  "rmoust" => [0x023B1],
  "rmoustache" => [0x023B1],
  "rnmid" => [0x02AEE],
  "roang" => [0x027ED],
  "roarr" => [0x021FE],
  "robrk" => [0x027E7],
  "ropar" => [0x02986],
  "ropf" => [0x1D563],
  "roplus" => [0x02A2E],
  "rotimes" => [0x02A35],
  "rpar" => [0x00029],
  "rpargt" => [0x02994],
  "rppolint" => [0x02A12],
  "rrarr" => [0x021C9],
  "rsaquo" => [0x0203A],
  "rscr" => [0x1D4C7],
  "rsh" => [0x021B1],
  "rsqb" => [0x0005D],
  "rsquo" => [0x02019],
  "rsquor" => [0x02019],
  "rthree" => [0x022CC],
  "rtimes" => [0x022CA],
  "rtri" => [0x025B9],
  "rtrie" => [0x022B5],
  "rtrif" => [0x025B8],
  "rtriltri" => [0x029CE],
  "ruluhar" => [0x02968],
  "rx" => [0x0211E],
  "sacute" => [0x0015B],
  "sbquo" => [0x0201A],
  "sc" => [0x0227B],
  "scE" => [0x02AB4],
  "scap" => [0x02AB8],
  "scaron" => [0x00161],
  "sccue" => [0x0227D],
  "sce" => [0x02AB0],
  "scedil" => [0x0015F],
  "scirc" => [0x0015D],
  "scnE" => [0x02AB6],
  "scnap" => [0x02ABA],
  "scnsim" => [0x022E9],
  "scpolint" => [0x02A13],
  "scsim" => [0x0227F],
  "scy" => [0x00441],
  "sdot" => [0x022C5],
  "sdotb" => [0x022A1],
  "sdote" => [0x02A66],
  "seArr" => [0x021D8],
  "searhk" => [0x02925],
  "searr" => [0x02198],
  "searrow" => [0x02198],
  "sect" => [0x000A7],
  "semi" => [0x0003B],
  "seswar" => [0x02929],
  "setminus" => [0x02216],
  "setmn" => [0x02216],
  "sext" => [0x02736],
  "sfr" => [0x1D530],
  "sfrown" => [0x02322],
  "sharp" => [0x0266F],
  "shchcy" => [0x00449],
  "shcy" => [0x00448],
  "shortmid" => [0x02223],
  "shortparallel" => [0x02225],
  "shy" => [0x000AD],
  "sigma" => [0x003C3],
  "sigmaf" => [0x003C2],
  "sigmav" => [0x003C2],
  "sim" => [0x0223C],
  "simdot" => [0x02A6A],
  "sime" => [0x02243],
  "simeq" => [0x02243],
  "simg" => [0x02A9E],
  "simgE" => [0x02AA0],
  "siml" => [0x02A9D],
  "simlE" => [0x02A9F],
  "simne" => [0x02246],
  "simplus" => [0x02A24],
  "simrarr" => [0x02972],
  "slarr" => [0x02190],
  "smallsetminus" => [0x02216],
  "smashp" => [0x02A33],
  "smeparsl" => [0x029E4],
  "smid" => [0x02223],
  "smile" => [0x02323],
  "smt" => [0x02AAA],
  "smte" => [0x02AAC],
  "smtes" => [0x02AAC, 0x0FE00],
  "softcy" => [0x0044C],
  "sol" => [0x0002F],
  "solb" => [0x029C4],
  "solbar" => [0x0233F],
  "sopf" => [0x1D564],
  "spades" => [0x02660],
  "spadesuit" => [0x02660],
  "spar" => [0x02225],
  "sqcap" => [0x02293],
  "sqcaps" => [0x02293, 0x0FE00],
  "sqcup" => [0x02294],
  "sqcups" => [0x02294, 0x0FE00],
  "sqsub" => [0x0228F],
  "sqsube" => [0x02291],
  "sqsubset" => [0x0228F],
  "sqsubseteq" => [0x02291],
  "sqsup" => [0x02290],
  "sqsupe" => [0x02292],
  "sqsupset" => [0x02290],
  "sqsupseteq" => [0x02292],
  "squ" => [0x025A1],
  "square" => [0x025A1],
  "squarf" => [0x025AA],
  "squf" => [0x025AA],
  "srarr" => [0x02192],
  "sscr" => [0x1D4C8],
  "ssetmn" => [0x02216],
  "ssmile" => [0x02323],
  "sstarf" => [0x022C6],
  "star" => [0x02606],
  "starf" => [0x02605],
  "straightepsilon" => [0x003F5],
  "straightphi" => [0x003D5],
  "strns" => [0x000AF],
  "sub" => [0x02282],
  "subE" => [0x02AC5],
  "subdot" => [0x02ABD],
  "sube" => [0x02286],
  "subedot" => [0x02AC3],
  "submult" => [0x02AC1],
  "subnE" => [0x02ACB],
  "subne" => [0x0228A],
  "subplus" => [0x02ABF],
  "subrarr" => [0x02979],
  "subset" => [0x02282],
  "subseteq" => [0x02286],
  "subseteqq" => [0x02AC5],
  "subsetneq" => [0x0228A],
  "subsetneqq" => [0x02ACB],
  "subsim" => [0x02AC7],
  "subsub" => [0x02AD5],
  "subsup" => [0x02AD3],
  "succ" => [0x0227B],
  "succapprox" => [0x02AB8],
  "succcurlyeq" => [0x0227D],
  "succeq" => [0x02AB0],
  "succnapprox" => [0x02ABA],
  "succneqq" => [0x02AB6],
  "succnsim" => [0x022E9],
  "succsim" => [0x0227F],
  "sum" => [0x02211],
  "sung" => [0x0266A],
  "sup" => [0x02283],
  "sup1" => [0x000B9],
  "sup2" => [0x000B2],
  "sup3" => [0x000B3],
  "supE" => [0x02AC6],
  "supdot" => [0x02ABE],
  "supdsub" => [0x02AD8],
  "supe" => [0x02287],
  "supedot" => [0x02AC4],
  "suphsol" => [0x027C9],
  "suphsub" => [0x02AD7],
  "suplarr" => [0x0297B],
  "supmult" => [0x02AC2],
  "supnE" => [0x02ACC],
  "supne" => [0x0228B],
  "supplus" => [0x02AC0],
  "supset" => [0x02283],
  "supseteq" => [0x02287],
  "supseteqq" => [0x02AC6],
  "supsetneq" => [0x0228B],
  "supsetneqq" => [0x02ACC],
  "supsim" => [0x02AC8],
  "supsub" => [0x02AD4],
  "supsup" => [0x02AD6],
  "swArr" => [0x021D9],
  "swarhk" => [0x02926],
  "swarr" => [0x02199],
  "swarrow" => [0x02199],
  "swnwar" => [0x0292A],
  "szlig" => [0x000DF],
  "target" => [0x02316],
  "tau" => [0x003C4],
  "tbrk" => [0x023B4],
  "tcaron" => [0x00165],
  "tcedil" => [0x00163],
  "tcy" => [0x00442],
  "tdot" => [0x020DB],
  "telrec" => [0x02315],
  "tfr" => [0x1D531],
  "there4" => [0x02234],
  "therefore" => [0x02234],
  "theta" => [0x003B8],
  "thetasym" => [0x003D1],
  "thetav" => [0x003D1],
  "thickapprox" => [0x02248],
  "thicksim" => [0x0223C],
  "thinsp" => [0x02009],
  "thkap" => [0x02248],
  "thksim" => [0x0223C],
  "thorn" => [0x000FE],
  "tilde" => [0x002DC],
  "times" => [0x000D7],
  "timesb" => [0x022A0],
  "timesbar" => [0x02A31],
  "timesd" => [0x02A30],
  "tint" => [0x0222D],
  "toea" => [0x02928],
  "top" => [0x022A4],
  "topbot" => [0x02336],
  "topcir" => [0x02AF1],
  "topf" => [0x1D565],
  "topfork" => [0x02ADA],
  "tosa" => [0x02929],
  "tprime" => [0x02034],
  "trade" => [0x02122],
  "triangle" => [0x025B5],
  "triangledown" => [0x025BF],
  "triangleleft" => [0x025C3],
  "trianglelefteq" => [0x022B4],
  "triangleq" => [0x0225C],
  "triangleright" => [0x025B9],
  "trianglerighteq" => [0x022B5],
  "tridot" => [0x025EC],
  "trie" => [0x0225C],
  "triminus" => [0x02A3A],
  "triplus" => [0x02A39],
  "trisb" => [0x029CD],
  "tritime" => [0x02A3B],
  "trpezium" => [0x023E2],
  "tscr" => [0x1D4C9],
  "tscy" => [0x00446],
  "tshcy" => [0x0045B],
  "tstrok" => [0x00167],
  "twixt" => [0x0226C],
  "twoheadleftarrow" => [0x0219E],
  "twoheadrightarrow" => [0x021A0],
  "uArr" => [0x021D1],
  "uHar" => [0x02963],
  "uacute" => [0x000FA],
  "uarr" => [0x02191],
  "ubrcy" => [0x0045E],
  "ubreve" => [0x0016D],
  "ucirc" => [0x000FB],
  "ucy" => [0x00443],
  "udarr" => [0x021C5],
  "udblac" => [0x00171],
  "udhar" => [0x0296E],
  "ufisht" => [0x0297E],
  "ufr" => [0x1D532],
  "ugrave" => [0x000F9],
  "uharl" => [0x021BF],
  "uharr" => [0x021BE],
  "uhblk" => [0x02580],
  "ulcorn" => [0x0231C],
  "ulcorner" => [0x0231C],
  "ulcrop" => [0x0230F],
  "ultri" => [0x025F8],
  "umacr" => [0x0016B],
  "uml" => [0x000A8],
  "uogon" => [0x00173],
  "uopf" => [0x1D566],
  "uparrow" => [0x02191],
  "updownarrow" => [0x02195],
  "upharpoonleft" => [0x021BF],
  "upharpoonright" => [0x021BE],
  "uplus" => [0x0228E],
  "upsi" => [0x003C5],
  "upsih" => [0x003D2],
  "upsilon" => [0x003C5],
  "upuparrows" => [0x021C8],
  "urcorn" => [0x0231D],
  "urcorner" => [0x0231D],
  "urcrop" => [0x0230E],
  "uring" => [0x0016F],
  "urtri" => [0x025F9],
  "uscr" => [0x1D4CA],
  "utdot" => [0x022F0],
  "utilde" => [0x00169],
  "utri" => [0x025B5],
  "utrif" => [0x025B4],
  "uuarr" => [0x021C8],
  "uuml" => [0x000FC],
  "uwangle" => [0x029A7],
  "vArr" => [0x021D5],
  "vBar" => [0x02AE8],
  "vBarv" => [0x02AE9],
  "vDash" => [0x022A8],
  "vangrt" => [0x0299C],
  "varepsilon" => [0x003F5],
  "varkappa" => [0x003F0],
  "varnothing" => [0x02205],
  "varphi" => [0x003D5],
  "varpi" => [0x003D6],
  "varpropto" => [0x0221D],
  "varr" => [0x02195],
  "varrho" => [0x003F1],
  "varsigma" => [0x003C2],
  "varsubsetneq" => [0x0228A, 0x0FE00],
  "varsubsetneqq" => [0x02ACB, 0x0FE00],
  "varsupsetneq" => [0x0228B, 0x0FE00],
  "varsupsetneqq" => [0x02ACC, 0x0FE00],
  "vartheta" => [0x003D1],
  "vartriangleleft" => [0x022B2],
  "vartriangleright" => [0x022B3],
  "vcy" => [0x00432],
  "vdash" => [0x022A2],
  "vee" => [0x02228],
  "veebar" => [0x022BB],
  "veeeq" => [0x0225A],
  "vellip" => [0x022EE],
  "verbar" => [0x0007C],
  "vert" => [0x0007C],
  "vfr" => [0x1D533],
  "vltri" => [0x022B2],
  "vnsub" => [0x02282, 0x020D2],
  "vnsup" => [0x02283, 0x020D2],
  "vopf" => [0x1D567],
  "vprop" => [0x0221D],
  "vrtri" => [0x022B3],
  "vscr" => [0x1D4CB],
  "vsubnE" => [0x02ACB, 0x0FE00],
  "vsubne" => [0x0228A, 0x0FE00],
  "vsupnE" => [0x02ACC, 0x0FE00],
  "vsupne" => [0x0228B, 0x0FE00],
  "vzigzag" => [0x0299A],
  "wcirc" => [0x00175],
  "wedbar" => [0x02A5F],
  "wedge" => [0x02227],
  "wedgeq" => [0x02259],
  "weierp" => [0x02118],
  "wfr" => [0x1D534],
  "wopf" => [0x1D568],
  "wp" => [0x02118],
  "wr" => [0x02240],
  "wreath" => [0x02240],
  "wscr" => [0x1D4CC],
  "xcap" => [0x022C2],
  "xcirc" => [0x025EF],
  "xcup" => [0x022C3],
  "xdtri" => [0x025BD],
  "xfr" => [0x1D535],
  "xhArr" => [0x027FA],
  "xharr" => [0x027F7],
  "xi" => [0x003BE],
  "xlArr" => [0x027F8],
  "xlarr" => [0x027F5],
  "xmap" => [0x027FC],
  "xnis" => [0x022FB],
  "xodot" => [0x02A00],
  "xopf" => [0x1D569],
  "xoplus" => [0x02A01],
  "xotime" => [0x02A02],
  "xrArr" => [0x027F9],
  "xrarr" => [0x027F6],
  "xscr" => [0x1D4CD],
  "xsqcup" => [0x02A06],
  "xuplus" => [0x02A04],
  "xutri" => [0x025B3],
  "xvee" => [0x022C1],
  "xwedge" => [0x022C0],
  "yacute" => [0x000FD],
  "yacy" => [0x0044F],
  "ycirc" => [0x00177],
  "ycy" => [0x0044B],
  "yen" => [0x000A5],
  "yfr" => [0x1D536],
  "yicy" => [0x00457],
  "yopf" => [0x1D56A],
  "yscr" => [0x1D4CE],
  "yucy" => [0x0044E],
  "yuml" => [0x000FF],
  "zacute" => [0x0017A],
  "zcaron" => [0x0017E],
  "zcy" => [0x00437],
  "zdot" => [0x0017C],
  "zeetrf" => [0x02128],
  "zeta" => [0x003B6],
  "zfr" => [0x1D537],
  "zhcy" => [0x00436],
  "zigrarr" => [0x021DD],
  "zopf" => [0x1D56B],
  "zscr" => [0x1D4CF],
  "zwj" => [0x0200D],
  "zwnj" => [0x0200C],
}

lib64/ruby/2.2.0/rdoc/markdown/literals_1_9.rb000064400000022162150402106150014466 0ustar00# coding: UTF-8
# :markup: markdown

##
#--
# This set of literals is for Ruby 1.9 regular expressions and gives full
# unicode support.
#
# Unlike peg-markdown, this set of literals recognizes Unicode alphanumeric
# characters, newlines and spaces.
class RDoc::Markdown::Literals
  # :stopdoc:

    # This is distinct from setup_parser so that a standalone parser
    # can redefine #initialize and still have access to the proper
    # parser setup code.
    def initialize(str, debug=false)
      setup_parser(str, debug)
    end



    # Prepares for parsing +str+.  If you define a custom initialize you must
    # call this method before #parse
    def setup_parser(str, debug=false)
      set_string str, 0
      @memoizations = Hash.new { |h,k| h[k] = {} }
      @result = nil
      @failed_rule = nil
      @failing_rule_offset = -1

      setup_foreign_grammar
    end

    attr_reader :string
    attr_reader :failing_rule_offset
    attr_accessor :result, :pos

    def current_column(target=pos)
      if c = string.rindex("\n", target-1)
        return target - c - 1
      end

      target + 1
    end

    def current_line(target=pos)
      cur_offset = 0
      cur_line = 0

      string.each_line do |line|
        cur_line += 1
        cur_offset += line.size
        return cur_line if cur_offset >= target
      end

      -1
    end

    def lines
      lines = []
      string.each_line { |l| lines << l }
      lines
    end



    def get_text(start)
      @string[start..@pos-1]
    end

    # Sets the string and current parsing position for the parser.
    def set_string string, pos
      @string = string
      @string_size = string ? string.size : 0
      @pos = pos
    end

    def show_pos
      width = 10
      if @pos < width
        "#{@pos} (\"#{@string[0,@pos]}\" @ \"#{@string[@pos,width]}\")"
      else
        "#{@pos} (\"... #{@string[@pos - width, width]}\" @ \"#{@string[@pos,width]}\")"
      end
    end

    def failure_info
      l = current_line @failing_rule_offset
      c = current_column @failing_rule_offset

      if @failed_rule.kind_of? Symbol
        info = self.class::Rules[@failed_rule]
        "line #{l}, column #{c}: failed rule '#{info.name}' = '#{info.rendered}'"
      else
        "line #{l}, column #{c}: failed rule '#{@failed_rule}'"
      end
    end

    def failure_caret
      l = current_line @failing_rule_offset
      c = current_column @failing_rule_offset

      line = lines[l-1]
      "#{line}\n#{' ' * (c - 1)}^"
    end

    def failure_character
      l = current_line @failing_rule_offset
      c = current_column @failing_rule_offset
      lines[l-1][c-1, 1]
    end

    def failure_oneline
      l = current_line @failing_rule_offset
      c = current_column @failing_rule_offset

      char = lines[l-1][c-1, 1]

      if @failed_rule.kind_of? Symbol
        info = self.class::Rules[@failed_rule]
        "@#{l}:#{c} failed rule '#{info.name}', got '#{char}'"
      else
        "@#{l}:#{c} failed rule '#{@failed_rule}', got '#{char}'"
      end
    end

    class ParseError < RuntimeError
    end

    def raise_error
      raise ParseError, failure_oneline
    end

    def show_error(io=STDOUT)
      error_pos = @failing_rule_offset
      line_no = current_line(error_pos)
      col_no = current_column(error_pos)

      io.puts "On line #{line_no}, column #{col_no}:"

      if @failed_rule.kind_of? Symbol
        info = self.class::Rules[@failed_rule]
        io.puts "Failed to match '#{info.rendered}' (rule '#{info.name}')"
      else
        io.puts "Failed to match rule '#{@failed_rule}'"
      end

      io.puts "Got: #{string[error_pos,1].inspect}"
      line = lines[line_no-1]
      io.puts "=> #{line}"
      io.print(" " * (col_no + 3))
      io.puts "^"
    end

    def set_failed_rule(name)
      if @pos > @failing_rule_offset
        @failed_rule = name
        @failing_rule_offset = @pos
      end
    end

    attr_reader :failed_rule

    def match_string(str)
      len = str.size
      if @string[pos,len] == str
        @pos += len
        return str
      end

      return nil
    end

    def scan(reg)
      if m = reg.match(@string[@pos..-1])
        width = m.end(0)
        @pos += width
        return true
      end

      return nil
    end

    if "".respond_to? :ord
      def get_byte
        if @pos >= @string_size
          return nil
        end

        s = @string[@pos].ord
        @pos += 1
        s
      end
    else
      def get_byte
        if @pos >= @string_size
          return nil
        end

        s = @string[@pos]
        @pos += 1
        s
      end
    end

    def parse(rule=nil)
      # We invoke the rules indirectly via apply
      # instead of by just calling them as methods because
      # if the rules use left recursion, apply needs to
      # manage that.

      if !rule
        apply(:_root)
      else
        method = rule.gsub("-","_hyphen_")
        apply :"_#{method}"
      end
    end

    class MemoEntry
      def initialize(ans, pos)
        @ans = ans
        @pos = pos
        @result = nil
        @set = false
        @left_rec = false
      end

      attr_reader :ans, :pos, :result, :set
      attr_accessor :left_rec

      def move!(ans, pos, result)
        @ans = ans
        @pos = pos
        @result = result
        @set = true
        @left_rec = false
      end
    end

    def external_invoke(other, rule, *args)
      old_pos = @pos
      old_string = @string

      set_string other.string, other.pos

      begin
        if val = __send__(rule, *args)
          other.pos = @pos
          other.result = @result
        else
          other.set_failed_rule "#{self.class}##{rule}"
        end
        val
      ensure
        set_string old_string, old_pos
      end
    end

    def apply_with_args(rule, *args)
      memo_key = [rule, args]
      if m = @memoizations[memo_key][@pos]
        @pos = m.pos
        if !m.set
          m.left_rec = true
          return nil
        end

        @result = m.result

        return m.ans
      else
        m = MemoEntry.new(nil, @pos)
        @memoizations[memo_key][@pos] = m
        start_pos = @pos

        ans = __send__ rule, *args

        lr = m.left_rec

        m.move! ans, @pos, @result

        # Don't bother trying to grow the left recursion
        # if it's failing straight away (thus there is no seed)
        if ans and lr
          return grow_lr(rule, args, start_pos, m)
        else
          return ans
        end

        return ans
      end
    end

    def apply(rule)
      if m = @memoizations[rule][@pos]
        @pos = m.pos
        if !m.set
          m.left_rec = true
          return nil
        end

        @result = m.result

        return m.ans
      else
        m = MemoEntry.new(nil, @pos)
        @memoizations[rule][@pos] = m
        start_pos = @pos

        ans = __send__ rule

        lr = m.left_rec

        m.move! ans, @pos, @result

        # Don't bother trying to grow the left recursion
        # if it's failing straight away (thus there is no seed)
        if ans and lr
          return grow_lr(rule, nil, start_pos, m)
        else
          return ans
        end

        return ans
      end
    end

    def grow_lr(rule, args, start_pos, m)
      while true
        @pos = start_pos
        @result = m.result

        if args
          ans = __send__ rule, *args
        else
          ans = __send__ rule
        end
        return nil unless ans

        break if @pos <= m.pos

        m.move! ans, @pos, @result
      end

      @result = m.result
      @pos = m.pos
      return m.ans
    end

    class RuleInfo
      def initialize(name, rendered)
        @name = name
        @rendered = rendered
      end

      attr_reader :name, :rendered
    end

    def self.rule_info(name, rendered)
      RuleInfo.new(name, rendered)
    end


  # :startdoc:
  # :stopdoc:
  def setup_foreign_grammar; end

  # Alphanumeric = /\p{Word}/
  def _Alphanumeric
    _tmp = scan(/\A(?-mix:\p{Word})/)
    set_failed_rule :_Alphanumeric unless _tmp
    return _tmp
  end

  # AlphanumericAscii = /[A-Za-z0-9]/
  def _AlphanumericAscii
    _tmp = scan(/\A(?-mix:[A-Za-z0-9])/)
    set_failed_rule :_AlphanumericAscii unless _tmp
    return _tmp
  end

  # BOM = "uFEFF"
  def _BOM
    _tmp = match_string("uFEFF")
    set_failed_rule :_BOM unless _tmp
    return _tmp
  end

  # Newline = /\n|\r\n?|\p{Zl}|\p{Zp}/
  def _Newline
    _tmp = scan(/\A(?-mix:\n|\r\n?|\p{Zl}|\p{Zp})/)
    set_failed_rule :_Newline unless _tmp
    return _tmp
  end

  # NonAlphanumeric = /\p{^Word}/
  def _NonAlphanumeric
    _tmp = scan(/\A(?-mix:\p{^Word})/)
    set_failed_rule :_NonAlphanumeric unless _tmp
    return _tmp
  end

  # Spacechar = /\t|\p{Zs}/
  def _Spacechar
    _tmp = scan(/\A(?-mix:\t|\p{Zs})/)
    set_failed_rule :_Spacechar unless _tmp
    return _tmp
  end

  Rules = {}
  Rules[:_Alphanumeric] = rule_info("Alphanumeric", "/\\p{Word}/")
  Rules[:_AlphanumericAscii] = rule_info("AlphanumericAscii", "/[A-Za-z0-9]/")
  Rules[:_BOM] = rule_info("BOM", "\"uFEFF\"")
  Rules[:_Newline] = rule_info("Newline", "/\\n|\\r\\n?|\\p{Zl}|\\p{Zp}/")
  Rules[:_NonAlphanumeric] = rule_info("NonAlphanumeric", "/\\p{^Word}/")
  Rules[:_Spacechar] = rule_info("Spacechar", "/\\t|\\p{Zs}/")
  # :startdoc:
end
lib64/ruby/2.2.0/rdoc/alias.rb000064400000004137150402106150011450 0ustar00##
# Represent an alias, which is an old_name/new_name pair associated with a
# particular context
#--
# TODO implement Alias as a proxy to a method/attribute, inheriting from
#      MethodAttr

class RDoc::Alias < RDoc::CodeObject

  ##
  # Aliased method's name

  attr_reader :new_name

  alias name new_name

  ##
  # Aliasee method's name

  attr_reader :old_name

  ##
  # Is this an alias declared in a singleton context?

  attr_accessor :singleton

  ##
  # Source file token stream

  attr_reader :text

  ##
  # Creates a new Alias with a token stream of +text+ that aliases +old_name+
  # to +new_name+, has +comment+ and is a +singleton+ context.

  def initialize(text, old_name, new_name, comment, singleton = false)
    super()

    @text = text
    @singleton = singleton
    @old_name = old_name
    @new_name = new_name
    self.comment = comment
  end

  ##
  # Order by #singleton then #new_name

  def <=>(other)
    [@singleton ? 0 : 1, new_name] <=> [other.singleton ? 0 : 1, other.new_name]
  end

  ##
  # HTML fragment reference for this alias

  def aref
    type = singleton ? 'c' : 'i'
    "#alias-#{type}-#{html_name}"
  end

  ##
  # Full old name including namespace

  def full_old_name
    @full_name || "#{parent.name}#{pretty_old_name}"
  end

  ##
  # HTML id-friendly version of +#new_name+.

  def html_name
    CGI.escape(@new_name.gsub('-', '-2D')).gsub('%','-').sub(/^-/, '')
  end

  def inspect # :nodoc:
    parent_name = parent ? parent.name : '(unknown)'
    "#<%s:0x%x %s.alias_method %s, %s>" % [
      self.class, object_id,
      parent_name, @old_name, @new_name,
    ]
  end

  ##
  # '::' for the alias of a singleton method/attribute, '#' for instance-level.

  def name_prefix
    singleton ? '::' : '#'
  end

  ##
  # Old name with prefix '::' or '#'.

  def pretty_old_name
    "#{singleton ? '::' : '#'}#{@old_name}"
  end

  ##
  # New name with prefix '::' or '#'.

  def pretty_new_name
    "#{singleton ? '::' : '#'}#{@new_name}"
  end

  alias pretty_name pretty_new_name

  def to_s # :nodoc:
    "alias: #{self.new_name} -> #{self.pretty_old_name} in: #{parent}"
  end

end

lib64/ruby/2.2.0/rdoc/meta_method.rb000064400000000143150402106150012636 0ustar00##
# MetaMethod represents a meta-programmed method

class RDoc::MetaMethod < RDoc::AnyMethod
end

lib64/ruby/2.2.0/rdoc/normal_class.rb000064400000004153150402106150013032 0ustar00##
# A normal class, neither singleton nor anonymous

class RDoc::NormalClass < RDoc::ClassModule

  ##
  # The ancestors of this class including modules.  Unlike Module#ancestors,
  # this class is not included in the result.  The result will contain both
  # RDoc::ClassModules and Strings.

  def ancestors
    if String === superclass then
      super << superclass
    elsif superclass then
      ancestors = super
      ancestors << superclass
      ancestors.concat superclass.ancestors
    else
      super
    end
  end

  def aref_prefix # :nodoc:
    'class'
  end

  ##
  # The definition of this class, <tt>class MyClassName</tt>

  def definition
    "class #{full_name}"
  end

  def direct_ancestors
    superclass ? super + [superclass] : super
  end

  def inspect # :nodoc:
    superclass = @superclass ? " < #{@superclass}" : nil
    "<%s:0x%x class %s%s includes: %p extends: %p attributes: %p methods: %p aliases: %p>" % [
      self.class, object_id,
      full_name, superclass, @includes, @extends, @attributes, @method_list, @aliases
    ]
  end

  def to_s # :nodoc:
    display = "#{self.class.name} #{self.full_name}"
    if superclass
      display << ' < ' << (superclass.is_a?(String) ? superclass : superclass.full_name)
    end
    display << ' -> ' << is_alias_for.to_s if is_alias_for
    display
  end

  def pretty_print q # :nodoc:
    superclass = @superclass ? " < #{@superclass}" : nil

    q.group 2, "[class #{full_name}#{superclass} ", "]" do
      q.breakable
      q.text "includes:"
      q.breakable
      q.seplist @includes do |inc| q.pp inc end

      q.breakable
      q.text "constants:"
      q.breakable
      q.seplist @constants do |const| q.pp const end

      q.breakable
      q.text "attributes:"
      q.breakable
      q.seplist @attributes do |attr| q.pp attr end

      q.breakable
      q.text "methods:"
      q.breakable
      q.seplist @method_list do |meth| q.pp meth end

      q.breakable
      q.text "aliases:"
      q.breakable
      q.seplist @aliases do |aliaz| q.pp aliaz end

      q.breakable
      q.text "comment:"
      q.breakable
      q.pp comment
    end
  end

end

lib64/ruby/2.2.0/rdoc/rubygems_hook.rb000064400000012417150402106150013234 0ustar00require 'rubygems'
require 'rubygems/user_interaction'
require 'fileutils'
require 'rdoc'

##
# Gem::RDoc provides methods to generate RDoc and ri data for installed gems
# upon gem installation.
#
# This file is automatically required by RubyGems 1.9 and newer.

class RDoc::RubygemsHook

  include Gem::UserInteraction
  extend  Gem::UserInteraction

  @rdoc_version = nil
  @specs = []

  ##
  # Force installation of documentation?

  attr_accessor :force

  ##
  # Generate rdoc?

  attr_accessor :generate_rdoc

  ##
  # Generate ri data?

  attr_accessor :generate_ri

  class << self

    ##
    # Loaded version of RDoc.  Set by ::load_rdoc

    attr_reader :rdoc_version

  end

  ##
  # Post installs hook that generates documentation for each specification in
  # +specs+

  def self.generation_hook installer, specs
    start = Time.now
    types = installer.document

    generate_rdoc = types.include? 'rdoc'
    generate_ri   = types.include? 'ri'

    specs.each do |spec|
      new(spec, generate_rdoc, generate_ri).generate
    end

    return unless generate_rdoc or generate_ri

    duration = (Time.now - start).to_i
    names    = specs.map(&:name).join ', '

    say "Done installing documentation for #{names} after #{duration} seconds"
  end

  ##
  # Loads the RDoc generator

  def self.load_rdoc
    return if @rdoc_version

    require 'rdoc/rdoc'

    @rdoc_version = Gem::Version.new ::RDoc::VERSION
  end

  ##
  # Creates a new documentation generator for +spec+.  RDoc and ri data
  # generation can be enabled or disabled through +generate_rdoc+ and
  # +generate_ri+ respectively.
  #
  # Only +generate_ri+ is enabled by default.

  def initialize spec, generate_rdoc = false, generate_ri = true
    @doc_dir   = spec.doc_dir
    @force     = false
    @rdoc      = nil
    @spec      = spec

    @generate_rdoc = generate_rdoc
    @generate_ri   = generate_ri

    @rdoc_dir = spec.doc_dir 'rdoc'
    @ri_dir   = spec.doc_dir 'ri'
  end

  ##
  # Removes legacy rdoc arguments from +args+
  #--
  # TODO move to RDoc::Options

  def delete_legacy_args args
    args.delete '--inline-source'
    args.delete '--promiscuous'
    args.delete '-p'
    args.delete '--one-file'
  end

  ##
  # Generates documentation using the named +generator+ ("darkfish" or "ri")
  # and following the given +options+.
  #
  # Documentation will be generated into +destination+

  def document generator, options, destination
    generator_name = generator

    options = options.dup
    options.exclude ||= [] # TODO maybe move to RDoc::Options#finish
    options.setup_generator generator
    options.op_dir = destination
    options.finish

    generator = options.generator.new @rdoc.store, options

    @rdoc.options = options
    @rdoc.generator = generator

    say "Installing #{generator_name} documentation for #{@spec.full_name}"

    FileUtils.mkdir_p options.op_dir

    Dir.chdir options.op_dir do
      begin
        @rdoc.class.current = @rdoc
        @rdoc.generator.generate
      ensure
        @rdoc.class.current = nil
      end
    end
  end

  ##
  # Generates RDoc and ri data

  def generate
    return if @spec.default_gem?
    return unless @generate_ri or @generate_rdoc

    setup

    options = nil

    args = @spec.rdoc_options

    if @spec.respond_to? :source_paths then
      args.concat @spec.source_paths
    else
      args.concat @spec.require_paths
    end

    args.concat @spec.extra_rdoc_files

    case config_args = Gem.configuration[:rdoc]
    when String then
      args = args.concat config_args.split
    when Array then
      args = args.concat config_args
    end

    delete_legacy_args args

    Dir.chdir @spec.full_gem_path do
      options = ::RDoc::Options.new
      options.default_title = "#{@spec.full_name} Documentation"
      options.parse args
    end

    options.quiet = !Gem.configuration.really_verbose

    @rdoc = new_rdoc
    @rdoc.options = options

    store = RDoc::Store.new
    store.encoding = options.encoding if options.respond_to? :encoding
    store.dry_run  = options.dry_run
    store.main     = options.main_page
    store.title    = options.title

    @rdoc.store = store

    say "Parsing documentation for #{@spec.full_name}"

    Dir.chdir @spec.full_gem_path do
      @rdoc.parse_files options.files
    end

    document 'ri',       options, @ri_dir if
      @generate_ri   and (@force or not File.exist? @ri_dir)

    document 'darkfish', options, @rdoc_dir if
      @generate_rdoc and (@force or not File.exist? @rdoc_dir)
  end

  ##
  # #new_rdoc creates a new RDoc instance.  This method is provided only to
  # make testing easier.

  def new_rdoc # :nodoc:
    ::RDoc::RDoc.new
  end

  ##
  # Is rdoc documentation installed?

  def rdoc_installed?
    File.exist? @rdoc_dir
  end

  ##
  # Removes generated RDoc and ri data

  def remove
    base_dir = @spec.base_dir

    raise Gem::FilePermissionError, base_dir unless File.writable? base_dir

    FileUtils.rm_rf @rdoc_dir
    FileUtils.rm_rf @ri_dir
  end

  ##
  # Is ri data installed?

  def ri_installed?
    File.exist? @ri_dir
  end

  ##
  # Prepares the spec for documentation generation

  def setup
    self.class.load_rdoc

    raise Gem::FilePermissionError, @doc_dir if
      File.exist?(@doc_dir) and not File.writable?(@doc_dir)

    FileUtils.mkdir_p @doc_dir unless File.exist? @doc_dir
  end

end

lib64/ruby/2.2.0/rdoc/rdoc.rb000064400000033025150402106150011304 0ustar00require 'rdoc'

require 'find'
require 'fileutils'
require 'pathname'
require 'time'

##
# This is the driver for generating RDoc output.  It handles file parsing and
# generation of output.
#
# To use this class to generate RDoc output via the API, the recommended way
# is:
#
#   rdoc = RDoc::RDoc.new
#   options = rdoc.load_options # returns an RDoc::Options instance
#   # set extra options
#   rdoc.document options
#
# You can also generate output like the +rdoc+ executable:
#
#   rdoc = RDoc::RDoc.new
#   rdoc.document argv
#
# Where +argv+ is an array of strings, each corresponding to an argument you'd
# give rdoc on the command line.  See <tt>rdoc --help<tt> for details.

class RDoc::RDoc

  @current = nil

  ##
  # This is the list of supported output generators

  GENERATORS = {}

  ##
  # File pattern to exclude

  attr_accessor :exclude

  ##
  # Generator instance used for creating output

  attr_accessor :generator

  ##
  # Hash of files and their last modified times.

  attr_reader :last_modified

  ##
  # RDoc options

  attr_accessor :options

  ##
  # Accessor for statistics.  Available after each call to parse_files

  attr_reader :stats

  ##
  # The current documentation store

  attr_reader :store

  ##
  # Add +klass+ that can generate output after parsing

  def self.add_generator(klass)
    name = klass.name.sub(/^RDoc::Generator::/, '').downcase
    GENERATORS[name] = klass
  end

  ##
  # Active RDoc::RDoc instance

  def self.current
    @current
  end

  ##
  # Sets the active RDoc::RDoc instance

  def self.current= rdoc
    @current = rdoc
  end

  ##
  # Creates a new RDoc::RDoc instance.  Call #document to parse files and
  # generate documentation.

  def initialize
    @current       = nil
    @exclude       = nil
    @generator     = nil
    @last_modified = {}
    @old_siginfo   = nil
    @options       = nil
    @stats         = nil
    @store         = nil
  end

  ##
  # Report an error message and exit

  def error(msg)
    raise RDoc::Error, msg
  end

  ##
  # Gathers a set of parseable files from the files and directories listed in
  # +files+.

  def gather_files files
    files = ["."] if files.empty?

    file_list = normalized_file_list files, true, @exclude

    file_list = file_list.uniq

    file_list = remove_unparseable file_list

    file_list.sort
  end

  ##
  # Turns RDoc from stdin into HTML

  def handle_pipe
    @html = RDoc::Markup::ToHtml.new @options

    parser = RDoc::Text::MARKUP_FORMAT[@options.markup]

    document = parser.parse $stdin.read

    out = @html.convert document

    $stdout.write out
  end

  ##
  # Installs a siginfo handler that prints the current filename.

  def install_siginfo_handler
    return unless Signal.list.include? 'INFO'

    @old_siginfo = trap 'INFO' do
      puts @current if @current
    end
  end

  ##
  # Loads options from .rdoc_options if the file exists, otherwise creates a
  # new RDoc::Options instance.

  def load_options
    options_file = File.expand_path '.rdoc_options'
    return RDoc::Options.new unless File.exist? options_file

    RDoc.load_yaml

    parse_error = if Object.const_defined? :Psych then
                    Psych::SyntaxError
                  else
                    ArgumentError
                  end

    begin
      options = YAML.load_file '.rdoc_options'
    rescue *parse_error
    end

    raise RDoc::Error, "#{options_file} is not a valid rdoc options file" unless
      RDoc::Options === options

    options
  end

  ##
  # Create an output dir if it doesn't exist. If it does exist, but doesn't
  # contain the flag file <tt>created.rid</tt> then we refuse to use it, as
  # we may clobber some manually generated documentation

  def setup_output_dir(dir, force)
    flag_file = output_flag_file dir

    last = {}

    if @options.dry_run then
      # do nothing
    elsif File.exist? dir then
      error "#{dir} exists and is not a directory" unless File.directory? dir

      begin
        open flag_file do |io|
          unless force then
            Time.parse io.gets

            io.each do |line|
              file, time = line.split "\t", 2
              time = Time.parse(time) rescue next
              last[file] = time
            end
          end
        end
      rescue SystemCallError, TypeError
        error <<-ERROR

Directory #{dir} already exists, but it looks like it isn't an RDoc directory.

Because RDoc doesn't want to risk destroying any of your existing files,
you'll need to specify a different output directory name (using the --op <dir>
option)

        ERROR
      end unless @options.force_output
    else
      FileUtils.mkdir_p dir
      FileUtils.touch flag_file
    end

    last
  end

  ##
  # Sets the current documentation tree to +store+ and sets the store's rdoc
  # driver to this instance.

  def store= store
    @store = store
    @store.rdoc = self
  end

  ##
  # Update the flag file in an output directory.

  def update_output_dir(op_dir, time, last = {})
    return if @options.dry_run or not @options.update_output_dir

    open output_flag_file(op_dir), "w" do |f|
      f.puts time.rfc2822
      last.each do |n, t|
        f.puts "#{n}\t#{t.rfc2822}"
      end
    end
  end

  ##
  # Return the path name of the flag file in an output directory.

  def output_flag_file(op_dir)
    File.join op_dir, "created.rid"
  end

  ##
  # The .document file contains a list of file and directory name patterns,
  # representing candidates for documentation. It may also contain comments
  # (starting with '#')

  def parse_dot_doc_file in_dir, filename
    # read and strip comments
    patterns = File.read(filename).gsub(/#.*/, '')

    result = []

    patterns.split.each do |patt|
      candidates = Dir.glob(File.join(in_dir, patt))
      result.concat normalized_file_list(candidates)
    end

    result
  end

  ##
  # Given a list of files and directories, create a list of all the Ruby
  # files they contain.
  #
  # If +force_doc+ is true we always add the given files, if false, only
  # add files that we guarantee we can parse.  It is true when looking at
  # files given on the command line, false when recursing through
  # subdirectories.
  #
  # The effect of this is that if you want a file with a non-standard
  # extension parsed, you must name it explicitly.

  def normalized_file_list(relative_files, force_doc = false,
                           exclude_pattern = nil)
    file_list = []

    relative_files.each do |rel_file_name|
      next if rel_file_name.end_with? 'created.rid'
      next if exclude_pattern && exclude_pattern =~ rel_file_name
      stat = File.stat rel_file_name rescue next

      case type = stat.ftype
      when "file" then
        next if last_modified = @last_modified[rel_file_name] and
                stat.mtime.to_i <= last_modified.to_i

        if force_doc or RDoc::Parser.can_parse(rel_file_name) then
          file_list << rel_file_name.sub(/^\.\//, '')
          @last_modified[rel_file_name] = stat.mtime
        end
      when "directory" then
        next if rel_file_name == "CVS" || rel_file_name == ".svn"

        created_rid = File.join rel_file_name, "created.rid"
        next if File.file? created_rid

        dot_doc = File.join rel_file_name, RDoc::DOT_DOC_FILENAME

        if File.file? dot_doc then
          file_list << parse_dot_doc_file(rel_file_name, dot_doc)
        else
          file_list << list_files_in_directory(rel_file_name)
        end
      else
        warn "rdoc can't parse the #{type} #{rel_file_name}"
      end
    end

    file_list.flatten
  end

  ##
  # Return a list of the files to be processed in a directory. We know that
  # this directory doesn't have a .document file, so we're looking for real
  # files. However we may well contain subdirectories which must be tested
  # for .document files.

  def list_files_in_directory dir
    files = Dir.glob File.join(dir, "*")

    normalized_file_list files, false, @options.exclude
  end

  ##
  # Parses +filename+ and returns an RDoc::TopLevel

  def parse_file filename
    if Object.const_defined? :Encoding then
      encoding = @options.encoding
      filename = filename.encode encoding
    end

    @stats.add_file filename

    return if RDoc::Parser.binary? filename

    content = RDoc::Encoding.read_file filename, encoding

    return unless content

    filename_path = Pathname(filename).expand_path
    relative_path = filename_path.relative_path_from @options.root

    if @options.page_dir and
       relative_path.to_s.start_with? @options.page_dir.to_s then
      relative_path =
        relative_path.relative_path_from @options.page_dir
    end

    top_level = @store.add_file filename, relative_path.to_s

    parser = RDoc::Parser.for top_level, filename, content, @options, @stats

    return unless parser

    parser.scan

    # restart documentation for the classes & modules found
    top_level.classes_or_modules.each do |cm|
      cm.done_documenting = false
    end

    top_level

  rescue Errno::EACCES => e
    $stderr.puts <<-EOF
Unable to read #{filename}, #{e.message}

Please check the permissions for this file.  Perhaps you do not have access to
it or perhaps the original author's permissions are to restrictive.  If the
this is not your library please report a bug to the author.
    EOF
  rescue => e
    $stderr.puts <<-EOF
Before reporting this, could you check that the file you're documenting
has proper syntax:

  #{Gem.ruby} -c #{filename}

RDoc is not a full Ruby parser and will fail when fed invalid ruby programs.

The internal error was:

\t(#{e.class}) #{e.message}

    EOF

    $stderr.puts e.backtrace.join("\n\t") if $DEBUG_RDOC

    raise e
    nil
  end

  ##
  # Parse each file on the command line, recursively entering directories.

  def parse_files files
    file_list = gather_files files
    @stats = RDoc::Stats.new @store, file_list.length, @options.verbosity

    return [] if file_list.empty?

    @stats.begin_adding

    file_info = file_list.map do |filename|
      @current = filename
      parse_file filename
    end.compact

    @stats.done_adding

    file_info
  end

  ##
  # Removes file extensions known to be unparseable from +files+ and TAGS
  # files for emacs and vim.

  def remove_unparseable files
    files.reject do |file|
      file =~ /\.(?:class|eps|erb|scpt\.txt|ttf|yml)$/i or
        (file =~ /tags$/i and
         open(file, 'rb') { |io|
           io.read(100) =~ /\A(\f\n[^,]+,\d+$|!_TAG_)/
         })
    end
  end

  ##
  # Generates documentation or a coverage report depending upon the settings
  # in +options+.
  #
  # +options+ can be either an RDoc::Options instance or an array of strings
  # equivalent to the strings that would be passed on the command line like
  # <tt>%w[-q -o doc -t My\ Doc\ Title]</tt>.  #document will automatically
  # call RDoc::Options#finish if an options instance was given.
  #
  # For a list of options, see either RDoc::Options or <tt>rdoc --help</tt>.
  #
  # By default, output will be stored in a directory called "doc" below the
  # current directory, so make sure you're somewhere writable before invoking.

  def document options
    self.store = RDoc::Store.new

    if RDoc::Options === options then
      @options = options
      @options.finish
    else
      @options = load_options
      @options.parse options
    end

    if @options.pipe then
      handle_pipe
      exit
    end

    @exclude = @options.exclude

    unless @options.coverage_report then
      @last_modified = setup_output_dir @options.op_dir, @options.force_update
    end

    @store.encoding = @options.encoding if @options.respond_to? :encoding
    @store.dry_run  = @options.dry_run
    @store.main     = @options.main_page
    @store.title    = @options.title
    @store.path     = @options.op_dir

    @start_time = Time.now

    @store.load_cache

    file_info = parse_files @options.files

    @options.default_title = "RDoc Documentation"

    @store.complete @options.visibility

    @stats.coverage_level = @options.coverage_report

    if @options.coverage_report then
      puts

      puts @stats.report.accept RDoc::Markup::ToRdoc.new
    elsif file_info.empty? then
      $stderr.puts "\nNo newer files." unless @options.quiet
    else
      gen_klass = @options.generator

      @generator = gen_klass.new @store, @options

      generate
    end

    if @stats and (@options.coverage_report or not @options.quiet) then
      puts
      puts @stats.summary.accept RDoc::Markup::ToRdoc.new
    end

    exit @stats.fully_documented? if @options.coverage_report
  end

  ##
  # Generates documentation for +file_info+ (from #parse_files) into the
  # output dir using the generator selected
  # by the RDoc options

  def generate
    Dir.chdir @options.op_dir do
      unless @options.quiet then
        $stderr.puts "\nGenerating #{@generator.class.name.sub(/^.*::/, '')} format into #{Dir.pwd}..."
      end

      @generator.generate
      update_output_dir '.', @start_time, @last_modified
    end
  end

  ##
  # Removes a siginfo handler and replaces the previous

  def remove_siginfo_handler
    return unless Signal.list.key? 'INFO'

    handler = @old_siginfo || 'DEFAULT'

    trap 'INFO', handler
  end

end

begin
  require 'rubygems'

  if Gem.respond_to? :find_files then
    rdoc_extensions = Gem.find_files 'rdoc/discover'

    rdoc_extensions.each do |extension|
      begin
        load extension
      rescue => e
        warn "error loading #{extension.inspect}: #{e.message} (#{e.class})"
        warn "\t#{e.backtrace.join "\n\t"}" if $DEBUG
      end
    end
  end
rescue LoadError
end

# require built-in generators after discovery in case they've been replaced
require 'rdoc/generator/darkfish'
require 'rdoc/generator/ri'
require 'rdoc/generator/pot'

lib64/ruby/2.2.0/rdoc/cross_reference.rb000064400000013513150402106150013524 0ustar00##
# RDoc::CrossReference is a reusable way to create cross references for names.

class RDoc::CrossReference

  ##
  # Regular expression to match class references
  #
  # 1. There can be a '\\' in front of text to suppress the cross-reference
  # 2. There can be a '::' in front of class names to reference from the
  #    top-level namespace.
  # 3. The method can be followed by parenthesis (not recommended)

  CLASS_REGEXP_STR = '\\\\?((?:\:{2})?[A-Z]\w*(?:\:\:\w+)*)'

  ##
  # Regular expression to match method references.
  #
  # See CLASS_REGEXP_STR

  METHOD_REGEXP_STR = '([a-z]\w*[!?=]?|%|===|\[\]=?|<<|>>)(?:\([\w.+*/=<>-]*\))?'

  ##
  # Regular expressions matching text that should potentially have
  # cross-reference links generated are passed to add_special.  Note that
  # these expressions are meant to pick up text for which cross-references
  # have been suppressed, since the suppression characters are removed by the
  # code that is triggered.

  CROSSREF_REGEXP = /(?:^|\s)
                     (
                      (?:
                       # A::B::C.meth
                       #{CLASS_REGEXP_STR}(?:[.#]|::)#{METHOD_REGEXP_STR}

                       # Stand-alone method (preceded by a #)
                       | \\?\##{METHOD_REGEXP_STR}

                       # Stand-alone method (preceded by ::)
                       | ::#{METHOD_REGEXP_STR}

                       # A::B::C
                       # The stuff after CLASS_REGEXP_STR is a
                       # nasty hack.  CLASS_REGEXP_STR unfortunately matches
                       # words like dog and cat (these are legal "class"
                       # names in Fortran 95).  When a word is flagged as a
                       # potential cross-reference, limitations in the markup
                       # engine suppress other processing, such as typesetting.
                       # This is particularly noticeable for contractions.
                       # In order that words like "can't" not
                       # be flagged as potential cross-references, only
                       # flag potential class cross-references if the character
                       # after the cross-reference is a space, sentence
                       # punctuation, tag start character, or attribute
                       # marker.
                       | #{CLASS_REGEXP_STR}(?=[@\s).?!,;<\000]|\z)

                       # Things that look like filenames
                       # The key thing is that there must be at least
                       # one special character (period, slash, or
                       # underscore).
                       | (?:\.\.\/)*[-\/\w]+[_\/.][-\w\/.]+

                       # Things that have markup suppressed
                       # Don't process things like '\<' in \<tt>, though.
                       # TODO: including < is a hack, not very satisfying.
                       | \\[^\s<]
                      )

                      # labels for headings
                      (?:@[\w+%-]+(?:\.[\w|%-]+)?)?
                     )/x

  ##
  # Version of CROSSREF_REGEXP used when <tt>--hyperlink-all</tt> is specified.

  ALL_CROSSREF_REGEXP = /
                     (?:^|\s)
                     (
                      (?:
                       # A::B::C.meth
                       #{CLASS_REGEXP_STR}(?:[.#]|::)#{METHOD_REGEXP_STR}

                       # Stand-alone method
                       | \\?#{METHOD_REGEXP_STR}

                       # A::B::C
                       | #{CLASS_REGEXP_STR}(?=[@\s).?!,;<\000]|\z)

                       # Things that look like filenames
                       | (?:\.\.\/)*[-\/\w]+[_\/.][-\w\/.]+

                       # Things that have markup suppressed
                       | \\[^\s<]
                      )

                      # labels for headings
                      (?:@[\w+%-]+)?
                     )/x

  ##
  # Hash of references that have been looked-up to their replacements

  attr_accessor :seen

  ##
  # Allows cross-references to be created based on the given +context+
  # (RDoc::Context).

  def initialize context
    @context = context
    @store   = context.store

    @seen = {}
  end

  ##
  # Returns a reference to +name+.
  #
  # If the reference is found and +name+ is not documented +text+ will be
  # returned.  If +name+ is escaped +name+ is returned.  If +name+ is not
  # found +text+ is returned.

  def resolve name, text
    return @seen[name] if @seen.include? name

    if /#{CLASS_REGEXP_STR}([.#]|::)#{METHOD_REGEXP_STR}/o =~ name then
      type = $2
      type = '' if type == '.'  # will find either #method or ::method
      method = "#{type}#{$3}"
      container = @context.find_symbol_module($1)
    elsif /^([.#]|::)#{METHOD_REGEXP_STR}/o =~ name then
      type = $1
      type = '' if type == '.'
      method = "#{type}#{$2}"
      container = @context
    else
      container = nil
    end

    if container then
      ref = container.find_local_symbol method

      unless ref || RDoc::TopLevel === container then
        ref = container.find_ancestor_local_symbol method
      end
    end

    ref = case name
          when /^\\(#{CLASS_REGEXP_STR})$/o then
            @context.find_symbol $1
          else
            @context.find_symbol name
          end unless ref

    # Try a page name
    ref = @store.page name if not ref and name =~ /^\w+$/

    ref = nil if RDoc::Alias === ref # external alias, can't link to it

    out = if name == '\\' then
            name
          elsif name =~ /^\\/ then
            # we remove the \ only in front of what we know:
            # other backslashes are treated later, only outside of <tt>
            ref ? $' : name
          elsif ref then
            if ref.display? then
              ref
            else
              text
            end
          else
            text
          end

    @seen[name] = out

    out
  end

end

lib64/ruby/2.2.0/rdoc/normal_module.rb000064400000002635150402106150013215 0ustar00##
# A normal module, like NormalClass

class RDoc::NormalModule < RDoc::ClassModule

  def aref_prefix # :nodoc:
    'module'
  end

  def inspect # :nodoc:
    "#<%s:0x%x module %s includes: %p extends: %p attributes: %p methods: %p aliases: %p>" % [
      self.class, object_id,
      full_name, @includes, @extends, @attributes, @method_list, @aliases
    ]
  end

  ##
  # The definition of this module, <tt>module MyModuleName</tt>

  def definition
    "module #{full_name}"
  end

  ##
  # This is a module, returns true

  def module?
    true
  end

  def pretty_print q # :nodoc:
    q.group 2, "[module #{full_name}: ", "]" do
      q.breakable
      q.text "includes:"
      q.breakable
      q.seplist @includes do |inc| q.pp inc end
      q.breakable

      q.breakable
      q.text "constants:"
      q.breakable
      q.seplist @constants do |const| q.pp const end

      q.text "attributes:"
      q.breakable
      q.seplist @attributes do |attr| q.pp attr end
      q.breakable

      q.text "methods:"
      q.breakable
      q.seplist @method_list do |meth| q.pp meth end
      q.breakable

      q.text "aliases:"
      q.breakable
      q.seplist @aliases do |aliaz| q.pp aliaz end
      q.breakable

      q.text "comment:"
      q.breakable
      q.pp comment
    end
  end

  ##
  # Modules don't have one, raises NoMethodError

  def superclass
    raise NoMethodError, "#{full_name} is a module"
  end

end

lib64/ruby/2.2.0/rdoc/encoding.rb000064400000005524150402106150012146 0ustar00# coding: US-ASCII

##
# This class is a wrapper around File IO and Encoding that helps RDoc load
# files and convert them to the correct encoding.

module RDoc::Encoding

  ##
  # Reads the contents of +filename+ and handles any encoding directives in
  # the file.
  #
  # The content will be converted to the +encoding+.  If the file cannot be
  # converted a warning will be printed and nil will be returned.
  #
  # If +force_transcode+ is true the document will be transcoded and any
  # unknown character in the target encoding will be replaced with '?'

  def self.read_file filename, encoding, force_transcode = false
    content = open filename, "rb" do |f| f.read end
    content.gsub!("\r\n", "\n") if RUBY_PLATFORM =~ /mswin|mingw/

    utf8 = content.sub!(/\A\xef\xbb\xbf/, '')

    RDoc::Encoding.set_encoding content

    if Object.const_defined? :Encoding then
      begin
        encoding ||= Encoding.default_external
        orig_encoding = content.encoding

        if not orig_encoding.ascii_compatible? then
          content.encode! encoding
        elsif utf8 then
          content.force_encoding Encoding::UTF_8
          content.encode! encoding
        else
          # assume the content is in our output encoding
          content.force_encoding encoding
        end

        unless content.valid_encoding? then
          # revert and try to transcode
          content.force_encoding orig_encoding
          content.encode! encoding
        end

        unless content.valid_encoding? then
          warn "unable to convert #{filename} to #{encoding}, skipping"
          content = nil
        end
      rescue Encoding::InvalidByteSequenceError,
             Encoding::UndefinedConversionError => e
        if force_transcode then
          content.force_encoding orig_encoding
          content.encode!(encoding,
                          :invalid => :replace, :undef => :replace,
                          :replace => '?')
          return content
        else
          warn "unable to convert #{e.message} for #{filename}, skipping"
          return nil
        end
      end
    end

    content
  rescue ArgumentError => e
    raise unless e.message =~ /unknown encoding name - (.*)/
    warn "unknown encoding name \"#{$1}\" for #{filename}, skipping"
    nil
  rescue Errno::EISDIR, Errno::ENOENT
    nil
  end

  ##
  # Sets the encoding of +string+ based on the magic comment

  def self.set_encoding string
    string =~ /\A(?:#!.*\n)?(.*\n)/

    first_line = $1

    name = case first_line
           when /^<\?xml[^?]*encoding=(["'])(.*?)\1/ then $2
           when /\b(?:en)?coding[=:]\s*([^\s;]+)/i   then $1
           else                                           return
           end

    string.sub! first_line, ''

    return unless Object.const_defined? :Encoding

    enc = Encoding.find name
    string.force_encoding enc if enc
  end

end

lib64/ruby/2.2.0/rdoc/constant.rb000064400000007060150402106150012206 0ustar00##
# A constant

class RDoc::Constant < RDoc::CodeObject

  MARSHAL_VERSION = 0 # :nodoc:

  ##
  # Sets the module or class this is constant is an alias for.

  attr_writer :is_alias_for

  ##
  # The constant's name

  attr_accessor :name

  ##
  # The constant's value

  attr_accessor :value

  ##
  # The constant's visibility

  attr_accessor :visibility

  ##
  # Creates a new constant with +name+, +value+ and +comment+

  def initialize(name, value, comment)
    super()

    @name  = name
    @value = value

    @is_alias_for = nil
    @visibility   = nil

    self.comment = comment
  end

  ##
  # Constants are ordered by name

  def <=> other
    return unless self.class === other

    [parent_name, name] <=> [other.parent_name, other.name]
  end

  ##
  # Constants are equal when their #parent and #name is the same

  def == other
    self.class == other.class and
      @parent == other.parent and
      @name == other.name
  end

  ##
  # A constant is documented if it has a comment, or is an alias
  # for a documented class or module.

  def documented?
    return true if super
    return false unless @is_alias_for
    case @is_alias_for
    when String then
      found = @store.find_class_or_module @is_alias_for
      return false unless found
      @is_alias_for = found
    end
    @is_alias_for.documented?
  end

  ##
  # Full constant name including namespace

  def full_name
    @full_name ||= "#{parent_name}::#{@name}"
  end

  ##
  # The module or class this constant is an alias for

  def is_alias_for
    case @is_alias_for
    when String then
      found = @store.find_class_or_module @is_alias_for
      @is_alias_for = found if found
      @is_alias_for
    else
      @is_alias_for
    end
  end

  def inspect # :nodoc:
    "#<%s:0x%x %s::%s>" % [
      self.class, object_id,
      parent_name, @name,
    ]
  end

  ##
  # Dumps this Constant for use by ri.  See also #marshal_load

  def marshal_dump
    alias_name = case found = is_alias_for
                 when RDoc::CodeObject then found.full_name
                 else                       found
                 end

    [ MARSHAL_VERSION,
      @name,
      full_name,
      @visibility,
      alias_name,
      parse(@comment),
      @file.relative_name,
      parent.name,
      parent.class,
      section.title,
    ]
  end

  ##
  # Loads this Constant from +array+.  For a loaded Constant the following
  # methods will return cached values:
  #
  # * #full_name
  # * #parent_name

  def marshal_load array
    initialize array[1], nil, array[5]

    @full_name     = array[2]
    @visibility    = array[3]
    @is_alias_for  = array[4]
    #                      5 handled above
    #                      6 handled below
    @parent_name   = array[7]
    @parent_class  = array[8]
    @section_title = array[9]

    @file = RDoc::TopLevel.new array[6]
  end

  ##
  # Path to this constant for use with HTML generator output.

  def path
    "#{@parent.path}##{@name}"
  end

  def pretty_print q # :nodoc:
    q.group 2, "[#{self.class.name} #{full_name}", "]" do
      unless comment.empty? then
        q.breakable
        q.text "comment:"
        q.breakable
        q.pp @comment
      end
    end
  end

  ##
  # Sets the store for this class or module and its contained code objects.

  def store= store
    super

    @file = @store.add_file @file.full_name if @file
  end

  def to_s # :nodoc:
    parent_name = parent ? parent.full_name : '(unknown)'
    if is_alias_for
      "constant #{parent_name}::#@name -> #{is_alias_for}"
    else
      "constant #{parent_name}::#@name"
    end
  end

end

lib64/ruby/2.2.0/rdoc/erb_partial.rb000064400000000562150402106150012641 0ustar00##
# Allows an ERB template to be rendered in the context (binding) of an
# existing ERB template evaluation.

class RDoc::ERBPartial < ERB

  ##
  # Overrides +compiler+ startup to set the +eoutvar+ to an empty string only
  # if it isn't already set.

  def set_eoutvar compiler, eoutvar = '_erbout'
    super

    compiler.pre_cmd = ["#{eoutvar} ||= ''"]
  end

end

lib64/ruby/2.2.0/rdoc/attr.rb000064400000007353150402106150011334 0ustar00##
# An attribute created by \#attr, \#attr_reader, \#attr_writer or
# \#attr_accessor

class RDoc::Attr < RDoc::MethodAttr

  ##
  # 3::
  #   RDoc 4
  #    Added parent name and class
  #    Added section title

  MARSHAL_VERSION = 3 # :nodoc:

  ##
  # Is the attribute readable ('R'), writable ('W') or both ('RW')?

  attr_accessor :rw

  ##
  # Creates a new Attr with body +text+, +name+, read/write status +rw+ and
  # +comment+.  +singleton+ marks this as a class attribute.

  def initialize(text, name, rw, comment, singleton = false)
    super text, name

    @rw = rw
    @singleton = singleton
    self.comment = comment
  end

  ##
  # Attributes are equal when their names, singleton and rw are identical

  def == other
    self.class == other.class and
      self.name == other.name and
      self.rw == other.rw and
      self.singleton == other.singleton
  end

  ##
  # Add +an_alias+ as an attribute in +context+.

  def add_alias(an_alias, context)
    new_attr = self.class.new(self.text, an_alias.new_name, self.rw,
                              self.comment, self.singleton)

    new_attr.record_location an_alias.file
    new_attr.visibility = self.visibility
    new_attr.is_alias_for = self
    @aliases << new_attr
    context.add_attribute new_attr
    new_attr
  end

  ##
  # The #aref prefix for attributes

  def aref_prefix
    'attribute'
  end

  ##
  # Attributes never call super.  See RDoc::AnyMethod#calls_super
  #
  # An RDoc::Attr can show up in the method list in some situations (see
  # Gem::ConfigFile)

  def calls_super # :nodoc:
    false
  end

  ##
  # Returns attr_reader, attr_writer or attr_accessor as appropriate.

  def definition
    case @rw
    when 'RW' then 'attr_accessor'
    when 'R'  then 'attr_reader'
    when 'W'  then 'attr_writer'
    end
  end

  def inspect # :nodoc:
    alias_for = @is_alias_for ? " (alias for #{@is_alias_for.name})" : nil
    visibility = self.visibility
    visibility = "forced #{visibility}" if force_documentation
    "#<%s:0x%x %s %s (%s)%s>" % [
      self.class, object_id,
      full_name,
      rw,
      visibility,
      alias_for,
    ]
  end

  ##
  # Dumps this Attr for use by ri.  See also #marshal_load

  def marshal_dump
    [ MARSHAL_VERSION,
      @name,
      full_name,
      @rw,
      @visibility,
      parse(@comment),
      singleton,
      @file.relative_name,
      @parent.full_name,
      @parent.class,
      @section.title
    ]
  end

  ##
  # Loads this Attr from +array+.  For a loaded Attr the following
  # methods will return cached values:
  #
  # * #full_name
  # * #parent_name

  def marshal_load array
    initialize_visibility

    @aliases      = []
    @parent       = nil
    @parent_name  = nil
    @parent_class = nil
    @section      = nil
    @file         = nil

    version        = array[0]
    @name          = array[1]
    @full_name     = array[2]
    @rw            = array[3]
    @visibility    = array[4]
    @comment       = array[5]
    @singleton     = array[6] || false # MARSHAL_VERSION == 0
    #                      7 handled below
    @parent_name   = array[8]
    @parent_class  = array[9]
    @section_title = array[10]

    @file = RDoc::TopLevel.new array[7] if version > 1

    @parent_name ||= @full_name.split('#', 2).first
  end

  def pretty_print q # :nodoc:
    q.group 2, "[#{self.class.name} #{full_name} #{rw} #{visibility}", "]" do
      unless comment.empty? then
        q.breakable
        q.text "comment:"
        q.breakable
        q.pp @comment
      end
    end
  end

  def to_s # :nodoc:
    "#{definition} #{name} in: #{parent}"
  end

  ##
  # Attributes do not have token streams.
  #
  # An RDoc::Attr can show up in the method list in some situations (see
  # Gem::ConfigFile)

  def token_stream # :nodoc:
  end

end

lib64/ruby/2.2.0/rdoc/parser/rd.rb000064400000000630150402106160012253 0ustar00##
# Parse a RD format file.  The parsed RDoc::Markup::Document is attached as a
# file comment.

class RDoc::Parser::RD < RDoc::Parser

  include RDoc::Parser::Text

  parse_files_matching(/\.rd(?:\.[^.]+)?$/)

  ##
  # Creates an rd-format TopLevel for the given file.

  def scan
    comment = RDoc::Comment.new @content, @top_level
    comment.format = 'rd'

    @top_level.comment = comment
  end

end

lib64/ruby/2.2.0/rdoc/parser/c.rb000064400000105456150402106160012104 0ustar00require 'tsort'

##
# RDoc::Parser::C attempts to parse C extension files.  It looks for
# the standard patterns that you find in extensions: <tt>rb_define_class,
# rb_define_method</tt> and so on.  It tries to find the corresponding
# C source for the methods and extract comments, but if we fail
# we don't worry too much.
#
# The comments associated with a Ruby method are extracted from the C
# comment block associated with the routine that _implements_ that
# method, that is to say the method whose name is given in the
# <tt>rb_define_method</tt> call. For example, you might write:
#
#   /*
#    * Returns a new array that is a one-dimensional flattening of this
#    * array (recursively). That is, for every element that is an array,
#    * extract its elements into the new array.
#    *
#    *    s = [ 1, 2, 3 ]           #=> [1, 2, 3]
#    *    t = [ 4, 5, 6, [7, 8] ]   #=> [4, 5, 6, [7, 8]]
#    *    a = [ s, t, 9, 10 ]       #=> [[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10]
#    *    a.flatten                 #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#    */
#    static VALUE
#    rb_ary_flatten(ary)
#        VALUE ary;
#    {
#        ary = rb_obj_dup(ary);
#        rb_ary_flatten_bang(ary);
#        return ary;
#    }
#
#    ...
#
#    void
#    Init_Array()
#    {
#      ...
#      rb_define_method(rb_cArray, "flatten", rb_ary_flatten, 0);
#
# Here RDoc will determine from the rb_define_method line that there's a
# method called "flatten" in class Array, and will look for the implementation
# in the method rb_ary_flatten. It will then use the comment from that
# method in the HTML output. This method must be in the same source file
# as the rb_define_method.
#
# The comment blocks may include special directives:
#
# [Document-class: +name+]
#   Documentation for the named class.
#
# [Document-module: +name+]
#   Documentation for the named module.
#
# [Document-const: +name+]
#   Documentation for the named +rb_define_const+.
#
#   Constant values can be supplied on the first line of the comment like so:
#
#     /* 300: The highest possible score in bowling */
#     rb_define_const(cFoo, "PERFECT", INT2FIX(300));
#
#   The value can contain internal colons so long as they are escaped with a \
#
# [Document-global: +name+]
#   Documentation for the named +rb_define_global_const+
#
# [Document-variable: +name+]
#   Documentation for the named +rb_define_variable+
#
# [Document-method: +method_name+]
#   Documentation for the named method.  Use this when the method name is
#   unambiguous.
#
# [Document-method: <tt>ClassName::method_name<tt>]
#   Documentation for a singleton method in the given class.  Use this when
#   the method name alone is ambiguous.
#
# [Document-method: <tt>ClassName#method_name<tt>]
#   Documentation for a instance method in the given class.  Use this when the
#   method name alone is ambiguous.
#
# [Document-attr: +name+]
#   Documentation for the named attribute.
#
# [call-seq:  <i>text up to an empty line</i>]
#   Because C source doesn't give descriptive names to Ruby-level parameters,
#   you need to document the calling sequence explicitly
#
# In addition, RDoc assumes by default that the C method implementing a
# Ruby function is in the same source file as the rb_define_method call.
# If this isn't the case, add the comment:
#
#   rb_define_method(....);  // in filename
#
# As an example, we might have an extension that defines multiple classes
# in its Init_xxx method. We could document them using
#
#   /*
#    * Document-class:  MyClass
#    *
#    * Encapsulate the writing and reading of the configuration
#    * file. ...
#    */
#
#   /*
#    * Document-method: read_value
#    *
#    * call-seq:
#    *   cfg.read_value(key)            -> value
#    *   cfg.read_value(key} { |key| }  -> value
#    *
#    * Return the value corresponding to +key+ from the configuration.
#    * In the second form, if the key isn't found, invoke the
#    * block and return its value.
#    */

class RDoc::Parser::C < RDoc::Parser

  parse_files_matching(/\.(?:([CcHh])\1?|c([+xp])\2|y)\z/)

  include RDoc::Text

  ##
  # Maps C variable names to names of Ruby classes or modules

  attr_reader :classes

  ##
  # C file the parser is parsing

  attr_accessor :content

  ##
  # Dependencies from a missing enclosing class to the classes in
  # missing_dependencies that depend upon it.

  attr_reader :enclosure_dependencies

  ##
  # Maps C variable names to names of Ruby classes (and singleton classes)

  attr_reader :known_classes

  ##
  # Classes found while parsing the C file that were not yet registered due to
  # a missing enclosing class.  These are processed by do_missing

  attr_reader :missing_dependencies

  ##
  # Maps C variable names to names of Ruby singleton classes

  attr_reader :singleton_classes

  ##
  # The TopLevel items in the parsed file belong to

  attr_reader :top_level

  ##
  # Prepares for parsing a C file.  See RDoc::Parser#initialize for details on
  # the arguments.

  def initialize top_level, file_name, content, options, stats
    super

    @known_classes = RDoc::KNOWN_CLASSES.dup
    @content = handle_tab_width handle_ifdefs_in @content
    @file_dir = File.dirname @file_name

    @classes           = load_variable_map :c_class_variables
    @singleton_classes = load_variable_map :c_singleton_class_variables

    # class_variable => { function => [method, ...] }
    @methods = Hash.new { |h, f| h[f] = Hash.new { |i, m| i[m] = [] } }

    # missing variable => [handle_class_module arguments]
    @missing_dependencies = {}

    # missing enclosure variable => [dependent handle_class_module arguments]
    @enclosure_dependencies = Hash.new { |h, k| h[k] = [] }
    @enclosure_dependencies.instance_variable_set :@missing_dependencies,
                                                  @missing_dependencies

    @enclosure_dependencies.extend TSort

    def @enclosure_dependencies.tsort_each_node &block
      each_key(&block)
    rescue TSort::Cyclic => e
      cycle_vars = e.message.scan(/"(.*?)"/).flatten

      cycle = cycle_vars.sort.map do |var_name|
        delete var_name

        var_name, type, mod_name, = @missing_dependencies[var_name]

        "#{type} #{mod_name} (#{var_name})"
      end.join ', '

      warn "Unable to create #{cycle} due to a cyclic class or module creation"

      retry
    end

    def @enclosure_dependencies.tsort_each_child node, &block
      fetch(node, []).each(&block)
    end
  end

  ##
  # Removes duplicate call-seq entries for methods using the same
  # implementation.

  def deduplicate_call_seq
    @methods.each do |var_name, functions|
      class_name = @known_classes[var_name]
      class_obj  = find_class var_name, class_name

      functions.each_value do |method_names|
        next if method_names.length == 1

        method_names.each do |method_name|
          deduplicate_method_name class_obj, method_name
        end
      end
    end
  end

  ##
  # If two ruby methods share a C implementation (and comment) this
  # deduplicates the examples in the call_seq for the method to reduce
  # confusion in the output.

  def deduplicate_method_name class_obj, method_name # :nodoc:
    return unless
      method = class_obj.method_list.find { |m| m.name == method_name }
    return unless call_seq = method.call_seq

    method_name = method_name[0, 1] if method_name =~ /\A\[/

    entries = call_seq.split "\n"

    matching = entries.select do |entry|
      entry =~ /^\w*\.?#{Regexp.escape method_name}/ or
        entry =~ /\s#{Regexp.escape method_name}\s/
    end

    method.call_seq = matching.join "\n"
  end

  ##
  # Scans #content for rb_define_alias

  def do_aliases
    @content.scan(/rb_define_alias\s*\(
                   \s*(\w+),
                   \s*"(.+?)",
                   \s*"(.+?)"
                   \s*\)/xm) do |var_name, new_name, old_name|
      class_name = @known_classes[var_name]

      unless class_name then
        @options.warn "Enclosing class or module %p for alias %s %s is not known" % [
          var_name, new_name, old_name]
        next
      end

      class_obj = find_class var_name, class_name

      al = RDoc::Alias.new '', old_name, new_name, ''
      al.singleton = @singleton_classes.key? var_name

      comment = find_alias_comment var_name, new_name, old_name

      comment.normalize

      al.comment = comment

      al.record_location @top_level

      class_obj.add_alias al
      @stats.add_alias al
    end
  end

  ##
  # Scans #content for rb_attr and rb_define_attr

  def do_attrs
    @content.scan(/rb_attr\s*\(
                   \s*(\w+),
                   \s*([\w"()]+),
                   \s*([01]),
                   \s*([01]),
                   \s*\w+\);/xm) do |var_name, attr_name, read, write|
      handle_attr var_name, attr_name, read, write
    end

    @content.scan(%r%rb_define_attr\(
                             \s*([\w\.]+),
                             \s*"([^"]+)",
                             \s*(\d+),
                             \s*(\d+)\s*\);
                %xm) do |var_name, attr_name, read, write|
      handle_attr var_name, attr_name, read, write
    end
  end

  ##
  # Scans #content for boot_defclass

  def do_boot_defclass
    @content.scan(/(\w+)\s*=\s*boot_defclass\s*\(\s*"(\w+?)",\s*(\w+?)\s*\)/) do
      |var_name, class_name, parent|
      parent = nil if parent == "0"
      handle_class_module(var_name, :class, class_name, parent, nil)
    end
  end

  ##
  # Scans #content for rb_define_class, boot_defclass, rb_define_class_under
  # and rb_singleton_class

  def do_classes
    do_boot_defclass
    do_define_class
    do_define_class_under
    do_singleton_class
    do_struct_define_without_accessor
  end

  ##
  # Scans #content for rb_define_variable, rb_define_readonly_variable,
  # rb_define_const and rb_define_global_const

  def do_constants
    @content.scan(%r%\Wrb_define_
                   ( variable          |
                     readonly_variable |
                     const             |
                     global_const        )
               \s*\(
                 (?:\s*(\w+),)?
                 \s*"(\w+)",
                 \s*(.*?)\s*\)\s*;
                 %xm) do |type, var_name, const_name, definition|
      var_name = "rb_cObject" if !var_name or var_name == "rb_mKernel"
      handle_constants type, var_name, const_name, definition
    end

    @content.scan(%r%
                  \Wrb_curses_define_const
                  \s*\(
                    \s*
                    (\w+)
                    \s*
                  \)
                  \s*;%xm) do |consts|
      const = consts.first

      handle_constants 'const', 'mCurses', const, "UINT2NUM(#{const})"
    end

    @content.scan(%r%
                  \Wrb_file_const
                  \s*\(
                    \s*
                    "([^"]+)",
                    \s*
                    (.*?)
                    \s*
                  \)
                  \s*;%xm) do |name, value|
      handle_constants 'const', 'rb_mFConst', name, value
    end
  end

  ##
  # Scans #content for rb_define_class

  def do_define_class
    # The '.' lets us handle SWIG-generated files
    @content.scan(/([\w\.]+)\s* = \s*rb_define_class\s*
              \(
                 \s*"(\w+)",
                 \s*(\w+)\s*
              \)/mx) do |var_name, class_name, parent|
      handle_class_module(var_name, :class, class_name, parent, nil)
    end
  end

  ##
  # Scans #content for rb_define_class_under

  def do_define_class_under
    @content.scan(/([\w\.]+)\s* =                  # var_name
                   \s*rb_define_class_under\s*
                   \(
                     \s* (\w+),                    # under
                     \s* "(\w+)",                  # class_name
                     \s*
                     (?:
                       ([\w\*\s\(\)\.\->]+) |      # parent_name
                       rb_path2class\("([\w:]+)"\) # path
                     )
                     \s*
                   \)
                  /mx) do |var_name, under, class_name, parent_name, path|
      parent = path || parent_name

      handle_class_module var_name, :class, class_name, parent, under
    end
  end

  ##
  # Scans #content for rb_define_module

  def do_define_module
    @content.scan(/(\w+)\s* = \s*rb_define_module\s*\(\s*"(\w+)"\s*\)/mx) do
      |var_name, class_name|
      handle_class_module(var_name, :module, class_name, nil, nil)
    end
  end

  ##
  # Scans #content for rb_define_module_under

  def do_define_module_under
    @content.scan(/(\w+)\s* = \s*rb_define_module_under\s*
              \(
                 \s*(\w+),
                 \s*"(\w+)"
              \s*\)/mx) do |var_name, in_module, class_name|
      handle_class_module(var_name, :module, class_name, nil, in_module)
    end
  end

  ##
  # Scans #content for rb_include_module

  def do_includes
    @content.scan(/rb_include_module\s*\(\s*(\w+?),\s*(\w+?)\s*\)/) do |c,m|
      next unless cls = @classes[c]
      m = @known_classes[m] || m

      comment = RDoc::Comment.new '', @top_level
      incl = cls.add_include RDoc::Include.new(m, comment)
      incl.record_location @top_level
    end
  end

  ##
  # Scans #content for rb_define_method, rb_define_singleton_method,
  # rb_define_module_function, rb_define_private_method,
  # rb_define_global_function and define_filetest_function

  def do_methods
    @content.scan(%r%rb_define_
                   (
                      singleton_method |
                      method           |
                      module_function  |
                      private_method
                   )
                   \s*\(\s*([\w\.]+),
                     \s*"([^"]+)",
                     \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\(|\(METHOD\))?(\w+)\)?,
                     \s*(-?\w+)\s*\)
                   (?:;\s*/[*/]\s+in\s+(\w+?\.(?:cpp|c|y)))?
                 %xm) do |type, var_name, meth_name, function, param_count, source_file|

      # Ignore top-object and weird struct.c dynamic stuff
      next if var_name == "ruby_top_self"
      next if var_name == "nstr"

      var_name = "rb_cObject" if var_name == "rb_mKernel"
      handle_method(type, var_name, meth_name, function, param_count,
                    source_file)
    end

    @content.scan(%r%rb_define_global_function\s*\(
                             \s*"([^"]+)",
                             \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\()?(\w+)\)?,
                             \s*(-?\w+)\s*\)
                (?:;\s*/[*/]\s+in\s+(\w+?\.[cy]))?
                %xm) do |meth_name, function, param_count, source_file|
      handle_method("method", "rb_mKernel", meth_name, function, param_count,
                    source_file)
    end

    @content.scan(/define_filetest_function\s*\(
                     \s*"([^"]+)",
                     \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\()?(\w+)\)?,
                     \s*(-?\w+)\s*\)/xm) do |meth_name, function, param_count|

      handle_method("method", "rb_mFileTest", meth_name, function, param_count)
      handle_method("singleton_method", "rb_cFile", meth_name, function,
                    param_count)
    end
  end

  ##
  # Creates classes and module that were missing were defined due to the file
  # order being different than the declaration order.

  def do_missing
    return if @missing_dependencies.empty?

    @enclosure_dependencies.tsort.each do |in_module|
      arguments = @missing_dependencies.delete in_module

      next unless arguments # dependency on existing class

      handle_class_module(*arguments)
    end
  end

  ##
  # Scans #content for rb_define_module and rb_define_module_under

  def do_modules
    do_define_module
    do_define_module_under
  end

  ##
  # Scans #content for rb_singleton_class

  def do_singleton_class
    @content.scan(/([\w\.]+)\s* = \s*rb_singleton_class\s*
                  \(
                    \s*(\w+)
                  \s*\)/mx) do |sclass_var, class_var|
      handle_singleton sclass_var, class_var
    end
  end

  ##
  # Scans #content for struct_define_without_accessor

  def do_struct_define_without_accessor
    @content.scan(/([\w\.]+)\s* = \s*rb_struct_define_without_accessor\s*
              \(
                 \s*"(\w+)",  # Class name
                 \s*(\w+),    # Parent class
                 \s*\w+,      # Allocation function
                 (\s*"\w+",)* # Attributes
                 \s*NULL
              \)/mx) do |var_name, class_name, parent|
      handle_class_module(var_name, :class, class_name, parent, nil)
    end
  end

  ##
  # Finds the comment for an alias on +class_name+ from +new_name+ to
  # +old_name+

  def find_alias_comment class_name, new_name, old_name
    content =~ %r%((?>/\*.*?\*/\s+))
                  rb_define_alias\(\s*#{Regexp.escape class_name}\s*,
                                   \s*"#{Regexp.escape new_name}"\s*,
                                   \s*"#{Regexp.escape old_name}"\s*\);%xm

    RDoc::Comment.new($1 || '', @top_level)
  end

  ##
  # Finds a comment for rb_define_attr, rb_attr or Document-attr.
  #
  # +var_name+ is the C class variable the attribute is defined on.
  # +attr_name+ is the attribute's name.
  #
  # +read+ and +write+ are the read/write flags ('1' or '0').  Either both or
  # neither must be provided.

  def find_attr_comment var_name, attr_name, read = nil, write = nil
    attr_name = Regexp.escape attr_name

    rw = if read and write then
           /\s*#{read}\s*,\s*#{write}\s*/xm
         else
           /.*?/m
         end

    comment = if @content =~ %r%((?>/\*.*?\*/\s+))
                                rb_define_attr\((?:\s*#{var_name},)?\s*
                                                "#{attr_name}"\s*,
                                                #{rw}\)\s*;%xm then
                $1
              elsif @content =~ %r%((?>/\*.*?\*/\s+))
                                   rb_attr\(\s*#{var_name}\s*,
                                            \s*#{attr_name}\s*,
                                            #{rw},.*?\)\s*;%xm then
                $1
              elsif @content =~ %r%(/\*.*?(?:\s*\*\s*)?)
                                   Document-attr:\s#{attr_name}\s*?\n
                                   ((?>(.|\n)*?\*/))%x then
                "#{$1}\n#{$2}"
              else
                ''
              end

    RDoc::Comment.new comment, @top_level
  end

  ##
  # Find the C code corresponding to a Ruby method

  def find_body class_name, meth_name, meth_obj, file_content, quiet = false
    case file_content
    when %r%((?>/\*.*?\*/\s*)?)
            ((?:(?:\w+)\s+)?
             (?:intern\s+)?VALUE\s+#{meth_name}
             \s*(\([^)]*\))([^;]|$))%xm then
      comment = RDoc::Comment.new $1, @top_level
      body = $2
      offset, = $~.offset(2)

      comment.remove_private if comment

      # try to find the whole body
      body = $& if /#{Regexp.escape body}[^(]*?\{.*?^\}/m =~ file_content

      # The comment block may have been overridden with a 'Document-method'
      # block. This happens in the interpreter when multiple methods are
      # vectored through to the same C method but those methods are logically
      # distinct (for example Kernel.hash and Kernel.object_id share the same
      # implementation

      override_comment = find_override_comment class_name, meth_obj
      comment = override_comment if override_comment

      comment.normalize
      find_modifiers comment, meth_obj if comment

      #meth_obj.params = params
      meth_obj.start_collecting_tokens
      tk = RDoc::RubyToken::Token.new nil, 1, 1
      tk.set_text body
      meth_obj.add_token tk
      meth_obj.comment = comment
      meth_obj.offset  = offset
      meth_obj.line    = file_content[0, offset].count("\n") + 1

      body
    when %r%((?>/\*.*?\*/\s*))^\s*(\#\s*define\s+#{meth_name}\s+(\w+))%m then
      comment = RDoc::Comment.new $1, @top_level
      body = $2
      offset = $~.offset(2).first

      find_body class_name, $3, meth_obj, file_content, true

      comment.normalize
      find_modifiers comment, meth_obj

      meth_obj.start_collecting_tokens
      tk = RDoc::RubyToken::Token.new nil, 1, 1
      tk.set_text body
      meth_obj.add_token tk
      meth_obj.comment = comment
      meth_obj.offset  = offset
      meth_obj.line    = file_content[0, offset].count("\n") + 1

      body
    when %r%^\s*\#\s*define\s+#{meth_name}\s+(\w+)%m then
      # with no comment we hope the aliased definition has it and use it's
      # definition

      body = find_body(class_name, $1, meth_obj, file_content, true)

      return body if body

      @options.warn "No definition for #{meth_name}"
      false
    else # No body, but might still have an override comment
      comment = find_override_comment class_name, meth_obj

      if comment then
        comment.normalize
        find_modifiers comment, meth_obj
        meth_obj.comment = comment

        ''
      else
        @options.warn "No definition for #{meth_name}"
        false
      end
    end
  end

  ##
  # Finds a RDoc::NormalClass or RDoc::NormalModule for +raw_name+

  def find_class(raw_name, name)
    unless @classes[raw_name]
      if raw_name =~ /^rb_m/
        container = @top_level.add_module RDoc::NormalModule, name
      else
        container = @top_level.add_class RDoc::NormalClass, name
      end

      container.record_location @top_level
      @classes[raw_name] = container
    end
    @classes[raw_name]
  end

  ##
  # Look for class or module documentation above Init_+class_name+(void),
  # in a Document-class +class_name+ (or module) comment or above an
  # rb_define_class (or module).  If a comment is supplied above a matching
  # Init_ and a rb_define_class the Init_ comment is used.
  #
  #   /*
  #    * This is a comment for Foo
  #    */
  #   Init_Foo(void) {
  #       VALUE cFoo = rb_define_class("Foo", rb_cObject);
  #   }
  #
  #   /*
  #    * Document-class: Foo
  #    * This is a comment for Foo
  #    */
  #   Init_foo(void) {
  #       VALUE cFoo = rb_define_class("Foo", rb_cObject);
  #   }
  #
  #   /*
  #    * This is a comment for Foo
  #    */
  #   VALUE cFoo = rb_define_class("Foo", rb_cObject);

  def find_class_comment class_name, class_mod
    comment = nil

    if @content =~ %r%
        ((?>/\*.*?\*/\s+))
        (static\s+)?
        void\s+
        Init_#{class_name}\s*(?:_\(\s*)?\(\s*(?:void\s*)?\)%xmi then
      comment = $1.sub(%r%Document-(?:class|module):\s+#{class_name}%, '')
    elsif @content =~ %r%Document-(?:class|module):\s+#{class_name}\s*?
                         (?:<\s+[:,\w]+)?\n((?>.*?\*/))%xm then
      comment = "/*\n#{$1}"
    elsif @content =~ %r%((?>/\*.*?\*/\s+))
                         ([\w\.\s]+\s* = \s+)?rb_define_(class|module)[\t (]*?"(#{class_name})"%xm then
      comment = $1
    elsif @content =~ %r%((?>/\*.*?\*/\s+))
                         ([\w\. \t]+ = \s+)?rb_define_(class|module)_under[\t\w, (]*?"(#{class_name.split('::').last})"%xm then
      comment = $1
    else
      comment = ''
    end

    comment = RDoc::Comment.new comment, @top_level
    comment.normalize

    look_for_directives_in class_mod, comment

    class_mod.add_comment comment, @top_level
  end

  ##
  # Finds a comment matching +type+ and +const_name+ either above the
  # comment or in the matching Document- section.

  def find_const_comment(type, const_name, class_name = nil)
    comment = if @content =~ %r%((?>^\s*/\*.*?\*/\s+))
                             rb_define_#{type}\((?:\s*(\w+),)?\s*
                                                "#{const_name}"\s*,
                                                .*?\)\s*;%xmi then
                $1
              elsif class_name and
                    @content =~ %r%Document-(?:const|global|variable):\s
                                   #{class_name}::#{const_name}
                                   \s*?\n((?>.*?\*/))%xm then
                "/*\n#{$1}"
              elsif @content =~ %r%Document-(?:const|global|variable):
                                   \s#{const_name}
                                   \s*?\n((?>.*?\*/))%xm then
                "/*\n#{$1}"
              else
                ''
              end

    RDoc::Comment.new comment, @top_level
  end

  ##
  # Handles modifiers in +comment+ and updates +meth_obj+ as appropriate.

  def find_modifiers comment, meth_obj
    comment.normalize
    comment.extract_call_seq meth_obj

    look_for_directives_in meth_obj, comment
  end

  ##
  # Finds a <tt>Document-method</tt> override for +meth_obj+ on +class_name+

  def find_override_comment class_name, meth_obj
    name = Regexp.escape meth_obj.name
    prefix = Regexp.escape meth_obj.name_prefix

    comment = if @content =~ %r%Document-method:
                                \s+#{class_name}#{prefix}#{name}
                                \s*?\n((?>.*?\*/))%xm then
                "/*#{$1}"
              elsif @content =~ %r%Document-method:
                                   \s#{name}\s*?\n((?>.*?\*/))%xm then
                "/*#{$1}"
              end

    return unless comment

    RDoc::Comment.new comment, @top_level
  end

  ##
  # Creates a new RDoc::Attr +attr_name+ on class +var_name+ that is either
  # +read+, +write+ or both

  def handle_attr(var_name, attr_name, read, write)
    rw = ''
    rw << 'R' if '1' == read
    rw << 'W' if '1' == write

    class_name = @known_classes[var_name]

    return unless class_name

    class_obj = find_class var_name, class_name

    return unless class_obj

    comment = find_attr_comment var_name, attr_name
    comment.normalize

    name = attr_name.gsub(/rb_intern\("([^"]+)"\)/, '\1')

    attr = RDoc::Attr.new '', name, rw, comment

    attr.record_location @top_level
    class_obj.add_attribute attr
    @stats.add_attribute attr
  end

  ##
  # Creates a new RDoc::NormalClass or RDoc::NormalModule based on +type+
  # named +class_name+ in +parent+ which was assigned to the C +var_name+.

  def handle_class_module(var_name, type, class_name, parent, in_module)
    parent_name = @known_classes[parent] || parent

    if in_module then
      enclosure = @classes[in_module] || @store.find_c_enclosure(in_module)

      if enclosure.nil? and enclosure = @known_classes[in_module] then
        enc_type = /^rb_m/ =~ in_module ? :module : :class
        handle_class_module in_module, enc_type, enclosure, nil, nil
        enclosure = @classes[in_module]
      end

      unless enclosure then
        @enclosure_dependencies[in_module] << var_name
        @missing_dependencies[var_name] =
          [var_name, type, class_name, parent, in_module]

        return
      end
    else
      enclosure = @top_level
    end

    if type == :class then
      full_name = if RDoc::ClassModule === enclosure then
                    enclosure.full_name + "::#{class_name}"
                  else
                    class_name
                  end

      if @content =~ %r%Document-class:\s+#{full_name}\s*<\s+([:,\w]+)% then
        parent_name = $1
      end

      cm = enclosure.add_class RDoc::NormalClass, class_name, parent_name
    else
      cm = enclosure.add_module RDoc::NormalModule, class_name
    end

    cm.record_location enclosure.top_level

    find_class_comment cm.full_name, cm

    case cm
    when RDoc::NormalClass
      @stats.add_class cm
    when RDoc::NormalModule
      @stats.add_module cm
    end

    @classes[var_name] = cm
    @known_classes[var_name] = cm.full_name
    @store.add_c_enclosure var_name, cm
  end

  ##
  # Adds constants.  By providing some_value: at the start of the comment you
  # can override the C value of the comment to give a friendly definition.
  #
  #   /* 300: The perfect score in bowling */
  #   rb_define_const(cFoo, "PERFECT", INT2FIX(300);
  #
  # Will override <tt>INT2FIX(300)</tt> with the value +300+ in the output
  # RDoc.  Values may include quotes and escaped colons (\:).

  def handle_constants(type, var_name, const_name, definition)
    class_name = @known_classes[var_name]

    return unless class_name

    class_obj = find_class var_name, class_name

    unless class_obj then
      @options.warn 'Enclosing class or module %p is not known' % [const_name]
      return
    end

    comment = find_const_comment type, const_name, class_name
    comment.normalize

    # In the case of rb_define_const, the definition and comment are in
    # "/* definition: comment */" form.  The literal ':' and '\' characters
    # can be escaped with a backslash.
    if type.downcase == 'const' then
      no_match, new_definition, new_comment = comment.text.split(/(\A.*):/)

      if no_match and no_match.empty? then
        if new_definition.empty? then # Default to literal C definition
          new_definition = definition
        else
          new_definition.gsub!("\:", ":")
          new_definition.gsub!("\\", '\\')
        end

        new_definition.sub!(/\A(\s+)/, '')

        new_comment = "#{$1}#{new_comment.lstrip}"

        new_comment = RDoc::Comment.new new_comment, @top_level

        con = RDoc::Constant.new const_name, new_definition, new_comment
      else
        con = RDoc::Constant.new const_name, definition, comment
      end
    else
      con = RDoc::Constant.new const_name, definition, comment
    end

    con.record_location @top_level
    @stats.add_constant con
    class_obj.add_constant con
  end

  ##
  # Removes #ifdefs that would otherwise confuse us

  def handle_ifdefs_in(body)
    body.gsub(/^#ifdef HAVE_PROTOTYPES.*?#else.*?\n(.*?)#endif.*?\n/m, '\1')
  end

  ##
  # Adds an RDoc::AnyMethod +meth_name+ defined on a class or module assigned
  # to +var_name+.  +type+ is the type of method definition function used.
  # +singleton_method+ and +module_function+ create a singleton method.

  def handle_method(type, var_name, meth_name, function, param_count,
                    source_file = nil)
    class_name = @known_classes[var_name]
    singleton  = @singleton_classes.key? var_name

    @methods[var_name][function] << meth_name

    return unless class_name

    class_obj = find_class var_name, class_name

    if class_obj then
      if meth_name == 'initialize' then
        meth_name = 'new'
        singleton = true
        type = 'method' # force public
      end

      meth_obj = RDoc::AnyMethod.new '', meth_name
      meth_obj.c_function = function
      meth_obj.singleton =
        singleton || %w[singleton_method module_function].include?(type)

      p_count = Integer(param_count) rescue -1

      if source_file then
        file_name = File.join @file_dir, source_file

        if File.exist? file_name then
          file_content = File.read file_name
        else
          @options.warn "unknown source #{source_file} for #{meth_name} in #{@file_name}"
        end
      else
        file_content = @content
      end

      body = find_body class_name, function, meth_obj, file_content

      if body and meth_obj.document_self then
        meth_obj.params = if p_count < -1 then # -2 is Array
                            '(*args)'
                          elsif p_count == -1 then # argc, argv
                            rb_scan_args body
                          else
                            "(#{(1..p_count).map { |i| "p#{i}" }.join ', '})"
                          end


        meth_obj.record_location @top_level
        class_obj.add_method meth_obj
        @stats.add_method meth_obj
        meth_obj.visibility = :private if 'private_method' == type
      end
    end
  end

  ##
  # Registers a singleton class +sclass_var+ as a singleton of +class_var+

  def handle_singleton sclass_var, class_var
    class_name = @known_classes[class_var]

    @known_classes[sclass_var]     = class_name
    @singleton_classes[sclass_var] = class_name
  end

  ##
  # Normalizes tabs in +body+

  def handle_tab_width(body)
    if /\t/ =~ body
      tab_width = @options.tab_width
      body.split(/\n/).map do |line|
        1 while line.gsub!(/\t+/) do
          ' ' * (tab_width * $&.length - $`.length % tab_width)
        end && $~
        line
      end.join "\n"
    else
      body
    end
  end

  ##
  # Loads the variable map with the given +name+ from the RDoc::Store, if
  # present.

  def load_variable_map map_name
    return {} unless files = @store.cache[map_name]
    return {} unless name_map = files[@file_name]

    class_map = {}

    name_map.each do |variable, name|
      next unless mod = @store.find_class_or_module(name)

      class_map[variable] = if map_name == :c_class_variables then
                              mod
                            else
                              name
                            end
      @known_classes[variable] = name
    end

    class_map
  end

  ##
  # Look for directives in a normal comment block:
  #
  #   /*
  #    * :title: My Awesome Project
  #    */
  #
  # This method modifies the +comment+

  def look_for_directives_in context, comment
    @preprocess.handle comment, context do |directive, param|
      case directive
      when 'main' then
        @options.main_page = param
        ''
      when 'title' then
        @options.default_title = param if @options.respond_to? :default_title=
        ''
      end
    end

    comment
  end

  ##
  # Extracts parameters from the +method_body+ and returns a method
  # parameter string.  Follows 1.9.3dev's scan-arg-spec, see README.EXT

  def rb_scan_args method_body
    method_body =~ /rb_scan_args\((.*?)\)/m
    return '(*args)' unless $1

    $1.split(/,/)[2] =~ /"(.*?)"/ # format argument
    format = $1.split(//)

    lead = opt = trail = 0

    if format.first =~ /\d/ then
      lead = $&.to_i
      format.shift
      if format.first =~ /\d/ then
        opt = $&.to_i
        format.shift
        if format.first =~ /\d/ then
          trail = $&.to_i
          format.shift
          block_arg = true
        end
      end
    end

    if format.first == '*' and not block_arg then
      var = true
      format.shift
      if format.first =~ /\d/ then
        trail = $&.to_i
        format.shift
      end
    end

    if format.first == ':' then
      hash = true
      format.shift
    end

    if format.first == '&' then
      block = true
      format.shift
    end

    # if the format string is not empty there's a bug in the C code, ignore it

    args = []
    position = 1

    (1...(position + lead)).each do |index|
      args << "p#{index}"
    end

    position += lead

    (position...(position + opt)).each do |index|
      args << "p#{index} = v#{index}"
    end

    position += opt

    if var then
      args << '*args'
      position += 1
    end

    (position...(position + trail)).each do |index|
      args << "p#{index}"
    end

    position += trail

    if hash then
      args << "p#{position} = {}"
    end

    args << '&block' if block

    "(#{args.join ', '})"
  end

  ##
  # Removes lines that are commented out that might otherwise get picked up
  # when scanning for classes and methods

  def remove_commented_out_lines
    @content.gsub!(%r%//.*rb_define_%, '//')
  end

  ##
  # Extracts the classes, modules, methods, attributes, constants and aliases
  # from a C file and returns an RDoc::TopLevel for this file

  def scan
    remove_commented_out_lines

    do_modules
    do_classes
    do_missing

    do_constants
    do_methods
    do_includes
    do_aliases
    do_attrs

    deduplicate_call_seq

    @store.add_c_variables self

    @top_level
  end

end

lib64/ruby/2.2.0/rdoc/parser/text.rb000064400000000425150402106160012634 0ustar00##
# Indicates this parser is text and doesn't contain code constructs.
#
# Include this module in a RDoc::Parser subclass to make it show up as a file,
# not as part of a class or module.
#--
# This is not named File to avoid overriding ::File

module RDoc::Parser::Text
end

lib64/ruby/2.2.0/rdoc/parser/simple.rb000064400000002615150402106160013144 0ustar00##
# Parse a non-source file. We basically take the whole thing as one big
# comment.

class RDoc::Parser::Simple < RDoc::Parser

  include RDoc::Parser::Text

  parse_files_matching(//)

  attr_reader :content # :nodoc:

  ##
  # Prepare to parse a plain file

  def initialize(top_level, file_name, content, options, stats)
    super

    preprocess = RDoc::Markup::PreProcess.new @file_name, @options.rdoc_include

    preprocess.handle @content, @top_level
  end

  ##
  # Extract the file contents and attach them to the TopLevel as a comment

  def scan
    comment = remove_coding_comment @content
    comment = remove_private_comment comment

    comment = RDoc::Comment.new comment, @top_level

    @top_level.comment = comment
    @top_level
  end

  ##
  # Removes the encoding magic comment from +text+

  def remove_coding_comment text
    text.sub(/\A# .*coding[=:].*$/, '')
  end

  ##
  # Removes private comments.
  #
  # Unlike RDoc::Comment#remove_private this implementation only looks for two
  # dashes at the beginning of the line.  Three or more dashes are considered
  # to be a rule and ignored.

  def remove_private_comment comment
    # Workaround for gsub encoding for Ruby 1.9.2 and earlier
    empty = ''
    empty.force_encoding comment.encoding if Object.const_defined? :Encoding

    comment = comment.gsub(%r%^--\n.*?^\+\+\n?%m, empty)
    comment.sub(%r%^--\n.*%m, empty)
  end

end

lib64/ruby/2.2.0/rdoc/parser/ruby_tools.rb000064400000005670150402106160014060 0ustar00##
# Collection of methods for writing parsers against RDoc::RubyLex and
# RDoc::RubyToken

module RDoc::Parser::RubyTools

  include RDoc::RubyToken

  ##
  # Adds a token listener +obj+, but you should probably use token_listener

  def add_token_listener(obj)
    @token_listeners ||= []
    @token_listeners << obj
  end

  ##
  # Fetches the next token from the scanner

  def get_tk
    tk = nil

    if @tokens.empty? then
      tk = @scanner.token
      @read.push @scanner.get_readed
      puts "get_tk1 => #{tk.inspect}" if $TOKEN_DEBUG
    else
      @read.push @unget_read.shift
      tk = @tokens.shift
      puts "get_tk2 => #{tk.inspect}" if $TOKEN_DEBUG
    end

    tk = nil if TkEND_OF_SCRIPT === tk

    if TkSYMBEG === tk then
      set_token_position tk.line_no, tk.char_no

      case tk1 = get_tk
      when TkId, TkOp, TkSTRING, TkDSTRING, TkSTAR, TkAMPER then
        if tk1.respond_to?(:name) then
          tk = Token(TkSYMBOL).set_text(":" + tk1.name)
        else
          tk = Token(TkSYMBOL).set_text(":" + tk1.text)
        end

        # remove the identifier we just read to replace it with a symbol
        @token_listeners.each do |obj|
          obj.pop_token
        end if @token_listeners
      else
        tk = tk1
      end
    end

    # inform any listeners of our shiny new token
    @token_listeners.each do |obj|
      obj.add_token(tk)
    end if @token_listeners

    tk
  end

  ##
  # Reads and returns all tokens up to one of +tokens+.  Leaves the matched
  # token in the token list.

  def get_tk_until(*tokens)
    read = []

    loop do
      tk = get_tk

      case tk
      when *tokens then
        unget_tk tk
        break
      end

      read << tk
    end

    read
  end

  ##
  # Retrieves a String representation of the read tokens

  def get_tkread
    read = @read.join("")
    @read = []
    read
  end

  ##
  # Peek equivalent for get_tkread

  def peek_read
    @read.join('')
  end

  ##
  # Peek at the next token, but don't remove it from the stream

  def peek_tk
    unget_tk(tk = get_tk)
    tk
  end

  ##
  # Removes the token listener +obj+

  def remove_token_listener(obj)
    @token_listeners.delete(obj)
  end

  ##
  # Resets the tools

  def reset
    @read       = []
    @tokens     = []
    @unget_read = []
    @nest = 0
  end

  ##
  # Skips whitespace tokens including newlines if +skip_nl+ is true

  def skip_tkspace(skip_nl = true) # HACK dup
    tokens = []

    while TkSPACE === (tk = get_tk) or (skip_nl and TkNL === tk) do
      tokens.push tk
    end

    unget_tk tk
    tokens
  end

  ##
  # Has +obj+ listen to tokens

  def token_listener(obj)
    add_token_listener obj
    yield
  ensure
    remove_token_listener obj
  end

  ##
  # Returns +tk+ to the scanner

  def unget_tk(tk)
    @tokens.unshift tk
    @unget_read.unshift @read.pop

    # Remove this token from any listeners
    @token_listeners.each do |obj|
      obj.pop_token
    end if @token_listeners

    nil
  end

end


lib64/ruby/2.2.0/rdoc/parser/markdown.rb000064400000000674150402106160013500 0ustar00##
# Parse a Markdown format file.  The parsed RDoc::Markup::Document is attached
# as a file comment.

class RDoc::Parser::Markdown < RDoc::Parser

  include RDoc::Parser::Text

  parse_files_matching(/\.(md|markdown)(?:\.[^.]+)?$/)

  ##
  # Creates an Markdown-format TopLevel for the given file.

  def scan
    comment = RDoc::Comment.new @content, @top_level
    comment.format = 'markdown'

    @top_level.comment = comment
  end

end


lib64/ruby/2.2.0/rdoc/parser/ruby.rb000064400000141742150402106160012641 0ustar00##
# This file contains stuff stolen outright from:
#
#   rtags.rb -
#   ruby-lex.rb - ruby lexcal analyzer
#   ruby-token.rb - ruby tokens
#       by Keiju ISHITSUKA (Nippon Rational Inc.)
#

$TOKEN_DEBUG ||= nil

##
# Extracts code elements from a source file returning a TopLevel object
# containing the constituent file elements.
#
# This file is based on rtags
#
# RubyParser understands how to document:
# * classes
# * modules
# * methods
# * constants
# * aliases
# * private, public, protected
# * private_class_function, public_class_function
# * module_function
# * attr, attr_reader, attr_writer, attr_accessor
# * extra accessors given on the command line
# * metaprogrammed methods
# * require
# * include
#
# == Method Arguments
#
#--
# NOTE: I don't think this works, needs tests, remove the paragraph following
# this block when known to work
#
# The parser extracts the arguments from the method definition.  You can
# override this with a custom argument definition using the :args: directive:
#
#   ##
#   # This method tries over and over until it is tired
#
#   def go_go_go(thing_to_try, tries = 10) # :args: thing_to_try
#     puts thing_to_try
#     go_go_go thing_to_try, tries - 1
#   end
#
# If you have a more-complex set of overrides you can use the :call-seq:
# directive:
#++
#
# The parser extracts the arguments from the method definition.  You can
# override this with a custom argument definition using the :call-seq:
# directive:
#
#   ##
#   # This method can be called with a range or an offset and length
#   #
#   # :call-seq:
#   #   my_method(Range)
#   #   my_method(offset, length)
#
#   def my_method(*args)
#   end
#
# The parser extracts +yield+ expressions from method bodies to gather the
# yielded argument names.  If your method manually calls a block instead of
# yielding or you want to override the discovered argument names use
# the :yields: directive:
#
#   ##
#   # My method is awesome
#
#   def my_method(&block) # :yields: happy, times
#     block.call 1, 2
#   end
#
# == Metaprogrammed Methods
#
# To pick up a metaprogrammed method, the parser looks for a comment starting
# with '##' before an identifier:
#
#   ##
#   # This is a meta-programmed method!
#
#   add_my_method :meta_method, :arg1, :arg2
#
# The parser looks at the token after the identifier to determine the name, in
# this example, :meta_method.  If a name cannot be found, a warning is printed
# and 'unknown is used.
#
# You can force the name of a method using the :method: directive:
#
#   ##
#   # :method: some_method!
#
# By default, meta-methods are instance methods.  To indicate that a method is
# a singleton method instead use the :singleton-method: directive:
#
#   ##
#   # :singleton-method:
#
# You can also use the :singleton-method: directive with a name:
#
#   ##
#   # :singleton-method: some_method!
#
# You can define arguments for metaprogrammed methods via either the
# :call-seq:, :arg: or :args: directives.
#
# Additionally you can mark a method as an attribute by
# using :attr:, :attr_reader:, :attr_writer: or :attr_accessor:.  Just like
# for :method:, the name is optional.
#
#   ##
#   # :attr_reader: my_attr_name
#
# == Hidden methods and attributes
#
# You can provide documentation for methods that don't appear using
# the :method:, :singleton-method: and :attr: directives:
#
#   ##
#   # :attr_writer: ghost_writer
#   # There is an attribute here, but you can't see it!
#
#   ##
#   # :method: ghost_method
#   # There is a method here, but you can't see it!
#
#   ##
#   # this is a comment for a regular method
#
#   def regular_method() end
#
# Note that by default, the :method: directive will be ignored if there is a
# standard rdocable item following it.

class RDoc::Parser::Ruby < RDoc::Parser

  parse_files_matching(/\.rbw?$/)

  include RDoc::RubyToken
  include RDoc::TokenStream
  include RDoc::Parser::RubyTools

  ##
  # RDoc::NormalClass type

  NORMAL = "::"

  ##
  # RDoc::SingleClass type

  SINGLE = "<<"

  ##
  # Creates a new Ruby parser.

  def initialize(top_level, file_name, content, options, stats)
    super

    @size = 0
    @token_listeners = nil
    @scanner = RDoc::RubyLex.new content, @options
    @scanner.exception_on_syntax_error = false
    @prev_seek = nil
    @markup = @options.markup
    @track_visibility = :nodoc != @options.visibility

    @encoding = nil
    @encoding = @options.encoding if Object.const_defined? :Encoding

    reset
  end

  ##
  # Retrieves the read token stream and replaces +pattern+ with +replacement+
  # using gsub.  If the result is only a ";" returns an empty string.

  def get_tkread_clean pattern, replacement # :nodoc:
    read = get_tkread.gsub(pattern, replacement).strip
    return '' if read == ';'
    read
  end

  ##
  # Extracts the visibility information for the visibility token +tk+
  # and +single+ class type identifier.
  #
  # Returns the visibility type (a string), the visibility (a symbol) and
  # +singleton+ if the methods following should be converted to singleton
  # methods.

  def get_visibility_information tk, single # :nodoc:
    vis_type  = tk.name
    singleton = single == SINGLE

    vis =
      case vis_type
      when 'private'   then :private
      when 'protected' then :protected
      when 'public'    then :public
      when 'private_class_method' then
        singleton = true
        :private
      when 'public_class_method' then
        singleton = true
        :public
      when 'module_function' then
        singleton = true
        :public
      else
        raise RDoc::Error, "Invalid visibility: #{tk.name}"
      end

    return vis_type, vis, singleton
  end

  ##
  # Look for the first comment in a file that isn't a shebang line.

  def collect_first_comment
    skip_tkspace
    comment = ''
    comment.force_encoding @encoding if @encoding
    first_line = true
    first_comment_tk_class = nil

    tk = get_tk

    while TkCOMMENT === tk
      if first_line and tk.text =~ /\A#!/ then
        skip_tkspace
        tk = get_tk
      elsif first_line and tk.text =~ /\A#\s*-\*-/ then
        first_line = false
        skip_tkspace
        tk = get_tk
      else
        break if first_comment_tk_class and not first_comment_tk_class === tk
        first_comment_tk_class = tk.class

        first_line = false
        comment << tk.text << "\n"
        tk = get_tk

        if TkNL === tk then
          skip_tkspace false
          tk = get_tk
        end
      end
    end

    unget_tk tk

    new_comment comment
  end

  ##
  # Consumes trailing whitespace from the token stream

  def consume_trailing_spaces # :nodoc:
    get_tkread
    skip_tkspace false
  end

  ##
  # Creates a new attribute in +container+ with +name+.

  def create_attr container, single, name, rw, comment # :nodoc:
    att = RDoc::Attr.new get_tkread, name, rw, comment, single == SINGLE
    record_location att

    container.add_attribute att
    @stats.add_attribute att

    att
  end

  ##
  # Creates a module alias in +container+ at +rhs_name+ (or at the top-level
  # for "::") with the name from +constant+.

  def create_module_alias container, constant, rhs_name # :nodoc:
    mod = if rhs_name =~ /^::/ then
            @store.find_class_or_module rhs_name
          else
            container.find_module_named rhs_name
          end

    container.add_module_alias mod, constant.name, @top_level if mod
  end

  ##
  # Aborts with +msg+

  def error(msg)
    msg = make_message msg

    abort msg
  end

  ##
  # Looks for a true or false token.  Returns false if TkFALSE or TkNIL are
  # found.

  def get_bool
    skip_tkspace
    tk = get_tk
    case tk
    when TkTRUE
      true
    when TkFALSE, TkNIL
      false
    else
      unget_tk tk
      true
    end
  end

  ##
  # Look for the name of a class of module (optionally with a leading :: or
  # with :: separated named) and return the ultimate name, the associated
  # container, and the given name (with the ::).

  def get_class_or_module container, ignore_constants = false
    skip_tkspace
    name_t = get_tk
    given_name = ''

    # class ::A -> A is in the top level
    case name_t
    when TkCOLON2, TkCOLON3 then # bug
      name_t = get_tk
      container = @top_level
      given_name << '::'
    end

    skip_tkspace false
    given_name << name_t.name

    while TkCOLON2 === peek_tk do
      prev_container = container
      container = container.find_module_named name_t.name
      container ||=
        if ignore_constants then
          RDoc::Context.new
        else
          c = prev_container.add_module RDoc::NormalModule, name_t.name
          c.ignore unless prev_container.document_children
          @top_level.add_to_classes_or_modules c
          c
        end

      record_location container

      get_tk
      skip_tkspace false
      name_t = get_tk
      given_name << '::' << name_t.name
    end

    skip_tkspace false

    return [container, name_t, given_name]
  end

  ##
  # Return a superclass, which can be either a constant of an expression

  def get_class_specification
    case peek_tk
    when TkSELF then return 'self'
    when TkGVAR then return ''
    end

    res = get_constant

    skip_tkspace false

    get_tkread # empty out read buffer

    tk = get_tk

    case tk
    when TkNL, TkCOMMENT, TkSEMICOLON then
      unget_tk(tk)
      return res
    end

    res += parse_call_parameters(tk)
    res
  end

  ##
  # Parse a constant, which might be qualified by one or more class or module
  # names

  def get_constant
    res = ""
    skip_tkspace false
    tk = get_tk

    while TkCOLON2 === tk or TkCOLON3 === tk or TkCONSTANT === tk do
      res += tk.name
      tk = get_tk
    end

    unget_tk(tk)
    res
  end

  ##
  # Get a constant that may be surrounded by parens

  def get_constant_with_optional_parens
    skip_tkspace false

    nest = 0

    while TkLPAREN === (tk = peek_tk) or TkfLPAREN === tk do
      get_tk
      skip_tkspace
      nest += 1
    end

    name = get_constant

    while nest > 0
      skip_tkspace
      tk = get_tk
      nest -= 1 if TkRPAREN === tk
    end

    name
  end

  ##
  # Little hack going on here. In the statement:
  #
  #   f = 2*(1+yield)
  #
  # We see the RPAREN as the next token, so we need to exit early.  This still
  # won't catch all cases (such as "a = yield + 1"

  def get_end_token tk # :nodoc:
    case tk
    when TkLPAREN, TkfLPAREN
      TkRPAREN
    when TkRPAREN
      nil
    else
      TkNL
    end
  end

  ##
  # Retrieves the method container for a singleton method.

  def get_method_container container, name_t # :nodoc:
    prev_container = container
    container = container.find_module_named(name_t.name)

    unless container then
      constant = prev_container.constants.find do |const|
        const.name == name_t.name
      end

      if constant then
        parse_method_dummy prev_container
        return
      end
    end

    unless container then
      # TODO seems broken, should starting at Object in @store
      obj = name_t.name.split("::").inject(Object) do |state, item|
        state.const_get(item)
      end rescue nil

      type = obj.class == Class ? RDoc::NormalClass : RDoc::NormalModule

      unless [Class, Module].include?(obj.class) then
        warn("Couldn't find #{name_t.name}. Assuming it's a module")
      end

      if type == RDoc::NormalClass then
        sclass = obj.superclass ? obj.superclass.name : nil
        container = prev_container.add_class type, name_t.name, sclass
      else
        container = prev_container.add_module type, name_t.name
      end

      record_location container
    end

    container
  end

  ##
  # Extracts a name or symbol from the token stream.

  def get_symbol_or_name
    tk = get_tk
    case tk
    when TkSYMBOL then
      text = tk.text.sub(/^:/, '')

      if TkASSIGN === peek_tk then
        get_tk
        text << '='
      end

      text
    when TkId, TkOp then
      tk.name
    when TkAMPER,
         TkDSTRING,
         TkSTAR,
         TkSTRING then
      tk.text
    else
      raise RDoc::Error, "Name or symbol expected (got #{tk})"
    end
  end

  def stop_at_EXPR_END # :nodoc:
    @scanner.lex_state == :EXPR_END || !@scanner.continue
  end

  ##
  # Marks containers between +container+ and +ancestor+ as ignored

  def suppress_parents container, ancestor # :nodoc:
    while container and container != ancestor do
      container.suppress unless container.documented?
      container = container.parent
    end
  end

  ##
  # Look for directives in a normal comment block:
  #
  #   # :stopdoc:
  #   # Don't display comment from this point forward
  #
  # This routine modifies its +comment+ parameter.

  def look_for_directives_in context, comment
    @preprocess.handle comment, context do |directive, param|
      case directive
      when 'method', 'singleton-method',
           'attr', 'attr_accessor', 'attr_reader', 'attr_writer' then
        false # handled elsewhere
      when 'section' then
        context.set_current_section param, comment.dup
        comment.text = ''
        break
      end
    end

    remove_private_comments comment
  end

  ##
  # Adds useful info about the parser to +message+

  def make_message message
    prefix = "#{@file_name}:"

    prefix << "#{@scanner.line_no}:#{@scanner.char_no}:" if @scanner

    "#{prefix} #{message}"
  end

  ##
  # Creates a comment with the correct format

  def new_comment comment
    c = RDoc::Comment.new comment, @top_level
    c.format = @markup
    c
  end

  ##
  # Creates an RDoc::Attr for the name following +tk+, setting the comment to
  # +comment+.

  def parse_attr(context, single, tk, comment)
    offset  = tk.seek
    line_no = tk.line_no

    args = parse_symbol_arg 1
    if args.size > 0 then
      name = args[0]
      rw = "R"
      skip_tkspace false
      tk = get_tk

      if TkCOMMA === tk then
        rw = "RW" if get_bool
      else
        unget_tk tk
      end

      att = create_attr context, single, name, rw, comment
      att.offset = offset
      att.line   = line_no

      read_documentation_modifiers att, RDoc::ATTR_MODIFIERS
    else
      warn "'attr' ignored - looks like a variable"
    end
  end

  ##
  # Creates an RDoc::Attr for each attribute listed after +tk+, setting the
  # comment for each to +comment+.

  def parse_attr_accessor(context, single, tk, comment)
    offset  = tk.seek
    line_no = tk.line_no

    args = parse_symbol_arg
    rw = "?"

    tmp = RDoc::CodeObject.new
    read_documentation_modifiers tmp, RDoc::ATTR_MODIFIERS
    # TODO In most other places we let the context keep track of document_self
    # and add found items appropriately but here we do not.  I'm not sure why.
    return if @track_visibility and not tmp.document_self

    case tk.name
    when "attr_reader"   then rw = "R"
    when "attr_writer"   then rw = "W"
    when "attr_accessor" then rw = "RW"
    else
      rw = '?'
    end

    for name in args
      att = create_attr context, single, name, rw, comment
      att.offset = offset
      att.line   = line_no
    end
  end

  ##
  # Parses an +alias+ in +context+ with +comment+

  def parse_alias(context, single, tk, comment)
    offset  = tk.seek
    line_no = tk.line_no

    skip_tkspace

    if TkLPAREN === peek_tk then
      get_tk
      skip_tkspace
    end

    new_name = get_symbol_or_name

    @scanner.lex_state = :EXPR_FNAME

    skip_tkspace
    if TkCOMMA === peek_tk then
      get_tk
      skip_tkspace
    end

    begin
      old_name = get_symbol_or_name
    rescue RDoc::Error
      return
    end

    al = RDoc::Alias.new(get_tkread, old_name, new_name, comment,
                         single == SINGLE)
    record_location al
    al.offset = offset
    al.line   = line_no

    read_documentation_modifiers al, RDoc::ATTR_MODIFIERS
    context.add_alias al
    @stats.add_alias al

    al
  end

  ##
  # Extracts call parameters from the token stream.

  def parse_call_parameters(tk)
    end_token = case tk
                when TkLPAREN, TkfLPAREN
                  TkRPAREN
                when TkRPAREN
                  return ""
                else
                  TkNL
                end
    nest = 0

    loop do
      case tk
      when TkSEMICOLON
        break
      when TkLPAREN, TkfLPAREN
        nest += 1
      when end_token
        if end_token == TkRPAREN
          nest -= 1
          break if @scanner.lex_state == :EXPR_END and nest <= 0
        else
          break unless @scanner.continue
        end
      when TkCOMMENT, TkASSIGN, TkOPASGN
        unget_tk(tk)
        break
      when nil then
        break
      end
      tk = get_tk
    end

    get_tkread_clean "\n", " "
  end

  ##
  # Parses a class in +context+ with +comment+

  def parse_class container, single, tk, comment
    offset  = tk.seek
    line_no = tk.line_no

    declaration_context = container
    container, name_t, given_name = get_class_or_module container

    cls =
      case name_t
      when TkCONSTANT
        parse_class_regular container, declaration_context, single,
          name_t, given_name, comment
      when TkLSHFT
        case name = get_class_specification
        when 'self', container.name
          parse_statements container, SINGLE
          return # don't update offset or line
        else
          parse_class_singleton container, name, comment
        end
      else
        warn "Expected class name or '<<'. Got #{name_t.class}: #{name_t.text.inspect}"
        return
      end

    cls.offset = offset
    cls.line   = line_no

    cls
  end

  ##
  # Parses and creates a regular class

  def parse_class_regular container, declaration_context, single, # :nodoc:
                          name_t, given_name, comment
    superclass = '::Object'

    if given_name =~ /^::/ then
      declaration_context = @top_level
      given_name = $'
    end

    if TkLT === peek_tk then
      get_tk
      skip_tkspace
      superclass = get_class_specification
      superclass = '(unknown)' if superclass.empty?
    end

    cls_type = single == SINGLE ? RDoc::SingleClass : RDoc::NormalClass
    cls = declaration_context.add_class cls_type, given_name, superclass
    cls.ignore unless container.document_children

    read_documentation_modifiers cls, RDoc::CLASS_MODIFIERS
    record_location cls

    cls.add_comment comment, @top_level

    @top_level.add_to_classes_or_modules cls
    @stats.add_class cls

    suppress_parents container, declaration_context unless cls.document_self

    parse_statements cls

    cls
  end

  ##
  # Parses a singleton class in +container+ with the given +name+ and
  # +comment+.

  def parse_class_singleton container, name, comment # :nodoc:
    other = @store.find_class_named name

    unless other then
      if name =~ /^::/ then
        name = $'
        container = @top_level
      end

      other = container.add_module RDoc::NormalModule, name
      record_location other

      # class << $gvar
      other.ignore if name.empty?

      other.add_comment comment, @top_level
    end

    # notify :nodoc: all if not a constant-named class/module
    # (and remove any comment)
    unless name =~ /\A(::)?[A-Z]/ then
      other.document_self = nil
      other.document_children = false
      other.clear_comment
    end

    @top_level.add_to_classes_or_modules other
    @stats.add_class other

    read_documentation_modifiers other, RDoc::CLASS_MODIFIERS
    parse_statements(other, SINGLE)

    other
  end

  ##
  # Parses a constant in +context+ with +comment+.  If +ignore_constants+ is
  # true, no found constants will be added to RDoc.

  def parse_constant container, tk, comment, ignore_constants = false
    offset  = tk.seek
    line_no = tk.line_no

    name = tk.name
    skip_tkspace false

    return unless name =~ /^\w+$/

    eq_tk = get_tk

    if TkCOLON2 === eq_tk then
      unget_tk eq_tk
      unget_tk tk

      container, name_t, = get_class_or_module container, ignore_constants

      name = name_t.name

      eq_tk = get_tk
    end

    unless TkASSIGN === eq_tk then
      unget_tk eq_tk
      return false
    end

    if TkGT === peek_tk then
      unget_tk eq_tk
      return
    end

    value = ''
    con = RDoc::Constant.new name, value, comment

    body = parse_constant_body container, con

    return unless body

    value.replace body
    record_location con
    con.offset = offset
    con.line   = line_no
    read_documentation_modifiers con, RDoc::CONSTANT_MODIFIERS

    @stats.add_constant con
    container.add_constant con

    true
  end

  def parse_constant_body container, constant # :nodoc:
    nest     = 0
    rhs_name = ''

    get_tkread

    tk = get_tk

    loop do
      case tk
      when TkSEMICOLON then
        break if nest <= 0
      when TkLPAREN, TkfLPAREN, TkLBRACE, TkfLBRACE, TkLBRACK, TkfLBRACK,
           TkDO, TkIF, TkUNLESS, TkCASE, TkDEF, TkBEGIN then
        nest += 1
      when TkRPAREN, TkRBRACE, TkRBRACK, TkEND then
        nest -= 1
      when TkCOMMENT then
        if nest <= 0 and stop_at_EXPR_END then
          unget_tk tk
          break
        else
          unget_tk tk
          read_documentation_modifiers constant, RDoc::CONSTANT_MODIFIERS
        end
      when TkCONSTANT then
        rhs_name << tk.name

        if nest <= 0 and TkNL === peek_tk then
          create_module_alias container, constant, rhs_name
          break
        end
      when TkNL then
        if nest <= 0 and stop_at_EXPR_END then
          unget_tk tk
          break
        end
      when TkCOLON2, TkCOLON3 then
        rhs_name << '::'
      when nil then
        break
      end
      tk = get_tk
    end

    get_tkread_clean(/^[ \t]+/, '')
  end

  ##
  # Generates an RDoc::Method or RDoc::Attr from +comment+ by looking for
  # :method: or :attr: directives in +comment+.

  def parse_comment container, tk, comment
    return parse_comment_tomdoc container, tk, comment if @markup == 'tomdoc'
    column  = tk.char_no
    offset  = tk.seek
    line_no = tk.line_no

    text = comment.text

    singleton = !!text.sub!(/(^# +:?)(singleton-)(method:)/, '\1\3')

    co =
      if text.sub!(/^# +:?method: *(\S*).*?\n/i, '') then
        parse_comment_ghost container, text, $1, column, line_no, comment
      elsif text.sub!(/# +:?(attr(_reader|_writer|_accessor)?): *(\S*).*?\n/i, '') then
        parse_comment_attr container, $1, $3, comment
      end

    if co then
      co.singleton = singleton
      co.offset    = offset
      co.line      = line_no
    end

    true
  end

  ##
  # Parse a comment that is describing an attribute in +container+ with the
  # given +name+ and +comment+.

  def parse_comment_attr container, type, name, comment # :nodoc:
    return if name.empty?

    rw = case type
         when 'attr_reader' then 'R'
         when 'attr_writer' then 'W'
         else 'RW'
         end

    create_attr container, NORMAL, name, rw, comment
  end

  def parse_comment_ghost container, text, name, column, line_no, # :nodoc:
                          comment
    name = nil if name.empty?

    meth = RDoc::GhostMethod.new get_tkread, name
    record_location meth

    meth.start_collecting_tokens
    indent = TkSPACE.new 0, 1, 1
    indent.set_text " " * column

    position_comment = TkCOMMENT.new 0, line_no, 1
    position_comment.set_text "# File #{@top_level.relative_name}, line #{line_no}"
    meth.add_tokens [position_comment, NEWLINE_TOKEN, indent]

    meth.params =
      if text.sub!(/^#\s+:?args?:\s*(.*?)\s*$/i, '') then
        $1
      else
        ''
      end

    comment.normalize
    comment.extract_call_seq meth

    return unless meth.name

    container.add_method meth

    meth.comment = comment

    @stats.add_method meth

    meth
  end

  ##
  # Creates an RDoc::Method on +container+ from +comment+ if there is a
  # Signature section in the comment

  def parse_comment_tomdoc container, tk, comment
    return unless signature = RDoc::TomDoc.signature(comment)
    offset  = tk.seek
    line_no = tk.line_no

    name, = signature.split %r%[ \(]%, 2

    meth = RDoc::GhostMethod.new get_tkread, name
    record_location meth
    meth.offset    = offset
    meth.line      = line_no

    meth.start_collecting_tokens
    indent = TkSPACE.new 0, 1, 1
    indent.set_text " " * offset

    position_comment = TkCOMMENT.new 0, line_no, 1
    position_comment.set_text "# File #{@top_level.relative_name}, line #{line_no}"
    meth.add_tokens [position_comment, NEWLINE_TOKEN, indent]

    meth.call_seq = signature

    comment.normalize

    return unless meth.name

    container.add_method meth

    meth.comment = comment

    @stats.add_method meth
  end

  ##
  # Parses an +include+ or +extend+, indicated by the +klass+ and adds it to
  # +container+ # with +comment+

  def parse_extend_or_include klass, container, comment # :nodoc:
    loop do
      skip_tkspace_comment

      name = get_constant_with_optional_parens

      unless name.empty? then
        obj = container.add klass, name, comment
        record_location obj
      end

      return unless TkCOMMA === peek_tk

      get_tk
    end
  end

  ##
  # Parses identifiers that can create new methods or change visibility.
  #
  # Returns true if the comment was not consumed.

  def parse_identifier container, single, tk, comment # :nodoc:
    case tk.name
    when 'private', 'protected', 'public', 'private_class_method',
         'public_class_method', 'module_function' then
      parse_visibility container, single, tk
      return true
    when 'attr' then
      parse_attr container, single, tk, comment
    when /^attr_(reader|writer|accessor)$/ then
      parse_attr_accessor container, single, tk, comment
    when 'alias_method' then
      parse_alias container, single, tk, comment
    when 'require', 'include' then
      # ignore
    else
      if comment.text =~ /\A#\#$/ then
        case comment.text
        when /^# +:?attr(_reader|_writer|_accessor)?:/ then
          parse_meta_attr container, single, tk, comment
        else
          method = parse_meta_method container, single, tk, comment
          method.params = container.params if
            container.params
          method.block_params = container.block_params if
            container.block_params
        end
      end
    end

    false
  end

  ##
  # Parses a meta-programmed attribute and creates an RDoc::Attr.
  #
  # To create foo and bar attributes on class C with comment "My attributes":
  #
  #   class C
  #
  #     ##
  #     # :attr:
  #     #
  #     # My attributes
  #
  #     my_attr :foo, :bar
  #
  #   end
  #
  # To create a foo attribute on class C with comment "My attribute":
  #
  #   class C
  #
  #     ##
  #     # :attr: foo
  #     #
  #     # My attribute
  #
  #     my_attr :foo, :bar
  #
  #   end

  def parse_meta_attr(context, single, tk, comment)
    args = parse_symbol_arg
    rw = "?"

    # If nodoc is given, don't document any of them

    tmp = RDoc::CodeObject.new
    read_documentation_modifiers tmp, RDoc::ATTR_MODIFIERS

    if comment.text.sub!(/^# +:?(attr(_reader|_writer|_accessor)?): *(\S*).*?\n/i, '') then
      rw = case $1
           when 'attr_reader' then 'R'
           when 'attr_writer' then 'W'
           else 'RW'
           end
      name = $3 unless $3.empty?
    end

    if name then
      att = create_attr context, single, name, rw, comment
    else
      args.each do |attr_name|
        att = create_attr context, single, attr_name, rw, comment
      end
    end

    att
  end

  ##
  # Parses a meta-programmed method

  def parse_meta_method(container, single, tk, comment)
    column  = tk.char_no
    offset  = tk.seek
    line_no = tk.line_no

    start_collecting_tokens
    add_token tk
    add_token_listener self

    skip_tkspace false

    singleton = !!comment.text.sub!(/(^# +:?)(singleton-)(method:)/, '\1\3')

    name = parse_meta_method_name comment, tk

    return unless name

    meth = RDoc::MetaMethod.new get_tkread, name
    record_location meth
    meth.offset = offset
    meth.line   = line_no
    meth.singleton = singleton

    remove_token_listener self

    meth.start_collecting_tokens
    indent = TkSPACE.new 0, 1, 1
    indent.set_text " " * column

    position_comment = TkCOMMENT.new 0, line_no, 1
    position_comment.value = "# File #{@top_level.relative_name}, line #{line_no}"
    meth.add_tokens [position_comment, NEWLINE_TOKEN, indent]
    meth.add_tokens @token_stream

    parse_meta_method_params container, single, meth, tk, comment

    meth.comment = comment

    @stats.add_method meth

    meth
  end

  ##
  # Parses the name of a metaprogrammed method.  +comment+ is used to
  # determine the name while +tk+ is used in an error message if the name
  # cannot be determined.

  def parse_meta_method_name comment, tk # :nodoc:
    if comment.text.sub!(/^# +:?method: *(\S*).*?\n/i, '') then
      return $1 unless $1.empty?
    end

    name_t = get_tk

    case name_t
    when TkSYMBOL then
      name_t.text[1..-1]
    when TkSTRING then
      name_t.value[1..-2]
    when TkASSIGN then # ignore
      remove_token_listener self

      nil
    else
      warn "unknown name token #{name_t.inspect} for meta-method '#{tk.name}'"
      'unknown'
    end
  end

  ##
  # Parses the parameters and block for a meta-programmed method.

  def parse_meta_method_params container, single, meth, tk, comment # :nodoc:
    token_listener meth do
      meth.params = ''

      comment.normalize
      comment.extract_call_seq meth

      container.add_method meth

      last_tk = tk

      while tk = get_tk do
        case tk
        when TkSEMICOLON then
          break
        when TkNL then
          break unless last_tk and TkCOMMA === last_tk
        when TkSPACE then
          # expression continues
        when TkDO then
          parse_statements container, single, meth
          break
        else
          last_tk = tk
        end
      end
    end
  end

  ##
  # Parses a normal method defined by +def+

  def parse_method(container, single, tk, comment)
    singleton = nil
    added_container = false
    name = nil
    column  = tk.char_no
    offset  = tk.seek
    line_no = tk.line_no

    start_collecting_tokens
    add_token tk

    token_listener self do
      prev_container = container
      name, container, singleton = parse_method_name container
      added_container = container != prev_container
    end

    return unless name

    meth = RDoc::AnyMethod.new get_tkread, name
    meth.singleton = single == SINGLE ? true : singleton

    record_location meth
    meth.offset = offset
    meth.line   = line_no

    meth.start_collecting_tokens
    indent = TkSPACE.new 0, 1, 1
    indent.set_text " " * column

    token = TkCOMMENT.new 0, line_no, 1
    token.set_text "# File #{@top_level.relative_name}, line #{line_no}"
    meth.add_tokens [token, NEWLINE_TOKEN, indent]
    meth.add_tokens @token_stream

    parse_method_params_and_body container, single, meth, added_container

    comment.normalize
    comment.extract_call_seq meth

    meth.comment = comment

    @stats.add_method meth
  end

  ##
  # Parses the parameters and body of +meth+

  def parse_method_params_and_body container, single, meth, added_container
    token_listener meth do
      @scanner.continue = false
      parse_method_parameters meth

      if meth.document_self or not @track_visibility then
        container.add_method meth
      elsif added_container then
        container.document_self = false
      end

      # Having now read the method parameters and documentation modifiers, we
      # now know whether we have to rename #initialize to ::new

      if meth.name == "initialize" && !meth.singleton then
        if meth.dont_rename_initialize then
          meth.visibility = :protected
        else
          meth.singleton = true
          meth.name = "new"
          meth.visibility = :public
        end
      end

      parse_statements container, single, meth
    end
  end

  ##
  # Parses a method that needs to be ignored.

  def parse_method_dummy container
    dummy = RDoc::Context.new
    dummy.parent = container
    dummy.store  = container.store
    skip_method dummy
  end

  ##
  # Parses the name of a method in +container+.
  #
  # Returns the method name, the container it is in (for def Foo.name) and if
  # it is a singleton or regular method.

  def parse_method_name container # :nodoc:
    @scanner.lex_state = :EXPR_FNAME

    skip_tkspace
    name_t = get_tk
    back_tk = skip_tkspace
    singleton = false

    case dot = get_tk
    when TkDOT, TkCOLON2 then
      singleton = true

      name, container = parse_method_name_singleton container, name_t
    else
      unget_tk dot
      back_tk.reverse_each do |token|
        unget_tk token
      end

      name = parse_method_name_regular container, name_t
    end

    return name, container, singleton
  end

  ##
  # For the given +container+ and initial name token +name_t+ the method name
  # is parsed from the token stream for a regular method.

  def parse_method_name_regular container, name_t # :nodoc:
    case name_t
    when TkSTAR, TkAMPER then
      name_t.text
    else
      unless name_t.respond_to? :name then
        warn "expected method name token, . or ::, got #{name_t.inspect}"
        skip_method container
        return
      end
      name_t.name
    end
  end

  ##
  # For the given +container+ and initial name token +name_t+ the method name
  # and the new +container+ (if necessary) are parsed from the token stream
  # for a singleton method.

  def parse_method_name_singleton container, name_t # :nodoc:
    @scanner.lex_state = :EXPR_FNAME
    skip_tkspace
    name_t2 = get_tk

    name =
      case name_t
      when TkSELF, TkMOD then
        case name_t2
          # NOTE: work around '[' being consumed early and not being re-tokenized
          # as a TkAREF
        when TkfLBRACK then
          get_tk
          '[]'
        else
          name_t2.name
        end
      when TkCONSTANT then
        name = name_t2.name

        container = get_method_container container, name_t

        return unless container

        name
      when TkIDENTIFIER, TkIVAR, TkGVAR then
        parse_method_dummy container

        nil
      when TkTRUE, TkFALSE, TkNIL then
        klass_name = "#{name_t.name.capitalize}Class"
        container = @store.find_class_named klass_name
        container ||= @top_level.add_class RDoc::NormalClass, klass_name

        name_t2.name
      else
        warn "unexpected method name token #{name_t.inspect}"
        # break
        skip_method container

        nil
      end

    return name, container
  end

  ##
  # Extracts +yield+ parameters from +method+

  def parse_method_or_yield_parameters(method = nil,
                                       modifiers = RDoc::METHOD_MODIFIERS)
    skip_tkspace false
    tk = get_tk
    end_token = get_end_token tk
    return '' unless end_token

    nest = 0

    loop do
      case tk
      when TkSEMICOLON then
        break if nest == 0
      when TkLBRACE, TkfLBRACE then
        nest += 1
      when TkRBRACE then
        nest -= 1
        if nest <= 0
          # we might have a.each { |i| yield i }
          unget_tk(tk) if nest < 0
          break
        end
      when TkLPAREN, TkfLPAREN then
        nest += 1
      when end_token then
        if end_token == TkRPAREN
          nest -= 1
          break if nest <= 0
        else
          break unless @scanner.continue
        end
      when TkRPAREN then
        nest -= 1
      when method && method.block_params.nil? && TkCOMMENT then
        unget_tk tk
        read_documentation_modifiers method, modifiers
        @read.pop
      when TkCOMMENT then
        @read.pop
      when nil then
        break
      end
      tk = get_tk
    end

    get_tkread_clean(/\s+/, ' ')
  end

  ##
  # Capture the method's parameters. Along the way, look for a comment
  # containing:
  #
  #    # yields: ....
  #
  # and add this as the block_params for the method

  def parse_method_parameters method
    res = parse_method_or_yield_parameters method

    res = "(#{res})" unless res =~ /\A\(/
    method.params = res unless method.params

    return if  method.block_params

    skip_tkspace false
    read_documentation_modifiers method, RDoc::METHOD_MODIFIERS
  end

  ##
  # Parses an RDoc::NormalModule in +container+ with +comment+

  def parse_module container, single, tk, comment
    container, name_t, = get_class_or_module container

    name = name_t.name

    mod = container.add_module RDoc::NormalModule, name
    mod.ignore unless container.document_children
    record_location mod

    read_documentation_modifiers mod, RDoc::CLASS_MODIFIERS
    mod.add_comment comment, @top_level
    parse_statements mod

    @stats.add_module mod
  end

  ##
  # Parses an RDoc::Require in +context+ containing +comment+

  def parse_require(context, comment)
    skip_tkspace_comment
    tk = get_tk

    if TkLPAREN === tk then
      skip_tkspace_comment
      tk = get_tk
    end

    name = tk.text if TkSTRING === tk

    if name then
      @top_level.add_require RDoc::Require.new(name, comment)
    else
      unget_tk tk
    end
  end

  ##
  # Parses a rescue

  def parse_rescue
    skip_tkspace false

    while tk = get_tk
      case tk
      when TkNL, TkSEMICOLON then
        break
      when TkCOMMA then
        skip_tkspace false

        get_tk if TkNL === peek_tk
      end

      skip_tkspace false
    end
  end

  ##
  # The core of the Ruby parser.

  def parse_statements(container, single = NORMAL, current_method = nil,
                       comment = new_comment(''))
    raise 'no' unless RDoc::Comment === comment
    comment.force_encoding @encoding if @encoding

    nest = 1
    save_visibility = container.visibility

    non_comment_seen = true

    while tk = get_tk do
      keep_comment = false
      try_parse_comment = false

      non_comment_seen = true unless TkCOMMENT === tk

      case tk
      when TkNL then
        skip_tkspace
        tk = get_tk

        if TkCOMMENT === tk then
          if non_comment_seen then
            # Look for RDoc in a comment about to be thrown away
            non_comment_seen = parse_comment container, tk, comment unless
              comment.empty?

            comment = ''
            comment.force_encoding @encoding if @encoding
          end

          while TkCOMMENT === tk do
            comment << tk.text << "\n"

            tk = get_tk

            if TkNL === tk then
              skip_tkspace false # leading spaces
              tk = get_tk
            end
          end

          comment = new_comment comment

          unless comment.empty? then
            look_for_directives_in container, comment

            if container.done_documenting then
              throw :eof if RDoc::TopLevel === container
              container.ongoing_visibility = save_visibility
            end
          end

          keep_comment = true
        else
          non_comment_seen = true
        end

        unget_tk tk
        keep_comment = true

      when TkCLASS then
        parse_class container, single, tk, comment

      when TkMODULE then
        parse_module container, single, tk, comment

      when TkDEF then
        parse_method container, single, tk, comment

      when TkCONSTANT then
        unless parse_constant container, tk, comment, current_method then
          try_parse_comment = true
        end

      when TkALIAS then
        parse_alias container, single, tk, comment unless current_method

      when TkYIELD then
        if current_method.nil? then
          warn "Warning: yield outside of method" if container.document_self
        else
          parse_yield container, single, tk, current_method
        end

      # Until and While can have a 'do', which shouldn't increase the nesting.
      # We can't solve the general case, but we can handle most occurrences by
      # ignoring a do at the end of a line.

      when TkUNTIL, TkWHILE then
        nest += 1
        skip_optional_do_after_expression

      # 'for' is trickier
      when TkFOR then
        nest += 1
        skip_for_variable
        skip_optional_do_after_expression

      when TkCASE, TkDO, TkIF, TkUNLESS, TkBEGIN then
        nest += 1

      when TkSUPER then
        current_method.calls_super = true if current_method

      when TkRESCUE then
        parse_rescue

      when TkIDENTIFIER then
        if nest == 1 and current_method.nil? then
          keep_comment = parse_identifier container, single, tk, comment
        end

        case tk.name
        when "require" then
          parse_require container, comment
        when "include" then
          parse_extend_or_include RDoc::Include, container, comment
        when "extend" then
          parse_extend_or_include RDoc::Extend, container, comment
        end

      when TkEND then
        nest -= 1
        if nest == 0 then
          read_documentation_modifiers container, RDoc::CLASS_MODIFIERS
          container.ongoing_visibility = save_visibility

          parse_comment container, tk, comment unless comment.empty?

          return
        end
      else
        try_parse_comment = nest == 1
      end

      if try_parse_comment then
        non_comment_seen = parse_comment container, tk, comment unless
          comment.empty?

        keep_comment = false
      end

      unless keep_comment then
        comment = new_comment ''
        comment.force_encoding @encoding if @encoding
        container.params = nil
        container.block_params = nil
      end

      consume_trailing_spaces
    end

    container.params = nil
    container.block_params = nil
  end

  ##
  # Parse up to +no+ symbol arguments

  def parse_symbol_arg(no = nil)
    skip_tkspace_comment

    case tk = get_tk
    when TkLPAREN
      parse_symbol_arg_paren no
    else
      parse_symbol_arg_space no, tk
    end
  end

  ##
  # Parses up to +no+ symbol arguments surrounded by () and places them in
  # +args+.

  def parse_symbol_arg_paren no # :nodoc:
    args = []

    loop do
      skip_tkspace_comment
      if tk1 = parse_symbol_in_arg
        args.push tk1
        break if no and args.size >= no
      end

      skip_tkspace_comment
      case tk2 = get_tk
      when TkRPAREN
        break
      when TkCOMMA
      else
        warn("unexpected token: '#{tk2.inspect}'") if $DEBUG_RDOC
        break
      end
    end

    args
  end

  ##
  # Parses up to +no+ symbol arguments separated by spaces and places them in
  # +args+.

  def parse_symbol_arg_space no, tk # :nodoc:
    args = []

    unget_tk tk
    if tk = parse_symbol_in_arg
      args.push tk
      return args if no and args.size >= no
    end

    loop do
      skip_tkspace false

      tk1 = get_tk
      unless TkCOMMA === tk1 then
        unget_tk tk1
        break
      end

      skip_tkspace_comment
      if tk = parse_symbol_in_arg
        args.push tk
        break if no and args.size >= no
      end
    end

    args
  end

  ##
  # Returns symbol text from the next token

  def parse_symbol_in_arg
    case tk = get_tk
    when TkSYMBOL
      tk.text.sub(/^:/, '')
    when TkSTRING
      eval @read[-1]
    when TkDSTRING, TkIDENTIFIER then
      nil # ignore
    else
      warn("Expected symbol or string, got #{tk.inspect}") if $DEBUG_RDOC
      nil
    end
  end

  ##
  # Parses statements in the top-level +container+

  def parse_top_level_statements container
    comment = collect_first_comment

    look_for_directives_in container, comment

    throw :eof if container.done_documenting

    @markup = comment.format

    # HACK move if to RDoc::Context#comment=
    container.comment = comment if container.document_self unless comment.empty?

    parse_statements container, NORMAL, nil, comment
  end

  ##
  # Determines the visibility in +container+ from +tk+

  def parse_visibility(container, single, tk)
    vis_type, vis, singleton = get_visibility_information tk, single

    skip_tkspace_comment false

    case peek_tk
      # Ryan Davis suggested the extension to ignore modifiers, because he
      # often writes
      #
      #   protected unless $TESTING
      #
    when TkNL, TkUNLESS_MOD, TkIF_MOD, TkSEMICOLON then
      container.ongoing_visibility = vis
    else
      update_visibility container, vis_type, vis, singleton
    end
  end

  ##
  # Determines the block parameter for +context+

  def parse_yield(context, single, tk, method)
    return if method.block_params

    get_tkread
    @scanner.continue = false
    method.block_params = parse_method_or_yield_parameters
  end

  ##
  # Directives are modifier comments that can appear after class, module, or
  # method names. For example:
  #
  #   def fred # :yields: a, b
  #
  # or:
  #
  #   class MyClass # :nodoc:
  #
  # We return the directive name and any parameters as a two element array if
  # the name is in +allowed+.  A directive can be found anywhere up to the end
  # of the current line.

  def read_directive allowed
    tokens = []

    while tk = get_tk do
      tokens << tk

      case tk
      when TkNL, TkDEF then
        return
      when TkCOMMENT then
        return unless tk.text =~ /\s*:?([\w-]+):\s*(.*)/

        directive = $1.downcase

        return [directive, $2] if allowed.include? directive

        return
      end
    end
  ensure
    unless tokens.length == 1 and TkCOMMENT === tokens.first then
      tokens.reverse_each do |token|
        unget_tk token
      end
    end
  end

  ##
  # Handles directives following the definition for +context+ (any
  # RDoc::CodeObject) if the directives are +allowed+ at this point.
  #
  # See also RDoc::Markup::PreProcess#handle_directive

  def read_documentation_modifiers context, allowed
    directive, value = read_directive allowed

    return unless directive

    @preprocess.handle_directive '', directive, value, context do |dir, param|
      if %w[notnew not_new not-new].include? dir then
        context.dont_rename_initialize = true

        true
      end
    end
  end

  ##
  # Records the location of this +container+ in the file for this parser and
  # adds it to the list of classes and modules in the file.

  def record_location container # :nodoc:
    case container
    when RDoc::ClassModule then
      @top_level.add_to_classes_or_modules container
    end

    container.record_location @top_level
  end

  ##
  # Removes private comments from +comment+
  #--
  # TODO remove

  def remove_private_comments comment
    comment.remove_private
  end

  ##
  # Scans this Ruby file for Ruby constructs

  def scan
    reset

    catch :eof do
      begin
        parse_top_level_statements @top_level

      rescue StandardError => e
        bytes = ''

        20.times do @scanner.ungetc end
        count = 0
        60.times do |i|
          count = i
          byte = @scanner.getc
          break unless byte
          bytes << byte
        end
        count -= 20
        count.times do @scanner.ungetc end

        $stderr.puts <<-EOF

#{self.class} failure around line #{@scanner.line_no} of
#{@file_name}

        EOF

        unless bytes.empty? then
          $stderr.puts
          $stderr.puts bytes.inspect
        end

        raise e
      end
    end

    @top_level
  end

  ##
  # while, until, and for have an optional do

  def skip_optional_do_after_expression
    skip_tkspace false
    tk = get_tk
    end_token = get_end_token tk

    b_nest = 0
    nest = 0
    @scanner.continue = false

    loop do
      case tk
      when TkSEMICOLON then
        break if b_nest.zero?
      when TkLPAREN, TkfLPAREN then
        nest += 1
      when TkBEGIN then
        b_nest += 1
      when TkEND then
        b_nest -= 1
      when TkDO
        break if nest.zero?
      when end_token then
        if end_token == TkRPAREN
          nest -= 1
          break if @scanner.lex_state == :EXPR_END and nest.zero?
        else
          break unless @scanner.continue
        end
      when nil then
        break
      end
      tk = get_tk
    end

    skip_tkspace false

    get_tk if TkDO === peek_tk
  end

  ##
  # skip the var [in] part of a 'for' statement

  def skip_for_variable
    skip_tkspace false
    get_tk
    skip_tkspace false
    tk = get_tk
    unget_tk(tk) unless TkIN === tk
  end

  ##
  # Skips the next method in +container+

  def skip_method container
    meth = RDoc::AnyMethod.new "", "anon"
    parse_method_parameters meth
    parse_statements container, false, meth
  end

  ##
  # Skip spaces until a comment is found

  def skip_tkspace_comment(skip_nl = true)
    loop do
      skip_tkspace skip_nl
      return unless TkCOMMENT === peek_tk
      get_tk
    end
  end

  ##
  # Updates visibility in +container+ from +vis_type+ and +vis+.

  def update_visibility container, vis_type, vis, singleton # :nodoc:
    new_methods = []

    case vis_type
    when 'module_function' then
      args = parse_symbol_arg
      container.set_visibility_for args, :private, false

      container.methods_matching args do |m|
        s_m = m.dup
        record_location s_m
        s_m.singleton = true
        new_methods << s_m
      end
    when 'public_class_method', 'private_class_method' then
      args = parse_symbol_arg

      container.methods_matching args, true do |m|
        if m.parent != container then
          m = m.dup
          record_location m
          new_methods << m
        end

        m.visibility = vis
      end
    else
      args = parse_symbol_arg
      container.set_visibility_for args, vis, singleton
    end

    new_methods.each do |method|
      case method
      when RDoc::AnyMethod then
        container.add_method method
      when RDoc::Attr then
        container.add_attribute method
      end
      method.visibility = vis
    end
  end

  ##
  # Prints +message+ to +$stderr+ unless we're being quiet

  def warn message
    @options.warn make_message message
  end

end

lib64/ruby/2.2.0/rdoc/parser/changelog.rb000064400000011355150402106160013603 0ustar00require 'time'

##
# A ChangeLog file parser.
#
# This parser converts a ChangeLog into an RDoc::Markup::Document.  When
# viewed as HTML a ChangeLog page will have an entry for each day's entries in
# the sidebar table of contents.
#
# This parser is meant to parse the MRI ChangeLog, but can be used to parse any
# {GNU style Change
# Log}[http://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html].

class RDoc::Parser::ChangeLog < RDoc::Parser

  include RDoc::Parser::Text

  parse_files_matching(/(\/|\\|\A)ChangeLog[^\/\\]*\z/)

  ##
  # Attaches the +continuation+ of the previous line to the +entry_body+.
  #
  # Continued function listings are joined together as a single entry.
  # Continued descriptions are joined to make a single paragraph.

  def continue_entry_body entry_body, continuation
    return unless last = entry_body.last

    if last =~ /\)\s*\z/ and continuation =~ /\A\(/ then
      last.sub!(/\)\s*\z/, ',')
      continuation.sub!(/\A\(/, '')
    end

    if last =~ /\s\z/ then
      last << continuation
    else
      last << ' ' << continuation
    end
  end

  ##
  # Creates an RDoc::Markup::Document given the +groups+ of ChangeLog entries.

  def create_document groups
    doc = RDoc::Markup::Document.new
    doc.omit_headings_below = 2
    doc.file = @top_level

    doc << RDoc::Markup::Heading.new(1, File.basename(@file_name))
    doc << RDoc::Markup::BlankLine.new

    groups.sort_by do |day,| day end.reverse_each do |day, entries|
      doc << RDoc::Markup::Heading.new(2, day.dup)
      doc << RDoc::Markup::BlankLine.new

      doc.concat create_entries entries
    end

    doc
  end

  ##
  # Returns a list of ChangeLog entries an RDoc::Markup nodes for the given
  # +entries+.

  def create_entries entries
    out = []

    entries.each do |entry, items|
      out << RDoc::Markup::Heading.new(3, entry)
      out << RDoc::Markup::BlankLine.new

      out << create_items(items)
    end

    out
  end

  ##
  # Returns an RDoc::Markup::List containing the given +items+ in the
  # ChangeLog

  def create_items items
    list = RDoc::Markup::List.new :NOTE

    items.each do |item|
      item =~ /\A(.*?(?:\([^)]+\))?):\s*/

      title = $1
      body = $'

      paragraph = RDoc::Markup::Paragraph.new body
      list_item = RDoc::Markup::ListItem.new title, paragraph
      list << list_item
    end

    list
  end

  ##
  # Groups +entries+ by date.

  def group_entries entries
    entries.group_by do |title, _|
      begin
        Time.parse(title).strftime '%Y-%m-%d'
      rescue NoMethodError, ArgumentError
        time, = title.split '  ', 2
        Time.parse(time).strftime '%Y-%m-%d'
      end
    end
  end

  ##
  # Parses the entries in the ChangeLog.
  #
  # Returns an Array of each ChangeLog entry in order of parsing.
  #
  # A ChangeLog entry is an Array containing the ChangeLog title (date and
  # committer) and an Array of ChangeLog items (file and function changed with
  # description).
  #
  # An example result would be:
  #
  #    [ 'Tue Dec  4 08:33:46 2012  Eric Hodel  <drbrain@segment7.net>',
  #      [ 'README.EXT:  Converted to RDoc format',
  #        'README.EXT.ja:  ditto']]

  def parse_entries
    entries = []
    entry_name = nil
    entry_body = []

    @content.each_line do |line|
      case line
      when /^\s*$/ then
        next
      when /^\w.*/ then
        entries << [entry_name, entry_body] if entry_name

        entry_name = $&

        begin
          time = Time.parse entry_name
          # HACK Ruby 1.8 does not raise ArgumentError for Time.parse "Other"
          entry_name = nil unless entry_name =~ /#{time.year}/
        rescue NoMethodError
          # HACK Ruby 2.1.2 and earlier raises NoMethodError if time part is absent
          entry_name.split '  ', 2
        rescue ArgumentError
          if /out of range/ =~ $!.message
            Time.parse(entry_name.split('  ', 2)[0]) rescue entry_name = nil
          else
            entry_name = nil
          end
        end

        entry_body = []
      when /^(\t| {8})?\*\s*(.*)/ then # "\t* file.c (func): ..."
        entry_body << $2
      when /^(\t| {8})?\s*(\(.*)/ then # "\t(func): ..."
        entry = $2

        if entry_body.last =~ /:/ then
          entry_body << entry
        else
          continue_entry_body entry_body, entry
        end
      when /^(\t| {8})?\s*(.*)/ then
        continue_entry_body entry_body, $2
      end
    end

    entries << [entry_name, entry_body] if entry_name

    entries.reject! do |(entry,_)|
      entry == nil
    end

    entries
  end

  ##
  # Converts the ChangeLog into an RDoc::Markup::Document

  def scan
    entries = parse_entries
    grouped_entries = group_entries entries

    doc = create_document grouped_entries

    @top_level.comment = doc

    @top_level
  end

end

lib64/ruby/2.2.0/rdoc/servlet.rb000064400000027531150402106160012047 0ustar00require 'rdoc'
require 'time'
require 'webrick'

##
# This is a WEBrick servlet that allows you to browse ri documentation.
#
# You can show documentation through either `ri --server` or, with RubyGems
# 2.0 or newer, `gem server`.  For ri, the server runs on port 8214 by
# default.  For RubyGems the server runs on port 8808 by default.
#
# You can use this servlet in your own project by mounting it on a WEBrick
# server:
#
#   require 'webrick'
#
#   server = WEBrick::HTTPServer.new Port: 8000
#
#   server.mount '/', RDoc::Servlet
#
# If you want to mount the servlet some other place than the root, provide the
# base path when mounting:
#
#   server.mount '/rdoc', RDoc::Servlet, '/rdoc'

class RDoc::Servlet < WEBrick::HTTPServlet::AbstractServlet

  @server_stores = Hash.new { |hash, server| hash[server] = {} }
  @cache         = Hash.new { |hash, store|  hash[store]  = {} }

  ##
  # Maps an asset type to its path on the filesystem

  attr_reader :asset_dirs

  ##
  # An RDoc::Options instance used for rendering options

  attr_reader :options

  ##
  # Creates an instance of this servlet that shares cached data between
  # requests.

  def self.get_instance server, *options # :nodoc:
    stores = @server_stores[server]

    new server, stores, @cache, *options
  end

  ##
  # Creates a new WEBrick servlet.
  #
  # Use +mount_path+ when mounting the servlet somewhere other than /.
  #
  # Use +extra_doc_dirs+ for additional documentation directories.
  #
  # +server+ is provided automatically by WEBrick when mounting.  +stores+ and
  # +cache+ are provided automatically by the servlet.

  def initialize server, stores, cache, mount_path = nil, extra_doc_dirs = []
    super server

    @cache      = cache
    @mount_path = mount_path
    @extra_doc_dirs = extra_doc_dirs
    @stores     = stores

    @options = RDoc::Options.new
    @options.op_dir = '.'

    darkfish_dir = nil

    # HACK dup
    $LOAD_PATH.each do |path|
      darkfish_dir = File.join path, 'rdoc/generator/template/darkfish/'
      next unless File.directory? darkfish_dir
      @options.template_dir = darkfish_dir
      break
    end

    @asset_dirs = {
      :darkfish   => darkfish_dir,
      :json_index =>
        File.expand_path('../generator/template/json_index/', __FILE__),
    }
  end

  ##
  # Serves the asset at the path in +req+ for +generator_name+ via +res+.

  def asset generator_name, req, res
    asset_dir = @asset_dirs[generator_name]

    asset_path = File.join asset_dir, req.path

    if_modified_since req, res, asset_path

    res.body = File.read asset_path

    res.content_type = case req.path
                       when /css$/ then 'text/css'
                       when /js$/  then 'application/javascript'
                       else             'application/octet-stream'
                       end
  end

  ##
  # GET request entry point.  Fills in +res+ for the path, etc. in +req+.

  def do_GET req, res
    req.path.sub!(/^#{Regexp.escape @mount_path}/o, '') if @mount_path

    case req.path
    when '/' then
      root req, res
    when '/rdoc.css', '/js/darkfish.js', '/js/jquery.js', '/js/search.js',
         %r%^/images/% then
      asset :darkfish, req, res
    when '/js/navigation.js', '/js/searcher.js' then
      asset :json_index, req, res
    when '/js/search_index.js' then
      root_search req, res
    else
      show_documentation req, res
    end
  rescue WEBrick::HTTPStatus::NotFound => e
    generator = generator_for RDoc::Store.new

    not_found generator, req, res, e.message
  rescue WEBrick::HTTPStatus::Status
    raise
  rescue => e
    error e, req, res
  end

  ##
  # Fills in +res+ with the class, module or page for +req+ from +store+.
  #
  # +path+ is relative to the mount_path and is used to determine the class,
  # module or page name (/RDoc/Servlet.html becomes RDoc::Servlet).
  # +generator+ is used to create the page.

  def documentation_page store, generator, path, req, res
    name = path.sub(/.html$/, '').gsub '/', '::'

    if klass = store.find_class_or_module(name) then
      res.body = generator.generate_class klass
    elsif page = store.find_text_page(name.sub(/_([^_]*)$/, '.\1')) then
      res.body = generator.generate_page page
    else
      not_found generator, req, res
    end
  end

  ##
  # Creates the JSON search index on +res+ for the given +store+.  +generator+
  # must respond to \#json_index to build.  +req+ is ignored.

  def documentation_search store, generator, req, res
    json_index = @cache[store].fetch :json_index do
      @cache[store][:json_index] =
        JSON.dump generator.json_index.build_index
    end

    res.content_type = 'application/javascript'
    res.body = "var search_data = #{json_index}"
  end

  ##
  # Returns the RDoc::Store and path relative to +mount_path+ for
  # documentation at +path+.

  def documentation_source path
    _, source_name, path = path.split '/', 3

    store = @stores[source_name]
    return store, path if store

    store = store_for source_name

    store.load_all

    @stores[source_name] = store

    return store, path
  end

  ##
  # Generates an error page for the +exception+ while handling +req+ on +res+.

  def error exception, req, res
    backtrace = exception.backtrace.join "\n"

    res.content_type = 'text/html'
    res.status = 500
    res.body = <<-BODY
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">

<title>Error - #{ERB::Util.html_escape exception.class}</title>

<link type="text/css" media="screen" href="#{@mount_path}/rdoc.css" rel="stylesheet">
</head>
<body>
<h1>Error</h1>

<p>While processing <code>#{ERB::Util.html_escape req.request_uri}</code> the
RDoc (#{ERB::Util.html_escape RDoc::VERSION}) server has encountered a
<code>#{ERB::Util.html_escape exception.class}</code>
exception:

<pre>#{ERB::Util.html_escape exception.message}</pre>

<p>Please report this to the
<a href="https://github.com/rdoc/rdoc/issues">RDoc issues tracker</a>.  Please
include the RDoc version, the URI above and exception class, message and
backtrace.  If you're viewing a gem's documentation, include the gem name and
version.  If you're viewing Ruby's documentation, include the version of ruby.

<p>Backtrace:

<pre>#{ERB::Util.html_escape backtrace}</pre>

</body>
</html>
    BODY
  end

  ##
  # Instantiates a Darkfish generator for +store+

  def generator_for store
    generator = RDoc::Generator::Darkfish.new store, @options
    generator.file_output = false
    generator.asset_rel_path = '..'

    rdoc = RDoc::RDoc.new
    rdoc.store     = store
    rdoc.generator = generator
    rdoc.options   = @options

    @options.main_page = store.main
    @options.title     = store.title

    generator
  end

  ##
  # Handles the If-Modified-Since HTTP header on +req+ for +path+.  If the
  # file has not been modified a Not Modified response is returned.  If the
  # file has been modified a Last-Modified header is added to +res+.

  def if_modified_since req, res, path = nil
    last_modified = File.stat(path).mtime if path

    res['last-modified'] = last_modified.httpdate

    return unless ims = req['if-modified-since']

    ims = Time.parse ims

    unless ims < last_modified then
      res.body = ''
      raise WEBrick::HTTPStatus::NotModified
    end
  end

  ##
  # Returns an Array of installed documentation.
  #
  # Each entry contains the documentation name (gem name, 'Ruby
  # Documentation', etc.), the path relative to the mount point, whether the
  # documentation exists, the type of documentation (See RDoc::RI::Paths#each)
  # and the filesystem to the RDoc::Store for the documentation.

  def installed_docs
    extra_counter = 0
    ri_paths.map do |path, type|
      store = RDoc::Store.new path, type
      exists = File.exist? store.cache_path

      case type
      when :gem then
        gem_path = path[%r%/([^/]*)/ri$%, 1]
        [gem_path, "#{gem_path}/", exists, type, path]
      when :system then
        ['Ruby Documentation', 'ruby/', exists, type, path]
      when :site then
        ['Site Documentation', 'site/', exists, type, path]
      when :home then
        ['Home Documentation', 'home/', exists, type, path]
      when :extra then
        extra_counter += 1
        store.load_cache if exists
        title = store.title || "Extra Documentation"
        [title, "extra-#{extra_counter}/", exists, type, path]
      end
    end
  end

  ##
  # Returns a 404 page built by +generator+ for +req+ on +res+.

  def not_found generator, req, res, message = nil
    message ||= "The page <kbd>#{ERB::Util.h req.path}</kbd> was not found"
    res.body = generator.generate_servlet_not_found message
    res.status = 404
  end

  ##
  # Enumerates the ri paths.  See RDoc::RI::Paths#each

  def ri_paths &block
    RDoc::RI::Paths.each true, true, true, :all, *@extra_doc_dirs, &block #TODO: pass extra_dirs
  end

  ##
  # Generates the root page on +res+.  +req+ is ignored.

  def root req, res
    generator = RDoc::Generator::Darkfish.new nil, @options

    res.body = generator.generate_servlet_root installed_docs

    res.content_type = 'text/html'
  end

  ##
  # Generates a search index for the root page on +res+.  +req+ is ignored.

  def root_search req, res
    search_index = []
    info         = []

    installed_docs.map do |name, href, exists, type, path|
      next unless exists

      search_index << name

      case type
      when :gem
        gemspec = path.gsub(%r%/doc/([^/]*?)/ri$%,
                            '/specifications/\1.gemspec')

        spec = Gem::Specification.load gemspec

        path    = spec.full_name
        comment = spec.summary
      when :system then
        path    = 'ruby'
        comment = 'Documentation for the Ruby standard library'
      when :site then
        path    = 'site'
        comment = 'Documentation for non-gem libraries'
      when :home then
        path    = 'home'
        comment = 'Documentation from your home directory'
      when :extra
        comment = name
      end

      info << [name, '', path, '', comment]
    end

    index = {
      :index => {
        :searchIndex     => search_index,
        :longSearchIndex => search_index,
        :info            => info,
      }
    }

    res.body = "var search_data = #{JSON.dump index};"
    res.content_type = 'application/javascript'
  end

  ##
  # Displays documentation for +req+ on +res+, whether that be HTML or some
  # asset.

  def show_documentation req, res
    store, path = documentation_source req.path

    if_modified_since req, res, store.cache_path

    generator = generator_for store

    case path
    when nil, '', 'index.html' then
      res.body = generator.generate_index
    when 'table_of_contents.html' then
      res.body = generator.generate_table_of_contents
    when 'js/search_index.js' then
      documentation_search store, generator, req, res
    else
      documentation_page store, generator, path, req, res
    end
  ensure
    res.content_type ||= 'text/html'
  end

  ##
  # Returns an RDoc::Store for the given +source_name+ ('ruby' or a gem name).

  def store_for source_name
    case source_name
    when 'home' then
      RDoc::Store.new RDoc::RI::Paths.home_dir, :home
    when 'ruby' then
      RDoc::Store.new RDoc::RI::Paths.system_dir, :system
    when 'site' then
      RDoc::Store.new RDoc::RI::Paths.site_dir, :site
    when /^extra-(\d+)$/ then
      index = $1.to_i - 1
      ri_dir = installed_docs[index][4]
      RDoc::Store.new ri_dir, :extra
    else
      ri_dir, type = ri_paths.find do |dir, dir_type|
        next unless dir_type == :gem

        source_name == dir[%r%/([^/]*)/ri$%, 1]
      end

      raise WEBrick::HTTPStatus::NotFound,
            "Could not find gem \"#{source_name}\". Are you sure you installed it?" unless ri_dir

      store = RDoc::Store.new ri_dir, type

      return store if File.exist? store.cache_path

      raise WEBrick::HTTPStatus::NotFound,
            "Could not find documentation for \"#{source_name}\". Please run `gem rdoc --ri gem_name`"

    end
  end

end

lib64/ruby/2.2.0/rdoc/ri.rb000064400000000473150402106160010771 0ustar00require 'rdoc'

##
# Namespace for the ri command line tool's implementation.
#
# See <tt>ri --help</tt> for details.

module RDoc::RI

  ##
  # Base RI error class

  class Error < RDoc::Error; end

  autoload :Driver, 'rdoc/ri/driver'
  autoload :Paths,  'rdoc/ri/paths'
  autoload :Store,  'rdoc/ri/store'

end

lib64/ruby/2.2.0/rdoc/rd/inline_parser.rb000064400000076551150402106160013630 0ustar00#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.4.12
# from Racc grammer file "".
#

require 'racc/parser.rb'

require 'strscan'

class RDoc::RD

##
# RD format parser for inline markup such as emphasis, links, footnotes, etc.

class InlineParser < Racc::Parser


# :stopdoc:

EM_OPEN = '((*'
EM_OPEN_RE = /\A#{Regexp.quote(EM_OPEN)}/
EM_CLOSE = '*))'
EM_CLOSE_RE = /\A#{Regexp.quote(EM_CLOSE)}/
CODE_OPEN = '(({'
CODE_OPEN_RE = /\A#{Regexp.quote(CODE_OPEN)}/
CODE_CLOSE = '}))'
CODE_CLOSE_RE = /\A#{Regexp.quote(CODE_CLOSE)}/
VAR_OPEN = '((|'
VAR_OPEN_RE = /\A#{Regexp.quote(VAR_OPEN)}/
VAR_CLOSE = '|))'
VAR_CLOSE_RE = /\A#{Regexp.quote(VAR_CLOSE)}/
KBD_OPEN = '((%'
KBD_OPEN_RE = /\A#{Regexp.quote(KBD_OPEN)}/
KBD_CLOSE = '%))'
KBD_CLOSE_RE = /\A#{Regexp.quote(KBD_CLOSE)}/
INDEX_OPEN = '((:'
INDEX_OPEN_RE = /\A#{Regexp.quote(INDEX_OPEN)}/
INDEX_CLOSE = ':))'
INDEX_CLOSE_RE = /\A#{Regexp.quote(INDEX_CLOSE)}/
REF_OPEN = '((<'
REF_OPEN_RE = /\A#{Regexp.quote(REF_OPEN)}/
REF_CLOSE = '>))'
REF_CLOSE_RE = /\A#{Regexp.quote(REF_CLOSE)}/
FOOTNOTE_OPEN = '((-'
FOOTNOTE_OPEN_RE = /\A#{Regexp.quote(FOOTNOTE_OPEN)}/
FOOTNOTE_CLOSE = '-))'
FOOTNOTE_CLOSE_RE = /\A#{Regexp.quote(FOOTNOTE_CLOSE)}/
VERB_OPEN = "(('"
VERB_OPEN_RE = /\A#{Regexp.quote(VERB_OPEN)}/
VERB_CLOSE = "'))"
VERB_CLOSE_RE = /\A#{Regexp.quote(VERB_CLOSE)}/

BAR = "|"
BAR_RE = /\A#{Regexp.quote(BAR)}/
QUOTE = '"'
QUOTE_RE = /\A#{Regexp.quote(QUOTE)}/
SLASH = "/"
SLASH_RE = /\A#{Regexp.quote(SLASH)}/
BACK_SLASH = "\\"
BACK_SLASH_RE = /\A#{Regexp.quote(BACK_SLASH)}/
URL = "URL:"
URL_RE = /\A#{Regexp.quote(URL)}/

other_re_mode = Regexp::EXTENDED
other_re_mode |= Regexp::MULTILINE

OTHER_RE = Regexp.new(
  "\\A.+?(?=#{Regexp.quote(EM_OPEN)}|#{Regexp.quote(EM_CLOSE)}|
              #{Regexp.quote(CODE_OPEN)}|#{Regexp.quote(CODE_CLOSE)}|
              #{Regexp.quote(VAR_OPEN)}|#{Regexp.quote(VAR_CLOSE)}|
              #{Regexp.quote(KBD_OPEN)}|#{Regexp.quote(KBD_CLOSE)}|
              #{Regexp.quote(INDEX_OPEN)}|#{Regexp.quote(INDEX_CLOSE)}|
              #{Regexp.quote(REF_OPEN)}|#{Regexp.quote(REF_CLOSE)}|
            #{Regexp.quote(FOOTNOTE_OPEN)}|#{Regexp.quote(FOOTNOTE_CLOSE)}|
              #{Regexp.quote(VERB_OPEN)}|#{Regexp.quote(VERB_CLOSE)}|
              #{Regexp.quote(BAR)}|
              #{Regexp.quote(QUOTE)}|
              #{Regexp.quote(SLASH)}|
              #{Regexp.quote(BACK_SLASH)}|
              #{Regexp.quote(URL)})", other_re_mode)

# :startdoc:

##
# Creates a new parser for inline markup in the rd format.  The +block_parser+
# is used to for footnotes and labels in the inline text.

def initialize block_parser
  @block_parser = block_parser
end

##
# Parses the +inline+ text from RD format into RDoc format.

def parse inline
  @inline = inline
  @src = StringScanner.new inline
  @pre = ""
  @yydebug = true
  do_parse.to_s
end

##
# Returns the next token from the inline text

def next_token
  return [false, false] if @src.eos?
#  p @src.rest if @yydebug
  if ret = @src.scan(EM_OPEN_RE)
    @pre << ret
    [:EM_OPEN, ret]
  elsif ret = @src.scan(EM_CLOSE_RE)
    @pre << ret
    [:EM_CLOSE, ret]
  elsif ret = @src.scan(CODE_OPEN_RE)
    @pre << ret
    [:CODE_OPEN, ret]
  elsif ret = @src.scan(CODE_CLOSE_RE)
    @pre << ret
    [:CODE_CLOSE, ret]
  elsif ret = @src.scan(VAR_OPEN_RE)
    @pre << ret
    [:VAR_OPEN, ret]
  elsif ret = @src.scan(VAR_CLOSE_RE)
    @pre << ret
    [:VAR_CLOSE, ret]
  elsif ret = @src.scan(KBD_OPEN_RE)
    @pre << ret
    [:KBD_OPEN, ret]
  elsif ret = @src.scan(KBD_CLOSE_RE)
    @pre << ret
    [:KBD_CLOSE, ret]
  elsif ret = @src.scan(INDEX_OPEN_RE)
    @pre << ret
    [:INDEX_OPEN, ret]
  elsif ret = @src.scan(INDEX_CLOSE_RE)
    @pre << ret
    [:INDEX_CLOSE, ret]
  elsif ret = @src.scan(REF_OPEN_RE)
    @pre << ret
    [:REF_OPEN, ret]
  elsif ret = @src.scan(REF_CLOSE_RE)
    @pre << ret
    [:REF_CLOSE, ret]
  elsif ret = @src.scan(FOOTNOTE_OPEN_RE)
    @pre << ret
    [:FOOTNOTE_OPEN, ret]
  elsif ret = @src.scan(FOOTNOTE_CLOSE_RE)
    @pre << ret
    [:FOOTNOTE_CLOSE, ret]
  elsif ret = @src.scan(VERB_OPEN_RE)
    @pre << ret
    [:VERB_OPEN, ret]
  elsif ret = @src.scan(VERB_CLOSE_RE)
    @pre << ret
    [:VERB_CLOSE, ret]
  elsif ret = @src.scan(BAR_RE)
    @pre << ret
    [:BAR, ret]
  elsif ret = @src.scan(QUOTE_RE)
    @pre << ret
    [:QUOTE, ret]
  elsif ret = @src.scan(SLASH_RE)
    @pre << ret
    [:SLASH, ret]
  elsif ret = @src.scan(BACK_SLASH_RE)
    @pre << ret
    [:BACK_SLASH, ret]
  elsif ret = @src.scan(URL_RE)
    @pre << ret
    [:URL, ret]
  elsif ret = @src.scan(OTHER_RE)
    @pre << ret
    [:OTHER, ret]
  else
    ret = @src.rest
    @pre << ret
    @src.terminate
    [:OTHER, ret]
  end
end

##
# Raises a ParseError when invalid formatting is found

def on_error(et, ev, values)
  lines_of_rest = @src.rest.lines.to_a.length
  prev_words = prev_words_on_error(ev)
  at = 4 + prev_words.length

  message = <<-MSG
RD syntax error: line #{@block_parser.line_index - lines_of_rest}:
...#{prev_words} #{(ev||'')} #{next_words_on_error()} ...
  MSG

  message << " " * at + "^" * (ev ? ev.length : 0) + "\n"
  raise ParseError, message
end

##
# Returns words before the error

def prev_words_on_error(ev)
  pre = @pre
  if ev and /#{Regexp.quote(ev)}$/ =~ pre
    pre = $`
  end
  last_line(pre)
end

##
# Returns the last line of +src+

def last_line(src)
  if n = src.rindex("\n")
    src[(n+1) .. -1]
  else
    src
  end
end
private :last_line

##
# Returns words following an error

def next_words_on_error
  if n = @src.rest.index("\n")
    @src.rest[0 .. (n-1)]
  else
    @src.rest
  end
end

##
# Creates a new RDoc::RD::Inline for the +rdoc+ markup and the raw +reference+

def inline rdoc, reference = rdoc
  RDoc::RD::Inline.new rdoc, reference
end

# :stopdoc:
##### State transition tables begin ###

racc_action_table = [
    63,    64,    65,   153,    81,    62,    76,    78,    79,    87,
    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
    77,    80,   152,    63,    64,    65,    61,    81,    62,    76,
    78,    79,   124,    66,    67,    68,    69,    70,    71,    72,
    73,    74,    75,    77,    80,   149,   104,   103,   102,   100,
   101,    99,   115,   116,   117,   164,   105,   106,   107,   108,
   109,   110,   111,   112,   113,   114,    96,   118,   119,   104,
   103,   102,   100,   101,    99,   115,   116,   117,    89,   105,
   106,   107,   108,   109,   110,   111,   112,   113,   114,    88,
   118,   119,   104,   103,   102,   100,   101,    99,   115,   116,
   117,   161,   105,   106,   107,   108,   109,   110,   111,   112,
   113,   114,    86,   118,   119,   104,   103,   102,   100,   101,
    99,   115,   116,   117,    85,   105,   106,   107,   108,   109,
   110,   111,   112,   113,   114,   137,   118,   119,    63,    64,
    65,    61,    81,    62,    76,    78,    79,    84,    66,    67,
    68,    69,    70,    71,    72,    73,    74,    75,    77,    80,
    22,    23,    24,    25,    26,    21,    18,    19,   176,   177,
    13,   173,    14,   154,    15,   175,    16,   137,    17,    42,
   148,    20,    54,    38,    53,    55,    56,    57,    29,    13,
   177,    14,   nil,    15,   nil,    16,   nil,    17,   nil,   nil,
    20,    22,    23,    24,    25,    26,    21,    18,    19,   nil,
   nil,    13,   nil,    14,   nil,    15,   nil,    16,   nil,    17,
   nil,   nil,    20,    22,    23,    24,    25,    26,    21,    18,
    19,   nil,   nil,    13,   nil,    14,   nil,    15,   nil,    16,
   nil,    17,   nil,   nil,    20,    22,    23,    24,    25,    26,
    21,    18,    19,   nil,   nil,    13,   nil,    14,   nil,    15,
   nil,    16,   nil,    17,   145,   nil,    20,    54,   133,    53,
    55,    56,    57,   nil,    13,   nil,    14,   nil,    15,   nil,
    16,   nil,    17,   nil,   nil,    20,    22,    23,    24,    25,
    26,    21,    18,    19,   nil,   nil,    13,   nil,    14,   nil,
    15,   nil,    16,   nil,    17,   145,   nil,    20,    54,   133,
    53,    55,    56,    57,   nil,    13,   nil,    14,   nil,    15,
   nil,    16,   nil,    17,   nil,   nil,    20,    22,    23,    24,
    25,    26,    21,    18,    19,   nil,   nil,    13,   nil,    14,
   nil,    15,   nil,    16,   nil,    17,   145,   nil,    20,    54,
   133,    53,    55,    56,    57,   nil,    13,   nil,    14,   nil,
    15,   nil,    16,   nil,    17,   145,   nil,    20,    54,   133,
    53,    55,    56,    57,   nil,    13,   nil,    14,   nil,    15,
   nil,    16,   nil,    17,   nil,   nil,    20,    22,    23,    24,
    25,    26,    21,    18,    19,   nil,   nil,    13,   nil,    14,
   nil,    15,   nil,    16,   122,    17,   nil,    54,    20,    53,
    55,    56,    57,   nil,    13,   nil,    14,   nil,    15,   nil,
    16,   nil,    17,   nil,   nil,    20,    22,    23,    24,    25,
    26,    21,    18,    19,   nil,   nil,    13,   nil,    14,   nil,
    15,   nil,    16,   nil,    17,   nil,   nil,    20,   135,   136,
    54,   133,    53,    55,    56,    57,   nil,    13,   nil,    14,
   nil,    15,   nil,    16,   nil,    17,   nil,   nil,    20,   135,
   136,    54,   133,    53,    55,    56,    57,   nil,    13,   nil,
    14,   nil,    15,   nil,    16,   nil,    17,   nil,   nil,    20,
   135,   136,    54,   133,    53,    55,    56,    57,   nil,    13,
   nil,    14,   nil,    15,   nil,    16,   nil,    17,   nil,   nil,
    20,   172,   135,   136,    54,   133,    53,    55,    56,    57,
   165,   135,   136,    54,   133,    53,    55,    56,    57,    95,
   nil,   nil,    54,    91,    53,    55,    56,    57,   174,   135,
   136,    54,   133,    53,    55,    56,    57,   158,   nil,   nil,
    54,   nil,    53,    55,    56,    57,   178,   135,   136,    54,
   133,    53,    55,    56,    57,   145,   nil,   nil,    54,   133,
    53,    55,    56,    57,   145,   nil,   nil,    54,   133,    53,
    55,    56,    57,   135,   136,    54,   133,    53,    55,    56,
    57,   135,   136,    54,   133,    53,    55,    56,    57,   135,
   136,    54,   133,    53,    55,    56,    57,    22,    23,    24,
    25,    26,    21 ]

racc_action_check = [
    61,    61,    61,    61,    61,    61,    61,    61,    61,    33,
    61,    61,    61,    61,    61,    61,    61,    61,    61,    61,
    61,    61,    61,    59,    59,    59,    59,    59,    59,    59,
    59,    59,    41,    59,    59,    59,    59,    59,    59,    59,
    59,    59,    59,    59,    59,    59,    97,    97,    97,    97,
    97,    97,    97,    97,    97,   125,    97,    97,    97,    97,
    97,    97,    97,    97,    97,    97,    37,    97,    97,    38,
    38,    38,    38,    38,    38,    38,    38,    38,    35,    38,
    38,    38,    38,    38,    38,    38,    38,    38,    38,    34,
    38,    38,   155,   155,   155,   155,   155,   155,   155,   155,
   155,   100,   155,   155,   155,   155,   155,   155,   155,   155,
   155,   155,    32,   155,   155,    91,    91,    91,    91,    91,
    91,    91,    91,    91,    31,    91,    91,    91,    91,    91,
    91,    91,    91,    91,    91,    43,    91,    91,    20,    20,
    20,    20,    20,    20,    20,    20,    20,    29,    20,    20,
    20,    20,    20,    20,    20,    20,    20,    20,    20,    20,
    17,    17,    17,    17,    17,    17,    17,    17,   165,   165,
    17,   162,    17,    90,    17,   164,    17,    94,    17,    18,
    58,    17,    18,    18,    18,    18,    18,    18,     1,    18,
   172,    18,   nil,    18,   nil,    18,   nil,    18,   nil,   nil,
    18,    19,    19,    19,    19,    19,    19,    19,    19,   nil,
   nil,    19,   nil,    19,   nil,    19,   nil,    19,   nil,    19,
   nil,   nil,    19,    16,    16,    16,    16,    16,    16,    16,
    16,   nil,   nil,    16,   nil,    16,   nil,    16,   nil,    16,
   nil,    16,   nil,   nil,    16,    15,    15,    15,    15,    15,
    15,    15,    15,   nil,   nil,    15,   nil,    15,   nil,    15,
   nil,    15,   nil,    15,    45,   nil,    15,    45,    45,    45,
    45,    45,    45,   nil,    45,   nil,    45,   nil,    45,   nil,
    45,   nil,    45,   nil,   nil,    45,    14,    14,    14,    14,
    14,    14,    14,    14,   nil,   nil,    14,   nil,    14,   nil,
    14,   nil,    14,   nil,    14,   146,   nil,    14,   146,   146,
   146,   146,   146,   146,   nil,   146,   nil,   146,   nil,   146,
   nil,   146,   nil,   146,   nil,   nil,   146,    13,    13,    13,
    13,    13,    13,    13,    13,   nil,   nil,    13,   nil,    13,
   nil,    13,   nil,    13,   nil,    13,   138,   nil,    13,   138,
   138,   138,   138,   138,   138,   nil,   138,   nil,   138,   nil,
   138,   nil,   138,   nil,   138,    44,   nil,   138,    44,    44,
    44,    44,    44,    44,   nil,    44,   nil,    44,   nil,    44,
   nil,    44,   nil,    44,   nil,   nil,    44,     2,     2,     2,
     2,     2,     2,     2,     2,   nil,   nil,     2,   nil,     2,
   nil,     2,   nil,     2,    39,     2,   nil,    39,     2,    39,
    39,    39,    39,   nil,    39,   nil,    39,   nil,    39,   nil,
    39,   nil,    39,   nil,   nil,    39,     0,     0,     0,     0,
     0,     0,     0,     0,   nil,   nil,     0,   nil,     0,   nil,
     0,   nil,     0,   nil,     0,   nil,   nil,     0,   122,   122,
   122,   122,   122,   122,   122,   122,   nil,   122,   nil,   122,
   nil,   122,   nil,   122,   nil,   122,   nil,   nil,   122,   127,
   127,   127,   127,   127,   127,   127,   127,   nil,   127,   nil,
   127,   nil,   127,   nil,   127,   nil,   127,   nil,   nil,   127,
    42,    42,    42,    42,    42,    42,    42,    42,   nil,    42,
   nil,    42,   nil,    42,   nil,    42,   nil,    42,   nil,   nil,
    42,   159,   159,   159,   159,   159,   159,   159,   159,   159,
   126,   126,   126,   126,   126,   126,   126,   126,   126,    36,
   nil,   nil,    36,    36,    36,    36,    36,    36,   163,   163,
   163,   163,   163,   163,   163,   163,   163,    92,   nil,   nil,
    92,   nil,    92,    92,    92,    92,   171,   171,   171,   171,
   171,   171,   171,   171,   171,   142,   nil,   nil,   142,   142,
   142,   142,   142,   142,    52,   nil,   nil,    52,    52,    52,
    52,    52,    52,    95,    95,    95,    95,    95,    95,    95,
    95,   168,   168,   168,   168,   168,   168,   168,   168,   158,
   158,   158,   158,   158,   158,   158,   158,    27,    27,    27,
    27,    27,    27 ]

racc_action_pointer = [
   423,   188,   384,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   324,   283,   242,   220,   157,   176,   198,
   135,   nil,   nil,   nil,   nil,   nil,   nil,   604,   nil,   147,
   nil,   110,    96,    -9,    69,    56,   526,    43,    66,   401,
   nil,    28,   486,   130,   362,   261,   nil,   nil,   nil,   nil,
   nil,   nil,   571,   nil,   nil,   nil,   nil,   nil,   169,    20,
   nil,    -3,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   150,   112,   544,   nil,   172,   579,   nil,    43,   nil,   nil,
    95,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   444,   nil,   nil,    52,   517,   465,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   343,   nil,
   nil,   nil,   562,   nil,   nil,   nil,   302,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   nil,    89,   nil,   nil,   595,   508,
   nil,   nil,   168,   535,   171,   164,   nil,   nil,   587,   nil,
   nil,   553,   185,   nil,   nil,   nil,   nil,   nil,   nil ]

racc_action_default = [
  -138,  -138,    -1,    -3,    -4,    -5,    -6,    -7,    -8,    -9,
   -10,   -11,   -12,  -138,  -138,  -138,  -138,  -138,  -138,  -138,
  -138,  -103,  -104,  -105,  -106,  -107,  -108,  -111,  -110,  -138,
    -2,  -138,  -138,  -138,  -138,  -138,  -138,  -138,  -138,   -27,
   -26,   -35,  -138,   -58,   -41,   -40,   -47,   -48,   -49,   -50,
   -51,   -52,   -63,   -66,   -67,   -68,   -69,   -70,  -138,  -138,
  -112,  -138,  -116,  -117,  -118,  -119,  -120,  -121,  -122,  -123,
  -124,  -125,  -126,  -127,  -128,  -129,  -130,  -131,  -132,  -133,
  -134,  -135,  -137,  -109,   179,   -13,   -14,   -15,   -16,   -17,
  -138,  -138,   -23,   -22,   -33,  -138,   -19,   -24,   -79,   -80,
  -138,   -82,   -83,   -84,   -85,   -86,   -87,   -88,   -89,   -90,
   -91,   -92,   -93,   -94,   -95,   -96,   -97,   -98,   -99,  -100,
   -25,   -35,  -138,   -58,   -28,  -138,   -59,   -42,   -46,   -55,
   -56,   -65,   -71,   -72,   -75,   -76,   -77,   -31,   -38,   -44,
   -53,   -54,   -57,   -61,   -73,   -74,   -39,   -62,  -101,  -102,
  -136,  -113,  -114,  -115,   -18,   -20,   -21,   -33,  -138,  -138,
   -78,   -81,  -138,   -59,   -36,   -37,   -64,   -45,   -59,   -43,
   -60,  -138,   -34,   -36,   -37,   -29,   -30,   -32,   -34 ]

racc_goto_table = [
   126,    44,   125,    43,   144,   144,   160,    93,    97,    52,
   166,    82,   144,    41,    40,    39,   138,   146,   169,   147,
   167,    94,    44,     1,   123,   129,   169,    52,    36,    37,
    52,    90,    59,    92,   121,   120,    31,    32,    33,    34,
    35,   170,    58,   166,    83,    30,   170,   166,   151,   nil,
   150,   nil,   166,   159,     8,   166,     8,   nil,   nil,   nil,
   nil,   155,   nil,   156,   160,   nil,   nil,     8,     8,     8,
     8,     8,   nil,     8,     4,   nil,     4,   157,   nil,   nil,
   163,   nil,   162,    52,   nil,   168,   nil,     4,     4,     4,
     4,     4,   nil,     4,   nil,   nil,   nil,   nil,   144,   nil,
   nil,   nil,   144,   nil,   nil,   129,   144,   144,   nil,     5,
   129,     5,   nil,   nil,   nil,   nil,   171,     6,   nil,     6,
   nil,   nil,     5,     5,     5,     5,     5,    11,     5,    11,
     6,     6,     6,     6,     6,     7,     6,     7,   nil,   nil,
    11,    11,    11,    11,    11,   nil,    11,   nil,     7,     7,
     7,     7,     7,   nil,     7 ]

racc_goto_check = [
    22,    24,    21,    23,    36,    36,    37,    18,    16,    34,
    35,    41,    36,    20,    19,    17,    25,    25,    28,    32,
    29,    23,    24,     1,    23,    24,    28,    34,    13,    15,
    34,    14,    38,    17,    20,    19,     1,     1,     1,     1,
     1,    33,     1,    35,    39,     3,    33,    35,    42,   nil,
    41,   nil,    35,    22,     8,    35,     8,   nil,   nil,   nil,
   nil,    16,   nil,    18,    37,   nil,   nil,     8,     8,     8,
     8,     8,   nil,     8,     4,   nil,     4,    23,   nil,   nil,
    22,   nil,    21,    34,   nil,    22,   nil,     4,     4,     4,
     4,     4,   nil,     4,   nil,   nil,   nil,   nil,    36,   nil,
   nil,   nil,    36,   nil,   nil,    24,    36,    36,   nil,     5,
    24,     5,   nil,   nil,   nil,   nil,    22,     6,   nil,     6,
   nil,   nil,     5,     5,     5,     5,     5,    11,     5,    11,
     6,     6,     6,     6,     6,     7,     6,     7,   nil,   nil,
    11,    11,    11,    11,    11,   nil,    11,   nil,     7,     7,
     7,     7,     7,   nil,     7 ]

racc_goto_pointer = [
   nil,    23,   nil,    43,    74,   109,   117,   135,    54,   nil,
   nil,   127,   nil,    10,    -5,    11,   -30,    -3,   -29,    -4,
    -5,   -40,   -42,   -15,   -17,   -28,   nil,   nil,  -120,  -107,
   nil,   nil,   -33,  -101,    -9,  -116,   -40,   -91,    12,    17,
   nil,    -9,   -13 ]

racc_goto_default = [
   nil,   nil,     2,     3,    46,    47,    48,    49,    50,     9,
    10,    51,    12,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,   nil,   140,   nil,    45,   127,   139,   128,
   141,   130,   142,   143,   132,   131,   134,    98,   nil,    28,
    27,   nil,    60 ]

racc_reduce_table = [
  0, 0, :racc_error,
  1, 27, :_reduce_none,
  2, 28, :_reduce_2,
  1, 28, :_reduce_3,
  1, 29, :_reduce_none,
  1, 29, :_reduce_none,
  1, 29, :_reduce_none,
  1, 29, :_reduce_none,
  1, 29, :_reduce_none,
  1, 29, :_reduce_none,
  1, 29, :_reduce_none,
  1, 29, :_reduce_none,
  1, 29, :_reduce_none,
  3, 30, :_reduce_13,
  3, 31, :_reduce_14,
  3, 32, :_reduce_15,
  3, 33, :_reduce_16,
  3, 34, :_reduce_17,
  4, 35, :_reduce_18,
  3, 35, :_reduce_19,
  2, 40, :_reduce_20,
  2, 40, :_reduce_21,
  1, 40, :_reduce_22,
  1, 40, :_reduce_23,
  2, 41, :_reduce_24,
  2, 41, :_reduce_25,
  1, 41, :_reduce_26,
  1, 41, :_reduce_27,
  2, 39, :_reduce_none,
  4, 39, :_reduce_29,
  4, 39, :_reduce_30,
  2, 43, :_reduce_31,
  4, 43, :_reduce_32,
  1, 44, :_reduce_33,
  3, 44, :_reduce_34,
  1, 45, :_reduce_none,
  3, 45, :_reduce_36,
  3, 45, :_reduce_37,
  2, 46, :_reduce_38,
  2, 46, :_reduce_39,
  1, 46, :_reduce_40,
  1, 46, :_reduce_41,
  1, 47, :_reduce_none,
  2, 51, :_reduce_43,
  1, 51, :_reduce_44,
  2, 53, :_reduce_45,
  1, 53, :_reduce_46,
  1, 50, :_reduce_none,
  1, 50, :_reduce_none,
  1, 50, :_reduce_none,
  1, 50, :_reduce_none,
  1, 50, :_reduce_none,
  1, 50, :_reduce_none,
  1, 54, :_reduce_none,
  1, 54, :_reduce_none,
  1, 55, :_reduce_none,
  1, 55, :_reduce_none,
  1, 56, :_reduce_57,
  1, 52, :_reduce_58,
  1, 57, :_reduce_59,
  2, 58, :_reduce_60,
  1, 58, :_reduce_none,
  2, 49, :_reduce_62,
  1, 49, :_reduce_none,
  2, 48, :_reduce_64,
  1, 48, :_reduce_none,
  1, 60, :_reduce_none,
  1, 60, :_reduce_none,
  1, 60, :_reduce_none,
  1, 60, :_reduce_none,
  1, 60, :_reduce_none,
  1, 62, :_reduce_none,
  1, 62, :_reduce_none,
  1, 59, :_reduce_none,
  1, 59, :_reduce_none,
  1, 61, :_reduce_none,
  1, 61, :_reduce_none,
  1, 61, :_reduce_none,
  2, 42, :_reduce_78,
  1, 42, :_reduce_none,
  1, 63, :_reduce_none,
  2, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  3, 36, :_reduce_101,
  3, 37, :_reduce_102,
  1, 65, :_reduce_none,
  1, 65, :_reduce_none,
  1, 65, :_reduce_none,
  1, 65, :_reduce_none,
  1, 65, :_reduce_none,
  1, 65, :_reduce_none,
  2, 66, :_reduce_109,
  1, 66, :_reduce_none,
  1, 38, :_reduce_111,
  1, 67, :_reduce_none,
  2, 67, :_reduce_113,
  2, 67, :_reduce_114,
  2, 67, :_reduce_115,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  1, 68, :_reduce_none,
  2, 64, :_reduce_136,
  1, 64, :_reduce_none ]

racc_reduce_n = 138

racc_shift_n = 179

racc_token_table = {
  false => 0,
  :error => 1,
  :EX_LOW => 2,
  :QUOTE => 3,
  :BAR => 4,
  :SLASH => 5,
  :BACK_SLASH => 6,
  :URL => 7,
  :OTHER => 8,
  :REF_OPEN => 9,
  :FOOTNOTE_OPEN => 10,
  :FOOTNOTE_CLOSE => 11,
  :EX_HIGH => 12,
  :EM_OPEN => 13,
  :EM_CLOSE => 14,
  :CODE_OPEN => 15,
  :CODE_CLOSE => 16,
  :VAR_OPEN => 17,
  :VAR_CLOSE => 18,
  :KBD_OPEN => 19,
  :KBD_CLOSE => 20,
  :INDEX_OPEN => 21,
  :INDEX_CLOSE => 22,
  :REF_CLOSE => 23,
  :VERB_OPEN => 24,
  :VERB_CLOSE => 25 }

racc_nt_base = 26

racc_use_result_var = true

Racc_arg = [
  racc_action_table,
  racc_action_check,
  racc_action_default,
  racc_action_pointer,
  racc_goto_table,
  racc_goto_check,
  racc_goto_default,
  racc_goto_pointer,
  racc_nt_base,
  racc_reduce_table,
  racc_token_table,
  racc_shift_n,
  racc_reduce_n,
  racc_use_result_var ]

Racc_token_to_s_table = [
  "$end",
  "error",
  "EX_LOW",
  "QUOTE",
  "BAR",
  "SLASH",
  "BACK_SLASH",
  "URL",
  "OTHER",
  "REF_OPEN",
  "FOOTNOTE_OPEN",
  "FOOTNOTE_CLOSE",
  "EX_HIGH",
  "EM_OPEN",
  "EM_CLOSE",
  "CODE_OPEN",
  "CODE_CLOSE",
  "VAR_OPEN",
  "VAR_CLOSE",
  "KBD_OPEN",
  "KBD_CLOSE",
  "INDEX_OPEN",
  "INDEX_CLOSE",
  "REF_CLOSE",
  "VERB_OPEN",
  "VERB_CLOSE",
  "$start",
  "content",
  "elements",
  "element",
  "emphasis",
  "code",
  "var",
  "keyboard",
  "index",
  "reference",
  "footnote",
  "verb",
  "normal_str_ele",
  "substitute",
  "ref_label",
  "ref_label2",
  "ref_url_strings",
  "filename",
  "element_label",
  "element_label2",
  "ref_subst_content",
  "ref_subst_content_q",
  "ref_subst_strings_q",
  "ref_subst_strings_first",
  "ref_subst_ele2",
  "ref_subst_eles",
  "ref_subst_str_ele_first",
  "ref_subst_eles_q",
  "ref_subst_ele",
  "ref_subst_ele_q",
  "ref_subst_str_ele",
  "ref_subst_str_ele_q",
  "ref_subst_strings",
  "ref_subst_string3",
  "ref_subst_string",
  "ref_subst_string_q",
  "ref_subst_string2",
  "ref_url_string",
  "verb_strings",
  "normal_string",
  "normal_strings",
  "verb_string",
  "verb_normal_string" ]

Racc_debug_parser = false

##### State transition tables end #####

# reduce 0 omitted

# reduce 1 omitted

def _reduce_2(val, _values, result)
 result.append val[1]
    result
end

def _reduce_3(val, _values, result)
 result = val[0]
    result
end

# reduce 4 omitted

# reduce 5 omitted

# reduce 6 omitted

# reduce 7 omitted

# reduce 8 omitted

# reduce 9 omitted

# reduce 10 omitted

# reduce 11 omitted

# reduce 12 omitted

def _reduce_13(val, _values, result)
      content = val[1]
      result = inline "<em>#{content}</em>", content

    result
end

def _reduce_14(val, _values, result)
      content = val[1]
      result = inline "<code>#{content}</code>", content

    result
end

def _reduce_15(val, _values, result)
      content = val[1]
      result = inline "+#{content}+", content

    result
end

def _reduce_16(val, _values, result)
      content = val[1]
      result = inline "<tt>#{content}</tt>", content

    result
end

def _reduce_17(val, _values, result)
      label = val[1]
      @block_parser.add_label label.reference
      result = "<span id=\"label-#{label}\">#{label}</span>"

    result
end

def _reduce_18(val, _values, result)
      result = "{#{val[1]}}[#{val[2].join}]"

    result
end

def _reduce_19(val, _values, result)
      scheme, inline = val[1]

      result = "{#{inline}}[#{scheme}#{inline.reference}]"

    result
end

def _reduce_20(val, _values, result)
      result = [nil, inline(val[1])]

    result
end

def _reduce_21(val, _values, result)
      result = [
        'rdoc-label:',
        inline("#{val[0].reference}/#{val[1].reference}")
      ]

    result
end

def _reduce_22(val, _values, result)
      result = ['rdoc-label:', val[0].reference]

    result
end

def _reduce_23(val, _values, result)
      result = ['rdoc-label:', "#{val[0].reference}/"]

    result
end

def _reduce_24(val, _values, result)
      result = [nil, inline(val[1])]

    result
end

def _reduce_25(val, _values, result)
      result = [
        'rdoc-label:',
        inline("#{val[0].reference}/#{val[1].reference}")
      ]

    result
end

def _reduce_26(val, _values, result)
      result = ['rdoc-label:', val[0]]

    result
end

def _reduce_27(val, _values, result)
      ref = val[0].reference
      result = ['rdoc-label:', inline(ref, "#{ref}/")]

    result
end

# reduce 28 omitted

def _reduce_29(val, _values, result)
 result = val[1]
    result
end

def _reduce_30(val, _values, result)
 result = val[1]
    result
end

def _reduce_31(val, _values, result)
      result = inline val[0]

    result
end

def _reduce_32(val, _values, result)
      result = inline "\"#{val[1]}\""

    result
end

def _reduce_33(val, _values, result)
      result = inline val[0]

    result
end

def _reduce_34(val, _values, result)
      result = inline "\"#{val[1]}\""

    result
end

# reduce 35 omitted

def _reduce_36(val, _values, result)
 result = val[1]
    result
end

def _reduce_37(val, _values, result)
 result = inline val[1]
    result
end

def _reduce_38(val, _values, result)
      result = val[0].append val[1]

    result
end

def _reduce_39(val, _values, result)
      result = val[0].append val[1]

    result
end

def _reduce_40(val, _values, result)
      result = val[0]

    result
end

def _reduce_41(val, _values, result)
      result = inline val[0]

    result
end

# reduce 42 omitted

def _reduce_43(val, _values, result)
      result = val[0].append val[1]

    result
end

def _reduce_44(val, _values, result)
      result = inline val[0]

    result
end

def _reduce_45(val, _values, result)
      result = val[0].append val[1]

    result
end

def _reduce_46(val, _values, result)
      result = val[0]

    result
end

# reduce 47 omitted

# reduce 48 omitted

# reduce 49 omitted

# reduce 50 omitted

# reduce 51 omitted

# reduce 52 omitted

# reduce 53 omitted

# reduce 54 omitted

# reduce 55 omitted

# reduce 56 omitted

def _reduce_57(val, _values, result)
      result = val[0]

    result
end

def _reduce_58(val, _values, result)
      result = inline val[0]

    result
end

def _reduce_59(val, _values, result)
      result = inline val[0]

    result
end

def _reduce_60(val, _values, result)
 result << val[1]
    result
end

# reduce 61 omitted

def _reduce_62(val, _values, result)
      result << val[1]

    result
end

# reduce 63 omitted

def _reduce_64(val, _values, result)
      result << val[1]

    result
end

# reduce 65 omitted

# reduce 66 omitted

# reduce 67 omitted

# reduce 68 omitted

# reduce 69 omitted

# reduce 70 omitted

# reduce 71 omitted

# reduce 72 omitted

# reduce 73 omitted

# reduce 74 omitted

# reduce 75 omitted

# reduce 76 omitted

# reduce 77 omitted

def _reduce_78(val, _values, result)
 result << val[1]
    result
end

# reduce 79 omitted

# reduce 80 omitted

# reduce 81 omitted

# reduce 82 omitted

# reduce 83 omitted

# reduce 84 omitted

# reduce 85 omitted

# reduce 86 omitted

# reduce 87 omitted

# reduce 88 omitted

# reduce 89 omitted

# reduce 90 omitted

# reduce 91 omitted

# reduce 92 omitted

# reduce 93 omitted

# reduce 94 omitted

# reduce 95 omitted

# reduce 96 omitted

# reduce 97 omitted

# reduce 98 omitted

# reduce 99 omitted

# reduce 100 omitted

def _reduce_101(val, _values, result)
      index = @block_parser.add_footnote val[1].rdoc
      result = "{*#{index}}[rdoc-label:foottext-#{index}:footmark-#{index}]"

    result
end

def _reduce_102(val, _values, result)
      result = inline "<tt>#{val[1]}</tt>", val[1]

    result
end

# reduce 103 omitted

# reduce 104 omitted

# reduce 105 omitted

# reduce 106 omitted

# reduce 107 omitted

# reduce 108 omitted

def _reduce_109(val, _values, result)
 result << val[1]
    result
end

# reduce 110 omitted

def _reduce_111(val, _values, result)
      result = inline val[0]

    result
end

# reduce 112 omitted

def _reduce_113(val, _values, result)
 result = val[1]
    result
end

def _reduce_114(val, _values, result)
 result = val[1]
    result
end

def _reduce_115(val, _values, result)
 result = val[1]
    result
end

# reduce 116 omitted

# reduce 117 omitted

# reduce 118 omitted

# reduce 119 omitted

# reduce 120 omitted

# reduce 121 omitted

# reduce 122 omitted

# reduce 123 omitted

# reduce 124 omitted

# reduce 125 omitted

# reduce 126 omitted

# reduce 127 omitted

# reduce 128 omitted

# reduce 129 omitted

# reduce 130 omitted

# reduce 131 omitted

# reduce 132 omitted

# reduce 133 omitted

# reduce 134 omitted

# reduce 135 omitted

def _reduce_136(val, _values, result)
 result << val[1]
    result
end

# reduce 137 omitted

def _reduce_none(val, _values, result)
  val[0]
end

end   # class InlineParser

end
lib64/ruby/2.2.0/rdoc/rd/inline.rb000064400000002555150402106160012245 0ustar00##
# Inline keeps track of markup and labels to create proper links.

class RDoc::RD::Inline

  ##
  # The text of the reference

  attr_reader :reference

  ##
  # The markup of this reference in RDoc format

  attr_reader :rdoc

  ##
  # Creates a new Inline for +rdoc+ and +reference+.
  #
  # +rdoc+ may be another Inline or a String.  If +reference+ is not given it
  # will use the text from +rdoc+.

  def self.new rdoc, reference = rdoc
    if self === rdoc and reference.equal? rdoc then
      rdoc
    else
      super
    end
  end

  ##
  # Initializes the Inline with +rdoc+ and +inline+

  def initialize rdoc, reference # :not-new:
    @reference = reference.equal?(rdoc) ? reference.dup : reference

    # unpack
    @reference = @reference.reference if self.class === @reference
    @rdoc      = rdoc
  end

  def == other # :nodoc:
    self.class === other and
      @reference == other.reference and @rdoc == other.rdoc
  end

  ##
  # Appends +more+ to this inline.  +more+ may be a String or another Inline.

  def append more
    case more
    when String then
      @reference << more
      @rdoc      << more
    when RDoc::RD::Inline then
      @reference << more.reference
      @rdoc      << more.rdoc
    else
      raise "unknown thingy #{more}"
    end

    self
  end

  def inspect # :nodoc:
    "(inline: #{self})"
  end

  alias to_s rdoc # :nodoc:

end

lib64/ruby/2.2.0/rdoc/rd/block_parser.rb000064400000054267150402106160013444 0ustar00#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.4.12
# from Racc grammer file "".
#

require 'racc/parser.rb'

class RDoc::RD

##
# RD format parser for headings, paragraphs, lists, verbatim sections that
# exist as blocks.

class BlockParser < Racc::Parser


# :stopdoc:

TMPFILE = ["rdtmp", $$, 0]

MARK_TO_LEVEL = {
  '='    => 1,
  '=='   => 2,
  '==='  => 3,
  '====' => 4,
  '+'    => 5,
  '++'   => 6,
}

# :startdoc:

##
# Footnotes for this document

attr_reader :footnotes

##
# Labels for items in this document

attr_reader :labels

##
# Path to find included files in

attr_accessor :include_path

##
# Creates a new RDoc::RD::BlockParser.  Use #parse to parse an rd-format
# document.

def initialize
  @inline_parser = RDoc::RD::InlineParser.new self
  @include_path = []

  # for testing
  @footnotes = []
  @labels    = {}
end

##
# Parses +src+ and returns an RDoc::Markup::Document.

def parse src
  @src = src
  @src.push false

  @footnotes = []
  @labels    = {}

  # @i: index(line no.) of src
  @i = 0

  # stack for current indentation
  @indent_stack = []

  # how indented.
  @current_indent = @indent_stack.join("")

  # RDoc::RD::BlockParser for tmp src
  @subparser = nil

  # which part is in now
  @in_part = nil
  @part_content = []

  @in_verbatim = false

  @yydebug = true

  document = do_parse

  unless @footnotes.empty? then
    blankline = document.parts.pop

    document.parts << RDoc::Markup::Rule.new(1)
    document.parts.concat @footnotes

    document.parts.push blankline
  end

  document
end

##
# Returns the next token from the document

def next_token # :nodoc:
  # preprocessing
  # if it is not in RD part
  # => method
  while @in_part != "rd"
    line = @src[@i]
    @i += 1 # next line

    case line
    # src end
    when false
      return [false, false]
    # RD part begin
    when /^=begin\s*(?:\bRD\b.*)?\s*$/
      if @in_part # if in non-RD part
        @part_content.push(line)
      else
        @in_part = "rd"
        return [:WHITELINE, "=begin\n"] # <= for textblockand
      end
    # non-RD part begin
    when /^=begin\s+(\w+)/
      part = $1
      if @in_part # if in non-RD part
        @part_content.push(line)
      else
        @in_part = part if @tree.filter[part] # if filter exists
#  p "BEGIN_PART: #{@in_part}" # DEBUG
      end
    # non-RD part end
    when /^=end/
      if @in_part # if in non-RD part
#  p "END_PART: #{@in_part}" # DEBUG
        # make Part-in object
        part = RDoc::RD::Part.new(@part_content.join(""), @tree, "r")
        @part_content.clear
        # call filter, part_out is output(Part object)
        part_out = @tree.filter[@in_part].call(part)

        if @tree.filter[@in_part].mode == :rd # if output is RD formatted
          subtree = parse_subtree(part_out.to_a)
        else # if output is target formatted
          basename = TMPFILE.join('.')
          TMPFILE[-1] += 1
          tmpfile = open(@tree.tmp_dir + "/" + basename + ".#{@in_part}", "w")
          tmpfile.print(part_out)
          tmpfile.close
          subtree = parse_subtree(["=begin\n", "<<< #{basename}\n", "=end\n"])
        end
        @in_part = nil
        return [:SUBTREE, subtree]
      end
    else
      if @in_part # if in non-RD part
        @part_content.push(line)
      end
    end
  end

  @current_indent = @indent_stack.join("")
  line = @src[@i]
  case line
  when false
    if_current_indent_equal("") do
      [false, false]
    end
  when /^=end/
    if_current_indent_equal("") do
      @in_part = nil
      [:WHITELINE, "=end"] # MUST CHANGE??
    end
  when /^\s*$/
    @i += 1 # next line
    return [:WHITELINE, ':WHITELINE']
  when /^\#/  # comment line
    @i += 1 # next line
    self.next_token()
  when /^(={1,4})(?!=)\s*(?=\S)/, /^(\+{1,2})(?!\+)\s*(?=\S)/
    rest = $'                    # '
    rest.strip!
    mark = $1
    if_current_indent_equal("") do
      return [:HEADLINE, [MARK_TO_LEVEL[mark], rest]]
    end
  when /^<<<\s*(\S+)/
    file = $1
    if_current_indent_equal("") do
      suffix = file[-3 .. -1]
      if suffix == ".rd" or suffix == ".rb"
        subtree = parse_subtree(get_included(file))
        [:SUBTREE, subtree]
      else
        [:INCLUDE, file]
      end
    end
  when /^(\s*)\*(\s*)/
    rest = $'                   # '
    newIndent = $2
    if_current_indent_equal($1) do
      if @in_verbatim
        [:STRINGLINE, line]
      else
        @indent_stack.push("\s" << newIndent)
        [:ITEMLISTLINE, rest]
      end
    end
  when /^(\s*)(\(\d+\))(\s*)/
    rest = $'                     # '
    mark = $2
    newIndent = $3
    if_current_indent_equal($1) do
      if @in_verbatim
        [:STRINGLINE, line]
      else
        @indent_stack.push("\s" * mark.size << newIndent)
        [:ENUMLISTLINE, rest]
      end
    end
  when /^(\s*):(\s*)/
    rest = $'                    # '
    newIndent = $2
    if_current_indent_equal($1) do
      if @in_verbatim
        [:STRINGLINE, line]
      else
        @indent_stack.push("\s#{$2}")
        [:DESCLISTLINE, rest]
      end
    end
  when /^(\s*)---(?!-|\s*$)/
    indent = $1
    rest = $'
    /\s*/ === rest
    term = $'
    new_indent = $&
    if_current_indent_equal(indent) do
      if @in_verbatim
        [:STRINGLINE, line]
      else
        @indent_stack.push("\s\s\s" + new_indent)
        [:METHODLISTLINE, term]
      end
    end
  when /^(\s*)/
    if_current_indent_equal($1) do
      [:STRINGLINE, line]
    end
  else
    raise "[BUG] parsing error may occured."
  end
end

##
# Yields to the given block if +indent+ matches the current indent, otherwise
# an indentation token is processed.

def if_current_indent_equal(indent)
  indent = indent.sub(/\t/, "\s" * 8)
  if @current_indent == indent
    @i += 1 # next line
    yield
  elsif indent.index(@current_indent) == 0
    @indent_stack.push(indent[@current_indent.size .. -1])
    [:INDENT, ":INDENT"]
  else
    @indent_stack.pop
    [:DEDENT, ":DEDENT"]
  end
end
private :if_current_indent_equal

##
# Cuts off excess whitespace in +src+

def cut_off(src)
  ret = []
  whiteline_buf = []

  line = src.shift
  /^\s*/ =~ line

  indent = Regexp.quote($&)
  ret.push($')

  while line = src.shift
    if /^(\s*)$/ =~ line
      whiteline_buf.push(line)
    elsif /^#{indent}/ =~ line
      unless whiteline_buf.empty?
        ret.concat(whiteline_buf)
        whiteline_buf.clear
      end
      ret.push($')
    else
      raise "[BUG]: probably Parser Error while cutting off.\n"
    end
  end
  ret
end
private :cut_off

def set_term_to_element(parent, term)
#  parent.set_term_under_document_struct(term, @tree.document_struct)
  parent.set_term_without_document_struct(term)
end
private :set_term_to_element

##
# Raises a ParseError when invalid formatting is found

def on_error(et, ev, _values)
  prv, cur, nxt = format_line_num(@i, @i+1, @i+2)

  raise ParseError, <<Msg

RD syntax error: line #{@i+1}:
  #{prv}  |#{@src[@i-1].chomp}
  #{cur}=>|#{@src[@i].chomp}
  #{nxt}  |#{@src[@i+1].chomp}

Msg
end

##
# Current line number

def line_index
  @i
end

##
# Parses subtree +src+

def parse_subtree src
  @subparser ||= RDoc::RD::BlockParser.new

  @subparser.parse src
end
private :parse_subtree

##
# Retrieves the content for +file+ from the include_path

def get_included(file)
  included = []

  @include_path.each do |dir|
    file_name = File.join dir, file

    if File.exist? file_name then
      included = IO.readlines file_name
      break
    end
  end

  included
end
private :get_included

##
# Formats line numbers +line_numbers+ prettily

def format_line_num(*line_numbers)
  width = line_numbers.collect{|i| i.to_s.length }.max
  line_numbers.collect{|i| sprintf("%#{width}d", i) }
end
private :format_line_num

##
# Retrieves the content of +values+ as a single String

def content values
 values.map { |value| value.content }.join
end

##
# Creates a paragraph for +value+

def paragraph value
  content = cut_off(value).join(' ').rstrip
  contents = @inline_parser.parse content

  RDoc::Markup::Paragraph.new(*contents)
end

##
# Adds footnote +content+ to the document

def add_footnote content
  index = @footnotes.length / 2 + 1

  footmark_link = "{^#{index}}[rdoc-label:footmark-#{index}:foottext-#{index}]"

  @footnotes << RDoc::Markup::Paragraph.new(footmark_link, ' ', *content)
  @footnotes << RDoc::Markup::BlankLine.new

  index
end

##
# Adds label +label+ to the document

def add_label label
  @labels[label] = true

  label
end

# :stopdoc:

##### State transition tables begin ###

racc_action_table = [
    34,    35,    30,    33,    14,    73,    38,    33,    76,    15,
    88,    34,    35,    30,    33,    40,    34,    35,    30,    33,
    40,    65,    34,    35,    30,    33,    14,    73,    77,    14,
    54,    15,    34,    35,    30,    33,    14,     9,    10,    11,
    12,    15,    34,    35,    30,    33,    14,    73,    81,    54,
    38,    15,    34,    35,    30,    33,    14,    73,    40,    67,
    83,    15,    34,    35,    30,    33,    14,    73,    54,    30,
    35,    15,    34,    35,    30,    33,    34,    47,    36,    14,
    59,    15,    34,    35,    30,    33,    14,    73,    38,   nil,
   nil,    15,    34,    35,    30,    33,   nil,    47,   nil,   nil,
   nil,    15,    34,    35,    30,    33,    14,    73,   nil,   nil,
   nil,    15,    34,    35,    30,    33,    14,    73,   nil,   nil,
   nil,    15,    34,    35,    30,    33,    14,     9,    10,    11,
    12,    15,    34,    35,    30,    33,    14,    73,   nil,   nil,
   nil,    15,    34,    35,    30,    33,    14,    73,    61,    63,
   nil,    15,   nil,    62,    60,    61,    63,    61,    63,    14,
    62,    87,    62,   nil,    79,    34,    35,    30,    33 ]

racc_action_check = [
    86,    86,    86,    86,    86,    86,    57,    31,    49,    86,
    86,    41,    41,    41,    41,    41,    15,    15,    15,    15,
    15,    41,    45,    45,    45,    45,    45,    45,    51,    34,
    54,    45,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    85,    85,    85,    85,    85,    85,    56,    33,
    58,    85,    79,    79,    79,    79,    79,    79,    62,    44,
    66,    79,    78,    78,    78,    78,    78,    78,    30,    28,
    25,    78,    24,    24,    24,    24,    22,    24,     1,    35,
    36,    24,    75,    75,    75,    75,    75,    75,    13,   nil,
   nil,    75,    27,    27,    27,    27,   nil,    27,   nil,   nil,
   nil,    27,    74,    74,    74,    74,    74,    74,   nil,   nil,
   nil,    74,    68,    68,    68,    68,    68,    68,   nil,   nil,
   nil,    68,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,    46,    46,    46,    46,    46,    46,   nil,   nil,
   nil,    46,    47,    47,    47,    47,    47,    47,    39,    39,
   nil,    47,   nil,    39,    39,    82,    82,    64,    64,    52,
    82,    82,    64,   nil,    52,    20,    20,    20,    20 ]

racc_action_pointer = [
    29,    78,   119,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
   nil,   nil,   nil,    81,   nil,    13,   nil,   nil,   nil,   nil,
   162,   nil,    73,   nil,    69,    66,   nil,    89,    64,   nil,
    60,     1,   nil,    41,    22,    72,    80,   nil,   nil,   141,
   nil,     8,   nil,   nil,    46,    19,   129,   139,   nil,    -5,
   nil,    15,   152,   nil,    22,   nil,    35,    -1,    43,   nil,
   nil,   nil,    51,   nil,   150,   nil,    47,   nil,   109,   nil,
   nil,   nil,   nil,   nil,    99,    79,   nil,   nil,    59,    49,
   nil,   nil,   148,   nil,   nil,    39,    -3,   nil,   nil ]

racc_action_default = [
    -2,   -73,    -1,    -4,    -5,    -6,    -7,    -8,    -9,   -10,
   -11,   -12,   -13,   -14,   -16,   -73,   -23,   -24,   -25,   -26,
   -27,   -31,   -32,   -34,   -72,   -36,   -38,   -72,   -40,   -42,
   -59,   -44,   -46,   -59,   -63,   -65,   -73,    -3,   -15,   -73,
   -22,   -73,   -30,   -33,   -73,   -69,   -70,   -71,   -37,   -73,
   -41,   -73,   -51,   -58,   -61,   -45,   -73,   -62,   -64,    89,
   -17,   -19,   -73,   -21,   -18,   -28,   -73,   -35,   -66,   -53,
   -54,   -55,   -56,   -57,   -67,   -68,   -39,   -43,   -49,   -73,
   -60,   -47,   -73,   -29,   -52,   -48,   -73,   -20,   -50 ]

racc_goto_table = [
     4,    39,     4,    68,    74,    75,     5,     6,     5,     6,
    51,    42,    44,    56,     3,    49,    37,    57,    58,    41,
    43,    48,    84,    50,    66,    55,     1,    64,    84,    84,
    45,    46,    42,    45,    46,     2,    85,    86,    80,    84,
    84,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    82,   nil,
   nil,   nil,    78 ]

racc_goto_check = [
     4,    10,     4,    31,    31,    31,     5,     6,     5,     6,
    27,    12,    21,    27,     3,    21,     3,     9,     9,    17,
    19,    23,    32,    26,    11,    29,     1,    10,    32,    32,
     5,     6,    12,     5,     6,     2,    31,    31,    33,    32,
    32,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    10,   nil,
   nil,   nil,     4 ]

racc_goto_pointer = [
   nil,    26,    35,    14,     0,     6,     7,   nil,   nil,   -17,
   -14,   -17,    -9,   nil,   nil,   nil,   nil,     4,   nil,    -2,
   nil,   -12,   nil,    -4,   nil,   nil,    -5,   -20,   nil,    -6,
   nil,   -42,   -46,   -16 ]

racc_goto_default = [
   nil,   nil,   nil,   nil,    70,    71,    72,     7,     8,    13,
   nil,   nil,    21,    16,    17,    18,    19,    20,    22,    23,
    24,   nil,    25,    26,    27,    28,    29,   nil,    31,    32,
    52,   nil,    69,    53 ]

racc_reduce_table = [
  0, 0, :racc_error,
  1, 15, :_reduce_1,
  0, 15, :_reduce_2,
  2, 16, :_reduce_3,
  1, 16, :_reduce_4,
  1, 17, :_reduce_5,
  1, 17, :_reduce_6,
  1, 17, :_reduce_none,
  1, 17, :_reduce_8,
  1, 17, :_reduce_9,
  1, 17, :_reduce_10,
  1, 17, :_reduce_11,
  1, 21, :_reduce_12,
  1, 22, :_reduce_13,
  1, 18, :_reduce_14,
  2, 23, :_reduce_15,
  1, 23, :_reduce_16,
  3, 19, :_reduce_17,
  1, 25, :_reduce_18,
  2, 24, :_reduce_19,
  4, 24, :_reduce_20,
  2, 24, :_reduce_21,
  1, 24, :_reduce_22,
  1, 26, :_reduce_none,
  1, 26, :_reduce_none,
  1, 26, :_reduce_none,
  1, 26, :_reduce_none,
  1, 20, :_reduce_27,
  3, 20, :_reduce_28,
  4, 20, :_reduce_29,
  2, 31, :_reduce_30,
  1, 31, :_reduce_31,
  1, 27, :_reduce_32,
  2, 32, :_reduce_33,
  1, 32, :_reduce_34,
  3, 33, :_reduce_35,
  1, 28, :_reduce_36,
  2, 36, :_reduce_37,
  1, 36, :_reduce_38,
  3, 37, :_reduce_39,
  1, 29, :_reduce_40,
  2, 39, :_reduce_41,
  1, 39, :_reduce_42,
  3, 40, :_reduce_43,
  1, 30, :_reduce_44,
  2, 42, :_reduce_45,
  1, 42, :_reduce_46,
  3, 43, :_reduce_47,
  3, 41, :_reduce_48,
  2, 41, :_reduce_49,
  4, 41, :_reduce_50,
  1, 41, :_reduce_51,
  2, 45, :_reduce_52,
  1, 45, :_reduce_none,
  1, 46, :_reduce_54,
  1, 46, :_reduce_55,
  1, 46, :_reduce_none,
  1, 46, :_reduce_57,
  1, 44, :_reduce_none,
  0, 44, :_reduce_none,
  2, 47, :_reduce_none,
  1, 47, :_reduce_none,
  2, 34, :_reduce_62,
  1, 34, :_reduce_63,
  2, 38, :_reduce_64,
  1, 38, :_reduce_65,
  2, 35, :_reduce_66,
  2, 35, :_reduce_67,
  2, 35, :_reduce_68,
  1, 35, :_reduce_69,
  1, 35, :_reduce_none,
  1, 35, :_reduce_71,
  0, 35, :_reduce_72 ]

racc_reduce_n = 73

racc_shift_n = 89

racc_token_table = {
  false => 0,
  :error => 1,
  :DUMMY => 2,
  :ITEMLISTLINE => 3,
  :ENUMLISTLINE => 4,
  :DESCLISTLINE => 5,
  :METHODLISTLINE => 6,
  :STRINGLINE => 7,
  :WHITELINE => 8,
  :SUBTREE => 9,
  :HEADLINE => 10,
  :INCLUDE => 11,
  :INDENT => 12,
  :DEDENT => 13 }

racc_nt_base = 14

racc_use_result_var = true

Racc_arg = [
  racc_action_table,
  racc_action_check,
  racc_action_default,
  racc_action_pointer,
  racc_goto_table,
  racc_goto_check,
  racc_goto_default,
  racc_goto_pointer,
  racc_nt_base,
  racc_reduce_table,
  racc_token_table,
  racc_shift_n,
  racc_reduce_n,
  racc_use_result_var ]

Racc_token_to_s_table = [
  "$end",
  "error",
  "DUMMY",
  "ITEMLISTLINE",
  "ENUMLISTLINE",
  "DESCLISTLINE",
  "METHODLISTLINE",
  "STRINGLINE",
  "WHITELINE",
  "SUBTREE",
  "HEADLINE",
  "INCLUDE",
  "INDENT",
  "DEDENT",
  "$start",
  "document",
  "blocks",
  "block",
  "textblock",
  "verbatim",
  "lists",
  "headline",
  "include",
  "textblockcontent",
  "verbatimcontent",
  "verbatim_after_lists",
  "list",
  "itemlist",
  "enumlist",
  "desclist",
  "methodlist",
  "lists2",
  "itemlistitems",
  "itemlistitem",
  "first_textblock_in_itemlist",
  "other_blocks_in_list",
  "enumlistitems",
  "enumlistitem",
  "first_textblock_in_enumlist",
  "desclistitems",
  "desclistitem",
  "description_part",
  "methodlistitems",
  "methodlistitem",
  "whitelines",
  "blocks_in_list",
  "block_in_list",
  "whitelines2" ]

Racc_debug_parser = false

##### State transition tables end #####

# reduce 0 omitted

def _reduce_1(val, _values, result)
 result = RDoc::Markup::Document.new(*val[0])
    result
end

def _reduce_2(val, _values, result)
 raise ParseError, "file empty"
    result
end

def _reduce_3(val, _values, result)
 result = val[0].concat val[1]
    result
end

def _reduce_4(val, _values, result)
 result = val[0]
    result
end

def _reduce_5(val, _values, result)
 result = val
    result
end

def _reduce_6(val, _values, result)
 result = val
    result
end

# reduce 7 omitted

def _reduce_8(val, _values, result)
 result = val
    result
end

def _reduce_9(val, _values, result)
 result = val
    result
end

def _reduce_10(val, _values, result)
 result = [RDoc::Markup::BlankLine.new]
    result
end

def _reduce_11(val, _values, result)
 result = val[0].parts
    result
end

def _reduce_12(val, _values, result)
      # val[0] is like [level, title]
      title = @inline_parser.parse(val[0][1])
      result = RDoc::Markup::Heading.new(val[0][0], title)

    result
end

def _reduce_13(val, _values, result)
      result = RDoc::Markup::Include.new val[0], @include_path

    result
end

def _reduce_14(val, _values, result)
      # val[0] is Array of String
      result = paragraph val[0]

    result
end

def _reduce_15(val, _values, result)
 result << val[1].rstrip
    result
end

def _reduce_16(val, _values, result)
 result = [val[0].rstrip]
    result
end

def _reduce_17(val, _values, result)
      # val[1] is Array of String
      content = cut_off val[1]
      result = RDoc::Markup::Verbatim.new(*content)

      # imform to lexer.
      @in_verbatim = false

    result
end

def _reduce_18(val, _values, result)
      # val[0] is Array of String
      content = cut_off val[0]
      result = RDoc::Markup::Verbatim.new(*content)

      # imform to lexer.
      @in_verbatim = false

    result
end

def _reduce_19(val, _values, result)
      result << val[1]

    result
end

def _reduce_20(val, _values, result)
      result.concat val[2]

    result
end

def _reduce_21(val, _values, result)
      result << "\n"

    result
end

def _reduce_22(val, _values, result)
      result = val
      # inform to lexer.
      @in_verbatim = true

    result
end

# reduce 23 omitted

# reduce 24 omitted

# reduce 25 omitted

# reduce 26 omitted

def _reduce_27(val, _values, result)
      result = val[0]

    result
end

def _reduce_28(val, _values, result)
      result = val[1]

    result
end

def _reduce_29(val, _values, result)
      result = val[1].push(val[2])

    result
end

def _reduce_30(val, _values, result)
 result = val[0] << val[1]
    result
end

def _reduce_31(val, _values, result)
 result = [val[0]]
    result
end

def _reduce_32(val, _values, result)
      result = RDoc::Markup::List.new :BULLET, *val[0]

    result
end

def _reduce_33(val, _values, result)
 result.push(val[1])
    result
end

def _reduce_34(val, _values, result)
 result = val
    result
end

def _reduce_35(val, _values, result)
      result = RDoc::Markup::ListItem.new nil, val[0], *val[1]

    result
end

def _reduce_36(val, _values, result)
      result = RDoc::Markup::List.new :NUMBER, *val[0]

    result
end

def _reduce_37(val, _values, result)
 result.push(val[1])
    result
end

def _reduce_38(val, _values, result)
 result = val
    result
end

def _reduce_39(val, _values, result)
      result = RDoc::Markup::ListItem.new nil, val[0], *val[1]

    result
end

def _reduce_40(val, _values, result)
      result = RDoc::Markup::List.new :NOTE, *val[0]

    result
end

def _reduce_41(val, _values, result)
 result.push(val[1])
    result
end

def _reduce_42(val, _values, result)
 result = val
    result
end

def _reduce_43(val, _values, result)
      term = @inline_parser.parse val[0].strip

      result = RDoc::Markup::ListItem.new term, *val[1]

    result
end

def _reduce_44(val, _values, result)
      result = RDoc::Markup::List.new :LABEL, *val[0]

    result
end

def _reduce_45(val, _values, result)
 result.push(val[1])
    result
end

def _reduce_46(val, _values, result)
 result = val
    result
end

def _reduce_47(val, _values, result)
      result = RDoc::Markup::ListItem.new "<tt>#{val[0].strip}</tt>", *val[1]

    result
end

def _reduce_48(val, _values, result)
      result = [val[1]].concat(val[2])

    result
end

def _reduce_49(val, _values, result)
      result = [val[1]]

    result
end

def _reduce_50(val, _values, result)
      result = val[2]

    result
end

def _reduce_51(val, _values, result)
      result = []

    result
end

def _reduce_52(val, _values, result)
 result.concat val[1]
    result
end

# reduce 53 omitted

def _reduce_54(val, _values, result)
 result = val
    result
end

def _reduce_55(val, _values, result)
 result = val
    result
end

# reduce 56 omitted

def _reduce_57(val, _values, result)
 result = []
    result
end

# reduce 58 omitted

# reduce 59 omitted

# reduce 60 omitted

# reduce 61 omitted

def _reduce_62(val, _values, result)
      result = paragraph [val[0]].concat(val[1])

    result
end

def _reduce_63(val, _values, result)
      result = paragraph [val[0]]

    result
end

def _reduce_64(val, _values, result)
      result = paragraph [val[0]].concat(val[1])

    result
end

def _reduce_65(val, _values, result)
      result = paragraph [val[0]]

    result
end

def _reduce_66(val, _values, result)
      result = [val[0]].concat(val[1])

    result
end

def _reduce_67(val, _values, result)
 result.concat val[1]
    result
end

def _reduce_68(val, _values, result)
 result = val[1]
    result
end

def _reduce_69(val, _values, result)
 result = val
    result
end

# reduce 70 omitted

def _reduce_71(val, _values, result)
 result = []
    result
end

def _reduce_72(val, _values, result)
 result = []
    result
end

def _reduce_none(val, _values, result)
  val[0]
end

end   # class BlockParser

end
lib64/ruby/2.2.0/rdoc/known_classes.rb000064400000005137150402106160013232 0ustar00module RDoc

  ##
  # Ruby's built-in classes, modules and exceptions

  KNOWN_CLASSES = {
    "rb_cArray"            => "Array",
    "rb_cBasicObject"      => "BasicObject",
    "rb_cBignum"           => "Bignum",
    "rb_cClass"            => "Class",
    "rb_cData"             => "Data",
    "rb_cDir"              => "Dir",
    "rb_cEncoding"         => "Encoding",
    "rb_cFalseClass"       => "FalseClass",
    "rb_cFile"             => "File",
    "rb_cFixnum"           => "Fixnum",
    "rb_cFloat"            => "Float",
    "rb_cHash"             => "Hash",
    "rb_cIO"               => "IO",
    "rb_cInteger"          => "Integer",
    "rb_cModule"           => "Module",
    "rb_cNilClass"         => "NilClass",
    "rb_cNumeric"          => "Numeric",
    "rb_cObject"           => "Object",
    "rb_cProc"             => "Proc",
    "rb_cRange"            => "Range",
    "rb_cRegexp"           => "Regexp",
    "rb_cRubyVM"           => "RubyVM",
    "rb_cSocket"           => "Socket",
    "rb_cString"           => "String",
    "rb_cStruct"           => "Struct",
    "rb_cSymbol"           => "Symbol",
    "rb_cThread"           => "Thread",
    "rb_cTime"             => "Time",
    "rb_cTrueClass"        => "TrueClass",

    "rb_eArgError"         => "ArgError",
    "rb_eEOFError"         => "EOFError",
    "rb_eException"        => "Exception",
    "rb_eFatal"            => "fatal",
    "rb_eFloatDomainError" => "FloatDomainError",
    "rb_eIOError"          => "IOError",
    "rb_eIndexError"       => "IndexError",
    "rb_eInterrupt"        => "Interrupt",
    "rb_eLoadError"        => "LoadError",
    "rb_eNameError"        => "NameError",
    "rb_eNoMemError"       => "NoMemError",
    "rb_eNotImpError"      => "NotImpError",
    "rb_eRangeError"       => "RangeError",
    "rb_eRuntimeError"     => "RuntimeError",
    "rb_eScriptError"      => "ScriptError",
    "rb_eSecurityError"    => "SecurityError",
    "rb_eSignal"           => "SignalException",
    "rb_eStandardError"    => "StandardError",
    "rb_eSyntaxError"      => "SyntaxError",
    "rb_eSystemCallError"  => "SystemCallError",
    "rb_eSystemExit"       => "SystemExit",
    "rb_eTypeError"        => "TypeError",
    "rb_eZeroDivError"     => "ZeroDivError",

    "rb_mComparable"       => "Comparable",
    "rb_mEnumerable"       => "Enumerable",
    "rb_mErrno"            => "Errno",
    "rb_mFConst"           => "File::Constants",
    "rb_mFileTest"         => "FileTest",
    "rb_mGC"               => "GC",
    "rb_mKernel"           => "Kernel",
    "rb_mMath"             => "Math",
    "rb_mProcess"          => "Process"
  }

end
lib64/ruby/2.2.0/rdoc/ri/task.rb000064400000002453150402106160011733 0ustar00require 'rubygems'
begin
  gem 'rdoc'
rescue Gem::LoadError
end unless defined?(RDoc)

require 'rdoc/task'

##
# RDoc::RI::Task creates ri data in <code>./.rdoc</code> for your project.
#
# It contains the following tasks:
#
# [ri]
#   Build ri data
#
# [clobber_ri]
#   Delete ri data files.  This target is automatically added to the main
#   clobber target.
#
# [reri]
#   Rebuild the ri data from scratch even if they are not out of date.
#
# Simple example:
#
#   require 'rdoc/ri/task'
#
#   RDoc::RI::Task.new do |ri|
#     ri.main = 'README.rdoc'
#     ri.rdoc_files.include 'README.rdoc', 'lib/**/*.rb'
#   end
#
# For further configuration details see RDoc::Task.

class RDoc::RI::Task < RDoc::Task

  DEFAULT_NAMES = { # :nodoc:
    :clobber_rdoc => :clobber_ri,
    :rdoc         => :ri,
    :rerdoc       => :reri,
  }

  ##
  # Create an ri task with the given name. See RDoc::Task for documentation on
  # setting names.

  def initialize name = DEFAULT_NAMES # :yield: self
    super
  end

  def clobber_task_description # :nodoc:
    "Remove RI data files"
  end

  ##
  # Sets default task values

  def defaults
    super

    @rdoc_dir = '.rdoc'
  end

  def rdoc_task_description # :nodoc:
    'Build RI data files'
  end

  def rerdoc_task_description # :nodoc:
    'Rebuild RI data files'
  end
end
lib64/ruby/2.2.0/rdoc/ri/store.rb000064400000000067150402106160012124 0ustar00module RDoc::RI

  Store = RDoc::Store # :nodoc:

end

lib64/ruby/2.2.0/rdoc/ri/formatter.rb000064400000000124150402106160012765 0ustar00##
# For RubyGems backwards compatibility

module RDoc::RI::Formatter # :nodoc:
end
lib64/ruby/2.2.0/rdoc/ri/paths.rb000064400000011341150402106160012104 0ustar00require 'rdoc/ri'

##
# The directories where ri data lives.  Paths can be enumerated via ::each, or
# queried individually via ::system_dir, ::site_dir, ::home_dir and ::gem_dir.

module RDoc::RI::Paths

  #:stopdoc:
  require 'rbconfig'

  version = RbConfig::CONFIG['ruby_version']

  BASE    = if RbConfig::CONFIG.key? 'ridir' then
              File.join RbConfig::CONFIG['ridir'], version
            else
              File.join RbConfig::CONFIG['datadir'], 'ri', version
            end

  homedir = begin
              File.expand_path('~')
            rescue ArgumentError
            end

  homedir ||= ENV['HOME'] ||
              ENV['USERPROFILE'] || ENV['HOMEPATH'] # for 1.8 compatibility

  HOMEDIR = if homedir then
              File.join homedir, ".rdoc"
            end
  #:startdoc:

  ##
  # Iterates over each selected path yielding the directory and type.
  #
  # Yielded types:
  # :system:: Where Ruby's ri data is stored.  Yielded when +system+ is
  #           true
  # :site:: Where ri for installed libraries are stored.  Yielded when
  #         +site+ is true.  Normally no ri data is stored here.
  # :home:: ~/.rdoc.  Yielded when +home+ is true.
  # :gem:: ri data for an installed gem.  Yielded when +gems+ is true.
  # :extra:: ri data directory from the command line.  Yielded for each
  #          entry in +extra_dirs+

  def self.each system = true, site = true, home = true, gems = :latest, *extra_dirs # :yields: directory, type
    return enum_for __method__, system, site, home, gems, *extra_dirs unless
      block_given?

    extra_dirs.each do |dir|
      yield dir, :extra
    end

    yield system_dir,  :system if system
    yield site_dir,    :site   if site
    yield home_dir,    :home   if home and HOMEDIR

    gemdirs(gems).each do |dir|
      yield dir, :gem
    end if gems

    nil
  end

  ##
  # The ri directory for the gem with +gem_name+.

  def self.gem_dir name, version
    req = Gem::Requirement.new "= #{version}"

    spec = Gem::Specification.find_by_name name, req

    File.join spec.doc_dir, 'ri'
  end

  ##
  # The latest installed gems' ri directories.  +filter+ can be :all or
  # :latest.
  #
  # A +filter+ :all includes all versions of gems and includes gems without
  # ri documentation.

  def self.gemdirs filter = :latest
    require 'rubygems' unless defined?(Gem)

    ri_paths = {}

    all = Gem::Specification.map do |spec|
      [File.join(spec.doc_dir, 'ri'), spec.name, spec.version]
    end

    if filter == :all then
      gemdirs = []

      all.group_by do |_, name, _|
        name
      end.sort_by do |group, _|
        group
      end.map do |group, items|
        items.sort_by do |_, _, version|
          version
        end.reverse_each do |dir,|
          gemdirs << dir
        end
      end

      return gemdirs
    end

    all.each do |dir, name, ver|
      next unless File.exist? dir

      if ri_paths[name].nil? or ver > ri_paths[name].first then
        ri_paths[name] = [ver, name, dir]
      end
    end

    ri_paths.sort_by { |_, (_, name, _)| name }.map { |k, v| v.last }
  rescue LoadError
    []
  end

  ##
  # The location of the rdoc data in the user's home directory.
  #
  # Like ::system, ri data in the user's home directory is rare and predates
  # libraries distributed via RubyGems.  ri data is rarely generated into this
  # directory.

  def self.home_dir
    HOMEDIR
  end

  ##
  # Returns existing directories from the selected documentation directories
  # as an Array.
  #
  # See also ::each

  def self.path(system = true, site = true, home = true, gems = :latest, *extra_dirs)
    path = raw_path system, site, home, gems, *extra_dirs

    path.select { |directory| File.directory? directory }
  end

  ##
  # Returns selected documentation directories including nonexistent
  # directories.
  #
  # See also ::each

  def self.raw_path(system, site, home, gems, *extra_dirs)
    path = []

    each(system, site, home, gems, *extra_dirs) do |dir, type|
      path << dir
    end

    path.compact
  end

  ##
  # The location of ri data installed into the site dir.
  #
  # Historically this was available for documentation installed by Ruby
  # libraries predating RubyGems.  It is unlikely to contain any content for
  # modern Ruby installations.

  def self.site_dir
    File.join BASE, 'site'
  end

  ##
  # The location of the built-in ri data.
  #
  # This data is built automatically when `make` is run when Ruby is
  # installed.  If you did not install Ruby by hand you may need to install
  # the documentation yourself.  Please consult the documentation for your
  # package manager or Ruby installer for details.  You can also use the
  # rdoc-data gem to install system ri data for common versions of Ruby.

  def self.system_dir
    File.join BASE, 'system'
  end

end

lib64/ruby/2.2.0/rdoc/ri/driver.rb000064400000104722150402106160012266 0ustar00require 'abbrev'
require 'optparse'

begin
  require 'readline'
rescue LoadError
end

begin
  require 'win32console'
rescue LoadError
end

require 'rdoc'

##
# For RubyGems backwards compatibility

require 'rdoc/ri/formatter'

##
# The RI driver implements the command-line ri tool.
#
# The driver supports:
# * loading RI data from:
#   * Ruby's standard library
#   * RubyGems
#   * ~/.rdoc
#   * A user-supplied directory
# * Paging output (uses RI_PAGER environment variable, PAGER environment
#   variable or the less, more and pager programs)
# * Interactive mode with tab-completion
# * Abbreviated names (ri Zl shows Zlib documentation)
# * Colorized output
# * Merging output from multiple RI data sources

class RDoc::RI::Driver

  ##
  # Base Driver error class

  class Error < RDoc::RI::Error; end

  ##
  # Raised when a name isn't found in the ri data stores

  class NotFoundError < Error

    ##
    # Name that wasn't found

    alias name message

    def message # :nodoc:
      "Nothing known about #{super}"
    end
  end

  ##
  # Show all method documentation following a class or module

  attr_accessor :show_all

  ##
  # An RDoc::RI::Store for each entry in the RI path

  attr_accessor :stores

  ##
  # Controls the user of the pager vs $stdout

  attr_accessor :use_stdout

  ##
  # Default options for ri

  def self.default_options
    options = {}
    options[:interactive] = false
    options[:profile]     = false
    options[:show_all]    = false
    options[:use_cache]   = true
    options[:use_stdout]  = !$stdout.tty?
    options[:width]       = 72

    # By default all standard paths are used.
    options[:use_system]     = true
    options[:use_site]       = true
    options[:use_home]       = true
    options[:use_gems]       = true
    options[:extra_doc_dirs] = []

    return options
  end

  ##
  # Dump +data_path+ using pp

  def self.dump data_path
    require 'pp'

    open data_path, 'rb' do |io|
      pp Marshal.load(io.read)
    end
  end

  ##
  # Parses +argv+ and returns a Hash of options

  def self.process_args argv
    options = default_options

    opts = OptionParser.new do |opt|
      opt.accept File do |file,|
        File.readable?(file) and not File.directory?(file) and file
      end

      opt.program_name = File.basename $0
      opt.version = RDoc::VERSION
      opt.release = nil
      opt.summary_indent = ' ' * 4

      opt.banner = <<-EOT
Usage: #{opt.program_name} [options] [names...]

Where name can be:

  Class | Module | Module::Class

  Class::method | Class#method | Class.method | method

  gem_name: | gem_name:README | gem_name:History

All class names may be abbreviated to their minimum unambiguous form. If a name
is ambiguous, all valid options will be listed.

A '.' matches either class or instance methods, while #method
matches only instance and ::method matches only class methods.

README and other files may be displayed by prefixing them with the gem name
they're contained in.  If the gem name is followed by a ':' all files in the
gem will be shown.  The file name extension may be omitted where it is
unambiguous.

For example:

    #{opt.program_name} Fil
    #{opt.program_name} File
    #{opt.program_name} File.new
    #{opt.program_name} zip
    #{opt.program_name} rdoc:README

Note that shell quoting or escaping may be required for method names containing
punctuation:

    #{opt.program_name} 'Array.[]'
    #{opt.program_name} compact\\!

To see the default directories ri will search, run:

    #{opt.program_name} --list-doc-dirs

Specifying the --system, --site, --home, --gems or --doc-dir options will
limit ri to searching only the specified directories.

ri options may be set in the 'RI' environment variable.

The ri pager can be set with the 'RI_PAGER' environment variable or the
'PAGER' environment variable.
      EOT

      opt.separator nil
      opt.separator "Options:"

      opt.separator nil

      opt.on("--[no-]interactive", "-i",
             "In interactive mode you can repeatedly",
             "look up methods with autocomplete.") do |interactive|
        options[:interactive] = interactive
      end

      opt.separator nil

      opt.on("--[no-]all", "-a",
             "Show all documentation for a class or",
             "module.") do |show_all|
        options[:show_all] = show_all
      end

      opt.separator nil

      opt.on("--[no-]list", "-l",
             "List classes ri knows about.") do |list|
        options[:list] = list
      end

      opt.separator nil

      opt.on("--[no-]pager",
             "Send output directly to stdout,",
             "rather than to a pager.") do |use_pager|
        options[:use_stdout] = !use_pager
      end

      opt.separator nil

      opt.on("-T",
             "Synonym for --no-pager") do
        options[:use_stdout] = true
      end

      opt.separator nil

      opt.on("--width=WIDTH", "-w", OptionParser::DecimalInteger,
             "Set the width of the output.") do |width|
        options[:width] = width
      end

      opt.separator nil

      opt.on("--server [PORT]", Integer,
             "Run RDoc server on the given port.",
             "The default port is 8214.") do |port|
        options[:server] = port || 8214
      end

      opt.separator nil

      formatters = RDoc::Markup.constants.grep(/^To[A-Z][a-z]+$/).sort
      formatters = formatters.sort.map do |formatter|
        formatter.to_s.sub('To', '').downcase
      end
      formatters -= %w[html label test] # remove useless output formats

      opt.on("--format=NAME", "-f",
             "Uses the selected formatter. The default",
             "formatter is bs for paged output and ansi",
             "otherwise. Valid formatters are:",
             formatters.join(' '), formatters) do |value|
        options[:formatter] = RDoc::Markup.const_get "To#{value.capitalize}"
      end

      opt.separator nil
      opt.separator "Data source options:"
      opt.separator nil

      opt.on("--[no-]list-doc-dirs",
             "List the directories from which ri will",
             "source documentation on stdout and exit.") do |list_doc_dirs|
        options[:list_doc_dirs] = list_doc_dirs
      end

      opt.separator nil

      opt.on("--doc-dir=DIRNAME", "-d", Array,
             "List of directories from which to source",
             "documentation in addition to the standard",
             "directories.  May be repeated.") do |value|
        value.each do |dir|
          unless File.directory? dir then
            raise OptionParser::InvalidArgument, "#{dir} is not a directory"
          end

          options[:extra_doc_dirs] << File.expand_path(dir)
        end
      end

      opt.separator nil

      opt.on("--no-standard-docs",
             "Do not include documentation from",
             "the Ruby standard library, site_lib,",
             "installed gems, or ~/.rdoc.",
             "Use with --doc-dir") do
        options[:use_system] = false
        options[:use_site] = false
        options[:use_gems] = false
        options[:use_home] = false
      end

      opt.separator nil

      opt.on("--[no-]system",
             "Include documentation from Ruby's standard",
             "library.  Defaults to true.") do |value|
        options[:use_system] = value
      end

      opt.separator nil

      opt.on("--[no-]site",
             "Include documentation from libraries",
             "installed in site_lib.",
             "Defaults to true.") do |value|
        options[:use_site] = value
      end

      opt.separator nil

      opt.on("--[no-]gems",
             "Include documentation from RubyGems.",
             "Defaults to true.") do |value|
        options[:use_gems] = value
      end

      opt.separator nil

      opt.on("--[no-]home",
             "Include documentation stored in ~/.rdoc.",
             "Defaults to true.") do |value|
        options[:use_home] = value
      end

      opt.separator nil
      opt.separator "Debug options:"
      opt.separator nil

      opt.on("--[no-]profile",
             "Run with the ruby profiler") do |value|
        options[:profile] = value
      end

      opt.separator nil

      opt.on("--dump=CACHE", File,
             "Dumps data from an ri cache or data file") do |value|
        options[:dump_path] = value
      end
    end

    argv = ENV['RI'].to_s.split.concat argv

    opts.parse! argv

    options[:names] = argv

    options[:use_stdout] ||= !$stdout.tty?
    options[:use_stdout] ||= options[:interactive]
    options[:width] ||= 72

    options

  rescue OptionParser::InvalidArgument, OptionParser::InvalidOption => e
    puts opts
    puts
    puts e
    exit 1
  end

  ##
  # Runs the ri command line executable using +argv+

  def self.run argv = ARGV
    options = process_args argv

    if options[:dump_path] then
      dump options[:dump_path]
      return
    end

    ri = new options
    ri.run
  end

  ##
  # Creates a new driver using +initial_options+ from ::process_args

  def initialize initial_options = {}
    @paging = false
    @classes = nil

    options = self.class.default_options.update(initial_options)

    @formatter_klass = options[:formatter]

    require 'profile' if options[:profile]

    @names = options[:names]
    @list = options[:list]

    @doc_dirs = []
    @stores   = []

    RDoc::RI::Paths.each(options[:use_system], options[:use_site],
                         options[:use_home], options[:use_gems],
                         *options[:extra_doc_dirs]) do |path, type|
      @doc_dirs << path

      store = RDoc::RI::Store.new path, type
      store.load_cache
      @stores << store
    end

    @list_doc_dirs = options[:list_doc_dirs]

    @interactive = options[:interactive]
    @server      = options[:server]
    @use_stdout  = options[:use_stdout]
    @show_all    = options[:show_all]

    # pager process for jruby
    @jruby_pager_process = nil
  end

  ##
  # Adds paths for undocumented classes +also_in+ to +out+

  def add_also_in out, also_in
    return if also_in.empty?

    out << RDoc::Markup::Rule.new(1)
    out << RDoc::Markup::Paragraph.new("Also found in:")

    paths = RDoc::Markup::Verbatim.new
    also_in.each do |store|
      paths.parts.push store.friendly_path, "\n"
    end
    out << paths
  end

  ##
  # Adds a class header to +out+ for class +name+ which is described in
  # +classes+.

  def add_class out, name, classes
    heading = if classes.all? { |klass| klass.module? } then
                name
              else
                superclass = classes.map do |klass|
                  klass.superclass unless klass.module?
                end.compact.shift || 'Object'

                superclass = superclass.full_name unless String === superclass

                "#{name} < #{superclass}"
              end

    out << RDoc::Markup::Heading.new(1, heading)
    out << RDoc::Markup::BlankLine.new
  end

  ##
  # Adds "(from ...)" to +out+ for +store+

  def add_from out, store
    out << RDoc::Markup::Paragraph.new("(from #{store.friendly_path})")
  end

  ##
  # Adds +extends+ to +out+

  def add_extends out, extends
    add_extension_modules out, 'Extended by', extends
  end

  ##
  # Adds a list of +extensions+ to this module of the given +type+ to +out+.
  # add_includes and add_extends call this, so you should use those directly.

  def add_extension_modules out, type, extensions
    return if extensions.empty?

    out << RDoc::Markup::Rule.new(1)
    out << RDoc::Markup::Heading.new(1, "#{type}:")

    extensions.each do |modules, store|
      if modules.length == 1 then
        add_extension_modules_single out, store, modules.first
      else
        add_extension_modules_multiple out, store, modules
      end
    end
  end

  ##
  # Renders multiple included +modules+ from +store+ to +out+.

  def add_extension_modules_multiple out, store, modules # :nodoc:
    out << RDoc::Markup::Paragraph.new("(from #{store.friendly_path})")

    wout, with = modules.partition { |incl| incl.comment.empty? }

    out << RDoc::Markup::BlankLine.new unless with.empty?

    with.each do |incl|
      out << RDoc::Markup::Paragraph.new(incl.name)
      out << RDoc::Markup::BlankLine.new
      out << incl.comment
    end

    unless wout.empty? then
      verb = RDoc::Markup::Verbatim.new

      wout.each do |incl|
        verb.push incl.name, "\n"
      end

      out << verb
    end
  end

  ##
  # Adds a single extension module +include+ from +store+ to +out+

  def add_extension_modules_single out, store, include # :nodoc:
    name = include.name
    path = store.friendly_path
    out << RDoc::Markup::Paragraph.new("#{name} (from #{path})")

    if include.comment then
      out << RDoc::Markup::BlankLine.new
      out << include.comment
    end
  end

  ##
  # Adds +includes+ to +out+

  def add_includes out, includes
    add_extension_modules out, 'Includes', includes
  end

  ##
  # Looks up the method +name+ and adds it to +out+

  def add_method out, name
    filtered   = lookup_method name

    method_out = method_document name, filtered

    out.concat method_out.parts
  end

  ##
  # Adds documentation for all methods in +klass+ to +out+

  def add_method_documentation out, klass
    klass.method_list.each do |method|
      begin
        add_method out, method.full_name
      rescue NotFoundError
        next
      end
    end
  end

  ##
  # Adds a list of +methods+ to +out+ with a heading of +name+

  def add_method_list out, methods, name
    return if methods.empty?

    out << RDoc::Markup::Heading.new(1, "#{name}:")
    out << RDoc::Markup::BlankLine.new

    if @use_stdout and !@interactive then
      out.concat methods.map { |method|
        RDoc::Markup::Verbatim.new method
      }
    else
      out << RDoc::Markup::IndentedParagraph.new(2, methods.join(', '))
    end

    out << RDoc::Markup::BlankLine.new
  end

  ##
  # Returns ancestor classes of +klass+

  def ancestors_of klass
    ancestors = []

    unexamined = [klass]
    seen = []

    loop do
      break if unexamined.empty?
      current = unexamined.shift
      seen << current

      stores = classes[current]

      break unless stores and not stores.empty?

      klasses = stores.map do |store|
        store.ancestors[current]
      end.flatten.uniq

      klasses = klasses - seen

      ancestors.concat klasses
      unexamined.concat klasses
    end

    ancestors.reverse
  end

  ##
  # For RubyGems backwards compatibility

  def class_cache # :nodoc:
  end

  ##
  # Builds a RDoc::Markup::Document from +found+, +klasess+ and +includes+

  def class_document name, found, klasses, includes, extends
    also_in = []

    out = RDoc::Markup::Document.new

    add_class out, name, klasses

    add_includes out, includes
    add_extends  out, extends

    found.each do |store, klass|
      render_class out, store, klass, also_in
    end

    add_also_in out, also_in

    out
  end

  ##
  # Adds the class +comment+ to +out+.

  def class_document_comment out, comment # :nodoc:
    unless comment.empty? then
      out << RDoc::Markup::Rule.new(1)

      if comment.merged? then
        parts = comment.parts
        parts = parts.zip [RDoc::Markup::BlankLine.new] * parts.length
        parts.flatten!
        parts.pop

        out.concat parts
      else
        out << comment
      end
    end
  end

  ##
  # Adds the constants from +klass+ to the Document +out+.

  def class_document_constants out, klass # :nodoc:
    return if klass.constants.empty?

    out << RDoc::Markup::Heading.new(1, "Constants:")
    out << RDoc::Markup::BlankLine.new
    list = RDoc::Markup::List.new :NOTE

    constants = klass.constants.sort_by { |constant| constant.name }

    list.items.concat constants.map { |constant|
      parts = constant.comment.parts if constant.comment
      parts << RDoc::Markup::Paragraph.new('[not documented]') if
        parts.empty?

      RDoc::Markup::ListItem.new(constant.name, *parts)
    }

    out << list
    out << RDoc::Markup::BlankLine.new
  end

  ##
  # Hash mapping a known class or module to the stores it can be loaded from

  def classes
    return @classes if @classes

    @classes = {}

    @stores.each do |store|
      store.cache[:modules].each do |mod|
        # using default block causes searched-for modules to be added
        @classes[mod] ||= []
        @classes[mod] << store
      end
    end

    @classes
  end

  ##
  # Returns the stores wherein +name+ is found along with the classes,
  # extends and includes that match it

  def classes_and_includes_and_extends_for name
    klasses = []
    extends = []
    includes = []

    found = @stores.map do |store|
      begin
        klass = store.load_class name
        klasses  << klass
        extends  << [klass.extends,  store] if klass.extends
        includes << [klass.includes, store] if klass.includes
        [store, klass]
      rescue RDoc::Store::MissingFileError
      end
    end.compact

    extends.reject!  do |modules,| modules.empty? end
    includes.reject! do |modules,| modules.empty? end

    [found, klasses, includes, extends]
  end

  ##
  # Completes +name+ based on the caches.  For Readline

  def complete name
    completions = []

    klass, selector, method = parse_name name

    complete_klass  name, klass, selector, method, completions
    complete_method name, klass, selector,         completions

    completions.sort.uniq
  end

  def complete_klass name, klass, selector, method, completions # :nodoc:
    klasses = classes.keys

    # may need to include Foo when given Foo::
    klass_name = method ? name : klass

    if name !~ /#|\./ then
      completions.replace klasses.grep(/^#{Regexp.escape klass_name}[^:]*$/)
      completions.concat klasses.grep(/^#{Regexp.escape name}[^:]*$/) if
        name =~ /::$/

      completions << klass if classes.key? klass # to complete a method name
    elsif selector then
      completions << klass if classes.key? klass
    elsif classes.key? klass_name then
      completions << klass_name
    end
  end

  def complete_method name, klass, selector, completions # :nodoc:
    if completions.include? klass and name =~ /#|\.|::/ then
      methods = list_methods_matching name

      if not methods.empty? then
        # remove Foo if given Foo:: and a method was found
        completions.delete klass
      elsif selector then
        # replace Foo with Foo:: as given
        completions.delete klass
        completions << "#{klass}#{selector}"
      end

      completions.concat methods
    end
  end

  ##
  # Converts +document+ to text and writes it to the pager

  def display document
    page do |io|
      text = document.accept formatter(io)

      io.write text
    end
  end

  ##
  # Outputs formatted RI data for class +name+.  Groups undocumented classes

  def display_class name
    return if name =~ /#|\./

    found, klasses, includes, extends =
      classes_and_includes_and_extends_for name

    return if found.empty?

    out = class_document name, found, klasses, includes, extends

    display out
  end

  ##
  # Outputs formatted RI data for method +name+

  def display_method name
    out = RDoc::Markup::Document.new

    add_method out, name

    display out
  end

  ##
  # Outputs formatted RI data for the class or method +name+.
  #
  # Returns true if +name+ was found, false if it was not an alternative could
  # be guessed, raises an error if +name+ couldn't be guessed.

  def display_name name
    if name =~ /\w:(\w|$)/ then
      display_page name
      return true
    end

    return true if display_class name

    display_method name if name =~ /::|#|\./

    true
  rescue NotFoundError
    matches = list_methods_matching name if name =~ /::|#|\./
    matches = classes.keys.grep(/^#{Regexp.escape name}/) if matches.empty?

    raise if matches.empty?

    page do |io|
      io.puts "#{name} not found, maybe you meant:"
      io.puts
      io.puts matches.sort.join("\n")
    end

    false
  end

  ##
  # Displays each name in +name+

  def display_names names
    names.each do |name|
      name = expand_name name

      display_name name
    end
  end

  ##
  # Outputs formatted RI data for page +name+.

  def display_page name
    store_name, page_name = name.split ':', 2

    store = @stores.find { |s| s.source == store_name }

    return display_page_list store if page_name.empty?

    pages = store.cache[:pages]

    unless pages.include? page_name then
      found_names = pages.select do |n|
        n =~ /#{Regexp.escape page_name}\.[^.]+$/
      end

      if found_names.length.zero? then
        return display_page_list store, pages
      elsif found_names.length > 1 then
        return display_page_list store, found_names, page_name
      end

      page_name = found_names.first
    end

    page = store.load_page page_name

    display page.comment
  end

  ##
  # Outputs a formatted RI page list for the pages in +store+.

  def display_page_list store, pages = store.cache[:pages], search = nil
    out = RDoc::Markup::Document.new

    title = if search then
              "#{search} pages"
            else
              'Pages'
            end

    out << RDoc::Markup::Heading.new(1, "#{title} in #{store.friendly_path}")
    out << RDoc::Markup::BlankLine.new

    list = RDoc::Markup::List.new(:BULLET)

    pages.each do |page|
      list << RDoc::Markup::Paragraph.new(page)
    end

    out << list

    display out
  end

  ##
  # Expands abbreviated klass +klass+ into a fully-qualified class.  "Zl::Da"
  # will be expanded to Zlib::DataError.

  def expand_class klass
    klass.split('::').inject '' do |expanded, klass_part|
      expanded << '::' unless expanded.empty?
      short = expanded << klass_part

      subset = classes.keys.select do |klass_name|
        klass_name =~ /^#{expanded}[^:]*$/
      end

      abbrevs = Abbrev.abbrev subset

      expanded = abbrevs[short]

      raise NotFoundError, short unless expanded

      expanded.dup
    end
  end

  ##
  # Expands the class portion of +name+ into a fully-qualified class.  See
  # #expand_class.

  def expand_name name
    klass, selector, method = parse_name name

    return [selector, method].join if klass.empty?

    case selector
    when ':' then
      [find_store(klass),   selector, method]
    else
      [expand_class(klass), selector, method]
    end.join
  end

  ##
  # Filters the methods in +found+ trying to find a match for +name+.

  def filter_methods found, name
    regexp = name_regexp name

    filtered = found.find_all do |store, methods|
      methods.any? { |method| method.full_name =~ regexp }
    end

    return filtered unless filtered.empty?

    found
  end

  ##
  # Yields items matching +name+ including the store they were found in, the
  # class being searched for, the class they were found in (an ancestor) the
  # types of methods to look up (from #method_type), and the method name being
  # searched for

  def find_methods name
    klass, selector, method = parse_name name

    types = method_type selector

    klasses = nil
    ambiguous = klass.empty?

    if ambiguous then
      klasses = classes.keys
    else
      klasses = ancestors_of klass
      klasses.unshift klass
    end

    methods = []

    klasses.each do |ancestor|
      ancestors = classes[ancestor]

      next unless ancestors

      klass = ancestor if ambiguous

      ancestors.each do |store|
        methods << [store, klass, ancestor, types, method]
      end
    end

    methods = methods.sort_by do |_, k, a, _, m|
      [k, a, m].compact
    end

    methods.each do |item|
      yield(*item) # :yields: store, klass, ancestor, types, method
    end

    self
  end

  ##
  # Finds the given +pager+ for jruby.  Returns an IO if +pager+ was found.
  #
  # Returns false if +pager+ does not exist.
  #
  # Returns nil if the jruby JVM doesn't support ProcessBuilder redirection
  # (1.6 and older).

  def find_pager_jruby pager
    require 'java'
    require 'shellwords'

    return nil unless java.lang.ProcessBuilder.constants.include? :Redirect

    pager = Shellwords.split pager

    pb = java.lang.ProcessBuilder.new(*pager)
    pb = pb.redirect_output java.lang.ProcessBuilder::Redirect::INHERIT

    @jruby_pager_process = pb.start

    input = @jruby_pager_process.output_stream

    io = input.to_io
    io.sync = true
    io
  rescue java.io.IOException
    false
  end

  ##
  # Finds a store that matches +name+ which can be the name of a gem, "ruby",
  # "home" or "site".
  #
  # See also RDoc::Store#source

  def find_store name
    @stores.each do |store|
      source = store.source

      return source if source == name

      return source if
        store.type == :gem and source =~ /^#{Regexp.escape name}-\d/
    end

    raise RDoc::RI::Driver::NotFoundError, name
  end

  ##
  # Creates a new RDoc::Markup::Formatter.  If a formatter is given with -f,
  # use it.  If we're outputting to a pager, use bs, otherwise ansi.

  def formatter(io)
    if @formatter_klass then
      @formatter_klass.new
    elsif paging? or !io.tty? then
      RDoc::Markup::ToBs.new
    else
      RDoc::Markup::ToAnsi.new
    end
  end

  ##
  # Runs ri interactively using Readline if it is available.

  def interactive
    puts "\nEnter the method name you want to look up."

    if defined? Readline then
      Readline.completion_proc = method :complete
      puts "You can use tab to autocomplete."
    end

    puts "Enter a blank line to exit.\n\n"

    loop do
      name = if defined? Readline then
               Readline.readline ">> "
             else
               print ">> "
               $stdin.gets
             end

      return if name.nil? or name.empty?

      name = expand_name name.strip

      begin
        display_name name
      rescue NotFoundError => e
        puts e.message
      end
    end

  rescue Interrupt
    exit
  end

  ##
  # Is +file+ in ENV['PATH']?

  def in_path? file
    return true if file =~ %r%\A/% and File.exist? file

    ENV['PATH'].split(File::PATH_SEPARATOR).any? do |path|
      File.exist? File.join(path, file)
    end
  end

  ##
  # Lists classes known to ri starting with +names+.  If +names+ is empty all
  # known classes are shown.

  def list_known_classes names = []
    classes = []

    stores.each do |store|
      classes << store.module_names
    end

    classes = classes.flatten.uniq.sort

    unless names.empty? then
      filter = Regexp.union names.map { |name| /^#{name}/ }

      classes = classes.grep filter
    end

    page do |io|
      if paging? or io.tty? then
        if names.empty? then
          io.puts "Classes and Modules known to ri:"
        else
          io.puts "Classes and Modules starting with #{names.join ', '}:"
        end
        io.puts
      end

      io.puts classes.join("\n")
    end
  end

  ##
  # Returns an Array of methods matching +name+

  def list_methods_matching name
    found = []

    find_methods name do |store, klass, ancestor, types, method|
      if types == :instance or types == :both then
        methods = store.instance_methods[ancestor]

        if methods then
          matches = methods.grep(/^#{Regexp.escape method.to_s}/)

          matches = matches.map do |match|
            "#{klass}##{match}"
          end

          found.concat matches
        end
      end

      if types == :class or types == :both then
        methods = store.class_methods[ancestor]

        next unless methods
        matches = methods.grep(/^#{Regexp.escape method.to_s}/)

        matches = matches.map do |match|
          "#{klass}::#{match}"
        end

        found.concat matches
      end
    end

    found.uniq
  end

  ##
  # Loads RI data for method +name+ on +klass+ from +store+.  +type+ and
  # +cache+ indicate if it is a class or instance method.

  def load_method store, cache, klass, type, name
    methods = store.send(cache)[klass]

    return unless methods

    method = methods.find do |method_name|
      method_name == name
    end

    return unless method

    store.load_method klass, "#{type}#{method}"
  rescue RDoc::Store::MissingFileError => e
    comment = RDoc::Comment.new("missing documentation at #{e.file}").parse

    method = RDoc::AnyMethod.new nil, name
    method.comment = comment
    method
  end

  ##
  # Returns an Array of RI data for methods matching +name+

  def load_methods_matching name
    found = []

    find_methods name do |store, klass, ancestor, types, method|
      methods = []

      methods << load_method(store, :class_methods, ancestor, '::',  method) if
        [:class, :both].include? types

      methods << load_method(store, :instance_methods, ancestor, '#',  method) if
        [:instance, :both].include? types

      found << [store, methods.compact]
    end

    found.reject do |path, methods| methods.empty? end
  end

  ##
  # Returns a filtered list of methods matching +name+

  def lookup_method name
    found = load_methods_matching name

    raise NotFoundError, name if found.empty?

    filter_methods found, name
  end

  ##
  # Builds a RDoc::Markup::Document from +found+, +klasses+ and +includes+

  def method_document name, filtered
    out = RDoc::Markup::Document.new

    out << RDoc::Markup::Heading.new(1, name)
    out << RDoc::Markup::BlankLine.new

    filtered.each do |store, methods|
      methods.each do |method|
        render_method out, store, method, name
      end
    end

    out
  end

  ##
  # Returns the type of method (:both, :instance, :class) for +selector+

  def method_type selector
    case selector
    when '.', nil then :both
    when '#'      then :instance
    else               :class
    end
  end

  ##
  # Returns a regular expression for +name+ that will match an
  # RDoc::AnyMethod's name.

  def name_regexp name
    klass, type, name = parse_name name

    case type
    when '#', '::' then
      /^#{klass}#{type}#{Regexp.escape name}$/
    else
      /^#{klass}(#|::)#{Regexp.escape name}$/
    end
  end

  ##
  # Paginates output through a pager program.

  def page
    if pager = setup_pager then
      begin
        yield pager
      ensure
        pager.close
        @jruby_pager_process.wait_for if @jruby_pager_process
      end
    else
      yield $stdout
    end
  rescue Errno::EPIPE
  ensure
    @paging = false
  end

  ##
  # Are we using a pager?

  def paging?
    @paging
  end

  ##
  # Extracts the class, selector and method name parts from +name+ like
  # Foo::Bar#baz.
  #
  # NOTE: Given Foo::Bar, Bar is considered a class even though it may be a
  # method

  def parse_name name
    parts = name.split(/(::?|#|\.)/)

    if parts.length == 1 then
      if parts.first =~ /^[a-z]|^([%&*+\/<>^`|~-]|\+@|-@|<<|<=>?|===?|=>|=~|>>|\[\]=?|~@)$/ then
        type = '.'
        meth = parts.pop
      else
        type = nil
        meth = nil
      end
    elsif parts.length == 2 or parts.last =~ /::|#|\./ then
      type = parts.pop
      meth = nil
    elsif parts[1] == ':' then
      klass = parts.shift
      type  = parts.shift
      meth  = parts.join
    elsif parts[-2] != '::' or parts.last !~ /^[A-Z]/ then
      meth = parts.pop
      type = parts.pop
    end

    klass ||= parts.join

    [klass, type, meth]
  end

  ##
  # Renders the +klass+ from +store+ to +out+.  If the klass has no
  # documentable items the class is added to +also_in+ instead.

  def render_class out, store, klass, also_in # :nodoc:
    comment = klass.comment
    # TODO the store's cache should always return an empty Array
    class_methods    = store.class_methods[klass.full_name]    || []
    instance_methods = store.instance_methods[klass.full_name] || []
    attributes       = store.attributes[klass.full_name]       || []

    if comment.empty? and
       instance_methods.empty? and class_methods.empty? then
      also_in << store
      return
    end

    add_from out, store

    class_document_comment out, comment

    if class_methods or instance_methods or not klass.constants.empty? then
      out << RDoc::Markup::Rule.new(1)
    end

    class_document_constants out, klass

    add_method_list out, class_methods,    'Class methods'
    add_method_list out, instance_methods, 'Instance methods'
    add_method_list out, attributes,       'Attributes'

    add_method_documentation out, klass if @show_all
  end

  def render_method out, store, method, name # :nodoc:
    out << RDoc::Markup::Paragraph.new("(from #{store.friendly_path})")

    unless name =~ /^#{Regexp.escape method.parent_name}/ then
      out << RDoc::Markup::Heading.new(3, "Implementation from #{method.parent_name}")
    end

    out << RDoc::Markup::Rule.new(1)

    render_method_arguments out, method.arglists
    render_method_superclass out, method
    render_method_comment out, method
  end

  def render_method_arguments out, arglists # :nodoc:
    return unless arglists

    arglists = arglists.chomp.split "\n"
    arglists = arglists.map { |line| line + "\n" }
    out << RDoc::Markup::Verbatim.new(*arglists)
    out << RDoc::Markup::Rule.new(1)
  end

  def render_method_comment out, method # :nodoc:
    out << RDoc::Markup::BlankLine.new
    out << method.comment
    out << RDoc::Markup::BlankLine.new
  end

  def render_method_superclass out, method # :nodoc:
    return unless
      method.respond_to?(:superclass_method) and method.superclass_method

    out << RDoc::Markup::BlankLine.new
    out << RDoc::Markup::Heading.new(4, "(Uses superclass method #{method.superclass_method})")
    out << RDoc::Markup::Rule.new(1)
  end

  ##
  # Looks up and displays ri data according to the options given.

  def run
    if @list_doc_dirs then
      puts @doc_dirs
    elsif @list then
      list_known_classes @names
    elsif @server then
      start_server
    elsif @interactive or @names.empty? then
      interactive
    else
      display_names @names
    end
  rescue NotFoundError => e
    abort e.message
  end

  ##
  # Sets up a pager program to pass output through.  Tries the RI_PAGER and
  # PAGER environment variables followed by pager, less then more.

  def setup_pager
    return if @use_stdout

    jruby = Object.const_defined?(:RUBY_ENGINE) && RUBY_ENGINE == 'jruby'

    pagers = [ENV['RI_PAGER'], ENV['PAGER'], 'pager', 'less', 'more']

    pagers.compact.uniq.each do |pager|
      next unless pager

      pager_cmd = pager.split.first

      next unless in_path? pager_cmd

      if jruby then
        case io = find_pager_jruby(pager)
        when nil   then break
        when false then next
        else            io
        end
      else
        io = IO.popen(pager, 'w') rescue next
      end

      next if $? and $?.pid == io.pid and $?.exited? # pager didn't work

      @paging = true

      return io
    end

    @use_stdout = true

    nil
  end

  ##
  # Starts a WEBrick server for ri.

  def start_server
    require 'webrick'

    server = WEBrick::HTTPServer.new :Port => @server

    extra_doc_dirs = @stores.map {|s| s.type == :extra ? s.path : nil}.compact

    server.mount '/', RDoc::Servlet, nil, extra_doc_dirs

    trap 'INT'  do server.shutdown end
    trap 'TERM' do server.shutdown end

    server.start
  end

end

lib64/ruby/2.2.0/rdoc/parser.rb000064400000020075150402106160011653 0ustar00# -*- coding: us-ascii -*-

##
# A parser is simple a class that subclasses RDoc::Parser and implements #scan
# to fill in an RDoc::TopLevel with parsed data.
#
# The initialize method takes an RDoc::TopLevel to fill with parsed content,
# the name of the file to be parsed, the content of the file, an RDoc::Options
# object and an RDoc::Stats object to inform the user of parsed items.  The
# scan method is then called to parse the file and must return the
# RDoc::TopLevel object.  By calling super these items will be set for you.
#
# In order to be used by RDoc the parser needs to register the file extensions
# it can parse.  Use ::parse_files_matching to register extensions.
#
#   require 'rdoc'
#
#   class RDoc::Parser::Xyz < RDoc::Parser
#     parse_files_matching /\.xyz$/
#
#     def initialize top_level, file_name, content, options, stats
#       super
#
#       # extra initialization if needed
#     end
#
#     def scan
#       # parse file and fill in @top_level
#     end
#   end

class RDoc::Parser

  @parsers = []

  class << self

    ##
    # An Array of arrays that maps file extension (or name) regular
    # expressions to parser classes that will parse matching filenames.
    #
    # Use parse_files_matching to register a parser's file extensions.

    attr_reader :parsers

  end

  ##
  # The name of the file being parsed

  attr_reader :file_name

  ##
  # Alias an extension to another extension. After this call, files ending
  # "new_ext" will be parsed using the same parser as "old_ext"

  def self.alias_extension(old_ext, new_ext)
    old_ext = old_ext.sub(/^\.(.*)/, '\1')
    new_ext = new_ext.sub(/^\.(.*)/, '\1')

    parser = can_parse_by_name "xxx.#{old_ext}"
    return false unless parser

    RDoc::Parser.parsers.unshift [/\.#{new_ext}$/, parser]

    true
  end

  ##
  # Determines if the file is a "binary" file which basically means it has
  # content that an RDoc parser shouldn't try to consume.

  def self.binary?(file)
    return false if file =~ /\.(rdoc|txt)$/

    s = File.read(file, 1024) or return false

    have_encoding = s.respond_to? :encoding

    return true if s[0, 2] == Marshal.dump('')[0, 2] or s.index("\x00")

    if have_encoding then
      mode = "r"
      s.sub!(/\A#!.*\n/, '')     # assume shebang line isn't longer than 1024.
      encoding = s[/^\s*\#\s*(?:-\*-\s*)?(?:en)?coding:\s*([^\s;]+?)(?:-\*-|[\s;])/, 1]
      mode = "rb:#{encoding}" if encoding
      s = File.open(file, mode) {|f| f.gets(nil, 1024)}

      not s.valid_encoding?
    else
      if 0.respond_to? :fdiv then
        s.count("\x00-\x7F", "^ -~\t\r\n").fdiv(s.size) > 0.3
      else # HACK 1.8.6
        (s.count("\x00-\x7F", "^ -~\t\r\n").to_f / s.size) > 0.3
      end
    end
  end

  ##
  # Processes common directives for CodeObjects for the C and Ruby parsers.
  #
  # Applies +directive+'s +value+ to +code_object+, if appropriate

  def self.process_directive code_object, directive, value
    warn "RDoc::Parser::process_directive is deprecated and wil be removed in RDoc 4.  Use RDoc::Markup::PreProcess#handle_directive instead" if $-w

    case directive
    when 'nodoc' then
      code_object.document_self = nil # notify nodoc
      code_object.document_children = value.downcase != 'all'
    when 'doc' then
      code_object.document_self = true
      code_object.force_documentation = true
    when 'yield', 'yields' then
      # remove parameter &block
      code_object.params.sub!(/,?\s*&\w+/, '') if code_object.params

      code_object.block_params = value
    when 'arg', 'args' then
      code_object.params = value
    end
  end

  ##
  # Checks if +file+ is a zip file in disguise.  Signatures from
  # http://www.garykessler.net/library/file_sigs.html

  def self.zip? file
    zip_signature = File.read file, 4

    zip_signature == "PK\x03\x04" or
      zip_signature == "PK\x05\x06" or
      zip_signature == "PK\x07\x08"
  rescue
    false
  end

  ##
  # Return a parser that can handle a particular extension

  def self.can_parse file_name
    parser = can_parse_by_name file_name

    # HACK Selenium hides a jar file using a .txt extension
    return if parser == RDoc::Parser::Simple and zip? file_name

    parser
  end

  ##
  # Returns a parser that can handle the extension for +file_name+.  This does
  # not depend upon the file being readable.

  def self.can_parse_by_name file_name
    _, parser = RDoc::Parser.parsers.find { |regexp,| regexp =~ file_name }

    # The default parser must not parse binary files
    ext_name = File.extname file_name
    return parser if ext_name.empty?

    if parser == RDoc::Parser::Simple and ext_name !~ /txt|rdoc/ then
      case check_modeline file_name
      when nil, 'rdoc' then # continue
      else return nil
      end
    end

    parser
  rescue Errno::EACCES
  end

  ##
  # Returns the file type from the modeline in +file_name+

  def self.check_modeline file_name
    line = open file_name do |io|
      io.gets
    end

    /-\*-\s*(.*?\S)\s*-\*-/ =~ line

    return nil unless type = $1

    if /;/ =~ type then
      return nil unless /(?:\s|\A)mode:\s*([^\s;]+)/i =~ type
      type = $1
    end

    return nil if /coding:/i =~ type

    type.downcase
  rescue ArgumentError # invalid byte sequence, etc.
  end

  ##
  # Finds and instantiates the correct parser for the given +file_name+ and
  # +content+.

  def self.for top_level, file_name, content, options, stats
    return if binary? file_name

    parser = use_markup content

    unless parser then
      parse_name = file_name

      # If no extension, look for shebang
      if file_name !~ /\.\w+$/ && content =~ %r{\A#!(.+)} then
        shebang = $1
        case shebang
        when %r{env\s+ruby}, %r{/ruby}
          parse_name = 'dummy.rb'
        end
      end

      parser = can_parse parse_name
    end

    return unless parser

    content = remove_modeline content

    parser.new top_level, file_name, content, options, stats
  rescue SystemCallError
    nil
  end

  ##
  # Record which file types this parser can understand.
  #
  # It is ok to call this multiple times.

  def self.parse_files_matching(regexp)
    RDoc::Parser.parsers.unshift [regexp, self]
  end

  ##
  # Removes an emacs-style modeline from the first line of the document

  def self.remove_modeline content
    content.sub(/\A.*-\*-\s*(.*?\S)\s*-\*-.*\r?\n/, '')
  end

  ##
  # If there is a <tt>markup: parser_name</tt> comment at the front of the
  # file, use it to determine the parser.  For example:
  #
  #   # markup: rdoc
  #   # Class comment can go here
  #
  #   class C
  #   end
  #
  # The comment should appear as the first line of the +content+.
  #
  # If the content contains a shebang or editor modeline the comment may
  # appear on the second or third line.
  #
  # Any comment style may be used to hide the markup comment.

  def self.use_markup content
    markup = content.lines.first(3).grep(/markup:\s+(\w+)/) { $1 }.first

    return unless markup

    # TODO Ruby should be returned only when the filename is correct
    return RDoc::Parser::Ruby if %w[tomdoc markdown].include? markup

    markup = Regexp.escape markup

    _, selected = RDoc::Parser.parsers.find do |_, parser|
      /^#{markup}$/i =~ parser.name.sub(/.*:/, '')
    end

    selected
  end

  ##
  # Creates a new Parser storing +top_level+, +file_name+, +content+,
  # +options+ and +stats+ in instance variables.  In +@preprocess+ an
  # RDoc::Markup::PreProcess object is created which allows processing of
  # directives.

  def initialize top_level, file_name, content, options, stats
    @top_level = top_level
    @top_level.parser = self.class
    @store = @top_level.store

    @file_name = file_name
    @content = content
    @options = options
    @stats = stats

    @preprocess = RDoc::Markup::PreProcess.new @file_name, @options.rdoc_include
    @preprocess.options = @options
  end

  autoload :RubyTools, 'rdoc/parser/ruby_tools'
  autoload :Text,      'rdoc/parser/text'

end

# simple must come first in order to show up last in the parsers list
require 'rdoc/parser/simple'
require 'rdoc/parser/c'
require 'rdoc/parser/changelog'
require 'rdoc/parser/markdown'
require 'rdoc/parser/rd'
require 'rdoc/parser/ruby'

lib64/ruby/2.2.0/digest.rb000064400000005447150402106160010715 0ustar00require 'digest.so'

module Digest
  # A mutex for Digest().
  REQUIRE_MUTEX = Mutex.new

  def self.const_missing(name) # :nodoc:
    case name
    when :SHA256, :SHA384, :SHA512
      lib = 'digest/sha2.so'
    else
      lib = File.join('digest', name.to_s.downcase)
    end

    begin
      require lib
    rescue LoadError
      raise LoadError, "library not found for class Digest::#{name} -- #{lib}", caller(1)
    end
    unless Digest.const_defined?(name)
      raise NameError, "uninitialized constant Digest::#{name}", caller(1)
    end
    Digest.const_get(name)
  end

  class ::Digest::Class
    # Creates a digest object and reads a given file, _name_.
    # Optional arguments are passed to the constructor of the digest
    # class.
    #
    #   p Digest::SHA256.file("X11R6.8.2-src.tar.bz2").hexdigest
    #   # => "f02e3c85572dc9ad7cb77c2a638e3be24cc1b5bea9fdbb0b0299c9668475c534"
    def self.file(name, *args)
      new(*args).file(name)
    end

    # Returns the base64 encoded hash value of a given _string_.  The
    # return value is properly padded with '=' and contains no line
    # feeds.
    def self.base64digest(str, *args)
      [digest(str, *args)].pack('m0')
    end
  end

  module Instance
    # Updates the digest with the contents of a given file _name_ and
    # returns self.
    def file(name)
      File.open(name, "rb") {|f|
        buf = ""
        while f.read(16384, buf)
          update buf
        end
      }
      self
    end

    # If none is given, returns the resulting hash value of the digest
    # in a base64 encoded form, keeping the digest's state.
    #
    # If a +string+ is given, returns the hash value for the given
    # +string+ in a base64 encoded form, resetting the digest to the
    # initial state before and after the process.
    #
    # In either case, the return value is properly padded with '=' and
    # contains no line feeds.
    def base64digest(str = nil)
      [str ? digest(str) : digest].pack('m0')
    end

    # Returns the resulting hash value and resets the digest to the
    # initial state.
    def base64digest!
      [digest!].pack('m0')
    end
  end
end

# call-seq:
#   Digest(name) -> digest_subclass
#
# Returns a Digest subclass by +name+ in a thread-safe manner even
# when on-demand loading is involved.
#
#   require 'digest'
#
#   Digest("MD5")
#   # => Digest::MD5
#
#   Digest(:SHA256)
#   # => Digest::SHA256
#
#   Digest(:Foo)
#   # => LoadError: library not found for class Digest::Foo -- digest/foo
def Digest(name)
  const = name.to_sym
  Digest::REQUIRE_MUTEX.synchronize {
    # Ignore autoload's because it is void when we have #const_missing
    Digest.const_missing(const)
  }
rescue LoadError
  # Constants do not necessarily rely on digest/*.
  if Digest.const_defined?(const)
    Digest.const_get(const)
  else
    raise
  end
end
lib64/ruby/2.2.0/monitor.rb000064400000015675150402106160011131 0ustar00# = monitor.rb
#
# Copyright (C) 2001  Shugo Maeda <shugo@ruby-lang.org>
#
# This library is distributed under the terms of the Ruby license.
# You can freely distribute/modify this library.
#

require 'thread'

#
# In concurrent programming, a monitor is an object or module intended to be
# used safely by more than one thread.  The defining characteristic of a
# monitor is that its methods are executed with mutual exclusion.  That is, at
# each point in time, at most one thread may be executing any of its methods.
# This mutual exclusion greatly simplifies reasoning about the implementation
# of monitors compared to reasoning about parallel code that updates a data
# structure.
#
# You can read more about the general principles on the Wikipedia page for
# Monitors[http://en.wikipedia.org/wiki/Monitor_%28synchronization%29]
#
# == Examples
#
# === Simple object.extend
#
#   require 'monitor.rb'
#
#   buf = []
#   buf.extend(MonitorMixin)
#   empty_cond = buf.new_cond
#
#   # consumer
#   Thread.start do
#     loop do
#       buf.synchronize do
#         empty_cond.wait_while { buf.empty? }
#         print buf.shift
#       end
#     end
#   end
#
#   # producer
#   while line = ARGF.gets
#     buf.synchronize do
#       buf.push(line)
#       empty_cond.signal
#     end
#   end
#
# The consumer thread waits for the producer thread to push a line to buf
# while <tt>buf.empty?</tt>.  The producer thread (main thread) reads a
# line from ARGF and pushes it into buf then calls <tt>empty_cond.signal</tt>
# to notify the consumer thread of new data.
#
# === Simple Class include
#
#   require 'monitor'
#
#   class SynchronizedArray < Array
#
#     include MonitorMixin
#
#     def initialize(*args)
#       super(*args)
#     end
#
#     alias :old_shift :shift
#     alias :old_unshift :unshift
#
#     def shift(n=1)
#       self.synchronize do
#         self.old_shift(n)
#       end
#     end
#
#     def unshift(item)
#       self.synchronize do
#         self.old_unshift(item)
#       end
#     end
#
#     # other methods ...
#   end
#
# +SynchronizedArray+ implements an Array with synchronized access to items.
# This Class is implemented as subclass of Array which includes the
# MonitorMixin module.
#
module MonitorMixin
  #
  # FIXME: This isn't documented in Nutshell.
  #
  # Since MonitorMixin.new_cond returns a ConditionVariable, and the example
  # above calls while_wait and signal, this class should be documented.
  #
  class ConditionVariable
    class Timeout < Exception; end

    #
    # Releases the lock held in the associated monitor and waits; reacquires the lock on wakeup.
    #
    # If +timeout+ is given, this method returns after +timeout+ seconds passed,
    # even if no other thread doesn't signal.
    #
    def wait(timeout = nil)
      @monitor.__send__(:mon_check_owner)
      count = @monitor.__send__(:mon_exit_for_cond)
      begin
        @cond.wait(@monitor.instance_variable_get(:@mon_mutex), timeout)
        return true
      ensure
        @monitor.__send__(:mon_enter_for_cond, count)
      end
    end

    #
    # Calls wait repeatedly while the given block yields a truthy value.
    #
    def wait_while
      while yield
        wait
      end
    end

    #
    # Calls wait repeatedly until the given block yields a truthy value.
    #
    def wait_until
      until yield
        wait
      end
    end

    #
    # Wakes up the first thread in line waiting for this lock.
    #
    def signal
      @monitor.__send__(:mon_check_owner)
      @cond.signal
    end

    #
    # Wakes up all threads waiting for this lock.
    #
    def broadcast
      @monitor.__send__(:mon_check_owner)
      @cond.broadcast
    end

    private

    def initialize(monitor)
      @monitor = monitor
      @cond = ::ConditionVariable.new
    end
  end

  def self.extend_object(obj)
    super(obj)
    obj.__send__(:mon_initialize)
  end

  #
  # Attempts to enter exclusive section.  Returns +false+ if lock fails.
  #
  def mon_try_enter
    if @mon_owner != Thread.current
      unless @mon_mutex.try_lock
        return false
      end
      @mon_owner = Thread.current
    end
    @mon_count += 1
    return true
  end
  # For backward compatibility
  alias try_mon_enter mon_try_enter

  #
  # Enters exclusive section.
  #
  def mon_enter
    if @mon_owner != Thread.current
      @mon_mutex.lock
      @mon_owner = Thread.current
    end
    @mon_count += 1
  end

  #
  # Leaves exclusive section.
  #
  def mon_exit
    mon_check_owner
    @mon_count -=1
    if @mon_count == 0
      @mon_owner = nil
      @mon_mutex.unlock
    end
  end

  #
  # Enters exclusive section and executes the block.  Leaves the exclusive
  # section automatically when the block exits.  See example under
  # +MonitorMixin+.
  #
  def mon_synchronize
    mon_enter
    begin
      yield
    ensure
      mon_exit
    end
  end
  alias synchronize mon_synchronize

  #
  # Creates a new MonitorMixin::ConditionVariable associated with the
  # receiver.
  #
  def new_cond
    return ConditionVariable.new(self)
  end

  private

  # Use <tt>extend MonitorMixin</tt> or <tt>include MonitorMixin</tt> instead
  # of this constructor.  Have look at the examples above to understand how to
  # use this module.
  def initialize(*args)
    super
    mon_initialize
  end

  # Initializes the MonitorMixin after being included in a class or when an
  # object has been extended with the MonitorMixin
  def mon_initialize
    @mon_owner = nil
    @mon_count = 0
    @mon_mutex = Mutex.new
  end

  def mon_check_owner
    if @mon_owner != Thread.current
      raise ThreadError, "current thread not owner"
    end
  end

  def mon_enter_for_cond(count)
    @mon_owner = Thread.current
    @mon_count = count
  end

  def mon_exit_for_cond
    count = @mon_count
    @mon_owner = nil
    @mon_count = 0
    return count
  end
end

# Use the Monitor class when you want to have a lock object for blocks with
# mutual exclusion.
#
#   require 'monitor'
#
#   lock = Monitor.new
#   lock.synchronize do
#     # exclusive access
#   end
#
class Monitor
  include MonitorMixin
  alias try_enter try_mon_enter
  alias enter mon_enter
  alias exit mon_exit
end


# Documentation comments:
#  - All documentation comes from Nutshell.
#  - MonitorMixin.new_cond appears in the example, but is not documented in
#    Nutshell.
#  - All the internals (internal modules Accessible and Initializable, class
#    ConditionVariable) appear in RDoc.  It might be good to hide them, by
#    making them private, or marking them :nodoc:, etc.
#  - RDoc doesn't recognise aliases, so we have mon_synchronize documented, but
#    not synchronize.
#  - mon_owner is in Nutshell, but appears as an accessor in a separate module
#    here, so is hard/impossible to RDoc.  Some other useful accessors
#    (mon_count and some queue stuff) are also in this module, and don't appear
#    directly in the RDoc output.
#  - in short, it may be worth changing the code layout in this file to make the
#    documentation easier

# Local variables:
# mode: Ruby
# tab-width: 8
# End:
lib64/ruby/2.2.0/debug.rb000064400000072117150402106160010522 0ustar00# Copyright (C) 2000  Network Applied Communication Laboratory, Inc.
# Copyright (C) 2000  Information-technology Promotion Agency, Japan
# Copyright (C) 2000-2003  NAKAMURA, Hiroshi  <nahi@ruby-lang.org>

require 'continuation'

if $SAFE > 0
  STDERR.print "-r debug.rb is not available in safe mode\n"
  exit 1
end

require 'tracer'
require 'pp'

class Tracer # :nodoc:
  def Tracer.trace_func(*vars)
    Single.trace_func(*vars)
  end
end

SCRIPT_LINES__ = {} unless defined? SCRIPT_LINES__ # :nodoc:

##
# This library provides debugging functionality to Ruby.
#
# To add a debugger to your code, start by requiring +debug+ in your
# program:
#
#   def say(word)
#     require 'debug'
#     puts word
#   end
#
# This will cause Ruby to interrupt execution and show a prompt when the +say+
# method is run.
#
# Once you're inside the prompt, you can start debugging your program.
#
#   (rdb:1) p word
#   "hello"
#
# == Getting help
#
# You can get help at any time by pressing +h+.
#
#   (rdb:1) h
#   Debugger help v.-0.002b
#   Commands
#     b[reak] [file:|class:]<line|method>
#     b[reak] [class.]<line|method>
#                                set breakpoint to some position
#     wat[ch] <expression>       set watchpoint to some expression
#     cat[ch] (<exception>|off)  set catchpoint to an exception
#     b[reak]                    list breakpoints
#     cat[ch]                    show catchpoint
#     del[ete][ nnn]             delete some or all breakpoints
#     disp[lay] <expression>     add expression into display expression list
#     undisp[lay][ nnn]          delete one particular or all display expressions
#     c[ont]                     run until program ends or hit breakpoint
#     s[tep][ nnn]               step (into methods) one line or till line nnn
#     n[ext][ nnn]               go over one line or till line nnn
#     w[here]                    display frames
#     f[rame]                    alias for where
#     l[ist][ (-|nn-mm)]         list program, - lists backwards
#                                nn-mm lists given lines
#     up[ nn]                    move to higher frame
#     down[ nn]                  move to lower frame
#     fin[ish]                   return to outer frame
#     tr[ace] (on|off)           set trace mode of current thread
#     tr[ace] (on|off) all       set trace mode of all threads
#     q[uit]                     exit from debugger
#     v[ar] g[lobal]             show global variables
#     v[ar] l[ocal]              show local variables
#     v[ar] i[nstance] <object>  show instance variables of object
#     v[ar] c[onst] <object>     show constants of object
#     m[ethod] i[nstance] <obj>  show methods of object
#     m[ethod] <class|module>    show instance methods of class or module
#     th[read] l[ist]            list all threads
#     th[read] c[ur[rent]]       show current thread
#     th[read] [sw[itch]] <nnn>  switch thread context to nnn
#     th[read] stop <nnn>        stop thread nnn
#     th[read] resume <nnn>      resume thread nnn
#     p expression               evaluate expression and print its value
#     h[elp]                     print this help
#     <everything else>          evaluate
#
# == Usage
#
# The following is a list of common functionalities that the debugger
# provides.
#
# === Navigating through your code
#
# In general, a debugger is used to find bugs in your program, which
# often means pausing execution and inspecting variables at some point
# in time.
#
# Let's look at an example:
#
#   def my_method(foo)
#     require 'debug'
#     foo = get_foo if foo.nil?
#     raise if foo.nil?
#   end
#
# When you run this program, the debugger will kick in just before the
# +foo+ assignment.
#
#   (rdb:1) p foo
#   nil
#
# In this example, it'd be interesting to move to the next line and
# inspect the value of +foo+ again. You can do that by pressing +n+:
#
#   (rdb:1) n # goes to next line
#   (rdb:1) p foo
#   nil
#
# You now know that the original value of +foo+ was nil, and that it
# still was nil after calling +get_foo+.
#
# Other useful commands for navigating through your code are:
#
# +c+::
#   Runs the program until it either exists or encounters another breakpoint.
#   You usually press +c+ when you are finished debugging your program and
#   want to resume its execution.
# +s+::
#   Steps into method definition. In the previous example, +s+ would take you
#   inside the method definition of +get_foo+.
# +r+::
#   Restart the program.
# +q+::
#   Quit the program.
#
# === Inspecting variables
#
# You can use the debugger to easily inspect both local and global variables.
# We've seen how to inspect local variables before:
#
#   (rdb:1) p my_arg
#   42
#
# You can also pretty print the result of variables or expressions:
#
#   (rdb:1) pp %w{a very long long array containing many words}
#   ["a",
#    "very",
#    "long",
#    ...
#   ]
#
# You can list all local variables with +v l+:
#
#   (rdb:1) v l
#     foo => "hello"
#
# Similarly, you can show all global variables with +v g+:
#
#   (rdb:1) v g
#     all global variables
#
# Finally, you can omit +p+ if you simply want to evaluate a variable or
# expression
#
#   (rdb:1) 5**2
#   25
#
# === Going beyond basics
#
# Ruby Debug provides more advanced functionalities like switching
# between threads, setting breakpoints and watch expressions, and more.
# The full list of commands is available at any time by pressing +h+.
#
# == Staying out of trouble
#
# Make sure you remove every instance of +require 'debug'+ before
# shipping your code. Failing to do so may result in your program
# hanging unpredictably.
#
# Debug is not available in safe mode.

class DEBUGGER__
  MUTEX = Mutex.new # :nodoc:

  class Context # :nodoc:
    DEBUG_LAST_CMD = []

    begin
      require 'readline'
      def readline(prompt, hist)
        Readline::readline(prompt, hist)
      end
    rescue LoadError
      def readline(prompt, hist)
        STDOUT.print prompt
        STDOUT.flush
        line = STDIN.gets
        exit unless line
        line.chomp!
        line
      end
      USE_READLINE = false
    end

    def initialize
      if Thread.current == Thread.main
        @stop_next = 1
      else
        @stop_next = 0
      end
      @last_file = nil
      @file = nil
      @line = nil
      @no_step = nil
      @frames = []
      @finish_pos = 0
      @trace = false
      @catch = "StandardError"
      @suspend_next = false
    end

    def stop_next(n=1)
      @stop_next = n
    end

    def set_suspend
      @suspend_next = true
    end

    def clear_suspend
      @suspend_next = false
    end

    def suspend_all
      DEBUGGER__.suspend
    end

    def resume_all
      DEBUGGER__.resume
    end

    def check_suspend
      while MUTEX.synchronize {
          if @suspend_next
            DEBUGGER__.waiting.push Thread.current
            @suspend_next = false
            true
          end
        }
      end
    end

    def trace?
      @trace
    end

    def set_trace(arg)
      @trace = arg
    end

    def stdout
      DEBUGGER__.stdout
    end

    def break_points
      DEBUGGER__.break_points
    end

    def display
      DEBUGGER__.display
    end

    def context(th)
      DEBUGGER__.context(th)
    end

    def set_trace_all(arg)
      DEBUGGER__.set_trace(arg)
    end

    def set_last_thread(th)
      DEBUGGER__.set_last_thread(th)
    end

    def debug_eval(str, binding)
      begin
        eval(str, binding)
      rescue StandardError, ScriptError => e
        at = eval("caller(1)", binding)
        stdout.printf "%s:%s\n", at.shift, e.to_s.sub(/\(eval\):1:(in `.*?':)?/, '')
        for i in at
          stdout.printf "\tfrom %s\n", i
        end
        throw :debug_error
      end
    end

    def debug_silent_eval(str, binding)
      begin
        eval(str, binding)
      rescue StandardError, ScriptError
        nil
      end
    end

    def var_list(ary, binding)
      ary.sort!
      for v in ary
        stdout.printf "  %s => %s\n", v, eval(v.to_s, binding).inspect
      end
    end

    def debug_variable_info(input, binding)
      case input
      when /^\s*g(?:lobal)?\s*$/
        var_list(global_variables, binding)

      when /^\s*l(?:ocal)?\s*$/
        var_list(eval("local_variables", binding), binding)

      when /^\s*i(?:nstance)?\s+/
        obj = debug_eval($', binding)
        var_list(obj.instance_variables, obj.instance_eval{binding()})

      when /^\s*c(?:onst(?:ant)?)?\s+/
        obj = debug_eval($', binding)
        unless obj.kind_of? Module
          stdout.print "Should be Class/Module: ", $', "\n"
        else
          var_list(obj.constants, obj.module_eval{binding()})
        end
      end
    end

    def debug_method_info(input, binding)
      case input
      when /^i(:?nstance)?\s+/
        obj = debug_eval($', binding)

        len = 0
        for v in obj.methods.sort
          len += v.size + 1
          if len > 70
            len = v.size + 1
            stdout.print "\n"
          end
          stdout.print v, " "
        end
        stdout.print "\n"

      else
        obj = debug_eval(input, binding)
        unless obj.kind_of? Module
          stdout.print "Should be Class/Module: ", input, "\n"
        else
          len = 0
          for v in obj.instance_methods(false).sort
            len += v.size + 1
            if len > 70
              len = v.size + 1
              stdout.print "\n"
            end
            stdout.print v, " "
          end
          stdout.print "\n"
        end
      end
    end

    def thnum
      num = DEBUGGER__.instance_eval{@thread_list[Thread.current]}
      unless num
        DEBUGGER__.make_thread_list
        num = DEBUGGER__.instance_eval{@thread_list[Thread.current]}
      end
      num
    end

    def debug_command(file, line, id, binding)
      MUTEX.lock
      unless defined?($debugger_restart) and $debugger_restart
        callcc{|c| $debugger_restart = c}
      end
      set_last_thread(Thread.current)
      frame_pos = 0
      binding_file = file
      binding_line = line
      previous_line = nil
      if ENV['EMACS']
        stdout.printf "\032\032%s:%d:\n", binding_file, binding_line
      else
        stdout.printf "%s:%d:%s", binding_file, binding_line,
          line_at(binding_file, binding_line)
      end
      @frames[0] = [binding, file, line, id]
      display_expressions(binding)
      prompt = true
      while prompt and input = readline("(rdb:%d) "%thnum(), true)
        catch(:debug_error) do
          if input == ""
            next unless DEBUG_LAST_CMD[0]
            input = DEBUG_LAST_CMD[0]
            stdout.print input, "\n"
          else
            DEBUG_LAST_CMD[0] = input
          end

          case input
          when /^\s*tr(?:ace)?(?:\s+(on|off))?(?:\s+(all))?$/
            if defined?( $2 )
              if $1 == 'on'
                set_trace_all true
              else
                set_trace_all false
              end
            elsif defined?( $1 )
              if $1 == 'on'
                set_trace true
              else
                set_trace false
              end
            end
            if trace?
              stdout.print "Trace on.\n"
            else
              stdout.print "Trace off.\n"
            end

          when /^\s*b(?:reak)?\s+(?:(.+):)?([^.:]+)$/
            pos = $2
            if $1
              klass = debug_silent_eval($1, binding)
              file = $1
            end
            if pos =~ /^\d+$/
              pname = pos
              pos = pos.to_i
            else
              pname = pos = pos.intern.id2name
            end
            break_points.push [true, 0, klass || file, pos]
            stdout.printf "Set breakpoint %d at %s:%s\n", break_points.size, klass || file, pname

          when /^\s*b(?:reak)?\s+(.+)[#.]([^.:]+)$/
            pos = $2.intern.id2name
            klass = debug_eval($1, binding)
            break_points.push [true, 0, klass, pos]
            stdout.printf "Set breakpoint %d at %s.%s\n", break_points.size, klass, pos

          when /^\s*wat(?:ch)?\s+(.+)$/
            exp = $1
            break_points.push [true, 1, exp]
            stdout.printf "Set watchpoint %d:%s\n", break_points.size, exp

          when /^\s*b(?:reak)?$/
            if break_points.find{|b| b[1] == 0}
              n = 1
              stdout.print "Breakpoints:\n"
              break_points.each do |b|
                if b[0] and b[1] == 0
                  stdout.printf "  %d %s:%s\n", n, b[2], b[3]
                end
                n += 1
              end
            end
            if break_points.find{|b| b[1] == 1}
              n = 1
              stdout.print "\n"
              stdout.print "Watchpoints:\n"
              for b in break_points
                if b[0] and b[1] == 1
                  stdout.printf "  %d %s\n", n, b[2]
                end
                n += 1
              end
            end
            if break_points.size == 0
              stdout.print "No breakpoints\n"
            else
              stdout.print "\n"
            end

          when /^\s*del(?:ete)?(?:\s+(\d+))?$/
            pos = $1
            unless pos
              input = readline("Clear all breakpoints? (y/n) ", false)
              if input == "y"
                for b in break_points
                  b[0] = false
                end
              end
            else
              pos = pos.to_i
              if break_points[pos-1]
                break_points[pos-1][0] = false
              else
                stdout.printf "Breakpoint %d is not defined\n", pos
              end
            end

          when /^\s*disp(?:lay)?\s+(.+)$/
            exp = $1
            display.push [true, exp]
            stdout.printf "%d: ", display.size
            display_expression(exp, binding)

          when /^\s*disp(?:lay)?$/
            display_expressions(binding)

          when /^\s*undisp(?:lay)?(?:\s+(\d+))?$/
            pos = $1
            unless pos
              input = readline("Clear all expressions? (y/n) ", false)
              if input == "y"
                for d in display
                  d[0] = false
                end
              end
            else
              pos = pos.to_i
              if display[pos-1]
                display[pos-1][0] = false
              else
                stdout.printf "Display expression %d is not defined\n", pos
              end
            end

          when /^\s*c(?:ont)?$/
            prompt = false

          when /^\s*s(?:tep)?(?:\s+(\d+))?$/
            if $1
              lev = $1.to_i
            else
              lev = 1
            end
            @stop_next = lev
            prompt = false

          when /^\s*n(?:ext)?(?:\s+(\d+))?$/
            if $1
              lev = $1.to_i
            else
              lev = 1
            end
            @stop_next = lev
            @no_step = @frames.size - frame_pos
            prompt = false

          when /^\s*w(?:here)?$/, /^\s*f(?:rame)?$/
            display_frames(frame_pos)

          when /^\s*l(?:ist)?(?:\s+(.+))?$/
            if not $1
              b = previous_line ? previous_line + 10 : binding_line - 5
              e = b + 9
            elsif $1 == '-'
              b = previous_line ? previous_line - 10 : binding_line - 5
              e = b + 9
            else
              b, e = $1.split(/[-,]/)
              if e
                b = b.to_i
                e = e.to_i
              else
                b = b.to_i - 5
                e = b + 9
              end
            end
            previous_line = b
            display_list(b, e, binding_file, binding_line)

          when /^\s*up(?:\s+(\d+))?$/
            previous_line = nil
            if $1
              lev = $1.to_i
            else
              lev = 1
            end
            frame_pos += lev
            if frame_pos >= @frames.size
              frame_pos = @frames.size - 1
              stdout.print "At toplevel\n"
            end
            binding, binding_file, binding_line = @frames[frame_pos]
            stdout.print format_frame(frame_pos)

          when /^\s*down(?:\s+(\d+))?$/
            previous_line = nil
            if $1
              lev = $1.to_i
            else
              lev = 1
            end
            frame_pos -= lev
            if frame_pos < 0
              frame_pos = 0
              stdout.print "At stack bottom\n"
            end
            binding, binding_file, binding_line = @frames[frame_pos]
            stdout.print format_frame(frame_pos)

          when /^\s*fin(?:ish)?$/
            if frame_pos == @frames.size
              stdout.print "\"finish\" not meaningful in the outermost frame.\n"
            else
              @finish_pos = @frames.size - frame_pos
              frame_pos = 0
              prompt = false
            end

          when /^\s*cat(?:ch)?(?:\s+(.+))?$/
            if $1
              excn = $1
              if excn == 'off'
                @catch = nil
                stdout.print "Clear catchpoint.\n"
              else
                @catch = excn
                stdout.printf "Set catchpoint %s.\n", @catch
              end
            else
              if @catch
                stdout.printf "Catchpoint %s.\n", @catch
              else
                stdout.print "No catchpoint.\n"
              end
            end

          when /^\s*q(?:uit)?$/
            input = readline("Really quit? (y/n) ", false)
            if input == "y"
              exit!  # exit -> exit!: No graceful way to stop threads...
            end

          when /^\s*v(?:ar)?\s+/
            debug_variable_info($', binding)

          when /^\s*m(?:ethod)?\s+/
            debug_method_info($', binding)

          when /^\s*th(?:read)?\s+/
            if DEBUGGER__.debug_thread_info($', binding) == :cont
              prompt = false
            end

          when /^\s*pp\s+/
            PP.pp(debug_eval($', binding), stdout)

          when /^\s*p\s+/
            stdout.printf "%s\n", debug_eval($', binding).inspect

          when /^\s*r(?:estart)?$/
            $debugger_restart.call

          when /^\s*h(?:elp)?$/
            debug_print_help()

          else
            v = debug_eval(input, binding)
            stdout.printf "%s\n", v.inspect
          end
        end
      end
      MUTEX.unlock
      resume_all
    end

    def debug_print_help
      stdout.print <<EOHELP
Debugger help v.-0.002b
Commands
  b[reak] [file:|class:]<line|method>
  b[reak] [class.]<line|method>
                             set breakpoint to some position
  wat[ch] <expression>       set watchpoint to some expression
  cat[ch] (<exception>|off)  set catchpoint to an exception
  b[reak]                    list breakpoints
  cat[ch]                    show catchpoint
  del[ete][ nnn]             delete some or all breakpoints
  disp[lay] <expression>     add expression into display expression list
  undisp[lay][ nnn]          delete one particular or all display expressions
  c[ont]                     run until program ends or hit breakpoint
  s[tep][ nnn]               step (into methods) one line or till line nnn
  n[ext][ nnn]               go over one line or till line nnn
  w[here]                    display frames
  f[rame]                    alias for where
  l[ist][ (-|nn-mm)]         list program, - lists backwards
                             nn-mm lists given lines
  up[ nn]                    move to higher frame
  down[ nn]                  move to lower frame
  fin[ish]                   return to outer frame
  tr[ace] (on|off)           set trace mode of current thread
  tr[ace] (on|off) all       set trace mode of all threads
  q[uit]                     exit from debugger
  v[ar] g[lobal]             show global variables
  v[ar] l[ocal]              show local variables
  v[ar] i[nstance] <object>  show instance variables of object
  v[ar] c[onst] <object>     show constants of object
  m[ethod] i[nstance] <obj>  show methods of object
  m[ethod] <class|module>    show instance methods of class or module
  th[read] l[ist]            list all threads
  th[read] c[ur[rent]]       show current thread
  th[read] [sw[itch]] <nnn>  switch thread context to nnn
  th[read] stop <nnn>        stop thread nnn
  th[read] resume <nnn>      resume thread nnn
  pp expression              evaluate expression and pretty_print its value
  p expression               evaluate expression and print its value
  r[estart]                  restart program
  h[elp]                     print this help
  <everything else>          evaluate
EOHELP
    end

    def display_expressions(binding)
      n = 1
      for d in display
        if d[0]
          stdout.printf "%d: ", n
          display_expression(d[1], binding)
        end
        n += 1
      end
    end

    def display_expression(exp, binding)
      stdout.printf "%s = %s\n", exp, debug_silent_eval(exp, binding).to_s
    end

    def frame_set_pos(file, line)
      if @frames[0]
        @frames[0][1] = file
        @frames[0][2] = line
      end
    end

    def display_frames(pos)
      0.upto(@frames.size - 1) do |n|
        if n == pos
          stdout.print "--> "
        else
          stdout.print "    "
        end
        stdout.print format_frame(n)
      end
    end

    def format_frame(pos)
      _, file, line, id = @frames[pos]
      sprintf "#%d %s:%s%s\n", pos + 1, file, line,
        (id ? ":in `#{id.id2name}'" : "")
    end

    def script_lines(file, line)
      unless (lines = SCRIPT_LINES__[file]) and lines != true
        Tracer::Single.get_line(file, line) if File.exist?(file)
        lines = SCRIPT_LINES__[file]
        lines = nil if lines == true
      end
      lines
    end

    def display_list(b, e, file, line)
      if lines = script_lines(file, line)
        stdout.printf "[%d, %d] in %s\n", b, e, file
        b.upto(e) do |n|
          if n > 0 && lines[n-1]
            if n == line
              stdout.printf "=> %d  %s\n", n, lines[n-1].chomp
            else
              stdout.printf "   %d  %s\n", n, lines[n-1].chomp
            end
          end
        end
      else
        stdout.printf "No sourcefile available for %s\n", file
      end
    end

    def line_at(file, line)
      lines = script_lines(file, line)
      if lines and line = lines[line-1]
        return line
      end
      return "\n"
    end

    def debug_funcname(id)
      if id.nil?
        "toplevel"
      else
        id.id2name
      end
    end

    def check_break_points(file, klass, pos, binding, id)
      return false if break_points.empty?
      n = 1
      for b in break_points
        if b[0]           # valid
          if b[1] == 0    # breakpoint
            if (b[2] == file and b[3] == pos) or
                (klass and b[2] == klass and b[3] == pos)
              stdout.printf "Breakpoint %d, %s at %s:%s\n", n, debug_funcname(id), file, pos
              return true
            end
          elsif b[1] == 1 # watchpoint
            if debug_silent_eval(b[2], binding)
              stdout.printf "Watchpoint %d, %s at %s:%s\n", n, debug_funcname(id), file, pos
              return true
            end
          end
        end
        n += 1
      end
      return false
    end

    def excn_handle(file, line, id, binding)
      if $!.class <= SystemExit
        set_trace_func nil
        exit
      end

      if @catch and ($!.class.ancestors.find { |e| e.to_s == @catch })
        stdout.printf "%s:%d: `%s' (%s)\n", file, line, $!, $!.class
        fs = @frames.size
        tb = caller(0)[-fs..-1]
        if tb
          for i in tb
            stdout.printf "\tfrom %s\n", i
          end
        end
        suspend_all
        debug_command(file, line, id, binding)
      end
    end

    def trace_func(event, file, line, id, binding, klass)
      Tracer.trace_func(event, file, line, id, binding, klass) if trace?
      context(Thread.current).check_suspend
      @file = file
      @line = line
      case event
      when 'line'
        frame_set_pos(file, line)
        if !@no_step or @frames.size == @no_step
          @stop_next -= 1
          @stop_next = -1 if @stop_next < 0
        elsif @frames.size < @no_step
          @stop_next = 0          # break here before leaving...
        else
          # nothing to do. skipped.
        end
        if @stop_next == 0 or check_break_points(file, nil, line, binding, id)
          @no_step = nil
          suspend_all
          debug_command(file, line, id, binding)
        end

      when 'call'
        @frames.unshift [binding, file, line, id]
        if check_break_points(file, klass, id.id2name, binding, id)
          suspend_all
          debug_command(file, line, id, binding)
        end

      when 'c-call'
        frame_set_pos(file, line)

      when 'class'
        @frames.unshift [binding, file, line, id]

      when 'return', 'end'
        if @frames.size == @finish_pos
          @stop_next = 1
          @finish_pos = 0
        end
        @frames.shift

      when 'raise'
        excn_handle(file, line, id, binding)

      end
      @last_file = file
    end
  end

  trap("INT") { DEBUGGER__.interrupt }
  @last_thread = Thread::main
  @max_thread = 1
  @thread_list = {Thread::main => 1}
  @break_points = []
  @display = []
  @waiting = []
  @stdout = STDOUT

  class << DEBUGGER__
    # Returns the IO used as stdout. Defaults to STDOUT
    def stdout
      @stdout
    end

    # Sets the IO used as stdout. Defaults to STDOUT
    def stdout=(s)
      @stdout = s
    end

    # Returns the display expression list
    #
    # See DEBUGGER__ for more usage
    def display
      @display
    end

    # Returns the list of break points where execution will be stopped.
    #
    # See DEBUGGER__ for more usage
    def break_points
      @break_points
    end

    # Returns the list of waiting threads.
    #
    # When stepping through the traces of a function, thread gets suspended, to
    # be resumed later.
    def waiting
      @waiting
    end

    def set_trace( arg )
      MUTEX.synchronize do
        make_thread_list
        for th, in @thread_list
          context(th).set_trace arg
        end
      end
      arg
    end

    def set_last_thread(th)
      @last_thread = th
    end

    def suspend
      MUTEX.synchronize do
        make_thread_list
        for th, in @thread_list
          next if th == Thread.current
          context(th).set_suspend
        end
      end
      # Schedule other threads to suspend as soon as possible.
      Thread.pass
    end

    def resume
      MUTEX.synchronize do
        make_thread_list
        @thread_list.each do |th,|
          next if th == Thread.current
          context(th).clear_suspend
        end
        waiting.each do |th|
          th.run
        end
        waiting.clear
      end
      # Schedule other threads to restart as soon as possible.
      Thread.pass
    end

    def context(thread=Thread.current)
      c = thread[:__debugger_data__]
      unless c
        thread[:__debugger_data__] = c = Context.new
      end
      c
    end

    def interrupt
      context(@last_thread).stop_next
    end

    def get_thread(num)
      th = @thread_list.key(num)
      unless th
        @stdout.print "No thread ##{num}\n"
        throw :debug_error
      end
      th
    end

    def thread_list(num)
      th = get_thread(num)
      if th == Thread.current
        @stdout.print "+"
      else
        @stdout.print " "
      end
      @stdout.printf "%d ", num
      @stdout.print th.inspect, "\t"
      file = context(th).instance_eval{@file}
      if file
        @stdout.print file,":",context(th).instance_eval{@line}
      end
      @stdout.print "\n"
    end

    def thread_list_all
      for th in @thread_list.values.sort
        thread_list(th)
      end
    end

    def make_thread_list
      hash = {}
      for th in Thread::list
        if @thread_list.key? th
          hash[th] = @thread_list[th]
        else
          @max_thread += 1
          hash[th] = @max_thread
        end
      end
      @thread_list = hash
    end

    def debug_thread_info(input, binding)
      case input
      when /^l(?:ist)?/
        make_thread_list
        thread_list_all

      when /^c(?:ur(?:rent)?)?$/
        make_thread_list
        thread_list(@thread_list[Thread.current])

      when /^(?:sw(?:itch)?\s+)?(\d+)/
        make_thread_list
        th = get_thread($1.to_i)
        if th == Thread.current
          @stdout.print "It's the current thread.\n"
        else
          thread_list(@thread_list[th])
          context(th).stop_next
          th.run
          return :cont
        end

      when /^stop\s+(\d+)/
        make_thread_list
        th = get_thread($1.to_i)
        if th == Thread.current
          @stdout.print "It's the current thread.\n"
        elsif th.stop?
          @stdout.print "Already stopped.\n"
        else
          thread_list(@thread_list[th])
          context(th).suspend
        end

      when /^resume\s+(\d+)/
        make_thread_list
        th = get_thread($1.to_i)
        if th == Thread.current
          @stdout.print "It's the current thread.\n"
        elsif !th.stop?
          @stdout.print "Already running."
        else
          thread_list(@thread_list[th])
          th.run
        end
      end
    end
  end

  stdout.printf "Debug.rb\n"
  stdout.printf "Emacs support available.\n\n"
  RubyVM::InstructionSequence.compile_option = {
    trace_instruction: true
  }
  set_trace_func proc { |event, file, line, id, binding, klass, *rest|
    DEBUGGER__.context.trace_func event, file, line, id, binding, klass
  }
end
lib64/ruby/2.2.0/thwait.rb000064400000006500150402106160010725 0ustar00#
#   thwait.rb - thread synchronization class
#       $Release Version: 0.9 $
#       $Revision: 1.3 $
#       by Keiju ISHITSUKA(Nihon Rational Software Co.,Ltd.)

require "thread.rb"
require "e2mmap.rb"

#
# This class watches for termination of multiple threads.  Basic functionality
# (wait until specified threads have terminated) can be accessed through the
# class method ThreadsWait::all_waits.  Finer control can be gained using
# instance methods.
#
# Example:
#
#   ThreadsWait.all_waits(thr1, thr2, ...) do |t|
#     STDERR.puts "Thread #{t} has terminated."
#   end
#
#
#   th = ThreadsWait.new(thread1,...)
#   th.next_wait # next one to be done
#
#
class ThreadsWait
  extend Exception2MessageMapper
  def_exception("ErrNoWaitingThread", "No threads for waiting.")
  def_exception("ErrNoFinishedThread", "No finished threads.")

  #
  # Waits until all specified threads have terminated.  If a block is provided,
  # it is executed for each thread as they terminate.
  #
  def ThreadsWait.all_waits(*threads) # :yield: thread
    tw = ThreadsWait.new(*threads)
    if block_given?
      tw.all_waits do |th|
        yield th
      end
    else
      tw.all_waits
    end
  end

  #
  # Creates a ThreadsWait object, specifying the threads to wait on.
  # Non-blocking.
  #
  def initialize(*threads)
    @threads = []
    @wait_queue = Queue.new
    join_nowait(*threads) unless threads.empty?
  end

  # Returns the array of threads that have not terminated yet.
  attr_reader :threads

  #
  # Returns +true+ if there are no threads in the pool still running.
  #
  def empty?
    @threads.empty?
  end

  #
  # Returns +true+ if any thread has terminated and is ready to be collected.
  #
  def finished?
    !@wait_queue.empty?
  end

  #
  # Waits for specified threads to terminate, and returns when one of
  # the threads terminated.
  #
  def join(*threads)
    join_nowait(*threads)
    next_wait
  end

  #
  # Specifies the threads that this object will wait for, but does not actually
  # wait.
  #
  def join_nowait(*threads)
    threads.flatten!
    @threads.concat threads
    for th in threads
      Thread.start(th) do |t|
        begin
          t.join
        ensure
          @wait_queue.push t
        end
      end
    end
  end

  #
  # Waits until any of the specified threads has terminated, and returns the one
  # that does.
  #
  # If there is no thread to wait, raises +ErrNoWaitingThread+.  If +nonblock+
  # is true, and there is no terminated thread, raises +ErrNoFinishedThread+.
  #
  def next_wait(nonblock = nil)
    ThreadsWait.fail ErrNoWaitingThread if @threads.empty?
    begin
      @threads.delete(th = @wait_queue.pop(nonblock))
      th
    rescue ThreadError
      ThreadsWait.fail ErrNoFinishedThread
    end
  end

  #
  # Waits until all of the specified threads are terminated.  If a block is
  # supplied for the method, it is executed for each thread termination.
  #
  # Raises exceptions in the same manner as +next_wait+.
  #
  def all_waits
    until @threads.empty?
      th = next_wait
      yield th if block_given?
    end
  end
end

##
# An alias for ThreadsWait from thwait.rb

ThWait = ThreadsWait

# Documentation comments:
#  - Source of documentation is evenly split between Nutshell, existing
#    comments, and my own rephrasing.
#  - I'm not particularly confident that the comments are all exactly correct.
lib64/ruby/2.2.0/weakref.rb000064400000005651150402106160011057 0ustar00require "delegate"

# Weak Reference class that allows a referenced object to be
# garbage-collected.
#
# A WeakRef may be used exactly like the object it references.
#
# Usage:
#
#   foo = Object.new            # create a new object instance
#   p foo.to_s                  # original's class
#   foo = WeakRef.new(foo)      # reassign foo with WeakRef instance
#   p foo.to_s                  # should be same class
#   GC.start                    # start the garbage collector
#   p foo.to_s                  # should raise exception (recycled)
#
# == Example
#
# With help from WeakRef, we can implement our own rudimentary WeakHash class.
#
# We will call it WeakHash, since it's really just a Hash except all of it's
# keys and values can be garbage collected.
#
#     require 'weakref'
#
#     class WeakHash < Hash
#       def []= key, obj
#         super WeakRef.new(key), WeakRef.new(obj)
#       end
#     end
#
# This is just a simple implementation, we've opened the Hash class and changed
# Hash#store to create a new WeakRef object with +key+ and +obj+ parameters
# before passing them as our key-value pair to the hash.
#
# With this you will have to limit your self to String keys, otherwise you
# will get an ArgumentError because WeakRef cannot create a finalizer for a
# Symbol. Symbols are immutable and cannot be garbage collected.
#
# Let's see it in action:
#
#   omg = "lol"
#   c = WeakHash.new
#   c['foo'] = "bar"
#   c['baz'] = Object.new
#   c['qux'] = omg
#   puts c.inspect
#   #=> {"foo"=>"bar", "baz"=>#<Object:0x007f4ddfc6cb48>, "qux"=>"lol"}
#
#   # Now run the garbage collector
#   GC.start
#   c['foo'] #=> nil
#   c['baz'] #=> nil
#   c['qux'] #=> nil
#   omg      #=> "lol"
#
#   puts c.inspect
#   #=> WeakRef::RefError: Invalid Reference - probably recycled
#
# You can see the local variable +omg+ stayed, although its reference in our
# hash object was garbage collected, along with the rest of the keys and
# values. Also, when we tried to inspect our hash, we got a WeakRef::RefError.
# This is because these objects were also garbage collected.

class WeakRef < Delegator

  ##
  # RefError is raised when a referenced object has been recycled by the
  # garbage collector

  class RefError < StandardError
  end

  @@__map = ::ObjectSpace::WeakMap.new

  ##
  # Creates a weak reference to +orig+
  #
  # Raises an ArgumentError if the given +orig+ is immutable, such as Symbol,
  # Fixnum, or Float.

  def initialize(orig)
    case orig
    when true, false, nil
      @delegate_sd_obj = orig
    else
      @@__map[self] = orig
    end
    super
  end

  def __getobj__ # :nodoc:
    @@__map[self] or defined?(@delegate_sd_obj) ? @delegate_sd_obj :
      Kernel::raise(RefError, "Invalid Reference - probably recycled", Kernel::caller(2))
  end

  def __setobj__(obj) # :nodoc:
  end

  ##
  # Returns true if the referenced object is still alive.

  def weakref_alive?
    @@__map.key?(self) or defined?(@delegate_sd_obj)
  end
end
lib64/ruby/2.2.0/openssl/ssl.rb000064400000023634150402106160011720 0ustar00=begin
= $RCSfile$ -- Ruby-space definitions that completes C-space funcs for SSL

= Info
  'OpenSSL for Ruby 2' project
  Copyright (C) 2001 GOTOU YUUZOU <gotoyuzo@notwork.org>
  All rights reserved.

= Licence
  This program is licenced under the same licence as Ruby.
  (See the file 'LICENCE'.)

= Version
  $Id: ssl.rb 51554 2015-08-12 15:16:42Z nagachika $
=end

require "openssl/buffering"
require "fcntl"

module OpenSSL
  module SSL
    class SSLContext
      DEFAULT_PARAMS = {
        :ssl_version => "SSLv23",
        :verify_mode => OpenSSL::SSL::VERIFY_PEER,
        :ciphers => %w{
          ECDHE-ECDSA-AES128-GCM-SHA256
          ECDHE-RSA-AES128-GCM-SHA256
          ECDHE-ECDSA-AES256-GCM-SHA384
          ECDHE-RSA-AES256-GCM-SHA384
          DHE-RSA-AES128-GCM-SHA256
          DHE-DSS-AES128-GCM-SHA256
          DHE-RSA-AES256-GCM-SHA384
          DHE-DSS-AES256-GCM-SHA384
          ECDHE-ECDSA-AES128-SHA256
          ECDHE-RSA-AES128-SHA256
          ECDHE-ECDSA-AES128-SHA
          ECDHE-RSA-AES128-SHA
          ECDHE-ECDSA-AES256-SHA384
          ECDHE-RSA-AES256-SHA384
          ECDHE-ECDSA-AES256-SHA
          ECDHE-RSA-AES256-SHA
          DHE-RSA-AES128-SHA256
          DHE-RSA-AES256-SHA256
          DHE-RSA-AES128-SHA
          DHE-RSA-AES256-SHA
          DHE-DSS-AES128-SHA256
          DHE-DSS-AES256-SHA256
          DHE-DSS-AES128-SHA
          DHE-DSS-AES256-SHA
          AES128-GCM-SHA256
          AES256-GCM-SHA384
          AES128-SHA256
          AES256-SHA256
          AES128-SHA
          AES256-SHA
          ECDHE-ECDSA-RC4-SHA
          ECDHE-RSA-RC4-SHA
          RC4-SHA
        }.join(":"),
        :options => -> {
          opts = OpenSSL::SSL::OP_ALL
          opts &= ~OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS if defined?(OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS)
          opts |= OpenSSL::SSL::OP_NO_COMPRESSION if defined?(OpenSSL::SSL::OP_NO_COMPRESSION)
          opts |= OpenSSL::SSL::OP_NO_SSLv2 if defined?(OpenSSL::SSL::OP_NO_SSLv2)
          opts |= OpenSSL::SSL::OP_NO_SSLv3 if defined?(OpenSSL::SSL::OP_NO_SSLv3)
          opts
        }.call
      }

      DEFAULT_CERT_STORE = OpenSSL::X509::Store.new
      DEFAULT_CERT_STORE.set_default_paths
      if defined?(OpenSSL::X509::V_FLAG_CRL_CHECK_ALL)
        DEFAULT_CERT_STORE.flags = OpenSSL::X509::V_FLAG_CRL_CHECK_ALL
      end

      ##
      # Sets the parameters for this SSL context to the values in +params+.
      # The keys in +params+ must be assignment methods on SSLContext.
      #
      # If the verify_mode is not VERIFY_NONE and ca_file, ca_path and
      # cert_store are not set then the system default certificate store is
      # used.

      def set_params(params={})
        params = DEFAULT_PARAMS.merge(params)
        params.each{|name, value| self.__send__("#{name}=", value) }
        if self.verify_mode != OpenSSL::SSL::VERIFY_NONE
          unless self.ca_file or self.ca_path or self.cert_store
            self.cert_store = DEFAULT_CERT_STORE
          end
        end
        return params
      end
    end

    module SocketForwarder
      def addr
        to_io.addr
      end

      def peeraddr
        to_io.peeraddr
      end

      def setsockopt(level, optname, optval)
        to_io.setsockopt(level, optname, optval)
      end

      def getsockopt(level, optname)
        to_io.getsockopt(level, optname)
      end

      def fcntl(*args)
        to_io.fcntl(*args)
      end

      def closed?
        to_io.closed?
      end

      def do_not_reverse_lookup=(flag)
        to_io.do_not_reverse_lookup = flag
      end
    end

    module Nonblock
      def initialize(*args)
        flag = File::NONBLOCK
        flag |= @io.fcntl(Fcntl::F_GETFL) if defined?(Fcntl::F_GETFL)
        @io.fcntl(Fcntl::F_SETFL, flag)
        super
      end
    end

    def verify_certificate_identity(cert, hostname)
      should_verify_common_name = true
      cert.extensions.each{|ext|
        next if ext.oid != "subjectAltName"
        ostr = OpenSSL::ASN1.decode(ext.to_der).value.last
        sequence = OpenSSL::ASN1.decode(ostr.value)
        sequence.value.each{|san|
          case san.tag
          when 2 # dNSName in GeneralName (RFC5280)
            should_verify_common_name = false
            return true if verify_hostname(hostname, san.value)
          when 7 # iPAddress in GeneralName (RFC5280)
            should_verify_common_name = false
            # follows GENERAL_NAME_print() in x509v3/v3_alt.c
            if san.value.size == 4
              return true if san.value.unpack('C*').join('.') == hostname
            elsif san.value.size == 16
              return true if san.value.unpack('n*').map { |e| sprintf("%X", e) }.join(':') == hostname
            end
          end
        }
      }
      if should_verify_common_name
        cert.subject.to_a.each{|oid, value|
          if oid == "CN"
            return true if verify_hostname(hostname, value)
          end
        }
      end
      return false
    end
    module_function :verify_certificate_identity

    def verify_hostname(hostname, san) # :nodoc:
      # RFC 5280, IA5String is limited to the set of ASCII characters
      return false unless san.ascii_only?
      return false unless hostname.ascii_only?

      # See RFC 6125, section 6.4.1
      # Matching is case-insensitive.
      san_parts = san.downcase.split(".")

      # TODO: this behavior should probably be more strict
      return san == hostname if san_parts.size < 2

      # Matching is case-insensitive.
      host_parts = hostname.downcase.split(".")

      # RFC 6125, section 6.4.3, subitem 2.
      # If the wildcard character is the only character of the left-most
      # label in the presented identifier, the client SHOULD NOT compare
      # against anything but the left-most label of the reference
      # identifier (e.g., *.example.com would match foo.example.com but
      # not bar.foo.example.com or example.com).
      return false unless san_parts.size == host_parts.size

      # RFC 6125, section 6.4.3, subitem 1.
      # The client SHOULD NOT attempt to match a presented identifier in
      # which the wildcard character comprises a label other than the
      # left-most label (e.g., do not match bar.*.example.net).
      return false unless verify_wildcard(host_parts.shift, san_parts.shift)

      san_parts.join(".") == host_parts.join(".")
    end
    module_function :verify_hostname

    def verify_wildcard(domain_component, san_component) # :nodoc:
      parts = san_component.split("*", -1)

      return false if parts.size > 2
      return san_component == domain_component if parts.size == 1

      # RFC 6125, section 6.4.3, subitem 3.
      # The client SHOULD NOT attempt to match a presented identifier
      # where the wildcard character is embedded within an A-label or
      # U-label of an internationalized domain name.
      return false if domain_component.start_with?("xn--") && san_component != "*"

      parts[0].length + parts[1].length < domain_component.length &&
      domain_component.start_with?(parts[0]) &&
      domain_component.end_with?(parts[1])
    end
    module_function :verify_wildcard

    class SSLSocket
      include Buffering
      include SocketForwarder
      include Nonblock

      ##
      # Perform hostname verification after an SSL connection is established
      #
      # This method MUST be called after calling #connect to ensure that the
      # hostname of a remote peer has been verified.
      def post_connection_check(hostname)
        if peer_cert.nil?
          msg = "Peer verification enabled, but no certificate received."
          if using_anon_cipher?
            msg += " Anonymous cipher suite #{cipher[0]} was negotiated. Anonymous suites must be disabled to use peer verification."
          end
          raise SSLError, msg
        end

        unless OpenSSL::SSL.verify_certificate_identity(peer_cert, hostname)
          raise SSLError, "hostname \"#{hostname}\" does not match the server certificate"
        end
        return true
      end

      def session
        SSL::Session.new(self)
      rescue SSL::Session::SessionError
        nil
      end

      private

      def using_anon_cipher?
        ctx = OpenSSL::SSL::SSLContext.new
        ctx.ciphers = "aNULL"
        ctx.ciphers.include?(cipher)
      end
    end

    ##
    # SSLServer represents a TCP/IP server socket with Secure Sockets Layer.
    class SSLServer
      include SocketForwarder
      # When true then #accept works exactly the same as TCPServer#accept
      attr_accessor :start_immediately

      # Creates a new instance of SSLServer.
      # * +srv+ is an instance of TCPServer.
      # * +ctx+ is an instance of OpenSSL::SSL::SSLContext.
      def initialize(svr, ctx)
        @svr = svr
        @ctx = ctx
        unless ctx.session_id_context
          # see #6137 - session id may not exceed 32 bytes
          prng = ::Random.new($0.hash)
          session_id = prng.bytes(16).unpack('H*')[0]
          @ctx.session_id_context = session_id
        end
        @start_immediately = true
      end

      # Returns the TCPServer passed to the SSLServer when initialized.
      def to_io
        @svr
      end

      # See TCPServer#listen for details.
      def listen(backlog=5)
        @svr.listen(backlog)
      end

      # See BasicSocket#shutdown for details.
      def shutdown(how=Socket::SHUT_RDWR)
        @svr.shutdown(how)
      end

      # Works similar to TCPServer#accept.
      def accept
        # Socket#accept returns [socket, addrinfo].
        # TCPServer#accept returns a socket.
        # The following comma strips addrinfo.
        sock, = @svr.accept
        begin
          ssl = OpenSSL::SSL::SSLSocket.new(sock, @ctx)
          ssl.sync_close = true
          ssl.accept if @start_immediately
          ssl
        rescue Exception => ex
          if ssl
            ssl.close
          else
            sock.close
          end
          raise ex
        end
      end

      # See IO#close for details.
      def close
        @svr.close
      end
    end
  end
end
lib64/ruby/2.2.0/openssl/digest.rb000064400000003602150402106170012370 0ustar00#--
#
# $RCSfile$
#
# = Ruby-space predefined Digest subclasses
#
# = Info
# 'OpenSSL for Ruby 2' project
# Copyright (C) 2002  Michal Rokos <m.rokos@sh.cvut.cz>
# All rights reserved.
#
# = Licence
# This program is licenced under the same licence as Ruby.
# (See the file 'LICENCE'.)
#
# = Version
# $Id: digest.rb 44116 2013-12-10 07:16:03Z nobu $
#
#++

module OpenSSL
  class Digest

    alg = %w(DSS DSS1 MD2 MD4 MD5 MDC2 RIPEMD160 SHA SHA1)
    if OPENSSL_VERSION_NUMBER > 0x00908000
      alg += %w(SHA224 SHA256 SHA384 SHA512)
    end

    # Return the +data+ hash computed with +name+ Digest. +name+ is either the
    # long name or short name of a supported digest algorithm.
    #
    # === Examples
    #
    #   OpenSSL::Digest.digest("SHA256", "abc")
    #
    # which is equivalent to:
    #
    #   OpenSSL::Digest::SHA256.digest("abc")

    def self.digest(name, data)
      super(data, name)
    end

    alg.each{|name|
      klass = Class.new(self) {
        define_method(:initialize, ->(data = nil) {super(name, data)})
      }
      singleton = (class << klass; self; end)
      singleton.class_eval{
        define_method(:digest){|data| new.digest(data) }
        define_method(:hexdigest){|data| new.hexdigest(data) }
      }
      const_set(name, klass)
    }

    # Deprecated.
    #
    # This class is only provided for backwards compatibility.
    class Digest < Digest # :nodoc:
      # Deprecated.
      #
      # See OpenSSL::Digest.new
      def initialize(*args)
        warn('Digest::Digest is deprecated; use Digest')
        super(*args)
      end
    end

  end # Digest

  # Returns a Digest subclass by +name+.
  #
  #   require 'openssl'
  #
  #   OpenSSL::Digest("MD5")
  #   # => OpenSSL::Digest::MD5
  #
  #   Digest("Foo")
  #   # => NameError: wrong constant name Foo

  def Digest(name)
    OpenSSL::Digest.const_get(name)
  end

  module_function :Digest

end # OpenSSL

lib64/ruby/2.2.0/openssl/cipher.rb000064400000003121150402106170012357 0ustar00#--
#
# $RCSfile$
#
# = Ruby-space predefined Cipher subclasses
#
# = Info
# 'OpenSSL for Ruby 2' project
# Copyright (C) 2002  Michal Rokos <m.rokos@sh.cvut.cz>
# All rights reserved.
#
# = Licence
# This program is licenced under the same licence as Ruby.
# (See the file 'LICENCE'.)
#
# = Version
# $Id: cipher.rb 36895 2012-09-04 00:57:31Z nobu $
#
#++

module OpenSSL
  class Cipher
    %w(AES CAST5 BF DES IDEA RC2 RC4 RC5).each{|name|
      klass = Class.new(Cipher){
        define_method(:initialize){|*args|
          cipher_name = args.inject(name){|n, arg| "#{n}-#{arg}" }
          super(cipher_name)
        }
      }
      const_set(name, klass)
    }

    %w(128 192 256).each{|keylen|
      klass = Class.new(Cipher){
        define_method(:initialize){|mode|
          mode ||= "CBC"
          cipher_name = "AES-#{keylen}-#{mode}"
          super(cipher_name)
        }
      }
      const_set("AES#{keylen}", klass)
    }

    # Generate, set, and return a random key.
    # You must call cipher.encrypt or cipher.decrypt before calling this method.
    def random_key
      str = OpenSSL::Random.random_bytes(self.key_len)
      self.key = str
      return str
    end

    # Generate, set, and return a random iv.
    # You must call cipher.encrypt or cipher.decrypt before calling this method.
    def random_iv
      str = OpenSSL::Random.random_bytes(self.iv_len)
      self.iv = str
      return str
    end

    # This class is only provided for backwards compatibility.  Use OpenSSL::Cipher in the future.
    class Cipher < Cipher
      # add warning
    end
  end # Cipher
end # OpenSSL
lib64/ruby/2.2.0/openssl/x509.rb000064400000012075150402106170011622 0ustar00#--
#
# $RCSfile$
#
# = Ruby-space definitions that completes C-space funcs for X509 and subclasses
#
# = Info
# 'OpenSSL for Ruby 2' project
# Copyright (C) 2002  Michal Rokos <m.rokos@sh.cvut.cz>
# All rights reserved.
#
# = Licence
# This program is licenced under the same licence as Ruby.
# (See the file 'LICENCE'.)
#
# = Version
# $Id: x509.rb 48521 2014-11-20 15:39:03Z usa $
#
#++

module OpenSSL
  module X509
    class ExtensionFactory
      def create_extension(*arg)
        if arg.size > 1
          create_ext(*arg)
        else
          send("create_ext_from_"+arg[0].class.name.downcase, arg[0])
        end
      end

      def create_ext_from_array(ary)
        raise ExtensionError, "unexpected array form" if ary.size > 3
        create_ext(ary[0], ary[1], ary[2])
      end

      def create_ext_from_string(str) # "oid = critical, value"
        oid, value = str.split(/=/, 2)
        oid.strip!
        value.strip!
        create_ext(oid, value)
      end

      def create_ext_from_hash(hash)
        create_ext(hash["oid"], hash["value"], hash["critical"])
      end
    end

    class Extension
      def to_s # "oid = critical, value"
        str = self.oid
        str << " = "
        str << "critical, " if self.critical?
        str << self.value.gsub(/\n/, ", ")
      end

      def to_h # {"oid"=>sn|ln, "value"=>value, "critical"=>true|false}
        {"oid"=>self.oid,"value"=>self.value,"critical"=>self.critical?}
      end

      def to_a
        [ self.oid, self.value, self.critical? ]
      end
    end

    class Name
      module RFC2253DN
        Special = ',=+<>#;'
        HexChar = /[0-9a-fA-F]/
        HexPair = /#{HexChar}#{HexChar}/
        HexString = /#{HexPair}+/
        Pair = /\\(?:[#{Special}]|\\|"|#{HexPair})/
        StringChar = /[^\\"#{Special}]/
        QuoteChar = /[^\\"]/
        AttributeType = /[a-zA-Z][0-9a-zA-Z]*|[0-9]+(?:\.[0-9]+)*/
        AttributeValue = /
          (?!["#])((?:#{StringChar}|#{Pair})*)|
          \#(#{HexString})|
          "((?:#{QuoteChar}|#{Pair})*)"
        /x
        TypeAndValue = /\A(#{AttributeType})=#{AttributeValue}/

        module_function

        def expand_pair(str)
          return nil unless str
          return str.gsub(Pair){
            pair = $&
            case pair.size
            when 2 then pair[1,1]
            when 3 then Integer("0x#{pair[1,2]}").chr
            else raise OpenSSL::X509::NameError, "invalid pair: #{str}"
            end
          }
        end

        def expand_hexstring(str)
          return nil unless str
          der = str.gsub(HexPair){$&.to_i(16).chr }
          a1 = OpenSSL::ASN1.decode(der)
          return a1.value, a1.tag
        end

        def expand_value(str1, str2, str3)
          value = expand_pair(str1)
          value, tag = expand_hexstring(str2) unless value
          value = expand_pair(str3) unless value
          return value, tag
        end

        def scan(dn)
          str = dn
          ary = []
          while true
            if md = TypeAndValue.match(str)
              remain = md.post_match
              type = md[1]
              value, tag = expand_value(md[2], md[3], md[4]) rescue nil
              if value
                type_and_value = [type, value]
                type_and_value.push(tag) if tag
                ary.unshift(type_and_value)
                if remain.length > 2 && remain[0] == ?,
                  str = remain[1..-1]
                  next
                elsif remain.length > 2 && remain[0] == ?+
                  raise OpenSSL::X509::NameError,
                    "multi-valued RDN is not supported: #{dn}"
                elsif remain.empty?
                  break
                end
              end
            end
            msg_dn = dn[0, dn.length - str.length] + " =>" + str
            raise OpenSSL::X509::NameError, "malformed RDN: #{msg_dn}"
          end
          return ary
        end
      end

      class << self
        def parse_rfc2253(str, template=OBJECT_TYPE_TEMPLATE)
          ary = OpenSSL::X509::Name::RFC2253DN.scan(str)
          self.new(ary, template)
        end

        def parse_openssl(str, template=OBJECT_TYPE_TEMPLATE)
          ary = str.scan(/\s*([^\/,]+)\s*/).collect{|i| i[0].split("=", 2) }
          self.new(ary, template)
        end

        alias parse parse_openssl
      end

      def pretty_print(q)
        q.object_group(self) {
          q.text ' '
          q.text to_s(OpenSSL::X509::Name::RFC2253)
        }
      end
    end

    class StoreContext
      def cleanup
        warn "(#{caller.first}) OpenSSL::X509::StoreContext#cleanup is deprecated with no replacement" if $VERBOSE
      end
    end

    class Certificate
      def pretty_print(q)
        q.object_group(self) {
          q.breakable
          q.text 'subject='; q.pp self.subject; q.text ','; q.breakable
          q.text 'issuer='; q.pp self.issuer; q.text ','; q.breakable
          q.text 'serial='; q.pp self.serial; q.text ','; q.breakable
          q.text 'not_before='; q.pp self.not_before; q.text ','; q.breakable
          q.text 'not_after='; q.pp self.not_after
        }
      end
    end
  end
end
lib64/ruby/2.2.0/openssl/buffering.rb000064400000022734150402106170013067 0ustar00# coding: binary
#--
#= $RCSfile$ -- Buffering mix-in module.
#
#= Info
#  'OpenSSL for Ruby 2' project
#  Copyright (C) 2001 GOTOU YUUZOU <gotoyuzo@notwork.org>
#  All rights reserved.
#
#= Licence
#  This program is licenced under the same licence as Ruby.
#  (See the file 'LICENCE'.)
#
#= Version
#  $Id: buffering.rb 43964 2013-12-03 01:44:41Z drbrain $
#++

##
# OpenSSL IO buffering mix-in module.
#
# This module allows an OpenSSL::SSL::SSLSocket to behave like an IO.
#
# You typically won't use this module directly, you can see it implemented in
# OpenSSL::SSL::SSLSocket.

module OpenSSL::Buffering
  include Enumerable

  ##
  # The "sync mode" of the SSLSocket.
  #
  # See IO#sync for full details.

  attr_accessor :sync

  ##
  # Default size to read from or write to the SSLSocket for buffer operations.

  BLOCK_SIZE = 1024*16

  ##
  # Creates an instance of OpenSSL's buffering IO module.

  def initialize(*)
    super
    @eof = false
    @rbuffer = ""
    @sync = @io.sync
  end

  #
  # for reading.
  #
  private

  ##
  # Fills the buffer from the underlying SSLSocket

  def fill_rbuff
    begin
      @rbuffer << self.sysread(BLOCK_SIZE)
    rescue Errno::EAGAIN
      retry
    rescue EOFError
      @eof = true
    end
  end

  ##
  # Consumes +size+ bytes from the buffer

  def consume_rbuff(size=nil)
    if @rbuffer.empty?
      nil
    else
      size = @rbuffer.size unless size
      ret = @rbuffer[0, size]
      @rbuffer[0, size] = ""
      ret
    end
  end

  public

  ##
  # Reads +size+ bytes from the stream.  If +buf+ is provided it must
  # reference a string which will receive the data.
  #
  # See IO#read for full details.

  def read(size=nil, buf=nil)
    if size == 0
      if buf
        buf.clear
        return buf
      else
        return ""
      end
    end
    until @eof
      break if size && size <= @rbuffer.size
      fill_rbuff
    end
    ret = consume_rbuff(size) || ""
    if buf
      buf.replace(ret)
      ret = buf
    end
    (size && ret.empty?) ? nil : ret
  end

  ##
  # Reads at most +maxlen+ bytes from the stream.  If +buf+ is provided it
  # must reference a string which will receive the data.
  #
  # See IO#readpartial for full details.

  def readpartial(maxlen, buf=nil)
    if maxlen == 0
      if buf
        buf.clear
        return buf
      else
        return ""
      end
    end
    if @rbuffer.empty?
      begin
        return sysread(maxlen, buf)
      rescue Errno::EAGAIN
        retry
      end
    end
    ret = consume_rbuff(maxlen)
    if buf
      buf.replace(ret)
      ret = buf
    end
    raise EOFError if ret.empty?
    ret
  end

  ##
  # Reads at most +maxlen+ bytes in the non-blocking manner.
  #
  # When no data can be read without blocking it raises
  # OpenSSL::SSL::SSLError extended by IO::WaitReadable or IO::WaitWritable.
  #
  # IO::WaitReadable means SSL needs to read internally so read_nonblock
  # should be called again when the underlying IO is readable.
  #
  # IO::WaitWritable means SSL needs to write internally so read_nonblock
  # should be called again after the underlying IO is writable.
  #
  # OpenSSL::Buffering#read_nonblock needs two rescue clause as follows:
  #
  #   # emulates blocking read (readpartial).
  #   begin
  #     result = ssl.read_nonblock(maxlen)
  #   rescue IO::WaitReadable
  #     IO.select([io])
  #     retry
  #   rescue IO::WaitWritable
  #     IO.select(nil, [io])
  #     retry
  #   end
  #
  # Note that one reason that read_nonblock writes to the underlying IO is
  # when the peer requests a new TLS/SSL handshake.  See openssl the FAQ for
  # more details.  http://www.openssl.org/support/faq.html

  def read_nonblock(maxlen, buf=nil, exception: true)
    if maxlen == 0
      if buf
        buf.clear
        return buf
      else
        return ""
      end
    end
    if @rbuffer.empty?
      return sysread_nonblock(maxlen, buf, exception: exception)
    end
    ret = consume_rbuff(maxlen)
    if buf
      buf.replace(ret)
      ret = buf
    end
    raise EOFError if ret.empty?
    ret
  end

  ##
  # Reads the next "line+ from the stream.  Lines are separated by +eol+.  If
  # +limit+ is provided the result will not be longer than the given number of
  # bytes.
  #
  # +eol+ may be a String or Regexp.
  #
  # Unlike IO#gets the line read will not be assigned to +$_+.
  #
  # Unlike IO#gets the separator must be provided if a limit is provided.

  def gets(eol=$/, limit=nil)
    idx = @rbuffer.index(eol)
    until @eof
      break if idx
      fill_rbuff
      idx = @rbuffer.index(eol)
    end
    if eol.is_a?(Regexp)
      size = idx ? idx+$&.size : nil
    else
      size = idx ? idx+eol.size : nil
    end
    if limit and limit >= 0
      size = [size, limit].min
    end
    consume_rbuff(size)
  end

  ##
  # Executes the block for every line in the stream where lines are separated
  # by +eol+.
  #
  # See also #gets

  def each(eol=$/)
    while line = self.gets(eol)
      yield line
    end
  end
  alias each_line each

  ##
  # Reads lines from the stream which are separated by +eol+.
  #
  # See also #gets

  def readlines(eol=$/)
    ary = []
    while line = self.gets(eol)
      ary << line
    end
    ary
  end

  ##
  # Reads a line from the stream which is separated by +eol+.
  #
  # Raises EOFError if at end of file.

  def readline(eol=$/)
    raise EOFError if eof?
    gets(eol)
  end

  ##
  # Reads one character from the stream.  Returns nil if called at end of
  # file.

  def getc
    read(1)
  end

  ##
  # Calls the given block once for each byte in the stream.

  def each_byte # :yields: byte
    while c = getc
      yield(c.ord)
    end
  end

  ##
  # Reads a one-character string from the stream.  Raises an EOFError at end
  # of file.

  def readchar
    raise EOFError if eof?
    getc
  end

  ##
  # Pushes character +c+ back onto the stream such that a subsequent buffered
  # character read will return it.
  #
  # Unlike IO#getc multiple bytes may be pushed back onto the stream.
  #
  # Has no effect on unbuffered reads (such as #sysread).

  def ungetc(c)
    @rbuffer[0,0] = c.chr
  end

  ##
  # Returns true if the stream is at file which means there is no more data to
  # be read.

  def eof?
    fill_rbuff if !@eof && @rbuffer.empty?
    @eof && @rbuffer.empty?
  end
  alias eof eof?

  #
  # for writing.
  #
  private

  ##
  # Writes +s+ to the buffer.  When the buffer is full or #sync is true the
  # buffer is flushed to the underlying socket.

  def do_write(s)
    @wbuffer = "" unless defined? @wbuffer
    @wbuffer << s
    @wbuffer.force_encoding(Encoding::BINARY)
    @sync ||= false
    if @sync or @wbuffer.size > BLOCK_SIZE or idx = @wbuffer.rindex($/)
      remain = idx ? idx + $/.size : @wbuffer.length
      nwritten = 0
      while remain > 0
        str = @wbuffer[nwritten,remain]
        begin
          nwrote = syswrite(str)
        rescue Errno::EAGAIN
          retry
        end
        remain -= nwrote
        nwritten += nwrote
      end
      @wbuffer[0,nwritten] = ""
    end
  end

  public

  ##
  # Writes +s+ to the stream.  If the argument is not a string it will be
  # converted using String#to_s.  Returns the number of bytes written.

  def write(s)
    do_write(s)
    s.bytesize
  end

  ##
  # Writes +str+ in the non-blocking manner.
  #
  # If there is buffered data, it is flushed first.  This may block.
  #
  # write_nonblock returns number of bytes written to the SSL connection.
  #
  # When no data can be written without blocking it raises
  # OpenSSL::SSL::SSLError extended by IO::WaitReadable or IO::WaitWritable.
  #
  # IO::WaitReadable means SSL needs to read internally so write_nonblock
  # should be called again after the underlying IO is readable.
  #
  # IO::WaitWritable means SSL needs to write internally so write_nonblock
  # should be called again after underlying IO is writable.
  #
  # So OpenSSL::Buffering#write_nonblock needs two rescue clause as follows.
  #
  #   # emulates blocking write.
  #   begin
  #     result = ssl.write_nonblock(str)
  #   rescue IO::WaitReadable
  #     IO.select([io])
  #     retry
  #   rescue IO::WaitWritable
  #     IO.select(nil, [io])
  #     retry
  #   end
  #
  # Note that one reason that write_nonblock reads from the underlying IO
  # is when the peer requests a new TLS/SSL handshake.  See the openssl FAQ
  # for more details.  http://www.openssl.org/support/faq.html

  def write_nonblock(s, exception: true)
    flush
    syswrite_nonblock(s, exception: exception)
  end

  ##
  # Writes +s+ to the stream.  +s+ will be converted to a String using
  # String#to_s.

  def << (s)
    do_write(s)
    self
  end

  ##
  # Writes +args+ to the stream along with a record separator.
  #
  # See IO#puts for full details.

  def puts(*args)
    s = ""
    if args.empty?
      s << "\n"
    end
    args.each{|arg|
      s << arg.to_s
      if $/ && /\n\z/ !~ s
        s << "\n"
      end
    }
    do_write(s)
    nil
  end

  ##
  # Writes +args+ to the stream.
  #
  # See IO#print for full details.

  def print(*args)
    s = ""
    args.each{ |arg| s << arg.to_s }
    do_write(s)
    nil
  end

  ##
  # Formats and writes to the stream converting parameters under control of
  # the format string.
  #
  # See Kernel#sprintf for format string details.

  def printf(s, *args)
    do_write(s % args)
    nil
  end

  ##
  # Flushes buffered data to the SSLSocket.

  def flush
    osync = @sync
    @sync = true
    do_write ""
    return self
  ensure
    @sync = osync
  end

  ##
  # Closes the SSLSocket and flushes any unwritten data.

  def close
    flush rescue nil
    sysclose
  end
end
lib64/ruby/2.2.0/openssl/config.rb000064400000027703150402106170012366 0ustar00=begin
= Ruby-space definitions that completes C-space funcs for Config

= Info
  Copyright (C) 2010  Hiroshi Nakamura <nahi@ruby-lang.org>

= Licence
  This program is licenced under the same licence as Ruby.
  (See the file 'LICENCE'.)

=end

require 'stringio'

module OpenSSL
  ##
  # = OpenSSL::Config
  #
  # Configuration for the openssl library.
  #
  # Many system's installation of openssl library will depend on your system
  # configuration. See the value of OpenSSL::Config::DEFAULT_CONFIG_FILE for
  # the location of the file for your host.
  #
  # See also http://www.openssl.org/docs/apps/config.html
  class Config
    include Enumerable

    class << self

      ##
      # Parses a given +string+ as a blob that contains configuration for openssl.
      #
      # If the source of the IO is a file, then consider using #parse_config.
      def parse(string)
        c = new()
        parse_config(StringIO.new(string)).each do |section, hash|
          c[section] = hash
        end
        c
      end

      ##
      # load is an alias to ::new
      alias load new

      ##
      # Parses the configuration data read from +io+, see also #parse.
      #
      # Raises a ConfigError on invalid configuration data.
      def parse_config(io)
        begin
          parse_config_lines(io)
        rescue ConfigError => e
          e.message.replace("error in line #{io.lineno}: " + e.message)
          raise
        end
      end

      def get_key_string(data, section, key) # :nodoc:
        if v = data[section] && data[section][key]
          return v
        elsif section == 'ENV'
          if v = ENV[key]
            return v
          end
        end
        if v = data['default'] && data['default'][key]
          return v
        end
      end

    private

      def parse_config_lines(io)
        section = 'default'
        data = {section => {}}
        while definition = get_definition(io)
          definition = clear_comments(definition)
          next if definition.empty?
          if definition[0] == ?[
            if /\[([^\]]*)\]/ =~ definition
              section = $1.strip
              data[section] ||= {}
            else
              raise ConfigError, "missing close square bracket"
            end
          else
            if /\A([^:\s]*)(?:::([^:\s]*))?\s*=(.*)\z/ =~ definition
              if $2
                section = $1
                key = $2
              else
                key = $1
              end
              value = unescape_value(data, section, $3)
              (data[section] ||= {})[key] = value.strip
            else
              raise ConfigError, "missing equal sign"
            end
          end
        end
        data
      end

      # escape with backslash
      QUOTE_REGEXP_SQ = /\A([^'\\]*(?:\\.[^'\\]*)*)'/
      # escape with backslash and doubled dq
      QUOTE_REGEXP_DQ = /\A([^"\\]*(?:""[^"\\]*|\\.[^"\\]*)*)"/
      # escaped char map
      ESCAPE_MAP = {
        "r" => "\r",
        "n" => "\n",
        "b" => "\b",
        "t" => "\t",
      }

      def unescape_value(data, section, value)
        scanned = []
        while m = value.match(/['"\\$]/)
          scanned << m.pre_match
          c = m[0]
          value = m.post_match
          case c
          when "'"
            if m = value.match(QUOTE_REGEXP_SQ)
              scanned << m[1].gsub(/\\(.)/, '\\1')
              value = m.post_match
            else
              break
            end
          when '"'
            if m = value.match(QUOTE_REGEXP_DQ)
              scanned << m[1].gsub(/""/, '').gsub(/\\(.)/, '\\1')
              value = m.post_match
            else
              break
            end
          when "\\"
            c = value.slice!(0, 1)
            scanned << (ESCAPE_MAP[c] || c)
          when "$"
            ref, value = extract_reference(value)
            refsec = section
            if ref.index('::')
              refsec, ref = ref.split('::', 2)
            end
            if v = get_key_string(data, refsec, ref)
              scanned << v
            else
              raise ConfigError, "variable has no value"
            end
          else
            raise 'must not reaced'
          end
        end
        scanned << value
        scanned.join
      end

      def extract_reference(value)
        rest = ''
        if m = value.match(/\(([^)]*)\)|\{([^}]*)\}/)
          value = m[1] || m[2]
          rest = m.post_match
        elsif [?(, ?{].include?(value[0])
          raise ConfigError, "no close brace"
        end
        if m = value.match(/[a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]*)?/)
          return m[0], m.post_match + rest
        else
          raise
        end
      end

      def clear_comments(line)
        # FCOMMENT
        if m = line.match(/\A([\t\n\f ]*);.*\z/)
          return m[1]
        end
        # COMMENT
        scanned = []
        while m = line.match(/[#'"\\]/)
          scanned << m.pre_match
          c = m[0]
          line = m.post_match
          case c
          when '#'
            line = nil
            break
          when "'", '"'
            regexp = (c == "'") ? QUOTE_REGEXP_SQ : QUOTE_REGEXP_DQ
            scanned << c
            if m = line.match(regexp)
              scanned << m[0]
              line = m.post_match
            else
              scanned << line
              line = nil
              break
            end
          when "\\"
            scanned << c
            scanned << line.slice!(0, 1)
          else
            raise 'must not reaced'
          end
        end
        scanned << line
        scanned.join
      end

      def get_definition(io)
        if line = get_line(io)
          while /[^\\]\\\z/ =~ line
            if extra = get_line(io)
              line += extra
            else
              break
            end
          end
          return line.strip
        end
      end

      def get_line(io)
        if line = io.gets
          line.gsub(/[\r\n]*/, '')
        end
      end
    end

    ##
    # Creates an instance of OpenSSL's configuration class.
    #
    # This can be used in contexts like OpenSSL::X509::ExtensionFactory.config=
    #
    # If the optional +filename+ parameter is provided, then it is read in and
    # parsed via #parse_config.
    #
    # This can raise IO exceptions based on the access, or availability of the
    # file. A ConfigError exception may be raised depending on the validity of
    # the data being configured.
    #
    def initialize(filename = nil)
      @data = {}
      if filename
        File.open(filename.to_s) do |file|
          Config.parse_config(file).each do |section, hash|
            self[section] = hash
          end
        end
      end
    end

    ##
    # Gets the value of +key+ from the given +section+
    #
    # Given the following configurating file being loaded:
    #
    #   config = OpenSSL::Config.load('foo.cnf')
    #     #=> #<OpenSSL::Config sections=["default"]>
    #   puts config.to_s
    #     #=> [ default ]
    #     #   foo=bar
    #
    # You can get a specific value from the config if you know the +section+
    # and +key+ like so:
    #
    #   config.get_value('default','foo')
    #     #=> "bar"
    #
    def get_value(section, key)
      if section.nil?
        raise TypeError.new('nil not allowed')
      end
      section = 'default' if section.empty?
      get_key_string(section, key)
    end

    ##
    #
    # *Deprecated*
    #
    # Use #get_value instead
    def value(arg1, arg2 = nil) # :nodoc:
      warn('Config#value is deprecated; use Config#get_value')
      if arg2.nil?
        section, key = 'default', arg1
      else
        section, key = arg1, arg2
      end
      section ||= 'default'
      section = 'default' if section.empty?
      get_key_string(section, key)
    end

    ##
    # Set the target +key+ with a given +value+ under a specific +section+.
    #
    # Given the following configurating file being loaded:
    #
    #   config = OpenSSL::Config.load('foo.cnf')
    #     #=> #<OpenSSL::Config sections=["default"]>
    #   puts config.to_s
    #     #=> [ default ]
    #     #   foo=bar
    #
    # You can set the value of +foo+ under the +default+ section to a new
    # value:
    #
    #   config.add_value('default', 'foo', 'buzz')
    #     #=> "buzz"
    #   puts config.to_s
    #     #=> [ default ]
    #     #   foo=buzz
    #
    def add_value(section, key, value)
      check_modify
      (@data[section] ||= {})[key] = value
    end

    ##
    # Get a specific +section+ from the current configuration
    #
    # Given the following configurating file being loaded:
    #
    #   config = OpenSSL::Config.load('foo.cnf')
    #     #=> #<OpenSSL::Config sections=["default"]>
    #   puts config.to_s
    #     #=> [ default ]
    #     #   foo=bar
    #
    # You can get a hash of the specific section like so:
    #
    #   config['default']
    #     #=> {"foo"=>"bar"}
    #
    def [](section)
      @data[section] || {}
    end

    ##
    # Deprecated
    #
    # Use #[] instead
    def section(name) # :nodoc:
      warn('Config#section is deprecated; use Config#[]')
      @data[name] || {}
    end

    ##
    # Sets a specific +section+ name with a Hash +pairs+
    #
    # Given the following configuration being created:
    #
    #   config = OpenSSL::Config.new
    #     #=> #<OpenSSL::Config sections=[]>
    #   config['default'] = {"foo"=>"bar","baz"=>"buz"}
    #     #=> {"foo"=>"bar", "baz"=>"buz"}
    #   puts config.to_s
    #     #=> [ default ]
    #     #   foo=bar
    #     #   baz=buz
    #
    # It's important to note that this will essentially merge any of the keys
    # in +pairs+ with the existing +section+. For example:
    #
    #   config['default']
    #     #=> {"foo"=>"bar", "baz"=>"buz"}
    #   config['default'] = {"foo" => "changed"}
    #     #=> {"foo"=>"changed"}
    #   config['default']
    #     #=> {"foo"=>"changed", "baz"=>"buz"}
    #
    def []=(section, pairs)
      check_modify
      @data[section] ||= {}
      pairs.each do |key, value|
        self.add_value(section, key, value)
      end
    end

    ##
    # Get the names of all sections in the current configuration
    def sections
      @data.keys
    end

    ##
    # Get the parsable form of the current configuration
    #
    # Given the following configuration being created:
    #
    #   config = OpenSSL::Config.new
    #     #=> #<OpenSSL::Config sections=[]>
    #   config['default'] = {"foo"=>"bar","baz"=>"buz"}
    #     #=> {"foo"=>"bar", "baz"=>"buz"}
    #   puts config.to_s
    #     #=> [ default ]
    #     #   foo=bar
    #     #   baz=buz
    #
    # You can parse get the serialized configuration using #to_s and then parse
    # it later:
    #
    #   serialized_config = config.to_s
    #   # much later...
    #   new_config = OpenSSL::Config.parse(serialized_config)
    #     #=> #<OpenSSL::Config sections=["default"]>
    #   puts new_config
    #     #=> [ default ]
    #         foo=bar
    #         baz=buz
    #
    def to_s
      ary = []
      @data.keys.sort.each do |section|
        ary << "[ #{section} ]\n"
        @data[section].keys.each do |key|
          ary << "#{key}=#{@data[section][key]}\n"
        end
        ary << "\n"
      end
      ary.join
    end

    ##
    # For a block.
    #
    # Receive the section and its pairs for the current configuration.
    #
    #   config.each do |section, key, value|
    #     # ...
    #   end
    #
    def each
      @data.each do |section, hash|
        hash.each do |key, value|
          yield [section, key, value]
        end
      end
    end

    ##
    # String representation of this configuration object, including the class
    # name and its sections.
    def inspect
      "#<#{self.class.name} sections=#{sections.inspect}>"
    end

  protected

    def data # :nodoc:
      @data
    end

  private

    def initialize_copy(other)
      @data = other.data.dup
    end

    def check_modify
      raise TypeError.new("Insecure: can't modify OpenSSL config") if frozen?
    end

    def get_key_string(section, key)
      Config.get_key_string(@data, section, key)
    end
  end
end
lib64/ruby/2.2.0/openssl/bn.rb000064400000001354150402106170011512 0ustar00#--
#
# $RCSfile$
#
# = Ruby-space definitions that completes C-space funcs for BN
#
# = Info
# 'OpenSSL for Ruby 2' project
# Copyright (C) 2002  Michal Rokos <m.rokos@sh.cvut.cz>
# All rights reserved.
#
# = Licence
# This program is licenced under the same licence as Ruby.
# (See the file 'LICENCE'.)
#
# = Version
# $Id: bn.rb 47647 2014-09-20 01:17:05Z akr $
#
#++

module OpenSSL
  class BN
    include Comparable

    def pretty_print(q)
      q.object_group(self) {
        q.text ' '
        q.text to_i.to_s
      }
    end
  end # BN
end # OpenSSL

##
# Add double dispatch to Integer
#
class Integer
  # Casts an Integer as an OpenSSL::BN
  #
  # See `man bn` for more info.
  def to_bn
    OpenSSL::BN::new(self)
  end
end # Integer

lib64/ruby/2.2.0/rss.rb000064400000005535150402106170010244 0ustar00##
# = RSS reading and writing
#
# Really Simple Syndication (RSS) is a family of formats that describe 'feeds,'
# specially constructed XML documents that allow an interested person to
# subscribe and receive updates from a particular web service. This portion of
# the standard library provides tooling to read and create these feeds.
#
# The standard library supports RSS 0.91, 1.0, 2.0, and Atom, a related format.
# Here are some links to the standards documents for these formats:
#
# * RSS
#   * 0.9.1[http://www.rssboard.org/rss-0-9-1-netscape]
#   * 1.0[http://web.resource.org/rss/1.0/]
#   * 2.0[http://www.rssboard.org/rss-specification]
# * Atom[http://tools.ietf.org/html/rfc4287]
#
# == Consuming RSS
#
# If you'd like to read someone's RSS feed with your Ruby code, you've come to
# the right place. It's really easy to do this, but we'll need the help of
# open-uri:
#
#   require 'rss'
#   require 'open-uri'
#
#   url = 'http://www.ruby-lang.org/en/feeds/news.rss'
#   open(url) do |rss|
#     feed = RSS::Parser.parse(rss)
#     puts "Title: #{feed.channel.title}"
#     feed.items.each do |item|
#       puts "Item: #{item.title}"
#     end
#   end
#
# As you can see, the workhorse is RSS::Parser#parse, which takes the source of
# the feed and a parameter that performs validation on the feed. We get back an
# object that has all of the data from our feed, accessible through methods.
# This example shows getting the title out of the channel element, and looping
# through the list of items.
#
# == Producing RSS
#
# Producing our own RSS feeds is easy as well. Let's make a very basic feed:
#
#   require "rss"
#
#   rss = RSS::Maker.make("atom") do |maker|
#     maker.channel.author = "matz"
#     maker.channel.updated = Time.now.to_s
#     maker.channel.about = "http://www.ruby-lang.org/en/feeds/news.rss"
#     maker.channel.title = "Example Feed"
#
#     maker.items.new_item do |item|
#       item.link = "http://www.ruby-lang.org/en/news/2010/12/25/ruby-1-9-2-p136-is-released/"
#       item.title = "Ruby 1.9.2-p136 is released"
#       item.updated = Time.now.to_s
#     end
#   end
#
#   puts rss
#
# As you can see, this is a very Builder-like DSL. This code will spit out an
# Atom feed with one item. If we needed a second item, we'd make another block
# with maker.items.new_item and build a second one.
#
# == Copyright
#
# Copyright (c) 2003-2007 Kouhei Sutou <kou@cozmixng.org>
#
# You can redistribute it and/or modify it under the same terms as Ruby.
#
# There is an additional tutorial by the author of RSS at:
# http://www.cozmixng.org/~rwiki/?cmd=view;name=RSS+Parser%3A%3ATutorial.en

module RSS
end

require 'rss/1.0'
require 'rss/2.0'
require 'rss/atom'
require 'rss/content'
require 'rss/dublincore'
require 'rss/image'
require 'rss/itunes'
require 'rss/slash'
require 'rss/syndication'
require 'rss/taxonomy'
require 'rss/trackback'

require "rss/maker"
lib64/ruby/2.2.0/timeout.rb000064400000007215150402106170011120 0ustar00# Timeout long-running blocks
#
# == Synopsis
#
#   require 'timeout'
#   status = Timeout::timeout(5) {
#     # Something that should be interrupted if it takes more than 5 seconds...
#   }
#
# == Description
#
# Timeout provides a way to auto-terminate a potentially long-running
# operation if it hasn't finished in a fixed amount of time.
#
# Previous versions didn't use a module for namespacing, however
# #timeout is provided for backwards compatibility.  You
# should prefer Timeout#timeout instead.
#
# == Copyright
#
# Copyright:: (C) 2000  Network Applied Communication Laboratory, Inc.
# Copyright:: (C) 2000  Information-technology Promotion Agency, Japan

module Timeout
  # Raised by Timeout#timeout when the block times out.
  class Error < RuntimeError
    attr_reader :thread

    def self.catch(*args)
      exc = new(*args)
      exc.instance_variable_set(:@thread, Thread.current)
      ::Kernel.catch(exc) {yield exc}
    end

    def exception(*)
      # TODO: use Fiber.current to see if self can be thrown
      if self.thread == Thread.current
        bt = caller
        begin
          throw(self, bt)
        rescue UncaughtThrowError
        end
      end
      self
    end
  end
  ExitException = Error

  # :stopdoc:
  THIS_FILE = /\A#{Regexp.quote(__FILE__)}:/o
  CALLER_OFFSET = ((c = caller[0]) && THIS_FILE =~ c) ? 1 : 0
  # :startdoc:

  # Perform an operation in a block, raising an error if it takes longer than
  # +sec+ seconds to complete.
  #
  # +sec+:: Number of seconds to wait for the block to terminate. Any number
  #         may be used, including Floats to specify fractional seconds. A
  #         value of 0 or +nil+ will execute the block without any timeout.
  # +klass+:: Exception Class to raise if the block fails to terminate
  #           in +sec+ seconds.  Omitting will use the default, Timeout::Error
  #
  # Returns the result of the block *if* the block completed before
  # +sec+ seconds, otherwise throws an exception, based on the value of +klass+.
  #
  # The exception thrown to terminate the given block cannot be rescued inside
  # the block unless +klass+ is given explicitly.
  #
  # Note that this is both a method of module Timeout, so you can <tt>include
  # Timeout</tt> into your classes so they have a #timeout method, as well as
  # a module method, so you can call it directly as Timeout.timeout().
  def timeout(sec, klass = nil)   #:yield: +sec+
    return yield(sec) if sec == nil or sec.zero?
    message = "execution expired"
    e = Error
    bl = proc do |exception|
      begin
        x = Thread.current
        y = Thread.start {
          begin
            sleep sec
          rescue => e
            x.raise e
          else
            x.raise exception, message
          end
        }
        return yield(sec)
      ensure
        if y
          y.kill
          y.join # make sure y is dead.
        end
      end
    end
    if klass
      begin
        bl.call(klass)
      rescue klass => e
        bt = e.backtrace
      end
    else
      bt = Error.catch(message, &bl)
    end
    rej = /\A#{Regexp.quote(__FILE__)}:#{__LINE__-4}\z/o
    bt.reject! {|m| rej =~ m}
    level = -caller(CALLER_OFFSET).size
    while THIS_FILE =~ bt[level]
      bt.delete_at(level)
    end
    raise(e, message, bt)
  end

  module_function :timeout
end

# Identical to:
#
#   Timeout::timeout(n, e, &block).
#
# This method is deprecated and provided only for backwards compatibility.
# You should use Timeout#timeout instead.
def timeout(n, e = nil, &block)
  Timeout::timeout(n, e, &block)
end

# Another name for Timeout::Error, defined for backwards compatibility with
# earlier versions of timeout.rb.
TimeoutError = Timeout::Error
lib64/ruby/2.2.0/socket.rb000064400000063142150402106170010723 0ustar00require 'socket.so'

class Addrinfo
  # creates an Addrinfo object from the arguments.
  #
  # The arguments are interpreted as similar to self.
  #
  #   Addrinfo.tcp("0.0.0.0", 4649).family_addrinfo("www.ruby-lang.org", 80)
  #   #=> #<Addrinfo: 221.186.184.68:80 TCP (www.ruby-lang.org:80)>
  #
  #   Addrinfo.unix("/tmp/sock").family_addrinfo("/tmp/sock2")
  #   #=> #<Addrinfo: /tmp/sock2 SOCK_STREAM>
  #
  def family_addrinfo(*args)
    if args.empty?
      raise ArgumentError, "no address specified"
    elsif Addrinfo === args.first
      raise ArgumentError, "too many arguments" if args.length != 1
      addrinfo = args.first
      if (self.pfamily != addrinfo.pfamily) ||
         (self.socktype != addrinfo.socktype)
        raise ArgumentError, "Addrinfo type mismatch"
      end
      addrinfo
    elsif self.ip?
      raise ArgumentError, "IP address needs host and port but #{args.length} arguments given" if args.length != 2
      host, port = args
      Addrinfo.getaddrinfo(host, port, self.pfamily, self.socktype, self.protocol)[0]
    elsif self.unix?
      raise ArgumentError, "UNIX socket needs single path argument but #{args.length} arguments given" if args.length != 1
      path, = args
      Addrinfo.unix(path)
    else
      raise ArgumentError, "unexpected family"
    end
  end

  # creates a new Socket connected to the address of +local_addrinfo+.
  #
  # If _local_addrinfo_ is nil, the address of the socket is not bound.
  #
  # The _timeout_ specify the seconds for timeout.
  # Errno::ETIMEDOUT is raised when timeout occur.
  #
  # If a block is given the created socket is yielded for each address.
  #
  def connect_internal(local_addrinfo, timeout=nil) # :yields: socket
    sock = Socket.new(self.pfamily, self.socktype, self.protocol)
    begin
      sock.ipv6only! if self.ipv6?
      sock.bind local_addrinfo if local_addrinfo
      if timeout
        begin
          sock.connect_nonblock(self)
        rescue IO::WaitWritable
          if !IO.select(nil, [sock], nil, timeout)
            raise Errno::ETIMEDOUT, 'user specified timeout'
          end
          begin
            sock.connect_nonblock(self) # check connection failure
          rescue Errno::EISCONN
          end
        end
      else
        sock.connect(self)
      end
    rescue Exception
      sock.close
      raise
    end
    if block_given?
      begin
        yield sock
      ensure
        sock.close if !sock.closed?
      end
    else
      sock
    end
  end
  private :connect_internal

  # :call-seq:
  #   addrinfo.connect_from([local_addr_args], [opts]) {|socket| ... }
  #   addrinfo.connect_from([local_addr_args], [opts])
  #
  # creates a socket connected to the address of self.
  #
  # If one or more arguments given as _local_addr_args_,
  # it is used as the local address of the socket.
  # _local_addr_args_ is given for family_addrinfo to obtain actual address.
  #
  # If _local_addr_args_ is not given, the local address of the socket is not bound.
  #
  # The optional last argument _opts_ is options represented by a hash.
  # _opts_ may have following options:
  #
  # [:timeout] specify the timeout in seconds.
  #
  # If a block is given, it is called with the socket and the value of the block is returned.
  # The socket is returned otherwise.
  #
  #   Addrinfo.tcp("www.ruby-lang.org", 80).connect_from("0.0.0.0", 4649) {|s|
  #     s.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
  #     puts s.read
  #   }
  #
  #   # Addrinfo object can be taken for the argument.
  #   Addrinfo.tcp("www.ruby-lang.org", 80).connect_from(Addrinfo.tcp("0.0.0.0", 4649)) {|s|
  #     s.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
  #     puts s.read
  #   }
  #
  def connect_from(*args, &block)
    opts = Hash === args.last ? args.pop : {}
    local_addr_args = args
    connect_internal(family_addrinfo(*local_addr_args), opts[:timeout], &block)
  end

  # :call-seq:
  #   addrinfo.connect([opts]) {|socket| ... }
  #   addrinfo.connect([opts])
  #
  # creates a socket connected to the address of self.
  #
  # The optional argument _opts_ is options represented by a hash.
  # _opts_ may have following options:
  #
  # [:timeout] specify the timeout in seconds.
  #
  # If a block is given, it is called with the socket and the value of the block is returned.
  # The socket is returned otherwise.
  #
  #   Addrinfo.tcp("www.ruby-lang.org", 80).connect {|s|
  #     s.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
  #     puts s.read
  #   }
  #
  def connect(opts={}, &block)
    connect_internal(nil, opts[:timeout], &block)
  end

  # :call-seq:
  #   addrinfo.connect_to([remote_addr_args], [opts]) {|socket| ... }
  #   addrinfo.connect_to([remote_addr_args], [opts])
  #
  # creates a socket connected to _remote_addr_args_ and bound to self.
  #
  # The optional last argument _opts_ is options represented by a hash.
  # _opts_ may have following options:
  #
  # [:timeout] specify the timeout in seconds.
  #
  # If a block is given, it is called with the socket and the value of the block is returned.
  # The socket is returned otherwise.
  #
  #   Addrinfo.tcp("0.0.0.0", 4649).connect_to("www.ruby-lang.org", 80) {|s|
  #     s.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
  #     puts s.read
  #   }
  #
  def connect_to(*args, &block)
    opts = Hash === args.last ? args.pop : {}
    remote_addr_args = args
    remote_addrinfo = family_addrinfo(*remote_addr_args)
    remote_addrinfo.send(:connect_internal, self, opts[:timeout], &block)
  end

  # creates a socket bound to self.
  #
  # If a block is given, it is called with the socket and the value of the block is returned.
  # The socket is returned otherwise.
  #
  #   Addrinfo.udp("0.0.0.0", 9981).bind {|s|
  #     s.local_address.connect {|s| s.send "hello", 0 }
  #     p s.recv(10) #=> "hello"
  #   }
  #
  def bind
    sock = Socket.new(self.pfamily, self.socktype, self.protocol)
    begin
      sock.ipv6only! if self.ipv6?
      sock.setsockopt(:SOCKET, :REUSEADDR, 1)
      sock.bind(self)
    rescue Exception
      sock.close
      raise
    end
    if block_given?
      begin
        yield sock
      ensure
        sock.close if !sock.closed?
      end
    else
      sock
    end
  end

  # creates a listening socket bound to self.
  def listen(backlog=Socket::SOMAXCONN)
    sock = Socket.new(self.pfamily, self.socktype, self.protocol)
    begin
      sock.ipv6only! if self.ipv6?
      sock.setsockopt(:SOCKET, :REUSEADDR, 1)
      sock.bind(self)
      sock.listen(backlog)
    rescue Exception
      sock.close
      raise
    end
    if block_given?
      begin
        yield sock
      ensure
        sock.close if !sock.closed?
      end
    else
      sock
    end
  end

  # iterates over the list of Addrinfo objects obtained by Addrinfo.getaddrinfo.
  #
  #   Addrinfo.foreach(nil, 80) {|x| p x }
  #   #=> #<Addrinfo: 127.0.0.1:80 TCP (:80)>
  #   #   #<Addrinfo: 127.0.0.1:80 UDP (:80)>
  #   #   #<Addrinfo: [::1]:80 TCP (:80)>
  #   #   #<Addrinfo: [::1]:80 UDP (:80)>
  #
  def self.foreach(nodename, service, family=nil, socktype=nil, protocol=nil, flags=nil, &block)
    Addrinfo.getaddrinfo(nodename, service, family, socktype, protocol, flags).each(&block)
  end
end

class BasicSocket < IO
  # Returns an address of the socket suitable for connect in the local machine.
  #
  # This method returns _self_.local_address, except following condition.
  #
  # - IPv4 unspecified address (0.0.0.0) is replaced by IPv4 loopback address (127.0.0.1).
  # - IPv6 unspecified address (::) is replaced by IPv6 loopback address (::1).
  #
  # If the local address is not suitable for connect, SocketError is raised.
  # IPv4 and IPv6 address which port is 0 is not suitable for connect.
  # Unix domain socket which has no path is not suitable for connect.
  #
  #   Addrinfo.tcp("0.0.0.0", 0).listen {|serv|
  #     p serv.connect_address #=> #<Addrinfo: 127.0.0.1:53660 TCP>
  #     serv.connect_address.connect {|c|
  #       s, _ = serv.accept
  #       p [c, s] #=> [#<Socket:fd 4>, #<Socket:fd 6>]
  #     }
  #   }
  #
  def connect_address
    addr = local_address
    afamily = addr.afamily
    if afamily == Socket::AF_INET
      raise SocketError, "unbound IPv4 socket" if addr.ip_port == 0
      if addr.ip_address == "0.0.0.0"
        addr = Addrinfo.new(["AF_INET", addr.ip_port, nil, "127.0.0.1"], addr.pfamily, addr.socktype, addr.protocol)
      end
    elsif defined?(Socket::AF_INET6) && afamily == Socket::AF_INET6
      raise SocketError, "unbound IPv6 socket" if addr.ip_port == 0
      if addr.ip_address == "::"
        addr = Addrinfo.new(["AF_INET6", addr.ip_port, nil, "::1"], addr.pfamily, addr.socktype, addr.protocol)
      elsif addr.ip_address == "0.0.0.0" # MacOS X 10.4 returns "a.b.c.d" for IPv4-mapped IPv6 address.
        addr = Addrinfo.new(["AF_INET6", addr.ip_port, nil, "::1"], addr.pfamily, addr.socktype, addr.protocol)
      elsif addr.ip_address == "::ffff:0.0.0.0" # MacOS X 10.6 returns "::ffff:a.b.c.d" for IPv4-mapped IPv6 address.
        addr = Addrinfo.new(["AF_INET6", addr.ip_port, nil, "::1"], addr.pfamily, addr.socktype, addr.protocol)
      end
    elsif defined?(Socket::AF_UNIX) && afamily == Socket::AF_UNIX
      raise SocketError, "unbound Unix socket" if addr.unix_path == ""
    end
    addr
  end
end

class Socket < BasicSocket
  # enable the socket option IPV6_V6ONLY if IPV6_V6ONLY is available.
  def ipv6only!
    if defined? Socket::IPV6_V6ONLY
      self.setsockopt(:IPV6, :V6ONLY, 1)
    end
  end

  # :call-seq:
  #   Socket.tcp(host, port, local_host=nil, local_port=nil, [opts]) {|socket| ... }
  #   Socket.tcp(host, port, local_host=nil, local_port=nil, [opts])
  #
  # creates a new socket object connected to host:port using TCP/IP.
  #
  # If local_host:local_port is given,
  # the socket is bound to it.
  #
  # The optional last argument _opts_ is options represented by a hash.
  # _opts_ may have following options:
  #
  # [:connect_timeout] specify the timeout in seconds.
  #
  # If a block is given, the block is called with the socket.
  # The value of the block is returned.
  # The socket is closed when this method returns.
  #
  # If no block is given, the socket is returned.
  #
  #   Socket.tcp("www.ruby-lang.org", 80) {|sock|
  #     sock.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
  #     sock.close_write
  #     puts sock.read
  #   }
  #
  def self.tcp(host, port, *rest) # :yield: socket
    opts = Hash === rest.last ? rest.pop : {}
    raise ArgumentError, "wrong number of arguments (#{rest.length} for 2)" if 2 < rest.length
    local_host, local_port = rest
    last_error = nil
    ret = nil

    connect_timeout = opts[:connect_timeout]

    local_addr_list = nil
    if local_host != nil || local_port != nil
      local_addr_list = Addrinfo.getaddrinfo(local_host, local_port, nil, :STREAM, nil)
    end

    Addrinfo.foreach(host, port, nil, :STREAM) {|ai|
      if local_addr_list
        local_addr = local_addr_list.find {|local_ai| local_ai.afamily == ai.afamily }
        next if !local_addr
      else
        local_addr = nil
      end
      begin
        sock = local_addr ?
          ai.connect_from(local_addr, :timeout => connect_timeout) :
          ai.connect(:timeout => connect_timeout)
      rescue SystemCallError
        last_error = $!
        next
      end
      ret = sock
      break
    }
    if !ret
      if last_error
        raise last_error
      else
        raise SocketError, "no appropriate local address"
      end
    end
    if block_given?
      begin
        yield ret
      ensure
        ret.close if !ret.closed?
      end
    else
      ret
    end
  end

  # :stopdoc:
  def self.ip_sockets_port0(ai_list, reuseaddr)
    sockets = []
    begin
      sockets.clear
      port = nil
      ai_list.each {|ai|
        begin
          s = Socket.new(ai.pfamily, ai.socktype, ai.protocol)
        rescue SystemCallError
          next
        end
        sockets << s
        s.ipv6only! if ai.ipv6?
        if reuseaddr
          s.setsockopt(:SOCKET, :REUSEADDR, 1)
        end
        if !port
          s.bind(ai)
          port = s.local_address.ip_port
        else
          s.bind(ai.family_addrinfo(ai.ip_address, port))
        end
      }
    rescue Errno::EADDRINUSE
      sockets.each {|s| s.close }
      retry
    rescue Exception
      sockets.each {|s| s.close }
      raise
    end
    sockets
  end
  class << self
    private :ip_sockets_port0
  end

  def self.tcp_server_sockets_port0(host)
    ai_list = Addrinfo.getaddrinfo(host, 0, nil, :STREAM, nil, Socket::AI_PASSIVE)
    sockets = ip_sockets_port0(ai_list, true)
    begin
      sockets.each {|s|
        s.listen(Socket::SOMAXCONN)
      }
    rescue Exception
      sockets.each {|s| s.close }
      raise
    end
    sockets
  end
  class << self
    private :tcp_server_sockets_port0
  end
  # :startdoc:

  # creates TCP/IP server sockets for _host_ and _port_.
  # _host_ is optional.
  #
  # If no block given,
  # it returns an array of listening sockets.
  #
  # If a block is given, the block is called with the sockets.
  # The value of the block is returned.
  # The socket is closed when this method returns.
  #
  # If _port_ is 0, actual port number is chosen dynamically.
  # However all sockets in the result has same port number.
  #
  #   # tcp_server_sockets returns two sockets.
  #   sockets = Socket.tcp_server_sockets(1296)
  #   p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]
  #
  #   # The sockets contains IPv6 and IPv4 sockets.
  #   sockets.each {|s| p s.local_address }
  #   #=> #<Addrinfo: [::]:1296 TCP>
  #   #   #<Addrinfo: 0.0.0.0:1296 TCP>
  #
  #   # IPv6 and IPv4 socket has same port number, 53114, even if it is chosen dynamically.
  #   sockets = Socket.tcp_server_sockets(0)
  #   sockets.each {|s| p s.local_address }
  #   #=> #<Addrinfo: [::]:53114 TCP>
  #   #   #<Addrinfo: 0.0.0.0:53114 TCP>
  #
  #   # The block is called with the sockets.
  #   Socket.tcp_server_sockets(0) {|sockets|
  #     p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]
  #   }
  #
  def self.tcp_server_sockets(host=nil, port)
    if port == 0
      sockets = tcp_server_sockets_port0(host)
    else
      last_error = nil
      sockets = []
      begin
        Addrinfo.foreach(host, port, nil, :STREAM, nil, Socket::AI_PASSIVE) {|ai|
          begin
            s = ai.listen
          rescue SystemCallError
            last_error = $!
            next
          end
          sockets << s
        }
        if sockets.empty?
          raise last_error
        end
      rescue Exception
        sockets.each {|s| s.close }
        raise
      end
    end
    if block_given?
      begin
        yield sockets
      ensure
        sockets.each {|s| s.close if !s.closed? }
      end
    else
      sockets
    end
  end

  # yield socket and client address for each a connection accepted via given sockets.
  #
  # The arguments are a list of sockets.
  # The individual argument should be a socket or an array of sockets.
  #
  # This method yields the block sequentially.
  # It means that the next connection is not accepted until the block returns.
  # So concurrent mechanism, thread for example, should be used to service multiple clients at a time.
  #
  def self.accept_loop(*sockets) # :yield: socket, client_addrinfo
    sockets.flatten!(1)
    if sockets.empty?
      raise ArgumentError, "no sockets"
    end
    loop {
      readable, _, _ = IO.select(sockets)
      readable.each {|r|
        begin
          sock, addr = r.accept_nonblock
        rescue IO::WaitReadable
          next
        end
        yield sock, addr
      }
    }
  end

  # creates a TCP/IP server on _port_ and calls the block for each connection accepted.
  # The block is called with a socket and a client_address as an Addrinfo object.
  #
  # If _host_ is specified, it is used with _port_ to determine the server addresses.
  #
  # The socket is *not* closed when the block returns.
  # So application should close it explicitly.
  #
  # This method calls the block sequentially.
  # It means that the next connection is not accepted until the block returns.
  # So concurrent mechanism, thread for example, should be used to service multiple clients at a time.
  #
  # Note that Addrinfo.getaddrinfo is used to determine the server socket addresses.
  # When Addrinfo.getaddrinfo returns two or more addresses,
  # IPv4 and IPv6 address for example,
  # all of them are used.
  # Socket.tcp_server_loop succeeds if one socket can be used at least.
  #
  #   # Sequential echo server.
  #   # It services only one client at a time.
  #   Socket.tcp_server_loop(16807) {|sock, client_addrinfo|
  #     begin
  #       IO.copy_stream(sock, sock)
  #     ensure
  #       sock.close
  #     end
  #   }
  #
  #   # Threaded echo server
  #   # It services multiple clients at a time.
  #   # Note that it may accept connections too much.
  #   Socket.tcp_server_loop(16807) {|sock, client_addrinfo|
  #     Thread.new {
  #       begin
  #         IO.copy_stream(sock, sock)
  #       ensure
  #         sock.close
  #       end
  #     }
  #   }
  #
  def self.tcp_server_loop(host=nil, port, &b) # :yield: socket, client_addrinfo
    tcp_server_sockets(host, port) {|sockets|
      accept_loop(sockets, &b)
    }
  end

  # :call-seq:
  #   Socket.udp_server_sockets([host, ] port)
  #
  # Creates UDP/IP sockets for a UDP server.
  #
  # If no block given, it returns an array of sockets.
  #
  # If a block is given, the block is called with the sockets.
  # The value of the block is returned.
  # The sockets are closed when this method returns.
  #
  # If _port_ is zero, some port is chosen.
  # But the chosen port is used for the all sockets.
  #
  #   # UDP/IP echo server
  #   Socket.udp_server_sockets(0) {|sockets|
  #     p sockets.first.local_address.ip_port     #=> 32963
  #     Socket.udp_server_loop_on(sockets) {|msg, msg_src|
  #       msg_src.reply msg
  #     }
  #   }
  #
  def self.udp_server_sockets(host=nil, port)
    last_error = nil
    sockets = []

    ipv6_recvpktinfo = nil
    if defined? Socket::AncillaryData
      if defined? Socket::IPV6_RECVPKTINFO # RFC 3542
        ipv6_recvpktinfo = Socket::IPV6_RECVPKTINFO
      elsif defined? Socket::IPV6_PKTINFO # RFC 2292
        ipv6_recvpktinfo = Socket::IPV6_PKTINFO
      end
    end

    local_addrs = Socket.ip_address_list

    ip_list = []
    Addrinfo.foreach(host, port, nil, :DGRAM, nil, Socket::AI_PASSIVE) {|ai|
      if ai.ipv4? && ai.ip_address == "0.0.0.0"
        local_addrs.each {|a|
          next if !a.ipv4?
          ip_list << Addrinfo.new(a.to_sockaddr, :INET, :DGRAM, 0);
        }
      elsif ai.ipv6? && ai.ip_address == "::" && !ipv6_recvpktinfo
        local_addrs.each {|a|
          next if !a.ipv6?
          ip_list << Addrinfo.new(a.to_sockaddr, :INET6, :DGRAM, 0);
        }
      else
        ip_list << ai
      end
    }

    if port == 0
      sockets = ip_sockets_port0(ip_list, false)
    else
      ip_list.each {|ip|
        ai = Addrinfo.udp(ip.ip_address, port)
        begin
          s = ai.bind
        rescue SystemCallError
          last_error = $!
          next
        end
        sockets << s
      }
      if sockets.empty?
        raise last_error
      end
    end

    sockets.each {|s|
      ai = s.local_address
      if ipv6_recvpktinfo && ai.ipv6? && ai.ip_address == "::"
        s.setsockopt(:IPV6, ipv6_recvpktinfo, 1)
      end
    }

    if block_given?
      begin
        yield sockets
      ensure
        sockets.each {|s| s.close if !s.closed? } if sockets
      end
    else
      sockets
    end
  end

  # :call-seq:
  #   Socket.udp_server_recv(sockets) {|msg, msg_src| ... }
  #
  # Receive UDP/IP packets from the given _sockets_.
  # For each packet received, the block is called.
  #
  # The block receives _msg_ and _msg_src_.
  # _msg_ is a string which is the payload of the received packet.
  # _msg_src_ is a Socket::UDPSource object which is used for reply.
  #
  # Socket.udp_server_loop can be implemented using this method as follows.
  #
  #   udp_server_sockets(host, port) {|sockets|
  #     loop {
  #       readable, _, _ = IO.select(sockets)
  #       udp_server_recv(readable) {|msg, msg_src| ... }
  #     }
  #   }
  #
  def self.udp_server_recv(sockets)
    sockets.each {|r|
      begin
        msg, sender_addrinfo, _, *controls = r.recvmsg_nonblock
      rescue IO::WaitReadable
        next
      end
      ai = r.local_address
      if ai.ipv6? and pktinfo = controls.find {|c| c.cmsg_is?(:IPV6, :PKTINFO) }
        ai = Addrinfo.udp(pktinfo.ipv6_pktinfo_addr.ip_address, ai.ip_port)
        yield msg, UDPSource.new(sender_addrinfo, ai) {|reply_msg|
          r.sendmsg reply_msg, 0, sender_addrinfo, pktinfo
        }
      else
        yield msg, UDPSource.new(sender_addrinfo, ai) {|reply_msg|
          r.send reply_msg, 0, sender_addrinfo
        }
      end
    }
  end

  # :call-seq:
  #   Socket.udp_server_loop_on(sockets) {|msg, msg_src| ... }
  #
  # Run UDP/IP server loop on the given sockets.
  #
  # The return value of Socket.udp_server_sockets is appropriate for the argument.
  #
  # It calls the block for each message received.
  #
  def self.udp_server_loop_on(sockets, &b) # :yield: msg, msg_src
    loop {
      readable, _, _ = IO.select(sockets)
      udp_server_recv(readable, &b)
    }
  end

  # :call-seq:
  #   Socket.udp_server_loop(port) {|msg, msg_src| ... }
  #   Socket.udp_server_loop(host, port) {|msg, msg_src| ... }
  #
  # creates a UDP/IP server on _port_ and calls the block for each message arrived.
  # The block is called with the message and its source information.
  #
  # This method allocates sockets internally using _port_.
  # If _host_ is specified, it is used conjunction with _port_ to determine the server addresses.
  #
  # The _msg_ is a string.
  #
  # The _msg_src_ is a Socket::UDPSource object.
  # It is used for reply.
  #
  #   # UDP/IP echo server.
  #   Socket.udp_server_loop(9261) {|msg, msg_src|
  #     msg_src.reply msg
  #   }
  #
  def self.udp_server_loop(host=nil, port, &b) # :yield: message, message_source
    udp_server_sockets(host, port) {|sockets|
      udp_server_loop_on(sockets, &b)
    }
  end

  # UDP/IP address information used by Socket.udp_server_loop.
  class UDPSource
    # +remote_address+ is an Addrinfo object.
    #
    # +local_address+ is an Addrinfo object.
    #
    # +reply_proc+ is a Proc used to send reply back to the source.
    def initialize(remote_address, local_address, &reply_proc)
      @remote_address = remote_address
      @local_address = local_address
      @reply_proc = reply_proc
    end

    # Address of the source
    attr_reader :remote_address

    # Local address
    attr_reader :local_address

    def inspect # :nodoc:
      "\#<#{self.class}: #{@remote_address.inspect_sockaddr} to #{@local_address.inspect_sockaddr}>"
    end

    # Sends the String +msg+ to the source
    def reply(msg)
      @reply_proc.call msg
    end
  end

  # creates a new socket connected to path using UNIX socket socket.
  #
  # If a block is given, the block is called with the socket.
  # The value of the block is returned.
  # The socket is closed when this method returns.
  #
  # If no block is given, the socket is returned.
  #
  #   # talk to /tmp/sock socket.
  #   Socket.unix("/tmp/sock") {|sock|
  #     t = Thread.new { IO.copy_stream(sock, STDOUT) }
  #     IO.copy_stream(STDIN, sock)
  #     t.join
  #   }
  #
  def self.unix(path) # :yield: socket
    addr = Addrinfo.unix(path)
    sock = addr.connect
    if block_given?
      begin
        yield sock
      ensure
        sock.close if !sock.closed?
      end
    else
      sock
    end
  end

  # creates a UNIX server socket on _path_
  #
  # If no block given, it returns a listening socket.
  #
  # If a block is given, it is called with the socket and the block value is returned.
  # When the block exits, the socket is closed and the socket file is removed.
  #
  #   socket = Socket.unix_server_socket("/tmp/s")
  #   p socket                  #=> #<Socket:fd 3>
  #   p socket.local_address    #=> #<Addrinfo: /tmp/s SOCK_STREAM>
  #
  #   Socket.unix_server_socket("/tmp/sock") {|s|
  #     p s                     #=> #<Socket:fd 3>
  #     p s.local_address       #=> # #<Addrinfo: /tmp/sock SOCK_STREAM>
  #   }
  #
  def self.unix_server_socket(path)
    if !unix_socket_abstract_name?(path)
      begin
        st = File.lstat(path)
      rescue Errno::ENOENT
      end
      if st && st.socket? && st.owned?
        File.unlink path
      end
    end
    s = Addrinfo.unix(path).listen
    if block_given?
      begin
        yield s
      ensure
        s.close if !s.closed?
        if !unix_socket_abstract_name?(path)
          File.unlink path
        end
      end
    else
      s
    end
  end

  class << self
    private

    def unix_socket_abstract_name?(path)
      /linux/ =~ RUBY_PLATFORM && /\A(\0|\z)/ =~ path
    end
  end

  # creates a UNIX socket server on _path_.
  # It calls the block for each socket accepted.
  #
  # If _host_ is specified, it is used with _port_ to determine the server ports.
  #
  # The socket is *not* closed when the block returns.
  # So application should close it.
  #
  # This method deletes the socket file pointed by _path_ at first if
  # the file is a socket file and it is owned by the user of the application.
  # This is safe only if the directory of _path_ is not changed by a malicious user.
  # So don't use /tmp/malicious-users-directory/socket.
  # Note that /tmp/socket and /tmp/your-private-directory/socket is safe assuming that /tmp has sticky bit.
  #
  #   # Sequential echo server.
  #   # It services only one client at a time.
  #   Socket.unix_server_loop("/tmp/sock") {|sock, client_addrinfo|
  #     begin
  #       IO.copy_stream(sock, sock)
  #     ensure
  #       sock.close
  #     end
  #   }
  #
  def self.unix_server_loop(path, &b) # :yield: socket, client_addrinfo
    unix_server_socket(path) {|serv|
      accept_loop(serv, &b)
    }
  end

end

lib64/ruby/2.2.0/tmpdir.rb000064400000010207150402106170010724 0ustar00#
# tmpdir - retrieve temporary directory path
#
# $Id: tmpdir.rb 63017 2018-03-28 14:34:14Z usa $
#

require 'fileutils'
begin
  require 'etc.so'
rescue LoadError # rescue LoadError for miniruby
end

class Dir

  @@systmpdir ||= defined?(Etc.systmpdir) ? Etc.systmpdir : '/tmp'

  ##
  # Returns the operating system's temporary file path.

  def self.tmpdir
    if $SAFE > 0
      @@systmpdir
    else
      tmp = nil
      [ENV['TMPDIR'], ENV['TMP'], ENV['TEMP'], @@systmpdir, '/tmp', '.'].each do |dir|
        next if !dir
        dir = File.expand_path(dir)
        if stat = File.stat(dir) and stat.directory? and stat.writable? and
            (!stat.world_writable? or stat.sticky?)
          tmp = dir
          break
        end rescue nil
      end
      raise ArgumentError, "could not find a temporary directory" unless tmp
      tmp
    end
  end

  # Dir.mktmpdir creates a temporary directory.
  #
  # The directory is created with 0700 permission.
  # Application should not change the permission to make the temporary directory accessible from other users.
  #
  # The prefix and suffix of the name of the directory is specified by
  # the optional first argument, <i>prefix_suffix</i>.
  # - If it is not specified or nil, "d" is used as the prefix and no suffix is used.
  # - If it is a string, it is used as the prefix and no suffix is used.
  # - If it is an array, first element is used as the prefix and second element is used as a suffix.
  #
  #  Dir.mktmpdir {|dir| dir is ".../d..." }
  #  Dir.mktmpdir("foo") {|dir| dir is ".../foo..." }
  #  Dir.mktmpdir(["foo", "bar"]) {|dir| dir is ".../foo...bar" }
  #
  # The directory is created under Dir.tmpdir or
  # the optional second argument <i>tmpdir</i> if non-nil value is given.
  #
  #  Dir.mktmpdir {|dir| dir is "#{Dir.tmpdir}/d..." }
  #  Dir.mktmpdir(nil, "/var/tmp") {|dir| dir is "/var/tmp/d..." }
  #
  # If a block is given,
  # it is yielded with the path of the directory.
  # The directory and its contents are removed
  # using FileUtils.remove_entry before Dir.mktmpdir returns.
  # The value of the block is returned.
  #
  #  Dir.mktmpdir {|dir|
  #    # use the directory...
  #    open("#{dir}/foo", "w") { ... }
  #  }
  #
  # If a block is not given,
  # The path of the directory is returned.
  # In this case, Dir.mktmpdir doesn't remove the directory.
  #
  #  dir = Dir.mktmpdir
  #  begin
  #    # use the directory...
  #    open("#{dir}/foo", "w") { ... }
  #  ensure
  #    # remove the directory.
  #    FileUtils.remove_entry dir
  #  end
  #
  def Dir.mktmpdir(prefix_suffix=nil, *rest)
    path = Tmpname.create(prefix_suffix || "d", *rest) {|n| mkdir(n, 0700)}
    if block_given?
      begin
        yield path
      ensure
        stat = File.stat(File.dirname(path))
        if stat.world_writable? and !stat.sticky?
          raise ArgumentError, "parent directory is world writable but not sticky"
        end
        FileUtils.remove_entry path
      end
    else
      path
    end
  end

  module Tmpname # :nodoc:
    module_function

    def tmpdir
      Dir.tmpdir
    end

    def make_tmpname((prefix, suffix), n)
      prefix = (String.try_convert(prefix) or
                raise ArgumentError, "unexpected prefix: #{prefix.inspect}")
      prefix = prefix.delete("#{File::SEPARATOR}#{File::ALT_SEPARATOR}")
      suffix &&= (String.try_convert(suffix) or
                  raise ArgumentError, "unexpected suffix: #{suffix.inspect}")
      suffix &&= suffix.delete("#{File::SEPARATOR}#{File::ALT_SEPARATOR}")
      t = Time.now.strftime("%Y%m%d")
      path = "#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}"
      path << "-#{n}" if n
      path << suffix if suffix
      path
    end

    def create(basename, tmpdir=nil, max_try: nil, **opts)
      if $SAFE > 0 and tmpdir.tainted?
        tmpdir = '/tmp'
      else
        tmpdir ||= tmpdir()
      end
      n = nil
      begin
        path = File.join(tmpdir, make_tmpname(basename, n))
        yield(path, n, opts)
      rescue Errno::EEXIST
        n ||= 0
        n += 1
        retry if !max_try or n < max_try
        raise "cannot generate temporary name using `#{basename}' under `#{tmpdir}'"
      end
      path
    end
  end
end
lib64/ruby/2.2.0/date.rb000064400000001724150402106170010346 0ustar00# date.rb: Written by Tadayoshi Funaba 1998-2011

require 'date_core'

class Date

  class Infinity < Numeric # :nodoc:

    include Comparable

    def initialize(d=1) @d = d <=> 0 end

    def d() @d end

    protected :d

    def zero? () false end
    def finite? () false end
    def infinite? () d.nonzero? end
    def nan? () d.zero? end

    def abs() self.class.new end

    def -@ () self.class.new(-d) end
    def +@ () self.class.new(+d) end

    def <=> (other)
      case other
      when Infinity; return d <=> other.d
      when Numeric; return d
      else
        begin
          l, r = other.coerce(self)
          return l <=> r
        rescue NoMethodError
        end
      end
      nil
    end

    def coerce(other)
      case other
      when Numeric; return -d, d
      else
        super
      end
    end

    def to_f
      return 0 if @d == 0
      if @d > 0
        Float::INFINITY
      else
        -Float::INFINITY
      end
    end

  end

end
lib64/ruby/2.2.0/profiler.rb000064400000011011150402106170011241 0ustar00# Profile provides a way to Profile your Ruby application.
#
# Profiling your program is a way of determining which methods are called and
# how long each method takes to complete.  This way you can detect which
# methods are possible bottlenecks.
#
# Profiling your program will slow down your execution time considerably,
# so activate it only when you need it.  Don't confuse benchmarking with
# profiling.
#
# There are two ways to activate Profiling:
#
# == Command line
#
# Run your Ruby script with <code>-rprofile</code>:
#
#   ruby -rprofile example.rb
#
# If you're profiling an executable in your <code>$PATH</code> you can use
# <code>ruby -S</code>:
#
#   ruby -rprofile -S some_executable
#
# == From code
#
# Just require 'profile':
#
#   require 'profile'
#
#   def slow_method
#     5000.times do
#       9999999999999999*999999999
#     end
#   end
#
#   def fast_method
#     5000.times do
#       9999999999999999+999999999
#     end
#   end
#
#   slow_method
#   fast_method
#
# The output in both cases is a report when the execution is over:
#
#   ruby -rprofile example.rb
#
#     %   cumulative   self              self     total
#    time   seconds   seconds    calls  ms/call  ms/call  name
#    68.42     0.13      0.13        2    65.00    95.00  Integer#times
#    15.79     0.16      0.03     5000     0.01     0.01  Fixnum#*
#    15.79     0.19      0.03     5000     0.01     0.01  Fixnum#+
#     0.00     0.19      0.00        2     0.00     0.00  IO#set_encoding
#     0.00     0.19      0.00        1     0.00   100.00  Object#slow_method
#     0.00     0.19      0.00        2     0.00     0.00  Module#method_added
#     0.00     0.19      0.00        1     0.00    90.00  Object#fast_method
#     0.00     0.19      0.00        1     0.00   190.00  #toplevel

module Profiler__
  class Wrapper < Struct.new(:defined_class, :method_id, :hash) # :nodoc:
    private :defined_class=, :method_id=, :hash=

    def initialize(klass, mid)
      super(klass, mid, nil)
      self.hash = Struct.instance_method(:hash).bind(self).call
    end

    def to_s
      "#{defined_class.inspect}#".sub(/\A\#<Class:(.*)>#\z/, '\1.') << method_id.to_s
    end
    alias inspect to_s
  end

  # internal values
  @@start = nil # the start time that profiling began
  @@stacks = nil # the map of stacks keyed by thread
  @@maps = nil # the map of call data keyed by thread, class and id. Call data contains the call count, total time,
  PROFILE_CALL_PROC = TracePoint.new(*%i[call c_call b_call]) {|tp| # :nodoc:
    now = Process.times[0]
    stack = (@@stacks[Thread.current] ||= [])
    stack.push [now, 0.0]
  }
  PROFILE_RETURN_PROC = TracePoint.new(*%i[return c_return b_return]) {|tp| # :nodoc:
    now = Process.times[0]
    key = Wrapper.new(tp.defined_class, tp.method_id)
    stack = (@@stacks[Thread.current] ||= [])
    if tick = stack.pop
      threadmap = (@@maps[Thread.current] ||= {})
      data = (threadmap[key] ||= [0, 0.0, 0.0, key])
      data[0] += 1
      cost = now - tick[0]
      data[1] += cost
      data[2] += cost - tick[1]
      stack[-1][1] += cost if stack[-1]
    end
  }
module_function
  # Starts the profiler.
  #
  # See Profiler__ for more information.
  def start_profile
    @@start = Process.times[0]
    @@stacks = {}
    @@maps = {}
    PROFILE_CALL_PROC.enable
    PROFILE_RETURN_PROC.enable
  end
  # Stops the profiler.
  #
  # See Profiler__ for more information.
  def stop_profile
    PROFILE_CALL_PROC.disable
    PROFILE_RETURN_PROC.disable
  end
  # Outputs the results from the profiler.
  #
  # See Profiler__ for more information.
  def print_profile(f)
    stop_profile
    total = Process.times[0] - @@start
    if total == 0 then total = 0.01 end
    totals = {}
    @@maps.values.each do |threadmap|
      threadmap.each do |key, data|
        total_data = (totals[key] ||= [0, 0.0, 0.0, key])
        total_data[0] += data[0]
        total_data[1] += data[1]
        total_data[2] += data[2]
      end
    end

    # Maybe we should show a per thread output and a totals view?

    data = totals.values
    data = data.sort_by{|x| -x[2]}
    sum = 0
    f.printf "  %%   cumulative   self              self     total\n"
    f.printf " time   seconds   seconds    calls  ms/call  ms/call  name\n"
    for d in data
      sum += d[2]
      f.printf "%6.2f %8.2f  %8.2f %8d ", d[2]/total*100, sum, d[2], d[0]
      f.printf "%8.2f %8.2f  %s\n", d[2]*1000/d[0], d[1]*1000/d[0], d[3]
    end
    f.printf "%6.2f %8.2f  %8.2f %8d ", 0.0, total, 0.0, 1     # ???
    f.printf "%8.2f %8.2f  %s\n", 0.0, total*1000, "#toplevel" # ???
  end
end
lib64/ruby/2.2.0/rubygems.rb000064400000077547150402106200011300 0ustar00# -*- ruby -*-
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rbconfig'
require 'thread'

module Gem
  VERSION = '2.4.5.5'
end

# Must be first since it unloads the prelude from 1.9.2
require 'rubygems/compatibility'

require 'rubygems/defaults'
require 'rubygems/deprecate'
require 'rubygems/errors'

##
# RubyGems is the Ruby standard for publishing and managing third party
# libraries.
#
# For user documentation, see:
#
# * <tt>gem help</tt> and <tt>gem help [command]</tt>
# * {RubyGems User Guide}[http://docs.rubygems.org/read/book/1]
# * {Frequently Asked Questions}[http://docs.rubygems.org/read/book/3]
#
# For gem developer documentation see:
#
# * {Creating Gems}[http://docs.rubygems.org/read/chapter/5]
# * Gem::Specification
# * Gem::Version for version dependency notes
#
# Further RubyGems documentation can be found at:
#
# * {RubyGems Guides}[http://guides.rubygems.org]
# * {RubyGems API}[http://rubygems.rubyforge.org/rdoc] (also available from
#   <tt>gem server</tt>)
#
# == RubyGems Plugins
#
# As of RubyGems 1.3.2, RubyGems will load plugins installed in gems or
# $LOAD_PATH.  Plugins must be named 'rubygems_plugin' (.rb, .so, etc) and
# placed at the root of your gem's #require_path.  Plugins are discovered via
# Gem::find_files then loaded.  Take care when implementing a plugin as your
# plugin file may be loaded multiple times if multiple versions of your gem
# are installed.
#
# For an example plugin, see the graph gem which adds a `gem graph` command.
#
# == RubyGems Defaults, Packaging
#
# RubyGems defaults are stored in rubygems/defaults.rb.  If you're packaging
# RubyGems or implementing Ruby you can change RubyGems' defaults.
#
# For RubyGems packagers, provide lib/rubygems/defaults/operating_system.rb
# and override any defaults from lib/rubygems/defaults.rb.
#
# For Ruby implementers, provide lib/rubygems/defaults/#{RUBY_ENGINE}.rb and
# override any defaults from lib/rubygems/defaults.rb.
#
# If you need RubyGems to perform extra work on install or uninstall, your
# defaults override file can set pre and post install and uninstall hooks.
# See Gem::pre_install, Gem::pre_uninstall, Gem::post_install,
# Gem::post_uninstall.
#
# == Bugs
#
# You can submit bugs to the
# {RubyGems bug tracker}[https://github.com/rubygems/rubygems/issues]
# on GitHub
#
# == Credits
#
# RubyGems is currently maintained by Eric Hodel.
#
# RubyGems was originally developed at RubyConf 2003 by:
#
# * Rich Kilmer  -- rich(at)infoether.com
# * Chad Fowler  -- chad(at)chadfowler.com
# * David Black  -- dblack(at)wobblini.net
# * Paul Brannan -- paul(at)atdesk.com
# * Jim Weirich   -- jim(at)weirichhouse.org
#
# Contributors:
#
# * Gavin Sinclair     -- gsinclair(at)soyabean.com.au
# * George Marrows     -- george.marrows(at)ntlworld.com
# * Dick Davies        -- rasputnik(at)hellooperator.net
# * Mauricio Fernandez -- batsman.geo(at)yahoo.com
# * Simon Strandgaard  -- neoneye(at)adslhome.dk
# * Dave Glasser       -- glasser(at)mit.edu
# * Paul Duncan        -- pabs(at)pablotron.org
# * Ville Aine         -- vaine(at)cs.helsinki.fi
# * Eric Hodel         -- drbrain(at)segment7.net
# * Daniel Berger      -- djberg96(at)gmail.com
# * Phil Hagelberg     -- technomancy(at)gmail.com
# * Ryan Davis         -- ryand-ruby(at)zenspider.com
# * Evan Phoenix       -- evan(at)fallingsnow.net
# * Steve Klabnik      -- steve(at)steveklabnik.com
#
# (If your name is missing, PLEASE let us know!)
#
# See {LICENSE.txt}[rdoc-ref:lib/rubygems/LICENSE.txt] for permissions.
#
# Thanks!
#
# -The RubyGems Team


module Gem
  RUBYGEMS_DIR = File.dirname File.expand_path(__FILE__)

  ##
  # An Array of Regexps that match windows Ruby platforms.

  WIN_PATTERNS = [
    /bccwin/i,
    /cygwin/i,
    /djgpp/i,
    /mingw/i,
    /mswin/i,
    /wince/i,
  ]

  GEM_DEP_FILES = %w[
    gem.deps.rb
    Gemfile
    Isolate
  ]

  ##
  # Subdirectories in a gem repository

  REPOSITORY_SUBDIRECTORIES = %w[
    build_info
    cache
    doc
    extensions
    gems
    specifications
  ]

  ##
  # Subdirectories in a gem repository for default gems

  REPOSITORY_DEFAULT_GEM_SUBDIRECTORIES = %w[
    gems
    specifications/default
  ]

  @@win_platform = nil

  @configuration = nil
  @loaded_specs = {}
  LOADED_SPECS_MUTEX = Mutex.new
  @path_to_default_spec_map = {}
  @platforms = []
  @ruby = nil
  @ruby_api_version = nil
  @sources = nil

  @post_build_hooks     ||= []
  @post_install_hooks   ||= []
  @post_uninstall_hooks ||= []
  @pre_uninstall_hooks  ||= []
  @pre_install_hooks    ||= []
  @pre_reset_hooks      ||= []
  @post_reset_hooks     ||= []

  ##
  # Try to activate a gem containing +path+. Returns true if
  # activation succeeded or wasn't needed because it was already
  # activated. Returns false if it can't find the path in a gem.

  def self.try_activate path
    # finds the _latest_ version... regardless of loaded specs and their deps
    # if another gem had a requirement that would mean we shouldn't
    # activate the latest version, then either it would already be activated
    # or if it was ambiguous (and thus unresolved) the code in our custom
    # require will try to activate the more specific version.

    spec = Gem::Specification.find_inactive_by_path path

    unless spec
      spec = Gem::Specification.find_by_path path
      return true if spec && spec.activated?
      return false
    end

    begin
      spec.activate
    rescue Gem::LoadError # this could fail due to gem dep collisions, go lax
      Gem::Specification.find_by_name(spec.name).activate
    end

    return true
  end

  def self.needs
    rs = Gem::RequestSet.new

    yield rs

    finish_resolve rs
  end

  def self.finish_resolve(request_set=Gem::RequestSet.new)
    request_set.import Gem::Specification.unresolved_deps.values

    request_set.resolve_current.each do |s|
      s.full_spec.activate
    end
  end

  ##
  # Find the full path to the executable for gem +name+.  If the +exec_name+
  # is not given, the gem's default_executable is chosen, otherwise the
  # specified executable's path is returned.  +requirements+ allows
  # you to specify specific gem versions.

  def self.bin_path(name, exec_name = nil, *requirements)
    # TODO: fails test_self_bin_path_bin_file_gone_in_latest
    # Gem::Specification.find_by_name(name, *requirements).bin_file exec_name

    raise ArgumentError, "you must supply exec_name" unless exec_name

    requirements = Gem::Requirement.default if
      requirements.empty?

    dep = Gem::Dependency.new name, requirements

    loaded = Gem.loaded_specs[name]

    return loaded.bin_file exec_name if loaded && dep.matches_spec?(loaded)

    specs = dep.matching_specs(true)

    raise Gem::GemNotFoundException,
          "can't find gem #{name} (#{requirements})" if specs.empty?

    specs = specs.find_all { |spec|
      spec.executables.include? exec_name
    } if exec_name

    unless spec = specs.last
      msg = "can't find gem #{name} (#{requirements}) with executable #{exec_name}"
      raise Gem::GemNotFoundException, msg
    end

    spec.bin_file exec_name
  end

  ##
  # The mode needed to read a file as straight binary.

  def self.binary_mode
    'rb'
  end

  ##
  # The path where gem executables are to be installed.

  def self.bindir(install_dir=Gem.dir)
    return File.join install_dir, 'bin' unless
      install_dir.to_s == Gem.default_dir.to_s
    Gem.default_bindir
  end

  ##
  # Reset the +dir+ and +path+ values.  The next time +dir+ or +path+
  # is requested, the values will be calculated from scratch.  This is
  # mainly used by the unit tests to provide test isolation.

  def self.clear_paths
    @paths         = nil
    @user_home     = nil
    Gem::Specification.reset
    Gem::Security.reset if defined?(Gem::Security)
  end

  ##
  # The path to standard location of the user's .gemrc file.

  def self.config_file
    @config_file ||= File.join Gem.user_home, '.gemrc'
  end

  ##
  # The standard configuration object for gems.

  def self.configuration
    @configuration ||= Gem::ConfigFile.new []
  end

  ##
  # Use the given configuration object (which implements the ConfigFile
  # protocol) as the standard configuration object.

  def self.configuration=(config)
    @configuration = config
  end

  ##
  # The path to the data directory specified by the gem name.  If the
  # package is not available as a gem, return nil.

  def self.datadir(gem_name)
# TODO: deprecate and move to Gem::Specification
#       and drop the extra ", gem_name" which is uselessly redundant
    spec = @loaded_specs[gem_name]
    return nil if spec.nil?
    File.join spec.full_gem_path, "data", gem_name
  end

  ##
  # A Zlib::Deflate.deflate wrapper

  def self.deflate(data)
    require 'zlib'
    Zlib::Deflate.deflate data
  end

  # Retrieve the PathSupport object that RubyGems uses to
  # lookup files.

  def self.paths
    @paths ||= Gem::PathSupport.new
  end

  # Initialize the filesystem paths to use from +env+.
  # +env+ is a hash-like object (typically ENV) that
  # is queried for 'GEM_HOME', 'GEM_PATH', and 'GEM_SPEC_CACHE'

  def self.paths=(env)
    clear_paths
    @paths = Gem::PathSupport.new env
    Gem::Specification.dirs = @paths.path
  end

  ##
  # The path where gems are to be installed.
  #--
  # FIXME deprecate these once everything else has been done -ebh

  def self.dir
    paths.home
  end

  def self.path
    paths.path
  end

  def self.spec_cache_dir
    paths.spec_cache_dir
  end

  ##
  # Quietly ensure the Gem directory +dir+ contains all the proper
  # subdirectories.  If we can't create a directory due to a permission
  # problem, then we will silently continue.
  #
  # If +mode+ is given, missing directories are created with this mode.
  #
  # World-writable directories will never be created.

  def self.ensure_gem_subdirectories dir = Gem.dir, mode = nil
    ensure_subdirectories(dir, mode, REPOSITORY_SUBDIRECTORIES)
  end

  ##
  # Quietly ensure the Gem directory +dir+ contains all the proper
  # subdirectories for handling default gems.  If we can't create a
  # directory due to a permission problem, then we will silently continue.
  #
  # If +mode+ is given, missing directories are created with this mode.
  #
  # World-writable directories will never be created.

  def self.ensure_default_gem_subdirectories dir = Gem.dir, mode = nil
    ensure_subdirectories(dir, mode, REPOSITORY_DEFAULT_GEM_SUBDIRECTORIES)
  end

  def self.ensure_subdirectories dir, mode, subdirs # :nodoc:
    old_umask = File.umask
    File.umask old_umask | 002

    require 'fileutils'

    options = {}

    options[:mode] = mode if mode

    subdirs.each do |name|
      subdir = File.join dir, name
      next if File.exist? subdir
      FileUtils.mkdir_p subdir, options rescue nil
    end
  ensure
    File.umask old_umask
  end

  ##
  # The extension API version of ruby.  This includes the static vs non-static
  # distinction as extensions cannot be shared between the two.

  def self.extension_api_version # :nodoc:
    if 'no' == RbConfig::CONFIG['ENABLE_SHARED'] then
      "#{ruby_api_version}-static"
    else
      ruby_api_version
    end
  end

  ##
  # Returns a list of paths matching +glob+ that can be used by a gem to pick
  # up features from other gems.  For example:
  #
  #   Gem.find_files('rdoc/discover').each do |path| load path end
  #
  # if +check_load_path+ is true (the default), then find_files also searches
  # $LOAD_PATH for files as well as gems.
  #
  # Note that find_files will return all files even if they are from different
  # versions of the same gem.  See also find_latest_files

  def self.find_files(glob, check_load_path=true)
    files = []

    files = find_files_from_load_path glob if check_load_path

    files.concat Gem::Specification.map { |spec|
      spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
    }.flatten

    # $LOAD_PATH might contain duplicate entries or reference
    # the spec dirs directly, so we prune.
    files.uniq! if check_load_path

    return files
  end

  def self.find_files_from_load_path glob # :nodoc:
    $LOAD_PATH.map { |load_path|
      Dir["#{File.expand_path glob, load_path}#{Gem.suffix_pattern}"]
    }.flatten.select { |file| File.file? file.untaint }
  end

  ##
  # Returns a list of paths matching +glob+ from the latest gems that can be
  # used by a gem to pick up features from other gems.  For example:
  #
  #   Gem.find_latest_files('rdoc/discover').each do |path| load path end
  #
  # if +check_load_path+ is true (the default), then find_latest_files also
  # searches $LOAD_PATH for files as well as gems.
  #
  # Unlike find_files, find_latest_files will return only files from the
  # latest version of a gem.

  def self.find_latest_files(glob, check_load_path=true)
    files = []

    files = find_files_from_load_path glob if check_load_path

    files.concat Gem::Specification.latest_specs(true).map { |spec|
      spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
    }.flatten

    # $LOAD_PATH might contain duplicate entries or reference
    # the spec dirs directly, so we prune.
    files.uniq! if check_load_path

    return files
  end

  ##
  # Finds the user's home directory.
  #--
  # Some comments from the ruby-talk list regarding finding the home
  # directory:
  #
  #   I have HOME, USERPROFILE and HOMEDRIVE + HOMEPATH. Ruby seems
  #   to be depending on HOME in those code samples. I propose that
  #   it should fallback to USERPROFILE and HOMEDRIVE + HOMEPATH (at
  #   least on Win32).
  #++
  #--
  #
  # FIXME move to pathsupport
  #
  #++

  def self.find_home
    windows = File::ALT_SEPARATOR
    if not windows or RUBY_VERSION >= '1.9' then
      File.expand_path "~"
    else
      ['HOME', 'USERPROFILE'].each do |key|
        return File.expand_path ENV[key] if ENV[key]
      end

      if ENV['HOMEDRIVE'] && ENV['HOMEPATH'] then
        File.expand_path "#{ENV['HOMEDRIVE']}#{ENV['HOMEPATH']}"
      end
    end
  rescue
    if windows then
      File.expand_path File.join(ENV['HOMEDRIVE'] || ENV['SystemDrive'], '/')
    else
      File.expand_path "/"
    end
  end

  private_class_method :find_home

  # FIXME deprecate these in 3.0

  ##
  # Zlib::GzipReader wrapper that unzips +data+.

  def self.gunzip(data)
    require 'rubygems/util'
    Gem::Util.gunzip data
  end

  ##
  # Zlib::GzipWriter wrapper that zips +data+.

  def self.gzip(data)
    require 'rubygems/util'
    Gem::Util.gzip data
  end

  ##
  # A Zlib::Inflate#inflate wrapper

  def self.inflate(data)
    require 'rubygems/util'
    Gem::Util.inflate data
  end

  ##
  # Top level install helper method. Allows you to install gems interactively:
  #
  #   % irb
  #   >> Gem.install "minitest"
  #   Fetching: minitest-3.0.1.gem (100%)
  #   => [#<Gem::Specification:0x1013b4528 @name="minitest", ...>]

  def self.install name, version = Gem::Requirement.default, *options
    require "rubygems/dependency_installer"
    inst = Gem::DependencyInstaller.new(*options)
    inst.install name, version
    inst.installed_gems
  end

  ##
  # Get the default RubyGems API host. This is normally
  # <tt>https://rubygems.org</tt>.

  def self.host
    # TODO: move to utils
    @host ||= Gem::DEFAULT_HOST
  end

  ## Set the default RubyGems API host.

  def self.host= host
    # TODO: move to utils
    @host = host
  end

  ##
  # The index to insert activated gem paths into the $LOAD_PATH. The activated
  # gem's paths are inserted before site lib directory by default.

  def self.load_path_insert_index
    index = $LOAD_PATH.index RbConfig::CONFIG['sitelibdir']

    index
  end

  @yaml_loaded = false

  ##
  # Loads YAML, preferring Psych

  def self.load_yaml
    return if @yaml_loaded
    return unless defined?(gem)

    test_syck = ENV['TEST_SYCK']

    unless test_syck
      begin
        gem 'psych', '~> 2.0.0'
      rescue Gem::LoadError
        # It's OK if the user does not have the psych gem installed.  We will
        # attempt to require the stdlib version
      end

      begin
        # Try requiring the gem version *or* stdlib version of psych.
        require 'psych'
      rescue ::LoadError
        # If we can't load psych, thats fine, go on.
      else
        # If 'yaml' has already been required, then we have to
        # be sure to switch it over to the newly loaded psych.
        if defined?(YAML::ENGINE) && YAML::ENGINE.yamler != "psych"
          YAML::ENGINE.yamler = "psych"
        end

        require 'rubygems/psych_additions'
        require 'rubygems/psych_tree'
      end
    end

    require 'yaml'
    require 'rubygems/safe_yaml'

    # If we're supposed to be using syck, then we may have to force
    # activate it via the YAML::ENGINE API.
    if test_syck and defined?(YAML::ENGINE)
      YAML::ENGINE.yamler = "syck" unless YAML::ENGINE.syck?
    end

    # Now that we're sure some kind of yaml library is loaded, pull
    # in our hack to deal with Syck's DefaultKey ugliness.
    require 'rubygems/syck_hack'

    @yaml_loaded = true
  end

  ##
  # The file name and line number of the caller of the caller of this method.

  def self.location_of_caller
    caller[1] =~ /(.*?):(\d+).*?$/i
    file = $1
    lineno = $2.to_i

    [file, lineno]
  end

  ##
  # The version of the Marshal format for your Ruby.

  def self.marshal_version
    "#{Marshal::MAJOR_VERSION}.#{Marshal::MINOR_VERSION}"
  end

  ##
  # Set array of platforms this RubyGems supports (primarily for testing).

  def self.platforms=(platforms)
    @platforms = platforms
  end

  ##
  # Array of platforms this RubyGems supports.

  def self.platforms
    @platforms ||= []
    if @platforms.empty?
      @platforms = [Gem::Platform::RUBY, Gem::Platform.local]
    end
    @platforms
  end

  ##
  # Adds a post-build hook that will be passed an Gem::Installer instance
  # when Gem::Installer#install is called.  The hook is called after the gem
  # has been extracted and extensions have been built but before the
  # executables or gemspec has been written.  If the hook returns +false+ then
  # the gem's files will be removed and the install will be aborted.

  def self.post_build(&hook)
    @post_build_hooks << hook
  end

  ##
  # Adds a post-install hook that will be passed an Gem::Installer instance
  # when Gem::Installer#install is called

  def self.post_install(&hook)
    @post_install_hooks << hook
  end

  ##
  # Adds a post-installs hook that will be passed a Gem::DependencyInstaller
  # and a list of installed specifications when
  # Gem::DependencyInstaller#install is complete

  def self.done_installing(&hook)
    @done_installing_hooks << hook
  end

  ##
  # Adds a hook that will get run after Gem::Specification.reset is
  # run.

  def self.post_reset(&hook)
    @post_reset_hooks << hook
  end

  ##
  # Adds a post-uninstall hook that will be passed a Gem::Uninstaller instance
  # and the spec that was uninstalled when Gem::Uninstaller#uninstall is
  # called

  def self.post_uninstall(&hook)
    @post_uninstall_hooks << hook
  end

  ##
  # Adds a pre-install hook that will be passed an Gem::Installer instance
  # when Gem::Installer#install is called.  If the hook returns +false+ then
  # the install will be aborted.

  def self.pre_install(&hook)
    @pre_install_hooks << hook
  end

  ##
  # Adds a hook that will get run before Gem::Specification.reset is
  # run.

  def self.pre_reset(&hook)
    @pre_reset_hooks << hook
  end

  ##
  # Adds a pre-uninstall hook that will be passed an Gem::Uninstaller instance
  # and the spec that will be uninstalled when Gem::Uninstaller#uninstall is
  # called

  def self.pre_uninstall(&hook)
    @pre_uninstall_hooks << hook
  end

  ##
  # The directory prefix this RubyGems was installed at. If your
  # prefix is in a standard location (ie, rubygems is installed where
  # you'd expect it to be), then prefix returns nil.

  def self.prefix
    prefix = File.dirname RUBYGEMS_DIR

    if prefix != File.expand_path(RbConfig::CONFIG['sitelibdir']) and
       prefix != File.expand_path(RbConfig::CONFIG['libdir']) and
       'lib' == File.basename(RUBYGEMS_DIR) then
      prefix
    end
  end

  ##
  # Refresh available gems from disk.

  def self.refresh
    Gem::Specification.reset
  end

  ##
  # Safely read a file in binary mode on all platforms.

  def self.read_binary(path)
    open path, 'rb+' do |f|
      f.flock(File::LOCK_EX)
      f.read
    end
  rescue Errno::EACCES
    open path, 'rb' do |f|
      f.read
    end
  end

  ##
  # The path to the running Ruby interpreter.

  def self.ruby
    if @ruby.nil? then
      @ruby = File.join(RbConfig::CONFIG['bindir'],
                        "#{RbConfig::CONFIG['ruby_install_name']}#{RbConfig::CONFIG['EXEEXT']}")

      @ruby = "\"#{@ruby}\"" if @ruby =~ /\s/
    end

    @ruby
  end

  ##
  # Returns a String containing the API compatibility version of Ruby

  def self.ruby_api_version
    @ruby_api_version ||= RbConfig::CONFIG['ruby_version'].dup
  end

  ##
  # Returns the latest release-version specification for the gem +name+.

  def self.latest_spec_for name
    dependency   = Gem::Dependency.new name
    fetcher      = Gem::SpecFetcher.fetcher
    spec_tuples, = fetcher.spec_for_dependency dependency

    spec, = spec_tuples.first

    spec
  end

  ##
  # Returns the latest release version of RubyGems.

  def self.latest_rubygems_version
    latest_version_for('rubygems-update') or
      raise "Can't find 'rubygems-update' in any repo. Check `gem source list`."
  end

  ##
  # Returns the version of the latest release-version of gem +name+

  def self.latest_version_for name
    spec = latest_spec_for name
    spec and spec.version
  end

  ##
  # A Gem::Version for the currently running Ruby.

  def self.ruby_version
    return @ruby_version if defined? @ruby_version
    version = RUBY_VERSION.dup

    if defined?(RUBY_PATCHLEVEL) && RUBY_PATCHLEVEL != -1 then
      version << ".#{RUBY_PATCHLEVEL}"
    elsif defined?(RUBY_REVISION) then
      version << ".dev.#{RUBY_REVISION}"
    end

    @ruby_version = Gem::Version.new version
  end

  ##
  # A Gem::Version for the currently running RubyGems

  def self.rubygems_version
    return @rubygems_version if defined? @rubygems_version
    @rubygems_version = Gem::Version.new Gem::VERSION
  end

  ##
  # Returns an Array of sources to fetch remote gems from. Uses
  # default_sources if the sources list is empty.

  def self.sources
    @sources ||= Gem::SourceList.from(default_sources)
  end

  ##
  # Need to be able to set the sources without calling
  # Gem.sources.replace since that would cause an infinite loop.
  #
  # DOC: This comment is not documentation about the method itself, it's
  # more of a code comment about the implementation.

  def self.sources= new_sources
    if !new_sources
      @sources = nil
    else
      @sources = Gem::SourceList.from(new_sources)
    end
  end

  ##
  # Glob pattern for require-able path suffixes.

  def self.suffix_pattern
    @suffix_pattern ||= "{#{suffixes.join(',')}}"
  end

  ##
  # Suffixes for require-able paths.

  def self.suffixes
    @suffixes ||= ['',
                   '.rb',
                   *%w(DLEXT DLEXT2).map { |key|
                     val = RbConfig::CONFIG[key]
                     next unless val and not val.empty?
                     ".#{val}"
                   }
                  ].compact.uniq
  end

  ##
  # Prints the amount of time the supplied block takes to run using the debug
  # UI output.

  def self.time(msg, width = 0, display = Gem.configuration.verbose)
    now = Time.now

    value = yield

    elapsed = Time.now - now

    ui.say "%2$*1$s: %3$3.3fs" % [-width, msg, elapsed] if display

    value
  end

  ##
  # Lazily loads DefaultUserInteraction and returns the default UI.

  def self.ui
    require 'rubygems/user_interaction'

    Gem::DefaultUserInteraction.ui
  end

  ##
  # Use the +home+ and +paths+ values for Gem.dir and Gem.path.  Used mainly
  # by the unit tests to provide environment isolation.

  def self.use_paths(home, *paths)
    paths = nil if paths == [nil]
    paths = paths.first if Array === Array(paths).first
    self.paths = { "GEM_HOME" => home, "GEM_PATH" => paths }
  end

  ##
  # The home directory for the user.

  def self.user_home
    @user_home ||= find_home.untaint
  end

  ##
  # Is this a windows platform?

  def self.win_platform?
    if @@win_platform.nil? then
      ruby_platform = RbConfig::CONFIG['host_os']
      @@win_platform = !!WIN_PATTERNS.find { |r| ruby_platform =~ r }
    end

    @@win_platform
  end

  ##
  # Load +plugins+ as Ruby files

  def self.load_plugin_files plugins # :nodoc:
    plugins.each do |plugin|

      # Skip older versions of the GemCutter plugin: Its commands are in
      # RubyGems proper now.

      next if plugin =~ /gemcutter-0\.[0-3]/

      begin
        load plugin
      rescue ::Exception => e
        details = "#{plugin.inspect}: #{e.message} (#{e.class})"
        warn "Error loading RubyGems plugin #{details}"
      end
    end
  end

  ##
  # Find the 'rubygems_plugin' files in the latest installed gems and load
  # them

  def self.load_plugins
    # Remove this env var by at least 3.0
    if ENV['RUBYGEMS_LOAD_ALL_PLUGINS']
      load_plugin_files find_files('rubygems_plugin', false)
    else
      load_plugin_files find_latest_files('rubygems_plugin', false)
    end
  end

  ##
  # Find all 'rubygems_plugin' files in $LOAD_PATH and load them

  def self.load_env_plugins
    path = "rubygems_plugin"

    files = []
    $LOAD_PATH.each do |load_path|
      globbed = Dir["#{File.expand_path path, load_path}#{Gem.suffix_pattern}"]

      globbed.each do |load_path_file|
        files << load_path_file if File.file?(load_path_file.untaint)
      end
    end

    load_plugin_files files
  end

  ##
  # Looks for a gem dependency file at +path+ and activates the gems in the
  # file if found.  If the file is not found an ArgumentError is raised.
  #
  # If +path+ is not given the RUBYGEMS_GEMDEPS environment variable is used,
  # but if no file is found no exception is raised.
  #
  # If '-' is given for +path+ RubyGems searches up from the current working
  # directory for gem dependency files (gem.deps.rb, Gemfile, Isolate) and
  # activates the gems in the first one found.
  #
  # You can run this automatically when rubygems starts.  To enable, set
  # the <code>RUBYGEMS_GEMDEPS</code> environment variable to either the path
  # of your gem dependencies file or "-" to auto-discover in parent
  # directories.
  #
  # NOTE: Enabling automatic discovery on multiuser systems can lead to
  # execution of arbitrary code when used from directories outside your
  # control.

  def self.use_gemdeps path = nil
    raise_exception = path

    path ||= ENV['RUBYGEMS_GEMDEPS']
    return unless path

    path = path.dup

    if path == "-" then
      require 'rubygems/util'

      Gem::Util.traverse_parents Dir.pwd do |directory|
        dep_file = GEM_DEP_FILES.find { |f| File.file?(f) }

        next unless dep_file

        path = File.join directory, dep_file
        break
      end
    end

    path.untaint

    unless File.file? path then
      return unless raise_exception

      raise ArgumentError, "Unable to find gem dependencies file at #{path}"
    end

    rs = Gem::RequestSet.new
    rs.load_gemdeps path

    rs.resolve_current.map do |s|
      sp = s.full_spec
      sp.activate
      sp
    end
  rescue Gem::LoadError, Gem::UnsatisfiableDependencyError => e
    warn e.message
    warn "You may need to `gem install -g` to install missing gems"
    warn ""
  end

  class << self
    ##
    # TODO remove with RubyGems 3.0

    alias detect_gemdeps use_gemdeps # :nodoc:
  end

  # FIX: Almost everywhere else we use the `def self.` way of defining class
  # methods, and then we switch over to `class << self` here. Pick one or the
  # other.
  class << self

    ##
    # Hash of loaded Gem::Specification keyed by name

    attr_reader :loaded_specs

    ##
    # Register a Gem::Specification for default gem.
    #
    # Two formats for the specification are supported:
    #
    # * MRI 2.0 style, where spec.files contains unprefixed require names.
    #   The spec's filenames will be registered as-is.
    # * New style, where spec.files contains files prefixed with paths
    #   from spec.require_paths. The prefixes are stripped before
    #   registering the spec's filenames. Unprefixed files are omitted.
    #

    def register_default_spec(spec)
      new_format = Gem.default_gems_use_full_paths? || spec.require_paths.any? {|path| spec.files.any? {|f| f.start_with? path } }

      if new_format
        prefix_group = spec.require_paths.map {|f| f + "/"}.join("|")
        prefix_pattern = /^(#{prefix_group})/
      end

      spec.files.each do |file|
        if new_format
          file = file.sub(prefix_pattern, "")
          next unless $~
        end

        @path_to_default_spec_map[file] = spec
      end
    end

    ##
    # Find a Gem::Specification of default gem from +path+

    def find_unresolved_default_spec(path)
      Gem.suffixes.each do |suffix|
        spec = @path_to_default_spec_map["#{path}#{suffix}"]
        return spec if spec
      end
      nil
    end

    ##
    # Remove needless Gem::Specification of default gem from
    # unresolved default gem list

    def remove_unresolved_default_spec(spec)
      spec.files.each do |file|
        @path_to_default_spec_map.delete(file)
      end
    end

    ##
    # Clear default gem related variables. It is for test

    def clear_default_specs
      @path_to_default_spec_map.clear
    end

    ##
    # The list of hooks to be run after Gem::Installer#install extracts files
    # and builds extensions

    attr_reader :post_build_hooks

    ##
    # The list of hooks to be run after Gem::Installer#install completes
    # installation

    attr_reader :post_install_hooks

    ##
    # The list of hooks to be run after Gem::DependencyInstaller installs a
    # set of gems

    attr_reader :done_installing_hooks

    ##
    # The list of hooks to be run after Gem::Specification.reset is run.

    attr_reader :post_reset_hooks

    ##
    # The list of hooks to be run after Gem::Uninstaller#uninstall completes
    # installation

    attr_reader :post_uninstall_hooks

    ##
    # The list of hooks to be run before Gem::Installer#install does any work

    attr_reader :pre_install_hooks

    ##
    # The list of hooks to be run before Gem::Specification.reset is run.

    attr_reader :pre_reset_hooks

    ##
    # The list of hooks to be run before Gem::Uninstaller#uninstall does any
    # work

    attr_reader :pre_uninstall_hooks
  end

  ##
  # Location of Marshal quick gemspecs on remote repositories

  MARSHAL_SPEC_DIR = "quick/Marshal.#{Gem.marshal_version}/"

  autoload :ConfigFile,         'rubygems/config_file'
  autoload :Dependency,         'rubygems/dependency'
  autoload :DependencyList,     'rubygems/dependency_list'
  autoload :DependencyResolver, 'rubygems/resolver'
  autoload :Installer,          'rubygems/installer'
  autoload :PathSupport,        'rubygems/path_support'
  autoload :Platform,           'rubygems/platform'
  autoload :RequestSet,         'rubygems/request_set'
  autoload :Requirement,        'rubygems/requirement'
  autoload :Resolver,           'rubygems/resolver'
  autoload :Source,             'rubygems/source'
  autoload :SourceList,         'rubygems/source_list'
  autoload :SpecFetcher,        'rubygems/spec_fetcher'
  autoload :Specification,      'rubygems/specification'
  autoload :Version,            'rubygems/version'

  require "rubygems/specification"
end

require 'rubygems/exceptions'

# REFACTOR: This should be pulled out into some kind of hacks file.
gem_preluded = Gem::GEM_PRELUDE_SUCKAGE and defined? Gem
unless gem_preluded then # TODO: remove guard after 1.9.2 dropped
  begin
    ##
    # Defaults the operating system (or packager) wants to provide for RubyGems.

    require 'rubygems/defaults/operating_system'
  rescue LoadError
  end

  if defined?(RUBY_ENGINE) then
    begin
      ##
      # Defaults the Ruby implementation wants to provide for RubyGems

      require "rubygems/defaults/#{RUBY_ENGINE}"
    rescue LoadError
    end
  end
end

##
# Loads the default specs.
Gem::Specification.load_defaults

require 'rubygems/core_ext/kernel_gem'
require 'rubygems/core_ext/kernel_require'

Gem.use_gemdeps

lib64/ruby/2.2.0/rubygems/request_set.rb000064400000022627150402106200013630 0ustar00require 'tsort'

##
# A RequestSet groups a request to activate a set of dependencies.
#
#   nokogiri = Gem::Dependency.new 'nokogiri', '~> 1.6'
#   pg = Gem::Dependency.new 'pg', '~> 0.14'
#
#   set = Gem::RequestSet.new nokogiri, pg
#
#   requests = set.resolve
#
#   p requests.map { |r| r.full_name }
#   #=> ["nokogiri-1.6.0", "mini_portile-0.5.1", "pg-0.17.0"]

class Gem::RequestSet

  include TSort

  ##
  # Array of gems to install even if already installed

  attr_accessor :always_install

  attr_reader :dependencies

  attr_accessor :development

  ##
  # Errors fetching gems during resolution.

  attr_reader :errors

  ##
  # Set to true if you want to install only direct development dependencies.

  attr_accessor :development_shallow

  ##
  # The set of git gems imported via load_gemdeps.

  attr_reader :git_set # :nodoc:

  ##
  # When true, dependency resolution is not performed, only the requested gems
  # are installed.

  attr_accessor :ignore_dependencies

  attr_reader :install_dir # :nodoc:

  ##
  # If true, allow dependencies to match prerelease gems.

  attr_accessor :prerelease

  ##
  # When false no remote sets are used for resolving gems.

  attr_accessor :remote

  attr_reader :resolver # :nodoc:

  ##
  # Sets used for resolution

  attr_reader :sets # :nodoc:

  ##
  # Treat missing dependencies as silent errors

  attr_accessor :soft_missing

  ##
  # The set of vendor gems imported via load_gemdeps.

  attr_reader :vendor_set # :nodoc:

  ##
  # Creates a RequestSet for a list of Gem::Dependency objects, +deps+.  You
  # can then #resolve and #install the resolved list of dependencies.
  #
  #   nokogiri = Gem::Dependency.new 'nokogiri', '~> 1.6'
  #   pg = Gem::Dependency.new 'pg', '~> 0.14'
  #
  #   set = Gem::RequestSet.new nokogiri, pg

  def initialize *deps
    @dependencies = deps

    @always_install      = []
    @conservative        = false
    @dependency_names    = {}
    @development         = false
    @development_shallow = false
    @errors              = []
    @git_set             = nil
    @ignore_dependencies = false
    @install_dir         = Gem.dir
    @prerelease          = false
    @remote              = true
    @requests            = []
    @sets                = []
    @soft_missing        = false
    @sorted              = nil
    @specs               = nil
    @vendor_set          = nil

    yield self if block_given?
  end

  ##
  # Declare that a gem of name +name+ with +reqs+ requirements is needed.

  def gem name, *reqs
    if dep = @dependency_names[name] then
      dep.requirement.concat reqs
    else
      dep = Gem::Dependency.new name, reqs
      @dependency_names[name] = dep
      @dependencies << dep
    end
  end

  ##
  # Add +deps+ Gem::Dependency objects to the set.

  def import deps
    @dependencies.concat deps
  end

  ##
  # Installs gems for this RequestSet using the Gem::Installer +options+.
  #
  # If a +block+ is given an activation +request+ and +installer+ are yielded.
  # The +installer+ will be +nil+ if a gem matching the request was already
  # installed.

  def install options, &block # :yields: request, installer
    if dir = options[:install_dir]
      requests = install_into dir, false, options, &block
      return requests
    end

    cache_dir = options[:cache_dir] || Gem.dir
    @prerelease = options[:prerelease]

    requests = []

    sorted_requests.each do |req|
      if req.installed? then
        req.spec.spec.build_extensions

        if @always_install.none? { |spec| spec == req.spec.spec } then
          yield req, nil if block_given?
          next
        end
      end

      path = req.download cache_dir

      inst = Gem::Installer.new path, options

      yield req, inst if block_given?

      requests << inst.install
    end

    requests
  ensure
    raise if $!
    return requests if options[:gemdeps]

    specs = requests.map do |request|
      case request
      when Gem::Resolver::ActivationRequest then
        request.spec.spec
      else
        request
      end
    end

    require 'rubygems/dependency_installer'
    inst = Gem::DependencyInstaller.new options
    inst.installed_gems.replace specs

    Gem.done_installing_hooks.each do |hook|
      hook.call inst, specs
    end unless Gem.done_installing_hooks.empty?
  end

  ##
  # Installs from the gem dependencies files in the +:gemdeps+ option in
  # +options+, yielding to the +block+ as in #install.
  #
  # If +:without_groups+ is given in the +options+, those groups in the gem
  # dependencies file are not used.  See Gem::Installer for other +options+.

  def install_from_gemdeps options, &block
    gemdeps = options[:gemdeps]

    @install_dir = options[:install_dir] || Gem.dir
    @prerelease  = options[:prerelease]
    @remote      = options[:domain] != :local
    @conservative = true if options[:conservative]

    gem_deps_api = load_gemdeps gemdeps, options[:without_groups], true

    resolve

    if options[:explain]
      puts "Gems to install:"

      sorted_requests.each do |spec|
        puts "  #{spec.full_name}"
      end

      if Gem.configuration.really_verbose
        @resolver.stats.display
      end
    else
      installed = install options, &block

      if options.fetch :lock, true then
        lockfile =
          Gem::RequestSet::Lockfile.new self, gemdeps, gem_deps_api.dependencies
        lockfile.write
      end

      installed
    end
  end

  def install_into dir, force = true, options = {}
    gem_home, ENV['GEM_HOME'] = ENV['GEM_HOME'], dir

    existing = force ? [] : specs_in(dir)
    existing.delete_if { |s| @always_install.include? s }

    dir = File.expand_path dir

    installed = []

    options[:development] = false
    options[:install_dir] = dir
    options[:only_install_dir] = true
    @prerelease = options[:prerelease]

    sorted_requests.each do |request|
      spec = request.spec

      if existing.find { |s| s.full_name == spec.full_name } then
        yield request, nil if block_given?
        next
      end

      spec.install options do |installer|
        yield request, installer if block_given?
      end

      installed << request
    end

    installed
  ensure
    ENV['GEM_HOME'] = gem_home
  end

  ##
  # Load a dependency management file.

  def load_gemdeps path, without_groups = [], installing = false
    @git_set    = Gem::Resolver::GitSet.new
    @vendor_set = Gem::Resolver::VendorSet.new

    @git_set.root_dir = @install_dir

    lockfile = Gem::RequestSet::Lockfile.new self, path
    lockfile.parse

    gf = Gem::RequestSet::GemDependencyAPI.new self, path
    gf.installing = installing
    gf.without_groups = without_groups if without_groups
    gf.load
  end

  def pretty_print q # :nodoc:
    q.group 2, '[RequestSet:', ']' do
      q.breakable

      if @remote then
        q.text 'remote'
        q.breakable
      end

      if @prerelease then
        q.text 'prerelease'
        q.breakable
      end

      if @development_shallow then
        q.text 'shallow development'
        q.breakable
      elsif @development then
        q.text 'development'
        q.breakable
      end

      if @soft_missing then
        q.text 'soft missing'
      end

      q.group 2, '[dependencies:', ']' do
        q.breakable
        @dependencies.map do |dep|
          q.text dep.to_s
          q.breakable
        end
      end

      q.breakable
      q.text 'sets:'

      q.breakable
      q.pp @sets.map { |set| set.class }
    end
  end

  ##
  # Resolve the requested dependencies and return an Array of Specification
  # objects to be activated.

  def resolve set = Gem::Resolver::BestSet.new
    @sets << set
    @sets << @git_set
    @sets << @vendor_set

    set = Gem::Resolver.compose_sets(*@sets)
    set.remote = @remote
    set.prerelease = @prerelease

    resolver = Gem::Resolver.new @dependencies, set
    resolver.development         = @development
    resolver.development_shallow = @development_shallow
    resolver.ignore_dependencies = @ignore_dependencies
    resolver.soft_missing        = @soft_missing

    if @conservative
      installed_gems = {}
      Gem::Specification.find_all do |spec|
        (installed_gems[spec.name] ||= []) << spec
      end
      resolver.skip_gems = installed_gems
    end

    @resolver = resolver

    @requests = resolver.resolve

    @errors = set.errors

    @requests
  end

  ##
  # Resolve the requested dependencies against the gems available via Gem.path
  # and return an Array of Specification objects to be activated.

  def resolve_current
    resolve Gem::Resolver::CurrentSet.new
  end

  def sorted_requests
    @sorted ||= strongly_connected_components.flatten
  end

  def specs
    @specs ||= @requests.map { |r| r.full_spec }
  end

  def specs_in dir
    Dir["#{dir}/specifications/*.gemspec"].map do |g|
      Gem::Specification.load g
    end
  end

  def tsort_each_node &block # :nodoc:
    @requests.each(&block)
  end

  def tsort_each_child node # :nodoc:
    node.spec.dependencies.each do |dep|
      next if dep.type == :development and not @development

      match = @requests.find { |r|
        dep.match? r.spec.name, r.spec.version, @prerelease
      }

      unless match then
        next if dep.type == :development and @development_shallow
        next if @soft_missing
        raise Gem::DependencyError,
              "Unresolved dependency found during sorting - #{dep} (requested by #{node.spec.full_name})"
      end

      yield match
    end
  end

end

require 'rubygems/request_set/gem_dependency_api'
require 'rubygems/request_set/lockfile'
lib64/ruby/2.2.0/rubygems/version.rb000064400000025652150402106200012753 0ustar00##
# The Version class processes string versions into comparable
# values. A version string should normally be a series of numbers
# separated by periods. Each part (digits separated by periods) is
# considered its own number, and these are used for sorting. So for
# instance, 3.10 sorts higher than 3.2 because ten is greater than
# two.
#
# If any part contains letters (currently only a-z are supported) then
# that version is considered prerelease. Versions with a prerelease
# part in the Nth part sort less than versions with N-1
# parts. Prerelease parts are sorted alphabetically using the normal
# Ruby string sorting rules. If a prerelease part contains both
# letters and numbers, it will be broken into multiple parts to
# provide expected sort behavior (1.0.a10 becomes 1.0.a.10, and is
# greater than 1.0.a9).
#
# Prereleases sort between real releases (newest to oldest):
#
# 1. 1.0
# 2. 1.0.b1
# 3. 1.0.a.2
# 4. 0.9
#
# If you want to specify a version restriction that includes both prereleases
# and regular releases of the 1.x series this is the best way:
#
#   s.add_dependency 'example', '>= 1.0.0.a', '< 2.0.0'
#
# == How Software Changes
#
# Users expect to be able to specify a version constraint that gives them
# some reasonable expectation that new versions of a library will work with
# their software if the version constraint is true, and not work with their
# software if the version constraint is false.  In other words, the perfect
# system will accept all compatible versions of the library and reject all
# incompatible versions.
#
# Libraries change in 3 ways (well, more than 3, but stay focused here!).
#
# 1. The change may be an implementation detail only and have no effect on
#    the client software.
# 2. The change may add new features, but do so in a way that client software
#    written to an earlier version is still compatible.
# 3. The change may change the public interface of the library in such a way
#    that old software is no longer compatible.
#
# Some examples are appropriate at this point.  Suppose I have a Stack class
# that supports a <tt>push</tt> and a <tt>pop</tt> method.
#
# === Examples of Category 1 changes:
#
# * Switch from an array based implementation to a linked-list based
#   implementation.
# * Provide an automatic (and transparent) backing store for large stacks.
#
# === Examples of Category 2 changes might be:
#
# * Add a <tt>depth</tt> method to return the current depth of the stack.
# * Add a <tt>top</tt> method that returns the current top of stack (without
#   changing the stack).
# * Change <tt>push</tt> so that it returns the item pushed (previously it
#   had no usable return value).
#
# === Examples of Category 3 changes might be:
#
# * Changes <tt>pop</tt> so that it no longer returns a value (you must use
#   <tt>top</tt> to get the top of the stack).
# * Rename the methods to <tt>push_item</tt> and <tt>pop_item</tt>.
#
# == RubyGems Rational Versioning
#
# * Versions shall be represented by three non-negative integers, separated
#   by periods (e.g. 3.1.4).  The first integers is the "major" version
#   number, the second integer is the "minor" version number, and the third
#   integer is the "build" number.
#
# * A category 1 change (implementation detail) will increment the build
#   number.
#
# * A category 2 change (backwards compatible) will increment the minor
#   version number and reset the build number.
#
# * A category 3 change (incompatible) will increment the major build number
#   and reset the minor and build numbers.
#
# * Any "public" release of a gem should have a different version.  Normally
#   that means incrementing the build number.  This means a developer can
#   generate builds all day long, but as soon as they make a public release,
#   the version must be updated.
#
# === Examples
#
# Let's work through a project lifecycle using our Stack example from above.
#
# Version 0.0.1:: The initial Stack class is release.
# Version 0.0.2:: Switched to a linked=list implementation because it is
#                 cooler.
# Version 0.1.0:: Added a <tt>depth</tt> method.
# Version 1.0.0:: Added <tt>top</tt> and made <tt>pop</tt> return nil
#                 (<tt>pop</tt> used to return the  old top item).
# Version 1.1.0:: <tt>push</tt> now returns the value pushed (it used it
#                 return nil).
# Version 1.1.1:: Fixed a bug in the linked list implementation.
# Version 1.1.2:: Fixed a bug introduced in the last fix.
#
# Client A needs a stack with basic push/pop capability.  They write to the
# original interface (no <tt>top</tt>), so their version constraint looks like:
#
#   gem 'stack', '~> 0.0'
#
# Essentially, any version is OK with Client A.  An incompatible change to
# the library will cause them grief, but they are willing to take the chance
# (we call Client A optimistic).
#
# Client B is just like Client A except for two things: (1) They use the
# <tt>depth</tt> method and (2) they are worried about future
# incompatibilities, so they write their version constraint like this:
#
#   gem 'stack', '~> 0.1'
#
# The <tt>depth</tt> method was introduced in version 0.1.0, so that version
# or anything later is fine, as long as the version stays below version 1.0
# where incompatibilities are introduced.  We call Client B pessimistic
# because they are worried about incompatible future changes (it is OK to be
# pessimistic!).
#
# == Preventing Version Catastrophe:
#
# From: http://blog.zenspider.com/2008/10/rubygems-howto-preventing-cata.html
#
# Let's say you're depending on the fnord gem version 2.y.z. If you
# specify your dependency as ">= 2.0.0" then, you're good, right? What
# happens if fnord 3.0 comes out and it isn't backwards compatible
# with 2.y.z? Your stuff will break as a result of using ">=". The
# better route is to specify your dependency with an "approximate" version
# specifier ("~>"). They're a tad confusing, so here is how the dependency
# specifiers work:
#
#   Specification From  ... To (exclusive)
#   ">= 3.0"      3.0   ... &infin;
#   "~> 3.0"      3.0   ... 4.0
#   "~> 3.0.0"    3.0.0 ... 3.1
#   "~> 3.5"      3.5   ... 4.0
#   "~> 3.5.0"    3.5.0 ... 3.6
#   "~> 3"        3.0   ... 4.0
#
# For the last example, single-digit versions are automatically extended with
# a zero to give a sensible result.

class Gem::Version
  autoload :Requirement, 'rubygems/requirement'

  include Comparable

  VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?' # :nodoc:
  ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/ # :nodoc:

  ##
  # A string representation of this Version.

  def version
    @version.dup
  end

  alias to_s version

  ##
  # True if the +version+ string matches RubyGems' requirements.

  def self.correct? version
    version.to_s =~ ANCHORED_VERSION_PATTERN
  end

  ##
  # Factory method to create a Version object. Input may be a Version
  # or a String. Intended to simplify client code.
  #
  #   ver1 = Version.create('1.3.17')   # -> (Version object)
  #   ver2 = Version.create(ver1)       # -> (ver1)
  #   ver3 = Version.create(nil)        # -> nil

  def self.create input
    if self === input then # check yourself before you wreck yourself
      input
    elsif input.nil? then
      nil
    else
      new input
    end
  end

  @@all = {}

  def self.new version # :nodoc:
    return super unless Gem::Version == self

    @@all[version] ||= super
  end

  ##
  # Constructs a Version from the +version+ string.  A version string is a
  # series of digits or ASCII letters separated by dots.

  def initialize version
    raise ArgumentError, "Malformed version number string #{version}" unless
      self.class.correct?(version)

    @version = version.to_s.strip.gsub("-",".pre.")
    @segments = nil
  end

  ##
  # Return a new version object where the next to the last revision
  # number is one greater (e.g., 5.3.1 => 5.4).
  #
  # Pre-release (alpha) parts, e.g, 5.3.1.b.2 => 5.4, are ignored.

  def bump
    segments = self.segments.dup
    segments.pop while segments.any? { |s| String === s }
    segments.pop if segments.size > 1

    segments[-1] = segments[-1].succ
    self.class.new segments.join(".")
  end

  ##
  # A Version is only eql? to another version if it's specified to the
  # same precision. Version "1.0" is not the same as version "1".

  def eql? other
    self.class === other and @version == other.version
  end

  def hash # :nodoc:
    @hash ||= segments.hash
  end

  def init_with coder # :nodoc:
    yaml_initialize coder.tag, coder.map
  end

  def inspect # :nodoc:
    "#<#{self.class} #{version.inspect}>"
  end

  ##
  # Dump only the raw version string, not the complete object. It's a
  # string for backwards (RubyGems 1.3.5 and earlier) compatibility.

  def marshal_dump
    [version]
  end

  ##
  # Load custom marshal format. It's a string for backwards (RubyGems
  # 1.3.5 and earlier) compatibility.

  def marshal_load array
    initialize array[0]
  end

  def yaml_initialize(tag, map) # :nodoc:
    @version = map['version']
    @segments = nil
    @hash = nil
  end

  def to_yaml_properties # :nodoc:
    ["@version"]
  end

  def encode_with coder # :nodoc:
    coder.add 'version', @version
  end

  ##
  # A version is considered a prerelease if it contains a letter.

  def prerelease?
    @prerelease ||= !!(@version =~ /[a-zA-Z]/)
  end

  def pretty_print q # :nodoc:
    q.text "Gem::Version.new(#{version.inspect})"
  end

  ##
  # The release for this version (e.g. 1.2.0.a -> 1.2.0).
  # Non-prerelease versions return themselves.

  def release
    return self unless prerelease?

    segments = self.segments.dup
    segments.pop while segments.any? { |s| String === s }
    self.class.new segments.join('.')
  end

  def segments # :nodoc:

    # segments is lazy so it can pick up version values that come from
    # old marshaled versions, which don't go through marshal_load.

    @segments ||= @version.scan(/[0-9]+|[a-z]+/i).map do |s|
      /^\d+$/ =~ s ? s.to_i : s
    end
  end

  ##
  # A recommended version for use with a ~> Requirement.

  def approximate_recommendation
    segments = self.segments.dup

    segments.pop    while segments.any? { |s| String === s }
    segments.pop    while segments.size > 2
    segments.push 0 while segments.size < 2

    "~> #{segments.join(".")}"
  end

  ##
  # Compares this version with +other+ returning -1, 0, or 1 if the
  # other version is larger, the same, or smaller than this
  # one. Attempts to compare to something that's not a
  # <tt>Gem::Version</tt> return +nil+.

  def <=> other
    return unless Gem::Version === other
    return 0 if @version == other.version

    lhsegments = segments
    rhsegments = other.segments

    lhsize = lhsegments.size
    rhsize = rhsegments.size
    limit  = (lhsize > rhsize ? lhsize : rhsize) - 1

    i = 0

    while i <= limit
      lhs, rhs = lhsegments[i] || 0, rhsegments[i] || 0
      i += 1

      next      if lhs == rhs
      return -1 if String  === lhs && Numeric === rhs
      return  1 if Numeric === lhs && String  === rhs

      return lhs <=> rhs
    end

    return 0
  end
end
lib64/ruby/2.2.0/rubygems/ssl_certs/GlobalSignRootCA.pem000064400000002355150402106200016531 0ustar00-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
-----END CERTIFICATE-----
lib64/ruby/2.2.0/rubygems/text.rb000064400000003626150402106200012247 0ustar00require 'rubygems'

##
# A collection of text-wrangling methods

module Gem::Text

  ##
  # Remove any non-printable characters and make the text suitable for
  # printing.
  def clean_text(text)
    text.gsub(/[\000-\b\v-\f\016-\037\177]/, ".".freeze)
  end

  def truncate_text(text, description, max_length = 100_000)
    raise ArgumentError, "max_length must be positive" unless max_length > 0
    return text if text.size <= max_length
    "Truncating #{description} to #{max_length.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse} characters:\n" + text[0, max_length]
  end

  ##
  # Wraps +text+ to +wrap+ characters and optionally indents by +indent+
  # characters

  def format_text(text, wrap, indent=0)
    result = []
    work = clean_text(text)

    while work.length > wrap do
      if work =~ /^(.{0,#{wrap}})[ \n]/ then
        result << $1.rstrip
        work.slice!(0, $&.length)
      else
        result << work.slice!(0, wrap)
      end
    end

    result << work if work.length.nonzero?
    result.join("\n").gsub(/^/, " " * indent)
  end

  def min3 a, b, c # :nodoc:
    if a < b && a < c then
      a
    elsif b < c then
      b
    else
      c
    end
  end

  # This code is based directly on the Text gem implementation
  # Returns a value representing the "cost" of transforming str1 into str2
  def levenshtein_distance str1, str2
    s = str1
    t = str2
    n = s.length
    m = t.length
    max = n/2

    return m if (0 == n)
    return n if (0 == m)
    return n if (n - m).abs > max

    d = (0..m).to_a
    x = nil

    str1.each_char.each_with_index do |char1,i|
      e = i+1

      str2.each_char.each_with_index do |char2,j|
        cost = (char1 == char2) ? 0 : 1
        x = min3(
             d[j+1] + 1, # insertion
             e + 1,      # deletion
             d[j] + cost # substitution
            )
        d[j] = e
        e = x
      end

      d[m] = x
    end

    return x
  end
end

lib64/ruby/2.2.0/rubygems/request/connection_pools.rb000064400000003435150402106200016324 0ustar00require 'thread'

class Gem::Request::ConnectionPools # :nodoc:

  @client = Net::HTTP

  class << self
    attr_accessor :client
  end

  def initialize proxy_uri, cert_files
    @proxy_uri  = proxy_uri
    @cert_files = cert_files
    @pools      = {}
    @pool_mutex = Mutex.new
  end

  def pool_for uri
    http_args = net_http_args(uri, @proxy_uri)
    key       = http_args + [https?(uri)]
    @pool_mutex.synchronize do
      @pools[key] ||=
        if https? uri then
          Gem::Request::HTTPSPool.new(http_args, @cert_files, @proxy_uri)
        else
          Gem::Request::HTTPPool.new(http_args, @cert_files, @proxy_uri)
        end
    end
  end

  def close_all
    @pools.each_value {|pool| pool.close_all}
  end

  private

  ##
  # Returns list of no_proxy entries (if any) from the environment

  def get_no_proxy_from_env
    env_no_proxy = ENV['no_proxy'] || ENV['NO_PROXY']

    return [] if env_no_proxy.nil?  or env_no_proxy.empty?

    env_no_proxy.split(/\s*,\s*/)
  end

  def https? uri
    uri.scheme.downcase == 'https'
  end

  def no_proxy? host, env_no_proxy
    host = host.downcase

    env_no_proxy.any? do |pattern|
      pattern = pattern.downcase

      host[-pattern.length, pattern.length] == pattern or
        (pattern.start_with? '.' and pattern[1..-1] == host)
    end
  end

  def net_http_args uri, proxy_uri
    net_http_args = [uri.host, uri.port]

    no_proxy = get_no_proxy_from_env

    if proxy_uri and not no_proxy?(uri.host, no_proxy) then
      net_http_args + [
        proxy_uri.host,
        proxy_uri.port,
        Gem::UriFormatter.new(proxy_uri.user).unescape,
        Gem::UriFormatter.new(proxy_uri.password).unescape,
      ]
    elsif no_proxy? uri.host, no_proxy then
      net_http_args + [nil, nil]
    else
      net_http_args
    end
  end

end

lib64/ruby/2.2.0/rubygems/request/https_pool.rb000064400000000315150402106200015136 0ustar00class Gem::Request::HTTPSPool < Gem::Request::HTTPPool # :nodoc:
  private

  def setup_connection connection
    Gem::Request.configure_connection_for_https(connection, @cert_files)
    super
  end
end


lib64/ruby/2.2.0/rubygems/request/http_pool.rb000064400000001747150402106200014765 0ustar00##
# A connection "pool" that only manages one connection for now.  Provides
# thread safe `checkout` and `checkin` methods.  The pool consists of one
# connection that corresponds to `http_args`.  This class is private, do not
# use it.

class Gem::Request::HTTPPool # :nodoc:
  attr_reader :cert_files, :proxy_uri

  def initialize http_args, cert_files, proxy_uri
    @http_args  = http_args
    @cert_files = cert_files
    @proxy_uri  = proxy_uri
    @queue      = SizedQueue.new 1
    @queue << nil
  end

  def checkout
    @queue.pop || make_connection
  end

  def checkin connection
    @queue.push connection
  end

  def close_all
    until @queue.empty?
      if connection = @queue.pop(true) and connection.started?
        connection.finish
      end
    end
    @queue.push(nil)
  end

  private

  def make_connection
    setup_connection Gem::Request::ConnectionPools.client.new(*@http_args)
  end

  def setup_connection connection
    connection.start
    connection
  end

end

lib64/ruby/2.2.0/rubygems/platform.rb000064400000014206150402106200013103 0ustar00require "rubygems/deprecate"

##
# Available list of platforms for targeting Gem installations.
#
# See `gem help platform` for information on platform matching.

class Gem::Platform

  @local = nil

  attr_accessor :cpu

  attr_accessor :os

  attr_accessor :version

  def self.local
    arch = RbConfig::CONFIG['arch']
    arch = "#{arch}_60" if arch =~ /mswin(?:32|64)$/
    @local ||= new(arch)
  end

  def self.match(platform)
    Gem.platforms.any? do |local_platform|
      platform.nil? or
        local_platform == platform or
        (local_platform != Gem::Platform::RUBY and local_platform =~ platform)
    end
  end

  def self.installable?(spec)
    if spec.respond_to? :installable_platform?
      spec.installable_platform?
    else
      match spec.platform
    end
  end

  def self.new(arch) # :nodoc:
    case arch
    when Gem::Platform::CURRENT then
      Gem::Platform.local
    when Gem::Platform::RUBY, nil, '' then
      Gem::Platform::RUBY
    else
      super
    end
  end

  def initialize(arch)
    case arch
    when Array then
      @cpu, @os, @version = arch
    when String then
      arch = arch.split '-'

      if arch.length > 2 and arch.last !~ /\d/ then # reassemble x86-linux-gnu
        extra = arch.pop
        arch.last << "-#{extra}"
      end

      cpu = arch.shift

      @cpu = case cpu
             when /i\d86/ then 'x86'
             else cpu
             end

      if arch.length == 2 and arch.last =~ /^\d+(\.\d+)?$/ then # for command-line
        @os, @version = arch
        return
      end

      os, = arch
      @cpu, os = nil, cpu if os.nil? # legacy jruby

      @os, @version = case os
                      when /aix(\d+)?/ then             [ 'aix',       $1  ]
                      when /cygwin/ then                [ 'cygwin',    nil ]
                      when /darwin(\d+)?/ then          [ 'darwin',    $1  ]
                      when /^macruby$/ then             [ 'macruby',   nil ]
                      when /freebsd(\d+)?/ then         [ 'freebsd',   $1  ]
                      when /hpux(\d+)?/ then            [ 'hpux',      $1  ]
                      when /^java$/, /^jruby$/ then     [ 'java',      nil ]
                      when /^java([\d.]*)/ then         [ 'java',      $1  ]
                      when /^dalvik(\d+)?$/ then        [ 'dalvik',    $1  ]
                      when /^dotnet$/ then              [ 'dotnet',    nil ]
                      when /^dotnet([\d.]*)/ then       [ 'dotnet',    $1  ]
                      when /linux/ then                 [ 'linux',     $1  ]
                      when /mingw32/ then               [ 'mingw32',   nil ]
                      when /(mswin\d+)(\_(\d+))?/ then
                        os, version = $1, $3
                        @cpu = 'x86' if @cpu.nil? and os =~ /32$/
                        [os, version]
                      when /netbsdelf/ then             [ 'netbsdelf', nil ]
                      when /openbsd(\d+\.\d+)?/ then    [ 'openbsd',   $1  ]
                      when /solaris(\d+\.\d+)?/ then    [ 'solaris',   $1  ]
                      # test
                      when /^(\w+_platform)(\d+)?/ then [ $1,          $2  ]
                      else                              [ 'unknown',   nil ]
                      end
    when Gem::Platform then
      @cpu = arch.cpu
      @os = arch.os
      @version = arch.version
    else
      raise ArgumentError, "invalid argument #{arch.inspect}"
    end
  end

  def inspect
    "#<%s:0x%x @cpu=%p, @os=%p, @version=%p>" % [self.class, object_id, *to_a]
  end

  def to_a
    [@cpu, @os, @version]
  end

  def to_s
    to_a.compact.join '-'
  end

  ##
  # Is +other+ equal to this platform?  Two platforms are equal if they have
  # the same CPU, OS and version.

  def ==(other)
    self.class === other and to_a == other.to_a
  end

  alias :eql? :==

  def hash # :nodoc:
    to_a.hash
  end

  ##
  # Does +other+ match this platform?  Two platforms match if they have the
  # same CPU, or either has a CPU of 'universal', they have the same OS, and
  # they have the same version, or either has no version.
  #
  # Additionally, the platform will match if the local CPU is 'arm' and the
  # other CPU starts with "arm" (for generic ARM family support).

  def ===(other)
    return nil unless Gem::Platform === other

    # cpu
    (@cpu == 'universal' or other.cpu == 'universal' or @cpu == other.cpu or
     (@cpu == 'arm' and other.cpu =~ /\Aarm/)) and

    # os
    @os == other.os and

    # version
    (@version.nil? or other.version.nil? or @version == other.version)
  end

  ##
  # Does +other+ match this platform?  If +other+ is a String it will be
  # converted to a Gem::Platform first.  See #=== for matching rules.

  def =~(other)
    case other
    when Gem::Platform then # nop
    when String then
      # This data is from http://gems.rubyforge.org/gems/yaml on 19 Aug 2007
      other = case other
              when /^i686-darwin(\d)/     then ['x86',       'darwin',  $1    ]
              when /^i\d86-linux/         then ['x86',       'linux',   nil   ]
              when 'java', 'jruby'        then [nil,         'java',    nil   ]
              when /^dalvik(\d+)?$/       then [nil,         'dalvik',  $1    ]
              when /dotnet(\-(\d+\.\d+))?/ then ['universal','dotnet',  $2    ]
              when /mswin32(\_(\d+))?/    then ['x86',       'mswin32', $2    ]
              when /mswin64(\_(\d+))?/    then ['x64',       'mswin64', $2    ]
              when 'powerpc-darwin'       then ['powerpc',   'darwin',  nil   ]
              when /powerpc-darwin(\d)/   then ['powerpc',   'darwin',  $1    ]
              when /sparc-solaris2.8/     then ['sparc',     'solaris', '2.8' ]
              when /universal-darwin(\d)/ then ['universal', 'darwin',  $1    ]
              else                             other
              end

      other = Gem::Platform.new other
    else
      return nil
    end

    self === other
  end

  ##
  # A pure-Ruby gem that may use Gem::Specification#extensions to build
  # binary files.

  RUBY = 'ruby'

  ##
  # A platform-specific gem that is built for the packaging Ruby's platform.
  # This will be replaced with Gem::Platform::local.

  CURRENT = 'current'
end

lib64/ruby/2.2.0/rubygems/errors.rb000064400000006174150402106200012600 0ustar00#--
# This file contains all the various exceptions and other errors that are used
# inside of RubyGems.
#
# DOC: Confirm _all_
#++

module Gem
  ##
  # Raised when RubyGems is unable to load or activate a gem.  Contains the
  # name and version requirements of the gem that either conflicts with
  # already activated gems or that RubyGems is otherwise unable to activate.

  class LoadError < ::LoadError
    # Name of gem
    attr_accessor :name

    # Version requirement of gem
    attr_accessor :requirement
  end

  # Raised when there are conflicting gem specs loaded

  class ConflictError < LoadError

    ##
    # A Hash mapping conflicting specifications to the dependencies that
    # caused the conflict

    attr_reader :conflicts

    ##
    # The specification that had the conflict

    attr_reader :target

    def initialize target, conflicts
      @target    = target
      @conflicts = conflicts
      @name      = target.name

      reason = conflicts.map { |act, dependencies|
        "#{act.full_name} conflicts with #{dependencies.join(", ")}"
      }.join ", "

      # TODO: improve message by saying who activated `con`

      super("Unable to activate #{target.full_name}, because #{reason}")
    end
  end

  class ErrorReason; end

  # Generated when trying to lookup a gem to indicate that the gem
  # was found, but that it isn't usable on the current platform.
  #
  # fetch and install read these and report them to the user to aid
  # in figuring out why a gem couldn't be installed.
  #
  class PlatformMismatch < ErrorReason

    ##
    # the name of the gem
    attr_reader :name

    ##
    # the version
    attr_reader :version

    ##
    # The platforms that are mismatched
    attr_reader :platforms

    def initialize(name, version)
      @name = name
      @version = version
      @platforms = []
    end

    ##
    # append a platform to the list of mismatched platforms.
    #
    # Platforms are added via this instead of injected via the constructor
    # so that we can loop over a list of mismatches and just add them rather
    # than perform some kind of calculation mismatch summary before creation.
    def add_platform(platform)
      @platforms << platform
    end

    ##
    # A wordy description of the error.
    def wordy
      "Found %s (%s), but was for platform%s %s" %
        [@name,
         @version,
         @platforms.size == 1 ? '' : 's',
         @platforms.join(' ,')]
    end
  end

  ##
  # An error that indicates we weren't able to fetch some
  # data from a source

  class SourceFetchProblem < ErrorReason

    ##
    # Creates a new SourceFetchProblem for the given +source+ and +error+.

    def initialize(source, error)
      @source = source
      @error = error
    end

    ##
    # The source that had the fetch problem.

    attr_reader :source

    ##
    # The fetch error which is an Exception subclass.

    attr_reader :error

    ##
    # An English description of the error.

    def wordy
      "Unable to download data from #{@source.uri} - #{@error.message}"
    end

    ##
    # The "exception" alias allows you to call raise on a SourceFetchProblem.

    alias exception error
  end
end
lib64/ruby/2.2.0/rubygems/gemcutter_utilities.rb000064400000007706150402106200015360 0ustar00require 'rubygems/remote_fetcher'

##
# Utility methods for using the RubyGems API.

module Gem::GemcutterUtilities

  # TODO: move to Gem::Command
  OptionParser.accept Symbol do |value|
    value.to_sym
  end

  attr_writer :host

  ##
  # Add the --key option

  def add_key_option
    add_option('-k', '--key KEYNAME', Symbol,
               'Use the given API key',
               'from ~/.gem/credentials') do |value,options|
      options[:key] = value
    end
  end

  ##
  # The API key from the command options or from the user's configuration.

  def api_key
    if options[:key] then
      verify_api_key options[:key]
    elsif Gem.configuration.api_keys.key?(host)
      Gem.configuration.api_keys[host]
    else
      Gem.configuration.rubygems_api_key
    end
  end

  ##
  # The host to connect to either from the RUBYGEMS_HOST environment variable
  # or from the user's configuration

  def host
    configured_host = Gem.host unless
      Gem.configuration.disable_default_gem_server

    @host ||=
      begin
        env_rubygems_host = ENV['RUBYGEMS_HOST']
        env_rubygems_host = nil if
          env_rubygems_host and env_rubygems_host.empty?

        env_rubygems_host|| configured_host
      end
  end

  ##
  # Creates an RubyGems API to +host+ and +path+ with the given HTTP +method+.
  #
  # If +allowed_push_host+ metadata is present, then it will only allow that host.

  def rubygems_api_request(method, path, host = nil, allowed_push_host = nil, &block)
    require 'net/http'

    self.host = host if host
    unless self.host
      alert_error "You must specify a gem server"
      terminate_interaction 1 # TODO: question this
    end

    if allowed_push_host and self.host != allowed_push_host
      alert_error "#{self.host.inspect} is not allowed by the gemspec, which only allows #{allowed_push_host.inspect}"
      terminate_interaction 1
    end

    uri = URI.parse "#{self.host}/#{path}"

    request_method = Net::HTTP.const_get method.to_s.capitalize

    Gem::RemoteFetcher.fetcher.request(uri, request_method, &block)
  end

  ##
  # Signs in with the RubyGems API at +sign_in_host+ and sets the rubygems API
  # key.

  def sign_in sign_in_host = nil
    sign_in_host ||= self.host
    return if api_key

    pretty_host = if Gem::DEFAULT_HOST == sign_in_host then
                    'RubyGems.org'
                  else
                    sign_in_host
                  end

    say "Enter your #{pretty_host} credentials."
    say "Don't have an account yet? " +
        "Create one at #{sign_in_host}/sign_up"

    email    =              ask "   Email: "
    password = ask_for_password "Password: "
    say "\n"

    response = rubygems_api_request(:get, "api/v1/api_key",
                                    sign_in_host) do |request|
      request.basic_auth email, password
    end

    with_response response do |resp|
      say "Signed in."
      Gem.configuration.rubygems_api_key = resp.body
    end
  end

  ##
  # Retrieves the pre-configured API key +key+ or terminates interaction with
  # an error.

  def verify_api_key(key)
    if Gem.configuration.api_keys.key? key then
      Gem.configuration.api_keys[key]
    else
      alert_error "No such API key. Please add it to your configuration (done automatically on initial `gem push`)."
      terminate_interaction 1 # TODO: question this
    end
  end

  ##
  # If +response+ is an HTTP Success (2XX) response, yields the response if a
  # block was given or shows the response body to the user.
  #
  # If the response was not successful, shows an error to the user including
  # the +error_prefix+ and the response body.

  def with_response response, error_prefix = nil
    case response
    when Net::HTTPSuccess then
      if block_given? then
        yield response
      else
        say response.body
      end
    else
      message = response.body
      message = "#{error_prefix}: #{message}" if error_prefix

      say message
      terminate_interaction 1 # TODO: question this
    end
  end

end

lib64/ruby/2.2.0/rubygems/dependency_installer.rb000064400000033477150402106200015465 0ustar00require 'rubygems'
require 'rubygems/dependency_list'
require 'rubygems/package'
require 'rubygems/installer'
require 'rubygems/spec_fetcher'
require 'rubygems/user_interaction'
require 'rubygems/source'
require 'rubygems/available_set'

##
# Installs a gem along with all its dependencies from local and remote gems.

class Gem::DependencyInstaller

  include Gem::UserInteraction

  DEFAULT_OPTIONS = { # :nodoc:
    :env_shebang         => false,
    :document            => %w[ri],
    :domain              => :both, # HACK dup
    :force               => false,
    :format_executable   => false, # HACK dup
    :ignore_dependencies => false,
    :prerelease          => false,
    :security_policy     => nil, # HACK NoSecurity requires OpenSSL. AlmostNo? Low?
    :wrappers            => true,
    :build_args          => nil,
    :build_docs_in_background => false,
    :install_as_default  => false
  }.freeze

  ##
  # Documentation types.  For use by the Gem.done_installing hook

  attr_reader :document

  ##
  # Errors from SpecFetcher while searching for remote specifications

  attr_reader :errors

  ##
  #--
  # TODO remove, no longer used

  attr_reader :gems_to_install # :nodoc:

  ##
  # List of gems installed by #install in alphabetic order

  attr_reader :installed_gems

  ##
  # Creates a new installer instance.
  #
  # Options are:
  # :cache_dir:: Alternate repository path to store .gem files in.
  # :domain:: :local, :remote, or :both.  :local only searches gems in the
  #           current directory.  :remote searches only gems in Gem::sources.
  #           :both searches both.
  # :env_shebang:: See Gem::Installer::new.
  # :force:: See Gem::Installer#install.
  # :format_executable:: See Gem::Installer#initialize.
  # :ignore_dependencies:: Don't install any dependencies.
  # :install_dir:: See Gem::Installer#install.
  # :prerelease:: Allow prerelease versions.  See #install.
  # :security_policy:: See Gem::Installer::new and Gem::Security.
  # :user_install:: See Gem::Installer.new
  # :wrappers:: See Gem::Installer::new
  # :build_args:: See Gem::Installer::new

  def initialize options = {}
    @only_install_dir = !!options[:install_dir]
    @install_dir = options[:install_dir] || Gem.dir
    @build_root = options[:build_root]

    options = DEFAULT_OPTIONS.merge options

    @bin_dir             = options[:bin_dir]
    @dev_shallow         = options[:dev_shallow]
    @development         = options[:development]
    @document            = options[:document]
    @domain              = options[:domain]
    @env_shebang         = options[:env_shebang]
    @force               = options[:force]
    @format_executable   = options[:format_executable]
    @ignore_dependencies = options[:ignore_dependencies]
    @prerelease          = options[:prerelease]
    @security_policy     = options[:security_policy]
    @user_install        = options[:user_install]
    @wrappers            = options[:wrappers]
    @build_args          = options[:build_args]
    @build_docs_in_background = options[:build_docs_in_background]
    @install_as_default  = options[:install_as_default]

    # Indicates that we should not try to update any deps unless
    # we absolutely must.
    @minimal_deps        = options[:minimal_deps]

    @available      = nil
    @installed_gems = []
    @toplevel_specs = nil

    @cache_dir = options[:cache_dir] || @install_dir

    @errors = []
  end

  ##
  #--
  # TODO remove, no longer used

  def add_found_dependencies to_do, dependency_list # :nodoc:
    seen = {}
    dependencies = Hash.new { |h, name| h[name] = Gem::Dependency.new name }

    until to_do.empty? do
      spec = to_do.shift

      # HACK why is spec nil?
      next if spec.nil? or seen[spec.name]
      seen[spec.name] = true

      deps = spec.runtime_dependencies

      if @development
        if @dev_shallow
          if @toplevel_specs.include? spec.full_name
            deps |= spec.development_dependencies
          end
        else
          deps |= spec.development_dependencies
        end
      end

      deps.each do |dep|
        dependencies[dep.name] = dependencies[dep.name].merge dep

        if @minimal_deps
          next if Gem::Specification.any? do |installed_spec|
                    dep.name == installed_spec.name and
                      dep.requirement.satisfied_by? installed_spec.version
                  end
        end

        results = find_gems_with_sources(dep)

        results.sorted.each do |t|
          to_do.push t.spec
        end

        results.remove_installed! dep

        @available << results
        results.inject_into_list dependency_list
      end
    end

    dependency_list.remove_specs_unsatisfied_by dependencies
  end

  ##
  # Creates an AvailableSet to install from based on +dep_or_name+ and
  # +version+

  def available_set_for dep_or_name, version # :nodoc:
    if String === dep_or_name then
      find_spec_by_name_and_version dep_or_name, version, @prerelease
    else
      dep = dep_or_name.dup
      dep.prerelease = @prerelease
      @available = find_gems_with_sources dep
    end

    @available.pick_best!
  end

  ##
  # Indicated, based on the requested domain, if local
  # gems should be considered.

  def consider_local?
    @domain == :both or @domain == :local
  end

  ##
  # Indicated, based on the requested domain, if remote
  # gems should be considered.

  def consider_remote?
    @domain == :both or @domain == :remote
  end

  ##
  # Returns a list of pairs of gemspecs and source_uris that match
  # Gem::Dependency +dep+ from both local (Dir.pwd) and remote (Gem.sources)
  # sources.  Gems are sorted with newer gems preferred over older gems, and
  # local gems preferred over remote gems.

  def find_gems_with_sources dep, best_only=false # :nodoc:
    set = Gem::AvailableSet.new

    if consider_local?
      sl = Gem::Source::Local.new

      if spec = sl.find_gem(dep.name)
        if dep.matches_spec? spec
          set.add spec, sl
        end
      end
    end

    if consider_remote?
      begin
        # TODO this is pulled from #spec_for_dependency to allow
        # us to filter tuples before fetching specs.
        #
        tuples, errors = Gem::SpecFetcher.fetcher.search_for_dependency dep

        if best_only && !tuples.empty?
          tuples.sort! { |a,b| b[0].version <=> a[0].version }
          tuples = [tuples.first]
        end

        specs = []
        tuples.each do |tup, source|
          begin
            spec = source.fetch_spec(tup)
          rescue Gem::RemoteFetcher::FetchError => e
            errors << Gem::SourceFetchProblem.new(source, e)
          else
            specs << [spec, source]
          end
        end

        if @errors
          @errors += errors
        else
          @errors = errors
        end

        set << specs

      rescue Gem::RemoteFetcher::FetchError => e
        # FIX if there is a problem talking to the network, we either need to always tell
        # the user (no really_verbose) or fail hard, not silently tell them that we just
        # couldn't find their requested gem.
        verbose do
          "Error fetching remote data:\t\t#{e.message}\n" \
            "Falling back to local-only install"
        end
        @domain = :local
      end
    end

    set
  end

  ##
  # Finds a spec and the source_uri it came from for gem +gem_name+ and
  # +version+.  Returns an Array of specs and sources required for
  # installation of the gem.

  def find_spec_by_name_and_version gem_name,
                                    version = Gem::Requirement.default,
                                    prerelease = false
    set = Gem::AvailableSet.new

    if consider_local?
      if gem_name =~ /\.gem$/ and File.file? gem_name then
        src = Gem::Source::SpecificFile.new(gem_name)
        set.add src.spec, src
      elsif gem_name =~ /\.gem$/ then
        Dir[gem_name].each do |name|
          begin
            src = Gem::Source::SpecificFile.new name
            set.add src.spec, src
          rescue Gem::Package::FormatError
          end
        end
      else
        local = Gem::Source::Local.new

        if s = local.find_gem(gem_name, version)
          set.add s, local
        end
      end
    end

    if set.empty?
      dep = Gem::Dependency.new gem_name, version
      dep.prerelease = true if prerelease

      set = find_gems_with_sources(dep, true)
      set.match_platform!
    end

    if set.empty?
      raise Gem::SpecificGemNotFoundException.new(gem_name, version, @errors)
    end

    @available = set
  end

  ##
  # Gathers all dependencies necessary for the installation from local and
  # remote sources unless the ignore_dependencies was given.
  #--
  # TODO remove at RubyGems 3

  def gather_dependencies # :nodoc:
    specs = @available.all_specs

    # these gems were listed by the user, always install them
    keep_names = specs.map { |spec| spec.full_name }

    if @dev_shallow
      @toplevel_specs = keep_names
    end

    dependency_list = Gem::DependencyList.new @development
    dependency_list.add(*specs)
    to_do = specs.dup
    add_found_dependencies to_do, dependency_list unless @ignore_dependencies

    # REFACTOR maybe abstract away using Gem::Specification.include? so
    # that this isn't dependent only on the currently installed gems
    dependency_list.specs.reject! { |spec|
      not keep_names.include?(spec.full_name) and
      Gem::Specification.include?(spec)
    }

    unless dependency_list.ok? or @ignore_dependencies or @force then
      reason = dependency_list.why_not_ok?.map { |k,v|
        "#{k} requires #{v.join(", ")}"
      }.join("; ")
      raise Gem::DependencyError, "Unable to resolve dependencies: #{reason}"
    end

    @gems_to_install = dependency_list.dependency_order.reverse
  end

  def in_background what # :nodoc:
    fork_happened = false
    if @build_docs_in_background and Process.respond_to?(:fork)
      begin
        Process.fork do
          yield
        end
        fork_happened = true
        say "#{what} in a background process."
      rescue NotImplementedError
      end
    end
    yield unless fork_happened
  end

  ##
  # Installs the gem +dep_or_name+ and all its dependencies.  Returns an Array
  # of installed gem specifications.
  #
  # If the +:prerelease+ option is set and there is a prerelease for
  # +dep_or_name+ the prerelease version will be installed.
  #
  # Unless explicitly specified as a prerelease dependency, prerelease gems
  # that +dep_or_name+ depend on will not be installed.
  #
  # If c-1.a depends on b-1 and a-1.a and there is a gem b-1.a available then
  # c-1.a, b-1 and a-1.a will be installed.  b-1.a will need to be installed
  # separately.

  def install dep_or_name, version = Gem::Requirement.default
    request_set = resolve_dependencies dep_or_name, version

    @installed_gems = []

    options = {
      :bin_dir             => @bin_dir,
      :build_args          => @build_args,
      :document            => @document,
      :env_shebang         => @env_shebang,
      :force               => @force,
      :format_executable   => @format_executable,
      :ignore_dependencies => @ignore_dependencies,
      :prerelease          => @prerelease,
      :security_policy     => @security_policy,
      :user_install        => @user_install,
      :wrappers            => @wrappers,
      :build_root          => @build_root,
      :install_as_default  => @install_as_default
    }
    options[:install_dir] = @install_dir if @only_install_dir

    request_set.install options do |_, installer|
      @installed_gems << installer.spec if installer
    end

    @installed_gems.sort!

    # Since this is currently only called for docs, we can be lazy and just say
    # it's documentation. Ideally the hook adder could decide whether to be in
    # the background or not, and what to call it.
    in_background "Installing documentation" do
      Gem.done_installing_hooks.each do |hook|
        hook.call self, @installed_gems
      end
    end unless Gem.done_installing_hooks.empty?

    @installed_gems
  end

  def install_development_deps # :nodoc:
    if @development and @dev_shallow then
      :shallow
    elsif @development then
      :all
    else
      :none
    end
  end

  def resolve_dependencies dep_or_name, version # :nodoc:
    request_set = Gem::RequestSet.new
    request_set.development         = @development
    request_set.development_shallow = @dev_shallow
    request_set.soft_missing = @force
    request_set.prerelease = @prerelease
    request_set.remote = false unless consider_remote?

    installer_set = Gem::Resolver::InstallerSet.new @domain
    installer_set.ignore_installed = @only_install_dir

    if consider_local?
      if dep_or_name =~ /\.gem$/ and File.file? dep_or_name then
        src = Gem::Source::SpecificFile.new dep_or_name
        installer_set.add_local dep_or_name, src.spec, src
        version = src.spec.version if version == Gem::Requirement.default
      elsif dep_or_name =~ /\.gem$/ then
        Dir[dep_or_name].each do |name|
          begin
            src = Gem::Source::SpecificFile.new name
            installer_set.add_local dep_or_name, src.spec, src
          rescue Gem::Package::FormatError
          end
        end
      # else This is a dependency. InstallerSet handles this case
      end
    end

    dependency =
      if spec = installer_set.local?(dep_or_name) then
        Gem::Dependency.new spec.name, version
      elsif String === dep_or_name then
        Gem::Dependency.new dep_or_name, version
      else
        dep_or_name
      end

    dependency.prerelease = @prerelease

    request_set.import [dependency]

    installer_set.add_always_install dependency

    request_set.always_install = installer_set.always_install

    if @ignore_dependencies then
      installer_set.ignore_dependencies = true
      request_set.ignore_dependencies   = true
      request_set.soft_missing          = true
    end

    request_set.resolve installer_set

    @errors.concat request_set.errors

    request_set
  end

end
lib64/ruby/2.2.0/rubygems/command_manager.rb000064400000011204150402106200014362 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rubygems/command'
require 'rubygems/user_interaction'

##
# The command manager registers and installs all the individual sub-commands
# supported by the gem command.
#
# Extra commands can be provided by writing a rubygems_plugin.rb
# file in an installed gem.  You should register your command against the
# Gem::CommandManager instance, like this:
#
#   # file rubygems_plugin.rb
#   require 'rubygems/command_manager'
#
#   Gem::CommandManager.instance.register_command :edit
#
# You should put the implementation of your command in rubygems/commands.
#
#   # file rubygems/commands/edit_command.rb
#   class Gem::Commands::EditCommand < Gem::Command
#     # ...
#   end
#
# See Gem::Command for instructions on writing gem commands.

class Gem::CommandManager

  include Gem::UserInteraction

  BUILTIN_COMMANDS = [ # :nodoc:
    :build,
    :cert,
    :check,
    :cleanup,
    :contents,
    :dependency,
    :environment,
    :fetch,
    :generate_index,
    :help,
    :install,
    :list,
    :lock,
    :mirror,
    :open,
    :outdated,
    :owner,
    :pristine,
    :push,
    :query,
    :rdoc,
    :search,
    :server,
    :sources,
    :specification,
    :stale,
    :uninstall,
    :unpack,
    :update,
    :which,
    :yank,
  ]

  ##
  # Return the authoritative instance of the command manager.

  def self.instance
    @command_manager ||= new
  end

  ##
  # Returns self. Allows a CommandManager instance to stand
  # in for the class itself.

  def instance
    self
  end

  ##
  # Reset the authoritative instance of the command manager.

  def self.reset
    @command_manager = nil
  end

  ##
  # Register all the subcommands supported by the gem command.

  def initialize
    require 'timeout'
    @commands = {}

    BUILTIN_COMMANDS.each do |name|
      register_command name
    end
  end

  ##
  # Register the Symbol +command+ as a gem command.

  def register_command(command, obj=false)
    @commands[command] = obj
  end

  ##
  # Unregister the Symbol +command+ as a gem command.

  def unregister_command(command)
    @commands.delete command
  end

  ##
  # Returns a Command instance for +command_name+

  def [](command_name)
    command_name = command_name.intern
    return nil if @commands[command_name].nil?
    @commands[command_name] ||= load_and_instantiate(command_name)
  end

  ##
  # Return a sorted list of all command names as strings.

  def command_names
    @commands.keys.collect {|key| key.to_s}.sort
  end

  ##
  # Run the command specified by +args+.

  def run(args, build_args=nil)
    process_args(args, build_args)
  rescue StandardError, Timeout::Error => ex
    alert_error "While executing gem ... (#{ex.class})\n    #{ex}"
    ui.backtrace ex

    terminate_interaction(1)
  rescue Interrupt
    alert_error "Interrupted"
    terminate_interaction(1)
  end

  def process_args(args, build_args=nil)
    if args.empty? then
      say Gem::Command::HELP
      terminate_interaction 1
    end

    case args.first
    when '-h', '--help' then
      say Gem::Command::HELP
      terminate_interaction 0
    when '-v', '--version' then
      say Gem::VERSION
      terminate_interaction 0
    when /^-/ then
      alert_error "Invalid option: #{args.first}.  See 'gem --help'."
      terminate_interaction 1
    else
      cmd_name = args.shift.downcase
      cmd = find_command cmd_name
      cmd.invoke_with_build_args args, build_args
    end
  end

  def find_command(cmd_name)
    possibilities = find_command_possibilities cmd_name

    if possibilities.size > 1 then
      raise Gem::CommandLineError,
            "Ambiguous command #{cmd_name} matches [#{possibilities.join(', ')}]"
    elsif possibilities.empty? then
      raise Gem::CommandLineError, "Unknown command #{cmd_name}"
    end

    self[possibilities.first]
  end

  def find_command_possibilities(cmd_name)
    len = cmd_name.length

    found = command_names.select { |name| cmd_name == name[0, len] }

    exact = found.find { |name| name == cmd_name }

    exact ? [exact] : found
  end

  private

  def load_and_instantiate(command_name)
    command_name = command_name.to_s
    const_name = command_name.capitalize.gsub(/_(.)/) { $1.upcase } << "Command"
    load_error = nil

    begin
      begin
        require "rubygems/commands/#{command_name}_command"
      rescue LoadError => e
        load_error = e
      end
      Gem::Commands.const_get(const_name).new
    rescue Exception => e
      e = load_error if load_error

      alert_error "Loading command: #{command_name} (#{e.class})\n\t#{e}"
      ui.backtrace e
    end
  end

end

lib64/ruby/2.2.0/rubygems/install_message.rb000064400000000431150402106200014424 0ustar00require 'rubygems'
require 'rubygems/user_interaction'

##
# A default post-install hook that displays "Successfully installed
# some_gem-1.0"

Gem.post_install do |installer|
  ui = Gem::DefaultUserInteraction.ui
  ui.say "Successfully installed #{installer.spec.full_name}"
end

lib64/ruby/2.2.0/rubygems/gem_runner.rb000064400000003724150402106200013423 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rubygems'
require 'rubygems/command_manager'
require 'rubygems/config_file'

##
# Load additional plugins from $LOAD_PATH

Gem.load_env_plugins rescue nil

##
# Run an instance of the gem program.
#
# Gem::GemRunner is only intended for internal use by RubyGems itself.  It
# does not form any public API and may change at any time for any reason.
#
# If you would like to duplicate functionality of `gem` commands, use the
# classes they call directly.

class Gem::GemRunner

  def initialize(options={})
    # TODO: nuke these options
    @command_manager_class = options[:command_manager] || Gem::CommandManager
    @config_file_class = options[:config_file] || Gem::ConfigFile
  end

  ##
  # Run the gem command with the following arguments.

  def run args
    build_args = extract_build_args args

    do_configuration args

    cmd = @command_manager_class.instance

    cmd.command_names.each do |command_name|
      config_args = Gem.configuration[command_name]
      config_args = case config_args
                    when String
                      config_args.split ' '
                    else
                      Array(config_args)
                    end
      Gem::Command.add_specific_extra_args command_name, config_args
    end

    cmd.run Gem.configuration.args, build_args
  end

  ##
  # Separates the build arguments (those following <code>--</code>) from the
  # other arguments in the list.

  def extract_build_args args # :nodoc:
    return [] unless offset = args.index('--')

    build_args = args.slice!(offset...args.length)

    build_args.shift

    build_args
  end

  private

  def do_configuration(args)
    Gem.configuration = @config_file_class.new(args)
    Gem.use_paths Gem.configuration[:gemhome], Gem.configuration[:gempath]
    Gem::Command.extra_args = Gem.configuration[:gem]
  end

end

Gem.load_plugins
lib64/ruby/2.2.0/rubygems/path_support.rb000064400000003510150402106200014003 0ustar00##
#
# Gem::PathSupport facilitates the GEM_HOME and GEM_PATH environment settings
# to the rest of RubyGems.
#
class Gem::PathSupport
  ##
  # The default system path for managing Gems.
  attr_reader :home

  ##
  # Array of paths to search for Gems.
  attr_reader :path

  ##
  # Directory with spec cache
  attr_reader :spec_cache_dir # :nodoc:

  ##
  #
  # Constructor. Takes a single argument which is to be treated like a
  # hashtable, or defaults to ENV, the system environment.
  #
  def initialize(env=ENV)
    @env = env

    # note 'env' vs 'ENV'...
    @home     = env["GEM_HOME"] || ENV["GEM_HOME"] || Gem.default_dir

    if File::ALT_SEPARATOR then
      @home   = @home.gsub(File::ALT_SEPARATOR, File::SEPARATOR)
    end

    self.path = env["GEM_PATH"] || ENV["GEM_PATH"]

    @spec_cache_dir =
      env["GEM_SPEC_CACHE"] || ENV["GEM_SPEC_CACHE"] ||
        Gem.default_spec_cache_dir

    @spec_cache_dir = @spec_cache_dir.dup.untaint
  end

  private

  ##
  # Set the Gem home directory (as reported by Gem.dir).

  def home=(home)
    @home = home.to_s
  end

  ##
  # Set the Gem search path (as reported by Gem.path).

  def path=(gpaths)
    # FIX: it should be [home, *path], not [*path, home]

    gem_path = []

    # FIX: I can't tell wtf this is doing.
    gpaths ||= (ENV['GEM_PATH'] || "").empty? ? nil : ENV["GEM_PATH"]

    if gpaths
      if gpaths.kind_of?(Array)
        gem_path = gpaths.dup
      else
        gem_path = gpaths.split(Gem.path_separator)
      end

      if File::ALT_SEPARATOR then
        gem_path.map! do |this_path|
          this_path.gsub File::ALT_SEPARATOR, File::SEPARATOR
        end
      end

      gem_path << @home
    else
      gem_path = Gem.default_path + [@home]

      if defined?(APPLE_GEM_HOME)
        gem_path << APPLE_GEM_HOME
      end
    end

    @path = gem_path.uniq
  end
end
lib64/ruby/2.2.0/rubygems/request.rb000064400000015352150402106200012752 0ustar00require 'net/http'
require 'thread'
require 'time'
require 'rubygems/user_interaction'

class Gem::Request

  include Gem::UserInteraction

  ###
  # Legacy.  This is used in tests.
  def self.create_with_proxy uri, request_class, last_modified, proxy # :nodoc:
    cert_files = get_cert_files
    proxy ||= get_proxy_from_env(uri.scheme)
    pool       = ConnectionPools.new proxy_uri(proxy), cert_files

    new(uri, request_class, last_modified, pool.pool_for(uri))
  end

  def self.proxy_uri proxy # :nodoc:
    case proxy
    when :no_proxy then nil
    when URI::HTTP then proxy
    else URI.parse(proxy)
    end
  end

  def initialize(uri, request_class, last_modified, pool)
    @uri = uri
    @request_class = request_class
    @last_modified = last_modified
    @requests = Hash.new 0
    @user_agent = user_agent

    @connection_pool = pool
  end

  def proxy_uri; @connection_pool.proxy_uri; end
  def cert_files; @connection_pool.cert_files; end

  def self.get_cert_files
    pattern = File.expand_path("./ssl_certs/*.pem", File.dirname(__FILE__))
    Dir.glob(pattern)
  end

  def self.configure_connection_for_https(connection, cert_files)
    require 'net/https'
    connection.use_ssl = true
    connection.verify_mode =
      Gem.configuration.ssl_verify_mode || OpenSSL::SSL::VERIFY_PEER
    store = OpenSSL::X509::Store.new

    if Gem.configuration.ssl_client_cert then
      pem = File.read Gem.configuration.ssl_client_cert
      connection.cert = OpenSSL::X509::Certificate.new pem
      connection.key = OpenSSL::PKey::RSA.new pem
    end

    store.set_default_paths
    cert_files.each do |ssl_cert_file|
      store.add_file ssl_cert_file
    end
    if Gem.configuration.ssl_ca_cert
      if File.directory? Gem.configuration.ssl_ca_cert
        store.add_path Gem.configuration.ssl_ca_cert
      else
        store.add_file Gem.configuration.ssl_ca_cert
      end
    end
    connection.cert_store = store
    connection
  rescue LoadError => e
    raise unless (e.respond_to?(:path) && e.path == 'openssl') ||
                 e.message =~ / -- openssl$/

    raise Gem::Exception.new(
            'Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources')
  end

  ##
  # Creates or an HTTP connection based on +uri+, or retrieves an existing
  # connection, using a proxy if needed.

  def connection_for(uri)
    @connection_pool.checkout
  rescue defined?(OpenSSL::SSL) ? OpenSSL::SSL::SSLError : Errno::EHOSTDOWN,
         Errno::EHOSTDOWN => e
    raise Gem::RemoteFetcher::FetchError.new(e.message, uri)
  end

  def fetch
    request = @request_class.new @uri.request_uri

    unless @uri.nil? || @uri.user.nil? || @uri.user.empty? then
      request.basic_auth Gem::UriFormatter.new(@uri.user).unescape,
                         Gem::UriFormatter.new(@uri.password).unescape
    end

    request.add_field 'User-Agent', @user_agent
    request.add_field 'Connection', 'keep-alive'
    request.add_field 'Keep-Alive', '30'

    if @last_modified then
      request.add_field 'If-Modified-Since', @last_modified.httpdate
    end

    yield request if block_given?

    perform_request request
  end

  ##
  # Returns a proxy URI for the given +scheme+ if one is set in the
  # environment variables.

  def self.get_proxy_from_env scheme = 'http'
    _scheme = scheme.downcase
    _SCHEME = scheme.upcase
    env_proxy = ENV["#{_scheme}_proxy"] || ENV["#{_SCHEME}_PROXY"]

    no_env_proxy = env_proxy.nil? || env_proxy.empty?

    return get_proxy_from_env 'http' if no_env_proxy and _scheme != 'http'
    return :no_proxy                 if no_env_proxy

    uri = URI(Gem::UriFormatter.new(env_proxy).normalize)

    if uri and uri.user.nil? and uri.password.nil? then
      user     = ENV["#{_scheme}_proxy_user"] || ENV["#{_SCHEME}_PROXY_USER"]
      password = ENV["#{_scheme}_proxy_pass"] || ENV["#{_SCHEME}_PROXY_PASS"]

      uri.user     = Gem::UriFormatter.new(user).escape
      uri.password = Gem::UriFormatter.new(password).escape
    end

    uri
  end

  def perform_request request # :nodoc:
    connection = connection_for @uri

    retried = false
    bad_response = false

    begin
      @requests[connection.object_id] += 1

      verbose "#{request.method} #{@uri}"

      file_name = File.basename(@uri.path)
      # perform download progress reporter only for gems
      if request.response_body_permitted? && file_name =~ /\.gem$/
        reporter = ui.download_reporter
        response = connection.request(request) do |incomplete_response|
          if Net::HTTPOK === incomplete_response
            reporter.fetch(file_name, incomplete_response.content_length)
            downloaded = 0
            data = ''

            incomplete_response.read_body do |segment|
              data << segment
              downloaded += segment.length
              reporter.update(downloaded)
            end
            reporter.done
            if incomplete_response.respond_to? :body=
              incomplete_response.body = data
            else
              incomplete_response.instance_variable_set(:@body, data)
            end
          end
        end
      else
        response = connection.request request
      end

      verbose "#{response.code} #{response.message}"

    rescue Net::HTTPBadResponse
      verbose "bad response"

      reset connection

      raise Gem::RemoteFetcher::FetchError.new('too many bad responses', @uri) if bad_response

      bad_response = true
      retry
    # HACK work around EOFError bug in Net::HTTP
    # NOTE Errno::ECONNABORTED raised a lot on Windows, and make impossible
    # to install gems.
    rescue EOFError, Timeout::Error,
           Errno::ECONNABORTED, Errno::ECONNRESET, Errno::EPIPE

      requests = @requests[connection.object_id]
      verbose "connection reset after #{requests} requests, retrying"

      raise Gem::RemoteFetcher::FetchError.new('too many connection resets', @uri) if retried

      reset connection

      retried = true
      retry
    end

    response
  ensure
    @connection_pool.checkin connection
  end

  ##
  # Resets HTTP connection +connection+.

  def reset(connection)
    @requests.delete connection.object_id

    connection.finish
    connection.start
  end

  def user_agent
    ua = "RubyGems/#{Gem::VERSION} #{Gem::Platform.local}"

    ruby_version = RUBY_VERSION
    ruby_version += 'dev' if RUBY_PATCHLEVEL == -1

    ua << " Ruby/#{ruby_version} (#{RUBY_RELEASE_DATE}"
    if RUBY_PATCHLEVEL >= 0 then
      ua << " patchlevel #{RUBY_PATCHLEVEL}"
    elsif defined?(RUBY_REVISION) then
      ua << " revision #{RUBY_REVISION}"
    end
    ua << ")"

    ua << " #{RUBY_ENGINE}" if defined?(RUBY_ENGINE) and RUBY_ENGINE != 'ruby'

    ua
  end

end

require 'rubygems/request/http_pool'
require 'rubygems/request/https_pool'
require 'rubygems/request/connection_pools'

lib64/ruby/2.2.0/rubygems/package.rb000064400000035577150402106200012670 0ustar00# -*- coding: utf-8 -*-
#--
# Copyright (C) 2004 Mauricio Julio Fernández Pradier
# See LICENSE.txt for additional licensing information.
#++
#
# Example using a Gem::Package
#
# Builds a .gem file given a Gem::Specification. A .gem file is a tarball
# which contains a data.tar.gz and metadata.gz, and possibly signatures.
#
#   require 'rubygems'
#   require 'rubygems/package'
#
#   spec = Gem::Specification.new do |s|
#     s.summary = "Ruby based make-like utility."
#     s.name = 'rake'
#     s.version = PKG_VERSION
#     s.requirements << 'none'
#     s.files = PKG_FILES
#     s.description = <<-EOF
#   Rake is a Make-like program implemented in Ruby. Tasks
#   and dependencies are specified in standard Ruby syntax.
#     EOF
#   end
#
#   Gem::Package.build spec
#
# Reads a .gem file.
#
#   require 'rubygems'
#   require 'rubygems/package'
#
#   the_gem = Gem::Package.new(path_to_dot_gem)
#   the_gem.contents # get the files in the gem
#   the_gem.extract_files destination_directory # extract the gem into a directory
#   the_gem.spec # get the spec out of the gem
#   the_gem.verify # check the gem is OK (contains valid gem specification, contains a not corrupt contents archive)
#
# #files are the files in the .gem tar file, not the Ruby files in the gem
# #extract_files and #contents automatically call #verify

require 'rubygems/security'
require 'rubygems/specification'
require 'rubygems/user_interaction'
require 'zlib'

class Gem::Package

  include Gem::UserInteraction

  class Error < Gem::Exception; end

  class FormatError < Error
    attr_reader :path

    def initialize message, source = nil
      if source
        @path = source.path

        message << " in #{path}" if path
      end

      super message
    end

  end

  class PathError < Error
    def initialize destination, destination_dir
      super "installing into parent path %s of %s is not allowed" %
              [destination, destination_dir]
    end
  end

  class NonSeekableIO < Error; end

  class TooLongFileName < Error; end

  ##
  # Raised when a tar file is corrupt

  class TarInvalidError < Error; end


  attr_accessor :build_time # :nodoc:

  ##
  # Checksums for the contents of the package

  attr_reader :checksums

  ##
  # The files in this package.  This is not the contents of the gem, just the
  # files in the top-level container.

  attr_reader :files

  ##
  # The security policy used for verifying the contents of this package.

  attr_accessor :security_policy

  ##
  # Sets the Gem::Specification to use to build this package.

  attr_writer :spec

  def self.build spec, skip_validation=false
    gem_file = spec.file_name

    package = new gem_file
    package.spec = spec
    package.build skip_validation

    gem_file
  end

  ##
  # Creates a new Gem::Package for the file at +gem+. +gem+ can also be
  # provided as an IO object.
  #
  # If +gem+ is an existing file in the old format a Gem::Package::Old will be
  # returned.

  def self.new gem
    gem = if gem.is_a?(Gem::Package::Source)
            gem
          elsif gem.respond_to? :read
            Gem::Package::IOSource.new gem
          else
            Gem::Package::FileSource.new gem
          end

    return super(gem) unless Gem::Package == self
    return super unless gem.present?

    return super unless gem.start
    return super unless gem.start.include? 'MD5SUM ='

    Gem::Package::Old.new gem
  end

  ##
  # Creates a new package that will read or write to the file +gem+.

  def initialize gem # :notnew:
    @gem = gem

    @build_time      = Time.now
    @checksums       = {}
    @contents        = nil
    @digests         = Hash.new { |h, algorithm| h[algorithm] = {} }
    @files           = nil
    @security_policy = nil
    @signatures      = {}
    @signer          = nil
    @spec            = nil
  end

  ##
  # Adds a checksum for each entry in the gem to checksums.yaml.gz.

  def add_checksums tar
    Gem.load_yaml

    checksums_by_algorithm = Hash.new { |h, algorithm| h[algorithm] = {} }

    @checksums.each do |name, digests|
      digests.each do |algorithm, digest|
        checksums_by_algorithm[algorithm][name] = digest.hexdigest
      end
    end

    tar.add_file_signed 'checksums.yaml.gz', 0444, @signer do |io|
      gzip_to io do |gz_io|
        YAML.dump checksums_by_algorithm, gz_io
      end
    end
  end

  ##
  # Adds the files listed in the packages's Gem::Specification to data.tar.gz
  # and adds this file to the +tar+.

  def add_contents tar # :nodoc:
    digests = tar.add_file_signed 'data.tar.gz', 0444, @signer do |io|
      gzip_to io do |gz_io|
        Gem::Package::TarWriter.new gz_io do |data_tar|
          add_files data_tar
        end
      end
    end

    @checksums['data.tar.gz'] = digests
  end

  ##
  # Adds files included the package's Gem::Specification to the +tar+ file

  def add_files tar # :nodoc:
    @spec.files.each do |file|
      stat = File.stat file

      next unless stat.file?

      tar.add_file_simple file, stat.mode, stat.size do |dst_io|
        open file, 'rb' do |src_io|
          dst_io.write src_io.read 16384 until src_io.eof?
        end
      end
    end
  end

  ##
  # Adds the package's Gem::Specification to the +tar+ file

  def add_metadata tar # :nodoc:
    digests = tar.add_file_signed 'metadata.gz', 0444, @signer do |io|
      gzip_to io do |gz_io|
        gz_io.write @spec.to_yaml
      end
    end

    @checksums['metadata.gz'] = digests
  end

  ##
  # Builds this package based on the specification set by #spec=

  def build skip_validation = false
    Gem.load_yaml
    require 'rubygems/security'

    @spec.mark_version
    @spec.validate unless skip_validation

    setup_signer

    @gem.with_write_io do |gem_io|
      Gem::Package::TarWriter.new gem_io do |gem|
        add_metadata gem
        add_contents gem
        add_checksums gem
      end
    end

    say <<-EOM
  Successfully built RubyGem
  Name: #{@spec.name}
  Version: #{@spec.version}
  File: #{File.basename @spec.cache_file}
EOM
  ensure
    @signer = nil
  end

  ##
  # A list of file names contained in this gem

  def contents
    return @contents if @contents

    verify unless @spec

    @contents = []

    @gem.with_read_io do |io|
      gem_tar = Gem::Package::TarReader.new io

      gem_tar.each do |entry|
        next unless entry.full_name == 'data.tar.gz'

        open_tar_gz entry do |pkg_tar|
          pkg_tar.each do |contents_entry|
            @contents << contents_entry.full_name
          end
        end

        return @contents
      end
    end
  end

  ##
  # Creates a digest of the TarEntry +entry+ from the digest algorithm set by
  # the security policy.

  def digest entry # :nodoc:
    algorithms = if @checksums then
                   @checksums.keys
                 else
                   [Gem::Security::DIGEST_NAME].compact
                 end

    algorithms.each do |algorithm|
      digester =
        if defined?(OpenSSL::Digest) then
          OpenSSL::Digest.new algorithm
        else
          Digest.const_get(algorithm).new
        end

      digester << entry.read(16384) until entry.eof?

      entry.rewind

      @digests[algorithm][entry.full_name] = digester
    end

    @digests
  end

  ##
  # Extracts the files in this package into +destination_dir+
  #
  # If +pattern+ is specified, only entries matching that glob will be
  # extracted.

  def extract_files destination_dir, pattern = "*"
    verify unless @spec

    FileUtils.mkdir_p destination_dir

    @gem.with_read_io do |io|
      reader = Gem::Package::TarReader.new io

      reader.each do |entry|
        next unless entry.full_name == 'data.tar.gz'

        extract_tar_gz entry, destination_dir, pattern

        return # ignore further entries
      end
    end
  end

  ##
  # Extracts all the files in the gzipped tar archive +io+ into
  # +destination_dir+.
  #
  # If an entry in the archive contains a relative path above
  # +destination_dir+ or an absolute path is encountered an exception is
  # raised.
  #
  # If +pattern+ is specified, only entries matching that glob will be
  # extracted.

  def extract_tar_gz io, destination_dir, pattern = "*" # :nodoc:
    open_tar_gz io do |tar|
      tar.each do |entry|
        next unless File.fnmatch pattern, entry.full_name, File::FNM_DOTMATCH

        destination = install_location entry.full_name, destination_dir

        FileUtils.rm_rf destination

        mkdir_options = {}
        mkdir_options[:mode] = entry.header.mode if entry.directory?
        mkdir =
          if entry.directory? then
            destination
          else
            File.dirname destination
          end

        FileUtils.mkdir_p mkdir, mkdir_options

        open destination, 'wb' do |out|
          out.write entry.read
          FileUtils.chmod entry.header.mode, destination
        end if entry.file?

        verbose destination
      end
    end
  end

  ##
  # Gzips content written to +gz_io+ to +io+.
  #--
  # Also sets the gzip modification time to the package build time to ease
  # testing.

  def gzip_to io # :yields: gz_io
    gz_io = Zlib::GzipWriter.new io, Zlib::BEST_COMPRESSION
    gz_io.mtime = @build_time

    yield gz_io
  ensure
    gz_io.close
  end

  ##
  # Returns the full path for installing +filename+.
  #
  # If +filename+ is not inside +destination_dir+ an exception is raised.

  def install_location filename, destination_dir # :nodoc:
    raise Gem::Package::PathError.new(filename, destination_dir) if
      filename.start_with? '/'

    destination_dir = File.realpath destination_dir if
      File.respond_to? :realpath
    destination_dir = File.expand_path destination_dir

    destination = File.join destination_dir, filename
    destination = File.expand_path destination

    raise Gem::Package::PathError.new(destination, destination_dir) unless
      destination.start_with? destination_dir + '/'

    destination.untaint
    destination
  end

  ##
  # Loads a Gem::Specification from the TarEntry +entry+

  def load_spec entry # :nodoc:
    case entry.full_name
    when 'metadata' then
      @spec = Gem::Specification.from_yaml entry.read
    when 'metadata.gz' then
      args = [entry]
      args << { :external_encoding => Encoding::UTF_8 } if
        Object.const_defined?(:Encoding) &&
          Zlib::GzipReader.method(:wrap).arity != 1

      Zlib::GzipReader.wrap(*args) do |gzio|
        @spec = Gem::Specification.from_yaml gzio.read
      end
    end
  end

  ##
  # Opens +io+ as a gzipped tar archive

  def open_tar_gz io # :nodoc:
    Zlib::GzipReader.wrap io do |gzio|
      tar = Gem::Package::TarReader.new gzio

      yield tar
    end
  end

  ##
  # Reads and loads checksums.yaml.gz from the tar file +gem+

  def read_checksums gem
    Gem.load_yaml

    @checksums = gem.seek 'checksums.yaml.gz' do |entry|
      Zlib::GzipReader.wrap entry do |gz_io|
        Gem::SafeYAML.safe_load gz_io.read
      end
    end
  end

  ##
  # Prepares the gem for signing and checksum generation.  If a signing
  # certificate and key are not present only checksum generation is set up.

  def setup_signer
    passphrase = ENV['GEM_PRIVATE_KEY_PASSPHRASE']
    if @spec.signing_key then
      @signer = Gem::Security::Signer.new @spec.signing_key, @spec.cert_chain, passphrase
      @spec.signing_key = nil
      @spec.cert_chain = @signer.cert_chain.map { |cert| cert.to_s }
    else
      @signer = Gem::Security::Signer.new nil, nil, passphrase
      @spec.cert_chain = @signer.cert_chain.map { |cert| cert.to_pem } if
        @signer.cert_chain
    end
  end

  ##
  # The spec for this gem.
  #
  # If this is a package for a built gem the spec is loaded from the
  # gem and returned.  If this is a package for a gem being built the provided
  # spec is returned.

  def spec
    verify unless @spec

    @spec
  end

  ##
  # Verifies that this gem:
  #
  # * Contains a valid gem specification
  # * Contains a contents archive
  # * The contents archive is not corrupt
  #
  # After verification the gem specification from the gem is available from
  # #spec

  def verify
    @files     = []
    @spec      = nil

    @gem.with_read_io do |io|
      Gem::Package::TarReader.new io do |reader|
        read_checksums reader

        verify_files reader
      end
    end

    verify_checksums @digests, @checksums

    @security_policy.verify_signatures @spec, @digests, @signatures if
      @security_policy

    true
  rescue Gem::Security::Exception
    @spec = nil
    @files = []
    raise
  rescue Errno::ENOENT => e
    raise Gem::Package::FormatError.new e.message
  rescue Gem::Package::TarInvalidError => e
    raise Gem::Package::FormatError.new e.message, @gem
  end

  ##
  # Verifies the +checksums+ against the +digests+.  This check is not
  # cryptographically secure.  Missing checksums are ignored.

  def verify_checksums digests, checksums # :nodoc:
    return unless checksums

    checksums.sort.each do |algorithm, gem_digests|
      gem_digests.sort.each do |file_name, gem_hexdigest|
        computed_digest = digests[algorithm][file_name]

        unless computed_digest.hexdigest == gem_hexdigest then
          raise Gem::Package::FormatError.new \
            "#{algorithm} checksum mismatch for #{file_name}", @gem
        end
      end
    end
  end

  ##
  # Verifies +entry+ in a .gem file.

  def verify_entry entry
    file_name = entry.full_name
    @files << file_name

    case file_name
    when /\.sig$/ then
      @signatures[$`] = entry.read if @security_policy
      return
    else
      digest entry
    end

    case file_name
    when /^metadata(.gz)?$/ then
      load_spec entry
    when 'data.tar.gz' then
      verify_gz entry
    end
  rescue => e
    message = "package is corrupt, exception while verifying: " +
              "#{e.message} (#{e.class})"
    raise Gem::Package::FormatError.new message, @gem
  end

  ##
  # Verifies the files of the +gem+

  def verify_files gem
    gem.each do |entry|
      verify_entry entry
    end

    unless @spec then
      raise Gem::Package::FormatError.new 'package metadata is missing', @gem
    end

    unless @files.include? 'data.tar.gz' then
      raise Gem::Package::FormatError.new \
              'package content (data.tar.gz) is missing', @gem
    end

    if duplicates = @files.group_by {|f| f }.select {|k,v| v.size > 1 }.map(&:first) and duplicates.any?
      raise Gem::Security::Exception, "duplicate files in the package: (#{duplicates.map(&:inspect).join(', ')})"
    end
  end

  ##
  # Verifies that +entry+ is a valid gzipped file.

  def verify_gz entry # :nodoc:
    Zlib::GzipReader.wrap entry do |gzio|
      gzio.read 16384 until gzio.eof? # gzip checksum verification
    end
  rescue Zlib::GzipFile::Error => e
    raise Gem::Package::FormatError.new(e.message, entry.full_name)
  end

end

require 'rubygems/package/digest_io'
require 'rubygems/package/source'
require 'rubygems/package/file_source'
require 'rubygems/package/io_source'
require 'rubygems/package/old'
require 'rubygems/package/tar_header'
require 'rubygems/package/tar_reader'
require 'rubygems/package/tar_reader/entry'
require 'rubygems/package/tar_writer'

lib64/ruby/2.2.0/rubygems/version_option.rb000064400000003517150402106200014337 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rubygems'

##
# Mixin methods for --version and --platform Gem::Command options.

module Gem::VersionOption

  ##
  # Add the --platform option to the option parser.

  def add_platform_option(task = command, *wrap)
    OptionParser.accept Gem::Platform do |value|
      if value == Gem::Platform::RUBY then
        value
      else
        Gem::Platform.new value
      end
    end

    add_option('--platform PLATFORM', Gem::Platform,
               "Specify the platform of gem to #{task}", *wrap) do
                 |value, options|
      unless options[:added_platform] then
        Gem.platforms = [Gem::Platform::RUBY]
        options[:added_platform] = true
      end

      Gem.platforms << value unless Gem.platforms.include? value
    end
  end

  ##
  # Add the --prerelease option to the option parser.

  def add_prerelease_option(*wrap)
    add_option("--[no-]prerelease",
               "Allow prerelease versions of a gem", *wrap) do |value, options|
      options[:prerelease] = value
      options[:explicit_prerelease] = true
    end
  end

  ##
  # Add the --version option to the option parser.

  def add_version_option(task = command, *wrap)
    OptionParser.accept Gem::Requirement do |value|
      Gem::Requirement.new(*value.split(/\s*,\s*/))
    end

    add_option('-v', '--version VERSION', Gem::Requirement,
               "Specify version of gem to #{task}", *wrap) do
                 |value, options|
      options[:version] = value

      explicit_prerelease_set = !options[:explicit_prerelease].nil?
      options[:explicit_prerelease] = false unless explicit_prerelease_set

      options[:prerelease] = value.prerelease? unless
        options[:explicit_prerelease]
    end
  end

end

lib64/ruby/2.2.0/rubygems/deprecate.rb000064400000003316150402106200013213 0ustar00##
# Provides a single method +deprecate+ to be used to declare when
# something is going away.
#
#     class Legacy
#       def self.klass_method
#         # ...
#       end
#
#       def instance_method
#         # ...
#       end
#
#       extend Gem::Deprecate
#       deprecate :instance_method, "X.z", 2011, 4
#
#       class << self
#         extend Gem::Deprecate
#         deprecate :klass_method, :none, 2011, 4
#       end
#     end

module Gem::Deprecate

  def self.skip # :nodoc:
    @skip ||= false
  end

  def self.skip= v # :nodoc:
    @skip = v
  end

  ##
  # Temporarily turn off warnings. Intended for tests only.

  def skip_during
    Gem::Deprecate.skip, original = true, Gem::Deprecate.skip
    yield
  ensure
    Gem::Deprecate.skip = original
  end

  ##
  # Simple deprecation method that deprecates +name+ by wrapping it up
  # in a dummy method. It warns on each call to the dummy method
  # telling the user of +repl+ (unless +repl+ is :none) and the
  # year/month that it is planned to go away.

  def deprecate name, repl, year, month
    class_eval {
      old = "_deprecated_#{name}"
      alias_method old, name
      define_method name do |*args, &block|
        klass = self.kind_of? Module
        target = klass ? "#{self}." : "#{self.class}#"
        msg = [ "NOTE: #{target}#{name} is deprecated",
          repl == :none ? " with no replacement" : "; use #{repl} instead",
          ". It will be removed on or after %4d-%02d-01." % [year, month],
          "\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
        ]
        warn "#{msg.join}." unless Gem::Deprecate.skip
        send old, *args, &block
      end
    }
  end

  module_function :deprecate, :skip_during

end

lib64/ruby/2.2.0/rubygems/security/signer.rb000064400000010041150402106200014406 0ustar00##
# Basic OpenSSL-based package signing class.

class Gem::Security::Signer

  ##
  # The chain of certificates for signing including the signing certificate

  attr_accessor :cert_chain

  ##
  # The private key for the signing certificate

  attr_accessor :key

  ##
  # The digest algorithm used to create the signature

  attr_reader :digest_algorithm

  ##
  # The name of the digest algorithm, used to pull digests out of the hash by
  # name.

  attr_reader :digest_name # :nodoc:

  ##
  # Creates a new signer with an RSA +key+ or path to a key, and a certificate
  # +chain+ containing X509 certificates, encoding certificates or paths to
  # certificates.

  def initialize key, cert_chain, passphrase = nil
    @cert_chain = cert_chain
    @key        = key

    unless @key then
      default_key  = File.join Gem.default_key_path
      @key = default_key if File.exist? default_key
    end

    unless @cert_chain then
      default_cert = File.join Gem.default_cert_path
      @cert_chain = [default_cert] if File.exist? default_cert
    end

    @digest_algorithm = Gem::Security::DIGEST_ALGORITHM
    @digest_name      = Gem::Security::DIGEST_NAME

    @key = OpenSSL::PKey::RSA.new File.read(@key), passphrase if
      @key and not OpenSSL::PKey::RSA === @key

    if @cert_chain then
      @cert_chain = @cert_chain.compact.map do |cert|
        next cert if OpenSSL::X509::Certificate === cert

        cert = File.read cert if File.exist? cert

        OpenSSL::X509::Certificate.new cert
      end

      load_cert_chain
    end
  end

  ##
  # Extracts the full name of +cert+.  If the certificate has a subjectAltName
  # this value is preferred, otherwise the subject is used.

  def extract_name cert # :nodoc:
    subject_alt_name = cert.extensions.find { |e| 'subjectAltName' == e.oid }

    if subject_alt_name then
      /\Aemail:/ =~ subject_alt_name.value

      $' || subject_alt_name.value
    else
      cert.subject
    end
  end

  ##
  # Loads any missing issuers in the cert chain from the trusted certificates.
  #
  # If the issuer does not exist it is ignored as it will be checked later.

  def load_cert_chain # :nodoc:
    return if @cert_chain.empty?

    while @cert_chain.first.issuer.to_s != @cert_chain.first.subject.to_s do
      issuer = Gem::Security.trust_dir.issuer_of @cert_chain.first

      break unless issuer # cert chain is verified later

      @cert_chain.unshift issuer
    end
  end

  ##
  # Sign data with given digest algorithm

  def sign data
    return unless @key

    if @cert_chain.length == 1 and @cert_chain.last.not_after < Time.now then
      re_sign_key
    end

    full_name = extract_name @cert_chain.last

    Gem::Security::SigningPolicy.verify @cert_chain, @key, {}, {}, full_name

    @key.sign @digest_algorithm.new, data
  end

  ##
  # Attempts to re-sign the private key if the signing certificate is expired.
  #
  # The key will be re-signed if:
  # * The expired certificate is self-signed
  # * The expired certificate is saved at ~/.gem/gem-public_cert.pem
  # * There is no file matching the expiry date at
  #   ~/.gem/gem-public_cert.pem.expired.%Y%m%d%H%M%S
  #
  # If the signing certificate can be re-signed the expired certificate will
  # be saved as ~/.gem/gem-pubilc_cert.pem.expired.%Y%m%d%H%M%S where the
  # expiry time (not after) is used for the timestamp.

  def re_sign_key # :nodoc:
    old_cert = @cert_chain.last

    disk_cert_path = File.join Gem.default_cert_path
    disk_cert = File.read disk_cert_path rescue nil
    disk_key  =
      File.read File.join(Gem.default_key_path) rescue nil

    if disk_key == @key.to_pem and disk_cert == old_cert.to_pem then
      expiry = old_cert.not_after.strftime '%Y%m%d%H%M%S'
      old_cert_file = "gem-public_cert.pem.expired.#{expiry}"
      old_cert_path = File.join Gem.user_home, ".gem", old_cert_file

      unless File.exist? old_cert_path then
        Gem::Security.write old_cert, old_cert_path

        cert = Gem::Security.re_sign old_cert, @key

        Gem::Security.write cert, disk_cert_path

        @cert_chain = [cert]
      end
    end
  end

end

lib64/ruby/2.2.0/rubygems/security/trust_dir.rb000064400000004716150402106200015152 0ustar00##
# The TrustDir manages the trusted certificates for gem signature
# verification.

class Gem::Security::TrustDir

  ##
  # Default permissions for the trust directory and its contents

  DEFAULT_PERMISSIONS = {
    :trust_dir    => 0700,
    :trusted_cert => 0600,
  }

  ##
  # The directory where trusted certificates will be stored.

  attr_reader :dir

  ##
  # Creates a new TrustDir using +dir+ where the directory and file
  # permissions will be checked according to +permissions+

  def initialize dir, permissions = DEFAULT_PERMISSIONS
    @dir = dir
    @permissions = permissions

    @digester = Gem::Security::DIGEST_ALGORITHM
  end

  ##
  # Returns the path to the trusted +certificate+

  def cert_path certificate
    name_path certificate.subject
  end

  ##
  # Enumerates trusted certificates.

  def each_certificate
    return enum_for __method__ unless block_given?

    glob = File.join @dir, '*.pem'

    Dir[glob].each do |certificate_file|
      begin
        certificate = load_certificate certificate_file

        yield certificate, certificate_file
      rescue OpenSSL::X509::CertificateError
        next # HACK warn
      end
    end
  end

  ##
  # Returns the issuer certificate of the given +certificate+ if it exists in
  # the trust directory.

  def issuer_of certificate
    path = name_path certificate.issuer

    return unless File.exist? path

    load_certificate path
  end

  ##
  # Returns the path to the trusted certificate with the given ASN.1 +name+

  def name_path name
    digest = @digester.hexdigest name.to_s

    File.join @dir, "cert-#{digest}.pem"
  end

  ##
  # Loads the given +certificate_file+

  def load_certificate certificate_file
    pem = File.read certificate_file

    OpenSSL::X509::Certificate.new pem
  end

  ##
  # Add a certificate to trusted certificate list.

  def trust_cert certificate
    verify

    destination = cert_path certificate

    open destination, 'wb', @permissions[:trusted_cert] do |io|
      io.write certificate.to_pem
    end
  end

  ##
  # Make sure the trust directory exists.  If it does exist, make sure it's
  # actually a directory.  If not, then create it with the appropriate
  # permissions.

  def verify
    if File.exist? @dir then
      raise Gem::Security::Exception,
        "trust directory #{@dir} is not a directory" unless
          File.directory? @dir

      FileUtils.chmod 0700, @dir
    else
      FileUtils.mkdir_p @dir, :mode => @permissions[:trust_dir]
    end
  end

end

lib64/ruby/2.2.0/rubygems/security/policy.rb000064400000017645150402106200014437 0ustar00require 'rubygems/user_interaction'

##
# A Gem::Security::Policy object encapsulates the settings for verifying
# signed gem files.  This is the base class.  You can either declare an
# instance of this or use one of the preset security policies in
# Gem::Security::Policies.

class Gem::Security::Policy

  include Gem::UserInteraction

  attr_reader :name

  attr_accessor :only_signed
  attr_accessor :only_trusted
  attr_accessor :verify_chain
  attr_accessor :verify_data
  attr_accessor :verify_root
  attr_accessor :verify_signer

  ##
  # Create a new Gem::Security::Policy object with the given mode and
  # options.

  def initialize name, policy = {}, opt = {}
    require 'openssl'

    @name = name

    @opt = opt

    # Default to security
    @only_signed   = true
    @only_trusted  = true
    @verify_chain  = true
    @verify_data   = true
    @verify_root   = true
    @verify_signer = true

    policy.each_pair do |key, val|
      case key
      when :verify_data   then @verify_data   = val
      when :verify_signer then @verify_signer = val
      when :verify_chain  then @verify_chain  = val
      when :verify_root   then @verify_root   = val
      when :only_trusted  then @only_trusted  = val
      when :only_signed   then @only_signed   = val
      end
    end
  end

  ##
  # Verifies each certificate in +chain+ has signed the following certificate
  # and is valid for the given +time+.

  def check_chain chain, time
    raise Gem::Security::Exception, 'missing signing chain' unless chain
    raise Gem::Security::Exception, 'empty signing chain' if chain.empty?

    begin
      chain.each_cons 2 do |issuer, cert|
        check_cert cert, issuer, time
      end

      true
    rescue Gem::Security::Exception => e
      raise Gem::Security::Exception, "invalid signing chain: #{e.message}"
    end
  end

  ##
  # Verifies that +data+ matches the +signature+ created by +public_key+ and
  # the +digest+ algorithm.

  def check_data public_key, digest, signature, data
    raise Gem::Security::Exception, "invalid signature" unless
      public_key.verify digest.new, signature, data.digest

    true
  end

  ##
  # Ensures that +signer+ is valid for +time+ and was signed by the +issuer+.
  # If the +issuer+ is +nil+ no verification is performed.

  def check_cert signer, issuer, time
    raise Gem::Security::Exception, 'missing signing certificate' unless
      signer

    message = "certificate #{signer.subject}"

    if not_before = signer.not_before and not_before > time then
      raise Gem::Security::Exception,
            "#{message} not valid before #{not_before}"
    end

    if not_after = signer.not_after and not_after < time then
      raise Gem::Security::Exception, "#{message} not valid after #{not_after}"
    end

    if issuer and not signer.verify issuer.public_key then
      raise Gem::Security::Exception,
            "#{message} was not issued by #{issuer.subject}"
    end

    true
  end

  ##
  # Ensures the public key of +key+ matches the public key in +signer+

  def check_key signer, key
    unless signer and key then
      return true unless @only_signed

      raise Gem::Security::Exception, 'missing key or signature'
    end

    raise Gem::Security::Exception,
      "certificate #{signer.subject} does not match the signing key" unless
        signer.public_key.to_pem == key.public_key.to_pem

    true
  end

  ##
  # Ensures the root certificate in +chain+ is self-signed and valid for
  # +time+.

  def check_root chain, time
    raise Gem::Security::Exception, 'missing signing chain' unless chain

    root = chain.first

    raise Gem::Security::Exception, 'missing root certificate' unless root

    raise Gem::Security::Exception,
          "root certificate #{root.subject} is not self-signed " +
          "(issuer #{root.issuer})" if
      root.issuer.to_s != root.subject.to_s # HACK to_s is for ruby 1.8

    check_cert root, root, time
  end

  ##
  # Ensures the root of +chain+ has a trusted certificate in +trust_dir+ and
  # the digests of the two certificates match according to +digester+

  def check_trust chain, digester, trust_dir
    raise Gem::Security::Exception, 'missing signing chain' unless chain

    root = chain.first

    raise Gem::Security::Exception, 'missing root certificate' unless root

    path = Gem::Security.trust_dir.cert_path root

    unless File.exist? path then
      message = "root cert #{root.subject} is not trusted"

      message << " (root of signing cert #{chain.last.subject})" if
        chain.length > 1

      raise Gem::Security::Exception, message
    end

    save_cert = OpenSSL::X509::Certificate.new File.read path
    save_dgst = digester.digest save_cert.public_key.to_s

    pkey_str = root.public_key.to_s
    cert_dgst = digester.digest pkey_str

    raise Gem::Security::Exception,
          "trusted root certificate #{root.subject} checksum " +
          "does not match signing root certificate checksum" unless
      save_dgst == cert_dgst

    true
  end

  ##
  # Extracts the email or subject from +certificate+

  def subject certificate # :nodoc:
    certificate.extensions.each do |extension|
      next unless extension.oid == 'subjectAltName'

      return extension.value
    end

    certificate.subject.to_s
  end

  def inspect # :nodoc:
    ("[Policy: %s - data: %p signer: %p chain: %p root: %p " +
     "signed-only: %p trusted-only: %p]") % [
      @name, @verify_chain, @verify_data, @verify_root, @verify_signer,
      @only_signed, @only_trusted,
    ]
  end

  ##
  # For +full_name+, verifies the certificate +chain+ is valid, the +digests+
  # match the signatures +signatures+ created by the signer depending on the
  # +policy+ settings.
  #
  # If +key+ is given it is used to validate the signing certificate.

  def verify chain, key = nil, digests = {}, signatures = {},
             full_name = '(unknown)'
    if signatures.empty? then
      if @only_signed then
        raise Gem::Security::Exception,
          "unsigned gems are not allowed by the #{name} policy"
      elsif digests.empty? then
        # lack of signatures is irrelevant if there is nothing to check
        # against
      else
        alert_warning "#{full_name} is not signed"
        return
      end
    end

    opt       = @opt
    digester  = Gem::Security::DIGEST_ALGORITHM
    trust_dir = opt[:trust_dir]
    time      = Time.now

    _, signer_digests = digests.find do |algorithm, file_digests|
      file_digests.values.first.name == Gem::Security::DIGEST_NAME
    end

    if @verify_data then
      raise Gem::Security::Exception, 'no digests provided (probable bug)' if
        signer_digests.nil? or signer_digests.empty?
    else
      signer_digests = {}
    end

    signer = chain.last

    check_key signer, key if key

    check_cert signer, nil, time if @verify_signer

    check_chain chain, time if @verify_chain

    check_root chain, time if @verify_root

    if @only_trusted then
      check_trust chain, digester, trust_dir
    elsif signatures.empty? and digests.empty? then
      # trust is irrelevant if there's no signatures to verify
    else
      alert_warning "#{subject signer} is not trusted for #{full_name}"
    end

    signatures.each do |file, _|
      digest = signer_digests[file]

      raise Gem::Security::Exception, "missing digest for #{file}" unless
        digest
    end

    signer_digests.each do |file, digest|
      signature = signatures[file]

      raise Gem::Security::Exception, "missing signature for #{file}" unless
        signature

      check_data signer.public_key, digester, signature, digest if @verify_data
    end

    true
  end

  ##
  # Extracts the certificate chain from the +spec+ and calls #verify to ensure
  # the signatures and certificate chain is valid according to the policy..

  def verify_signatures spec, digests, signatures
    chain = spec.cert_chain.map do |cert_pem|
      OpenSSL::X509::Certificate.new cert_pem
    end

    verify chain, nil, digests, signatures, spec.full_name

    true
  end

  alias to_s name # :nodoc:

end

lib64/ruby/2.2.0/rubygems/security/policies.rb000064400000006465150402106200014745 0ustar00module Gem::Security

  ##
  # No security policy: all package signature checks are disabled.

  NoSecurity = Policy.new(
    'No Security',
    :verify_data      => false,
    :verify_signer    => false,
    :verify_chain     => false,
    :verify_root      => false,
    :only_trusted     => false,
    :only_signed      => false
  )

  ##
  # AlmostNo security policy: only verify that the signing certificate is the
  # one that actually signed the data.  Make no attempt to verify the signing
  # certificate chain.
  #
  # This policy is basically useless. better than nothing, but can still be
  # easily spoofed, and is not recommended.

  AlmostNoSecurity = Policy.new(
    'Almost No Security',
    :verify_data      => true,
    :verify_signer    => false,
    :verify_chain     => false,
    :verify_root      => false,
    :only_trusted     => false,
    :only_signed      => false
  )

  ##
  # Low security policy: only verify that the signing certificate is actually
  # the gem signer, and that the signing certificate is valid.
  #
  # This policy is better than nothing, but can still be easily spoofed, and
  # is not recommended.

  LowSecurity = Policy.new(
    'Low Security',
    :verify_data      => true,
    :verify_signer    => true,
    :verify_chain     => false,
    :verify_root      => false,
    :only_trusted     => false,
    :only_signed      => false
  )

  ##
  # Medium security policy: verify the signing certificate, verify the signing
  # certificate chain all the way to the root certificate, and only trust root
  # certificates that we have explicitly allowed trust for.
  #
  # This security policy is reasonable, but it allows unsigned packages, so a
  # malicious person could simply delete the package signature and pass the
  # gem off as unsigned.

  MediumSecurity = Policy.new(
    'Medium Security',
    :verify_data      => true,
    :verify_signer    => true,
    :verify_chain     => true,
    :verify_root      => true,
    :only_trusted     => true,
    :only_signed      => false
  )

  ##
  # High security policy: only allow signed gems to be installed, verify the
  # signing certificate, verify the signing certificate chain all the way to
  # the root certificate, and only trust root certificates that we have
  # explicitly allowed trust for.
  #
  # This security policy is significantly more difficult to bypass, and offers
  # a reasonable guarantee that the contents of the gem have not been altered.

  HighSecurity = Policy.new(
    'High Security',
    :verify_data      => true,
    :verify_signer    => true,
    :verify_chain     => true,
    :verify_root      => true,
    :only_trusted     => true,
    :only_signed      => true
  )

  ##
  # Policy used to verify a certificate and key when signing a gem

  SigningPolicy = Policy.new(
    'Signing Policy',
    :verify_data      => false,
    :verify_signer    => true,
    :verify_chain     => true,
    :verify_root      => true,
    :only_trusted     => false,
    :only_signed      => false
  )

  ##
  # Hash of configured security policies

  Policies = {
    'NoSecurity'       => NoSecurity,
    'AlmostNoSecurity' => AlmostNoSecurity,
    'LowSecurity'      => LowSecurity,
    'MediumSecurity'   => MediumSecurity,
    'HighSecurity'     => HighSecurity,
    # SigningPolicy is not intended for use by `gem -P` so do not list it
  }

end

lib64/ruby/2.2.0/rubygems/validator.rb000064400000010275150402106200013246 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rubygems/package'
require 'rubygems/installer'

##
# Validator performs various gem file and gem database validation

class Gem::Validator

  include Gem::UserInteraction

  def initialize # :nodoc:
    require 'find'
  end

  ##
  # Given a gem file's contents, validates against its own MD5 checksum
  # gem_data:: [String] Contents of the gem file

  def verify_gem(gem_data)
    # TODO remove me? The code here only validate an MD5SUM that was
    # in some old formatted gems, but hasn't been for a long time.
  end

  ##
  # Given the path to a gem file, validates against its own MD5 checksum
  #
  # gem_path:: [String] Path to gem file

  def verify_gem_file(gem_path)
    open gem_path, Gem.binary_mode do |file|
      gem_data = file.read
      verify_gem gem_data
    end
  rescue Errno::ENOENT, Errno::EINVAL
    raise Gem::VerificationError, "missing gem file #{gem_path}"
  end

  private

  def find_files_for_gem(gem_directory)
    installed_files = []

    Find.find gem_directory do |file_name|
      fn = file_name[gem_directory.size..file_name.size-1].sub(/^\//, "")
      installed_files << fn unless
        fn =~ /CVS/ || fn.empty? || File.directory?(file_name)
    end

    installed_files
  end

  public

  ##
  # Describes a problem with a file in a gem.

  ErrorData = Struct.new :path, :problem do
    def <=> other # :nodoc:
      return nil unless self.class === other

      [path, problem] <=> [other.path, other.problem]
    end
  end

  ##
  # Checks the gem directory for the following potential
  # inconsistencies/problems:
  #
  # * Checksum gem itself
  # * For each file in each gem, check consistency of installed versions
  # * Check for files that aren't part of the gem but are in the gems directory
  # * 1 cache - 1 spec - 1 directory.
  #
  # returns a hash of ErrorData objects, keyed on the problem gem's name.
  #--
  # TODO needs further cleanup

  def alien(gems=[])
    errors = Hash.new { |h,k| h[k] = {} }

    Gem::Specification.each do |spec|
      next unless gems.include? spec.name unless gems.empty?
      next if spec.default_gem?

      gem_name      = spec.file_name
      gem_path      = spec.cache_file
      spec_path     = spec.spec_file
      gem_directory = spec.full_gem_path

      unless File.directory? gem_directory then
        errors[gem_name][spec.full_name] =
          "Gem registered but doesn't exist at #{gem_directory}"
        next
      end

      unless File.exist? spec_path then
        errors[gem_name][spec_path] = "Spec file missing for installed gem"
      end

      begin
        verify_gem_file(gem_path)

        good, gone, unreadable = nil, nil, nil, nil

        open gem_path, Gem.binary_mode do |file|
          package = Gem::Package.new gem_path

          good, gone = package.contents.partition { |file_name|
            File.exist? File.join(gem_directory, file_name)
          }

          gone.sort.each do |path|
            errors[gem_name][path] = "Missing file"
          end

          good, unreadable = good.partition { |file_name|
            File.readable? File.join(gem_directory, file_name)
          }

          unreadable.sort.each do |path|
            errors[gem_name][path] = "Unreadable file"
          end

          good.each do |entry, data|
            begin
              next unless data # HACK `gem check -a mkrf`

              source = File.join gem_directory, entry['path']

              open source, Gem.binary_mode do |f|
                unless f.read == data then
                  errors[gem_name][entry['path']] = "Modified from original"
                end
              end
            end
          end
        end

        installed_files = find_files_for_gem(gem_directory)
        extras = installed_files - good - unreadable

        extras.each do |extra|
          errors[gem_name][extra] = "Extra file"
        end
      rescue Gem::VerificationError => e
        errors[gem_name][gem_path] = e.message
      end
    end

    errors.each do |name, subhash|
      errors[name] = subhash.map do |path, msg|
        ErrorData.new path, msg
      end.sort
    end

    errors
  end
end

lib64/ruby/2.2.0/rubygems/ext.rb000064400000000657150402106200012064 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

##
# Classes for building C extensions live here.

module Gem::Ext; end

require 'rubygems/ext/build_error'
require 'rubygems/ext/builder'
require 'rubygems/ext/configure_builder'
require 'rubygems/ext/ext_conf_builder'
require 'rubygems/ext/rake_builder'
require 'rubygems/ext/cmake_builder'

lib64/ruby/2.2.0/rubygems/dependency_list.rb000064400000012703150402106210014431 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'tsort'
require 'rubygems/deprecate'

##
# Gem::DependencyList is used for installing and uninstalling gems in the
# correct order to avoid conflicts.
#--
# TODO: It appears that all but topo-sort functionality is being duplicated
# (or is planned to be duplicated) elsewhere in rubygems.  Is the majority of
# this class necessary anymore?  Especially #ok?, #why_not_ok?

class Gem::DependencyList
  attr_reader :specs

  include Enumerable
  include TSort

  ##
  # Allows enabling/disabling use of development dependencies

  attr_accessor :development

  ##
  # Creates a DependencyList from the current specs.

  def self.from_specs
    list = new
    list.add(*Gem::Specification.to_a)
    list
  end

  ##
  # Creates a new DependencyList.  If +development+ is true, development
  # dependencies will be included.

  def initialize development = false
    @specs = []

    @development = development
  end

  ##
  # Adds +gemspecs+ to the dependency list.

  def add(*gemspecs)
    @specs.concat gemspecs
  end

  def clear
    @specs.clear
  end

  ##
  # Return a list of the gem specifications in the dependency list, sorted in
  # order so that no gemspec in the list depends on a gemspec earlier in the
  # list.
  #
  # This is useful when removing gems from a set of installed gems.  By
  # removing them in the returned order, you don't get into as many dependency
  # issues.
  #
  # If there are circular dependencies (yuck!), then gems will be returned in
  # order until only the circular dependents and anything they reference are
  # left.  Then arbitrary gemspecs will be returned until the circular
  # dependency is broken, after which gems will be returned in dependency
  # order again.

  def dependency_order
    sorted = strongly_connected_components.flatten

    result = []
    seen = {}

    sorted.each do |spec|
      if index = seen[spec.name] then
        if result[index].version < spec.version then
          result[index] = spec
        end
      else
        seen[spec.name] = result.length
        result << spec
      end
    end

    result.reverse
  end

  ##
  # Iterator over dependency_order

  def each(&block)
    dependency_order.each(&block)
  end

  def find_name(full_name)
    @specs.find { |spec| spec.full_name == full_name }
  end

  def inspect # :nodoc:
    "#<%s:0x%x %p>" % [self.class, object_id, map { |s| s.full_name }]
  end

  ##
  # Are all the dependencies in the list satisfied?

  def ok?
    why_not_ok?(:quick).empty?
  end

  def why_not_ok? quick = false
    unsatisfied = Hash.new { |h,k| h[k] = [] }
    each do |spec|
      spec.runtime_dependencies.each do |dep|
        inst = Gem::Specification.any? { |installed_spec|
          dep.name == installed_spec.name and
            dep.requirement.satisfied_by? installed_spec.version
        }

        unless inst or @specs.find { |s| s.satisfies_requirement? dep } then
          unsatisfied[spec.name] << dep
          return unsatisfied if quick
        end
      end
    end

    unsatisfied
  end

  ##
  # Is is ok to remove a gemspec from the dependency list?
  #
  # If removing the gemspec creates breaks a currently ok dependency, then it
  # is NOT ok to remove the gemspec.

  def ok_to_remove?(full_name, check_dev=true)
    gem_to_remove = find_name full_name

    siblings = @specs.find_all { |s|
      s.name == gem_to_remove.name &&
        s.full_name != gem_to_remove.full_name
    }

    deps = []

    @specs.each do |spec|
      check = check_dev ? spec.dependencies : spec.runtime_dependencies

      check.each do |dep|
        deps << dep if gem_to_remove.satisfies_requirement?(dep)
      end
    end

    deps.all? { |dep|
      siblings.any? { |s|
        s.satisfies_requirement? dep
      }
    }
  end

  ##
  # Remove everything in the DependencyList that matches but doesn't
  # satisfy items in +dependencies+ (a hash of gem names to arrays of
  # dependencies).

  def remove_specs_unsatisfied_by dependencies
    specs.reject! { |spec|
      dep = dependencies[spec.name]
      dep and not dep.requirement.satisfied_by? spec.version
    }
  end

  ##
  # Removes the gemspec matching +full_name+ from the dependency list

  def remove_by_name(full_name)
    @specs.delete_if { |spec| spec.full_name == full_name }
  end

  ##
  # Return a hash of predecessors.  <tt>result[spec]</tt> is an Array of
  # gemspecs that have a dependency satisfied by the named gemspec.

  def spec_predecessors
    result = Hash.new { |h,k| h[k] = [] }

    specs = @specs.sort.reverse

    specs.each do |spec|
      specs.each do |other|
        next if spec == other

        other.dependencies.each do |dep|
          if spec.satisfies_requirement? dep then
            result[spec] << other
          end
        end
      end
    end

    result
  end

  def tsort_each_node(&block)
    @specs.each(&block)
  end

  def tsort_each_child(node)
    specs = @specs.sort.reverse

    dependencies = node.runtime_dependencies
    dependencies.push(*node.development_dependencies) if @development

    dependencies.each do |dep|
      specs.each do |spec|
        if spec.satisfies_requirement? dep then
          yield spec
          break
        end
      end
    end
  end

  private

  ##
  # Count the number of gemspecs in the list +specs+ that are not in
  # +ignored+.

  def active_count(specs, ignored)
    specs.count { |spec| ignored[spec.full_name].nil? }
  end

end

lib64/ruby/2.2.0/rubygems/spec_fetcher.rb000064400000014502150402106210013711 0ustar00require 'rubygems/remote_fetcher'
require 'rubygems/user_interaction'
require 'rubygems/errors'
require 'rubygems/text'
require 'rubygems/name_tuple'

##
# SpecFetcher handles metadata updates from remote gem repositories.

class Gem::SpecFetcher

  include Gem::UserInteraction
  include Gem::Text

  ##
  # Cache of latest specs

  attr_reader :latest_specs # :nodoc:

  ##
  # Sources for this SpecFetcher

  attr_reader :sources # :nodoc:

  ##
  # Cache of all released specs

  attr_reader :specs # :nodoc:

  ##
  # Cache of prerelease specs

  attr_reader :prerelease_specs # :nodoc:

  @fetcher = nil

  ##
  # Default fetcher instance.  Use this instead of ::new to reduce object
  # allocation.

  def self.fetcher
    @fetcher ||= new
  end

  def self.fetcher=(fetcher) # :nodoc:
    @fetcher = fetcher
  end

  ##
  # Creates a new SpecFetcher.  Ordinarily you want to use the default fetcher
  # from Gem::SpecFetcher::fetcher which uses the Gem.sources.
  #
  # If you need to retrieve specifications from a different +source+, you can
  # send it as an argument.

  def initialize sources = nil
    @sources = sources || Gem.sources

    @update_cache =
      begin
        File.stat(Gem.user_home).uid == Process.uid
      rescue Errno::EACCES, Errno::ENOENT
        false
      end

    @specs = {}
    @latest_specs = {}
    @prerelease_specs = {}

    @caches = {
      :latest => @latest_specs,
      :prerelease => @prerelease_specs,
      :released => @specs,
    }

    @fetcher = Gem::RemoteFetcher.fetcher
  end

  ##
  #
  # Find and fetch gem name tuples that match +dependency+.
  #
  # If +matching_platform+ is false, gems for all platforms are returned.

  def search_for_dependency(dependency, matching_platform=true)
    found = {}

    rejected_specs = {}

    if dependency.prerelease?
      if dependency.specific?
        type = :complete
      else
        type = :abs_latest
      end
    elsif dependency.latest_version?
      type = :latest
    else
      type = :released
    end

    list, errors = available_specs(type)
    list.each do |source, specs|
      if dependency.name.is_a?(String) && specs.respond_to?(:bsearch)
        start_index = (0 ... specs.length).bsearch{ |i| specs[i].name >= dependency.name }
        end_index   = (0 ... specs.length).bsearch{ |i| specs[i].name > dependency.name }
        specs = specs[start_index ... end_index] if start_index && end_index
      end

      found[source] = specs.select do |tup|
        if dependency.match?(tup)
          if matching_platform and !Gem::Platform.match(tup.platform)
            pm = (
              rejected_specs[dependency] ||= \
                Gem::PlatformMismatch.new(tup.name, tup.version))
            pm.add_platform tup.platform
            false
          else
            true
          end
        end
      end
    end

    errors += rejected_specs.values

    tuples = []

    found.each do |source, specs|
      specs.each do |s|
        tuples << [s, source]
      end
    end

    tuples = tuples.sort_by { |x| x[0] }

    return [tuples, errors]
  end


  ##
  # Return all gem name tuples who's names match +obj+

  def detect(type=:complete)
    tuples = []

    list, _ = available_specs(type)
    list.each do |source, specs|
      specs.each do |tup|
        if yield(tup)
          tuples << [tup, source]
        end
      end
    end

    tuples
  end


  ##
  # Find and fetch specs that match +dependency+.
  #
  # If +matching_platform+ is false, gems for all platforms are returned.

  def spec_for_dependency(dependency, matching_platform=true)
    tuples, errors = search_for_dependency(dependency, matching_platform)

    specs = []
    tuples.each do |tup, source|
      begin
        spec = source.fetch_spec(tup)
      rescue Gem::RemoteFetcher::FetchError => e
        errors << Gem::SourceFetchProblem.new(source, e)
      else
        specs << [spec, source]
      end
    end

    return [specs, errors]
  end

  ##
  # Suggests gems based on the supplied +gem_name+. Returns an array of
  # alternative gem names.

  def suggest_gems_from_name gem_name
    gem_name        = gem_name.downcase.tr('_-', '')
    max             = gem_name.size / 2
    names           = available_specs(:latest).first.values.flatten(1)

    matches = names.map { |n|
      next unless n.match_platform?

      distance = levenshtein_distance gem_name, n.name.downcase.tr('_-', '')

      next if distance >= max

      return [n.name] if distance == 0

      [n.name, distance]
    }.compact

    matches = matches.uniq.sort_by { |name, dist| dist }

    matches.first(5).map { |name, dist| name }
  end

  ##
  # Returns a list of gems available for each source in Gem::sources.
  #
  # +type+ can be one of 3 values:
  # :released   => Return the list of all released specs
  # :complete   => Return the list of all specs
  # :latest     => Return the list of only the highest version of each gem
  # :prerelease => Return the list of all prerelease only specs
  #

  def available_specs(type)
    errors = []
    list = {}

    @sources.each_source do |source|
      begin
        names = case type
                when :latest
                  tuples_for source, :latest
                when :released
                  tuples_for source, :released
                when :complete
                  names =
                    tuples_for(source, :prerelease, true) +
                    tuples_for(source, :released)

                  names.sort
                when :abs_latest
                  names =
                    tuples_for(source, :prerelease, true) +
                    tuples_for(source, :latest)

                  names.sort
                when :prerelease
                  tuples_for(source, :prerelease)
                else
                  raise Gem::Exception, "Unknown type - :#{type}"
                end
      rescue Gem::RemoteFetcher::FetchError => e
        errors << Gem::SourceFetchProblem.new(source, e)
      else
        list[source] = names
      end
    end

    [list, errors]
  end

  ##
  # Retrieves NameTuples from +source+ of the given +type+ (:prerelease,
  # etc.).  If +gracefully_ignore+ is true, errors are ignored.

  def tuples_for(source, type, gracefully_ignore=false) # :nodoc:
    @caches[type][source.uri] ||=
      source.load_specs(type).sort_by { |tup| tup.name }
  rescue Gem::RemoteFetcher::FetchError
    raise unless gracefully_ignore
    []
  end

end

lib64/ruby/2.2.0/rubygems/resolver/lock_set.rb000064400000003316150402106210014724 0ustar00##
# A set of gems from a gem dependencies lockfile.

class Gem::Resolver::LockSet < Gem::Resolver::Set

  attr_reader :specs # :nodoc:

  ##
  # Creates a new LockSet from the given +sources+

  def initialize sources
    super()

    @sources = sources.map do |source|
      Gem::Source::Lock.new source
    end

    @specs   = []
  end

  ##
  # Creates a new IndexSpecification in this set using the given +name+,
  # +version+ and +platform+.
  #
  # The specification's set will be the current set, and the source will be
  # the current set's source.

  def add name, version, platform # :nodoc:
    version = Gem::Version.new version

    specs = @sources.map do |source|
      Gem::Resolver::LockSpecification.new self, name, version, source,
                                           platform
    end

    @specs.concat specs

    specs
  end

  ##
  # Returns an Array of IndexSpecification objects matching the
  # DependencyRequest +req+.

  def find_all req
    @specs.select do |spec|
      req.match? spec
    end
  end

  ##
  # Loads a Gem::Specification with the given +name+, +version+ and
  # +platform+.  +source+ is ignored.

  def load_spec name, version, platform, source # :nodoc:
    dep = Gem::Dependency.new name, version

    found = @specs.find do |spec|
      dep.matches_spec? spec and spec.platform == platform
    end

    tuple = Gem::NameTuple.new found.name, found.version, found.platform

    found.source.fetch_spec tuple
  end

  def pretty_print q # :nodoc:
    q.group 2, '[LockSet', ']' do
      q.breakable
      q.text 'source:'

      q.breakable
      q.pp @source

      q.breakable
      q.text 'specs:'

      q.breakable
      q.pp @specs.map { |spec| spec.full_name }
    end
  end

end

lib64/ruby/2.2.0/rubygems/resolver/dependency_request.rb000064400000004334150402106210017010 0ustar00##
# Used Internally. Wraps a Dependency object to also track which spec
# contained the Dependency.

class Gem::Resolver::DependencyRequest

  ##
  # The wrapped Gem::Dependency

  attr_reader :dependency

  ##
  # The request for this dependency.

  attr_reader :requester

  ##
  # Creates a new DependencyRequest for +dependency+ from +requester+.
  # +requester may be nil if the request came from a user.

  def initialize dependency, requester
    @dependency = dependency
    @requester  = requester
  end

  def == other # :nodoc:
    case other
    when Gem::Dependency
      @dependency == other
    when Gem::Resolver::DependencyRequest
      @dependency == other.dependency && @requester == other.requester
    else
      false
    end
  end

  ##
  # Is this dependency a development dependency?

  def development?
    @dependency.type == :development
  end

  ##
  # Does this dependency request match +spec+?
  #
  # NOTE:  #match? only matches prerelease versions when #dependency is a
  # prerelease dependency.

  def match? spec, allow_prerelease = false
    @dependency.match? spec, nil, allow_prerelease
  end

  ##
  # Does this dependency request match +spec+?
  #
  # NOTE:  #matches_spec? matches prerelease versions.  See also #match?

  def matches_spec?(spec)
    @dependency.matches_spec? spec
  end

  ##
  # The name of the gem this dependency request is requesting.

  def name
    @dependency.name
  end

  ##
  # Indicate that the request is for a gem explicitly requested by the user

  def explicit?
    @requester.nil?
  end

  ##
  # Indicate that the request is for a gem requested as a dependency of
  # another gem

  def implicit?
    !explicit?
  end

  ##
  # Return a String indicating who caused this request to be added (only
  # valid for implicit requests)

  def request_context
    @requester ? @requester.request : "(unknown)"
  end

  def pretty_print q # :nodoc:
    q.group 2, '[Dependency request ', ']' do
      q.breakable
      q.text @dependency.to_s

      q.breakable
      q.text ' requested by '
      q.pp @requester
    end
  end

  ##
  # The version requirement for this dependency request

  def requirement
    @dependency.requirement
  end

  def to_s # :nodoc:
    @dependency.to_s
  end

end

lib64/ruby/2.2.0/rubygems/resolver/local_specification.rb000064400000001411150402106210017105 0ustar00##
# A LocalSpecification comes from a .gem file on the local filesystem.

class Gem::Resolver::LocalSpecification < Gem::Resolver::SpecSpecification

  ##
  # Returns +true+ if this gem is installable for the current platform.

  def installable_platform?
    return true if @source.kind_of? Gem::Source::SpecificFile

    super
  end

  def local? # :nodoc:
    true
  end

  def pretty_print q # :nodoc:
    q.group 2, '[LocalSpecification', ']' do
      q.breakable
      q.text "name: #{name}"

      q.breakable
      q.text "version: #{version}"

      q.breakable
      q.text "platform: #{platform}"

      q.breakable
      q.text 'dependencies:'
      q.breakable
      q.pp dependencies

      q.breakable
      q.text "source: #{@source.path}"
    end
  end

end

lib64/ruby/2.2.0/rubygems/resolver/api_specification.rb000064400000003661150402106210016575 0ustar00##
# Represents a specification retrieved via the rubygems.org API.
#
# This is used to avoid loading the full Specification object when all we need
# is the name, version, and dependencies.

class Gem::Resolver::APISpecification < Gem::Resolver::Specification

  ##
  # Creates an APISpecification for the given +set+ from the rubygems.org
  # +api_data+.
  #
  # See http://guides.rubygems.org/rubygems-org-api/#misc_methods for the
  # format of the +api_data+.

  def initialize(set, api_data)
    super()

    @set = set
    @name = api_data[:name]
    @version = Gem::Version.new api_data[:number]
    @platform = Gem::Platform.new api_data[:platform]
    @dependencies = api_data[:dependencies].map do |name, ver|
      Gem::Dependency.new name, ver.split(/\s*,\s*/)
    end
  end

  def == other # :nodoc:
    self.class === other and
      @set          == other.set and
      @name         == other.name and
      @version      == other.version and
      @platform     == other.platform and
      @dependencies == other.dependencies
  end

  def fetch_development_dependencies # :nodoc:
    spec = source.fetch_spec Gem::NameTuple.new @name, @version, @platform

    @dependencies = spec.dependencies
  end

  def installable_platform? # :nodoc:
    Gem::Platform.match @platform
  end

  def pretty_print q # :nodoc:
    q.group 2, '[APISpecification', ']' do
      q.breakable
      q.text "name: #{name}"

      q.breakable
      q.text "version: #{version}"

      q.breakable
      q.text "platform: #{platform}"

      q.breakable
      q.text 'dependencies:'
      q.breakable
      q.pp @dependencies

      q.breakable
      q.text "set uri: #{@set.dep_uri}"
    end
  end

  ##
  # Fetches a Gem::Specification for this APISpecification.

  def spec # :nodoc:
    @spec ||=
      begin
        tuple = Gem::NameTuple.new @name, @version, @platform

        source.fetch_spec tuple
      end
  end

  def source # :nodoc:
    @set.source
  end

end

lib64/ruby/2.2.0/rubygems/resolver/stats.rb000064400000001630150402106210014254 0ustar00class Gem::Resolver::Stats
  def initialize
    @max_depth = 0
    @max_requirements = 0
    @requirements = 0
    @backtracking = 0
    @iterations = 0
  end

  def record_depth(stack)
    if stack.size > @max_depth
      @max_depth = stack.size
    end
  end

  def record_requirements(reqs)
    if reqs.size > @max_requirements
      @max_requirements = reqs.size
    end
  end

  def requirement!
    @requirements += 1
  end

  def backtracking!
    @backtracking += 1
  end

  def iteration!
    @iterations += 1
  end

  PATTERN = "%20s: %d\n"

  def display
    $stdout.puts "=== Resolver Statistics ==="
    $stdout.printf PATTERN, "Max Depth", @max_depth
    $stdout.printf PATTERN, "Total Requirements", @requirements
    $stdout.printf PATTERN, "Max Requirements", @max_requirements
    $stdout.printf PATTERN, "Backtracking #", @backtracking
    $stdout.printf PATTERN, "Iteration #", @iterations
  end
end
lib64/ruby/2.2.0/rubygems/resolver/set.rb000064400000002307150402106210013713 0ustar00##
# Resolver sets are used to look up specifications (and their
# dependencies) used in resolution.  This set is abstract.

class Gem::Resolver::Set

  ##
  # Set to true to disable network access for this set

  attr_accessor :remote

  ##
  # Errors encountered when resolving gems

  attr_accessor :errors

  ##
  # When true, allows matching of requests to prerelease gems.

  attr_accessor :prerelease

  def initialize # :nodoc:
    @prerelease = false
    @remote     = true
    @errors     = []
  end

  ##
  # The find_all method must be implemented.  It returns all Resolver
  # Specification objects matching the given DependencyRequest +req+.

  def find_all req
    raise NotImplementedError
  end

  ##
  # The #prefetch method may be overridden, but this is not necessary.  This
  # default implementation does nothing, which is suitable for sets where
  # looking up a specification is cheap (such as installed gems).
  #
  # When overridden, the #prefetch method should look up specifications
  # matching +reqs+.

  def prefetch reqs
  end

  ##
  # When true, this set is allowed to access the network when looking up
  # specifications or dependencies.

  def remote? # :nodoc:
    @remote
  end

end

lib64/ruby/2.2.0/rubygems/resolver/index_specification.rb000064400000002720150402106210017126 0ustar00##
# Represents a possible Specification object returned from IndexSet.  Used to
# delay needed to download full Specification objects when only the +name+
# and +version+ are needed.

class Gem::Resolver::IndexSpecification < Gem::Resolver::Specification

  ##
  # An IndexSpecification is created from the index format described in `gem
  # help generate_index`.
  #
  # The +set+ contains other specifications for this (URL) +source+.
  #
  # The +name+, +version+ and +platform+ are the name, version and platform of
  # the gem.

  def initialize set, name, version, source, platform
    super()

    @set = set
    @name = name
    @version = version
    @source = source
    @platform = platform.to_s

    @spec = nil
  end

  ##
  # The dependencies of the gem for this specification

  def dependencies
    spec.dependencies
  end

  def inspect # :nodoc:
    '#<%s %s source %s>' % [self.class, full_name, @source]
  end

  def pretty_print q # :nodoc:
    q.group 2, '[Index specification', ']' do
      q.breakable
      q.text full_name

      unless Gem::Platform::RUBY == @platform then
        q.breakable
        q.text @platform.to_s
      end

      q.breakable
      q.text 'source '
      q.pp @source
    end
  end

  ##
  # Fetches a Gem::Specification for this IndexSpecification from the #source.

  def spec # :nodoc:
    @spec ||=
      begin
        tuple = Gem::NameTuple.new @name, @version, @platform

        @source.fetch_spec tuple
      end
  end

end

lib64/ruby/2.2.0/rubygems/resolver/index_set.rb000064400000002622150402106210015102 0ustar00##
# The global rubygems pool represented via the traditional
# source index.

class Gem::Resolver::IndexSet < Gem::Resolver::Set

  def initialize source = nil # :nodoc:
    super()

    @f =
      if source then
        sources = Gem::SourceList.from [source]

        Gem::SpecFetcher.new sources
      else
        Gem::SpecFetcher.fetcher
      end

    @all = Hash.new { |h,k| h[k] = [] }

    list, errors = @f.available_specs :complete

    @errors.concat errors

    list.each do |uri, specs|
      specs.each do |n|
        @all[n.name] << [uri, n]
      end
    end

    @specs = {}
  end

  ##
  # Return an array of IndexSpecification objects matching
  # DependencyRequest +req+.

  def find_all req
    res = []

    return res unless @remote

    name = req.dependency.name

    @all[name].each do |uri, n|
      if req.match? n, @prerelease then
        res << Gem::Resolver::IndexSpecification.new(
          self, n.name, n.version, uri, n.platform)
      end
    end

    res
  end

  def pretty_print q # :nodoc:
    q.group 2, '[IndexSet', ']' do
      q.breakable
      q.text 'sources:'
      q.breakable
      q.pp @f.sources

      q.breakable
      q.text 'specs:'

      q.breakable

      names = @all.values.map do |tuples|
        tuples.map do |_, tuple|
          tuple.full_name
        end
      end.flatten

      q.seplist names do |name|
        q.text name
      end
    end
  end

end

lib64/ruby/2.2.0/rubygems/resolver/activation_request.rb000064400000006600150402106220017032 0ustar00##
# Specifies a Specification object that should be activated.  Also contains a
# dependency that was used to introduce this activation.

class Gem::Resolver::ActivationRequest

  ##
  # The parent request for this activation request.

  attr_reader :request

  ##
  # The specification to be activated.

  attr_reader :spec

  ##
  # Creates a new ActivationRequest that will activate +spec+.  The parent
  # +request+ is used to provide diagnostics in case of conflicts.
  #
  # +others_possible+ indicates that other specifications may also match this
  # activation request.

  def initialize spec, request, others_possible = true
    @spec = spec
    @request = request
    @others_possible = others_possible
  end

  def == other # :nodoc:
    case other
    when Gem::Specification
      @spec == other
    when Gem::Resolver::ActivationRequest
      @spec == other.spec && @request == other.request
    else
      false
    end
  end

  ##
  # Is this activation request for a development dependency?

  def development?
    @request.development?
  end

  ##
  # Downloads a gem at +path+ and returns the file path.

  def download path
    if @spec.respond_to? :source
      source = @spec.source
    else
      source = Gem.sources.first
    end

    Gem.ensure_gem_subdirectories path

    source.download full_spec, path
  end

  ##
  # The full name of the specification to be activated.

  def full_name
    @spec.full_name
  end

  ##
  # The Gem::Specification for this activation request.

  def full_spec
    Gem::Specification === @spec ? @spec : @spec.spec
  end

  def inspect # :nodoc:
    others =
      case @others_possible
      when true then # TODO remove at RubyGems 3
        ' (others possible)'
      when false then # TODO remove at RubyGems 3
        nil
      else
        unless @others_possible.empty? then
          others = @others_possible.map { |s| s.full_name }
          " (others possible: #{others.join ', '})"
        end
      end

    '#<%s for %p from %s%s>' % [
      self.class, @spec, @request, others
    ]
  end

  ##
  # True if the requested gem has already been installed.

  def installed?
    case @spec
    when Gem::Resolver::VendorSpecification then
      true
    else
      this_spec = full_spec

      Gem::Specification.any? do |s|
        s == this_spec
      end
    end
  end

  ##
  # The name of this activation request's specification

  def name
    @spec.name
  end

  ##
  # Indicate if this activation is one of a set of possible
  # requests for the same Dependency request.

  def others_possible?
    case @others_possible
    when true, false then
      @others_possible
    else
      not @others_possible.empty?
    end
  end

  ##
  # Return the ActivationRequest that contained the dependency
  # that we were activated for.

  def parent
    @request.requester
  end

  def pretty_print q # :nodoc:
    q.group 2, '[Activation request', ']' do
      q.breakable
      q.pp @spec

      q.breakable
      q.text ' for '
      q.pp @request

      case @others_possible
      when false then
      when true then
        q.breakable
        q.text 'others possible'
      else
        unless @others_possible.empty? then
          q.breakable
          q.text 'others '
          q.pp @others_possible.map { |s| s.full_name }
        end
      end
    end
  end

  ##
  # The version of this activation request's specification

  def version
    @spec.version
  end

end

lib64/ruby/2.2.0/rubygems/resolver/lock_specification.rb000064400000003367150402106220016760 0ustar00##
# The LockSpecification comes from a lockfile (Gem::RequestSet::Lockfile).
#
# A LockSpecification's dependency information is pre-filled from the
# lockfile.

class Gem::Resolver::LockSpecification < Gem::Resolver::Specification

  def initialize set, name, version, source, platform
    super()

    @name     = name
    @platform = platform
    @set      = set
    @source   = source
    @version  = version

    @dependencies = []
    @spec         = nil
  end

  ##
  # This is a null install as a locked specification is considered installed.
  # +options+ are ignored.

  def install options = {}
    destination = options[:install_dir] || Gem.dir

    if File.exist? File.join(destination, 'specifications', spec.spec_name) then
      yield nil
      return
    end

    super
  end

  ##
  # Adds +dependency+ from the lockfile to this specification

  def add_dependency dependency # :nodoc:
    @dependencies << dependency
  end

  def pretty_print q # :nodoc:
    q.group 2, '[LockSpecification', ']' do
      q.breakable
      q.text "name: #{@name}"

      q.breakable
      q.text "version: #{@version}"

      unless @platform == Gem::Platform::RUBY then
        q.breakable
        q.text "platform: #{@platform}"
      end

      unless @dependencies.empty? then
        q.breakable
        q.text 'dependencies:'
        q.breakable
        q.pp @dependencies
      end
    end
  end

  ##
  # A specification constructed from the lockfile is returned

  def spec
    @spec ||= Gem::Specification.find { |spec|
      spec.name == @name and spec.version == @version
    }

    @spec ||= Gem::Specification.new do |s|
      s.name     = @name
      s.version  = @version
      s.platform = @platform

      s.dependencies.concat @dependencies
    end
  end

end

lib64/ruby/2.2.0/rubygems/resolver/git_set.rb000064400000005550150402106220014562 0ustar00##
# A GitSet represents gems that are sourced from git repositories.
#
# This is used for gem dependency file support.
#
# Example:
#
#   set = Gem::Resolver::GitSet.new
#   set.add_git_gem 'rake', 'git://example/rake.git', tag: 'rake-10.1.0'

class Gem::Resolver::GitSet < Gem::Resolver::Set

  ##
  # The root directory for git gems in this set.  This is usually Gem.dir, the
  # installation directory for regular gems.

  attr_accessor :root_dir

  ##
  # Contains repositories needing submodules

  attr_reader :need_submodules # :nodoc:

  ##
  # A Hash containing git gem names for keys and a Hash of repository and
  # git commit reference as values.

  attr_reader :repositories # :nodoc:

  ##
  # A hash of gem names to Gem::Resolver::GitSpecifications

  attr_reader :specs # :nodoc:

  def initialize # :nodoc:
    super()

    @git             = ENV['git'] || 'git'
    @need_submodules = {}
    @repositories    = {}
    @root_dir        = Gem.dir
    @specs           = {}
  end

  def add_git_gem name, repository, reference, submodules # :nodoc:
    @repositories[name] = [repository, reference]
    @need_submodules[repository] = submodules
  end

  ##
  # Adds and returns a GitSpecification with the given +name+ and +version+
  # which came from a +repository+ at the given +reference+.  If +submodules+
  # is true they are checked out along with the repository.
  #
  # This fills in the prefetch information as enough information about the gem
  # is present in the arguments.

  def add_git_spec name, version, repository, reference, submodules # :nodoc:
    add_git_gem name, repository, reference, submodules

    source = Gem::Source::Git.new name, repository, reference
    source.root_dir = @root_dir

    spec = Gem::Specification.new do |s|
      s.name    = name
      s.version = version
    end

    git_spec = Gem::Resolver::GitSpecification.new self, spec, source

    @specs[spec.name] = git_spec

    git_spec
  end

  ##
  # Finds all git gems matching +req+

  def find_all req
    prefetch nil

    specs.values.select do |spec|
      req.match? spec
    end
  end

  ##
  # Prefetches specifications from the git repositories in this set.

  def prefetch reqs
    return unless @specs.empty?

    @repositories.each do |name, (repository, reference)|
      source = Gem::Source::Git.new name, repository, reference
      source.root_dir = @root_dir
      source.remote = @remote

      source.specs.each do |spec|
        git_spec = Gem::Resolver::GitSpecification.new self, spec, source

        @specs[spec.name] = git_spec
      end
    end
  end

  def pretty_print q # :nodoc:
    q.group 2, '[GitSet', ']' do
      next if @repositories.empty?
      q.breakable

      repos = @repositories.map do |name, (repository, reference)|
        "#{name}: #{repository}@#{reference}"
      end

      q.seplist repos do |repo|
        q.text repo
      end
    end
  end

end

lib64/ruby/2.2.0/rubygems/resolver/composed_set.rb000064400000002237150402106220015607 0ustar00##
# A ComposedSet allows multiple sets to be queried like a single set.
#
# To create a composed set with any number of sets use:
#
#   Gem::Resolver.compose_sets set1, set2
#
# This method will eliminate nesting of composed sets.

class Gem::Resolver::ComposedSet < Gem::Resolver::Set

  attr_reader :sets # :nodoc:

  ##
  # Creates a new ComposedSet containing +sets+.  Use
  # Gem::Resolver::compose_sets instead.

  def initialize *sets
    super()

    @sets = sets
  end

  ##
  # When +allow_prerelease+ is set to +true+ prereleases gems are allowed to
  # match dependencies.

  def prerelease= allow_prerelease
    super

    sets.each do |set|
      set.prerelease = allow_prerelease
    end
  end

  ##
  # Sets the remote network access for all composed sets.

  def remote= remote
    super

    @sets.each { |set| set.remote = remote }
  end

  def errors
    @errors + @sets.map { |set| set.errors }.flatten
  end

  ##
  # Finds all specs matching +req+ in all sets.

  def find_all req
    @sets.map do |s|
      s.find_all req
    end.flatten
  end

  ##
  # Prefetches +reqs+ in all sets.

  def prefetch reqs
    @sets.each { |s| s.prefetch(reqs) }
  end

end

lib64/ruby/2.2.0/rubygems/resolver/best_set.rb000064400000003117150402106220014731 0ustar00##
# The BestSet chooses the best available method to query a remote index.
#
# It combines IndexSet and APISet

class Gem::Resolver::BestSet < Gem::Resolver::ComposedSet

  ##
  # Creates a BestSet for the given +sources+ or Gem::sources if none are
  # specified.  +sources+ must be a Gem::SourceList.

  def initialize sources = Gem.sources
    super()

    @sources = sources
  end

  ##
  # Picks which sets to use for the configured sources.

  def pick_sets # :nodoc:
    @sources.each_source do |source|
      @sets << source.dependency_resolver_set
    end
  end

  def find_all req # :nodoc:
    pick_sets if @remote and @sets.empty?

    super
  rescue Gem::RemoteFetcher::FetchError => e
    replace_failed_api_set e

    retry
  end

  def prefetch reqs # :nodoc:
    pick_sets if @remote and @sets.empty?

    super
  end

  def pretty_print q # :nodoc:
    q.group 2, '[BestSet', ']' do
      q.breakable
      q.text 'sets:'

      q.breakable
      q.pp @sets
    end
  end

  ##
  # Replaces a failed APISet for the URI in +error+ with an IndexSet.
  #
  # If no matching APISet can be found the original +error+ is raised.
  #
  # The calling method must retry the exception to repeat the lookup.

  def replace_failed_api_set error # :nodoc:
    uri = error.uri
    uri = URI uri unless URI === uri
    uri.query = nil

    raise error unless api_set = @sets.find { |set|
      Gem::Resolver::APISet === set and set.dep_uri == uri
    }

    index_set = Gem::Resolver::IndexSet.new api_set.source

    @sets.map! do |set|
      next set unless set == api_set
      index_set
    end
  end

end

lib64/ruby/2.2.0/rubygems/resolver/git_specification.rb000064400000002406150402106220016604 0ustar00##
# A GitSpecification represents a gem that is sourced from a git repository
# and is being loaded through a gem dependencies file through the +git:+
# option.

class Gem::Resolver::GitSpecification < Gem::Resolver::SpecSpecification

  def == other # :nodoc:
    self.class === other and
      @set  == other.set and
      @spec == other.spec and
      @source == other.source
  end

  def add_dependency dependency # :nodoc:
    spec.dependencies << dependency
  end

  ##
  # Installing a git gem only involves building the extensions and generating
  # the executables.

  def install options = {}
    require 'rubygems/installer'

    installer = Gem::Installer.new '', options
    installer.spec = spec

    yield installer if block_given?

    installer.run_pre_install_hooks
    installer.build_extensions
    installer.run_post_build_hooks
    installer.generate_bin
    installer.run_post_install_hooks
  end

  def pretty_print q # :nodoc:
    q.group 2, '[GitSpecification', ']' do
      q.breakable
      q.text "name: #{name}"

      q.breakable
      q.text "version: #{version}"

      q.breakable
      q.text 'dependencies:'
      q.breakable
      q.pp dependencies

      q.breakable
      q.text "source:"
      q.breakable
      q.pp @source
    end
  end

end

lib64/ruby/2.2.0/rubygems/resolver/api_set.rb000064400000004667150402106220014560 0ustar00##
# The global rubygems pool, available via the rubygems.org API.
# Returns instances of APISpecification.

class Gem::Resolver::APISet < Gem::Resolver::Set

  ##
  # The URI for the dependency API this APISet uses.

  attr_reader :dep_uri # :nodoc:

  ##
  # The Gem::Source that gems are fetched from

  attr_reader :source

  ##
  # The corresponding place to fetch gems.

  attr_reader :uri

  ##
  # Creates a new APISet that will retrieve gems from +uri+ using the RubyGems
  # API URL +dep_uri+ which is described at
  # http://guides.rubygems.org/rubygems-org-api

  def initialize dep_uri = 'https://rubygems.org/api/v1/dependencies'
    super()

    dep_uri = URI dep_uri unless URI === dep_uri # for ruby 1.8

    @dep_uri = dep_uri
    @uri     = dep_uri + '../..'

    @data   = Hash.new { |h,k| h[k] = [] }
    @source = Gem::Source.new @uri

    @to_fetch = []
  end

  ##
  # Return an array of APISpecification objects matching
  # DependencyRequest +req+.

  def find_all req
    res = []

    return res unless @remote

    if @to_fetch.include?(req.name)
      prefetch_now
    end

    versions(req.name).each do |ver|
      if req.dependency.match? req.name, ver[:number]
        res << Gem::Resolver::APISpecification.new(self, ver)
      end
    end

    res
  end

  ##
  # A hint run by the resolver to allow the Set to fetch
  # data for DependencyRequests +reqs+.

  def prefetch reqs
    return unless @remote
    names = reqs.map { |r| r.dependency.name }
    needed = names - @data.keys - @to_fetch

    @to_fetch += needed
  end

  def prefetch_now # :nodoc:
    needed, @to_fetch = @to_fetch, []

    uri = @dep_uri + "?gems=#{needed.sort.join ','}"
    str = Gem::RemoteFetcher.fetcher.fetch_path uri

    loaded = []

    Marshal.load(str).each do |ver|
      name = ver[:name]

      @data[name] << ver
      loaded << name
    end

    (needed - loaded).each do |missing|
      @data[missing] = []
    end
  end

  def pretty_print q # :nodoc:
    q.group 2, '[APISet', ']' do
      q.breakable
      q.text "URI: #{@dep_uri}"

      q.breakable
      q.text 'gem names:'
      q.pp @data.keys
    end
  end

  ##
  # Return data for all versions of the gem +name+.

  def versions name # :nodoc:
    if @data.key?(name)
      return @data[name]
    end

    uri = @dep_uri + "?gems=#{name}"
    str = Gem::RemoteFetcher.fetcher.fetch_path uri

    Marshal.load(str).each do |ver|
      @data[ver[:name]] << ver
    end

    @data[name]
  end

end

lib64/ruby/2.2.0/rubygems/resolver/vendor_specification.rb000064400000001046150402106220017315 0ustar00##
# A VendorSpecification represents a gem that has been unpacked into a project
# and is being loaded through a gem dependencies file through the +path:+
# option.

class Gem::Resolver::VendorSpecification < Gem::Resolver::SpecSpecification

  def == other # :nodoc:
    self.class === other and
      @set  == other.set and
      @spec == other.spec and
      @source == other.source
  end

  ##
  # This is a null install as this gem was unpacked into a directory.
  # +options+ are ignored.

  def install options = {}
    yield nil
  end

end

lib64/ruby/2.2.0/rubygems/resolver/requirement_list.rb000064400000002471150402106220016516 0ustar00##
# The RequirementList is used to hold the requirements being considered
# while resolving a set of gems.
#
# The RequirementList acts like a queue where the oldest items are removed
# first.

class Gem::Resolver::RequirementList

  include Enumerable

  ##
  # Creates a new RequirementList.

  def initialize
    @exact = []
    @list = []
  end

  def initialize_copy other # :nodoc:
    @exact = @exact.dup
    @list = @list.dup
  end

  ##
  # Adds Resolver::DependencyRequest +req+ to this requirements list.

  def add(req)
    if req.requirement.exact?
      @exact.push req
    else
      @list.push req
    end
    req
  end

  ##
  # Enumerates requirements in the list

  def each # :nodoc:
    return enum_for __method__ unless block_given?

    @exact.each do |requirement|
      yield requirement
    end

    @list.each do |requirement|
      yield requirement
    end
  end

  ##
  # How many elements are in the list

  def size
    @exact.size + @list.size
  end

  ##
  # Is the list empty?

  def empty?
    @exact.empty? && @list.empty?
  end

  ##
  # Remove the oldest DependencyRequest from the list.

  def remove
    return @exact.shift unless @exact.empty?
    @list.shift
  end

  ##
  # Returns the oldest five entries from the list.

  def next5
    x = @exact[0,5]
    x + @list[0,5 - x.size]
  end
end
lib64/ruby/2.2.0/rubygems/resolver/vendor_set.rb000064400000003607150402106220015275 0ustar00##
# A VendorSet represents gems that have been unpacked into a specific
# directory that contains a gemspec.
#
# This is used for gem dependency file support.
#
# Example:
#
#   set = Gem::Resolver::VendorSet.new
#
#   set.add_vendor_gem 'rake', 'vendor/rake'
#
# The directory vendor/rake must contain an unpacked rake gem along with a
# rake.gemspec (watching the given name).

class Gem::Resolver::VendorSet < Gem::Resolver::Set

  ##
  # The specifications for this set.

  attr_reader :specs # :nodoc:

  def initialize # :nodoc:
    super()

    @directories = {}
    @specs       = {}
  end

  ##
  # Adds a specification to the set with the given +name+ which has been
  # unpacked into the given +directory+.

  def add_vendor_gem name, directory # :nodoc:
    gemspec = File.join directory, "#{name}.gemspec"

    spec = Gem::Specification.load gemspec

    raise Gem::GemNotFoundException,
          "unable to find #{gemspec} for gem #{name}" unless spec

    spec.full_gem_path = File.expand_path directory

    @specs[spec.name]  = spec
    @directories[spec] = directory

    spec
  end

  ##
  # Returns an Array of VendorSpecification objects matching the
  # DependencyRequest +req+.

  def find_all req
    @specs.values.select do |spec|
      req.match? spec
    end.map do |spec|
      source = Gem::Source::Vendor.new @directories[spec]
      Gem::Resolver::VendorSpecification.new self, spec, source
    end
  end

  ##
  # Loads a spec with the given +name+. +version+, +platform+ and +source+ are
  # ignored.

  def load_spec name, version, platform, source # :nodoc:
    @specs.fetch name
  end

  def pretty_print q # :nodoc:
    q.group 2, '[VendorSet', ']' do
      next if @directories.empty?
      q.breakable

      dirs = @directories.map do |spec, directory|
        "#{spec.full_name}: #{directory}"
      end

      q.seplist dirs do |dir|
        q.text dir
      end
    end
  end

end

lib64/ruby/2.2.0/rubygems/resolver/specification.rb000064400000004436150402106220015746 0ustar00##
# A Resolver::Specification contains a subset of the information
# contained in a Gem::Specification.  Only the information necessary for
# dependency resolution in the resolver is included.

class Gem::Resolver::Specification

  ##
  # The dependencies of the gem for this specification

  attr_reader :dependencies

  ##
  # The name of the gem for this specification

  attr_reader :name

  ##
  # The platform this gem works on.

  attr_reader :platform

  ##
  # The set this specification came from.

  attr_reader :set

  ##
  # The source for this specification

  attr_reader :source

  ##
  # The Gem::Specification for this Resolver::Specification.
  #
  # Implementers, note that #install updates @spec, so be sure to cache the
  # Gem::Specification in @spec when overriding.

  attr_reader :spec

  ##
  # The version of the gem for this specification.

  attr_reader :version

  ##
  # Sets default instance variables for the specification.

  def initialize
    @dependencies = nil
    @name         = nil
    @platform     = nil
    @set          = nil
    @source       = nil
    @version      = nil
  end

  ##
  # Fetches development dependencies if the source does not provide them by
  # default (see APISpecification).

  def fetch_development_dependencies # :nodoc:
  end

  ##
  # The name and version of the specification.
  #
  # Unlike Gem::Specification#full_name, the platform is not included.

  def full_name
    "#{@name}-#{@version}"
  end

  ##
  # Installs this specification using the Gem::Installer +options+.  The
  # install method yields a Gem::Installer instance, which indicates the
  # gem will be installed, or +nil+, which indicates the gem is already
  # installed.
  #
  # After installation #spec is updated to point to the just-installed
  # specification.

  def install options = {}
    require 'rubygems/installer'

    destination = options[:install_dir] || Gem.dir

    Gem.ensure_gem_subdirectories destination

    gem = source.download spec, destination

    installer = Gem::Installer.new gem, options

    yield installer if block_given?

    @spec = installer.install
  end

  ##
  # Returns true if this specification is installable on this platform.

  def installable_platform?
    Gem::Platform.match spec.platform
  end

  def local? # :nodoc:
    false
  end
end

lib64/ruby/2.2.0/rubygems/resolver/spec_specification.rb000064400000002035150402106220016751 0ustar00##
# The Resolver::SpecSpecification contains common functionality for
# Resolver specifications that are backed by a Gem::Specification.

class Gem::Resolver::SpecSpecification < Gem::Resolver::Specification

  ##
  # A SpecSpecification is created for a +set+ for a Gem::Specification in
  # +spec+.  The +source+ is either where the +spec+ came from, or should be
  # loaded from.

  def initialize set, spec, source = nil
    @set    = set
    @source = source
    @spec   = spec
  end

  ##
  # The dependencies of the gem for this specification

  def dependencies
    spec.dependencies
  end

  ##
  # The name and version of the specification.
  #
  # Unlike Gem::Specification#full_name, the platform is not included.

  def full_name
    "#{spec.name}-#{spec.version}"
  end

  ##
  # The name of the gem for this specification

  def name
    spec.name
  end

  ##
  # The platform this gem works on.

  def platform
    spec.platform
  end

  ##
  # The version of the gem for this specification.

  def version
    spec.version
  end

end

lib64/ruby/2.2.0/rubygems/resolver/installed_specification.rb000064400000002276150402106230020006 0ustar00##
# An InstalledSpecification represents a gem that is already installed
# locally.

class Gem::Resolver::InstalledSpecification < Gem::Resolver::SpecSpecification

  def == other # :nodoc:
    self.class === other and
      @set  == other.set and
      @spec == other.spec
  end

  ##
  # This is a null install as this specification is already installed.
  # +options+ are ignored.

  def install options = {}
    yield nil
  end

  ##
  # Returns +true+ if this gem is installable for the current platform.

  def installable_platform?
    # BACKCOMPAT If the file is coming out of a specified file, then we
    # ignore the platform. This code can be removed in RG 3.0.
    return true if @source.kind_of? Gem::Source::SpecificFile

    super
  end

  def pretty_print q # :nodoc:
    q.group 2, '[InstalledSpecification', ']' do
      q.breakable
      q.text "name: #{name}"

      q.breakable
      q.text "version: #{version}"

      q.breakable
      q.text "platform: #{platform}"

      q.breakable
      q.text 'dependencies:'
      q.breakable
      q.pp spec.dependencies
    end
  end

  ##
  # The source for this specification

  def source
    @source ||= Gem::Source::Installed.new
  end

end

lib64/ruby/2.2.0/rubygems/resolver/installer_set.rb000064400000011630150402106230015771 0ustar00##
# A set of gems for installation sourced from remote sources and local .gem
# files

class Gem::Resolver::InstallerSet < Gem::Resolver::Set

  ##
  # List of Gem::Specification objects that must always be installed.

  attr_reader :always_install # :nodoc:

  ##
  # Only install gems in the always_install list

  attr_accessor :ignore_dependencies # :nodoc:

  ##
  # Do not look in the installed set when finding specifications.  This is
  # used by the --install-dir option to `gem install`

  attr_accessor :ignore_installed # :nodoc:

  ##
  # The remote_set looks up remote gems for installation.

  attr_reader :remote_set # :nodoc:

  ##
  # Creates a new InstallerSet that will look for gems in +domain+.

  def initialize domain
    super()

    @domain = domain
    @remote = consider_remote?

    @f = Gem::SpecFetcher.fetcher

    @always_install      = []
    @ignore_dependencies = false
    @ignore_installed    = false
    @local               = {}
    @remote_set          = Gem::Resolver::BestSet.new
    @specs               = {}
  end

  ##
  # Looks up the latest specification for +dependency+ and adds it to the
  # always_install list.

  def add_always_install dependency
    request = Gem::Resolver::DependencyRequest.new dependency, nil

    found = find_all request

    found.delete_if { |s|
      s.version.prerelease? and not s.local?
    } unless dependency.prerelease?

    found = found.select do |s|
      Gem::Source::SpecificFile === s.source or
        Gem::Platform::RUBY == s.platform or
        Gem::Platform.local === s.platform
    end

    if found.empty? then
      exc = Gem::UnsatisfiableDependencyError.new request
      exc.errors = errors

      raise exc
    end

    newest = found.max_by do |s|
      [s.version, s.platform == Gem::Platform::RUBY ? -1 : 1]
    end

    @always_install << newest.spec
  end

  ##
  # Adds a local gem requested using +dep_name+ with the given +spec+ that can
  # be loaded and installed using the +source+.

  def add_local dep_name, spec, source
    @local[dep_name] = [spec, source]
  end

  ##
  # Should local gems should be considered?

  def consider_local? # :nodoc:
    @domain == :both or @domain == :local
  end

  ##
  # Should remote gems should be considered?

  def consider_remote? # :nodoc:
    @domain == :both or @domain == :remote
  end

  ##
  # Errors encountered while resolving gems

  def errors
    @errors + @remote_set.errors
  end

  ##
  # Returns an array of IndexSpecification objects matching DependencyRequest
  # +req+.

  def find_all req
    res = []

    dep  = req.dependency

    return res if @ignore_dependencies and
              @always_install.none? { |spec| dep.match? spec }

    name = dep.name

    dep.matching_specs.each do |gemspec|
      next if @always_install.any? { |spec| spec.name == gemspec.name }

      res << Gem::Resolver::InstalledSpecification.new(self, gemspec)
    end unless @ignore_installed

    if consider_local? then
      matching_local = @local.values.select do |spec, _|
        req.match? spec
      end.map do |spec, source|
        Gem::Resolver::LocalSpecification.new self, spec, source
      end

      res.concat matching_local

      local_source = Gem::Source::Local.new

      if local_spec = local_source.find_gem(name, dep.requirement) then
        res << Gem::Resolver::IndexSpecification.new(
          self, local_spec.name, local_spec.version,
          local_source, local_spec.platform)
      end
    end

    res.delete_if do |spec|
      spec.version.prerelease? and not dep.prerelease?
    end

    res.concat @remote_set.find_all req if consider_remote?

    res
  end

  def prefetch(reqs)
    @remote_set.prefetch(reqs) if consider_remote?
  end

  def prerelease= allow_prerelease
    super

    @remote_set.prerelease = allow_prerelease
  end

  def inspect # :nodoc:
    always_install = @always_install.map { |s| s.full_name }

    '#<%s domain: %s specs: %p always install: %p>' % [
      self.class, @domain, @specs.keys, always_install,
    ]
  end

  ##
  # Called from IndexSpecification to get a true Specification
  # object.

  def load_spec name, ver, platform, source # :nodoc:
    key = "#{name}-#{ver}-#{platform}"

    @specs.fetch key do
      tuple = Gem::NameTuple.new name, ver, platform

      @specs[key] = source.fetch_spec tuple
    end
  end

  ##
  # Has a local gem for +dep_name+ been added to this set?

  def local? dep_name # :nodoc:
    spec, = @local[dep_name]

    spec
  end

  def pretty_print q # :nodoc:
    q.group 2, '[InstallerSet', ']' do
      q.breakable
      q.text "domain: #{@domain}"

      q.breakable
      q.text 'specs: '
      q.pp @specs.keys

      q.breakable
      q.text 'always install: '
      q.pp @always_install
    end
  end

  def remote= remote # :nodoc:
    case @domain
    when :local then
      @domain = :both if remote
    when :remote then
      @domain = nil unless remote
    when :both then
      @domain = :local unless remote
    end
  end

end

lib64/ruby/2.2.0/rubygems/resolver/conflict.rb000064400000006525150402106230014731 0ustar00##
# Used internally to indicate that a dependency conflicted
# with a spec that would be activated.

class Gem::Resolver::Conflict

  ##
  # The specification that was activated prior to the conflict

  attr_reader :activated

  ##
  # The dependency that is in conflict with the activated gem.

  attr_reader :dependency

  attr_reader :failed_dep # :nodoc:

  ##
  # Creates a new resolver conflict when +dependency+ is in conflict with an
  # already +activated+ specification.

  def initialize(dependency, activated, failed_dep=dependency)
    @dependency = dependency
    @activated = activated
    @failed_dep = failed_dep
  end

  def == other # :nodoc:
    self.class === other and
      @dependency == other.dependency and
      @activated  == other.activated  and
      @failed_dep == other.failed_dep
  end

  ##
  # A string explanation of the conflict.

  def explain
    "<Conflict wanted: #{@failed_dep}, had: #{activated.spec.full_name}>"
  end

  ##
  # Return the 2 dependency objects that conflicted

  def conflicting_dependencies
    [@failed_dep.dependency, @activated.request.dependency]
  end

  ##
  # Explanation of the conflict used by exceptions to print useful messages

  def explanation
    activated   = @activated.spec.full_name
    dependency  = @failed_dep.dependency
    requirement = dependency.requirement
    alternates  = dependency.matching_specs.map { |spec| spec.full_name }

    unless alternates.empty? then
      matching = <<-MATCHING.chomp

  Gems matching %s:
    %s
      MATCHING

      matching = matching % [
        dependency,
        alternates.join(', '),
      ]
    end

    explanation = <<-EXPLANATION
  Activated %s
  which does not match conflicting dependency (%s)

  Conflicting dependency chains:
    %s

  versus:
    %s
%s
    EXPLANATION

    explanation % [
      activated, requirement,
      request_path(@activated).reverse.join(", depends on\n    "),
      request_path(@failed_dep).reverse.join(", depends on\n    "),
      matching,
    ]
  end

  ##
  # Returns true if the conflicting dependency's name matches +spec+.

  def for_spec?(spec)
    @dependency.name == spec.name
  end

  def pretty_print q # :nodoc:
    q.group 2, '[Dependency conflict: ', ']' do
      q.breakable

      q.text 'activated '
      q.pp @activated

      q.breakable
      q.text ' dependency '
      q.pp @dependency

      q.breakable
      if @dependency == @failed_dep then
        q.text ' failed'
      else
        q.text ' failed dependency '
        q.pp @failed_dep
      end
    end
  end

  ##
  # Path of activations from the +current+ list.

  def request_path current
    path = []

    while current do
      case current
      when Gem::Resolver::ActivationRequest then
        path <<
          "#{current.request.dependency}, #{current.spec.version} activated"

        current = current.parent
      when Gem::Resolver::DependencyRequest then
        path << "#{current.dependency}"

        current = current.requester
      else
        raise Gem::Exception, "[BUG] unknown request class #{current.class}"
      end
    end

    path = ['user request (gem command or Gemfile)'] if path.empty?

    path
  end

  ##
  # Return the Specification that listed the dependency

  def requester
    @failed_dep.requester
  end

end

##
# TODO: Remove in RubyGems 3

Gem::Resolver::DependencyConflict = Gem::Resolver::Conflict # :nodoc:

lib64/ruby/2.2.0/rubygems/resolver/current_set.rb000064400000000374150402106230015461 0ustar00##
# A set which represents the installed gems. Respects
# all the normal settings that control where to look
# for installed gems.

class Gem::Resolver::CurrentSet < Gem::Resolver::Set

  def find_all req
    req.dependency.matching_specs
  end

end

lib64/ruby/2.2.0/rubygems/ext/build_error.rb000064400000000163150402106230014367 0ustar00##
# Raised when there is an error while building extensions.

class Gem::Ext::BuildError < Gem::InstallError
end

lib64/ruby/2.2.0/rubygems/ext/cmake_builder.rb000064400000000656150402106230014654 0ustar00require 'rubygems/command'

class Gem::Ext::CmakeBuilder < Gem::Ext::Builder
  def self.build(extension, directory, dest_path, results, args=[], lib_dir=nil)
    unless File.exist?('Makefile') then
      cmd = "cmake . -DCMAKE_INSTALL_PREFIX=#{dest_path}"
      cmd << " #{Gem::Command.build_args.join ' '}" unless Gem::Command.build_args.empty?

      run cmd, results
    end

    make dest_path, results

    results
  end
end
lib64/ruby/2.2.0/rubygems/ext/rake_builder.rb000064400000001662150402106230014514 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

class Gem::Ext::RakeBuilder < Gem::Ext::Builder

  def self.build(extension, directory, dest_path, results, args=[], lib_dir=nil)
    if File.basename(extension) =~ /mkrf_conf/i then
      cmd = "#{Gem.ruby} #{File.basename extension}"
      cmd << " #{args.join " "}" unless args.empty?
      run cmd, results
    end

    # Deal with possible spaces in the path, e.g. C:/Program Files
    dest_path = '"' + dest_path.to_s + '"' if dest_path.to_s.include?(' ')

    rake = ENV['rake']

    rake ||= begin
               "#{Gem.ruby} -rubygems #{Gem.bin_path('rake', 'rake')}"
             rescue Gem::Exception
             end

    rake ||= Gem.default_exec_format % 'rake'

    cmd = "#{rake} RUBYARCHDIR=#{dest_path} RUBYLIBDIR=#{dest_path}" # ENV is frozen

    run cmd, results

    results
  end

end

lib64/ruby/2.2.0/rubygems/ext/builder.rb000064400000013056150402106230013512 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rubygems/user_interaction'
require 'thread'

class Gem::Ext::Builder

  include Gem::UserInteraction

  ##
  # The builder shells-out to run various commands after changing the
  # directory.  This means multiple installations cannot be allowed to build
  # extensions in parallel as they may change each other's directories leading
  # to broken extensions or failed installations.

  CHDIR_MUTEX = Mutex.new # :nodoc:

  attr_accessor :build_args # :nodoc:

  def self.class_name
    name =~ /Ext::(.*)Builder/
    $1.downcase
  end

  def self.make(dest_path, results)
    unless File.exist? 'Makefile' then
      raise Gem::InstallError, 'Makefile not found'
    end

    # try to find make program from Ruby configure arguments first
    RbConfig::CONFIG['configure_args'] =~ /with-make-prog\=(\w+)/
    make_program = ENV['MAKE'] || ENV['make'] || $1
    unless make_program then
      make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make'
    end

    destdir = '"DESTDIR=%s"' % ENV['DESTDIR'] if RUBY_VERSION > '2.0'

    ['clean', '', 'install'].each do |target|
      # Pass DESTDIR via command line to override what's in MAKEFLAGS
      cmd = [
        make_program,
        destdir,
        target
      ].join(' ').rstrip
      begin
        run(cmd, results, "make #{target}".rstrip)
      rescue Gem::InstallError
        raise unless target == 'clean' # ignore clean failure
      end
    end
  end

  def self.redirector
    '2>&1'
  end

  def self.run(command, results, command_name = nil)
    verbose = Gem.configuration.really_verbose

    begin
      # TODO use Process.spawn when ruby 1.8 support is dropped.
      rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], nil
      if verbose
        puts(command)
        system(command)
      else
        results << command
        results << `#{command} #{redirector}`
      end
    ensure
      ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
    end

    unless $?.success? then
      results << "Building has failed. See above output for more information on the failure." if verbose

      exit_reason =
        if $?.exited? then
          ", exit code #{$?.exitstatus}"
        elsif $?.signaled? then
          ", uncaught signal #{$?.termsig}"
        end

      raise Gem::InstallError, "#{command_name || class_name} failed#{exit_reason}"
    end
  end

  ##
  # Creates a new extension builder for +spec+.  If the +spec+ does not yet
  # have build arguments, saved, set +build_args+ which is an ARGV-style
  # array.

  def initialize spec, build_args = spec.build_args
    @spec       = spec
    @build_args = build_args
    @gem_dir    = spec.full_gem_path

    @ran_rake   = nil
  end

  ##
  # Chooses the extension builder class for +extension+

  def builder_for extension # :nodoc:
    case extension
    when /extconf/ then
      Gem::Ext::ExtConfBuilder
    when /configure/ then
      Gem::Ext::ConfigureBuilder
    when /rakefile/i, /mkrf_conf/i then
      @ran_rake = true
      Gem::Ext::RakeBuilder
    when /CMakeLists.txt/ then
      Gem::Ext::CmakeBuilder
    else
      extension_dir = File.join @gem_dir, File.dirname(extension)

      message = "No builder for extension '#{extension}'"
      build_error extension_dir, message
    end
  end

  ##
  # Logs the build +output+ in +build_dir+, then raises Gem::Ext::BuildError.

  def build_error build_dir, output, backtrace = nil # :nodoc:
    gem_make_out = write_gem_make_out output

    message = <<-EOF
ERROR: Failed to build gem native extension.

    #{output}

Gem files will remain installed in #{@gem_dir} for inspection.
Results logged to #{gem_make_out}
EOF

    raise Gem::Ext::BuildError, message, backtrace
  end

  def build_extension extension, dest_path # :nodoc:
    results = []

    extension ||= '' # I wish I knew why this line existed
    extension_dir =
      File.expand_path File.join @gem_dir, File.dirname(extension)
    lib_dir = File.join @spec.full_gem_path, @spec.raw_require_paths.first

    builder = builder_for extension

    begin
      FileUtils.mkdir_p dest_path

      CHDIR_MUTEX.synchronize do
        Dir.chdir extension_dir do
          results = builder.build(extension, @gem_dir, dest_path,
                                  results, @build_args, lib_dir)

          verbose { results.join("\n") }
        end
      end

      write_gem_make_out results.join "\n"
    rescue => e
      results << e.message
      build_error extension_dir, results.join("\n"), $@
    end
  end

  ##
  # Builds extensions.  Valid types of extensions are extconf.rb files,
  # configure scripts and rakefiles or mkrf_conf files.

  def build_extensions
    return if @spec.extensions.empty?

    if @build_args.empty?
      say "Building native extensions.  This could take a while..."
    else
      say "Building native extensions with: '#{@build_args.join ' '}'"
      say "This could take a while..."
    end

    dest_path = @spec.extension_dir

    FileUtils.rm_f @spec.gem_build_complete_path

    @ran_rake = false # only run rake once

    @spec.extensions.each do |extension|
      break if @ran_rake

      build_extension extension, dest_path
    end

    FileUtils.touch @spec.gem_build_complete_path
  end

  ##
  # Writes +output+ to gem_make.out in the extension install directory.

  def write_gem_make_out output # :nodoc:
    destination = File.join @spec.extension_dir, 'gem_make.out'

    FileUtils.mkdir_p @spec.extension_dir

    open destination, 'wb' do |io| io.puts output end

    destination
  end

end

lib64/ruby/2.2.0/rubygems/ext/configure_builder.rb000064400000000765150402106230015556 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

class Gem::Ext::ConfigureBuilder < Gem::Ext::Builder

  def self.build(extension, directory, dest_path, results, args=[], lib_dir=nil)
    unless File.exist?('Makefile') then
      cmd = "sh ./configure --prefix=#{dest_path}"
      cmd << " #{args.join ' '}" unless args.empty?

      run cmd, results
    end

    make dest_path, results

    results
  end

end

lib64/ruby/2.2.0/rubygems/ext/ext_conf_builder.rb000064400000004221150402106240015372 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'fileutils'
require 'tempfile'

class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
  FileEntry = FileUtils::Entry_ # :nodoc:

  def self.build(extension, directory, dest_path, results, args=[], lib_dir=nil)
    # relative path required as some versions of mktmpdir return an absolute
    # path which breaks make if it includes a space in the name
    tmp_dest = get_relative_path(Dir.mktmpdir(".gem.", "."))

    t = nil
    Tempfile.open %w"siteconf .rb", "." do |siteconf|
      t = siteconf
      siteconf.puts "require 'rbconfig'"
      siteconf.puts "dest_path = #{tmp_dest.dump}"
      %w[sitearchdir sitelibdir].each do |dir|
        siteconf.puts "RbConfig::MAKEFILE_CONFIG['#{dir}'] = dest_path"
        siteconf.puts "RbConfig::CONFIG['#{dir}'] = dest_path"
      end

      siteconf.flush

      destdir = ENV["DESTDIR"]

      begin
        cmd = [Gem.ruby, "-r", get_relative_path(siteconf.path), File.basename(extension), *args].join ' '

        begin
          run cmd, results
        ensure
          FileUtils.mv 'mkmf.log', dest_path if File.exist? 'mkmf.log'
          siteconf.unlink
        end

        ENV["DESTDIR"] = nil

        make dest_path, results

        if tmp_dest
          # TODO remove in RubyGems 3
          if Gem.install_extension_in_lib and lib_dir then
            FileUtils.mkdir_p lib_dir
            entries = Dir.entries(tmp_dest) - %w[. ..]
            entries = entries.map { |entry| File.join tmp_dest, entry }
            FileUtils.cp_r entries, lib_dir, :remove_destination => true
          end

          FileEntry.new(tmp_dest).traverse do |ent|
            destent = ent.class.new(dest_path, ent.rel)
            destent.exist? or FileUtils.mv(ent.path, destent.path)
          end
        end
      ensure
        ENV["DESTDIR"] = destdir
      end
    end
    t.unlink if t and t.path

    results
  ensure
    FileUtils.rm_rf tmp_dest if tmp_dest
  end

  private
  def self.get_relative_path(path)
    path[0..Dir.pwd.length-1] = '.' if path.start_with?(Dir.pwd)
    path
  end

end

lib64/ruby/2.2.0/rubygems/commands/unpack_command.rb000064400000011015150402106240016036 0ustar00require 'rubygems/command'
require 'rubygems/installer'
require 'rubygems/version_option'
require 'rubygems/remote_fetcher'

class Gem::Commands::UnpackCommand < Gem::Command

  include Gem::VersionOption

  def initialize
    require 'fileutils'

    super 'unpack', 'Unpack an installed gem to the current directory',
          :version => Gem::Requirement.default,
          :target  => Dir.pwd

    add_option('--target=DIR',
               'target directory for unpacking') do |value, options|
      options[:target] = value
    end

    add_option('--spec', 'unpack the gem specification') do |value, options|
      options[:spec] = true
    end

    add_version_option
  end

  def arguments # :nodoc:
    "GEMNAME       name of gem to unpack"
  end

  def defaults_str # :nodoc:
    "--version '#{Gem::Requirement.default}'"
  end

  def description
    <<-EOF
The unpack command allows you to examine the contents of a gem or modify
them to help diagnose a bug.

You can add the contents of the unpacked gem to the load path using the
RUBYLIB environment variable or -I:

  $ gem unpack my_gem
  Unpacked gem: '.../my_gem-1.0'
  [edit my_gem-1.0/lib/my_gem.rb]
  $ ruby -Imy_gem-1.0/lib -S other_program

You can repackage an unpacked gem using the build command.  See the build
command help for an example.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} GEMNAME"
  end

  #--
  # TODO: allow, e.g., 'gem unpack rake-0.3.1'.  Find a general solution for
  # this, so that it works for uninstall as well.  (And check other commands
  # at the same time.)

  def execute
    get_all_gem_names.each do |name|
      dependency = Gem::Dependency.new name, options[:version]
      path = get_path dependency

      unless path then
        alert_error "Gem '#{name}' not installed nor fetchable."
        next
      end

      if @options[:spec] then
        spec, metadata = get_metadata path

        if metadata.nil? then
          alert_error "--spec is unsupported on '#{name}' (old format gem)"
          next
        end

        spec_file = File.basename spec.spec_file

        open spec_file, 'w' do |io|
          io.write metadata
        end
      else
        basename = File.basename path, '.gem'
        target_dir = File.expand_path basename, options[:target]

        package = Gem::Package.new path
        package.extract_files target_dir

        say "Unpacked gem: '#{target_dir}'"
      end
    end
  end

  ##
  #
  # Find cached filename in Gem.path. Returns nil if the file cannot be found.
  #
  #--
  # TODO: see comments in get_path() about general service.

  def find_in_cache(filename)
    Gem.path.each do |path|
      this_path = File.join(path, "cache", filename)
      return this_path if File.exist? this_path
    end

    return nil
  end

  ##
  # Return the full path to the cached gem file matching the given
  # name and version requirement.  Returns 'nil' if no match.
  #
  # Example:
  #
  #   get_path 'rake', '> 0.4' # "/usr/lib/ruby/gems/1.8/cache/rake-0.4.2.gem"
  #   get_path 'rake', '< 0.1' # nil
  #   get_path 'rak'           # nil (exact name required)
  #--
  # TODO: This should be refactored so that it's a general service. I don't
  # think any of our existing classes are the right place though.  Just maybe
  # 'Cache'?
  #
  # TODO: It just uses Gem.dir for now.  What's an easy way to get the list of
  # source directories?

  def get_path dependency
    return dependency.name if dependency.name =~ /\.gem$/i

    specs = dependency.matching_specs

    selected = specs.max_by { |s| s.version }

    return Gem::RemoteFetcher.fetcher.download_to_cache(dependency) unless
      selected

    return unless dependency.name =~ /^#{selected.name}$/i

    # We expect to find (basename).gem in the 'cache' directory.  Furthermore,
    # the name match must be exact (ignoring case).

    path = find_in_cache File.basename selected.cache_file

    return Gem::RemoteFetcher.fetcher.download_to_cache(dependency) unless path

    path
  end

  ##
  # Extracts the Gem::Specification and raw metadata from the .gem file at
  # +path+.
  #--
  # TODO move to Gem::Package as #raw_spec or something

  def get_metadata path
    format = Gem::Package.new path
    spec = format.spec

    metadata = nil

    open path, Gem.binary_mode do |io|
      tar = Gem::Package::TarReader.new io
      tar.each_entry do |entry|
        case entry.full_name
        when 'metadata' then
          metadata = entry.read
        when 'metadata.gz' then
          metadata = Gem.gunzip entry.read
        end
      end
    end

    return spec, metadata
  end

end

lib64/ruby/2.2.0/rubygems/commands/stale_command.rb000064400000001644150402106240015674 0ustar00require 'rubygems/command'

class Gem::Commands::StaleCommand < Gem::Command
  def initialize
    super('stale', 'List gems along with access times')
  end

  def description # :nodoc:
    <<-EOF
The stale command lists the latest access time for all the files in your
installed gems.

You can use this command to discover gems and gem versions you are no
longer using.
    EOF
  end

  def usage # :nodoc:
    "#{program_name}"
  end

  def execute
    gem_to_atime = {}
    Gem::Specification.each do |spec|
      name = spec.full_name
      Dir["#{spec.full_gem_path}/**/*.*"].each do |file|
        next if File.directory?(file)
        stat = File.stat(file)
        gem_to_atime[name] ||= stat.atime
        gem_to_atime[name] = stat.atime if gem_to_atime[name] < stat.atime
      end
    end

    gem_to_atime.sort_by { |_, atime| atime }.each do |name, atime|
      say "#{name} at #{atime.strftime '%c'}"
    end
  end
end
lib64/ruby/2.2.0/rubygems/commands/uninstall_command.rb000064400000010771150402106240016576 0ustar00require 'rubygems/command'
require 'rubygems/version_option'
require 'rubygems/uninstaller'
require 'fileutils'

##
# Gem uninstaller command line tool
#
# See `gem help uninstall`

class Gem::Commands::UninstallCommand < Gem::Command

  include Gem::VersionOption

  def initialize
    super 'uninstall', 'Uninstall gems from the local repository',
          :version => Gem::Requirement.default, :user_install => true,
          :check_dev => false, :vendor => false

    add_option('-a', '--[no-]all',
      'Uninstall all matching versions'
      ) do |value, options|
      options[:all] = value
    end

    add_option('-I', '--[no-]ignore-dependencies',
               'Ignore dependency requirements while',
               'uninstalling') do |value, options|
      options[:ignore] = value
    end

    add_option('-D', '--[no-]-check-development',
               'Check development dependencies while uninstalling',
               '(default: false)') do |value, options|
      options[:check_dev] = value
    end

    add_option('-x', '--[no-]executables',
                 'Uninstall applicable executables without',
                 'confirmation') do |value, options|
      options[:executables] = value
    end

    add_option('-i', '--install-dir DIR',
               'Directory to uninstall gem from') do |value, options|
      options[:install_dir] = File.expand_path(value)
    end

    add_option('-n', '--bindir DIR',
               'Directory to remove binaries from') do |value, options|
      options[:bin_dir] = File.expand_path(value)
    end

    add_option('--[no-]user-install',
               'Uninstall from user\'s home directory',
               'in addition to GEM_HOME.') do |value, options|
      options[:user_install] = value
    end

    add_option('--[no-]format-executable',
               'Assume executable names match Ruby\'s prefix and suffix.') do |value, options|
      options[:format_executable] = value
    end

    add_option('--[no-]force',
               'Uninstall all versions of the named gems',
               'ignoring dependencies') do |value, options|
      options[:force] = value
    end

    add_option('--[no-]abort-on-dependent',
               'Prevent uninstalling gems that are',
               'depended on by other gems.') do |value, options|
      options[:abort_on_dependent] = value
    end

    add_version_option
    add_platform_option

    add_option('--vendor',
               'Uninstall gem from the vendor directory.',
               'Only for use by gem repackagers.') do |value, options|
      unless Gem.vendor_dir then
        raise OptionParser::InvalidOption.new 'your platform is not supported'
      end

      alert_warning 'Use your OS package manager to uninstall vendor gems'
      options[:vendor] = true
      options[:install_dir] = Gem.vendor_dir
    end
  end

  def arguments # :nodoc:
    "GEMNAME       name of gem to uninstall"
  end

  def defaults_str # :nodoc:
    "--version '#{Gem::Requirement.default}' --no-force " +
    "--user-install"
  end

  def description # :nodoc:
    <<-EOF
The uninstall command removes a previously installed gem.

RubyGems will ask for confirmation if you are attempting to uninstall a gem
that is a dependency of an existing gem.  You can use the
--ignore-dependencies option to skip this check.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} GEMNAME [GEMNAME ...]"
  end

  def execute
    if options[:all] and not options[:args].empty? then
      uninstall_specific
    elsif options[:all] then
      uninstall_all
    else
      uninstall_specific
    end
  end

  def uninstall_all
    specs = Gem::Specification.reject { |spec| spec.default_gem? }

    specs.each do |spec|
      options[:version] = spec.version

      begin
        Gem::Uninstaller.new(spec.name, options).uninstall
      rescue Gem::InstallError
      end
    end

    alert "Uninstalled all gems in #{options[:install_dir]}"
  end

  def uninstall_specific
    deplist = Gem::DependencyList.new

    get_all_gem_names.uniq.each do |name|
      Gem::Specification.find_all_by_name(name).each do |spec|
        deplist.add spec
      end
    end

    deps = deplist.strongly_connected_components.flatten.reverse

    deps.map(&:name).uniq.each do |gem_name|
      begin
        Gem::Uninstaller.new(gem_name, options).uninstall
      rescue Gem::GemNotInHomeException => e
        spec = e.spec
        alert("In order to remove #{spec.name}, please execute:\n" +
              "\tgem uninstall #{spec.name} --install-dir=#{spec.installation_path}")
      end
    end
  end

end

lib64/ruby/2.2.0/rubygems/commands/rdoc_command.rb000064400000004725150402106240015516 0ustar00require 'rubygems/command'
require 'rubygems/version_option'
require 'rubygems/rdoc'
require 'fileutils'

class Gem::Commands::RdocCommand < Gem::Command
  include Gem::VersionOption

  def initialize
    super 'rdoc', 'Generates RDoc for pre-installed gems',
          :version => Gem::Requirement.default,
          :include_rdoc => false, :include_ri => true, :overwrite => false

    add_option('--all',
               'Generate RDoc/RI documentation for all',
               'installed gems') do |value, options|
      options[:all] = value
    end

    add_option('--[no-]rdoc',
               'Generate RDoc HTML') do |value, options|
      options[:include_rdoc] = value
    end

    add_option('--[no-]ri',
               'Generate RI data') do |value, options|
      options[:include_ri] = value
    end

    add_option('--[no-]overwrite',
               'Overwrite installed documents') do |value, options|
      options[:overwrite] = value
    end

    add_version_option
  end

  def arguments # :nodoc:
    "GEMNAME       gem to generate documentation for (unless --all)"
  end

  def defaults_str # :nodoc:
    "--version '#{Gem::Requirement.default}' --ri --no-overwrite"
  end

  def description # :nodoc:
    <<-DESC
The rdoc command builds documentation for installed gems.  By default
only documentation is built using rdoc, but additional types of
documentation may be built through rubygems plugins and the
Gem.post_installs hook.

Use --overwrite to force rebuilding of documentation.
    DESC
  end

  def usage # :nodoc:
    "#{program_name} [args]"
  end

  def execute
    specs = if options[:all] then
              Gem::Specification.to_a
            else
              get_all_gem_names.map do |name|
                Gem::Specification.find_by_name name, options[:version]
              end.flatten.uniq
            end

    if specs.empty? then
      alert_error 'No matching gems found'
      terminate_interaction 1
    end

    specs.each do |spec|
      doc = Gem::RDoc.new spec, options[:include_rdoc], options[:include_ri]

      doc.force = options[:overwrite]

      if options[:overwrite] then
        FileUtils.rm_rf File.join(spec.doc_dir, 'ri')
        FileUtils.rm_rf File.join(spec.doc_dir, 'rdoc')
      end

      begin
        doc.generate
      rescue Errno::ENOENT => e
        e.message =~ / - /
        alert_error "Unable to document #{spec.full_name}, #{$'} is missing, skipping"
        terminate_interaction 1 if specs.length == 1
      end
    end
  end

end

lib64/ruby/2.2.0/rubygems/commands/build_command.rb000064400000002541150402106240015660 0ustar00require 'rubygems/command'
require 'rubygems/package'

class Gem::Commands::BuildCommand < Gem::Command

  def initialize
    super 'build', 'Build a gem from a gemspec'

    add_option '--force', 'skip validation of the spec' do |value, options|
      options[:force] = true
    end
  end

  def arguments # :nodoc:
    "GEMSPEC_FILE  gemspec file name to build a gem for"
  end

  def description # :nodoc:
    <<-EOF
The build command allows you to create a gem from a ruby gemspec.

The best way to build a gem is to use a Rakefile and the Gem::PackageTask
which ships with RubyGems.

The gemspec can either be created by hand or extracted from an existing gem
with gem spec:

  $ gem unpack my_gem-1.0.gem
  Unpacked gem: '.../my_gem-1.0'
  $ gem spec my_gem-1.0.gem --ruby > my_gem-1.0/my_gem-1.0.gemspec
  $ cd my_gem-1.0
  [edit gem contents]
  $ gem build my_gem-1.0.gemspec
    EOF
  end

  def usage # :nodoc:
    "#{program_name} GEMSPEC_FILE"
  end

  def execute
    gemspec = get_one_gem_name

    if File.exist? gemspec then
      spec = Gem::Specification.load gemspec

      if spec then
        Gem::Package.build spec, options[:force]
      else
        alert_error "Error loading gemspec. Aborting."
        terminate_interaction 1
      end
    else
      alert_error "Gemspec file not found: #{gemspec}"
      terminate_interaction 1
    end
  end

end

lib64/ruby/2.2.0/rubygems/commands/fetch_command.rb000064400000003401150402106240015646 0ustar00require 'rubygems/command'
require 'rubygems/local_remote_options'
require 'rubygems/version_option'

class Gem::Commands::FetchCommand < Gem::Command

  include Gem::LocalRemoteOptions
  include Gem::VersionOption

  def initialize
    super 'fetch', 'Download a gem and place it in the current directory'

    add_bulk_threshold_option
    add_proxy_option
    add_source_option
    add_clear_sources_option

    add_version_option
    add_platform_option
    add_prerelease_option
  end

  def arguments # :nodoc:
    'GEMNAME       name of gem to download'
  end

  def defaults_str # :nodoc:
    "--version '#{Gem::Requirement.default}'"
  end

  def description # :nodoc:
    <<-EOF
The fetch command fetches gem files that can be stored for later use or
unpacked to examine their contents.

See the build command help for an example of unpacking a gem, modifying it,
then repackaging it.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} GEMNAME [GEMNAME ...]"
  end

  def execute
    version = options[:version] || Gem::Requirement.default

    platform  = Gem.platforms.last
    gem_names = get_all_gem_names

    gem_names.each do |gem_name|
      dep = Gem::Dependency.new gem_name, version
      dep.prerelease = options[:prerelease]

      specs_and_sources, errors =
        Gem::SpecFetcher.fetcher.spec_for_dependency dep

      if platform then
        filtered = specs_and_sources.select { |s,| s.platform == platform }
        specs_and_sources = filtered unless filtered.empty?
      end

      spec, source = specs_and_sources.max_by { |s,| s.version }

      if spec.nil? then
        show_lookup_failure gem_name, version, errors, options[:domain]
        next
      end

      source.download spec

      say "Downloaded #{spec.full_name}"
    end
  end

end

lib64/ruby/2.2.0/rubygems/commands/install_command.rb000064400000023016150402106240016227 0ustar00require 'rubygems/command'
require 'rubygems/install_update_options'
require 'rubygems/dependency_installer'
require 'rubygems/local_remote_options'
require 'rubygems/validator'
require 'rubygems/version_option'

##
# Gem installer command line tool
#
# See `gem help install`

class Gem::Commands::InstallCommand < Gem::Command

  attr_reader :installed_specs # :nodoc:

  include Gem::VersionOption
  include Gem::LocalRemoteOptions
  include Gem::InstallUpdateOptions

  def initialize
    defaults = Gem::DependencyInstaller::DEFAULT_OPTIONS.merge({
      :format_executable => false,
      :lock              => true,
      :suggest_alternate => true,
      :version           => Gem::Requirement.default,
      :without_groups    => [],
    })

    super 'install', 'Install a gem into the local repository', defaults

    add_install_update_options
    add_local_remote_options
    add_platform_option
    add_version_option
    add_prerelease_option "to be installed. (Only for listed gems)"

    add_option(:"Install/Update", '-g', '--file [FILE]',
               'Read from a gem dependencies API file and',
               'install the listed gems') do |v,o|
      v = Gem::GEM_DEP_FILES.find do |file|
        File.exist? file
      end unless v

      unless v then
        message = v ? v : "(tried #{Gem::GEM_DEP_FILES.join ', '})"

        raise OptionParser::InvalidArgument,
                "cannot find gem dependencies file #{message}"
      end

      o[:gemdeps] = v
    end

    add_option(:"Install/Update", '--without GROUPS', Array,
               'Omit the named groups (comma separated)',
               'when installing from a gem dependencies',
               'file') do |v,o|
      o[:without_groups].concat v.map { |without| without.intern }
    end

    add_option(:"Install/Update", '--default',
               'Add the gem\'s full specification to',
               'specifications/default and extract only its bin') do |v,o|
      o[:install_as_default] = v
    end

    add_option(:"Install/Update", '--explain',
               'Rather than install the gems, indicate which would',
               'be installed') do |v,o|
      o[:explain] = v
    end

    add_option(:"Install/Update", '--[no-]lock',
               'Create a lock file (when used with -g/--file)') do |v,o|
      o[:lock] = v
    end

    add_option(:"Install/Update", '--[no-]suggestions',
               'Suggest alternates when gems are not found') do |v,o|
      o[:suggest_alternate] = v
    end

    @installed_specs = []
  end

  def arguments # :nodoc:
    "GEMNAME       name of gem to install"
  end

  def defaults_str # :nodoc:
    "--both --version '#{Gem::Requirement.default}' --document --no-force\n" +
    "--install-dir #{Gem.dir} --lock"
  end

  def description # :nodoc:
    <<-EOF
The install command installs local or remote gem into a gem repository.

For gems with executables ruby installs a wrapper file into the executable
directory by default.  This can be overridden with the --no-wrappers option.
The wrapper allows you to choose among alternate gem versions using _version_.

For example `rake _0.7.3_ --version` will run rake version 0.7.3 if a newer
version is also installed.

Gem Dependency Files
====================

RubyGems can install a consistent set of gems across multiple environments
using `gem install -g` when a gem dependencies file (gem.deps.rb, Gemfile or
Isolate) is present.  If no explicit file is given RubyGems attempts to find
one in the current directory.

When the RUBYGEMS_GEMDEPS environment variable is set to a gem dependencies
file the gems from that file will be activated at startup time.  Set it to a
specific filename or to "-" to have RubyGems automatically discover the gem
dependencies file by walking up from the current directory.

NOTE: Enabling automatic discovery on multiuser systems can lead to
execution of arbitrary code when used from directories outside your control.

Extension Install Failures
==========================

If an extension fails to compile during gem installation the gem
specification is not written out, but the gem remains unpacked in the
repository.  You may need to specify the path to the library's headers and
libraries to continue.  You can do this by adding a -- between RubyGems'
options and the extension's build options:

  $ gem install some_extension_gem
  [build fails]
  Gem files will remain installed in \\
  /path/to/gems/some_extension_gem-1.0 for inspection.
  Results logged to /path/to/gems/some_extension_gem-1.0/gem_make.out
  $ gem install some_extension_gem -- --with-extension-lib=/path/to/lib
  [build succeeds]
  $ gem list some_extension_gem

  *** LOCAL GEMS ***

  some_extension_gem (1.0)
  $

If you correct the compilation errors by editing the gem files you will need
to write the specification by hand.  For example:

  $ gem install some_extension_gem
  [build fails]
  Gem files will remain installed in \\
  /path/to/gems/some_extension_gem-1.0 for inspection.
  Results logged to /path/to/gems/some_extension_gem-1.0/gem_make.out
  $ [cd /path/to/gems/some_extension_gem-1.0]
  $ [edit files or what-have-you and run make]
  $ gem spec ../../cache/some_extension_gem-1.0.gem --ruby > \\
             ../../specifications/some_extension_gem-1.0.gemspec
  $ gem list some_extension_gem

  *** LOCAL GEMS ***

  some_extension_gem (1.0)
  $

    EOF
  end

  def usage # :nodoc:
    "#{program_name} GEMNAME [GEMNAME ...] [options] -- --build-flags"
  end

  def check_install_dir # :nodoc:
    if options[:install_dir] and options[:user_install] then
      alert_error "Use --install-dir or --user-install but not both"
      terminate_interaction 1
    end
  end

  def check_version # :nodoc:
    if options[:version] != Gem::Requirement.default and
         get_all_gem_names.size > 1 then
      alert_error "Can't use --version w/ multiple gems. Use name:ver instead."
      terminate_interaction 1
    end
  end

  def execute
    if options.include? :gemdeps then
      install_from_gemdeps
      return # not reached
    end

    @installed_specs = []

    ENV.delete 'GEM_PATH' if options[:install_dir].nil? and RUBY_VERSION > '1.9'

    check_install_dir
    check_version

    load_hooks

    exit_code = install_gems

    show_installed

    terminate_interaction exit_code
  end

  def install_from_gemdeps # :nodoc:
    require 'rubygems/request_set'
    rs = Gem::RequestSet.new

    specs = rs.install_from_gemdeps options do |req, inst|
      s = req.full_spec

      if inst
        say "Installing #{s.name} (#{s.version})"
      else
        say "Using #{s.name} (#{s.version})"
      end
    end

    @installed_specs = specs

    terminate_interaction
  end

  def install_gem name, version # :nodoc:
    return if options[:conservative] and
      not Gem::Dependency.new(name, version).matching_specs.empty?

    req = Gem::Requirement.create(version)

    if options[:ignore_dependencies] then
      install_gem_without_dependencies name, req
    else
      inst = Gem::DependencyInstaller.new options
      request_set = inst.resolve_dependencies name, req

      if options[:explain]
        puts "Gems to install:"

        request_set.sorted_requests.each do |s|
          puts "  #{s.full_name}"
        end

        return
      else
        @installed_specs.concat request_set.install options
      end

      show_install_errors inst.errors
    end
  end

  def install_gem_without_dependencies name, req # :nodoc:
    gem = nil

    if local? then
      if name =~ /\.gem$/ and File.file? name then
        source = Gem::Source::SpecificFile.new name
        spec = source.spec
      else
        source = Gem::Source::Local.new
        spec = source.find_gem name, req
      end
      gem = source.download spec if spec
    end

    if remote? and not gem then
      dependency = Gem::Dependency.new name, req
      dependency.prerelease = options[:prerelease]

      fetcher = Gem::RemoteFetcher.fetcher
      gem = fetcher.download_to_cache dependency
    end

    inst = Gem::Installer.new gem, options
    inst.install

    require 'rubygems/dependency_installer'
    dinst = Gem::DependencyInstaller.new options
    dinst.installed_gems.replace [inst.spec]

    Gem.done_installing_hooks.each do |hook|
      hook.call dinst, [inst.spec]
    end unless Gem.done_installing_hooks.empty?

    @installed_specs.push(inst.spec)
  end

  def install_gems # :nodoc:
    exit_code = 0

    get_all_gem_names_and_versions.each do |gem_name, gem_version|
      gem_version ||= options[:version]

      begin
        install_gem gem_name, gem_version
      rescue Gem::InstallError => e
        alert_error "Error installing #{gem_name}:\n\t#{e.message}"
        exit_code |= 1
      rescue Gem::GemNotFoundException, Gem::UnsatisfiableDependencyError => e
        domain = options[:domain]
        domain = :local unless options[:suggest_alternate]
        show_lookup_failure e.name, e.version, e.errors, domain

        exit_code |= 2
      end
    end

    exit_code
  end

  ##
  # Loads post-install hooks

  def load_hooks # :nodoc:
    if options[:install_as_default]
      require 'rubygems/install_default_message'
    else
      require 'rubygems/install_message'
    end
    require 'rubygems/rdoc'
  end

  def show_install_errors errors # :nodoc:
    return unless errors

    errors.each do |x|
      return unless Gem::SourceFetchProblem === x

      msg = "Unable to pull data from '#{x.source.uri}': #{x.error.message}"

      alert_warning msg
    end
  end

  def show_installed # :nodoc:
    return if @installed_specs.empty?

    gems = @installed_specs.length == 1 ? 'gem' : 'gems'
    say "#{@installed_specs.length} #{gems} installed"
  end

end

lib64/ruby/2.2.0/rubygems/commands/contents_command.rb000064400000010103150402106240016407 0ustar00require 'English'
require 'rubygems/command'
require 'rubygems/version_option'

class Gem::Commands::ContentsCommand < Gem::Command

  include Gem::VersionOption

  def initialize
    super 'contents', 'Display the contents of the installed gems',
          :specdirs => [], :lib_only => false, :prefix => true,
          :show_install_dir => false

    add_version_option

    add_option(      '--all',
               "Contents for all gems") do |all, options|
      options[:all] = all
    end

    add_option('-s', '--spec-dir a,b,c', Array,
               "Search for gems under specific paths") do |spec_dirs, options|
      options[:specdirs] = spec_dirs
    end

    add_option('-l', '--[no-]lib-only',
               "Only return files in the Gem's lib_dirs") do |lib_only, options|
      options[:lib_only] = lib_only
    end

    add_option(      '--[no-]prefix',
               "Don't include installed path prefix") do |prefix, options|
      options[:prefix] = prefix
    end

    add_option(      '--[no-]show-install-dir',
               'Show only the gem install dir') do |show, options|
      options[:show_install_dir] = show
    end

    @path_kind = nil
    @spec_dirs = nil
    @version   = nil
  end

  def arguments # :nodoc:
    "GEMNAME       name of gem to list contents for"
  end

  def defaults_str # :nodoc:
    "--no-lib-only --prefix"
  end

  def description # :nodoc:
    <<-EOF
The contents command lists the files in an installed gem.  The listing can
be given as full file names, file names without the installed directory
prefix or only the files that are requireable.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} GEMNAME [GEMNAME ...]"
  end

  def execute
    @version   = options[:version] || Gem::Requirement.default
    @spec_dirs = specification_directories
    @path_kind = path_description @spec_dirs

    names = gem_names

    names.each do |name|
      found =
        if options[:show_install_dir] then
          gem_install_dir name
        else
          gem_contents name
        end

      terminate_interaction 1 unless found or names.length > 1
    end
  end

  def files_in spec
    if spec.default_gem? then
      files_in_default_gem spec
    else
      files_in_gem spec
    end
  end

  def files_in_gem spec
    gem_path  = spec.full_gem_path
    extra     = "/{#{spec.require_paths.join ','}}" if options[:lib_only]
    glob      = "#{gem_path}#{extra}/**/*"
    prefix_re = /#{Regexp.escape(gem_path)}\//

    Dir[glob].map do |file|
      [gem_path, file.sub(prefix_re, "")]
    end
  end

  def files_in_default_gem spec
    spec.files.map do |file|
      case file
      when /\A#{spec.bindir}\//
        [RbConfig::CONFIG['bindir'], $POSTMATCH]
      when /\.so\z/
        [RbConfig::CONFIG['archdir'], file]
      else
        [RbConfig::CONFIG['rubylibdir'], file]
      end
    end
  end

  def gem_contents name
    spec = spec_for name

    return false unless spec

    files = files_in spec

    show_files files

    true
  end

  def gem_install_dir name
    spec = spec_for name

    return false unless spec

    say spec.gem_dir

    true
  end

  def gem_names # :nodoc:
    if options[:all] then
      Gem::Specification.map(&:name)
    else
      get_all_gem_names
    end
  end

  def path_description spec_dirs # :nodoc:
    if spec_dirs.empty? then
      "default gem paths"
    else
      "specified path"
    end
  end

  def show_files files
    files.sort.each do |prefix, basename|
      absolute_path = File.join(prefix, basename)
      next if File.directory? absolute_path

      if options[:prefix] then
        say absolute_path
      else
        say basename
      end
    end
  end

  def spec_for name
    spec = Gem::Specification.find_all_by_name(name, @version).last

    return spec if spec

    say "Unable to find gem '#{name}' in #{@path_kind}"

    if Gem.configuration.verbose then
      say "\nDirectories searched:"
      @spec_dirs.sort.each { |dir| say dir }
    end

    return nil
  end

  def specification_directories # :nodoc:
    options[:specdirs].map do |i|
      [i, File.join(i, "specifications")]
    end.flatten
  end

end

lib64/ruby/2.2.0/rubygems/commands/cleanup_command.rb000064400000007547150402106240016223 0ustar00require 'rubygems/command'
require 'rubygems/dependency_list'
require 'rubygems/uninstaller'

class Gem::Commands::CleanupCommand < Gem::Command

  def initialize
    super 'cleanup',
          'Clean up old versions of installed gems',
          :force => false, :install_dir => Gem.dir

    add_option('-n', '-d', '--dryrun',
               'Do not uninstall gems') do |value, options|
      options[:dryrun] = true
    end

    @candidate_gems  = nil
    @default_gems    = []
    @full            = nil
    @gems_to_cleanup = nil
    @original_home   = nil
    @original_path   = nil
    @primary_gems    = nil
  end

  def arguments # :nodoc:
    "GEMNAME       name of gem to cleanup"
  end

  def defaults_str # :nodoc:
    "--no-dryrun"
  end

  def description # :nodoc:
    <<-EOF
The cleanup command removes old versions of gems from GEM_HOME that are not
required to meet a dependency.  If a gem is installed elsewhere in GEM_PATH
the cleanup command won't delete it.

If no gems are named all gems in GEM_HOME are cleaned.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} [GEMNAME ...]"
  end

  def execute
    say "Cleaning up installed gems..."

    if options[:args].empty? then
      done     = false
      last_set = nil

      until done do
        clean_gems

        this_set = @gems_to_cleanup.map { |spec| spec.full_name }.sort

        done = this_set.empty? || last_set == this_set

        last_set = this_set
      end
    else
      clean_gems
    end

    say "Clean Up Complete"

    verbose do
      skipped = @default_gems.map { |spec| spec.full_name }

      "Skipped default gems: #{skipped.join ', '}"
    end
  end

  def clean_gems
    get_primary_gems
    get_candidate_gems
    get_gems_to_cleanup

    @full = Gem::DependencyList.from_specs

    deplist = Gem::DependencyList.new
    @gems_to_cleanup.each do |spec| deplist.add spec end

    deps = deplist.strongly_connected_components.flatten

    @original_home = Gem.dir
    @original_path = Gem.path

    deps.reverse_each do |spec|
      uninstall_dep spec
    end

    Gem::Specification.reset
  end

  def get_candidate_gems
    @candidate_gems = unless options[:args].empty? then
                        options[:args].map do |gem_name|
                          Gem::Specification.find_all_by_name gem_name
                        end.flatten
                      else
                        Gem::Specification.to_a
                      end
  end

  def get_gems_to_cleanup
    gems_to_cleanup = @candidate_gems.select { |spec|
      @primary_gems[spec.name].version != spec.version
    }

    default_gems, gems_to_cleanup = gems_to_cleanup.partition { |spec|
      spec.default_gem?
    }

    @default_gems += default_gems
    @default_gems.uniq!
    @gems_to_cleanup = gems_to_cleanup.uniq
  end

  def get_primary_gems
    @primary_gems = {}

    Gem::Specification.each do |spec|
      if @primary_gems[spec.name].nil? or
         @primary_gems[spec.name].version < spec.version then
        @primary_gems[spec.name] = spec
      end
    end
  end

  def uninstall_dep spec
    return unless @full.ok_to_remove?(spec.full_name)

    if options[:dryrun] then
      say "Dry Run Mode: Would uninstall #{spec.full_name}"
      return
    end

    say "Attempting to uninstall #{spec.full_name}"

    uninstall_options = {
      :executables => false,
      :version => "= #{spec.version}",
    }

    uninstall_options[:user_install] = Gem.user_dir == spec.base_dir

    uninstaller = Gem::Uninstaller.new spec.name, uninstall_options

    begin
      uninstaller.uninstall
    rescue Gem::DependencyRemovalException, Gem::InstallError,
           Gem::GemNotInHomeException, Gem::FilePermissionError => e
      say "Unable to uninstall #{spec.full_name}:"
      say "\t#{e.class}: #{e.message}"
    end
  ensure
    # Restore path Gem::Uninstaller may have changed
    Gem.use_paths @original_home, *@original_path
  end

end
lib64/ruby/2.2.0/rubygems/commands/cert_command.rb000064400000017213150402106250015521 0ustar00require 'rubygems/command'
require 'rubygems/security'
begin
  require 'openssl'
rescue LoadError => e
  raise unless (e.respond_to?(:path) && e.path == 'openssl') ||
               e.message =~ / -- openssl$/
end

class Gem::Commands::CertCommand < Gem::Command

  def initialize
    super 'cert', 'Manage RubyGems certificates and signing settings',
          :add => [], :remove => [], :list => [], :build => [], :sign => []

    OptionParser.accept OpenSSL::X509::Certificate do |certificate|
      begin
        OpenSSL::X509::Certificate.new File.read certificate
      rescue Errno::ENOENT
        raise OptionParser::InvalidArgument, "#{certificate}: does not exist"
      rescue OpenSSL::X509::CertificateError
        raise OptionParser::InvalidArgument,
          "#{certificate}: invalid X509 certificate"
      end
    end

    OptionParser.accept OpenSSL::PKey::RSA do |key_file|
      begin
        passphrase = ENV['GEM_PRIVATE_KEY_PASSPHRASE']
        key = OpenSSL::PKey::RSA.new File.read(key_file), passphrase
      rescue Errno::ENOENT
        raise OptionParser::InvalidArgument, "#{key_file}: does not exist"
      rescue OpenSSL::PKey::RSAError
        raise OptionParser::InvalidArgument, "#{key_file}: invalid RSA key"
      end

      raise OptionParser::InvalidArgument,
            "#{key_file}: private key not found" unless key.private?

      key
    end

    add_option('-a', '--add CERT', OpenSSL::X509::Certificate,
               'Add a trusted certificate.') do |cert, options|
      options[:add] << cert
    end

    add_option('-l', '--list [FILTER]',
               'List trusted certificates where the',
               'subject contains FILTER') do |filter, options|
      filter ||= ''

      options[:list] << filter
    end

    add_option('-r', '--remove FILTER',
               'Remove trusted certificates where the',
               'subject contains FILTER') do |filter, options|
      options[:remove] << filter
    end

    add_option('-b', '--build EMAIL_ADDR',
               'Build private key and self-signed',
               'certificate for EMAIL_ADDR') do |email_address, options|
      options[:build] << email_address
    end

    add_option('-C', '--certificate CERT', OpenSSL::X509::Certificate,
               'Signing certificate for --sign') do |cert, options|
      options[:issuer_cert] = cert
    end

    add_option('-K', '--private-key KEY', OpenSSL::PKey::RSA,
               'Key for --sign or --build') do |key, options|
      options[:key] = key
    end

    add_option('-s', '--sign CERT',
               'Signs CERT with the key from -K',
               'and the certificate from -C') do |cert_file, options|
      raise OptionParser::InvalidArgument, "#{cert_file}: does not exist" unless
        File.file? cert_file

      options[:sign] << cert_file
    end
  end

  def add_certificate certificate # :nodoc:
    Gem::Security.trust_dir.trust_cert certificate

    say "Added '#{certificate.subject}'"
  end

  def execute
    options[:add].each do |certificate|
      add_certificate certificate
    end

    options[:remove].each do |filter|
      remove_certificates_matching filter
    end

    options[:list].each do |filter|
      list_certificates_matching filter
    end

    options[:build].each do |name|
      build name
    end

    sign_certificates unless options[:sign].empty?
  end

  def build name
    key, key_path = build_key
    cert_path = build_cert name, key

    say "Certificate: #{cert_path}"

    if key_path
      say "Private Key: #{key_path}"
      say "Don't forget to move the key file to somewhere private!"
    end
  end

  def build_cert name, key # :nodoc:
    cert = Gem::Security.create_cert_email name, key
    Gem::Security.write cert, "gem-public_cert.pem"
  end

  def build_key # :nodoc:
    return options[:key] if options[:key]

    passphrase = ask_for_password 'Passphrase for your Private Key:'
    say "\n"

    passphrase_confirmation = ask_for_password 'Please repeat the passphrase for your Private Key:'
    say "\n"

    raise Gem::CommandLineError,
          "Passphrase and passphrase confirmation don't match" unless passphrase == passphrase_confirmation

    key      = Gem::Security.create_key
    key_path = Gem::Security.write key, "gem-private_key.pem", 0600, passphrase

    return key, key_path
  end

  def certificates_matching filter
    return enum_for __method__, filter unless block_given?

    Gem::Security.trusted_certificates.select do |certificate, _|
      subject = certificate.subject.to_s
      subject.downcase.index filter
    end.sort_by do |certificate, _|
      certificate.subject.to_a.map { |name, data,| [name, data] }
    end.each do |certificate, path|
      yield certificate, path
    end
  end

  def description # :nodoc:
    <<-EOF
The cert command manages signing keys and certificates for creating signed
gems.  Your signing certificate and private key are typically stored in
~/.gem/gem-public_cert.pem and ~/.gem/gem-private_key.pem respectively.

To build a certificate for signing gems:

  gem cert --build you@example

If you already have an RSA key, or are creating a new certificate for an
existing key:

  gem cert --build you@example --private-key /path/to/key.pem

If you wish to trust a certificate you can add it to the trust list with:

  gem cert --add /path/to/cert.pem

You can list trusted certificates with:

  gem cert --list

or:

  gem cert --list cert_subject_substring

If you wish to remove a previously trusted certificate:

  gem cert --remove cert_subject_substring

To sign another gem author's certificate:

  gem cert --sign /path/to/other_cert.pem

For further reading on signing gems see `ri Gem::Security`.
    EOF
  end

  def list_certificates_matching filter # :nodoc:
    certificates_matching filter do |certificate, _|
      # this could probably be formatted more gracefully
      say certificate.subject.to_s
    end
  end

  def load_default_cert
    cert_file = File.join Gem.default_cert_path
    cert = File.read cert_file
    options[:issuer_cert] = OpenSSL::X509::Certificate.new cert
  rescue Errno::ENOENT
    alert_error \
      "--certificate not specified and ~/.gem/gem-public_cert.pem does not exist"

    terminate_interaction 1
  rescue OpenSSL::X509::CertificateError
    alert_error \
      "--certificate not specified and ~/.gem/gem-public_cert.pem is not valid"

    terminate_interaction 1
  end

  def load_default_key
    key_file = File.join Gem.default_key_path
    key = File.read key_file
    passphrase = ENV['GEM_PRIVATE_KEY_PASSPHRASE']
    options[:key] = OpenSSL::PKey::RSA.new key, passphrase
  rescue Errno::ENOENT
    alert_error \
      "--private-key not specified and ~/.gem/gem-private_key.pem does not exist"

    terminate_interaction 1
  rescue OpenSSL::PKey::RSAError
    alert_error \
      "--private-key not specified and ~/.gem/gem-private_key.pem is not valid"

    terminate_interaction 1
  end

  def load_defaults # :nodoc:
    load_default_cert unless options[:issuer_cert]
    load_default_key  unless options[:key]
  end

  def remove_certificates_matching filter # :nodoc:
    certificates_matching filter do |certificate, path|
      FileUtils.rm path
      say "Removed '#{certificate.subject}'"
    end
  end

  def sign cert_file
    cert = File.read cert_file
    cert = OpenSSL::X509::Certificate.new cert

    permissions = File.stat(cert_file).mode & 0777

    issuer_cert = options[:issuer_cert]
    issuer_key = options[:key]

    cert = Gem::Security.sign cert, issuer_key, issuer_cert

    Gem::Security.write cert, cert_file, permissions
  end

  def sign_certificates # :nodoc:
    load_defaults unless options[:sign].empty?

    options[:sign].each do |cert_file|
      sign cert_file
    end
  end

end if defined?(OpenSSL::SSL)

lib64/ruby/2.2.0/rubygems/commands/help_command.rb000064400000024605150402106250015517 0ustar00require 'rubygems/command'

class Gem::Commands::HelpCommand < Gem::Command

  # :stopdoc:
  EXAMPLES = <<-EOF
Some examples of 'gem' usage.

* Install 'rake', either from local directory or remote server:

    gem install rake

* Install 'rake', only from remote server:

    gem install rake --remote

* Install 'rake', but only version 0.3.1, even if dependencies
  are not met, and into a user-specific directory:

    gem install rake --version 0.3.1 --force --user-install

* List local gems whose name begins with 'D':

    gem list D

* List local and remote gems whose name contains 'log':

    gem search log --both

* List only remote gems whose name contains 'log':

    gem search log --remote

* Uninstall 'rake':

    gem uninstall rake

* Create a gem:

    See http://guides.rubygems.org/make-your-own-gem/

* See information about RubyGems:

    gem environment

* Update all gems on your system:

    gem update

* Update your local version of RubyGems

    gem update --system
  EOF

  GEM_DEPENDENCIES = <<-EOF
A gem dependencies file allows installation of a consistent set of gems across
multiple environments.  The RubyGems implementation is designed to be
compatible with Bundler's Gemfile format.  You can see additional
documentation on the format at:

  http://bundler.io

RubyGems automatically looks for these gem dependencies files:

* gem.deps.rb
* Gemfile
* Isolate

These files are looked up automatically using `gem install -g`, or you can
specify a custom file.

When the RUBYGEMS_GEMDEPS environment variable is set to a gem dependencies
file the gems from that file will be activated at startup time.  Set it to a
specific filename or to "-" to have RubyGems automatically discover the gem
dependencies file by walking up from the current directory.

You can also activate gem dependencies at program startup using
Gem.use_gemdeps.

NOTE: Enabling automatic discovery on multiuser systems can lead to execution
of arbitrary code when used from directories outside your control.

Gem Dependencies
================

Use #gem to declare which gems you directly depend upon:

  gem 'rake'

To depend on a specific set of versions:

  gem 'rake', '~> 10.3', '>= 10.3.2'

RubyGems will require the gem name when activating the gem using
the RUBYGEMS_GEMDEPS environment variable or Gem::use_gemdeps.  Use the
require: option to override this behavior if the gem does not have a file of
that name or you don't want to require those files:

  gem 'my_gem', require: 'other_file'

To prevent RubyGems from requiring any files use:

  gem 'my_gem', require: false

To load dependencies from a .gemspec file:

  gemspec

RubyGems looks for the first .gemspec file in the current directory.  To
override this use the name: option:

  gemspec name: 'specific_gem'

To look in a different directory use the path: option:

  gemspec name: 'specific_gem', path: 'gemspecs'

To depend on a gem unpacked into a local directory:

  gem 'modified_gem', path: 'vendor/modified_gem'

To depend on a gem from git:

  gem 'private_gem', git: 'git@my.company.example:private_gem.git'

To depend on a gem from github:

  gem 'private_gem', github: 'my_company/private_gem'

To depend on a gem from a github gist:

  gem 'bang', gist: '1232884'

Git, github and gist support the ref:, branch: and tag: options to specify a
commit reference or hash, branch or tag respectively to use for the gem.

Setting the submodules: option to true for git, github and gist dependencies
causes fetching of submodules when fetching the repository.

You can depend on multiple gems from a single repository with the git method:

  git 'https://github.com/rails/rails.git' do
    gem 'activesupport'
    gem 'activerecord'
  end

Gem Sources
===========

RubyGems uses the default sources for regular `gem install` for gem
dependencies files.  Unlike bundler, you do need to specify a source.

You can override the sources used for downloading gems with:

  source 'https://gem_server.example'

You may specify multiple sources.  Unlike bundler the prepend: option is not
supported. Sources are used in-order, to prepend a source place it at the
front of the list.

Gem Platform
============

You can restrict gem dependencies to specific platforms with the #platform
and #platforms methods:

  platform :ruby_21 do
    gem 'debugger'
  end

See the bundler Gemfile manual page for a list of platforms supported in a gem
dependencies file.:

  http://bundler.io/v1.6/man/gemfile.5.html

Ruby Version and Engine Dependency
==================================

You can specifiy the version, engine and engine version of ruby to use with
your gem dependencies file.  If you are not running the specified version
RubyGems will raise an exception.

To depend on a specific version of ruby:

  ruby '2.1.2'

To depend on a specific ruby engine:

  ruby '1.9.3', engine: 'jruby'

To depend on a specific ruby engine version:

  ruby '1.9.3', engine: 'jruby', engine_version: '1.7.11'

Grouping Dependencies
=====================

Gem dependencies may be placed in groups that can be excluded from install.
Dependencies required for development or testing of your code may be excluded
when installed in a production environment.

A #gem dependency may be placed in a group using the group: option:

  gem 'minitest', group: :test

To install dependencies from a gemfile without specific groups use the
`--without` option for `gem install -g`:

  $ gem install -g --without test

The group: option also accepts multiple groups if the gem fits in multiple
categories.

Multiple groups may be excluded during install by comma-separating the groups for `--without` or by specifying `--without` multiple times.

The #group method can also be used to place gems in groups:

  group :test do
    gem 'minitest'
    gem 'minitest-emoji'
  end

The #group method allows multiple groups.

The #gemspec development dependencies are placed in the :development group by
default.  This may be overriden with the :development_group option:

  gemspec development_group: :other

  EOF

  PLATFORMS = <<-'EOF'
RubyGems platforms are composed of three parts, a CPU, an OS, and a
version.  These values are taken from values in rbconfig.rb.  You can view
your current platform by running `gem environment`.

RubyGems matches platforms as follows:

  * The CPU must match exactly unless one of the platforms has
    "universal" as the CPU or the local CPU starts with "arm" and the gem's
    CPU is exactly "arm" (for gems that support generic ARM architecture).
  * The OS must match exactly.
  * The versions must match exactly unless one of the versions is nil.

For commands that install, uninstall and list gems, you can override what
RubyGems thinks your platform is with the --platform option.  The platform
you pass must match "#{cpu}-#{os}" or "#{cpu}-#{os}-#{version}".  On mswin
platforms, the version is the compiler version, not the OS version.  (Ruby
compiled with VC6 uses "60" as the compiler version, VC8 uses "80".)

For the ARM architecture, gems with a platform of "arm-linux" should run on a
reasonable set of ARM CPUs and not depend on instructions present on a limited
subset of the architecture.  For example, the binary should run on platforms
armv5, armv6hf, armv6l, armv7, etc.  If you use the "arm-linux" platform
please test your gem on a variety of ARM hardware before release to ensure it
functions correctly.

Example platforms:

  x86-freebsd        # Any FreeBSD version on an x86 CPU
  universal-darwin-8 # Darwin 8 only gems that run on any CPU
  x86-mswin32-80     # Windows gems compiled with VC8
  armv7-linux        # Gem complied for an ARMv7 CPU running linux
  arm-linux          # Gem compiled for any ARM CPU running linux

When building platform gems, set the platform in the gem specification to
Gem::Platform::CURRENT.  This will correctly mark the gem with your ruby's
platform.
  EOF

  # NOTE when updating also update Gem::Command::HELP

  SUBCOMMANDS = [
    ["commands",         :show_commands],
    ["options",          Gem::Command::HELP],
    ["examples",         EXAMPLES],
    ["gem_dependencies", GEM_DEPENDENCIES],
    ["platforms",        PLATFORMS],
  ]
  # :startdoc:

  def initialize
    super 'help', "Provide help on the 'gem' command"

    @command_manager = Gem::CommandManager.instance
  end

  def usage # :nodoc:
    "#{program_name} ARGUMENT"
  end

  def execute
    arg = options[:args][0]

    _, help = SUBCOMMANDS.find do |command,|
      begins? command, arg
    end

    if help then
      if Symbol === help then
        send help
      else
        say help
      end
      return
    end

    if options[:help] then
      show_help

    elsif arg then
      show_command_help arg

    else
      say Gem::Command::HELP
    end
  end

  def show_commands # :nodoc:
    out = []
    out << "GEM commands are:"
    out << nil

    margin_width = 4

    desc_width = @command_manager.command_names.map { |n| n.size }.max + 4

    summary_width = 80 - margin_width - desc_width
    wrap_indent = ' ' * (margin_width + desc_width)
    format = "#{' ' * margin_width}%-#{desc_width}s%s"

    @command_manager.command_names.each do |cmd_name|
      command = @command_manager[cmd_name]

      summary =
        if command then
          command.summary
        else
          "[No command found for #{cmd_name}]"
        end

      summary = wrap(summary, summary_width).split "\n"
      out << sprintf(format, cmd_name, summary.shift)
      until summary.empty? do
        out << "#{wrap_indent}#{summary.shift}"
      end
    end

    out << nil
    out << "For help on a particular command, use 'gem help COMMAND'."
    out << nil
    out << "Commands may be abbreviated, so long as they are unambiguous."
    out << "e.g. 'gem i rake' is short for 'gem install rake'."

    say out.join("\n")
  end

  def show_command_help command_name # :nodoc:
    command_name = command_name.downcase

    possibilities = @command_manager.find_command_possibilities command_name

    if possibilities.size == 1 then
      command = @command_manager[possibilities.first]
      command.invoke("--help")
    elsif possibilities.size > 1 then
      alert_warning "Ambiguous command #{command_name} (#{possibilities.join(', ')})"
    else
      alert_warning "Unknown command #{command_name}.  Try: gem help commands"
    end
  end

  def show_help # :nodoc:
    command = @command_manager[options[:help]]
    if command then
      # help with provided command
      command.invoke("--help")
    else
      alert_error "Unknown command #{options[:help]}.  Try 'gem help commands'"
    end
  end

end

lib64/ruby/2.2.0/rubygems/commands/dependency_command.rb000064400000011674150402106250016707 0ustar00require 'rubygems/command'
require 'rubygems/local_remote_options'
require 'rubygems/version_option'

class Gem::Commands::DependencyCommand < Gem::Command

  include Gem::LocalRemoteOptions
  include Gem::VersionOption

  def initialize
    super 'dependency',
          'Show the dependencies of an installed gem',
          :version => Gem::Requirement.default, :domain => :local

    add_version_option
    add_platform_option
    add_prerelease_option

    add_option('-R', '--[no-]reverse-dependencies',
               'Include reverse dependencies in the output') do
      |value, options|
      options[:reverse_dependencies] = value
    end

    add_option('-p', '--pipe',
               "Pipe Format (name --version ver)") do |value, options|
      options[:pipe_format] = value
    end

    add_local_remote_options
  end

  def arguments # :nodoc:
    "REGEXP        show dependencies for gems whose names start with REGEXP"
  end

  def defaults_str # :nodoc:
    "--local --version '#{Gem::Requirement.default}' --no-reverse-dependencies"
  end

  def description # :nodoc:
    <<-EOF
The dependency commands lists which other gems a given gem depends on.  For
local gems only the reverse dependencies can be shown (which gems depend on
the named gem).

The dependency list can be displayed in a format suitable for piping for
use with other commands.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} REGEXP"
  end

  def fetch_remote_specs dependency # :nodoc:
    fetcher = Gem::SpecFetcher.fetcher

    ss, = fetcher.spec_for_dependency dependency

    ss.map { |spec, _| spec }
  end

  def fetch_specs dependency # :nodoc:
    specs = []

    specs.concat dependency.matching_specs     if local?
    specs.concat fetch_remote_specs dependency if remote?

    ensure_specs specs

    specs.uniq.sort
  end

  def gem_dependency args, version, prerelease # :nodoc:
    args << '' if args.empty?

    pattern = if args.length == 1 and args.first =~ /\A\/(.*)\/(i)?\z/m then
                flags = $2 ? Regexp::IGNORECASE : nil
                Regexp.new $1, flags
              else
                /\A#{Regexp.union(*args)}/
              end

    dependency = Gem::Deprecate.skip_during {
      Gem::Dependency.new pattern, version
    }

    dependency.prerelease = prerelease

    dependency
  end

  def display_pipe specs # :nodoc:
    specs.each do |spec|
      unless spec.dependencies.empty? then
        spec.dependencies.sort_by { |dep| dep.name }.each do |dep|
          say "#{dep.name} --version '#{dep.requirement}'"
        end
      end
    end
  end

  def display_readable specs, reverse # :nodoc:
    response = ''

    specs.each do |spec|
      response << print_dependencies(spec)
      unless reverse[spec.full_name].empty? then
        response << "  Used by\n"
        reverse[spec.full_name].each do |sp, dep|
          response << "    #{sp} (#{dep})\n"
        end
      end
      response << "\n"
    end

    say response
  end

  def execute
    ensure_local_only_reverse_dependencies

    dependency =
      gem_dependency options[:args], options[:version], options[:prerelease]

    specs = fetch_specs dependency

    reverse = reverse_dependencies specs

    if options[:pipe_format] then
      display_pipe specs
    else
      display_readable specs, reverse
    end
  end

  def ensure_local_only_reverse_dependencies # :nodoc:
    if options[:reverse_dependencies] and remote? and not local? then
      alert_error 'Only reverse dependencies for local gems are supported.'
      terminate_interaction 1
    end
  end

  def ensure_specs specs # :nodoc:
    return unless specs.empty?

    patterns = options[:args].join ','
    say "No gems found matching #{patterns} (#{options[:version]})" if
      Gem.configuration.verbose

    terminate_interaction 1
  end

  def print_dependencies(spec, level = 0) # :nodoc:
    response = ''
    response << '  ' * level + "Gem #{spec.full_name}\n"
    unless spec.dependencies.empty? then
      spec.dependencies.sort_by { |dep| dep.name }.each do |dep|
        response << '  ' * level + "  #{dep}\n"
      end
    end
    response
  end

  def remote_specs dependency # :nodoc:
    fetcher = Gem::SpecFetcher.fetcher

    ss, _ = fetcher.spec_for_dependency dependency

    ss.map { |s,o| s }
  end

  def reverse_dependencies specs # :nodoc:
    reverse = Hash.new { |h, k| h[k] = [] }

    return reverse unless options[:reverse_dependencies]

    specs.each do |spec|
      reverse[spec.full_name] = find_reverse_dependencies spec
    end

    reverse
  end

  ##
  # Returns an Array of [specification, dep] that are satisfied by +spec+.

  def find_reverse_dependencies spec # :nodoc:
    result = []

    Gem::Specification.each do |sp|
      sp.dependencies.each do |dep|
        dep = Gem::Dependency.new(*dep) unless Gem::Dependency === dep

        if spec.name == dep.name and
           dep.requirement.satisfied_by?(spec.version) then
          result << [sp.full_name, dep]
        end
      end
    end

    result
  end

end

lib64/ruby/2.2.0/rubygems/commands/pristine_command.rb000064400000011535150402106250016422 0ustar00require 'rubygems/command'
require 'rubygems/package'
require 'rubygems/installer'
require 'rubygems/version_option'

class Gem::Commands::PristineCommand < Gem::Command

  include Gem::VersionOption

  def initialize
    super 'pristine',
          'Restores installed gems to pristine condition from files located in the gem cache',
          :version => Gem::Requirement.default,
          :extensions => true,
          :extensions_set => false,
          :all => false

    add_option('--all',
               'Restore all installed gems to pristine',
               'condition') do |value, options|
      options[:all] = value
    end

    add_option('--[no-]extensions',
               'Restore gems with extensions',
               'in addition to regular gems') do |value, options|
      options[:extensions_set] = true
      options[:extensions]     = value
    end

    add_option('--only-executables',
               'Only restore executables') do |value, options|
      options[:only_executables] = value
    end

    add_option('-E', '--[no-]env-shebang',
               'Rewrite executables with a shebang',
               'of /usr/bin/env') do |value, options|
      options[:env_shebang] = value
    end

    add_version_option('restore to', 'pristine condition')
  end

  def arguments # :nodoc:
    "GEMNAME       gem to restore to pristine condition (unless --all)"
  end

  def defaults_str # :nodoc:
    '--extensions'
  end

  def description # :nodoc:
    <<-EOF
The pristine command compares an installed gem with the contents of its
cached .gem file and restores any files that don't match the cached .gem's
copy.

If you have made modifications to an installed gem, the pristine command
will revert them.  All extensions are rebuilt and all bin stubs for the gem
are regenerated after checking for modifications.

If the cached gem cannot be found it will be downloaded.

If --no-extensions is provided pristine will not attempt to restore a gem
with an extension.

If --extensions is given (but not --all or gem names) only gems with
extensions will be restored.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} [GEMNAME ...]"
  end

  def execute
    specs = if options[:all] then
              Gem::Specification.map

            # `--extensions` must be explicitly given to pristine only gems
            # with extensions.
            elsif options[:extensions_set] and
                  options[:extensions] and options[:args].empty? then
              Gem::Specification.select do |spec|
                spec.extensions and not spec.extensions.empty?
              end
            else
              get_all_gem_names.map do |gem_name|
                Gem::Specification.find_all_by_name gem_name, options[:version]
              end.flatten
            end

    if specs.to_a.empty? then
      raise Gem::Exception,
            "Failed to find gems #{options[:args]} #{options[:version]}"
    end

    install_dir = Gem.dir # TODO use installer option

    raise Gem::FilePermissionError.new(install_dir) unless
      File.writable?(install_dir)

    say "Restoring gems to pristine condition..."

    specs.each do |spec|
      if spec.default_gem?
        say "Skipped #{spec.full_name}, it is a default gem"
        next
      end

      if spec.bundled_gem_in_old_ruby?
        say "Skipped #{spec.full_name}, it is bundled with old Ruby"
        next
      end

      unless spec.extensions.empty? or options[:extensions] then
        say "Skipped #{spec.full_name}, it needs to compile an extension"
        next
      end

      gem = spec.cache_file

      unless File.exist? gem then
        require 'rubygems/remote_fetcher'

        say "Cached gem for #{spec.full_name} not found, attempting to fetch..."

        dep = Gem::Dependency.new spec.name, spec.version
        found, _ = Gem::SpecFetcher.fetcher.spec_for_dependency dep

        if found.empty?
          say "Skipped #{spec.full_name}, it was not found from cache and remote sources"
          next
        end

        spec_candidate, source = found.first
        Gem::RemoteFetcher.fetcher.download spec_candidate, source.uri.to_s, spec.base_dir
      end

      env_shebang =
        if options.include? :env_shebang then
          options[:env_shebang]
        else
          install_defaults = Gem::ConfigFile::PLATFORM_DEFAULTS['install']
          install_defaults.to_s['--env-shebang']
        end

      installer = Gem::Installer.new(gem,
                                     :wrappers => true,
                                     :force => true,
                                     :install_dir => spec.base_dir,
                                     :env_shebang => env_shebang,
                                     :build_args => spec.build_args)

      if options[:only_executables] then
        installer.generate_bin
      else
        installer.install
      end

      say "Restored #{spec.full_name}"
    end
  end
end
lib64/ruby/2.2.0/rubygems/commands/environment_command.rb000064400000011256150402106250017131 0ustar00require 'rubygems/command'

class Gem::Commands::EnvironmentCommand < Gem::Command

  def initialize
    super 'environment', 'Display information about the RubyGems environment'
  end

  def arguments # :nodoc:
    args = <<-EOF
          packageversion  display the package version
          gemdir          display the path where gems are installed
          gempath         display path used to search for gems
          version         display the gem format version
          remotesources   display the remote gem servers
          platform        display the supported gem platforms
          <omitted>       display everything
    EOF
    return args.gsub(/^\s+/, '')
  end

  def description # :nodoc:
    <<-EOF
The environment command lets you query rubygems for its configuration for
use in shell scripts or as a debugging aid.

The RubyGems environment can be controlled through command line arguments,
gemrc files, environment variables and built-in defaults.

Command line argument defaults and some RubyGems defaults can be set in a
~/.gemrc file for individual users and a gemrc in the SYSTEM CONFIGURATION
DIRECTORY for all users. These files are YAML files with the following YAML
keys:

  :sources: A YAML array of remote gem repositories to install gems from
  :verbose: Verbosity of the gem command. false, true, and :really are the
            levels
  :update_sources: Enable/disable automatic updating of repository metadata
  :backtrace: Print backtrace when RubyGems encounters an error
  :gempath: The paths in which to look for gems
  :disable_default_gem_server: Force specification of gem server host on push
  <gem_command>: A string containing arguments for the specified gem command

Example:

  :verbose: false
  install: --no-wrappers
  update: --no-wrappers
  :disable_default_gem_server: true

RubyGems' default local repository can be overridden with the GEM_PATH and
GEM_HOME environment variables. GEM_HOME sets the default repository to
install into. GEM_PATH allows multiple local repositories to be searched for
gems.

If you are behind a proxy server, RubyGems uses the HTTP_PROXY,
HTTP_PROXY_USER and HTTP_PROXY_PASS environment variables to discover the
proxy server.

If you would like to push gems to a private gem server the RUBYGEMS_HOST
environment variable can be set to the URI for that server.

If you are packaging RubyGems all of RubyGems' defaults are in
lib/rubygems/defaults.rb.  You may override these in
lib/rubygems/defaults/operating_system.rb
    EOF
  end

  def usage # :nodoc:
    "#{program_name} [arg]"
  end

  def execute
    out = ''
    arg = options[:args][0]
    out <<
      case arg
      when /^packageversion/ then
        Gem::RubyGemsPackageVersion
      when /^version/ then
        Gem::VERSION
      when /^gemdir/, /^gemhome/, /^home/, /^GEM_HOME/ then
        Gem.dir
      when /^gempath/, /^path/, /^GEM_PATH/ then
        Gem.path.join(File::PATH_SEPARATOR)
      when /^remotesources/ then
        Gem.sources.to_a.join("\n")
      when /^platform/ then
        Gem.platforms.join(File::PATH_SEPARATOR)
      when nil then
        show_environment
      else
        raise Gem::CommandLineError, "Unknown environment option [#{arg}]"
      end
    say out
    true
  end

  def add_path out, path
    path.each do |component|
      out << "     - #{component}\n"
    end
  end

  def show_environment # :nodoc:
    out = "RubyGems Environment:\n"

    out << "  - RUBYGEMS VERSION: #{Gem::VERSION}\n"

    out << "  - RUBY VERSION: #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}"
    out << " patchlevel #{RUBY_PATCHLEVEL}" if defined? RUBY_PATCHLEVEL
    out << ") [#{RUBY_PLATFORM}]\n"

    out << "  - INSTALLATION DIRECTORY: #{Gem.dir}\n"

    out << "  - RUBYGEMS PREFIX: #{Gem.prefix}\n" unless Gem.prefix.nil?

    out << "  - RUBY EXECUTABLE: #{Gem.ruby}\n"

    out << "  - EXECUTABLE DIRECTORY: #{Gem.bindir}\n"

    out << "  - SPEC CACHE DIRECTORY: #{Gem.spec_cache_dir}\n"

    out << "  - SYSTEM CONFIGURATION DIRECTORY: #{Gem::ConfigFile::SYSTEM_CONFIG_PATH}\n"

    out << "  - RUBYGEMS PLATFORMS:\n"
    Gem.platforms.each do |platform|
      out << "    - #{platform}\n"
    end

    out << "  - GEM PATHS:\n"
    out << "     - #{Gem.dir}\n"

    gem_path = Gem.path.dup
    gem_path.delete Gem.dir
    add_path out, gem_path

    out << "  - GEM CONFIGURATION:\n"
    Gem.configuration.each do |name, value|
      value = value.gsub(/./, '*') if name == 'gemcutter_key'
      out << "     - #{name.inspect} => #{value.inspect}\n"
    end

    out << "  - REMOTE SOURCES:\n"
    Gem.sources.each do |s|
      out << "     - #{s}\n"
    end

    out << "  - SHELL PATH:\n"

    shell_path = ENV['PATH'].split(File::PATH_SEPARATOR)
    add_path out, shell_path

    out
  end

end

lib64/ruby/2.2.0/rubygems/commands/query_command.rb000064400000021430150402106250015725 0ustar00require 'rubygems/command'
require 'rubygems/local_remote_options'
require 'rubygems/spec_fetcher'
require 'rubygems/version_option'
require 'rubygems/text'

class Gem::Commands::QueryCommand < Gem::Command

  include Gem::Text
  include Gem::LocalRemoteOptions
  include Gem::VersionOption

  def initialize(name = 'query',
                 summary = 'Query gem information in local or remote repositories')
    super name, summary,
         :name => //, :domain => :local, :details => false, :versions => true,
         :installed => nil, :version => Gem::Requirement.default

    add_option('-i', '--[no-]installed',
               'Check for installed gem') do |value, options|
      options[:installed] = value
    end

    add_option('-I', 'Equivalent to --no-installed') do |value, options|
      options[:installed] = false
    end

    add_version_option command, "for use with --installed"

    add_option('-n', '--name-matches REGEXP',
               'Name of gem(s) to query on matches the',
               'provided REGEXP') do |value, options|
      options[:name] = /#{value}/i
    end

    add_option('-d', '--[no-]details',
               'Display detailed information of gem(s)') do |value, options|
      options[:details] = value
    end

    add_option(      '--[no-]versions',
               'Display only gem names') do |value, options|
      options[:versions] = value
      options[:details] = false unless value
    end

    add_option('-a', '--all',
               'Display all gem versions') do |value, options|
      options[:all] = value
    end

    add_option(      '--[no-]prerelease',
               'Display prerelease versions') do |value, options|
      options[:prerelease] = value
    end

    add_local_remote_options
  end

  def defaults_str # :nodoc:
    "--local --name-matches // --no-details --versions --no-installed"
  end

  def description # :nodoc:
    <<-EOF
The query command is the basis for the list and search commands.

You should really use the list and search commands instead.  This command
is too hard to use.
    EOF
  end

  def execute
    exit_code = 0
    if options[:args].to_a.empty? and options[:name].source.empty?
      name = options[:name]
      no_name = true
    elsif !options[:name].source.empty?
      name = Array(options[:name])
    else
      name = options[:args].to_a.map{|arg| /#{arg}/i }
    end

    prerelease = options[:prerelease]

    unless options[:installed].nil? then
      if no_name then
        alert_error "You must specify a gem name"
        exit_code |= 4
      elsif name.count > 1
        alert_error "You must specify only ONE gem!"
        exit_code |= 4
      else
        installed = installed? name.first, options[:version]
        installed = !installed unless options[:installed]

        if installed then
          say "true"
        else
          say "false"
          exit_code |= 1
        end
      end

      terminate_interaction exit_code
    end

    names = Array(name)
    names.each { |n| show_gems n, prerelease }
  end

  private

  def display_header type
    if (ui.outs.tty? and Gem.configuration.verbose) or both? then
      say
      say "*** #{type} GEMS ***"
      say
    end
  end

  #Guts of original execute
  def show_gems name, prerelease
    req = Gem::Requirement.default
    # TODO: deprecate for real
    dep = Gem::Deprecate.skip_during { Gem::Dependency.new name, req }
    dep.prerelease = prerelease

    if local? then
      if prerelease and not both? then
        alert_warning "prereleases are always shown locally"
      end

      display_header 'LOCAL'

      specs = Gem::Specification.find_all { |s|
        s.name =~ name and req =~ s.version
      }

      spec_tuples = specs.map do |spec|
        [spec.name_tuple, spec]
      end

      output_query_results spec_tuples
    end

    if remote? then
      display_header 'REMOTE'

      fetcher = Gem::SpecFetcher.fetcher

      type = if options[:all]
               if options[:prerelease]
                 :complete
               else
                 :released
               end
             elsif options[:prerelease]
               :prerelease
             else
               :latest
             end

      if name.source.empty?
        spec_tuples = fetcher.detect(type) { true }
      else
        spec_tuples = fetcher.detect(type) do |name_tuple|
          name === name_tuple.name
        end
      end

      output_query_results spec_tuples
    end
  end

  ##
  # Check if gem +name+ version +version+ is installed.

  def installed?(name, req = Gem::Requirement.default)
    Gem::Specification.any? { |s| s.name =~ name and req =~ s.version }
  end

  def output_query_results(spec_tuples)
    output = []
    versions = Hash.new { |h,name| h[name] = [] }

    spec_tuples.each do |spec_tuple, source|
      versions[spec_tuple.name] << [spec_tuple, source]
    end

    versions = versions.sort_by do |(n,_),_|
      n.downcase
    end

    output_versions output, versions

    say output.join(options[:details] ? "\n\n" : "\n")
  end

  def output_versions output, versions
    versions.each do |gem_name, matching_tuples|
      matching_tuples = matching_tuples.sort_by { |n,_| n.version }.reverse

      platforms = Hash.new { |h,version| h[version] = [] }

      matching_tuples.each do |n, _|
        platforms[n.version] << n.platform if n.platform
      end

      seen = {}

      matching_tuples.delete_if do |n,_|
        if seen[n.version] then
          true
        else
          seen[n.version] = true
          false
        end
      end

      output << clean_text(make_entry(matching_tuples, platforms))
    end
  end

  def entry_details entry, detail_tuple, specs, platforms
    return unless options[:details]

    name_tuple, spec = detail_tuple

    spec = spec.fetch_spec name_tuple unless Gem::Specification === spec

    entry << "\n"

    spec_platforms   entry, platforms
    spec_authors     entry, spec
    spec_homepage    entry, spec
    spec_license     entry, spec
    spec_loaded_from entry, spec, specs
    spec_summary     entry, spec
  end

  def entry_versions entry, name_tuples, platforms
    return unless options[:versions]

    list =
      if platforms.empty? or options[:details] then
        name_tuples.map { |n| n.version }.uniq
      else
        platforms.sort.reverse.map do |version, pls|
          if pls == [Gem::Platform::RUBY] then
            version
          else
            ruby = pls.delete Gem::Platform::RUBY
            platform_list = [ruby, *pls.sort].compact
            "#{version} #{platform_list.join ' '}"
          end
        end
      end

    entry << " (#{list.join ', '})"
  end

  def make_entry entry_tuples, platforms
    detail_tuple = entry_tuples.first

    name_tuples, specs = entry_tuples.flatten.partition do |item|
      Gem::NameTuple === item
    end

    entry = [name_tuples.first.name]

    entry_versions entry, name_tuples, platforms
    entry_details  entry, detail_tuple, specs, platforms

    entry.join
  end

  def spec_authors entry, spec
    authors = "Author#{spec.authors.length > 1 ? 's' : ''}: "
    authors << spec.authors.join(', ')
    entry << format_text(authors, 68, 4)
  end

  def spec_homepage entry, spec
    return if spec.homepage.nil? or spec.homepage.empty?

    entry << "\n" << format_text("Homepage: #{spec.homepage}", 68, 4)
  end

  def spec_license entry, spec
    return if spec.license.nil? or spec.license.empty?

    licenses = "License#{spec.licenses.length > 1 ? 's' : ''}: "
    licenses << spec.licenses.join(', ')
    entry << "\n" << format_text(licenses, 68, 4)
  end

  def spec_loaded_from entry, spec, specs
    return unless spec.loaded_from

    if specs.length == 1 then
      default = spec.default_gem? ? ' (default)' : nil
      entry << "\n" << "    Installed at#{default}: #{spec.base_dir}"
    else
      label = 'Installed at'
      specs.each do |s|
        version = s.version.to_s
        version << ', default' if s.default_gem?
        entry << "\n" << "    #{label} (#{version}): #{s.base_dir}"
        label = ' ' * label.length
      end
    end
  end

  def spec_platforms entry, platforms
    non_ruby = platforms.any? do |_, pls|
      pls.any? { |pl| pl != Gem::Platform::RUBY }
    end

    return unless non_ruby

    if platforms.length == 1 then
      title = platforms.values.length == 1 ? 'Platform' : 'Platforms'
      entry << "    #{title}: #{platforms.values.sort.join ', '}\n"
    else
      entry << "    Platforms:\n"
      platforms.sort_by do |version,|
        version
      end.each do |version, pls|
        label = "        #{version}: "
        data = format_text pls.sort.join(', '), 68, label.length
        data[0, label.length] = label
        entry << data << "\n"
      end
    end
  end

  def spec_summary entry, spec
    summary = truncate_text(spec.summary, "the summary for #{spec.full_name}")
    entry << "\n\n" << format_text(summary, 68, 4)
  end

end

lib64/ruby/2.2.0/rubygems/commands/specification_command.rb000064400000006433150402106250017406 0ustar00require 'rubygems/command'
require 'rubygems/local_remote_options'
require 'rubygems/version_option'
require 'rubygems/package'

class Gem::Commands::SpecificationCommand < Gem::Command

  include Gem::LocalRemoteOptions
  include Gem::VersionOption

  def initialize
    Gem.load_yaml

    super 'specification', 'Display gem specification (in yaml)',
          :domain => :local, :version => Gem::Requirement.default,
          :format => :yaml

    add_version_option('examine')
    add_platform_option
    add_prerelease_option

    add_option('--all', 'Output specifications for all versions of',
               'the gem') do |value, options|
      options[:all] = true
    end

    add_option('--ruby', 'Output ruby format') do |value, options|
      options[:format] = :ruby
    end

    add_option('--yaml', 'Output YAML format') do |value, options|
      options[:format] = :yaml
    end

    add_option('--marshal', 'Output Marshal format') do |value, options|
      options[:format] = :marshal
    end

    add_local_remote_options
  end

  def arguments # :nodoc:
    <<-ARGS
GEMFILE       name of gem to show the gemspec for
FIELD         name of gemspec field to show
    ARGS
  end

  def defaults_str # :nodoc:
    "--local --version '#{Gem::Requirement.default}' --yaml"
  end

  def description # :nodoc:
    <<-EOF
The specification command allows you to extract the specification from
a gem for examination.

The specification can be output in YAML, ruby or Marshal formats.

Specific fields in the specification can be extracted in YAML format:

  $ gem spec rake summary
  --- Ruby based make-like utility.
  ...

    EOF
  end

  def usage # :nodoc:
    "#{program_name} [GEMFILE] [FIELD]"
  end

  def execute
    specs = []
    gem = options[:args].shift

    unless gem then
      raise Gem::CommandLineError,
            "Please specify a gem name or file on the command line"
    end

    case v = options[:version]
    when String
      req = Gem::Requirement.create v
    when Gem::Requirement
      req = v
    else
      raise Gem::CommandLineError, "Unsupported version type: '#{v}'"
    end

    if !req.none? and options[:all]
      alert_error "Specify --all or -v, not both"
      terminate_interaction 1
    end

    if options[:all]
      dep = Gem::Dependency.new gem
    else
      dep = Gem::Dependency.new gem, req
    end

    field = get_one_optional_argument

    raise Gem::CommandLineError, "--ruby and FIELD are mutually exclusive" if
      field and options[:format] == :ruby

    if local? then
      if File.exist? gem then
        specs << Gem::Package.new(gem).spec rescue nil
      end

      if specs.empty? then
        specs.push(*dep.matching_specs)
      end
    end

    if remote? then
      dep.prerelease = options[:prerelease]
      found, _ = Gem::SpecFetcher.fetcher.spec_for_dependency dep

      specs.push(*found.map { |spec,| spec })
    end

    if specs.empty? then
      alert_error "No gem matching '#{dep}' found"
      terminate_interaction 1
    end

    unless options[:all] then
      specs = [specs.max_by { |s| s.version }]
    end

    specs.each do |s|
      s = s.send field if field

      say case options[:format]
          when :ruby then s.to_ruby
          when :marshal then Marshal.dump s
          else s.to_yaml
          end

      say "\n"
    end
  end
end
lib64/ruby/2.2.0/rubygems/commands/owner_command.rb000064400000004536150402106250015722 0ustar00require 'rubygems/command'
require 'rubygems/local_remote_options'
require 'rubygems/gemcutter_utilities'

class Gem::Commands::OwnerCommand < Gem::Command
  include Gem::LocalRemoteOptions
  include Gem::GemcutterUtilities

  def description # :nodoc:
    <<-EOF
The owner command lets you add and remove owners of a gem on a push
server (the default is https://rubygems.org).

The owner of a gem has the permission to push new versions, yank existing
versions or edit the HTML page of the gem.  Be careful of who you give push
permission to.
    EOF
  end

  def arguments # :nodoc:
    "GEM       gem to manage owners for"
  end

  def usage # :nodoc:
    "#{program_name} GEM"
  end

  def initialize
    super 'owner', 'Manage gem owners of a gem on the push server'
    add_proxy_option
    add_key_option
    defaults.merge! :add => [], :remove => []

    add_option '-a', '--add EMAIL', 'Add an owner' do |value, options|
      options[:add] << value
    end

    add_option '-r', '--remove EMAIL', 'Remove an owner' do |value, options|
      options[:remove] << value
    end

    add_option '-h', '--host HOST', 'Use another gemcutter-compatible host' do |value, options|
      options[:host] = value
    end
  end

  def execute
    @host = options[:host]

    sign_in
    name = get_one_gem_name

    add_owners    name, options[:add]
    remove_owners name, options[:remove]
    show_owners   name
  end

  def show_owners name
    response = rubygems_api_request :get, "api/v1/gems/#{name}/owners.yaml" do |request|
      request.add_field "Authorization", api_key
    end

    with_response response do |resp|
      owners = YAML.load resp.body

      say "Owners for gem: #{name}"
      owners.each do |owner|
        say "- #{owner['email']}"
      end
    end
  end

  def add_owners name, owners
    manage_owners :post, name, owners
  end

  def remove_owners name, owners
    manage_owners :delete, name, owners
  end

  def manage_owners method, name, owners
    owners.each do |owner|
      begin
        response = rubygems_api_request method, "api/v1/gems/#{name}/owners" do |request|
          request.set_form_data 'email' => owner
          request.add_field "Authorization", api_key
        end

        action = method == :delete ? "Removing" : "Adding"

        with_response response, "#{action} #{owner}"
      rescue
        # ignore
      end
    end
  end

end

lib64/ruby/2.2.0/rubygems/commands/search_command.rb000064400000001527150402106250016032 0ustar00require 'rubygems/command'
require 'rubygems/commands/query_command'

class Gem::Commands::SearchCommand < Gem::Commands::QueryCommand

  def initialize
    super 'search', 'Display remote gems whose name matches REGEXP'

    remove_option '--name-matches'

    defaults[:domain] = :remote
  end

  def arguments # :nodoc:
    "REGEXP        regexp to search for in gem name"
  end

  def defaults_str # :nodoc:
    "--remote --no-details"
  end

  def description # :nodoc:
    <<-EOF
The search command displays remote gems whose name matches the given
regexp.

The --details option displays additional details from the gem but will
take a little longer to complete as it must download the information
individually from the index.

To list local gems use the list command.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} [REGEXP]"
  end

end

lib64/ruby/2.2.0/rubygems/commands/which_command.rb000064400000004215150402106250015664 0ustar00require 'rubygems/command'

class Gem::Commands::WhichCommand < Gem::Command
  def initialize
    super 'which', 'Find the location of a library file you can require',
          :search_gems_first => false, :show_all => false

    add_option '-a', '--[no-]all', 'show all matching files' do |show_all, options|
      options[:show_all] = show_all
    end

    add_option '-g', '--[no-]gems-first',
               'search gems before non-gems' do |gems_first, options|
      options[:search_gems_first] = gems_first
    end
  end

  def arguments # :nodoc:
    "FILE          name of file to find"
  end

  def defaults_str # :nodoc:
    "--no-gems-first --no-all"
  end

  def description # :nodoc:
    <<-EOF
The which command is like the shell which command and shows you where
the file you wish to require lives.

You can use the which command to help determine why you are requiring a
version you did not expect or to look at the content of a file you are
requiring to see why it does not behave as you expect.
    EOF
  end

  def execute
    found = true

    options[:args].each do |arg|
      arg = arg.sub(/#{Regexp.union(*Gem.suffixes)}$/, '')
      dirs = $LOAD_PATH

      spec = Gem::Specification.find_by_path arg

      if spec then
        if options[:search_gems_first] then
          dirs = spec.full_require_paths + $LOAD_PATH
        else
          dirs = $LOAD_PATH + spec.full_require_paths
        end
      end

      # TODO: this is totally redundant and stupid
      paths = find_paths arg, dirs

      if paths.empty? then
        alert_error "Can't find ruby library file or shared library #{arg}"

        found &&= false
      else
        say paths
      end
    end

    terminate_interaction 1 unless found
  end

  def find_paths(package_name, dirs)
    result = []

    dirs.each do |dir|
      Gem.suffixes.each do |ext|
        full_path = File.join dir, "#{package_name}#{ext}"
        if File.exist? full_path and not File.directory? full_path then
          result << full_path
          return result unless options[:show_all]
        end
      end
    end

    result
  end

  def usage # :nodoc:
    "#{program_name} FILE [FILE ...]"
  end

end

lib64/ruby/2.2.0/rubygems/commands/yank_command.rb000064400000005245150402106250015530 0ustar00require 'rubygems/command'
require 'rubygems/local_remote_options'
require 'rubygems/version_option'
require 'rubygems/gemcutter_utilities'

class Gem::Commands::YankCommand < Gem::Command
  include Gem::LocalRemoteOptions
  include Gem::VersionOption
  include Gem::GemcutterUtilities

  def description # :nodoc:
    <<-EOF
The yank command removes a gem you pushed to a server from the server's
index.

Note that if you push a gem to rubygems.org the yank command does not
prevent other people from downloading the gem via the download link.

Once you have pushed a gem several downloads will happen automatically
via the webhooks.  If you accidentally pushed passwords or other sensitive
data you will need to change them immediately and yank your gem.

If you are yanking a gem due to intellectual property reasons contact
http://help.rubygems.org for permanant removal.  Be sure to mention this
as the reason for the removal request.
    EOF
  end

  def arguments # :nodoc:
    "GEM       name of gem"
  end

  def usage # :nodoc:
    "#{program_name} GEM -v VERSION [-p PLATFORM] [--undo] [--key KEY_NAME]"
  end

  def initialize
    super 'yank', 'Remove a pushed gem from the index'

    add_version_option("remove")
    add_platform_option("remove")

    add_option('--undo') do |value, options|
      options[:undo] = true
    end

    add_key_option
  end

  def execute
    sign_in

    version   = get_version_from_requirements(options[:version])
    platform  = get_platform_from_requirements(options)

    if version then
      if options[:undo] then
        unyank_gem(version, platform)
      else
        yank_gem(version, platform)
      end
    else
      say "A version argument is required: #{usage}"
      terminate_interaction
    end
  end

  def yank_gem(version, platform)
    say "Yanking gem from #{self.host}..."
    yank_api_request(:delete, version, platform, "api/v1/gems/yank")
  end

  def unyank_gem(version, platform)
    say "Unyanking gem from #{host}..."
    yank_api_request(:put, version, platform, "api/v1/gems/unyank")
  end

  private

  def yank_api_request(method, version, platform, api)
    name = get_one_gem_name
    response = rubygems_api_request(method, api) do |request|
      request.add_field("Authorization", api_key)

      data = {
        'gem_name' => name,
        'version' => version,
      }
      data['platform'] = platform if platform

      request.set_form_data data
    end
    say response.body
  end

  def get_version_from_requirements(requirements)
    requirements.requirements.first[1].version
  rescue
    nil
  end

  def get_platform_from_requirements(requirements)
    Gem.platforms[1].to_s if requirements.key? :added_platform
  end

end

lib64/ruby/2.2.0/rubygems/commands/lock_command.rb000064400000005263150402106250015516 0ustar00require 'rubygems/command'

class Gem::Commands::LockCommand < Gem::Command

  def initialize
    super 'lock', 'Generate a lockdown list of gems',
          :strict => false

    add_option '-s', '--[no-]strict',
               'fail if unable to satisfy a dependency' do |strict, options|
      options[:strict] = strict
    end
  end

  def arguments # :nodoc:
    "GEMNAME       name of gem to lock\nVERSION       version of gem to lock"
  end

  def defaults_str # :nodoc:
    "--no-strict"
  end

  def description # :nodoc:
    <<-EOF
The lock command will generate a list of +gem+ statements that will lock down
the versions for the gem given in the command line.  It will specify exact
versions in the requirements list to ensure that the gems loaded will always
be consistent.  A full recursive search of all effected gems will be
generated.

Example:

  gem lock rails-1.0.0 > lockdown.rb

will produce in lockdown.rb:

  require "rubygems"
  gem 'rails', '= 1.0.0'
  gem 'rake', '= 0.7.0.1'
  gem 'activesupport', '= 1.2.5'
  gem 'activerecord', '= 1.13.2'
  gem 'actionpack', '= 1.11.2'
  gem 'actionmailer', '= 1.1.5'
  gem 'actionwebservice', '= 1.0.0'

Just load lockdown.rb from your application to ensure that the current
versions are loaded.  Make sure that lockdown.rb is loaded *before* any
other require statements.

Notice that rails 1.0.0 only requires that rake 0.6.2 or better be used.
Rake-0.7.0.1 is the most recent version installed that satisfies that, so we
lock it down to the exact version.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} GEMNAME-VERSION [GEMNAME-VERSION ...]"
  end

  def complain(message)
    if options[:strict] then
      raise Gem::Exception, message
    else
      say "# #{message}"
    end
  end

  def execute
    say "require 'rubygems'"

    locked = {}

    pending = options[:args]

    until pending.empty? do
      full_name = pending.shift

      spec = Gem::Specification.load spec_path(full_name)

      if spec.nil? then
        complain "Could not find gem #{full_name}, try using the full name"
        next
      end

      say "gem '#{spec.name}', '= #{spec.version}'" unless locked[spec.name]
      locked[spec.name] = true

      spec.runtime_dependencies.each do |dep|
        next if locked[dep.name]
        candidates = dep.matching_specs

        if candidates.empty? then
          complain "Unable to satisfy '#{dep}' from currently installed gems"
        else
          pending << candidates.last.full_name
        end
      end
    end
  end

  def spec_path(gem_full_name)
    gemspecs = Gem.path.map { |path|
      File.join path, "specifications", "#{gem_full_name}.gemspec"
    }

    gemspecs.find { |path| File.exist? path }
  end

end

lib64/ruby/2.2.0/rubygems/commands/list_command.rb000064400000001622150402106250015534 0ustar00require 'rubygems/command'
require 'rubygems/commands/query_command'

##
# An alternate to Gem::Commands::QueryCommand that searches for gems starting
# with the the supplied argument.

class Gem::Commands::ListCommand < Gem::Commands::QueryCommand

  def initialize
    super 'list', 'Display local gems whose name matches REGEXP'

    remove_option('--name-matches')
  end

  def arguments # :nodoc:
    "REGEXP        regexp to look for in gem name"
  end

  def defaults_str # :nodoc:
    "--local --no-details"
  end

  def description # :nodoc:
    <<-EOF
The list command is used to view the gems you have installed locally.

The --details option displays additional details including the summary, the
homepage, the author, the locations of different versions of the gem.

To search for remote gems use the search command.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} [STRING ...]"
  end

end

lib64/ruby/2.2.0/rubygems/commands/generate_index_command.rb000064400000005027150402106250017545 0ustar00require 'rubygems/command'
require 'rubygems/indexer'

##
# Generates a index files for use as a gem server.
#
# See `gem help generate_index`

class Gem::Commands::GenerateIndexCommand < Gem::Command

  def initialize
    super 'generate_index',
          'Generates the index files for a gem server directory',
          :directory => '.', :build_modern => true

    add_option '-d', '--directory=DIRNAME',
               'repository base dir containing gems subdir' do |dir, options|
      options[:directory] = File.expand_path dir
    end

    add_option '--[no-]modern',
               'Generate indexes for RubyGems',
               '(always true)' do |value, options|
      options[:build_modern] = value
    end

    add_option '--update',
               'Update modern indexes with gems added',
               'since the last update' do |value, options|
      options[:update] = value
    end
  end

  def defaults_str # :nodoc:
    "--directory . --modern"
  end

  def description # :nodoc:
    <<-EOF
The generate_index command creates a set of indexes for serving gems
statically.  The command expects a 'gems' directory under the path given to
the --directory option.  The given directory will be the directory you serve
as the gem repository.

For `gem generate_index --directory /path/to/repo`, expose /path/to/repo via
your HTTP server configuration (not /path/to/repo/gems).

When done, it will generate a set of files like this:

  gems/*.gem                                   # .gem files you want to
                                               # index

  specs.<version>.gz                           # specs index
  latest_specs.<version>.gz                    # latest specs index
  prerelease_specs.<version>.gz                # prerelease specs index
  quick/Marshal.<version>/<gemname>.gemspec.rz # Marshal quick index file

The .rz extension files are compressed with the inflate algorithm.
The Marshal version number comes from ruby's Marshal::MAJOR_VERSION and
Marshal::MINOR_VERSION constants.  It is used to ensure compatibility.
    EOF
  end

  def execute
    # This is always true because it's the only way now.
    options[:build_modern] = true

    if not File.exist?(options[:directory]) or
       not File.directory?(options[:directory]) then
      alert_error "unknown directory name #{directory}."
      terminate_interaction 1
    else
      indexer = Gem::Indexer.new options.delete(:directory), options

      if options[:update] then
        indexer.update_index
      else
        indexer.generate_index
      end
    end
  end

end

lib64/ruby/2.2.0/rubygems/commands/mirror_command.rb000064400000001122150402106250016066 0ustar00require 'rubygems/command'

unless defined? Gem::Commands::MirrorCommand
  class Gem::Commands::MirrorCommand < Gem::Command
    def initialize
      super('mirror', 'Mirror all gem files (requires rubygems-mirror)')
      begin
        Gem::Specification.find_by_name('rubygems-mirror').activate
      rescue Gem::LoadError
        # no-op
      end
    end

    def description # :nodoc:
      <<-EOF
The mirror command has been moved to the rubygems-mirror gem.
      EOF
    end

    def execute
      alert_error "Install the rubygems-mirror gem for the mirror command"
    end

  end
end
lib64/ruby/2.2.0/rubygems/commands/check_command.rb000064400000004321150402106250015635 0ustar00require 'rubygems/command'
require 'rubygems/version_option'
require 'rubygems/validator'
require 'rubygems/doctor'

class Gem::Commands::CheckCommand < Gem::Command

  include Gem::VersionOption

  def initialize
    super 'check', 'Check a gem repository for added or missing files',
          :alien => true, :doctor => false, :dry_run => false, :gems => true

    add_option('-a', '--[no-]alien',
               'Report "unmanaged" or rogue files in the',
               'gem repository') do |value, options|
      options[:alien] = value
    end

    add_option('--[no-]doctor',
               'Clean up uninstalled gems and broken',
               'specifications') do |value, options|
      options[:doctor] = value
    end

    add_option('--[no-]dry-run',
               'Do not remove files, only report what',
               'would be removed') do |value, options|
      options[:dry_run] = value
    end

    add_option('--[no-]gems',
               'Check installed gems for problems') do |value, options|
      options[:gems] = value
    end

    add_version_option 'check'
  end

  def check_gems
    say 'Checking gems...'
    say
    gems = get_all_gem_names rescue []

    Gem::Validator.new.alien(gems).sort.each do |key, val|
      unless val.empty? then
        say "#{key} has #{val.size} problems"
        val.each do |error_entry|
          say "  #{error_entry.path}:"
          say "    #{error_entry.problem}"
        end
      else
        say "#{key} is error-free" if Gem.configuration.verbose
      end
      say
    end
  end

  def doctor
    say 'Checking for files from uninstalled gems...'
    say

    Gem.path.each do |gem_repo|
      doctor = Gem::Doctor.new gem_repo, options[:dry_run]
      doctor.doctor
    end
  end

  def execute
    check_gems if options[:gems]
    doctor if options[:doctor]
  end

  def arguments # :nodoc:
    'GEMNAME       name of gem to check'
  end

  def defaults_str # :nodoc:
    '--gems --alien'
  end

  def description # :nodoc:
    <<-EOF
The check command can list and repair problems with installed gems and
specifications and will clean up gems that have been partially uninstalled.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} [OPTIONS] [GEMNAME ...]"
  end

end
lib64/ruby/2.2.0/rubygems/commands/outdated_command.rb000064400000001466150402106250016400 0ustar00require 'rubygems/command'
require 'rubygems/local_remote_options'
require 'rubygems/spec_fetcher'
require 'rubygems/version_option'

class Gem::Commands::OutdatedCommand < Gem::Command

  include Gem::LocalRemoteOptions
  include Gem::VersionOption

  def initialize
    super 'outdated', 'Display all gems that need updates'

    add_local_remote_options
    add_platform_option
  end

  def description # :nodoc:
    <<-EOF
The outdated command lists gems you may wish to upgrade to a newer version.

You can check for dependency mismatches using the dependency command and
update the gems with the update or install commands.
    EOF
  end

  def execute
    Gem::Specification.outdated_and_latest_version.each do |spec, remote_version|
      say "#{spec.name} (#{spec.version} < #{remote_version})"
    end
  end
end
lib64/ruby/2.2.0/rubygems/commands/setup_command.rb000064400000031735150402106250015731 0ustar00require 'rubygems/command'

##
# Installs RubyGems itself.  This command is ordinarily only available from a
# RubyGems checkout or tarball.

class Gem::Commands::SetupCommand < Gem::Command
  HISTORY_HEADER = /^===\s*[\d.]+\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/
  VERSION_MATCHER = /^===\s*([\d.]+)\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/

  def initialize
    require 'tmpdir'

    super 'setup', 'Install RubyGems',
          :format_executable => true, :document => %w[ri],
          :site_or_vendor => 'sitelibdir',
          :destdir => '', :prefix => '', :previous_version => ''

    add_option '--previous-version=VERSION',
               'Previous version of rubygems',
               'Used for changelog processing' do |version, options|
      options[:previous_version] = version
    end

    add_option '--prefix=PREFIX',
               'Prefix path for installing RubyGems',
               'Will not affect gem repository location' do |prefix, options|
      options[:prefix] = File.expand_path prefix
    end

    add_option '--destdir=DESTDIR',
               'Root directory to install RubyGems into',
               'Mainly used for packaging RubyGems' do |destdir, options|
      options[:destdir] = File.expand_path destdir
    end

    add_option '--[no-]vendor',
               'Install into vendorlibdir not sitelibdir' do |vendor, options|
      options[:site_or_vendor] = vendor ? 'vendorlibdir' : 'sitelibdir'
    end

    add_option '--[no-]format-executable',
               'Makes `gem` match ruby',
               'If ruby is ruby18, gem will be gem18' do |value, options|
      options[:format_executable] = value
    end

    add_option '--[no-]document [TYPES]', Array,
               'Generate documentation for RubyGems.',
               'List the documentation types you wish to',
               'generate.  For example: rdoc,ri' do |value, options|
      options[:document] = case value
                           when nil   then %w[rdoc ri]
                           when false then []
                           else            value
                           end
    end

    add_option '--[no-]rdoc',
               'Generate RDoc documentation for RubyGems' do |value, options|
      if value then
        options[:document] << 'rdoc'
      else
        options[:document].delete 'rdoc'
      end

      options[:document].uniq!
    end

    add_option '--[no-]ri',
               'Generate RI documentation for RubyGems' do |value, options|
      if value then
        options[:document] << 'ri'
      else
        options[:document].delete 'ri'
      end

      options[:document].uniq!
    end

    @verbose = nil
  end

  def check_ruby_version
    required_version = Gem::Requirement.new '>= 1.8.7'

    unless required_version.satisfied_by? Gem.ruby_version then
      alert_error "Expected Ruby version #{required_version}, is #{Gem.ruby_version}"
      terminate_interaction 1
    end
  end

  def defaults_str # :nodoc:
    "--format-executable --document ri"
  end

  def description # :nodoc:
    <<-EOF
Installs RubyGems itself.

RubyGems installs RDoc for itself in GEM_HOME.  By default this is:
  #{Gem.dir}

If you prefer a different directory, set the GEM_HOME environment variable.

RubyGems will install the gem command with a name matching ruby's
prefix and suffix.  If ruby was installed as `ruby18`, gem will be
installed as `gem18`.

By default, this RubyGems will install gem as:
  #{Gem.default_exec_format % 'gem'}
    EOF
  end

  def execute
    @verbose = Gem.configuration.really_verbose

    install_destdir = options[:destdir]

    unless install_destdir.empty? then
      ENV['GEM_HOME'] ||= File.join(install_destdir,
                                    Gem.default_dir.gsub(/^[a-zA-Z]:/, ''))
    end

    check_ruby_version

    require 'fileutils'
    if Gem.configuration.really_verbose then
      extend FileUtils::Verbose
    else
      extend FileUtils
    end

    lib_dir, bin_dir = make_destination_dirs install_destdir

    install_lib lib_dir

    install_executables bin_dir

    remove_old_bin_files bin_dir

    remove_old_lib_files lib_dir

    say "RubyGems #{Gem::VERSION} installed"

    uninstall_old_gemcutter

    documentation_success = install_rdoc

    say
    if @verbose then
      say "-" * 78
      say
    end

    if options[:previous_version].empty?
      options[:previous_version] = Gem::VERSION.sub(/[0-9]+$/, '0')
    end

    options[:previous_version] = Gem::Version.new(options[:previous_version])

    show_release_notes

    say
    say "-" * 78
    say

    say "RubyGems installed the following executables:"
    say @bin_file_names.map { |name| "\t#{name}\n" }
    say

    unless @bin_file_names.grep(/#{File::SEPARATOR}gem$/) then
      say "If `gem` was installed by a previous RubyGems installation, you may need"
      say "to remove it by hand."
      say
    end

    if documentation_success
      if options[:document].include? 'rdoc' then
        say "Rdoc documentation was installed. You may now invoke:"
        say "  gem server"
        say "and then peruse beautifully formatted documentation for your gems"
        say "with your web browser."
        say "If you do not wish to install this documentation in the future, use the"
        say "--no-document flag, or set it as the default in your ~/.gemrc file. See"
        say "'gem help env' for details."
        say
      end

      if options[:document].include? 'ri' then
        say "Ruby Interactive (ri) documentation was installed. ri is kind of like man "
        say "pages for ruby libraries. You may access it like this:"
        say "  ri Classname"
        say "  ri Classname.class_method"
        say "  ri Classname#instance_method"
        say "If you do not wish to install this documentation in the future, use the"
        say "--no-document flag, or set it as the default in your ~/.gemrc file. See"
        say "'gem help env' for details."
        say
      end
    end
  end

  def install_executables(bin_dir)
    say "Installing gem executable" if @verbose

    @bin_file_names = []

    Dir.chdir 'bin' do
      bin_files = Dir['*']

      bin_files.delete 'update_rubygems'

      bin_files.each do |bin_file|
        bin_file_formatted = if options[:format_executable] then
                               Gem.default_exec_format % bin_file
                             else
                               bin_file
                             end

        dest_file = File.join bin_dir, bin_file_formatted
        bin_tmp_file = File.join Dir.tmpdir, "#{bin_file}.#{$$}"

        begin
          bin = File.readlines bin_file
          bin[0] = "#!#{Gem.ruby}\n"

          File.open bin_tmp_file, 'w' do |fp|
            fp.puts bin.join
          end

          install bin_tmp_file, dest_file, :mode => 0755
          @bin_file_names << dest_file
        ensure
          rm bin_tmp_file
        end

        next unless Gem.win_platform?

        begin
          bin_cmd_file = File.join Dir.tmpdir, "#{bin_file}.bat"

          File.open bin_cmd_file, 'w' do |file|
            file.puts <<-TEXT
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"#{File.basename(Gem.ruby).chomp('"')}" "#{dest_file}" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"#{File.basename(Gem.ruby).chomp('"')}" "%~dpn0" %*
TEXT
          end

          install bin_cmd_file, "#{dest_file}.bat", :mode => 0755
        ensure
          rm bin_cmd_file
        end
      end
    end
  end

  def install_file file, dest_dir
    dest_file = File.join dest_dir, file
    dest_dir = File.dirname dest_file
    mkdir_p dest_dir unless File.directory? dest_dir

    install file, dest_file, :mode => 0644
  end

  def install_lib(lib_dir)
    say "Installing RubyGems" if @verbose

    lib_files = rb_files_in 'lib'
    pem_files = pem_files_in 'lib'

    Dir.chdir 'lib' do
      lib_files.each do |lib_file|
        install_file lib_file, lib_dir
      end

      pem_files.each do |pem_file|
        install_file pem_file, lib_dir
      end
    end
  end

  def install_rdoc
    gem_doc_dir = File.join Gem.dir, 'doc'
    rubygems_name = "rubygems-#{Gem::VERSION}"
    rubygems_doc_dir = File.join gem_doc_dir, rubygems_name

    begin
      Gem.ensure_gem_subdirectories Gem.dir
    rescue SystemCallError
      # ignore
    end

    if File.writable? gem_doc_dir and
       (not File.exist? rubygems_doc_dir or
        File.writable? rubygems_doc_dir) then
      say "Removing old RubyGems RDoc and ri" if @verbose
      Dir[File.join(Gem.dir, 'doc', 'rubygems-[0-9]*')].each do |dir|
        rm_rf dir
      end

      require 'rubygems/rdoc'

      fake_spec = Gem::Specification.new 'rubygems', Gem::VERSION
      def fake_spec.full_gem_path
        File.expand_path '../../../..', __FILE__
      end

      generate_ri   = options[:document].include? 'ri'
      generate_rdoc = options[:document].include? 'rdoc'

      rdoc = Gem::RDoc.new fake_spec, generate_rdoc, generate_ri
      rdoc.generate

      return true
    elsif @verbose then
      say "Skipping RDoc generation, #{gem_doc_dir} not writable"
      say "Set the GEM_HOME environment variable if you want RDoc generated"
    end

    return false
  end

  def make_destination_dirs(install_destdir)
    lib_dir, bin_dir = Gem.default_rubygems_dirs

    unless lib_dir
      lib_dir, bin_dir = generate_default_dirs(install_destdir)
    end

    mkdir_p lib_dir
    mkdir_p bin_dir

    return lib_dir, bin_dir
  end

  def generate_default_dirs(install_destdir)
    prefix = options[:prefix]
    site_or_vendor = options[:site_or_vendor]

    if prefix.empty? then
      lib_dir = RbConfig::CONFIG[site_or_vendor]
      bin_dir = RbConfig::CONFIG['bindir']
    else
      # Apple installed RubyGems into libdir, and RubyGems <= 1.1.0 gets
      # confused about installation location, so switch back to
      # sitelibdir/vendorlibdir.
      if defined?(APPLE_GEM_HOME) and
        # just in case Apple and RubyGems don't get this patched up proper.
        (prefix == RbConfig::CONFIG['libdir'] or
         # this one is important
         prefix == File.join(RbConfig::CONFIG['libdir'], 'ruby')) then
         lib_dir = RbConfig::CONFIG[site_or_vendor]
         bin_dir = RbConfig::CONFIG['bindir']
      else
        lib_dir = File.join prefix, 'lib'
        bin_dir = File.join prefix, 'bin'
      end
    end

    unless install_destdir.empty? then
      lib_dir = File.join install_destdir, lib_dir.gsub(/^[a-zA-Z]:/, '')
      bin_dir = File.join install_destdir, bin_dir.gsub(/^[a-zA-Z]:/, '')
    end

    [lib_dir, bin_dir]
  end

  def pem_files_in dir
    Dir.chdir dir do
      Dir[File.join('**', '*pem')]
    end
  end

  def rb_files_in dir
    Dir.chdir dir do
      Dir[File.join('**', '*rb')]
    end
  end

  def remove_old_bin_files(bin_dir)
    old_bin_files = {
      'gem_mirror' => 'gem mirror',
      'gem_server' => 'gem server',
      'gemlock' => 'gem lock',
      'gemri' => 'ri',
      'gemwhich' => 'gem which',
      'index_gem_repository.rb' => 'gem generate_index',
    }

    old_bin_files.each do |old_bin_file, new_name|
      old_bin_path = File.join bin_dir, old_bin_file
      next unless File.exist? old_bin_path

      deprecation_message = "`#{old_bin_file}` has been deprecated.  Use `#{new_name}` instead."

      File.open old_bin_path, 'w' do |fp|
        fp.write <<-EOF
#!#{Gem.ruby}

abort "#{deprecation_message}"
    EOF
      end

      next unless Gem.win_platform?

      File.open "#{old_bin_path}.bat", 'w' do |fp|
        fp.puts %{@ECHO.#{deprecation_message}}
      end
    end
  end

  def remove_old_lib_files lib_dir
    rubygems_dir = File.join lib_dir, 'rubygems'
    lib_files = rb_files_in 'lib/rubygems'

    old_lib_files = rb_files_in rubygems_dir

    to_remove = old_lib_files - lib_files

    to_remove.delete_if do |file|
      file.start_with? 'defaults'
    end

    Dir.chdir rubygems_dir do
      to_remove.each do |file|
        FileUtils.rm_f file

        warn "unable to remove old file #{file} please remove it by hand" if
          File.exist? file
      end
    end
  end

  def show_release_notes
    release_notes = File.join Dir.pwd, 'History.txt'

    release_notes =
      if File.exist? release_notes then
        history = File.read release_notes

        history.force_encoding Encoding::UTF_8 if
          Object.const_defined? :Encoding

        history = history.sub(/^# coding:.*?(?=^=)/m, '')

        text = history.split(HISTORY_HEADER)
        text.shift # correct an off-by-one generated by split
        version_lines = history.scan(HISTORY_HEADER)
        versions = history.scan(VERSION_MATCHER).flatten.map do |x|
          Gem::Version.new(x)
        end

        history_string = ""

        until versions.length == 0 or
              versions.shift < options[:previous_version] do
          history_string += version_lines.shift + text.shift
        end

        history_string
      else
        "Oh-no! Unable to find release notes!"
      end

    say release_notes
  end

  def uninstall_old_gemcutter
    require 'rubygems/uninstaller'

    ui = Gem::Uninstaller.new('gemcutter', :all => true, :ignore => true,
                              :version => '< 0.4')
    ui.uninstall
  rescue Gem::InstallError
  end

end

lib64/ruby/2.2.0/rubygems/commands/server_command.rb000064400000004552150402106250016074 0ustar00require 'rubygems/command'
require 'rubygems/server'

class Gem::Commands::ServerCommand < Gem::Command

  def initialize
    super 'server', 'Documentation and gem repository HTTP server',
          :port => 8808, :gemdir => [], :daemon => false

    OptionParser.accept :Port do |port|
      if port =~ /\A\d+\z/ then
        port = Integer port
        raise OptionParser::InvalidArgument, "#{port}: not a port number" if
          port > 65535

        port
      else
        begin
          Socket.getservbyname port
        rescue SocketError
          raise OptionParser::InvalidArgument, "#{port}: no such named service"
        end
      end
    end

    add_option '-p', '--port=PORT', :Port,
               'port to listen on' do |port, options|
      options[:port] = port
    end

    add_option '-d', '--dir=GEMDIR',
               'directories from which to serve gems',
               'multiple directories may be provided' do |gemdir, options|
      options[:gemdir] << File.expand_path(gemdir)
    end

    add_option '--[no-]daemon', 'run as a daemon' do |daemon, options|
      options[:daemon] = daemon
    end

    add_option '-b', '--bind=HOST,HOST',
               'addresses to bind', Array do |address, options|
      options[:addresses] ||= []
      options[:addresses].push(*address)
    end

    add_option '-l', '--launch[=COMMAND]',
               'launches a browser window',
               "COMMAND defaults to 'start' on Windows",
               "and 'open' on all other platforms" do |launch, options|
      launch ||= Gem.win_platform? ? 'start' : 'open'
      options[:launch] = launch
    end
  end

  def defaults_str # :nodoc:
    "--port 8808 --dir #{Gem.dir} --no-daemon"
  end

  def description # :nodoc:
    <<-EOF
The server command starts up a web server that hosts the RDoc for your
installed gems and can operate as a server for installation of gems on other
machines.

The cache files for installed gems must exist to use the server as a source
for gem installation.

To install gems from a running server, use `gem install GEMNAME --source
http://gem_server_host:8808`

You can set up a shortcut to gem server documentation using the URL:

  http://localhost:8808/rdoc?q=%s - Firefox
  http://localhost:8808/rdoc?q=* - LaunchBar

    EOF
  end

  def execute
    options[:gemdir] = Gem.path if options[:gemdir].empty?
    Gem::Server.run options
  end

end

lib64/ruby/2.2.0/rubygems/commands/update_command.rb000064400000015725150402106260016055 0ustar00require 'rubygems/command'
require 'rubygems/command_manager'
require 'rubygems/dependency_installer'
require 'rubygems/install_update_options'
require 'rubygems/local_remote_options'
require 'rubygems/spec_fetcher'
require 'rubygems/version_option'
require 'rubygems/install_message' # must come before rdoc for messaging
require 'rubygems/rdoc'

class Gem::Commands::UpdateCommand < Gem::Command

  include Gem::InstallUpdateOptions
  include Gem::LocalRemoteOptions
  include Gem::VersionOption

  attr_reader :installer # :nodoc:

  attr_reader :updated # :nodoc:

  def initialize
    super 'update', 'Update installed gems to the latest version',
      :document => %w[rdoc ri],
      :force    => false

    add_install_update_options

    OptionParser.accept Gem::Version do |value|
      Gem::Version.new value

      value
    end

    add_option('--system [VERSION]', Gem::Version,
               'Update the RubyGems system software') do |value, options|
      value = true unless value

      options[:system] = value
    end

    add_local_remote_options
    add_platform_option
    add_prerelease_option "as update targets"

    @updated   = []
    @installer = nil
  end

  def arguments # :nodoc:
    "REGEXP        regexp to search for in gem name"
  end

  def defaults_str # :nodoc:
    "--document --no-force --install-dir #{Gem.dir}"
  end

  def description # :nodoc:
    <<-EOF
The update command will update your gems to the latest version.

The update command does not remove the previous version. Use the cleanup
command to remove old versions.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} REGEXP [REGEXP ...]"
  end

  def check_latest_rubygems version # :nodoc:
    if Gem.rubygems_version == version then
      say "Latest version currently installed. Aborting."
      terminate_interaction
    end

    options[:user_install] = false
  end

  def check_update_arguments # :nodoc:
    unless options[:args].empty? then
      alert_error "Gem names are not allowed with the --system option"
      terminate_interaction 1
    end
  end

  def execute
    if options[:system] then
      update_rubygems
      return
    end

    say "Updating installed gems"

    hig = highest_installed_gems

    gems_to_update = which_to_update hig, options[:args].uniq

    updated = update_gems gems_to_update

    updated_names = updated.map { |spec| spec.name }
    not_updated_names = options[:args].uniq - updated_names

    if updated.empty? then
      say "Nothing to update"
    else
      say "Gems updated: #{updated_names.join(' ')}"
      say "Gems already up-to-date: #{not_updated_names.join(' ')}" unless not_updated_names.empty?
    end
  end

  def fetch_remote_gems spec # :nodoc:
    dependency = Gem::Dependency.new spec.name, "> #{spec.version}"
    dependency.prerelease = options[:prerelease]

    fetcher = Gem::SpecFetcher.fetcher

    spec_tuples, errors = fetcher.search_for_dependency dependency

    error = errors.find { |e| e.respond_to? :exception }

    raise error if error

    spec_tuples
  end

  def highest_installed_gems # :nodoc:
    hig = {} # highest installed gems

    Gem::Specification.each do |spec|
      if hig[spec.name].nil? or hig[spec.name].version < spec.version then
        hig[spec.name] = spec
      end
    end

    hig
  end

  def highest_remote_version spec # :nodoc:
    spec_tuples = fetch_remote_gems spec

    matching_gems = spec_tuples.select do |g,_|
      g.name == spec.name and g.match_platform?
    end

    highest_remote_gem = matching_gems.max_by { |g,_| g.version }

    highest_remote_gem ||= [Gem::NameTuple.null]

    highest_remote_gem.first.version
  end

  def install_rubygems version # :nodoc:
    args = update_rubygems_arguments

    update_dir = File.join Gem.dir, 'gems', "rubygems-update-#{version}"

    Dir.chdir update_dir do
      say "Installing RubyGems #{version}"

      # Make sure old rubygems isn't loaded
      old = ENV["RUBYOPT"]
      ENV.delete("RUBYOPT") if old
      installed = system Gem.ruby, 'setup.rb', *args
      say "RubyGems system software updated" if installed
      ENV["RUBYOPT"] = old if old
    end
  end

  def rubygems_target_version
    version = options[:system]
    update_latest = version == true

    if update_latest then
      version     = Gem::Version.new     Gem::VERSION
      requirement = Gem::Requirement.new ">= #{Gem::VERSION}"
    else
      version     = Gem::Version.new     version
      requirement = Gem::Requirement.new version
    end

    rubygems_update         = Gem::Specification.new
    rubygems_update.name    = 'rubygems-update'
    rubygems_update.version = version

    hig = {
      'rubygems-update' => rubygems_update
    }

    gems_to_update = which_to_update hig, options[:args], :system
    _, up_ver   = gems_to_update.first

    target = if update_latest then
               up_ver
             else
               version
             end

    return target, requirement
  end

  def update_gem name, version = Gem::Requirement.default
    return if @updated.any? { |spec| spec.name == name }

    update_options = options.dup
    update_options[:prerelease] = version.prerelease?

    @installer = Gem::DependencyInstaller.new update_options

    say "Updating #{name}"
    begin
      @installer.install name, Gem::Requirement.new(version)
    rescue Gem::InstallError, Gem::DependencyError => e
      alert_error "Error installing #{name}:\n\t#{e.message}"
    end

    @installer.installed_gems.each do |spec|
      @updated << spec
    end
  end

  def update_gems gems_to_update
    gems_to_update.uniq.sort.each do |(name, version)|
      update_gem name, version
    end

    @updated
  end

  ##
  # Update RubyGems software to the latest version.

  def update_rubygems
    check_update_arguments

    version, requirement = rubygems_target_version

    check_latest_rubygems version

    update_gem 'rubygems-update', version

    installed_gems = Gem::Specification.find_all_by_name 'rubygems-update', requirement
    version        = installed_gems.last.version

    install_rubygems version
  end

  def update_rubygems_arguments # :nodoc:
    args = []
    args << '--prefix' << Gem.prefix if Gem.prefix
    # TODO use --document for >= 1.9 , --no-rdoc --no-ri < 1.9
    args << '--no-rdoc' unless options[:document].include? 'rdoc'
    args << '--no-ri'   unless options[:document].include? 'ri'
    args << '--no-format-executable' if options[:no_format_executable]
    args << '--previous-version' << Gem::VERSION if
      options[:system] == true or
        Gem::Version.new(options[:system]) >= Gem::Version.new(2)
    args
  end

  def which_to_update highest_installed_gems, gem_names, system = false
    result = []

    highest_installed_gems.each do |l_name, l_spec|
      next if not gem_names.empty? and
              gem_names.none? { |name| name == l_spec.name }

      highest_remote_ver = highest_remote_version l_spec

      if system or (l_spec.version < highest_remote_ver) then
        result << [l_spec.name, [l_spec.version, highest_remote_ver].max]
      end
    end

    result
  end

end
lib64/ruby/2.2.0/rubygems/commands/push_command.rb000064400000004654150402106260015551 0ustar00require 'rubygems/command'
require 'rubygems/local_remote_options'
require 'rubygems/gemcutter_utilities'
require 'rubygems/package'

class Gem::Commands::PushCommand < Gem::Command
  include Gem::LocalRemoteOptions
  include Gem::GemcutterUtilities

  def description # :nodoc:
    <<-EOF
The push command uploads a gem to the push server (the default is
https://rubygems.org) and adds it to the index.

The gem can be removed from the index (but only the index) using the yank
command.  For further discussion see the help for the yank command.
    EOF
  end

  def arguments # :nodoc:
    "GEM       built gem to push up"
  end

  def usage # :nodoc:
    "#{program_name} GEM"
  end

  def initialize
    super 'push', 'Push a gem up to the gem server', :host => self.host

    add_proxy_option
    add_key_option

    add_option('--host HOST',
               'Push to another gemcutter-compatible host') do |value, options|
      options[:host] = value
    end

    @host = nil
  end

  def execute
    @host = options[:host]

    sign_in @host

    send_gem get_one_gem_name
  end

  def send_gem name
    args = [:post, "api/v1/gems"]

    latest_rubygems_version = Gem.latest_rubygems_version

    if latest_rubygems_version < Gem.rubygems_version and
         Gem.rubygems_version.prerelease? and
         Gem::Version.new('2.0.0.rc.2') != Gem.rubygems_version then
      alert_error <<-ERROR
You are using a beta release of RubyGems (#{Gem::VERSION}) which is not
allowed to push gems.  Please downgrade or upgrade to a release version.

The latest released RubyGems version is #{latest_rubygems_version}

You can upgrade or downgrade to the latest release version with:

  gem update --system=#{latest_rubygems_version}

      ERROR
      terminate_interaction 1
    end

    gem_data = Gem::Package.new(name)

    unless @host then
      @host = gem_data.spec.metadata['default_gem_server']
    end

    # Always include this, even if it's nil
    args << @host

    if gem_data.spec.metadata.has_key?('allowed_push_host')
      args << gem_data.spec.metadata['allowed_push_host']
    end

    say "Pushing gem to #{@host || Gem.host}..."

    response = rubygems_api_request(*args) do |request|
      request.body = Gem.read_binary name
      request.add_field "Content-Length", request.body.size
      request.add_field "Content-Type",   "application/octet-stream"
      request.add_field "Authorization",  api_key
    end

    with_response response
  end

end

lib64/ruby/2.2.0/rubygems/commands/open_command.rb000064400000003127150402106260015525 0ustar00require 'English'
require 'rubygems/command'
require 'rubygems/version_option'
require 'rubygems/util'

class Gem::Commands::OpenCommand < Gem::Command

  include Gem::VersionOption

  def initialize
    super 'open', 'Open gem sources in editor'

    add_option('-e', '--editor EDITOR', String,
               "Opens gem sources in EDITOR") do |editor, options|
      options[:editor] = editor || get_env_editor
    end
  end

  def arguments # :nodoc:
    "GEMNAME     name of gem to open in editor"
  end

  def defaults_str # :nodoc:
    "-e #{get_env_editor}"
  end

  def description # :nodoc:
    <<-EOF
        The open command opens gem in editor and changes current path
        to gem's source directory. Editor can be specified with -e option,
        otherwise rubygems will look for editor in $EDITOR, $VISUAL and
        $GEM_EDITOR variables.
    EOF
  end

  def usage # :nodoc:
    "#{program_name} GEMNAME [-e EDITOR]"
  end

  def get_env_editor
    ENV['GEM_EDITOR'] ||
      ENV['VISUAL'] ||
      ENV['EDITOR'] ||
      'vi'
  end

  def execute
    @version = options[:version] || Gem::Requirement.default
    @editor  = options[:editor] || get_env_editor

    found = open_gem(get_one_gem_name)

    terminate_interaction 1 unless found
  end

  def open_gem name
    spec = spec_for name
    return false unless spec

    open_editor(spec.full_gem_path)
  end

  def open_editor path
    system(*@editor.split(/\s+/) + [path])
  end

  def spec_for name
    spec = Gem::Specification.find_all_by_name(name, @version).last

    return spec if spec

    say "Unable to find gem '#{name}'"
  end
end
lib64/ruby/2.2.0/rubygems/commands/sources_command.rb000064400000012276150402106260016254 0ustar00require 'rubygems/command'
require 'rubygems/remote_fetcher'
require 'rubygems/spec_fetcher'
require 'rubygems/local_remote_options'

class Gem::Commands::SourcesCommand < Gem::Command

  include Gem::LocalRemoteOptions

  def initialize
    require 'fileutils'

    super 'sources',
          'Manage the sources and cache file RubyGems uses to search for gems'

    add_option '-a', '--add SOURCE_URI', 'Add source' do |value, options|
      options[:add] = value
    end

    add_option '-l', '--list', 'List sources' do |value, options|
      options[:list] = value
    end

    add_option '-r', '--remove SOURCE_URI', 'Remove source' do |value, options|
      options[:remove] = value
    end

    add_option '-c', '--clear-all',
               'Remove all sources (clear the cache)' do |value, options|
      options[:clear_all] = value
    end

    add_option '-u', '--update', 'Update source cache' do |value, options|
      options[:update] = value
    end

    add_proxy_option
  end

  def add_source source_uri # :nodoc:
    check_rubygems_https source_uri

    source = Gem::Source.new source_uri

    begin
      if Gem.sources.include? source_uri then
        say "source #{source_uri} already present in the cache"
      else
        source.load_specs :released
        Gem.sources << source
        Gem.configuration.write

        say "#{source_uri} added to sources"
      end
    rescue URI::Error, ArgumentError
      say "#{source_uri} is not a URI"
      terminate_interaction 1
    rescue Gem::RemoteFetcher::FetchError => e
      say "Error fetching #{source_uri}:\n\t#{e.message}"
      terminate_interaction 1
    end
  end

  def check_rubygems_https source_uri # :nodoc:
    uri = URI source_uri

    if uri.scheme and uri.scheme.downcase == 'http' and
       uri.host.downcase == 'rubygems.org' then
      question = <<-QUESTION.chomp
https://rubygems.org is recommended for security over #{uri}

Do you want to add this insecure source?
      QUESTION

      terminate_interaction 1 unless ask_yes_no question
    end
  end

  def clear_all # :nodoc:
    path = Gem.spec_cache_dir
    FileUtils.rm_rf path

    unless File.exist? path then
      say "*** Removed specs cache ***"
    else
      unless File.writable? path then
        say "*** Unable to remove source cache (write protected) ***"
      else
        say "*** Unable to remove source cache ***"
      end

      terminate_interaction 1
    end
  end

  def defaults_str # :nodoc:
    '--list'
  end

  def description # :nodoc:
    <<-EOF
RubyGems fetches gems from the sources you have configured (stored in your
~/.gemrc).

The default source is https://rubygems.org, but you may have older sources
configured.  This guide will help you update your sources or configure
yourself to use your own gem server.

Without any arguments the sources lists your currently configured sources:

  $ gem sources
  *** CURRENT SOURCES ***

  https://rubygems.org

This may list multiple sources or non-rubygems sources.  You probably
configured them before or have an old `~/.gemrc`.  If you have sources you
do not recognize you should remove them.

RubyGems has been configured to serve gems via the following URLs through
its history:

* http://gems.rubyforge.org (RubyGems 1.3.6 and earlier)
* http://rubygems.org       (RubyGems 1.3.7 through 1.8.25)
* https://rubygems.org      (RubyGems 2.0.1 and newer)

Since all of these sources point to the same set of gems you only need one
of them in your list.  https://rubygems.org is recommended as it brings the
protections of an SSL connection to gem downloads.

To add a source use the --add argument:

    $ gem sources --add https://rubygems.org
    https://rubygems.org added to sources

RubyGems will check to see if gems can be installed from the source given
before it is added.

To remove a source use the --remove argument:

    $ gem sources --remove http://rubygems.org
    http://rubygems.org removed from sources

    EOF
  end

  def list # :nodoc:
    say "*** CURRENT SOURCES ***"
    say

    Gem.sources.each do |src|
      say src
    end
  end

  def list? # :nodoc:
    !(options[:add] ||
      options[:clear_all] ||
      options[:remove] ||
      options[:update])
  end

  def execute
    clear_all if options[:clear_all]

    source_uri = options[:add]
    add_source source_uri if source_uri

    source_uri = options[:remove]
    remove_source source_uri if source_uri

    update if options[:update]

    list if list?
  end

  def remove_source source_uri # :nodoc:
    unless Gem.sources.include? source_uri then
      say "source #{source_uri} not present in cache"
    else
      Gem.sources.delete source_uri
      Gem.configuration.write

      say "#{source_uri} removed from sources"
    end
  end

  def update # :nodoc:
    Gem.sources.each_source do |src|
      src.load_specs :released
      src.load_specs :latest
    end

    say "source cache successfully updated"
  end

  def remove_cache_file desc, path # :nodoc:
    FileUtils.rm_rf path

    if not File.exist?(path) then
      say "*** Removed #{desc} source cache ***"
    elsif not File.writable?(path) then
      say "*** Unable to remove #{desc} source cache (write protected) ***"
    else
      say "*** Unable to remove #{desc} source cache ***"
    end
  end

end

lib64/ruby/2.2.0/rubygems/indexer.rb000064400000032032150402106260012720 0ustar00require 'rubygems'
require 'rubygems/package'
require 'time'

begin
  gem 'builder'
  require 'builder/xchar'
rescue LoadError
end

##
# Top level class for building the gem repository index.

class Gem::Indexer

  include Gem::UserInteraction

  ##
  # Build indexes for RubyGems 1.2.0 and newer when true

  attr_accessor :build_modern

  ##
  # Index install location

  attr_reader :dest_directory

  ##
  # Specs index install location

  attr_reader :dest_specs_index

  ##
  # Latest specs index install location

  attr_reader :dest_latest_specs_index

  ##
  # Prerelease specs index install location

  attr_reader :dest_prerelease_specs_index

  ##
  # Index build directory

  attr_reader :directory

  ##
  # Create an indexer that will index the gems in +directory+.

  def initialize(directory, options = {})
    require 'fileutils'
    require 'tmpdir'
    require 'zlib'

    unless defined?(Builder::XChar) then
      raise "Gem::Indexer requires that the XML Builder library be installed:" +
            "\n\tgem install builder"
    end

    options = { :build_modern => true }.merge options

    @build_modern = options[:build_modern]

    @dest_directory = directory
    @directory = File.join(Dir.tmpdir, "gem_generate_index_#{$$}")

    marshal_name = "Marshal.#{Gem.marshal_version}"

    @master_index = File.join @directory, 'yaml'
    @marshal_index = File.join @directory, marshal_name

    @quick_dir = File.join @directory, 'quick'
    @quick_marshal_dir = File.join @quick_dir, marshal_name
    @quick_marshal_dir_base = File.join "quick", marshal_name # FIX: UGH

    @quick_index = File.join @quick_dir, 'index'
    @latest_index = File.join @quick_dir, 'latest_index'

    @specs_index = File.join @directory, "specs.#{Gem.marshal_version}"
    @latest_specs_index =
      File.join(@directory, "latest_specs.#{Gem.marshal_version}")
    @prerelease_specs_index =
      File.join(@directory, "prerelease_specs.#{Gem.marshal_version}")
    @dest_specs_index =
      File.join(@dest_directory, "specs.#{Gem.marshal_version}")
    @dest_latest_specs_index =
      File.join(@dest_directory, "latest_specs.#{Gem.marshal_version}")
    @dest_prerelease_specs_index =
      File.join(@dest_directory, "prerelease_specs.#{Gem.marshal_version}")

    @files = []
  end

  ##
  # Abbreviate the spec for downloading.  Abbreviated specs are only used for
  # searching, downloading and related activities and do not need deployment
  # specific information (e.g. list of files).  So we abbreviate the spec,
  # making it much smaller for quicker downloads.
  #--
  # TODO move to Gem::Specification

  def abbreviate(spec)
    spec.files = []
    spec.test_files = []
    spec.rdoc_options = []
    spec.extra_rdoc_files = []
    spec.cert_chain = []
    spec
  end

  ##
  # Build various indicies

  def build_indicies
    Gem::Specification.dirs = []
    Gem::Specification.add_specs(*map_gems_to_specs(gem_file_list))

    build_marshal_gemspecs
    build_modern_indicies if @build_modern

    compress_indicies
  end

  ##
  # Builds Marshal quick index gemspecs.

  def build_marshal_gemspecs
    count = Gem::Specification.count { |s| not s.default_gem? }
    progress = ui.progress_reporter count,
                                    "Generating Marshal quick index gemspecs for #{count} gems",
                                    "Complete"

    files = []

    Gem.time 'Generated Marshal quick index gemspecs' do
      Gem::Specification.each do |spec|
        next if spec.default_gem?
        spec_file_name = "#{spec.original_name}.gemspec.rz"
        marshal_name = File.join @quick_marshal_dir, spec_file_name

        marshal_zipped = Gem.deflate Marshal.dump(spec)
        open marshal_name, 'wb' do |io| io.write marshal_zipped end

        files << marshal_name

        progress.updated spec.original_name
      end

      progress.done
    end

    @files << @quick_marshal_dir

    files
  end

  ##
  # Build a single index for RubyGems 1.2 and newer

  def build_modern_index(index, file, name)
    say "Generating #{name} index"

    Gem.time "Generated #{name} index" do
      open(file, 'wb') do |io|
        specs = index.map do |*spec|
          # We have to splat here because latest_specs is an array, while the
          # others are hashes.
          spec = spec.flatten.last
          platform = spec.original_platform

          # win32-api-1.0.4-x86-mswin32-60
          unless String === platform then
            alert_warning "Skipping invalid platform in gem: #{spec.full_name}"
            next
          end

          platform = Gem::Platform::RUBY if platform.nil? or platform.empty?
          [spec.name, spec.version, platform]
        end

        specs = compact_specs(specs)
        Marshal.dump(specs, io)
      end
    end
  end

  ##
  # Builds indicies for RubyGems 1.2 and newer. Handles full, latest, prerelease

  def build_modern_indicies
    specs = Gem::Specification.reject { |s| s.default_gem? }

    prerelease, released = specs.partition { |s|
      s.version.prerelease?
    }
    latest_specs =
      Gem::Specification.latest_specs.reject { |s| s.default_gem? }

    build_modern_index(released.sort, @specs_index, 'specs')
    build_modern_index(latest_specs.sort, @latest_specs_index, 'latest specs')
    build_modern_index(prerelease.sort, @prerelease_specs_index,
                       'prerelease specs')

    @files += [@specs_index,
               "#{@specs_index}.gz",
               @latest_specs_index,
               "#{@latest_specs_index}.gz",
               @prerelease_specs_index,
               "#{@prerelease_specs_index}.gz"]
  end

  def map_gems_to_specs gems
    gems.map { |gemfile|
      if File.size(gemfile) == 0 then
        alert_warning "Skipping zero-length gem: #{gemfile}"
        next
      end

      begin
        spec = Gem::Package.new(gemfile).spec
        spec.loaded_from = gemfile

        # HACK: fuck this shit - borks all tests that use pl1
        # if File.basename(gemfile, ".gem") != spec.original_name then
        #   exp = spec.full_name
        #   exp << " (#{spec.original_name})" if
        #     spec.original_name != spec.full_name
        #   msg = "Skipping misnamed gem: #{gemfile} should be named #{exp}"
        #   alert_warning msg
        #   next
        # end

        abbreviate spec
        sanitize spec

        spec
      rescue SignalException
        alert_error "Received signal, exiting"
        raise
      rescue Exception => e
        msg = ["Unable to process #{gemfile}",
               "#{e.message} (#{e.class})",
               "\t#{e.backtrace.join "\n\t"}"].join("\n")
        alert_error msg
      end
    }.compact
  end

  ##
  # Compresses indicies on disk
  #--
  # All future files should be compressed using gzip, not deflate

  def compress_indicies
    say "Compressing indicies"

    Gem.time 'Compressed indicies' do
      if @build_modern then
        gzip @specs_index
        gzip @latest_specs_index
        gzip @prerelease_specs_index
      end
    end
  end

  ##
  # Compacts Marshal output for the specs index data source by using identical
  # objects as much as possible.

  def compact_specs(specs)
    names = {}
    versions = {}
    platforms = {}

    specs.map do |(name, version, platform)|
      names[name] = name unless names.include? name
      versions[version] = version unless versions.include? version
      platforms[platform] = platform unless platforms.include? platform

      [names[name], versions[version], platforms[platform]]
    end
  end

  ##
  # Compress +filename+ with +extension+.

  def compress(filename, extension)
    data = Gem.read_binary filename

    zipped = Gem.deflate data

    open "#{filename}.#{extension}", 'wb' do |io|
      io.write zipped
    end
  end

  ##
  # List of gem file names to index.

  def gem_file_list
    Dir[File.join(@dest_directory, "gems", '*.gem')]
  end

  ##
  # Builds and installs indicies.

  def generate_index
    make_temp_directories
    build_indicies
    install_indicies
  rescue SignalException
  ensure
    FileUtils.rm_rf @directory
  end

  ##
  # Zlib::GzipWriter wrapper that gzips +filename+ on disk.

  def gzip(filename)
    Zlib::GzipWriter.open "#{filename}.gz" do |io|
      io.write Gem.read_binary(filename)
    end
  end

  ##
  # Install generated indicies into the destination directory.

  def install_indicies
    verbose = Gem.configuration.really_verbose

    say "Moving index into production dir #{@dest_directory}" if verbose

    files = @files
    files.delete @quick_marshal_dir if files.include? @quick_dir

    if files.include? @quick_marshal_dir and not files.include? @quick_dir then
      files.delete @quick_marshal_dir

      dst_name = File.join(@dest_directory, @quick_marshal_dir_base)

      FileUtils.mkdir_p File.dirname(dst_name), :verbose => verbose
      FileUtils.rm_rf dst_name, :verbose => verbose
      FileUtils.mv(@quick_marshal_dir, dst_name,
                   :verbose => verbose, :force => true)
    end

    files = files.map do |path|
      path.sub(/^#{Regexp.escape @directory}\/?/, '') # HACK?
    end

    files.each do |file|
      src_name = File.join @directory, file
      dst_name = File.join @dest_directory, file

      FileUtils.rm_rf dst_name, :verbose => verbose
      FileUtils.mv(src_name, @dest_directory,
                   :verbose => verbose, :force => true)
    end
  end

  ##
  # Make directories for index generation

  def make_temp_directories
    FileUtils.rm_rf @directory
    FileUtils.mkdir_p @directory, :mode => 0700
    FileUtils.mkdir_p @quick_marshal_dir
  end

  ##
  # Ensure +path+ and path with +extension+ are identical.

  def paranoid(path, extension)
    data = Gem.read_binary path
    compressed_data = Gem.read_binary "#{path}.#{extension}"

    unless data == Gem.inflate(compressed_data) then
      raise "Compressed file #{compressed_path} does not match uncompressed file #{path}"
    end
  end

  ##
  # Sanitize the descriptive fields in the spec.  Sometimes non-ASCII
  # characters will garble the site index.  Non-ASCII characters will
  # be replaced by their XML entity equivalent.

  def sanitize(spec)
    spec.summary              = sanitize_string(spec.summary)
    spec.description          = sanitize_string(spec.description)
    spec.post_install_message = sanitize_string(spec.post_install_message)
    spec.authors              = spec.authors.collect { |a| sanitize_string(a) }

    spec
  end

  ##
  # Sanitize a single string.

  def sanitize_string(string)
    return string unless string

    # HACK the #to_s is in here because RSpec has an Array of Arrays of
    # Strings for authors.  Need a way to disallow bad values on gemspec
    # generation.  (Probably won't happen.)
    string = string.to_s

    begin
      Builder::XChar.encode string
    rescue NameError, NoMethodError
      string.to_xs
    end
  end

  ##
  # Perform an in-place update of the repository from newly added gems.

  def update_index
    make_temp_directories

    specs_mtime = File.stat(@dest_specs_index).mtime
    newest_mtime = Time.at 0

    updated_gems = gem_file_list.select do |gem|
      gem_mtime = File.stat(gem).mtime
      newest_mtime = gem_mtime if gem_mtime > newest_mtime
      gem_mtime >= specs_mtime
    end

    if updated_gems.empty? then
      say 'No new gems'
      terminate_interaction 0
    end

    specs = map_gems_to_specs updated_gems
    prerelease, released = specs.partition { |s| s.version.prerelease? }

    Gem::Specification.dirs = []
    Gem::Specification.add_specs(*specs)

    files = build_marshal_gemspecs

    Gem.time 'Updated indexes' do
      update_specs_index released, @dest_specs_index, @specs_index
      update_specs_index released, @dest_latest_specs_index, @latest_specs_index
      update_specs_index(prerelease,
                         @dest_prerelease_specs_index,
                         @prerelease_specs_index)
    end

    compress_indicies

    verbose = Gem.configuration.really_verbose

    say "Updating production dir #{@dest_directory}" if verbose

    files << @specs_index
    files << "#{@specs_index}.gz"
    files << @latest_specs_index
    files << "#{@latest_specs_index}.gz"
    files << @prerelease_specs_index
    files << "#{@prerelease_specs_index}.gz"

    files = files.map do |path|
      path.sub(/^#{Regexp.escape @directory}\/?/, '') # HACK?
    end

    files.each do |file|
      src_name = File.join @directory, file
      dst_name = File.join @dest_directory, file # REFACTOR: duped above

      FileUtils.mv src_name, dst_name, :verbose => verbose,
                   :force => true

      File.utime newest_mtime, newest_mtime, dst_name
    end
  end

  ##
  # Combines specs in +index+ and +source+ then writes out a new copy to
  # +dest+.  For a latest index, does not ensure the new file is minimal.

  def update_specs_index(index, source, dest)
    specs_index = Marshal.load Gem.read_binary(source)

    index.each do |spec|
      platform = spec.original_platform
      platform = Gem::Platform::RUBY if platform.nil? or platform.empty?
      specs_index << [spec.name, spec.version, platform]
    end

    specs_index = compact_specs specs_index.uniq.sort

    open dest, 'wb' do |io|
      Marshal.dump specs_index, io
    end
  end
end
lib64/ruby/2.2.0/rubygems/doctor.rb000064400000006044150402106260012560 0ustar00require 'rubygems'
require 'rubygems/user_interaction'

##
# Cleans up after a partially-failed uninstall or for an invalid
# Gem::Specification.
#
# If a specification was removed by hand this will remove any remaining files.
#
# If a corrupt specification was installed this will clean up warnings by
# removing the bogus specification.

class Gem::Doctor

  include Gem::UserInteraction

  ##
  # Maps a gem subdirectory to the files that are expected to exist in the
  # subdirectory.

  REPOSITORY_EXTENSION_MAP = [ # :nodoc:
    ['specifications', '.gemspec'],
    ['build_info',     '.info'],
    ['cache',          '.gem'],
    ['doc',            ''],
    ['extensions',     ''],
    ['gems',           ''],
  ]

  missing =
    Gem::REPOSITORY_SUBDIRECTORIES.sort -
      REPOSITORY_EXTENSION_MAP.map { |(k,_)| k }.sort

  raise "Update REPOSITORY_EXTENSION_MAP, missing: #{missing.join ', '}" unless
    missing.empty?

  ##
  # Creates a new Gem::Doctor that will clean up +gem_repository+.  Only one
  # gem repository may be cleaned at a time.
  #
  # If +dry_run+ is true no files or directories will be removed.

  def initialize gem_repository, dry_run = false
    @gem_repository = gem_repository
    @dry_run        = dry_run

    @installed_specs = nil
  end

  ##
  # Specs installed in this gem repository

  def installed_specs # :nodoc:
    @installed_specs ||= Gem::Specification.map { |s| s.full_name }
  end

  ##
  # Are we doctoring a gem repository?

  def gem_repository?
    not installed_specs.empty?
  end

  ##
  # Cleans up uninstalled files and invalid gem specifications

  def doctor
    @orig_home = Gem.dir
    @orig_path = Gem.path

    say "Checking #{@gem_repository}"

    Gem.use_paths @gem_repository.to_s

    unless gem_repository? then
      say 'This directory does not appear to be a RubyGems repository, ' +
          'skipping'
      say
      return
    end

    doctor_children

    say
  ensure
    Gem.use_paths @orig_home, *@orig_path
  end

  ##
  # Cleans up children of this gem repository

  def doctor_children # :nodoc:
    REPOSITORY_EXTENSION_MAP.each do |sub_directory, extension|
      doctor_child sub_directory, extension
    end
  end

  ##
  # Removes files in +sub_directory+ with +extension+

  def doctor_child sub_directory, extension # :nodoc:
    directory = File.join(@gem_repository, sub_directory)

    Dir.entries(directory).sort.each do |ent|
      next if ent == "." || ent == ".."

      child = File.join(directory, ent)
      next unless File.exist?(child)

      basename = File.basename(child, extension)
      next if installed_specs.include? basename
      next if /^rubygems-\d/ =~ basename
      next if 'specifications' == sub_directory and 'default' == basename

      type = File.directory?(child) ? 'directory' : 'file'

      action = if @dry_run then
                 'Extra'
               else
                 FileUtils.rm_r(child)
                 'Removed'
               end

      say "#{action} #{type} #{sub_directory}/#{File.basename(child)}"
    end
  rescue Errno::ENOENT
    # ignore
  end

end

lib64/ruby/2.2.0/rubygems/package_task.rb000064400000007423150402106260013705 0ustar00# Copyright (c) 2003, 2004 Jim Weirich, 2009 Eric Hodel
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

require 'rubygems'
require 'rubygems/package'
begin
  gem 'rake'
rescue Gem::LoadError
end

require 'rake/packagetask'

##
# Create a package based upon a Gem::Specification.  Gem packages, as well as
# zip files and tar/gzipped packages can be produced by this task.
#
# In addition to the Rake targets generated by Rake::PackageTask, a
# Gem::PackageTask will also generate the following tasks:
#
# [<b>"<em>package_dir</em>/<em>name</em>-<em>version</em>.gem"</b>]
#   Create a RubyGems package with the given name and version.
#
# Example using a Gem::Specification:
#
#   require 'rubygems'
#   require 'rubygems/package_task'
#
#   spec = Gem::Specification.new do |s|
#     s.summary = "Ruby based make-like utility."
#     s.name = 'rake'
#     s.version = PKG_VERSION
#     s.requirements << 'none'
#     s.files = PKG_FILES
#     s.description = <<-EOF
#   Rake is a Make-like program implemented in Ruby. Tasks
#   and dependencies are specified in standard Ruby syntax.
#     EOF
#   end
#
#   Gem::PackageTask.new(spec) do |pkg|
#     pkg.need_zip = true
#     pkg.need_tar = true
#   end

class Gem::PackageTask < Rake::PackageTask

  ##
  # Ruby Gem::Specification containing the metadata for this package.  The
  # name, version and package_files are automatically determined from the
  # gemspec and don't need to be explicitly provided.

  attr_accessor :gem_spec

  ##
  # Create a Gem Package task library.  Automatically define the gem if a
  # block is given.  If no block is supplied, then #define needs to be called
  # to define the task.

  def initialize(gem_spec)
    init gem_spec
    yield self if block_given?
    define if block_given?
  end

  ##
  # Initialization tasks without the "yield self" or define operations.

  def init(gem)
    super gem.full_name, :noversion
    @gem_spec = gem
    @package_files += gem_spec.files if gem_spec.files
  end

  ##
  # Create the Rake tasks and actions specified by this Gem::PackageTask.
  # (+define+ is automatically called if a block is given to +new+).

  def define
    super

    gem_file = File.basename gem_spec.cache_file
    gem_path = File.join package_dir, gem_file
    gem_dir  = File.join package_dir, gem_spec.full_name

    task :package => [:gem]

    directory package_dir
    directory gem_dir

    desc "Build the gem file #{gem_file}"
    task :gem => [gem_path]

    trace = Rake.application.options.trace
    Gem.configuration.verbose = trace

    file gem_path => [package_dir, gem_dir] + @gem_spec.files do
      chdir(gem_dir) do
        when_writing "Creating #{gem_spec.file_name}" do
          Gem::Package.build gem_spec

          verbose trace do
            mv gem_file, '..'
          end
        end
      end
    end
  end

end

lib64/ruby/2.2.0/rubygems/test_case.rb000064400000112764150402106260013247 0ustar00# TODO: $SAFE = 1

begin
  gem 'minitest', '~> 4.0'
rescue NoMethodError, Gem::LoadError
  # for ruby tests
end

if defined? Gem::QuickLoader
  Gem::QuickLoader.load_full_rubygems_library
else
  require 'rubygems'
end

begin
  gem 'minitest'
rescue Gem::LoadError
end

# We have to load these up front because otherwise we'll try to load
# them while we're testing rubygems, and thus we can't actually load them.
unless Gem::Dependency.new('rdoc', '>= 3.10').matching_specs.empty?
  gem 'rdoc'
  gem 'json'
end

require 'minitest/autorun'

require 'rubygems/deprecate'

require 'fileutils'
require 'pathname'
require 'pp'
require 'rubygems/package'
require 'shellwords'
require 'tmpdir'
require 'uri'
require 'zlib'

Gem.load_yaml

require 'rubygems/mock_gem_ui'

module Gem

  ##
  # Allows setting the gem path searcher.  This method is available when
  # requiring 'rubygems/test_case'

  def self.searcher=(searcher)
    @searcher = searcher
  end

  ##
  # Allows toggling Windows behavior.  This method is available when requiring
  # 'rubygems/test_case'

  def self.win_platform=(val)
    @@win_platform = val
  end

  ##
  # Allows setting path to Ruby.  This method is available when requiring
  # 'rubygems/test_case'

  def self.ruby= ruby
    @ruby = ruby
  end

  ##
  # When rubygems/test_case is required the default user interaction is a
  # MockGemUi.

  module DefaultUserInteraction
    @ui = Gem::MockGemUi.new
  end
end

##
# RubyGemTestCase provides a variety of methods for testing rubygems and
# gem-related behavior in a sandbox.  Through RubyGemTestCase you can install
# and uninstall gems, fetch remote gems through a stub fetcher and be assured
# your normal set of gems is not affected.
#
# Tests are always run at a safe level of 1.

class Gem::TestCase < MiniTest::Unit::TestCase

  attr_accessor :fetcher # :nodoc:

  attr_accessor :gem_repo # :nodoc:

  attr_accessor :uri # :nodoc:

  def assert_activate expected, *specs
    specs.each do |spec|
      case spec
      when String then
        Gem::Specification.find_by_name(spec).activate
      when Gem::Specification then
        spec.activate
      else
        flunk spec.inspect
      end
    end

    loaded = Gem.loaded_specs.values.map(&:full_name)

    assert_equal expected.sort, loaded.sort if expected
  end

  # TODO: move to minitest
  def assert_path_exists path, msg = nil
    msg = message(msg) { "Expected path '#{path}' to exist" }
    assert File.exist?(path), msg
  end

  ##
  # Sets the ENABLE_SHARED entry in RbConfig::CONFIG to +value+ and restores
  # the original value when the block ends

  def enable_shared value
    enable_shared = RbConfig::CONFIG['ENABLE_SHARED']
    RbConfig::CONFIG['ENABLE_SHARED'] = value

    yield
  ensure
    if enable_shared then
      RbConfig::CONFIG['enable_shared'] = enable_shared
    else
      RbConfig::CONFIG.delete 'enable_shared'
    end
  end

  # TODO: move to minitest
  def refute_path_exists path, msg = nil
    msg = message(msg) { "Expected path '#{path}' to not exist" }
    refute File.exist?(path), msg
  end

  def scan_make_command_lines(output)
    output.scan(/^#{Regexp.escape make_command}(?:[[:blank:]].*)?$/)
  end

  def parse_make_command_line(line)
    command, *args = line.shellsplit

    targets = []
    macros = {}

    args.each do |arg|
      case arg
      when /\A(\w+)=/
        macros[$1] = $'
      else
        targets << arg
      end
    end

    targets << '' if targets.empty?

    {
      :command => command,
      :targets => targets,
      :macros => macros,
    }
  end

  def assert_contains_make_command(target, output, msg = nil)
    if output.match(/\n/)
      msg = message(msg) {
        'Expected output containing make command "%s": %s' % [
          ('%s %s' % [make_command, target]).rstrip,
          output.inspect
        ]
      }
    else
      msg = message(msg) {
        'Expected make command "%s": %s' % [
          ('%s %s' % [make_command, target]).rstrip,
          output.inspect
        ]
      }
    end

    assert scan_make_command_lines(output).any? { |line|
      make = parse_make_command_line(line)

      if make[:targets].include?(target)
        yield make, line if block_given?
        true
      else
        false
      end
    }, msg
  end

  include Gem::DefaultUserInteraction

  undef_method :default_test if instance_methods.include? 'default_test' or
                                instance_methods.include? :default_test

  @@project_dir = Dir.pwd.untaint unless defined?(@@project_dir)

  @@initial_reset = false

  ##
  # #setup prepares a sandboxed location to install gems.  All installs are
  # directed to a temporary directory.  All install plugins are removed.
  #
  # If the +RUBY+ environment variable is set the given path is used for
  # Gem::ruby.  The local platform is set to <tt>i386-mswin32</tt> for Windows
  # or <tt>i686-darwin8.10.1</tt> otherwise.
  #
  # If the +KEEP_FILES+ environment variable is set the files will not be
  # removed from <tt>/tmp/test_rubygems_#{$$}.#{Time.now.to_i}</tt>.

  def setup
    super

    @orig_gem_home   = ENV['GEM_HOME']
    @orig_gem_path   = ENV['GEM_PATH']
    @orig_gem_vendor = ENV['GEM_VENDOR']

    ENV['GEM_VENDOR'] = nil

    @current_dir = Dir.pwd
    @fetcher     = nil
    @ui          = Gem::MockGemUi.new

    tmpdir = File.expand_path Dir.tmpdir
    tmpdir.untaint

    if ENV['KEEP_FILES'] then
      @tempdir = File.join(tmpdir, "test_rubygems_#{$$}.#{Time.now.to_i}")
    else
      @tempdir = File.join(tmpdir, "test_rubygems_#{$$}")
    end
    @tempdir.untaint

    FileUtils.mkdir_p @tempdir

    # This makes the tempdir consistent on OS X.
    # File.expand_path Dir.tmpdir                      #=> "/var/..."
    # Dir.chdir Dir.tmpdir do File.expand_path '.' end #=> "/private/var/..."
    # TODO use File#realpath above instead of #expand_path once 1.8 support is
    # dropped.
    Dir.chdir @tempdir do
      @tempdir = File.expand_path '.'
      @tempdir.untaint
    end

    # This makes the tempdir consistent on Windows.
    # Dir.tmpdir may return short path name, but Dir[Dir.tmpdir] returns long
    # path name. https://bugs.ruby-lang.org/issues/10819
    # File.expand_path or File.realpath doesn't convert path name to long path
    # name. Only Dir[] (= Dir.glob) works.
    # Short and long path name is specific to Windows filesystem.
    if win_platform?
      @tempdir = Dir[@tempdir][0]
      @tempdir.untaint
    end

    @gemhome  = File.join @tempdir, 'gemhome'
    @userhome = File.join @tempdir, 'userhome'
    ENV["GEM_SPEC_CACHE"] = File.join @tempdir, 'spec_cache'

    @orig_ruby = if ENV['RUBY'] then
                   ruby = Gem.ruby
                   Gem.ruby = ENV['RUBY']
                   ruby
                 end

    @git = ENV['GIT'] || 'git'

    Gem.ensure_gem_subdirectories @gemhome

    @orig_LOAD_PATH = $LOAD_PATH.dup
    $LOAD_PATH.map! { |s| File.expand_path(s).untaint }

    Dir.chdir @tempdir

    @orig_ENV_HOME = ENV['HOME']
    ENV['HOME'] = @userhome
    Gem.instance_variable_set :@user_home, nil
    Gem.send :remove_instance_variable, :@ruby_version if
      Gem.instance_variables.include? :@ruby_version

    FileUtils.mkdir_p @gemhome
    FileUtils.mkdir_p @userhome

    @orig_gem_private_key_passphrase = ENV['GEM_PRIVATE_KEY_PASSPHRASE']
    ENV['GEM_PRIVATE_KEY_PASSPHRASE'] = PRIVATE_KEY_PASSPHRASE

    @default_dir = File.join @tempdir, 'default'
    @default_spec_dir = File.join @default_dir, "specifications", "default"
    Gem.instance_variable_set :@default_dir, @default_dir
    FileUtils.mkdir_p @default_spec_dir

    # We use Gem::Specification.reset the first time only so that if there
    # are unresolved deps that leak into the whole test suite, they're at least
    # reported once.
    if @@initial_reset
      Gem::Specification.unresolved_deps.clear # done to avoid cross-test warnings
    else
      @@initial_reset = true
      Gem::Specification.reset
    end
    Gem.use_paths(@gemhome)

    Gem::Security.reset

    Gem.loaded_specs.clear
    Gem.clear_default_specs
    Gem::Specification.unresolved_deps.clear

    Gem.configuration.verbose = true
    Gem.configuration.update_sources = true

    Gem::RemoteFetcher.fetcher = Gem::FakeFetcher.new

    @gem_repo = "http://gems.example.com/"
    @uri = URI.parse @gem_repo
    Gem.sources.replace [@gem_repo]

    Gem.searcher = nil
    Gem::SpecFetcher.fetcher = nil
    @orig_BASERUBY = RbConfig::CONFIG['BASERUBY']
    RbConfig::CONFIG['BASERUBY'] = RbConfig::CONFIG['ruby_install_name']

    @orig_arch = RbConfig::CONFIG['arch']

    if win_platform?
      util_set_arch 'i386-mswin32'
    else
      util_set_arch 'i686-darwin8.10.1'
    end

    @marshal_version = "#{Marshal::MAJOR_VERSION}.#{Marshal::MINOR_VERSION}"
  end

  ##
  # #teardown restores the process to its original state and removes the
  # tempdir unless the +KEEP_FILES+ environment variable was set.

  def teardown
    $LOAD_PATH.replace @orig_LOAD_PATH if @orig_LOAD_PATH

    if @orig_BASERUBY
      RbConfig::CONFIG['BASERUBY'] = @orig_BASERUBY
    else
      RbConfig::CONFIG.delete('BASERUBY')
    end
    RbConfig::CONFIG['arch'] = @orig_arch

    if defined? Gem::RemoteFetcher then
      Gem::RemoteFetcher.fetcher = nil
    end

    Dir.chdir @current_dir

    FileUtils.rm_rf @tempdir unless ENV['KEEP_FILES']

    ENV['GEM_HOME']   = @orig_gem_home
    ENV['GEM_PATH']   = @orig_gem_path
    ENV['GEM_VENDOR'] = @orig_gem_vendor

    Gem.ruby = @orig_ruby if @orig_ruby

    if @orig_ENV_HOME then
      ENV['HOME'] = @orig_ENV_HOME
    else
      ENV.delete 'HOME'
    end

    Gem.instance_variable_set :@default_dir, nil

    ENV['GEM_PRIVATE_KEY_PASSPHRASE'] = @orig_gem_private_key_passphrase

    Gem::Specification._clear_load_cache
  end

  def common_installer_setup
    common_installer_teardown

    Gem.post_build do |installer|
      @post_build_hook_arg = installer
      true
    end

    Gem.post_install do |installer|
      @post_install_hook_arg = installer
    end

    Gem.post_uninstall do |uninstaller|
      @post_uninstall_hook_arg = uninstaller
    end

    Gem.pre_install do |installer|
      @pre_install_hook_arg = installer
      true
    end

    Gem.pre_uninstall do |uninstaller|
      @pre_uninstall_hook_arg = uninstaller
    end
  end

  def common_installer_teardown
    Gem.post_build_hooks.clear
    Gem.post_install_hooks.clear
    Gem.done_installing_hooks.clear
    Gem.post_reset_hooks.clear
    Gem.post_uninstall_hooks.clear
    Gem.pre_install_hooks.clear
    Gem.pre_reset_hooks.clear
    Gem.pre_uninstall_hooks.clear
  end

  ##
  # A git_gem is used with a gem dependencies file.  The gem created here
  # has no files, just a gem specification for the given +name+ and +version+.
  #
  # Yields the +specification+ to the block, if given

  def git_gem name = 'a', version = 1
    have_git?

    directory = File.join 'git', name
    directory = File.expand_path directory

    git_spec = Gem::Specification.new name, version do |specification|
      yield specification if block_given?
    end

    FileUtils.mkdir_p directory

    gemspec = "#{name}.gemspec"

    open File.join(directory, gemspec), 'w' do |io|
      io.write git_spec.to_ruby
    end

    head = nil

    Dir.chdir directory do
      unless File.exist? '.git' then
        system @git, 'init', '--quiet'
        system @git, 'config', 'user.name',  'RubyGems Tests'
        system @git, 'config', 'user.email', 'rubygems@example'
      end

      system @git, 'add', gemspec
      system @git, 'commit', '-a', '-m', 'a non-empty commit message', '--quiet'
      head = Gem::Util.popen('git', 'rev-parse', 'master').strip
    end

    return name, git_spec.version, directory, head
  end

  ##
  # Skips this test unless you have a git executable

  def have_git?
    return if in_path? @git

    skip 'cannot find git executable, use GIT environment variable to set'
  end

  def in_path? executable # :nodoc:
    return true if %r%\A([A-Z]:|/)% =~ executable and File.exist? executable

    ENV['PATH'].split(File::PATH_SEPARATOR).any? do |directory|
      File.exist? File.join directory, executable
    end
  end

  ##
  # Builds and installs the Gem::Specification +spec+

  def install_gem spec, options = {}
    require 'rubygems/installer'

    gem = File.join @tempdir, "gems", "#{spec.full_name}.gem"

    unless File.exist? gem then
      use_ui Gem::MockGemUi.new do
        Dir.chdir @tempdir do
          Gem::Package.build spec
        end
      end

      gem = File.join(@tempdir, File.basename(spec.cache_file)).untaint
    end

    Gem::Installer.new(gem, options.merge({:wrappers => true})).install
  end

  ##
  # Builds and installs the Gem::Specification +spec+ into the user dir

  def install_gem_user spec
    install_gem spec, :user_install => true
  end

  ##
  # Uninstalls the Gem::Specification +spec+
  def uninstall_gem spec
    require 'rubygems/uninstaller'

    Gem::Uninstaller.new(spec.name,
                         :executables => true, :user_install => true).uninstall
  end

  ##
  # creates a temporary directory with hax
  # TODO: deprecate and remove

  def create_tmpdir
    tmpdir = nil
    Dir.chdir Dir.tmpdir do tmpdir = Dir.pwd end # HACK OSX /private/tmp
    tmpdir = File.join tmpdir, "test_rubygems_#{$$}"
    FileUtils.mkdir_p tmpdir
    return tmpdir
  end

  ##
  # Enables pretty-print for all tests

  def mu_pp(obj)
    s = ''
    s = PP.pp obj, s
    s = s.force_encoding(Encoding.default_external) if defined? Encoding
    s.chomp
  end

  ##
  # Reads a Marshal file at +path+

  def read_cache(path)
    open path.dup.untaint, 'rb' do |io|
      Marshal.load io.read
    end
  end

  ##
  # Reads a binary file at +path+

  def read_binary(path)
    Gem.read_binary path
  end

  ##
  # Writes a binary file to +path+ which is relative to +@gemhome+

  def write_file(path)
    path = File.join @gemhome, path unless Pathname.new(path).absolute?
    dir = File.dirname path
    FileUtils.mkdir_p dir

    open path, 'wb' do |io|
      yield io if block_given?
    end

    path
  end

  def all_spec_names
    Gem::Specification.map(&:full_name)
  end

  ##
  # Creates a Gem::Specification with a minimum of extra work.  +name+ and
  # +version+ are the gem's name and version,  platform, author, email,
  # homepage, summary and description are defaulted.  The specification is
  # yielded for customization.
  #
  # The gem is added to the installed gems in +@gemhome+ and the runtime.
  #
  # Use this with #write_file to build an installed gem.

  def quick_gem(name, version='2')
    require 'rubygems/specification'

    spec = Gem::Specification.new do |s|
      s.platform    = Gem::Platform::RUBY
      s.name        = name
      s.version     = version
      s.author      = 'A User'
      s.email       = 'example@example.com'
      s.homepage    = 'http://example.com'
      s.summary     = "this is a summary"
      s.description = "This is a test description"

      yield(s) if block_given?
    end

    Gem::Specification.map # HACK: force specs to (re-)load before we write

    written_path = write_file spec.spec_file do |io|
      io.write spec.to_ruby_for_cache
    end

    spec.loaded_from = spec.loaded_from = written_path

    Gem::Specification.add_spec spec.for_cache

    return spec
  end

  ##
  # TODO:  remove in RubyGems 3.0

  def quick_spec name, version = '2' # :nodoc:
    util_spec name, version
  end

  ##
  # Builds a gem from +spec+ and places it in <tt>File.join @gemhome,
  # 'cache'</tt>.  Automatically creates files based on +spec.files+

  def util_build_gem(spec)
    dir = spec.gem_dir
    FileUtils.mkdir_p dir

    Dir.chdir dir do
      spec.files.each do |file|
        next if File.exist? file
        FileUtils.mkdir_p File.dirname(file)
        File.open file, 'w' do |fp| fp.puts "# #{file}" end
      end

      use_ui Gem::MockGemUi.new do
        Gem::Package.build spec
      end

      cache = spec.cache_file
      FileUtils.mv File.basename(cache), cache
    end
  end

  def util_remove_gem(spec)
    FileUtils.rm_rf spec.cache_file
    FileUtils.rm_rf spec.spec_file
  end

  ##
  # Removes all installed gems from +@gemhome+.

  def util_clear_gems
    FileUtils.rm_rf File.join(@gemhome, "gems") # TODO: use Gem::Dirs
    FileUtils.mkdir File.join(@gemhome, "gems")
    FileUtils.rm_rf File.join(@gemhome, "specifications")
    FileUtils.mkdir File.join(@gemhome, "specifications")
    Gem::Specification.reset
  end

  ##
  # Install the provided specs

  def install_specs(*specs)
    Gem::Specification.add_specs(*specs)
    Gem.searcher = nil
  end

  ##
  # Installs the provided default specs including writing the spec file

  def install_default_gems(*specs)
    install_default_specs(*specs)

    specs.each do |spec|
      open spec.loaded_from, 'w' do |io|
        io.write spec.to_ruby_for_cache
      end
    end
  end

  ##
  # Install the provided default specs

  def install_default_specs(*specs)
    install_specs(*specs)
    specs.each do |spec|
      Gem.register_default_spec(spec)
    end
  end

  def loaded_spec_names
    Gem.loaded_specs.values.map(&:full_name).sort
  end

  def unresolved_names
    Gem::Specification.unresolved_deps.values.map(&:to_s).sort
  end

  def save_loaded_features
    old_loaded_features = $LOADED_FEATURES.dup
    yield
  ensure
    $LOADED_FEATURES.replace old_loaded_features
  end

  ##
  # new_spec is deprecated as it is never used.
  #
  # TODO:  remove in RubyGems 3.0

  def new_spec name, version, deps = nil, *files # :nodoc:
    require 'rubygems/specification'

    spec = Gem::Specification.new do |s|
      s.platform    = Gem::Platform::RUBY
      s.name        = name
      s.version     = version
      s.author      = 'A User'
      s.email       = 'example@example.com'
      s.homepage    = 'http://example.com'
      s.summary     = "this is a summary"
      s.description = "This is a test description"

      Array(deps).each do |n, req|
        s.add_dependency n, (req || '>= 0')
      end

      s.files.push(*files) unless files.empty?

      yield s if block_given?
    end

    spec.loaded_from = spec.spec_file

    unless files.empty? then
      write_file spec.spec_file do |io|
        io.write spec.to_ruby_for_cache
      end

      util_build_gem spec

      cache_file = File.join @tempdir, 'gems', "#{spec.full_name}.gem"
      FileUtils.mkdir_p File.dirname cache_file
      FileUtils.mv spec.cache_file, cache_file
      FileUtils.rm spec.spec_file
    end

    spec
  end

  def new_default_spec(name, version, deps = nil, *files)
    spec = util_spec name, version, deps

    spec.loaded_from = File.join(@default_spec_dir, spec.spec_name)
    spec.files = files

    lib_dir = File.join(@tempdir, "default_gems", "lib")
    $LOAD_PATH.unshift(lib_dir)
    files.each do |file|
      rb_path = File.join(lib_dir, file)
      FileUtils.mkdir_p(File.dirname(rb_path))
      File.open(rb_path, "w") do |rb|
        rb << "# #{file}"
      end
    end

    spec
  end

  ##
  # Creates a spec with +name+, +version+.  +deps+ can specify the dependency
  # or a +block+ can be given for full customization of the specification.

  def util_spec name, version = 2, deps = nil # :yields: specification
    raise "deps or block, not both" if deps and block_given?

    spec = Gem::Specification.new do |s|
      s.platform    = Gem::Platform::RUBY
      s.name        = name
      s.version     = version
      s.author      = 'A User'
      s.email       = 'example@example.com'
      s.homepage    = 'http://example.com'
      s.summary     = "this is a summary"
      s.description = "This is a test description"

      yield s if block_given?
    end

    if deps then
      # Since Hash#each is unordered in 1.8, sort the keys and iterate that
      # way so the tests are deterministic on all implementations.
      deps.keys.sort.each do |n|
        spec.add_dependency n, (deps[n] || '>= 0')
      end
    end

    spec.loaded_from = spec.spec_file

    Gem::Specification.add_spec spec

    return spec
  end

  ##
  # Creates a gem with +name+, +version+ and +deps+.  The specification will
  # be yielded before gem creation for customization.  The gem will be placed
  # in <tt>File.join @tempdir, 'gems'</tt>.  The specification and .gem file
  # location are returned.

  def util_gem(name, version, deps = nil, &block)
    # TODO: deprecate
    raise "deps or block, not both" if deps and block

    if deps then
      block = proc do |s|
        # Since Hash#each is unordered in 1.8, sort
        # the keys and iterate that way so the tests are
        # deterministic on all implementations.
        deps.keys.sort.each do |n|
          s.add_dependency n, (deps[n] || '>= 0')
        end
      end
    end

    spec = quick_gem(name, version, &block)

    util_build_gem spec

    cache_file = File.join @tempdir, 'gems', "#{spec.original_name}.gem"
    FileUtils.mkdir_p File.dirname cache_file
    FileUtils.mv spec.cache_file, cache_file
    FileUtils.rm spec.spec_file

    spec.loaded_from = nil

    [spec, cache_file]
  end

  ##
  # Gzips +data+.

  def util_gzip(data)
    out = StringIO.new

    Zlib::GzipWriter.wrap out do |io|
      io.write data
    end

    out.string
  end

  ##
  # Creates several default gems which all have a lib/code.rb file.  The gems
  # are not installed but are available in the cache dir.
  #
  # +@a1+:: gem a version 1, this is the best-described gem.
  # +@a2+:: gem a version 2
  # +@a3a:: gem a version 3.a
  # +@a_evil9+:: gem a_evil version 9, use this to ensure similarly-named gems
  #              don't collide with a.
  # +@b2+:: gem b version 2
  # +@c1_2+:: gem c version 1.2
  # +@pl1+:: gem pl version 1, this gem has a legacy platform of i386-linux.
  #
  # Additional +prerelease+ gems may also be created:
  #
  # +@a2_pre+:: gem a version 2.a
  # TODO: nuke this and fix tests. this should speed up a lot

  def util_make_gems(prerelease = false)
    @a1 = quick_gem 'a', '1' do |s|
      s.files = %w[lib/code.rb]
      s.require_paths = %w[lib]
      s.date = Gem::Specification::TODAY - 86400
      s.homepage = 'http://a.example.com'
      s.email = %w[example@example.com example2@example.com]
      s.authors = %w[Example Example2]
      s.description = <<-DESC
This line is really, really long.  So long, in fact, that it is more than eighty characters long!  The purpose of this line is for testing wrapping behavior because sometimes people don't wrap their text to eighty characters.  Without the wrapping, the text might not look good in the RSS feed.

Also, a list:
  * An entry that\'s actually kind of sort
  * an entry that\'s really long, which will probably get wrapped funny.  That's ok, somebody wasn't thinking straight when they made it more than eighty characters.
      DESC
    end

    init = proc do |s|
      s.files = %w[lib/code.rb]
      s.require_paths = %w[lib]
    end

    @a2      = quick_gem('a', '2',      &init)
    @a3a     = quick_gem('a', '3.a',    &init)
    @a_evil9 = quick_gem('a_evil', '9', &init)
    @b2      = quick_gem('b', '2',      &init)
    @c1_2    = quick_gem('c', '1.2',    &init)
    @x       = quick_gem('x', '1',      &init)
    @dep_x   = quick_gem('dep_x', '1') do |s|
      s.files = %w[lib/code.rb]
      s.require_paths = %w[lib]
      s.add_dependency 'x', '>= 1'
    end

    @pl1     = quick_gem 'pl', '1' do |s| # l for legacy
      s.files = %w[lib/code.rb]
      s.require_paths = %w[lib]
      s.platform = Gem::Platform.new 'i386-linux'
      s.instance_variable_set :@original_platform, 'i386-linux'
    end

    if prerelease
      @a2_pre = quick_gem('a', '2.a', &init)
      write_file File.join(*%W[gems #{@a2_pre.original_name} lib code.rb])
      util_build_gem @a2_pre
    end

    write_file File.join(*%W[gems #{@a1.original_name}      lib code.rb])
    write_file File.join(*%W[gems #{@a2.original_name}      lib code.rb])
    write_file File.join(*%W[gems #{@a3a.original_name}     lib code.rb])
    write_file File.join(*%W[gems #{@a_evil9.original_name} lib code.rb])
    write_file File.join(*%W[gems #{@b2.original_name}      lib code.rb])
    write_file File.join(*%W[gems #{@c1_2.original_name}    lib code.rb])
    write_file File.join(*%W[gems #{@pl1.original_name}     lib code.rb])
    write_file File.join(*%W[gems #{@x.original_name}       lib code.rb])
    write_file File.join(*%W[gems #{@dep_x.original_name}   lib code.rb])

    [@a1, @a2, @a3a, @a_evil9, @b2, @c1_2, @pl1, @x, @dep_x].each do |spec|
      util_build_gem spec
    end

    FileUtils.rm_r File.join(@gemhome, "gems", @pl1.original_name)
  end

  ##
  # Set the platform to +arch+

  def util_set_arch(arch)
    RbConfig::CONFIG['arch'] = arch
    platform = Gem::Platform.new arch

    Gem.instance_variable_set :@platforms, nil
    Gem::Platform.instance_variable_set :@local, nil

    platform
  end

  ##
  # Sets up a fake fetcher using the gems from #util_make_gems.  Optionally
  # additional +prerelease+ gems may be included.
  #
  # Gems created by this method may be fetched using Gem::RemoteFetcher.

  def util_setup_fake_fetcher(prerelease = false)
    require 'zlib'
    require 'socket'
    require 'rubygems/remote_fetcher'

    @fetcher = Gem::FakeFetcher.new

    util_make_gems(prerelease)
    Gem::Specification.reset

    @all_gems = [@a1, @a2, @a3a, @a_evil9, @b2, @c1_2].sort
    @all_gem_names = @all_gems.map { |gem| gem.full_name }

    gem_names = [@a1.full_name, @a2.full_name, @a3a.full_name, @b2.full_name]
    @gem_names = gem_names.sort.join("\n")

    Gem::RemoteFetcher.fetcher = @fetcher
  end

  ##
  # Add +spec+ to +@fetcher+ serving the data in the file +path+.
  # +repo+ indicates which repo to make +spec+ appear to be in.

  def add_to_fetcher(spec, path=nil, repo=@gem_repo)
    path ||= spec.cache_file
    @fetcher.data["#{@gem_repo}gems/#{spec.file_name}"] = read_binary(path)
  end

  ##
  # Sets up Gem::SpecFetcher to return information from the gems in +specs+.
  # Best used with +@all_gems+ from #util_setup_fake_fetcher.

  def util_setup_spec_fetcher(*specs)
    specs -= Gem::Specification._all
    Gem::Specification.add_specs(*specs)

    spec_fetcher = Gem::SpecFetcher.fetcher

    prerelease, all = Gem::Specification.partition { |spec|
      spec.version.prerelease?
    }

    spec_fetcher.specs[@uri] = []
    all.each do |spec|
      spec_fetcher.specs[@uri] << spec.name_tuple
    end

    spec_fetcher.latest_specs[@uri] = []
    Gem::Specification.latest_specs.each do |spec|
      spec_fetcher.latest_specs[@uri] << spec.name_tuple
    end

    spec_fetcher.prerelease_specs[@uri] = []
    prerelease.each do |spec|
      spec_fetcher.prerelease_specs[@uri] << spec.name_tuple
    end

    # HACK for test_download_to_cache
    unless Gem::RemoteFetcher === @fetcher then
      v = Gem.marshal_version

      specs = all.map { |spec| spec.name_tuple }
      s_zip = util_gzip Marshal.dump Gem::NameTuple.to_basic specs

      latest_specs = Gem::Specification.latest_specs.map do |spec|
        spec.name_tuple
      end

      l_zip = util_gzip Marshal.dump Gem::NameTuple.to_basic latest_specs

      prerelease_specs = prerelease.map { |spec| spec.name_tuple }
      p_zip = util_gzip Marshal.dump Gem::NameTuple.to_basic prerelease_specs

      @fetcher.data["#{@gem_repo}specs.#{v}.gz"]            = s_zip
      @fetcher.data["#{@gem_repo}latest_specs.#{v}.gz"]     = l_zip
      @fetcher.data["#{@gem_repo}prerelease_specs.#{v}.gz"] = p_zip

      v = Gem.marshal_version

      Gem::Specification.each do |spec|
        path = "#{@gem_repo}quick/Marshal.#{v}/#{spec.original_name}.gemspec.rz"
        data = Marshal.dump spec
        data_deflate = Zlib::Deflate.deflate data
        @fetcher.data[path] = data_deflate
      end
    end

    nil # force errors
  end

  ##
  # Deflates +data+

  def util_zip(data)
    Zlib::Deflate.deflate data
  end

  def util_set_RUBY_VERSION(version, patchlevel = nil, revision = nil)
    if Gem.instance_variables.include? :@ruby_version or
       Gem.instance_variables.include? '@ruby_version' then
      Gem.send :remove_instance_variable, :@ruby_version
    end

    @RUBY_VERSION    = RUBY_VERSION
    @RUBY_PATCHLEVEL = RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
    @RUBY_REVISION   = RUBY_REVISION   if defined?(RUBY_REVISION)

    Object.send :remove_const, :RUBY_VERSION
    Object.send :remove_const, :RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
    Object.send :remove_const, :RUBY_REVISION   if defined?(RUBY_REVISION)

    Object.const_set :RUBY_VERSION,    version
    Object.const_set :RUBY_PATCHLEVEL, patchlevel if patchlevel
    Object.const_set :RUBY_REVISION,   revision   if revision
  end

  def util_restore_RUBY_VERSION
    Object.send :remove_const, :RUBY_VERSION
    Object.send :remove_const, :RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
    Object.send :remove_const, :RUBY_REVISION   if defined?(RUBY_REVISION)

    Object.const_set :RUBY_VERSION,    @RUBY_VERSION
    Object.const_set :RUBY_PATCHLEVEL, @RUBY_PATCHLEVEL if
      defined?(@RUBY_PATCHLEVEL)
    Object.const_set :RUBY_REVISION,   @RUBY_REVISION   if
      defined?(@RUBY_REVISION)
  end

  ##
  # Is this test being run on a Windows platform?

  def self.win_platform?
    Gem.win_platform?
  end

  ##
  # Is this test being run on a Windows platform?

  def win_platform?
    Gem.win_platform?
  end

  ##
  # Returns whether or not we're on a version of Ruby built with VC++ (or
  # Borland) versus Cygwin, Mingw, etc.

  def self.vc_windows?
    RUBY_PLATFORM.match('mswin')
  end

  ##
  # Returns whether or not we're on a version of Ruby built with VC++ (or
  # Borland) versus Cygwin, Mingw, etc.

  def vc_windows?
    RUBY_PLATFORM.match('mswin')
  end

  ##
  # Returns the make command for the current platform. For versions of Ruby
  # built on MS Windows with VC++ or Borland it will return 'nmake'. On all
  # other platforms, including Cygwin, it will return 'make'.

  def self.make_command
    ENV["make"] || (vc_windows? ? 'nmake' : 'make')
  end

  ##
  # Returns the make command for the current platform. For versions of Ruby
  # built on MS Windows with VC++ or Borland it will return 'nmake'. On all
  # other platforms, including Cygwin, it will return 'make'.

  def make_command
    ENV["make"] || (vc_windows? ? 'nmake' : 'make')
  end

  ##
  # Returns whether or not the nmake command could be found.

  def nmake_found?
    system('nmake /? 1>NUL 2>&1')
  end

  # In case we're building docs in a background process, this method waits for
  # that process to exit (or if it's already been reaped, or never happened,
  # swallows the Errno::ECHILD error).
  def wait_for_child_process_to_exit
    Process.wait if Process.respond_to?(:fork)
  rescue Errno::ECHILD
  end

  ##
  # Allows tests to use a random (but controlled) port number instead of
  # a hardcoded one. This helps CI tools when running parallels builds on
  # the same builder slave.

  def self.process_based_port
    @@process_based_port ||= 8000 + $$ % 1000
  end

  ##
  # See ::process_based_port

  def process_based_port
    self.class.process_based_port
  end

  ##
  # Allows the proper version of +rake+ to be used for the test.

  def build_rake_in(good=true)
    gem_ruby = Gem.ruby
    Gem.ruby = @@ruby
    env_rake = ENV["rake"]
    rake = (good ? @@good_rake : @@bad_rake)
    ENV["rake"] = rake
    yield rake
  ensure
    Gem.ruby = gem_ruby
    if env_rake
      ENV["rake"] = env_rake
    else
      ENV.delete("rake")
    end
  end

  ##
  # Finds the path to the Ruby executable

  def self.rubybin
    ruby = ENV["RUBY"]
    return ruby if ruby
    ruby = "ruby"
    rubyexe = "#{ruby}.exe"

    3.times do
      if File.exist? ruby and File.executable? ruby and !File.directory? ruby
        return File.expand_path(ruby)
      end
      if File.exist? rubyexe and File.executable? rubyexe
        return File.expand_path(rubyexe)
      end
      ruby = File.join("..", ruby)
    end

    begin
      require "rbconfig"
      File.join(RbConfig::CONFIG["bindir"],
                RbConfig::CONFIG["ruby_install_name"] +
                RbConfig::CONFIG["EXEEXT"])
    rescue LoadError
      "ruby"
    end
  end

  @@ruby = rubybin
  @@good_rake = "#{rubybin} #{File.expand_path('../../../test/rubygems/good_rake.rb', __FILE__)}"
  @@bad_rake = "#{rubybin} #{File.expand_path('../../../test/rubygems/bad_rake.rb', __FILE__)}"

  ##
  # Construct a new Gem::Dependency.

  def dep name, *requirements
    Gem::Dependency.new name, *requirements
  end

  ##
  # Constructs a Gem::Resolver::DependencyRequest from a
  # Gem::Dependency +dep+, a +from_name+ and +from_version+ requesting the
  # dependency and a +parent+ DependencyRequest

  def dependency_request dep, from_name, from_version, parent = nil
    remote = Gem::Source.new @uri

    unless parent then
      parent_dep = dep from_name, from_version
      parent = Gem::Resolver::DependencyRequest.new parent_dep, nil
    end

    spec = Gem::Resolver::IndexSpecification.new \
      nil, from_name, from_version, remote, Gem::Platform::RUBY
    activation = Gem::Resolver::ActivationRequest.new spec, parent

    Gem::Resolver::DependencyRequest.new dep, activation
  end

  ##
  # Constructs a new Gem::Requirement.

  def req *requirements
    return requirements.first if Gem::Requirement === requirements.first
    Gem::Requirement.create requirements
  end

  ##
  # Constructs a new Gem::Specification.

  def spec name, version, &block
    Gem::Specification.new name, v(version), &block
  end

  ##
  # Creates a SpecFetcher pre-filled with the gems or specs defined in the
  # block.
  #
  # Yields a +fetcher+ object that responds to +spec+ and +gem+.  +spec+ adds
  # a specification to the SpecFetcher while +gem+ adds both a specification
  # and the gem data to the RemoteFetcher so the built gem can be downloaded.
  #
  # If only the a-3 gem is supposed to be downloaded you can save setup
  # time by creating only specs for the other versions:
  #
  #   spec_fetcher do |fetcher|
  #     fetcher.spec 'a', 1
  #     fetcher.spec 'a', 2, 'b' => 3 # dependency on b = 3
  #     fetcher.gem 'a', 3 do |spec|
  #       # spec is a Gem::Specification
  #       # ...
  #     end
  #   end

  def spec_fetcher repository = @gem_repo
    Gem::TestCase::SpecFetcherSetup.declare self, repository do |spec_fetcher_setup|
      yield spec_fetcher_setup if block_given?
    end
  end

  ##
  # Construct a new Gem::Version.

  def v string
    Gem::Version.create string
  end

  ##
  # A vendor_gem is used with a gem dependencies file.  The gem created here
  # has no files, just a gem specification for the given +name+ and +version+.
  #
  # Yields the +specification+ to the block, if given

  def vendor_gem name = 'a', version = 1
    directory = File.join 'vendor', name

    vendor_spec = Gem::Specification.new name, version do |specification|
      yield specification if block_given?
    end

    FileUtils.mkdir_p directory

    open File.join(directory, "#{name}.gemspec"), 'w' do |io|
      io.write vendor_spec.to_ruby
    end

    return name, vendor_spec.version, directory
  end

  ##
  # The StaticSet is a static set of gem specifications used for testing only.
  # It is available by requiring Gem::TestCase.

  class StaticSet < Gem::Resolver::Set

    ##
    # A StaticSet ignores remote because it has a fixed set of gems.

    attr_accessor :remote

    ##
    # Creates a new StaticSet for the given +specs+

    def initialize(specs)
      super()

      @specs = specs

      @remote = true
    end

    ##
    # Adds +spec+ to this set.

    def add spec
      @specs << spec
    end

    ##
    # Finds +dep+ in this set.

    def find_spec(dep)
      @specs.reverse_each do |s|
        return s if dep.matches_spec? s
      end
    end

    ##
    # Finds all gems matching +dep+ in this set.

    def find_all(dep)
      @specs.find_all { |s| dep.match? s, @prerelease }
    end

    ##
    # Loads a Gem::Specification from this set which has the given +name+,
    # version +ver+, +platform+.  The +source+ is ignored.

    def load_spec name, ver, platform, source
      dep = Gem::Dependency.new name, ver
      spec = find_spec dep

      Gem::Specification.new spec.name, spec.version do |s|
        s.platform = spec.platform
      end
    end

    def prefetch reqs # :nodoc:
    end
  end

  ##
  # Loads certificate named +cert_name+ from <tt>test/rubygems/</tt>.

  def self.load_cert cert_name
    cert_file = cert_path cert_name

    cert = File.read cert_file

    OpenSSL::X509::Certificate.new cert
  end

  ##
  # Returns the path to the certificate named +cert_name+ from
  # <tt>test/rubygems/</tt>.

  def self.cert_path cert_name
    if 32 == (Time.at(2**32) rescue 32) then
      cert_file =
        File.expand_path "../../../test/rubygems/#{cert_name}_cert_32.pem",
                         __FILE__

      return cert_file if File.exist? cert_file
    end

    File.expand_path "../../../test/rubygems/#{cert_name}_cert.pem", __FILE__
  end

  ##
  # Loads an RSA private key named +key_name+ with +passphrase+ in <tt>test/rubygems/</tt>

  def self.load_key key_name, passphrase = nil
    key_file = key_path key_name

    key = File.read key_file

    OpenSSL::PKey::RSA.new key, passphrase
  end

  ##
  # Returns the path to the key named +key_name+ from <tt>test/rubygems</tt>

  def self.key_path key_name
    File.expand_path "../../../test/rubygems/#{key_name}_key.pem", __FILE__
  end

  # :stopdoc:
  # only available in RubyGems tests

  PRIVATE_KEY_PASSPHRASE      = 'Foo bar'

  begin
    PRIVATE_KEY                 = load_key 'private'
    PRIVATE_KEY_PATH            = key_path 'private'

    # ENCRYPTED_PRIVATE_KEY is PRIVATE_KEY encrypted with PRIVATE_KEY_PASSPHRASE
    ENCRYPTED_PRIVATE_KEY       = load_key 'encrypted_private', PRIVATE_KEY_PASSPHRASE
    ENCRYPTED_PRIVATE_KEY_PATH  = key_path 'encrypted_private'

    PUBLIC_KEY                  = PRIVATE_KEY.public_key

    PUBLIC_CERT                 = load_cert 'public'
    PUBLIC_CERT_PATH            = cert_path 'public'
  rescue Errno::ENOENT
    PRIVATE_KEY = nil
    PUBLIC_KEY  = nil
    PUBLIC_CERT = nil
  end if defined?(OpenSSL::SSL)

end

require 'rubygems/test_utilities'

lib64/ruby/2.2.0/rubygems/install_update_options.rb000064400000013552150402106260016053 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rubygems'

# forward-declare

module Gem::Security # :nodoc:
  class Policy # :nodoc:
  end
end

##
# Mixin methods for install and update options for Gem::Commands

module Gem::InstallUpdateOptions

  ##
  # Add the install/update options to the option parser.

  def add_install_update_options
    # TODO: use @parser.accept
    OptionParser.accept Gem::Security::Policy do |value|
      require 'rubygems/security'

      raise OptionParser::InvalidArgument, 'OpenSSL not installed' unless
        defined?(Gem::Security::HighSecurity)

      value = Gem::Security::Policies[value]
      valid = Gem::Security::Policies.keys.sort
      message = "#{value} (#{valid.join ', '} are valid)"
      raise OptionParser::InvalidArgument, message if value.nil?
      value
    end

    add_option(:"Install/Update", '-i', '--install-dir DIR',
               'Gem repository directory to get installed',
               'gems') do |value, options|
      options[:install_dir] = File.expand_path(value)
    end

    add_option(:"Install/Update", '-n', '--bindir DIR',
               'Directory where binary files are',
               'located') do |value, options|
      options[:bin_dir] = File.expand_path(value)
    end

    add_option(:"Install/Update",       '--[no-]document [TYPES]', Array,
               'Generate documentation for installed gems',
               'List the documentation types you wish to',
               'generate.  For example: rdoc,ri') do |value, options|
      options[:document] = case value
                           when nil   then %w[ri]
                           when false then []
                           else            value
                           end
    end

    add_option(:"Install/Update", '--build-root DIR',
               'Temporary installation root. Useful for building',
               'packages. Do not use this when installing remote gems.') do |value, options|
      options[:build_root] = File.expand_path(value)
    end

    add_option(:"Install/Update", '--vendor',
               'Install gem into the vendor directory.',
               'Only for use by gem repackagers.') do |value, options|
      unless Gem.vendor_dir then
        raise OptionParser::InvalidOption.new 'your platform is not supported'
      end

      options[:vendor] = true
      options[:install_dir] = Gem.vendor_dir
    end

    add_option(:"Install/Update", '-N', '--no-document',
               'Disable documentation generation') do |value, options|
      options[:document] = []
    end

    add_option(:Deprecated, '--[no-]rdoc',
               'Generate RDoc for installed gems',
               'Use --document instead') do |value, options|
      if value then
        options[:document] << 'rdoc'
      else
        options[:document].delete 'rdoc'
      end

      options[:document].uniq!
    end

    add_option(:Deprecated, '--[no-]ri',
               'Generate ri data for installed gems.',
               'Use --document instead') do |value, options|
      if value then
        options[:document] << 'ri'
      else
        options[:document].delete 'ri'
      end

      options[:document].uniq!
    end

    add_option(:"Install/Update", '-E', '--[no-]env-shebang',
               "Rewrite the shebang line on installed",
               "scripts to use /usr/bin/env") do |value, options|
      options[:env_shebang] = value
    end

    add_option(:"Install/Update", '-f', '--[no-]force',
               'Force gem to install, bypassing dependency',
               'checks') do |value, options|
      options[:force] = value
    end

    add_option(:"Install/Update", '-w', '--[no-]wrappers',
               'Use bin wrappers for executables',
               'Not available on dosish platforms') do |value, options|
      options[:wrappers] = value
    end

    add_option(:"Install/Update", '-P', '--trust-policy POLICY',
               Gem::Security::Policy,
               'Specify gem trust policy') do |value, options|
      options[:security_policy] = value
    end

    add_option(:"Install/Update", '--ignore-dependencies',
               'Do not install any required dependent gems') do |value, options|
      options[:ignore_dependencies] = value
    end

    add_option(:"Install/Update",       '--[no-]format-executable',
               'Make installed executable names match ruby.',
               'If ruby is ruby18, foo_exec will be',
               'foo_exec18') do |value, options|
      options[:format_executable] = value
    end

    add_option(:"Install/Update",       '--[no-]user-install',
               'Install in user\'s home directory instead',
               'of GEM_HOME.') do |value, options|
      options[:user_install] = value
    end

    add_option(:"Install/Update", "--development",
                "Install additional development",
                "dependencies") do |value, options|
      options[:development] = true
      options[:dev_shallow] = true
    end

    add_option(:"Install/Update", "--development-all",
                "Install development dependencies for all",
                "gems (including dev deps themselves)") do |value, options|
      options[:development] = true
      options[:dev_shallow] = false
    end

    add_option(:"Install/Update", "--conservative",
                "Don't attempt to upgrade gems already",
                "meeting version requirement") do |value, options|
      options[:conservative] = true
      options[:minimal_deps] = true
    end

    add_option(:"Install/Update", "--minimal-deps",
                "Don't upgrade any dependencies that already",
                "meet version requirements") do |value, options|
      options[:minimal_deps] = true
    end
  end

  ##
  # Default options for the gem install command.

  def install_update_defaults_str
    '--document=rdoc,ri --wrappers'
  end

end

lib64/ruby/2.2.0/rubygems/util.rb000064400000005140150402106260012237 0ustar00##
# This module contains various utility methods as module methods.

module Gem::Util

  @silent_mutex = nil

  ##
  # Zlib::GzipReader wrapper that unzips +data+.

  def self.gunzip(data)
    require 'zlib'
    require 'rubygems/util/stringio'
    data = Gem::StringSource.new data

    unzipped = Zlib::GzipReader.new(data).read
    unzipped.force_encoding Encoding::BINARY if Object.const_defined? :Encoding
    unzipped
  end

  ##
  # Zlib::GzipWriter wrapper that zips +data+.

  def self.gzip(data)
    require 'zlib'
    require 'rubygems/util/stringio'
    zipped = Gem::StringSink.new
    zipped.set_encoding Encoding::BINARY if Object.const_defined? :Encoding

    Zlib::GzipWriter.wrap zipped do |io| io.write data end

    zipped.string
  end

  ##
  # A Zlib::Inflate#inflate wrapper

  def self.inflate(data)
    require 'zlib'
    Zlib::Inflate.inflate data
  end

  ##
  # This calls IO.popen where it accepts an array for a +command+ (Ruby 1.9+)
  # and implements an IO.popen-like behavior where it does not accept an array
  # for a command.

  def self.popen *command
    IO.popen command, &:read
  rescue TypeError # ruby 1.8 only supports string command
    r, w = IO.pipe

    pid = fork do
      STDIN.close
      STDOUT.reopen w

      exec(*command)
    end

    w.close

    begin
      return r.read
    ensure
      Process.wait pid
    end
  end

  NULL_DEVICE = defined?(IO::NULL) ? IO::NULL : Gem.win_platform? ? 'NUL' : '/dev/null'

  ##
  # Invokes system, but silences all output.

  def self.silent_system *command
    opt = {:out => NULL_DEVICE, :err => [:child, :out]}
    if Hash === command.last
      opt.update(command.last)
      cmds = command[0...-1]
    else
      cmds = command.dup
    end
    return system(*(cmds << opt))
  rescue TypeError
    require 'thread'

    @silent_mutex ||= Mutex.new

    null_device = NULL_DEVICE

    @silent_mutex.synchronize do
      begin
        stdout = STDOUT.dup
        stderr = STDERR.dup

        STDOUT.reopen null_device, 'w'
        STDERR.reopen null_device, 'w'

        return system(*command)
      ensure
        STDOUT.reopen stdout
        STDERR.reopen stderr
        stdout.close
        stderr.close
      end
    end
  end

  ##
  # Enumerates the parents of +directory+.

  def self.traverse_parents directory
    return enum_for __method__, directory unless block_given?

    here = File.expand_path directory
    start = here

    Dir.chdir start

    begin
      loop do
        yield here

        Dir.chdir '..'

        return if Dir.pwd == here # toplevel

        here = Dir.pwd
      end
    ensure
      Dir.chdir start
    end
  end

end
lib64/ruby/2.2.0/rubygems/server.rb000064400000055665150402106260012611 0ustar00require 'webrick'
require 'zlib'
require 'erb'

require 'rubygems'
require 'rubygems/rdoc'

##
# Gem::Server and allows users to serve gems for consumption by
# `gem --remote-install`.
#
# gem_server starts an HTTP server on the given port and serves the following:
# * "/" - Browsing of gem spec files for installed gems
# * "/specs.#{Gem.marshal_version}.gz" - specs name/version/platform index
# * "/latest_specs.#{Gem.marshal_version}.gz" - latest specs
#   name/version/platform index
# * "/quick/" - Individual gemspecs
# * "/gems" - Direct access to download the installable gems
# * "/rdoc?q=" - Search for installed rdoc documentation
#
# == Usage
#
#   gem_server = Gem::Server.new Gem.dir, 8089, false
#   gem_server.run
#
#--
# TODO Refactor into a real WEBrick servlet to remove code duplication.

class Gem::Server

  attr_reader :spec_dirs

  include ERB::Util
  include Gem::UserInteraction

  SEARCH = <<-SEARCH
      <form class="headerSearch" name="headerSearchForm" method="get" action="/rdoc">
        <div id="search" style="float:right">
          <label for="q">Filter/Search</label>
          <input id="q" type="text" style="width:10em" name="q">
          <button type="submit" style="display:none"></button>
        </div>
      </form>
  SEARCH

  DOC_TEMPLATE = <<-'DOC_TEMPLATE'
  <?xml version="1.0" encoding="iso-8859-1"?>
  <!DOCTYPE html
       PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>RubyGems Documentation Index</title>
    <link rel="stylesheet" href="gem-server-rdoc-style.css" type="text/css" media="screen" />
  </head>
  <body>
    <div id="fileHeader">
<%= SEARCH %>
      <h1>RubyGems Documentation Index</h1>
    </div>
    <!-- banner header -->

  <div id="bodyContent">
    <div id="contextContent">
      <div id="description">
        <h1>Summary</h1>
  <p>There are <%=values["gem_count"]%> gems installed:</p>
  <p>
  <%= values["specs"].map { |v| "<a href=\"##{v["name"]}\">#{v["name"]}</a>" }.join ', ' %>.
  <h1>Gems</h1>

  <dl>
  <% values["specs"].each do |spec| %>
    <dt>
    <% if spec["first_name_entry"] then %>
      <a name="<%=spec["name"]%>"></a>
    <% end %>

    <b><%=spec["name"]%> <%=spec["version"]%></b>

    <% if spec["ri_installed"] then %>
      <a href="<%=spec["doc_path"]%>">[rdoc]</a>
    <% elsif spec["rdoc_installed"] then %>
      <a href="<%=spec["doc_path"]%>">[rdoc]</a>
    <% else %>
      <span title="rdoc not installed">[rdoc]</span>
    <% end %>

    <% if spec["homepage"] then %>
      <a href="<%=spec["homepage"]%>" title="<%=spec["homepage"]%>">[www]</a>
    <% else %>
      <span title="no homepage available">[www]</span>
    <% end %>

    <% if spec["has_deps"] then %>
     - depends on
      <%= spec["dependencies"].map { |v| "<a href=\"##{v["name"]}\">#{v["name"]}</a>" }.join ', ' %>.
    <% end %>
    </dt>
    <dd>
    <%=spec["summary"]%>
    <% if spec["executables"] then %>
      <br/>

      <% if spec["only_one_executable"] then %>
          Executable is
      <% else %>
          Executables are
      <%end%>

      <%= spec["executables"].map { |v| "<span class=\"context-item-name\">#{v["executable"]}</span>"}.join ', ' %>.

    <%end%>
    <br/>
    <br/>
    </dd>
  <% end %>
  </dl>

      </div>
     </div>
    </div>
  <div id="validator-badges">
    <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
  </div>
  </body>
  </html>
  DOC_TEMPLATE

  # CSS is copy & paste from rdoc-style.css, RDoc V1.0.1 - 20041108
  RDOC_CSS = <<-RDOC_CSS
body {
    font-family: Verdana,Arial,Helvetica,sans-serif;
    font-size:   90%;
    margin: 0;
    margin-left: 40px;
    padding: 0;
    background: white;
}

h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; }
h1 { font-size: 150%; }
h2,h3,h4 { margin-top: 1em; }

a { background: #eef; color: #039; text-decoration: none; }
a:hover { background: #039; color: #eef; }

/* Override the base stylesheets Anchor inside a table cell */
td > a {
  background: transparent;
  color: #039;
  text-decoration: none;
}

/* and inside a section title */
.section-title > a {
  background: transparent;
  color: #eee;
  text-decoration: none;
}

/* === Structural elements =================================== */

div#index {
    margin: 0;
    margin-left: -40px;
    padding: 0;
    font-size: 90%;
}


div#index a {
    margin-left: 0.7em;
}

div#index .section-bar {
   margin-left: 0px;
   padding-left: 0.7em;
   background: #ccc;
   font-size: small;
}


div#classHeader, div#fileHeader {
    width: auto;
    color: white;
    padding: 0.5em 1.5em 0.5em 1.5em;
    margin: 0;
    margin-left: -40px;
    border-bottom: 3px solid #006;
}

div#classHeader a, div#fileHeader a {
    background: inherit;
    color: white;
}

div#classHeader td, div#fileHeader td {
    background: inherit;
    color: white;
}


div#fileHeader {
    background: #057;
}

div#classHeader {
    background: #048;
}


.class-name-in-header {
  font-size:  180%;
  font-weight: bold;
}


div#bodyContent {
    padding: 0 1.5em 0 1.5em;
}

div#description {
    padding: 0.5em 1.5em;
    background: #efefef;
    border: 1px dotted #999;
}

div#description h1,h2,h3,h4,h5,h6 {
    color: #125;;
    background: transparent;
}

div#validator-badges {
    text-align: center;
}
div#validator-badges img { border: 0; }

div#copyright {
    color: #333;
    background: #efefef;
    font: 0.75em sans-serif;
    margin-top: 5em;
    margin-bottom: 0;
    padding: 0.5em 2em;
}


/* === Classes =================================== */

table.header-table {
    color: white;
    font-size: small;
}

.type-note {
    font-size: small;
    color: #DEDEDE;
}

.xxsection-bar {
    background: #eee;
    color: #333;
    padding: 3px;
}

.section-bar {
   color: #333;
   border-bottom: 1px solid #999;
    margin-left: -20px;
}


.section-title {
    background: #79a;
    color: #eee;
    padding: 3px;
    margin-top: 2em;
    margin-left: -30px;
    border: 1px solid #999;
}

.top-aligned-row {  vertical-align: top }
.bottom-aligned-row { vertical-align: bottom }

/* --- Context section classes ----------------------- */

.context-row { }
.context-item-name { font-family: monospace; font-weight: bold; color: black; }
.context-item-value { font-size: small; color: #448; }
.context-item-desc { color: #333; padding-left: 2em; }

/* --- Method classes -------------------------- */
.method-detail {
    background: #efefef;
    padding: 0;
    margin-top: 0.5em;
    margin-bottom: 1em;
    border: 1px dotted #ccc;
}
.method-heading {
  color: black;
  background: #ccc;
  border-bottom: 1px solid #666;
  padding: 0.2em 0.5em 0 0.5em;
}
.method-signature { color: black; background: inherit; }
.method-name { font-weight: bold; }
.method-args { font-style: italic; }
.method-description { padding: 0 0.5em 0 0.5em; }

/* --- Source code sections -------------------- */

a.source-toggle { font-size: 90%; }
div.method-source-code {
    background: #262626;
    color: #ffdead;
    margin: 1em;
    padding: 0.5em;
    border: 1px dashed #999;
    overflow: hidden;
}

div.method-source-code pre { color: #ffdead; overflow: hidden; }

/* --- Ruby keyword styles --------------------- */

.standalone-code { background: #221111; color: #ffdead; overflow: hidden; }

.ruby-constant  { color: #7fffd4; background: transparent; }
.ruby-keyword { color: #00ffff; background: transparent; }
.ruby-ivar    { color: #eedd82; background: transparent; }
.ruby-operator  { color: #00ffee; background: transparent; }
.ruby-identifier { color: #ffdead; background: transparent; }
.ruby-node    { color: #ffa07a; background: transparent; }
.ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
.ruby-regexp  { color: #ffa07a; background: transparent; }
.ruby-value   { color: #7fffd4; background: transparent; }
  RDOC_CSS

  RDOC_NO_DOCUMENTATION = <<-'NO_DOC'
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Found documentation</title>
    <link rel="stylesheet" href="gem-server-rdoc-style.css" type="text/css" media="screen" />
  </head>
  <body>
    <div id="fileHeader">
<%= SEARCH %>
      <h1>No documentation found</h1>
    </div>

    <div id="bodyContent">
      <div id="contextContent">
        <div id="description">
          <p>No gems matched <%= h query.inspect %></p>

          <p>
            Back to <a href="/">complete gem index</a>
          </p>

        </div>
      </div>
    </div>
    <div id="validator-badges">
      <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
    </div>
  </body>
</html>
  NO_DOC

  RDOC_SEARCH_TEMPLATE = <<-'RDOC_SEARCH'
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Found documentation</title>
    <link rel="stylesheet" href="gem-server-rdoc-style.css" type="text/css" media="screen" />
  </head>
  <body>
    <div id="fileHeader">
<%= SEARCH %>
      <h1>Found documentation</h1>
    </div>
    <!-- banner header -->

    <div id="bodyContent">
      <div id="contextContent">
        <div id="description">
          <h1>Summary</h1>
          <p><%=doc_items.length%> documentation topics found.</p>
          <h1>Topics</h1>

          <dl>
          <% doc_items.each do |doc_item| %>
            <dt>
              <b><%=doc_item[:name]%></b>
              <a href="<%=doc_item[:url]%>">[rdoc]</a>
            </dt>
            <dd>
              <%=doc_item[:summary]%>
              <br/>
              <br/>
            </dd>
          <% end %>
          </dl>

          <p>
            Back to <a href="/">complete gem index</a>
          </p>

        </div>
      </div>
    </div>
    <div id="validator-badges">
      <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
    </div>
  </body>
</html>
  RDOC_SEARCH

  def self.run(options)
    new(options[:gemdir], options[:port], options[:daemon],
        options[:launch], options[:addresses]).run
  end

  def initialize(gem_dirs, port, daemon, launch = nil, addresses = nil)
    Gem::RDoc.load_rdoc
    Socket.do_not_reverse_lookup = true

    @gem_dirs  = Array gem_dirs
    @port      = port
    @daemon    = daemon
    @launch    = launch
    @addresses = addresses

    logger  = WEBrick::Log.new nil, WEBrick::BasicLog::FATAL
    @server = WEBrick::HTTPServer.new :DoNotListen => true, :Logger => logger

    @spec_dirs = @gem_dirs.map { |gem_dir| File.join gem_dir, 'specifications' }
    @spec_dirs.reject! { |spec_dir| !File.directory? spec_dir }

    reset_gems

    @have_rdoc_4_plus = nil
  end

  def add_date res
    res['date'] = @spec_dirs.map do |spec_dir|
      File.stat(spec_dir).mtime
    end.max
  end

  def doc_root gem_name
    if have_rdoc_4_plus? then
      "/doc_root/#{gem_name}/"
    else
      "/doc_root/#{gem_name}/rdoc/index.html"
    end
  end

  def have_rdoc_4_plus?
    @have_rdoc_4_plus ||=
      Gem::Requirement.new('>= 4.0.0.preview2').satisfied_by? Gem::RDoc.rdoc_version
  end

  def latest_specs(req, res)
    reset_gems

    res['content-type'] = 'application/x-gzip'

    add_date res

    latest_specs = Gem::Specification.latest_specs

    specs = latest_specs.sort.map do |spec|
      platform = spec.original_platform || Gem::Platform::RUBY
      [spec.name, spec.version, platform]
    end

    specs = Marshal.dump specs

    if req.path =~ /\.gz$/ then
      specs = Gem.gzip specs
      res['content-type'] = 'application/x-gzip'
    else
      res['content-type'] = 'application/octet-stream'
    end

    if req.request_method == 'HEAD' then
      res['content-length'] = specs.length
    else
      res.body << specs
    end
  end

  ##
  # Creates server sockets based on the addresses option.  If no addresses
  # were given a server socket for all interfaces is created.

  def listen addresses = @addresses
    addresses = [nil] unless addresses

    listeners = 0

    addresses.each do |address|
      begin
        @server.listen address, @port
        @server.listeners[listeners..-1].each do |listener|
          host, port = listener.addr.values_at 2, 1
          host = "[#{host}]" if host =~ /:/ # we don't reverse lookup
          say "Server started at http://#{host}:#{port}"
        end

        listeners = @server.listeners.length
      rescue SystemCallError
        next
      end
    end

    if @server.listeners.empty? then
      say "Unable to start a server."
      say "Check for running servers or your --bind and --port arguments"
      terminate_interaction 1
    end
  end

  def prerelease_specs req, res
    reset_gems

    res['content-type'] = 'application/x-gzip'

    add_date res

    specs = Gem::Specification.select do |spec|
      spec.version.prerelease?
    end.sort.map do |spec|
      platform = spec.original_platform || Gem::Platform::RUBY
      [spec.name, spec.version, platform]
    end

    specs = Marshal.dump specs

    if req.path =~ /\.gz$/ then
      specs = Gem.gzip specs
      res['content-type'] = 'application/x-gzip'
    else
      res['content-type'] = 'application/octet-stream'
    end

    if req.request_method == 'HEAD' then
      res['content-length'] = specs.length
    else
      res.body << specs
    end
  end

  def quick(req, res)
    reset_gems

    res['content-type'] = 'text/plain'
    add_date res

    case req.request_uri.path
    when %r|^/quick/(Marshal.#{Regexp.escape Gem.marshal_version}/)?(.*?)-([0-9.]+[^-]*?)(-.*?)?\.gemspec\.rz$| then
      marshal_format, name, version, platform = $1, $2, $3, $4
      specs = Gem::Specification.find_all_by_name name, version

      selector = [name, version, platform].map(&:inspect).join ' '

      platform = if platform then
                   Gem::Platform.new platform.sub(/^-/, '')
                 else
                   Gem::Platform::RUBY
                 end

      specs = specs.select { |s| s.platform == platform }

      if specs.empty? then
        res.status = 404
        res.body = "No gems found matching #{selector}"
      elsif specs.length > 1 then
        res.status = 500
        res.body = "Multiple gems found matching #{selector}"
      elsif marshal_format then
        res['content-type'] = 'application/x-deflate'
        res.body << Gem.deflate(Marshal.dump(specs.first))
      end
    else
      raise WEBrick::HTTPStatus::NotFound, "`#{req.path}' not found."
    end
  end

  def root(req, res)
    reset_gems

    add_date res

    raise WEBrick::HTTPStatus::NotFound, "`#{req.path}' not found." unless
      req.path == '/'

    specs = []
    total_file_count = 0

    Gem::Specification.each do |spec|
      total_file_count += spec.files.size
      deps = spec.dependencies.map { |dep|
        {
          "name"    => dep.name,
          "type"    => dep.type,
          "version" => dep.requirement.to_s,
        }
      }

      deps = deps.sort_by { |dep| [dep["name"].downcase, dep["version"]] }
      deps.last["is_last"] = true unless deps.empty?

      # executables
      executables = spec.executables.sort.collect { |exec| {"executable" => exec} }
      executables = nil if executables.empty?
      executables.last["is_last"] = true if executables

      # Pre-process spec homepage for safety reasons
      begin
        homepage_uri = URI.parse(spec.homepage)
        if [URI::HTTP, URI::HTTPS].member? homepage_uri.class
          homepage_uri = spec.homepage
        else
          homepage_uri = "."
        end
      rescue URI::InvalidURIError
        homepage_uri = "."
      end

      specs << {
        "authors"             => spec.authors.sort.join(", "),
        "date"                => spec.date.to_s,
        "dependencies"        => deps,
        "doc_path"            => doc_root(spec.full_name),
        "executables"         => executables,
        "only_one_executable" => (executables && executables.size == 1),
        "full_name"           => spec.full_name,
        "has_deps"            => !deps.empty?,
        "homepage"            => homepage_uri,
        "name"                => spec.name,
        "rdoc_installed"      => Gem::RDoc.new(spec).rdoc_installed?,
        "ri_installed"        => Gem::RDoc.new(spec).ri_installed?,
        "summary"             => spec.summary,
        "version"             => spec.version.to_s,
      }
    end

    specs << {
      "authors" => "Chad Fowler, Rich Kilmer, Jim Weirich, Eric Hodel and others",
      "dependencies" => [],
      "doc_path" => doc_root("rubygems-#{Gem::VERSION}"),
      "executables" => [{"executable" => 'gem', "is_last" => true}],
      "only_one_executable" => true,
      "full_name" => "rubygems-#{Gem::VERSION}",
      "has_deps" => false,
      "homepage" => "http://docs.rubygems.org/",
      "name" => 'rubygems',
      "ri_installed" => true,
      "summary" => "RubyGems itself",
      "version" => Gem::VERSION,
    }

    specs = specs.sort_by { |spec| [spec["name"].downcase, spec["version"]] }
    specs.last["is_last"] = true

    # tag all specs with first_name_entry
    last_spec = nil
    specs.each do |spec|
      is_first = last_spec.nil? || (last_spec["name"].downcase != spec["name"].downcase)
      spec["first_name_entry"] = is_first
      last_spec = spec
    end

    # create page from template
    template = ERB.new(DOC_TEMPLATE)
    res['content-type'] = 'text/html'

    values = { "gem_count" => specs.size.to_s, "specs" => specs,
               "total_file_count" => total_file_count.to_s }

    # suppress 1.9.3dev warning about unused variable
    values = values

    result = template.result binding
    res.body = result
  end

  ##
  # Can be used for quick navigation to the rdoc documentation.  You can then
  # define a search shortcut for your browser.  E.g. in Firefox connect
  # 'shortcut:rdoc' to http://localhost:8808/rdoc?q=%s template. Then you can
  # directly open the ActionPack documentation by typing 'rdoc actionp'. If
  # there are multiple hits for the search term, they are presented as a list
  # with links.
  #
  # Search algorithm aims for an intuitive search:
  # 1. first try to find the gems and documentation folders which name
  #    starts with the search term
  # 2. search for entries, that *contain* the search term
  # 3. show all the gems
  #
  # If there is only one search hit, user is immediately redirected to the
  # documentation for the particular gem, otherwise a list with results is
  # shown.
  #
  # === Additional trick - install documentation for Ruby core
  #
  # Note: please adjust paths accordingly use for example 'locate yaml.rb' and
  # 'gem environment' to identify directories, that are specific for your
  # local installation
  #
  # 1. install Ruby sources
  #      cd /usr/src
  #      sudo apt-get source ruby
  #
  # 2. generate documentation
  #      rdoc -o /usr/lib/ruby/gems/1.8/doc/core/rdoc \
  #        /usr/lib/ruby/1.8 ruby1.8-1.8.7.72
  #
  # By typing 'rdoc core' you can now access the core documentation

  def rdoc(req, res)
    query = req.query['q']
    show_rdoc_for_pattern("#{query}*", res) && return
    show_rdoc_for_pattern("*#{query}*", res) && return

    template = ERB.new RDOC_NO_DOCUMENTATION

    res['content-type'] = 'text/html'
    res.body = template.result binding
  end

  ##
  # Updates the server to use the latest installed gems.

  def reset_gems # :nodoc:
    Gem::Specification.dirs = @gem_dirs
  end

  ##
  # Returns true and prepares http response, if rdoc for the requested gem
  # name pattern was found.
  #
  # The search is based on the file system content, not on the gems metadata.
  # This allows additional documentation folders like 'core' for the Ruby core
  # documentation - just put it underneath the main doc folder.

  def show_rdoc_for_pattern(pattern, res)
    found_gems = Dir.glob("{#{@gem_dirs.join ','}}/doc/#{pattern}").select {|path|
      File.exist? File.join(path, 'rdoc/index.html')
    }
    case found_gems.length
    when 0
      return false
    when 1
      new_path = File.basename(found_gems[0])
      res.status = 302
      res['Location'] = doc_root new_path
      return true
    else
      doc_items = []
      found_gems.each do |file_name|
        base_name = File.basename(file_name)
        doc_items << {
          :name    => base_name,
          :url     => doc_root(new_path),
          :summary => ''
        }
      end

      template = ERB.new(RDOC_SEARCH_TEMPLATE)
      res['content-type'] = 'text/html'
      result = template.result binding
      res.body = result
      return true
    end
  end

  def run
    listen

    WEBrick::Daemon.start if @daemon

    @server.mount_proc "/specs.#{Gem.marshal_version}", method(:specs)
    @server.mount_proc "/specs.#{Gem.marshal_version}.gz", method(:specs)

    @server.mount_proc "/latest_specs.#{Gem.marshal_version}",
                       method(:latest_specs)
    @server.mount_proc "/latest_specs.#{Gem.marshal_version}.gz",
                       method(:latest_specs)

    @server.mount_proc "/prerelease_specs.#{Gem.marshal_version}",
                       method(:prerelease_specs)
    @server.mount_proc "/prerelease_specs.#{Gem.marshal_version}.gz",
                       method(:prerelease_specs)

    @server.mount_proc "/quick/", method(:quick)

    @server.mount_proc("/gem-server-rdoc-style.css") do |req, res|
      res['content-type'] = 'text/css'
      add_date res
      res.body << RDOC_CSS
    end

    @server.mount_proc "/", method(:root)

    @server.mount_proc "/rdoc", method(:rdoc)

    file_handlers = {
      '/gems' => '/cache/',
    }

    if have_rdoc_4_plus? then
      @server.mount '/doc_root', RDoc::Servlet, '/doc_root'
    else
      file_handlers['/doc_root'] = '/doc/'
    end

    @gem_dirs.each do |gem_dir|
      file_handlers.each do |mount_point, mount_dir|
        @server.mount(mount_point, WEBrick::HTTPServlet::FileHandler,
                      File.join(gem_dir, mount_dir), true)
      end
    end

    trap("INT") { @server.shutdown; exit! }
    trap("TERM") { @server.shutdown; exit! }

    launch if @launch

    @server.start
  end

  def specs(req, res)
    reset_gems

    add_date res

    specs = Gem::Specification.sort_by(&:sort_obj).map do |spec|
      platform = spec.original_platform || Gem::Platform::RUBY
      [spec.name, spec.version, platform]
    end

    specs = Marshal.dump specs

    if req.path =~ /\.gz$/ then
      specs = Gem.gzip specs
      res['content-type'] = 'application/x-gzip'
    else
      res['content-type'] = 'application/octet-stream'
    end

    if req.request_method == 'HEAD' then
      res['content-length'] = specs.length
    else
      res.body << specs
    end
  end

  def launch
    listeners = @server.listeners.map{|l| l.addr[2] }

    # TODO: 0.0.0.0 == any, not localhost.
    host = listeners.any?{|l| l == '0.0.0.0'} ? 'localhost' : listeners.first

    say "Launching browser to http://#{host}:#{@port}"

    system("#{@launch} http://#{host}:#{@port}")
  end
end
lib64/ruby/2.2.0/rubygems/basic_specification.rb000064400000015243150402106260015250 0ustar00##
# BasicSpecification is an abstract class which implements some common code
# used by both Specification and StubSpecification.

class Gem::BasicSpecification

  ##
  # Allows installation of extensions for git: gems.

  attr_writer :base_dir # :nodoc:

  ##
  # Sets the directory where extensions for this gem will be installed.

  attr_writer :extension_dir # :nodoc:

  ##
  # Is this specification ignored for activation purposes?

  attr_writer :ignored # :nodoc:

  ##
  # The path this gemspec was loaded from.  This attribute is not persisted.

  attr_reader :loaded_from

  ##
  # Allows correct activation of git: and path: gems.

  attr_writer :full_gem_path # :nodoc:

  def self.default_specifications_dir
    File.join(Gem.default_dir, "specifications", "default")
  end

  ##
  # True when the gem has been activated

  def activated?
    raise NotImplementedError
  end

  ##
  # Returns the full path to the base gem directory.
  #
  # eg: /usr/local/lib/ruby/gems/1.8

  def base_dir
    return Gem.dir unless loaded_from
    @base_dir ||= if default_gem? then
                    File.dirname File.dirname File.dirname loaded_from
                  else
                    File.dirname File.dirname loaded_from
                  end
  end

  ##
  # Return true if this spec can require +file+.

  def contains_requirable_file? file
    @contains_requirable_file ||= {}
    @contains_requirable_file[file] ||=
    begin
      if instance_variable_defined?(:@ignored) or
         instance_variable_defined?('@ignored') then
        return false
      elsif missing_extensions? then
        @ignored = true

        warn "Ignoring #{full_name} because its extensions are not built.  " +
             "Try: gem pristine #{name} --version #{version}"
        return false
      end

      suffixes = Gem.suffixes

      full_require_paths.any? do |dir|
        base = "#{dir}/#{file}"
        suffixes.any? { |suf| File.file? "#{base}#{suf}" }
      end
    end ? :yes : :no
    @contains_requirable_file[file] == :yes
  end

  def default_gem?
    loaded_from &&
      File.dirname(loaded_from) == self.class.default_specifications_dir
  end

  ##
  # Returns full path to the directory where gem's extensions are installed.

  def extension_dir
    @extension_dir ||= File.expand_path File.join(extensions_dir, full_name)
  end

  ##
  # Returns path to the extensions directory.

  def extensions_dir
    @extensions_dir ||= Gem.default_ext_dir_for(base_dir) ||
      File.join(base_dir, 'extensions', Gem::Platform.local.to_s,
                Gem.extension_api_version)
  end

  def find_full_gem_path # :nodoc:
    # TODO: also, shouldn't it default to full_name if it hasn't been written?
    path = File.expand_path File.join(gems_dir, full_name)
    path.untaint
    path if File.directory? path
  end

  private :find_full_gem_path

  ##
  # The full path to the gem (install path + full name).

  def full_gem_path
    # TODO: This is a heavily used method by gems, so we'll need
    # to aleast just alias it to #gem_dir rather than remove it.
    @full_gem_path ||= find_full_gem_path
  end

  ##
  # Returns the full name (name-version) of this Gem.  Platform information
  # is included (name-version-platform) if it is specified and not the
  # default Ruby platform.

  def full_name
    if platform == Gem::Platform::RUBY or platform.nil? then
      "#{name}-#{version}".untaint
    else
      "#{name}-#{version}-#{platform}".untaint
    end
  end

  ##
  # Full paths in the gem to add to <code>$LOAD_PATH</code> when this gem is
  # activated.

  def full_require_paths
    @full_require_paths ||=
    begin
      full_paths = raw_require_paths.map do |path|
        File.join full_gem_path, path
      end

      full_paths.unshift extension_dir unless @extensions.nil? || @extensions.empty?

      full_paths
    end
  end

  ##
  # Full path of the target library file.
  # If the file is not in this gem, return nil.

  def to_fullpath path
    if activated? then
      @paths_map ||= {}
      @paths_map[path] ||=
      begin
        fullpath = nil
        suffixes = Gem.suffixes
        full_require_paths.find do |dir|
          suffixes.find do |suf|
            File.file?(fullpath = "#{dir}/#{path}#{suf}")
          end
        end ? fullpath : nil
      end
    else
      nil
    end
  end

  ##
  # Returns the full path to this spec's gem directory.
  # eg: /usr/local/lib/ruby/1.8/gems/mygem-1.0

  def gem_dir
    @gem_dir ||= File.expand_path File.join(gems_dir, full_name)
  end

  ##
  # Returns the full path to the gems directory containing this spec's
  # gem directory. eg: /usr/local/lib/ruby/1.8/gems

  def gems_dir
    # TODO: this logic seems terribly broken, but tests fail if just base_dir
    @gems_dir ||= File.join(loaded_from && base_dir || Gem.dir, "gems")
  end

  ##
  # Set the path the Specification was loaded from. +path+ is converted to a
  # String.

  def loaded_from= path
    @loaded_from   = path && path.to_s

    @extension_dir = nil
    @extensions_dir = nil
    @full_gem_path         = nil
    @gem_dir               = nil
    @gems_dir              = nil
    @base_dir              = nil
  end

  ##
  # Name of the gem

  def name
    raise NotImplementedError
  end

  ##
  # Platform of the gem

  def platform
    raise NotImplementedError
  end

  def raw_require_paths # :nodoc:
    Array(@require_paths)
  end

  ##
  # Paths in the gem to add to <code>$LOAD_PATH</code> when this gem is
  # activated.
  #
  # See also #require_paths=
  #
  # If you have an extension you do not need to add <code>"ext"</code> to the
  # require path, the extension build process will copy the extension files
  # into "lib" for you.
  #
  # The default value is <code>"lib"</code>
  #
  # Usage:
  #
  #   # If all library files are in the root directory...
  #   spec.require_path = '.'

  def require_paths
    return raw_require_paths if @extensions.nil? || @extensions.empty?

    [extension_dir].concat raw_require_paths
  end

  ##
  # Returns the paths to the source files for use with analysis and
  # documentation tools.  These paths are relative to full_gem_path.

  def source_paths
    paths = raw_require_paths.dup

    if @extensions then
      ext_dirs = @extensions.map do |extension|
        extension.split(File::SEPARATOR, 2).first
      end.uniq

      paths.concat ext_dirs
    end

    paths.uniq
  end

  ##
  # Return a Gem::Specification from this gem

  def to_spec
    raise NotImplementedError
  end

  ##
  # Version of the gem

  def version
    raise NotImplementedError
  end

  ##
  # Whether this specification is stubbed - i.e. we have information
  # about the gem from a stub line, without having to evaluate the
  # entire gemspec file.
  def stubbed?
    raise NotImplementedError
  end

end

lib64/ruby/2.2.0/rubygems/util/list.rb000064400000001241150402106260013210 0ustar00module Gem
  List = Struct.new(:value, :tail)

  class List
    def each
      n = self
      while n
        yield n.value
        n = n.tail
      end
    end

    def to_a
      ary = []
      n = self
      while n
        ary.unshift n.value
        n = n.tail
      end

      ary
    end

    def find
      n = self
      while n
        v = n.value
        return v if yield(v)
        n = n.tail
      end

      nil
    end

    def prepend(value)
      List.new value, self
    end

    def pretty_print q # :nodoc:
      q.pp to_a
    end

    def self.prepend(list, value)
      return List.new(value) unless list
      List.new value, list
    end
  end
end
lib64/ruby/2.2.0/rubygems/util/stringio.rb000064400000000702150402106260014074 0ustar00class Gem::StringSink
  def initialize
    @string = ""
  end

  attr_reader :string

  def write(s)
    @string += s
    s.size
  end

  def set_encoding(enc)
    @string.force_encoding enc
  end
end

class Gem::StringSource
  def initialize(str)
    @string = str.dup
  end

  def read(count=nil)
    if count
      @string.slice!(0,count)
    else
      s = @string
      @string = ""
      s
    end
  end

  alias_method :readpartial, :read
end
lib64/ruby/2.2.0/rubygems/local_remote_options.rb000064400000006572150402106260015514 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'uri'
require 'rubygems'

##
# Mixin methods for local and remote Gem::Command options.

module Gem::LocalRemoteOptions

  ##
  # Allows OptionParser to handle HTTP URIs.

  def accept_uri_http
    OptionParser.accept URI::HTTP do |value|
      begin
        uri = URI.parse value
      rescue URI::InvalidURIError
        raise OptionParser::InvalidArgument, value
      end

      unless ['http', 'https', 'file'].include?(uri.scheme)
         raise OptionParser::InvalidArgument, value
      end

      value
    end
  end

  ##
  # Add local/remote options to the command line parser.

  def add_local_remote_options
    add_option(:"Local/Remote", '-l', '--local',
               'Restrict operations to the LOCAL domain') do |value, options|
      options[:domain] = :local
    end

    add_option(:"Local/Remote", '-r', '--remote',
      'Restrict operations to the REMOTE domain') do |value, options|
      options[:domain] = :remote
    end

    add_option(:"Local/Remote", '-b', '--both',
               'Allow LOCAL and REMOTE operations') do |value, options|
      options[:domain] = :both
    end

    add_bulk_threshold_option
    add_clear_sources_option
    add_source_option
    add_proxy_option
    add_update_sources_option
  end

  ##
  # Add the --bulk-threshold option

  def add_bulk_threshold_option
    add_option(:"Local/Remote", '-B', '--bulk-threshold COUNT',
               "Threshold for switching to bulk",
               "synchronization (default #{Gem.configuration.bulk_threshold})") do
      |value, options|
      Gem.configuration.bulk_threshold = value.to_i
    end
  end

  ##
  # Add the --clear-sources option

  def add_clear_sources_option
    add_option(:"Local/Remote", '--clear-sources',
               'Clear the gem sources') do |value, options|

      Gem.sources = nil
      options[:sources_cleared] = true
    end
  end

  ##
  # Add the --http-proxy option

  def add_proxy_option
    accept_uri_http

    add_option(:"Local/Remote", '-p', '--[no-]http-proxy [URL]', URI::HTTP,
               'Use HTTP proxy for remote operations') do |value, options|
      options[:http_proxy] = (value == false) ? :no_proxy : value
      Gem.configuration[:http_proxy] = options[:http_proxy]
    end
  end

  ##
  # Add the --source option

  def add_source_option
    accept_uri_http

    add_option(:"Local/Remote", '-s', '--source URL', URI::HTTP,
               'Append URL to list of remote gem sources') do |source, options|

      source << '/' if source !~ /\/\z/

      if options.delete :sources_cleared then
        Gem.sources = [source]
      else
        Gem.sources << source unless Gem.sources.include?(source)
      end
    end
  end

  ##
  # Add the --update-sources option

  def add_update_sources_option
    add_option(:Deprecated, '-u', '--[no-]update-sources',
               'Update local source cache') do |value, options|
      Gem.configuration.update_sources = value
    end
  end

  ##
  # Is fetching of local and remote information enabled?

  def both?
    options[:domain] == :both
  end

  ##
  # Is local fetching enabled?

  def local?
    options[:domain] == :local || options[:domain] == :both
  end

  ##
  # Is remote fetching enabled?

  def remote?
    options[:domain] == :remote || options[:domain] == :both
  end

end

lib64/ruby/2.2.0/rubygems/psych_additions.rb000064400000000415150402106260014446 0ustar00# This exists just to satify bugs in marshal'd gemspecs that
# contain a reference to YAML::PrivateType. We prune these out
# in Specification._load, but if we don't have the constant, Marshal
# blows up.

module Psych # :nodoc:
  class PrivateType # :nodoc:
  end
end
lib64/ruby/2.2.0/rubygems/uninstaller.rb000064400000021336150402106260013627 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'fileutils'
require 'rubygems'
require 'rubygems/dependency_list'
require 'rubygems/rdoc'
require 'rubygems/user_interaction'

##
# An Uninstaller.
#
# The uninstaller fires pre and post uninstall hooks.  Hooks can be added
# either through a rubygems_plugin.rb file in an installed gem or via a
# rubygems/defaults/#{RUBY_ENGINE}.rb or rubygems/defaults/operating_system.rb
# file.  See Gem.pre_uninstall and Gem.post_uninstall for details.

class Gem::Uninstaller

  include Gem::UserInteraction

  ##
  # The directory a gem's executables will be installed into

  attr_reader :bin_dir

  ##
  # The gem repository the gem will be installed into

  attr_reader :gem_home

  ##
  # The Gem::Specification for the gem being uninstalled, only set during
  # #uninstall_gem

  attr_reader :spec

  ##
  # Constructs an uninstaller that will uninstall +gem+

  def initialize(gem, options = {})
    # TODO document the valid options
    @gem                = gem
    @version            = options[:version] || Gem::Requirement.default
    @gem_home           = File.expand_path(options[:install_dir] || Gem.dir)
    @force_executables  = options[:executables]
    @force_all          = options[:all]
    @force_ignore       = options[:ignore]
    @bin_dir            = options[:bin_dir]
    @format_executable  = options[:format_executable]
    @abort_on_dependent = options[:abort_on_dependent]

    # Indicate if development dependencies should be checked when
    # uninstalling. (default: false)
    #
    @check_dev         = options[:check_dev]

    if options[:force]
      @force_all = true
      @force_ignore = true
    end

    # only add user directory if install_dir is not set
    @user_install = false
    @user_install = options[:user_install] unless options[:install_dir]
  end

  ##
  # Performs the uninstall of the gem.  This removes the spec, the Gem
  # directory, and the cached .gem file.

  def uninstall
    dependency = Gem::Dependency.new @gem, @version

    list = []

    dirs =
      Gem::Specification.dirs +
      [Gem::Specification.default_specifications_dir]

    Gem::Specification.each_spec dirs do |spec|
      next unless dependency.matches_spec? spec

      list << spec
    end

    default_specs, list = list.partition do |spec|
      spec.default_gem?
    end

    list, other_repo_specs = list.partition do |spec|
      @gem_home == spec.base_dir or
        (@user_install and spec.base_dir == Gem.user_dir)
    end

    list.sort!

    if list.empty? then
      if other_repo_specs.empty?
        if default_specs.empty?
          raise Gem::InstallError, "gem #{@gem.inspect} is not installed"
        else
          message =
            "gem #{@gem.inspect} cannot be uninstalled " +
            "because it is a default gem"
          raise Gem::InstallError, message
        end
      end

      other_repos = other_repo_specs.map { |spec| spec.base_dir }.uniq

      message = ["#{@gem} is not installed in GEM_HOME, try:"]
      message.concat other_repos.map { |repo|
        "\tgem uninstall -i #{repo} #{@gem}"
      }

      raise Gem::InstallError, message.join("\n")
    elsif @force_all then
      remove_all list

    elsif list.size > 1 then
      gem_names = list.map { |gem| gem.full_name }
      gem_names << "All versions"

      say
      _, index = choose_from_list "Select gem to uninstall:", gem_names

      if index == list.size then
        remove_all list
      elsif index >= 0 && index < list.size then
        uninstall_gem list[index]
      else
        say "Error: must enter a number [1-#{list.size+1}]"
      end
    else
      uninstall_gem list.first
    end
  end

  ##
  # Uninstalls gem +spec+

  def uninstall_gem(spec)
    @spec = spec

    unless dependencies_ok? spec
      if abort_on_dependent? || !ask_if_ok(spec)
        raise Gem::DependencyRemovalException,
          "Uninstallation aborted due to dependent gem(s)"
      end
    end

    Gem.pre_uninstall_hooks.each do |hook|
      hook.call self
    end

    remove_executables @spec
    remove @spec

    Gem.post_uninstall_hooks.each do |hook|
      hook.call self
    end

    @spec = nil
  end

  ##
  # Removes installed executables and batch files (windows only) for
  # +gemspec+.

  def remove_executables(spec)
    return if spec.nil? or spec.executables.empty?

    executables = spec.executables.clone

    # Leave any executables created by other installed versions
    # of this gem installed.

    list = Gem::Specification.find_all { |s|
      s.name == spec.name && s.version != spec.version
    }

    list.each do |s|
      s.executables.each do |exe_name|
        executables.delete exe_name
      end
    end

    return if executables.empty?

    executables = executables.map { |exec| formatted_program_filename exec }

    remove = if @force_executables.nil? then
               ask_yes_no("Remove executables:\n" +
                          "\t#{executables.join ', '}\n\n" +
                          "in addition to the gem?",
                          true)
             else
               @force_executables
             end

    if remove then
      bin_dir = @bin_dir || Gem.bindir(spec.base_dir)

      raise Gem::FilePermissionError, bin_dir unless File.writable? bin_dir

      executables.each do |exe_name|
        say "Removing #{exe_name}"

        exe_file = File.join bin_dir, exe_name

        FileUtils.rm_f exe_file
        FileUtils.rm_f "#{exe_file}.bat"
      end
    else
      say "Executables and scripts will remain installed."
    end
  end

  ##
  # Removes all gems in +list+.
  #
  # NOTE: removes uninstalled gems from +list+.

  def remove_all(list)
    list.each { |spec| uninstall_gem spec }
  end

  ##
  # spec:: the spec of the gem to be uninstalled
  # list:: the list of all such gems
  #
  # Warning: this method modifies the +list+ parameter.  Once it has
  # uninstalled a gem, it is removed from that list.

  def remove(spec)
    unless path_ok?(@gem_home, spec) or
           (@user_install and path_ok?(Gem.user_dir, spec)) then
      e = Gem::GemNotInHomeException.new \
            "Gem '#{spec.full_name}' is not installed in directory #{@gem_home}"
      e.spec = spec

      raise e
    end

    raise Gem::FilePermissionError, spec.base_dir unless
      File.writable?(spec.base_dir)

    FileUtils.rm_rf spec.full_gem_path
    FileUtils.rm_rf spec.extension_dir

    old_platform_name = spec.original_name
    gemspec           = spec.spec_file

    unless File.exist? gemspec then
      gemspec = File.join(File.dirname(gemspec), "#{old_platform_name}.gemspec")
    end

    FileUtils.rm_rf gemspec

    gem = spec.cache_file
    gem = File.join(spec.cache_dir, "#{old_platform_name}.gem") unless
      File.exist? gem

    FileUtils.rm_rf gem

    Gem::RDoc.new(spec).remove

    say "Successfully uninstalled #{spec.full_name}"

    Gem::Specification.remove_spec spec
  end

  ##
  # Is +spec+ in +gem_dir+?

  def path_ok?(gem_dir, spec)
    full_path     = File.join gem_dir, 'gems', spec.full_name
    original_path = File.join gem_dir, 'gems', spec.original_name

    full_path == spec.full_gem_path || original_path == spec.full_gem_path
  end

  ##
  # Returns true if it is OK to remove +spec+ or this is a forced
  # uninstallation.

  def dependencies_ok? spec # :nodoc:
    return true if @force_ignore

    deplist = Gem::DependencyList.from_specs
    deplist.ok_to_remove?(spec.full_name, @check_dev)
  end

  ##
  # Should the uninstallation abort if a dependency will go unsatisfied?
  #
  # See ::new.

  def abort_on_dependent? # :nodoc:
    @abort_on_dependent
  end

  ##
  # Asks if it is OK to remove +spec+.  Returns true if it is OK.

  def ask_if_ok spec # :nodoc:
    msg = ['']
    msg << 'You have requested to uninstall the gem:'
    msg << "\t#{spec.full_name}"
    msg << ''

    siblings = Gem::Specification.select do |s|
                 s.name == spec.name && s.full_name != spec.full_name
               end

    spec.dependent_gems.each do |dep_spec, dep, satlist|
      unless siblings.any? { |s| s.satisfies_requirement? dep }
        msg << "#{dep_spec.name}-#{dep_spec.version} depends on #{dep}"
      end
    end

    msg << 'If you remove this gem, these dependencies will not be met.'
    msg << 'Continue with Uninstall?'
    return ask_yes_no(msg.join("\n"), false)
  end

  ##
  # Returns the formatted version of the executable +filename+

  def formatted_program_filename filename # :nodoc:
    # TODO perhaps the installer should leave a small manifest
    # of what it did for us to find rather than trying to recreate
    # it again.
    if @format_executable then
      require 'rubygems/installer'
      Gem::Installer.exec_format % File.basename(filename)
    else
      filename
    end
  end
end
lib64/ruby/2.2.0/rubygems/uri_formatter.rb000064400000001372150402106260014147 0ustar00require 'cgi'
require 'uri'

##
# The UriFormatter handles URIs from user-input and escaping.
#
#   uf = Gem::UriFormatter.new 'example.com'
#
#   p uf.normalize #=> 'http://example.com'

class Gem::UriFormatter

  ##
  # The URI to be formatted.

  attr_reader :uri

  ##
  # Creates a new URI formatter for +uri+.

  def initialize uri
    @uri = uri
  end

  ##
  # Escapes the #uri for use as a CGI parameter

  def escape
    return unless @uri
    CGI.escape @uri
  end

  ##
  # Normalize the URI by adding "http://" if it is missing.

  def normalize
    (@uri =~ /^(https?|ftp|file):/i) ? @uri : "http://#{@uri}"
  end

  ##
  # Unescapes the #uri which came from a CGI parameter

  def unescape
    return unless @uri
    CGI.unescape @uri
  end

end

lib64/ruby/2.2.0/rubygems/package/tar_reader/entry.rb000064400000004326150402106260016133 0ustar00# -*- coding: utf-8 -*-
#++
# Copyright (C) 2004 Mauricio Julio Fernández Pradier
# See LICENSE.txt for additional licensing information.
#--

##
# Class for reading entries out of a tar file

class Gem::Package::TarReader::Entry

  ##
  # Header for this tar entry

  attr_reader :header

  ##
  # Creates a new tar entry for +header+ that will be read from +io+

  def initialize(header, io)
    @closed = false
    @header = header
    @io = io
    @orig_pos = @io.pos
    @read = 0
  end

  def check_closed # :nodoc:
    raise IOError, "closed #{self.class}" if closed?
  end

  ##
  # Number of bytes read out of the tar entry

  def bytes_read
    @read
  end

  ##
  # Closes the tar entry

  def close
    @closed = true
  end

  ##
  # Is the tar entry closed?

  def closed?
    @closed
  end

  ##
  # Are we at the end of the tar entry?

  def eof?
    check_closed

    @read >= @header.size
  end

  ##
  # Full name of the tar entry

  def full_name
    if @header.prefix != "" then
      File.join @header.prefix, @header.name
    else
      @header.name
    end
  rescue ArgumentError => e
    raise unless e.message == 'string contains null byte'
    raise Gem::Package::TarInvalidError,
          'tar is corrupt, name contains null byte'
  end

  ##
  # Read one byte from the tar entry

  def getc
    check_closed

    return nil if @read >= @header.size

    ret = @io.getc
    @read += 1 if ret

    ret
  end

  ##
  # Is this tar entry a directory?

  def directory?
    @header.typeflag == "5"
  end

  ##
  # Is this tar entry a file?

  def file?
    @header.typeflag == "0"
  end

  ##
  # The position in the tar entry

  def pos
    check_closed

    bytes_read
  end

  ##
  # Reads +len+ bytes from the tar file entry, or the rest of the entry if
  # nil

  def read(len = nil)
    check_closed

    return nil if @read >= @header.size

    len ||= @header.size - @read
    max_read = [len, @header.size - @read].min

    ret = @io.read max_read
    @read += ret.size

    ret
  end

  alias readpartial read # :nodoc:

  ##
  # Rewinds to the beginning of the tar file entry

  def rewind
    check_closed

    raise Gem::Package::NonSeekableIO unless @io.respond_to? :pos=

    @io.pos = @orig_pos
    @read = 0
  end

end

lib64/ruby/2.2.0/rubygems/package/tar_test_case.rb000064400000006752150402106260015507 0ustar00require 'rubygems/test_case'
require 'rubygems/package'

##
# A test case for Gem::Package::Tar* classes

class Gem::Package::TarTestCase < Gem::TestCase

  def ASCIIZ(str, length)
    str + "\0" * (length - str.length)
  end

  def SP(s)
    s + " "
  end

  def SP_Z(s)
    s + " \0"
  end

  def Z(s)
    s + "\0"
  end

  def assert_headers_equal(expected, actual)
    expected = expected.to_s unless String === expected
    actual = actual.to_s unless String === actual

    fields = %w[
      name 100
      mode 8
      uid 8
      gid 8
      size 12
      mtime 12
      checksum 8
      typeflag 1
      linkname 100
      magic 6
      version 2
      uname 32
      gname 32
      devmajor 8
      devminor 8
      prefix 155
    ]

    offset = 0

    until fields.empty? do
      name = fields.shift
      length = fields.shift.to_i

      if name == "checksum" then
        chksum_off = offset
        offset += length
        next
      end

      assert_equal expected[offset, length], actual[offset, length],
                   "Field #{name} of the tar header differs."

      offset += length
    end

    assert_equal expected[chksum_off, 8], actual[chksum_off, 8]
  end

  def calc_checksum(header)
    sum = header.unpack("C*").inject{|s,a| s + a}
    SP(Z(to_oct(sum, 6)))
  end

  def header(type, fname, dname, length, mode, mtime, checksum = nil)
    checksum ||= " " * 8

    arr = [                  # struct tarfile_entry_posix
      ASCIIZ(fname, 100),    # char name[100];     ASCII + (Z unless filled)
      Z(to_oct(mode, 7)),    # char mode[8];       0 padded, octal null
      Z(to_oct(0, 7)),       # char uid[8];        ditto
      Z(to_oct(0, 7)),       # char gid[8];        ditto
      Z(to_oct(length, 11)), # char size[12];      0 padded, octal, null
      Z(to_oct(mtime, 11)),  # char mtime[12];     0 padded, octal, null
      checksum,              # char checksum[8];   0 padded, octal, null, space
      type,                  # char typeflag[1];   file: "0"  dir: "5"
      "\0" * 100,            # char linkname[100]; ASCII + (Z unless filled)
      "ustar\0",             # char magic[6];      "ustar\0"
      "00",                  # char version[2];    "00"
      ASCIIZ("wheel", 32),   # char uname[32];     ASCIIZ
      ASCIIZ("wheel", 32),   # char gname[32];     ASCIIZ
      Z(to_oct(0, 7)),       # char devmajor[8];   0 padded, octal, null
      Z(to_oct(0, 7)),       # char devminor[8];   0 padded, octal, null
      ASCIIZ(dname, 155)     # char prefix[155];   ASCII + (Z unless filled)
    ]

    format = "C100C8C8C8C12C12C8CC100C6C2C32C32C8C8C155"
    h = if RUBY_VERSION >= "1.9" then
          arr.join
        else
          arr = arr.join("").split(//).map{|x| x[0]}
          arr.pack format
        end
    ret = h + "\0" * (512 - h.size)
    assert_equal(512, ret.size)
    ret
  end

  def tar_dir_header(name, prefix, mode, mtime)
    h = header("5", name, prefix, 0, mode, mtime)
    checksum = calc_checksum(h)
    header("5", name, prefix, 0, mode, mtime, checksum)
  end

  def tar_file_header(fname, dname, mode, length, mtime)
    h = header("0", fname, dname, length, mode, mtime)
    checksum = calc_checksum(h)
    header("0", fname, dname, length, mode, mtime, checksum)
  end

  def to_oct(n, pad_size)
    "%0#{pad_size}o" % n
  end

  def util_entry(tar)
    io = TempIO.new tar

    header = Gem::Package::TarHeader.from io

    Gem::Package::TarReader::Entry.new header, io
  end

  def util_dir_entry
    util_entry tar_dir_header("foo", "bar", 0, Time.now)
  end

end

lib64/ruby/2.2.0/rubygems/package/tar_reader.rb000064400000004566150402106260015000 0ustar00# -*- coding: utf-8 -*-
#--
# Copyright (C) 2004 Mauricio Julio Fernández Pradier
# See LICENSE.txt for additional licensing information.
#++

##
# TarReader reads tar files and allows iteration over their items

class Gem::Package::TarReader

  include Enumerable

  ##
  # Raised if the tar IO is not seekable

  class UnexpectedEOF < StandardError; end

  ##
  # Creates a new TarReader on +io+ and yields it to the block, if given.

  def self.new(io)
    reader = super

    return reader unless block_given?

    begin
      yield reader
    ensure
      reader.close
    end

    nil
  end

  ##
  # Creates a new tar file reader on +io+ which needs to respond to #pos,
  # #eof?, #read, #getc and #pos=

  def initialize(io)
    @io = io
    @init_pos = io.pos
  end

  ##
  # Close the tar file

  def close
  end

  ##
  # Iterates over files in the tarball yielding each entry

  def each
    return enum_for __method__ unless block_given?

    until @io.eof? do
      header = Gem::Package::TarHeader.from @io
      return if header.empty?

      entry = Gem::Package::TarReader::Entry.new header, @io
      size = entry.header.size

      yield entry

      skip = (512 - (size % 512)) % 512
      pending = size - entry.bytes_read

      begin
        # avoid reading...
        @io.seek pending, IO::SEEK_CUR
        pending = 0
      rescue Errno::EINVAL, NameError
        while pending > 0 do
          bytes_read = @io.read([pending, 4096].min).size
          raise UnexpectedEOF if @io.eof?
          pending -= bytes_read
        end
      end

      @io.read skip # discard trailing zeros

      # make sure nobody can use #read, #getc or #rewind anymore
      entry.close
    end
  end

  alias each_entry each

  ##
  # NOTE: Do not call #rewind during #each

  def rewind
    if @init_pos == 0 then
      raise Gem::Package::NonSeekableIO unless @io.respond_to? :rewind
      @io.rewind
    else
      raise Gem::Package::NonSeekableIO unless @io.respond_to? :pos=
      @io.pos = @init_pos
    end
  end

  ##
  # Seeks through the tar file until it finds the +entry+ with +name+ and
  # yields it.  Rewinds the tar file to the beginning when the block
  # terminates.

  def seek name # :yields: entry
    found = find do |entry|
      entry.full_name == name
    end

    return unless found

    return yield found
  ensure
    rewind
  end

end

require 'rubygems/package/tar_reader/entry'

lib64/ruby/2.2.0/rubygems/package/tar_writer.rb000064400000015602150402106260015043 0ustar00# -*- coding: utf-8 -*-
#--
# Copyright (C) 2004 Mauricio Julio Fernández Pradier
# See LICENSE.txt for additional licensing information.
#++

require 'digest'

##
# Allows writing of tar files

class Gem::Package::TarWriter

  class FileOverflow < StandardError; end

  ##
  # IO wrapper that allows writing a limited amount of data

  class BoundedStream

    ##
    # Maximum number of bytes that can be written

    attr_reader :limit

    ##
    # Number of bytes written

    attr_reader :written

    ##
    # Wraps +io+ and allows up to +limit+ bytes to be written

    def initialize(io, limit)
      @io = io
      @limit = limit
      @written = 0
    end

    ##
    # Writes +data+ onto the IO, raising a FileOverflow exception if the
    # number of bytes will be more than #limit

    def write(data)
      if data.bytesize + @written > @limit
        raise FileOverflow, "You tried to feed more data than fits in the file."
      end
      @io.write data
      @written += data.bytesize
      data.bytesize
    end

  end

  ##
  # IO wrapper that provides only #write

  class RestrictedStream

    ##
    # Creates a new RestrictedStream wrapping +io+

    def initialize(io)
      @io = io
    end

    ##
    # Writes +data+ onto the IO

    def write(data)
      @io.write data
    end

  end

  ##
  # Creates a new TarWriter, yielding it if a block is given

  def self.new(io)
    writer = super

    return writer unless block_given?

    begin
      yield writer
    ensure
      writer.close
    end

    nil
  end

  ##
  # Creates a new TarWriter that will write to +io+

  def initialize(io)
    @io = io
    @closed = false
  end

  ##
  # Adds file +name+ with permissions +mode+, and yields an IO for writing the
  # file to

  def add_file(name, mode) # :yields: io
    check_closed

    raise Gem::Package::NonSeekableIO unless @io.respond_to? :pos=

    name, prefix = split_name name

    init_pos = @io.pos
    @io.write "\0" * 512 # placeholder for the header

    yield RestrictedStream.new(@io) if block_given?

    size = @io.pos - init_pos - 512

    remainder = (512 - (size % 512)) % 512
    @io.write "\0" * remainder

    final_pos = @io.pos
    @io.pos = init_pos

    header = Gem::Package::TarHeader.new :name => name, :mode => mode,
                                         :size => size, :prefix => prefix,
                                         :mtime => Time.now

    @io.write header
    @io.pos = final_pos

    self
  end

  ##
  # Adds +name+ with permissions +mode+ to the tar, yielding +io+ for writing
  # the file.  The +digest_algorithm+ is written to a read-only +name+.sum
  # file following the given file contents containing the digest name and
  # hexdigest separated by a tab.
  #
  # The created digest object is returned.

  def add_file_digest name, mode, digest_algorithms # :yields: io
    digests = digest_algorithms.map do |digest_algorithm|
      digest = digest_algorithm.new
      digest_name =
        if digest.respond_to? :name then
          digest.name
        else
          /::([^:]+)$/ =~ digest_algorithm.name
          $1
        end

      [digest_name, digest]
    end

    digests = Hash[*digests.flatten]

    add_file name, mode do |io|
      Gem::Package::DigestIO.wrap io, digests do |digest_io|
        yield digest_io
      end
    end

    digests
  end

  ##
  # Adds +name+ with permissions +mode+ to the tar, yielding +io+ for writing
  # the file.  The +signer+ is used to add a digest file using its
  # digest_algorithm per add_file_digest and a cryptographic signature in
  # +name+.sig.  If the signer has no key only the checksum file is added.
  #
  # Returns the digest.

  def add_file_signed name, mode, signer
    digest_algorithms = [
      signer.digest_algorithm,
      Digest::SHA512,
    ].compact.uniq

    digests = add_file_digest name, mode, digest_algorithms do |io|
      yield io
    end

    signature_digest = digests.values.compact.find do |digest|
      digest_name =
        if digest.respond_to? :name then
          digest.name
        else
          /::([^:]+)$/ =~ digest.class.name
          $1
        end

      digest_name == signer.digest_name
    end

    raise "no #{signer.digest_name} in #{digests.values.compact}" unless signature_digest

    if signer.key then
      signature = signer.sign signature_digest.digest

      add_file_simple "#{name}.sig", 0444, signature.length do |io|
        io.write signature
      end
    end

    digests
  end

  ##
  # Add file +name+ with permissions +mode+ +size+ bytes long.  Yields an IO
  # to write the file to.

  def add_file_simple(name, mode, size) # :yields: io
    check_closed

    name, prefix = split_name name

    header = Gem::Package::TarHeader.new(:name => name, :mode => mode,
                                         :size => size, :prefix => prefix,
                                         :mtime => Time.now).to_s

    @io.write header
    os = BoundedStream.new @io, size

    yield os if block_given?

    min_padding = size - os.written
    @io.write("\0" * min_padding)

    remainder = (512 - (size % 512)) % 512
    @io.write("\0" * remainder)

    self
  end

  ##
  # Raises IOError if the TarWriter is closed

  def check_closed
    raise IOError, "closed #{self.class}" if closed?
  end

  ##
  # Closes the TarWriter

  def close
    check_closed

    @io.write "\0" * 1024
    flush

    @closed = true
  end

  ##
  # Is the TarWriter closed?

  def closed?
    @closed
  end

  ##
  # Flushes the TarWriter's IO

  def flush
    check_closed

    @io.flush if @io.respond_to? :flush
  end

  ##
  # Creates a new directory in the tar file +name+ with +mode+

  def mkdir(name, mode)
    check_closed

    name, prefix = split_name(name)

    header = Gem::Package::TarHeader.new :name => name, :mode => mode,
                                         :typeflag => "5", :size => 0,
                                         :prefix => prefix,
                                         :mtime => Time.now

    @io.write header

    self
  end

  ##
  # Splits +name+ into a name and prefix that can fit in the TarHeader

  def split_name(name) # :nodoc:
    if name.bytesize > 256
      raise Gem::Package::TooLongFileName.new("File \"#{name}\" has a too long path (should be 256 or less)")
    end

    if name.bytesize <= 100 then
      prefix = ""
    else
      parts = name.split(/\//)
      newname = parts.pop
      nxt = ""

      loop do
        nxt = parts.pop
        break if newname.bytesize + 1 + nxt.bytesize > 100
        newname = nxt + "/" + newname
      end

      prefix = (parts + [nxt]).join "/"
      name = newname

      if name.bytesize > 100
        raise Gem::Package::TooLongFileName.new("File \"#{prefix}/#{name}\" has a too long name (should be 100 or less)")
      end

      if prefix.bytesize > 155 then
        raise Gem::Package::TooLongFileName.new("File \"#{prefix}/#{name}\" has a too long base path (should be 155 or less)")
      end
    end

    return name, prefix
  end

end

lib64/ruby/2.2.0/rubygems/package/source.rb000064400000000052150402106260014152 0ustar00class Gem::Package::Source # :nodoc:
end

lib64/ruby/2.2.0/rubygems/package/file_source.rb000064400000001071150402106260015153 0ustar00##
# The primary source of gems is a file on disk, including all usages
# internal to rubygems.
#
# This is a private class, do not depend on it directly. Instead, pass a path
# object to `Gem::Package.new`.

class Gem::Package::FileSource < Gem::Package::Source # :nodoc: all

  attr_reader :path

  def initialize path
    @path = path
  end

  def start
    @start ||= File.read path, 20
  end

  def present?
    File.exist? path
  end

  def with_write_io &block
    open path, 'wb', &block
  end

  def with_read_io &block
    open path, 'rb', &block
  end

end

lib64/ruby/2.2.0/rubygems/package/tar_header.rb000064400000012764150402106260014765 0ustar00# -*- coding: utf-8 -*-
#--
# Copyright (C) 2004 Mauricio Julio Fernández Pradier
# See LICENSE.txt for additional licensing information.
#++

##
#--
# struct tarfile_entry_posix {
#   char name[100];     # ASCII + (Z unless filled)
#   char mode[8];       # 0 padded, octal, null
#   char uid[8];        # ditto
#   char gid[8];        # ditto
#   char size[12];      # 0 padded, octal, null
#   char mtime[12];     # 0 padded, octal, null
#   char checksum[8];   # 0 padded, octal, null, space
#   char typeflag[1];   # file: "0"  dir: "5"
#   char linkname[100]; # ASCII + (Z unless filled)
#   char magic[6];      # "ustar\0"
#   char version[2];    # "00"
#   char uname[32];     # ASCIIZ
#   char gname[32];     # ASCIIZ
#   char devmajor[8];   # 0 padded, octal, null
#   char devminor[8];   # o padded, octal, null
#   char prefix[155];   # ASCII + (Z unless filled)
# };
#++
# A header for a tar file

class Gem::Package::TarHeader

  ##
  # Fields in the tar header

  FIELDS = [
    :checksum,
    :devmajor,
    :devminor,
    :gid,
    :gname,
    :linkname,
    :magic,
    :mode,
    :mtime,
    :name,
    :prefix,
    :size,
    :typeflag,
    :uid,
    :uname,
    :version,
  ]

  ##
  # Pack format for a tar header

  PACK_FORMAT = 'a100' + # name
                'a8'   + # mode
                'a8'   + # uid
                'a8'   + # gid
                'a12'  + # size
                'a12'  + # mtime
                'a7a'  + # chksum
                'a'    + # typeflag
                'a100' + # linkname
                'a6'   + # magic
                'a2'   + # version
                'a32'  + # uname
                'a32'  + # gname
                'a8'   + # devmajor
                'a8'   + # devminor
                'a155'   # prefix

  ##
  # Unpack format for a tar header

  UNPACK_FORMAT = 'A100' + # name
                  'A8'   + # mode
                  'A8'   + # uid
                  'A8'   + # gid
                  'A12'  + # size
                  'A12'  + # mtime
                  'A8'   + # checksum
                  'A'    + # typeflag
                  'A100' + # linkname
                  'A6'   + # magic
                  'A2'   + # version
                  'A32'  + # uname
                  'A32'  + # gname
                  'A8'   + # devmajor
                  'A8'   + # devminor
                  'A155'   # prefix

  attr_reader(*FIELDS)

  ##
  # Creates a tar header from IO +stream+

  def self.from(stream)
    header = stream.read 512
    empty = (header == "\0" * 512)

    fields = header.unpack UNPACK_FORMAT

    new :name     => fields.shift,
        :mode     => strict_oct(fields.shift),
        :uid      => strict_oct(fields.shift),
        :gid      => strict_oct(fields.shift),
        :size     => strict_oct(fields.shift),
        :mtime    => strict_oct(fields.shift),
        :checksum => strict_oct(fields.shift),
        :typeflag => fields.shift,
        :linkname => fields.shift,
        :magic    => fields.shift,
        :version  => strict_oct(fields.shift),
        :uname    => fields.shift,
        :gname    => fields.shift,
        :devmajor => strict_oct(fields.shift),
        :devminor => strict_oct(fields.shift),
        :prefix   => fields.shift,

        :empty => empty
  end

  def self.strict_oct(str)
    return str.oct if str =~ /\A[0-7]*\z/
    raise ArgumentError, "#{str.inspect} is not an octal string"
  end

  ##
  # Creates a new TarHeader using +vals+

  def initialize(vals)
    unless vals[:name] && vals[:size] && vals[:prefix] && vals[:mode] then
      raise ArgumentError, ":name, :size, :prefix and :mode required"
    end

    vals[:uid] ||= 0
    vals[:gid] ||= 0
    vals[:mtime] ||= 0
    vals[:checksum] ||= ""
    vals[:typeflag] = "0" if vals[:typeflag].nil? || vals[:typeflag].empty?
    vals[:magic] ||= "ustar"
    vals[:version] ||= "00"
    vals[:uname] ||= "wheel"
    vals[:gname] ||= "wheel"
    vals[:devmajor] ||= 0
    vals[:devminor] ||= 0

    FIELDS.each do |name|
      instance_variable_set "@#{name}", vals[name]
    end

    @empty = vals[:empty]
  end

  ##
  # Is the tar entry empty?

  def empty?
    @empty
  end

  def ==(other) # :nodoc:
    self.class === other and
    @checksum == other.checksum and
    @devmajor == other.devmajor and
    @devminor == other.devminor and
    @gid      == other.gid      and
    @gname    == other.gname    and
    @linkname == other.linkname and
    @magic    == other.magic    and
    @mode     == other.mode     and
    @mtime    == other.mtime    and
    @name     == other.name     and
    @prefix   == other.prefix   and
    @size     == other.size     and
    @typeflag == other.typeflag and
    @uid      == other.uid      and
    @uname    == other.uname    and
    @version  == other.version
  end

  def to_s # :nodoc:
    update_checksum
    header
  end

  ##
  # Updates the TarHeader's checksum

  def update_checksum
    header = header " " * 8
    @checksum = oct calculate_checksum(header), 6
  end

  private

  def calculate_checksum(header)
    header.unpack("C*").inject { |a, b| a + b }
  end

  def header(checksum = @checksum)
    header = [
      name,
      oct(mode, 7),
      oct(uid, 7),
      oct(gid, 7),
      oct(size, 11),
      oct(mtime, 11),
      checksum,
      " ",
      typeflag,
      linkname,
      magic,
      oct(version, 2),
      uname,
      gname,
      oct(devmajor, 7),
      oct(devminor, 7),
      prefix
    ]

    header = header.pack PACK_FORMAT

    header << ("\0" * ((512 - header.size) % 512))
  end

  def oct(num, len)
    "%0#{len}o" % num
  end

end

lib64/ruby/2.2.0/rubygems/package/old.rb000064400000007433150402106260013442 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

##
# The format class knows the guts of the ancient .gem file format and provides
# the capability to read such ancient gems.
#
# Please pretend this doesn't exist.

class Gem::Package::Old < Gem::Package

  undef_method :spec=

  ##
  # Creates a new old-format package reader for +gem+.  Old-format packages
  # cannot be written.

  def initialize gem
    require 'fileutils'
    require 'zlib'
    Gem.load_yaml

    @contents        = nil
    @gem             = gem
    @security_policy = nil
    @spec            = nil
  end

  ##
  # A list of file names contained in this gem

  def contents
    verify

    return @contents if @contents

    @gem.with_read_io do |io|
      read_until_dashes io # spec
      header = file_list io

      @contents = header.map { |file| file['path'] }
    end
  end

  ##
  # Extracts the files in this package into +destination_dir+

  def extract_files destination_dir
    verify

    errstr = "Error reading files from gem"

    @gem.with_read_io do |io|
      read_until_dashes io # spec
      header = file_list io
      raise Gem::Exception, errstr unless header

      header.each do |entry|
        full_name = entry['path']

        destination = install_location full_name, destination_dir

        file_data = ''

        read_until_dashes io do |line|
          file_data << line
        end

        file_data = file_data.strip.unpack("m")[0]
        file_data = Zlib::Inflate.inflate file_data

        raise Gem::Package::FormatError, "#{full_name} in #{@gem} is corrupt" if
          file_data.length != entry['size'].to_i

        FileUtils.rm_rf destination

        FileUtils.mkdir_p File.dirname destination

        open destination, 'wb', entry['mode'] do |out|
          out.write file_data
        end

        verbose destination
      end
    end
  rescue Zlib::DataError
    raise Gem::Exception, errstr
  end

  ##
  # Reads the file list section from the old-format gem +io+

  def file_list io # :nodoc:
    header = ''

    read_until_dashes io do |line|
      header << line
    end

    Gem::SafeYAML.safe_load header
  end

  ##
  # Reads lines until a "---" separator is found

  def read_until_dashes io # :nodoc:
    while (line = io.gets) && line.chomp.strip != "---" do
      yield line if block_given?
    end
  end

  ##
  # Skips the Ruby self-install header in +io+.

  def skip_ruby io # :nodoc:
    loop do
      line = io.gets

      return if line.chomp == '__END__'
      break unless line
    end

    raise Gem::Exception, "Failed to find end of ruby script while reading gem"
  end

  ##
  # The specification for this gem

  def spec
    verify

    return @spec if @spec

    yaml = ''

    @gem.with_read_io do |io|
      skip_ruby io
      read_until_dashes io do |line|
        yaml << line
      end
    end

    yaml_error = if RUBY_VERSION < '1.9' then
                   YAML::ParseError
                 elsif YAML.const_defined?(:ENGINE) && YAML::ENGINE.yamler == 'syck' then
                   YAML::ParseError
                 else
                   YAML::SyntaxError
                 end

    begin
      @spec = Gem::Specification.from_yaml yaml
    rescue yaml_error
      raise Gem::Exception, "Failed to parse gem specification out of gem file"
    end
  rescue ArgumentError
    raise Gem::Exception, "Failed to parse gem specification out of gem file"
  end

  ##
  # Raises an exception if a security policy that verifies data is active.
  # Old format gems cannot be verified as signed.

  def verify
    return true unless @security_policy

    raise Gem::Security::Exception,
          'old format gems do not contain signatures and cannot be verified' if
      @security_policy.verify_data

    true
  end

end

lib64/ruby/2.2.0/rubygems/package/io_source.rb000064400000001343150402106260014645 0ustar00##
# Supports reading and writing gems from/to a generic IO object.  This is
# useful for other applications built on top of rubygems, such as
# rubygems.org.
#
# This is a private class, do not depend on it directly. Instead, pass an IO
# object to `Gem::Package.new`.

class Gem::Package::IOSource < Gem::Package::Source # :nodoc: all

  attr_reader :io

  def initialize io
    @io = io
  end

  def start
    @start ||= begin
      if io.pos > 0
        raise Gem::Package::Error, "Cannot read start unless IO is at start"
      end

      value = io.read 20
      io.rewind
      value
    end
  end

  def present?
    true
  end

  def with_read_io
    yield io
  end

  def with_write_io
    yield io
  end

  def path
  end

end

lib64/ruby/2.2.0/rubygems/package/digest_io.rb000064400000002465150402106260014632 0ustar00##
# IO wrapper that creates digests of contents written to the IO it wraps.

class Gem::Package::DigestIO

  ##
  # Collected digests for wrapped writes.
  #
  #   {
  #     'SHA1'   => #<OpenSSL::Digest: [...]>,
  #     'SHA512' => #<OpenSSL::Digest: [...]>,
  #   }

  attr_reader :digests

  ##
  # Wraps +io+ and updates digest for each of the digest algorithms in
  # the +digests+ Hash.  Returns the digests hash.  Example:
  #
  #   io = StringIO.new
  #   digests = {
  #     'SHA1'   => OpenSSL::Digest.new('SHA1'),
  #     'SHA512' => OpenSSL::Digest.new('SHA512'),
  #   }
  #
  #   Gem::Package::DigestIO.wrap io, digests do |digest_io|
  #     digest_io.write "hello"
  #   end
  #
  #   digests['SHA1'].hexdigest   #=> "aaf4c61d[...]"
  #   digests['SHA512'].hexdigest #=> "9b71d224[...]"

  def self.wrap io, digests
    digest_io = new io, digests

    yield digest_io

    return digests
  end

  ##
  # Creates a new DigestIO instance.  Using ::wrap is recommended, see the
  # ::wrap documentation for documentation of +io+ and +digests+.

  def initialize io, digests
    @io = io
    @digests = digests
  end

  ##
  # Writes +data+ to the underlying IO and updates the digests

  def write data
    result = @io.write data

    @digests.each do |_, digest|
      digest << data
    end

    result
  end

end

lib64/ruby/2.2.0/rubygems/mock_gem_ui.rb000064400000002543150402106260013544 0ustar00require 'stringio'
require 'rubygems/user_interaction'

##
# This Gem::StreamUI subclass records input and output to StringIO for
# retrieval during tests.

class Gem::MockGemUi < Gem::StreamUI
  ##
  # Raised when you haven't provided enough input to your MockGemUi

  class InputEOFError < RuntimeError

    def initialize question
      super "Out of input for MockGemUi on #{question.inspect}"
    end

  end

  class TermError < RuntimeError
    attr_reader :exit_code

    def initialize exit_code
      super
      @exit_code = exit_code
    end
  end
  class SystemExitException < RuntimeError; end

  module TTY

    attr_accessor :tty

    def tty?()
      @tty = true unless defined?(@tty)
      @tty
    end

    def noecho
      yield self
    end
  end

  def initialize(input = "")
    ins = StringIO.new input
    outs = StringIO.new
    errs = StringIO.new

    ins.extend TTY
    outs.extend TTY
    errs.extend TTY

    super ins, outs, errs, true

    @terminated = false
  end

  def ask question
    raise InputEOFError, question if @ins.eof?

    super
  end

  def input
    @ins.string
  end

  def output
    @outs.string
  end

  def error
    @errs.string
  end

  def terminated?
    @terminated
  end

  def terminate_interaction(status=0)
    @terminated = true

    raise TermError, status if status != 0
    raise SystemExitException
  end

end

lib64/ruby/2.2.0/rubygems/defaults.rb000064400000010016150402106260013067 0ustar00module Gem
  DEFAULT_HOST = "https://rubygems.org"

  @post_install_hooks   ||= []
  @done_installing_hooks  ||= []
  @post_uninstall_hooks ||= []
  @pre_uninstall_hooks  ||= []
  @pre_install_hooks    ||= []

  ##
  # An Array of the default sources that come with RubyGems

  def self.default_sources
    %w[https://rubygems.org/]
  end

  ##
  # Default spec directory path to be used if an alternate value is not
  # specified in the environment

  def self.default_spec_cache_dir
    File.join Gem.user_home, '.gem', 'specs'
  end

  ##
  # Default home directory path to be used if an alternate value is not
  # specified in the environment

  def self.default_dir
    path = if defined? RUBY_FRAMEWORK_VERSION then
             [
               File.dirname(RbConfig::CONFIG['sitedir']),
               'Gems',
               RbConfig::CONFIG['ruby_version']
             ]
           elsif RbConfig::CONFIG['rubylibprefix'] then
             [
              RbConfig::CONFIG['rubylibprefix'],
              'gems',
              RbConfig::CONFIG['ruby_version']
             ]
           else
             [
               RbConfig::CONFIG['libdir'],
               ruby_engine,
               'gems',
               RbConfig::CONFIG['ruby_version']
             ]
           end

    @default_dir ||= File.join(*path)
  end

  ##
  # Returns binary extensions dir for specified RubyGems base dir or nil
  # if such directory cannot be determined.
  #
  # By default, the binary extensions are located side by side with their
  # Ruby counterparts, therefore nil is returned

  def self.default_ext_dir_for base_dir
    nil
  end

  ##
  # Paths where RubyGems' .rb files and bin files are installed

  def self.default_rubygems_dirs
    nil # default to standard layout
  end

  ##
  # Path for gems in the user's home directory

  def self.user_dir
    parts = [Gem.user_home, '.gem', ruby_engine]
    parts << RbConfig::CONFIG['ruby_version'] unless RbConfig::CONFIG['ruby_version'].empty?
    File.join parts
  end

  ##
  # How String Gem paths should be split.  Overridable for esoteric platforms.

  def self.path_separator
    File::PATH_SEPARATOR
  end

  ##
  # Default gem load path

  def self.default_path
    path = []
    path << user_dir if user_home && File.exist?(user_home)
    path << default_dir
    path << vendor_dir if vendor_dir and File.directory? vendor_dir
    path
  end

  ##
  # Deduce Ruby's --program-prefix and --program-suffix from its install name

  def self.default_exec_format
    exec_format = RbConfig::CONFIG['ruby_install_name'].sub('ruby', '%s') rescue '%s'

    unless exec_format =~ /%s/ then
      raise Gem::Exception,
        "[BUG] invalid exec_format #{exec_format.inspect}, no %s"
    end

    exec_format
  end

  ##
  # The default directory for binaries

  def self.default_bindir
    if defined? RUBY_FRAMEWORK_VERSION then # mac framework support
      '/usr/bin'
    else # generic install
      RbConfig::CONFIG['bindir']
    end
  end

  ##
  # A wrapper around RUBY_ENGINE const that may not be defined

  def self.ruby_engine
    if defined? RUBY_ENGINE then
      RUBY_ENGINE
    else
      'ruby'
    end
  end

  ##
  # The default signing key path

  def self.default_key_path
    File.join Gem.user_home, ".gem", "gem-private_key.pem"
  end

  ##
  # The default signing certificate chain path

  def self.default_cert_path
    File.join Gem.user_home, ".gem", "gem-public_cert.pem"
  end

  ##
  # Whether to expect full paths in default gems - true for non-MRI
  # ruby implementations
  def self.default_gems_use_full_paths?
    ruby_engine != 'ruby'
  end

  ##
  # Install extensions into lib as well as into the extension directory.

  def self.install_extension_in_lib # :nodoc:
    true
  end

  ##
  # Directory where vendor gems are installed.

  def self.vendor_dir # :nodoc:
    if vendor_dir = ENV['GEM_VENDOR'] then
      return vendor_dir.dup
    end

    return nil unless RbConfig::CONFIG.key? 'vendordir'

    File.join RbConfig::CONFIG['vendordir'], 'gems',
              RbConfig::CONFIG['ruby_version']
  end

end
lib64/ruby/2.2.0/rubygems/request_set/lockfile.rb000064400000034657150402106270015435 0ustar00require 'strscan'

##
# Parses a gem.deps.rb.lock file and constructs a LockSet containing the
# dependencies found inside.  If the lock file is missing no LockSet is
# constructed.

class Gem::RequestSet::Lockfile

  ##
  # Raised when a lockfile cannot be parsed

  class ParseError < Gem::Exception

    ##
    # The column where the error was encountered

    attr_reader :column

    ##
    # The line where the error was encountered

    attr_reader :line

    ##
    # The location of the lock file

    attr_reader :path

    ##
    # Raises a ParseError with the given +message+ which was encountered at a
    # +line+ and +column+ while parsing.

    def initialize message, column, line, path
      @line   = line
      @column = column
      @path   = path
      super "#{message} (at line #{line} column #{column})"
    end

  end

  ##
  # The platforms for this Lockfile

  attr_reader :platforms

  ##
  # Creates a new Lockfile for the given +request_set+ and +gem_deps_file+
  # location.

  def initialize request_set, gem_deps_file, dependencies = nil
    @set           = request_set
    @dependencies  = dependencies
    @gem_deps_file = File.expand_path(gem_deps_file)
    @gem_deps_dir  = File.dirname(@gem_deps_file)

    @gem_deps_file.untaint unless gem_deps_file.tainted?

    @current_token  = nil
    @line           = 0
    @line_pos       = 0
    @platforms      = []
    @tokens         = []
  end

  def add_DEPENDENCIES out # :nodoc:
    out << "DEPENDENCIES"

    dependencies =
      if @dependencies then
        @dependencies.sort_by { |name,| name }.map do |name, requirement|
          requirement_string =
            if '!' == requirement then
              requirement
            else
              Gem::Requirement.new(requirement).for_lockfile
            end

          [name, requirement_string]
        end
      else
        @requests.sort_by { |r| r.name }.map do |request|
          spec        = request.spec
          name        = request.name
          requirement = request.request.dependency.requirement

          requirement_string =
            if [Gem::Resolver::VendorSpecification,
                Gem::Resolver::GitSpecification].include? spec.class then
              "!"
            else
              requirement.for_lockfile
            end

          [name, requirement_string]
        end
      end

    dependencies = dependencies.map do |name, requirement_string|
      "  #{name}#{requirement_string}"
    end

    out.concat dependencies

    out << nil
  end

  def add_GEM out # :nodoc:
    return if @spec_groups.empty?

    source_groups = @spec_groups.values.flatten.group_by do |request|
      request.spec.source.uri
    end

    source_groups.sort_by { |group,| group.to_s }.map do |group, requests|
      out << "GEM"
      out << "  remote: #{group}"
      out << "  specs:"

      requests.sort_by { |request| request.name }.each do |request|
        next if request.spec.name == 'bundler'
        platform = "-#{request.spec.platform}" unless
          Gem::Platform::RUBY == request.spec.platform

        out << "    #{request.name} (#{request.version}#{platform})"

        request.full_spec.dependencies.sort.each do |dependency|
          next if dependency.type == :development

          requirement = dependency.requirement
          out << "      #{dependency.name}#{requirement.for_lockfile}"
        end
      end
      out << nil
    end
  end

  def add_GIT out
    return unless git_requests =
      @spec_groups.delete(Gem::Resolver::GitSpecification)

    by_repository_revision = git_requests.group_by do |request|
      source = request.spec.source
      [source.repository, source.rev_parse]
    end

    out << "GIT"
    by_repository_revision.each do |(repository, revision), requests|
      out << "  remote: #{repository}"
      out << "  revision: #{revision}"
      out << "  specs:"

      requests.sort_by { |request| request.name }.each do |request|
        out << "    #{request.name} (#{request.version})"

        dependencies = request.spec.dependencies.sort_by { |dep| dep.name }
        dependencies.each do |dep|
          out << "      #{dep.name}#{dep.requirement.for_lockfile}"
        end
      end
    end

    out << nil
  end

  def relative_path_from dest, base # :nodoc:
    dest = File.expand_path(dest)
    base = File.expand_path(base)

    if dest.index(base) == 0 then
      offset = dest[base.size+1..-1]

      return '.' unless offset

      offset
    else
      dest
    end
  end

  def add_PATH out # :nodoc:
    return unless path_requests =
      @spec_groups.delete(Gem::Resolver::VendorSpecification)

    out << "PATH"
    path_requests.each do |request|
      directory = File.expand_path(request.spec.source.uri)

      out << "  remote: #{relative_path_from directory, @gem_deps_dir}"
      out << "  specs:"
      out << "    #{request.name} (#{request.version})"
    end

    out << nil
  end

  def add_PLATFORMS out # :nodoc:
    out << "PLATFORMS"

    platforms = @requests.map { |request| request.spec.platform }.uniq

    platforms = platforms.sort_by { |platform| platform.to_s }

    platforms.sort.each do |platform|
      out << "  #{platform}"
    end

    out << nil
  end

  ##
  # Gets the next token for a Lockfile

  def get expected_types = nil, expected_value = nil # :nodoc:
    @current_token = @tokens.shift

    type, value, column, line = @current_token

    if expected_types and not Array(expected_types).include? type then
      unget

      message = "unexpected token [#{type.inspect}, #{value.inspect}], " +
                "expected #{expected_types.inspect}"

      raise ParseError.new message, column, line, "#{@gem_deps_file}.lock"
    end

    if expected_value and expected_value != value then
      unget

      message = "unexpected token [#{type.inspect}, #{value.inspect}], " +
                "expected [#{expected_types.inspect}, " +
                "#{expected_value.inspect}]"

      raise ParseError.new message, column, line, "#{@gem_deps_file}.lock"
    end

    @current_token
  end

  def parse # :nodoc:
    tokenize

    until @tokens.empty? do
      type, data, column, line = get

      case type
      when :section then
        skip :newline

        case data
        when 'DEPENDENCIES' then
          parse_DEPENDENCIES
        when 'GIT' then
          parse_GIT
        when 'GEM' then
          parse_GEM
        when 'PATH' then
          parse_PATH
        when 'PLATFORMS' then
          parse_PLATFORMS
        else
          type, = get until @tokens.empty? or peek.first == :section
        end
      else
        raise "BUG: unhandled token #{type} (#{data.inspect}) at line #{line} column #{column}"
      end
    end
  end

  def parse_DEPENDENCIES # :nodoc:
    while not @tokens.empty? and :text == peek.first do
      _, name, = get :text

      requirements = []

      case peek[0]
      when :bang then
        get :bang

        requirements << pinned_requirement(name)
      when :l_paren then
        get :l_paren

        loop do
          _, op,      = get :requirement
          _, version, = get :text

          requirements << "#{op} #{version}"

          break unless peek[0] == :comma

          get :comma
        end

        get :r_paren

        if peek[0] == :bang then
          requirements.clear
          requirements << pinned_requirement(name)

          get :bang
        end
      end

      @set.gem name, *requirements

      skip :newline
    end
  end

  def parse_GEM # :nodoc:
    sources = []

    while [:entry, 'remote'] == peek.first(2) do
      get :entry, 'remote'
      _, data, = get :text
      skip :newline

      sources << Gem::Source.new(data)
    end

    sources << Gem::Source.new(Gem::DEFAULT_HOST) if sources.empty?

    get :entry, 'specs'

    skip :newline

    set = Gem::Resolver::LockSet.new sources
    last_specs = nil

    while not @tokens.empty? and :text == peek.first do
      _, name, column, = get :text

      case peek[0]
      when :newline then
        last_specs.each do |spec|
          spec.add_dependency Gem::Dependency.new name if column == 6
        end
      when :l_paren then
        get :l_paren

        type, data, = get [:text, :requirement]

        if type == :text and column == 4 then
          version, platform = data.split '-', 2

          platform =
            platform ? Gem::Platform.new(platform) : Gem::Platform::RUBY

          last_specs = set.add name, version, platform
        else
          dependency = parse_dependency name, data

          last_specs.each do |spec|
            spec.add_dependency dependency
          end
        end

        get :r_paren
      else
        raise "BUG: unknown token #{peek}"
      end

      skip :newline
    end

    @set.sets << set
  end

  def parse_GIT # :nodoc:
    get :entry, 'remote'
    _, repository, = get :text

    skip :newline

    get :entry, 'revision'
    _, revision, = get :text

    skip :newline

    type, value = peek.first 2
    if type == :entry and %w[branch ref tag].include? value then
      get
      get :text

      skip :newline
    end

    get :entry, 'specs'

    skip :newline

    set = Gem::Resolver::GitSet.new
    set.root_dir = @set.install_dir

    last_spec = nil

    while not @tokens.empty? and :text == peek.first do
      _, name, column, = get :text

      case peek[0]
      when :newline then
        last_spec.add_dependency Gem::Dependency.new name if column == 6
      when :l_paren then
        get :l_paren

        type, data, = get [:text, :requirement]

        if type == :text and column == 4 then
          last_spec = set.add_git_spec name, data, repository, revision, true
        else
          dependency = parse_dependency name, data

          last_spec.add_dependency dependency
        end

        get :r_paren
      else
        raise "BUG: unknown token #{peek}"
      end

      skip :newline
    end

    @set.sets << set
  end

  def parse_PATH # :nodoc:
    get :entry, 'remote'
    _, directory, = get :text

    skip :newline

    get :entry, 'specs'

    skip :newline

    set = Gem::Resolver::VendorSet.new
    last_spec = nil

    while not @tokens.empty? and :text == peek.first do
      _, name, column, = get :text

      case peek[0]
      when :newline then
        last_spec.add_dependency Gem::Dependency.new name if column == 6
      when :l_paren then
        get :l_paren

        type, data, = get [:text, :requirement]

        if type == :text and column == 4 then
          last_spec = set.add_vendor_gem name, directory
        else
          dependency = parse_dependency name, data

          last_spec.dependencies << dependency
        end

        get :r_paren
      else
        raise "BUG: unknown token #{peek}"
      end

      skip :newline
    end

    @set.sets << set
  end

  def parse_PLATFORMS # :nodoc:
    while not @tokens.empty? and :text == peek.first do
      _, name, = get :text

      @platforms << name

      skip :newline
    end
  end

  ##
  # Parses the requirements following the dependency +name+ and the +op+ for
  # the first token of the requirements and returns a Gem::Dependency object.

  def parse_dependency name, op # :nodoc:
    return Gem::Dependency.new name, op unless peek[0] == :text

    _, version, = get :text

    requirements = ["#{op} #{version}"]

    while peek[0] == :comma do
      get :comma
      _, op,      = get :requirement
      _, version, = get :text

      requirements << "#{op} #{version}"
    end

    Gem::Dependency.new name, requirements
  end

  ##
  # Peeks at the next token for Lockfile

  def peek # :nodoc:
    @tokens.first || [:EOF]
  end

  def pinned_requirement name # :nodoc:
    spec = @set.sets.select { |set|
      Gem::Resolver::GitSet    === set or
        Gem::Resolver::VendorSet === set
    }.map { |set|
      set.specs[name]
    }.compact.first

    spec.version
  end

  def skip type # :nodoc:
    get while not @tokens.empty? and peek.first == type
  end

  ##
  # The contents of the lock file.

  def to_s
    @set.resolve

    out = []

    @requests = @set.sorted_requests

    @spec_groups = @requests.group_by do |request|
      request.spec.class
    end

    add_PATH out

    add_GIT out

    add_GEM out

    add_PLATFORMS out

    add_DEPENDENCIES out

    out.join "\n"
  end

  ##
  # Calculates the column (by byte) and the line of the current token based on
  # +byte_offset+.

  def token_pos byte_offset # :nodoc:
    [byte_offset - @line_pos, @line]
  end

  ##
  # Converts a lock file into an Array of tokens.  If the lock file is missing
  # an empty Array is returned.

  def tokenize # :nodoc:
    @line     = 0
    @line_pos = 0

    @platforms     = []
    @tokens        = []
    @current_token = nil

    lock_file = "#{@gem_deps_file}.lock"

    @input = File.read lock_file
    s      = StringScanner.new @input

    until s.eos? do
      pos = s.pos

      pos = s.pos if leading_whitespace = s.scan(/ +/)

      if s.scan(/[<|=>]{7}/) then
        message = "your #{lock_file} contains merge conflict markers"
        column, line = token_pos pos

        raise ParseError.new message, column, line, lock_file
      end

      @tokens <<
        case
        when s.scan(/\r?\n/) then
          token = [:newline, nil, *token_pos(pos)]
          @line_pos = s.pos
          @line += 1
          token
        when s.scan(/[A-Z]+/) then
          if leading_whitespace then
            text = s.matched
            text += s.scan(/[^\s)]*/).to_s # in case of no match
            [:text, text, *token_pos(pos)]
          else
            [:section, s.matched, *token_pos(pos)]
          end
        when s.scan(/([a-z]+):\s/) then
          s.pos -= 1 # rewind for possible newline
          [:entry, s[1], *token_pos(pos)]
        when s.scan(/\(/) then
          [:l_paren, nil, *token_pos(pos)]
        when s.scan(/\)/) then
          [:r_paren, nil, *token_pos(pos)]
        when s.scan(/<=|>=|=|~>|<|>|!=/) then
          [:requirement, s.matched, *token_pos(pos)]
        when s.scan(/,/) then
          [:comma, nil, *token_pos(pos)]
        when s.scan(/!/) then
          [:bang, nil, *token_pos(pos)]
        when s.scan(/[^\s),!]*/) then
          [:text, s.matched, *token_pos(pos)]
        else
          raise "BUG: can't create token for: #{s.string[s.pos..-1].inspect}"
        end
    end

    @tokens
  rescue Errno::ENOENT
    @tokens
  end

  ##
  # Ungets the last token retrieved by #get

  def unget # :nodoc:
    @tokens.unshift @current_token
  end

  ##
  # Writes the lock file alongside the gem dependencies file

  def write
    content = to_s

    open "#{@gem_deps_file}.lock", 'w' do |io|
      io.write content
    end
  end

end

lib64/ruby/2.2.0/rubygems/request_set/gem_dependency_api.rb000064400000052431150402106270017432 0ustar00##
# A semi-compatible DSL for the Bundler Gemfile and Isolate gem dependencies
# files.
#
# To work with both the Bundler Gemfile and Isolate formats this
# implementation takes some liberties to allow compatibility with each, most
# notably in #source.
#
# A basic gem dependencies file will look like the following:
#
#   source 'https://rubygems.org'
#
#   gem 'rails', '3.2.14a
#   gem 'devise', '~> 2.1', '>= 2.1.3'
#   gem 'cancan'
#   gem 'airbrake'
#   gem 'pg'
#
# RubyGems recommends saving this as gem.deps.rb over Gemfile or Isolate.
#
# To install the gems in this Gemfile use `gem install -g` to install it and
# create a lockfile.  The lockfile will ensure that when you make changes to
# your gem dependencies file a minimum amount of change is made to the
# dependencies of your gems.
#
# RubyGems can activate all the gems in your dependencies file at startup
# using the RUBYGEMS_GEMDEPS environment variable or through Gem.use_gemdeps.
# See Gem.use_gemdeps for details and warnings.
#
# See `gem help install` and `gem help gem_dependencies` for further details.

class Gem::RequestSet::GemDependencyAPI

  ENGINE_MAP = { # :nodoc:
    :jruby        => %w[jruby],
    :jruby_18     => %w[jruby],
    :jruby_19     => %w[jruby],
    :maglev       => %w[maglev],
    :mri          => %w[ruby],
    :mri_18       => %w[ruby],
    :mri_19       => %w[ruby],
    :mri_20       => %w[ruby],
    :mri_21       => %w[ruby],
    :rbx          => %w[rbx],
    :ruby         => %w[ruby rbx maglev],
    :ruby_18      => %w[ruby rbx maglev],
    :ruby_19      => %w[ruby rbx maglev],
    :ruby_20      => %w[ruby rbx maglev],
    :ruby_21      => %w[ruby rbx maglev],
  }

  mswin     = Gem::Platform.new 'x86-mswin32'
  mswin64   = Gem::Platform.new 'x64-mswin64'
  x86_mingw = Gem::Platform.new 'x86-mingw32'
  x64_mingw = Gem::Platform.new 'x64-mingw32'

  PLATFORM_MAP = { # :nodoc:
    :jruby        => Gem::Platform::RUBY,
    :jruby_18     => Gem::Platform::RUBY,
    :jruby_19     => Gem::Platform::RUBY,
    :maglev       => Gem::Platform::RUBY,
    :mingw        => x86_mingw,
    :mingw_18     => x86_mingw,
    :mingw_19     => x86_mingw,
    :mingw_20     => x86_mingw,
    :mingw_21     => x86_mingw,
    :mri          => Gem::Platform::RUBY,
    :mri_18       => Gem::Platform::RUBY,
    :mri_19       => Gem::Platform::RUBY,
    :mri_20       => Gem::Platform::RUBY,
    :mri_21       => Gem::Platform::RUBY,
    :mswin        => mswin,
    :mswin_18     => mswin,
    :mswin_19     => mswin,
    :mswin_20     => mswin,
    :mswin_21     => mswin,
    :mswin64      => mswin64,
    :mswin64_19   => mswin64,
    :mswin64_20   => mswin64,
    :mswin64_21   => mswin64,
    :rbx          => Gem::Platform::RUBY,
    :ruby         => Gem::Platform::RUBY,
    :ruby_18      => Gem::Platform::RUBY,
    :ruby_19      => Gem::Platform::RUBY,
    :ruby_20      => Gem::Platform::RUBY,
    :ruby_21      => Gem::Platform::RUBY,
    :x64_mingw    => x64_mingw,
    :x64_mingw_20 => x64_mingw,
    :x64_mingw_21 => x64_mingw
  }

  gt_eq_0        = Gem::Requirement.new '>= 0'
  tilde_gt_1_8_0 = Gem::Requirement.new '~> 1.8.0'
  tilde_gt_1_9_0 = Gem::Requirement.new '~> 1.9.0'
  tilde_gt_2_0_0 = Gem::Requirement.new '~> 2.0.0'
  tilde_gt_2_1_0 = Gem::Requirement.new '~> 2.1.0'

  VERSION_MAP = { # :nodoc:
    :jruby        => gt_eq_0,
    :jruby_18     => tilde_gt_1_8_0,
    :jruby_19     => tilde_gt_1_9_0,
    :maglev       => gt_eq_0,
    :mingw        => gt_eq_0,
    :mingw_18     => tilde_gt_1_8_0,
    :mingw_19     => tilde_gt_1_9_0,
    :mingw_20     => tilde_gt_2_0_0,
    :mingw_21     => tilde_gt_2_1_0,
    :mri          => gt_eq_0,
    :mri_18       => tilde_gt_1_8_0,
    :mri_19       => tilde_gt_1_9_0,
    :mri_20       => tilde_gt_2_0_0,
    :mri_21       => tilde_gt_2_1_0,
    :mswin        => gt_eq_0,
    :mswin_18     => tilde_gt_1_8_0,
    :mswin_19     => tilde_gt_1_9_0,
    :mswin_20     => tilde_gt_2_0_0,
    :mswin_21     => tilde_gt_2_1_0,
    :mswin64      => gt_eq_0,
    :mswin64_19   => tilde_gt_1_9_0,
    :mswin64_20   => tilde_gt_2_0_0,
    :mswin64_21   => tilde_gt_2_1_0,
    :rbx          => gt_eq_0,
    :ruby         => gt_eq_0,
    :ruby_18      => tilde_gt_1_8_0,
    :ruby_19      => tilde_gt_1_9_0,
    :ruby_20      => tilde_gt_2_0_0,
    :ruby_21      => tilde_gt_2_1_0,
    :x64_mingw    => gt_eq_0,
    :x64_mingw_20 => tilde_gt_2_0_0,
    :x64_mingw_21 => tilde_gt_2_1_0,
  }

  WINDOWS = { # :nodoc:
    :mingw        => :only,
    :mingw_18     => :only,
    :mingw_19     => :only,
    :mingw_20     => :only,
    :mingw_21     => :only,
    :mri          => :never,
    :mri_18       => :never,
    :mri_19       => :never,
    :mri_20       => :never,
    :mri_21       => :never,
    :mswin        => :only,
    :mswin_18     => :only,
    :mswin_19     => :only,
    :mswin_20     => :only,
    :mswin_21     => :only,
    :mswin64      => :only,
    :mswin64_19   => :only,
    :mswin64_20   => :only,
    :mswin64_21   => :only,
    :rbx          => :never,
    :ruby         => :never,
    :ruby_18      => :never,
    :ruby_19      => :never,
    :ruby_20      => :never,
    :ruby_21      => :never,
    :x64_mingw    => :only,
    :x64_mingw_20 => :only,
    :x64_mingw_21 => :only,
  }

  ##
  # The gems required by #gem statements in the gem.deps.rb file

  attr_reader :dependencies

  ##
  # A set of gems that are loaded via the +:git+ option to #gem

  attr_reader :git_set # :nodoc:

  ##
  # A Hash containing gem names and files to require from those gems.

  attr_reader :requires # :nodoc:

  ##
  # A set of gems that are loaded via the +:path+ option to #gem

  attr_reader :vendor_set # :nodoc:

  ##
  # The groups of gems to exclude from installation

  attr_accessor :without_groups # :nodoc:

  ##
  # Creates a new GemDependencyAPI that will add dependencies to the
  # Gem::RequestSet +set+ based on the dependency API description in +path+.

  def initialize set, path
    @set = set
    @path = path

    @current_groups     = nil
    @current_platforms  = nil
    @current_repository = nil
    @dependencies       = {}
    @default_sources    = true
    @git_set            = @set.git_set
    @git_sources        = {}
    @installing         = false
    @requires           = Hash.new { |h, name| h[name] = [] }
    @vendor_set         = @set.vendor_set
    @gem_sources        = {}
    @without_groups     = []

    git_source :github do |repo_name|
      repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include? "/"

      "git://github.com/#{repo_name}.git"
    end

    git_source :bitbucket do |repo_name|
      repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include? "/"

      user, = repo_name.split "/", 2

      "https://#{user}@bitbucket.org/#{repo_name}.git"
    end
  end

  ##
  # Adds +dependencies+ to the request set if any of the +groups+ are allowed.
  # This is used for gemspec dependencies.

  def add_dependencies groups, dependencies # :nodoc:
    return unless (groups & @without_groups).empty?

    dependencies.each do |dep|
      @set.gem dep.name, *dep.requirement
    end
  end

  private :add_dependencies

  ##
  # Finds a gemspec with the given +name+ that lives at +path+.

  def find_gemspec name, path # :nodoc:
    glob = File.join path, "#{name}.gemspec"

    spec_files = Dir[glob]

    case spec_files.length
    when 1 then
      spec_file = spec_files.first

      spec = Gem::Specification.load spec_file

      return spec if spec

      raise ArgumentError, "invalid gemspec #{spec_file}"
    when 0 then
      raise ArgumentError, "no gemspecs found at #{Dir.pwd}"
    else
      raise ArgumentError,
        "found multiple gemspecs at #{Dir.pwd}, " +
        "use the name: option to specify the one you want"
    end
  end

  ##
  # Changes the behavior of gem dependency file loading to installing mode.
  # In installing mode certain restrictions are ignored such as ruby version
  # mismatch checks.

  def installing= installing # :nodoc:
    @installing = installing
  end

  ##
  # Loads the gem dependency file and returns self.

  def load
    instance_eval File.read(@path).untaint, @path, 1

    self
  end

  ##
  # :category: Gem Dependencies DSL
  #
  # :call-seq:
  #   gem(name)
  #   gem(name, *requirements)
  #   gem(name, *requirements, options)
  #
  # Specifies a gem dependency with the given +name+ and +requirements+.  You
  # may also supply +options+ following the +requirements+
  #
  # +options+ include:
  #
  # require: ::
  #   RubyGems does not provide any autorequire features so requires in a gem
  #   dependencies file are recorded but ignored.
  #
  #   In bundler the require: option overrides the file to require during
  #   Bundler.require.  By default the name of the dependency is required in
  #   Bundler.  A single file or an Array of files may be given.
  #
  #   To disable requiring any file give +false+:
  #
  #     gem 'rake', require: false
  #
  # group: ::
  #   Place the dependencies in the given dependency group.  A single group or
  #   an Array of groups may be given.
  #
  #   See also #group
  #
  # platform: ::
  #   Only install the dependency on the given platform.  A single platform or
  #   an Array of platforms may be given.
  #
  #   See #platform for a list of platforms available.
  #
  # path: ::
  #   Install this dependency from an unpacked gem in the given directory.
  #
  #     gem 'modified_gem', path: 'vendor/modified_gem'
  #
  # git: ::
  #   Install this dependency from a git repository:
  #
  #     gem 'private_gem', git: git@my.company.example:private_gem.git'
  #
  # gist: ::
  #   Install this dependency from the gist ID:
  #
  #     gem 'bang', gist: '1232884'
  #
  # github: ::
  #   Install this dependency from a github git repository:
  #
  #     gem 'private_gem', github: 'my_company/private_gem'
  #
  # submodules: ::
  #   Set to +true+ to include submodules when fetching the git repository for
  #   git:, gist: and github: dependencies.
  #
  # ref: ::
  #   Use the given commit name or SHA for git:, gist: and github:
  #   dependencies.
  #
  # branch: ::
  #   Use the given branch for git:, gist: and github: dependencies.
  #
  # tag: ::
  #   Use the given tag for git:, gist: and github: dependencies.

  def gem name, *requirements
    options = requirements.pop if requirements.last.kind_of?(Hash)
    options ||= {}

    options[:git] = @current_repository if @current_repository

    source_set = false

    source_set ||= gem_path       name, options
    source_set ||= gem_git        name, options
    source_set ||= gem_git_source name, options

    duplicate = @dependencies.include? name

    @dependencies[name] =
      if requirements.empty? and not source_set then
        nil
      elsif source_set then
        '!'
      else
        requirements
      end

    return unless gem_platforms options

    groups = gem_group name, options

    return unless (groups & @without_groups).empty?

    pin_gem_source name, :default unless source_set

    gem_requires name, options

    if duplicate then
      warn <<-WARNING
Gem dependencies file #{@path} requires #{name} more than once.
      WARNING
    end

    @set.gem name, *requirements
  end

  ##
  # Handles the git: option from +options+ for gem +name+.
  #
  # Returns +true+ if the path option was handled.

  def gem_git name, options # :nodoc:
    if gist = options.delete(:gist) then
      options[:git] = "https://gist.github.com/#{gist}.git"
    end

    return unless repository = options.delete(:git)

    pin_gem_source name, :git, repository

    reference = nil
    reference ||= options.delete :ref
    reference ||= options.delete :branch
    reference ||= options.delete :tag
    reference ||= 'master'

    submodules = options.delete :submodules

    @git_set.add_git_gem name, repository, reference, submodules

    true
  end

  private :gem_git

  ##
  # Handles a git gem option from +options+ for gem +name+ for a git source
  # registered through git_source.
  #
  # Returns +true+ if the custom source option was handled.

  def gem_git_source name, options # :nodoc:
    return unless git_source = (@git_sources.keys & options.keys).last

    source_callback = @git_sources[git_source]
    source_param = options.delete git_source

    git_url = source_callback.call source_param

    options[:git] = git_url

    gem_git name, options

    true
  end

  private :gem_git_source

  ##
  # Handles the :group and :groups +options+ for the gem with the given
  # +name+.

  def gem_group name, options # :nodoc:
    g = options.delete :group
    all_groups  = g ? Array(g) : []

    groups = options.delete :groups
    all_groups |= groups if groups

    all_groups |= @current_groups if @current_groups

    all_groups
  end

  private :gem_group

  ##
  # Handles the path: option from +options+ for gem +name+.
  #
  # Returns +true+ if the path option was handled.

  def gem_path name, options # :nodoc:
    return unless directory = options.delete(:path)

    pin_gem_source name, :path, directory

    @vendor_set.add_vendor_gem name, directory

    true
  end

  private :gem_path

  ##
  # Handles the platforms: option from +options+.  Returns true if the
  # platform matches the current platform.

  def gem_platforms options # :nodoc:
    platform_names = Array(options.delete :platform)
    platform_names.concat Array(options.delete :platforms)
    platform_names.concat @current_platforms if @current_platforms

    return true if platform_names.empty?

    platform_names.any? do |platform_name|
      raise ArgumentError, "unknown platform #{platform_name.inspect}" unless
        platform = PLATFORM_MAP[platform_name]

      next false unless Gem::Platform.match platform

      if engines = ENGINE_MAP[platform_name] then
        next false unless engines.include? Gem.ruby_engine
      end

      case WINDOWS[platform_name]
      when :only then
        next false unless Gem.win_platform?
      when :never then
        next false if Gem.win_platform?
      end

      VERSION_MAP[platform_name].satisfied_by? Gem.ruby_version
    end
  end

  private :gem_platforms

  ##
  # Records the require: option from +options+ and adds those files, or the
  # default file to the require list for +name+.

  def gem_requires name, options # :nodoc:
    if options.include? :require then
      if requires = options.delete(:require) then
        @requires[name].concat Array requires
      end
    else
      @requires[name] << name
    end
  end

  private :gem_requires

  ##
  # :category: Gem Dependencies DSL
  #
  # Block form for specifying gems from a git +repository+.
  #
  #   git 'https://github.com/rails/rails.git' do
  #     gem 'activesupport'
  #     gem 'activerecord'
  #   end

  def git repository
    @current_repository = repository

    yield

  ensure
    @current_repository = nil
  end

  ##
  # Defines a custom git source that uses +name+ to expand git repositories
  # for use in gems built from git repositories.  You must provide a block
  # that accepts a git repository name for expansion.

  def git_source name, &callback
    @git_sources[name] = callback
  end

  ##
  # Returns the basename of the file the dependencies were loaded from

  def gem_deps_file # :nodoc:
    File.basename @path
  end

  ##
  # :category: Gem Dependencies DSL
  #
  # Loads dependencies from a gemspec file.
  #
  # +options+ include:
  #
  # name: ::
  #   The name portion of the gemspec file.  Defaults to searching for any
  #   gemspec file in the current directory.
  #
  #     gemspec name: 'my_gem'
  #
  # path: ::
  #   The path the gemspec lives in.  Defaults to the current directory:
  #
  #     gemspec 'my_gem', path: 'gemspecs', name: 'my_gem'
  #
  # development_group: ::
  #   The group to add development dependencies to.  By default this is
  #   :development.  Only one group may be specified.

  def gemspec options = {}
    name              = options.delete(:name) || '{,*}'
    path              = options.delete(:path) || '.'
    development_group = options.delete(:development_group) || :development

    spec = find_gemspec name, path

    groups = gem_group spec.name, {}

    self_dep = Gem::Dependency.new spec.name, spec.version

    add_dependencies groups, [self_dep]
    add_dependencies groups, spec.runtime_dependencies

    @dependencies[spec.name] = '!'

    spec.dependencies.each do |dep|
      @dependencies[dep.name] = dep.requirement
    end

    groups << development_group

    add_dependencies groups, spec.development_dependencies

    gem_requires spec.name, options
  end

  ##
  # :category: Gem Dependencies DSL
  #
  # Block form for placing a dependency in the given +groups+.
  #
  #   group :development do
  #     gem 'debugger'
  #   end
  #
  #   group :development, :test do
  #     gem 'minitest'
  #   end
  #
  # Groups can be excluded at install time using `gem install -g --without
  # development`.  See `gem help install` and `gem help gem_dependencies` for
  # further details.

  def group *groups
    @current_groups = groups

    yield

  ensure
    @current_groups = nil
  end

  ##
  # Pins the gem +name+ to the given +source+.  Adding a gem with the same
  # name from a different +source+ will raise an exception.

  def pin_gem_source name, type = :default, source = nil
    source_description =
      case type
      when :default then '(default)'
      when :path    then "path: #{source}"
      when :git     then "git: #{source}"
      else               '(unknown)'
      end

    raise ArgumentError,
      "duplicate source #{source_description} for gem #{name}" if
        @gem_sources.fetch(name, source) != source

    @gem_sources[name] = source
  end

  private :pin_gem_source

  ##
  # :category: Gem Dependencies DSL
  #
  # Block form for restricting gems to a set of platforms.
  #
  # The gem dependencies platform is different from Gem::Platform.  A platform
  # gem.deps.rb platform matches on the ruby engine, the ruby version and
  # whether or not windows is allowed.
  #
  # :ruby, :ruby_XY ::
  #   Matches non-windows, non-jruby implementations where X and Y can be used
  #   to match releases in the 1.8, 1.9, 2.0 or 2.1 series.
  #
  # :mri, :mri_XY ::
  #   Matches non-windows C Ruby (Matz Ruby) or only the 1.8, 1.9, 2.0 or
  #   2.1 series.
  #
  # :mingw, :mingw_XY ::
  #   Matches 32 bit C Ruby on MinGW or only the 1.8, 1.9, 2.0 or 2.1 series.
  #
  # :x64_mingw, :x64_mingw_XY ::
  #   Matches 64 bit C Ruby on MinGW or only the 1.8, 1.9, 2.0 or 2.1 series.
  #
  # :mswin, :mswin_XY ::
  #   Matches 32 bit C Ruby on Microsoft Windows or only the 1.8, 1.9, 2.0 or
  #   2.1 series.
  #
  # :mswin64, :mswin64_XY ::
  #   Matches 64 bit C Ruby on Microsoft Windows or only the 1.8, 1.9, 2.0 or
  #   2.1 series.
  #
  # :jruby, :jruby_XY ::
  #   Matches JRuby or JRuby in 1.8 or 1.9 mode.
  #
  # :maglev ::
  #   Matches Maglev
  #
  # :rbx ::
  #   Matches non-windows Rubinius
  #
  # NOTE:  There is inconsistency in what environment a platform matches.  You
  # may need to read the source to know the exact details.

  def platform *platforms
    @current_platforms = platforms

    yield

  ensure
    @current_platforms = nil
  end

  ##
  # :category: Gem Dependencies DSL
  #
  # Block form for restricting gems to a particular set of platforms.  See
  # #platform.

  alias :platforms :platform

  ##
  # :category: Gem Dependencies DSL
  #
  # Restricts this gem dependencies file to the given ruby +version+.
  #
  # You may also provide +engine:+ and +engine_version:+ options to restrict
  # this gem dependencies file to a particular ruby engine and its engine
  # version.  This matching is performed by using the RUBY_ENGINE and
  # engine_specific VERSION constants.  (For JRuby, JRUBY_VERSION).

  def ruby version, options = {}
    engine         = options[:engine]
    engine_version = options[:engine_version]

    raise ArgumentError,
          'you must specify engine_version along with the ruby engine' if
            engine and not engine_version

    return true if @installing

    unless RUBY_VERSION == version then
      message = "Your Ruby version is #{RUBY_VERSION}, " +
                "but your #{gem_deps_file} requires #{version}"

      raise Gem::RubyVersionMismatch, message
    end

    if engine and engine != Gem.ruby_engine then
      message = "Your ruby engine is #{Gem.ruby_engine}, " +
                "but your #{gem_deps_file} requires #{engine}"

      raise Gem::RubyVersionMismatch, message
    end

    if engine_version then
      my_engine_version = Object.const_get "#{Gem.ruby_engine.upcase}_VERSION"

      if engine_version != my_engine_version then
        message =
          "Your ruby engine version is #{Gem.ruby_engine} #{my_engine_version}, " +
          "but your #{gem_deps_file} requires #{engine} #{engine_version}"

        raise Gem::RubyVersionMismatch, message
      end
    end

    return true
  end

  ##
  # :category: Gem Dependencies DSL
  #
  # Sets +url+ as a source for gems for this dependency API.  RubyGems uses
  # the default configured sources if no source was given.  If a source is set
  # only that source is used.
  #
  # This method differs in behavior from Bundler:
  #
  # * The +:gemcutter+, # +:rubygems+ and +:rubyforge+ sources are not
  #   supported as they are deprecated in bundler.
  # * The +prepend:+ option is not supported.  If you wish to order sources
  #   then list them in your preferred order.

  def source url
    Gem.sources.clear if @default_sources

    @default_sources = false

    Gem.sources << url
  end

  # TODO: remove this typo name at RubyGems 3.0

  Gem::RequestSet::GemDepedencyAPI = self # :nodoc:

end

lib64/ruby/2.2.0/rubygems/source.rb000064400000012323150402106270012564 0ustar00require 'uri'
require 'fileutils'

##
# A Source knows how to list and fetch gems from a RubyGems marshal index.
#
# There are other Source subclasses for installed gems, local gems, the
# bundler dependency API and so-forth.

class Gem::Source

  include Comparable

  FILES = { # :nodoc:
    :released   => 'specs',
    :latest     => 'latest_specs',
    :prerelease => 'prerelease_specs',
  }

  ##
  # The URI this source will fetch gems from.

  attr_reader :uri

  ##
  # Creates a new Source which will use the index located at +uri+.

  def initialize(uri)
    begin
      unless uri.kind_of? URI
        uri = URI.parse(uri.to_s)
      end
    rescue URI::InvalidURIError
      raise if Gem::Source == self.class
    end

    @uri = uri
    @api_uri = nil
  end

  ##
  # Use an SRV record on the host to look up the true endpoint for the index.

  def api_uri # :nodoc:
    require 'rubygems/remote_fetcher'
    @api_uri ||= Gem::RemoteFetcher.fetcher.api_endpoint uri
  end

  ##
  # Sources are ordered by installation preference.

  def <=>(other)
    case other
    when Gem::Source::Installed,
         Gem::Source::Local,
         Gem::Source::Lock,
         Gem::Source::SpecificFile,
         Gem::Source::Git,
         Gem::Source::Vendor then
      -1
    when Gem::Source then
      if !@uri
        return 0 unless other.uri
        return 1
      end

      return -1 if !other.uri

      @uri.to_s <=> other.uri.to_s
    else
      nil
    end
  end

  def == other # :nodoc:
    self.class === other and @uri == other.uri
  end

  alias_method :eql?, :== # :nodoc:

  ##
  # Returns a Set that can fetch specifications from this source.

  def dependency_resolver_set # :nodoc:
    return Gem::Resolver::IndexSet.new self if 'file' == api_uri.scheme

    bundler_api_uri = api_uri + './api/v1/dependencies'

    begin
      fetcher = Gem::RemoteFetcher.fetcher
      response = fetcher.fetch_path bundler_api_uri, nil, true
    rescue Gem::RemoteFetcher::FetchError
      Gem::Resolver::IndexSet.new self
    else
      if response.respond_to? :uri then
        Gem::Resolver::APISet.new response.uri
      else
        Gem::Resolver::APISet.new bundler_api_uri
      end
    end
  end

  def hash # :nodoc:
    @uri.hash
  end

  ##
  # Returns the local directory to write +uri+ to.

  def cache_dir(uri)
    # Correct for windows paths
    escaped_path = uri.path.sub(/^\/([a-z]):\//i, '/\\1-/')
    escaped_path.untaint

    File.join Gem.spec_cache_dir, "#{uri.host}%#{uri.port}", File.dirname(escaped_path)
  end

  ##
  # Returns true when it is possible and safe to update the cache directory.

  def update_cache?
    @update_cache ||=
      begin
        File.stat(Gem.user_home).uid == Process.uid
      rescue Errno::ENOENT
        false
      end
  end

  ##
  # Fetches a specification for the given +name_tuple+.

  def fetch_spec name_tuple
    fetcher = Gem::RemoteFetcher.fetcher

    spec_file_name = name_tuple.spec_name

    uri = api_uri + "#{Gem::MARSHAL_SPEC_DIR}#{spec_file_name}"

    cache_dir = cache_dir uri

    local_spec = File.join cache_dir, spec_file_name

    if File.exist? local_spec then
      spec = Gem.read_binary local_spec
      spec = Marshal.load(spec) rescue nil
      return spec if spec
    end

    uri.path << '.rz'

    spec = fetcher.fetch_path uri
    spec = Gem.inflate spec

    if update_cache? then
      FileUtils.mkdir_p cache_dir

      open local_spec, 'wb' do |io|
        io.write spec
      end
    end

    # TODO: Investigate setting Gem::Specification#loaded_from to a URI
    Marshal.load spec
  end

  ##
  # Loads +type+ kind of specs fetching from +@uri+ if the on-disk cache is
  # out of date.
  #
  # +type+ is one of the following:
  #
  # :released   => Return the list of all released specs
  # :latest     => Return the list of only the highest version of each gem
  # :prerelease => Return the list of all prerelease only specs
  #

  def load_specs(type)
    file       = FILES[type]
    fetcher    = Gem::RemoteFetcher.fetcher
    file_name  = "#{file}.#{Gem.marshal_version}"
    spec_path  = api_uri + "#{file_name}.gz"
    cache_dir  = cache_dir spec_path
    local_file = File.join(cache_dir, file_name)
    retried    = false

    FileUtils.mkdir_p cache_dir if update_cache?

    spec_dump = fetcher.cache_update_path spec_path, local_file, update_cache?

    begin
      Gem::NameTuple.from_list Marshal.load(spec_dump)
    rescue ArgumentError
      if update_cache? && !retried
        FileUtils.rm local_file
        retried = true
        retry
      else
        raise Gem::Exception.new("Invalid spec cache file in #{local_file}")
      end
    end
  end

  ##
  # Downloads +spec+ and writes it to +dir+.  See also
  # Gem::RemoteFetcher#download.

  def download(spec, dir=Dir.pwd)
    fetcher = Gem::RemoteFetcher.fetcher
    fetcher.download spec, api_uri.to_s, dir
  end

  def pretty_print q # :nodoc:
    q.group 2, '[Remote:', ']' do
      q.breakable
      q.text @uri.to_s

      if api = api_uri
        q.breakable
        q.text 'API URI: '
        q.text api.to_s
      end
    end
  end

end

require 'rubygems/source/git'
require 'rubygems/source/installed'
require 'rubygems/source/specific_file'
require 'rubygems/source/local'
require 'rubygems/source/lock'
require 'rubygems/source/vendor'

lib64/ruby/2.2.0/rubygems/source_list.rb000064400000004741150402106270013624 0ustar00require 'rubygems/source'

##
# The SourceList represents the sources rubygems has been configured to use.
# A source may be created from an array of sources:
#
#   Gem::SourceList.from %w[https://rubygems.example https://internal.example]
#
# Or by adding them:
#
#   sources = Gem::SourceList.new
#   sources.add 'https://rubygems.example'
#
# The most common way to get a SourceList is Gem.sources.

class Gem::SourceList

  include Enumerable

  ##
  # Creates a new SourceList

  def initialize
    @sources = []
  end

  ##
  # The sources in this list

  attr_reader :sources

  ##
  # Creates a new SourceList from an array of sources.

  def self.from(ary)
    list = new

    list.replace ary

    return list
  end

  def initialize_copy(other) # :nodoc:
    @sources = @sources.dup
  end

  ##
  # Appends +obj+ to the source list which may be a Gem::Source, URI or URI
  # String.

  def <<(obj)
    src = case obj
          when URI
            Gem::Source.new(obj)
          when Gem::Source
            obj
          else
            Gem::Source.new(URI.parse(obj))
          end

    @sources << src
    src
  end

  ##
  # Replaces this SourceList with the sources in +other+  See #<< for
  # acceptable items in +other+.

  def replace(other)
    clear

    other.each do |x|
      self << x
    end

    self
  end

  ##
  # Removes all sources from the SourceList.

  def clear
    @sources.clear
  end

  ##
  # Yields each source URI in the list.

  def each
    @sources.each { |s| yield s.uri.to_s }
  end

  ##
  # Yields each source in the list.

  def each_source(&b)
    @sources.each(&b)
  end

  ##
  # Returns true if there are no sources in this SourceList.

  def empty?
    @sources.empty?
  end

  def == other # :nodoc:
    to_a == other
  end

  ##
  # Returns an Array of source URI Strings.

  def to_a
    @sources.map { |x| x.uri.to_s }
  end

  alias_method :to_ary, :to_a

  ##
  # Returns the first source in the list.

  def first
    @sources.first
  end

  ##
  # Returns true if this source list includes +other+ which may be a
  # Gem::Source or a source URI.

  def include?(other)
    if other.kind_of? Gem::Source
      @sources.include? other
    else
      @sources.find { |x| x.uri.to_s == other.to_s }
    end
  end

  ##
  # Deletes +source+ from the source list which may be a Gem::Source or a URI.

  def delete source
    if source.kind_of? Gem::Source
      @sources.delete source
    else
      @sources.delete_if { |x| x.uri.to_s == source.to_s }
    end
  end
end
lib64/ruby/2.2.0/rubygems/resolver.rb000064400000032544150402106270013134 0ustar00require 'rubygems/dependency'
require 'rubygems/exceptions'
require 'rubygems/util/list'

require 'uri'
require 'net/http'

##
# Given a set of Gem::Dependency objects as +needed+ and a way to query the
# set of available specs via +set+, calculates a set of ActivationRequest
# objects which indicate all the specs that should be activated to meet the
# all the requirements.

class Gem::Resolver

  ##
  # If the DEBUG_RESOLVER environment variable is set then debugging mode is
  # enabled for the resolver.  This will display information about the state
  # of the resolver while a set of dependencies is being resolved.

  DEBUG_RESOLVER = !ENV['DEBUG_RESOLVER'].nil?

  require 'pp' if DEBUG_RESOLVER

  ##
  # Contains all the conflicts encountered while doing resolution

  attr_reader :conflicts

  ##
  # Set to true if all development dependencies should be considered.

  attr_accessor :development

  ##
  # Set to true if immediate development dependencies should be considered.

  attr_accessor :development_shallow

  ##
  # When true, no dependencies are looked up for requested gems.

  attr_accessor :ignore_dependencies

  ##
  # List of dependencies that could not be found in the configured sources.

  attr_reader :missing

  attr_reader :stats

  ##
  # Hash of gems to skip resolution.  Keyed by gem name, with arrays of
  # gem specifications as values.

  attr_accessor :skip_gems

  ##
  # When a missing dependency, don't stop. Just go on and record what was
  # missing.

  attr_accessor :soft_missing

  ##
  # Combines +sets+ into a ComposedSet that allows specification lookup in a
  # uniform manner.  If one of the +sets+ is itself a ComposedSet its sets are
  # flattened into the result ComposedSet.

  def self.compose_sets *sets
    sets.compact!

    sets = sets.map do |set|
      case set
      when Gem::Resolver::BestSet then
        set
      when Gem::Resolver::ComposedSet then
        set.sets
      else
        set
      end
    end.flatten

    case sets.length
    when 0 then
      raise ArgumentError, 'one set in the composition must be non-nil'
    when 1 then
      sets.first
    else
      Gem::Resolver::ComposedSet.new(*sets)
    end
  end

  ##
  # Creates a Resolver that queries only against the already installed gems
  # for the +needed+ dependencies.

  def self.for_current_gems needed
    new needed, Gem::Resolver::CurrentSet.new
  end

  ##
  # Create Resolver object which will resolve the tree starting
  # with +needed+ Dependency objects.
  #
  # +set+ is an object that provides where to look for specifications to
  # satisfy the Dependencies. This defaults to IndexSet, which will query
  # rubygems.org.

  def initialize needed, set = nil
    @set = set || Gem::Resolver::IndexSet.new
    @needed = needed

    @conflicts           = []
    @development         = false
    @development_shallow = false
    @ignore_dependencies = false
    @missing             = []
    @skip_gems           = {}
    @soft_missing        = false
    @stats               = Gem::Resolver::Stats.new
  end

  def explain stage, *data # :nodoc:
    return unless DEBUG_RESOLVER

    d = data.map { |x| x.pretty_inspect }.join(", ")
    $stderr.printf "%10s %s\n", stage.to_s.upcase, d
  end

  def explain_list stage # :nodoc:
    return unless DEBUG_RESOLVER

    data = yield
    $stderr.printf "%10s (%d entries)\n", stage.to_s.upcase, data.size
    PP.pp data, $stderr unless data.empty?
  end

  ##
  # Creates an ActivationRequest for the given +dep+ and the last +possible+
  # specification.
  #
  # Returns the Specification and the ActivationRequest

  def activation_request dep, possible # :nodoc:
    spec = possible.pop

    explain :activate, [spec.full_name, possible.size]
    explain :possible, possible

    activation_request =
      Gem::Resolver::ActivationRequest.new spec, dep, possible

    return spec, activation_request
  end

  def requests s, act, reqs=nil # :nodoc:
    return reqs if @ignore_dependencies

    s.fetch_development_dependencies if @development

    s.dependencies.reverse_each do |d|
      next if d.type == :development and not @development
      next if d.type == :development and @development_shallow and
              act.development?
      next if d.type == :development and @development_shallow and
              act.parent

      reqs.add Gem::Resolver::DependencyRequest.new(d, act)
      @stats.requirement!
    end

    @set.prefetch reqs

    @stats.record_requirements reqs

    reqs
  end

  ##
  # Proceed with resolution! Returns an array of ActivationRequest objects.

  def resolve
    @conflicts = []

    needed = Gem::Resolver::RequirementList.new

    @needed.reverse_each do |n|
      request = Gem::Resolver::DependencyRequest.new n, nil

      needed.add request
      @stats.requirement!
    end

    @stats.record_requirements needed

    res = resolve_for needed, nil

    raise Gem::DependencyResolutionError, res if
      res.kind_of? Gem::Resolver::Conflict

    res.to_a
  end

  ##
  # Extracts the specifications that may be able to fulfill +dependency+ and
  # returns those that match the local platform and all those that match.

  def find_possible dependency # :nodoc:
    all = @set.find_all dependency

    if (skip_dep_gems = skip_gems[dependency.name]) && !skip_dep_gems.empty?
      matching = all.select do |api_spec|
        skip_dep_gems.any? { |s| api_spec.version == s.version }
      end

      all = matching unless matching.empty?
    end

    matching_platform = select_local_platforms all

    return matching_platform, all
  end

  def handle_conflict(dep, existing) # :nodoc:
    # There is a conflict! We return the conflict object which will be seen by
    # the caller and be handled at the right level.

    # If the existing activation indicates that there are other possibles for
    # it, then issue the conflict on the dependency for the activation itself.
    # Otherwise, if there was a requester, issue it on the requester's
    # request itself.
    # Finally, if the existing request has no requester (toplevel) unwind to
    # it anyway.

    if existing.others_possible?
      conflict =
        Gem::Resolver::Conflict.new dep, existing
    elsif dep.requester
      depreq = dep.requester.request
      conflict =
        Gem::Resolver::Conflict.new depreq, existing, dep
    elsif existing.request.requester.nil?
      conflict =
        Gem::Resolver::Conflict.new dep, existing
    else
      raise Gem::DependencyError, "Unable to figure out how to unwind conflict"
    end

    @conflicts << conflict unless @conflicts.include? conflict

    return conflict
  end

  # Contains the state for attempting activation of a set of possible specs.
  # +needed+ is a Gem::List of DependencyRequest objects that, well, need
  # to be satisfied.
  # +specs+ is the List of ActivationRequest that are being tested.
  # +dep+ is the DependencyRequest that was used to generate this state.
  # +spec+ is the Specification for this state.
  # +possible+ is List of DependencyRequest objects that can be tried to
  # find a  complete set.
  # +conflicts+ is a [DependencyRequest, Conflict] hit tried to
  # activate the state.
  #
  State = Struct.new(:needed, :specs, :dep, :spec, :possibles, :conflicts) do
    def summary # :nodoc:
      nd = needed.map { |s| s.to_s }.sort if nd

      if specs then
        ss = specs.map { |s| s.full_name }.sort
        ss.unshift ss.length
      end

      d = dep.to_s
      d << " from #{dep.requester.full_name}" if dep.requester

      ps = possibles.map { |p| p.full_name }.sort
      ps.unshift ps.length

      cs = conflicts.map do |(s, c)|
        [s.full_name, c.conflicting_dependencies.map { |cd| cd.to_s }]
      end

      { :needed => nd, :specs => ss, :dep => d, :spec => spec.full_name,
        :possibles => ps, :conflicts => cs }
    end
  end

  ##
  # The meat of the algorithm. Given +needed+ DependencyRequest objects and
  # +specs+ being a list to ActivationRequest, calculate a new list of
  # ActivationRequest objects.

  def resolve_for needed, specs # :nodoc:
    # The State objects that are used to attempt the activation tree.
    states = []

    while !needed.empty?
      @stats.iteration!

      dep = needed.remove
      explain :try, [dep, dep.requester ? dep.requester.request : :toplevel]
      explain_list(:next5) { needed.next5 }
      explain_list(:specs) { Array(specs).map { |x| x.full_name }.sort }

      # If there is already a spec activated for the requested name...
      if specs && existing = specs.find { |s| dep.name == s.name }
        # then we're done since this new dep matches the existing spec.
        next if dep.matches_spec? existing

        conflict = handle_conflict dep, existing

        return conflict unless dep.requester

        explain :conflict, dep, :existing, existing.full_name

        depreq = dep.requester.request

        state = nil
        until states.empty?
          x = states.pop

          i = existing.request.requester
          explain :consider, x.spec.full_name, [depreq.name, dep.name, i ? i.name : :top]

          if x.spec.name == depreq.name or
              x.spec.name == dep.name or
              (i && (i.name == x.spec.name))
            explain :found, x.spec.full_name
            state = x
            break
          end
        end

        return conflict unless state

        @stats.backtracking!

        needed, specs = resolve_for_conflict needed, specs, state

        states << state unless state.possibles.empty?

        next
      end

      matching, all = find_possible dep

      case matching.size
      when 0
        resolve_for_zero dep, all
      when 1
        needed, specs =
          resolve_for_single needed, specs, dep, matching
      else
        needed, specs =
          resolve_for_multiple needed, specs, states, dep, matching
      end
    end

    specs
  end

  ##
  # Rewinds +needed+ and +specs+ to a previous state in +state+ for a conflict
  # between +dep+ and +existing+.

  def resolve_for_conflict needed, specs, state # :nodoc:
    # We exhausted the possibles so it's definitely not going to work out,
    # bail out.
    raise Gem::ImpossibleDependenciesError.new state.dep, state.conflicts if
      state.possibles.empty?

    # Retry resolution with this spec and add it's dependencies
    spec, act = activation_request state.dep, state.possibles

    needed = requests spec, act, state.needed.dup
    specs = Gem::List.prepend state.specs, act

    return needed, specs
  end

  ##
  # There are multiple +possible+ specifications for this +dep+.  Updates
  # +needed+, +specs+ and +states+ for further resolution of the +possible+
  # choices.

  def resolve_for_multiple needed, specs, states, dep, possible # :nodoc:
    # Sort them so that we try the highest versions first.
    possible = possible.sort_by do |s|
      [s.source, s.version, s.platform == Gem::Platform::RUBY ? -1 : 1]
    end

    spec, act = activation_request dep, possible

    # We may need to try all of +possible+, so we setup state to unwind back
    # to current +needed+ and +specs+ so we can try another. This is code is
    # what makes conflict resolution possible.
    states << State.new(needed.dup, specs, dep, spec, possible, [])

    @stats.record_depth states

    explain :states, states.map { |s| s.dep }

    needed = requests spec, act, needed
    specs = Gem::List.prepend specs, act

    return needed, specs
  end

  ##
  # Add the spec from the +possible+ list to +specs+ and process the spec's
  # dependencies by adding them to +needed+.

  def resolve_for_single needed, specs, dep, possible # :nodoc:
    spec, act = activation_request dep, possible

    specs = Gem::List.prepend specs, act

    # Put the deps for at the beginning of needed
    # rather than the end to match the depth first
    # searching done by the multiple case code below.
    #
    # This keeps the error messages consistent.
    needed = requests spec, act, needed

    return needed, specs
  end

  ##
  # When there are no possible specifications for +dep+ our work is done.

  def resolve_for_zero dep, platform_mismatch # :nodoc:
    @missing << dep

    unless @soft_missing
      exc = Gem::UnsatisfiableDependencyError.new dep, platform_mismatch
      exc.errors = @set.errors

      raise exc
    end
  end

  ##
  # Returns the gems in +specs+ that match the local platform.

  def select_local_platforms specs # :nodoc:
    specs.select do |spec|
      Gem::Platform.installable? spec
    end
  end

end

##
# TODO remove in RubyGems 3

Gem::DependencyResolver = Gem::Resolver # :nodoc:

require 'rubygems/resolver/activation_request'
require 'rubygems/resolver/conflict'
require 'rubygems/resolver/dependency_request'
require 'rubygems/resolver/requirement_list'
require 'rubygems/resolver/stats'

require 'rubygems/resolver/set'
require 'rubygems/resolver/api_set'
require 'rubygems/resolver/composed_set'
require 'rubygems/resolver/best_set'
require 'rubygems/resolver/current_set'
require 'rubygems/resolver/git_set'
require 'rubygems/resolver/index_set'
require 'rubygems/resolver/installer_set'
require 'rubygems/resolver/lock_set'
require 'rubygems/resolver/vendor_set'

require 'rubygems/resolver/specification'
require 'rubygems/resolver/spec_specification'
require 'rubygems/resolver/api_specification'
require 'rubygems/resolver/git_specification'
require 'rubygems/resolver/index_specification'
require 'rubygems/resolver/installed_specification'
require 'rubygems/resolver/local_specification'
require 'rubygems/resolver/lock_specification'
require 'rubygems/resolver/vendor_specification'

lib64/ruby/2.2.0/rubygems/core_ext/kernel_require.rb000064400000007754150402106270016124 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'monitor'

module Kernel

  RUBYGEMS_ACTIVATION_MONITOR = Monitor.new # :nodoc:

  if defined?(gem_original_require) then
    # Ruby ships with a custom_require, override its require
    remove_method :require
  else
    ##
    # The Kernel#require from before RubyGems was loaded.

    alias gem_original_require require
    private :gem_original_require
  end

  ##
  # When RubyGems is required, Kernel#require is replaced with our own which
  # is capable of loading gems on demand.
  #
  # When you call <tt>require 'x'</tt>, this is what happens:
  # * If the file can be loaded from the existing Ruby loadpath, it
  #   is.
  # * Otherwise, installed gems are searched for a file that matches.
  #   If it's found in gem 'y', that gem is activated (added to the
  #   loadpath).
  #
  # The normal <tt>require</tt> functionality of returning false if
  # that file has already been loaded is preserved.

  def require path
    RUBYGEMS_ACTIVATION_MONITOR.enter

    path = path.to_path if path.respond_to? :to_path

    spec = Gem.find_unresolved_default_spec(path)
    if spec
      Gem.remove_unresolved_default_spec(spec)
      gem(spec.name)
    end

    # If there are no unresolved deps, then we can use just try
    # normal require handle loading a gem from the rescue below.

    if Gem::Specification.unresolved_deps.empty? then
      RUBYGEMS_ACTIVATION_MONITOR.exit
      return gem_original_require(path)
    end

    # If +path+ is for a gem that has already been loaded, don't
    # bother trying to find it in an unresolved gem, just go straight
    # to normal require.
    #--
    # TODO request access to the C implementation of this to speed up RubyGems

    spec = Gem::Specification.stubs.find { |s|
      s.activated? and s.contains_requirable_file? path
    }

    begin
      RUBYGEMS_ACTIVATION_MONITOR.exit
      return gem_original_require(spec.to_fullpath(path) || path)
    end if spec

    # Attempt to find +path+ in any unresolved gems...

    found_specs = Gem::Specification.find_in_unresolved path

    # If there are no directly unresolved gems, then try and find +path+
    # in any gems that are available via the currently unresolved gems.
    # For example, given:
    #
    #   a => b => c => d
    #
    # If a and b are currently active with c being unresolved and d.rb is
    # requested, then find_in_unresolved_tree will find d.rb in d because
    # it's a dependency of c.
    #
    if found_specs.empty? then
      found_specs = Gem::Specification.find_in_unresolved_tree path

      found_specs.each do |found_spec|
        found_spec.activate
      end

    # We found +path+ directly in an unresolved gem. Now we figure out, of
    # the possible found specs, which one we should activate.
    else

      # Check that all the found specs are just different
      # versions of the same gem
      names = found_specs.map(&:name).uniq

      if names.size > 1 then
        RUBYGEMS_ACTIVATION_MONITOR.exit
        raise Gem::LoadError, "#{path} found in multiple gems: #{names.join ', '}"
      end

      # Ok, now find a gem that has no conflicts, starting
      # at the highest version.
      valid = found_specs.select { |s| s.conflicts.empty? }.last

      unless valid then
        le = Gem::LoadError.new "unable to find a version of '#{names.first}' to activate"
        le.name = names.first
        RUBYGEMS_ACTIVATION_MONITOR.exit
        raise le
      end

      valid.activate
    end

    RUBYGEMS_ACTIVATION_MONITOR.exit
    return gem_original_require(path)
  rescue LoadError => load_error
    RUBYGEMS_ACTIVATION_MONITOR.enter

    if load_error.message.start_with?("Could not find") or
        (load_error.message.end_with?(path) and Gem.try_activate(path)) then
      RUBYGEMS_ACTIVATION_MONITOR.exit
      return gem_original_require(path)
    else
      RUBYGEMS_ACTIVATION_MONITOR.exit
    end

    raise load_error
  end

  private :require

end

lib64/ruby/2.2.0/rubygems/core_ext/kernel_gem.rb000064400000004751150402106270015212 0ustar00##
# RubyGems adds the #gem method to allow activation of specific gem versions
# and overrides the #require method on Kernel to make gems appear as if they
# live on the <code>$LOAD_PATH</code>.  See the documentation of these methods
# for further detail.

module Kernel

  # REFACTOR: This should be pulled out into some kind of hacks file.
  remove_method :gem if 'method' == defined? gem # from gem_prelude.rb on 1.9

  ##
  # Use Kernel#gem to activate a specific version of +gem_name+.
  #
  # +requirements+ is a list of version requirements that the
  # specified gem must match, most commonly "= example.version.number".  See
  # Gem::Requirement for how to specify a version requirement.
  #
  # If you will be activating the latest version of a gem, there is no need to
  # call Kernel#gem, Kernel#require will do the right thing for you.
  #
  # Kernel#gem returns true if the gem was activated, otherwise false.  If the
  # gem could not be found, didn't match the version requirements, or a
  # different version was already activated, an exception will be raised.
  #
  # Kernel#gem should be called *before* any require statements (otherwise
  # RubyGems may load a conflicting library version).
  #
  # Kernel#gem only loads prerelease versions when prerelease +requirements+
  # are given:
  #
  #   gem 'rake', '>= 1.1.a', '< 2'
  #
  # In older RubyGems versions, the environment variable GEM_SKIP could be
  # used to skip activation of specified gems, for example to test out changes
  # that haven't been installed yet.  Now RubyGems defers to -I and the
  # RUBYLIB environment variable to skip activation of a gem.
  #
  # Example:
  #
  #   GEM_SKIP=libA:libB ruby -I../libA -I../libB ./mycode.rb

  def gem(gem_name, *requirements) # :doc:
    skip_list = (ENV['GEM_SKIP'] || "").split(/:/)
    raise Gem::LoadError, "skipping #{gem_name}" if skip_list.include? gem_name

    if gem_name.kind_of? Gem::Dependency
      unless Gem::Deprecate.skip
        warn "#{Gem.location_of_caller.join ':'}:Warning: Kernel.gem no longer "\
          "accepts a Gem::Dependency object, please pass the name "\
          "and requirements directly"
      end

      requirements = gem_name.requirement
      gem_name = gem_name.name
    end

    dep = Gem::Dependency.new(gem_name, *requirements)

    loaded = Gem.loaded_specs[gem_name]

    return false if loaded && dep.matches_spec?(loaded)

    spec = dep.to_spec

    Gem::LOADED_SPECS_MUTEX.synchronize {
      spec.activate
    } if spec
  end

  private :gem

end
lib64/ruby/2.2.0/rubygems/source/specific_file.rb000064400000002707150402106270015355 0ustar00##
# A source representing a single .gem file.  This is used for installation of
# local gems.

class Gem::Source::SpecificFile < Gem::Source

  ##
  # The path to the gem for this specific file.

  attr_reader :path

  ##
  # Creates a new SpecificFile for the gem in +file+

  def initialize(file)
    @uri = nil
    @path = ::File.expand_path(file)

    @package = Gem::Package.new @path
    @spec = @package.spec
    @name = @spec.name_tuple
  end

  ##
  # The Gem::Specification extracted from this .gem.

  attr_reader :spec

  def load_specs *a # :nodoc:
    [@name]
  end

  def fetch_spec name # :nodoc:
    return @spec if name == @name
    raise Gem::Exception, "Unable to find '#{name}'"
    @spec
  end

  def download spec, dir = nil # :nodoc:
    return @path if spec == @spec
    raise Gem::Exception, "Unable to download '#{spec.full_name}'"
  end

  def pretty_print q # :nodoc:
    q.group 2, '[SpecificFile:', ']' do
      q.breakable
      q.text @path
    end
  end

  ##
  # Orders this source against +other+.
  #
  # If +other+ is a SpecificFile from a different gem name +nil+ is returned.
  #
  # If +other+ is a SpecificFile from the same gem name the versions are
  # compared using Gem::Version#<=>
  #
  # Otherwise Gem::Source#<=> is used.

  def <=> other
    case other
    when Gem::Source::SpecificFile then
      return nil if @spec.name != other.spec.name

      @spec.version <=> other.spec.version
    else
      super
    end
  end

end
lib64/ruby/2.2.0/rubygems/source/git.rb000064400000012322150402106270013346 0ustar00require 'digest'
require 'rubygems/util'

##
# A git gem for use in a gem dependencies file.
#
# Example:
#
#   source =
#     Gem::Source::Git.new 'rake', 'git@example:rake.git', 'rake-10.1.0', false
#
#   source.specs

class Gem::Source::Git < Gem::Source

  ##
  # The name of the gem created by this git gem.

  attr_reader :name

  ##
  # The commit reference used for checking out this git gem.

  attr_reader :reference

  ##
  # When false the cache for this repository will not be updated.

  attr_accessor :remote

  ##
  # The git repository this gem is sourced from.

  attr_reader :repository

  ##
  # The directory for cache and git gem installation

  attr_accessor :root_dir

  ##
  # Does this repository need submodules checked out too?

  attr_reader :need_submodules

  ##
  # Creates a new git gem source for a gems from loaded from +repository+ at
  # the given +reference+.  The +name+ is only used to track the repository
  # back to a gem dependencies file, it has no real significance as a git
  # repository may contain multiple gems.  If +submodules+ is true, submodules
  # will be checked out when the gem is installed.

  def initialize name, repository, reference, submodules = false
    super repository

    @name            = name
    @repository      = repository
    @reference       = reference
    @need_submodules = submodules

    @remote   = true
    @root_dir = Gem.dir
    @git      = ENV['git'] || 'git'
  end

  def <=> other
    case other
    when Gem::Source::Git then
      0
    when Gem::Source::Vendor,
         Gem::Source::Lock then
      -1
    when Gem::Source then
      1
    else
      nil
    end
  end

  def == other # :nodoc:
    super and
      @name            == other.name and
      @repository      == other.repository and
      @reference       == other.reference and
      @need_submodules == other.need_submodules
  end

  ##
  # Checks out the files for the repository into the install_dir.

  def checkout # :nodoc:
    cache

    return false unless File.exist? repo_cache_dir

    unless File.exist? install_dir then
      system @git, 'clone', '--quiet', '--no-checkout',
             repo_cache_dir, install_dir
    end

    Dir.chdir install_dir do
      system @git, 'fetch', '--quiet', '--force', '--tags', install_dir

      success = system @git, 'reset', '--quiet', '--hard', rev_parse

      success &&=
        Gem::Util.silent_system @git, 'submodule', 'update',
               '--quiet', '--init', '--recursive' if @need_submodules

      success
    end
  end

  ##
  # Creates a local cache repository for the git gem.

  def cache # :nodoc:
    return unless @remote

    if File.exist? repo_cache_dir then
      Dir.chdir repo_cache_dir do
        system @git, 'fetch', '--quiet', '--force', '--tags',
               @repository, 'refs/heads/*:refs/heads/*'
      end
    else
      system @git, 'clone', '--quiet', '--bare', '--no-hardlinks',
             @repository, repo_cache_dir
    end
  end

  ##
  # Directory where git gems get unpacked and so-forth.

  def base_dir # :nodoc:
    File.join @root_dir, 'bundler'
  end

  ##
  # A short reference for use in git gem directories

  def dir_shortref # :nodoc:
    rev_parse[0..11]
  end

  ##
  # Nothing to download for git gems

  def download full_spec, path # :nodoc:
  end

  ##
  # The directory where the git gem will be installed.

  def install_dir # :nodoc:
    return unless File.exist? repo_cache_dir

    File.join base_dir, 'gems', "#{@name}-#{dir_shortref}"
  end

  def pretty_print q # :nodoc:
    q.group 2, '[Git: ', ']' do
      q.breakable
      q.text @repository

      q.breakable
      q.text @reference
    end
  end

  ##
  # The directory where the git gem's repository will be cached.

  def repo_cache_dir # :nodoc:
    File.join @root_dir, 'cache', 'bundler', 'git', "#{@name}-#{uri_hash}"
  end

  ##
  # Converts the git reference for the repository into a commit hash.

  def rev_parse # :nodoc:
    hash = nil

    Dir.chdir repo_cache_dir do
      hash = Gem::Util.popen(@git, 'rev-parse', @reference).strip
    end

    raise Gem::Exception,
          "unable to find reference #{@reference} in #{@repository}" unless
            $?.success?

    hash
  end

  ##
  # Loads all gemspecs in the repository

  def specs
    checkout

    return [] unless install_dir

    Dir.chdir install_dir do
      Dir['{,*,*/*}.gemspec'].map do |spec_file|
        directory = File.dirname spec_file
        file      = File.basename spec_file

        Dir.chdir directory do
          spec = Gem::Specification.load file
          if spec then
            spec.base_dir = base_dir

            spec.extension_dir =
              File.join base_dir, 'extensions', Gem::Platform.local.to_s,
                Gem.extension_api_version, "#{name}-#{dir_shortref}"

            spec.full_gem_path = File.dirname spec.loaded_from if spec
          end
          spec
        end
      end.compact
    end
  end

  ##
  # A hash for the git gem based on the git repository URI.

  def uri_hash # :nodoc:
    normalized =
      if @repository =~ %r%^\w+://(\w+@)?% then
        uri = URI(@repository).normalize.to_s.sub %r%/$%,''
        uri.sub(/\A(\w+)/) { $1.downcase }
      else
        @repository
      end

    Digest::SHA1.hexdigest normalized
  end

end

lib64/ruby/2.2.0/rubygems/source/local.rb000064400000005153150402106270013661 0ustar00##
# The local source finds gems in the current directory for fulfilling
# dependencies.

class Gem::Source::Local < Gem::Source

  def initialize # :nodoc:
    @specs   = nil
    @api_uri = nil
    @uri     = nil
  end

  ##
  # Local sorts before Gem::Source and after Gem::Source::Installed

  def <=> other
    case other
    when Gem::Source::Installed,
         Gem::Source::Lock then
      -1
    when Gem::Source::Local then
      0
    when Gem::Source then
      1
    else
      nil
    end
  end

  def inspect # :nodoc:
    keys = @specs ? @specs.keys.sort : 'NOT LOADED'
    "#<%s specs: %p>" % [self.class, keys]
  end

  def load_specs type # :nodoc:
    names = []

    @specs = {}

    Dir["*.gem"].each do |file|
      begin
        pkg = Gem::Package.new(file)
      rescue SystemCallError, Gem::Package::FormatError
        # ignore
      else
        tup = pkg.spec.name_tuple
        @specs[tup] = [File.expand_path(file), pkg]

        case type
        when :released
          unless pkg.spec.version.prerelease?
            names << pkg.spec.name_tuple
          end
        when :prerelease
          if pkg.spec.version.prerelease?
            names << pkg.spec.name_tuple
          end
        when :latest
          tup = pkg.spec.name_tuple

          cur = names.find { |x| x.name == tup.name }
          if !cur
            names << tup
          elsif cur.version < tup.version
            names.delete cur
            names << tup
          end
        else
          names << pkg.spec.name_tuple
        end
      end
    end

    names
  end

  def find_gem gem_name, version = Gem::Requirement.default, # :nodoc:
               prerelease = false
    load_specs :complete

    found = []

    @specs.each do |n, data|
      if n.name == gem_name
        s = data[1].spec

        if version.satisfied_by?(s.version)
          if prerelease
            found << s
          elsif !s.version.prerelease?
            found << s
          end
        end
      end
    end

    found.max_by { |s| s.version }
  end

  def fetch_spec name # :nodoc:
    load_specs :complete

    if data = @specs[name]
      data.last.spec
    else
      raise Gem::Exception, "Unable to find spec for #{name.inspect}"
    end
  end

  def download spec, cache_dir = nil # :nodoc:
    load_specs :complete

    @specs.each do |name, data|
      return data[0] if data[1].spec == spec
    end

    raise Gem::Exception, "Unable to find file for '#{spec.full_name}'"
  end

  def pretty_print q # :nodoc:
    q.group 2, '[Local gems:', ']' do
      q.breakable
      q.seplist @specs.keys do |v|
        q.text v.full_name
      end
    end
  end

end
lib64/ruby/2.2.0/rubygems/source/vendor.rb000064400000000666150402106270014070 0ustar00##
# This represents a vendored source that is similar to an installed gem.

class Gem::Source::Vendor < Gem::Source::Installed

  ##
  # Creates a new Vendor source for a gem that was unpacked at +path+.

  def initialize path
    @uri = path
  end

  def <=> other
    case other
    when Gem::Source::Lock then
      -1
    when Gem::Source::Vendor then
      0
    when Gem::Source then
      1
    else
      nil
    end
  end

end

lib64/ruby/2.2.0/rubygems/source/installed.rb000064400000001167150402106270014547 0ustar00##
# Represents an installed gem.  This is used for dependency resolution.

class Gem::Source::Installed < Gem::Source

  def initialize # :nodoc:
    @uri = nil
  end

  ##
  # Installed sources sort before all other sources

  def <=> other
    case other
    when Gem::Source::Git,
         Gem::Source::Lock,
         Gem::Source::Vendor then
      -1
    when Gem::Source::Installed then
      0
    when Gem::Source then
      1
    else
      nil
    end
  end

  ##
  # We don't need to download an installed gem

  def download spec, path
    nil
  end

  def pretty_print q # :nodoc:
    q.text '[Installed]'
  end

end

lib64/ruby/2.2.0/rubygems/source/lock.rb000064400000001515150402106270013515 0ustar00##
# A Lock source wraps an installed gem's source and sorts before other sources
# during dependency resolution.  This allows RubyGems to prefer gems from
# dependency lock files.

class Gem::Source::Lock < Gem::Source

  ##
  # The wrapped Gem::Source

  attr_reader :wrapped

  ##
  # Creates a new Lock source that wraps +source+ and moves it earlier in the
  # sort list.

  def initialize source
    @wrapped = source
  end

  def <=> other # :nodoc:
    case other
    when Gem::Source::Lock then
      @wrapped <=> other.wrapped
    when Gem::Source then
      1
    else
      nil
    end
  end

  def == other # :nodoc:
    0 == (self <=> other)
  end

  ##
  # Delegates to the wrapped source's fetch_spec method.

  def fetch_spec name_tuple
    @wrapped.fetch_spec name_tuple
  end

  def uri # :nodoc:
    @wrapped.uri
  end

end

lib64/ruby/2.2.0/rubygems/config_file.rb000064400000031113150402106270013526 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rubygems/user_interaction'
require 'rbconfig'

##
# Gem::ConfigFile RubyGems options and gem command options from gemrc.
#
# gemrc is a YAML file that uses strings to match gem command arguments and
# symbols to match RubyGems options.
#
# Gem command arguments use a String key that matches the command name and
# allow you to specify default arguments:
#
#   install: --no-rdoc --no-ri
#   update: --no-rdoc --no-ri
#
# You can use <tt>gem:</tt> to set default arguments for all commands.
#
# RubyGems options use symbol keys.  Valid options are:
#
# +:backtrace+:: See #backtrace
# +:sources+:: Sets Gem::sources
# +:verbose+:: See #verbose
#
# gemrc files may exist in various locations and are read and merged in
# the following order:
#
# - system wide (/etc/gemrc)
# - per user (~/.gemrc)
# - per environment (gemrc files listed in the GEMRC environment variable)

class Gem::ConfigFile

  include Gem::UserInteraction

  DEFAULT_BACKTRACE = false
  DEFAULT_BULK_THRESHOLD = 1000
  DEFAULT_VERBOSITY = true
  DEFAULT_UPDATE_SOURCES = true

  ##
  # For Ruby packagers to set configuration defaults.  Set in
  # rubygems/defaults/operating_system.rb

  OPERATING_SYSTEM_DEFAULTS = {}

  ##
  # For Ruby implementers to set configuration defaults.  Set in
  # rubygems/defaults/#{RUBY_ENGINE}.rb

  PLATFORM_DEFAULTS = {}

  # :stopdoc:

  SYSTEM_CONFIG_PATH =
    begin
      require "etc"
      Etc.sysconfdir
    rescue LoadError, NoMethodError
      begin
        # TODO: remove after we drop 1.8.7 and 1.9.1
        require 'Win32API'

        CSIDL_COMMON_APPDATA = 0x0023
        path = 0.chr * 260
        if RUBY_VERSION > '1.9' then
          SHGetFolderPath = Win32API.new 'shell32', 'SHGetFolderPath', 'PLPLP',
          'L', :stdcall
          SHGetFolderPath.call nil, CSIDL_COMMON_APPDATA, nil, 1, path
        else
          SHGetFolderPath = Win32API.new 'shell32', 'SHGetFolderPath', 'LLLLP',
          'L'
          SHGetFolderPath.call 0, CSIDL_COMMON_APPDATA, 0, 1, path
        end

        path.strip
      rescue LoadError
        RbConfig::CONFIG["sysconfdir"] || "/etc"
      end
    end

  # :startdoc:

  SYSTEM_WIDE_CONFIG_FILE = File.join SYSTEM_CONFIG_PATH, 'gemrc'

  ##
  # List of arguments supplied to the config file object.

  attr_reader :args

  ##
  # Where to look for gems (deprecated)

  attr_accessor :path

  ##
  # Where to install gems (deprecated)

  attr_accessor :home

  ##
  # True if we print backtraces on errors.

  attr_writer :backtrace

  ##
  # Bulk threshold value.  If the number of missing gems are above this
  # threshold value, then a bulk download technique is used.  (deprecated)

  attr_accessor :bulk_threshold

  ##
  # Verbose level of output:
  # * false -- No output
  # * true -- Normal output
  # * :loud -- Extra output

  attr_accessor :verbose

  ##
  # True if we want to update the SourceInfoCache every time, false otherwise

  attr_accessor :update_sources

  ##
  # True if we want to force specification of gem server when pushing a gem

  attr_accessor :disable_default_gem_server

  # openssl verify mode value, used for remote https connection

  attr_reader :ssl_verify_mode

  ##
  # Path name of directory or file of openssl CA certificate, used for remote
  # https connection

  attr_accessor :ssl_ca_cert

  ##
  # Path name of directory or file of openssl client certificate, used for remote https connection with client authentication

  attr_reader :ssl_client_cert

  ##
  # Create the config file object.  +args+ is the list of arguments
  # from the command line.
  #
  # The following command line options are handled early here rather
  # than later at the time most command options are processed.
  #
  # <tt>--config-file</tt>, <tt>--config-file==NAME</tt>::
  #   Obviously these need to be handled by the ConfigFile object to ensure we
  #   get the right config file.
  #
  # <tt>--backtrace</tt>::
  #   Backtrace needs to be turned on early so that errors before normal
  #   option parsing can be properly handled.
  #
  # <tt>--debug</tt>::
  #   Enable Ruby level debug messages.  Handled early for the same reason as
  #   --backtrace.
  #--
  # TODO: parse options upstream, pass in options directly

  def initialize(args)
    @config_file_name = nil
    need_config_file_name = false

    arg_list = []

    args.each do |arg|
      if need_config_file_name then
        @config_file_name = arg
        need_config_file_name = false
      elsif arg =~ /^--config-file=(.*)/ then
        @config_file_name = $1
      elsif arg =~ /^--config-file$/ then
        need_config_file_name = true
      else
        arg_list << arg
      end
    end

    @backtrace = DEFAULT_BACKTRACE
    @bulk_threshold = DEFAULT_BULK_THRESHOLD
    @verbose = DEFAULT_VERBOSITY
    @update_sources = DEFAULT_UPDATE_SOURCES

    operating_system_config = Marshal.load Marshal.dump(OPERATING_SYSTEM_DEFAULTS)
    platform_config = Marshal.load Marshal.dump(PLATFORM_DEFAULTS)
    system_config = load_file SYSTEM_WIDE_CONFIG_FILE
    user_config = load_file config_file_name.dup.untaint
    environment_config = (ENV['GEMRC'] || '').split(/[:;]/).inject({}) do |result, file|
      result.merge load_file file
    end


    @hash = operating_system_config.merge platform_config
    @hash = @hash.merge system_config
    @hash = @hash.merge user_config
    @hash = @hash.merge environment_config

    # HACK these override command-line args, which is bad
    @backtrace                  = @hash[:backtrace]                  if @hash.key? :backtrace
    @bulk_threshold             = @hash[:bulk_threshold]             if @hash.key? :bulk_threshold
    @home                       = @hash[:gemhome]                    if @hash.key? :gemhome
    @path                       = @hash[:gempath]                    if @hash.key? :gempath
    @update_sources             = @hash[:update_sources]             if @hash.key? :update_sources
    @verbose                    = @hash[:verbose]                    if @hash.key? :verbose
    @disable_default_gem_server = @hash[:disable_default_gem_server] if @hash.key? :disable_default_gem_server

    @ssl_verify_mode  = @hash[:ssl_verify_mode]  if @hash.key? :ssl_verify_mode
    @ssl_ca_cert      = @hash[:ssl_ca_cert]      if @hash.key? :ssl_ca_cert
    @ssl_client_cert  = @hash[:ssl_client_cert]  if @hash.key? :ssl_client_cert

    @api_keys         = nil
    @rubygems_api_key = nil

    Gem.sources = @hash[:sources] if @hash.key? :sources
    handle_arguments arg_list
  end

  ##
  # Hash of RubyGems.org and alternate API keys

  def api_keys
    load_api_keys unless @api_keys

    @api_keys
  end

  ##
  # Checks the permissions of the credentials file.  If they are not 0600 an
  # error message is displayed and RubyGems aborts.

  def check_credentials_permissions
    return if Gem.win_platform? # windows doesn't write 0600 as 0600
    return unless File.exist? credentials_path

    existing_permissions = File.stat(credentials_path).mode & 0777

    return if existing_permissions == 0600

    alert_error <<-ERROR
Your gem push credentials file located at:

\t#{credentials_path}

has file permissions of 0#{existing_permissions.to_s 8} but 0600 is required.

To fix this error run:

\tchmod 0600 #{credentials_path}

You should reset your credentials at:

\thttps://rubygems.org/profile/edit

if you believe they were disclosed to a third party.
    ERROR

    terminate_interaction 1
  end

  ##
  # Location of RubyGems.org credentials

  def credentials_path
    File.join Gem.user_home, '.gem', 'credentials'
  end

  def load_api_keys
    check_credentials_permissions

    @api_keys = if File.exist? credentials_path then
                  load_file(credentials_path)
                else
                  @hash
                end

    if @api_keys.key? :rubygems_api_key then
      @rubygems_api_key    = @api_keys[:rubygems_api_key]
      @api_keys[:rubygems] = @api_keys.delete :rubygems_api_key unless
        @api_keys.key? :rubygems
    end
  end

  ##
  # Returns the RubyGems.org API key

  def rubygems_api_key
    load_api_keys unless @rubygems_api_key

    @rubygems_api_key
  end

  ##
  # Sets the RubyGems.org API key to +api_key+

  def rubygems_api_key= api_key
    check_credentials_permissions

    config = load_file(credentials_path).merge(:rubygems_api_key => api_key)

    dirname = File.dirname credentials_path
    Dir.mkdir(dirname) unless File.exist? dirname

    Gem.load_yaml

    permissions = 0600 & (~File.umask)
    File.open(credentials_path, 'w', permissions) do |f|
      f.write config.to_yaml
    end

    @rubygems_api_key = api_key
  end

  YAMLErrors = [ArgumentError]
  YAMLErrors << Psych::SyntaxError if defined?(Psych::SyntaxError)

  def load_file(filename)
    Gem.load_yaml

    return {} unless filename and File.exist? filename

    begin
      content = Gem::SafeYAML.load(File.read(filename))
      unless content.kind_of? Hash
        warn "Failed to load #{filename} because it doesn't contain valid YAML hash"
        return {}
      end
      return content
    rescue *YAMLErrors => e
      warn "Failed to load #{filename}, #{e}"
    rescue Errno::EACCES
      warn "Failed to load #{filename} due to permissions problem."
    end

    {}
  end

  # True if the backtrace option has been specified, or debug is on.
  def backtrace
    @backtrace or $DEBUG
  end

  # The name of the configuration file.
  def config_file_name
    @config_file_name || Gem.config_file
  end

  # Delegates to @hash
  def each(&block)
    hash = @hash.dup
    hash.delete :update_sources
    hash.delete :verbose
    hash.delete :backtrace
    hash.delete :bulk_threshold

    yield :update_sources, @update_sources
    yield :verbose, @verbose
    yield :backtrace, @backtrace
    yield :bulk_threshold, @bulk_threshold

    yield 'config_file_name', @config_file_name if @config_file_name

    hash.each(&block)
  end

  # Handle the command arguments.
  def handle_arguments(arg_list)
    @args = []

    arg_list.each do |arg|
      case arg
      when /^--(backtrace|traceback)$/ then
        @backtrace = true
      when /^--debug$/ then
        $DEBUG = true

        warn 'NOTE:  Debugging mode prints all exceptions even when rescued'
      else
        @args << arg
      end
    end
  end

  # Really verbose mode gives you extra output.
  def really_verbose
    case verbose
    when true, false, nil then
      false
    else
      true
    end
  end

  # to_yaml only overwrites things you can't override on the command line.
  def to_yaml # :nodoc:
    yaml_hash = {}
    yaml_hash[:backtrace] = if @hash.key?(:backtrace)
                              @hash[:backtrace]
                            else
                              DEFAULT_BACKTRACE
                            end

    yaml_hash[:bulk_threshold] = if @hash.key?(:bulk_threshold)
                                   @hash[:bulk_threshold]
                                 else
                                   DEFAULT_BULK_THRESHOLD
                                 end

    yaml_hash[:sources] = Gem.sources.to_a

    yaml_hash[:update_sources] = if @hash.key?(:update_sources)
                                   @hash[:update_sources]
                                 else
                                   DEFAULT_UPDATE_SOURCES
                                 end

    yaml_hash[:verbose] = if @hash.key?(:verbose)
                            @hash[:verbose]
                          else
                            DEFAULT_VERBOSITY
                          end

    yaml_hash[:ssl_verify_mode] =
      @hash[:ssl_verify_mode] if @hash.key? :ssl_verify_mode

    yaml_hash[:ssl_ca_cert] =
      @hash[:ssl_ca_cert] if @hash.key? :ssl_ca_cert

    yaml_hash[:ssl_client_cert] =
      @hash[:ssl_client_cert] if @hash.key? :ssl_client_cert

    keys = yaml_hash.keys.map { |key| key.to_s }
    keys << 'debug'
    re = Regexp.union(*keys)

    @hash.each do |key, value|
      key = key.to_s
      next if key =~ re
      yaml_hash[key.to_s] = value
    end

    yaml_hash.to_yaml
  end

  # Writes out this config file, replacing its source.
  def write
    open config_file_name, 'w' do |io|
      io.write to_yaml
    end
  end

  # Return the configuration information for +key+.
  def [](key)
    @hash[key.to_s]
  end

  # Set configuration option +key+ to +value+.
  def []=(key, value)
    @hash[key.to_s] = value
  end

  def ==(other) # :nodoc:
    self.class === other and
      @backtrace == other.backtrace and
      @bulk_threshold == other.bulk_threshold and
      @verbose == other.verbose and
      @update_sources == other.update_sources and
      @hash == other.hash
  end

  attr_reader :hash
  protected :hash
end
lib64/ruby/2.2.0/rubygems/installer_test_case.rb000064400000010357150402106270015320 0ustar00require 'rubygems/test_case'
require 'rubygems/installer'

class Gem::Installer

  ##
  # Available through requiring rubygems/installer_test_case

  attr_writer :bin_dir

  ##
  # Available through requiring rubygems/installer_test_case

  attr_writer :build_args

  ##
  # Available through requiring rubygems/installer_test_case

  attr_writer :gem_dir

  ##
  # Available through requiring rubygems/installer_test_case

  attr_writer :force

  ##
  # Available through requiring rubygems/installer_test_case

  attr_writer :format

  ##
  # Available through requiring rubygems/installer_test_case

  attr_writer :gem_home

  ##
  # Available through requiring rubygems/installer_test_case

  attr_writer :env_shebang

  ##
  # Available through requiring rubygems/installer_test_case

  attr_writer :ignore_dependencies

  ##
  # Available through requiring rubygems/installer_test_case

  attr_writer :format_executable

  ##
  # Available through requiring rubygems/installer_test_case

  attr_writer :security_policy

  ##
  # Available through requiring rubygems/installer_test_case

  attr_writer :wrappers
end

##
# A test case for Gem::Installer.

class Gem::InstallerTestCase < Gem::TestCase

  ##
  # Creates the following instance variables:
  #
  # @spec::
  #   a spec named 'a', intended for regular installs
  # @user_spec::
  #   a spec named 'b', intended for user installs

  # @gem::
  #   the path to a built gem from @spec
  # @user_spec::
  #   the path to a built gem from @user_spec
  #
  # @installer::
  #   a Gem::Installer for the @spec that installs into @gemhome
  # @user_installer::
  #   a Gem::Installer for the @user_spec that installs into Gem.user_dir

  def setup
    super

    @spec = quick_gem 'a' do |spec|
      util_make_exec spec
    end

    @user_spec = quick_gem 'b' do |spec|
      util_make_exec spec
    end

    util_build_gem @spec
    util_build_gem @user_spec

    @gem = @spec.cache_file
    @user_gem = @user_spec.cache_file

    @installer      = util_installer @spec, @gemhome
    @user_installer = util_installer @user_spec, Gem.user_dir, :user

    Gem::Installer.path_warning = false
  end

  def util_gem_bindir spec = @spec # :nodoc:
    # TODO: deprecate
    spec.bin_dir
  end

  def util_gem_dir spec = @spec # :nodoc:
    # TODO: deprecate
    spec.gem_dir
  end

  ##
  # The path where installed executables live

  def util_inst_bindir
    File.join @gemhome, "bin"
  end

  ##
  # Adds an executable named "executable" to +spec+ with the given +shebang+.
  #
  # The executable is also written to the bin dir in @tmpdir and the installed
  # gem directory for +spec+.

  def util_make_exec(spec = @spec, shebang = "#!/usr/bin/ruby")
    spec.executables = %w[executable]
    spec.files << 'bin/executable'

    exec_path = spec.bin_file "executable"
    write_file exec_path do |io|
      io.puts shebang
    end

    bin_path = File.join @tempdir, "bin", "executable"
    write_file bin_path do |io|
      io.puts shebang
    end
  end

  ##
  # Builds the @spec gem and returns an installer for it.  The built gem
  # includes:
  #
  #   bin/executable
  #   lib/code.rb
  #   ext/a/mkrf_conf.rb

  def util_setup_gem(ui = @ui) # HACK fix use_ui to make this automatic
    @spec.files << File.join('lib', 'code.rb')
    @spec.extensions << File.join('ext', 'a', 'mkrf_conf.rb')

    Dir.chdir @tempdir do
      FileUtils.mkdir_p 'bin'
      FileUtils.mkdir_p 'lib'
      FileUtils.mkdir_p File.join('ext', 'a')
      File.open File.join('bin', 'executable'), 'w' do |f|
        f.puts "raise 'ran executable'"
      end
      File.open File.join('lib', 'code.rb'), 'w' do |f| f.puts '1' end
      File.open File.join('ext', 'a', 'mkrf_conf.rb'), 'w' do |f|
        f << <<-EOF
          File.open 'Rakefile', 'w' do |rf| rf.puts "task :default" end
        EOF
      end

      use_ui ui do
        FileUtils.rm_f @gem

        @gem = Gem::Package.build @spec
      end
    end

    @installer = Gem::Installer.new @gem
  end

  ##
  # Creates an installer for +spec+ that will install into +gem_home+.  If
  # +user+ is true a user-install will be performed.

  def util_installer(spec, gem_home, user=false)
    Gem::Installer.new(spec.cache_file,
                       :install_dir => gem_home,
                       :user_install => user)
  end

end

lib64/ruby/2.2.0/rubygems/remote_fetcher.rb000064400000026135150402106270014265 0ustar00require 'rubygems'
require 'rubygems/request'
require 'rubygems/uri_formatter'
require 'rubygems/user_interaction'
require 'rubygems/request/connection_pools'
require 'resolv'

##
# RemoteFetcher handles the details of fetching gems and gem information from
# a remote source.

class Gem::RemoteFetcher

  include Gem::UserInteraction

  ##
  # A FetchError exception wraps up the various possible IO and HTTP failures
  # that could happen while downloading from the internet.

  class FetchError < Gem::Exception

    ##
    # The URI which was being accessed when the exception happened.

    attr_accessor :uri

    def initialize(message, uri)
      super message
      @uri = uri
    end

    def to_s # :nodoc:
      "#{super} (#{uri})"
    end

  end

  ##
  # A FetchError that indicates that the reason for not being
  # able to fetch data was that the host could not be contacted

  class UnknownHostError < FetchError
  end

  @fetcher = nil

  ##
  # Cached RemoteFetcher instance.

  def self.fetcher
    @fetcher ||= self.new Gem.configuration[:http_proxy]
  end

  ##
  # Initialize a remote fetcher using the source URI and possible proxy
  # information.
  #
  # +proxy+
  # * [String]: explicit specification of proxy; overrides any environment
  #             variable setting
  # * nil: respect environment variables (HTTP_PROXY, HTTP_PROXY_USER,
  #        HTTP_PROXY_PASS)
  # * <tt>:no_proxy</tt>: ignore environment variables and _don't_ use a proxy
  #
  # +dns+: An object to use for DNS resolution of the API endpoint.
  #        By default, use Resolv::DNS.

  def initialize(proxy=nil, dns=Resolv::DNS.new)
    require 'net/http'
    require 'stringio'
    require 'time'
    require 'uri'

    Socket.do_not_reverse_lookup = true

    @proxy = proxy
    @pools = {}
    @pool_lock = Mutex.new
    @cert_files = Gem::Request.get_cert_files

    @dns = dns
  end

  ##
  # Given a source at +uri+, calculate what hostname to actually
  # connect to query the data for it.

  def api_endpoint(uri)
    host = uri.host

    begin
      res = @dns.getresource "_rubygems._tcp.#{host}",
                             Resolv::DNS::Resource::IN::SRV
    rescue Resolv::ResolvError
      uri
    else
      target = res.target.to_s.strip

      if URI("http://" + target).host.end_with?(".#{host}")
        return URI.parse "#{uri.scheme}://#{target}#{uri.path}"
      end

      uri
    end
  end

  ##
  # Given a name and requirement, downloads this gem into cache and returns the
  # filename. Returns nil if the gem cannot be located.
  #--
  # Should probably be integrated with #download below, but that will be a
  # larger, more emcompassing effort. -erikh

  def download_to_cache dependency
    found, _ = Gem::SpecFetcher.fetcher.spec_for_dependency dependency

    return if found.empty?

    spec, source = found.max_by { |(s,_)| s.version }

    download spec, source.uri.to_s
  end

  ##
  # Moves the gem +spec+ from +source_uri+ to the cache dir unless it is
  # already there.  If the source_uri is local the gem cache dir copy is
  # always replaced.

  def download(spec, source_uri, install_dir = Gem.dir)
    cache_dir =
      if Dir.pwd == install_dir then # see fetch_command
        install_dir
      elsif File.writable? install_dir then
        File.join install_dir, "cache"
      else
        File.join Gem.user_dir, "cache"
      end

    gem_file_name = File.basename spec.cache_file
    local_gem_path = File.join cache_dir, gem_file_name

    FileUtils.mkdir_p cache_dir rescue nil unless File.exist? cache_dir

    # Always escape URI's to deal with potential spaces and such
    # It should also be considered that source_uri may already be
    # a valid URI with escaped characters. e.g. "{DESede}" is encoded
    # as "%7BDESede%7D". If this is escaped again the percentage
    # symbols will be escaped.
    unless source_uri.is_a?(URI::Generic)
      begin
        source_uri = URI.parse(source_uri)
      rescue
        source_uri = URI.parse(URI.const_defined?(:DEFAULT_PARSER) ?
                               URI::DEFAULT_PARSER.escape(source_uri.to_s) :
                               URI.escape(source_uri.to_s))
      end
    end

    scheme = source_uri.scheme

    # URI.parse gets confused by MS Windows paths with forward slashes.
    scheme = nil if scheme =~ /^[a-z]$/i

    # REFACTOR: split this up and dispatch on scheme (eg download_http)
    # REFACTOR: be sure to clean up fake fetcher when you do this... cleaner
    case scheme
    when 'http', 'https', 's3' then
      unless File.exist? local_gem_path then
        begin
          verbose "Downloading gem #{gem_file_name}"

          remote_gem_path = source_uri + "gems/#{gem_file_name}"

          self.cache_update_path remote_gem_path, local_gem_path
        rescue Gem::RemoteFetcher::FetchError
          raise if spec.original_platform == spec.platform

          alternate_name = "#{spec.original_name}.gem"

          verbose "Failed, downloading gem #{alternate_name}"

          remote_gem_path = source_uri + "gems/#{alternate_name}"

          self.cache_update_path remote_gem_path, local_gem_path
        end
      end
    when 'file' then
      begin
        path = source_uri.path
        path = File.dirname(path) if File.extname(path) == '.gem'

        remote_gem_path = correct_for_windows_path(File.join(path, 'gems', gem_file_name))

        FileUtils.cp(remote_gem_path, local_gem_path)
      rescue Errno::EACCES
        local_gem_path = source_uri.to_s
      end

      verbose "Using local gem #{local_gem_path}"
    when nil then # TODO test for local overriding cache
      source_path = if Gem.win_platform? && source_uri.scheme &&
                       !source_uri.path.include?(':') then
                      "#{source_uri.scheme}:#{source_uri.path}"
                    else
                      source_uri.path
                    end

      source_path = Gem::UriFormatter.new(source_path).unescape

      begin
        FileUtils.cp source_path, local_gem_path unless
          File.identical?(source_path, local_gem_path)
      rescue Errno::EACCES
        local_gem_path = source_uri.to_s
      end

      verbose "Using local gem #{local_gem_path}"
    else
      raise ArgumentError, "unsupported URI scheme #{source_uri.scheme}"
    end

    local_gem_path
  end

  ##
  # File Fetcher. Dispatched by +fetch_path+. Use it instead.

  def fetch_file uri, *_
    Gem.read_binary correct_for_windows_path uri.path
  end

  ##
  # HTTP Fetcher. Dispatched by +fetch_path+. Use it instead.

  def fetch_http uri, last_modified = nil, head = false, depth = 0
    fetch_type = head ? Net::HTTP::Head : Net::HTTP::Get
    response   = request uri, fetch_type, last_modified

    case response
    when Net::HTTPOK, Net::HTTPNotModified then
      response.uri = uri if response.respond_to? :uri
      head ? response : response.body
    when Net::HTTPMovedPermanently, Net::HTTPFound, Net::HTTPSeeOther,
         Net::HTTPTemporaryRedirect then
      raise FetchError.new('too many redirects', uri) if depth > 10

      location = URI.parse response['Location']

      if https?(uri) && !https?(location)
        raise FetchError.new("redirecting to non-https resource: #{location}", uri)
      end

      fetch_http(location, last_modified, head, depth + 1)
    else
      raise FetchError.new("bad response #{response.message} #{response.code}", uri)
    end
  end

  alias :fetch_https :fetch_http

  ##
  # Downloads +uri+ and returns it as a String.

  def fetch_path(uri, mtime = nil, head = false)
    uri = URI.parse uri unless URI::Generic === uri

    raise ArgumentError, "bad uri: #{uri}" unless uri

    unless uri.scheme
      raise ArgumentError, "uri scheme is invalid: #{uri.scheme.inspect}"
    end

    data = send "fetch_#{uri.scheme}", uri, mtime, head

    if data and !head and uri.to_s =~ /\.gz$/
      begin
        data = Gem.gunzip data
      rescue Zlib::GzipFile::Error
        raise FetchError.new("server did not return a valid file", uri.to_s)
      end
    end

    data
  rescue FetchError
    raise
  rescue Timeout::Error
    raise UnknownHostError.new('timed out', uri.to_s)
  rescue IOError, SocketError, SystemCallError => e
    if e.message =~ /getaddrinfo/
      raise UnknownHostError.new('no such name', uri.to_s)
    else
      raise FetchError.new("#{e.class}: #{e}", uri.to_s)
    end
  end

  def fetch_s3(uri, mtime = nil, head = false)
    public_uri = sign_s3_url(uri)
    fetch_https public_uri, mtime, head
  end

  ##
  # Downloads +uri+ to +path+ if necessary. If no path is given, it just
  # passes the data.

  def cache_update_path uri, path = nil, update = true
    mtime = path && File.stat(path).mtime rescue nil

    data = fetch_path(uri, mtime)

    if data == nil # indicates the server returned 304 Not Modified
      return Gem.read_binary(path)
    end

    if update and path
      open(path, 'wb') do |io|
        io.flock(File::LOCK_EX)
        io.write data
      end
    end

    data
  end

  ##
  # Returns the size of +uri+ in bytes.

  def fetch_size(uri) # TODO: phase this out
    response = fetch_path(uri, nil, true)

    response['content-length'].to_i
  end

  def correct_for_windows_path(path)
    if path[0].chr == '/' && path[1].chr =~ /[a-z]/i && path[2].chr == ':'
      path[1..-1]
    else
      path
    end
  end

  ##
  # Performs a Net::HTTP request of type +request_class+ on +uri+ returning
  # a Net::HTTP response object.  request maintains a table of persistent
  # connections to reduce connect overhead.

  def request(uri, request_class, last_modified = nil)
    proxy = proxy_for @proxy, uri
    pool  = pools_for(proxy).pool_for uri

    request = Gem::Request.new uri, request_class, last_modified, pool

    request.fetch do |req|
      yield req if block_given?
    end
  end

  def https?(uri)
    uri.scheme.downcase == 'https'
  end

  def close_all
    @pools.each_value {|pool| pool.close_all}
  end

  protected

  # we have our own signing code here to avoid a dependency on the aws-sdk gem
  # fortunately, a simple GET request isn't too complex to sign properly
  def sign_s3_url(uri, expiration = nil)
    require 'base64'
    require 'openssl'

    unless uri.user && uri.password
      raise FetchError.new("credentials needed in s3 source, like s3://key:secret@bucket-name/", uri.to_s)
    end

    expiration ||= s3_expiration
    canonical_path = "/#{uri.host}#{uri.path}"
    payload = "GET\n\n\n#{expiration}\n#{canonical_path}"
    digest = OpenSSL::HMAC.digest('sha1', uri.password, payload)
    # URI.escape is deprecated, and there isn't yet a replacement that does quite what we want
    signature = Base64.encode64(digest).gsub("\n", '').gsub(/[\+\/=]/) { |c| BASE64_URI_TRANSLATE[c] }
    URI.parse("https://#{uri.host}.s3.amazonaws.com#{uri.path}?AWSAccessKeyId=#{uri.user}&Expires=#{expiration}&Signature=#{signature}")
  end

  def s3_expiration
    (Time.now + 3600).to_i # one hour from now
  end

  BASE64_URI_TRANSLATE = { '+' => '%2B', '/' => '%2F', '=' => '%3D' }.freeze

  private

  def proxy_for proxy, uri
    Gem::Request.proxy_uri(proxy || Gem::Request.get_proxy_from_env(uri.scheme))
  end

  def pools_for proxy
    @pool_lock.synchronize do
      @pools[proxy] ||= Gem::Request::ConnectionPools.new proxy, @cert_files
    end
  end
end

lib64/ruby/2.2.0/rubygems/requirement.rb000064400000014313150402106270013625 0ustar00require "rubygems/version"
require "rubygems/deprecate"

# If we're being loaded after yaml was already required, then
# load our yaml + workarounds now.
Gem.load_yaml if defined? ::YAML

##
# A Requirement is a set of one or more version restrictions. It supports a
# few (<tt>=, !=, >, <, >=, <=, ~></tt>) different restriction operators.
#
# See Gem::Version for a description on how versions and requirements work
# together in RubyGems.

class Gem::Requirement
  OPS = { #:nodoc:
    "="  =>  lambda { |v, r| v == r },
    "!=" =>  lambda { |v, r| v != r },
    ">"  =>  lambda { |v, r| v >  r },
    "<"  =>  lambda { |v, r| v <  r },
    ">=" =>  lambda { |v, r| v >= r },
    "<=" =>  lambda { |v, r| v <= r },
    "~>" =>  lambda { |v, r| v >= r && v.release < r.bump }
  }

  quoted  = OPS.keys.map { |k| Regexp.quote k }.join "|"
  PATTERN_RAW = "\\s*(#{quoted})?\\s*(#{Gem::Version::VERSION_PATTERN})\\s*" # :nodoc:

  ##
  # A regular expression that matches a requirement

  PATTERN = /\A#{PATTERN_RAW}\z/

  ##
  # The default requirement matches any version

  DefaultRequirement = [">=", Gem::Version.new(0)]

  ##
  # Raised when a bad requirement is encountered

  class BadRequirementError < ArgumentError; end

  ##
  # Factory method to create a Gem::Requirement object.  Input may be
  # a Version, a String, or nil.  Intended to simplify client code.
  #
  # If the input is "weird", the default version requirement is
  # returned.

  def self.create input
    case input
    when Gem::Requirement then
      input
    when Gem::Version, Array then
      new input
    else
      if input.respond_to? :to_str then
        new [input.to_str]
      else
        default
      end
    end
  end

  ##
  # A default "version requirement" can surely _only_ be '>= 0'.

  def self.default
    new '>= 0'
  end

  ##
  # Parse +obj+, returning an <tt>[op, version]</tt> pair. +obj+ can
  # be a String or a Gem::Version.
  #
  # If +obj+ is a String, it can be either a full requirement
  # specification, like <tt>">= 1.2"</tt>, or a simple version number,
  # like <tt>"1.2"</tt>.
  #
  #     parse("> 1.0")                 # => [">", "1.0"]
  #     parse("1.0")                   # => ["=", "1.0"]
  #     parse(Gem::Version.new("1.0")) # => ["=,  "1.0"]

  def self.parse obj
    return ["=", obj] if Gem::Version === obj

    unless PATTERN =~ obj.to_s
      raise BadRequirementError, "Illformed requirement [#{obj.inspect}]"
    end

    if $1 == ">=" && $2 == "0"
      DefaultRequirement
    else
      [$1 || "=", Gem::Version.new($2)]
    end
  end

  ##
  # An array of requirement pairs. The first element of the pair is
  # the op, and the second is the Gem::Version.

  attr_reader :requirements #:nodoc:

  ##
  # Constructs a requirement from +requirements+. Requirements can be
  # Strings, Gem::Versions, or Arrays of those. +nil+ and duplicate
  # requirements are ignored. An empty set of +requirements+ is the
  # same as <tt>">= 0"</tt>.

  def initialize *requirements
    requirements = requirements.flatten
    requirements.compact!
    requirements.uniq!

    if requirements.empty?
      @requirements = [DefaultRequirement]
    else
      @requirements = requirements.map! { |r| self.class.parse r }
    end
  end

  ##
  # Concatenates the +new+ requirements onto this requirement.

  def concat new
    new = new.flatten
    new.compact!
    new.uniq!
    new = new.map { |r| self.class.parse r }

    @requirements.concat new
  end

  ##
  # Formats this requirement for use in a Gem::RequestSet::Lockfile.

  def for_lockfile # :nodoc:
    return if [DefaultRequirement] == @requirements

    list = requirements.sort_by { |_, version|
      version
    }.map { |op, version|
      "#{op} #{version}"
    }.uniq

    " (#{list.join ', '})"
  end

  ##
  # true if this gem has no requirements.

  def none?
    if @requirements.size == 1
      @requirements[0] == DefaultRequirement
    else
      false
    end
  end

  ##
  # true if the requirement is for only an exact version

  def exact?
    return false unless @requirements.size == 1
    @requirements[0][0] == "="
  end

  def as_list # :nodoc:
    requirements.map { |op, version| "#{op} #{version}" }.sort
  end

  def hash # :nodoc:
    requirements.hash
  end

  def marshal_dump # :nodoc:
    fix_syck_default_key_in_requirements

    [@requirements]
  end

  def marshal_load array # :nodoc:
    @requirements = array[0]

    fix_syck_default_key_in_requirements
  end

  def yaml_initialize(tag, vals) # :nodoc:
    vals.each do |ivar, val|
      instance_variable_set "@#{ivar}", val
    end

    Gem.load_yaml
    fix_syck_default_key_in_requirements
  end

  def init_with coder # :nodoc:
    yaml_initialize coder.tag, coder.map
  end

  def to_yaml_properties # :nodoc:
    ["@requirements"]
  end

  def encode_with coder # :nodoc:
    coder.add 'requirements', @requirements
  end

  ##
  # A requirement is a prerelease if any of the versions inside of it
  # are prereleases

  def prerelease?
    requirements.any? { |r| r.last.prerelease? }
  end

  def pretty_print q # :nodoc:
    q.group 1, 'Gem::Requirement.new(', ')' do
      q.pp as_list
    end
  end

  ##
  # True if +version+ satisfies this Requirement.

  def satisfied_by? version
    raise ArgumentError, "Need a Gem::Version: #{version.inspect}" unless
      Gem::Version === version
    # #28965: syck has a bug with unquoted '=' YAML.loading as YAML::DefaultKey
    requirements.all? { |op, rv| (OPS[op] || OPS["="]).call version, rv }
  end

  alias :=== :satisfied_by?
  alias :=~ :satisfied_by?

  ##
  # True if the requirement will not always match the latest version.

  def specific?
    return true if @requirements.length > 1 # GIGO, > 1, > 2 is silly

    not %w[> >=].include? @requirements.first.first # grab the operator
  end

  def to_s # :nodoc:
    as_list.join ", "
  end

  def == other # :nodoc:
    Gem::Requirement === other and to_s == other.to_s
  end

  private

  def fix_syck_default_key_in_requirements # :nodoc:
    Gem.load_yaml

    # Fixup the Syck DefaultKey bug
    @requirements.each do |r|
      if r[0].kind_of? Gem::SyckDefaultKey
        r[0] = "="
      end
    end
  end
end

class Gem::Version
  # This is needed for compatibility with older yaml
  # gemspecs.

  Requirement = Gem::Requirement # :nodoc:
end
lib64/ruby/2.2.0/rubygems/rdoc.rb000064400000017322150402106270012217 0ustar00require 'rubygems'
require 'rubygems/user_interaction'
require 'fileutils'

begin
  gem 'rdoc'
rescue Gem::LoadError
  # swallow
else
  # This will force any deps that 'rdoc' might have
  # (such as json) that are ambiguous to be activated, which
  # is important because we end up using Specification.reset
  # and we don't want the warning it pops out.
  Gem.finish_resolve
end

loaded_hook = false

begin
  require 'rdoc/rubygems_hook'
  loaded_hook = true
  module Gem
    RDoc = RDoc::RubygemsHook
  end
rescue LoadError
end

##
# Gem::RDoc provides methods to generate RDoc and ri data for installed gems.
# It works for RDoc 1.0.1 (in Ruby 1.8) up to RDoc 3.6.
#
# This implementation is considered obsolete.  The RDoc project is the
# appropriate location to find this functionality.  This file provides the
# hooks to load RDoc generation code from the "rdoc" gem and a fallback in
# case the installed version of RDoc does not have them.

class Gem::RDoc # :nodoc: all

  include Gem::UserInteraction
  extend  Gem::UserInteraction

  @rdoc_version = nil
  @specs = []

  ##
  # Force installation of documentation?

  attr_accessor :force

  ##
  # Generate rdoc?

  attr_accessor :generate_rdoc

  ##
  # Generate ri data?

  attr_accessor :generate_ri

  class << self

    ##
    # Loaded version of RDoc.  Set by ::load_rdoc

    attr_reader :rdoc_version

  end

  ##
  # Post installs hook that generates documentation for each specification in
  # +specs+

  def self.generation_hook installer, specs
    start = Time.now
    types = installer.document

    generate_rdoc = types.include? 'rdoc'
    generate_ri   = types.include? 'ri'

    specs.each do |spec|
      new(spec, generate_rdoc, generate_ri).generate
    end

    return unless generate_rdoc or generate_ri

    duration = (Time.now - start).to_i
    names    = specs.map(&:name).join ', '

    say "Done installing documentation for #{names} after #{duration} seconds"
  end

  ##
  # Loads the RDoc generator

  def self.load_rdoc
    return if @rdoc_version

    require 'rdoc/rdoc'

    @rdoc_version = if ::RDoc.const_defined? :VERSION then
                      Gem::Version.new ::RDoc::VERSION
                    else
                      Gem::Version.new '1.0.1'
                    end

  rescue LoadError => e
    raise Gem::DocumentError, "RDoc is not installed: #{e}"
  end

  ##
  # Creates a new documentation generator for +spec+.  RDoc and ri data
  # generation can be enabled or disabled through +generate_rdoc+ and
  # +generate_ri+ respectively.
  #
  # Only +generate_ri+ is enabled by default.

  def initialize spec, generate_rdoc = true, generate_ri = true
    @doc_dir   = spec.doc_dir
    @file_info = nil
    @force     = false
    @rdoc      = nil
    @spec      = spec

    @generate_rdoc = generate_rdoc
    @generate_ri   = generate_ri

    @rdoc_dir = spec.doc_dir 'rdoc'
    @ri_dir   = spec.doc_dir 'ri'
  end

  ##
  # Removes legacy rdoc arguments from +args+
  #--
  # TODO move to RDoc::Options

  def delete_legacy_args args
    args.delete '--inline-source'
    args.delete '--promiscuous'
    args.delete '-p'
    args.delete '--one-file'
  end

  ##
  # Generates documentation using the named +generator+ ("darkfish" or "ri")
  # and following the given +options+.
  #
  # Documentation will be generated into +destination+

  def document generator, options, destination
    generator_name = generator

    options = options.dup
    options.exclude ||= [] # TODO maybe move to RDoc::Options#finish
    options.setup_generator generator
    options.op_dir = destination
    options.finish

    generator = options.generator.new @rdoc.store, options

    @rdoc.options = options
    @rdoc.generator = generator

    say "Installing #{generator_name} documentation for #{@spec.full_name}"

    FileUtils.mkdir_p options.op_dir

    Dir.chdir options.op_dir do
      begin
        @rdoc.class.current = @rdoc
        @rdoc.generator.generate @file_info
      ensure
        @rdoc.class.current = nil
      end
    end
  end

  ##
  # Generates RDoc and ri data

  def generate
    return unless @generate_ri or @generate_rdoc

    setup

    options = nil

    if Gem::Requirement.new('< 3').satisfied_by? self.class.rdoc_version then
      generate_legacy
      return
    end

    ::RDoc::TopLevel.reset # TODO ::RDoc::RDoc.reset
    ::RDoc::Parser::C.reset

    args = @spec.rdoc_options
    args.concat @spec.source_paths
    args.concat @spec.extra_rdoc_files

    case config_args = Gem.configuration[:rdoc]
    when String then
      args = args.concat config_args.split
    when Array then
      args = args.concat config_args
    end

    delete_legacy_args args

    Dir.chdir @spec.full_gem_path do
      options = ::RDoc::Options.new
      options.default_title = "#{@spec.full_name} Documentation"
      options.parse args
    end

    options.quiet = !Gem.configuration.really_verbose

    @rdoc = new_rdoc
    @rdoc.options = options

    say "Parsing documentation for #{@spec.full_name}"

    Dir.chdir @spec.full_gem_path do
      @file_info = @rdoc.parse_files options.files
    end

    document 'ri',       options, @ri_dir if
      @generate_ri   and (@force or not File.exist? @ri_dir)

    document 'darkfish', options, @rdoc_dir if
      @generate_rdoc and (@force or not File.exist? @rdoc_dir)
  end

  ##
  # Generates RDoc and ri data for legacy RDoc versions.  This method will not
  # exist in future versions.

  def generate_legacy
    if @generate_rdoc then
      FileUtils.rm_rf @rdoc_dir
      say "Installing RDoc documentation for #{@spec.full_name}"
      legacy_rdoc '--op', @rdoc_dir
    end

    if @generate_ri then
      FileUtils.rm_rf @ri_dir
      say "Installing ri documentation for #{@spec.full_name}"
      legacy_rdoc '--ri', '--op', @ri_dir
    end
  end

  ##
  # Generates RDoc using a legacy version of RDoc from the ARGV-like +args+.
  # This method will not exist in future versions.

  def legacy_rdoc *args
    args << @spec.rdoc_options
    args << '--quiet'
    args << @spec.require_paths.clone
    args << @spec.extra_rdoc_files
    args << '--title' << "#{@spec.full_name} Documentation"
    args = args.flatten.map do |arg| arg.to_s end

    delete_legacy_args args if
      Gem::Requirement.new('>= 2.4.0') =~ self.class.rdoc_version

    r = new_rdoc
    verbose { "rdoc #{args.join ' '}" }

    Dir.chdir @spec.full_gem_path do
      begin
        r.document args
      rescue Errno::EACCES => e
        dirname = File.dirname e.message.split("-")[1].strip
        raise Gem::FilePermissionError, dirname
      rescue Interrupt => e
        raise e
      rescue Exception => ex
        alert_error "While generating documentation for #{@spec.full_name}"
        ui.errs.puts "... MESSAGE:   #{ex}"
        ui.errs.puts "... RDOC args: #{args.join(' ')}"
        ui.backtrace ex
        ui.errs.puts "(continuing with the rest of the installation)"
      end
    end
  end

  ##
  # #new_rdoc creates a new RDoc instance.  This method is provided only to
  # make testing easier.

  def new_rdoc # :nodoc:
    ::RDoc::RDoc.new
  end

  ##
  # Is rdoc documentation installed?

  def rdoc_installed?
    File.exist? @rdoc_dir
  end

  ##
  # Removes generated RDoc and ri data

  def remove
    base_dir = @spec.base_dir

    raise Gem::FilePermissionError, base_dir unless File.writable? base_dir

    FileUtils.rm_rf @rdoc_dir
    FileUtils.rm_rf @ri_dir
  end

  ##
  # Is ri data installed?

  def ri_installed?
    File.exist? @ri_dir
  end

  ##
  # Prepares the spec for documentation generation

  def setup
    self.class.load_rdoc

    raise Gem::FilePermissionError, @doc_dir if
      File.exist?(@doc_dir) and not File.writable?(@doc_dir)

    FileUtils.mkdir_p @doc_dir unless File.exist? @doc_dir
  end

end unless loaded_hook

Gem.done_installing(&Gem::RDoc.method(:generation_hook))

lib64/ruby/2.2.0/rubygems/available_set.rb000064400000005766150402106270014074 0ustar00class Gem::AvailableSet

  include Enumerable

  Tuple = Struct.new(:spec, :source)

  attr_accessor :remote # :nodoc:

  def initialize
    @set = []
    @sorted = nil
    @remote = true
  end

  attr_reader :set

  def add(spec, source)
    @set << Tuple.new(spec, source)
    @sorted = nil
    self
  end

  def <<(o)
    case o
    when Gem::AvailableSet
      s = o.set
    when Array
      s = o.map do |sp,so|
        if !sp.kind_of?(Gem::Specification) or !so.kind_of?(Gem::Source)
          raise TypeError, "Array must be in [[spec, source], ...] form"
        end

        Tuple.new(sp,so)
      end
    else
      raise TypeError, "must be a Gem::AvailableSet"
    end

    @set += s
    @sorted = nil

    self
  end

  ##
  # Yields each Tuple in this AvailableSet

  def each
    return enum_for __method__ unless block_given?

    @set.each do |tuple|
      yield tuple
    end
  end

  ##
  # Yields the Gem::Specification for each Tuple in this AvailableSet

  def each_spec
    return enum_for __method__ unless block_given?

    each do |tuple|
      yield tuple.spec
    end
  end

  def empty?
    @set.empty?
  end

  def all_specs
    @set.map { |t| t.spec }
  end

  def match_platform!
    @set.reject! { |t| !Gem::Platform.match(t.spec.platform) }
    @sorted = nil
    self
  end

  def sorted
    @sorted ||= @set.sort do |a,b|
      i = b.spec <=> a.spec
      i != 0 ? i : (a.source <=> b.source)
    end
  end

  def size
    @set.size
  end

  def source_for(spec)
    f = @set.find { |t| t.spec == spec }
    f.source
  end

  ##
  # Converts this AvailableSet into a RequestSet that can be used to install
  # gems.
  #
  # If +development+ is :none then no development dependencies are installed.
  # Other options are :shallow for only direct development dependencies of the
  # gems in this set or :all for all development dependencies.

  def to_request_set development = :none
    request_set = Gem::RequestSet.new
    request_set.development = :all == development

    each_spec do |spec|
      request_set.always_install << spec

      request_set.gem spec.name, spec.version
      request_set.import spec.development_dependencies if
        :shallow == development
    end

    request_set
  end

  ##
  #
  # Used by the Resolver, the protocol to use a AvailableSet as a
  # search Set.

  def find_all(req)
    dep = req.dependency

    match = @set.find_all do |t|
      dep.match? t.spec
    end

    match.map do |t|
      Gem::Resolver::LocalSpecification.new(self, t.spec, t.source)
    end
  end

  def prefetch(reqs)
  end

  def pick_best!
    return self if empty?

    @set = [sorted.first]
    @sorted = nil
    self
  end

  def remove_installed!(dep)
    @set.reject! do |t|
      # already locally installed
      Gem::Specification.any? do |installed_spec|
        dep.name == installed_spec.name and
          dep.requirement.satisfied_by? installed_spec.version
      end
    end

    @sorted = nil
    self
  end

  def inject_into_list(dep_list)
    @set.each { |t| dep_list.add t.spec }
  end
end
lib64/ruby/2.2.0/rubygems/syck_hack.rb000064400000004132150402106270013222 0ustar00# :stopdoc:

# Hack to handle syck's DefaultKey bug
#
# This file is always loaded AFTER either syck or psych are already
# loaded. It then looks at what constants are available and creates
# a consistent view on all rubys.
#
# All this is so that there is always a YAML::Syck::DefaultKey
# class no matter if the full yaml library has loaded or not.
#

module YAML # :nodoc:
  # In newer 1.9.2, there is a Syck toplevel constant instead of it
  # being underneath YAML. If so, reference it back under YAML as
  # well.
  if defined? ::Syck
    # for tests that change YAML::ENGINE
    # 1.8 does not support the second argument to const_defined?
    remove_const :Syck rescue nil

    Syck = ::Syck

  # JRuby's "Syck" is called "Yecht"
  elsif defined? YAML::Yecht
    Syck = YAML::Yecht

  # Otherwise, if there is no YAML::Syck, then we've got just psych
  # loaded, so lets define a stub for DefaultKey.
  elsif !defined? YAML::Syck
    module Syck
      class DefaultKey # :nodoc:
      end
    end
  end

  # Now that we've got something that is always here, define #to_s
  # so when code tries to use this, it at least just shows up like it
  # should.
  module Syck
    class DefaultKey
      remove_method :to_s rescue nil

      def to_s
        '='
      end
    end
  end

  SyntaxError = Error unless defined? SyntaxError
end

# Sometime in the 1.9 dev cycle, the Syck constant was moved from under YAML
# to be a toplevel constant. So gemspecs created under these versions of Syck
# will have references to Syck::DefaultKey.
#
# So we need to be sure that we reference Syck at the toplevel too so that
# we can always load these kind of gemspecs.
#
if !defined?(Syck)
  Syck = YAML::Syck
end

# Now that we've got Syck setup in all the right places, store
# a reference to the DefaultKey class inside Gem. We do this so that
# if later on YAML, etc are redefined, we've still got a consistent
# place to find the DefaultKey class for comparison.

module Gem
  # for tests that change YAML::ENGINE
  remove_const :SyckDefaultKey if const_defined? :SyckDefaultKey

  SyckDefaultKey = YAML::Syck::DefaultKey
end

# :startdoc:
lib64/ruby/2.2.0/rubygems/exceptions.rb000064400000014314150402106270013447 0ustar00# TODO: the documentation in here is terrible.
#
# Each exception needs a brief description and the scenarios where it is
# likely to be raised

##
# Base exception class for RubyGems.  All exception raised by RubyGems are a
# subclass of this one.
class Gem::Exception < RuntimeError

  ##
  #--
  # TODO: remove in RubyGems 3, nobody sets this

  attr_accessor :source_exception # :nodoc:

end

class Gem::CommandLineError < Gem::Exception; end

class Gem::DependencyError < Gem::Exception; end

class Gem::DependencyRemovalException < Gem::Exception; end

##
# Raised by Gem::Resolver when a Gem::Dependency::Conflict reaches the
# toplevel.  Indicates which dependencies were incompatible through #conflict
# and #conflicting_dependencies

class Gem::DependencyResolutionError < Gem::DependencyError

  attr_reader :conflict

  def initialize conflict
    @conflict = conflict
    a, b = conflicting_dependencies

    super "conflicting dependencies #{a} and #{b}\n#{@conflict.explanation}"
  end

  def conflicting_dependencies
    @conflict.conflicting_dependencies
  end

end

##
# Raised when attempting to uninstall a gem that isn't in GEM_HOME.

class Gem::GemNotInHomeException < Gem::Exception
  attr_accessor :spec
end

class Gem::DocumentError < Gem::Exception; end

##
# Potentially raised when a specification is validated.
class Gem::EndOfYAMLException < Gem::Exception; end

##
# Signals that a file permission error is preventing the user from
# operating on the given directory.

class Gem::FilePermissionError < Gem::Exception

  attr_reader :directory

  def initialize directory
    @directory = directory

    super "You don't have write permissions for the #{directory} directory."
  end

end

##
# Used to raise parsing and loading errors
class Gem::FormatException < Gem::Exception
  attr_accessor :file_path
end

class Gem::GemNotFoundException < Gem::Exception; end

##
# Raised by the DependencyInstaller when a specific gem cannot be found

class Gem::SpecificGemNotFoundException < Gem::GemNotFoundException

  ##
  # Creates a new SpecificGemNotFoundException for a gem with the given +name+
  # and +version+.  Any +errors+ encountered when attempting to find the gem
  # are also stored.

  def initialize(name, version, errors=nil)
    super "Could not find a valid gem '#{name}' (#{version}) locally or in a repository"

    @name = name
    @version = version
    @errors = errors
  end

  ##
  # The name of the gem that could not be found.

  attr_reader :name

  ##
  # The version of the gem that could not be found.

  attr_reader :version

  ##
  # Errors encountered attempting to find the gem.

  attr_reader :errors

end

##
# Raised by Gem::Resolver when dependencies conflict and create the
# inability to find a valid possible spec for a request.

class Gem::ImpossibleDependenciesError < Gem::Exception

  attr_reader :conflicts
  attr_reader :request

  def initialize request, conflicts
    @request   = request
    @conflicts = conflicts

    super build_message
  end

  def build_message # :nodoc:
    requester  = @request.requester
    requester  = requester ? requester.spec.full_name : 'The user'
    dependency = @request.dependency

    message = "#{requester} requires #{dependency} but it conflicted:\n"

    @conflicts.each do |_, conflict|
      message << conflict.explanation
    end

    message
  end

  def dependency
    @request.dependency
  end

end

class Gem::InstallError < Gem::Exception; end

##
# Potentially raised when a specification is validated.
class Gem::InvalidSpecificationException < Gem::Exception; end

class Gem::OperationNotSupportedError < Gem::Exception; end

##
# Signals that a remote operation cannot be conducted, probably due to not
# being connected (or just not finding host).
#--
# TODO: create a method that tests connection to the preferred gems server.
# All code dealing with remote operations will want this.  Failure in that
# method should raise this error.
class Gem::RemoteError < Gem::Exception; end

class Gem::RemoteInstallationCancelled < Gem::Exception; end

class Gem::RemoteInstallationSkipped < Gem::Exception; end

##
# Represents an error communicating via HTTP.
class Gem::RemoteSourceException < Gem::Exception; end

##
# Raised when a gem dependencies file specifies a ruby version that does not
# match the current version.

class Gem::RubyVersionMismatch < Gem::Exception; end

##
# Raised by Gem::Validator when something is not right in a gem.

class Gem::VerificationError < Gem::Exception; end

##
# Raised to indicate that a system exit should occur with the specified
# exit_code

class Gem::SystemExitException < SystemExit

  ##
  # The exit code for the process

  attr_accessor :exit_code

  ##
  # Creates a new SystemExitException with the given +exit_code+

  def initialize(exit_code)
    @exit_code = exit_code

    super "Exiting RubyGems with exit_code #{exit_code}"
  end

end

##
# Raised by Resolver when a dependency requests a gem for which
# there is no spec.

class Gem::UnsatisfiableDependencyError < Gem::DependencyError

  ##
  # The unsatisfiable dependency.  This is a
  # Gem::Resolver::DependencyRequest, not a Gem::Dependency

  attr_reader :dependency

  ##
  # Errors encountered which may have contributed to this exception

  attr_accessor :errors

  ##
  # Creates a new UnsatisfiableDependencyError for the unsatisfiable
  # Gem::Resolver::DependencyRequest +dep+

  def initialize dep, platform_mismatch=nil
    if platform_mismatch and !platform_mismatch.empty?
      plats = platform_mismatch.map { |x| x.platform.to_s }.sort.uniq
      super "Unable to resolve dependency: No match for '#{dep}' on this platform. Found: #{plats.join(', ')}"
    else
      if dep.explicit?
        super "Unable to resolve dependency: user requested '#{dep}'"
      else
        super "Unable to resolve dependency: '#{dep.request_context}' requires '#{dep}'"
      end
    end

    @dependency = dep
    @errors     = []
  end

  ##
  # The name of the unresolved dependency

  def name
    @dependency.name
  end

  ##
  # The Requirement of the unresolved dependency (not Version).

  def version
    @dependency.requirement
  end

end

##
# Backwards compatible typo'd exception class for early RubyGems 2.0.x

Gem::UnsatisfiableDepedencyError = Gem::UnsatisfiableDependencyError # :nodoc:

lib64/ruby/2.2.0/rubygems/installer.rb000064400000054756150402106270013301 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rubygems/command'
require 'rubygems/exceptions'
require 'rubygems/package'
require 'rubygems/ext'
require 'rubygems/user_interaction'
require 'fileutils'

##
# The installer installs the files contained in the .gem into the Gem.home.
#
# Gem::Installer does the work of putting files in all the right places on the
# filesystem including unpacking the gem into its gem dir, installing the
# gemspec in the specifications dir, storing the cached gem in the cache dir,
# and installing either wrappers or symlinks for executables.
#
# The installer invokes pre and post install hooks.  Hooks can be added either
# through a rubygems_plugin.rb file in an installed gem or via a
# rubygems/defaults/#{RUBY_ENGINE}.rb or rubygems/defaults/operating_system.rb
# file.  See Gem.pre_install and Gem.post_install for details.

class Gem::Installer

  ##
  # Paths where env(1) might live.  Some systems are broken and have it in
  # /bin

  ENV_PATHS = %w[/usr/bin/env /bin/env]

  ##
  # Deprecated in favor of Gem::Ext::BuildError

  ExtensionBuildError = Gem::Ext::BuildError # :nodoc:

  include Gem::UserInteraction

  ##
  # Filename of the gem being installed.

  attr_reader :gem

  ##
  # The directory a gem's executables will be installed into

  attr_reader :bin_dir

  attr_reader :build_root # :nodoc:

  ##
  # The gem repository the gem will be installed into

  attr_reader :gem_home

  ##
  # The options passed when the Gem::Installer was instantiated.

  attr_reader :options

  ##
  # Sets the specification for .gem-less installs.

  attr_writer :spec

  @path_warning = false

  @install_lock = Mutex.new

  class << self

    ##
    # True if we've warned about PATH not including Gem.bindir

    attr_accessor :path_warning

    ##
    # Certain aspects of the install process are not thread-safe. This lock is
    # used to allow multiple threads to install Gems at the same time.

    attr_reader :install_lock

    ##
    # Overrides the executable format.
    #
    # This is a sprintf format with a "%s" which will be replaced with the
    # executable name.  It is based off the ruby executable name's difference
    # from "ruby".

    attr_writer :exec_format

    # Defaults to use Ruby's program prefix and suffix.
    def exec_format
      @exec_format ||= Gem.default_exec_format
    end

  end

  ##
  # Constructs an Installer instance that will install the gem located at
  # +gem+.  +options+ is a Hash with the following keys:
  #
  # :bin_dir:: Where to put a bin wrapper if needed.
  # :development:: Whether or not development dependencies should be installed.
  # :env_shebang:: Use /usr/bin/env in bin wrappers.
  # :force:: Overrides all version checks and security policy checks, except
  #          for a signed-gems-only policy.
  # :format_executable:: Format the executable the same as the Ruby executable.
  #                      If your Ruby is ruby18, foo_exec will be installed as
  #                      foo_exec18.
  # :ignore_dependencies:: Don't raise if a dependency is missing.
  # :install_dir:: The directory to install the gem into.
  # :security_policy:: Use the specified security policy.  See Gem::Security
  # :user_install:: Indicate that the gem should be unpacked into the users
  #                 personal gem directory.
  # :only_install_dir:: Only validate dependencies against what is in the
  #                     install_dir
  # :wrappers:: Install wrappers if true, symlinks if false.
  # :build_args:: An Array of arguments to pass to the extension builder
  #               process. If not set, then Gem::Command.build_args is used

  def initialize(gem, options={})
    require 'fileutils'

    @gem = gem
    @options = options
    @package = Gem::Package.new @gem

    process_options

    @package.security_policy = @security_policy

    if options[:user_install] and not options[:unpack] then
      @gem_home = Gem.user_dir
      @bin_dir = Gem.bindir gem_home unless options[:bin_dir]
      check_that_user_bin_dir_is_in_path
    end
  end

  ##
  # Checks if +filename+ exists in +@bin_dir+.
  #
  # If +@force+ is set +filename+ is overwritten.
  #
  # If +filename+ exists and is a RubyGems wrapper for different gem the user
  # is consulted.
  #
  # If +filename+ exists and +@bin_dir+ is Gem.default_bindir (/usr/local) the
  # user is consulted.
  #
  # Otherwise +filename+ is overwritten.

  def check_executable_overwrite filename # :nodoc:
    return if @force

    generated_bin = File.join @bin_dir, formatted_program_filename(filename)

    return unless File.exist? generated_bin

    ruby_executable = false
    existing = nil

    open generated_bin, 'rb' do |io|
      next unless io.gets =~ /^#!/ # shebang
      io.gets # blankline

      # TODO detect a specially formatted comment instead of trying
      # to run a regexp against Ruby code.
      next unless io.gets =~ /This file was generated by RubyGems/

      ruby_executable = true
      existing = io.read.slice(/^gem (['"])(.*?)(\1),/, 2)
    end

    return if spec.name == existing

    # somebody has written to RubyGems' directory, overwrite, too bad
    return if Gem.default_bindir != @bin_dir and not ruby_executable

    question = "#{spec.name}'s executable \"#{filename}\" conflicts with "

    if ruby_executable then
      question << existing

      return if ask_yes_no "#{question}\nOverwrite the executable?", false

      conflict = "installed executable from #{existing}"
    else
      question << generated_bin

      return if ask_yes_no "#{question}\nOverwrite the executable?", false

      conflict = generated_bin
    end

    raise Gem::InstallError,
      "\"#{filename}\" from #{spec.name} conflicts with #{conflict}"
  end

  ##
  # Lazy accessor for the spec's gem directory.

  def gem_dir
    @gem_dir ||= File.join(gem_home, "gems", spec.full_name)
  end

  ##
  # Lazy accessor for the installer's spec.

  def spec
    @spec ||= @package.spec
  rescue Gem::Package::Error => e
    raise Gem::InstallError, "invalid gem: #{e.message}"
  end

  ##
  # Installs the gem and returns a loaded Gem::Specification for the installed
  # gem.
  #
  # The gem will be installed with the following structure:
  #
  #   @gem_home/
  #     cache/<gem-version>.gem #=> a cached copy of the installed gem
  #     gems/<gem-version>/... #=> extracted files
  #     specifications/<gem-version>.gemspec #=> the Gem::Specification

  def install
    pre_install_checks

    FileUtils.rm_f File.join gem_home, 'specifications', @spec.spec_name

    run_pre_install_hooks

    # Completely remove any previous gem files
    FileUtils.rm_rf gem_dir

    FileUtils.mkdir_p gem_dir

    spec.loaded_from = spec_file

    if @options[:install_as_default]
      extract_bin
      write_default_spec
    else
      extract_files

      build_extensions
      write_build_info_file
      run_post_build_hooks

      generate_bin
      write_spec
      write_cache_file
    end

    say spec.post_install_message unless spec.post_install_message.nil?

    Gem::Installer.install_lock.synchronize { Gem::Specification.add_spec spec }

    run_post_install_hooks

    spec

  # TODO This rescue is in the wrong place. What is raising this exception?
  # move this rescue to around the code that actually might raise it.
  rescue Zlib::GzipFile::Error
    raise Gem::InstallError, "gzip error installing #{gem}"
  end

  def run_pre_install_hooks # :nodoc:
    Gem.pre_install_hooks.each do |hook|
      if hook.call(self) == false then
        location = " at #{$1}" if hook.inspect =~ /@(.*:\d+)/

        message = "pre-install hook#{location} failed for #{spec.full_name}"
        raise Gem::InstallError, message
      end
    end
  end

  def run_post_build_hooks # :nodoc:
    Gem.post_build_hooks.each do |hook|
      if hook.call(self) == false then
        FileUtils.rm_rf gem_dir

        location = " at #{$1}" if hook.inspect =~ /@(.*:\d+)/

        message = "post-build hook#{location} failed for #{spec.full_name}"
        raise Gem::InstallError, message
      end
    end
  end

  def run_post_install_hooks # :nodoc:
    Gem.post_install_hooks.each do |hook|
      hook.call self
    end
  end

  ##
  #
  # Return an Array of Specifications contained within the gem_home
  # we'll be installing into.

  def installed_specs
    @specs ||= begin
      specs = []

      Dir[File.join(gem_home, "specifications", "*.gemspec")].each do |path|
        spec = Gem::Specification.load path.untaint
        specs << spec if spec
      end

      specs
    end
  end

  ##
  # Ensure that the dependency is satisfied by the current installation of
  # gem.  If it is not an exception is raised.
  #
  # spec       :: Gem::Specification
  # dependency :: Gem::Dependency

  def ensure_dependency(spec, dependency)
    unless installation_satisfies_dependency? dependency then
      raise Gem::InstallError, "#{spec.name} requires #{dependency}"
    end
    true
  end

  ##
  # True if the gems in the system satisfy +dependency+.

  def installation_satisfies_dependency?(dependency)
    return true if @options[:development] and dependency.type == :development
    return true if installed_specs.detect { |s| dependency.matches_spec? s }
    return false if @only_install_dir
    not dependency.matching_specs.empty?
  end

  ##
  # Unpacks the gem into the given directory.

  def unpack(directory)
    @gem_dir = directory
    extract_files
  end

  ##
  # The location of of the spec file that is installed.
  #

  def spec_file
    File.join gem_home, "specifications", "#{spec.full_name}.gemspec"
  end

  ##
  # The location of of the default spec file for default gems.
  #

  def default_spec_file
    File.join gem_home, "specifications/default", "#{spec.full_name}.gemspec"
  end

  ##
  # Writes the .gemspec specification (in Ruby) to the gem home's
  # specifications directory.

  def write_spec
    open spec_file, 'w' do |file|
      spec.installed_by_version = Gem.rubygems_version

      file.puts spec.to_ruby_for_cache

      file.fsync rescue nil # for filesystems without fsync(2)
    end
  end

  ##
  # Writes the full .gemspec specification (in Ruby) to the gem home's
  # specifications/default directory.

  def write_default_spec
    File.open(default_spec_file, "w") do |file|
      file.puts spec.to_ruby
    end
  end

  ##
  # Creates windows .bat files for easy running of commands

  def generate_windows_script(filename, bindir)
    if Gem.win_platform? then
      script_name = filename + ".bat"
      script_path = File.join bindir, File.basename(script_name)
      File.open script_path, 'w' do |file|
        file.puts windows_stub_script(bindir, filename)
      end

      verbose script_path
    end
  end

  def generate_bin # :nodoc:
    return if spec.executables.nil? or spec.executables.empty?

    Dir.mkdir @bin_dir unless File.exist? @bin_dir
    raise Gem::FilePermissionError.new(@bin_dir) unless File.writable? @bin_dir

    spec.executables.each do |filename|
      filename.untaint
      bin_path = File.join gem_dir, spec.bindir, filename

      unless File.exist? bin_path then
        # TODO change this to a more useful warning
        warn "#{bin_path} maybe `gem pristine #{spec.name}` will fix it?"
        next
      end

      mode = File.stat(bin_path).mode
      FileUtils.chmod mode | 0111, bin_path unless (mode | 0111) == mode

      check_executable_overwrite filename

      if @wrappers then
        generate_bin_script filename, @bin_dir
      else
        generate_bin_symlink filename, @bin_dir
      end

    end
  end

  ##
  # Creates the scripts to run the applications in the gem.
  #--
  # The Windows script is generated in addition to the regular one due to a
  # bug or misfeature in the Windows shell's pipe.  See
  # http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/193379

  def generate_bin_script(filename, bindir)
    bin_script_path = File.join bindir, formatted_program_filename(filename)

    FileUtils.rm_f bin_script_path # prior install may have been --no-wrappers

    File.open bin_script_path, 'wb', 0755 do |file|
      file.print app_script_text(filename)
    end

    verbose bin_script_path

    generate_windows_script filename, bindir
  end

  ##
  # Creates the symlinks to run the applications in the gem.  Moves
  # the symlink if the gem being installed has a newer version.

  def generate_bin_symlink(filename, bindir)
    if Gem.win_platform? then
      alert_warning "Unable to use symlinks on Windows, installing wrapper"
      generate_bin_script filename, bindir
      return
    end

    src = File.join gem_dir, spec.bindir, filename
    dst = File.join bindir, formatted_program_filename(filename)

    if File.exist? dst then
      if File.symlink? dst then
        link = File.readlink(dst).split File::SEPARATOR
        cur_version = Gem::Version.create(link[-3].sub(/^.*-/, ''))
        return if spec.version < cur_version
      end
      File.unlink dst
    end

    FileUtils.symlink src, dst, :verbose => Gem.configuration.really_verbose
  end

  ##
  # Generates a #! line for +bin_file_name+'s wrapper copying arguments if
  # necessary.
  #
  # If the :custom_shebang config is set, then it is used as a template
  # for how to create the shebang used for to run a gem's executables.
  #
  # The template supports 4 expansions:
  #
  #  $env    the path to the unix env utility
  #  $ruby   the path to the currently running ruby interpreter
  #  $exec   the path to the gem's executable
  #  $name   the name of the gem the executable is for
  #

  def shebang(bin_file_name)
    ruby_name = RbConfig::CONFIG['ruby_install_name'] if @env_shebang
    path = File.join gem_dir, spec.bindir, bin_file_name
    first_line = File.open(path, "rb") {|file| file.gets}

    if /\A#!/ =~ first_line then
      # Preserve extra words on shebang line, like "-w".  Thanks RPA.
      shebang = first_line.sub(/\A\#!.*?ruby\S*((\s+\S+)+)/, "#!#{Gem.ruby}")
      opts = $1
      shebang.strip! # Avoid nasty ^M issues.
    end

    if which = Gem.configuration[:custom_shebang]
      # replace bin_file_name with "ruby" to avoid endless loops
      which = which.gsub(/ #{bin_file_name}$/," #{RbConfig::CONFIG['ruby_install_name']}")

      which = which.gsub(/\$(\w+)/) do
        case $1
        when "env"
          @env_path ||= ENV_PATHS.find {|env_path| File.executable? env_path }
        when "ruby"
          "#{Gem.ruby}#{opts}"
        when "exec"
          bin_file_name
        when "name"
          spec.name
        end
      end

      "#!#{which}"
    elsif not ruby_name then
      "#!#{Gem.ruby}#{opts}"
    elsif opts then
      "#!/bin/sh\n'exec' #{ruby_name.dump} '-x' \"$0\" \"$@\"\n#{shebang}"
    else
      # Create a plain shebang line.
      @env_path ||= ENV_PATHS.find {|env_path| File.executable? env_path }
      "#!#{@env_path} #{ruby_name}"
    end
  end

  ##
  # Ensures the Gem::Specification written out for this gem is loadable upon
  # installation.

  def ensure_loadable_spec
    ruby = spec.to_ruby_for_cache
    ruby.untaint

    begin
      eval ruby
    rescue StandardError, SyntaxError => e
      raise Gem::InstallError,
            "The specification for #{spec.full_name} is corrupt (#{e.class})"
    end
  end

  def ensure_required_ruby_version_met # :nodoc:
    if rrv = spec.required_ruby_version then
      unless rrv.satisfied_by? Gem.ruby_version then
        raise Gem::InstallError, "#{spec.name} requires Ruby version #{rrv}."
      end
    end
  end

  def ensure_required_rubygems_version_met # :nodoc:
    if rrgv = spec.required_rubygems_version then
      unless rrgv.satisfied_by? Gem.rubygems_version then
        raise Gem::InstallError,
          "#{spec.name} requires RubyGems version #{rrgv}. " +
          "Try 'gem update --system' to update RubyGems itself."
      end
    end
  end

  def ensure_dependencies_met # :nodoc:
    deps = spec.runtime_dependencies
    deps |= spec.development_dependencies if @development

    deps.each do |dep_gem|
      ensure_dependency spec, dep_gem
    end
  end

  def process_options # :nodoc:
    @options = {
      :bin_dir      => nil,
      :env_shebang  => false,
      :force        => false,
      :only_install_dir => false
    }.merge options

    @env_shebang         = options[:env_shebang]
    @force               = options[:force]
    @install_dir         = options[:install_dir]
    @gem_home            = options[:install_dir] || Gem.dir
    @ignore_dependencies = options[:ignore_dependencies]
    @format_executable   = options[:format_executable]
    @security_policy     = options[:security_policy]
    @wrappers            = options[:wrappers]
    @only_install_dir    = options[:only_install_dir]

    # If the user has asked for the gem to be installed in a directory that is
    # the system gem directory, then use the system bin directory, else create
    # (or use) a new bin dir under the gem_home.
    @bin_dir             = options[:bin_dir] || Gem.bindir(gem_home)
    @development         = options[:development]
    @build_root          = options[:build_root]

    @build_args          = options[:build_args] || Gem::Command.build_args

    unless @build_root.nil?
      require 'pathname'
      @build_root = Pathname.new(@build_root).expand_path
      @bin_dir = File.join(@build_root, options[:bin_dir] || Gem.bindir(@gem_home))
      @gem_home = File.join(@build_root, @gem_home)
      alert_warning "You build with buildroot.\n  Build root: #{@build_root}\n  Bin dir: #{@bin_dir}\n  Gem home: #{@gem_home}"
    end
  end

  def check_that_user_bin_dir_is_in_path # :nodoc:
    user_bin_dir = @bin_dir || Gem.bindir(gem_home)
    user_bin_dir = user_bin_dir.gsub(File::SEPARATOR, File::ALT_SEPARATOR) if
      File::ALT_SEPARATOR

    path = ENV['PATH']
    if Gem.win_platform? then
      path = path.downcase
      user_bin_dir = user_bin_dir.downcase
    end

    path = path.split(File::PATH_SEPARATOR)

    unless path.include? user_bin_dir then
      unless !Gem.win_platform? && (path.include? user_bin_dir.sub(ENV['HOME'], '~'))
        unless self.class.path_warning then
          alert_warning "You don't have #{user_bin_dir} in your PATH,\n\t  gem executables will not run."
          self.class.path_warning = true
        end
      end
    end
  end

  def verify_gem_home(unpack = false) # :nodoc:
    FileUtils.mkdir_p gem_home
    raise Gem::FilePermissionError, gem_home unless
      unpack or File.writable?(gem_home)
  end

  def verify_spec_name
    return if spec.name =~ Gem::Specification::VALID_NAME_PATTERN
    raise Gem::InstallError, "#{spec} has an invalid name"
  end

  ##
  # Return the text for an application file.

  def app_script_text(bin_file_name)
    return <<-TEXT
#{shebang bin_file_name}
#
# This file was generated by RubyGems.
#
# The application '#{spec.name}' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'

version = "#{Gem::Requirement.default}"

if ARGV.first
  str = ARGV.first
  str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
  if str =~ /\\A_(.*)_\\z/ and Gem::Version.correct?($1) then
    version = $1
    ARGV.shift
  end
end

gem '#{spec.name}', version
load Gem.bin_path('#{spec.name}', '#{bin_file_name}', version)
TEXT
  end

  ##
  # return the stub script text used to launch the true Ruby script

  def windows_stub_script(bindir, bin_file_name)
    ruby = Gem.ruby.gsub(/^\"|\"$/, "").tr(File::SEPARATOR, "\\")
    return <<-TEXT
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"#{ruby}" "#{File.join(bindir, bin_file_name)}" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"#{ruby}" "%~dpn0" %*
TEXT
  end

  ##
  # Builds extensions.  Valid types of extensions are extconf.rb files,
  # configure scripts and rakefiles or mkrf_conf files.

  def build_extensions
    builder = Gem::Ext::Builder.new spec, @build_args

    builder.build_extensions
  end

  ##
  # Logs the build +output+ in +build_dir+, then raises Gem::Ext::BuildError.
  #
  # TODO:  Delete this for RubyGems 3.  It remains for API compatibility

  def extension_build_error(build_dir, output, backtrace = nil) # :nodoc:
    builder = Gem::Ext::Builder.new spec, @build_args

    builder.build_error build_dir, output, backtrace
  end

  ##
  # Reads the file index and extracts each file into the gem directory.
  #
  # Ensures that files can't be installed outside the gem directory.

  def extract_files
    @package.extract_files gem_dir
  end

  ##
  # Extracts only the bin/ files from the gem into the gem directory.
  # This is used by default gems to allow a gem-aware stub to function
  # without the full gem installed.

  def extract_bin
    @package.extract_files gem_dir, "bin/*"
  end

  ##
  # Prefix and suffix the program filename the same as ruby.

  def formatted_program_filename(filename)
    if @format_executable then
      self.class.exec_format % File.basename(filename)
    else
      filename
    end
  end

  ##
  #
  # Return the target directory where the gem is to be installed. This
  # directory is not guaranteed to be populated.
  #

  def dir
    gem_dir.to_s
  end

  ##
  # Performs various checks before installing the gem such as the install
  # repository is writable and its directories exist, required Ruby and
  # rubygems versions are met and that dependencies are installed.
  #
  # Version and dependency checks are skipped if this install is forced.
  #
  # The dependent check will be skipped this install is ignoring dependencies.

  def pre_install_checks
    verify_gem_home options[:unpack]

    # If we're forcing the install then disable security unless the security
    # policy says that we only install signed gems.
    @security_policy = nil if
      @force and @security_policy and not @security_policy.only_signed

    ensure_loadable_spec

    verify_spec_name

    if options[:install_as_default]
      Gem.ensure_default_gem_subdirectories gem_home
    else
      Gem.ensure_gem_subdirectories gem_home
    end

    return true if @force

    ensure_required_ruby_version_met
    ensure_required_rubygems_version_met
    ensure_dependencies_met unless @ignore_dependencies

    true
  end

  ##
  # Writes the file containing the arguments for building this gem's
  # extensions.

  def write_build_info_file
    return if @build_args.empty?

    build_info_dir = File.join gem_home, 'build_info'

    FileUtils.mkdir_p build_info_dir

    build_info_file = File.join build_info_dir, "#{spec.full_name}.info"

    open build_info_file, 'w' do |io|
      @build_args.each do |arg|
        io.puts arg
      end
    end
  end

  ##
  # Writes the .gem file to the cache directory

  def write_cache_file
    cache_file = File.join gem_home, 'cache', spec.file_name

    FileUtils.cp @gem, cache_file unless File.exist? cache_file
  end

end

lib64/ruby/2.2.0/rubygems/source_specific_file.rb000064400000000135150402106270015426 0ustar00require 'rubygems/source/specific_file'

# TODO warn upon require, this file is deprecated.

lib64/ruby/2.2.0/rubygems/install_default_message.rb000064400000000463150402106270016144 0ustar00require 'rubygems'
require 'rubygems/user_interaction'

##
# A post-install hook that displays "Successfully installed
# some_gem-1.0 as a default gem"

Gem.post_install do |installer|
  ui = Gem::DefaultUserInteraction.ui
  ui.say "Successfully installed #{installer.spec.full_name} as a default gem"
end

lib64/ruby/2.2.0/rubygems/security.rb000064400000051724150402106270013143 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'rubygems/exceptions'
require 'fileutils'

begin
  require 'openssl'
rescue LoadError => e
  raise unless (e.respond_to?(:path) && e.path == 'openssl') ||
               e.message =~ / -- openssl$/
end

##
# = Signing gems
#
# The Gem::Security implements cryptographic signatures for gems.  The section
# below is a step-by-step guide to using signed gems and generating your own.
#
# == Walkthrough
#
# === Building your certificate
#
# In order to start signing your gems, you'll need to build a private key and
# a self-signed certificate.  Here's how:
#
#   # build a private key and certificate for yourself:
#   $ gem cert --build you@example.com
#
# This could take anywhere from a few seconds to a minute or two, depending on
# the speed of your computer (public key algorithms aren't exactly the
# speediest crypto algorithms in the world).  When it's finished, you'll see
# the files "gem-private_key.pem" and "gem-public_cert.pem" in the current
# directory.
#
# First things first: Move both files to ~/.gem if you don't already have a
# key and certificate in that directory.  Ensure the file permissions make the
# key unreadable by others (by default the file is saved securely).
#
# Keep your private key hidden; if it's compromised, someone can sign packages
# as you (note: PKI has ways of mitigating the risk of stolen keys; more on
# that later).
#
# === Signing Gems
#
# In RubyGems 2 and newer there is no extra work to sign a gem.  RubyGems will
# automatically find your key and certificate in your home directory and use
# them to sign newly packaged gems.
#
# If your certificate is not self-signed (signed by a third party) RubyGems
# will attempt to load the certificate chain from the trusted certificates.
# Use <code>gem cert --add signing_cert.pem</code> to add your signers as
# trusted certificates.  See below for further information on certificate
# chains.
#
# If you build your gem it will automatically be signed.  If you peek inside
# your gem file, you'll see a couple of new files have been added:
#
#   $ tar tf your-gem-1.0.gem
#   metadata.gz
#   metadata.gz.sum
#   metadata.gz.sig # metadata signature
#   data.tar.gz
#   data.tar.gz.sum
#   data.tar.gz.sig # data signature
#
# === Manually signing gems
#
# If you wish to store your key in a separate secure location you'll need to
# set your gems up for signing by hand.  To do this, set the
# <code>signing_key</code> and <code>cert_chain</code> in the gemspec before
# packaging your gem:
#
#   s.signing_key = '/secure/path/to/gem-private_key.pem'
#   s.cert_chain = %w[/secure/path/to/gem-public_cert.pem]
#
# When you package your gem with these options set RubyGems will automatically
# load your key and certificate from the secure paths.
#
# === Signed gems and security policies
#
# Now let's verify the signature.  Go ahead and install the gem, but add the
# following options: <code>-P HighSecurity</code>, like this:
#
#   # install the gem with using the security policy "HighSecurity"
#   $ sudo gem install your.gem -P HighSecurity
#
# The <code>-P</code> option sets your security policy -- we'll talk about
# that in just a minute.  Eh, what's this?
#
#   $ gem install -P HighSecurity your-gem-1.0.gem
#   ERROR:  While executing gem ... (Gem::Security::Exception)
#       root cert /CN=you/DC=example is not trusted
#
# The culprit here is the security policy.  RubyGems has several different
# security policies.  Let's take a short break and go over the security
# policies.  Here's a list of the available security policies, and a brief
# description of each one:
#
# * NoSecurity - Well, no security at all.  Signed packages are treated like
#   unsigned packages.
# * LowSecurity - Pretty much no security.  If a package is signed then
#   RubyGems will make sure the signature matches the signing
#   certificate, and that the signing certificate hasn't expired, but
#   that's it.  A malicious user could easily circumvent this kind of
#   security.
# * MediumSecurity - Better than LowSecurity and NoSecurity, but still
#   fallible.  Package contents are verified against the signing
#   certificate, and the signing certificate is checked for validity,
#   and checked against the rest of the certificate chain (if you don't
#   know what a certificate chain is, stay tuned, we'll get to that).
#   The biggest improvement over LowSecurity is that MediumSecurity
#   won't install packages that are signed by untrusted sources.
#   Unfortunately, MediumSecurity still isn't totally secure -- a
#   malicious user can still unpack the gem, strip the signatures, and
#   distribute the gem unsigned.
# * HighSecurity - Here's the bugger that got us into this mess.
#   The HighSecurity policy is identical to the MediumSecurity policy,
#   except that it does not allow unsigned gems.  A malicious user
#   doesn't have a whole lot of options here; they can't modify the
#   package contents without invalidating the signature, and they can't
#   modify or remove signature or the signing certificate chain, or
#   RubyGems will simply refuse to install the package.  Oh well, maybe
#   they'll have better luck causing problems for CPAN users instead :).
#
# The reason RubyGems refused to install your shiny new signed gem was because
# it was from an untrusted source.  Well, your code is infallible (naturally),
# so you need to add yourself as a trusted source:
#
#   # add trusted certificate
#   gem cert --add ~/.gem/gem-public_cert.pem
#
# You've now added your public certificate as a trusted source.  Now you can
# install packages signed by your private key without any hassle.  Let's try
# the install command above again:
#
#   # install the gem with using the HighSecurity policy (and this time
#   # without any shenanigans)
#   $ gem install -P HighSecurity your-gem-1.0.gem
#   Successfully installed your-gem-1.0
#   1 gem installed
#
# This time RubyGems will accept your signed package and begin installing.
#
# While you're waiting for RubyGems to work it's magic, have a look at some of
# the other security commands by running <code>gem help cert</code>:
#
#   Options:
#     -a, --add CERT                   Add a trusted certificate.
#     -l, --list [FILTER]              List trusted certificates where the
#                                      subject contains FILTER
#     -r, --remove FILTER              Remove trusted certificates where the
#                                      subject contains FILTER
#     -b, --build EMAIL_ADDR           Build private key and self-signed
#                                      certificate for EMAIL_ADDR
#     -C, --certificate CERT           Signing certificate for --sign
#     -K, --private-key KEY            Key for --sign or --build
#     -s, --sign CERT                  Signs CERT with the key from -K
#                                      and the certificate from -C
#
# We've already covered the <code>--build</code> option, and the
# <code>--add</code>, <code>--list</code>, and <code>--remove</code> commands
# seem fairly straightforward; they allow you to add, list, and remove the
# certificates in your trusted certificate list.  But what's with this
# <code>--sign</code> option?
#
# === Certificate chains
#
# To answer that question, let's take a look at "certificate chains", a
# concept I mentioned earlier.  There are a couple of problems with
# self-signed certificates: first of all, self-signed certificates don't offer
# a whole lot of security.  Sure, the certificate says Yukihiro Matsumoto, but
# how do I know it was actually generated and signed by matz himself unless he
# gave me the certificate in person?
#
# The second problem is scalability.  Sure, if there are 50 gem authors, then
# I have 50 trusted certificates, no problem.  What if there are 500 gem
# authors?  1000?  Having to constantly add new trusted certificates is a
# pain, and it actually makes the trust system less secure by encouraging
# RubyGems users to blindly trust new certificates.
#
# Here's where certificate chains come in.  A certificate chain establishes an
# arbitrarily long chain of trust between an issuing certificate and a child
# certificate.  So instead of trusting certificates on a per-developer basis,
# we use the PKI concept of certificate chains to build a logical hierarchy of
# trust.  Here's a hypothetical example of a trust hierarchy based (roughly)
# on geography:
#
#                         --------------------------
#                         | rubygems@rubygems.org |
#                         --------------------------
#                                     |
#                   -----------------------------------
#                   |                                 |
#       ----------------------------    -----------------------------
#       |  seattlerb@seattlerb.org |    | dcrubyists@richkilmer.com |
#       ----------------------------    -----------------------------
#            |                |                 |             |
#     ---------------   ----------------   -----------   --------------
#     |   drbrain   |   |   zenspider  |   | pabs@dc |   | tomcope@dc |
#     ---------------   ----------------   -----------   --------------
#
#
# Now, rather than having 4 trusted certificates (one for drbrain, zenspider,
# pabs@dc, and tomecope@dc), a user could actually get by with one
# certificate, the "rubygems@rubygems.org" certificate.
#
# Here's how it works:
#
# I install "rdoc-3.12.gem", a package signed by "drbrain".  I've never heard
# of "drbrain", but his certificate has a valid signature from the
# "seattle.rb@seattlerb.org" certificate, which in turn has a valid signature
# from the "rubygems@rubygems.org" certificate.  Voila!  At this point, it's
# much more reasonable for me to trust a package signed by "drbrain", because
# I can establish a chain to "rubygems@rubygems.org", which I do trust.
#
# === Signing certificates
#
# The <code>--sign</code> option allows all this to happen.  A developer
# creates their build certificate with the <code>--build</code> option, then
# has their certificate signed by taking it with them to their next regional
# Ruby meetup (in our hypothetical example), and it's signed there by the
# person holding the regional RubyGems signing certificate, which is signed at
# the next RubyConf by the holder of the top-level RubyGems certificate.  At
# each point the issuer runs the same command:
#
#   # sign a certificate with the specified key and certificate
#   # (note that this modifies client_cert.pem!)
#   $ gem cert -K /mnt/floppy/issuer-priv_key.pem -C issuer-pub_cert.pem
#      --sign client_cert.pem
#
# Then the holder of issued certificate (in this case, your buddy "drbrain"),
# can start using this signed certificate to sign RubyGems.  By the way, in
# order to let everyone else know about his new fancy signed certificate,
# "drbrain" would save his newly signed certificate as
# <code>~/.gem/gem-public_cert.pem</code>
#
# Obviously this RubyGems trust infrastructure doesn't exist yet.  Also, in
# the "real world", issuers actually generate the child certificate from a
# certificate request, rather than sign an existing certificate.  And our
# hypothetical infrastructure is missing a certificate revocation system.
# These are that can be fixed in the future...
#
# At this point you should know how to do all of these new and interesting
# things:
#
# * build a gem signing key and certificate
# * adjust your security policy
# * modify your trusted certificate list
# * sign a certificate
#
# == Manually verifying signatures
#
# In case you don't trust RubyGems you can verify gem signatures manually:
#
# 1. Fetch and unpack the gem
#
#      gem fetch some_signed_gem
#      tar -xf some_signed_gem-1.0.gem
#
# 2. Grab the public key from the gemspec
#
#      gem spec some_signed_gem-1.0.gem cert_chain | \
#        ruby -ryaml -e 'puts YAML.load_documents($stdin)' > public_key.crt
#
# 3. Generate a SHA1 hash of the data.tar.gz
#
#      openssl dgst -sha1 < data.tar.gz > my.hash
#
# 4. Verify the signature
#
#      openssl rsautl -verify -inkey public_key.crt -certin \
#        -in data.tar.gz.sig > verified.hash
#
# 5. Compare your hash to the verified hash
#
#      diff -s verified.hash my.hash
#
# 6. Repeat 5 and 6 with metadata.gz
#
# == OpenSSL Reference
#
# The .pem files generated by --build and --sign are PEM files.  Here's a
# couple of useful OpenSSL commands for manipulating them:
#
#   # convert a PEM format X509 certificate into DER format:
#   # (note: Windows .cer files are X509 certificates in DER format)
#   $ openssl x509 -in input.pem -outform der -out output.der
#
#   # print out the certificate in a human-readable format:
#   $ openssl x509 -in input.pem -noout -text
#
# And you can do the same thing with the private key file as well:
#
#   # convert a PEM format RSA key into DER format:
#   $ openssl rsa -in input_key.pem -outform der -out output_key.der
#
#   # print out the key in a human readable format:
#   $ openssl rsa -in input_key.pem -noout -text
#
# == Bugs/TODO
#
# * There's no way to define a system-wide trust list.
# * custom security policies (from a YAML file, etc)
# * Simple method to generate a signed certificate request
# * Support for OCSP, SCVP, CRLs, or some other form of cert status check
#   (list is in order of preference)
# * Support for encrypted private keys
# * Some sort of semi-formal trust hierarchy (see long-winded explanation
#   above)
# * Path discovery (for gem certificate chains that don't have a self-signed
#   root) -- by the way, since we don't have this, THE ROOT OF THE CERTIFICATE
#   CHAIN MUST BE SELF SIGNED if Policy#verify_root is true (and it is for the
#   MediumSecurity and HighSecurity policies)
# * Better explanation of X509 naming (ie, we don't have to use email
#   addresses)
# * Honor AIA field (see note about OCSP above)
# * Honor extension restrictions
# * Might be better to store the certificate chain as a PKCS#7 or PKCS#12
#   file, instead of an array embedded in the metadata.
# * Flexible signature and key algorithms, not hard-coded to RSA and SHA1.
#
# == Original author
#
# Paul Duncan <pabs@pablotron.org>
# http://pablotron.org/

module Gem::Security

  ##
  # Gem::Security default exception type

  class Exception < Gem::Exception; end

  ##
  # Digest algorithm used to sign gems

  DIGEST_ALGORITHM =
    if defined?(OpenSSL::Digest) then
      OpenSSL::Digest::SHA1
    end

  ##
  # Used internally to select the signing digest from all computed digests

  DIGEST_NAME = # :nodoc:
    if DIGEST_ALGORITHM then
      DIGEST_ALGORITHM.new.name
    end

  ##
  # Algorithm for creating the key pair used to sign gems

  KEY_ALGORITHM =
    if defined?(OpenSSL::PKey) then
      OpenSSL::PKey::RSA
    end

  ##
  # Length of keys created by KEY_ALGORITHM

  KEY_LENGTH = 2048

  ##
  # Cipher used to encrypt the key pair used to sign gems.
  # Must be in the list returned by OpenSSL::Cipher.ciphers

  KEY_CIPHER = OpenSSL::Cipher.new('AES-256-CBC') if defined?(OpenSSL::Cipher)

  ##
  # One year in seconds

  ONE_YEAR = 86400 * 365

  ##
  # The default set of extensions are:
  #
  # * The certificate is not a certificate authority
  # * The key for the certificate may be used for key and data encipherment
  #   and digital signatures
  # * The certificate contains a subject key identifier

  EXTENSIONS = {
    'basicConstraints'     => 'CA:FALSE',
    'keyUsage'             =>
      'keyEncipherment,dataEncipherment,digitalSignature',
    'subjectKeyIdentifier' => 'hash',
  }

  def self.alt_name_or_x509_entry certificate, x509_entry
    alt_name = certificate.extensions.find do |extension|
      extension.oid == "#{x509_entry}AltName"
    end

    return alt_name.value if alt_name

    certificate.send x509_entry
  end

  ##
  # Creates an unsigned certificate for +subject+ and +key+.  The lifetime of
  # the key is from the current time to +age+ which defaults to one year.
  #
  # The +extensions+ restrict the key to the indicated uses.

  def self.create_cert subject, key, age = ONE_YEAR, extensions = EXTENSIONS,
                       serial = 1
    cert = OpenSSL::X509::Certificate.new

    cert.public_key = key.public_key
    cert.version    = 2
    cert.serial     = serial

    cert.not_before = Time.now
    cert.not_after  = Time.now + age

    cert.subject    = subject

    ef = OpenSSL::X509::ExtensionFactory.new nil, cert

    cert.extensions = extensions.map do |ext_name, value|
      ef.create_extension ext_name, value
    end

    cert
  end

  ##
  # Creates a self-signed certificate with an issuer and subject from +email+,
  # a subject alternative name of +email+ and the given +extensions+ for the
  # +key+.

  def self.create_cert_email email, key, age = ONE_YEAR, extensions = EXTENSIONS
    subject = email_to_name email

    extensions = extensions.merge "subjectAltName" => "email:#{email}"

    create_cert_self_signed subject, key, age, extensions
  end

  ##
  # Creates a self-signed certificate with an issuer and subject of +subject+
  # and the given +extensions+ for the +key+.

  def self.create_cert_self_signed subject, key, age = ONE_YEAR,
                                   extensions = EXTENSIONS, serial = 1
    certificate = create_cert subject, key, age, extensions

    sign certificate, key, certificate, age, extensions, serial
  end

  ##
  # Creates a new key pair of the specified +length+ and +algorithm+.  The
  # default is a 2048 bit RSA key.

  def self.create_key length = KEY_LENGTH, algorithm = KEY_ALGORITHM
    algorithm.new length
  end

  ##
  # Turns +email_address+ into an OpenSSL::X509::Name

  def self.email_to_name email_address
    email_address = email_address.gsub(/[^\w@.-]+/i, '_')

    cn, dcs = email_address.split '@'

    dcs = dcs.split '.'

    name = "CN=#{cn}/#{dcs.map { |dc| "DC=#{dc}" }.join '/'}"

    OpenSSL::X509::Name.parse name
  end

  ##
  # Signs +expired_certificate+ with +private_key+ if the keys match and the
  # expired certificate was self-signed.
  #--
  # TODO increment serial

  def self.re_sign expired_certificate, private_key, age = ONE_YEAR,
                   extensions = EXTENSIONS
    raise Gem::Security::Exception,
          "incorrect signing key for re-signing " +
          "#{expired_certificate.subject}" unless
      expired_certificate.public_key.to_pem == private_key.public_key.to_pem

    unless expired_certificate.subject.to_s ==
           expired_certificate.issuer.to_s then
      subject = alt_name_or_x509_entry expired_certificate, :subject
      issuer  = alt_name_or_x509_entry expired_certificate, :issuer

      raise Gem::Security::Exception,
            "#{subject} is not self-signed, contact #{issuer} " +
            "to obtain a valid certificate"
    end

    serial = expired_certificate.serial + 1

    create_cert_self_signed(expired_certificate.subject, private_key, age,
                            extensions, serial)
  end

  ##
  # Resets the trust directory for verifying gems.

  def self.reset
    @trust_dir = nil
  end

  ##
  # Sign the public key from +certificate+ with the +signing_key+ and
  # +signing_cert+, using the Gem::Security::DIGEST_ALGORITHM.  Uses the
  # default certificate validity range and extensions.
  #
  # Returns the newly signed certificate.

  def self.sign certificate, signing_key, signing_cert,
                age = ONE_YEAR, extensions = EXTENSIONS, serial = 1
    signee_subject = certificate.subject
    signee_key     = certificate.public_key

    alt_name = certificate.extensions.find do |extension|
      extension.oid == 'subjectAltName'
    end

    extensions = extensions.merge 'subjectAltName' => alt_name.value if
      alt_name

    issuer_alt_name = signing_cert.extensions.find do |extension|
      extension.oid == 'subjectAltName'
    end

    extensions = extensions.merge 'issuerAltName' => issuer_alt_name.value if
      issuer_alt_name

    signed = create_cert signee_subject, signee_key, age, extensions, serial
    signed.issuer = signing_cert.subject

    signed.sign signing_key, Gem::Security::DIGEST_ALGORITHM.new
  end

  ##
  # Returns a Gem::Security::TrustDir which wraps the directory where trusted
  # certificates live.

  def self.trust_dir
    return @trust_dir if @trust_dir

    dir = File.join Gem.user_home, '.gem', 'trust'

    @trust_dir ||= Gem::Security::TrustDir.new dir
  end

  ##
  # Enumerates the trusted certificates via Gem::Security::TrustDir.

  def self.trusted_certificates &block
    trust_dir.each_certificate(&block)
  end

  ##
  # Writes +pemmable+, which must respond to +to_pem+ to +path+ with the given
  # +permissions+. If passed +cipher+ and +passphrase+ those arguments will be
  # passed to +to_pem+.

  def self.write pemmable, path, permissions = 0600, passphrase = nil, cipher = KEY_CIPHER
    path = File.expand_path path

    open path, 'wb', permissions do |io|
      if passphrase and cipher
        io.write pemmable.to_pem cipher, passphrase
      else
        io.write pemmable.to_pem
      end
    end

    path
  end

  reset

end

if defined?(OpenSSL::SSL) then
  require 'rubygems/security/policy'
  require 'rubygems/security/policies'
  require 'rubygems/security/trust_dir'
end

require 'rubygems/security/signer'

lib64/ruby/2.2.0/rubygems/stub_specification.rb000064400000007071150402106270015145 0ustar00##
# Gem::StubSpecification reads the stub: line from the gemspec.  This prevents
# us having to eval the entire gemspec in order to find out certain
# information.

class Gem::StubSpecification < Gem::BasicSpecification
  # :nodoc:
  PREFIX = "# stub: "

  OPEN_MODE = # :nodoc:
    if Object.const_defined? :Encoding then
      'r:UTF-8:-'
    else
      'r'
    end

  class StubLine # :nodoc: all
    attr_reader :parts

    def initialize(data)
      @parts = data[PREFIX.length..-1].split(" ")
    end

    def name
      @parts[0]
    end

    def version
      Gem::Version.new @parts[1]
    end

    def platform
      Gem::Platform.new @parts[2]
    end

    def require_paths
      @parts[3..-1].join(" ").split("\0")
    end
  end

  def initialize(filename)
    self.loaded_from = filename
    @data            = nil
    @extensions      = nil
    @name            = nil
    @spec            = nil
  end

  ##
  # True when this gem has been activated

  def activated?
    @activated ||=
    begin
      loaded = Gem.loaded_specs[name]
      loaded && loaded.version == version
    end
  end

  def build_extensions # :nodoc:
    return if default_gem?
    return if extensions.empty?

    to_spec.build_extensions
  end

  ##
  # If the gemspec contains a stubline, returns a StubLine instance. Otherwise
  # returns the full Gem::Specification.

  def data
    unless @data
      @extensions = []

      open loaded_from, OPEN_MODE do |file|
        begin
          file.readline # discard encoding line
          stubline = file.readline.chomp
          if stubline.start_with?(PREFIX) then
            @data = StubLine.new stubline

            @extensions = $'.split "\0" if
              /\A#{PREFIX}/ =~ file.readline.chomp
          end
        rescue EOFError
        end
      end
    end

    @data ||= to_spec
  end

  private :data

  ##
  # Extensions for this gem

  def extensions
    return @extensions if @extensions

    data # load

    @extensions
  end

  ##
  # If a gem has a stub specification it doesn't need to bother with
  # compatibility with original_name gems.  It was installed with the
  # normalized name.

  def find_full_gem_path # :nodoc:
    path = File.expand_path File.join gems_dir, full_name
    path.untaint
    path
  end

  ##
  # Full paths in the gem to add to <code>$LOAD_PATH</code> when this gem is
  # activated.

  def full_require_paths
    @require_paths ||= data.require_paths

    super
  end

  def missing_extensions?
    return false if default_gem?
    return false if extensions.empty?

    to_spec.missing_extensions?
  end

  ##
  # Name of the gem

  def name
    @name ||= data.name
  end

  ##
  # Platform of the gem

  def platform
    @platform ||= data.platform
  end

  ##
  # Require paths of the gem

  def require_paths
    @require_paths ||= data.require_paths

    super
  end

  ##
  # The full Gem::Specification for this gem, loaded from evalling its gemspec

  def to_spec
    @spec ||= if @data then
                Gem.loaded_specs.values.find { |spec|
                  spec.name == name and spec.version == version
                }
              end

    @spec ||= Gem::Specification.load(loaded_from)
    @spec.ignored = @ignored if instance_variable_defined? :@ignored

    @spec
  end

  ##
  # Is this StubSpecification valid? i.e. have we found a stub line, OR does
  # the filename contain a valid gemspec?

  def valid?
    data
  end

  ##
  # Version of the gem

  def version
    @version ||= data.version
  end

  ##
  # Is there a stub line present for this StubSpecification?

  def stubbed?
    data.is_a? StubLine
  end

end

lib64/ruby/2.2.0/rubygems/specification.rb000064400000221602150402106270014106 0ustar00# -*- coding: utf-8 -*-
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++


require 'rubygems/version'
require 'rubygems/requirement'
require 'rubygems/platform'
require 'rubygems/deprecate'
require 'rubygems/basic_specification'
require 'rubygems/stub_specification'
require 'rubygems/util/stringio'
require 'uri'

##
# The Specification class contains the information for a Gem.  Typically
# defined in a .gemspec file or a Rakefile, and looks like this:
#
#   Gem::Specification.new do |s|
#     s.name        = 'example'
#     s.version     = '0.1.0'
#     s.licenses    = ['MIT']
#     s.summary     = "This is an example!"
#     s.description = "Much longer explanation of the example!"
#     s.authors     = ["Ruby Coder"]
#     s.email       = 'rubycoder@example.com'
#     s.files       = ["lib/example.rb"]
#     s.homepage    = 'https://rubygems.org/gems/example'
#   end
#
# Starting in RubyGems 2.0, a Specification can hold arbitrary
# metadata.  See #metadata for restrictions on the format and size of metadata
# items you may add to a specification.

class Gem::Specification < Gem::BasicSpecification

  # REFACTOR: Consider breaking out this version stuff into a separate
  # module. There's enough special stuff around it that it may justify
  # a separate class.

  ##
  # The version number of a specification that does not specify one
  # (i.e. RubyGems 0.7 or earlier).

  NONEXISTENT_SPECIFICATION_VERSION = -1

  ##
  # The specification version applied to any new Specification instances
  # created.  This should be bumped whenever something in the spec format
  # changes.
  #
  # Specification Version History:
  #
  #   spec   ruby
  #    ver    ver yyyy-mm-dd description
  #     -1 <0.8.0            pre-spec-version-history
  #      1  0.8.0 2004-08-01 Deprecated "test_suite_file" for "test_files"
  #                          "test_file=x" is a shortcut for "test_files=[x]"
  #      2  0.9.5 2007-10-01 Added "required_rubygems_version"
  #                          Now forward-compatible with future versions
  #      3  1.3.2 2009-01-03 Added Fixnum validation to specification_version
  #      4  1.9.0 2011-06-07 Added metadata
  #--
  # When updating this number, be sure to also update #to_ruby.
  #
  # NOTE RubyGems < 1.2 cannot load specification versions > 2.

  CURRENT_SPECIFICATION_VERSION = 4 # :nodoc:

  ##
  # An informal list of changes to the specification.  The highest-valued
  # key should be equal to the CURRENT_SPECIFICATION_VERSION.

  SPECIFICATION_VERSION_HISTORY = { # :nodoc:
    -1 => ['(RubyGems versions up to and including 0.7 did not have versioned specifications)'],
    1  => [
      'Deprecated "test_suite_file" in favor of the new, but equivalent, "test_files"',
      '"test_file=x" is a shortcut for "test_files=[x]"'
    ],
    2  => [
      'Added "required_rubygems_version"',
      'Now forward-compatible with future versions',
    ],
    3 => [
       'Added Fixnum validation to the specification_version'
    ],
    4 => [
      'Added sandboxed freeform metadata to the specification version.'
    ]
  }

  MARSHAL_FIELDS = { # :nodoc:
    -1 => 16,
     1 => 16,
     2 => 16,
     3 => 17,
     4 => 18,
  }

  today = Time.now.utc
  TODAY = Time.utc(today.year, today.month, today.day) # :nodoc:

  LOAD_CACHE = {} # :nodoc:

  private_constant :LOAD_CACHE if defined? private_constant

  VALID_NAME_PATTERN = /\A[a-zA-Z0-9\.\-\_]+\z/ # :nodoc:

  # :startdoc:

  ##
  # List of attribute names: [:name, :version, ...]

  @@required_attributes = [:rubygems_version,
                           :specification_version,
                           :name,
                           :version,
                           :date,
                           :summary,
                           :require_paths]

  ##
  # Map of attribute names to default values.

  @@default_value = {
    :authors                   => [],
    :autorequire               => nil,
    :bindir                    => 'bin',
    :cert_chain                => [],
    :date                      => TODAY,
    :dependencies              => [],
    :description               => nil,
    :email                     => nil,
    :executables               => [],
    :extensions                => [],
    :extra_rdoc_files          => [],
    :files                     => [],
    :homepage                  => nil,
    :licenses                  => [],
    :metadata                  => {},
    :name                      => nil,
    :platform                  => Gem::Platform::RUBY,
    :post_install_message      => nil,
    :rdoc_options              => [],
    :require_paths             => ['lib'],
    :required_ruby_version     => Gem::Requirement.default,
    :required_rubygems_version => Gem::Requirement.default,
    :requirements              => [],
    :rubyforge_project         => nil,
    :rubygems_version          => Gem::VERSION,
    :signing_key               => nil,
    :specification_version     => CURRENT_SPECIFICATION_VERSION,
    :summary                   => nil,
    :test_files                => [],
    :version                   => nil,
  }

  Dupable = { } # :nodoc:

  @@default_value.each do |k,v|
    case v
    when Time, Numeric, Symbol, true, false, nil
      Dupable[k] = false
    else
      Dupable[k] = true
    end
  end

  @@attributes = @@default_value.keys.sort_by { |s| s.to_s }
  @@array_attributes = @@default_value.reject { |k,v| v != [] }.keys
  @@nil_attributes, @@non_nil_attributes = @@default_value.keys.partition { |k|
    @@default_value[k].nil?
  }

  ######################################################################
  # :section: Required gemspec attributes

  ##
  # This gem's name.
  #
  # Usage:
  #
  #   spec.name = 'rake'

  attr_accessor :name

  ##
  # This gem's version.
  #
  # The version string can contain numbers and periods, such as +1.0.0+.
  # A gem is a 'prerelease' gem if the version has a letter in it, such as
  # +1.0.0.pre+.
  #
  # Usage:
  #
  #   spec.version = '0.4.1'

  attr_reader :version

  ##
  # Paths in the gem to add to <code>$LOAD_PATH</code> when this gem is
  # activated.
  #
  # See also #require_paths
  #
  # If you have an extension you do not need to add <code>"ext"</code> to the
  # require path, the extension build process will copy the extension files
  # into "lib" for you.
  #
  # The default value is <code>"lib"</code>
  #
  # Usage:
  #
  #   # If all library files are in the root directory...
  #   spec.require_paths = ['.']

  def require_paths=(val)
    @require_paths = Array(val)
  end

  ##
  # The version of RubyGems used to create this gem.
  #
  # Do not set this, it is set automatically when the gem is packaged.

  attr_accessor :rubygems_version

  ##
  # A short summary of this gem's description.  Displayed in `gem list -d`.
  #
  # The #description should be more detailed than the summary.
  #
  # Usage:
  #
  #   spec.summary = "This is a small summary of my gem"

  attr_reader :summary

  ##
  # Singular writer for #authors
  #
  # Usage:
  #
  #   spec.author = 'John Jones'

  def author= o
    self.authors = [o]
  end

  ##
  # Sets the list of authors, ensuring it is an array.
  #
  # Usage:
  #
  #   spec.authors = ['John Jones', 'Mary Smith']

  def authors= value
    @authors = Array(value).flatten.grep(String)
  end

  ##
  # The platform this gem runs on.
  #
  # This is usually Gem::Platform::RUBY or Gem::Platform::CURRENT.
  #
  # Most gems contain pure Ruby code; they should simply leave the default
  # value in place.  Some gems contain C (or other) code to be compiled into a
  # Ruby "extension".  The gem should leave the default value in place unless
  # the code will only compile on a certain type of system.  Some gems consist
  # of pre-compiled code ("binary gems").  It's especially important that they
  # set the platform attribute appropriately.  A shortcut is to set the
  # platform to Gem::Platform::CURRENT, which will cause the gem builder to set
  # the platform to the appropriate value for the system on which the build is
  # being performed.
  #
  # If this attribute is set to a non-default value, it will be included in
  # the filename of the gem when it is built such as:
  # nokogiri-1.6.0-x86-mingw32.gem
  #
  # Usage:
  #
  #   spec.platform = Gem::Platform.local

  def platform= platform
    if @original_platform.nil? or
       @original_platform == Gem::Platform::RUBY then
      @original_platform = platform
    end

    case platform
    when Gem::Platform::CURRENT then
      @new_platform = Gem::Platform.local
      @original_platform = @new_platform.to_s

    when Gem::Platform then
      @new_platform = platform

    # legacy constants
    when nil, Gem::Platform::RUBY then
      @new_platform = Gem::Platform::RUBY
    when 'mswin32' then # was Gem::Platform::WIN32
      @new_platform = Gem::Platform.new 'x86-mswin32'
    when 'i586-linux' then # was Gem::Platform::LINUX_586
      @new_platform = Gem::Platform.new 'x86-linux'
    when 'powerpc-darwin' then # was Gem::Platform::DARWIN
      @new_platform = Gem::Platform.new 'ppc-darwin'
    else
      @new_platform = Gem::Platform.new platform
    end

    @platform = @new_platform.to_s

    invalidate_memoized_attributes

    @new_platform
  end

  ##
  # Files included in this gem.  You cannot append to this accessor, you must
  # assign to it.
  #
  # Only add files you can require to this list, not directories, etc.
  #
  # Directories are automatically stripped from this list when building a gem,
  # other non-files cause an error.
  #
  # Usage:
  #
  #   require 'rake'
  #   spec.files = FileList['lib/**/*.rb',
  #                         'bin/*',
  #                         '[A-Z]*',
  #                         'test/**/*'].to_a
  #
  #   # or without Rake...
  #   spec.files = Dir['lib/**/*.rb'] + Dir['bin/*']
  #   spec.files += Dir['[A-Z]*'] + Dir['test/**/*']
  #   spec.files.reject! { |fn| fn.include? "CVS" }

  def files
    # DO NOT CHANGE TO ||= ! This is not a normal accessor. (yes, it sucks)
    # DOC: Why isn't it normal? Why does it suck? How can we fix this?
    @files = [@files,
              @test_files,
              add_bindir(@executables),
              @extra_rdoc_files,
              @extensions,
             ].flatten.uniq.compact.sort
  end

  ######################################################################
  # :section: Optional gemspec attributes

  ##
  # The path in the gem for executable scripts.  Usually 'bin'
  #
  # Usage:
  #
  #   spec.bindir = 'bin'

  attr_accessor :bindir

  ##
  # The certificate chain used to sign this gem.  See Gem::Security for
  # details.

  attr_accessor :cert_chain

  ##
  # A long description of this gem
  #
  # The description should be more detailed than the summary but not
  # excessively long.  A few paragraphs is a recommended length with no
  # examples or formatting.
  #
  # Usage:
  #
  #   spec.description = <<-EOF
  #     Rake is a Make-like program implemented in Ruby. Tasks and
  #     dependencies are specified in standard Ruby syntax.
  #   EOF

  attr_reader :description

  ##
  # A contact email address (or addresses) for this gem
  #
  # Usage:
  #
  #   spec.email = 'john.jones@example.com'
  #   spec.email = ['jack@example.com', 'jill@example.com']

  attr_accessor :email

  ##
  # The URL of this gem's home page
  #
  # Usage:
  #
  #   spec.homepage = 'http://rake.rubyforge.org'

  attr_accessor :homepage

  ##
  # A message that gets displayed after the gem is installed.
  #
  # Usage:
  #
  #   spec.post_install_message = "Thanks for installing!"

  attr_accessor :post_install_message

  ##
  # The version of Ruby required by this gem

  attr_reader :required_ruby_version

  ##
  # The RubyGems version required by this gem

  attr_reader :required_rubygems_version

  ##
  # The key used to sign this gem.  See Gem::Security for details.

  attr_accessor :signing_key

  ##
  # :attr_accessor: metadata
  #
  # The metadata holds extra data for this gem that may be useful to other
  # consumers and is settable by gem authors without requiring an update to
  # the rubygems software.
  #
  # Metadata items have the following restrictions:
  #
  # * The metadata must be a Hash object
  # * All keys and values must be Strings
  # * Keys can be a maximum of 128 bytes and values can be a maximum of 1024
  #   bytes
  # * All strings must be UTF-8, no binary data is allowed
  #
  # To add metadata for the location of a issue tracker:
  #
  #   s.metadata = { "issue_tracker" => "https://example/issues" }

  attr_accessor :metadata

  ##
  # Adds a development dependency named +gem+ with +requirements+ to this
  # gem.
  #
  # Usage:
  #
  #   spec.add_development_dependency 'example', '~> 1.1', '>= 1.1.4'
  #
  # Development dependencies aren't installed by default and aren't
  # activated when a gem is required.

  def add_development_dependency(gem, *requirements)
    add_dependency_with_type(gem, :development, *requirements)
  end

  ##
  # Adds a runtime dependency named +gem+ with +requirements+ to this gem.
  #
  # Usage:
  #
  #   spec.add_runtime_dependency 'example', '~> 1.1', '>= 1.1.4'

  def add_runtime_dependency(gem, *requirements)
    add_dependency_with_type(gem, :runtime, *requirements)
  end

  ##
  # Executables included in the gem.
  #
  # For example, the rake gem has rake as an executable. You don’t specify the
  # full path (as in bin/rake); all application-style files are expected to be
  # found in bindir.  These files must be executable Ruby files.  Files that
  # use bash or other interpreters will not work.
  #
  # Executables included may only be ruby scripts, not scripts for other
  # languages or compiled binaries.
  #
  # Usage:
  #
  #   spec.executables << 'rake'

  def executables
    @executables ||= []
  end

  ##
  # Extensions to build when installing the gem, specifically the paths to
  # extconf.rb-style files used to compile extensions.
  #
  # These files will be run when the gem is installed, causing the C (or
  # whatever) code to be compiled on the user’s machine.
  #
  # Usage:
  #
  #  spec.extensions << 'ext/rmagic/extconf.rb'
  #
  # See Gem::Ext::Builder for information about writing extensions for gems.

  def extensions
    @extensions ||= []
  end

  ##
  # Extra files to add to RDoc such as README or doc/examples.txt
  #
  # When the user elects to generate the RDoc documentation for a gem (typically
  # at install time), all the library files are sent to RDoc for processing.
  # This option allows you to have some non-code files included for a more
  # complete set of documentation.
  #
  # Usage:
  #
  #  spec.extra_rdoc_files = ['README', 'doc/user-guide.txt']

  def extra_rdoc_files
    @extra_rdoc_files ||= []
  end

  ##
  # The version of RubyGems that installed this gem.  Returns
  # <code>Gem::Version.new(0)</code> for gems installed by versions earlier
  # than RubyGems 2.2.0.

  def installed_by_version # :nodoc:
    @installed_by_version ||= Gem::Version.new(0)
  end

  ##
  # Sets the version of RubyGems that installed this gem.  See also
  # #installed_by_version.

  def installed_by_version= version # :nodoc:
    @installed_by_version = Gem::Version.new version
  end

  ##
  # :category: Recommended gemspec attributes
  #
  # The license for this gem.
  #
  # The license must be no more than 64 characters.
  #
  # This should just be the name of your license. The full text of the license
  # should be inside of the gem (at the top level) when you build it.
  #
  # The simplest way, is to specify the standard SPDX ID
  # https://spdx.org/licenses/ for the license.
  # Ideally you should pick one that is OSI (Open Source Initiative)
  # http://opensource.org/licenses/alphabetical approved.
  #
  # The most commonly used OSI approved licenses are BSD-3-Clause and MIT.
  # GitHub also provides a license picker at http://choosealicense.com/.
  #
  # You should specify a license for your gem so that people know how they are
  # permitted to use it, and any restrictions you're placing on it.  Not
  # specifying a license means all rights are reserved; others have no rights
  # to use the code for any purpose.
  #
  # You can set multiple licenses with #licenses=
  #
  # Usage:
  #   spec.license = 'MIT'

  def license=o
    self.licenses = [o]
  end

  ##
  # :category: Recommended gemspec attributes
  # The license(s) for the library.
  #
  # Each license must be a short name, no more than 64 characters.
  #
  # This should just be the name of your license. The full
  # text of the license should be inside of the gem when you build it.
  #
  # See #license= for more discussion
  #
  # Usage:
  #   spec.licenses = ['MIT', 'GPL-2']

  def licenses= licenses
    @licenses = Array licenses
  end

  ##
  # Specifies the rdoc options to be used when generating API documentation.
  #
  # Usage:
  #
  #   spec.rdoc_options << '--title' << 'Rake -- Ruby Make' <<
  #     '--main' << 'README' <<
  #     '--line-numbers'

  def rdoc_options
    @rdoc_options ||= []
  end

  ##
  # The version of Ruby required by this gem.  The ruby version can be
  # specified to the patch-level:
  #
  #   $ ruby -v -e 'p Gem.ruby_version'
  #   ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0]
  #   #<Gem::Version "2.0.0.247">
  #
  # Usage:
  #
  #  # This gem will work with 1.8.6 or greater...
  #  spec.required_ruby_version = '>= 1.8.6'
  #
  #  # Only with ruby 2.0.x
  #  spec.required_ruby_version = '~> 2.0'

  def required_ruby_version= req
    @required_ruby_version = Gem::Requirement.create req
  end

  ##
  # The RubyGems version required by this gem

  def required_rubygems_version= req
    @required_rubygems_version = Gem::Requirement.create req
  end

  ##
  # Lists the external (to RubyGems) requirements that must be met for this gem
  # to work.  It's simply information for the user.
  #
  # Usage:
  #
  #   spec.requirements << 'libmagick, v6.0'
  #   spec.requirements << 'A good graphics card'

  def requirements
    @requirements ||= []
  end

  ##
  # A collection of unit test files.  They will be loaded as unit tests when
  # the user requests a gem to be unit tested.
  #
  # Usage:
  #   spec.test_files = Dir.glob('test/tc_*.rb')
  #   spec.test_files = ['tests/test-suite.rb']

  def test_files= files # :nodoc:
    @test_files = Array files
  end

  ######################################################################
  # :section: Specification internals

  ##
  # True when this gemspec has been activated. This attribute is not persisted.

  attr_accessor :activated

  alias :activated? :activated

  ##
  # Autorequire was used by old RubyGems to automatically require a file.
  #
  # Deprecated: It is neither supported nor functional.

  attr_accessor :autorequire # :nodoc:

  ##
  # Sets the default executable for this gem.
  #
  # Deprecated: You must now specify the executable name to  Gem.bin_path.

  attr_writer :default_executable

  ##
  # Allows deinstallation of gems with legacy platforms.

  attr_writer :original_platform # :nodoc:

  ##
  # The rubyforge project this gem lives under.  i.e. RubyGems'
  # rubyforge_project is "rubygems".
  #
  # This option is deprecated.

  attr_accessor :rubyforge_project

  ##
  # The Gem::Specification version of this gemspec.
  #
  # Do not set this, it is set automatically when the gem is packaged.

  attr_accessor :specification_version

  def self._all # :nodoc:
    unless defined?(@@all) && @@all then
      @@all = stubs.map(&:to_spec)

      # After a reset, make sure already loaded specs
      # are still marked as activated.
      specs = {}
      Gem.loaded_specs.each_value{|s| specs[s] = true}
      @@all.each{|s| s.activated = true if specs[s]}
    end
    @@all
  end

  def self._clear_load_cache # :nodoc:
    LOAD_CACHE.clear
  end

  def self.each_gemspec(dirs) # :nodoc:
    dirs.each do |dir|
      Dir[File.join(dir, "*.gemspec")].each do |path|
        yield path.untaint
      end
    end
  end

  def self.each_stub(dirs) # :nodoc:
    each_gemspec(dirs) do |path|
      stub = Gem::StubSpecification.new(path)
      yield stub if stub.valid?
    end
  end

  def self.each_spec(dirs) # :nodoc:
    each_gemspec(dirs) do |path|
      spec = self.load path
      yield spec if spec
    end
  end

  ##
  # Returns a Gem::StubSpecification for every installed gem

  def self.stubs
    @@stubs ||= begin
      stubs = {}
      each_stub([default_specifications_dir] + dirs) do |stub|
        stubs[stub.full_name] ||= stub
      end

      stubs = stubs.values
      _resort!(stubs)
      stubs
    end
  end

  def self._resort!(specs) # :nodoc:
    specs.sort! { |a, b|
      names = a.name <=> b.name
      next names if names.nonzero?
      b.version <=> a.version
    }
  end

  ##
  # Loads the default specifications. It should be called only once.

  def self.load_defaults
    each_spec([default_specifications_dir]) do |spec|
      # #load returns nil if the spec is bad, so we just ignore
      # it at this stage
      Gem.register_default_spec(spec)
    end
  end

  ##
  # Adds +spec+ to the known specifications, keeping the collection
  # properly sorted.

  def self.add_spec spec
    # TODO: find all extraneous adds
    # puts
    # p :add_spec => [spec.full_name, caller.reject { |s| s =~ /minitest/ }]

    # TODO: flush the rest of the crap from the tests
    # raise "no dupes #{spec.full_name} in #{all_names.inspect}" if
    #   _all.include? spec

    raise "nil spec!" unless spec # TODO: remove once we're happy with tests

    return if _all.include? spec

    _all << spec
    stubs << spec
    _resort!(_all)
    _resort!(stubs)
  end

  ##
  # Adds multiple specs to the known specifications.

  def self.add_specs *specs
    raise "nil spec!" if specs.any?(&:nil?) # TODO: remove once we're happy

    # TODO: this is much more efficient, but we need the extra checks for now
    # _all.concat specs
    # _resort!

    specs.each do |spec| # TODO: slow
      add_spec spec
    end
  end

  ##
  # Returns all specifications. This method is discouraged from use.
  # You probably want to use one of the Enumerable methods instead.

  def self.all
    warn "NOTE: Specification.all called from #{caller.first}" unless
      Gem::Deprecate.skip
    _all
  end

  ##
  # Sets the known specs to +specs+. Not guaranteed to work for you in
  # the future. Use at your own risk. Caveat emptor. Doomy doom doom.
  # Etc etc.
  #
  #--
  # Makes +specs+ the known specs
  # Listen, time is a river
  # Winter comes, code breaks
  #
  # -- wilsonb

  def self.all= specs
    @@all = @@stubs = specs
  end

  ##
  # Return full names of all specs in sorted order.

  def self.all_names
    self._all.map(&:full_name)
  end

  ##
  # Return the list of all array-oriented instance variables.
  #--
  # Not sure why we need to use so much stupid reflection in here...

  def self.array_attributes
    @@array_attributes.dup
  end

  ##
  # Return the list of all instance variables.
  #--
  # Not sure why we need to use so much stupid reflection in here...

  def self.attribute_names
    @@attributes.dup
  end

  ##
  # Return the directories that Specification uses to find specs.

  def self.dirs
    @@dirs ||= Gem.path.collect { |dir|
      File.join dir.dup.untaint, "specifications"
    }
  end

  ##
  # Set the directories that Specification uses to find specs. Setting
  # this resets the list of known specs.

  def self.dirs= dirs
    self.reset

    @@dirs = Array(dirs).map { |dir| File.join dir, "specifications" }
  end

  extend Enumerable

  ##
  # Enumerate every known spec.  See ::dirs= and ::add_spec to set the list of
  # specs.

  def self.each
    return enum_for(:each) unless block_given?

    self._all.each do |x|
      yield x
    end
  end

  ##
  # Returns every spec that matches +name+ and optional +requirements+.

  def self.find_all_by_name name, *requirements
    requirements = Gem::Requirement.default if requirements.empty?

    # TODO: maybe try: find_all { |s| spec === dep }

    Gem::Dependency.new(name, *requirements).matching_specs
  end

  ##
  # Find the best specification matching a +name+ and +requirements+. Raises
  # if the dependency doesn't resolve to a valid specification.

  def self.find_by_name name, *requirements
    requirements = Gem::Requirement.default if requirements.empty?

    # TODO: maybe try: find { |s| spec === dep }

    Gem::Dependency.new(name, *requirements).to_spec
  end

  ##
  # Return the best specification that contains the file matching +path+.

  def self.find_by_path path
    self.find { |spec|
      spec.contains_requirable_file? path
    }
  end

  ##
  # Return the best specification that contains the file matching +path+
  # amongst the specs that are not activated.

  def self.find_inactive_by_path path
    stub = stubs.find { |s|
      s.contains_requirable_file? path unless s.activated?
    }
    stub && stub.to_spec
  end

  ##
  # Return currently unresolved specs that contain the file matching +path+.

  def self.find_in_unresolved path
    # TODO: do we need these?? Kill it
    specs = unresolved_deps.values.map { |dep| dep.to_specs }.flatten

    specs.find_all { |spec| spec.contains_requirable_file? path }
  end

  ##
  # Search through all unresolved deps and sub-dependencies and return
  # specs that contain the file matching +path+.

  def self.find_in_unresolved_tree path
    specs = unresolved_deps.values.map { |dep| dep.to_specs }.flatten

    specs.reverse_each do |spec|
      trails = []
      spec.traverse do |from_spec, dep, to_spec, trail|
        next unless to_spec.conflicts.empty?
        trails << trail if to_spec.contains_requirable_file? path
      end

      next if trails.empty?

      return trails.map(&:reverse).sort.first.reverse
    end

    []
  end

  ##
  # Special loader for YAML files.  When a Specification object is loaded
  # from a YAML file, it bypasses the normal Ruby object initialization
  # routine (#initialize).  This method makes up for that and deals with
  # gems of different ages.
  #
  # +input+ can be anything that YAML.load() accepts: String or IO.

  def self.from_yaml(input)
    Gem.load_yaml

    input = normalize_yaml_input input
    spec = Gem::SafeYAML.safe_load input

    if spec && spec.class == FalseClass then
      raise Gem::EndOfYAMLException
    end

    unless Gem::Specification === spec then
      raise Gem::Exception, "YAML data doesn't evaluate to gem specification"
    end

    spec.specification_version ||= NONEXISTENT_SPECIFICATION_VERSION
    spec.reset_nil_attributes_to_default

    spec
  end

  ##
  # Return the latest specs, optionally including prerelease specs if
  # +prerelease+ is true.

  def self.latest_specs prerelease = false
    result = Hash.new { |h,k| h[k] = {} }
    native = {}

    Gem::Specification.reverse_each do |spec|
      next if spec.version.prerelease? unless prerelease

      native[spec.name] = spec.version if spec.platform == Gem::Platform::RUBY
      result[spec.name][spec.platform] = spec
    end

    result.map(&:last).map(&:values).flatten.reject { |spec|
      minimum = native[spec.name]
      minimum && spec.version < minimum
    }.sort_by{ |tup| tup.name }
  end

  ##
  # Loads Ruby format gemspec from +file+.

  def self.load file
    return unless file
    file = file.dup.untaint
    return unless File.file?(file)

    spec = LOAD_CACHE[file]
    return spec if spec

    code = if defined? Encoding
             File.read file, :mode => 'r:UTF-8:-'
           else
             File.read file
           end

    code.untaint

    begin
      spec = eval code, binding, file

      if Gem::Specification === spec
        spec.loaded_from = File.expand_path file.to_s
        LOAD_CACHE[file] = spec
        return spec
      end

      warn "[#{file}] isn't a Gem::Specification (#{spec.class} instead)."
    rescue SignalException, SystemExit
      raise
    rescue SyntaxError, Exception => e
      warn "Invalid gemspec in [#{file}]: #{e}"
    end

    nil
  end

  ##
  # Specification attributes that must be non-nil

  def self.non_nil_attributes
    @@non_nil_attributes.dup
  end

  ##
  # Make sure the YAML specification is properly formatted with dashes

  def self.normalize_yaml_input(input)
    result = input.respond_to?(:read) ? input.read : input
    result = "--- " + result unless result =~ /\A--- /
    result.gsub!(/ !!null \n/, " \n")
    # date: 2011-04-26 00:00:00.000000000Z
    # date: 2011-04-26 00:00:00.000000000 Z
    result.gsub!(/^(date: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+?)Z/, '\1 Z')
    result
  end

  ##
  # Return a list of all outdated local gem names.  This method is HEAVY
  # as it must go fetch specifications from the server.
  #
  # Use outdated_and_latest_version if you wish to retrieve the latest remote
  # version as well.

  def self.outdated
    outdated_and_latest_version.map { |local, _| local.name }
  end

  ##
  # Enumerates the outdated local gems yielding the local specification and
  # the latest remote version.
  #
  # This method may take some time to return as it must check each local gem
  # against the server's index.

  def self.outdated_and_latest_version
    return enum_for __method__ unless block_given?

    # TODO: maybe we should switch to rubygems' version service?
    fetcher = Gem::SpecFetcher.fetcher

    latest_specs(true).each do |local_spec|
      dependency =
        Gem::Dependency.new local_spec.name, ">= #{local_spec.version}"

      remotes, = fetcher.search_for_dependency dependency
      remotes  = remotes.map { |n, _| n.version }

      latest_remote = remotes.sort.last

      yield [local_spec, latest_remote] if
        latest_remote and local_spec.version < latest_remote
    end

    nil
  end

  ##
  # Removes +spec+ from the known specs.

  def self.remove_spec spec
    _all.delete spec
    stubs.delete_if { |s| s.full_name == spec.full_name }
  end

  ##
  # Is +name+ a required attribute?

  def self.required_attribute?(name)
    @@required_attributes.include? name.to_sym
  end

  ##
  # Required specification attributes

  def self.required_attributes
    @@required_attributes.dup
  end

  ##
  # Reset the list of known specs, running pre and post reset hooks
  # registered in Gem.

  def self.reset
    @@dirs = nil
    Gem.pre_reset_hooks.each { |hook| hook.call }
    @@all = nil
    @@stubs = nil
    _clear_load_cache
    unresolved = unresolved_deps
    unless unresolved.empty? then
      w = "W" + "ARN"
      warn "#{w}: Unresolved specs during Gem::Specification.reset:"
      unresolved.values.each do |dep|
        warn "      #{dep}"
      end
      warn "#{w}: Clearing out unresolved specs."
      warn "Please report a bug if this causes problems."
      unresolved.clear
    end
    Gem.post_reset_hooks.each { |hook| hook.call }
  end

  # DOC: This method needs documented or nodoc'd
  def self.unresolved_deps
    @unresolved_deps ||= Hash.new { |h, n| h[n] = Gem::Dependency.new n }
  end

  ##
  # Load custom marshal format, re-initializing defaults as needed

  def self._load(str)
    array = Marshal.load str

    spec = Gem::Specification.new
    spec.instance_variable_set :@specification_version, array[1]

    current_version = CURRENT_SPECIFICATION_VERSION

    field_count = if spec.specification_version > current_version then
                    spec.instance_variable_set :@specification_version,
                                               current_version
                    MARSHAL_FIELDS[current_version]
                  else
                    MARSHAL_FIELDS[spec.specification_version]
                  end

    if array.size < field_count then
      raise TypeError, "invalid Gem::Specification format #{array.inspect}"
    end

    # Cleanup any YAML::PrivateType. They only show up for an old bug
    # where nil => null, so just convert them to nil based on the type.

    array.map! { |e| e.kind_of?(YAML::PrivateType) ? nil : e }

    spec.instance_variable_set :@rubygems_version,          array[0]
    # spec version
    spec.instance_variable_set :@name,                      array[2]
    spec.instance_variable_set :@version,                   array[3]
    spec.date =                                             array[4]
    spec.instance_variable_set :@summary,                   array[5]
    spec.instance_variable_set :@required_ruby_version,     array[6]
    spec.instance_variable_set :@required_rubygems_version, array[7]
    spec.instance_variable_set :@original_platform,         array[8]
    spec.instance_variable_set :@dependencies,              array[9]
    spec.instance_variable_set :@rubyforge_project,         array[10]
    spec.instance_variable_set :@email,                     array[11]
    spec.instance_variable_set :@authors,                   array[12]
    spec.instance_variable_set :@description,               array[13]
    spec.instance_variable_set :@homepage,                  array[14]
    spec.instance_variable_set :@has_rdoc,                  array[15]
    spec.instance_variable_set :@new_platform,              array[16]
    spec.instance_variable_set :@platform,                  array[16].to_s
    spec.instance_variable_set :@license,                   array[17]
    spec.instance_variable_set :@metadata,                  array[18]
    spec.instance_variable_set :@loaded,                    false
    spec.instance_variable_set :@activated,                 false

    spec
  end

  def <=>(other) # :nodoc:
    sort_obj <=> other.sort_obj
  end

  def == other # :nodoc:
    self.class === other &&
      name == other.name &&
      version == other.version &&
      platform == other.platform
  end

  ##
  # Dump only crucial instance variables.
  #--
  # MAINTAIN ORDER!
  # (down with the man)

  def _dump(limit)
    Marshal.dump [
      @rubygems_version,
      @specification_version,
      @name,
      @version,
      date,
      @summary,
      @required_ruby_version,
      @required_rubygems_version,
      @original_platform,
      @dependencies,
      @rubyforge_project,
      @email,
      @authors,
      @description,
      @homepage,
      true, # has_rdoc
      @new_platform,
      @licenses,
      @metadata
    ]
  end

  ##
  # Activate this spec, registering it as a loaded spec and adding
  # it's lib paths to $LOAD_PATH. Returns true if the spec was
  # activated, false if it was previously activated. Freaks out if
  # there are conflicts upon activation.

  def activate
    other = Gem.loaded_specs[self.name]
    if other then
      check_version_conflict other
      return false
    end

    raise_if_conflicts

    activate_dependencies
    add_self_to_load_path

    Gem.loaded_specs[self.name] = self
    @activated = true
    @loaded = true

    return true
  end

  ##
  # Activate all unambiguously resolved runtime dependencies of this
  # spec. Add any ambiguous dependencies to the unresolved list to be
  # resolved later, as needed.

  def activate_dependencies
    unresolved = Gem::Specification.unresolved_deps

    self.runtime_dependencies.each do |spec_dep|
      if loaded = Gem.loaded_specs[spec_dep.name]
        next if spec_dep.matches_spec? loaded

        msg = "can't satisfy '#{spec_dep}', already activated '#{loaded.full_name}'"
        e = Gem::LoadError.new msg
        e.name = spec_dep.name

        raise e
      end

      specs = spec_dep.to_specs

      if specs.size == 1 then
        specs.first.activate
      else
        name = spec_dep.name
        unresolved[name] = unresolved[name].merge spec_dep
      end
    end

    unresolved.delete self.name
  end

  ##
  # Returns an array with bindir attached to each executable in the
  # +executables+ list

  def add_bindir(executables)
    return nil if executables.nil?

    if @bindir then
      Array(executables).map { |e| File.join(@bindir, e) }
    else
      executables
    end
  rescue
    return nil
  end

  ##
  # Adds a dependency on gem +dependency+ with type +type+ that requires
  # +requirements+.  Valid types are currently <tt>:runtime</tt> and
  # <tt>:development</tt>.

  def add_dependency_with_type(dependency, type, *requirements)
    requirements = if requirements.empty? then
                     Gem::Requirement.default
                   else
                     requirements.flatten
                   end

    unless dependency.respond_to?(:name) &&
           dependency.respond_to?(:version_requirements)
      dependency = Gem::Dependency.new(dependency.to_s, requirements, type)
    end

    dependencies << dependency
  end

  private :add_dependency_with_type

  alias add_dependency add_runtime_dependency

  ##
  # Adds this spec's require paths to LOAD_PATH, in the proper location.

  def add_self_to_load_path
    return if default_gem?

    paths = full_require_paths

    # gem directories must come after -I and ENV['RUBYLIB']
    insert_index = Gem.load_path_insert_index

    if insert_index then
      # gem directories must come after -I and ENV['RUBYLIB']
      $LOAD_PATH.insert(insert_index, *paths)
    else
      # we are probably testing in core, -I and RUBYLIB don't apply
      $LOAD_PATH.unshift(*paths)
    end
  end

  ##
  # Singular reader for #authors.  Returns the first author in the list

  def author
    val = authors and val.first
  end

  ##
  # The list of author names who wrote this gem.
  #
  #   spec.authors = ['Chad Fowler', 'Jim Weirich', 'Rich Kilmer']

  def authors
    @authors ||= []
  end

  ##
  # Returns the full path to installed gem's bin directory.
  #
  # NOTE: do not confuse this with +bindir+, which is just 'bin', not
  # a full path.

  def bin_dir
    @bin_dir ||= File.join gem_dir, bindir # TODO: this is unfortunate
  end

  ##
  # Returns the full path to an executable named +name+ in this gem.

  def bin_file name
    File.join bin_dir, name
  end

  ##
  # Returns the build_args used to install the gem

  def build_args
    if File.exist? build_info_file
      build_info = File.readlines build_info_file
      build_info = build_info.map { |x| x.strip }
      build_info.delete ""
      build_info
    else
      []
    end
  end

  ##
  # Builds extensions for this platform if the gem has extensions listed and
  # the gem.build_complete file is missing.

  def build_extensions # :nodoc:
    return if default_gem?
    return if extensions.empty?
    return if installed_by_version < Gem::Version.new('2.2.0.preview.2')
    return if File.exist? gem_build_complete_path
    return if !File.writable?(base_dir)
    return if !File.exist?(File.join(base_dir, 'extensions'))

    begin
      # We need to require things in $LOAD_PATH without looking for the
      # extension we are about to build.
      unresolved_deps = Gem::Specification.unresolved_deps.dup
      Gem::Specification.unresolved_deps.clear

      require 'rubygems/config_file'
      require 'rubygems/ext'
      require 'rubygems/user_interaction'

      ui = Gem::SilentUI.new
      Gem::DefaultUserInteraction.use_ui ui do
        builder = Gem::Ext::Builder.new self
        builder.build_extensions
      end
    ensure
      ui.close if ui
      Gem::Specification.unresolved_deps.replace unresolved_deps
    end
  end

  ##
  # Returns the full path to the build info directory

  def build_info_dir
    File.join base_dir, "build_info"
  end

  ##
  # Returns the full path to the file containing the build
  # information generated when the gem was installed

  def build_info_file
    File.join build_info_dir, "#{full_name}.info"
  end

  ##
  # Used to detect if the gem is bundled in older version of Ruby, but not
  # detectable as default gem (see BasicSpecification#default_gem?).

  def bundled_gem_in_old_ruby?
    !default_gem? &&
      RUBY_VERSION < "2.0.0" &&
      summary == "This #{name} is bundled with Ruby"
  end

  ##
  # Returns the full path to the cache directory containing this
  # spec's cached gem.

  def cache_dir
    @cache_dir ||= File.join base_dir, "cache"
  end

  ##
  # Returns the full path to the cached gem for this spec.

  def cache_file
    @cache_file ||= File.join cache_dir, "#{full_name}.gem"
  end

  ##
  # Return any possible conflicts against the currently loaded specs.

  def conflicts
    conflicts = {}
    self.runtime_dependencies.each { |dep|
      spec = Gem.loaded_specs[dep.name]
      if spec and not spec.satisfies_requirement? dep
        (conflicts[spec] ||= []) << dep
      end
    }
    conflicts
  end

  ##
  # The date this gem was created.  Lazily defaults to the current UTC date.
  #
  # There is no need to set this in your gem specification.

  def date
    @date ||= TODAY
  end

  DateLike = Object.new # :nodoc:
  def DateLike.===(obj) # :nodoc:
    defined?(::Date) and Date === obj
  end

  DateTimeFormat = # :nodoc:
    /\A
     (\d{4})-(\d{2})-(\d{2})
     (\s+ \d{2}:\d{2}:\d{2}\.\d+ \s* (Z | [-+]\d\d:\d\d) )?
     \Z/x

  ##
  # The date this gem was created
  #
  # DO NOT set this, it is set automatically when the gem is packaged.

  def date= date
    # We want to end up with a Time object with one-day resolution.
    # This is the cleanest, most-readable, faster-than-using-Date
    # way to do it.
    @date = case date
            when String then
              if DateTimeFormat =~ date then
                Time.utc($1.to_i, $2.to_i, $3.to_i)

              # Workaround for where the date format output from psych isn't
              # parsed as a Time object by syck and thus comes through as a
              # string.
              elsif /\A(\d{4})-(\d{2})-(\d{2}) \d{2}:\d{2}:\d{2}\.\d+?Z\z/ =~ date then
                Time.utc($1.to_i, $2.to_i, $3.to_i)
              else
                raise(Gem::InvalidSpecificationException,
                      "invalid date format in specification: #{date.inspect}")
              end
            when Time, DateLike then
              Time.utc(date.year, date.month, date.day)
            else
              TODAY
            end
  end

  ##
  # The default executable for this gem.
  #
  # Deprecated: The name of the gem is assumed to be the name of the
  # executable now.  See Gem.bin_path.

  def default_executable # :nodoc:
    if defined?(@default_executable) and @default_executable
      result = @default_executable
    elsif @executables and @executables.size == 1
      result = Array(@executables).first
    else
      result = nil
    end
    result
  end

  ##
  # The default value for specification attribute +name+

  def default_value name
    @@default_value[name]
  end

  ##
  # A list of Gem::Dependency objects this gem depends on.
  #
  # Use #add_dependency or #add_development_dependency to add dependencies to
  # a gem.

  def dependencies
    @dependencies ||= []
  end

  ##
  # Return a list of all gems that have a dependency on this gemspec.  The
  # list is structured with entries that conform to:
  #
  #   [depending_gem, dependency, [list_of_gems_that_satisfy_dependency]]

  def dependent_gems
    out = []
    Gem::Specification.each do |spec|
      spec.dependencies.each do |dep|
        if self.satisfies_requirement?(dep) then
          sats = []
          find_all_satisfiers(dep) do |sat|
            sats << sat
          end
          out << [spec, dep, sats]
        end
      end
    end
    out
  end

  ##
  # Returns all specs that matches this spec's runtime dependencies.

  def dependent_specs
    runtime_dependencies.map { |dep| dep.to_specs }.flatten
  end

  ##
  # A detailed description of this gem.  See also #summary

  def description= str
    @description = str.to_s
  end

  ##
  # List of dependencies that are used for development

  def development_dependencies
    dependencies.select { |d| d.type == :development }
  end

  ##
  # Returns the full path to this spec's documentation directory.  If +type+
  # is given it will be appended to the end.  For example:
  #
  #   spec.doc_dir      # => "/path/to/gem_repo/doc/a-1"
  #
  #   spec.doc_dir 'ri' # => "/path/to/gem_repo/doc/a-1/ri"

  def doc_dir type = nil
    @doc_dir ||= File.join base_dir, 'doc', full_name

    if type then
      File.join @doc_dir, type
    else
      @doc_dir
    end
  end

  def encode_with coder # :nodoc:
    mark_version

    coder.add 'name', @name
    coder.add 'version', @version
    platform = case @original_platform
               when nil, '' then
                 'ruby'
               when String then
                 @original_platform
               else
                 @original_platform.to_s
               end
    coder.add 'platform', platform

    attributes = @@attributes.map(&:to_s) - %w[name version platform]
    attributes.each do |name|
      coder.add name, instance_variable_get("@#{name}")
    end
  end

  def eql? other # :nodoc:
    self.class === other && same_attributes?(other)
  end

  ##
  # Singular accessor for #executables

  def executable
    val = executables and val.first
  end

  ##
  # Singular accessor for #executables

  def executable=o
    self.executables = [o]
  end

  ##
  # Sets executables to +value+, ensuring it is an array. Don't
  # use this, push onto the array instead.

  def executables= value
    # TODO: warn about setting instead of pushing
    @executables = Array(value)
  end

  ##
  # Sets extensions to +extensions+, ensuring it is an array. Don't
  # use this, push onto the array instead.

  def extensions= extensions
    # TODO: warn about setting instead of pushing
    @extensions = Array extensions
  end

  ##
  # Sets extra_rdoc_files to +files+, ensuring it is an array. Don't
  # use this, push onto the array instead.

  def extra_rdoc_files= files
    # TODO: warn about setting instead of pushing
    @extra_rdoc_files = Array files
  end

  ##
  # The default (generated) file name of the gem.  See also #spec_name.
  #
  #   spec.file_name # => "example-1.0.gem"

  def file_name
    "#{full_name}.gem"
  end

  ##
  # Sets files to +files+, ensuring it is an array.

  def files= files
    @files = Array files
  end

  ##
  # Finds all gems that satisfy +dep+

  def find_all_satisfiers dep
    Gem::Specification.each do |spec|
      yield spec if spec.satisfies_requirement? dep
    end
  end

  private :find_all_satisfiers

  ##
  # Creates a duplicate spec without large blobs that aren't used at runtime.

  def for_cache
    spec = dup

    spec.files = nil
    spec.test_files = nil

    spec
  end

  def find_full_gem_path # :nodoc:
    super || File.expand_path(File.join(gems_dir, original_name))
  end
  private :find_full_gem_path

  def full_name
    @full_name ||= super
  end

  ##
  # The path to the gem.build_complete file within the extension install
  # directory.

  def gem_build_complete_path # :nodoc:
    File.join extension_dir, 'gem.build_complete'
  end

  ##
  # Work around bundler removing my methods

  def gem_dir # :nodoc:
    super
  end

  ##
  # Deprecated and ignored, defaults to true.
  #
  # Formerly used to indicate this gem was RDoc-capable.

  def has_rdoc # :nodoc:
    true
  end

  ##
  # Deprecated and ignored.
  #
  # Formerly used to indicate this gem was RDoc-capable.

  def has_rdoc= ignored # :nodoc:
    @has_rdoc = true
  end

  alias :has_rdoc? :has_rdoc # :nodoc:

  ##
  # True if this gem has files in test_files

  def has_unit_tests? # :nodoc:
    not test_files.empty?
  end

  # :stopdoc:
  alias has_test_suite? has_unit_tests?
  # :startdoc:

  def hash # :nodoc:
    name.hash ^ version.hash
  end

  def init_with coder # :nodoc:
    @installed_by_version ||= nil
    yaml_initialize coder.tag, coder.map
  end

  ##
  # Specification constructor. Assigns the default values to the attributes
  # and yields itself for further initialization.  Optionally takes +name+ and
  # +version+.

  def initialize name = nil, version = nil
    @loaded = false
    @activated = false
    self.loaded_from = nil
    @original_platform = nil
    @installed_by_version = nil

    @@nil_attributes.each do |key|
      instance_variable_set "@#{key}", nil
    end

    @@non_nil_attributes.each do |key|
      default = default_value(key)
      value = Dupable[key] ? default.dup : default
      instance_variable_set "@#{key}", value
    end

    @new_platform = Gem::Platform::RUBY

    self.name = name if name
    self.version = version if version

    yield self if block_given?
  end

  ##
  # Duplicates array_attributes from +other_spec+ so state isn't shared.

  def initialize_copy other_spec
    self.class.array_attributes.each do |name|
      name = :"@#{name}"
      next unless other_spec.instance_variable_defined? name

      begin
        val = other_spec.instance_variable_get(name)
        if val then
          instance_variable_set name, val.dup
        elsif Gem.configuration.really_verbose
          warn "WARNING: #{full_name} has an invalid nil value for #{name}"
        end
      rescue TypeError
        e = Gem::FormatException.new \
          "#{full_name} has an invalid value for #{name}"

        e.file_path = loaded_from
        raise e
      end
    end
  end

  ##
  # Expire memoized instance variables that can incorrectly generate, replace
  # or miss files due changes in certain attributes used to compute them.

  def invalidate_memoized_attributes
    @full_name = nil
    @cache_file = nil
  end

  private :invalidate_memoized_attributes

  def inspect # :nodoc:
    if $DEBUG
      super
    else
      "#<#{self.class}:0x#{__id__.to_s(16)} #{full_name}>"
    end
  end

  ##
  # Returns a string usable in Dir.glob to match all requirable paths
  # for this spec.

  def lib_dirs_glob
    dirs = if self.require_paths.size > 1 then
             "{#{self.require_paths.join(',')}}"
           else
             self.require_paths.first
           end

    "#{self.full_gem_path}/#{dirs}"
  end

  ##
  # Files in the Gem under one of the require_paths

  def lib_files
    @files.select do |file|
      require_paths.any? do |path|
        file.start_with? path
      end
    end
  end

  ##
  # Singular accessor for #licenses

  def license
    val = licenses and val.first
  end

  ##
  # Plural accessor for setting licenses
  #
  # See #license= for details

  def licenses
    @licenses ||= []
  end

  def loaded_from= path # :nodoc:
    super

    @bin_dir       = nil
    @cache_dir     = nil
    @cache_file    = nil
    @doc_dir       = nil
    @ri_dir        = nil
    @spec_dir      = nil
    @spec_file     = nil
  end

  ##
  # Sets the rubygems_version to the current RubyGems version.

  def mark_version
    @rubygems_version = Gem::VERSION
  end

  ##
  # Return all files in this gem that match for +glob+.

  def matches_for_glob glob # TODO: rename?
    # TODO: do we need these?? Kill it
    glob = File.join(self.lib_dirs_glob, glob)

    Dir[glob].map { |f| f.untaint } # FIX our tests are broken, run w/ SAFE=1
  end

  ##
  # Warn about unknown attributes while loading a spec.

  def method_missing(sym, *a, &b) # :nodoc:
    if @specification_version > CURRENT_SPECIFICATION_VERSION and
      sym.to_s =~ /=$/ then
      warn "ignoring #{sym} loading #{full_name}" if $DEBUG
    else
      super
    end
  end

  ##
  # Is this specification missing its extensions?  When this returns true you
  # probably want to build_extensions

  def missing_extensions?
    return false if default_gem?
    return false if extensions.empty?
    return false if installed_by_version < Gem::Version.new('2.2.0.preview.2')
    return false if File.exist? gem_build_complete_path

    true
  end

  ##
  # Normalize the list of files so that:
  # * All file lists have redundancies removed.
  # * Files referenced in the extra_rdoc_files are included in the package
  #   file list.

  def normalize
    if defined?(@extra_rdoc_files) and @extra_rdoc_files then
      @extra_rdoc_files.uniq!
      @files ||= []
      @files.concat(@extra_rdoc_files)
    end

    @files            = @files.uniq if @files
    @extensions       = @extensions.uniq if @extensions
    @test_files       = @test_files.uniq if @test_files
    @executables      = @executables.uniq if @executables
    @extra_rdoc_files = @extra_rdoc_files.uniq if @extra_rdoc_files
  end

  ##
  # Return a NameTuple that represents this Specification

  def name_tuple
    Gem::NameTuple.new name, version, original_platform
  end

  ##
  # Returns the full name (name-version) of this gemspec using the original
  # platform.  For use with legacy gems.

  def original_name # :nodoc:
    if platform == Gem::Platform::RUBY or platform.nil? then
      "#{@name}-#{@version}"
    else
      "#{@name}-#{@version}-#{@original_platform}"
    end
  end

  ##
  # Cruft. Use +platform+.

  def original_platform # :nodoc:
    @original_platform ||= platform
  end

  ##
  # The platform this gem runs on.  See Gem::Platform for details.

  def platform
    @new_platform ||= Gem::Platform::RUBY
  end

  def pretty_print(q) # :nodoc:
    q.group 2, 'Gem::Specification.new do |s|', 'end' do
      q.breakable

      attributes = @@attributes - [:name, :version]
      attributes.unshift :installed_by_version
      attributes.unshift :version
      attributes.unshift :name

      attributes.each do |attr_name|
        current_value = self.send attr_name
        if current_value != default_value(attr_name) or
           self.class.required_attribute? attr_name then

          q.text "s.#{attr_name} = "

          if attr_name == :date then
            current_value = current_value.utc

            q.text "Time.utc(#{current_value.year}, #{current_value.month}, #{current_value.day})"
          else
            q.pp current_value
          end

          q.breakable
        end
      end
    end
  end

  ##
  # Raise an exception if the version of this spec conflicts with the one
  # that is already loaded (+other+)

  def check_version_conflict other # :nodoc:
    return if self.version == other.version

    # This gem is already loaded.  If the currently loaded gem is not in the
    # list of candidate gems, then we have a version conflict.

    msg = "can't activate #{full_name}, already activated #{other.full_name}"

    e = Gem::LoadError.new msg
    e.name = self.name
    # TODO: e.requirement = dep.requirement

    raise e
  end

  private :check_version_conflict

  ##
  # Check the spec for possible conflicts and freak out if there are any.

  def raise_if_conflicts # :nodoc:
    conf = self.conflicts

    unless conf.empty? then
      raise Gem::ConflictError.new self, conf
    end
  end

  ##
  # Sets rdoc_options to +value+, ensuring it is an array. Don't
  # use this, push onto the array instead.

  def rdoc_options= options
    # TODO: warn about setting instead of pushing
    @rdoc_options = Array options
  end

  ##
  # Singular accessor for #require_paths

  def require_path
    val = require_paths and val.first
  end

  ##
  # Singular accessor for #require_paths

  def require_path= path
    self.require_paths = Array(path)
  end

  ##
  # Set requirements to +req+, ensuring it is an array. Don't
  # use this, push onto the array instead.

  def requirements= req
    # TODO: warn about setting instead of pushing
    @requirements = Array req
  end

  def respond_to_missing? m, include_private = false # :nodoc:
    false
  end

  ##
  # Returns the full path to this spec's ri directory.

  def ri_dir
    @ri_dir ||= File.join base_dir, 'ri', full_name
  end

  ##
  # Return a string containing a Ruby code representation of the given
  # object.

  def ruby_code(obj)
    case obj
    when String            then obj.dump
    when Array             then '[' + obj.map { |x| ruby_code x }.join(", ") + ']'
    when Hash              then
      seg = obj.keys.sort.map { |k| "#{k.to_s.dump} => #{obj[k].to_s.dump}" }
      "{ #{seg.join(', ')} }"
    when Gem::Version      then obj.to_s.dump
    when DateLike          then obj.strftime('%Y-%m-%d').dump
    when Time              then obj.strftime('%Y-%m-%d').dump
    when Numeric           then obj.inspect
    when true, false, nil  then obj.inspect
    when Gem::Platform     then "Gem::Platform.new(#{obj.to_a.inspect})"
    when Gem::Requirement  then
      list = obj.as_list
      "Gem::Requirement.new(#{ruby_code(list.size == 1 ? obj.to_s : list)})"
    else raise Gem::Exception, "ruby_code case not handled: #{obj.class}"
    end
  end

  private :ruby_code

  ##
  # List of dependencies that will automatically be activated at runtime.

  def runtime_dependencies
    dependencies.select { |d| d.type == :runtime }
  end

  ##
  # True if this gem has the same attributes as +other+.

  def same_attributes? spec
    @@attributes.all? { |name, default| self.send(name) == spec.send(name) }
  end

  private :same_attributes?

  ##
  # Checks if this specification meets the requirement of +dependency+.

  def satisfies_requirement? dependency
    return @name == dependency.name &&
      dependency.requirement.satisfied_by?(@version)
  end

  ##
  # Returns an object you can use to sort specifications in #sort_by.

  def sort_obj
    [@name, @version, @new_platform == Gem::Platform::RUBY ? -1 : 1]
  end

  ##
  # Used by Gem::Resolver to order Gem::Specification objects

  def source # :nodoc:
    Gem::Source::Installed.new
  end

  ##
  # Returns the full path to the directory containing this spec's
  # gemspec file. eg: /usr/local/lib/ruby/gems/1.8/specifications

  def spec_dir
    @spec_dir ||= File.join base_dir, "specifications"
  end

  ##
  # Returns the full path to this spec's gemspec file.
  # eg: /usr/local/lib/ruby/gems/1.8/specifications/mygem-1.0.gemspec

  def spec_file
    @spec_file ||= File.join spec_dir, "#{full_name}.gemspec"
  end

  ##
  # The default name of the gemspec.  See also #file_name
  #
  #   spec.spec_name # => "example-1.0.gemspec"

  def spec_name
    "#{full_name}.gemspec"
  end

  ##
  # A short summary of this gem's description.

  def summary= str
    @summary = str.to_s.strip.
      gsub(/(\w-)\n[ \t]*(\w)/, '\1\2').gsub(/\n[ \t]*/, " ") # so. weird.
  end

  ##
  # Singular accessor for #test_files

  def test_file # :nodoc:
    val = test_files and val.first
  end

  ##
  # Singular mutator for #test_files

  def test_file= file # :nodoc:
    self.test_files = [file]
  end

  ##
  # Test files included in this gem.  You cannot append to this accessor, you
  # must assign to it.

  def test_files # :nodoc:
    # Handle the possibility that we have @test_suite_file but not
    # @test_files.  This will happen when an old gem is loaded via
    # YAML.
    if defined? @test_suite_file then
      @test_files = [@test_suite_file].flatten
      @test_suite_file = nil
    end
    if defined?(@test_files) and @test_files then
      @test_files
    else
      @test_files = []
    end
  end

  ##
  # Returns a Ruby code representation of this specification, such that it can
  # be eval'ed and reconstruct the same specification later.  Attributes that
  # still have their default values are omitted.

  def to_ruby
    mark_version
    result = []
    result << "# -*- encoding: utf-8 -*-"
    result << "#{Gem::StubSpecification::PREFIX}#{name} #{version} #{platform} #{raw_require_paths.join("\0")}"
    result << "#{Gem::StubSpecification::PREFIX}#{extensions.join "\0"}" unless
      extensions.empty?
    result << nil
    result << "Gem::Specification.new do |s|"

    result << "  s.name = #{ruby_code name}"
    result << "  s.version = #{ruby_code version}"
    unless platform.nil? or platform == Gem::Platform::RUBY then
      result << "  s.platform = #{ruby_code original_platform}"
    end
    result << ""
    result << "  s.required_rubygems_version = #{ruby_code required_rubygems_version} if s.respond_to? :required_rubygems_version="

    if metadata and !metadata.empty?
      result << "  s.metadata = #{ruby_code metadata} if s.respond_to? :metadata="
    end
    result << "  s.require_paths = #{ruby_code raw_require_paths}"

    handled = [
      :dependencies,
      :name,
      :platform,
      :require_paths,
      :required_rubygems_version,
      :specification_version,
      :version,
      :has_rdoc,
      :default_executable,
      :metadata
    ]

    @@attributes.each do |attr_name|
      next if handled.include? attr_name
      current_value = self.send(attr_name)
      if current_value != default_value(attr_name) or
         self.class.required_attribute? attr_name then
        result << "  s.#{attr_name} = #{ruby_code current_value}"
      end
    end

    if @installed_by_version then
      result << nil
      result << "  s.installed_by_version = \"#{Gem::VERSION}\" if s.respond_to? :installed_by_version"
    end

    unless dependencies.empty? then
      result << nil
      result << "  if s.respond_to? :specification_version then"
      result << "    s.specification_version = #{specification_version}"
      result << nil

      result << "    if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then"

      dependencies.each do |dep|
        req = dep.requirements_list.inspect
        dep.instance_variable_set :@type, :runtime if dep.type.nil? # HACK
        result << "      s.add_#{dep.type}_dependency(%q<#{dep.name}>, #{req})"
      end

      result << "    else"

      dependencies.each do |dep|
        version_reqs_param = dep.requirements_list.inspect
        result << "      s.add_dependency(%q<#{dep.name}>, #{version_reqs_param})"
      end

      result << '    end'

      result << "  else"
      dependencies.each do |dep|
        version_reqs_param = dep.requirements_list.inspect
        result << "    s.add_dependency(%q<#{dep.name}>, #{version_reqs_param})"
      end
      result << "  end"
    end

    result << "end"
    result << nil

    result.join "\n"
  end

  ##
  # Returns a Ruby lighter-weight code representation of this specification,
  # used for indexing only.
  #
  # See #to_ruby.

  def to_ruby_for_cache
    for_cache.to_ruby
  end

  def to_s # :nodoc:
    "#<Gem::Specification name=#{@name} version=#{@version}>"
  end

  ##
  # Returns self

  def to_spec
    self
  end

  def to_yaml(opts = {}) # :nodoc:
    if (YAML.const_defined?(:ENGINE) && !YAML::ENGINE.syck?) ||
        (defined?(Psych) && YAML == Psych) then
      # Because the user can switch the YAML engine behind our
      # back, we have to check again here to make sure that our
      # psych code was properly loaded, and load it if not.
      unless Gem.const_defined?(:NoAliasYAMLTree)
        require 'rubygems/psych_tree'
      end

      builder = Gem::NoAliasYAMLTree.create
      builder << self
      ast = builder.tree

      io = Gem::StringSink.new
      io.set_encoding Encoding::UTF_8 if Object.const_defined? :Encoding

      Psych::Visitors::Emitter.new(io).accept(ast)

      io.string.gsub(/ !!null \n/, " \n")
    else
      YAML.quick_emit object_id, opts do |out|
        out.map taguri, to_yaml_style do |map|
          encode_with map
        end
      end
    end
  end

  ##
  # Recursively walk dependencies of this spec, executing the +block+ for each
  # hop.

  def traverse trail = [], &block
    trail = trail + [self]
    runtime_dependencies.each do |dep|
      dep.to_specs.each do |dep_spec|
        block[self, dep, dep_spec, trail + [dep_spec]]
        dep_spec.traverse(trail, &block) unless
          trail.map(&:name).include? dep_spec.name
      end
    end
  end

  ##
  # Checks that the specification contains all required fields, and does a
  # very basic sanity check.
  #
  # Raises InvalidSpecificationException if the spec does not pass the
  # checks..

  def validate packaging = true
    @warnings = 0
    require 'rubygems/user_interaction'
    extend Gem::UserInteraction
    normalize

    nil_attributes = self.class.non_nil_attributes.find_all do |attrname|
      instance_variable_get("@#{attrname}").nil?
    end

    unless nil_attributes.empty? then
      raise Gem::InvalidSpecificationException,
        "#{nil_attributes.join ', '} must not be nil"
    end

    if packaging and rubygems_version != Gem::VERSION then
      raise Gem::InvalidSpecificationException,
            "expected RubyGems version #{Gem::VERSION}, was #{rubygems_version}"
    end

    @@required_attributes.each do |symbol|
      unless self.send symbol then
        raise Gem::InvalidSpecificationException,
              "missing value for attribute #{symbol}"
      end
    end

    if !name.is_a?(String) then
      raise Gem::InvalidSpecificationException,
            "invalid value for attribute name: \"#{name.inspect}\" must be a string"
    elsif name !~ /[a-zA-Z]/ then
      raise Gem::InvalidSpecificationException,
            "invalid value for attribute name: #{name.dump} must include at least one letter"
    elsif name !~ VALID_NAME_PATTERN then
      raise Gem::InvalidSpecificationException,
            "invalid value for attribute name: #{name.dump} can only include letters, numbers, dashes, and underscores"
    end

    if raw_require_paths.empty? then
      raise Gem::InvalidSpecificationException,
            'specification must have at least one require_path'
    end

    @files.delete_if            { |x| File.directory?(x) }
    @test_files.delete_if       { |x| File.directory?(x) }
    @executables.delete_if      { |x| File.directory?(File.join(@bindir, x)) }
    @extra_rdoc_files.delete_if { |x| File.directory?(x) }
    @extensions.delete_if       { |x| File.directory?(x) }

    non_files = files.reject { |x| File.file?(x) }

    unless not packaging or non_files.empty? then
      raise Gem::InvalidSpecificationException,
            "[\"#{non_files.join "\", \""}\"] are not files"
    end

    if files.include? file_name then
      raise Gem::InvalidSpecificationException,
            "#{full_name} contains itself (#{file_name}), check your files list"
    end

    unless specification_version.is_a?(Fixnum)
      raise Gem::InvalidSpecificationException,
            'specification_version must be a Fixnum (did you mean version?)'
    end

    case platform
    when Gem::Platform, Gem::Platform::RUBY then # ok
    else
      raise Gem::InvalidSpecificationException,
            "invalid platform #{platform.inspect}, see Gem::Platform"
    end

    self.class.array_attributes.each do |field|
      val = self.send field
      klass = case field
              when :dependencies
                Gem::Dependency
              else
                String
              end

      unless Array === val and val.all? { |x| x.kind_of?(klass) } then
        raise(Gem::InvalidSpecificationException,
              "#{field} must be an Array of #{klass}")
      end
    end

    [:authors].each do |field|
      val = self.send field
      raise Gem::InvalidSpecificationException, "#{field} may not be empty" if
        val.empty?
    end

    unless Hash === metadata
      raise Gem::InvalidSpecificationException,
              'metadata must be a hash'
    end

    metadata.keys.each do |k|
      if !k.kind_of?(String)
        raise Gem::InvalidSpecificationException,
                'metadata keys must be a String'
      end

      if k.size > 128
        raise Gem::InvalidSpecificationException,
                "metadata key too large (#{k.size} > 128)"
      end
    end

    metadata.values.each do |k|
      if !k.kind_of?(String)
        raise Gem::InvalidSpecificationException,
                'metadata values must be a String'
      end

      if k.size > 1024
        raise Gem::InvalidSpecificationException,
                "metadata value too large (#{k.size} > 1024)"
      end
    end

    licenses.each { |license|
      if license.length > 64
        raise Gem::InvalidSpecificationException,
          "each license must be 64 characters or less"
      end
    }

    warning <<-warning if licenses.empty?
licenses is empty, but is recommended.  Use a license abbreviation from:
http://opensource.org/licenses/alphabetical
    warning

    validate_permissions

    # reject lazy developers:

    lazy = '"FIxxxXME" or "TOxxxDO"'.gsub(/xxx/, '')

    unless authors.grep(/FI XME|TO DO/x).empty? then
      raise Gem::InvalidSpecificationException, "#{lazy} is not an author"
    end

    unless Array(email).grep(/FI XME|TO DO/x).empty? then
      raise Gem::InvalidSpecificationException, "#{lazy} is not an email"
    end

    if description =~ /FI XME|TO DO/x then
      raise Gem::InvalidSpecificationException, "#{lazy} is not a description"
    end

    if summary =~ /FI XME|TO DO/x then
      raise Gem::InvalidSpecificationException, "#{lazy} is not a summary"
    end

    # Make sure a homepage is valid HTTP/HTTPS URI
    if homepage and not homepage.empty?
      begin
        homepage_uri = URI.parse(homepage)
        unless [URI::HTTP, URI::HTTPS].member? homepage_uri.class
          raise Gem::InvalidSpecificationException, "\"#{homepage}\" is not a valid HTTP URI"
        end
      rescue URI::InvalidURIError
        raise Gem::InvalidSpecificationException, "\"#{homepage}\" is not a valid HTTP URI"
      end
    end

    # Warnings

    %w[author description email homepage summary].each do |attribute|
      value = self.send attribute
      warning "no #{attribute} specified" if value.nil? or value.empty?
    end

    if description == summary then
      warning 'description and summary are identical'
    end

    # TODO: raise at some given date
    warning "deprecated autorequire specified" if autorequire

    executables.each do |executable|
      executable_path = File.join(bindir, executable)
      shebang = File.read(executable_path, 2) == '#!'

      warning "#{executable_path} is missing #! line" unless shebang
    end

    validate_dependencies

    true
  ensure
    if $! or @warnings > 0 then
      alert_warning "See http://guides.rubygems.org/specification-reference/ for help"
    end
  end

  ##
  # Checks that dependencies use requirements as we recommend.  Warnings are
  # issued when dependencies are open-ended or overly strict for semantic
  # versioning.

  def validate_dependencies # :nodoc:
    seen = {}

    dependencies.each do |dep|
      if prev = seen[dep.name] then
        raise Gem::InvalidSpecificationException, <<-MESSAGE
duplicate dependency on #{dep}, (#{prev.requirement}) use:
    add_runtime_dependency '#{dep.name}', '#{dep.requirement}', '#{prev.requirement}'
        MESSAGE
      end

      seen[dep.name] = dep

      prerelease_dep = dep.requirements_list.any? do |req|
        Gem::Requirement.new(req).prerelease?
      end

      warning "prerelease dependency on #{dep} is not recommended" if
        prerelease_dep

      overly_strict = dep.requirement.requirements.length == 1 &&
        dep.requirement.requirements.any? do |op, version|
          op == '~>' and
            not version.prerelease? and
            version.segments.length > 2 and
            version.segments.first != 0
        end

      if overly_strict then
        _, dep_version = dep.requirement.requirements.first

        base = dep_version.segments.first 2

        warning <<-WARNING
pessimistic dependency on #{dep} may be overly strict
  if #{dep.name} is semantically versioned, use:
    add_#{dep.type}_dependency '#{dep.name}', '~> #{base.join '.'}', '>= #{dep_version}'
        WARNING
      end

      open_ended = dep.requirement.requirements.all? do |op, version|
        not version.prerelease? and (op == '>' or op == '>=')
      end

      if open_ended then
        op, dep_version = dep.requirement.requirements.first

        base = dep_version.segments.first 2

        bugfix = if op == '>' then
                   ", '> #{dep_version}'"
                 elsif op == '>=' and base != dep_version.segments then
                   ", '>= #{dep_version}'"
                 end

        warning <<-WARNING
open-ended dependency on #{dep} is not recommended
  if #{dep.name} is semantically versioned, use:
    add_#{dep.type}_dependency '#{dep.name}', '~> #{base.join '.'}'#{bugfix}
        WARNING
      end
    end
  end

  ##
  # Checks to see if the files to be packaged are world-readable.

  def validate_permissions
    return if Gem.win_platform?

    files.each do |file|
      next if File.stat(file).mode & 0444 == 0444
      warning "#{file} is not world-readable"
    end

    executables.each do |name|
      exec = File.join @bindir, name
      next if File.stat(exec).executable?
      warning "#{exec} is not executable"
    end
  end

  ##
  # Set the version to +version+, potentially also setting
  # required_rubygems_version if +version+ indicates it is a
  # prerelease.

  def version= version
    @version = Gem::Version.create(version)
    self.required_rubygems_version = '> 1.3.1' if @version.prerelease?
    invalidate_memoized_attributes

    return @version
  end

  def stubbed?
    false
  end

  def yaml_initialize(tag, vals) # :nodoc:
    vals.each do |ivar, val|
      case ivar
      when "date"
        # Force Date to go through the extra coerce logic in date=
        self.date = val.untaint
      else
        instance_variable_set "@#{ivar}", val.untaint
      end
    end

    @original_platform = @platform # for backwards compatibility
    self.platform = Gem::Platform.new @platform
  end

  ##
  # Reset nil attributes to their default values to make the spec valid

  def reset_nil_attributes_to_default
    nil_attributes = self.class.non_nil_attributes.find_all do |name|
      !instance_variable_defined?("@#{name}") || instance_variable_get("@#{name}").nil?
    end

    nil_attributes.each do |attribute|
      default = self.default_value attribute

      value = case default
              when Time, Numeric, Symbol, true, false, nil then default
              else default.dup
              end

      instance_variable_set "@#{attribute}", value
    end

    @installed_by_version ||= nil
  end

  def warning statement # :nodoc:
    @warnings += 1

    alert_warning statement
  end

  extend Gem::Deprecate

  # TODO:
  # deprecate :has_rdoc,            :none,       2011, 10
  # deprecate :has_rdoc?,           :none,       2011, 10
  # deprecate :has_rdoc=,           :none,       2011, 10
  # deprecate :default_executable,  :none,       2011, 10
  # deprecate :default_executable=, :none,       2011, 10
  # deprecate :file_name,           :cache_file, 2011, 10
  # deprecate :full_gem_path,     :cache_file, 2011, 10
end

# DOC: What is this and why is it here, randomly, at the end of this file?
Gem.clear_paths
lib64/ruby/2.2.0/rubygems/psych_tree.rb000064400000001373150402106300013426 0ustar00module Gem
  if defined? ::Psych::Visitors
    class NoAliasYAMLTree < Psych::Visitors::YAMLTree
      def self.create
        new({})
      end unless respond_to? :create

      def visit_String(str)
        return super unless str == '=' # or whatever you want

        quote = Psych::Nodes::Scalar::SINGLE_QUOTED
        @emitter.scalar str, nil, nil, false, true, quote
      end

      # Noop this out so there are no anchors
      def register(target, obj)
      end

      # This is ported over from the yaml_tree in 1.9.3
      def format_time time
        if time.utc?
          time.strftime("%Y-%m-%d %H:%M:%S.%9N Z")
        else
          time.strftime("%Y-%m-%d %H:%M:%S.%9N %:z")
        end
      end

      private :format_time
    end
  end
end
lib64/ruby/2.2.0/rubygems/safe_yaml.rb000064400000002157150402106300013222 0ustar00module Gem

  ###
  # This module is used for safely loading YAML specs from a gem.  The
  # `safe_load` method defined on this module is specifically designed for
  # loading Gem specifications.  For loading other YAML safely, please see
  # Psych.safe_load

  module SafeYAML
    WHITELISTED_CLASSES = %w(
      Symbol
      Time
      Date
      Gem::Dependency
      Gem::Platform
      Gem::Requirement
      Gem::Specification
      Gem::Version
      Gem::Version::Requirement
      YAML::Syck::DefaultKey
      Syck::DefaultKey
    )

    WHITELISTED_SYMBOLS = %w(
      development
      runtime
    )

    if ::YAML.respond_to? :safe_load
      def self.safe_load input
        ::YAML.safe_load(input, WHITELISTED_CLASSES, WHITELISTED_SYMBOLS, true)
      end

      def self.load input
        ::YAML.safe_load(input, [::Symbol])
      end
    else
      warn "YAML safe loading is not available. Please upgrade psych to a version that supports safe loading (>= 2.0)."
      def self.safe_load input, *args
        ::YAML.load input
      end

      def self.load input
        ::YAML.load input
      end
    end
  end
end
lib64/ruby/2.2.0/rubygems/compatibility.rb000064400000003201150402106300014122 0ustar00# :stopdoc:

#--
# This file contains all sorts of little compatibility hacks that we've
# had to introduce over the years. Quarantining them into one file helps
# us know when we can get rid of them.
#
# Ruby 1.9.x has introduced some things that are awkward, and we need to
# support them, so we define some constants to use later.
#++
module Gem
  # Only MRI 1.9.2 has the custom prelude.
  GEM_PRELUDE_SUCKAGE = RUBY_VERSION =~ /^1\.9\.2/ and RUBY_ENGINE == "ruby"
end

# Gem::QuickLoader exists in the gem prelude code in ruby 1.9.2 itself.
# We gotta get rid of it if it's there, before we do anything else.
if Gem::GEM_PRELUDE_SUCKAGE and defined?(Gem::QuickLoader) then
  Gem::QuickLoader.remove

  $LOADED_FEATURES.delete Gem::QuickLoader.path_to_full_rubygems_library

  if path = $LOADED_FEATURES.find {|n| n.end_with? '/rubygems.rb'} then
    raise LoadError, "another rubygems is already loaded from #{path}"
  end

  class << Gem
    remove_method :try_activate if Gem.respond_to?(:try_activate, true)
  end
end

module Gem
  RubyGemsVersion = VERSION

  # TODO remove at RubyGems 3

  RbConfigPriorities = %w[
    MAJOR
    MINOR
    TEENY
    EXEEXT RUBY_SO_NAME arch bindir datadir libdir ruby_install_name
    ruby_version rubylibprefix sitedir sitelibdir vendordir vendorlibdir
    rubylibdir
  ]

  unless defined?(ConfigMap)
    ##
    # Configuration settings from ::RbConfig
    ConfigMap = Hash.new do |cm, key| # TODO remove at RubyGems 3
      cm[key] = RbConfig::CONFIG[key.to_s]
    end
  else
    RbConfigPriorities.each do |key|
      ConfigMap[key.to_sym] = RbConfig::CONFIG[key]
    end
  end

  RubyGemsPackageVersion = VERSION
end
lib64/ruby/2.2.0/rubygems/name_tuple.rb000064400000004576150402106300013422 0ustar00##
#
# Represents a gem of name +name+ at +version+ of +platform+. These
# wrap the data returned from the indexes.

require 'rubygems/platform'

class Gem::NameTuple
  def initialize(name, version, platform="ruby")
    @name = name
    @version = version

    unless platform.kind_of? Gem::Platform
      platform = "ruby" if !platform or platform.empty?
    end

    @platform = platform
  end

  attr_reader :name, :version, :platform

  ##
  # Turn an array of [name, version, platform] into an array of
  # NameTuple objects.

  def self.from_list list
    list.map { |t| new(*t) }
  end

  ##
  # Turn an array of NameTuple objects back into an array of
  # [name, version, platform] tuples.

  def self.to_basic list
    list.map { |t| t.to_a }
  end

  ##
  # A null NameTuple, ie name=nil, version=0

  def self.null
    new nil, Gem::Version.new(0), nil
  end

  ##
  # Returns the full name (name-version) of this Gem.  Platform information is
  # included if it is not the default Ruby platform.  This mimics the behavior
  # of Gem::Specification#full_name.

  def full_name
    case @platform
    when nil, 'ruby', ''
      "#{@name}-#{@version}"
    else
      "#{@name}-#{@version}-#{@platform}"
    end.untaint
  end

  ##
  # Indicate if this NameTuple matches the current platform.

  def match_platform?
    Gem::Platform.match @platform
  end

  ##
  # Indicate if this NameTuple is for a prerelease version.
  def prerelease?
    @version.prerelease?
  end

  ##
  # Return the name that the gemspec file would be

  def spec_name
    "#{full_name}.gemspec"
  end

  ##
  # Convert back to the [name, version, platform] tuple

  def to_a
    [@name, @version, @platform]
  end

  def inspect # :nodoc:
    "#<Gem::NameTuple #{@name}, #{@version}, #{@platform}>"
  end

  alias to_s inspect # :nodoc:

  def <=> other
    [@name, @version, @platform == Gem::Platform::RUBY ? -1 : 1] <=>
      [other.name, other.version,
       other.platform == Gem::Platform::RUBY ? -1 : 1]
  end

  include Comparable

  ##
  # Compare with +other+. Supports another NameTuple or an Array
  # in the [name, version, platform] format.

  def == other
    case other
    when self.class
      @name == other.name and
        @version == other.version and
        @platform == other.platform
    when Array
      to_a == other
    else
      false
    end
  end

  alias_method :eql?, :==

  def hash
    to_a.hash
  end

end
lib64/ruby/2.2.0/rubygems/command.rb000064400000033065150402106300012702 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'optparse'
require 'rubygems/requirement'
require 'rubygems/user_interaction'

##
# Base class for all Gem commands.  When creating a new gem command, define
# #initialize, #execute, #arguments, #defaults_str, #description and #usage
# (as appropriate).  See the above mentioned methods for details.
#
# A very good example to look at is Gem::Commands::ContentsCommand

class Gem::Command

  include Gem::UserInteraction

  ##
  # The name of the command.

  attr_reader :command

  ##
  # The options for the command.

  attr_reader :options

  ##
  # The default options for the command.

  attr_accessor :defaults

  ##
  # The name of the command for command-line invocation.

  attr_accessor :program_name

  ##
  # A short description of the command.

  attr_accessor :summary

  ##
  # Arguments used when building gems

  def self.build_args
    @build_args ||= []
  end

  def self.build_args=(value)
    @build_args = value
  end

  def self.common_options
    @common_options ||= []
  end

  def self.add_common_option(*args, &handler)
    Gem::Command.common_options << [args, handler]
  end

  def self.extra_args
    @extra_args ||= []
  end

  def self.extra_args=(value)
    case value
    when Array
      @extra_args = value
    when String
      @extra_args = value.split
    end
  end

  ##
  # Return an array of extra arguments for the command.  The extra arguments
  # come from the gem configuration file read at program startup.

  def self.specific_extra_args(cmd)
    specific_extra_args_hash[cmd]
  end

  ##
  # Add a list of extra arguments for the given command.  +args+ may be an
  # array or a string to be split on white space.

  def self.add_specific_extra_args(cmd,args)
    args = args.split(/\s+/) if args.kind_of? String
    specific_extra_args_hash[cmd] = args
  end

  ##
  # Accessor for the specific extra args hash (self initializing).

  def self.specific_extra_args_hash
    @specific_extra_args_hash ||= Hash.new do |h,k|
      h[k] = Array.new
    end
  end

  ##
  # Initializes a generic gem command named +command+.  +summary+ is a short
  # description displayed in `gem help commands`.  +defaults+ are the default
  # options.  Defaults should be mirrored in #defaults_str, unless there are
  # none.
  #
  # When defining a new command subclass, use add_option to add command-line
  # switches.
  #
  # Unhandled arguments (gem names, files, etc.) are left in
  # <tt>options[:args]</tt>.

  def initialize(command, summary=nil, defaults={})
    @command = command
    @summary = summary
    @program_name = "gem #{command}"
    @defaults = defaults
    @options = defaults.dup
    @option_groups = Hash.new { |h,k| h[k] = [] }
    @parser = nil
    @when_invoked = nil
  end

  ##
  # True if +long+ begins with the characters from +short+.

  def begins?(long, short)
    return false if short.nil?
    long[0, short.length] == short
  end

  ##
  # Override to provide command handling.
  #
  # #options will be filled in with your parsed options, unparsed options will
  # be left in <tt>options[:args]</tt>.
  #
  # See also: #get_all_gem_names, #get_one_gem_name,
  # #get_one_optional_argument

  def execute
    raise Gem::Exception, "generic command has no actions"
  end

  ##
  # Display to the user that a gem couldn't be found and reasons why
  #--
  # TODO: replace +domain+ with a parameter to suppress suggestions

  def show_lookup_failure(gem_name, version, errors, domain)
    if errors and !errors.empty?
      msg = "Could not find a valid gem '#{gem_name}' (#{version}), here is why:\n"
      errors.each { |x| msg << "          #{x.wordy}\n" }
      alert_error msg
    else
      alert_error "Could not find a valid gem '#{gem_name}' (#{version}) in any repository"
    end

    unless domain == :local then # HACK
      suggestions = Gem::SpecFetcher.fetcher.suggest_gems_from_name gem_name

      unless suggestions.empty?
        alert_error "Possible alternatives: #{suggestions.join(", ")}"
      end
    end
  end

  ##
  # Get all gem names from the command line.

  def get_all_gem_names
    args = options[:args]

    if args.nil? or args.empty? then
      raise Gem::CommandLineError,
            "Please specify at least one gem name (e.g. gem build GEMNAME)"
    end

    args.select { |arg| arg !~ /^-/ }
  end

  ##
  # Get all [gem, version] from the command line.
  #
  # An argument in the form gem:ver is pull apart into the gen name and version,
  # respectively.
  def get_all_gem_names_and_versions
    get_all_gem_names.map do |name|
      if /\A(.*):(#{Gem::Requirement::PATTERN_RAW})\z/ =~ name
        [$1, $2]
      else
        [name]
      end
    end
  end

  ##
  # Get a single gem name from the command line.  Fail if there is no gem name
  # or if there is more than one gem name given.

  def get_one_gem_name
    args = options[:args]

    if args.nil? or args.empty? then
      raise Gem::CommandLineError,
            "Please specify a gem name on the command line (e.g. gem build GEMNAME)"
    end

    if args.size > 1 then
      raise Gem::CommandLineError,
            "Too many gem names (#{args.join(', ')}); please specify only one"
    end

    args.first
  end

  ##
  # Get a single optional argument from the command line.  If more than one
  # argument is given, return only the first. Return nil if none are given.

  def get_one_optional_argument
    args = options[:args] || []
    args.first
  end

  ##
  # Override to provide details of the arguments a command takes.  It should
  # return a left-justified string, one argument per line.
  #
  # For example:
  #
  #   def usage
  #     "#{program_name} FILE [FILE ...]"
  #   end
  #
  #   def arguments
  #     "FILE          name of file to find"
  #   end

  def arguments
    ""
  end

  ##
  # Override to display the default values of the command options. (similar to
  # +arguments+, but displays the default values).
  #
  # For example:
  #
  #   def defaults_str
  #     --no-gems-first --no-all
  #   end

  def defaults_str
    ""
  end

  ##
  # Override to display a longer description of what this command does.

  def description
    nil
  end

  ##
  # Override to display the usage for an individual gem command.
  #
  # The text "[options]" is automatically appended to the usage text.

  def usage
    program_name
  end

  ##
  # Display the help message for the command.

  def show_help
    parser.program_name = usage
    say parser
  end

  ##
  # Invoke the command with the given list of arguments.

  def invoke(*args)
    invoke_with_build_args args, nil
  end

  ##
  # Invoke the command with the given list of normal arguments
  # and additional build arguments.

  def invoke_with_build_args(args, build_args)
    handle_options args

    options[:build_args] = build_args

    if options[:help] then
      show_help
    elsif @when_invoked then
      @when_invoked.call options
    else
      execute
    end
  end

  ##
  # Call the given block when invoked.
  #
  # Normal command invocations just executes the +execute+ method of the
  # command.  Specifying an invocation block allows the test methods to
  # override the normal action of a command to determine that it has been
  # invoked correctly.

  def when_invoked(&block)
    @when_invoked = block
  end

  ##
  # Add a command-line option and handler to the command.
  #
  # See OptionParser#make_switch for an explanation of +opts+.
  #
  # +handler+ will be called with two values, the value of the argument and
  # the options hash.
  #
  # If the first argument of add_option is a Symbol, it's used to group
  # options in output.  See `gem help list` for an example.

  def add_option(*opts, &handler) # :yields: value, options
    group_name = Symbol === opts.first ? opts.shift : :options

    @option_groups[group_name] << [opts, handler]
  end

  ##
  # Remove previously defined command-line argument +name+.

  def remove_option(name)
    @option_groups.each do |_, option_list|
      option_list.reject! { |args, _| args.any? { |x| x =~ /^#{name}/ } }
    end
  end

  ##
  # Merge a set of command options with the set of default options (without
  # modifying the default option hash).

  def merge_options(new_options)
    @options = @defaults.clone
    new_options.each do |k,v| @options[k] = v end
  end

  ##
  # True if the command handles the given argument list.

  def handles?(args)
    begin
      parser.parse!(args.dup)
      return true
    rescue
      return false
    end
  end

  ##
  # Handle the given list of arguments by parsing them and recording the
  # results.

  def handle_options(args)
    args = add_extra_args(args)
    @options = Marshal.load Marshal.dump @defaults # deep copy
    parser.parse!(args)
    @options[:args] = args
  end

  ##
  # Adds extra args from ~/.gemrc

  def add_extra_args(args)
    result = []

    s_extra = Gem::Command.specific_extra_args(@command)
    extra = Gem::Command.extra_args + s_extra

    until extra.empty? do
      ex = []
      ex << extra.shift
      ex << extra.shift if extra.first.to_s =~ /^[^-]/
      result << ex if handles?(ex)
    end

    result.flatten!
    result.concat(args)
    result
  end

  private

  def add_parser_description # :nodoc:
    return unless description

    formatted = description.split("\n\n").map do |chunk|
      wrap chunk, 80 - 4
    end.join "\n"

    @parser.separator nil
    @parser.separator "  Description:"
    formatted.split("\n").each do |line|
      @parser.separator "    #{line.rstrip}"
    end
  end

  def add_parser_options # :nodoc:
    @parser.separator nil

    regular_options = @option_groups.delete :options

    configure_options "", regular_options

    @option_groups.sort_by { |n,_| n.to_s }.each do |group_name, option_list|
      @parser.separator nil
      configure_options group_name, option_list
    end
  end

  ##
  # Adds a section with +title+ and +content+ to the parser help view.  Used
  # for adding command arguments and default arguments.

  def add_parser_run_info title, content
    return if content.empty?

    @parser.separator nil
    @parser.separator "  #{title}:"
    content.split(/\n/).each do |line|
      @parser.separator "    #{line}"
    end
  end

  def add_parser_summary # :nodoc:
    return unless @summary

    @parser.separator nil
    @parser.separator "  Summary:"
    wrap(@summary, 80 - 4).split("\n").each do |line|
      @parser.separator "    #{line.strip}"
    end
  end

  ##
  # Create on demand parser.

  def parser
    create_option_parser if @parser.nil?
    @parser
  end

  ##
  # Creates an option parser and fills it in with the help info for the
  # command.

  def create_option_parser
    @parser = OptionParser.new

    add_parser_options

    @parser.separator nil
    configure_options "Common", Gem::Command.common_options

    add_parser_run_info "Arguments", arguments
    add_parser_summary
    add_parser_description
    add_parser_run_info "Defaults", defaults_str
  end

  def configure_options(header, option_list)
    return if option_list.nil? or option_list.empty?

    header = header.to_s.empty? ? '' : "#{header} "
    @parser.separator "  #{header}Options:"

    option_list.each do |args, handler|
      args.select { |arg| arg =~ /^-/ }
      @parser.on(*args) do |value|
        handler.call(value, @options)
      end
    end

    @parser.separator ''
  end

  ##
  # Wraps +text+ to +width+

  def wrap(text, width) # :doc:
    text.gsub(/(.{1,#{width}})( +|$\n?)|(.{1,#{width}})/, "\\1\\3\n")
  end

  # ----------------------------------------------------------------
  # Add the options common to all commands.

  add_common_option('-h', '--help',
                    'Get help on this command') do |value, options|
    options[:help] = true
  end

  add_common_option('-V', '--[no-]verbose',
                    'Set the verbose level of output') do |value, options|
    # Set us to "really verbose" so the progress meter works
    if Gem.configuration.verbose and value then
      Gem.configuration.verbose = 1
    else
      Gem.configuration.verbose = value
    end
  end

  add_common_option('-q', '--quiet', 'Silence commands') do |value, options|
    Gem.configuration.verbose = false
  end

  # Backtrace and config-file are added so they show up in the help
  # commands.  Both options are actually handled before the other
  # options get parsed.

  add_common_option('--config-file FILE',
                    'Use this config file instead of default') do
  end

  add_common_option('--backtrace',
                    'Show stack backtrace on errors') do
  end

  add_common_option('--debug',
                    'Turn on Ruby debugging') do
  end

  # :stopdoc:

  HELP = <<-HELP
RubyGems is a sophisticated package manager for Ruby.  This is a
basic help message containing pointers to more information.

  Usage:
    gem -h/--help
    gem -v/--version
    gem command [arguments...] [options...]

  Examples:
    gem install rake
    gem list --local
    gem build package.gemspec
    gem help install

  Further help:
    gem help commands            list all 'gem' commands
    gem help examples            show some examples of usage
    gem help gem_dependencies    gem dependencies file guide
    gem help platforms           gem platforms guide
    gem help <COMMAND>           show help on COMMAND
                                   (e.g. 'gem help install')
    gem server                   present a web page at
                                 http://localhost:8808/
                                 with info about installed gems
  Further information:
    http://guides.rubygems.org
  HELP

  # :startdoc:

end

##
# \Commands will be placed in this namespace

module Gem::Commands
end

lib64/ruby/2.2.0/rubygems/source_local.rb000064400000000157150402106300013732 0ustar00require 'rubygems/source'
require 'rubygems/source_local'

# TODO warn upon require, this file is deprecated.

lib64/ruby/2.2.0/rubygems/dependency.rb000064400000020757150402106300013406 0ustar00##
# The Dependency class holds a Gem name and a Gem::Requirement.

require "rubygems/requirement"

class Gem::Dependency

  ##
  # Valid dependency types.
  #--
  # When this list is updated, be sure to change
  # Gem::Specification::CURRENT_SPECIFICATION_VERSION as well.
  #
  # REFACTOR: This type of constant, TYPES, indicates we might want
  # two classes, used via inheritance or duck typing.

  TYPES = [
    :development,
    :runtime,
  ]

  ##
  # Dependency name or regular expression.

  attr_accessor :name

  ##
  # Allows you to force this dependency to be a prerelease.

  attr_writer :prerelease

  ##
  # Constructs a dependency with +name+ and +requirements+. The last
  # argument can optionally be the dependency type, which defaults to
  # <tt>:runtime</tt>.

  def initialize name, *requirements
    case name
    when String then # ok
    when Regexp then
      msg = ["NOTE: Dependency.new w/ a regexp is deprecated.",
             "Dependency.new called from #{Gem.location_of_caller.join(":")}"]
      warn msg.join("\n") unless Gem::Deprecate.skip
    else
      raise ArgumentError,
            "dependency name must be a String, was #{name.inspect}"
    end

    type         = Symbol === requirements.last ? requirements.pop : :runtime
    requirements = requirements.first if 1 == requirements.length # unpack

    unless TYPES.include? type
      raise ArgumentError, "Valid types are #{TYPES.inspect}, " +
                           "not #{type.inspect}"
    end

    @name        = name
    @requirement = Gem::Requirement.create requirements
    @type        = type
    @prerelease  = false

    # This is for Marshal backwards compatibility. See the comments in
    # +requirement+ for the dirty details.

    @version_requirements = @requirement
  end

  ##
  # A dependency's hash is the XOR of the hashes of +name+, +type+,
  # and +requirement+.

  def hash # :nodoc:
    name.hash ^ type.hash ^ requirement.hash
  end

  def inspect # :nodoc:
    if prerelease? then
      "<%s type=%p name=%p requirements=%p prerelease=ok>" %
        [self.class, self.type, self.name, requirement.to_s]
    else
      "<%s type=%p name=%p requirements=%p>" %
        [self.class, self.type, self.name, requirement.to_s]
    end
  end

  ##
  # Does this dependency require a prerelease?

  def prerelease?
    @prerelease || requirement.prerelease?
  end

  ##
  # Is this dependency simply asking for the latest version
  # of a gem?

  def latest_version?
    @requirement.none?
  end

  def pretty_print q # :nodoc:
    q.group 1, 'Gem::Dependency.new(', ')' do
      q.pp name
      q.text ','
      q.breakable

      q.pp requirement

      q.text ','
      q.breakable

      q.pp type
    end
  end

  ##
  # What does this dependency require?

  def requirement
    return @requirement if defined?(@requirement) and @requirement

    # @version_requirements and @version_requirement are legacy ivar
    # names, and supported here because older gems need to keep
    # working and Dependency doesn't implement marshal_dump and
    # marshal_load. In a happier world, this would be an
    # attr_accessor. The horrifying instance_variable_get you see
    # below is also the legacy of some old restructurings.
    #
    # Note also that because of backwards compatibility (loading new
    # gems in an old RubyGems installation), we can't add explicit
    # marshaling to this class until we want to make a big
    # break. Maybe 2.0.
    #
    # Children, define explicit marshal and unmarshal behavior for
    # public classes. Marshal formats are part of your public API.

    # REFACTOR: See above

    if defined?(@version_requirement) && @version_requirement
      version = @version_requirement.instance_variable_get :@version
      @version_requirement  = nil
      @version_requirements = Gem::Requirement.new version
    end

    @requirement = @version_requirements if defined?(@version_requirements)
  end

  def requirements_list
    requirement.as_list
  end

  def to_s # :nodoc:
    if type != :runtime then
      "#{name} (#{requirement}, #{type})"
    else
      "#{name} (#{requirement})"
    end
  end

  ##
  # Dependency type.

  def type
    @type ||= :runtime
  end

  def == other # :nodoc:
    Gem::Dependency === other &&
      self.name        == other.name &&
      self.type        == other.type &&
      self.requirement == other.requirement
  end

  ##
  # Dependencies are ordered by name.

  def <=> other
    self.name <=> other.name
  end

  ##
  # Uses this dependency as a pattern to compare to +other+. This
  # dependency will match if the name matches the other's name, and
  # other has only an equal version requirement that satisfies this
  # dependency.

  def =~ other
    unless Gem::Dependency === other
      return unless other.respond_to?(:name) && other.respond_to?(:version)
      other = Gem::Dependency.new other.name, other.version
    end

    return false unless name === other.name

    reqs = other.requirement.requirements

    return false unless reqs.length == 1
    return false unless reqs.first.first == '='

    version = reqs.first.last

    requirement.satisfied_by? version
  end

  alias === =~

  ##
  # :call-seq:
  #   dep.match? name          => true or false
  #   dep.match? name, version => true or false
  #   dep.match? spec          => true or false
  #
  # Does this dependency match the specification described by +name+ and
  # +version+ or match +spec+?
  #
  # NOTE:  Unlike #matches_spec? this method does not return true when the
  # version is a prerelease version unless this is a prerelease dependency.

  def match? obj, version=nil, allow_prerelease=false
    if !version
      name = obj.name
      version = obj.version
    else
      name = obj
    end

    return false unless self.name === name

    version = Gem::Version.new version

    return true if requirement.none? and not version.prerelease?
    return false if version.prerelease? and
                    not allow_prerelease and
                    not prerelease?

    requirement.satisfied_by? version
  end

  ##
  # Does this dependency match +spec+?
  #
  # NOTE:  This is not a convenience method.  Unlike #match? this method
  # returns true when +spec+ is a prerelease version even if this dependency
  # is not a prerelease dependency.

  def matches_spec? spec
    return false unless name === spec.name
    return true  if requirement.none?

    requirement.satisfied_by?(spec.version)
  end

  ##
  # Merges the requirements of +other+ into this dependency

  def merge other
    unless name == other.name then
      raise ArgumentError,
            "#{self} and #{other} have different names"
    end

    default = Gem::Requirement.default
    self_req  = self.requirement
    other_req = other.requirement

    return self.class.new name, self_req  if other_req == default
    return self.class.new name, other_req if self_req  == default

    self.class.new name, self_req.as_list.concat(other_req.as_list)
  end

  def matching_specs platform_only = false
    matches = Gem::Specification.stubs.find_all { |spec|
      self.name === spec.name and # TODO: == instead of ===
        requirement.satisfied_by? spec.version
    }.map(&:to_spec)

    if platform_only
      matches.reject! { |spec|
        not Gem::Platform.match spec.platform
      }
    end

    matches.sort_by { |s| s.sort_obj } # HACK: shouldn't be needed
  end

  ##
  # True if the dependency will not always match the latest version.

  def specific?
    @requirement.specific?
  end

  def to_specs
    matches = matching_specs true

    # TODO: check Gem.activated_spec[self.name] in case matches falls outside

    if matches.empty? then
      specs = Gem::Specification.find_all { |s|
                s.name == name
              }.map { |x| x.full_name }

      if specs.empty?
        total = Gem::Specification.to_a.size
        msg   = "Could not find '#{name}' (#{requirement}) among #{total} total gem(s)\n"
      else
        msg   = "Could not find '#{name}' (#{requirement}) - did find: [#{specs.join ','}]\n"
      end
      msg << "Checked in 'GEM_PATH=#{Gem.path.join(File::PATH_SEPARATOR)}', execute `gem env` for more information"

      error = Gem::LoadError.new(msg)
      error.name        = self.name
      error.requirement = self.requirement
      raise error
    end

    # TODO: any other resolver validations should go here

    matches
  end

  def to_spec
    matches = self.to_specs

    active = matches.find { |spec| spec.activated? }

    return active if active

    matches.delete_if { |spec| spec.version.prerelease? } unless prerelease?

    matches.last
  end
end
lib64/ruby/2.2.0/rubygems/user_interaction.rb000064400000035223150402106300014637 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

begin
  require 'io/console'
rescue LoadError
end

##
# Module that defines the default UserInteraction.  Any class including this
# module will have access to the +ui+ method that returns the default UI.

module Gem::DefaultUserInteraction

  ##
  # The default UI is a class variable of the singleton class for this
  # module.

  @ui = nil

  ##
  # Return the default UI.

  def self.ui
    @ui ||= Gem::ConsoleUI.new
  end

  ##
  # Set the default UI.  If the default UI is never explicitly set, a simple
  # console based UserInteraction will be used automatically.

  def self.ui=(new_ui)
    @ui = new_ui
  end

  ##
  # Use +new_ui+ for the duration of +block+.

  def self.use_ui(new_ui)
    old_ui = @ui
    @ui = new_ui
    yield
  ensure
    @ui = old_ui
  end

  ##
  # See DefaultUserInteraction::ui

  def ui
    Gem::DefaultUserInteraction.ui
  end

  ##
  # See DefaultUserInteraction::ui=

  def ui=(new_ui)
    Gem::DefaultUserInteraction.ui = new_ui
  end

  ##
  # See DefaultUserInteraction::use_ui

  def use_ui(new_ui, &block)
    Gem::DefaultUserInteraction.use_ui(new_ui, &block)
  end

end

##
# UserInteraction allows RubyGems to interact with the user through standard
# methods that can be replaced with more-specific UI methods for different
# displays.
#
# Since UserInteraction dispatches to a concrete UI class you may need to
# reference other classes for specific behavior such as Gem::ConsoleUI or
# Gem::SilentUI.
#
# Example:
#
#   class X
#     include Gem::UserInteraction
#
#     def get_answer
#       n = ask("What is the meaning of life?")
#     end
#   end

module Gem::UserInteraction

  include Gem::DefaultUserInteraction

  ##
  # Displays an alert +statement+.  Asks a +question+ if given.

  def alert statement, question = nil
    ui.alert statement, question
  end

  ##
  # Displays an error +statement+ to the error output location.  Asks a
  # +question+ if given.

  def alert_error statement, question = nil
    ui.alert_error statement, question
  end

  ##
  # Displays a warning +statement+ to the warning output location.  Asks a
  # +question+ if given.

  def alert_warning statement, question = nil
    ui.alert_warning statement, question
  end

  ##
  # Asks a +question+ and returns the answer.

  def ask question
    ui.ask question
  end

  ##
  # Asks for a password with a +prompt+

  def ask_for_password prompt
    ui.ask_for_password prompt
  end

  ##
  # Asks a yes or no +question+.  Returns true for yes, false for no.

  def ask_yes_no question, default = nil
    ui.ask_yes_no question, default
  end

  ##
  # Asks the user to answer +question+ with an answer from the given +list+.

  def choose_from_list question, list
    ui.choose_from_list question, list
  end

  ##
  # Displays the given +statement+ on the standard output (or equivalent).

  def say statement = ''
    ui.say statement
  end

  ##
  # Terminates the RubyGems process with the given +exit_code+

  def terminate_interaction exit_code = 0
    ui.terminate_interaction exit_code
  end

  ##
  # Calls +say+ with +msg+ or the results of the block if really_verbose
  # is true.

  def verbose msg = nil
    say(msg || yield) if Gem.configuration.really_verbose
  end
end

##
# Gem::StreamUI implements a simple stream based user interface.

class Gem::StreamUI

  ##
  # The input stream

  attr_reader :ins

  ##
  # The output stream

  attr_reader :outs

  ##
  # The error stream

  attr_reader :errs

  ##
  # Creates a new StreamUI wrapping +in_stream+ for user input, +out_stream+
  # for standard output, +err_stream+ for error output.  If +usetty+ is true
  # then special operations (like asking for passwords) will use the TTY
  # commands to disable character echo.

  def initialize(in_stream, out_stream, err_stream=STDERR, usetty=true)
    @ins = in_stream
    @outs = out_stream
    @errs = err_stream
    @usetty = usetty
  end

  ##
  # Returns true if TTY methods should be used on this StreamUI.

  def tty?
    if RUBY_VERSION < '1.9.3' and RUBY_PLATFORM =~ /mingw|mswin/ then
      @usetty
    else
      @usetty && @ins.tty?
    end
  end

  ##
  # Prints a formatted backtrace to the errors stream if backtraces are
  # enabled.

  def backtrace exception
    return unless Gem.configuration.backtrace

    @errs.puts "\t#{exception.backtrace.join "\n\t"}"
  end

  ##
  # Choose from a list of options.  +question+ is a prompt displayed above
  # the list.  +list+ is a list of option strings.  Returns the pair
  # [option_name, option_index].

  def choose_from_list(question, list)
    @outs.puts question

    list.each_with_index do |item, index|
      @outs.puts " #{index+1}. #{item}"
    end

    @outs.print "> "
    @outs.flush

    result = @ins.gets

    return nil, nil unless result

    result = result.strip.to_i - 1
    return list[result], result
  end

  ##
  # Ask a question.  Returns a true for yes, false for no.  If not connected
  # to a tty, raises an exception if default is nil, otherwise returns
  # default.

  def ask_yes_no(question, default=nil)
    unless tty? then
      if default.nil? then
        raise Gem::OperationNotSupportedError,
              "Not connected to a tty and no default specified"
      else
        return default
      end
    end

    default_answer = case default
                     when nil
                       'yn'
                     when true
                       'Yn'
                     else
                       'yN'
                     end

    result = nil

    while result.nil? do
      result = case ask "#{question} [#{default_answer}]"
               when /^y/i then true
               when /^n/i then false
               when /^$/  then default
               else            nil
               end
    end

    return result
  end

  ##
  # Ask a question.  Returns an answer if connected to a tty, nil otherwise.

  def ask(question)
    return nil if not tty?

    @outs.print(question + "  ")
    @outs.flush

    result = @ins.gets
    result.chomp! if result
    result
  end

  ##
  # Ask for a password. Does not echo response to terminal.

  def ask_for_password(question)
    return nil if not tty?

    @outs.print(question, "  ")
    @outs.flush

    password = _gets_noecho
    @outs.puts
    password.chomp! if password
    password
  end

  if IO.method_defined?(:noecho) then
    def _gets_noecho
      @ins.noecho {@ins.gets}
    end
  elsif Gem.win_platform?
    def _gets_noecho
      require "Win32API"
      password = ''

      while char = Win32API.new("crtdll", "_getch", [ ], "L").Call do
        break if char == 10 || char == 13 # received carriage return or newline
        if char == 127 || char == 8 # backspace and delete
          password.slice!(-1, 1)
        else
          password << char.chr
        end
      end
      password
    end
  else
    def _gets_noecho
      system "stty -echo"
      begin
        @ins.gets
      ensure
        system "stty echo"
      end
    end
  end

  ##
  # Display a statement.

  def say(statement="")
    @outs.puts statement
  end

  ##
  # Display an informational alert.  Will ask +question+ if it is not nil.

  def alert(statement, question=nil)
    @outs.puts "INFO:  #{statement}"
    ask(question) if question
  end

  ##
  # Display a warning on stderr.  Will ask +question+ if it is not nil.

  def alert_warning(statement, question=nil)
    @errs.puts "WARNING:  #{statement}"
    ask(question) if question
  end

  ##
  # Display an error message in a location expected to get error messages.
  # Will ask +question+ if it is not nil.

  def alert_error(statement, question=nil)
    @errs.puts "ERROR:  #{statement}"
    ask(question) if question
  end

  ##
  # Display a debug message on the same location as error messages.

  def debug(statement)
    @errs.puts statement
  end

  ##
  # Terminate the application with exit code +status+, running any exit
  # handlers that might have been defined.

  def terminate_interaction(status = 0)
    close
    raise Gem::SystemExitException, status
  end

  def close
  end

  ##
  # Return a progress reporter object chosen from the current verbosity.

  def progress_reporter(*args)
    if self.kind_of?(Gem::SilentUI)
      return SilentProgressReporter.new(@outs, *args)
    end

    case Gem.configuration.verbose
    when nil, false
      SilentProgressReporter.new(@outs, *args)
    when true
      SimpleProgressReporter.new(@outs, *args)
    else
      VerboseProgressReporter.new(@outs, *args)
    end
  end

  ##
  # An absolutely silent progress reporter.

  class SilentProgressReporter

    ##
    # The count of items is never updated for the silent progress reporter.

    attr_reader :count

    ##
    # Creates a silent progress reporter that ignores all input arguments.

    def initialize(out_stream, size, initial_message, terminal_message = nil)
    end

    ##
    # Does not print +message+ when updated as this object has taken a vow of
    # silence.

    def updated(message)
    end

    ##
    # Does not print anything when complete as this object has taken a vow of
    # silence.

    def done
    end
  end

  ##
  # A basic dotted progress reporter.

  class SimpleProgressReporter

    include Gem::DefaultUserInteraction

    ##
    # The number of progress items counted so far.

    attr_reader :count

    ##
    # Creates a new progress reporter that will write to +out_stream+ for
    # +size+ items.  Shows the given +initial_message+ when progress starts
    # and the +terminal_message+ when it is complete.

    def initialize(out_stream, size, initial_message,
                   terminal_message = "complete")
      @out = out_stream
      @total = size
      @count = 0
      @terminal_message = terminal_message

      @out.puts initial_message
    end

    ##
    # Prints out a dot and ignores +message+.

    def updated(message)
      @count += 1
      @out.print "."
      @out.flush
    end

    ##
    # Prints out the terminal message.

    def done
      @out.puts "\n#{@terminal_message}"
    end

  end

  ##
  # A progress reporter that prints out messages about the current progress.

  class VerboseProgressReporter

    include Gem::DefaultUserInteraction

    ##
    # The number of progress items counted so far.

    attr_reader :count

    ##
    # Creates a new progress reporter that will write to +out_stream+ for
    # +size+ items.  Shows the given +initial_message+ when progress starts
    # and the +terminal_message+ when it is complete.

    def initialize(out_stream, size, initial_message,
                   terminal_message = 'complete')
      @out = out_stream
      @total = size
      @count = 0
      @terminal_message = terminal_message

      @out.puts initial_message
    end

    ##
    # Prints out the position relative to the total and the +message+.

    def updated(message)
      @count += 1
      @out.puts "#{@count}/#{@total}: #{message}"
    end

    ##
    # Prints out the terminal message.

    def done
      @out.puts @terminal_message
    end
  end

  ##
  # Return a download reporter object chosen from the current verbosity

  def download_reporter(*args)
    if self.kind_of?(Gem::SilentUI)
      return SilentDownloadReporter.new(@outs, *args)
    end

    case Gem.configuration.verbose
    when nil, false
      SilentDownloadReporter.new(@outs, *args)
    else
      VerboseDownloadReporter.new(@outs, *args)
    end
  end

  ##
  # An absolutely silent download reporter.

  class SilentDownloadReporter

    ##
    # The silent download reporter ignores all arguments

    def initialize(out_stream, *args)
    end

    ##
    # The silent download reporter does not display +filename+ or care about
    # +filesize+ because it is silent.

    def fetch(filename, filesize)
    end

    ##
    # Nothing can update the silent download reporter.

    def update(current)
    end

    ##
    # The silent download reporter won't tell you when the download is done.
    # Because it is silent.

    def done
    end
  end

  ##
  # A progress reporter that prints out messages about the current progress.

  class VerboseDownloadReporter

    ##
    # The current file name being displayed

    attr_reader :file_name

    ##
    # The total bytes in the file

    attr_reader :total_bytes

    ##
    # The current progress (0 to 100)

    attr_reader :progress

    ##
    # Creates a new verbose download reporter that will display on
    # +out_stream+.  The other arguments are ignored.

    def initialize(out_stream, *args)
      @out = out_stream
      @progress = 0
    end

    ##
    # Tells the download reporter that the +file_name+ is being fetched and
    # contains +total_bytes+.

    def fetch(file_name, total_bytes)
      @file_name = file_name
      @total_bytes = total_bytes.to_i
      @units = @total_bytes.zero? ? 'B' : '%'

      update_display(false)
    end

    ##
    # Updates the verbose download reporter for the given number of +bytes+.

    def update(bytes)
      new_progress = if @units == 'B' then
                       bytes
                     else
                       ((bytes.to_f * 100) / total_bytes.to_f).ceil
                     end

      return if new_progress == @progress

      @progress = new_progress
      update_display
    end

    ##
    # Indicates the download is complete.

    def done
      @progress = 100 if @units == '%'
      update_display(true, true)
    end

    private

    def update_display(show_progress = true, new_line = false) # :nodoc:
      return unless @out.tty?

      if show_progress then
        @out.print "\rFetching: %s (%3d%s)" % [@file_name, @progress, @units]
      else
        @out.print "Fetching: %s" % @file_name
      end
      @out.puts if new_line
    end
  end
end

##
# Subclass of StreamUI that instantiates the user interaction using STDIN,
# STDOUT, and STDERR.

class Gem::ConsoleUI < Gem::StreamUI

  ##
  # The Console UI has no arguments as it defaults to reading input from
  # stdin, output to stdout and warnings or errors to stderr.

  def initialize
    super STDIN, STDOUT, STDERR, true
  end
end

##
# SilentUI is a UI choice that is absolutely silent.

class Gem::SilentUI < Gem::StreamUI

  ##
  # The SilentUI has no arguments as it does not use any stream.

  def initialize
    reader, writer = nil, nil

    begin
      reader = File.open('/dev/null', 'r')
      writer = File.open('/dev/null', 'w')
    rescue Errno::ENOENT
      reader = File.open('nul', 'r')
      writer = File.open('nul', 'w')
    end

    super reader, writer, writer, false
  end

  def close
    super
    @ins.close
    @outs.close
  end

  def download_reporter(*args) # :nodoc:
    SilentDownloadReporter.new(@outs, *args)
  end

  def progress_reporter(*args) # :nodoc:
    SilentProgressReporter.new(@outs, *args)
  end
end

lib64/ruby/2.2.0/rubygems/test_utilities.rb000064400000020700150402106300014326 0ustar00require 'tempfile'
require 'rubygems'
require 'rubygems/remote_fetcher'

##
# A fake Gem::RemoteFetcher for use in tests or to avoid real live HTTP
# requests when testing code that uses RubyGems.
#
# Example:
#
#   @fetcher = Gem::FakeFetcher.new
#   @fetcher.data['http://gems.example.com/yaml'] = source_index.to_yaml
#   Gem::RemoteFetcher.fetcher = @fetcher
#
#   # invoke RubyGems code
#
#   paths = @fetcher.paths
#   assert_equal 'http://gems.example.com/yaml', paths.shift
#   assert paths.empty?, paths.join(', ')
#
# See RubyGems' tests for more examples of FakeFetcher.

class Gem::FakeFetcher

  attr_reader :data
  attr_reader :last_request
  attr_reader :api_endpoints
  attr_accessor :paths

  def initialize
    @data = {}
    @paths = []
    @api_endpoints = {}
  end

  def api_endpoint(uri)
    @api_endpoints[uri] || uri
  end

  def find_data(path)
    return File.read path.path if URI === path and 'file' == path.scheme

    if URI === path and "URI::#{path.scheme.upcase}" != path.class.name then
      raise ArgumentError,
        "mismatch for scheme #{path.scheme} and class #{path.class}"
    end

    path = path.to_s
    @paths << path
    raise ArgumentError, 'need full URI' unless path =~ %r'^https?://'

    unless @data.key? path then
      raise Gem::RemoteFetcher::FetchError.new("no data for #{path}", path)
    end

    @data[path]
  end

  def fetch_path path, mtime = nil, head = false
    data = find_data(path)

    if data.respond_to?(:call) then
      data.call
    else
      if path.to_s =~ /gz$/ and not data.nil? and not data.empty? then
        data = Gem.gunzip data
      end

      data
    end
  end

  def cache_update_path uri, path = nil, update = true
    if data = fetch_path(uri)
      open(path, 'wb') { |io| io.write data } if path and update
      data
    else
      Gem.read_binary(path) if path
    end
  end

  # Thanks, FakeWeb!
  def open_uri_or_path(path)
    data = find_data(path)
    body, code, msg = data

    response = Net::HTTPResponse.send(:response_class, code.to_s).new("1.0", code.to_s, msg)
    response.instance_variable_set(:@body, body)
    response.instance_variable_set(:@read, true)
    response
  end

  def request(uri, request_class, last_modified = nil)
    data = find_data(uri)
    body, code, msg = data

    @last_request = request_class.new uri.request_uri
    yield @last_request if block_given?

    response = Net::HTTPResponse.send(:response_class, code.to_s).new("1.0", code.to_s, msg)
    response.instance_variable_set(:@body, body)
    response.instance_variable_set(:@read, true)
    response
  end

  def pretty_print q # :nodoc:
    q.group 2, '[FakeFetcher', ']' do
      q.breakable
      q.text 'URIs:'

      q.breakable
      q.pp @data.keys

      unless @api_endpoints.empty? then
        q.breakable
        q.text 'API endpoints:'

        q.breakable
        q.pp @api_endpoints.keys
      end
    end
  end

  def fetch_size(path)
    path = path.to_s
    @paths << path

    raise ArgumentError, 'need full URI' unless path =~ %r'^http://'

    unless @data.key? path then
      raise Gem::RemoteFetcher::FetchError.new("no data for #{path}", path)
    end

    data = @data[path]

    data.respond_to?(:call) ? data.call : data.length
  end

  def download spec, source_uri, install_dir = Gem.dir
    name = File.basename spec.cache_file
    path = if Dir.pwd == install_dir then # see fetch_command
             install_dir
           else
             File.join install_dir, "cache"
           end

    path = File.join path, name

    if source_uri =~ /^http/ then
      File.open(path, "wb") do |f|
        f.write fetch_path(File.join(source_uri, "gems", name))
      end
    else
      FileUtils.cp source_uri, path
    end

    path
  end

  def download_to_cache dependency
    found, _ = Gem::SpecFetcher.fetcher.spec_for_dependency dependency

    return if found.empty?

    spec, source = found.first

    download spec, source.uri.to_s
  end

end

# :stopdoc:
class Gem::RemoteFetcher

  def self.fetcher=(fetcher)
    @fetcher = fetcher
  end

end
# :startdoc:

##
# The SpecFetcherSetup allows easy setup of a remote source in RubyGems tests:
#
#   spec_fetcher do |f|
#     f.gem  'a', 1
#     f.spec 'a', 2
#     f.gem  'b', 1' 'a' => '~> 1.0'
#     f.clear
#   end
#
# The above declaration creates two gems, a-1 and b-1, with a dependency from
# b to a.  The declaration creates an additional spec a-2, but no gem for it
# (so it cannot be installed).
#
# After the gems are created they are removed from Gem.dir.

class Gem::TestCase::SpecFetcherSetup

  ##
  # Executes a SpecFetcher setup block.  Yields an instance then creates the
  # gems and specifications defined in the instance.

  def self.declare test, repository
    setup = new test, repository

    yield setup

    setup.execute
  end

  def initialize test, repository # :nodoc:
    @test       = test
    @repository = repository

    @gems       = {}
    @installed  = []
    @operations = []
  end

  ##
  # Removes any created gems or specifications from Gem.dir (the default
  # install location).

  def clear
    @operations << [:clear]
  end

  ##
  # Returns a Hash of created Specification full names and the corresponding
  # Specification.

  def created_specs
    created = {}

    @gems.keys.each do |spec|
      created[spec.full_name] = spec
    end

    created
  end

  ##
  # Creates any defined gems or specifications

  def execute # :nodoc:
    execute_operations

    setup_fetcher

    created_specs
  end

  def execute_operations # :nodoc:
    @operations.each do |operation, *arguments|
      case operation
      when :clear then
        @test.util_clear_gems
        @installed.clear
      when :gem then
        spec, gem = @test.util_gem(*arguments, &arguments.pop)

        write_spec spec

        @gems[spec] = gem
        @installed << spec
      when :spec then
        spec = @test.util_spec(*arguments, &arguments.pop)

        write_spec spec

        @gems[spec] = nil
        @installed << spec
      end
    end
  end

  ##
  # Creates a gem with +name+, +version+ and +deps+.  The created gem can be
  # downloaded and installed.
  #
  # The specification will be yielded before gem creation for customization,
  # but only the block or the dependencies may be set, not both.

  def gem name, version, dependencies = nil, &block
    @operations << [:gem, name, version, dependencies, block]
  end

  ##
  # Creates a legacy platform spec with the name 'pl' and version 1

  def legacy_platform
    spec 'pl', 1 do |s|
      s.platform = Gem::Platform.new 'i386-linux'
      s.instance_variable_set :@original_platform, 'i386-linux'
    end
  end

  def setup_fetcher # :nodoc:
    require 'zlib'
    require 'socket'
    require 'rubygems/remote_fetcher'

    unless @test.fetcher then
      @test.fetcher = Gem::FakeFetcher.new
      Gem::RemoteFetcher.fetcher = @test.fetcher
    end

    Gem::Specification.reset

    begin
      gem_repo, @test.gem_repo = @test.gem_repo, @repository
      @test.uri = URI @repository

      @test.util_setup_spec_fetcher(*@gems.keys)
    ensure
      @test.gem_repo = gem_repo
      @test.uri = URI gem_repo
    end

    # This works around util_setup_spec_fetcher adding all created gems to the
    # installed set.
    Gem::Specification.reset
    Gem::Specification.add_specs(*@installed)

    @gems.each do |spec, gem|
      next unless gem

      @test.fetcher.data["#{@repository}gems/#{spec.file_name}"] =
        Gem.read_binary(gem)

      FileUtils.cp gem, spec.cache_file
    end
  end

  ##
  # Creates a spec with +name+, +version+ and +deps+.  The created gem can be
  # downloaded and installed.
  #
  # The specification will be yielded before creation for customization,
  # but only the block or the dependencies may be set, not both.

  def spec name, version, dependencies = nil, &block
    @operations << [:spec, name, version, dependencies, block]
  end

  def write_spec spec # :nodoc:
    open spec.spec_file, 'w' do |io|
      io.write spec.to_ruby_for_cache
    end
  end

end

##
# A StringIO duck-typed class that uses Tempfile instead of String as the
# backing store.
#
# This is available when rubygems/test_utilities is required.
#--
# This class was added to flush out problems in Rubinius' IO implementation.

class TempIO < Tempfile

  ##
  # Creates a new TempIO that will be initialized to contain +string+.

  def initialize(string = '')
    super "TempIO"
    binmode
    write string
    rewind
  end

  ##
  # The content of the TempIO as a String.

  def string
    flush
    Gem.read_binary path
  end
end

lib64/ruby/2.2.0/time.rb000064400000054402150402106300010363 0ustar00require 'date'

# = time.rb
#
# When 'time' is required, Time is extended with additional methods for parsing
# and converting Times.
#
# == Features
#
# This library extends the Time class with the following conversions between
# date strings and Time objects:
#
# * date-time defined by {RFC 2822}[http://www.ietf.org/rfc/rfc2822.txt]
# * HTTP-date defined by {RFC 2616}[http://www.ietf.org/rfc/rfc2616.txt]
# * dateTime defined by XML Schema Part 2: Datatypes ({ISO
#   8601}[http://www.iso.org/iso/date_and_time_format])
# * various formats handled by Date._parse
# * custom formats handled by Date._strptime
#
# == Examples
#
# All examples assume you have loaded Time with:
#
#   require 'time'
#
# All of these examples were done using the EST timezone which is GMT-5.
#
# === Converting to a String
#
#   t = Time.now
#   t.iso8601  # => "2011-10-05T22:26:12-04:00"
#   t.rfc2822  # => "Wed, 05 Oct 2011 22:26:12 -0400"
#   t.httpdate # => "Thu, 06 Oct 2011 02:26:12 GMT"
#
# === Time.parse
#
# #parse takes a string representation of a Time and attempts to parse it
# using a heuristic.
#
#   Date.parse("2010-10-31") #=> 2010-10-31 00:00:00 -0500
#
# Any missing pieces of the date are inferred based on the current date.
#
#   # assuming the current date is "2011-10-31"
#   Time.parse("12:00") #=> 2011-10-31 12:00:00 -0500
#
# We can change the date used to infer our missing elements by passing a second
# object that responds to #mon, #day and #year, such as Date, Time or DateTime.
# We can also use our own object.
#
#   class MyDate
#     attr_reader :mon, :day, :year
#
#     def initialize(mon, day, year)
#       @mon, @day, @year = mon, day, year
#     end
#   end
#
#   d  = Date.parse("2010-10-28")
#   t  = Time.parse("2010-10-29")
#   dt = DateTime.parse("2010-10-30")
#   md = MyDate.new(10,31,2010)
#
#   Time.parse("12:00", d)  #=> 2010-10-28 12:00:00 -0500
#   Time.parse("12:00", t)  #=> 2010-10-29 12:00:00 -0500
#   Time.parse("12:00", dt) #=> 2010-10-30 12:00:00 -0500
#   Time.parse("12:00", md) #=> 2010-10-31 12:00:00 -0500
#
# #parse also accepts an optional block. You can use this block to specify how
# to handle the year component of the date. This is specifically designed for
# handling two digit years. For example, if you wanted to treat all two digit
# years prior to 70 as the year 2000+ you could write this:
#
#   Time.parse("01-10-31") {|year| year + (year < 70 ? 2000 : 1900)}
#   #=> 2001-10-31 00:00:00 -0500
#   Time.parse("70-10-31") {|year| year + (year < 70 ? 2000 : 1900)}
#   #=> 1970-10-31 00:00:00 -0500
#
# === Time.strptime
#
# #strptime works similar to +parse+ except that instead of using a heuristic
# to detect the format of the input string, you provide a second argument that
# describes the format of the string. For example:
#
#   Time.strptime("2000-10-31", "%Y-%m-%d") #=> 2000-10-31 00:00:00 -0500

class Time
  class << Time

    #
    # A hash of timezones mapped to hour differences from UTC. The
    # set of time zones corresponds to the ones specified by RFC 2822
    # and ISO 8601.
    #
    ZoneOffset = { # :nodoc:
      'UTC' => 0,
      # ISO 8601
      'Z' => 0,
      # RFC 822
      'UT' => 0, 'GMT' => 0,
      'EST' => -5, 'EDT' => -4,
      'CST' => -6, 'CDT' => -5,
      'MST' => -7, 'MDT' => -6,
      'PST' => -8, 'PDT' => -7,
      # Following definition of military zones is original one.
      # See RFC 1123 and RFC 2822 for the error in RFC 822.
      'A' => +1, 'B' => +2, 'C' => +3, 'D' => +4,  'E' => +5,  'F' => +6,
      'G' => +7, 'H' => +8, 'I' => +9, 'K' => +10, 'L' => +11, 'M' => +12,
      'N' => -1, 'O' => -2, 'P' => -3, 'Q' => -4,  'R' => -5,  'S' => -6,
      'T' => -7, 'U' => -8, 'V' => -9, 'W' => -10, 'X' => -11, 'Y' => -12,
    }

    #
    # Return the number of seconds the specified time zone differs
    # from UTC.
    #
    # Numeric time zones that include minutes, such as
    # <code>-10:00</code> or <code>+1330</code> will work, as will
    # simpler hour-only time zones like <code>-10</code> or
    # <code>+13</code>.
    #
    # Textual time zones listed in ZoneOffset are also supported.
    #
    # If the time zone does not match any of the above, +zone_offset+
    # will check if the local time zone (both with and without
    # potential Daylight Saving \Time changes being in effect) matches
    # +zone+. Specifying a value for +year+ will change the year used
    # to find the local time zone.
    #
    # If +zone_offset+ is unable to determine the offset, nil will be
    # returned.
    def zone_offset(zone, year=self.now.year)
      off = nil
      zone = zone.upcase
      if /\A([+-])(\d\d):?(\d\d)\z/ =~ zone
        off = ($1 == '-' ? -1 : 1) * ($2.to_i * 60 + $3.to_i) * 60
      elsif /\A[+-]\d\d\z/ =~ zone
        off = zone.to_i * 3600
      elsif ZoneOffset.include?(zone)
        off = ZoneOffset[zone] * 3600
      elsif ((t = self.local(year, 1, 1)).zone.upcase == zone rescue false)
        off = t.utc_offset
      elsif ((t = self.local(year, 7, 1)).zone.upcase == zone rescue false)
        off = t.utc_offset
      end
      off
    end

    def zone_utc?(zone)
      # * +0000
      #   In RFC 2822, +0000 indicate a time zone at Universal Time.
      #   Europe/Lisbon is "a time zone at Universal Time" in Winter.
      #   Atlantic/Reykjavik is "a time zone at Universal Time".
      #   Africa/Dakar is "a time zone at Universal Time".
      #   So +0000 is a local time such as Europe/London, etc.
      # * GMT
      #   GMT is used as a time zone abbreviation in Europe/London,
      #   Africa/Dakar, etc.
      #   So it is a local time.
      #
      # * -0000, -00:00
      #   In RFC 2822, -0000 the date-time contains no information about the
      #   local time zone.
      #   In RFC 3339, -00:00 is used for the time in UTC is known,
      #   but the offset to local time is unknown.
      #   They are not appropriate for specific time zone such as
      #   Europe/London because time zone neutral,
      #   So -00:00 and -0000 are treated as UTC.
      if /\A(?:-00:00|-0000|-00|UTC|Z|UT)\z/i =~ zone
        true
      else
        false
      end
    end
    private :zone_utc?

    def force_zone!(t, zone, offset=nil)
      if zone_utc?(zone)
        t.utc
      elsif offset ||= zone_offset(zone)
        # Prefer the local timezone over the fixed offset timezone because
        # the former is a real timezone and latter is an artificial timezone.
        t.localtime
        if t.utc_offset != offset
          # Use the fixed offset timezone only if the local timezone cannot
          # represent the given offset.
          t.localtime(offset)
        end
      else
        t.localtime
      end
    end
    private :force_zone!

    LeapYearMonthDays = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # :nodoc:
    CommonYearMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # :nodoc:
    def month_days(y, m)
      if ((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)
        LeapYearMonthDays[m-1]
      else
        CommonYearMonthDays[m-1]
      end
    end
    private :month_days

    def apply_offset(year, mon, day, hour, min, sec, off)
      if off < 0
        off = -off
        off, o = off.divmod(60)
        if o != 0 then sec += o; o, sec = sec.divmod(60); off += o end
        off, o = off.divmod(60)
        if o != 0 then min += o; o, min = min.divmod(60); off += o end
        off, o = off.divmod(24)
        if o != 0 then hour += o; o, hour = hour.divmod(24); off += o end
        if off != 0
          day += off
          days = month_days(year, mon)
          if days and days < day
            mon += 1
            if 12 < mon
              mon = 1
              year += 1
            end
            day = 1
          end
        end
      elsif 0 < off
        off, o = off.divmod(60)
        if o != 0 then sec -= o; o, sec = sec.divmod(60); off -= o end
        off, o = off.divmod(60)
        if o != 0 then min -= o; o, min = min.divmod(60); off -= o end
        off, o = off.divmod(24)
        if o != 0 then hour -= o; o, hour = hour.divmod(24); off -= o end
        if off != 0 then
          day -= off
          if day < 1
            mon -= 1
            if mon < 1
              year -= 1
              mon = 12
            end
            day = month_days(year, mon)
          end
        end
      end
      return year, mon, day, hour, min, sec
    end
    private :apply_offset

    def make_time(date, year, mon, day, hour, min, sec, sec_fraction, zone, now)
      if !year && !mon && !day && !hour && !min && !sec && !sec_fraction
        raise ArgumentError, "no time information in #{date.inspect}"
      end

      off_year = year || now.year
      off = nil
      off = zone_offset(zone, off_year) if zone

      if off
        now = now.getlocal(off) if now.utc_offset != off
      else
        now = now.getlocal
      end

      usec = nil
      usec = sec_fraction * 1000000 if sec_fraction

      if now
        begin
          break if year; year = now.year
          break if mon; mon = now.mon
          break if day; day = now.day
          break if hour; hour = now.hour
          break if min; min = now.min
          break if sec; sec = now.sec
          break if sec_fraction; usec = now.tv_usec
        end until true
      end

      year ||= 1970
      mon ||= 1
      day ||= 1
      hour ||= 0
      min ||= 0
      sec ||= 0
      usec ||= 0

      if year != off_year
        off = nil
        off = zone_offset(zone, year) if zone
      end

      if off
        year, mon, day, hour, min, sec =
          apply_offset(year, mon, day, hour, min, sec, off)
        t = self.utc(year, mon, day, hour, min, sec, usec)
        force_zone!(t, zone, off)
        t
      else
        self.local(year, mon, day, hour, min, sec, usec)
      end
    end
    private :make_time

    #
    # Parses +date+ using Date._parse and converts it to a Time object.
    #
    # If a block is given, the year described in +date+ is converted by the
    # block.  For example:
    #
    #     Time.parse(...) {|y| 0 <= y && y < 100 ? (y >= 69 ? y + 1900 : y + 2000) : y}
    #
    # If the upper components of the given time are broken or missing, they are
    # supplied with those of +now+.  For the lower components, the minimum
    # values (1 or 0) are assumed if broken or missing.  For example:
    #
    #     # Suppose it is "Thu Nov 29 14:33:20 2001" now and
    #     # your time zone is EST which is GMT-5.
    #     now = Time.parse("Thu Nov 29 14:33:20 2001")
    #     Time.parse("16:30", now)     #=> 2001-11-29 16:30:00 -0500
    #     Time.parse("7/23", now)      #=> 2001-07-23 00:00:00 -0500
    #     Time.parse("Aug 31", now)    #=> 2001-08-31 00:00:00 -0500
    #     Time.parse("Aug 2000", now)  #=> 2000-08-01 00:00:00 -0500
    #
    # Since there are numerous conflicts among locally defined time zone
    # abbreviations all over the world, this method is not intended to
    # understand all of them.  For example, the abbreviation "CST" is
    # used variously as:
    #
    #     -06:00 in America/Chicago,
    #     -05:00 in America/Havana,
    #     +08:00 in Asia/Harbin,
    #     +09:30 in Australia/Darwin,
    #     +10:30 in Australia/Adelaide,
    #     etc.
    #
    # Based on this fact, this method only understands the time zone
    # abbreviations described in RFC 822 and the system time zone, in the
    # order named. (i.e. a definition in RFC 822 overrides the system
    # time zone definition.)  The system time zone is taken from
    # <tt>Time.local(year, 1, 1).zone</tt> and
    # <tt>Time.local(year, 7, 1).zone</tt>.
    # If the extracted time zone abbreviation does not match any of them,
    # it is ignored and the given time is regarded as a local time.
    #
    # ArgumentError is raised if Date._parse cannot extract information from
    # +date+ or if the Time class cannot represent specified date.
    #
    # This method can be used as a fail-safe for other parsing methods as:
    #
    #   Time.rfc2822(date) rescue Time.parse(date)
    #   Time.httpdate(date) rescue Time.parse(date)
    #   Time.xmlschema(date) rescue Time.parse(date)
    #
    # A failure of Time.parse should be checked, though.
    #
    # You must require 'time' to use this method.
    #
    def parse(date, now=self.now)
      comp = !block_given?
      d = Date._parse(date, comp)
      year = d[:year]
      year = yield(year) if year && !comp
      make_time(date, year, d[:mon], d[:mday], d[:hour], d[:min], d[:sec], d[:sec_fraction], d[:zone], now)
    end

    #
    # Parses +date+ using Date._strptime and converts it to a Time object.
    #
    # If a block is given, the year described in +date+ is converted by the
    # block.  For example:
    #
    #   Time.strptime(...) {|y| y < 100 ? (y >= 69 ? y + 1900 : y + 2000) : y}
    #
    # Below is a list of the formatting options:
    #
    # %a :: The abbreviated weekday name ("Sun")
    # %A :: The  full  weekday  name ("Sunday")
    # %b :: The abbreviated month name ("Jan")
    # %B :: The  full  month  name ("January")
    # %c :: The preferred local date and time representation
    # %C :: Century (20 in 2009)
    # %d :: Day of the month (01..31)
    # %D :: Date (%m/%d/%y)
    # %e :: Day of the month, blank-padded ( 1..31)
    # %F :: Equivalent to %Y-%m-%d (the ISO 8601 date format)
    # %h :: Equivalent to %b
    # %H :: Hour of the day, 24-hour clock (00..23)
    # %I :: Hour of the day, 12-hour clock (01..12)
    # %j :: Day of the year (001..366)
    # %k :: hour, 24-hour clock, blank-padded ( 0..23)
    # %l :: hour, 12-hour clock, blank-padded ( 0..12)
    # %L :: Millisecond of the second (000..999)
    # %m :: Month of the year (01..12)
    # %M :: Minute of the hour (00..59)
    # %n :: Newline (\n)
    # %N :: Fractional seconds digits, default is 9 digits (nanosecond)
    #       %3N :: millisecond (3 digits)
    #       %6N :: microsecond (6 digits)
    #       %9N :: nanosecond (9 digits)
    # %p :: Meridian indicator ("AM" or "PM")
    # %P :: Meridian indicator ("am" or "pm")
    # %r :: time, 12-hour (same as %I:%M:%S %p)
    # %R :: time, 24-hour (%H:%M)
    # %s :: Number of seconds since 1970-01-01 00:00:00 UTC.
    # %S :: Second of the minute (00..60)
    # %t :: Tab character (\t)
    # %T :: time, 24-hour (%H:%M:%S)
    # %u :: Day of the week as a decimal, Monday being 1. (1..7)
    # %U :: Week number of the current year, starting with the first Sunday as
    #       the first day of the first week (00..53)
    # %v :: VMS date (%e-%b-%Y)
    # %V :: Week number of year according to ISO 8601 (01..53)
    # %W :: Week  number  of the current year, starting with the first Monday
    #       as the first day of the first week (00..53)
    # %w :: Day of the week (Sunday is 0, 0..6)
    # %x :: Preferred representation for the date alone, no time
    # %X :: Preferred representation for the time alone, no date
    # %y :: Year without a century (00..99)
    # %Y :: Year which may include century, if provided
    # %z :: Time zone as  hour offset from UTC (e.g. +0900)
    # %Z :: Time zone name
    # %% :: Literal "%" character

    def strptime(date, format, now=self.now)
      d = Date._strptime(date, format)
      raise ArgumentError, "invalid strptime format - `#{format}'" unless d
      if seconds = d[:seconds]
        if sec_fraction = d[:sec_fraction]
          usec = sec_fraction * 1000000
          usec *= -1 if seconds < 0
        else
          usec = 0
        end
        t = Time.at(seconds, usec)
        if zone = d[:zone]
          force_zone!(t, zone)
        end
      else
        year = d[:year]
        year = yield(year) if year && block_given?
        t = make_time(date, year, d[:mon], d[:mday], d[:hour], d[:min], d[:sec], d[:sec_fraction], d[:zone], now)
      end
      t
    end

    MonthValue = { # :nodoc:
      'JAN' => 1, 'FEB' => 2, 'MAR' => 3, 'APR' => 4, 'MAY' => 5, 'JUN' => 6,
      'JUL' => 7, 'AUG' => 8, 'SEP' => 9, 'OCT' =>10, 'NOV' =>11, 'DEC' =>12
    }

    #
    # Parses +date+ as date-time defined by RFC 2822 and converts it to a Time
    # object.  The format is identical to the date format defined by RFC 822 and
    # updated by RFC 1123.
    #
    # ArgumentError is raised if +date+ is not compliant with RFC 2822
    # or if the Time class cannot represent specified date.
    #
    # See #rfc2822 for more information on this format.
    #
    # You must require 'time' to use this method.
    #
    def rfc2822(date)
      if /\A\s*
          (?:(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s*,\s*)?
          (\d{1,2})\s+
          (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+
          (\d{2,})\s+
          (\d{2})\s*
          :\s*(\d{2})\s*
          (?::\s*(\d{2}))?\s+
          ([+-]\d{4}|
           UT|GMT|EST|EDT|CST|CDT|MST|MDT|PST|PDT|[A-IK-Z])/ix =~ date
        # Since RFC 2822 permit comments, the regexp has no right anchor.
        day = $1.to_i
        mon = MonthValue[$2.upcase]
        year = $3.to_i
        short_year_p = $3.length <= 3
        hour = $4.to_i
        min = $5.to_i
        sec = $6 ? $6.to_i : 0
        zone = $7

        if short_year_p
          # following year completion is compliant with RFC 2822.
          year = if year < 50
                   2000 + year
                 else
                   1900 + year
                 end
        end

        off = zone_offset(zone)
        year, mon, day, hour, min, sec =
          apply_offset(year, mon, day, hour, min, sec, off)
        t = self.utc(year, mon, day, hour, min, sec)
        force_zone!(t, zone, off)
        t
      else
        raise ArgumentError.new("not RFC 2822 compliant date: #{date.inspect}")
      end
    end
    alias rfc822 rfc2822

    #
    # Parses +date+ as an HTTP-date defined by RFC 2616 and converts it to a
    # Time object.
    #
    # ArgumentError is raised if +date+ is not compliant with RFC 2616 or if
    # the Time class cannot represent specified date.
    #
    # See #httpdate for more information on this format.
    #
    # You must require 'time' to use this method.
    #
    def httpdate(date)
      if /\A\s*
          (?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\x20
          (\d{2})\x20
          (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\x20
          (\d{4})\x20
          (\d{2}):(\d{2}):(\d{2})\x20
          GMT
          \s*\z/ix =~ date
        self.rfc2822(date).utc
      elsif /\A\s*
             (?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday),\x20
             (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d)\x20
             (\d\d):(\d\d):(\d\d)\x20
             GMT
             \s*\z/ix =~ date
        year = $3.to_i
        if year < 50
          year += 2000
        else
          year += 1900
        end
        self.utc(year, $2, $1.to_i, $4.to_i, $5.to_i, $6.to_i)
      elsif /\A\s*
             (?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)\x20
             (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\x20
             (\d\d|\x20\d)\x20
             (\d\d):(\d\d):(\d\d)\x20
             (\d{4})
             \s*\z/ix =~ date
        self.utc($6.to_i, MonthValue[$1.upcase], $2.to_i,
                 $3.to_i, $4.to_i, $5.to_i)
      else
        raise ArgumentError.new("not RFC 2616 compliant date: #{date.inspect}")
      end
    end

    #
    # Parses +date+ as a dateTime defined by the XML Schema and converts it to
    # a Time object.  The format is a restricted version of the format defined
    # by ISO 8601.
    #
    # ArgumentError is raised if +date+ is not compliant with the format or if
    # the Time class cannot represent specified date.
    #
    # See #xmlschema for more information on this format.
    #
    # You must require 'time' to use this method.
    #
    def xmlschema(date)
      if /\A\s*
          (-?\d+)-(\d\d)-(\d\d)
          T
          (\d\d):(\d\d):(\d\d)
          (\.\d+)?
          (Z|[+-]\d\d:\d\d)?
          \s*\z/ix =~ date
        year = $1.to_i
        mon = $2.to_i
        day = $3.to_i
        hour = $4.to_i
        min = $5.to_i
        sec = $6.to_i
        usec = 0
        if $7
          usec = Rational($7) * 1000000
        end
        if $8
          zone = $8
          off = zone_offset(zone)
          year, mon, day, hour, min, sec =
            apply_offset(year, mon, day, hour, min, sec, off)
          t = self.utc(year, mon, day, hour, min, sec, usec)
          force_zone!(t, zone, off)
          t
        else
          self.local(year, mon, day, hour, min, sec, usec)
        end
      else
        raise ArgumentError.new("invalid date: #{date.inspect}")
      end
    end
    alias iso8601 xmlschema
  end # class << self

  #
  # Returns a string which represents the time as date-time defined by RFC 2822:
  #
  #   day-of-week, DD month-name CCYY hh:mm:ss zone
  #
  # where zone is [+-]hhmm.
  #
  # If +self+ is a UTC time, -0000 is used as zone.
  #
  # You must require 'time' to use this method.
  #
  def rfc2822
    sprintf('%s, %02d %s %0*d %02d:%02d:%02d ',
      RFC2822_DAY_NAME[wday],
      day, RFC2822_MONTH_NAME[mon-1], year < 0 ? 5 : 4, year,
      hour, min, sec) +
    if utc?
      '-0000'
    else
      off = utc_offset
      sign = off < 0 ? '-' : '+'
      sprintf('%s%02d%02d', sign, *(off.abs / 60).divmod(60))
    end
  end
  alias rfc822 rfc2822


  RFC2822_DAY_NAME = [ # :nodoc:
    'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'
  ]

  RFC2822_MONTH_NAME = [ # :nodoc:
    'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
    'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
  ]

  #
  # Returns a string which represents the time as RFC 1123 date of HTTP-date
  # defined by RFC 2616:
  #
  #   day-of-week, DD month-name CCYY hh:mm:ss GMT
  #
  # Note that the result is always UTC (GMT).
  #
  # You must require 'time' to use this method.
  #
  def httpdate
    t = dup.utc
    sprintf('%s, %02d %s %0*d %02d:%02d:%02d GMT',
      RFC2822_DAY_NAME[t.wday],
      t.day, RFC2822_MONTH_NAME[t.mon-1], t.year < 0 ? 5 : 4, t.year,
      t.hour, t.min, t.sec)
  end

  #
  # Returns a string which represents the time as a dateTime defined by XML
  # Schema:
  #
  #   CCYY-MM-DDThh:mm:ssTZD
  #   CCYY-MM-DDThh:mm:ss.sssTZD
  #
  # where TZD is Z or [+-]hh:mm.
  #
  # If self is a UTC time, Z is used as TZD.  [+-]hh:mm is used otherwise.
  #
  # +fractional_digits+ specifies a number of digits to use for fractional
  # seconds.  Its default value is 0.
  #
  # You must require 'time' to use this method.
  #
  def xmlschema(fraction_digits=0)
    fraction_digits = fraction_digits.to_i
    s = strftime("%FT%T")
    if fraction_digits > 0
      s << strftime(".%#{fraction_digits}N")
    end
    s << (utc? ? 'Z' : strftime("%:z"))
  end
  alias iso8601 xmlschema
end

lib64/ruby/2.2.0/psych.rb000064400000035603150402106300010555 0ustar00require 'psych.so'
require 'psych/nodes'
require 'psych/streaming'
require 'psych/visitors'
require 'psych/handler'
require 'psych/tree_builder'
require 'psych/parser'
require 'psych/omap'
require 'psych/set'
require 'psych/coder'
require 'psych/core_ext'
require 'psych/deprecated'
require 'psych/stream'
require 'psych/json/tree_builder'
require 'psych/json/stream'
require 'psych/handlers/document_stream'
require 'psych/class_loader'

###
# = Overview
#
# Psych is a YAML parser and emitter.
# Psych leverages libyaml [Home page: http://pyyaml.org/wiki/LibYAML]
# or [HG repo: https://bitbucket.org/xi/libyaml] for its YAML parsing
# and emitting capabilities. In addition to wrapping libyaml, Psych also
# knows how to serialize and de-serialize most Ruby objects to and from
# the YAML format.
#
# = I NEED TO PARSE OR EMIT YAML RIGHT NOW!
#
#   # Parse some YAML
#   Psych.load("--- foo") # => "foo"
#
#   # Emit some YAML
#   Psych.dump("foo")     # => "--- foo\n...\n"
#   { :a => 'b'}.to_yaml  # => "---\n:a: b\n"
#
# Got more time on your hands?  Keep on reading!
#
# == YAML Parsing
#
# Psych provides a range of interfaces for parsing a YAML document ranging from
# low level to high level, depending on your parsing needs.  At the lowest
# level, is an event based parser.  Mid level is access to the raw YAML AST,
# and at the highest level is the ability to unmarshal YAML to Ruby objects.
#
# == YAML Emitting
#
# Psych provides a range of interfaces ranging from low to high level for
# producing YAML documents.  Very similar to the YAML parsing interfaces, Psych
# provides at the lowest level, an event based system, mid-level is building
# a YAML AST, and the highest level is converting a Ruby object straight to
# a YAML document.
#
# == High-level API
#
# === Parsing
#
# The high level YAML parser provided by Psych simply takes YAML as input and
# returns a Ruby data structure.  For information on using the high level parser
# see Psych.load
#
# ==== Reading from a string
#
#   Psych.load("--- a")             # => 'a'
#   Psych.load("---\n - a\n - b")   # => ['a', 'b']
#
# ==== Reading from a file
#
#   Psych.load_file("database.yml")
#
# ==== Exception handling
#
#   begin
#     # The second argument changes only the exception contents
#     Psych.parse("--- `", "file.txt")
#   rescue Psych::SyntaxError => ex
#     ex.file    # => 'file.txt'
#     ex.message # => "(file.txt): found character that cannot start any token"
#   end
#
# === Emitting
#
# The high level emitter has the easiest interface.  Psych simply takes a Ruby
# data structure and converts it to a YAML document.  See Psych.dump for more
# information on dumping a Ruby data structure.
#
# ==== Writing to a string
#
#   # Dump an array, get back a YAML string
#   Psych.dump(['a', 'b'])  # => "---\n- a\n- b\n"
#
#   # Dump an array to an IO object
#   Psych.dump(['a', 'b'], StringIO.new)  # => #<StringIO:0x000001009d0890>
#
#   # Dump an array with indentation set
#   Psych.dump(['a', ['b']], :indentation => 3) # => "---\n- a\n-  - b\n"
#
#   # Dump an array to an IO with indentation set
#   Psych.dump(['a', ['b']], StringIO.new, :indentation => 3)
#
# ==== Writing to a file
#
# Currently there is no direct API for dumping Ruby structure to file:
#
#   File.open('database.yml', 'w') do |file|
#     file.write(Psych.dump(['a', 'b']))
#   end
#
# == Mid-level API
#
# === Parsing
#
# Psych provides access to an AST produced from parsing a YAML document.  This
# tree is built using the Psych::Parser and Psych::TreeBuilder.  The AST can
# be examined and manipulated freely.  Please see Psych::parse_stream,
# Psych::Nodes, and Psych::Nodes::Node for more information on dealing with
# YAML syntax trees.
#
# ==== Reading from a string
#
#   # Returns Psych::Nodes::Stream
#   Psych.parse_stream("---\n - a\n - b")
#
#   # Returns Psych::Nodes::Document
#   Psych.parse("---\n - a\n - b")
#
# ==== Reading from a file
#
#   # Returns Psych::Nodes::Stream
#   Psych.parse_stream(File.read('database.yml'))
#
#   # Returns Psych::Nodes::Document
#   Psych.parse_file('database.yml')
#
# ==== Exception handling
#
#   begin
#     # The second argument changes only the exception contents
#     Psych.parse("--- `", "file.txt")
#   rescue Psych::SyntaxError => ex
#     ex.file    # => 'file.txt'
#     ex.message # => "(file.txt): found character that cannot start any token"
#   end
#
# === Emitting
#
# At the mid level is building an AST.  This AST is exactly the same as the AST
# used when parsing a YAML document.  Users can build an AST by hand and the
# AST knows how to emit itself as a YAML document.  See Psych::Nodes,
# Psych::Nodes::Node, and Psych::TreeBuilder for more information on building
# a YAML AST.
#
# ==== Writing to a string
#
#   # We need Psych::Nodes::Stream (not Psych::Nodes::Document)
#   stream = Psych.parse_stream("---\n - a\n - b")
#
#   stream.to_yaml # => "---\n- a\n- b\n"
#
# ==== Writing to a file
#
#   # We need Psych::Nodes::Stream (not Psych::Nodes::Document)
#   stream = Psych.parse_stream(File.read('database.yml'))
#
#   File.open('database.yml', 'w') do |file|
#     file.write(stream.to_yaml)
#   end
#
# == Low-level API
#
# === Parsing
#
# The lowest level parser should be used when the YAML input is already known,
# and the developer does not want to pay the price of building an AST or
# automatic detection and conversion to Ruby objects.  See Psych::Parser for
# more information on using the event based parser.
#
# ==== Reading to Psych::Nodes::Stream structure
#
#   parser = Psych::Parser.new(TreeBuilder.new) # => #<Psych::Parser>
#   parser = Psych.parser                       # it's an alias for the above
#
#   parser.parse("---\n - a\n - b")             # => #<Psych::Parser>
#   parser.handler                              # => #<Psych::TreeBuilder>
#   parser.handler.root                         # => #<Psych::Nodes::Stream>
#
# ==== Receiving an events stream
#
#   parser = Psych::Parser.new(Psych::Handlers::Recorder.new)
#
#   parser.parse("---\n - a\n - b")
#   parser.events # => [list of [event, args] lists]
#                 # event is one of: Psych::Handler::EVENTS
#                 # args are the arguments passed to the event
#
# === Emitting
#
# The lowest level emitter is an event based system.  Events are sent to a
# Psych::Emitter object.  That object knows how to convert the events to a YAML
# document.  This interface should be used when document format is known in
# advance or speed is a concern.  See Psych::Emitter for more information.
#
# ==== Writing to a Ruby structure
#
#   Psych.parser.parse("--- a")       # => #<Psych::Parser>
#
#   parser.handler.first              # => #<Psych::Nodes::Stream>
#   parser.handler.first.to_ruby      # => ["a"]
#
#   parser.handler.root.first         # => #<Psych::Nodes::Document>
#   parser.handler.root.first.to_ruby # => "a"
#
#   # You can instantiate an Emitter manually
#   Psych::Visitors::ToRuby.new.accept(parser.handler.root.first)
#   # => "a"

module Psych
  # The version is Psych you're using
  VERSION         = '2.0.8'

  # The version of libyaml Psych is using
  LIBYAML_VERSION = Psych.libyaml_version.join '.'

  ###
  # Load +yaml+ in to a Ruby data structure.  If multiple documents are
  # provided, the object contained in the first document will be returned.
  # +filename+ will be used in the exception message if any exception is raised
  # while parsing.
  #
  # Raises a Psych::SyntaxError when a YAML syntax error is detected.
  #
  # Example:
  #
  #   Psych.load("--- a")             # => 'a'
  #   Psych.load("---\n - a\n - b")   # => ['a', 'b']
  #
  #   begin
  #     Psych.load("--- `", "file.txt")
  #   rescue Psych::SyntaxError => ex
  #     ex.file    # => 'file.txt'
  #     ex.message # => "(file.txt): found character that cannot start any token"
  #   end
  def self.load yaml, filename = nil
    result = parse(yaml, filename)
    result ? result.to_ruby : result
  end

  ###
  # Safely load the yaml string in +yaml+.  By default, only the following
  # classes are allowed to be deserialized:
  #
  # * TrueClass
  # * FalseClass
  # * NilClass
  # * Numeric
  # * String
  # * Array
  # * Hash
  #
  # Recursive data structures are not allowed by default.  Arbitrary classes
  # can be allowed by adding those classes to the +whitelist+.  They are
  # additive.  For example, to allow Date deserialization:
  #
  #   Psych.safe_load(yaml, [Date])
  #
  # Now the Date class can be loaded in addition to the classes listed above.
  #
  # Aliases can be explicitly allowed by changing the +aliases+ parameter.
  # For example:
  #
  #   x = []
  #   x << x
  #   yaml = Psych.dump x
  #   Psych.safe_load yaml               # => raises an exception
  #   Psych.safe_load yaml, [], [], true # => loads the aliases
  #
  # A Psych::DisallowedClass exception will be raised if the yaml contains a
  # class that isn't in the whitelist.
  #
  # A Psych::BadAlias exception will be raised if the yaml contains aliases
  # but the +aliases+ parameter is set to false.
  def self.safe_load yaml, whitelist_classes = [], whitelist_symbols = [], aliases = false, filename = nil
    result = parse(yaml, filename)
    return unless result

    class_loader = ClassLoader::Restricted.new(whitelist_classes.map(&:to_s),
                                               whitelist_symbols.map(&:to_s))
    scanner      = ScalarScanner.new class_loader
    if aliases
      visitor = Visitors::ToRuby.new scanner, class_loader
    else
      visitor = Visitors::NoAliasRuby.new scanner, class_loader
    end
    visitor.accept result
  end

  ###
  # Parse a YAML string in +yaml+.  Returns the Psych::Nodes::Document.
  # +filename+ is used in the exception message if a Psych::SyntaxError is
  # raised.
  #
  # Raises a Psych::SyntaxError when a YAML syntax error is detected.
  #
  # Example:
  #
  #   Psych.parse("---\n - a\n - b") # => #<Psych::Nodes::Document:0x00>
  #
  #   begin
  #     Psych.parse("--- `", "file.txt")
  #   rescue Psych::SyntaxError => ex
  #     ex.file    # => 'file.txt'
  #     ex.message # => "(file.txt): found character that cannot start any token"
  #   end
  #
  # See Psych::Nodes for more information about YAML AST.
  def self.parse yaml, filename = nil
    parse_stream(yaml, filename) do |node|
      return node
    end
    false
  end

  ###
  # Parse a file at +filename+. Returns the Psych::Nodes::Document.
  #
  # Raises a Psych::SyntaxError when a YAML syntax error is detected.
  def self.parse_file filename
    File.open filename, 'r:bom|utf-8' do |f|
      parse f, filename
    end
  end

  ###
  # Returns a default parser
  def self.parser
    Psych::Parser.new(TreeBuilder.new)
  end

  ###
  # Parse a YAML string in +yaml+.  Returns the Psych::Nodes::Stream.
  # This method can handle multiple YAML documents contained in +yaml+.
  # +filename+ is used in the exception message if a Psych::SyntaxError is
  # raised.
  #
  # If a block is given, a Psych::Nodes::Document node will be yielded to the
  # block as it's being parsed.
  #
  # Raises a Psych::SyntaxError when a YAML syntax error is detected.
  #
  # Example:
  #
  #   Psych.parse_stream("---\n - a\n - b") # => #<Psych::Nodes::Stream:0x00>
  #
  #   Psych.parse_stream("--- a\n--- b") do |node|
  #     node # => #<Psych::Nodes::Document:0x00>
  #   end
  #
  #   begin
  #     Psych.parse_stream("--- `", "file.txt")
  #   rescue Psych::SyntaxError => ex
  #     ex.file    # => 'file.txt'
  #     ex.message # => "(file.txt): found character that cannot start any token"
  #   end
  #
  # See Psych::Nodes for more information about YAML AST.
  def self.parse_stream yaml, filename = nil, &block
    if block_given?
      parser = Psych::Parser.new(Handlers::DocumentStream.new(&block))
      parser.parse yaml, filename
    else
      parser = self.parser
      parser.parse yaml, filename
      parser.handler.root
    end
  end

  ###
  # call-seq:
  #   Psych.dump(o)               -> string of yaml
  #   Psych.dump(o, options)      -> string of yaml
  #   Psych.dump(o, io)           -> io object passed in
  #   Psych.dump(o, io, options)  -> io object passed in
  #
  # Dump Ruby object +o+ to a YAML string.  Optional +options+ may be passed in
  # to control the output format.  If an IO object is passed in, the YAML will
  # be dumped to that IO object.
  #
  # Example:
  #
  #   # Dump an array, get back a YAML string
  #   Psych.dump(['a', 'b'])  # => "---\n- a\n- b\n"
  #
  #   # Dump an array to an IO object
  #   Psych.dump(['a', 'b'], StringIO.new)  # => #<StringIO:0x000001009d0890>
  #
  #   # Dump an array with indentation set
  #   Psych.dump(['a', ['b']], :indentation => 3) # => "---\n- a\n-  - b\n"
  #
  #   # Dump an array to an IO with indentation set
  #   Psych.dump(['a', ['b']], StringIO.new, :indentation => 3)
  def self.dump o, io = nil, options = {}
    if Hash === io
      options = io
      io      = nil
    end

    visitor = Psych::Visitors::YAMLTree.create options
    visitor << o
    visitor.tree.yaml io, options
  end

  ###
  # Dump a list of objects as separate documents to a document stream.
  #
  # Example:
  #
  #   Psych.dump_stream("foo\n  ", {}) # => "--- ! \"foo\\n  \"\n--- {}\n"
  def self.dump_stream *objects
    visitor = Psych::Visitors::YAMLTree.create({})
    objects.each do |o|
      visitor << o
    end
    visitor.tree.yaml
  end

  ###
  # Dump Ruby +object+ to a JSON string.
  def self.to_json object
    visitor = Psych::Visitors::JSONTree.create
    visitor << object
    visitor.tree.yaml
  end

  ###
  # Load multiple documents given in +yaml+.  Returns the parsed documents
  # as a list.  If a block is given, each document will be converted to Ruby
  # and passed to the block during parsing
  #
  # Example:
  #
  #   Psych.load_stream("--- foo\n...\n--- bar\n...") # => ['foo', 'bar']
  #
  #   list = []
  #   Psych.load_stream("--- foo\n...\n--- bar\n...") do |ruby|
  #     list << ruby
  #   end
  #   list # => ['foo', 'bar']
  #
  def self.load_stream yaml, filename = nil
    if block_given?
      parse_stream(yaml, filename) do |node|
        yield node.to_ruby
      end
    else
      parse_stream(yaml, filename).children.map { |child| child.to_ruby }
    end
  end

  ###
  # Load the document contained in +filename+.  Returns the yaml contained in
  # +filename+ as a Ruby object
  def self.load_file filename
    File.open(filename, 'r:bom|utf-8') { |f| self.load f, filename }
  end

  # :stopdoc:
  @domain_types = {}
  def self.add_domain_type domain, type_tag, &block
    key = ['tag', domain, type_tag].join ':'
    @domain_types[key] = [key, block]
    @domain_types["tag:#{type_tag}"] = [key, block]
  end

  def self.add_builtin_type type_tag, &block
    domain = 'yaml.org,2002'
    key = ['tag', domain, type_tag].join ':'
    @domain_types[key] = [key, block]
  end

  def self.remove_type type_tag
    @domain_types.delete type_tag
  end

  @load_tags = {}
  @dump_tags = {}
  def self.add_tag tag, klass
    @load_tags[tag] = klass.name
    @dump_tags[klass] = tag
  end

  class << self
    attr_accessor :load_tags
    attr_accessor :dump_tags
    attr_accessor :domain_types
  end
  # :startdoc:
end
lib64/ruby/2.2.0/tempfile.rb000064400000026164150402106300011236 0ustar00#
# tempfile - manipulates temporary files
#
# $Id: tempfile.rb 47656 2014-09-21 01:40:21Z nobu $
#

require 'delegate'
require 'tmpdir'

# A utility class for managing temporary files. When you create a Tempfile
# object, it will create a temporary file with a unique filename. A Tempfile
# objects behaves just like a File object, and you can perform all the usual
# file operations on it: reading data, writing data, changing its permissions,
# etc. So although this class does not explicitly document all instance methods
# supported by File, you can in fact call any File instance method on a
# Tempfile object.
#
# == Synopsis
#
#   require 'tempfile'
#
#   file = Tempfile.new('foo')
#   file.path      # => A unique filename in the OS's temp directory,
#                  #    e.g.: "/tmp/foo.24722.0"
#                  #    This filename contains 'foo' in its basename.
#   file.write("hello world")
#   file.rewind
#   file.read      # => "hello world"
#   file.close
#   file.unlink    # deletes the temp file
#
# == Good practices
#
# === Explicit close
#
# When a Tempfile object is garbage collected, or when the Ruby interpreter
# exits, its associated temporary file is automatically deleted. This means
# that's it's unnecessary to explicitly delete a Tempfile after use, though
# it's good practice to do so: not explicitly deleting unused Tempfiles can
# potentially leave behind large amounts of tempfiles on the filesystem
# until they're garbage collected. The existence of these temp files can make
# it harder to determine a new Tempfile filename.
#
# Therefore, one should always call #unlink or close in an ensure block, like
# this:
#
#   file = Tempfile.new('foo')
#   begin
#      ...do something with file...
#   ensure
#      file.close
#      file.unlink   # deletes the temp file
#   end
#
# === Unlink after creation
#
# On POSIX systems, it's possible to unlink a file right after creating it,
# and before closing it. This removes the filesystem entry without closing
# the file handle, so it ensures that only the processes that already had
# the file handle open can access the file's contents. It's strongly
# recommended that you do this if you do not want any other processes to
# be able to read from or write to the Tempfile, and you do not need to
# know the Tempfile's filename either.
#
# For example, a practical use case for unlink-after-creation would be this:
# you need a large byte buffer that's too large to comfortably fit in RAM,
# e.g. when you're writing a web server and you want to buffer the client's
# file upload data.
#
# Please refer to #unlink for more information and a code example.
#
# == Minor notes
#
# Tempfile's filename picking method is both thread-safe and inter-process-safe:
# it guarantees that no other threads or processes will pick the same filename.
#
# Tempfile itself however may not be entirely thread-safe. If you access the
# same Tempfile object from multiple threads then you should protect it with a
# mutex.
class Tempfile < DelegateClass(File)
  # call-seq:
  #    new(basename, [tmpdir = Dir.tmpdir], [options])
  #
  # Creates a temporary file with permissions 0600 (= only readable and
  # writable by the owner) and opens it with mode "w+".
  #
  # The +basename+ parameter is used to determine the name of the
  # temporary file. You can either pass a String or an Array with
  # 2 String elements. In the former form, the temporary file's base
  # name will begin with the given string. In the latter form,
  # the temporary file's base name will begin with the array's first
  # element, and end with the second element. For example:
  #
  #   file = Tempfile.new('hello')
  #   file.path  # => something like: "/tmp/hello2843-8392-92849382--0"
  #
  #   # Use the Array form to enforce an extension in the filename:
  #   file = Tempfile.new(['hello', '.jpg'])
  #   file.path  # => something like: "/tmp/hello2843-8392-92849382--0.jpg"
  #
  # The temporary file will be placed in the directory as specified
  # by the +tmpdir+ parameter. By default, this is +Dir.tmpdir+.
  # When $SAFE > 0 and the given +tmpdir+ is tainted, it uses
  # '/tmp' as the temporary directory. Please note that ENV values
  # are tainted by default, and +Dir.tmpdir+'s return value might
  # come from environment variables (e.g. <tt>$TMPDIR</tt>).
  #
  #   file = Tempfile.new('hello', '/home/aisaka')
  #   file.path  # => something like: "/home/aisaka/hello2843-8392-92849382--0"
  #
  # You can also pass an options hash. Under the hood, Tempfile creates
  # the temporary file using +File.open+. These options will be passed to
  # +File.open+. This is mostly useful for specifying encoding
  # options, e.g.:
  #
  #   Tempfile.new('hello', '/home/aisaka', :encoding => 'ascii-8bit')
  #
  #   # You can also omit the 'tmpdir' parameter:
  #   Tempfile.new('hello', :encoding => 'ascii-8bit')
  #
  # === Exceptions
  #
  # If Tempfile.new cannot find a unique filename within a limited
  # number of tries, then it will raise an exception.
  def initialize(basename, tmpdir=nil, mode: 0, **options)
    if block_given?
      warn "Tempfile.new doesn't call the given block."
    end
    @data = []
    @clean_proc = Remover.new(@data)
    ObjectSpace.define_finalizer(self, @clean_proc)

    ::Dir::Tmpname.create(basename, tmpdir, options) do |tmpname, n, opts|
      mode |= File::RDWR|File::CREAT|File::EXCL
      opts[:perm] = 0600
      @data[1] = @tmpfile = File.open(tmpname, mode, opts)
      @data[0] = @tmpname = tmpname
      @mode = mode & ~(File::CREAT|File::EXCL)
      opts.freeze
      @opts = opts
    end

    super(@tmpfile)
  end

  # Opens or reopens the file with mode "r+".
  def open
    @tmpfile.close if @tmpfile
    @tmpfile = File.open(@tmpname, @mode, @opts)
    @data[1] = @tmpfile
    __setobj__(@tmpfile)
  end

  def _close    # :nodoc:
    begin
      @tmpfile.close if @tmpfile
    ensure
      @tmpfile = nil
      @data[1] = nil if @data
    end
  end
  protected :_close

  # Closes the file. If +unlink_now+ is true, then the file will be unlinked
  # (deleted) after closing. Of course, you can choose to later call #unlink
  # if you do not unlink it now.
  #
  # If you don't explicitly unlink the temporary file, the removal
  # will be delayed until the object is finalized.
  def close(unlink_now=false)
    if unlink_now
      close!
    else
      _close
    end
  end

  # Closes and unlinks (deletes) the file. Has the same effect as called
  # <tt>close(true)</tt>.
  def close!
    _close
    unlink
  end

  # Unlinks (deletes) the file from the filesystem. One should always unlink
  # the file after using it, as is explained in the "Explicit close" good
  # practice section in the Tempfile overview:
  #
  #   file = Tempfile.new('foo')
  #   begin
  #      ...do something with file...
  #   ensure
  #      file.close
  #      file.unlink   # deletes the temp file
  #   end
  #
  # === Unlink-before-close
  #
  # On POSIX systems it's possible to unlink a file before closing it. This
  # practice is explained in detail in the Tempfile overview (section
  # "Unlink after creation"); please refer there for more information.
  #
  # However, unlink-before-close may not be supported on non-POSIX operating
  # systems. Microsoft Windows is the most notable case: unlinking a non-closed
  # file will result in an error, which this method will silently ignore. If
  # you want to practice unlink-before-close whenever possible, then you should
  # write code like this:
  #
  #   file = Tempfile.new('foo')
  #   file.unlink   # On Windows this silently fails.
  #   begin
  #      ... do something with file ...
  #   ensure
  #      file.close!   # Closes the file handle. If the file wasn't unlinked
  #                    # because #unlink failed, then this method will attempt
  #                    # to do so again.
  #   end
  def unlink
    return unless @tmpname
    begin
      File.unlink(@tmpname)
    rescue Errno::ENOENT
    rescue Errno::EACCES
      # may not be able to unlink on Windows; just ignore
      return
    end
    # remove tmpname from remover
    @data[0] = @data[1] = nil
    @tmpname = nil
    ObjectSpace.undefine_finalizer(self)
  end
  alias delete unlink

  # Returns the full path name of the temporary file.
  # This will be nil if #unlink has been called.
  def path
    @tmpname
  end

  # Returns the size of the temporary file.  As a side effect, the IO
  # buffer is flushed before determining the size.
  def size
    if @tmpfile
      @tmpfile.flush
      @tmpfile.stat.size
    elsif @tmpname
      File.size(@tmpname)
    else
      0
    end
  end
  alias length size

  # :stopdoc:
  def inspect
    if closed?
      "#<#{self.class}:#{path} (closed)>"
    else
      "#<#{self.class}:#{path}>"
    end
  end

  class Remover
    def initialize(data)
      @pid = $$
      @data = data
    end

    def call(*args)
      return if @pid != $$

      path, tmpfile = @data

      STDERR.print "removing ", path, "..." if $DEBUG

      tmpfile.close if tmpfile

      if path
        begin
          File.unlink(path)
        rescue Errno::ENOENT
        end
      end

      STDERR.print "done\n" if $DEBUG
    end
  end

  class << self
    # :startdoc:

    # Creates a new Tempfile.
    #
    # If no block is given, this is a synonym for Tempfile.new.
    #
    # If a block is given, then a Tempfile object will be constructed,
    # and the block is run with said object as argument. The Tempfile
    # object will be automatically closed after the block terminates.
    # The call returns the value of the block.
    #
    # In any case, all arguments (+*args+) will be passed to Tempfile.new.
    #
    #   Tempfile.open('foo', '/home/temp') do |f|
    #      ... do something with f ...
    #   end
    #
    #   # Equivalent:
    #   f = Tempfile.open('foo', '/home/temp')
    #   begin
    #      ... do something with f ...
    #   ensure
    #      f.close
    #   end
    def open(*args)
      tempfile = new(*args)

      if block_given?
        begin
          yield(tempfile)
        ensure
          tempfile.close
        end
      else
        tempfile
      end
    end
  end
end

# Creates a temporally file as usual File object (not Tempfile).
# It don't use finalizer and delegation.
#
# If no block is given, this is similar to Tempfile.new except
# creating File instead of Tempfile.
# The created file is not removed automatically.
# You should use File.unlink to remove it.
#
# If a block is given, then a File object will be constructed,
# and the block is invoked with the object as the argument.
# The File object will be automatically closed and
# the temporally file is removed after the block terminates.
# The call returns the value of the block.
#
# In any case, all arguments (+*args+) will be treated as Tempfile.new.
#
#   Tempfile.create('foo', '/home/temp') do |f|
#      ... do something with f ...
#   end
#
def Tempfile.create(basename, tmpdir=nil, mode: 0, **options)
  tmpfile = nil
  Dir::Tmpname.create(basename, tmpdir, options) do |tmpname, n, opts|
    mode |= File::RDWR|File::CREAT|File::EXCL
    opts[:perm] = 0600
    tmpfile = File.open(tmpname, mode, opts)
  end
  if block_given?
    begin
      yield tmpfile
    ensure
      tmpfile.close if !tmpfile.closed?
      File.unlink tmpfile
    end
  else
    tmpfile
  end
end
lib64/ruby/2.2.0/csv.rb000064400000244715150402106300010230 0ustar00# encoding: US-ASCII
# = csv.rb -- CSV Reading and Writing
#
#  Created by James Edward Gray II on 2005-10-31.
#  Copyright 2005 James Edward Gray II. You can redistribute or modify this code
#  under the terms of Ruby's license.
#
# See CSV for documentation.
#
# == Description
#
# Welcome to the new and improved CSV.
#
# This version of the CSV library began its life as FasterCSV.  FasterCSV was
# intended as a replacement to Ruby's then standard CSV library.  It was
# designed to address concerns users of that library had and it had three
# primary goals:
#
# 1.  Be significantly faster than CSV while remaining a pure Ruby library.
# 2.  Use a smaller and easier to maintain code base.  (FasterCSV eventually
#     grew larger, was also but considerably richer in features.  The parsing
#     core remains quite small.)
# 3.  Improve on the CSV interface.
#
# Obviously, the last one is subjective.  I did try to defer to the original
# interface whenever I didn't have a compelling reason to change it though, so
# hopefully this won't be too radically different.
#
# We must have met our goals because FasterCSV was renamed to CSV and replaced
# the original library as of Ruby 1.9. If you are migrating code from 1.8 or
# earlier, you may have to change your code to comply with the new interface.
#
# == What's Different From the Old CSV?
#
# I'm sure I'll miss something, but I'll try to mention most of the major
# differences I am aware of, to help others quickly get up to speed:
#
# === CSV Parsing
#
# * This parser is m17n aware.  See CSV for full details.
# * This library has a stricter parser and will throw MalformedCSVErrors on
#   problematic data.
# * This library has a less liberal idea of a line ending than CSV.  What you
#   set as the <tt>:row_sep</tt> is law.  It can auto-detect your line endings
#   though.
# * The old library returned empty lines as <tt>[nil]</tt>.  This library calls
#   them <tt>[]</tt>.
# * This library has a much faster parser.
#
# === Interface
#
# * CSV now uses Hash-style parameters to set options.
# * CSV no longer has generate_row() or parse_row().
# * The old CSV's Reader and Writer classes have been dropped.
# * CSV::open() is now more like Ruby's open().
# * CSV objects now support most standard IO methods.
# * CSV now has a new() method used to wrap objects like String and IO for
#   reading and writing.
# * CSV::generate() is different from the old method.
# * CSV no longer supports partial reads.  It works line-by-line.
# * CSV no longer allows the instance methods to override the separators for
#   performance reasons.  They must be set in the constructor.
#
# If you use this library and find yourself missing any functionality I have
# trimmed, please {let me know}[mailto:james@grayproductions.net].
#
# == Documentation
#
# See CSV for documentation.
#
# == What is CSV, really?
#
# CSV maintains a pretty strict definition of CSV taken directly from
# {the RFC}[http://www.ietf.org/rfc/rfc4180.txt].  I relax the rules in only one
# place and that is to make using this library easier.  CSV will parse all valid
# CSV.
#
# What you don't want to do is feed CSV invalid data.  Because of the way the
# CSV format works, it's common for a parser to need to read until the end of
# the file to be sure a field is invalid.  This eats a lot of time and memory.
#
# Luckily, when working with invalid CSV, Ruby's built-in methods will almost
# always be superior in every way.  For example, parsing non-quoted fields is as
# easy as:
#
#   data.split(",")
#
# == Questions and/or Comments
#
# Feel free to email {James Edward Gray II}[mailto:james@grayproductions.net]
# with any questions.

require "forwardable"
require "English"
require "date"
require "stringio"

#
# This class provides a complete interface to CSV files and data.  It offers
# tools to enable you to read and write to and from Strings or IO objects, as
# needed.
#
# == Reading
#
# === From a File
#
# ==== A Line at a Time
#
#   CSV.foreach("path/to/file.csv") do |row|
#     # use row here...
#   end
#
# ==== All at Once
#
#   arr_of_arrs = CSV.read("path/to/file.csv")
#
# === From a String
#
# ==== A Line at a Time
#
#   CSV.parse("CSV,data,String") do |row|
#     # use row here...
#   end
#
# ==== All at Once
#
#   arr_of_arrs = CSV.parse("CSV,data,String")
#
# == Writing
#
# === To a File
#
#   CSV.open("path/to/file.csv", "wb") do |csv|
#     csv << ["row", "of", "CSV", "data"]
#     csv << ["another", "row"]
#     # ...
#   end
#
# === To a String
#
#   csv_string = CSV.generate do |csv|
#     csv << ["row", "of", "CSV", "data"]
#     csv << ["another", "row"]
#     # ...
#   end
#
# == Convert a Single Line
#
#   csv_string = ["CSV", "data"].to_csv   # to CSV
#   csv_array  = "CSV,String".parse_csv   # from CSV
#
# == Shortcut Interface
#
#   CSV             { |csv_out| csv_out << %w{my data here} }  # to $stdout
#   CSV(csv = "")   { |csv_str| csv_str << %w{my data here} }  # to a String
#   CSV($stderr)    { |csv_err| csv_err << %w{my data here} }  # to $stderr
#   CSV($stdin)     { |csv_in|  csv_in.each { |row| p row } }  # from $stdin
#
# == Advanced Usage
#
# === Wrap an IO Object
#
#   csv = CSV.new(io, options)
#   # ... read (with gets() or each()) from and write (with <<) to csv here ...
#
# == CSV and Character Encodings (M17n or Multilingualization)
#
# This new CSV parser is m17n savvy.  The parser works in the Encoding of the IO
# or String object being read from or written to.  Your data is never transcoded
# (unless you ask Ruby to transcode it for you) and will literally be parsed in
# the Encoding it is in.  Thus CSV will return Arrays or Rows of Strings in the
# Encoding of your data.  This is accomplished by transcoding the parser itself
# into your Encoding.
#
# Some transcoding must take place, of course, to accomplish this multiencoding
# support.  For example, <tt>:col_sep</tt>, <tt>:row_sep</tt>, and
# <tt>:quote_char</tt> must be transcoded to match your data.  Hopefully this
# makes the entire process feel transparent, since CSV's defaults should just
# magically work for you data.  However, you can set these values manually in
# the target Encoding to avoid the translation.
#
# It's also important to note that while all of CSV's core parser is now
# Encoding agnostic, some features are not.  For example, the built-in
# converters will try to transcode data to UTF-8 before making conversions.
# Again, you can provide custom converters that are aware of your Encodings to
# avoid this translation.  It's just too hard for me to support native
# conversions in all of Ruby's Encodings.
#
# Anyway, the practical side of this is simple:  make sure IO and String objects
# passed into CSV have the proper Encoding set and everything should just work.
# CSV methods that allow you to open IO objects (CSV::foreach(), CSV::open(),
# CSV::read(), and CSV::readlines()) do allow you to specify the Encoding.
#
# One minor exception comes when generating CSV into a String with an Encoding
# that is not ASCII compatible.  There's no existing data for CSV to use to
# prepare itself and thus you will probably need to manually specify the desired
# Encoding for most of those cases.  It will try to guess using the fields in a
# row of output though, when using CSV::generate_line() or Array#to_csv().
#
# I try to point out any other Encoding issues in the documentation of methods
# as they come up.
#
# This has been tested to the best of my ability with all non-"dummy" Encodings
# Ruby ships with.  However, it is brave new code and may have some bugs.
# Please feel free to {report}[mailto:james@grayproductions.net] any issues you
# find with it.
#
class CSV
  # The version of the installed library.
  VERSION = "2.4.8".freeze

  #
  # A CSV::Row is part Array and part Hash.  It retains an order for the fields
  # and allows duplicates just as an Array would, but also allows you to access
  # fields by name just as you could if they were in a Hash.
  #
  # All rows returned by CSV will be constructed from this class, if header row
  # processing is activated.
  #
  class Row
    #
    # Construct a new CSV::Row from +headers+ and +fields+, which are expected
    # to be Arrays.  If one Array is shorter than the other, it will be padded
    # with +nil+ objects.
    #
    # The optional +header_row+ parameter can be set to +true+ to indicate, via
    # CSV::Row.header_row?() and CSV::Row.field_row?(), that this is a header
    # row.  Otherwise, the row is assumes to be a field row.
    #
    # A CSV::Row object supports the following Array methods through delegation:
    #
    # * empty?()
    # * length()
    # * size()
    #
    def initialize(headers, fields, header_row = false)
      @header_row = header_row
      headers.each { |h| h.freeze if h.is_a? String }

      # handle extra headers or fields
      @row = if headers.size >= fields.size
        headers.zip(fields)
      else
        fields.zip(headers).map { |pair| pair.reverse! }
      end
    end

    # Internal data format used to compare equality.
    attr_reader :row
    protected   :row

    ### Array Delegation ###

    extend Forwardable
    def_delegators :@row, :empty?, :length, :size

    # Returns +true+ if this is a header row.
    def header_row?
      @header_row
    end

    # Returns +true+ if this is a field row.
    def field_row?
      not header_row?
    end

    # Returns the headers of this row.
    def headers
      @row.map { |pair| pair.first }
    end

    #
    # :call-seq:
    #   field( header )
    #   field( header, offset )
    #   field( index )
    #
    # This method will return the field value by +header+ or +index+.  If a field
    # is not found, +nil+ is returned.
    #
    # When provided, +offset+ ensures that a header match occurs on or later
    # than the +offset+ index.  You can use this to find duplicate headers,
    # without resorting to hard-coding exact indices.
    #
    def field(header_or_index, minimum_index = 0)
      # locate the pair
      finder = header_or_index.is_a?(Integer) ? :[] : :assoc
      pair   = @row[minimum_index..-1].send(finder, header_or_index)

      # return the field if we have a pair
      pair.nil? ? nil : pair.last
    end
    alias_method :[], :field

    #
    # :call-seq:
    #   fetch( header )
    #   fetch( header ) { |row| ... }
    #   fetch( header, default )
    #
    # This method will fetch the field value by +header+. It has the same
    # behavior as Hash#fetch: if there is a field with the given +header+, its
    # value is returned. Otherwise, if a block is given, it is yielded the
    # +header+ and its result is returned; if a +default+ is given as the
    # second argument, it is returned; otherwise a KeyError is raised.
    #
    def fetch(header, *varargs)
      raise ArgumentError, "Too many arguments" if varargs.length > 1
      pair = @row.assoc(header)
      if pair
        pair.last
      else
        if block_given?
          yield header
        elsif varargs.empty?
          raise KeyError, "key not found: #{header}"
        else
          varargs.first
        end
      end
    end

    # Returns +true+ if there is a field with the given +header+.
    def has_key?(header)
      !!@row.assoc(header)
    end
    alias_method :include?, :has_key?
    alias_method :key?,     :has_key?
    alias_method :member?,  :has_key?

    #
    # :call-seq:
    #   []=( header, value )
    #   []=( header, offset, value )
    #   []=( index, value )
    #
    # Looks up the field by the semantics described in CSV::Row.field() and
    # assigns the +value+.
    #
    # Assigning past the end of the row with an index will set all pairs between
    # to <tt>[nil, nil]</tt>.  Assigning to an unused header appends the new
    # pair.
    #
    def []=(*args)
      value = args.pop

      if args.first.is_a? Integer
        if @row[args.first].nil?  # extending past the end with index
          @row[args.first] = [nil, value]
          @row.map! { |pair| pair.nil? ? [nil, nil] : pair }
        else                      # normal index assignment
          @row[args.first][1] = value
        end
      else
        index = index(*args)
        if index.nil?             # appending a field
          self << [args.first, value]
        else                      # normal header assignment
          @row[index][1] = value
        end
      end
    end

    #
    # :call-seq:
    #   <<( field )
    #   <<( header_and_field_array )
    #   <<( header_and_field_hash )
    #
    # If a two-element Array is provided, it is assumed to be a header and field
    # and the pair is appended.  A Hash works the same way with the key being
    # the header and the value being the field.  Anything else is assumed to be
    # a lone field which is appended with a +nil+ header.
    #
    # This method returns the row for chaining.
    #
    def <<(arg)
      if arg.is_a?(Array) and arg.size == 2  # appending a header and name
        @row << arg
      elsif arg.is_a?(Hash)                  # append header and name pairs
        arg.each { |pair| @row << pair }
      else                                   # append field value
        @row << [nil, arg]
      end

      self  # for chaining
    end

    #
    # A shortcut for appending multiple fields.  Equivalent to:
    #
    #   args.each { |arg| csv_row << arg }
    #
    # This method returns the row for chaining.
    #
    def push(*args)
      args.each { |arg| self << arg }

      self  # for chaining
    end

    #
    # :call-seq:
    #   delete( header )
    #   delete( header, offset )
    #   delete( index )
    #
    # Used to remove a pair from the row by +header+ or +index+.  The pair is
    # located as described in CSV::Row.field().  The deleted pair is returned,
    # or +nil+ if a pair could not be found.
    #
    def delete(header_or_index, minimum_index = 0)
      if header_or_index.is_a? Integer                 # by index
        @row.delete_at(header_or_index)
      elsif i = index(header_or_index, minimum_index)  # by header
        @row.delete_at(i)
      else
        [ ]
      end
    end

    #
    # The provided +block+ is passed a header and field for each pair in the row
    # and expected to return +true+ or +false+, depending on whether the pair
    # should be deleted.
    #
    # This method returns the row for chaining.
    #
    def delete_if(&block)
      @row.delete_if(&block)

      self  # for chaining
    end

    #
    # This method accepts any number of arguments which can be headers, indices,
    # Ranges of either, or two-element Arrays containing a header and offset.
    # Each argument will be replaced with a field lookup as described in
    # CSV::Row.field().
    #
    # If called with no arguments, all fields are returned.
    #
    def fields(*headers_and_or_indices)
      if headers_and_or_indices.empty?  # return all fields--no arguments
        @row.map { |pair| pair.last }
      else                              # or work like values_at()
        headers_and_or_indices.inject(Array.new) do |all, h_or_i|
          all + if h_or_i.is_a? Range
            index_begin = h_or_i.begin.is_a?(Integer) ? h_or_i.begin :
                                                        index(h_or_i.begin)
            index_end   = h_or_i.end.is_a?(Integer)   ? h_or_i.end :
                                                        index(h_or_i.end)
            new_range   = h_or_i.exclude_end? ? (index_begin...index_end) :
                                                (index_begin..index_end)
            fields.values_at(new_range)
          else
            [field(*Array(h_or_i))]
          end
        end
      end
    end
    alias_method :values_at, :fields

    #
    # :call-seq:
    #   index( header )
    #   index( header, offset )
    #
    # This method will return the index of a field with the provided +header+.
    # The +offset+ can be used to locate duplicate header names, as described in
    # CSV::Row.field().
    #
    def index(header, minimum_index = 0)
      # find the pair
      index = headers[minimum_index..-1].index(header)
      # return the index at the right offset, if we found one
      index.nil? ? nil : index + minimum_index
    end

    # Returns +true+ if +name+ is a header for this row, and +false+ otherwise.
    def header?(name)
      headers.include? name
    end
    alias_method :include?, :header?

    #
    # Returns +true+ if +data+ matches a field in this row, and +false+
    # otherwise.
    #
    def field?(data)
      fields.include? data
    end

    include Enumerable

    #
    # Yields each pair of the row as header and field tuples (much like
    # iterating over a Hash).
    #
    # Support for Enumerable.
    #
    # This method returns the row for chaining.
    #
    def each(&block)
      @row.each(&block)

      self  # for chaining
    end

    #
    # Returns +true+ if this row contains the same headers and fields in the
    # same order as +other+.
    #
    def ==(other)
      return @row == other.row if other.is_a? CSV::Row
      @row == other
    end

    #
    # Collapses the row into a simple Hash.  Be warning that this discards field
    # order and clobbers duplicate fields.
    #
    def to_hash
      # flatten just one level of the internal Array
      Hash[*@row.inject(Array.new) { |ary, pair| ary.push(*pair) }]
    end

    #
    # Returns the row as a CSV String.  Headers are not used.  Equivalent to:
    #
    #   csv_row.fields.to_csv( options )
    #
    def to_csv(options = Hash.new)
      fields.to_csv(options)
    end
    alias_method :to_s, :to_csv

    # A summary of fields, by header, in an ASCII compatible String.
    def inspect
      str = ["#<", self.class.to_s]
      each do |header, field|
        str << " " << (header.is_a?(Symbol) ? header.to_s : header.inspect) <<
               ":" << field.inspect
      end
      str << ">"
      begin
        str.join('')
      rescue  # any encoding error
        str.map do |s|
          e = Encoding::Converter.asciicompat_encoding(s.encoding)
          e ? s.encode(e) : s.force_encoding("ASCII-8BIT")
        end.join('')
      end
    end
  end

  #
  # A CSV::Table is a two-dimensional data structure for representing CSV
  # documents.  Tables allow you to work with the data by row or column,
  # manipulate the data, and even convert the results back to CSV, if needed.
  #
  # All tables returned by CSV will be constructed from this class, if header
  # row processing is activated.
  #
  class Table
    #
    # Construct a new CSV::Table from +array_of_rows+, which are expected
    # to be CSV::Row objects.  All rows are assumed to have the same headers.
    #
    # A CSV::Table object supports the following Array methods through
    # delegation:
    #
    # * empty?()
    # * length()
    # * size()
    #
    def initialize(array_of_rows)
      @table = array_of_rows
      @mode  = :col_or_row
    end

    # The current access mode for indexing and iteration.
    attr_reader :mode

    # Internal data format used to compare equality.
    attr_reader :table
    protected   :table

    ### Array Delegation ###

    extend Forwardable
    def_delegators :@table, :empty?, :length, :size

    #
    # Returns a duplicate table object, in column mode.  This is handy for
    # chaining in a single call without changing the table mode, but be aware
    # that this method can consume a fair amount of memory for bigger data sets.
    #
    # This method returns the duplicate table for chaining.  Don't chain
    # destructive methods (like []=()) this way though, since you are working
    # with a duplicate.
    #
    def by_col
      self.class.new(@table.dup).by_col!
    end

    #
    # Switches the mode of this table to column mode.  All calls to indexing and
    # iteration methods will work with columns until the mode is changed again.
    #
    # This method returns the table and is safe to chain.
    #
    def by_col!
      @mode = :col

      self
    end

    #
    # Returns a duplicate table object, in mixed mode.  This is handy for
    # chaining in a single call without changing the table mode, but be aware
    # that this method can consume a fair amount of memory for bigger data sets.
    #
    # This method returns the duplicate table for chaining.  Don't chain
    # destructive methods (like []=()) this way though, since you are working
    # with a duplicate.
    #
    def by_col_or_row
      self.class.new(@table.dup).by_col_or_row!
    end

    #
    # Switches the mode of this table to mixed mode.  All calls to indexing and
    # iteration methods will use the default intelligent indexing system until
    # the mode is changed again.  In mixed mode an index is assumed to be a row
    # reference while anything else is assumed to be column access by headers.
    #
    # This method returns the table and is safe to chain.
    #
    def by_col_or_row!
      @mode = :col_or_row

      self
    end

    #
    # Returns a duplicate table object, in row mode.  This is handy for chaining
    # in a single call without changing the table mode, but be aware that this
    # method can consume a fair amount of memory for bigger data sets.
    #
    # This method returns the duplicate table for chaining.  Don't chain
    # destructive methods (like []=()) this way though, since you are working
    # with a duplicate.
    #
    def by_row
      self.class.new(@table.dup).by_row!
    end

    #
    # Switches the mode of this table to row mode.  All calls to indexing and
    # iteration methods will work with rows until the mode is changed again.
    #
    # This method returns the table and is safe to chain.
    #
    def by_row!
      @mode = :row

      self
    end

    #
    # Returns the headers for the first row of this table (assumed to match all
    # other rows).  An empty Array is returned for empty tables.
    #
    def headers
      if @table.empty?
        Array.new
      else
        @table.first.headers
      end
    end

    #
    # In the default mixed mode, this method returns rows for index access and
    # columns for header access.  You can force the index association by first
    # calling by_col!() or by_row!().
    #
    # Columns are returned as an Array of values.  Altering that Array has no
    # effect on the table.
    #
    def [](index_or_header)
      if @mode == :row or  # by index
         (@mode == :col_or_row and index_or_header.is_a? Integer)
        @table[index_or_header]
      else                 # by header
        @table.map { |row| row[index_or_header] }
      end
    end

    #
    # In the default mixed mode, this method assigns rows for index access and
    # columns for header access.  You can force the index association by first
    # calling by_col!() or by_row!().
    #
    # Rows may be set to an Array of values (which will inherit the table's
    # headers()) or a CSV::Row.
    #
    # Columns may be set to a single value, which is copied to each row of the
    # column, or an Array of values.  Arrays of values are assigned to rows top
    # to bottom in row major order.  Excess values are ignored and if the Array
    # does not have a value for each row the extra rows will receive a +nil+.
    #
    # Assigning to an existing column or row clobbers the data.  Assigning to
    # new columns creates them at the right end of the table.
    #
    def []=(index_or_header, value)
      if @mode == :row or  # by index
         (@mode == :col_or_row and index_or_header.is_a? Integer)
        if value.is_a? Array
          @table[index_or_header] = Row.new(headers, value)
        else
          @table[index_or_header] = value
        end
      else                 # set column
        if value.is_a? Array  # multiple values
          @table.each_with_index do |row, i|
            if row.header_row?
              row[index_or_header] = index_or_header
            else
              row[index_or_header] = value[i]
            end
          end
        else                  # repeated value
          @table.each do |row|
            if row.header_row?
              row[index_or_header] = index_or_header
            else
              row[index_or_header] = value
            end
          end
        end
      end
    end

    #
    # The mixed mode default is to treat a list of indices as row access,
    # returning the rows indicated.  Anything else is considered columnar
    # access.  For columnar access, the return set has an Array for each row
    # with the values indicated by the headers in each Array.  You can force
    # column or row mode using by_col!() or by_row!().
    #
    # You cannot mix column and row access.
    #
    def values_at(*indices_or_headers)
      if @mode == :row or  # by indices
         ( @mode == :col_or_row and indices_or_headers.all? do |index|
                                      index.is_a?(Integer)         or
                                      ( index.is_a?(Range)         and
                                        index.first.is_a?(Integer) and
                                        index.last.is_a?(Integer) )
                                    end )
        @table.values_at(*indices_or_headers)
      else                 # by headers
        @table.map { |row| row.values_at(*indices_or_headers) }
      end
    end

    #
    # Adds a new row to the bottom end of this table.  You can provide an Array,
    # which will be converted to a CSV::Row (inheriting the table's headers()),
    # or a CSV::Row.
    #
    # This method returns the table for chaining.
    #
    def <<(row_or_array)
      if row_or_array.is_a? Array  # append Array
        @table << Row.new(headers, row_or_array)
      else                         # append Row
        @table << row_or_array
      end

      self  # for chaining
    end

    #
    # A shortcut for appending multiple rows.  Equivalent to:
    #
    #   rows.each { |row| self << row }
    #
    # This method returns the table for chaining.
    #
    def push(*rows)
      rows.each { |row| self << row }

      self  # for chaining
    end

    #
    # Removes and returns the indicated column or row.  In the default mixed
    # mode indices refer to rows and everything else is assumed to be a column
    # header.  Use by_col!() or by_row!() to force the lookup.
    #
    def delete(index_or_header)
      if @mode == :row or  # by index
         (@mode == :col_or_row and index_or_header.is_a? Integer)
        @table.delete_at(index_or_header)
      else                 # by header
        @table.map { |row| row.delete(index_or_header).last }
      end
    end

    #
    # Removes any column or row for which the block returns +true+.  In the
    # default mixed mode or row mode, iteration is the standard row major
    # walking of rows.  In column mode, iteration will +yield+ two element
    # tuples containing the column name and an Array of values for that column.
    #
    # This method returns the table for chaining.
    #
    def delete_if(&block)
      if @mode == :row or @mode == :col_or_row  # by index
        @table.delete_if(&block)
      else                                      # by header
        to_delete = Array.new
        headers.each_with_index do |header, i|
          to_delete << header if block[[header, self[header]]]
        end
        to_delete.map { |header| delete(header) }
      end

      self  # for chaining
    end

    include Enumerable

    #
    # In the default mixed mode or row mode, iteration is the standard row major
    # walking of rows.  In column mode, iteration will +yield+ two element
    # tuples containing the column name and an Array of values for that column.
    #
    # This method returns the table for chaining.
    #
    def each(&block)
      if @mode == :col
        headers.each { |header| block[[header, self[header]]] }
      else
        @table.each(&block)
      end

      self  # for chaining
    end

    # Returns +true+ if all rows of this table ==() +other+'s rows.
    def ==(other)
      @table == other.table
    end

    #
    # Returns the table as an Array of Arrays.  Headers will be the first row,
    # then all of the field rows will follow.
    #
    def to_a
      @table.inject([headers]) do |array, row|
        if row.header_row?
          array
        else
          array + [row.fields]
        end
      end
    end

    #
    # Returns the table as a complete CSV String.  Headers will be listed first,
    # then all of the field rows.
    #
    # This method assumes you want the Table.headers(), unless you explicitly
    # pass <tt>:write_headers => false</tt>.
    #
    def to_csv(options = Hash.new)
      wh = options.fetch(:write_headers, true)
      @table.inject(wh ? [headers.to_csv(options)] : [ ]) do |rows, row|
        if row.header_row?
          rows
        else
          rows + [row.fields.to_csv(options)]
        end
      end.join('')
    end
    alias_method :to_s, :to_csv

    # Shows the mode and size of this table in a US-ASCII String.
    def inspect
      "#<#{self.class} mode:#{@mode} row_count:#{to_a.size}>".encode("US-ASCII")
    end
  end

  # The error thrown when the parser encounters illegal CSV formatting.
  class MalformedCSVError < RuntimeError; end

  #
  # A FieldInfo Struct contains details about a field's position in the data
  # source it was read from.  CSV will pass this Struct to some blocks that make
  # decisions based on field structure.  See CSV.convert_fields() for an
  # example.
  #
  # <b><tt>index</tt></b>::  The zero-based index of the field in its row.
  # <b><tt>line</tt></b>::   The line of the data source this row is from.
  # <b><tt>header</tt></b>:: The header for the column, when available.
  #
  FieldInfo = Struct.new(:index, :line, :header)

  # A Regexp used to find and convert some common Date formats.
  DateMatcher     = / \A(?: (\w+,?\s+)?\w+\s+\d{1,2},?\s+\d{2,4} |
                            \d{4}-\d{2}-\d{2} )\z /x
  # A Regexp used to find and convert some common DateTime formats.
  DateTimeMatcher =
    / \A(?: (\w+,?\s+)?\w+\s+\d{1,2}\s+\d{1,2}:\d{1,2}:\d{1,2},?\s+\d{2,4} |
            \d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2} )\z /x

  # The encoding used by all converters.
  ConverterEncoding = Encoding.find("UTF-8")

  #
  # This Hash holds the built-in converters of CSV that can be accessed by name.
  # You can select Converters with CSV.convert() or through the +options+ Hash
  # passed to CSV::new().
  #
  # <b><tt>:integer</tt></b>::    Converts any field Integer() accepts.
  # <b><tt>:float</tt></b>::      Converts any field Float() accepts.
  # <b><tt>:numeric</tt></b>::    A combination of <tt>:integer</tt>
  #                               and <tt>:float</tt>.
  # <b><tt>:date</tt></b>::       Converts any field Date::parse() accepts.
  # <b><tt>:date_time</tt></b>::  Converts any field DateTime::parse() accepts.
  # <b><tt>:all</tt></b>::        All built-in converters.  A combination of
  #                               <tt>:date_time</tt> and <tt>:numeric</tt>.
  #
  # All built-in converters transcode field data to UTF-8 before attempting a
  # conversion.  If your data cannot be transcoded to UTF-8 the conversion will
  # fail and the field will remain unchanged.
  #
  # This Hash is intentionally left unfrozen and users should feel free to add
  # values to it that can be accessed by all CSV objects.
  #
  # To add a combo field, the value should be an Array of names.  Combo fields
  # can be nested with other combo fields.
  #
  Converters  = { integer:   lambda { |f|
                    Integer(f.encode(ConverterEncoding)) rescue f
                  },
                  float:     lambda { |f|
                    Float(f.encode(ConverterEncoding)) rescue f
                  },
                  numeric:   [:integer, :float],
                  date:      lambda { |f|
                    begin
                      e = f.encode(ConverterEncoding)
                      e =~ DateMatcher ? Date.parse(e) : f
                    rescue  # encoding conversion or date parse errors
                      f
                    end
                  },
                  date_time: lambda { |f|
                    begin
                      e = f.encode(ConverterEncoding)
                      e =~ DateTimeMatcher ? DateTime.parse(e) : f
                    rescue  # encoding conversion or date parse errors
                      f
                    end
                  },
                  all:       [:date_time, :numeric] }

  #
  # This Hash holds the built-in header converters of CSV that can be accessed
  # by name.  You can select HeaderConverters with CSV.header_convert() or
  # through the +options+ Hash passed to CSV::new().
  #
  # <b><tt>:downcase</tt></b>::  Calls downcase() on the header String.
  # <b><tt>:symbol</tt></b>::    The header String is downcased, spaces are
  #                              replaced with underscores, non-word characters
  #                              are dropped, and finally to_sym() is called.
  #
  # All built-in header converters transcode header data to UTF-8 before
  # attempting a conversion.  If your data cannot be transcoded to UTF-8 the
  # conversion will fail and the header will remain unchanged.
  #
  # This Hash is intentionally left unfrozen and users should feel free to add
  # values to it that can be accessed by all CSV objects.
  #
  # To add a combo field, the value should be an Array of names.  Combo fields
  # can be nested with other combo fields.
  #
  HeaderConverters = {
    downcase: lambda { |h| h.encode(ConverterEncoding).downcase },
    symbol:   lambda { |h|
      h.encode(ConverterEncoding).downcase.strip.gsub(/\s+/, "_").
                                                 gsub(/\W+/, "").to_sym
    }
  }

  #
  # The options used when no overrides are given by calling code.  They are:
  #
  # <b><tt>:col_sep</tt></b>::            <tt>","</tt>
  # <b><tt>:row_sep</tt></b>::            <tt>:auto</tt>
  # <b><tt>:quote_char</tt></b>::         <tt>'"'</tt>
  # <b><tt>:field_size_limit</tt></b>::   +nil+
  # <b><tt>:converters</tt></b>::         +nil+
  # <b><tt>:unconverted_fields</tt></b>:: +nil+
  # <b><tt>:headers</tt></b>::            +false+
  # <b><tt>:return_headers</tt></b>::     +false+
  # <b><tt>:header_converters</tt></b>::  +nil+
  # <b><tt>:skip_blanks</tt></b>::        +false+
  # <b><tt>:force_quotes</tt></b>::       +false+
  # <b><tt>:skip_lines</tt></b>::         +nil+
  #
  DEFAULT_OPTIONS = { col_sep:            ",",
                      row_sep:            :auto,
                      quote_char:         '"',
                      field_size_limit:   nil,
                      converters:         nil,
                      unconverted_fields: nil,
                      headers:            false,
                      return_headers:     false,
                      header_converters:  nil,
                      skip_blanks:        false,
                      force_quotes:       false,
                      skip_lines:         nil }.freeze

  #
  # This method will return a CSV instance, just like CSV::new(), but the
  # instance will be cached and returned for all future calls to this method for
  # the same +data+ object (tested by Object#object_id()) with the same
  # +options+.
  #
  # If a block is given, the instance is passed to the block and the return
  # value becomes the return value of the block.
  #
  def self.instance(data = $stdout, options = Hash.new)
    # create a _signature_ for this method call, data object and options
    sig = [data.object_id] +
          options.values_at(*DEFAULT_OPTIONS.keys.sort_by { |sym| sym.to_s })

    # fetch or create the instance for this signature
    @@instances ||= Hash.new
    instance    =   (@@instances[sig] ||= new(data, options))

    if block_given?
      yield instance  # run block, if given, returning result
    else
      instance        # or return the instance
    end
  end

  #
  # :call-seq:
  #   filter( options = Hash.new ) { |row| ... }
  #   filter( input, options = Hash.new ) { |row| ... }
  #   filter( input, output, options = Hash.new ) { |row| ... }
  #
  # This method is a convenience for building Unix-like filters for CSV data.
  # Each row is yielded to the provided block which can alter it as needed.
  # After the block returns, the row is appended to +output+ altered or not.
  #
  # The +input+ and +output+ arguments can be anything CSV::new() accepts
  # (generally String or IO objects).  If not given, they default to
  # <tt>ARGF</tt> and <tt>$stdout</tt>.
  #
  # The +options+ parameter is also filtered down to CSV::new() after some
  # clever key parsing.  Any key beginning with <tt>:in_</tt> or
  # <tt>:input_</tt> will have that leading identifier stripped and will only
  # be used in the +options+ Hash for the +input+ object.  Keys starting with
  # <tt>:out_</tt> or <tt>:output_</tt> affect only +output+.  All other keys
  # are assigned to both objects.
  #
  # The <tt>:output_row_sep</tt> +option+ defaults to
  # <tt>$INPUT_RECORD_SEPARATOR</tt> (<tt>$/</tt>).
  #
  def self.filter(*args)
    # parse options for input, output, or both
    in_options, out_options = Hash.new, {row_sep: $INPUT_RECORD_SEPARATOR}
    if args.last.is_a? Hash
      args.pop.each do |key, value|
        case key.to_s
        when /\Ain(?:put)?_(.+)\Z/
          in_options[$1.to_sym] = value
        when /\Aout(?:put)?_(.+)\Z/
          out_options[$1.to_sym] = value
        else
          in_options[key]  = value
          out_options[key] = value
        end
      end
    end
    # build input and output wrappers
    input  = new(args.shift || ARGF,    in_options)
    output = new(args.shift || $stdout, out_options)

    # read, yield, write
    input.each do |row|
      yield row
      output << row
    end
  end

  #
  # This method is intended as the primary interface for reading CSV files.  You
  # pass a +path+ and any +options+ you wish to set for the read.  Each row of
  # file will be passed to the provided +block+ in turn.
  #
  # The +options+ parameter can be anything CSV::new() understands.  This method
  # also understands an additional <tt>:encoding</tt> parameter that you can use
  # to specify the Encoding of the data in the file to be read. You must provide
  # this unless your data is in Encoding::default_external().  CSV will use this
  # to determine how to parse the data.  You may provide a second Encoding to
  # have the data transcoded as it is read.  For example,
  # <tt>encoding: "UTF-32BE:UTF-8"</tt> would read UTF-32BE data from the file
  # but transcode it to UTF-8 before CSV parses it.
  #
  def self.foreach(path, options = Hash.new, &block)
    return to_enum(__method__, path, options) unless block
    open(path, options) do |csv|
      csv.each(&block)
    end
  end

  #
  # :call-seq:
  #   generate( str, options = Hash.new ) { |csv| ... }
  #   generate( options = Hash.new ) { |csv| ... }
  #
  # This method wraps a String you provide, or an empty default String, in a
  # CSV object which is passed to the provided block.  You can use the block to
  # append CSV rows to the String and when the block exits, the final String
  # will be returned.
  #
  # Note that a passed String *is* modified by this method.  Call dup() before
  # passing if you need a new String.
  #
  # The +options+ parameter can be anything CSV::new() understands.  This method
  # understands an additional <tt>:encoding</tt> parameter when not passed a
  # String to set the base Encoding for the output.  CSV needs this hint if you
  # plan to output non-ASCII compatible data.
  #
  def self.generate(*args)
    # add a default empty String, if none was given
    if args.first.is_a? String
      io = StringIO.new(args.shift)
      io.seek(0, IO::SEEK_END)
      args.unshift(io)
    else
      encoding = args[-1][:encoding] if args.last.is_a?(Hash)
      str      = ""
      str.force_encoding(encoding) if encoding
      args.unshift(str)
    end
    csv = new(*args)  # wrap
    yield csv         # yield for appending
    csv.string        # return final String
  end

  #
  # This method is a shortcut for converting a single row (Array) into a CSV
  # String.
  #
  # The +options+ parameter can be anything CSV::new() understands.  This method
  # understands an additional <tt>:encoding</tt> parameter to set the base
  # Encoding for the output.  This method will try to guess your Encoding from
  # the first non-+nil+ field in +row+, if possible, but you may need to use
  # this parameter as a backup plan.
  #
  # The <tt>:row_sep</tt> +option+ defaults to <tt>$INPUT_RECORD_SEPARATOR</tt>
  # (<tt>$/</tt>) when calling this method.
  #
  def self.generate_line(row, options = Hash.new)
    options  = {row_sep: $INPUT_RECORD_SEPARATOR}.merge(options)
    encoding = options.delete(:encoding)
    str      = ""
    if encoding
      str.force_encoding(encoding)
    elsif field = row.find { |f| not f.nil? }
      str.force_encoding(String(field).encoding)
    end
    (new(str, options) << row).string
  end

  #
  # :call-seq:
  #   open( filename, mode = "rb", options = Hash.new ) { |faster_csv| ... }
  #   open( filename, options = Hash.new ) { |faster_csv| ... }
  #   open( filename, mode = "rb", options = Hash.new )
  #   open( filename, options = Hash.new )
  #
  # This method opens an IO object, and wraps that with CSV.  This is intended
  # as the primary interface for writing a CSV file.
  #
  # You must pass a +filename+ and may optionally add a +mode+ for Ruby's
  # open().  You may also pass an optional Hash containing any +options+
  # CSV::new() understands as the final argument.
  #
  # This method works like Ruby's open() call, in that it will pass a CSV object
  # to a provided block and close it when the block terminates, or it will
  # return the CSV object when no block is provided.  (*Note*: This is different
  # from the Ruby 1.8 CSV library which passed rows to the block.  Use
  # CSV::foreach() for that behavior.)
  #
  # You must provide a +mode+ with an embedded Encoding designator unless your
  # data is in Encoding::default_external().  CSV will check the Encoding of the
  # underlying IO object (set by the +mode+ you pass) to determine how to parse
  # the data.   You may provide a second Encoding to have the data transcoded as
  # it is read just as you can with a normal call to IO::open().  For example,
  # <tt>"rb:UTF-32BE:UTF-8"</tt> would read UTF-32BE data from the file but
  # transcode it to UTF-8 before CSV parses it.
  #
  # An opened CSV object will delegate to many IO methods for convenience.  You
  # may call:
  #
  # * binmode()
  # * binmode?()
  # * close()
  # * close_read()
  # * close_write()
  # * closed?()
  # * eof()
  # * eof?()
  # * external_encoding()
  # * fcntl()
  # * fileno()
  # * flock()
  # * flush()
  # * fsync()
  # * internal_encoding()
  # * ioctl()
  # * isatty()
  # * path()
  # * pid()
  # * pos()
  # * pos=()
  # * reopen()
  # * seek()
  # * stat()
  # * sync()
  # * sync=()
  # * tell()
  # * to_i()
  # * to_io()
  # * truncate()
  # * tty?()
  #
  def self.open(*args)
    # find the +options+ Hash
    options = if args.last.is_a? Hash then args.pop else Hash.new end
    # wrap a File opened with the remaining +args+ with no newline
    # decorator
    file_opts = {universal_newline: false}.merge(options)
    begin
      f = File.open(*args, file_opts)
    rescue ArgumentError => e
      raise unless /needs binmode/ =~ e.message and args.size == 1
      args << "rb"
      file_opts = {encoding: Encoding.default_external}.merge(file_opts)
      retry
    end
    begin
      csv = new(f, options)
    rescue Exception
      f.close
      raise
    end

    # handle blocks like Ruby's open(), not like the CSV library
    if block_given?
      begin
        yield csv
      ensure
        csv.close
      end
    else
      csv
    end
  end

  #
  # :call-seq:
  #   parse( str, options = Hash.new ) { |row| ... }
  #   parse( str, options = Hash.new )
  #
  # This method can be used to easily parse CSV out of a String.  You may either
  # provide a +block+ which will be called with each row of the String in turn,
  # or just use the returned Array of Arrays (when no +block+ is given).
  #
  # You pass your +str+ to read from, and an optional +options+ Hash containing
  # anything CSV::new() understands.
  #
  def self.parse(*args, &block)
    csv = new(*args)
    if block.nil?  # slurp contents, if no block is given
      begin
        csv.read
      ensure
        csv.close
      end
    else           # or pass each row to a provided block
      csv.each(&block)
    end
  end

  #
  # This method is a shortcut for converting a single line of a CSV String into
  # an Array.  Note that if +line+ contains multiple rows, anything beyond the
  # first row is ignored.
  #
  # The +options+ parameter can be anything CSV::new() understands.
  #
  def self.parse_line(line, options = Hash.new)
    new(line, options).shift
  end

  #
  # Use to slurp a CSV file into an Array of Arrays.  Pass the +path+ to the
  # file and any +options+ CSV::new() understands.  This method also understands
  # an additional <tt>:encoding</tt> parameter that you can use to specify the
  # Encoding of the data in the file to be read. You must provide this unless
  # your data is in Encoding::default_external().  CSV will use this to determine
  # how to parse the data.  You may provide a second Encoding to have the data
  # transcoded as it is read.  For example,
  # <tt>encoding: "UTF-32BE:UTF-8"</tt> would read UTF-32BE data from the file
  # but transcode it to UTF-8 before CSV parses it.
  #
  def self.read(path, *options)
    open(path, *options) { |csv| csv.read }
  end

  # Alias for CSV::read().
  def self.readlines(*args)
    read(*args)
  end

  #
  # A shortcut for:
  #
  #   CSV.read( path, { headers:           true,
  #                     converters:        :numeric,
  #                     header_converters: :symbol }.merge(options) )
  #
  def self.table(path, options = Hash.new)
    read( path, { headers:           true,
                  converters:        :numeric,
                  header_converters: :symbol }.merge(options) )
  end

  #
  # This constructor will wrap either a String or IO object passed in +data+ for
  # reading and/or writing.  In addition to the CSV instance methods, several IO
  # methods are delegated.  (See CSV::open() for a complete list.)  If you pass
  # a String for +data+, you can later retrieve it (after writing to it, for
  # example) with CSV.string().
  #
  # Note that a wrapped String will be positioned at at the beginning (for
  # reading).  If you want it at the end (for writing), use CSV::generate().
  # If you want any other positioning, pass a preset StringIO object instead.
  #
  # You may set any reading and/or writing preferences in the +options+ Hash.
  # Available options are:
  #
  # <b><tt>:col_sep</tt></b>::            The String placed between each field.
  #                                       This String will be transcoded into
  #                                       the data's Encoding before parsing.
  # <b><tt>:row_sep</tt></b>::            The String appended to the end of each
  #                                       row.  This can be set to the special
  #                                       <tt>:auto</tt> setting, which requests
  #                                       that CSV automatically discover this
  #                                       from the data.  Auto-discovery reads
  #                                       ahead in the data looking for the next
  #                                       <tt>"\r\n"</tt>, <tt>"\n"</tt>, or
  #                                       <tt>"\r"</tt> sequence.  A sequence
  #                                       will be selected even if it occurs in
  #                                       a quoted field, assuming that you
  #                                       would have the same line endings
  #                                       there.  If none of those sequences is
  #                                       found, +data+ is <tt>ARGF</tt>,
  #                                       <tt>STDIN</tt>, <tt>STDOUT</tt>, or
  #                                       <tt>STDERR</tt>, or the stream is only
  #                                       available for output, the default
  #                                       <tt>$INPUT_RECORD_SEPARATOR</tt>
  #                                       (<tt>$/</tt>) is used.  Obviously,
  #                                       discovery takes a little time.  Set
  #                                       manually if speed is important.  Also
  #                                       note that IO objects should be opened
  #                                       in binary mode on Windows if this
  #                                       feature will be used as the
  #                                       line-ending translation can cause
  #                                       problems with resetting the document
  #                                       position to where it was before the
  #                                       read ahead. This String will be
  #                                       transcoded into the data's Encoding
  #                                       before parsing.
  # <b><tt>:quote_char</tt></b>::         The character used to quote fields.
  #                                       This has to be a single character
  #                                       String.  This is useful for
  #                                       application that incorrectly use
  #                                       <tt>'</tt> as the quote character
  #                                       instead of the correct <tt>"</tt>.
  #                                       CSV will always consider a double
  #                                       sequence of this character to be an
  #                                       escaped quote. This String will be
  #                                       transcoded into the data's Encoding
  #                                       before parsing.
  # <b><tt>:field_size_limit</tt></b>::   This is a maximum size CSV will read
  #                                       ahead looking for the closing quote
  #                                       for a field.  (In truth, it reads to
  #                                       the first line ending beyond this
  #                                       size.)  If a quote cannot be found
  #                                       within the limit CSV will raise a
  #                                       MalformedCSVError, assuming the data
  #                                       is faulty.  You can use this limit to
  #                                       prevent what are effectively DoS
  #                                       attacks on the parser.  However, this
  #                                       limit can cause a legitimate parse to
  #                                       fail and thus is set to +nil+, or off,
  #                                       by default.
  # <b><tt>:converters</tt></b>::         An Array of names from the Converters
  #                                       Hash and/or lambdas that handle custom
  #                                       conversion.  A single converter
  #                                       doesn't have to be in an Array.  All
  #                                       built-in converters try to transcode
  #                                       fields to UTF-8 before converting.
  #                                       The conversion will fail if the data
  #                                       cannot be transcoded, leaving the
  #                                       field unchanged.
  # <b><tt>:unconverted_fields</tt></b>:: If set to +true+, an
  #                                       unconverted_fields() method will be
  #                                       added to all returned rows (Array or
  #                                       CSV::Row) that will return the fields
  #                                       as they were before conversion.  Note
  #                                       that <tt>:headers</tt> supplied by
  #                                       Array or String were not fields of the
  #                                       document and thus will have an empty
  #                                       Array attached.
  # <b><tt>:headers</tt></b>::            If set to <tt>:first_row</tt> or
  #                                       +true+, the initial row of the CSV
  #                                       file will be treated as a row of
  #                                       headers.  If set to an Array, the
  #                                       contents will be used as the headers.
  #                                       If set to a String, the String is run
  #                                       through a call of CSV::parse_line()
  #                                       with the same <tt>:col_sep</tt>,
  #                                       <tt>:row_sep</tt>, and
  #                                       <tt>:quote_char</tt> as this instance
  #                                       to produce an Array of headers.  This
  #                                       setting causes CSV#shift() to return
  #                                       rows as CSV::Row objects instead of
  #                                       Arrays and CSV#read() to return
  #                                       CSV::Table objects instead of an Array
  #                                       of Arrays.
  # <b><tt>:return_headers</tt></b>::     When +false+, header rows are silently
  #                                       swallowed.  If set to +true+, header
  #                                       rows are returned in a CSV::Row object
  #                                       with identical headers and
  #                                       fields (save that the fields do not go
  #                                       through the converters).
  # <b><tt>:write_headers</tt></b>::      When +true+ and <tt>:headers</tt> is
  #                                       set, a header row will be added to the
  #                                       output.
  # <b><tt>:header_converters</tt></b>::  Identical in functionality to
  #                                       <tt>:converters</tt> save that the
  #                                       conversions are only made to header
  #                                       rows.  All built-in converters try to
  #                                       transcode headers to UTF-8 before
  #                                       converting.  The conversion will fail
  #                                       if the data cannot be transcoded,
  #                                       leaving the header unchanged.
  # <b><tt>:skip_blanks</tt></b>::        When set to a +true+ value, CSV will
  #                                       skip over any empty rows. Note that
  #                                       this setting will not skip rows that
  #                                       contain column separators, even if
  #                                       the rows contain no actual data. If
  #                                       you want to skip rows that contain
  #                                       separators but no content, consider
  #                                       using <tt>:skip_lines</tt>, or
  #                                       inspecting fields.compact.empty? on
  #                                       each row.
  # <b><tt>:force_quotes</tt></b>::       When set to a +true+ value, CSV will
  #                                       quote all CSV fields it creates.
  # <b><tt>:skip_lines</tt></b>::         When set to an object responding to
  #                                       <tt>match</tt>, every line matching
  #                                       it is considered a comment and ignored
  #                                       during parsing. When set to a String,
  #                                       it is first converted to a Regexp.
  #                                       When set to +nil+ no line is considered
  #                                       a comment. If the passed object does
  #                                       not respond to <tt>match</tt>,
  #                                       <tt>ArgumentError</tt> is thrown.
  #
  # See CSV::DEFAULT_OPTIONS for the default settings.
  #
  # Options cannot be overridden in the instance methods for performance reasons,
  # so be sure to set what you want here.
  #
  def initialize(data, options = Hash.new)
    if data.nil?
      raise ArgumentError.new("Cannot parse nil as CSV")
    end

    # build the options for this read/write
    options = DEFAULT_OPTIONS.merge(options)

    # create the IO object we will read from
    @io       = data.is_a?(String) ? StringIO.new(data) : data
    # honor the IO encoding if we can, otherwise default to ASCII-8BIT
    @encoding = raw_encoding(nil) ||
                ( if encoding = options.delete(:internal_encoding)
                    case encoding
                    when Encoding; encoding
                    else Encoding.find(encoding)
                    end
                  end ) ||
                ( case encoding = options.delete(:encoding)
                  when Encoding; encoding
                  when /\A[^:]+/; Encoding.find($&)
                  end ) ||
                Encoding.default_internal || Encoding.default_external
    #
    # prepare for building safe regular expressions in the target encoding,
    # if we can transcode the needed characters
    #
    @re_esc   =   "\\".encode(@encoding) rescue ""
    @re_chars =   /#{%"[-\\]\\[\\.^$?*+{}()|# \r\n\t\f\v]".encode(@encoding)}/

    init_separators(options)
    init_parsers(options)
    init_converters(options)
    init_headers(options)
    init_comments(options)

    @force_encoding = !!(encoding || options.delete(:encoding))
    options.delete(:internal_encoding)
    options.delete(:external_encoding)
    unless options.empty?
      raise ArgumentError, "Unknown options:  #{options.keys.join(', ')}."
    end

    # track our own lineno since IO gets confused about line-ends is CSV fields
    @lineno = 0
  end

  #
  # The encoded <tt>:col_sep</tt> used in parsing and writing.  See CSV::new
  # for details.
  #
  attr_reader :col_sep
  #
  # The encoded <tt>:row_sep</tt> used in parsing and writing.  See CSV::new
  # for details.
  #
  attr_reader :row_sep
  #
  # The encoded <tt>:quote_char</tt> used in parsing and writing.  See CSV::new
  # for details.
  #
  attr_reader :quote_char
  # The limit for field size, if any.  See CSV::new for details.
  attr_reader :field_size_limit

  # The regex marking a line as a comment. See CSV::new for details
  attr_reader :skip_lines

  #
  # Returns the current list of converters in effect.  See CSV::new for details.
  # Built-in converters will be returned by name, while others will be returned
  # as is.
  #
  def converters
    @converters.map do |converter|
      name = Converters.rassoc(converter)
      name ? name.first : converter
    end
  end
  #
  # Returns +true+ if unconverted_fields() to parsed results.  See CSV::new
  # for details.
  #
  def unconverted_fields?() @unconverted_fields end
  #
  # Returns +nil+ if headers will not be used, +true+ if they will but have not
  # yet been read, or the actual headers after they have been read.  See
  # CSV::new for details.
  #
  def headers
    @headers || true if @use_headers
  end
  #
  # Returns +true+ if headers will be returned as a row of results.
  # See CSV::new for details.
  #
  def return_headers?()     @return_headers     end
  # Returns +true+ if headers are written in output. See CSV::new for details.
  def write_headers?()      @write_headers      end
  #
  # Returns the current list of converters in effect for headers.  See CSV::new
  # for details.  Built-in converters will be returned by name, while others
  # will be returned as is.
  #
  def header_converters
    @header_converters.map do |converter|
      name = HeaderConverters.rassoc(converter)
      name ? name.first : converter
    end
  end
  #
  # Returns +true+ blank lines are skipped by the parser. See CSV::new
  # for details.
  #
  def skip_blanks?()        @skip_blanks        end
  # Returns +true+ if all output fields are quoted. See CSV::new for details.
  def force_quotes?()       @force_quotes       end

  #
  # The Encoding CSV is parsing or writing in.  This will be the Encoding you
  # receive parsed data in and/or the Encoding data will be written in.
  #
  attr_reader :encoding

  #
  # The line number of the last row read from this file.  Fields with nested
  # line-end characters will not affect this count.
  #
  attr_reader :lineno

  ### IO and StringIO Delegation ###

  extend Forwardable
  def_delegators :@io, :binmode, :binmode?, :close, :close_read, :close_write,
                       :closed?, :eof, :eof?, :external_encoding, :fcntl,
                       :fileno, :flock, :flush, :fsync, :internal_encoding,
                       :ioctl, :isatty, :path, :pid, :pos, :pos=, :reopen,
                       :seek, :stat, :string, :sync, :sync=, :tell, :to_i,
                       :to_io, :truncate, :tty?

  # Rewinds the underlying IO object and resets CSV's lineno() counter.
  def rewind
    @headers = nil
    @lineno  = 0

    @io.rewind
  end

  ### End Delegation ###

  #
  # The primary write method for wrapped Strings and IOs, +row+ (an Array or
  # CSV::Row) is converted to CSV and appended to the data source.  When a
  # CSV::Row is passed, only the row's fields() are appended to the output.
  #
  # The data source must be open for writing.
  #
  def <<(row)
    # make sure headers have been assigned
    if header_row? and [Array, String].include? @use_headers.class
      parse_headers  # won't read data for Array or String
      self << @headers if @write_headers
    end

    # handle CSV::Row objects and Hashes
    row = case row
          when self.class::Row then row.fields
          when Hash            then @headers.map { |header| row[header] }
          else                      row
          end

    @headers =  row if header_row?
    @lineno  += 1

    output = row.map(&@quote).join(@col_sep) + @row_sep  # quote and separate
    if @io.is_a?(StringIO)             and
       output.encoding != (encoding = raw_encoding)
      if @force_encoding
        output = output.encode(encoding)
      elsif (compatible_encoding = Encoding.compatible?(@io.string, output))
        @io.set_encoding(compatible_encoding)
        @io.seek(0, IO::SEEK_END)
      end
    end
    @io << output

    self  # for chaining
  end
  alias_method :add_row, :<<
  alias_method :puts,    :<<

  #
  # :call-seq:
  #   convert( name )
  #   convert { |field| ... }
  #   convert { |field, field_info| ... }
  #
  # You can use this method to install a CSV::Converters built-in, or provide a
  # block that handles a custom conversion.
  #
  # If you provide a block that takes one argument, it will be passed the field
  # and is expected to return the converted value or the field itself.  If your
  # block takes two arguments, it will also be passed a CSV::FieldInfo Struct,
  # containing details about the field.  Again, the block should return a
  # converted field or the field itself.
  #
  def convert(name = nil, &converter)
    add_converter(:converters, self.class::Converters, name, &converter)
  end

  #
  # :call-seq:
  #   header_convert( name )
  #   header_convert { |field| ... }
  #   header_convert { |field, field_info| ... }
  #
  # Identical to CSV#convert(), but for header rows.
  #
  # Note that this method must be called before header rows are read to have any
  # effect.
  #
  def header_convert(name = nil, &converter)
    add_converter( :header_converters,
                   self.class::HeaderConverters,
                   name,
                   &converter )
  end

  include Enumerable

  #
  # Yields each row of the data source in turn.
  #
  # Support for Enumerable.
  #
  # The data source must be open for reading.
  #
  def each
    if block_given?
      while row = shift
        yield row
      end
    else
      to_enum
    end
  end

  #
  # Slurps the remaining rows and returns an Array of Arrays.
  #
  # The data source must be open for reading.
  #
  def read
    rows = to_a
    if @use_headers
      Table.new(rows)
    else
      rows
    end
  end
  alias_method :readlines, :read

  # Returns +true+ if the next row read will be a header row.
  def header_row?
    @use_headers and @headers.nil?
  end

  #
  # The primary read method for wrapped Strings and IOs, a single row is pulled
  # from the data source, parsed and returned as an Array of fields (if header
  # rows are not used) or a CSV::Row (when header rows are used).
  #
  # The data source must be open for reading.
  #
  def shift
    #########################################################################
    ### This method is purposefully kept a bit long as simple conditional ###
    ### checks are faster than numerous (expensive) method calls.         ###
    #########################################################################

    # handle headers not based on document content
    if header_row? and @return_headers and
       [Array, String].include? @use_headers.class
      if @unconverted_fields
        return add_unconverted_fields(parse_headers, Array.new)
      else
        return parse_headers
      end
    end

    #
    # it can take multiple calls to <tt>@io.gets()</tt> to get a full line,
    # because of \r and/or \n characters embedded in quoted fields
    #
    in_extended_col = false
    csv             = Array.new

    loop do
      # add another read to the line
      unless parse = @io.gets(@row_sep)
        return nil
      end

      parse.sub!(@parsers[:line_end], "")

      if csv.empty?
        #
        # I believe a blank line should be an <tt>Array.new</tt>, not Ruby 1.8
        # CSV's <tt>[nil]</tt>
        #
        if parse.empty?
          @lineno += 1
          if @skip_blanks
            next
          elsif @unconverted_fields
            return add_unconverted_fields(Array.new, Array.new)
          elsif @use_headers
            return self.class::Row.new(Array.new, Array.new)
          else
            return Array.new
          end
        end
      end

      next if @skip_lines and @skip_lines.match parse

      parts =  parse.split(@col_sep, -1)
      if parts.empty?
        if in_extended_col
          csv[-1] << @col_sep   # will be replaced with a @row_sep after the parts.each loop
        else
          csv << nil
        end
      end

      # This loop is the hot path of csv parsing. Some things may be non-dry
      # for a reason. Make sure to benchmark when refactoring.
      parts.each do |part|
        if in_extended_col
          # If we are continuing a previous column
          if part[-1] == @quote_char && part.count(@quote_char) % 2 != 0
            # extended column ends
            csv.last << part[0..-2]
            if csv.last =~ @parsers[:stray_quote]
              raise MalformedCSVError,
                    "Missing or stray quote in line #{lineno + 1}"
            end
            csv.last.gsub!(@quote_char * 2, @quote_char)
            in_extended_col = false
          else
            csv.last << part
            csv.last << @col_sep
          end
        elsif part[0] == @quote_char
          # If we are staring a new quoted column
          if part[-1] != @quote_char || part.count(@quote_char) % 2 != 0
            # start an extended column
            csv             << part[1..-1]
            csv.last        << @col_sep
            in_extended_col =  true
          else
            # regular quoted column
            csv << part[1..-2]
            if csv.last =~ @parsers[:stray_quote]
              raise MalformedCSVError,
                    "Missing or stray quote in line #{lineno + 1}"
            end
            csv.last.gsub!(@quote_char * 2, @quote_char)
          end
        elsif part =~ @parsers[:quote_or_nl]
          # Unquoted field with bad characters.
          if part =~ @parsers[:nl_or_lf]
            raise MalformedCSVError, "Unquoted fields do not allow " +
                                     "\\r or \\n (line #{lineno + 1})."
          else
            raise MalformedCSVError, "Illegal quoting in line #{lineno + 1}."
          end
        else
          # Regular ole unquoted field.
          csv << (part.empty? ? nil : part)
        end
      end

      # Replace tacked on @col_sep with @row_sep if we are still in an extended
      # column.
      csv[-1][-1] = @row_sep if in_extended_col

      if in_extended_col
        # if we're at eof?(), a quoted field wasn't closed...
        if @io.eof?
          raise MalformedCSVError,
                "Unclosed quoted field on line #{lineno + 1}."
        elsif @field_size_limit and csv.last.size >= @field_size_limit
          raise MalformedCSVError, "Field size exceeded on line #{lineno + 1}."
        end
        # otherwise, we need to loop and pull some more data to complete the row
      else
        @lineno += 1

        # save fields unconverted fields, if needed...
        unconverted = csv.dup if @unconverted_fields

        # convert fields, if needed...
        csv = convert_fields(csv) unless @use_headers or @converters.empty?
        # parse out header rows and handle CSV::Row conversions...
        csv = parse_headers(csv)  if     @use_headers

        # inject unconverted fields and accessor, if requested...
        if @unconverted_fields and not csv.respond_to? :unconverted_fields
          add_unconverted_fields(csv, unconverted)
        end

        # return the results
        break csv
      end
    end
  end
  alias_method :gets,     :shift
  alias_method :readline, :shift

  #
  # Returns a simplified description of the key CSV attributes in an
  # ASCII compatible String.
  #
  def inspect
    str = ["<#", self.class.to_s, " io_type:"]
    # show type of wrapped IO
    if    @io == $stdout then str << "$stdout"
    elsif @io == $stdin  then str << "$stdin"
    elsif @io == $stderr then str << "$stderr"
    else                      str << @io.class.to_s
    end
    # show IO.path(), if available
    if @io.respond_to?(:path) and (p = @io.path)
      str << " io_path:" << p.inspect
    end
    # show encoding
    str << " encoding:" << @encoding.name
    # show other attributes
    %w[ lineno     col_sep     row_sep
        quote_char skip_blanks ].each do |attr_name|
      if a = instance_variable_get("@#{attr_name}")
        str << " " << attr_name << ":" << a.inspect
      end
    end
    if @use_headers
      str << " headers:" << headers.inspect
    end
    str << ">"
    begin
      str.join('')
    rescue  # any encoding error
      str.map do |s|
        e = Encoding::Converter.asciicompat_encoding(s.encoding)
        e ? s.encode(e) : s.force_encoding("ASCII-8BIT")
      end.join('')
    end
  end

  private

  #
  # Stores the indicated separators for later use.
  #
  # If auto-discovery was requested for <tt>@row_sep</tt>, this method will read
  # ahead in the <tt>@io</tt> and try to find one.  +ARGF+, +STDIN+, +STDOUT+,
  # +STDERR+ and any stream open for output only with a default
  # <tt>@row_sep</tt> of <tt>$INPUT_RECORD_SEPARATOR</tt> (<tt>$/</tt>).
  #
  # This method also establishes the quoting rules used for CSV output.
  #
  def init_separators(options)
    # store the selected separators
    @col_sep    = options.delete(:col_sep).to_s.encode(@encoding)
    @row_sep    = options.delete(:row_sep)  # encode after resolving :auto
    @quote_char = options.delete(:quote_char).to_s.encode(@encoding)

    if @quote_char.length != 1
      raise ArgumentError, ":quote_char has to be a single character String"
    end

    #
    # automatically discover row separator when requested
    # (not fully encoding safe)
    #
    if @row_sep == :auto
      if [ARGF, STDIN, STDOUT, STDERR].include?(@io) or
         (defined?(Zlib) and @io.class == Zlib::GzipWriter)
        @row_sep = $INPUT_RECORD_SEPARATOR
      else
        begin
          #
          # remember where we were (pos() will raise an exception if @io is pipe
          # or not opened for reading)
          #
          saved_pos = @io.pos
          while @row_sep == :auto
            #
            # if we run out of data, it's probably a single line
            # (ensure will set default value)
            #
            break unless sample = @io.gets(nil, 1024)
            # extend sample if we're unsure of the line ending
            if sample.end_with? encode_str("\r")
              sample << (@io.gets(nil, 1) || "")
            end

            # try to find a standard separator
            if sample =~ encode_re("\r\n?|\n")
              @row_sep = $&
              break
            end
          end

          # tricky seek() clone to work around GzipReader's lack of seek()
          @io.rewind
          # reset back to the remembered position
          while saved_pos > 1024  # avoid loading a lot of data into memory
            @io.read(1024)
            saved_pos -= 1024
          end
          @io.read(saved_pos) if saved_pos.nonzero?
        rescue IOError         # not opened for reading
          # do nothing:  ensure will set default
        rescue NoMethodError   # Zlib::GzipWriter doesn't have some IO methods
          # do nothing:  ensure will set default
        rescue SystemCallError # pipe
          # do nothing:  ensure will set default
        ensure
          #
          # set default if we failed to detect
          # (stream not opened for reading, a pipe, or a single line of data)
          #
          @row_sep = $INPUT_RECORD_SEPARATOR if @row_sep == :auto
        end
      end
    end
    @row_sep = @row_sep.to_s.encode(@encoding)

    # establish quoting rules
    @force_quotes   = options.delete(:force_quotes)
    do_quote        = lambda do |field|
      field         = String(field)
      encoded_quote = @quote_char.encode(field.encoding)
      encoded_quote                                +
      field.gsub(encoded_quote, encoded_quote * 2) +
      encoded_quote
    end
    quotable_chars = encode_str("\r\n", @col_sep, @quote_char)
    @quote         = if @force_quotes
      do_quote
    else
      lambda do |field|
        if field.nil?  # represent +nil+ fields as empty unquoted fields
          ""
        else
          field = String(field)  # Stringify fields
          # represent empty fields as empty quoted fields
          if field.empty? or
             field.count(quotable_chars).nonzero?
            do_quote.call(field)
          else
            field  # unquoted field
          end
        end
      end
    end
  end

  # Pre-compiles parsers and stores them by name for access during reads.
  def init_parsers(options)
    # store the parser behaviors
    @skip_blanks      = options.delete(:skip_blanks)
    @field_size_limit = options.delete(:field_size_limit)

    # prebuild Regexps for faster parsing
    esc_row_sep = escape_re(@row_sep)
    esc_quote   = escape_re(@quote_char)
    @parsers = {
      # for detecting parse errors
      quote_or_nl:    encode_re("[", esc_quote, "\r\n]"),
      nl_or_lf:       encode_re("[\r\n]"),
      stray_quote:    encode_re( "[^", esc_quote, "]", esc_quote,
                                 "[^", esc_quote, "]" ),
      # safer than chomp!()
      line_end:       encode_re(esc_row_sep, "\\z"),
      # illegal unquoted characters
      return_newline: encode_str("\r\n")
    }
  end

  #
  # Loads any converters requested during construction.
  #
  # If +field_name+ is set <tt>:converters</tt> (the default) field converters
  # are set.  When +field_name+ is <tt>:header_converters</tt> header converters
  # are added instead.
  #
  # The <tt>:unconverted_fields</tt> option is also actived for
  # <tt>:converters</tt> calls, if requested.
  #
  def init_converters(options, field_name = :converters)
    if field_name == :converters
      @unconverted_fields = options.delete(:unconverted_fields)
    end

    instance_variable_set("@#{field_name}", Array.new)

    # find the correct method to add the converters
    convert = method(field_name.to_s.sub(/ers\Z/, ""))

    # load converters
    unless options[field_name].nil?
      # allow a single converter not wrapped in an Array
      unless options[field_name].is_a? Array
        options[field_name] = [options[field_name]]
      end
      # load each converter...
      options[field_name].each do |converter|
        if converter.is_a? Proc  # custom code block
          convert.call(&converter)
        else                     # by name
          convert.call(converter)
        end
      end
    end

    options.delete(field_name)
  end

  # Stores header row settings and loads header converters, if needed.
  def init_headers(options)
    @use_headers    = options.delete(:headers)
    @return_headers = options.delete(:return_headers)
    @write_headers  = options.delete(:write_headers)

    # headers must be delayed until shift(), in case they need a row of content
    @headers = nil

    init_converters(options, :header_converters)
  end

  # Stores the pattern of comments to skip from the provided options.
  #
  # The pattern must respond to +.match+, else ArgumentError is raised.
  # Strings are converted to a Regexp.
  #
  # See also CSV.new
  def init_comments(options)
    @skip_lines = options.delete(:skip_lines)
    @skip_lines = Regexp.new(@skip_lines) if @skip_lines.is_a? String
    if @skip_lines and not @skip_lines.respond_to?(:match)
      raise ArgumentError, ":skip_lines has to respond to matches"
    end
  end
  #
  # The actual work method for adding converters, used by both CSV.convert() and
  # CSV.header_convert().
  #
  # This method requires the +var_name+ of the instance variable to place the
  # converters in, the +const+ Hash to lookup named converters in, and the
  # normal parameters of the CSV.convert() and CSV.header_convert() methods.
  #
  def add_converter(var_name, const, name = nil, &converter)
    if name.nil?  # custom converter
      instance_variable_get("@#{var_name}") << converter
    else          # named converter
      combo = const[name]
      case combo
      when Array  # combo converter
        combo.each do |converter_name|
          add_converter(var_name, const, converter_name)
        end
      else        # individual named converter
        instance_variable_get("@#{var_name}") << combo
      end
    end
  end

  #
  # Processes +fields+ with <tt>@converters</tt>, or <tt>@header_converters</tt>
  # if +headers+ is passed as +true+, returning the converted field set.  Any
  # converter that changes the field into something other than a String halts
  # the pipeline of conversion for that field.  This is primarily an efficiency
  # shortcut.
  #
  def convert_fields(fields, headers = false)
    # see if we are converting headers or fields
    converters = headers ? @header_converters : @converters

    fields.map.with_index do |field, index|
      converters.each do |converter|
        break if field.nil?
        field = if converter.arity == 1  # straight field converter
          converter[field]
        else                             # FieldInfo converter
          header = @use_headers && !headers ? @headers[index] : nil
          converter[field, FieldInfo.new(index, lineno, header)]
        end
        break unless field.is_a? String  # short-circuit pipeline for speed
      end
      field  # final state of each field, converted or original
    end
  end

  #
  # This method is used to turn a finished +row+ into a CSV::Row.  Header rows
  # are also dealt with here, either by returning a CSV::Row with identical
  # headers and fields (save that the fields do not go through the converters)
  # or by reading past them to return a field row. Headers are also saved in
  # <tt>@headers</tt> for use in future rows.
  #
  # When +nil+, +row+ is assumed to be a header row not based on an actual row
  # of the stream.
  #
  def parse_headers(row = nil)
    if @headers.nil?                # header row
      @headers = case @use_headers  # save headers
                 # Array of headers
                 when Array then @use_headers
                 # CSV header String
                 when String
                   self.class.parse_line( @use_headers,
                                          col_sep:    @col_sep,
                                          row_sep:    @row_sep,
                                          quote_char: @quote_char )
                 # first row is headers
                 else            row
                 end

      # prepare converted and unconverted copies
      row      = @headers                       if row.nil?
      @headers = convert_fields(@headers, true)
      @headers.each { |h| h.freeze if h.is_a? String }

      if @return_headers                                     # return headers
        return self.class::Row.new(@headers, row, true)
      elsif not [Array, String].include? @use_headers.class  # skip to field row
        return shift
      end
    end

    self.class::Row.new(@headers, convert_fields(row))  # field row
  end

  #
  # This method injects an instance variable <tt>unconverted_fields</tt> into
  # +row+ and an accessor method for +row+ called unconverted_fields().  The
  # variable is set to the contents of +fields+.
  #
  def add_unconverted_fields(row, fields)
    class << row
      attr_reader :unconverted_fields
    end
    row.instance_eval { @unconverted_fields = fields }
    row
  end

  #
  # This method is an encoding safe version of Regexp::escape().  It will escape
  # any characters that would change the meaning of a regular expression in the
  # encoding of +str+.  Regular expression characters that cannot be transcoded
  # to the target encoding will be skipped and no escaping will be performed if
  # a backslash cannot be transcoded.
  #
  def escape_re(str)
    str.gsub(@re_chars) {|c| @re_esc + c}
  end

  #
  # Builds a regular expression in <tt>@encoding</tt>.  All +chunks+ will be
  # transcoded to that encoding.
  #
  def encode_re(*chunks)
    Regexp.new(encode_str(*chunks))
  end

  #
  # Builds a String in <tt>@encoding</tt>.  All +chunks+ will be transcoded to
  # that encoding.
  #
  def encode_str(*chunks)
    chunks.map { |chunk| chunk.encode(@encoding.name) }.join('')
  end

  private

  #
  # Returns the encoding of the internal IO object or the +default+ if the
  # encoding cannot be determined.
  #
  def raw_encoding(default = Encoding::ASCII_8BIT)
    if @io.respond_to? :internal_encoding
      @io.internal_encoding || @io.external_encoding
    elsif @io.is_a? StringIO
      @io.string.encoding
    elsif @io.respond_to? :encoding
      @io.encoding
    else
      default
    end
  end
end

# Passes +args+ to CSV::instance.
#
#   CSV("CSV,data").read
#     #=> [["CSV", "data"]]
#
# If a block is given, the instance is passed the block and the return value
# becomes the return value of the block.
#
#   CSV("CSV,data") { |c|
#     c.read.any? { |a| a.include?("data") }
#   } #=> true
#
#   CSV("CSV,data") { |c|
#     c.read.any? { |a| a.include?("zombies") }
#   } #=> false
#
def CSV(*args, &block)
  CSV.instance(*args, &block)
end

class Array # :nodoc:
  # Equivalent to CSV::generate_line(self, options)
  #
  #   ["CSV", "data"].to_csv
  #     #=> "CSV,data\n"
  def to_csv(options = Hash.new)
    CSV.generate_line(self, options)
  end
end

class String # :nodoc:
  # Equivalent to CSV::parse_line(self, options)
  #
  #   "CSV,data".parse_csv
  #     #=> ["CSV", "data"]
  def parse_csv(options = Hash.new)
    CSV.parse_line(self, options)
  end
end
lib64/ruby/2.2.0/rake.rb000064400000004352150402106300010346 0ustar00#--
# Copyright 2003-2010 by Jim Weirich (jim.weirich@gmail.com)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
#++

module Rake
  VERSION = '10.4.2'
end

require 'rake/version'

# :stopdoc:
# TODO: Remove in Rake 11
RAKEVERSION = Rake::VERSION
# :startdoc:

require 'rbconfig'
require 'fileutils'
require 'singleton'
require 'monitor'
require 'optparse'
require 'ostruct'

require 'rake/ext/module'
require 'rake/ext/string'
require 'rake/ext/time'

require 'rake/win32'

require 'rake/linked_list'
require 'rake/cpu_counter'
require 'rake/scope'
require 'rake/task_argument_error'
require 'rake/rule_recursion_overflow_error'
require 'rake/rake_module'
require 'rake/trace_output'
require 'rake/pseudo_status'
require 'rake/task_arguments'
require 'rake/invocation_chain'
require 'rake/task'
require 'rake/file_task'
require 'rake/file_creation_task'
require 'rake/multi_task'
require 'rake/dsl_definition'
require 'rake/file_utils_ext'
require 'rake/file_list'
require 'rake/default_loader'
require 'rake/early_time'
require 'rake/late_time'
require 'rake/name_space'
require 'rake/task_manager'
require 'rake/application'
require 'rake/backtrace'

$trace = false

# :stopdoc:
#
# Some top level Constants.

FileList = Rake::FileList
RakeFileUtils = Rake::FileUtilsExt
lib64/ruby/2.2.0/cgi.rb000064400000023431150402106300010165 0ustar00#
# cgi.rb - cgi support library
#
# Copyright (C) 2000  Network Applied Communication Laboratory, Inc.
#
# Copyright (C) 2000  Information-technology Promotion Agency, Japan
#
# Author: Wakou Aoyama <wakou@ruby-lang.org>
#
# Documentation: Wakou Aoyama (RDoc'd and embellished by William Webber)
#

# == Overview
#
# The Common Gateway Interface (CGI) is a simple protocol for passing an HTTP
# request from a web server to a standalone program, and returning the output
# to the web browser.  Basically, a CGI program is called with the parameters
# of the request passed in either in the environment (GET) or via $stdin
# (POST), and everything it prints to $stdout is returned to the client.
#
# This file holds the CGI class.  This class provides functionality for
# retrieving HTTP request parameters, managing cookies, and generating HTML
# output.
#
# The file CGI::Session provides session management functionality; see that
# class for more details.
#
# See http://www.w3.org/CGI/ for more information on the CGI protocol.
#
# == Introduction
#
# CGI is a large class, providing several categories of methods, many of which
# are mixed in from other modules.  Some of the documentation is in this class,
# some in the modules CGI::QueryExtension and CGI::HtmlExtension.  See
# CGI::Cookie for specific information on handling cookies, and cgi/session.rb
# (CGI::Session) for information on sessions.
#
# For queries, CGI provides methods to get at environmental variables,
# parameters, cookies, and multipart request data.  For responses, CGI provides
# methods for writing output and generating HTML.
#
# Read on for more details.  Examples are provided at the bottom.
#
# == Queries
#
# The CGI class dynamically mixes in parameter and cookie-parsing
# functionality,  environmental variable access, and support for
# parsing multipart requests (including uploaded files) from the
# CGI::QueryExtension module.
#
# === Environmental Variables
#
# The standard CGI environmental variables are available as read-only
# attributes of a CGI object.  The following is a list of these variables:
#
#
#   AUTH_TYPE               HTTP_HOST          REMOTE_IDENT
#   CONTENT_LENGTH          HTTP_NEGOTIATE     REMOTE_USER
#   CONTENT_TYPE            HTTP_PRAGMA        REQUEST_METHOD
#   GATEWAY_INTERFACE       HTTP_REFERER       SCRIPT_NAME
#   HTTP_ACCEPT             HTTP_USER_AGENT    SERVER_NAME
#   HTTP_ACCEPT_CHARSET     PATH_INFO          SERVER_PORT
#   HTTP_ACCEPT_ENCODING    PATH_TRANSLATED    SERVER_PROTOCOL
#   HTTP_ACCEPT_LANGUAGE    QUERY_STRING       SERVER_SOFTWARE
#   HTTP_CACHE_CONTROL      REMOTE_ADDR
#   HTTP_FROM               REMOTE_HOST
#
#
# For each of these variables, there is a corresponding attribute with the
# same name, except all lower case and without a preceding HTTP_.
# +content_length+ and +server_port+ are integers; the rest are strings.
#
# === Parameters
#
# The method #params() returns a hash of all parameters in the request as
# name/value-list pairs, where the value-list is an Array of one or more
# values.  The CGI object itself also behaves as a hash of parameter names
# to values, but only returns a single value (as a String) for each
# parameter name.
#
# For instance, suppose the request contains the parameter
# "favourite_colours" with the multiple values "blue" and "green".  The
# following behaviour would occur:
#
#   cgi.params["favourite_colours"]  # => ["blue", "green"]
#   cgi["favourite_colours"]         # => "blue"
#
# If a parameter does not exist, the former method will return an empty
# array, the latter an empty string.  The simplest way to test for existence
# of a parameter is by the #has_key? method.
#
# === Cookies
#
# HTTP Cookies are automatically parsed from the request.  They are available
# from the #cookies() accessor, which returns a hash from cookie name to
# CGI::Cookie object.
#
# === Multipart requests
#
# If a request's method is POST and its content type is multipart/form-data,
# then it may contain uploaded files.  These are stored by the QueryExtension
# module in the parameters of the request.  The parameter name is the name
# attribute of the file input field, as usual.  However, the value is not
# a string, but an IO object, either an IOString for small files, or a
# Tempfile for larger ones.  This object also has the additional singleton
# methods:
#
# #local_path():: the path of the uploaded file on the local filesystem
# #original_filename():: the name of the file on the client computer
# #content_type():: the content type of the file
#
# == Responses
#
# The CGI class provides methods for sending header and content output to
# the HTTP client, and mixes in methods for programmatic HTML generation
# from CGI::HtmlExtension and CGI::TagMaker modules.  The precise version of HTML
# to use for HTML generation is specified at object creation time.
#
# === Writing output
#
# The simplest way to send output to the HTTP client is using the #out() method.
# This takes the HTTP headers as a hash parameter, and the body content
# via a block.  The headers can be generated as a string using the #http_header()
# method.  The output stream can be written directly to using the #print()
# method.
#
# === Generating HTML
#
# Each HTML element has a corresponding method for generating that
# element as a String.  The name of this method is the same as that
# of the element, all lowercase.  The attributes of the element are
# passed in as a hash, and the body as a no-argument block that evaluates
# to a String.  The HTML generation module knows which elements are
# always empty, and silently drops any passed-in body.  It also knows
# which elements require matching closing tags and which don't.  However,
# it does not know what attributes are legal for which elements.
#
# There are also some additional HTML generation methods mixed in from
# the CGI::HtmlExtension module.  These include individual methods for the
# different types of form inputs, and methods for elements that commonly
# take particular attributes where the attributes can be directly specified
# as arguments, rather than via a hash.
#
# === Utility HTML escape and other methods like a function.
#
# There are some utility tool defined in cgi/util.rb .
# And when include, you can use utility methods like a function.
#
# == Examples of use
#
# === Get form values
#
#   require "cgi"
#   cgi = CGI.new
#   value = cgi['field_name']   # <== value string for 'field_name'
#     # if not 'field_name' included, then return "".
#   fields = cgi.keys            # <== array of field names
#
#   # returns true if form has 'field_name'
#   cgi.has_key?('field_name')
#   cgi.has_key?('field_name')
#   cgi.include?('field_name')
#
# CAUTION! cgi['field_name'] returned an Array with the old
# cgi.rb(included in Ruby 1.6)
#
# === Get form values as hash
#
#   require "cgi"
#   cgi = CGI.new
#   params = cgi.params
#
# cgi.params is a hash.
#
#   cgi.params['new_field_name'] = ["value"]  # add new param
#   cgi.params['field_name'] = ["new_value"]  # change value
#   cgi.params.delete('field_name')           # delete param
#   cgi.params.clear                          # delete all params
#
#
# === Save form values to file
#
#   require "pstore"
#   db = PStore.new("query.db")
#   db.transaction do
#     db["params"] = cgi.params
#   end
#
#
# === Restore form values from file
#
#   require "pstore"
#   db = PStore.new("query.db")
#   db.transaction do
#     cgi.params = db["params"]
#   end
#
#
# === Get multipart form values
#
#   require "cgi"
#   cgi = CGI.new
#   value = cgi['field_name']   # <== value string for 'field_name'
#   value.read                  # <== body of value
#   value.local_path            # <== path to local file of value
#   value.original_filename     # <== original filename of value
#   value.content_type          # <== content_type of value
#
# and value has StringIO or Tempfile class methods.
#
# === Get cookie values
#
#   require "cgi"
#   cgi = CGI.new
#   values = cgi.cookies['name']  # <== array of 'name'
#     # if not 'name' included, then return [].
#   names = cgi.cookies.keys      # <== array of cookie names
#
# and cgi.cookies is a hash.
#
# === Get cookie objects
#
#   require "cgi"
#   cgi = CGI.new
#   for name, cookie in cgi.cookies
#     cookie.expires = Time.now + 30
#   end
#   cgi.out("cookie" => cgi.cookies) {"string"}
#
#   cgi.cookies # { "name1" => cookie1, "name2" => cookie2, ... }
#
#   require "cgi"
#   cgi = CGI.new
#   cgi.cookies['name'].expires = Time.now + 30
#   cgi.out("cookie" => cgi.cookies['name']) {"string"}
#
# === Print http header and html string to $DEFAULT_OUTPUT ($>)
#
#   require "cgi"
#   cgi = CGI.new("html4")  # add HTML generation methods
#   cgi.out do
#     cgi.html do
#       cgi.head do
#         cgi.title { "TITLE" }
#       end +
#       cgi.body do
#         cgi.form("ACTION" => "uri") do
#           cgi.p do
#             cgi.textarea("get_text") +
#             cgi.br +
#             cgi.submit
#           end
#         end +
#         cgi.pre do
#           CGI::escapeHTML(
#             "params: #{cgi.params.inspect}\n" +
#             "cookies: #{cgi.cookies.inspect}\n" +
#             ENV.collect do |key, value|
#               "#{key} --> #{value}\n"
#             end.join("")
#           )
#         end
#       end
#     end
#   end
#
#   # add HTML generation methods
#   CGI.new("html3")    # html3.2
#   CGI.new("html4")    # html4.01 (Strict)
#   CGI.new("html4Tr")  # html4.01 Transitional
#   CGI.new("html4Fr")  # html4.01 Frameset
#   CGI.new("html5")    # html5
#
# === Some utility methods
#
#   require 'cgi/util'
#   CGI.escapeHTML('Usage: foo "bar" <baz>')
#
#
# === Some utility methods like a function
#
#   require 'cgi/util'
#   include CGI::Util
#   escapeHTML('Usage: foo "bar" <baz>')
#   h('Usage: foo "bar" <baz>') # alias
#
#

class CGI
end

require 'cgi/core'
require 'cgi/cookie'
require 'cgi/util'
CGI.autoload(:HtmlExtension, 'cgi/html')
lib64/ruby/2.2.0/ripper/sexp.rb000064400000005702150402106300011704 0ustar00#
# $Id: sexp.rb 48144 2014-10-26 03:24:18Z nobu $
#
# Copyright (c) 2004,2005 Minero Aoki
#
# This program is free software.
# You can distribute and/or modify this program under the Ruby License.
# For details of Ruby License, see ruby/COPYING.
#

require 'ripper/core'

class Ripper

  # [EXPERIMENTAL]
  # Parses +src+ and create S-exp tree.
  # Returns more readable tree rather than Ripper.sexp_raw.
  # This method is mainly for developer use.
  #
  #   require 'ripper'
  #   require 'pp'
  #
  #   pp Ripper.sexp("def m(a) nil end")
  #     #=> [:program,
  #          [[:def,
  #           [:@ident, "m", [1, 4]],
  #           [:paren, [:params, [[:@ident, "a", [1, 6]]], nil, nil, nil, nil]],
  #           [:bodystmt, [[:var_ref, [:@kw, "nil", [1, 9]]]], nil, nil, nil]]]]
  #
  def Ripper.sexp(src, filename = '-', lineno = 1)
    builder = SexpBuilderPP.new(src, filename, lineno)
    sexp = builder.parse
    sexp unless builder.error?
  end

  # [EXPERIMENTAL]
  # Parses +src+ and create S-exp tree.
  # This method is mainly for developer use.
  #
  #   require 'ripper'
  #   require 'pp'
  #
  #   pp Ripper.sexp_raw("def m(a) nil end")
  #     #=> [:program,
  #          [:stmts_add,
  #           [:stmts_new],
  #           [:def,
  #            [:@ident, "m", [1, 4]],
  #            [:paren, [:params, [[:@ident, "a", [1, 6]]], nil, nil, nil]],
  #            [:bodystmt,
  #             [:stmts_add, [:stmts_new], [:var_ref, [:@kw, "nil", [1, 9]]]],
  #             nil,
  #             nil,
  #             nil]]]]
  #
  def Ripper.sexp_raw(src, filename = '-', lineno = 1)
    builder = SexpBuilder.new(src, filename, lineno)
    sexp = builder.parse
    sexp unless builder.error?
  end

  class SexpBuilderPP < ::Ripper   #:nodoc:
    private

    PARSER_EVENT_TABLE.each do |event, arity|
      if /_new\z/ =~ event.to_s and arity == 0
        module_eval(<<-End, __FILE__, __LINE__ + 1)
          def on_#{event}
            []
          end
        End
      elsif /_add\z/ =~ event.to_s
        module_eval(<<-End, __FILE__, __LINE__ + 1)
          def on_#{event}(list, item)
            list.push item
            list
          end
        End
      else
        module_eval(<<-End, __FILE__, __LINE__ + 1)
          def on_#{event}(*args)
            [:#{event}, *args]
          end
        End
      end
    end

    SCANNER_EVENTS.each do |event|
      module_eval(<<-End, __FILE__, __LINE__ + 1)
        def on_#{event}(tok)
          [:@#{event}, tok, [lineno(), column()]]
        end
      End
    end
  end

  class SexpBuilder < ::Ripper   #:nodoc:
    private

    PARSER_EVENTS.each do |event|
      module_eval(<<-End, __FILE__, __LINE__ + 1)
        def on_#{event}(*args)
          args.unshift :#{event}
          args
        end
      End
    end

    SCANNER_EVENTS.each do |event|
      module_eval(<<-End, __FILE__, __LINE__ + 1)
        def on_#{event}(tok)
          [:@#{event}, tok, [lineno(), column()]]
        end
      End
    end
  end

end
lib64/ruby/2.2.0/ripper/lexer.rb000064400000010671150402106300012045 0ustar00#
# $Id: lexer.rb 44878 2014-02-07 12:57:44Z zzak $
#
# Copyright (c) 2004,2005 Minero Aoki
#
# This program is free software.
# You can distribute and/or modify this program under the Ruby License.
# For details of Ruby License, see ruby/COPYING.
#

require 'ripper/core'

class Ripper

  # Tokenizes the Ruby program and returns an array of strings.
  #
  #   p Ripper.tokenize("def m(a) nil end")
  #      # => ["def", " ", "m", "(", "a", ")", " ", "nil", " ", "end"]
  #
  def Ripper.tokenize(src, filename = '-', lineno = 1)
    Lexer.new(src, filename, lineno).tokenize
  end

  # Tokenizes the Ruby program and returns an array of an array,
  # which is formatted like <code>[[lineno, column], type, token]</code>.
  #
  #   require 'ripper'
  #   require 'pp'
  #
  #   pp Ripper.lex("def m(a) nil end")
  #     #=> [[[1,  0], :on_kw,     "def"],
  #          [[1,  3], :on_sp,     " "  ],
  #          [[1,  4], :on_ident,  "m"  ],
  #          [[1,  5], :on_lparen, "("  ],
  #          [[1,  6], :on_ident,  "a"  ],
  #          [[1,  7], :on_rparen, ")"  ],
  #          [[1,  8], :on_sp,     " "  ],
  #          [[1,  9], :on_kw,     "nil"],
  #          [[1, 12], :on_sp,     " "  ],
  #          [[1, 13], :on_kw,     "end"]]
  #
  def Ripper.lex(src, filename = '-', lineno = 1)
    Lexer.new(src, filename, lineno).lex
  end

  class Lexer < ::Ripper   #:nodoc: internal use only
    def tokenize
      lex().map {|pos, event, tok| tok }
    end

    def lex
      parse().sort_by {|pos, event, tok| pos }
    end

    def parse
      @buf = []
      super
      @buf
    end

    private

    SCANNER_EVENTS.each do |event|
      module_eval(<<-End, __FILE__+'/module_eval', __LINE__ + 1)
        def on_#{event}(tok)
          @buf.push [[lineno(), column()], :on_#{event}, tok]
        end
      End
    end
  end

  # [EXPERIMENTAL]
  # Parses +src+ and return a string which was matched to +pattern+.
  # +pattern+ should be described as Regexp.
  #
  #   require 'ripper'
  #
  #   p Ripper.slice('def m(a) nil end', 'ident')                   #=> "m"
  #   p Ripper.slice('def m(a) nil end', '[ident lparen rparen]+')  #=> "m(a)"
  #   p Ripper.slice("<<EOS\nstring\nEOS",
  #                  'heredoc_beg nl $(tstring_content*) heredoc_end', 1)
  #       #=> "string\n"
  #
  def Ripper.slice(src, pattern, n = 0)
    if m = token_match(src, pattern)
    then m.string(n)
    else nil
    end
  end

  def Ripper.token_match(src, pattern)   #:nodoc:
    TokenPattern.compile(pattern).match(src)
  end

  class TokenPattern   #:nodoc:

    class Error < ::StandardError # :nodoc:
    end
    class CompileError < Error # :nodoc:
    end
    class MatchError < Error # :nodoc:
    end

    class << self
      alias compile new
    end

    def initialize(pattern)
      @source = pattern
      @re = compile(pattern)
    end

    def match(str)
      match_list(::Ripper.lex(str))
    end

    def match_list(tokens)
      if m = @re.match(map_tokens(tokens))
      then MatchData.new(tokens, m)
      else nil
      end
    end

    private

    def compile(pattern)
      if m = /[^\w\s$()\[\]{}?*+\.]/.match(pattern)
        raise CompileError, "invalid char in pattern: #{m[0].inspect}"
      end
      buf = ''
      pattern.scan(/(?:\w+|\$\(|[()\[\]\{\}?*+\.]+)/) do |tok|
        case tok
        when /\w/
          buf.concat map_token(tok)
        when '$('
          buf.concat '('
        when '('
          buf.concat '(?:'
        when /[?*\[\])\.]/
          buf.concat tok
        else
          raise 'must not happen'
        end
      end
      Regexp.compile(buf)
    rescue RegexpError => err
      raise CompileError, err.message
    end

    def map_tokens(tokens)
      tokens.map {|pos,type,str| map_token(type.to_s.sub(/\Aon_/,'')) }.join
    end

    MAP = {}
    seed = ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a
    SCANNER_EVENT_TABLE.each do |ev, |
      raise CompileError, "[RIPPER FATAL] too many system token" if seed.empty?
      MAP[ev.to_s.sub(/\Aon_/,'')] = seed.shift
    end

    def map_token(tok)
      MAP[tok]  or raise CompileError, "unknown token: #{tok}"
    end

    class MatchData # :nodoc:
      def initialize(tokens, match)
        @tokens = tokens
        @match = match
      end

      def string(n = 0)
        return nil unless @match
        match(n).join
      end

      private

      def match(n = 0)
        return [] unless @match
        @tokens[@match.begin(n)...@match.end(n)].map {|pos,type,str| str }
      end
    end

  end

end
lib64/ruby/2.2.0/ripper/filter.rb000064400000003635150402106300012215 0ustar00#
# $Id: filter.rb 36954 2012-09-12 23:04:41Z zzak $
#
# Copyright (c) 2004,2005 Minero Aoki
#
# This program is free software.
# You can distribute and/or modify this program under the Ruby License.
# For details of Ruby License, see ruby/COPYING.
#

require 'ripper/lexer'

class Ripper

  # This class handles only scanner events,
  # which are dispatched in the 'right' order (same with input).
  class Filter

    # Creates a new Ripper::Filter instance, passes parameters +src+,
    # +filename+, and +lineno+ to Ripper::Lexer.new
    #
    # The lexer is for internal use only.
    def initialize(src, filename = '-', lineno = 1)
      @__lexer = Lexer.new(src, filename, lineno)
      @__line = nil
      @__col = nil
    end

    # The file name of the input.
    def filename
      @__lexer.filename
    end

    # The line number of the current token.
    # This value starts from 1.
    # This method is valid only in event handlers.
    def lineno
      @__line
    end

    # The column number of the current token.
    # This value starts from 0.
    # This method is valid only in event handlers.
    def column
      @__col
    end

    # Starts the parser.
    # +init+ is a data accumulator and is passed to the next event handler (as
    # of Enumerable#inject).
    def parse(init = nil)
      data = init
      @__lexer.lex.each do |pos, event, tok|
        @__line, @__col = *pos
        data = if respond_to?(event, true)
               then __send__(event, tok, data)
               else on_default(event, tok, data)
               end
      end
      data
    end

    private

    # This method is called when some event handler is undefined.
    # +event+ is :on_XXX, +token+ is the scanned token, and +data+ is a data
    # accumulator.
    #
    # The return value of this method is passed to the next event handler (as
    # of Enumerable#inject).
    def on_default(event, token, data)
      data
    end

  end

end
lib64/ruby/2.2.0/ripper/core.rb000064400000003063150402106300011653 0ustar00#
# $Id: core.rb 36954 2012-09-12 23:04:41Z zzak $
#
# Copyright (c) 2003-2005 Minero Aoki
#
# This program is free software.
# You can distribute and/or modify this program under the Ruby License.
# For details of Ruby License, see ruby/COPYING.
#

require 'ripper.so'

class Ripper

  # Parses the given Ruby program read from +src+.
  # +src+ must be a String or an IO or a object with a #gets method.
  def Ripper.parse(src, filename = '(ripper)', lineno = 1)
    new(src, filename, lineno).parse
  end

  # This array contains name of parser events.
  PARSER_EVENTS = PARSER_EVENT_TABLE.keys

  # This array contains name of scanner events.
  SCANNER_EVENTS = SCANNER_EVENT_TABLE.keys

  # This array contains name of all ripper events.
  EVENTS = PARSER_EVENTS + SCANNER_EVENTS

  private

  #
  # Parser Events
  #

  PARSER_EVENT_TABLE.each do |id, arity|
    module_eval(<<-End, __FILE__, __LINE__ + 1)
      def on_#{id}(#{ ('a'..'z').to_a[0, arity].join(', ') })
        #{arity == 0 ? 'nil' : 'a'}
      end
    End
  end

  # This method is called when weak warning is produced by the parser.
  # +fmt+ and +args+ is printf style.
  def warn(fmt, *args)
  end

  # This method is called when strong warning is produced by the parser.
  # +fmt+ and +args+ is printf style.
  def warning(fmt, *args)
  end

  # This method is called when the parser found syntax error.
  def compile_error(msg)
  end

  #
  # Scanner Events
  #

  SCANNER_EVENTS.each do |id|
    module_eval(<<-End, __FILE__, __LINE__ + 1)
      def on_#{id}(token)
        token
      end
    End
  end

end
lib64/ruby/2.2.0/irb.rb000064400000050034150402106300010176 0ustar00#
#   irb.rb - irb main module
#       $Release Version: 0.9.6 $
#       $Revision: 54322 $
#       by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
require "e2mmap"

require "irb/init"
require "irb/context"
require "irb/extend-command"

require "irb/ruby-lex"
require "irb/input-method"
require "irb/locale"

STDOUT.sync = true

# IRB stands for "interactive Ruby" and is a tool to interactively execute Ruby
# expressions read from the standard input.
#
# The +irb+ command from your shell will start the interpreter.
#
# == Usage
#
# Use of irb is easy if you know Ruby.
#
# When executing irb, prompts are displayed as follows. Then, enter the Ruby
# expression. An input is executed when it is syntactically complete.
#
#     $ irb
#     irb(main):001:0> 1+2
#     #=> 3
#     irb(main):002:0> class Foo
#     irb(main):003:1>  def foo
#     irb(main):004:2>    print 1
#     irb(main):005:2>  end
#     irb(main):006:1> end
#     #=> nil
#
# The Readline extension module can be used with irb. Use of Readline is
# default if it's installed.
#
# == Command line options
#
#   Usage:  irb.rb [options] [programfile] [arguments]
#     -f                Suppress read of ~/.irbrc
#     -m                Bc mode (load mathn, fraction or matrix are available)
#     -d                Set $DEBUG to true (same as `ruby -d')
#     -r load-module    Same as `ruby -r'
#     -I path           Specify $LOAD_PATH directory
#     -U                Same as `ruby -U`
#     -E enc            Same as `ruby -E`
#     -w                Same as `ruby -w`
#     -W[level=2]       Same as `ruby -W`
#     --inspect         Use `inspect' for output (default except for bc mode)
#     --noinspect       Don't use inspect for output
#     --readline        Use Readline extension module
#     --noreadline      Don't use Readline extension module
#     --prompt prompt-mode
#     --prompt-mode prompt-mode
#                       Switch prompt mode. Pre-defined prompt modes are
#                       `default', `simple', `xmp' and `inf-ruby'
#     --inf-ruby-mode   Use prompt appropriate for inf-ruby-mode on emacs.
#                       Suppresses --readline.
#     --simple-prompt   Simple prompt mode
#     --noprompt        No prompt mode
#     --tracer          Display trace for each execution of commands.
#     --back-trace-limit n
#                       Display backtrace top n and tail n. The default
#                       value is 16.
#     --irb_debug n     Set internal debug level to n (not for popular use)
#     -v, --version     Print the version of irb
#
# == Configuration
#
# IRB reads from <code>~/.irbrc</code> when it's invoked.
#
# If <code>~/.irbrc</code> doesn't exist, +irb+ will try to read in the following order:
#
# * +.irbrc+
# * +irb.rc+
# * +_irbrc+
# * <code>$irbrc</code>
#
# The following are alternatives to the command line options. To use them type
# as follows in an +irb+ session:
#
#     IRB.conf[:IRB_NAME]="irb"
#     IRB.conf[:MATH_MODE]=false
#     IRB.conf[:INSPECT_MODE]=nil
#     IRB.conf[:IRB_RC] = nil
#     IRB.conf[:BACK_TRACE_LIMIT]=16
#     IRB.conf[:USE_LOADER] = false
#     IRB.conf[:USE_READLINE] = nil
#     IRB.conf[:USE_TRACER] = false
#     IRB.conf[:IGNORE_SIGINT] = true
#     IRB.conf[:IGNORE_EOF] = false
#     IRB.conf[:PROMPT_MODE] = :DEFAULT
#     IRB.conf[:PROMPT] = {...}
#     IRB.conf[:DEBUG_LEVEL]=0
#
# === Auto indentation
#
# To enable auto-indent mode in irb, add the following to your +.irbrc+:
#
#     IRB.conf[:AUTO_INDENT] = true
#
# === Autocompletion
#
# To enable autocompletion for irb, add the following to your +.irbrc+:
#
#     require 'irb/completion'
#
# === History
#
# By default, irb disables history and will not store any commands you used.
#
# If you want to enable history, add the following to your +.irbrc+:
#
#     IRB.conf[:SAVE_HISTORY] = 1000
#
# This will now store the last 1000 commands in <code>~/.irb_history</code>.
#
# See IRB::Context#save_history= for more information.
#
# == Customizing the IRB Prompt
#
# In order to customize the prompt, you can change the following Hash:
#
#     IRB.conf[:PROMPT]
#
# This example can be used in your +.irbrc+
#
#     IRB.conf[:PROMPT][:MY_PROMPT] = { # name of prompt mode
#       :AUTO_INDENT => true,           # enables auto-indent mode
#       :PROMPT_I =>  ">> ",		# simple prompt
#       :PROMPT_S => nil,		# prompt for continuated strings
#       :PROMPT_C => nil,		# prompt for continuated statement
#       :RETURN => "    ==>%s\n"	# format to return value
#     }
#
#     IRB.conf[:PROMPT_MODE] = :MY_PROMPT
#
# Or, invoke irb with the above prompt mode by:
#
#     irb --prompt my-prompt
#
# Constants +PROMPT_I+, +PROMPT_S+ and +PROMPT_C+ specify the format. In the
# prompt specification, some special strings are available:
#
#     %N    # command name which is running
#     %m    # to_s of main object (self)
#     %M    # inspect of main object (self)
#     %l    # type of string(", ', /, ]), `]' is inner %w[...]
#     %NNi  # indent level. NN is digits and means as same as printf("%NNd").
#           # It can be ommited
#     %NNn  # line number.
#     %%    # %
#
# For instance, the default prompt mode is defined as follows:
#
#     IRB.conf[:PROMPT_MODE][:DEFAULT] = {
#       :PROMPT_I => "%N(%m):%03n:%i> ",
#       :PROMPT_S => "%N(%m):%03n:%i%l ",
#       :PROMPT_C => "%N(%m):%03n:%i* ",
#       :RETURN => "%s\n" # used to printf
#     }
#
# irb comes with a number of available modes:
#
#   # :NULL:
#   #   :PROMPT_I:
#   #   :PROMPT_N:
#   #   :PROMPT_S:
#   #   :PROMPT_C:
#   #   :RETURN: |
#   #     %s
#   # :DEFAULT:
#   #   :PROMPT_I: ! '%N(%m):%03n:%i> '
#   #   :PROMPT_N: ! '%N(%m):%03n:%i> '
#   #   :PROMPT_S: ! '%N(%m):%03n:%i%l '
#   #   :PROMPT_C: ! '%N(%m):%03n:%i* '
#   #   :RETURN: |
#   #     => %s
#   # :CLASSIC:
#   #   :PROMPT_I: ! '%N(%m):%03n:%i> '
#   #   :PROMPT_N: ! '%N(%m):%03n:%i> '
#   #   :PROMPT_S: ! '%N(%m):%03n:%i%l '
#   #   :PROMPT_C: ! '%N(%m):%03n:%i* '
#   #   :RETURN: |
#   #     %s
#   # :SIMPLE:
#   #   :PROMPT_I: ! '>> '
#   #   :PROMPT_N: ! '>> '
#   #   :PROMPT_S:
#   #   :PROMPT_C: ! '?> '
#   #   :RETURN: |
#   #     => %s
#   # :INF_RUBY:
#   #   :PROMPT_I: ! '%N(%m):%03n:%i> '
#   #   :PROMPT_N:
#   #   :PROMPT_S:
#   #   :PROMPT_C:
#   #   :RETURN: |
#   #     %s
#   #   :AUTO_INDENT: true
#   # :XMP:
#   #   :PROMPT_I:
#   #   :PROMPT_N:
#   #   :PROMPT_S:
#   #   :PROMPT_C:
#   #   :RETURN: |2
#   #         ==>%s
#
# == Restrictions
#
# Because irb evaluates input immediately after it is syntactically complete,
# the results may be slightly different than directly using Ruby.
#
# == IRB Sessions
#
# IRB has a special feature, that allows you to manage many sessions at once.
#
# You can create new sessions with Irb.irb, and get a list of current sessions
# with the +jobs+ command in the prompt.
#
# === Commands
#
# JobManager provides commands to handle the current sessions:
#
#   jobs    # List of current sessions
#   fg      # Switches to the session of the given number
#   kill    # Kills the session with the given number
#
# The +exit+ command, or ::irb_exit, will quit the current session and call any
# exit hooks with IRB.irb_at_exit.
#
# A few commands for loading files within the session are also available:
#
# +source+::
#   Loads a given file in the current session and displays the source lines,
#   see IrbLoader#source_file
# +irb_load+::
#   Loads the given file similarly to Kernel#load, see IrbLoader#irb_load
# +irb_require+::
#   Loads the given file similarly to Kernel#require
#
# === Configuration
#
# The command line options, or IRB.conf, specify the default behavior of
# Irb.irb.
#
# On the other hand, each conf in IRB@Command+line+options is used to
# individually configure IRB.irb.
#
# If a proc is set for IRB.conf[:IRB_RC], its will be invoked after execution
# of that proc with the context of the current session as its argument. Each
# session can be configured using this mechanism.
#
# === Session variables
#
# There are a few variables in every Irb session that can come in handy:
#
# <code>_</code>::
#   The value command executed, as a local variable
# <code>__</code>::
#   The history of evaluated commands
# <code>__[line_no]</code>::
#   Returns the evaluation value at the given line number, +line_no+.
#   If +line_no+ is a negative, the return value +line_no+ many lines before
#   the most recent return value.
#
# === Example using IRB Sessions
#
#   # invoke a new session
#   irb(main):001:0> irb
#   # list open sessions
#   irb.1(main):001:0> jobs
#     #0->irb on main (#<Thread:0x400fb7e4> : stop)
#     #1->irb#1 on main (#<Thread:0x40125d64> : running)
#
#   # change the active session
#   irb.1(main):002:0> fg 0
#   # define class Foo in top-level session
#   irb(main):002:0> class Foo;end
#   # invoke a new session with the context of Foo
#   irb(main):003:0> irb Foo
#   # define Foo#foo
#   irb.2(Foo):001:0> def foo
#   irb.2(Foo):002:1>   print 1
#   irb.2(Foo):003:1> end
#
#   # change the active session
#   irb.2(Foo):004:0> fg 0
#   # list open sessions
#   irb(main):004:0> jobs
#     #0->irb on main (#<Thread:0x400fb7e4> : running)
#     #1->irb#1 on main (#<Thread:0x40125d64> : stop)
#     #2->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
#   # check if Foo#foo is available
#   irb(main):005:0> Foo.instance_methods #=> [:foo, ...]
#
#   # change the active sesssion
#   irb(main):006:0> fg 2
#   # define Foo#bar in the context of Foo
#   irb.2(Foo):005:0> def bar
#   irb.2(Foo):006:1>  print "bar"
#   irb.2(Foo):007:1> end
#   irb.2(Foo):010:0>  Foo.instance_methods #=> [:bar, :foo, ...]
#
#   # change the active session
#   irb.2(Foo):011:0> fg 0
#   irb(main):007:0> f = Foo.new  #=> #<Foo:0x4010af3c>
#   # invoke a new session with the context of f (instance of Foo)
#   irb(main):008:0> irb f
#   # list open sessions
#   irb.3(<Foo:0x4010af3c>):001:0> jobs
#     #0->irb on main (#<Thread:0x400fb7e4> : stop)
#     #1->irb#1 on main (#<Thread:0x40125d64> : stop)
#     #2->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
#     #3->irb#3 on #<Foo:0x4010af3c> (#<Thread:0x4010a1e0> : running)
#   # evaluate f.foo
#   irb.3(<Foo:0x4010af3c>):002:0> foo #=> 1 => nil
#   # evaluate f.bar
#   irb.3(<Foo:0x4010af3c>):003:0> bar #=> bar => nil
#   # kill jobs 1, 2, and 3
#   irb.3(<Foo:0x4010af3c>):004:0> kill 1, 2, 3
#   # list open sesssions, should only include main session
#   irb(main):009:0> jobs
#     #0->irb on main (#<Thread:0x400fb7e4> : running)
#   # quit irb
#   irb(main):010:0> exit
module IRB

  # An exception raised by IRB.irb_abort
  class Abort < Exception;end

  @CONF = {}


  # Displays current configuration.
  #
  # Modifing the configuration is achieved by sending a message to IRB.conf.
  #
  # See IRB@Configuration for more information.
  def IRB.conf
    @CONF
  end

  # Returns the current version of IRB, including release version and last
  # updated date.
  def IRB.version
    if v = @CONF[:VERSION] then return v end

    require "irb/version"
    rv = @RELEASE_VERSION.sub(/\.0/, "")
    @CONF[:VERSION] = format("irb %s(%s)", rv, @LAST_UPDATE_DATE)
  end

  # The current IRB::Context of the session, see IRB.conf
  #
  #   irb
  #   irb(main):001:0> IRB.CurrentContext.irb_name = "foo"
  #   foo(main):002:0> IRB.conf[:MAIN_CONTEXT].irb_name #=> "foo"
  def IRB.CurrentContext
    IRB.conf[:MAIN_CONTEXT]
  end

  # Initializes IRB and creates a new Irb.irb object at the +TOPLEVEL_BINDING+
  def IRB.start(ap_path = nil)
    $0 = File::basename(ap_path, ".rb") if ap_path

    IRB.setup(ap_path)

    if @CONF[:SCRIPT]
      irb = Irb.new(nil, @CONF[:SCRIPT])
    else
      irb = Irb.new
    end

    @CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC]
    @CONF[:MAIN_CONTEXT] = irb.context

    trap("SIGINT") do
      irb.signal_handle
    end

    begin
      catch(:IRB_EXIT) do
        irb.eval_input
      end
    ensure
      irb_at_exit
    end
  end

  # Calls each event hook of IRB.conf[:AT_EXIT] when the current session quits.
  def IRB.irb_at_exit
    @CONF[:AT_EXIT].each{|hook| hook.call}
  end

  # Quits irb
  def IRB.irb_exit(irb, ret)
    throw :IRB_EXIT, ret
  end

  # Aborts then interrupts irb.
  #
  # Will raise an Abort exception, or the given +exception+.
  def IRB.irb_abort(irb, exception = Abort)
    if defined? Thread
      irb.context.thread.raise exception, "abort then interrupt!"
    else
      raise exception, "abort then interrupt!"
    end
  end

  class Irb
    # Creates a new irb session
    def initialize(workspace = nil, input_method = nil, output_method = nil)
      @context = Context.new(self, workspace, input_method, output_method)
      @context.main.extend ExtendCommandBundle
      @signal_status = :IN_IRB

      @scanner = RubyLex.new
      @scanner.exception_on_syntax_error = false
    end
    # Returns the current context of this irb session
    attr_reader :context
    # The lexer used by this irb session
    attr_accessor :scanner

    # Evaluates input for this session.
    def eval_input
      @scanner.set_prompt do
        |ltype, indent, continue, line_no|
        if ltype
          f = @context.prompt_s
        elsif continue
          f = @context.prompt_c
        elsif indent > 0
          f = @context.prompt_n
        else
          f = @context.prompt_i
        end
        f = "" unless f
        if @context.prompting?
          @context.io.prompt = p = prompt(f, ltype, indent, line_no)
        else
          @context.io.prompt = p = ""
        end
        if @context.auto_indent_mode
          unless ltype
            ind = prompt(@context.prompt_i, ltype, indent, line_no)[/.*\z/].size +
              indent * 2 - p.size
            ind += 2 if continue
            @context.io.prompt = p + " " * ind if ind > 0
          end
        end
      end

      @scanner.set_input(@context.io) do
        signal_status(:IN_INPUT) do
          if l = @context.io.gets
            print l if @context.verbose?
          else
            if @context.ignore_eof? and @context.io.readable_after_eof?
              l = "\n"
              if @context.verbose?
                printf "Use \"exit\" to leave %s\n", @context.ap_name
              end
            else
              print "\n"
            end
          end
          l
        end
      end

      @scanner.each_top_level_statement do |line, line_no|
        signal_status(:IN_EVAL) do
          begin
            line.untaint
            @context.evaluate(line, line_no)
            output_value if @context.echo?
            exc = nil
          rescue Interrupt => exc
          rescue SystemExit, SignalException
            raise
          rescue Exception => exc
          end
          if exc
            print exc.class, ": ", exc, "\n"
            if exc.backtrace && exc.backtrace[0] =~ /irb(2)?(\/.*|-.*|\.rb)?:/ && exc.class.to_s !~ /^IRB/ &&
                !(SyntaxError === exc)
              irb_bug = true
            else
              irb_bug = false
            end

            messages = []
            lasts = []
            levels = 0
            if exc.backtrace
              for m in exc.backtrace
                m = @context.workspace.filter_backtrace(m) unless irb_bug
                if m
                  if messages.size < @context.back_trace_limit
                    messages.push "\tfrom "+m
                  else
                    lasts.push "\tfrom "+m
                    if lasts.size > @context.back_trace_limit
                      lasts.shift
                      levels += 1
                    end
                  end
                end
              end
            end
            print messages.join("\n"), "\n"
            unless lasts.empty?
              printf "... %d levels...\n", levels if levels > 0
              print lasts.join("\n"), "\n"
            end
            print "Maybe IRB bug!\n" if irb_bug
          end
          if $SAFE > 2
            abort "Error: irb does not work for $SAFE level higher than 2"
          end
        end
      end
    end

    # Evaluates the given block using the given +path+ as the Context#irb_path
    # and +name+ as the Context#irb_name.
    #
    # Used by the irb command +source+, see IRB@IRB+Sessions for more
    # information.
    def suspend_name(path = nil, name = nil)
      @context.irb_path, back_path = path, @context.irb_path if path
      @context.irb_name, back_name = name, @context.irb_name if name
      begin
        yield back_path, back_name
      ensure
        @context.irb_path = back_path if path
        @context.irb_name = back_name if name
      end
    end

    # Evaluates the given block using the given +workspace+ as the
    # Context#workspace.
    #
    # Used by the irb command +irb_load+, see IRB@IRB+Sessions for more
    # information.
    def suspend_workspace(workspace)
      @context.workspace, back_workspace = workspace, @context.workspace
      begin
        yield back_workspace
      ensure
        @context.workspace = back_workspace
      end
    end

    # Evaluates the given block using the given +input_method+ as the
    # Context#io.
    #
    # Used by the irb commands +source+ and +irb_load+, see IRB@IRB+Sessions
    # for more information.
    def suspend_input_method(input_method)
      back_io = @context.io
      @context.instance_eval{@io = input_method}
      begin
        yield back_io
      ensure
        @context.instance_eval{@io = back_io}
      end
    end

    # Evaluates the given block using the given +context+ as the Context.
    def suspend_context(context)
      @context, back_context = context, @context
      begin
        yield back_context
      ensure
        @context = back_context
      end
    end

    # Handler for the signal SIGINT, see Kernel#trap for more information.
    def signal_handle
      unless @context.ignore_sigint?
        print "\nabort!\n" if @context.verbose?
        exit
      end

      case @signal_status
      when :IN_INPUT
        print "^C\n"
        raise RubyLex::TerminateLineInput
      when :IN_EVAL
        IRB.irb_abort(self)
      when :IN_LOAD
        IRB.irb_abort(self, LoadAbort)
      when :IN_IRB
        # ignore
      else
        # ignore other cases as well
      end
    end

    # Evaluates the given block using the given +status+.
    def signal_status(status)
      return yield if @signal_status == :IN_LOAD

      signal_status_back = @signal_status
      @signal_status = status
      begin
        yield
      ensure
        @signal_status = signal_status_back
      end
    end

    def prompt(prompt, ltype, indent, line_no) # :nodoc:
      p = prompt.dup
      p.gsub!(/%([0-9]+)?([a-zA-Z])/) do
        case $2
        when "N"
          @context.irb_name
        when "m"
          @context.main.to_s
        when "M"
          @context.main.inspect
        when "l"
          ltype
        when "i"
          if $1
            format("%" + $1 + "d", indent)
          else
            indent.to_s
          end
        when "n"
          if $1
            format("%" + $1 + "d", line_no)
          else
            line_no.to_s
          end
        when "%"
          "%"
        end
      end
      p
    end

    def output_value # :nodoc:
      printf @context.return_format, @context.inspect_last_value
    end

    # Outputs the local variables to this current session, including
    # #signal_status and #context, using IRB::Locale.
    def inspect
      ary = []
      for iv in instance_variables
        case (iv = iv.to_s)
        when "@signal_status"
          ary.push format("%s=:%s", iv, @signal_status.id2name)
        when "@context"
          ary.push format("%s=%s", iv, eval(iv).__to_s__)
        else
          ary.push format("%s=%s", iv, eval(iv))
        end
      end
      format("#<%s: %s>", self.class, ary.join(", "))
    end
  end

  def @CONF.inspect
    IRB.version unless self[:VERSION]

    array = []
    for k, v in sort{|a1, a2| a1[0].id2name <=> a2[0].id2name}
      case k
      when :MAIN_CONTEXT, :__TMP__EHV__
        array.push format("CONF[:%s]=...myself...", k.id2name)
      when :PROMPT
        s = v.collect{
          |kk, vv|
          ss = vv.collect{|kkk, vvv| ":#{kkk.id2name}=>#{vvv.inspect}"}
          format(":%s=>{%s}", kk.id2name, ss.join(", "))
        }
        array.push format("CONF[:%s]={%s}", k.id2name, s.join(", "))
      else
        array.push format("CONF[:%s]=%s", k.id2name, v.inspect)
      end
    end
    array.join("\n")
  end
end
lib64/ruby/2.2.0/resolv-replace.rb000064400000003356150402106300012352 0ustar00require 'socket'
require 'resolv'

class << IPSocket
  # :stopdoc:
  alias original_resolv_getaddress getaddress
  # :startdoc:
  def getaddress(host)
    begin
      return Resolv.getaddress(host).to_s
    rescue Resolv::ResolvError
      raise SocketError, "Hostname not known: #{host}"
    end
  end
end

class TCPSocket < IPSocket
  # :stopdoc:
  alias original_resolv_initialize initialize
  # :startdoc:
  def initialize(host, serv, *rest)
    rest[0] = IPSocket.getaddress(rest[0]) if rest[0]
    original_resolv_initialize(IPSocket.getaddress(host), serv, *rest)
  end
end

class UDPSocket < IPSocket
  # :stopdoc:
  alias original_resolv_bind bind
  # :startdoc:
  def bind(host, port)
    host = IPSocket.getaddress(host) if host != ""
    original_resolv_bind(host, port)
  end

  # :stopdoc:
  alias original_resolv_connect connect
  # :startdoc:
  def connect(host, port)
    original_resolv_connect(IPSocket.getaddress(host), port)
  end

  # :stopdoc:
  alias original_resolv_send send
  # :startdoc:
  def send(mesg, flags, *rest)
    if rest.length == 2
      host, port = rest
      begin
        addrs = Resolv.getaddresses(host)
      rescue Resolv::ResolvError
        raise SocketError, "Hostname not known: #{host}"
      end
      addrs[0...-1].each {|addr|
        begin
          return original_resolv_send(mesg, flags, addr, port)
        rescue SystemCallError
        end
      }
      original_resolv_send(mesg, flags, addrs[-1], port)
    else
      original_resolv_send(mesg, flags, *rest)
    end
  end
end

class SOCKSSocket < TCPSocket
  # :stopdoc:
  alias original_resolv_initialize initialize
  # :startdoc:
  def initialize(host, serv)
    original_resolv_initialize(IPSocket.getaddress(host), port)
  end
end if defined? SOCKSSocket
lib64/ruby/2.2.0/mutex_m.rb000064400000004002150402106300011072 0ustar00#
#   mutex_m.rb -
#       $Release Version: 3.0$
#       $Revision: 1.7 $
#       Original from mutex.rb
#       by Keiju ISHITSUKA(keiju@ishitsuka.com)
#       modified by matz
#       patched by akira yamada
#
# --


require 'thread'

# = mutex_m.rb
#
# When 'mutex_m' is required, any object that extends or includes Mutex_m will
# be treated like a Mutex.
#
# Start by requiring the standard library Mutex_m:
#
#   require "mutex_m.rb"
#
# From here you can extend an object with Mutex instance methods:
#
#   obj = Object.new
#   obj.extend Mutex_m
#
# Or mixin Mutex_m into your module to your class inherit Mutex instance
# methods.
#
#   class Foo
#     include Mutex_m
#     # ...
#   end
#   obj = Foo.new
#   # this obj can be handled like Mutex
#
module Mutex_m
  def Mutex_m.define_aliases(cl) # :nodoc:
    cl.module_eval %q{
      alias locked? mu_locked?
      alias lock mu_lock
      alias unlock mu_unlock
      alias try_lock mu_try_lock
      alias synchronize mu_synchronize
    }
  end

  def Mutex_m.append_features(cl) # :nodoc:
    super
    define_aliases(cl) unless cl.instance_of?(Module)
  end

  def Mutex_m.extend_object(obj) # :nodoc:
    super
    obj.mu_extended
  end

  def mu_extended # :nodoc:
    unless (defined? locked? and
            defined? lock and
            defined? unlock and
            defined? try_lock and
            defined? synchronize)
      Mutex_m.define_aliases(singleton_class)
    end
    mu_initialize
  end

  # See Mutex#synchronize
  def mu_synchronize(&block)
    @_mutex.synchronize(&block)
  end

  # See Mutex#locked?
  def mu_locked?
    @_mutex.locked?
  end

  # See Mutex#try_lock
  def mu_try_lock
    @_mutex.try_lock
  end

  # See Mutex#lock
  def mu_lock
    @_mutex.lock
  end

  # See Mutex#unlock
  def mu_unlock
    @_mutex.unlock
  end

  # See Mutex#sleep
  def sleep(timeout = nil)
    @_mutex.sleep(timeout)
  end

  private

  def mu_initialize # :nodoc:
    @_mutex = Mutex.new
  end

  def initialize(*args) # :nodoc:
    mu_initialize
    super
  end
end
lib64/ruby/2.2.0/rss/dublincore.rb000064400000010430150402106300012353 0ustar00require "rss/rss"

module RSS
  # The prefix for the Dublin Core XML namespace.
  DC_PREFIX = 'dc'
  # The URI of the Dublin Core specification.
  DC_URI = "http://purl.org/dc/elements/1.1/"

  module BaseDublinCoreModel
    def append_features(klass)
      super

      return if klass.instance_of?(Module)
      DublinCoreModel::ELEMENT_NAME_INFOS.each do |name, plural_name|
        plural = plural_name || "#{name}s"
        full_name = "#{DC_PREFIX}_#{name}"
        full_plural_name = "#{DC_PREFIX}_#{plural}"
        klass_name = "DublinCore#{Utils.to_class_name(name)}"
        klass.install_must_call_validator(DC_PREFIX, DC_URI)
        klass.install_have_children_element(name, DC_URI, "*",
                                            full_name, full_plural_name)
        klass.module_eval(<<-EOC, *get_file_and_line_from_caller(0))
          remove_method :#{full_name}
          remove_method :#{full_name}=
          remove_method :set_#{full_name}

          def #{full_name}
            @#{full_name}.first and @#{full_name}.first.value
          end

          def #{full_name}=(new_value)
            @#{full_name}[0] = Utils.new_with_value_if_need(#{klass_name}, new_value)
          end
          alias set_#{full_name} #{full_name}=
        EOC
      end
      klass.module_eval(<<-EOC, *get_file_and_line_from_caller(0))
        if method_defined?(:date)
          alias date_without_#{DC_PREFIX}_date= date=

          def date=(value)
            self.date_without_#{DC_PREFIX}_date = value
            self.#{DC_PREFIX}_date = value
          end
        else
          alias date #{DC_PREFIX}_date
          alias date= #{DC_PREFIX}_date=
        end

        # For backward compatibility
        alias #{DC_PREFIX}_rightses #{DC_PREFIX}_rights_list
      EOC
    end
  end

  module DublinCoreModel

    extend BaseModel
    extend BaseDublinCoreModel

    TEXT_ELEMENTS = {
      "title" => nil,
      "description" => nil,
      "creator" => nil,
      "subject" => nil,
      "publisher" => nil,
      "contributor" => nil,
      "type" => nil,
      "format" => nil,
      "identifier" => nil,
      "source" => nil,
      "language" => nil,
      "relation" => nil,
      "coverage" => nil,
      "rights" => "rights_list"
    }

    DATE_ELEMENTS = {
      "date" => "w3cdtf",
    }

    ELEMENT_NAME_INFOS = DublinCoreModel::TEXT_ELEMENTS.to_a
    DublinCoreModel::DATE_ELEMENTS.each do |name, |
      ELEMENT_NAME_INFOS << [name, nil]
    end

    ELEMENTS = TEXT_ELEMENTS.keys + DATE_ELEMENTS.keys

    ELEMENTS.each do |name, plural_name|
      module_eval(<<-EOC, *get_file_and_line_from_caller(0))
        class DublinCore#{Utils.to_class_name(name)} < Element
          include RSS10

          content_setup

          class << self
            def required_prefix
              DC_PREFIX
            end

            def required_uri
              DC_URI
            end
          end

          @tag_name = #{name.dump}

          alias_method(:value, :content)
          alias_method(:value=, :content=)

          def initialize(*args)
            if Utils.element_initialize_arguments?(args)
              super
            else
              super()
              self.content = args[0]
            end
          end

          def full_name
            tag_name_with_prefix(DC_PREFIX)
          end

          def maker_target(target)
            target.new_#{name}
          end

          def setup_maker_attributes(#{name})
            #{name}.content = content
          end
        end
      EOC
    end

    DATE_ELEMENTS.each do |name, type|
      tag_name = "#{DC_PREFIX}:#{name}"
      module_eval(<<-EOC, *get_file_and_line_from_caller(0))
        class DublinCore#{Utils.to_class_name(name)} < Element
          remove_method(:content=)
          remove_method(:value=)

          date_writer("content", #{type.dump}, #{tag_name.dump})

          alias_method(:value=, :content=)
        end
      EOC
    end
  end

  # For backward compatibility
  DublincoreModel = DublinCoreModel

  DublinCoreModel::ELEMENTS.each do |name|
    class_name = Utils.to_class_name(name)
    BaseListener.install_class_name(DC_URI, name, "DublinCore#{class_name}")
  end

  DublinCoreModel::ELEMENTS.collect! {|name| "#{DC_PREFIX}_#{name}"}
end

require 'rss/dublincore/1.0'
require 'rss/dublincore/2.0'
require 'rss/dublincore/atom'
lib64/ruby/2.2.0/rss/image.rb000064400000011415150402106300011313 0ustar00require 'rss/1.0'
require 'rss/dublincore'

module RSS

  # The prefix for the Image XML namespace.
  IMAGE_PREFIX = 'image'
  # The URI for the Image specification.
  IMAGE_URI = 'http://purl.org/rss/1.0/modules/image/'

  RDF.install_ns(IMAGE_PREFIX, IMAGE_URI)

  # This constant holds strings which contain the names of
  # image elements, with the appropriate prefix.
  IMAGE_ELEMENTS = []

  %w(item favicon).each do |name|
    class_name = Utils.to_class_name(name)
    BaseListener.install_class_name(IMAGE_URI, name, "Image#{class_name}")
    IMAGE_ELEMENTS << "#{IMAGE_PREFIX}_#{name}"
  end

  module ImageModelUtils
    def validate_one_tag_name(ignore_unknown_element, name, tags)
      if !ignore_unknown_element
        invalid = tags.find {|tag| tag != name}
        raise UnknownTagError.new(invalid, IMAGE_URI) if invalid
      end
      raise TooMuchTagError.new(name, tag_name) if tags.size > 1
    end
  end

  module ImageItemModel
    include ImageModelUtils
    extend BaseModel

    def self.append_features(klass)
      super

      klass.install_have_child_element("item", IMAGE_URI, "?",
                                       "#{IMAGE_PREFIX}_item")
      klass.install_must_call_validator(IMAGE_PREFIX, IMAGE_URI)
    end

    class ImageItem < Element
      include RSS10
      include DublinCoreModel

      @tag_name = "item"

      class << self
        def required_prefix
          IMAGE_PREFIX
        end

        def required_uri
          IMAGE_URI
        end
      end

      install_must_call_validator(IMAGE_PREFIX, IMAGE_URI)

      [
        ["about", ::RSS::RDF::URI, true],
        ["resource", ::RSS::RDF::URI, false],
      ].each do |name, uri, required|
        install_get_attribute(name, uri, required, nil, nil,
                              "#{::RSS::RDF::PREFIX}:#{name}")
      end

      %w(width height).each do |tag|
        full_name = "#{IMAGE_PREFIX}_#{tag}"
        disp_name = "#{IMAGE_PREFIX}:#{tag}"
        install_text_element(tag, IMAGE_URI, "?",
                             full_name, :integer, disp_name)
        BaseListener.install_get_text_element(IMAGE_URI, tag, full_name)
      end

      alias width= image_width=
      alias width image_width
      alias height= image_height=
      alias height image_height

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.about = args[0]
          self.resource = args[1]
        end
      end

      def full_name
        tag_name_with_prefix(IMAGE_PREFIX)
      end

      private
      def maker_target(target)
        target.image_item
      end

      def setup_maker_attributes(item)
        item.about = self.about
        item.resource = self.resource
      end
    end
  end

  module ImageFaviconModel
    include ImageModelUtils
    extend BaseModel

    def self.append_features(klass)
      super

      unless klass.class == Module
        klass.install_have_child_element("favicon", IMAGE_URI, "?",
                                         "#{IMAGE_PREFIX}_favicon")
        klass.install_must_call_validator(IMAGE_PREFIX, IMAGE_URI)
      end
    end

    class ImageFavicon < Element
      include RSS10
      include DublinCoreModel

      @tag_name = "favicon"

      class << self
        def required_prefix
          IMAGE_PREFIX
        end

        def required_uri
          IMAGE_URI
        end
      end

      [
        ["about", ::RSS::RDF::URI, true, ::RSS::RDF::PREFIX],
        ["size", IMAGE_URI, true, IMAGE_PREFIX],
      ].each do |name, uri, required, prefix|
        install_get_attribute(name, uri, required, nil, nil,
                              "#{prefix}:#{name}")
      end

      AVAILABLE_SIZES = %w(small medium large)
      alias_method :set_size, :size=
      private :set_size
      def size=(new_value)
        if @do_validate and !new_value.nil?
          new_value = new_value.strip
          unless AVAILABLE_SIZES.include?(new_value)
            attr_name = "#{IMAGE_PREFIX}:size"
            raise NotAvailableValueError.new(full_name, new_value, attr_name)
          end
        end
        set_size(new_value)
      end

      alias image_size= size=
      alias image_size size

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.about = args[0]
          self.size = args[1]
        end
      end

      def full_name
        tag_name_with_prefix(IMAGE_PREFIX)
      end

      private
      def maker_target(target)
        target.image_favicon
      end

      def setup_maker_attributes(favicon)
        favicon.about = self.about
        favicon.size = self.size
      end
    end

  end

  class RDF
    class Channel; include ImageFaviconModel; end
    class Item; include ImageItemModel; end
  end

end
lib64/ruby/2.2.0/rss/xml.rb000064400000002737150402106310011041 0ustar00require "rss/utils"

module RSS
  module XML
    class Element
      include Enumerable

      attr_reader :name, :prefix, :uri, :attributes, :children
      def initialize(name, prefix=nil, uri=nil, attributes={}, children=[])
        @name = name
        @prefix = prefix
        @uri = uri
        @attributes = attributes
        if children.is_a?(String) or !children.respond_to?(:each)
          @children = [children]
        else
          @children = children
        end
      end

      def [](name)
        @attributes[name]
      end

      def []=(name, value)
        @attributes[name] = value
      end

      def <<(child)
        @children << child
      end

      def each(&block)
        @children.each(&block)
      end

      def ==(other)
        other.kind_of?(self.class) and
          @name == other.name and
          @uri == other.uri and
          @attributes == other.attributes and
          @children == other.children
      end

      def to_s
        rv = "<#{full_name}"
        attributes.each do |key, value|
          rv << " #{Utils.html_escape(key)}=\"#{Utils.html_escape(value)}\""
        end
        if children.empty?
          rv << "/>"
        else
          rv << ">"
          children.each do |child|
            rv << child.to_s
          end
          rv << "</#{full_name}>"
        end
        rv
      end

      def full_name
        if @prefix
          "#{@prefix}:#{@name}"
        else
          @name
        end
      end
    end
  end
end
lib64/ruby/2.2.0/rss/taxonomy.rb000064400000006250150402106310012111 0ustar00require "rss/1.0"
require "rss/dublincore"

module RSS
  # The prefix for the Taxonomy XML namespace.
  TAXO_PREFIX = "taxo"
  # The URI for the specification of the Taxonomy XML namespace.
  TAXO_URI = "http://purl.org/rss/1.0/modules/taxonomy/"

  RDF.install_ns(TAXO_PREFIX, TAXO_URI)

  # The listing of all the taxonomy elements, with the appropriate namespace.
  TAXO_ELEMENTS = []

  %w(link).each do |name|
    full_name = "#{TAXO_PREFIX}_#{name}"
    BaseListener.install_get_text_element(TAXO_URI, name, full_name)
    TAXO_ELEMENTS << "#{TAXO_PREFIX}_#{name}"
  end

  %w(topic topics).each do |name|
    class_name = Utils.to_class_name(name)
    BaseListener.install_class_name(TAXO_URI, name, "Taxonomy#{class_name}")
    TAXO_ELEMENTS << "#{TAXO_PREFIX}_#{name}"
  end

  module TaxonomyTopicsModel
    extend BaseModel

    def self.append_features(klass)
      super

      klass.install_must_call_validator(TAXO_PREFIX, TAXO_URI)
      %w(topics).each do |name|
        klass.install_have_child_element(name, TAXO_URI, "?",
                                         "#{TAXO_PREFIX}_#{name}")
      end
    end

    class TaxonomyTopics < Element
      include RSS10

      Bag = ::RSS::RDF::Bag

      class << self
        def required_prefix
          TAXO_PREFIX
        end

        def required_uri
          TAXO_URI
        end
      end

      @tag_name = "topics"

      install_have_child_element("Bag", RDF::URI, nil)
      install_must_call_validator('rdf', RDF::URI)

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.Bag = args[0]
        end
        self.Bag ||= Bag.new
      end

      def full_name
        tag_name_with_prefix(TAXO_PREFIX)
      end

      def maker_target(target)
        target.taxo_topics
      end

      def resources
        if @Bag
          @Bag.lis.collect do |li|
            li.resource
          end
        else
          []
        end
      end
    end
  end

  module TaxonomyTopicModel
    extend BaseModel

    def self.append_features(klass)
      super
      var_name = "#{TAXO_PREFIX}_topic"
      klass.install_have_children_element("topic", TAXO_URI, "*", var_name)
    end

    class TaxonomyTopic < Element
      include RSS10

      include DublinCoreModel
      include TaxonomyTopicsModel

      class << self
        def required_prefix
          TAXO_PREFIX
        end

        def required_uri
          TAXO_URI
        end
      end

      @tag_name = "topic"

      install_get_attribute("about", ::RSS::RDF::URI, true, nil, nil,
                            "#{RDF::PREFIX}:about")
      install_text_element("link", TAXO_URI, "?", "#{TAXO_PREFIX}_link")

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.about = args[0]
        end
      end

      def full_name
        tag_name_with_prefix(TAXO_PREFIX)
      end

      def maker_target(target)
        target.new_taxo_topic
      end
    end
  end

  class RDF
    include TaxonomyTopicModel
    class Channel
      include TaxonomyTopicsModel
    end
    class Item; include TaxonomyTopicsModel; end
  end
end
lib64/ruby/2.2.0/rss/maker.rb000064400000003401150402106310011325 0ustar00require "rss/rss"

module RSS
  ##
  #
  # Provides a set of builders for various RSS objects
  #
  # * Feeds
  #   * RSS 0.91
  #   * RSS 1.0
  #   * RSS 2.0
  #   * Atom 1.0
  #
  # * Elements
  #   * Atom::Entry

  module Maker

    # Collection of supported makers
    MAKERS = {}

    class << self
      # Builder for an RSS object
      # Creates an object of the type passed in +args+
      #
      # Executes the +block+ to populate elements of the created RSS object
      def make(version, &block)
        self[version].make(&block)
      end

      # Returns the maker for the +version+
      def [](version)
        maker_info = maker(version)
        raise UnsupportedMakerVersionError.new(version) if maker_info.nil?
        maker_info[:maker]
      end

      # Adds a maker to the set of supported makers
      def add_maker(version, normalized_version, maker)
        MAKERS[version] = {:maker => maker, :version => normalized_version}
      end

      # Returns collection of supported maker versions
      def versions
        MAKERS.keys.uniq.sort
      end

      # Returns collection of supported makers
      def makers
        MAKERS.values.collect { |info| info[:maker] }.uniq
      end

      # Returns true if the version is supported
      def supported?(version)
        versions.include?(version)
      end

      private
      # Can I remove this method?
      def maker(version)
        MAKERS[version]
      end
    end
  end
end

require "rss/maker/1.0"
require "rss/maker/2.0"
require "rss/maker/feed"
require "rss/maker/entry"
require "rss/maker/content"
require "rss/maker/dublincore"
require "rss/maker/slash"
require "rss/maker/syndication"
require "rss/maker/taxonomy"
require "rss/maker/trackback"
require "rss/maker/image"
require "rss/maker/itunes"
lib64/ruby/2.2.0/rss/xmlparser.rb000064400000003173150402106310012251 0ustar00begin
  require "xml/parser"
rescue LoadError
  require "xmlparser"
end

begin
  require "xml/encoding-ja"
rescue LoadError
  require "xmlencoding-ja"
  if defined?(Kconv)
    module XMLEncoding_ja
      class SJISHandler
        include Kconv
      end
    end
  end
end

module XML
  class Parser
    unless defined?(Error)
      # This error is legacy, so we just set it to the new one
      Error = ::XMLParserError # :nodoc:
    end
  end
end

module RSS

  class REXMLLikeXMLParser < ::XML::Parser

    include ::XML::Encoding_ja

    def listener=(listener)
      @listener = listener
    end

    def startElement(name, attrs)
      @listener.tag_start(name, attrs)
    end

    def endElement(name)
      @listener.tag_end(name)
    end

    def character(data)
      @listener.text(data)
    end

    def xmlDecl(version, encoding, standalone)
      @listener.xmldecl(version, encoding, standalone == 1)
    end

    def processingInstruction(target, content)
      @listener.instruction(target, content)
    end

  end

  class XMLParserParser < BaseParser

    class << self
      def listener
        XMLParserListener
      end
    end

    private
    def _parse
      begin
        parser = REXMLLikeXMLParser.new
        parser.listener = @listener
        parser.parse(@rss)
      rescue ::XML::Parser::Error => e
        raise NotWellFormedError.new(parser.line){e.message}
      end
    end

  end

  class XMLParserListener < BaseListener

    include ListenerMixin

    def xmldecl(version, encoding, standalone)
      super
      # Encoding is converted to UTF-8 when XMLParser parses XML.
      @encoding = 'UTF-8'
    end

  end

end
lib64/ruby/2.2.0/rss/utils.rb000064400000012116150402106310011371 0ustar00module RSS

  ##
  # RSS::Utils is a module that holds various utility functions that are used
  # across many parts of the rest of the RSS library. Like most modules named
  # some variant of 'util', its methods are probably not particularly useful
  # to those who aren't developing the library itself.
  module Utils
    module_function

    # Given a +name+ in a name_with_underscores or a name-with-dashes format,
    # returns the CamelCase version of +name+.
    #
    # If the +name+ is already CamelCased, nothing happens.
    #
    # Examples:
    #
    #   require 'rss/utils'
    #
    #   RSS::Utils.to_class_name("sample_name")
    #   # => "SampleName"
    #   RSS::Utils.to_class_name("with-dashes")
    #   # => "WithDashes"
    #   RSS::Utils.to_class_name("CamelCase")
    #   # => "CamelCase"
    def to_class_name(name)
      name.split(/[_\-]/).collect do |part|
        "#{part[0, 1].upcase}#{part[1..-1]}"
      end.join("")
    end

    # Returns an array of two elements: the filename where the calling method
    # is located, and the line number where it is defined.
    #
    # Takes an optional argument +i+, which specifies how many callers up the
    # stack to look.
    #
    # Examples:
    #
    #   require 'rss/utils'
    #
    #   def foo
    #     p RSS::Utils.get_file_and_line_from_caller
    #     p RSS::Utils.get_file_and_line_from_caller(1)
    #   end
    #
    #   def bar
    #     foo
    #   end
    #
    #   def baz
    #     bar
    #   end
    #
    #   baz
    #   # => ["test.rb", 5]
    #   # => ["test.rb", 9]
    #
    # If +i+ is not given, or is the default value of 0, it attempts to figure
    # out the correct value. This is useful when in combination with
    # instance_eval. For example:
    #
    #   require 'rss/utils'
    #
    #   def foo
    #     p RSS::Utils.get_file_and_line_from_caller(1)
    #   end
    #
    #   def bar
    #     foo
    #   end
    #
    #   instance_eval <<-RUBY, *RSS::Utils.get_file_and_line_from_caller
    #   def baz
    #     bar
    #   end
    #   RUBY
    #
    #   baz
    #
    #   # => ["test.rb", 8]
    def get_file_and_line_from_caller(i=0)
      file, line, = caller[i].split(':')
      line = line.to_i
      line += 1 if i.zero?
      [file, line]
    end

    # Takes a string +s+ with some HTML in it, and escapes '&', '"', '<' and '>', by
    # replacing them with the appropriate entities.
    #
    # This method is also aliased to h, for convenience.
    #
    # Examples:
    #
    #   require 'rss/utils'
    #
    #   RSS::Utils.html_escape("Dungeons & Dragons")
    #   # => "Dungeons &amp; Dragons"
    #   RSS::Utils.h(">_>")
    #   # => "&gt;_&gt;"
    def html_escape(s)
      s.to_s.gsub(/&/, "&amp;").gsub(/\"/, "&quot;").gsub(/>/, "&gt;").gsub(/</, "&lt;")
    end
    alias h html_escape

    # If +value+ is an instance of class +klass+, return it, else
    # create a new instance of +klass+ with value +value+.
    def new_with_value_if_need(klass, value)
      if value.is_a?(klass)
        value
      else
        klass.new(value)
      end
    end

    # This method is used inside of several different objects to determine
    # if special behavior is needed in the constructor.
    #
    # Special behavior is needed if the array passed in as +args+ has
    # +true+ or +false+ as its value, and if the second element of +args+
    # is a hash.
    def element_initialize_arguments?(args)
      [true, false].include?(args[0]) and args[1].is_a?(Hash)
    end

    module YesCleanOther
      module_function
      def parse(value)
        if [true, false, nil].include?(value)
          value
        else
          case value.to_s
          when /\Ayes\z/i
            true
          when /\Aclean\z/i
            false
          else
            nil
          end
        end
      end
    end

    module YesOther
      module_function
      def parse(value)
        if [true, false].include?(value)
          value
        else
          /\Ayes\z/i.match(value.to_s) ? true : false
        end
      end
    end

    module CSV
      module_function
      def parse(value, &block)
        if value.is_a?(String)
          value = value.strip.split(/\s*,\s*/)
          value = value.collect(&block) if block_given?
          value
        else
          value
        end
      end
    end

    module InheritedReader
      def inherited_reader(constant_name)
        base_class = inherited_base
        result = base_class.const_get(constant_name)
        found_base_class = false
        ancestors.reverse_each do |klass|
          if found_base_class
            if klass.const_defined?(constant_name)
              result = yield(result, klass.const_get(constant_name))
            end
          else
            found_base_class = klass == base_class
          end
        end
        result
      end

      def inherited_array_reader(constant_name)
        inherited_reader(constant_name) do |result, current|
          current + result
        end
      end

      def inherited_hash_reader(constant_name)
        inherited_reader(constant_name) do |result, current|
          result.merge(current)
        end
      end
    end
  end
end
lib64/ruby/2.2.0/rss/0.9.rb000064400000025122150402106310010540 0ustar00require "rss/parser"

module RSS

  ##
  # = RSS 0.9 support
  #
  # RSS has three different versions. This module contains support for version
  # 0.9.1[http://www.rssboard.org/rss-0-9-1-netscape].
  #
  # == Producing RSS 0.9
  #
  # Producing our own RSS feeds is easy as well. Let's make a very basic feed:
  #
  #  require "rss"
  #
  #  rss = RSS::Maker.make("0.91") do |maker|
  #    maker.channel.language = "en"
  #    maker.channel.author = "matz"
  #    maker.channel.updated = Time.now.to_s
  #    maker.channel.link = "http://www.ruby-lang.org/en/feeds/news.rss"
  #    maker.channel.title = "Example Feed"
  #    maker.channel.description = "A longer description of my feed."
  #    maker.image.url = "http://www.ruby-lang.org/images/logo.gif"
  #    maker.image.title = "An image"
  #    maker.items.new_item do |item|
  #      item.link = "http://www.ruby-lang.org/en/news/2010/12/25/ruby-1-9-2-p136-is-released/"
  #      item.title = "Ruby 1.9.2-p136 is released"
  #      item.updated = Time.now.to_s
  #    end
  #  end
  #
  #  puts rss
  #
  # As you can see, this is a very Builder-like DSL. This code will spit out an
  # RSS 0.9 feed with one item. If we needed a second item, we'd make another
  # block with maker.items.new_item and build a second one.
  module RSS09
    NSPOOL = {}
    ELEMENTS = []

    def self.append_features(klass)
      super

      klass.install_must_call_validator('', "")
    end
  end

  class Rss < Element

    include RSS09
    include RootElementMixin

    %w(channel).each do |name|
      install_have_child_element(name, "", nil)
    end

    attr_writer :feed_version
    alias_method(:rss_version, :feed_version)
    alias_method(:rss_version=, :feed_version=)

    def initialize(feed_version, version=nil, encoding=nil, standalone=nil)
      super
      @feed_type = "rss"
    end

    def items
      if @channel
        @channel.items
      else
        []
      end
    end

    def image
      if @channel
        @channel.image
      else
        nil
      end
    end

    def textinput
      if @channel
        @channel.textInput
      else
        nil
      end
    end

    def setup_maker_elements(maker)
      super
      items.each do |item|
        item.setup_maker(maker.items)
      end
      image.setup_maker(maker) if image
      textinput.setup_maker(maker) if textinput
    end

    private
    def _attrs
      [
        ["version", true, "feed_version"],
      ]
    end

    class Channel < Element

      include RSS09

      [
        ["title", nil, :text],
        ["link", nil, :text],
        ["description", nil, :text],
        ["language", nil, :text],
        ["copyright", "?", :text],
        ["managingEditor", "?", :text],
        ["webMaster", "?", :text],
        ["rating", "?", :text],
        ["pubDate", "?", :date, :rfc822],
        ["lastBuildDate", "?", :date, :rfc822],
        ["docs", "?", :text],
        ["cloud", "?", :have_attribute],
        ["skipDays", "?", :have_child],
        ["skipHours", "?", :have_child],
        ["image", nil, :have_child],
        ["item", "*", :have_children],
        ["textInput", "?", :have_child],
      ].each do |name, occurs, type, *args|
        __send__("install_#{type}_element", name, "", occurs, name, *args)
      end
      alias date pubDate
      alias date= pubDate=

      private
      def maker_target(maker)
        maker.channel
      end

      def setup_maker_elements(channel)
        super
        [
          [skipDays, "day"],
          [skipHours, "hour"],
        ].each do |skip, key|
          if skip
            skip.__send__("#{key}s").each do |val|
              target_skips = channel.__send__("skip#{key.capitalize}s")
              new_target = target_skips.__send__("new_#{key}")
              new_target.content = val.content
            end
          end
        end
      end

      def not_need_to_call_setup_maker_variables
        %w(image textInput)
      end

      class SkipDays < Element
        include RSS09

        [
          ["day", "*"]
        ].each do |name, occurs|
          install_have_children_element(name, "", occurs)
        end

        class Day < Element
          include RSS09

          content_setup

          def initialize(*args)
            if Utils.element_initialize_arguments?(args)
              super
            else
              super()
              self.content = args[0]
            end
          end

        end

      end

      class SkipHours < Element
        include RSS09

        [
          ["hour", "*"]
        ].each do |name, occurs|
          install_have_children_element(name, "", occurs)
        end

        class Hour < Element
          include RSS09

          content_setup(:integer)

          def initialize(*args)
            if Utils.element_initialize_arguments?(args)
              super
            else
              super()
              self.content = args[0]
            end
          end
        end

      end

      class Image < Element

        include RSS09

        %w(url title link).each do |name|
          install_text_element(name, "", nil)
        end
        [
          ["width", :integer],
          ["height", :integer],
          ["description"],
        ].each do |name, type|
          install_text_element(name, "", "?", name, type)
        end

        def initialize(*args)
          if Utils.element_initialize_arguments?(args)
            super
          else
            super()
            self.url = args[0]
            self.title = args[1]
            self.link = args[2]
            self.width = args[3]
            self.height = args[4]
            self.description = args[5]
          end
        end

        private
        def maker_target(maker)
          maker.image
        end
      end

      class Cloud < Element

        include RSS09

        [
          ["domain", "", true],
          ["port", "", true, :integer],
          ["path", "", true],
          ["registerProcedure", "", true],
          ["protocol", "", true],
        ].each do |name, uri, required, type|
          install_get_attribute(name, uri, required, type)
        end

        def initialize(*args)
          if Utils.element_initialize_arguments?(args)
            super
          else
            super()
            self.domain = args[0]
            self.port = args[1]
            self.path = args[2]
            self.registerProcedure = args[3]
            self.protocol = args[4]
          end
        end
      end

      class Item < Element

        include RSS09

        [
          ["title", '?', :text],
          ["link", '?', :text],
          ["description", '?', :text],
          ["category", '*', :have_children, "categories"],
          ["source", '?', :have_child],
          ["enclosure", '?', :have_child],
        ].each do |tag, occurs, type, *args|
          __send__("install_#{type}_element", tag, "", occurs, tag, *args)
        end

        private
        def maker_target(items)
          if items.respond_to?("items")
            # For backward compatibility
            items = items.items
          end
          items.new_item
        end

        def setup_maker_element(item)
          super
          @enclosure.setup_maker(item) if @enclosure
          @source.setup_maker(item) if @source
        end

        class Source < Element

          include RSS09

          [
            ["url", "", true]
          ].each do |name, uri, required|
            install_get_attribute(name, uri, required)
          end

          content_setup

          def initialize(*args)
            if Utils.element_initialize_arguments?(args)
              super
            else
              super()
              self.url = args[0]
              self.content = args[1]
            end
          end

          private
          def maker_target(item)
            item.source
          end

          def setup_maker_attributes(source)
            source.url = url
            source.content = content
          end
        end

        class Enclosure < Element

          include RSS09

          [
            ["url", "", true],
            ["length", "", true, :integer],
            ["type", "", true],
          ].each do |name, uri, required, type|
            install_get_attribute(name, uri, required, type)
          end

          def initialize(*args)
            if Utils.element_initialize_arguments?(args)
              super
            else
              super()
              self.url = args[0]
              self.length = args[1]
              self.type = args[2]
            end
          end

          private
          def maker_target(item)
            item.enclosure
          end

          def setup_maker_attributes(enclosure)
            enclosure.url = url
            enclosure.length = length
            enclosure.type = type
          end
        end

        class Category < Element

          include RSS09

          [
            ["domain", "", false]
          ].each do |name, uri, required|
            install_get_attribute(name, uri, required)
          end

          content_setup

          def initialize(*args)
            if Utils.element_initialize_arguments?(args)
              super
            else
              super()
              self.domain = args[0]
              self.content = args[1]
            end
          end

          private
          def maker_target(item)
            item.new_category
          end

          def setup_maker_attributes(category)
            category.domain = domain
            category.content = content
          end

        end

      end

      class TextInput < Element

        include RSS09

        %w(title description name link).each do |name|
          install_text_element(name, "", nil)
        end

        def initialize(*args)
          if Utils.element_initialize_arguments?(args)
            super
          else
            super()
            self.title = args[0]
            self.description = args[1]
            self.name = args[2]
            self.link = args[3]
          end
        end

        private
        def maker_target(maker)
          maker.textinput
        end
      end

    end

  end

  RSS09::ELEMENTS.each do |name|
    BaseListener.install_get_text_element("", name, name)
  end

  module ListenerMixin
    private
    def initial_start_rss(tag_name, prefix, attrs, ns)
      check_ns(tag_name, prefix, ns, "", false)

      @rss = Rss.new(attrs['version'], @version, @encoding, @standalone)
      @rss.do_validate = @do_validate
      @rss.xml_stylesheets = @xml_stylesheets
      @last_element = @rss
      pr = Proc.new do |text, tags|
        @rss.validate_for_stream(tags, @ignore_unknown_element) if @do_validate
      end
      @proc_stack.push(pr)
    end

  end

end
lib64/ruby/2.2.0/rss/syndication.rb000064400000003537150402106310012564 0ustar00require "rss/1.0"

module RSS
  # The prefix for the Syndication XML namespace.
  SY_PREFIX = 'sy'
  # The URI of the Syndication specification.
  SY_URI = "http://purl.org/rss/1.0/modules/syndication/"

  RDF.install_ns(SY_PREFIX, SY_URI)

  module SyndicationModel

    extend BaseModel

    ELEMENTS = []

    def self.append_features(klass)
      super

      klass.install_must_call_validator(SY_PREFIX, SY_URI)
      klass.module_eval do
        [
          ["updatePeriod"],
          ["updateFrequency", :positive_integer]
        ].each do |name, type|
          install_text_element(name, SY_URI, "?",
                               "#{SY_PREFIX}_#{name}", type,
                               "#{SY_PREFIX}:#{name}")
        end

        %w(updateBase).each do |name|
          install_date_element(name, SY_URI, "?",
                               "#{SY_PREFIX}_#{name}", 'w3cdtf',
                               "#{SY_PREFIX}:#{name}")
        end
      end

      klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
        alias_method(:_sy_updatePeriod=, :sy_updatePeriod=)
        def sy_updatePeriod=(new_value)
          new_value = new_value.strip
          validate_sy_updatePeriod(new_value) if @do_validate
          self._sy_updatePeriod = new_value
        end
      EOC
    end

    private
    SY_UPDATEPERIOD_AVAILABLE_VALUES = %w(hourly daily weekly monthly yearly)
    def validate_sy_updatePeriod(value)
      unless SY_UPDATEPERIOD_AVAILABLE_VALUES.include?(value)
        raise NotAvailableValueError.new("updatePeriod", value)
      end
    end
  end

  class RDF
    class Channel; include SyndicationModel; end
  end

  prefix_size = SY_PREFIX.size + 1
  SyndicationModel::ELEMENTS.uniq!
  SyndicationModel::ELEMENTS.each do |full_name|
    name = full_name[prefix_size..-1]
    BaseListener.install_get_text_element(SY_URI, name, full_name)
  end

end
lib64/ruby/2.2.0/rss/dublincore/1.0.rb000064400000000426150402106320012657 0ustar00require "rss/1.0"

module RSS
  RDF.install_ns(DC_PREFIX, DC_URI)

  class RDF
    class Channel; include DublinCoreModel; end
    class Image; include DublinCoreModel; end
    class Item; include DublinCoreModel; end
    class Textinput; include DublinCoreModel; end
  end
end
lib64/ruby/2.2.0/rss/dublincore/atom.rb000064400000000373150402106320013322 0ustar00require "rss/atom"

module RSS
  module Atom
    Feed.install_ns(DC_PREFIX, DC_URI)

    class Feed
      include DublinCoreModel
      class Entry; include DublinCoreModel; end
    end

    class Entry
      include DublinCoreModel
    end
  end
end
lib64/ruby/2.2.0/rss/dublincore/2.0.rb000064400000000300150402106320012647 0ustar00require "rss/2.0"

module RSS
  Rss.install_ns(DC_PREFIX, DC_URI)

  class Rss
    class Channel
      include DublinCoreModel
      class Item; include DublinCoreModel; end
    end
  end
end
lib64/ruby/2.2.0/rss/itunes.rb000064400000024050150402106320011541 0ustar00require 'rss/2.0'

module RSS
  # The prefix for the iTunes XML namespace.
  ITUNES_PREFIX = 'itunes'
  # The URI of the iTunes specification.
  ITUNES_URI = 'http://www.itunes.com/dtds/podcast-1.0.dtd'

  Rss.install_ns(ITUNES_PREFIX, ITUNES_URI)

  module ITunesModelUtils
    include Utils

    def def_class_accessor(klass, name, type, *args)
        normalized_name = name.gsub(/-/, "_")
      full_name = "#{ITUNES_PREFIX}_#{normalized_name}"
      klass_name = "ITunes#{Utils.to_class_name(normalized_name)}"

      case type
      when :element, :attribute
        klass::ELEMENTS << full_name
        def_element_class_accessor(klass, name, full_name, klass_name, *args)
      when :elements
        klass::ELEMENTS << full_name
        def_elements_class_accessor(klass, name, full_name, klass_name, *args)
      else
        klass.install_must_call_validator(ITUNES_PREFIX, ITUNES_URI)
        klass.install_text_element(normalized_name, ITUNES_URI, "?",
                                   full_name, type, name)
      end
    end

    def def_element_class_accessor(klass, name, full_name, klass_name,
                                   recommended_attribute_name=nil)
      klass.install_have_child_element(name, ITUNES_PREFIX, "?", full_name)
    end

    def def_elements_class_accessor(klass, name, full_name, klass_name,
                                    plural_name, recommended_attribute_name=nil)
      full_plural_name = "#{ITUNES_PREFIX}_#{plural_name}"
      klass.install_have_children_element(name, ITUNES_PREFIX, "*",
                                          full_name, full_plural_name)
    end
  end

  module ITunesBaseModel
    extend ITunesModelUtils

    ELEMENTS = []

    ELEMENT_INFOS = [["author"],
                     ["block", :yes_other],
                     ["explicit", :yes_clean_other],
                     ["keywords", :csv],
                     ["subtitle"],
                     ["summary"]]
  end

  module ITunesChannelModel
    extend BaseModel
    extend ITunesModelUtils
    include ITunesBaseModel

    ELEMENTS = []

    class << self
      def append_features(klass)
        super

        return if klass.instance_of?(Module)
        ELEMENT_INFOS.each do |name, type, *additional_infos|
          def_class_accessor(klass, name, type, *additional_infos)
        end
      end
    end

    ELEMENT_INFOS = [
                     ["category", :elements, "categories", "text"],
                     ["image", :attribute, "href"],
                     ["owner", :element],
                     ["new-feed-url"],
                    ] + ITunesBaseModel::ELEMENT_INFOS

    class ITunesCategory < Element
      include RSS09

      @tag_name = "category"

      class << self
        def required_prefix
          ITUNES_PREFIX
        end

        def required_uri
          ITUNES_URI
        end
      end

      [
        ["text", "", true]
      ].each do |name, uri, required|
        install_get_attribute(name, uri, required)
      end

      ITunesCategory = self
      install_have_children_element("category", ITUNES_URI, "*",
                                    "#{ITUNES_PREFIX}_category",
                                    "#{ITUNES_PREFIX}_categories")

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.text = args[0]
        end
      end

      def full_name
        tag_name_with_prefix(ITUNES_PREFIX)
      end

      private
      def maker_target(categories)
        if text or !itunes_categories.empty?
          categories.new_category
        else
          nil
        end
      end

      def setup_maker_attributes(category)
        category.text = text if text
      end

      def setup_maker_elements(category)
        super(category)
        itunes_categories.each do |sub_category|
          sub_category.setup_maker(category)
        end
      end
    end

    class ITunesImage < Element
      include RSS09

      @tag_name = "image"

      class << self
        def required_prefix
          ITUNES_PREFIX
        end

        def required_uri
          ITUNES_URI
        end
      end

      [
        ["href", "", true]
      ].each do |name, uri, required|
        install_get_attribute(name, uri, required)
      end

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.href = args[0]
        end
      end

      def full_name
        tag_name_with_prefix(ITUNES_PREFIX)
      end

      private
      def maker_target(target)
        if href
          target.itunes_image {|image| image}
        else
          nil
        end
      end

      def setup_maker_attributes(image)
        image.href = href
      end
    end

    class ITunesOwner < Element
      include RSS09

      @tag_name = "owner"

      class << self
        def required_prefix
          ITUNES_PREFIX
        end

        def required_uri
          ITUNES_URI
        end
      end

      install_must_call_validator(ITUNES_PREFIX, ITUNES_URI)
      [
        ["name"],
        ["email"],
      ].each do |name,|
        ITunesBaseModel::ELEMENT_INFOS << name
        install_text_element(name, ITUNES_URI, nil, "#{ITUNES_PREFIX}_#{name}")
      end

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.itunes_name = args[0]
          self.itunes_email = args[1]
        end
      end

      def full_name
        tag_name_with_prefix(ITUNES_PREFIX)
      end

      private
      def maker_target(target)
        target.itunes_owner
      end

      def setup_maker_element(owner)
        super(owner)
        owner.itunes_name = itunes_name
        owner.itunes_email = itunes_email
      end
    end
  end

  module ITunesItemModel
    extend BaseModel
    extend ITunesModelUtils
    include ITunesBaseModel

    class << self
      def append_features(klass)
        super

        return if klass.instance_of?(Module)
        ELEMENT_INFOS.each do |name, type|
          def_class_accessor(klass, name, type)
        end
      end
    end

    ELEMENT_INFOS = ITunesBaseModel::ELEMENT_INFOS +
      [["duration", :element, "content"]]

    class ITunesDuration < Element
      include RSS09

      @tag_name = "duration"

      class << self
        def required_prefix
          ITUNES_PREFIX
        end

        def required_uri
          ITUNES_URI
        end

        def parse(duration, do_validate=true)
          if do_validate and /\A(?:
                                  \d?\d:[0-5]\d:[0-5]\d|
                                  [0-5]?\d:[0-5]\d
                                )\z/x !~ duration
            raise ArgumentError,
                    "must be one of HH:MM:SS, H:MM:SS, MM::SS, M:SS: " +
                    duration.inspect
          end

          components = duration.split(':')
          components[3..-1] = nil if components.size > 3

          components.unshift("00") until components.size == 3

          components.collect do |component|
            component.to_i
          end
        end

        def construct(hour, minute, second)
          components = [minute, second]
          if components.include?(nil)
            nil
          else
            components.unshift(hour) if hour and hour > 0
            components.collect do |component|
              "%02d" % component
            end.join(":")
          end
        end
      end

      content_setup
      alias_method(:value, :content)
      remove_method(:content=)

      attr_reader :hour, :minute, :second
      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          args = args[0] if args.size == 1 and args[0].is_a?(Array)
          if args.size == 1
            self.content = args[0]
          elsif args.size > 3
            raise ArgumentError,
                    "must be (do_validate, params), (content), " +
                    "(minute, second), ([minute, second]), "  +
                    "(hour, minute, second) or ([hour, minute, second]): " +
                    args.inspect
          else
            @second, @minute, @hour = args.reverse
            update_content
          end
        end
      end

      def content=(value)
        if value.nil?
          @content = nil
        elsif value.is_a?(self.class)
          self.content = value.content
        else
          begin
            @hour, @minute, @second = self.class.parse(value, @do_validate)
          rescue ArgumentError
            raise NotAvailableValueError.new(tag_name, value)
          end
          @content = value
        end
      end
      alias_method(:value=, :content=)

      def hour=(hour)
        @hour = @do_validate ? Integer(hour) : hour.to_i
        update_content
        hour
      end

      def minute=(minute)
        @minute = @do_validate ? Integer(minute) : minute.to_i
        update_content
        minute
      end

      def second=(second)
        @second = @do_validate ? Integer(second) : second.to_i
        update_content
        second
      end

      def full_name
        tag_name_with_prefix(ITUNES_PREFIX)
      end

      private
      def update_content
        @content = self.class.construct(hour, minute, second)
      end

      def maker_target(target)
        if @content
          target.itunes_duration {|duration| duration}
        else
          nil
        end
      end

      def setup_maker_element(duration)
        super(duration)
        duration.content = @content
      end
    end
  end

  class Rss
    class Channel
      include ITunesChannelModel
      class Item; include ITunesItemModel; end
    end
  end

  element_infos =
    ITunesChannelModel::ELEMENT_INFOS + ITunesItemModel::ELEMENT_INFOS
  element_infos.each do |name, type|
    case type
    when :element, :elements, :attribute
      class_name = Utils.to_class_name(name)
      BaseListener.install_class_name(ITUNES_URI, name, "ITunes#{class_name}")
    else
      accessor_base = "#{ITUNES_PREFIX}_#{name.gsub(/-/, '_')}"
      BaseListener.install_get_text_element(ITUNES_URI, name, accessor_base)
    end
  end
end
lib64/ruby/2.2.0/rss/maker/dublincore.rb000064400000007361150402106320013465 0ustar00require 'rss/dublincore'
require 'rss/maker/1.0'

module RSS
  module Maker
    module DublinCoreModel
      def self.append_features(klass)
        super

        ::RSS::DublinCoreModel::ELEMENT_NAME_INFOS.each do |name, plural_name|
          plural_name ||= "#{name}s"
          full_name = "#{RSS::DC_PREFIX}_#{name}"
          full_plural_name = "#{RSS::DC_PREFIX}_#{plural_name}"
          plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}"
          klass.def_classed_elements(full_name, "value", plural_klass_name,
                                     full_plural_name, name)
          klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
            def new_#{full_name}(value=nil)
              _#{full_name} = #{full_plural_name}.new_#{name}
              _#{full_name}.value = value
              if block_given?
                yield _#{full_name}
              else
                _#{full_name}
              end
            end
          EOC
        end

        klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          # For backward compatibility
          alias #{DC_PREFIX}_rightses #{DC_PREFIX}_rights_list
        EOC
      end

      ::RSS::DublinCoreModel::ELEMENT_NAME_INFOS.each do |name, plural_name|
        plural_name ||= "#{name}s"
        full_name ||= "#{DC_PREFIX}_#{name}"
        full_plural_name ||= "#{DC_PREFIX}_#{plural_name}"
        klass_name = Utils.to_class_name(name)
        full_klass_name = "DublinCore#{klass_name}"
        plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}"
        module_eval(<<-EOC, __FILE__, __LINE__ + 1)
        class #{plural_klass_name}Base < Base
          def_array_element(#{name.dump}, #{full_plural_name.dump},
                            #{full_klass_name.dump})

          class #{full_klass_name}Base < Base
            attr_accessor :value
            add_need_initialize_variable("value")
            alias_method(:content, :value)
            alias_method(:content=, :value=)

            def have_required_values?
              @value
            end

            def to_feed(feed, current)
              if value and current.respond_to?(:#{full_name})
                new_item = current.class::#{full_klass_name}.new(value)
                current.#{full_plural_name} << new_item
              end
            end
          end
          #{klass_name}Base = #{full_klass_name}Base
        end
        EOC
      end

      def self.install_dublin_core(klass)
        ::RSS::DublinCoreModel::ELEMENT_NAME_INFOS.each do |name, plural_name|
          plural_name ||= "#{name}s"
          klass_name = Utils.to_class_name(name)
          full_klass_name = "DublinCore#{klass_name}"
          plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}"
          klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          class #{plural_klass_name} < #{plural_klass_name}Base
            class #{full_klass_name} < #{full_klass_name}Base
            end
            #{klass_name} = #{full_klass_name}
          end
EOC
        end
      end
    end

    class ChannelBase
      include DublinCoreModel
    end

    class ImageBase; include DublinCoreModel; end
    class ItemsBase
      class ItemBase
        include DublinCoreModel
      end
    end
    class TextinputBase; include DublinCoreModel; end

    makers.each do |maker|
      maker.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
        class Channel
          DublinCoreModel.install_dublin_core(self)
        end

        class Image
          DublinCoreModel.install_dublin_core(self)
        end

        class Items
          class Item
            DublinCoreModel.install_dublin_core(self)
          end
        end

        class Textinput
          DublinCoreModel.install_dublin_core(self)
        end
      EOC
    end
  end
end
lib64/ruby/2.2.0/rss/maker/image.rb000064400000005560150402106320012420 0ustar00require 'rss/image'
require 'rss/maker/1.0'
require 'rss/maker/dublincore'

module RSS
  module Maker
    module ImageItemModel
      def self.append_features(klass)
        super

        name = "#{RSS::IMAGE_PREFIX}_item"
        klass.def_classed_element(name)
      end

      def self.install_image_item(klass)
        klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          class ImageItem < ImageItemBase
            DublinCoreModel.install_dublin_core(self)
          end
EOC
      end

      class ImageItemBase < Base
        include Maker::DublinCoreModel

        attr_accessor :about, :resource, :image_width, :image_height
        add_need_initialize_variable("about")
        add_need_initialize_variable("resource")
        add_need_initialize_variable("image_width")
        add_need_initialize_variable("image_height")
        alias width= image_width=
        alias width image_width
        alias height= image_height=
        alias height image_height

        def have_required_values?
          @about
        end

        def to_feed(feed, current)
          if current.respond_to?(:image_item=) and have_required_values?
            item = current.class::ImageItem.new
            setup_values(item)
            setup_other_elements(item)
            current.image_item = item
          end
        end
      end
    end

    module ImageFaviconModel
      def self.append_features(klass)
        super

        name = "#{RSS::IMAGE_PREFIX}_favicon"
        klass.def_classed_element(name)
      end

      def self.install_image_favicon(klass)
        klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          class ImageFavicon < ImageFaviconBase
            DublinCoreModel.install_dublin_core(self)
          end
        EOC
      end

      class ImageFaviconBase < Base
        include Maker::DublinCoreModel

        attr_accessor :about, :image_size
        add_need_initialize_variable("about")
        add_need_initialize_variable("image_size")
        alias size image_size
        alias size= image_size=

        def have_required_values?
          @about and @image_size
        end

        def to_feed(feed, current)
          if current.respond_to?(:image_favicon=) and have_required_values?
            favicon = current.class::ImageFavicon.new
            setup_values(favicon)
            setup_other_elements(favicon)
            current.image_favicon = favicon
          end
        end
      end
    end

    class ChannelBase; include Maker::ImageFaviconModel; end

    class ItemsBase
      class ItemBase; include Maker::ImageItemModel; end
    end

    makers.each do |maker|
      maker.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
        class Channel
          ImageFaviconModel.install_image_favicon(self)
        end

        class Items
          class Item
            ImageItemModel.install_image_item(self)
          end
        end
      EOC
    end
  end
end
lib64/ruby/2.2.0/rss/maker/taxonomy.rb000064400000006154150402106320013214 0ustar00require 'rss/taxonomy'
require 'rss/maker/1.0'
require 'rss/maker/dublincore'

module RSS
  module Maker
    module TaxonomyTopicsModel
      def self.append_features(klass)
        super

        klass.def_classed_element("#{RSS::TAXO_PREFIX}_topics",
                                  "TaxonomyTopics")
      end

      def self.install_taxo_topics(klass)
        klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          class TaxonomyTopics < TaxonomyTopicsBase
            def to_feed(feed, current)
              if current.respond_to?(:taxo_topics)
                topics = current.class::TaxonomyTopics.new
                bag = topics.Bag
                @resources.each do |resource|
                  bag.lis << RDF::Bag::Li.new(resource)
                end
                current.taxo_topics = topics
              end
            end
          end
EOC
      end

      class TaxonomyTopicsBase < Base
        attr_reader :resources
        def_array_element("resource")
        remove_method :new_resource
      end
    end

    module TaxonomyTopicModel
      def self.append_features(klass)
        super

        class_name = "TaxonomyTopics"
        klass.def_classed_elements("#{TAXO_PREFIX}_topic", "value", class_name)
      end

      def self.install_taxo_topic(klass)
        klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          class TaxonomyTopics < TaxonomyTopicsBase
            class TaxonomyTopic < TaxonomyTopicBase
              DublinCoreModel.install_dublin_core(self)
              TaxonomyTopicsModel.install_taxo_topics(self)

              def to_feed(feed, current)
                if current.respond_to?(:taxo_topics)
                  topic = current.class::TaxonomyTopic.new(value)
                  topic.taxo_link = value
                  taxo_topics.to_feed(feed, topic) if taxo_topics
                  current.taxo_topics << topic
                  setup_other_elements(feed, topic)
                end
              end
            end
          end
EOC
      end

      class TaxonomyTopicsBase < Base
        def_array_element("topic", nil, "TaxonomyTopic")
        alias_method(:new_taxo_topic, :new_topic) # For backward compatibility

        class TaxonomyTopicBase < Base
          include DublinCoreModel
          include TaxonomyTopicsModel

          attr_accessor :value
          add_need_initialize_variable("value")
          alias_method(:taxo_link, :value)
          alias_method(:taxo_link=, :value=)

          def have_required_values?
            @value
          end
        end
      end
    end

    class RSSBase
      include TaxonomyTopicModel
    end

    class ChannelBase
      include TaxonomyTopicsModel
    end

    class ItemsBase
      class ItemBase
        include TaxonomyTopicsModel
      end
    end

    makers.each do |maker|
      maker.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
        TaxonomyTopicModel.install_taxo_topic(self)

        class Channel
          TaxonomyTopicsModel.install_taxo_topics(self)
        end

        class Items
          class Item
            TaxonomyTopicsModel.install_taxo_topics(self)
          end
        end
      EOC
    end
  end
end
lib64/ruby/2.2.0/rss/maker/feed.rb000064400000030751150402106320012241 0ustar00require "rss/maker/atom"

module RSS
  module Maker
    module Atom
      class Feed < RSSBase
        def initialize(feed_version="1.0")
          super
          @feed_type = "atom"
          @feed_subtype = "feed"
        end

        private
        def make_feed
          ::RSS::Atom::Feed.new(@version, @encoding, @standalone)
        end

        def setup_elements(feed)
          setup_channel(feed)
          setup_image(feed)
          setup_items(feed)
        end

        class Channel < ChannelBase
          include SetupDefaultLanguage

          def to_feed(feed)
            set_default_values do
              setup_values(feed)
              feed.dc_dates.clear
              setup_other_elements(feed)
              if image_favicon.about
                icon = feed.class::Icon.new
                icon.content = image_favicon.about
                feed.icon = icon
              end
              unless have_required_values?
                raise NotSetError.new("maker.channel",
                                      not_set_required_variables)
              end
            end
          end

          def have_required_values?
            super and
              (!authors.empty? or
               @maker.items.any? {|item| !item.authors.empty?})
          end

          private
          def required_variable_names
            %w(id updated)
          end

          def variables
            super + %w(id updated)
          end

          def variable_is_set?
            super or !authors.empty?
          end

          def not_set_required_variables
            vars = super
            if authors.empty? and
                @maker.items.all? {|item| item.author.to_s.empty?}
              vars << "author"
            end
            vars << "title" unless title {|t| t.have_required_values?}
            vars
          end

          def _set_default_values(&block)
            keep = {
              :id => id,
            }
            self.id ||= about
            super(&block)
          ensure
            self.id = keep[:id]
          end

          class SkipDays < SkipDaysBase
            def to_feed(*args)
            end

            class Day < DayBase
            end
          end

          class SkipHours < SkipHoursBase
            def to_feed(*args)
            end

            class Hour < HourBase
            end
          end

          class Cloud < CloudBase
            def to_feed(*args)
            end
          end

          class Categories < CategoriesBase
            class Category < CategoryBase
              include AtomCategory

              def self.not_set_name
                "maker.channel.category"
              end
            end
          end

          class Links < LinksBase
            class Link < LinkBase
              include AtomLink

              def self.not_set_name
                "maker.channel.link"
              end
            end
          end

          AtomPersons.def_atom_persons(self, "author", "maker.channel.author")
          AtomPersons.def_atom_persons(self, "contributor",
                                       "maker.channel.contributor")

          class Generator < GeneratorBase
            include AtomGenerator

            def self.not_set_name
              "maker.channel.generator"
            end
          end

          AtomTextConstruct.def_atom_text_construct(self, "rights",
                                                    "maker.channel.copyright",
                                                    "Copyright")
          AtomTextConstruct.def_atom_text_construct(self, "subtitle",
                                                    "maker.channel.description",
                                                    "Description")
          AtomTextConstruct.def_atom_text_construct(self, "title",
                                                    "maker.channel.title")
        end

        class Image < ImageBase
          def to_feed(feed)
            logo = feed.class::Logo.new
            class << logo
              alias_method(:url=, :content=)
            end
            set = setup_values(logo)
            class << logo
              remove_method(:url=)
            end
            if set
              feed.logo = logo
              set_parent(logo, feed)
              setup_other_elements(feed, logo)
            elsif variable_is_set?
              raise NotSetError.new("maker.image", not_set_required_variables)
            end
          end

          private
          def required_variable_names
            %w(url)
          end
        end

        class Items < ItemsBase
          def to_feed(feed)
            normalize.each do |item|
              item.to_feed(feed)
            end
            setup_other_elements(feed, feed.entries)
          end

          class Item < ItemBase
            def to_feed(feed)
              set_default_values do
                entry = feed.class::Entry.new
                set = setup_values(entry)
                entry.dc_dates.clear
                setup_other_elements(feed, entry)
                if set
                  feed.entries << entry
                  set_parent(entry, feed)
                elsif variable_is_set?
                  raise NotSetError.new("maker.item", not_set_required_variables)
                end
              end
            end

            def have_required_values?
              set_default_values do
                super and title {|t| t.have_required_values?}
              end
            end

            private
            def required_variable_names
              %w(id updated)
            end

            def variables
              super + ["updated"]
            end

            def not_set_required_variables
              vars = super
              vars << "title" unless title {|t| t.have_required_values?}
              vars
            end

            def _set_default_values(&block)
              keep = {
                :id => id,
              }
              self.id ||= link
              super(&block)
            ensure
              self.id = keep[:id]
            end

            class Guid < GuidBase
              def to_feed(feed, current)
              end
            end

            class Enclosure < EnclosureBase
              def to_feed(feed, current)
              end
            end

            class Source < SourceBase
              def to_feed(feed, current)
                source = current.class::Source.new
                setup_values(source)
                current.source = source
                set_parent(source, current)
                setup_other_elements(feed, source)
                current.source = nil if source.to_s == "<source/>"
              end

              private
              def required_variable_names
                []
              end

              def variables
                super + ["updated"]
              end

              AtomPersons.def_atom_persons(self, "author",
                                           "maker.item.source.author")
              AtomPersons.def_atom_persons(self, "contributor",
                                           "maker.item.source.contributor")

              class Categories < CategoriesBase
                class Category < CategoryBase
                  include AtomCategory

                  def self.not_set_name
                    "maker.item.source.category"
                  end
                end
              end

              class Generator < GeneratorBase
                include AtomGenerator

                def self.not_set_name
                  "maker.item.source.generator"
                end
              end

              class Icon < IconBase
                def to_feed(feed, current)
                  icon = current.class::Icon.new
                  class << icon
                    alias_method(:url=, :content=)
                  end
                  set = setup_values(icon)
                  class << icon
                    remove_method(:url=)
                  end
                  if set
                    current.icon = icon
                    set_parent(icon, current)
                    setup_other_elements(feed, icon)
                  elsif variable_is_set?
                    raise NotSetError.new("maker.item.source.icon",
                                          not_set_required_variables)
                  end
                end

                private
                def required_variable_names
                  %w(url)
                end
              end

              class Links < LinksBase
                class Link < LinkBase
                  include AtomLink

                  def self.not_set_name
                    "maker.item.source.link"
                  end
                end
              end

              class Logo < LogoBase
                include AtomLogo

                def self.not_set_name
                  "maker.item.source.logo"
                end
              end

              maker_name_base = "maker.item.source."
              maker_name = "#{maker_name_base}rights"
              AtomTextConstruct.def_atom_text_construct(self, "rights",
                                                        maker_name)
              maker_name = "#{maker_name_base}subtitle"
              AtomTextConstruct.def_atom_text_construct(self, "subtitle",
                                                        maker_name)
              maker_name = "#{maker_name_base}title"
              AtomTextConstruct.def_atom_text_construct(self, "title",
                                                        maker_name)
            end

            class Categories < CategoriesBase
              class Category < CategoryBase
                include AtomCategory

                def self.not_set_name
                  "maker.item.category"
                end
              end
            end

            AtomPersons.def_atom_persons(self, "author", "maker.item.author")
            AtomPersons.def_atom_persons(self, "contributor",
                                         "maker.item.contributor")

            class Links < LinksBase
              class Link < LinkBase
                include AtomLink

                def self.not_set_name
                  "maker.item.link"
                end
              end
            end

            AtomTextConstruct.def_atom_text_construct(self, "rights",
                                                      "maker.item.rights")
            AtomTextConstruct.def_atom_text_construct(self, "summary",
                                                      "maker.item.description",
                                                      "Description")
            AtomTextConstruct.def_atom_text_construct(self, "title",
                                                      "maker.item.title")

            class Content < ContentBase
              def to_feed(feed, current)
                content = current.class::Content.new
                if setup_values(content)
                  content.src = nil if content.src and content.content
                  current.content = content
                  set_parent(content, current)
                  setup_other_elements(feed, content)
                elsif variable_is_set?
                  raise NotSetError.new("maker.item.content",
                                        not_set_required_variables)
                end
              end

              alias_method(:xml, :xml_content)

              private
              def required_variable_names
                if out_of_line?
                  %w(type)
                elsif xml_type?
                  %w(xml_content)
                else
                  %w(content)
                end
              end

              def variables
                if out_of_line?
                  super
                elsif xml_type?
                  super + %w(xml)
                else
                  super
                end
              end

              def xml_type?
                _type = type
                return false if _type.nil?
                _type == "xhtml" or
                  /(?:\+xml|\/xml)$/i =~ _type or
                  %w(text/xml-external-parsed-entity
                     application/xml-external-parsed-entity
                     application/xml-dtd).include?(_type.downcase)
              end
            end
          end
        end

        class Textinput < TextinputBase
        end
      end
    end

    add_maker("atom", "1.0", Atom::Feed)
    add_maker("atom:feed", "1.0", Atom::Feed)
    add_maker("atom1.0", "1.0", Atom::Feed)
    add_maker("atom1.0:feed", "1.0", Atom::Feed)
  end
end
lib64/ruby/2.2.0/rss/maker/0.9.rb000064400000027453150402106320011651 0ustar00require "rss/0.9"

require "rss/maker/base"

module RSS
  module Maker

    class RSS09 < RSSBase

      def initialize(feed_version)
        super
        @feed_type = "rss"
      end

      private
      def make_feed
        Rss.new(@feed_version, @version, @encoding, @standalone)
      end

      def setup_elements(rss)
        setup_channel(rss)
      end

      class Channel < ChannelBase
        def to_feed(rss)
          channel = Rss::Channel.new
          setup_values(channel)
          _not_set_required_variables = not_set_required_variables
          if _not_set_required_variables.empty?
            rss.channel = channel
            set_parent(channel, rss)
            setup_items(rss)
            setup_image(rss)
            setup_textinput(rss)
            setup_other_elements(rss, channel)
            rss
          else
            raise NotSetError.new("maker.channel", _not_set_required_variables)
          end
        end

        private
        def setup_items(rss)
          @maker.items.to_feed(rss)
        end

        def setup_image(rss)
          @maker.image.to_feed(rss)
        end

        def setup_textinput(rss)
          @maker.textinput.to_feed(rss)
        end

        def variables
          super + ["pubDate"]
        end

        def required_variable_names
          %w(link language)
        end

        def not_set_required_variables
          vars = super
          vars << "description" unless description {|d| d.have_required_values?}
          vars << "title" unless title {|t| t.have_required_values?}
          vars
        end

        class SkipDays < SkipDaysBase
          def to_feed(rss, channel)
            unless @days.empty?
              skipDays = Rss::Channel::SkipDays.new
              channel.skipDays = skipDays
              set_parent(skipDays, channel)
              @days.each do |day|
                day.to_feed(rss, skipDays.days)
              end
            end
          end

          class Day < DayBase
            def to_feed(rss, days)
              day = Rss::Channel::SkipDays::Day.new
              set = setup_values(day)
              if set
                days << day
                set_parent(day, days)
                setup_other_elements(rss, day)
              end
            end

            private
            def required_variable_names
              %w(content)
            end
          end
        end

        class SkipHours < SkipHoursBase
          def to_feed(rss, channel)
            unless @hours.empty?
              skipHours = Rss::Channel::SkipHours.new
              channel.skipHours = skipHours
              set_parent(skipHours, channel)
              @hours.each do |hour|
                hour.to_feed(rss, skipHours.hours)
              end
            end
          end

          class Hour < HourBase
            def to_feed(rss, hours)
              hour = Rss::Channel::SkipHours::Hour.new
              set = setup_values(hour)
              if set
                hours << hour
                set_parent(hour, hours)
                setup_other_elements(rss, hour)
              end
            end

            private
            def required_variable_names
              %w(content)
            end
          end
        end

        class Cloud < CloudBase
          def to_feed(*args)
          end
        end

        class Categories < CategoriesBase
          def to_feed(*args)
          end

          class Category < CategoryBase
          end
        end

        class Links < LinksBase
          def to_feed(rss, channel)
            return if @links.empty?
            @links.first.to_feed(rss, channel)
          end

          class Link < LinkBase
            def to_feed(rss, channel)
              if have_required_values?
                channel.link = href
              else
                raise NotSetError.new("maker.channel.link",
                                      not_set_required_variables)
              end
            end

            private
            def required_variable_names
              %w(href)
            end
          end
        end

        class Authors < AuthorsBase
          def to_feed(rss, channel)
          end

          class Author < AuthorBase
            def to_feed(rss, channel)
            end
          end
        end

        class Contributors < ContributorsBase
          def to_feed(rss, channel)
          end

          class Contributor < ContributorBase
          end
        end

        class Generator < GeneratorBase
          def to_feed(rss, channel)
          end
        end

        class Copyright < CopyrightBase
          def to_feed(rss, channel)
            channel.copyright = content if have_required_values?
          end

          private
          def required_variable_names
            %w(content)
          end
        end

        class Description < DescriptionBase
          def to_feed(rss, channel)
            channel.description = content if have_required_values?
          end

          private
          def required_variable_names
            %w(content)
          end
        end

        class Title < TitleBase
          def to_feed(rss, channel)
            channel.title = content if have_required_values?
          end

          private
          def required_variable_names
            %w(content)
          end
        end
      end

      class Image < ImageBase
        def to_feed(rss)
          image = Rss::Channel::Image.new
          set = setup_values(image)
          if set
            image.link = link
            rss.channel.image = image
            set_parent(image, rss.channel)
            setup_other_elements(rss, image)
          elsif required_element?
            raise NotSetError.new("maker.image", not_set_required_variables)
          end
        end

        private
        def required_variable_names
          %w(url title link)
        end

        def required_element?
          true
        end
      end

      class Items < ItemsBase
        def to_feed(rss)
          if rss.channel
            normalize.each do |item|
              item.to_feed(rss)
            end
            setup_other_elements(rss, rss.items)
          end
        end

        class Item < ItemBase
          def to_feed(rss)
            item = Rss::Channel::Item.new
            setup_values(item)
            _not_set_required_variables = not_set_required_variables
            if _not_set_required_variables.empty?
              rss.items << item
              set_parent(item, rss.channel)
              setup_other_elements(rss, item)
            elsif variable_is_set?
              raise NotSetError.new("maker.items", _not_set_required_variables)
            end
          end

          private
          def required_variable_names
            []
          end

          def not_set_required_variables
            vars = super
            if @maker.feed_version == "0.91"
              vars << "title" unless title {|t| t.have_required_values?}
              vars << "link" unless link {|l| l.have_required_values?}
            end
            vars
          end

          class Guid < GuidBase
            def to_feed(*args)
            end
          end

          class Enclosure < EnclosureBase
            def to_feed(*args)
            end
          end

          class Source < SourceBase
            def to_feed(*args)
            end

            class Authors < AuthorsBase
              def to_feed(*args)
              end

              class Author < AuthorBase
              end
            end

            class Categories < CategoriesBase
              def to_feed(*args)
              end

              class Category < CategoryBase
              end
            end

            class Contributors < ContributorsBase
              def to_feed(*args)
              end

              class Contributor < ContributorBase
              end
            end

            class Generator < GeneratorBase
              def to_feed(*args)
              end
            end

            class Icon < IconBase
              def to_feed(*args)
              end
            end

            class Links < LinksBase
              def to_feed(*args)
              end

              class Link < LinkBase
              end
            end

            class Logo < LogoBase
              def to_feed(*args)
              end
            end

            class Rights < RightsBase
              def to_feed(*args)
              end
            end

            class Subtitle < SubtitleBase
              def to_feed(*args)
              end
            end

            class Title < TitleBase
              def to_feed(*args)
              end
            end
          end

          class Categories < CategoriesBase
            def to_feed(*args)
            end

            class Category < CategoryBase
            end
          end

          class Authors < AuthorsBase
            def to_feed(*args)
            end

            class Author < AuthorBase
            end
          end

          class Links < LinksBase
            def to_feed(rss, item)
              return if @links.empty?
              @links.first.to_feed(rss, item)
            end

            class Link < LinkBase
              def to_feed(rss, item)
                if have_required_values?
                  item.link = href
                else
                  raise NotSetError.new("maker.link",
                                        not_set_required_variables)
                end
              end

              private
              def required_variable_names
                %w(href)
              end
            end
          end

          class Contributors < ContributorsBase
            def to_feed(rss, item)
            end

            class Contributor < ContributorBase
            end
          end

          class Rights < RightsBase
            def to_feed(rss, item)
            end
          end

          class Description < DescriptionBase
            def to_feed(rss, item)
              item.description = content if have_required_values?
            end

            private
            def required_variable_names
              %w(content)
            end
          end

          class Content < ContentBase
            def to_feed(rss, item)
            end
          end

          class Title < TitleBase
            def to_feed(rss, item)
              item.title = content if have_required_values?
            end

            private
            def required_variable_names
              %w(content)
            end
          end
        end
      end

      class Textinput < TextinputBase
        def to_feed(rss)
          textInput = Rss::Channel::TextInput.new
          set = setup_values(textInput)
          if set
            rss.channel.textInput = textInput
            set_parent(textInput, rss.channel)
            setup_other_elements(rss, textInput)
          end
        end

        private
        def required_variable_names
          %w(title description name link)
        end
      end
    end

    class RSS091 < RSS09
      def initialize(feed_version="0.91")
        super
      end

      class Channel < RSS09::Channel
      end

      class Items < RSS09::Items
        class Item < RSS09::Items::Item
        end
      end

      class Image < RSS09::Image
      end

      class Textinput < RSS09::Textinput
      end
    end

    class RSS092 < RSS09
      def initialize(feed_version="0.92")
        super
      end

      class Channel < RSS09::Channel
      end

      class Items < RSS09::Items
        class Item < RSS09::Items::Item
        end
      end

      class Image < RSS09::Image
      end

      class Textinput < RSS09::Textinput
      end
    end

    add_maker("0.9", "0.92", RSS092)
    add_maker("0.91", "0.91", RSS091)
    add_maker("0.92", "0.92", RSS092)
    add_maker("rss0.9", "0.92", RSS092)
    add_maker("rss0.91", "0.91", RSS091)
    add_maker("rss0.92", "0.92", RSS092)
  end
end
lib64/ruby/2.2.0/rss/maker/syndication.rb000064400000000535150402106320013657 0ustar00require 'rss/syndication'
require 'rss/maker/1.0'

module RSS
  module Maker
    module SyndicationModel
      def self.append_features(klass)
        super

        ::RSS::SyndicationModel::ELEMENTS.each do |name|
          klass.def_other_element(name)
        end
      end
    end

    class ChannelBase; include SyndicationModel; end
  end
end
lib64/ruby/2.2.0/rss/maker/itunes.rb000064400000016411150402106320012642 0ustar00require 'rss/itunes'
require 'rss/maker/2.0'

module RSS
  module Maker
    module ITunesBaseModel
      def def_class_accessor(klass, name, type, *args)
        name = name.gsub(/-/, "_").gsub(/^itunes_/, '')
        full_name = "#{RSS::ITUNES_PREFIX}_#{name}"
        case type
        when nil
          klass.def_other_element(full_name)
        when :yes_other
          def_yes_other_accessor(klass, full_name)
        when :yes_clean_other
          def_yes_clean_other_accessor(klass, full_name)
        when :csv
          def_csv_accessor(klass, full_name)
        when :element, :attribute
          recommended_attribute_name, = *args
          klass_name = "ITunes#{Utils.to_class_name(name)}"
          klass.def_classed_element(full_name, klass_name,
                                    recommended_attribute_name)
        when :elements
          plural_name, recommended_attribute_name = args
          plural_name ||= "#{name}s"
          full_plural_name = "#{RSS::ITUNES_PREFIX}_#{plural_name}"
          klass_name = "ITunes#{Utils.to_class_name(name)}"
          plural_klass_name = "ITunes#{Utils.to_class_name(plural_name)}"
          def_elements_class_accessor(klass, name, full_name, full_plural_name,
                                      klass_name, plural_klass_name,
                                      recommended_attribute_name)
        end
      end

      def def_yes_other_accessor(klass, full_name)
        klass.def_other_element(full_name)
        klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          def #{full_name}?
            Utils::YesOther.parse(@#{full_name})
          end
        EOC
      end

      def def_yes_clean_other_accessor(klass, full_name)
        klass.def_other_element(full_name)
        klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          def #{full_name}?
            Utils::YesCleanOther.parse(#{full_name})
          end
        EOC
      end

      def def_csv_accessor(klass, full_name)
        klass.def_csv_element(full_name)
      end

      def def_elements_class_accessor(klass, name, full_name, full_plural_name,
                                      klass_name, plural_klass_name,
                                      recommended_attribute_name=nil)
        if recommended_attribute_name
          klass.def_classed_elements(full_name, recommended_attribute_name,
                                     plural_klass_name, full_plural_name)
        else
          klass.def_classed_element(full_plural_name, plural_klass_name)
        end
        klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          def new_#{full_name}(text=nil)
            #{full_name} = @#{full_plural_name}.new_#{name}
            #{full_name}.text = text
            if block_given?
              yield #{full_name}
            else
              #{full_name}
            end
          end
        EOC
      end
    end

    module ITunesChannelModel
      extend ITunesBaseModel

      class << self
        def append_features(klass)
          super

          ::RSS::ITunesChannelModel::ELEMENT_INFOS.each do |name, type, *args|
            def_class_accessor(klass, name, type, *args)
          end
        end
      end

      class ITunesCategoriesBase < Base
        def_array_element("category", "itunes_categories",
                          "ITunesCategory")
        class ITunesCategoryBase < Base
          attr_accessor :text
          add_need_initialize_variable("text")
          def_array_element("category", "itunes_categories",
                            "ITunesCategory")

          def have_required_values?
            text
          end

          alias_method :to_feed_for_categories, :to_feed
          def to_feed(feed, current)
            if text and current.respond_to?(:itunes_category)
              new_item = current.class::ITunesCategory.new(text)
              to_feed_for_categories(feed, new_item)
              current.itunes_categories << new_item
            end
          end
        end
      end

      class ITunesImageBase < Base
        add_need_initialize_variable("href")
        attr_accessor("href")

        def to_feed(feed, current)
          if @href and current.respond_to?(:itunes_image)
            current.itunes_image ||= current.class::ITunesImage.new
            current.itunes_image.href = @href
          end
        end
      end

      class ITunesOwnerBase < Base
        %w(itunes_name itunes_email).each do |name|
          add_need_initialize_variable(name)
          attr_accessor(name)
        end

        def to_feed(feed, current)
          if current.respond_to?(:itunes_owner=)
            _not_set_required_variables = not_set_required_variables
            if (required_variable_names - _not_set_required_variables).empty?
              return
            end

            unless have_required_values?
              raise NotSetError.new("maker.channel.itunes_owner",
                                    _not_set_required_variables)
            end
            current.itunes_owner ||= current.class::ITunesOwner.new
            current.itunes_owner.itunes_name = @itunes_name
            current.itunes_owner.itunes_email = @itunes_email
          end
        end

        private
        def required_variable_names
          %w(itunes_name itunes_email)
        end
      end
    end

    module ITunesItemModel
      extend ITunesBaseModel

      class << self
        def append_features(klass)
          super

          ::RSS::ITunesItemModel::ELEMENT_INFOS.each do |name, type, *args|
            def_class_accessor(klass, name, type, *args)
          end
        end
      end

      class ITunesDurationBase < Base
        attr_reader :content
        add_need_initialize_variable("content")

        %w(hour minute second).each do |name|
          attr_reader(name)
          add_need_initialize_variable(name, 0)
        end

        def content=(content)
          if content.nil?
            @hour, @minute, @second, @content = nil
          else
            @hour, @minute, @second =
              ::RSS::ITunesItemModel::ITunesDuration.parse(content)
            @content = content
          end
        end

        def hour=(hour)
          @hour = Integer(hour)
          update_content
        end

        def minute=(minute)
          @minute = Integer(minute)
          update_content
        end

        def second=(second)
          @second = Integer(second)
          update_content
        end

        def to_feed(feed, current)
          if @content and current.respond_to?(:itunes_duration=)
            current.itunes_duration ||= current.class::ITunesDuration.new
            current.itunes_duration.content = @content
          end
        end

        private
        def update_content
          components = [@hour, @minute, @second]
          @content =
            ::RSS::ITunesItemModel::ITunesDuration.construct(*components)
        end
      end
    end

    class ChannelBase
      include Maker::ITunesChannelModel
      class ITunesCategories < ITunesCategoriesBase
        class ITunesCategory < ITunesCategoryBase
          ITunesCategory = self
        end
      end

      class ITunesImage < ITunesImageBase; end
      class ITunesOwner < ITunesOwnerBase; end
    end

    class ItemsBase
      class ItemBase
        include Maker::ITunesItemModel
        class ITunesDuration < ITunesDurationBase; end
      end
    end
  end
end
lib64/ruby/2.2.0/rss/maker/base.rb000064400000060074150402106320012251 0ustar00require 'forwardable'

require 'rss/rss'

module RSS
  module Maker
    class Base
      extend Utils::InheritedReader

      OTHER_ELEMENTS = []
      NEED_INITIALIZE_VARIABLES = []

      class << self
        def other_elements
          inherited_array_reader("OTHER_ELEMENTS")
        end
        def need_initialize_variables
          inherited_array_reader("NEED_INITIALIZE_VARIABLES")
        end

        def inherited_base
          ::RSS::Maker::Base
        end

        def inherited(subclass)
          subclass.const_set(:OTHER_ELEMENTS, [])
          subclass.const_set(:NEED_INITIALIZE_VARIABLES, [])
        end

        def add_other_element(variable_name)
          self::OTHER_ELEMENTS << variable_name
        end

        def add_need_initialize_variable(variable_name, init_value=nil,
                                         &init_block)
          init_value ||= init_block
          self::NEED_INITIALIZE_VARIABLES << [variable_name, init_value]
        end

        def def_array_element(name, plural=nil, klass_name=nil)
          include Enumerable
          extend Forwardable

          plural ||= "#{name}s"
          klass_name ||= Utils.to_class_name(name)
          def_delegators("@#{plural}", :<<, :[], :[]=, :first, :last)
          def_delegators("@#{plural}", :push, :pop, :shift, :unshift)
          def_delegators("@#{plural}", :each, :size, :empty?, :clear)

          add_need_initialize_variable(plural) {[]}

          module_eval(<<-EOC, __FILE__, __LINE__ + 1)
            def new_#{name}
              #{name} = self.class::#{klass_name}.new(@maker)
              @#{plural} << #{name}
              if block_given?
                yield #{name}
              else
                #{name}
              end
            end
            alias new_child new_#{name}

            def to_feed(*args)
              @#{plural}.each do |#{name}|
                #{name}.to_feed(*args)
              end
            end

            def replace(elements)
              @#{plural}.replace(elements.to_a)
            end
          EOC
        end

        def def_classed_element_without_accessor(name, class_name=nil)
          class_name ||= Utils.to_class_name(name)
          add_other_element(name)
          add_need_initialize_variable(name) do |object|
            object.send("make_#{name}")
          end
          module_eval(<<-EOC, __FILE__, __LINE__ + 1)
            private
            def setup_#{name}(feed, current)
              @#{name}.to_feed(feed, current)
            end

            def make_#{name}
              self.class::#{class_name}.new(@maker)
            end
          EOC
        end

        def def_classed_element(name, class_name=nil, attribute_name=nil)
          def_classed_element_without_accessor(name, class_name)
          if attribute_name
            module_eval(<<-EOC, __FILE__, __LINE__ + 1)
              def #{name}
                if block_given?
                  yield(@#{name})
                else
                  @#{name}.#{attribute_name}
                end
              end

              def #{name}=(new_value)
                @#{name}.#{attribute_name} = new_value
              end
            EOC
          else
            attr_reader name
          end
        end

        def def_classed_elements(name, attribute, plural_class_name=nil,
                                 plural_name=nil, new_name=nil)
          plural_name ||= "#{name}s"
          new_name ||= name
          def_classed_element(plural_name, plural_class_name)
          local_variable_name = "_#{name}"
          new_value_variable_name = "new_value"
          additional_setup_code = nil
          if block_given?
            additional_setup_code = yield(local_variable_name,
                                          new_value_variable_name)
          end
          module_eval(<<-EOC, __FILE__, __LINE__ + 1)
            def #{name}
              #{local_variable_name} = #{plural_name}.first
              #{local_variable_name} ? #{local_variable_name}.#{attribute} : nil
            end

            def #{name}=(#{new_value_variable_name})
              #{local_variable_name} =
                #{plural_name}.first || #{plural_name}.new_#{new_name}
              #{additional_setup_code}
              #{local_variable_name}.#{attribute} = #{new_value_variable_name}
            end
          EOC
        end

        def def_other_element(name)
          attr_accessor name
          def_other_element_without_accessor(name)
        end

        def def_other_element_without_accessor(name)
          add_need_initialize_variable(name)
          add_other_element(name)
          module_eval(<<-EOC, __FILE__, __LINE__ + 1)
            def setup_#{name}(feed, current)
              if !@#{name}.nil? and current.respond_to?(:#{name}=)
                current.#{name} = @#{name}
              end
            end
          EOC
        end

        def def_csv_element(name, type=nil)
          def_other_element_without_accessor(name)
          attr_reader(name)
          converter = ""
          if type == :integer
            converter = "{|v| Integer(v)}"
          end
          module_eval(<<-EOC, __FILE__, __LINE__ + 1)
            def #{name}=(value)
              @#{name} = Utils::CSV.parse(value)#{converter}
            end
          EOC
        end
      end

      attr_reader :maker
      def initialize(maker)
        @maker = maker
        @default_values_are_set = false
        initialize_variables
      end

      def have_required_values?
        not_set_required_variables.empty?
      end

      def variable_is_set?
        variables.any? {|var| not __send__(var).nil?}
      end

      private
      def initialize_variables
        self.class.need_initialize_variables.each do |variable_name, init_value|
          if init_value.nil?
            value = nil
          else
            if init_value.respond_to?(:call)
              value = init_value.call(self)
            elsif init_value.is_a?(String)
              # just for backward compatibility
              value = instance_eval(init_value, __FILE__, __LINE__)
            else
              value = init_value
            end
          end
          instance_variable_set("@#{variable_name}", value)
        end
      end

      def setup_other_elements(feed, current=nil)
        current ||= current_element(feed)
        self.class.other_elements.each do |element|
          __send__("setup_#{element}", feed, current)
        end
      end

      def current_element(feed)
        feed
      end

      def set_default_values(&block)
        return yield if @default_values_are_set

        begin
          @default_values_are_set = true
          _set_default_values(&block)
        ensure
          @default_values_are_set = false
        end
      end

      def _set_default_values(&block)
        yield
      end

      def setup_values(target)
        set = false
        if have_required_values?
          variables.each do |var|
            setter = "#{var}="
            if target.respond_to?(setter)
              value = __send__(var)
              unless value.nil?
                target.__send__(setter, value)
                set = true
              end
            end
          end
        end
        set
      end

      def set_parent(target, parent)
        target.parent = parent if target.class.need_parent?
      end

      def variables
        self.class.need_initialize_variables.find_all do |name, init|
          # init == "nil" is just for backward compatibility
          init.nil? or init == "nil"
        end.collect do |name, init|
          name
        end
      end

      def not_set_required_variables
        required_variable_names.find_all do |var|
          __send__(var).nil?
        end
      end

      def required_variables_are_set?
        required_variable_names.each do |var|
          return false if __send__(var).nil?
        end
        true
      end
    end

    module AtomPersonConstructBase
      def self.append_features(klass)
        super

        klass.class_eval(<<-EOC, __FILE__, __LINE__ + 1)
          %w(name uri email).each do |element|
            attr_accessor element
            add_need_initialize_variable(element)
          end
        EOC
      end
    end

    module AtomTextConstructBase
      module EnsureXMLContent
        class << self
          def included(base)
            super
            base.class_eval do
              %w(type content xml_content).each do |element|
                attr_reader element
                attr_writer element if element != "xml_content"
                add_need_initialize_variable(element)
              end

              alias_method(:xhtml, :xml_content)
            end
          end
        end

        def ensure_xml_content(content)
          xhtml_uri = ::RSS::Atom::XHTML_URI
          unless content.is_a?(RSS::XML::Element) and
              ["div", xhtml_uri] == [content.name, content.uri]
            children = content
            children = [children] unless content.is_a?(Array)
            children = set_xhtml_uri_as_default_uri(children)
            content = RSS::XML::Element.new("div", nil, xhtml_uri,
                                            {"xmlns" => xhtml_uri},
                                            children)
          end
          content
        end

        def xml_content=(content)
          @xml_content = ensure_xml_content(content)
        end

        def xhtml=(content)
          self.xml_content = content
        end

        private
        def set_xhtml_uri_as_default_uri(children)
          children.collect do |child|
            if child.is_a?(RSS::XML::Element) and
                child.prefix.nil? and child.uri.nil?
              RSS::XML::Element.new(child.name, nil, ::RSS::Atom::XHTML_URI,
                                    child.attributes.dup,
                                    set_xhtml_uri_as_default_uri(child.children))
            else
              child
            end
          end
        end
      end

      def self.append_features(klass)
        super

        klass.class_eval do
          include EnsureXMLContent
        end
      end
    end

    module SetupDefaultDate
      private
      def _set_default_values
        keep = {
          :date => date,
          :dc_dates => dc_dates.to_a.dup,
        }
        _date = _parse_date_if_needed(date)
        if _date and !dc_dates.any? {|dc_date| dc_date.value == _date}
          dc_date = self.class::DublinCoreDates::DublinCoreDate.new(self)
          dc_date.value = _date.dup
          dc_dates.unshift(dc_date)
        end
        self.date ||= self.dc_date
        super
      ensure
        self.date = keep[:date]
        dc_dates.replace(keep[:dc_dates])
      end

      def _parse_date_if_needed(date_value)
        date_value = Time.parse(date_value) if date_value.is_a?(String)
        date_value
      end
    end

    module SetupDefaultLanguage
      private
      def _set_default_values
        keep = {
          :dc_languages => dc_languages.to_a.dup,
        }
        _language = language
        if _language and
            !dc_languages.any? {|dc_language| dc_language.value == _language}
          dc_language = self.class::DublinCoreLanguages::DublinCoreLanguage.new(self)
          dc_language.value = _language.dup
          dc_languages.unshift(dc_language)
        end
        super
      ensure
        dc_languages.replace(keep[:dc_languages])
      end
    end

    class RSSBase < Base
      class << self
        def make(*args, &block)
          new(*args).make(&block)
        end
      end

      %w(xml_stylesheets channel image items textinput).each do |element|
        attr_reader element
        add_need_initialize_variable(element) do |object|
          object.send("make_#{element}")
        end
        module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          private
          def setup_#{element}(feed)
            @#{element}.to_feed(feed)
          end

          def make_#{element}
            self.class::#{Utils.to_class_name(element)}.new(self)
          end
        EOC
      end

      attr_reader :feed_version
      alias_method(:rss_version, :feed_version)
      attr_accessor :version, :encoding, :standalone

      def initialize(feed_version)
        super(self)
        @feed_type = nil
        @feed_subtype = nil
        @feed_version = feed_version
        @version = "1.0"
        @encoding = "UTF-8"
        @standalone = nil
      end

      def make
        yield(self)
        to_feed
      end

      def to_feed
        feed = make_feed
        setup_xml_stylesheets(feed)
        setup_elements(feed)
        setup_other_elements(feed)
        feed.validate
        feed
      end

      private
      remove_method :make_xml_stylesheets
      def make_xml_stylesheets
        XMLStyleSheets.new(self)
      end
    end

    class XMLStyleSheets < Base
      def_array_element("xml_stylesheet", nil, "XMLStyleSheet")

      class XMLStyleSheet < Base

        ::RSS::XMLStyleSheet::ATTRIBUTES.each do |attribute|
          attr_accessor attribute
          add_need_initialize_variable(attribute)
        end

        def to_feed(feed)
          xss = ::RSS::XMLStyleSheet.new
          guess_type_if_need(xss)
          set = setup_values(xss)
          if set
            feed.xml_stylesheets << xss
          end
        end

        private
        def guess_type_if_need(xss)
          if @type.nil?
            xss.href = @href
            @type = xss.type
          end
        end

        def required_variable_names
          %w(href type)
        end
      end
    end

    class ChannelBase < Base
      include SetupDefaultDate

      %w(cloud categories skipDays skipHours).each do |name|
        def_classed_element(name)
      end

      %w(generator copyright description title).each do |name|
        def_classed_element(name, nil, "content")
      end

      [
       ["link", "href", Proc.new {|target,| "#{target}.href = 'self'"}],
       ["author", "name"],
       ["contributor", "name"],
      ].each do |name, attribute, additional_setup_maker|
        def_classed_elements(name, attribute, &additional_setup_maker)
      end

      %w(id about language
         managingEditor webMaster rating docs ttl).each do |element|
        attr_accessor element
        add_need_initialize_variable(element)
      end

      %w(date lastBuildDate).each do |date_element|
        attr_reader date_element
        add_need_initialize_variable(date_element)
      end

      def date=(_date)
        @date = _parse_date_if_needed(_date)
      end

      def lastBuildDate=(_date)
        @lastBuildDate = _parse_date_if_needed(_date)
      end

      def pubDate
        date
      end

      def pubDate=(date)
        self.date = date
      end

      def updated
        date
      end

      def updated=(date)
        self.date = date
      end

      alias_method(:rights, :copyright)
      alias_method(:rights=, :copyright=)

      alias_method(:subtitle, :description)
      alias_method(:subtitle=, :description=)

      def icon
        image_favicon.about
      end

      def icon=(url)
        image_favicon.about = url
      end

      def logo
        maker.image.url
      end

      def logo=(url)
        maker.image.url = url
      end

      class SkipDaysBase < Base
        def_array_element("day")

        class DayBase < Base
          %w(content).each do |element|
            attr_accessor element
            add_need_initialize_variable(element)
          end
        end
      end

      class SkipHoursBase < Base
        def_array_element("hour")

        class HourBase < Base
          %w(content).each do |element|
            attr_accessor element
            add_need_initialize_variable(element)
          end
        end
      end

      class CloudBase < Base
        %w(domain port path registerProcedure protocol).each do |element|
          attr_accessor element
          add_need_initialize_variable(element)
        end
      end

      class CategoriesBase < Base
        def_array_element("category", "categories")

        class CategoryBase < Base
          %w(domain content label).each do |element|
            attr_accessor element
            add_need_initialize_variable(element)
          end

          alias_method(:term, :domain)
          alias_method(:term=, :domain=)
          alias_method(:scheme, :content)
          alias_method(:scheme=, :content=)
        end
      end

      class LinksBase < Base
        def_array_element("link")

        class LinkBase < Base
          %w(href rel type hreflang title length).each do |element|
            attr_accessor element
            add_need_initialize_variable(element)
          end
        end
      end

      class AuthorsBase < Base
        def_array_element("author")

        class AuthorBase < Base
          include AtomPersonConstructBase
        end
      end

      class ContributorsBase < Base
        def_array_element("contributor")

        class ContributorBase < Base
          include AtomPersonConstructBase
        end
      end

      class GeneratorBase < Base
        %w(uri version content).each do |element|
          attr_accessor element
          add_need_initialize_variable(element)
        end
      end

      class CopyrightBase < Base
        include AtomTextConstructBase
      end

      class DescriptionBase < Base
        include AtomTextConstructBase
      end

      class TitleBase < Base
        include AtomTextConstructBase
      end
    end

    class ImageBase < Base
      %w(title url width height description).each do |element|
        attr_accessor element
        add_need_initialize_variable(element)
      end

      def link
        @maker.channel.link
      end
    end

    class ItemsBase < Base
      def_array_element("item")

      attr_accessor :do_sort, :max_size

      def initialize(maker)
        super
        @do_sort = false
        @max_size = -1
      end

      def normalize
        if @max_size >= 0
          sort_if_need[0...@max_size]
        else
          sort_if_need[0..@max_size]
        end
      end

      private
      def sort_if_need
        if @do_sort.respond_to?(:call)
          @items.sort do |x, y|
            @do_sort.call(x, y)
          end
        elsif @do_sort
          @items.sort do |x, y|
            y <=> x
          end
        else
          @items
        end
      end

      class ItemBase < Base
        include SetupDefaultDate

        %w(guid enclosure source categories content).each do |name|
          def_classed_element(name)
        end

        %w(rights description title).each do |name|
          def_classed_element(name, nil, "content")
        end

        [
         ["author", "name"],
         ["link", "href", Proc.new {|target,| "#{target}.href = 'alternate'"}],
         ["contributor", "name"],
        ].each do |name, attribute|
          def_classed_elements(name, attribute)
        end

        %w(comments id published).each do |element|
          attr_accessor element
          add_need_initialize_variable(element)
        end

        %w(date).each do |date_element|
          attr_reader date_element
          add_need_initialize_variable(date_element)
        end

        def date=(_date)
          @date = _parse_date_if_needed(_date)
        end

        def pubDate
          date
        end

        def pubDate=(date)
          self.date = date
        end

        def updated
          date
        end

        def updated=(date)
          self.date = date
        end

        alias_method(:summary, :description)
        alias_method(:summary=, :description=)

        def <=>(other)
          _date = date || dc_date
          _other_date = other.date || other.dc_date
          if _date and _other_date
            _date <=> _other_date
          elsif _date
            1
          elsif _other_date
            -1
          else
            0
          end
        end

        class GuidBase < Base
          %w(isPermaLink content).each do |element|
            attr_accessor element
            add_need_initialize_variable(element)
          end

          def permanent_link?
            isPermaLink
          end

          def permanent_link=(bool)
            self.isPermaLink = bool
          end
        end

        class EnclosureBase < Base
          %w(url length type).each do |element|
            attr_accessor element
            add_need_initialize_variable(element)
          end
        end

        class SourceBase < Base
          include SetupDefaultDate

          %w(authors categories contributors generator icon
             logo rights subtitle title).each do |name|
            def_classed_element(name)
          end

          [
           ["link", "href"],
          ].each do |name, attribute|
            def_classed_elements(name, attribute)
          end

          %w(id content).each do |element|
            attr_accessor element
            add_need_initialize_variable(element)
          end

          alias_method(:url, :link)
          alias_method(:url=, :link=)

          %w(date).each do |date_element|
            attr_reader date_element
            add_need_initialize_variable(date_element)
          end

          def date=(_date)
            @date = _parse_date_if_needed(_date)
          end

          def updated
            date
          end

          def updated=(date)
            self.date = date
          end

          private
          AuthorsBase = ChannelBase::AuthorsBase
          CategoriesBase = ChannelBase::CategoriesBase
          ContributorsBase = ChannelBase::ContributorsBase
          GeneratorBase = ChannelBase::GeneratorBase

          class IconBase < Base
            %w(url).each do |element|
              attr_accessor element
              add_need_initialize_variable(element)
            end
          end

          LinksBase = ChannelBase::LinksBase

          class LogoBase < Base
            %w(uri).each do |element|
              attr_accessor element
              add_need_initialize_variable(element)
            end
          end

          class RightsBase < Base
            include AtomTextConstructBase
          end

          class SubtitleBase < Base
            include AtomTextConstructBase
          end

          class TitleBase < Base
            include AtomTextConstructBase
          end
        end

        CategoriesBase = ChannelBase::CategoriesBase
        AuthorsBase = ChannelBase::AuthorsBase
        LinksBase = ChannelBase::LinksBase
        ContributorsBase = ChannelBase::ContributorsBase

        class RightsBase < Base
          include AtomTextConstructBase
        end

        class DescriptionBase < Base
          include AtomTextConstructBase
        end

        class ContentBase < Base
          include AtomTextConstructBase::EnsureXMLContent

          %w(src).each do |element|
            attr_accessor(element)
            add_need_initialize_variable(element)
          end

          def xml_content=(content)
            content = ensure_xml_content(content) if inline_xhtml?
            @xml_content = content
          end

          alias_method(:xml, :xml_content)
          alias_method(:xml=, :xml_content=)

          def inline_text?
            [nil, "text", "html"].include?(@type)
          end

          def inline_html?
            @type == "html"
          end

          def inline_xhtml?
            @type == "xhtml"
          end

          def inline_other?
            !out_of_line? and ![nil, "text", "html", "xhtml"].include?(@type)
          end

          def inline_other_text?
            return false if @type.nil? or out_of_line?
            /\Atext\//i.match(@type) ? true : false
          end

          def inline_other_xml?
            return false if @type.nil? or out_of_line?
            /[\+\/]xml\z/i.match(@type) ? true : false
          end

          def inline_other_base64?
            return false if @type.nil? or out_of_line?
            @type.include?("/") and !inline_other_text? and !inline_other_xml?
          end

          def out_of_line?
            not @src.nil? and @content.nil?
          end
        end

        class TitleBase < Base
          include AtomTextConstructBase
        end
      end
    end

    class TextinputBase < Base
      %w(title description name link).each do |element|
        attr_accessor element
        add_need_initialize_variable(element)
      end
    end
  end
end
lib64/ruby/2.2.0/rss/maker/1.0.rb000064400000024016150402106320011631 0ustar00require "rss/1.0"

require "rss/maker/base"

module RSS
  module Maker

    class RSS10 < RSSBase

      def initialize(feed_version="1.0")
        super
        @feed_type = "rss"
      end

      private
      def make_feed
        RDF.new(@version, @encoding, @standalone)
      end

      def setup_elements(rss)
        setup_channel(rss)
        setup_image(rss)
        setup_items(rss)
        setup_textinput(rss)
      end

      class Channel < ChannelBase
        include SetupDefaultLanguage

        def to_feed(rss)
          set_default_values do
            _not_set_required_variables = not_set_required_variables
            if _not_set_required_variables.empty?
              channel = RDF::Channel.new(@about)
              setup_values(channel)
              channel.dc_dates.clear
              rss.channel = channel
              set_parent(channel, rss)
              setup_items(rss)
              setup_image(rss)
              setup_textinput(rss)
              setup_other_elements(rss, channel)
            else
              raise NotSetError.new("maker.channel", _not_set_required_variables)
            end
          end
        end

        private
        def setup_items(rss)
          items = RDF::Channel::Items.new
          seq = items.Seq
          set_parent(items, seq)
          target_items = @maker.items.normalize
          raise NotSetError.new("maker", ["items"]) if target_items.empty?
          target_items.each do |item|
            li = RDF::Channel::Items::Seq::Li.new(item.link)
            seq.lis << li
            set_parent(li, seq)
          end
          rss.channel.items = items
          set_parent(rss.channel, items)
        end

        def setup_image(rss)
          if @maker.image.have_required_values?
            image = RDF::Channel::Image.new(@maker.image.url)
            rss.channel.image = image
            set_parent(image, rss.channel)
          end
        end

        def setup_textinput(rss)
          if @maker.textinput.have_required_values?
            textinput = RDF::Channel::Textinput.new(@maker.textinput.link)
            rss.channel.textinput = textinput
            set_parent(textinput, rss.channel)
          end
        end

        def required_variable_names
          %w(about link)
        end

        def not_set_required_variables
          vars = super
          vars << "description" unless description {|d| d.have_required_values?}
          vars << "title" unless title {|t| t.have_required_values?}
          vars
        end

        class SkipDays < SkipDaysBase
          def to_feed(*args)
          end

          class Day < DayBase
          end
        end

        class SkipHours < SkipHoursBase
          def to_feed(*args)
          end

          class Hour < HourBase
          end
        end

        class Cloud < CloudBase
          def to_feed(*args)
          end
        end

        class Categories < CategoriesBase
          def to_feed(*args)
          end

          class Category < CategoryBase
          end
        end

        class Links < LinksBase
          def to_feed(rss, channel)
            return if @links.empty?
            @links.first.to_feed(rss, channel)
          end

          class Link < LinkBase
            def to_feed(rss, channel)
              if have_required_values?
                channel.link = href
              else
                raise NotSetError.new("maker.channel.link",
                                      not_set_required_variables)
              end
            end

            private
            def required_variable_names
              %w(href)
            end
          end
        end

        class Authors < AuthorsBase
          def to_feed(rss, channel)
          end

          class Author < AuthorBase
            def to_feed(rss, channel)
            end
          end
        end

        class Contributors < ContributorsBase
          def to_feed(rss, channel)
          end

          class Contributor < ContributorBase
          end
        end

        class Generator < GeneratorBase
          def to_feed(rss, channel)
          end
        end

        class Copyright < CopyrightBase
          def to_feed(rss, channel)
          end
        end

        class Description < DescriptionBase
          def to_feed(rss, channel)
            channel.description = content if have_required_values?
          end

          private
          def required_variable_names
            %w(content)
          end
        end

        class Title < TitleBase
          def to_feed(rss, channel)
            channel.title = content if have_required_values?
          end

          private
          def required_variable_names
            %w(content)
          end
        end
      end

      class Image < ImageBase
        def to_feed(rss)
          if @url
            image = RDF::Image.new(@url)
            set = setup_values(image)
            if set
              rss.image = image
              set_parent(image, rss)
              setup_other_elements(rss, image)
            end
          end
        end

        def have_required_values?
          super and @maker.channel.have_required_values?
        end

        private
        def variables
          super + ["link"]
        end

        def required_variable_names
          %w(url title link)
        end
      end

      class Items < ItemsBase
        def to_feed(rss)
          if rss.channel
            normalize.each do |item|
              item.to_feed(rss)
            end
            setup_other_elements(rss, rss.items)
          end
        end

        class Item < ItemBase
          def to_feed(rss)
            set_default_values do
              item = RDF::Item.new(link)
              set = setup_values(item)
              if set
                item.dc_dates.clear
                rss.items << item
                set_parent(item, rss)
                setup_other_elements(rss, item)
              elsif !have_required_values?
                raise NotSetError.new("maker.item", not_set_required_variables)
              end
            end
          end

          private
          def required_variable_names
            %w(link)
          end

          def variables
            super + %w(link)
          end

          def not_set_required_variables
            set_default_values do
              vars = super
              vars << "title" unless title {|t| t.have_required_values?}
              vars
            end
          end

          class Guid < GuidBase
            def to_feed(*args)
            end
          end

          class Enclosure < EnclosureBase
            def to_feed(*args)
            end
          end

          class Source < SourceBase
            def to_feed(*args)
            end

            class Authors < AuthorsBase
              def to_feed(*args)
              end

              class Author < AuthorBase
              end
            end

            class Categories < CategoriesBase
              def to_feed(*args)
              end

              class Category < CategoryBase
              end
            end

            class Contributors < ContributorsBase
              def to_feed(*args)
              end

              class Contributor < ContributorBase
              end
            end

            class Generator < GeneratorBase
              def to_feed(*args)
              end
            end

            class Icon < IconBase
              def to_feed(*args)
              end
            end

            class Links < LinksBase
              def to_feed(*args)
              end

              class Link < LinkBase
              end
            end

            class Logo < LogoBase
              def to_feed(*args)
              end
            end

            class Rights < RightsBase
              def to_feed(*args)
              end
            end

            class Subtitle < SubtitleBase
              def to_feed(*args)
              end
            end

            class Title < TitleBase
              def to_feed(*args)
              end
            end
          end

          class Categories < CategoriesBase
            def to_feed(*args)
            end

            class Category < CategoryBase
            end
          end

          class Authors < AuthorsBase
            def to_feed(*args)
            end

            class Author < AuthorBase
            end
          end

          class Links < LinksBase
            def to_feed(*args)
            end

            class Link < LinkBase
            end
          end

          class Contributors < ContributorsBase
            def to_feed(rss, item)
            end

            class Contributor < ContributorBase
            end
          end

          class Rights < RightsBase
            def to_feed(rss, item)
            end
          end

          class Description < DescriptionBase
            def to_feed(rss, item)
              item.description = content if have_required_values?
            end

            private
            def required_variable_names
              %w(content)
            end
          end

          class Content < ContentBase
            def to_feed(rss, item)
            end
          end

          class Title < TitleBase
            def to_feed(rss, item)
              item.title = content if have_required_values?
            end

            private
            def required_variable_names
              %w(content)
            end
          end
        end
      end

      class Textinput < TextinputBase
        def to_feed(rss)
          if @link
            textinput = RDF::Textinput.new(@link)
            set = setup_values(textinput)
            if set
              rss.textinput = textinput
              set_parent(textinput, rss)
              setup_other_elements(rss, textinput)
            end
          end
        end

        def have_required_values?
          super and @maker.channel.have_required_values?
        end

        private
        def required_variable_names
          %w(title description name link)
        end
      end
    end

    add_maker("1.0", "1.0", RSS10)
    add_maker("rss1.0", "1.0", RSS10)
  end
end
lib64/ruby/2.2.0/rss/maker/slash.rb000064400000001337150402106320012446 0ustar00require 'rss/slash'
require 'rss/maker/1.0'

module RSS
  module Maker
    module SlashModel
      def self.append_features(klass)
        super

        ::RSS::SlashModel::ELEMENT_INFOS.each do |name, type|
          full_name = "#{RSS::SLASH_PREFIX}_#{name}"
          case type
          when :csv_integer
            klass.def_csv_element(full_name, :integer)
          else
            klass.def_other_element(full_name)
          end
        end

        klass.module_eval do
          alias_method(:slash_hit_parades, :slash_hit_parade)
          alias_method(:slash_hit_parades=, :slash_hit_parade=)
        end
      end
    end

    class ItemsBase
      class ItemBase
        include SlashModel
      end
    end
  end
end
lib64/ruby/2.2.0/rss/maker/trackback.rb000064400000003106150402106320013255 0ustar00require 'rss/trackback'
require 'rss/maker/1.0'
require 'rss/maker/2.0'

module RSS
  module Maker
    module TrackBackModel
      def self.append_features(klass)
        super

        klass.def_other_element("#{RSS::TRACKBACK_PREFIX}_ping")
        klass.def_classed_elements("#{RSS::TRACKBACK_PREFIX}_about", "value",
                                   "TrackBackAbouts")
      end

      class TrackBackAboutsBase < Base
        def_array_element("about", nil, "TrackBackAbout")

        class TrackBackAboutBase < Base
          attr_accessor :value
          add_need_initialize_variable("value")

          alias_method(:resource, :value)
          alias_method(:resource=, :value=)
          alias_method(:content, :value)
          alias_method(:content=, :value=)

          def have_required_values?
            @value
          end

          def to_feed(feed, current)
            if current.respond_to?(:trackback_abouts) and have_required_values?
              about = current.class::TrackBackAbout.new
              setup_values(about)
              setup_other_elements(about)
              current.trackback_abouts << about
            end
          end
        end
      end
    end

    class ItemsBase
      class ItemBase; include TrackBackModel; end
    end

    makers.each do |maker|
      maker.module_eval(<<-EOC, __FILE__, __LINE__ + 1)
        class Items
          class Item
            class TrackBackAbouts < TrackBackAboutsBase
              class TrackBackAbout < TrackBackAboutBase
              end
            end
          end
        end
      EOC
    end
  end
end
lib64/ruby/2.2.0/rss/maker/entry.rb000064400000011323150402106320012471 0ustar00require "rss/maker/atom"
require "rss/maker/feed"

module RSS
  module Maker
    module Atom
      class Entry < RSSBase
        def initialize(feed_version="1.0")
          super
          @feed_type = "atom"
          @feed_subtype = "entry"
        end

        private
        def make_feed
          ::RSS::Atom::Entry.new(@version, @encoding, @standalone)
        end

        def setup_elements(entry)
          setup_items(entry)
        end

        class Channel < ChannelBase
          class SkipDays < SkipDaysBase
            class Day < DayBase
            end
          end

          class SkipHours < SkipHoursBase
            class Hour < HourBase
            end
          end

          class Cloud < CloudBase
          end

          Categories = Feed::Channel::Categories
          Links = Feed::Channel::Links
          Authors = Feed::Channel::Authors
          Contributors = Feed::Channel::Contributors

          class Generator < GeneratorBase
            include AtomGenerator

            def self.not_set_name
              "maker.channel.generator"
            end
          end

          Copyright = Feed::Channel::Copyright

          class Description < DescriptionBase
          end

          Title = Feed::Channel::Title
        end

        class Image < ImageBase
        end

        class Items < ItemsBase
          def to_feed(entry)
            (normalize.first || Item.new(@maker)).to_feed(entry)
          end

          class Item < ItemBase
            def to_feed(entry)
              set_default_values do
                setup_values(entry)
                entry.dc_dates.clear
                setup_other_elements(entry)
                unless have_required_values?
                  raise NotSetError.new("maker.item", not_set_required_variables)
                end
              end
            end

            private
            def required_variable_names
              %w(id updated)
            end

            def variables
              super + ["updated"]
            end

            def variable_is_set?
              super or !authors.empty?
            end

            def not_set_required_variables
              set_default_values do
                vars = super
                if authors.all? {|author| !author.have_required_values?}
                  vars << "author"
                end
                vars << "title" unless title {|t| t.have_required_values?}
                vars
              end
            end

            def _set_default_values
              keep = {
                :authors => authors.to_a.dup,
                :contributors => contributors.to_a.dup,
                :categories => categories.to_a.dup,
                :id => id,
                :links => links.to_a.dup,
                :rights => @rights,
                :title => @title,
                :updated => updated,
              }
              authors.replace(@maker.channel.authors) if keep[:authors].empty?
              if keep[:contributors].empty?
                contributors.replace(@maker.channel.contributors)
              end
              if keep[:categories].empty?
                categories.replace(@maker.channel.categories)
              end
              self.id ||= link || @maker.channel.id
              links.replace(@maker.channel.links) if keep[:links].empty?
              unless keep[:rights].variable_is_set?
                @maker.channel.rights {|r| @rights = r}
              end
              unless keep[:title].variable_is_set?
                @maker.channel.title {|t| @title = t}
              end
              self.updated ||= @maker.channel.updated
              super
            ensure
              authors.replace(keep[:authors])
              contributors.replace(keep[:contributors])
              categories.replace(keep[:categories])
              links.replace(keep[:links])
              self.id = keep[:id]
              @rights = keep[:rights]
              @title = keep[:title]
              self.updated = keep[:updated]
            end

            Guid = Feed::Items::Item::Guid
            Enclosure = Feed::Items::Item::Enclosure
            Source = Feed::Items::Item::Source
            Categories = Feed::Items::Item::Categories
            Authors = Feed::Items::Item::Authors
            Contributors = Feed::Items::Item::Contributors
            Links = Feed::Items::Item::Links
            Rights = Feed::Items::Item::Rights
            Description = Feed::Items::Item::Description
            Title = Feed::Items::Item::Title
            Content = Feed::Items::Item::Content
          end
        end

        class Textinput < TextinputBase
        end
      end
    end

    add_maker("atom:entry", "1.0", Atom::Entry)
    add_maker("atom1.0:entry", "1.0", Atom::Entry)
  end
end
lib64/ruby/2.2.0/rss/maker/content.rb000064400000000600150402106320012776 0ustar00require 'rss/content'
require 'rss/maker/1.0'
require 'rss/maker/2.0'

module RSS
  module Maker
    module ContentModel
      def self.append_features(klass)
        super

        ::RSS::ContentModel::ELEMENTS.each do |name|
          klass.def_other_element(name)
        end
      end
    end

    class ItemsBase
      class ItemBase; include ContentModel; end
    end
  end
end
lib64/ruby/2.2.0/rss/maker/atom.rb000064400000010777150402106320012304 0ustar00require "rss/atom"

require "rss/maker/base"

module RSS
  module Maker
    module AtomPersons
      module_function
      def def_atom_persons(klass, name, maker_name, plural=nil)
        plural ||= "#{name}s"
        klass_name = Utils.to_class_name(name)
        plural_klass_name = Utils.to_class_name(plural)

        klass.class_eval(<<-EOC, __FILE__, __LINE__ + 1)
          class #{plural_klass_name} < #{plural_klass_name}Base
            class #{klass_name} < #{klass_name}Base
              def to_feed(feed, current)
                #{name} = feed.class::#{klass_name}.new
                set = setup_values(#{name})
                unless set
                  raise NotSetError.new(#{maker_name.dump},
                                        not_set_required_variables)
                end
                current.#{plural} << #{name}
                set_parent(#{name}, current)
                setup_other_elements(#{name})
              end

              private
              def required_variable_names
                %w(name)
              end
            end
          end
EOC
      end
    end

    module AtomTextConstruct
      class << self
        def def_atom_text_construct(klass, name, maker_name, klass_name=nil,
                                    atom_klass_name=nil)
          klass_name ||= Utils.to_class_name(name)
          atom_klass_name ||= Utils.to_class_name(name)

          klass.class_eval(<<-EOC, __FILE__, __LINE__ + 1)
            class #{klass_name} < #{klass_name}Base
              include #{self.name}
              def to_feed(feed, current)
                #{name} = current.class::#{atom_klass_name}.new
                if setup_values(#{name})
                  current.#{name} = #{name}
                  set_parent(#{name}, current)
                  setup_other_elements(feed)
                elsif variable_is_set?
                  raise NotSetError.new(#{maker_name.dump},
                                        not_set_required_variables)
                end
              end
            end
          EOC
        end
      end

      private
      def required_variable_names
        if type == "xhtml"
          %w(xml_content)
        else
          %w(content)
        end
      end

      def variables
        if type == "xhtml"
          super + %w(xhtml)
        else
          super
        end
      end
    end

    module AtomCategory
      def to_feed(feed, current)
        category = feed.class::Category.new
        set = setup_values(category)
        if set
          current.categories << category
          set_parent(category, current)
          setup_other_elements(feed)
        else
          raise NotSetError.new(self.class.not_set_name,
                                not_set_required_variables)
        end
      end

      private
      def required_variable_names
        %w(term)
      end

      def variables
        super + ["term", "scheme"]
      end
    end

    module AtomLink
      def to_feed(feed, current)
        link = feed.class::Link.new
        set = setup_values(link)
        if set
          current.links << link
          set_parent(link, current)
          setup_other_elements(feed)
        else
          raise NotSetError.new(self.class.not_set_name,
                                not_set_required_variables)
        end
      end

      private
      def required_variable_names
        %w(href)
      end
    end

    module AtomGenerator
      def to_feed(feed, current)
        generator = current.class::Generator.new
        if setup_values(generator)
          current.generator = generator
          set_parent(generator, current)
          setup_other_elements(feed)
        elsif variable_is_set?
          raise NotSetError.new(self.class.not_set_name,
                                not_set_required_variables)
        end
      end

      private
      def required_variable_names
        %w(content)
      end
    end

    module AtomLogo
      def to_feed(feed, current)
        logo = current.class::Logo.new
        class << logo
          alias_method(:uri=, :content=)
        end
        set = setup_values(logo)
        class << logo
          remove_method(:uri=)
        end
        if set
          current.logo = logo
          set_parent(logo, current)
          setup_other_elements(feed)
        elsif variable_is_set?
          raise NotSetError.new(self.class.not_set_name,
                                not_set_required_variables)
        end
      end

      private
      def required_variable_names
        %w(uri)
      end
    end
  end
end
lib64/ruby/2.2.0/rss/maker/2.0.rb000064400000013275150402106320011637 0ustar00require "rss/2.0"

require "rss/maker/0.9"

module RSS
  module Maker

    class RSS20 < RSS09

      def initialize(feed_version="2.0")
        super
      end

      class Channel < RSS09::Channel

        private
        def required_variable_names
          %w(link)
        end

        class SkipDays < RSS09::Channel::SkipDays
          class Day < RSS09::Channel::SkipDays::Day
          end
        end

        class SkipHours < RSS09::Channel::SkipHours
          class Hour < RSS09::Channel::SkipHours::Hour
          end
        end

        class Cloud < RSS09::Channel::Cloud
          def to_feed(rss, channel)
            cloud = Rss::Channel::Cloud.new
            set = setup_values(cloud)
            if set
              channel.cloud = cloud
              set_parent(cloud, channel)
              setup_other_elements(rss, cloud)
            end
          end

          private
          def required_variable_names
            %w(domain port path registerProcedure protocol)
          end
        end

        class Categories < RSS09::Channel::Categories
          def to_feed(rss, channel)
            @categories.each do |category|
              category.to_feed(rss, channel)
            end
          end

          class Category < RSS09::Channel::Categories::Category
            def to_feed(rss, channel)
              category = Rss::Channel::Category.new
              set = setup_values(category)
              if set
                channel.categories << category
                set_parent(category, channel)
                setup_other_elements(rss, category)
              end
            end

            private
            def required_variable_names
              %w(content)
            end
          end
        end

        class Generator < GeneratorBase
          def to_feed(rss, channel)
            channel.generator = content
          end

          private
          def required_variable_names
            %w(content)
          end
        end
      end

      class Image < RSS09::Image
        private
        def required_element?
          false
        end
      end

      class Items < RSS09::Items
        class Item < RSS09::Items::Item
          private
          def required_variable_names
            []
          end

          def not_set_required_variables
            vars = super
            if !title {|t| t.have_required_values?} and
                !description {|d| d.have_required_values?}
              vars << "title or description"
            end
            vars
          end

          def variables
            super + ["pubDate"]
          end

          class Guid < RSS09::Items::Item::Guid
            def to_feed(rss, item)
              guid = Rss::Channel::Item::Guid.new
              set = setup_values(guid)
              if set
                item.guid = guid
                set_parent(guid, item)
                setup_other_elements(rss, guid)
              end
            end

            private
            def required_variable_names
              %w(content)
            end
          end

          class Enclosure < RSS09::Items::Item::Enclosure
            def to_feed(rss, item)
              enclosure = Rss::Channel::Item::Enclosure.new
              set = setup_values(enclosure)
              if set
                item.enclosure = enclosure
                set_parent(enclosure, item)
                setup_other_elements(rss, enclosure)
              end
            end

            private
            def required_variable_names
              %w(url length type)
            end
          end

          class Source < RSS09::Items::Item::Source
            def to_feed(rss, item)
              source = Rss::Channel::Item::Source.new
              set = setup_values(source)
              if set
                item.source = source
                set_parent(source, item)
                setup_other_elements(rss, source)
              end
            end

            private
            def required_variable_names
              %w(url content)
            end

            class Links < RSS09::Items::Item::Source::Links
              def to_feed(rss, source)
                return if @links.empty?
                @links.first.to_feed(rss, source)
              end

              class Link < RSS09::Items::Item::Source::Links::Link
                def to_feed(rss, source)
                  source.url = href
                end
              end
            end
          end

          class Categories < RSS09::Items::Item::Categories
            def to_feed(rss, item)
              @categories.each do |category|
                category.to_feed(rss, item)
              end
            end

            class Category < RSS09::Items::Item::Categories::Category
              def to_feed(rss, item)
                category = Rss::Channel::Item::Category.new
                set = setup_values(category)
                if set
                  item.categories << category
                  set_parent(category, item)
                  setup_other_elements(rss)
                end
              end

              private
              def required_variable_names
                %w(content)
              end
            end
          end

          class Authors < RSS09::Items::Item::Authors
            def to_feed(rss, item)
              return if @authors.empty?
              @authors.first.to_feed(rss, item)
            end

            class Author < RSS09::Items::Item::Authors::Author
              def to_feed(rss, item)
                item.author = name
              end
            end
          end
        end
      end

      class Textinput < RSS09::Textinput
      end
    end

    add_maker("2.0", "2.0", RSS20)
    add_maker("rss2.0", "2.0", RSS20)
  end
end
lib64/ruby/2.2.0/rss/1.0.rb000064400000023154150402106330010535 0ustar00require "rss/parser"

module RSS

  ##
  # = RSS 1.0 support
  #
  # RSS has three different versions. This module contains support for version
  # 1.0[http://web.resource.org/rss/1.0/]
  #
  # == Producing RSS 1.0
  #
  # Producing our own RSS feeds is easy as well. Let's make a very basic feed:
  #
  #  require "rss"
  #
  #  rss = RSS::Maker.make("1.0") do |maker|
  #    maker.channel.language = "en"
  #    maker.channel.author = "matz"
  #    maker.channel.about = "About my feed."
  #    maker.channel.updated = Time.now.to_s
  #    maker.channel.link = "http://www.ruby-lang.org/en/feeds/news.rss"
  #    maker.channel.title = "Example Feed"
  #    maker.channel.description = "A longer description of my feed."
  #    maker.items.new_item do |item|
  #      item.link = "http://www.ruby-lang.org/en/news/2010/12/25/ruby-1-9-2-p136-is-released/"
  #      item.title = "Ruby 1.9.2-p136 is released"
  #      item.updated = Time.now.to_s
  #    end
  #  end
  #
  #  puts rss
  #
  # As you can see, this is a very Builder-like DSL. This code will spit out an
  # RSS 1.0 feed with one item. If we needed a second item, we'd make another
  # block with maker.items.new_item and build a second one.
  module RSS10
    NSPOOL = {}
    ELEMENTS = []

    def self.append_features(klass)
      super

      klass.install_must_call_validator('', ::RSS::URI)
    end

  end

  class RDF < Element

    include RSS10
    include RootElementMixin

    class << self

      def required_uri
        URI
      end

    end

    @tag_name = 'RDF'

    PREFIX = 'rdf'
    URI = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"

    install_ns('', ::RSS::URI)
    install_ns(PREFIX, URI)

    [
      ["channel", nil],
      ["image", "?"],
      ["item", "+", :children],
      ["textinput", "?"],
    ].each do |tag, occurs, type|
      type ||= :child
      __send__("install_have_#{type}_element", tag, ::RSS::URI, occurs)
    end

    alias_method(:rss_version, :feed_version)
    def initialize(version=nil, encoding=nil, standalone=nil)
      super('1.0', version, encoding, standalone)
      @feed_type = "rss"
    end

    def full_name
      tag_name_with_prefix(PREFIX)
    end

    class Li < Element

      include RSS10

      class << self
        def required_uri
          URI
        end
      end

      [
        ["resource", [URI, ""], true]
      ].each do |name, uri, required|
        install_get_attribute(name, uri, required)
      end

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.resource = args[0]
        end
      end

      def full_name
        tag_name_with_prefix(PREFIX)
      end
    end

    class Seq < Element

      include RSS10

      Li = ::RSS::RDF::Li

      class << self
        def required_uri
          URI
        end
      end

      @tag_name = 'Seq'

      install_have_children_element("li", URI, "*")
      install_must_call_validator('rdf', ::RSS::RDF::URI)

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          @li = args[0] if args[0]
        end
      end

      def full_name
        tag_name_with_prefix(PREFIX)
      end

      def setup_maker(target)
        lis.each do |li|
          target << li.resource
        end
      end
    end

    class Bag < Element

      include RSS10

      Li = ::RSS::RDF::Li

      class << self
        def required_uri
          URI
        end
      end

      @tag_name = 'Bag'

      install_have_children_element("li", URI, "*")
      install_must_call_validator('rdf', URI)

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          @li = args[0] if args[0]
        end
      end

      def full_name
        tag_name_with_prefix(PREFIX)
      end

      def setup_maker(target)
        lis.each do |li|
          target << li.resource
        end
      end
    end

    class Channel < Element

      include RSS10

      class << self

        def required_uri
          ::RSS::URI
        end

      end

      [
        ["about", URI, true]
      ].each do |name, uri, required|
        install_get_attribute(name, uri, required, nil, nil,
                              "#{PREFIX}:#{name}")
      end

      [
        ['title', nil, :text],
        ['link', nil, :text],
        ['description', nil, :text],
        ['image', '?', :have_child],
        ['items', nil, :have_child],
        ['textinput', '?', :have_child],
      ].each do |tag, occurs, type|
        __send__("install_#{type}_element", tag, ::RSS::URI, occurs)
      end

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.about = args[0]
        end
      end

      private
      def maker_target(maker)
        maker.channel
      end

      def setup_maker_attributes(channel)
        channel.about = about
      end

      class Image < Element

        include RSS10

        class << self

          def required_uri
            ::RSS::URI
          end

        end

        [
          ["resource", URI, true]
        ].each do |name, uri, required|
          install_get_attribute(name, uri, required, nil, nil,
                                "#{PREFIX}:#{name}")
        end

        def initialize(*args)
          if Utils.element_initialize_arguments?(args)
            super
          else
            super()
            self.resource = args[0]
          end
        end
      end

      class Textinput < Element

        include RSS10

        class << self

          def required_uri
            ::RSS::URI
          end

        end

        [
          ["resource", URI, true]
        ].each do |name, uri, required|
          install_get_attribute(name, uri, required, nil, nil,
                                "#{PREFIX}:#{name}")
        end

        def initialize(*args)
          if Utils.element_initialize_arguments?(args)
            super
          else
            super()
            self.resource = args[0]
          end
        end
      end

      class Items < Element

        include RSS10

        Seq = ::RSS::RDF::Seq

        class << self

          def required_uri
            ::RSS::URI
          end

        end

        install_have_child_element("Seq", URI, nil)
        install_must_call_validator('rdf', URI)

        def initialize(*args)
          if Utils.element_initialize_arguments?(args)
            super
          else
            super()
            self.Seq = args[0]
          end
          self.Seq ||= Seq.new
        end

        def resources
          if @Seq
            @Seq.lis.collect do |li|
              li.resource
            end
          else
            []
          end
        end
      end
    end

    class Image < Element

      include RSS10

      class << self

        def required_uri
          ::RSS::URI
        end

      end

      [
        ["about", URI, true]
      ].each do |name, uri, required|
        install_get_attribute(name, uri, required, nil, nil,
                              "#{PREFIX}:#{name}")
      end

      %w(title url link).each do |name|
        install_text_element(name, ::RSS::URI, nil)
      end

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.about = args[0]
        end
      end

      private
      def maker_target(maker)
        maker.image
      end
    end

    class Item < Element

      include RSS10

      class << self

        def required_uri
          ::RSS::URI
        end

      end


      [
        ["about", URI, true]
      ].each do |name, uri, required|
        install_get_attribute(name, uri, required, nil, nil,
                              "#{PREFIX}:#{name}")
      end

      [
        ["title", nil],
        ["link", nil],
        ["description", "?"],
      ].each do |tag, occurs|
        install_text_element(tag, ::RSS::URI, occurs)
      end

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.about = args[0]
        end
      end

      private
      def maker_target(items)
        if items.respond_to?("items")
          # For backward compatibility
          items = items.items
        end
        items.new_item
      end
    end

    class Textinput < Element

      include RSS10

      class << self

        def required_uri
          ::RSS::URI
        end

      end

      [
        ["about", URI, true]
      ].each do |name, uri, required|
        install_get_attribute(name, uri, required, nil, nil,
                              "#{PREFIX}:#{name}")
      end

      %w(title description name link).each do |name|
        install_text_element(name, ::RSS::URI, nil)
      end

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.about = args[0]
        end
      end

      private
      def maker_target(maker)
        maker.textinput
      end
    end

  end

  RSS10::ELEMENTS.each do |name|
    BaseListener.install_get_text_element(URI, name, name)
  end

  module ListenerMixin
    private
    def initial_start_RDF(tag_name, prefix, attrs, ns)
      check_ns(tag_name, prefix, ns, RDF::URI, false)

      @rss = RDF.new(@version, @encoding, @standalone)
      @rss.do_validate = @do_validate
      @rss.xml_stylesheets = @xml_stylesheets
      @last_element = @rss
      pr = Proc.new do |text, tags|
        @rss.validate_for_stream(tags, @ignore_unknown_element) if @do_validate
      end
      @proc_stack.push(pr)
    end
  end

end
lib64/ruby/2.2.0/rss/slash.rb000064400000002461150402106330011347 0ustar00require 'rss/1.0'

module RSS
  # The prefix for the Slash XML namespace.
  SLASH_PREFIX = 'slash'
  # The URI of the Slash specification.
  SLASH_URI = "http://purl.org/rss/1.0/modules/slash/"

  RDF.install_ns(SLASH_PREFIX, SLASH_URI)

  module SlashModel
    extend BaseModel

    ELEMENT_INFOS = \
    [
     ["section"],
     ["department"],
     ["comments", :positive_integer],
     ["hit_parade", :csv_integer],
    ]

    class << self
      def append_features(klass)
        super

        return if klass.instance_of?(Module)
        klass.install_must_call_validator(SLASH_PREFIX, SLASH_URI)
        ELEMENT_INFOS.each do |name, type, *additional_infos|
          full_name = "#{SLASH_PREFIX}_#{name}"
          klass.install_text_element(full_name, SLASH_URI, "?",
                                     full_name, type, name)
        end

        klass.module_eval do
          alias_method(:slash_hit_parades, :slash_hit_parade)
          undef_method(:slash_hit_parade)
          alias_method(:slash_hit_parade, :slash_hit_parade_content)
        end
      end
    end
  end

  class RDF
    class Item; include SlashModel; end
  end

  SlashModel::ELEMENT_INFOS.each do |name, type|
    accessor_base = "#{SLASH_PREFIX}_#{name}"
    BaseListener.install_get_text_element(SLASH_URI, name, accessor_base)
  end
end
lib64/ruby/2.2.0/rss/trackback.rb000064400000015276150402106330012172 0ustar00# This file contains the implementation of trackbacks. It is entirely internal
# and not useful to outside developers.
require 'rss/1.0'
require 'rss/2.0'

module RSS # :nodoc: all

  TRACKBACK_PREFIX = 'trackback'
  TRACKBACK_URI = 'http://madskills.com/public/xml/rss/module/trackback/'

  RDF.install_ns(TRACKBACK_PREFIX, TRACKBACK_URI)
  Rss.install_ns(TRACKBACK_PREFIX, TRACKBACK_URI)

  module TrackBackUtils
    private
    def trackback_validate(ignore_unknown_element, tags, uri)
      return if tags.nil?
      if tags.find {|tag| tag == "about"} and
          !tags.find {|tag| tag == "ping"}
        raise MissingTagError.new("#{TRACKBACK_PREFIX}:ping", tag_name)
      end
    end
  end

  module BaseTrackBackModel

    ELEMENTS = %w(ping about)

    def append_features(klass)
      super

      unless klass.class == Module
        klass.module_eval {include TrackBackUtils}

        klass.install_must_call_validator(TRACKBACK_PREFIX, TRACKBACK_URI)
        %w(ping).each do |name|
          var_name = "#{TRACKBACK_PREFIX}_#{name}"
          klass_name = "TrackBack#{Utils.to_class_name(name)}"
          klass.install_have_child_element(name, TRACKBACK_URI, "?", var_name)
          klass.module_eval(<<-EOC, __FILE__, __LINE__)
            remove_method :#{var_name}
            def #{var_name}
              @#{var_name} and @#{var_name}.value
            end

            remove_method :#{var_name}=
            def #{var_name}=(value)
              @#{var_name} = Utils.new_with_value_if_need(#{klass_name}, value)
            end
          EOC
        end

        [%w(about s)].each do |name, postfix|
          var_name = "#{TRACKBACK_PREFIX}_#{name}"
          klass_name = "TrackBack#{Utils.to_class_name(name)}"
          klass.install_have_children_element(name, TRACKBACK_URI, "*",
                                              var_name)
          klass.module_eval(<<-EOC, __FILE__, __LINE__)
            remove_method :#{var_name}
            def #{var_name}(*args)
              if args.empty?
                @#{var_name}.first and @#{var_name}.first.value
              else
                ret = @#{var_name}.__send__("[]", *args)
                if ret.is_a?(Array)
                  ret.collect {|x| x.value}
                else
                  ret.value
                end
              end
            end

            remove_method :#{var_name}=
            remove_method :set_#{var_name}
            def #{var_name}=(*args)
              if args.size == 1
                item = Utils.new_with_value_if_need(#{klass_name}, args[0])
                @#{var_name}.push(item)
              else
                new_val = args.last
                if new_val.is_a?(Array)
                  new_val = new_value.collect do |val|
                    Utils.new_with_value_if_need(#{klass_name}, val)
                  end
                else
                  new_val = Utils.new_with_value_if_need(#{klass_name}, new_val)
                end
                @#{var_name}.__send__("[]=", *(args[0..-2] + [new_val]))
              end
            end
            alias set_#{var_name} #{var_name}=
          EOC
        end
      end
    end
  end

  module TrackBackModel10
    extend BaseModel
    extend BaseTrackBackModel

    class TrackBackPing < Element
      include RSS10

      class << self

        def required_prefix
          TRACKBACK_PREFIX
        end

        def required_uri
          TRACKBACK_URI
        end

      end

      @tag_name = "ping"

      [
        ["resource", ::RSS::RDF::URI, true]
      ].each do |name, uri, required|
        install_get_attribute(name, uri, required, nil, nil,
                              "#{::RSS::RDF::PREFIX}:#{name}")
      end

      alias_method(:value, :resource)
      alias_method(:value=, :resource=)
      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.resource = args[0]
        end
      end

      def full_name
        tag_name_with_prefix(TRACKBACK_PREFIX)
      end
    end

    class TrackBackAbout < Element
      include RSS10

      class << self

        def required_prefix
          TRACKBACK_PREFIX
        end

        def required_uri
          TRACKBACK_URI
        end

      end

      @tag_name = "about"

      [
        ["resource", ::RSS::RDF::URI, true]
      ].each do |name, uri, required|
        install_get_attribute(name, uri, required, nil, nil,
                              "#{::RSS::RDF::PREFIX}:#{name}")
      end

      alias_method(:value, :resource)
      alias_method(:value=, :resource=)

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.resource = args[0]
        end
      end

      def full_name
        tag_name_with_prefix(TRACKBACK_PREFIX)
      end

      private
      def maker_target(abouts)
        abouts.new_about
      end

      def setup_maker_attributes(about)
        about.resource = self.resource
      end

    end
  end

  module TrackBackModel20
    extend BaseModel
    extend BaseTrackBackModel

    class TrackBackPing < Element
      include RSS09

      @tag_name = "ping"

      content_setup

      class << self

        def required_prefix
          TRACKBACK_PREFIX
        end

        def required_uri
          TRACKBACK_URI
        end

      end

      alias_method(:value, :content)
      alias_method(:value=, :content=)

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.content = args[0]
        end
      end

      def full_name
        tag_name_with_prefix(TRACKBACK_PREFIX)
      end

    end

    class TrackBackAbout < Element
      include RSS09

      @tag_name = "about"

      content_setup

      class << self

        def required_prefix
          TRACKBACK_PREFIX
        end

        def required_uri
          TRACKBACK_URI
        end

      end

      alias_method(:value, :content)
      alias_method(:value=, :content=)

      def initialize(*args)
        if Utils.element_initialize_arguments?(args)
          super
        else
          super()
          self.content = args[0]
        end
      end

      def full_name
        tag_name_with_prefix(TRACKBACK_PREFIX)
      end

    end
  end

  class RDF
    class Item; include TrackBackModel10; end
  end

  class Rss
    class Channel
      class Item; include TrackBackModel20; end
    end
  end

  BaseTrackBackModel::ELEMENTS.each do |name|
    class_name = Utils.to_class_name(name)
    BaseListener.install_class_name(TRACKBACK_URI, name,
                                    "TrackBack#{class_name}")
  end

  BaseTrackBackModel::ELEMENTS.collect! {|name| "#{TRACKBACK_PREFIX}_#{name}"}
end
lib64/ruby/2.2.0/rss/rss.rb000064400000106226150402106330011050 0ustar00require "time"

class Time
  class << self
    unless respond_to?(:w3cdtf)
      # This method converts a W3CDTF string date/time format to Time object.
      #
      # The W3CDTF format is defined here: http://www.w3.org/TR/NOTE-datetime
      #
      #   Time.w3cdtf('2003-02-15T13:50:05-05:00')
      #   # => 2003-02-15 10:50:05 -0800
      #   Time.w3cdtf('2003-02-15T13:50:05-05:00').class
      #   # => Time
      def w3cdtf(date)
        if /\A\s*
            (-?\d+)-(\d\d)-(\d\d)
            (?:T
            (\d\d):(\d\d)(?::(\d\d))?
            (\.\d+)?
            (Z|[+-]\d\d:\d\d)?)?
            \s*\z/ix =~ date and (($5 and $8) or (!$5 and !$8))
          datetime = [$1.to_i, $2.to_i, $3.to_i, $4.to_i, $5.to_i, $6.to_i]
          usec = 0
          usec = $7.to_f * 1000000 if $7
          zone = $8
          if zone
            off = zone_offset(zone, datetime[0])
            datetime = apply_offset(*(datetime + [off]))
            datetime << usec
            time = Time.utc(*datetime)
            force_zone!(time, zone, off)
            time
          else
            datetime << usec
            Time.local(*datetime)
          end
        else
          raise ArgumentError.new("invalid date: #{date.inspect}")
        end
      end
    end
  end

  unless method_defined?(:w3cdtf)
    # This method converts a Time object to a String. The String contains the
    # time in W3CDTF date/time format.
    #
    # The W3CDTF format is defined here: http://www.w3.org/TR/NOTE-datetime
    #
    #  Time.now.w3cdtf
    #  # => "2013-08-26T14:12:10.817124-07:00"
    def w3cdtf
      if usec.zero?
        fraction_digits = 0
      else
        fraction_digits = strftime('%6N').index(/0*\z/)
      end
      xmlschema(fraction_digits)
    end
  end
end


require "English"
require "rss/utils"
require "rss/converter"
require "rss/xml-stylesheet"

module RSS

  # The current version of RSS
  VERSION = "0.2.7"

  # The URI of the RSS 1.0 specification
  URI = "http://purl.org/rss/1.0/"

  DEBUG = false # :nodoc:

  # The basic error all other RSS errors stem from. Rescue this error if you
  # want to handle any given RSS error and you don't care about the details.
  class Error < StandardError; end

  # RSS, being an XML-based format, has namespace support. If two namespaces are
  # declared with the same name, an OverlappedPrefixError will be raised.
  class OverlappedPrefixError < Error
    attr_reader :prefix
    def initialize(prefix)
      @prefix = prefix
    end
  end

  # The InvalidRSSError error is the base class for a variety of errors
  # related to a poorly-formed RSS feed. Rescue this error if you only
  # care that a file could be invalid, but don't care how it is invalid.
  class InvalidRSSError < Error; end

  # Since RSS is based on XML, it must have opening and closing tags that
  # match. If they don't, a MissingTagError will be raised.
  class MissingTagError < InvalidRSSError
    attr_reader :tag, :parent
    def initialize(tag, parent)
      @tag, @parent = tag, parent
      super("tag <#{tag}> is missing in tag <#{parent}>")
    end
  end

  # Some tags must only exist a specific number of times in a given RSS feed.
  # If a feed has too many occurrences of one of these tags, a TooMuchTagError
  # will be raised.
  class TooMuchTagError < InvalidRSSError
    attr_reader :tag, :parent
    def initialize(tag, parent)
      @tag, @parent = tag, parent
      super("tag <#{tag}> is too much in tag <#{parent}>")
    end
  end

  # Certain attributes are required on specific tags in an RSS feed. If a feed
  # is missing one of these attributes, a MissingAttributeError is raised.
  class MissingAttributeError < InvalidRSSError
    attr_reader :tag, :attribute
    def initialize(tag, attribute)
      @tag, @attribute = tag, attribute
      super("attribute <#{attribute}> is missing in tag <#{tag}>")
    end
  end

  # RSS does not allow for free-form tag names, so if an RSS feed contains a
  # tag that we don't know about, an UnknownTagError is raised.
  class UnknownTagError < InvalidRSSError
    attr_reader :tag, :uri
    def initialize(tag, uri)
      @tag, @uri = tag, uri
      super("tag <#{tag}> is unknown in namespace specified by uri <#{uri}>")
    end
  end

  # Raised when an unexpected tag is encountered.
  class NotExpectedTagError < InvalidRSSError
    attr_reader :tag, :uri, :parent
    def initialize(tag, uri, parent)
      @tag, @uri, @parent = tag, uri, parent
      super("tag <{#{uri}}#{tag}> is not expected in tag <#{parent}>")
    end
  end
  # For backward compatibility :X
  NotExceptedTagError = NotExpectedTagError # :nodoc:

  # Attributes are in key-value form, and if there's no value provided for an
  # attribute, a NotAvailableValueError will be raised.
  class NotAvailableValueError < InvalidRSSError
    attr_reader :tag, :value, :attribute
    def initialize(tag, value, attribute=nil)
      @tag, @value, @attribute = tag, value, attribute
      message = "value <#{value}> of "
      message << "attribute <#{attribute}> of " if attribute
      message << "tag <#{tag}> is not available."
      super(message)
    end
  end

  # Raised when an unknown conversion error occurs.
  class UnknownConversionMethodError < Error
    attr_reader :to, :from
    def initialize(to, from)
      @to = to
      @from = from
      super("can't convert to #{to} from #{from}.")
    end
  end
  # for backward compatibility
  UnknownConvertMethod = UnknownConversionMethodError # :nodoc:

  # Raised when a conversion failure occurs.
  class ConversionError < Error
    attr_reader :string, :to, :from
    def initialize(string, to, from)
      @string = string
      @to = to
      @from = from
      super("can't convert #{@string} to #{to} from #{from}.")
    end
  end

  # Raised when a required variable is not set.
  class NotSetError < Error
    attr_reader :name, :variables
    def initialize(name, variables)
      @name = name
      @variables = variables
      super("required variables of #{@name} are not set: #{@variables.join(', ')}")
    end
  end

  # Raised when a RSS::Maker attempts to use an unknown maker.
  class UnsupportedMakerVersionError < Error
    attr_reader :version
    def initialize(version)
      @version = version
      super("Maker doesn't support version: #{@version}")
    end
  end

  module BaseModel
    include Utils

    def install_have_child_element(tag_name, uri, occurs, name=nil, type=nil)
      name ||= tag_name
      add_need_initialize_variable(name)
      install_model(tag_name, uri, occurs, name)

      writer_type, reader_type = type
      def_corresponded_attr_writer name, writer_type
      def_corresponded_attr_reader name, reader_type
      install_element(name) do |n, elem_name|
        <<-EOC
        if @#{n}
          "\#{@#{n}.to_s(need_convert, indent)}"
        else
          ''
        end
EOC
      end
    end
    alias_method(:install_have_attribute_element, :install_have_child_element)

    def install_have_children_element(tag_name, uri, occurs, name=nil, plural_name=nil)
      name ||= tag_name
      plural_name ||= "#{name}s"
      add_have_children_element(name, plural_name)
      add_plural_form(name, plural_name)
      install_model(tag_name, uri, occurs, plural_name, true)

      def_children_accessor(name, plural_name)
      install_element(name, "s") do |n, elem_name|
        <<-EOC
        rv = []
        @#{n}.each do |x|
          value = "\#{x.to_s(need_convert, indent)}"
          rv << value if /\\A\\s*\\z/ !~ value
        end
        rv.join("\n")
EOC
      end
    end

    def install_text_element(tag_name, uri, occurs, name=nil, type=nil,
                             disp_name=nil)
      name ||= tag_name
      disp_name ||= name
      self::ELEMENTS << name unless self::ELEMENTS.include?(name)
      add_need_initialize_variable(name)
      install_model(tag_name, uri, occurs, name)

      def_corresponded_attr_writer(name, type, disp_name)
      def_corresponded_attr_reader(name, type || :convert)
      install_element(name) do |n, elem_name|
        <<-EOC
        if respond_to?(:#{n}_content)
          content = #{n}_content
        else
          content = @#{n}
        end
        if content
          rv = "\#{indent}<#{elem_name}>"
          value = html_escape(content)
          if need_convert
            rv << convert(value)
          else
            rv << value
          end
            rv << "</#{elem_name}>"
          rv
        else
          ''
        end
EOC
      end
    end

    def install_date_element(tag_name, uri, occurs, name=nil, type=nil, disp_name=nil)
      name ||= tag_name
      type ||= :w3cdtf
      disp_name ||= name
      self::ELEMENTS << name
      add_need_initialize_variable(name)
      install_model(tag_name, uri, occurs, name)

      # accessor
      convert_attr_reader name
      date_writer(name, type, disp_name)

      install_element(name) do |n, elem_name|
        <<-EOC
        if @#{n}
          rv = "\#{indent}<#{elem_name}>"
          value = html_escape(@#{n}.#{type})
          if need_convert
            rv << convert(value)
          else
            rv << value
          end
            rv << "</#{elem_name}>"
          rv
        else
          ''
        end
EOC
      end

    end

    private
    def install_element(name, postfix="")
      elem_name = name.sub('_', ':')
      method_name = "#{name}_element#{postfix}"
      add_to_element_method(method_name)
      module_eval(<<-EOC, *get_file_and_line_from_caller(2))
      def #{method_name}(need_convert=true, indent='')
        #{yield(name, elem_name)}
      end
      private :#{method_name}
EOC
    end

    def inherit_convert_attr_reader(*attrs)
      attrs.each do |attr|
        attr = attr.id2name if attr.kind_of?(Integer)
        module_eval(<<-EOC, *get_file_and_line_from_caller(2))
        def #{attr}_without_inherit
          convert(@#{attr})
        end

        def #{attr}
          if @#{attr}
            #{attr}_without_inherit
          elsif @parent
            @parent.#{attr}
          else
            nil
          end
        end
EOC
      end
    end

    def uri_convert_attr_reader(*attrs)
      attrs.each do |attr|
        attr = attr.id2name if attr.kind_of?(Integer)
        module_eval(<<-EOC, *get_file_and_line_from_caller(2))
        def #{attr}_without_base
          convert(@#{attr})
        end

        def #{attr}
          value = #{attr}_without_base
          return nil if value.nil?
          if /\\A[a-z][a-z0-9+.\\-]*:/i =~ value
            value
          else
            "\#{base}\#{value}"
          end
        end
EOC
      end
    end

    def convert_attr_reader(*attrs)
      attrs.each do |attr|
        attr = attr.id2name if attr.kind_of?(Integer)
        module_eval(<<-EOC, *get_file_and_line_from_caller(2))
        def #{attr}
          convert(@#{attr})
        end
EOC
      end
    end

    def yes_clean_other_attr_reader(*attrs)
      attrs.each do |attr|
        attr = attr.id2name if attr.kind_of?(Integer)
        module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          attr_reader(:#{attr})
          def #{attr}?
            YesCleanOther.parse(@#{attr})
          end
        EOC
      end
    end

    def yes_other_attr_reader(*attrs)
      attrs.each do |attr|
        attr = attr.id2name if attr.kind_of?(Integer)
        module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          attr_reader(:#{attr})
          def #{attr}?
            Utils::YesOther.parse(@#{attr})
          end
        EOC
      end
    end

    def csv_attr_reader(*attrs)
      separator = nil
      if attrs.last.is_a?(Hash)
        options = attrs.pop
        separator = options[:separator]
      end
      separator ||= ", "
      attrs.each do |attr|
        attr = attr.id2name if attr.kind_of?(Integer)
        module_eval(<<-EOC, __FILE__, __LINE__ + 1)
          attr_reader(:#{attr})
          def #{attr}_content
            if @#{attr}.nil?
              @#{attr}
            else
              @#{attr}.join(#{separator.dump})
            end
          end
        EOC
      end
    end

    def date_writer(name, type, disp_name=name)
      module_eval(<<-EOC, *get_file_and_line_from_caller(2))
      def #{name}=(new_value)
        if new_value.nil?
          @#{name} = new_value
        elsif new_value.kind_of?(Time)
          @#{name} = new_value.dup
        else
          if @do_validate
            begin
              @#{name} = Time.__send__('#{type}', new_value)
            rescue ArgumentError
              raise NotAvailableValueError.new('#{disp_name}', new_value)
            end
          else
            @#{name} = nil
            if /\\A\\s*\\z/ !~ new_value.to_s
              begin
                unless Date._parse(new_value, false).empty?
                  @#{name} = Time.parse(new_value)
                end
              rescue ArgumentError
              end
            end
          end
        end

        # Is it need?
        if @#{name}
          class << @#{name}
            undef_method(:to_s)
            alias_method(:to_s, :#{type})
          end
        end

      end
EOC
    end

    def integer_writer(name, disp_name=name)
      module_eval(<<-EOC, *get_file_and_line_from_caller(2))
      def #{name}=(new_value)
        if new_value.nil?
          @#{name} = new_value
        else
          if @do_validate
            begin
              @#{name} = Integer(new_value)
            rescue ArgumentError
              raise NotAvailableValueError.new('#{disp_name}', new_value)
            end
          else
            @#{name} = new_value.to_i
          end
        end
      end
EOC
    end

    def positive_integer_writer(name, disp_name=name)
      module_eval(<<-EOC, *get_file_and_line_from_caller(2))
      def #{name}=(new_value)
        if new_value.nil?
          @#{name} = new_value
        else
          if @do_validate
            begin
              tmp = Integer(new_value)
              raise ArgumentError if tmp <= 0
              @#{name} = tmp
            rescue ArgumentError
              raise NotAvailableValueError.new('#{disp_name}', new_value)
            end
          else
            @#{name} = new_value.to_i
          end
        end
      end
EOC
    end

    def boolean_writer(name, disp_name=name)
      module_eval(<<-EOC, *get_file_and_line_from_caller(2))
      def #{name}=(new_value)
        if new_value.nil?
          @#{name} = new_value
        else
          if @do_validate and
              ![true, false, "true", "false"].include?(new_value)
            raise NotAvailableValueError.new('#{disp_name}', new_value)
          end
          if [true, false].include?(new_value)
            @#{name} = new_value
          else
            @#{name} = new_value == "true"
          end
        end
      end
EOC
    end

    def text_type_writer(name, disp_name=name)
      module_eval(<<-EOC, *get_file_and_line_from_caller(2))
      def #{name}=(new_value)
        if @do_validate and
            !["text", "html", "xhtml", nil].include?(new_value)
          raise NotAvailableValueError.new('#{disp_name}', new_value)
        end
        @#{name} = new_value
      end
EOC
    end

    def content_writer(name, disp_name=name)
      klass_name = "self.class::#{Utils.to_class_name(name)}"
      module_eval(<<-EOC, *get_file_and_line_from_caller(2))
      def #{name}=(new_value)
        if new_value.is_a?(#{klass_name})
          @#{name} = new_value
        else
          @#{name} = #{klass_name}.new
          @#{name}.content = new_value
        end
      end
EOC
    end

    def yes_clean_other_writer(name, disp_name=name)
      module_eval(<<-EOC, __FILE__, __LINE__ + 1)
        def #{name}=(value)
          value = (value ? "yes" : "no") if [true, false].include?(value)
          @#{name} = value
        end
      EOC
    end

    def yes_other_writer(name, disp_name=name)
      module_eval(<<-EOC, __FILE__, __LINE__ + 1)
        def #{name}=(new_value)
          if [true, false].include?(new_value)
            new_value = new_value ? "yes" : "no"
          end
          @#{name} = new_value
        end
      EOC
    end

    def csv_writer(name, disp_name=name)
      module_eval(<<-EOC, __FILE__, __LINE__ + 1)
        def #{name}=(new_value)
          @#{name} = Utils::CSV.parse(new_value)
        end
      EOC
    end

    def csv_integer_writer(name, disp_name=name)
      module_eval(<<-EOC, __FILE__, __LINE__ + 1)
        def #{name}=(new_value)
          @#{name} = Utils::CSV.parse(new_value) {|v| Integer(v)}
        end
      EOC
    end

    def def_children_accessor(accessor_name, plural_name)
      module_eval(<<-EOC, *get_file_and_line_from_caller(2))
      def #{plural_name}
        @#{accessor_name}
      end

      def #{accessor_name}(*args)
        if args.empty?
          @#{accessor_name}.first
        else
          @#{accessor_name}[*args]
        end
      end

      def #{accessor_name}=(*args)
        receiver = self.class.name
        warn("Warning:\#{caller.first.sub(/:in `.*'\z/, '')}: " \
             "Don't use `\#{receiver}\##{accessor_name} = XXX'/" \
             "`\#{receiver}\#set_#{accessor_name}(XXX)'. " \
             "Those APIs are not sense of Ruby. " \
             "Use `\#{receiver}\##{plural_name} << XXX' instead of them.")
        if args.size == 1
          @#{accessor_name}.push(args[0])
        else
          @#{accessor_name}.__send__("[]=", *args)
        end
      end
      alias_method(:set_#{accessor_name}, :#{accessor_name}=)
EOC
    end
  end

  module SetupMaker
    def setup_maker(maker)
      target = maker_target(maker)
      unless target.nil?
        setup_maker_attributes(target)
        setup_maker_element(target)
        setup_maker_elements(target)
      end
    end

    private
    def maker_target(maker)
      nil
    end

    def setup_maker_attributes(target)
    end

    def setup_maker_element(target)
      self.class.need_initialize_variables.each do |var|
        value = __send__(var)
        next if value.nil?
        if value.respond_to?("setup_maker") and
            !not_need_to_call_setup_maker_variables.include?(var)
          value.setup_maker(target)
        else
          setter = "#{var}="
          if target.respond_to?(setter)
            target.__send__(setter, value)
          end
        end
      end
    end

    def not_need_to_call_setup_maker_variables
      []
    end

    def setup_maker_elements(parent)
      self.class.have_children_elements.each do |name, plural_name|
        if parent.respond_to?(plural_name)
          target = parent.__send__(plural_name)
          __send__(plural_name).each do |elem|
            elem.setup_maker(target)
          end
        end
      end
    end
  end

  class Element
    extend BaseModel
    include Utils
    extend Utils::InheritedReader
    include SetupMaker

    INDENT = "  "

    MUST_CALL_VALIDATORS = {}
    MODELS = []
    GET_ATTRIBUTES = []
    HAVE_CHILDREN_ELEMENTS = []
    TO_ELEMENT_METHODS = []
    NEED_INITIALIZE_VARIABLES = []
    PLURAL_FORMS = {}

    class << self
      def must_call_validators
        inherited_hash_reader("MUST_CALL_VALIDATORS")
      end
      def models
        inherited_array_reader("MODELS")
      end
      def get_attributes
        inherited_array_reader("GET_ATTRIBUTES")
      end
      def have_children_elements
        inherited_array_reader("HAVE_CHILDREN_ELEMENTS")
      end
      def to_element_methods
        inherited_array_reader("TO_ELEMENT_METHODS")
      end
      def need_initialize_variables
        inherited_array_reader("NEED_INITIALIZE_VARIABLES")
      end
      def plural_forms
        inherited_hash_reader("PLURAL_FORMS")
      end

      def inherited_base
        ::RSS::Element
      end

      def inherited(klass)
        klass.const_set(:MUST_CALL_VALIDATORS, {})
        klass.const_set(:MODELS, [])
        klass.const_set(:GET_ATTRIBUTES, [])
        klass.const_set(:HAVE_CHILDREN_ELEMENTS, [])
        klass.const_set(:TO_ELEMENT_METHODS, [])
        klass.const_set(:NEED_INITIALIZE_VARIABLES, [])
        klass.const_set(:PLURAL_FORMS, {})

        tag_name = klass.name.split(/::/).last
        tag_name[0, 1] = tag_name[0, 1].downcase
        klass.instance_variable_set(:@tag_name, tag_name)
        klass.instance_variable_set(:@have_content, false)
      end

      def install_must_call_validator(prefix, uri)
        self::MUST_CALL_VALIDATORS[uri] = prefix
      end

      def install_model(tag, uri, occurs=nil, getter=nil, plural=false)
        getter ||= tag
        if m = self::MODELS.find {|t, u, o, g, p| t == tag and u == uri}
          m[2] = occurs
        else
          self::MODELS << [tag, uri, occurs, getter, plural]
        end
      end

      def install_get_attribute(name, uri, required=true,
                                type=nil, disp_name=nil,
                                element_name=nil)
        disp_name ||= name
        element_name ||= name
        writer_type, reader_type = type
        def_corresponded_attr_writer name, writer_type, disp_name
        def_corresponded_attr_reader name, reader_type
        if type == :boolean and /^is/ =~ name
          alias_method "#{$POSTMATCH}?", name
        end
        self::GET_ATTRIBUTES << [name, uri, required, element_name]
        add_need_initialize_variable(disp_name)
      end

      def def_corresponded_attr_writer(name, type=nil, disp_name=nil)
        disp_name ||= name
        case type
        when :integer
          integer_writer name, disp_name
        when :positive_integer
          positive_integer_writer name, disp_name
        when :boolean
          boolean_writer name, disp_name
        when :w3cdtf, :rfc822, :rfc2822
          date_writer name, type, disp_name
        when :text_type
          text_type_writer name, disp_name
        when :content
          content_writer name, disp_name
        when :yes_clean_other
          yes_clean_other_writer name, disp_name
        when :yes_other
          yes_other_writer name, disp_name
        when :csv
          csv_writer name
        when :csv_integer
          csv_integer_writer name
        else
          attr_writer name
        end
      end

      def def_corresponded_attr_reader(name, type=nil)
        case type
        when :inherit
          inherit_convert_attr_reader name
        when :uri
          uri_convert_attr_reader name
        when :yes_clean_other
          yes_clean_other_attr_reader name
        when :yes_other
          yes_other_attr_reader name
        when :csv
          csv_attr_reader name
        when :csv_integer
          csv_attr_reader name, :separator => ","
        else
          convert_attr_reader name
        end
      end

      def content_setup(type=nil, disp_name=nil)
        writer_type, reader_type = type
        def_corresponded_attr_writer :content, writer_type, disp_name
        def_corresponded_attr_reader :content, reader_type
        @have_content = true
      end

      def have_content?
        @have_content
      end

      def add_have_children_element(variable_name, plural_name)
        self::HAVE_CHILDREN_ELEMENTS << [variable_name, plural_name]
      end

      def add_to_element_method(method_name)
        self::TO_ELEMENT_METHODS << method_name
      end

      def add_need_initialize_variable(variable_name)
        self::NEED_INITIALIZE_VARIABLES << variable_name
      end

      def add_plural_form(singular, plural)
        self::PLURAL_FORMS[singular] = plural
      end

      def required_prefix
        nil
      end

      def required_uri
        ""
      end

      def need_parent?
        false
      end

      def install_ns(prefix, uri)
        if self::NSPOOL.has_key?(prefix)
          raise OverlappedPrefixError.new(prefix)
        end
        self::NSPOOL[prefix] = uri
      end

      def tag_name
        @tag_name
      end
    end

    attr_accessor :parent, :do_validate

    def initialize(do_validate=true, attrs=nil)
      @parent = nil
      @converter = nil
      if attrs.nil? and (do_validate.is_a?(Hash) or do_validate.is_a?(Array))
        do_validate, attrs = true, do_validate
      end
      @do_validate = do_validate
      initialize_variables(attrs || {})
    end

    def tag_name
      self.class.tag_name
    end

    def full_name
      tag_name
    end

    def converter=(converter)
      @converter = converter
      targets = children.dup
      self.class.have_children_elements.each do |variable_name, plural_name|
        targets.concat(__send__(plural_name))
      end
      targets.each do |target|
        target.converter = converter unless target.nil?
      end
    end

    def convert(value)
      if @converter
        @converter.convert(value)
      else
        value
      end
    end

    def valid?(ignore_unknown_element=true)
      validate(ignore_unknown_element)
      true
    rescue RSS::Error
      false
    end

    def validate(ignore_unknown_element=true)
      do_validate = @do_validate
      @do_validate = true
      validate_attribute
      __validate(ignore_unknown_element)
    ensure
      @do_validate = do_validate
    end

    def validate_for_stream(tags, ignore_unknown_element=true)
      validate_attribute
      __validate(ignore_unknown_element, tags, false)
    end

    def to_s(need_convert=true, indent='')
      if self.class.have_content?
        return "" if !empty_content? and !content_is_set?
        rv = tag(indent) do |next_indent|
          if empty_content?
            ""
          else
            xmled_content
          end
        end
      else
        rv = tag(indent) do |next_indent|
          self.class.to_element_methods.collect do |method_name|
            __send__(method_name, false, next_indent)
          end
        end
      end
      rv = convert(rv) if need_convert
      rv
    end

    def have_xml_content?
      false
    end

    def need_base64_encode?
      false
    end

    def set_next_element(tag_name, next_element)
      klass = next_element.class
      prefix = ""
      prefix << "#{klass.required_prefix}_" if klass.required_prefix
      key = "#{prefix}#{tag_name.gsub(/-/, '_')}"
      if self.class.plural_forms.has_key?(key)
        ary = __send__("#{self.class.plural_forms[key]}")
        ary << next_element
      else
        __send__("#{key}=", next_element)
      end
    end

    protected
    def have_required_elements?
      self.class::MODELS.all? do |tag, uri, occurs, getter|
        if occurs.nil? or occurs == "+"
          child = __send__(getter)
          if child.is_a?(Array)
            children = child
            children.any? {|c| c.have_required_elements?}
          else
            !child.to_s.empty?
          end
        else
          true
        end
      end
    end

    private
    def initialize_variables(attrs)
      normalized_attrs = {}
      attrs.each do |key, value|
        normalized_attrs[key.to_s] = value
      end
      self.class.need_initialize_variables.each do |variable_name|
        value = normalized_attrs[variable_name.to_s]
        if value
          __send__("#{variable_name}=", value)
        else
          instance_variable_set("@#{variable_name}", nil)
        end
      end
      initialize_have_children_elements
      @content = normalized_attrs["content"] if self.class.have_content?
    end

    def initialize_have_children_elements
      self.class.have_children_elements.each do |variable_name, plural_name|
        instance_variable_set("@#{variable_name}", [])
      end
    end

    def tag(indent, additional_attrs={}, &block)
      next_indent = indent + INDENT

      attrs = collect_attrs
      return "" if attrs.nil?

      return "" unless have_required_elements?

      attrs.update(additional_attrs)
      start_tag = make_start_tag(indent, next_indent, attrs.dup)

      if block
        content = block.call(next_indent)
      else
        content = []
      end

      if content.is_a?(String)
        content = [content]
        start_tag << ">"
        end_tag = "</#{full_name}>"
      else
        content = content.reject{|x| x.empty?}
        if content.empty?
          return "" if attrs.empty?
          end_tag = "/>"
        else
          start_tag << ">\n"
          end_tag = "\n#{indent}</#{full_name}>"
        end
      end

      start_tag + content.join("\n") + end_tag
    end

    def make_start_tag(indent, next_indent, attrs)
      start_tag = ["#{indent}<#{full_name}"]
      unless attrs.empty?
        start_tag << attrs.collect do |key, value|
          %Q[#{h key}="#{h value}"]
        end.join("\n#{next_indent}")
      end
      start_tag.join(" ")
    end

    def collect_attrs
      attrs = {}
      _attrs.each do |name, required, alias_name|
        value = __send__(alias_name || name)
        return nil if required and value.nil?
        next if value.nil?
        return nil if attrs.has_key?(name)
        attrs[name] = value
      end
      attrs
    end

    def tag_name_with_prefix(prefix)
      "#{prefix}:#{tag_name}"
    end

    # For backward compatibility
    def calc_indent
      ''
    end

    def children
      rv = []
      self.class.models.each do |name, uri, occurs, getter|
        value = __send__(getter)
        next if value.nil?
        value = [value] unless value.is_a?(Array)
        value.each do |v|
          rv << v if v.is_a?(Element)
        end
      end
      rv
    end

    def _tags
      rv = []
      self.class.models.each do |name, uri, occurs, getter, plural|
        value = __send__(getter)
        next if value.nil?
        if plural and value.is_a?(Array)
          rv.concat([[uri, name]] * value.size)
        else
          rv << [uri, name]
        end
      end
      rv
    end

    def _attrs
      self.class.get_attributes.collect do |name, uri, required, element_name|
        [element_name, required, name]
      end
    end

    def __validate(ignore_unknown_element, tags=_tags, recursive=true)
      if recursive
        children.compact.each do |child|
          child.validate
        end
      end
      must_call_validators = self.class.must_call_validators
      tags = tag_filter(tags.dup)
      p tags if DEBUG
      must_call_validators.each do |uri, prefix|
        _validate(ignore_unknown_element, tags[uri], uri)
        meth = "#{prefix}_validate"
        if !prefix.empty? and respond_to?(meth, true)
          __send__(meth, ignore_unknown_element, tags[uri], uri)
        end
      end
    end

    def validate_attribute
      _attrs.each do |a_name, required, alias_name|
        value = instance_variable_get("@#{alias_name || a_name}")
        if required and value.nil?
          raise MissingAttributeError.new(tag_name, a_name)
        end
        __send__("#{alias_name || a_name}=", value)
      end
    end

    def _validate(ignore_unknown_element, tags, uri, models=self.class.models)
      count = 1
      do_redo = false
      not_shift = false
      tag = nil
      models = models.find_all {|model| model[1] == uri}
      element_names = models.collect {|model| model[0]}
      if tags
        tags_size = tags.size
        tags = tags.sort_by {|x| element_names.index(x) || tags_size}
      end

      models.each_with_index do |model, i|
        name, _, occurs, = model

        if DEBUG
          p "before"
          p tags
          p model
        end

        if not_shift
          not_shift = false
        elsif tags
          tag = tags.shift
        end

        if DEBUG
          p "mid"
          p count
        end

        case occurs
        when '?'
          if count > 2
            raise TooMuchTagError.new(name, tag_name)
          else
            if name == tag
              do_redo = true
            else
              not_shift = true
            end
          end
        when '*'
          if name == tag
            do_redo = true
          else
            not_shift = true
          end
        when '+'
          if name == tag
            do_redo = true
          else
            if count > 1
              not_shift = true
            else
              raise MissingTagError.new(name, tag_name)
            end
          end
        else
          if name == tag
            if models[i+1] and models[i+1][0] != name and
                tags and tags.first == name
              raise TooMuchTagError.new(name, tag_name)
            end
          else
            raise MissingTagError.new(name, tag_name)
          end
        end

        if DEBUG
          p "after"
          p not_shift
          p do_redo
          p tag
        end

        if do_redo
          do_redo = false
          count += 1
          redo
        else
          count = 1
        end

      end

      if !ignore_unknown_element and !tags.nil? and !tags.empty?
        raise NotExpectedTagError.new(tags.first, uri, tag_name)
      end

    end

    def tag_filter(tags)
      rv = {}
      tags.each do |tag|
        rv[tag[0]] = [] unless rv.has_key?(tag[0])
        rv[tag[0]].push(tag[1])
      end
      rv
    end

    def empty_content?
      false
    end

    def content_is_set?
      if have_xml_content?
        __send__(self.class.xml_getter)
      else
        content
      end
    end

    def xmled_content
      if have_xml_content?
        __send__(self.class.xml_getter).to_s
      else
        _content = content
        _content = [_content].pack("m").delete("\n") if need_base64_encode?
        h(_content)
      end
    end
  end

  module RootElementMixin

    include XMLStyleSheetMixin

    attr_reader :output_encoding
    attr_reader :feed_type, :feed_subtype, :feed_version
    attr_accessor :version, :encoding, :standalone
    def initialize(feed_version, version=nil, encoding=nil, standalone=nil)
      super()
      @feed_type = nil
      @feed_subtype = nil
      @feed_version = feed_version
      @version = version || '1.0'
      @encoding = encoding
      @standalone = standalone
      @output_encoding = nil
    end

    def feed_info
      [@feed_type, @feed_version, @feed_subtype]
    end

    def output_encoding=(enc)
      @output_encoding = enc
      self.converter = Converter.new(@output_encoding, @encoding)
    end

    def setup_maker(maker)
      maker.version = version
      maker.encoding = encoding
      maker.standalone = standalone

      xml_stylesheets.each do |xss|
        xss.setup_maker(maker)
      end

      super
    end

    def to_feed(type, &block)
      Maker.make(type) do |maker|
        setup_maker(maker)
        block.call(maker) if block
      end
    end

    def to_rss(type, &block)
      to_feed("rss#{type}", &block)
    end

    def to_atom(type, &block)
      to_feed("atom:#{type}", &block)
    end

    def to_xml(type=nil, &block)
      if type.nil? or same_feed_type?(type)
        to_s
      else
        to_feed(type, &block).to_s
      end
    end

    private
    def same_feed_type?(type)
      if /^(atom|rss)?(\d+\.\d+)?(?::(.+))?$/i =~ type
        feed_type = ($1 || @feed_type).downcase
        feed_version = $2 || @feed_version
        feed_subtype = $3 || @feed_subtype
        [feed_type, feed_version, feed_subtype] == feed_info
      else
        false
      end
    end

    def tag(indent, attrs={}, &block)
      rv = super(indent, ns_declarations.merge(attrs), &block)
      return rv if rv.empty?
      "#{xmldecl}#{xml_stylesheet_pi}#{rv}"
    end

    def xmldecl
      rv = %Q[<?xml version="#{@version}"]
      if @output_encoding or @encoding
        rv << %Q[ encoding="#{@output_encoding or @encoding}"]
      end
      rv << %Q[ standalone="yes"] if @standalone
      rv << "?>\n"
      rv
    end

    def ns_declarations
      decls = {}
      self.class::NSPOOL.collect do |prefix, uri|
        prefix = ":#{prefix}" unless prefix.empty?
        decls["xmlns#{prefix}"] = uri
      end
      decls
    end

    def maker_target(target)
      target
    end
  end
end
lib64/ruby/2.2.0/rss/xmlscanner.rb000064400000004152150402106330012406 0ustar00require 'xmlscan/scanner'
require 'stringio'

module RSS

  class XMLScanParser < BaseParser

    class << self
      def listener
        XMLScanListener
      end
    end

    private
    def _parse
      begin
        if @rss.is_a?(String)
          input = StringIO.new(@rss)
        else
          input = @rss
        end
        scanner = XMLScan::XMLScanner.new(@listener)
        scanner.parse(input)
      rescue XMLScan::Error => e
        lineno = e.lineno || scanner.lineno || input.lineno
        raise NotWellFormedError.new(lineno){e.message}
      end
    end

  end

  class XMLScanListener < BaseListener

    include XMLScan::Visitor
    include ListenerMixin

    ENTITIES = {
      'lt' => '<',
      'gt' => '>',
      'amp' => '&',
      'quot' => '"',
      'apos' => '\''
    }

    def on_xmldecl_version(str)
      @version = str
    end

    def on_xmldecl_encoding(str)
      @encoding = str
    end

    def on_xmldecl_standalone(str)
      @standalone = str
    end

    def on_xmldecl_end
      xmldecl(@version, @encoding, @standalone == "yes")
    end

    alias_method(:on_pi, :instruction)
    alias_method(:on_chardata, :text)
    alias_method(:on_cdata, :text)

    def on_etag(name)
      tag_end(name)
    end

    def on_entityref(ref)
      text(entity(ref))
    end

    def on_charref(code)
      text([code].pack('U'))
    end

    alias_method(:on_charref_hex, :on_charref)

    def on_stag(name)
      @attrs = {}
    end

    def on_attribute(name)
      @attrs[name] = @current_attr = ''
    end

    def on_attr_value(str)
      @current_attr << str
    end

    def on_attr_entityref(ref)
      @current_attr << entity(ref)
    end

    def on_attr_charref(code)
      @current_attr << [code].pack('U')
    end

    alias_method(:on_attr_charref_hex, :on_attr_charref)

    def on_stag_end(name)
      tag_start(name, @attrs)
    end

    def on_stag_end_empty(name)
      tag_start(name, @attrs)
      tag_end(name)
    end

    private
    def entity(ref)
      ent = ENTITIES[ref]
      if ent
        ent
      else
        wellformed_error("undefined entity: #{ref}")
      end
    end
  end

end
lib64/ruby/2.2.0/rss/content.rb000064400000001533150402106330011706 0ustar00require "rss/rss"

module RSS
  # The prefix for the Content XML namespace.
  CONTENT_PREFIX = 'content'
  # The URI of the Content specification.
  CONTENT_URI = "http://purl.org/rss/1.0/modules/content/"

  module ContentModel
    extend BaseModel

    ELEMENTS = ["#{CONTENT_PREFIX}_encoded"]

    def self.append_features(klass)
      super

      klass.install_must_call_validator(CONTENT_PREFIX, CONTENT_URI)
      ELEMENTS.each do |full_name|
        name = full_name[(CONTENT_PREFIX.size + 1)..-1]
        klass.install_text_element(name, CONTENT_URI, "?", full_name)
      end
    end
  end

  prefix_size = CONTENT_PREFIX.size + 1
  ContentModel::ELEMENTS.each do |full_name|
    name = full_name[prefix_size..-1]
    BaseListener.install_get_text_element(CONTENT_URI, name, full_name)
  end
end

require 'rss/content/1.0'
require 'rss/content/2.0'
lib64/ruby/2.2.0/rss/rexmlparser.rb000064400000001704150402106330012600 0ustar00require "rexml/document"
require "rexml/streamlistener"

module RSS

  class REXMLParser < BaseParser

    class << self
      def listener
        REXMLListener
      end
    end

    private
    def _parse
      begin
        REXML::Document.parse_stream(@rss, @listener)
      rescue RuntimeError => e
        raise NotWellFormedError.new{e.message}
      rescue REXML::ParseException => e
        context = e.context
        line = context[0] if context
        raise NotWellFormedError.new(line){e.message}
      end
    end

  end

  class REXMLListener < BaseListener

    include REXML::StreamListener
    include ListenerMixin

    class << self
      def raise_for_undefined_entity?
        false
      end
    end

    def xmldecl(version, encoding, standalone)
      super(version, encoding, standalone == "yes")
      # Encoding is converted to UTF-8 when REXML parse XML.
      @encoding = 'UTF-8'
    end

    alias_method(:cdata, :text)
  end

end
lib64/ruby/2.2.0/rss/content/1.0.rb000064400000000215150402106330012200 0ustar00require 'rss/1.0'

module RSS
  RDF.install_ns(CONTENT_PREFIX, CONTENT_URI)

  class RDF
    class Item; include ContentModel; end
  end
end
lib64/ruby/2.2.0/rss/content/2.0.rb000064400000000251150402106330012201 0ustar00require "rss/2.0"

module RSS
  Rss.install_ns(CONTENT_PREFIX, CONTENT_URI)

  class Rss
    class Channel
      class Item; include ContentModel; end
    end
  end
end
lib64/ruby/2.2.0/rss/atom.rb000064400000054647150402106330011212 0ustar00require 'rss/parser'

module RSS
  ##
  # Atom is an XML-based document format that is used to describe 'feeds' of related information.
  # A typical use is in a news feed where the information is periodically updated and which users
  # can subscribe to.  The Atom format is described in http://tools.ietf.org/html/rfc4287
  #
  # The Atom module provides support in reading and creating feeds.
  #
  # See the RSS module for examples consuming and creating feeds.
  module Atom

    ##
    # The Atom URI W3C Namespace

    URI = "http://www.w3.org/2005/Atom"

    ##
    # The XHTML URI W3C Namespace

    XHTML_URI = "http://www.w3.org/1999/xhtml"

    module CommonModel
      NSPOOL = {}
      ELEMENTS = []

      def self.append_features(klass)
        super
        klass.install_must_call_validator("atom", URI)
        [
         ["lang", :xml],
         ["base", :xml],
        ].each do |name, uri, required|
          klass.install_get_attribute(name, uri, required, [nil, :inherit])
        end
        klass.class_eval do
          class << self
            def required_uri
              URI
            end

            def need_parent?
              true
            end
          end
        end
      end
    end

    module ContentModel
      module ClassMethods
        def content_type
          @content_type ||= nil
        end
      end

      class << self
        def append_features(klass)
          super
          klass.extend(ClassMethods)
          klass.content_setup(klass.content_type, klass.tag_name)
        end
      end

      def maker_target(target)
        target
      end

      private
      def setup_maker_element_writer
        "#{self.class.name.split(/::/).last.downcase}="
      end

      def setup_maker_element(target)
        target.__send__(setup_maker_element_writer, content)
        super
      end
    end

    module URIContentModel
      class  << self
        def append_features(klass)
          super
          klass.class_eval do
            @content_type = [nil, :uri]
            include(ContentModel)
          end
        end
      end
    end

    # The TextConstruct module is used to define a Text construct Atom element,
    # which is used to store small quantities of human-readable text
    #
    # The TextConstruct has a type attribute, e.g. text, html, xhtml
    module TextConstruct
      def self.append_features(klass)
        super
        klass.class_eval do
          [
           ["type", ""],
          ].each do |name, uri, required|
            install_get_attribute(name, uri, required, :text_type)
          end

          content_setup
          add_need_initialize_variable("xhtml")

          class << self
            def xml_getter
              "xhtml"
            end

            def xml_setter
              "xhtml="
            end
          end
        end
      end

      attr_writer :xhtml

      def xhtml
        return @xhtml if @xhtml.nil?
        if @xhtml.is_a?(XML::Element) and
            [@xhtml.name, @xhtml.uri] == ["div", XHTML_URI]
          return @xhtml
        end

        children = @xhtml
        children = [children] unless children.is_a?(Array)
        XML::Element.new("div", nil, XHTML_URI,
                         {"xmlns" => XHTML_URI}, children)
      end

      # Returns true if type is "xhtml"
      def have_xml_content?
        @type == "xhtml"
      end

      def atom_validate(ignore_unknown_element, tags, uri)
        if have_xml_content?
          if @xhtml.nil?
            raise MissingTagError.new("div", tag_name)
          end
          unless [@xhtml.name, @xhtml.uri] == ["div", XHTML_URI]
            raise NotExpectedTagError.new(@xhtml.name, @xhtml.uri, tag_name)
          end
        end
      end

      private
      def maker_target(target)
        target.__send__(self.class.name.split(/::/).last.downcase) {|x| x}
      end

      def setup_maker_attributes(target)
        target.type = type
        target.content = content
        target.xml_content = @xhtml
      end
    end

    # The PersonConstruct module is used to define a Person Atom element that can be
    # used to describe a person, corporation, or similar entity
    #
    # The PersonConstruct has a Name, Uri, and Email child elements
    module PersonConstruct

      # Adds attributes for name, uri, and email to the +klass+
      def self.append_features(klass)
        super
        klass.class_eval do
          [
           ["name", nil],
           ["uri", "?"],
           ["email", "?"],
          ].each do |tag, occurs|
            install_have_attribute_element(tag, URI, occurs, nil, :content)
          end
        end
      end

      def maker_target(target)
        target.__send__("new_#{self.class.name.split(/::/).last.downcase}")
      end

      # The name of the person or entity
      class Name < RSS::Element
        include CommonModel
        include ContentModel
      end

      # The URI of the person or entity
      class Uri < RSS::Element
        include CommonModel
        include URIContentModel
      end

      # The email of the person or entity
      class Email < RSS::Element
        include CommonModel
        include ContentModel
      end
    end

    # Element used to describe an Atom date and time in the ISO 8601 format
    #
    # Examples:
    # * 2013-03-04T15:30:02Z
    # * 2013-03-04T10:30:02-05:00
    module DateConstruct
      def self.append_features(klass)
        super
        klass.class_eval do
          @content_type = :w3cdtf
          include(ContentModel)
        end
      end

      # Raises NotAvailableValueError if element content is nil
      def atom_validate(ignore_unknown_element, tags, uri)
        raise NotAvailableValueError.new(tag_name, "") if content.nil?
      end
    end

    module DuplicateLinkChecker
      # Checks if there are duplicate links with the same type and hreflang attributes
      # that have an alternate (or empty) rel attribute
      #
      # Raises a TooMuchTagError if there are duplicates found
      def validate_duplicate_links(links)
        link_infos = {}
        links.each do |link|
          rel = link.rel || "alternate"
          next unless rel == "alternate"
          key = [link.hreflang, link.type]
          if link_infos.has_key?(key)
            raise TooMuchTagError.new("link", tag_name)
          end
          link_infos[key] = true
        end
      end
    end

    # Atom feed element
    #
    # A Feed has several metadata attributes in addition to a number of Entry child elements
    class Feed < RSS::Element
      include RootElementMixin
      include CommonModel
      include DuplicateLinkChecker

      install_ns('', URI)

      [
       ["author", "*", :children],
       ["category", "*", :children, "categories"],
       ["contributor", "*", :children],
       ["generator", "?"],
       ["icon", "?", nil, :content],
       ["id", nil, nil, :content],
       ["link", "*", :children],
       ["logo", "?"],
       ["rights", "?"],
       ["subtitle", "?", nil, :content],
       ["title", nil, nil, :content],
       ["updated", nil, nil, :content],
       ["entry", "*", :children, "entries"],
      ].each do |tag, occurs, type, *args|
        type ||= :child
        __send__("install_have_#{type}_element",
                 tag, URI, occurs, tag, *args)
      end

      # Creates a new Atom feed
      def initialize(version=nil, encoding=nil, standalone=nil)
        super("1.0", version, encoding, standalone)
        @feed_type = "atom"
        @feed_subtype = "feed"
      end

      alias_method :items, :entries

      # Returns true if there are any authors for the feed or any of the Entry
      # child elements have an author
      def have_author?
        authors.any? {|author| !author.to_s.empty?} or
          entries.any? {|entry| entry.have_author?(false)}
      end

      private
      def atom_validate(ignore_unknown_element, tags, uri)
        unless have_author?
          raise MissingTagError.new("author", tag_name)
        end
        validate_duplicate_links(links)
      end

      def have_required_elements?
        super and have_author?
      end

      def maker_target(maker)
        maker.channel
      end

      def setup_maker_element(channel)
        prev_dc_dates = channel.dc_dates.to_a.dup
        super
        channel.about = id.content if id
        channel.dc_dates.replace(prev_dc_dates)
      end

      def setup_maker_elements(channel)
        super
        items = channel.maker.items
        entries.each do |entry|
          entry.setup_maker(items)
        end
      end

      class Author < RSS::Element
        include CommonModel
        include PersonConstruct
      end

      class Category < RSS::Element
        include CommonModel

        [
         ["term", "", true],
         ["scheme", "", false, [nil, :uri]],
         ["label", ""],
        ].each do |name, uri, required, type|
          install_get_attribute(name, uri, required, type)
        end

        private
        def maker_target(target)
          target.new_category
        end
      end

      class Contributor < RSS::Element
        include CommonModel
        include PersonConstruct
      end

      class Generator < RSS::Element
        include CommonModel
        include ContentModel

        [
         ["uri", "", false, [nil, :uri]],
         ["version", ""],
        ].each do |name, uri, required, type|
          install_get_attribute(name, uri, required, type)
        end

        private
        def setup_maker_attributes(target)
          target.generator do |generator|
            generator.uri = uri if uri
            generator.version = version if version
          end
        end
      end

      # Atom Icon element
      #
      # Image that provides a visual identification for the Feed.  Image should have an aspect
      # ratio of 1:1
      class Icon < RSS::Element
        include CommonModel
        include URIContentModel
      end

      # Atom ID element
      #
      # Universally Unique Identifier (UUID) for the Feed
      class Id < RSS::Element
        include CommonModel
        include URIContentModel
      end

      # Defines an Atom Link element
      #
      # A Link has the following attributes:
      # * href
      # * rel
      # * type
      # * hreflang
      # * title
      # * length
      class Link < RSS::Element
        include CommonModel

        [
         ["href", "", true, [nil, :uri]],
         ["rel", ""],
         ["type", ""],
         ["hreflang", ""],
         ["title", ""],
         ["length", ""],
        ].each do |name, uri, required, type|
          install_get_attribute(name, uri, required, type)
        end

        private
        def maker_target(target)
          target.new_link
        end
      end

      # Atom Logo element
      #
      # Image that provides a visual identification for the Feed.  Image should have an aspect
      # ratio of 2:1 (horizontal:vertical)
      class Logo < RSS::Element
        include CommonModel
        include URIContentModel

        def maker_target(target)
          target.maker.image
        end

        private
        def setup_maker_element_writer
          "url="
        end
      end

      # Atom Rights element
      #
      # TextConstruct that contains copyright information regarding the content in an Entry or Feed
      class Rights < RSS::Element
        include CommonModel
        include TextConstruct
      end

      # Atom Subtitle element
      #
      # TextConstruct that conveys a description or subtitle for a Feed
      class Subtitle < RSS::Element
        include CommonModel
        include TextConstruct
      end

      # Atom Title element
      #
      # TextConstruct that conveys a description or title for a feed or Entry
      class Title < RSS::Element
        include CommonModel
        include TextConstruct
      end

      # Atom Updated element
      #
      # DateConstruct indicating the most recent time when an Entry or Feed was modified
      # in a way the publisher considers significant
      class Updated < RSS::Element
        include CommonModel
        include DateConstruct
      end

      # Defines a child Atom Entry element for an Atom Feed
      class Entry < RSS::Element
        include CommonModel
        include DuplicateLinkChecker

        [
         ["author", "*", :children],
         ["category", "*", :children, "categories"],
         ["content", "?", :child],
         ["contributor", "*", :children],
         ["id", nil, nil, :content],
         ["link", "*", :children],
         ["published", "?", :child, :content],
         ["rights", "?", :child],
         ["source", "?"],
         ["summary", "?", :child],
         ["title", nil],
         ["updated", nil, :child, :content],
        ].each do |tag, occurs, type, *args|
          type ||= :attribute
          __send__("install_have_#{type}_element",
                   tag, URI, occurs, tag, *args)
        end

        # Returns whether any of the following are true
        # * There are any authors in the feed
        # * If the parent element has an author and the +check_parent+ parameter was given.
        # * There is a source element that has an author
        def have_author?(check_parent=true)
          authors.any? {|author| !author.to_s.empty?} or
            (check_parent and @parent and @parent.have_author?) or
            (source and source.have_author?)
        end

        private
        def atom_validate(ignore_unknown_element, tags, uri)
          unless have_author?
            raise MissingTagError.new("author", tag_name)
          end
          validate_duplicate_links(links)
        end

        def have_required_elements?
          super and have_author?
        end

        def maker_target(items)
          if items.respond_to?("items")
            # For backward compatibility
            items = items.items
          end
          items.new_item
        end

        Author = Feed::Author
        Category = Feed::Category

        class Content < RSS::Element
          include CommonModel

          class << self
            def xml_setter
              "xml="
            end

            def xml_getter
              "xml"
            end
          end

          [
           ["type", ""],
           ["src", "", false, [nil, :uri]],
          ].each do |name, uri, required, type|
            install_get_attribute(name, uri, required, type)
          end

          content_setup
          add_need_initialize_variable("xml")

          attr_writer :xml
          def have_xml_content?
            inline_xhtml? or inline_other_xml?
          end

          def xml
            return @xml unless inline_xhtml?
            return @xml if @xml.nil?
            if @xml.is_a?(XML::Element) and
                [@xml.name, @xml.uri] == ["div", XHTML_URI]
              return @xml
            end

            children = @xml
            children = [children] unless children.is_a?(Array)
            XML::Element.new("div", nil, XHTML_URI,
                             {"xmlns" => XHTML_URI}, children)
          end

          def xhtml
            if inline_xhtml?
              xml
            else
              nil
            end
          end

          def atom_validate(ignore_unknown_element, tags, uri)
            if out_of_line?
              raise MissingAttributeError.new(tag_name, "type") if @type.nil?
              unless (content.nil? or content.empty?)
                raise NotAvailableValueError.new(tag_name, content)
              end
            elsif inline_xhtml?
              if @xml.nil?
                raise MissingTagError.new("div", tag_name)
              end
              unless @xml.name == "div" and @xml.uri == XHTML_URI
                raise NotExpectedTagError.new(@xml.name, @xml.uri, tag_name)
              end
            end
          end

          def inline_text?
            !out_of_line? and [nil, "text", "html"].include?(@type)
          end

          def inline_html?
            return false if out_of_line?
            @type == "html" or mime_split == ["text", "html"]
          end

          def inline_xhtml?
            !out_of_line? and @type == "xhtml"
          end

          def inline_other?
            return false if out_of_line?
            media_type, subtype = mime_split
            return false if media_type.nil? or subtype.nil?
            true
          end

          def inline_other_text?
            return false unless inline_other?
            return false if inline_other_xml?

            media_type, = mime_split
            return true if "text" == media_type.downcase
            false
          end

          def inline_other_xml?
            return false unless inline_other?

            media_type, subtype = mime_split
            normalized_mime_type = "#{media_type}/#{subtype}".downcase
            if /(?:\+xml|^xml)$/ =~ subtype or
                %w(text/xml-external-parsed-entity
                   application/xml-external-parsed-entity
                   application/xml-dtd).find {|x| x == normalized_mime_type}
              return true
            end
            false
          end

          def inline_other_base64?
            inline_other? and !inline_other_text? and !inline_other_xml?
          end

          def out_of_line?
            not @src.nil?
          end

          def mime_split
            media_type = subtype = nil
            if /\A\s*([a-z]+)\/([a-z\+]+)\s*(?:;.*)?\z/i =~ @type.to_s
              media_type = $1.downcase
              subtype = $2.downcase
            end
            [media_type, subtype]
          end

          def need_base64_encode?
            inline_other_base64?
          end

          private
          def empty_content?
            out_of_line? or super
          end
        end

        Contributor = Feed::Contributor
        Id = Feed::Id
        Link = Feed::Link

        class Published < RSS::Element
          include CommonModel
          include DateConstruct
        end

        Rights = Feed::Rights

        class Source < RSS::Element
          include CommonModel

          [
           ["author", "*", :children],
           ["category", "*", :children, "categories"],
           ["contributor", "*", :children],
           ["generator", "?"],
           ["icon", "?"],
           ["id", "?", nil, :content],
           ["link", "*", :children],
           ["logo", "?"],
           ["rights", "?"],
           ["subtitle", "?"],
           ["title", "?"],
           ["updated", "?", nil, :content],
          ].each do |tag, occurs, type, *args|
            type ||= :attribute
            __send__("install_have_#{type}_element",
                     tag, URI, occurs, tag, *args)
          end

          def have_author?
            !author.to_s.empty?
          end

          Author = Feed::Author
          Category = Feed::Category
          Contributor = Feed::Contributor
          Generator = Feed::Generator
          Icon = Feed::Icon
          Id = Feed::Id
          Link = Feed::Link
          Logo = Feed::Logo
          Rights = Feed::Rights
          Subtitle = Feed::Subtitle
          Title = Feed::Title
          Updated = Feed::Updated
        end

        class Summary < RSS::Element
          include CommonModel
          include TextConstruct
        end

        Title = Feed::Title
        Updated = Feed::Updated
      end
    end

    # Defines a top-level Atom Entry element
    #
    class Entry < RSS::Element
      include RootElementMixin
      include CommonModel
      include DuplicateLinkChecker

      [
       ["author", "*", :children],
       ["category", "*", :children, "categories"],
       ["content", "?"],
       ["contributor", "*", :children],
       ["id", nil, nil, :content],
       ["link", "*", :children],
       ["published", "?", :child, :content],
       ["rights", "?"],
       ["source", "?"],
       ["summary", "?"],
       ["title", nil],
       ["updated", nil, nil, :content],
      ].each do |tag, occurs, type, *args|
        type ||= :attribute
        __send__("install_have_#{type}_element",
                 tag, URI, occurs, tag, *args)
      end

      # Creates a new Atom Entry element
      def initialize(version=nil, encoding=nil, standalone=nil)
        super("1.0", version, encoding, standalone)
        @feed_type = "atom"
        @feed_subtype = "entry"
      end

      # Returns the Entry in an array
      def items
        [self]
      end

      # sets up the +maker+ for constructing Entry elements
      def setup_maker(maker)
        maker = maker.maker if maker.respond_to?("maker")
        super(maker)
      end

      # Returns where there are any authors present or there is a source with an author
      def have_author?
        authors.any? {|author| !author.to_s.empty?} or
          (source and source.have_author?)
      end

      private
      def atom_validate(ignore_unknown_element, tags, uri)
        unless have_author?
          raise MissingTagError.new("author", tag_name)
        end
        validate_duplicate_links(links)
      end

      def have_required_elements?
        super and have_author?
      end

      def maker_target(maker)
        maker.items.new_item
      end

      Author = Feed::Entry::Author
      Category = Feed::Entry::Category
      Content = Feed::Entry::Content
      Contributor = Feed::Entry::Contributor
      Id = Feed::Entry::Id
      Link = Feed::Entry::Link
      Published = Feed::Entry::Published
      Rights = Feed::Entry::Rights
      Source = Feed::Entry::Source
      Summary = Feed::Entry::Summary
      Title = Feed::Entry::Title
      Updated = Feed::Entry::Updated
    end
  end

  Atom::CommonModel::ELEMENTS.each do |name|
    BaseListener.install_get_text_element(Atom::URI, name, "#{name}=")
  end

  module ListenerMixin
    private
    def initial_start_feed(tag_name, prefix, attrs, ns)
      check_ns(tag_name, prefix, ns, Atom::URI, false)

      @rss = Atom::Feed.new(@version, @encoding, @standalone)
      @rss.do_validate = @do_validate
      @rss.xml_stylesheets = @xml_stylesheets
      @rss.lang = attrs["xml:lang"]
      @rss.base = attrs["xml:base"]
      @last_element = @rss
      pr = Proc.new do |text, tags|
        @rss.validate_for_stream(tags) if @do_validate
      end
      @proc_stack.push(pr)
    end

    def initial_start_entry(tag_name, prefix, attrs, ns)
      check_ns(tag_name, prefix, ns, Atom::URI, false)

      @rss = Atom::Entry.new(@version, @encoding, @standalone)
      @rss.do_validate = @do_validate
      @rss.xml_stylesheets = @xml_stylesheets
      @rss.lang = attrs["xml:lang"]
      @rss.base = attrs["xml:base"]
      @last_element = @rss
      pr = Proc.new do |text, tags|
        @rss.validate_for_stream(tags) if @do_validate
      end
      @proc_stack.push(pr)
    end
  end
end
lib64/ruby/2.2.0/rss/2.0.rb000064400000006627150402106330010544 0ustar00require "rss/0.9"

module RSS

  ##
  # = RSS 2.0 support
  #
  # RSS has three different versions. This module contains support for version
  # 2.0[http://www.rssboard.org/rss-specification]
  #
  # == Producing RSS 2.0
  #
  # Producing our own RSS feeds is easy as well. Let's make a very basic feed:
  #
  #  require "rss"
  #
  #  rss = RSS::Maker.make("2.0") do |maker|
  #    maker.channel.language = "en"
  #    maker.channel.author = "matz"
  #    maker.channel.updated = Time.now.to_s
  #    maker.channel.link = "http://www.ruby-lang.org/en/feeds/news.rss"
  #    maker.channel.title = "Example Feed"
  #    maker.channel.description = "A longer description of my feed."
  #    maker.items.new_item do |item|
  #      item.link = "http://www.ruby-lang.org/en/news/2010/12/25/ruby-1-9-2-p136-is-released/"
  #      item.title = "Ruby 1.9.2-p136 is released"
  #      item.updated = Time.now.to_s
  #    end
  #  end
  #
  #  puts rss
  #
  # As you can see, this is a very Builder-like DSL. This code will spit out an
  # RSS 2.0 feed with one item. If we needed a second item, we'd make another
  # block with maker.items.new_item and build a second one.
  class Rss

    class Channel

      [
        ["generator"],
        ["ttl", :integer],
      ].each do |name, type|
        install_text_element(name, "", "?", name, type)
      end

      [
        %w(category categories),
      ].each do |name, plural_name|
        install_have_children_element(name, "", "*", name, plural_name)
      end

      [
        ["image", "?"],
        ["language", "?"],
      ].each do |name, occurs|
        install_model(name, "", occurs)
      end

      Category = Item::Category

      class Item

        [
          ["comments", "?"],
          ["author", "?"],
        ].each do |name, occurs|
          install_text_element(name, "", occurs)
        end

        [
          ["pubDate", '?'],
        ].each do |name, occurs|
          install_date_element(name, "", occurs, name, 'rfc822')
        end
        alias date pubDate
        alias date= pubDate=

        [
          ["guid", '?'],
        ].each do |name, occurs|
          install_have_child_element(name, "", occurs)
        end

        private
        alias _setup_maker_element setup_maker_element
        def setup_maker_element(item)
          _setup_maker_element(item)
          @guid.setup_maker(item) if @guid
        end

        class Guid < Element

          include RSS09

          [
            ["isPermaLink", "", false, :boolean]
          ].each do |name, uri, required, type|
            install_get_attribute(name, uri, required, type)
          end

          content_setup

          def initialize(*args)
            if Utils.element_initialize_arguments?(args)
              super
            else
              super()
              self.isPermaLink = args[0]
              self.content = args[1]
            end
          end

          alias_method :_PermaLink?, :PermaLink?
          private :_PermaLink?
          def PermaLink?
            perma = _PermaLink?
            perma or perma.nil?
          end

          private
          def maker_target(item)
            item.guid
          end

          def setup_maker_attributes(guid)
            guid.isPermaLink = isPermaLink
            guid.content = content
          end
        end

      end

    end

  end

  RSS09::ELEMENTS.each do |name|
    BaseListener.install_get_text_element("", name, name)
  end

end
lib64/ruby/2.2.0/rss/converter.rb000064400000007570150402106330012252 0ustar00require "rss/utils"

module RSS

  class Converter

    include Utils

    def initialize(to_enc, from_enc=nil)
      if "".respond_to?(:encode)
        @to_encoding = to_enc
        return
      end
      normalized_to_enc = to_enc.downcase.gsub(/-/, '_')
      from_enc ||= 'utf-8'
      normalized_from_enc = from_enc.downcase.gsub(/-/, '_')
      if normalized_to_enc == normalized_from_enc
        def_same_enc()
      else
        def_diff_enc = "def_to_#{normalized_to_enc}_from_#{normalized_from_enc}"
        if respond_to?(def_diff_enc)
          __send__(def_diff_enc)
        else
          def_else_enc(to_enc, from_enc)
        end
      end
    end

    def convert(value)
      if value.is_a?(String) and value.respond_to?(:encode)
        value.encode(@to_encoding)
      else
        value
      end
    end

    def def_convert(depth=0)
      instance_eval(<<-EOC, *get_file_and_line_from_caller(depth))
      def convert(value)
        if value.kind_of?(String)
          #{yield('value')}
        else
          value
        end
      end
      EOC
    end

    def def_iconv_convert(to_enc, from_enc, depth=0)
      begin
        require "iconv"
        @iconv = Iconv.new(to_enc, from_enc)
        def_convert(depth+1) do |value|
          <<-EOC
          begin
            @iconv.iconv(#{value})
          rescue Iconv::Failure
            raise ConversionError.new(#{value}, "#{to_enc}", "#{from_enc}")
          end
          EOC
        end
      rescue LoadError, ArgumentError, SystemCallError
        raise UnknownConversionMethodError.new(to_enc, from_enc)
      end
    end

    def def_else_enc(to_enc, from_enc)
      def_iconv_convert(to_enc, from_enc, 0)
    end

    def def_same_enc()
      def_convert do |value|
        value
      end
    end

    def def_uconv_convert_if_can(meth, to_enc, from_enc, nkf_arg)
      begin
        require "uconv"
        def_convert(1) do |value|
          <<-EOC
          begin
            Uconv.#{meth}(#{value})
          rescue Uconv::Error
            raise ConversionError.new(#{value}, "#{to_enc}", "#{from_enc}")
          end
          EOC
        end
      rescue LoadError
        require 'nkf'
        if NKF.const_defined?(:UTF8)
          def_convert(1) do |value|
            "NKF.nkf(#{nkf_arg.dump}, #{value})"
          end
        else
          def_iconv_convert(to_enc, from_enc, 1)
        end
      end
    end

    def def_to_euc_jp_from_utf_8
      def_uconv_convert_if_can('u8toeuc', 'EUC-JP', 'UTF-8', '-We')
    end

    def def_to_utf_8_from_euc_jp
      def_uconv_convert_if_can('euctou8', 'UTF-8', 'EUC-JP', '-Ew')
    end

    def def_to_shift_jis_from_utf_8
      def_uconv_convert_if_can('u8tosjis', 'Shift_JIS', 'UTF-8', '-Ws')
    end

    def def_to_utf_8_from_shift_jis
      def_uconv_convert_if_can('sjistou8', 'UTF-8', 'Shift_JIS', '-Sw')
    end

    def def_to_euc_jp_from_shift_jis
      require "nkf"
      def_convert do |value|
        "NKF.nkf('-Se', #{value})"
      end
    end

    def def_to_shift_jis_from_euc_jp
      require "nkf"
      def_convert do |value|
        "NKF.nkf('-Es', #{value})"
      end
    end

    def def_to_euc_jp_from_iso_2022_jp
      require "nkf"
      def_convert do |value|
        "NKF.nkf('-Je', #{value})"
      end
    end

    def def_to_iso_2022_jp_from_euc_jp
      require "nkf"
      def_convert do |value|
        "NKF.nkf('-Ej', #{value})"
      end
    end

    def def_to_utf_8_from_iso_8859_1
      def_convert do |value|
        "#{value}.unpack('C*').pack('U*')"
      end
    end

    def def_to_iso_8859_1_from_utf_8
      def_convert do |value|
        <<-EOC
        array_utf8 = #{value}.unpack('U*')
        array_enc = []
        array_utf8.each do |num|
          if num <= 0xFF
            array_enc << num
          else
            array_enc.concat "&\#\#{num};".unpack('C*')
          end
        end
        array_enc.pack('C*')
        EOC
      end
    end

  end

end
lib64/ruby/2.2.0/rss/xml-stylesheet.rb000064400000004203150402106330013220 0ustar00require "rss/utils"

module RSS

  module XMLStyleSheetMixin
    attr_accessor :xml_stylesheets
    def initialize(*args)
      super
      @xml_stylesheets = []
    end

    private
    def xml_stylesheet_pi
      xsss = @xml_stylesheets.collect do |xss|
        pi = xss.to_s
        pi = nil if /\A\s*\z/ =~ pi
        pi
      end.compact
      xsss.push("") unless xsss.empty?
      xsss.join("\n")
    end
  end

  class XMLStyleSheet

    include Utils

    ATTRIBUTES = %w(href type title media charset alternate)

    GUESS_TABLE = {
      "xsl" => "text/xsl",
      "css" => "text/css",
    }

    attr_accessor(*ATTRIBUTES)
    attr_accessor(:do_validate)
    def initialize(*attrs)
      if attrs.size == 1 and
          (attrs.first.is_a?(Hash) or attrs.first.is_a?(Array))
        attrs = attrs.first
      end
      @do_validate = true
      ATTRIBUTES.each do |attr|
        __send__("#{attr}=", nil)
      end
      vars = ATTRIBUTES.dup
      vars.unshift(:do_validate)
      attrs.each do |name, value|
        if vars.include?(name.to_s)
          __send__("#{name}=", value)
        end
      end
    end

    def to_s
      rv = ""
      if @href
        rv << %Q[<?xml-stylesheet]
        ATTRIBUTES.each do |name|
          if __send__(name)
            rv << %Q[ #{name}="#{h __send__(name)}"]
          end
        end
        rv << %Q[?>]
      end
      rv
    end

    remove_method(:href=)
    def href=(value)
      @href = value
      if @href and @type.nil?
        @type = guess_type(@href)
      end
      @href
    end

    remove_method(:alternate=)
    def alternate=(value)
      if value.nil? or /\A(?:yes|no)\z/ =~ value
        @alternate = value
      else
        if @do_validate
          args = ["?xml-stylesheet?", %Q[alternate="#{value}"]]
          raise NotAvailableValueError.new(*args)
        end
      end
      @alternate
    end

    def setup_maker(maker)
      xss = maker.xml_stylesheets.new_xml_stylesheet
      ATTRIBUTES.each do |attr|
        xss.__send__("#{attr}=", __send__(attr))
      end
    end

    private
    def guess_type(filename)
      /\.([^.]+)$/ =~ filename
      GUESS_TABLE[$1]
    end

  end
end
lib64/ruby/2.2.0/rss/parser.rb000064400000037124150402106330011535 0ustar00require "forwardable"
require "open-uri"

require "rss/rss"
require "rss/xml"

module RSS

  class NotWellFormedError < Error
    attr_reader :line, :element

    # Create a new NotWellFormedError for an error at +line+
    # in +element+.  If a block is given the return value of
    # the block ends up in the error message.
    def initialize(line=nil, element=nil)
      message = "This is not well formed XML"
      if element or line
        message << "\nerror occurred"
        message << " in #{element}" if element
        message << " at about #{line} line" if line
      end
      message << "\n#{yield}" if block_given?
      super(message)
    end
  end

  class XMLParserNotFound < Error
    def initialize
      super("available XML parser was not found in " <<
            "#{AVAILABLE_PARSER_LIBRARIES.inspect}.")
    end
  end

  class NotValidXMLParser < Error
    def initialize(parser)
      super("#{parser} is not an available XML parser. " <<
            "Available XML parser" <<
            (AVAILABLE_PARSERS.size > 1 ? "s are " : " is ") <<
            "#{AVAILABLE_PARSERS.inspect}.")
    end
  end

  class NSError < InvalidRSSError
    attr_reader :tag, :prefix, :uri
    def initialize(tag, prefix, require_uri)
      @tag, @prefix, @uri = tag, prefix, require_uri
      super("prefix <#{prefix}> doesn't associate uri " <<
            "<#{require_uri}> in tag <#{tag}>")
    end
  end

  class Parser

    extend Forwardable

    class << self

      @@default_parser = nil

      def default_parser
        @@default_parser || AVAILABLE_PARSERS.first
      end

      # Set @@default_parser to new_value if it is one of the
      # available parsers. Else raise NotValidXMLParser error.
      def default_parser=(new_value)
        if AVAILABLE_PARSERS.include?(new_value)
          @@default_parser = new_value
        else
          raise NotValidXMLParser.new(new_value)
        end
      end

      def parse(rss, do_validate=true, ignore_unknown_element=true,
                parser_class=default_parser)
        parser = new(rss, parser_class)
        parser.do_validate = do_validate
        parser.ignore_unknown_element = ignore_unknown_element
        parser.parse
      end
    end

    def_delegators(:@parser, :parse, :rss,
                   :ignore_unknown_element,
                   :ignore_unknown_element=, :do_validate,
                   :do_validate=)

    def initialize(rss, parser_class=self.class.default_parser)
      @parser = parser_class.new(normalize_rss(rss))
    end

    private

    # Try to get the XML associated with +rss+.
    # Return +rss+ if it already looks like XML, or treat it as a URI,
    # or a file to get the XML,
    def normalize_rss(rss)
      return rss if maybe_xml?(rss)

      uri = to_uri(rss)

      if uri.respond_to?(:read)
        uri.read
      elsif !rss.tainted? and File.readable?(rss)
        File.open(rss) {|f| f.read}
      else
        rss
      end
    end

    # maybe_xml? tests if source is a string that looks like XML.
    def maybe_xml?(source)
      source.is_a?(String) and /</ =~ source
    end

    # Attempt to convert rss to a URI, but just return it if
    # there's a ::URI::Error
    def to_uri(rss)
      return rss if rss.is_a?(::URI::Generic)

      begin
        ::URI.parse(rss)
      rescue ::URI::Error
        rss
      end
    end
  end

  class BaseParser

    class << self
      def raise_for_undefined_entity?
        listener.raise_for_undefined_entity?
      end
    end

    def initialize(rss)
      @listener = self.class.listener.new
      @rss = rss
    end

    def rss
      @listener.rss
    end

    def ignore_unknown_element
      @listener.ignore_unknown_element
    end

    def ignore_unknown_element=(new_value)
      @listener.ignore_unknown_element = new_value
    end

    def do_validate
      @listener.do_validate
    end

    def do_validate=(new_value)
      @listener.do_validate = new_value
    end

    def parse
      if @listener.rss.nil?
        _parse
      end
      @listener.rss
    end

  end

  class BaseListener

    extend Utils

    class << self

      @@accessor_bases = {}
      @@registered_uris = {}
      @@class_names = {}

      # return the setter for the uri, tag_name pair, or nil.
      def setter(uri, tag_name)
        _getter = getter(uri, tag_name)
        if _getter
          "#{_getter}="
        else
          nil
        end
      end

      def getter(uri, tag_name)
        (@@accessor_bases[uri] || {})[tag_name]
      end

      # return the tag_names for setters associated with uri
      def available_tags(uri)
        (@@accessor_bases[uri] || {}).keys
      end

      # register uri against this name.
      def register_uri(uri, name)
        @@registered_uris[name] ||= {}
        @@registered_uris[name][uri] = nil
      end

      # test if this uri is registered against this name
      def uri_registered?(uri, name)
        @@registered_uris[name].has_key?(uri)
      end

      # record class_name for the supplied uri and tag_name
      def install_class_name(uri, tag_name, class_name)
        @@class_names[uri] ||= {}
        @@class_names[uri][tag_name] = class_name
      end

      # retrieve class_name for the supplied uri and tag_name
      # If it doesn't exist, capitalize the tag_name
      def class_name(uri, tag_name)
        name = (@@class_names[uri] || {})[tag_name]
        return name if name

        tag_name = tag_name.gsub(/[_\-]([a-z]?)/) {$1.upcase}
        tag_name[0, 1].upcase + tag_name[1..-1]
      end

      def install_get_text_element(uri, name, accessor_base)
        install_accessor_base(uri, name, accessor_base)
        def_get_text_element(uri, name, *get_file_and_line_from_caller(1))
      end

      def raise_for_undefined_entity?
        true
      end

      private
      # set the accessor for the uri, tag_name pair
      def install_accessor_base(uri, tag_name, accessor_base)
        @@accessor_bases[uri] ||= {}
        @@accessor_bases[uri][tag_name] = accessor_base.chomp("=")
      end

      def def_get_text_element(uri, element_name, file, line)
        register_uri(uri, element_name)
        method_name = "start_#{element_name}"
        unless private_method_defined?(method_name)
          define_method(method_name) do |name, prefix, attrs, ns|
            uri = _ns(ns, prefix)
            if self.class.uri_registered?(uri, element_name)
              start_get_text_element(name, prefix, ns, uri)
            else
              start_else_element(name, prefix, attrs, ns)
            end
          end
          private(method_name)
        end
      end
    end
  end

  module ListenerMixin
    attr_reader :rss

    attr_accessor :ignore_unknown_element
    attr_accessor :do_validate

    def initialize
      @rss = nil
      @ignore_unknown_element = true
      @do_validate = true
      @ns_stack = [{"xml" => :xml}]
      @tag_stack = [[]]
      @text_stack = ['']
      @proc_stack = []
      @last_element = nil
      @version = @encoding = @standalone = nil
      @xml_stylesheets = []
      @xml_child_mode = false
      @xml_element = nil
      @last_xml_element = nil
    end

    # set instance vars for version, encoding, standalone
    def xmldecl(version, encoding, standalone)
      @version, @encoding, @standalone = version, encoding, standalone
    end

    def instruction(name, content)
      if name == "xml-stylesheet"
        params = parse_pi_content(content)
        if params.has_key?("href")
          @xml_stylesheets << XMLStyleSheet.new(params)
        end
      end
    end

    def tag_start(name, attributes)
      @text_stack.push('')

      ns = @ns_stack.last.dup
      attrs = {}
      attributes.each do |n, v|
        if /\Axmlns(?:\z|:)/ =~ n
          ns[$POSTMATCH] = v
        else
          attrs[n] = v
        end
      end
      @ns_stack.push(ns)

      prefix, local = split_name(name)
      @tag_stack.last.push([_ns(ns, prefix), local])
      @tag_stack.push([])
      if @xml_child_mode
        previous = @last_xml_element
        element_attrs = attributes.dup
        unless previous
          ns.each do |ns_prefix, value|
            next if ns_prefix == "xml"
            key = ns_prefix.empty? ? "xmlns" : "xmlns:#{ns_prefix}"
            element_attrs[key] ||= value
          end
        end
        next_element = XML::Element.new(local,
                                        prefix.empty? ? nil : prefix,
                                        _ns(ns, prefix),
                                        element_attrs)
        previous << next_element if previous
        @last_xml_element = next_element
        pr = Proc.new do |text, tags|
          if previous
            @last_xml_element = previous
          else
            @xml_element = @last_xml_element
            @last_xml_element = nil
          end
        end
        @proc_stack.push(pr)
      else
        if @rss.nil? and respond_to?("initial_start_#{local}", true)
          __send__("initial_start_#{local}", local, prefix, attrs, ns.dup)
        elsif respond_to?("start_#{local}", true)
          __send__("start_#{local}", local, prefix, attrs, ns.dup)
        else
          start_else_element(local, prefix, attrs, ns.dup)
        end
      end
    end

    def tag_end(name)
      if DEBUG
        p "end tag #{name}"
        p @tag_stack
      end
      text = @text_stack.pop
      tags = @tag_stack.pop
      pr = @proc_stack.pop
      pr.call(text, tags) unless pr.nil?
      @ns_stack.pop
    end

    def text(data)
      if @xml_child_mode
        @last_xml_element << data if @last_xml_element
      else
        @text_stack.last << data
      end
    end

    private
    def _ns(ns, prefix)
      ns.fetch(prefix, "")
    end

    CONTENT_PATTERN = /\s*([^=]+)=(["'])([^\2]+?)\2/
    # Extract the first name="value" pair from content.
    # Works with single quotes according to the constant
    # CONTENT_PATTERN. Return a Hash.
    def parse_pi_content(content)
      params = {}
      content.scan(CONTENT_PATTERN) do |name, quote, value|
        params[name] = value
      end
      params
    end

    def start_else_element(local, prefix, attrs, ns)
      class_name = self.class.class_name(_ns(ns, prefix), local)
      current_class = @last_element.class
      if known_class?(current_class, class_name)
        next_class = current_class.const_get(class_name)
        start_have_something_element(local, prefix, attrs, ns, next_class)
      else
        if !@do_validate or @ignore_unknown_element
          @proc_stack.push(setup_next_element_in_unknown_element)
        else
          parent = "ROOT ELEMENT???"
          if current_class.tag_name
            parent = current_class.tag_name
          end
          raise NotExpectedTagError.new(local, _ns(ns, prefix), parent)
        end
      end
    end

    if Module.method(:const_defined?).arity == -1
      def known_class?(target_class, class_name)
        class_name and
          (target_class.const_defined?(class_name, false) or
           target_class.constants.include?(class_name.to_sym))
      end
    else
      def known_class?(target_class, class_name)
        class_name and
          (target_class.const_defined?(class_name) or
           target_class.constants.include?(class_name))
      end
    end

    NAMESPLIT = /^(?:([\w:][-\w.]*):)?([\w:][-\w.]*)/
    def split_name(name)
      name =~ NAMESPLIT
      [$1 || '', $2]
    end

    def check_ns(tag_name, prefix, ns, require_uri, ignore_unknown_element=nil)
      if _ns(ns, prefix) == require_uri
        true
      else
        if ignore_unknown_element.nil?
          ignore_unknown_element = @ignore_unknown_element
        end

        if ignore_unknown_element
          false
        elsif @do_validate
          raise NSError.new(tag_name, prefix, require_uri)
        else
          # Force bind required URI with prefix
          @ns_stack.last[prefix] = require_uri
          true
        end
      end
    end

    def start_get_text_element(tag_name, prefix, ns, required_uri)
      pr = Proc.new do |text, tags|
        setter = self.class.setter(required_uri, tag_name)
        if setter and @last_element.respond_to?(setter)
          if @do_validate
            getter = self.class.getter(required_uri, tag_name)
            if @last_element.__send__(getter)
              raise TooMuchTagError.new(tag_name, @last_element.tag_name)
            end
          end
          @last_element.__send__(setter, text.to_s)
        else
          if @do_validate and !@ignore_unknown_element
            raise NotExpectedTagError.new(tag_name, _ns(ns, prefix),
                                          @last_element.tag_name)
          end
        end
      end
      @proc_stack.push(pr)
    end

    def start_have_something_element(tag_name, prefix, attrs, ns, klass)
      if check_ns(tag_name, prefix, ns, klass.required_uri)
        attributes = collect_attributes(tag_name, prefix, attrs, ns, klass)
        @proc_stack.push(setup_next_element(tag_name, klass, attributes))
      else
        @proc_stack.push(setup_next_element_in_unknown_element)
      end
    end

    def collect_attributes(tag_name, prefix, attrs, ns, klass)
      attributes = {}
      klass.get_attributes.each do |a_name, a_uri, required, element_name|
        if a_uri.is_a?(String) or !a_uri.respond_to?(:include?)
          a_uri = [a_uri]
        end
        unless a_uri == [""]
          for prefix, uri in ns
            if a_uri.include?(uri)
              val = attrs["#{prefix}:#{a_name}"]
              break if val
            end
          end
        end
        if val.nil? and a_uri.include?("")
          val = attrs[a_name]
        end

        if @do_validate and required and val.nil?
          unless a_uri.include?("")
            for prefix, uri in ns
              if a_uri.include?(uri)
                a_name = "#{prefix}:#{a_name}"
              end
            end
          end
          raise MissingAttributeError.new(tag_name, a_name)
        end

        attributes[a_name] = val
      end
      attributes
    end

    def setup_next_element(tag_name, klass, attributes)
      previous = @last_element
      next_element = klass.new(@do_validate, attributes)
      previous.set_next_element(tag_name, next_element)
      @last_element = next_element
      @last_element.parent = previous if klass.need_parent?
      @xml_child_mode = @last_element.have_xml_content?

      Proc.new do |text, tags|
        p(@last_element.class) if DEBUG
        if @xml_child_mode
          @last_element.content = @xml_element.to_s
          xml_setter = @last_element.class.xml_setter
          @last_element.__send__(xml_setter, @xml_element)
          @xml_element = nil
          @xml_child_mode = false
        else
          if klass.have_content?
            if @last_element.need_base64_encode?
              text = text.lstrip.unpack("m").first
            end
            @last_element.content = text
          end
        end
        if @do_validate
          @last_element.validate_for_stream(tags, @ignore_unknown_element)
        end
        @last_element = previous
      end
    end

    def setup_next_element_in_unknown_element
      current_element, @last_element = @last_element, nil
      Proc.new {@last_element = current_element}
    end
  end

  unless const_defined? :AVAILABLE_PARSER_LIBRARIES
    # The list of all available libraries for parsing.
    AVAILABLE_PARSER_LIBRARIES = [
      ["rss/xmlparser", :XMLParserParser],
      ["rss/xmlscanner", :XMLScanParser],
      ["rss/rexmlparser", :REXMLParser],
    ]
  end

  # The list of all available parsers, in constant form.
  AVAILABLE_PARSERS = []

  AVAILABLE_PARSER_LIBRARIES.each do |lib, parser|
    begin
      require lib
      AVAILABLE_PARSERS.push(const_get(parser))
    rescue LoadError
    end
  end

  if AVAILABLE_PARSERS.empty?
    raise XMLParserNotFound
  end
end
lib64/ruby/2.2.0/prettyprint.rb000064400000037550150402106330012041 0ustar00# This class implements a pretty printing algorithm. It finds line breaks and
# nice indentations for grouped structure.
#
# By default, the class assumes that primitive elements are strings and each
# byte in the strings have single column in width. But it can be used for
# other situations by giving suitable arguments for some methods:
# * newline object and space generation block for PrettyPrint.new
# * optional width argument for PrettyPrint#text
# * PrettyPrint#breakable
#
# There are several candidate uses:
# * text formatting using proportional fonts
# * multibyte characters which has columns different to number of bytes
# * non-string formatting
#
# == Bugs
# * Box based formatting?
# * Other (better) model/algorithm?
#
# Report any bugs at http://bugs.ruby-lang.org
#
# == References
# Christian Lindig, Strictly Pretty, March 2000,
# http://www.st.cs.uni-sb.de/~lindig/papers/#pretty
#
# Philip Wadler, A prettier printer, March 1998,
# http://homepages.inf.ed.ac.uk/wadler/topics/language-design.html#prettier
#
# == Author
# Tanaka Akira <akr@fsij.org>
#
class PrettyPrint

  # This is a convenience method which is same as follows:
  #
  #   begin
  #     q = PrettyPrint.new(output, maxwidth, newline, &genspace)
  #     ...
  #     q.flush
  #     output
  #   end
  #
  def PrettyPrint.format(output='', maxwidth=79, newline="\n", genspace=lambda {|n| ' ' * n})
    q = PrettyPrint.new(output, maxwidth, newline, &genspace)
    yield q
    q.flush
    output
  end

  # This is similar to PrettyPrint::format but the result has no breaks.
  #
  # +maxwidth+, +newline+ and +genspace+ are ignored.
  #
  # The invocation of +breakable+ in the block doesn't break a line and is
  # treated as just an invocation of +text+.
  #
  def PrettyPrint.singleline_format(output='', maxwidth=nil, newline=nil, genspace=nil)
    q = SingleLine.new(output)
    yield q
    output
  end

  # Creates a buffer for pretty printing.
  #
  # +output+ is an output target. If it is not specified, '' is assumed. It
  # should have a << method which accepts the first argument +obj+ of
  # PrettyPrint#text, the first argument +sep+ of PrettyPrint#breakable, the
  # first argument +newline+ of PrettyPrint.new, and the result of a given
  # block for PrettyPrint.new.
  #
  # +maxwidth+ specifies maximum line length. If it is not specified, 79 is
  # assumed. However actual outputs may overflow +maxwidth+ if long
  # non-breakable texts are provided.
  #
  # +newline+ is used for line breaks. "\n" is used if it is not specified.
  #
  # The block is used to generate spaces. {|width| ' ' * width} is used if it
  # is not given.
  #
  def initialize(output='', maxwidth=79, newline="\n", &genspace)
    @output = output
    @maxwidth = maxwidth
    @newline = newline
    @genspace = genspace || lambda {|n| ' ' * n}

    @output_width = 0
    @buffer_width = 0
    @buffer = []

    root_group = Group.new(0)
    @group_stack = [root_group]
    @group_queue = GroupQueue.new(root_group)
    @indent = 0
  end

  # The output object.
  #
  # This defaults to '', and should accept the << method
  attr_reader :output

  # The maximum width of a line, before it is separated in to a newline
  #
  # This defaults to 79, and should be a Fixnum
  attr_reader :maxwidth

  # The value that is appended to +output+ to add a new line.
  #
  # This defaults to "\n", and should be String
  attr_reader :newline

  # A lambda or Proc, that takes one argument, of a Fixnum, and returns
  # the corresponding number of spaces.
  #
  # By default this is:
  #   lambda {|n| ' ' * n}
  attr_reader :genspace

  # The number of spaces to be indented
  attr_reader :indent

  # The PrettyPrint::GroupQueue of groups in stack to be pretty printed
  attr_reader :group_queue

  # Returns the group most recently added to the stack.
  #
  # Contrived example:
  #   out = ""
  #   => ""
  #   q = PrettyPrint.new(out)
  #   => #<PrettyPrint:0x82f85c0 @output="", @maxwidth=79, @newline="\n", @genspace=#<Proc:0x82f8368@/home/vbatts/.rvm/rubies/ruby-head/lib/ruby/2.0.0/prettyprint.rb:82 (lambda)>, @output_width=0, @buffer_width=0, @buffer=[], @group_stack=[#<PrettyPrint::Group:0x82f8138 @depth=0, @breakables=[], @break=false>], @group_queue=#<PrettyPrint::GroupQueue:0x82fb7c0 @queue=[[#<PrettyPrint::Group:0x82f8138 @depth=0, @breakables=[], @break=false>]]>, @indent=0>
  #   q.group {
  #     q.text q.current_group.inspect
  #     q.text q.newline
  #     q.group(q.current_group.depth + 1) {
  #       q.text q.current_group.inspect
  #       q.text q.newline
  #       q.group(q.current_group.depth + 1) {
  #         q.text q.current_group.inspect
  #         q.text q.newline
  #         q.group(q.current_group.depth + 1) {
  #           q.text q.current_group.inspect
  #           q.text q.newline
  #         }
  #       }
  #     }
  #   }
  #   => 284
  #    puts out
  #   #<PrettyPrint::Group:0x8354758 @depth=1, @breakables=[], @break=false>
  #   #<PrettyPrint::Group:0x8354550 @depth=2, @breakables=[], @break=false>
  #   #<PrettyPrint::Group:0x83541cc @depth=3, @breakables=[], @break=false>
  #   #<PrettyPrint::Group:0x8347e54 @depth=4, @breakables=[], @break=false>
  def current_group
    @group_stack.last
  end

  # Breaks the buffer into lines that are shorter than #maxwidth
  def break_outmost_groups
    while @maxwidth < @output_width + @buffer_width
      return unless group = @group_queue.deq
      until group.breakables.empty?
        data = @buffer.shift
        @output_width = data.output(@output, @output_width)
        @buffer_width -= data.width
      end
      while !@buffer.empty? && Text === @buffer.first
        text = @buffer.shift
        @output_width = text.output(@output, @output_width)
        @buffer_width -= text.width
      end
    end
  end

  # This adds +obj+ as a text of +width+ columns in width.
  #
  # If +width+ is not specified, obj.length is used.
  #
  def text(obj, width=obj.length)
    if @buffer.empty?
      @output << obj
      @output_width += width
    else
      text = @buffer.last
      unless Text === text
        text = Text.new
        @buffer << text
      end
      text.add(obj, width)
      @buffer_width += width
      break_outmost_groups
    end
  end

  # This is similar to #breakable except
  # the decision to break or not is determined individually.
  #
  # Two #fill_breakable under a group may cause 4 results:
  # (break,break), (break,non-break), (non-break,break), (non-break,non-break).
  # This is different to #breakable because two #breakable under a group
  # may cause 2 results:
  # (break,break), (non-break,non-break).
  #
  # The text +sep+ is inserted if a line is not broken at this point.
  #
  # If +sep+ is not specified, " " is used.
  #
  # If +width+ is not specified, +sep.length+ is used. You will have to
  # specify this when +sep+ is a multibyte character, for example.
  #
  def fill_breakable(sep=' ', width=sep.length)
    group { breakable sep, width }
  end

  # This says "you can break a line here if necessary", and a +width+\-column
  # text +sep+ is inserted if a line is not broken at the point.
  #
  # If +sep+ is not specified, " " is used.
  #
  # If +width+ is not specified, +sep.length+ is used. You will have to
  # specify this when +sep+ is a multibyte character, for example.
  #
  def breakable(sep=' ', width=sep.length)
    group = @group_stack.last
    if group.break?
      flush
      @output << @newline
      @output << @genspace.call(@indent)
      @output_width = @indent
      @buffer_width = 0
    else
      @buffer << Breakable.new(sep, width, self)
      @buffer_width += width
      break_outmost_groups
    end
  end

  # Groups line break hints added in the block. The line break hints are all
  # to be used or not.
  #
  # If +indent+ is specified, the method call is regarded as nested by
  # nest(indent) { ... }.
  #
  # If +open_obj+ is specified, <tt>text open_obj, open_width</tt> is called
  # before grouping. If +close_obj+ is specified, <tt>text close_obj,
  # close_width</tt> is called after grouping.
  #
  def group(indent=0, open_obj='', close_obj='', open_width=open_obj.length, close_width=close_obj.length)
    text open_obj, open_width
    group_sub {
      nest(indent) {
        yield
      }
    }
    text close_obj, close_width
  end

  # Takes a block and queues a new group that is indented 1 level further.
  def group_sub
    group = Group.new(@group_stack.last.depth + 1)
    @group_stack.push group
    @group_queue.enq group
    begin
      yield
    ensure
      @group_stack.pop
      if group.breakables.empty?
        @group_queue.delete group
      end
    end
  end

  # Increases left margin after newline with +indent+ for line breaks added in
  # the block.
  #
  def nest(indent)
    @indent += indent
    begin
      yield
    ensure
      @indent -= indent
    end
  end

  # outputs buffered data.
  #
  def flush
    @buffer.each {|data|
      @output_width = data.output(@output, @output_width)
    }
    @buffer.clear
    @buffer_width = 0
  end

  # The Text class is the means by which to collect strings from objects.
  #
  # This class is intended for internal use of the PrettyPrint buffers.
  class Text # :nodoc:

    # Creates a new text object.
    #
    # This constructor takes no arguments.
    #
    # The workflow is to append a PrettyPrint::Text object to the buffer, and
    # being able to call the buffer.last() to reference it.
    #
    # As there are objects, use PrettyPrint::Text#add to include the objects
    # and the width to utilized by the String version of this object.
    def initialize
      @objs = []
      @width = 0
    end

    # The total width of the objects included in this Text object.
    attr_reader :width

    # Render the String text of the objects that have been added to this Text object.
    #
    # Output the text to +out+, and increment the width to +output_width+
    def output(out, output_width)
      @objs.each {|obj| out << obj}
      output_width + @width
    end

    # Include +obj+ in the objects to be pretty printed, and increment
    # this Text object's total width by +width+
    def add(obj, width)
      @objs << obj
      @width += width
    end
  end

  # The Breakable class is used for breaking up object information
  #
  # This class is intended for internal use of the PrettyPrint buffers.
  class Breakable # :nodoc:

    # Create a new Breakable object.
    #
    # Arguments:
    # * +sep+ String of the separator
    # * +width+ Fixnum width of the +sep+
    # * +q+ parent PrettyPrint object, to base from
    def initialize(sep, width, q)
      @obj = sep
      @width = width
      @pp = q
      @indent = q.indent
      @group = q.current_group
      @group.breakables.push self
    end

    # Holds the separator String
    #
    # The +sep+ argument from ::new
    attr_reader :obj

    # The width of +obj+ / +sep+
    attr_reader :width

    # The number of spaces to indent.
    #
    # This is inferred from +q+ within PrettyPrint, passed in ::new
    attr_reader :indent

    # Render the String text of the objects that have been added to this
    # Breakable object.
    #
    # Output the text to +out+, and increment the width to +output_width+
    def output(out, output_width)
      @group.breakables.shift
      if @group.break?
        out << @pp.newline
        out << @pp.genspace.call(@indent)
        @indent
      else
        @pp.group_queue.delete @group if @group.breakables.empty?
        out << @obj
        output_width + @width
      end
    end
  end

  # The Group class is used for making indentation easier.
  #
  # While this class does neither the breaking into newlines nor indentation,
  # it is used in a stack (as well as a queue) within PrettyPrint, to group
  # objects.
  #
  # For information on using groups, see PrettyPrint#group
  #
  # This class is intended for internal use of the PrettyPrint buffers.
  class Group # :nodoc:
    # Create a Group object
    #
    # Arguments:
    # * +depth+ - this group's relation to previous groups
    def initialize(depth)
      @depth = depth
      @breakables = []
      @break = false
    end

    # This group's relation to previous groups
    attr_reader :depth

    # Array to hold the Breakable objects for this Group
    attr_reader :breakables

    # Makes a break for this Group, and returns true
    def break
      @break = true
    end

    # Boolean of whether this Group has made a break
    def break?
      @break
    end

    # Boolean of whether this Group has been queried for being first
    #
    # This is used as a predicate, and ought to be called first.
    def first?
      if defined? @first
        false
      else
        @first = false
        true
      end
    end
  end

  # The GroupQueue class is used for managing the queue of Group to be pretty
  # printed.
  #
  # This queue groups the Group objects, based on their depth.
  #
  # This class is intended for internal use of the PrettyPrint buffers.
  class GroupQueue # :nodoc:
    # Create a GroupQueue object
    #
    # Arguments:
    # * +groups+ - one or more PrettyPrint::Group objects
    def initialize(*groups)
      @queue = []
      groups.each {|g| enq g}
    end

    # Enqueue +group+
    #
    # This does not strictly append the group to the end of the queue,
    # but instead adds it in line, base on the +group.depth+
    def enq(group)
      depth = group.depth
      @queue << [] until depth < @queue.length
      @queue[depth] << group
    end

    # Returns the outer group of the queue
    def deq
      @queue.each {|gs|
        (gs.length-1).downto(0) {|i|
          unless gs[i].breakables.empty?
            group = gs.slice!(i, 1).first
            group.break
            return group
          end
        }
        gs.each {|group| group.break}
        gs.clear
      }
      return nil
    end

    # Remote +group+ from this queue
    def delete(group)
      @queue[group.depth].delete(group)
    end
  end

  # PrettyPrint::SingleLine is used by PrettyPrint.singleline_format
  #
  # It is passed to be similar to a PrettyPrint object itself, by responding to:
  # * #text
  # * #breakable
  # * #nest
  # * #group
  # * #flush
  # * #first?
  #
  # but instead, the output has no line breaks
  #
  class SingleLine
    # Create a PrettyPrint::SingleLine object
    #
    # Arguments:
    # * +output+ - String (or similar) to store rendered text. Needs to respond to '<<'
    # * +maxwidth+ - Argument position expected to be here for compatibility.
    #                This argument is a noop.
    # * +newline+ - Argument position expected to be here for compatibility.
    #               This argument is a noop.
    def initialize(output, maxwidth=nil, newline=nil)
      @output = output
      @first = [true]
    end

    # Add +obj+ to the text to be output.
    #
    # +width+ argument is here for compatibility. It is a noop argument.
    def text(obj, width=nil)
      @output << obj
    end

    # Appends +sep+ to the text to be output. By default +sep+ is ' '
    #
    # +width+ argument is here for compatibility. It is a noop argument.
    def breakable(sep=' ', width=nil)
      @output << sep
    end

    # Takes +indent+ arg, but does nothing with it.
    #
    # Yields to a block.
    def nest(indent) # :nodoc:
      yield
    end

    # Opens a block for grouping objects to be pretty printed.
    #
    # Arguments:
    # * +indent+ - noop argument. Present for compatibility.
    # * +open_obj+ - text appended before the &blok. Default is ''
    # * +close_obj+ - text appended after the &blok. Default is ''
    # * +open_width+ - noop argument. Present for compatibility.
    # * +close_width+ - noop argument. Present for compatibility.
    def group(indent=nil, open_obj='', close_obj='', open_width=nil, close_width=nil)
      @first.push true
      @output << open_obj
      yield
      @output << close_obj
      @first.pop
    end

    # Method present for compatibility, but is a noop
    def flush # :nodoc:
    end

    # This is used as a predicate, and ought to be called first.
    def first?
      result = @first[-1]
      @first[-1] = false
      result
    end
  end
end
lib64/ruby/2.2.0/logger.rb000064400000050523150402106330010707 0ustar00# logger.rb - simple logging utility
# Copyright (C) 2000-2003, 2005, 2008, 2011  NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
#
# Documentation:: NAKAMURA, Hiroshi and Gavin Sinclair
# License::
#   You can redistribute it and/or modify it under the same terms of Ruby's
#   license; either the dual license version in 2003, or any later version.
# Revision:: $Id: logger.rb 56504 2016-10-27 07:47:14Z usa $
#
# A simple system for logging messages.  See Logger for more documentation.

require 'monitor'

# == Description
#
# The Logger class provides a simple but sophisticated logging utility that
# you can use to output messages.
#
# The messages have associated levels, such as +INFO+ or +ERROR+ that indicate
# their importance.  You can then give the Logger a level, and only messages
# at that level or higher will be printed.
#
# The levels are:
#
# +UNKNOWN+:: An unknown message that should always be logged.
# +FATAL+:: An unhandleable error that results in a program crash.
# +ERROR+:: A handleable error condition.
# +WARN+::  A warning.
# +INFO+::  Generic (useful) information about system operation.
# +DEBUG+:: Low-level information for developers.
#
# For instance, in a production system, you may have your Logger set to
# +INFO+ or even +WARN+.
# When you are developing the system, however, you probably
# want to know about the program's internal state, and would set the Logger to
# +DEBUG+.
#
# *Note*: Logger does not escape or sanitize any messages passed to it.
# Developers should be aware of when potentially malicious data (user-input)
# is passed to Logger, and manually escape the untrusted data:
#
#   logger.info("User-input: #{input.dump}")
#   logger.info("User-input: %p" % input)
#
# You can use #formatter= for escaping all data.
#
#   original_formatter = Logger::Formatter.new
#   logger.formatter = proc { |severity, datetime, progname, msg|
#     original_formatter.call(severity, datetime, progname, msg.dump)
#   }
#   logger.info(input)
#
# === Example
#
# This creates a Logger that outputs to the standard output stream, with a
# level of +WARN+:
#
#   require 'logger'
#
#   logger = Logger.new(STDOUT)
#   logger.level = Logger::WARN
#
#   logger.debug("Created logger")
#   logger.info("Program started")
#   logger.warn("Nothing to do!")
#
#   path = "a_non_existent_file"
#
#   begin
#     File.foreach(path) do |line|
#       unless line =~ /^(\w+) = (.*)$/
#         logger.error("Line in wrong format: #{line.chomp}")
#       end
#     end
#   rescue => err
#     logger.fatal("Caught exception; exiting")
#     logger.fatal(err)
#   end
#
# Because the Logger's level is set to +WARN+, only the warning, error, and
# fatal messages are recorded.  The debug and info messages are silently
# discarded.
#
# === Features
#
# There are several interesting features that Logger provides, like
# auto-rolling of log files, setting the format of log messages, and
# specifying a program name in conjunction with the message.  The next section
# shows you how to achieve these things.
#
#
# == HOWTOs
#
# === How to create a logger
#
# The options below give you various choices, in more or less increasing
# complexity.
#
# 1. Create a logger which logs messages to STDERR/STDOUT.
#
#      logger = Logger.new(STDERR)
#      logger = Logger.new(STDOUT)
#
# 2. Create a logger for the file which has the specified name.
#
#      logger = Logger.new('logfile.log')
#
# 3. Create a logger for the specified file.
#
#      file = File.open('foo.log', File::WRONLY | File::APPEND)
#      # To create new (and to remove old) logfile, add File::CREAT like:
#      # file = File.open('foo.log', File::WRONLY | File::APPEND | File::CREAT)
#      logger = Logger.new(file)
#
# 4. Create a logger which ages the logfile once it reaches a certain size.
#    Leave 10 "old" log files where each file is about 1,024,000 bytes.
#
#      logger = Logger.new('foo.log', 10, 1024000)
#
# 5. Create a logger which ages the logfile daily/weekly/monthly.
#
#      logger = Logger.new('foo.log', 'daily')
#      logger = Logger.new('foo.log', 'weekly')
#      logger = Logger.new('foo.log', 'monthly')
#
# === How to log a message
#
# Notice the different methods (+fatal+, +error+, +info+) being used to log
# messages of various levels?  Other methods in this family are +warn+ and
# +debug+.  +add+ is used below to log a message of an arbitrary (perhaps
# dynamic) level.
#
# 1. Message in a block.
#
#      logger.fatal { "Argument 'foo' not given." }
#
# 2. Message as a string.
#
#      logger.error "Argument #{@foo} mismatch."
#
# 3. With progname.
#
#      logger.info('initialize') { "Initializing..." }
#
# 4. With severity.
#
#      logger.add(Logger::FATAL) { 'Fatal error!' }
#
# The block form allows you to create potentially complex log messages,
# but to delay their evaluation until and unless the message is
# logged.  For example, if we have the following:
#
#     logger.debug { "This is a " + potentially + " expensive operation" }
#
# If the logger's level is +INFO+ or higher, no debug messages will be logged,
# and the entire block will not even be evaluated.  Compare to this:
#
#     logger.debug("This is a " + potentially + " expensive operation")
#
# Here, the string concatenation is done every time, even if the log
# level is not set to show the debug message.
#
# === How to close a logger
#
#      logger.close
#
# === Setting severity threshold
#
# 1. Original interface.
#
#      logger.sev_threshold = Logger::WARN
#
# 2. Log4r (somewhat) compatible interface.
#
#      logger.level = Logger::INFO
#
#      # DEBUG < INFO < WARN < ERROR < FATAL < UNKNOWN
#
# == Format
#
# Log messages are rendered in the output stream in a certain format by
# default.  The default format and a sample are shown below:
#
# Log format:
#   SeverityID, [DateTime #pid] SeverityLabel -- ProgName: message
#
# Log sample:
#   I, [1999-03-03T02:34:24.895701 #19074]  INFO -- Main: info.
#
# You may change the date and time format via #datetime_format=.
#
#   logger.datetime_format = '%Y-%m-%d %H:%M:%S'
#         # e.g. "2004-01-03 00:54:26"
#
# Or, you may change the overall format via the #formatter= method.
#
#   logger.formatter = proc do |severity, datetime, progname, msg|
#     "#{datetime}: #{msg}\n"
#   end
#   # e.g. "2005-09-22 08:51:08 +0900: hello world"
#
class Logger
  VERSION = "1.2.7"
  _, name, rev = %w$Id: logger.rb 56504 2016-10-27 07:47:14Z usa $
  if name
    name = name.chomp(",v")
  else
    name = File.basename(__FILE__)
  end
  rev ||= "v#{VERSION}"
  ProgName = "#{name}/#{rev}"

  class Error < RuntimeError # :nodoc:
  end
  # not used after 1.2.7. just for compat.
  class ShiftingError < Error # :nodoc:
  end

  # Logging severity.
  module Severity
    # Low-level information, mostly for developers.
    DEBUG = 0
    # Generic (useful) information about system operation.
    INFO = 1
    # A warning.
    WARN = 2
    # A handleable error condition.
    ERROR = 3
    # An unhandleable error that results in a program crash.
    FATAL = 4
    # An unknown message that should always be logged.
    UNKNOWN = 5
  end
  include Severity

  # Logging severity threshold (e.g. <tt>Logger::INFO</tt>).
  attr_accessor :level

  # Program name to include in log messages.
  attr_accessor :progname

  # Set date-time format.
  #
  # +datetime_format+:: A string suitable for passing to +strftime+.
  def datetime_format=(datetime_format)
    @default_formatter.datetime_format = datetime_format
  end

  # Returns the date format being used.  See #datetime_format=
  def datetime_format
    @default_formatter.datetime_format
  end

  # Logging formatter, as a +Proc+ that will take four arguments and
  # return the formatted message. The arguments are:
  #
  # +severity+:: The Severity of the log message.
  # +time+:: A Time instance representing when the message was logged.
  # +progname+:: The #progname configured, or passed to the logger method.
  # +msg+:: The _Object_ the user passed to the log message; not necessarily a
  #         String.
  #
  # The block should return an Object that can be written to the logging
  # device via +write+.  The default formatter is used when no formatter is
  # set.
  attr_accessor :formatter

  alias sev_threshold level
  alias sev_threshold= level=

  # Returns +true+ iff the current severity level allows for the printing of
  # +DEBUG+ messages.
  def debug?; @level <= DEBUG; end

  # Returns +true+ iff the current severity level allows for the printing of
  # +INFO+ messages.
  def info?; @level <= INFO; end

  # Returns +true+ iff the current severity level allows for the printing of
  # +WARN+ messages.
  def warn?; @level <= WARN; end

  # Returns +true+ iff the current severity level allows for the printing of
  # +ERROR+ messages.
  def error?; @level <= ERROR; end

  # Returns +true+ iff the current severity level allows for the printing of
  # +FATAL+ messages.
  def fatal?; @level <= FATAL; end

  #
  # :call-seq:
  #   Logger.new(logdev, shift_age = 7, shift_size = 1048576)
  #   Logger.new(logdev, shift_age = 'weekly')
  #
  # === Args
  #
  # +logdev+::
  #   The log device.  This is a filename (String) or IO object (typically
  #   +STDOUT+, +STDERR+, or an open file).
  # +shift_age+::
  #   Number of old log files to keep, *or* frequency of rotation (+daily+,
  #   +weekly+ or +monthly+).
  # +shift_size+::
  #   Maximum logfile size (only applies when +shift_age+ is a number).
  #
  # === Description
  #
  # Create an instance.
  #
  def initialize(logdev, shift_age = 0, shift_size = 1048576)
    @progname = nil
    @level = DEBUG
    @default_formatter = Formatter.new
    @formatter = nil
    @logdev = nil
    if logdev
      @logdev = LogDevice.new(logdev, :shift_age => shift_age,
        :shift_size => shift_size)
    end
  end

  #
  # :call-seq:
  #   Logger#add(severity, message = nil, progname = nil) { ... }
  #
  # === Args
  #
  # +severity+::
  #   Severity.  Constants are defined in Logger namespace: +DEBUG+, +INFO+,
  #   +WARN+, +ERROR+, +FATAL+, or +UNKNOWN+.
  # +message+::
  #   The log message.  A String or Exception.
  # +progname+::
  #   Program name string.  Can be omitted.  Treated as a message if no
  #   +message+ and +block+ are given.
  # +block+::
  #   Can be omitted.  Called to get a message string if +message+ is nil.
  #
  # === Return
  #
  # When the given severity is not high enough (for this particular logger),
  # log no message, and return +true+.
  #
  # === Description
  #
  # Log a message if the given severity is high enough.  This is the generic
  # logging method.  Users will be more inclined to use #debug, #info, #warn,
  # #error, and #fatal.
  #
  # <b>Message format</b>: +message+ can be any object, but it has to be
  # converted to a String in order to log it.  Generally, +inspect+ is used
  # if the given object is not a String.
  # A special case is an +Exception+ object, which will be printed in detail,
  # including message, class, and backtrace.  See #msg2str for the
  # implementation if required.
  #
  # === Bugs
  #
  # * Logfile is not locked.
  # * Append open does not need to lock file.
  # * If the OS supports multi I/O, records possibly may be mixed.
  #
  def add(severity, message = nil, progname = nil)
    severity ||= UNKNOWN
    if @logdev.nil? or severity < @level
      return true
    end
    progname ||= @progname
    if message.nil?
      if block_given?
        message = yield
      else
        message = progname
        progname = @progname
      end
    end
    @logdev.write(
      format_message(format_severity(severity), Time.now, progname, message))
    true
  end
  alias log add

  #
  # Dump given message to the log device without any formatting.  If no log
  # device exists, return +nil+.
  #
  def <<(msg)
    unless @logdev.nil?
      @logdev.write(msg)
    end
  end

  #
  # Log a +DEBUG+ message.
  #
  # See #info for more information.
  #
  def debug(progname = nil, &block)
    add(DEBUG, nil, progname, &block)
  end

  #
  # :call-seq:
  #   info(message)
  #   info(progname, &block)
  #
  # Log an +INFO+ message.
  #
  # +message+:: The message to log; does not need to be a String.
  # +progname+:: In the block form, this is the #progname to use in the
  #              log message.  The default can be set with #progname=.
  # +block+:: Evaluates to the message to log.  This is not evaluated unless
  #           the logger's level is sufficient to log the message.  This
  #           allows you to create potentially expensive logging messages that
  #           are only called when the logger is configured to show them.
  #
  # === Examples
  #
  #   logger.info("MainApp") { "Received connection from #{ip}" }
  #   # ...
  #   logger.info "Waiting for input from user"
  #   # ...
  #   logger.info { "User typed #{input}" }
  #
  # You'll probably stick to the second form above, unless you want to provide a
  # program name (which you can do with #progname= as well).
  #
  # === Return
  #
  # See #add.
  #
  def info(progname = nil, &block)
    add(INFO, nil, progname, &block)
  end

  #
  # Log a +WARN+ message.
  #
  # See #info for more information.
  #
  def warn(progname = nil, &block)
    add(WARN, nil, progname, &block)
  end

  #
  # Log an +ERROR+ message.
  #
  # See #info for more information.
  #
  def error(progname = nil, &block)
    add(ERROR, nil, progname, &block)
  end

  #
  # Log a +FATAL+ message.
  #
  # See #info for more information.
  #
  def fatal(progname = nil, &block)
    add(FATAL, nil, progname, &block)
  end

  #
  # Log an +UNKNOWN+ message.  This will be printed no matter what the logger's
  # level is.
  #
  # See #info for more information.
  #
  def unknown(progname = nil, &block)
    add(UNKNOWN, nil, progname, &block)
  end

  #
  # Close the logging device.
  #
  def close
    @logdev.close if @logdev
  end

private

  # Severity label for logging (max 5 chars).
  SEV_LABEL = %w(DEBUG INFO WARN ERROR FATAL ANY)

  def format_severity(severity)
    SEV_LABEL[severity] || 'ANY'
  end

  def format_message(severity, datetime, progname, msg)
    (@formatter || @default_formatter).call(severity, datetime, progname, msg)
  end


  # Default formatter for log messages.
  class Formatter
    Format = "%s, [%s#%d] %5s -- %s: %s\n"

    attr_accessor :datetime_format

    def initialize
      @datetime_format = nil
    end

    def call(severity, time, progname, msg)
      Format % [severity[0..0], format_datetime(time), $$, severity, progname,
        msg2str(msg)]
    end

  private

    def format_datetime(time)
      time.strftime(@datetime_format || "%Y-%m-%dT%H:%M:%S.%6N ".freeze)
    end

    def msg2str(msg)
      case msg
      when ::String
        msg
      when ::Exception
        "#{ msg.message } (#{ msg.class })\n" <<
          (msg.backtrace || []).join("\n")
      else
        msg.inspect
      end
    end
  end

  module Period
    module_function

    SiD = 24 * 60 * 60

    def next_rotate_time(now, shift_age)
      case shift_age
      when /^daily$/
        t = Time.mktime(now.year, now.month, now.mday) + SiD
      when /^weekly$/
        t = Time.mktime(now.year, now.month, now.mday) + SiD * (7 - now.wday)
      when /^monthly$/
        t = Time.mktime(now.year, now.month, 1) + SiD * 32
        mday = 1
      else
        return now
      end
      if mday or t.hour.nonzero? or t.min.nonzero? or t.sec.nonzero?
        t = Time.mktime(t.year, t.month, mday || (t.mday + (t.hour > 12 ? 1 : 0)))
      end
      t
    end

    def previous_period_end(now, shift_age)
      case shift_age
      when /^daily$/
        t = Time.mktime(now.year, now.month, now.mday) - SiD / 2
      when /^weekly$/
        t = Time.mktime(now.year, now.month, now.mday) - (SiD * (now.wday + 1) + SiD / 2)
      when /^monthly$/
        t = Time.mktime(now.year, now.month, 1) - SiD / 2
      else
        return now
      end
      Time.mktime(t.year, t.month, t.mday, 23, 59, 59)
    end
  end

  # Device used for logging messages.
  class LogDevice
    include Period

    attr_reader :dev
    attr_reader :filename

    class LogDeviceMutex
      include MonitorMixin
    end

    def initialize(log = nil, opt = {})
      @dev = @filename = @shift_age = @shift_size = nil
      @mutex = LogDeviceMutex.new
      if log.respond_to?(:write) and log.respond_to?(:close)
        @dev = log
      else
        @dev = open_logfile(log)
        @dev.sync = true
        @filename = log
        @shift_age = opt[:shift_age] || 7
        @shift_size = opt[:shift_size] || 1048576
        @next_rotate_time = next_rotate_time(Time.now, @shift_age) unless @shift_age.is_a?(Integer)
      end
    end

    def write(message)
      begin
        @mutex.synchronize do
          if @shift_age and @dev.respond_to?(:stat)
            begin
              check_shift_log
            rescue
              warn("log shifting failed. #{$!}")
            end
          end
          begin
            @dev.write(message)
          rescue
            warn("log writing failed. #{$!}")
          end
        end
      rescue Exception => ignored
        warn("log writing failed. #{ignored}")
      end
    end

    def close
      begin
        @mutex.synchronize do
          @dev.close rescue nil
        end
      rescue Exception
        @dev.close rescue nil
      end
    end

  private

    def open_logfile(filename)
      begin
        open(filename, (File::WRONLY | File::APPEND))
      rescue Errno::ENOENT
        create_logfile(filename)
      end
    end

    def create_logfile(filename)
      begin
        logdev = open(filename, (File::WRONLY | File::APPEND | File::CREAT | File::EXCL))
        logdev.flock(File::LOCK_EX)
        logdev.sync = true
        add_log_header(logdev)
        logdev.flock(File::LOCK_UN)
      rescue Errno::EEXIST
        # file is created by another process
        logdev = open_logfile(filename)
        logdev.sync = true
      end
      logdev
    end

    def add_log_header(file)
      file.write(
        "# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName]
      ) if file.size == 0
    end

    def check_shift_log
      if @shift_age.is_a?(Integer)
        # Note: always returns false if '0'.
        if @filename && (@shift_age > 0) && (@dev.stat.size > @shift_size)
          lock_shift_log { shift_log_age }
        end
      else
        now = Time.now
        if now >= @next_rotate_time
          @next_rotate_time = next_rotate_time(now, @shift_age)
          lock_shift_log { shift_log_period(previous_period_end(now, @shift_age)) }
        end
      end
    end

    if /mswin|mingw/ =~ RUBY_PLATFORM
      def lock_shift_log
        yield
      end
    else
      def lock_shift_log
        retry_limit = 8
        retry_sleep = 0.1
        begin
          File.open(@filename, File::WRONLY | File::APPEND) do |lock|
            lock.flock(File::LOCK_EX) # inter-process locking. will be unlocked at closing file
            if File.identical?(@filename, lock) and File.identical?(lock, @dev)
              yield # log shifting
            else
              # log shifted by another process (i-node before locking and i-node after locking are different)
              @dev.close rescue nil
              @dev = open_logfile(@filename)
              @dev.sync = true
            end
          end
        rescue Errno::ENOENT
          # @filename file would not exist right after #rename and before #create_logfile
          if retry_limit <= 0
            warn("log rotation inter-process lock failed. #{$!}")
          else
            sleep retry_sleep
            retry_limit -= 1
            retry_sleep *= 2
            retry
          end
        end
      rescue
        warn("log rotation inter-process lock failed. #{$!}")
      end
    end

    def shift_log_age
      (@shift_age-3).downto(0) do |i|
        if FileTest.exist?("#{@filename}.#{i}")
          File.rename("#{@filename}.#{i}", "#{@filename}.#{i+1}")
        end
      end
      @dev.close rescue nil
      File.rename("#{@filename}", "#{@filename}.0")
      @dev = create_logfile(@filename)
      return true
    end

    def shift_log_period(period_end)
      postfix = period_end.strftime("%Y%m%d") # YYYYMMDD
      age_file = "#{@filename}.#{postfix}"
      if FileTest.exist?(age_file)
        # try to avoid filename crash caused by Timestamp change.
        idx = 0
        # .99 can be overridden; avoid too much file search with 'loop do'
        while idx < 100
          idx += 1
          age_file = "#{@filename}.#{postfix}.#{idx}"
          break unless FileTest.exist?(age_file)
        end
      end
      @dev.close rescue nil
      File.rename("#{@filename}", age_file)
      @dev = create_logfile(@filename)
      return true
    end
  end
end
lib64/ruby/2.2.0/tracer.rb000064400000014634150402106330010713 0ustar00#--
# $Release Version: 0.3$
# $Revision: 1.12 $
require "thread"

##
# Outputs a source level execution trace of a Ruby program.
#
# It does this by registering an event handler with Kernel#set_trace_func for
# processing incoming events.  It also provides methods for filtering unwanted
# trace output (see Tracer.add_filter, Tracer.on, and Tracer.off).
#
# == Example
#
# Consider the following Ruby script
#
#   class A
#     def square(a)
#       return a*a
#     end
#   end
#
#   a = A.new
#   a.square(5)
#
# Running the above script using <code>ruby -r tracer example.rb</code> will
# output the following trace to STDOUT (Note you can also explicitly
# <code>require 'tracer'</code>)
#
#   #0:<internal:lib/rubygems/custom_require>:38:Kernel:<: -
#   #0:example.rb:3::-: class A
#   #0:example.rb:3::C: class A
#   #0:example.rb:4::-:   def square(a)
#   #0:example.rb:7::E: end
#   #0:example.rb:9::-: a = A.new
#   #0:example.rb:10::-: a.square(5)
#   #0:example.rb:4:A:>:   def square(a)
#   #0:example.rb:5:A:-:     return a*a
#   #0:example.rb:6:A:<:   end
#    |  |         | |  |
#    |  |         | |   ---------------------+ event
#    |  |         |  ------------------------+ class
#    |  |          --------------------------+ line
#    |   ------------------------------------+ filename
#     ---------------------------------------+ thread
#
# Symbol table used for displaying incoming events:
#
# +}+:: call a C-language routine
# +{+:: return from a C-language routine
# +>+:: call a Ruby method
# +C+:: start a class or module definition
# +E+:: finish a class or module definition
# +-+:: execute code on a new line
# +^+:: raise an exception
# +<+:: return from a Ruby method
#
# == Copyright
#
# by Keiju ISHITSUKA(keiju@ishitsuka.com)
#
class Tracer
  class << self
    # display additional debug information (defaults to false)
    attr_accessor :verbose
    alias verbose? verbose

    # output stream used to output trace (defaults to STDOUT)
    attr_accessor :stdout

    # mutex lock used by tracer for displaying trace output
    attr_reader :stdout_mutex

    # display process id in trace output (defaults to false)
    attr_accessor :display_process_id
    alias display_process_id? display_process_id

    # display thread id in trace output (defaults to true)
    attr_accessor :display_thread_id
    alias display_thread_id? display_thread_id

    # display C-routine calls in trace output (defaults to false)
    attr_accessor :display_c_call
    alias display_c_call? display_c_call
  end

  Tracer::stdout = STDOUT
  Tracer::verbose = false
  Tracer::display_process_id = false
  Tracer::display_thread_id = true
  Tracer::display_c_call = false

  @stdout_mutex = Mutex.new

  # Symbol table used for displaying trace information
  EVENT_SYMBOL = {
    "line" => "-",
    "call" => ">",
    "return" => "<",
    "class" => "C",
    "end" => "E",
    "raise" => "^",
    "c-call" => "}",
    "c-return" => "{",
    "unknown" => "?"
  }

  def initialize # :nodoc:
    @threads = Hash.new
    if defined? Thread.main
      @threads[Thread.main.object_id] = 0
    else
      @threads[Thread.current.object_id] = 0
    end

    @get_line_procs = {}

    @filters = []
  end

  def stdout # :nodoc:
    Tracer.stdout
  end

  def on # :nodoc:
    if block_given?
      on
      begin
        yield
      ensure
        off
      end
    else
      set_trace_func method(:trace_func).to_proc
      stdout.print "Trace on\n" if Tracer.verbose?
    end
  end

  def off # :nodoc:
    set_trace_func nil
    stdout.print "Trace off\n" if Tracer.verbose?
  end

  def add_filter(p = proc) # :nodoc:
    @filters.push p
  end

  def set_get_line_procs(file, p = proc) # :nodoc:
    @get_line_procs[file] = p
  end

  def get_line(file, line) # :nodoc:
    if p = @get_line_procs[file]
      return p.call(line)
    end

    unless list = SCRIPT_LINES__[file]
      list = File.readlines(file) rescue []
      SCRIPT_LINES__[file] = list
    end

    if l = list[line - 1]
      l
    else
      "-\n"
    end
  end

  def get_thread_no # :nodoc:
    if no = @threads[Thread.current.object_id]
      no
    else
      @threads[Thread.current.object_id] = @threads.size
    end
  end

  def trace_func(event, file, line, id, binding, klass, *) # :nodoc:
    return if file == __FILE__

    for p in @filters
      return unless p.call event, file, line, id, binding, klass
    end

    return unless Tracer::display_c_call? or
      event != "c-call" && event != "c-return"

    Tracer::stdout_mutex.synchronize do
      if EVENT_SYMBOL[event]
        stdout.printf("<%d>", $$) if Tracer::display_process_id?
        stdout.printf("#%d:", get_thread_no) if Tracer::display_thread_id?
        if line == 0
          source = "?\n"
        else
          source = get_line(file, line)
        end
        stdout.printf("%s:%d:%s:%s: %s",
               file,
               line,
               klass || '',
               EVENT_SYMBOL[event],
               source)
      end
    end

  end

  # Reference to singleton instance of Tracer
  Single = new

  ##
  # Start tracing
  #
  # === Example
  #
  #   Tracer.on
  #   # code to trace here
  #   Tracer.off
  #
  # You can also pass a block:
  #
  #   Tracer.on {
  #     # trace everything in this block
  #   }

  def Tracer.on
    if block_given?
      Single.on{yield}
    else
      Single.on
    end
  end

  ##
  # Disable tracing

  def Tracer.off
    Single.off
  end

  ##
  # Register an event handler <code>p</code> which is called everytime a line
  # in +file_name+ is executed.
  #
  # Example:
  #
  #   Tracer.set_get_line_procs("example.rb", lambda { |line|
  #     puts "line number executed is #{line}"
  #   })

  def Tracer.set_get_line_procs(file_name, p = proc)
    Single.set_get_line_procs(file_name, p)
  end

  ##
  # Used to filter unwanted trace output
  #
  # Example which only outputs lines of code executed within the Kernel class:
  #
  #   Tracer.add_filter do |event, file, line, id, binding, klass, *rest|
  #     "Kernel" == klass.to_s
  #   end

  def Tracer.add_filter(p = proc)
    Single.add_filter(p)
  end
end

# :stopdoc:
SCRIPT_LINES__ = {} unless defined? SCRIPT_LINES__

if $0 == __FILE__
  # direct call

  $0 = ARGV[0]
  ARGV.shift
  Tracer.on
  require $0
else
  # call Tracer.on only if required by -r command-line option
  count = caller.count {|bt| %r%/rubygems/core_ext/kernel_require\.rb:% !~ bt}
  if (defined?(Gem) and count == 0) or
     (!defined?(Gem) and count <= 1)
    Tracer.on
  end
end
# :startdoc:
lib64/ruby/2.2.0/uri/https.rb000064400000001105150402106330011361 0ustar00# = uri/https.rb
#
# Author:: Akira Yamada <akira@ruby-lang.org>
# License:: You can redistribute it and/or modify it under the same term as Ruby.
# Revision:: $Id: https.rb 31555 2011-05-13 20:03:21Z drbrain $
#
# See URI for general documentation
#

require 'uri/http'

module URI

  # The default port for HTTPS URIs is 443, and the scheme is 'https:' rather
  # than 'http:'. Other than that, HTTPS URIs are identical to HTTP URIs;
  # see URI::HTTP.
  class HTTPS < HTTP
    # A Default port of 443 for URI::HTTPS
    DEFAULT_PORT = 443
  end
  @@schemes['HTTPS'] = HTTPS
end
lib64/ruby/2.2.0/uri/rfc2396_parser.rb000064400000042531150402106330012701 0ustar00#--
# = uri/common.rb
#
# Author:: Akira Yamada <akira@ruby-lang.org>
# Revision:: $Id$
# License::
#   You can redistribute it and/or modify it under the same term as Ruby.
#
# See URI for general documentation
#

module URI
  #
  # Includes URI::REGEXP::PATTERN
  #
  module RFC2396_REGEXP
    #
    # Patterns used to parse URI's
    #
    module PATTERN
      # :stopdoc:

      # RFC 2396 (URI Generic Syntax)
      # RFC 2732 (IPv6 Literal Addresses in URL's)
      # RFC 2373 (IPv6 Addressing Architecture)

      # alpha         = lowalpha | upalpha
      ALPHA = "a-zA-Z"
      # alphanum      = alpha | digit
      ALNUM = "#{ALPHA}\\d"

      # hex           = digit | "A" | "B" | "C" | "D" | "E" | "F" |
      #                         "a" | "b" | "c" | "d" | "e" | "f"
      HEX     = "a-fA-F\\d"
      # escaped       = "%" hex hex
      ESCAPED = "%[#{HEX}]{2}"
      # mark          = "-" | "_" | "." | "!" | "~" | "*" | "'" |
      #                 "(" | ")"
      # unreserved    = alphanum | mark
      UNRESERVED = "\\-_.!~*'()#{ALNUM}"
      # reserved      = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
      #                 "$" | ","
      # reserved      = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
      #                 "$" | "," | "[" | "]" (RFC 2732)
      RESERVED = ";/?:@&=+$,\\[\\]"

      # domainlabel   = alphanum | alphanum *( alphanum | "-" ) alphanum
      DOMLABEL = "(?:[#{ALNUM}](?:[-#{ALNUM}]*[#{ALNUM}])?)"
      # toplabel      = alpha | alpha *( alphanum | "-" ) alphanum
      TOPLABEL = "(?:[#{ALPHA}](?:[-#{ALNUM}]*[#{ALNUM}])?)"
      # hostname      = *( domainlabel "." ) toplabel [ "." ]
      HOSTNAME = "(?:#{DOMLABEL}\\.)*#{TOPLABEL}\\.?"

      # :startdoc:
    end # PATTERN

    # :startdoc:
  end # REGEXP

  # class that Parses String's into URI's
  #
  # It contains a Hash set of patterns and Regexp's that match and validate.
  #
  class RFC2396_Parser
    include RFC2396_REGEXP

    #
    # == Synopsis
    #
    #   URI::Parser.new([opts])
    #
    # == Args
    #
    # The constructor accepts a hash as options for parser.
    # Keys of options are pattern names of URI components
    # and values of options are pattern strings.
    # The constructor generates set of regexps for parsing URIs.
    #
    # You can use the following keys:
    #
    #   * :ESCAPED (URI::PATTERN::ESCAPED in default)
    #   * :UNRESERVED (URI::PATTERN::UNRESERVED in default)
    #   * :DOMLABEL (URI::PATTERN::DOMLABEL in default)
    #   * :TOPLABEL (URI::PATTERN::TOPLABEL in default)
    #   * :HOSTNAME (URI::PATTERN::HOSTNAME in default)
    #
    # == Examples
    #
    #   p = URI::Parser.new(:ESCAPED => "(?:%[a-fA-F0-9]{2}|%u[a-fA-F0-9]{4})")
    #   u = p.parse("http://example.jp/%uABCD") #=> #<URI::HTTP:0xb78cf4f8 URL:http://example.jp/%uABCD>
    #   URI.parse(u.to_s) #=> raises URI::InvalidURIError
    #
    #   s = "http://example.com/ABCD"
    #   u1 = p.parse(s) #=> #<URI::HTTP:0xb78c3220 URL:http://example.com/ABCD>
    #   u2 = URI.parse(s) #=> #<URI::HTTP:0xb78b6d54 URL:http://example.com/ABCD>
    #   u1 == u2 #=> true
    #   u1.eql?(u2) #=> false
    #
    def initialize(opts = {})
      @pattern = initialize_pattern(opts)
      @pattern.each_value(&:freeze)
      @pattern.freeze

      @regexp = initialize_regexp(@pattern)
      @regexp.each_value(&:freeze)
      @regexp.freeze
    end

    # The Hash of patterns.
    #
    # see also URI::Parser.initialize_pattern
    attr_reader :pattern

    # The Hash of Regexp
    #
    # see also URI::Parser.initialize_regexp
    attr_reader :regexp

    # Returns a split URI against regexp[:ABS_URI]
    def split(uri)
      case uri
      when ''
        # null uri

      when @regexp[:ABS_URI]
        scheme, opaque, userinfo, host, port,
          registry, path, query, fragment = $~[1..-1]

        # URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]

        # absoluteURI   = scheme ":" ( hier_part | opaque_part )
        # hier_part     = ( net_path | abs_path ) [ "?" query ]
        # opaque_part   = uric_no_slash *uric

        # abs_path      = "/"  path_segments
        # net_path      = "//" authority [ abs_path ]

        # authority     = server | reg_name
        # server        = [ [ userinfo "@" ] hostport ]

        if !scheme
          raise InvalidURIError,
            "bad URI(absolute but no scheme): #{uri}"
        end
        if !opaque && (!path && (!host && !registry))
          raise InvalidURIError,
            "bad URI(absolute but no path): #{uri}"
        end

      when @regexp[:REL_URI]
        scheme = nil
        opaque = nil

        userinfo, host, port, registry,
          rel_segment, abs_path, query, fragment = $~[1..-1]
        if rel_segment && abs_path
          path = rel_segment + abs_path
        elsif rel_segment
          path = rel_segment
        elsif abs_path
          path = abs_path
        end

        # URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]

        # relativeURI   = ( net_path | abs_path | rel_path ) [ "?" query ]

        # net_path      = "//" authority [ abs_path ]
        # abs_path      = "/"  path_segments
        # rel_path      = rel_segment [ abs_path ]

        # authority     = server | reg_name
        # server        = [ [ userinfo "@" ] hostport ]

      else
        raise InvalidURIError, "bad URI(is not URI?): #{uri}"
      end

      path = '' if !path && !opaque # (see RFC2396 Section 5.2)
      ret = [
        scheme,
        userinfo, host, port,         # X
        registry,                     # X
        path,                         # Y
        opaque,                       # Y
        query,
        fragment
      ]
      return ret
    end

    #
    # == Args
    #
    # +uri+::
    #    String
    #
    # == Description
    #
    # parses +uri+ and constructs either matching URI scheme object
    # (FTP, HTTP, HTTPS, LDAP, LDAPS, or MailTo) or URI::Generic
    #
    # == Usage
    #
    #   p = URI::Parser.new
    #   p.parse("ldap://ldap.example.com/dc=example?user=john")
    #   #=> #<URI::LDAP:0x00000000b9e7e8 URL:ldap://ldap.example.com/dc=example?user=john>
    #
    def parse(uri)
      scheme, userinfo, host, port,
        registry, path, opaque, query, fragment = self.split(uri)

      if scheme && URI.scheme_list.include?(scheme.upcase)
        URI.scheme_list[scheme.upcase].new(scheme, userinfo, host, port,
                                           registry, path, opaque, query,
                                           fragment, self)
      else
        Generic.new(scheme, userinfo, host, port,
                    registry, path, opaque, query,
                    fragment, self)
      end
    end


    #
    # == Args
    #
    # +uris+::
    #    an Array of Strings
    #
    # == Description
    #
    # Attempts to parse and merge a set of URIs
    #
    def join(*uris)
      uris[0] = convert_to_uri(uris[0])
      uris.inject :merge
    end

    #
    # :call-seq:
    #   extract( str )
    #   extract( str, schemes )
    #   extract( str, schemes ) {|item| block }
    #
    # == Args
    #
    # +str+::
    #    String to search
    # +schemes+::
    #    Patterns to apply to +str+
    #
    # == Description
    #
    # Attempts to parse and merge a set of URIs
    # If no +block+ given , then returns the result,
    # else it calls +block+ for each element in result.
    #
    # see also URI::Parser.make_regexp
    #
    def extract(str, schemes = nil)
      if block_given?
        str.scan(make_regexp(schemes)) { yield $& }
        nil
      else
        result = []
        str.scan(make_regexp(schemes)) { result.push $& }
        result
      end
    end

    # returns Regexp that is default self.regexp[:ABS_URI_REF],
    # unless +schemes+ is provided. Then it is a Regexp.union with self.pattern[:X_ABS_URI]
    def make_regexp(schemes = nil)
      unless schemes
        @regexp[:ABS_URI_REF]
      else
        /(?=#{Regexp.union(*schemes)}:)#{@pattern[:X_ABS_URI]}/x
      end
    end

    #
    # :call-seq:
    #   escape( str )
    #   escape( str, unsafe )
    #
    # == Args
    #
    # +str+::
    #    String to make safe
    # +unsafe+::
    #    Regexp to apply. Defaults to self.regexp[:UNSAFE]
    #
    # == Description
    #
    # constructs a safe String from +str+, removing unsafe characters,
    # replacing them with codes.
    #
    def escape(str, unsafe = @regexp[:UNSAFE])
      unless unsafe.kind_of?(Regexp)
        # perhaps unsafe is String object
        unsafe = Regexp.new("[#{Regexp.quote(unsafe)}]", false)
      end
      str.gsub(unsafe) do
        us = $&
        tmp = ''
        us.each_byte do |uc|
          tmp << sprintf('%%%02X', uc)
        end
        tmp
      end.force_encoding(Encoding::US_ASCII)
    end

    #
    # :call-seq:
    #   unescape( str )
    #   unescape( str, unsafe )
    #
    # == Args
    #
    # +str+::
    #    String to remove escapes from
    # +unsafe+::
    #    Regexp to apply. Defaults to self.regexp[:ESCAPED]
    #
    # == Description
    #
    # Removes escapes from +str+
    #
    def unescape(str, escaped = @regexp[:ESCAPED])
      str.gsub(escaped) { [$&[1, 2].hex].pack('C') }.force_encoding(str.encoding)
    end

    @@to_s = Kernel.instance_method(:to_s)
    def inspect
      @@to_s.bind(self).call
    end

    private

    # Constructs the default Hash of patterns
    def initialize_pattern(opts = {})
      ret = {}
      ret[:ESCAPED] = escaped = (opts.delete(:ESCAPED) || PATTERN::ESCAPED)
      ret[:UNRESERVED] = unreserved = opts.delete(:UNRESERVED) || PATTERN::UNRESERVED
      ret[:RESERVED] = reserved = opts.delete(:RESERVED) || PATTERN::RESERVED
      ret[:DOMLABEL] = opts.delete(:DOMLABEL) || PATTERN::DOMLABEL
      ret[:TOPLABEL] = opts.delete(:TOPLABEL) || PATTERN::TOPLABEL
      ret[:HOSTNAME] = hostname = opts.delete(:HOSTNAME)

      # RFC 2396 (URI Generic Syntax)
      # RFC 2732 (IPv6 Literal Addresses in URL's)
      # RFC 2373 (IPv6 Addressing Architecture)

      # uric          = reserved | unreserved | escaped
      ret[:URIC] = uric = "(?:[#{unreserved}#{reserved}]|#{escaped})"
      # uric_no_slash = unreserved | escaped | ";" | "?" | ":" | "@" |
      #                 "&" | "=" | "+" | "$" | ","
      ret[:URIC_NO_SLASH] = uric_no_slash = "(?:[#{unreserved};?:@&=+$,]|#{escaped})"
      # query         = *uric
      ret[:QUERY] = query = "#{uric}*"
      # fragment      = *uric
      ret[:FRAGMENT] = fragment = "#{uric}*"

      # hostname      = *( domainlabel "." ) toplabel [ "." ]
      # reg-name      = *( unreserved / pct-encoded / sub-delims ) # RFC3986
      unless hostname
        ret[:HOSTNAME] = hostname = "(?:[a-zA-Z0-9\\-.]|%\\h\\h)+"
      end

      # RFC 2373, APPENDIX B:
      # IPv6address = hexpart [ ":" IPv4address ]
      # IPv4address   = 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT
      # hexpart = hexseq | hexseq "::" [ hexseq ] | "::" [ hexseq ]
      # hexseq  = hex4 *( ":" hex4)
      # hex4    = 1*4HEXDIG
      #
      # XXX: This definition has a flaw. "::" + IPv4address must be
      # allowed too.  Here is a replacement.
      #
      # IPv4address = 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT
      ret[:IPV4ADDR] = ipv4addr = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"
      # hex4     = 1*4HEXDIG
      hex4 = "[#{PATTERN::HEX}]{1,4}"
      # lastpart = hex4 | IPv4address
      lastpart = "(?:#{hex4}|#{ipv4addr})"
      # hexseq1  = *( hex4 ":" ) hex4
      hexseq1 = "(?:#{hex4}:)*#{hex4}"
      # hexseq2  = *( hex4 ":" ) lastpart
      hexseq2 = "(?:#{hex4}:)*#{lastpart}"
      # IPv6address = hexseq2 | [ hexseq1 ] "::" [ hexseq2 ]
      ret[:IPV6ADDR] = ipv6addr = "(?:#{hexseq2}|(?:#{hexseq1})?::(?:#{hexseq2})?)"

      # IPv6prefix  = ( hexseq1 | [ hexseq1 ] "::" [ hexseq1 ] ) "/" 1*2DIGIT
      # unused

      # ipv6reference = "[" IPv6address "]" (RFC 2732)
      ret[:IPV6REF] = ipv6ref = "\\[#{ipv6addr}\\]"

      # host          = hostname | IPv4address
      # host          = hostname | IPv4address | IPv6reference (RFC 2732)
      ret[:HOST] = host = "(?:#{hostname}|#{ipv4addr}|#{ipv6ref})"
      # port          = *digit
      port = '\d*'
      # hostport      = host [ ":" port ]
      ret[:HOSTPORT] = hostport = "#{host}(?::#{port})?"

      # userinfo      = *( unreserved | escaped |
      #                    ";" | ":" | "&" | "=" | "+" | "$" | "," )
      ret[:USERINFO] = userinfo = "(?:[#{unreserved};:&=+$,]|#{escaped})*"

      # pchar         = unreserved | escaped |
      #                 ":" | "@" | "&" | "=" | "+" | "$" | ","
      pchar = "(?:[#{unreserved}:@&=+$,]|#{escaped})"
      # param         = *pchar
      param = "#{pchar}*"
      # segment       = *pchar *( ";" param )
      segment = "#{pchar}*(?:;#{param})*"
      # path_segments = segment *( "/" segment )
      ret[:PATH_SEGMENTS] = path_segments = "#{segment}(?:/#{segment})*"

      # server        = [ [ userinfo "@" ] hostport ]
      server = "(?:#{userinfo}@)?#{hostport}"
      # reg_name      = 1*( unreserved | escaped | "$" | "," |
      #                     ";" | ":" | "@" | "&" | "=" | "+" )
      ret[:REG_NAME] = reg_name = "(?:[#{unreserved}$,;:@&=+]|#{escaped})+"
      # authority     = server | reg_name
      authority = "(?:#{server}|#{reg_name})"

      # rel_segment   = 1*( unreserved | escaped |
      #                     ";" | "@" | "&" | "=" | "+" | "$" | "," )
      ret[:REL_SEGMENT] = rel_segment = "(?:[#{unreserved};@&=+$,]|#{escaped})+"

      # scheme        = alpha *( alpha | digit | "+" | "-" | "." )
      ret[:SCHEME] = scheme = "[#{PATTERN::ALPHA}][\\-+.#{PATTERN::ALPHA}\\d]*"

      # abs_path      = "/"  path_segments
      ret[:ABS_PATH] = abs_path = "/#{path_segments}"
      # rel_path      = rel_segment [ abs_path ]
      ret[:REL_PATH] = rel_path = "#{rel_segment}(?:#{abs_path})?"
      # net_path      = "//" authority [ abs_path ]
      ret[:NET_PATH] = net_path = "//#{authority}(?:#{abs_path})?"

      # hier_part     = ( net_path | abs_path ) [ "?" query ]
      ret[:HIER_PART] = hier_part = "(?:#{net_path}|#{abs_path})(?:\\?(?:#{query}))?"
      # opaque_part   = uric_no_slash *uric
      ret[:OPAQUE_PART] = opaque_part = "#{uric_no_slash}#{uric}*"

      # absoluteURI   = scheme ":" ( hier_part | opaque_part )
      ret[:ABS_URI] = abs_uri = "#{scheme}:(?:#{hier_part}|#{opaque_part})"
      # relativeURI   = ( net_path | abs_path | rel_path ) [ "?" query ]
      ret[:REL_URI] = rel_uri = "(?:#{net_path}|#{abs_path}|#{rel_path})(?:\\?#{query})?"

      # URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
      ret[:URI_REF] = "(?:#{abs_uri}|#{rel_uri})?(?:##{fragment})?"

      ret[:X_ABS_URI] = "
        (#{scheme}):                           (?# 1: scheme)
        (?:
           (#{opaque_part})                    (?# 2: opaque)
        |
           (?:(?:
             //(?:
                 (?:(?:(#{userinfo})@)?        (?# 3: userinfo)
                   (?:(#{host})(?::(\\d*))?))? (?# 4: host, 5: port)
               |
                 (#{reg_name})                 (?# 6: registry)
               )
             |
             (?!//))                           (?# XXX: '//' is the mark for hostport)
             (#{abs_path})?                    (?# 7: path)
           )(?:\\?(#{query}))?                 (?# 8: query)
        )
        (?:\\#(#{fragment}))?                  (?# 9: fragment)
      "

      ret[:X_REL_URI] = "
        (?:
          (?:
            //
            (?:
              (?:(#{userinfo})@)?       (?# 1: userinfo)
                (#{host})?(?::(\\d*))?  (?# 2: host, 3: port)
            |
              (#{reg_name})             (?# 4: registry)
            )
          )
        |
          (#{rel_segment})              (?# 5: rel_segment)
        )?
        (#{abs_path})?                  (?# 6: abs_path)
        (?:\\?(#{query}))?              (?# 7: query)
        (?:\\#(#{fragment}))?           (?# 8: fragment)
      "

      ret
    end

    # Constructs the default Hash of Regexp's
    def initialize_regexp(pattern)
      ret = {}

      # for URI::split
      ret[:ABS_URI] = Regexp.new('\A\s*' + pattern[:X_ABS_URI] + '\s*\z', Regexp::EXTENDED)
      ret[:REL_URI] = Regexp.new('\A\s*' + pattern[:X_REL_URI] + '\s*\z', Regexp::EXTENDED)

      # for URI::extract
      ret[:URI_REF]     = Regexp.new(pattern[:URI_REF])
      ret[:ABS_URI_REF] = Regexp.new(pattern[:X_ABS_URI], Regexp::EXTENDED)
      ret[:REL_URI_REF] = Regexp.new(pattern[:X_REL_URI], Regexp::EXTENDED)

      # for URI::escape/unescape
      ret[:ESCAPED] = Regexp.new(pattern[:ESCAPED])
      ret[:UNSAFE]  = Regexp.new("[^#{pattern[:UNRESERVED]}#{pattern[:RESERVED]}]")

      # for Generic#initialize
      ret[:SCHEME]   = Regexp.new("\\A#{pattern[:SCHEME]}\\z")
      ret[:USERINFO] = Regexp.new("\\A#{pattern[:USERINFO]}\\z")
      ret[:HOST]     = Regexp.new("\\A#{pattern[:HOST]}\\z")
      ret[:PORT]     = Regexp.new("\\A#{pattern[:PORT]}\\z")
      ret[:OPAQUE]   = Regexp.new("\\A#{pattern[:OPAQUE_PART]}\\z")
      ret[:REGISTRY] = Regexp.new("\\A#{pattern[:REG_NAME]}\\z")
      ret[:ABS_PATH] = Regexp.new("\\A#{pattern[:ABS_PATH]}\\z")
      ret[:REL_PATH] = Regexp.new("\\A#{pattern[:REL_PATH]}\\z")
      ret[:QUERY]    = Regexp.new("\\A#{pattern[:QUERY]}\\z")
      ret[:FRAGMENT] = Regexp.new("\\A#{pattern[:FRAGMENT]}\\z")

      ret
    end

    def convert_to_uri(uri)
      if uri.is_a?(URI::Generic)
        uri
      elsif uri = String.try_convert(uri)
        parse(uri)
      else
        raise ArgumentError,
          "bad argument (expected URI object or URI string)"
      end
    end

  end # class Parser
end # module URI
lib64/ruby/2.2.0/uri/ldaps.rb000064400000000726150402106330011332 0ustar00# = uri/ldap.rb
#
# License:: You can redistribute it and/or modify it under the same term as Ruby.
#
# See URI for general documentation
#

require 'uri/ldap'

module URI

  # The default port for LDAPS URIs is 636, and the scheme is 'ldaps:' rather
  # than 'ldap:'. Other than that, LDAPS URIs are identical to LDAP URIs;
  # see URI::LDAP.
  class LDAPS < LDAP
    # A Default port of 636 for URI::LDAPS
    DEFAULT_PORT = 636
  end
  @@schemes['LDAPS'] = LDAPS
end
lib64/ruby/2.2.0/uri/rfc3986_parser.rb000064400000014255150402106330012711 0ustar00module URI
  class RFC3986_Parser # :nodoc:
    # URI defined in RFC3986
    # this regexp is modified not to host is not empty string
    RFC3986_URI = /\A(?<URI>(?<scheme>[A-Za-z][+\-.0-9A-Za-z]*):(?<hier-part>\/\/(?<authority>(?:(?<userinfo>(?:%\h\h|[!$&-.0-;=A-Z_a-z~])*)@)?(?<host>(?<IP-literal>\[(?:(?<IPv6address>(?:\h{1,4}:){6}(?<ls32>\h{1,4}:\h{1,4}|(?<IPv4address>(?<dec-octet>[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]|\d)\.\g<dec-octet>\.\g<dec-octet>\.\g<dec-octet>))|::(?:\h{1,4}:){5}\g<ls32>|\h{1,4}?::(?:\h{1,4}:){4}\g<ls32>|(?:(?:\h{1,4}:)?\h{1,4})?::(?:\h{1,4}:){3}\g<ls32>|(?:(?:\h{1,4}:){,2}\h{1,4})?::(?:\h{1,4}:){2}\g<ls32>|(?:(?:\h{1,4}:){,3}\h{1,4})?::\h{1,4}:\g<ls32>|(?:(?:\h{1,4}:){,4}\h{1,4})?::\g<ls32>|(?:(?:\h{1,4}:){,5}\h{1,4})?::\h{1,4}|(?:(?:\h{1,4}:){,6}\h{1,4})?::)|(?<IPvFuture>v\h+\.[!$&-.0-;=A-Z_a-z~]+))\])|\g<IPv4address>|(?<reg-name>(?:%\h\h|[!$&-.0-9;=A-Z_a-z~])+))?(?::(?<port>\d*))?)(?<path-abempty>(?:\/(?<segment>(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*))*)|(?<path-absolute>\/(?:(?<segment-nz>(?:%\h\h|[!$&-.0-;=@-Z_a-z~])+)(?:\/\g<segment>)*)?)|(?<path-rootless>\g<segment-nz>(?:\/\g<segment>)*)|(?<path-empty>))(?:\?(?<query>[^#]*))?(?:\#(?<fragment>(?:%\h\h|[!$&-.0-;=@-Z_a-z~\/?])*))?)\z/
    RFC3986_relative_ref = /\A(?<relative-ref>(?<relative-part>\/\/(?<authority>(?:(?<userinfo>(?:%\h\h|[!$&-.0-;=A-Z_a-z~])*)@)?(?<host>(?<IP-literal>\[(?<IPv6address>(?:\h{1,4}:){6}(?<ls32>\h{1,4}:\h{1,4}|(?<IPv4address>(?<dec-octet>[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]|\d)\.\g<dec-octet>\.\g<dec-octet>\.\g<dec-octet>))|::(?:\h{1,4}:){5}\g<ls32>|\h{1,4}?::(?:\h{1,4}:){4}\g<ls32>|(?:(?:\h{1,4}:){,1}\h{1,4})?::(?:\h{1,4}:){3}\g<ls32>|(?:(?:\h{1,4}:){,2}\h{1,4})?::(?:\h{1,4}:){2}\g<ls32>|(?:(?:\h{1,4}:){,3}\h{1,4})?::\h{1,4}:\g<ls32>|(?:(?:\h{1,4}:){,4}\h{1,4})?::\g<ls32>|(?:(?:\h{1,4}:){,5}\h{1,4})?::\h{1,4}|(?:(?:\h{1,4}:){,6}\h{1,4})?::)|(?<IPvFuture>v\h+\.[!$&-.0-;=A-Z_a-z~]+)\])|\g<IPv4address>|(?<reg-name>(?:%\h\h|[!$&-.0-9;=A-Z_a-z~])+))?(?::(?<port>\d*))?)(?<path-abempty>(?:\/(?<segment>(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*))*)|(?<path-absolute>\/(?:(?<segment-nz>(?:%\h\h|[!$&-.0-;=@-Z_a-z~])+)(?:\/\g<segment>)*)?)|(?<path-noscheme>(?<segment-nz-nc>(?:%\h\h|[!$&-.0-9;=@-Z_a-z~])+)(?:\/\g<segment>)*)|(?<path-empty>))(?:\?(?<query>[^#]*))?(?:\#(?<fragment>(?:%\h\h|[!$&-.0-;=@-Z_a-z~\/?])*))?)\z/
    attr_reader :regexp

    def initialize
      @regexp = default_regexp.each_value(&:freeze).freeze
    end

    def split(uri) #:nodoc:
      begin
        uri = uri.to_str
      rescue NoMethodError
        raise InvalidURIError, "bad URI(is not URI?): #{uri}"
      end
      uri.ascii_only? or
        raise InvalidURIError, "URI must be ascii only #{uri.dump}"
      if m = RFC3986_URI.match(uri)
        query = m["query".freeze]
        scheme = m["scheme".freeze]
        opaque = m["path-rootless".freeze]
        if opaque
          opaque << "?#{query}" if query
          [ scheme,
            nil, # userinfo
            nil, # host
            nil, # port
            nil, # registry
            nil, # path
            opaque,
            nil, # query
            m["fragment".freeze]
          ]
        else # normal
          [ scheme,
            m["userinfo".freeze],
            m["host".freeze],
            m["port".freeze],
            nil, # registry
            (m["path-abempty".freeze] ||
             m["path-absolute".freeze] ||
             m["path-empty".freeze]),
            nil, # opaque
            query,
            m["fragment".freeze]
          ]
        end
      elsif m = RFC3986_relative_ref.match(uri)
        [ nil, # scheme
          m["userinfo".freeze],
          m["host".freeze],
          m["port".freeze],
          nil, # registry,
          (m["path-abempty".freeze] ||
           m["path-absolute".freeze] ||
           m["path-noscheme".freeze] ||
           m["path-empty".freeze]),
          nil, # opaque
          m["query".freeze],
          m["fragment".freeze]
        ]
      else
        raise InvalidURIError, "bad URI(is not URI?): #{uri}"
      end
    end

    def parse(uri) # :nodoc:
      scheme, userinfo, host, port,
        registry, path, opaque, query, fragment = self.split(uri)
      scheme_list = URI.scheme_list
      if scheme && scheme_list.include?(uc = scheme.upcase)
        scheme_list[uc].new(scheme, userinfo, host, port,
                            registry, path, opaque, query,
                            fragment, self)
      else
        Generic.new(scheme, userinfo, host, port,
                    registry, path, opaque, query,
                    fragment, self)
      end
    end


    def join(*uris) # :nodoc:
      uris[0] = convert_to_uri(uris[0])
      uris.inject :merge
    end

    @@to_s = Kernel.instance_method(:to_s)
    def inspect
      @@to_s.bind(self).call
    end

    private

    def default_regexp # :nodoc:
      {
        SCHEME: /\A[A-Za-z][A-Za-z0-9+\-.]*\z/,
        USERINFO: /\A(?:%\h\h|[!$&-.0-;=A-Z_a-z~])*\z/,
        HOST: /\A(?:(?<IP-literal>\[(?:(?<IPv6address>(?:\h{1,4}:){6}(?<ls32>\h{1,4}:\h{1,4}|(?<IPv4address>(?<dec-octet>[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]|\d)\.\g<dec-octet>\.\g<dec-octet>\.\g<dec-octet>))|::(?:\h{1,4}:){5}\g<ls32>|\h{,4}::(?:\h{1,4}:){4}\g<ls32>|(?:(?:\h{1,4}:)?\h{1,4})?::(?:\h{1,4}:){3}\g<ls32>|(?:(?:\h{1,4}:){,2}\h{1,4})?::(?:\h{1,4}:){2}\g<ls32>|(?:(?:\h{1,4}:){,3}\h{1,4})?::\h{1,4}:\g<ls32>|(?:(?:\h{1,4}:){,4}\h{1,4})?::\g<ls32>|(?:(?:\h{1,4}:){,5}\h{1,4})?::\h{1,4}|(?:(?:\h{1,4}:){,6}\h{1,4})?::)|(?<IPvFuture>v\h+\.[!$&-.0-;=A-Z_a-z~]+))\])|\g<IPv4address>|(?<reg-name>(?:%\h\h|[!$&-.0-9;=A-Z_a-z~])*))\z/,
        ABS_PATH: /\A\/(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*(?:\/(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*)*\z/,
        REL_PATH: /\A(?:%\h\h|[!$&-.0-;=@-Z_a-z~])+(?:\/(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*)*\z/,
        QUERY: /\A(?:%\h\h|[!$&-.0-;=@-Z_a-z~\/?])*\z/,
        FRAGMENT: /\A(?:%\h\h|[!$&-.0-;=@-Z_a-z~\/?])*\z/,
        OPAQUE: /\A(?:[^\/].*)?\z/,
        PORT: /\A[\x09\x0a\x0c\x0d ]*\d*[\x09\x0a\x0c\x0d ]*\z/,
      }
    end

    def convert_to_uri(uri)
      if uri.is_a?(URI::Generic)
        uri
      elsif uri = String.try_convert(uri)
        parse(uri)
      else
        raise ArgumentError,
          "bad argument (expected URI object or URI string)"
      end
    end

  end # class Parser
end # module URI
lib64/ruby/2.2.0/uri/mailto.rb000064400000017462150402106330011521 0ustar00# = uri/mailto.rb
#
# Author:: Akira Yamada <akira@ruby-lang.org>
# License:: You can redistribute it and/or modify it under the same term as Ruby.
# Revision:: $Id: mailto.rb 55941 2016-08-16 12:02:37Z usa $
#
# See URI for general documentation
#

require 'uri/generic'

module URI

  #
  # RFC6068, The mailto URL scheme
  #
  class MailTo < Generic
    include REGEXP

    # A Default port of nil for URI::MailTo
    DEFAULT_PORT = nil

    # An Array of the available components for URI::MailTo
    COMPONENT = [ :scheme, :to, :headers ].freeze

    # :stopdoc:
    #  "hname" and "hvalue" are encodings of an RFC 822 header name and
    #  value, respectively. As with "to", all URL reserved characters must
    #  be encoded.
    #
    #  "#mailbox" is as specified in RFC 822 [RFC822]. This means that it
    #  consists of zero or more comma-separated mail addresses, possibly
    #  including "phrase" and "comment" components. Note that all URL
    #  reserved characters in "to" must be encoded: in particular,
    #  parentheses, commas, and the percent sign ("%"), which commonly occur
    #  in the "mailbox" syntax.
    #
    #  Within mailto URLs, the characters "?", "=", "&" are reserved.

    # ; RFC 6068
    # hfields      = "?" hfield *( "&" hfield )
    # hfield       = hfname "=" hfvalue
    # hfname       = *qchar
    # hfvalue      = *qchar
    # qchar        = unreserved / pct-encoded / some-delims
    # some-delims  = "!" / "$" / "'" / "(" / ")" / "*"
    #              / "+" / "," / ";" / ":" / "@"
    #
    # ; RFC3986
    # unreserved   = ALPHA / DIGIT / "-" / "." / "_" / "~"
    # pct-encoded  = "%" HEXDIG HEXDIG
    HEADER_REGEXP  = /\A(?<hfield>(?:%\h\h|[!$'-.0-;@-Z_a-z~])*=(?:%\h\h|[!$'-.0-;@-Z_a-z~])*)(?:&\g<hfield>)*\z/
    # practical regexp for email address
    # http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
    EMAIL_REGEXP = /\A[a-zA-Z0-9.!\#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\z/
    # :startdoc:

    #
    # == Description
    #
    # Creates a new URI::MailTo object from components, with syntax checking.
    #
    # Components can be provided as an Array or Hash. If an Array is used,
    # the components must be supplied as [to, headers].
    #
    # If a Hash is used, the keys are the component names preceded by colons.
    #
    # The headers can be supplied as a pre-encoded string, such as
    # "subject=subscribe&cc=address", or as an Array of Arrays like
    # [['subject', 'subscribe'], ['cc', 'address']]
    #
    # Examples:
    #
    #    require 'uri'
    #
    #    m1 = URI::MailTo.build(['joe@example.com', 'subject=Ruby'])
    #    puts m1.to_s  ->  mailto:joe@example.com?subject=Ruby
    #
    #    m2 = URI::MailTo.build(['john@example.com', [['Subject', 'Ruby'], ['Cc', 'jack@example.com']]])
    #    puts m2.to_s  ->  mailto:john@example.com?Subject=Ruby&Cc=jack@example.com
    #
    #    m3 = URI::MailTo.build({:to => 'listman@example.com', :headers => [['subject', 'subscribe']]})
    #    puts m3.to_s  ->  mailto:listman@example.com?subject=subscribe
    #
    def self.build(args)
      tmp = Util::make_components_hash(self, args)

      case tmp[:to]
      when Array
        tmp[:opaque] = tmp[:to].join(',')
      when String
        tmp[:opaque] = tmp[:to].dup
      else
        tmp[:opaque] = ''
      end

      if tmp[:headers]
        query =
          case tmp[:headers]
          when Array
            tmp[:headers].collect { |x|
              if x.kind_of?(Array)
                x[0] + '=' + x[1..-1].join
              else
                x.to_s
              end
            }.join('&')
          when Hash
            tmp[:headers].collect { |h,v|
              h + '=' + v
            }.join('&')
          else
            tmp[:headers].to_s
          end
        unless query.empty?
          tmp[:opaque] << '?' << query
        end
      end

      return super(tmp)
    end

    #
    # == Description
    #
    # Creates a new URI::MailTo object from generic URL components with
    # no syntax checking.
    #
    # This method is usually called from URI::parse, which checks
    # the validity of each component.
    #
    def initialize(*arg)
      super(*arg)

      @to = nil
      @headers = []

      # The RFC3986 parser does not normally populate opaque
      @opaque = "?#{@query}" if @query && !@opaque

      unless @opaque
        raise InvalidComponentError,
          "missing opaque part for mailto URL"
      end
      to, header = @opaque.split('?', 2)
      # allow semicolon as a addr-spec separator
      # http://support.microsoft.com/kb/820868
      unless /\A(?:[^@,;]+@[^@,;]+(?:\z|[,;]))*\z/ =~ to
        raise InvalidComponentError,
          "unrecognised opaque part for mailtoURL: #{@opaque}"
      end

      if arg[10] # arg_check
        self.to = to
        self.headers = header
      else
        set_to(to)
        set_headers(header)
      end
    end

    # The primary e-mail address of the URL, as a String
    attr_reader :to

    # E-mail headers set by the URL, as an Array of Arrays
    attr_reader :headers

    # check the to +v+ component
    def check_to(v)
      return true unless v
      return true if v.size == 0

      v.split(/[,;]/).each do |addr|
        # check url safety as path-rootless
        if /\A(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*\z/ !~ addr
          raise InvalidComponentError,
            "an address in 'to' is invalid as URI #{addr.dump}"
        end

        # check addr-spec
        # don't s/\+/ /g
        addr.gsub!(/%\h\h/, URI::TBLDECWWWCOMP_)
        if EMAIL_REGEXP !~ addr
          raise InvalidComponentError,
            "an address in 'to' is invalid as uri-escaped addr-spec #{addr.dump}"
        end
      end

      return true
    end
    private :check_to

    # private setter for to +v+
    def set_to(v)
      @to = v
    end
    protected :set_to

    # setter for to +v+
    def to=(v)
      check_to(v)
      set_to(v)
      v
    end

    # check the headers +v+ component against either
    # * HEADER_REGEXP
    def check_headers(v)
      return true unless v
      return true if v.size == 0
      if HEADER_REGEXP !~ v
        raise InvalidComponentError,
          "bad component(expected opaque component): #{v}"
      end

      return true
    end
    private :check_headers

    # private setter for headers +v+
    def set_headers(v)
      @headers = []
      if v
        v.split('&').each do |x|
          @headers << x.split(/=/, 2)
        end
      end
    end
    protected :set_headers

    # setter for headers +v+
    def headers=(v)
      check_headers(v)
      set_headers(v)
      v
    end

    # Constructs String from URI
    def to_s
      @scheme + ':' +
        if @to
          @to
        else
          ''
        end +
        if @headers.size > 0
          '?' + @headers.collect{|x| x.join('=')}.join('&')
        else
          ''
        end +
        if @fragment
          '#' + @fragment
        else
          ''
        end
    end

    # Returns the RFC822 e-mail text equivalent of the URL, as a String.
    #
    # Example:
    #
    #   require 'uri'
    #
    #   uri = URI.parse("mailto:ruby-list@ruby-lang.org?Subject=subscribe&cc=myaddr")
    #   uri.to_mailtext
    #   # => "To: ruby-list@ruby-lang.org\nSubject: subscribe\nCc: myaddr\n\n\n"
    #
    def to_mailtext
      to = parser.unescape(@to)
      head = ''
      body = ''
      @headers.each do |x|
        case x[0]
        when 'body'
          body = parser.unescape(x[1])
        when 'to'
          to << ', ' + parser.unescape(x[1])
        else
          head << parser.unescape(x[0]).capitalize + ': ' +
            parser.unescape(x[1])  + "\n"
        end
      end

      return "To: #{to}
#{head}
#{body}
"
    end
    alias to_rfc822text to_mailtext
  end

  @@schemes['MAILTO'] = MailTo
end
lib64/ruby/2.2.0/uri/http.rb000064400000005620150402106340011205 0ustar00# = uri/http.rb
#
# Author:: Akira Yamada <akira@ruby-lang.org>
# License:: You can redistribute it and/or modify it under the same term as Ruby.
# Revision:: $Id: http.rb 54427 2016-03-29 20:13:52Z nagachika $
#
# See URI for general documentation
#

require 'uri/generic'

module URI

  #
  # The syntax of HTTP URIs is defined in RFC1738 section 3.3.
  #
  # Note that the Ruby URI library allows HTTP URLs containing usernames and
  # passwords. This is not legal as per the RFC, but used to be
  # supported in Internet Explorer 5 and 6, before the MS04-004 security
  # update. See <URL:http://support.microsoft.com/kb/834489>.
  #
  class HTTP < Generic
    # A Default port of 80 for URI::HTTP
    DEFAULT_PORT = 80

    # An Array of the available components for URI::HTTP
    COMPONENT = [
      :scheme,
      :userinfo, :host, :port,
      :path,
      :query,
      :fragment
    ].freeze

    #
    # == Description
    #
    # Create a new URI::HTTP object from components, with syntax checking.
    #
    # The components accepted are userinfo, host, port, path, query and
    # fragment.
    #
    # The components should be provided either as an Array, or as a Hash
    # with keys formed by preceding the component names with a colon.
    #
    # If an Array is used, the components must be passed in the order
    # [userinfo, host, port, path, query, fragment].
    #
    # Example:
    #
    #     newuri = URI::HTTP.build({:host => 'www.example.com',
    #       :path => '/foo/bar'})
    #
    #     newuri = URI::HTTP.build([nil, "www.example.com", nil, "/path",
    #       "query", 'fragment'])
    #
    # Currently, if passed userinfo components this method generates
    # invalid HTTP URIs as per RFC 1738.
    #
    def self.build(args)
      tmp = Util::make_components_hash(self, args)
      return super(tmp)
    end

=begin
    #
    # == Description
    #
    # Create a new URI::HTTP object from generic URI components as per
    # RFC 2396. No HTTP-specific syntax checking (as per RFC 1738) is
    # performed.
    #
    # Arguments are +scheme+, +userinfo+, +host+, +port+, +registry+, +path+,
    # +opaque+, +query+ and +fragment+, in that order.
    #
    # Example:
    #
    #     uri = URI::HTTP.new("http", nil, "www.example.com", nil, nil,
    #                         "/path", nil, "query", "fragment")
    #
    #
    # See also URI::Generic.new
    #
    def initialize(*arg)
      super(*arg)
    end
=end

    #
    # == Description
    #
    # Returns the full path for an HTTP request, as required by Net::HTTP::Get.
    #
    # If the URI contains a query, the full path is URI#path + '?' + URI#query.
    # Otherwise, the path is simply URI#path.
    #
    def request_uri
      return nil unless @path
      if @path.start_with?(?/.freeze)
        @query ? "#@path?#@query" : @path.dup
      else
        @query ? "/#@path?#@query" : "/#@path"
      end
    end
  end

  @@schemes['HTTP'] = HTTP
end
lib64/ruby/2.2.0/uri/ftp.rb000064400000016102150402106340011014 0ustar00# = uri/ftp.rb
#
# Author:: Akira Yamada <akira@ruby-lang.org>
# License:: You can redistribute it and/or modify it under the same term as Ruby.
# Revision:: $Id: ftp.rb 46489 2014-06-22 00:21:57Z naruse $
#
# See URI for general documentation
#

require 'uri/generic'

module URI

  #
  # FTP URI syntax is defined by RFC1738 section 3.2.
  #
  # This class will be redesigned because of difference of implementations;
  # the structure of its path. draft-hoffman-ftp-uri-04 is a draft but it
  # is a good summary about the de facto spec.
  # http://tools.ietf.org/html/draft-hoffman-ftp-uri-04
  #
  class FTP < Generic
    # A Default port of 21 for URI::FTP
    DEFAULT_PORT = 21

    #
    # An Array of the available components for URI::FTP
    #
    COMPONENT = [
      :scheme,
      :userinfo, :host, :port,
      :path, :typecode
    ].freeze

    #
    # Typecode is "a", "i" or "d".
    #
    # * "a" indicates a text file (the FTP command was ASCII)
    # * "i" indicates a binary file (FTP command IMAGE)
    # * "d" indicates the contents of a directory should be displayed
    #
    TYPECODE = ['a', 'i', 'd'].freeze

    # Typecode prefix
    #  ';type='
    TYPECODE_PREFIX = ';type='.freeze

    def self.new2(user, password, host, port, path,
                  typecode = nil, arg_check = true) # :nodoc:
      # Do not use this method!  Not tested.  [Bug #7301]
      # This methods remains just for compatibility,
      # Keep it undocumented until the active maintainer is assigned.
      typecode = nil if typecode.size == 0
      if typecode && !TYPECODE.include?(typecode)
        raise ArgumentError,
          "bad typecode is specified: #{typecode}"
      end

      # do escape

      self.new('ftp',
               [user, password],
               host, port, nil,
               typecode ? path + TYPECODE_PREFIX + typecode : path,
               nil, nil, nil, arg_check)
    end

    #
    # == Description
    #
    # Creates a new URI::FTP object from components, with syntax checking.
    #
    # The components accepted are +userinfo+, +host+, +port+, +path+ and
    # +typecode+.
    #
    # The components should be provided either as an Array, or as a Hash
    # with keys formed by preceding the component names with a colon.
    #
    # If an Array is used, the components must be passed in the order
    # [userinfo, host, port, path, typecode]
    #
    # If the path supplied is absolute, it will be escaped in order to
    # make it absolute in the URI. Examples:
    #
    #     require 'uri'
    #
    #     uri = URI::FTP.build(['user:password', 'ftp.example.com', nil,
    #       '/path/file.> zip', 'i'])
    #     puts uri.to_s  ->  ftp://user:password@ftp.example.com/%2Fpath/file.zip;type=a
    #
    #     uri2 = URI::FTP.build({:host => 'ftp.example.com',
    #       :path => 'ruby/src'})
    #     puts uri2.to_s  ->  ftp://ftp.example.com/ruby/src
    #
    def self.build(args)

      # Fix the incoming path to be generic URL syntax
      # FTP path  ->  URL path
      # foo/bar       /foo/bar
      # /foo/bar      /%2Ffoo/bar
      #
      if args.kind_of?(Array)
        args[3] = '/' + args[3].sub(/^\//, '%2F')
      else
        args[:path] = '/' + args[:path].sub(/^\//, '%2F')
      end

      tmp = Util::make_components_hash(self, args)

      if tmp[:typecode]
        if tmp[:typecode].size == 1
          tmp[:typecode] = TYPECODE_PREFIX + tmp[:typecode]
        end
        tmp[:path] << tmp[:typecode]
      end

      return super(tmp)
    end

    #
    # == Description
    #
    # Creates a new URI::FTP object from generic URL components with no
    # syntax checking.
    #
    # Unlike build(), this method does not escape the path component as
    # required by RFC1738; instead it is treated as per RFC2396.
    #
    # Arguments are +scheme+, +userinfo+, +host+, +port+, +registry+, +path+,
    # +opaque+, +query+ and +fragment+, in that order.
    #
    def initialize(scheme,
                   userinfo, host, port, registry,
                   path, opaque,
                   query,
                   fragment,
                   parser = nil,
                   arg_check = false)
      raise InvalidURIError unless path
      path = path.sub(/^\//,'')
      path.sub!(/^%2F/,'/')
      super(scheme, userinfo, host, port, registry, path, opaque,
            query, fragment, parser, arg_check)
      @typecode = nil
      if tmp = @path.index(TYPECODE_PREFIX)
        typecode = @path[tmp + TYPECODE_PREFIX.size..-1]
        @path = @path[0..tmp - 1]

        if arg_check
          self.typecode = typecode
        else
          self.set_typecode(typecode)
        end
      end
    end

    # typecode accessor
    #
    # see URI::FTP::COMPONENT
    attr_reader :typecode

    # validates typecode +v+,
    # returns a +true+ or +false+ boolean
    #
    def check_typecode(v)
      if TYPECODE.include?(v)
        return true
      else
        raise InvalidComponentError,
          "bad typecode(expected #{TYPECODE.join(', ')}): #{v}"
      end
    end
    private :check_typecode

    # Private setter for the typecode +v+
    #
    # see also URI::FTP.typecode=
    #
    def set_typecode(v)
      @typecode = v
    end
    protected :set_typecode

    #
    # == Args
    #
    # +v+::
    #    String
    #
    # == Description
    #
    # public setter for the typecode +v+.
    # (with validation)
    #
    # see also URI::FTP.check_typecode
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse("ftp://john@ftp.example.com/my_file.img")
    #   #=> #<URI::FTP:0x00000000923650 URL:ftp://john@ftp.example.com/my_file.img>
    #   uri.typecode = "i"
    #   # =>  "i"
    #   uri
    #   #=> #<URI::FTP:0x00000000923650 URL:ftp://john@ftp.example.com/my_file.img;type=i>
    #
    def typecode=(typecode)
      check_typecode(typecode)
      set_typecode(typecode)
      typecode
    end

    def merge(oth) # :nodoc:
      tmp = super(oth)
      if self != tmp
        tmp.set_typecode(oth.typecode)
      end

      return tmp
    end

    # Returns the path from an FTP URI.
    #
    # RFC 1738 specifically states that the path for an FTP URI does not
    # include the / which separates the URI path from the URI host. Example:
    #
    #     ftp://ftp.example.com/pub/ruby
    #
    # The above URI indicates that the client should connect to
    # ftp.example.com then cd pub/ruby from the initial login directory.
    #
    # If you want to cd to an absolute directory, you must include an
    # escaped / (%2F) in the path. Example:
    #
    #     ftp://ftp.example.com/%2Fpub/ruby
    #
    # This method will then return "/pub/ruby"
    #
    def path
      return @path.sub(/^\//,'').sub(/^%2F/,'/')
    end

    # Private setter for the path of the URI::FTP
    def set_path(v)
      super("/" + v.sub(/^\//, "%2F"))
    end
    protected :set_path

    # Returns a String representation of the URI::FTP
    def to_s
      save_path = nil
      if @typecode
        save_path = @path
        @path = @path + TYPECODE_PREFIX + @typecode
      end
      str = super
      if @typecode
        @path = save_path
      end

      return str
    end
  end
  @@schemes['FTP'] = FTP
end
lib64/ruby/2.2.0/uri/common.rb000064400000046561150402106340011527 0ustar00#--
# = uri/common.rb
#
# Author:: Akira Yamada <akira@ruby-lang.org>
# Revision:: $Id: common.rb 47299 2014-08-27 12:21:41Z hsbt $
# License::
#   You can redistribute it and/or modify it under the same term as Ruby.
#
# See URI for general documentation
#

require "uri/rfc2396_parser"
require "uri/rfc3986_parser"

module URI
  REGEXP = RFC2396_REGEXP
  Parser = RFC2396_Parser
  RFC3986_PARSER = RFC3986_Parser.new

  # URI::Parser.new
  DEFAULT_PARSER = Parser.new
  DEFAULT_PARSER.pattern.each_pair do |sym, str|
    unless REGEXP::PATTERN.const_defined?(sym)
      REGEXP::PATTERN.const_set(sym, str)
    end
  end
  DEFAULT_PARSER.regexp.each_pair do |sym, str|
    const_set(sym, str)
  end

  module Util # :nodoc:
    def make_components_hash(klass, array_hash)
      tmp = {}
      if array_hash.kind_of?(Array) &&
          array_hash.size == klass.component.size - 1
        klass.component[1..-1].each_index do |i|
          begin
            tmp[klass.component[i + 1]] = array_hash[i].clone
          rescue TypeError
            tmp[klass.component[i + 1]] = array_hash[i]
          end
        end

      elsif array_hash.kind_of?(Hash)
        array_hash.each do |key, value|
          begin
            tmp[key] = value.clone
          rescue TypeError
            tmp[key] = value
          end
        end
      else
        raise ArgumentError,
          "expected Array of or Hash of components of #{klass} (#{klass.component[1..-1].join(', ')})"
      end
      tmp[:scheme] = klass.to_s.sub(/\A.*::/, '').downcase

      return tmp
    end
    module_function :make_components_hash
  end

  # module for escaping unsafe characters with codes.
  module Escape
    #
    # == Synopsis
    #
    #   URI.escape(str [, unsafe])
    #
    # == Args
    #
    # +str+::
    #   String to replaces in.
    # +unsafe+::
    #   Regexp that matches all symbols that must be replaced with codes.
    #   By default uses <tt>REGEXP::UNSAFE</tt>.
    #   When this argument is a String, it represents a character set.
    #
    # == Description
    #
    # Escapes the string, replacing all unsafe characters with codes.
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   enc_uri = URI.escape("http://example.com/?a=\11\15")
    #   p enc_uri
    #   # => "http://example.com/?a=%09%0D"
    #
    #   p URI.unescape(enc_uri)
    #   # => "http://example.com/?a=\t\r"
    #
    #   p URI.escape("@?@!", "!?")
    #   # => "@%3F@%21"
    #
    def escape(*arg)
      warn "#{caller(1)[0]}: warning: URI.escape is obsolete" if $VERBOSE
      DEFAULT_PARSER.escape(*arg)
    end
    alias encode escape
    #
    # == Synopsis
    #
    #   URI.unescape(str)
    #
    # == Args
    #
    # +str+::
    #   Unescapes the string.
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   enc_uri = URI.escape("http://example.com/?a=\11\15")
    #   p enc_uri
    #   # => "http://example.com/?a=%09%0D"
    #
    #   p URI.unescape(enc_uri)
    #   # => "http://example.com/?a=\t\r"
    #
    def unescape(*arg)
      warn "#{caller(1)[0]}: warning: URI.unescape is obsolete" if $VERBOSE
      DEFAULT_PARSER.unescape(*arg)
    end
    alias decode unescape
  end # module Escape

  extend Escape
  include REGEXP

  @@schemes = {}
  # Returns a Hash of the defined schemes
  def self.scheme_list
    @@schemes
  end

  #
  # Base class for all URI exceptions.
  #
  class Error < StandardError; end
  #
  # Not a URI.
  #
  class InvalidURIError < Error; end
  #
  # Not a URI component.
  #
  class InvalidComponentError < Error; end
  #
  # URI is valid, bad usage is not.
  #
  class BadURIError < Error; end

  #
  # == Synopsis
  #
  #   URI::split(uri)
  #
  # == Args
  #
  # +uri+::
  #   String with URI.
  #
  # == Description
  #
  # Splits the string on following parts and returns array with result:
  #
  #   * Scheme
  #   * Userinfo
  #   * Host
  #   * Port
  #   * Registry
  #   * Path
  #   * Opaque
  #   * Query
  #   * Fragment
  #
  # == Usage
  #
  #   require 'uri'
  #
  #   p URI.split("http://www.ruby-lang.org/")
  #   # => ["http", nil, "www.ruby-lang.org", nil, nil, "/", nil, nil, nil]
  #
  def self.split(uri)
    RFC3986_PARSER.split(uri)
  end

  #
  # == Synopsis
  #
  #   URI::parse(uri_str)
  #
  # == Args
  #
  # +uri_str+::
  #   String with URI.
  #
  # == Description
  #
  # Creates one of the URI's subclasses instance from the string.
  #
  # == Raises
  #
  # URI::InvalidURIError
  #   Raised if URI given is not a correct one.
  #
  # == Usage
  #
  #   require 'uri'
  #
  #   uri = URI.parse("http://www.ruby-lang.org/")
  #   p uri
  #   # => #<URI::HTTP:0x202281be URL:http://www.ruby-lang.org/>
  #   p uri.scheme
  #   # => "http"
  #   p uri.host
  #   # => "www.ruby-lang.org"
  #
  # It's recommended to first ::escape the provided +uri_str+ if there are any
  # invalid URI characters.
  #
  def self.parse(uri)
    RFC3986_PARSER.parse(uri)
  end

  #
  # == Synopsis
  #
  #   URI::join(str[, str, ...])
  #
  # == Args
  #
  # +str+::
  #   String(s) to work with, will be converted to RFC3986 URIs before merging.
  #
  # == Description
  #
  # Joins URIs.
  #
  # == Usage
  #
  #   require 'uri'
  #
  #   p URI.join("http://example.com/","main.rbx")
  #   # => #<URI::HTTP:0x2022ac02 URL:http://localhost/main.rbx>
  #
  #   p URI.join('http://example.com', 'foo')
  #   # => #<URI::HTTP:0x01ab80a0 URL:http://example.com/foo>
  #
  #   p URI.join('http://example.com', '/foo', '/bar')
  #   # => #<URI::HTTP:0x01aaf0b0 URL:http://example.com/bar>
  #
  #   p URI.join('http://example.com', '/foo', 'bar')
  #   # => #<URI::HTTP:0x801a92af0 URL:http://example.com/bar>
  #
  #   p URI.join('http://example.com', '/foo/', 'bar')
  #   # => #<URI::HTTP:0x80135a3a0 URL:http://example.com/foo/bar>
  #
  #
  def self.join(*str)
    RFC3986_PARSER.join(*str)
  end

  #
  # == Synopsis
  #
  #   URI::extract(str[, schemes][,&blk])
  #
  # == Args
  #
  # +str+::
  #   String to extract URIs from.
  # +schemes+::
  #   Limit URI matching to a specific schemes.
  #
  # == Description
  #
  # Extracts URIs from a string. If block given, iterates through all matched URIs.
  # Returns nil if block given or array with matches.
  #
  # == Usage
  #
  #   require "uri"
  #
  #   URI.extract("text here http://foo.example.org/bla and here mailto:test@example.com and here also.")
  #   # => ["http://foo.example.com/bla", "mailto:test@example.com"]
  #
  def self.extract(str, schemes = nil, &block)
    warn "#{caller(1)[0]}: warning: URI.extract is obsolete" if $VERBOSE
    DEFAULT_PARSER.extract(str, schemes, &block)
  end

  #
  # == Synopsis
  #
  #   URI::regexp([match_schemes])
  #
  # == Args
  #
  # +match_schemes+::
  #   Array of schemes. If given, resulting regexp matches to URIs
  #   whose scheme is one of the match_schemes.
  #
  # == Description
  # Returns a Regexp object which matches to URI-like strings.
  # The Regexp object returned by this method includes arbitrary
  # number of capture group (parentheses).  Never rely on it's number.
  #
  # == Usage
  #
  #   require 'uri'
  #
  #   # extract first URI from html_string
  #   html_string.slice(URI.regexp)
  #
  #   # remove ftp URIs
  #   html_string.sub(URI.regexp(['ftp'])
  #
  #   # You should not rely on the number of parentheses
  #   html_string.scan(URI.regexp) do |*matches|
  #     p $&
  #   end
  #
  def self.regexp(schemes = nil)
    warn "#{caller(1)[0]}: warning: URI.regexp is obsolete" if $VERBOSE
    DEFAULT_PARSER.make_regexp(schemes)
  end

  TBLENCWWWCOMP_ = {} # :nodoc:
  256.times do |i|
    TBLENCWWWCOMP_[i.chr] = '%%%02X' % i
  end
  TBLENCWWWCOMP_[' '] = '+'
  TBLENCWWWCOMP_.freeze
  TBLDECWWWCOMP_ = {} # :nodoc:
  256.times do |i|
    h, l = i>>4, i&15
    TBLDECWWWCOMP_['%%%X%X' % [h, l]] = i.chr
    TBLDECWWWCOMP_['%%%x%X' % [h, l]] = i.chr
    TBLDECWWWCOMP_['%%%X%x' % [h, l]] = i.chr
    TBLDECWWWCOMP_['%%%x%x' % [h, l]] = i.chr
  end
  TBLDECWWWCOMP_['+'] = ' '
  TBLDECWWWCOMP_.freeze

  HTML5ASCIIINCOMPAT = [Encoding::UTF_7, Encoding::UTF_16BE, Encoding::UTF_16LE,
    Encoding::UTF_32BE, Encoding::UTF_32LE] # :nodoc:

  # Encode given +str+ to URL-encoded form data.
  #
  # This method doesn't convert *, -, ., 0-9, A-Z, _, a-z, but does convert SP
  # (ASCII space) to + and converts others to %XX.
  #
  # If +enc+ is given, convert +str+ to the encoding before percent encoding.
  #
  # This is an implementation of
  # http://www.w3.org/TR/2013/CR-html5-20130806/forms.html#url-encoded-form-data
  #
  # See URI.decode_www_form_component, URI.encode_www_form
  def self.encode_www_form_component(str, enc=nil)
    str = str.to_s.dup
    if str.encoding != Encoding::ASCII_8BIT
      if enc && enc != Encoding::ASCII_8BIT
        str.encode!(Encoding::UTF_8, invalid: :replace, undef: :replace)
        str.encode!(enc, fallback: ->(x){"&#{x.ord};"})
      end
      str.force_encoding(Encoding::ASCII_8BIT)
    end
    str.gsub!(/[^*\-.0-9A-Z_a-z]/, TBLENCWWWCOMP_)
    str.force_encoding(Encoding::US_ASCII)
  end

  # Decode given +str+ of URL-encoded form data.
  #
  # This decodes + to SP.
  #
  # See URI.encode_www_form_component, URI.decode_www_form
  def self.decode_www_form_component(str, enc=Encoding::UTF_8)
    raise ArgumentError, "invalid %-encoding (#{str})" if /%(?!\h\h)/ =~ str
    str.b.gsub(/\+|%\h\h/, TBLDECWWWCOMP_).force_encoding(enc)
  end

  # Generate URL-encoded form data from given +enum+.
  #
  # This generates application/x-www-form-urlencoded data defined in HTML5
  # from given an Enumerable object.
  #
  # This internally uses URI.encode_www_form_component(str).
  #
  # This method doesn't convert the encoding of given items, so convert them
  # before call this method if you want to send data as other than original
  # encoding or mixed encoding data. (Strings which are encoded in an HTML5
  # ASCII incompatible encoding are converted to UTF-8.)
  #
  # This method doesn't handle files.  When you send a file, use
  # multipart/form-data.
  #
  # This refers http://url.spec.whatwg.org/#concept-urlencoded-serializer
  #
  #    URI.encode_www_form([["q", "ruby"], ["lang", "en"]])
  #    #=> "q=ruby&lang=en"
  #    URI.encode_www_form("q" => "ruby", "lang" => "en")
  #    #=> "q=ruby&lang=en"
  #    URI.encode_www_form("q" => ["ruby", "perl"], "lang" => "en")
  #    #=> "q=ruby&q=perl&lang=en"
  #    URI.encode_www_form([["q", "ruby"], ["q", "perl"], ["lang", "en"]])
  #    #=> "q=ruby&q=perl&lang=en"
  #
  # See URI.encode_www_form_component, URI.decode_www_form
  def self.encode_www_form(enum, enc=nil)
    enum.map do |k,v|
      if v.nil?
        encode_www_form_component(k, enc)
      elsif v.respond_to?(:to_ary)
        v.to_ary.map do |w|
          str = encode_www_form_component(k, enc)
          unless w.nil?
            str << '='
            str << encode_www_form_component(w, enc)
          end
        end.join('&')
      else
        str = encode_www_form_component(k, enc)
        str << '='
        str << encode_www_form_component(v, enc)
      end
    end.join('&')
  end

  # Decode URL-encoded form data from given +str+.
  #
  # This decodes application/x-www-form-urlencoded data
  # and returns array of key-value array.
  #
  # This refers http://url.spec.whatwg.org/#concept-urlencoded-parser ,
  # so this supports only &-separator, don't support ;-separator.
  #
  # ary = URI.decode_www_form("a=1&a=2&b=3")
  # p ary                  #=> [['a', '1'], ['a', '2'], ['b', '3']]
  # p ary.assoc('a').last  #=> '1'
  # p ary.assoc('b').last  #=> '3'
  # p ary.rassoc('a').last #=> '2'
  # p Hash[ary]            # => {"a"=>"2", "b"=>"3"}
  #
  # See URI.decode_www_form_component, URI.encode_www_form
  def self.decode_www_form(str, enc=Encoding::UTF_8, separator: '&', use__charset_: false, isindex: false)
    raise ArgumentError, "the input of #{self.name}.#{__method__} must be ASCII only string" unless str.ascii_only?
    ary = []
    return ary if str.empty?
    enc = Encoding.find(enc)
    str.b.each_line(separator) do |string|
      string.chomp!(separator)
      key, sep, val = string.partition('=')
      if isindex
        if sep.empty?
          val = key
          key = ''
        end
        isindex = false
      end

      if use__charset_ and key == '_charset_' and e = get_encoding(val)
        enc = e
        use__charset_ = false
      end

      key.gsub!(/\+|%\h\h/, TBLDECWWWCOMP_)
      if val
        val.gsub!(/\+|%\h\h/, TBLDECWWWCOMP_)
      else
        val = ''
      end

      ary << [key, val]
    end
    ary.each do |k, v|
      k.force_encoding(enc)
      k.scrub!
      v.force_encoding(enc)
      v.scrub!
    end
    ary
  end

  private
  # curl http://encoding.spec.whatwg.org/encodings.json|rb -rpp -rjson -e'H={};h={"shift_jis"=>"Windows-31J","euc-jp"=>"cp51932","iso-2022-jp"=>"cp50221","x-mac-cyrillic"=>"macCyrillic"};JSON($<.read).map{|x|x["encodings"]}.flatten.each{|x|Encoding.find(n=h.fetch(n=x["name"],n))rescue next;x["labels"].each{|y|H[y]=n}};pp H'
  WEB_ENCODINGS_ = {
    "unicode-1-1-utf-8"=>"utf-8",
    "utf-8"=>"utf-8",
    "utf8"=>"utf-8",
    "866"=>"ibm866",
    "cp866"=>"ibm866",
    "csibm866"=>"ibm866",
    "ibm866"=>"ibm866",
    "csisolatin2"=>"iso-8859-2",
    "iso-8859-2"=>"iso-8859-2",
    "iso-ir-101"=>"iso-8859-2",
    "iso8859-2"=>"iso-8859-2",
    "iso88592"=>"iso-8859-2",
    "iso_8859-2"=>"iso-8859-2",
    "iso_8859-2:1987"=>"iso-8859-2",
    "l2"=>"iso-8859-2",
    "latin2"=>"iso-8859-2",
    "csisolatin3"=>"iso-8859-3",
    "iso-8859-3"=>"iso-8859-3",
    "iso-ir-109"=>"iso-8859-3",
    "iso8859-3"=>"iso-8859-3",
    "iso88593"=>"iso-8859-3",
    "iso_8859-3"=>"iso-8859-3",
    "iso_8859-3:1988"=>"iso-8859-3",
    "l3"=>"iso-8859-3",
    "latin3"=>"iso-8859-3",
    "csisolatin4"=>"iso-8859-4",
    "iso-8859-4"=>"iso-8859-4",
    "iso-ir-110"=>"iso-8859-4",
    "iso8859-4"=>"iso-8859-4",
    "iso88594"=>"iso-8859-4",
    "iso_8859-4"=>"iso-8859-4",
    "iso_8859-4:1988"=>"iso-8859-4",
    "l4"=>"iso-8859-4",
    "latin4"=>"iso-8859-4",
    "csisolatincyrillic"=>"iso-8859-5",
    "cyrillic"=>"iso-8859-5",
    "iso-8859-5"=>"iso-8859-5",
    "iso-ir-144"=>"iso-8859-5",
    "iso8859-5"=>"iso-8859-5",
    "iso88595"=>"iso-8859-5",
    "iso_8859-5"=>"iso-8859-5",
    "iso_8859-5:1988"=>"iso-8859-5",
    "arabic"=>"iso-8859-6",
    "asmo-708"=>"iso-8859-6",
    "csiso88596e"=>"iso-8859-6",
    "csiso88596i"=>"iso-8859-6",
    "csisolatinarabic"=>"iso-8859-6",
    "ecma-114"=>"iso-8859-6",
    "iso-8859-6"=>"iso-8859-6",
    "iso-8859-6-e"=>"iso-8859-6",
    "iso-8859-6-i"=>"iso-8859-6",
    "iso-ir-127"=>"iso-8859-6",
    "iso8859-6"=>"iso-8859-6",
    "iso88596"=>"iso-8859-6",
    "iso_8859-6"=>"iso-8859-6",
    "iso_8859-6:1987"=>"iso-8859-6",
    "csisolatingreek"=>"iso-8859-7",
    "ecma-118"=>"iso-8859-7",
    "elot_928"=>"iso-8859-7",
    "greek"=>"iso-8859-7",
    "greek8"=>"iso-8859-7",
    "iso-8859-7"=>"iso-8859-7",
    "iso-ir-126"=>"iso-8859-7",
    "iso8859-7"=>"iso-8859-7",
    "iso88597"=>"iso-8859-7",
    "iso_8859-7"=>"iso-8859-7",
    "iso_8859-7:1987"=>"iso-8859-7",
    "sun_eu_greek"=>"iso-8859-7",
    "csiso88598e"=>"iso-8859-8",
    "csisolatinhebrew"=>"iso-8859-8",
    "hebrew"=>"iso-8859-8",
    "iso-8859-8"=>"iso-8859-8",
    "iso-8859-8-e"=>"iso-8859-8",
    "iso-ir-138"=>"iso-8859-8",
    "iso8859-8"=>"iso-8859-8",
    "iso88598"=>"iso-8859-8",
    "iso_8859-8"=>"iso-8859-8",
    "iso_8859-8:1988"=>"iso-8859-8",
    "visual"=>"iso-8859-8",
    "csisolatin6"=>"iso-8859-10",
    "iso-8859-10"=>"iso-8859-10",
    "iso-ir-157"=>"iso-8859-10",
    "iso8859-10"=>"iso-8859-10",
    "iso885910"=>"iso-8859-10",
    "l6"=>"iso-8859-10",
    "latin6"=>"iso-8859-10",
    "iso-8859-13"=>"iso-8859-13",
    "iso8859-13"=>"iso-8859-13",
    "iso885913"=>"iso-8859-13",
    "iso-8859-14"=>"iso-8859-14",
    "iso8859-14"=>"iso-8859-14",
    "iso885914"=>"iso-8859-14",
    "csisolatin9"=>"iso-8859-15",
    "iso-8859-15"=>"iso-8859-15",
    "iso8859-15"=>"iso-8859-15",
    "iso885915"=>"iso-8859-15",
    "iso_8859-15"=>"iso-8859-15",
    "l9"=>"iso-8859-15",
    "iso-8859-16"=>"iso-8859-16",
    "cskoi8r"=>"koi8-r",
    "koi"=>"koi8-r",
    "koi8"=>"koi8-r",
    "koi8-r"=>"koi8-r",
    "koi8_r"=>"koi8-r",
    "koi8-u"=>"koi8-u",
    "dos-874"=>"windows-874",
    "iso-8859-11"=>"windows-874",
    "iso8859-11"=>"windows-874",
    "iso885911"=>"windows-874",
    "tis-620"=>"windows-874",
    "windows-874"=>"windows-874",
    "cp1250"=>"windows-1250",
    "windows-1250"=>"windows-1250",
    "x-cp1250"=>"windows-1250",
    "cp1251"=>"windows-1251",
    "windows-1251"=>"windows-1251",
    "x-cp1251"=>"windows-1251",
    "ansi_x3.4-1968"=>"windows-1252",
    "ascii"=>"windows-1252",
    "cp1252"=>"windows-1252",
    "cp819"=>"windows-1252",
    "csisolatin1"=>"windows-1252",
    "ibm819"=>"windows-1252",
    "iso-8859-1"=>"windows-1252",
    "iso-ir-100"=>"windows-1252",
    "iso8859-1"=>"windows-1252",
    "iso88591"=>"windows-1252",
    "iso_8859-1"=>"windows-1252",
    "iso_8859-1:1987"=>"windows-1252",
    "l1"=>"windows-1252",
    "latin1"=>"windows-1252",
    "us-ascii"=>"windows-1252",
    "windows-1252"=>"windows-1252",
    "x-cp1252"=>"windows-1252",
    "cp1253"=>"windows-1253",
    "windows-1253"=>"windows-1253",
    "x-cp1253"=>"windows-1253",
    "cp1254"=>"windows-1254",
    "csisolatin5"=>"windows-1254",
    "iso-8859-9"=>"windows-1254",
    "iso-ir-148"=>"windows-1254",
    "iso8859-9"=>"windows-1254",
    "iso88599"=>"windows-1254",
    "iso_8859-9"=>"windows-1254",
    "iso_8859-9:1989"=>"windows-1254",
    "l5"=>"windows-1254",
    "latin5"=>"windows-1254",
    "windows-1254"=>"windows-1254",
    "x-cp1254"=>"windows-1254",
    "cp1255"=>"windows-1255",
    "windows-1255"=>"windows-1255",
    "x-cp1255"=>"windows-1255",
    "cp1256"=>"windows-1256",
    "windows-1256"=>"windows-1256",
    "x-cp1256"=>"windows-1256",
    "cp1257"=>"windows-1257",
    "windows-1257"=>"windows-1257",
    "x-cp1257"=>"windows-1257",
    "cp1258"=>"windows-1258",
    "windows-1258"=>"windows-1258",
    "x-cp1258"=>"windows-1258",
    "x-mac-cyrillic"=>"macCyrillic",
    "x-mac-ukrainian"=>"macCyrillic",
    "chinese"=>"gbk",
    "csgb2312"=>"gbk",
    "csiso58gb231280"=>"gbk",
    "gb2312"=>"gbk",
    "gb_2312"=>"gbk",
    "gb_2312-80"=>"gbk",
    "gbk"=>"gbk",
    "iso-ir-58"=>"gbk",
    "x-gbk"=>"gbk",
    "gb18030"=>"gb18030",
    "big5"=>"big5",
    "big5-hkscs"=>"big5",
    "cn-big5"=>"big5",
    "csbig5"=>"big5",
    "x-x-big5"=>"big5",
    "cseucpkdfmtjapanese"=>"cp51932",
    "euc-jp"=>"cp51932",
    "x-euc-jp"=>"cp51932",
    "csiso2022jp"=>"cp50221",
    "iso-2022-jp"=>"cp50221",
    "csshiftjis"=>"Windows-31J",
    "ms_kanji"=>"Windows-31J",
    "shift-jis"=>"Windows-31J",
    "shift_jis"=>"Windows-31J",
    "sjis"=>"Windows-31J",
    "windows-31j"=>"Windows-31J",
    "x-sjis"=>"Windows-31J",
    "cseuckr"=>"euc-kr",
    "csksc56011987"=>"euc-kr",
    "euc-kr"=>"euc-kr",
    "iso-ir-149"=>"euc-kr",
    "korean"=>"euc-kr",
    "ks_c_5601-1987"=>"euc-kr",
    "ks_c_5601-1989"=>"euc-kr",
    "ksc5601"=>"euc-kr",
    "ksc_5601"=>"euc-kr",
    "windows-949"=>"euc-kr",
    "utf-16be"=>"utf-16be",
    "utf-16"=>"utf-16le",
    "utf-16le"=>"utf-16le"
  } # :nodoc:

  # :nodoc:
  # return encoding or nil
  # http://encoding.spec.whatwg.org/#concept-encoding-get
  def self.get_encoding(label)
    Encoding.find(WEB_ENCODINGS_[label.to_str.strip.downcase]) rescue nil
  end
end # module URI

module Kernel

  #
  # Returns +uri+ converted to a URI object.
  #
  def URI(uri)
    if uri.is_a?(URI::Generic)
      uri
    elsif uri = String.try_convert(uri)
      URI.parse(uri)
    else
      raise ArgumentError,
        "bad argument (expected URI object or URI string)"
    end
  end
  module_function :URI
end
lib64/ruby/2.2.0/uri/ldap.rb000064400000013362150402106340011150 0ustar00# = uri/ldap.rb
#
# Author::
#  Takaaki Tateishi <ttate@jaist.ac.jp>
#  Akira Yamada <akira@ruby-lang.org>
# License::
#   URI::LDAP is copyrighted free software by Takaaki Tateishi and Akira Yamada.
#   You can redistribute it and/or modify it under the same term as Ruby.
# Revision:: $Id: ldap.rb 31555 2011-05-13 20:03:21Z drbrain $
#
# See URI for general documentation
#

require 'uri/generic'

module URI

  #
  # LDAP URI SCHEMA (described in RFC2255)
  # ldap://<host>/<dn>[?<attrs>[?<scope>[?<filter>[?<extensions>]]]]
  #
  class LDAP < Generic

    # A Default port of 389 for URI::LDAP
    DEFAULT_PORT = 389

    # An Array of the available components for URI::LDAP
    COMPONENT = [
      :scheme,
      :host, :port,
      :dn,
      :attributes,
      :scope,
      :filter,
      :extensions,
    ].freeze

    # Scopes available for the starting point.
    #
    # * SCOPE_BASE - the Base DN
    # * SCOPE_ONE  - one level under the Base DN, not including the base DN and
    #                not including any entries under this.
    # * SCOPE_SUB  - subtress, all entries at all levels
    #
    SCOPE = [
      SCOPE_ONE = 'one',
      SCOPE_SUB = 'sub',
      SCOPE_BASE = 'base',
    ].freeze

    #
    # == Description
    #
    # Create a new URI::LDAP object from components, with syntax checking.
    #
    # The components accepted are host, port, dn, attributes,
    # scope, filter, and extensions.
    #
    # The components should be provided either as an Array, or as a Hash
    # with keys formed by preceding the component names with a colon.
    #
    # If an Array is used, the components must be passed in the order
    # [host, port, dn, attributes, scope, filter, extensions].
    #
    # Example:
    #
    #     newuri = URI::LDAP.build({:host => 'ldap.example.com',
    #       :dn> => '/dc=example'})
    #
    #     newuri = URI::LDAP.build(["ldap.example.com", nil,
    #       "/dc=example;dc=com", "query", nil, nil, nil])
    #
    def self.build(args)
      tmp = Util::make_components_hash(self, args)

      if tmp[:dn]
        tmp[:path] = tmp[:dn]
      end

      query = []
      [:extensions, :filter, :scope, :attributes].collect do |x|
        next if !tmp[x] && query.size == 0
        query.unshift(tmp[x])
      end

      tmp[:query] = query.join('?')

      return super(tmp)
    end

    #
    # == Description
    #
    # Create a new URI::LDAP object from generic URI components as per
    # RFC 2396. No LDAP-specific syntax checking is performed.
    #
    # Arguments are +scheme+, +userinfo+, +host+, +port+, +registry+, +path+,
    # +opaque+, +query+ and +fragment+, in that order.
    #
    # Example:
    #
    #     uri = URI::LDAP.new("ldap", nil, "ldap.example.com", nil,
    #       "/dc=example;dc=com", "query", nil, nil, nil, nil)
    #
    #
    # See also URI::Generic.new
    #
    def initialize(*arg)
      super(*arg)

      if @fragment
        raise InvalidURIError, 'bad LDAP URL'
      end

      parse_dn
      parse_query
    end

    # private method to cleanup +dn+ from using the +path+ component attribute
    def parse_dn
      @dn = @path[1..-1]
    end
    private :parse_dn

    # private method to cleanup +attributes+, +scope+, +filter+ and +extensions+,
    # from using the +query+ component attribute
    def parse_query
      @attributes = nil
      @scope      = nil
      @filter     = nil
      @extensions = nil

      if @query
        attrs, scope, filter, extensions = @query.split('?')

        @attributes = attrs if attrs && attrs.size > 0
        @scope      = scope if scope && scope.size > 0
        @filter     = filter if filter && filter.size > 0
        @extensions = extensions if extensions && extensions.size > 0
      end
    end
    private :parse_query

    # private method to assemble +query+ from +attributes+, +scope+, +filter+ and +extensions+.
    def build_path_query
      @path = '/' + @dn

      query = []
      [@extensions, @filter, @scope, @attributes].each do |x|
        next if !x && query.size == 0
        query.unshift(x)
      end
      @query = query.join('?')
    end
    private :build_path_query

    # returns dn.
    def dn
      @dn
    end

    # private setter for dn +val+
    def set_dn(val)
      @dn = val
      build_path_query
      @dn
    end
    protected :set_dn

    # setter for dn +val+
    def dn=(val)
      set_dn(val)
      val
    end

    # returns attributes.
    def attributes
      @attributes
    end

    # private setter for attributes +val+
    def set_attributes(val)
      @attributes = val
      build_path_query
      @attributes
    end
    protected :set_attributes

    # setter for attributes +val+
    def attributes=(val)
      set_attributes(val)
      val
    end

    # returns scope.
    def scope
      @scope
    end

    # private setter for scope +val+
    def set_scope(val)
      @scope = val
      build_path_query
      @scope
    end
    protected :set_scope

    # setter for scope +val+
    def scope=(val)
      set_scope(val)
      val
    end

    # returns filter.
    def filter
      @filter
    end

    # private setter for filter +val+
    def set_filter(val)
      @filter = val
      build_path_query
      @filter
    end
    protected :set_filter

    # setter for filter +val+
    def filter=(val)
      set_filter(val)
      val
    end

    # returns extensions.
    def extensions
      @extensions
    end

    # private setter for extensions +val+
    def set_extensions(val)
      @extensions = val
      build_path_query
      @extensions
    end
    protected :set_extensions

    # setter for extensions +val+
    def extensions=(val)
      set_extensions(val)
      val
    end

    # Checks if URI has a path
    # For URI::LDAP this will return +false+
    def hierarchical?
      false
    end
  end

  @@schemes['LDAP'] = LDAP
end
lib64/ruby/2.2.0/uri/generic.rb000064400000107225150402106340011646 0ustar00# = uri/generic.rb
#
# Author:: Akira Yamada <akira@ruby-lang.org>
# License:: You can redistribute it and/or modify it under the same term as Ruby.
# Revision:: $Id: generic.rb 56307 2016-09-30 15:57:06Z usa $
#
# See URI for general documentation
#

require 'uri/common'

module URI

  #
  # Base class for all URI classes.
  # Implements generic URI syntax as per RFC 2396.
  #
  class Generic
    include URI

    #
    # A Default port of nil for URI::Generic
    #
    DEFAULT_PORT = nil

    #
    # Returns default port
    #
    def self.default_port
      self::DEFAULT_PORT
    end

    #
    # Returns default port
    #
    def default_port
      self.class.default_port
    end

    #
    # An Array of the available components for URI::Generic
    #
    COMPONENT = [
      :scheme,
      :userinfo, :host, :port, :registry,
      :path, :opaque,
      :query,
      :fragment
    ].freeze

    #
    # Components of the URI in the order.
    #
    def self.component
      self::COMPONENT
    end

    USE_REGISTRY = false # :nodoc:

    def self.use_registry # :nodoc:
      self::USE_REGISTRY
    end

    #
    # == Synopsis
    #
    # See #new
    #
    # == Description
    #
    # At first, tries to create a new URI::Generic instance using
    # URI::Generic::build. But, if exception URI::InvalidComponentError is raised,
    # then it URI::Escape.escape all URI components and tries again.
    #
    #
    def self.build2(args)
      begin
        return self.build(args)
      rescue InvalidComponentError
        if args.kind_of?(Array)
          return self.build(args.collect{|x|
            if x.is_a?(String)
              DEFAULT_PARSER.escape(x)
            else
              x
            end
          })
        elsif args.kind_of?(Hash)
          tmp = {}
          args.each do |key, value|
            tmp[key] = if value
                DEFAULT_PARSER.escape(value)
              else
                value
              end
          end
          return self.build(tmp)
        end
      end
    end

    #
    # == Synopsis
    #
    # See #new
    #
    # == Description
    #
    # Creates a new URI::Generic instance from components of URI::Generic
    # with check.  Components are: scheme, userinfo, host, port, registry, path,
    # opaque, query and fragment. You can provide arguments either by an Array or a Hash.
    # See #new for hash keys to use or for order of array items.
    #
    def self.build(args)
      if args.kind_of?(Array) &&
          args.size == ::URI::Generic::COMPONENT.size
        tmp = args.dup
      elsif args.kind_of?(Hash)
        tmp = ::URI::Generic::COMPONENT.collect do |c|
          if args.include?(c)
            args[c]
          else
            nil
          end
        end
      else
        component = self.class.component rescue ::URI::Generic::COMPONENT
        raise ArgumentError,
        "expected Array of or Hash of components of #{self.class} (#{component.join(', ')})"
      end

      tmp << nil
      tmp << true
      return self.new(*tmp)
    end
    #
    # == Args
    #
    # +scheme+::
    #   Protocol scheme, i.e. 'http','ftp','mailto' and so on.
    # +userinfo+::
    #   User name and password, i.e. 'sdmitry:bla'
    # +host+::
    #   Server host name
    # +port+::
    #   Server port
    # +registry+::
    #   Registry of naming authorities.
    # +path+::
    #   Path on server
    # +opaque+::
    #   Opaque part
    # +query+::
    #   Query data
    # +fragment+::
    #   A part of URI after '#' sign
    # +parser+::
    #   Parser for internal use [URI::DEFAULT_PARSER by default]
    # +arg_check+::
    #   Check arguments [false by default]
    #
    # == Description
    #
    # Creates a new URI::Generic instance from ``generic'' components without check.
    #
    def initialize(scheme,
                   userinfo, host, port, registry,
                   path, opaque,
                   query,
                   fragment,
                   parser = DEFAULT_PARSER,
                   arg_check = false)
      @scheme = nil
      @user = nil
      @password = nil
      @host = nil
      @port = nil
      @path = nil
      @query = nil
      @opaque = nil
      @fragment = nil
      @parser = parser == DEFAULT_PARSER ? nil : parser

      if arg_check
        self.scheme = scheme
        self.userinfo = userinfo
        self.hostname = host
        self.port = port
        self.path = path
        self.query = query
        self.opaque = opaque
        self.fragment = fragment
      else
        self.set_scheme(scheme)
        self.set_userinfo(userinfo)
        self.set_host(host)
        self.set_port(port)
        self.set_path(path)
        self.query = query
        self.set_opaque(opaque)
        self.fragment=(fragment)
      end
      if registry
        raise InvalidURIError,
          "the scheme #{@scheme} does not accept registry part: #{registry} (or bad hostname?)"
      end

      @scheme.freeze if @scheme
      self.set_path('') if !@path && !@opaque # (see RFC2396 Section 5.2)
      self.set_port(self.default_port) if self.default_port && !@port
    end

    #
    # returns the scheme component of the URI.
    #
    #   URI("http://foo/bar/baz").scheme #=> "http"
    #
    attr_reader :scheme

    # returns the host component of the URI.
    #
    #   URI("http://foo/bar/baz").host #=> "foo"
    #
    # It returns nil if no host component.
    #
    #   URI("mailto:foo@example.org").host #=> nil
    #
    # The component doesn't contains the port number.
    #
    #   URI("http://foo:8080/bar/baz").host #=> "foo"
    #
    # Since IPv6 addresses are wrapped by brackets in URIs,
    # this method returns IPv6 addresses wrapped by brackets.
    # This form is not appropriate to pass socket methods such as TCPSocket.open.
    # If unwrapped host names are required, use "hostname" method.
    #
    #   URI("http://[::1]/bar/baz").host #=> "[::1]"
    #   URI("http://[::1]/bar/baz").hostname #=> "::1"
    #
    attr_reader :host

    # returns the port component of the URI.
    #
    #   URI("http://foo/bar/baz").port #=> "80"
    #
    #   URI("http://foo:8080/bar/baz").port #=> "8080"
    #
    attr_reader :port

    def registry # :nodoc:
      nil
    end

    # returns the path component of the URI.
    #
    #   URI("http://foo/bar/baz").path #=> "/bar/baz"
    #
    attr_reader :path

    # returns the query component of the URI.
    #
    #   URI("http://foo/bar/baz?search=FooBar").query #=> "search=FooBar"
    #
    attr_reader :query

    # returns the opaque part of the URI.
    #
    #   URI("mailto:foo@example.org").opaque #=> "foo@example.org"
    #
    # Portion of the path that does make use of the slash '/'.
    # The path typically refers to the absolute path and the opaque part.
    #  (see RFC2396 Section 3 and 5.2)
    #
    attr_reader :opaque

    # returns the fragment component of the URI.
    #
    #   URI("http://foo/bar/baz?search=FooBar#ponies").fragment #=> "ponies"
    #
    attr_reader :fragment

    # returns the parser to be used.
    #
    # Unless a URI::Parser is defined, then DEFAULT_PARSER is used.
    #
    def parser
      if !defined?(@parser) || !@parser
        DEFAULT_PARSER
      else
        @parser || DEFAULT_PARSER
      end
    end

    # replace self by other URI object
    def replace!(oth)
      if self.class != oth.class
        raise ArgumentError, "expected #{self.class} object"
      end

      component.each do |c|
        self.__send__("#{c}=", oth.__send__(c))
      end
    end
    private :replace!

    #
    # Components of the URI in the order.
    #
    def component
      self.class.component
    end

    #
    # check the scheme +v+ component against the URI::Parser Regexp for :SCHEME
    #
    def check_scheme(v)
      if v && parser.regexp[:SCHEME] !~ v
        raise InvalidComponentError,
          "bad component(expected scheme component): #{v}"
      end

      return true
    end
    private :check_scheme

    # protected setter for the scheme component +v+
    #
    # see also URI::Generic.scheme=
    #
    def set_scheme(v)
      @scheme = v ? v.downcase : v
    end
    protected :set_scheme

    #
    # == Args
    #
    # +v+::
    #    String
    #
    # == Description
    #
    # public setter for the scheme component +v+.
    # (with validation)
    #
    # see also URI::Generic.check_scheme
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse("http://my.example.com")
    #   uri.scheme = "https"
    #   # =>  "https"
    #   uri
    #   #=> #<URI::HTTP:0x000000008e89e8 URL:https://my.example.com>
    #
    def scheme=(v)
      check_scheme(v)
      set_scheme(v)
      v
    end

    #
    # check the +user+ and +password+.
    #
    # If +password+ is not provided, then +user+ is
    # split, using URI::Generic.split_userinfo, to
    # pull +user+ and +password.
    #
    # see also URI::Generic.check_user, URI::Generic.check_password
    #
    def check_userinfo(user, password = nil)
      if !password
        user, password = split_userinfo(user)
      end
      check_user(user)
      check_password(password, user)

      return true
    end
    private :check_userinfo

    #
    # check the user +v+ component for RFC2396 compliance
    # and against the URI::Parser Regexp for :USERINFO
    #
    # Can not have a registry or opaque component defined,
    # with a user component defined.
    #
    def check_user(v)
      if @opaque
        raise InvalidURIError,
          "can not set user with opaque"
      end

      return v unless v

      if parser.regexp[:USERINFO] !~ v
        raise InvalidComponentError,
          "bad component(expected userinfo component or user component): #{v}"
      end

      return true
    end
    private :check_user

    #
    # check the password +v+ component for RFC2396 compliance
    # and against the URI::Parser Regexp for :USERINFO
    #
    # Can not have a registry or opaque component defined,
    # with a user component defined.
    #
    def check_password(v, user = @user)
      if @opaque
        raise InvalidURIError,
          "can not set password with opaque"
      end
      return v unless v

      if !user
        raise InvalidURIError,
          "password component depends user component"
      end

      if parser.regexp[:USERINFO] !~ v
        raise InvalidComponentError,
          "bad password component"
      end

      return true
    end
    private :check_password

    #
    # Sets userinfo, argument is string like 'name:pass'
    #
    def userinfo=(userinfo)
      if userinfo.nil?
        return nil
      end
      check_userinfo(*userinfo)
      set_userinfo(*userinfo)
      # returns userinfo
    end

    #
    # == Args
    #
    # +v+::
    #    String
    #
    # == Description
    #
    # public setter for the +user+ component.
    # (with validation)
    #
    # see also URI::Generic.check_user
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse("http://john:S3nsit1ve@my.example.com")
    #   uri.user = "sam"
    #   # =>  "sam"
    #   uri
    #   #=> #<URI::HTTP:0x00000000881d90 URL:http://sam:V3ry_S3nsit1ve@my.example.com>
    #
    def user=(user)
      check_user(user)
      set_user(user)
      # returns user
    end

    #
    # == Args
    #
    # +v+::
    #    String
    #
    # == Description
    #
    # public setter for the +password+ component.
    # (with validation)
    #
    # see also URI::Generic.check_password
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse("http://john:S3nsit1ve@my.example.com")
    #   uri.password = "V3ry_S3nsit1ve"
    #   # =>  "V3ry_S3nsit1ve"
    #   uri
    #   #=> #<URI::HTTP:0x00000000881d90 URL:http://john:V3ry_S3nsit1ve@my.example.com>
    #
    def password=(password)
      check_password(password)
      set_password(password)
      # returns password
    end

    # protect setter for the +user+ component, and +password+ if available.
    # (with validation)
    #
    # see also URI::Generic.userinfo=
    #
    def set_userinfo(user, password = nil)
      unless password
        user, password = split_userinfo(user)
      end
      @user     = user
      @password = password if password

      [@user, @password]
    end
    protected :set_userinfo

    # protected setter for the user component +v+
    #
    # see also URI::Generic.user=
    #
    def set_user(v)
      set_userinfo(v, @password)
      v
    end
    protected :set_user

    # protected setter for the password component +v+
    #
    # see also URI::Generic.password=
    #
    def set_password(v)
      @password = v
      # returns v
    end
    protected :set_password

    # returns the userinfo +ui+ as user, password
    # if properly formatted as 'user:password'
    def split_userinfo(ui)
      return nil, nil unless ui
      user, password = ui.split(':'.freeze, 2)

      return user, password
    end
    private :split_userinfo

    # escapes 'user:password' +v+ based on RFC 1738 section 3.1
    def escape_userpass(v)
      parser.escape(v, /[@:\/]/o) # RFC 1738 section 3.1 #/
    end
    private :escape_userpass

    # returns the userinfo, either as 'user' or 'user:password'
    def userinfo
      if @user.nil?
        nil
      elsif @password.nil?
        @user
      else
        @user + ':' + @password
      end
    end

    # returns the user component
    def user
      @user
    end

    # returns the password component
    def password
      @password
    end

    #
    # check the host +v+ component for RFC2396 compliance
    # and against the URI::Parser Regexp for :HOST
    #
    # Can not have a registry or opaque component defined,
    # with a host component defined.
    #
    def check_host(v)
      return v unless v

      if @opaque
        raise InvalidURIError,
          "can not set host with registry or opaque"
      elsif parser.regexp[:HOST] !~ v
        raise InvalidComponentError,
          "bad component(expected host component): #{v}"
      end

      return true
    end
    private :check_host

    # protected setter for the host component +v+
    #
    # see also URI::Generic.host=
    #
    def set_host(v)
      @host = v
    end
    protected :set_host

    #
    # == Args
    #
    # +v+::
    #    String
    #
    # == Description
    #
    # public setter for the host component +v+.
    # (with validation)
    #
    # see also URI::Generic.check_host
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse("http://my.example.com")
    #   uri.host = "foo.com"
    #   # =>  "foo.com"
    #   uri
    #   #=> #<URI::HTTP:0x000000008e89e8 URL:http://foo.com>
    #
    def host=(v)
      check_host(v)
      set_host(v)
      v
    end

    # extract the host part of the URI and unwrap brackets for IPv6 addresses.
    #
    # This method is same as URI::Generic#host except
    # brackets for IPv6 (and future IP) addresses are removed.
    #
    # u = URI("http://[::1]/bar")
    # p u.hostname      #=> "::1"
    # p u.host          #=> "[::1]"
    #
    def hostname
      v = self.host
      /\A\[(.*)\]\z/ =~ v ? $1 : v
    end

    # set the host part of the URI as the argument with brackets for IPv6 addresses.
    #
    # This method is same as URI::Generic#host= except
    # the argument can be bare IPv6 address.
    #
    # u = URI("http://foo/bar")
    # p u.to_s                  #=> "http://foo/bar"
    # u.hostname = "::1"
    # p u.to_s                  #=> "http://[::1]/bar"
    #
    # If the argument seems IPv6 address,
    # it is wrapped by brackets.
    #
    def hostname=(v)
      v = "[#{v}]" if /\A\[.*\]\z/ !~ v && /:/ =~ v
      self.host = v
    end

    #
    # check the port +v+ component for RFC2396 compliance
    # and against the URI::Parser Regexp for :PORT
    #
    # Can not have a registry or opaque component defined,
    # with a port component defined.
    #
    def check_port(v)
      return v unless v

      if @opaque
        raise InvalidURIError,
          "can not set port with registry or opaque"
      elsif !v.kind_of?(Fixnum) && parser.regexp[:PORT] !~ v
        raise InvalidComponentError,
          "bad component(expected port component): #{v.inspect}"
      end

      return true
    end
    private :check_port

    # protected setter for the port component +v+
    #
    # see also URI::Generic.port=
    #
    def set_port(v)
      v = v.empty? ? nil : v.to_i unless !v || v.kind_of?(Fixnum)
      @port = v
    end
    protected :set_port

    #
    # == Args
    #
    # +v+::
    #    String
    #
    # == Description
    #
    # public setter for the port component +v+.
    # (with validation)
    #
    # see also URI::Generic.check_port
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse("http://my.example.com")
    #   uri.port = 8080
    #   # =>  8080
    #   uri
    #   #=> #<URI::HTTP:0x000000008e89e8 URL:http://my.example.com:8080>
    #
    def port=(v)
      check_port(v)
      set_port(v)
      port
    end

    def check_registry(v) # :nodoc:
      raise InvalidURIError, "can not set registry"
    end
    private :check_registry

    def set_registry(v) #:nodoc:
      raise InvalidURIError, "can not set registry"
    end
    protected :set_registry

    def registry=(v)
      raise InvalidURIError, "can not set registry"
    end

    #
    # check the path +v+ component for RFC2396 compliance
    # and against the URI::Parser Regexp
    # for :ABS_PATH and :REL_PATH
    #
    # Can not have a opaque component defined,
    # with a path component defined.
    #
    def check_path(v)
      # raise if both hier and opaque are not nil, because:
      # absoluteURI   = scheme ":" ( hier_part | opaque_part )
      # hier_part     = ( net_path | abs_path ) [ "?" query ]
      if v && @opaque
        raise InvalidURIError,
          "path conflicts with opaque"
      end

      # If scheme is ftp, path may be relative.
      # See RFC 1738 section 3.2.2, and RFC 2396.
      if @scheme && @scheme != "ftp".freeze
        if v && v != ''.freeze && parser.regexp[:ABS_PATH] !~ v
          raise InvalidComponentError,
            "bad component(expected absolute path component): #{v}"
        end
      else
        if v && v != ''.freeze && parser.regexp[:ABS_PATH] !~ v &&
           parser.regexp[:REL_PATH] !~ v
          raise InvalidComponentError,
            "bad component(expected relative path component): #{v}"
        end
      end

      return true
    end
    private :check_path

    # protected setter for the path component +v+
    #
    # see also URI::Generic.path=
    #
    def set_path(v)
      @path = v
    end
    protected :set_path

    #
    # == Args
    #
    # +v+::
    #    String
    #
    # == Description
    #
    # public setter for the path component +v+.
    # (with validation)
    #
    # see also URI::Generic.check_path
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse("http://my.example.com/pub/files")
    #   uri.path = "/faq/"
    #   # =>  "/faq/"
    #   uri
    #   #=> #<URI::HTTP:0x000000008e89e8 URL:http://my.example.com/faq/>
    #
    def path=(v)
      check_path(v)
      set_path(v)
      v
    end

    #
    # == Args
    #
    # +v+::
    #    String
    #
    # == Description
    #
    # public setter for the query component +v+.
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse("http://my.example.com/?id=25")
    #   uri.query = "id=1"
    #   # =>  "id=1"
    #   uri
    #   #=> #<URI::HTTP:0x000000008e89e8 URL:http://my.example.com/?id=1>
    #
    def query=(v)
      return @query = nil unless v
      raise InvalidURIError, "query conflicts with opaque" if @opaque

      x = v.to_str
      v = x.dup if x.equal? v
      v.encode!(Encoding::UTF_8) rescue nil
      v.delete!("\t\r\n".freeze)
      v.force_encoding(Encoding::ASCII_8BIT)
      v.gsub!(/(?!%\h\h|[!$-&(-;=?-_a-~])./n.freeze){'%%%02X'.freeze % $&.ord}
      v.force_encoding(Encoding::US_ASCII)
      @query = v
    end

    #
    # check the opaque +v+ component for RFC2396 compliance and
    # against the URI::Parser Regexp for :OPAQUE
    #
    # Can not have a host, port, user or path component defined,
    # with an opaque component defined.
    #
    def check_opaque(v)
      return v unless v

      # raise if both hier and opaque are not nil, because:
      # absoluteURI   = scheme ":" ( hier_part | opaque_part )
      # hier_part     = ( net_path | abs_path ) [ "?" query ]
      if @host || @port || @user || @path  # userinfo = @user + ':' + @password
        raise InvalidURIError,
          "can not set opaque with host, port, userinfo or path"
      elsif v && parser.regexp[:OPAQUE] !~ v
        raise InvalidComponentError,
          "bad component(expected opaque component): #{v}"
      end

      return true
    end
    private :check_opaque

    # protected setter for the opaque component +v+
    #
    # see also URI::Generic.opaque=
    #
    def set_opaque(v)
      @opaque = v
    end
    protected :set_opaque

    #
    # == Args
    #
    # +v+::
    #    String
    #
    # == Description
    #
    # public setter for the opaque component +v+.
    # (with validation)
    #
    # see also URI::Generic.check_opaque
    #
    def opaque=(v)
      check_opaque(v)
      set_opaque(v)
      v
    end

    #
    # check the fragment +v+ component against the URI::Parser Regexp for :FRAGMENT
    #
    #
    # == Args
    #
    # +v+::
    #    String
    #
    # == Description
    #
    # public setter for the fragment component +v+.
    # (with validation)
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse("http://my.example.com/?id=25#time=1305212049")
    #   uri.fragment = "time=1305212086"
    #   # =>  "time=1305212086"
    #   uri
    #   #=> #<URI::HTTP:0x000000007a81f8 URL:http://my.example.com/?id=25#time=1305212086>
    #
    def fragment=(v)
      return @fragment = nil unless v

      x = v.to_str
      v = x.dup if x.equal? v
      v.encode!(Encoding::UTF_8) rescue nil
      v.delete!("\t\r\n".freeze)
      v.force_encoding(Encoding::ASCII_8BIT)
      v.gsub!(/(?!%\h\h|[!-~])./n){'%%%02X'.freeze % $&.ord}
      v.force_encoding(Encoding::US_ASCII)
      @fragment = v
    end

    #
    # Checks if URI has a path
    #
    def hierarchical?
      if @path
        true
      else
        false
      end
    end

    #
    # Checks if URI is an absolute one
    #
    def absolute?
      if @scheme
        true
      else
        false
      end
    end
    alias absolute absolute?

    #
    # Checks if URI is relative
    #
    def relative?
      !absolute?
    end

    #
    # returns an Array of the path split on '/'
    #
    def split_path(path)
      path.split(%r{/+}, -1)
    end
    private :split_path

    #
    # Merges a base path +base+, with relative path +rel+,
    # returns a modified base path.
    #
    def merge_path(base, rel)

      # RFC2396, Section 5.2, 5)
      # RFC2396, Section 5.2, 6)
      base_path = split_path(base)
      rel_path  = split_path(rel)

      # RFC2396, Section 5.2, 6), a)
      base_path << '' if base_path.last == '..'
      while i = base_path.index('..')
        base_path.slice!(i - 1, 2)
      end

      if (first = rel_path.first) and first.empty?
        base_path.clear
        rel_path.shift
      end

      # RFC2396, Section 5.2, 6), c)
      # RFC2396, Section 5.2, 6), d)
      rel_path.push('') if rel_path.last == '.' || rel_path.last == '..'
      rel_path.delete('.')

      # RFC2396, Section 5.2, 6), e)
      tmp = []
      rel_path.each do |x|
        if x == '..' &&
            !(tmp.empty? || tmp.last == '..')
          tmp.pop
        else
          tmp << x
        end
      end

      add_trailer_slash = !tmp.empty?
      if base_path.empty?
        base_path = [''] # keep '/' for root directory
      elsif add_trailer_slash
        base_path.pop
      end
      while x = tmp.shift
        if x == '..'
          # RFC2396, Section 4
          # a .. or . in an absolute path has no special meaning
          base_path.pop if base_path.size > 1
        else
          # if x == '..'
          #   valid absolute (but abnormal) path "/../..."
          # else
          #   valid absolute path
          # end
          base_path << x
          tmp.each {|t| base_path << t}
          add_trailer_slash = false
          break
        end
      end
      base_path.push('') if add_trailer_slash

      return base_path.join('/')
    end
    private :merge_path

    #
    # == Args
    #
    # +oth+::
    #    URI or String
    #
    # == Description
    #
    # Destructive form of #merge
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse("http://my.example.com")
    #   uri.merge!("/main.rbx?page=1")
    #   p uri
    #   # =>  #<URI::HTTP:0x2021f3b0 URL:http://my.example.com/main.rbx?page=1>
    #
    def merge!(oth)
      t = merge(oth)
      if self == t
        nil
      else
        replace!(t)
        self
      end
    end

    #
    # == Args
    #
    # +oth+::
    #    URI or String
    #
    # == Description
    #
    # Merges two URI's.
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse("http://my.example.com")
    #   p uri.merge("/main.rbx?page=1")
    #   # =>  #<URI::HTTP:0x2021f3b0 URL:http://my.example.com/main.rbx?page=1>
    #
    def merge(oth)
      begin
        base, rel = merge0(oth)
      rescue
        raise $!.class, $!.message
      end

      if base == rel
        return base
      end

      authority = rel.userinfo || rel.host || rel.port

      # RFC2396, Section 5.2, 2)
      if (rel.path.nil? || rel.path.empty?) && !authority && !rel.query
        base.fragment=(rel.fragment) if rel.fragment
        return base
      end

      base.query = nil
      base.fragment=(nil)

      # RFC2396, Section 5.2, 4)
      if !authority
        base.set_path(merge_path(base.path, rel.path)) if base.path && rel.path
      else
        # RFC2396, Section 5.2, 4)
        base.set_path(rel.path) if rel.path
      end

      # RFC2396, Section 5.2, 7)
      base.set_userinfo(rel.userinfo) if rel.userinfo
      base.set_host(rel.host)         if rel.host
      base.set_port(rel.port)         if rel.port
      base.query = rel.query       if rel.query
      base.fragment=(rel.fragment) if rel.fragment

      return base
    end # merge
    alias + merge

    # return base and rel.
    # you can modify `base', but can not `rel'.
    def merge0(oth)
      oth = parser.send(:convert_to_uri, oth)

      if self.relative? && oth.relative?
        raise BadURIError,
          "both URI are relative"
      end

      if self.absolute? && oth.absolute?
        #raise BadURIError,
        #  "both URI are absolute"
        # hmm... should return oth for usability?
        return oth, oth
      end

      if self.absolute?
        return self.dup, oth
      else
        return oth, oth
      end
    end
    private :merge0

    # :stopdoc:
    def route_from_path(src, dst)
      case dst
      when src
        # RFC2396, Section 4.2
        return ''
      when %r{(?:\A|/)\.\.?(?:/|\z)}
        # dst has abnormal absolute path,
        # like "/./", "/../", "/x/../", ...
        return dst.dup
      end

      src_path = src.scan(%r{(?:\A|[^/]+)/})
      dst_path = dst.scan(%r{(?:\A|[^/]+)/?})

      # discard same parts
      while !dst_path.empty? && dst_path.first == src_path.first
        src_path.shift
        dst_path.shift
      end

      tmp = dst_path.join

      # calculate
      if src_path.empty?
        if tmp.empty?
          return './'
        elsif dst_path.first.include?(':') # (see RFC2396 Section 5)
          return './' + tmp
        else
          return tmp
        end
      end

      return '../' * src_path.size + tmp
    end
    private :route_from_path
    # :startdoc:

    # :stopdoc:
    def route_from0(oth)
      oth = parser.send(:convert_to_uri, oth)
      if self.relative?
        raise BadURIError,
          "relative URI: #{self}"
      end
      if oth.relative?
        raise BadURIError,
          "relative URI: #{oth}"
      end

      if self.scheme != oth.scheme
        return self, self.dup
      end
      rel = URI::Generic.new(nil, # it is relative URI
                             self.userinfo, self.host, self.port,
                             nil, self.path, self.opaque,
                             self.query, self.fragment, parser)

      if rel.userinfo != oth.userinfo ||
          rel.host.to_s.downcase != oth.host.to_s.downcase ||
          rel.port != oth.port

        if self.userinfo.nil? && self.host.nil?
          return self, self.dup
        end

        rel.set_port(nil) if rel.port == oth.default_port
        return rel, rel
      end
      rel.set_userinfo(nil)
      rel.set_host(nil)
      rel.set_port(nil)

      if rel.path && rel.path == oth.path
        rel.set_path('')
        rel.query = nil if rel.query == oth.query
        return rel, rel
      elsif rel.opaque && rel.opaque == oth.opaque
        rel.set_opaque('')
        rel.query = nil if rel.query == oth.query
        return rel, rel
      end

      # you can modify `rel', but can not `oth'.
      return oth, rel
    end
    private :route_from0
    # :startdoc:

    #
    # == Args
    #
    # +oth+::
    #    URI or String
    #
    # == Description
    #
    # Calculates relative path from oth to self
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse('http://my.example.com/main.rbx?page=1')
    #   p uri.route_from('http://my.example.com')
    #   #=> #<URI::Generic:0x20218858 URL:/main.rbx?page=1>
    #
    def route_from(oth)
      # you can modify `rel', but can not `oth'.
      begin
        oth, rel = route_from0(oth)
      rescue
        raise $!.class, $!.message
      end
      if oth == rel
        return rel
      end

      rel.set_path(route_from_path(oth.path, self.path))
      if rel.path == './' && self.query
        # "./?foo" -> "?foo"
        rel.set_path('')
      end

      return rel
    end

    alias - route_from

    #
    # == Args
    #
    # +oth+::
    #    URI or String
    #
    # == Description
    #
    # Calculates relative path to oth from self
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse('http://my.example.com')
    #   p uri.route_to('http://my.example.com/main.rbx?page=1')
    #   #=> #<URI::Generic:0x2020c2f6 URL:/main.rbx?page=1>
    #
    def route_to(oth)
      parser.send(:convert_to_uri, oth).route_from(self)
    end

    #
    # Returns normalized URI
    #
    def normalize
      uri = dup
      uri.normalize!
      uri
    end

    #
    # Destructive version of #normalize
    #
    def normalize!
      if path && path.empty?
        set_path('/')
      end
      if scheme && scheme != scheme.downcase
        set_scheme(self.scheme.downcase)
      end
      if host && host != host.downcase
        set_host(self.host.downcase)
      end
    end

    #
    # Constructs String from URI
    #
    def to_s
      str = ''
      if @scheme
        str << @scheme
        str << ':'.freeze
      end

      if @opaque
        str << @opaque
      else
        if @host
          str << '//'.freeze
        end
        if self.userinfo
          str << self.userinfo
          str << '@'.freeze
        end
        if @host
          str << @host
        end
        if @port && @port != self.default_port
          str << ':'.freeze
          str << @port.to_s
        end
        str << @path
        if @query
          str << '?'.freeze
          str << @query
        end
      end
      if @fragment
        str << '#'.freeze
        str << @fragment
      end
      str
    end

    #
    # Compares to URI's
    #
    def ==(oth)
      if self.class == oth.class
        self.normalize.component_ary == oth.normalize.component_ary
      else
        false
      end
    end

    def hash
      self.component_ary.hash
    end

    def eql?(oth)
      self.class == oth.class &&
      parser == oth.parser &&
      self.component_ary.eql?(oth.component_ary)
    end

=begin

--- URI::Generic#===(oth)

=end
#    def ===(oth)
#      raise NotImplementedError
#    end

=begin
=end


    # returns an Array of the components defined from the COMPONENT Array
    def component_ary
      component.collect do |x|
        self.send(x)
      end
    end
    protected :component_ary

    # == Args
    #
    # +components+::
    #    Multiple Symbol arguments defined in URI::HTTP
    #
    # == Description
    #
    # Selects specified components from URI
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse('http://myuser:mypass@my.example.com/test.rbx')
    #   p uri.select(:userinfo, :host, :path)
    #   # => ["myuser:mypass", "my.example.com", "/test.rbx"]
    #
    def select(*components)
      components.collect do |c|
        if component.include?(c)
          self.send(c)
        else
          raise ArgumentError,
            "expected of components of #{self.class} (#{self.class.component.join(', ')})"
        end
      end
    end

    def inspect
      "#<#{self.class} #{self}>"
    end

    #
    # == Args
    #
    # +v+::
    #    URI or String
    #
    # == Description
    #
    #  attempt to parse other URI +oth+
    #  return [parsed_oth, self]
    #
    # == Usage
    #
    #   require 'uri'
    #
    #   uri = URI.parse("http://my.example.com")
    #   uri.coerce("http://foo.com")
    #   #=> [#<URI::HTTP:0x00000000bcb028 URL:http://foo.com/>, #<URI::HTTP:0x00000000d92178 URL:http://my.example.com>]
    #
    def coerce(oth)
      case oth
      when String
        oth = parser.parse(oth)
      else
        super
      end

      return oth, self
    end

    # returns a proxy URI.
    # The proxy URI is obtained from environment variables such as http_proxy,
    # ftp_proxy, no_proxy, etc.
    # If there is no proper proxy, nil is returned.
    #
    # Note that capitalized variables (HTTP_PROXY, FTP_PROXY, NO_PROXY, etc.)
    # are examined too.
    #
    # But http_proxy and HTTP_PROXY is treated specially under CGI environment.
    # It's because HTTP_PROXY may be set by Proxy: header.
    # So HTTP_PROXY is not used.
    # http_proxy is not used too if the variable is case insensitive.
    # CGI_HTTP_PROXY can be used instead.
    def find_proxy
      raise BadURIError, "relative URI: #{self}" if self.relative?
      name = self.scheme.downcase + '_proxy'
      proxy_uri = nil
      if name == 'http_proxy' && ENV.include?('REQUEST_METHOD') # CGI?
        # HTTP_PROXY conflicts with *_proxy for proxy settings and
        # HTTP_* for header information in CGI.
        # So it should be careful to use it.
        pairs = ENV.reject {|k, v| /\Ahttp_proxy\z/i !~ k }
        case pairs.length
        when 0 # no proxy setting anyway.
          proxy_uri = nil
        when 1
          k, _ = pairs.shift
          if k == 'http_proxy' && ENV[k.upcase] == nil
            # http_proxy is safe to use because ENV is case sensitive.
            proxy_uri = ENV[name]
          else
            proxy_uri = nil
          end
        else # http_proxy is safe to use because ENV is case sensitive.
          proxy_uri = ENV.to_hash[name]
        end
        if !proxy_uri
          # Use CGI_HTTP_PROXY.  cf. libwww-perl.
          proxy_uri = ENV["CGI_#{name.upcase}"]
        end
      elsif name == 'http_proxy'
        unless proxy_uri = ENV[name]
          if proxy_uri = ENV[name.upcase]
            warn 'The environment variable HTTP_PROXY is discouraged.  Use http_proxy.'
          end
        end
      else
        proxy_uri = ENV[name] || ENV[name.upcase]
      end

      if proxy_uri.nil? || proxy_uri.empty?
        return nil
      end

      if self.hostname
        require 'socket'
        begin
          addr = IPSocket.getaddress(self.hostname)
          return nil if /\A127\.|\A::1\z/ =~ addr
        rescue SocketError
        end
      end

      name = 'no_proxy'
      if no_proxy = ENV[name] || ENV[name.upcase]
        no_proxy.scan(/([^:,]*)(?::(\d+))?/) {|host, port|
          if /(\A|\.)#{Regexp.quote host}\z/i =~ self.host &&
            (!port || self.port == port.to_i)
            return nil
          end
        }
      end
      URI.parse(proxy_uri)
    end
  end
end
lib64/ruby/2.2.0/shell.rb000064400000026467150402106340010552 0ustar00#
#   shell.rb -
#       $Release Version: 0.7 $
#       $Revision: 1.9 $
#       by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "e2mmap"

require "thread" unless defined?(Mutex)

require "forwardable"

require "shell/error"
require "shell/command-processor"
require "shell/process-controller"

# Shell implements an idiomatic Ruby interface for common UNIX shell commands.
#
# It provides users the ability to execute commands with filters and pipes,
# like +sh+/+csh+ by using native facilities of Ruby.
#
# == Examples
#
# === Temp file creation
#
# In this example we will create three +tmpFile+'s in three different folders
# under the +/tmp+ directory.
#
#   sh = Shell.cd("/tmp") # Change to the /tmp directory
#   sh.mkdir "shell-test-1" unless sh.exists?("shell-test-1")
#   # make the 'shell-test-1' directory if it doesn't already exist
#   sh.cd("shell-test-1") # Change to the /tmp/shell-test-1 directory
#   for dir in ["dir1", "dir3", "dir5"]
#     if !sh.exists?(dir)
#       sh.mkdir dir # make dir if it doesn't already exist
#       sh.cd(dir) do
#         # change to the `dir` directory
# 	  f = sh.open("tmpFile", "w") # open a new file in write mode
# 	  f.print "TEST\n"            # write to the file
# 	  f.close                     # close the file handler
#       end
#       print sh.pwd                  # output the process working directory
#     end
#   end
#
# === Temp file creation with self
#
# This example is identical to the first, except we're using
# CommandProcessor#transact.
#
# CommandProcessor#transact executes the given block against self, in this case
# +sh+; our Shell object. Within the block we can substitute +sh.cd+ to +cd+,
# because the scope within the block uses +sh+ already.
#
#   sh = Shell.cd("/tmp")
#   sh.transact do
#     mkdir "shell-test-1" unless exists?("shell-test-1")
#     cd("shell-test-1")
#     for dir in ["dir1", "dir3", "dir5"]
#       if !exists?(dir)
# 	  mkdir dir
# 	  cd(dir) do
# 	    f = open("tmpFile", "w")
# 	    f.print "TEST\n"
# 	    f.close
# 	  end
# 	  print pwd
#       end
#     end
#   end
#
# === Pipe /etc/printcap into a file
#
# In this example we will read the operating system file +/etc/printcap+,
# generated by +cupsd+, and then output it to a new file relative to the +pwd+
# of +sh+.
#
#   sh = Shell.new
#   sh.cat("/etc/printcap") | sh.tee("tee1") > "tee2"
#   (sh.cat < "/etc/printcap") | sh.tee("tee11") > "tee12"
#   sh.cat("/etc/printcap") | sh.tee("tee1") >> "tee2"
#   (sh.cat < "/etc/printcap") | sh.tee("tee11") >> "tee12"
#
class Shell

  include Error
  extend Exception2MessageMapper

  # debug: true -> normal debug
  # debug: 1    -> eval definition debug
  # debug: 2    -> detail inspect debug
  @debug = false
  @verbose = true

  @debug_display_process_id = false
  @debug_display_thread_id = true
  @debug_output_mutex = Mutex.new

  class << Shell
    extend Forwardable

    attr_accessor :cascade, :debug, :verbose

    alias debug? debug
    alias verbose? verbose
    @verbose = true

    def debug=(val)
      @debug = val
      @verbose = val if val
    end


    # call-seq:
    #   Shell.cd(path)
    #
    # Creates a new Shell instance with the current working directory
    # set to +path+.
    def cd(path)
      new(path)
    end

    # Returns the directories in the current shell's PATH environment variable
    # as an array of directory names. This sets the system_path for all
    # instances of Shell.
    #
    # Example: If in your current shell, you did:
    #
    #   $ echo $PATH
    #   /usr/bin:/bin:/usr/local/bin
    #
    # Running this method in the above shell would then return:
    #
    #   ["/usr/bin", "/bin", "/usr/local/bin"]
    #
    def default_system_path
      if @default_system_path
        @default_system_path
      else
        ENV["PATH"].split(":")
      end
    end

    # Sets the system_path that new instances of Shell should have as their
    # initial system_path.
    #
    # +path+ should be an array of directory name strings.
    def default_system_path=(path)
      @default_system_path = path
    end

    def default_record_separator
      if @default_record_separator
        @default_record_separator
      else
        $/
      end
    end

    def default_record_separator=(rs)
      @default_record_separator = rs
    end

    # os resource mutex
    mutex_methods = ["unlock", "lock", "locked?", "synchronize", "try_lock", "exclusive_unlock"]
    for m in mutex_methods
      def_delegator("@debug_output_mutex", m, "debug_output_"+m.to_s)
    end

  end

  # call-seq:
  #   Shell.new(pwd, umask) -> obj
  #
  # Creates a Shell object which current directory is set to the process
  # current directory, unless otherwise specified by the +pwd+ argument.
  def initialize(pwd = Dir.pwd, umask = nil)
    @cwd = File.expand_path(pwd)
    @dir_stack = []
    @umask = umask

    @system_path = Shell.default_system_path
    @record_separator = Shell.default_record_separator

    @command_processor = CommandProcessor.new(self)
    @process_controller = ProcessController.new(self)

    @verbose = Shell.verbose
    @debug = Shell.debug
  end

  # Returns the command search path in an array
  attr_reader :system_path

  # Sets the system path (the Shell instance's PATH environment variable).
  #
  # +path+ should be an array of directory name strings.
  def system_path=(path)
    @system_path = path
    rehash
  end


  # Returns the umask
  attr_accessor :umask
  attr_accessor :record_separator
  attr_accessor :verbose, :debug

  def debug=(val)
    @debug = val
    @verbose = val if val
  end

  alias verbose? verbose
  alias debug? debug

  attr_reader :command_processor
  attr_reader :process_controller

  def expand_path(path)
    File.expand_path(path, @cwd)
  end

  # Most Shell commands are defined via CommandProcessor

  #
  # Dir related methods
  #
  # Shell#cwd/dir/getwd/pwd
  # Shell#chdir/cd
  # Shell#pushdir/pushd
  # Shell#popdir/popd
  # Shell#mkdir
  # Shell#rmdir

  # Returns the current working directory.
  attr_reader :cwd
  alias dir cwd
  alias getwd cwd
  alias pwd cwd

  attr_reader :dir_stack
  alias dirs dir_stack

  # call-seq:
  #   Shell.chdir(path)
  #
  # Creates a Shell object which current directory is set to +path+.
  #
  # If a block is given, it restores the current directory when the block ends.
  #
  # If called as iterator, it restores the current directory when the
  # block ends.
  def chdir(path = nil, verbose = @verbose)
    check_point

    if iterator?
      notify("chdir(with block) #{path}") if verbose
      cwd_old = @cwd
      begin
        chdir(path, nil)
        yield
      ensure
        chdir(cwd_old, nil)
      end
    else
      notify("chdir #{path}") if verbose
      path = "~" unless path
      @cwd = expand_path(path)
      notify "current dir: #{@cwd}"
      rehash
      Void.new(self)
    end
  end
  alias cd chdir

  # call-seq:
  #   pushdir(path)
  #   pushdir(path) { &block }
  #
  # Pushes the current directory to the directory stack, changing the current
  # directory to +path+.
  #
  # If +path+ is omitted, it exchanges its current directory and the top of its
  # directory stack.
  #
  # If a block is given, it restores the current directory when the block ends.
  def pushdir(path = nil, verbose = @verbose)
    check_point

    if iterator?
      notify("pushdir(with block) #{path}") if verbose
      pushdir(path, nil)
      begin
        yield
      ensure
        popdir
      end
    elsif path
      notify("pushdir #{path}") if verbose
      @dir_stack.push @cwd
      chdir(path, nil)
      notify "dir stack: [#{@dir_stack.join ', '}]"
      self
    else
      notify("pushdir") if verbose
      if pop = @dir_stack.pop
        @dir_stack.push @cwd
        chdir pop
        notify "dir stack: [#{@dir_stack.join ', '}]"
        self
      else
        Shell.Fail DirStackEmpty
      end
    end
    Void.new(self)
  end
  alias pushd pushdir

  # Pops a directory from the directory stack, and sets the current directory
  # to it.
  def popdir
    check_point

    notify("popdir")
    if pop = @dir_stack.pop
      chdir pop
      notify "dir stack: [#{@dir_stack.join ', '}]"
      self
    else
      Shell.Fail DirStackEmpty
    end
    Void.new(self)
  end
  alias popd popdir

  # Returns a list of scheduled jobs.
  def jobs
    @process_controller.jobs
  end

  # call-seq:
  #   kill(signal, job)
  #
  # Sends the given +signal+ to the given +job+
  def kill(sig, command)
    @process_controller.kill_job(sig, command)
  end

  # call-seq:
  #   def_system_command(command, path = command)
  #
  # Convenience method for Shell::CommandProcessor.def_system_command.
  # Defines an instance method which will execute the given shell command.
  # If the executable is not in Shell.default_system_path, you must
  # supply the path to it.
  #
  #    Shell.def_system_command('hostname')
  #    Shell.new.hostname # => localhost
  #
  #    # How to use an executable that's not in the default path
  #
  #    Shell.def_system_command('run_my_program', "~/hello")
  #    Shell.new.run_my_program # prints "Hello from a C program!"
  #
  def Shell.def_system_command(command, path = command)
    CommandProcessor.def_system_command(command, path)
  end

  # Convenience method for Shell::CommandProcessor.undef_system_command
  def Shell.undef_system_command(command)
    CommandProcessor.undef_system_command(command)
  end

  # call-seq:
  #   alias_command(alias, command, *opts, &block)
  #
  # Convenience method for Shell::CommandProcessor.alias_command.
  # Defines an instance method which will execute a command under
  # an alternative name.
  #
  #    Shell.def_system_command('date')
  #    Shell.alias_command('date_in_utc', 'date', '-u')
  #    Shell.new.date_in_utc # => Sat Jan 25 16:59:57 UTC 2014
  #
  def Shell.alias_command(ali, command, *opts, &block)
    CommandProcessor.alias_command(ali, command, *opts, &block)
  end

  # Convenience method for Shell::CommandProcessor.unalias_command
  def Shell.unalias_command(ali)
    CommandProcessor.unalias_command(ali)
  end

  # call-seq:
  #   install_system_commands(pre = "sys_")
  #
  # Convenience method for Shell::CommandProcessor.install_system_commands.
  # Defines instance methods representing all the executable files found in
  # Shell.default_system_path, with the given prefix prepended to their
  # names.
  #
  #    Shell.install_system_commands
  #    Shell.new.sys_echo("hello") # => hello
  #
  def Shell.install_system_commands(pre = "sys_")
    CommandProcessor.install_system_commands(pre)
  end

  #
  def inspect
    if debug.kind_of?(Integer) && debug > 2
      super
    else
      to_s
    end
  end

  def self.notify(*opts)
    Shell::debug_output_synchronize do
      if opts[-1].kind_of?(String)
        yorn = verbose?
      else
        yorn = opts.pop
      end
      return unless yorn

      if @debug_display_thread_id
        if @debug_display_process_id
          prefix = "shell(##{Process.pid}:#{Thread.current.to_s.sub("Thread", "Th")}): "
        else
          prefix = "shell(#{Thread.current.to_s.sub("Thread", "Th")}): "
        end
      else
        prefix = "shell: "
      end
      _head = true
      STDERR.print opts.collect{|mes|
        mes = mes.dup
        yield mes if iterator?
        if _head
          _head = false
          prefix + mes
        else
          " "* prefix.size + mes
        end
      }.join("\n")+"\n"
    end
  end

  CommandProcessor.initialize
  CommandProcessor.run_config
end
lib64/ruby/2.2.0/e2mmap.rb000064400000007431150402106340010612 0ustar00#
#--
#   e2mmap.rb - for Ruby 1.1
#       $Release Version: 2.0$
#       $Revision: 1.10 $
#       by Keiju ISHITSUKA
#
#++
#
# Helper module for easily defining exceptions with predefined messages.
#
# == Usage
#
# 1.
#   class Foo
#     extend Exception2MessageMapper
#     def_e2message ExistingExceptionClass, "message..."
#     def_exception :NewExceptionClass, "message..."[, superclass]
#     ...
#   end
#
# 2.
#   module Error
#     extend Exception2MessageMapper
#     def_e2message ExistingExceptionClass, "message..."
#     def_exception :NewExceptionClass, "message..."[, superclass]
#     ...
#   end
#   class Foo
#     include Error
#     ...
#   end
#
#   foo = Foo.new
#   foo.Fail ....
#
# 3.
#   module Error
#     extend Exception2MessageMapper
#     def_e2message ExistingExceptionClass, "message..."
#     def_exception :NewExceptionClass, "message..."[, superclass]
#     ...
#   end
#   class Foo
#     extend Exception2MessageMapper
#     include Error
#     ...
#   end
#
#   Foo.Fail NewExceptionClass, arg...
#   Foo.Fail ExistingExceptionClass, arg...
#
#
module Exception2MessageMapper

  E2MM = Exception2MessageMapper # :nodoc:

  def E2MM.extend_object(cl)
    super
    cl.bind(self) unless cl < E2MM
  end

  def bind(cl)
    self.module_eval %[
      def Raise(err = nil, *rest)
        Exception2MessageMapper.Raise(self.class, err, *rest)
      end
      alias Fail Raise

      def self.included(mod)
        mod.extend Exception2MessageMapper
      end
    ]
  end

  # Fail(err, *rest)
  #     err:    exception
  #     rest:   message arguments
  #
  def Raise(err = nil, *rest)
    E2MM.Raise(self, err, *rest)
  end
  alias Fail Raise
  alias fail Raise

  # def_e2message(c, m)
  #         c:  exception
  #         m:  message_form
  #     define exception c with message m.
  #
  def def_e2message(c, m)
    E2MM.def_e2message(self, c, m)
  end

  # def_exception(n, m, s)
  #         n:  exception_name
  #         m:  message_form
  #         s:  superclass(default: StandardError)
  #     define exception named ``c'' with message m.
  #
  def def_exception(n, m, s = StandardError)
    E2MM.def_exception(self, n, m, s)
  end

  #
  # Private definitions.
  #
  # {[class, exp] => message, ...}
  @MessageMap = {}

  # E2MM.def_e2message(k, e, m)
  #         k:  class to define exception under.
  #         e:  exception
  #         m:  message_form
  #     define exception c with message m.
  #
  def E2MM.def_e2message(k, c, m)
    E2MM.instance_eval{@MessageMap[[k, c]] = m}
    c
  end

  # E2MM.def_exception(k, n, m, s)
  #         k:  class to define exception under.
  #         n:  exception_name
  #         m:  message_form
  #         s:  superclass(default: StandardError)
  #     define exception named ``c'' with message m.
  #
  def E2MM.def_exception(k, n, m, s = StandardError)
    n = n.id2name if n.kind_of?(Fixnum)
    e = Class.new(s)
    E2MM.instance_eval{@MessageMap[[k, e]] = m}
    k.const_set(n, e)
  end

  # Fail(klass, err, *rest)
  #     klass:  class to define exception under.
  #     err:    exception
  #     rest:   message arguments
  #
  def E2MM.Raise(klass = E2MM, err = nil, *rest)
    if form = e2mm_message(klass, err)
      b = $@.nil? ? caller(1) : $@
      b.shift if b[0] =~ /^#{Regexp.quote(__FILE__)}:/
      raise err, sprintf(form, *rest), b
    else
      E2MM.Fail E2MM, ErrNotRegisteredException, err.inspect
    end
  end
  class << E2MM
    alias Fail Raise
  end

  def E2MM.e2mm_message(klass, exp)
    for c in klass.ancestors
      if mes = @MessageMap[[c,exp]]
        m = klass.instance_eval('"' + mes + '"')
        return m
      end
    end
    nil
  end
  class << self
    alias message e2mm_message
  end

  E2MM.def_exception(E2MM,
                     :ErrNotRegisteredException,
                     "not registered exception(%s)")
end


lib64/ruby/2.2.0/yaml/dbm.rb000064400000015412150402106340011133 0ustar00require 'yaml'
require 'dbm'

module YAML

# YAML + DBM = YDBM
#
# YAML::DBM provides the same interface as ::DBM.
#
# However, while DBM only allows strings for both keys and values,
# this library allows one to use most Ruby objects for values
# by first converting them to YAML. Keys must be strings.
#
# Conversion to and from YAML is performed automatically.
#
# See the documentation for ::DBM and ::YAML for more information.
class DBM < ::DBM
    VERSION = "0.1" # :nodoc:

    # :call-seq:
    #   ydbm[key] -> value
    #
    # Return value associated with +key+ from database.
    #
    # Returns +nil+ if there is no such +key+.
    #
    # See #fetch for more information.
    def []( key )
        fetch( key )
    end

    # :call-seq:
    #   ydbm[key] = value
    #
    # Set +key+ to +value+ in database.
    #
    # +value+ will be converted to YAML before storage.
    #
    # See #store for more information.
    def []=( key, val )
        store( key, val )
    end

    # :call-seq:
    #   ydbm.fetch( key, ifnone = nil )
    #   ydbm.fetch( key ) { |key| ... }
    #
    # Return value associated with +key+.
    #
    # If there is no value for +key+ and no block is given, returns +ifnone+.
    #
    # Otherwise, calls block passing in the given +key+.
    #
    # See ::DBM#fetch for more information.
    def fetch( keystr, ifnone = nil )
        begin
            val = super( keystr )
            return YAML.load( val ) if String === val
        rescue IndexError
        end
        if block_given?
            yield keystr
        else
            ifnone
        end
    end

    # Deprecated, used YAML::DBM#key instead.
    # ----
    # Note:
    # YAML::DBM#index makes warning from internal of ::DBM#index.
    # It says 'DBM#index is deprecated; use DBM#key', but DBM#key
    # behaves not same as DBM#index.
    #
    def index( keystr )
        super( keystr.to_yaml )
    end

    # :call-seq:
    #   ydbm.key(value) -> string
    #
    # Returns the key for the specified value.
    def key( keystr )
        invert[keystr]
    end

    # :call-seq:
    #   ydbm.values_at(*keys)
    #
    # Returns an array containing the values associated with the given keys.
    def values_at( *keys )
        keys.collect { |k| fetch( k ) }
    end

    # :call-seq:
    #   ydbm.delete(key)
    #
    # Deletes value from database associated with +key+.
    #
    # Returns value or +nil+.
    def delete( key )
        v = super( key )
        if String === v
            v = YAML.load( v )
        end
        v
    end

    # :call-seq:
    #   ydbm.delete_if { |key, value| ... }
    #
    # Calls the given block once for each +key+, +value+ pair in the database.
    # Deletes all entries for which the block returns true.
    #
    # Returns +self+.
    def delete_if # :yields: [key, value]
        del_keys = keys.dup
        del_keys.delete_if { |k| yield( k, fetch( k ) ) == false }
        del_keys.each { |k| delete( k ) }
        self
    end

    # :call-seq:
    #   ydbm.reject { |key, value| ... }
    #
    # Converts the contents of the database to an in-memory Hash, then calls
    # Hash#reject with the specified code block, returning a new Hash.
    def reject
        hsh = self.to_hash
        hsh.reject { |k,v| yield k, v }
    end

    # :call-seq:
    #   ydbm.each_pair { |key, value| ... }
    #
    # Calls the given block once for each +key+, +value+ pair in the database.
    #
    # Returns +self+.
    def each_pair # :yields: [key, value]
        keys.each { |k| yield k, fetch( k ) }
        self
    end

    # :call-seq:
    #   ydbm.each_value { |value| ... }
    #
    # Calls the given block for each value in database.
    #
    # Returns +self+.
    def each_value # :yields: value
        super { |v| yield YAML.load( v ) }
        self
    end

    # :call-seq:
    #   ydbm.values
    #
    # Returns an array of values from the database.
    def values
        super.collect { |v| YAML.load( v ) }
    end

    # :call-seq:
    #   ydbm.has_value?(value)
    #
    # Returns true if specified +value+ is found in the database.
    def has_value?( val )
        each_value { |v| return true if v == val }
        return false
    end

    # :call-seq:
    #   ydbm.invert -> hash
    #
    # Returns a Hash (not a DBM database) created by using each value in the
    # database as a key, with the corresponding key as its value.
    #
    # Note that all values in the hash will be Strings, but the keys will be
    # actual objects.
    def invert
        h = {}
        keys.each { |k| h[ self.fetch( k ) ] = k }
        h
    end

    # :call-seq:
    #   ydbm.replace(hash) -> ydbm
    #
    # Replaces the contents of the database with the contents of the specified
    # object. Takes any object which implements the each_pair method, including
    # Hash and DBM objects.
    def replace( hsh )
        clear
        update( hsh )
    end

    # :call-seq:
    #   ydbm.shift -> [key, value]
    #
    # Removes a [key, value] pair from the database, and returns it.
    # If the database is empty, returns +nil+.
    #
    # The order in which values are removed/returned is not guaranteed.
    def shift
        a = super
        a[1] = YAML.load( a[1] ) if a
        a
    end

    # :call-seq:
    #   ydbm.select { |key, value| ... }
    #   ydbm.select(*keys)
    #
    # If a block is provided, returns a new array containing [key, value] pairs
    # for which the block returns true.
    #
    # Otherwise, same as #values_at
    def select( *keys )
        if block_given?
            self.keys.collect { |k| v = self[k]; [k, v] if yield k, v }.compact
        else
            values_at( *keys )
        end
    end

    # :call-seq:
    #   ydbm.store(key, value) -> value
    #
    # Stores +value+ in database with +key+ as the index. +value+ is converted
    # to YAML before being stored.
    #
    # Returns +value+
    def store( key, val )
        super( key, val.to_yaml )
        val
    end

    # :call-seq:
    #   ydbm.update(hash) -> ydbm
    #
    # Updates the database with multiple values from the specified object.
    # Takes any object which implements the each_pair method, including
    # Hash and DBM objects.
    #
    # Returns +self+.
    def update( hsh )
        hsh.each_pair do |k,v|
            self.store( k, v )
        end
        self
    end

    # :call-seq:
    #   ydbm.to_a -> array
    #
    # Converts the contents of the database to an array of [key, value] arrays,
    # and returns it.
    def to_a
        a = []
        keys.each { |k| a.push [ k, self.fetch( k ) ] }
        a
    end


    # :call-seq:
    #   ydbm.to_hash -> hash
    #
    # Converts the contents of the database to an in-memory Hash object, and
    # returns it.
    def to_hash
        h = {}
        keys.each { |k| h[ k ] = self.fetch( k ) }
        h
    end

    alias :each :each_pair
end

end
lib64/ruby/2.2.0/yaml/store.rb000064400000003174150402106340011527 0ustar00#
# YAML::Store
#
require 'yaml'
require 'pstore'

# YAML::Store provides the same functionality as PStore, except it uses YAML
# to dump objects instead of Marshal.
#
# == Example
#
#   require 'yaml/store'
#
#   Person = Struct.new :first_name, :last_name
#
#   people = [Person.new("Bob", "Smith"), Person.new("Mary", "Johnson")]
#
#   store = YAML::Store.new "test.store"
#
#   store.transaction do
#     store["people"] = people
#     store["greeting"] = { "hello" => "world" }
#   end
#
# After running the above code, the contents of "test.store" will be:
#
#   ---
#   people:
#   - !ruby/struct:Person
#     first_name: Bob
#     last_name: Smith
#   - !ruby/struct:Person
#     first_name: Mary
#     last_name: Johnson
#   greeting:
#     hello: world

class YAML::Store < PStore

  # :call-seq:
  #   initialize( file_name, yaml_opts = {} )
  #
  # Creates a new YAML::Store object, which will store data in +file_name+.
  # If the file does not already exist, it will be created.
  #
  #
  # Options passed in through +yaml_opts+ will be used when converting the
  # store to YAML via Hash#to_yaml().
  def initialize file_name, yaml_opts = {}
    @opt = yaml_opts
    super
  end

  # :stopdoc:

  def dump(table)
    YAML.dump @table
  end

  def load(content)
    table = YAML.load(content)
    if table == false
      {}
    else
      table
    end
  end

  def marshal_dump_supports_canonical_option?
    false
  end

  EMPTY_MARSHAL_DATA = YAML.dump({})
  EMPTY_MARSHAL_CHECKSUM = Digest::MD5.digest(EMPTY_MARSHAL_DATA)
  def empty_marshal_data
    EMPTY_MARSHAL_DATA
  end
  def empty_marshal_checksum
    EMPTY_MARSHAL_CHECKSUM
  end
end
lib64/ruby/2.2.0/rdoc.rb000064400000011730150402106340010355 0ustar00$DEBUG_RDOC = nil

# :main: README.rdoc

##
# RDoc produces documentation for Ruby source files by parsing the source and
# extracting the definition for classes, modules, methods, includes and
# requires.  It associates these with optional documentation contained in an
# immediately preceding comment block then renders the result using an output
# formatter.
#
# For a simple introduction to writing or generating documentation using RDoc
# see the README.
#
# == Roadmap
#
# If you think you found a bug in RDoc see CONTRIBUTING@Bugs
#
# If you want to use RDoc to create documentation for your Ruby source files,
# see RDoc::Markup and refer to <tt>rdoc --help</tt> for command line usage.
#
# If you want to set the default markup format see
# RDoc::Markup@Supported+Formats
#
# If you want to store rdoc configuration in your gem (such as the default
# markup format) see RDoc::Options@Saved+Options
#
# If you want to write documentation for Ruby files see RDoc::Parser::Ruby
#
# If you want to write documentation for extensions written in C see
# RDoc::Parser::C
#
# If you want to generate documentation using <tt>rake</tt> see RDoc::Task.
#
# If you want to drive RDoc programmatically, see RDoc::RDoc.
#
# If you want to use the library to format text blocks into HTML or other
# formats, look at RDoc::Markup.
#
# If you want to make an RDoc plugin such as a generator or directive handler
# see RDoc::RDoc.
#
# If you want to write your own output generator see RDoc::Generator.
#
# If you want an overview of how RDoc works see CONTRIBUTING
#
# == Credits
#
# RDoc is currently being maintained by Eric Hodel <drbrain@segment7.net>.
#
# Dave Thomas <dave@pragmaticprogrammer.com> is the original author of RDoc.
#
# * The Ruby parser in rdoc/parse.rb is based heavily on the outstanding
#   work of Keiju ISHITSUKA of Nippon Rational Inc, who produced the Ruby
#   parser for irb and the rtags package.

module RDoc

  ##
  # Exception thrown by any rdoc error.

  class Error < RuntimeError; end

  ##
  # RDoc version you are using

  VERSION = '4.2.0'

  ##
  # Method visibilities

  VISIBILITIES = [:public, :protected, :private]

  ##
  # Name of the dotfile that contains the description of files to be processed
  # in the current directory

  DOT_DOC_FILENAME = ".document"

  ##
  # General RDoc modifiers

  GENERAL_MODIFIERS = %w[nodoc].freeze

  ##
  # RDoc modifiers for classes

  CLASS_MODIFIERS = GENERAL_MODIFIERS

  ##
  # RDoc modifiers for attributes

  ATTR_MODIFIERS = GENERAL_MODIFIERS

  ##
  # RDoc modifiers for constants

  CONSTANT_MODIFIERS = GENERAL_MODIFIERS

  ##
  # RDoc modifiers for methods

  METHOD_MODIFIERS = GENERAL_MODIFIERS +
    %w[arg args yield yields notnew not-new not_new doc]

  ##
  # Loads the best available YAML library.

  def self.load_yaml
    begin
      gem 'psych'
    rescue Gem::LoadError
    end

    begin
      require 'psych'
    rescue ::LoadError
    ensure
      require 'yaml'
    end
  end

  autoload :RDoc,           'rdoc/rdoc'

  autoload :TestCase,       'rdoc/test_case'

  autoload :CrossReference, 'rdoc/cross_reference'
  autoload :ERBIO,          'rdoc/erbio'
  autoload :ERBPartial,     'rdoc/erb_partial'
  autoload :Encoding,       'rdoc/encoding'
  autoload :Generator,      'rdoc/generator'
  autoload :Options,        'rdoc/options'
  autoload :Parser,         'rdoc/parser'
  autoload :Servlet,        'rdoc/servlet'
  autoload :RI,             'rdoc/ri'
  autoload :Stats,          'rdoc/stats'
  autoload :Store,          'rdoc/store'
  autoload :Task,           'rdoc/task'
  autoload :Text,           'rdoc/text'

  autoload :Markdown,       'rdoc/markdown'
  autoload :Markup,         'rdoc/markup'
  autoload :RD,             'rdoc/rd'
  autoload :TomDoc,         'rdoc/tom_doc'

  autoload :KNOWN_CLASSES,  'rdoc/known_classes'

  autoload :RubyLex,        'rdoc/ruby_lex'
  autoload :RubyToken,      'rdoc/ruby_token'
  autoload :TokenStream,    'rdoc/token_stream'

  autoload :Comment,        'rdoc/comment'

  autoload :I18n,           'rdoc/i18n'

  # code objects
  #
  # We represent the various high-level code constructs that appear in Ruby
  # programs: classes, modules, methods, and so on.
  autoload :CodeObject,     'rdoc/code_object'

  autoload :Context,        'rdoc/context'
  autoload :TopLevel,       'rdoc/top_level'

  autoload :AnonClass,      'rdoc/anon_class'
  autoload :ClassModule,    'rdoc/class_module'
  autoload :NormalClass,    'rdoc/normal_class'
  autoload :NormalModule,   'rdoc/normal_module'
  autoload :SingleClass,    'rdoc/single_class'

  autoload :Alias,          'rdoc/alias'
  autoload :AnyMethod,      'rdoc/any_method'
  autoload :MethodAttr,     'rdoc/method_attr'
  autoload :GhostMethod,    'rdoc/ghost_method'
  autoload :MetaMethod,     'rdoc/meta_method'
  autoload :Attr,           'rdoc/attr'

  autoload :Constant,       'rdoc/constant'
  autoload :Mixin,          'rdoc/mixin'
  autoload :Include,        'rdoc/include'
  autoload :Extend,         'rdoc/extend'
  autoload :Require,        'rdoc/require'

end

lib64/ruby/2.2.0/forwardable.rb000064400000020337150402106340011721 0ustar00# frozen_string_literal: false
#
#   forwardable.rb -
#       $Release Version: 1.1$
#       $Revision: 58085 $
#       by Keiju ISHITSUKA(keiju@ishitsuka.com)
#       original definition by delegator.rb
#       Revised by Daniel J. Berger with suggestions from Florian Gross.
#
#       Documentation by James Edward Gray II and Gavin Sinclair



# The Forwardable module provides delegation of specified
# methods to a designated object, using the methods #def_delegator
# and #def_delegators.
#
# For example, say you have a class RecordCollection which
# contains an array <tt>@records</tt>.  You could provide the lookup method
# #record_number(), which simply calls #[] on the <tt>@records</tt>
# array, like this:
#
#   require 'forwardable'
#
#   class RecordCollection
#     attr_accessor :records
#     extend Forwardable
#     def_delegator :@records, :[], :record_number
#   end
#
# We can use the lookup method like so:
#
#   r = RecordCollection.new
#   r.records = [4,5,6]
#   r.record_number(0)  # => 4
#
# Further, if you wish to provide the methods #size, #<<, and #map,
# all of which delegate to @records, this is how you can do it:
#
#   class RecordCollection # re-open RecordCollection class
#     def_delegators :@records, :size, :<<, :map
#   end
#
#   r = RecordCollection.new
#   r.records = [1,2,3]
#   r.record_number(0)   # => 1
#   r.size               # => 3
#   r << 4               # => [1, 2, 3, 4]
#   r.map { |x| x * 2 }  # => [2, 4, 6, 8]
#
# You can even extend regular objects with Forwardable.
#
#   my_hash = Hash.new
#   my_hash.extend Forwardable              # prepare object for delegation
#   my_hash.def_delegator "STDOUT", "puts"  # add delegation for STDOUT.puts()
#   my_hash.puts "Howdy!"
#
# == Another example
#
# We want to rely on what has come before obviously, but with delegation we can
# take just the methods we need and even rename them as appropriate.  In many
# cases this is preferable to inheritance, which gives us the entire old
# interface, even if much of it isn't needed.
#
#   class Queue
#     extend Forwardable
#
#     def initialize
#       @q = [ ]    # prepare delegate object
#     end
#
#     # setup preferred interface, enq() and deq()...
#     def_delegator :@q, :push, :enq
#     def_delegator :@q, :shift, :deq
#
#     # support some general Array methods that fit Queues well
#     def_delegators :@q, :clear, :first, :push, :shift, :size
#   end
#
#   q = Queue.new
#   q.enq 1, 2, 3, 4, 5
#   q.push 6
#
#   q.shift    # => 1
#   while q.size > 0
#     puts q.deq
#   end
#
#   q.enq "Ruby", "Perl", "Python"
#   puts q.first
#   q.clear
#   puts q.first
#
# This should output:
#
#   2
#   3
#   4
#   5
#   6
#   Ruby
#   nil
#
# == Notes
#
# Be advised, RDoc will not detect delegated methods.
#
# +forwardable.rb+ provides single-method delegation via the def_delegator and
# def_delegators methods. For full-class delegation via DelegateClass, see
# +delegate.rb+.
#
module Forwardable
  # Version of +forwardable.rb+
  FORWARDABLE_VERSION = "1.1.0"

  FILE_REGEXP = %r"#{Regexp.quote(__FILE__)}"

  @debug = nil
  class << self
    # If true, <tt>__FILE__</tt> will remain in the backtrace in the event an
    # Exception is raised.
    attr_accessor :debug
  end

  # Takes a hash as its argument.  The key is a symbol or an array of
  # symbols.  These symbols correspond to method names.  The value is
  # the accessor to which the methods will be delegated.
  #
  # :call-seq:
  #    delegate method => accessor
  #    delegate [method, method, ...] => accessor
  #
  def instance_delegate(hash)
    hash.each{ |methods, accessor|
      methods = [methods] unless methods.respond_to?(:each)
      methods.each{ |method|
        def_instance_delegator(accessor, method)
      }
    }
  end

  #
  # Shortcut for defining multiple delegator methods, but with no
  # provision for using a different name.  The following two code
  # samples have the same effect:
  #
  #   def_delegators :@records, :size, :<<, :map
  #
  #   def_delegator :@records, :size
  #   def_delegator :@records, :<<
  #   def_delegator :@records, :map
  #
  def def_instance_delegators(accessor, *methods)
    methods.delete("__send__")
    methods.delete("__id__")
    for method in methods
      def_instance_delegator(accessor, method)
    end
  end

  # Define +method+ as delegator instance method with an optional
  # alias name +ali+. Method calls to +ali+ will be delegated to
  # +accessor.method+.
  #
  #   class MyQueue
  #     extend Forwardable
  #     attr_reader :queue
  #     def initialize
  #       @queue = []
  #     end
  #
  #     def_delegator :@queue, :push, :mypush
  #   end
  #
  #   q = MyQueue.new
  #   q.mypush 42
  #   q.queue    #=> [42]
  #   q.push 23  #=> NoMethodError
  #
  def def_instance_delegator(accessor, method, ali = method)
    gen = Forwardable._delegator_method(self, accessor, method, ali)

    # If it's not a class or module, it's an instance
    (Module === self ? self : singleton_class).module_eval(&gen)
  end

  alias delegate instance_delegate
  alias def_delegators def_instance_delegators
  alias def_delegator def_instance_delegator

  def self._delegator_method(obj, accessor, method, ali)
    accessor = accessor.to_s unless Symbol === accessor

    if Module === obj ?
         obj.method_defined?(accessor) || obj.private_method_defined?(accessor) :
         obj.respond_to?(accessor, true)
      accessor = "#{accessor}()"
    end

    line_no = __LINE__+1; str = "#{<<-"begin;"}\n#{<<-"end;"}"
    begin;
      proc do
        def #{ali}(*args, &block)
          begin
            #{accessor}
          ensure
            $@.delete_if {|s| ::Forwardable::FILE_REGEXP =~ s} if $@ and !::Forwardable::debug
          end.__send__ :#{method}, *args, &block
        end
      end
    end;

    RubyVM::InstructionSequence
      .compile(str, __FILE__, __FILE__, line_no,
               trace_instruction: false,
               tailcall_optimization: true)
      .eval
  end
end

# SingleForwardable can be used to setup delegation at the object level as well.
#
#    printer = String.new
#    printer.extend SingleForwardable        # prepare object for delegation
#    printer.def_delegator "STDOUT", "puts"  # add delegation for STDOUT.puts()
#    printer.puts "Howdy!"
#
# Also, SingleForwardable can be used to set up delegation for a Class or Module.
#
#   class Implementation
#     def self.service
#       puts "serviced!"
#     end
#   end
#
#   module Facade
#     extend SingleForwardable
#     def_delegator :Implementation, :service
#   end
#
#   Facade.service #=> serviced!
#
# If you want to use both Forwardable and SingleForwardable, you can
# use methods def_instance_delegator and def_single_delegator, etc.
module SingleForwardable
  # Takes a hash as its argument.  The key is a symbol or an array of
  # symbols.  These symbols correspond to method names.  The value is
  # the accessor to which the methods will be delegated.
  #
  # :call-seq:
  #    delegate method => accessor
  #    delegate [method, method, ...] => accessor
  #
  def single_delegate(hash)
    hash.each{ |methods, accessor|
      methods = [methods] unless methods.respond_to?(:each)
      methods.each{ |method|
        def_single_delegator(accessor, method)
      }
    }
  end

  #
  # Shortcut for defining multiple delegator methods, but with no
  # provision for using a different name.  The following two code
  # samples have the same effect:
  #
  #   def_delegators :@records, :size, :<<, :map
  #
  #   def_delegator :@records, :size
  #   def_delegator :@records, :<<
  #   def_delegator :@records, :map
  #
  def def_single_delegators(accessor, *methods)
    methods.delete("__send__")
    methods.delete("__id__")
    for method in methods
      def_single_delegator(accessor, method)
    end
  end

  # :call-seq:
  #   def_single_delegator(accessor, method, new_name=method)
  #
  # Defines a method _method_ which delegates to _accessor_ (i.e. it calls
  # the method of the same name in _accessor_).  If _new_name_ is
  # provided, it is used as the name for the delegate method.
  def def_single_delegator(accessor, method, ali = method)
    gen = Forwardable._delegator_method(self, accessor, method, ali)

    instance_eval(&gen)
  end

  alias delegate single_delegate
  alias def_delegators def_single_delegators
  alias def_delegator def_single_delegator
end
lib64/ruby/2.2.0/rake/alt_system.rb000064400000006254150402106340012541 0ustar00#
# Copyright (c) 2008 James M. Lawrence
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#

require 'rbconfig'

##
# Alternate implementations of system() and backticks `` on Windows
# for ruby-1.8 and earlier.
#--
# TODO: Remove in Rake 11

module Rake::AltSystem # :nodoc: all
  WINDOWS = RbConfig::CONFIG["host_os"] =~
    %r!(msdos|mswin|djgpp|mingw|[Ww]indows)!

  class << self
    def define_module_function(name, &block)
      define_method(name, &block)
      module_function(name)
    end
  end

  if WINDOWS && RUBY_VERSION < "1.9.0"
    RUNNABLE_EXTS = %w[com exe bat cmd]
    RUNNABLE_PATTERN = %r!\.(#{RUNNABLE_EXTS.join('|')})\Z!i

    define_module_function :kernel_system, &Kernel.method(:system)
    define_module_function :kernel_backticks, &Kernel.method(:'`')

    module_function

    def repair_command(cmd)
      "call " + (
        if cmd =~ %r!\A\s*\".*?\"!
          # already quoted
          cmd
        elsif match = cmd.match(%r!\A\s*(\S+)!)
          if match[1] =~ %r!/!
            # avoid x/y.bat interpretation as x with option /y
            %Q!"#{match[1]}"! + match.post_match
          else
            # a shell command will fail if quoted
            cmd
          end
        else
          # empty or whitespace
          cmd
        end
      )
    end

    def find_runnable(file)
      if file =~ RUNNABLE_PATTERN
        file
      else
        RUNNABLE_EXTS.each { |ext|
          test = "#{file}.#{ext}"
          return test if File.exist?(test)
        }
        nil
      end
    end

    def system(cmd, *args)
      repaired = (
        if args.empty?
          [repair_command(cmd)]
        elsif runnable = find_runnable(cmd)
          [File.expand_path(runnable), *args]
        else
          # non-existent file
          [cmd, *args]
        end
      )
      kernel_system(*repaired)
    end

    def backticks(cmd)
      kernel_backticks(repair_command(cmd))
    end

    define_module_function :'`', &method(:backticks)
  else
    # Non-Windows or ruby-1.9+: same as Kernel versions
    define_module_function :system, &Kernel.method(:system)
    define_module_function :backticks, &Kernel.method(:'`')
    define_module_function :'`', &Kernel.method(:'`')
  end
end
lib64/ruby/2.2.0/rake/promise.rb000064400000004441150402106340012027 0ustar00module Rake

  # A Promise object represents a promise to do work (a chore) in the
  # future. The promise is created with a block and a list of
  # arguments for the block. Calling value will return the value of
  # the promised chore.
  #
  # Used by ThreadPool.
  #
  class Promise               # :nodoc: all
    NOT_SET = Object.new.freeze # :nodoc:

    attr_accessor :recorder

    # Create a promise to do the chore specified by the block.
    def initialize(args, &block)
      @mutex = Mutex.new
      @result = NOT_SET
      @error = NOT_SET
      @args = args
      @block = block
    end

    # Return the value of this promise.
    #
    # If the promised chore is not yet complete, then do the work
    # synchronously. We will wait.
    def value
      unless complete?
        stat :sleeping_on, :item_id => object_id
        @mutex.synchronize do
          stat :has_lock_on, :item_id => object_id
          chore
          stat :releasing_lock_on, :item_id => object_id
        end
      end
      error? ? raise(@error) : @result
    end

    # If no one else is working this promise, go ahead and do the chore.
    def work
      stat :attempting_lock_on, :item_id => object_id
      if @mutex.try_lock
        stat :has_lock_on, :item_id => object_id
        chore
        stat :releasing_lock_on, :item_id => object_id
        @mutex.unlock
      else
        stat :bailed_on, :item_id => object_id
      end
    end

    private

    # Perform the chore promised
    def chore
      if complete?
        stat :found_completed, :item_id => object_id
        return
      end
      stat :will_execute, :item_id => object_id
      begin
        @result = @block.call(*@args)
      rescue Exception => e
        @error = e
      end
      stat :did_execute, :item_id => object_id
      discard
    end

    # Do we have a result for the promise
    def result?
      ! @result.equal?(NOT_SET)
    end

    # Did the promise throw an error
    def error?
      ! @error.equal?(NOT_SET)
    end

    # Are we done with the promise
    def complete?
      result? || error?
    end

    # free up these items for the GC
    def discard
      @args = nil
      @block = nil
    end

    # Record execution statistics if there is a recorder
    def stat(*args)
      @recorder.call(*args) if @recorder
    end

  end

end
lib64/ruby/2.2.0/rake/version.rb000064400000000234150402106340012032 0ustar00module Rake
  module Version # :nodoc: all
    MAJOR, MINOR, BUILD, *OTHER = Rake::VERSION.split '.'

    NUMBERS = [MAJOR, MINOR, BUILD, *OTHER]
  end
end
lib64/ruby/2.2.0/rake/private_reader.rb000064400000000554150402106340013346 0ustar00module Rake

  # Include PrivateReader to use +private_reader+.
  module PrivateReader           # :nodoc: all

    def self.included(base)
      base.extend(ClassMethods)
    end

    module ClassMethods

      # Declare a list of private accessors
      def private_reader(*names)
        attr_reader(*names)
        private(*names)
      end
    end

  end
end
lib64/ruby/2.2.0/rake/invocation_exception_mixin.rb000064400000000657150402106340016011 0ustar00module Rake
  module InvocationExceptionMixin
    # Return the invocation chain (list of Rake tasks) that were in
    # effect when this exception was detected by rake.  May be null if
    # no tasks were active.
    def chain
      @rake_invocation_chain ||= nil
    end

    # Set the invocation chain in effect when this exception was
    # detected.
    def chain=(value)
      @rake_invocation_chain = value
    end
  end
end
lib64/ruby/2.2.0/rake/dsl_definition.rb000064400000013222150402106340013340 0ustar00# Rake DSL functions.
require 'rake/file_utils_ext'

module Rake

  ##
  # DSL is a module that provides #task, #desc, #namespace, etc.  Use this
  # when you'd like to use rake outside the top level scope.
  #
  # For a Rakefile you run from the comamnd line this module is automatically
  # included.

  module DSL

    #--
    # Include the FileUtils file manipulation functions in the top
    # level module, but mark them private so that they don't
    # unintentionally define methods on other objects.
    #++

    include FileUtilsExt
    private(*FileUtils.instance_methods(false))
    private(*FileUtilsExt.instance_methods(false))

    private

    # :call-seq:
    #   task task_name
    #   task task_name: dependencies
    #   task task_name, arguments => dependencies
    #   task task_name, argument[, argument ...], :needs: dependencies
    #
    # Declare a basic task.  The +task_name+ is always the first argument.  If
    # the task name contains a ":" it is defined in that namespace.
    #
    # The +dependencies+ may be a single task name or an Array of task names.
    # The +argument+ (a single name) or +arguments+ (an Array of names) define
    # the arguments provided to the task.
    #
    # The task, argument and dependency names may be either symbols or
    # strings.
    #
    # A task with a single dependency:
    #
    #   task clobber: %w[clean] do
    #     rm_rf "html"
    #   end
    #
    # A task with an argument and a dependency:
    #
    #   task :package, [:version] => :test do |t, args|
    #     # ...
    #   end
    #
    # To invoke this task from the command line:
    #
    #   $ rake package[1.2.3]
    #
    # Alternate definition:
    #
    #   task :package, :version, needs: :test do |t, args|
    #     # ...
    #   end
    #
    def task(*args, &block) # :doc:
      Rake::Task.define_task(*args, &block)
    end

    # Declare a file task.
    #
    # Example:
    #   file "config.cfg" => ["config.template"] do
    #     open("config.cfg", "w") do |outfile|
    #       open("config.template") do |infile|
    #         while line = infile.gets
    #           outfile.puts line
    #         end
    #       end
    #     end
    #  end
    #
    def file(*args, &block) # :doc:
      Rake::FileTask.define_task(*args, &block)
    end

    # Declare a file creation task.
    # (Mainly used for the directory command).
    def file_create(*args, &block)
      Rake::FileCreationTask.define_task(*args, &block)
    end

    # Declare a set of files tasks to create the given directories on
    # demand.
    #
    # Example:
    #   directory "testdata/doc"
    #
    def directory(*args, &block) # :doc:
      result = file_create(*args, &block)
      dir, _ = *Rake.application.resolve_args(args)
      dir = Rake.from_pathname(dir)
      Rake.each_dir_parent(dir) do |d|
        file_create d do |t|
          mkdir_p t.name unless File.exist?(t.name)
        end
      end
      result
    end

    # Declare a task that performs its prerequisites in
    # parallel. Multitasks does *not* guarantee that its prerequisites
    # will execute in any given order (which is obvious when you think
    # about it)
    #
    # Example:
    #   multitask deploy: %w[deploy_gem deploy_rdoc]
    #
    def multitask(*args, &block) # :doc:
      Rake::MultiTask.define_task(*args, &block)
    end

    # Create a new rake namespace and use it for evaluating the given
    # block.  Returns a NameSpace object that can be used to lookup
    # tasks defined in the namespace.
    #
    # Example:
    #
    #   ns = namespace "nested" do
    #     # the "nested:run" task
    #     task :run
    #   end
    #   task_run = ns[:run] # find :run in the given namespace.
    #
    # Tasks can also be defined in a namespace by using a ":" in the task
    # name:
    #
    #   task "nested:test" do
    #     # ...
    #   end
    #
    def namespace(name=nil, &block) # :doc:
      name = name.to_s if name.kind_of?(Symbol)
      name = name.to_str if name.respond_to?(:to_str)
      unless name.kind_of?(String) || name.nil?
        raise ArgumentError, "Expected a String or Symbol for a namespace name"
      end
      Rake.application.in_namespace(name, &block)
    end

    # Declare a rule for auto-tasks.
    #
    # Example:
    #  rule '.o' => '.c' do |t|
    #    sh 'cc', '-o', t.name, t.source
    #  end
    #
    def rule(*args, &block) # :doc:
      Rake::Task.create_rule(*args, &block)
    end

    # Describes the next rake task.  Duplicate descriptions are discarded.
    # Descriptions are shown with <code>rake -T</code> (up to the first
    # sentence) and <code>rake -D</code> (the entire description).
    #
    # Example:
    #   desc "Run the Unit Tests"
    #   task test: [:build]
    #     # ... run tests
    #   end
    #
    def desc(description) # :doc:
      Rake.application.last_description = description
    end

    # Import the partial Rakefiles +fn+.  Imported files are loaded
    # _after_ the current file is completely loaded.  This allows the
    # import statement to appear anywhere in the importing file, and yet
    # allowing the imported files to depend on objects defined in the
    # importing file.
    #
    # A common use of the import statement is to include files
    # containing dependency declarations.
    #
    # See also the --rakelibdir command line option.
    #
    # Example:
    #   import ".depend", "my_rules"
    #
    def import(*fns) # :doc:
      fns.each do |fn|
        Rake.application.add_import(fn)
      end
    end
  end
  extend FileUtilsExt
end

# Extend the main object with the DSL commands. This allows top-level
# calls to task, etc. to work from a Rakefile without polluting the
# object inheritance tree.
self.extend Rake::DSL
lib64/ruby/2.2.0/rake/runtest.rb000064400000001122150402106340012046 0ustar00require 'test/unit'
require 'test/unit/assertions'
require 'rake/file_list'

module Rake
  include Test::Unit::Assertions

  ##
  # Deprecated way of running tests in process, but only for Test::Unit.
  #--
  # TODO: Remove in rake 11

  def run_tests(pattern='test/test*.rb', log_enabled=false) # :nodoc:
    FileList.glob(pattern).each do |fn|
      $stderr.puts fn if log_enabled
      begin
        require fn
      rescue Exception => ex
        $stderr.puts "Error in #{fn}: #{ex.message}"
        $stderr.puts ex.backtrace
        assert false
      end
    end
  end

  extend self
end
lib64/ruby/2.2.0/rake/rake_module.rb000064400000001402150402106340012632 0ustar00require 'rake/application'

module Rake

  class << self
    # Current Rake Application
    def application
      @application ||= Rake::Application.new
    end

    # Set the current Rake application object.
    def application=(app)
      @application = app
    end

    def suggested_thread_count # :nodoc:
      @cpu_count ||= Rake::CpuCounter.count
      @cpu_count + 4
    end

    # Return the original directory where the Rake application was started.
    def original_dir
      application.original_dir
    end

    # Load a rakefile.
    def load_rakefile(path)
      load(path)
    end

    # Add files to the rakelib list
    def add_rakelib(*files)
      application.options.rakelib ||= []
      application.options.rakelib.concat(files)
    end
  end

end
lib64/ruby/2.2.0/rake/tasklib.rb000064400000001152150402106340011776 0ustar00require 'rake'

module Rake

  # Base class for Task Libraries.
  class TaskLib
    include Cloneable
    include Rake::DSL

    # Make a symbol by pasting two strings together.
    #
    # NOTE: DEPRECATED! This method is kinda stupid. I don't know why
    # I didn't just use string interpolation. But now other task
    # libraries depend on this so I can't remove it without breaking
    # other people's code. So for now it stays for backwards
    # compatibility. BUT DON'T USE IT.
    #--
    # TODO: Remove in Rake 11
    def paste(a, b)             # :nodoc:
      (a.to_s + b.to_s).intern
    end
  end

end
lib64/ruby/2.2.0/rake/ruby182_test_unit_fix.rb000064400000001601150402106340014524 0ustar00# TODO: Remove in rake 11

# Local Rake override to fix bug in Ruby 0.8.2
module Test                     # :nodoc:
  # Local Rake override to fix bug in Ruby 0.8.2
  module Unit                   # :nodoc:
    # Local Rake override to fix bug in Ruby 0.8.2
    module Collector            # :nodoc:
      # Local Rake override to fix bug in Ruby 0.8.2
      class Dir                 # :nodoc:
        undef collect_file
        def collect_file(name, suites, already_gathered) # :nodoc:
          dir = File.dirname(File.expand_path(name))
          $:.unshift(dir) unless $:.first == dir
          if @req
            @req.require(name)
          else
            require(name)
          end
          find_test_cases(already_gathered).each do |t|
            add_suite(suites, t.suite)
          end
        ensure
          $:.delete_at $:.rindex(dir)
        end
      end
    end
  end
end
lib64/ruby/2.2.0/rake/packagetask.rb000064400000012437150402106340012633 0ustar00# Define a package task library to aid in the definition of
# redistributable package files.

require 'rake'
require 'rake/tasklib'

module Rake

  # Create a packaging task that will package the project into
  # distributable files (e.g zip archive or tar files).
  #
  # The PackageTask will create the following targets:
  #
  # +:package+ ::
  #   Create all the requested package files.
  #
  # +:clobber_package+ ::
  #   Delete all the package files.  This target is automatically
  #   added to the main clobber target.
  #
  # +:repackage+ ::
  #   Rebuild the package files from scratch, even if they are not out
  #   of date.
  #
  # <tt>"<em>package_dir</em>/<em>name</em>-<em>version</em>.tgz"</tt> ::
  #   Create a gzipped tar package (if <em>need_tar</em> is true).
  #
  # <tt>"<em>package_dir</em>/<em>name</em>-<em>version</em>.tar.gz"</tt> ::
  #   Create a gzipped tar package (if <em>need_tar_gz</em> is true).
  #
  # <tt>"<em>package_dir</em>/<em>name</em>-<em>version</em>.tar.bz2"</tt> ::
  #   Create a bzip2'd tar package (if <em>need_tar_bz2</em> is true).
  #
  # <tt>"<em>package_dir</em>/<em>name</em>-<em>version</em>.zip"</tt> ::
  #   Create a zip package archive (if <em>need_zip</em> is true).
  #
  # Example:
  #
  #   Rake::PackageTask.new("rake", "1.2.3") do |p|
  #     p.need_tar = true
  #     p.package_files.include("lib/**/*.rb")
  #   end
  #
  class PackageTask < TaskLib
    # Name of the package (from the GEM Spec).
    attr_accessor :name

    # Version of the package (e.g. '1.3.2').
    attr_accessor :version

    # Directory used to store the package files (default is 'pkg').
    attr_accessor :package_dir

    # True if a gzipped tar file (tgz) should be produced (default is
    # false).
    attr_accessor :need_tar

    # True if a gzipped tar file (tar.gz) should be produced (default
    # is false).
    attr_accessor :need_tar_gz

    # True if a bzip2'd tar file (tar.bz2) should be produced (default
    # is false).
    attr_accessor :need_tar_bz2

    # True if a zip file should be produced (default is false)
    attr_accessor :need_zip

    # List of files to be included in the package.
    attr_accessor :package_files

    # Tar command for gzipped or bzip2ed archives.  The default is 'tar'.
    attr_accessor :tar_command

    # Zip command for zipped archives.  The default is 'zip'.
    attr_accessor :zip_command

    # Create a Package Task with the given name and version.  Use +:noversion+
    # as the version to build a package without a version or to provide a
    # fully-versioned package name.

    def initialize(name=nil, version=nil)
      init(name, version)
      yield self if block_given?
      define unless name.nil?
    end

    # Initialization that bypasses the "yield self" and "define" step.
    def init(name, version)
      @name = name
      @version = version
      @package_files = Rake::FileList.new
      @package_dir = 'pkg'
      @need_tar = false
      @need_tar_gz = false
      @need_tar_bz2 = false
      @need_zip = false
      @tar_command = 'tar'
      @zip_command = 'zip'
    end

    # Create the tasks defined by this task library.
    def define
      fail "Version required (or :noversion)" if @version.nil?
      @version = nil if :noversion == @version

      desc "Build all the packages"
      task :package

      desc "Force a rebuild of the package files"
      task :repackage => [:clobber_package, :package]

      desc "Remove package products"
      task :clobber_package do
        rm_r package_dir rescue nil
      end

      task :clobber => [:clobber_package]

      [
        [need_tar, tgz_file, "z"],
        [need_tar_gz, tar_gz_file, "z"],
        [need_tar_bz2, tar_bz2_file, "j"]
      ].each do |(need, file, flag)|
        if need
          task :package => ["#{package_dir}/#{file}"]
          file "#{package_dir}/#{file}" =>
            [package_dir_path] + package_files do
            chdir(package_dir) do
              sh @tar_command, "#{flag}cvf", file, package_name
            end
          end
        end
      end

      if need_zip
        task :package => ["#{package_dir}/#{zip_file}"]
        file "#{package_dir}/#{zip_file}" =>
          [package_dir_path] + package_files do
          chdir(package_dir) do
            sh @zip_command, "-r", zip_file, package_name
          end
        end
      end

      directory package_dir_path => @package_files do
        @package_files.each do |fn|
          f = File.join(package_dir_path, fn)
          fdir = File.dirname(f)
          mkdir_p(fdir) unless File.exist?(fdir)
          if File.directory?(fn)
            mkdir_p(f)
          else
            rm_f f
            safe_ln(fn, f)
          end
        end
      end
      self
    end

    # The name of this package

    def package_name
      @version ? "#{@name}-#{@version}" : @name
    end

    # The directory this package will be built in

    def package_dir_path
      "#{package_dir}/#{package_name}"
    end

    # The package name with .tgz added

    def tgz_file
      "#{package_name}.tgz"
    end

    # The package name with .tar.gz added

    def tar_gz_file
      "#{package_name}.tar.gz"
    end

    # The package name with .tar.bz2 added

    def tar_bz2_file
      "#{package_name}.tar.bz2"
    end

    # The package name with .zip added

    def zip_file
      "#{package_name}.zip"
    end
  end

end
lib64/ruby/2.2.0/rake/file_creation_task.rb000064400000001236150402106340014175 0ustar00require 'rake/file_task'
require 'rake/early_time'

module Rake

  # A FileCreationTask is a file task that when used as a dependency will be
  # needed if and only if the file has not been created.  Once created, it is
  # not re-triggered if any of its dependencies are newer, nor does trigger
  # any rebuilds of tasks that depend on it whenever it is updated.
  #
  class FileCreationTask < FileTask
    # Is this file task needed?  Yes if it doesn't exist.
    def needed?
      ! File.exist?(name)
    end

    # Time stamp for file creation task.  This time stamp is earlier
    # than any other time stamp.
    def timestamp
      Rake::EARLY
    end
  end

end
lib64/ruby/2.2.0/rake/invocation_chain.rb000064400000002240150402106340013657 0ustar00module Rake

  # InvocationChain tracks the chain of task invocations to detect
  # circular dependencies.
  class InvocationChain < LinkedList

    # Is the invocation already in the chain?
    def member?(invocation)
      head == invocation || tail.member?(invocation)
    end

    # Append an invocation to the chain of invocations. It is an error
    # if the invocation already listed.
    def append(invocation)
      if member?(invocation)
        fail RuntimeError, "Circular dependency detected: #{to_s} => #{invocation}"
      end
      conj(invocation)
    end

    # Convert to string, ie: TOP => invocation => invocation
    def to_s
      "#{prefix}#{head}"
    end

    # Class level append.
    def self.append(invocation, chain)
      chain.append(invocation)
    end

    private

    def prefix
      "#{tail} => "
    end

    # Null object for an empty chain.
    class EmptyInvocationChain < LinkedList::EmptyLinkedList
      @parent = InvocationChain

      def member?(obj)
        false
      end

      def append(invocation)
        conj(invocation)
      end

      def to_s
        "TOP"
      end
    end

    EMPTY = EmptyInvocationChain.new
  end
end
lib64/ruby/2.2.0/rake/application.rb000064400000056222150402106340012660 0ustar00require 'shellwords'
require 'optparse'

require 'rake/task_manager'
require 'rake/file_list'
require 'rake/thread_pool'
require 'rake/thread_history_display'
require 'rake/trace_output'
require 'rake/win32'

module Rake

  CommandLineOptionError = Class.new(StandardError)

  ##
  # Rake main application object.  When invoking +rake+ from the
  # command line, a Rake::Application object is created and run.

  class Application
    include TaskManager
    include TraceOutput

    # The name of the application (typically 'rake')
    attr_reader :name

    # The original directory where rake was invoked.
    attr_reader :original_dir

    # Name of the actual rakefile used.
    attr_reader :rakefile

    # Number of columns on the terminal
    attr_accessor :terminal_columns

    # List of the top level task names (task names from the command line).
    attr_reader :top_level_tasks

    DEFAULT_RAKEFILES = [
      'rakefile',
      'Rakefile',
      'rakefile.rb',
      'Rakefile.rb'
    ].freeze

    # Initialize a Rake::Application object.
    def initialize
      super
      @name = 'rake'
      @rakefiles = DEFAULT_RAKEFILES.dup
      @rakefile = nil
      @pending_imports = []
      @imported = []
      @loaders = {}
      @default_loader = Rake::DefaultLoader.new
      @original_dir = Dir.pwd
      @top_level_tasks = []
      add_loader('rb', DefaultLoader.new)
      add_loader('rf', DefaultLoader.new)
      add_loader('rake', DefaultLoader.new)
      @tty_output = STDOUT.tty?
      @terminal_columns = ENV['RAKE_COLUMNS'].to_i
    end

    # Run the Rake application.  The run method performs the following
    # three steps:
    #
    # * Initialize the command line options (+init+).
    # * Define the tasks (+load_rakefile+).
    # * Run the top level tasks (+top_level+).
    #
    # If you wish to build a custom rake command, you should call
    # +init+ on your application.  Then define any tasks.  Finally,
    # call +top_level+ to run your top level tasks.
    def run
      standard_exception_handling do
        init
        load_rakefile
        top_level
      end
    end

    # Initialize the command line parameters and app name.
    def init(app_name='rake')
      standard_exception_handling do
        @name = app_name
        args = handle_options
        collect_command_line_tasks(args)
      end
    end

    # Find the rakefile and then load it and any pending imports.
    def load_rakefile
      standard_exception_handling do
        raw_load_rakefile
      end
    end

    # Run the top level tasks of a Rake application.
    def top_level
      run_with_threads do
        if options.show_tasks
          display_tasks_and_comments
        elsif options.show_prereqs
          display_prerequisites
        else
          top_level_tasks.each { |task_name| invoke_task(task_name) }
        end
      end
    end

    # Run the given block with the thread startup and shutdown.
    def run_with_threads
      thread_pool.gather_history if options.job_stats == :history

      yield

      thread_pool.join
      if options.job_stats
        stats = thread_pool.statistics
        puts "Maximum active threads: #{stats[:max_active_threads]} + main"
        puts "Total threads in play:  #{stats[:total_threads_in_play]} + main"
      end
      ThreadHistoryDisplay.new(thread_pool.history).show if
        options.job_stats == :history
    end

    # Add a loader to handle imported files ending in the extension
    # +ext+.
    def add_loader(ext, loader)
      ext = ".#{ext}" unless ext =~ /^\./
      @loaders[ext] = loader
    end

    # Application options from the command line
    def options
      @options ||= OpenStruct.new
    end

    # Return the thread pool used for multithreaded processing.
    def thread_pool             # :nodoc:
      @thread_pool ||= ThreadPool.new(options.thread_pool_size || Rake.suggested_thread_count-1)
    end

    # internal ----------------------------------------------------------------

    # Invokes a task with arguments that are extracted from +task_string+
    def invoke_task(task_string) # :nodoc:
      name, args = parse_task_string(task_string)
      t = self[name]
      t.invoke(*args)
    end

    def parse_task_string(string) # :nodoc:
      /^([^\[]+)(?:\[(.*)\])$/ =~ string.to_s

      name           = $1
      remaining_args = $2

      return string, [] unless name
      return name,   [] if     remaining_args.empty?

      args = []

      begin
        /((?:[^\\,]|\\.)*?)\s*(?:,\s*(.*))?$/ =~ remaining_args

        remaining_args = $2
        args << $1.gsub(/\\(.)/, '\1')
      end while remaining_args

      return name, args
    end

    # Provide standard exception handling for the given block.
    def standard_exception_handling # :nodoc:
      yield
    rescue SystemExit
      # Exit silently with current status
      raise
    rescue OptionParser::InvalidOption => ex
      $stderr.puts ex.message
      exit(false)
    rescue Exception => ex
      # Exit with error message
      display_error_message(ex)
      exit_because_of_exception(ex)
    end

    # Exit the program because of an unhandle exception.
    # (may be overridden by subclasses)
    def exit_because_of_exception(ex) # :nodoc:
      exit(false)
    end

    # Display the error message that caused the exception.
    def display_error_message(ex) # :nodoc:
      trace "#{name} aborted!"
      display_exception_details(ex)
      trace "Tasks: #{ex.chain}" if has_chain?(ex)
      trace "(See full trace by running task with --trace)" unless
         options.backtrace
    end

    def display_exception_details(ex) # :nodoc:
      seen = Thread.current[:rake_display_exception_details_seen] ||= []
      return if seen.include? ex
      seen << ex

      display_exception_message_details(ex)
      display_exception_backtrace(ex)
      display_exception_details(ex.cause) if has_cause?(ex)
    end

    def has_cause?(ex) # :nodoc:
      ex.respond_to?(:cause) && ex.cause
    end

    def display_exception_message_details(ex) # :nodoc:
      if ex.instance_of?(RuntimeError)
        trace ex.message
      else
        trace "#{ex.class.name}: #{ex.message}"
      end
    end

    def display_exception_backtrace(ex) # :nodoc:
      if options.backtrace
        trace ex.backtrace.join("\n")
      else
        trace Backtrace.collapse(ex.backtrace).join("\n")
      end
    end

    # Warn about deprecated usage.
    #
    # Example:
    #    Rake.application.deprecate("import", "Rake.import", caller.first)
    #
    def deprecate(old_usage, new_usage, call_site) # :nodoc:
      unless options.ignore_deprecate
        $stderr.puts "WARNING: '#{old_usage}' is deprecated.  " +
          "Please use '#{new_usage}' instead.\n" +
          "    at #{call_site}"
      end
    end

    # Does the exception have a task invocation chain?
    def has_chain?(exception) # :nodoc:
      exception.respond_to?(:chain) && exception.chain
    end
    private :has_chain?

    # True if one of the files in RAKEFILES is in the current directory.
    # If a match is found, it is copied into @rakefile.
    def have_rakefile # :nodoc:
      @rakefiles.each do |fn|
        if File.exist?(fn)
          others = FileList.glob(fn, File::FNM_CASEFOLD)
          return others.size == 1 ? others.first : fn
        elsif fn == ''
          return fn
        end
      end
      return nil
    end

    # True if we are outputting to TTY, false otherwise
    def tty_output? # :nodoc:
      @tty_output
    end

    # Override the detected TTY output state (mostly for testing)
    def tty_output=(tty_output_state) # :nodoc:
      @tty_output = tty_output_state
    end

    # We will truncate output if we are outputting to a TTY or if we've been
    # given an explicit column width to honor
    def truncate_output? # :nodoc:
      tty_output? || @terminal_columns.nonzero?
    end

    # Display the tasks and comments.
    def display_tasks_and_comments # :nodoc:
      displayable_tasks = tasks.select { |t|
        (options.show_all_tasks || t.comment) &&
          t.name =~ options.show_task_pattern
      }
      case options.show_tasks
      when :tasks
        width = displayable_tasks.map { |t| t.name_with_args.length }.max || 10
        if truncate_output?
          max_column = terminal_width - name.size - width - 7
        else
          max_column = nil
        end

        displayable_tasks.each do |t|
          printf("#{name} %-#{width}s  # %s\n",
            t.name_with_args,
            max_column ? truncate(t.comment, max_column) : t.comment)
        end
      when :describe
        displayable_tasks.each do |t|
          puts "#{name} #{t.name_with_args}"
          comment = t.full_comment || ""
          comment.split("\n").each do |line|
            puts "    #{line}"
          end
          puts
        end
      when :lines
        displayable_tasks.each do |t|
          t.locations.each do |loc|
            printf "#{name} %-30s %s\n", t.name_with_args, loc
          end
        end
      else
        fail "Unknown show task mode: '#{options.show_tasks}'"
      end
    end

    def terminal_width # :nodoc:
      if @terminal_columns.nonzero?
        result = @terminal_columns
      else
        result = unix? ? dynamic_width : 80
      end
      (result < 10) ? 80 : result
    rescue
      80
    end

    # Calculate the dynamic width of the
    def dynamic_width # :nodoc:
      @dynamic_width ||= (dynamic_width_stty.nonzero? || dynamic_width_tput)
    end

    def dynamic_width_stty # :nodoc:
      %x{stty size 2>/dev/null}.split[1].to_i
    end

    def dynamic_width_tput # :nodoc:
      %x{tput cols 2>/dev/null}.to_i
    end

    def unix? # :nodoc:
      RbConfig::CONFIG['host_os'] =~
        /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i
    end

    def windows? # :nodoc:
      Win32.windows?
    end

    def truncate(string, width) # :nodoc:
      if string.nil?
        ""
      elsif string.length <= width
        string
      else
        (string[0, width - 3] || "") + "..."
      end
    end

    # Display the tasks and prerequisites
    def display_prerequisites # :nodoc:
      tasks.each do |t|
        puts "#{name} #{t.name}"
        t.prerequisites.each { |pre| puts "    #{pre}" }
      end
    end

    def trace(*strings) # :nodoc:
      options.trace_output ||= $stderr
      trace_on(options.trace_output, *strings)
    end

    def sort_options(options) # :nodoc:
      options.sort_by { |opt|
        opt.select { |o| o =~ /^-/ }.map { |o| o.downcase }.sort.reverse
      }
    end
    private :sort_options

    # A list of all the standard options used in rake, suitable for
    # passing to OptionParser.
    def standard_rake_options # :nodoc:
      sort_options(
        [
          ['--all', '-A',
            "Show all tasks, even uncommented ones (in combination with -T or -D)",
            lambda { |value|
              options.show_all_tasks = value
            }
          ],
          ['--backtrace=[OUT]',
            "Enable full backtrace.  OUT can be stderr (default) or stdout.",
            lambda { |value|
              options.backtrace = true
              select_trace_output(options, 'backtrace', value)
            }
          ],
          ['--build-all', '-B',
           "Build all prerequisites, including those which are up-to-date.",
           lambda { |value|
             options.build_all = true
           }
          ],
          ['--comments',
            "Show commented tasks only",
            lambda { |value|
              options.show_all_tasks = !value
            }
          ],
          ['--describe', '-D [PATTERN]',
            "Describe the tasks (matching optional PATTERN), then exit.",
            lambda { |value|
              select_tasks_to_show(options, :describe, value)
            }
          ],
          ['--dry-run', '-n',
            "Do a dry run without executing actions.",
            lambda { |value|
              Rake.verbose(true)
              Rake.nowrite(true)
              options.dryrun = true
              options.trace = true
            }
          ],
          ['--execute', '-e CODE',
            "Execute some Ruby code and exit.",
            lambda { |value|
              eval(value)
              exit
            }
          ],
          ['--execute-print', '-p CODE',
            "Execute some Ruby code, print the result, then exit.",
            lambda { |value|
              puts eval(value)
              exit
            }
          ],
          ['--execute-continue',  '-E CODE',
            "Execute some Ruby code, " +
            "then continue with normal task processing.",
            lambda { |value| eval(value) }
          ],
          ['--jobs',  '-j [NUMBER]',
            "Specifies the maximum number of tasks to execute in parallel. " +
            "(default is number of CPU cores + 4)",
            lambda { |value|
              if value.nil? || value == ''
                value = FIXNUM_MAX
              elsif value =~ /^\d+$/
                value = value.to_i
              else
                value = Rake.suggested_thread_count
              end
              value = 1 if value < 1
              options.thread_pool_size = value - 1
            }
          ],
          ['--job-stats [LEVEL]',
            "Display job statistics. " +
            "LEVEL=history displays a complete job list",
            lambda { |value|
              if value =~ /^history/i
                options.job_stats = :history
              else
                options.job_stats = true
              end
            }
          ],
          ['--libdir', '-I LIBDIR',
            "Include LIBDIR in the search path for required modules.",
            lambda { |value| $:.push(value) }
          ],
          ['--multitask', '-m',
            "Treat all tasks as multitasks.",
            lambda { |value| options.always_multitask = true }
          ],
          ['--no-search', '--nosearch',
            '-N', "Do not search parent directories for the Rakefile.",
            lambda { |value| options.nosearch = true }
          ],
          ['--prereqs', '-P',
            "Display the tasks and dependencies, then exit.",
            lambda { |value| options.show_prereqs = true }
          ],
          ['--quiet', '-q',
            "Do not log messages to standard output.",
            lambda { |value| Rake.verbose(false) }
          ],
          ['--rakefile', '-f [FILENAME]',
            "Use FILENAME as the rakefile to search for.",
            lambda { |value|
              value ||= ''
              @rakefiles.clear
              @rakefiles << value
            }
          ],
          ['--rakelibdir', '--rakelib', '-R RAKELIBDIR',
            "Auto-import any .rake files in RAKELIBDIR. " +
            "(default is 'rakelib')",
            lambda { |value|
              options.rakelib = value.split(File::PATH_SEPARATOR)
            }
          ],
          ['--require', '-r MODULE',
            "Require MODULE before executing rakefile.",
            lambda { |value|
              begin
                require value
              rescue LoadError => ex
                begin
                  rake_require value
                rescue LoadError
                  raise ex
                end
              end
            }
          ],
          ['--rules',
            "Trace the rules resolution.",
            lambda { |value| options.trace_rules = true }
          ],
          ['--silent', '-s',
            "Like --quiet, but also suppresses the " +
            "'in directory' announcement.",
            lambda { |value|
              Rake.verbose(false)
              options.silent = true
            }
          ],
          ['--suppress-backtrace PATTERN',
            "Suppress backtrace lines matching regexp PATTERN. " +
            "Ignored if --trace is on.",
            lambda { |value|
              options.suppress_backtrace_pattern = Regexp.new(value)
            }
          ],
          ['--system',  '-g',
            "Using system wide (global) rakefiles " +
            "(usually '~/.rake/*.rake').",
            lambda { |value| options.load_system = true }
          ],
          ['--no-system', '--nosystem', '-G',
            "Use standard project Rakefile search paths, " +
            "ignore system wide rakefiles.",
            lambda { |value| options.ignore_system = true }
          ],
          ['--tasks', '-T [PATTERN]',
            "Display the tasks (matching optional PATTERN) " +
            "with descriptions, then exit.",
            lambda { |value|
              select_tasks_to_show(options, :tasks, value)
            }
          ],
          ['--trace=[OUT]', '-t',
            "Turn on invoke/execute tracing, enable full backtrace. " +
            "OUT can be stderr (default) or stdout.",
            lambda { |value|
              options.trace = true
              options.backtrace = true
              select_trace_output(options, 'trace', value)
              Rake.verbose(true)
            }
          ],
          ['--verbose', '-v',
            "Log message to standard output.",
            lambda { |value| Rake.verbose(true) }
          ],
          ['--version', '-V',
            "Display the program version.",
            lambda { |value|
              puts "rake, version #{RAKEVERSION}"
              exit
            }
          ],
          ['--where', '-W [PATTERN]',
            "Describe the tasks (matching optional PATTERN), then exit.",
            lambda { |value|
              select_tasks_to_show(options, :lines, value)
              options.show_all_tasks = true
            }
          ],
          ['--no-deprecation-warnings', '-X',
            "Disable the deprecation warnings.",
            lambda { |value|
              options.ignore_deprecate = true
            }
          ],
        ])
    end

    def select_tasks_to_show(options, show_tasks, value) # :nodoc:
      options.show_tasks = show_tasks
      options.show_task_pattern = Regexp.new(value || '')
      Rake::TaskManager.record_task_metadata = true
    end
    private :select_tasks_to_show

    def select_trace_output(options, trace_option, value) # :nodoc:
      value = value.strip unless value.nil?
      case value
      when 'stdout'
        options.trace_output = $stdout
      when 'stderr', nil
        options.trace_output = $stderr
      else
        fail CommandLineOptionError,
          "Unrecognized --#{trace_option} option '#{value}'"
      end
    end
    private :select_trace_output

    # Read and handle the command line options.  Returns the command line
    # arguments that we didn't understand, which should (in theory) be just
    # task names and env vars.
    def handle_options # :nodoc:
      options.rakelib = ['rakelib']
      options.trace_output = $stderr

      OptionParser.new do |opts|
        opts.banner = "#{Rake.application.name} [-f rakefile] {options} targets..."
        opts.separator ""
        opts.separator "Options are ..."

        opts.on_tail("-h", "--help", "-H", "Display this help message.") do
          puts opts
          exit
        end

        standard_rake_options.each { |args| opts.on(*args) }
        opts.environment('RAKEOPT')
      end.parse(ARGV)
    end

    # Similar to the regular Ruby +require+ command, but will check
    # for *.rake files in addition to *.rb files.
    def rake_require(file_name, paths=$LOAD_PATH, loaded=$") # :nodoc:
      fn = file_name + ".rake"
      return false if loaded.include?(fn)
      paths.each do |path|
        full_path = File.join(path, fn)
        if File.exist?(full_path)
          Rake.load_rakefile(full_path)
          loaded << fn
          return true
        end
      end
      fail LoadError, "Can't find #{file_name}"
    end

    def find_rakefile_location # :nodoc:
      here = Dir.pwd
      until (fn = have_rakefile)
        Dir.chdir("..")
        return nil if Dir.pwd == here || options.nosearch
        here = Dir.pwd
      end
      [fn, here]
    ensure
      Dir.chdir(Rake.original_dir)
    end

    def print_rakefile_directory(location) # :nodoc:
      $stderr.puts "(in #{Dir.pwd})" unless
        options.silent or original_dir == location
    end

    def raw_load_rakefile # :nodoc:
      rakefile, location = find_rakefile_location
      if (! options.ignore_system) &&
          (options.load_system || rakefile.nil?) &&
          system_dir && File.directory?(system_dir)
        print_rakefile_directory(location)
        glob("#{system_dir}/*.rake") do |name|
          add_import name
        end
      else
        fail "No Rakefile found (looking for: #{@rakefiles.join(', ')})" if
          rakefile.nil?
        @rakefile = rakefile
        Dir.chdir(location)
        print_rakefile_directory(location)
        Rake.load_rakefile(File.expand_path(@rakefile)) if
          @rakefile && @rakefile != ''
        options.rakelib.each do |rlib|
          glob("#{rlib}/*.rake") do |name|
            add_import name
          end
        end
      end
      load_imports
    end

    def glob(path, &block) # :nodoc:
      FileList.glob(path.gsub("\\", '/')).each(&block)
    end
    private :glob

    # The directory path containing the system wide rakefiles.
    def system_dir # :nodoc:
      @system_dir ||=
        begin
          if ENV['RAKE_SYSTEM']
            ENV['RAKE_SYSTEM']
          else
            standard_system_dir
          end
        end
    end

    # The standard directory containing system wide rake files.
    if Win32.windows?
      def standard_system_dir #:nodoc:
        Win32.win32_system_dir
      end
    else
      def standard_system_dir #:nodoc:
        File.join(File.expand_path('~'), '.rake')
      end
    end
    private :standard_system_dir

    # Collect the list of tasks on the command line.  If no tasks are
    # given, return a list containing only the default task.
    # Environmental assignments are processed at this time as well.
    #
    # `args` is the list of arguments to peruse to get the list of tasks.
    # It should be the command line that was given to rake, less any
    # recognised command-line options, which OptionParser.parse will
    # have taken care of already.
    def collect_command_line_tasks(args) # :nodoc:
      @top_level_tasks = []
      args.each do |arg|
        if arg =~ /^(\w+)=(.*)$/m
          ENV[$1] = $2
        else
          @top_level_tasks << arg unless arg =~ /^-/
        end
      end
      @top_level_tasks.push(default_task_name) if @top_level_tasks.empty?
    end

    # Default task name ("default").
    # (May be overridden by subclasses)
    def default_task_name # :nodoc:
      "default"
    end

    # Add a file to the list of files to be imported.
    def add_import(fn) # :nodoc:
      @pending_imports << fn
    end

    # Load the pending list of imported files.
    def load_imports # :nodoc:
      while fn = @pending_imports.shift
        next if @imported.member?(fn)
        fn_task = lookup(fn) and fn_task.invoke
        ext = File.extname(fn)
        loader = @loaders[ext] || @default_loader
        loader.load(fn)
        if fn_task = lookup(fn) and fn_task.needed?
          fn_task.reenable
          fn_task.invoke
          loader.load(fn)
        end
        @imported << fn
      end
    end

    def rakefile_location(backtrace=caller) # :nodoc:
      backtrace.map { |t| t[/([^:]+):/, 1] }

      re = /^#{@rakefile}$/
      re = /#{re.source}/i if windows?

      backtrace.find { |str| str =~ re } || ''
    end

  private
    FIXNUM_MAX = (2**(0.size * 8 - 2) - 1) # :nodoc:

  end
end
lib64/ruby/2.2.0/rake/multi_task.rb000064400000000473150402106340012526 0ustar00module Rake

  # Same as a regular task, but the immediate prerequisites are done in
  # parallel using Ruby threads.
  #
  class MultiTask < Task
    private
    def invoke_prerequisites(task_args, invocation_chain) # :nodoc:
      invoke_prerequisites_concurrently(task_args, invocation_chain)
    end
  end

end
lib64/ruby/2.2.0/rake/ext/pathname.rb000064400000001207150402106340012743 0ustar00require 'rake/ext/core'
require 'pathname'

class Pathname

  rake_extension("ext") do
    # Return a new Pathname with <tt>String#ext</tt> applied to it.
    #
    # This Pathname extension comes from Rake
    def ext(newext='')
      Pathname.new(Rake.from_pathname(self).ext(newext))
    end
  end

  rake_extension("pathmap") do
    # Apply the pathmap spec to the Pathname, returning a
    # new Pathname with the modified paths.  (See String#pathmap for
    # details.)
    #
    # This Pathname extension comes from Rake
    def pathmap(spec=nil, &block)
      Pathname.new(Rake.from_pathname(self).pathmap(spec, &block))
    end
  end
end
lib64/ruby/2.2.0/rake/ext/string.rb000064400000013506150402106340012461 0ustar00require 'rake/ext/core'

class String

  rake_extension("ext") do
    # Replace the file extension with +newext+.  If there is no extension on
    # the string, append the new extension to the end.  If the new extension
    # is not given, or is the empty string, remove any existing extension.
    #
    # +ext+ is a user added method for the String class.
    #
    # This String extension comes from Rake
    def ext(newext='')
      return self.dup if ['.', '..'].include? self
      newext = (newext =~ /^\./) ? newext : ("." + newext) if newext != ''
      self.chomp(File.extname(self)) << newext
    end
  end

  rake_extension("pathmap") do
    # Explode a path into individual components.  Used by +pathmap+.
    #
    # This String extension comes from Rake
    def pathmap_explode
      head, tail = File.split(self)
      return [self] if head == self
      return [tail] if head == '.' || tail == '/'
      return [head, tail] if head == '/'
      return head.pathmap_explode + [tail]
    end
    protected :pathmap_explode

    # Extract a partial path from the path.  Include +n+ directories from the
    # front end (left hand side) if +n+ is positive.  Include |+n+|
    # directories from the back end (right hand side) if +n+ is negative.
    #
    # This String extension comes from Rake
    def pathmap_partial(n)
      dirs = File.dirname(self).pathmap_explode
      partial_dirs =
        if n > 0
          dirs[0...n]
        elsif n < 0
          dirs.reverse[0...-n].reverse
        else
          "."
        end
      File.join(partial_dirs)
    end
    protected :pathmap_partial

    # Perform the pathmap replacement operations on the given path. The
    # patterns take the form 'pat1,rep1;pat2,rep2...'.
    #
    # This String extension comes from Rake
    def pathmap_replace(patterns, &block)
      result = self
      patterns.split(';').each do |pair|
        pattern, replacement = pair.split(',')
        pattern = Regexp.new(pattern)
        if replacement == '*' && block_given?
          result = result.sub(pattern, &block)
        elsif replacement
          result = result.sub(pattern, replacement)
        else
          result = result.sub(pattern, '')
        end
      end
      result
    end
    protected :pathmap_replace

    # Map the path according to the given specification.  The specification
    # controls the details of the mapping.  The following special patterns are
    # recognized:
    #
    # <tt>%p</tt> :: The complete path.
    # <tt>%f</tt> :: The base file name of the path, with its file extension,
    #                but without any directories.
    # <tt>%n</tt> :: The file name of the path without its file extension.
    # <tt>%d</tt> :: The directory list of the path.
    # <tt>%x</tt> :: The file extension of the path.  An empty string if there
    #                is no extension.
    # <tt>%X</tt> :: Everything *but* the file extension.
    # <tt>%s</tt> :: The alternate file separator if defined, otherwise use #
    #                the standard file separator.
    # <tt>%%</tt> :: A percent sign.
    #
    # The <tt>%d</tt> specifier can also have a numeric prefix (e.g. '%2d').
    # If the number is positive, only return (up to) +n+ directories in the
    # path, starting from the left hand side.  If +n+ is negative, return (up
    # to) +n+ directories from the right hand side of the path.
    #
    # Examples:
    #
    #   'a/b/c/d/file.txt'.pathmap("%2d")   => 'a/b'
    #   'a/b/c/d/file.txt'.pathmap("%-2d")  => 'c/d'
    #
    # Also the <tt>%d</tt>, <tt>%p</tt>, <tt>%f</tt>, <tt>%n</tt>,
    # <tt>%x</tt>, and <tt>%X</tt> operators can take a pattern/replacement
    # argument to perform simple string substitutions on a particular part of
    # the path.  The pattern and replacement are separated by a comma and are
    # enclosed by curly braces.  The replacement spec comes after the %
    # character but before the operator letter.  (e.g. "%{old,new}d").
    # Multiple replacement specs should be separated by semi-colons (e.g.
    # "%{old,new;src,bin}d").
    #
    # Regular expressions may be used for the pattern, and back refs may be
    # used in the replacement text.  Curly braces, commas and semi-colons are
    # excluded from both the pattern and replacement text (let's keep parsing
    # reasonable).
    #
    # For example:
    #
    #    "src/org/onestepback/proj/A.java".pathmap("%{^src,class}X.class")
    #
    # returns:
    #
    #    "class/org/onestepback/proj/A.class"
    #
    # If the replacement text is '*', then a block may be provided to perform
    # some arbitrary calculation for the replacement.
    #
    # For example:
    #
    #   "/path/to/file.TXT".pathmap("%X%{.*,*}x") { |ext|
    #      ext.downcase
    #   }
    #
    # Returns:
    #
    #  "/path/to/file.txt"
    #
    # This String extension comes from Rake
    def pathmap(spec=nil, &block)
      return self if spec.nil?
      result = ''
      spec.scan(/%\{[^}]*\}-?\d*[sdpfnxX%]|%-?\d+d|%.|[^%]+/) do |frag|
        case frag
        when '%f'
          result << File.basename(self)
        when '%n'
          result << File.basename(self).ext
        when '%d'
          result << File.dirname(self)
        when '%x'
          result << File.extname(self)
        when '%X'
          result << self.ext
        when '%p'
          result << self
        when '%s'
          result << (File::ALT_SEPARATOR || File::SEPARATOR)
        when '%-'
          # do nothing
        when '%%'
          result << "%"
        when /%(-?\d+)d/
          result << pathmap_partial($1.to_i)
        when /^%\{([^}]*)\}(\d*[dpfnxX])/
          patterns, operator = $1, $2
          result << pathmap('%' + operator).pathmap_replace(patterns, &block)
        when /^%/
          fail ArgumentError, "Unknown pathmap specifier #{frag} in '#{spec}'"
        else
          result << frag
        end
      end
      result
    end
  end

end
lib64/ruby/2.2.0/rake/ext/module.rb000064400000000033150402106340012427 0ustar00
# TODO: remove in Rake 11
lib64/ruby/2.2.0/rake/ext/time.rb000064400000000557150402106340012113 0ustar00#--
# Extensions to time to allow comparisons with early and late time classes.

require 'rake/early_time'
require 'rake/late_time'

class Time # :nodoc: all
  alias rake_original_time_compare :<=>
  def <=>(other)
    if Rake::EarlyTime === other || Rake::LateTime === other
      - other.<=>(self)
    else
      rake_original_time_compare(other)
    end
  end
end
lib64/ruby/2.2.0/rake/ext/core.rb000064400000001176150402106340012103 0ustar00class Module
  # Check for an existing method in the current class before extending.  If
  # the method already exists, then a warning is printed and the extension is
  # not added.  Otherwise the block is yielded and any definitions in the
  # block will take effect.
  #
  # Usage:
  #
  #   class String
  #     rake_extension("xyz") do
  #       def xyz
  #         ...
  #       end
  #     end
  #   end
  #
  def rake_extension(method) # :nodoc:
    if method_defined?(method)
      $stderr.puts "WARNING: Possible conflict with Rake extension: " +
        "#{self}##{method} already exists"
    else
      yield
    end
  end
end
lib64/ruby/2.2.0/rake/gempackagetask.rb000064400000000220150402106340013307 0ustar00# TODO: Remove in Rake 11

fail "ERROR: 'rake/gempackagetask' is obsolete and no longer supported. " +
  "Use 'rubygems/package_task' instead."
lib64/ruby/2.2.0/rake/thread_pool.rb000064400000011433150402106340012650 0ustar00require 'thread'
require 'set'

require 'rake/promise'

module Rake

  class ThreadPool # :nodoc: all

    # Creates a ThreadPool object.  The +thread_count+ parameter is the size
    # of the pool.
    def initialize(thread_count)
      @max_active_threads = [thread_count, 0].max
      @threads = Set.new
      @threads_mon = Monitor.new
      @queue = Queue.new
      @join_cond = @threads_mon.new_cond

      @history_start_time = nil
      @history = []
      @history_mon = Monitor.new
      @total_threads_in_play = 0
    end

    # Creates a future executed by the +ThreadPool+.
    #
    # The args are passed to the block when executing (similarly to
    # Thread#new) The return value is an object representing
    # a future which has been created and added to the queue in the
    # pool. Sending #value to the object will sleep the
    # current thread until the future is finished and will return the
    # result (or raise an exception thrown from the future)
    def future(*args, &block)
      promise = Promise.new(args, &block)
      promise.recorder = lambda { |*stats| stat(*stats) }

      @queue.enq promise
      stat :queued, :item_id => promise.object_id
      start_thread
      promise
    end

    # Waits until the queue of futures is empty and all threads have exited.
    def join
      @threads_mon.synchronize do
        begin
          stat :joining
          @join_cond.wait unless @threads.empty?
          stat :joined
        rescue Exception => e
          stat :joined
          $stderr.puts e
          $stderr.print "Queue contains #{@queue.size} items. " +
            "Thread pool contains #{@threads.count} threads\n"
          $stderr.print "Current Thread #{Thread.current} status = " +
            "#{Thread.current.status}\n"
          $stderr.puts e.backtrace.join("\n")
          @threads.each do |t|
            $stderr.print "Thread #{t} status = #{t.status}\n"
            # 1.8 doesn't support Thread#backtrace
            $stderr.puts t.backtrace.join("\n") if t.respond_to? :backtrace
          end
          raise e
        end
      end
    end

    # Enable the gathering of history events.
    def gather_history          #:nodoc:
      @history_start_time = Time.now if @history_start_time.nil?
    end

    # Return a array of history events for the thread pool.
    #
    # History gathering must be enabled to be able to see the events
    # (see #gather_history). Best to call this when the job is
    # complete (i.e. after ThreadPool#join is called).
    def history                 # :nodoc:
      @history_mon.synchronize { @history.dup }.
        sort_by { |i| i[:time] }.
        each { |i| i[:time] -= @history_start_time }
    end

    # Return a hash of always collected statistics for the thread pool.
    def statistics              #  :nodoc:
      {
        :total_threads_in_play => @total_threads_in_play,
        :max_active_threads => @max_active_threads,
      }
    end

    private

    # processes one item on the queue. Returns true if there was an
    # item to process, false if there was no item
    def process_queue_item      #:nodoc:
      return false if @queue.empty?

      # Even though we just asked if the queue was empty, it
      # still could have had an item which by this statement
      # is now gone. For this reason we pass true to Queue#deq
      # because we will sleep indefinitely if it is empty.
      promise = @queue.deq(true)
      stat :dequeued, :item_id => promise.object_id
      promise.work
      return true

      rescue ThreadError # this means the queue is empty
      false
    end

    def safe_thread_count
      @threads_mon.synchronize do
        @threads.count
      end
    end

    def start_thread # :nodoc:
      @threads_mon.synchronize do
        next unless @threads.count < @max_active_threads

        t = Thread.new do
          begin
            while safe_thread_count <= @max_active_threads
              break unless process_queue_item
            end
          ensure
            @threads_mon.synchronize do
              @threads.delete Thread.current
              stat :ended, :thread_count => @threads.count
              @join_cond.broadcast if @threads.empty?
            end
          end
        end

        @threads << t
        stat(
          :spawned,
          :new_thread   => t.object_id,
          :thread_count => @threads.count)
        @total_threads_in_play = @threads.count if
          @threads.count > @total_threads_in_play
      end
    end

    def stat(event, data=nil) # :nodoc:
      return if @history_start_time.nil?
      info = {
        :event  => event,
        :data   => data,
        :time   => Time.now,
        :thread => Thread.current.object_id,
      }
      @history_mon.synchronize { @history << info }
    end

    # for testing only

    def __queue__ # :nodoc:
      @queue
    end
  end

end
lib64/ruby/2.2.0/rake/testtask.rb000064400000013062150402106340012212 0ustar00require 'rake'
require 'rake/tasklib'

module Rake

  # Create a task that runs a set of tests.
  #
  # Example:
  #
  #   Rake::TestTask.new do |t|
  #     t.libs << "test"
  #     t.test_files = FileList['test/test*.rb']
  #     t.verbose = true
  #   end
  #
  # If rake is invoked with a "TEST=filename" command line option,
  # then the list of test files will be overridden to include only the
  # filename specified on the command line.  This provides an easy way
  # to run just one test.
  #
  # If rake is invoked with a "TESTOPTS=options" command line option,
  # then the given options are passed to the test process after a
  # '--'.  This allows Test::Unit options to be passed to the test
  # suite.
  #
  # Examples:
  #
  #   rake test                           # run tests normally
  #   rake test TEST=just_one_file.rb     # run just one test file.
  #   rake test TESTOPTS="-v"             # run in verbose mode
  #   rake test TESTOPTS="--runner=fox"   # use the fox test runner
  #
  class TestTask < TaskLib

    # Name of test task. (default is :test)
    attr_accessor :name

    # List of directories to added to $LOAD_PATH before running the
    # tests. (default is 'lib')
    attr_accessor :libs

    # True if verbose test output desired. (default is false)
    attr_accessor :verbose

    # Test options passed to the test suite.  An explicit
    # TESTOPTS=opts on the command line will override this. (default
    # is NONE)
    attr_accessor :options

    # Request that the tests be run with the warning flag set.
    # E.g. warning=true implies "ruby -w" used to run the tests.
    attr_accessor :warning

    # Glob pattern to match test files. (default is 'test/test*.rb')
    attr_accessor :pattern

    # Style of test loader to use.  Options are:
    #
    # * :rake -- Rake provided test loading script (default).
    # * :testrb -- Ruby provided test loading script.
    # * :direct -- Load tests using command line loader.
    #
    attr_accessor :loader

    # Array of commandline options to pass to ruby when running test loader.
    attr_accessor :ruby_opts

    # Description of the test task. (default is 'Run tests')
    attr_accessor :description

    # Explicitly define the list of test files to be included in a
    # test.  +list+ is expected to be an array of file names (a
    # FileList is acceptable).  If both +pattern+ and +test_files+ are
    # used, then the list of test files is the union of the two.
    def test_files=(list)
      @test_files = list
    end

    # Create a testing task.
    def initialize(name=:test)
      @name = name
      @libs = ["lib"]
      @pattern = nil
      @options = nil
      @test_files = nil
      @verbose = false
      @warning = false
      @loader = :rake
      @ruby_opts = []
      @description = "Run tests" + (@name == :test ? "" : " for #{@name}")
      yield self if block_given?
      @pattern = 'test/test*.rb' if @pattern.nil? && @test_files.nil?
      define
    end

    # Create the tasks defined by this task lib.
    def define
      desc @description
      task @name do
        FileUtilsExt.verbose(@verbose) do
          args =
            "#{ruby_opts_string} #{run_code} " +
            "#{file_list_string} #{option_list}"
          ruby args do |ok, status|
            if !ok && status.respond_to?(:signaled?) && status.signaled?
              raise SignalException.new(status.termsig)
            elsif !ok
              fail "Command failed with status (#{status.exitstatus}): " +
                "[ruby #{args}]"
            end
          end
        end
      end
      self
    end

    def option_list # :nodoc:
      (ENV['TESTOPTS'] ||
        ENV['TESTOPT'] ||
        ENV['TEST_OPTS'] ||
        ENV['TEST_OPT'] ||
        @options ||
        "")
    end

    def ruby_opts_string # :nodoc:
      opts = @ruby_opts.dup
      opts.unshift("-I\"#{lib_path}\"") unless @libs.empty?
      opts.unshift("-w") if @warning
      opts.join(" ")
    end

    def lib_path # :nodoc:
      @libs.join(File::PATH_SEPARATOR)
    end

    def file_list_string # :nodoc:
      file_list.map { |fn| "\"#{fn}\"" }.join(' ')
    end

    def file_list # :nodoc:
      if ENV['TEST']
        FileList[ENV['TEST']]
      else
        result = []
        result += @test_files.to_a if @test_files
        result << @pattern if @pattern
        result
      end
    end

    def fix # :nodoc:
      case ruby_version
      when '1.8.2'
        "\"#{find_file 'rake/ruby182_test_unit_fix'}\""
      else
        nil
      end || ''
    end

    def ruby_version # :nodoc:
      RUBY_VERSION
    end

    def run_code # :nodoc:
      case @loader
      when :direct
        "-e \"ARGV.each{|f| require f}\""
      when :testrb
        "-S testrb #{fix}"
      when :rake
        "#{rake_include_arg} \"#{rake_loader}\""
      end
    end

    def rake_loader # :nodoc:
      find_file('rake/rake_test_loader') or
        fail "unable to find rake test loader"
    end

    def find_file(fn) # :nodoc:
      $LOAD_PATH.each do |path|
        file_path = File.join(path, "#{fn}.rb")
        return file_path if File.exist? file_path
      end
      nil
    end

    def rake_include_arg # :nodoc:
      spec = Gem.loaded_specs['rake']
      if spec.respond_to?(:default_gem?) && spec.default_gem?
        ""
      else
        "-I\"#{rake_lib_dir}\""
      end
    end

    def rake_lib_dir # :nodoc:
      find_dir('rake') or
        fail "unable to find rake lib"
    end

    def find_dir(fn) # :nodoc:
      $LOAD_PATH.each do |path|
        file_path = File.join(path, "#{fn}.rb")
        return path if File.exist? file_path
      end
      nil
    end

  end
end
lib64/ruby/2.2.0/rake/trace_output.rb000064400000001037150402106340013065 0ustar00module Rake
  module TraceOutput # :nodoc: all

    # Write trace output to output stream +out+.
    #
    # The write is done as a single IO call (to print) to lessen the
    # chance that the trace output is interrupted by other tasks also
    # producing output.
    def trace_on(out, *strings)
      sep = $\ || "\n"
      if strings.empty?
        output = sep
      else
        output = strings.map { |s|
          next if s.nil?
          s =~ /#{sep}$/ ? s : s + sep
        }.join
      end
      out.print(output)
    end
  end
end
lib64/ruby/2.2.0/rake/task.rb000064400000026024150402106340011314 0ustar00require 'rake/invocation_exception_mixin'

module Rake

  ##
  # A Task is the basic unit of work in a Rakefile.  Tasks have associated
  # actions (possibly more than one) and a list of prerequisites.  When
  # invoked, a task will first ensure that all of its prerequisites have an
  # opportunity to run and then it will execute its own actions.
  #
  # Tasks are not usually created directly using the new method, but rather
  # use the +file+ and +task+ convenience methods.
  #
  class Task
    # List of prerequisites for a task.
    attr_reader :prerequisites

    # List of actions attached to a task.
    attr_reader :actions

    # Application owning this task.
    attr_accessor :application

    # Array of nested namespaces names used for task lookup by this task.
    attr_reader :scope

    # File/Line locations of each of the task definitions for this
    # task (only valid if the task was defined with the detect
    # location option set).
    attr_reader :locations

    # Return task name
    def to_s
      name
    end

    def inspect # :nodoc:
      "<#{self.class} #{name} => [#{prerequisites.join(', ')}]>"
    end

    # List of sources for task.
    attr_writer :sources
    def sources
      if defined?(@sources)
        @sources
      else
        prerequisites
      end
    end

    # List of prerequisite tasks
    def prerequisite_tasks
      prerequisites.map { |pre| lookup_prerequisite(pre) }
    end

    def lookup_prerequisite(prerequisite_name) # :nodoc:
      application[prerequisite_name, @scope]
    end
    private :lookup_prerequisite

    # List of all unique prerequisite tasks including prerequisite tasks'
    # prerequisites.
    # Includes self when cyclic dependencies are found.
    def all_prerequisite_tasks
      seen = {}
      collect_prerequisites(seen)
      seen.values
    end

    def collect_prerequisites(seen) # :nodoc:
      prerequisite_tasks.each do |pre|
        next if seen[pre.name]
        seen[pre.name] = pre
        pre.collect_prerequisites(seen)
      end
    end
    protected :collect_prerequisites

    # First source from a rule (nil if no sources)
    def source
      sources.first
    end

    # Create a task named +task_name+ with no actions or prerequisites. Use
    # +enhance+ to add actions and prerequisites.
    def initialize(task_name, app)
      @name            = task_name.to_s
      @prerequisites   = []
      @actions         = []
      @already_invoked = false
      @comments        = []
      @lock            = Monitor.new
      @application     = app
      @scope           = app.current_scope
      @arg_names       = nil
      @locations       = []
    end

    # Enhance a task with prerequisites or actions.  Returns self.
    def enhance(deps=nil, &block)
      @prerequisites |= deps if deps
      @actions << block if block_given?
      self
    end

    # Name of the task, including any namespace qualifiers.
    def name
      @name.to_s
    end

    # Name of task with argument list description.
    def name_with_args # :nodoc:
      if arg_description
        "#{name}#{arg_description}"
      else
        name
      end
    end

    # Argument description (nil if none).
    def arg_description # :nodoc:
      @arg_names ? "[#{arg_names.join(',')}]" : nil
    end

    # Name of arguments for this task.
    def arg_names
      @arg_names || []
    end

    # Reenable the task, allowing its tasks to be executed if the task
    # is invoked again.
    def reenable
      @already_invoked = false
    end

    # Clear the existing prerequisites and actions of a rake task.
    def clear
      clear_prerequisites
      clear_actions
      clear_comments
      self
    end

    # Clear the existing prerequisites of a rake task.
    def clear_prerequisites
      prerequisites.clear
      self
    end

    # Clear the existing actions on a rake task.
    def clear_actions
      actions.clear
      self
    end

    # Clear the existing comments on a rake task.
    def clear_comments
      @comments = []
      self
    end

    # Invoke the task if it is needed.  Prerequisites are invoked first.
    def invoke(*args)
      task_args = TaskArguments.new(arg_names, args)
      invoke_with_call_chain(task_args, InvocationChain::EMPTY)
    end

    # Same as invoke, but explicitly pass a call chain to detect
    # circular dependencies.
    def invoke_with_call_chain(task_args, invocation_chain) # :nodoc:
      new_chain = InvocationChain.append(self, invocation_chain)
      @lock.synchronize do
        if application.options.trace
          application.trace "** Invoke #{name} #{format_trace_flags}"
        end
        return if @already_invoked
        @already_invoked = true
        invoke_prerequisites(task_args, new_chain)
        execute(task_args) if needed?
      end
    rescue Exception => ex
      add_chain_to(ex, new_chain)
      raise ex
    end
    protected :invoke_with_call_chain

    def add_chain_to(exception, new_chain) # :nodoc:
      exception.extend(InvocationExceptionMixin) unless
        exception.respond_to?(:chain)
      exception.chain = new_chain if exception.chain.nil?
    end
    private :add_chain_to

    # Invoke all the prerequisites of a task.
    def invoke_prerequisites(task_args, invocation_chain) # :nodoc:
      if application.options.always_multitask
        invoke_prerequisites_concurrently(task_args, invocation_chain)
      else
        prerequisite_tasks.each { |p|
          prereq_args = task_args.new_scope(p.arg_names)
          p.invoke_with_call_chain(prereq_args, invocation_chain)
        }
      end
    end

    # Invoke all the prerequisites of a task in parallel.
    def invoke_prerequisites_concurrently(task_args, invocation_chain)# :nodoc:
      futures = prerequisite_tasks.map do |p|
        prereq_args = task_args.new_scope(p.arg_names)
        application.thread_pool.future(p) do |r|
          r.invoke_with_call_chain(prereq_args, invocation_chain)
        end
      end
      futures.each { |f| f.value }
    end

    # Format the trace flags for display.
    def format_trace_flags
      flags = []
      flags << "first_time" unless @already_invoked
      flags << "not_needed" unless needed?
      flags.empty? ? "" : "(" + flags.join(", ") + ")"
    end
    private :format_trace_flags

    # Execute the actions associated with this task.
    def execute(args=nil)
      args ||= EMPTY_TASK_ARGS
      if application.options.dryrun
        application.trace "** Execute (dry run) #{name}"
        return
      end
      application.trace "** Execute #{name}" if application.options.trace
      application.enhance_with_matching_rule(name) if @actions.empty?
      @actions.each do |act|
        case act.arity
        when 1
          act.call(self)
        else
          act.call(self, args)
        end
      end
    end

    # Is this task needed?
    def needed?
      true
    end

    # Timestamp for this task.  Basic tasks return the current time for their
    # time stamp.  Other tasks can be more sophisticated.
    def timestamp
      Time.now
    end

    # Add a description to the task.  The description can consist of an option
    # argument list (enclosed brackets) and an optional comment.
    def add_description(description)
      return unless description
      comment = description.strip
      add_comment(comment) if comment && ! comment.empty?
    end

    def comment=(comment) # :nodoc:
      add_comment(comment)
    end

    def add_comment(comment) # :nodoc:
      return if comment.nil?
      @comments << comment unless @comments.include?(comment)
    end
    private :add_comment

    # Full collection of comments. Multiple comments are separated by
    # newlines.
    def full_comment
      transform_comments("\n")
    end

    # First line (or sentence) of all comments. Multiple comments are
    # separated by a "/".
    def comment
      transform_comments(" / ") { |c| first_sentence(c) }
    end

    # Transform the list of comments as specified by the block and
    # join with the separator.
    def transform_comments(separator, &block)
      if @comments.empty?
        nil
      else
        block ||= lambda { |c| c }
        @comments.map(&block).join(separator)
      end
    end
    private :transform_comments

    # Get the first sentence in a string. The sentence is terminated
    # by the first period or the end of the line. Decimal points do
    # not count as periods.
    def first_sentence(string)
      string.split(/\.[ \t]|\.$|\n/).first
    end
    private :first_sentence

    # Set the names of the arguments for this task. +args+ should be
    # an array of symbols, one for each argument name.
    def set_arg_names(args)
      @arg_names = args.map { |a| a.to_sym }
    end

    # Return a string describing the internal state of a task.  Useful for
    # debugging.
    def investigation
      result = "------------------------------\n"
      result << "Investigating #{name}\n"
      result << "class: #{self.class}\n"
      result <<  "task needed: #{needed?}\n"
      result <<  "timestamp: #{timestamp}\n"
      result << "pre-requisites: \n"
      prereqs = prerequisite_tasks
      prereqs.sort! { |a, b| a.timestamp <=> b.timestamp }
      prereqs.each do |p|
        result << "--#{p.name} (#{p.timestamp})\n"
      end
      latest_prereq = prerequisite_tasks.map { |pre| pre.timestamp }.max
      result <<  "latest-prerequisite time: #{latest_prereq}\n"
      result << "................................\n\n"
      return result
    end

    # ----------------------------------------------------------------
    # Rake Module Methods
    #
    class << self

      # Clear the task list.  This cause rake to immediately forget all the
      # tasks that have been assigned.  (Normally used in the unit tests.)
      def clear
        Rake.application.clear
      end

      # List of all defined tasks.
      def tasks
        Rake.application.tasks
      end

      # Return a task with the given name.  If the task is not currently
      # known, try to synthesize one from the defined rules.  If no rules are
      # found, but an existing file matches the task name, assume it is a file
      # task with no dependencies or actions.
      def [](task_name)
        Rake.application[task_name]
      end

      # TRUE if the task name is already defined.
      def task_defined?(task_name)
        Rake.application.lookup(task_name) != nil
      end

      # Define a task given +args+ and an option block.  If a rule with the
      # given name already exists, the prerequisites and actions are added to
      # the existing task.  Returns the defined task.
      def define_task(*args, &block)
        Rake.application.define_task(self, *args, &block)
      end

      # Define a rule for synthesizing tasks.
      def create_rule(*args, &block)
        Rake.application.create_rule(*args, &block)
      end

      # Apply the scope to the task name according to the rules for
      # this kind of task.  Generic tasks will accept the scope as
      # part of the name.
      def scope_name(scope, task_name)
#        (scope + [task_name]).join(':')
        scope.path_with_task_name(task_name)
      end

    end # class << Rake::Task
  end # class Rake::Task
end
lib64/ruby/2.2.0/rake/task_arguments.rb000064400000004226150402106340013401 0ustar00module Rake

  ##
  # TaskArguments manage the arguments passed to a task.
  #
  class TaskArguments
    include Enumerable

    # Argument names
    attr_reader :names

    # Create a TaskArgument object with a list of argument +names+ and a set
    # of associated +values+.  +parent+ is the parent argument object.
    def initialize(names, values, parent=nil)
      @names = names
      @parent = parent
      @hash = {}
      @values = values
      names.each_with_index { |name, i|
        @hash[name.to_sym] = values[i] unless values[i].nil?
      }
    end

    # Retrieve the complete array of sequential values
    def to_a
      @values.dup
    end

    # Retrieve the list of values not associated with named arguments
    def extras
      @values[@names.length..-1] || []
    end

    # Create a new argument scope using the prerequisite argument
    # names.
    def new_scope(names)
      values = names.map { |n| self[n] }
      self.class.new(names, values + extras, self)
    end

    # Find an argument value by name or index.
    def [](index)
      lookup(index.to_sym)
    end

    # Specify a hash of default values for task arguments. Use the
    # defaults only if there is no specific value for the given
    # argument.
    def with_defaults(defaults)
      @hash = defaults.merge(@hash)
    end

    # Enumerates the arguments and their values
    def each(&block)
      @hash.each(&block)
    end

    # Extracts the argument values at +keys+
    def values_at(*keys)
      keys.map { |k| lookup(k) }
    end

    # Returns the value of the given argument via method_missing
    def method_missing(sym, *args)
      lookup(sym.to_sym)
    end

    # Returns a Hash of arguments and their values
    def to_hash
      @hash
    end

    def to_s # :nodoc:
      @hash.inspect
    end

    def inspect # :nodoc:
      to_s
    end

    # Returns true if +key+ is one of the arguments
    def has_key?(key)
      @hash.has_key?(key)
    end

    protected

    def lookup(name) # :nodoc:
      if @hash.has_key?(name)
        @hash[name]
      elsif @parent
        @parent.lookup(name)
      end
    end
  end

  EMPTY_TASK_ARGS = TaskArguments.new([], []) # :nodoc:
end
lib64/ruby/2.2.0/rake/default_loader.rb000064400000000353150402106350013322 0ustar00module Rake

  # Default Rakefile loader used by +import+.
  class DefaultLoader

    ##
    # Loads a rakefile into the current application from +fn+

    def load(fn)
      Rake.load_rakefile(File.expand_path(fn))
    end
  end

end
lib64/ruby/2.2.0/rake/clean.rb000064400000003671150402106350011440 0ustar00# The 'rake/clean' file defines two file lists (CLEAN and CLOBBER) and
# two rake tasks (:clean and :clobber).
#
# [:clean] Clean up the project by deleting scratch files and backup
#          files.  Add files to the CLEAN file list to have the :clean
#          target handle them.
#
# [:clobber] Clobber all generated and non-source files in a project.
#            The task depends on :clean, so all the clean files will
#            be deleted as well as files in the CLOBBER file list.
#            The intent of this task is to return a project to its
#            pristine, just unpacked state.

require 'rake'

# :stopdoc:

module Rake
  module Cleaner
    extend FileUtils

    module_function

    def cleanup_files(file_names)
      file_names.each do |file_name|
        cleanup(file_name)
      end
    end

    def cleanup(file_name, opts={})
      begin
        rm_r file_name, opts
      rescue StandardError => ex
        puts "Failed to remove #{file_name}: #{ex}" unless file_already_gone?(file_name)
      end
    end

    def file_already_gone?(file_name)
      return false if File.exist?(file_name)

      path = file_name
      prev = nil

      while path = File.dirname(path)
        return false if cant_be_deleted?(path)
        break if [prev, "."].include?(path)
        prev = path
      end
      true
    end
    private_class_method :file_already_gone?

    def cant_be_deleted?(path_name)
      File.exist?(path_name) &&
        (!File.readable?(path_name) || !File.executable?(path_name))
    end
    private_class_method :cant_be_deleted?
  end
end

CLEAN = ::Rake::FileList["**/*~", "**/*.bak", "**/core"]
CLEAN.clear_exclude.exclude { |fn|
  fn.pathmap("%f").downcase == 'core' && File.directory?(fn)
}

desc "Remove any temporary products."
task :clean do
  Rake::Cleaner.cleanup_files(CLEAN)
end

CLOBBER = ::Rake::FileList.new

desc "Remove any generated file."
task :clobber => [:clean] do
  Rake::Cleaner.cleanup_files(CLOBBER)
end
lib64/ruby/2.2.0/rake/file_list.rb000064400000030204150402106350012320 0ustar00require 'rake/cloneable'
require 'rake/file_utils_ext'
require 'rake/pathmap'


module Rake

  ##
  # A FileList is essentially an array with a few helper methods defined to
  # make file manipulation a bit easier.
  #
  # FileLists are lazy.  When given a list of glob patterns for possible files
  # to be included in the file list, instead of searching the file structures
  # to find the files, a FileList holds the pattern for latter use.
  #
  # This allows us to define a number of FileList to match any number of
  # files, but only search out the actual files when then FileList itself is
  # actually used.  The key is that the first time an element of the
  # FileList/Array is requested, the pending patterns are resolved into a real
  # list of file names.
  #
  class FileList

    include Cloneable

    # == Method Delegation
    #
    # The lazy evaluation magic of FileLists happens by implementing all the
    # array specific methods to call +resolve+ before delegating the heavy
    # lifting to an embedded array object (@items).
    #
    # In addition, there are two kinds of delegation calls.  The regular kind
    # delegates to the @items array and returns the result directly.  Well,
    # almost directly.  It checks if the returned value is the @items object
    # itself, and if so will return the FileList object instead.
    #
    # The second kind of delegation call is used in methods that normally
    # return a new Array object.  We want to capture the return value of these
    # methods and wrap them in a new FileList object.  We enumerate these
    # methods in the +SPECIAL_RETURN+ list below.

    # List of array methods (that are not in +Object+) that need to be
    # delegated.
    ARRAY_METHODS = (Array.instance_methods - Object.instance_methods).
      map { |n| n.to_s }

    # List of additional methods that must be delegated.
    MUST_DEFINE = %w[inspect <=>]

    # List of methods that should not be delegated here (we define special
    # versions of them explicitly below).
    MUST_NOT_DEFINE = %w[to_a to_ary partition * <<]

    # List of delegated methods that return new array values which need
    # wrapping.
    SPECIAL_RETURN = %w[
      map collect sort sort_by select find_all reject grep
      compact flatten uniq values_at
      + - & |
    ]

    DELEGATING_METHODS = (ARRAY_METHODS + MUST_DEFINE - MUST_NOT_DEFINE).
      map { |s| s.to_s }.sort.uniq

    # Now do the delegation.
    DELEGATING_METHODS.each do |sym|
      if SPECIAL_RETURN.include?(sym)
        ln = __LINE__ + 1
        class_eval %{
          def #{sym}(*args, &block)
            resolve
            result = @items.send(:#{sym}, *args, &block)
            FileList.new.import(result)
          end
        }, __FILE__, ln
      else
        ln = __LINE__ + 1
        class_eval %{
          def #{sym}(*args, &block)
            resolve
            result = @items.send(:#{sym}, *args, &block)
            result.object_id == @items.object_id ? self : result
          end
        }, __FILE__, ln
      end
    end

    # Create a file list from the globbable patterns given.  If you wish to
    # perform multiple includes or excludes at object build time, use the
    # "yield self" pattern.
    #
    # Example:
    #   file_list = FileList.new('lib/**/*.rb', 'test/test*.rb')
    #
    #   pkg_files = FileList.new('lib/**/*') do |fl|
    #     fl.exclude(/\bCVS\b/)
    #   end
    #
    def initialize(*patterns)
      @pending_add = []
      @pending = false
      @exclude_patterns = DEFAULT_IGNORE_PATTERNS.dup
      @exclude_procs = DEFAULT_IGNORE_PROCS.dup
      @items = []
      patterns.each { |pattern| include(pattern) }
      yield self if block_given?
    end

    # Add file names defined by glob patterns to the file list.  If an array
    # is given, add each element of the array.
    #
    # Example:
    #   file_list.include("*.java", "*.cfg")
    #   file_list.include %w( math.c lib.h *.o )
    #
    def include(*filenames)
      # TODO: check for pending
      filenames.each do |fn|
        if fn.respond_to? :to_ary
          include(*fn.to_ary)
        else
          @pending_add << Rake.from_pathname(fn)
        end
      end
      @pending = true
      self
    end
    alias :add :include

    # Register a list of file name patterns that should be excluded from the
    # list.  Patterns may be regular expressions, glob patterns or regular
    # strings.  In addition, a block given to exclude will remove entries that
    # return true when given to the block.
    #
    # Note that glob patterns are expanded against the file system. If a file
    # is explicitly added to a file list, but does not exist in the file
    # system, then an glob pattern in the exclude list will not exclude the
    # file.
    #
    # Examples:
    #   FileList['a.c', 'b.c'].exclude("a.c") => ['b.c']
    #   FileList['a.c', 'b.c'].exclude(/^a/)  => ['b.c']
    #
    # If "a.c" is a file, then ...
    #   FileList['a.c', 'b.c'].exclude("a.*") => ['b.c']
    #
    # If "a.c" is not a file, then ...
    #   FileList['a.c', 'b.c'].exclude("a.*") => ['a.c', 'b.c']
    #
    def exclude(*patterns, &block)
      patterns.each do |pat|
        @exclude_patterns << Rake.from_pathname(pat)
      end
      @exclude_procs << block if block_given?
      resolve_exclude unless @pending
      self
    end

    # Clear all the exclude patterns so that we exclude nothing.
    def clear_exclude
      @exclude_patterns = []
      @exclude_procs = []
      self
    end

    # A FileList is equal through array equality.
    def ==(array)
      to_ary == array
    end

    # Return the internal array object.
    def to_a
      resolve
      @items
    end

    # Return the internal array object.
    def to_ary
      to_a
    end

    # Lie about our class.
    def is_a?(klass)
      klass == Array || super(klass)
    end
    alias kind_of? is_a?

    # Redefine * to return either a string or a new file list.
    def *(other)
      result = @items * other
      case result
      when Array
        FileList.new.import(result)
      else
        result
      end
    end

    def <<(obj)
      resolve
      @items << Rake.from_pathname(obj)
      self
    end

    # Resolve all the pending adds now.
    def resolve
      if @pending
        @pending = false
        @pending_add.each do |fn| resolve_add(fn) end
        @pending_add = []
        resolve_exclude
      end
      self
    end

    def resolve_add(fn) # :nodoc:
      case fn
      when %r{[*?\[\{]}
        add_matching(fn)
      else
        self << fn
      end
    end
    private :resolve_add

    def resolve_exclude # :nodoc:
      reject! { |fn| excluded_from_list?(fn) }
      self
    end
    private :resolve_exclude

    # Return a new FileList with the results of running +sub+ against each
    # element of the original list.
    #
    # Example:
    #   FileList['a.c', 'b.c'].sub(/\.c$/, '.o')  => ['a.o', 'b.o']
    #
    def sub(pat, rep)
      inject(FileList.new) { |res, fn| res << fn.sub(pat, rep) }
    end

    # Return a new FileList with the results of running +gsub+ against each
    # element of the original list.
    #
    # Example:
    #   FileList['lib/test/file', 'x/y'].gsub(/\//, "\\")
    #      => ['lib\\test\\file', 'x\\y']
    #
    def gsub(pat, rep)
      inject(FileList.new) { |res, fn| res << fn.gsub(pat, rep) }
    end

    # Same as +sub+ except that the original file list is modified.
    def sub!(pat, rep)
      each_with_index { |fn, i| self[i] = fn.sub(pat, rep) }
      self
    end

    # Same as +gsub+ except that the original file list is modified.
    def gsub!(pat, rep)
      each_with_index { |fn, i| self[i] = fn.gsub(pat, rep) }
      self
    end

    # Apply the pathmap spec to each of the included file names, returning a
    # new file list with the modified paths.  (See String#pathmap for
    # details.)
    def pathmap(spec=nil)
      collect { |fn| fn.pathmap(spec) }
    end

    # Return a new FileList with <tt>String#ext</tt> method applied to
    # each member of the array.
    #
    # This method is a shortcut for:
    #
    #    array.collect { |item| item.ext(newext) }
    #
    # +ext+ is a user added method for the Array class.
    def ext(newext='')
      collect { |fn| fn.ext(newext) }
    end

    # Grep each of the files in the filelist using the given pattern. If a
    # block is given, call the block on each matching line, passing the file
    # name, line number, and the matching line of text.  If no block is given,
    # a standard emacs style file:linenumber:line message will be printed to
    # standard out.  Returns the number of matched items.
    def egrep(pattern, *options)
      matched = 0
      each do |fn|
        begin
          open(fn, "r", *options) do |inf|
            count = 0
            inf.each do |line|
              count += 1
              if pattern.match(line)
                matched += 1
                if block_given?
                  yield fn, count, line
                else
                  puts "#{fn}:#{count}:#{line}"
                end
              end
            end
          end
        rescue StandardError => ex
          $stderr.puts "Error while processing '#{fn}': #{ex}"
        end
      end
      matched
    end

    # Return a new file list that only contains file names from the current
    # file list that exist on the file system.
    def existing
      select { |fn| File.exist?(fn) }
    end

    # Modify the current file list so that it contains only file name that
    # exist on the file system.
    def existing!
      resolve
      @items = @items.select { |fn| File.exist?(fn) }
      self
    end

    # FileList version of partition.  Needed because the nested arrays should
    # be FileLists in this version.
    def partition(&block)       # :nodoc:
      resolve
      result = @items.partition(&block)
      [
        FileList.new.import(result[0]),
        FileList.new.import(result[1]),
      ]
    end

    # Convert a FileList to a string by joining all elements with a space.
    def to_s
      resolve
      self.join(' ')
    end

    # Add matching glob patterns.
    def add_matching(pattern)
      FileList.glob(pattern).each do |fn|
        self << fn unless excluded_from_list?(fn)
      end
    end
    private :add_matching

    # Should the given file name be excluded from the list?
    #
    # NOTE: This method was formerly named "exclude?", but Rails
    # introduced an exclude? method as an array method and setup a
    # conflict with file list. We renamed the method to avoid
    # confusion. If you were using "FileList#exclude?" in your user
    # code, you will need to update.
    def excluded_from_list?(fn)
      return true if @exclude_patterns.any? do |pat|
        case pat
        when Regexp
          fn =~ pat
        when /[*?]/
          File.fnmatch?(pat, fn, File::FNM_PATHNAME)
        else
          fn == pat
        end
      end
      @exclude_procs.any? { |p| p.call(fn) }
    end

    DEFAULT_IGNORE_PATTERNS = [
      /(^|[\/\\])CVS([\/\\]|$)/,
      /(^|[\/\\])\.svn([\/\\]|$)/,
      /\.bak$/,
      /~$/
    ]
    DEFAULT_IGNORE_PROCS = [
      proc { |fn| fn =~ /(^|[\/\\])core$/ && ! File.directory?(fn) }
    ]

    def import(array) # :nodoc:
      @items = array
      self
    end

    class << self
      # Create a new file list including the files listed. Similar to:
      #
      #   FileList.new(*args)
      def [](*args)
        new(*args)
      end

      # Get a sorted list of files matching the pattern. This method
      # should be preferred to Dir[pattern] and Dir.glob(pattern) because
      # the files returned are guaranteed to be sorted.
      def glob(pattern, *args)
        Dir.glob(pattern, *args).sort
      end
    end
  end
end

module Rake
  class << self

    # Yield each file or directory component.
    def each_dir_parent(dir)    # :nodoc:
      old_length = nil
      while dir != '.' && dir.length != old_length
        yield(dir)
        old_length = dir.length
        dir = File.dirname(dir)
      end
    end

    # Convert Pathname and Pathname-like objects to strings;
    # leave everything else alone
    def from_pathname(path)    # :nodoc:
      path = path.to_path if path.respond_to?(:to_path)
      path = path.to_str if path.respond_to?(:to_str)
      path
    end
  end
end # module Rake
lib64/ruby/2.2.0/rake/pathmap.rb000064400000000065150402106350012002 0ustar00# TODO: Remove in Rake 11

require 'rake/ext/string'
lib64/ruby/2.2.0/rake/cpu_counter.rb000064400000005520150402106350012677 0ustar00module Rake

  # Based on a script at:
  #   http://stackoverflow.com/questions/891537/ruby-detect-number-of-cpus-installed
  class CpuCounter # :nodoc: all
    def self.count
      new.count_with_default
    end

    def count_with_default(default=4)
      count || default
    rescue StandardError
      default
    end

    begin
      require 'etc'
    rescue LoadError
    else
      if Etc.respond_to?(:nprocessors)
        def count
          return Etc.nprocessors
        end
      end
    end
  end
end

unless Rake::CpuCounter.method_defined?(:count)
  Rake::CpuCounter.class_eval <<-'end;', __FILE__, __LINE__+1
    require 'rbconfig'

    # TODO: replace with IO.popen using array-style arguments in Rake 11
    require 'open3'

    def count
      if defined?(Java::Java)
        count_via_java_runtime
      else
        case RbConfig::CONFIG['host_os']
        when /darwin9/
          count_via_hwprefs_cpu_count
        when /darwin/
          count_via_hwprefs_thread_count || count_via_sysctl
        when /linux/
          count_via_cpuinfo
        when /bsd/
          count_via_sysctl
        when /mswin|mingw/
          count_via_win32
        else
          # Try everything
          count_via_win32 ||
            count_via_sysctl ||
            count_via_hwprefs_thread_count ||
            count_via_hwprefs_cpu_count ||
            count_via_cpuinfo
        end
      end
    end

    def count_via_java_runtime
      Java::Java.lang.Runtime.getRuntime.availableProcessors
    rescue StandardError
      nil
    end

    def count_via_win32
      require 'win32ole'
      wmi = WIN32OLE.connect("winmgmts://")
      cpu = wmi.ExecQuery("select NumberOfCores from Win32_Processor") # TODO count hyper-threaded in this
      cpu.to_enum.first.NumberOfCores
    rescue StandardError, LoadError
      nil
    end

    def count_via_cpuinfo
      open('/proc/cpuinfo') { |f| f.readlines }.grep(/processor/).size
    rescue StandardError
      nil
    end

    def count_via_hwprefs_thread_count
      run 'hwprefs', 'thread_count'
    end

    def count_via_hwprefs_cpu_count
      run 'hwprefs', 'cpu_count'
    end

    def count_via_sysctl
      run 'sysctl', '-n', 'hw.ncpu'
    end

    def run(command, *args)
      cmd = resolve_command(command)
      if cmd
        Open3.popen3 cmd, *args do |inn, out, err,|
          inn.close
          err.read
          out.read.to_i
        end
      else
        nil
      end
    end

    def resolve_command(command)
      look_for_command("/usr/sbin", command) ||
        look_for_command("/sbin", command) ||
        in_path_command(command)
    end

    def look_for_command(dir, command)
      path = File.join(dir, command)
      File.exist?(path) ? path : nil
    end

    def in_path_command(command)
      Open3.popen3 'which', command do |_, out,|
        out.eof? ? nil : command
      end
    end
  end;
end
lib64/ruby/2.2.0/rake/rake_test_loader.rb000064400000000525150402106350013660 0ustar00require 'rake'

# Load the test files from the command line.
argv = ARGV.select do |argument|
  case argument
  when /^-/ then
    argument
  when /\*/ then
    FileList[argument].to_a.each do |file|
      require File.expand_path file
    end

    false
  else
    require File.expand_path argument

    false
  end
end

ARGV.replace argv

lib64/ruby/2.2.0/rake/file_utils_ext.rb000064400000010065150402106350013370 0ustar00require 'rake/file_utils'

module Rake
  #
  # FileUtilsExt provides a custom version of the FileUtils methods
  # that respond to the <tt>verbose</tt> and <tt>nowrite</tt>
  # commands.
  #
  module FileUtilsExt
    include FileUtils

    class << self
      attr_accessor :verbose_flag, :nowrite_flag
    end

    DEFAULT = Object.new

    FileUtilsExt.verbose_flag = DEFAULT
    FileUtilsExt.nowrite_flag = false

    FileUtils.commands.each do |name|
      opts = FileUtils.options_of name
      default_options = []
      if opts.include?("verbose")
        default_options << ':verbose => FileUtilsExt.verbose_flag'
      end
      if opts.include?("noop")
        default_options << ':noop => FileUtilsExt.nowrite_flag'
      end

      next if default_options.empty?
      module_eval(<<-EOS, __FILE__, __LINE__ + 1)
      def #{name}( *args, &block )
        super(
          *rake_merge_option(args,
            #{default_options.join(', ')}
            ), &block)
      end
      EOS
    end

    # Get/set the verbose flag controlling output from the FileUtils
    # utilities.  If verbose is true, then the utility method is
    # echoed to standard output.
    #
    # Examples:
    #    verbose              # return the current value of the
    #                         # verbose flag
    #    verbose(v)           # set the verbose flag to _v_.
    #    verbose(v) { code }  # Execute code with the verbose flag set
    #                         # temporarily to _v_.  Return to the
    #                         # original value when code is done.
    def verbose(value=nil)
      oldvalue = FileUtilsExt.verbose_flag
      FileUtilsExt.verbose_flag = value unless value.nil?
      if block_given?
        begin
          yield
        ensure
          FileUtilsExt.verbose_flag = oldvalue
        end
      end
      FileUtilsExt.verbose_flag
    end

    # Get/set the nowrite flag controlling output from the FileUtils
    # utilities.  If verbose is true, then the utility method is
    # echoed to standard output.
    #
    # Examples:
    #    nowrite              # return the current value of the
    #                         # nowrite flag
    #    nowrite(v)           # set the nowrite flag to _v_.
    #    nowrite(v) { code }  # Execute code with the nowrite flag set
    #                         # temporarily to _v_. Return to the
    #                         # original value when code is done.
    def nowrite(value=nil)
      oldvalue = FileUtilsExt.nowrite_flag
      FileUtilsExt.nowrite_flag = value unless value.nil?
      if block_given?
        begin
          yield
        ensure
          FileUtilsExt.nowrite_flag = oldvalue
        end
      end
      oldvalue
    end

    # Use this function to prevent potentially destructive ruby code
    # from running when the :nowrite flag is set.
    #
    # Example:
    #
    #   when_writing("Building Project") do
    #     project.build
    #   end
    #
    # The following code will build the project under normal
    # conditions. If the nowrite(true) flag is set, then the example
    # will print:
    #
    #      DRYRUN: Building Project
    #
    # instead of actually building the project.
    #
    def when_writing(msg=nil)
      if FileUtilsExt.nowrite_flag
        $stderr.puts "DRYRUN: #{msg}" if msg
      else
        yield
      end
    end

    # Merge the given options with the default values.
    def rake_merge_option(args, defaults)
      if Hash === args.last
        defaults.update(args.last)
        args.pop
      end
      args.push defaults
      args
    end

    # Send the message to the default rake output (which is $stderr).
    def rake_output_message(message)
      $stderr.puts(message)
    end

    # Check that the options do not contain options not listed in
    # +optdecl+.  An ArgumentError exception is thrown if non-declared
    # options are found.
    def rake_check_options(options, *optdecl)
      h = options.dup
      optdecl.each do |name|
        h.delete name
      end
      raise ArgumentError, "no such option: #{h.keys.join(' ')}" unless
        h.empty?
    end

    extend self
  end
end
lib64/ruby/2.2.0/rake/rdoctask.rb000064400000000231150402106350012155 0ustar00# TODO: Remove in Rake 11

fail "ERROR: 'rake/rdoctask' is obsolete and no longer supported. " +
  "Use 'rdoc/task' (available in RDoc 2.4.2+) instead."
lib64/ruby/2.2.0/rake/task_argument_error.rb000064400000000167150402106350014430 0ustar00module Rake

  # Error indicating an ill-formed task declaration.
  class TaskArgumentError < ArgumentError
  end

end
lib64/ruby/2.2.0/rake/file_task.rb000064400000002412150402106350012307 0ustar00require 'rake/task.rb'
require 'rake/early_time'

module Rake

  # A FileTask is a task that includes time based dependencies.  If any of a
  # FileTask's prerequisites have a timestamp that is later than the file
  # represented by this task, then the file must be rebuilt (using the
  # supplied actions).
  #
  class FileTask < Task

    # Is this file task needed?  Yes if it doesn't exist, or if its time stamp
    # is out of date.
    def needed?
      ! File.exist?(name) || out_of_date?(timestamp) || @application.options.build_all
    end

    # Time stamp for file task.
    def timestamp
      if File.exist?(name)
        File.mtime(name.to_s)
      else
        Rake::LATE
      end
    end

    private

    # Are there any prerequisites with a later time than the given time stamp?
    def out_of_date?(stamp)
      @prerequisites.any? { |n| application[n, @scope].timestamp > stamp }
    end

    # ----------------------------------------------------------------
    # Task class methods.
    #
    class << self
      # Apply the scope to the task name according to the rules for this kind
      # of task.  File based tasks ignore the scope when creating the name.
      def scope_name(scope, task_name)
        Rake.from_pathname(task_name)
      end
    end
  end
end
lib64/ruby/2.2.0/rake/backtrace.rb000064400000001544150402106350012272 0ustar00module Rake
  module Backtrace # :nodoc: all
    SYS_KEYS  = RbConfig::CONFIG.keys.grep(/(?:[a-z]prefix|libdir)\z/)
    SYS_PATHS = RbConfig::CONFIG.values_at(*SYS_KEYS).uniq +
      [ File.join(File.dirname(__FILE__), "..") ]

    SUPPRESSED_PATHS = SYS_PATHS.
      map { |s| s.gsub("\\", "/") }.
      map { |f| File.expand_path(f) }.
      reject { |s| s.nil? || s =~ /^ *$/ }
    SUPPRESSED_PATHS_RE = SUPPRESSED_PATHS.map { |f| Regexp.quote(f) }.join("|")
    SUPPRESSED_PATHS_RE << "|^org\\/jruby\\/\\w+\\.java" if
      Object.const_defined?(:RUBY_ENGINE) and RUBY_ENGINE == 'jruby'

    SUPPRESS_PATTERN = %r!(\A(#{SUPPRESSED_PATHS_RE})|bin/rake:\d+)!i

    def self.collapse(backtrace)
      pattern = Rake.application.options.suppress_backtrace_pattern ||
                SUPPRESS_PATTERN
      backtrace.reject { |elem| elem =~ pattern }
    end
  end
end
lib64/ruby/2.2.0/rake/late_time.rb000064400000000411150402106350012306 0ustar00module Rake
  # LateTime is a fake timestamp that occurs _after_ any other time value.
  class LateTime
    include Comparable
    include Singleton

    def <=>(other)
      1
    end

    def to_s
      '<LATE TIME>'
    end
  end

  LATE = LateTime.instance
end
lib64/ruby/2.2.0/rake/loaders/makefile.rb000064400000001622150402106350013556 0ustar00module Rake

  # Makefile loader to be used with the import file loader.
  class MakefileLoader
    include Rake::DSL

    SPACE_MARK = "\0"

    # Load the makefile dependencies in +fn+.
    def load(fn)
      lines = File.read fn
      lines.gsub!(/\\ /, SPACE_MARK)
      lines.gsub!(/#[^\n]*\n/m, "")
      lines.gsub!(/\\\n/, ' ')
      lines.each_line do |line|
        process_line(line)
      end
    end

    private

    # Process one logical line of makefile data.
    def process_line(line)
      file_tasks, args = line.split(':', 2)
      return if args.nil?
      dependents = args.split.map { |d| respace(d) }
      file_tasks.scan(/\S+/) do |file_task|
        file_task = respace(file_task)
        file file_task => dependents
      end
    end

    def respace(str)
      str.tr SPACE_MARK, ' '
    end
  end

  # Install the handler
  Rake.application.add_loader('mf', MakefileLoader.new)
end
lib64/ruby/2.2.0/rake/cloneable.rb000064400000000642150402106350012275 0ustar00module Rake
  ##
  # Mixin for creating easily cloned objects.

  module Cloneable # :nodoc:
    # The hook that is invoked by 'clone' and 'dup' methods.
    def initialize_copy(source)
      super
      source.instance_variables.each do |var|
        src_value  = source.instance_variable_get(var)
        value = src_value.clone rescue src_value
        instance_variable_set(var, value)
      end
    end
  end
end
lib64/ruby/2.2.0/rake/early_time.rb000064400000000524150402106350012502 0ustar00module Rake

  # EarlyTime is a fake timestamp that occurs _before_ any other time value.
  class EarlyTime
    include Comparable
    include Singleton

    ##
    # The EarlyTime always comes before +other+!

    def <=>(other)
      -1
    end

    def to_s # :nodoc:
      "<EARLY TIME>"
    end
  end

  EARLY = EarlyTime.instance
end
lib64/ruby/2.2.0/rake/phony.rb000064400000000537150402106350011511 0ustar00# Defines a :phony task that you can use as a dependency. This allows
# file-based tasks to use non-file-based tasks as prerequisites
# without forcing them to rebuild.
#
# See FileTask#out_of_date? and Task#timestamp for more info.

require 'rake'

task :phony

Rake::Task[:phony].tap do |task|
  def task.timestamp # :nodoc:
    Time.at 0
  end
end
lib64/ruby/2.2.0/rake/win32.rb000064400000003064150402106350011314 0ustar00
module Rake
  require 'rake/alt_system'

  # Win 32 interface methods for Rake. Windows specific functionality
  # will be placed here to collect that knowledge in one spot.
  module Win32 # :nodoc: all

    # Error indicating a problem in locating the home directory on a
    # Win32 system.
    class Win32HomeError < RuntimeError
    end

    class << self
      # True if running on a windows system.
      def windows?
        AltSystem::WINDOWS
      end

      # Run a command line on windows.
      def rake_system(*cmd)
        AltSystem.system(*cmd)
      end

      # The standard directory containing system wide rake files on
      # Win 32 systems. Try the following environment variables (in
      # order):
      #
      # * HOME
      # * HOMEDRIVE + HOMEPATH
      # * APPDATA
      # * USERPROFILE
      #
      # If the above are not defined, the return nil.
      def win32_system_dir #:nodoc:
        win32_shared_path = ENV['HOME']
        if win32_shared_path.nil? && ENV['HOMEDRIVE'] && ENV['HOMEPATH']
          win32_shared_path = ENV['HOMEDRIVE'] + ENV['HOMEPATH']
        end

        win32_shared_path ||= ENV['APPDATA']
        win32_shared_path ||= ENV['USERPROFILE']
        raise Win32HomeError,
          "Unable to determine home path environment variable." if
            win32_shared_path.nil? or win32_shared_path.empty?
        normalize(File.join(win32_shared_path, 'Rake'))
      end

      # Normalize a win32 path so that the slashes are all forward slashes.
      def normalize(path)
        path.gsub(/\\/, '/')
      end

    end
  end
end
lib64/ruby/2.2.0/rake/linked_list.rb000064400000004422150402106350012652 0ustar00module Rake

  # Polylithic linked list structure used to implement several data
  # structures in Rake.
  class LinkedList
    include Enumerable

    attr_reader :head, :tail

    def initialize(head, tail=EMPTY)
      @head = head
      @tail = tail
    end

    # Polymorphically add a new element to the head of a list. The
    # type of head node will be the same list type as the tail.
    def conj(item)
      self.class.cons(item, self)
    end

    # Is the list empty?
    def empty?
      false
    end

    # Lists are structurally equivalent.
    def ==(other)
      current = self
      while ! current.empty? && ! other.empty?
        return false if current.head != other.head
        current = current.tail
        other = other.tail
      end
      current.empty? && other.empty?
    end

    # Convert to string: LL(item, item...)
    def to_s
      items = map { |item| item.to_s }.join(", ")
      "LL(#{items})"
    end

    # Same as +to_s+, but with inspected items.
    def inspect
      items = map { |item| item.inspect }.join(", ")
      "LL(#{items})"
    end

    # For each item in the list.
    def each
      current = self
      while ! current.empty?
        yield(current.head)
        current = current.tail
      end
      self
    end

    # Make a list out of the given arguments. This method is
    # polymorphic
    def self.make(*args)
      result = empty
      args.reverse_each do |item|
        result = cons(item, result)
      end
      result
    end

    # Cons a new head onto the tail list.
    def self.cons(head, tail)
      new(head, tail)
    end

    # The standard empty list class for the given LinkedList class.
    def self.empty
      self::EMPTY
    end

    # Represent an empty list, using the Null Object Pattern.
    #
    # When inheriting from the LinkedList class, you should implement
    # a type specific Empty class as well. Make sure you set the class
    # instance variable @parent to the associated list class (this
    # allows conj, cons and make to work polymorphically).
    class EmptyLinkedList < LinkedList
      @parent = LinkedList

      def initialize
      end

      def empty?
        true
      end

      def self.cons(head, tail)
        @parent.cons(head, tail)
      end
    end

    EMPTY = EmptyLinkedList.new
  end

end
lib64/ruby/2.2.0/rake/contrib/rubyforgepublisher.rb000064400000000527150402106350015735 0ustar00# TODO: Remove in Rake 11

require 'rake/contrib/sshpublisher'

module Rake

  class RubyForgePublisher < SshDirPublisher # :nodoc: all
    attr_reader :project, :proj_id, :user

    def initialize(projname, user)
      super(
        "#{user}@rubyforge.org",
        "/var/www/gforge-projects/#{projname}",
        "html")
    end
  end

end
lib64/ruby/2.2.0/rake/contrib/publisher.rb000064400000003777150402106350014022 0ustar00# Copyright 2003-2010 by Jim Weirich (jim.weirich@gmail.com)
# All rights reserved.

# :stopdoc:

# Configuration information about an upload host system.
# name   :: Name of host system.
# webdir :: Base directory for the web information for the
#           application.  The application name (APP) is appended to
#           this directory before using.
# pkgdir :: Directory on the host system where packages can be
#           placed.
HostInfo = Struct.new(:name, :webdir, :pkgdir)

# :startdoc:

# TODO: Move to contrib/sshpublisher
#--
# Manage several publishers as a single entity.
class CompositePublisher # :nodoc:
  def initialize
    @publishers = []
  end

  # Add a publisher to the composite.
  def add(pub)
    @publishers << pub
  end

  # Upload all the individual publishers.
  def upload
    @publishers.each { |p| p.upload }
  end
end

# TODO: Remove in Rake 11, duplicated
#--
# Publish an entire directory to an existing remote directory using
# SSH.
class SshDirPublisher # :nodoc: all
  def initialize(host, remote_dir, local_dir)
    @host = host
    @remote_dir = remote_dir
    @local_dir = local_dir
  end

  def upload
    run %{scp -rq #{@local_dir}/* #{@host}:#{@remote_dir}}
  end
end

# TODO: Remove in Rake 11, duplicated
#--
# Publish an entire directory to a fresh remote directory using SSH.
class SshFreshDirPublisher < SshDirPublisher # :nodoc: all
  def upload
    run %{ssh #{@host} rm -rf #{@remote_dir}} rescue nil
    run %{ssh #{@host} mkdir #{@remote_dir}}
    super
  end
end

# TODO: Remove in Rake 11, duplicated
#--
# Publish a list of files to an existing remote directory.
class SshFilePublisher # :nodoc: all
  # Create a publisher using the give host information.
  def initialize(host, remote_dir, local_dir, *files)
    @host = host
    @remote_dir = remote_dir
    @local_dir = local_dir
    @files = files
  end

  # Upload the local directory to the remote directory.
  def upload
    @files.each do |fn|
      run %{scp -q #{@local_dir}/#{fn} #{@host}:#{@remote_dir}}
    end
  end
end
lib64/ruby/2.2.0/rake/contrib/sys.rb000064400000000201150402106350012616 0ustar00# TODO: Remove in Rake 11

fail "ERROR: 'rake/contrib/sys' is obsolete and no longer supported. " +
  "Use 'FileUtils' instead."
lib64/ruby/2.2.0/rake/contrib/compositepublisher.rb000064400000000537150402106350015734 0ustar00module Rake

  # Manage several publishers as a single entity.
  class CompositePublisher
    def initialize
      @publishers = []
    end

    # Add a publisher to the composite.
    def add(pub)
      @publishers << pub
    end

    # Upload all the individual publishers.
    def upload
      @publishers.each { |p| p.upload }
    end
  end

end

lib64/ruby/2.2.0/rake/contrib/sshpublisher.rb000064400000002666150402106350014534 0ustar00require 'rake/dsl_definition'
require 'rake/contrib/compositepublisher'

module Rake

  # Publish an entire directory to an existing remote directory using
  # SSH.
  class SshDirPublisher
    include Rake::DSL

    # Creates an SSH publisher which will scp all files in +local_dir+ to
    # +remote_dir+ on +host+

    def initialize(host, remote_dir, local_dir)
      @host = host
      @remote_dir = remote_dir
      @local_dir = local_dir
    end

    # Uploads the files

    def upload
      sh "scp", "-rq", "#{@local_dir}/*", "#{@host}:#{@remote_dir}"
    end
  end

  # Publish an entire directory to a fresh remote directory using SSH.
  class SshFreshDirPublisher < SshDirPublisher

    # Uploads the files after removing the existing remote directory.

    def upload
      sh "ssh", @host, "rm", "-rf", @remote_dir rescue nil
      sh "ssh", @host, "mkdir",     @remote_dir
      super
    end
  end

  # Publish a list of files to an existing remote directory.
  class SshFilePublisher
    include Rake::DSL

    # Creates an SSH publisher which will scp all +files+ in +local_dir+ to
    # +remote_dir+ on +host+.

    def initialize(host, remote_dir, local_dir, *files)
      @host = host
      @remote_dir = remote_dir
      @local_dir = local_dir
      @files = files
    end

    # Uploads the files

    def upload
      @files.each do |fn|
        sh "scp", "-q", "#{@local_dir}/#{fn}", "#{@host}:#{@remote_dir}"
      end
    end
  end
end
lib64/ruby/2.2.0/rake/contrib/ftptools.rb000064400000006236150402106350013670 0ustar00# = Tools for FTP uploading.
#
# This file is still under development and is not released for general
# use.

require 'date'
require 'net/ftp'
require 'rake/file_list'

module Rake # :nodoc:

  class FtpFile # :nodoc: all
    attr_reader :name, :size, :owner, :group, :time

    def self.date
      @date_class ||= Date
    end

    def self.time
      @time_class ||= Time
    end

    def initialize(path, entry)
      @path = path
      @mode, _, @owner, @group, size, d1, d2, d3, @name = entry.split(' ')
      @size = size.to_i
      @time = determine_time(d1, d2, d3)
    end

    def path
      File.join(@path, @name)
    end

    def directory?
      @mode[0] == ?d
    end

    def mode
      parse_mode(@mode)
    end

    def symlink?
      @mode[0] == ?l
    end

    private # --------------------------------------------------------

    def parse_mode(m)
      result = 0
      (1..9).each do |i|
        result = 2 * result + ((m[i] == ?-) ? 0 : 1)
      end
      result
    end

    def determine_time(d1, d2, d3)
      now = self.class.time.now
      if /:/ !~ d3
        result = Time.parse("#{d1} #{d2} #{d3}")
      else
        result = Time.parse("#{d1} #{d2} #{now.year} #{d3}")
        result = Time.parse("#{d1} #{d2} #{now.year - 1} #{d3}") if
          result > now
      end
      result
    end
  end

  ##
  # Manage the uploading of files to an FTP account.
  class FtpUploader # :nodoc:

    # Log uploads to standard output when true.
    attr_accessor :verbose

    class << FtpUploader
      # Create an uploader and pass it to the given block as +up+.
      # When the block is complete, close the uploader.
      def connect(path, host, account, password)
        up = self.new(path, host, account, password)
        begin
          yield(up)
        ensure
          up.close
        end
      end
    end

    # Create an FTP uploader targeting the directory +path+ on +host+
    # using the given account and password.  +path+ will be the root
    # path of the uploader.
    def initialize(path, host, account, password)
      @created = Hash.new
      @path = path
      @ftp = Net::FTP.new(host, account, password)
      makedirs(@path)
      @ftp.chdir(@path)
    end

    # Create the directory +path+ in the uploader root path.
    def makedirs(path)
      route = []
      File.split(path).each do |dir|
        route << dir
        current_dir = File.join(route)
        if @created[current_dir].nil?
          @created[current_dir] = true
          $stderr.puts "Creating Directory  #{current_dir}" if @verbose
          @ftp.mkdir(current_dir) rescue nil
        end
      end
    end

    # Upload all files matching +wildcard+ to the uploader's root
    # path.
    def upload_files(wildcard)
      FileList.glob(wildcard).each do |fn|
        upload(fn)
      end
    end

    # Close the uploader.
    def close
      @ftp.close
    end

    private # --------------------------------------------------------

    # Upload a single file to the uploader's root path.
    def upload(file)
      $stderr.puts "Uploading #{file}" if @verbose
      dir = File.dirname(file)
      makedirs(dir)
      @ftp.putbinaryfile(file, file) unless File.directory?(file)
    end
  end
end
lib64/ruby/2.2.0/rake/thread_history_display.rb000064400000002155150402106350015127 0ustar00require 'rake/private_reader'

module Rake

  class ThreadHistoryDisplay    # :nodoc: all
    include Rake::PrivateReader

    private_reader :stats, :items, :threads

    def initialize(stats)
      @stats   = stats
      @items   = { :_seq_ =>  1  }
      @threads = { :_seq_ => "A" }
    end

    def show
      puts "Job History:"
      stats.each do |stat|
        stat[:data] ||= {}
        rename(stat, :thread, threads)
        rename(stat[:data], :item_id, items)
        rename(stat[:data], :new_thread, threads)
        rename(stat[:data], :deleted_thread, threads)
        printf("%8d %2s %-20s %s\n",
          (stat[:time] * 1_000_000).round,
          stat[:thread],
          stat[:event],
          stat[:data].map do |k, v| "#{k}:#{v}" end.join(" "))
      end
    end

    private

    def rename(hash, key, renames)
      if hash && hash[key]
        original = hash[key]
        value = renames[original]
        unless value
          value = renames[:_seq_]
          renames[:_seq_] = renames[:_seq_].succ
          renames[original] = value
        end
        hash[key] = value
      end
    end
  end

end
lib64/ruby/2.2.0/rake/rule_recursion_overflow_error.rb000064400000000541150402106350016543 0ustar00
module Rake

  # Error indicating a recursion overflow error in task selection.
  class RuleRecursionOverflowError < StandardError
    def initialize(*args)
      super
      @targets = []
    end

    def add_target(target)
      @targets << target
    end

    def message
      super + ": [" + @targets.reverse.join(' => ') + "]"
    end
  end

end
lib64/ruby/2.2.0/rake/scope.rb000064400000001562150402106350011464 0ustar00module Rake
  class Scope < LinkedList # :nodoc: all

    # Path for the scope.
    def path
      map { |item| item.to_s }.reverse.join(":")
    end

    # Path for the scope + the named path.
    def path_with_task_name(task_name)
      "#{path}:#{task_name}"
    end

    # Trim +n+ innermost scope levels from the scope. In no case will
    # this trim beyond the toplevel scope.
    def trim(n)
      result = self
      while n > 0 && ! result.empty?
        result = result.tail
        n -= 1
      end
      result
    end

    # Scope lists always end with an EmptyScope object. See Null
    # Object Pattern)
    class EmptyScope < EmptyLinkedList
      @parent = Scope

      def path
        ""
      end

      def path_with_task_name(task_name)
        task_name
      end
    end

    # Singleton null object for an empty scope.
    EMPTY = EmptyScope.new
  end
end
lib64/ruby/2.2.0/rake/task_manager.rb000064400000021531150402106350013005 0ustar00module Rake

  # The TaskManager module is a mixin for managing tasks.
  module TaskManager
    # Track the last comment made in the Rakefile.
    attr_accessor :last_description

    # TODO: Remove in Rake 11

    alias :last_comment :last_description # :nodoc: Backwards compatibility

    def initialize # :nodoc:
      super
      @tasks = Hash.new
      @rules = Array.new
      @scope = Scope.make
      @last_description = nil
    end

    def create_rule(*args, &block) # :nodoc:
      pattern, args, deps = resolve_args(args)
      pattern = Regexp.new(Regexp.quote(pattern) + '$') if String === pattern
      @rules << [pattern, args, deps, block]
    end

    def define_task(task_class, *args, &block) # :nodoc:
      task_name, arg_names, deps = resolve_args(args)

      original_scope = @scope
      if String === task_name and
         not task_class.ancestors.include? Rake::FileTask then
        task_name, *definition_scope = *(task_name.split(":").reverse)
        @scope = Scope.make(*(definition_scope + @scope.to_a))
      end

      task_name = task_class.scope_name(@scope, task_name)
      deps = [deps] unless deps.respond_to?(:to_ary)
      deps = deps.map { |d| Rake.from_pathname(d).to_s }
      task = intern(task_class, task_name)
      task.set_arg_names(arg_names) unless arg_names.empty?
      if Rake::TaskManager.record_task_metadata
        add_location(task)
        task.add_description(get_description(task))
      end
      task.enhance(deps, &block)
    ensure
      @scope = original_scope
    end

    # Lookup a task.  Return an existing task if found, otherwise
    # create a task of the current type.
    def intern(task_class, task_name)
      @tasks[task_name.to_s] ||= task_class.new(task_name, self)
    end

    # Find a matching task for +task_name+.
    def [](task_name, scopes=nil)
      task_name = task_name.to_s
      self.lookup(task_name, scopes) or
        enhance_with_matching_rule(task_name) or
        synthesize_file_task(task_name) or
        fail "Don't know how to build task '#{task_name}'"
    end

    def synthesize_file_task(task_name) # :nodoc:
      return nil unless File.exist?(task_name)
      define_task(Rake::FileTask, task_name)
    end

    # Resolve the arguments for a task/rule.  Returns a triplet of
    # [task_name, arg_name_list, prerequisites].
    def resolve_args(args)
      if args.last.is_a?(Hash)
        deps = args.pop
        resolve_args_with_dependencies(args, deps)
      else
        resolve_args_without_dependencies(args)
      end
    end

    # Resolve task arguments for a task or rule when there are no
    # dependencies declared.
    #
    # The patterns recognized by this argument resolving function are:
    #
    #   task :t
    #   task :t, [:a]
    #
    def resolve_args_without_dependencies(args)
      task_name = args.shift
      if args.size == 1 && args.first.respond_to?(:to_ary)
        arg_names = args.first.to_ary
      else
        arg_names = args
      end
      [task_name, arg_names, []]
    end
    private :resolve_args_without_dependencies

    # Resolve task arguments for a task or rule when there are
    # dependencies declared.
    #
    # The patterns recognized by this argument resolving function are:
    #
    #   task :t => [:d]
    #   task :t, [a] => [:d]
    #
    def resolve_args_with_dependencies(args, hash) # :nodoc:
      fail "Task Argument Error" if hash.size != 1
      key, value = hash.map { |k, v| [k, v] }.first
      if args.empty?
        task_name = key
        arg_names = []
        deps = value || []
      else
        task_name = args.shift
        arg_names = key
        deps = value
      end
      deps = [deps] unless deps.respond_to?(:to_ary)
      [task_name, arg_names, deps]
    end
    private :resolve_args_with_dependencies

    # If a rule can be found that matches the task name, enhance the
    # task with the prerequisites and actions from the rule.  Set the
    # source attribute of the task appropriately for the rule.  Return
    # the enhanced task or nil of no rule was found.
    def enhance_with_matching_rule(task_name, level=0)
      fail Rake::RuleRecursionOverflowError,
        "Rule Recursion Too Deep" if level >= 16
      @rules.each do |pattern, args, extensions, block|
        if pattern.match(task_name)
          task = attempt_rule(task_name, args, extensions, block, level)
          return task if task
        end
      end
      nil
    rescue Rake::RuleRecursionOverflowError => ex
      ex.add_target(task_name)
      fail ex
    end

    # List of all defined tasks in this application.
    def tasks
      @tasks.values.sort_by { |t| t.name }
    end

    # List of all the tasks defined in the given scope (and its
    # sub-scopes).
    def tasks_in_scope(scope)
      prefix = scope.path
      tasks.select { |t|
        /^#{prefix}:/ =~ t.name
      }
    end

    # Clear all tasks in this application.
    def clear
      @tasks.clear
      @rules.clear
    end

    # Lookup a task, using scope and the scope hints in the task name.
    # This method performs straight lookups without trying to
    # synthesize file tasks or rules.  Special scope names (e.g. '^')
    # are recognized.  If no scope argument is supplied, use the
    # current scope.  Return nil if the task cannot be found.
    def lookup(task_name, initial_scope=nil)
      initial_scope ||= @scope
      task_name = task_name.to_s
      if task_name =~ /^rake:/
        scopes = Scope.make
        task_name = task_name.sub(/^rake:/, '')
      elsif task_name =~ /^(\^+)/
        scopes = initial_scope.trim($1.size)
        task_name = task_name.sub(/^(\^+)/, '')
      else
        scopes = initial_scope
      end
      lookup_in_scope(task_name, scopes)
    end

    # Lookup the task name
    def lookup_in_scope(name, scope)
      loop do
        tn = scope.path_with_task_name(name)
        task = @tasks[tn]
        return task if task
        break if scope.empty?
        scope = scope.tail
      end
      nil
    end
    private :lookup_in_scope

    # Return the list of scope names currently active in the task
    # manager.
    def current_scope
      @scope
    end

    # Evaluate the block in a nested namespace named +name+.  Create
    # an anonymous namespace if +name+ is nil.
    def in_namespace(name)
      name ||= generate_name
      @scope = Scope.new(name, @scope)
      ns = NameSpace.new(self, @scope)
      yield(ns)
      ns
    ensure
      @scope = @scope.tail
    end

    private

    # Add a location to the locations field of the given task.
    def add_location(task)
      loc = find_location
      task.locations << loc if loc
      task
    end

    # Find the location that called into the dsl layer.
    def find_location
      locations = caller
      i = 0
      while locations[i]
        return locations[i + 1] if locations[i] =~ /rake\/dsl_definition.rb/
        i += 1
      end
      nil
    end

    # Generate an anonymous namespace name.
    def generate_name
      @seed ||= 0
      @seed += 1
      "_anon_#{@seed}"
    end

    def trace_rule(level, message) # :nodoc:
      options.trace_output.puts "#{"    " * level}#{message}" if
        Rake.application.options.trace_rules
    end

    # Attempt to create a rule given the list of prerequisites.
    def attempt_rule(task_name, args, extensions, block, level)
      sources = make_sources(task_name, extensions)
      prereqs = sources.map { |source|
        trace_rule level, "Attempting Rule #{task_name} => #{source}"
        if File.exist?(source) || Rake::Task.task_defined?(source)
          trace_rule level, "(#{task_name} => #{source} ... EXIST)"
          source
        elsif parent = enhance_with_matching_rule(source, level + 1)
          trace_rule level, "(#{task_name} => #{source} ... ENHANCE)"
          parent.name
        else
          trace_rule level, "(#{task_name} => #{source} ... FAIL)"
          return nil
        end
      }
      task = FileTask.define_task(task_name, {args => prereqs}, &block)
      task.sources = prereqs
      task
    end

    # Make a list of sources from the list of file name extensions /
    # translation procs.
    def make_sources(task_name, extensions)
      result = extensions.map { |ext|
        case ext
        when /%/
          task_name.pathmap(ext)
        when %r{/}
          ext
        when /^\./
          task_name.ext(ext)
        when String
          ext
        when Proc, Method
          if ext.arity == 1
            ext.call(task_name)
          else
            ext.call
          end
        else
          fail "Don't know how to handle rule dependent: #{ext.inspect}"
        end
      }
      result.flatten
    end


    private

    # Return the current description, clearing it in the process.
    def get_description(task)
      desc = @last_description
      @last_description = nil
      desc
    end

    class << self
      attr_accessor :record_task_metadata # :nodoc:
      TaskManager.record_task_metadata = false
    end
  end

end
lib64/ruby/2.2.0/rake/name_space.rb000064400000001241150402106350012440 0ustar00##
# The NameSpace class will lookup task names in the scope defined by a
# +namespace+ command.

class Rake::NameSpace

  ##
  # Create a namespace lookup object using the given task manager
  # and the list of scopes.

  def initialize(task_manager, scope_list)
    @task_manager = task_manager
    @scope = scope_list.dup
  end

  ##
  # Lookup a task named +name+ in the namespace.

  def [](name)
    @task_manager.lookup(name, @scope)
  end

  ##
  # The scope of the namespace (a LinkedList)

  def scope
    @scope.dup
  end

  ##
  # Return the list of tasks defined in this and nested namespaces.

  def tasks
    @task_manager.tasks_in_scope(@scope)
  end

end

lib64/ruby/2.2.0/rake/pseudo_status.rb000064400000000567150402106350013261 0ustar00module Rake

  ##
  # Exit status class for times the system just gives us a nil.
  class PseudoStatus # :nodoc: all
    attr_reader :exitstatus

    def initialize(code=0)
      @exitstatus = code
    end

    def to_i
      @exitstatus << 8
    end

    def >>(n)
      to_i >> n
    end

    def stopped?
      false
    end

    def exited?
      true
    end
  end

end
lib64/ruby/2.2.0/rake/file_utils.rb000064400000007246150402106350012517 0ustar00require 'rbconfig'
require 'fileutils'

#--
# This a FileUtils extension that defines several additional commands to be
# added to the FileUtils utility functions.
module FileUtils
  # Path to the currently running Ruby program
  RUBY = ENV['RUBY'] || File.join(
    RbConfig::CONFIG['bindir'],
    RbConfig::CONFIG['ruby_install_name'] + RbConfig::CONFIG['EXEEXT']).
    sub(/.*\s.*/m, '"\&"')

  OPT_TABLE['sh']  = %w(noop verbose)
  OPT_TABLE['ruby'] = %w(noop verbose)

  # Run the system command +cmd+.  If multiple arguments are given the command
  # is run directly (without the shell, same semantics as Kernel::exec and
  # Kernel::system).
  #
  # It is recommended you use the multiple argument form over interpolating
  # user input for both usability and security reasons.  With the multiple
  # argument form you can easily process files with spaces or other shell
  # reserved characters in them.  With the multiple argument form your rake
  # tasks are not vulnerable to users providing an argument like
  # <code>; rm # -rf /</code>.
  #
  # If a block is given, upon command completion the block is called with an
  # OK flag (true on a zero exit status) and a Process::Status object.
  # Without a block a RuntimeError is raised when the command exits non-zero.
  #
  # Examples:
  #
  #   sh 'ls -ltr'
  #
  #   sh 'ls', 'file with spaces'
  #
  #   # check exit status after command runs
  #   sh %{grep pattern file} do |ok, res|
  #     if ! ok
  #       puts "pattern not found (status = #{res.exitstatus})"
  #     end
  #   end
  #
  def sh(*cmd, &block)
    options = (Hash === cmd.last) ? cmd.pop : {}
    shell_runner = block_given? ? block : create_shell_runner(cmd)
    set_verbose_option(options)
    options[:noop] ||= Rake::FileUtilsExt.nowrite_flag
    Rake.rake_check_options options, :noop, :verbose
    Rake.rake_output_message cmd.join(" ") if options[:verbose]

    unless options[:noop]
      res = rake_system(*cmd)
      status = $?
      status = Rake::PseudoStatus.new(1) if !res && status.nil?
      shell_runner.call(res, status)
    end
  end

  def create_shell_runner(cmd) # :nodoc:
    show_command = cmd.join(" ")
    show_command = show_command[0, 42] + "..." unless $trace
    lambda do |ok, status|
      ok or
        fail "Command failed with status (#{status.exitstatus}): " +
        "[#{show_command}]"
    end
  end
  private :create_shell_runner

  def set_verbose_option(options) # :nodoc:
    unless options.key? :verbose
      options[:verbose] =
        (Rake::FileUtilsExt.verbose_flag == Rake::FileUtilsExt::DEFAULT) ||
        Rake::FileUtilsExt.verbose_flag
    end
  end
  private :set_verbose_option

  def rake_system(*cmd) # :nodoc:
    Rake::AltSystem.system(*cmd)
  end
  private :rake_system

  # Run a Ruby interpreter with the given arguments.
  #
  # Example:
  #   ruby %{-pe '$_.upcase!' <README}
  #
  def ruby(*args, &block)
    options = (Hash === args.last) ? args.pop : {}
    if args.length > 1
      sh(*([RUBY] + args + [options]), &block)
    else
      sh("#{RUBY} #{args.first}", options, &block)
    end
  end

  LN_SUPPORTED = [true]

  #  Attempt to do a normal file link, but fall back to a copy if the link
  #  fails.
  def safe_ln(*args)
    if ! LN_SUPPORTED[0]
      cp(*args)
    else
      begin
        ln(*args)
      rescue StandardError, NotImplementedError
        LN_SUPPORTED[0] = false
        cp(*args)
      end
    end
  end

  # Split a file path into individual directory names.
  #
  # Example:
  #   split_all("a/b/c") =>  ['a', 'b', 'c']
  #
  def split_all(path)
    head, tail = File.split(path)
    return [tail] if head == '.' || tail == '/'
    return [head, tail] if head == '/'
    return split_all(head) + [tail]
  end
end
lib64/ruby/2.2.0/shell/version.rb000064400000000377150402106350012230 0ustar00#
#   version.rb - shell version definition file
#       $Release Version: 0.7$
#       $Revision: 38201 $
#       by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

class Shell # :nodoc:
  @RELEASE_VERSION = "0.7"
  @LAST_UPDATE_DATE = "07/03/20"
end
lib64/ruby/2.2.0/shell/system-command.rb000064400000007072150402106350013502 0ustar00#
#   shell/system-command.rb -
#       $Release Version: 0.7 $
#       $Revision: 46969 $
#       by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "shell/filter"

class Shell
  class SystemCommand < Filter
    def initialize(sh, command, *opts)
      if t = opts.find{|opt| !opt.kind_of?(String) && opt.class}
        Shell.Fail Error::TypeError, t.class, "String"
      end
      super(sh)
      @command = command
      @opts = opts

      @input_queue = Queue.new
      @pid = nil

      sh.process_controller.add_schedule(self)
    end

    attr_reader :command
    alias name command

    def wait?
      @shell.process_controller.waiting_job?(self)
    end

    def active?
      @shell.process_controller.active_job?(self)
    end

    def input=(inp)
      super
      if active?
        start_export
      end
    end

    def start
      notify([@command, *@opts].join(" "))

      @pid, @pipe_in, @pipe_out = @shell.process_controller.sfork(self) {
        Dir.chdir @shell.pwd
        $0 = @command
        exec(@command, *@opts)
      }
      if @input
        start_export
      end
      start_import
    end

    def flush
      @pipe_out.flush if @pipe_out and !@pipe_out.closed?
    end

    def terminate
      begin
        @pipe_in.close
      rescue IOError
      end
      begin
        @pipe_out.close
      rescue IOError
      end
    end

    def kill(sig)
      if @pid
        Process.kill(sig, @pid)
      end
    end

    def start_import
      notify "Job(%id) start imp-pipe.", @shell.debug?
      _eop = true
      Thread.start {
        begin
          while l = @pipe_in.gets
            @input_queue.push l
          end
          _eop = false
        rescue Errno::EPIPE
          _eop = false
        ensure
          if !ProcessController::USING_AT_EXIT_WHEN_PROCESS_EXIT and _eop
            notify("warn: Process finishing...",
                   "wait for Job[%id] to finish pipe importing.",
                   "You can use Shell#transact or Shell#check_point for more safe execution.")
            redo
          end
          notify "job(%id}) close imp-pipe.", @shell.debug?
          @input_queue.push :EOF
          @pipe_in.close
        end
      }
    end

    def start_export
      notify "job(%id) start exp-pipe.", @shell.debug?
      _eop = true
      Thread.start{
        begin
          @input.each do |l|
            ProcessController::block_output_synchronize do
              @pipe_out.print l
            end
          end
          _eop = false
        rescue Errno::EPIPE, Errno::EIO
          _eop = false
        ensure
          if !ProcessController::USING_AT_EXIT_WHEN_PROCESS_EXIT and _eop
            notify("shell: warn: Process finishing...",
                   "wait for Job(%id) to finish pipe exporting.",
                   "You can use Shell#transact or Shell#check_point for more safe execution.")
            redo
          end
          notify "job(%id) close exp-pipe.", @shell.debug?
          @pipe_out.close
        end
      }
    end

    alias super_each each
    def each(rs = nil)
      while (l = @input_queue.pop) != :EOF
        yield l
      end
    end

    # ex)
    #    if you wish to output:
    #       "shell: job(#{@command}:#{@pid}) close pipe-out."
    #    then
    #       mes: "job(%id) close pipe-out."
    #    yorn: Boolean(@shell.debug? or @shell.verbose?)
    def notify(*opts)
      @shell.notify(*opts) do |mes|
        yield mes if iterator?

        mes.gsub!("%id", "#{@command}:##{@pid}")
        mes.gsub!("%name", "#{@command}")
        mes.gsub!("%pid", "#{@pid}")
        mes
      end
    end
  end
end
lib64/ruby/2.2.0/shell/process-controller.rb000064400000016723150402106350014404 0ustar00#
#   shell/process-controller.rb -
#       $Release Version: 0.7 $
#       $Revision: 47284 $
#       by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#
require "forwardable"

require "thread"
require "sync"

class Shell
  class ProcessController

    @ProcessControllers = {}
    @ProcessControllersMonitor = Mutex.new
    @ProcessControllersCV = ConditionVariable.new

    @BlockOutputMonitor = Mutex.new
    @BlockOutputCV = ConditionVariable.new

    class << self
      extend Forwardable

      def_delegator("@ProcessControllersMonitor",
                    "synchronize", "process_controllers_exclusive")

      def active_process_controllers
        process_controllers_exclusive do
          @ProcessControllers.dup
        end
      end

      def activate(pc)
        process_controllers_exclusive do
          @ProcessControllers[pc] ||= 0
          @ProcessControllers[pc] += 1
        end
      end

      def inactivate(pc)
        process_controllers_exclusive do
          if @ProcessControllers[pc]
            if (@ProcessControllers[pc] -= 1) == 0
              @ProcessControllers.delete(pc)
              @ProcessControllersCV.signal
            end
          end
        end
      end

      def each_active_object
        process_controllers_exclusive do
          for ref in @ProcessControllers.keys
            yield ref
          end
        end
      end

      def block_output_synchronize(&b)
        @BlockOutputMonitor.synchronize(&b)
      end

      def wait_to_finish_all_process_controllers
        process_controllers_exclusive do
          while !@ProcessControllers.empty?
            Shell::notify("Process finishing, but active shell exists",
                          "You can use Shell#transact or Shell#check_point for more safe execution.")
            if Shell.debug?
              for pc in @ProcessControllers.keys
                Shell::notify(" Not finished jobs in "+pc.shell.to_s)
                for com in pc.jobs
                  com.notify("  Jobs: %id")
                end
              end
            end
            @ProcessControllersCV.wait(@ProcessControllersMonitor)
          end
        end
      end
    end

    # for shell-command complete finish at this process exit.
    USING_AT_EXIT_WHEN_PROCESS_EXIT = true
    at_exit do
      wait_to_finish_all_process_controllers unless $@
    end

    def initialize(shell)
      @shell = shell
      @waiting_jobs = []
      @active_jobs = []
      @jobs_sync = Sync.new

      @job_monitor = Mutex.new
      @job_condition = ConditionVariable.new
    end

    attr_reader :shell

    def jobs
      jobs = []
      @jobs_sync.synchronize(:SH) do
        jobs.concat @waiting_jobs
        jobs.concat @active_jobs
      end
      jobs
    end

    def active_jobs
      @active_jobs
    end

    def waiting_jobs
      @waiting_jobs
    end

    def jobs_exist?
      @jobs_sync.synchronize(:SH) do
        @active_jobs.empty? or @waiting_jobs.empty?
      end
    end

    def active_jobs_exist?
      @jobs_sync.synchronize(:SH) do
        @active_jobs.empty?
      end
    end

    def waiting_jobs_exist?
      @jobs_sync.synchronize(:SH) do
        @waiting_jobs.empty?
      end
    end

    # schedule a command
    def add_schedule(command)
      @jobs_sync.synchronize(:EX) do
        ProcessController.activate(self)
        if @active_jobs.empty?
          start_job command
        else
          @waiting_jobs.push(command)
        end
      end
    end

    # start a job
    def start_job(command = nil)
      @jobs_sync.synchronize(:EX) do
        if command
          return if command.active?
          @waiting_jobs.delete command
        else
          command = @waiting_jobs.shift

          return unless command
        end
        @active_jobs.push command
        command.start

        # start all jobs that input from the job
        for job in @waiting_jobs.dup
          start_job(job) if job.input == command
        end
      end
    end

    def waiting_job?(job)
      @jobs_sync.synchronize(:SH) do
        @waiting_jobs.include?(job)
      end
    end

    def active_job?(job)
      @jobs_sync.synchronize(:SH) do
        @active_jobs.include?(job)
      end
    end

    # terminate a job
    def terminate_job(command)
      @jobs_sync.synchronize(:EX) do
        @active_jobs.delete command
        ProcessController.inactivate(self)
        if @active_jobs.empty?
          command.notify("start_job in terminate_job(%id)", Shell::debug?)
          start_job
        end
      end
    end

    # kill a job
    def kill_job(sig, command)
      @jobs_sync.synchronize(:EX) do
        if @waiting_jobs.delete command
          ProcessController.inactivate(self)
          return
        elsif @active_jobs.include?(command)
          begin
            r = command.kill(sig)
            ProcessController.inactivate(self)
          rescue
            print "Shell: Warn: $!\n" if @shell.verbose?
            return nil
          end
          @active_jobs.delete command
          r
        end
      end
    end

    # wait for all jobs to terminate
    def wait_all_jobs_execution
      @job_monitor.synchronize do
        begin
          while !jobs.empty?
            @job_condition.wait(@job_monitor)
            for job in jobs
              job.notify("waiting job(%id)", Shell::debug?)
            end
          end
        ensure
          redo unless jobs.empty?
        end
      end
    end

    # simple fork
    def sfork(command)
      pipe_me_in, pipe_peer_out = IO.pipe
      pipe_peer_in, pipe_me_out = IO.pipe


      pid = nil
      pid_mutex = Mutex.new
      pid_cv = ConditionVariable.new

      Thread.start do
        ProcessController.block_output_synchronize do
          STDOUT.flush
          ProcessController.each_active_object do |pc|
            for jobs in pc.active_jobs
              jobs.flush
            end
          end

          pid = fork {
            Thread.list.each do |th|
              th.kill unless Thread.current == th
            end

            STDIN.reopen(pipe_peer_in)
            STDOUT.reopen(pipe_peer_out)

            ObjectSpace.each_object(IO) do |io|
              if ![STDIN, STDOUT, STDERR].include?(io)
                io.close unless io.closed?
              end
            end

            yield
          }
        end
        pid_cv.signal

        pipe_peer_in.close
        pipe_peer_out.close
        command.notify "job(%name:##{pid}) start", @shell.debug?

        begin
          _pid = nil
          command.notify("job(%id) start to waiting finish.", @shell.debug?)
          _pid = Process.waitpid(pid, nil)
        rescue Errno::ECHILD
          command.notify "warn: job(%id) was done already waitpid."
          _pid = true
        ensure
          command.notify("Job(%id): Wait to finish when Process finished.", @shell.debug?)
          # when the process ends, wait until the command terminates
          if USING_AT_EXIT_WHEN_PROCESS_EXIT or _pid
          else
            command.notify("notice: Process finishing...",
                           "wait for Job[%id] to finish.",
                           "You can use Shell#transact or Shell#check_point for more safe execution.")
            redo
          end

          @job_monitor.synchronize do
            terminate_job(command)
            @job_condition.signal
            command.notify "job(%id) finish.", @shell.debug?
          end
        end
      end

      pid_mutex.synchronize do
        while !pid
          pid_cv.wait(pid_mutex)
        end
      end

      return pid, pipe_me_in, pipe_me_out
    end
  end
end
lib64/ruby/2.2.0/shell/builtin-command.rb000064400000004627150402106350013627 0ustar00#
#   shell/builtin-command.rb -
#       $Release Version: 0.7 $
#       $Revision: 47246 $
#       by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "shell/filter"

class Shell
  class BuiltInCommand<Filter
    def wait?
      false
    end
    def active?
      true
    end
  end

  class Void < BuiltInCommand
    def initialize(sh, *opts)
      super sh
    end

    def each(rs = nil)
      # do nothing
    end
  end

  class Echo < BuiltInCommand
    def initialize(sh, *strings)
      super sh
      @strings = strings
    end

    def each(rs = nil)
      rs =  @shell.record_separator unless rs
      for str  in @strings
        yield str + rs
      end
    end
  end

  class Cat < BuiltInCommand
    def initialize(sh, *filenames)
      super sh
      @cat_files = filenames
    end

    def each(rs = nil)
      if @cat_files.empty?
        super
      else
        for src in @cat_files
          @shell.foreach(src, rs){|l| yield l}
        end
      end
    end
  end

  class Glob < BuiltInCommand
    def initialize(sh, pattern)
      super sh

      @pattern = pattern
    end

    def each(rs = nil)
      if @pattern[0] == ?/
        @files = Dir[@pattern]
      else
        prefix = @shell.pwd+"/"
        @files = Dir[prefix+@pattern].collect{|p| p.sub(prefix, "")}
      end
      rs =  @shell.record_separator unless rs
      for f in @files
        yield f+rs
      end
    end
  end

  class AppendIO < BuiltInCommand
    def initialize(sh, io, filter)
      super sh
      @input = filter
      @io = io
    end

    def input=(filter)
      @input.input=filter
      for l in @input
        @io << l
      end
    end

  end

  class AppendFile < AppendIO
    def initialize(sh, to_filename, filter)
      @file_name = to_filename
      io = sh.open(to_filename, "a")
      super(sh, io, filter)
    end

    def input=(filter)
      begin
        super
      ensure
        @io.close
      end
    end
  end

  class Tee < BuiltInCommand
    def initialize(sh, filename)
      super sh
      @to_filename = filename
    end

    def each(rs = nil)
      to = @shell.open(@to_filename, "w")
      begin
        super{|l| to << l; yield l}
      ensure
        to.close
      end
    end
  end

  class Concat < BuiltInCommand
    def initialize(sh, *jobs)
      super(sh)
      @jobs = jobs
    end

    def each(rs = nil)
      while job = @jobs.shift
        job.each{|l| yield l}
      end
    end
  end
end
lib64/ruby/2.2.0/shell/error.rb000064400000001075150402106350011670 0ustar00#
#   shell/error.rb -
#       $Release Version: 0.7 $
#       $Revision: 31641 $
#       by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "e2mmap"

class Shell
  module Error
    extend Exception2MessageMapper
    def_e2message TypeError, "wrong argument type %s (expected %s)"

    def_exception :DirStackEmpty, "Directory stack empty."
    def_exception :CantDefine, "Can't define method(%s, %s)."
    def_exception :CantApplyMethod, "This method(%s) does not apply to this type(%s)."
    def_exception :CommandNotFound, "Command not found(%s)."
  end
end

lib64/ruby/2.2.0/shell/command-processor.rb000064400000045051150402106350014174 0ustar00#
#   shell/command-controller.rb -
#       $Release Version: 0.7 $
#       $Revision: 47246 $
#       by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

require "e2mmap"
require "thread"

require "shell/error"
require "shell/filter"
require "shell/system-command"
require "shell/builtin-command"

class Shell
  # In order to execute a command on your OS, you need to define it as a
  # Shell method.
  #
  # Alternatively, you can execute any command via
  # Shell::CommandProcessor#system even if it is not defined.
  class CommandProcessor

    #
    # initialize of Shell and related classes.
    #
    m = [:initialize, :expand_path]
    if Object.methods.first.kind_of?(String)
      NoDelegateMethods = m.collect{|x| x.id2name}
    else
      NoDelegateMethods = m
    end

    def self.initialize

      install_builtin_commands

      # define CommandProcessor#methods to Shell#methods and Filter#methods
      for m in CommandProcessor.instance_methods(false) - NoDelegateMethods
        add_delegate_command_to_shell(m)
      end

      def self.method_added(id)
        add_delegate_command_to_shell(id)
      end
    end

    #
    # include run file.
    #
    def self.run_config
      begin
        load File.expand_path("~/.rb_shell") if ENV.key?("HOME")
      rescue LoadError, Errno::ENOENT
      rescue
        print "load error: #{rc}\n"
        print $!.class, ": ", $!, "\n"
        for err in $@[0, $@.size - 2]
          print "\t", err, "\n"
        end
      end
    end

    def initialize(shell)
      @shell = shell
      @system_commands = {}
    end

    #
    # CommandProcessor#expand_path(path)
    #     path:   String
    #     return: String
    #   returns the absolute path for <path>
    #
    def expand_path(path)
      @shell.expand_path(path)
    end

    # call-seq:
    #   foreach(path, record_separator) -> Enumerator
    #   foreach(path, record_separator) { block }
    #
    # See IO.foreach when +path+ is a file.
    #
    # See Dir.foreach when +path+ is a directory.
    #
    def foreach(path = nil, *rs)
      path = "." unless path
      path = expand_path(path)

      if File.directory?(path)
        Dir.foreach(path){|fn| yield fn}
      else
        IO.foreach(path, *rs){|l| yield l}
      end
    end

    # call-seq:
    #   open(path, mode, permissions) -> Enumerator
    #   open(path, mode, permissions) { block }
    #
    # See IO.open when +path+ is a file.
    #
    # See Dir.open when +path+ is a directory.
    #
    def open(path, mode = nil, perm = 0666, &b)
      path = expand_path(path)
      if File.directory?(path)
        Dir.open(path, &b)
      else
        if @shell.umask
          f = File.open(path, mode, perm)
          File.chmod(perm & ~@shell.umask, path)
          if block_given?
            f.each(&b)
          end
          f
        else
          File.open(path, mode, perm, &b)
        end
      end
    end

    # call-seq:
    #   unlink(path)
    #
    # See IO.unlink when +path+ is a file.
    #
    # See Dir.unlink when +path+ is a directory.
    #
    def unlink(path)
      @shell.check_point

      path = expand_path(path)
      if File.directory?(path)
        Dir.unlink(path)
      else
        IO.unlink(path)
      end
      Void.new(@shell)
    end

    # See Shell::CommandProcessor#test
    alias top_level_test test
    # call-seq:
    #   test(command, file1, file2) ->  true or false
    #   [command, file1, file2] ->  true or false
    #
    # Tests if the given +command+ exists in +file1+, or optionally +file2+.
    #
    # Example:
    #     sh[?e, "foo"]
    #     sh[:e, "foo"]
    #     sh["e", "foo"]
    #     sh[:exists?, "foo"]
    #     sh["exists?", "foo"]
    #
    def test(command, file1, file2=nil)
      file1 = expand_path(file1)
      file2 = expand_path(file2) if file2
      command = command.id2name if command.kind_of?(Symbol)

      case command
      when Integer
        if file2
          top_level_test(command, file1, file2)
        else
          top_level_test(command, file1)
        end
      when String
        if command.size == 1
          if file2
            top_level_test(command, file1, file2)
          else
            top_level_test(command, file1)
          end
        else
          if file2
            FileTest.send(command, file1, file2)
          else
            FileTest.send(command, file1)
          end
        end
      end
    end
    # See Shell::CommandProcessor#test
    alias [] test

    # call-seq:
    #   mkdir(path)
    #
    # Same as Dir.mkdir, except multiple directories are allowed.
    def mkdir(*path)
      @shell.check_point
      notify("mkdir #{path.join(' ')}")

      perm = nil
      if path.last.kind_of?(Integer)
        perm = path.pop
      end
      for dir in path
        d = expand_path(dir)
        if perm
          Dir.mkdir(d, perm)
        else
          Dir.mkdir(d)
        end
        File.chmod(d, 0666 & ~@shell.umask) if @shell.umask
      end
      Void.new(@shell)
    end

    # call-seq:
    #   rmdir(path)
    #
    # Same as Dir.rmdir, except multiple directories are allowed.
    def rmdir(*path)
      @shell.check_point
      notify("rmdir #{path.join(' ')}")

      for dir in path
        Dir.rmdir(expand_path(dir))
      end
      Void.new(@shell)
    end

    # call-seq:
    #   system(command, *options) -> SystemCommand
    #
    # Executes the given +command+ with the +options+ parameter.
    #
    # Example:
    #     print sh.system("ls", "-l")
    #     sh.system("ls", "-l") | sh.head > STDOUT
    #
    def system(command, *opts)
      if opts.empty?
        if command =~ /\*|\?|\{|\}|\[|\]|<|>|\(|\)|~|&|\||\\|\$|;|'|`|"|\n/
          return SystemCommand.new(@shell, find_system_command("sh"), "-c", command)
        else
          command, *opts = command.split(/\s+/)
        end
      end
      SystemCommand.new(@shell, find_system_command(command), *opts)
    end

    # call-seq:
    #   rehash
    #
    # Clears the command hash table.
    def rehash
      @system_commands = {}
    end

    def check_point # :nodoc:
      @shell.process_controller.wait_all_jobs_execution
    end
    alias finish_all_jobs check_point # :nodoc:

    # call-seq:
    #   transact { block }
    #
    # Executes a block as self
    #
    # Example:
    #   sh.transact { system("ls", "-l") | head > STDOUT }
    def transact(&block)
      begin
        @shell.instance_eval(&block)
      ensure
        check_point
      end
    end

    # call-seq:
    #   out(device) { block }
    #
    # Calls <code>device.print</code> on the result passing the _block_ to
    # #transact
    def out(dev = STDOUT, &block)
      dev.print transact(&block)
    end

    # call-seq:
    #   echo(*strings) ->  Echo
    #
    # Returns a Echo object, for the given +strings+
    def echo(*strings)
      Echo.new(@shell, *strings)
    end

    # call-seq:
    #   cat(*filename) ->  Cat
    #
    # Returns a Cat object, for the given +filenames+
    def cat(*filenames)
      Cat.new(@shell, *filenames)
    end

    #   def sort(*filenames)
    #     Sort.new(self, *filenames)
    #   end
    # call-seq:
    #   glob(pattern) ->  Glob
    #
    # Returns a Glob filter object, with the given +pattern+ object
    def glob(pattern)
      Glob.new(@shell, pattern)
    end

    def append(to, filter)
      case to
      when String
        AppendFile.new(@shell, to, filter)
      when IO
        AppendIO.new(@shell, to, filter)
      else
        Shell.Fail Error::CantApplyMethod, "append", to.class
      end
    end

    # call-seq:
    #   tee(file) ->  Tee
    #
    # Returns a Tee filter object, with the given +file+ command
    def tee(file)
      Tee.new(@shell, file)
    end

    # call-seq:
    #   concat(*jobs) ->  Concat
    #
    # Returns a Concat object, for the given +jobs+
    def concat(*jobs)
      Concat.new(@shell, *jobs)
    end

    # %pwd, %cwd -> @pwd
    def notify(*opts)
      Shell.notify(*opts) {|mes|
        yield mes if iterator?

        mes.gsub!("%pwd", "#{@cwd}")
        mes.gsub!("%cwd", "#{@cwd}")
      }
    end

    #
    # private functions
    #
    def find_system_command(command)
      return command if /^\// =~ command
      case path = @system_commands[command]
      when String
        if exists?(path)
          return path
        else
          Shell.Fail Error::CommandNotFound, command
        end
      when false
        Shell.Fail Error::CommandNotFound, command
      end

      for p in @shell.system_path
        path = join(p, command)
        begin
          st = File.stat(path)
        rescue SystemCallError
          next
        else
          next unless st.executable? and !st.directory?
          @system_commands[command] = path
          return path
        end
      end
      @system_commands[command] = false
      Shell.Fail Error::CommandNotFound, command
    end

    # call-seq:
    #   def_system_command(command, path)  ->  Shell::SystemCommand
    #
    # Defines a command, registering +path+ as a Shell method for the given
    # +command+.
    #
    #     Shell::CommandProcessor.def_system_command "ls"
    #       #=> Defines ls.
    #
    #     Shell::CommandProcessor.def_system_command "sys_sort", "sort"
    #       #=> Defines sys_sort as sort
    #
    def self.def_system_command(command, path = command)
      begin
        eval((d = %Q[def #{command}(*opts)
                  SystemCommand.new(@shell, '#{path}', *opts)
               end]), nil, __FILE__, __LINE__ - 1)
      rescue SyntaxError
        Shell.notify "warn: Can't define #{command} path: #{path}."
      end
      Shell.notify "Define #{command} path: #{path}.", Shell.debug?
      Shell.notify("Definition of #{command}: ", d,
             Shell.debug.kind_of?(Integer) && Shell.debug > 1)
    end

    # call-seq:
    #   undef_system_command(command) ->  self
    #
    # Undefines a command
    def self.undef_system_command(command)
      command = command.id2name if command.kind_of?(Symbol)
      remove_method(command)
      Shell.module_eval{remove_method(command)}
      Filter.module_eval{remove_method(command)}
      self
    end

    @alias_map = {}
    # Returns a list of aliased commands
    def self.alias_map
      @alias_map
    end
    # call-seq:
    #   alias_command(alias, command, *options) ->  self
    #
    # Creates a command alias at the given +alias+ for the given +command+,
    # passing any +options+ along with it.
    #
    #     Shell::CommandProcessor.alias_command "lsC", "ls", "-CBF", "--show-control-chars"
    #     Shell::CommandProcessor.alias_command("lsC", "ls"){|*opts| ["-CBF", "--show-control-chars", *opts]}
    #
    def self.alias_command(ali, command, *opts)
      ali = ali.id2name if ali.kind_of?(Symbol)
      command = command.id2name if command.kind_of?(Symbol)
      begin
        if iterator?
          @alias_map[ali.intern] = proc

          eval((d = %Q[def #{ali}(*opts)
                          @shell.__send__(:#{command},
                                          *(CommandProcessor.alias_map[:#{ali}].call *opts))
                        end]), nil, __FILE__, __LINE__ - 1)

        else
           args = opts.collect{|opt| '"' + opt + '"'}.join(",")
           eval((d = %Q[def #{ali}(*opts)
                          @shell.__send__(:#{command}, #{args}, *opts)
                        end]), nil, __FILE__, __LINE__ - 1)
        end
      rescue SyntaxError
        Shell.notify "warn: Can't alias #{ali} command: #{command}."
        Shell.notify("Definition of #{ali}: ", d)
        raise
      end
      Shell.notify "Define #{ali} command: #{command}.", Shell.debug?
      Shell.notify("Definition of #{ali}: ", d,
             Shell.debug.kind_of?(Integer) && Shell.debug > 1)
      self
    end

    # call-seq:
    #   unalias_command(alias)  ->  self
    #
    # Unaliases the given +alias+ command.
    def self.unalias_command(ali)
      ali = ali.id2name if ali.kind_of?(Symbol)
      @alias_map.delete ali.intern
      undef_system_command(ali)
    end

    # :nodoc:
    #
    # Delegates File and FileTest methods into Shell, including the following
    # commands:
    #
    # * Shell#blockdev?(file)
    # * Shell#chardev?(file)
    # * Shell#directory?(file)
    # * Shell#executable?(file)
    # * Shell#executable_real?(file)
    # * Shell#exist?(file)/Shell#exists?(file)
    # * Shell#file?(file)
    # * Shell#grpowned?(file)
    # * Shell#owned?(file)
    # * Shell#pipe?(file)
    # * Shell#readable?(file)
    # * Shell#readable_real?(file)
    # * Shell#setgid?(file)
    # * Shell#setuid?(file)
    # * Shell#size(file)/Shell#size?(file)
    # * Shell#socket?(file)
    # * Shell#sticky?(file)
    # * Shell#symlink?(file)
    # * Shell#writable?(file)
    # * Shell#writable_real?(file)
    # * Shell#zero?(file)
    # * Shell#syscopy(filename_from, filename_to)
    # * Shell#copy(filename_from, filename_to)
    # * Shell#move(filename_from, filename_to)
    # * Shell#compare(filename_from, filename_to)
    # * Shell#safe_unlink(*filenames)
    # * Shell#makedirs(*filenames)
    # * Shell#install(filename_from, filename_to, mode)
    #
    # And also, there are some aliases for convenience:
    #
    # * Shell#cmp	<- Shell#compare
    # * Shell#mv	<- Shell#move
    # * Shell#cp	<- Shell#copy
    # * Shell#rm_f	<- Shell#safe_unlink
    # * Shell#mkpath	<- Shell#makedirs
    #
    def self.def_builtin_commands(delegation_class, command_specs)
      for meth, args in command_specs
        arg_str = args.collect{|arg| arg.downcase}.join(", ")
        call_arg_str = args.collect{
          |arg|
          case arg
          when /^(FILENAME.*)$/
            format("expand_path(%s)", $1.downcase)
          when /^(\*FILENAME.*)$/
            # \*FILENAME* -> filenames.collect{|fn| expand_path(fn)}.join(", ")
            $1.downcase + '.collect{|fn| expand_path(fn)}'
          else
            arg
          end
        }.join(", ")
        d = %Q[def #{meth}(#{arg_str})
                    #{delegation_class}.#{meth}(#{call_arg_str})
                 end]
        Shell.notify "Define #{meth}(#{arg_str})", Shell.debug?
        Shell.notify("Definition of #{meth}: ", d,
                     Shell.debug.kind_of?(Integer) && Shell.debug > 1)
        eval d
      end
    end

    # call-seq:
    #     install_system_commands(prefix = "sys_")
    #
    # Defines all commands in the Shell.default_system_path as Shell method,
    # all with given +prefix+ appended to their names.
    #
    # Any invalid character names are converted to +_+, and errors are passed
    # to Shell.notify.
    #
    # Methods already defined are skipped.
    def self.install_system_commands(pre = "sys_")
      defined_meth = {}
      for m in Shell.methods
        defined_meth[m] = true
      end
      sh = Shell.new
      for path in Shell.default_system_path
        next unless sh.directory? path
        sh.cd path
        sh.foreach do
          |cn|
          if !defined_meth[pre + cn] && sh.file?(cn) && sh.executable?(cn)
            command = (pre + cn).gsub(/\W/, "_").sub(/^([0-9])/, '_\1')
            begin
              def_system_command(command, sh.expand_path(cn))
            rescue
              Shell.notify "warn: Can't define #{command} path: #{cn}"
            end
            defined_meth[command] = command
          end
        end
      end
    end

    def self.add_delegate_command_to_shell(id) # :nodoc:
      id = id.intern if id.kind_of?(String)
      name = id.id2name
      if Shell.method_defined?(id)
        Shell.notify "warn: override definition of Shell##{name}."
        Shell.notify "warn: alias Shell##{name} to Shell##{name}_org.\n"
        Shell.module_eval "alias #{name}_org #{name}"
      end
      Shell.notify "method added: Shell##{name}.", Shell.debug?
      Shell.module_eval(%Q[def #{name}(*args, &block)
                            begin
                              @command_processor.__send__(:#{name}, *args, &block)
                            rescue Exception
                              $@.delete_if{|s| /:in `__getobj__'$/ =~ s} #`
                              $@.delete_if{|s| /^\\(eval\\):/ =~ s}
                            raise
                            end
                          end], __FILE__, __LINE__)

      if Shell::Filter.method_defined?(id)
        Shell.notify "warn: override definition of Shell::Filter##{name}."
        Shell.notify "warn: alias Shell##{name} to Shell::Filter##{name}_org."
        Filter.module_eval "alias #{name}_org #{name}"
      end
      Shell.notify "method added: Shell::Filter##{name}.", Shell.debug?
      Filter.module_eval(%Q[def #{name}(*args, &block)
                            begin
                              self | @shell.__send__(:#{name}, *args, &block)
                            rescue Exception
                              $@.delete_if{|s| /:in `__getobj__'$/ =~ s} #`
                              $@.delete_if{|s| /^\\(eval\\):/ =~ s}
                            raise
                            end
                          end], __FILE__, __LINE__)
    end

    # Delegates File methods into Shell, including the following commands:
    #
    # * Shell#atime(file)
    # * Shell#basename(file, *opt)
    # * Shell#chmod(mode, *files)
    # * Shell#chown(owner, group, *file)
    # * Shell#ctime(file)
    # * Shell#delete(*file)
    # * Shell#dirname(file)
    # * Shell#ftype(file)
    # * Shell#join(*file)
    # * Shell#link(file_from, file_to)
    # * Shell#lstat(file)
    # * Shell#mtime(file)
    # * Shell#readlink(file)
    # * Shell#rename(file_from, file_to)
    # * Shell#split(file)
    # * Shell#stat(file)
    # * Shell#symlink(file_from, file_to)
    # * Shell#truncate(file, length)
    # * Shell#utime(atime, mtime, *file)
    #
    def self.install_builtin_commands
      # method related File.
      # (exclude open/foreach/unlink)
      normal_delegation_file_methods = [
        ["atime", ["FILENAME"]],
        ["basename", ["fn", "*opts"]],
        ["chmod", ["mode", "*FILENAMES"]],
        ["chown", ["owner", "group", "*FILENAME"]],
        ["ctime", ["FILENAMES"]],
        ["delete", ["*FILENAMES"]],
        ["dirname", ["FILENAME"]],
        ["ftype", ["FILENAME"]],
        ["join", ["*items"]],
        ["link", ["FILENAME_O", "FILENAME_N"]],
        ["lstat", ["FILENAME"]],
        ["mtime", ["FILENAME"]],
        ["readlink", ["FILENAME"]],
        ["rename", ["FILENAME_FROM", "FILENAME_TO"]],
        ["split", ["pathname"]],
        ["stat", ["FILENAME"]],
        ["symlink", ["FILENAME_O", "FILENAME_N"]],
        ["truncate", ["FILENAME", "length"]],
        ["utime", ["atime", "mtime", "*FILENAMES"]]]

      def_builtin_commands(File, normal_delegation_file_methods)
      alias_method :rm, :delete

      # method related FileTest
      def_builtin_commands(FileTest,
                   FileTest.singleton_methods(false).collect{|m| [m, ["FILENAME"]]})

    end

  end
end
lib64/ruby/2.2.0/shell/filter.rb000064400000005076150402106350012031 0ustar00#
#   shell/filter.rb -
#       $Release Version: 0.7 $
#       $Revision: 44221 $
#       by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

class Shell #:nodoc:
  # Any result of command execution is a Filter.
  #
  # This class includes Enumerable, therefore a Filter object can use all
  # Enumerable
  # facilities.
  #
  class Filter
    include Enumerable

    def initialize(sh)
      @shell = sh         # parent shell
      @input = nil        # input filter
    end

    attr_reader :input

    def input=(filter)
      @input = filter
    end

    # call-seq:
    #   each(record_separator=nil) { block }
    #
    # Iterates a block for each line.
    def each(rs = nil)
      rs = @shell.record_separator unless rs
      if @input
        @input.each(rs){|l| yield l}
      end
    end

    # call-seq:
    #   < source
    #
    # Inputs from +source+, which is either a string of a file name or an IO
    # object.
    def < (src)
      case src
      when String
        cat = Cat.new(@shell, src)
        cat | self
      when IO
        self.input = src
        self
      else
        Shell.Fail Error::CantApplyMethod, "<", to.class
      end
    end

    # call-seq:
    #   > source
    #
    # Outputs from +source+, which is either a string of a file name or an IO
    # object.
    def > (to)
      case to
      when String
        dst = @shell.open(to, "w")
        begin
          each(){|l| dst << l}
        ensure
          dst.close
        end
      when IO
        each(){|l| to << l}
      else
        Shell.Fail Error::CantApplyMethod, ">", to.class
      end
      self
    end

    # call-seq:
    #   >> source
    #
    # Appends the output to +source+, which is either a string of a file name
    # or an IO object.
    def >> (to)
      begin
        Shell.cd(@shell.pwd).append(to, self)
      rescue CantApplyMethod
        Shell.Fail Error::CantApplyMethod, ">>", to.class
      end
    end

    # call-seq:
    #   | filter
    #
    # Processes a pipeline.
    def | (filter)
      filter.input = self
      if active?
        @shell.process_controller.start_job filter
      end
      filter
    end

    # call-seq:
    #   filter1 + filter2
    #
    # Outputs +filter1+, and then +filter2+ using Join.new
    def + (filter)
      Join.new(@shell, self, filter)
    end

    def to_a
      ary = []
      each(){|l| ary.push l}
      ary
    end

    def to_s
      str = ""
      each(){|l| str.concat l}
      str
    end

    def inspect
      if @shell.debug.kind_of?(Integer) && @shell.debug > 2
        super
      else
        to_s
      end
    end
  end
end
lib64/ruby/2.2.0/optparse.rb000064400000150057150402106350011272 0ustar00#
# optparse.rb - command-line option analysis with the OptionParser class.
#
# Author:: Nobu Nakada
# Documentation:: Nobu Nakada and Gavin Sinclair.
#
# See OptionParser for documentation.
#


#--
# == Developer Documentation (not for RDoc output)
#
# === Class tree
#
# - OptionParser:: front end
# - OptionParser::Switch:: each switches
# - OptionParser::List:: options list
# - OptionParser::ParseError:: errors on parsing
#   - OptionParser::AmbiguousOption
#   - OptionParser::NeedlessArgument
#   - OptionParser::MissingArgument
#   - OptionParser::InvalidOption
#   - OptionParser::InvalidArgument
#     - OptionParser::AmbiguousArgument
#
# === Object relationship diagram
#
#   +--------------+
#   | OptionParser |<>-----+
#   +--------------+       |                      +--------+
#                          |                    ,-| Switch |
#        on_head -------->+---------------+    /  +--------+
#        accept/reject -->| List          |<|>-
#                         |               |<|>-  +----------+
#        on ------------->+---------------+    `-| argument |
#                           :           :        |  class   |
#                         +---------------+      |==========|
#        on_tail -------->|               |      |pattern   |
#                         +---------------+      |----------|
#   OptionParser.accept ->| DefaultList   |      |converter |
#                reject   |(shared between|      +----------+
#                         | all instances)|
#                         +---------------+
#
#++
#
# == OptionParser
#
# === Introduction
#
# OptionParser is a class for command-line option analysis.  It is much more
# advanced, yet also easier to use, than GetoptLong, and is a more Ruby-oriented
# solution.
#
# === Features
#
# 1. The argument specification and the code to handle it are written in the
#    same place.
# 2. It can output an option summary; you don't need to maintain this string
#    separately.
# 3. Optional and mandatory arguments are specified very gracefully.
# 4. Arguments can be automatically converted to a specified class.
# 5. Arguments can be restricted to a certain set.
#
# All of these features are demonstrated in the examples below.  See
# #make_switch for full documentation.
#
# === Minimal example
#
#   require 'optparse'
#
#   options = {}
#   OptionParser.new do |opts|
#     opts.banner = "Usage: example.rb [options]"
#
#     opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
#       options[:verbose] = v
#     end
#   end.parse!
#
#   p options
#   p ARGV
#
# === Generating Help
#
# OptionParser can be used to automatically generate help for the commands you
# write:
#
#   require 'optparse'
#
#   Options = Struct.new(:name)
#
#   class Parser
#     def self.parse(options)
#       args = Options.new("world")
#
#       opt_parser = OptionParser.new do |opts|
#         opts.banner = "Usage: example.rb [options]"
#
#         opts.on("-nNAME", "--name=NAME", "Name to say hello to") do |n|
#           args.name = n
#         end
#
#         opts.on("-h", "--help", "Prints this help") do
#           puts opts
#           exit
#         end
#       end
#
#       opt_parser.parse!(options)
#       return args
#     end
#   end
#   options = Parser.parse %w[--help]
#
#   #=>
#      # Usage: example.rb [options]
#      #     -n, --name=NAME                  Name to say hello to
#      #     -h, --help                       Prints this help#
#
# === Complete example
#
# The following example is a complete Ruby program.  You can run it and see the
# effect of specifying various options.  This is probably the best way to learn
# the features of +optparse+.
#
#   require 'optparse'
#   require 'optparse/time'
#   require 'ostruct'
#   require 'pp'
#
#   class OptparseExample
#
#     CODES = %w[iso-2022-jp shift_jis euc-jp utf8 binary]
#     CODE_ALIASES = { "jis" => "iso-2022-jp", "sjis" => "shift_jis" }
#
#     #
#     # Return a structure describing the options.
#     #
#     def self.parse(args)
#       # The options specified on the command line will be collected in *options*.
#       # We set default values here.
#       options = OpenStruct.new
#       options.library = []
#       options.inplace = false
#       options.encoding = "utf8"
#       options.transfer_type = :auto
#       options.verbose = false
#
#       opt_parser = OptionParser.new do |opts|
#         opts.banner = "Usage: example.rb [options]"
#
#         opts.separator ""
#         opts.separator "Specific options:"
#
#         # Mandatory argument.
#         opts.on("-r", "--require LIBRARY",
#                 "Require the LIBRARY before executing your script") do |lib|
#           options.library << lib
#         end
#
#         # Optional argument; multi-line description.
#         opts.on("-i", "--inplace [EXTENSION]",
#                 "Edit ARGV files in place",
#                 "  (make backup if EXTENSION supplied)") do |ext|
#           options.inplace = true
#           options.extension = ext || ''
#           options.extension.sub!(/\A\.?(?=.)/, ".")  # Ensure extension begins with dot.
#         end
#
#         # Cast 'delay' argument to a Float.
#         opts.on("--delay N", Float, "Delay N seconds before executing") do |n|
#           options.delay = n
#         end
#
#         # Cast 'time' argument to a Time object.
#         opts.on("-t", "--time [TIME]", Time, "Begin execution at given time") do |time|
#           options.time = time
#         end
#
#         # Cast to octal integer.
#         opts.on("-F", "--irs [OCTAL]", OptionParser::OctalInteger,
#                 "Specify record separator (default \\0)") do |rs|
#           options.record_separator = rs
#         end
#
#         # List of arguments.
#         opts.on("--list x,y,z", Array, "Example 'list' of arguments") do |list|
#           options.list = list
#         end
#
#         # Keyword completion.  We are specifying a specific set of arguments (CODES
#         # and CODE_ALIASES - notice the latter is a Hash), and the user may provide
#         # the shortest unambiguous text.
#         code_list = (CODE_ALIASES.keys + CODES).join(',')
#         opts.on("--code CODE", CODES, CODE_ALIASES, "Select encoding",
#                 "  (#{code_list})") do |encoding|
#           options.encoding = encoding
#         end
#
#         # Optional argument with keyword completion.
#         opts.on("--type [TYPE]", [:text, :binary, :auto],
#                 "Select transfer type (text, binary, auto)") do |t|
#           options.transfer_type = t
#         end
#
#         # Boolean switch.
#         opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
#           options.verbose = v
#         end
#
#         opts.separator ""
#         opts.separator "Common options:"
#
#         # No argument, shows at tail.  This will print an options summary.
#         # Try it and see!
#         opts.on_tail("-h", "--help", "Show this message") do
#           puts opts
#           exit
#         end
#
#         # Another typical switch to print the version.
#         opts.on_tail("--version", "Show version") do
#           puts ::Version.join('.')
#           exit
#         end
#       end
#
#       opt_parser.parse!(args)
#       options
#     end  # parse()
#
#   end  # class OptparseExample
#
#   options = OptparseExample.parse(ARGV)
#   pp options
#   pp ARGV
#
# === Shell Completion
#
# For modern shells (e.g. bash, zsh, etc.), you can use shell
# completion for command line options.
#
# === Further documentation
#
# The above examples should be enough to learn how to use this class.  If you
# have any questions, file a ticket at http://bugs.ruby-lang.org.
#
class OptionParser
  # :stopdoc:
  NoArgument = [NO_ARGUMENT = :NONE, nil].freeze
  RequiredArgument = [REQUIRED_ARGUMENT = :REQUIRED, true].freeze
  OptionalArgument = [OPTIONAL_ARGUMENT = :OPTIONAL, false].freeze
  # :startdoc:

  #
  # Keyword completion module.  This allows partial arguments to be specified
  # and resolved against a list of acceptable values.
  #
  module Completion
    def self.regexp(key, icase)
      Regexp.new('\A' + Regexp.quote(key).gsub(/\w+\b/, '\&\w*'), icase)
    end

    def self.candidate(key, icase = false, pat = nil, &block)
      pat ||= Completion.regexp(key, icase)
      candidates = []
      block.call do |k, *v|
        (if Regexp === k
           kn = "".freeze
           k === key
         else
           kn = defined?(k.id2name) ? k.id2name : k
           pat === kn
         end) or next
        v << k if v.empty?
        candidates << [k, v, kn]
      end
      candidates
    end

    def candidate(key, icase = false, pat = nil)
      Completion.candidate(key, icase, pat, &method(:each))
    end

    public
    def complete(key, icase = false, pat = nil)
      candidates = candidate(key, icase, pat, &method(:each)).sort_by {|k, v, kn| kn.size}
      if candidates.size == 1
        canon, sw, * = candidates[0]
      elsif candidates.size > 1
        canon, sw, cn = candidates.shift
        candidates.each do |k, v, kn|
          next if sw == v
          if String === cn and String === kn
            if cn.rindex(kn, 0)
              canon, sw, cn = k, v, kn
              next
            elsif kn.rindex(cn, 0)
              next
            end
          end
          throw :ambiguous, key
        end
      end
      if canon
        block_given? or return key, *sw
        yield(key, *sw)
      end
    end

    def convert(opt = nil, val = nil, *)
      val
    end
  end


  #
  # Map from option/keyword string to object with completion.
  #
  class OptionMap < Hash
    include Completion
  end


  #
  # Individual switch class.  Not important to the user.
  #
  # Defined within Switch are several Switch-derived classes: NoArgument,
  # RequiredArgument, etc.
  #
  class Switch
    attr_reader :pattern, :conv, :short, :long, :arg, :desc, :block

    #
    # Guesses argument style from +arg+.  Returns corresponding
    # OptionParser::Switch class (OptionalArgument, etc.).
    #
    def self.guess(arg)
      case arg
      when ""
        t = self
      when /\A=?\[/
        t = Switch::OptionalArgument
      when /\A\s+\[/
        t = Switch::PlacedArgument
      else
        t = Switch::RequiredArgument
      end
      self >= t or incompatible_argument_styles(arg, t)
      t
    end

    def self.incompatible_argument_styles(arg, t)
      raise(ArgumentError, "#{arg}: incompatible argument styles\n  #{self}, #{t}",
            ParseError.filter_backtrace(caller(2)))
    end

    def self.pattern
      NilClass
    end

    def initialize(pattern = nil, conv = nil,
                   short = nil, long = nil, arg = nil,
                   desc = ([] if short or long), block = Proc.new)
      raise if Array === pattern
      @pattern, @conv, @short, @long, @arg, @desc, @block =
        pattern, conv, short, long, arg, desc, block
    end

    #
    # Parses +arg+ and returns rest of +arg+ and matched portion to the
    # argument pattern. Yields when the pattern doesn't match substring.
    #
    def parse_arg(arg)
      pattern or return nil, [arg]
      unless m = pattern.match(arg)
        yield(InvalidArgument, arg)
        return arg, []
      end
      if String === m
        m = [s = m]
      else
        m = m.to_a
        s = m[0]
        return nil, m unless String === s
      end
      raise InvalidArgument, arg unless arg.rindex(s, 0)
      return nil, m if s.length == arg.length
      yield(InvalidArgument, arg) # didn't match whole arg
      return arg[s.length..-1], m
    end
    private :parse_arg

    #
    # Parses argument, converts and returns +arg+, +block+ and result of
    # conversion. Yields at semi-error condition instead of raising an
    # exception.
    #
    def conv_arg(arg, val = [])
      if conv
        val = conv.call(*val)
      else
        val = proc {|v| v}.call(*val)
      end
      return arg, block, val
    end
    private :conv_arg

    #
    # Produces the summary text. Each line of the summary is yielded to the
    # block (without newline).
    #
    # +sdone+::  Already summarized short style options keyed hash.
    # +ldone+::  Already summarized long style options keyed hash.
    # +width+::  Width of left side (option part). In other words, the right
    #            side (description part) starts after +width+ columns.
    # +max+::    Maximum width of left side -> the options are filled within
    #            +max+ columns.
    # +indent+:: Prefix string indents all summarized lines.
    #
    def summarize(sdone = [], ldone = [], width = 1, max = width - 1, indent = "")
      sopts, lopts = [], [], nil
      @short.each {|s| sdone.fetch(s) {sopts << s}; sdone[s] = true} if @short
      @long.each {|s| ldone.fetch(s) {lopts << s}; ldone[s] = true} if @long
      return if sopts.empty? and lopts.empty? # completely hidden

      left = [sopts.join(', ')]
      right = desc.dup

      while s = lopts.shift
        l = left[-1].length + s.length
        l += arg.length if left.size == 1 && arg
        l < max or sopts.empty? or left << ''
        left[-1] << if left[-1].empty? then ' ' * 4 else ', ' end << s
      end

      if arg
        left[0] << (left[1] ? arg.sub(/\A(\[?)=/, '\1') + ',' : arg)
      end
      mlen = left.collect {|ss| ss.length}.max.to_i
      while mlen > width and l = left.shift
        mlen = left.collect {|ss| ss.length}.max.to_i if l.length == mlen
        if l.length < width and (r = right[0]) and !r.empty?
          l = l.to_s.ljust(width) + ' ' + r
          right.shift
        end
        yield(indent + l)
      end

      while begin l = left.shift; r = right.shift; l or r end
        l = l.to_s.ljust(width) + ' ' + r if r and !r.empty?
        yield(indent + l)
      end

      self
    end

    def add_banner(to)  # :nodoc:
      unless @short or @long
        s = desc.join
        to << " [" + s + "]..." unless s.empty?
      end
      to
    end

    def match_nonswitch?(str)  # :nodoc:
      @pattern =~ str unless @short or @long
    end

    #
    # Main name of the switch.
    #
    def switch_name
      (long.first || short.first).sub(/\A-+(?:\[no-\])?/, '')
    end

    def compsys(sdone, ldone)   # :nodoc:
      sopts, lopts = [], []
      @short.each {|s| sdone.fetch(s) {sopts << s}; sdone[s] = true} if @short
      @long.each {|s| ldone.fetch(s) {lopts << s}; ldone[s] = true} if @long
      return if sopts.empty? and lopts.empty? # completely hidden

      (sopts+lopts).each do |opt|
        # "(-x -c -r)-l[left justify]" \
        if /^--\[no-\](.+)$/ =~ opt
          o = $1
          yield("--#{o}", desc.join(""))
          yield("--no-#{o}", desc.join(""))
        else
          yield("#{opt}", desc.join(""))
        end
      end
    end

    #
    # Switch that takes no arguments.
    #
    class NoArgument < self

      #
      # Raises an exception if any arguments given.
      #
      def parse(arg, argv)
        yield(NeedlessArgument, arg) if arg
        conv_arg(arg)
      end

      def self.incompatible_argument_styles(*)
      end

      def self.pattern
        Object
      end
    end

    #
    # Switch that takes an argument.
    #
    class RequiredArgument < self

      #
      # Raises an exception if argument is not present.
      #
      def parse(arg, argv)
        unless arg
          raise MissingArgument if argv.empty?
          arg = argv.shift
        end
        conv_arg(*parse_arg(arg, &method(:raise)))
      end
    end

    #
    # Switch that can omit argument.
    #
    class OptionalArgument < self

      #
      # Parses argument if given, or uses default value.
      #
      def parse(arg, argv, &error)
        if arg
          conv_arg(*parse_arg(arg, &error))
        else
          conv_arg(arg)
        end
      end
    end

    #
    # Switch that takes an argument, which does not begin with '-'.
    #
    class PlacedArgument < self

      #
      # Returns nil if argument is not present or begins with '-'.
      #
      def parse(arg, argv, &error)
        if !(val = arg) and (argv.empty? or /\A-/ =~ (val = argv[0]))
          return nil, block, nil
        end
        opt = (val = parse_arg(val, &error))[1]
        val = conv_arg(*val)
        if opt and !arg
          argv.shift
        else
          val[0] = nil
        end
        val
      end
    end
  end

  #
  # Simple option list providing mapping from short and/or long option
  # string to OptionParser::Switch and mapping from acceptable argument to
  # matching pattern and converter pair. Also provides summary feature.
  #
  class List
    # Map from acceptable argument types to pattern and converter pairs.
    attr_reader :atype

    # Map from short style option switches to actual switch objects.
    attr_reader :short

    # Map from long style option switches to actual switch objects.
    attr_reader :long

    # List of all switches and summary string.
    attr_reader :list

    #
    # Just initializes all instance variables.
    #
    def initialize
      @atype = {}
      @short = OptionMap.new
      @long = OptionMap.new
      @list = []
    end

    #
    # See OptionParser.accept.
    #
    def accept(t, pat = /.*/m, &block)
      if pat
        pat.respond_to?(:match) or
          raise TypeError, "has no `match'", ParseError.filter_backtrace(caller(2))
      else
        pat = t if t.respond_to?(:match)
      end
      unless block
        block = pat.method(:convert).to_proc if pat.respond_to?(:convert)
      end
      @atype[t] = [pat, block]
    end

    #
    # See OptionParser.reject.
    #
    def reject(t)
      @atype.delete(t)
    end

    #
    # Adds +sw+ according to +sopts+, +lopts+ and +nlopts+.
    #
    # +sw+::     OptionParser::Switch instance to be added.
    # +sopts+::  Short style option list.
    # +lopts+::  Long style option list.
    # +nlopts+:: Negated long style options list.
    #
    def update(sw, sopts, lopts, nsw = nil, nlopts = nil)
      sopts.each {|o| @short[o] = sw} if sopts
      lopts.each {|o| @long[o] = sw} if lopts
      nlopts.each {|o| @long[o] = nsw} if nsw and nlopts
      used = @short.invert.update(@long.invert)
      @list.delete_if {|o| Switch === o and !used[o]}
    end
    private :update

    #
    # Inserts +switch+ at the head of the list, and associates short, long
    # and negated long options. Arguments are:
    #
    # +switch+::      OptionParser::Switch instance to be inserted.
    # +short_opts+::  List of short style options.
    # +long_opts+::   List of long style options.
    # +nolong_opts+:: List of long style options with "no-" prefix.
    #
    #   prepend(switch, short_opts, long_opts, nolong_opts)
    #
    def prepend(*args)
      update(*args)
      @list.unshift(args[0])
    end

    #
    # Appends +switch+ at the tail of the list, and associates short, long
    # and negated long options. Arguments are:
    #
    # +switch+::      OptionParser::Switch instance to be inserted.
    # +short_opts+::  List of short style options.
    # +long_opts+::   List of long style options.
    # +nolong_opts+:: List of long style options with "no-" prefix.
    #
    #   append(switch, short_opts, long_opts, nolong_opts)
    #
    def append(*args)
      update(*args)
      @list.push(args[0])
    end

    #
    # Searches +key+ in +id+ list. The result is returned or yielded if a
    # block is given. If it isn't found, nil is returned.
    #
    def search(id, key)
      if list = __send__(id)
        val = list.fetch(key) {return nil}
        block_given? ? yield(val) : val
      end
    end

    #
    # Searches list +id+ for +opt+ and the optional patterns for completion
    # +pat+. If +icase+ is true, the search is case insensitive. The result
    # is returned or yielded if a block is given. If it isn't found, nil is
    # returned.
    #
    def complete(id, opt, icase = false, *pat, &block)
      __send__(id).complete(opt, icase, *pat, &block)
    end

    #
    # Iterates over each option, passing the option to the +block+.
    #
    def each_option(&block)
      list.each(&block)
    end

    #
    # Creates the summary table, passing each line to the +block+ (without
    # newline). The arguments +args+ are passed along to the summarize
    # method which is called on every option.
    #
    def summarize(*args, &block)
      sum = []
      list.reverse_each do |opt|
        if opt.respond_to?(:summarize) # perhaps OptionParser::Switch
          s = []
          opt.summarize(*args) {|l| s << l}
          sum.concat(s.reverse)
        elsif !opt or opt.empty?
          sum << ""
        elsif opt.respond_to?(:each_line)
          sum.concat([*opt.each_line].reverse)
        else
          sum.concat([*opt.each].reverse)
        end
      end
      sum.reverse_each(&block)
    end

    def add_banner(to)  # :nodoc:
      list.each do |opt|
        if opt.respond_to?(:add_banner)
          opt.add_banner(to)
        end
      end
      to
    end

    def compsys(*args, &block)  # :nodoc:
      list.each do |opt|
        if opt.respond_to?(:compsys)
          opt.compsys(*args, &block)
        end
      end
    end
  end

  #
  # Hash with completion search feature. See OptionParser::Completion.
  #
  class CompletingHash < Hash
    include Completion

    #
    # Completion for hash key.
    #
    def match(key)
      *values = fetch(key) {
        raise AmbiguousArgument, catch(:ambiguous) {return complete(key)}
      }
      return key, *values
    end
  end

  # :stopdoc:

  #
  # Enumeration of acceptable argument styles. Possible values are:
  #
  # NO_ARGUMENT::       The switch takes no arguments. (:NONE)
  # REQUIRED_ARGUMENT:: The switch requires an argument. (:REQUIRED)
  # OPTIONAL_ARGUMENT:: The switch requires an optional argument. (:OPTIONAL)
  #
  # Use like --switch=argument (long style) or -Xargument (short style). For
  # short style, only portion matched to argument pattern is treated as
  # argument.
  #
  ArgumentStyle = {}
  NoArgument.each {|el| ArgumentStyle[el] = Switch::NoArgument}
  RequiredArgument.each {|el| ArgumentStyle[el] = Switch::RequiredArgument}
  OptionalArgument.each {|el| ArgumentStyle[el] = Switch::OptionalArgument}
  ArgumentStyle.freeze

  #
  # Switches common used such as '--', and also provides default
  # argument classes
  #
  DefaultList = List.new
  DefaultList.short['-'] = Switch::NoArgument.new {}
  DefaultList.long[''] = Switch::NoArgument.new {throw :terminate}


  COMPSYS_HEADER = <<'XXX'      # :nodoc:

typeset -A opt_args
local context state line

_arguments -s -S \
XXX

  def compsys(to, name = File.basename($0)) # :nodoc:
    to << "#compdef #{name}\n"
    to << COMPSYS_HEADER
    visit(:compsys, {}, {}) {|o, d|
      to << %Q[  "#{o}[#{d.gsub(/[\"\[\]]/, '\\\\\&')}]" \\\n]
    }
    to << "  '*:file:_files' && return 0\n"
  end

  #
  # Default options for ARGV, which never appear in option summary.
  #
  Officious = {}

  #
  # --help
  # Shows option summary.
  #
  Officious['help'] = proc do |parser|
    Switch::NoArgument.new do |arg|
      puts parser.help
      exit
    end
  end

  #
  # --*-completion-bash=WORD
  # Shows candidates for command line completion.
  #
  Officious['*-completion-bash'] = proc do |parser|
    Switch::RequiredArgument.new do |arg|
      puts parser.candidate(arg)
      exit
    end
  end

  #
  # --*-completion-zsh[=NAME:FILE]
  # Creates zsh completion file.
  #
  Officious['*-completion-zsh'] = proc do |parser|
    Switch::OptionalArgument.new do |arg|
      parser.compsys(STDOUT, arg)
      exit
    end
  end

  #
  # --version
  # Shows version string if Version is defined.
  #
  Officious['version'] = proc do |parser|
    Switch::OptionalArgument.new do |pkg|
      if pkg
        begin
          require 'optparse/version'
        rescue LoadError
        else
          show_version(*pkg.split(/,/)) or
            abort("#{parser.program_name}: no version found in package #{pkg}")
          exit
        end
      end
      v = parser.ver or abort("#{parser.program_name}: version unknown")
      puts v
      exit
    end
  end

  # :startdoc:

  #
  # Class methods
  #

  #
  # Initializes a new instance and evaluates the optional block in context
  # of the instance. Arguments +args+ are passed to #new, see there for
  # description of parameters.
  #
  # This method is *deprecated*, its behavior corresponds to the older #new
  # method.
  #
  def self.with(*args, &block)
    opts = new(*args)
    opts.instance_eval(&block)
    opts
  end

  #
  # Returns an incremented value of +default+ according to +arg+.
  #
  def self.inc(arg, default = nil)
    case arg
    when Integer
      arg.nonzero?
    when nil
      default.to_i + 1
    end
  end
  def inc(*args)
    self.class.inc(*args)
  end

  #
  # Initializes the instance and yields itself if called with a block.
  #
  # +banner+:: Banner message.
  # +width+::  Summary width.
  # +indent+:: Summary indent.
  #
  def initialize(banner = nil, width = 32, indent = ' ' * 4)
    @stack = [DefaultList, List.new, List.new]
    @program_name = nil
    @banner = banner
    @summary_width = width
    @summary_indent = indent
    @default_argv = ARGV
    add_officious
    yield self if block_given?
  end

  def add_officious  # :nodoc:
    list = base()
    Officious.each do |opt, block|
      list.long[opt] ||= block.call(self)
    end
  end

  #
  # Terminates option parsing. Optional parameter +arg+ is a string pushed
  # back to be the first non-option argument.
  #
  def terminate(arg = nil)
    self.class.terminate(arg)
  end
  def self.terminate(arg = nil)
    throw :terminate, arg
  end

  @stack = [DefaultList]
  def self.top() DefaultList end

  #
  # Directs to accept specified class +t+. The argument string is passed to
  # the block in which it should be converted to the desired class.
  #
  # +t+::   Argument class specifier, any object including Class.
  # +pat+:: Pattern for argument, defaults to +t+ if it responds to match.
  #
  #   accept(t, pat, &block)
  #
  def accept(*args, &blk) top.accept(*args, &blk) end
  #
  # See #accept.
  #
  def self.accept(*args, &blk) top.accept(*args, &blk) end

  #
  # Directs to reject specified class argument.
  #
  # +t+:: Argument class specifier, any object including Class.
  #
  #   reject(t)
  #
  def reject(*args, &blk) top.reject(*args, &blk) end
  #
  # See #reject.
  #
  def self.reject(*args, &blk) top.reject(*args, &blk) end

  #
  # Instance methods
  #

  # Heading banner preceding summary.
  attr_writer :banner

  # Program name to be emitted in error message and default banner,
  # defaults to $0.
  attr_writer :program_name

  # Width for option list portion of summary. Must be Numeric.
  attr_accessor :summary_width

  # Indentation for summary. Must be String (or have + String method).
  attr_accessor :summary_indent

  # Strings to be parsed in default.
  attr_accessor :default_argv

  #
  # Heading banner preceding summary.
  #
  def banner
    unless @banner
      @banner = "Usage: #{program_name} [options]"
      visit(:add_banner, @banner)
    end
    @banner
  end

  #
  # Program name to be emitted in error message and default banner, defaults
  # to $0.
  #
  def program_name
    @program_name || File.basename($0, '.*')
  end

  # for experimental cascading :-)
  alias set_banner banner=
  alias set_program_name program_name=
  alias set_summary_width summary_width=
  alias set_summary_indent summary_indent=

  # Version
  attr_writer :version
  # Release code
  attr_writer :release

  #
  # Version
  #
  def version
    @version || (defined?(::Version) && ::Version)
  end

  #
  # Release code
  #
  def release
    @release || (defined?(::Release) && ::Release) || (defined?(::RELEASE) && ::RELEASE)
  end

  #
  # Returns version string from program_name, version and release.
  #
  def ver
    if v = version
      str = "#{program_name} #{[v].join('.')}"
      str << " (#{v})" if v = release
      str
    end
  end

  def warn(mesg = $!)
    super("#{program_name}: #{mesg}")
  end

  def abort(mesg = $!)
    super("#{program_name}: #{mesg}")
  end

  #
  # Subject of #on / #on_head, #accept / #reject
  #
  def top
    @stack[-1]
  end

  #
  # Subject of #on_tail.
  #
  def base
    @stack[1]
  end

  #
  # Pushes a new List.
  #
  def new
    @stack.push(List.new)
    if block_given?
      yield self
    else
      self
    end
  end

  #
  # Removes the last List.
  #
  def remove
    @stack.pop
  end

  #
  # Puts option summary into +to+ and returns +to+. Yields each line if
  # a block is given.
  #
  # +to+:: Output destination, which must have method <<. Defaults to [].
  # +width+:: Width of left side, defaults to @summary_width.
  # +max+:: Maximum length allowed for left side, defaults to +width+ - 1.
  # +indent+:: Indentation, defaults to @summary_indent.
  #
  def summarize(to = [], width = @summary_width, max = width - 1, indent = @summary_indent, &blk)
    blk ||= proc {|l| to << (l.index($/, -1) ? l : l + $/)}
    visit(:summarize, {}, {}, width, max, indent, &blk)
    to
  end

  #
  # Returns option summary string.
  #
  def help; summarize("#{banner}".sub(/\n?\z/, "\n")) end
  alias to_s help

  #
  # Returns option summary list.
  #
  def to_a; summarize("#{banner}".split(/^/)) end

  #
  # Checks if an argument is given twice, in which case an ArgumentError is
  # raised. Called from OptionParser#switch only.
  #
  # +obj+:: New argument.
  # +prv+:: Previously specified argument.
  # +msg+:: Exception message.
  #
  def notwice(obj, prv, msg)
    unless !prv or prv == obj
      raise(ArgumentError, "argument #{msg} given twice: #{obj}",
            ParseError.filter_backtrace(caller(2)))
    end
    obj
  end
  private :notwice

  SPLAT_PROC = proc {|*a| a.length <= 1 ? a.first : a} # :nodoc:
  #
  # Creates an OptionParser::Switch from the parameters. The parsed argument
  # value is passed to the given block, where it can be processed.
  #
  # See at the beginning of OptionParser for some full examples.
  #
  # +opts+ can include the following elements:
  #
  # [Argument style:]
  #   One of the following:
  #     :NONE, :REQUIRED, :OPTIONAL
  #
  # [Argument pattern:]
  #   Acceptable option argument format, must be pre-defined with
  #   OptionParser.accept or OptionParser#accept, or Regexp. This can appear
  #   once or assigned as String if not present, otherwise causes an
  #   ArgumentError. Examples:
  #     Float, Time, Array
  #
  # [Possible argument values:]
  #   Hash or Array.
  #     [:text, :binary, :auto]
  #     %w[iso-2022-jp shift_jis euc-jp utf8 binary]
  #     { "jis" => "iso-2022-jp", "sjis" => "shift_jis" }
  #
  # [Long style switch:]
  #   Specifies a long style switch which takes a mandatory, optional or no
  #   argument. It's a string of the following form:
  #     "--switch=MANDATORY" or "--switch MANDATORY"
  #     "--switch[=OPTIONAL]"
  #     "--switch"
  #
  # [Short style switch:]
  #   Specifies short style switch which takes a mandatory, optional or no
  #   argument. It's a string of the following form:
  #     "-xMANDATORY"
  #     "-x[OPTIONAL]"
  #     "-x"
  #   There is also a special form which matches character range (not full
  #   set of regular expression):
  #     "-[a-z]MANDATORY"
  #     "-[a-z][OPTIONAL]"
  #     "-[a-z]"
  #
  # [Argument style and description:]
  #   Instead of specifying mandatory or optional arguments directly in the
  #   switch parameter, this separate parameter can be used.
  #     "=MANDATORY"
  #     "=[OPTIONAL]"
  #
  # [Description:]
  #   Description string for the option.
  #     "Run verbosely"
  #
  # [Handler:]
  #   Handler for the parsed argument value. Either give a block or pass a
  #   Proc or Method as an argument.
  #
  def make_switch(opts, block = nil)
    short, long, nolong, style, pattern, conv, not_pattern, not_conv, not_style = [], [], []
    ldesc, sdesc, desc, arg = [], [], []
    default_style = Switch::NoArgument
    default_pattern = nil
    klass = nil
    q, a = nil
    has_arg = false

    opts.each do |o|
      # argument class
      next if search(:atype, o) do |pat, c|
        klass = notwice(o, klass, 'type')
        if not_style and not_style != Switch::NoArgument
          not_pattern, not_conv = pat, c
        else
          default_pattern, conv = pat, c
        end
      end

      # directly specified pattern(any object possible to match)
      if (!(String === o || Symbol === o)) and o.respond_to?(:match)
        pattern = notwice(o, pattern, 'pattern')
        if pattern.respond_to?(:convert)
          conv = pattern.method(:convert).to_proc
        else
          conv = SPLAT_PROC
        end
        next
      end

      # anything others
      case o
      when Proc, Method
        block = notwice(o, block, 'block')
      when Array, Hash
        case pattern
        when CompletingHash
        when nil
          pattern = CompletingHash.new
          conv = pattern.method(:convert).to_proc if pattern.respond_to?(:convert)
        else
          raise ArgumentError, "argument pattern given twice"
        end
        o.each {|pat, *v| pattern[pat] = v.fetch(0) {pat}}
      when Module
        raise ArgumentError, "unsupported argument type: #{o}", ParseError.filter_backtrace(caller(4))
      when *ArgumentStyle.keys
        style = notwice(ArgumentStyle[o], style, 'style')
      when /^--no-([^\[\]=\s]*)(.+)?/
        q, a = $1, $2
        o = notwice(a ? Object : TrueClass, klass, 'type')
        not_pattern, not_conv = search(:atype, o) unless not_style
        not_style = (not_style || default_style).guess(arg = a) if a
        default_style = Switch::NoArgument
        default_pattern, conv = search(:atype, FalseClass) unless default_pattern
        ldesc << "--no-#{q}"
        long << 'no-' + (q = q.downcase)
        nolong << q
      when /^--\[no-\]([^\[\]=\s]*)(.+)?/
        q, a = $1, $2
        o = notwice(a ? Object : TrueClass, klass, 'type')
        if a
          default_style = default_style.guess(arg = a)
          default_pattern, conv = search(:atype, o) unless default_pattern
        end
        ldesc << "--[no-]#{q}"
        long << (o = q.downcase)
        not_pattern, not_conv = search(:atype, FalseClass) unless not_style
        not_style = Switch::NoArgument
        nolong << 'no-' + o
      when /^--([^\[\]=\s]*)(.+)?/
        q, a = $1, $2
        if a
          o = notwice(NilClass, klass, 'type')
          default_style = default_style.guess(arg = a)
          default_pattern, conv = search(:atype, o) unless default_pattern
        end
        ldesc << "--#{q}"
        long << (o = q.downcase)
      when /^-(\[\^?\]?(?:[^\\\]]|\\.)*\])(.+)?/
        q, a = $1, $2
        o = notwice(Object, klass, 'type')
        if a
          default_style = default_style.guess(arg = a)
          default_pattern, conv = search(:atype, o) unless default_pattern
        else
          has_arg = true
        end
        sdesc << "-#{q}"
        short << Regexp.new(q)
      when /^-(.)(.+)?/
        q, a = $1, $2
        if a
          o = notwice(NilClass, klass, 'type')
          default_style = default_style.guess(arg = a)
          default_pattern, conv = search(:atype, o) unless default_pattern
        end
        sdesc << "-#{q}"
        short << q
      when /^=/
        style = notwice(default_style.guess(arg = o), style, 'style')
        default_pattern, conv = search(:atype, Object) unless default_pattern
      else
        desc.push(o)
      end
    end

    default_pattern, conv = search(:atype, default_style.pattern) unless default_pattern
    if !(short.empty? and long.empty?)
      if has_arg and default_style == Switch::NoArgument
        default_style = Switch::RequiredArgument
      end
      s = (style || default_style).new(pattern || default_pattern,
                                       conv, sdesc, ldesc, arg, desc, block)
    elsif !block
      if style or pattern
        raise ArgumentError, "no switch given", ParseError.filter_backtrace(caller)
      end
      s = desc
    else
      short << pattern
      s = (style || default_style).new(pattern,
                                       conv, nil, nil, arg, desc, block)
    end
    return s, short, long,
      (not_style.new(not_pattern, not_conv, sdesc, ldesc, nil, desc, block) if not_style),
      nolong
  end

  def define(*opts, &block)
    top.append(*(sw = make_switch(opts, block)))
    sw[0]
  end

  #
  # Add option switch and handler. See #make_switch for an explanation of
  # parameters.
  #
  def on(*opts, &block)
    define(*opts, &block)
    self
  end
  alias def_option define

  def define_head(*opts, &block)
    top.prepend(*(sw = make_switch(opts, block)))
    sw[0]
  end

  #
  # Add option switch like with #on, but at head of summary.
  #
  def on_head(*opts, &block)
    define_head(*opts, &block)
    self
  end
  alias def_head_option define_head

  def define_tail(*opts, &block)
    base.append(*(sw = make_switch(opts, block)))
    sw[0]
  end

  #
  # Add option switch like with #on, but at tail of summary.
  #
  def on_tail(*opts, &block)
    define_tail(*opts, &block)
    self
  end
  alias def_tail_option define_tail

  #
  # Add separator in summary.
  #
  def separator(string)
    top.append(string, nil, nil)
  end

  #
  # Parses command line arguments +argv+ in order. When a block is given,
  # each non-option argument is yielded.
  #
  # Returns the rest of +argv+ left unparsed.
  #
  def order(*argv, &block)
    argv = argv[0].dup if argv.size == 1 and Array === argv[0]
    order!(argv, &block)
  end

  #
  # Same as #order, but removes switches destructively.
  # Non-option arguments remain in +argv+.
  #
  def order!(argv = default_argv, &nonopt)
    parse_in_order(argv, &nonopt)
  end

  def parse_in_order(argv = default_argv, setter = nil, &nonopt)  # :nodoc:
    opt, arg, val, rest = nil
    nonopt ||= proc {|a| throw :terminate, a}
    argv.unshift(arg) if arg = catch(:terminate) {
      while arg = argv.shift
        case arg
        # long option
        when /\A--([^=]*)(?:=(.*))?/m
          opt, rest = $1, $2
          begin
            sw, = complete(:long, opt, true)
          rescue ParseError
            raise $!.set_option(arg, true)
          end
          begin
            opt, cb, val = sw.parse(rest, argv) {|*exc| raise(*exc)}
            val = cb.call(val) if cb
            setter.call(sw.switch_name, val) if setter
          rescue ParseError
            raise $!.set_option(arg, rest)
          end

        # short option
        when /\A-(.)((=).*|.+)?/m
          opt, has_arg, eq, val, rest = $1, $3, $3, $2, $2
          begin
            sw, = search(:short, opt)
            unless sw
              begin
                sw, = complete(:short, opt)
                # short option matched.
                val = arg.sub(/\A-/, '')
                has_arg = true
              rescue InvalidOption
                # if no short options match, try completion with long
                # options.
                sw, = complete(:long, opt)
                eq ||= !rest
              end
            end
          rescue ParseError
            raise $!.set_option(arg, true)
          end
          begin
            opt, cb, val = sw.parse(val, argv) {|*exc| raise(*exc) if eq}
            raise InvalidOption, arg if has_arg and !eq and arg == "-#{opt}"
            argv.unshift(opt) if opt and (!rest or (opt = opt.sub(/\A-*/, '-')) != '-')
            val = cb.call(val) if cb
            setter.call(sw.switch_name, val) if setter
          rescue ParseError
            raise $!.set_option(arg, arg.length > 2)
          end

        # non-option argument
        else
          catch(:prune) do
            visit(:each_option) do |sw0|
              sw = sw0
              sw.block.call(arg) if Switch === sw and sw.match_nonswitch?(arg)
            end
            nonopt.call(arg)
          end
        end
      end

      nil
    }

    visit(:search, :short, nil) {|sw| sw.block.call(*argv) if !sw.pattern}

    argv
  end
  private :parse_in_order

  #
  # Parses command line arguments +argv+ in permutation mode and returns
  # list of non-option arguments.
  #
  def permute(*argv)
    argv = argv[0].dup if argv.size == 1 and Array === argv[0]
    permute!(argv)
  end

  #
  # Same as #permute, but removes switches destructively.
  # Non-option arguments remain in +argv+.
  #
  def permute!(argv = default_argv)
    nonopts = []
    order!(argv, &nonopts.method(:<<))
    argv[0, 0] = nonopts
    argv
  end

  #
  # Parses command line arguments +argv+ in order when environment variable
  # POSIXLY_CORRECT is set, and in permutation mode otherwise.
  #
  def parse(*argv)
    argv = argv[0].dup if argv.size == 1 and Array === argv[0]
    parse!(argv)
  end

  #
  # Same as #parse, but removes switches destructively.
  # Non-option arguments remain in +argv+.
  #
  def parse!(argv = default_argv)
    if ENV.include?('POSIXLY_CORRECT')
      order!(argv)
    else
      permute!(argv)
    end
  end

  #
  # Wrapper method for getopts.rb.
  #
  #   params = ARGV.getopts("ab:", "foo", "bar:", "zot:Z;zot option)
  #   # params[:a] = true   # -a
  #   # params[:b] = "1"    # -b1
  #   # params[:foo] = "1"  # --foo
  #   # params[:bar] = "x"  # --bar x
  #   # params[:zot] = "z"  # --zot Z
  #
  def getopts(*args)
    argv = Array === args.first ? args.shift : default_argv
    single_options, *long_options = *args

    result = {}

    single_options.scan(/(.)(:)?/) do |opt, val|
      if val
        result[opt] = nil
        define("-#{opt} VAL")
      else
        result[opt] = false
        define("-#{opt}")
      end
    end if single_options

    long_options.each do |arg|
      arg, desc = arg.split(';', 2)
      opt, val = arg.split(':', 2)
      if val
        result[opt] = val.empty? ? nil : val
        define("--#{opt}=#{result[opt] || "VAL"}", *[desc].compact)
      else
        result[opt] = false
        define("--#{opt}", *[desc].compact)
      end
    end

    parse_in_order(argv, result.method(:[]=))
    result
  end

  #
  # See #getopts.
  #
  def self.getopts(*args)
    new.getopts(*args)
  end

  #
  # Traverses @stack, sending each element method +id+ with +args+ and
  # +block+.
  #
  def visit(id, *args, &block)
    @stack.reverse_each do |el|
      el.send(id, *args, &block)
    end
    nil
  end
  private :visit

  #
  # Searches +key+ in @stack for +id+ hash and returns or yields the result.
  #
  def search(id, key)
    block_given = block_given?
    visit(:search, id, key) do |k|
      return block_given ? yield(k) : k
    end
  end
  private :search

  #
  # Completes shortened long style option switch and returns pair of
  # canonical switch and switch descriptor OptionParser::Switch.
  #
  # +id+::    Searching table.
  # +opt+::   Searching key.
  # +icase+:: Search case insensitive if true.
  # +pat+::   Optional pattern for completion.
  #
  def complete(typ, opt, icase = false, *pat)
    if pat.empty?
      search(typ, opt) {|sw| return [sw, opt]} # exact match or...
    end
    raise AmbiguousOption, catch(:ambiguous) {
      visit(:complete, typ, opt, icase, *pat) {|o, *sw| return sw}
      raise InvalidOption, opt
    }
  end
  private :complete

  def candidate(word)
    list = []
    case word
    when /\A--/
      word, arg = word.split(/=/, 2)
      argpat = Completion.regexp(arg, false) if arg and !arg.empty?
      long = true
    when /\A-(!-)/
      short = true
    when /\A-/
      long = short = true
    end
    pat = Completion.regexp(word, true)
    visit(:each_option) do |opt|
      next unless Switch === opt
      opts = (long ? opt.long : []) + (short ? opt.short : [])
      opts = Completion.candidate(word, true, pat, &opts.method(:each)).map(&:first) if pat
      if /\A=/ =~ opt.arg
        opts.map! {|sw| sw + "="}
        if arg and CompletingHash === opt.pattern
          if opts = opt.pattern.candidate(arg, false, argpat)
            opts.map!(&:last)
          end
        end
      end
      list.concat(opts)
    end
    list
  end

  #
  # Loads options from file names as +filename+. Does nothing when the file
  # is not present. Returns whether successfully loaded.
  #
  # +filename+ defaults to basename of the program without suffix in a
  # directory ~/.options.
  #
  def load(filename = nil)
    begin
      filename ||= File.expand_path(File.basename($0, '.*'), '~/.options')
    rescue
      return false
    end
    begin
      parse(*IO.readlines(filename).each {|s| s.chomp!})
      true
    rescue Errno::ENOENT, Errno::ENOTDIR
      false
    end
  end

  #
  # Parses environment variable +env+ or its uppercase with splitting like a
  # shell.
  #
  # +env+ defaults to the basename of the program.
  #
  def environment(env = File.basename($0, '.*'))
    env = ENV[env] || ENV[env.upcase] or return
    require 'shellwords'
    parse(*Shellwords.shellwords(env))
  end

  #
  # Acceptable argument classes
  #

  #
  # Any string and no conversion. This is fall-back.
  #
  accept(Object) {|s,|s or s.nil?}

  accept(NilClass) {|s,|s}

  #
  # Any non-empty string, and no conversion.
  #
  accept(String, /.+/m) {|s,*|s}

  #
  # Ruby/C-like integer, octal for 0-7 sequence, binary for 0b, hexadecimal
  # for 0x, and decimal for others; with optional sign prefix. Converts to
  # Integer.
  #
  decimal = '\d+(?:_\d+)*'
  binary = 'b[01]+(?:_[01]+)*'
  hex = 'x[\da-f]+(?:_[\da-f]+)*'
  octal = "0(?:[0-7]+(?:_[0-7]+)*|#{binary}|#{hex})?"
  integer = "#{octal}|#{decimal}"

  accept(Integer, %r"\A[-+]?(?:#{integer})\z"io) {|s,|
    begin
      Integer(s)
    rescue ArgumentError
      raise OptionParser::InvalidArgument, s
    end if s
  }

  #
  # Float number format, and converts to Float.
  #
  float = "(?:#{decimal}(?:\\.(?:#{decimal})?)?|\\.#{decimal})(?:E[-+]?#{decimal})?"
  floatpat = %r"\A[-+]?#{float}\z"io
  accept(Float, floatpat) {|s,| s.to_f if s}

  #
  # Generic numeric format, converts to Integer for integer format, Float
  # for float format, and Rational for rational format.
  #
  real = "[-+]?(?:#{octal}|#{float})"
  accept(Numeric, /\A(#{real})(?:\/(#{real}))?\z/io) {|s, d, n|
    if n
      Rational(d, n)
    elsif s
      eval(s)
    end
  }

  #
  # Decimal integer format, to be converted to Integer.
  #
  DecimalInteger = /\A[-+]?#{decimal}\z/io
  accept(DecimalInteger, DecimalInteger) {|s,|
    begin
      Integer(s)
    rescue ArgumentError
      raise OptionParser::InvalidArgument, s
    end if s
  }

  #
  # Ruby/C like octal/hexadecimal/binary integer format, to be converted to
  # Integer.
  #
  OctalInteger = /\A[-+]?(?:[0-7]+(?:_[0-7]+)*|0(?:#{binary}|#{hex}))\z/io
  accept(OctalInteger, OctalInteger) {|s,|
    begin
      Integer(s, 8)
    rescue ArgumentError
      raise OptionParser::InvalidArgument, s
    end if s
  }

  #
  # Decimal integer/float number format, to be converted to Integer for
  # integer format, Float for float format.
  #
  DecimalNumeric = floatpat     # decimal integer is allowed as float also.
  accept(DecimalNumeric, floatpat) {|s,|
    begin
      eval(s)
    rescue SyntaxError
      raise OptionParser::InvalidArgument, s
    end if s
  }

  #
  # Boolean switch, which means whether it is present or not, whether it is
  # absent or not with prefix no-, or it takes an argument
  # yes/no/true/false/+/-.
  #
  yesno = CompletingHash.new
  %w[- no false].each {|el| yesno[el] = false}
  %w[+ yes true].each {|el| yesno[el] = true}
  yesno['nil'] = false          # should be nil?
  accept(TrueClass, yesno) {|arg, val| val == nil or val}
  #
  # Similar to TrueClass, but defaults to false.
  #
  accept(FalseClass, yesno) {|arg, val| val != nil and val}

  #
  # List of strings separated by ",".
  #
  accept(Array) do |s,|
    if s
      s = s.split(',').collect {|ss| ss unless ss.empty?}
    end
    s
  end

  #
  # Regular expression with options.
  #
  accept(Regexp, %r"\A/((?:\\.|[^\\])*)/([[:alpha:]]+)?\z|.*") do |all, s, o|
    f = 0
    if o
      f |= Regexp::IGNORECASE if /i/ =~ o
      f |= Regexp::MULTILINE if /m/ =~ o
      f |= Regexp::EXTENDED if /x/ =~ o
      k = o.delete("imx")
      k = nil if k.empty?
    end
    Regexp.new(s || all, f, k)
  end

  #
  # Exceptions
  #

  #
  # Base class of exceptions from OptionParser.
  #
  class ParseError < RuntimeError
    # Reason which caused the error.
    Reason = 'parse error'.freeze

    def initialize(*args)
      @args = args
      @reason = nil
    end

    attr_reader :args
    attr_writer :reason

    #
    # Pushes back erred argument(s) to +argv+.
    #
    def recover(argv)
      argv[0, 0] = @args
      argv
    end

    def self.filter_backtrace(array)
      unless $DEBUG
        array.delete_if(&%r"\A#{Regexp.quote(__FILE__)}:"o.method(:=~))
      end
      array
    end

    def set_backtrace(array)
      super(self.class.filter_backtrace(array))
    end

    def set_option(opt, eq)
      if eq
        @args[0] = opt
      else
        @args.unshift(opt)
      end
      self
    end

    #
    # Returns error reason. Override this for I18N.
    #
    def reason
      @reason || self.class::Reason
    end

    def inspect
      "#<#{self.class}: #{args.join(' ')}>"
    end

    #
    # Default stringizing method to emit standard error message.
    #
    def message
      reason + ': ' + args.join(' ')
    end

    alias to_s message
  end

  #
  # Raises when ambiguously completable string is encountered.
  #
  class AmbiguousOption < ParseError
    const_set(:Reason, 'ambiguous option'.freeze)
  end

  #
  # Raises when there is an argument for a switch which takes no argument.
  #
  class NeedlessArgument < ParseError
    const_set(:Reason, 'needless argument'.freeze)
  end

  #
  # Raises when a switch with mandatory argument has no argument.
  #
  class MissingArgument < ParseError
    const_set(:Reason, 'missing argument'.freeze)
  end

  #
  # Raises when switch is undefined.
  #
  class InvalidOption < ParseError
    const_set(:Reason, 'invalid option'.freeze)
  end

  #
  # Raises when the given argument does not match required format.
  #
  class InvalidArgument < ParseError
    const_set(:Reason, 'invalid argument'.freeze)
  end

  #
  # Raises when the given argument word can't be completed uniquely.
  #
  class AmbiguousArgument < InvalidArgument
    const_set(:Reason, 'ambiguous argument'.freeze)
  end

  #
  # Miscellaneous
  #

  #
  # Extends command line arguments array (ARGV) to parse itself.
  #
  module Arguable

    #
    # Sets OptionParser object, when +opt+ is +false+ or +nil+, methods
    # OptionParser::Arguable#options and OptionParser::Arguable#options= are
    # undefined. Thus, there is no ways to access the OptionParser object
    # via the receiver object.
    #
    def options=(opt)
      unless @optparse = opt
        class << self
          undef_method(:options)
          undef_method(:options=)
        end
      end
    end

    #
    # Actual OptionParser object, automatically created if nonexistent.
    #
    # If called with a block, yields the OptionParser object and returns the
    # result of the block. If an OptionParser::ParseError exception occurs
    # in the block, it is rescued, a error message printed to STDERR and
    # +nil+ returned.
    #
    def options
      @optparse ||= OptionParser.new
      @optparse.default_argv = self
      block_given? or return @optparse
      begin
        yield @optparse
      rescue ParseError
        @optparse.warn $!
        nil
      end
    end

    #
    # Parses +self+ destructively in order and returns +self+ containing the
    # rest arguments left unparsed.
    #
    def order!(&blk) options.order!(self, &blk) end

    #
    # Parses +self+ destructively in permutation mode and returns +self+
    # containing the rest arguments left unparsed.
    #
    def permute!() options.permute!(self) end

    #
    # Parses +self+ destructively and returns +self+ containing the
    # rest arguments left unparsed.
    #
    def parse!() options.parse!(self) end

    #
    # Substitution of getopts is possible as follows. Also see
    # OptionParser#getopts.
    #
    #   def getopts(*args)
    #     ($OPT = ARGV.getopts(*args)).each do |opt, val|
    #       eval "$OPT_#{opt.gsub(/[^A-Za-z0-9_]/, '_')} = val"
    #     end
    #   rescue OptionParser::ParseError
    #   end
    #
    def getopts(*args)
      options.getopts(self, *args)
    end

    #
    # Initializes instance variable.
    #
    def self.extend_object(obj)
      super
      obj.instance_eval {@optparse = nil}
    end
    def initialize(*args)
      super
      @optparse = nil
    end
  end

  #
  # Acceptable argument classes. Now contains DecimalInteger, OctalInteger
  # and DecimalNumeric. See Acceptable argument classes (in source code).
  #
  module Acceptables
    const_set(:DecimalInteger, OptionParser::DecimalInteger)
    const_set(:OctalInteger, OptionParser::OctalInteger)
    const_set(:DecimalNumeric, OptionParser::DecimalNumeric)
  end
end

# ARGV is arguable by OptionParser
ARGV.extend(OptionParser::Arguable)

# An alias for OptionParser.
OptParse = OptionParser  # :nodoc:
lib64/ruby/2.2.0/yaml.rb000064400000003315150402106360010372 0ustar00##
# The YAML module is an alias of Psych, the YAML engine for Ruby.

begin
  require 'psych'
rescue LoadError
  warn "#{caller[0]}:"
  warn "It seems your ruby installation is missing psych (for YAML output)."
  warn "To eliminate this warning, please install libyaml and reinstall your ruby."
  raise
end

YAML = Psych # :nodoc:

# YAML Ain't Markup Language
#
# This module provides a Ruby interface for data serialization in YAML format.
#
# The underlying implementation is the libyaml wrapper Psych.
#
# == Usage
#
# Working with YAML can be very simple, for example:
#
#     require 'yaml'
#     # Parse a YAML string
#     YAML.load("--- foo") #=> "foo"
#
#     # Emit some YAML
#     YAML.dump("foo")     # => "--- foo\n...\n"
#     { :a => 'b'}.to_yaml  # => "---\n:a: b\n"
#
# == Security
#
# Do not use YAML to load untrusted data. Doing so is unsafe and could allow
# malicious input to execute arbitrary code inside your application. Please see
# doc/security.rdoc for more information.
#
# == History
#
# Syck was the original for YAML implementation in Ruby's standard library
# developed by why the lucky stiff.
#
# You can still use Syck, if you prefer, for parsing and emitting YAML, but you
# must install the 'syck' gem now in order to use it.
#
# In older Ruby versions, ie. <= 1.9, Syck is still provided, however it was
# completely removed with the release of Ruby 2.0.0.
#
# == More info
#
# For more advanced details on the implementation see Psych, and also check out
# http://yaml.org for spec details and other helpful information.
#
# Pysch is maintained by Aaron Patterson on github: https://github.com/tenderlove/psych
#
# Syck can also be found on github: https://github.com/tenderlove/syck
module YAML
end
lib64/ruby/2.2.0/matrix.rb000064400000152213150402106360010736 0ustar00# encoding: utf-8
#
# = matrix.rb
#
# An implementation of Matrix and Vector classes.
#
# See classes Matrix and Vector for documentation.
#
# Current Maintainer:: Marc-André Lafortune
# Original Author:: Keiju ISHITSUKA
# Original Documentation:: Gavin Sinclair (sourced from <i>Ruby in a Nutshell</i> (Matsumoto, O'Reilly))
##

require "e2mmap.rb"

module ExceptionForMatrix # :nodoc:
  extend Exception2MessageMapper
  def_e2message(TypeError, "wrong argument type %s (expected %s)")
  def_e2message(ArgumentError, "Wrong # of arguments(%d for %d)")

  def_exception("ErrDimensionMismatch", "\#{self.name} dimension mismatch")
  def_exception("ErrNotRegular", "Not Regular Matrix")
  def_exception("ErrOperationNotDefined", "Operation(%s) can\\'t be defined: %s op %s")
  def_exception("ErrOperationNotImplemented", "Sorry, Operation(%s) not implemented: %s op %s")
end

#
# The +Matrix+ class represents a mathematical matrix. It provides methods for creating
# matrices, operating on them arithmetically and algebraically,
# and determining their mathematical properties (trace, rank, inverse, determinant).
#
# == Method Catalogue
#
# To create a matrix:
# * Matrix[*rows]
# * Matrix.[](*rows)
# * Matrix.rows(rows, copy = true)
# * Matrix.columns(columns)
# * Matrix.build(row_count, column_count, &block)
# * Matrix.diagonal(*values)
# * Matrix.scalar(n, value)
# * Matrix.identity(n)
# * Matrix.unit(n)
# * Matrix.I(n)
# * Matrix.zero(n)
# * Matrix.row_vector(row)
# * Matrix.column_vector(column)
# * Matrix.hstack(*matrices)
# * Matrix.vstack(*matrices)
#
# To access Matrix elements/columns/rows/submatrices/properties:
# * #[](i, j)
# * #row_count (row_size)
# * #column_count (column_size)
# * #row(i)
# * #column(j)
# * #collect
# * #map
# * #each
# * #each_with_index
# * #find_index
# * #minor(*param)
# * #first_minor(row, column)
# * #cofactor(row, column)
# * #adjugate
# * #laplace_expansion(row_or_column: num)
# * #cofactor_expansion(row_or_column: num)
#
# Properties of a matrix:
# * #diagonal?
# * #empty?
# * #hermitian?
# * #lower_triangular?
# * #normal?
# * #orthogonal?
# * #permutation?
# * #real?
# * #regular?
# * #singular?
# * #square?
# * #symmetric?
# * #unitary?
# * #upper_triangular?
# * #zero?
#
# Matrix arithmetic:
# * #*(m)
# * #+(m)
# * #-(m)
# * #/(m)
# * #inverse
# * #inv
# * #**
# * #+@
# * #-@
#
# Matrix functions:
# * #determinant
# * #det
# * #hstack(*matrices)
# * #rank
# * #round
# * #trace
# * #tr
# * #transpose
# * #t
# * #vstack(*matrices)
#
# Matrix decompositions:
# * #eigen
# * #eigensystem
# * #lup
# * #lup_decomposition
#
# Complex arithmetic:
# * conj
# * conjugate
# * imag
# * imaginary
# * real
# * rect
# * rectangular
#
# Conversion to other data types:
# * #coerce(other)
# * #row_vectors
# * #column_vectors
# * #to_a
#
# String representations:
# * #to_s
# * #inspect
#
class Matrix
  include Enumerable
  include ExceptionForMatrix
  autoload :EigenvalueDecomposition, "matrix/eigenvalue_decomposition"
  autoload :LUPDecomposition, "matrix/lup_decomposition"

  # instance creations
  private_class_method :new
  attr_reader :rows
  protected :rows

  #
  # Creates a matrix where each argument is a row.
  #   Matrix[ [25, 93], [-1, 66] ]
  #      =>  25 93
  #          -1 66
  #
  def Matrix.[](*rows)
    rows(rows, false)
  end

  #
  # Creates a matrix where +rows+ is an array of arrays, each of which is a row
  # of the matrix.  If the optional argument +copy+ is false, use the given
  # arrays as the internal structure of the matrix without copying.
  #   Matrix.rows([[25, 93], [-1, 66]])
  #      =>  25 93
  #          -1 66
  #
  def Matrix.rows(rows, copy = true)
    rows = convert_to_array(rows, copy)
    rows.map! do |row|
      convert_to_array(row, copy)
    end
    size = (rows[0] || []).size
    rows.each do |row|
      raise ErrDimensionMismatch, "row size differs (#{row.size} should be #{size})" unless row.size == size
    end
    new rows, size
  end

  #
  # Creates a matrix using +columns+ as an array of column vectors.
  #   Matrix.columns([[25, 93], [-1, 66]])
  #      =>  25 -1
  #          93 66
  #
  def Matrix.columns(columns)
    rows(columns, false).transpose
  end

  #
  # Creates a matrix of size +row_count+ x +column_count+.
  # It fills the values by calling the given block,
  # passing the current row and column.
  # Returns an enumerator if no block is given.
  #
  #   m = Matrix.build(2, 4) {|row, col| col - row }
  #     => Matrix[[0, 1, 2, 3], [-1, 0, 1, 2]]
  #   m = Matrix.build(3) { rand }
  #     => a 3x3 matrix with random elements
  #
  def Matrix.build(row_count, column_count = row_count)
    row_count = CoercionHelper.coerce_to_int(row_count)
    column_count = CoercionHelper.coerce_to_int(column_count)
    raise ArgumentError if row_count < 0 || column_count < 0
    return to_enum :build, row_count, column_count unless block_given?
    rows = Array.new(row_count) do |i|
      Array.new(column_count) do |j|
        yield i, j
      end
    end
    new rows, column_count
  end

  #
  # Creates a matrix where the diagonal elements are composed of +values+.
  #   Matrix.diagonal(9, 5, -3)
  #     =>  9  0  0
  #         0  5  0
  #         0  0 -3
  #
  def Matrix.diagonal(*values)
    size = values.size
    return Matrix.empty if size == 0
    rows = Array.new(size) {|j|
      row = Array.new(size, 0)
      row[j] = values[j]
      row
    }
    new rows
  end

  #
  # Creates an +n+ by +n+ diagonal matrix where each diagonal element is
  # +value+.
  #   Matrix.scalar(2, 5)
  #     => 5 0
  #        0 5
  #
  def Matrix.scalar(n, value)
    diagonal(*Array.new(n, value))
  end

  #
  # Creates an +n+ by +n+ identity matrix.
  #   Matrix.identity(2)
  #     => 1 0
  #        0 1
  #
  def Matrix.identity(n)
    scalar(n, 1)
  end
  class << Matrix
    alias unit identity
    alias I identity
  end

  #
  # Creates a zero matrix.
  #   Matrix.zero(2)
  #     => 0 0
  #        0 0
  #
  def Matrix.zero(row_count, column_count = row_count)
    rows = Array.new(row_count){Array.new(column_count, 0)}
    new rows, column_count
  end

  #
  # Creates a single-row matrix where the values of that row are as given in
  # +row+.
  #   Matrix.row_vector([4,5,6])
  #     => 4 5 6
  #
  def Matrix.row_vector(row)
    row = convert_to_array(row)
    new [row]
  end

  #
  # Creates a single-column matrix where the values of that column are as given
  # in +column+.
  #   Matrix.column_vector([4,5,6])
  #     => 4
  #        5
  #        6
  #
  def Matrix.column_vector(column)
    column = convert_to_array(column)
    new [column].transpose, 1
  end

  #
  # Creates a empty matrix of +row_count+ x +column_count+.
  # At least one of +row_count+ or +column_count+ must be 0.
  #
  #   m = Matrix.empty(2, 0)
  #   m == Matrix[ [], [] ]
  #     => true
  #   n = Matrix.empty(0, 3)
  #   n == Matrix.columns([ [], [], [] ])
  #     => true
  #   m * n
  #     => Matrix[[0, 0, 0], [0, 0, 0]]
  #
  def Matrix.empty(row_count = 0, column_count = 0)
    raise ArgumentError, "One size must be 0" if column_count != 0 && row_count != 0
    raise ArgumentError, "Negative size" if column_count < 0 || row_count < 0

    new([[]]*row_count, column_count)
  end

  #
  # Create a matrix by stacking matrices vertically
  #
  #   x = Matrix[[1, 2], [3, 4]]
  #   y = Matrix[[5, 6], [7, 8]]
  #   Matrix.vstack(x, y) # => Matrix[[1, 2], [3, 4], [5, 6], [7, 8]]
  #
  def Matrix.vstack(x, *matrices)
    raise TypeError, "Expected a Matrix, got a #{x.class}" unless x.is_a?(Matrix)
    result = x.send(:rows).map(&:dup)
    matrices.each do |m|
      raise TypeError, "Expected a Matrix, got a #{m.class}" unless m.is_a?(Matrix)
      if m.column_count != x.column_count
        raise ErrDimensionMismatch, "The given matrices must have #{x.column_count} columns, but one has #{m.column_count}"
      end
      result.concat(m.send(:rows))
    end
    new result, x.column_count
  end


  #
  # Create a matrix by stacking matrices horizontally
  #
  #   x = Matrix[[1, 2], [3, 4]]
  #   y = Matrix[[5, 6], [7, 8]]
  #   Matrix.hstack(x, y) # => Matrix[[1, 2, 5, 6], [3, 4, 7, 8]]
  #
  def Matrix.hstack(x, *matrices)
    raise TypeError, "Expected a Matrix, got a #{x.class}" unless x.is_a?(Matrix)
    result = x.send(:rows).map(&:dup)
    total_column_count = x.column_count
    matrices.each do |m|
      raise TypeError, "Expected a Matrix, got a #{m.class}" unless m.is_a?(Matrix)
      if m.row_count != x.row_count
        raise ErrDimensionMismatch, "The given matrices must have #{x.row_count} rows, but one has #{m.row_count}"
      end
      result.each_with_index do |row, i|
        row.concat m.send(:rows)[i]
      end
      total_column_count += m.column_count
    end
    new result, total_column_count
  end

  #
  # Matrix.new is private; use Matrix.rows, columns, [], etc... to create.
  #
  def initialize(rows, column_count = rows[0].size)
    # No checking is done at this point. rows must be an Array of Arrays.
    # column_count must be the size of the first row, if there is one,
    # otherwise it *must* be specified and can be any integer >= 0
    @rows = rows
    @column_count = column_count
  end

  def new_matrix(rows, column_count = rows[0].size) # :nodoc:
    self.class.send(:new, rows, column_count) # bypass privacy of Matrix.new
  end
  private :new_matrix

  #
  # Returns element (+i+,+j+) of the matrix.  That is: row +i+, column +j+.
  #
  def [](i, j)
    @rows.fetch(i){return nil}[j]
  end
  alias element []
  alias component []

  def []=(i, j, v)
    @rows[i][j] = v
  end
  alias set_element []=
  alias set_component []=
  private :[]=, :set_element, :set_component

  #
  # Returns the number of rows.
  #
  def row_count
    @rows.size
  end

  alias_method :row_size, :row_count
  #
  # Returns the number of columns.
  #
  attr_reader :column_count
  alias_method :column_size, :column_count

  #
  # Returns row vector number +i+ of the matrix as a Vector (starting at 0 like
  # an array).  When a block is given, the elements of that vector are iterated.
  #
  def row(i, &block) # :yield: e
    if block_given?
      @rows.fetch(i){return self}.each(&block)
      self
    else
      Vector.elements(@rows.fetch(i){return nil})
    end
  end

  #
  # Returns column vector number +j+ of the matrix as a Vector (starting at 0
  # like an array).  When a block is given, the elements of that vector are
  # iterated.
  #
  def column(j) # :yield: e
    if block_given?
      return self if j >= column_count || j < -column_count
      row_count.times do |i|
        yield @rows[i][j]
      end
      self
    else
      return nil if j >= column_count || j < -column_count
      col = Array.new(row_count) {|i|
        @rows[i][j]
      }
      Vector.elements(col, false)
    end
  end

  #
  # Returns a matrix that is the result of iteration of the given block over all
  # elements of the matrix.
  #   Matrix[ [1,2], [3,4] ].collect { |e| e**2 }
  #     => 1  4
  #        9 16
  #
  def collect(&block) # :yield: e
    return to_enum(:collect) unless block_given?
    rows = @rows.collect{|row| row.collect(&block)}
    new_matrix rows, column_count
  end
  alias map collect

  #
  # Yields all elements of the matrix, starting with those of the first row,
  # or returns an Enumerator if no block given.
  # Elements can be restricted by passing an argument:
  # * :all (default): yields all elements
  # * :diagonal: yields only elements on the diagonal
  # * :off_diagonal: yields all elements except on the diagonal
  # * :lower: yields only elements on or below the diagonal
  # * :strict_lower: yields only elements below the diagonal
  # * :strict_upper: yields only elements above the diagonal
  # * :upper: yields only elements on or above the diagonal
  #
  #   Matrix[ [1,2], [3,4] ].each { |e| puts e }
  #     # => prints the numbers 1 to 4
  #   Matrix[ [1,2], [3,4] ].each(:strict_lower).to_a # => [3]
  #
  def each(which = :all) # :yield: e
    return to_enum :each, which unless block_given?
    last = column_count - 1
    case which
    when :all
      block = Proc.new
      @rows.each do |row|
        row.each(&block)
      end
    when :diagonal
      @rows.each_with_index do |row, row_index|
        yield row.fetch(row_index){return self}
      end
    when :off_diagonal
      @rows.each_with_index do |row, row_index|
        column_count.times do |col_index|
          yield row[col_index] unless row_index == col_index
        end
      end
    when :lower
      @rows.each_with_index do |row, row_index|
        0.upto([row_index, last].min) do |col_index|
          yield row[col_index]
        end
      end
    when :strict_lower
      @rows.each_with_index do |row, row_index|
        [row_index, column_count].min.times do |col_index|
          yield row[col_index]
        end
      end
    when :strict_upper
      @rows.each_with_index do |row, row_index|
        (row_index+1).upto(last) do |col_index|
          yield row[col_index]
        end
      end
    when :upper
      @rows.each_with_index do |row, row_index|
        row_index.upto(last) do |col_index|
          yield row[col_index]
        end
      end
    else
      raise ArgumentError, "expected #{which.inspect} to be one of :all, :diagonal, :off_diagonal, :lower, :strict_lower, :strict_upper or :upper"
    end
    self
  end

  #
  # Same as #each, but the row index and column index in addition to the element
  #
  #   Matrix[ [1,2], [3,4] ].each_with_index do |e, row, col|
  #     puts "#{e} at #{row}, #{col}"
  #   end
  #     # => Prints:
  #     #    1 at 0, 0
  #     #    2 at 0, 1
  #     #    3 at 1, 0
  #     #    4 at 1, 1
  #
  def each_with_index(which = :all) # :yield: e, row, column
    return to_enum :each_with_index, which unless block_given?
    last = column_count - 1
    case which
    when :all
      @rows.each_with_index do |row, row_index|
        row.each_with_index do |e, col_index|
          yield e, row_index, col_index
        end
      end
    when :diagonal
      @rows.each_with_index do |row, row_index|
        yield row.fetch(row_index){return self}, row_index, row_index
      end
    when :off_diagonal
      @rows.each_with_index do |row, row_index|
        column_count.times do |col_index|
          yield row[col_index], row_index, col_index unless row_index == col_index
        end
      end
    when :lower
      @rows.each_with_index do |row, row_index|
        0.upto([row_index, last].min) do |col_index|
          yield row[col_index], row_index, col_index
        end
      end
    when :strict_lower
      @rows.each_with_index do |row, row_index|
        [row_index, column_count].min.times do |col_index|
          yield row[col_index], row_index, col_index
        end
      end
    when :strict_upper
      @rows.each_with_index do |row, row_index|
        (row_index+1).upto(last) do |col_index|
          yield row[col_index], row_index, col_index
        end
      end
    when :upper
      @rows.each_with_index do |row, row_index|
        row_index.upto(last) do |col_index|
          yield row[col_index], row_index, col_index
        end
      end
    else
      raise ArgumentError, "expected #{which.inspect} to be one of :all, :diagonal, :off_diagonal, :lower, :strict_lower, :strict_upper or :upper"
    end
    self
  end

  SELECTORS = {all: true, diagonal: true, off_diagonal: true, lower: true, strict_lower: true, strict_upper: true, upper: true}.freeze
  #
  # :call-seq:
  #   index(value, selector = :all) -> [row, column]
  #   index(selector = :all){ block } -> [row, column]
  #   index(selector = :all) -> an_enumerator
  #
  # The index method is specialized to return the index as [row, column]
  # It also accepts an optional +selector+ argument, see #each for details.
  #
  #   Matrix[ [1,2], [3,4] ].index(&:even?) # => [0, 1]
  #   Matrix[ [1,1], [1,1] ].index(1, :strict_lower) # => [1, 0]
  #
  def index(*args)
    raise ArgumentError, "wrong number of arguments(#{args.size} for 0-2)" if args.size > 2
    which = (args.size == 2 || SELECTORS.include?(args.last)) ? args.pop : :all
    return to_enum :find_index, which, *args unless block_given? || args.size == 1
    if args.size == 1
      value = args.first
      each_with_index(which) do |e, row_index, col_index|
        return row_index, col_index if e == value
      end
    else
      each_with_index(which) do |e, row_index, col_index|
        return row_index, col_index if yield e
      end
    end
    nil
  end
  alias_method :find_index, :index

  #
  # Returns a section of the matrix.  The parameters are either:
  # *  start_row, nrows, start_col, ncols; OR
  # *  row_range, col_range
  #
  #   Matrix.diagonal(9, 5, -3).minor(0..1, 0..2)
  #     => 9 0 0
  #        0 5 0
  #
  # Like Array#[], negative indices count backward from the end of the
  # row or column (-1 is the last element). Returns nil if the starting
  # row or column is greater than row_count or column_count respectively.
  #
  def minor(*param)
    case param.size
    when 2
      row_range, col_range = param
      from_row = row_range.first
      from_row += row_count if from_row < 0
      to_row = row_range.end
      to_row += row_count if to_row < 0
      to_row += 1 unless row_range.exclude_end?
      size_row = to_row - from_row

      from_col = col_range.first
      from_col += column_count if from_col < 0
      to_col = col_range.end
      to_col += column_count if to_col < 0
      to_col += 1 unless col_range.exclude_end?
      size_col = to_col - from_col
    when 4
      from_row, size_row, from_col, size_col = param
      return nil if size_row < 0 || size_col < 0
      from_row += row_count if from_row < 0
      from_col += column_count if from_col < 0
    else
      raise ArgumentError, param.inspect
    end

    return nil if from_row > row_count || from_col > column_count || from_row < 0 || from_col < 0
    rows = @rows[from_row, size_row].collect{|row|
      row[from_col, size_col]
    }
    new_matrix rows, [column_count - from_col, size_col].min
  end

  #
  # Returns the submatrix obtained by deleting the specified row and column.
  #
  #   Matrix.diagonal(9, 5, -3, 4).first_minor(1, 2)
  #     => 9 0 0
  #        0 0 0
  #        0 0 4
  #
  def first_minor(row, column)
    raise RuntimeError, "first_minor of empty matrix is not defined" if empty?

    unless 0 <= row && row < row_count
      raise ArgumentError, "invalid row (#{row.inspect} for 0..#{row_count - 1})"
    end

    unless 0 <= column && column < column_count
      raise ArgumentError, "invalid column (#{column.inspect} for 0..#{column_count - 1})"
    end

    arrays = to_a
    arrays.delete_at(row)
    arrays.each do |array|
      array.delete_at(column)
    end

    new_matrix arrays, column_count - 1
  end

  #
  # Returns the (row, column) cofactor which is obtained by multiplying
  # the first minor by (-1)**(row + column).
  #
  #   Matrix.diagonal(9, 5, -3, 4).cofactor(1, 1)
  #     => -108
  #
  def cofactor(row, column)
    raise RuntimeError, "cofactor of empty matrix is not defined" if empty?
    Matrix.Raise ErrDimensionMismatch unless square?

    det_of_minor = first_minor(row, column).determinant
    det_of_minor * (-1) ** (row + column)
  end

  #
  # Returns the adjugate of the matrix.
  #
  #   Matrix[ [7,6],[3,9] ].adjugate
  #     => 9 -6
  #        -3 7
  #
  def adjugate
    Matrix.Raise ErrDimensionMismatch unless square?
    Matrix.build(row_count, column_count) do |row, column|
      cofactor(column, row)
    end
  end

  #
  # Returns the Laplace expansion along given row or column.
  #
  #    Matrix[[7,6], [3,9]].laplace_expansion(column: 1)
  #     => 45
  #
  #    Matrix[[Vector[1, 0], Vector[0, 1]], [2, 3]].laplace_expansion(row: 0)
  #     => Vector[3, -2]
  #
  #
  def laplace_expansion(row: nil, column: nil)
    num = row || column

    if !num || (row && column)
      raise ArgumentError, "exactly one the row or column arguments must be specified"
    end

    Matrix.Raise ErrDimensionMismatch unless square?
    raise RuntimeError, "laplace_expansion of empty matrix is not defined" if empty?

    unless 0 <= num && num < row_count
      raise ArgumentError, "invalid num (#{num.inspect} for 0..#{row_count - 1})"
    end

    send(row ? :row : :column, num).map.with_index { |e, k|
      e * cofactor(*(row ? [num, k] : [k,num]))
    }.inject(:+)
  end
  alias_method :cofactor_expansion, :laplace_expansion


  #--
  # TESTING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  #++

  #
  # Returns +true+ if this is a diagonal matrix.
  # Raises an error if matrix is not square.
  #
  def diagonal?
    Matrix.Raise ErrDimensionMismatch unless square?
    each(:off_diagonal).all?(&:zero?)
  end

  #
  # Returns +true+ if this is an empty matrix, i.e. if the number of rows
  # or the number of columns is 0.
  #
  def empty?
    column_count == 0 || row_count == 0
  end

  #
  # Returns +true+ if this is an hermitian matrix.
  # Raises an error if matrix is not square.
  #
  def hermitian?
    Matrix.Raise ErrDimensionMismatch unless square?
    each_with_index(:upper).all? do |e, row, col|
      e == rows[col][row].conj
    end
  end

  #
  # Returns +true+ if this is a lower triangular matrix.
  #
  def lower_triangular?
    each(:strict_upper).all?(&:zero?)
  end

  #
  # Returns +true+ if this is a normal matrix.
  # Raises an error if matrix is not square.
  #
  def normal?
    Matrix.Raise ErrDimensionMismatch unless square?
    rows.each_with_index do |row_i, i|
      rows.each_with_index do |row_j, j|
        s = 0
        rows.each_with_index do |row_k, k|
          s += row_i[k] * row_j[k].conj - row_k[i].conj * row_k[j]
        end
        return false unless s == 0
      end
    end
    true
  end

  #
  # Returns +true+ if this is an orthogonal matrix
  # Raises an error if matrix is not square.
  #
  def orthogonal?
    Matrix.Raise ErrDimensionMismatch unless square?
    rows.each_with_index do |row, i|
      column_count.times do |j|
        s = 0
        row_count.times do |k|
          s += row[k] * rows[k][j]
        end
        return false unless s == (i == j ? 1 : 0)
      end
    end
    true
  end

  #
  # Returns +true+ if this is a permutation matrix
  # Raises an error if matrix is not square.
  #
  def permutation?
    Matrix.Raise ErrDimensionMismatch unless square?
    cols = Array.new(column_count)
    rows.each_with_index do |row, i|
      found = false
      row.each_with_index do |e, j|
        if e == 1
          return false if found || cols[j]
          found = cols[j] = true
        elsif e != 0
          return false
        end
      end
      return false unless found
    end
    true
  end

  #
  # Returns +true+ if all entries of the matrix are real.
  #
  def real?
    all?(&:real?)
  end

  #
  # Returns +true+ if this is a regular (i.e. non-singular) matrix.
  #
  def regular?
    not singular?
  end

  #
  # Returns +true+ if this is a singular matrix.
  #
  def singular?
    determinant == 0
  end

  #
  # Returns +true+ if this is a square matrix.
  #
  def square?
    column_count == row_count
  end

  #
  # Returns +true+ if this is a symmetric matrix.
  # Raises an error if matrix is not square.
  #
  def symmetric?
    Matrix.Raise ErrDimensionMismatch unless square?
    each_with_index(:strict_upper) do |e, row, col|
      return false if e != rows[col][row]
    end
    true
  end

  #
  # Returns +true+ if this is a unitary matrix
  # Raises an error if matrix is not square.
  #
  def unitary?
    Matrix.Raise ErrDimensionMismatch unless square?
    rows.each_with_index do |row, i|
      column_count.times do |j|
        s = 0
        row_count.times do |k|
          s += row[k].conj * rows[k][j]
        end
        return false unless s == (i == j ? 1 : 0)
      end
    end
    true
  end

  #
  # Returns +true+ if this is an upper triangular matrix.
  #
  def upper_triangular?
    each(:strict_lower).all?(&:zero?)
  end

  #
  # Returns +true+ if this is a matrix with only zero elements
  #
  def zero?
    all?(&:zero?)
  end

  #--
  # OBJECT METHODS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  #++

  #
  # Returns +true+ if and only if the two matrices contain equal elements.
  #
  def ==(other)
    return false unless Matrix === other &&
                        column_count == other.column_count # necessary for empty matrices
    rows == other.rows
  end

  def eql?(other)
    return false unless Matrix === other &&
                        column_count == other.column_count # necessary for empty matrices
    rows.eql? other.rows
  end

  #
  # Returns a clone of the matrix, so that the contents of each do not reference
  # identical objects.
  # There should be no good reason to do this since Matrices are immutable.
  #
  def clone
    new_matrix @rows.map(&:dup), column_count
  end

  #
  # Returns a hash-code for the matrix.
  #
  def hash
    @rows.hash
  end

  #--
  # ARITHMETIC -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  #++

  #
  # Matrix multiplication.
  #   Matrix[[2,4], [6,8]] * Matrix.identity(2)
  #     => 2 4
  #        6 8
  #
  def *(m) # m is matrix or vector or number
    case(m)
    when Numeric
      rows = @rows.collect {|row|
        row.collect {|e| e * m }
      }
      return new_matrix rows, column_count
    when Vector
      m = self.class.column_vector(m)
      r = self * m
      return r.column(0)
    when Matrix
      Matrix.Raise ErrDimensionMismatch if column_count != m.row_count

      rows = Array.new(row_count) {|i|
        Array.new(m.column_count) {|j|
          (0 ... column_count).inject(0) do |vij, k|
            vij + self[i, k] * m[k, j]
          end
        }
      }
      return new_matrix rows, m.column_count
    else
      return apply_through_coercion(m, __method__)
    end
  end

  #
  # Matrix addition.
  #   Matrix.scalar(2,5) + Matrix[[1,0], [-4,7]]
  #     =>  6  0
  #        -4 12
  #
  def +(m)
    case m
    when Numeric
      Matrix.Raise ErrOperationNotDefined, "+", self.class, m.class
    when Vector
      m = self.class.column_vector(m)
    when Matrix
    else
      return apply_through_coercion(m, __method__)
    end

    Matrix.Raise ErrDimensionMismatch unless row_count == m.row_count && column_count == m.column_count

    rows = Array.new(row_count) {|i|
      Array.new(column_count) {|j|
        self[i, j] + m[i, j]
      }
    }
    new_matrix rows, column_count
  end

  #
  # Matrix subtraction.
  #   Matrix[[1,5], [4,2]] - Matrix[[9,3], [-4,1]]
  #     => -8  2
  #         8  1
  #
  def -(m)
    case m
    when Numeric
      Matrix.Raise ErrOperationNotDefined, "-", self.class, m.class
    when Vector
      m = self.class.column_vector(m)
    when Matrix
    else
      return apply_through_coercion(m, __method__)
    end

    Matrix.Raise ErrDimensionMismatch unless row_count == m.row_count && column_count == m.column_count

    rows = Array.new(row_count) {|i|
      Array.new(column_count) {|j|
        self[i, j] - m[i, j]
      }
    }
    new_matrix rows, column_count
  end

  #
  # Matrix division (multiplication by the inverse).
  #   Matrix[[7,6], [3,9]] / Matrix[[2,9], [3,1]]
  #     => -7  1
  #        -3 -6
  #
  def /(other)
    case other
    when Numeric
      rows = @rows.collect {|row|
        row.collect {|e| e / other }
      }
      return new_matrix rows, column_count
    when Matrix
      return self * other.inverse
    else
      return apply_through_coercion(other, __method__)
    end
  end

  #
  # Returns the inverse of the matrix.
  #   Matrix[[-1, -1], [0, -1]].inverse
  #     => -1  1
  #         0 -1
  #
  def inverse
    Matrix.Raise ErrDimensionMismatch unless square?
    self.class.I(row_count).send(:inverse_from, self)
  end
  alias inv inverse

  def inverse_from(src) # :nodoc:
    last = row_count - 1
    a = src.to_a

    0.upto(last) do |k|
      i = k
      akk = a[k][k].abs
      (k+1).upto(last) do |j|
        v = a[j][k].abs
        if v > akk
          i = j
          akk = v
        end
      end
      Matrix.Raise ErrNotRegular if akk == 0
      if i != k
        a[i], a[k] = a[k], a[i]
        @rows[i], @rows[k] = @rows[k], @rows[i]
      end
      akk = a[k][k]

      0.upto(last) do |ii|
        next if ii == k
        q = a[ii][k].quo(akk)
        a[ii][k] = 0

        (k + 1).upto(last) do |j|
          a[ii][j] -= a[k][j] * q
        end
        0.upto(last) do |j|
          @rows[ii][j] -= @rows[k][j] * q
        end
      end

      (k+1).upto(last) do |j|
        a[k][j] = a[k][j].quo(akk)
      end
      0.upto(last) do |j|
        @rows[k][j] = @rows[k][j].quo(akk)
      end
    end
    self
  end
  private :inverse_from

  #
  # Matrix exponentiation.
  # Equivalent to multiplying the matrix by itself N times.
  # Non integer exponents will be handled by diagonalizing the matrix.
  #
  #   Matrix[[7,6], [3,9]] ** 2
  #     => 67 96
  #        48 99
  #
  def ** (other)
    case other
    when Integer
      x = self
      if other <= 0
        x = self.inverse
        return self.class.identity(self.column_count) if other == 0
        other = -other
      end
      z = nil
      loop do
        z = z ? z * x : x if other[0] == 1
        return z if (other >>= 1).zero?
        x *= x
      end
    when Numeric
      v, d, v_inv = eigensystem
      v * self.class.diagonal(*d.each(:diagonal).map{|e| e ** other}) * v_inv
    else
      Matrix.Raise ErrOperationNotDefined, "**", self.class, other.class
    end
  end

  def +@
    self
  end

  def -@
    collect {|e| -e }
  end

  #--
  # MATRIX FUNCTIONS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  #++

  #
  # Returns the determinant of the matrix.
  #
  # Beware that using Float values can yield erroneous results
  # because of their lack of precision.
  # Consider using exact types like Rational or BigDecimal instead.
  #
  #   Matrix[[7,6], [3,9]].determinant
  #     => 45
  #
  def determinant
    Matrix.Raise ErrDimensionMismatch unless square?
    m = @rows
    case row_count
      # Up to 4x4, give result using Laplacian expansion by minors.
      # This will typically be faster, as well as giving good results
      # in case of Floats
    when 0
      +1
    when 1
      + m[0][0]
    when 2
      + m[0][0] * m[1][1] - m[0][1] * m[1][0]
    when 3
      m0, m1, m2 = m
      + m0[0] * m1[1] * m2[2] - m0[0] * m1[2] * m2[1] \
      - m0[1] * m1[0] * m2[2] + m0[1] * m1[2] * m2[0] \
      + m0[2] * m1[0] * m2[1] - m0[2] * m1[1] * m2[0]
    when 4
      m0, m1, m2, m3 = m
      + m0[0] * m1[1] * m2[2] * m3[3] - m0[0] * m1[1] * m2[3] * m3[2] \
      - m0[0] * m1[2] * m2[1] * m3[3] + m0[0] * m1[2] * m2[3] * m3[1] \
      + m0[0] * m1[3] * m2[1] * m3[2] - m0[0] * m1[3] * m2[2] * m3[1] \
      - m0[1] * m1[0] * m2[2] * m3[3] + m0[1] * m1[0] * m2[3] * m3[2] \
      + m0[1] * m1[2] * m2[0] * m3[3] - m0[1] * m1[2] * m2[3] * m3[0] \
      - m0[1] * m1[3] * m2[0] * m3[2] + m0[1] * m1[3] * m2[2] * m3[0] \
      + m0[2] * m1[0] * m2[1] * m3[3] - m0[2] * m1[0] * m2[3] * m3[1] \
      - m0[2] * m1[1] * m2[0] * m3[3] + m0[2] * m1[1] * m2[3] * m3[0] \
      + m0[2] * m1[3] * m2[0] * m3[1] - m0[2] * m1[3] * m2[1] * m3[0] \
      - m0[3] * m1[0] * m2[1] * m3[2] + m0[3] * m1[0] * m2[2] * m3[1] \
      + m0[3] * m1[1] * m2[0] * m3[2] - m0[3] * m1[1] * m2[2] * m3[0] \
      - m0[3] * m1[2] * m2[0] * m3[1] + m0[3] * m1[2] * m2[1] * m3[0]
    else
      # For bigger matrices, use an efficient and general algorithm.
      # Currently, we use the Gauss-Bareiss algorithm
      determinant_bareiss
    end
  end
  alias_method :det, :determinant

  #
  # Private. Use Matrix#determinant
  #
  # Returns the determinant of the matrix, using
  # Bareiss' multistep integer-preserving gaussian elimination.
  # It has the same computational cost order O(n^3) as standard Gaussian elimination.
  # Intermediate results are fraction free and of lower complexity.
  # A matrix of Integers will have thus intermediate results that are also Integers,
  # with smaller bignums (if any), while a matrix of Float will usually have
  # intermediate results with better precision.
  #
  def determinant_bareiss
    size = row_count
    last = size - 1
    a = to_a
    no_pivot = Proc.new{ return 0 }
    sign = +1
    pivot = 1
    size.times do |k|
      previous_pivot = pivot
      if (pivot = a[k][k]) == 0
        switch = (k+1 ... size).find(no_pivot) {|row|
          a[row][k] != 0
        }
        a[switch], a[k] = a[k], a[switch]
        pivot = a[k][k]
        sign = -sign
      end
      (k+1).upto(last) do |i|
        ai = a[i]
        (k+1).upto(last) do |j|
          ai[j] =  (pivot * ai[j] - ai[k] * a[k][j]) / previous_pivot
        end
      end
    end
    sign * pivot
  end
  private :determinant_bareiss

  #
  # deprecated; use Matrix#determinant
  #
  def determinant_e
    warn "#{caller(1)[0]}: warning: Matrix#determinant_e is deprecated; use #determinant"
    determinant
  end
  alias det_e determinant_e

  #
  # Returns a new matrix resulting by stacking horizontally
  # the receiver with the given matrices
  #
  #   x = Matrix[[1, 2], [3, 4]]
  #   y = Matrix[[5, 6], [7, 8]]
  #   x.hstack(y) # => Matrix[[1, 2, 5, 6], [3, 4, 7, 8]]
  #
  def hstack(*matrices)
    self.class.hstack(self, *matrices)
  end

  #
  # Returns the rank of the matrix.
  # Beware that using Float values can yield erroneous results
  # because of their lack of precision.
  # Consider using exact types like Rational or BigDecimal instead.
  #
  #   Matrix[[7,6], [3,9]].rank
  #     => 2
  #
  def rank
    # We currently use Bareiss' multistep integer-preserving gaussian elimination
    # (see comments on determinant)
    a = to_a
    last_column = column_count - 1
    last_row = row_count - 1
    pivot_row = 0
    previous_pivot = 1
    0.upto(last_column) do |k|
      switch_row = (pivot_row .. last_row).find {|row|
        a[row][k] != 0
      }
      if switch_row
        a[switch_row], a[pivot_row] = a[pivot_row], a[switch_row] unless pivot_row == switch_row
        pivot = a[pivot_row][k]
        (pivot_row+1).upto(last_row) do |i|
           ai = a[i]
           (k+1).upto(last_column) do |j|
             ai[j] =  (pivot * ai[j] - ai[k] * a[pivot_row][j]) / previous_pivot
           end
         end
        pivot_row += 1
        previous_pivot = pivot
      end
    end
    pivot_row
  end

  #
  # deprecated; use Matrix#rank
  #
  def rank_e
    warn "#{caller(1)[0]}: warning: Matrix#rank_e is deprecated; use #rank"
    rank
  end

  # Returns a matrix with entries rounded to the given precision
  # (see Float#round)
  #
  def round(ndigits=0)
    map{|e| e.round(ndigits)}
  end

  #
  # Returns the trace (sum of diagonal elements) of the matrix.
  #   Matrix[[7,6], [3,9]].trace
  #     => 16
  #
  def trace
    Matrix.Raise ErrDimensionMismatch unless square?
    (0...column_count).inject(0) do |tr, i|
      tr + @rows[i][i]
    end
  end
  alias tr trace

  #
  # Returns the transpose of the matrix.
  #   Matrix[[1,2], [3,4], [5,6]]
  #     => 1 2
  #        3 4
  #        5 6
  #   Matrix[[1,2], [3,4], [5,6]].transpose
  #     => 1 3 5
  #        2 4 6
  #
  def transpose
    return self.class.empty(column_count, 0) if row_count.zero?
    new_matrix @rows.transpose, row_count
  end
  alias t transpose

  #
  # Returns a new matrix resulting by stacking vertically
  # the receiver with the given matrices
  #
  #   x = Matrix[[1, 2], [3, 4]]
  #   y = Matrix[[5, 6], [7, 8]]
  #   x.vstack(y) # => Matrix[[1, 2], [3, 4], [5, 6], [7, 8]]
  #
  def vstack(*matrices)
    self.class.vstack(self, *matrices)
  end

  #--
  # DECOMPOSITIONS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  #++

  #
  # Returns the Eigensystem of the matrix; see +EigenvalueDecomposition+.
  #   m = Matrix[[1, 2], [3, 4]]
  #   v, d, v_inv = m.eigensystem
  #   d.diagonal? # => true
  #   v.inv == v_inv # => true
  #   (v * d * v_inv).round(5) == m # => true
  #
  def eigensystem
    EigenvalueDecomposition.new(self)
  end
  alias eigen eigensystem

  #
  # Returns the LUP decomposition of the matrix; see +LUPDecomposition+.
  #   a = Matrix[[1, 2], [3, 4]]
  #   l, u, p = a.lup
  #   l.lower_triangular? # => true
  #   u.upper_triangular? # => true
  #   p.permutation?      # => true
  #   l * u == p * a      # => true
  #   a.lup.solve([2, 5]) # => Vector[(1/1), (1/2)]
  #
  def lup
    LUPDecomposition.new(self)
  end
  alias lup_decomposition lup

  #--
  # COMPLEX ARITHMETIC -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  #++

  #
  # Returns the conjugate of the matrix.
  #   Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]]
  #     => 1+2i   i  0
  #           1   2  3
  #   Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]].conjugate
  #     => 1-2i  -i  0
  #           1   2  3
  #
  def conjugate
    collect(&:conjugate)
  end
  alias conj conjugate

  #
  # Returns the imaginary part of the matrix.
  #   Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]]
  #     => 1+2i  i  0
  #           1  2  3
  #   Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]].imaginary
  #     =>   2i  i  0
  #           0  0  0
  #
  def imaginary
    collect(&:imaginary)
  end
  alias imag imaginary

  #
  # Returns the real part of the matrix.
  #   Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]]
  #     => 1+2i  i  0
  #           1  2  3
  #   Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]].real
  #     =>    1  0  0
  #           1  2  3
  #
  def real
    collect(&:real)
  end

  #
  # Returns an array containing matrices corresponding to the real and imaginary
  # parts of the matrix
  #
  # m.rect == [m.real, m.imag]  # ==> true for all matrices m
  #
  def rect
    [real, imag]
  end
  alias rectangular rect

  #--
  # CONVERTING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  #++

  #
  # The coerce method provides support for Ruby type coercion.
  # This coercion mechanism is used by Ruby to handle mixed-type
  # numeric operations: it is intended to find a compatible common
  # type between the two operands of the operator.
  # See also Numeric#coerce.
  #
  def coerce(other)
    case other
    when Numeric
      return Scalar.new(other), self
    else
      raise TypeError, "#{self.class} can't be coerced into #{other.class}"
    end
  end

  #
  # Returns an array of the row vectors of the matrix.  See Vector.
  #
  def row_vectors
    Array.new(row_count) {|i|
      row(i)
    }
  end

  #
  # Returns an array of the column vectors of the matrix.  See Vector.
  #
  def column_vectors
    Array.new(column_count) {|i|
      column(i)
    }
  end

  #
  # Returns an array of arrays that describe the rows of the matrix.
  #
  def to_a
    @rows.collect(&:dup)
  end

  def elements_to_f
    warn "#{caller(1)[0]}: warning: Matrix#elements_to_f is deprecated, use map(&:to_f)"
    map(&:to_f)
  end

  def elements_to_i
    warn "#{caller(1)[0]}: warning: Matrix#elements_to_i is deprecated, use map(&:to_i)"
    map(&:to_i)
  end

  def elements_to_r
    warn "#{caller(1)[0]}: warning: Matrix#elements_to_r is deprecated, use map(&:to_r)"
    map(&:to_r)
  end

  #--
  # PRINTING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  #++

  #
  # Overrides Object#to_s
  #
  def to_s
    if empty?
      "#{self.class}.empty(#{row_count}, #{column_count})"
    else
      "#{self.class}[" + @rows.collect{|row|
        "[" + row.collect{|e| e.to_s}.join(", ") + "]"
      }.join(", ")+"]"
    end
  end

  #
  # Overrides Object#inspect
  #
  def inspect
    if empty?
      "#{self.class}.empty(#{row_count}, #{column_count})"
    else
      "#{self.class}#{@rows.inspect}"
    end
  end

  # Private helper modules

  module ConversionHelper # :nodoc:
    #
    # Converts the obj to an Array. If copy is set to true
    # a copy of obj will be made if necessary.
    #
    def convert_to_array(obj, copy = false) # :nodoc:
      case obj
      when Array
        copy ? obj.dup : obj
      when Vector
        obj.to_a
      else
        begin
          converted = obj.to_ary
        rescue Exception => e
          raise TypeError, "can't convert #{obj.class} into an Array (#{e.message})"
        end
        raise TypeError, "#{obj.class}#to_ary should return an Array" unless converted.is_a? Array
        converted
      end
    end
    private :convert_to_array
  end

  extend ConversionHelper

  module CoercionHelper # :nodoc:
    #
    # Applies the operator +oper+ with argument +obj+
    # through coercion of +obj+
    #
    def apply_through_coercion(obj, oper)
      coercion = obj.coerce(self)
      raise TypeError unless coercion.is_a?(Array) && coercion.length == 2
      coercion[0].public_send(oper, coercion[1])
    rescue
      raise TypeError, "#{obj.inspect} can't be coerced into #{self.class}"
    end
    private :apply_through_coercion

    #
    # Helper method to coerce a value into a specific class.
    # Raises a TypeError if the coercion fails or the returned value
    # is not of the right class.
    # (from Rubinius)
    #
    def self.coerce_to(obj, cls, meth) # :nodoc:
      return obj if obj.kind_of?(cls)

      begin
        ret = obj.__send__(meth)
      rescue Exception => e
        raise TypeError, "Coercion error: #{obj.inspect}.#{meth} => #{cls} failed:\n" \
                         "(#{e.message})"
      end
      raise TypeError, "Coercion error: obj.#{meth} did NOT return a #{cls} (was #{ret.class})" unless ret.kind_of? cls
      ret
    end

    def self.coerce_to_int(obj)
      coerce_to(obj, Integer, :to_int)
    end
  end

  include CoercionHelper

  # Private CLASS

  class Scalar < Numeric # :nodoc:
    include ExceptionForMatrix
    include CoercionHelper

    def initialize(value)
      @value = value
    end

    # ARITHMETIC
    def +(other)
      case other
      when Numeric
        Scalar.new(@value + other)
      when Vector, Matrix
        Scalar.Raise ErrOperationNotDefined, "+", @value.class, other.class
      else
        apply_through_coercion(other, __method__)
      end
    end

    def -(other)
      case other
      when Numeric
        Scalar.new(@value - other)
      when Vector, Matrix
        Scalar.Raise ErrOperationNotDefined, "-", @value.class, other.class
      else
        apply_through_coercion(other, __method__)
      end
    end

    def *(other)
      case other
      when Numeric
        Scalar.new(@value * other)
      when Vector, Matrix
        other.collect{|e| @value * e}
      else
        apply_through_coercion(other, __method__)
      end
    end

    def / (other)
      case other
      when Numeric
        Scalar.new(@value / other)
      when Vector
        Scalar.Raise ErrOperationNotDefined, "/", @value.class, other.class
      when Matrix
        self * other.inverse
      else
        apply_through_coercion(other, __method__)
      end
    end

    def ** (other)
      case other
      when Numeric
        Scalar.new(@value ** other)
      when Vector
        Scalar.Raise ErrOperationNotDefined, "**", @value.class, other.class
      when Matrix
        #other.powered_by(self)
        Scalar.Raise ErrOperationNotImplemented, "**", @value.class, other.class
      else
        apply_through_coercion(other, __method__)
      end
    end
  end

end


#
# The +Vector+ class represents a mathematical vector, which is useful in its own right, and
# also constitutes a row or column of a Matrix.
#
# == Method Catalogue
#
# To create a Vector:
# * Vector.[](*array)
# * Vector.elements(array, copy = true)
# * Vector.basis(size: n, index: k)
#
# To access elements:
# * #[](i)
#
# To enumerate the elements:
# * #each2(v)
# * #collect2(v)
#
# Properties of vectors:
# * #angle_with(v)
# * Vector.independent?(*vs)
# * #independent?(*vs)
#
# Vector arithmetic:
# * #*(x) "is matrix or number"
# * #+(v)
# * #-(v)
# * #+@
# * #-@
#
# Vector functions:
# * #inner_product(v), dot(v)
# * #cross_product(v), cross(v)
# * #collect
# * #magnitude
# * #map
# * #map2(v)
# * #norm
# * #normalize
# * #r
# * #size
#
# Conversion to other data types:
# * #covector
# * #to_a
# * #coerce(other)
#
# String representations:
# * #to_s
# * #inspect
#
class Vector
  include ExceptionForMatrix
  include Enumerable
  include Matrix::CoercionHelper
  extend Matrix::ConversionHelper
  #INSTANCE CREATION

  private_class_method :new
  attr_reader :elements
  protected :elements

  #
  # Creates a Vector from a list of elements.
  #   Vector[7, 4, ...]
  #
  def Vector.[](*array)
    new convert_to_array(array, false)
  end

  #
  # Creates a vector from an Array.  The optional second argument specifies
  # whether the array itself or a copy is used internally.
  #
  def Vector.elements(array, copy = true)
    new convert_to_array(array, copy)
  end

  #
  # Returns a standard basis +n+-vector, where k is the index.
  #
  #    Vector.basis(size:, index:) # => Vector[0, 1, 0]
  #
  def Vector.basis(size:, index:)
    raise ArgumentError, "invalid size (#{size} for 1..)" if size < 1
    raise ArgumentError, "invalid index (#{index} for 0...#{size})" unless 0 <= index && index < size
    array = Array.new(size, 0)
    array[index] = 1
    new convert_to_array(array, false)
  end

  #
  # Vector.new is private; use Vector[] or Vector.elements to create.
  #
  def initialize(array)
    # No checking is done at this point.
    @elements = array
  end

  # ACCESSING

  #
  # Returns element number +i+ (starting at zero) of the vector.
  #
  def [](i)
    @elements[i]
  end
  alias element []
  alias component []

  def []=(i, v)
    @elements[i]= v
  end
  alias set_element []=
  alias set_component []=
  private :[]=, :set_element, :set_component

  #
  # Returns the number of elements in the vector.
  #
  def size
    @elements.size
  end

  #--
  # ENUMERATIONS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  #++

  #
  # Iterate over the elements of this vector
  #
  def each(&block)
    return to_enum(:each) unless block_given?
    @elements.each(&block)
    self
  end

  #
  # Iterate over the elements of this vector and +v+ in conjunction.
  #
  def each2(v) # :yield: e1, e2
    raise TypeError, "Integer is not like Vector" if v.kind_of?(Integer)
    Vector.Raise ErrDimensionMismatch if size != v.size
    return to_enum(:each2, v) unless block_given?
    size.times do |i|
      yield @elements[i], v[i]
    end
    self
  end

  #
  # Collects (as in Enumerable#collect) over the elements of this vector and +v+
  # in conjunction.
  #
  def collect2(v) # :yield: e1, e2
    raise TypeError, "Integer is not like Vector" if v.kind_of?(Integer)
    Vector.Raise ErrDimensionMismatch if size != v.size
    return to_enum(:collect2, v) unless block_given?
    Array.new(size) do |i|
      yield @elements[i], v[i]
    end
  end

  #--
  # PROPERTIES -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  #++

  #
  # Returns +true+ iff all of vectors are linearly independent.
  #
  #   Vector.independent?(Vector[1,0], Vector[0,1])
  #     => true
  #
  #   Vector.independent?(Vector[1,2], Vector[2,4])
  #     => false
  #
  def Vector.independent?(*vs)
    vs.each do |v|
      raise TypeError, "expected Vector, got #{v.class}" unless v.is_a?(Vector)
      Vector.Raise ErrDimensionMismatch unless v.size == vs.first.size
    end
    return false if vs.count > vs.first.size
    Matrix[*vs].rank.eql?(vs.count)
  end

  #
  # Returns +true+ iff all of vectors are linearly independent.
  #
  #   Vector[1,0].independent?(Vector[0,1])
  #     => true
  #
  #   Vector[1,2].independent?(Vector[2,4])
  #     => false
  #
  def independent?(*vs)
    self.class.independent?(self, *vs)
  end

  #--
  # COMPARING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  #++

  #
  # Returns +true+ iff the two vectors have the same elements in the same order.
  #
  def ==(other)
    return false unless Vector === other
    @elements == other.elements
  end

  def eql?(other)
    return false unless Vector === other
    @elements.eql? other.elements
  end

  #
  # Returns a copy of the vector.
  #
  def clone
    self.class.elements(@elements)
  end

  #
  # Returns a hash-code for the vector.
  #
  def hash
    @elements.hash
  end

  #--
  # ARITHMETIC -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  #++

  #
  # Multiplies the vector by +x+, where +x+ is a number or another vector.
  #
  def *(x)
    case x
    when Numeric
      els = @elements.collect{|e| e * x}
      self.class.elements(els, false)
    when Matrix
      Matrix.column_vector(self) * x
    when Vector
      Vector.Raise ErrOperationNotDefined, "*", self.class, x.class
    else
      apply_through_coercion(x, __method__)
    end
  end

  #
  # Vector addition.
  #
  def +(v)
    case v
    when Vector
      Vector.Raise ErrDimensionMismatch if size != v.size
      els = collect2(v) {|v1, v2|
        v1 + v2
      }
      self.class.elements(els, false)
    when Matrix
      Matrix.column_vector(self) + v
    else
      apply_through_coercion(v, __method__)
    end
  end

  #
  # Vector subtraction.
  #
  def -(v)
    case v
    when Vector
      Vector.Raise ErrDimensionMismatch if size != v.size
      els = collect2(v) {|v1, v2|
        v1 - v2
      }
      self.class.elements(els, false)
    when Matrix
      Matrix.column_vector(self) - v
    else
      apply_through_coercion(v, __method__)
    end
  end

  #
  # Vector division.
  #
  def /(x)
    case x
    when Numeric
      els = @elements.collect{|e| e / x}
      self.class.elements(els, false)
    when Matrix, Vector
      Vector.Raise ErrOperationNotDefined, "/", self.class, x.class
    else
      apply_through_coercion(x, __method__)
    end
  end

  def +@
    self
  end

  def -@
    collect {|e| -e }
  end

  #--
  # VECTOR FUNCTIONS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  #++

  #
  # Returns the inner product of this vector with the other.
  #   Vector[4,7].inner_product Vector[10,1]  => 47
  #
  def inner_product(v)
    Vector.Raise ErrDimensionMismatch if size != v.size

    p = 0
    each2(v) {|v1, v2|
      p += v1 * v2.conj
    }
    p
  end
  alias_method :dot, :inner_product

  #
  # Returns the cross product of this vector with the others.
  #   Vector[1, 0, 0].cross_product Vector[0, 1, 0]   => Vector[0, 0, 1]
  #
  # It is generalized to other dimensions to return a vector perpendicular
  # to the arguments.
  #   Vector[1, 2].cross_product # => Vector[-2, 1]
  #   Vector[1, 0, 0, 0].cross_product(
  #      Vector[0, 1, 0, 0],
  #      Vector[0, 0, 1, 0]
  #   )  #=> Vector[0, 0, 0, 1]
  #
  def cross_product(*vs)
    raise ErrOperationNotDefined, "cross product is not defined on vectors of dimension #{size}" unless size >= 2
    raise ArgumentError, "wrong number of arguments (#{vs.size} for #{size - 2})" unless vs.size == size - 2
    vs.each do |v|
      raise TypeError, "expected Vector, got #{v.class}" unless v.is_a? Vector
      Vector.Raise ErrDimensionMismatch unless v.size == size
    end
    case size
    when 2
      Vector[-@elements[1], @elements[0]]
    when 3
      v = vs[0]
      Vector[ v[2]*@elements[1] - v[1]*@elements[2],
        v[0]*@elements[2] - v[2]*@elements[0],
        v[1]*@elements[0] - v[0]*@elements[1] ]
    else
      rows = self, *vs, Array.new(size) {|i| Vector.basis(size: size, index: i) }
      Matrix.rows(rows).laplace_expansion(row: size - 1)
    end
  end
  alias_method :cross, :cross_product

  #
  # Like Array#collect.
  #
  def collect(&block) # :yield: e
    return to_enum(:collect) unless block_given?
    els = @elements.collect(&block)
    self.class.elements(els, false)
  end
  alias map collect

  #
  # Returns the modulus (Pythagorean distance) of the vector.
  #   Vector[5,8,2].r => 9.643650761
  #
  def magnitude
    Math.sqrt(@elements.inject(0) {|v, e| v + e.abs2})
  end
  alias r magnitude
  alias norm magnitude

  #
  # Like Vector#collect2, but returns a Vector instead of an Array.
  #
  def map2(v, &block) # :yield: e1, e2
    return to_enum(:map2, v) unless block_given?
    els = collect2(v, &block)
    self.class.elements(els, false)
  end

  class ZeroVectorError < StandardError
  end
  #
  # Returns a new vector with the same direction but with norm 1.
  #   v = Vector[5,8,2].normalize
  #   # => Vector[0.5184758473652127, 0.8295613557843402, 0.20739033894608505]
  #   v.norm => 1.0
  #
  def normalize
    n = magnitude
    raise ZeroVectorError, "Zero vectors can not be normalized" if n == 0
    self / n
  end

  #
  # Returns an angle with another vector. Result is within the [0...Math::PI].
  #   Vector[1,0].angle_with(Vector[0,1])
  #   # => Math::PI / 2
  #
  def angle_with(v)
    raise TypeError, "Expected a Vector, got a #{v.class}" unless v.is_a?(Vector)
    Vector.Raise ErrDimensionMismatch if size != v.size
    prod = magnitude * v.magnitude
    raise ZeroVectorError, "Can't get angle of zero vector" if prod == 0

    Math.acos( inner_product(v) / prod )
  end

  #--
  # CONVERTING
  #++

  #
  # Creates a single-row matrix from this vector.
  #
  def covector
    Matrix.row_vector(self)
  end

  #
  # Returns the elements of the vector in an array.
  #
  def to_a
    @elements.dup
  end

  def elements_to_f
    warn "#{caller(1)[0]}: warning: Vector#elements_to_f is deprecated"
    map(&:to_f)
  end

  def elements_to_i
    warn "#{caller(1)[0]}: warning: Vector#elements_to_i is deprecated"
    map(&:to_i)
  end

  def elements_to_r
    warn "#{caller(1)[0]}: warning: Vector#elements_to_r is deprecated"
    map(&:to_r)
  end

  #
  # The coerce method provides support for Ruby type coercion.
  # This coercion mechanism is used by Ruby to handle mixed-type
  # numeric operations: it is intended to find a compatible common
  # type between the two operands of the operator.
  # See also Numeric#coerce.
  #
  def coerce(other)
    case other
    when Numeric
      return Matrix::Scalar.new(other), self
    else
      raise TypeError, "#{self.class} can't be coerced into #{other.class}"
    end
  end

  #--
  # PRINTING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  #++

  #
  # Overrides Object#to_s
  #
  def to_s
    "Vector[" + @elements.join(", ") + "]"
  end

  #
  # Overrides Object#inspect
  #
  def inspect
    "Vector" + @elements.inspect
  end
end
lib64/ruby/2.2.0/cmath.rb000064400000022534150402106360010530 0ustar00##
# = Trigonometric and transcendental functions for complex numbers.
#
# CMath is a library that provides trigonometric and transcendental
# functions for complex numbers. The functions in this module accept
# integers, floating-point numbers or complex numbers as arguments.
#
# Note that the selection of functions is similar, but not identical,
# to that in module math. The reason for having two modules is that
# some users aren't interested in complex numbers, and perhaps don't
# even know what they are. They would rather have Math.sqrt(-1) raise
# an exception than return a complex number.
#
# == Usage
#
# To start using this library, simply require cmath library:
#
#   require "cmath"
#
# And after call any CMath function. For example:
#
#   CMath.sqrt(-9)          #=> 0+3.0i
#   CMath.exp(0 + 0i)       #=> 1.0+0.0i
#   CMath.log10(-5.to_c)    #=> (0.6989700043360187+1.3643763538418412i)
#
#
# For more information you can see Complec class.

module CMath

  include Math

  alias exp! exp
  alias log! log
  alias log2! log2
  alias log10! log10
  alias sqrt! sqrt
  alias cbrt! cbrt

  alias sin! sin
  alias cos! cos
  alias tan! tan

  alias sinh! sinh
  alias cosh! cosh
  alias tanh! tanh

  alias asin! asin
  alias acos! acos
  alias atan! atan
  alias atan2! atan2

  alias asinh! asinh
  alias acosh! acosh
  alias atanh! atanh

  ##
  # Math::E raised to the +z+ power
  #
  #   CMath.exp(2i) #=> (-0.4161468365471424+0.9092974268256817i)
  def exp(z)
    begin
      if z.real?
        exp!(z)
      else
        ere = exp!(z.real)
        Complex(ere * cos!(z.imag),
                ere * sin!(z.imag))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # Returns the natural logarithm of Complex. If a second argument is given,
  # it will be the base of logarithm.
  #
  #   CMath.log(1 + 4i)     #=> (1.416606672028108+1.3258176636680326i)
  #   CMath.log(1 + 4i, 10) #=> (0.6152244606891369+0.5757952953408879i)
  def log(*args)
    begin
      z, b = args
      unless b.nil? || b.kind_of?(Numeric)
        raise TypeError,  "Numeric Number required"
      end
      if z.real? and z >= 0 and (b.nil? or b >= 0)
        log!(*args)
      else
        a = Complex(log!(z.abs), z.arg)
        if b
          a /= log(b)
        end
        a
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the base 2 logarithm of +z+
  #
  #   CMath.log2(-1) => (0.0+4.532360141827194i)
  def log2(z)
    begin
      if z.real? and z >= 0
        log2!(z)
      else
        log(z) / log!(2)
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the base 10 logarithm of +z+
  #
  #   CMath.log10(-1) #=> (0.0+1.3643763538418412i)
  def log10(z)
    begin
      if z.real? and z >= 0
        log10!(z)
      else
        log(z) / log!(10)
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # Returns the non-negative square root of Complex.
  #
  #   CMath.sqrt(-1 + 0i) #=> 0.0+1.0i
  def sqrt(z)
    begin
      if z.real?
        if z < 0
          Complex(0, sqrt!(-z))
        else
          sqrt!(z)
        end
      else
        if z.imag < 0 ||
            (z.imag == 0 && z.imag.to_s[0] == '-')
          sqrt(z.conjugate).conjugate
        else
          r = z.abs
          x = z.real
          Complex(sqrt!((r + x) / 2.0), sqrt!((r - x) / 2.0))
        end
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the principal value of the cube root of +z+
  #
  #   CMath.cbrt(1 + 4i) #=> (1.449461632813119+0.6858152562177092i)
  def cbrt(z)
    z ** (1.0/3)
  end

  ##
  # returns the sine of +z+, where +z+ is given in radians
  #
  #   CMath.sin(1 + 1i) #=> (1.2984575814159773+0.6349639147847361i)
  def sin(z)
    begin
      if z.real?
        sin!(z)
      else
        Complex(sin!(z.real) * cosh!(z.imag),
                cos!(z.real) * sinh!(z.imag))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the cosine of +z+, where +z+ is given in radians
  #
  #   CMath.cos(1 + 1i) #=> (0.8337300251311491-0.9888977057628651i)
  def cos(z)
    begin
      if z.real?
        cos!(z)
      else
        Complex(cos!(z.real) * cosh!(z.imag),
                -sin!(z.real) * sinh!(z.imag))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the tangent of +z+, where +z+ is given in radians
  #
  #   CMath.tan(1 + 1i) #=> (0.27175258531951174+1.0839233273386943i)
  def tan(z)
    begin
      if z.real?
        tan!(z)
      else
        sin(z) / cos(z)
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the hyperbolic sine of +z+, where +z+ is given in radians
  #
  #   CMath.sinh(1 + 1i) #=> (0.6349639147847361+1.2984575814159773i)
  def sinh(z)
    begin
      if z.real?
        sinh!(z)
      else
        Complex(sinh!(z.real) * cos!(z.imag),
                cosh!(z.real) * sin!(z.imag))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the hyperbolic cosine of +z+, where +z+ is given in radians
  #
  #   CMath.cosh(1 + 1i) #=> (0.8337300251311491+0.9888977057628651i)
  def cosh(z)
    begin
      if z.real?
        cosh!(z)
      else
        Complex(cosh!(z.real) * cos!(z.imag),
                sinh!(z.real) * sin!(z.imag))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the hyperbolic tangent of +z+, where +z+ is given in radians
  #
  #   CMath.tanh(1 + 1i) #=> (1.0839233273386943+0.27175258531951174i)
  def tanh(z)
    begin
      if z.real?
        tanh!(z)
      else
        sinh(z) / cosh(z)
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the arc sine of +z+
  #
  #   CMath.asin(1 + 1i) #=> (0.6662394324925153+1.0612750619050355i)
  def asin(z)
    begin
      if z.real? and z >= -1 and z <= 1
        asin!(z)
      else
        (-1.0).i * log(1.0.i * z + sqrt(1.0 - z * z))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the arc cosine of +z+
  #
  #   CMath.acos(1 + 1i) #=> (0.9045568943023813-1.0612750619050357i)
  def acos(z)
    begin
      if z.real? and z >= -1 and z <= 1
        acos!(z)
      else
        (-1.0).i * log(z + 1.0.i * sqrt(1.0 - z * z))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the arc tangent of +z+
  #
  #   CMath.atan(1 + 1i) #=> (1.0172219678978514+0.4023594781085251i)
  def atan(z)
    begin
      if z.real?
        atan!(z)
      else
        1.0.i * log((1.0.i + z) / (1.0.i - z)) / 2.0
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the arc tangent of +y+ divided by +x+ using the signs of +y+ and
  # +x+ to determine the quadrant
  #
  #   CMath.atan2(1 + 1i, 0) #=> (1.5707963267948966+0.0i)
  def atan2(y,x)
    begin
      if y.real? and x.real?
        atan2!(y,x)
      else
        (-1.0).i * log((x + 1.0.i * y) / sqrt(x * x + y * y))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the inverse hyperbolic sine of +z+
  #
  #   CMath.asinh(1 + 1i) #=> (1.0612750619050357+0.6662394324925153i)
  def asinh(z)
    begin
      if z.real?
        asinh!(z)
      else
        log(z + sqrt(1.0 + z * z))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the inverse hyperbolic cosine of +z+
  #
  #   CMath.acosh(1 + 1i) #=> (1.0612750619050357+0.9045568943023813i)
  def acosh(z)
    begin
      if z.real? and z >= 1
        acosh!(z)
      else
        log(z + sqrt(z * z - 1.0))
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  ##
  # returns the inverse hyperbolic tangent of +z+
  #
  #   CMath.atanh(1 + 1i) #=> (0.4023594781085251+1.0172219678978514i)
  def atanh(z)
    begin
      if z.real? and z >= -1 and z <= 1
        atanh!(z)
      else
        log((1.0 + z) / (1.0 - z)) / 2.0
      end
    rescue NoMethodError
      handle_no_method_error
    end
  end

  module_function :exp!
  module_function :exp
  module_function :log!
  module_function :log
  module_function :log2!
  module_function :log2
  module_function :log10!
  module_function :log10
  module_function :sqrt!
  module_function :sqrt
  module_function :cbrt!
  module_function :cbrt

  module_function :sin!
  module_function :sin
  module_function :cos!
  module_function :cos
  module_function :tan!
  module_function :tan

  module_function :sinh!
  module_function :sinh
  module_function :cosh!
  module_function :cosh
  module_function :tanh!
  module_function :tanh

  module_function :asin!
  module_function :asin
  module_function :acos!
  module_function :acos
  module_function :atan!
  module_function :atan
  module_function :atan2!
  module_function :atan2

  module_function :asinh!
  module_function :asinh
  module_function :acosh!
  module_function :acosh
  module_function :atanh!
  module_function :atanh

  module_function :frexp
  module_function :ldexp
  module_function :hypot
  module_function :erf
  module_function :erfc
  module_function :gamma
  module_function :lgamma

  private
  def handle_no_method_error # :nodoc:
    if $!.name == :real?
      raise TypeError, "Numeric Number required"
    else
      raise
    end
  end
  module_function :handle_no_method_error

end
lib64/ruby/2.2.0/fileutils.rb000064400000136734150402106360011444 0ustar00#
# = fileutils.rb
#
# Copyright (c) 2000-2007 Minero Aoki
#
# This program is free software.
# You can distribute/modify this program under the same terms of ruby.
#
# == module FileUtils
#
# Namespace for several file utility methods for copying, moving, removing, etc.
#
# === Module Functions
#
#   require 'fileutils'
#
#   FileUtils.cd(dir, options)
#   FileUtils.cd(dir, options) {|dir| .... }
#   FileUtils.pwd()
#   FileUtils.mkdir(dir, options)
#   FileUtils.mkdir(list, options)
#   FileUtils.mkdir_p(dir, options)
#   FileUtils.mkdir_p(list, options)
#   FileUtils.rmdir(dir, options)
#   FileUtils.rmdir(list, options)
#   FileUtils.ln(old, new, options)
#   FileUtils.ln(list, destdir, options)
#   FileUtils.ln_s(old, new, options)
#   FileUtils.ln_s(list, destdir, options)
#   FileUtils.ln_sf(src, dest, options)
#   FileUtils.cp(src, dest, options)
#   FileUtils.cp(list, dir, options)
#   FileUtils.cp_r(src, dest, options)
#   FileUtils.cp_r(list, dir, options)
#   FileUtils.mv(src, dest, options)
#   FileUtils.mv(list, dir, options)
#   FileUtils.rm(list, options)
#   FileUtils.rm_r(list, options)
#   FileUtils.rm_rf(list, options)
#   FileUtils.install(src, dest, mode = <src's>, options)
#   FileUtils.chmod(mode, list, options)
#   FileUtils.chmod_R(mode, list, options)
#   FileUtils.chown(user, group, list, options)
#   FileUtils.chown_R(user, group, list, options)
#   FileUtils.touch(list, options)
#
# The <tt>options</tt> parameter is a hash of options, taken from the list
# <tt>:force</tt>, <tt>:noop</tt>, <tt>:preserve</tt>, and <tt>:verbose</tt>.
# <tt>:noop</tt> means that no changes are made.  The other two are obvious.
# Each method documents the options that it honours.
#
# All methods that have the concept of a "source" file or directory can take
# either one file or a list of files in that argument.  See the method
# documentation for examples.
#
# There are some `low level' methods, which do not accept any option:
#
#   FileUtils.copy_entry(src, dest, preserve = false, dereference = false)
#   FileUtils.copy_file(src, dest, preserve = false, dereference = true)
#   FileUtils.copy_stream(srcstream, deststream)
#   FileUtils.remove_entry(path, force = false)
#   FileUtils.remove_entry_secure(path, force = false)
#   FileUtils.remove_file(path, force = false)
#   FileUtils.compare_file(path_a, path_b)
#   FileUtils.compare_stream(stream_a, stream_b)
#   FileUtils.uptodate?(file, cmp_list)
#
# == module FileUtils::Verbose
#
# This module has all methods of FileUtils module, but it outputs messages
# before acting.  This equates to passing the <tt>:verbose</tt> flag to methods
# in FileUtils.
#
# == module FileUtils::NoWrite
#
# This module has all methods of FileUtils module, but never changes
# files/directories.  This equates to passing the <tt>:noop</tt> flag to methods
# in FileUtils.
#
# == module FileUtils::DryRun
#
# This module has all methods of FileUtils module, but never changes
# files/directories.  This equates to passing the <tt>:noop</tt> and
# <tt>:verbose</tt> flags to methods in FileUtils.
#

module FileUtils

  def self.private_module_function(name)   #:nodoc:
    module_function name
    private_class_method name
  end

  # This hash table holds command options.
  OPT_TABLE = {}   #:nodoc: internal use only

  #
  # Options: (none)
  #
  # Returns the name of the current directory.
  #
  def pwd
    Dir.pwd
  end
  module_function :pwd

  alias getwd pwd
  module_function :getwd

  #
  # Options: verbose
  #
  # Changes the current directory to the directory +dir+.
  #
  # If this method is called with block, resumes to the old
  # working directory after the block execution finished.
  #
  #   FileUtils.cd('/', :verbose => true)   # chdir and report it
  #
  #   FileUtils.cd('/') do  # chdir
  #     [...]               # do something
  #   end                   # return to original directory
  #
  def cd(dir, options = {}, &block) # :yield: dir
    fu_check_options options, OPT_TABLE['cd']
    fu_output_message "cd #{dir}" if options[:verbose]
    Dir.chdir(dir, &block)
    fu_output_message 'cd -' if options[:verbose] and block
  end
  module_function :cd

  alias chdir cd
  module_function :chdir

  OPT_TABLE['cd']    =
  OPT_TABLE['chdir'] = [:verbose]

  #
  # Options: (none)
  #
  # Returns true if +new+ is newer than all +old_list+.
  # Non-existent files are older than any file.
  #
  #   FileUtils.uptodate?('hello.o', %w(hello.c hello.h)) or \
  #       system 'make hello.o'
  #
  def uptodate?(new, old_list)
    return false unless File.exist?(new)
    new_time = File.mtime(new)
    old_list.each do |old|
      if File.exist?(old)
        return false unless new_time > File.mtime(old)
      end
    end
    true
  end
  module_function :uptodate?

  def remove_tailing_slash(dir)
    dir == '/' ? dir : dir.chomp(?/)
  end
  private_module_function :remove_tailing_slash

  #
  # Options: mode noop verbose
  #
  # Creates one or more directories.
  #
  #   FileUtils.mkdir 'test'
  #   FileUtils.mkdir %w( tmp data )
  #   FileUtils.mkdir 'notexist', :noop => true  # Does not really create.
  #   FileUtils.mkdir 'tmp', :mode => 0700
  #
  def mkdir(list, options = {})
    fu_check_options options, OPT_TABLE['mkdir']
    list = fu_list(list)
    fu_output_message "mkdir #{options[:mode] ? ('-m %03o ' % options[:mode]) : ''}#{list.join ' '}" if options[:verbose]
    return if options[:noop]

    list.each do |dir|
      fu_mkdir dir, options[:mode]
    end
  end
  module_function :mkdir

  OPT_TABLE['mkdir'] = [:mode, :noop, :verbose]

  #
  # Options: mode noop verbose
  #
  # Creates a directory and all its parent directories.
  # For example,
  #
  #   FileUtils.mkdir_p '/usr/local/lib/ruby'
  #
  # causes to make following directories, if it does not exist.
  #     * /usr
  #     * /usr/local
  #     * /usr/local/lib
  #     * /usr/local/lib/ruby
  #
  # You can pass several directories at a time in a list.
  #
  def mkdir_p(list, options = {})
    fu_check_options options, OPT_TABLE['mkdir_p']
    list = fu_list(list)
    fu_output_message "mkdir -p #{options[:mode] ? ('-m %03o ' % options[:mode]) : ''}#{list.join ' '}" if options[:verbose]
    return *list if options[:noop]

    list.map {|path| remove_tailing_slash(path)}.each do |path|
      # optimize for the most common case
      begin
        fu_mkdir path, options[:mode]
        next
      rescue SystemCallError
        next if File.directory?(path)
      end

      stack = []
      until path == stack.last   # dirname("/")=="/", dirname("C:/")=="C:/"
        stack.push path
        path = File.dirname(path)
      end
      stack.pop                 # root directory should exist
      stack.reverse_each do |dir|
        begin
          fu_mkdir dir, options[:mode]
        rescue SystemCallError
          raise unless File.directory?(dir)
        end
      end
    end

    return *list
  end
  module_function :mkdir_p

  alias mkpath    mkdir_p
  alias makedirs  mkdir_p
  module_function :mkpath
  module_function :makedirs

  OPT_TABLE['mkdir_p']  =
  OPT_TABLE['mkpath']   =
  OPT_TABLE['makedirs'] = [:mode, :noop, :verbose]

  def fu_mkdir(path, mode)   #:nodoc:
    path = remove_tailing_slash(path)
    if mode
      Dir.mkdir path, mode
      File.chmod mode, path
    else
      Dir.mkdir path
    end
  end
  private_module_function :fu_mkdir

  #
  # Options: parents, noop, verbose
  #
  # Removes one or more directories.
  #
  #   FileUtils.rmdir 'somedir'
  #   FileUtils.rmdir %w(somedir anydir otherdir)
  #   # Does not really remove directory; outputs message.
  #   FileUtils.rmdir 'somedir', :verbose => true, :noop => true
  #
  def rmdir(list, options = {})
    fu_check_options options, OPT_TABLE['rmdir']
    list = fu_list(list)
    parents = options[:parents]
    fu_output_message "rmdir #{parents ? '-p ' : ''}#{list.join ' '}" if options[:verbose]
    return if options[:noop]
    list.each do |dir|
      begin
        Dir.rmdir(dir = remove_tailing_slash(dir))
        if parents
          until (parent = File.dirname(dir)) == '.' or parent == dir
            dir = parent
            Dir.rmdir(dir)
          end
        end
      rescue Errno::ENOTEMPTY, Errno::EEXIST, Errno::ENOENT
      end
    end
  end
  module_function :rmdir

  OPT_TABLE['rmdir'] = [:parents, :noop, :verbose]

  #
  # Options: force noop verbose
  #
  # <b><tt>ln(old, new, options = {})</tt></b>
  #
  # Creates a hard link +new+ which points to +old+.
  # If +new+ already exists and it is a directory, creates a link +new/old+.
  # If +new+ already exists and it is not a directory, raises Errno::EEXIST.
  # But if :force option is set, overwrite +new+.
  #
  #   FileUtils.ln 'gcc', 'cc', :verbose => true
  #   FileUtils.ln '/usr/bin/emacs21', '/usr/bin/emacs'
  #
  # <b><tt>ln(list, destdir, options = {})</tt></b>
  #
  # Creates several hard links in a directory, with each one pointing to the
  # item in +list+.  If +destdir+ is not a directory, raises Errno::ENOTDIR.
  #
  #   include FileUtils
  #   cd '/sbin'
  #   FileUtils.ln %w(cp mv mkdir), '/bin'   # Now /sbin/cp and /bin/cp are linked.
  #
  def ln(src, dest, options = {})
    fu_check_options options, OPT_TABLE['ln']
    fu_output_message "ln#{options[:force] ? ' -f' : ''} #{[src,dest].flatten.join ' '}" if options[:verbose]
    return if options[:noop]
    fu_each_src_dest0(src, dest) do |s,d|
      remove_file d, true if options[:force]
      File.link s, d
    end
  end
  module_function :ln

  alias link ln
  module_function :link

  OPT_TABLE['ln']   =
  OPT_TABLE['link'] = [:force, :noop, :verbose]

  #
  # Options: force noop verbose
  #
  # <b><tt>ln_s(old, new, options = {})</tt></b>
  #
  # Creates a symbolic link +new+ which points to +old+.  If +new+ already
  # exists and it is a directory, creates a symbolic link +new/old+.  If +new+
  # already exists and it is not a directory, raises Errno::EEXIST.  But if
  # :force option is set, overwrite +new+.
  #
  #   FileUtils.ln_s '/usr/bin/ruby', '/usr/local/bin/ruby'
  #   FileUtils.ln_s 'verylongsourcefilename.c', 'c', :force => true
  #
  # <b><tt>ln_s(list, destdir, options = {})</tt></b>
  #
  # Creates several symbolic links in a directory, with each one pointing to the
  # item in +list+.  If +destdir+ is not a directory, raises Errno::ENOTDIR.
  #
  # If +destdir+ is not a directory, raises Errno::ENOTDIR.
  #
  #   FileUtils.ln_s Dir.glob('bin/*.rb'), '/home/aamine/bin'
  #
  def ln_s(src, dest, options = {})
    fu_check_options options, OPT_TABLE['ln_s']
    fu_output_message "ln -s#{options[:force] ? 'f' : ''} #{[src,dest].flatten.join ' '}" if options[:verbose]
    return if options[:noop]
    fu_each_src_dest0(src, dest) do |s,d|
      remove_file d, true if options[:force]
      File.symlink s, d
    end
  end
  module_function :ln_s

  alias symlink ln_s
  module_function :symlink

  OPT_TABLE['ln_s']    =
  OPT_TABLE['symlink'] = [:force, :noop, :verbose]

  #
  # Options: noop verbose
  #
  # Same as
  #   #ln_s(src, dest, :force => true)
  #
  def ln_sf(src, dest, options = {})
    fu_check_options options, OPT_TABLE['ln_sf']
    options = options.dup
    options[:force] = true
    ln_s src, dest, options
  end
  module_function :ln_sf

  OPT_TABLE['ln_sf'] = [:noop, :verbose]

  #
  # Options: preserve noop verbose
  #
  # Copies a file content +src+ to +dest+.  If +dest+ is a directory,
  # copies +src+ to +dest/src+.
  #
  # If +src+ is a list of files, then +dest+ must be a directory.
  #
  #   FileUtils.cp 'eval.c', 'eval.c.org'
  #   FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6'
  #   FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6', :verbose => true
  #   FileUtils.cp 'symlink', 'dest'   # copy content, "dest" is not a symlink
  #
  def cp(src, dest, options = {})
    fu_check_options options, OPT_TABLE['cp']
    fu_output_message "cp#{options[:preserve] ? ' -p' : ''} #{[src,dest].flatten.join ' '}" if options[:verbose]
    return if options[:noop]
    fu_each_src_dest(src, dest) do |s, d|
      copy_file s, d, options[:preserve]
    end
  end
  module_function :cp

  alias copy cp
  module_function :copy

  OPT_TABLE['cp']   =
  OPT_TABLE['copy'] = [:preserve, :noop, :verbose]

  #
  # Options: preserve noop verbose dereference_root remove_destination
  #
  # Copies +src+ to +dest+. If +src+ is a directory, this method copies
  # all its contents recursively. If +dest+ is a directory, copies
  # +src+ to +dest/src+.
  #
  # +src+ can be a list of files.
  #
  #   # Installing Ruby library "mylib" under the site_ruby
  #   FileUtils.rm_r site_ruby + '/mylib', :force
  #   FileUtils.cp_r 'lib/', site_ruby + '/mylib'
  #
  #   # Examples of copying several files to target directory.
  #   FileUtils.cp_r %w(mail.rb field.rb debug/), site_ruby + '/tmail'
  #   FileUtils.cp_r Dir.glob('*.rb'), '/home/aamine/lib/ruby', :noop => true, :verbose => true
  #
  #   # If you want to copy all contents of a directory instead of the
  #   # directory itself, c.f. src/x -> dest/x, src/y -> dest/y,
  #   # use following code.
  #   FileUtils.cp_r 'src/.', 'dest'     # cp_r('src', 'dest') makes dest/src,
  #                                      # but this doesn't.
  #
  def cp_r(src, dest, options = {})
    fu_check_options options, OPT_TABLE['cp_r']
    fu_output_message "cp -r#{options[:preserve] ? 'p' : ''}#{options[:remove_destination] ? ' --remove-destination' : ''} #{[src,dest].flatten.join ' '}" if options[:verbose]
    return if options[:noop]
    options = options.dup
    options[:dereference_root] = true unless options.key?(:dereference_root)
    fu_each_src_dest(src, dest) do |s, d|
      copy_entry s, d, options[:preserve], options[:dereference_root], options[:remove_destination]
    end
  end
  module_function :cp_r

  OPT_TABLE['cp_r'] = [:preserve, :noop, :verbose,
                       :dereference_root, :remove_destination]

  #
  # Copies a file system entry +src+ to +dest+.
  # If +src+ is a directory, this method copies its contents recursively.
  # This method preserves file types, c.f. symlink, directory...
  # (FIFO, device files and etc. are not supported yet)
  #
  # Both of +src+ and +dest+ must be a path name.
  # +src+ must exist, +dest+ must not exist.
  #
  # If +preserve+ is true, this method preserves owner, group, and
  # modified time.  Permissions are copied regardless +preserve+.
  #
  # If +dereference_root+ is true, this method dereference tree root.
  #
  # If +remove_destination+ is true, this method removes each destination file before copy.
  #
  def copy_entry(src, dest, preserve = false, dereference_root = false, remove_destination = false)
    Entry_.new(src, nil, dereference_root).wrap_traverse(proc do |ent|
      destent = Entry_.new(dest, ent.rel, false)
      File.unlink destent.path if remove_destination && File.file?(destent.path)
      ent.copy destent.path
    end, proc do |ent|
      destent = Entry_.new(dest, ent.rel, false)
      ent.copy_metadata destent.path if preserve
    end)
  end
  module_function :copy_entry

  #
  # Copies file contents of +src+ to +dest+.
  # Both of +src+ and +dest+ must be a path name.
  #
  def copy_file(src, dest, preserve = false, dereference = true)
    ent = Entry_.new(src, nil, dereference)
    ent.copy_file dest
    ent.copy_metadata dest if preserve
  end
  module_function :copy_file

  #
  # Copies stream +src+ to +dest+.
  # +src+ must respond to #read(n) and
  # +dest+ must respond to #write(str).
  #
  def copy_stream(src, dest)
    IO.copy_stream(src, dest)
  end
  module_function :copy_stream

  #
  # Options: force noop verbose
  #
  # Moves file(s) +src+ to +dest+.  If +file+ and +dest+ exist on the different
  # disk partition, the file is copied then the original file is removed.
  #
  #   FileUtils.mv 'badname.rb', 'goodname.rb'
  #   FileUtils.mv 'stuff.rb', '/notexist/lib/ruby', :force => true  # no error
  #
  #   FileUtils.mv %w(junk.txt dust.txt), '/home/aamine/.trash/'
  #   FileUtils.mv Dir.glob('test*.rb'), 'test', :noop => true, :verbose => true
  #
  def mv(src, dest, options = {})
    fu_check_options options, OPT_TABLE['mv']
    fu_output_message "mv#{options[:force] ? ' -f' : ''} #{[src,dest].flatten.join ' '}" if options[:verbose]
    return if options[:noop]
    fu_each_src_dest(src, dest) do |s, d|
      destent = Entry_.new(d, nil, true)
      begin
        if destent.exist?
          if destent.directory?
            raise Errno::EEXIST, d
          else
            destent.remove_file if rename_cannot_overwrite_file?
          end
        end
        begin
          File.rename s, d
        rescue Errno::EXDEV
          copy_entry s, d, true
          if options[:secure]
            remove_entry_secure s, options[:force]
          else
            remove_entry s, options[:force]
          end
        end
      rescue SystemCallError
        raise unless options[:force]
      end
    end
  end
  module_function :mv

  alias move mv
  module_function :move

  OPT_TABLE['mv']   =
  OPT_TABLE['move'] = [:force, :noop, :verbose, :secure]

  def rename_cannot_overwrite_file?   #:nodoc:
    /cygwin|mswin|mingw|bccwin|emx/ =~ RUBY_PLATFORM
  end
  private_module_function :rename_cannot_overwrite_file?

  #
  # Options: force noop verbose
  #
  # Remove file(s) specified in +list+.  This method cannot remove directories.
  # All StandardErrors are ignored when the :force option is set.
  #
  #   FileUtils.rm %w( junk.txt dust.txt )
  #   FileUtils.rm Dir.glob('*.so')
  #   FileUtils.rm 'NotExistFile', :force => true   # never raises exception
  #
  def rm(list, options = {})
    fu_check_options options, OPT_TABLE['rm']
    list = fu_list(list)
    fu_output_message "rm#{options[:force] ? ' -f' : ''} #{list.join ' '}" if options[:verbose]
    return if options[:noop]

    list.each do |path|
      remove_file path, options[:force]
    end
  end
  module_function :rm

  alias remove rm
  module_function :remove

  OPT_TABLE['rm']     =
  OPT_TABLE['remove'] = [:force, :noop, :verbose]

  #
  # Options: noop verbose
  #
  # Equivalent to
  #
  #   #rm(list, :force => true)
  #
  def rm_f(list, options = {})
    fu_check_options options, OPT_TABLE['rm_f']
    options = options.dup
    options[:force] = true
    rm list, options
  end
  module_function :rm_f

  alias safe_unlink rm_f
  module_function :safe_unlink

  OPT_TABLE['rm_f']        =
  OPT_TABLE['safe_unlink'] = [:noop, :verbose]

  #
  # Options: force noop verbose secure
  #
  # remove files +list+[0] +list+[1]... If +list+[n] is a directory,
  # removes its all contents recursively. This method ignores
  # StandardError when :force option is set.
  #
  #   FileUtils.rm_r Dir.glob('/tmp/*')
  #   FileUtils.rm_r '/', :force => true          #  :-)
  #
  # WARNING: This method causes local vulnerability
  # if one of parent directories or removing directory tree are world
  # writable (including /tmp, whose permission is 1777), and the current
  # process has strong privilege such as Unix super user (root), and the
  # system has symbolic link.  For secure removing, read the documentation
  # of #remove_entry_secure carefully, and set :secure option to true.
  # Default is :secure=>false.
  #
  # NOTE: This method calls #remove_entry_secure if :secure option is set.
  # See also #remove_entry_secure.
  #
  def rm_r(list, options = {})
    fu_check_options options, OPT_TABLE['rm_r']
    # options[:secure] = true unless options.key?(:secure)
    list = fu_list(list)
    fu_output_message "rm -r#{options[:force] ? 'f' : ''} #{list.join ' '}" if options[:verbose]
    return if options[:noop]
    list.each do |path|
      if options[:secure]
        remove_entry_secure path, options[:force]
      else
        remove_entry path, options[:force]
      end
    end
  end
  module_function :rm_r

  OPT_TABLE['rm_r'] = [:force, :noop, :verbose, :secure]

  #
  # Options: noop verbose secure
  #
  # Equivalent to
  #
  #   #rm_r(list, :force => true)
  #
  # WARNING: This method causes local vulnerability.
  # Read the documentation of #rm_r first.
  #
  def rm_rf(list, options = {})
    fu_check_options options, OPT_TABLE['rm_rf']
    options = options.dup
    options[:force] = true
    rm_r list, options
  end
  module_function :rm_rf

  alias rmtree rm_rf
  module_function :rmtree

  OPT_TABLE['rm_rf']  =
  OPT_TABLE['rmtree'] = [:noop, :verbose, :secure]

  #
  # This method removes a file system entry +path+.  +path+ shall be a
  # regular file, a directory, or something.  If +path+ is a directory,
  # remove it recursively.  This method is required to avoid TOCTTOU
  # (time-of-check-to-time-of-use) local security vulnerability of #rm_r.
  # #rm_r causes security hole when:
  #
  #   * Parent directory is world writable (including /tmp).
  #   * Removing directory tree includes world writable directory.
  #   * The system has symbolic link.
  #
  # To avoid this security hole, this method applies special preprocess.
  # If +path+ is a directory, this method chown(2) and chmod(2) all
  # removing directories.  This requires the current process is the
  # owner of the removing whole directory tree, or is the super user (root).
  #
  # WARNING: You must ensure that *ALL* parent directories cannot be
  # moved by other untrusted users.  For example, parent directories
  # should not be owned by untrusted users, and should not be world
  # writable except when the sticky bit set.
  #
  # WARNING: Only the owner of the removing directory tree, or Unix super
  # user (root) should invoke this method.  Otherwise this method does not
  # work.
  #
  # For details of this security vulnerability, see Perl's case:
  #
  #   http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0448
  #   http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0452
  #
  # For fileutils.rb, this vulnerability is reported in [ruby-dev:26100].
  #
  def remove_entry_secure(path, force = false)
    unless fu_have_symlink?
      remove_entry path, force
      return
    end
    fullpath = File.expand_path(path)
    st = File.lstat(fullpath)
    unless st.directory?
      File.unlink fullpath
      return
    end
    # is a directory.
    parent_st = File.stat(File.dirname(fullpath))
    unless parent_st.world_writable?
      remove_entry path, force
      return
    end
    unless parent_st.sticky?
      raise ArgumentError, "parent directory is world writable, FileUtils#remove_entry_secure does not work; abort: #{path.inspect} (parent directory mode #{'%o' % parent_st.mode})"
    end
    # freeze tree root
    euid = Process.euid
    File.open(fullpath + '/.') {|f|
      unless fu_stat_identical_entry?(st, f.stat)
        # symlink (TOC-to-TOU attack?)
        File.unlink fullpath
        return
      end
      f.chown euid, -1
      f.chmod 0700
      unless fu_stat_identical_entry?(st, File.lstat(fullpath))
        # TOC-to-TOU attack?
        File.unlink fullpath
        return
      end
    }
    # ---- tree root is frozen ----
    root = Entry_.new(path)
    root.preorder_traverse do |ent|
      if ent.directory?
        ent.chown euid, -1
        ent.chmod 0700
      end
    end
    root.postorder_traverse do |ent|
      begin
        ent.remove
      rescue
        raise unless force
      end
    end
  rescue
    raise unless force
  end
  module_function :remove_entry_secure

  def fu_have_symlink?   #:nodoc:
    File.symlink nil, nil
  rescue NotImplementedError
    return false
  rescue TypeError
    return true
  end
  private_module_function :fu_have_symlink?

  def fu_stat_identical_entry?(a, b)   #:nodoc:
    a.dev == b.dev and a.ino == b.ino
  end
  private_module_function :fu_stat_identical_entry?

  #
  # This method removes a file system entry +path+.
  # +path+ might be a regular file, a directory, or something.
  # If +path+ is a directory, remove it recursively.
  #
  # See also #remove_entry_secure.
  #
  def remove_entry(path, force = false)
    Entry_.new(path).postorder_traverse do |ent|
      begin
        ent.remove
      rescue
        raise unless force
      end
    end
  rescue
    raise unless force
  end
  module_function :remove_entry

  #
  # Removes a file +path+.
  # This method ignores StandardError if +force+ is true.
  #
  def remove_file(path, force = false)
    Entry_.new(path).remove_file
  rescue
    raise unless force
  end
  module_function :remove_file

  #
  # Removes a directory +dir+ and its contents recursively.
  # This method ignores StandardError if +force+ is true.
  #
  def remove_dir(path, force = false)
    remove_entry path, force   # FIXME?? check if it is a directory
  end
  module_function :remove_dir

  #
  # Returns true if the contents of a file A and a file B are identical.
  #
  #   FileUtils.compare_file('somefile', 'somefile')  #=> true
  #   FileUtils.compare_file('/bin/cp', '/bin/mv')    #=> maybe false
  #
  def compare_file(a, b)
    return false unless File.size(a) == File.size(b)
    File.open(a, 'rb') {|fa|
      File.open(b, 'rb') {|fb|
        return compare_stream(fa, fb)
      }
    }
  end
  module_function :compare_file

  alias identical? compare_file
  alias cmp compare_file
  module_function :identical?
  module_function :cmp

  #
  # Returns true if the contents of a stream +a+ and +b+ are identical.
  #
  def compare_stream(a, b)
    bsize = fu_stream_blksize(a, b)
    sa = ""
    sb = ""
    begin
      a.read(bsize, sa)
      b.read(bsize, sb)
      return true if sa.empty? && sb.empty?
    end while sa == sb
    false
  end
  module_function :compare_stream

  #
  # Options: mode preserve noop verbose
  #
  # If +src+ is not same as +dest+, copies it and changes the permission
  # mode to +mode+.  If +dest+ is a directory, destination is +dest+/+src+.
  # This method removes destination before copy.
  #
  #   FileUtils.install 'ruby', '/usr/local/bin/ruby', :mode => 0755, :verbose => true
  #   FileUtils.install 'lib.rb', '/usr/local/lib/ruby/site_ruby', :verbose => true
  #
  def install(src, dest, options = {})
    fu_check_options options, OPT_TABLE['install']
    fu_output_message "install -c#{options[:preserve] && ' -p'}#{options[:mode] ? (' -m 0%o' % options[:mode]) : ''} #{[src,dest].flatten.join ' '}" if options[:verbose]
    return if options[:noop]
    fu_each_src_dest(src, dest) do |s, d|
      st = File.stat(s)
      unless File.exist?(d) and compare_file(s, d)
        remove_file d, true
        copy_file s, d
        File.utime st.atime, st.mtime, d if options[:preserve]
        File.chmod options[:mode], d if options[:mode]
      end
    end
  end
  module_function :install

  OPT_TABLE['install'] = [:mode, :preserve, :noop, :verbose]

  def user_mask(target)  #:nodoc:
    target.each_char.inject(0) do |mask, chr|
      case chr
      when "u"
        mask | 04700
      when "g"
        mask | 02070
      when "o"
        mask | 01007
      when "a"
        mask | 07777
      else
        raise ArgumentError, "invalid `who' symbol in file mode: #{chr}"
      end
    end
  end
  private_module_function :user_mask

  def apply_mask(mode, user_mask, op, mode_mask)
    case op
    when '='
      (mode & ~user_mask) | (user_mask & mode_mask)
    when '+'
      mode | (user_mask & mode_mask)
    when '-'
      mode & ~(user_mask & mode_mask)
    end
  end
  private_module_function :apply_mask

  def symbolic_modes_to_i(mode_sym, path)  #:nodoc:
    mode_sym.split(/,/).inject(File.stat(path).mode & 07777) do |current_mode, clause|
      target, *actions = clause.split(/([=+-])/)
      raise ArgumentError, "invalid file mode: #{mode_sym}" if actions.empty?
      target = 'a' if target.empty?
      user_mask = user_mask(target)
      actions.each_slice(2) do |op, perm|
        need_apply = op == '='
        mode_mask = (perm || '').each_char.inject(0) do |mask, chr|
          case chr
          when "r"
            mask | 0444
          when "w"
            mask | 0222
          when "x"
            mask | 0111
          when "X"
            if FileTest.directory? path
              mask | 0111
            else
              mask
            end
          when "s"
            mask | 06000
          when "t"
            mask | 01000
          when "u", "g", "o"
            if mask.nonzero?
              current_mode = apply_mask(current_mode, user_mask, op, mask)
            end
            need_apply = false
            copy_mask = user_mask(chr)
            (current_mode & copy_mask) / (copy_mask & 0111) * (user_mask & 0111)
          else
            raise ArgumentError, "invalid `perm' symbol in file mode: #{chr}"
          end
        end

        if mode_mask.nonzero? || need_apply
          current_mode = apply_mask(current_mode, user_mask, op, mode_mask)
        end
      end
      current_mode
    end
  end
  private_module_function :symbolic_modes_to_i

  def fu_mode(mode, path)  #:nodoc:
    mode.is_a?(String) ? symbolic_modes_to_i(mode, path) : mode
  end
  private_module_function :fu_mode

  def mode_to_s(mode)  #:nodoc:
    mode.is_a?(String) ? mode : "%o" % mode
  end
  private_module_function :mode_to_s

  #
  # Options: noop verbose
  #
  # Changes permission bits on the named files (in +list+) to the bit pattern
  # represented by +mode+.
  #
  # +mode+ is the symbolic and absolute mode can be used.
  #
  # Absolute mode is
  #   FileUtils.chmod 0755, 'somecommand'
  #   FileUtils.chmod 0644, %w(my.rb your.rb his.rb her.rb)
  #   FileUtils.chmod 0755, '/usr/bin/ruby', :verbose => true
  #
  # Symbolic mode is
  #   FileUtils.chmod "u=wrx,go=rx", 'somecommand'
  #   FileUtils.chmod "u=wr,go=rr", %w(my.rb your.rb his.rb her.rb)
  #   FileUtils.chmod "u=wrx,go=rx", '/usr/bin/ruby', :verbose => true
  #
  # "a" :: is user, group, other mask.
  # "u" :: is user's mask.
  # "g" :: is group's mask.
  # "o" :: is other's mask.
  # "w" :: is write permission.
  # "r" :: is read permission.
  # "x" :: is execute permission.
  # "X" ::
  #   is execute permission for directories only, must be used in conjunction with "+"
  # "s" :: is uid, gid.
  # "t" :: is sticky bit.
  # "+" :: is added to a class given the specified mode.
  # "-" :: Is removed from a given class given mode.
  # "=" :: Is the exact nature of the class will be given a specified mode.

  def chmod(mode, list, options = {})
    fu_check_options options, OPT_TABLE['chmod']
    list = fu_list(list)
    fu_output_message sprintf('chmod %s %s', mode_to_s(mode), list.join(' ')) if options[:verbose]
    return if options[:noop]
    list.each do |path|
      Entry_.new(path).chmod(fu_mode(mode, path))
    end
  end
  module_function :chmod

  OPT_TABLE['chmod'] = [:noop, :verbose]

  #
  # Options: noop verbose force
  #
  # Changes permission bits on the named files (in +list+)
  # to the bit pattern represented by +mode+.
  #
  #   FileUtils.chmod_R 0700, "/tmp/app.#{$$}"
  #   FileUtils.chmod_R "u=wrx", "/tmp/app.#{$$}"
  #
  def chmod_R(mode, list, options = {})
    fu_check_options options, OPT_TABLE['chmod_R']
    list = fu_list(list)
    fu_output_message sprintf('chmod -R%s %s %s',
                              (options[:force] ? 'f' : ''),
                              mode_to_s(mode), list.join(' ')) if options[:verbose]
    return if options[:noop]
    list.each do |root|
      Entry_.new(root).traverse do |ent|
        begin
          ent.chmod(fu_mode(mode, ent.path))
        rescue
          raise unless options[:force]
        end
      end
    end
  end
  module_function :chmod_R

  OPT_TABLE['chmod_R'] = [:noop, :verbose, :force]

  #
  # Options: noop verbose
  #
  # Changes owner and group on the named files (in +list+)
  # to the user +user+ and the group +group+.  +user+ and +group+
  # may be an ID (Integer/String) or a name (String).
  # If +user+ or +group+ is nil, this method does not change
  # the attribute.
  #
  #   FileUtils.chown 'root', 'staff', '/usr/local/bin/ruby'
  #   FileUtils.chown nil, 'bin', Dir.glob('/usr/bin/*'), :verbose => true
  #
  def chown(user, group, list, options = {})
    fu_check_options options, OPT_TABLE['chown']
    list = fu_list(list)
    fu_output_message sprintf('chown %s %s',
                              (group ? "#{user}:#{group}" : user || ':'),
                              list.join(' ')) if options[:verbose]
    return if options[:noop]
    uid = fu_get_uid(user)
    gid = fu_get_gid(group)
    list.each do |path|
      Entry_.new(path).chown uid, gid
    end
  end
  module_function :chown

  OPT_TABLE['chown'] = [:noop, :verbose]

  #
  # Options: noop verbose force
  #
  # Changes owner and group on the named files (in +list+)
  # to the user +user+ and the group +group+ recursively.
  # +user+ and +group+ may be an ID (Integer/String) or
  # a name (String).  If +user+ or +group+ is nil, this
  # method does not change the attribute.
  #
  #   FileUtils.chown_R 'www', 'www', '/var/www/htdocs'
  #   FileUtils.chown_R 'cvs', 'cvs', '/var/cvs', :verbose => true
  #
  def chown_R(user, group, list, options = {})
    fu_check_options options, OPT_TABLE['chown_R']
    list = fu_list(list)
    fu_output_message sprintf('chown -R%s %s %s',
                              (options[:force] ? 'f' : ''),
                              (group ? "#{user}:#{group}" : user || ':'),
                              list.join(' ')) if options[:verbose]
    return if options[:noop]
    uid = fu_get_uid(user)
    gid = fu_get_gid(group)
    list.each do |root|
      Entry_.new(root).traverse do |ent|
        begin
          ent.chown uid, gid
        rescue
          raise unless options[:force]
        end
      end
    end
  end
  module_function :chown_R

  OPT_TABLE['chown_R'] = [:noop, :verbose, :force]

  begin
    require 'etc'
  rescue LoadError # rescue LoadError for miniruby
  end

  def fu_get_uid(user)   #:nodoc:
    return nil unless user
    case user
    when Integer
      user
    when /\A\d+\z/
      user.to_i
    else
      Etc.getpwnam(user) ? Etc.getpwnam(user).uid : nil
    end
  end
  private_module_function :fu_get_uid

  def fu_get_gid(group)   #:nodoc:
    return nil unless group
    case group
    when Integer
      group
    when /\A\d+\z/
      group.to_i
    else
      Etc.getgrnam(group) ? Etc.getgrnam(group).gid : nil
    end
  end
  private_module_function :fu_get_gid

  #
  # Options: noop verbose mtime nocreate
  #
  # Updates modification time (mtime) and access time (atime) of file(s) in
  # +list+.  Files are created if they don't exist.
  #
  #   FileUtils.touch 'timestamp'
  #   FileUtils.touch Dir.glob('*.c');  system 'make'
  #
  def touch(list, options = {})
    fu_check_options options, OPT_TABLE['touch']
    list = fu_list(list)
    nocreate = options[:nocreate]
    t = options[:mtime]
    if options[:verbose]
      fu_output_message "touch #{nocreate ? '-c ' : ''}#{t ? t.strftime('-t %Y%m%d%H%M.%S ') : ''}#{list.join ' '}"
    end
    return if options[:noop]
    list.each do |path|
      created = nocreate
      begin
        File.utime(t, t, path)
      rescue Errno::ENOENT
        raise if created
        File.open(path, 'a') {
          ;
        }
        created = true
        retry if t
      end
    end
  end
  module_function :touch

  OPT_TABLE['touch'] = [:noop, :verbose, :mtime, :nocreate]

  private

  module StreamUtils_
    private

    def fu_windows?
      /mswin|mingw|bccwin|emx/ =~ RUBY_PLATFORM
    end

    def fu_copy_stream0(src, dest, blksize = nil)   #:nodoc:
      IO.copy_stream(src, dest)
    end

    def fu_stream_blksize(*streams)
      streams.each do |s|
        next unless s.respond_to?(:stat)
        size = fu_blksize(s.stat)
        return size if size
      end
      fu_default_blksize()
    end

    def fu_blksize(st)
      s = st.blksize
      return nil unless s
      return nil if s == 0
      s
    end

    def fu_default_blksize
      1024
    end
  end

  include StreamUtils_
  extend StreamUtils_

  class Entry_   #:nodoc: internal use only
    include StreamUtils_

    def initialize(a, b = nil, deref = false)
      @prefix = @rel = @path = nil
      if b
        @prefix = a
        @rel = b
      else
        @path = a
      end
      @deref = deref
      @stat = nil
      @lstat = nil
    end

    def inspect
      "\#<#{self.class} #{path()}>"
    end

    def path
      if @path
        File.path(@path)
      else
        join(@prefix, @rel)
      end
    end

    def prefix
      @prefix || @path
    end

    def rel
      @rel
    end

    def dereference?
      @deref
    end

    def exist?
      begin
        lstat
        true
      rescue Errno::ENOENT
        false
      end
    end

    def file?
      s = lstat!
      s and s.file?
    end

    def directory?
      s = lstat!
      s and s.directory?
    end

    def symlink?
      s = lstat!
      s and s.symlink?
    end

    def chardev?
      s = lstat!
      s and s.chardev?
    end

    def blockdev?
      s = lstat!
      s and s.blockdev?
    end

    def socket?
      s = lstat!
      s and s.socket?
    end

    def pipe?
      s = lstat!
      s and s.pipe?
    end

    S_IF_DOOR = 0xD000

    def door?
      s = lstat!
      s and (s.mode & 0xF000 == S_IF_DOOR)
    end

    def entries
      opts = {}
      opts[:encoding] = ::Encoding::UTF_8 if fu_windows?
      Dir.entries(path(), opts)\
          .reject {|n| n == '.' or n == '..' }\
          .map {|n| Entry_.new(prefix(), join(rel(), n.untaint)) }
    end

    def stat
      return @stat if @stat
      if lstat() and lstat().symlink?
        @stat = File.stat(path())
      else
        @stat = lstat()
      end
      @stat
    end

    def stat!
      return @stat if @stat
      if lstat! and lstat!.symlink?
        @stat = File.stat(path())
      else
        @stat = lstat!
      end
      @stat
    rescue SystemCallError
      nil
    end

    def lstat
      if dereference?
        @lstat ||= File.stat(path())
      else
        @lstat ||= File.lstat(path())
      end
    end

    def lstat!
      lstat()
    rescue SystemCallError
      nil
    end

    def chmod(mode)
      if symlink?
        File.lchmod mode, path() if have_lchmod?
      else
        File.chmod mode, path()
      end
    end

    def chown(uid, gid)
      if symlink?
        File.lchown uid, gid, path() if have_lchown?
      else
        File.chown uid, gid, path()
      end
    end

    def copy(dest)
      case
      when file?
        copy_file dest
      when directory?
        if !File.exist?(dest) and descendant_directory?(dest, path)
          raise ArgumentError, "cannot copy directory %s to itself %s" % [path, dest]
        end
        begin
          Dir.mkdir dest
        rescue
          raise unless File.directory?(dest)
        end
      when symlink?
        File.symlink File.readlink(path()), dest
      when chardev?
        raise "cannot handle device file" unless File.respond_to?(:mknod)
        mknod dest, ?c, 0666, lstat().rdev
      when blockdev?
        raise "cannot handle device file" unless File.respond_to?(:mknod)
        mknod dest, ?b, 0666, lstat().rdev
      when socket?
        raise "cannot handle socket" unless File.respond_to?(:mknod)
        mknod dest, nil, lstat().mode, 0
      when pipe?
        raise "cannot handle FIFO" unless File.respond_to?(:mkfifo)
        mkfifo dest, 0666
      when door?
        raise "cannot handle door: #{path()}"
      else
        raise "unknown file type: #{path()}"
      end
    end

    def copy_file(dest)
      File.open(path()) do |s|
        File.open(dest, 'wb', s.stat.mode) do |f|
          IO.copy_stream(s, f)
        end
      end
    end

    def copy_metadata(path)
      st = lstat()
      if !st.symlink?
        File.utime st.atime, st.mtime, path
      end
      begin
        if st.symlink?
          begin
            File.lchown st.uid, st.gid, path
          rescue NotImplementedError
          end
        else
          File.chown st.uid, st.gid, path
        end
      rescue Errno::EPERM
        # clear setuid/setgid
        if st.symlink?
          begin
            File.lchmod st.mode & 01777, path
          rescue NotImplementedError
          end
        else
          File.chmod st.mode & 01777, path
        end
      else
        if st.symlink?
          begin
            File.lchmod st.mode, path
          rescue NotImplementedError
          end
        else
          File.chmod st.mode, path
        end
      end
    end

    def remove
      if directory?
        remove_dir1
      else
        remove_file
      end
    end

    def remove_dir1
      platform_support {
        Dir.rmdir path().chomp(?/)
      }
    end

    def remove_file
      platform_support {
        File.unlink path
      }
    end

    def platform_support
      return yield unless fu_windows?
      first_time_p = true
      begin
        yield
      rescue Errno::ENOENT
        raise
      rescue => err
        if first_time_p
          first_time_p = false
          begin
            File.chmod 0700, path()   # Windows does not have symlink
            retry
          rescue SystemCallError
          end
        end
        raise err
      end
    end

    def preorder_traverse
      stack = [self]
      while ent = stack.pop
        yield ent
        stack.concat ent.entries.reverse if ent.directory?
      end
    end

    alias traverse preorder_traverse

    def postorder_traverse
      if directory?
        entries().each do |ent|
          ent.postorder_traverse do |e|
            yield e
          end
        end
      end
    ensure
      yield self
    end

    def wrap_traverse(pre, post)
      pre.call self
      if directory?
        entries.each do |ent|
          ent.wrap_traverse pre, post
        end
      end
      post.call self
    end

    private

    $fileutils_rb_have_lchmod = nil

    def have_lchmod?
      # This is not MT-safe, but it does not matter.
      if $fileutils_rb_have_lchmod == nil
        $fileutils_rb_have_lchmod = check_have_lchmod?
      end
      $fileutils_rb_have_lchmod
    end

    def check_have_lchmod?
      return false unless File.respond_to?(:lchmod)
      File.lchmod 0
      return true
    rescue NotImplementedError
      return false
    end

    $fileutils_rb_have_lchown = nil

    def have_lchown?
      # This is not MT-safe, but it does not matter.
      if $fileutils_rb_have_lchown == nil
        $fileutils_rb_have_lchown = check_have_lchown?
      end
      $fileutils_rb_have_lchown
    end

    def check_have_lchown?
      return false unless File.respond_to?(:lchown)
      File.lchown nil, nil
      return true
    rescue NotImplementedError
      return false
    end

    def join(dir, base)
      return File.path(dir) if not base or base == '.'
      return File.path(base) if not dir or dir == '.'
      File.join(dir, base)
    end

    if File::ALT_SEPARATOR
      DIRECTORY_TERM = "(?=[/#{Regexp.quote(File::ALT_SEPARATOR)}]|\\z)".freeze
    else
      DIRECTORY_TERM = "(?=/|\\z)".freeze
    end
    SYSCASE = File::FNM_SYSCASE.nonzero? ? "-i" : ""

    def descendant_directory?(descendant, ascendant)
      /\A(?#{SYSCASE}:#{Regexp.quote(ascendant)})#{DIRECTORY_TERM}/ =~ File.dirname(descendant)
    end
  end   # class Entry_

  def fu_list(arg)   #:nodoc:
    [arg].flatten.map {|path| File.path(path) }
  end
  private_module_function :fu_list

  def fu_each_src_dest(src, dest)   #:nodoc:
    fu_each_src_dest0(src, dest) do |s, d|
      raise ArgumentError, "same file: #{s} and #{d}" if fu_same?(s, d)
      yield s, d
    end
  end
  private_module_function :fu_each_src_dest

  def fu_each_src_dest0(src, dest)   #:nodoc:
    if tmp = Array.try_convert(src)
      tmp.each do |s|
        s = File.path(s)
        yield s, File.join(dest, File.basename(s))
      end
    else
      src = File.path(src)
      if File.directory?(dest)
        yield src, File.join(dest, File.basename(src))
      else
        yield src, File.path(dest)
      end
    end
  end
  private_module_function :fu_each_src_dest0

  def fu_same?(a, b)   #:nodoc:
    File.identical?(a, b)
  end
  private_module_function :fu_same?

  def fu_check_options(options, optdecl)   #:nodoc:
    h = options.dup
    optdecl.each do |opt|
      h.delete opt
    end
    raise ArgumentError, "no such option: #{h.keys.join(' ')}" unless h.empty?
  end
  private_module_function :fu_check_options

  def fu_update_option(args, new)   #:nodoc:
    if tmp = Hash.try_convert(args.last)
      args[-1] = tmp.dup.update(new)
    else
      args.push new
    end
    args
  end
  private_module_function :fu_update_option

  @fileutils_output = $stderr
  @fileutils_label  = ''

  def fu_output_message(msg)   #:nodoc:
    @fileutils_output ||= $stderr
    @fileutils_label  ||= ''
    @fileutils_output.puts @fileutils_label + msg
  end
  private_module_function :fu_output_message

  #
  # Returns an Array of method names which have any options.
  #
  #   p FileUtils.commands  #=> ["chmod", "cp", "cp_r", "install", ...]
  #
  def FileUtils.commands
    OPT_TABLE.keys
  end

  #
  # Returns an Array of option names.
  #
  #   p FileUtils.options  #=> ["noop", "force", "verbose", "preserve", "mode"]
  #
  def FileUtils.options
    OPT_TABLE.values.flatten.uniq.map {|sym| sym.to_s }
  end

  #
  # Returns true if the method +mid+ have an option +opt+.
  #
  #   p FileUtils.have_option?(:cp, :noop)     #=> true
  #   p FileUtils.have_option?(:rm, :force)    #=> true
  #   p FileUtils.have_option?(:rm, :preserve) #=> false
  #
  def FileUtils.have_option?(mid, opt)
    li = OPT_TABLE[mid.to_s] or raise ArgumentError, "no such method: #{mid}"
    li.include?(opt)
  end

  #
  # Returns an Array of option names of the method +mid+.
  #
  #   p FileUtils.options_of(:rm)  #=> ["noop", "verbose", "force"]
  #
  def FileUtils.options_of(mid)
    OPT_TABLE[mid.to_s].map {|sym| sym.to_s }
  end

  #
  # Returns an Array of method names which have the option +opt+.
  #
  #   p FileUtils.collect_method(:preserve) #=> ["cp", "cp_r", "copy", "install"]
  #
  def FileUtils.collect_method(opt)
    OPT_TABLE.keys.select {|m| OPT_TABLE[m].include?(opt) }
  end

  LOW_METHODS = singleton_methods(false) - collect_method(:noop).map(&:intern)
  module LowMethods
    module_eval("private\n" + ::FileUtils::LOW_METHODS.map {|name| "def #{name}(*)end"}.join("\n"),
                __FILE__, __LINE__)
  end

  METHODS = singleton_methods() - [:private_module_function,
      :commands, :options, :have_option?, :options_of, :collect_method]

  #
  # This module has all methods of FileUtils module, but it outputs messages
  # before acting.  This equates to passing the <tt>:verbose</tt> flag to
  # methods in FileUtils.
  #
  module Verbose
    include FileUtils
    @fileutils_output  = $stderr
    @fileutils_label   = ''
    ::FileUtils.collect_method(:verbose).each do |name|
      module_eval(<<-EOS, __FILE__, __LINE__ + 1)
        def #{name}(*args)
          super(*fu_update_option(args, :verbose => true))
        end
        private :#{name}
      EOS
    end
    extend self
    class << self
      ::FileUtils::METHODS.each do |m|
        public m
      end
    end
  end

  #
  # This module has all methods of FileUtils module, but never changes
  # files/directories.  This equates to passing the <tt>:noop</tt> flag
  # to methods in FileUtils.
  #
  module NoWrite
    include FileUtils
    include LowMethods
    @fileutils_output  = $stderr
    @fileutils_label   = ''
    ::FileUtils.collect_method(:noop).each do |name|
      module_eval(<<-EOS, __FILE__, __LINE__ + 1)
        def #{name}(*args)
          super(*fu_update_option(args, :noop => true))
        end
        private :#{name}
      EOS
    end
    extend self
    class << self
      ::FileUtils::METHODS.each do |m|
        public m
      end
    end
  end

  #
  # This module has all methods of FileUtils module, but never changes
  # files/directories, with printing message before acting.
  # This equates to passing the <tt>:noop</tt> and <tt>:verbose</tt> flag
  # to methods in FileUtils.
  #
  module DryRun
    include FileUtils
    include LowMethods
    @fileutils_output  = $stderr
    @fileutils_label   = ''
    ::FileUtils.collect_method(:noop).each do |name|
      module_eval(<<-EOS, __FILE__, __LINE__ + 1)
        def #{name}(*args)
          super(*fu_update_option(args, :noop => true, :verbose => true))
        end
        private :#{name}
      EOS
    end
    extend self
    class << self
      ::FileUtils::METHODS.each do |m|
        public m
      end
    end
  end

end
lib64/ruby/2.2.0/unicode_normalize/tables.rb000064400000670760150402106360014426 0ustar00# coding: us-ascii

# automatically generated by template/unicode_norm_gen.tmpl

module UnicodeNormalize
  UNICODE_VERSION = "7.0.0".freeze

  accents = "" \
    "[\u0300-\u034E\u0350-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7" \
    "\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711" \
    "\u0730-\u074A\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u08FF" \
    "\u093C\u094D\u0951-\u0954\u09BC\u09BE\u09CD\u09D7\u0A3C" \
    "\u0A4D\u0ABC\u0ACD\u0B3C\u0B3E\u0B4D\u0B56\u0B57\u0BBE" \
    "\u0BCD\u0BD7\u0C4D\u0C55\u0C56\u0CBC\u0CC2\u0CCD\u0CD5\u0CD6" \
    "\u0D3E\u0D4D\u0D57\u0DCA\u0DCF\u0DDF\u0E38-\u0E3A\u0E48-\u0E4B" \
    "\u0EB8\u0EB9\u0EC8-\u0ECB\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71\u0F72\u0F74" \
    "\u0F7A-\u0F7D\u0F80\u0F82-\u0F84\u0F86\u0F87\u0FC6\u102E\u1037\u1039\u103A" \
    "\u108D\u135D-\u135F\u1714\u1734\u17D2\u17DD\u18A9\u1939-\u193B" \
    "\u1A17\u1A18\u1A60\u1A75-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B34\u1B35\u1B44\u1B6B-\u1B73" \
    "\u1BAA\u1BAB\u1BE6\u1BF2\u1BF3\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED" \
    "\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1" \
    "\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F\uA674-\uA67D\uA69F\uA6F0\uA6F1" \
    "\uA806\uA8C4\uA8E0-\uA8F1\uA92B-\uA92D\uA953\uA9B3\uA9C0\uAAB0" \
    "\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAF6\uABED\uFB1E\uFE20-\uFE2D" \
    "\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A0D}\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}" \
    "\u{11046}\u{1107F}\u{110B9}\u{110BA}\u{11100}-\u{11102}\u{11127}\u{11133}\u{11134}\u{11173}\u{111C0}" \
    "\u{11235}\u{11236}\u{112E9}\u{112EA}\u{1133C}\u{1133E}\u{1134D}\u{11357}\u{11366}-\u{1136C}\u{11370}-\u{11374}" \
    "\u{114B0}\u{114BA}\u{114BD}\u{114C2}\u{114C3}\u{115AF}\u{115BF}\u{115C0}\u{1163F}\u{116B6}\u{116B7}" \
    "\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{1BC9E}\u{1D165}-\u{1D169}\u{1D16D}-\u{1D172}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}" \
    "\u{1D242}-\u{1D244}\u{1E8D0}-\u{1E8D6}" \
    "]" \
  "".freeze
  ACCENTS = accents
  REGEXP_D_STRING = "#{''  # composition starters and composition exclusions
    }" \
    "[\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD" \
    "\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165" \
    "\u0168-\u017E\u01A0\u01A1\u01AF\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01F0\u01F4\u01F5\u01F8-\u021B" \
    "\u021E\u021F\u0226-\u0233\u0340\u0341\u0343\u0344\u0374\u037E\u0385-\u038A\u038C" \
    "\u038E-\u0390\u03AA-\u03B0\u03CA-\u03CE\u03D3\u03D4\u0400\u0401\u0403\u0407\u040C-\u040E" \
    "\u0419\u0439\u0450\u0451\u0453\u0457\u045C-\u045E\u0476\u0477\u04C1\u04C2" \
    "\u04D0-\u04D3\u04D6\u04D7\u04DA-\u04DF\u04E2-\u04E7\u04EA-\u04F5\u04F8\u04F9\u0622-\u0626\u06C0" \
    "\u06C2\u06D3\u0929\u0931\u0934\u0958-\u095F\u09CB\u09CC\u09DC\u09DD" \
    "\u09DF\u0A33\u0A36\u0A59-\u0A5B\u0A5E\u0B48\u0B4B\u0B4C\u0B5C\u0B5D" \
    "\u0B94\u0BCA-\u0BCC\u0C48\u0CC0\u0CC7\u0CC8\u0CCA\u0CCB\u0D4A-\u0D4C\u0DDA" \
    "\u0DDC-\u0DDE\u0F43\u0F4D\u0F52\u0F57\u0F5C\u0F69\u0F73" \
    "\u0F75\u0F76\u0F78\u0F81\u0F93\u0F9D\u0FA2\u0FA7\u0FAC" \
    "\u0FB9\u1026\u1B06\u1B08\u1B0A\u1B0C\u1B0E\u1B12" \
    "\u1B3B\u1B3D\u1B40\u1B41\u1B43\u1E00-\u1E99\u1E9B\u1EA0-\u1EF9\u1F00-\u1F15" \
    "\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D" \
    "\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC1-\u1FC4\u1FC6-\u1FD3\u1FD6-\u1FDB\u1FDD-\u1FEF\u1FF2-\u1FF4" \
    "\u1FF6-\u1FFD\u2000\u2001\u2126\u212A\u212B\u219A\u219B\u21AE\u21CD-\u21CF\u2204" \
    "\u2209\u220C\u2224\u2226\u2241\u2244\u2247\u2249" \
    "\u2260\u2262\u226D-\u2271\u2274\u2275\u2278\u2279\u2280\u2281\u2284\u2285\u2288\u2289" \
    "\u22AC-\u22AF\u22E0-\u22E3\u22EA-\u22ED\u2329\u232A\u2ADC\u304C\u304E\u3050" \
    "\u3052\u3054\u3056\u3058\u305A\u305C\u305E\u3060" \
    "\u3062\u3065\u3067\u3069\u3070\u3071\u3073\u3074\u3076\u3077\u3079\u307A" \
    "\u307C\u307D\u3094\u309E\u30AC\u30AE\u30B0\u30B2\u30B4" \
    "\u30B6\u30B8\u30BA\u30BC\u30BE\u30C0\u30C2\u30C5" \
    "\u30C7\u30C9\u30D0\u30D1\u30D3\u30D4\u30D6\u30D7\u30D9\u30DA\u30DC\u30DD\u30F4" \
    "\u30F7-\u30FA\u30FE\uF900-\uFA0D\uFA10\uFA12\uFA15-\uFA1E\uFA20\uFA22" \
    "\uFA25\uFA26\uFA2A-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E" \
    "\uFB40\uFB41\uFB43\uFB44\uFB46-\uFB4E\u{1109A}\u{1109C}\u{110AB}\u{1112E}\u{1112F}\u{1134B}\u{1134C}" \
    "\u{114BB}\u{114BC}\u{114BE}\u{115BA}\u{115BB}\u{1D15E}-\u{1D164}\u{1D1BB}-\u{1D1C0}\u{2F800}-\u{2FA1D}" \
    "]#{accents}*" \
    "|#{''  # characters that can be the result of a composition, except composition starters
    }" \
    "[<->A-PR-Za-pr-z\u00A8\u00C6\u00D8" \
    "\u00E6\u00F8\u017F\u01B7\u0292\u0391\u0395\u0397" \
    "\u0399\u039F\u03A1\u03A5\u03A9\u03B1\u03B5\u03B7" \
    "\u03B9\u03BF\u03C1\u03C5\u03C9\u03D2\u0406\u0410" \
    "\u0413\u0415-\u0418\u041A\u041E\u0423\u0427\u042B\u042D" \
    "\u0430\u0433\u0435-\u0438\u043A\u043E\u0443\u0447\u044B" \
    "\u044D\u0456\u0474\u0475\u04D8\u04D9\u04E8\u04E9\u0627\u0648\u064A" \
    "\u06C1\u06D2\u06D5\u0928\u0930\u0933\u09C7\u0B47" \
    "\u0B92\u0BC6\u0BC7\u0C46\u0CBF\u0CC6\u0D46\u0D47\u0DD9\u1025" \
    "\u1B05\u1B07\u1B09\u1B0B\u1B0D\u1B11\u1B3A\u1B3C" \
    "\u1B3E\u1B3F\u1B42\u1FBF\u1FFE\u2190\u2192\u2194\u21D0" \
    "\u21D2\u21D4\u2203\u2208\u220B\u2223\u2225\u223C" \
    "\u2243\u2245\u2248\u224D\u2261\u2264\u2265\u2272\u2273\u2276\u2277" \
    "\u227A-\u227D\u2282\u2283\u2286\u2287\u2291\u2292\u22A2\u22A8\u22A9\u22AB\u22B2-\u22B5" \
    "\u3046\u304B\u304D\u304F\u3051\u3053\u3055\u3057" \
    "\u3059\u305B\u305D\u305F\u3061\u3064\u3066\u3068" \
    "\u306F\u3072\u3075\u3078\u307B\u309D\u30A6\u30AB" \
    "\u30AD\u30AF\u30B1\u30B3\u30B5\u30B7\u30B9\u30BB" \
    "\u30BD\u30BF\u30C1\u30C4\u30C6\u30C8\u30CF\u30D2" \
    "\u30D5\u30D8\u30DB\u30EF-\u30F2\u30FD\u{11099}\u{1109B}\u{110A5}" \
    "\u{11131}\u{11132}\u{11347}\u{114B9}\u{115B8}\u{115B9}" \
    "]?#{accents}+" \
    "|#{''  # precomposed Hangul syllables
    }" \
    "[\u{AC00}-\u{D7A4}]" \
  "".freeze
  REGEXP_C_STRING = "#{''  # composition exclusions
    }" \
    "[\u0340\u0341\u0343\u0344\u0374\u037E\u0387\u0958-\u095F\u09DC\u09DD\u09DF" \
    "\u0A33\u0A36\u0A59-\u0A5B\u0A5E\u0B5C\u0B5D\u0F43\u0F4D\u0F52" \
    "\u0F57\u0F5C\u0F69\u0F73\u0F75\u0F76\u0F78\u0F81\u0F93" \
    "\u0F9D\u0FA2\u0FA7\u0FAC\u0FB9\u1F71\u1F73\u1F75" \
    "\u1F77\u1F79\u1F7B\u1F7D\u1FBB\u1FBE\u1FC9\u1FCB" \
    "\u1FD3\u1FDB\u1FE3\u1FEB\u1FEE\u1FEF\u1FF9\u1FFB\u1FFD" \
    "\u2000\u2001\u2126\u212A\u212B\u2329\u232A\u2ADC\uF900-\uFA0D\uFA10\uFA12" \
    "\uFA15-\uFA1E\uFA20\uFA22\uFA25\uFA26\uFA2A-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F" \
    "\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFB4E\u{1D15E}-\u{1D164}\u{1D1BB}-\u{1D1C0}" \
    "\u{2F800}-\u{2FA1D}" \
    "]#{accents}*" \
    "|#{''  # composition starters and characters that can be the result of a composition
    }" \
    "[<->A-PR-Za-pr-z\u00A8\u00C0-\u00CF\u00D1-\u00D6" \
    "\u00D8-\u00DD\u00E0-\u00EF\u00F1-\u00F6\u00F8-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137" \
    "\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017F\u01A0\u01A1\u01AF\u01B0\u01B7" \
    "\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01F0\u01F4\u01F5\u01F8-\u021B\u021E\u021F\u0226-\u0233\u0292" \
    "\u0385\u0386\u0388-\u038A\u038C\u038E-\u0391\u0395\u0397\u0399\u039F" \
    "\u03A1\u03A5\u03A9-\u03B1\u03B5\u03B7\u03B9\u03BF\u03C1" \
    "\u03C5\u03C9-\u03CE\u03D2-\u03D4\u0400\u0401\u0403\u0406\u0407\u040C-\u040E\u0410" \
    "\u0413\u0415-\u041A\u041E\u0423\u0427\u042B\u042D\u0430" \
    "\u0433\u0435-\u043A\u043E\u0443\u0447\u044B\u044D\u0450\u0451" \
    "\u0453\u0456\u0457\u045C-\u045E\u0474-\u0477\u04C1\u04C2\u04D0-\u04D3\u04D6-\u04DF\u04E2-\u04F5" \
    "\u04F8\u04F9\u0622-\u0627\u0648\u064A\u06C0-\u06C2\u06D2\u06D3\u06D5\u0928\u0929" \
    "\u0930\u0931\u0933\u0934\u09C7\u09CB\u09CC\u0B47\u0B48\u0B4B\u0B4C\u0B92\u0B94" \
    "\u0BC6\u0BC7\u0BCA-\u0BCC\u0C46\u0C48\u0CBF\u0CC0\u0CC6-\u0CC8\u0CCA\u0CCB\u0D46\u0D47" \
    "\u0D4A-\u0D4C\u0DD9\u0DDA\u0DDC-\u0DDE\u1025\u1026\u1B05-\u1B0E\u1B11\u1B12\u1B3A-\u1B43\u1E00-\u1E99" \
    "\u1E9B\u1EA0-\u1EF9\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59" \
    "\u1F5B\u1F5D\u1F5F-\u1F70\u1F72\u1F74\u1F76\u1F78\u1F7A" \
    "\u1F7C\u1F80-\u1FB4\u1FB6-\u1FBA\u1FBC\u1FBF\u1FC1-\u1FC4\u1FC6-\u1FC8\u1FCA" \
    "\u1FCC-\u1FD2\u1FD6-\u1FDA\u1FDD-\u1FE2\u1FE4-\u1FEA\u1FEC\u1FED\u1FF2-\u1FF4\u1FF6-\u1FF8\u1FFA" \
    "\u1FFC\u1FFE\u2190\u2192\u2194\u219A\u219B\u21AE\u21CD-\u21D0" \
    "\u21D2\u21D4\u2203\u2204\u2208\u2209\u220B\u220C\u2223-\u2226\u223C\u2241" \
    "\u2243-\u2245\u2247-\u2249\u224D\u2260-\u2262\u2264\u2265\u226D-\u227D\u2280-\u2289\u2291\u2292" \
    "\u22A2\u22A8\u22A9\u22AB-\u22AF\u22B2-\u22B5\u22E0-\u22E3\u22EA-\u22ED\u3046\u304B-\u3062" \
    "\u3064-\u3069\u306F-\u307D\u3094\u309D\u309E\u30A6\u30AB-\u30C2\u30C4-\u30C9\u30CF-\u30DD" \
    "\u30EF-\u30F2\u30F4\u30F7-\u30FA\u30FD\u30FE\u{11099}-\u{1109C}\u{110A5}\u{110AB}\u{1112E}\u{1112F}" \
    "\u{11131}\u{11132}\u{11347}\u{1134B}\u{1134C}\u{114B9}\u{114BB}\u{114BC}\u{114BE}\u{115B8}-\u{115BB}" \
    "]?#{accents}+" \
    "|#{''  # Hangul syllables with separate trailer
    }" \
    "[\uAC00\uAC1C\uAC38\uAC54\uAC70\uAC8C\uACA8\uACC4" \
    "\uACE0\uACFC\uAD18\uAD34\uAD50\uAD6C\uAD88\uADA4" \
    "\uADC0\uADDC\uADF8\uAE14\uAE30\uAE4C\uAE68\uAE84" \
    "\uAEA0\uAEBC\uAED8\uAEF4\uAF10\uAF2C\uAF48\uAF64" \
    "\uAF80\uAF9C\uAFB8\uAFD4\uAFF0\uB00C\uB028\uB044" \
    "\uB060\uB07C\uB098\uB0B4\uB0D0\uB0EC\uB108\uB124" \
    "\uB140\uB15C\uB178\uB194\uB1B0\uB1CC\uB1E8\uB204" \
    "\uB220\uB23C\uB258\uB274\uB290\uB2AC\uB2C8\uB2E4" \
    "\uB300\uB31C\uB338\uB354\uB370\uB38C\uB3A8\uB3C4" \
    "\uB3E0\uB3FC\uB418\uB434\uB450\uB46C\uB488\uB4A4" \
    "\uB4C0\uB4DC\uB4F8\uB514\uB530\uB54C\uB568\uB584" \
    "\uB5A0\uB5BC\uB5D8\uB5F4\uB610\uB62C\uB648\uB664" \
    "\uB680\uB69C\uB6B8\uB6D4\uB6F0\uB70C\uB728\uB744" \
    "\uB760\uB77C\uB798\uB7B4\uB7D0\uB7EC\uB808\uB824" \
    "\uB840\uB85C\uB878\uB894\uB8B0\uB8CC\uB8E8\uB904" \
    "\uB920\uB93C\uB958\uB974\uB990\uB9AC\uB9C8\uB9E4" \
    "\uBA00\uBA1C\uBA38\uBA54\uBA70\uBA8C\uBAA8\uBAC4" \
    "\uBAE0\uBAFC\uBB18\uBB34\uBB50\uBB6C\uBB88\uBBA4" \
    "\uBBC0\uBBDC\uBBF8\uBC14\uBC30\uBC4C\uBC68\uBC84" \
    "\uBCA0\uBCBC\uBCD8\uBCF4\uBD10\uBD2C\uBD48\uBD64" \
    "\uBD80\uBD9C\uBDB8\uBDD4\uBDF0\uBE0C\uBE28\uBE44" \
    "\uBE60\uBE7C\uBE98\uBEB4\uBED0\uBEEC\uBF08\uBF24" \
    "\uBF40\uBF5C\uBF78\uBF94\uBFB0\uBFCC\uBFE8\uC004" \
    "\uC020\uC03C\uC058\uC074\uC090\uC0AC\uC0C8\uC0E4" \
    "\uC100\uC11C\uC138\uC154\uC170\uC18C\uC1A8\uC1C4" \
    "\uC1E0\uC1FC\uC218\uC234\uC250\uC26C\uC288\uC2A4" \
    "\uC2C0\uC2DC\uC2F8\uC314\uC330\uC34C\uC368\uC384" \
    "\uC3A0\uC3BC\uC3D8\uC3F4\uC410\uC42C\uC448\uC464" \
    "\uC480\uC49C\uC4B8\uC4D4\uC4F0\uC50C\uC528\uC544" \
    "\uC560\uC57C\uC598\uC5B4\uC5D0\uC5EC\uC608\uC624" \
    "\uC640\uC65C\uC678\uC694\uC6B0\uC6CC\uC6E8\uC704" \
    "\uC720\uC73C\uC758\uC774\uC790\uC7AC\uC7C8\uC7E4" \
    "\uC800\uC81C\uC838\uC854\uC870\uC88C\uC8A8\uC8C4" \
    "\uC8E0\uC8FC\uC918\uC934\uC950\uC96C\uC988\uC9A4" \
    "\uC9C0\uC9DC\uC9F8\uCA14\uCA30\uCA4C\uCA68\uCA84" \
    "\uCAA0\uCABC\uCAD8\uCAF4\uCB10\uCB2C\uCB48\uCB64" \
    "\uCB80\uCB9C\uCBB8\uCBD4\uCBF0\uCC0C\uCC28\uCC44" \
    "\uCC60\uCC7C\uCC98\uCCB4\uCCD0\uCCEC\uCD08\uCD24" \
    "\uCD40\uCD5C\uCD78\uCD94\uCDB0\uCDCC\uCDE8\uCE04" \
    "\uCE20\uCE3C\uCE58\uCE74\uCE90\uCEAC\uCEC8\uCEE4" \
    "\uCF00\uCF1C\uCF38\uCF54\uCF70\uCF8C\uCFA8\uCFC4" \
    "\uCFE0\uCFFC\uD018\uD034\uD050\uD06C\uD088\uD0A4" \
    "\uD0C0\uD0DC\uD0F8\uD114\uD130\uD14C\uD168\uD184" \
    "\uD1A0\uD1BC\uD1D8\uD1F4\uD210\uD22C\uD248\uD264" \
    "\uD280\uD29C\uD2B8\uD2D4\uD2F0\uD30C\uD328\uD344" \
    "\uD360\uD37C\uD398\uD3B4\uD3D0\uD3EC\uD408\uD424" \
    "\uD440\uD45C\uD478\uD494\uD4B0\uD4CC\uD4E8\uD504" \
    "\uD520\uD53C\uD558\uD574\uD590\uD5AC\uD5C8\uD5E4" \
    "\uD600\uD61C\uD638\uD654\uD670\uD68C\uD6A8\uD6C4" \
    "\uD6E0\uD6FC\uD718\uD734\uD750\uD76C\uD788" \
    "][\u11A8-\u11C2]" \
    "|#{''  # decomposed Hangul syllables
    }" \
    "[\u1100-\u1112][\u1161-\u1175][\u11A8-\u11C2]?" \
  "".freeze
  REGEXP_K_STRING = "" \
    "[\u00A0\u00A8\u00AA\u00AF\u00B2-\u00B5\u00B8-\u00BA\u00BC-\u00BE\u0132\u0133" \
    "\u013F\u0140\u0149\u017F\u01C4-\u01CC\u01F1-\u01F3\u02B0-\u02B8\u02D8-\u02DD\u02E0-\u02E4" \
    "\u037A\u0384\u0385\u03D0-\u03D6\u03F0-\u03F2\u03F4\u03F5\u03F9\u0587\u0675-\u0678" \
    "\u0E33\u0EB3\u0EDC\u0EDD\u0F0C\u0F77\u0F79\u10FC\u1D2C-\u1D2E" \
    "\u1D30-\u1D3A\u1D3C-\u1D4D\u1D4F-\u1D6A\u1D78\u1D9B-\u1DBF\u1E9A\u1E9B\u1FBD\u1FBF-\u1FC1" \
    "\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED\u1FEE\u1FFD\u1FFE\u2000-\u200A\u2011\u2017\u2024-\u2026" \
    "\u202F\u2033\u2034\u2036\u2037\u203C\u203E\u2047-\u2049\u2057\u205F" \
    "\u2070\u2071\u2074-\u208E\u2090-\u209C\u20A8\u2100-\u2103\u2105-\u2107\u2109-\u2113\u2115\u2116" \
    "\u2119-\u211D\u2120-\u2122\u2124\u2128\u212C\u212D\u212F-\u2131\u2133-\u2139\u213B-\u2140" \
    "\u2145-\u2149\u2150-\u217F\u2189\u222C\u222D\u222F\u2230\u2460-\u24EA\u2A0C\u2A74-\u2A76" \
    "\u2C7C\u2C7D\u2D6F\u2E9F\u2EF3\u2F00-\u2FD5\u3000\u3036\u3038-\u303A" \
    "\u309B\u309C\u309F\u30FF\u3131-\u318E\u3192-\u319F\u3200-\u321E\u3220-\u3247\u3250-\u327E" \
    "\u3280-\u32FE\u3300-\u33FF\uA69C\uA69D\uA770\uA7F8\uA7F9\uAB5C-\uAB5F\uFB00-\uFB06\uFB13-\uFB17" \
    "\uFB20-\uFB29\uFB4F-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE10-\uFE19\uFE30-\uFE44" \
    "\uFE47-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFE70-\uFE72\uFE74\uFE76-\uFEFC\uFF01-\uFFBE\uFFC2-\uFFC7" \
    "\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\uFFE0-\uFFE6\uFFE8-\uFFEE\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}" \
    "\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}" \
    "\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}" \
    "\u{1D6A8}-\u{1D7CB}\u{1D7CE}-\u{1D7FF}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}" \
    "\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}" \
    "\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}" \
    "\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}" \
    "\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}\u{1F100}-\u{1F10A}\u{1F110}-\u{1F12E}\u{1F130}-\u{1F14F}\u{1F16A}\u{1F16B}\u{1F190}" \
    "\u{1F200}-\u{1F202}\u{1F210}-\u{1F23A}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}" \
    "]" \
  "".freeze

  class_table = {
    "\u0300"=>230, "\u0301"=>230, "\u0302"=>230, "\u0303"=>230, "\u0304"=>230, "\u0305"=>230, "\u0306"=>230, "\u0307"=>230,
    "\u0308"=>230, "\u0309"=>230, "\u030A"=>230, "\u030B"=>230, "\u030C"=>230, "\u030D"=>230, "\u030E"=>230, "\u030F"=>230,
    "\u0310"=>230, "\u0311"=>230, "\u0312"=>230, "\u0313"=>230, "\u0314"=>230, "\u0315"=>232, "\u0316"=>220, "\u0317"=>220,
    "\u0318"=>220, "\u0319"=>220, "\u031A"=>232, "\u031B"=>216, "\u031C"=>220, "\u031D"=>220, "\u031E"=>220, "\u031F"=>220,
    "\u0320"=>220, "\u0321"=>202, "\u0322"=>202, "\u0323"=>220, "\u0324"=>220, "\u0325"=>220, "\u0326"=>220, "\u0327"=>202,
    "\u0328"=>202, "\u0329"=>220, "\u032A"=>220, "\u032B"=>220, "\u032C"=>220, "\u032D"=>220, "\u032E"=>220, "\u032F"=>220,
    "\u0330"=>220, "\u0331"=>220, "\u0332"=>220, "\u0333"=>220, "\u0334"=>1, "\u0335"=>1, "\u0336"=>1, "\u0337"=>1,
    "\u0338"=>1, "\u0339"=>220, "\u033A"=>220, "\u033B"=>220, "\u033C"=>220, "\u033D"=>230, "\u033E"=>230, "\u033F"=>230,
    "\u0340"=>230, "\u0341"=>230, "\u0342"=>230, "\u0343"=>230, "\u0344"=>230, "\u0345"=>240, "\u0346"=>230, "\u0347"=>220,
    "\u0348"=>220, "\u0349"=>220, "\u034A"=>230, "\u034B"=>230, "\u034C"=>230, "\u034D"=>220, "\u034E"=>220, "\u0350"=>230,
    "\u0351"=>230, "\u0352"=>230, "\u0353"=>220, "\u0354"=>220, "\u0355"=>220, "\u0356"=>220, "\u0357"=>230, "\u0358"=>232,
    "\u0359"=>220, "\u035A"=>220, "\u035B"=>230, "\u035C"=>233, "\u035D"=>234, "\u035E"=>234, "\u035F"=>233, "\u0360"=>234,
    "\u0361"=>234, "\u0362"=>233, "\u0363"=>230, "\u0364"=>230, "\u0365"=>230, "\u0366"=>230, "\u0367"=>230, "\u0368"=>230,
    "\u0369"=>230, "\u036A"=>230, "\u036B"=>230, "\u036C"=>230, "\u036D"=>230, "\u036E"=>230, "\u036F"=>230, "\u0483"=>230,
    "\u0484"=>230, "\u0485"=>230, "\u0486"=>230, "\u0487"=>230, "\u0591"=>220, "\u0592"=>230, "\u0593"=>230, "\u0594"=>230,
    "\u0595"=>230, "\u0596"=>220, "\u0597"=>230, "\u0598"=>230, "\u0599"=>230, "\u059A"=>222, "\u059B"=>220, "\u059C"=>230,
    "\u059D"=>230, "\u059E"=>230, "\u059F"=>230, "\u05A0"=>230, "\u05A1"=>230, "\u05A2"=>220, "\u05A3"=>220, "\u05A4"=>220,
    "\u05A5"=>220, "\u05A6"=>220, "\u05A7"=>220, "\u05A8"=>230, "\u05A9"=>230, "\u05AA"=>220, "\u05AB"=>230, "\u05AC"=>230,
    "\u05AD"=>222, "\u05AE"=>228, "\u05AF"=>230, "\u05B0"=>10, "\u05B1"=>11, "\u05B2"=>12, "\u05B3"=>13, "\u05B4"=>14,
    "\u05B5"=>15, "\u05B6"=>16, "\u05B7"=>17, "\u05B8"=>18, "\u05B9"=>19, "\u05BA"=>19, "\u05BB"=>20, "\u05BC"=>21,
    "\u05BD"=>22, "\u05BF"=>23, "\u05C1"=>24, "\u05C2"=>25, "\u05C4"=>230, "\u05C5"=>220, "\u05C7"=>18, "\u0610"=>230,
    "\u0611"=>230, "\u0612"=>230, "\u0613"=>230, "\u0614"=>230, "\u0615"=>230, "\u0616"=>230, "\u0617"=>230, "\u0618"=>30,
    "\u0619"=>31, "\u061A"=>32, "\u064B"=>27, "\u064C"=>28, "\u064D"=>29, "\u064E"=>30, "\u064F"=>31, "\u0650"=>32,
    "\u0651"=>33, "\u0652"=>34, "\u0653"=>230, "\u0654"=>230, "\u0655"=>220, "\u0656"=>220, "\u0657"=>230, "\u0658"=>230,
    "\u0659"=>230, "\u065A"=>230, "\u065B"=>230, "\u065C"=>220, "\u065D"=>230, "\u065E"=>230, "\u065F"=>220, "\u0670"=>35,
    "\u06D6"=>230, "\u06D7"=>230, "\u06D8"=>230, "\u06D9"=>230, "\u06DA"=>230, "\u06DB"=>230, "\u06DC"=>230, "\u06DF"=>230,
    "\u06E0"=>230, "\u06E1"=>230, "\u06E2"=>230, "\u06E3"=>220, "\u06E4"=>230, "\u06E7"=>230, "\u06E8"=>230, "\u06EA"=>220,
    "\u06EB"=>230, "\u06EC"=>230, "\u06ED"=>220, "\u0711"=>36, "\u0730"=>230, "\u0731"=>220, "\u0732"=>230, "\u0733"=>230,
    "\u0734"=>220, "\u0735"=>230, "\u0736"=>230, "\u0737"=>220, "\u0738"=>220, "\u0739"=>220, "\u073A"=>230, "\u073B"=>220,
    "\u073C"=>220, "\u073D"=>230, "\u073E"=>220, "\u073F"=>230, "\u0740"=>230, "\u0741"=>230, "\u0742"=>220, "\u0743"=>230,
    "\u0744"=>220, "\u0745"=>230, "\u0746"=>220, "\u0747"=>230, "\u0748"=>220, "\u0749"=>230, "\u074A"=>230, "\u07EB"=>230,
    "\u07EC"=>230, "\u07ED"=>230, "\u07EE"=>230, "\u07EF"=>230, "\u07F0"=>230, "\u07F1"=>230, "\u07F2"=>220, "\u07F3"=>230,
    "\u0816"=>230, "\u0817"=>230, "\u0818"=>230, "\u0819"=>230, "\u081B"=>230, "\u081C"=>230, "\u081D"=>230, "\u081E"=>230,
    "\u081F"=>230, "\u0820"=>230, "\u0821"=>230, "\u0822"=>230, "\u0823"=>230, "\u0825"=>230, "\u0826"=>230, "\u0827"=>230,
    "\u0829"=>230, "\u082A"=>230, "\u082B"=>230, "\u082C"=>230, "\u082D"=>230, "\u0859"=>220, "\u085A"=>220, "\u085B"=>220,
    "\u08E4"=>230, "\u08E5"=>230, "\u08E6"=>220, "\u08E7"=>230, "\u08E8"=>230, "\u08E9"=>220, "\u08EA"=>230, "\u08EB"=>230,
    "\u08EC"=>230, "\u08ED"=>220, "\u08EE"=>220, "\u08EF"=>220, "\u08F0"=>27, "\u08F1"=>28, "\u08F2"=>29, "\u08F3"=>230,
    "\u08F4"=>230, "\u08F5"=>230, "\u08F6"=>220, "\u08F7"=>230, "\u08F8"=>230, "\u08F9"=>220, "\u08FA"=>220, "\u08FB"=>230,
    "\u08FC"=>230, "\u08FD"=>230, "\u08FE"=>230, "\u08FF"=>230, "\u093C"=>7, "\u094D"=>9, "\u0951"=>230, "\u0952"=>220,
    "\u0953"=>230, "\u0954"=>230, "\u09BC"=>7, "\u09CD"=>9, "\u0A3C"=>7, "\u0A4D"=>9, "\u0ABC"=>7, "\u0ACD"=>9,
    "\u0B3C"=>7, "\u0B4D"=>9, "\u0BCD"=>9, "\u0C4D"=>9, "\u0C55"=>84, "\u0C56"=>91, "\u0CBC"=>7, "\u0CCD"=>9,
    "\u0D4D"=>9, "\u0DCA"=>9, "\u0E38"=>103, "\u0E39"=>103, "\u0E3A"=>9, "\u0E48"=>107, "\u0E49"=>107, "\u0E4A"=>107,
    "\u0E4B"=>107, "\u0EB8"=>118, "\u0EB9"=>118, "\u0EC8"=>122, "\u0EC9"=>122, "\u0ECA"=>122, "\u0ECB"=>122, "\u0F18"=>220,
    "\u0F19"=>220, "\u0F35"=>220, "\u0F37"=>220, "\u0F39"=>216, "\u0F71"=>129, "\u0F72"=>130, "\u0F74"=>132, "\u0F7A"=>130,
    "\u0F7B"=>130, "\u0F7C"=>130, "\u0F7D"=>130, "\u0F80"=>130, "\u0F82"=>230, "\u0F83"=>230, "\u0F84"=>9, "\u0F86"=>230,
    "\u0F87"=>230, "\u0FC6"=>220, "\u1037"=>7, "\u1039"=>9, "\u103A"=>9, "\u108D"=>220, "\u135D"=>230, "\u135E"=>230,
    "\u135F"=>230, "\u1714"=>9, "\u1734"=>9, "\u17D2"=>9, "\u17DD"=>230, "\u18A9"=>228, "\u1939"=>222, "\u193A"=>230,
    "\u193B"=>220, "\u1A17"=>230, "\u1A18"=>220, "\u1A60"=>9, "\u1A75"=>230, "\u1A76"=>230, "\u1A77"=>230, "\u1A78"=>230,
    "\u1A79"=>230, "\u1A7A"=>230, "\u1A7B"=>230, "\u1A7C"=>230, "\u1A7F"=>220, "\u1AB0"=>230, "\u1AB1"=>230, "\u1AB2"=>230,
    "\u1AB3"=>230, "\u1AB4"=>230, "\u1AB5"=>220, "\u1AB6"=>220, "\u1AB7"=>220, "\u1AB8"=>220, "\u1AB9"=>220, "\u1ABA"=>220,
    "\u1ABB"=>230, "\u1ABC"=>230, "\u1ABD"=>220, "\u1B34"=>7, "\u1B44"=>9, "\u1B6B"=>230, "\u1B6C"=>220, "\u1B6D"=>230,
    "\u1B6E"=>230, "\u1B6F"=>230, "\u1B70"=>230, "\u1B71"=>230, "\u1B72"=>230, "\u1B73"=>230, "\u1BAA"=>9, "\u1BAB"=>9,
    "\u1BE6"=>7, "\u1BF2"=>9, "\u1BF3"=>9, "\u1C37"=>7, "\u1CD0"=>230, "\u1CD1"=>230, "\u1CD2"=>230, "\u1CD4"=>1,
    "\u1CD5"=>220, "\u1CD6"=>220, "\u1CD7"=>220, "\u1CD8"=>220, "\u1CD9"=>220, "\u1CDA"=>230, "\u1CDB"=>230, "\u1CDC"=>220,
    "\u1CDD"=>220, "\u1CDE"=>220, "\u1CDF"=>220, "\u1CE0"=>230, "\u1CE2"=>1, "\u1CE3"=>1, "\u1CE4"=>1, "\u1CE5"=>1,
    "\u1CE6"=>1, "\u1CE7"=>1, "\u1CE8"=>1, "\u1CED"=>220, "\u1CF4"=>230, "\u1CF8"=>230, "\u1CF9"=>230, "\u1DC0"=>230,
    "\u1DC1"=>230, "\u1DC2"=>220, "\u1DC3"=>230, "\u1DC4"=>230, "\u1DC5"=>230, "\u1DC6"=>230, "\u1DC7"=>230, "\u1DC8"=>230,
    "\u1DC9"=>230, "\u1DCA"=>220, "\u1DCB"=>230, "\u1DCC"=>230, "\u1DCD"=>234, "\u1DCE"=>214, "\u1DCF"=>220, "\u1DD0"=>202,
    "\u1DD1"=>230, "\u1DD2"=>230, "\u1DD3"=>230, "\u1DD4"=>230, "\u1DD5"=>230, "\u1DD6"=>230, "\u1DD7"=>230, "\u1DD8"=>230,
    "\u1DD9"=>230, "\u1DDA"=>230, "\u1DDB"=>230, "\u1DDC"=>230, "\u1DDD"=>230, "\u1DDE"=>230, "\u1DDF"=>230, "\u1DE0"=>230,
    "\u1DE1"=>230, "\u1DE2"=>230, "\u1DE3"=>230, "\u1DE4"=>230, "\u1DE5"=>230, "\u1DE6"=>230, "\u1DE7"=>230, "\u1DE8"=>230,
    "\u1DE9"=>230, "\u1DEA"=>230, "\u1DEB"=>230, "\u1DEC"=>230, "\u1DED"=>230, "\u1DEE"=>230, "\u1DEF"=>230, "\u1DF0"=>230,
    "\u1DF1"=>230, "\u1DF2"=>230, "\u1DF3"=>230, "\u1DF4"=>230, "\u1DF5"=>230, "\u1DFC"=>233, "\u1DFD"=>220, "\u1DFE"=>230,
    "\u1DFF"=>220, "\u20D0"=>230, "\u20D1"=>230, "\u20D2"=>1, "\u20D3"=>1, "\u20D4"=>230, "\u20D5"=>230, "\u20D6"=>230,
    "\u20D7"=>230, "\u20D8"=>1, "\u20D9"=>1, "\u20DA"=>1, "\u20DB"=>230, "\u20DC"=>230, "\u20E1"=>230, "\u20E5"=>1,
    "\u20E6"=>1, "\u20E7"=>230, "\u20E8"=>220, "\u20E9"=>230, "\u20EA"=>1, "\u20EB"=>1, "\u20EC"=>220, "\u20ED"=>220,
    "\u20EE"=>220, "\u20EF"=>220, "\u20F0"=>230, "\u2CEF"=>230, "\u2CF0"=>230, "\u2CF1"=>230, "\u2D7F"=>9, "\u2DE0"=>230,
    "\u2DE1"=>230, "\u2DE2"=>230, "\u2DE3"=>230, "\u2DE4"=>230, "\u2DE5"=>230, "\u2DE6"=>230, "\u2DE7"=>230, "\u2DE8"=>230,
    "\u2DE9"=>230, "\u2DEA"=>230, "\u2DEB"=>230, "\u2DEC"=>230, "\u2DED"=>230, "\u2DEE"=>230, "\u2DEF"=>230, "\u2DF0"=>230,
    "\u2DF1"=>230, "\u2DF2"=>230, "\u2DF3"=>230, "\u2DF4"=>230, "\u2DF5"=>230, "\u2DF6"=>230, "\u2DF7"=>230, "\u2DF8"=>230,
    "\u2DF9"=>230, "\u2DFA"=>230, "\u2DFB"=>230, "\u2DFC"=>230, "\u2DFD"=>230, "\u2DFE"=>230, "\u2DFF"=>230, "\u302A"=>218,
    "\u302B"=>228, "\u302C"=>232, "\u302D"=>222, "\u302E"=>224, "\u302F"=>224, "\u3099"=>8, "\u309A"=>8, "\uA66F"=>230,
    "\uA674"=>230, "\uA675"=>230, "\uA676"=>230, "\uA677"=>230, "\uA678"=>230, "\uA679"=>230, "\uA67A"=>230, "\uA67B"=>230,
    "\uA67C"=>230, "\uA67D"=>230, "\uA69F"=>230, "\uA6F0"=>230, "\uA6F1"=>230, "\uA806"=>9, "\uA8C4"=>9, "\uA8E0"=>230,
    "\uA8E1"=>230, "\uA8E2"=>230, "\uA8E3"=>230, "\uA8E4"=>230, "\uA8E5"=>230, "\uA8E6"=>230, "\uA8E7"=>230, "\uA8E8"=>230,
    "\uA8E9"=>230, "\uA8EA"=>230, "\uA8EB"=>230, "\uA8EC"=>230, "\uA8ED"=>230, "\uA8EE"=>230, "\uA8EF"=>230, "\uA8F0"=>230,
    "\uA8F1"=>230, "\uA92B"=>220, "\uA92C"=>220, "\uA92D"=>220, "\uA953"=>9, "\uA9B3"=>7, "\uA9C0"=>9, "\uAAB0"=>230,
    "\uAAB2"=>230, "\uAAB3"=>230, "\uAAB4"=>220, "\uAAB7"=>230, "\uAAB8"=>230, "\uAABE"=>230, "\uAABF"=>230, "\uAAC1"=>230,
    "\uAAF6"=>9, "\uABED"=>9, "\uFB1E"=>26, "\uFE20"=>230, "\uFE21"=>230, "\uFE22"=>230, "\uFE23"=>230, "\uFE24"=>230,
    "\uFE25"=>230, "\uFE26"=>230, "\uFE27"=>220, "\uFE28"=>220, "\uFE29"=>220, "\uFE2A"=>220, "\uFE2B"=>220, "\uFE2C"=>220,
    "\uFE2D"=>220, "\u{101FD}"=>220, "\u{102E0}"=>220, "\u{10376}"=>230, "\u{10377}"=>230, "\u{10378}"=>230, "\u{10379}"=>230, "\u{1037A}"=>230,
    "\u{10A0D}"=>220, "\u{10A0F}"=>230, "\u{10A38}"=>230, "\u{10A39}"=>1, "\u{10A3A}"=>220, "\u{10A3F}"=>9, "\u{10AE5}"=>230, "\u{10AE6}"=>220,
    "\u{11046}"=>9, "\u{1107F}"=>9, "\u{110B9}"=>9, "\u{110BA}"=>7, "\u{11100}"=>230, "\u{11101}"=>230, "\u{11102}"=>230, "\u{11133}"=>9,
    "\u{11134}"=>9, "\u{11173}"=>7, "\u{111C0}"=>9, "\u{11235}"=>9, "\u{11236}"=>7, "\u{112E9}"=>7, "\u{112EA}"=>9, "\u{1133C}"=>7,
    "\u{1134D}"=>9, "\u{11366}"=>230, "\u{11367}"=>230, "\u{11368}"=>230, "\u{11369}"=>230, "\u{1136A}"=>230, "\u{1136B}"=>230, "\u{1136C}"=>230,
    "\u{11370}"=>230, "\u{11371}"=>230, "\u{11372}"=>230, "\u{11373}"=>230, "\u{11374}"=>230, "\u{114C2}"=>9, "\u{114C3}"=>7, "\u{115BF}"=>9,
    "\u{115C0}"=>7, "\u{1163F}"=>9, "\u{116B6}"=>9, "\u{116B7}"=>7, "\u{16AF0}"=>1, "\u{16AF1}"=>1, "\u{16AF2}"=>1, "\u{16AF3}"=>1,
    "\u{16AF4}"=>1, "\u{16B30}"=>230, "\u{16B31}"=>230, "\u{16B32}"=>230, "\u{16B33}"=>230, "\u{16B34}"=>230, "\u{16B35}"=>230, "\u{16B36}"=>230,
    "\u{1BC9E}"=>1, "\u{1D165}"=>216, "\u{1D166}"=>216, "\u{1D167}"=>1, "\u{1D168}"=>1, "\u{1D169}"=>1, "\u{1D16D}"=>226, "\u{1D16E}"=>216,
    "\u{1D16F}"=>216, "\u{1D170}"=>216, "\u{1D171}"=>216, "\u{1D172}"=>216, "\u{1D17B}"=>220, "\u{1D17C}"=>220, "\u{1D17D}"=>220, "\u{1D17E}"=>220,
    "\u{1D17F}"=>220, "\u{1D180}"=>220, "\u{1D181}"=>220, "\u{1D182}"=>220, "\u{1D185}"=>230, "\u{1D186}"=>230, "\u{1D187}"=>230, "\u{1D188}"=>230,
    "\u{1D189}"=>230, "\u{1D18A}"=>220, "\u{1D18B}"=>220, "\u{1D1AA}"=>230, "\u{1D1AB}"=>230, "\u{1D1AC}"=>230, "\u{1D1AD}"=>230, "\u{1D242}"=>230,
    "\u{1D243}"=>230, "\u{1D244}"=>230, "\u{1E8D0}"=>220, "\u{1E8D1}"=>220, "\u{1E8D2}"=>220, "\u{1E8D3}"=>220, "\u{1E8D4}"=>220, "\u{1E8D5}"=>220,
    "\u{1E8D6}"=>220,
  }
  class_table.default = 0
  CLASS_TABLE = class_table.freeze

  DECOMPOSITION_TABLE = {
    "\u00C0"=>"A\u0300".freeze, "\u00C1"=>"A\u0301".freeze, "\u00C2"=>"A\u0302".freeze, "\u00C3"=>"A\u0303".freeze, "\u00C4"=>"A\u0308".freeze, "\u00C5"=>"A\u030A".freeze, "\u00C7"=>"C\u0327".freeze, "\u00C8"=>"E\u0300".freeze,
    "\u00C9"=>"E\u0301".freeze, "\u00CA"=>"E\u0302".freeze, "\u00CB"=>"E\u0308".freeze, "\u00CC"=>"I\u0300".freeze, "\u00CD"=>"I\u0301".freeze, "\u00CE"=>"I\u0302".freeze, "\u00CF"=>"I\u0308".freeze, "\u00D1"=>"N\u0303".freeze,
    "\u00D2"=>"O\u0300".freeze, "\u00D3"=>"O\u0301".freeze, "\u00D4"=>"O\u0302".freeze, "\u00D5"=>"O\u0303".freeze, "\u00D6"=>"O\u0308".freeze, "\u00D9"=>"U\u0300".freeze, "\u00DA"=>"U\u0301".freeze, "\u00DB"=>"U\u0302".freeze,
    "\u00DC"=>"U\u0308".freeze, "\u00DD"=>"Y\u0301".freeze, "\u00E0"=>"a\u0300".freeze, "\u00E1"=>"a\u0301".freeze, "\u00E2"=>"a\u0302".freeze, "\u00E3"=>"a\u0303".freeze, "\u00E4"=>"a\u0308".freeze, "\u00E5"=>"a\u030A".freeze,
    "\u00E7"=>"c\u0327".freeze, "\u00E8"=>"e\u0300".freeze, "\u00E9"=>"e\u0301".freeze, "\u00EA"=>"e\u0302".freeze, "\u00EB"=>"e\u0308".freeze, "\u00EC"=>"i\u0300".freeze, "\u00ED"=>"i\u0301".freeze, "\u00EE"=>"i\u0302".freeze,
    "\u00EF"=>"i\u0308".freeze, "\u00F1"=>"n\u0303".freeze, "\u00F2"=>"o\u0300".freeze, "\u00F3"=>"o\u0301".freeze, "\u00F4"=>"o\u0302".freeze, "\u00F5"=>"o\u0303".freeze, "\u00F6"=>"o\u0308".freeze, "\u00F9"=>"u\u0300".freeze,
    "\u00FA"=>"u\u0301".freeze, "\u00FB"=>"u\u0302".freeze, "\u00FC"=>"u\u0308".freeze, "\u00FD"=>"y\u0301".freeze, "\u00FF"=>"y\u0308".freeze, "\u0100"=>"A\u0304".freeze, "\u0101"=>"a\u0304".freeze, "\u0102"=>"A\u0306".freeze,
    "\u0103"=>"a\u0306".freeze, "\u0104"=>"A\u0328".freeze, "\u0105"=>"a\u0328".freeze, "\u0106"=>"C\u0301".freeze, "\u0107"=>"c\u0301".freeze, "\u0108"=>"C\u0302".freeze, "\u0109"=>"c\u0302".freeze, "\u010A"=>"C\u0307".freeze,
    "\u010B"=>"c\u0307".freeze, "\u010C"=>"C\u030C".freeze, "\u010D"=>"c\u030C".freeze, "\u010E"=>"D\u030C".freeze, "\u010F"=>"d\u030C".freeze, "\u0112"=>"E\u0304".freeze, "\u0113"=>"e\u0304".freeze, "\u0114"=>"E\u0306".freeze,
    "\u0115"=>"e\u0306".freeze, "\u0116"=>"E\u0307".freeze, "\u0117"=>"e\u0307".freeze, "\u0118"=>"E\u0328".freeze, "\u0119"=>"e\u0328".freeze, "\u011A"=>"E\u030C".freeze, "\u011B"=>"e\u030C".freeze, "\u011C"=>"G\u0302".freeze,
    "\u011D"=>"g\u0302".freeze, "\u011E"=>"G\u0306".freeze, "\u011F"=>"g\u0306".freeze, "\u0120"=>"G\u0307".freeze, "\u0121"=>"g\u0307".freeze, "\u0122"=>"G\u0327".freeze, "\u0123"=>"g\u0327".freeze, "\u0124"=>"H\u0302".freeze,
    "\u0125"=>"h\u0302".freeze, "\u0128"=>"I\u0303".freeze, "\u0129"=>"i\u0303".freeze, "\u012A"=>"I\u0304".freeze, "\u012B"=>"i\u0304".freeze, "\u012C"=>"I\u0306".freeze, "\u012D"=>"i\u0306".freeze, "\u012E"=>"I\u0328".freeze,
    "\u012F"=>"i\u0328".freeze, "\u0130"=>"I\u0307".freeze, "\u0134"=>"J\u0302".freeze, "\u0135"=>"j\u0302".freeze, "\u0136"=>"K\u0327".freeze, "\u0137"=>"k\u0327".freeze, "\u0139"=>"L\u0301".freeze, "\u013A"=>"l\u0301".freeze,
    "\u013B"=>"L\u0327".freeze, "\u013C"=>"l\u0327".freeze, "\u013D"=>"L\u030C".freeze, "\u013E"=>"l\u030C".freeze, "\u0143"=>"N\u0301".freeze, "\u0144"=>"n\u0301".freeze, "\u0145"=>"N\u0327".freeze, "\u0146"=>"n\u0327".freeze,
    "\u0147"=>"N\u030C".freeze, "\u0148"=>"n\u030C".freeze, "\u014C"=>"O\u0304".freeze, "\u014D"=>"o\u0304".freeze, "\u014E"=>"O\u0306".freeze, "\u014F"=>"o\u0306".freeze, "\u0150"=>"O\u030B".freeze, "\u0151"=>"o\u030B".freeze,
    "\u0154"=>"R\u0301".freeze, "\u0155"=>"r\u0301".freeze, "\u0156"=>"R\u0327".freeze, "\u0157"=>"r\u0327".freeze, "\u0158"=>"R\u030C".freeze, "\u0159"=>"r\u030C".freeze, "\u015A"=>"S\u0301".freeze, "\u015B"=>"s\u0301".freeze,
    "\u015C"=>"S\u0302".freeze, "\u015D"=>"s\u0302".freeze, "\u015E"=>"S\u0327".freeze, "\u015F"=>"s\u0327".freeze, "\u0160"=>"S\u030C".freeze, "\u0161"=>"s\u030C".freeze, "\u0162"=>"T\u0327".freeze, "\u0163"=>"t\u0327".freeze,
    "\u0164"=>"T\u030C".freeze, "\u0165"=>"t\u030C".freeze, "\u0168"=>"U\u0303".freeze, "\u0169"=>"u\u0303".freeze, "\u016A"=>"U\u0304".freeze, "\u016B"=>"u\u0304".freeze, "\u016C"=>"U\u0306".freeze, "\u016D"=>"u\u0306".freeze,
    "\u016E"=>"U\u030A".freeze, "\u016F"=>"u\u030A".freeze, "\u0170"=>"U\u030B".freeze, "\u0171"=>"u\u030B".freeze, "\u0172"=>"U\u0328".freeze, "\u0173"=>"u\u0328".freeze, "\u0174"=>"W\u0302".freeze, "\u0175"=>"w\u0302".freeze,
    "\u0176"=>"Y\u0302".freeze, "\u0177"=>"y\u0302".freeze, "\u0178"=>"Y\u0308".freeze, "\u0179"=>"Z\u0301".freeze, "\u017A"=>"z\u0301".freeze, "\u017B"=>"Z\u0307".freeze, "\u017C"=>"z\u0307".freeze, "\u017D"=>"Z\u030C".freeze,
    "\u017E"=>"z\u030C".freeze, "\u01A0"=>"O\u031B".freeze, "\u01A1"=>"o\u031B".freeze, "\u01AF"=>"U\u031B".freeze, "\u01B0"=>"u\u031B".freeze, "\u01CD"=>"A\u030C".freeze, "\u01CE"=>"a\u030C".freeze, "\u01CF"=>"I\u030C".freeze,
    "\u01D0"=>"i\u030C".freeze, "\u01D1"=>"O\u030C".freeze, "\u01D2"=>"o\u030C".freeze, "\u01D3"=>"U\u030C".freeze, "\u01D4"=>"u\u030C".freeze, "\u01D5"=>"U\u0308\u0304".freeze, "\u01D6"=>"u\u0308\u0304".freeze, "\u01D7"=>"U\u0308\u0301".freeze,
    "\u01D8"=>"u\u0308\u0301".freeze, "\u01D9"=>"U\u0308\u030C".freeze, "\u01DA"=>"u\u0308\u030C".freeze, "\u01DB"=>"U\u0308\u0300".freeze, "\u01DC"=>"u\u0308\u0300".freeze, "\u01DE"=>"A\u0308\u0304".freeze, "\u01DF"=>"a\u0308\u0304".freeze, "\u01E0"=>"A\u0307\u0304".freeze,
    "\u01E1"=>"a\u0307\u0304".freeze, "\u01E2"=>"\u00C6\u0304".freeze, "\u01E3"=>"\u00E6\u0304".freeze, "\u01E6"=>"G\u030C".freeze, "\u01E7"=>"g\u030C".freeze, "\u01E8"=>"K\u030C".freeze, "\u01E9"=>"k\u030C".freeze, "\u01EA"=>"O\u0328".freeze,
    "\u01EB"=>"o\u0328".freeze, "\u01EC"=>"O\u0328\u0304".freeze, "\u01ED"=>"o\u0328\u0304".freeze, "\u01EE"=>"\u01B7\u030C".freeze, "\u01EF"=>"\u0292\u030C".freeze, "\u01F0"=>"j\u030C".freeze, "\u01F4"=>"G\u0301".freeze, "\u01F5"=>"g\u0301".freeze,
    "\u01F8"=>"N\u0300".freeze, "\u01F9"=>"n\u0300".freeze, "\u01FA"=>"A\u030A\u0301".freeze, "\u01FB"=>"a\u030A\u0301".freeze, "\u01FC"=>"\u00C6\u0301".freeze, "\u01FD"=>"\u00E6\u0301".freeze, "\u01FE"=>"\u00D8\u0301".freeze, "\u01FF"=>"\u00F8\u0301".freeze,
    "\u0200"=>"A\u030F".freeze, "\u0201"=>"a\u030F".freeze, "\u0202"=>"A\u0311".freeze, "\u0203"=>"a\u0311".freeze, "\u0204"=>"E\u030F".freeze, "\u0205"=>"e\u030F".freeze, "\u0206"=>"E\u0311".freeze, "\u0207"=>"e\u0311".freeze,
    "\u0208"=>"I\u030F".freeze, "\u0209"=>"i\u030F".freeze, "\u020A"=>"I\u0311".freeze, "\u020B"=>"i\u0311".freeze, "\u020C"=>"O\u030F".freeze, "\u020D"=>"o\u030F".freeze, "\u020E"=>"O\u0311".freeze, "\u020F"=>"o\u0311".freeze,
    "\u0210"=>"R\u030F".freeze, "\u0211"=>"r\u030F".freeze, "\u0212"=>"R\u0311".freeze, "\u0213"=>"r\u0311".freeze, "\u0214"=>"U\u030F".freeze, "\u0215"=>"u\u030F".freeze, "\u0216"=>"U\u0311".freeze, "\u0217"=>"u\u0311".freeze,
    "\u0218"=>"S\u0326".freeze, "\u0219"=>"s\u0326".freeze, "\u021A"=>"T\u0326".freeze, "\u021B"=>"t\u0326".freeze, "\u021E"=>"H\u030C".freeze, "\u021F"=>"h\u030C".freeze, "\u0226"=>"A\u0307".freeze, "\u0227"=>"a\u0307".freeze,
    "\u0228"=>"E\u0327".freeze, "\u0229"=>"e\u0327".freeze, "\u022A"=>"O\u0308\u0304".freeze, "\u022B"=>"o\u0308\u0304".freeze, "\u022C"=>"O\u0303\u0304".freeze, "\u022D"=>"o\u0303\u0304".freeze, "\u022E"=>"O\u0307".freeze, "\u022F"=>"o\u0307".freeze,
    "\u0230"=>"O\u0307\u0304".freeze, "\u0231"=>"o\u0307\u0304".freeze, "\u0232"=>"Y\u0304".freeze, "\u0233"=>"y\u0304".freeze, "\u0340"=>"\u0300".freeze, "\u0341"=>"\u0301".freeze, "\u0343"=>"\u0313".freeze, "\u0344"=>"\u0308\u0301".freeze,
    "\u0374"=>"\u02B9".freeze, "\u037E"=>";".freeze, "\u0385"=>"\u00A8\u0301".freeze, "\u0386"=>"\u0391\u0301".freeze, "\u0387"=>"\u00B7".freeze, "\u0388"=>"\u0395\u0301".freeze, "\u0389"=>"\u0397\u0301".freeze, "\u038A"=>"\u0399\u0301".freeze,
    "\u038C"=>"\u039F\u0301".freeze, "\u038E"=>"\u03A5\u0301".freeze, "\u038F"=>"\u03A9\u0301".freeze, "\u0390"=>"\u03B9\u0308\u0301".freeze, "\u03AA"=>"\u0399\u0308".freeze, "\u03AB"=>"\u03A5\u0308".freeze, "\u03AC"=>"\u03B1\u0301".freeze, "\u03AD"=>"\u03B5\u0301".freeze,
    "\u03AE"=>"\u03B7\u0301".freeze, "\u03AF"=>"\u03B9\u0301".freeze, "\u03B0"=>"\u03C5\u0308\u0301".freeze, "\u03CA"=>"\u03B9\u0308".freeze, "\u03CB"=>"\u03C5\u0308".freeze, "\u03CC"=>"\u03BF\u0301".freeze, "\u03CD"=>"\u03C5\u0301".freeze, "\u03CE"=>"\u03C9\u0301".freeze,
    "\u03D3"=>"\u03D2\u0301".freeze, "\u03D4"=>"\u03D2\u0308".freeze, "\u0400"=>"\u0415\u0300".freeze, "\u0401"=>"\u0415\u0308".freeze, "\u0403"=>"\u0413\u0301".freeze, "\u0407"=>"\u0406\u0308".freeze, "\u040C"=>"\u041A\u0301".freeze, "\u040D"=>"\u0418\u0300".freeze,
    "\u040E"=>"\u0423\u0306".freeze, "\u0419"=>"\u0418\u0306".freeze, "\u0439"=>"\u0438\u0306".freeze, "\u0450"=>"\u0435\u0300".freeze, "\u0451"=>"\u0435\u0308".freeze, "\u0453"=>"\u0433\u0301".freeze, "\u0457"=>"\u0456\u0308".freeze, "\u045C"=>"\u043A\u0301".freeze,
    "\u045D"=>"\u0438\u0300".freeze, "\u045E"=>"\u0443\u0306".freeze, "\u0476"=>"\u0474\u030F".freeze, "\u0477"=>"\u0475\u030F".freeze, "\u04C1"=>"\u0416\u0306".freeze, "\u04C2"=>"\u0436\u0306".freeze, "\u04D0"=>"\u0410\u0306".freeze, "\u04D1"=>"\u0430\u0306".freeze,
    "\u04D2"=>"\u0410\u0308".freeze, "\u04D3"=>"\u0430\u0308".freeze, "\u04D6"=>"\u0415\u0306".freeze, "\u04D7"=>"\u0435\u0306".freeze, "\u04DA"=>"\u04D8\u0308".freeze, "\u04DB"=>"\u04D9\u0308".freeze, "\u04DC"=>"\u0416\u0308".freeze, "\u04DD"=>"\u0436\u0308".freeze,
    "\u04DE"=>"\u0417\u0308".freeze, "\u04DF"=>"\u0437\u0308".freeze, "\u04E2"=>"\u0418\u0304".freeze, "\u04E3"=>"\u0438\u0304".freeze, "\u04E4"=>"\u0418\u0308".freeze, "\u04E5"=>"\u0438\u0308".freeze, "\u04E6"=>"\u041E\u0308".freeze, "\u04E7"=>"\u043E\u0308".freeze,
    "\u04EA"=>"\u04E8\u0308".freeze, "\u04EB"=>"\u04E9\u0308".freeze, "\u04EC"=>"\u042D\u0308".freeze, "\u04ED"=>"\u044D\u0308".freeze, "\u04EE"=>"\u0423\u0304".freeze, "\u04EF"=>"\u0443\u0304".freeze, "\u04F0"=>"\u0423\u0308".freeze, "\u04F1"=>"\u0443\u0308".freeze,
    "\u04F2"=>"\u0423\u030B".freeze, "\u04F3"=>"\u0443\u030B".freeze, "\u04F4"=>"\u0427\u0308".freeze, "\u04F5"=>"\u0447\u0308".freeze, "\u04F8"=>"\u042B\u0308".freeze, "\u04F9"=>"\u044B\u0308".freeze, "\u0622"=>"\u0627\u0653".freeze, "\u0623"=>"\u0627\u0654".freeze,
    "\u0624"=>"\u0648\u0654".freeze, "\u0625"=>"\u0627\u0655".freeze, "\u0626"=>"\u064A\u0654".freeze, "\u06C0"=>"\u06D5\u0654".freeze, "\u06C2"=>"\u06C1\u0654".freeze, "\u06D3"=>"\u06D2\u0654".freeze, "\u0929"=>"\u0928\u093C".freeze, "\u0931"=>"\u0930\u093C".freeze,
    "\u0934"=>"\u0933\u093C".freeze, "\u0958"=>"\u0915\u093C".freeze, "\u0959"=>"\u0916\u093C".freeze, "\u095A"=>"\u0917\u093C".freeze, "\u095B"=>"\u091C\u093C".freeze, "\u095C"=>"\u0921\u093C".freeze, "\u095D"=>"\u0922\u093C".freeze, "\u095E"=>"\u092B\u093C".freeze,
    "\u095F"=>"\u092F\u093C".freeze, "\u09CB"=>"\u09C7\u09BE".freeze, "\u09CC"=>"\u09C7\u09D7".freeze, "\u09DC"=>"\u09A1\u09BC".freeze, "\u09DD"=>"\u09A2\u09BC".freeze, "\u09DF"=>"\u09AF\u09BC".freeze, "\u0A33"=>"\u0A32\u0A3C".freeze, "\u0A36"=>"\u0A38\u0A3C".freeze,
    "\u0A59"=>"\u0A16\u0A3C".freeze, "\u0A5A"=>"\u0A17\u0A3C".freeze, "\u0A5B"=>"\u0A1C\u0A3C".freeze, "\u0A5E"=>"\u0A2B\u0A3C".freeze, "\u0B48"=>"\u0B47\u0B56".freeze, "\u0B4B"=>"\u0B47\u0B3E".freeze, "\u0B4C"=>"\u0B47\u0B57".freeze, "\u0B5C"=>"\u0B21\u0B3C".freeze,
    "\u0B5D"=>"\u0B22\u0B3C".freeze, "\u0B94"=>"\u0B92\u0BD7".freeze, "\u0BCA"=>"\u0BC6\u0BBE".freeze, "\u0BCB"=>"\u0BC7\u0BBE".freeze, "\u0BCC"=>"\u0BC6\u0BD7".freeze, "\u0C48"=>"\u0C46\u0C56".freeze, "\u0CC0"=>"\u0CBF\u0CD5".freeze, "\u0CC7"=>"\u0CC6\u0CD5".freeze,
    "\u0CC8"=>"\u0CC6\u0CD6".freeze, "\u0CCA"=>"\u0CC6\u0CC2".freeze, "\u0CCB"=>"\u0CC6\u0CC2\u0CD5".freeze, "\u0D4A"=>"\u0D46\u0D3E".freeze, "\u0D4B"=>"\u0D47\u0D3E".freeze, "\u0D4C"=>"\u0D46\u0D57".freeze, "\u0DDA"=>"\u0DD9\u0DCA".freeze, "\u0DDC"=>"\u0DD9\u0DCF".freeze,
    "\u0DDD"=>"\u0DD9\u0DCF\u0DCA".freeze, "\u0DDE"=>"\u0DD9\u0DDF".freeze, "\u0F43"=>"\u0F42\u0FB7".freeze, "\u0F4D"=>"\u0F4C\u0FB7".freeze, "\u0F52"=>"\u0F51\u0FB7".freeze, "\u0F57"=>"\u0F56\u0FB7".freeze, "\u0F5C"=>"\u0F5B\u0FB7".freeze, "\u0F69"=>"\u0F40\u0FB5".freeze,
    "\u0F73"=>"\u0F71\u0F72".freeze, "\u0F75"=>"\u0F71\u0F74".freeze, "\u0F76"=>"\u0FB2\u0F80".freeze, "\u0F78"=>"\u0FB3\u0F80".freeze, "\u0F81"=>"\u0F71\u0F80".freeze, "\u0F93"=>"\u0F92\u0FB7".freeze, "\u0F9D"=>"\u0F9C\u0FB7".freeze, "\u0FA2"=>"\u0FA1\u0FB7".freeze,
    "\u0FA7"=>"\u0FA6\u0FB7".freeze, "\u0FAC"=>"\u0FAB\u0FB7".freeze, "\u0FB9"=>"\u0F90\u0FB5".freeze, "\u1026"=>"\u1025\u102E".freeze, "\u1B06"=>"\u1B05\u1B35".freeze, "\u1B08"=>"\u1B07\u1B35".freeze, "\u1B0A"=>"\u1B09\u1B35".freeze, "\u1B0C"=>"\u1B0B\u1B35".freeze,
    "\u1B0E"=>"\u1B0D\u1B35".freeze, "\u1B12"=>"\u1B11\u1B35".freeze, "\u1B3B"=>"\u1B3A\u1B35".freeze, "\u1B3D"=>"\u1B3C\u1B35".freeze, "\u1B40"=>"\u1B3E\u1B35".freeze, "\u1B41"=>"\u1B3F\u1B35".freeze, "\u1B43"=>"\u1B42\u1B35".freeze, "\u1E00"=>"A\u0325".freeze,
    "\u1E01"=>"a\u0325".freeze, "\u1E02"=>"B\u0307".freeze, "\u1E03"=>"b\u0307".freeze, "\u1E04"=>"B\u0323".freeze, "\u1E05"=>"b\u0323".freeze, "\u1E06"=>"B\u0331".freeze, "\u1E07"=>"b\u0331".freeze, "\u1E08"=>"C\u0327\u0301".freeze,
    "\u1E09"=>"c\u0327\u0301".freeze, "\u1E0A"=>"D\u0307".freeze, "\u1E0B"=>"d\u0307".freeze, "\u1E0C"=>"D\u0323".freeze, "\u1E0D"=>"d\u0323".freeze, "\u1E0E"=>"D\u0331".freeze, "\u1E0F"=>"d\u0331".freeze, "\u1E10"=>"D\u0327".freeze,
    "\u1E11"=>"d\u0327".freeze, "\u1E12"=>"D\u032D".freeze, "\u1E13"=>"d\u032D".freeze, "\u1E14"=>"E\u0304\u0300".freeze, "\u1E15"=>"e\u0304\u0300".freeze, "\u1E16"=>"E\u0304\u0301".freeze, "\u1E17"=>"e\u0304\u0301".freeze, "\u1E18"=>"E\u032D".freeze,
    "\u1E19"=>"e\u032D".freeze, "\u1E1A"=>"E\u0330".freeze, "\u1E1B"=>"e\u0330".freeze, "\u1E1C"=>"E\u0327\u0306".freeze, "\u1E1D"=>"e\u0327\u0306".freeze, "\u1E1E"=>"F\u0307".freeze, "\u1E1F"=>"f\u0307".freeze, "\u1E20"=>"G\u0304".freeze,
    "\u1E21"=>"g\u0304".freeze, "\u1E22"=>"H\u0307".freeze, "\u1E23"=>"h\u0307".freeze, "\u1E24"=>"H\u0323".freeze, "\u1E25"=>"h\u0323".freeze, "\u1E26"=>"H\u0308".freeze, "\u1E27"=>"h\u0308".freeze, "\u1E28"=>"H\u0327".freeze,
    "\u1E29"=>"h\u0327".freeze, "\u1E2A"=>"H\u032E".freeze, "\u1E2B"=>"h\u032E".freeze, "\u1E2C"=>"I\u0330".freeze, "\u1E2D"=>"i\u0330".freeze, "\u1E2E"=>"I\u0308\u0301".freeze, "\u1E2F"=>"i\u0308\u0301".freeze, "\u1E30"=>"K\u0301".freeze,
    "\u1E31"=>"k\u0301".freeze, "\u1E32"=>"K\u0323".freeze, "\u1E33"=>"k\u0323".freeze, "\u1E34"=>"K\u0331".freeze, "\u1E35"=>"k\u0331".freeze, "\u1E36"=>"L\u0323".freeze, "\u1E37"=>"l\u0323".freeze, "\u1E38"=>"L\u0323\u0304".freeze,
    "\u1E39"=>"l\u0323\u0304".freeze, "\u1E3A"=>"L\u0331".freeze, "\u1E3B"=>"l\u0331".freeze, "\u1E3C"=>"L\u032D".freeze, "\u1E3D"=>"l\u032D".freeze, "\u1E3E"=>"M\u0301".freeze, "\u1E3F"=>"m\u0301".freeze, "\u1E40"=>"M\u0307".freeze,
    "\u1E41"=>"m\u0307".freeze, "\u1E42"=>"M\u0323".freeze, "\u1E43"=>"m\u0323".freeze, "\u1E44"=>"N\u0307".freeze, "\u1E45"=>"n\u0307".freeze, "\u1E46"=>"N\u0323".freeze, "\u1E47"=>"n\u0323".freeze, "\u1E48"=>"N\u0331".freeze,
    "\u1E49"=>"n\u0331".freeze, "\u1E4A"=>"N\u032D".freeze, "\u1E4B"=>"n\u032D".freeze, "\u1E4C"=>"O\u0303\u0301".freeze, "\u1E4D"=>"o\u0303\u0301".freeze, "\u1E4E"=>"O\u0303\u0308".freeze, "\u1E4F"=>"o\u0303\u0308".freeze, "\u1E50"=>"O\u0304\u0300".freeze,
    "\u1E51"=>"o\u0304\u0300".freeze, "\u1E52"=>"O\u0304\u0301".freeze, "\u1E53"=>"o\u0304\u0301".freeze, "\u1E54"=>"P\u0301".freeze, "\u1E55"=>"p\u0301".freeze, "\u1E56"=>"P\u0307".freeze, "\u1E57"=>"p\u0307".freeze, "\u1E58"=>"R\u0307".freeze,
    "\u1E59"=>"r\u0307".freeze, "\u1E5A"=>"R\u0323".freeze, "\u1E5B"=>"r\u0323".freeze, "\u1E5C"=>"R\u0323\u0304".freeze, "\u1E5D"=>"r\u0323\u0304".freeze, "\u1E5E"=>"R\u0331".freeze, "\u1E5F"=>"r\u0331".freeze, "\u1E60"=>"S\u0307".freeze,
    "\u1E61"=>"s\u0307".freeze, "\u1E62"=>"S\u0323".freeze, "\u1E63"=>"s\u0323".freeze, "\u1E64"=>"S\u0301\u0307".freeze, "\u1E65"=>"s\u0301\u0307".freeze, "\u1E66"=>"S\u030C\u0307".freeze, "\u1E67"=>"s\u030C\u0307".freeze, "\u1E68"=>"S\u0323\u0307".freeze,
    "\u1E69"=>"s\u0323\u0307".freeze, "\u1E6A"=>"T\u0307".freeze, "\u1E6B"=>"t\u0307".freeze, "\u1E6C"=>"T\u0323".freeze, "\u1E6D"=>"t\u0323".freeze, "\u1E6E"=>"T\u0331".freeze, "\u1E6F"=>"t\u0331".freeze, "\u1E70"=>"T\u032D".freeze,
    "\u1E71"=>"t\u032D".freeze, "\u1E72"=>"U\u0324".freeze, "\u1E73"=>"u\u0324".freeze, "\u1E74"=>"U\u0330".freeze, "\u1E75"=>"u\u0330".freeze, "\u1E76"=>"U\u032D".freeze, "\u1E77"=>"u\u032D".freeze, "\u1E78"=>"U\u0303\u0301".freeze,
    "\u1E79"=>"u\u0303\u0301".freeze, "\u1E7A"=>"U\u0304\u0308".freeze, "\u1E7B"=>"u\u0304\u0308".freeze, "\u1E7C"=>"V\u0303".freeze, "\u1E7D"=>"v\u0303".freeze, "\u1E7E"=>"V\u0323".freeze, "\u1E7F"=>"v\u0323".freeze, "\u1E80"=>"W\u0300".freeze,
    "\u1E81"=>"w\u0300".freeze, "\u1E82"=>"W\u0301".freeze, "\u1E83"=>"w\u0301".freeze, "\u1E84"=>"W\u0308".freeze, "\u1E85"=>"w\u0308".freeze, "\u1E86"=>"W\u0307".freeze, "\u1E87"=>"w\u0307".freeze, "\u1E88"=>"W\u0323".freeze,
    "\u1E89"=>"w\u0323".freeze, "\u1E8A"=>"X\u0307".freeze, "\u1E8B"=>"x\u0307".freeze, "\u1E8C"=>"X\u0308".freeze, "\u1E8D"=>"x\u0308".freeze, "\u1E8E"=>"Y\u0307".freeze, "\u1E8F"=>"y\u0307".freeze, "\u1E90"=>"Z\u0302".freeze,
    "\u1E91"=>"z\u0302".freeze, "\u1E92"=>"Z\u0323".freeze, "\u1E93"=>"z\u0323".freeze, "\u1E94"=>"Z\u0331".freeze, "\u1E95"=>"z\u0331".freeze, "\u1E96"=>"h\u0331".freeze, "\u1E97"=>"t\u0308".freeze, "\u1E98"=>"w\u030A".freeze,
    "\u1E99"=>"y\u030A".freeze, "\u1E9B"=>"\u017F\u0307".freeze, "\u1EA0"=>"A\u0323".freeze, "\u1EA1"=>"a\u0323".freeze, "\u1EA2"=>"A\u0309".freeze, "\u1EA3"=>"a\u0309".freeze, "\u1EA4"=>"A\u0302\u0301".freeze, "\u1EA5"=>"a\u0302\u0301".freeze,
    "\u1EA6"=>"A\u0302\u0300".freeze, "\u1EA7"=>"a\u0302\u0300".freeze, "\u1EA8"=>"A\u0302\u0309".freeze, "\u1EA9"=>"a\u0302\u0309".freeze, "\u1EAA"=>"A\u0302\u0303".freeze, "\u1EAB"=>"a\u0302\u0303".freeze, "\u1EAC"=>"A\u0323\u0302".freeze, "\u1EAD"=>"a\u0323\u0302".freeze,
    "\u1EAE"=>"A\u0306\u0301".freeze, "\u1EAF"=>"a\u0306\u0301".freeze, "\u1EB0"=>"A\u0306\u0300".freeze, "\u1EB1"=>"a\u0306\u0300".freeze, "\u1EB2"=>"A\u0306\u0309".freeze, "\u1EB3"=>"a\u0306\u0309".freeze, "\u1EB4"=>"A\u0306\u0303".freeze, "\u1EB5"=>"a\u0306\u0303".freeze,
    "\u1EB6"=>"A\u0323\u0306".freeze, "\u1EB7"=>"a\u0323\u0306".freeze, "\u1EB8"=>"E\u0323".freeze, "\u1EB9"=>"e\u0323".freeze, "\u1EBA"=>"E\u0309".freeze, "\u1EBB"=>"e\u0309".freeze, "\u1EBC"=>"E\u0303".freeze, "\u1EBD"=>"e\u0303".freeze,
    "\u1EBE"=>"E\u0302\u0301".freeze, "\u1EBF"=>"e\u0302\u0301".freeze, "\u1EC0"=>"E\u0302\u0300".freeze, "\u1EC1"=>"e\u0302\u0300".freeze, "\u1EC2"=>"E\u0302\u0309".freeze, "\u1EC3"=>"e\u0302\u0309".freeze, "\u1EC4"=>"E\u0302\u0303".freeze, "\u1EC5"=>"e\u0302\u0303".freeze,
    "\u1EC6"=>"E\u0323\u0302".freeze, "\u1EC7"=>"e\u0323\u0302".freeze, "\u1EC8"=>"I\u0309".freeze, "\u1EC9"=>"i\u0309".freeze, "\u1ECA"=>"I\u0323".freeze, "\u1ECB"=>"i\u0323".freeze, "\u1ECC"=>"O\u0323".freeze, "\u1ECD"=>"o\u0323".freeze,
    "\u1ECE"=>"O\u0309".freeze, "\u1ECF"=>"o\u0309".freeze, "\u1ED0"=>"O\u0302\u0301".freeze, "\u1ED1"=>"o\u0302\u0301".freeze, "\u1ED2"=>"O\u0302\u0300".freeze, "\u1ED3"=>"o\u0302\u0300".freeze, "\u1ED4"=>"O\u0302\u0309".freeze, "\u1ED5"=>"o\u0302\u0309".freeze,
    "\u1ED6"=>"O\u0302\u0303".freeze, "\u1ED7"=>"o\u0302\u0303".freeze, "\u1ED8"=>"O\u0323\u0302".freeze, "\u1ED9"=>"o\u0323\u0302".freeze, "\u1EDA"=>"O\u031B\u0301".freeze, "\u1EDB"=>"o\u031B\u0301".freeze, "\u1EDC"=>"O\u031B\u0300".freeze, "\u1EDD"=>"o\u031B\u0300".freeze,
    "\u1EDE"=>"O\u031B\u0309".freeze, "\u1EDF"=>"o\u031B\u0309".freeze, "\u1EE0"=>"O\u031B\u0303".freeze, "\u1EE1"=>"o\u031B\u0303".freeze, "\u1EE2"=>"O\u031B\u0323".freeze, "\u1EE3"=>"o\u031B\u0323".freeze, "\u1EE4"=>"U\u0323".freeze, "\u1EE5"=>"u\u0323".freeze,
    "\u1EE6"=>"U\u0309".freeze, "\u1EE7"=>"u\u0309".freeze, "\u1EE8"=>"U\u031B\u0301".freeze, "\u1EE9"=>"u\u031B\u0301".freeze, "\u1EEA"=>"U\u031B\u0300".freeze, "\u1EEB"=>"u\u031B\u0300".freeze, "\u1EEC"=>"U\u031B\u0309".freeze, "\u1EED"=>"u\u031B\u0309".freeze,
    "\u1EEE"=>"U\u031B\u0303".freeze, "\u1EEF"=>"u\u031B\u0303".freeze, "\u1EF0"=>"U\u031B\u0323".freeze, "\u1EF1"=>"u\u031B\u0323".freeze, "\u1EF2"=>"Y\u0300".freeze, "\u1EF3"=>"y\u0300".freeze, "\u1EF4"=>"Y\u0323".freeze, "\u1EF5"=>"y\u0323".freeze,
    "\u1EF6"=>"Y\u0309".freeze, "\u1EF7"=>"y\u0309".freeze, "\u1EF8"=>"Y\u0303".freeze, "\u1EF9"=>"y\u0303".freeze, "\u1F00"=>"\u03B1\u0313".freeze, "\u1F01"=>"\u03B1\u0314".freeze, "\u1F02"=>"\u03B1\u0313\u0300".freeze, "\u1F03"=>"\u03B1\u0314\u0300".freeze,
    "\u1F04"=>"\u03B1\u0313\u0301".freeze, "\u1F05"=>"\u03B1\u0314\u0301".freeze, "\u1F06"=>"\u03B1\u0313\u0342".freeze, "\u1F07"=>"\u03B1\u0314\u0342".freeze, "\u1F08"=>"\u0391\u0313".freeze, "\u1F09"=>"\u0391\u0314".freeze, "\u1F0A"=>"\u0391\u0313\u0300".freeze, "\u1F0B"=>"\u0391\u0314\u0300".freeze,
    "\u1F0C"=>"\u0391\u0313\u0301".freeze, "\u1F0D"=>"\u0391\u0314\u0301".freeze, "\u1F0E"=>"\u0391\u0313\u0342".freeze, "\u1F0F"=>"\u0391\u0314\u0342".freeze, "\u1F10"=>"\u03B5\u0313".freeze, "\u1F11"=>"\u03B5\u0314".freeze, "\u1F12"=>"\u03B5\u0313\u0300".freeze, "\u1F13"=>"\u03B5\u0314\u0300".freeze,
    "\u1F14"=>"\u03B5\u0313\u0301".freeze, "\u1F15"=>"\u03B5\u0314\u0301".freeze, "\u1F18"=>"\u0395\u0313".freeze, "\u1F19"=>"\u0395\u0314".freeze, "\u1F1A"=>"\u0395\u0313\u0300".freeze, "\u1F1B"=>"\u0395\u0314\u0300".freeze, "\u1F1C"=>"\u0395\u0313\u0301".freeze, "\u1F1D"=>"\u0395\u0314\u0301".freeze,
    "\u1F20"=>"\u03B7\u0313".freeze, "\u1F21"=>"\u03B7\u0314".freeze, "\u1F22"=>"\u03B7\u0313\u0300".freeze, "\u1F23"=>"\u03B7\u0314\u0300".freeze, "\u1F24"=>"\u03B7\u0313\u0301".freeze, "\u1F25"=>"\u03B7\u0314\u0301".freeze, "\u1F26"=>"\u03B7\u0313\u0342".freeze, "\u1F27"=>"\u03B7\u0314\u0342".freeze,
    "\u1F28"=>"\u0397\u0313".freeze, "\u1F29"=>"\u0397\u0314".freeze, "\u1F2A"=>"\u0397\u0313\u0300".freeze, "\u1F2B"=>"\u0397\u0314\u0300".freeze, "\u1F2C"=>"\u0397\u0313\u0301".freeze, "\u1F2D"=>"\u0397\u0314\u0301".freeze, "\u1F2E"=>"\u0397\u0313\u0342".freeze, "\u1F2F"=>"\u0397\u0314\u0342".freeze,
    "\u1F30"=>"\u03B9\u0313".freeze, "\u1F31"=>"\u03B9\u0314".freeze, "\u1F32"=>"\u03B9\u0313\u0300".freeze, "\u1F33"=>"\u03B9\u0314\u0300".freeze, "\u1F34"=>"\u03B9\u0313\u0301".freeze, "\u1F35"=>"\u03B9\u0314\u0301".freeze, "\u1F36"=>"\u03B9\u0313\u0342".freeze, "\u1F37"=>"\u03B9\u0314\u0342".freeze,
    "\u1F38"=>"\u0399\u0313".freeze, "\u1F39"=>"\u0399\u0314".freeze, "\u1F3A"=>"\u0399\u0313\u0300".freeze, "\u1F3B"=>"\u0399\u0314\u0300".freeze, "\u1F3C"=>"\u0399\u0313\u0301".freeze, "\u1F3D"=>"\u0399\u0314\u0301".freeze, "\u1F3E"=>"\u0399\u0313\u0342".freeze, "\u1F3F"=>"\u0399\u0314\u0342".freeze,
    "\u1F40"=>"\u03BF\u0313".freeze, "\u1F41"=>"\u03BF\u0314".freeze, "\u1F42"=>"\u03BF\u0313\u0300".freeze, "\u1F43"=>"\u03BF\u0314\u0300".freeze, "\u1F44"=>"\u03BF\u0313\u0301".freeze, "\u1F45"=>"\u03BF\u0314\u0301".freeze, "\u1F48"=>"\u039F\u0313".freeze, "\u1F49"=>"\u039F\u0314".freeze,
    "\u1F4A"=>"\u039F\u0313\u0300".freeze, "\u1F4B"=>"\u039F\u0314\u0300".freeze, "\u1F4C"=>"\u039F\u0313\u0301".freeze, "\u1F4D"=>"\u039F\u0314\u0301".freeze, "\u1F50"=>"\u03C5\u0313".freeze, "\u1F51"=>"\u03C5\u0314".freeze, "\u1F52"=>"\u03C5\u0313\u0300".freeze, "\u1F53"=>"\u03C5\u0314\u0300".freeze,
    "\u1F54"=>"\u03C5\u0313\u0301".freeze, "\u1F55"=>"\u03C5\u0314\u0301".freeze, "\u1F56"=>"\u03C5\u0313\u0342".freeze, "\u1F57"=>"\u03C5\u0314\u0342".freeze, "\u1F59"=>"\u03A5\u0314".freeze, "\u1F5B"=>"\u03A5\u0314\u0300".freeze, "\u1F5D"=>"\u03A5\u0314\u0301".freeze, "\u1F5F"=>"\u03A5\u0314\u0342".freeze,
    "\u1F60"=>"\u03C9\u0313".freeze, "\u1F61"=>"\u03C9\u0314".freeze, "\u1F62"=>"\u03C9\u0313\u0300".freeze, "\u1F63"=>"\u03C9\u0314\u0300".freeze, "\u1F64"=>"\u03C9\u0313\u0301".freeze, "\u1F65"=>"\u03C9\u0314\u0301".freeze, "\u1F66"=>"\u03C9\u0313\u0342".freeze, "\u1F67"=>"\u03C9\u0314\u0342".freeze,
    "\u1F68"=>"\u03A9\u0313".freeze, "\u1F69"=>"\u03A9\u0314".freeze, "\u1F6A"=>"\u03A9\u0313\u0300".freeze, "\u1F6B"=>"\u03A9\u0314\u0300".freeze, "\u1F6C"=>"\u03A9\u0313\u0301".freeze, "\u1F6D"=>"\u03A9\u0314\u0301".freeze, "\u1F6E"=>"\u03A9\u0313\u0342".freeze, "\u1F6F"=>"\u03A9\u0314\u0342".freeze,
    "\u1F70"=>"\u03B1\u0300".freeze, "\u1F71"=>"\u03B1\u0301".freeze, "\u1F72"=>"\u03B5\u0300".freeze, "\u1F73"=>"\u03B5\u0301".freeze, "\u1F74"=>"\u03B7\u0300".freeze, "\u1F75"=>"\u03B7\u0301".freeze, "\u1F76"=>"\u03B9\u0300".freeze, "\u1F77"=>"\u03B9\u0301".freeze,
    "\u1F78"=>"\u03BF\u0300".freeze, "\u1F79"=>"\u03BF\u0301".freeze, "\u1F7A"=>"\u03C5\u0300".freeze, "\u1F7B"=>"\u03C5\u0301".freeze, "\u1F7C"=>"\u03C9\u0300".freeze, "\u1F7D"=>"\u03C9\u0301".freeze, "\u1F80"=>"\u03B1\u0313\u0345".freeze, "\u1F81"=>"\u03B1\u0314\u0345".freeze,
    "\u1F82"=>"\u03B1\u0313\u0300\u0345".freeze, "\u1F83"=>"\u03B1\u0314\u0300\u0345".freeze, "\u1F84"=>"\u03B1\u0313\u0301\u0345".freeze, "\u1F85"=>"\u03B1\u0314\u0301\u0345".freeze, "\u1F86"=>"\u03B1\u0313\u0342\u0345".freeze, "\u1F87"=>"\u03B1\u0314\u0342\u0345".freeze, "\u1F88"=>"\u0391\u0313\u0345".freeze, "\u1F89"=>"\u0391\u0314\u0345".freeze,
    "\u1F8A"=>"\u0391\u0313\u0300\u0345".freeze, "\u1F8B"=>"\u0391\u0314\u0300\u0345".freeze, "\u1F8C"=>"\u0391\u0313\u0301\u0345".freeze, "\u1F8D"=>"\u0391\u0314\u0301\u0345".freeze, "\u1F8E"=>"\u0391\u0313\u0342\u0345".freeze, "\u1F8F"=>"\u0391\u0314\u0342\u0345".freeze, "\u1F90"=>"\u03B7\u0313\u0345".freeze, "\u1F91"=>"\u03B7\u0314\u0345".freeze,
    "\u1F92"=>"\u03B7\u0313\u0300\u0345".freeze, "\u1F93"=>"\u03B7\u0314\u0300\u0345".freeze, "\u1F94"=>"\u03B7\u0313\u0301\u0345".freeze, "\u1F95"=>"\u03B7\u0314\u0301\u0345".freeze, "\u1F96"=>"\u03B7\u0313\u0342\u0345".freeze, "\u1F97"=>"\u03B7\u0314\u0342\u0345".freeze, "\u1F98"=>"\u0397\u0313\u0345".freeze, "\u1F99"=>"\u0397\u0314\u0345".freeze,
    "\u1F9A"=>"\u0397\u0313\u0300\u0345".freeze, "\u1F9B"=>"\u0397\u0314\u0300\u0345".freeze, "\u1F9C"=>"\u0397\u0313\u0301\u0345".freeze, "\u1F9D"=>"\u0397\u0314\u0301\u0345".freeze, "\u1F9E"=>"\u0397\u0313\u0342\u0345".freeze, "\u1F9F"=>"\u0397\u0314\u0342\u0345".freeze, "\u1FA0"=>"\u03C9\u0313\u0345".freeze, "\u1FA1"=>"\u03C9\u0314\u0345".freeze,
    "\u1FA2"=>"\u03C9\u0313\u0300\u0345".freeze, "\u1FA3"=>"\u03C9\u0314\u0300\u0345".freeze, "\u1FA4"=>"\u03C9\u0313\u0301\u0345".freeze, "\u1FA5"=>"\u03C9\u0314\u0301\u0345".freeze, "\u1FA6"=>"\u03C9\u0313\u0342\u0345".freeze, "\u1FA7"=>"\u03C9\u0314\u0342\u0345".freeze, "\u1FA8"=>"\u03A9\u0313\u0345".freeze, "\u1FA9"=>"\u03A9\u0314\u0345".freeze,
    "\u1FAA"=>"\u03A9\u0313\u0300\u0345".freeze, "\u1FAB"=>"\u03A9\u0314\u0300\u0345".freeze, "\u1FAC"=>"\u03A9\u0313\u0301\u0345".freeze, "\u1FAD"=>"\u03A9\u0314\u0301\u0345".freeze, "\u1FAE"=>"\u03A9\u0313\u0342\u0345".freeze, "\u1FAF"=>"\u03A9\u0314\u0342\u0345".freeze, "\u1FB0"=>"\u03B1\u0306".freeze, "\u1FB1"=>"\u03B1\u0304".freeze,
    "\u1FB2"=>"\u03B1\u0300\u0345".freeze, "\u1FB3"=>"\u03B1\u0345".freeze, "\u1FB4"=>"\u03B1\u0301\u0345".freeze, "\u1FB6"=>"\u03B1\u0342".freeze, "\u1FB7"=>"\u03B1\u0342\u0345".freeze, "\u1FB8"=>"\u0391\u0306".freeze, "\u1FB9"=>"\u0391\u0304".freeze, "\u1FBA"=>"\u0391\u0300".freeze,
    "\u1FBB"=>"\u0391\u0301".freeze, "\u1FBC"=>"\u0391\u0345".freeze, "\u1FBE"=>"\u03B9".freeze, "\u1FC1"=>"\u00A8\u0342".freeze, "\u1FC2"=>"\u03B7\u0300\u0345".freeze, "\u1FC3"=>"\u03B7\u0345".freeze, "\u1FC4"=>"\u03B7\u0301\u0345".freeze, "\u1FC6"=>"\u03B7\u0342".freeze,
    "\u1FC7"=>"\u03B7\u0342\u0345".freeze, "\u1FC8"=>"\u0395\u0300".freeze, "\u1FC9"=>"\u0395\u0301".freeze, "\u1FCA"=>"\u0397\u0300".freeze, "\u1FCB"=>"\u0397\u0301".freeze, "\u1FCC"=>"\u0397\u0345".freeze, "\u1FCD"=>"\u1FBF\u0300".freeze, "\u1FCE"=>"\u1FBF\u0301".freeze,
    "\u1FCF"=>"\u1FBF\u0342".freeze, "\u1FD0"=>"\u03B9\u0306".freeze, "\u1FD1"=>"\u03B9\u0304".freeze, "\u1FD2"=>"\u03B9\u0308\u0300".freeze, "\u1FD3"=>"\u03B9\u0308\u0301".freeze, "\u1FD6"=>"\u03B9\u0342".freeze, "\u1FD7"=>"\u03B9\u0308\u0342".freeze, "\u1FD8"=>"\u0399\u0306".freeze,
    "\u1FD9"=>"\u0399\u0304".freeze, "\u1FDA"=>"\u0399\u0300".freeze, "\u1FDB"=>"\u0399\u0301".freeze, "\u1FDD"=>"\u1FFE\u0300".freeze, "\u1FDE"=>"\u1FFE\u0301".freeze, "\u1FDF"=>"\u1FFE\u0342".freeze, "\u1FE0"=>"\u03C5\u0306".freeze, "\u1FE1"=>"\u03C5\u0304".freeze,
    "\u1FE2"=>"\u03C5\u0308\u0300".freeze, "\u1FE3"=>"\u03C5\u0308\u0301".freeze, "\u1FE4"=>"\u03C1\u0313".freeze, "\u1FE5"=>"\u03C1\u0314".freeze, "\u1FE6"=>"\u03C5\u0342".freeze, "\u1FE7"=>"\u03C5\u0308\u0342".freeze, "\u1FE8"=>"\u03A5\u0306".freeze, "\u1FE9"=>"\u03A5\u0304".freeze,
    "\u1FEA"=>"\u03A5\u0300".freeze, "\u1FEB"=>"\u03A5\u0301".freeze, "\u1FEC"=>"\u03A1\u0314".freeze, "\u1FED"=>"\u00A8\u0300".freeze, "\u1FEE"=>"\u00A8\u0301".freeze, "\u1FEF"=>"`".freeze, "\u1FF2"=>"\u03C9\u0300\u0345".freeze, "\u1FF3"=>"\u03C9\u0345".freeze,
    "\u1FF4"=>"\u03C9\u0301\u0345".freeze, "\u1FF6"=>"\u03C9\u0342".freeze, "\u1FF7"=>"\u03C9\u0342\u0345".freeze, "\u1FF8"=>"\u039F\u0300".freeze, "\u1FF9"=>"\u039F\u0301".freeze, "\u1FFA"=>"\u03A9\u0300".freeze, "\u1FFB"=>"\u03A9\u0301".freeze, "\u1FFC"=>"\u03A9\u0345".freeze,
    "\u1FFD"=>"\u00B4".freeze, "\u2000"=>"\u2002".freeze, "\u2001"=>"\u2003".freeze, "\u2126"=>"\u03A9".freeze, "\u212A"=>"K".freeze, "\u212B"=>"A\u030A".freeze, "\u219A"=>"\u2190\u0338".freeze, "\u219B"=>"\u2192\u0338".freeze,
    "\u21AE"=>"\u2194\u0338".freeze, "\u21CD"=>"\u21D0\u0338".freeze, "\u21CE"=>"\u21D4\u0338".freeze, "\u21CF"=>"\u21D2\u0338".freeze, "\u2204"=>"\u2203\u0338".freeze, "\u2209"=>"\u2208\u0338".freeze, "\u220C"=>"\u220B\u0338".freeze, "\u2224"=>"\u2223\u0338".freeze,
    "\u2226"=>"\u2225\u0338".freeze, "\u2241"=>"\u223C\u0338".freeze, "\u2244"=>"\u2243\u0338".freeze, "\u2247"=>"\u2245\u0338".freeze, "\u2249"=>"\u2248\u0338".freeze, "\u2260"=>"=\u0338".freeze, "\u2262"=>"\u2261\u0338".freeze, "\u226D"=>"\u224D\u0338".freeze,
    "\u226E"=>"<\u0338".freeze, "\u226F"=>">\u0338".freeze, "\u2270"=>"\u2264\u0338".freeze, "\u2271"=>"\u2265\u0338".freeze, "\u2274"=>"\u2272\u0338".freeze, "\u2275"=>"\u2273\u0338".freeze, "\u2278"=>"\u2276\u0338".freeze, "\u2279"=>"\u2277\u0338".freeze,
    "\u2280"=>"\u227A\u0338".freeze, "\u2281"=>"\u227B\u0338".freeze, "\u2284"=>"\u2282\u0338".freeze, "\u2285"=>"\u2283\u0338".freeze, "\u2288"=>"\u2286\u0338".freeze, "\u2289"=>"\u2287\u0338".freeze, "\u22AC"=>"\u22A2\u0338".freeze, "\u22AD"=>"\u22A8\u0338".freeze,
    "\u22AE"=>"\u22A9\u0338".freeze, "\u22AF"=>"\u22AB\u0338".freeze, "\u22E0"=>"\u227C\u0338".freeze, "\u22E1"=>"\u227D\u0338".freeze, "\u22E2"=>"\u2291\u0338".freeze, "\u22E3"=>"\u2292\u0338".freeze, "\u22EA"=>"\u22B2\u0338".freeze, "\u22EB"=>"\u22B3\u0338".freeze,
    "\u22EC"=>"\u22B4\u0338".freeze, "\u22ED"=>"\u22B5\u0338".freeze, "\u2329"=>"\u3008".freeze, "\u232A"=>"\u3009".freeze, "\u2ADC"=>"\u2ADD\u0338".freeze, "\u304C"=>"\u304B\u3099".freeze, "\u304E"=>"\u304D\u3099".freeze, "\u3050"=>"\u304F\u3099".freeze,
    "\u3052"=>"\u3051\u3099".freeze, "\u3054"=>"\u3053\u3099".freeze, "\u3056"=>"\u3055\u3099".freeze, "\u3058"=>"\u3057\u3099".freeze, "\u305A"=>"\u3059\u3099".freeze, "\u305C"=>"\u305B\u3099".freeze, "\u305E"=>"\u305D\u3099".freeze, "\u3060"=>"\u305F\u3099".freeze,
    "\u3062"=>"\u3061\u3099".freeze, "\u3065"=>"\u3064\u3099".freeze, "\u3067"=>"\u3066\u3099".freeze, "\u3069"=>"\u3068\u3099".freeze, "\u3070"=>"\u306F\u3099".freeze, "\u3071"=>"\u306F\u309A".freeze, "\u3073"=>"\u3072\u3099".freeze, "\u3074"=>"\u3072\u309A".freeze,
    "\u3076"=>"\u3075\u3099".freeze, "\u3077"=>"\u3075\u309A".freeze, "\u3079"=>"\u3078\u3099".freeze, "\u307A"=>"\u3078\u309A".freeze, "\u307C"=>"\u307B\u3099".freeze, "\u307D"=>"\u307B\u309A".freeze, "\u3094"=>"\u3046\u3099".freeze, "\u309E"=>"\u309D\u3099".freeze,
    "\u30AC"=>"\u30AB\u3099".freeze, "\u30AE"=>"\u30AD\u3099".freeze, "\u30B0"=>"\u30AF\u3099".freeze, "\u30B2"=>"\u30B1\u3099".freeze, "\u30B4"=>"\u30B3\u3099".freeze, "\u30B6"=>"\u30B5\u3099".freeze, "\u30B8"=>"\u30B7\u3099".freeze, "\u30BA"=>"\u30B9\u3099".freeze,
    "\u30BC"=>"\u30BB\u3099".freeze, "\u30BE"=>"\u30BD\u3099".freeze, "\u30C0"=>"\u30BF\u3099".freeze, "\u30C2"=>"\u30C1\u3099".freeze, "\u30C5"=>"\u30C4\u3099".freeze, "\u30C7"=>"\u30C6\u3099".freeze, "\u30C9"=>"\u30C8\u3099".freeze, "\u30D0"=>"\u30CF\u3099".freeze,
    "\u30D1"=>"\u30CF\u309A".freeze, "\u30D3"=>"\u30D2\u3099".freeze, "\u30D4"=>"\u30D2\u309A".freeze, "\u30D6"=>"\u30D5\u3099".freeze, "\u30D7"=>"\u30D5\u309A".freeze, "\u30D9"=>"\u30D8\u3099".freeze, "\u30DA"=>"\u30D8\u309A".freeze, "\u30DC"=>"\u30DB\u3099".freeze,
    "\u30DD"=>"\u30DB\u309A".freeze, "\u30F4"=>"\u30A6\u3099".freeze, "\u30F7"=>"\u30EF\u3099".freeze, "\u30F8"=>"\u30F0\u3099".freeze, "\u30F9"=>"\u30F1\u3099".freeze, "\u30FA"=>"\u30F2\u3099".freeze, "\u30FE"=>"\u30FD\u3099".freeze, "\uF900"=>"\u8C48".freeze,
    "\uF901"=>"\u66F4".freeze, "\uF902"=>"\u8ECA".freeze, "\uF903"=>"\u8CC8".freeze, "\uF904"=>"\u6ED1".freeze, "\uF905"=>"\u4E32".freeze, "\uF906"=>"\u53E5".freeze, "\uF907"=>"\u9F9C".freeze, "\uF908"=>"\u9F9C".freeze,
    "\uF909"=>"\u5951".freeze, "\uF90A"=>"\u91D1".freeze, "\uF90B"=>"\u5587".freeze, "\uF90C"=>"\u5948".freeze, "\uF90D"=>"\u61F6".freeze, "\uF90E"=>"\u7669".freeze, "\uF90F"=>"\u7F85".freeze, "\uF910"=>"\u863F".freeze,
    "\uF911"=>"\u87BA".freeze, "\uF912"=>"\u88F8".freeze, "\uF913"=>"\u908F".freeze, "\uF914"=>"\u6A02".freeze, "\uF915"=>"\u6D1B".freeze, "\uF916"=>"\u70D9".freeze, "\uF917"=>"\u73DE".freeze, "\uF918"=>"\u843D".freeze,
    "\uF919"=>"\u916A".freeze, "\uF91A"=>"\u99F1".freeze, "\uF91B"=>"\u4E82".freeze, "\uF91C"=>"\u5375".freeze, "\uF91D"=>"\u6B04".freeze, "\uF91E"=>"\u721B".freeze, "\uF91F"=>"\u862D".freeze, "\uF920"=>"\u9E1E".freeze,
    "\uF921"=>"\u5D50".freeze, "\uF922"=>"\u6FEB".freeze, "\uF923"=>"\u85CD".freeze, "\uF924"=>"\u8964".freeze, "\uF925"=>"\u62C9".freeze, "\uF926"=>"\u81D8".freeze, "\uF927"=>"\u881F".freeze, "\uF928"=>"\u5ECA".freeze,
    "\uF929"=>"\u6717".freeze, "\uF92A"=>"\u6D6A".freeze, "\uF92B"=>"\u72FC".freeze, "\uF92C"=>"\u90CE".freeze, "\uF92D"=>"\u4F86".freeze, "\uF92E"=>"\u51B7".freeze, "\uF92F"=>"\u52DE".freeze, "\uF930"=>"\u64C4".freeze,
    "\uF931"=>"\u6AD3".freeze, "\uF932"=>"\u7210".freeze, "\uF933"=>"\u76E7".freeze, "\uF934"=>"\u8001".freeze, "\uF935"=>"\u8606".freeze, "\uF936"=>"\u865C".freeze, "\uF937"=>"\u8DEF".freeze, "\uF938"=>"\u9732".freeze,
    "\uF939"=>"\u9B6F".freeze, "\uF93A"=>"\u9DFA".freeze, "\uF93B"=>"\u788C".freeze, "\uF93C"=>"\u797F".freeze, "\uF93D"=>"\u7DA0".freeze, "\uF93E"=>"\u83C9".freeze, "\uF93F"=>"\u9304".freeze, "\uF940"=>"\u9E7F".freeze,
    "\uF941"=>"\u8AD6".freeze, "\uF942"=>"\u58DF".freeze, "\uF943"=>"\u5F04".freeze, "\uF944"=>"\u7C60".freeze, "\uF945"=>"\u807E".freeze, "\uF946"=>"\u7262".freeze, "\uF947"=>"\u78CA".freeze, "\uF948"=>"\u8CC2".freeze,
    "\uF949"=>"\u96F7".freeze, "\uF94A"=>"\u58D8".freeze, "\uF94B"=>"\u5C62".freeze, "\uF94C"=>"\u6A13".freeze, "\uF94D"=>"\u6DDA".freeze, "\uF94E"=>"\u6F0F".freeze, "\uF94F"=>"\u7D2F".freeze, "\uF950"=>"\u7E37".freeze,
    "\uF951"=>"\u964B".freeze, "\uF952"=>"\u52D2".freeze, "\uF953"=>"\u808B".freeze, "\uF954"=>"\u51DC".freeze, "\uF955"=>"\u51CC".freeze, "\uF956"=>"\u7A1C".freeze, "\uF957"=>"\u7DBE".freeze, "\uF958"=>"\u83F1".freeze,
    "\uF959"=>"\u9675".freeze, "\uF95A"=>"\u8B80".freeze, "\uF95B"=>"\u62CF".freeze, "\uF95C"=>"\u6A02".freeze, "\uF95D"=>"\u8AFE".freeze, "\uF95E"=>"\u4E39".freeze, "\uF95F"=>"\u5BE7".freeze, "\uF960"=>"\u6012".freeze,
    "\uF961"=>"\u7387".freeze, "\uF962"=>"\u7570".freeze, "\uF963"=>"\u5317".freeze, "\uF964"=>"\u78FB".freeze, "\uF965"=>"\u4FBF".freeze, "\uF966"=>"\u5FA9".freeze, "\uF967"=>"\u4E0D".freeze, "\uF968"=>"\u6CCC".freeze,
    "\uF969"=>"\u6578".freeze, "\uF96A"=>"\u7D22".freeze, "\uF96B"=>"\u53C3".freeze, "\uF96C"=>"\u585E".freeze, "\uF96D"=>"\u7701".freeze, "\uF96E"=>"\u8449".freeze, "\uF96F"=>"\u8AAA".freeze, "\uF970"=>"\u6BBA".freeze,
    "\uF971"=>"\u8FB0".freeze, "\uF972"=>"\u6C88".freeze, "\uF973"=>"\u62FE".freeze, "\uF974"=>"\u82E5".freeze, "\uF975"=>"\u63A0".freeze, "\uF976"=>"\u7565".freeze, "\uF977"=>"\u4EAE".freeze, "\uF978"=>"\u5169".freeze,
    "\uF979"=>"\u51C9".freeze, "\uF97A"=>"\u6881".freeze, "\uF97B"=>"\u7CE7".freeze, "\uF97C"=>"\u826F".freeze, "\uF97D"=>"\u8AD2".freeze, "\uF97E"=>"\u91CF".freeze, "\uF97F"=>"\u52F5".freeze, "\uF980"=>"\u5442".freeze,
    "\uF981"=>"\u5973".freeze, "\uF982"=>"\u5EEC".freeze, "\uF983"=>"\u65C5".freeze, "\uF984"=>"\u6FFE".freeze, "\uF985"=>"\u792A".freeze, "\uF986"=>"\u95AD".freeze, "\uF987"=>"\u9A6A".freeze, "\uF988"=>"\u9E97".freeze,
    "\uF989"=>"\u9ECE".freeze, "\uF98A"=>"\u529B".freeze, "\uF98B"=>"\u66C6".freeze, "\uF98C"=>"\u6B77".freeze, "\uF98D"=>"\u8F62".freeze, "\uF98E"=>"\u5E74".freeze, "\uF98F"=>"\u6190".freeze, "\uF990"=>"\u6200".freeze,
    "\uF991"=>"\u649A".freeze, "\uF992"=>"\u6F23".freeze, "\uF993"=>"\u7149".freeze, "\uF994"=>"\u7489".freeze, "\uF995"=>"\u79CA".freeze, "\uF996"=>"\u7DF4".freeze, "\uF997"=>"\u806F".freeze, "\uF998"=>"\u8F26".freeze,
    "\uF999"=>"\u84EE".freeze, "\uF99A"=>"\u9023".freeze, "\uF99B"=>"\u934A".freeze, "\uF99C"=>"\u5217".freeze, "\uF99D"=>"\u52A3".freeze, "\uF99E"=>"\u54BD".freeze, "\uF99F"=>"\u70C8".freeze, "\uF9A0"=>"\u88C2".freeze,
    "\uF9A1"=>"\u8AAA".freeze, "\uF9A2"=>"\u5EC9".freeze, "\uF9A3"=>"\u5FF5".freeze, "\uF9A4"=>"\u637B".freeze, "\uF9A5"=>"\u6BAE".freeze, "\uF9A6"=>"\u7C3E".freeze, "\uF9A7"=>"\u7375".freeze, "\uF9A8"=>"\u4EE4".freeze,
    "\uF9A9"=>"\u56F9".freeze, "\uF9AA"=>"\u5BE7".freeze, "\uF9AB"=>"\u5DBA".freeze, "\uF9AC"=>"\u601C".freeze, "\uF9AD"=>"\u73B2".freeze, "\uF9AE"=>"\u7469".freeze, "\uF9AF"=>"\u7F9A".freeze, "\uF9B0"=>"\u8046".freeze,
    "\uF9B1"=>"\u9234".freeze, "\uF9B2"=>"\u96F6".freeze, "\uF9B3"=>"\u9748".freeze, "\uF9B4"=>"\u9818".freeze, "\uF9B5"=>"\u4F8B".freeze, "\uF9B6"=>"\u79AE".freeze, "\uF9B7"=>"\u91B4".freeze, "\uF9B8"=>"\u96B8".freeze,
    "\uF9B9"=>"\u60E1".freeze, "\uF9BA"=>"\u4E86".freeze, "\uF9BB"=>"\u50DA".freeze, "\uF9BC"=>"\u5BEE".freeze, "\uF9BD"=>"\u5C3F".freeze, "\uF9BE"=>"\u6599".freeze, "\uF9BF"=>"\u6A02".freeze, "\uF9C0"=>"\u71CE".freeze,
    "\uF9C1"=>"\u7642".freeze, "\uF9C2"=>"\u84FC".freeze, "\uF9C3"=>"\u907C".freeze, "\uF9C4"=>"\u9F8D".freeze, "\uF9C5"=>"\u6688".freeze, "\uF9C6"=>"\u962E".freeze, "\uF9C7"=>"\u5289".freeze, "\uF9C8"=>"\u677B".freeze,
    "\uF9C9"=>"\u67F3".freeze, "\uF9CA"=>"\u6D41".freeze, "\uF9CB"=>"\u6E9C".freeze, "\uF9CC"=>"\u7409".freeze, "\uF9CD"=>"\u7559".freeze, "\uF9CE"=>"\u786B".freeze, "\uF9CF"=>"\u7D10".freeze, "\uF9D0"=>"\u985E".freeze,
    "\uF9D1"=>"\u516D".freeze, "\uF9D2"=>"\u622E".freeze, "\uF9D3"=>"\u9678".freeze, "\uF9D4"=>"\u502B".freeze, "\uF9D5"=>"\u5D19".freeze, "\uF9D6"=>"\u6DEA".freeze, "\uF9D7"=>"\u8F2A".freeze, "\uF9D8"=>"\u5F8B".freeze,
    "\uF9D9"=>"\u6144".freeze, "\uF9DA"=>"\u6817".freeze, "\uF9DB"=>"\u7387".freeze, "\uF9DC"=>"\u9686".freeze, "\uF9DD"=>"\u5229".freeze, "\uF9DE"=>"\u540F".freeze, "\uF9DF"=>"\u5C65".freeze, "\uF9E0"=>"\u6613".freeze,
    "\uF9E1"=>"\u674E".freeze, "\uF9E2"=>"\u68A8".freeze, "\uF9E3"=>"\u6CE5".freeze, "\uF9E4"=>"\u7406".freeze, "\uF9E5"=>"\u75E2".freeze, "\uF9E6"=>"\u7F79".freeze, "\uF9E7"=>"\u88CF".freeze, "\uF9E8"=>"\u88E1".freeze,
    "\uF9E9"=>"\u91CC".freeze, "\uF9EA"=>"\u96E2".freeze, "\uF9EB"=>"\u533F".freeze, "\uF9EC"=>"\u6EBA".freeze, "\uF9ED"=>"\u541D".freeze, "\uF9EE"=>"\u71D0".freeze, "\uF9EF"=>"\u7498".freeze, "\uF9F0"=>"\u85FA".freeze,
    "\uF9F1"=>"\u96A3".freeze, "\uF9F2"=>"\u9C57".freeze, "\uF9F3"=>"\u9E9F".freeze, "\uF9F4"=>"\u6797".freeze, "\uF9F5"=>"\u6DCB".freeze, "\uF9F6"=>"\u81E8".freeze, "\uF9F7"=>"\u7ACB".freeze, "\uF9F8"=>"\u7B20".freeze,
    "\uF9F9"=>"\u7C92".freeze, "\uF9FA"=>"\u72C0".freeze, "\uF9FB"=>"\u7099".freeze, "\uF9FC"=>"\u8B58".freeze, "\uF9FD"=>"\u4EC0".freeze, "\uF9FE"=>"\u8336".freeze, "\uF9FF"=>"\u523A".freeze, "\uFA00"=>"\u5207".freeze,
    "\uFA01"=>"\u5EA6".freeze, "\uFA02"=>"\u62D3".freeze, "\uFA03"=>"\u7CD6".freeze, "\uFA04"=>"\u5B85".freeze, "\uFA05"=>"\u6D1E".freeze, "\uFA06"=>"\u66B4".freeze, "\uFA07"=>"\u8F3B".freeze, "\uFA08"=>"\u884C".freeze,
    "\uFA09"=>"\u964D".freeze, "\uFA0A"=>"\u898B".freeze, "\uFA0B"=>"\u5ED3".freeze, "\uFA0C"=>"\u5140".freeze, "\uFA0D"=>"\u55C0".freeze, "\uFA10"=>"\u585A".freeze, "\uFA12"=>"\u6674".freeze, "\uFA15"=>"\u51DE".freeze,
    "\uFA16"=>"\u732A".freeze, "\uFA17"=>"\u76CA".freeze, "\uFA18"=>"\u793C".freeze, "\uFA19"=>"\u795E".freeze, "\uFA1A"=>"\u7965".freeze, "\uFA1B"=>"\u798F".freeze, "\uFA1C"=>"\u9756".freeze, "\uFA1D"=>"\u7CBE".freeze,
    "\uFA1E"=>"\u7FBD".freeze, "\uFA20"=>"\u8612".freeze, "\uFA22"=>"\u8AF8".freeze, "\uFA25"=>"\u9038".freeze, "\uFA26"=>"\u90FD".freeze, "\uFA2A"=>"\u98EF".freeze, "\uFA2B"=>"\u98FC".freeze, "\uFA2C"=>"\u9928".freeze,
    "\uFA2D"=>"\u9DB4".freeze, "\uFA2E"=>"\u90DE".freeze, "\uFA2F"=>"\u96B7".freeze, "\uFA30"=>"\u4FAE".freeze, "\uFA31"=>"\u50E7".freeze, "\uFA32"=>"\u514D".freeze, "\uFA33"=>"\u52C9".freeze, "\uFA34"=>"\u52E4".freeze,
    "\uFA35"=>"\u5351".freeze, "\uFA36"=>"\u559D".freeze, "\uFA37"=>"\u5606".freeze, "\uFA38"=>"\u5668".freeze, "\uFA39"=>"\u5840".freeze, "\uFA3A"=>"\u58A8".freeze, "\uFA3B"=>"\u5C64".freeze, "\uFA3C"=>"\u5C6E".freeze,
    "\uFA3D"=>"\u6094".freeze, "\uFA3E"=>"\u6168".freeze, "\uFA3F"=>"\u618E".freeze, "\uFA40"=>"\u61F2".freeze, "\uFA41"=>"\u654F".freeze, "\uFA42"=>"\u65E2".freeze, "\uFA43"=>"\u6691".freeze, "\uFA44"=>"\u6885".freeze,
    "\uFA45"=>"\u6D77".freeze, "\uFA46"=>"\u6E1A".freeze, "\uFA47"=>"\u6F22".freeze, "\uFA48"=>"\u716E".freeze, "\uFA49"=>"\u722B".freeze, "\uFA4A"=>"\u7422".freeze, "\uFA4B"=>"\u7891".freeze, "\uFA4C"=>"\u793E".freeze,
    "\uFA4D"=>"\u7949".freeze, "\uFA4E"=>"\u7948".freeze, "\uFA4F"=>"\u7950".freeze, "\uFA50"=>"\u7956".freeze, "\uFA51"=>"\u795D".freeze, "\uFA52"=>"\u798D".freeze, "\uFA53"=>"\u798E".freeze, "\uFA54"=>"\u7A40".freeze,
    "\uFA55"=>"\u7A81".freeze, "\uFA56"=>"\u7BC0".freeze, "\uFA57"=>"\u7DF4".freeze, "\uFA58"=>"\u7E09".freeze, "\uFA59"=>"\u7E41".freeze, "\uFA5A"=>"\u7F72".freeze, "\uFA5B"=>"\u8005".freeze, "\uFA5C"=>"\u81ED".freeze,
    "\uFA5D"=>"\u8279".freeze, "\uFA5E"=>"\u8279".freeze, "\uFA5F"=>"\u8457".freeze, "\uFA60"=>"\u8910".freeze, "\uFA61"=>"\u8996".freeze, "\uFA62"=>"\u8B01".freeze, "\uFA63"=>"\u8B39".freeze, "\uFA64"=>"\u8CD3".freeze,
    "\uFA65"=>"\u8D08".freeze, "\uFA66"=>"\u8FB6".freeze, "\uFA67"=>"\u9038".freeze, "\uFA68"=>"\u96E3".freeze, "\uFA69"=>"\u97FF".freeze, "\uFA6A"=>"\u983B".freeze, "\uFA6B"=>"\u6075".freeze, "\uFA6C"=>"\u{242EE}".freeze,
    "\uFA6D"=>"\u8218".freeze, "\uFA70"=>"\u4E26".freeze, "\uFA71"=>"\u51B5".freeze, "\uFA72"=>"\u5168".freeze, "\uFA73"=>"\u4F80".freeze, "\uFA74"=>"\u5145".freeze, "\uFA75"=>"\u5180".freeze, "\uFA76"=>"\u52C7".freeze,
    "\uFA77"=>"\u52FA".freeze, "\uFA78"=>"\u559D".freeze, "\uFA79"=>"\u5555".freeze, "\uFA7A"=>"\u5599".freeze, "\uFA7B"=>"\u55E2".freeze, "\uFA7C"=>"\u585A".freeze, "\uFA7D"=>"\u58B3".freeze, "\uFA7E"=>"\u5944".freeze,
    "\uFA7F"=>"\u5954".freeze, "\uFA80"=>"\u5A62".freeze, "\uFA81"=>"\u5B28".freeze, "\uFA82"=>"\u5ED2".freeze, "\uFA83"=>"\u5ED9".freeze, "\uFA84"=>"\u5F69".freeze, "\uFA85"=>"\u5FAD".freeze, "\uFA86"=>"\u60D8".freeze,
    "\uFA87"=>"\u614E".freeze, "\uFA88"=>"\u6108".freeze, "\uFA89"=>"\u618E".freeze, "\uFA8A"=>"\u6160".freeze, "\uFA8B"=>"\u61F2".freeze, "\uFA8C"=>"\u6234".freeze, "\uFA8D"=>"\u63C4".freeze, "\uFA8E"=>"\u641C".freeze,
    "\uFA8F"=>"\u6452".freeze, "\uFA90"=>"\u6556".freeze, "\uFA91"=>"\u6674".freeze, "\uFA92"=>"\u6717".freeze, "\uFA93"=>"\u671B".freeze, "\uFA94"=>"\u6756".freeze, "\uFA95"=>"\u6B79".freeze, "\uFA96"=>"\u6BBA".freeze,
    "\uFA97"=>"\u6D41".freeze, "\uFA98"=>"\u6EDB".freeze, "\uFA99"=>"\u6ECB".freeze, "\uFA9A"=>"\u6F22".freeze, "\uFA9B"=>"\u701E".freeze, "\uFA9C"=>"\u716E".freeze, "\uFA9D"=>"\u77A7".freeze, "\uFA9E"=>"\u7235".freeze,
    "\uFA9F"=>"\u72AF".freeze, "\uFAA0"=>"\u732A".freeze, "\uFAA1"=>"\u7471".freeze, "\uFAA2"=>"\u7506".freeze, "\uFAA3"=>"\u753B".freeze, "\uFAA4"=>"\u761D".freeze, "\uFAA5"=>"\u761F".freeze, "\uFAA6"=>"\u76CA".freeze,
    "\uFAA7"=>"\u76DB".freeze, "\uFAA8"=>"\u76F4".freeze, "\uFAA9"=>"\u774A".freeze, "\uFAAA"=>"\u7740".freeze, "\uFAAB"=>"\u78CC".freeze, "\uFAAC"=>"\u7AB1".freeze, "\uFAAD"=>"\u7BC0".freeze, "\uFAAE"=>"\u7C7B".freeze,
    "\uFAAF"=>"\u7D5B".freeze, "\uFAB0"=>"\u7DF4".freeze, "\uFAB1"=>"\u7F3E".freeze, "\uFAB2"=>"\u8005".freeze, "\uFAB3"=>"\u8352".freeze, "\uFAB4"=>"\u83EF".freeze, "\uFAB5"=>"\u8779".freeze, "\uFAB6"=>"\u8941".freeze,
    "\uFAB7"=>"\u8986".freeze, "\uFAB8"=>"\u8996".freeze, "\uFAB9"=>"\u8ABF".freeze, "\uFABA"=>"\u8AF8".freeze, "\uFABB"=>"\u8ACB".freeze, "\uFABC"=>"\u8B01".freeze, "\uFABD"=>"\u8AFE".freeze, "\uFABE"=>"\u8AED".freeze,
    "\uFABF"=>"\u8B39".freeze, "\uFAC0"=>"\u8B8A".freeze, "\uFAC1"=>"\u8D08".freeze, "\uFAC2"=>"\u8F38".freeze, "\uFAC3"=>"\u9072".freeze, "\uFAC4"=>"\u9199".freeze, "\uFAC5"=>"\u9276".freeze, "\uFAC6"=>"\u967C".freeze,
    "\uFAC7"=>"\u96E3".freeze, "\uFAC8"=>"\u9756".freeze, "\uFAC9"=>"\u97DB".freeze, "\uFACA"=>"\u97FF".freeze, "\uFACB"=>"\u980B".freeze, "\uFACC"=>"\u983B".freeze, "\uFACD"=>"\u9B12".freeze, "\uFACE"=>"\u9F9C".freeze,
    "\uFACF"=>"\u{2284A}".freeze, "\uFAD0"=>"\u{22844}".freeze, "\uFAD1"=>"\u{233D5}".freeze, "\uFAD2"=>"\u3B9D".freeze, "\uFAD3"=>"\u4018".freeze, "\uFAD4"=>"\u4039".freeze, "\uFAD5"=>"\u{25249}".freeze, "\uFAD6"=>"\u{25CD0}".freeze,
    "\uFAD7"=>"\u{27ED3}".freeze, "\uFAD8"=>"\u9F43".freeze, "\uFAD9"=>"\u9F8E".freeze, "\uFB1D"=>"\u05D9\u05B4".freeze, "\uFB1F"=>"\u05F2\u05B7".freeze, "\uFB2A"=>"\u05E9\u05C1".freeze, "\uFB2B"=>"\u05E9\u05C2".freeze, "\uFB2C"=>"\u05E9\u05BC\u05C1".freeze,
    "\uFB2D"=>"\u05E9\u05BC\u05C2".freeze, "\uFB2E"=>"\u05D0\u05B7".freeze, "\uFB2F"=>"\u05D0\u05B8".freeze, "\uFB30"=>"\u05D0\u05BC".freeze, "\uFB31"=>"\u05D1\u05BC".freeze, "\uFB32"=>"\u05D2\u05BC".freeze, "\uFB33"=>"\u05D3\u05BC".freeze, "\uFB34"=>"\u05D4\u05BC".freeze,
    "\uFB35"=>"\u05D5\u05BC".freeze, "\uFB36"=>"\u05D6\u05BC".freeze, "\uFB38"=>"\u05D8\u05BC".freeze, "\uFB39"=>"\u05D9\u05BC".freeze, "\uFB3A"=>"\u05DA\u05BC".freeze, "\uFB3B"=>"\u05DB\u05BC".freeze, "\uFB3C"=>"\u05DC\u05BC".freeze, "\uFB3E"=>"\u05DE\u05BC".freeze,
    "\uFB40"=>"\u05E0\u05BC".freeze, "\uFB41"=>"\u05E1\u05BC".freeze, "\uFB43"=>"\u05E3\u05BC".freeze, "\uFB44"=>"\u05E4\u05BC".freeze, "\uFB46"=>"\u05E6\u05BC".freeze, "\uFB47"=>"\u05E7\u05BC".freeze, "\uFB48"=>"\u05E8\u05BC".freeze, "\uFB49"=>"\u05E9\u05BC".freeze,
    "\uFB4A"=>"\u05EA\u05BC".freeze, "\uFB4B"=>"\u05D5\u05B9".freeze, "\uFB4C"=>"\u05D1\u05BF".freeze, "\uFB4D"=>"\u05DB\u05BF".freeze, "\uFB4E"=>"\u05E4\u05BF".freeze, "\u{1109A}"=>"\u{11099}\u{110BA}".freeze, "\u{1109C}"=>"\u{1109B}\u{110BA}".freeze, "\u{110AB}"=>"\u{110A5}\u{110BA}".freeze,
    "\u{1112E}"=>"\u{11131}\u{11127}".freeze, "\u{1112F}"=>"\u{11132}\u{11127}".freeze, "\u{1134B}"=>"\u{11347}\u{1133E}".freeze, "\u{1134C}"=>"\u{11347}\u{11357}".freeze, "\u{114BB}"=>"\u{114B9}\u{114BA}".freeze, "\u{114BC}"=>"\u{114B9}\u{114B0}".freeze, "\u{114BE}"=>"\u{114B9}\u{114BD}".freeze, "\u{115BA}"=>"\u{115B8}\u{115AF}".freeze,
    "\u{115BB}"=>"\u{115B9}\u{115AF}".freeze, "\u{1D15E}"=>"\u{1D157}\u{1D165}".freeze, "\u{1D15F}"=>"\u{1D158}\u{1D165}".freeze, "\u{1D160}"=>"\u{1D158}\u{1D165}\u{1D16E}".freeze, "\u{1D161}"=>"\u{1D158}\u{1D165}\u{1D16F}".freeze, "\u{1D162}"=>"\u{1D158}\u{1D165}\u{1D170}".freeze, "\u{1D163}"=>"\u{1D158}\u{1D165}\u{1D171}".freeze, "\u{1D164}"=>"\u{1D158}\u{1D165}\u{1D172}".freeze,
    "\u{1D1BB}"=>"\u{1D1B9}\u{1D165}".freeze, "\u{1D1BC}"=>"\u{1D1BA}\u{1D165}".freeze, "\u{1D1BD}"=>"\u{1D1B9}\u{1D165}\u{1D16E}".freeze, "\u{1D1BE}"=>"\u{1D1BA}\u{1D165}\u{1D16E}".freeze, "\u{1D1BF}"=>"\u{1D1B9}\u{1D165}\u{1D16F}".freeze, "\u{1D1C0}"=>"\u{1D1BA}\u{1D165}\u{1D16F}".freeze, "\u{2F800}"=>"\u4E3D".freeze, "\u{2F801}"=>"\u4E38".freeze,
    "\u{2F802}"=>"\u4E41".freeze, "\u{2F803}"=>"\u{20122}".freeze, "\u{2F804}"=>"\u4F60".freeze, "\u{2F805}"=>"\u4FAE".freeze, "\u{2F806}"=>"\u4FBB".freeze, "\u{2F807}"=>"\u5002".freeze, "\u{2F808}"=>"\u507A".freeze, "\u{2F809}"=>"\u5099".freeze,
    "\u{2F80A}"=>"\u50E7".freeze, "\u{2F80B}"=>"\u50CF".freeze, "\u{2F80C}"=>"\u349E".freeze, "\u{2F80D}"=>"\u{2063A}".freeze, "\u{2F80E}"=>"\u514D".freeze, "\u{2F80F}"=>"\u5154".freeze, "\u{2F810}"=>"\u5164".freeze, "\u{2F811}"=>"\u5177".freeze,
    "\u{2F812}"=>"\u{2051C}".freeze, "\u{2F813}"=>"\u34B9".freeze, "\u{2F814}"=>"\u5167".freeze, "\u{2F815}"=>"\u518D".freeze, "\u{2F816}"=>"\u{2054B}".freeze, "\u{2F817}"=>"\u5197".freeze, "\u{2F818}"=>"\u51A4".freeze, "\u{2F819}"=>"\u4ECC".freeze,
    "\u{2F81A}"=>"\u51AC".freeze, "\u{2F81B}"=>"\u51B5".freeze, "\u{2F81C}"=>"\u{291DF}".freeze, "\u{2F81D}"=>"\u51F5".freeze, "\u{2F81E}"=>"\u5203".freeze, "\u{2F81F}"=>"\u34DF".freeze, "\u{2F820}"=>"\u523B".freeze, "\u{2F821}"=>"\u5246".freeze,
    "\u{2F822}"=>"\u5272".freeze, "\u{2F823}"=>"\u5277".freeze, "\u{2F824}"=>"\u3515".freeze, "\u{2F825}"=>"\u52C7".freeze, "\u{2F826}"=>"\u52C9".freeze, "\u{2F827}"=>"\u52E4".freeze, "\u{2F828}"=>"\u52FA".freeze, "\u{2F829}"=>"\u5305".freeze,
    "\u{2F82A}"=>"\u5306".freeze, "\u{2F82B}"=>"\u5317".freeze, "\u{2F82C}"=>"\u5349".freeze, "\u{2F82D}"=>"\u5351".freeze, "\u{2F82E}"=>"\u535A".freeze, "\u{2F82F}"=>"\u5373".freeze, "\u{2F830}"=>"\u537D".freeze, "\u{2F831}"=>"\u537F".freeze,
    "\u{2F832}"=>"\u537F".freeze, "\u{2F833}"=>"\u537F".freeze, "\u{2F834}"=>"\u{20A2C}".freeze, "\u{2F835}"=>"\u7070".freeze, "\u{2F836}"=>"\u53CA".freeze, "\u{2F837}"=>"\u53DF".freeze, "\u{2F838}"=>"\u{20B63}".freeze, "\u{2F839}"=>"\u53EB".freeze,
    "\u{2F83A}"=>"\u53F1".freeze, "\u{2F83B}"=>"\u5406".freeze, "\u{2F83C}"=>"\u549E".freeze, "\u{2F83D}"=>"\u5438".freeze, "\u{2F83E}"=>"\u5448".freeze, "\u{2F83F}"=>"\u5468".freeze, "\u{2F840}"=>"\u54A2".freeze, "\u{2F841}"=>"\u54F6".freeze,
    "\u{2F842}"=>"\u5510".freeze, "\u{2F843}"=>"\u5553".freeze, "\u{2F844}"=>"\u5563".freeze, "\u{2F845}"=>"\u5584".freeze, "\u{2F846}"=>"\u5584".freeze, "\u{2F847}"=>"\u5599".freeze, "\u{2F848}"=>"\u55AB".freeze, "\u{2F849}"=>"\u55B3".freeze,
    "\u{2F84A}"=>"\u55C2".freeze, "\u{2F84B}"=>"\u5716".freeze, "\u{2F84C}"=>"\u5606".freeze, "\u{2F84D}"=>"\u5717".freeze, "\u{2F84E}"=>"\u5651".freeze, "\u{2F84F}"=>"\u5674".freeze, "\u{2F850}"=>"\u5207".freeze, "\u{2F851}"=>"\u58EE".freeze,
    "\u{2F852}"=>"\u57CE".freeze, "\u{2F853}"=>"\u57F4".freeze, "\u{2F854}"=>"\u580D".freeze, "\u{2F855}"=>"\u578B".freeze, "\u{2F856}"=>"\u5832".freeze, "\u{2F857}"=>"\u5831".freeze, "\u{2F858}"=>"\u58AC".freeze, "\u{2F859}"=>"\u{214E4}".freeze,
    "\u{2F85A}"=>"\u58F2".freeze, "\u{2F85B}"=>"\u58F7".freeze, "\u{2F85C}"=>"\u5906".freeze, "\u{2F85D}"=>"\u591A".freeze, "\u{2F85E}"=>"\u5922".freeze, "\u{2F85F}"=>"\u5962".freeze, "\u{2F860}"=>"\u{216A8}".freeze, "\u{2F861}"=>"\u{216EA}".freeze,
    "\u{2F862}"=>"\u59EC".freeze, "\u{2F863}"=>"\u5A1B".freeze, "\u{2F864}"=>"\u5A27".freeze, "\u{2F865}"=>"\u59D8".freeze, "\u{2F866}"=>"\u5A66".freeze, "\u{2F867}"=>"\u36EE".freeze, "\u{2F868}"=>"\u36FC".freeze, "\u{2F869}"=>"\u5B08".freeze,
    "\u{2F86A}"=>"\u5B3E".freeze, "\u{2F86B}"=>"\u5B3E".freeze, "\u{2F86C}"=>"\u{219C8}".freeze, "\u{2F86D}"=>"\u5BC3".freeze, "\u{2F86E}"=>"\u5BD8".freeze, "\u{2F86F}"=>"\u5BE7".freeze, "\u{2F870}"=>"\u5BF3".freeze, "\u{2F871}"=>"\u{21B18}".freeze,
    "\u{2F872}"=>"\u5BFF".freeze, "\u{2F873}"=>"\u5C06".freeze, "\u{2F874}"=>"\u5F53".freeze, "\u{2F875}"=>"\u5C22".freeze, "\u{2F876}"=>"\u3781".freeze, "\u{2F877}"=>"\u5C60".freeze, "\u{2F878}"=>"\u5C6E".freeze, "\u{2F879}"=>"\u5CC0".freeze,
    "\u{2F87A}"=>"\u5C8D".freeze, "\u{2F87B}"=>"\u{21DE4}".freeze, "\u{2F87C}"=>"\u5D43".freeze, "\u{2F87D}"=>"\u{21DE6}".freeze, "\u{2F87E}"=>"\u5D6E".freeze, "\u{2F87F}"=>"\u5D6B".freeze, "\u{2F880}"=>"\u5D7C".freeze, "\u{2F881}"=>"\u5DE1".freeze,
    "\u{2F882}"=>"\u5DE2".freeze, "\u{2F883}"=>"\u382F".freeze, "\u{2F884}"=>"\u5DFD".freeze, "\u{2F885}"=>"\u5E28".freeze, "\u{2F886}"=>"\u5E3D".freeze, "\u{2F887}"=>"\u5E69".freeze, "\u{2F888}"=>"\u3862".freeze, "\u{2F889}"=>"\u{22183}".freeze,
    "\u{2F88A}"=>"\u387C".freeze, "\u{2F88B}"=>"\u5EB0".freeze, "\u{2F88C}"=>"\u5EB3".freeze, "\u{2F88D}"=>"\u5EB6".freeze, "\u{2F88E}"=>"\u5ECA".freeze, "\u{2F88F}"=>"\u{2A392}".freeze, "\u{2F890}"=>"\u5EFE".freeze, "\u{2F891}"=>"\u{22331}".freeze,
    "\u{2F892}"=>"\u{22331}".freeze, "\u{2F893}"=>"\u8201".freeze, "\u{2F894}"=>"\u5F22".freeze, "\u{2F895}"=>"\u5F22".freeze, "\u{2F896}"=>"\u38C7".freeze, "\u{2F897}"=>"\u{232B8}".freeze, "\u{2F898}"=>"\u{261DA}".freeze, "\u{2F899}"=>"\u5F62".freeze,
    "\u{2F89A}"=>"\u5F6B".freeze, "\u{2F89B}"=>"\u38E3".freeze, "\u{2F89C}"=>"\u5F9A".freeze, "\u{2F89D}"=>"\u5FCD".freeze, "\u{2F89E}"=>"\u5FD7".freeze, "\u{2F89F}"=>"\u5FF9".freeze, "\u{2F8A0}"=>"\u6081".freeze, "\u{2F8A1}"=>"\u393A".freeze,
    "\u{2F8A2}"=>"\u391C".freeze, "\u{2F8A3}"=>"\u6094".freeze, "\u{2F8A4}"=>"\u{226D4}".freeze, "\u{2F8A5}"=>"\u60C7".freeze, "\u{2F8A6}"=>"\u6148".freeze, "\u{2F8A7}"=>"\u614C".freeze, "\u{2F8A8}"=>"\u614E".freeze, "\u{2F8A9}"=>"\u614C".freeze,
    "\u{2F8AA}"=>"\u617A".freeze, "\u{2F8AB}"=>"\u618E".freeze, "\u{2F8AC}"=>"\u61B2".freeze, "\u{2F8AD}"=>"\u61A4".freeze, "\u{2F8AE}"=>"\u61AF".freeze, "\u{2F8AF}"=>"\u61DE".freeze, "\u{2F8B0}"=>"\u61F2".freeze, "\u{2F8B1}"=>"\u61F6".freeze,
    "\u{2F8B2}"=>"\u6210".freeze, "\u{2F8B3}"=>"\u621B".freeze, "\u{2F8B4}"=>"\u625D".freeze, "\u{2F8B5}"=>"\u62B1".freeze, "\u{2F8B6}"=>"\u62D4".freeze, "\u{2F8B7}"=>"\u6350".freeze, "\u{2F8B8}"=>"\u{22B0C}".freeze, "\u{2F8B9}"=>"\u633D".freeze,
    "\u{2F8BA}"=>"\u62FC".freeze, "\u{2F8BB}"=>"\u6368".freeze, "\u{2F8BC}"=>"\u6383".freeze, "\u{2F8BD}"=>"\u63E4".freeze, "\u{2F8BE}"=>"\u{22BF1}".freeze, "\u{2F8BF}"=>"\u6422".freeze, "\u{2F8C0}"=>"\u63C5".freeze, "\u{2F8C1}"=>"\u63A9".freeze,
    "\u{2F8C2}"=>"\u3A2E".freeze, "\u{2F8C3}"=>"\u6469".freeze, "\u{2F8C4}"=>"\u647E".freeze, "\u{2F8C5}"=>"\u649D".freeze, "\u{2F8C6}"=>"\u6477".freeze, "\u{2F8C7}"=>"\u3A6C".freeze, "\u{2F8C8}"=>"\u654F".freeze, "\u{2F8C9}"=>"\u656C".freeze,
    "\u{2F8CA}"=>"\u{2300A}".freeze, "\u{2F8CB}"=>"\u65E3".freeze, "\u{2F8CC}"=>"\u66F8".freeze, "\u{2F8CD}"=>"\u6649".freeze, "\u{2F8CE}"=>"\u3B19".freeze, "\u{2F8CF}"=>"\u6691".freeze, "\u{2F8D0}"=>"\u3B08".freeze, "\u{2F8D1}"=>"\u3AE4".freeze,
    "\u{2F8D2}"=>"\u5192".freeze, "\u{2F8D3}"=>"\u5195".freeze, "\u{2F8D4}"=>"\u6700".freeze, "\u{2F8D5}"=>"\u669C".freeze, "\u{2F8D6}"=>"\u80AD".freeze, "\u{2F8D7}"=>"\u43D9".freeze, "\u{2F8D8}"=>"\u6717".freeze, "\u{2F8D9}"=>"\u671B".freeze,
    "\u{2F8DA}"=>"\u6721".freeze, "\u{2F8DB}"=>"\u675E".freeze, "\u{2F8DC}"=>"\u6753".freeze, "\u{2F8DD}"=>"\u{233C3}".freeze, "\u{2F8DE}"=>"\u3B49".freeze, "\u{2F8DF}"=>"\u67FA".freeze, "\u{2F8E0}"=>"\u6785".freeze, "\u{2F8E1}"=>"\u6852".freeze,
    "\u{2F8E2}"=>"\u6885".freeze, "\u{2F8E3}"=>"\u{2346D}".freeze, "\u{2F8E4}"=>"\u688E".freeze, "\u{2F8E5}"=>"\u681F".freeze, "\u{2F8E6}"=>"\u6914".freeze, "\u{2F8E7}"=>"\u3B9D".freeze, "\u{2F8E8}"=>"\u6942".freeze, "\u{2F8E9}"=>"\u69A3".freeze,
    "\u{2F8EA}"=>"\u69EA".freeze, "\u{2F8EB}"=>"\u6AA8".freeze, "\u{2F8EC}"=>"\u{236A3}".freeze, "\u{2F8ED}"=>"\u6ADB".freeze, "\u{2F8EE}"=>"\u3C18".freeze, "\u{2F8EF}"=>"\u6B21".freeze, "\u{2F8F0}"=>"\u{238A7}".freeze, "\u{2F8F1}"=>"\u6B54".freeze,
    "\u{2F8F2}"=>"\u3C4E".freeze, "\u{2F8F3}"=>"\u6B72".freeze, "\u{2F8F4}"=>"\u6B9F".freeze, "\u{2F8F5}"=>"\u6BBA".freeze, "\u{2F8F6}"=>"\u6BBB".freeze, "\u{2F8F7}"=>"\u{23A8D}".freeze, "\u{2F8F8}"=>"\u{21D0B}".freeze, "\u{2F8F9}"=>"\u{23AFA}".freeze,
    "\u{2F8FA}"=>"\u6C4E".freeze, "\u{2F8FB}"=>"\u{23CBC}".freeze, "\u{2F8FC}"=>"\u6CBF".freeze, "\u{2F8FD}"=>"\u6CCD".freeze, "\u{2F8FE}"=>"\u6C67".freeze, "\u{2F8FF}"=>"\u6D16".freeze, "\u{2F900}"=>"\u6D3E".freeze, "\u{2F901}"=>"\u6D77".freeze,
    "\u{2F902}"=>"\u6D41".freeze, "\u{2F903}"=>"\u6D69".freeze, "\u{2F904}"=>"\u6D78".freeze, "\u{2F905}"=>"\u6D85".freeze, "\u{2F906}"=>"\u{23D1E}".freeze, "\u{2F907}"=>"\u6D34".freeze, "\u{2F908}"=>"\u6E2F".freeze, "\u{2F909}"=>"\u6E6E".freeze,
    "\u{2F90A}"=>"\u3D33".freeze, "\u{2F90B}"=>"\u6ECB".freeze, "\u{2F90C}"=>"\u6EC7".freeze, "\u{2F90D}"=>"\u{23ED1}".freeze, "\u{2F90E}"=>"\u6DF9".freeze, "\u{2F90F}"=>"\u6F6E".freeze, "\u{2F910}"=>"\u{23F5E}".freeze, "\u{2F911}"=>"\u{23F8E}".freeze,
    "\u{2F912}"=>"\u6FC6".freeze, "\u{2F913}"=>"\u7039".freeze, "\u{2F914}"=>"\u701E".freeze, "\u{2F915}"=>"\u701B".freeze, "\u{2F916}"=>"\u3D96".freeze, "\u{2F917}"=>"\u704A".freeze, "\u{2F918}"=>"\u707D".freeze, "\u{2F919}"=>"\u7077".freeze,
    "\u{2F91A}"=>"\u70AD".freeze, "\u{2F91B}"=>"\u{20525}".freeze, "\u{2F91C}"=>"\u7145".freeze, "\u{2F91D}"=>"\u{24263}".freeze, "\u{2F91E}"=>"\u719C".freeze, "\u{2F91F}"=>"\u{243AB}".freeze, "\u{2F920}"=>"\u7228".freeze, "\u{2F921}"=>"\u7235".freeze,
    "\u{2F922}"=>"\u7250".freeze, "\u{2F923}"=>"\u{24608}".freeze, "\u{2F924}"=>"\u7280".freeze, "\u{2F925}"=>"\u7295".freeze, "\u{2F926}"=>"\u{24735}".freeze, "\u{2F927}"=>"\u{24814}".freeze, "\u{2F928}"=>"\u737A".freeze, "\u{2F929}"=>"\u738B".freeze,
    "\u{2F92A}"=>"\u3EAC".freeze, "\u{2F92B}"=>"\u73A5".freeze, "\u{2F92C}"=>"\u3EB8".freeze, "\u{2F92D}"=>"\u3EB8".freeze, "\u{2F92E}"=>"\u7447".freeze, "\u{2F92F}"=>"\u745C".freeze, "\u{2F930}"=>"\u7471".freeze, "\u{2F931}"=>"\u7485".freeze,
    "\u{2F932}"=>"\u74CA".freeze, "\u{2F933}"=>"\u3F1B".freeze, "\u{2F934}"=>"\u7524".freeze, "\u{2F935}"=>"\u{24C36}".freeze, "\u{2F936}"=>"\u753E".freeze, "\u{2F937}"=>"\u{24C92}".freeze, "\u{2F938}"=>"\u7570".freeze, "\u{2F939}"=>"\u{2219F}".freeze,
    "\u{2F93A}"=>"\u7610".freeze, "\u{2F93B}"=>"\u{24FA1}".freeze, "\u{2F93C}"=>"\u{24FB8}".freeze, "\u{2F93D}"=>"\u{25044}".freeze, "\u{2F93E}"=>"\u3FFC".freeze, "\u{2F93F}"=>"\u4008".freeze, "\u{2F940}"=>"\u76F4".freeze, "\u{2F941}"=>"\u{250F3}".freeze,
    "\u{2F942}"=>"\u{250F2}".freeze, "\u{2F943}"=>"\u{25119}".freeze, "\u{2F944}"=>"\u{25133}".freeze, "\u{2F945}"=>"\u771E".freeze, "\u{2F946}"=>"\u771F".freeze, "\u{2F947}"=>"\u771F".freeze, "\u{2F948}"=>"\u774A".freeze, "\u{2F949}"=>"\u4039".freeze,
    "\u{2F94A}"=>"\u778B".freeze, "\u{2F94B}"=>"\u4046".freeze, "\u{2F94C}"=>"\u4096".freeze, "\u{2F94D}"=>"\u{2541D}".freeze, "\u{2F94E}"=>"\u784E".freeze, "\u{2F94F}"=>"\u788C".freeze, "\u{2F950}"=>"\u78CC".freeze, "\u{2F951}"=>"\u40E3".freeze,
    "\u{2F952}"=>"\u{25626}".freeze, "\u{2F953}"=>"\u7956".freeze, "\u{2F954}"=>"\u{2569A}".freeze, "\u{2F955}"=>"\u{256C5}".freeze, "\u{2F956}"=>"\u798F".freeze, "\u{2F957}"=>"\u79EB".freeze, "\u{2F958}"=>"\u412F".freeze, "\u{2F959}"=>"\u7A40".freeze,
    "\u{2F95A}"=>"\u7A4A".freeze, "\u{2F95B}"=>"\u7A4F".freeze, "\u{2F95C}"=>"\u{2597C}".freeze, "\u{2F95D}"=>"\u{25AA7}".freeze, "\u{2F95E}"=>"\u{25AA7}".freeze, "\u{2F95F}"=>"\u7AEE".freeze, "\u{2F960}"=>"\u4202".freeze, "\u{2F961}"=>"\u{25BAB}".freeze,
    "\u{2F962}"=>"\u7BC6".freeze, "\u{2F963}"=>"\u7BC9".freeze, "\u{2F964}"=>"\u4227".freeze, "\u{2F965}"=>"\u{25C80}".freeze, "\u{2F966}"=>"\u7CD2".freeze, "\u{2F967}"=>"\u42A0".freeze, "\u{2F968}"=>"\u7CE8".freeze, "\u{2F969}"=>"\u7CE3".freeze,
    "\u{2F96A}"=>"\u7D00".freeze, "\u{2F96B}"=>"\u{25F86}".freeze, "\u{2F96C}"=>"\u7D63".freeze, "\u{2F96D}"=>"\u4301".freeze, "\u{2F96E}"=>"\u7DC7".freeze, "\u{2F96F}"=>"\u7E02".freeze, "\u{2F970}"=>"\u7E45".freeze, "\u{2F971}"=>"\u4334".freeze,
    "\u{2F972}"=>"\u{26228}".freeze, "\u{2F973}"=>"\u{26247}".freeze, "\u{2F974}"=>"\u4359".freeze, "\u{2F975}"=>"\u{262D9}".freeze, "\u{2F976}"=>"\u7F7A".freeze, "\u{2F977}"=>"\u{2633E}".freeze, "\u{2F978}"=>"\u7F95".freeze, "\u{2F979}"=>"\u7FFA".freeze,
    "\u{2F97A}"=>"\u8005".freeze, "\u{2F97B}"=>"\u{264DA}".freeze, "\u{2F97C}"=>"\u{26523}".freeze, "\u{2F97D}"=>"\u8060".freeze, "\u{2F97E}"=>"\u{265A8}".freeze, "\u{2F97F}"=>"\u8070".freeze, "\u{2F980}"=>"\u{2335F}".freeze, "\u{2F981}"=>"\u43D5".freeze,
    "\u{2F982}"=>"\u80B2".freeze, "\u{2F983}"=>"\u8103".freeze, "\u{2F984}"=>"\u440B".freeze, "\u{2F985}"=>"\u813E".freeze, "\u{2F986}"=>"\u5AB5".freeze, "\u{2F987}"=>"\u{267A7}".freeze, "\u{2F988}"=>"\u{267B5}".freeze, "\u{2F989}"=>"\u{23393}".freeze,
    "\u{2F98A}"=>"\u{2339C}".freeze, "\u{2F98B}"=>"\u8201".freeze, "\u{2F98C}"=>"\u8204".freeze, "\u{2F98D}"=>"\u8F9E".freeze, "\u{2F98E}"=>"\u446B".freeze, "\u{2F98F}"=>"\u8291".freeze, "\u{2F990}"=>"\u828B".freeze, "\u{2F991}"=>"\u829D".freeze,
    "\u{2F992}"=>"\u52B3".freeze, "\u{2F993}"=>"\u82B1".freeze, "\u{2F994}"=>"\u82B3".freeze, "\u{2F995}"=>"\u82BD".freeze, "\u{2F996}"=>"\u82E6".freeze, "\u{2F997}"=>"\u{26B3C}".freeze, "\u{2F998}"=>"\u82E5".freeze, "\u{2F999}"=>"\u831D".freeze,
    "\u{2F99A}"=>"\u8363".freeze, "\u{2F99B}"=>"\u83AD".freeze, "\u{2F99C}"=>"\u8323".freeze, "\u{2F99D}"=>"\u83BD".freeze, "\u{2F99E}"=>"\u83E7".freeze, "\u{2F99F}"=>"\u8457".freeze, "\u{2F9A0}"=>"\u8353".freeze, "\u{2F9A1}"=>"\u83CA".freeze,
    "\u{2F9A2}"=>"\u83CC".freeze, "\u{2F9A3}"=>"\u83DC".freeze, "\u{2F9A4}"=>"\u{26C36}".freeze, "\u{2F9A5}"=>"\u{26D6B}".freeze, "\u{2F9A6}"=>"\u{26CD5}".freeze, "\u{2F9A7}"=>"\u452B".freeze, "\u{2F9A8}"=>"\u84F1".freeze, "\u{2F9A9}"=>"\u84F3".freeze,
    "\u{2F9AA}"=>"\u8516".freeze, "\u{2F9AB}"=>"\u{273CA}".freeze, "\u{2F9AC}"=>"\u8564".freeze, "\u{2F9AD}"=>"\u{26F2C}".freeze, "\u{2F9AE}"=>"\u455D".freeze, "\u{2F9AF}"=>"\u4561".freeze, "\u{2F9B0}"=>"\u{26FB1}".freeze, "\u{2F9B1}"=>"\u{270D2}".freeze,
    "\u{2F9B2}"=>"\u456B".freeze, "\u{2F9B3}"=>"\u8650".freeze, "\u{2F9B4}"=>"\u865C".freeze, "\u{2F9B5}"=>"\u8667".freeze, "\u{2F9B6}"=>"\u8669".freeze, "\u{2F9B7}"=>"\u86A9".freeze, "\u{2F9B8}"=>"\u8688".freeze, "\u{2F9B9}"=>"\u870E".freeze,
    "\u{2F9BA}"=>"\u86E2".freeze, "\u{2F9BB}"=>"\u8779".freeze, "\u{2F9BC}"=>"\u8728".freeze, "\u{2F9BD}"=>"\u876B".freeze, "\u{2F9BE}"=>"\u8786".freeze, "\u{2F9BF}"=>"\u45D7".freeze, "\u{2F9C0}"=>"\u87E1".freeze, "\u{2F9C1}"=>"\u8801".freeze,
    "\u{2F9C2}"=>"\u45F9".freeze, "\u{2F9C3}"=>"\u8860".freeze, "\u{2F9C4}"=>"\u8863".freeze, "\u{2F9C5}"=>"\u{27667}".freeze, "\u{2F9C6}"=>"\u88D7".freeze, "\u{2F9C7}"=>"\u88DE".freeze, "\u{2F9C8}"=>"\u4635".freeze, "\u{2F9C9}"=>"\u88FA".freeze,
    "\u{2F9CA}"=>"\u34BB".freeze, "\u{2F9CB}"=>"\u{278AE}".freeze, "\u{2F9CC}"=>"\u{27966}".freeze, "\u{2F9CD}"=>"\u46BE".freeze, "\u{2F9CE}"=>"\u46C7".freeze, "\u{2F9CF}"=>"\u8AA0".freeze, "\u{2F9D0}"=>"\u8AED".freeze, "\u{2F9D1}"=>"\u8B8A".freeze,
    "\u{2F9D2}"=>"\u8C55".freeze, "\u{2F9D3}"=>"\u{27CA8}".freeze, "\u{2F9D4}"=>"\u8CAB".freeze, "\u{2F9D5}"=>"\u8CC1".freeze, "\u{2F9D6}"=>"\u8D1B".freeze, "\u{2F9D7}"=>"\u8D77".freeze, "\u{2F9D8}"=>"\u{27F2F}".freeze, "\u{2F9D9}"=>"\u{20804}".freeze,
    "\u{2F9DA}"=>"\u8DCB".freeze, "\u{2F9DB}"=>"\u8DBC".freeze, "\u{2F9DC}"=>"\u8DF0".freeze, "\u{2F9DD}"=>"\u{208DE}".freeze, "\u{2F9DE}"=>"\u8ED4".freeze, "\u{2F9DF}"=>"\u8F38".freeze, "\u{2F9E0}"=>"\u{285D2}".freeze, "\u{2F9E1}"=>"\u{285ED}".freeze,
    "\u{2F9E2}"=>"\u9094".freeze, "\u{2F9E3}"=>"\u90F1".freeze, "\u{2F9E4}"=>"\u9111".freeze, "\u{2F9E5}"=>"\u{2872E}".freeze, "\u{2F9E6}"=>"\u911B".freeze, "\u{2F9E7}"=>"\u9238".freeze, "\u{2F9E8}"=>"\u92D7".freeze, "\u{2F9E9}"=>"\u92D8".freeze,
    "\u{2F9EA}"=>"\u927C".freeze, "\u{2F9EB}"=>"\u93F9".freeze, "\u{2F9EC}"=>"\u9415".freeze, "\u{2F9ED}"=>"\u{28BFA}".freeze, "\u{2F9EE}"=>"\u958B".freeze, "\u{2F9EF}"=>"\u4995".freeze, "\u{2F9F0}"=>"\u95B7".freeze, "\u{2F9F1}"=>"\u{28D77}".freeze,
    "\u{2F9F2}"=>"\u49E6".freeze, "\u{2F9F3}"=>"\u96C3".freeze, "\u{2F9F4}"=>"\u5DB2".freeze, "\u{2F9F5}"=>"\u9723".freeze, "\u{2F9F6}"=>"\u{29145}".freeze, "\u{2F9F7}"=>"\u{2921A}".freeze, "\u{2F9F8}"=>"\u4A6E".freeze, "\u{2F9F9}"=>"\u4A76".freeze,
    "\u{2F9FA}"=>"\u97E0".freeze, "\u{2F9FB}"=>"\u{2940A}".freeze, "\u{2F9FC}"=>"\u4AB2".freeze, "\u{2F9FD}"=>"\u{29496}".freeze, "\u{2F9FE}"=>"\u980B".freeze, "\u{2F9FF}"=>"\u980B".freeze, "\u{2FA00}"=>"\u9829".freeze, "\u{2FA01}"=>"\u{295B6}".freeze,
    "\u{2FA02}"=>"\u98E2".freeze, "\u{2FA03}"=>"\u4B33".freeze, "\u{2FA04}"=>"\u9929".freeze, "\u{2FA05}"=>"\u99A7".freeze, "\u{2FA06}"=>"\u99C2".freeze, "\u{2FA07}"=>"\u99FE".freeze, "\u{2FA08}"=>"\u4BCE".freeze, "\u{2FA09}"=>"\u{29B30}".freeze,
    "\u{2FA0A}"=>"\u9B12".freeze, "\u{2FA0B}"=>"\u9C40".freeze, "\u{2FA0C}"=>"\u9CFD".freeze, "\u{2FA0D}"=>"\u4CCE".freeze, "\u{2FA0E}"=>"\u4CED".freeze, "\u{2FA0F}"=>"\u9D67".freeze, "\u{2FA10}"=>"\u{2A0CE}".freeze, "\u{2FA11}"=>"\u4CF8".freeze,
    "\u{2FA12}"=>"\u{2A105}".freeze, "\u{2FA13}"=>"\u{2A20E}".freeze, "\u{2FA14}"=>"\u{2A291}".freeze, "\u{2FA15}"=>"\u9EBB".freeze, "\u{2FA16}"=>"\u4D56".freeze, "\u{2FA17}"=>"\u9EF9".freeze, "\u{2FA18}"=>"\u9EFE".freeze, "\u{2FA19}"=>"\u9F05".freeze,
    "\u{2FA1A}"=>"\u9F0F".freeze, "\u{2FA1B}"=>"\u9F16".freeze, "\u{2FA1C}"=>"\u9F3B".freeze, "\u{2FA1D}"=>"\u{2A600}".freeze,
  }.freeze

  KOMPATIBLE_TABLE = {
    "\u00A0"=>" ".freeze, "\u00A8"=>" \u0308".freeze, "\u00AA"=>"a".freeze, "\u00AF"=>" \u0304".freeze, "\u00B2"=>"2".freeze, "\u00B3"=>"3".freeze, "\u00B4"=>" \u0301".freeze, "\u00B5"=>"\u03BC".freeze,
    "\u00B8"=>" \u0327".freeze, "\u00B9"=>"1".freeze, "\u00BA"=>"o".freeze, "\u00BC"=>"1\u20444".freeze, "\u00BD"=>"1\u20442".freeze, "\u00BE"=>"3\u20444".freeze, "\u0132"=>"IJ".freeze, "\u0133"=>"ij".freeze,
    "\u013F"=>"L\u00B7".freeze, "\u0140"=>"l\u00B7".freeze, "\u0149"=>"\u02BCn".freeze, "\u017F"=>"s".freeze, "\u01C4"=>"D\u017D".freeze, "\u01C5"=>"D\u017E".freeze, "\u01C6"=>"d\u017E".freeze, "\u01C7"=>"LJ".freeze,
    "\u01C8"=>"Lj".freeze, "\u01C9"=>"lj".freeze, "\u01CA"=>"NJ".freeze, "\u01CB"=>"Nj".freeze, "\u01CC"=>"nj".freeze, "\u01F1"=>"DZ".freeze, "\u01F2"=>"Dz".freeze, "\u01F3"=>"dz".freeze,
    "\u02B0"=>"h".freeze, "\u02B1"=>"\u0266".freeze, "\u02B2"=>"j".freeze, "\u02B3"=>"r".freeze, "\u02B4"=>"\u0279".freeze, "\u02B5"=>"\u027B".freeze, "\u02B6"=>"\u0281".freeze, "\u02B7"=>"w".freeze,
    "\u02B8"=>"y".freeze, "\u02D8"=>" \u0306".freeze, "\u02D9"=>" \u0307".freeze, "\u02DA"=>" \u030A".freeze, "\u02DB"=>" \u0328".freeze, "\u02DC"=>" \u0303".freeze, "\u02DD"=>" \u030B".freeze, "\u02E0"=>"\u0263".freeze,
    "\u02E1"=>"l".freeze, "\u02E2"=>"s".freeze, "\u02E3"=>"x".freeze, "\u02E4"=>"\u0295".freeze, "\u037A"=>" \u0345".freeze, "\u0384"=>" \u0301".freeze, "\u03D0"=>"\u03B2".freeze, "\u03D1"=>"\u03B8".freeze,
    "\u03D2"=>"\u03A5".freeze, "\u03D5"=>"\u03C6".freeze, "\u03D6"=>"\u03C0".freeze, "\u03F0"=>"\u03BA".freeze, "\u03F1"=>"\u03C1".freeze, "\u03F2"=>"\u03C2".freeze, "\u03F4"=>"\u0398".freeze, "\u03F5"=>"\u03B5".freeze,
    "\u03F9"=>"\u03A3".freeze, "\u0587"=>"\u0565\u0582".freeze, "\u0675"=>"\u0627\u0674".freeze, "\u0676"=>"\u0648\u0674".freeze, "\u0677"=>"\u06C7\u0674".freeze, "\u0678"=>"\u064A\u0674".freeze, "\u0E33"=>"\u0E4D\u0E32".freeze, "\u0EB3"=>"\u0ECD\u0EB2".freeze,
    "\u0EDC"=>"\u0EAB\u0E99".freeze, "\u0EDD"=>"\u0EAB\u0EA1".freeze, "\u0F0C"=>"\u0F0B".freeze, "\u0F77"=>"\u0FB2\u0F81".freeze, "\u0F79"=>"\u0FB3\u0F81".freeze, "\u10FC"=>"\u10DC".freeze, "\u1D2C"=>"A".freeze, "\u1D2D"=>"\u00C6".freeze,
    "\u1D2E"=>"B".freeze, "\u1D30"=>"D".freeze, "\u1D31"=>"E".freeze, "\u1D32"=>"\u018E".freeze, "\u1D33"=>"G".freeze, "\u1D34"=>"H".freeze, "\u1D35"=>"I".freeze, "\u1D36"=>"J".freeze,
    "\u1D37"=>"K".freeze, "\u1D38"=>"L".freeze, "\u1D39"=>"M".freeze, "\u1D3A"=>"N".freeze, "\u1D3C"=>"O".freeze, "\u1D3D"=>"\u0222".freeze, "\u1D3E"=>"P".freeze, "\u1D3F"=>"R".freeze,
    "\u1D40"=>"T".freeze, "\u1D41"=>"U".freeze, "\u1D42"=>"W".freeze, "\u1D43"=>"a".freeze, "\u1D44"=>"\u0250".freeze, "\u1D45"=>"\u0251".freeze, "\u1D46"=>"\u1D02".freeze, "\u1D47"=>"b".freeze,
    "\u1D48"=>"d".freeze, "\u1D49"=>"e".freeze, "\u1D4A"=>"\u0259".freeze, "\u1D4B"=>"\u025B".freeze, "\u1D4C"=>"\u025C".freeze, "\u1D4D"=>"g".freeze, "\u1D4F"=>"k".freeze, "\u1D50"=>"m".freeze,
    "\u1D51"=>"\u014B".freeze, "\u1D52"=>"o".freeze, "\u1D53"=>"\u0254".freeze, "\u1D54"=>"\u1D16".freeze, "\u1D55"=>"\u1D17".freeze, "\u1D56"=>"p".freeze, "\u1D57"=>"t".freeze, "\u1D58"=>"u".freeze,
    "\u1D59"=>"\u1D1D".freeze, "\u1D5A"=>"\u026F".freeze, "\u1D5B"=>"v".freeze, "\u1D5C"=>"\u1D25".freeze, "\u1D5D"=>"\u03B2".freeze, "\u1D5E"=>"\u03B3".freeze, "\u1D5F"=>"\u03B4".freeze, "\u1D60"=>"\u03C6".freeze,
    "\u1D61"=>"\u03C7".freeze, "\u1D62"=>"i".freeze, "\u1D63"=>"r".freeze, "\u1D64"=>"u".freeze, "\u1D65"=>"v".freeze, "\u1D66"=>"\u03B2".freeze, "\u1D67"=>"\u03B3".freeze, "\u1D68"=>"\u03C1".freeze,
    "\u1D69"=>"\u03C6".freeze, "\u1D6A"=>"\u03C7".freeze, "\u1D78"=>"\u043D".freeze, "\u1D9B"=>"\u0252".freeze, "\u1D9C"=>"c".freeze, "\u1D9D"=>"\u0255".freeze, "\u1D9E"=>"\u00F0".freeze, "\u1D9F"=>"\u025C".freeze,
    "\u1DA0"=>"f".freeze, "\u1DA1"=>"\u025F".freeze, "\u1DA2"=>"\u0261".freeze, "\u1DA3"=>"\u0265".freeze, "\u1DA4"=>"\u0268".freeze, "\u1DA5"=>"\u0269".freeze, "\u1DA6"=>"\u026A".freeze, "\u1DA7"=>"\u1D7B".freeze,
    "\u1DA8"=>"\u029D".freeze, "\u1DA9"=>"\u026D".freeze, "\u1DAA"=>"\u1D85".freeze, "\u1DAB"=>"\u029F".freeze, "\u1DAC"=>"\u0271".freeze, "\u1DAD"=>"\u0270".freeze, "\u1DAE"=>"\u0272".freeze, "\u1DAF"=>"\u0273".freeze,
    "\u1DB0"=>"\u0274".freeze, "\u1DB1"=>"\u0275".freeze, "\u1DB2"=>"\u0278".freeze, "\u1DB3"=>"\u0282".freeze, "\u1DB4"=>"\u0283".freeze, "\u1DB5"=>"\u01AB".freeze, "\u1DB6"=>"\u0289".freeze, "\u1DB7"=>"\u028A".freeze,
    "\u1DB8"=>"\u1D1C".freeze, "\u1DB9"=>"\u028B".freeze, "\u1DBA"=>"\u028C".freeze, "\u1DBB"=>"z".freeze, "\u1DBC"=>"\u0290".freeze, "\u1DBD"=>"\u0291".freeze, "\u1DBE"=>"\u0292".freeze, "\u1DBF"=>"\u03B8".freeze,
    "\u1E9A"=>"a\u02BE".freeze, "\u1FBD"=>" \u0313".freeze, "\u1FBF"=>" \u0313".freeze, "\u1FC0"=>" \u0342".freeze, "\u1FFE"=>" \u0314".freeze, "\u2002"=>" ".freeze, "\u2003"=>" ".freeze, "\u2004"=>" ".freeze,
    "\u2005"=>" ".freeze, "\u2006"=>" ".freeze, "\u2007"=>" ".freeze, "\u2008"=>" ".freeze, "\u2009"=>" ".freeze, "\u200A"=>" ".freeze, "\u2011"=>"\u2010".freeze, "\u2017"=>" \u0333".freeze,
    "\u2024"=>".".freeze, "\u2025"=>"..".freeze, "\u2026"=>"...".freeze, "\u202F"=>" ".freeze, "\u2033"=>"\u2032\u2032".freeze, "\u2034"=>"\u2032\u2032\u2032".freeze, "\u2036"=>"\u2035\u2035".freeze, "\u2037"=>"\u2035\u2035\u2035".freeze,
    "\u203C"=>"!!".freeze, "\u203E"=>" \u0305".freeze, "\u2047"=>"??".freeze, "\u2048"=>"?!".freeze, "\u2049"=>"!?".freeze, "\u2057"=>"\u2032\u2032\u2032\u2032".freeze, "\u205F"=>" ".freeze, "\u2070"=>"0".freeze,
    "\u2071"=>"i".freeze, "\u2074"=>"4".freeze, "\u2075"=>"5".freeze, "\u2076"=>"6".freeze, "\u2077"=>"7".freeze, "\u2078"=>"8".freeze, "\u2079"=>"9".freeze, "\u207A"=>"+".freeze,
    "\u207B"=>"\u2212".freeze, "\u207C"=>"=".freeze, "\u207D"=>"(".freeze, "\u207E"=>")".freeze, "\u207F"=>"n".freeze, "\u2080"=>"0".freeze, "\u2081"=>"1".freeze, "\u2082"=>"2".freeze,
    "\u2083"=>"3".freeze, "\u2084"=>"4".freeze, "\u2085"=>"5".freeze, "\u2086"=>"6".freeze, "\u2087"=>"7".freeze, "\u2088"=>"8".freeze, "\u2089"=>"9".freeze, "\u208A"=>"+".freeze,
    "\u208B"=>"\u2212".freeze, "\u208C"=>"=".freeze, "\u208D"=>"(".freeze, "\u208E"=>")".freeze, "\u2090"=>"a".freeze, "\u2091"=>"e".freeze, "\u2092"=>"o".freeze, "\u2093"=>"x".freeze,
    "\u2094"=>"\u0259".freeze, "\u2095"=>"h".freeze, "\u2096"=>"k".freeze, "\u2097"=>"l".freeze, "\u2098"=>"m".freeze, "\u2099"=>"n".freeze, "\u209A"=>"p".freeze, "\u209B"=>"s".freeze,
    "\u209C"=>"t".freeze, "\u20A8"=>"Rs".freeze, "\u2100"=>"a/c".freeze, "\u2101"=>"a/s".freeze, "\u2102"=>"C".freeze, "\u2103"=>"\u00B0C".freeze, "\u2105"=>"c/o".freeze, "\u2106"=>"c/u".freeze,
    "\u2107"=>"\u0190".freeze, "\u2109"=>"\u00B0F".freeze, "\u210A"=>"g".freeze, "\u210B"=>"H".freeze, "\u210C"=>"H".freeze, "\u210D"=>"H".freeze, "\u210E"=>"h".freeze, "\u210F"=>"\u0127".freeze,
    "\u2110"=>"I".freeze, "\u2111"=>"I".freeze, "\u2112"=>"L".freeze, "\u2113"=>"l".freeze, "\u2115"=>"N".freeze, "\u2116"=>"No".freeze, "\u2119"=>"P".freeze, "\u211A"=>"Q".freeze,
    "\u211B"=>"R".freeze, "\u211C"=>"R".freeze, "\u211D"=>"R".freeze, "\u2120"=>"SM".freeze, "\u2121"=>"TEL".freeze, "\u2122"=>"TM".freeze, "\u2124"=>"Z".freeze, "\u2128"=>"Z".freeze,
    "\u212C"=>"B".freeze, "\u212D"=>"C".freeze, "\u212F"=>"e".freeze, "\u2130"=>"E".freeze, "\u2131"=>"F".freeze, "\u2133"=>"M".freeze, "\u2134"=>"o".freeze, "\u2135"=>"\u05D0".freeze,
    "\u2136"=>"\u05D1".freeze, "\u2137"=>"\u05D2".freeze, "\u2138"=>"\u05D3".freeze, "\u2139"=>"i".freeze, "\u213B"=>"FAX".freeze, "\u213C"=>"\u03C0".freeze, "\u213D"=>"\u03B3".freeze, "\u213E"=>"\u0393".freeze,
    "\u213F"=>"\u03A0".freeze, "\u2140"=>"\u2211".freeze, "\u2145"=>"D".freeze, "\u2146"=>"d".freeze, "\u2147"=>"e".freeze, "\u2148"=>"i".freeze, "\u2149"=>"j".freeze, "\u2150"=>"1\u20447".freeze,
    "\u2151"=>"1\u20449".freeze, "\u2152"=>"1\u204410".freeze, "\u2153"=>"1\u20443".freeze, "\u2154"=>"2\u20443".freeze, "\u2155"=>"1\u20445".freeze, "\u2156"=>"2\u20445".freeze, "\u2157"=>"3\u20445".freeze, "\u2158"=>"4\u20445".freeze,
    "\u2159"=>"1\u20446".freeze, "\u215A"=>"5\u20446".freeze, "\u215B"=>"1\u20448".freeze, "\u215C"=>"3\u20448".freeze, "\u215D"=>"5\u20448".freeze, "\u215E"=>"7\u20448".freeze, "\u215F"=>"1\u2044".freeze, "\u2160"=>"I".freeze,
    "\u2161"=>"II".freeze, "\u2162"=>"III".freeze, "\u2163"=>"IV".freeze, "\u2164"=>"V".freeze, "\u2165"=>"VI".freeze, "\u2166"=>"VII".freeze, "\u2167"=>"VIII".freeze, "\u2168"=>"IX".freeze,
    "\u2169"=>"X".freeze, "\u216A"=>"XI".freeze, "\u216B"=>"XII".freeze, "\u216C"=>"L".freeze, "\u216D"=>"C".freeze, "\u216E"=>"D".freeze, "\u216F"=>"M".freeze, "\u2170"=>"i".freeze,
    "\u2171"=>"ii".freeze, "\u2172"=>"iii".freeze, "\u2173"=>"iv".freeze, "\u2174"=>"v".freeze, "\u2175"=>"vi".freeze, "\u2176"=>"vii".freeze, "\u2177"=>"viii".freeze, "\u2178"=>"ix".freeze,
    "\u2179"=>"x".freeze, "\u217A"=>"xi".freeze, "\u217B"=>"xii".freeze, "\u217C"=>"l".freeze, "\u217D"=>"c".freeze, "\u217E"=>"d".freeze, "\u217F"=>"m".freeze, "\u2189"=>"0\u20443".freeze,
    "\u222C"=>"\u222B\u222B".freeze, "\u222D"=>"\u222B\u222B\u222B".freeze, "\u222F"=>"\u222E\u222E".freeze, "\u2230"=>"\u222E\u222E\u222E".freeze, "\u2460"=>"1".freeze, "\u2461"=>"2".freeze, "\u2462"=>"3".freeze, "\u2463"=>"4".freeze,
    "\u2464"=>"5".freeze, "\u2465"=>"6".freeze, "\u2466"=>"7".freeze, "\u2467"=>"8".freeze, "\u2468"=>"9".freeze, "\u2469"=>"10".freeze, "\u246A"=>"11".freeze, "\u246B"=>"12".freeze,
    "\u246C"=>"13".freeze, "\u246D"=>"14".freeze, "\u246E"=>"15".freeze, "\u246F"=>"16".freeze, "\u2470"=>"17".freeze, "\u2471"=>"18".freeze, "\u2472"=>"19".freeze, "\u2473"=>"20".freeze,
    "\u2474"=>"(1)".freeze, "\u2475"=>"(2)".freeze, "\u2476"=>"(3)".freeze, "\u2477"=>"(4)".freeze, "\u2478"=>"(5)".freeze, "\u2479"=>"(6)".freeze, "\u247A"=>"(7)".freeze, "\u247B"=>"(8)".freeze,
    "\u247C"=>"(9)".freeze, "\u247D"=>"(10)".freeze, "\u247E"=>"(11)".freeze, "\u247F"=>"(12)".freeze, "\u2480"=>"(13)".freeze, "\u2481"=>"(14)".freeze, "\u2482"=>"(15)".freeze, "\u2483"=>"(16)".freeze,
    "\u2484"=>"(17)".freeze, "\u2485"=>"(18)".freeze, "\u2486"=>"(19)".freeze, "\u2487"=>"(20)".freeze, "\u2488"=>"1.".freeze, "\u2489"=>"2.".freeze, "\u248A"=>"3.".freeze, "\u248B"=>"4.".freeze,
    "\u248C"=>"5.".freeze, "\u248D"=>"6.".freeze, "\u248E"=>"7.".freeze, "\u248F"=>"8.".freeze, "\u2490"=>"9.".freeze, "\u2491"=>"10.".freeze, "\u2492"=>"11.".freeze, "\u2493"=>"12.".freeze,
    "\u2494"=>"13.".freeze, "\u2495"=>"14.".freeze, "\u2496"=>"15.".freeze, "\u2497"=>"16.".freeze, "\u2498"=>"17.".freeze, "\u2499"=>"18.".freeze, "\u249A"=>"19.".freeze, "\u249B"=>"20.".freeze,
    "\u249C"=>"(a)".freeze, "\u249D"=>"(b)".freeze, "\u249E"=>"(c)".freeze, "\u249F"=>"(d)".freeze, "\u24A0"=>"(e)".freeze, "\u24A1"=>"(f)".freeze, "\u24A2"=>"(g)".freeze, "\u24A3"=>"(h)".freeze,
    "\u24A4"=>"(i)".freeze, "\u24A5"=>"(j)".freeze, "\u24A6"=>"(k)".freeze, "\u24A7"=>"(l)".freeze, "\u24A8"=>"(m)".freeze, "\u24A9"=>"(n)".freeze, "\u24AA"=>"(o)".freeze, "\u24AB"=>"(p)".freeze,
    "\u24AC"=>"(q)".freeze, "\u24AD"=>"(r)".freeze, "\u24AE"=>"(s)".freeze, "\u24AF"=>"(t)".freeze, "\u24B0"=>"(u)".freeze, "\u24B1"=>"(v)".freeze, "\u24B2"=>"(w)".freeze, "\u24B3"=>"(x)".freeze,
    "\u24B4"=>"(y)".freeze, "\u24B5"=>"(z)".freeze, "\u24B6"=>"A".freeze, "\u24B7"=>"B".freeze, "\u24B8"=>"C".freeze, "\u24B9"=>"D".freeze, "\u24BA"=>"E".freeze, "\u24BB"=>"F".freeze,
    "\u24BC"=>"G".freeze, "\u24BD"=>"H".freeze, "\u24BE"=>"I".freeze, "\u24BF"=>"J".freeze, "\u24C0"=>"K".freeze, "\u24C1"=>"L".freeze, "\u24C2"=>"M".freeze, "\u24C3"=>"N".freeze,
    "\u24C4"=>"O".freeze, "\u24C5"=>"P".freeze, "\u24C6"=>"Q".freeze, "\u24C7"=>"R".freeze, "\u24C8"=>"S".freeze, "\u24C9"=>"T".freeze, "\u24CA"=>"U".freeze, "\u24CB"=>"V".freeze,
    "\u24CC"=>"W".freeze, "\u24CD"=>"X".freeze, "\u24CE"=>"Y".freeze, "\u24CF"=>"Z".freeze, "\u24D0"=>"a".freeze, "\u24D1"=>"b".freeze, "\u24D2"=>"c".freeze, "\u24D3"=>"d".freeze,
    "\u24D4"=>"e".freeze, "\u24D5"=>"f".freeze, "\u24D6"=>"g".freeze, "\u24D7"=>"h".freeze, "\u24D8"=>"i".freeze, "\u24D9"=>"j".freeze, "\u24DA"=>"k".freeze, "\u24DB"=>"l".freeze,
    "\u24DC"=>"m".freeze, "\u24DD"=>"n".freeze, "\u24DE"=>"o".freeze, "\u24DF"=>"p".freeze, "\u24E0"=>"q".freeze, "\u24E1"=>"r".freeze, "\u24E2"=>"s".freeze, "\u24E3"=>"t".freeze,
    "\u24E4"=>"u".freeze, "\u24E5"=>"v".freeze, "\u24E6"=>"w".freeze, "\u24E7"=>"x".freeze, "\u24E8"=>"y".freeze, "\u24E9"=>"z".freeze, "\u24EA"=>"0".freeze, "\u2A0C"=>"\u222B\u222B\u222B\u222B".freeze,
    "\u2A74"=>"::=".freeze, "\u2A75"=>"==".freeze, "\u2A76"=>"===".freeze, "\u2C7C"=>"j".freeze, "\u2C7D"=>"V".freeze, "\u2D6F"=>"\u2D61".freeze, "\u2E9F"=>"\u6BCD".freeze, "\u2EF3"=>"\u9F9F".freeze,
    "\u2F00"=>"\u4E00".freeze, "\u2F01"=>"\u4E28".freeze, "\u2F02"=>"\u4E36".freeze, "\u2F03"=>"\u4E3F".freeze, "\u2F04"=>"\u4E59".freeze, "\u2F05"=>"\u4E85".freeze, "\u2F06"=>"\u4E8C".freeze, "\u2F07"=>"\u4EA0".freeze,
    "\u2F08"=>"\u4EBA".freeze, "\u2F09"=>"\u513F".freeze, "\u2F0A"=>"\u5165".freeze, "\u2F0B"=>"\u516B".freeze, "\u2F0C"=>"\u5182".freeze, "\u2F0D"=>"\u5196".freeze, "\u2F0E"=>"\u51AB".freeze, "\u2F0F"=>"\u51E0".freeze,
    "\u2F10"=>"\u51F5".freeze, "\u2F11"=>"\u5200".freeze, "\u2F12"=>"\u529B".freeze, "\u2F13"=>"\u52F9".freeze, "\u2F14"=>"\u5315".freeze, "\u2F15"=>"\u531A".freeze, "\u2F16"=>"\u5338".freeze, "\u2F17"=>"\u5341".freeze,
    "\u2F18"=>"\u535C".freeze, "\u2F19"=>"\u5369".freeze, "\u2F1A"=>"\u5382".freeze, "\u2F1B"=>"\u53B6".freeze, "\u2F1C"=>"\u53C8".freeze, "\u2F1D"=>"\u53E3".freeze, "\u2F1E"=>"\u56D7".freeze, "\u2F1F"=>"\u571F".freeze,
    "\u2F20"=>"\u58EB".freeze, "\u2F21"=>"\u5902".freeze, "\u2F22"=>"\u590A".freeze, "\u2F23"=>"\u5915".freeze, "\u2F24"=>"\u5927".freeze, "\u2F25"=>"\u5973".freeze, "\u2F26"=>"\u5B50".freeze, "\u2F27"=>"\u5B80".freeze,
    "\u2F28"=>"\u5BF8".freeze, "\u2F29"=>"\u5C0F".freeze, "\u2F2A"=>"\u5C22".freeze, "\u2F2B"=>"\u5C38".freeze, "\u2F2C"=>"\u5C6E".freeze, "\u2F2D"=>"\u5C71".freeze, "\u2F2E"=>"\u5DDB".freeze, "\u2F2F"=>"\u5DE5".freeze,
    "\u2F30"=>"\u5DF1".freeze, "\u2F31"=>"\u5DFE".freeze, "\u2F32"=>"\u5E72".freeze, "\u2F33"=>"\u5E7A".freeze, "\u2F34"=>"\u5E7F".freeze, "\u2F35"=>"\u5EF4".freeze, "\u2F36"=>"\u5EFE".freeze, "\u2F37"=>"\u5F0B".freeze,
    "\u2F38"=>"\u5F13".freeze, "\u2F39"=>"\u5F50".freeze, "\u2F3A"=>"\u5F61".freeze, "\u2F3B"=>"\u5F73".freeze, "\u2F3C"=>"\u5FC3".freeze, "\u2F3D"=>"\u6208".freeze, "\u2F3E"=>"\u6236".freeze, "\u2F3F"=>"\u624B".freeze,
    "\u2F40"=>"\u652F".freeze, "\u2F41"=>"\u6534".freeze, "\u2F42"=>"\u6587".freeze, "\u2F43"=>"\u6597".freeze, "\u2F44"=>"\u65A4".freeze, "\u2F45"=>"\u65B9".freeze, "\u2F46"=>"\u65E0".freeze, "\u2F47"=>"\u65E5".freeze,
    "\u2F48"=>"\u66F0".freeze, "\u2F49"=>"\u6708".freeze, "\u2F4A"=>"\u6728".freeze, "\u2F4B"=>"\u6B20".freeze, "\u2F4C"=>"\u6B62".freeze, "\u2F4D"=>"\u6B79".freeze, "\u2F4E"=>"\u6BB3".freeze, "\u2F4F"=>"\u6BCB".freeze,
    "\u2F50"=>"\u6BD4".freeze, "\u2F51"=>"\u6BDB".freeze, "\u2F52"=>"\u6C0F".freeze, "\u2F53"=>"\u6C14".freeze, "\u2F54"=>"\u6C34".freeze, "\u2F55"=>"\u706B".freeze, "\u2F56"=>"\u722A".freeze, "\u2F57"=>"\u7236".freeze,
    "\u2F58"=>"\u723B".freeze, "\u2F59"=>"\u723F".freeze, "\u2F5A"=>"\u7247".freeze, "\u2F5B"=>"\u7259".freeze, "\u2F5C"=>"\u725B".freeze, "\u2F5D"=>"\u72AC".freeze, "\u2F5E"=>"\u7384".freeze, "\u2F5F"=>"\u7389".freeze,
    "\u2F60"=>"\u74DC".freeze, "\u2F61"=>"\u74E6".freeze, "\u2F62"=>"\u7518".freeze, "\u2F63"=>"\u751F".freeze, "\u2F64"=>"\u7528".freeze, "\u2F65"=>"\u7530".freeze, "\u2F66"=>"\u758B".freeze, "\u2F67"=>"\u7592".freeze,
    "\u2F68"=>"\u7676".freeze, "\u2F69"=>"\u767D".freeze, "\u2F6A"=>"\u76AE".freeze, "\u2F6B"=>"\u76BF".freeze, "\u2F6C"=>"\u76EE".freeze, "\u2F6D"=>"\u77DB".freeze, "\u2F6E"=>"\u77E2".freeze, "\u2F6F"=>"\u77F3".freeze,
    "\u2F70"=>"\u793A".freeze, "\u2F71"=>"\u79B8".freeze, "\u2F72"=>"\u79BE".freeze, "\u2F73"=>"\u7A74".freeze, "\u2F74"=>"\u7ACB".freeze, "\u2F75"=>"\u7AF9".freeze, "\u2F76"=>"\u7C73".freeze, "\u2F77"=>"\u7CF8".freeze,
    "\u2F78"=>"\u7F36".freeze, "\u2F79"=>"\u7F51".freeze, "\u2F7A"=>"\u7F8A".freeze, "\u2F7B"=>"\u7FBD".freeze, "\u2F7C"=>"\u8001".freeze, "\u2F7D"=>"\u800C".freeze, "\u2F7E"=>"\u8012".freeze, "\u2F7F"=>"\u8033".freeze,
    "\u2F80"=>"\u807F".freeze, "\u2F81"=>"\u8089".freeze, "\u2F82"=>"\u81E3".freeze, "\u2F83"=>"\u81EA".freeze, "\u2F84"=>"\u81F3".freeze, "\u2F85"=>"\u81FC".freeze, "\u2F86"=>"\u820C".freeze, "\u2F87"=>"\u821B".freeze,
    "\u2F88"=>"\u821F".freeze, "\u2F89"=>"\u826E".freeze, "\u2F8A"=>"\u8272".freeze, "\u2F8B"=>"\u8278".freeze, "\u2F8C"=>"\u864D".freeze, "\u2F8D"=>"\u866B".freeze, "\u2F8E"=>"\u8840".freeze, "\u2F8F"=>"\u884C".freeze,
    "\u2F90"=>"\u8863".freeze, "\u2F91"=>"\u897E".freeze, "\u2F92"=>"\u898B".freeze, "\u2F93"=>"\u89D2".freeze, "\u2F94"=>"\u8A00".freeze, "\u2F95"=>"\u8C37".freeze, "\u2F96"=>"\u8C46".freeze, "\u2F97"=>"\u8C55".freeze,
    "\u2F98"=>"\u8C78".freeze, "\u2F99"=>"\u8C9D".freeze, "\u2F9A"=>"\u8D64".freeze, "\u2F9B"=>"\u8D70".freeze, "\u2F9C"=>"\u8DB3".freeze, "\u2F9D"=>"\u8EAB".freeze, "\u2F9E"=>"\u8ECA".freeze, "\u2F9F"=>"\u8F9B".freeze,
    "\u2FA0"=>"\u8FB0".freeze, "\u2FA1"=>"\u8FB5".freeze, "\u2FA2"=>"\u9091".freeze, "\u2FA3"=>"\u9149".freeze, "\u2FA4"=>"\u91C6".freeze, "\u2FA5"=>"\u91CC".freeze, "\u2FA6"=>"\u91D1".freeze, "\u2FA7"=>"\u9577".freeze,
    "\u2FA8"=>"\u9580".freeze, "\u2FA9"=>"\u961C".freeze, "\u2FAA"=>"\u96B6".freeze, "\u2FAB"=>"\u96B9".freeze, "\u2FAC"=>"\u96E8".freeze, "\u2FAD"=>"\u9751".freeze, "\u2FAE"=>"\u975E".freeze, "\u2FAF"=>"\u9762".freeze,
    "\u2FB0"=>"\u9769".freeze, "\u2FB1"=>"\u97CB".freeze, "\u2FB2"=>"\u97ED".freeze, "\u2FB3"=>"\u97F3".freeze, "\u2FB4"=>"\u9801".freeze, "\u2FB5"=>"\u98A8".freeze, "\u2FB6"=>"\u98DB".freeze, "\u2FB7"=>"\u98DF".freeze,
    "\u2FB8"=>"\u9996".freeze, "\u2FB9"=>"\u9999".freeze, "\u2FBA"=>"\u99AC".freeze, "\u2FBB"=>"\u9AA8".freeze, "\u2FBC"=>"\u9AD8".freeze, "\u2FBD"=>"\u9ADF".freeze, "\u2FBE"=>"\u9B25".freeze, "\u2FBF"=>"\u9B2F".freeze,
    "\u2FC0"=>"\u9B32".freeze, "\u2FC1"=>"\u9B3C".freeze, "\u2FC2"=>"\u9B5A".freeze, "\u2FC3"=>"\u9CE5".freeze, "\u2FC4"=>"\u9E75".freeze, "\u2FC5"=>"\u9E7F".freeze, "\u2FC6"=>"\u9EA5".freeze, "\u2FC7"=>"\u9EBB".freeze,
    "\u2FC8"=>"\u9EC3".freeze, "\u2FC9"=>"\u9ECD".freeze, "\u2FCA"=>"\u9ED1".freeze, "\u2FCB"=>"\u9EF9".freeze, "\u2FCC"=>"\u9EFD".freeze, "\u2FCD"=>"\u9F0E".freeze, "\u2FCE"=>"\u9F13".freeze, "\u2FCF"=>"\u9F20".freeze,
    "\u2FD0"=>"\u9F3B".freeze, "\u2FD1"=>"\u9F4A".freeze, "\u2FD2"=>"\u9F52".freeze, "\u2FD3"=>"\u9F8D".freeze, "\u2FD4"=>"\u9F9C".freeze, "\u2FD5"=>"\u9FA0".freeze, "\u3000"=>" ".freeze, "\u3036"=>"\u3012".freeze,
    "\u3038"=>"\u5341".freeze, "\u3039"=>"\u5344".freeze, "\u303A"=>"\u5345".freeze, "\u309B"=>" \u3099".freeze, "\u309C"=>" \u309A".freeze, "\u309F"=>"\u3088\u308A".freeze, "\u30FF"=>"\u30B3\u30C8".freeze, "\u3131"=>"\u1100".freeze,
    "\u3132"=>"\u1101".freeze, "\u3133"=>"\u11AA".freeze, "\u3134"=>"\u1102".freeze, "\u3135"=>"\u11AC".freeze, "\u3136"=>"\u11AD".freeze, "\u3137"=>"\u1103".freeze, "\u3138"=>"\u1104".freeze, "\u3139"=>"\u1105".freeze,
    "\u313A"=>"\u11B0".freeze, "\u313B"=>"\u11B1".freeze, "\u313C"=>"\u11B2".freeze, "\u313D"=>"\u11B3".freeze, "\u313E"=>"\u11B4".freeze, "\u313F"=>"\u11B5".freeze, "\u3140"=>"\u111A".freeze, "\u3141"=>"\u1106".freeze,
    "\u3142"=>"\u1107".freeze, "\u3143"=>"\u1108".freeze, "\u3144"=>"\u1121".freeze, "\u3145"=>"\u1109".freeze, "\u3146"=>"\u110A".freeze, "\u3147"=>"\u110B".freeze, "\u3148"=>"\u110C".freeze, "\u3149"=>"\u110D".freeze,
    "\u314A"=>"\u110E".freeze, "\u314B"=>"\u110F".freeze, "\u314C"=>"\u1110".freeze, "\u314D"=>"\u1111".freeze, "\u314E"=>"\u1112".freeze, "\u314F"=>"\u1161".freeze, "\u3150"=>"\u1162".freeze, "\u3151"=>"\u1163".freeze,
    "\u3152"=>"\u1164".freeze, "\u3153"=>"\u1165".freeze, "\u3154"=>"\u1166".freeze, "\u3155"=>"\u1167".freeze, "\u3156"=>"\u1168".freeze, "\u3157"=>"\u1169".freeze, "\u3158"=>"\u116A".freeze, "\u3159"=>"\u116B".freeze,
    "\u315A"=>"\u116C".freeze, "\u315B"=>"\u116D".freeze, "\u315C"=>"\u116E".freeze, "\u315D"=>"\u116F".freeze, "\u315E"=>"\u1170".freeze, "\u315F"=>"\u1171".freeze, "\u3160"=>"\u1172".freeze, "\u3161"=>"\u1173".freeze,
    "\u3162"=>"\u1174".freeze, "\u3163"=>"\u1175".freeze, "\u3164"=>"\u1160".freeze, "\u3165"=>"\u1114".freeze, "\u3166"=>"\u1115".freeze, "\u3167"=>"\u11C7".freeze, "\u3168"=>"\u11C8".freeze, "\u3169"=>"\u11CC".freeze,
    "\u316A"=>"\u11CE".freeze, "\u316B"=>"\u11D3".freeze, "\u316C"=>"\u11D7".freeze, "\u316D"=>"\u11D9".freeze, "\u316E"=>"\u111C".freeze, "\u316F"=>"\u11DD".freeze, "\u3170"=>"\u11DF".freeze, "\u3171"=>"\u111D".freeze,
    "\u3172"=>"\u111E".freeze, "\u3173"=>"\u1120".freeze, "\u3174"=>"\u1122".freeze, "\u3175"=>"\u1123".freeze, "\u3176"=>"\u1127".freeze, "\u3177"=>"\u1129".freeze, "\u3178"=>"\u112B".freeze, "\u3179"=>"\u112C".freeze,
    "\u317A"=>"\u112D".freeze, "\u317B"=>"\u112E".freeze, "\u317C"=>"\u112F".freeze, "\u317D"=>"\u1132".freeze, "\u317E"=>"\u1136".freeze, "\u317F"=>"\u1140".freeze, "\u3180"=>"\u1147".freeze, "\u3181"=>"\u114C".freeze,
    "\u3182"=>"\u11F1".freeze, "\u3183"=>"\u11F2".freeze, "\u3184"=>"\u1157".freeze, "\u3185"=>"\u1158".freeze, "\u3186"=>"\u1159".freeze, "\u3187"=>"\u1184".freeze, "\u3188"=>"\u1185".freeze, "\u3189"=>"\u1188".freeze,
    "\u318A"=>"\u1191".freeze, "\u318B"=>"\u1192".freeze, "\u318C"=>"\u1194".freeze, "\u318D"=>"\u119E".freeze, "\u318E"=>"\u11A1".freeze, "\u3192"=>"\u4E00".freeze, "\u3193"=>"\u4E8C".freeze, "\u3194"=>"\u4E09".freeze,
    "\u3195"=>"\u56DB".freeze, "\u3196"=>"\u4E0A".freeze, "\u3197"=>"\u4E2D".freeze, "\u3198"=>"\u4E0B".freeze, "\u3199"=>"\u7532".freeze, "\u319A"=>"\u4E59".freeze, "\u319B"=>"\u4E19".freeze, "\u319C"=>"\u4E01".freeze,
    "\u319D"=>"\u5929".freeze, "\u319E"=>"\u5730".freeze, "\u319F"=>"\u4EBA".freeze, "\u3200"=>"(\u1100)".freeze, "\u3201"=>"(\u1102)".freeze, "\u3202"=>"(\u1103)".freeze, "\u3203"=>"(\u1105)".freeze, "\u3204"=>"(\u1106)".freeze,
    "\u3205"=>"(\u1107)".freeze, "\u3206"=>"(\u1109)".freeze, "\u3207"=>"(\u110B)".freeze, "\u3208"=>"(\u110C)".freeze, "\u3209"=>"(\u110E)".freeze, "\u320A"=>"(\u110F)".freeze, "\u320B"=>"(\u1110)".freeze, "\u320C"=>"(\u1111)".freeze,
    "\u320D"=>"(\u1112)".freeze, "\u320E"=>"(\u1100\u1161)".freeze, "\u320F"=>"(\u1102\u1161)".freeze, "\u3210"=>"(\u1103\u1161)".freeze, "\u3211"=>"(\u1105\u1161)".freeze, "\u3212"=>"(\u1106\u1161)".freeze, "\u3213"=>"(\u1107\u1161)".freeze, "\u3214"=>"(\u1109\u1161)".freeze,
    "\u3215"=>"(\u110B\u1161)".freeze, "\u3216"=>"(\u110C\u1161)".freeze, "\u3217"=>"(\u110E\u1161)".freeze, "\u3218"=>"(\u110F\u1161)".freeze, "\u3219"=>"(\u1110\u1161)".freeze, "\u321A"=>"(\u1111\u1161)".freeze, "\u321B"=>"(\u1112\u1161)".freeze, "\u321C"=>"(\u110C\u116E)".freeze,
    "\u321D"=>"(\u110B\u1169\u110C\u1165\u11AB)".freeze, "\u321E"=>"(\u110B\u1169\u1112\u116E)".freeze, "\u3220"=>"(\u4E00)".freeze, "\u3221"=>"(\u4E8C)".freeze, "\u3222"=>"(\u4E09)".freeze, "\u3223"=>"(\u56DB)".freeze, "\u3224"=>"(\u4E94)".freeze, "\u3225"=>"(\u516D)".freeze,
    "\u3226"=>"(\u4E03)".freeze, "\u3227"=>"(\u516B)".freeze, "\u3228"=>"(\u4E5D)".freeze, "\u3229"=>"(\u5341)".freeze, "\u322A"=>"(\u6708)".freeze, "\u322B"=>"(\u706B)".freeze, "\u322C"=>"(\u6C34)".freeze, "\u322D"=>"(\u6728)".freeze,
    "\u322E"=>"(\u91D1)".freeze, "\u322F"=>"(\u571F)".freeze, "\u3230"=>"(\u65E5)".freeze, "\u3231"=>"(\u682A)".freeze, "\u3232"=>"(\u6709)".freeze, "\u3233"=>"(\u793E)".freeze, "\u3234"=>"(\u540D)".freeze, "\u3235"=>"(\u7279)".freeze,
    "\u3236"=>"(\u8CA1)".freeze, "\u3237"=>"(\u795D)".freeze, "\u3238"=>"(\u52B4)".freeze, "\u3239"=>"(\u4EE3)".freeze, "\u323A"=>"(\u547C)".freeze, "\u323B"=>"(\u5B66)".freeze, "\u323C"=>"(\u76E3)".freeze, "\u323D"=>"(\u4F01)".freeze,
    "\u323E"=>"(\u8CC7)".freeze, "\u323F"=>"(\u5354)".freeze, "\u3240"=>"(\u796D)".freeze, "\u3241"=>"(\u4F11)".freeze, "\u3242"=>"(\u81EA)".freeze, "\u3243"=>"(\u81F3)".freeze, "\u3244"=>"\u554F".freeze, "\u3245"=>"\u5E7C".freeze,
    "\u3246"=>"\u6587".freeze, "\u3247"=>"\u7B8F".freeze, "\u3250"=>"PTE".freeze, "\u3251"=>"21".freeze, "\u3252"=>"22".freeze, "\u3253"=>"23".freeze, "\u3254"=>"24".freeze, "\u3255"=>"25".freeze,
    "\u3256"=>"26".freeze, "\u3257"=>"27".freeze, "\u3258"=>"28".freeze, "\u3259"=>"29".freeze, "\u325A"=>"30".freeze, "\u325B"=>"31".freeze, "\u325C"=>"32".freeze, "\u325D"=>"33".freeze,
    "\u325E"=>"34".freeze, "\u325F"=>"35".freeze, "\u3260"=>"\u1100".freeze, "\u3261"=>"\u1102".freeze, "\u3262"=>"\u1103".freeze, "\u3263"=>"\u1105".freeze, "\u3264"=>"\u1106".freeze, "\u3265"=>"\u1107".freeze,
    "\u3266"=>"\u1109".freeze, "\u3267"=>"\u110B".freeze, "\u3268"=>"\u110C".freeze, "\u3269"=>"\u110E".freeze, "\u326A"=>"\u110F".freeze, "\u326B"=>"\u1110".freeze, "\u326C"=>"\u1111".freeze, "\u326D"=>"\u1112".freeze,
    "\u326E"=>"\u1100\u1161".freeze, "\u326F"=>"\u1102\u1161".freeze, "\u3270"=>"\u1103\u1161".freeze, "\u3271"=>"\u1105\u1161".freeze, "\u3272"=>"\u1106\u1161".freeze, "\u3273"=>"\u1107\u1161".freeze, "\u3274"=>"\u1109\u1161".freeze, "\u3275"=>"\u110B\u1161".freeze,
    "\u3276"=>"\u110C\u1161".freeze, "\u3277"=>"\u110E\u1161".freeze, "\u3278"=>"\u110F\u1161".freeze, "\u3279"=>"\u1110\u1161".freeze, "\u327A"=>"\u1111\u1161".freeze, "\u327B"=>"\u1112\u1161".freeze, "\u327C"=>"\u110E\u1161\u11B7\u1100\u1169".freeze, "\u327D"=>"\u110C\u116E\u110B\u1174".freeze,
    "\u327E"=>"\u110B\u116E".freeze, "\u3280"=>"\u4E00".freeze, "\u3281"=>"\u4E8C".freeze, "\u3282"=>"\u4E09".freeze, "\u3283"=>"\u56DB".freeze, "\u3284"=>"\u4E94".freeze, "\u3285"=>"\u516D".freeze, "\u3286"=>"\u4E03".freeze,
    "\u3287"=>"\u516B".freeze, "\u3288"=>"\u4E5D".freeze, "\u3289"=>"\u5341".freeze, "\u328A"=>"\u6708".freeze, "\u328B"=>"\u706B".freeze, "\u328C"=>"\u6C34".freeze, "\u328D"=>"\u6728".freeze, "\u328E"=>"\u91D1".freeze,
    "\u328F"=>"\u571F".freeze, "\u3290"=>"\u65E5".freeze, "\u3291"=>"\u682A".freeze, "\u3292"=>"\u6709".freeze, "\u3293"=>"\u793E".freeze, "\u3294"=>"\u540D".freeze, "\u3295"=>"\u7279".freeze, "\u3296"=>"\u8CA1".freeze,
    "\u3297"=>"\u795D".freeze, "\u3298"=>"\u52B4".freeze, "\u3299"=>"\u79D8".freeze, "\u329A"=>"\u7537".freeze, "\u329B"=>"\u5973".freeze, "\u329C"=>"\u9069".freeze, "\u329D"=>"\u512A".freeze, "\u329E"=>"\u5370".freeze,
    "\u329F"=>"\u6CE8".freeze, "\u32A0"=>"\u9805".freeze, "\u32A1"=>"\u4F11".freeze, "\u32A2"=>"\u5199".freeze, "\u32A3"=>"\u6B63".freeze, "\u32A4"=>"\u4E0A".freeze, "\u32A5"=>"\u4E2D".freeze, "\u32A6"=>"\u4E0B".freeze,
    "\u32A7"=>"\u5DE6".freeze, "\u32A8"=>"\u53F3".freeze, "\u32A9"=>"\u533B".freeze, "\u32AA"=>"\u5B97".freeze, "\u32AB"=>"\u5B66".freeze, "\u32AC"=>"\u76E3".freeze, "\u32AD"=>"\u4F01".freeze, "\u32AE"=>"\u8CC7".freeze,
    "\u32AF"=>"\u5354".freeze, "\u32B0"=>"\u591C".freeze, "\u32B1"=>"36".freeze, "\u32B2"=>"37".freeze, "\u32B3"=>"38".freeze, "\u32B4"=>"39".freeze, "\u32B5"=>"40".freeze, "\u32B6"=>"41".freeze,
    "\u32B7"=>"42".freeze, "\u32B8"=>"43".freeze, "\u32B9"=>"44".freeze, "\u32BA"=>"45".freeze, "\u32BB"=>"46".freeze, "\u32BC"=>"47".freeze, "\u32BD"=>"48".freeze, "\u32BE"=>"49".freeze,
    "\u32BF"=>"50".freeze, "\u32C0"=>"1\u6708".freeze, "\u32C1"=>"2\u6708".freeze, "\u32C2"=>"3\u6708".freeze, "\u32C3"=>"4\u6708".freeze, "\u32C4"=>"5\u6708".freeze, "\u32C5"=>"6\u6708".freeze, "\u32C6"=>"7\u6708".freeze,
    "\u32C7"=>"8\u6708".freeze, "\u32C8"=>"9\u6708".freeze, "\u32C9"=>"10\u6708".freeze, "\u32CA"=>"11\u6708".freeze, "\u32CB"=>"12\u6708".freeze, "\u32CC"=>"Hg".freeze, "\u32CD"=>"erg".freeze, "\u32CE"=>"eV".freeze,
    "\u32CF"=>"LTD".freeze, "\u32D0"=>"\u30A2".freeze, "\u32D1"=>"\u30A4".freeze, "\u32D2"=>"\u30A6".freeze, "\u32D3"=>"\u30A8".freeze, "\u32D4"=>"\u30AA".freeze, "\u32D5"=>"\u30AB".freeze, "\u32D6"=>"\u30AD".freeze,
    "\u32D7"=>"\u30AF".freeze, "\u32D8"=>"\u30B1".freeze, "\u32D9"=>"\u30B3".freeze, "\u32DA"=>"\u30B5".freeze, "\u32DB"=>"\u30B7".freeze, "\u32DC"=>"\u30B9".freeze, "\u32DD"=>"\u30BB".freeze, "\u32DE"=>"\u30BD".freeze,
    "\u32DF"=>"\u30BF".freeze, "\u32E0"=>"\u30C1".freeze, "\u32E1"=>"\u30C4".freeze, "\u32E2"=>"\u30C6".freeze, "\u32E3"=>"\u30C8".freeze, "\u32E4"=>"\u30CA".freeze, "\u32E5"=>"\u30CB".freeze, "\u32E6"=>"\u30CC".freeze,
    "\u32E7"=>"\u30CD".freeze, "\u32E8"=>"\u30CE".freeze, "\u32E9"=>"\u30CF".freeze, "\u32EA"=>"\u30D2".freeze, "\u32EB"=>"\u30D5".freeze, "\u32EC"=>"\u30D8".freeze, "\u32ED"=>"\u30DB".freeze, "\u32EE"=>"\u30DE".freeze,
    "\u32EF"=>"\u30DF".freeze, "\u32F0"=>"\u30E0".freeze, "\u32F1"=>"\u30E1".freeze, "\u32F2"=>"\u30E2".freeze, "\u32F3"=>"\u30E4".freeze, "\u32F4"=>"\u30E6".freeze, "\u32F5"=>"\u30E8".freeze, "\u32F6"=>"\u30E9".freeze,
    "\u32F7"=>"\u30EA".freeze, "\u32F8"=>"\u30EB".freeze, "\u32F9"=>"\u30EC".freeze, "\u32FA"=>"\u30ED".freeze, "\u32FB"=>"\u30EF".freeze, "\u32FC"=>"\u30F0".freeze, "\u32FD"=>"\u30F1".freeze, "\u32FE"=>"\u30F2".freeze,
    "\u3300"=>"\u30A2\u30D1\u30FC\u30C8".freeze, "\u3301"=>"\u30A2\u30EB\u30D5\u30A1".freeze, "\u3302"=>"\u30A2\u30F3\u30DA\u30A2".freeze, "\u3303"=>"\u30A2\u30FC\u30EB".freeze, "\u3304"=>"\u30A4\u30CB\u30F3\u30B0".freeze, "\u3305"=>"\u30A4\u30F3\u30C1".freeze, "\u3306"=>"\u30A6\u30A9\u30F3".freeze, "\u3307"=>"\u30A8\u30B9\u30AF\u30FC\u30C9".freeze,
    "\u3308"=>"\u30A8\u30FC\u30AB\u30FC".freeze, "\u3309"=>"\u30AA\u30F3\u30B9".freeze, "\u330A"=>"\u30AA\u30FC\u30E0".freeze, "\u330B"=>"\u30AB\u30A4\u30EA".freeze, "\u330C"=>"\u30AB\u30E9\u30C3\u30C8".freeze, "\u330D"=>"\u30AB\u30ED\u30EA\u30FC".freeze, "\u330E"=>"\u30AC\u30ED\u30F3".freeze, "\u330F"=>"\u30AC\u30F3\u30DE".freeze,
    "\u3310"=>"\u30AE\u30AC".freeze, "\u3311"=>"\u30AE\u30CB\u30FC".freeze, "\u3312"=>"\u30AD\u30E5\u30EA\u30FC".freeze, "\u3313"=>"\u30AE\u30EB\u30C0\u30FC".freeze, "\u3314"=>"\u30AD\u30ED".freeze, "\u3315"=>"\u30AD\u30ED\u30B0\u30E9\u30E0".freeze, "\u3316"=>"\u30AD\u30ED\u30E1\u30FC\u30C8\u30EB".freeze, "\u3317"=>"\u30AD\u30ED\u30EF\u30C3\u30C8".freeze,
    "\u3318"=>"\u30B0\u30E9\u30E0".freeze, "\u3319"=>"\u30B0\u30E9\u30E0\u30C8\u30F3".freeze, "\u331A"=>"\u30AF\u30EB\u30BC\u30A4\u30ED".freeze, "\u331B"=>"\u30AF\u30ED\u30FC\u30CD".freeze, "\u331C"=>"\u30B1\u30FC\u30B9".freeze, "\u331D"=>"\u30B3\u30EB\u30CA".freeze, "\u331E"=>"\u30B3\u30FC\u30DD".freeze, "\u331F"=>"\u30B5\u30A4\u30AF\u30EB".freeze,
    "\u3320"=>"\u30B5\u30F3\u30C1\u30FC\u30E0".freeze, "\u3321"=>"\u30B7\u30EA\u30F3\u30B0".freeze, "\u3322"=>"\u30BB\u30F3\u30C1".freeze, "\u3323"=>"\u30BB\u30F3\u30C8".freeze, "\u3324"=>"\u30C0\u30FC\u30B9".freeze, "\u3325"=>"\u30C7\u30B7".freeze, "\u3326"=>"\u30C9\u30EB".freeze, "\u3327"=>"\u30C8\u30F3".freeze,
    "\u3328"=>"\u30CA\u30CE".freeze, "\u3329"=>"\u30CE\u30C3\u30C8".freeze, "\u332A"=>"\u30CF\u30A4\u30C4".freeze, "\u332B"=>"\u30D1\u30FC\u30BB\u30F3\u30C8".freeze, "\u332C"=>"\u30D1\u30FC\u30C4".freeze, "\u332D"=>"\u30D0\u30FC\u30EC\u30EB".freeze, "\u332E"=>"\u30D4\u30A2\u30B9\u30C8\u30EB".freeze, "\u332F"=>"\u30D4\u30AF\u30EB".freeze,
    "\u3330"=>"\u30D4\u30B3".freeze, "\u3331"=>"\u30D3\u30EB".freeze, "\u3332"=>"\u30D5\u30A1\u30E9\u30C3\u30C9".freeze, "\u3333"=>"\u30D5\u30A3\u30FC\u30C8".freeze, "\u3334"=>"\u30D6\u30C3\u30B7\u30A7\u30EB".freeze, "\u3335"=>"\u30D5\u30E9\u30F3".freeze, "\u3336"=>"\u30D8\u30AF\u30BF\u30FC\u30EB".freeze, "\u3337"=>"\u30DA\u30BD".freeze,
    "\u3338"=>"\u30DA\u30CB\u30D2".freeze, "\u3339"=>"\u30D8\u30EB\u30C4".freeze, "\u333A"=>"\u30DA\u30F3\u30B9".freeze, "\u333B"=>"\u30DA\u30FC\u30B8".freeze, "\u333C"=>"\u30D9\u30FC\u30BF".freeze, "\u333D"=>"\u30DD\u30A4\u30F3\u30C8".freeze, "\u333E"=>"\u30DC\u30EB\u30C8".freeze, "\u333F"=>"\u30DB\u30F3".freeze,
    "\u3340"=>"\u30DD\u30F3\u30C9".freeze, "\u3341"=>"\u30DB\u30FC\u30EB".freeze, "\u3342"=>"\u30DB\u30FC\u30F3".freeze, "\u3343"=>"\u30DE\u30A4\u30AF\u30ED".freeze, "\u3344"=>"\u30DE\u30A4\u30EB".freeze, "\u3345"=>"\u30DE\u30C3\u30CF".freeze, "\u3346"=>"\u30DE\u30EB\u30AF".freeze, "\u3347"=>"\u30DE\u30F3\u30B7\u30E7\u30F3".freeze,
    "\u3348"=>"\u30DF\u30AF\u30ED\u30F3".freeze, "\u3349"=>"\u30DF\u30EA".freeze, "\u334A"=>"\u30DF\u30EA\u30D0\u30FC\u30EB".freeze, "\u334B"=>"\u30E1\u30AC".freeze, "\u334C"=>"\u30E1\u30AC\u30C8\u30F3".freeze, "\u334D"=>"\u30E1\u30FC\u30C8\u30EB".freeze, "\u334E"=>"\u30E4\u30FC\u30C9".freeze, "\u334F"=>"\u30E4\u30FC\u30EB".freeze,
    "\u3350"=>"\u30E6\u30A2\u30F3".freeze, "\u3351"=>"\u30EA\u30C3\u30C8\u30EB".freeze, "\u3352"=>"\u30EA\u30E9".freeze, "\u3353"=>"\u30EB\u30D4\u30FC".freeze, "\u3354"=>"\u30EB\u30FC\u30D6\u30EB".freeze, "\u3355"=>"\u30EC\u30E0".freeze, "\u3356"=>"\u30EC\u30F3\u30C8\u30B2\u30F3".freeze, "\u3357"=>"\u30EF\u30C3\u30C8".freeze,
    "\u3358"=>"0\u70B9".freeze, "\u3359"=>"1\u70B9".freeze, "\u335A"=>"2\u70B9".freeze, "\u335B"=>"3\u70B9".freeze, "\u335C"=>"4\u70B9".freeze, "\u335D"=>"5\u70B9".freeze, "\u335E"=>"6\u70B9".freeze, "\u335F"=>"7\u70B9".freeze,
    "\u3360"=>"8\u70B9".freeze, "\u3361"=>"9\u70B9".freeze, "\u3362"=>"10\u70B9".freeze, "\u3363"=>"11\u70B9".freeze, "\u3364"=>"12\u70B9".freeze, "\u3365"=>"13\u70B9".freeze, "\u3366"=>"14\u70B9".freeze, "\u3367"=>"15\u70B9".freeze,
    "\u3368"=>"16\u70B9".freeze, "\u3369"=>"17\u70B9".freeze, "\u336A"=>"18\u70B9".freeze, "\u336B"=>"19\u70B9".freeze, "\u336C"=>"20\u70B9".freeze, "\u336D"=>"21\u70B9".freeze, "\u336E"=>"22\u70B9".freeze, "\u336F"=>"23\u70B9".freeze,
    "\u3370"=>"24\u70B9".freeze, "\u3371"=>"hPa".freeze, "\u3372"=>"da".freeze, "\u3373"=>"AU".freeze, "\u3374"=>"bar".freeze, "\u3375"=>"oV".freeze, "\u3376"=>"pc".freeze, "\u3377"=>"dm".freeze,
    "\u3378"=>"dm2".freeze, "\u3379"=>"dm3".freeze, "\u337A"=>"IU".freeze, "\u337B"=>"\u5E73\u6210".freeze, "\u337C"=>"\u662D\u548C".freeze, "\u337D"=>"\u5927\u6B63".freeze, "\u337E"=>"\u660E\u6CBB".freeze, "\u337F"=>"\u682A\u5F0F\u4F1A\u793E".freeze,
    "\u3380"=>"pA".freeze, "\u3381"=>"nA".freeze, "\u3382"=>"\u03BCA".freeze, "\u3383"=>"mA".freeze, "\u3384"=>"kA".freeze, "\u3385"=>"KB".freeze, "\u3386"=>"MB".freeze, "\u3387"=>"GB".freeze,
    "\u3388"=>"cal".freeze, "\u3389"=>"kcal".freeze, "\u338A"=>"pF".freeze, "\u338B"=>"nF".freeze, "\u338C"=>"\u03BCF".freeze, "\u338D"=>"\u03BCg".freeze, "\u338E"=>"mg".freeze, "\u338F"=>"kg".freeze,
    "\u3390"=>"Hz".freeze, "\u3391"=>"kHz".freeze, "\u3392"=>"MHz".freeze, "\u3393"=>"GHz".freeze, "\u3394"=>"THz".freeze, "\u3395"=>"\u03BCl".freeze, "\u3396"=>"ml".freeze, "\u3397"=>"dl".freeze,
    "\u3398"=>"kl".freeze, "\u3399"=>"fm".freeze, "\u339A"=>"nm".freeze, "\u339B"=>"\u03BCm".freeze, "\u339C"=>"mm".freeze, "\u339D"=>"cm".freeze, "\u339E"=>"km".freeze, "\u339F"=>"mm2".freeze,
    "\u33A0"=>"cm2".freeze, "\u33A1"=>"m2".freeze, "\u33A2"=>"km2".freeze, "\u33A3"=>"mm3".freeze, "\u33A4"=>"cm3".freeze, "\u33A5"=>"m3".freeze, "\u33A6"=>"km3".freeze, "\u33A7"=>"m\u2215s".freeze,
    "\u33A8"=>"m\u2215s2".freeze, "\u33A9"=>"Pa".freeze, "\u33AA"=>"kPa".freeze, "\u33AB"=>"MPa".freeze, "\u33AC"=>"GPa".freeze, "\u33AD"=>"rad".freeze, "\u33AE"=>"rad\u2215s".freeze, "\u33AF"=>"rad\u2215s2".freeze,
    "\u33B0"=>"ps".freeze, "\u33B1"=>"ns".freeze, "\u33B2"=>"\u03BCs".freeze, "\u33B3"=>"ms".freeze, "\u33B4"=>"pV".freeze, "\u33B5"=>"nV".freeze, "\u33B6"=>"\u03BCV".freeze, "\u33B7"=>"mV".freeze,
    "\u33B8"=>"kV".freeze, "\u33B9"=>"MV".freeze, "\u33BA"=>"pW".freeze, "\u33BB"=>"nW".freeze, "\u33BC"=>"\u03BCW".freeze, "\u33BD"=>"mW".freeze, "\u33BE"=>"kW".freeze, "\u33BF"=>"MW".freeze,
    "\u33C0"=>"k\u03A9".freeze, "\u33C1"=>"M\u03A9".freeze, "\u33C2"=>"a.m.".freeze, "\u33C3"=>"Bq".freeze, "\u33C4"=>"cc".freeze, "\u33C5"=>"cd".freeze, "\u33C6"=>"C\u2215kg".freeze, "\u33C7"=>"Co.".freeze,
    "\u33C8"=>"dB".freeze, "\u33C9"=>"Gy".freeze, "\u33CA"=>"ha".freeze, "\u33CB"=>"HP".freeze, "\u33CC"=>"in".freeze, "\u33CD"=>"KK".freeze, "\u33CE"=>"KM".freeze, "\u33CF"=>"kt".freeze,
    "\u33D0"=>"lm".freeze, "\u33D1"=>"ln".freeze, "\u33D2"=>"log".freeze, "\u33D3"=>"lx".freeze, "\u33D4"=>"mb".freeze, "\u33D5"=>"mil".freeze, "\u33D6"=>"mol".freeze, "\u33D7"=>"PH".freeze,
    "\u33D8"=>"p.m.".freeze, "\u33D9"=>"PPM".freeze, "\u33DA"=>"PR".freeze, "\u33DB"=>"sr".freeze, "\u33DC"=>"Sv".freeze, "\u33DD"=>"Wb".freeze, "\u33DE"=>"V\u2215m".freeze, "\u33DF"=>"A\u2215m".freeze,
    "\u33E0"=>"1\u65E5".freeze, "\u33E1"=>"2\u65E5".freeze, "\u33E2"=>"3\u65E5".freeze, "\u33E3"=>"4\u65E5".freeze, "\u33E4"=>"5\u65E5".freeze, "\u33E5"=>"6\u65E5".freeze, "\u33E6"=>"7\u65E5".freeze, "\u33E7"=>"8\u65E5".freeze,
    "\u33E8"=>"9\u65E5".freeze, "\u33E9"=>"10\u65E5".freeze, "\u33EA"=>"11\u65E5".freeze, "\u33EB"=>"12\u65E5".freeze, "\u33EC"=>"13\u65E5".freeze, "\u33ED"=>"14\u65E5".freeze, "\u33EE"=>"15\u65E5".freeze, "\u33EF"=>"16\u65E5".freeze,
    "\u33F0"=>"17\u65E5".freeze, "\u33F1"=>"18\u65E5".freeze, "\u33F2"=>"19\u65E5".freeze, "\u33F3"=>"20\u65E5".freeze, "\u33F4"=>"21\u65E5".freeze, "\u33F5"=>"22\u65E5".freeze, "\u33F6"=>"23\u65E5".freeze, "\u33F7"=>"24\u65E5".freeze,
    "\u33F8"=>"25\u65E5".freeze, "\u33F9"=>"26\u65E5".freeze, "\u33FA"=>"27\u65E5".freeze, "\u33FB"=>"28\u65E5".freeze, "\u33FC"=>"29\u65E5".freeze, "\u33FD"=>"30\u65E5".freeze, "\u33FE"=>"31\u65E5".freeze, "\u33FF"=>"gal".freeze,
    "\uA69C"=>"\u044A".freeze, "\uA69D"=>"\u044C".freeze, "\uA770"=>"\uA76F".freeze, "\uA7F8"=>"\u0126".freeze, "\uA7F9"=>"\u0153".freeze, "\uAB5C"=>"\uA727".freeze, "\uAB5D"=>"\uAB37".freeze, "\uAB5E"=>"\u026B".freeze,
    "\uAB5F"=>"\uAB52".freeze, "\uFB00"=>"ff".freeze, "\uFB01"=>"fi".freeze, "\uFB02"=>"fl".freeze, "\uFB03"=>"ffi".freeze, "\uFB04"=>"ffl".freeze, "\uFB05"=>"st".freeze, "\uFB06"=>"st".freeze,
    "\uFB13"=>"\u0574\u0576".freeze, "\uFB14"=>"\u0574\u0565".freeze, "\uFB15"=>"\u0574\u056B".freeze, "\uFB16"=>"\u057E\u0576".freeze, "\uFB17"=>"\u0574\u056D".freeze, "\uFB20"=>"\u05E2".freeze, "\uFB21"=>"\u05D0".freeze, "\uFB22"=>"\u05D3".freeze,
    "\uFB23"=>"\u05D4".freeze, "\uFB24"=>"\u05DB".freeze, "\uFB25"=>"\u05DC".freeze, "\uFB26"=>"\u05DD".freeze, "\uFB27"=>"\u05E8".freeze, "\uFB28"=>"\u05EA".freeze, "\uFB29"=>"+".freeze, "\uFB4F"=>"\u05D0\u05DC".freeze,
    "\uFB50"=>"\u0671".freeze, "\uFB51"=>"\u0671".freeze, "\uFB52"=>"\u067B".freeze, "\uFB53"=>"\u067B".freeze, "\uFB54"=>"\u067B".freeze, "\uFB55"=>"\u067B".freeze, "\uFB56"=>"\u067E".freeze, "\uFB57"=>"\u067E".freeze,
    "\uFB58"=>"\u067E".freeze, "\uFB59"=>"\u067E".freeze, "\uFB5A"=>"\u0680".freeze, "\uFB5B"=>"\u0680".freeze, "\uFB5C"=>"\u0680".freeze, "\uFB5D"=>"\u0680".freeze, "\uFB5E"=>"\u067A".freeze, "\uFB5F"=>"\u067A".freeze,
    "\uFB60"=>"\u067A".freeze, "\uFB61"=>"\u067A".freeze, "\uFB62"=>"\u067F".freeze, "\uFB63"=>"\u067F".freeze, "\uFB64"=>"\u067F".freeze, "\uFB65"=>"\u067F".freeze, "\uFB66"=>"\u0679".freeze, "\uFB67"=>"\u0679".freeze,
    "\uFB68"=>"\u0679".freeze, "\uFB69"=>"\u0679".freeze, "\uFB6A"=>"\u06A4".freeze, "\uFB6B"=>"\u06A4".freeze, "\uFB6C"=>"\u06A4".freeze, "\uFB6D"=>"\u06A4".freeze, "\uFB6E"=>"\u06A6".freeze, "\uFB6F"=>"\u06A6".freeze,
    "\uFB70"=>"\u06A6".freeze, "\uFB71"=>"\u06A6".freeze, "\uFB72"=>"\u0684".freeze, "\uFB73"=>"\u0684".freeze, "\uFB74"=>"\u0684".freeze, "\uFB75"=>"\u0684".freeze, "\uFB76"=>"\u0683".freeze, "\uFB77"=>"\u0683".freeze,
    "\uFB78"=>"\u0683".freeze, "\uFB79"=>"\u0683".freeze, "\uFB7A"=>"\u0686".freeze, "\uFB7B"=>"\u0686".freeze, "\uFB7C"=>"\u0686".freeze, "\uFB7D"=>"\u0686".freeze, "\uFB7E"=>"\u0687".freeze, "\uFB7F"=>"\u0687".freeze,
    "\uFB80"=>"\u0687".freeze, "\uFB81"=>"\u0687".freeze, "\uFB82"=>"\u068D".freeze, "\uFB83"=>"\u068D".freeze, "\uFB84"=>"\u068C".freeze, "\uFB85"=>"\u068C".freeze, "\uFB86"=>"\u068E".freeze, "\uFB87"=>"\u068E".freeze,
    "\uFB88"=>"\u0688".freeze, "\uFB89"=>"\u0688".freeze, "\uFB8A"=>"\u0698".freeze, "\uFB8B"=>"\u0698".freeze, "\uFB8C"=>"\u0691".freeze, "\uFB8D"=>"\u0691".freeze, "\uFB8E"=>"\u06A9".freeze, "\uFB8F"=>"\u06A9".freeze,
    "\uFB90"=>"\u06A9".freeze, "\uFB91"=>"\u06A9".freeze, "\uFB92"=>"\u06AF".freeze, "\uFB93"=>"\u06AF".freeze, "\uFB94"=>"\u06AF".freeze, "\uFB95"=>"\u06AF".freeze, "\uFB96"=>"\u06B3".freeze, "\uFB97"=>"\u06B3".freeze,
    "\uFB98"=>"\u06B3".freeze, "\uFB99"=>"\u06B3".freeze, "\uFB9A"=>"\u06B1".freeze, "\uFB9B"=>"\u06B1".freeze, "\uFB9C"=>"\u06B1".freeze, "\uFB9D"=>"\u06B1".freeze, "\uFB9E"=>"\u06BA".freeze, "\uFB9F"=>"\u06BA".freeze,
    "\uFBA0"=>"\u06BB".freeze, "\uFBA1"=>"\u06BB".freeze, "\uFBA2"=>"\u06BB".freeze, "\uFBA3"=>"\u06BB".freeze, "\uFBA4"=>"\u06C0".freeze, "\uFBA5"=>"\u06C0".freeze, "\uFBA6"=>"\u06C1".freeze, "\uFBA7"=>"\u06C1".freeze,
    "\uFBA8"=>"\u06C1".freeze, "\uFBA9"=>"\u06C1".freeze, "\uFBAA"=>"\u06BE".freeze, "\uFBAB"=>"\u06BE".freeze, "\uFBAC"=>"\u06BE".freeze, "\uFBAD"=>"\u06BE".freeze, "\uFBAE"=>"\u06D2".freeze, "\uFBAF"=>"\u06D2".freeze,
    "\uFBB0"=>"\u06D3".freeze, "\uFBB1"=>"\u06D3".freeze, "\uFBD3"=>"\u06AD".freeze, "\uFBD4"=>"\u06AD".freeze, "\uFBD5"=>"\u06AD".freeze, "\uFBD6"=>"\u06AD".freeze, "\uFBD7"=>"\u06C7".freeze, "\uFBD8"=>"\u06C7".freeze,
    "\uFBD9"=>"\u06C6".freeze, "\uFBDA"=>"\u06C6".freeze, "\uFBDB"=>"\u06C8".freeze, "\uFBDC"=>"\u06C8".freeze, "\uFBDD"=>"\u06C7\u0674".freeze, "\uFBDE"=>"\u06CB".freeze, "\uFBDF"=>"\u06CB".freeze, "\uFBE0"=>"\u06C5".freeze,
    "\uFBE1"=>"\u06C5".freeze, "\uFBE2"=>"\u06C9".freeze, "\uFBE3"=>"\u06C9".freeze, "\uFBE4"=>"\u06D0".freeze, "\uFBE5"=>"\u06D0".freeze, "\uFBE6"=>"\u06D0".freeze, "\uFBE7"=>"\u06D0".freeze, "\uFBE8"=>"\u0649".freeze,
    "\uFBE9"=>"\u0649".freeze, "\uFBEA"=>"\u0626\u0627".freeze, "\uFBEB"=>"\u0626\u0627".freeze, "\uFBEC"=>"\u0626\u06D5".freeze, "\uFBED"=>"\u0626\u06D5".freeze, "\uFBEE"=>"\u0626\u0648".freeze, "\uFBEF"=>"\u0626\u0648".freeze, "\uFBF0"=>"\u0626\u06C7".freeze,
    "\uFBF1"=>"\u0626\u06C7".freeze, "\uFBF2"=>"\u0626\u06C6".freeze, "\uFBF3"=>"\u0626\u06C6".freeze, "\uFBF4"=>"\u0626\u06C8".freeze, "\uFBF5"=>"\u0626\u06C8".freeze, "\uFBF6"=>"\u0626\u06D0".freeze, "\uFBF7"=>"\u0626\u06D0".freeze, "\uFBF8"=>"\u0626\u06D0".freeze,
    "\uFBF9"=>"\u0626\u0649".freeze, "\uFBFA"=>"\u0626\u0649".freeze, "\uFBFB"=>"\u0626\u0649".freeze, "\uFBFC"=>"\u06CC".freeze, "\uFBFD"=>"\u06CC".freeze, "\uFBFE"=>"\u06CC".freeze, "\uFBFF"=>"\u06CC".freeze, "\uFC00"=>"\u0626\u062C".freeze,
    "\uFC01"=>"\u0626\u062D".freeze, "\uFC02"=>"\u0626\u0645".freeze, "\uFC03"=>"\u0626\u0649".freeze, "\uFC04"=>"\u0626\u064A".freeze, "\uFC05"=>"\u0628\u062C".freeze, "\uFC06"=>"\u0628\u062D".freeze, "\uFC07"=>"\u0628\u062E".freeze, "\uFC08"=>"\u0628\u0645".freeze,
    "\uFC09"=>"\u0628\u0649".freeze, "\uFC0A"=>"\u0628\u064A".freeze, "\uFC0B"=>"\u062A\u062C".freeze, "\uFC0C"=>"\u062A\u062D".freeze, "\uFC0D"=>"\u062A\u062E".freeze, "\uFC0E"=>"\u062A\u0645".freeze, "\uFC0F"=>"\u062A\u0649".freeze, "\uFC10"=>"\u062A\u064A".freeze,
    "\uFC11"=>"\u062B\u062C".freeze, "\uFC12"=>"\u062B\u0645".freeze, "\uFC13"=>"\u062B\u0649".freeze, "\uFC14"=>"\u062B\u064A".freeze, "\uFC15"=>"\u062C\u062D".freeze, "\uFC16"=>"\u062C\u0645".freeze, "\uFC17"=>"\u062D\u062C".freeze, "\uFC18"=>"\u062D\u0645".freeze,
    "\uFC19"=>"\u062E\u062C".freeze, "\uFC1A"=>"\u062E\u062D".freeze, "\uFC1B"=>"\u062E\u0645".freeze, "\uFC1C"=>"\u0633\u062C".freeze, "\uFC1D"=>"\u0633\u062D".freeze, "\uFC1E"=>"\u0633\u062E".freeze, "\uFC1F"=>"\u0633\u0645".freeze, "\uFC20"=>"\u0635\u062D".freeze,
    "\uFC21"=>"\u0635\u0645".freeze, "\uFC22"=>"\u0636\u062C".freeze, "\uFC23"=>"\u0636\u062D".freeze, "\uFC24"=>"\u0636\u062E".freeze, "\uFC25"=>"\u0636\u0645".freeze, "\uFC26"=>"\u0637\u062D".freeze, "\uFC27"=>"\u0637\u0645".freeze, "\uFC28"=>"\u0638\u0645".freeze,
    "\uFC29"=>"\u0639\u062C".freeze, "\uFC2A"=>"\u0639\u0645".freeze, "\uFC2B"=>"\u063A\u062C".freeze, "\uFC2C"=>"\u063A\u0645".freeze, "\uFC2D"=>"\u0641\u062C".freeze, "\uFC2E"=>"\u0641\u062D".freeze, "\uFC2F"=>"\u0641\u062E".freeze, "\uFC30"=>"\u0641\u0645".freeze,
    "\uFC31"=>"\u0641\u0649".freeze, "\uFC32"=>"\u0641\u064A".freeze, "\uFC33"=>"\u0642\u062D".freeze, "\uFC34"=>"\u0642\u0645".freeze, "\uFC35"=>"\u0642\u0649".freeze, "\uFC36"=>"\u0642\u064A".freeze, "\uFC37"=>"\u0643\u0627".freeze, "\uFC38"=>"\u0643\u062C".freeze,
    "\uFC39"=>"\u0643\u062D".freeze, "\uFC3A"=>"\u0643\u062E".freeze, "\uFC3B"=>"\u0643\u0644".freeze, "\uFC3C"=>"\u0643\u0645".freeze, "\uFC3D"=>"\u0643\u0649".freeze, "\uFC3E"=>"\u0643\u064A".freeze, "\uFC3F"=>"\u0644\u062C".freeze, "\uFC40"=>"\u0644\u062D".freeze,
    "\uFC41"=>"\u0644\u062E".freeze, "\uFC42"=>"\u0644\u0645".freeze, "\uFC43"=>"\u0644\u0649".freeze, "\uFC44"=>"\u0644\u064A".freeze, "\uFC45"=>"\u0645\u062C".freeze, "\uFC46"=>"\u0645\u062D".freeze, "\uFC47"=>"\u0645\u062E".freeze, "\uFC48"=>"\u0645\u0645".freeze,
    "\uFC49"=>"\u0645\u0649".freeze, "\uFC4A"=>"\u0645\u064A".freeze, "\uFC4B"=>"\u0646\u062C".freeze, "\uFC4C"=>"\u0646\u062D".freeze, "\uFC4D"=>"\u0646\u062E".freeze, "\uFC4E"=>"\u0646\u0645".freeze, "\uFC4F"=>"\u0646\u0649".freeze, "\uFC50"=>"\u0646\u064A".freeze,
    "\uFC51"=>"\u0647\u062C".freeze, "\uFC52"=>"\u0647\u0645".freeze, "\uFC53"=>"\u0647\u0649".freeze, "\uFC54"=>"\u0647\u064A".freeze, "\uFC55"=>"\u064A\u062C".freeze, "\uFC56"=>"\u064A\u062D".freeze, "\uFC57"=>"\u064A\u062E".freeze, "\uFC58"=>"\u064A\u0645".freeze,
    "\uFC59"=>"\u064A\u0649".freeze, "\uFC5A"=>"\u064A\u064A".freeze, "\uFC5B"=>"\u0630\u0670".freeze, "\uFC5C"=>"\u0631\u0670".freeze, "\uFC5D"=>"\u0649\u0670".freeze, "\uFC5E"=>" \u064C\u0651".freeze, "\uFC5F"=>" \u064D\u0651".freeze, "\uFC60"=>" \u064E\u0651".freeze,
    "\uFC61"=>" \u064F\u0651".freeze, "\uFC62"=>" \u0650\u0651".freeze, "\uFC63"=>" \u0651\u0670".freeze, "\uFC64"=>"\u0626\u0631".freeze, "\uFC65"=>"\u0626\u0632".freeze, "\uFC66"=>"\u0626\u0645".freeze, "\uFC67"=>"\u0626\u0646".freeze, "\uFC68"=>"\u0626\u0649".freeze,
    "\uFC69"=>"\u0626\u064A".freeze, "\uFC6A"=>"\u0628\u0631".freeze, "\uFC6B"=>"\u0628\u0632".freeze, "\uFC6C"=>"\u0628\u0645".freeze, "\uFC6D"=>"\u0628\u0646".freeze, "\uFC6E"=>"\u0628\u0649".freeze, "\uFC6F"=>"\u0628\u064A".freeze, "\uFC70"=>"\u062A\u0631".freeze,
    "\uFC71"=>"\u062A\u0632".freeze, "\uFC72"=>"\u062A\u0645".freeze, "\uFC73"=>"\u062A\u0646".freeze, "\uFC74"=>"\u062A\u0649".freeze, "\uFC75"=>"\u062A\u064A".freeze, "\uFC76"=>"\u062B\u0631".freeze, "\uFC77"=>"\u062B\u0632".freeze, "\uFC78"=>"\u062B\u0645".freeze,
    "\uFC79"=>"\u062B\u0646".freeze, "\uFC7A"=>"\u062B\u0649".freeze, "\uFC7B"=>"\u062B\u064A".freeze, "\uFC7C"=>"\u0641\u0649".freeze, "\uFC7D"=>"\u0641\u064A".freeze, "\uFC7E"=>"\u0642\u0649".freeze, "\uFC7F"=>"\u0642\u064A".freeze, "\uFC80"=>"\u0643\u0627".freeze,
    "\uFC81"=>"\u0643\u0644".freeze, "\uFC82"=>"\u0643\u0645".freeze, "\uFC83"=>"\u0643\u0649".freeze, "\uFC84"=>"\u0643\u064A".freeze, "\uFC85"=>"\u0644\u0645".freeze, "\uFC86"=>"\u0644\u0649".freeze, "\uFC87"=>"\u0644\u064A".freeze, "\uFC88"=>"\u0645\u0627".freeze,
    "\uFC89"=>"\u0645\u0645".freeze, "\uFC8A"=>"\u0646\u0631".freeze, "\uFC8B"=>"\u0646\u0632".freeze, "\uFC8C"=>"\u0646\u0645".freeze, "\uFC8D"=>"\u0646\u0646".freeze, "\uFC8E"=>"\u0646\u0649".freeze, "\uFC8F"=>"\u0646\u064A".freeze, "\uFC90"=>"\u0649\u0670".freeze,
    "\uFC91"=>"\u064A\u0631".freeze, "\uFC92"=>"\u064A\u0632".freeze, "\uFC93"=>"\u064A\u0645".freeze, "\uFC94"=>"\u064A\u0646".freeze, "\uFC95"=>"\u064A\u0649".freeze, "\uFC96"=>"\u064A\u064A".freeze, "\uFC97"=>"\u0626\u062C".freeze, "\uFC98"=>"\u0626\u062D".freeze,
    "\uFC99"=>"\u0626\u062E".freeze, "\uFC9A"=>"\u0626\u0645".freeze, "\uFC9B"=>"\u0626\u0647".freeze, "\uFC9C"=>"\u0628\u062C".freeze, "\uFC9D"=>"\u0628\u062D".freeze, "\uFC9E"=>"\u0628\u062E".freeze, "\uFC9F"=>"\u0628\u0645".freeze, "\uFCA0"=>"\u0628\u0647".freeze,
    "\uFCA1"=>"\u062A\u062C".freeze, "\uFCA2"=>"\u062A\u062D".freeze, "\uFCA3"=>"\u062A\u062E".freeze, "\uFCA4"=>"\u062A\u0645".freeze, "\uFCA5"=>"\u062A\u0647".freeze, "\uFCA6"=>"\u062B\u0645".freeze, "\uFCA7"=>"\u062C\u062D".freeze, "\uFCA8"=>"\u062C\u0645".freeze,
    "\uFCA9"=>"\u062D\u062C".freeze, "\uFCAA"=>"\u062D\u0645".freeze, "\uFCAB"=>"\u062E\u062C".freeze, "\uFCAC"=>"\u062E\u0645".freeze, "\uFCAD"=>"\u0633\u062C".freeze, "\uFCAE"=>"\u0633\u062D".freeze, "\uFCAF"=>"\u0633\u062E".freeze, "\uFCB0"=>"\u0633\u0645".freeze,
    "\uFCB1"=>"\u0635\u062D".freeze, "\uFCB2"=>"\u0635\u062E".freeze, "\uFCB3"=>"\u0635\u0645".freeze, "\uFCB4"=>"\u0636\u062C".freeze, "\uFCB5"=>"\u0636\u062D".freeze, "\uFCB6"=>"\u0636\u062E".freeze, "\uFCB7"=>"\u0636\u0645".freeze, "\uFCB8"=>"\u0637\u062D".freeze,
    "\uFCB9"=>"\u0638\u0645".freeze, "\uFCBA"=>"\u0639\u062C".freeze, "\uFCBB"=>"\u0639\u0645".freeze, "\uFCBC"=>"\u063A\u062C".freeze, "\uFCBD"=>"\u063A\u0645".freeze, "\uFCBE"=>"\u0641\u062C".freeze, "\uFCBF"=>"\u0641\u062D".freeze, "\uFCC0"=>"\u0641\u062E".freeze,
    "\uFCC1"=>"\u0641\u0645".freeze, "\uFCC2"=>"\u0642\u062D".freeze, "\uFCC3"=>"\u0642\u0645".freeze, "\uFCC4"=>"\u0643\u062C".freeze, "\uFCC5"=>"\u0643\u062D".freeze, "\uFCC6"=>"\u0643\u062E".freeze, "\uFCC7"=>"\u0643\u0644".freeze, "\uFCC8"=>"\u0643\u0645".freeze,
    "\uFCC9"=>"\u0644\u062C".freeze, "\uFCCA"=>"\u0644\u062D".freeze, "\uFCCB"=>"\u0644\u062E".freeze, "\uFCCC"=>"\u0644\u0645".freeze, "\uFCCD"=>"\u0644\u0647".freeze, "\uFCCE"=>"\u0645\u062C".freeze, "\uFCCF"=>"\u0645\u062D".freeze, "\uFCD0"=>"\u0645\u062E".freeze,
    "\uFCD1"=>"\u0645\u0645".freeze, "\uFCD2"=>"\u0646\u062C".freeze, "\uFCD3"=>"\u0646\u062D".freeze, "\uFCD4"=>"\u0646\u062E".freeze, "\uFCD5"=>"\u0646\u0645".freeze, "\uFCD6"=>"\u0646\u0647".freeze, "\uFCD7"=>"\u0647\u062C".freeze, "\uFCD8"=>"\u0647\u0645".freeze,
    "\uFCD9"=>"\u0647\u0670".freeze, "\uFCDA"=>"\u064A\u062C".freeze, "\uFCDB"=>"\u064A\u062D".freeze, "\uFCDC"=>"\u064A\u062E".freeze, "\uFCDD"=>"\u064A\u0645".freeze, "\uFCDE"=>"\u064A\u0647".freeze, "\uFCDF"=>"\u0626\u0645".freeze, "\uFCE0"=>"\u0626\u0647".freeze,
    "\uFCE1"=>"\u0628\u0645".freeze, "\uFCE2"=>"\u0628\u0647".freeze, "\uFCE3"=>"\u062A\u0645".freeze, "\uFCE4"=>"\u062A\u0647".freeze, "\uFCE5"=>"\u062B\u0645".freeze, "\uFCE6"=>"\u062B\u0647".freeze, "\uFCE7"=>"\u0633\u0645".freeze, "\uFCE8"=>"\u0633\u0647".freeze,
    "\uFCE9"=>"\u0634\u0645".freeze, "\uFCEA"=>"\u0634\u0647".freeze, "\uFCEB"=>"\u0643\u0644".freeze, "\uFCEC"=>"\u0643\u0645".freeze, "\uFCED"=>"\u0644\u0645".freeze, "\uFCEE"=>"\u0646\u0645".freeze, "\uFCEF"=>"\u0646\u0647".freeze, "\uFCF0"=>"\u064A\u0645".freeze,
    "\uFCF1"=>"\u064A\u0647".freeze, "\uFCF2"=>"\u0640\u064E\u0651".freeze, "\uFCF3"=>"\u0640\u064F\u0651".freeze, "\uFCF4"=>"\u0640\u0650\u0651".freeze, "\uFCF5"=>"\u0637\u0649".freeze, "\uFCF6"=>"\u0637\u064A".freeze, "\uFCF7"=>"\u0639\u0649".freeze, "\uFCF8"=>"\u0639\u064A".freeze,
    "\uFCF9"=>"\u063A\u0649".freeze, "\uFCFA"=>"\u063A\u064A".freeze, "\uFCFB"=>"\u0633\u0649".freeze, "\uFCFC"=>"\u0633\u064A".freeze, "\uFCFD"=>"\u0634\u0649".freeze, "\uFCFE"=>"\u0634\u064A".freeze, "\uFCFF"=>"\u062D\u0649".freeze, "\uFD00"=>"\u062D\u064A".freeze,
    "\uFD01"=>"\u062C\u0649".freeze, "\uFD02"=>"\u062C\u064A".freeze, "\uFD03"=>"\u062E\u0649".freeze, "\uFD04"=>"\u062E\u064A".freeze, "\uFD05"=>"\u0635\u0649".freeze, "\uFD06"=>"\u0635\u064A".freeze, "\uFD07"=>"\u0636\u0649".freeze, "\uFD08"=>"\u0636\u064A".freeze,
    "\uFD09"=>"\u0634\u062C".freeze, "\uFD0A"=>"\u0634\u062D".freeze, "\uFD0B"=>"\u0634\u062E".freeze, "\uFD0C"=>"\u0634\u0645".freeze, "\uFD0D"=>"\u0634\u0631".freeze, "\uFD0E"=>"\u0633\u0631".freeze, "\uFD0F"=>"\u0635\u0631".freeze, "\uFD10"=>"\u0636\u0631".freeze,
    "\uFD11"=>"\u0637\u0649".freeze, "\uFD12"=>"\u0637\u064A".freeze, "\uFD13"=>"\u0639\u0649".freeze, "\uFD14"=>"\u0639\u064A".freeze, "\uFD15"=>"\u063A\u0649".freeze, "\uFD16"=>"\u063A\u064A".freeze, "\uFD17"=>"\u0633\u0649".freeze, "\uFD18"=>"\u0633\u064A".freeze,
    "\uFD19"=>"\u0634\u0649".freeze, "\uFD1A"=>"\u0634\u064A".freeze, "\uFD1B"=>"\u062D\u0649".freeze, "\uFD1C"=>"\u062D\u064A".freeze, "\uFD1D"=>"\u062C\u0649".freeze, "\uFD1E"=>"\u062C\u064A".freeze, "\uFD1F"=>"\u062E\u0649".freeze, "\uFD20"=>"\u062E\u064A".freeze,
    "\uFD21"=>"\u0635\u0649".freeze, "\uFD22"=>"\u0635\u064A".freeze, "\uFD23"=>"\u0636\u0649".freeze, "\uFD24"=>"\u0636\u064A".freeze, "\uFD25"=>"\u0634\u062C".freeze, "\uFD26"=>"\u0634\u062D".freeze, "\uFD27"=>"\u0634\u062E".freeze, "\uFD28"=>"\u0634\u0645".freeze,
    "\uFD29"=>"\u0634\u0631".freeze, "\uFD2A"=>"\u0633\u0631".freeze, "\uFD2B"=>"\u0635\u0631".freeze, "\uFD2C"=>"\u0636\u0631".freeze, "\uFD2D"=>"\u0634\u062C".freeze, "\uFD2E"=>"\u0634\u062D".freeze, "\uFD2F"=>"\u0634\u062E".freeze, "\uFD30"=>"\u0634\u0645".freeze,
    "\uFD31"=>"\u0633\u0647".freeze, "\uFD32"=>"\u0634\u0647".freeze, "\uFD33"=>"\u0637\u0645".freeze, "\uFD34"=>"\u0633\u062C".freeze, "\uFD35"=>"\u0633\u062D".freeze, "\uFD36"=>"\u0633\u062E".freeze, "\uFD37"=>"\u0634\u062C".freeze, "\uFD38"=>"\u0634\u062D".freeze,
    "\uFD39"=>"\u0634\u062E".freeze, "\uFD3A"=>"\u0637\u0645".freeze, "\uFD3B"=>"\u0638\u0645".freeze, "\uFD3C"=>"\u0627\u064B".freeze, "\uFD3D"=>"\u0627\u064B".freeze, "\uFD50"=>"\u062A\u062C\u0645".freeze, "\uFD51"=>"\u062A\u062D\u062C".freeze, "\uFD52"=>"\u062A\u062D\u062C".freeze,
    "\uFD53"=>"\u062A\u062D\u0645".freeze, "\uFD54"=>"\u062A\u062E\u0645".freeze, "\uFD55"=>"\u062A\u0645\u062C".freeze, "\uFD56"=>"\u062A\u0645\u062D".freeze, "\uFD57"=>"\u062A\u0645\u062E".freeze, "\uFD58"=>"\u062C\u0645\u062D".freeze, "\uFD59"=>"\u062C\u0645\u062D".freeze, "\uFD5A"=>"\u062D\u0645\u064A".freeze,
    "\uFD5B"=>"\u062D\u0645\u0649".freeze, "\uFD5C"=>"\u0633\u062D\u062C".freeze, "\uFD5D"=>"\u0633\u062C\u062D".freeze, "\uFD5E"=>"\u0633\u062C\u0649".freeze, "\uFD5F"=>"\u0633\u0645\u062D".freeze, "\uFD60"=>"\u0633\u0645\u062D".freeze, "\uFD61"=>"\u0633\u0645\u062C".freeze, "\uFD62"=>"\u0633\u0645\u0645".freeze,
    "\uFD63"=>"\u0633\u0645\u0645".freeze, "\uFD64"=>"\u0635\u062D\u062D".freeze, "\uFD65"=>"\u0635\u062D\u062D".freeze, "\uFD66"=>"\u0635\u0645\u0645".freeze, "\uFD67"=>"\u0634\u062D\u0645".freeze, "\uFD68"=>"\u0634\u062D\u0645".freeze, "\uFD69"=>"\u0634\u062C\u064A".freeze, "\uFD6A"=>"\u0634\u0645\u062E".freeze,
    "\uFD6B"=>"\u0634\u0645\u062E".freeze, "\uFD6C"=>"\u0634\u0645\u0645".freeze, "\uFD6D"=>"\u0634\u0645\u0645".freeze, "\uFD6E"=>"\u0636\u062D\u0649".freeze, "\uFD6F"=>"\u0636\u062E\u0645".freeze, "\uFD70"=>"\u0636\u062E\u0645".freeze, "\uFD71"=>"\u0637\u0645\u062D".freeze, "\uFD72"=>"\u0637\u0645\u062D".freeze,
    "\uFD73"=>"\u0637\u0645\u0645".freeze, "\uFD74"=>"\u0637\u0645\u064A".freeze, "\uFD75"=>"\u0639\u062C\u0645".freeze, "\uFD76"=>"\u0639\u0645\u0645".freeze, "\uFD77"=>"\u0639\u0645\u0645".freeze, "\uFD78"=>"\u0639\u0645\u0649".freeze, "\uFD79"=>"\u063A\u0645\u0645".freeze, "\uFD7A"=>"\u063A\u0645\u064A".freeze,
    "\uFD7B"=>"\u063A\u0645\u0649".freeze, "\uFD7C"=>"\u0641\u062E\u0645".freeze, "\uFD7D"=>"\u0641\u062E\u0645".freeze, "\uFD7E"=>"\u0642\u0645\u062D".freeze, "\uFD7F"=>"\u0642\u0645\u0645".freeze, "\uFD80"=>"\u0644\u062D\u0645".freeze, "\uFD81"=>"\u0644\u062D\u064A".freeze, "\uFD82"=>"\u0644\u062D\u0649".freeze,
    "\uFD83"=>"\u0644\u062C\u062C".freeze, "\uFD84"=>"\u0644\u062C\u062C".freeze, "\uFD85"=>"\u0644\u062E\u0645".freeze, "\uFD86"=>"\u0644\u062E\u0645".freeze, "\uFD87"=>"\u0644\u0645\u062D".freeze, "\uFD88"=>"\u0644\u0645\u062D".freeze, "\uFD89"=>"\u0645\u062D\u062C".freeze, "\uFD8A"=>"\u0645\u062D\u0645".freeze,
    "\uFD8B"=>"\u0645\u062D\u064A".freeze, "\uFD8C"=>"\u0645\u062C\u062D".freeze, "\uFD8D"=>"\u0645\u062C\u0645".freeze, "\uFD8E"=>"\u0645\u062E\u062C".freeze, "\uFD8F"=>"\u0645\u062E\u0645".freeze, "\uFD92"=>"\u0645\u062C\u062E".freeze, "\uFD93"=>"\u0647\u0645\u062C".freeze, "\uFD94"=>"\u0647\u0645\u0645".freeze,
    "\uFD95"=>"\u0646\u062D\u0645".freeze, "\uFD96"=>"\u0646\u062D\u0649".freeze, "\uFD97"=>"\u0646\u062C\u0645".freeze, "\uFD98"=>"\u0646\u062C\u0645".freeze, "\uFD99"=>"\u0646\u062C\u0649".freeze, "\uFD9A"=>"\u0646\u0645\u064A".freeze, "\uFD9B"=>"\u0646\u0645\u0649".freeze, "\uFD9C"=>"\u064A\u0645\u0645".freeze,
    "\uFD9D"=>"\u064A\u0645\u0645".freeze, "\uFD9E"=>"\u0628\u062E\u064A".freeze, "\uFD9F"=>"\u062A\u062C\u064A".freeze, "\uFDA0"=>"\u062A\u062C\u0649".freeze, "\uFDA1"=>"\u062A\u062E\u064A".freeze, "\uFDA2"=>"\u062A\u062E\u0649".freeze, "\uFDA3"=>"\u062A\u0645\u064A".freeze, "\uFDA4"=>"\u062A\u0645\u0649".freeze,
    "\uFDA5"=>"\u062C\u0645\u064A".freeze, "\uFDA6"=>"\u062C\u062D\u0649".freeze, "\uFDA7"=>"\u062C\u0645\u0649".freeze, "\uFDA8"=>"\u0633\u062E\u0649".freeze, "\uFDA9"=>"\u0635\u062D\u064A".freeze, "\uFDAA"=>"\u0634\u062D\u064A".freeze, "\uFDAB"=>"\u0636\u062D\u064A".freeze, "\uFDAC"=>"\u0644\u062C\u064A".freeze,
    "\uFDAD"=>"\u0644\u0645\u064A".freeze, "\uFDAE"=>"\u064A\u062D\u064A".freeze, "\uFDAF"=>"\u064A\u062C\u064A".freeze, "\uFDB0"=>"\u064A\u0645\u064A".freeze, "\uFDB1"=>"\u0645\u0645\u064A".freeze, "\uFDB2"=>"\u0642\u0645\u064A".freeze, "\uFDB3"=>"\u0646\u062D\u064A".freeze, "\uFDB4"=>"\u0642\u0645\u062D".freeze,
    "\uFDB5"=>"\u0644\u062D\u0645".freeze, "\uFDB6"=>"\u0639\u0645\u064A".freeze, "\uFDB7"=>"\u0643\u0645\u064A".freeze, "\uFDB8"=>"\u0646\u062C\u062D".freeze, "\uFDB9"=>"\u0645\u062E\u064A".freeze, "\uFDBA"=>"\u0644\u062C\u0645".freeze, "\uFDBB"=>"\u0643\u0645\u0645".freeze, "\uFDBC"=>"\u0644\u062C\u0645".freeze,
    "\uFDBD"=>"\u0646\u062C\u062D".freeze, "\uFDBE"=>"\u062C\u062D\u064A".freeze, "\uFDBF"=>"\u062D\u062C\u064A".freeze, "\uFDC0"=>"\u0645\u062C\u064A".freeze, "\uFDC1"=>"\u0641\u0645\u064A".freeze, "\uFDC2"=>"\u0628\u062D\u064A".freeze, "\uFDC3"=>"\u0643\u0645\u0645".freeze, "\uFDC4"=>"\u0639\u062C\u0645".freeze,
    "\uFDC5"=>"\u0635\u0645\u0645".freeze, "\uFDC6"=>"\u0633\u062E\u064A".freeze, "\uFDC7"=>"\u0646\u062C\u064A".freeze, "\uFDF0"=>"\u0635\u0644\u06D2".freeze, "\uFDF1"=>"\u0642\u0644\u06D2".freeze, "\uFDF2"=>"\u0627\u0644\u0644\u0647".freeze, "\uFDF3"=>"\u0627\u0643\u0628\u0631".freeze, "\uFDF4"=>"\u0645\u062D\u0645\u062F".freeze,
    "\uFDF5"=>"\u0635\u0644\u0639\u0645".freeze, "\uFDF6"=>"\u0631\u0633\u0648\u0644".freeze, "\uFDF7"=>"\u0639\u0644\u064A\u0647".freeze, "\uFDF8"=>"\u0648\u0633\u0644\u0645".freeze, "\uFDF9"=>"\u0635\u0644\u0649".freeze, "\uFDFA"=>"\u0635\u0644\u0649 \u0627\u0644\u0644\u0647 \u0639\u0644\u064A\u0647 \u0648\u0633\u0644\u0645".freeze, "\uFDFB"=>"\u062C\u0644 \u062C\u0644\u0627\u0644\u0647".freeze, "\uFDFC"=>"\u0631\u06CC\u0627\u0644".freeze,
    "\uFE10"=>",".freeze, "\uFE11"=>"\u3001".freeze, "\uFE12"=>"\u3002".freeze, "\uFE13"=>":".freeze, "\uFE14"=>";".freeze, "\uFE15"=>"!".freeze, "\uFE16"=>"?".freeze, "\uFE17"=>"\u3016".freeze,
    "\uFE18"=>"\u3017".freeze, "\uFE19"=>"...".freeze, "\uFE30"=>"..".freeze, "\uFE31"=>"\u2014".freeze, "\uFE32"=>"\u2013".freeze, "\uFE33"=>"_".freeze, "\uFE34"=>"_".freeze, "\uFE35"=>"(".freeze,
    "\uFE36"=>")".freeze, "\uFE37"=>"{".freeze, "\uFE38"=>"}".freeze, "\uFE39"=>"\u3014".freeze, "\uFE3A"=>"\u3015".freeze, "\uFE3B"=>"\u3010".freeze, "\uFE3C"=>"\u3011".freeze, "\uFE3D"=>"\u300A".freeze,
    "\uFE3E"=>"\u300B".freeze, "\uFE3F"=>"\u3008".freeze, "\uFE40"=>"\u3009".freeze, "\uFE41"=>"\u300C".freeze, "\uFE42"=>"\u300D".freeze, "\uFE43"=>"\u300E".freeze, "\uFE44"=>"\u300F".freeze, "\uFE47"=>"[".freeze,
    "\uFE48"=>"]".freeze, "\uFE49"=>" \u0305".freeze, "\uFE4A"=>" \u0305".freeze, "\uFE4B"=>" \u0305".freeze, "\uFE4C"=>" \u0305".freeze, "\uFE4D"=>"_".freeze, "\uFE4E"=>"_".freeze, "\uFE4F"=>"_".freeze,
    "\uFE50"=>",".freeze, "\uFE51"=>"\u3001".freeze, "\uFE52"=>".".freeze, "\uFE54"=>";".freeze, "\uFE55"=>":".freeze, "\uFE56"=>"?".freeze, "\uFE57"=>"!".freeze, "\uFE58"=>"\u2014".freeze,
    "\uFE59"=>"(".freeze, "\uFE5A"=>")".freeze, "\uFE5B"=>"{".freeze, "\uFE5C"=>"}".freeze, "\uFE5D"=>"\u3014".freeze, "\uFE5E"=>"\u3015".freeze, "\uFE5F"=>"#".freeze, "\uFE60"=>"&".freeze,
    "\uFE61"=>"*".freeze, "\uFE62"=>"+".freeze, "\uFE63"=>"-".freeze, "\uFE64"=>"<".freeze, "\uFE65"=>">".freeze, "\uFE66"=>"=".freeze, "\uFE68"=>"\\".freeze, "\uFE69"=>"$".freeze,
    "\uFE6A"=>"%".freeze, "\uFE6B"=>"@".freeze, "\uFE70"=>" \u064B".freeze, "\uFE71"=>"\u0640\u064B".freeze, "\uFE72"=>" \u064C".freeze, "\uFE74"=>" \u064D".freeze, "\uFE76"=>" \u064E".freeze, "\uFE77"=>"\u0640\u064E".freeze,
    "\uFE78"=>" \u064F".freeze, "\uFE79"=>"\u0640\u064F".freeze, "\uFE7A"=>" \u0650".freeze, "\uFE7B"=>"\u0640\u0650".freeze, "\uFE7C"=>" \u0651".freeze, "\uFE7D"=>"\u0640\u0651".freeze, "\uFE7E"=>" \u0652".freeze, "\uFE7F"=>"\u0640\u0652".freeze,
    "\uFE80"=>"\u0621".freeze, "\uFE81"=>"\u0622".freeze, "\uFE82"=>"\u0622".freeze, "\uFE83"=>"\u0623".freeze, "\uFE84"=>"\u0623".freeze, "\uFE85"=>"\u0624".freeze, "\uFE86"=>"\u0624".freeze, "\uFE87"=>"\u0625".freeze,
    "\uFE88"=>"\u0625".freeze, "\uFE89"=>"\u0626".freeze, "\uFE8A"=>"\u0626".freeze, "\uFE8B"=>"\u0626".freeze, "\uFE8C"=>"\u0626".freeze, "\uFE8D"=>"\u0627".freeze, "\uFE8E"=>"\u0627".freeze, "\uFE8F"=>"\u0628".freeze,
    "\uFE90"=>"\u0628".freeze, "\uFE91"=>"\u0628".freeze, "\uFE92"=>"\u0628".freeze, "\uFE93"=>"\u0629".freeze, "\uFE94"=>"\u0629".freeze, "\uFE95"=>"\u062A".freeze, "\uFE96"=>"\u062A".freeze, "\uFE97"=>"\u062A".freeze,
    "\uFE98"=>"\u062A".freeze, "\uFE99"=>"\u062B".freeze, "\uFE9A"=>"\u062B".freeze, "\uFE9B"=>"\u062B".freeze, "\uFE9C"=>"\u062B".freeze, "\uFE9D"=>"\u062C".freeze, "\uFE9E"=>"\u062C".freeze, "\uFE9F"=>"\u062C".freeze,
    "\uFEA0"=>"\u062C".freeze, "\uFEA1"=>"\u062D".freeze, "\uFEA2"=>"\u062D".freeze, "\uFEA3"=>"\u062D".freeze, "\uFEA4"=>"\u062D".freeze, "\uFEA5"=>"\u062E".freeze, "\uFEA6"=>"\u062E".freeze, "\uFEA7"=>"\u062E".freeze,
    "\uFEA8"=>"\u062E".freeze, "\uFEA9"=>"\u062F".freeze, "\uFEAA"=>"\u062F".freeze, "\uFEAB"=>"\u0630".freeze, "\uFEAC"=>"\u0630".freeze, "\uFEAD"=>"\u0631".freeze, "\uFEAE"=>"\u0631".freeze, "\uFEAF"=>"\u0632".freeze,
    "\uFEB0"=>"\u0632".freeze, "\uFEB1"=>"\u0633".freeze, "\uFEB2"=>"\u0633".freeze, "\uFEB3"=>"\u0633".freeze, "\uFEB4"=>"\u0633".freeze, "\uFEB5"=>"\u0634".freeze, "\uFEB6"=>"\u0634".freeze, "\uFEB7"=>"\u0634".freeze,
    "\uFEB8"=>"\u0634".freeze, "\uFEB9"=>"\u0635".freeze, "\uFEBA"=>"\u0635".freeze, "\uFEBB"=>"\u0635".freeze, "\uFEBC"=>"\u0635".freeze, "\uFEBD"=>"\u0636".freeze, "\uFEBE"=>"\u0636".freeze, "\uFEBF"=>"\u0636".freeze,
    "\uFEC0"=>"\u0636".freeze, "\uFEC1"=>"\u0637".freeze, "\uFEC2"=>"\u0637".freeze, "\uFEC3"=>"\u0637".freeze, "\uFEC4"=>"\u0637".freeze, "\uFEC5"=>"\u0638".freeze, "\uFEC6"=>"\u0638".freeze, "\uFEC7"=>"\u0638".freeze,
    "\uFEC8"=>"\u0638".freeze, "\uFEC9"=>"\u0639".freeze, "\uFECA"=>"\u0639".freeze, "\uFECB"=>"\u0639".freeze, "\uFECC"=>"\u0639".freeze, "\uFECD"=>"\u063A".freeze, "\uFECE"=>"\u063A".freeze, "\uFECF"=>"\u063A".freeze,
    "\uFED0"=>"\u063A".freeze, "\uFED1"=>"\u0641".freeze, "\uFED2"=>"\u0641".freeze, "\uFED3"=>"\u0641".freeze, "\uFED4"=>"\u0641".freeze, "\uFED5"=>"\u0642".freeze, "\uFED6"=>"\u0642".freeze, "\uFED7"=>"\u0642".freeze,
    "\uFED8"=>"\u0642".freeze, "\uFED9"=>"\u0643".freeze, "\uFEDA"=>"\u0643".freeze, "\uFEDB"=>"\u0643".freeze, "\uFEDC"=>"\u0643".freeze, "\uFEDD"=>"\u0644".freeze, "\uFEDE"=>"\u0644".freeze, "\uFEDF"=>"\u0644".freeze,
    "\uFEE0"=>"\u0644".freeze, "\uFEE1"=>"\u0645".freeze, "\uFEE2"=>"\u0645".freeze, "\uFEE3"=>"\u0645".freeze, "\uFEE4"=>"\u0645".freeze, "\uFEE5"=>"\u0646".freeze, "\uFEE6"=>"\u0646".freeze, "\uFEE7"=>"\u0646".freeze,
    "\uFEE8"=>"\u0646".freeze, "\uFEE9"=>"\u0647".freeze, "\uFEEA"=>"\u0647".freeze, "\uFEEB"=>"\u0647".freeze, "\uFEEC"=>"\u0647".freeze, "\uFEED"=>"\u0648".freeze, "\uFEEE"=>"\u0648".freeze, "\uFEEF"=>"\u0649".freeze,
    "\uFEF0"=>"\u0649".freeze, "\uFEF1"=>"\u064A".freeze, "\uFEF2"=>"\u064A".freeze, "\uFEF3"=>"\u064A".freeze, "\uFEF4"=>"\u064A".freeze, "\uFEF5"=>"\u0644\u0622".freeze, "\uFEF6"=>"\u0644\u0622".freeze, "\uFEF7"=>"\u0644\u0623".freeze,
    "\uFEF8"=>"\u0644\u0623".freeze, "\uFEF9"=>"\u0644\u0625".freeze, "\uFEFA"=>"\u0644\u0625".freeze, "\uFEFB"=>"\u0644\u0627".freeze, "\uFEFC"=>"\u0644\u0627".freeze, "\uFF01"=>"!".freeze, "\uFF02"=>"\"".freeze, "\uFF03"=>"#".freeze,
    "\uFF04"=>"$".freeze, "\uFF05"=>"%".freeze, "\uFF06"=>"&".freeze, "\uFF07"=>"'".freeze, "\uFF08"=>"(".freeze, "\uFF09"=>")".freeze, "\uFF0A"=>"*".freeze, "\uFF0B"=>"+".freeze,
    "\uFF0C"=>",".freeze, "\uFF0D"=>"-".freeze, "\uFF0E"=>".".freeze, "\uFF0F"=>"/".freeze, "\uFF10"=>"0".freeze, "\uFF11"=>"1".freeze, "\uFF12"=>"2".freeze, "\uFF13"=>"3".freeze,
    "\uFF14"=>"4".freeze, "\uFF15"=>"5".freeze, "\uFF16"=>"6".freeze, "\uFF17"=>"7".freeze, "\uFF18"=>"8".freeze, "\uFF19"=>"9".freeze, "\uFF1A"=>":".freeze, "\uFF1B"=>";".freeze,
    "\uFF1C"=>"<".freeze, "\uFF1D"=>"=".freeze, "\uFF1E"=>">".freeze, "\uFF1F"=>"?".freeze, "\uFF20"=>"@".freeze, "\uFF21"=>"A".freeze, "\uFF22"=>"B".freeze, "\uFF23"=>"C".freeze,
    "\uFF24"=>"D".freeze, "\uFF25"=>"E".freeze, "\uFF26"=>"F".freeze, "\uFF27"=>"G".freeze, "\uFF28"=>"H".freeze, "\uFF29"=>"I".freeze, "\uFF2A"=>"J".freeze, "\uFF2B"=>"K".freeze,
    "\uFF2C"=>"L".freeze, "\uFF2D"=>"M".freeze, "\uFF2E"=>"N".freeze, "\uFF2F"=>"O".freeze, "\uFF30"=>"P".freeze, "\uFF31"=>"Q".freeze, "\uFF32"=>"R".freeze, "\uFF33"=>"S".freeze,
    "\uFF34"=>"T".freeze, "\uFF35"=>"U".freeze, "\uFF36"=>"V".freeze, "\uFF37"=>"W".freeze, "\uFF38"=>"X".freeze, "\uFF39"=>"Y".freeze, "\uFF3A"=>"Z".freeze, "\uFF3B"=>"[".freeze,
    "\uFF3C"=>"\\".freeze, "\uFF3D"=>"]".freeze, "\uFF3E"=>"^".freeze, "\uFF3F"=>"_".freeze, "\uFF40"=>"`".freeze, "\uFF41"=>"a".freeze, "\uFF42"=>"b".freeze, "\uFF43"=>"c".freeze,
    "\uFF44"=>"d".freeze, "\uFF45"=>"e".freeze, "\uFF46"=>"f".freeze, "\uFF47"=>"g".freeze, "\uFF48"=>"h".freeze, "\uFF49"=>"i".freeze, "\uFF4A"=>"j".freeze, "\uFF4B"=>"k".freeze,
    "\uFF4C"=>"l".freeze, "\uFF4D"=>"m".freeze, "\uFF4E"=>"n".freeze, "\uFF4F"=>"o".freeze, "\uFF50"=>"p".freeze, "\uFF51"=>"q".freeze, "\uFF52"=>"r".freeze, "\uFF53"=>"s".freeze,
    "\uFF54"=>"t".freeze, "\uFF55"=>"u".freeze, "\uFF56"=>"v".freeze, "\uFF57"=>"w".freeze, "\uFF58"=>"x".freeze, "\uFF59"=>"y".freeze, "\uFF5A"=>"z".freeze, "\uFF5B"=>"{".freeze,
    "\uFF5C"=>"|".freeze, "\uFF5D"=>"}".freeze, "\uFF5E"=>"~".freeze, "\uFF5F"=>"\u2985".freeze, "\uFF60"=>"\u2986".freeze, "\uFF61"=>"\u3002".freeze, "\uFF62"=>"\u300C".freeze, "\uFF63"=>"\u300D".freeze,
    "\uFF64"=>"\u3001".freeze, "\uFF65"=>"\u30FB".freeze, "\uFF66"=>"\u30F2".freeze, "\uFF67"=>"\u30A1".freeze, "\uFF68"=>"\u30A3".freeze, "\uFF69"=>"\u30A5".freeze, "\uFF6A"=>"\u30A7".freeze, "\uFF6B"=>"\u30A9".freeze,
    "\uFF6C"=>"\u30E3".freeze, "\uFF6D"=>"\u30E5".freeze, "\uFF6E"=>"\u30E7".freeze, "\uFF6F"=>"\u30C3".freeze, "\uFF70"=>"\u30FC".freeze, "\uFF71"=>"\u30A2".freeze, "\uFF72"=>"\u30A4".freeze, "\uFF73"=>"\u30A6".freeze,
    "\uFF74"=>"\u30A8".freeze, "\uFF75"=>"\u30AA".freeze, "\uFF76"=>"\u30AB".freeze, "\uFF77"=>"\u30AD".freeze, "\uFF78"=>"\u30AF".freeze, "\uFF79"=>"\u30B1".freeze, "\uFF7A"=>"\u30B3".freeze, "\uFF7B"=>"\u30B5".freeze,
    "\uFF7C"=>"\u30B7".freeze, "\uFF7D"=>"\u30B9".freeze, "\uFF7E"=>"\u30BB".freeze, "\uFF7F"=>"\u30BD".freeze, "\uFF80"=>"\u30BF".freeze, "\uFF81"=>"\u30C1".freeze, "\uFF82"=>"\u30C4".freeze, "\uFF83"=>"\u30C6".freeze,
    "\uFF84"=>"\u30C8".freeze, "\uFF85"=>"\u30CA".freeze, "\uFF86"=>"\u30CB".freeze, "\uFF87"=>"\u30CC".freeze, "\uFF88"=>"\u30CD".freeze, "\uFF89"=>"\u30CE".freeze, "\uFF8A"=>"\u30CF".freeze, "\uFF8B"=>"\u30D2".freeze,
    "\uFF8C"=>"\u30D5".freeze, "\uFF8D"=>"\u30D8".freeze, "\uFF8E"=>"\u30DB".freeze, "\uFF8F"=>"\u30DE".freeze, "\uFF90"=>"\u30DF".freeze, "\uFF91"=>"\u30E0".freeze, "\uFF92"=>"\u30E1".freeze, "\uFF93"=>"\u30E2".freeze,
    "\uFF94"=>"\u30E4".freeze, "\uFF95"=>"\u30E6".freeze, "\uFF96"=>"\u30E8".freeze, "\uFF97"=>"\u30E9".freeze, "\uFF98"=>"\u30EA".freeze, "\uFF99"=>"\u30EB".freeze, "\uFF9A"=>"\u30EC".freeze, "\uFF9B"=>"\u30ED".freeze,
    "\uFF9C"=>"\u30EF".freeze, "\uFF9D"=>"\u30F3".freeze, "\uFF9E"=>"\u3099".freeze, "\uFF9F"=>"\u309A".freeze, "\uFFA0"=>"\u1160".freeze, "\uFFA1"=>"\u1100".freeze, "\uFFA2"=>"\u1101".freeze, "\uFFA3"=>"\u11AA".freeze,
    "\uFFA4"=>"\u1102".freeze, "\uFFA5"=>"\u11AC".freeze, "\uFFA6"=>"\u11AD".freeze, "\uFFA7"=>"\u1103".freeze, "\uFFA8"=>"\u1104".freeze, "\uFFA9"=>"\u1105".freeze, "\uFFAA"=>"\u11B0".freeze, "\uFFAB"=>"\u11B1".freeze,
    "\uFFAC"=>"\u11B2".freeze, "\uFFAD"=>"\u11B3".freeze, "\uFFAE"=>"\u11B4".freeze, "\uFFAF"=>"\u11B5".freeze, "\uFFB0"=>"\u111A".freeze, "\uFFB1"=>"\u1106".freeze, "\uFFB2"=>"\u1107".freeze, "\uFFB3"=>"\u1108".freeze,
    "\uFFB4"=>"\u1121".freeze, "\uFFB5"=>"\u1109".freeze, "\uFFB6"=>"\u110A".freeze, "\uFFB7"=>"\u110B".freeze, "\uFFB8"=>"\u110C".freeze, "\uFFB9"=>"\u110D".freeze, "\uFFBA"=>"\u110E".freeze, "\uFFBB"=>"\u110F".freeze,
    "\uFFBC"=>"\u1110".freeze, "\uFFBD"=>"\u1111".freeze, "\uFFBE"=>"\u1112".freeze, "\uFFC2"=>"\u1161".freeze, "\uFFC3"=>"\u1162".freeze, "\uFFC4"=>"\u1163".freeze, "\uFFC5"=>"\u1164".freeze, "\uFFC6"=>"\u1165".freeze,
    "\uFFC7"=>"\u1166".freeze, "\uFFCA"=>"\u1167".freeze, "\uFFCB"=>"\u1168".freeze, "\uFFCC"=>"\u1169".freeze, "\uFFCD"=>"\u116A".freeze, "\uFFCE"=>"\u116B".freeze, "\uFFCF"=>"\u116C".freeze, "\uFFD2"=>"\u116D".freeze,
    "\uFFD3"=>"\u116E".freeze, "\uFFD4"=>"\u116F".freeze, "\uFFD5"=>"\u1170".freeze, "\uFFD6"=>"\u1171".freeze, "\uFFD7"=>"\u1172".freeze, "\uFFDA"=>"\u1173".freeze, "\uFFDB"=>"\u1174".freeze, "\uFFDC"=>"\u1175".freeze,
    "\uFFE0"=>"\u00A2".freeze, "\uFFE1"=>"\u00A3".freeze, "\uFFE2"=>"\u00AC".freeze, "\uFFE3"=>" \u0304".freeze, "\uFFE4"=>"\u00A6".freeze, "\uFFE5"=>"\u00A5".freeze, "\uFFE6"=>"\u20A9".freeze, "\uFFE8"=>"\u2502".freeze,
    "\uFFE9"=>"\u2190".freeze, "\uFFEA"=>"\u2191".freeze, "\uFFEB"=>"\u2192".freeze, "\uFFEC"=>"\u2193".freeze, "\uFFED"=>"\u25A0".freeze, "\uFFEE"=>"\u25CB".freeze, "\u{1D400}"=>"A".freeze, "\u{1D401}"=>"B".freeze,
    "\u{1D402}"=>"C".freeze, "\u{1D403}"=>"D".freeze, "\u{1D404}"=>"E".freeze, "\u{1D405}"=>"F".freeze, "\u{1D406}"=>"G".freeze, "\u{1D407}"=>"H".freeze, "\u{1D408}"=>"I".freeze, "\u{1D409}"=>"J".freeze,
    "\u{1D40A}"=>"K".freeze, "\u{1D40B}"=>"L".freeze, "\u{1D40C}"=>"M".freeze, "\u{1D40D}"=>"N".freeze, "\u{1D40E}"=>"O".freeze, "\u{1D40F}"=>"P".freeze, "\u{1D410}"=>"Q".freeze, "\u{1D411}"=>"R".freeze,
    "\u{1D412}"=>"S".freeze, "\u{1D413}"=>"T".freeze, "\u{1D414}"=>"U".freeze, "\u{1D415}"=>"V".freeze, "\u{1D416}"=>"W".freeze, "\u{1D417}"=>"X".freeze, "\u{1D418}"=>"Y".freeze, "\u{1D419}"=>"Z".freeze,
    "\u{1D41A}"=>"a".freeze, "\u{1D41B}"=>"b".freeze, "\u{1D41C}"=>"c".freeze, "\u{1D41D}"=>"d".freeze, "\u{1D41E}"=>"e".freeze, "\u{1D41F}"=>"f".freeze, "\u{1D420}"=>"g".freeze, "\u{1D421}"=>"h".freeze,
    "\u{1D422}"=>"i".freeze, "\u{1D423}"=>"j".freeze, "\u{1D424}"=>"k".freeze, "\u{1D425}"=>"l".freeze, "\u{1D426}"=>"m".freeze, "\u{1D427}"=>"n".freeze, "\u{1D428}"=>"o".freeze, "\u{1D429}"=>"p".freeze,
    "\u{1D42A}"=>"q".freeze, "\u{1D42B}"=>"r".freeze, "\u{1D42C}"=>"s".freeze, "\u{1D42D}"=>"t".freeze, "\u{1D42E}"=>"u".freeze, "\u{1D42F}"=>"v".freeze, "\u{1D430}"=>"w".freeze, "\u{1D431}"=>"x".freeze,
    "\u{1D432}"=>"y".freeze, "\u{1D433}"=>"z".freeze, "\u{1D434}"=>"A".freeze, "\u{1D435}"=>"B".freeze, "\u{1D436}"=>"C".freeze, "\u{1D437}"=>"D".freeze, "\u{1D438}"=>"E".freeze, "\u{1D439}"=>"F".freeze,
    "\u{1D43A}"=>"G".freeze, "\u{1D43B}"=>"H".freeze, "\u{1D43C}"=>"I".freeze, "\u{1D43D}"=>"J".freeze, "\u{1D43E}"=>"K".freeze, "\u{1D43F}"=>"L".freeze, "\u{1D440}"=>"M".freeze, "\u{1D441}"=>"N".freeze,
    "\u{1D442}"=>"O".freeze, "\u{1D443}"=>"P".freeze, "\u{1D444}"=>"Q".freeze, "\u{1D445}"=>"R".freeze, "\u{1D446}"=>"S".freeze, "\u{1D447}"=>"T".freeze, "\u{1D448}"=>"U".freeze, "\u{1D449}"=>"V".freeze,
    "\u{1D44A}"=>"W".freeze, "\u{1D44B}"=>"X".freeze, "\u{1D44C}"=>"Y".freeze, "\u{1D44D}"=>"Z".freeze, "\u{1D44E}"=>"a".freeze, "\u{1D44F}"=>"b".freeze, "\u{1D450}"=>"c".freeze, "\u{1D451}"=>"d".freeze,
    "\u{1D452}"=>"e".freeze, "\u{1D453}"=>"f".freeze, "\u{1D454}"=>"g".freeze, "\u{1D456}"=>"i".freeze, "\u{1D457}"=>"j".freeze, "\u{1D458}"=>"k".freeze, "\u{1D459}"=>"l".freeze, "\u{1D45A}"=>"m".freeze,
    "\u{1D45B}"=>"n".freeze, "\u{1D45C}"=>"o".freeze, "\u{1D45D}"=>"p".freeze, "\u{1D45E}"=>"q".freeze, "\u{1D45F}"=>"r".freeze, "\u{1D460}"=>"s".freeze, "\u{1D461}"=>"t".freeze, "\u{1D462}"=>"u".freeze,
    "\u{1D463}"=>"v".freeze, "\u{1D464}"=>"w".freeze, "\u{1D465}"=>"x".freeze, "\u{1D466}"=>"y".freeze, "\u{1D467}"=>"z".freeze, "\u{1D468}"=>"A".freeze, "\u{1D469}"=>"B".freeze, "\u{1D46A}"=>"C".freeze,
    "\u{1D46B}"=>"D".freeze, "\u{1D46C}"=>"E".freeze, "\u{1D46D}"=>"F".freeze, "\u{1D46E}"=>"G".freeze, "\u{1D46F}"=>"H".freeze, "\u{1D470}"=>"I".freeze, "\u{1D471}"=>"J".freeze, "\u{1D472}"=>"K".freeze,
    "\u{1D473}"=>"L".freeze, "\u{1D474}"=>"M".freeze, "\u{1D475}"=>"N".freeze, "\u{1D476}"=>"O".freeze, "\u{1D477}"=>"P".freeze, "\u{1D478}"=>"Q".freeze, "\u{1D479}"=>"R".freeze, "\u{1D47A}"=>"S".freeze,
    "\u{1D47B}"=>"T".freeze, "\u{1D47C}"=>"U".freeze, "\u{1D47D}"=>"V".freeze, "\u{1D47E}"=>"W".freeze, "\u{1D47F}"=>"X".freeze, "\u{1D480}"=>"Y".freeze, "\u{1D481}"=>"Z".freeze, "\u{1D482}"=>"a".freeze,
    "\u{1D483}"=>"b".freeze, "\u{1D484}"=>"c".freeze, "\u{1D485}"=>"d".freeze, "\u{1D486}"=>"e".freeze, "\u{1D487}"=>"f".freeze, "\u{1D488}"=>"g".freeze, "\u{1D489}"=>"h".freeze, "\u{1D48A}"=>"i".freeze,
    "\u{1D48B}"=>"j".freeze, "\u{1D48C}"=>"k".freeze, "\u{1D48D}"=>"l".freeze, "\u{1D48E}"=>"m".freeze, "\u{1D48F}"=>"n".freeze, "\u{1D490}"=>"o".freeze, "\u{1D491}"=>"p".freeze, "\u{1D492}"=>"q".freeze,
    "\u{1D493}"=>"r".freeze, "\u{1D494}"=>"s".freeze, "\u{1D495}"=>"t".freeze, "\u{1D496}"=>"u".freeze, "\u{1D497}"=>"v".freeze, "\u{1D498}"=>"w".freeze, "\u{1D499}"=>"x".freeze, "\u{1D49A}"=>"y".freeze,
    "\u{1D49B}"=>"z".freeze, "\u{1D49C}"=>"A".freeze, "\u{1D49E}"=>"C".freeze, "\u{1D49F}"=>"D".freeze, "\u{1D4A2}"=>"G".freeze, "\u{1D4A5}"=>"J".freeze, "\u{1D4A6}"=>"K".freeze, "\u{1D4A9}"=>"N".freeze,
    "\u{1D4AA}"=>"O".freeze, "\u{1D4AB}"=>"P".freeze, "\u{1D4AC}"=>"Q".freeze, "\u{1D4AE}"=>"S".freeze, "\u{1D4AF}"=>"T".freeze, "\u{1D4B0}"=>"U".freeze, "\u{1D4B1}"=>"V".freeze, "\u{1D4B2}"=>"W".freeze,
    "\u{1D4B3}"=>"X".freeze, "\u{1D4B4}"=>"Y".freeze, "\u{1D4B5}"=>"Z".freeze, "\u{1D4B6}"=>"a".freeze, "\u{1D4B7}"=>"b".freeze, "\u{1D4B8}"=>"c".freeze, "\u{1D4B9}"=>"d".freeze, "\u{1D4BB}"=>"f".freeze,
    "\u{1D4BD}"=>"h".freeze, "\u{1D4BE}"=>"i".freeze, "\u{1D4BF}"=>"j".freeze, "\u{1D4C0}"=>"k".freeze, "\u{1D4C1}"=>"l".freeze, "\u{1D4C2}"=>"m".freeze, "\u{1D4C3}"=>"n".freeze, "\u{1D4C5}"=>"p".freeze,
    "\u{1D4C6}"=>"q".freeze, "\u{1D4C7}"=>"r".freeze, "\u{1D4C8}"=>"s".freeze, "\u{1D4C9}"=>"t".freeze, "\u{1D4CA}"=>"u".freeze, "\u{1D4CB}"=>"v".freeze, "\u{1D4CC}"=>"w".freeze, "\u{1D4CD}"=>"x".freeze,
    "\u{1D4CE}"=>"y".freeze, "\u{1D4CF}"=>"z".freeze, "\u{1D4D0}"=>"A".freeze, "\u{1D4D1}"=>"B".freeze, "\u{1D4D2}"=>"C".freeze, "\u{1D4D3}"=>"D".freeze, "\u{1D4D4}"=>"E".freeze, "\u{1D4D5}"=>"F".freeze,
    "\u{1D4D6}"=>"G".freeze, "\u{1D4D7}"=>"H".freeze, "\u{1D4D8}"=>"I".freeze, "\u{1D4D9}"=>"J".freeze, "\u{1D4DA}"=>"K".freeze, "\u{1D4DB}"=>"L".freeze, "\u{1D4DC}"=>"M".freeze, "\u{1D4DD}"=>"N".freeze,
    "\u{1D4DE}"=>"O".freeze, "\u{1D4DF}"=>"P".freeze, "\u{1D4E0}"=>"Q".freeze, "\u{1D4E1}"=>"R".freeze, "\u{1D4E2}"=>"S".freeze, "\u{1D4E3}"=>"T".freeze, "\u{1D4E4}"=>"U".freeze, "\u{1D4E5}"=>"V".freeze,
    "\u{1D4E6}"=>"W".freeze, "\u{1D4E7}"=>"X".freeze, "\u{1D4E8}"=>"Y".freeze, "\u{1D4E9}"=>"Z".freeze, "\u{1D4EA}"=>"a".freeze, "\u{1D4EB}"=>"b".freeze, "\u{1D4EC}"=>"c".freeze, "\u{1D4ED}"=>"d".freeze,
    "\u{1D4EE}"=>"e".freeze, "\u{1D4EF}"=>"f".freeze, "\u{1D4F0}"=>"g".freeze, "\u{1D4F1}"=>"h".freeze, "\u{1D4F2}"=>"i".freeze, "\u{1D4F3}"=>"j".freeze, "\u{1D4F4}"=>"k".freeze, "\u{1D4F5}"=>"l".freeze,
    "\u{1D4F6}"=>"m".freeze, "\u{1D4F7}"=>"n".freeze, "\u{1D4F8}"=>"o".freeze, "\u{1D4F9}"=>"p".freeze, "\u{1D4FA}"=>"q".freeze, "\u{1D4FB}"=>"r".freeze, "\u{1D4FC}"=>"s".freeze, "\u{1D4FD}"=>"t".freeze,
    "\u{1D4FE}"=>"u".freeze, "\u{1D4FF}"=>"v".freeze, "\u{1D500}"=>"w".freeze, "\u{1D501}"=>"x".freeze, "\u{1D502}"=>"y".freeze, "\u{1D503}"=>"z".freeze, "\u{1D504}"=>"A".freeze, "\u{1D505}"=>"B".freeze,
    "\u{1D507}"=>"D".freeze, "\u{1D508}"=>"E".freeze, "\u{1D509}"=>"F".freeze, "\u{1D50A}"=>"G".freeze, "\u{1D50D}"=>"J".freeze, "\u{1D50E}"=>"K".freeze, "\u{1D50F}"=>"L".freeze, "\u{1D510}"=>"M".freeze,
    "\u{1D511}"=>"N".freeze, "\u{1D512}"=>"O".freeze, "\u{1D513}"=>"P".freeze, "\u{1D514}"=>"Q".freeze, "\u{1D516}"=>"S".freeze, "\u{1D517}"=>"T".freeze, "\u{1D518}"=>"U".freeze, "\u{1D519}"=>"V".freeze,
    "\u{1D51A}"=>"W".freeze, "\u{1D51B}"=>"X".freeze, "\u{1D51C}"=>"Y".freeze, "\u{1D51E}"=>"a".freeze, "\u{1D51F}"=>"b".freeze, "\u{1D520}"=>"c".freeze, "\u{1D521}"=>"d".freeze, "\u{1D522}"=>"e".freeze,
    "\u{1D523}"=>"f".freeze, "\u{1D524}"=>"g".freeze, "\u{1D525}"=>"h".freeze, "\u{1D526}"=>"i".freeze, "\u{1D527}"=>"j".freeze, "\u{1D528}"=>"k".freeze, "\u{1D529}"=>"l".freeze, "\u{1D52A}"=>"m".freeze,
    "\u{1D52B}"=>"n".freeze, "\u{1D52C}"=>"o".freeze, "\u{1D52D}"=>"p".freeze, "\u{1D52E}"=>"q".freeze, "\u{1D52F}"=>"r".freeze, "\u{1D530}"=>"s".freeze, "\u{1D531}"=>"t".freeze, "\u{1D532}"=>"u".freeze,
    "\u{1D533}"=>"v".freeze, "\u{1D534}"=>"w".freeze, "\u{1D535}"=>"x".freeze, "\u{1D536}"=>"y".freeze, "\u{1D537}"=>"z".freeze, "\u{1D538}"=>"A".freeze, "\u{1D539}"=>"B".freeze, "\u{1D53B}"=>"D".freeze,
    "\u{1D53C}"=>"E".freeze, "\u{1D53D}"=>"F".freeze, "\u{1D53E}"=>"G".freeze, "\u{1D540}"=>"I".freeze, "\u{1D541}"=>"J".freeze, "\u{1D542}"=>"K".freeze, "\u{1D543}"=>"L".freeze, "\u{1D544}"=>"M".freeze,
    "\u{1D546}"=>"O".freeze, "\u{1D54A}"=>"S".freeze, "\u{1D54B}"=>"T".freeze, "\u{1D54C}"=>"U".freeze, "\u{1D54D}"=>"V".freeze, "\u{1D54E}"=>"W".freeze, "\u{1D54F}"=>"X".freeze, "\u{1D550}"=>"Y".freeze,
    "\u{1D552}"=>"a".freeze, "\u{1D553}"=>"b".freeze, "\u{1D554}"=>"c".freeze, "\u{1D555}"=>"d".freeze, "\u{1D556}"=>"e".freeze, "\u{1D557}"=>"f".freeze, "\u{1D558}"=>"g".freeze, "\u{1D559}"=>"h".freeze,
    "\u{1D55A}"=>"i".freeze, "\u{1D55B}"=>"j".freeze, "\u{1D55C}"=>"k".freeze, "\u{1D55D}"=>"l".freeze, "\u{1D55E}"=>"m".freeze, "\u{1D55F}"=>"n".freeze, "\u{1D560}"=>"o".freeze, "\u{1D561}"=>"p".freeze,
    "\u{1D562}"=>"q".freeze, "\u{1D563}"=>"r".freeze, "\u{1D564}"=>"s".freeze, "\u{1D565}"=>"t".freeze, "\u{1D566}"=>"u".freeze, "\u{1D567}"=>"v".freeze, "\u{1D568}"=>"w".freeze, "\u{1D569}"=>"x".freeze,
    "\u{1D56A}"=>"y".freeze, "\u{1D56B}"=>"z".freeze, "\u{1D56C}"=>"A".freeze, "\u{1D56D}"=>"B".freeze, "\u{1D56E}"=>"C".freeze, "\u{1D56F}"=>"D".freeze, "\u{1D570}"=>"E".freeze, "\u{1D571}"=>"F".freeze,
    "\u{1D572}"=>"G".freeze, "\u{1D573}"=>"H".freeze, "\u{1D574}"=>"I".freeze, "\u{1D575}"=>"J".freeze, "\u{1D576}"=>"K".freeze, "\u{1D577}"=>"L".freeze, "\u{1D578}"=>"M".freeze, "\u{1D579}"=>"N".freeze,
    "\u{1D57A}"=>"O".freeze, "\u{1D57B}"=>"P".freeze, "\u{1D57C}"=>"Q".freeze, "\u{1D57D}"=>"R".freeze, "\u{1D57E}"=>"S".freeze, "\u{1D57F}"=>"T".freeze, "\u{1D580}"=>"U".freeze, "\u{1D581}"=>"V".freeze,
    "\u{1D582}"=>"W".freeze, "\u{1D583}"=>"X".freeze, "\u{1D584}"=>"Y".freeze, "\u{1D585}"=>"Z".freeze, "\u{1D586}"=>"a".freeze, "\u{1D587}"=>"b".freeze, "\u{1D588}"=>"c".freeze, "\u{1D589}"=>"d".freeze,
    "\u{1D58A}"=>"e".freeze, "\u{1D58B}"=>"f".freeze, "\u{1D58C}"=>"g".freeze, "\u{1D58D}"=>"h".freeze, "\u{1D58E}"=>"i".freeze, "\u{1D58F}"=>"j".freeze, "\u{1D590}"=>"k".freeze, "\u{1D591}"=>"l".freeze,
    "\u{1D592}"=>"m".freeze, "\u{1D593}"=>"n".freeze, "\u{1D594}"=>"o".freeze, "\u{1D595}"=>"p".freeze, "\u{1D596}"=>"q".freeze, "\u{1D597}"=>"r".freeze, "\u{1D598}"=>"s".freeze, "\u{1D599}"=>"t".freeze,
    "\u{1D59A}"=>"u".freeze, "\u{1D59B}"=>"v".freeze, "\u{1D59C}"=>"w".freeze, "\u{1D59D}"=>"x".freeze, "\u{1D59E}"=>"y".freeze, "\u{1D59F}"=>"z".freeze, "\u{1D5A0}"=>"A".freeze, "\u{1D5A1}"=>"B".freeze,
    "\u{1D5A2}"=>"C".freeze, "\u{1D5A3}"=>"D".freeze, "\u{1D5A4}"=>"E".freeze, "\u{1D5A5}"=>"F".freeze, "\u{1D5A6}"=>"G".freeze, "\u{1D5A7}"=>"H".freeze, "\u{1D5A8}"=>"I".freeze, "\u{1D5A9}"=>"J".freeze,
    "\u{1D5AA}"=>"K".freeze, "\u{1D5AB}"=>"L".freeze, "\u{1D5AC}"=>"M".freeze, "\u{1D5AD}"=>"N".freeze, "\u{1D5AE}"=>"O".freeze, "\u{1D5AF}"=>"P".freeze, "\u{1D5B0}"=>"Q".freeze, "\u{1D5B1}"=>"R".freeze,
    "\u{1D5B2}"=>"S".freeze, "\u{1D5B3}"=>"T".freeze, "\u{1D5B4}"=>"U".freeze, "\u{1D5B5}"=>"V".freeze, "\u{1D5B6}"=>"W".freeze, "\u{1D5B7}"=>"X".freeze, "\u{1D5B8}"=>"Y".freeze, "\u{1D5B9}"=>"Z".freeze,
    "\u{1D5BA}"=>"a".freeze, "\u{1D5BB}"=>"b".freeze, "\u{1D5BC}"=>"c".freeze, "\u{1D5BD}"=>"d".freeze, "\u{1D5BE}"=>"e".freeze, "\u{1D5BF}"=>"f".freeze, "\u{1D5C0}"=>"g".freeze, "\u{1D5C1}"=>"h".freeze,
    "\u{1D5C2}"=>"i".freeze, "\u{1D5C3}"=>"j".freeze, "\u{1D5C4}"=>"k".freeze, "\u{1D5C5}"=>"l".freeze, "\u{1D5C6}"=>"m".freeze, "\u{1D5C7}"=>"n".freeze, "\u{1D5C8}"=>"o".freeze, "\u{1D5C9}"=>"p".freeze,
    "\u{1D5CA}"=>"q".freeze, "\u{1D5CB}"=>"r".freeze, "\u{1D5CC}"=>"s".freeze, "\u{1D5CD}"=>"t".freeze, "\u{1D5CE}"=>"u".freeze, "\u{1D5CF}"=>"v".freeze, "\u{1D5D0}"=>"w".freeze, "\u{1D5D1}"=>"x".freeze,
    "\u{1D5D2}"=>"y".freeze, "\u{1D5D3}"=>"z".freeze, "\u{1D5D4}"=>"A".freeze, "\u{1D5D5}"=>"B".freeze, "\u{1D5D6}"=>"C".freeze, "\u{1D5D7}"=>"D".freeze, "\u{1D5D8}"=>"E".freeze, "\u{1D5D9}"=>"F".freeze,
    "\u{1D5DA}"=>"G".freeze, "\u{1D5DB}"=>"H".freeze, "\u{1D5DC}"=>"I".freeze, "\u{1D5DD}"=>"J".freeze, "\u{1D5DE}"=>"K".freeze, "\u{1D5DF}"=>"L".freeze, "\u{1D5E0}"=>"M".freeze, "\u{1D5E1}"=>"N".freeze,
    "\u{1D5E2}"=>"O".freeze, "\u{1D5E3}"=>"P".freeze, "\u{1D5E4}"=>"Q".freeze, "\u{1D5E5}"=>"R".freeze, "\u{1D5E6}"=>"S".freeze, "\u{1D5E7}"=>"T".freeze, "\u{1D5E8}"=>"U".freeze, "\u{1D5E9}"=>"V".freeze,
    "\u{1D5EA}"=>"W".freeze, "\u{1D5EB}"=>"X".freeze, "\u{1D5EC}"=>"Y".freeze, "\u{1D5ED}"=>"Z".freeze, "\u{1D5EE}"=>"a".freeze, "\u{1D5EF}"=>"b".freeze, "\u{1D5F0}"=>"c".freeze, "\u{1D5F1}"=>"d".freeze,
    "\u{1D5F2}"=>"e".freeze, "\u{1D5F3}"=>"f".freeze, "\u{1D5F4}"=>"g".freeze, "\u{1D5F5}"=>"h".freeze, "\u{1D5F6}"=>"i".freeze, "\u{1D5F7}"=>"j".freeze, "\u{1D5F8}"=>"k".freeze, "\u{1D5F9}"=>"l".freeze,
    "\u{1D5FA}"=>"m".freeze, "\u{1D5FB}"=>"n".freeze, "\u{1D5FC}"=>"o".freeze, "\u{1D5FD}"=>"p".freeze, "\u{1D5FE}"=>"q".freeze, "\u{1D5FF}"=>"r".freeze, "\u{1D600}"=>"s".freeze, "\u{1D601}"=>"t".freeze,
    "\u{1D602}"=>"u".freeze, "\u{1D603}"=>"v".freeze, "\u{1D604}"=>"w".freeze, "\u{1D605}"=>"x".freeze, "\u{1D606}"=>"y".freeze, "\u{1D607}"=>"z".freeze, "\u{1D608}"=>"A".freeze, "\u{1D609}"=>"B".freeze,
    "\u{1D60A}"=>"C".freeze, "\u{1D60B}"=>"D".freeze, "\u{1D60C}"=>"E".freeze, "\u{1D60D}"=>"F".freeze, "\u{1D60E}"=>"G".freeze, "\u{1D60F}"=>"H".freeze, "\u{1D610}"=>"I".freeze, "\u{1D611}"=>"J".freeze,
    "\u{1D612}"=>"K".freeze, "\u{1D613}"=>"L".freeze, "\u{1D614}"=>"M".freeze, "\u{1D615}"=>"N".freeze, "\u{1D616}"=>"O".freeze, "\u{1D617}"=>"P".freeze, "\u{1D618}"=>"Q".freeze, "\u{1D619}"=>"R".freeze,
    "\u{1D61A}"=>"S".freeze, "\u{1D61B}"=>"T".freeze, "\u{1D61C}"=>"U".freeze, "\u{1D61D}"=>"V".freeze, "\u{1D61E}"=>"W".freeze, "\u{1D61F}"=>"X".freeze, "\u{1D620}"=>"Y".freeze, "\u{1D621}"=>"Z".freeze,
    "\u{1D622}"=>"a".freeze, "\u{1D623}"=>"b".freeze, "\u{1D624}"=>"c".freeze, "\u{1D625}"=>"d".freeze, "\u{1D626}"=>"e".freeze, "\u{1D627}"=>"f".freeze, "\u{1D628}"=>"g".freeze, "\u{1D629}"=>"h".freeze,
    "\u{1D62A}"=>"i".freeze, "\u{1D62B}"=>"j".freeze, "\u{1D62C}"=>"k".freeze, "\u{1D62D}"=>"l".freeze, "\u{1D62E}"=>"m".freeze, "\u{1D62F}"=>"n".freeze, "\u{1D630}"=>"o".freeze, "\u{1D631}"=>"p".freeze,
    "\u{1D632}"=>"q".freeze, "\u{1D633}"=>"r".freeze, "\u{1D634}"=>"s".freeze, "\u{1D635}"=>"t".freeze, "\u{1D636}"=>"u".freeze, "\u{1D637}"=>"v".freeze, "\u{1D638}"=>"w".freeze, "\u{1D639}"=>"x".freeze,
    "\u{1D63A}"=>"y".freeze, "\u{1D63B}"=>"z".freeze, "\u{1D63C}"=>"A".freeze, "\u{1D63D}"=>"B".freeze, "\u{1D63E}"=>"C".freeze, "\u{1D63F}"=>"D".freeze, "\u{1D640}"=>"E".freeze, "\u{1D641}"=>"F".freeze,
    "\u{1D642}"=>"G".freeze, "\u{1D643}"=>"H".freeze, "\u{1D644}"=>"I".freeze, "\u{1D645}"=>"J".freeze, "\u{1D646}"=>"K".freeze, "\u{1D647}"=>"L".freeze, "\u{1D648}"=>"M".freeze, "\u{1D649}"=>"N".freeze,
    "\u{1D64A}"=>"O".freeze, "\u{1D64B}"=>"P".freeze, "\u{1D64C}"=>"Q".freeze, "\u{1D64D}"=>"R".freeze, "\u{1D64E}"=>"S".freeze, "\u{1D64F}"=>"T".freeze, "\u{1D650}"=>"U".freeze, "\u{1D651}"=>"V".freeze,
    "\u{1D652}"=>"W".freeze, "\u{1D653}"=>"X".freeze, "\u{1D654}"=>"Y".freeze, "\u{1D655}"=>"Z".freeze, "\u{1D656}"=>"a".freeze, "\u{1D657}"=>"b".freeze, "\u{1D658}"=>"c".freeze, "\u{1D659}"=>"d".freeze,
    "\u{1D65A}"=>"e".freeze, "\u{1D65B}"=>"f".freeze, "\u{1D65C}"=>"g".freeze, "\u{1D65D}"=>"h".freeze, "\u{1D65E}"=>"i".freeze, "\u{1D65F}"=>"j".freeze, "\u{1D660}"=>"k".freeze, "\u{1D661}"=>"l".freeze,
    "\u{1D662}"=>"m".freeze, "\u{1D663}"=>"n".freeze, "\u{1D664}"=>"o".freeze, "\u{1D665}"=>"p".freeze, "\u{1D666}"=>"q".freeze, "\u{1D667}"=>"r".freeze, "\u{1D668}"=>"s".freeze, "\u{1D669}"=>"t".freeze,
    "\u{1D66A}"=>"u".freeze, "\u{1D66B}"=>"v".freeze, "\u{1D66C}"=>"w".freeze, "\u{1D66D}"=>"x".freeze, "\u{1D66E}"=>"y".freeze, "\u{1D66F}"=>"z".freeze, "\u{1D670}"=>"A".freeze, "\u{1D671}"=>"B".freeze,
    "\u{1D672}"=>"C".freeze, "\u{1D673}"=>"D".freeze, "\u{1D674}"=>"E".freeze, "\u{1D675}"=>"F".freeze, "\u{1D676}"=>"G".freeze, "\u{1D677}"=>"H".freeze, "\u{1D678}"=>"I".freeze, "\u{1D679}"=>"J".freeze,
    "\u{1D67A}"=>"K".freeze, "\u{1D67B}"=>"L".freeze, "\u{1D67C}"=>"M".freeze, "\u{1D67D}"=>"N".freeze, "\u{1D67E}"=>"O".freeze, "\u{1D67F}"=>"P".freeze, "\u{1D680}"=>"Q".freeze, "\u{1D681}"=>"R".freeze,
    "\u{1D682}"=>"S".freeze, "\u{1D683}"=>"T".freeze, "\u{1D684}"=>"U".freeze, "\u{1D685}"=>"V".freeze, "\u{1D686}"=>"W".freeze, "\u{1D687}"=>"X".freeze, "\u{1D688}"=>"Y".freeze, "\u{1D689}"=>"Z".freeze,
    "\u{1D68A}"=>"a".freeze, "\u{1D68B}"=>"b".freeze, "\u{1D68C}"=>"c".freeze, "\u{1D68D}"=>"d".freeze, "\u{1D68E}"=>"e".freeze, "\u{1D68F}"=>"f".freeze, "\u{1D690}"=>"g".freeze, "\u{1D691}"=>"h".freeze,
    "\u{1D692}"=>"i".freeze, "\u{1D693}"=>"j".freeze, "\u{1D694}"=>"k".freeze, "\u{1D695}"=>"l".freeze, "\u{1D696}"=>"m".freeze, "\u{1D697}"=>"n".freeze, "\u{1D698}"=>"o".freeze, "\u{1D699}"=>"p".freeze,
    "\u{1D69A}"=>"q".freeze, "\u{1D69B}"=>"r".freeze, "\u{1D69C}"=>"s".freeze, "\u{1D69D}"=>"t".freeze, "\u{1D69E}"=>"u".freeze, "\u{1D69F}"=>"v".freeze, "\u{1D6A0}"=>"w".freeze, "\u{1D6A1}"=>"x".freeze,
    "\u{1D6A2}"=>"y".freeze, "\u{1D6A3}"=>"z".freeze, "\u{1D6A4}"=>"\u0131".freeze, "\u{1D6A5}"=>"\u0237".freeze, "\u{1D6A8}"=>"\u0391".freeze, "\u{1D6A9}"=>"\u0392".freeze, "\u{1D6AA}"=>"\u0393".freeze, "\u{1D6AB}"=>"\u0394".freeze,
    "\u{1D6AC}"=>"\u0395".freeze, "\u{1D6AD}"=>"\u0396".freeze, "\u{1D6AE}"=>"\u0397".freeze, "\u{1D6AF}"=>"\u0398".freeze, "\u{1D6B0}"=>"\u0399".freeze, "\u{1D6B1}"=>"\u039A".freeze, "\u{1D6B2}"=>"\u039B".freeze, "\u{1D6B3}"=>"\u039C".freeze,
    "\u{1D6B4}"=>"\u039D".freeze, "\u{1D6B5}"=>"\u039E".freeze, "\u{1D6B6}"=>"\u039F".freeze, "\u{1D6B7}"=>"\u03A0".freeze, "\u{1D6B8}"=>"\u03A1".freeze, "\u{1D6B9}"=>"\u0398".freeze, "\u{1D6BA}"=>"\u03A3".freeze, "\u{1D6BB}"=>"\u03A4".freeze,
    "\u{1D6BC}"=>"\u03A5".freeze, "\u{1D6BD}"=>"\u03A6".freeze, "\u{1D6BE}"=>"\u03A7".freeze, "\u{1D6BF}"=>"\u03A8".freeze, "\u{1D6C0}"=>"\u03A9".freeze, "\u{1D6C1}"=>"\u2207".freeze, "\u{1D6C2}"=>"\u03B1".freeze, "\u{1D6C3}"=>"\u03B2".freeze,
    "\u{1D6C4}"=>"\u03B3".freeze, "\u{1D6C5}"=>"\u03B4".freeze, "\u{1D6C6}"=>"\u03B5".freeze, "\u{1D6C7}"=>"\u03B6".freeze, "\u{1D6C8}"=>"\u03B7".freeze, "\u{1D6C9}"=>"\u03B8".freeze, "\u{1D6CA}"=>"\u03B9".freeze, "\u{1D6CB}"=>"\u03BA".freeze,
    "\u{1D6CC}"=>"\u03BB".freeze, "\u{1D6CD}"=>"\u03BC".freeze, "\u{1D6CE}"=>"\u03BD".freeze, "\u{1D6CF}"=>"\u03BE".freeze, "\u{1D6D0}"=>"\u03BF".freeze, "\u{1D6D1}"=>"\u03C0".freeze, "\u{1D6D2}"=>"\u03C1".freeze, "\u{1D6D3}"=>"\u03C2".freeze,
    "\u{1D6D4}"=>"\u03C3".freeze, "\u{1D6D5}"=>"\u03C4".freeze, "\u{1D6D6}"=>"\u03C5".freeze, "\u{1D6D7}"=>"\u03C6".freeze, "\u{1D6D8}"=>"\u03C7".freeze, "\u{1D6D9}"=>"\u03C8".freeze, "\u{1D6DA}"=>"\u03C9".freeze, "\u{1D6DB}"=>"\u2202".freeze,
    "\u{1D6DC}"=>"\u03B5".freeze, "\u{1D6DD}"=>"\u03B8".freeze, "\u{1D6DE}"=>"\u03BA".freeze, "\u{1D6DF}"=>"\u03C6".freeze, "\u{1D6E0}"=>"\u03C1".freeze, "\u{1D6E1}"=>"\u03C0".freeze, "\u{1D6E2}"=>"\u0391".freeze, "\u{1D6E3}"=>"\u0392".freeze,
    "\u{1D6E4}"=>"\u0393".freeze, "\u{1D6E5}"=>"\u0394".freeze, "\u{1D6E6}"=>"\u0395".freeze, "\u{1D6E7}"=>"\u0396".freeze, "\u{1D6E8}"=>"\u0397".freeze, "\u{1D6E9}"=>"\u0398".freeze, "\u{1D6EA}"=>"\u0399".freeze, "\u{1D6EB}"=>"\u039A".freeze,
    "\u{1D6EC}"=>"\u039B".freeze, "\u{1D6ED}"=>"\u039C".freeze, "\u{1D6EE}"=>"\u039D".freeze, "\u{1D6EF}"=>"\u039E".freeze, "\u{1D6F0}"=>"\u039F".freeze, "\u{1D6F1}"=>"\u03A0".freeze, "\u{1D6F2}"=>"\u03A1".freeze, "\u{1D6F3}"=>"\u0398".freeze,
    "\u{1D6F4}"=>"\u03A3".freeze, "\u{1D6F5}"=>"\u03A4".freeze, "\u{1D6F6}"=>"\u03A5".freeze, "\u{1D6F7}"=>"\u03A6".freeze, "\u{1D6F8}"=>"\u03A7".freeze, "\u{1D6F9}"=>"\u03A8".freeze, "\u{1D6FA}"=>"\u03A9".freeze, "\u{1D6FB}"=>"\u2207".freeze,
    "\u{1D6FC}"=>"\u03B1".freeze, "\u{1D6FD}"=>"\u03B2".freeze, "\u{1D6FE}"=>"\u03B3".freeze, "\u{1D6FF}"=>"\u03B4".freeze, "\u{1D700}"=>"\u03B5".freeze, "\u{1D701}"=>"\u03B6".freeze, "\u{1D702}"=>"\u03B7".freeze, "\u{1D703}"=>"\u03B8".freeze,
    "\u{1D704}"=>"\u03B9".freeze, "\u{1D705}"=>"\u03BA".freeze, "\u{1D706}"=>"\u03BB".freeze, "\u{1D707}"=>"\u03BC".freeze, "\u{1D708}"=>"\u03BD".freeze, "\u{1D709}"=>"\u03BE".freeze, "\u{1D70A}"=>"\u03BF".freeze, "\u{1D70B}"=>"\u03C0".freeze,
    "\u{1D70C}"=>"\u03C1".freeze, "\u{1D70D}"=>"\u03C2".freeze, "\u{1D70E}"=>"\u03C3".freeze, "\u{1D70F}"=>"\u03C4".freeze, "\u{1D710}"=>"\u03C5".freeze, "\u{1D711}"=>"\u03C6".freeze, "\u{1D712}"=>"\u03C7".freeze, "\u{1D713}"=>"\u03C8".freeze,
    "\u{1D714}"=>"\u03C9".freeze, "\u{1D715}"=>"\u2202".freeze, "\u{1D716}"=>"\u03B5".freeze, "\u{1D717}"=>"\u03B8".freeze, "\u{1D718}"=>"\u03BA".freeze, "\u{1D719}"=>"\u03C6".freeze, "\u{1D71A}"=>"\u03C1".freeze, "\u{1D71B}"=>"\u03C0".freeze,
    "\u{1D71C}"=>"\u0391".freeze, "\u{1D71D}"=>"\u0392".freeze, "\u{1D71E}"=>"\u0393".freeze, "\u{1D71F}"=>"\u0394".freeze, "\u{1D720}"=>"\u0395".freeze, "\u{1D721}"=>"\u0396".freeze, "\u{1D722}"=>"\u0397".freeze, "\u{1D723}"=>"\u0398".freeze,
    "\u{1D724}"=>"\u0399".freeze, "\u{1D725}"=>"\u039A".freeze, "\u{1D726}"=>"\u039B".freeze, "\u{1D727}"=>"\u039C".freeze, "\u{1D728}"=>"\u039D".freeze, "\u{1D729}"=>"\u039E".freeze, "\u{1D72A}"=>"\u039F".freeze, "\u{1D72B}"=>"\u03A0".freeze,
    "\u{1D72C}"=>"\u03A1".freeze, "\u{1D72D}"=>"\u0398".freeze, "\u{1D72E}"=>"\u03A3".freeze, "\u{1D72F}"=>"\u03A4".freeze, "\u{1D730}"=>"\u03A5".freeze, "\u{1D731}"=>"\u03A6".freeze, "\u{1D732}"=>"\u03A7".freeze, "\u{1D733}"=>"\u03A8".freeze,
    "\u{1D734}"=>"\u03A9".freeze, "\u{1D735}"=>"\u2207".freeze, "\u{1D736}"=>"\u03B1".freeze, "\u{1D737}"=>"\u03B2".freeze, "\u{1D738}"=>"\u03B3".freeze, "\u{1D739}"=>"\u03B4".freeze, "\u{1D73A}"=>"\u03B5".freeze, "\u{1D73B}"=>"\u03B6".freeze,
    "\u{1D73C}"=>"\u03B7".freeze, "\u{1D73D}"=>"\u03B8".freeze, "\u{1D73E}"=>"\u03B9".freeze, "\u{1D73F}"=>"\u03BA".freeze, "\u{1D740}"=>"\u03BB".freeze, "\u{1D741}"=>"\u03BC".freeze, "\u{1D742}"=>"\u03BD".freeze, "\u{1D743}"=>"\u03BE".freeze,
    "\u{1D744}"=>"\u03BF".freeze, "\u{1D745}"=>"\u03C0".freeze, "\u{1D746}"=>"\u03C1".freeze, "\u{1D747}"=>"\u03C2".freeze, "\u{1D748}"=>"\u03C3".freeze, "\u{1D749}"=>"\u03C4".freeze, "\u{1D74A}"=>"\u03C5".freeze, "\u{1D74B}"=>"\u03C6".freeze,
    "\u{1D74C}"=>"\u03C7".freeze, "\u{1D74D}"=>"\u03C8".freeze, "\u{1D74E}"=>"\u03C9".freeze, "\u{1D74F}"=>"\u2202".freeze, "\u{1D750}"=>"\u03B5".freeze, "\u{1D751}"=>"\u03B8".freeze, "\u{1D752}"=>"\u03BA".freeze, "\u{1D753}"=>"\u03C6".freeze,
    "\u{1D754}"=>"\u03C1".freeze, "\u{1D755}"=>"\u03C0".freeze, "\u{1D756}"=>"\u0391".freeze, "\u{1D757}"=>"\u0392".freeze, "\u{1D758}"=>"\u0393".freeze, "\u{1D759}"=>"\u0394".freeze, "\u{1D75A}"=>"\u0395".freeze, "\u{1D75B}"=>"\u0396".freeze,
    "\u{1D75C}"=>"\u0397".freeze, "\u{1D75D}"=>"\u0398".freeze, "\u{1D75E}"=>"\u0399".freeze, "\u{1D75F}"=>"\u039A".freeze, "\u{1D760}"=>"\u039B".freeze, "\u{1D761}"=>"\u039C".freeze, "\u{1D762}"=>"\u039D".freeze, "\u{1D763}"=>"\u039E".freeze,
    "\u{1D764}"=>"\u039F".freeze, "\u{1D765}"=>"\u03A0".freeze, "\u{1D766}"=>"\u03A1".freeze, "\u{1D767}"=>"\u0398".freeze, "\u{1D768}"=>"\u03A3".freeze, "\u{1D769}"=>"\u03A4".freeze, "\u{1D76A}"=>"\u03A5".freeze, "\u{1D76B}"=>"\u03A6".freeze,
    "\u{1D76C}"=>"\u03A7".freeze, "\u{1D76D}"=>"\u03A8".freeze, "\u{1D76E}"=>"\u03A9".freeze, "\u{1D76F}"=>"\u2207".freeze, "\u{1D770}"=>"\u03B1".freeze, "\u{1D771}"=>"\u03B2".freeze, "\u{1D772}"=>"\u03B3".freeze, "\u{1D773}"=>"\u03B4".freeze,
    "\u{1D774}"=>"\u03B5".freeze, "\u{1D775}"=>"\u03B6".freeze, "\u{1D776}"=>"\u03B7".freeze, "\u{1D777}"=>"\u03B8".freeze, "\u{1D778}"=>"\u03B9".freeze, "\u{1D779}"=>"\u03BA".freeze, "\u{1D77A}"=>"\u03BB".freeze, "\u{1D77B}"=>"\u03BC".freeze,
    "\u{1D77C}"=>"\u03BD".freeze, "\u{1D77D}"=>"\u03BE".freeze, "\u{1D77E}"=>"\u03BF".freeze, "\u{1D77F}"=>"\u03C0".freeze, "\u{1D780}"=>"\u03C1".freeze, "\u{1D781}"=>"\u03C2".freeze, "\u{1D782}"=>"\u03C3".freeze, "\u{1D783}"=>"\u03C4".freeze,
    "\u{1D784}"=>"\u03C5".freeze, "\u{1D785}"=>"\u03C6".freeze, "\u{1D786}"=>"\u03C7".freeze, "\u{1D787}"=>"\u03C8".freeze, "\u{1D788}"=>"\u03C9".freeze, "\u{1D789}"=>"\u2202".freeze, "\u{1D78A}"=>"\u03B5".freeze, "\u{1D78B}"=>"\u03B8".freeze,
    "\u{1D78C}"=>"\u03BA".freeze, "\u{1D78D}"=>"\u03C6".freeze, "\u{1D78E}"=>"\u03C1".freeze, "\u{1D78F}"=>"\u03C0".freeze, "\u{1D790}"=>"\u0391".freeze, "\u{1D791}"=>"\u0392".freeze, "\u{1D792}"=>"\u0393".freeze, "\u{1D793}"=>"\u0394".freeze,
    "\u{1D794}"=>"\u0395".freeze, "\u{1D795}"=>"\u0396".freeze, "\u{1D796}"=>"\u0397".freeze, "\u{1D797}"=>"\u0398".freeze, "\u{1D798}"=>"\u0399".freeze, "\u{1D799}"=>"\u039A".freeze, "\u{1D79A}"=>"\u039B".freeze, "\u{1D79B}"=>"\u039C".freeze,
    "\u{1D79C}"=>"\u039D".freeze, "\u{1D79D}"=>"\u039E".freeze, "\u{1D79E}"=>"\u039F".freeze, "\u{1D79F}"=>"\u03A0".freeze, "\u{1D7A0}"=>"\u03A1".freeze, "\u{1D7A1}"=>"\u0398".freeze, "\u{1D7A2}"=>"\u03A3".freeze, "\u{1D7A3}"=>"\u03A4".freeze,
    "\u{1D7A4}"=>"\u03A5".freeze, "\u{1D7A5}"=>"\u03A6".freeze, "\u{1D7A6}"=>"\u03A7".freeze, "\u{1D7A7}"=>"\u03A8".freeze, "\u{1D7A8}"=>"\u03A9".freeze, "\u{1D7A9}"=>"\u2207".freeze, "\u{1D7AA}"=>"\u03B1".freeze, "\u{1D7AB}"=>"\u03B2".freeze,
    "\u{1D7AC}"=>"\u03B3".freeze, "\u{1D7AD}"=>"\u03B4".freeze, "\u{1D7AE}"=>"\u03B5".freeze, "\u{1D7AF}"=>"\u03B6".freeze, "\u{1D7B0}"=>"\u03B7".freeze, "\u{1D7B1}"=>"\u03B8".freeze, "\u{1D7B2}"=>"\u03B9".freeze, "\u{1D7B3}"=>"\u03BA".freeze,
    "\u{1D7B4}"=>"\u03BB".freeze, "\u{1D7B5}"=>"\u03BC".freeze, "\u{1D7B6}"=>"\u03BD".freeze, "\u{1D7B7}"=>"\u03BE".freeze, "\u{1D7B8}"=>"\u03BF".freeze, "\u{1D7B9}"=>"\u03C0".freeze, "\u{1D7BA}"=>"\u03C1".freeze, "\u{1D7BB}"=>"\u03C2".freeze,
    "\u{1D7BC}"=>"\u03C3".freeze, "\u{1D7BD}"=>"\u03C4".freeze, "\u{1D7BE}"=>"\u03C5".freeze, "\u{1D7BF}"=>"\u03C6".freeze, "\u{1D7C0}"=>"\u03C7".freeze, "\u{1D7C1}"=>"\u03C8".freeze, "\u{1D7C2}"=>"\u03C9".freeze, "\u{1D7C3}"=>"\u2202".freeze,
    "\u{1D7C4}"=>"\u03B5".freeze, "\u{1D7C5}"=>"\u03B8".freeze, "\u{1D7C6}"=>"\u03BA".freeze, "\u{1D7C7}"=>"\u03C6".freeze, "\u{1D7C8}"=>"\u03C1".freeze, "\u{1D7C9}"=>"\u03C0".freeze, "\u{1D7CA}"=>"\u03DC".freeze, "\u{1D7CB}"=>"\u03DD".freeze,
    "\u{1D7CE}"=>"0".freeze, "\u{1D7CF}"=>"1".freeze, "\u{1D7D0}"=>"2".freeze, "\u{1D7D1}"=>"3".freeze, "\u{1D7D2}"=>"4".freeze, "\u{1D7D3}"=>"5".freeze, "\u{1D7D4}"=>"6".freeze, "\u{1D7D5}"=>"7".freeze,
    "\u{1D7D6}"=>"8".freeze, "\u{1D7D7}"=>"9".freeze, "\u{1D7D8}"=>"0".freeze, "\u{1D7D9}"=>"1".freeze, "\u{1D7DA}"=>"2".freeze, "\u{1D7DB}"=>"3".freeze, "\u{1D7DC}"=>"4".freeze, "\u{1D7DD}"=>"5".freeze,
    "\u{1D7DE}"=>"6".freeze, "\u{1D7DF}"=>"7".freeze, "\u{1D7E0}"=>"8".freeze, "\u{1D7E1}"=>"9".freeze, "\u{1D7E2}"=>"0".freeze, "\u{1D7E3}"=>"1".freeze, "\u{1D7E4}"=>"2".freeze, "\u{1D7E5}"=>"3".freeze,
    "\u{1D7E6}"=>"4".freeze, "\u{1D7E7}"=>"5".freeze, "\u{1D7E8}"=>"6".freeze, "\u{1D7E9}"=>"7".freeze, "\u{1D7EA}"=>"8".freeze, "\u{1D7EB}"=>"9".freeze, "\u{1D7EC}"=>"0".freeze, "\u{1D7ED}"=>"1".freeze,
    "\u{1D7EE}"=>"2".freeze, "\u{1D7EF}"=>"3".freeze, "\u{1D7F0}"=>"4".freeze, "\u{1D7F1}"=>"5".freeze, "\u{1D7F2}"=>"6".freeze, "\u{1D7F3}"=>"7".freeze, "\u{1D7F4}"=>"8".freeze, "\u{1D7F5}"=>"9".freeze,
    "\u{1D7F6}"=>"0".freeze, "\u{1D7F7}"=>"1".freeze, "\u{1D7F8}"=>"2".freeze, "\u{1D7F9}"=>"3".freeze, "\u{1D7FA}"=>"4".freeze, "\u{1D7FB}"=>"5".freeze, "\u{1D7FC}"=>"6".freeze, "\u{1D7FD}"=>"7".freeze,
    "\u{1D7FE}"=>"8".freeze, "\u{1D7FF}"=>"9".freeze, "\u{1EE00}"=>"\u0627".freeze, "\u{1EE01}"=>"\u0628".freeze, "\u{1EE02}"=>"\u062C".freeze, "\u{1EE03}"=>"\u062F".freeze, "\u{1EE05}"=>"\u0648".freeze, "\u{1EE06}"=>"\u0632".freeze,
    "\u{1EE07}"=>"\u062D".freeze, "\u{1EE08}"=>"\u0637".freeze, "\u{1EE09}"=>"\u064A".freeze, "\u{1EE0A}"=>"\u0643".freeze, "\u{1EE0B}"=>"\u0644".freeze, "\u{1EE0C}"=>"\u0645".freeze, "\u{1EE0D}"=>"\u0646".freeze, "\u{1EE0E}"=>"\u0633".freeze,
    "\u{1EE0F}"=>"\u0639".freeze, "\u{1EE10}"=>"\u0641".freeze, "\u{1EE11}"=>"\u0635".freeze, "\u{1EE12}"=>"\u0642".freeze, "\u{1EE13}"=>"\u0631".freeze, "\u{1EE14}"=>"\u0634".freeze, "\u{1EE15}"=>"\u062A".freeze, "\u{1EE16}"=>"\u062B".freeze,
    "\u{1EE17}"=>"\u062E".freeze, "\u{1EE18}"=>"\u0630".freeze, "\u{1EE19}"=>"\u0636".freeze, "\u{1EE1A}"=>"\u0638".freeze, "\u{1EE1B}"=>"\u063A".freeze, "\u{1EE1C}"=>"\u066E".freeze, "\u{1EE1D}"=>"\u06BA".freeze, "\u{1EE1E}"=>"\u06A1".freeze,
    "\u{1EE1F}"=>"\u066F".freeze, "\u{1EE21}"=>"\u0628".freeze, "\u{1EE22}"=>"\u062C".freeze, "\u{1EE24}"=>"\u0647".freeze, "\u{1EE27}"=>"\u062D".freeze, "\u{1EE29}"=>"\u064A".freeze, "\u{1EE2A}"=>"\u0643".freeze, "\u{1EE2B}"=>"\u0644".freeze,
    "\u{1EE2C}"=>"\u0645".freeze, "\u{1EE2D}"=>"\u0646".freeze, "\u{1EE2E}"=>"\u0633".freeze, "\u{1EE2F}"=>"\u0639".freeze, "\u{1EE30}"=>"\u0641".freeze, "\u{1EE31}"=>"\u0635".freeze, "\u{1EE32}"=>"\u0642".freeze, "\u{1EE34}"=>"\u0634".freeze,
    "\u{1EE35}"=>"\u062A".freeze, "\u{1EE36}"=>"\u062B".freeze, "\u{1EE37}"=>"\u062E".freeze, "\u{1EE39}"=>"\u0636".freeze, "\u{1EE3B}"=>"\u063A".freeze, "\u{1EE42}"=>"\u062C".freeze, "\u{1EE47}"=>"\u062D".freeze, "\u{1EE49}"=>"\u064A".freeze,
    "\u{1EE4B}"=>"\u0644".freeze, "\u{1EE4D}"=>"\u0646".freeze, "\u{1EE4E}"=>"\u0633".freeze, "\u{1EE4F}"=>"\u0639".freeze, "\u{1EE51}"=>"\u0635".freeze, "\u{1EE52}"=>"\u0642".freeze, "\u{1EE54}"=>"\u0634".freeze, "\u{1EE57}"=>"\u062E".freeze,
    "\u{1EE59}"=>"\u0636".freeze, "\u{1EE5B}"=>"\u063A".freeze, "\u{1EE5D}"=>"\u06BA".freeze, "\u{1EE5F}"=>"\u066F".freeze, "\u{1EE61}"=>"\u0628".freeze, "\u{1EE62}"=>"\u062C".freeze, "\u{1EE64}"=>"\u0647".freeze, "\u{1EE67}"=>"\u062D".freeze,
    "\u{1EE68}"=>"\u0637".freeze, "\u{1EE69}"=>"\u064A".freeze, "\u{1EE6A}"=>"\u0643".freeze, "\u{1EE6C}"=>"\u0645".freeze, "\u{1EE6D}"=>"\u0646".freeze, "\u{1EE6E}"=>"\u0633".freeze, "\u{1EE6F}"=>"\u0639".freeze, "\u{1EE70}"=>"\u0641".freeze,
    "\u{1EE71}"=>"\u0635".freeze, "\u{1EE72}"=>"\u0642".freeze, "\u{1EE74}"=>"\u0634".freeze, "\u{1EE75}"=>"\u062A".freeze, "\u{1EE76}"=>"\u062B".freeze, "\u{1EE77}"=>"\u062E".freeze, "\u{1EE79}"=>"\u0636".freeze, "\u{1EE7A}"=>"\u0638".freeze,
    "\u{1EE7B}"=>"\u063A".freeze, "\u{1EE7C}"=>"\u066E".freeze, "\u{1EE7E}"=>"\u06A1".freeze, "\u{1EE80}"=>"\u0627".freeze, "\u{1EE81}"=>"\u0628".freeze, "\u{1EE82}"=>"\u062C".freeze, "\u{1EE83}"=>"\u062F".freeze, "\u{1EE84}"=>"\u0647".freeze,
    "\u{1EE85}"=>"\u0648".freeze, "\u{1EE86}"=>"\u0632".freeze, "\u{1EE87}"=>"\u062D".freeze, "\u{1EE88}"=>"\u0637".freeze, "\u{1EE89}"=>"\u064A".freeze, "\u{1EE8B}"=>"\u0644".freeze, "\u{1EE8C}"=>"\u0645".freeze, "\u{1EE8D}"=>"\u0646".freeze,
    "\u{1EE8E}"=>"\u0633".freeze, "\u{1EE8F}"=>"\u0639".freeze, "\u{1EE90}"=>"\u0641".freeze, "\u{1EE91}"=>"\u0635".freeze, "\u{1EE92}"=>"\u0642".freeze, "\u{1EE93}"=>"\u0631".freeze, "\u{1EE94}"=>"\u0634".freeze, "\u{1EE95}"=>"\u062A".freeze,
    "\u{1EE96}"=>"\u062B".freeze, "\u{1EE97}"=>"\u062E".freeze, "\u{1EE98}"=>"\u0630".freeze, "\u{1EE99}"=>"\u0636".freeze, "\u{1EE9A}"=>"\u0638".freeze, "\u{1EE9B}"=>"\u063A".freeze, "\u{1EEA1}"=>"\u0628".freeze, "\u{1EEA2}"=>"\u062C".freeze,
    "\u{1EEA3}"=>"\u062F".freeze, "\u{1EEA5}"=>"\u0648".freeze, "\u{1EEA6}"=>"\u0632".freeze, "\u{1EEA7}"=>"\u062D".freeze, "\u{1EEA8}"=>"\u0637".freeze, "\u{1EEA9}"=>"\u064A".freeze, "\u{1EEAB}"=>"\u0644".freeze, "\u{1EEAC}"=>"\u0645".freeze,
    "\u{1EEAD}"=>"\u0646".freeze, "\u{1EEAE}"=>"\u0633".freeze, "\u{1EEAF}"=>"\u0639".freeze, "\u{1EEB0}"=>"\u0641".freeze, "\u{1EEB1}"=>"\u0635".freeze, "\u{1EEB2}"=>"\u0642".freeze, "\u{1EEB3}"=>"\u0631".freeze, "\u{1EEB4}"=>"\u0634".freeze,
    "\u{1EEB5}"=>"\u062A".freeze, "\u{1EEB6}"=>"\u062B".freeze, "\u{1EEB7}"=>"\u062E".freeze, "\u{1EEB8}"=>"\u0630".freeze, "\u{1EEB9}"=>"\u0636".freeze, "\u{1EEBA}"=>"\u0638".freeze, "\u{1EEBB}"=>"\u063A".freeze, "\u{1F100}"=>"0.".freeze,
    "\u{1F101}"=>"0,".freeze, "\u{1F102}"=>"1,".freeze, "\u{1F103}"=>"2,".freeze, "\u{1F104}"=>"3,".freeze, "\u{1F105}"=>"4,".freeze, "\u{1F106}"=>"5,".freeze, "\u{1F107}"=>"6,".freeze, "\u{1F108}"=>"7,".freeze,
    "\u{1F109}"=>"8,".freeze, "\u{1F10A}"=>"9,".freeze, "\u{1F110}"=>"(A)".freeze, "\u{1F111}"=>"(B)".freeze, "\u{1F112}"=>"(C)".freeze, "\u{1F113}"=>"(D)".freeze, "\u{1F114}"=>"(E)".freeze, "\u{1F115}"=>"(F)".freeze,
    "\u{1F116}"=>"(G)".freeze, "\u{1F117}"=>"(H)".freeze, "\u{1F118}"=>"(I)".freeze, "\u{1F119}"=>"(J)".freeze, "\u{1F11A}"=>"(K)".freeze, "\u{1F11B}"=>"(L)".freeze, "\u{1F11C}"=>"(M)".freeze, "\u{1F11D}"=>"(N)".freeze,
    "\u{1F11E}"=>"(O)".freeze, "\u{1F11F}"=>"(P)".freeze, "\u{1F120}"=>"(Q)".freeze, "\u{1F121}"=>"(R)".freeze, "\u{1F122}"=>"(S)".freeze, "\u{1F123}"=>"(T)".freeze, "\u{1F124}"=>"(U)".freeze, "\u{1F125}"=>"(V)".freeze,
    "\u{1F126}"=>"(W)".freeze, "\u{1F127}"=>"(X)".freeze, "\u{1F128}"=>"(Y)".freeze, "\u{1F129}"=>"(Z)".freeze, "\u{1F12A}"=>"\u3014S\u3015".freeze, "\u{1F12B}"=>"C".freeze, "\u{1F12C}"=>"R".freeze, "\u{1F12D}"=>"CD".freeze,
    "\u{1F12E}"=>"WZ".freeze, "\u{1F130}"=>"A".freeze, "\u{1F131}"=>"B".freeze, "\u{1F132}"=>"C".freeze, "\u{1F133}"=>"D".freeze, "\u{1F134}"=>"E".freeze, "\u{1F135}"=>"F".freeze, "\u{1F136}"=>"G".freeze,
    "\u{1F137}"=>"H".freeze, "\u{1F138}"=>"I".freeze, "\u{1F139}"=>"J".freeze, "\u{1F13A}"=>"K".freeze, "\u{1F13B}"=>"L".freeze, "\u{1F13C}"=>"M".freeze, "\u{1F13D}"=>"N".freeze, "\u{1F13E}"=>"O".freeze,
    "\u{1F13F}"=>"P".freeze, "\u{1F140}"=>"Q".freeze, "\u{1F141}"=>"R".freeze, "\u{1F142}"=>"S".freeze, "\u{1F143}"=>"T".freeze, "\u{1F144}"=>"U".freeze, "\u{1F145}"=>"V".freeze, "\u{1F146}"=>"W".freeze,
    "\u{1F147}"=>"X".freeze, "\u{1F148}"=>"Y".freeze, "\u{1F149}"=>"Z".freeze, "\u{1F14A}"=>"HV".freeze, "\u{1F14B}"=>"MV".freeze, "\u{1F14C}"=>"SD".freeze, "\u{1F14D}"=>"SS".freeze, "\u{1F14E}"=>"PPV".freeze,
    "\u{1F14F}"=>"WC".freeze, "\u{1F16A}"=>"MC".freeze, "\u{1F16B}"=>"MD".freeze, "\u{1F190}"=>"DJ".freeze, "\u{1F200}"=>"\u307B\u304B".freeze, "\u{1F201}"=>"\u30B3\u30B3".freeze, "\u{1F202}"=>"\u30B5".freeze, "\u{1F210}"=>"\u624B".freeze,
    "\u{1F211}"=>"\u5B57".freeze, "\u{1F212}"=>"\u53CC".freeze, "\u{1F213}"=>"\u30C7".freeze, "\u{1F214}"=>"\u4E8C".freeze, "\u{1F215}"=>"\u591A".freeze, "\u{1F216}"=>"\u89E3".freeze, "\u{1F217}"=>"\u5929".freeze, "\u{1F218}"=>"\u4EA4".freeze,
    "\u{1F219}"=>"\u6620".freeze, "\u{1F21A}"=>"\u7121".freeze, "\u{1F21B}"=>"\u6599".freeze, "\u{1F21C}"=>"\u524D".freeze, "\u{1F21D}"=>"\u5F8C".freeze, "\u{1F21E}"=>"\u518D".freeze, "\u{1F21F}"=>"\u65B0".freeze, "\u{1F220}"=>"\u521D".freeze,
    "\u{1F221}"=>"\u7D42".freeze, "\u{1F222}"=>"\u751F".freeze, "\u{1F223}"=>"\u8CA9".freeze, "\u{1F224}"=>"\u58F0".freeze, "\u{1F225}"=>"\u5439".freeze, "\u{1F226}"=>"\u6F14".freeze, "\u{1F227}"=>"\u6295".freeze, "\u{1F228}"=>"\u6355".freeze,
    "\u{1F229}"=>"\u4E00".freeze, "\u{1F22A}"=>"\u4E09".freeze, "\u{1F22B}"=>"\u904A".freeze, "\u{1F22C}"=>"\u5DE6".freeze, "\u{1F22D}"=>"\u4E2D".freeze, "\u{1F22E}"=>"\u53F3".freeze, "\u{1F22F}"=>"\u6307".freeze, "\u{1F230}"=>"\u8D70".freeze,
    "\u{1F231}"=>"\u6253".freeze, "\u{1F232}"=>"\u7981".freeze, "\u{1F233}"=>"\u7A7A".freeze, "\u{1F234}"=>"\u5408".freeze, "\u{1F235}"=>"\u6E80".freeze, "\u{1F236}"=>"\u6709".freeze, "\u{1F237}"=>"\u6708".freeze, "\u{1F238}"=>"\u7533".freeze,
    "\u{1F239}"=>"\u5272".freeze, "\u{1F23A}"=>"\u55B6".freeze, "\u{1F240}"=>"\u3014\u672C\u3015".freeze, "\u{1F241}"=>"\u3014\u4E09\u3015".freeze, "\u{1F242}"=>"\u3014\u4E8C\u3015".freeze, "\u{1F243}"=>"\u3014\u5B89\u3015".freeze, "\u{1F244}"=>"\u3014\u70B9\u3015".freeze, "\u{1F245}"=>"\u3014\u6253\u3015".freeze,
    "\u{1F246}"=>"\u3014\u76D7\u3015".freeze, "\u{1F247}"=>"\u3014\u52DD\u3015".freeze, "\u{1F248}"=>"\u3014\u6557\u3015".freeze, "\u{1F250}"=>"\u5F97".freeze, "\u{1F251}"=>"\u53EF".freeze, "\u0385"=>" \u0308\u0301".freeze, "\u03D3"=>"\u03A5\u0301".freeze, "\u03D4"=>"\u03A5\u0308".freeze,
    "\u1E9B"=>"s\u0307".freeze, "\u1FC1"=>" \u0308\u0342".freeze, "\u1FCD"=>" \u0313\u0300".freeze, "\u1FCE"=>" \u0313\u0301".freeze, "\u1FCF"=>" \u0313\u0342".freeze, "\u1FDD"=>" \u0314\u0300".freeze, "\u1FDE"=>" \u0314\u0301".freeze, "\u1FDF"=>" \u0314\u0342".freeze,
    "\u1FED"=>" \u0308\u0300".freeze, "\u1FEE"=>" \u0308\u0301".freeze, "\u1FFD"=>" \u0301".freeze, "\u2000"=>" ".freeze, "\u2001"=>" ".freeze,
  }.freeze

  COMPOSITION_TABLE = {
    "A\u0300"=>"\u00C0".freeze, "A\u0301"=>"\u00C1".freeze, "A\u0302"=>"\u00C2".freeze, "A\u0303"=>"\u00C3".freeze, "A\u0308"=>"\u00C4".freeze, "A\u030A"=>"\u00C5".freeze, "C\u0327"=>"\u00C7".freeze, "E\u0300"=>"\u00C8".freeze,
    "E\u0301"=>"\u00C9".freeze, "E\u0302"=>"\u00CA".freeze, "E\u0308"=>"\u00CB".freeze, "I\u0300"=>"\u00CC".freeze, "I\u0301"=>"\u00CD".freeze, "I\u0302"=>"\u00CE".freeze, "I\u0308"=>"\u00CF".freeze, "N\u0303"=>"\u00D1".freeze,
    "O\u0300"=>"\u00D2".freeze, "O\u0301"=>"\u00D3".freeze, "O\u0302"=>"\u00D4".freeze, "O\u0303"=>"\u00D5".freeze, "O\u0308"=>"\u00D6".freeze, "U\u0300"=>"\u00D9".freeze, "U\u0301"=>"\u00DA".freeze, "U\u0302"=>"\u00DB".freeze,
    "U\u0308"=>"\u00DC".freeze, "Y\u0301"=>"\u00DD".freeze, "a\u0300"=>"\u00E0".freeze, "a\u0301"=>"\u00E1".freeze, "a\u0302"=>"\u00E2".freeze, "a\u0303"=>"\u00E3".freeze, "a\u0308"=>"\u00E4".freeze, "a\u030A"=>"\u00E5".freeze,
    "c\u0327"=>"\u00E7".freeze, "e\u0300"=>"\u00E8".freeze, "e\u0301"=>"\u00E9".freeze, "e\u0302"=>"\u00EA".freeze, "e\u0308"=>"\u00EB".freeze, "i\u0300"=>"\u00EC".freeze, "i\u0301"=>"\u00ED".freeze, "i\u0302"=>"\u00EE".freeze,
    "i\u0308"=>"\u00EF".freeze, "n\u0303"=>"\u00F1".freeze, "o\u0300"=>"\u00F2".freeze, "o\u0301"=>"\u00F3".freeze, "o\u0302"=>"\u00F4".freeze, "o\u0303"=>"\u00F5".freeze, "o\u0308"=>"\u00F6".freeze, "u\u0300"=>"\u00F9".freeze,
    "u\u0301"=>"\u00FA".freeze, "u\u0302"=>"\u00FB".freeze, "u\u0308"=>"\u00FC".freeze, "y\u0301"=>"\u00FD".freeze, "y\u0308"=>"\u00FF".freeze, "A\u0304"=>"\u0100".freeze, "a\u0304"=>"\u0101".freeze, "A\u0306"=>"\u0102".freeze,
    "a\u0306"=>"\u0103".freeze, "A\u0328"=>"\u0104".freeze, "a\u0328"=>"\u0105".freeze, "C\u0301"=>"\u0106".freeze, "c\u0301"=>"\u0107".freeze, "C\u0302"=>"\u0108".freeze, "c\u0302"=>"\u0109".freeze, "C\u0307"=>"\u010A".freeze,
    "c\u0307"=>"\u010B".freeze, "C\u030C"=>"\u010C".freeze, "c\u030C"=>"\u010D".freeze, "D\u030C"=>"\u010E".freeze, "d\u030C"=>"\u010F".freeze, "E\u0304"=>"\u0112".freeze, "e\u0304"=>"\u0113".freeze, "E\u0306"=>"\u0114".freeze,
    "e\u0306"=>"\u0115".freeze, "E\u0307"=>"\u0116".freeze, "e\u0307"=>"\u0117".freeze, "E\u0328"=>"\u0118".freeze, "e\u0328"=>"\u0119".freeze, "E\u030C"=>"\u011A".freeze, "e\u030C"=>"\u011B".freeze, "G\u0302"=>"\u011C".freeze,
    "g\u0302"=>"\u011D".freeze, "G\u0306"=>"\u011E".freeze, "g\u0306"=>"\u011F".freeze, "G\u0307"=>"\u0120".freeze, "g\u0307"=>"\u0121".freeze, "G\u0327"=>"\u0122".freeze, "g\u0327"=>"\u0123".freeze, "H\u0302"=>"\u0124".freeze,
    "h\u0302"=>"\u0125".freeze, "I\u0303"=>"\u0128".freeze, "i\u0303"=>"\u0129".freeze, "I\u0304"=>"\u012A".freeze, "i\u0304"=>"\u012B".freeze, "I\u0306"=>"\u012C".freeze, "i\u0306"=>"\u012D".freeze, "I\u0328"=>"\u012E".freeze,
    "i\u0328"=>"\u012F".freeze, "I\u0307"=>"\u0130".freeze, "J\u0302"=>"\u0134".freeze, "j\u0302"=>"\u0135".freeze, "K\u0327"=>"\u0136".freeze, "k\u0327"=>"\u0137".freeze, "L\u0301"=>"\u0139".freeze, "l\u0301"=>"\u013A".freeze,
    "L\u0327"=>"\u013B".freeze, "l\u0327"=>"\u013C".freeze, "L\u030C"=>"\u013D".freeze, "l\u030C"=>"\u013E".freeze, "N\u0301"=>"\u0143".freeze, "n\u0301"=>"\u0144".freeze, "N\u0327"=>"\u0145".freeze, "n\u0327"=>"\u0146".freeze,
    "N\u030C"=>"\u0147".freeze, "n\u030C"=>"\u0148".freeze, "O\u0304"=>"\u014C".freeze, "o\u0304"=>"\u014D".freeze, "O\u0306"=>"\u014E".freeze, "o\u0306"=>"\u014F".freeze, "O\u030B"=>"\u0150".freeze, "o\u030B"=>"\u0151".freeze,
    "R\u0301"=>"\u0154".freeze, "r\u0301"=>"\u0155".freeze, "R\u0327"=>"\u0156".freeze, "r\u0327"=>"\u0157".freeze, "R\u030C"=>"\u0158".freeze, "r\u030C"=>"\u0159".freeze, "S\u0301"=>"\u015A".freeze, "s\u0301"=>"\u015B".freeze,
    "S\u0302"=>"\u015C".freeze, "s\u0302"=>"\u015D".freeze, "S\u0327"=>"\u015E".freeze, "s\u0327"=>"\u015F".freeze, "S\u030C"=>"\u0160".freeze, "s\u030C"=>"\u0161".freeze, "T\u0327"=>"\u0162".freeze, "t\u0327"=>"\u0163".freeze,
    "T\u030C"=>"\u0164".freeze, "t\u030C"=>"\u0165".freeze, "U\u0303"=>"\u0168".freeze, "u\u0303"=>"\u0169".freeze, "U\u0304"=>"\u016A".freeze, "u\u0304"=>"\u016B".freeze, "U\u0306"=>"\u016C".freeze, "u\u0306"=>"\u016D".freeze,
    "U\u030A"=>"\u016E".freeze, "u\u030A"=>"\u016F".freeze, "U\u030B"=>"\u0170".freeze, "u\u030B"=>"\u0171".freeze, "U\u0328"=>"\u0172".freeze, "u\u0328"=>"\u0173".freeze, "W\u0302"=>"\u0174".freeze, "w\u0302"=>"\u0175".freeze,
    "Y\u0302"=>"\u0176".freeze, "y\u0302"=>"\u0177".freeze, "Y\u0308"=>"\u0178".freeze, "Z\u0301"=>"\u0179".freeze, "z\u0301"=>"\u017A".freeze, "Z\u0307"=>"\u017B".freeze, "z\u0307"=>"\u017C".freeze, "Z\u030C"=>"\u017D".freeze,
    "z\u030C"=>"\u017E".freeze, "O\u031B"=>"\u01A0".freeze, "o\u031B"=>"\u01A1".freeze, "U\u031B"=>"\u01AF".freeze, "u\u031B"=>"\u01B0".freeze, "A\u030C"=>"\u01CD".freeze, "a\u030C"=>"\u01CE".freeze, "I\u030C"=>"\u01CF".freeze,
    "i\u030C"=>"\u01D0".freeze, "O\u030C"=>"\u01D1".freeze, "o\u030C"=>"\u01D2".freeze, "U\u030C"=>"\u01D3".freeze, "u\u030C"=>"\u01D4".freeze, "\u00DC\u0304"=>"\u01D5".freeze, "\u00FC\u0304"=>"\u01D6".freeze, "\u00DC\u0301"=>"\u01D7".freeze,
    "\u00FC\u0301"=>"\u01D8".freeze, "\u00DC\u030C"=>"\u01D9".freeze, "\u00FC\u030C"=>"\u01DA".freeze, "\u00DC\u0300"=>"\u01DB".freeze, "\u00FC\u0300"=>"\u01DC".freeze, "\u00C4\u0304"=>"\u01DE".freeze, "\u00E4\u0304"=>"\u01DF".freeze, "\u0226\u0304"=>"\u01E0".freeze,
    "\u0227\u0304"=>"\u01E1".freeze, "\u00C6\u0304"=>"\u01E2".freeze, "\u00E6\u0304"=>"\u01E3".freeze, "G\u030C"=>"\u01E6".freeze, "g\u030C"=>"\u01E7".freeze, "K\u030C"=>"\u01E8".freeze, "k\u030C"=>"\u01E9".freeze, "O\u0328"=>"\u01EA".freeze,
    "o\u0328"=>"\u01EB".freeze, "\u01EA\u0304"=>"\u01EC".freeze, "\u01EB\u0304"=>"\u01ED".freeze, "\u01B7\u030C"=>"\u01EE".freeze, "\u0292\u030C"=>"\u01EF".freeze, "j\u030C"=>"\u01F0".freeze, "G\u0301"=>"\u01F4".freeze, "g\u0301"=>"\u01F5".freeze,
    "N\u0300"=>"\u01F8".freeze, "n\u0300"=>"\u01F9".freeze, "\u00C5\u0301"=>"\u01FA".freeze, "\u00E5\u0301"=>"\u01FB".freeze, "\u00C6\u0301"=>"\u01FC".freeze, "\u00E6\u0301"=>"\u01FD".freeze, "\u00D8\u0301"=>"\u01FE".freeze, "\u00F8\u0301"=>"\u01FF".freeze,
    "A\u030F"=>"\u0200".freeze, "a\u030F"=>"\u0201".freeze, "A\u0311"=>"\u0202".freeze, "a\u0311"=>"\u0203".freeze, "E\u030F"=>"\u0204".freeze, "e\u030F"=>"\u0205".freeze, "E\u0311"=>"\u0206".freeze, "e\u0311"=>"\u0207".freeze,
    "I\u030F"=>"\u0208".freeze, "i\u030F"=>"\u0209".freeze, "I\u0311"=>"\u020A".freeze, "i\u0311"=>"\u020B".freeze, "O\u030F"=>"\u020C".freeze, "o\u030F"=>"\u020D".freeze, "O\u0311"=>"\u020E".freeze, "o\u0311"=>"\u020F".freeze,
    "R\u030F"=>"\u0210".freeze, "r\u030F"=>"\u0211".freeze, "R\u0311"=>"\u0212".freeze, "r\u0311"=>"\u0213".freeze, "U\u030F"=>"\u0214".freeze, "u\u030F"=>"\u0215".freeze, "U\u0311"=>"\u0216".freeze, "u\u0311"=>"\u0217".freeze,
    "S\u0326"=>"\u0218".freeze, "s\u0326"=>"\u0219".freeze, "T\u0326"=>"\u021A".freeze, "t\u0326"=>"\u021B".freeze, "H\u030C"=>"\u021E".freeze, "h\u030C"=>"\u021F".freeze, "A\u0307"=>"\u0226".freeze, "a\u0307"=>"\u0227".freeze,
    "E\u0327"=>"\u0228".freeze, "e\u0327"=>"\u0229".freeze, "\u00D6\u0304"=>"\u022A".freeze, "\u00F6\u0304"=>"\u022B".freeze, "\u00D5\u0304"=>"\u022C".freeze, "\u00F5\u0304"=>"\u022D".freeze, "O\u0307"=>"\u022E".freeze, "o\u0307"=>"\u022F".freeze,
    "\u022E\u0304"=>"\u0230".freeze, "\u022F\u0304"=>"\u0231".freeze, "Y\u0304"=>"\u0232".freeze, "y\u0304"=>"\u0233".freeze, "\u00A8\u0301"=>"\u0385".freeze, "\u0391\u0301"=>"\u0386".freeze, "\u0395\u0301"=>"\u0388".freeze, "\u0397\u0301"=>"\u0389".freeze,
    "\u0399\u0301"=>"\u038A".freeze, "\u039F\u0301"=>"\u038C".freeze, "\u03A5\u0301"=>"\u038E".freeze, "\u03A9\u0301"=>"\u038F".freeze, "\u03CA\u0301"=>"\u0390".freeze, "\u0399\u0308"=>"\u03AA".freeze, "\u03A5\u0308"=>"\u03AB".freeze, "\u03B1\u0301"=>"\u03AC".freeze,
    "\u03B5\u0301"=>"\u03AD".freeze, "\u03B7\u0301"=>"\u03AE".freeze, "\u03B9\u0301"=>"\u03AF".freeze, "\u03CB\u0301"=>"\u03B0".freeze, "\u03B9\u0308"=>"\u03CA".freeze, "\u03C5\u0308"=>"\u03CB".freeze, "\u03BF\u0301"=>"\u03CC".freeze, "\u03C5\u0301"=>"\u03CD".freeze,
    "\u03C9\u0301"=>"\u03CE".freeze, "\u03D2\u0301"=>"\u03D3".freeze, "\u03D2\u0308"=>"\u03D4".freeze, "\u0415\u0300"=>"\u0400".freeze, "\u0415\u0308"=>"\u0401".freeze, "\u0413\u0301"=>"\u0403".freeze, "\u0406\u0308"=>"\u0407".freeze, "\u041A\u0301"=>"\u040C".freeze,
    "\u0418\u0300"=>"\u040D".freeze, "\u0423\u0306"=>"\u040E".freeze, "\u0418\u0306"=>"\u0419".freeze, "\u0438\u0306"=>"\u0439".freeze, "\u0435\u0300"=>"\u0450".freeze, "\u0435\u0308"=>"\u0451".freeze, "\u0433\u0301"=>"\u0453".freeze, "\u0456\u0308"=>"\u0457".freeze,
    "\u043A\u0301"=>"\u045C".freeze, "\u0438\u0300"=>"\u045D".freeze, "\u0443\u0306"=>"\u045E".freeze, "\u0474\u030F"=>"\u0476".freeze, "\u0475\u030F"=>"\u0477".freeze, "\u0416\u0306"=>"\u04C1".freeze, "\u0436\u0306"=>"\u04C2".freeze, "\u0410\u0306"=>"\u04D0".freeze,
    "\u0430\u0306"=>"\u04D1".freeze, "\u0410\u0308"=>"\u04D2".freeze, "\u0430\u0308"=>"\u04D3".freeze, "\u0415\u0306"=>"\u04D6".freeze, "\u0435\u0306"=>"\u04D7".freeze, "\u04D8\u0308"=>"\u04DA".freeze, "\u04D9\u0308"=>"\u04DB".freeze, "\u0416\u0308"=>"\u04DC".freeze,
    "\u0436\u0308"=>"\u04DD".freeze, "\u0417\u0308"=>"\u04DE".freeze, "\u0437\u0308"=>"\u04DF".freeze, "\u0418\u0304"=>"\u04E2".freeze, "\u0438\u0304"=>"\u04E3".freeze, "\u0418\u0308"=>"\u04E4".freeze, "\u0438\u0308"=>"\u04E5".freeze, "\u041E\u0308"=>"\u04E6".freeze,
    "\u043E\u0308"=>"\u04E7".freeze, "\u04E8\u0308"=>"\u04EA".freeze, "\u04E9\u0308"=>"\u04EB".freeze, "\u042D\u0308"=>"\u04EC".freeze, "\u044D\u0308"=>"\u04ED".freeze, "\u0423\u0304"=>"\u04EE".freeze, "\u0443\u0304"=>"\u04EF".freeze, "\u0423\u0308"=>"\u04F0".freeze,
    "\u0443\u0308"=>"\u04F1".freeze, "\u0423\u030B"=>"\u04F2".freeze, "\u0443\u030B"=>"\u04F3".freeze, "\u0427\u0308"=>"\u04F4".freeze, "\u0447\u0308"=>"\u04F5".freeze, "\u042B\u0308"=>"\u04F8".freeze, "\u044B\u0308"=>"\u04F9".freeze, "\u0627\u0653"=>"\u0622".freeze,
    "\u0627\u0654"=>"\u0623".freeze, "\u0648\u0654"=>"\u0624".freeze, "\u0627\u0655"=>"\u0625".freeze, "\u064A\u0654"=>"\u0626".freeze, "\u06D5\u0654"=>"\u06C0".freeze, "\u06C1\u0654"=>"\u06C2".freeze, "\u06D2\u0654"=>"\u06D3".freeze, "\u0928\u093C"=>"\u0929".freeze,
    "\u0930\u093C"=>"\u0931".freeze, "\u0933\u093C"=>"\u0934".freeze, "\u09C7\u09BE"=>"\u09CB".freeze, "\u09C7\u09D7"=>"\u09CC".freeze, "\u0B47\u0B56"=>"\u0B48".freeze, "\u0B47\u0B3E"=>"\u0B4B".freeze, "\u0B47\u0B57"=>"\u0B4C".freeze, "\u0B92\u0BD7"=>"\u0B94".freeze,
    "\u0BC6\u0BBE"=>"\u0BCA".freeze, "\u0BC7\u0BBE"=>"\u0BCB".freeze, "\u0BC6\u0BD7"=>"\u0BCC".freeze, "\u0C46\u0C56"=>"\u0C48".freeze, "\u0CBF\u0CD5"=>"\u0CC0".freeze, "\u0CC6\u0CD5"=>"\u0CC7".freeze, "\u0CC6\u0CD6"=>"\u0CC8".freeze, "\u0CC6\u0CC2"=>"\u0CCA".freeze,
    "\u0CCA\u0CD5"=>"\u0CCB".freeze, "\u0D46\u0D3E"=>"\u0D4A".freeze, "\u0D47\u0D3E"=>"\u0D4B".freeze, "\u0D46\u0D57"=>"\u0D4C".freeze, "\u0DD9\u0DCA"=>"\u0DDA".freeze, "\u0DD9\u0DCF"=>"\u0DDC".freeze, "\u0DDC\u0DCA"=>"\u0DDD".freeze, "\u0DD9\u0DDF"=>"\u0DDE".freeze,
    "\u1025\u102E"=>"\u1026".freeze, "\u1B05\u1B35"=>"\u1B06".freeze, "\u1B07\u1B35"=>"\u1B08".freeze, "\u1B09\u1B35"=>"\u1B0A".freeze, "\u1B0B\u1B35"=>"\u1B0C".freeze, "\u1B0D\u1B35"=>"\u1B0E".freeze, "\u1B11\u1B35"=>"\u1B12".freeze, "\u1B3A\u1B35"=>"\u1B3B".freeze,
    "\u1B3C\u1B35"=>"\u1B3D".freeze, "\u1B3E\u1B35"=>"\u1B40".freeze, "\u1B3F\u1B35"=>"\u1B41".freeze, "\u1B42\u1B35"=>"\u1B43".freeze, "A\u0325"=>"\u1E00".freeze, "a\u0325"=>"\u1E01".freeze, "B\u0307"=>"\u1E02".freeze, "b\u0307"=>"\u1E03".freeze,
    "B\u0323"=>"\u1E04".freeze, "b\u0323"=>"\u1E05".freeze, "B\u0331"=>"\u1E06".freeze, "b\u0331"=>"\u1E07".freeze, "\u00C7\u0301"=>"\u1E08".freeze, "\u00E7\u0301"=>"\u1E09".freeze, "D\u0307"=>"\u1E0A".freeze, "d\u0307"=>"\u1E0B".freeze,
    "D\u0323"=>"\u1E0C".freeze, "d\u0323"=>"\u1E0D".freeze, "D\u0331"=>"\u1E0E".freeze, "d\u0331"=>"\u1E0F".freeze, "D\u0327"=>"\u1E10".freeze, "d\u0327"=>"\u1E11".freeze, "D\u032D"=>"\u1E12".freeze, "d\u032D"=>"\u1E13".freeze,
    "\u0112\u0300"=>"\u1E14".freeze, "\u0113\u0300"=>"\u1E15".freeze, "\u0112\u0301"=>"\u1E16".freeze, "\u0113\u0301"=>"\u1E17".freeze, "E\u032D"=>"\u1E18".freeze, "e\u032D"=>"\u1E19".freeze, "E\u0330"=>"\u1E1A".freeze, "e\u0330"=>"\u1E1B".freeze,
    "\u0228\u0306"=>"\u1E1C".freeze, "\u0229\u0306"=>"\u1E1D".freeze, "F\u0307"=>"\u1E1E".freeze, "f\u0307"=>"\u1E1F".freeze, "G\u0304"=>"\u1E20".freeze, "g\u0304"=>"\u1E21".freeze, "H\u0307"=>"\u1E22".freeze, "h\u0307"=>"\u1E23".freeze,
    "H\u0323"=>"\u1E24".freeze, "h\u0323"=>"\u1E25".freeze, "H\u0308"=>"\u1E26".freeze, "h\u0308"=>"\u1E27".freeze, "H\u0327"=>"\u1E28".freeze, "h\u0327"=>"\u1E29".freeze, "H\u032E"=>"\u1E2A".freeze, "h\u032E"=>"\u1E2B".freeze,
    "I\u0330"=>"\u1E2C".freeze, "i\u0330"=>"\u1E2D".freeze, "\u00CF\u0301"=>"\u1E2E".freeze, "\u00EF\u0301"=>"\u1E2F".freeze, "K\u0301"=>"\u1E30".freeze, "k\u0301"=>"\u1E31".freeze, "K\u0323"=>"\u1E32".freeze, "k\u0323"=>"\u1E33".freeze,
    "K\u0331"=>"\u1E34".freeze, "k\u0331"=>"\u1E35".freeze, "L\u0323"=>"\u1E36".freeze, "l\u0323"=>"\u1E37".freeze, "\u1E36\u0304"=>"\u1E38".freeze, "\u1E37\u0304"=>"\u1E39".freeze, "L\u0331"=>"\u1E3A".freeze, "l\u0331"=>"\u1E3B".freeze,
    "L\u032D"=>"\u1E3C".freeze, "l\u032D"=>"\u1E3D".freeze, "M\u0301"=>"\u1E3E".freeze, "m\u0301"=>"\u1E3F".freeze, "M\u0307"=>"\u1E40".freeze, "m\u0307"=>"\u1E41".freeze, "M\u0323"=>"\u1E42".freeze, "m\u0323"=>"\u1E43".freeze,
    "N\u0307"=>"\u1E44".freeze, "n\u0307"=>"\u1E45".freeze, "N\u0323"=>"\u1E46".freeze, "n\u0323"=>"\u1E47".freeze, "N\u0331"=>"\u1E48".freeze, "n\u0331"=>"\u1E49".freeze, "N\u032D"=>"\u1E4A".freeze, "n\u032D"=>"\u1E4B".freeze,
    "\u00D5\u0301"=>"\u1E4C".freeze, "\u00F5\u0301"=>"\u1E4D".freeze, "\u00D5\u0308"=>"\u1E4E".freeze, "\u00F5\u0308"=>"\u1E4F".freeze, "\u014C\u0300"=>"\u1E50".freeze, "\u014D\u0300"=>"\u1E51".freeze, "\u014C\u0301"=>"\u1E52".freeze, "\u014D\u0301"=>"\u1E53".freeze,
    "P\u0301"=>"\u1E54".freeze, "p\u0301"=>"\u1E55".freeze, "P\u0307"=>"\u1E56".freeze, "p\u0307"=>"\u1E57".freeze, "R\u0307"=>"\u1E58".freeze, "r\u0307"=>"\u1E59".freeze, "R\u0323"=>"\u1E5A".freeze, "r\u0323"=>"\u1E5B".freeze,
    "\u1E5A\u0304"=>"\u1E5C".freeze, "\u1E5B\u0304"=>"\u1E5D".freeze, "R\u0331"=>"\u1E5E".freeze, "r\u0331"=>"\u1E5F".freeze, "S\u0307"=>"\u1E60".freeze, "s\u0307"=>"\u1E61".freeze, "S\u0323"=>"\u1E62".freeze, "s\u0323"=>"\u1E63".freeze,
    "\u015A\u0307"=>"\u1E64".freeze, "\u015B\u0307"=>"\u1E65".freeze, "\u0160\u0307"=>"\u1E66".freeze, "\u0161\u0307"=>"\u1E67".freeze, "\u1E62\u0307"=>"\u1E68".freeze, "\u1E63\u0307"=>"\u1E69".freeze, "T\u0307"=>"\u1E6A".freeze, "t\u0307"=>"\u1E6B".freeze,
    "T\u0323"=>"\u1E6C".freeze, "t\u0323"=>"\u1E6D".freeze, "T\u0331"=>"\u1E6E".freeze, "t\u0331"=>"\u1E6F".freeze, "T\u032D"=>"\u1E70".freeze, "t\u032D"=>"\u1E71".freeze, "U\u0324"=>"\u1E72".freeze, "u\u0324"=>"\u1E73".freeze,
    "U\u0330"=>"\u1E74".freeze, "u\u0330"=>"\u1E75".freeze, "U\u032D"=>"\u1E76".freeze, "u\u032D"=>"\u1E77".freeze, "\u0168\u0301"=>"\u1E78".freeze, "\u0169\u0301"=>"\u1E79".freeze, "\u016A\u0308"=>"\u1E7A".freeze, "\u016B\u0308"=>"\u1E7B".freeze,
    "V\u0303"=>"\u1E7C".freeze, "v\u0303"=>"\u1E7D".freeze, "V\u0323"=>"\u1E7E".freeze, "v\u0323"=>"\u1E7F".freeze, "W\u0300"=>"\u1E80".freeze, "w\u0300"=>"\u1E81".freeze, "W\u0301"=>"\u1E82".freeze, "w\u0301"=>"\u1E83".freeze,
    "W\u0308"=>"\u1E84".freeze, "w\u0308"=>"\u1E85".freeze, "W\u0307"=>"\u1E86".freeze, "w\u0307"=>"\u1E87".freeze, "W\u0323"=>"\u1E88".freeze, "w\u0323"=>"\u1E89".freeze, "X\u0307"=>"\u1E8A".freeze, "x\u0307"=>"\u1E8B".freeze,
    "X\u0308"=>"\u1E8C".freeze, "x\u0308"=>"\u1E8D".freeze, "Y\u0307"=>"\u1E8E".freeze, "y\u0307"=>"\u1E8F".freeze, "Z\u0302"=>"\u1E90".freeze, "z\u0302"=>"\u1E91".freeze, "Z\u0323"=>"\u1E92".freeze, "z\u0323"=>"\u1E93".freeze,
    "Z\u0331"=>"\u1E94".freeze, "z\u0331"=>"\u1E95".freeze, "h\u0331"=>"\u1E96".freeze, "t\u0308"=>"\u1E97".freeze, "w\u030A"=>"\u1E98".freeze, "y\u030A"=>"\u1E99".freeze, "\u017F\u0307"=>"\u1E9B".freeze, "A\u0323"=>"\u1EA0".freeze,
    "a\u0323"=>"\u1EA1".freeze, "A\u0309"=>"\u1EA2".freeze, "a\u0309"=>"\u1EA3".freeze, "\u00C2\u0301"=>"\u1EA4".freeze, "\u00E2\u0301"=>"\u1EA5".freeze, "\u00C2\u0300"=>"\u1EA6".freeze, "\u00E2\u0300"=>"\u1EA7".freeze, "\u00C2\u0309"=>"\u1EA8".freeze,
    "\u00E2\u0309"=>"\u1EA9".freeze, "\u00C2\u0303"=>"\u1EAA".freeze, "\u00E2\u0303"=>"\u1EAB".freeze, "\u1EA0\u0302"=>"\u1EAC".freeze, "\u1EA1\u0302"=>"\u1EAD".freeze, "\u0102\u0301"=>"\u1EAE".freeze, "\u0103\u0301"=>"\u1EAF".freeze, "\u0102\u0300"=>"\u1EB0".freeze,
    "\u0103\u0300"=>"\u1EB1".freeze, "\u0102\u0309"=>"\u1EB2".freeze, "\u0103\u0309"=>"\u1EB3".freeze, "\u0102\u0303"=>"\u1EB4".freeze, "\u0103\u0303"=>"\u1EB5".freeze, "\u1EA0\u0306"=>"\u1EB6".freeze, "\u1EA1\u0306"=>"\u1EB7".freeze, "E\u0323"=>"\u1EB8".freeze,
    "e\u0323"=>"\u1EB9".freeze, "E\u0309"=>"\u1EBA".freeze, "e\u0309"=>"\u1EBB".freeze, "E\u0303"=>"\u1EBC".freeze, "e\u0303"=>"\u1EBD".freeze, "\u00CA\u0301"=>"\u1EBE".freeze, "\u00EA\u0301"=>"\u1EBF".freeze, "\u00CA\u0300"=>"\u1EC0".freeze,
    "\u00EA\u0300"=>"\u1EC1".freeze, "\u00CA\u0309"=>"\u1EC2".freeze, "\u00EA\u0309"=>"\u1EC3".freeze, "\u00CA\u0303"=>"\u1EC4".freeze, "\u00EA\u0303"=>"\u1EC5".freeze, "\u1EB8\u0302"=>"\u1EC6".freeze, "\u1EB9\u0302"=>"\u1EC7".freeze, "I\u0309"=>"\u1EC8".freeze,
    "i\u0309"=>"\u1EC9".freeze, "I\u0323"=>"\u1ECA".freeze, "i\u0323"=>"\u1ECB".freeze, "O\u0323"=>"\u1ECC".freeze, "o\u0323"=>"\u1ECD".freeze, "O\u0309"=>"\u1ECE".freeze, "o\u0309"=>"\u1ECF".freeze, "\u00D4\u0301"=>"\u1ED0".freeze,
    "\u00F4\u0301"=>"\u1ED1".freeze, "\u00D4\u0300"=>"\u1ED2".freeze, "\u00F4\u0300"=>"\u1ED3".freeze, "\u00D4\u0309"=>"\u1ED4".freeze, "\u00F4\u0309"=>"\u1ED5".freeze, "\u00D4\u0303"=>"\u1ED6".freeze, "\u00F4\u0303"=>"\u1ED7".freeze, "\u1ECC\u0302"=>"\u1ED8".freeze,
    "\u1ECD\u0302"=>"\u1ED9".freeze, "\u01A0\u0301"=>"\u1EDA".freeze, "\u01A1\u0301"=>"\u1EDB".freeze, "\u01A0\u0300"=>"\u1EDC".freeze, "\u01A1\u0300"=>"\u1EDD".freeze, "\u01A0\u0309"=>"\u1EDE".freeze, "\u01A1\u0309"=>"\u1EDF".freeze, "\u01A0\u0303"=>"\u1EE0".freeze,
    "\u01A1\u0303"=>"\u1EE1".freeze, "\u01A0\u0323"=>"\u1EE2".freeze, "\u01A1\u0323"=>"\u1EE3".freeze, "U\u0323"=>"\u1EE4".freeze, "u\u0323"=>"\u1EE5".freeze, "U\u0309"=>"\u1EE6".freeze, "u\u0309"=>"\u1EE7".freeze, "\u01AF\u0301"=>"\u1EE8".freeze,
    "\u01B0\u0301"=>"\u1EE9".freeze, "\u01AF\u0300"=>"\u1EEA".freeze, "\u01B0\u0300"=>"\u1EEB".freeze, "\u01AF\u0309"=>"\u1EEC".freeze, "\u01B0\u0309"=>"\u1EED".freeze, "\u01AF\u0303"=>"\u1EEE".freeze, "\u01B0\u0303"=>"\u1EEF".freeze, "\u01AF\u0323"=>"\u1EF0".freeze,
    "\u01B0\u0323"=>"\u1EF1".freeze, "Y\u0300"=>"\u1EF2".freeze, "y\u0300"=>"\u1EF3".freeze, "Y\u0323"=>"\u1EF4".freeze, "y\u0323"=>"\u1EF5".freeze, "Y\u0309"=>"\u1EF6".freeze, "y\u0309"=>"\u1EF7".freeze, "Y\u0303"=>"\u1EF8".freeze,
    "y\u0303"=>"\u1EF9".freeze, "\u03B1\u0313"=>"\u1F00".freeze, "\u03B1\u0314"=>"\u1F01".freeze, "\u1F00\u0300"=>"\u1F02".freeze, "\u1F01\u0300"=>"\u1F03".freeze, "\u1F00\u0301"=>"\u1F04".freeze, "\u1F01\u0301"=>"\u1F05".freeze, "\u1F00\u0342"=>"\u1F06".freeze,
    "\u1F01\u0342"=>"\u1F07".freeze, "\u0391\u0313"=>"\u1F08".freeze, "\u0391\u0314"=>"\u1F09".freeze, "\u1F08\u0300"=>"\u1F0A".freeze, "\u1F09\u0300"=>"\u1F0B".freeze, "\u1F08\u0301"=>"\u1F0C".freeze, "\u1F09\u0301"=>"\u1F0D".freeze, "\u1F08\u0342"=>"\u1F0E".freeze,
    "\u1F09\u0342"=>"\u1F0F".freeze, "\u03B5\u0313"=>"\u1F10".freeze, "\u03B5\u0314"=>"\u1F11".freeze, "\u1F10\u0300"=>"\u1F12".freeze, "\u1F11\u0300"=>"\u1F13".freeze, "\u1F10\u0301"=>"\u1F14".freeze, "\u1F11\u0301"=>"\u1F15".freeze, "\u0395\u0313"=>"\u1F18".freeze,
    "\u0395\u0314"=>"\u1F19".freeze, "\u1F18\u0300"=>"\u1F1A".freeze, "\u1F19\u0300"=>"\u1F1B".freeze, "\u1F18\u0301"=>"\u1F1C".freeze, "\u1F19\u0301"=>"\u1F1D".freeze, "\u03B7\u0313"=>"\u1F20".freeze, "\u03B7\u0314"=>"\u1F21".freeze, "\u1F20\u0300"=>"\u1F22".freeze,
    "\u1F21\u0300"=>"\u1F23".freeze, "\u1F20\u0301"=>"\u1F24".freeze, "\u1F21\u0301"=>"\u1F25".freeze, "\u1F20\u0342"=>"\u1F26".freeze, "\u1F21\u0342"=>"\u1F27".freeze, "\u0397\u0313"=>"\u1F28".freeze, "\u0397\u0314"=>"\u1F29".freeze, "\u1F28\u0300"=>"\u1F2A".freeze,
    "\u1F29\u0300"=>"\u1F2B".freeze, "\u1F28\u0301"=>"\u1F2C".freeze, "\u1F29\u0301"=>"\u1F2D".freeze, "\u1F28\u0342"=>"\u1F2E".freeze, "\u1F29\u0342"=>"\u1F2F".freeze, "\u03B9\u0313"=>"\u1F30".freeze, "\u03B9\u0314"=>"\u1F31".freeze, "\u1F30\u0300"=>"\u1F32".freeze,
    "\u1F31\u0300"=>"\u1F33".freeze, "\u1F30\u0301"=>"\u1F34".freeze, "\u1F31\u0301"=>"\u1F35".freeze, "\u1F30\u0342"=>"\u1F36".freeze, "\u1F31\u0342"=>"\u1F37".freeze, "\u0399\u0313"=>"\u1F38".freeze, "\u0399\u0314"=>"\u1F39".freeze, "\u1F38\u0300"=>"\u1F3A".freeze,
    "\u1F39\u0300"=>"\u1F3B".freeze, "\u1F38\u0301"=>"\u1F3C".freeze, "\u1F39\u0301"=>"\u1F3D".freeze, "\u1F38\u0342"=>"\u1F3E".freeze, "\u1F39\u0342"=>"\u1F3F".freeze, "\u03BF\u0313"=>"\u1F40".freeze, "\u03BF\u0314"=>"\u1F41".freeze, "\u1F40\u0300"=>"\u1F42".freeze,
    "\u1F41\u0300"=>"\u1F43".freeze, "\u1F40\u0301"=>"\u1F44".freeze, "\u1F41\u0301"=>"\u1F45".freeze, "\u039F\u0313"=>"\u1F48".freeze, "\u039F\u0314"=>"\u1F49".freeze, "\u1F48\u0300"=>"\u1F4A".freeze, "\u1F49\u0300"=>"\u1F4B".freeze, "\u1F48\u0301"=>"\u1F4C".freeze,
    "\u1F49\u0301"=>"\u1F4D".freeze, "\u03C5\u0313"=>"\u1F50".freeze, "\u03C5\u0314"=>"\u1F51".freeze, "\u1F50\u0300"=>"\u1F52".freeze, "\u1F51\u0300"=>"\u1F53".freeze, "\u1F50\u0301"=>"\u1F54".freeze, "\u1F51\u0301"=>"\u1F55".freeze, "\u1F50\u0342"=>"\u1F56".freeze,
    "\u1F51\u0342"=>"\u1F57".freeze, "\u03A5\u0314"=>"\u1F59".freeze, "\u1F59\u0300"=>"\u1F5B".freeze, "\u1F59\u0301"=>"\u1F5D".freeze, "\u1F59\u0342"=>"\u1F5F".freeze, "\u03C9\u0313"=>"\u1F60".freeze, "\u03C9\u0314"=>"\u1F61".freeze, "\u1F60\u0300"=>"\u1F62".freeze,
    "\u1F61\u0300"=>"\u1F63".freeze, "\u1F60\u0301"=>"\u1F64".freeze, "\u1F61\u0301"=>"\u1F65".freeze, "\u1F60\u0342"=>"\u1F66".freeze, "\u1F61\u0342"=>"\u1F67".freeze, "\u03A9\u0313"=>"\u1F68".freeze, "\u03A9\u0314"=>"\u1F69".freeze, "\u1F68\u0300"=>"\u1F6A".freeze,
    "\u1F69\u0300"=>"\u1F6B".freeze, "\u1F68\u0301"=>"\u1F6C".freeze, "\u1F69\u0301"=>"\u1F6D".freeze, "\u1F68\u0342"=>"\u1F6E".freeze, "\u1F69\u0342"=>"\u1F6F".freeze, "\u03B1\u0300"=>"\u1F70".freeze, "\u03B5\u0300"=>"\u1F72".freeze, "\u03B7\u0300"=>"\u1F74".freeze,
    "\u03B9\u0300"=>"\u1F76".freeze, "\u03BF\u0300"=>"\u1F78".freeze, "\u03C5\u0300"=>"\u1F7A".freeze, "\u03C9\u0300"=>"\u1F7C".freeze, "\u1F00\u0345"=>"\u1F80".freeze, "\u1F01\u0345"=>"\u1F81".freeze, "\u1F02\u0345"=>"\u1F82".freeze, "\u1F03\u0345"=>"\u1F83".freeze,
    "\u1F04\u0345"=>"\u1F84".freeze, "\u1F05\u0345"=>"\u1F85".freeze, "\u1F06\u0345"=>"\u1F86".freeze, "\u1F07\u0345"=>"\u1F87".freeze, "\u1F08\u0345"=>"\u1F88".freeze, "\u1F09\u0345"=>"\u1F89".freeze, "\u1F0A\u0345"=>"\u1F8A".freeze, "\u1F0B\u0345"=>"\u1F8B".freeze,
    "\u1F0C\u0345"=>"\u1F8C".freeze, "\u1F0D\u0345"=>"\u1F8D".freeze, "\u1F0E\u0345"=>"\u1F8E".freeze, "\u1F0F\u0345"=>"\u1F8F".freeze, "\u1F20\u0345"=>"\u1F90".freeze, "\u1F21\u0345"=>"\u1F91".freeze, "\u1F22\u0345"=>"\u1F92".freeze, "\u1F23\u0345"=>"\u1F93".freeze,
    "\u1F24\u0345"=>"\u1F94".freeze, "\u1F25\u0345"=>"\u1F95".freeze, "\u1F26\u0345"=>"\u1F96".freeze, "\u1F27\u0345"=>"\u1F97".freeze, "\u1F28\u0345"=>"\u1F98".freeze, "\u1F29\u0345"=>"\u1F99".freeze, "\u1F2A\u0345"=>"\u1F9A".freeze, "\u1F2B\u0345"=>"\u1F9B".freeze,
    "\u1F2C\u0345"=>"\u1F9C".freeze, "\u1F2D\u0345"=>"\u1F9D".freeze, "\u1F2E\u0345"=>"\u1F9E".freeze, "\u1F2F\u0345"=>"\u1F9F".freeze, "\u1F60\u0345"=>"\u1FA0".freeze, "\u1F61\u0345"=>"\u1FA1".freeze, "\u1F62\u0345"=>"\u1FA2".freeze, "\u1F63\u0345"=>"\u1FA3".freeze,
    "\u1F64\u0345"=>"\u1FA4".freeze, "\u1F65\u0345"=>"\u1FA5".freeze, "\u1F66\u0345"=>"\u1FA6".freeze, "\u1F67\u0345"=>"\u1FA7".freeze, "\u1F68\u0345"=>"\u1FA8".freeze, "\u1F69\u0345"=>"\u1FA9".freeze, "\u1F6A\u0345"=>"\u1FAA".freeze, "\u1F6B\u0345"=>"\u1FAB".freeze,
    "\u1F6C\u0345"=>"\u1FAC".freeze, "\u1F6D\u0345"=>"\u1FAD".freeze, "\u1F6E\u0345"=>"\u1FAE".freeze, "\u1F6F\u0345"=>"\u1FAF".freeze, "\u03B1\u0306"=>"\u1FB0".freeze, "\u03B1\u0304"=>"\u1FB1".freeze, "\u1F70\u0345"=>"\u1FB2".freeze, "\u03B1\u0345"=>"\u1FB3".freeze,
    "\u03AC\u0345"=>"\u1FB4".freeze, "\u03B1\u0342"=>"\u1FB6".freeze, "\u1FB6\u0345"=>"\u1FB7".freeze, "\u0391\u0306"=>"\u1FB8".freeze, "\u0391\u0304"=>"\u1FB9".freeze, "\u0391\u0300"=>"\u1FBA".freeze, "\u0391\u0345"=>"\u1FBC".freeze, "\u00A8\u0342"=>"\u1FC1".freeze,
    "\u1F74\u0345"=>"\u1FC2".freeze, "\u03B7\u0345"=>"\u1FC3".freeze, "\u03AE\u0345"=>"\u1FC4".freeze, "\u03B7\u0342"=>"\u1FC6".freeze, "\u1FC6\u0345"=>"\u1FC7".freeze, "\u0395\u0300"=>"\u1FC8".freeze, "\u0397\u0300"=>"\u1FCA".freeze, "\u0397\u0345"=>"\u1FCC".freeze,
    "\u1FBF\u0300"=>"\u1FCD".freeze, "\u1FBF\u0301"=>"\u1FCE".freeze, "\u1FBF\u0342"=>"\u1FCF".freeze, "\u03B9\u0306"=>"\u1FD0".freeze, "\u03B9\u0304"=>"\u1FD1".freeze, "\u03CA\u0300"=>"\u1FD2".freeze, "\u03B9\u0342"=>"\u1FD6".freeze, "\u03CA\u0342"=>"\u1FD7".freeze,
    "\u0399\u0306"=>"\u1FD8".freeze, "\u0399\u0304"=>"\u1FD9".freeze, "\u0399\u0300"=>"\u1FDA".freeze, "\u1FFE\u0300"=>"\u1FDD".freeze, "\u1FFE\u0301"=>"\u1FDE".freeze, "\u1FFE\u0342"=>"\u1FDF".freeze, "\u03C5\u0306"=>"\u1FE0".freeze, "\u03C5\u0304"=>"\u1FE1".freeze,
    "\u03CB\u0300"=>"\u1FE2".freeze, "\u03C1\u0313"=>"\u1FE4".freeze, "\u03C1\u0314"=>"\u1FE5".freeze, "\u03C5\u0342"=>"\u1FE6".freeze, "\u03CB\u0342"=>"\u1FE7".freeze, "\u03A5\u0306"=>"\u1FE8".freeze, "\u03A5\u0304"=>"\u1FE9".freeze, "\u03A5\u0300"=>"\u1FEA".freeze,
    "\u03A1\u0314"=>"\u1FEC".freeze, "\u00A8\u0300"=>"\u1FED".freeze, "\u1F7C\u0345"=>"\u1FF2".freeze, "\u03C9\u0345"=>"\u1FF3".freeze, "\u03CE\u0345"=>"\u1FF4".freeze, "\u03C9\u0342"=>"\u1FF6".freeze, "\u1FF6\u0345"=>"\u1FF7".freeze, "\u039F\u0300"=>"\u1FF8".freeze,
    "\u03A9\u0300"=>"\u1FFA".freeze, "\u03A9\u0345"=>"\u1FFC".freeze, "\u2190\u0338"=>"\u219A".freeze, "\u2192\u0338"=>"\u219B".freeze, "\u2194\u0338"=>"\u21AE".freeze, "\u21D0\u0338"=>"\u21CD".freeze, "\u21D4\u0338"=>"\u21CE".freeze, "\u21D2\u0338"=>"\u21CF".freeze,
    "\u2203\u0338"=>"\u2204".freeze, "\u2208\u0338"=>"\u2209".freeze, "\u220B\u0338"=>"\u220C".freeze, "\u2223\u0338"=>"\u2224".freeze, "\u2225\u0338"=>"\u2226".freeze, "\u223C\u0338"=>"\u2241".freeze, "\u2243\u0338"=>"\u2244".freeze, "\u2245\u0338"=>"\u2247".freeze,
    "\u2248\u0338"=>"\u2249".freeze, "=\u0338"=>"\u2260".freeze, "\u2261\u0338"=>"\u2262".freeze, "\u224D\u0338"=>"\u226D".freeze, "<\u0338"=>"\u226E".freeze, ">\u0338"=>"\u226F".freeze, "\u2264\u0338"=>"\u2270".freeze, "\u2265\u0338"=>"\u2271".freeze,
    "\u2272\u0338"=>"\u2274".freeze, "\u2273\u0338"=>"\u2275".freeze, "\u2276\u0338"=>"\u2278".freeze, "\u2277\u0338"=>"\u2279".freeze, "\u227A\u0338"=>"\u2280".freeze, "\u227B\u0338"=>"\u2281".freeze, "\u2282\u0338"=>"\u2284".freeze, "\u2283\u0338"=>"\u2285".freeze,
    "\u2286\u0338"=>"\u2288".freeze, "\u2287\u0338"=>"\u2289".freeze, "\u22A2\u0338"=>"\u22AC".freeze, "\u22A8\u0338"=>"\u22AD".freeze, "\u22A9\u0338"=>"\u22AE".freeze, "\u22AB\u0338"=>"\u22AF".freeze, "\u227C\u0338"=>"\u22E0".freeze, "\u227D\u0338"=>"\u22E1".freeze,
    "\u2291\u0338"=>"\u22E2".freeze, "\u2292\u0338"=>"\u22E3".freeze, "\u22B2\u0338"=>"\u22EA".freeze, "\u22B3\u0338"=>"\u22EB".freeze, "\u22B4\u0338"=>"\u22EC".freeze, "\u22B5\u0338"=>"\u22ED".freeze, "\u304B\u3099"=>"\u304C".freeze, "\u304D\u3099"=>"\u304E".freeze,
    "\u304F\u3099"=>"\u3050".freeze, "\u3051\u3099"=>"\u3052".freeze, "\u3053\u3099"=>"\u3054".freeze, "\u3055\u3099"=>"\u3056".freeze, "\u3057\u3099"=>"\u3058".freeze, "\u3059\u3099"=>"\u305A".freeze, "\u305B\u3099"=>"\u305C".freeze, "\u305D\u3099"=>"\u305E".freeze,
    "\u305F\u3099"=>"\u3060".freeze, "\u3061\u3099"=>"\u3062".freeze, "\u3064\u3099"=>"\u3065".freeze, "\u3066\u3099"=>"\u3067".freeze, "\u3068\u3099"=>"\u3069".freeze, "\u306F\u3099"=>"\u3070".freeze, "\u306F\u309A"=>"\u3071".freeze, "\u3072\u3099"=>"\u3073".freeze,
    "\u3072\u309A"=>"\u3074".freeze, "\u3075\u3099"=>"\u3076".freeze, "\u3075\u309A"=>"\u3077".freeze, "\u3078\u3099"=>"\u3079".freeze, "\u3078\u309A"=>"\u307A".freeze, "\u307B\u3099"=>"\u307C".freeze, "\u307B\u309A"=>"\u307D".freeze, "\u3046\u3099"=>"\u3094".freeze,
    "\u309D\u3099"=>"\u309E".freeze, "\u30AB\u3099"=>"\u30AC".freeze, "\u30AD\u3099"=>"\u30AE".freeze, "\u30AF\u3099"=>"\u30B0".freeze, "\u30B1\u3099"=>"\u30B2".freeze, "\u30B3\u3099"=>"\u30B4".freeze, "\u30B5\u3099"=>"\u30B6".freeze, "\u30B7\u3099"=>"\u30B8".freeze,
    "\u30B9\u3099"=>"\u30BA".freeze, "\u30BB\u3099"=>"\u30BC".freeze, "\u30BD\u3099"=>"\u30BE".freeze, "\u30BF\u3099"=>"\u30C0".freeze, "\u30C1\u3099"=>"\u30C2".freeze, "\u30C4\u3099"=>"\u30C5".freeze, "\u30C6\u3099"=>"\u30C7".freeze, "\u30C8\u3099"=>"\u30C9".freeze,
    "\u30CF\u3099"=>"\u30D0".freeze, "\u30CF\u309A"=>"\u30D1".freeze, "\u30D2\u3099"=>"\u30D3".freeze, "\u30D2\u309A"=>"\u30D4".freeze, "\u30D5\u3099"=>"\u30D6".freeze, "\u30D5\u309A"=>"\u30D7".freeze, "\u30D8\u3099"=>"\u30D9".freeze, "\u30D8\u309A"=>"\u30DA".freeze,
    "\u30DB\u3099"=>"\u30DC".freeze, "\u30DB\u309A"=>"\u30DD".freeze, "\u30A6\u3099"=>"\u30F4".freeze, "\u30EF\u3099"=>"\u30F7".freeze, "\u30F0\u3099"=>"\u30F8".freeze, "\u30F1\u3099"=>"\u30F9".freeze, "\u30F2\u3099"=>"\u30FA".freeze, "\u30FD\u3099"=>"\u30FE".freeze,
    "\u{11099}\u{110BA}"=>"\u{1109A}".freeze, "\u{1109B}\u{110BA}"=>"\u{1109C}".freeze, "\u{110A5}\u{110BA}"=>"\u{110AB}".freeze, "\u{11131}\u{11127}"=>"\u{1112E}".freeze, "\u{11132}\u{11127}"=>"\u{1112F}".freeze, "\u{11347}\u{1133E}"=>"\u{1134B}".freeze, "\u{11347}\u{11357}"=>"\u{1134C}".freeze, "\u{114B9}\u{114BA}"=>"\u{114BB}".freeze,
    "\u{114B9}\u{114B0}"=>"\u{114BC}".freeze, "\u{114B9}\u{114BD}"=>"\u{114BE}".freeze, "\u{115B8}\u{115AF}"=>"\u{115BA}".freeze, "\u{115B9}\u{115AF}"=>"\u{115BB}".freeze,
  }.freeze
end
lib64/ruby/2.2.0/unicode_normalize/normalize.rb000064400000012661150402106360015142 0ustar00# coding: utf-8

# Copyright Ayumu Nojima (野島 歩) and Martin J. Dürst (duerst@it.aoyama.ac.jp)

require 'unicode_normalize/tables.rb'


module UnicodeNormalize
  ## Constant for max hash capacity to avoid DoS attack
  MAX_HASH_LENGTH = 18000 # enough for all test cases, otherwise tests get slow

  ## Regular Expressions and Hash Constants
  REGEXP_D = Regexp.compile(REGEXP_D_STRING, Regexp::EXTENDED)
  REGEXP_C = Regexp.compile(REGEXP_C_STRING, Regexp::EXTENDED)
  REGEXP_K = Regexp.compile(REGEXP_K_STRING, Regexp::EXTENDED)
  NF_HASH_D = Hash.new do |hash, key|
                         hash.shift if hash.length>MAX_HASH_LENGTH # prevent DoS attack
                         hash[key] = nfd_one(key)
                       end
  NF_HASH_C = Hash.new do |hash, key|
                         hash.shift if hash.length>MAX_HASH_LENGTH # prevent DoS attack
                         hash[key] = nfc_one(key)
                       end
  NF_HASH_K = Hash.new do |hash, key|
                         hash.shift if hash.length>MAX_HASH_LENGTH # prevent DoS attack
                         hash[key] = nfkd_one(key)
                       end

  ## Constants For Hangul
  # for details such as the meaning of the identifiers below, please see
  # http://www.unicode.org/versions/Unicode7.0.0/ch03.pdf, pp. 144/145
  SBASE = 0xAC00
  LBASE = 0x1100
  VBASE = 0x1161
  TBASE = 0x11A7
  LCOUNT = 19
  VCOUNT = 21
  TCOUNT = 28
  NCOUNT = VCOUNT * TCOUNT
  SCOUNT = LCOUNT * NCOUNT

  # Unicode-based encodings (except UTF-8)
  UNICODE_ENCODINGS = [Encoding::UTF_16BE, Encoding::UTF_16LE, Encoding::UTF_32BE, Encoding::UTF_32LE,
                       Encoding::GB18030, Encoding::UCS_2BE, Encoding::UCS_4BE]

  ## Hangul Algorithm
  def self.hangul_decomp_one(target)
    syllable_index = target.ord - SBASE
    return target if syllable_index < 0 || syllable_index >= SCOUNT
    l = LBASE + syllable_index / NCOUNT
    v = VBASE + (syllable_index % NCOUNT) / TCOUNT
    t = TBASE + syllable_index % TCOUNT
    (t==TBASE ? [l, v] : [l, v, t]).pack('U*') + target[1..-1]
  end

  def self.hangul_comp_one(string)
    length = string.length
    if length>1 and 0 <= (lead =string[0].ord-LBASE) and lead  < LCOUNT and
                    0 <= (vowel=string[1].ord-VBASE) and vowel < VCOUNT
      lead_vowel = SBASE + (lead * VCOUNT + vowel) * TCOUNT
      if length>2 and 0 <= (trail=string[2].ord-TBASE) and trail < TCOUNT
        (lead_vowel + trail).chr(Encoding::UTF_8) + string[3..-1]
      else
        lead_vowel.chr(Encoding::UTF_8) + string[2..-1]
      end
    else
      string
    end
  end

  ## Canonical Ordering
  def self.canonical_ordering_one(string)
    sorting = string.each_char.collect { |c| [c, CLASS_TABLE[c]] }
    (sorting.length-2).downto(0) do |i| # almost, but not exactly bubble sort
      (0..i).each do |j|
        later_class = sorting[j+1].last
        if 0<later_class and later_class<sorting[j].last
          sorting[j], sorting[j+1] = sorting[j+1], sorting[j]
        end
      end
    end
    return sorting.collect(&:first).join('')
  end

  ## Normalization Forms for Patterns (not whole Strings)
  def self.nfd_one(string)
    string = string.chars.map! {|c| DECOMPOSITION_TABLE[c] || c}.join('')
    canonical_ordering_one(hangul_decomp_one(string))
  end

  def self.nfkd_one(string)
    string.chars.map! {|c| KOMPATIBLE_TABLE[c] || c}.join('')
  end

  def self.nfc_one(string)
    nfd_string = nfd_one string
    start = nfd_string[0]
    last_class = CLASS_TABLE[start]-1
    accents = ''
    nfd_string[1..-1].each_char do |accent|
      accent_class = CLASS_TABLE[accent]
      if last_class<accent_class and composite = COMPOSITION_TABLE[start+accent]
        start = composite
      else
        accents << accent
        last_class = accent_class
      end
    end
    hangul_comp_one(start+accents)
  end

  def self.normalize(string, form = :nfc)
    encoding = string.encoding
    case encoding
    when Encoding::UTF_8
      case form
      when :nfc then
        string.gsub REGEXP_C, NF_HASH_C
      when :nfd then
        string.gsub REGEXP_D, NF_HASH_D
      when :nfkc then
        string.gsub(REGEXP_K, NF_HASH_K).gsub REGEXP_C, NF_HASH_C
      when :nfkd then
        string.gsub(REGEXP_K, NF_HASH_K).gsub REGEXP_D, NF_HASH_D
      else
        raise ArgumentError, "Invalid normalization form #{form}."
      end
    when Encoding::US_ASCII
      string
    when *UNICODE_ENCODINGS
      normalize(string.encode(Encoding::UTF_8), form).encode(encoding)
    else
      raise Encoding::CompatibilityError, "Unicode Normalization not appropriate for #{encoding}"
    end
  end

  def self.normalized?(string, form = :nfc)
    encoding = string.encoding
    case encoding
    when Encoding::UTF_8
      case form
      when :nfc then
        string.scan REGEXP_C do |match|
          return false  if NF_HASH_C[match] != match
        end
        true
      when :nfd then
        string.scan REGEXP_D do |match|
          return false  if NF_HASH_D[match] != match
        end
        true
      when :nfkc then
        normalized?(string, :nfc) and string !~ REGEXP_K
      when :nfkd then
        normalized?(string, :nfd) and string !~ REGEXP_K
      else
        raise ArgumentError, "Invalid normalization form #{form}."
      end
    when Encoding::US_ASCII
      true
    when *UNICODE_ENCODINGS
      normalized? string.encode(Encoding::UTF_8), form
    else
      raise Encoding::CompatibilityError, "Unicode Normalization not appropriate for #{encoding}"
    end
  end

end # module
lib64/ruby/2.2.0/getoptlong.rb000064400000036606150402106360011623 0ustar00#
# GetoptLong for Ruby
#
# Copyright (C) 1998, 1999, 2000  Motoyuki Kasahara.
#
# You may redistribute and/or modify this library under the same license
# terms as Ruby.
#
# See GetoptLong for documentation.
#
# Additional documents and the latest version of `getoptlong.rb' can be
# found at http://www.sra.co.jp/people/m-kasahr/ruby/getoptlong/

# The GetoptLong class allows you to parse command line options similarly to
# the GNU getopt_long() C library call. Note, however, that GetoptLong is a
# pure Ruby implementation.
#
# GetoptLong allows for POSIX-style options like <tt>--file</tt> as well
# as single letter options like <tt>-f</tt>
#
# The empty option <tt>--</tt> (two minus symbols) is used to end option
# processing. This can be particularly important if options have optional
# arguments.
#
# Here is a simple example of usage:
#
#     require 'getoptlong'
#
#     opts = GetoptLong.new(
#       [ '--help', '-h', GetoptLong::NO_ARGUMENT ],
#       [ '--repeat', '-n', GetoptLong::REQUIRED_ARGUMENT ],
#       [ '--name', GetoptLong::OPTIONAL_ARGUMENT ]
#     )
#
#     dir = nil
#     name = nil
#     repetitions = 1
#     opts.each do |opt, arg|
#       case opt
#         when '--help'
#           puts <<-EOF
#     hello [OPTION] ... DIR
#
#     -h, --help:
#        show help
#
#     --repeat x, -n x:
#        repeat x times
#
#     --name [name]:
#        greet user by name, if name not supplied default is John
#
#     DIR: The directory in which to issue the greeting.
#           EOF
#         when '--repeat'
#           repetitions = arg.to_i
#         when '--name'
#           if arg == ''
#             name = 'John'
#           else
#             name = arg
#           end
#       end
#     end
#
#     if ARGV.length != 1
#       puts "Missing dir argument (try --help)"
#       exit 0
#     end
#
#     dir = ARGV.shift
#
#     Dir.chdir(dir)
#     for i in (1..repetitions)
#       print "Hello"
#       if name
#         print ", #{name}"
#       end
#       puts
#     end
#
# Example command line:
#
#     hello -n 6 --name -- /tmp
#
class GetoptLong
  #
  # Orderings.
  #
  ORDERINGS = [REQUIRE_ORDER = 0, PERMUTE = 1, RETURN_IN_ORDER = 2]

  #
  # Argument flags.
  #
  ARGUMENT_FLAGS = [NO_ARGUMENT = 0, REQUIRED_ARGUMENT = 1,
    OPTIONAL_ARGUMENT = 2]

  #
  # Status codes.
  #
  STATUS_YET, STATUS_STARTED, STATUS_TERMINATED = 0, 1, 2

  #
  # Error types.
  #
  class Error  < StandardError; end
  class AmbiguousOption   < Error; end
  class NeedlessArgument < Error; end
  class MissingArgument  < Error; end
  class InvalidOption    < Error; end

  #
  # Set up option processing.
  #
  # The options to support are passed to new() as an array of arrays.
  # Each sub-array contains any number of String option names which carry
  # the same meaning, and one of the following flags:
  #
  # GetoptLong::NO_ARGUMENT :: Option does not take an argument.
  #
  # GetoptLong::REQUIRED_ARGUMENT :: Option always takes an argument.
  #
  # GetoptLong::OPTIONAL_ARGUMENT :: Option may or may not take an argument.
  #
  # The first option name is considered to be the preferred (canonical) name.
  # Other than that, the elements of each sub-array can be in any order.
  #
  def initialize(*arguments)
    #
    # Current ordering.
    #
    if ENV.include?('POSIXLY_CORRECT')
      @ordering = REQUIRE_ORDER
    else
      @ordering = PERMUTE
    end

    #
    # Hash table of option names.
    # Keys of the table are option names, and their values are canonical
    # names of the options.
    #
    @canonical_names = Hash.new

    #
    # Hash table of argument flags.
    # Keys of the table are option names, and their values are argument
    # flags of the options.
    #
    @argument_flags = Hash.new

    #
    # Whether error messages are output to $stderr.
    #
    @quiet = FALSE

    #
    # Status code.
    #
    @status = STATUS_YET

    #
    # Error code.
    #
    @error = nil

    #
    # Error message.
    #
    @error_message = nil

    #
    # Rest of catenated short options.
    #
    @rest_singles = ''

    #
    # List of non-option-arguments.
    # Append them to ARGV when option processing is terminated.
    #
    @non_option_arguments = Array.new

    if 0 < arguments.length
      set_options(*arguments)
    end
  end

  #
  # Set the handling of the ordering of options and arguments.
  # A RuntimeError is raised if option processing has already started.
  #
  # The supplied value must be a member of GetoptLong::ORDERINGS. It alters
  # the processing of options as follows:
  #
  # <b>REQUIRE_ORDER</b> :
  #
  # Options are required to occur before non-options.
  #
  # Processing of options ends as soon as a word is encountered that has not
  # been preceded by an appropriate option flag.
  #
  # For example, if -a and -b are options which do not take arguments,
  # parsing command line arguments of '-a one -b two' would result in
  # 'one', '-b', 'two' being left in ARGV, and only ('-a', '') being
  # processed as an option/arg pair.
  #
  # This is the default ordering, if the environment variable
  # POSIXLY_CORRECT is set. (This is for compatibility with GNU getopt_long.)
  #
  # <b>PERMUTE</b> :
  #
  # Options can occur anywhere in the command line parsed. This is the
  # default behavior.
  #
  # Every sequence of words which can be interpreted as an option (with or
  # without argument) is treated as an option; non-option words are skipped.
  #
  # For example, if -a does not require an argument and -b optionally takes
  # an argument, parsing '-a one -b two three' would result in ('-a','') and
  # ('-b', 'two') being processed as option/arg pairs, and 'one','three'
  # being left in ARGV.
  #
  # If the ordering is set to PERMUTE but the environment variable
  # POSIXLY_CORRECT is set, REQUIRE_ORDER is used instead. This is for
  # compatibility with GNU getopt_long.
  #
  # <b>RETURN_IN_ORDER</b> :
  #
  # All words on the command line are processed as options. Words not
  # preceded by a short or long option flag are passed as arguments
  # with an option of '' (empty string).
  #
  # For example, if -a requires an argument but -b does not, a command line
  # of '-a one -b two three' would result in option/arg pairs of ('-a', 'one')
  # ('-b', ''), ('', 'two'), ('', 'three') being processed.
  #
  def ordering=(ordering)
    #
    # The method is failed if option processing has already started.
    #
    if @status != STATUS_YET
      set_error(ArgumentError, "argument error")
      raise RuntimeError,
        "invoke ordering=, but option processing has already started"
    end

    #
    # Check ordering.
    #
    if !ORDERINGS.include?(ordering)
      raise ArgumentError, "invalid ordering `#{ordering}'"
    end
    if ordering == PERMUTE && ENV.include?('POSIXLY_CORRECT')
      @ordering = REQUIRE_ORDER
    else
      @ordering = ordering
    end
  end

  #
  # Return ordering.
  #
  attr_reader :ordering

  #
  # Set options. Takes the same argument as GetoptLong.new.
  #
  # Raises a RuntimeError if option processing has already started.
  #
  def set_options(*arguments)
    #
    # The method is failed if option processing has already started.
    #
    if @status != STATUS_YET
      raise RuntimeError,
        "invoke set_options, but option processing has already started"
    end

    #
    # Clear tables of option names and argument flags.
    #
    @canonical_names.clear
    @argument_flags.clear

    arguments.each do |arg|
      if !arg.is_a?(Array)
       raise ArgumentError, "the option list contains non-Array argument"
      end

      #
      # Find an argument flag and it set to `argument_flag'.
      #
      argument_flag = nil
      arg.each do |i|
        if ARGUMENT_FLAGS.include?(i)
          if argument_flag != nil
            raise ArgumentError, "too many argument-flags"
          end
          argument_flag = i
        end
      end

      raise ArgumentError, "no argument-flag" if argument_flag == nil

      canonical_name = nil
      arg.each do |i|
        #
        # Check an option name.
        #
        next if i == argument_flag
        begin
          if !i.is_a?(String) || i !~ /^-([^-]|-.+)$/
            raise ArgumentError, "an invalid option `#{i}'"
          end
          if (@canonical_names.include?(i))
            raise ArgumentError, "option redefined `#{i}'"
          end
        rescue
          @canonical_names.clear
          @argument_flags.clear
          raise
        end

        #
        # Register the option (`i') to the `@canonical_names' and
        # `@canonical_names' Hashes.
        #
        if canonical_name == nil
          canonical_name = i
        end
        @canonical_names[i] = canonical_name
        @argument_flags[i] = argument_flag
      end
      raise ArgumentError, "no option name" if canonical_name == nil
    end
    return self
  end

  #
  # Set/Unset `quiet' mode.
  #
  attr_writer :quiet

  #
  # Return the flag of `quiet' mode.
  #
  attr_reader :quiet

  #
  # `quiet?' is an alias of `quiet'.
  #
  alias quiet? quiet

  #
  # Explicitly terminate option processing.
  #
  def terminate
    return nil if @status == STATUS_TERMINATED
    raise RuntimeError, "an error has occurred" if @error != nil

    @status = STATUS_TERMINATED
    @non_option_arguments.reverse_each do |argument|
      ARGV.unshift(argument)
    end

    @canonical_names = nil
    @argument_flags = nil
    @rest_singles = nil
    @non_option_arguments = nil

    return self
  end

  #
  # Returns true if option processing has terminated, false otherwise.
  #
  def terminated?
    return @status == STATUS_TERMINATED
  end

  #
  # Set an error (a protected method).
  #
  def set_error(type, message)
    $stderr.print("#{$0}: #{message}\n") if !@quiet

    @error = type
    @error_message = message
    @canonical_names = nil
    @argument_flags = nil
    @rest_singles = nil
    @non_option_arguments = nil

    raise type, message
  end
  protected :set_error

  #
  # Examine whether an option processing is failed.
  #
  attr_reader :error

  #
  # `error?' is an alias of `error'.
  #
  alias error? error

  # Return the appropriate error message in POSIX-defined format.
  # If no error has occurred, returns nil.
  #
  def error_message
    return @error_message
  end

  #
  # Get next option name and its argument, as an Array of two elements.
  #
  # The option name is always converted to the first (preferred)
  # name given in the original options to GetoptLong.new.
  #
  # Example: ['--option', 'value']
  #
  # Returns nil if the processing is complete (as determined by
  # STATUS_TERMINATED).
  #
  def get
    option_name, option_argument = nil, ''

    #
    # Check status.
    #
    return nil if @error != nil
    case @status
    when STATUS_YET
      @status = STATUS_STARTED
    when STATUS_TERMINATED
      return nil
    end

    #
    # Get next option argument.
    #
    if 0 < @rest_singles.length
      argument = '-' + @rest_singles
    elsif (ARGV.length == 0)
      terminate
      return nil
    elsif @ordering == PERMUTE
      while 0 < ARGV.length && ARGV[0] !~ /^-./
        @non_option_arguments.push(ARGV.shift)
      end
      if ARGV.length == 0
        terminate
        return nil
      end
      argument = ARGV.shift
    elsif @ordering == REQUIRE_ORDER
      if (ARGV[0] !~ /^-./)
        terminate
        return nil
      end
      argument = ARGV.shift
    else
      argument = ARGV.shift
    end

    #
    # Check the special argument `--'.
    # `--' indicates the end of the option list.
    #
    if argument == '--' && @rest_singles.length == 0
      terminate
      return nil
    end

    #
    # Check for long and short options.
    #
    if argument =~ /^(--[^=]+)/ && @rest_singles.length == 0
      #
      # This is a long style option, which start with `--'.
      #
      pattern = $1
      if @canonical_names.include?(pattern)
        option_name = pattern
      else
        #
        # The option `option_name' is not registered in `@canonical_names'.
        # It may be an abbreviated.
        #
        matches = []
        @canonical_names.each_key do |key|
          if key.index(pattern) == 0
            option_name = key
            matches << key
          end
        end
        if 2 <= matches.length
          set_error(AmbiguousOption, "option `#{argument}' is ambiguous between #{matches.join(', ')}")
        elsif matches.length == 0
          set_error(InvalidOption, "unrecognized option `#{argument}'")
        end
      end

      #
      # Check an argument to the option.
      #
      if @argument_flags[option_name] == REQUIRED_ARGUMENT
        if argument =~ /=(.*)$/
          option_argument = $1
        elsif 0 < ARGV.length
          option_argument = ARGV.shift
        else
          set_error(MissingArgument,
                    "option `#{argument}' requires an argument")
        end
      elsif @argument_flags[option_name] == OPTIONAL_ARGUMENT
        if argument =~ /=(.*)$/
          option_argument = $1
        elsif 0 < ARGV.length && ARGV[0] !~ /^-./
          option_argument = ARGV.shift
        else
          option_argument = ''
        end
      elsif argument =~ /=(.*)$/
        set_error(NeedlessArgument,
                  "option `#{option_name}' doesn't allow an argument")
      end

    elsif argument =~ /^(-(.))(.*)/
      #
      # This is a short style option, which start with `-' (not `--').
      # Short options may be catenated (e.g. `-l -g' is equivalent to
      # `-lg').
      #
      option_name, ch, @rest_singles = $1, $2, $3

      if @canonical_names.include?(option_name)
        #
        # The option `option_name' is found in `@canonical_names'.
        # Check its argument.
        #
        if @argument_flags[option_name] == REQUIRED_ARGUMENT
          if 0 < @rest_singles.length
            option_argument = @rest_singles
            @rest_singles = ''
          elsif 0 < ARGV.length
            option_argument = ARGV.shift
          else
            # 1003.2 specifies the format of this message.
            set_error(MissingArgument, "option requires an argument -- #{ch}")
          end
        elsif @argument_flags[option_name] == OPTIONAL_ARGUMENT
          if 0 < @rest_singles.length
            option_argument = @rest_singles
            @rest_singles = ''
          elsif 0 < ARGV.length && ARGV[0] !~ /^-./
            option_argument = ARGV.shift
          else
            option_argument = ''
          end
        end
      else
        #
        # This is an invalid option.
        # 1003.2 specifies the format of this message.
        #
        if ENV.include?('POSIXLY_CORRECT')
          set_error(InvalidOption, "invalid option -- #{ch}")
        else
          set_error(InvalidOption, "invalid option -- #{ch}")
        end
      end
    else
      #
      # This is a non-option argument.
      # Only RETURN_IN_ORDER falled into here.
      #
      return '', argument
    end

    return @canonical_names[option_name], option_argument
  end

  #
  # `get_option' is an alias of `get'.
  #
  alias get_option get

  # Iterator version of `get'.
  #
  # The block is called repeatedly with two arguments:
  # The first is the option name.
  # The second is the argument which followed it (if any).
  # Example: ('--opt', 'value')
  #
  # The option name is always converted to the first (preferred)
  # name given in the original options to GetoptLong.new.
  #
  def each
    loop do
      option_name, option_argument = get_option
      break if option_name == nil
      yield option_name, option_argument
    end
  end

  #
  # `each_option' is an alias of `each'.
  #
  alias each_option each
end
lib64/ruby/2.2.0/singleton.rb000064400000010022150402106360011423 0ustar00require 'thread'

# The Singleton module implements the Singleton pattern.
#
# == Usage
#
# To use Singleton, include the module in your class.
#
#    class Klass
#       include Singleton
#       # ...
#    end
#
# This ensures that only one instance of Klass can be created.
#
#      a,b  = Klass.instance, Klass.instance
#
#      a == b
#      # => true
#
#      Klass.new
#      # => NoMethodError - new is private ...
#
# The instance is created at upon the first call of Klass.instance().
#
#      class OtherKlass
#        include Singleton
#        # ...
#      end
#
#      ObjectSpace.each_object(OtherKlass){}
#      # => 0
#
#      OtherKlass.instance
#      ObjectSpace.each_object(OtherKlass){}
#      # => 1
#
#
# This behavior is preserved under inheritance and cloning.
#
# == Implementation
#
# This above is achieved by:
#
# *  Making Klass.new and Klass.allocate private.
#
# *  Overriding Klass.inherited(sub_klass) and Klass.clone() to ensure that the
#    Singleton properties are kept when inherited and cloned.
#
# *  Providing the Klass.instance() method that returns the same object each
#    time it is called.
#
# *  Overriding Klass._load(str) to call Klass.instance().
#
# *  Overriding Klass#clone and Klass#dup to raise TypeErrors to prevent
#    cloning or duping.
#
# == Singleton and Marshal
#
# By default Singleton's #_dump(depth) returns the empty string. Marshalling by
# default will strip state information, e.g. instance variables and taint
# state, from the instance. Classes using Singleton can provide custom
# _load(str) and _dump(depth) methods to retain some of the previous state of
# the instance.
#
#    require 'singleton'
#
#    class Example
#      include Singleton
#      attr_accessor :keep, :strip
#      def _dump(depth)
#        # this strips the @strip information from the instance
#        Marshal.dump(@keep, depth)
#      end
#
#      def self._load(str)
#        instance.keep = Marshal.load(str)
#        instance
#      end
#    end
#
#    a = Example.instance
#    a.keep = "keep this"
#    a.strip = "get rid of this"
#    a.taint
#
#    stored_state = Marshal.dump(a)
#
#    a.keep = nil
#    a.strip = nil
#    b = Marshal.load(stored_state)
#    p a == b  #  => true
#    p a.keep  #  => "keep this"
#    p a.strip #  => nil
#
module Singleton
  # Raises a TypeError to prevent cloning.
  def clone
    raise TypeError, "can't clone instance of singleton #{self.class}"
  end

  # Raises a TypeError to prevent duping.
  def dup
    raise TypeError, "can't dup instance of singleton #{self.class}"
  end

  # By default, do not retain any state when marshalling.
  def _dump(depth = -1)
    ''
  end

  module SingletonClassMethods # :nodoc:

    def clone # :nodoc:
      Singleton.__init__(super)
    end

    # By default calls instance(). Override to retain singleton state.
    def _load(str)
      instance
    end

    private

    def inherited(sub_klass)
      super
      Singleton.__init__(sub_klass)
    end
  end

  class << Singleton # :nodoc:
    def __init__(klass) # :nodoc:
      klass.instance_eval {
        @singleton__instance__ = nil
        @singleton__mutex__ = Mutex.new
      }
      def klass.instance # :nodoc:
        return @singleton__instance__ if @singleton__instance__
        @singleton__mutex__.synchronize {
          return @singleton__instance__ if @singleton__instance__
          @singleton__instance__ = new()
        }
        @singleton__instance__
      end
      klass
    end

    private

    # extending an object with Singleton is a bad idea
    undef_method :extend_object

    def append_features(mod)
      #  help out people counting on transitive mixins
      unless mod.instance_of?(Class)
        raise TypeError, "Inclusion of the OO-Singleton module in module #{mod}"
      end
      super
    end

    def included(klass)
      super
      klass.private_class_method :new, :allocate
      klass.extend SingletonClassMethods
      Singleton.__init__(klass)
    end
  end

  ##
  # :singleton-method: _load
  #  By default calls instance(). Override to retain singleton state.
end
lib64/ruby/2.2.0/delegate.rb000064400000025322150402106360011204 0ustar00# = delegate -- Support for the Delegation Pattern
#
# Documentation by James Edward Gray II and Gavin Sinclair

##
# This library provides three different ways to delegate method calls to an
# object.  The easiest to use is SimpleDelegator.  Pass an object to the
# constructor and all methods supported by the object will be delegated.  This
# object can be changed later.
#
# Going a step further, the top level DelegateClass method allows you to easily
# setup delegation through class inheritance.  This is considerably more
# flexible and thus probably the most common use for this library.
#
# Finally, if you need full control over the delegation scheme, you can inherit
# from the abstract class Delegator and customize as needed.  (If you find
# yourself needing this control, have a look at Forwardable which is also in
# the standard library.  It may suit your needs better.)
#
# SimpleDelegator's implementation serves as a nice example if the use of
# Delegator:
#
#   class SimpleDelegator < Delegator
#     def initialize(obj)
#       super                  # pass obj to Delegator constructor, required
#       @delegate_sd_obj = obj # store obj for future use
#     end
#
#     def __getobj__
#       @delegate_sd_obj # return object we are delegating to, required
#     end
#
#     def __setobj__(obj)
#       @delegate_sd_obj = obj # change delegation object,
#                              # a feature we're providing
#     end
#   end
#
# == Notes
#
# Be advised, RDoc will not detect delegated methods.
#
class Delegator < BasicObject
  kernel = ::Kernel.dup
  kernel.class_eval do
    alias __raise__ raise
    [:to_s,:inspect,:=~,:!~,:===,:<=>,:eql?,:hash].each do |m|
      undef_method m
    end
    private_instance_methods.each do |m|
      if /\Ablock_given\?\z|iterator\?\z|\A__.*__\z/ =~ m
        next
      end
      undef_method m
    end
  end
  include kernel

  # :stopdoc:
  def self.const_missing(n)
    ::Object.const_get(n)
  end
  # :startdoc:

  ##
  # :method: raise
  # Use __raise__ if your Delegator does not have a object to delegate the
  # raise method call.
  #

  #
  # Pass in the _obj_ to delegate method calls to.  All methods supported by
  # _obj_ will be delegated to.
  #
  def initialize(obj)
    __setobj__(obj)
  end

  #
  # Handles the magic of delegation through \_\_getobj\_\_.
  #
  def method_missing(m, *args, &block)
    r = true
    target = self.__getobj__ {r = false}
    begin
      if r && target.respond_to?(m)
        target.__send__(m, *args, &block)
      elsif ::Kernel.respond_to?(m, true)
        ::Kernel.instance_method(m).bind(self).(*args, &block)
      else
        super(m, *args, &block)
      end
    ensure
      $@.delete_if {|t| %r"\A#{Regexp.quote(__FILE__)}:(?:#{[__LINE__-7, __LINE__-5, __LINE__-3].join('|')}):"o =~ t} if $@
    end
  end

  #
  # Checks for a method provided by this the delegate object by forwarding the
  # call through \_\_getobj\_\_.
  #
  def respond_to_missing?(m, include_private)
    r = true
    target = self.__getobj__ {r = false}
    r &&= target.respond_to?(m, include_private)
    if r && include_private && !target.respond_to?(m, false)
      warn "#{caller(3)[0]}: delegator does not forward private method \##{m}"
      return false
    end
    r
  end

  #
  # Returns the methods available to this delegate object as the union
  # of this object's and \_\_getobj\_\_ methods.
  #
  def methods(all=true)
    __getobj__.methods(all) | super
  end

  #
  # Returns the methods available to this delegate object as the union
  # of this object's and \_\_getobj\_\_ public methods.
  #
  def public_methods(all=true)
    __getobj__.public_methods(all) | super
  end

  #
  # Returns the methods available to this delegate object as the union
  # of this object's and \_\_getobj\_\_ protected methods.
  #
  def protected_methods(all=true)
    __getobj__.protected_methods(all) | super
  end

  # Note: no need to specialize private_methods, since they are not forwarded

  #
  # Returns true if two objects are considered of equal value.
  #
  def ==(obj)
    return true if obj.equal?(self)
    self.__getobj__ == obj
  end

  #
  # Returns true if two objects are not considered of equal value.
  #
  def !=(obj)
    return false if obj.equal?(self)
    __getobj__ != obj
  end

  #
  # Delegates ! to the \_\_getobj\_\_
  #
  def !
    !__getobj__
  end

  #
  # This method must be overridden by subclasses and should return the object
  # method calls are being delegated to.
  #
  def __getobj__
    __raise__ ::NotImplementedError, "need to define `__getobj__'"
  end

  #
  # This method must be overridden by subclasses and change the object delegate
  # to _obj_.
  #
  def __setobj__(obj)
    __raise__ ::NotImplementedError, "need to define `__setobj__'"
  end

  #
  # Serialization support for the object returned by \_\_getobj\_\_.
  #
  def marshal_dump
    ivars = instance_variables.reject {|var| /\A@delegate_/ =~ var}
    [
      :__v2__,
      ivars, ivars.map{|var| instance_variable_get(var)},
      __getobj__
    ]
  end

  #
  # Reinitializes delegation from a serialized object.
  #
  def marshal_load(data)
    version, vars, values, obj = data
    if version == :__v2__
      vars.each_with_index{|var, i| instance_variable_set(var, values[i])}
      __setobj__(obj)
    else
      __setobj__(data)
    end
  end

  def initialize_clone(obj) # :nodoc:
    self.__setobj__(obj.__getobj__.clone)
  end
  def initialize_dup(obj) # :nodoc:
    self.__setobj__(obj.__getobj__.dup)
  end
  private :initialize_clone, :initialize_dup

  ##
  # :method: trust
  # Trust both the object returned by \_\_getobj\_\_ and self.
  #

  ##
  # :method: untrust
  # Untrust both the object returned by \_\_getobj\_\_ and self.
  #

  ##
  # :method: taint
  # Taint both the object returned by \_\_getobj\_\_ and self.
  #

  ##
  # :method: untaint
  # Untaint both the object returned by \_\_getobj\_\_ and self.
  #

  ##
  # :method: freeze
  # Freeze both the object returned by \_\_getobj\_\_ and self.
  #

  [:trust, :untrust, :taint, :untaint, :freeze].each do |method|
    define_method method do
      __getobj__.send(method)
      super()
    end
  end

  @delegator_api = self.public_instance_methods
  def self.public_api   # :nodoc:
    @delegator_api
  end
end

##
# A concrete implementation of Delegator, this class provides the means to
# delegate all supported method calls to the object passed into the constructor
# and even to change the object being delegated to at a later time with
# #__setobj__.
#
#   class User
#     def born_on
#       Date.new(1989, 9, 10)
#     end
#   end
#
#   class UserDecorator < SimpleDelegator
#     def birth_year
#       born_on.year
#     end
#   end
#
#   decorated_user = UserDecorator.new(User.new)
#   decorated_user.birth_year  #=> 1989
#   decorated_user.__getobj__  #=> #<User: ...>
#
# A SimpleDelegator instance can take advantage of the fact that SimpleDelegator
# is a subclass of +Delegator+ to call <tt>super</tt> to have methods called on
# the object being delegated to.
#
#   class SuperArray < SimpleDelegator
#     def [](*args)
#       super + 1
#     end
#   end
#
#   SuperArray.new([1])[0]  #=> 2
#
# Here's a simple example that takes advantage of the fact that
# SimpleDelegator's delegation object can be changed at any time.
#
#   class Stats
#     def initialize
#       @source = SimpleDelegator.new([])
#     end
#
#     def stats(records)
#       @source.__setobj__(records)
#
#       "Elements:  #{@source.size}\n" +
#       " Non-Nil:  #{@source.compact.size}\n" +
#       "  Unique:  #{@source.uniq.size}\n"
#     end
#   end
#
#   s = Stats.new
#   puts s.stats(%w{James Edward Gray II})
#   puts
#   puts s.stats([1, 2, 3, nil, 4, 5, 1, 2])
#
# Prints:
#
#   Elements:  4
#    Non-Nil:  4
#     Unique:  4
#
#   Elements:  8
#    Non-Nil:  7
#     Unique:  6
#
class SimpleDelegator<Delegator
  # Returns the current object method calls are being delegated to.
  def __getobj__
    unless defined?(@delegate_sd_obj)
      return yield if block_given?
      __raise__ ::ArgumentError, "not delegated"
    end
    @delegate_sd_obj
  end

  #
  # Changes the delegate object to _obj_.
  #
  # It's important to note that this does *not* cause SimpleDelegator's methods
  # to change.  Because of this, you probably only want to change delegation
  # to objects of the same type as the original delegate.
  #
  # Here's an example of changing the delegation object.
  #
  #   names = SimpleDelegator.new(%w{James Edward Gray II})
  #   puts names[1]    # => Edward
  #   names.__setobj__(%w{Gavin Sinclair})
  #   puts names[1]    # => Sinclair
  #
  def __setobj__(obj)
    __raise__ ::ArgumentError, "cannot delegate to self" if self.equal?(obj)
    @delegate_sd_obj = obj
  end
end

def Delegator.delegating_block(mid) # :nodoc:
  lambda do |*args, &block|
    target = self.__getobj__
    begin
      target.__send__(mid, *args, &block)
    ensure
      $@.delete_if {|t| /\A#{Regexp.quote(__FILE__)}:#{__LINE__-2}:/o =~ t} if $@
    end
  end
end

#
# The primary interface to this library.  Use to setup delegation when defining
# your class.
#
#   class MyClass < DelegateClass(ClassToDelegateTo) # Step 1
#     def initialize
#       super(obj_of_ClassToDelegateTo)              # Step 2
#     end
#   end
#
# Here's a sample of use from Tempfile which is really a File object with a
# few special rules about storage location and when the File should be
# deleted.  That makes for an almost textbook perfect example of how to use
# delegation.
#
#   class Tempfile < DelegateClass(File)
#     # constant and class member data initialization...
#
#     def initialize(basename, tmpdir=Dir::tmpdir)
#       # build up file path/name in var tmpname...
#
#       @tmpfile = File.open(tmpname, File::RDWR|File::CREAT|File::EXCL, 0600)
#
#       # ...
#
#       super(@tmpfile)
#
#       # below this point, all methods of File are supported...
#     end
#
#     # ...
#   end
#
def DelegateClass(superclass)
  klass = Class.new(Delegator)
  methods = superclass.instance_methods
  methods -= ::Delegator.public_api
  methods -= [:to_s,:inspect,:=~,:!~,:===]
  klass.module_eval do
    def __getobj__  # :nodoc:
      unless defined?(@delegate_dc_obj)
        return yield if block_given?
        __raise__ ::ArgumentError, "not delegated"
      end
      @delegate_dc_obj
    end
    def __setobj__(obj)  # :nodoc:
      __raise__ ::ArgumentError, "cannot delegate to self" if self.equal?(obj)
      @delegate_dc_obj = obj
    end
    methods.each do |method|
      define_method(method, Delegator.delegating_block(method))
    end
  end
  klass.define_singleton_method :public_instance_methods do |all=true|
    super(all) - superclass.protected_instance_methods
  end
  klass.define_singleton_method :protected_instance_methods do |all=true|
    super(all) | superclass.protected_instance_methods
  end
  return klass
end
lib64/ruby/2.2.0/json/version.rb000064400000000421150402106360012061 0ustar00module JSON
  # JSON version
  VERSION         = '1.8.1.1'
  VERSION_ARRAY   = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
  VERSION_MAJOR   = VERSION_ARRAY[0] # :nodoc:
  VERSION_MINOR   = VERSION_ARRAY[1] # :nodoc:
  VERSION_BUILD   = VERSION_ARRAY[2] # :nodoc:
end
lib64/ruby/2.2.0/json/ext.rb000064400000000774150402106360011207 0ustar00if ENV['SIMPLECOV_COVERAGE'].to_i == 1
  require 'simplecov'
  SimpleCov.start do
    add_filter "/tests/"
  end
end
require 'json/common'

module JSON
  # This module holds all the modules/classes that implement JSON's
  # functionality as C extensions.
  module Ext
    require 'json/ext/parser'
    require 'json/ext/generator'
    $DEBUG and warn "Using Ext extension for JSON."
    JSON.parser = Parser
    JSON.generator = Generator
  end

  JSON_LOADED = true unless defined?(::JSON::JSON_LOADED)
end
lib64/ruby/2.2.0/json/generic_object.rb000064400000002500150402106360013336 0ustar00require 'ostruct'

module JSON
  class GenericObject < OpenStruct
    class << self
      alias [] new

      def json_creatable?
        @json_creatable
      end

      attr_writer :json_creatable

      def json_create(data)
        data = data.dup
        data.delete JSON.create_id
        self[data]
      end

      def from_hash(object)
        case
        when object.respond_to?(:to_hash)
          result = new
          object.to_hash.each do |key, value|
            result[key] = from_hash(value)
          end
          result
        when object.respond_to?(:to_ary)
          object.to_ary.map { |a| from_hash(a) }
        else
          object
        end
      end

      def load(source, proc = nil, opts = {})
        result = ::JSON.load(source, proc, opts.merge(:object_class => self))
        result.nil? ? new : result
      end

      def dump(obj, *args)
        ::JSON.dump(obj, *args)
      end
    end
    self.json_creatable = false

    def to_hash
      table
    end

    def [](name)
      table[name.to_sym]
    end

    def []=(name, value)
      __send__ "#{name}=", value
    end

    def |(other)
      self.class[other.to_hash.merge(to_hash)]
    end

    def as_json(*)
      { JSON.create_id => self.class.name }.merge to_hash
    end

    def to_json(*a)
      as_json.to_json(*a)
    end
  end
end
lib64/ruby/2.2.0/json/common.rb000064400000037320150402106360011674 0ustar00require 'json/version'
require 'json/generic_object'

module JSON
  class << self
    # If _object_ is string-like, parse the string and return the parsed result
    # as a Ruby data structure. Otherwise generate a JSON text from the Ruby
    # data structure object and return it.
    #
    # The _opts_ argument is passed through to generate/parse respectively. See
    # generate and parse for their documentation.
    def [](object, opts = {})
      if object.respond_to? :to_str
        JSON.parse(object.to_str, opts)
      else
        JSON.generate(object, opts)
      end
    end

    # Returns the JSON parser class that is used by JSON. This is either
    # JSON::Ext::Parser or JSON::Pure::Parser.
    attr_reader :parser

    # Set the JSON parser class _parser_ to be used by JSON.
    def parser=(parser) # :nodoc:
      @parser = parser
      remove_const :Parser if JSON.const_defined_in?(self, :Parser)
      const_set :Parser, parser
    end

    # Return the constant located at _path_. The format of _path_ has to be
    # either ::A::B::C or A::B::C. In any case, A has to be located at the top
    # level (absolute namespace path?). If there doesn't exist a constant at
    # the given path, an ArgumentError is raised.
    def deep_const_get(path) # :nodoc:
      path.to_s.split(/::/).inject(Object) do |p, c|
        case
        when c.empty?                     then p
        when JSON.const_defined_in?(p, c) then p.const_get(c)
        else
          begin
            p.const_missing(c)
          rescue NameError => e
            raise ArgumentError, "can't get const #{path}: #{e}"
          end
        end
      end
    end

    # Set the module _generator_ to be used by JSON.
    def generator=(generator) # :nodoc:
      old, $VERBOSE = $VERBOSE, nil
      @generator = generator
      generator_methods = generator::GeneratorMethods
      for const in generator_methods.constants
        klass = deep_const_get(const)
        modul = generator_methods.const_get(const)
        klass.class_eval do
          instance_methods(false).each do |m|
            m.to_s == 'to_json' and remove_method m
          end
          include modul
        end
      end
      self.state = generator::State
      const_set :State, self.state
      const_set :SAFE_STATE_PROTOTYPE, State.new
      const_set :FAST_STATE_PROTOTYPE, State.new(
        :indent         => '',
        :space          => '',
        :object_nl      => "",
        :array_nl       => "",
        :max_nesting    => false
      )
      const_set :PRETTY_STATE_PROTOTYPE, State.new(
        :indent         => '  ',
        :space          => ' ',
        :object_nl      => "\n",
        :array_nl       => "\n"
      )
    ensure
      $VERBOSE = old
    end

    # Returns the JSON generator module that is used by JSON. This is
    # either JSON::Ext::Generator or JSON::Pure::Generator.
    attr_reader :generator

    # Returns the JSON generator state class that is used by JSON. This is
    # either JSON::Ext::Generator::State or JSON::Pure::Generator::State.
    attr_accessor :state

    # This is create identifier, which is used to decide if the _json_create_
    # hook of a class should be called. It defaults to 'json_class'.
    attr_accessor :create_id
  end
  self.create_id = 'json_class'

  NaN           = 0.0/0

  Infinity      = 1.0/0

  MinusInfinity = -Infinity

  # The base exception for JSON errors.
  class JSONError < StandardError
    def self.wrap(exception)
      obj = new("Wrapped(#{exception.class}): #{exception.message.inspect}")
      obj.set_backtrace exception.backtrace
      obj
    end
  end

  # This exception is raised if a parser error occurs.
  class ParserError < JSONError; end

  # This exception is raised if the nesting of parsed data structures is too
  # deep.
  class NestingError < ParserError; end

  # :stopdoc:
  class CircularDatastructure < NestingError; end
  # :startdoc:

  # This exception is raised if a generator or unparser error occurs.
  class GeneratorError < JSONError; end
  # For backwards compatibility
  UnparserError = GeneratorError

  # This exception is raised if the required unicode support is missing on the
  # system. Usually this means that the iconv library is not installed.
  class MissingUnicodeSupport < JSONError; end

  module_function

  # Parse the JSON document _source_ into a Ruby data structure and return it.
  #
  # _opts_ can have the following
  # keys:
  # * *max_nesting*: The maximum depth of nesting allowed in the parsed data
  #   structures. Disable depth checking with :max_nesting => false. It defaults
  #   to 100.
  # * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in
  #   defiance of RFC 4627 to be parsed by the Parser. This option defaults
  #   to false.
  # * *symbolize_names*: If set to true, returns symbols for the names
  #   (keys) in a JSON object. Otherwise strings are returned. Strings are
  #   the default.
  # * *create_additions*: If set to false, the Parser doesn't create
  #   additions even if a matching class and create_id was found. This option
  #   defaults to true.
  # * *object_class*: Defaults to Hash
  # * *array_class*: Defaults to Array
  def parse(source, opts = {})
    Parser.new(source, opts).parse
  end

  # Parse the JSON document _source_ into a Ruby data structure and return it.
  # The bang version of the parse method defaults to the more dangerous values
  # for the _opts_ hash, so be sure only to parse trusted _source_ documents.
  #
  # _opts_ can have the following keys:
  # * *max_nesting*: The maximum depth of nesting allowed in the parsed data
  #   structures. Enable depth checking with :max_nesting => anInteger. The parse!
  #   methods defaults to not doing max depth checking: This can be dangerous
  #   if someone wants to fill up your stack.
  # * *allow_nan*: If set to true, allow NaN, Infinity, and -Infinity in
  #   defiance of RFC 4627 to be parsed by the Parser. This option defaults
  #   to true.
  # * *create_additions*: If set to false, the Parser doesn't create
  #   additions even if a matching class and create_id was found. This option
  #   defaults to true.
  def parse!(source, opts = {})
    opts = {
      :max_nesting  => false,
      :allow_nan    => true
    }.update(opts)
    Parser.new(source, opts).parse
  end

  # Generate a JSON document from the Ruby data structure _obj_ and return
  # it. _state_ is * a JSON::State object,
  # * or a Hash like object (responding to to_hash),
  # * an object convertible into a hash by a to_h method,
  # that is used as or to configure a State object.
  #
  # It defaults to a state object, that creates the shortest possible JSON text
  # in one line, checks for circular data structures and doesn't allow NaN,
  # Infinity, and -Infinity.
  #
  # A _state_ hash can have the following keys:
  # * *indent*: a string used to indent levels (default: ''),
  # * *space*: a string that is put after, a : or , delimiter (default: ''),
  # * *space_before*: a string that is put before a : pair delimiter (default: ''),
  # * *object_nl*: a string that is put at the end of a JSON object (default: ''),
  # * *array_nl*: a string that is put at the end of a JSON array (default: ''),
  # * *allow_nan*: true if NaN, Infinity, and -Infinity should be
  #   generated, otherwise an exception is thrown if these values are
  #   encountered. This options defaults to false.
  # * *max_nesting*: The maximum depth of nesting allowed in the data
  #   structures from which JSON is to be generated. Disable depth checking
  #   with :max_nesting => false, it defaults to 100.
  #
  # See also the fast_generate for the fastest creation method with the least
  # amount of sanity checks, and the pretty_generate method for some
  # defaults for pretty output.
  def generate(obj, opts = nil)
    if State === opts
      state, opts = opts, nil
    else
      state = SAFE_STATE_PROTOTYPE.dup
    end
    if opts
      if opts.respond_to? :to_hash
        opts = opts.to_hash
      elsif opts.respond_to? :to_h
        opts = opts.to_h
      else
        raise TypeError, "can't convert #{opts.class} into Hash"
      end
      state = state.configure(opts)
    end
    state.generate(obj)
  end

  # :stopdoc:
  # I want to deprecate these later, so I'll first be silent about them, and
  # later delete them.
  alias unparse generate
  module_function :unparse
  # :startdoc:

  # Generate a JSON document from the Ruby data structure _obj_ and return it.
  # This method disables the checks for circles in Ruby objects.
  #
  # *WARNING*: Be careful not to pass any Ruby data structures with circles as
  # _obj_ argument because this will cause JSON to go into an infinite loop.
  def fast_generate(obj, opts = nil)
    if State === opts
      state, opts = opts, nil
    else
      state = FAST_STATE_PROTOTYPE.dup
    end
    if opts
      if opts.respond_to? :to_hash
        opts = opts.to_hash
      elsif opts.respond_to? :to_h
        opts = opts.to_h
      else
        raise TypeError, "can't convert #{opts.class} into Hash"
      end
      state.configure(opts)
    end
    state.generate(obj)
  end

  # :stopdoc:
  # I want to deprecate these later, so I'll first be silent about them, and later delete them.
  alias fast_unparse fast_generate
  module_function :fast_unparse
  # :startdoc:

  # Generate a JSON document from the Ruby data structure _obj_ and return it.
  # The returned document is a prettier form of the document returned by
  # #unparse.
  #
  # The _opts_ argument can be used to configure the generator. See the
  # generate method for a more detailed explanation.
  def pretty_generate(obj, opts = nil)
    if State === opts
      state, opts = opts, nil
    else
      state = PRETTY_STATE_PROTOTYPE.dup
    end
    if opts
      if opts.respond_to? :to_hash
        opts = opts.to_hash
      elsif opts.respond_to? :to_h
        opts = opts.to_h
      else
        raise TypeError, "can't convert #{opts.class} into Hash"
      end
      state.configure(opts)
    end
    state.generate(obj)
  end

  # :stopdoc:
  # I want to deprecate these later, so I'll first be silent about them, and later delete them.
  alias pretty_unparse pretty_generate
  module_function :pretty_unparse
  # :startdoc:

  class << self
    # The global default options for the JSON.load method:
    #  :max_nesting: false
    #  :allow_nan:   true
    #  :quirks_mode: true
    attr_accessor :load_default_options
  end
  self.load_default_options = {
    :max_nesting      => false,
    :allow_nan        => true,
    :quirks_mode      => true,
    :create_additions => true,
  }

  # Load a ruby data structure from a JSON _source_ and return it. A source can
  # either be a string-like object, an IO-like object, or an object responding
  # to the read method. If _proc_ was given, it will be called with any nested
  # Ruby object as an argument recursively in depth first order. To modify the
  # default options pass in the optional _options_ argument as well.
  #
  # BEWARE: This method is meant to serialise data from trusted user input,
  # like from your own database server or clients under your control, it could
  # be dangerous to allow untrusted users to pass JSON sources into it. The
  # default options for the parser can be changed via the load_default_options
  # method.
  #
  # This method is part of the implementation of the load/dump interface of
  # Marshal and YAML.
  def load(source, proc = nil, options = {})
    opts = load_default_options.merge options
    if source.respond_to? :to_str
      source = source.to_str
    elsif source.respond_to? :to_io
      source = source.to_io.read
    elsif source.respond_to?(:read)
      source = source.read
    end
    if opts[:quirks_mode] && (source.nil? || source.empty?)
      source = 'null'
    end
    result = parse(source, opts)
    recurse_proc(result, &proc) if proc
    result
  end

  # Recursively calls passed _Proc_ if the parsed data structure is an _Array_ or _Hash_
  def recurse_proc(result, &proc)
    case result
    when Array
      result.each { |x| recurse_proc x, &proc }
      proc.call result
    when Hash
      result.each { |x, y| recurse_proc x, &proc; recurse_proc y, &proc }
      proc.call result
    else
      proc.call result
    end
  end

  alias restore load
  module_function :restore

  class << self
    # The global default options for the JSON.dump method:
    #  :max_nesting: false
    #  :allow_nan:   true
    #  :quirks_mode: true
    attr_accessor :dump_default_options
  end
  self.dump_default_options = {
    :max_nesting => false,
    :allow_nan   => true,
    :quirks_mode => true,
  }

  # Dumps _obj_ as a JSON string, i.e. calls generate on the object and returns
  # the result.
  #
  # If anIO (an IO-like object or an object that responds to the write method)
  # was given, the resulting JSON is written to it.
  #
  # If the number of nested arrays or objects exceeds _limit_, an ArgumentError
  # exception is raised. This argument is similar (but not exactly the
  # same!) to the _limit_ argument in Marshal.dump.
  #
  # The default options for the generator can be changed via the
  # dump_default_options method.
  #
  # This method is part of the implementation of the load/dump interface of
  # Marshal and YAML.
  def dump(obj, anIO = nil, limit = nil)
    if anIO and limit.nil?
      anIO = anIO.to_io if anIO.respond_to?(:to_io)
      unless anIO.respond_to?(:write)
        limit = anIO
        anIO = nil
      end
    end
    opts = JSON.dump_default_options
    limit and opts.update(:max_nesting => limit)
    result = generate(obj, opts)
    if anIO
      anIO.write result
      anIO
    else
      result
    end
  rescue JSON::NestingError
    raise ArgumentError, "exceed depth limit"
  end

  # Swap consecutive bytes of _string_ in place.
  def self.swap!(string) # :nodoc:
    0.upto(string.size / 2) do |i|
      break unless string[2 * i + 1]
      string[2 * i], string[2 * i + 1] = string[2 * i + 1], string[2 * i]
    end
    string
  end

  # Shortuct for iconv.
  if ::String.method_defined?(:encode)
    # Encodes string using Ruby's _String.encode_
    def self.iconv(to, from, string)
      string.encode(to, from)
    end
  else
    require 'iconv'
    # Encodes string using _iconv_ library
    def self.iconv(to, from, string)
      Iconv.conv(to, from, string)
    end
  end

  if ::Object.method(:const_defined?).arity == 1
    def self.const_defined_in?(modul, constant)
      modul.const_defined?(constant)
    end
  else
    def self.const_defined_in?(modul, constant)
      modul.const_defined?(constant, false)
    end
  end
end

module ::Kernel
  private

  # Outputs _objs_ to STDOUT as JSON strings in the shortest form, that is in
  # one line.
  def j(*objs)
    objs.each do |obj|
      puts JSON::generate(obj, :allow_nan => true, :max_nesting => false)
    end
    nil
  end

  # Outputs _objs_ to STDOUT as JSON strings in a pretty format, with
  # indentation and over many lines.
  def jj(*objs)
    objs.each do |obj|
      puts JSON::pretty_generate(obj, :allow_nan => true, :max_nesting => false)
    end
    nil
  end

  # If _object_ is string-like, parse the string and return the parsed result as
  # a Ruby data structure. Otherwise, generate a JSON text from the Ruby data
  # structure object and return it.
  #
  # The _opts_ argument is passed through to generate/parse respectively. See
  # generate and parse for their documentation.
  def JSON(object, *args)
    if object.respond_to? :to_str
      JSON.parse(object.to_str, args.first)
    else
      JSON.generate(object, args.first)
    end
  end
end

# Extends any Class to include _json_creatable?_ method.
class ::Class
  # Returns true if this class can be used to create an instance
  # from a serialised JSON string. The class has to implement a class
  # method _json_create_ that expects a hash as first parameter. The hash
  # should include the required data.
  def json_creatable?
    respond_to?(:json_create)
  end
end
lib64/ruby/2.2.0/json/add/rational.rb000064400000000636150402106360012745 0ustar00unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
  require 'json'
end
defined?(::Rational) or require 'rational'

class Rational
  def self.json_create(object)
    Rational(object['n'], object['d'])
  end

  def as_json(*)
    {
      JSON.create_id => self.class.name,
      'n'            => numerator,
      'd'            => denominator,
    }
  end

  def to_json(*)
    as_json.to_json
  end
end
lib64/ruby/2.2.0/json/add/exception.rb000064400000001401150402106360013121 0ustar00unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
  require 'json'
end

class Exception

  # Deserializes JSON string by constructing new Exception object with message
  # <tt>m</tt> and backtrace <tt>b</tt> serialized with <tt>to_json</tt>
  def self.json_create(object)
    result = new(object['m'])
    result.set_backtrace object['b']
    result
  end

  # Returns a hash, that will be turned into a JSON object and represent this
  # object.
  def as_json(*)
    {
      JSON.create_id => self.class.name,
      'm'            => message,
      'b'            => backtrace,
    }
  end

  # Stores class name (Exception) with message <tt>m</tt> and backtrace array
  # <tt>b</tt> as JSON string
  def to_json(*args)
    as_json.to_json(*args)
  end
end
lib64/ruby/2.2.0/json/add/symbol.rb000064400000001110150402106360012425 0ustar00unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
  require 'json'
end

class Symbol
  # Returns a hash, that will be turned into a JSON object and represent this
  # object.
  def as_json(*)
    {
      JSON.create_id => self.class.name,
      's'            => to_s,
    }
  end

  # Stores class name (Symbol) with String representation of Symbol as a JSON string.
  def to_json(*a)
    as_json.to_json(*a)
  end

  # Deserializes JSON string by converting the <tt>string</tt> value stored in the object to a Symbol
  def self.json_create(o)
    o['s'].to_sym
  end
end
lib64/ruby/2.2.0/json/add/complex.rb000064400000000616150402106360012601 0ustar00unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
  require 'json'
end
defined?(::Complex) or require 'complex'

class Complex
  def self.json_create(object)
    Complex(object['r'], object['i'])
  end

  def as_json(*)
    {
      JSON.create_id => self.class.name,
      'r'            => real,
      'i'            => imag,
    }
  end

  def to_json(*)
    as_json.to_json
  end
end
lib64/ruby/2.2.0/json/add/date.rb000064400000001523150402106360012045 0ustar00unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
  require 'json'
end
require 'date'

class Date

  # Deserializes JSON string by converting Julian year <tt>y</tt>, month
  # <tt>m</tt>, day <tt>d</tt> and Day of Calendar Reform <tt>sg</tt> to Date.
  def self.json_create(object)
    civil(*object.values_at('y', 'm', 'd', 'sg'))
  end

  alias start sg unless method_defined?(:start)

  # Returns a hash, that will be turned into a JSON object and represent this
  # object.
  def as_json(*)
    {
      JSON.create_id => self.class.name,
      'y' => year,
      'm' => month,
      'd' => day,
      'sg' => start,
    }
  end

  # Stores class name (Date) with Julian year <tt>y</tt>, month <tt>m</tt>, day
  # <tt>d</tt> and Day of Calendar Reform <tt>sg</tt> as JSON string
  def to_json(*args)
    as_json.to_json(*args)
  end
end
lib64/ruby/2.2.0/json/add/time.rb000064400000001744150402106360012073 0ustar00unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
  require 'json'
end

class Time

  # Deserializes JSON string by converting time since epoch to Time
  def self.json_create(object)
    if usec = object.delete('u') # used to be tv_usec -> tv_nsec
      object['n'] = usec * 1000
    end
    if instance_methods.include?(:tv_nsec)
      at(object['s'], Rational(object['n'], 1000))
    else
      at(object['s'], object['n'] / 1000)
    end
  end

  # Returns a hash, that will be turned into a JSON object and represent this
  # object.
  def as_json(*)
    nanoseconds = [ tv_usec * 1000 ]
    respond_to?(:tv_nsec) and nanoseconds << tv_nsec
    nanoseconds = nanoseconds.max
    {
      JSON.create_id => self.class.name,
      's'            => tv_sec,
      'n'            => nanoseconds,
    }
  end

  # Stores class name (Time) with number of seconds since epoch and number of
  # microseconds for Time as JSON string
  def to_json(*args)
    as_json.to_json(*args)
  end
end
lib64/ruby/2.2.0/json/add/regexp.rb000064400000001332150402106360012420 0ustar00unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
  require 'json'
end

class Regexp

  # Deserializes JSON string by constructing new Regexp object with source
  # <tt>s</tt> (Regexp or String) and options <tt>o</tt> serialized by
  # <tt>to_json</tt>
  def self.json_create(object)
    new(object['s'], object['o'])
  end

  # Returns a hash, that will be turned into a JSON object and represent this
  # object.
  def as_json(*)
    {
      JSON.create_id => self.class.name,
      'o'            => options,
      's'            => source,
    }
  end

  # Stores class name (Regexp) with options <tt>o</tt> and source <tt>s</tt>
  # (Regexp or String) as JSON string
  def to_json(*)
    as_json.to_json
  end
end
lib64/ruby/2.2.0/json/add/bigdecimal.rb000064400000001070150402106360013205 0ustar00unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
  require 'json'
end
defined?(::BigDecimal) or require 'bigdecimal'

class BigDecimal
  # Import a JSON Marshalled object.
  #
  # method used for JSON marshalling support.
  def self.json_create(object)
    BigDecimal._load object['b']
  end

  # Marshal the object to JSON.
  #
  # method used for JSON marshalling support.
  def as_json(*)
    {
      JSON.create_id => self.class.name,
      'b'            => _dump,
    }
  end

  # return the JSON value
  def to_json(*)
    as_json.to_json
  end
end
lib64/ruby/2.2.0/json/add/date_time.rb000064400000002422150402106360013062 0ustar00unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
  require 'json'
end
require 'date'

class DateTime

  # Deserializes JSON string by converting year <tt>y</tt>, month <tt>m</tt>,
  # day <tt>d</tt>, hour <tt>H</tt>, minute <tt>M</tt>, second <tt>S</tt>,
  # offset <tt>of</tt> and Day of Calendar Reform <tt>sg</tt> to DateTime.
  def self.json_create(object)
    args = object.values_at('y', 'm', 'd', 'H', 'M', 'S')
    of_a, of_b = object['of'].split('/')
    if of_b and of_b != '0'
      args << Rational(of_a.to_i, of_b.to_i)
    else
      args << of_a
    end
    args << object['sg']
    civil(*args)
  end

  alias start sg unless method_defined?(:start)

  # Returns a hash, that will be turned into a JSON object and represent this
  # object.
  def as_json(*)
    {
      JSON.create_id => self.class.name,
      'y' => year,
      'm' => month,
      'd' => day,
      'H' => hour,
      'M' => min,
      'S' => sec,
      'of' => offset.to_s,
      'sg' => start,
    }
  end

  # Stores class name (DateTime) with Julian year <tt>y</tt>, month <tt>m</tt>,
  # day <tt>d</tt>, hour <tt>H</tt>, minute <tt>M</tt>, second <tt>S</tt>,
  # offset <tt>of</tt> and Day of Calendar Reform <tt>sg</tt> as JSON string
  def to_json(*args)
    as_json.to_json(*args)
  end
end


lib64/ruby/2.2.0/json/add/struct.rb000064400000001364150402106370012460 0ustar00unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
  require 'json'
end

class Struct

  # Deserializes JSON string by constructing new Struct object with values
  # <tt>v</tt> serialized by <tt>to_json</tt>.
  def self.json_create(object)
    new(*object['v'])
  end

  # Returns a hash, that will be turned into a JSON object and represent this
  # object.
  def as_json(*)
    klass = self.class.name
    klass.to_s.empty? and raise JSON::JSONError, "Only named structs are supported!"
    {
      JSON.create_id => klass,
      'v'            => values,
    }
  end

  # Stores class name (Struct) with Struct values <tt>v</tt> as a JSON string.
  # Only named structs are supported.
  def to_json(*args)
    as_json.to_json(*args)
  end
end
lib64/ruby/2.2.0/json/add/range.rb000064400000001364150402106370012230 0ustar00unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
  require 'json'
end

class Range

  # Deserializes JSON string by constructing new Range object with arguments
  # <tt>a</tt> serialized by <tt>to_json</tt>.
  def self.json_create(object)
    new(*object['a'])
  end

  # Returns a hash, that will be turned into a JSON object and represent this
  # object.
  def as_json(*)
    {
      JSON.create_id  => self.class.name,
      'a'             => [ first, last, exclude_end? ]
    }
  end

  # Stores class name (Range) with JSON array of arguments <tt>a</tt> which
  # include <tt>first</tt> (integer), <tt>last</tt> (integer), and
  # <tt>exclude_end?</tt> (boolean) as JSON string.
  def to_json(*args)
    as_json.to_json(*args)
  end
end
lib64/ruby/2.2.0/json/add/core.rb000064400000000476150402106370012067 0ustar00# This file requires the implementations of ruby core's custom objects for
# serialisation/deserialisation.

require 'json/add/date'
require 'json/add/date_time'
require 'json/add/exception'
require 'json/add/range'
require 'json/add/regexp'
require 'json/add/struct'
require 'json/add/symbol'
require 'json/add/time'
lib64/ruby/2.2.0/json/add/ostruct.rb000064400000001377150402106370012643 0ustar00unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
  require 'json'
end
require 'ostruct'

class OpenStruct

  # Deserializes JSON string by constructing new Struct object with values
  # <tt>v</tt> serialized by <tt>to_json</tt>.
  def self.json_create(object)
    new(object['t'] || object[:t])
  end

  # Returns a hash, that will be turned into a JSON object and represent this
  # object.
  def as_json(*)
    klass = self.class.name
    klass.to_s.empty? and raise JSON::JSONError, "Only named structs are supported!"
    {
      JSON.create_id => klass,
      't'            => table,
    }
  end

  # Stores class name (OpenStruct) with this struct's values <tt>v</tt> as a
  # JSON string.
  def to_json(*args)
    as_json.to_json(*args)
  end
end
lib64/ruby/2.2.0/drb.rb000064400000000023150402106370010171 0ustar00require 'drb/drb'

lib64/ruby/2.2.0/webrick.rb000064400000015302150402106370011056 0ustar00##
# = WEB server toolkit.
#
# WEBrick is an HTTP server toolkit that can be configured as an HTTPS server,
# a proxy server, and a virtual-host server.  WEBrick features complete
# logging of both server operations and HTTP access.  WEBrick supports both
# basic and digest authentication in addition to algorithms not in RFC 2617.
#
# A WEBrick server can be composed of multiple WEBrick servers or servlets to
# provide differing behavior on a per-host or per-path basis.  WEBrick
# includes servlets for handling CGI scripts, ERb pages, Ruby blocks and
# directory listings.
#
# WEBrick also includes tools for daemonizing a process and starting a process
# at a higher privilege level and dropping permissions.
#
# == Starting an HTTP server
#
# To create a new WEBrick::HTTPServer that will listen to connections on port
# 8000 and serve documents from the current user's public_html folder:
#
#   require 'webrick'
#
#   root = File.expand_path '~/public_html'
#   server = WEBrick::HTTPServer.new :Port => 8000, :DocumentRoot => root
#
# To run the server you will need to provide a suitable shutdown hook as
# starting the server blocks the current thread:
#
#   trap 'INT' do server.shutdown end
#
#   server.start
#
# == Custom Behavior
#
# The easiest way to have a server perform custom operations is through
# WEBrick::HTTPServer#mount_proc.  The block given will be called with a
# WEBrick::HTTPRequest with request info and a WEBrick::HTTPResponse which
# must be filled in appropriately:
#
#   server.mount_proc '/' do |req, res|
#     res.body = 'Hello, world!'
#   end
#
# Remember that +server.mount_proc+ must precede +server.start+.
#
# == Servlets
#
# Advanced custom behavior can be obtained through mounting a subclass of
# WEBrick::HTTPServlet::AbstractServlet.  Servlets provide more modularity
# when writing an HTTP server than mount_proc allows.  Here is a simple
# servlet:
#
#   class Simple < WEBrick::HTTPServlet::AbstractServlet
#     def do_GET request, response
#       status, content_type, body = do_stuff_with request
#
#       response.status = 200
#       response['Content-Type'] = 'text/plain'
#       response.body = 'Hello, World!'
#     end
#   end
#
# To initialize the servlet you mount it on the server:
#
#   server.mount '/simple', Simple
#
# See WEBrick::HTTPServlet::AbstractServlet for more details.
#
# == Virtual Hosts
#
# A server can act as a virtual host for multiple host names.  After creating
# the listening host, additional hosts that do not listen can be created and
# attached as virtual hosts:
#
#   server = WEBrick::HTTPServer.new # ...
#
#   vhost = WEBrick::HTTPServer.new :ServerName => 'vhost.example',
#                                   :DoNotListen => true, # ...
#   vhost.mount '/', ...
#
#   server.virtual_host vhost
#
# If no +:DocumentRoot+ is provided and no servlets or procs are mounted on the
# main server it will return 404 for all URLs.
#
# == HTTPS
#
# To create an HTTPS server you only need to enable SSL and provide an SSL
# certificate name:
#
#   require 'webrick'
#   require 'webrick/https'
#
#   cert_name = [
#     %w[CN localhost],
#   ]
#
#   server = WEBrick::HTTPServer.new(:Port => 8000,
#                                    :SSLEnable => true,
#                                    :SSLCertName => cert_name)
#
# This will start the server with a self-generated self-signed certificate.
# The certificate will be changed every time the server is restarted.
#
# To create a server with a pre-determined key and certificate you can provide
# them:
#
#   require 'webrick'
#   require 'webrick/https'
#   require 'openssl'
#
#   cert = OpenSSL::X509::Certificate.new File.read '/path/to/cert.pem'
#   pkey = OpenSSL::PKey::RSA.new File.read '/path/to/pkey.pem'
#
#   server = WEBrick::HTTPServer.new(:Port => 8000,
#                                    :SSLEnable => true,
#                                    :SSLCertificate => cert,
#                                    :SSLPrivateKey => pkey)
#
# == Proxy Server
#
# WEBrick can act as a proxy server:
#
#   require 'webrick'
#   require 'webrick/httpproxy'
#
#   proxy = WEBrick::HTTPProxyServer.new :Port => 8000
#
#   trap 'INT' do proxy.shutdown end
#
# See WEBrick::HTTPProxy for further details including modifying proxied
# responses.
#
# == Basic and Digest authentication
#
# WEBrick provides both Basic and Digest authentication for regular and proxy
# servers.  See WEBrick::HTTPAuth, WEBrick::HTTPAuth::BasicAuth and
# WEBrick::HTTPAuth::DigestAuth.
#
# == WEBrick as a Production Web Server
#
# WEBrick can be run as a production server for small loads.
#
# === Daemonizing
#
# To start a WEBrick server as a daemon simple run WEBrick::Daemon.start
# before starting the server.
#
# === Dropping Permissions
#
# WEBrick can be started as one user to gain permission to bind to port 80 or
# 443 for serving HTTP or HTTPS traffic then can drop these permissions for
# regular operation.  To listen on all interfaces for HTTP traffic:
#
#   sockets = WEBrick::Utils.create_listeners nil, 80
#
# Then drop privileges:
#
#   WEBrick::Utils.su 'www'
#
# Then create a server that does not listen by default:
#
#   server = WEBrick::HTTPServer.new :DoNotListen => true, # ...
#
# Then overwrite the listening sockets with the port 80 sockets:
#
#   server.listeners.replace sockets
#
# === Logging
#
# WEBrick can separately log server operations and end-user access.  For
# server operations:
#
#   log_file = File.open '/var/log/webrick.log', 'a+'
#   log = WEBrick::Log.new log_file
#
# For user access logging:
#
#   access_log = [
#     [log_file, WEBrick::AccessLog::COMBINED_LOG_FORMAT],
#   ]
#
#   server = WEBrick::HTTPServer.new :Logger => log, :AccessLog => access_log
#
# See WEBrick::AccessLog for further log formats.
#
# === Log Rotation
#
# To rotate logs in WEBrick on a HUP signal (like syslogd can send), open the
# log file in 'a+' mode (as above) and trap 'HUP' to reopen the log file:
#
#   trap 'HUP' do log_file.reopen '/path/to/webrick.log', 'a+'
#
# == Copyright
#
# Author: IPR -- Internet Programming with Ruby -- writers
#
# Copyright (c) 2000 TAKAHASHI Masayoshi, GOTOU YUUZOU
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#--
# $IPR: webrick.rb,v 1.12 2002/10/01 17:16:31 gotoyuzo Exp $

module WEBrick
end

require 'webrick/compat.rb'

require 'webrick/version.rb'
require 'webrick/config.rb'
require 'webrick/log.rb'
require 'webrick/server.rb'
require 'webrick/utils.rb'
require 'webrick/accesslog'

require 'webrick/htmlutils.rb'
require 'webrick/httputils.rb'
require 'webrick/cookie.rb'
require 'webrick/httpversion.rb'
require 'webrick/httpstatus.rb'
require 'webrick/httprequest.rb'
require 'webrick/httpresponse.rb'
require 'webrick/httpserver.rb'
require 'webrick/httpservlet.rb'
require 'webrick/httpauth.rb'
lib64/ruby/2.2.0/xmlrpc/create.rb000064400000015043150402106370012202 0ustar00#
# Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de)
#
# $Id: create.rb 36958 2012-09-13 02:22:10Z zzak $
#

require "date"
require "xmlrpc/base64"

module XMLRPC # :nodoc:

  module XMLWriter

    class Abstract
      def ele(name, *children)
        element(name, nil, *children)
      end

      def tag(name, txt)
        element(name, nil, text(txt))
      end
    end


    class Simple < Abstract

      def document_to_str(doc)
        doc
      end

      def document(*params)
        params.join("")
      end

      def pi(name, *params)
        "<?#{name} " + params.join(" ") + " ?>"
      end

      def element(name, attrs, *children)
        raise "attributes not yet implemented" unless attrs.nil?
        if children.empty?
          "<#{name}/>"
        else
          "<#{name}>" + children.join("") + "</#{name}>"
        end
      end

      def text(txt)
        cleaned = txt.dup
        cleaned.gsub!(/&/, '&amp;')
        cleaned.gsub!(/</, '&lt;')
        cleaned.gsub!(/>/, '&gt;')
        cleaned
      end

    end # class Simple


    class XMLParser < Abstract

      def initialize
        require "xmltreebuilder"
      end

      def document_to_str(doc)
        doc.to_s
      end

      def document(*params)
        XML::SimpleTree::Document.new(*params)
      end

      def pi(name, *params)
        XML::SimpleTree::ProcessingInstruction.new(name, *params)
      end

      def element(name, attrs, *children)
        XML::SimpleTree::Element.new(name, attrs, *children)
      end

      def text(txt)
        XML::SimpleTree::Text.new(txt)
      end

    end # class XMLParser

    Classes = [Simple, XMLParser]

    # yields an instance of each installed XML writer
    def self.each_installed_writer
      XMLRPC::XMLWriter::Classes.each do |klass|
        begin
          yield klass.new
        rescue LoadError
        end
      end
    end

  end # module XMLWriter

  # Creates XML-RPC call/response documents
  #
  class Create

    def initialize(xml_writer = nil)
      @writer = xml_writer || Config::DEFAULT_WRITER.new
    end


    def methodCall(name, *params)
      name = name.to_s

      if name !~ /[a-zA-Z0-9_.:\/]+/
        raise ArgumentError, "Wrong XML-RPC method-name"
      end

      parameter = params.collect do |param|
        @writer.ele("param", conv2value(param))
      end

      tree = @writer.document(
               @writer.pi("xml", 'version="1.0"'),
               @writer.ele("methodCall",
                 @writer.tag("methodName", name),
                 @writer.ele("params", *parameter)
               )
             )

      @writer.document_to_str(tree) + "\n"
    end



    #
    # Generates a XML-RPC methodResponse document
    #
    # When +is_ret+ is +false+ then the +params+ array must
    # contain only one element, which is a structure
    # of a fault return-value.
    #
    # When +is_ret+ is +true+ then a normal
    # return-value of all the given +params+ is created.
    #
    def methodResponse(is_ret, *params)

      if is_ret
        resp = params.collect do |param|
          @writer.ele("param", conv2value(param))
        end

        resp = [@writer.ele("params", *resp)]
      else
        if params.size != 1 or params[0] === XMLRPC::FaultException
          raise ArgumentError, "no valid fault-structure given"
        end
        resp = @writer.ele("fault", conv2value(params[0].to_h))
      end


      tree = @writer.document(
               @writer.pi("xml", 'version="1.0"'),
               @writer.ele("methodResponse", resp)
             )

      @writer.document_to_str(tree) + "\n"
    end



    private

    #
    # Converts a Ruby object into a XML-RPC <code><value></code> tag
    #
    def conv2value(param) # :doc:

        val = case param
        when Fixnum, Bignum
          # XML-RPC's int is 32bit int, and Fixnum also may be beyond 32bit
          if Config::ENABLE_BIGINT
            @writer.tag("i4", param.to_s)
          else
            if param >= -(2**31) and param <= (2**31-1)
              @writer.tag("i4", param.to_s)
            else
              raise "Bignum is too big! Must be signed 32-bit integer!"
            end
          end
        when TrueClass, FalseClass
          @writer.tag("boolean", param ? "1" : "0")

        when Symbol
          @writer.tag("string", param.to_s)

        when String
          @writer.tag("string", param)

        when NilClass
          if Config::ENABLE_NIL_CREATE
            @writer.ele("nil")
          else
            raise "Wrong type NilClass. Not allowed!"
          end

        when Float
          raise "Wrong value #{param}. Not allowed!" unless param.finite?
          @writer.tag("double", param.to_s)

        when Struct
          h = param.members.collect do |key|
            value = param[key]
            @writer.ele("member",
              @writer.tag("name", key.to_s),
              conv2value(value)
            )
          end

          @writer.ele("struct", *h)

        when Hash
          # TODO: can a Hash be empty?

          h = param.collect do |key, value|
            @writer.ele("member",
              @writer.tag("name", key.to_s),
              conv2value(value)
            )
          end

          @writer.ele("struct", *h)

        when Array
          # TODO: can an Array be empty?
          a = param.collect {|v| conv2value(v) }

          @writer.ele("array",
            @writer.ele("data", *a)
          )

        when Time, Date, ::DateTime
          @writer.tag("dateTime.iso8601", param.strftime("%Y%m%dT%H:%M:%S"))

        when XMLRPC::DateTime
          @writer.tag("dateTime.iso8601",
            format("%.4d%02d%02dT%02d:%02d:%02d", *param.to_a))

        when XMLRPC::Base64
          @writer.tag("base64", param.encoded)

        else
          if Config::ENABLE_MARSHALLING and param.class.included_modules.include? XMLRPC::Marshallable
            # convert Ruby object into Hash
            ret = {"___class___" => param.class.name}
            param.instance_variables.each {|v|
              name = v[1..-1]
              val = param.instance_variable_get(v)

              if val.nil?
                ret[name] = val if Config::ENABLE_NIL_CREATE
              else
                ret[name] = val
              end
            }
            return conv2value(ret)
          else
            ok, pa = wrong_type(param)
            if ok
              return conv2value(pa)
            else
              raise "Wrong type!"
            end
          end
        end

        @writer.ele("value", val)
    end

    def wrong_type(value)
      false
    end


  end # class Create

end # module XMLRPC

lib64/ruby/2.2.0/xmlrpc/datetime.rb000064400000007041150402106370012532 0ustar00#
# xmlrpc/datetime.rb
# Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de)
#
# Released under the same term of license as Ruby.
#
require "date"

module XMLRPC # :nodoc:

# This class is important to handle XMLRPC +dateTime.iso8601+ values,
# correctly, because normal UNIX-dates, ie: Date, only handle dates
# from year 1970 on, and ruby's native Time class handles dates without the
# time component.
#
# XMLRPC::DateTime is able to store a XMLRPC +dateTime.iso8601+ value correctly.
class DateTime

  # Return the value of the specified date/time component.
  attr_reader :year, :month, :day, :hour, :min, :sec

  # Set +value+ as the new date/time component.
  #
  # Raises ArgumentError if the given +value+ is out of range, or in the case
  # of XMLRPC::DateTime#year= if +value+ is not of type Integer.
  def year= (value)
    raise ArgumentError, "date/time out of range" unless value.is_a? Integer
    @year = value
  end

  # Set +value+ as the new date/time component.
  #
  # Raises an ArgumentError if the given +value+ isn't between 1 and 12.
  def month= (value)
    raise ArgumentError, "date/time out of range" unless (1..12).include? value
    @month = value
  end

  # Set +value+ as the new date/time component.
  #
  # Raises an ArgumentError if the given +value+ isn't between 1 and 31.
  def day= (value)
    raise ArgumentError, "date/time out of range" unless (1..31).include? value
    @day = value
  end

  # Set +value+ as the new date/time component.
  #
  # Raises an ArgumentError if the given +value+ isn't between 0 and 24.
  def hour= (value)
    raise ArgumentError, "date/time out of range" unless (0..24).include? value
    @hour = value
  end

  # Set +value+ as the new date/time component.
  #
  # Raises an ArgumentError if the given +value+ isn't between 0 and 59.
  def min= (value)
    raise ArgumentError, "date/time out of range" unless (0..59).include? value
    @min = value
  end

  # Set +value+ as the new date/time component.
  #
  # Raises an ArgumentError if the given +value+ isn't between 0 and 59.
  def sec= (value)
    raise ArgumentError, "date/time out of range" unless (0..59).include? value
    @sec = value
  end

  # Alias for XMLRPC::DateTime#month.
  alias mon  month
  # Alias for XMLRPC::DateTime#month=.
  alias mon= month=


  # Creates a new XMLRPC::DateTime instance with the
  # parameters +year+, +month+, +day+ as date and
  # +hour+, +min+, +sec+ as time.
  #
  # Raises an ArgumentError if a parameter is out of range,
  # or if +year+ is not of the Integer type.
  def initialize(year, month, day, hour, min, sec)
    self.year, self.month, self.day = year, month, day
    self.hour, self.min, self.sec   = hour, min, sec
  end

  # Return a Time object of the date/time which represents +self+.
  # If the <code>@year</code> is below 1970, this method returns +nil+,
  # because Time cannot handle years below 1970.
  #
  # The timezone used is GMT.
  def to_time
    if @year >= 1970
      Time.gm(*to_a)
    else
      nil
    end
  end

  # Return a Date object of the date which represents +self+.
  #
  # The Date object do _not_ contain the time component (only date).
  def to_date
    Date.new(*to_a[0,3])
  end

  # Returns all date/time components in an array.
  #
  # Returns +[year, month, day, hour, min, sec]+.
  def to_a
    [@year, @month, @day, @hour, @min, @sec]
  end

  # Returns whether or not all date/time components are an array.
  def ==(o)
    self.to_a == Array(o) rescue false
  end

end


end # module XMLRPC


=begin
= History
    $Id: datetime.rb 44024 2013-12-06 02:10:11Z hsbt $
=end
lib64/ruby/2.2.0/xmlrpc/utils.rb000064400000007650150402106370012104 0ustar00#
# Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de)
#
# $Id: utils.rb 36958 2012-09-13 02:22:10Z zzak $
#
module XMLRPC # :nodoc:


  # This module enables a user-class to be marshalled
  # by XML-RPC for Ruby into a Hash, with one additional
  # key/value pair <code>___class___ => ClassName</code>
  #
  module Marshallable
  end


  # Defines ParserWriterChooseMixin, which makes it possible to choose a
  # different XMLWriter and/or XMLParser then the default one.
  #
  # The Mixin is used in client.rb (class XMLRPC::Client)
  # and server.rb (class XMLRPC::BasicServer)
  module ParserWriterChooseMixin

    # Sets the XMLWriter to use for generating XML output.
    #
    # Should be an instance of a class from module XMLRPC::XMLWriter.
    #
    # If this method is not called, then XMLRPC::Config::DEFAULT_WRITER is used.
    def set_writer(writer)
      @create = Create.new(writer)
      self
    end

    # Sets the XMLParser to use for parsing XML documents.
    #
    # Should be an instance of a class from module XMLRPC::XMLParser.
    #
    # If this method is not called, then XMLRPC::Config::DEFAULT_PARSER is used.
    def set_parser(parser)
      @parser = parser
      self
    end

    private

    def create
      # if set_writer was not already called then call it now
      if @create.nil? then
        set_writer(Config::DEFAULT_WRITER.new)
      end
      @create
    end

    def parser
      # if set_parser was not already called then call it now
      if @parser.nil? then
        set_parser(Config::DEFAULT_PARSER.new)
      end
      @parser
    end

  end # module ParserWriterChooseMixin


  module Service

  # Base class for XMLRPC::Service::Interface definitions, used
  # by XMLRPC::BasicServer#add_handler
  class BasicInterface
    attr_reader :prefix, :methods

    def initialize(prefix)
      @prefix = prefix
      @methods = []
    end

    def add_method(sig, help=nil, meth_name=nil)
      mname = nil
      sig = [sig] if sig.kind_of? String

      sig = sig.collect do |s|
        name, si = parse_sig(s)
        raise "Wrong signatures!" if mname != nil and name != mname
        mname = name
        si
      end

      @methods << [mname, meth_name || mname, sig, help]
    end

    private

    def parse_sig(sig)
      # sig is a String
      if sig =~ /^\s*(\w+)\s+([^(]+)(\(([^)]*)\))?\s*$/
        params = [$1]
        name   = $2.strip
        $4.split(",").each {|i| params << i.strip} if $4 != nil
        return name, params
      else
        raise "Syntax error in signature"
      end
    end

  end # class BasicInterface

  #
  # Class which wraps a XMLRPC::Service::Interface definition, used
  # by XMLRPC::BasicServer#add_handler
  #
  class Interface < BasicInterface
    def initialize(prefix, &p)
      raise "No interface specified" if p.nil?
      super(prefix)
      instance_eval(&p)
    end

    def get_methods(obj, delim=".")
      prefix = @prefix + delim
      @methods.collect { |name, meth, sig, help|
        [prefix + name.to_s, obj.method(meth).to_proc, sig, help]
      }
    end

    private

    def meth(*a)
      add_method(*a)
    end

  end # class Interface

  class PublicInstanceMethodsInterface < BasicInterface
    def initialize(prefix)
      super(prefix)
    end

    def get_methods(obj, delim=".")
      prefix = @prefix + delim
      obj.class.public_instance_methods(false).collect { |name|
        [prefix + name.to_s, obj.method(name).to_proc, nil, nil]
      }
    end
  end


  end # module Service


  #
  # Short-form to create a XMLRPC::Service::Interface
  #
  def self.interface(prefix, &p)
    Service::Interface.new(prefix, &p)
  end

  # Short-cut for creating a XMLRPC::Service::PublicInstanceMethodsInterface
  def self.iPIMethods(prefix)
    Service::PublicInstanceMethodsInterface.new(prefix)
  end


  module ParseContentType
    def parse_content_type(str)
      a, *b = str.split(";")
      return a.strip.downcase, *b
    end
  end

end # module XMLRPC

lib64/ruby/2.2.0/xmlrpc/server.rb000064400000047472150402106370012260 0ustar00# xmlrpc/server.rb
# Copyright (C) 2001, 2002, 2003, 2005 by Michael Neumann (mneumann@ntecs.de)
#
# Released under the same term of license as Ruby.

require "xmlrpc/parser"
require "xmlrpc/create"
require "xmlrpc/config"
require "xmlrpc/utils"         # ParserWriterChooseMixin



module XMLRPC # :nodoc:


# This is the base class for all XML-RPC server-types (CGI, standalone).
# You can add handler and set a default handler.
# Do not use this server, as this is/should be an abstract class.
#
# === How the method to call is found
# The arity (number of accepted arguments) of a handler (method or Proc
# object) is compared to the given arguments submitted by the client for a
# RPC, or Remote Procedure Call.
#
# A handler is only called if it accepts the number of arguments, otherwise
# the search for another handler will go on. When at the end no handler was
# found, the default_handler, XMLRPC::BasicServer#set_default_handler will be
# called.
#
# With this technique it is possible to do overloading by number of parameters, but
# only for Proc handler, because you cannot define two methods of the same name in
# the same class.
class BasicServer

  include ParserWriterChooseMixin
  include ParseContentType

  ERR_METHOD_MISSING        = 1
  ERR_UNCAUGHT_EXCEPTION    = 2
  ERR_MC_WRONG_PARAM        = 3
  ERR_MC_MISSING_PARAMS     = 4
  ERR_MC_MISSING_METHNAME   = 5
  ERR_MC_RECURSIVE_CALL     = 6
  ERR_MC_WRONG_PARAM_PARAMS = 7
  ERR_MC_EXPECTED_STRUCT    = 8


  # Creates a new XMLRPC::BasicServer instance, which should not be
  # done, because XMLRPC::BasicServer is an abstract class. This
  # method should be called from a subclass indirectly by a +super+ call
  # in the initialize method.
  #
  # The parameter +class_delim+ is used by add_handler, see
  # XMLRPC::BasicServer#add_handler, when an object is added as a handler, to
  # delimit the object-prefix and the method-name.
  def initialize(class_delim=".")
    @handler = []
    @default_handler = nil
    @service_hook = nil

    @class_delim = class_delim
    @create = nil
    @parser = nil

    add_multicall     if Config::ENABLE_MULTICALL
    add_introspection if Config::ENABLE_INTROSPECTION
  end

  # Adds +aBlock+ to the list of handlers, with +name+ as the name of
  # the method.
  #
  # Parameters +signature+ and +help+ are used by the Introspection method if
  # specified, where +signature+ is either an Array containing strings each
  # representing a type of it's signature (the first is the return value) or
  # an Array of Arrays if the method has multiple signatures.
  #
  # Value type-names are "int, boolean, double, string, dateTime.iso8601,
  # base64, array, struct".
  #
  # Parameter +help+ is a String with information about how to call this method etc.
  #
  # When a method fails, it can tell the client by throwing an
  # XMLRPC::FaultException like in this example:
  #
  #     s.add_handler("michael.div") do |a,b|
  #       if b == 0
  #         raise XMLRPC::FaultException.new(1, "division by zero")
  #       else
  #         a / b
  #       end
  #     end
  #
  # In the case of <code>b==0</code> the client gets an object back of type
  # XMLRPC::FaultException that has a +faultCode+ and +faultString+ field.
  #
  # This is the second form of ((<add_handler|XMLRPC::BasicServer#add_handler>)).
  # To add an object write:
  #
  #     server.add_handler("michael", MyHandlerClass.new)
  #
  # All public methods of MyHandlerClass are accessible to
  # the XML-RPC clients by <code>michael."name of method"</code>. This is
  # where the +class_delim+ in XMLRPC::BasicServer.new plays it's role, a
  # XML-RPC method-name is defined by +prefix+ + +class_delim+ + <code>"name
  # of method"</code>.
  #
  # The third form of +add_handler is to use XMLRPC::Service::Interface to
  # generate an object, which represents an interface (with signature and
  # help text) for a handler class.
  #
  # The +interface+ parameter must be an instance of XMLRPC::Service::Interface.
  # Adds all methods of +obj+ which are defined in the +interface+ to the server.
  #
  # This is the recommended way of adding services to a server!
  def add_handler(prefix, obj_or_signature=nil, help=nil, &block)
    if block_given?
      # proc-handler
      @handler << [prefix, block, obj_or_signature, help]
    else
      if prefix.kind_of? String
        # class-handler
        raise ArgumentError, "Expected non-nil value" if obj_or_signature.nil?
        @handler << [prefix + @class_delim, obj_or_signature]
      elsif prefix.kind_of? XMLRPC::Service::BasicInterface
        # class-handler with interface
        # add all methods
        @handler += prefix.get_methods(obj_or_signature, @class_delim)
      else
        raise ArgumentError, "Wrong type for parameter 'prefix'"
      end
    end
    self
  end

  # Returns the service-hook, which is called on each service request (RPC)
  # unless it's +nil+.
  def get_service_hook
    @service_hook
  end

  # A service-hook is called for each service request (RPC).
  #
  # You can use a service-hook for example to wrap existing methods and catch
  # exceptions of them or convert values to values recognized by XMLRPC.
  #
  # You can disable it by passing +nil+ as the +handler+ parameter.
  #
  # The service-hook is called with a Proc object along with any parameters.
  #
  # An example:
  #
  #    server.set_service_hook {|obj, *args|
  #      begin
  #        ret = obj.call(*args)  # call the original service-method
  #        # could convert the return value
  #      rescue
  #        # rescue exceptions
  #      end
  #    }
  #
  def set_service_hook(&handler)
    @service_hook = handler
    self
  end

  # Returns the default-handler, which is called when no handler for
  # a method-name is found.
  #
  # It is either a Proc object or +nil+.
  def get_default_handler
    @default_handler
  end

  # Sets +handler+ as the default-handler, which is called when
  # no handler for a method-name is found.
  #
  # +handler+ is a code-block.
  #
  # The default-handler is called with the (XML-RPC) method-name as first
  # argument, and the other arguments are the parameters given by the
  # client-call.
  #
  # If no block is specified the default of XMLRPC::BasicServer is
  # used, which raises a XMLRPC::FaultException saying "method missing".
  def set_default_handler(&handler)
    @default_handler = handler
    self
  end

  # Adds the multi-call handler <code>"system.multicall"</code>.
  def add_multicall
    add_handler("system.multicall", %w(array array), "Multicall Extension") do |arrStructs|
      unless arrStructs.is_a? Array
        raise XMLRPC::FaultException.new(ERR_MC_WRONG_PARAM, "system.multicall expects an array")
      end

      arrStructs.collect {|call|
        if call.is_a? Hash
          methodName = call["methodName"]
          params     = call["params"]

          if params.nil?
            multicall_fault(ERR_MC_MISSING_PARAMS, "Missing params")
          elsif methodName.nil?
            multicall_fault(ERR_MC_MISSING_METHNAME, "Missing methodName")
          else
            if methodName == "system.multicall"
              multicall_fault(ERR_MC_RECURSIVE_CALL, "Recursive system.multicall forbidden")
            else
              unless params.is_a? Array
                multicall_fault(ERR_MC_WRONG_PARAM_PARAMS, "Parameter params have to be an Array")
              else
                ok, val = call_method(methodName, *params)
                if ok
                  # correct return value
                  [val]
                else
                  # exception
                  multicall_fault(val.faultCode, val.faultString)
                end
              end
            end
          end

        else
          multicall_fault(ERR_MC_EXPECTED_STRUCT, "system.multicall expected struct")
        end
      }
    end # end add_handler
    self
  end

  # Adds the introspection handlers <code>"system.listMethods"</code>,
  # <code>"system.methodSignature"</code> and
  # <code>"system.methodHelp"</code>, where only the first one works.
  def add_introspection
    add_handler("system.listMethods",%w(array), "List methods available on this XML-RPC server") do
      methods = []
      @handler.each do |name, obj|
        if obj.kind_of? Proc
          methods << name
        else
          obj.class.public_instance_methods(false).each do |meth|
            methods << "#{name}#{meth}"
          end
        end
      end
      methods
    end

    add_handler("system.methodSignature", %w(array string), "Returns method signature") do |meth|
      sigs = []
      @handler.each do |name, obj, sig|
        if obj.kind_of? Proc and sig != nil and name == meth
          if sig[0].kind_of? Array
            # sig contains multiple signatures, e.g. [["array"], ["array", "string"]]
            sig.each {|s| sigs << s}
          else
            # sig is a single signature, e.g. ["array"]
            sigs << sig
          end
        end
      end
      sigs.uniq! || sigs  # remove eventually duplicated signatures
    end

    add_handler("system.methodHelp", %w(string string), "Returns help on using this method") do |meth|
      help = nil
      @handler.each do |name, obj, sig, hlp|
        if obj.kind_of? Proc and name == meth
          help = hlp
          break
        end
      end
      help || ""
    end

    self
  end



  def process(data)
    method, params = parser().parseMethodCall(data)
    handle(method, *params)
  end

  private

  def multicall_fault(nr, str)
    {"faultCode" => nr, "faultString" => str}
  end

  def dispatch(methodname, *args)
    for name, obj in @handler
      if obj.kind_of? Proc
        next unless methodname == name
      else
        next unless methodname =~ /^#{name}(.+)$/
        next unless obj.respond_to? $1
        obj = obj.method($1)
      end

      if check_arity(obj, args.size)
        if @service_hook.nil?
          return obj.call(*args)
        else
          return @service_hook.call(obj, *args)
        end
      end
    end

    if @default_handler.nil?
      raise XMLRPC::FaultException.new(ERR_METHOD_MISSING, "Method #{methodname} missing or wrong number of parameters!")
    else
      @default_handler.call(methodname, *args)
    end
  end


  # Returns +true+, if the arity of +obj+ matches +n_args+
  def check_arity(obj, n_args)
    ary = obj.arity

    if ary >= 0
      n_args == ary
    else
      n_args >= (ary+1).abs
    end
  end



  def call_method(methodname, *args)
    begin
      [true, dispatch(methodname, *args)]
    rescue XMLRPC::FaultException => e
      [false, e]
    rescue Exception => e
      [false, XMLRPC::FaultException.new(ERR_UNCAUGHT_EXCEPTION, "Uncaught exception #{e.message} in method #{methodname}")]
    end
  end

  def handle(methodname, *args)
    create().methodResponse(*call_method(methodname, *args))
  end


end


# Implements a CGI-based XML-RPC server.
#
#     require "xmlrpc/server"
#
#     s = XMLRPC::CGIServer.new
#
#     s.add_handler("michael.add") do |a,b|
#       a + b
#     end
#
#     s.add_handler("michael.div") do |a,b|
#       if b == 0
#         raise XMLRPC::FaultException.new(1, "division by zero")
#       else
#         a / b
#       end
#     end
#
#     s.set_default_handler do |name, *args|
#       raise XMLRPC::FaultException.new(-99, "Method #{name} missing" +
#                                        " or wrong number of parameters!")
#     end
#
#     s.serve
#
#
# <b>Note:</b> Make sure that you don't write to standard-output in a
# handler, or in any other part of your program, this would cause a CGI-based
# server to fail!
class CGIServer < BasicServer
  @@obj = nil

  # Creates a new XMLRPC::CGIServer instance.
  #
  # All parameters given are by-passed to XMLRPC::BasicServer.new.
  #
  # You can only create <b>one</b> XMLRPC::CGIServer instance, because more
  # than one makes no sense.
  def CGIServer.new(*a)
    @@obj = super(*a) if @@obj.nil?
    @@obj
  end

  def initialize(*a)
    super(*a)
  end

  # Call this after you have added all you handlers to the server.
  #
  # This method processes a XML-RPC method call and sends the answer
  # back to the client.
  def serve
    catch(:exit_serve) {
      length = ENV['CONTENT_LENGTH'].to_i

      http_error(405, "Method Not Allowed") unless ENV['REQUEST_METHOD'] == "POST"
      http_error(400, "Bad Request")        unless parse_content_type(ENV['CONTENT_TYPE']).first == "text/xml"
      http_error(411, "Length Required")    unless length > 0

      # TODO: do we need a call to binmode?
      $stdin.binmode if $stdin.respond_to? :binmode
      data = $stdin.read(length)

      http_error(400, "Bad Request")        if data.nil? or data.bytesize != length

      http_write(process(data), "Content-type" => "text/xml; charset=utf-8")
    }
  end


  private

  def http_error(status, message)
    err = "#{status} #{message}"
    msg = <<-"MSGEND"
      <html>
        <head>
          <title>#{err}</title>
        </head>
        <body>
          <h1>#{err}</h1>
          <p>Unexpected error occurred while processing XML-RPC request!</p>
        </body>
      </html>
    MSGEND

    http_write(msg, "Status" => err, "Content-type" => "text/html")
    throw :exit_serve # exit from the #serve method
  end

  def http_write(body, header)
    h = {}
    header.each {|key, value| h[key.to_s.capitalize] = value}
    h['Status']         ||= "200 OK"
    h['Content-length'] ||= body.bytesize.to_s

    str = ""
    h.each {|key, value| str << "#{key}: #{value}\r\n"}
    str << "\r\n#{body}"

    print str
  end

end


# Implements a XML-RPC server, which works with Apache mod_ruby.
#
# Use it in the same way as XMLRPC::CGIServer!
class ModRubyServer < BasicServer

  # Creates a new XMLRPC::ModRubyServer instance.
  #
  # All parameters given are by-passed to XMLRPC::BasicServer.new.
  def initialize(*a)
    @ap = Apache::request
    super(*a)
  end

  # Call this after you have added all you handlers to the server.
  #
  # This method processes a XML-RPC method call and sends the answer
  # back to the client.
  def serve
    catch(:exit_serve) {
      header = {}
      @ap.headers_in.each {|key, value| header[key.capitalize] = value}

      length = header['Content-length'].to_i

      http_error(405, "Method Not Allowed") unless @ap.request_method  == "POST"
      http_error(400, "Bad Request")        unless parse_content_type(header['Content-type']).first == "text/xml"
      http_error(411, "Length Required")    unless length > 0

      # TODO: do we need a call to binmode?
      @ap.binmode
      data = @ap.read(length)

      http_error(400, "Bad Request")        if data.nil? or data.bytesize != length

      http_write(process(data), 200, "Content-type" => "text/xml; charset=utf-8")
    }
  end


  private

  def http_error(status, message)
    err = "#{status} #{message}"
    msg = <<-"MSGEND"
      <html>
        <head>
          <title>#{err}</title>
        </head>
        <body>
          <h1>#{err}</h1>
          <p>Unexpected error occurred while processing XML-RPC request!</p>
        </body>
      </html>
    MSGEND

    http_write(msg, status, "Status" => err, "Content-type" => "text/html")
    throw :exit_serve # exit from the #serve method
  end

  def http_write(body, status, header)
    h = {}
    header.each {|key, value| h[key.to_s.capitalize] = value}
    h['Status']         ||= "200 OK"
    h['Content-length'] ||= body.bytesize.to_s

    h.each {|key, value| @ap.headers_out[key] = value }
    @ap.content_type = h["Content-type"]
    @ap.status = status.to_i
    @ap.send_http_header

    @ap.print body
  end

end


class WEBrickServlet < BasicServer; end # forward declaration

# Implements a standalone XML-RPC server. The method XMLRPC::Server#serve is
# left if a SIGHUP is sent to the program.
#
#    require "xmlrpc/server"
#
#   s = XMLRPC::Server.new(8080)
#
#   s.add_handler("michael.add") do |a,b|
#     a + b
#   end
#
#   s.add_handler("michael.div") do |a,b|
#     if b == 0
#       raise XMLRPC::FaultException.new(1, "division by zero")
#     else
#       a / b
#     end
#   end
#
#   s.set_default_handler do |name, *args|
#     raise XMLRPC::FaultException.new(-99, "Method #{name} missing" +
#                                      " or wrong number of parameters!")
#   end
#
#   s.serve
class Server < WEBrickServlet

  # Creates a new XMLRPC::Server instance, which is a XML-RPC server
  # listening on the given +port+ and accepts requests for the given +host+,
  # which is +localhost+ by default.
  #
  # The server is not started, to start it you have to call
  # XMLRPC::Server#serve.
  #
  # The optional +audit+ and +debug+ parameters are obsolete!
  #
  # All additionally provided parameters in <code>*a</code> are by-passed to
  # XMLRPC::BasicServer.new.
  def initialize(port=8080, host="127.0.0.1", maxConnections=4, stdlog=$stdout, audit=true, debug=true, *a)
    super(*a)
    require 'webrick'
    @server = WEBrick::HTTPServer.new(:Port => port, :BindAddress => host, :MaxClients => maxConnections,
                                      :Logger => WEBrick::Log.new(stdlog))
    @server.mount("/", self)
  end

  # Call this after you have added all you handlers to the server.
  # This method starts the server to listen for XML-RPC requests and answer them.
  def serve
    signals = %w[INT TERM HUP] & Signal.list.keys
    signals.each { |signal| trap(signal) { @server.shutdown } }

    @server.start
  end

  # Stops and shuts the server down.
  def shutdown
    @server.shutdown
  end

end


# Implements a servlet for use with WEBrick, a pure Ruby (HTTP) server
# framework.
#
#     require "webrick"
#     require "xmlrpc/server"
#
#     s = XMLRPC::WEBrickServlet.new
#     s.add_handler("michael.add") do |a,b|
#       a + b
#     end
#
#     s.add_handler("michael.div") do |a,b|
#       if b == 0
#         raise XMLRPC::FaultException.new(1, "division by zero")
#       else
#         a / b
#       end
#     end
#
#     s.set_default_handler do |name, *args|
#       raise XMLRPC::FaultException.new(-99, "Method #{name} missing" +
#                                        " or wrong number of parameters!")
#     end
#
#     httpserver = WEBrick::HTTPServer.new(:Port => 8080)
#     httpserver.mount("/RPC2", s)
#     trap("HUP") { httpserver.shutdown }   # use 1 instead of "HUP" on Windows
#     httpserver.start
class WEBrickServlet < BasicServer
  def initialize(*a)
    super
    require "webrick/httpstatus"
    @valid_ip = nil
  end

  # Deprecated from WEBrick/1.2.2, but does not break anything.
  def require_path_info?
    false
  end

  def get_instance(config, *options)
    # TODO: set config & options
    self
  end

  # Specifies the valid IP addresses that are allowed to connect to the server.
  #
  # Each IP is either a String or a Regexp.
  def set_valid_ip(*ip_addr)
    if ip_addr.size == 1 and ip_addr[0].nil?
      @valid_ip = nil
    else
      @valid_ip = ip_addr
    end
  end

  # Return the valid IP addresses that are allowed to connect to the server.
  #
  # See also, XMLRPC::Server#set_valid_ip
  def get_valid_ip
    @valid_ip
  end

  def service(request, response)

    if @valid_ip
      raise WEBrick::HTTPStatus::Forbidden unless @valid_ip.any? { |ip| request.peeraddr[3] =~ ip }
    end

    if request.request_method != "POST"
      raise WEBrick::HTTPStatus::MethodNotAllowed,
            "unsupported method `#{request.request_method}'."
    end

    if parse_content_type(request['Content-type']).first != "text/xml"
      raise WEBrick::HTTPStatus::BadRequest
    end

    length = (request['Content-length'] || 0).to_i

    raise WEBrick::HTTPStatus::LengthRequired unless length > 0

    data = request.body

    if data.nil? or data.bytesize != length
      raise WEBrick::HTTPStatus::BadRequest
    end

    resp = process(data)
    if resp.nil? or resp.bytesize <= 0
      raise WEBrick::HTTPStatus::InternalServerError
    end

    response.status = 200
    response['Content-Length'] = resp.bytesize
    response['Content-Type']   = "text/xml; charset=utf-8"
    response.body = resp
  end
end


end # module XMLRPC


=begin
= History
    $Id: server.rb 44049 2013-12-07 10:27:27Z a_matsuda $
=end

lib64/ruby/2.2.0/xmlrpc/marshal.rb000064400000002734150402106370012371 0ustar00#
# Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de)
#
# $Id: marshal.rb 36958 2012-09-13 02:22:10Z zzak $
#

require "xmlrpc/parser"
require "xmlrpc/create"
require "xmlrpc/config"
require "xmlrpc/utils"

module XMLRPC # :nodoc:

  # Marshalling of XMLRPC::Create#methodCall and XMLRPC::Create#methodResponse
  class Marshal
    include ParserWriterChooseMixin

    class << self

      def dump_call( methodName, *params )
        new.dump_call( methodName, *params )
      end

      def dump_response( param )
        new.dump_response( param )
      end

      def load_call( stringOrReadable )
        new.load_call( stringOrReadable )
      end

      def load_response( stringOrReadable )
        new.load_response( stringOrReadable )
      end

      alias dump dump_response
      alias load load_response

    end # class self

    def initialize( parser = nil, writer = nil )
      set_parser( parser )
      set_writer( writer )
    end

    def dump_call( methodName, *params )
      create.methodCall( methodName, *params )
    end

    def dump_response( param )
      create.methodResponse( ! param.kind_of?( XMLRPC::FaultException ) , param )
    end

    # Returns <code>[ methodname, params ]</code>
    def load_call( stringOrReadable )
      parser.parseMethodCall( stringOrReadable )
    end

    # Returns +paramOrFault+
    def load_response( stringOrReadable )
      parser.parseMethodResponse( stringOrReadable )[1]
    end

  end # class Marshal

end
lib64/ruby/2.2.0/xmlrpc/config.rb000064400000002003150402106370012174 0ustar00#
# $Id: config.rb 47902 2014-10-13 08:53:16Z hsbt $
# Configuration file for XML-RPC for Ruby
#

module XMLRPC # :nodoc:

  module Config

    # or XMLWriter::XMLParser
    DEFAULT_WRITER = XMLWriter::Simple

    # === Available parsers
    #
    # * XMLParser::NQXMLTreeParser
    # * XMLParser::NQXMLStreamParser
    # * XMLParser::XMLTreeParser
    # * XMLParser::XMLStreamParser (fastest)
    # * XMLParser::REXMLStreamParser
    # * XMLParser::XMLScanStreamParser
    # * XMLParser::LibXMLStreamParser
    DEFAULT_PARSER = XMLParser::REXMLStreamParser

    # enable <code><nil/></code> tag
    ENABLE_NIL_CREATE    = false
    ENABLE_NIL_PARSER    = false

    # allows integers greater than 32-bit if +true+
    ENABLE_BIGINT        = false

    # enable marshalling Ruby objects which include XMLRPC::Marshallable
    ENABLE_MARSHALLING   = true

    # enable multiCall extension by default
    ENABLE_MULTICALL     = false

    # enable Introspection extension by default
    ENABLE_INTROSPECTION = false

  end

end

lib64/ruby/2.2.0/xmlrpc/client.rb000064400000045542150402106370012224 0ustar00# xmlrpc/client.rb
# Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de)
#
# Released under the same term of license as Ruby.
#
# History
#   $Id: client.rb 54069 2016-03-09 14:01:02Z nagachika $
#
require "xmlrpc/parser"
require "xmlrpc/create"
require "xmlrpc/config"
require "xmlrpc/utils"     # ParserWriterChooseMixin
require "net/http"
require "uri"

module XMLRPC # :nodoc:

  # Provides remote procedure calls to a XML-RPC server.
  #
  # After setting the connection-parameters with XMLRPC::Client.new which
  # creates a new XMLRPC::Client instance, you can execute a remote procedure
  # by sending the XMLRPC::Client#call or XMLRPC::Client#call2
  # message to this new instance.
  #
  # The given parameters indicate which method to call on the remote-side and
  # of course the parameters for the remote procedure.
  #
  #     require "xmlrpc/client"
  #
  #     server = XMLRPC::Client.new("www.ruby-lang.org", "/RPC2", 80)
  #     begin
  #       param = server.call("michael.add", 4, 5)
  #       puts "4 + 5 = #{param}"
  #     rescue XMLRPC::FaultException => e
  #       puts "Error:"
  #       puts e.faultCode
  #       puts e.faultString
  #     end
  #
  # or
  #
  #     require "xmlrpc/client"
  #
  #     server = XMLRPC::Client.new("www.ruby-lang.org", "/RPC2", 80)
  #     ok, param = server.call2("michael.add", 4, 5)
  #     if ok then
  #       puts "4 + 5 = #{param}"
  #     else
  #       puts "Error:"
  #       puts param.faultCode
  #       puts param.faultString
  #     end
  class Client

    USER_AGENT = "XMLRPC::Client (Ruby #{RUBY_VERSION})"

    include ParserWriterChooseMixin
    include ParseContentType


    # Creates an object which represents the remote XML-RPC server on the
    # given +host+. If the server is CGI-based, +path+ is the
    # path to the CGI-script, which will be called, otherwise (in the
    # case of a standalone server) +path+ should be <tt>"/RPC2"</tt>.
    # +port+ is the port on which the XML-RPC server listens.
    #
    # If +proxy_host+ is given, then a proxy server listening at
    # +proxy_host+ is used. +proxy_port+ is the port of the
    # proxy server.
    #
    # Default values for +host+, +path+ and +port+ are 'localhost', '/RPC2' and
    # '80' respectively using SSL '443'.
    #
    # If +user+ and +password+ are given, each time a request is sent,
    # an Authorization header is sent. Currently only Basic Authentication is
    # implemented, no Digest.
    #
    # If +use_ssl+ is set to +true+, communication over SSL is enabled.
    #
    # Parameter +timeout+ is the time to wait for a XML-RPC response, defaults to 30.
    def initialize(host=nil, path=nil, port=nil, proxy_host=nil, proxy_port=nil,
                   user=nil, password=nil, use_ssl=nil, timeout=nil)

      @http_header_extra = nil
      @http_last_response = nil
      @cookie = nil

      @host       = host || "localhost"
      @path       = path || "/RPC2"
      @proxy_host = proxy_host
      @proxy_port = proxy_port
      @proxy_host ||= 'localhost' if @proxy_port != nil
      @proxy_port ||= 8080 if @proxy_host != nil
      @use_ssl    = use_ssl || false
      @timeout    = timeout || 30

      if use_ssl
        require "net/https"
        @port = port || 443
      else
        @port = port || 80
      end

      @user, @password = user, password

      set_auth

      # convert ports to integers
      @port = @port.to_i if @port != nil
      @proxy_port = @proxy_port.to_i if @proxy_port != nil

      # HTTP object for synchronous calls
      @http = net_http(@host, @port, @proxy_host, @proxy_port)
      @http.use_ssl = @use_ssl if @use_ssl
      @http.read_timeout = @timeout
      @http.open_timeout = @timeout

      @parser = nil
      @create = nil
    end


    class << self

    # Creates an object which represents the remote XML-RPC server at the
    # given +uri+. The URI should have a host, port, path, user and password.
    # Example: https://user:password@host:port/path
    #
    # Raises an ArgumentError if the +uri+ is invalid,
    # or if the protocol isn't http or https.
    #
    # If a +proxy+ is given it should be in the form of "host:port".
    #
    # The optional +timeout+ defaults to 30 seconds.
    def new2(uri, proxy=nil, timeout=nil)
      begin
        url = URI(uri)
      rescue URI::InvalidURIError => e
        raise ArgumentError, e.message, e.backtrace
      end

      unless URI::HTTP === url
        raise ArgumentError, "Wrong protocol specified. Only http or https allowed!"
      end

      proto  = url.scheme
      user   = url.user
      passwd = url.password
      host   = url.host
      port   = url.port
      path   = url.path.empty? ? nil : url.request_uri

      proxy_host, proxy_port = (proxy || "").split(":")
      proxy_port = proxy_port.to_i if proxy_port

      self.new(host, path, port, proxy_host, proxy_port, user, passwd, (proto == "https"), timeout)
    end

    alias new_from_uri new2

    # Receives a Hash and calls XMLRPC::Client.new
    # with the corresponding values.
    #
    # The +hash+ parameter has following case-insensitive keys:
    # * host
    # * path
    # * port
    # * proxy_host
    # * proxy_port
    # * user
    # * password
    # * use_ssl
    # * timeout
    def new3(hash={})

      # convert all keys into lowercase strings
      h = {}
      hash.each { |k,v| h[k.to_s.downcase] = v }

      self.new(h['host'], h['path'], h['port'], h['proxy_host'], h['proxy_port'], h['user'], h['password'],
               h['use_ssl'], h['timeout'])
    end

    alias new_from_hash new3

    end


    # Returns the Net::HTTP object for the client. If you want to
    # change HTTP client options except header, cookie, timeout,
    # user and password, use Net::HTTP directly.
    #
    # Since 2.1.0.
    attr_reader :http

    # Add additional HTTP headers to the request
    attr_accessor :http_header_extra

    # Returns the Net::HTTPResponse object of the last RPC.
    attr_reader :http_last_response

    # Get and set the HTTP Cookie header.
    attr_accessor :cookie


    # Return the corresponding attributes.
    attr_reader :timeout, :user, :password

    # Sets the Net::HTTP#read_timeout and Net::HTTP#open_timeout to
    # +new_timeout+
    def timeout=(new_timeout)
      @timeout = new_timeout
      @http.read_timeout = @timeout
      @http.open_timeout = @timeout
    end

    # Changes the user for the Basic Authentication header to +new_user+
    def user=(new_user)
      @user = new_user
      set_auth
    end

    # Changes the password for the Basic Authentication header to
    # +new_password+
    def password=(new_password)
      @password = new_password
      set_auth
    end

    # Invokes the method named +method+ with the parameters given by
    # +args+ on the XML-RPC server.
    #
    # The +method+ parameter is converted into a String and should
    # be a valid XML-RPC method-name.
    #
    # Each parameter of +args+ must be of one of the following types,
    # where Hash, Struct and Array can contain any of these listed _types_:
    #
    # * Fixnum, Bignum
    # * TrueClass, FalseClass, +true+, +false+
    # * String, Symbol
    # * Float
    # * Hash, Struct
    # * Array
    # * Date, Time, XMLRPC::DateTime
    # * XMLRPC::Base64
    # * A Ruby object which class includes XMLRPC::Marshallable
    #   (only if Config::ENABLE_MARSHALLING is +true+).
    #   That object is converted into a hash, with one additional key/value
    #   pair <code>___class___</code> which contains the class name
    #   for restoring that object later.
    #
    # The method returns the return-value from the Remote Procedure Call.
    #
    # The type of the return-value is one of the types shown above.
    #
    # A Bignum is only allowed when it fits in 32-bit. A XML-RPC
    # +dateTime.iso8601+ type is always returned as a XMLRPC::DateTime object.
    # Struct is never returned, only a Hash, the same for a Symbol, where as a
    # String is always returned. XMLRPC::Base64 is returned as a String from
    # xmlrpc4r version 1.6.1 on.
    #
    # If the remote procedure returned a fault-structure, then a
    # XMLRPC::FaultException exception is raised, which has two accessor-methods
    # +faultCode+ an Integer, and +faultString+ a String.
    def call(method, *args)
      ok, param = call2(method, *args)
      if ok
        param
      else
        raise param
      end
    end

    # The difference between this method and XMLRPC::Client#call is, that
    # this method will <b>NOT</b> raise a XMLRPC::FaultException exception.
    #
    # The method returns an array of two values. The first value indicates if
    # the second value is +true+ or an XMLRPC::FaultException.
    #
    # Both are explained in XMLRPC::Client#call.
    #
    # Simple to remember: The "2" in "call2" denotes the number of values it returns.
    def call2(method, *args)
      request = create().methodCall(method, *args)
      data = do_rpc(request, false)
      parser().parseMethodResponse(data)
    end

    # Similar to XMLRPC::Client#call, however can be called concurrently and
    # use a new connection for each request. In contrast to the corresponding
    # method without the +_async+ suffix, which use connect-alive (one
    # connection for all requests).
    #
    # Note, that you have to use Thread to call these methods concurrently.
    # The following example calls two methods concurrently:
    #
    #   Thread.new {
    #     p client.call_async("michael.add", 4, 5)
    #   }
    #
    #   Thread.new {
    #     p client.call_async("michael.div", 7, 9)
    #   }
    #
    def call_async(method, *args)
      ok, param = call2_async(method, *args)
      if ok
        param
      else
        raise param
      end
    end

    # Same as XMLRPC::Client#call2, but can be called concurrently.
    #
    # See also XMLRPC::Client#call_async
    def call2_async(method, *args)
      request = create().methodCall(method, *args)
      data = do_rpc(request, true)
      parser().parseMethodResponse(data)
    end


    # You can use this method to execute several methods on a XMLRPC server
    # which support the multi-call extension.
    #
    #     s.multicall(
    #       ['michael.add', 3, 4],
    #       ['michael.sub', 4, 5]
    #     )
    #     # => [7, -1]
    def multicall(*methods)
      ok, params = multicall2(*methods)
      if ok
        params
      else
        raise params
      end
    end

    # Same as XMLRPC::Client#multicall, but returns two parameters instead of
    # raising an XMLRPC::FaultException.
    #
    # See XMLRPC::Client#call2
    def multicall2(*methods)
      gen_multicall(methods, false)
    end

    # Similar to XMLRPC::Client#multicall, however can be called concurrently and
    # use a new connection for each request. In contrast to the corresponding
    # method without the +_async+ suffix, which use connect-alive (one
    # connection for all requests).
    #
    # Note, that you have to use Thread to call these methods concurrently.
    # The following example calls two methods concurrently:
    #
    #   Thread.new {
    #     p client.multicall_async("michael.add", 4, 5)
    #   }
    #
    #   Thread.new {
    #     p client.multicall_async("michael.div", 7, 9)
    #   }
    #
    def multicall_async(*methods)
      ok, params = multicall2_async(*methods)
      if ok
        params
      else
        raise params
      end
    end

    # Same as XMLRPC::Client#multicall2, but can be called concurrently.
    #
    # See also XMLRPC::Client#multicall_async
    def multicall2_async(*methods)
      gen_multicall(methods, true)
    end


    # Returns an object of class XMLRPC::Client::Proxy, initialized with
    # +prefix+ and +args+.
    #
    # A proxy object returned by this method behaves like XMLRPC::Client#call,
    # i.e. a call on that object will raise a XMLRPC::FaultException when a
    # fault-structure is returned by that call.
    def proxy(prefix=nil, *args)
      Proxy.new(self, prefix, args, :call)
    end

    # Almost the same like XMLRPC::Client#proxy only that a call on the returned
    # XMLRPC::Client::Proxy object will return two parameters.
    #
    # See XMLRPC::Client#call2
    def proxy2(prefix=nil, *args)
      Proxy.new(self, prefix, args, :call2)
    end

    # Similar to XMLRPC::Client#proxy, however can be called concurrently and
    # use a new connection for each request. In contrast to the corresponding
    # method without the +_async+ suffix, which use connect-alive (one
    # connection for all requests).
    #
    # Note, that you have to use Thread to call these methods concurrently.
    # The following example calls two methods concurrently:
    #
    #   Thread.new {
    #     p client.proxy_async("michael.add", 4, 5)
    #   }
    #
    #   Thread.new {
    #     p client.proxy_async("michael.div", 7, 9)
    #   }
    #
    def proxy_async(prefix=nil, *args)
      Proxy.new(self, prefix, args, :call_async)
    end

    # Same as XMLRPC::Client#proxy2, but can be called concurrently.
    #
    # See also XMLRPC::Client#proxy_async
    def proxy2_async(prefix=nil, *args)
      Proxy.new(self, prefix, args, :call2_async)
    end


    private

    def net_http(host, port, proxy_host, proxy_port)
      Net::HTTP.new host, port, proxy_host, proxy_port
    end

    def dup_net_http
      http = net_http(@http.address,
                      @http.port,
                      @http.proxy_address,
                      @http.proxy_port)
      http.proxy_user = @http.proxy_user
      http.proxy_pass = @http.proxy_pass
      if @http.use_ssl?
        http.use_ssl = true
        Net::HTTP::SSL_ATTRIBUTES.each do |attribute|
          http.__send__("#{attribute}=", @http.__send__(attribute))
        end
      end
      http.read_timeout = @http.read_timeout
      http.open_timeout = @http.open_timeout
      http
    end

    def set_auth
      if @user.nil?
        @auth = nil
      else
        a =  "#@user"
        a << ":#@password" if @password != nil
        @auth = "Basic " + [a].pack("m0")
      end
    end

    def do_rpc(request, async=false)
      header = {
       "User-Agent"     =>  USER_AGENT,
       "Content-Type"   => "text/xml; charset=utf-8",
       "Content-Length" => request.bytesize.to_s,
       "Connection"     => (async ? "close" : "keep-alive")
      }

      header["Cookie"] = @cookie        if @cookie
      header.update(@http_header_extra) if @http_header_extra

      if @auth != nil
        # add authorization header
        header["Authorization"] = @auth
      end

      resp = nil
      @http_last_response = nil

      if async
        # use a new HTTP object for each call
        http = dup_net_http

        # post request
        http.start {
          resp = http.request_post(@path, request, header)
        }
      else
        # reuse the HTTP object for each call => connection alive is possible
        # we must start connection explicitly first time so that http.request
        # does not assume that we don't want keepalive
        @http.start if not @http.started?

        # post request
        resp = @http.request_post(@path, request, header)
      end

      @http_last_response = resp

      data = resp.body

      if resp.code == "401"
        # Authorization Required
        raise "Authorization failed.\nHTTP-Error: #{resp.code} #{resp.message}"
      elsif resp.code[0,1] != "2"
        raise "HTTP-Error: #{resp.code} #{resp.message}"
      end

      # assume text/xml on instances where Content-Type header is not set
      ct_expected = resp["Content-Type"] || 'text/xml'
      ct = parse_content_type(ct_expected).first
      if ct != "text/xml"
        if ct == "text/html"
          raise "Wrong content-type (received '#{ct}' but expected 'text/xml'): \n#{data}"
        else
          raise "Wrong content-type (received '#{ct}' but expected 'text/xml')"
        end
      end

      expected = resp["Content-Length"] || "<unknown>"
      if data.nil? or data.bytesize == 0
        raise "Wrong size. Was #{data.bytesize}, should be #{expected}"
      end

      parse_set_cookies(resp.get_fields("Set-Cookie"))

      return data
    end

    def parse_set_cookies(set_cookies)
      return if set_cookies.nil?
      return if set_cookies.empty?
      require 'webrick/cookie'
      pairs = {}
      set_cookies.each do |set_cookie|
        cookie = WEBrick::Cookie.parse_set_cookie(set_cookie)
        pairs.delete(cookie.name)
        pairs[cookie.name] = cookie.value
      end
      cookies = pairs.collect do |name, value|
        WEBrick::Cookie.new(name, value).to_s
      end
      @cookie = cookies.join("; ")
    end

    def gen_multicall(methods=[], async=false)
      meth = :call2
      meth = :call2_async if async

      ok, params = self.send(meth, "system.multicall",
        methods.collect {|m| {'methodName' => m[0], 'params' => m[1..-1]} }
      )

      if ok
        params = params.collect do |param|
          if param.is_a? Array
            param[0]
          elsif param.is_a? Hash
            XMLRPC::FaultException.new(param["faultCode"], param["faultString"])
          else
            raise "Wrong multicall return value"
          end
        end
      end

      return ok, params
    end



    # XML-RPC calls look nicer!
    #
    # You can call any method onto objects of that class - the object handles
    # XMLRPC::Client::Proxy#method_missing and will forward the method call to
    # a XML-RPC server.
    #
    # Don't use this class directly, instead use the public instance method
    # XMLRPC::Client#proxy or XMLRPC::Client#proxy2.
    #
    #     require "xmlrpc/client"
    #
    #     server = XMLRPC::Client.new("www.ruby-lang.org", "/RPC2", 80)
    #
    #     michael  = server.proxy("michael")
    #     michael2 = server.proxy("michael", 4)
    #
    #     # both calls should return the same value '9'.
    #     p michael.add(4,5)
    #     p michael2.add(5)
    class Proxy

      # Creates an object which provides XMLRPC::Client::Proxy#method_missing.
      #
      # The given +server+ must be an instance of XMLRPC::Client, which is the
      # XML-RPC server to be used for a XML-RPC call.
      #
      # +prefix+ and +delim+ will be prepended to the method name called onto this object.
      #
      # An optional parameter +meth+ is the method to use for a RPC.
      # It can be either, call, call2, call_async, call2_async
      #
      # +args+ are arguments which are automatically given to every XML-RPC
      # call before being provided through +method_missing+.
      def initialize(server, prefix, args=[], meth=:call, delim=".")
        @server = server
        @prefix = prefix ? prefix + delim : ""
        @args   = args
        @meth   = meth
      end

      # Every method call is forwarded to the XML-RPC server defined in
      # XMLRPC::Client::Proxy#new.
      #
      # Note: Inherited methods from class Object cannot be used as XML-RPC
      # names, because they get around +method_missing+.
      def method_missing(mid, *args)
        pre = @prefix + mid.to_s
        arg = @args + args
        @server.send(@meth, pre, *arg)
      end

    end # class Proxy

  end # class Client

end # module XMLRPC
lib64/ruby/2.2.0/xmlrpc/base64.rb000064400000002640150402106370012022 0ustar00#
# xmlrpc/base64.rb
# Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de)
#
# Released under the same term of license as Ruby.

module XMLRPC # :nodoc:

# This class is necessary for 'xmlrpc4r' to determine that a string should
# be transmitted base64-encoded and not as a raw-string.
#
# You can use XMLRPC::Base64 on the client and server-side as a
# parameter and/or return-value.
class Base64

  # Creates a new XMLRPC::Base64 instance with string +str+ as the
  # internal string. When +state+ is +:dec+ it assumes that the
  # string +str+ is not in base64 format (perhaps already decoded),
  # otherwise if +state+ is +:enc+ it decodes +str+
  # and stores it as the internal string.
  def initialize(str, state = :dec)
    case state
    when :enc
      @str = Base64.decode(str)
    when :dec
      @str = str
    else
      raise ArgumentError, "wrong argument; either :enc or :dec"
    end
  end

  # Returns the decoded internal string.
  def decoded
    @str
  end

  # Returns the base64 encoded internal string.
  def encoded
    Base64.encode(@str)
  end


  # Decodes string +str+ with base64 and returns that value.
  def Base64.decode(str)
    str.gsub(/\s+/, "").unpack("m")[0]
  end

  # Encodes string +str+ with base64 and returns that value.
  def Base64.encode(str)
    [str].pack("m")
  end

end


end # module XMLRPC


=begin
= History
    $Id: base64.rb 36958 2012-09-13 02:22:10Z zzak $
=end
lib64/ruby/2.2.0/xmlrpc/parser.rb000064400000051367150402106370012244 0ustar00# Copyright (C) 2001, 2002, 2003 by Michael Neumann (mneumann@ntecs.de)
#
# $Id: parser.rb 47902 2014-10-13 08:53:16Z hsbt $
#


require "date"
require "xmlrpc/base64"
require "xmlrpc/datetime"


module NQXML
  class Node

    def removeChild(node)
      @children.delete(node)
    end
    def childNodes
      @children
    end
    def hasChildNodes
      not @children.empty?
    end
    def [] (index)
      @children[index]
    end

    def nodeType
      if @entity.instance_of? NQXML::Text then :TEXT
      elsif @entity.instance_of? NQXML::Comment then :COMMENT
      #elsif @entity.instance_of? NQXML::Element then :ELEMENT
      elsif @entity.instance_of? NQXML::Tag then :ELEMENT
      else :ELSE
      end
    end

    def nodeValue
      #TODO: error when wrong Entity-type
      @entity.text
    end
    def nodeName
      #TODO: error when wrong Entity-type
      @entity.name
    end
  end # class Node
end # module NQXML

module XMLRPC # :nodoc:

  # Raised when the remote procedure returns a fault-structure, which has two
  # accessor-methods +faultCode+ an Integer, and +faultString+ a String.
  class FaultException < StandardError
    attr_reader :faultCode, :faultString

    # Creates a new XMLRPC::FaultException instance.
    #
    # +faultString+ is passed to StandardError as the +msg+ of the Exception.
    def initialize(faultCode, faultString)
      @faultCode   = faultCode
      @faultString = faultString
      super(@faultString)
    end

    # The +faultCode+ and +faultString+ of the exception in a Hash.
    def to_h
      {"faultCode" => @faultCode, "faultString" => @faultString}
    end
  end

  # Helper class used to convert types.
  module Convert

    # Converts a String to an Integer
    #
    # See also String.to_i
    def self.int(str)
      str.to_i
    end

    # Converts a String to +true+ or +false+
    #
    # Raises an exception if +str+ is not +0+ or +1+
    def self.boolean(str)
      case str
      when "0" then false
      when "1" then true
      else
        raise "RPC-value of type boolean is wrong"
      end
    end

    # Converts a String to a Float
    #
    # See also String.to_f
    def self.double(str)
      str.to_f
    end

    # Converts a the given +str+ to a +dateTime.iso8601+ formatted date.
    #
    # Raises an exception if the String isn't in +dateTime.iso8601+ format.
    #
    # See also, XMLRPC::DateTime
    def self.dateTime(str)
      case str
      when /^(-?\d\d\d\d)-?(\d\d)-?(\d\d)T(\d\d):(\d\d):(\d\d)(?:Z|([+-])(\d\d):?(\d\d))?$/
        a = [$1, $2, $3, $4, $5, $6].collect{|i| i.to_i}
        if $7
          ofs = $8.to_i*3600 + $9.to_i*60
          ofs = -ofs if $7=='+'
          utc = Time.utc(*a) + ofs
          a = [ utc.year, utc.month, utc.day, utc.hour, utc.min, utc.sec ]
        end
        XMLRPC::DateTime.new(*a)
      when /^(-?\d\d)-?(\d\d)-?(\d\d)T(\d\d):(\d\d):(\d\d)(Z|([+-]\d\d):(\d\d))?$/
        a = [$1, $2, $3, $4, $5, $6].collect{|i| i.to_i}
        if a[0] < 70
          a[0] += 2000
        else
          a[0] += 1900
        end
        if $7
          ofs = $8.to_i*3600 + $9.to_i*60
          ofs = -ofs if $7=='+'
          utc = Time.utc(*a) + ofs
          a = [ utc.year, utc.month, utc.day, utc.hour, utc.min, utc.sec ]
        end
        XMLRPC::DateTime.new(*a)
      else
        raise "wrong dateTime.iso8601 format " + str
      end
    end

    # Decodes the given +str+ using XMLRPC::Base64.decode
    def self.base64(str)
      XMLRPC::Base64.decode(str)
    end

    # Converts the given +hash+ to a marshalled object.
    #
    # Returns the given +hash+ if an exception occurs.
    def self.struct(hash)
      # convert to marshalled object
      klass = hash["___class___"]
      if klass.nil? or Config::ENABLE_MARSHALLING == false
        hash
      else
        begin
          mod = Module
          klass.split("::").each {|const| mod = mod.const_get(const.strip)}

          obj = mod.allocate

          hash.delete "___class___"
          hash.each {|key, value|
            obj.instance_variable_set("@#{ key }", value) if key =~ /^([a-zA-Z_]\w*)$/
          }
          obj
        rescue
          hash
        end
      end
    end

    # Converts the given +hash+ to an XMLRPC::FaultException object by passing
    # the +faultCode+ and +faultString+ attributes of the Hash to
    # XMLRPC::FaultException.new
    #
    # Raises an Exception if the given +hash+ doesn't meet the requirements.
    # Those requirements being:
    # * 2 keys
    # * <code>'faultCode'</code> key is an Integer
    # * <code>'faultString'</code> key is a String
    def self.fault(hash)
      if hash.kind_of? Hash and hash.size == 2 and
        hash.has_key? "faultCode" and hash.has_key? "faultString" and
        hash["faultCode"].kind_of? Integer and hash["faultString"].kind_of? String

        XMLRPC::FaultException.new(hash["faultCode"], hash["faultString"])
      else
        raise "wrong fault-structure: #{hash.inspect}"
      end
    end

  end # module Convert

  # Parser for XML-RPC call and response
  module XMLParser

    class AbstractTreeParser

      def parseMethodResponse(str)
        methodResponse_document(createCleanedTree(str))
      end

      def parseMethodCall(str)
        methodCall_document(createCleanedTree(str))
      end

      private

      # Removes all whitespaces but in the tags i4, i8, int, boolean....
      # and all comments
      def removeWhitespacesAndComments(node)
        remove = []
        childs = node.childNodes.to_a
        childs.each do |nd|
          case _nodeType(nd)
          when :TEXT
            # TODO: add nil?
            unless %w(i4 i8 int boolean string double dateTime.iso8601 base64).include? node.nodeName

               if node.nodeName == "value"
                 if not node.childNodes.to_a.detect {|n| _nodeType(n) == :ELEMENT}.nil?
                   remove << nd if nd.nodeValue.strip == ""
                 end
               else
                 remove << nd if nd.nodeValue.strip == ""
               end
            end
          when :COMMENT
            remove << nd
          else
            removeWhitespacesAndComments(nd)
          end
        end

        remove.each { |i| node.removeChild(i) }
      end


      def nodeMustBe(node, name)
        cmp = case name
        when Array
          name.include?(node.nodeName)
        when String
          name == node.nodeName
        else
          raise "error"
        end

        if not cmp then
          raise "wrong xml-rpc (name)"
        end

        node
      end

      # Returns, when successfully the only child-node
      def hasOnlyOneChild(node, name=nil)
        if node.childNodes.to_a.size != 1
          raise "wrong xml-rpc (size)"
        end
        if name != nil then
          nodeMustBe(node.firstChild, name)
        end
      end


      def assert(b)
        if not b then
          raise "assert-fail"
        end
      end

      # The node `node` has empty string or string
      def text_zero_one(node)
        nodes = node.childNodes.to_a.size

        if nodes == 1
          text(node.firstChild)
        elsif nodes == 0
          ""
        else
          raise "wrong xml-rpc (size)"
        end
      end


      def integer(node)
        #TODO: check string for float because to_i returnsa
        #      0 when wrong string
         nodeMustBe(node, %w(i4 i8 int))
        hasOnlyOneChild(node)

        Convert.int(text(node.firstChild))
      end

      def boolean(node)
        nodeMustBe(node, "boolean")
        hasOnlyOneChild(node)

        Convert.boolean(text(node.firstChild))
      end

      def v_nil(node)
        nodeMustBe(node, "nil")
        assert( node.childNodes.to_a.size == 0 )
        nil
      end

      def string(node)
        nodeMustBe(node, "string")
        text_zero_one(node)
      end

      def double(node)
        #TODO: check string for float because to_f returnsa
        #      0.0 when wrong string
        nodeMustBe(node, "double")
        hasOnlyOneChild(node)

        Convert.double(text(node.firstChild))
      end

      def dateTime(node)
        nodeMustBe(node, "dateTime.iso8601")
        hasOnlyOneChild(node)

        Convert.dateTime( text(node.firstChild) )
      end

      def base64(node)
        nodeMustBe(node, "base64")
        #hasOnlyOneChild(node)

        Convert.base64(text_zero_one(node))
      end

      def member(node)
        nodeMustBe(node, "member")
        assert( node.childNodes.to_a.size == 2 )

        [ name(node[0]), value(node[1]) ]
      end

      def name(node)
        nodeMustBe(node, "name")
        #hasOnlyOneChild(node)
        text_zero_one(node)
      end

      def array(node)
        nodeMustBe(node, "array")
        hasOnlyOneChild(node, "data")
        data(node.firstChild)
      end

      def data(node)
        nodeMustBe(node, "data")

        node.childNodes.to_a.collect do |val|
          value(val)
        end
      end

      def param(node)
        nodeMustBe(node, "param")
        hasOnlyOneChild(node, "value")
        value(node.firstChild)
      end

      def methodResponse(node)
        nodeMustBe(node, "methodResponse")
        hasOnlyOneChild(node, %w(params fault))
        child = node.firstChild

        case child.nodeName
        when "params"
          [ true, params(child,false) ]
        when "fault"
          [ false, fault(child) ]
        else
          raise "unexpected error"
        end

      end

      def methodName(node)
        nodeMustBe(node, "methodName")
        hasOnlyOneChild(node)
        text(node.firstChild)
      end

      def params(node, call=true)
        nodeMustBe(node, "params")

        if call
          node.childNodes.to_a.collect do |n|
            param(n)
          end
        else # response (only one param)
          hasOnlyOneChild(node)
          param(node.firstChild)
        end
      end

      def fault(node)
        nodeMustBe(node, "fault")
        hasOnlyOneChild(node, "value")
        f = value(node.firstChild)
        Convert.fault(f)
      end



      # _nodeType is defined in the subclass
      def text(node)
        assert( _nodeType(node) == :TEXT )
        assert( node.hasChildNodes == false )
        assert( node.nodeValue != nil )

        node.nodeValue.to_s
      end

      def struct(node)
        nodeMustBe(node, "struct")

        hash = {}
        node.childNodes.to_a.each do |me|
          n, v = member(me)
          hash[n] = v
        end

        Convert.struct(hash)
      end


      def value(node)
        nodeMustBe(node, "value")
        nodes = node.childNodes.to_a.size
        if nodes == 0
          return ""
        elsif nodes > 1
          raise "wrong xml-rpc (size)"
        end

        child = node.firstChild

        case _nodeType(child)
        when :TEXT
          text_zero_one(node)
        when :ELEMENT
          case child.nodeName
          when "i4", "i8", "int"  then integer(child)
          when "boolean"          then boolean(child)
          when "string"           then string(child)
          when "double"           then double(child)
          when "dateTime.iso8601" then dateTime(child)
          when "base64"           then base64(child)
          when "struct"           then struct(child)
          when "array"            then array(child)
          when "nil"
            if Config::ENABLE_NIL_PARSER
              v_nil(child)
            else
              raise "wrong/unknown XML-RPC type 'nil'"
            end
          else
            raise "wrong/unknown XML-RPC type"
          end
        else
          raise "wrong type of node"
        end

      end

      def methodCall(node)
        nodeMustBe(node, "methodCall")
        assert( (1..2).include?( node.childNodes.to_a.size ) )
        name = methodName(node[0])

        if node.childNodes.to_a.size == 2 then
          pa = params(node[1])
        else # no parameters given
          pa = []
        end
        [name, pa]
      end

    end # module TreeParserMixin

    class AbstractStreamParser
      def parseMethodResponse(str)
        parser = @parser_class.new
        parser.parse(str)
        raise "No valid method response!" if parser.method_name != nil
        if parser.fault != nil
          # is a fault structure
          [false, parser.fault]
        else
          # is a normal return value
          raise "Missing return value!" if parser.params.size == 0
          raise "Too many return values. Only one allowed!" if parser.params.size > 1
          [true, parser.params[0]]
        end
      end

      def parseMethodCall(str)
        parser = @parser_class.new
        parser.parse(str)
        raise "No valid method call - missing method name!" if parser.method_name.nil?
        [parser.method_name, parser.params]
      end
    end

    module StreamParserMixin
      attr_reader :params
      attr_reader :method_name
      attr_reader :fault

      def initialize(*a)
        super(*a)
        @params = []
        @values = []
        @val_stack = []

        @names = []
        @name = []

        @structs = []
        @struct = {}

        @method_name = nil
        @fault = nil

        @data = nil
      end

      def startElement(name, attrs=[])
        @data = nil
        case name
        when "value"
          @value = nil
        when "nil"
          raise "wrong/unknown XML-RPC type 'nil'" unless Config::ENABLE_NIL_PARSER
          @value = :nil
        when "array"
          @val_stack << @values
          @values = []
        when "struct"
          @names << @name
          @name = []

          @structs << @struct
          @struct = {}
        end
      end

      def endElement(name)
        @data ||= ""
        case name
        when "string"
          @value = @data
        when "i4", "i8", "int"
          @value = Convert.int(@data)
        when "boolean"
          @value = Convert.boolean(@data)
        when "double"
          @value = Convert.double(@data)
        when "dateTime.iso8601"
          @value = Convert.dateTime(@data)
        when "base64"
          @value = Convert.base64(@data)
        when "value"
          @value = @data if @value.nil?
          @values << (@value == :nil ? nil : @value)
        when "array"
          @value = @values
          @values = @val_stack.pop
        when "struct"
          @value = Convert.struct(@struct)

          @name = @names.pop
          @struct = @structs.pop
        when "name"
          @name[0] = @data
        when "member"
          @struct[@name[0]] = @values.pop

        when "param"
          @params << @values[0]
          @values = []

        when "fault"
          @fault = Convert.fault(@values[0])

        when "methodName"
          @method_name = @data
        end

        @data = nil
      end

      def character(data)
        if @data
          @data << data
        else
          @data = data
        end
      end

    end # module StreamParserMixin

    class XMLStreamParser < AbstractStreamParser
      def initialize
        require "xmlparser"
        @parser_class = Class.new(::XMLParser) {
          include StreamParserMixin
        }
      end
    end # class XMLStreamParser

    class NQXMLStreamParser < AbstractStreamParser
      def initialize
        require "nqxml/streamingparser"
        @parser_class = XMLRPCParser
      end

      class XMLRPCParser
        include StreamParserMixin

        def parse(str)
          parser = NQXML::StreamingParser.new(str)
          parser.each do |ele|
            case ele
            when NQXML::Text
              @data = ele.text
              #character(ele.text)
            when NQXML::Tag
              if ele.isTagEnd
                endElement(ele.name)
              else
                startElement(ele.name, ele.attrs)
              end
            end
          end # do
        end # method parse
      end # class XMLRPCParser

    end # class NQXMLStreamParser

    class XMLTreeParser < AbstractTreeParser

      def initialize
        require "xmltreebuilder"

        # The new XMLParser library (0.6.2+) uses a slightly different DOM implementation.
        # The following code removes the differences between both versions.
        if defined? XML::DOM::Builder
          return if defined? XML::DOM::Node::DOCUMENT # code below has been already executed
          klass = XML::DOM::Node
          klass.const_set(:DOCUMENT, klass::DOCUMENT_NODE)
          klass.const_set(:TEXT, klass::TEXT_NODE)
          klass.const_set(:COMMENT, klass::COMMENT_NODE)
          klass.const_set(:ELEMENT, klass::ELEMENT_NODE)
        end
      end

      private

      def _nodeType(node)
        tp = node.nodeType
        if tp == XML::SimpleTree::Node::TEXT then :TEXT
        elsif tp == XML::SimpleTree::Node::COMMENT then :COMMENT
        elsif tp == XML::SimpleTree::Node::ELEMENT then :ELEMENT
        else :ELSE
        end
      end


      def methodResponse_document(node)
        assert( node.nodeType == XML::SimpleTree::Node::DOCUMENT )
        hasOnlyOneChild(node, "methodResponse")

        methodResponse(node.firstChild)
      end

      def methodCall_document(node)
        assert( node.nodeType == XML::SimpleTree::Node::DOCUMENT )
        hasOnlyOneChild(node, "methodCall")

        methodCall(node.firstChild)
      end

      def createCleanedTree(str)
        doc = XML::SimpleTreeBuilder.new.parse(str)
        doc.documentElement.normalize
        removeWhitespacesAndComments(doc)
        doc
      end

    end # class XMLParser

    class NQXMLTreeParser < AbstractTreeParser

      def initialize
        require "nqxml/treeparser"
      end

      private

      def _nodeType(node)
        node.nodeType
      end

      def methodResponse_document(node)
        methodResponse(node)
      end

      def methodCall_document(node)
        methodCall(node)
      end

      def createCleanedTree(str)
        doc = ::NQXML::TreeParser.new(str).document.rootNode
        removeWhitespacesAndComments(doc)
        doc
      end

    end # class NQXMLTreeParser

    class REXMLStreamParser < AbstractStreamParser
      def initialize
        require "rexml/document"
        @parser_class = StreamListener
      end

      class StreamListener
        include StreamParserMixin

        alias :tag_start :startElement
        alias :tag_end :endElement
        alias :text :character
        alias :cdata :character

        def method_missing(*a)
          # ignore
        end

        def parse(str)
          REXML::Document.parse_stream(str, self)
        end
      end

    end

    class XMLScanStreamParser < AbstractStreamParser
      def initialize
        require "xmlscan/parser"
        @parser_class = XMLScanParser
      end

      class XMLScanParser
        include StreamParserMixin

        Entities = {
          "lt"   => "<",
          "gt"   => ">",
          "amp"  => "&",
          "quot" => '"',
          "apos" => "'"
        }

        def parse(str)
          parser  = XMLScan::XMLParser.new(self)
          parser.parse(str)
        end

        alias :on_stag :startElement
        alias :on_etag :endElement

        def on_stag_end(name); end

        def on_stag_end_empty(name)
          startElement(name)
          endElement(name)
        end

        def on_chardata(str)
          character(str)
        end

        def on_cdata(str)
          character(str)
        end

        def on_entityref(ent)
          str = Entities[ent]
          if str
            character(str)
          else
            raise "unknown entity"
          end
        end

        def on_charref(code)
          character(code.chr)
        end

        def on_charref_hex(code)
          character(code.chr)
        end

        def method_missing(*a)
        end

        # TODO: call/implement?
        # valid_name?
        # valid_chardata?
        # valid_char?
        # parse_error

      end
    end

    class LibXMLStreamParser < AbstractStreamParser
      def initialize
        require 'libxml'
        @parser_class = LibXMLStreamListener
      end

      class LibXMLStreamListener
        include StreamParserMixin

        def on_start_element_ns(name, attributes, prefix, uri, namespaces)
          startElement(name)
        end

        def on_end_element_ns(name, prefix, uri)
          endElement(name)
        end

        alias :on_characters :character
        alias :on_cdata_block :character

        def method_missing(*a)
        end

        def parse(str)
          parser = LibXML::XML::SaxParser.string(str)
          parser.callbacks = self
          parser.parse()
        end
      end
    end

    XMLParser   = XMLTreeParser
    NQXMLParser = NQXMLTreeParser

    Classes = [XMLStreamParser, XMLTreeParser,
               NQXMLStreamParser, NQXMLTreeParser,
               REXMLStreamParser, XMLScanStreamParser,
               LibXMLStreamParser]

    # yields an instance of each installed parser
    def self.each_installed_parser
      XMLRPC::XMLParser::Classes.each do |klass|
        begin
          yield klass.new
        rescue LoadError
        end
      end
    end

  end # module XMLParser


end # module XMLRPC

lib64/ruby/2.2.0/unicode_normalize.rb000064400000006242150402106370013141 0ustar00# coding: utf-8

# Copyright Ayumu Nojima (野島 歩) and Martin J. Dürst (duerst@it.aoyama.ac.jp)

# additions to class String for Unicode normalization
class String
  # === Unicode Normalization
  #
  # :call-seq:
  #    str.unicode_normalize(form=:nfc)
  #
  # Returns a normalized form of +str+, using Unicode normalizations
  # NFC, NFD, NFKC, or NFKD. The normalization form used is determined
  # by +form+, which is any of the four values :nfc, :nfd, :nfkc, or :nfkd.
  # The default is :nfc.
  #
  # If the string is not in a Unicode Encoding, then an Exception is raised.
  # In this context, 'Unicode Encoding' means any of  UTF-8, UTF-16BE/LE,
  # and UTF-32BE/LE, as well as GB18030, UCS_2BE, and UCS_4BE. Anything
  # else than UTF-8 is implemented by converting to UTF-8,
  # which makes it slower than UTF-8.
  #
  # _Examples_
  #
  #   "a\u0300".unicode_normalize        #=> 'à' (same as "\u00E0")
  #   "a\u0300".unicode_normalize(:nfc)  #=> 'à' (same as "\u00E0")
  #   "\u00E0".unicode_normalize(:nfd)   #=> 'à' (same as "a\u0300")
  #   "\xE0".force_encoding('ISO-8859-1').unicode_normalize(:nfd)
  #                                      #=> Encoding::CompatibilityError raised
  #
  def unicode_normalize(form = :nfc)
    require 'unicode_normalize/normalize.rb' unless defined? UnicodeNormalize
    ## The following line can be uncommented to avoid repeated checking for
    ## UnicodeNormalize. However, tests didn't show any noticeable speedup
    ## when doing this. This comment also applies to the commented out lines
    ## in String#unicode_normalize! and String#unicode_normalized?.
    # String.send(:define_method, :unicode_normalize, ->(form = :nfc) { UnicodeNormalize.normalize(self, form) } )
    UnicodeNormalize.normalize(self, form)
  end

  # :call-seq:
  #    str.unicode_normalize!(form=:nfc)
  #
  # Destructive version of String#unicode_normalize, doing Unicode
  # normalization in place.
  #
  def unicode_normalize!(form = :nfc)
    require 'unicode_normalize/normalize.rb' unless defined? UnicodeNormalize
    # String.send(:define_method, :unicode_normalize!, ->(form = :nfc) { replace(unicode_normalize(form)) } )
    replace(unicode_normalize(form))
  end

  # :call-seq:
  #    str.unicode_normalized?(form=:nfc)
  #
  # Checks whether +str+ is in Unicode normalization form +form+,
  # which is any of the four values :nfc, :nfd, :nfkc, or :nfkd.
  # The default is :nfc.
  #
  # If the string is not in a Unicode Encoding, then an Exception is raised.
  # For details, see String#unicode_normalize.
  #
  # _Examples_
  #
  #   "a\u0300".unicode_normalized?        #=> false
  #   "a\u0300".unicode_normalized?(:nfd)  #=> true
  #   "\u00E0".unicode_normalized?         #=> true
  #   "\u00E0".unicode_normalized?(:nfd)   #=> false
  #   "\xE0".force_encoding('ISO-8859-1').unicode_normalized?
  #                                        #=> Encoding::CompatibilityError raised
  #
  def unicode_normalized?(form = :nfc)
    require 'unicode_normalize/normalize.rb' unless defined? UnicodeNormalize
    # String.send(:define_method, :unicode_normalized?, ->(form = :nfc) { UnicodeNormalize.normalized?(self, form) } )
    UnicodeNormalize.normalized?(self, form)
  end
end

lib64/ruby/2.2.0/erb.rb000064400000064552150402106370010213 0ustar00# -*- coding: us-ascii -*-
# = ERB -- Ruby Templating
#
# Author:: Masatoshi SEKI
# Documentation:: James Edward Gray II, Gavin Sinclair, and Simon Chiang
#
# See ERB for primary documentation and ERB::Util for a couple of utility
# routines.
#
# Copyright (c) 1999-2000,2002,2003 Masatoshi SEKI
#
# You can redistribute it and/or modify it under the same terms as Ruby.

require "cgi/util"

#
# = ERB -- Ruby Templating
#
# == Introduction
#
# ERB provides an easy to use but powerful templating system for Ruby.  Using
# ERB, actual Ruby code can be added to any plain text document for the
# purposes of generating document information details and/or flow control.
#
# A very simple example is this:
#
#   require 'erb'
#
#   x = 42
#   template = ERB.new <<-EOF
#     The value of x is: <%= x %>
#   EOF
#   puts template.result(binding)
#
# <em>Prints:</em> The value of x is: 42
#
# More complex examples are given below.
#
#
# == Recognized Tags
#
# ERB recognizes certain tags in the provided template and converts them based
# on the rules below:
#
#   <% Ruby code -- inline with output %>
#   <%= Ruby expression -- replace with result %>
#   <%# comment -- ignored -- useful in testing %>
#   % a line of Ruby code -- treated as <% line %> (optional -- see ERB.new)
#   %% replaced with % if first thing on a line and % processing is used
#   <%% or %%> -- replace with <% or %> respectively
#
# All other text is passed through ERB filtering unchanged.
#
#
# == Options
#
# There are several settings you can change when you use ERB:
# * the nature of the tags that are recognized;
# * the value of <tt>$SAFE</tt> under which the template is run;
# * the binding used to resolve local variables in the template.
#
# See the ERB.new and ERB#result methods for more detail.
#
# == Character encodings
#
# ERB (or Ruby code generated by ERB) returns a string in the same
# character encoding as the input string.  When the input string has
# a magic comment, however, it returns a string in the encoding specified
# by the magic comment.
#
#   # -*- coding: utf-8 -*-
#   require 'erb'
#
#   template = ERB.new <<EOF
#   <%#-*- coding: Big5 -*-%>
#     \_\_ENCODING\_\_ is <%= \_\_ENCODING\_\_ %>.
#   EOF
#   puts template.result
#
# <em>Prints:</em> \_\_ENCODING\_\_ is Big5.
#
#
# == Examples
#
# === Plain Text
#
# ERB is useful for any generic templating situation.  Note that in this example, we use the
# convenient "% at start of line" tag, and we quote the template literally with
# <tt>%q{...}</tt> to avoid trouble with the backslash.
#
#   require "erb"
#
#   # Create template.
#   template = %q{
#     From:  James Edward Gray II <james@grayproductions.net>
#     To:  <%= to %>
#     Subject:  Addressing Needs
#
#     <%= to[/\w+/] %>:
#
#     Just wanted to send a quick note assuring that your needs are being
#     addressed.
#
#     I want you to know that my team will keep working on the issues,
#     especially:
#
#     <%# ignore numerous minor requests -- focus on priorities %>
#     % priorities.each do |priority|
#       * <%= priority %>
#     % end
#
#     Thanks for your patience.
#
#     James Edward Gray II
#   }.gsub(/^  /, '')
#
#   message = ERB.new(template, 0, "%<>")
#
#   # Set up template data.
#   to = "Community Spokesman <spokesman@ruby_community.org>"
#   priorities = [ "Run Ruby Quiz",
#                  "Document Modules",
#                  "Answer Questions on Ruby Talk" ]
#
#   # Produce result.
#   email = message.result
#   puts email
#
# <i>Generates:</i>
#
#   From:  James Edward Gray II <james@grayproductions.net>
#   To:  Community Spokesman <spokesman@ruby_community.org>
#   Subject:  Addressing Needs
#
#   Community:
#
#   Just wanted to send a quick note assuring that your needs are being addressed.
#
#   I want you to know that my team will keep working on the issues, especially:
#
#       * Run Ruby Quiz
#       * Document Modules
#       * Answer Questions on Ruby Talk
#
#   Thanks for your patience.
#
#   James Edward Gray II
#
# === Ruby in HTML
#
# ERB is often used in <tt>.rhtml</tt> files (HTML with embedded Ruby).  Notice the need in
# this example to provide a special binding when the template is run, so that the instance
# variables in the Product object can be resolved.
#
#   require "erb"
#
#   # Build template data class.
#   class Product
#     def initialize( code, name, desc, cost )
#       @code = code
#       @name = name
#       @desc = desc
#       @cost = cost
#
#       @features = [ ]
#     end
#
#     def add_feature( feature )
#       @features << feature
#     end
#
#     # Support templating of member data.
#     def get_binding
#       binding
#     end
#
#     # ...
#   end
#
#   # Create template.
#   template = %{
#     <html>
#       <head><title>Ruby Toys -- <%= @name %></title></head>
#       <body>
#
#         <h1><%= @name %> (<%= @code %>)</h1>
#         <p><%= @desc %></p>
#
#         <ul>
#           <% @features.each do |f| %>
#             <li><b><%= f %></b></li>
#           <% end %>
#         </ul>
#
#         <p>
#           <% if @cost < 10 %>
#             <b>Only <%= @cost %>!!!</b>
#           <% else %>
#              Call for a price, today!
#           <% end %>
#         </p>
#
#       </body>
#     </html>
#   }.gsub(/^  /, '')
#
#   rhtml = ERB.new(template)
#
#   # Set up template data.
#   toy = Product.new( "TZ-1002",
#                      "Rubysapien",
#                      "Geek's Best Friend!  Responds to Ruby commands...",
#                      999.95 )
#   toy.add_feature("Listens for verbal commands in the Ruby language!")
#   toy.add_feature("Ignores Perl, Java, and all C variants.")
#   toy.add_feature("Karate-Chop Action!!!")
#   toy.add_feature("Matz signature on left leg.")
#   toy.add_feature("Gem studded eyes... Rubies, of course!")
#
#   # Produce result.
#   rhtml.run(toy.get_binding)
#
# <i>Generates (some blank lines removed):</i>
#
#    <html>
#      <head><title>Ruby Toys -- Rubysapien</title></head>
#      <body>
#
#        <h1>Rubysapien (TZ-1002)</h1>
#        <p>Geek's Best Friend!  Responds to Ruby commands...</p>
#
#        <ul>
#            <li><b>Listens for verbal commands in the Ruby language!</b></li>
#            <li><b>Ignores Perl, Java, and all C variants.</b></li>
#            <li><b>Karate-Chop Action!!!</b></li>
#            <li><b>Matz signature on left leg.</b></li>
#            <li><b>Gem studded eyes... Rubies, of course!</b></li>
#        </ul>
#
#        <p>
#             Call for a price, today!
#        </p>
#
#      </body>
#    </html>
#
#
# == Notes
#
# There are a variety of templating solutions available in various Ruby projects:
# * ERB's big brother, eRuby, works the same but is written in C for speed;
# * Amrita (smart at producing HTML/XML);
# * cs/Template (written in C for speed);
# * RDoc, distributed with Ruby, uses its own template engine, which can be reused elsewhere;
# * and others; search {RubyGems.org}[https://rubygems.org/] or
#   {The Ruby Toolbox}[https://www.ruby-toolbox.com/].
#
# Rails, the web application framework, uses ERB to create views.
#
class ERB
  Revision = '$Date:: 2014-12-12 19:48:57 +0900#$' # :nodoc: #'

  # Returns revision information for the erb.rb module.
  def self.version
    "erb.rb [2.1.0 #{ERB::Revision.split[1]}]"
  end
end

#--
# ERB::Compiler
class ERB
  # = ERB::Compiler
  #
  # Compiles ERB templates into Ruby code; the compiled code produces the
  # template result when evaluated. ERB::Compiler provides hooks to define how
  # generated output is handled.
  #
  # Internally ERB does something like this to generate the code returned by
  # ERB#src:
  #
  #   compiler = ERB::Compiler.new('<>')
  #   compiler.pre_cmd    = ["_erbout=''"]
  #   compiler.put_cmd    = "_erbout.concat"
  #   compiler.insert_cmd = "_erbout.concat"
  #   compiler.post_cmd   = ["_erbout"]
  #
  #   code, enc = compiler.compile("Got <%= obj %>!\n")
  #   puts code
  #
  # <i>Generates</i>:
  #
  #   #coding:UTF-8
  #   _erbout=''; _erbout.concat "Got "; _erbout.concat(( obj ).to_s); _erbout.concat "!\n"; _erbout
  #
  # By default the output is sent to the print method.  For example:
  #
  #   compiler = ERB::Compiler.new('<>')
  #   code, enc = compiler.compile("Got <%= obj %>!\n")
  #   puts code
  #
  # <i>Generates</i>:
  #
  #   #coding:UTF-8
  #   print "Got "; print(( obj ).to_s); print "!\n"
  #
  # == Evaluation
  #
  # The compiled code can be used in any context where the names in the code
  # correctly resolve. Using the last example, each of these print 'Got It!'
  #
  # Evaluate using a variable:
  #
  #   obj = 'It'
  #   eval code
  #
  # Evaluate using an input:
  #
  #   mod = Module.new
  #   mod.module_eval %{
  #     def get(obj)
  #       #{code}
  #     end
  #   }
  #   extend mod
  #   get('It')
  #
  # Evaluate using an accessor:
  #
  #   klass = Class.new Object
  #   klass.class_eval %{
  #     attr_accessor :obj
  #     def initialize(obj)
  #       @obj = obj
  #     end
  #     def get_it
  #       #{code}
  #     end
  #   }
  #   klass.new('It').get_it
  #
  # Good! See also ERB#def_method, ERB#def_module, and ERB#def_class.
  class Compiler # :nodoc:
    class PercentLine # :nodoc:
      def initialize(str)
        @value = str
      end
      attr_reader :value
      alias :to_s :value

      def empty?
        @value.empty?
      end
    end

    class Scanner # :nodoc:
      @scanner_map = {}
      def self.regist_scanner(klass, trim_mode, percent)
        @scanner_map[[trim_mode, percent]] = klass
      end

      def self.default_scanner=(klass)
        @default_scanner = klass
      end

      def self.make_scanner(src, trim_mode, percent)
        klass = @scanner_map.fetch([trim_mode, percent], @default_scanner)
        klass.new(src, trim_mode, percent)
      end

      def initialize(src, trim_mode, percent)
        @src = src
        @stag = nil
      end
      attr_accessor :stag

      def scan; end
    end

    class TrimScanner < Scanner # :nodoc:
      def initialize(src, trim_mode, percent)
        super
        @trim_mode = trim_mode
        @percent = percent
        if @trim_mode == '>'
          @scan_line = self.method(:trim_line1)
        elsif @trim_mode == '<>'
          @scan_line = self.method(:trim_line2)
        elsif @trim_mode == '-'
          @scan_line = self.method(:explicit_trim_line)
        else
          @scan_line = self.method(:scan_line)
        end
      end
      attr_accessor :stag

      def scan(&block)
        @stag = nil
        if @percent
          @src.each_line do |line|
            percent_line(line, &block)
          end
        else
          @scan_line.call(@src, &block)
        end
        nil
      end

      def percent_line(line, &block)
        if @stag || line[0] != ?%
          return @scan_line.call(line, &block)
        end

        line[0] = ''
        if line[0] == ?%
          @scan_line.call(line, &block)
        else
          yield(PercentLine.new(line.chomp))
        end
      end

      def scan_line(line)
        line.scan(/(.*?)(<%%|%%>|<%=|<%#|<%|%>|\n|\z)/m) do |tokens|
          tokens.each do |token|
            next if token.empty?
            yield(token)
          end
        end
      end

      def trim_line1(line)
        line.scan(/(.*?)(<%%|%%>|<%=|<%#|<%|%>\n|%>|\n|\z)/m) do |tokens|
          tokens.each do |token|
            next if token.empty?
            if token == "%>\n"
              yield('%>')
              yield(:cr)
            else
              yield(token)
            end
          end
        end
      end

      def trim_line2(line)
        head = nil
        line.scan(/(.*?)(<%%|%%>|<%=|<%#|<%|%>\n|%>|\n|\z)/m) do |tokens|
          tokens.each do |token|
            next if token.empty?
            head = token unless head
            if token == "%>\n"
              yield('%>')
              if is_erb_stag?(head)
                yield(:cr)
              else
                yield("\n")
              end
              head = nil
            else
              yield(token)
              head = nil if token == "\n"
            end
          end
        end
      end

      def explicit_trim_line(line)
        line.scan(/(.*?)(^[ \t]*<%\-|<%\-|<%%|%%>|<%=|<%#|<%|-%>\n|-%>|%>|\z)/m) do |tokens|
          tokens.each do |token|
            next if token.empty?
            if @stag.nil? && /[ \t]*<%-/ =~ token
              yield('<%')
            elsif @stag && token == "-%>\n"
              yield('%>')
              yield(:cr)
            elsif @stag && token == '-%>'
              yield('%>')
            else
              yield(token)
            end
          end
        end
      end

      ERB_STAG = %w(<%= <%# <%)
      def is_erb_stag?(s)
        ERB_STAG.member?(s)
      end
    end

    Scanner.default_scanner = TrimScanner

    class SimpleScanner < Scanner # :nodoc:
      def scan
        @src.scan(/(.*?)(<%%|%%>|<%=|<%#|<%|%>|\n|\z)/m) do |tokens|
          tokens.each do |token|
            next if token.empty?
            yield(token)
          end
        end
      end
    end

    Scanner.regist_scanner(SimpleScanner, nil, false)

    begin
      require 'strscan'
      class SimpleScanner2 < Scanner # :nodoc:
        def scan
          stag_reg = /(.*?)(<%%|<%=|<%#|<%|\z)/m
          etag_reg = /(.*?)(%%>|%>|\z)/m
          scanner = StringScanner.new(@src)
          while ! scanner.eos?
            scanner.scan(@stag ? etag_reg : stag_reg)
            yield(scanner[1])
            yield(scanner[2])
          end
        end
      end
      Scanner.regist_scanner(SimpleScanner2, nil, false)

      class ExplicitScanner < Scanner # :nodoc:
        def scan
          stag_reg = /(.*?)(^[ \t]*<%-|<%%|<%=|<%#|<%-|<%|\z)/m
          etag_reg = /(.*?)(%%>|-%>|%>|\z)/m
          scanner = StringScanner.new(@src)
          while ! scanner.eos?
            scanner.scan(@stag ? etag_reg : stag_reg)
            yield(scanner[1])

            elem = scanner[2]
            if /[ \t]*<%-/ =~ elem
              yield('<%')
            elsif elem == '-%>'
              yield('%>')
              yield(:cr) if scanner.scan(/(\n|\z)/)
            else
              yield(elem)
            end
          end
        end
      end
      Scanner.regist_scanner(ExplicitScanner, '-', false)

    rescue LoadError
    end

    class Buffer # :nodoc:
      def initialize(compiler, enc=nil)
        @compiler = compiler
        @line = []
        @script = enc ? "#coding:#{enc}\n" : ""
        @compiler.pre_cmd.each do |x|
          push(x)
        end
      end
      attr_reader :script

      def push(cmd)
        @line << cmd
      end

      def cr
        @script << (@line.join('; '))
        @line = []
        @script << "\n"
      end

      def close
        return unless @line
        @compiler.post_cmd.each do |x|
          push(x)
        end
        @script << (@line.join('; '))
        @line = nil
      end
    end

    def content_dump(s) # :nodoc:
      n = s.count("\n")
      if n > 0
        s.dump + "\n" * n
      else
        s.dump
      end
    end

    def add_put_cmd(out, content)
      out.push("#{@put_cmd} #{content_dump(content)}")
    end

    def add_insert_cmd(out, content)
      out.push("#{@insert_cmd}((#{content}).to_s)")
    end

    # Compiles an ERB template into Ruby code.  Returns an array of the code
    # and encoding like ["code", Encoding].
    def compile(s)
      enc = s.encoding
      raise ArgumentError, "#{enc} is not ASCII compatible" if enc.dummy?
      s = s.b # see String#b
      enc = detect_magic_comment(s) || enc
      out = Buffer.new(self, enc)

      content = ''
      scanner = make_scanner(s)
      scanner.scan do |token|
        next if token.nil?
        next if token == ''
        if scanner.stag.nil?
          case token
          when PercentLine
            add_put_cmd(out, content) if content.size > 0
            content = ''
            out.push(token.to_s)
            out.cr
          when :cr
            out.cr
          when '<%', '<%=', '<%#'
            scanner.stag = token
            add_put_cmd(out, content) if content.size > 0
            content = ''
          when "\n"
            content << "\n"
            add_put_cmd(out, content)
            content = ''
          when '<%%'
            content << '<%'
          else
            content << token
          end
        else
          case token
          when '%>'
            case scanner.stag
            when '<%'
              if content[-1] == ?\n
                content.chop!
                out.push(content)
                out.cr
              else
                out.push(content)
              end
            when '<%='
              add_insert_cmd(out, content)
            when '<%#'
              # out.push("# #{content_dump(content)}")
            end
            scanner.stag = nil
            content = ''
          when '%%>'
            content << '%>'
          else
            content << token
          end
        end
      end
      add_put_cmd(out, content) if content.size > 0
      out.close
      return out.script, enc
    end

    def prepare_trim_mode(mode) # :nodoc:
      case mode
      when 1
        return [false, '>']
      when 2
        return [false, '<>']
      when 0
        return [false, nil]
      when String
        perc = mode.include?('%')
        if mode.include?('-')
          return [perc, '-']
        elsif mode.include?('<>')
          return [perc, '<>']
        elsif mode.include?('>')
          return [perc, '>']
        else
          [perc, nil]
        end
      else
        return [false, nil]
      end
    end

    def make_scanner(src) # :nodoc:
      Scanner.make_scanner(src, @trim_mode, @percent)
    end

    # Construct a new compiler using the trim_mode. See ERB::new for available
    # trim modes.
    def initialize(trim_mode)
      @percent, @trim_mode = prepare_trim_mode(trim_mode)
      @put_cmd = 'print'
      @insert_cmd = @put_cmd
      @pre_cmd = []
      @post_cmd = []
    end
    attr_reader :percent, :trim_mode

    # The command to handle text that ends with a newline
    attr_accessor :put_cmd

    # The command to handle text that is inserted prior to a newline
    attr_accessor :insert_cmd

    # An array of commands prepended to compiled code
    attr_accessor :pre_cmd

    # An array of commands appended to compiled code
    attr_accessor :post_cmd

    private
    def detect_magic_comment(s)
      if /\A<%#(.*)%>/ =~ s or (@percent and /\A%#(.*)/ =~ s)
        comment = $1
        comment = $1 if comment[/-\*-\s*(.*?)\s*-*-$/]
        if %r"coding\s*[=:]\s*([[:alnum:]\-_]+)" =~ comment
          enc = $1.sub(/-(?:mac|dos|unix)/i, '')
          Encoding.find(enc)
        end
      end
    end
  end
end

#--
# ERB
class ERB
  #
  # Constructs a new ERB object with the template specified in _str_.
  #
  # An ERB object works by building a chunk of Ruby code that will output
  # the completed template when run. If _safe_level_ is set to a non-nil value,
  # ERB code will be run in a separate thread with <b>$SAFE</b> set to the
  # provided level.
  #
  # If _trim_mode_ is passed a String containing one or more of the following
  # modifiers, ERB will adjust its code generation as listed:
  #
  #     %  enables Ruby code processing for lines beginning with %
  #     <> omit newline for lines starting with <% and ending in %>
  #     >  omit newline for lines ending in %>
  #     -  omit blank lines ending in -%>
  #
  # _eoutvar_ can be used to set the name of the variable ERB will build up
  # its output in.  This is useful when you need to run multiple ERB
  # templates through the same binding and/or when you want to control where
  # output ends up.  Pass the name of the variable to be used inside a String.
  #
  # === Example
  #
  #  require "erb"
  #
  #  # build data class
  #  class Listings
  #    PRODUCT = { :name => "Chicken Fried Steak",
  #                :desc => "A well messages pattie, breaded and fried.",
  #                :cost => 9.95 }
  #
  #    attr_reader :product, :price
  #
  #    def initialize( product = "", price = "" )
  #      @product = product
  #      @price = price
  #    end
  #
  #    def build
  #      b = binding
  #      # create and run templates, filling member data variables
  #      ERB.new(<<-'END_PRODUCT'.gsub(/^\s+/, ""), 0, "", "@product").result b
  #        <%= PRODUCT[:name] %>
  #        <%= PRODUCT[:desc] %>
  #      END_PRODUCT
  #      ERB.new(<<-'END_PRICE'.gsub(/^\s+/, ""), 0, "", "@price").result b
  #        <%= PRODUCT[:name] %> -- <%= PRODUCT[:cost] %>
  #        <%= PRODUCT[:desc] %>
  #      END_PRICE
  #    end
  #  end
  #
  #  # setup template data
  #  listings = Listings.new
  #  listings.build
  #
  #  puts listings.product + "\n" + listings.price
  #
  # _Generates_
  #
  #  Chicken Fried Steak
  #  A well messages pattie, breaded and fried.
  #
  #  Chicken Fried Steak -- 9.95
  #  A well messages pattie, breaded and fried.
  #
  def initialize(str, safe_level=nil, trim_mode=nil, eoutvar='_erbout')
    @safe_level = safe_level
    compiler = make_compiler(trim_mode)
    set_eoutvar(compiler, eoutvar)
    @src, @encoding = *compiler.compile(str)
    @filename = nil
    @lineno = 0
  end

  ##
  # Creates a new compiler for ERB.  See ERB::Compiler.new for details

  def make_compiler(trim_mode)
    ERB::Compiler.new(trim_mode)
  end

  # The Ruby code generated by ERB
  attr_reader :src

  # The encoding to eval
  attr_reader :encoding

  # The optional _filename_ argument passed to Kernel#eval when the ERB code
  # is run
  attr_accessor :filename

  # The optional _lineno_ argument passed to Kernel#eval when the ERB code
  # is run
  attr_accessor :lineno

  def location=((filename, lineno))
    @filename = filename
    @lineno = lineno if lineno
  end

  #
  # Can be used to set _eoutvar_ as described in ERB::new.  It's probably
  # easier to just use the constructor though, since calling this method
  # requires the setup of an ERB _compiler_ object.
  #
  def set_eoutvar(compiler, eoutvar = '_erbout')
    compiler.put_cmd = "#{eoutvar}.concat"
    compiler.insert_cmd = "#{eoutvar}.concat"
    compiler.pre_cmd = ["#{eoutvar} = ''"]
    compiler.post_cmd = ["#{eoutvar}.force_encoding(__ENCODING__)"]
  end

  # Generate results and print them. (see ERB#result)
  def run(b=new_toplevel)
    print self.result(b)
  end

  #
  # Executes the generated ERB code to produce a completed template, returning
  # the results of that code.  (See ERB::new for details on how this process
  # can be affected by _safe_level_.)
  #
  # _b_ accepts a Binding object which is used to set the context of
  # code evaluation.
  #
  def result(b=new_toplevel)
    if @safe_level
      proc {
        $SAFE = @safe_level
        eval(@src, b, (@filename || '(erb)'), @lineno)
      }.call
    else
      eval(@src, b, (@filename || '(erb)'), @lineno)
    end
  end

  ##
  # Returns a new binding each time *near* TOPLEVEL_BINDING for runs that do
  # not specify a binding.

  def new_toplevel
    TOPLEVEL_BINDING.dup
  end
  private :new_toplevel

  # Define _methodname_ as instance method of _mod_ from compiled Ruby source.
  #
  # example:
  #   filename = 'example.rhtml'   # 'arg1' and 'arg2' are used in example.rhtml
  #   erb = ERB.new(File.read(filename))
  #   erb.def_method(MyClass, 'render(arg1, arg2)', filename)
  #   print MyClass.new.render('foo', 123)
  def def_method(mod, methodname, fname='(ERB)')
    src = self.src
    magic_comment = "#coding:#{@encoding}\n"
    mod.module_eval do
      eval(magic_comment + "def #{methodname}\n" + src + "\nend\n", binding, fname, -2)
    end
  end

  # Create unnamed module, define _methodname_ as instance method of it, and return it.
  #
  # example:
  #   filename = 'example.rhtml'   # 'arg1' and 'arg2' are used in example.rhtml
  #   erb = ERB.new(File.read(filename))
  #   erb.filename = filename
  #   MyModule = erb.def_module('render(arg1, arg2)')
  #   class MyClass
  #     include MyModule
  #   end
  def def_module(methodname='erb')
    mod = Module.new
    def_method(mod, methodname, @filename || '(ERB)')
    mod
  end

  # Define unnamed class which has _methodname_ as instance method, and return it.
  #
  # example:
  #   class MyClass_
  #     def initialize(arg1, arg2)
  #       @arg1 = arg1;  @arg2 = arg2
  #     end
  #   end
  #   filename = 'example.rhtml'  # @arg1 and @arg2 are used in example.rhtml
  #   erb = ERB.new(File.read(filename))
  #   erb.filename = filename
  #   MyClass = erb.def_class(MyClass_, 'render()')
  #   print MyClass.new('foo', 123).render()
  def def_class(superklass=Object, methodname='result')
    cls = Class.new(superklass)
    def_method(cls, methodname, @filename || '(ERB)')
    cls
  end
end

#--
# ERB::Util
class ERB
  # A utility module for conversion routines, often handy in HTML generation.
  module Util
    public
    #
    # A utility method for escaping HTML tag characters in _s_.
    #
    #   require "erb"
    #   include ERB::Util
    #
    #   puts html_escape("is a > 0 & a < 10?")
    #
    # _Generates_
    #
    #   is a &gt; 0 &amp; a &lt; 10?
    #
    def html_escape(s)
      CGI.escapeHTML(s.to_s)
    end
    alias h html_escape
    module_function :h
    module_function :html_escape

    #
    # A utility method for encoding the String _s_ as a URL.
    #
    #   require "erb"
    #   include ERB::Util
    #
    #   puts url_encode("Programming Ruby:  The Pragmatic Programmer's Guide")
    #
    # _Generates_
    #
    #   Programming%20Ruby%3A%20%20The%20Pragmatic%20Programmer%27s%20Guide
    #
    def url_encode(s)
      s.to_s.b.gsub(/[^a-zA-Z0-9_\-.]/n) { |m|
        sprintf("%%%02X", m.unpack("C")[0])
      }
    end
    alias u url_encode
    module_function :u
    module_function :url_encode
  end
end

#--
# ERB::DefMethod
class ERB
  # Utility module to define eRuby script as instance method.
  #
  # === Example
  #
  # example.rhtml:
  #   <% for item in @items %>
  #   <b><%= item %></b>
  #   <% end %>
  #
  # example.rb:
  #   require 'erb'
  #   class MyClass
  #     extend ERB::DefMethod
  #     def_erb_method('render()', 'example.rhtml')
  #     def initialize(items)
  #       @items = items
  #     end
  #   end
  #   print MyClass.new([10,20,30]).render()
  #
  # result:
  #
  #   <b>10</b>
  #
  #   <b>20</b>
  #
  #   <b>30</b>
  #
  module DefMethod
    public
    # define _methodname_ as instance method of current module, using ERB
    # object or eRuby file
    def def_erb_method(methodname, erb_or_fname)
      if erb_or_fname.kind_of? String
        fname = erb_or_fname
        erb = ERB.new(File.read(fname))
        erb.def_method(self, methodname, fname)
      else
        erb = erb_or_fname
        erb.def_method(self, methodname, erb.filename || '(ERB)')
      end
    end
    module_function :def_erb_method
  end
end
lib64/ruby/2.2.0/rbconfig/datadir.rb000064400000000772150402106370012636 0ustar00#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

# N.B. This file is used by Config.datadir in rubygems.rb, and must not be
# removed before that require is removed. I require to avoid warning more than
# once.

warn 'rbconfig/datadir.rb and {Rb}Config.datadir is being deprecated from '\
 'RubyGems. It will be removed completely on or after June 2011. If you '\
 'wish to rely on a datadir, please use Gem.datadir.'
lib64/ruby/2.2.0/un.rb000064400000021576150402106370010064 0ustar00#
# = un.rb
#
# Copyright (c) 2003 WATANABE Hirofumi <eban@ruby-lang.org>
#
# This program is free software.
# You can distribute/modify this program under the same terms of Ruby.
#
# == Utilities to replace common UNIX commands in Makefiles etc
#
# == SYNOPSIS
#
#   ruby -run -e cp -- [OPTION] SOURCE DEST
#   ruby -run -e ln -- [OPTION] TARGET LINK_NAME
#   ruby -run -e mv -- [OPTION] SOURCE DEST
#   ruby -run -e rm -- [OPTION] FILE
#   ruby -run -e mkdir -- [OPTION] DIRS
#   ruby -run -e rmdir -- [OPTION] DIRS
#   ruby -run -e install -- [OPTION] SOURCE DEST
#   ruby -run -e chmod -- [OPTION] OCTAL-MODE FILE
#   ruby -run -e touch -- [OPTION] FILE
#   ruby -run -e wait_writable -- [OPTION] FILE
#   ruby -run -e mkmf -- [OPTION] EXTNAME [OPTION]
#   ruby -run -e httpd -- [OPTION] DocumentRoot
#   ruby -run -e help [COMMAND]

require "fileutils"
require "optparse"

module FileUtils
#  @fileutils_label = ""
  @fileutils_output = $stdout
end

# :nodoc:
def setup(options = "", *long_options)
  caller = caller_locations(1, 1)[0].label
  opt_hash = {}
  argv = []
  OptionParser.new do |o|
    options.scan(/.:?/) do |s|
      opt_name = s.delete(":").intern
      o.on("-" + s.tr(":", " ")) do |val|
        opt_hash[opt_name] = val
      end
    end
    long_options.each do |s|
      opt_name, arg_name = s.split(/(?=[\s=])/, 2)
      opt_name.sub!(/\A--/, '')
      s = "--#{opt_name.gsub(/([A-Z]+|[a-z])([A-Z])/, '\1-\2').downcase}#{arg_name}"
      puts "#{opt_name}=>#{s}" if $DEBUG
      opt_name = opt_name.intern
      o.on(s) do |val|
        opt_hash[opt_name] = val
      end
    end
    o.on("-v") do opt_hash[:verbose] = true end
    o.on("--help") do
      UN.help([caller])
      exit
    end
    o.order!(ARGV) do |x|
      if /[*?\[{]/ =~ x
        argv.concat(Dir[x])
      else
        argv << x
      end
    end
  end
  yield argv, opt_hash
end

##
# Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY
#
#   ruby -run -e cp -- [OPTION] SOURCE DEST
#
#   -p          preserve file attributes if possible
#   -r          copy recursively
#   -v          verbose
#

def cp
  setup("pr") do |argv, options|
    cmd = "cp"
    cmd += "_r" if options.delete :r
    options[:preserve] = true if options.delete :p
    dest = argv.pop
    argv = argv[0] if argv.size == 1
    FileUtils.send cmd, argv, dest, options
  end
end

##
# Create a link to the specified TARGET with LINK_NAME.
#
#   ruby -run -e ln -- [OPTION] TARGET LINK_NAME
#
#   -s          make symbolic links instead of hard links
#   -f          remove existing destination files
#   -v          verbose
#

def ln
  setup("sf") do |argv, options|
    cmd = "ln"
    cmd += "_s" if options.delete :s
    options[:force] = true if options.delete :f
    dest = argv.pop
    argv = argv[0] if argv.size == 1
    FileUtils.send cmd, argv, dest, options
  end
end

##
# Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
#
#   ruby -run -e mv -- [OPTION] SOURCE DEST
#
#   -v          verbose
#

def mv
  setup do |argv, options|
    dest = argv.pop
    argv = argv[0] if argv.size == 1
    FileUtils.mv argv, dest, options
  end
end

##
# Remove the FILE
#
#   ruby -run -e rm -- [OPTION] FILE
#
#   -f          ignore nonexistent files
#   -r          remove the contents of directories recursively
#   -v          verbose
#

def rm
  setup("fr") do |argv, options|
    cmd = "rm"
    cmd += "_r" if options.delete :r
    options[:force] = true if options.delete :f
    FileUtils.send cmd, argv, options
  end
end

##
# Create the DIR, if they do not already exist.
#
#   ruby -run -e mkdir -- [OPTION] DIR
#
#   -p          no error if existing, make parent directories as needed
#   -v          verbose
#

def mkdir
  setup("p") do |argv, options|
    cmd = "mkdir"
    cmd += "_p" if options.delete :p
    FileUtils.send cmd, argv, options
  end
end

##
# Remove the DIR.
#
#   ruby -run -e rmdir -- [OPTION] DIR
#
#   -p          remove DIRECTORY and its ancestors.
#   -v          verbose
#

def rmdir
  setup("p") do |argv, options|
    options[:parents] = true if options.delete :p
    FileUtils.rmdir argv, options
  end
end

##
# Copy SOURCE to DEST.
#
#   ruby -run -e install -- [OPTION] SOURCE DEST
#
#   -p          apply access/modification times of SOURCE files to
#               corresponding destination files
#   -m          set permission mode (as in chmod), instead of 0755
#   -v          verbose
#

def install
  setup("pm:") do |argv, options|
    options[:mode] = (mode = options.delete :m) ? mode.oct : 0755
    options[:preserve] = true if options.delete :p
    dest = argv.pop
    argv = argv[0] if argv.size == 1
    FileUtils.install argv, dest, options
  end
end

##
# Change the mode of each FILE to OCTAL-MODE.
#
#   ruby -run -e chmod -- [OPTION] OCTAL-MODE FILE
#
#   -v          verbose
#

def chmod
  setup do |argv, options|
    mode = argv.shift.oct
    FileUtils.chmod mode, argv, options
  end
end

##
# Update the access and modification times of each FILE to the current time.
#
#   ruby -run -e touch -- [OPTION] FILE
#
#   -v          verbose
#

def touch
  setup do |argv, options|
    FileUtils.touch argv, options
  end
end

##
# Wait until the file becomes writable.
#
#   ruby -run -e wait_writable -- [OPTION] FILE
#
#   -n RETRY    count to retry
#   -w SEC      each wait time in seconds
#   -v          verbose
#

def wait_writable
  setup("n:w:v") do |argv, options|
    verbose = options[:verbose]
    n = options[:n] and n = Integer(n)
    wait = (wait = options[:w]) ? Float(wait) : 0.2
    argv.each do |file|
      begin
        open(file, "r+b")
      rescue Errno::ENOENT
        break
      rescue Errno::EACCES => e
        raise if n and (n -= 1) <= 0
        if verbose
          puts e
          STDOUT.flush
        end
        sleep wait
        retry
      end
    end
  end
end

##
# Create makefile using mkmf.
#
#   ruby -run -e mkmf -- [OPTION] EXTNAME [OPTION]
#
#   -d ARGS     run dir_config
#   -h ARGS     run have_header
#   -l ARGS     run have_library
#   -f ARGS     run have_func
#   -v ARGS     run have_var
#   -t ARGS     run have_type
#   -m ARGS     run have_macro
#   -c ARGS     run have_const
#   --vendor    install to vendor_ruby
#

def mkmf
  setup("d:h:l:f:v:t:m:c:", "vendor") do |argv, options|
    require 'mkmf'
    opt = options[:d] and opt.split(/:/).each {|n| dir_config(*n.split(/,/))}
    opt = options[:h] and opt.split(/:/).each {|n| have_header(*n.split(/,/))}
    opt = options[:l] and opt.split(/:/).each {|n| have_library(*n.split(/,/))}
    opt = options[:f] and opt.split(/:/).each {|n| have_func(*n.split(/,/))}
    opt = options[:v] and opt.split(/:/).each {|n| have_var(*n.split(/,/))}
    opt = options[:t] and opt.split(/:/).each {|n| have_type(*n.split(/,/))}
    opt = options[:m] and opt.split(/:/).each {|n| have_macro(*n.split(/,/))}
    opt = options[:c] and opt.split(/:/).each {|n| have_const(*n.split(/,/))}
    $configure_args["--vendor"] = true if options[:vendor]
    create_makefile(*argv)
  end
end

##
# Run WEBrick HTTP server.
#
#   ruby -run -e httpd -- [OPTION] DocumentRoot
#
#   --bind-address=ADDR         address to bind
#   --port=NUM                  listening port number
#   --max-clients=MAX           max number of simultaneous clients
#   --temp-dir=DIR              temporary directory
#   --do-not-reverse-lookup     disable reverse lookup
#   --request-timeout=SECOND    request timeout in seconds
#   --http-version=VERSION      HTTP version
#   -v                          verbose
#

def httpd
  setup("", "BindAddress=ADDR", "Port=PORT", "MaxClients=NUM", "TempDir=DIR",
        "DoNotReverseLookup", "RequestTimeout=SECOND", "HTTPVersion=VERSION") do
    |argv, options|
    require 'webrick'
    opt = options[:RequestTimeout] and options[:RequestTimeout] = opt.to_i
    [:Port, :MaxClients].each do |name|
      opt = options[name] and (options[name] = Integer(opt)) rescue nil
    end
    unless argv.size == 1
      raise ArgumentError, "DocumentRoot is mandatory"
    end
    options[:DocumentRoot] = argv.shift
    s = WEBrick::HTTPServer.new(options)
    shut = proc {s.shutdown}
    siglist = %w"TERM QUIT"
    siglist.concat(%w"HUP INT") if STDIN.tty?
    siglist &= Signal.list.keys
    siglist.each do |sig|
      Signal.trap(sig, shut)
    end
    s.start
  end
end

##
# Display help message.
#
#   ruby -run -e help [COMMAND]
#

def help
  setup do |argv,|
    UN.help(argv)
  end
end

module UN # :nodoc:
  module_function
  def help(argv, output: $stdout)
    all = argv.empty?
    cmd = nil
    if all
      store = proc {|msg| output << msg}
    else
      messages = {}
      store = proc {|msg| messages[cmd] = msg}
    end
    open(__FILE__) do |me|
      while me.gets("##\n")
        if help = me.gets("\n\n")
          if all or argv.include?(cmd = help[/^#\s*ruby\s.*-e\s+(\w+)/, 1])
            store[help.gsub(/^# ?/, "")]
            break unless all or argv.size > messages.size
          end
        end
      end
    end
    if messages
      argv.each {|cmd| output << messages[cmd]}
    end
  end
end
lib64/ruby/2.2.0/benchmark.rb000064400000043347150402106370011374 0ustar00#--
# benchmark.rb - a performance benchmarking library
#
# $Id: benchmark.rb 47526 2014-09-11 08:09:07Z normal $
#
# Created by Gotoken (gotoken@notwork.org).
#
# Documentation by Gotoken (original RD), Lyle Johnson (RDoc conversion), and
# Gavin Sinclair (editing).
#++
#
# == Overview
#
# The Benchmark module provides methods for benchmarking Ruby code, giving
# detailed reports on the time taken for each task.
#

# The Benchmark module provides methods to measure and report the time
# used to execute Ruby code.
#
# * Measure the time to construct the string given by the expression
#   <code>"a"*1_000_000_000</code>:
#
#       require 'benchmark'
#
#       puts Benchmark.measure { "a"*1_000_000_000 }
#
#   On my machine (OSX 10.8.3 on i5 1.7 Ghz) this generates:
#
#       0.350000   0.400000   0.750000 (  0.835234)
#
#   This report shows the user CPU time, system CPU time, the sum of
#   the user and system CPU times, and the elapsed real time. The unit
#   of time is seconds.
#
# * Do some experiments sequentially using the #bm method:
#
#       require 'benchmark'
#
#       n = 5000000
#       Benchmark.bm do |x|
#         x.report { for i in 1..n; a = "1"; end }
#         x.report { n.times do   ; a = "1"; end }
#         x.report { 1.upto(n) do ; a = "1"; end }
#       end
#
#   The result:
#
#              user     system      total        real
#          1.010000   0.000000   1.010000 (  1.014479)
#          1.000000   0.000000   1.000000 (  0.998261)
#          0.980000   0.000000   0.980000 (  0.981335)
#
# * Continuing the previous example, put a label in each report:
#
#       require 'benchmark'
#
#       n = 5000000
#       Benchmark.bm(7) do |x|
#         x.report("for:")   { for i in 1..n; a = "1"; end }
#         x.report("times:") { n.times do   ; a = "1"; end }
#         x.report("upto:")  { 1.upto(n) do ; a = "1"; end }
#       end
#
# The result:
#
#                     user     system      total        real
#       for:      1.010000   0.000000   1.010000 (  1.015688)
#       times:    1.000000   0.000000   1.000000 (  1.003611)
#       upto:     1.030000   0.000000   1.030000 (  1.028098)
#
# * The times for some benchmarks depend on the order in which items
#   are run.  These differences are due to the cost of memory
#   allocation and garbage collection. To avoid these discrepancies,
#   the #bmbm method is provided.  For example, to compare ways to
#   sort an array of floats:
#
#       require 'benchmark'
#
#       array = (1..1000000).map { rand }
#
#       Benchmark.bmbm do |x|
#         x.report("sort!") { array.dup.sort! }
#         x.report("sort")  { array.dup.sort  }
#       end
#
#   The result:
#
#        Rehearsal -----------------------------------------
#        sort!   1.490000   0.010000   1.500000 (  1.490520)
#        sort    1.460000   0.000000   1.460000 (  1.463025)
#        -------------------------------- total: 2.960000sec
#
#                    user     system      total        real
#        sort!   1.460000   0.000000   1.460000 (  1.460465)
#        sort    1.450000   0.010000   1.460000 (  1.448327)
#
# * Report statistics of sequential experiments with unique labels,
#   using the #benchmark method:
#
#       require 'benchmark'
#       include Benchmark         # we need the CAPTION and FORMAT constants
#
#       n = 5000000
#       Benchmark.benchmark(CAPTION, 7, FORMAT, ">total:", ">avg:") do |x|
#         tf = x.report("for:")   { for i in 1..n; a = "1"; end }
#         tt = x.report("times:") { n.times do   ; a = "1"; end }
#         tu = x.report("upto:")  { 1.upto(n) do ; a = "1"; end }
#         [tf+tt+tu, (tf+tt+tu)/3]
#       end
#
#   The result:
#
#                     user     system      total        real
#        for:      0.950000   0.000000   0.950000 (  0.952039)
#        times:    0.980000   0.000000   0.980000 (  0.984938)
#        upto:     0.950000   0.000000   0.950000 (  0.946787)
#        >total:   2.880000   0.000000   2.880000 (  2.883764)
#        >avg:     0.960000   0.000000   0.960000 (  0.961255)

module Benchmark

  BENCHMARK_VERSION = "2002-04-25" # :nodoc:

  # Invokes the block with a Benchmark::Report object, which
  # may be used to collect and report on the results of individual
  # benchmark tests. Reserves +label_width+ leading spaces for
  # labels on each line. Prints +caption+ at the top of the
  # report, and uses +format+ to format each line.
  # Returns an array of Benchmark::Tms objects.
  #
  # If the block returns an array of
  # Benchmark::Tms objects, these will be used to format
  # additional lines of output. If +label+ parameters are
  # given, these are used to label these extra lines.
  #
  # _Note_: Other methods provide a simpler interface to this one, and are
  # suitable for nearly all benchmarking requirements.  See the examples in
  # Benchmark, and the #bm and #bmbm methods.
  #
  # Example:
  #
  #     require 'benchmark'
  #     include Benchmark          # we need the CAPTION and FORMAT constants
  #
  #     n = 5000000
  #     Benchmark.benchmark(CAPTION, 7, FORMAT, ">total:", ">avg:") do |x|
  #       tf = x.report("for:")   { for i in 1..n; a = "1"; end }
  #       tt = x.report("times:") { n.times do   ; a = "1"; end }
  #       tu = x.report("upto:")  { 1.upto(n) do ; a = "1"; end }
  #       [tf+tt+tu, (tf+tt+tu)/3]
  #     end
  #
  # Generates:
  #
  #                     user     system      total        real
  #       for:      0.970000   0.000000   0.970000 (  0.970493)
  #       times:    0.990000   0.000000   0.990000 (  0.989542)
  #       upto:     0.970000   0.000000   0.970000 (  0.972854)
  #       >total:   2.930000   0.000000   2.930000 (  2.932889)
  #       >avg:     0.976667   0.000000   0.976667 (  0.977630)
  #

  def benchmark(caption = "", label_width = nil, format = nil, *labels) # :yield: report
    sync = STDOUT.sync
    STDOUT.sync = true
    label_width ||= 0
    label_width += 1
    format ||= FORMAT
    print ' '*label_width + caption unless caption.empty?
    report = Report.new(label_width, format)
    results = yield(report)
    Array === results and results.grep(Tms).each {|t|
      print((labels.shift || t.label || "").ljust(label_width), t.format(format))
    }
    report.list
  ensure
    STDOUT.sync = sync unless sync.nil?
  end


  # A simple interface to the #benchmark method, #bm generates sequential
  # reports with labels.  The parameters have the same meaning as for
  # #benchmark.
  #
  #     require 'benchmark'
  #
  #     n = 5000000
  #     Benchmark.bm(7) do |x|
  #       x.report("for:")   { for i in 1..n; a = "1"; end }
  #       x.report("times:") { n.times do   ; a = "1"; end }
  #       x.report("upto:")  { 1.upto(n) do ; a = "1"; end }
  #     end
  #
  # Generates:
  #
  #                     user     system      total        real
  #       for:      0.960000   0.000000   0.960000 (  0.957966)
  #       times:    0.960000   0.000000   0.960000 (  0.960423)
  #       upto:     0.950000   0.000000   0.950000 (  0.954864)
  #

  def bm(label_width = 0, *labels, &blk) # :yield: report
    benchmark(CAPTION, label_width, FORMAT, *labels, &blk)
  end


  # Sometimes benchmark results are skewed because code executed
  # earlier encounters different garbage collection overheads than
  # that run later. #bmbm attempts to minimize this effect by running
  # the tests twice, the first time as a rehearsal in order to get the
  # runtime environment stable, the second time for
  # real. GC.start is executed before the start of each of
  # the real timings; the cost of this is not included in the
  # timings. In reality, though, there's only so much that #bmbm can
  # do, and the results are not guaranteed to be isolated from garbage
  # collection and other effects.
  #
  # Because #bmbm takes two passes through the tests, it can
  # calculate the required label width.
  #
  #       require 'benchmark'
  #
  #       array = (1..1000000).map { rand }
  #
  #       Benchmark.bmbm do |x|
  #         x.report("sort!") { array.dup.sort! }
  #         x.report("sort")  { array.dup.sort  }
  #       end
  #
  # Generates:
  #
  #        Rehearsal -----------------------------------------
  #        sort!   1.440000   0.010000   1.450000 (  1.446833)
  #        sort    1.440000   0.000000   1.440000 (  1.448257)
  #        -------------------------------- total: 2.890000sec
  #
  #                    user     system      total        real
  #        sort!   1.460000   0.000000   1.460000 (  1.458065)
  #        sort    1.450000   0.000000   1.450000 (  1.455963)
  #
  # #bmbm yields a Benchmark::Job object and returns an array of
  # Benchmark::Tms objects.
  #
  def bmbm(width = 0) # :yield: job
    job = Job.new(width)
    yield(job)
    width = job.width + 1
    sync = STDOUT.sync
    STDOUT.sync = true

    # rehearsal
    puts 'Rehearsal '.ljust(width+CAPTION.length,'-')
    ets = job.list.inject(Tms.new) { |sum,(label,item)|
      print label.ljust(width)
      res = Benchmark.measure(&item)
      print res.format
      sum + res
    }.format("total: %tsec")
    print " #{ets}\n\n".rjust(width+CAPTION.length+2,'-')

    # take
    print ' '*width + CAPTION
    job.list.map { |label,item|
      GC.start
      print label.ljust(width)
      Benchmark.measure(label, &item).tap { |res| print res }
    }
  ensure
    STDOUT.sync = sync unless sync.nil?
  end

  # :stopdoc:
  case
  when defined?(Process::CLOCK_MONOTONIC)
    BENCHMARK_CLOCK = Process::CLOCK_MONOTONIC
  else
    BENCHMARK_CLOCK = Process::CLOCK_REALTIME
  end
  # :startdoc:

  #
  # Returns the time used to execute the given block as a
  # Benchmark::Tms object.
  #
  def measure(label = "") # :yield:
    t0, r0 = Process.times, Process.clock_gettime(BENCHMARK_CLOCK)
    yield
    t1, r1 = Process.times, Process.clock_gettime(BENCHMARK_CLOCK)
    Benchmark::Tms.new(t1.utime  - t0.utime,
                       t1.stime  - t0.stime,
                       t1.cutime - t0.cutime,
                       t1.cstime - t0.cstime,
                       r1 - r0,
                       label)
  end

  #
  # Returns the elapsed real time used to execute the given block.
  #
  def realtime # :yield:
    r0 = Process.clock_gettime(BENCHMARK_CLOCK)
    yield
    Process.clock_gettime(BENCHMARK_CLOCK) - r0
  end

  module_function :benchmark, :measure, :realtime, :bm, :bmbm

  #
  # A Job is a sequence of labelled blocks to be processed by the
  # Benchmark.bmbm method.  It is of little direct interest to the user.
  #
  class Job # :nodoc:
    #
    # Returns an initialized Job instance.
    # Usually, one doesn't call this method directly, as new
    # Job objects are created by the #bmbm method.
    # +width+ is a initial value for the label offset used in formatting;
    # the #bmbm method passes its +width+ argument to this constructor.
    #
    def initialize(width)
      @width = width
      @list = []
    end

    #
    # Registers the given label and block pair in the job list.
    #
    def item(label = "", &blk) # :yield:
      raise ArgumentError, "no block" unless block_given?
      label = label.to_s
      w = label.length
      @width = w if @width < w
      @list << [label, blk]
      self
    end

    alias report item

    # An array of 2-element arrays, consisting of label and block pairs.
    attr_reader :list

    # Length of the widest label in the #list.
    attr_reader :width
  end

  #
  # This class is used by the Benchmark.benchmark and Benchmark.bm methods.
  # It is of little direct interest to the user.
  #
  class Report # :nodoc:
    #
    # Returns an initialized Report instance.
    # Usually, one doesn't call this method directly, as new
    # Report objects are created by the #benchmark and #bm methods.
    # +width+ and +format+ are the label offset and
    # format string used by Tms#format.
    #
    def initialize(width = 0, format = nil)
      @width, @format, @list = width, format, []
    end

    #
    # Prints the +label+ and measured time for the block,
    # formatted by +format+. See Tms#format for the
    # formatting rules.
    #
    def item(label = "", *format, &blk) # :yield:
      print label.to_s.ljust(@width)
      @list << res = Benchmark.measure(label, &blk)
      print res.format(@format, *format)
      res
    end

    alias report item

    # An array of Benchmark::Tms objects representing each item.
    attr_reader :list
  end



  #
  # A data object, representing the times associated with a benchmark
  # measurement.
  #
  class Tms

    # Default caption, see also Benchmark::CAPTION
    CAPTION = "      user     system      total        real\n"

    # Default format string, see also Benchmark::FORMAT
    FORMAT = "%10.6u %10.6y %10.6t %10.6r\n"

    # User CPU time
    attr_reader :utime

    # System CPU time
    attr_reader :stime

    # User CPU time of children
    attr_reader :cutime

    # System CPU time of children
    attr_reader :cstime

    # Elapsed real time
    attr_reader :real

    # Total time, that is +utime+ + +stime+ + +cutime+ + +cstime+
    attr_reader :total

    # Label
    attr_reader :label

    #
    # Returns an initialized Tms object which has
    # +utime+ as the user CPU time, +stime+ as the system CPU time,
    # +cutime+ as the children's user CPU time, +cstime+ as the children's
    # system CPU time, +real+ as the elapsed real time and +label+ as the label.
    #
    def initialize(utime = 0.0, stime = 0.0, cutime = 0.0, cstime = 0.0, real = 0.0, label = nil)
      @utime, @stime, @cutime, @cstime, @real, @label = utime, stime, cutime, cstime, real, label.to_s
      @total = @utime + @stime + @cutime + @cstime
    end

    #
    # Returns a new Tms object whose times are the sum of the times for this
    # Tms object, plus the time required to execute the code block (+blk+).
    #
    def add(&blk) # :yield:
      self + Benchmark.measure(&blk)
    end

    #
    # An in-place version of #add.
    #
    def add!(&blk)
      t = Benchmark.measure(&blk)
      @utime  = utime + t.utime
      @stime  = stime + t.stime
      @cutime = cutime + t.cutime
      @cstime = cstime + t.cstime
      @real   = real + t.real
      self
    end

    #
    # Returns a new Tms object obtained by memberwise summation
    # of the individual times for this Tms object with those of the other
    # Tms object.
    # This method and #/() are useful for taking statistics.
    #
    def +(other); memberwise(:+, other) end

    #
    # Returns a new Tms object obtained by memberwise subtraction
    # of the individual times for the other Tms object from those of this
    # Tms object.
    #
    def -(other); memberwise(:-, other) end

    #
    # Returns a new Tms object obtained by memberwise multiplication
    # of the individual times for this Tms object by _x_.
    #
    def *(x); memberwise(:*, x) end

    #
    # Returns a new Tms object obtained by memberwise division
    # of the individual times for this Tms object by _x_.
    # This method and #+() are useful for taking statistics.
    #
    def /(x); memberwise(:/, x) end

    #
    # Returns the contents of this Tms object as
    # a formatted string, according to a format string
    # like that passed to Kernel.format. In addition, #format
    # accepts the following extensions:
    #
    # <tt>%u</tt>::     Replaced by the user CPU time, as reported by Tms#utime.
    # <tt>%y</tt>::     Replaced by the system CPU time, as reported by #stime (Mnemonic: y of "s*y*stem")
    # <tt>%U</tt>::     Replaced by the children's user CPU time, as reported by Tms#cutime
    # <tt>%Y</tt>::     Replaced by the children's system CPU time, as reported by Tms#cstime
    # <tt>%t</tt>::     Replaced by the total CPU time, as reported by Tms#total
    # <tt>%r</tt>::     Replaced by the elapsed real time, as reported by Tms#real
    # <tt>%n</tt>::     Replaced by the label string, as reported by Tms#label (Mnemonic: n of "*n*ame")
    #
    # If _format_ is not given, FORMAT is used as default value, detailing the
    # user, system and real elapsed time.
    #
    def format(format = nil, *args)
      str = (format || FORMAT).dup
      str.gsub!(/(%[-+.\d]*)n/) { "#{$1}s" % label }
      str.gsub!(/(%[-+.\d]*)u/) { "#{$1}f" % utime }
      str.gsub!(/(%[-+.\d]*)y/) { "#{$1}f" % stime }
      str.gsub!(/(%[-+.\d]*)U/) { "#{$1}f" % cutime }
      str.gsub!(/(%[-+.\d]*)Y/) { "#{$1}f" % cstime }
      str.gsub!(/(%[-+.\d]*)t/) { "#{$1}f" % total }
      str.gsub!(/(%[-+.\d]*)r/) { "(#{$1}f)" % real }
      format ? str % args : str
    end

    #
    # Same as #format.
    #
    def to_s
      format
    end

    #
    # Returns a new 6-element array, consisting of the
    # label, user CPU time, system CPU time, children's
    # user CPU time, children's system CPU time and elapsed
    # real time.
    #
    def to_a
      [@label, @utime, @stime, @cutime, @cstime, @real]
    end

    protected

    #
    # Returns a new Tms object obtained by memberwise operation +op+
    # of the individual times for this Tms object with those of the other
    # Tms object.
    #
    # +op+ can be a mathematical operation such as <tt>+</tt>, <tt>-</tt>,
    # <tt>*</tt>, <tt>/</tt>
    #
    def memberwise(op, x)
      case x
      when Benchmark::Tms
        Benchmark::Tms.new(utime.__send__(op, x.utime),
                           stime.__send__(op, x.stime),
                           cutime.__send__(op, x.cutime),
                           cstime.__send__(op, x.cstime),
                           real.__send__(op, x.real)
                           )
      else
        Benchmark::Tms.new(utime.__send__(op, x),
                           stime.__send__(op, x),
                           cutime.__send__(op, x),
                           cstime.__send__(op, x),
                           real.__send__(op, x)
                           )
      end
    end
  end

  # The default caption string (heading above the output times).
  CAPTION = Benchmark::Tms::CAPTION

  # The default format string used to display times.  See also Benchmark::Tms#format.
  FORMAT = Benchmark::Tms::FORMAT
end
lib64/ruby/2.2.0/kconv.rb000064400000013363150402106370010555 0ustar00#
# kconv.rb - Kanji Converter.
#
# $Id: kconv.rb 30112 2010-12-07 11:47:39Z naruse $
#
# ----
#
# kconv.rb implements the Kconv class for Kanji Converter.  Additionally,
# some methods in String classes are added to allow easy conversion.
#

require 'nkf'

#
# Kanji Converter for Ruby.
#
module Kconv
  #
  # Public Constants
  #

  #Constant of Encoding

  # Auto-Detect
  AUTO = NKF::AUTO
  # ISO-2022-JP
  JIS = NKF::JIS
  # EUC-JP
  EUC = NKF::EUC
  # Shift_JIS
  SJIS = NKF::SJIS
  # BINARY
  BINARY = NKF::BINARY
  # NOCONV
  NOCONV = NKF::NOCONV
  # ASCII
  ASCII = NKF::ASCII
  # UTF-8
  UTF8 = NKF::UTF8
  # UTF-16
  UTF16 = NKF::UTF16
  # UTF-32
  UTF32 = NKF::UTF32
  # UNKNOWN
  UNKNOWN = NKF::UNKNOWN

  #
  # Public Methods
  #

  # call-seq:
  #    Kconv.kconv(str, to_enc, from_enc=nil)
  #
  # Convert <code>str</code> to <code>to_enc</code>.
  # <code>to_enc</code> and <code>from_enc</code> are given as constants of Kconv or Encoding objects.
  def kconv(str, to_enc, from_enc=nil)
    opt = ''
    opt += ' --ic=' + from_enc.to_s if from_enc
    opt += ' --oc=' + to_enc.to_s if to_enc

    ::NKF::nkf(opt, str)
  end
  module_function :kconv

  #
  # Encode to
  #

  # call-seq:
  #    Kconv.tojis(str)   => string
  #
  # Convert <code>str</code> to ISO-2022-JP
  def tojis(str)
    kconv(str, JIS)
  end
  module_function :tojis

  # call-seq:
  #    Kconv.toeuc(str)   => string
  #
  # Convert <code>str</code> to EUC-JP
  def toeuc(str)
    kconv(str, EUC)
  end
  module_function :toeuc

  # call-seq:
  #    Kconv.tosjis(str)   => string
  #
  # Convert <code>str</code> to Shift_JIS
  def tosjis(str)
    kconv(str, SJIS)
  end
  module_function :tosjis

  # call-seq:
  #    Kconv.toutf8(str)   => string
  #
  # Convert <code>str</code> to UTF-8
  def toutf8(str)
    kconv(str, UTF8)
  end
  module_function :toutf8

  # call-seq:
  #    Kconv.toutf16(str)   => string
  #
  # Convert <code>str</code> to UTF-16
  def toutf16(str)
    kconv(str, UTF16)
  end
  module_function :toutf16

  # call-seq:
  #    Kconv.toutf32(str)   => string
  #
  # Convert <code>str</code> to UTF-32
  def toutf32(str)
    kconv(str, UTF32)
  end
  module_function :toutf32

  # call-seq:
  #    Kconv.tolocale   => string
  #
  # Convert <code>self</code> to locale encoding
  def tolocale(str)
    kconv(str, Encoding.locale_charmap)
  end
  module_function :tolocale

  #
  # guess
  #

  # call-seq:
  #    Kconv.guess(str)   => encoding
  #
  # Guess input encoding by NKF.guess
  def guess(str)
    ::NKF::guess(str)
  end
  module_function :guess

  #
  # isEncoding
  #

  # call-seq:
  #    Kconv.iseuc(str)   => true or false
  #
  # Returns whether input encoding is EUC-JP or not.
  #
  # *Note* don't expect this return value is MatchData.
  def iseuc(str)
    str.dup.force_encoding(EUC).valid_encoding?
  end
  module_function :iseuc

  # call-seq:
  #    Kconv.issjis(str)   => true or false
  #
  # Returns whether input encoding is Shift_JIS or not.
  def issjis(str)
    str.dup.force_encoding(SJIS).valid_encoding?
  end
  module_function :issjis

  # call-seq:
  #    Kconv.isjis(str)   => true or false
  #
  # Returns whether input encoding is ISO-2022-JP or not.
  def isjis(str)
    /\A [\t\n\r\x20-\x7E]*
      (?:
        (?:\x1b \x28 I      [\x21-\x7E]*
          |\x1b \x28 J      [\x21-\x7E]*
          |\x1b \x24 @      (?:[\x21-\x7E]{2})*
          |\x1b \x24 B      (?:[\x21-\x7E]{2})*
          |\x1b \x24 \x28 D (?:[\x21-\x7E]{2})*
        )*
        \x1b \x28 B [\t\n\r\x20-\x7E]*
      )*
     \z/nox =~ str.dup.force_encoding('BINARY') ? true : false
  end
  module_function :isjis

  # call-seq:
  #    Kconv.isutf8(str)   => true or false
  #
  # Returns whether input encoding is UTF-8 or not.
  def isutf8(str)
    str.dup.force_encoding(UTF8).valid_encoding?
  end
  module_function :isutf8
end

class String
  # call-seq:
  #    String#kconv(to_enc, from_enc)
  #
  # Convert <code>self</code> to <code>to_enc</code>.
  # <code>to_enc</code> and <code>from_enc</code> are given as constants of Kconv or Encoding objects.
  def kconv(to_enc, from_enc=nil)
    from_enc = self.encoding if !from_enc && self.encoding != Encoding.list[0]
    Kconv::kconv(self, to_enc, from_enc)
  end

  #
  # to Encoding
  #

  # call-seq:
  #    String#tojis   => string
  #
  # Convert <code>self</code> to ISO-2022-JP
  def tojis; Kconv.tojis(self) end

  # call-seq:
  #    String#toeuc   => string
  #
  # Convert <code>self</code> to EUC-JP
  def toeuc; Kconv.toeuc(self) end

  # call-seq:
  #    String#tosjis   => string
  #
  # Convert <code>self</code> to Shift_JIS
  def tosjis; Kconv.tosjis(self) end

  # call-seq:
  #    String#toutf8   => string
  #
  # Convert <code>self</code> to UTF-8
  def toutf8; Kconv.toutf8(self) end

  # call-seq:
  #    String#toutf16   => string
  #
  # Convert <code>self</code> to UTF-16
  def toutf16; Kconv.toutf16(self) end

  # call-seq:
  #    String#toutf32   => string
  #
  # Convert <code>self</code> to UTF-32
  def toutf32; Kconv.toutf32(self) end

  # call-seq:
  #    String#tolocale   => string
  #
  # Convert <code>self</code> to locale encoding
  def tolocale; Kconv.tolocale(self) end

  #
  # is Encoding
  #

  # call-seq:
  #    String#iseuc   => true or false
  #
  # Returns whether <code>self</code>'s encoding is EUC-JP or not.
  def iseuc;	Kconv.iseuc(self) end

  # call-seq:
  #    String#issjis   => true or false
  #
  # Returns whether <code>self</code>'s encoding is Shift_JIS or not.
  def issjis;	Kconv.issjis(self) end

  # call-seq:
  #    String#isjis   => true or false
  #
  # Returns whether <code>self</code>'s encoding is ISO-2022-JP or not.
  def isjis;	Kconv.isjis(self) end

  # call-seq:
  #    String#isutf8   => true or false
  #
  # Returns whether <code>self</code>'s encoding is UTF-8 or not.
  def isutf8;	Kconv.isutf8(self) end
end
lib64/ruby/2.2.0/find.rb000064400000004756150402106370010363 0ustar00#
# find.rb: the Find module for processing all files under a given directory.
#

#
# The +Find+ module supports the top-down traversal of a set of file paths.
#
# For example, to total the size of all files under your home directory,
# ignoring anything in a "dot" directory (e.g. $HOME/.ssh):
#
#   require 'find'
#
#   total_size = 0
#
#   Find.find(ENV["HOME"]) do |path|
#     if FileTest.directory?(path)
#       if File.basename(path)[0] == ?.
#         Find.prune       # Don't look any further into this directory.
#       else
#         next
#       end
#     else
#       total_size += FileTest.size(path)
#     end
#   end
#
module Find

  #
  # Calls the associated block with the name of every file and directory listed
  # as arguments, then recursively on their subdirectories, and so on.
  #
  # Returns an enumerator if no block is given.
  #
  # See the +Find+ module documentation for an example.
  #
  def find(*paths, ignore_error: true) # :yield: path
    block_given? or return enum_for(__method__, *paths, ignore_error: ignore_error)

    fs_encoding = Encoding.find("filesystem")

    paths.collect!{|d| raise Errno::ENOENT unless File.exist?(d); d.dup}.each do |path|
      path = path.to_path if path.respond_to? :to_path
      enc = path.encoding == Encoding::US_ASCII ? fs_encoding : path.encoding
      ps = [path]
      while file = ps.shift
        catch(:prune) do
          yield file.dup.taint
          begin
            s = File.lstat(file)
          rescue Errno::ENOENT, Errno::EACCES, Errno::ENOTDIR, Errno::ELOOP, Errno::ENAMETOOLONG
            raise unless ignore_error
            next
          end
          if s.directory? then
            begin
              fs = Dir.entries(file, encoding: enc)
            rescue Errno::ENOENT, Errno::EACCES, Errno::ENOTDIR, Errno::ELOOP, Errno::ENAMETOOLONG
              raise unless ignore_error
              next
            end
            fs.sort!
            fs.reverse_each {|f|
              next if f == "." or f == ".."
              f = File.join(file, f)
              ps.unshift f.untaint
            }
          end
        end
      end
    end
    nil
  end

  #
  # Skips the current file or directory, restarting the loop with the next
  # entry. If the current file is a directory, that directory will not be
  # recursively entered. Meaningful only within the block associated with
  # Find::find.
  #
  # See the +Find+ module documentation for an example.
  #
  def prune
    throw :prune
  end

  module_function :find, :prune
end
lib64/ruby/2.2.0/xmlrpc.rb000064400000020764150402106370010745 0ustar00# == Author and Copyright
#
# Copyright (C) 2001-2004 by Michael Neumann (mailto:mneumann@ntecs.de)
#
# Released under the same term of license as Ruby.
#
# == Overview
#
# XMLRPC is a lightweight protocol that enables remote procedure calls over
# HTTP.  It is defined at http://www.xmlrpc.com.
#
# XMLRPC allows you to create simple distributed computing solutions that span
# computer languages.  Its distinctive feature is its simplicity compared to
# other approaches like SOAP and CORBA.
#
# The Ruby standard library package 'xmlrpc' enables you to create a server that
# implements remote procedures and a client that calls them.  Very little code
# is required to achieve either of these.
#
# == Example
#
# Try the following code.  It calls a standard demonstration remote procedure.
#
#   require 'xmlrpc/client'
#   require 'pp'
#
#   server = XMLRPC::Client.new2("http://xmlrpc-c.sourceforge.net/api/sample.php")
#   result = server.call("sample.sumAndDifference", 5, 3)
#   pp result
#
# == Documentation
#
# See http://www.ntecs.de/ruby/xmlrpc4r/.  There is plenty of detail there to
# use the client and implement a server.
#
# == Features of XMLRPC for Ruby
#
# * Extensions
#   * Introspection
#   * multiCall
#   * optionally nil values and integers larger than 32 Bit
#
# * Server
#   * Standalone XML-RPC server
#   * CGI-based (works with FastCGI)
#   * Apache mod_ruby server
#   * WEBrick servlet
#
# * Client
#   * synchronous/asynchronous calls
#   * Basic HTTP-401 Authentication
#   * HTTPS protocol (SSL)
#
# * Parsers
#   * NQXML (XMLParser::NQXMLStreamParser, XMLParser::NQXMLTreeParser)
#   * Expat (XMLParser::XMLStreamParser, XMLParser::XMLTreeParser)
#   * REXML (XMLParser::REXMLStreamParser)
#   * xml-scan (XMLParser::XMLScanStreamParser)
#   * Fastest parser is Expat's XMLParser::XMLStreamParser!
#
# * General
#   * possible to choose between XMLParser module (Expat wrapper) and REXML/NQXML (pure Ruby) parsers
#   * Marshalling Ruby objects to Hashs and reconstruct them later from a Hash
#   * SandStorm component architecture XMLRPC::Client interface
#
# == Howto
#
# === Client
#
#   require "xmlrpc/client"
#
#   # Make an object to represent the XML-RPC server.
#   server = XMLRPC::Client.new( "xmlrpc-c.sourceforge.net", "/api/sample.php")
#
#   # Call the remote server and get our result
#   result = server.call("sample.sumAndDifference", 5, 3)
#
#   sum = result["sum"]
#   difference = result["difference"]
#
#   puts "Sum: #{sum}, Difference: #{difference}"
#
# === XMLRPC::Client with XML-RPC fault-structure handling
#
# There are two possible ways, of handling a fault-structure:
#
# ==== by catching a XMLRPC::FaultException exception
#
#   require "xmlrpc/client"
#
#   # Make an object to represent the XML-RPC server.
#   server = XMLRPC::Client.new( "xmlrpc-c.sourceforge.net", "/api/sample.php")
#
#   begin
#     # Call the remote server and get our result
#     result = server.call("sample.sumAndDifference", 5, 3)
#
#     sum = result["sum"]
#     difference = result["difference"]
#
#     puts "Sum: #{sum}, Difference: #{difference}"
#
#   rescue XMLRPC::FaultException => e
#     puts "Error: "
#     puts e.faultCode
#     puts e.faultString
#   end
#
# ==== by calling "call2" which returns a boolean
#
#   require "xmlrpc/client"
#
#   # Make an object to represent the XML-RPC server.
#   server = XMLRPC::Client.new( "xmlrpc-c.sourceforge.net", "/api/sample.php")
#
#   # Call the remote server and get our result
#   ok, result = server.call2("sample.sumAndDifference", 5, 3)
#
#   if ok
#     sum = result["sum"]
#     difference = result["difference"]
#
#     puts "Sum: #{sum}, Difference: #{difference}"
#   else
#     puts "Error: "
#     puts result.faultCode
#     puts result.faultString
#   end
#
# === Using XMLRPC::Client::Proxy
#
# You can create a Proxy object onto which you can call methods. This way it
# looks nicer. Both forms, _call_ and _call2_ are supported through _proxy_ and
# _proxy2_.  You can additionally give arguments to the Proxy, which will be
# given to each XML-RPC call using that Proxy.
#
#   require "xmlrpc/client"
#
#   # Make an object to represent the XML-RPC server.
#   server = XMLRPC::Client.new( "xmlrpc-c.sourceforge.net", "/api/sample.php")
#
#   # Create a Proxy object
#   sample = server.proxy("sample")
#
#   # Call the remote server and get our result
#   result = sample.sumAndDifference(5,3)
#
#   sum = result["sum"]
#   difference = result["difference"]
#
#   puts "Sum: #{sum}, Difference: #{difference}"
#
# === CGI-based server using XMLRPC::CGIServer
#
# There are also two ways to define handler, the first is
# like C/PHP, the second like Java, of course both ways
# can be mixed:
#
# ==== C/PHP-like (handler functions)
#
#   require "xmlrpc/server"
#
#   s = XMLRPC::CGIServer.new
#
#   s.add_handler("sample.sumAndDifference") do |a,b|
#     { "sum" => a + b, "difference" => a - b }
#   end
#
#   s.serve
#
# ==== Java-like (handler classes)
#
#   require "xmlrpc/server"
#
#   s = XMLRPC::CGIServer.new
#
#   class MyHandler
#     def sumAndDifference(a, b)
#       { "sum" => a + b, "difference" => a - b }
#     end
#   end
#
#   # NOTE: Security Hole (read below)!!!
#   s.add_handler("sample", MyHandler.new)
#   s.serve
#
#
# To return a fault-structure you have to raise an XMLRPC::FaultException e.g.:
#
#   raise XMLRPC::FaultException.new(3, "division by Zero")
#
# ===== Security Note
#
# From Brian Candler:
#
#   Above code sample has an extremely nasty security hole, in that you can now call
#   any method of 'MyHandler' remotely, including methods inherited from Object
#   and Kernel! For example, in the client code, you can use
#
#     puts server.call("sample.send","`","ls")
#
#   (backtick being the method name for running system processes). Needless to
#   say, 'ls' can be replaced with something else.
#
#   The version which binds proc objects (or the version presented below in the next section)
#   doesn't have this problem, but people may be tempted to use the second version because it's
#   so nice and 'Rubyesque'. I think it needs a big red disclaimer.
#
#
# From Michael:
#
# A solution is to undef insecure methods or to use
# XMLRPC::Service::PublicInstanceMethodsInterface as shown below:
#
#   class MyHandler
#     def sumAndDifference(a, b)
#       { "sum" => a + b, "difference" => a - b }
#     end
#   end
#
#   # ... server initialization ...
#
#   s.add_handler(XMLRPC::iPIMethods("sample"), MyHandler.new)
#
#   # ...
#
# This adds only public instance methods explicitly declared in class MyHandler
# (and not those inherited from any other class).
#
# ==== With interface declarations
#
# Code sample from the book Ruby Developer's Guide:
#
#   require "xmlrpc/server"
#
#   class Num
#     INTERFACE = XMLRPC::interface("num") {
#       meth 'int add(int, int)', 'Add two numbers', 'add'
#       meth 'int div(int, int)', 'Divide two numbers'
#     }
#
#     def add(a, b) a + b end
#     def div(a, b) a / b end
#   end
#
#
#   s = XMLRPC::CGIServer.new
#   s.add_handler(Num::INTERFACE, Num.new)
#   s.serve
#
# === Standalone XMLRPC::Server
#
# Same as CGI-based server, the only difference being
#
#   server = XMLRPC::CGIServer.new
#
# must be changed to
#
#   server = XMLRPC::Server.new(8080)
#
# if you want a server listening on port 8080.
# The rest is the same.
#
# === Choosing a different XMLParser or XMLWriter
#
# The examples above all use the default parser (which is now since 1.8
# XMLParser::REXMLStreamParser) and a default XMLRPC::XMLWriter.
# If you want to use a different XMLParser, then you have to call the
# ParserWriterChooseMixin#set_parser method of XMLRPC::Client instances
# or instances of subclasses of XMLRPC::BasicServer or by editing
# xmlrpc/config.rb.
#
# XMLRPC::Client Example:
#
#   # ...
#   server = XMLRPC::Client.new( "xmlrpc-c.sourceforge.net", "/api/sample.php")
#   server.set_parser(XMLRPC::XMLParser::XMLParser.new)
#   # ...
#
# XMLRPC::Server Example:
#
#   # ...
#   s = XMLRPC::CGIServer.new
#   s.set_parser(XMLRPC::XMLParser::XMLStreamParser.new)
#   # ...
#
# or:
#
#   # ...
#   server = XMLRPC::Server.new(8080)
#   server.set_parser(XMLRPC::XMLParser::NQXMLParser.new)
#   # ...
#
#
# Note that XMLParser::XMLStreamParser is incredible faster (and uses less memory) than any
# other parser and scales well for large documents. For example for a 0.5 MB XML
# document with many tags, XMLParser::XMLStreamParser is ~350 (!) times faster than
# XMLParser::NQXMLTreeParser and still ~18 times as fast as XMLParser::XMLTreeParser.
#
# You can change the XML-writer by calling method ParserWriterChooseMixin#set_writer.
module XMLRPC; end
lib64/ruby/2.2.0/ripper.rb000064400000005032150402106370010730 0ustar00require 'ripper/core'
require 'ripper/lexer'
require 'ripper/filter'
require 'ripper/sexp'

# Ripper is a Ruby script parser.
#
# You can get information from the parser with event-based style.
# Information such as abstract syntax trees or simple lexical analysis of the
# Ruby program.
#
# == Usage
#
# Ripper provides an easy interface for parsing your program into a symbolic
# expression tree (or S-expression).
#
# Understanding the output of the parser may come as a challenge, it's
# recommended you use PP to format the output for legibility.
#
#   require 'ripper'
#   require 'pp'
#
#   pp Ripper.sexp('def hello(world) "Hello, #{world}!"; end')
#     #=> [:program,
#          [[:def,
#            [:@ident, "hello", [1, 4]],
#            [:paren,
#             [:params, [[:@ident, "world", [1, 10]]], nil, nil, nil, nil, nil, nil]],
#            [:bodystmt,
#             [[:string_literal,
#               [:string_content,
#                [:@tstring_content, "Hello, ", [1, 18]],
#                [:string_embexpr, [[:var_ref, [:@ident, "world", [1, 27]]]]],
#                [:@tstring_content, "!", [1, 33]]]]],
#             nil,
#             nil,
#             nil]]]]
#
# You can see in the example above, the expression starts with +:program+.
#
# From here, a method definition at +:def+, followed by the method's identifier
# <code>:@ident</code>. After the method's identifier comes the parentheses
# +:paren+ and the method parameters under +:params+.
#
# Next is the method body, starting at +:bodystmt+ (+stmt+ meaning statement),
# which contains the full definition of the method.
#
# In our case, we're simply returning a String, so next we have the
# +:string_literal+ expression.
#
# Within our +:string_literal+ you'll notice two <code>@tstring_content</code>,
# this is the literal part for <code>Hello, </code> and <code>!</code>. Between
# the two <code>@tstring_content</code> statements is a +:string_embexpr+,
# where _embexpr_ is an embedded expression. Our expression consists of a local
# variable, or +var_ref+, with the identifier (<code>@ident</code>) of +world+.
#
# == Resources
#
# * {Ruby Inside}[http://www.rubyinside.com/using-ripper-to-see-how-ruby-is-parsing-your-code-5270.html]
#
# == Requirements
#
# * ruby 1.9 (support CVS HEAD only)
# * bison 1.28 or later (Other yaccs do not work)
#
# == License
#
#   Ruby License.
#
#                                                 Minero Aoki
#                                         aamine@loveruby.net
#                                       http://i.loveruby.net
class Ripper; end
lib64/ruby/2.2.0/io/console/size.rb000064400000000615150402106370012454 0ustar00# fallback to console window size
def IO.default_console_size
  [
    ENV["LINES"].to_i.nonzero? || 25,
    ENV["COLUMNS"].to_i.nonzero? || 80,
  ]
end

begin
  require 'io/console'
rescue LoadError
  class IO
    alias console_size default_console_size
  end
else
  # returns console window size
  def IO.console_size
    console.winsize
  rescue NoMethodError
    default_console_size
  end
end
lib64/ruby/2.2.0/racc/parser.rb000064400000043511150402106370011637 0ustar00#--
# $originalId: parser.rb,v 1.8 2006/07/06 11:42:07 aamine Exp $
#
# Copyright (c) 1999-2006 Minero Aoki
#
# This program is free software.
# You can distribute/modify this program under the same terms of ruby.
#
# As a special exception, when this code is copied by Racc
# into a Racc output file, you may use that output file
# without restriction.
#++

module Racc
  class ParseError < StandardError; end
end
unless defined?(::ParseError)
  ParseError = Racc::ParseError
end

# Racc is a LALR(1) parser generator.
# It is written in Ruby itself, and generates Ruby programs.
#
# == Command-line Reference
#
#     racc [-o<var>filename</var>] [--output-file=<var>filename</var>]
#          [-e<var>rubypath</var>] [--embedded=<var>rubypath</var>]
#          [-v] [--verbose]
#          [-O<var>filename</var>] [--log-file=<var>filename</var>]
#          [-g] [--debug]
#          [-E] [--embedded]
#          [-l] [--no-line-convert]
#          [-c] [--line-convert-all]
#          [-a] [--no-omit-actions]
#          [-C] [--check-only]
#          [-S] [--output-status]
#          [--version] [--copyright] [--help] <var>grammarfile</var>
#
# [+filename+]
#   Racc grammar file. Any extension is permitted.
# [-o+outfile+, --output-file=+outfile+]
#   A filename for output. default is <+filename+>.tab.rb
# [-O+filename+, --log-file=+filename+]
#   Place logging output in file +filename+.
#   Default log file name is <+filename+>.output.
# [-e+rubypath+, --executable=+rubypath+]
#   output executable file(mode 755). where +path+ is the Ruby interpreter.
# [-v, --verbose]
#   verbose mode. create +filename+.output file, like yacc's y.output file.
# [-g, --debug]
#   add debug code to parser class. To display debugging information,
#   use this '-g' option and set @yydebug true in parser class.
# [-E, --embedded]
#   Output parser which doesn't need runtime files (racc/parser.rb).
# [-C, --check-only]
#   Check syntax of racc grammar file and quit.
# [-S, --output-status]
#   Print messages time to time while compiling.
# [-l, --no-line-convert]
#   turns off line number converting.
# [-c, --line-convert-all]
#   Convert line number of actions, inner, header and footer.
# [-a, --no-omit-actions]
#   Call all actions, even if an action is empty.
# [--version]
#   print Racc version and quit.
# [--copyright]
#   Print copyright and quit.
# [--help]
#   Print usage and quit.
#
# == Generating Parser Using Racc
#
# To compile Racc grammar file, simply type:
#
#   $ racc parse.y
#
# This creates Ruby script file "parse.tab.y". The -o option can change the output filename.
#
# == Writing A Racc Grammar File
#
# If you want your own parser, you have to write a grammar file.
# A grammar file contains the name of your parser class, grammar for the parser,
# user code, and anything else.
# When writing a grammar file, yacc's knowledge is helpful.
# If you have not used yacc before, Racc is not too difficult.
#
# Here's an example Racc grammar file.
#
#   class Calcparser
#   rule
#     target: exp { print val[0] }
#
#     exp: exp '+' exp
#        | exp '*' exp
#        | '(' exp ')'
#        | NUMBER
#   end
#
# Racc grammar files resemble yacc files.
# But (of course), this is Ruby code.
# yacc's $$ is the 'result', $0, $1... is
# an array called 'val', and $-1, $-2... is an array called '_values'.
#
# See the {Grammar File Reference}[rdoc-ref:lib/racc/rdoc/grammar.en.rdoc] for
# more information on grammar files.
#
# == Parser
#
# Then you must prepare the parse entry method. There are two types of
# parse methods in Racc, Racc::Parser#do_parse and Racc::Parser#yyparse
#
# Racc::Parser#do_parse is simple.
#
# It's yyparse() of yacc, and Racc::Parser#next_token is yylex().
# This method must returns an array like [TOKENSYMBOL, ITS_VALUE].
# EOF is [false, false].
# (TOKENSYMBOL is a Ruby symbol (taken from String#intern) by default.
# If you want to change this, see the grammar reference.
#
# Racc::Parser#yyparse is little complicated, but useful.
# It does not use Racc::Parser#next_token, instead it gets tokens from any iterator.
#
# For example, <code>yyparse(obj, :scan)</code> causes
# calling +obj#scan+, and you can return tokens by yielding them from +obj#scan+.
#
# == Debugging
#
# When debugging, "-v" or/and the "-g" option is helpful.
#
# "-v" creates verbose log file (.output).
# "-g" creates a "Verbose Parser".
# Verbose Parser prints the internal status when parsing.
# But it's _not_ automatic.
# You must use -g option and set +@yydebug+ to +true+ in order to get output.
# -g option only creates the verbose parser.
#
# === Racc reported syntax error.
#
# Isn't there too many "end"?
# grammar of racc file is changed in v0.10.
#
# Racc does not use '%' mark, while yacc uses huge number of '%' marks..
#
# === Racc reported "XXXX conflicts".
#
# Try "racc -v xxxx.y".
# It causes producing racc's internal log file, xxxx.output.
#
# === Generated parsers does not work correctly
#
# Try "racc -g xxxx.y".
# This command let racc generate "debugging parser".
# Then set @yydebug=true in your parser.
# It produces a working log of your parser.
#
# == Re-distributing Racc runtime
#
# A parser, which is created by Racc, requires the Racc runtime module;
# racc/parser.rb.
#
# Ruby 1.8.x comes with Racc runtime module,
# you need NOT distribute Racc runtime files.
#
# If you want to include the Racc runtime module with your parser.
# This can be done by using '-E' option:
#
#   $ racc -E -omyparser.rb myparser.y
#
# This command creates myparser.rb which `includes' Racc runtime.
# Only you must do is to distribute your parser file (myparser.rb).
#
# Note: parser.rb is LGPL, but your parser is not.
# Your own parser is completely yours.
module Racc

  unless defined?(Racc_No_Extensions)
    Racc_No_Extensions = false # :nodoc:
  end

  class Parser

    Racc_Runtime_Version = '1.4.6'
    Racc_Runtime_Revision = %w$originalRevision: 1.8 $[1]

    Racc_Runtime_Core_Version_R = '1.4.6'
    Racc_Runtime_Core_Revision_R = %w$originalRevision: 1.8 $[1]
    begin
      require 'racc/cparse'
    # Racc_Runtime_Core_Version_C  = (defined in extension)
      Racc_Runtime_Core_Revision_C = Racc_Runtime_Core_Id_C.split[2]
      unless new.respond_to?(:_racc_do_parse_c, true)
        raise LoadError, 'old cparse.so'
      end
      if Racc_No_Extensions
        raise LoadError, 'selecting ruby version of racc runtime core'
      end

      Racc_Main_Parsing_Routine    = :_racc_do_parse_c # :nodoc:
      Racc_YY_Parse_Method         = :_racc_yyparse_c # :nodoc:
      Racc_Runtime_Core_Version    = Racc_Runtime_Core_Version_C # :nodoc:
      Racc_Runtime_Core_Revision   = Racc_Runtime_Core_Revision_C # :nodoc:
      Racc_Runtime_Type            = 'c' # :nodoc:
    rescue LoadError
      Racc_Main_Parsing_Routine    = :_racc_do_parse_rb
      Racc_YY_Parse_Method         = :_racc_yyparse_rb
      Racc_Runtime_Core_Version    = Racc_Runtime_Core_Version_R
      Racc_Runtime_Core_Revision   = Racc_Runtime_Core_Revision_R
      Racc_Runtime_Type            = 'ruby'
    end

    def Parser.racc_runtime_type # :nodoc:
      Racc_Runtime_Type
    end

    def _racc_setup
      @yydebug = false unless self.class::Racc_debug_parser
      @yydebug = false unless defined?(@yydebug)
      if @yydebug
        @racc_debug_out = $stderr unless defined?(@racc_debug_out)
        @racc_debug_out ||= $stderr
      end
      arg = self.class::Racc_arg
      arg[13] = true if arg.size < 14
      arg
    end

    def _racc_init_sysvars
      @racc_state  = [0]
      @racc_tstack = []
      @racc_vstack = []

      @racc_t = nil
      @racc_val = nil

      @racc_read_next = true

      @racc_user_yyerror = false
      @racc_error_status = 0
    end

    # The entry point of the parser. This method is used with #next_token.
    # If Racc wants to get token (and its value), calls next_token.
    #
    # Example:
    #     def parse
    #       @q = [[1,1],
    #             [2,2],
    #             [3,3],
    #             [false, '$']]
    #       do_parse
    #     end
    #
    #     def next_token
    #       @q.shift
    #     end
    def do_parse
      __send__(Racc_Main_Parsing_Routine, _racc_setup(), false)
    end

    # The method to fetch next token.
    # If you use #do_parse method, you must implement #next_token.
    #
    # The format of return value is [TOKEN_SYMBOL, VALUE].
    # +token-symbol+ is represented by Ruby's symbol by default, e.g. :IDENT
    # for 'IDENT'.  ";" (String) for ';'.
    #
    # The final symbol (End of file) must be false.
    def next_token
      raise NotImplementedError, "#{self.class}\#next_token is not defined"
    end

    def _racc_do_parse_rb(arg, in_debug)
      action_table, action_check, action_default, action_pointer,
      _,            _,            _,              _,
      _,            _,            token_table,    _,
      _,            _,            * = arg

      _racc_init_sysvars
      tok = act = i = nil

      catch(:racc_end_parse) {
        while true
          if i = action_pointer[@racc_state[-1]]
            if @racc_read_next
              if @racc_t != 0   # not EOF
                tok, @racc_val = next_token()
                unless tok      # EOF
                  @racc_t = 0
                else
                  @racc_t = (token_table[tok] or 1)   # error token
                end
                racc_read_token(@racc_t, tok, @racc_val) if @yydebug
                @racc_read_next = false
              end
            end
            i += @racc_t
            unless i >= 0 and
                   act = action_table[i] and
                   action_check[i] == @racc_state[-1]
              act = action_default[@racc_state[-1]]
            end
          else
            act = action_default[@racc_state[-1]]
          end
          while act = _racc_evalact(act, arg)
            ;
          end
        end
      }
    end

    # Another entry point for the parser.
    # If you use this method, you must implement RECEIVER#METHOD_ID method.
    #
    # RECEIVER#METHOD_ID is a method to get next token.
    # It must 'yield' the token, which format is [TOKEN-SYMBOL, VALUE].
    def yyparse(recv, mid)
      __send__(Racc_YY_Parse_Method, recv, mid, _racc_setup(), true)
    end

    def _racc_yyparse_rb(recv, mid, arg, c_debug)
      action_table, action_check, action_default, action_pointer,
      _,             _,            _,              _,
      _,            _,            token_table,    _,
      _,            _,            * = arg

      _racc_init_sysvars
      act = nil
      i = nil

      catch(:racc_end_parse) {
        until i = action_pointer[@racc_state[-1]]
          while act = _racc_evalact(action_default[@racc_state[-1]], arg)
            ;
          end
        end
        recv.__send__(mid) do |tok, val|
          unless tok
            @racc_t = 0
          else
            @racc_t = (token_table[tok] or 1)   # error token
          end
          @racc_val = val
          @racc_read_next = false

          i += @racc_t
          unless i >= 0 and
                 act = action_table[i] and
                 action_check[i] == @racc_state[-1]
            act = action_default[@racc_state[-1]]
          end
          while act = _racc_evalact(act, arg)
            ;
          end

          while not(i = action_pointer[@racc_state[-1]]) or
                not @racc_read_next or
                @racc_t == 0   # $
            unless i and i += @racc_t and
                   i >= 0 and
                   act = action_table[i] and
                   action_check[i] == @racc_state[-1]
              act = action_default[@racc_state[-1]]
            end
            while act = _racc_evalact(act, arg)
              ;
            end
          end
        end
      }
    end

    ###
    ### common
    ###

    def _racc_evalact(act, arg)
      action_table, action_check, _, action_pointer,
      _,   _, _, _,
      _,   _, _, shift_n,  reduce_n,
      _,   _, * = arg

      if act > 0 and act < shift_n
        #
        # shift
        #
        if @racc_error_status > 0
          @racc_error_status -= 1 unless @racc_t == 1   # error token
        end
        @racc_vstack.push @racc_val
        @racc_state.push act
        @racc_read_next = true
        if @yydebug
          @racc_tstack.push @racc_t
          racc_shift @racc_t, @racc_tstack, @racc_vstack
        end

      elsif act < 0 and act > -reduce_n
        #
        # reduce
        #
        code = catch(:racc_jump) {
          @racc_state.push _racc_do_reduce(arg, act)
          false
        }
        if code
          case code
          when 1 # yyerror
            @racc_user_yyerror = true   # user_yyerror
            return -reduce_n
          when 2 # yyaccept
            return shift_n
          else
            raise '[Racc Bug] unknown jump code'
          end
        end

      elsif act == shift_n
        #
        # accept
        #
        racc_accept if @yydebug
        throw :racc_end_parse, @racc_vstack[0]

      elsif act == -reduce_n
        #
        # error
        #
        case @racc_error_status
        when 0
          unless arg[21]    # user_yyerror
            on_error @racc_t, @racc_val, @racc_vstack
          end
        when 3
          if @racc_t == 0   # is $
            throw :racc_end_parse, nil
          end
          @racc_read_next = true
        end
        @racc_user_yyerror = false
        @racc_error_status = 3
        while true
          if i = action_pointer[@racc_state[-1]]
            i += 1   # error token
            if  i >= 0 and
                (act = action_table[i]) and
                action_check[i] == @racc_state[-1]
              break
            end
          end
          throw :racc_end_parse, nil if @racc_state.size <= 1
          @racc_state.pop
          @racc_vstack.pop
          if @yydebug
            @racc_tstack.pop
            racc_e_pop @racc_state, @racc_tstack, @racc_vstack
          end
        end
        return act

      else
        raise "[Racc Bug] unknown action #{act.inspect}"
      end

      racc_next_state(@racc_state[-1], @racc_state) if @yydebug

      nil
    end

    def _racc_do_reduce(arg, act)
      _, _, _, _,
      goto_table,   goto_check,   goto_default,   goto_pointer,
      nt_base,      reduce_table, _,    _,
      _,     use_result,   * = arg
      state = @racc_state
      vstack = @racc_vstack
      tstack = @racc_tstack

      i = act * -3
      len       = reduce_table[i]
      reduce_to = reduce_table[i+1]
      method_id = reduce_table[i+2]
      void_array = []

      tmp_t = tstack[-len, len] if @yydebug
      tmp_v = vstack[-len, len]
      tstack[-len, len] = void_array if @yydebug
      vstack[-len, len] = void_array
      state[-len, len]  = void_array

      # tstack must be updated AFTER method call
      if use_result
        vstack.push __send__(method_id, tmp_v, vstack, tmp_v[0])
      else
        vstack.push __send__(method_id, tmp_v, vstack)
      end
      tstack.push reduce_to

      racc_reduce(tmp_t, reduce_to, tstack, vstack) if @yydebug

      k1 = reduce_to - nt_base
      if i = goto_pointer[k1]
        i += state[-1]
        if i >= 0 and (curstate = goto_table[i]) and goto_check[i] == k1
          return curstate
        end
      end
      goto_default[k1]
    end

    # This method is called when a parse error is found.
    #
    # ERROR_TOKEN_ID is an internal ID of token which caused error.
    # You can get string representation of this ID by calling
    # #token_to_str.
    #
    # ERROR_VALUE is a value of error token.
    #
    # value_stack is a stack of symbol values.
    # DO NOT MODIFY this object.
    #
    # This method raises ParseError by default.
    #
    # If this method returns, parsers enter "error recovering mode".
    def on_error(t, val, vstack)
      raise ParseError, sprintf("\nparse error on value %s (%s)",
                                val.inspect, token_to_str(t) || '?')
    end

    # Enter error recovering mode.
    # This method does not call #on_error.
    def yyerror
      throw :racc_jump, 1
    end

    # Exit parser.
    # Return value is Symbol_Value_Stack[0].
    def yyaccept
      throw :racc_jump, 2
    end

    # Leave error recovering mode.
    def yyerrok
      @racc_error_status = 0
    end

    # For debugging output
    def racc_read_token(t, tok, val)
      @racc_debug_out.print 'read    '
      @racc_debug_out.print tok.inspect, '(', racc_token2str(t), ') '
      @racc_debug_out.puts val.inspect
      @racc_debug_out.puts
    end

    def racc_shift(tok, tstack, vstack)
      @racc_debug_out.puts "shift   #{racc_token2str tok}"
      racc_print_stacks tstack, vstack
      @racc_debug_out.puts
    end

    def racc_reduce(toks, sim, tstack, vstack)
      out = @racc_debug_out
      out.print 'reduce '
      if toks.empty?
        out.print ' <none>'
      else
        toks.each {|t| out.print ' ', racc_token2str(t) }
      end
      out.puts " --> #{racc_token2str(sim)}"

      racc_print_stacks tstack, vstack
      @racc_debug_out.puts
    end

    def racc_accept
      @racc_debug_out.puts 'accept'
      @racc_debug_out.puts
    end

    def racc_e_pop(state, tstack, vstack)
      @racc_debug_out.puts 'error recovering mode: pop token'
      racc_print_states state
      racc_print_stacks tstack, vstack
      @racc_debug_out.puts
    end

    def racc_next_state(curstate, state)
      @racc_debug_out.puts  "goto    #{curstate}"
      racc_print_states state
      @racc_debug_out.puts
    end

    def racc_print_stacks(t, v)
      out = @racc_debug_out
      out.print '        ['
      t.each_index do |i|
        out.print ' (', racc_token2str(t[i]), ' ', v[i].inspect, ')'
      end
      out.puts ' ]'
    end

    def racc_print_states(s)
      out = @racc_debug_out
      out.print '        ['
      s.each {|st| out.print ' ', st }
      out.puts ' ]'
    end

    def racc_token2str(tok)
      self.class::Racc_token_to_s_table[tok] or
          raise "[Racc Bug] can't convert token #{tok} to string"
    end

    # Convert internal ID of token symbol to the string.
    def token_to_str(t)
      self.class::Racc_token_to_s_table[t]
    end

  end

end
lib64/ruby/2.2.0/observer.rb000064400000013465150402106370011267 0ustar00#
# Implementation of the _Observer_ object-oriented design pattern.  The
# following documentation is copied, with modifications, from "Programming
# Ruby", by Hunt and Thomas; http://www.ruby-doc.org/docs/ProgrammingRuby/html/lib_patterns.html.
#
# See Observable for more info.

# The Observer pattern (also known as publish/subscribe) provides a simple
# mechanism for one object to inform a set of interested third-party objects
# when its state changes.
#
# == Mechanism
#
# The notifying class mixes in the +Observable+
# module, which provides the methods for managing the associated observer
# objects.
#
# The observable object must:
# * assert that it has +#changed+
# * call +#notify_observers+
#
# An observer subscribes to updates using Observable#add_observer, which also
# specifies the method called via #notify_observers. The default method for
# #notify_observers is #update.
#
# === Example
#
# The following example demonstrates this nicely.  A +Ticker+, when run,
# continually receives the stock +Price+ for its <tt>@symbol</tt>.  A +Warner+
# is a general observer of the price, and two warners are demonstrated, a
# +WarnLow+ and a +WarnHigh+, which print a warning if the price is below or
# above their set limits, respectively.
#
# The +update+ callback allows the warners to run without being explicitly
# called.  The system is set up with the +Ticker+ and several observers, and the
# observers do their duty without the top-level code having to interfere.
#
# Note that the contract between publisher and subscriber (observable and
# observer) is not declared or enforced.  The +Ticker+ publishes a time and a
# price, and the warners receive that.  But if you don't ensure that your
# contracts are correct, nothing else can warn you.
#
#   require "observer"
#
#   class Ticker          ### Periodically fetch a stock price.
#     include Observable
#
#     def initialize(symbol)
#       @symbol = symbol
#     end
#
#     def run
#       last_price = nil
#       loop do
#         price = Price.fetch(@symbol)
#         print "Current price: #{price}\n"
#         if price != last_price
#           changed                 # notify observers
#           last_price = price
#           notify_observers(Time.now, price)
#         end
#         sleep 1
#       end
#     end
#   end
#
#   class Price           ### A mock class to fetch a stock price (60 - 140).
#     def self.fetch(symbol)
#       60 + rand(80)
#     end
#   end
#
#   class Warner          ### An abstract observer of Ticker objects.
#     def initialize(ticker, limit)
#       @limit = limit
#       ticker.add_observer(self)
#     end
#   end
#
#   class WarnLow < Warner
#     def update(time, price)       # callback for observer
#       if price < @limit
#         print "--- #{time.to_s}: Price below #@limit: #{price}\n"
#       end
#     end
#   end
#
#   class WarnHigh < Warner
#     def update(time, price)       # callback for observer
#       if price > @limit
#         print "+++ #{time.to_s}: Price above #@limit: #{price}\n"
#       end
#     end
#   end
#
#   ticker = Ticker.new("MSFT")
#   WarnLow.new(ticker, 80)
#   WarnHigh.new(ticker, 120)
#   ticker.run
#
# Produces:
#
#   Current price: 83
#   Current price: 75
#   --- Sun Jun 09 00:10:25 CDT 2002: Price below 80: 75
#   Current price: 90
#   Current price: 134
#   +++ Sun Jun 09 00:10:25 CDT 2002: Price above 120: 134
#   Current price: 134
#   Current price: 112
#   Current price: 79
#   --- Sun Jun 09 00:10:25 CDT 2002: Price below 80: 79
module Observable

  #
  # Add +observer+ as an observer on this object. so that it will receive
  # notifications.
  #
  # +observer+:: the object that will be notified of changes.
  # +func+:: Symbol naming the method that will be called when this Observable
  #          has changes.
  #
  #          This method must return true for +observer.respond_to?+ and will
  #          receive <tt>*arg</tt> when #notify_observers is called, where
  #          <tt>*arg</tt> is the value passed to #notify_observers by this
  #          Observable
  def add_observer(observer, func=:update)
    @observer_peers = {} unless defined? @observer_peers
    unless observer.respond_to? func
      raise NoMethodError, "observer does not respond to `#{func}'"
    end
    @observer_peers[observer] = func
  end

  #
  # Remove +observer+ as an observer on this object so that it will no longer
  # receive notifications.
  #
  # +observer+:: An observer of this Observable
  def delete_observer(observer)
    @observer_peers.delete observer if defined? @observer_peers
  end

  #
  # Remove all observers associated with this object.
  #
  def delete_observers
    @observer_peers.clear if defined? @observer_peers
  end

  #
  # Return the number of observers associated with this object.
  #
  def count_observers
    if defined? @observer_peers
      @observer_peers.size
    else
      0
    end
  end

  #
  # Set the changed state of this object.  Notifications will be sent only if
  # the changed +state+ is +true+.
  #
  # +state+:: Boolean indicating the changed state of this Observable.
  #
  def changed(state=true)
    @observer_state = state
  end

  #
  # Returns true if this object's state has been changed since the last
  # #notify_observers call.
  #
  def changed?
    if defined? @observer_state and @observer_state
      true
    else
      false
    end
  end

  #
  # Notify observers of a change in state *if* this object's changed state is
  # +true+.
  #
  # This will invoke the method named in #add_observer, passing <tt>*arg</tt>.
  # The changed state is then set to +false+.
  #
  # <tt>*arg</tt>:: Any arguments to pass to the observers.
  def notify_observers(*arg)
    if defined? @observer_state and @observer_state
      if defined? @observer_peers
        @observer_peers.each do |k, v|
          k.send v, *arg
        end
      end
      @observer_state = false
    end
  end

end
lib64/ruby/2.2.0/webrick/version.rb000064400000000600150402106370012536 0ustar00#--
# version.rb -- version and release date
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000 TAKAHASHI Masayoshi, GOTOU YUUZOU
# Copyright (c) 2003 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: version.rb,v 1.74 2003/07/22 19:20:43 gotoyuzo Exp $

module WEBrick

  ##
  # The WEBrick version

  VERSION      = "1.3.1"
end
lib64/ruby/2.2.0/webrick/https.rb000064400000003566150402106370012231 0ustar00#
# https.rb -- SSL/TLS enhancement for HTTPServer
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2001 GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: https.rb,v 1.15 2003/07/22 19:20:42 gotoyuzo Exp $

require 'webrick/ssl'

module WEBrick
  module Config
    HTTP.update(SSL)
  end

  ##
  #--
  # Adds SSL functionality to WEBrick::HTTPRequest

  class HTTPRequest

    ##
    # HTTP request SSL cipher

    attr_reader :cipher

    ##
    # HTTP request server certificate

    attr_reader :server_cert

    ##
    # HTTP request client certificate

    attr_reader :client_cert

    # :stopdoc:

    alias orig_parse parse

    def parse(socket=nil)
      if socket.respond_to?(:cert)
        @server_cert = socket.cert || @config[:SSLCertificate]
        @client_cert = socket.peer_cert
        @client_cert_chain = socket.peer_cert_chain
        @cipher      = socket.cipher
      end
      orig_parse(socket)
    end

    alias orig_parse_uri parse_uri

    def parse_uri(str, scheme="https")
      if server_cert
        return orig_parse_uri(str, scheme)
      end
      return orig_parse_uri(str)
    end
    private :parse_uri

    alias orig_meta_vars meta_vars

    def meta_vars
      meta = orig_meta_vars
      if server_cert
        meta["HTTPS"] = "on"
        meta["SSL_SERVER_CERT"] = @server_cert.to_pem
        meta["SSL_CLIENT_CERT"] = @client_cert ? @client_cert.to_pem : ""
        if @client_cert_chain
          @client_cert_chain.each_with_index{|cert, i|
            meta["SSL_CLIENT_CERT_CHAIN_#{i}"] = cert.to_pem
          }
        end
        meta["SSL_CIPHER"] = @cipher[0]
        meta["SSL_PROTOCOL"] = @cipher[1]
        meta["SSL_CIPHER_USEKEYSIZE"] = @cipher[2].to_s
        meta["SSL_CIPHER_ALGKEYSIZE"] = @cipher[3].to_s
      end
      meta
    end

    # :startdoc:
  end
end
lib64/ruby/2.2.0/webrick/cookie.rb000064400000007611150402106370012333 0ustar00#
# cookie.rb -- Cookie class
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: cookie.rb,v 1.16 2002/09/21 12:23:35 gotoyuzo Exp $

require 'time'
require 'webrick/httputils'

module WEBrick

  ##
  # Processes HTTP cookies

  class Cookie

    ##
    # The cookie name

    attr_reader :name

    ##
    # The cookie value

    attr_accessor :value

    ##
    # The cookie version

    attr_accessor :version

    ##
    # The cookie domain
    attr_accessor :domain

    ##
    # The cookie path

    attr_accessor :path

    ##
    # Is this a secure cookie?

    attr_accessor :secure

    ##
    # The cookie comment

    attr_accessor :comment

    ##
    # The maximum age of the cookie

    attr_accessor :max_age

    #attr_accessor :comment_url, :discard, :port

    ##
    # Creates a new cookie with the given +name+ and +value+

    def initialize(name, value)
      @name = name
      @value = value
      @version = 0     # Netscape Cookie

      @domain = @path = @secure = @comment = @max_age =
      @expires = @comment_url = @discard = @port = nil
    end

    ##
    # Sets the cookie expiration to the time +t+.  The expiration time may be
    # a false value to disable expiration or a Time or HTTP format time string
    # to set the expiration date.

    def expires=(t)
      @expires = t && (t.is_a?(Time) ? t.httpdate : t.to_s)
    end

    ##
    # Retrieves the expiration time as a Time

    def expires
      @expires && Time.parse(@expires)
    end

    ##
    # The cookie string suitable for use in an HTTP header

    def to_s
      ret = ""
      ret << @name << "=" << @value
      ret << "; " << "Version=" << @version.to_s if @version > 0
      ret << "; " << "Domain="  << @domain  if @domain
      ret << "; " << "Expires=" << @expires if @expires
      ret << "; " << "Max-Age=" << @max_age.to_s if @max_age
      ret << "; " << "Comment=" << @comment if @comment
      ret << "; " << "Path="    << @path if @path
      ret << "; " << "Secure"   if @secure
      ret
    end

    ##
    # Parses a Cookie field sent from the user-agent.  Returns an array of
    # cookies.

    def self.parse(str)
      if str
        ret = []
        cookie = nil
        ver = 0
        str.split(/[;,]\s+/).each{|x|
          key, val = x.split(/=/,2)
          val = val ? HTTPUtils::dequote(val) : ""
          case key
          when "$Version"; ver = val.to_i
          when "$Path";    cookie.path = val
          when "$Domain";  cookie.domain = val
          when "$Port";    cookie.port = val
          else
            ret << cookie if cookie
            cookie = self.new(key, val)
            cookie.version = ver
          end
        }
        ret << cookie if cookie
        ret
      end
    end

    ##
    # Parses the cookie in +str+

    def self.parse_set_cookie(str)
      cookie_elem = str.split(/;/)
      first_elem = cookie_elem.shift
      first_elem.strip!
      key, value = first_elem.split(/=/, 2)
      cookie = new(key, HTTPUtils.dequote(value))
      cookie_elem.each{|pair|
        pair.strip!
        key, value = pair.split(/=/, 2)
        if value
          value = HTTPUtils.dequote(value.strip)
        end
        case key.downcase
        when "domain"  then cookie.domain  = value
        when "path"    then cookie.path    = value
        when "expires" then cookie.expires = value
        when "max-age" then cookie.max_age = Integer(value)
        when "comment" then cookie.comment = value
        when "version" then cookie.version = Integer(value)
        when "secure"  then cookie.secure = true
        end
      }
      return cookie
    end

    ##
    # Parses the cookies in +str+

    def self.parse_set_cookies(str)
      return str.split(/,(?=[^;,]*=)|,$/).collect{|c|
        parse_set_cookie(c)
      }
    end
  end
end
lib64/ruby/2.2.0/webrick/httpservlet.rb000064400000001235150402106370013442 0ustar00#
# httpservlet.rb -- HTTPServlet Utility File
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: httpservlet.rb,v 1.21 2003/02/23 12:24:46 gotoyuzo Exp $

require 'webrick/httpservlet/abstract'
require 'webrick/httpservlet/filehandler'
require 'webrick/httpservlet/cgihandler'
require 'webrick/httpservlet/erbhandler'
require 'webrick/httpservlet/prochandler'

module WEBrick
  module HTTPServlet
    FileHandler.add_handler("cgi", CGIHandler)
    FileHandler.add_handler("rhtml", ERBHandler)
  end
end
lib64/ruby/2.2.0/webrick/htmlutils.rb000064400000001250150402106370013100 0ustar00#--
# htmlutils.rb -- HTMLUtils Module
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: htmlutils.rb,v 1.7 2002/09/21 12:23:35 gotoyuzo Exp $

module WEBrick
  module HTMLUtils

    ##
    # Escapes &, ", > and < in +string+

    def escape(string)
      return "" unless string
      str = string.b
      str.gsub!(/&/n, '&amp;')
      str.gsub!(/\"/n, '&quot;')
      str.gsub!(/>/n, '&gt;')
      str.gsub!(/</n, '&lt;')
      str.force_encoding(string.encoding)
    end
    module_function :escape

  end
end
lib64/ruby/2.2.0/webrick/utils.rb000064400000013555150402106400012220 0ustar00#
# utils.rb -- Miscellaneous utilities
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: utils.rb,v 1.10 2003/02/16 22:22:54 gotoyuzo Exp $

require 'socket'
require 'fcntl'
require 'etc'

module WEBrick
  module Utils
    ##
    # Sets IO operations on +io+ to be non-blocking
    def set_non_blocking(io)
      flag = File::NONBLOCK
      if defined?(Fcntl::F_GETFL)
        flag |= io.fcntl(Fcntl::F_GETFL)
      end
      io.fcntl(Fcntl::F_SETFL, flag)
    end
    module_function :set_non_blocking

    ##
    # Sets the close on exec flag for +io+
    def set_close_on_exec(io)
      if defined?(Fcntl::FD_CLOEXEC)
        io.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC)
      end
    end
    module_function :set_close_on_exec

    ##
    # Changes the process's uid and gid to the ones of +user+
    def su(user)
      if pw = Etc.getpwnam(user)
        Process::initgroups(user, pw.gid)
        Process::Sys::setgid(pw.gid)
        Process::Sys::setuid(pw.uid)
      else
        warn("WEBrick::Utils::su doesn't work on this platform")
      end
    end
    module_function :su

    ##
    # The server hostname
    def getservername
      host = Socket::gethostname
      begin
        Socket::gethostbyname(host)[0]
      rescue
        host
      end
    end
    module_function :getservername

    ##
    # Creates TCP server sockets bound to +address+:+port+ and returns them.
    #
    # It will create IPV4 and IPV6 sockets on all interfaces.
    def create_listeners(address, port, logger=nil)
      unless port
        raise ArgumentError, "must specify port"
      end
      sockets = Socket.tcp_server_sockets(address, port)
      sockets = sockets.map {|s|
        s.autoclose = false
        ts = TCPServer.for_fd(s.fileno)
        s.close
        ts
      }
      return sockets
    end
    module_function :create_listeners

    ##
    # Characters used to generate random strings
    RAND_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
                 "0123456789" +
                 "abcdefghijklmnopqrstuvwxyz"

    ##
    # Generates a random string of length +len+
    def random_string(len)
      rand_max = RAND_CHARS.bytesize
      ret = ""
      len.times{ ret << RAND_CHARS[rand(rand_max)] }
      ret
    end
    module_function :random_string

    ###########

    require "thread"
    require "timeout"
    require "singleton"

    ##
    # Class used to manage timeout handlers across multiple threads.
    #
    # Timeout handlers should be managed by using the class methods which are
    # synchronized.
    #
    #   id = TimeoutHandler.register(10, Timeout::Error)
    #   begin
    #     sleep 20
    #     puts 'foo'
    #   ensure
    #     TimeoutHandler.cancel(id)
    #   end
    #
    # will raise Timeout::Error
    #
    #   id = TimeoutHandler.register(10, Timeout::Error)
    #   begin
    #     sleep 5
    #     puts 'foo'
    #   ensure
    #     TimeoutHandler.cancel(id)
    #   end
    #
    # will print 'foo'
    #
    class TimeoutHandler
      include Singleton

      class Thread < ::Thread; end

      ##
      # Mutex used to synchronize access across threads
      TimeoutMutex = Mutex.new # :nodoc:

      ##
      # Registers a new timeout handler
      #
      # +time+:: Timeout in seconds
      # +exception+:: Exception to raise when timeout elapsed
      def TimeoutHandler.register(seconds, exception)
        TimeoutMutex.synchronize{
          instance.register(Thread.current, Time.now + seconds, exception)
        }
      end

      ##
      # Cancels the timeout handler +id+
      def TimeoutHandler.cancel(id)
        TimeoutMutex.synchronize{
          instance.cancel(Thread.current, id)
        }
      end

      ##
      # Creates a new TimeoutHandler.  You should use ::register and ::cancel
      # instead of creating the timeout handler directly.
      def initialize
        @timeout_info = Hash.new
        Thread.start{
          while true
            now = Time.now
            @timeout_info.keys.each{|thread|
              ary = @timeout_info[thread]
              next unless ary
              ary.dup.each{|info|
                time, exception = *info
                interrupt(thread, info.object_id, exception) if time < now
              }
            }
            sleep 0.5
          end
        }
      end

      ##
      # Interrupts the timeout handler +id+ and raises +exception+
      def interrupt(thread, id, exception)
        TimeoutMutex.synchronize{
          if cancel(thread, id) && thread.alive?
            thread.raise(exception, "execution timeout")
          end
        }
      end

      ##
      # Registers a new timeout handler
      #
      # +time+:: Timeout in seconds
      # +exception+:: Exception to raise when timeout elapsed
      def register(thread, time, exception)
        @timeout_info[thread] ||= Array.new
        @timeout_info[thread] << [time, exception]
        return @timeout_info[thread].last.object_id
      end

      ##
      # Cancels the timeout handler +id+
      def cancel(thread, id)
        if ary = @timeout_info[thread]
          ary.delete_if{|info| info.object_id == id }
          if ary.empty?
            @timeout_info.delete(thread)
          end
          return true
        end
        return false
      end
    end

    ##
    # Executes the passed block and raises +exception+ if execution takes more
    # than +seconds+.
    #
    # If +seconds+ is zero or nil, simply executes the block
    def timeout(seconds, exception=Timeout::Error)
      return yield if seconds.nil? or seconds.zero?
      # raise ThreadError, "timeout within critical session" if Thread.critical
      id = TimeoutHandler.register(seconds, exception)
      begin
        yield(seconds)
      ensure
        TimeoutHandler.cancel(id)
      end
    end
    module_function :timeout
  end
end
lib64/ruby/2.2.0/webrick/ssl.rb000064400000015303150402106400011652 0ustar00#
# ssl.rb -- SSL/TLS enhancement for GenericServer
#
# Copyright (c) 2003 GOTOU Yuuzou All rights reserved.
#
# $Id: ssl.rb 48362 2014-11-10 11:05:00Z akr $

require 'webrick'
require 'openssl'

module WEBrick
  module Config
    svrsoft = General[:ServerSoftware]
    osslv = ::OpenSSL::OPENSSL_VERSION.split[1]

    ##
    # Default SSL server configuration.
    #
    # WEBrick can automatically create a self-signed certificate if
    # <code>:SSLCertName</code> is set.  For more information on the various
    # SSL options see OpenSSL::SSL::SSLContext.
    #
    # :ServerSoftware       ::
    #   The server software name used in the Server: header.
    # :SSLEnable            :: false,
    #   Enable SSL for this server.  Defaults to false.
    # :SSLCertificate       ::
    #   The SSL certificate for the server.
    # :SSLPrivateKey        ::
    #   The SSL private key for the server certificate.
    # :SSLClientCA          :: nil,
    #   Array of certificates that will be sent to the client.
    # :SSLExtraChainCert    :: nil,
    #   Array of certificates that will be added to the certificate chain
    # :SSLCACertificateFile :: nil,
    #   Path to a CA certificate file
    # :SSLCACertificatePath :: nil,
    #   Path to a directory containing CA certificates
    # :SSLCertificateStore  :: nil,
    #   OpenSSL::X509::Store used for certificate validation of the client
    # :SSLTmpDhCallback     :: nil,
    #   Callback invoked when DH parameters are required.
    # :SSLVerifyClient      ::
    #   Sets whether the client is verified.  This defaults to VERIFY_NONE
    #   which is typical for an HTTPS server.
    # :SSLVerifyDepth       ::
    #   Number of CA certificates to walk when verifying a certificate chain
    # :SSLVerifyCallback    ::
    #   Custom certificate verification callback
    # :SSLTimeout           ::
    #   Maximum session lifetime
    # :SSLOptions           ::
    #   Various SSL options
    # :SSLStartImmediately  ::
    #   Immediately start SSL upon connection?  Defaults to true
    # :SSLCertName          ::
    #   SSL certificate name.  Must be set to enable automatic certificate
    #   creation.
    # :SSLCertComment       ::
    #   Comment used during automatic certificate creation.

    SSL = {
      :ServerSoftware       => "#{svrsoft} OpenSSL/#{osslv}",
      :SSLEnable            => false,
      :SSLCertificate       => nil,
      :SSLPrivateKey        => nil,
      :SSLClientCA          => nil,
      :SSLExtraChainCert    => nil,
      :SSLCACertificateFile => nil,
      :SSLCACertificatePath => nil,
      :SSLCertificateStore  => nil,
      :SSLTmpDhCallback     => nil,
      :SSLVerifyClient      => ::OpenSSL::SSL::VERIFY_NONE,
      :SSLVerifyDepth       => nil,
      :SSLVerifyCallback    => nil,   # custom verification
      :SSLTimeout           => nil,
      :SSLOptions           => nil,
      :SSLStartImmediately  => true,
      # Must specify if you use auto generated certificate.
      :SSLCertName          => nil,
      :SSLCertComment       => "Generated by Ruby/OpenSSL"
    }
    General.update(SSL)
  end

  module Utils
    ##
    # Creates a self-signed certificate with the given number of +bits+,
    # the issuer +cn+ and a +comment+ to be stored in the certificate.

    def create_self_signed_cert(bits, cn, comment)
      rsa = OpenSSL::PKey::RSA.new(bits){|p, n|
        case p
        when 0; $stderr.putc "."  # BN_generate_prime
        when 1; $stderr.putc "+"  # BN_generate_prime
        when 2; $stderr.putc "*"  # searching good prime,
                                  # n = #of try,
                                  # but also data from BN_generate_prime
        when 3; $stderr.putc "\n" # found good prime, n==0 - p, n==1 - q,
                                  # but also data from BN_generate_prime
        else;   $stderr.putc "*"  # BN_generate_prime
        end
      }
      cert = OpenSSL::X509::Certificate.new
      cert.version = 2
      cert.serial = 1
      name = OpenSSL::X509::Name.new(cn)
      cert.subject = name
      cert.issuer = name
      cert.not_before = Time.now
      cert.not_after = Time.now + (365*24*60*60)
      cert.public_key = rsa.public_key

      ef = OpenSSL::X509::ExtensionFactory.new(nil,cert)
      ef.issuer_certificate = cert
      cert.extensions = [
        ef.create_extension("basicConstraints","CA:FALSE"),
        ef.create_extension("keyUsage", "keyEncipherment"),
        ef.create_extension("subjectKeyIdentifier", "hash"),
        ef.create_extension("extendedKeyUsage", "serverAuth"),
        ef.create_extension("nsComment", comment),
      ]
      aki = ef.create_extension("authorityKeyIdentifier",
                                "keyid:always,issuer:always")
      cert.add_extension(aki)
      cert.sign(rsa, OpenSSL::Digest::SHA1.new)

      return [ cert, rsa ]
    end
    module_function :create_self_signed_cert
  end

  ##
  #--
  # Updates WEBrick::GenericServer with SSL functionality

  class GenericServer

    ##
    # SSL context for the server when run in SSL mode

    def ssl_context # :nodoc:
      @ssl_context ||= nil
    end

    undef listen

    ##
    # Updates +listen+ to enable SSL when the SSL configuration is active.

    def listen(address, port) # :nodoc:
      listeners = Utils::create_listeners(address, port, @logger)
      if @config[:SSLEnable]
        unless ssl_context
          @ssl_context = setup_ssl_context(@config)
          @logger.info("\n" + @config[:SSLCertificate].to_text)
        end
        listeners.collect!{|svr|
          ssvr = ::OpenSSL::SSL::SSLServer.new(svr, ssl_context)
          ssvr.start_immediately = @config[:SSLStartImmediately]
          ssvr
        }
      end
      @listeners += listeners
      setup_shutdown_pipe
    end

    ##
    # Sets up an SSL context for +config+

    def setup_ssl_context(config) # :nodoc:
      unless config[:SSLCertificate]
        cn = config[:SSLCertName]
        comment = config[:SSLCertComment]
        cert, key = Utils::create_self_signed_cert(1024, cn, comment)
        config[:SSLCertificate] = cert
        config[:SSLPrivateKey] = key
      end
      ctx = OpenSSL::SSL::SSLContext.new
      ctx.key = config[:SSLPrivateKey]
      ctx.cert = config[:SSLCertificate]
      ctx.client_ca = config[:SSLClientCA]
      ctx.extra_chain_cert = config[:SSLExtraChainCert]
      ctx.ca_file = config[:SSLCACertificateFile]
      ctx.ca_path = config[:SSLCACertificatePath]
      ctx.cert_store = config[:SSLCertificateStore]
      ctx.tmp_dh_callback = config[:SSLTmpDhCallback]
      ctx.verify_mode = config[:SSLVerifyClient]
      ctx.verify_depth = config[:SSLVerifyDepth]
      ctx.verify_callback = config[:SSLVerifyCallback]
      ctx.timeout = config[:SSLTimeout]
      ctx.options = config[:SSLOptions]
      ctx
    end
  end
end
lib64/ruby/2.2.0/webrick/httpservlet/erbhandler.rb000064400000004412150402106400015542 0ustar00#
# erbhandler.rb -- ERBHandler Class
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: erbhandler.rb,v 1.25 2003/02/24 19:25:31 gotoyuzo Exp $

require 'webrick/httpservlet/abstract.rb'

require 'erb'

module WEBrick
  module HTTPServlet

    ##
    # ERBHandler evaluates an ERB file and returns the result.  This handler
    # is automatically used if there are .rhtml files in a directory served by
    # the FileHandler.
    #
    # ERBHandler supports GET and POST methods.
    #
    # The ERB file is evaluated with the local variables +servlet_request+ and
    # +servlet_response+ which are a WEBrick::HTTPRequest and
    # WEBrick::HTTPResponse respectively.
    #
    # Example .rhtml file:
    #
    #   Request to <%= servlet_request.request_uri %>
    #
    #   Query params <%= servlet_request.query.inspect %>

    class ERBHandler < AbstractServlet

      ##
      # Creates a new ERBHandler on +server+ that will evaluate and serve the
      # ERB file +name+

      def initialize(server, name)
        super(server, name)
        @script_filename = name
      end

      ##
      # Handles GET requests

      def do_GET(req, res)
        unless defined?(ERB)
          @logger.warn "#{self.class}: ERB not defined."
          raise HTTPStatus::Forbidden, "ERBHandler cannot work."
        end
        begin
          data = open(@script_filename){|io| io.read }
          res.body = evaluate(ERB.new(data), req, res)
          res['content-type'] ||=
            HTTPUtils::mime_type(@script_filename, @config[:MimeTypes])
        rescue StandardError
          raise
        rescue Exception => ex
          @logger.error(ex)
          raise HTTPStatus::InternalServerError, ex.message
        end
      end

      ##
      # Handles POST requests

      alias do_POST do_GET

      private

      ##
      # Evaluates +erb+ providing +servlet_request+ and +servlet_response+ as
      # local variables.

      def evaluate(erb, servlet_request, servlet_response)
        Module.new.module_eval{
          servlet_request.meta_vars
          servlet_request.query
          erb.result(binding)
        }
      end
    end
  end
end
lib64/ruby/2.2.0/webrick/httpservlet/cgihandler.rb000064400000007066150402106400015544 0ustar00#
# cgihandler.rb -- CGIHandler Class
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: cgihandler.rb,v 1.27 2003/03/21 19:56:01 gotoyuzo Exp $

require 'rbconfig'
require 'tempfile'
require 'webrick/config'
require 'webrick/httpservlet/abstract'

module WEBrick
  module HTTPServlet

    ##
    # Servlet for handling CGI scripts
    #
    # Example:
    #
    #  server.mount('/cgi/my_script', WEBrick::HTTPServlet::CGIHandler,
    #               '/path/to/my_script')

    class CGIHandler < AbstractServlet
      Ruby = RbConfig.ruby # :nodoc:
      CGIRunner = "\"#{Ruby}\" \"#{WEBrick::Config::LIBDIR}/httpservlet/cgi_runner.rb\"" # :nodoc:

      ##
      # Creates a new CGI script servlet for the script at +name+

      def initialize(server, name)
        super(server, name)
        @script_filename = name
        @tempdir = server[:TempDir]
        @cgicmd = "#{CGIRunner} #{server[:CGIInterpreter]}"
      end

      # :stopdoc:

      def do_GET(req, res)
        cgi_in = IO::popen(@cgicmd, "wb")
        cgi_out = Tempfile.new("webrick.cgiout.", @tempdir, mode: IO::BINARY)
        cgi_out.set_encoding("ASCII-8BIT")
        cgi_err = Tempfile.new("webrick.cgierr.", @tempdir, mode: IO::BINARY)
        cgi_err.set_encoding("ASCII-8BIT")
        begin
          cgi_in.sync = true
          meta = req.meta_vars
          meta["SCRIPT_FILENAME"] = @script_filename
          meta["PATH"] = @config[:CGIPathEnv]
          meta.delete("HTTP_PROXY")
          if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM
            meta["SystemRoot"] = ENV["SystemRoot"]
          end
          dump = Marshal.dump(meta)

          cgi_in.write("%8d" % cgi_out.path.bytesize)
          cgi_in.write(cgi_out.path)
          cgi_in.write("%8d" % cgi_err.path.bytesize)
          cgi_in.write(cgi_err.path)
          cgi_in.write("%8d" % dump.bytesize)
          cgi_in.write(dump)

          req.body { |chunk| cgi_in.write(chunk) }
        ensure
          cgi_in.close
          status = $?.exitstatus
          sleep 0.1 if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM
          data = cgi_out.read
          cgi_out.close(true)
          if errmsg = cgi_err.read
            if errmsg.bytesize > 0
              @logger.error("CGIHandler: #{@script_filename}:\n" + errmsg)
            end
          end
          cgi_err.close(true)
        end

        if status != 0
          @logger.error("CGIHandler: #{@script_filename} exit with #{status}")
        end

        data = "" unless data
        raw_header, body = data.split(/^[\xd\xa]+/, 2)
        raise HTTPStatus::InternalServerError,
          "Premature end of script headers: #{@script_filename}" if body.nil?

        begin
          header = HTTPUtils::parse_header(raw_header)
          if /^(\d+)/ =~ header['status'][0]
            res.status = $1.to_i
            header.delete('status')
          end
          if header.has_key?('location')
            # RFC 3875 6.2.3, 6.2.4
            res.status = 302 unless (300...400) === res.status
          end
          if header.has_key?('set-cookie')
            header['set-cookie'].each{|k|
              res.cookies << Cookie.parse_set_cookie(k)
            }
            header.delete('set-cookie')
          end
          header.each{|key, val| res[key] = val.join(", ") }
        rescue => ex
          raise HTTPStatus::InternalServerError, ex.message
        end
        res.body = body
      end
      alias do_POST do_GET

      # :startdoc:
    end

  end
end
lib64/ruby/2.2.0/webrick/httpservlet/filehandler.rb000064400000041634150402106400015720 0ustar00#
# filehandler.rb -- FileHandler Module
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2003 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: filehandler.rb,v 1.44 2003/06/07 01:34:51 gotoyuzo Exp $

require 'thread'
require 'time'

require 'webrick/htmlutils'
require 'webrick/httputils'
require 'webrick/httpstatus'

module WEBrick
  module HTTPServlet

    ##
    # Servlet for serving a single file.  You probably want to use the
    # FileHandler servlet instead as it handles directories and fancy indexes.
    #
    # Example:
    #
    #   server.mount('/my_page.txt', WEBrick::HTTPServlet::DefaultFileHandler,
    #                '/path/to/my_page.txt')
    #
    # This servlet handles If-Modified-Since and Range requests.

    class DefaultFileHandler < AbstractServlet

      ##
      # Creates a DefaultFileHandler instance for the file at +local_path+.

      def initialize(server, local_path)
        super(server, local_path)
        @local_path = local_path
      end

      # :stopdoc:

      def do_GET(req, res)
        st = File::stat(@local_path)
        mtime = st.mtime
        res['etag'] = sprintf("%x-%x-%x", st.ino, st.size, st.mtime.to_i)

        if not_modified?(req, res, mtime, res['etag'])
          res.body = ''
          raise HTTPStatus::NotModified
        elsif req['range']
          make_partial_content(req, res, @local_path, st.size)
          raise HTTPStatus::PartialContent
        else
          mtype = HTTPUtils::mime_type(@local_path, @config[:MimeTypes])
          res['content-type'] = mtype
          res['content-length'] = st.size
          res['last-modified'] = mtime.httpdate
          res.body = open(@local_path, "rb")
        end
      end

      def not_modified?(req, res, mtime, etag)
        if ir = req['if-range']
          begin
            if Time.httpdate(ir) >= mtime
              return true
            end
          rescue
            if HTTPUtils::split_header_value(ir).member?(res['etag'])
              return true
            end
          end
        end

        if (ims = req['if-modified-since']) && Time.parse(ims) >= mtime
          return true
        end

        if (inm = req['if-none-match']) &&
           HTTPUtils::split_header_value(inm).member?(res['etag'])
          return true
        end

        return false
      end

      # returns a lambda for webrick/httpresponse.rb send_body_proc
      def multipart_body(body, parts, boundary, mtype, filesize)
        lambda do |socket|
          begin
            begin
              first = parts.shift
              last = parts.shift
              socket.write(
                "--#{boundary}#{CRLF}" \
                "Content-Type: #{mtype}#{CRLF}" \
                "Content-Range: bytes #{first}-#{last}/#{filesize}#{CRLF}" \
                "#{CRLF}"
              )

              begin
                IO.copy_stream(body, socket, last - first + 1, first)
              rescue NotImplementedError
                body.seek(first, IO::SEEK_SET)
                IO.copy_stream(body, socket, last - first + 1)
              end
              socket.write(CRLF)
            end while parts[0]
            socket.write("--#{boundary}--#{CRLF}")
          ensure
            body.close
          end
        end
      end

      def make_partial_content(req, res, filename, filesize)
        mtype = HTTPUtils::mime_type(filename, @config[:MimeTypes])
        unless ranges = HTTPUtils::parse_range_header(req['range'])
          raise HTTPStatus::BadRequest,
            "Unrecognized range-spec: \"#{req['range']}\""
        end
        open(filename, "rb"){|io|
          if ranges.size > 1
            time = Time.now
            boundary = "#{time.sec}_#{time.usec}_#{Process::pid}"
            parts = []
            ranges.each {|range|
              prange = prepare_range(range, filesize)
              next if prange[0] < 0
              parts.concat(prange)
            }
            raise HTTPStatus::RequestRangeNotSatisfiable if parts.empty?
            res["content-type"] = "multipart/byteranges; boundary=#{boundary}"
            if req.http_version < '1.1'
              res['connection'] = 'close'
            else
              res.chunked = true
            end
            res.body = multipart_body(io.dup, parts, boundary, mtype, filesize)
          elsif range = ranges[0]
            first, last = prepare_range(range, filesize)
            raise HTTPStatus::RequestRangeNotSatisfiable if first < 0
            res['content-type'] = mtype
            res['content-range'] = "bytes #{first}-#{last}/#{filesize}"
            res['content-length'] = last - first + 1
            res.body = io.dup
          else
            raise HTTPStatus::BadRequest
          end
        }
      end

      def prepare_range(range, filesize)
        first = range.first < 0 ? filesize + range.first : range.first
        return -1, -1 if first < 0 || first >= filesize
        last = range.last < 0 ? filesize + range.last : range.last
        last = filesize - 1 if last >= filesize
        return first, last
      end

      # :startdoc:
    end

    ##
    # Serves a directory including fancy indexing and a variety of other
    # options.
    #
    # Example:
    #
    #   server.mount '/assets', WEBrick::FileHandler, '/path/to/assets'

    class FileHandler < AbstractServlet
      HandlerTable = Hash.new # :nodoc:

      ##
      # Allow custom handling of requests for files with +suffix+ by class
      # +handler+

      def self.add_handler(suffix, handler)
        HandlerTable[suffix] = handler
      end

      ##
      # Remove custom handling of requests for files with +suffix+

      def self.remove_handler(suffix)
        HandlerTable.delete(suffix)
      end

      ##
      # Creates a FileHandler servlet on +server+ that serves files starting
      # at directory +root+
      #
      # +options+ may be a Hash containing keys from
      # WEBrick::Config::FileHandler or +true+ or +false+.
      #
      # If +options+ is true or false then +:FancyIndexing+ is enabled or
      # disabled respectively.

      def initialize(server, root, options={}, default=Config::FileHandler)
        @config = server.config
        @logger = @config[:Logger]
        @root = File.expand_path(root)
        if options == true || options == false
          options = { :FancyIndexing => options }
        end
        @options = default.dup.update(options)
      end

      # :stopdoc:

      def service(req, res)
        # if this class is mounted on "/" and /~username is requested.
        # we're going to override path informations before invoking service.
        if defined?(Etc) && @options[:UserDir] && req.script_name.empty?
          if %r|^(/~([^/]+))| =~ req.path_info
            script_name, user = $1, $2
            path_info = $'
            begin
              passwd = Etc::getpwnam(user)
              @root = File::join(passwd.dir, @options[:UserDir])
              req.script_name = script_name
              req.path_info = path_info
            rescue
              @logger.debug "#{self.class}#do_GET: getpwnam(#{user}) failed"
            end
          end
        end
        prevent_directory_traversal(req, res)
        super(req, res)
      end

      def do_GET(req, res)
        unless exec_handler(req, res)
          set_dir_list(req, res)
        end
      end

      def do_POST(req, res)
        unless exec_handler(req, res)
          raise HTTPStatus::NotFound, "`#{req.path}' not found."
        end
      end

      def do_OPTIONS(req, res)
        unless exec_handler(req, res)
          super(req, res)
        end
      end

      # ToDo
      # RFC2518: HTTP Extensions for Distributed Authoring -- WEBDAV
      #
      # PROPFIND PROPPATCH MKCOL DELETE PUT COPY MOVE
      # LOCK UNLOCK

      # RFC3253: Versioning Extensions to WebDAV
      #          (Web Distributed Authoring and Versioning)
      #
      # VERSION-CONTROL REPORT CHECKOUT CHECK_IN UNCHECKOUT
      # MKWORKSPACE UPDATE LABEL MERGE ACTIVITY

      private

      def trailing_pathsep?(path)
        # check for trailing path separator:
        #   File.dirname("/aaaa/bbbb/")      #=> "/aaaa")
        #   File.dirname("/aaaa/bbbb/x")     #=> "/aaaa/bbbb")
        #   File.dirname("/aaaa/bbbb")       #=> "/aaaa")
        #   File.dirname("/aaaa/bbbbx")      #=> "/aaaa")
        return File.dirname(path) != File.dirname(path+"x")
      end

      def prevent_directory_traversal(req, res)
        # Preventing directory traversal on Windows platforms;
        # Backslashes (0x5c) in path_info are not interpreted as special
        # character in URI notation. So the value of path_info should be
        # normalize before accessing to the filesystem.

        # dirty hack for filesystem encoding; in nature, File.expand_path
        # should not be used for path normalization.  [Bug #3345]
        path = req.path_info.dup.force_encoding(Encoding.find("filesystem"))
        if trailing_pathsep?(req.path_info)
          # File.expand_path removes the trailing path separator.
          # Adding a character is a workaround to save it.
          #  File.expand_path("/aaa/")        #=> "/aaa"
          #  File.expand_path("/aaa/" + "x")  #=> "/aaa/x"
          expanded = File.expand_path(path + "x")
          expanded.chop!  # remove trailing "x"
        else
          expanded = File.expand_path(path)
        end
        expanded.force_encoding(req.path_info.encoding)
        req.path_info = expanded
      end

      def exec_handler(req, res)
        raise HTTPStatus::NotFound, "`#{req.path}' not found" unless @root
        if set_filename(req, res)
          handler = get_handler(req, res)
          call_callback(:HandlerCallback, req, res)
          h = handler.get_instance(@config, res.filename)
          h.service(req, res)
          return true
        end
        call_callback(:HandlerCallback, req, res)
        return false
      end

      def get_handler(req, res)
        suffix1 = (/\.(\w+)\z/ =~ res.filename) && $1.downcase
        if /\.(\w+)\.([\w\-]+)\z/ =~ res.filename
          if @options[:AcceptableLanguages].include?($2.downcase)
            suffix2 = $1.downcase
          end
        end
        handler_table = @options[:HandlerTable]
        return handler_table[suffix1] || handler_table[suffix2] ||
               HandlerTable[suffix1] || HandlerTable[suffix2] ||
               DefaultFileHandler
      end

      def set_filename(req, res)
        res.filename = @root.dup
        path_info = req.path_info.scan(%r|/[^/]*|)

        path_info.unshift("")  # dummy for checking @root dir
        while base = path_info.first
          break if base == "/"
          break unless File.directory?(File.expand_path(res.filename + base))
          shift_path_info(req, res, path_info)
          call_callback(:DirectoryCallback, req, res)
        end

        if base = path_info.first
          if base == "/"
            if file = search_index_file(req, res)
              shift_path_info(req, res, path_info, file)
              call_callback(:FileCallback, req, res)
              return true
            end
            shift_path_info(req, res, path_info)
          elsif file = search_file(req, res, base)
            shift_path_info(req, res, path_info, file)
            call_callback(:FileCallback, req, res)
            return true
          else
            raise HTTPStatus::NotFound, "`#{req.path}' not found."
          end
        end

        return false
      end

      def check_filename(req, res, name)
        if nondisclosure_name?(name) || windows_ambiguous_name?(name)
          @logger.warn("the request refers nondisclosure name `#{name}'.")
          raise HTTPStatus::NotFound, "`#{req.path}' not found."
        end
      end

      def shift_path_info(req, res, path_info, base=nil)
        tmp = path_info.shift
        base = base || tmp
        req.path_info = path_info.join
        req.script_name << base
        res.filename = File.expand_path(res.filename + base)
        check_filename(req, res, File.basename(res.filename))
      end

      def search_index_file(req, res)
        @config[:DirectoryIndex].each{|index|
          if file = search_file(req, res, "/"+index)
            return file
          end
        }
        return nil
      end

      def search_file(req, res, basename)
        langs = @options[:AcceptableLanguages]
        path = res.filename + basename
        if File.file?(path)
          return basename
        elsif langs.size > 0
          req.accept_language.each{|lang|
            path_with_lang = path + ".#{lang}"
            if langs.member?(lang) && File.file?(path_with_lang)
              return basename + ".#{lang}"
            end
          }
          (langs - req.accept_language).each{|lang|
            path_with_lang = path + ".#{lang}"
            if File.file?(path_with_lang)
              return basename + ".#{lang}"
            end
          }
        end
        return nil
      end

      def call_callback(callback_name, req, res)
        if cb = @options[callback_name]
          cb.call(req, res)
        end
      end

      def windows_ambiguous_name?(name)
        return true if /[. ]+\z/ =~ name
        return true if /::\$DATA\z/ =~ name
        return false
      end

      def nondisclosure_name?(name)
        @options[:NondisclosureName].each{|pattern|
          if File.fnmatch(pattern, name, File::FNM_CASEFOLD)
            return true
          end
        }
        return false
      end

      def set_dir_list(req, res)
        redirect_to_directory_uri(req, res)
        unless @options[:FancyIndexing]
          raise HTTPStatus::Forbidden, "no access permission to `#{req.path}'"
        end
        local_path = res.filename
        list = Dir::entries(local_path).collect{|name|
          next if name == "." || name == ".."
          next if nondisclosure_name?(name)
          next if windows_ambiguous_name?(name)
          st = (File::stat(File.join(local_path, name)) rescue nil)
          if st.nil?
            [ name, nil, -1 ]
          elsif st.directory?
            [ name + "/", st.mtime, -1 ]
          else
            [ name, st.mtime, st.size ]
          end
        }
        list.compact!

        query = req.query

        d0 = nil
        idx = nil
        %w[N M S].each_with_index do |q, i|
          if d = query.delete(q)
            idx ||= i
            d0 ||= d
          end
        end
        d0 ||= "A"
        idx ||= 0
        d1 = (d0 == "A") ? "D" : "A"

        if d0 == "A"
          list.sort!{|a,b| a[idx] <=> b[idx] }
        else
          list.sort!{|a,b| b[idx] <=> a[idx] }
        end

        namewidth = query["NameWidth"]
        if namewidth == "*"
          namewidth = nil
        elsif !namewidth or (namewidth = namewidth.to_i) < 2
          namewidth = 25
        end
        query = query.inject('') {|s, (k, v)| s << '&' << HTMLUtils::escape("#{k}=#{v}")}

        type = "text/html"
        case enc = Encoding.find('filesystem')
        when Encoding::US_ASCII, Encoding::ASCII_8BIT
        else
          type << "; charset=\"#{enc.name}\""
        end
        res['content-type'] = type

        title = "Index of #{HTMLUtils::escape(req.path)}"
        res.body = <<-_end_of_html_
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
  <HEAD>
    <TITLE>#{title}</TITLE>
    <style type="text/css">
    <!--
    .name, .mtime { text-align: left; }
    .size { text-align: right; }
    td { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
    table { border-collapse: collapse; }
    tr th { border-bottom: 2px groove; }
    //-->
    </style>
  </HEAD>
  <BODY>
    <H1>#{title}</H1>
        _end_of_html_

        res.body << "<TABLE width=\"100%\"><THEAD><TR>\n"
        res.body << "<TH class=\"name\"><A HREF=\"?N=#{d1}#{query}\">Name</A></TH>"
        res.body << "<TH class=\"mtime\"><A HREF=\"?M=#{d1}#{query}\">Last modified</A></TH>"
        res.body << "<TH class=\"size\"><A HREF=\"?S=#{d1}#{query}\">Size</A></TH>\n"
        res.body << "</TR></THEAD>\n"
        res.body << "<TBODY>\n"

        query.sub!(/\A&/, '?')
        list.unshift [ "..", File::mtime(local_path+"/.."), -1 ]
        list.each{ |name, time, size|
          if name == ".."
            dname = "Parent Directory"
          elsif namewidth and name.size > namewidth
            dname = name[0...(namewidth - 2)] << '..'
          else
            dname = name
          end
          s =  "<TR><TD class=\"name\"><A HREF=\"#{HTTPUtils::escape(name)}#{query if name.end_with?('/')}\">#{HTMLUtils::escape(dname)}</A></TD>"
          s << "<TD class=\"mtime\">" << (time ? time.strftime("%Y/%m/%d %H:%M") : "") << "</TD>"
          s << "<TD class=\"size\">" << (size >= 0 ? size.to_s : "-") << "</TD></TR>\n"
          res.body << s
        }
        res.body << "</TBODY></TABLE>"
        res.body << "<HR>"

        res.body << <<-_end_of_html_
    <ADDRESS>
     #{HTMLUtils::escape(@config[:ServerSoftware])}<BR>
     at #{req.host}:#{req.port}
    </ADDRESS>
  </BODY>
</HTML>
        _end_of_html_
      end

      # :startdoc:
    end
  end
end
lib64/ruby/2.2.0/webrick/httpservlet/abstract.rb000064400000010257150402106400015243 0ustar00#
# httpservlet.rb -- HTTPServlet Module
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: abstract.rb,v 1.24 2003/07/11 11:16:46 gotoyuzo Exp $

require 'thread'

require 'webrick/htmlutils'
require 'webrick/httputils'
require 'webrick/httpstatus'

module WEBrick
  module HTTPServlet
    class HTTPServletError < StandardError; end

    ##
    # AbstractServlet allows HTTP server modules to be reused across multiple
    # servers and allows encapsulation of functionality.
    #
    # By default a servlet will respond to GET, HEAD (through an alias to GET)
    # and OPTIONS requests.
    #
    # By default a new servlet is initialized for every request.  A servlet
    # instance can be reused by overriding ::get_instance in the
    # AbstractServlet subclass.
    #
    # == A Simple Servlet
    #
    #  class Simple < WEBrick::HTTPServlet::AbstractServlet
    #    def do_GET request, response
    #      status, content_type, body = do_stuff_with request
    #
    #      response.status = status
    #      response['Content-Type'] = content_type
    #      response.body = body
    #    end
    #
    #    def do_stuff_with request
    #      return 200, 'text/plain', 'you got a page'
    #    end
    #  end
    #
    # This servlet can be mounted on a server at a given path:
    #
    #   server.mount '/simple', Simple
    #
    # == Servlet Configuration
    #
    # Servlets can be configured via initialize.  The first argument is the
    # HTTP server the servlet is being initialized for.
    #
    #  class Configurable < Simple
    #    def initialize server, color, size
    #      super server
    #      @color = color
    #      @size = size
    #    end
    #
    #    def do_stuff_with request
    #      content = "<p " \
    #                %q{style="color: #{@color}; font-size: #{@size}"} \
    #                ">Hello, World!"
    #
    #      return 200, "text/html", content
    #    end
    #  end
    #
    # This servlet must be provided two arguments at mount time:
    #
    #   server.mount '/configurable', Configurable, 'red', '2em'

    class AbstractServlet

      ##
      # Factory for servlet instances that will handle a request from +server+
      # using +options+ from the mount point.  By default a new servlet
      # instance is created for every call.

      def self.get_instance(server, *options)
        self.new(server, *options)
      end

      ##
      # Initializes a new servlet for +server+ using +options+ which are
      # stored as-is in +@options+.  +@logger+ is also provided.

      def initialize(server, *options)
        @server = @config = server
        @logger = @server[:Logger]
        @options = options
      end

      ##
      # Dispatches to a +do_+ method based on +req+ if such a method is
      # available.  (+do_GET+ for a GET request).  Raises a MethodNotAllowed
      # exception if the method is not implemented.

      def service(req, res)
        method_name = "do_" + req.request_method.gsub(/-/, "_")
        if respond_to?(method_name)
          __send__(method_name, req, res)
        else
          raise HTTPStatus::MethodNotAllowed,
                "unsupported method `#{req.request_method}'."
        end
      end

      ##
      # Raises a NotFound exception

      def do_GET(req, res)
        raise HTTPStatus::NotFound, "not found."
      end

      ##
      # Dispatches to do_GET

      def do_HEAD(req, res)
        do_GET(req, res)
      end

      ##
      # Returns the allowed HTTP request methods

      def do_OPTIONS(req, res)
        m = self.methods.grep(/\Ado_([A-Z]+)\z/) {$1}
        m.sort!
        res["allow"] = m.join(",")
      end

      private

      ##
      # Redirects to a path ending in /

      def redirect_to_directory_uri(req, res)
        if req.path[-1] != ?/
          location = WEBrick::HTTPUtils.escape_path(req.path + "/")
          if req.query_string && req.query_string.bytesize > 0
            location << "?" << req.query_string
          end
          res.set_redirect(HTTPStatus::MovedPermanently, location)
        end
      end
    end

  end
end
lib64/ruby/2.2.0/webrick/httpservlet/cgi_runner.rb000064400000001716150402106400015573 0ustar00#
# cgi_runner.rb -- CGI launcher.
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000 TAKAHASHI Masayoshi, GOTOU YUUZOU
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: cgi_runner.rb,v 1.9 2002/09/25 11:33:15 gotoyuzo Exp $

def sysread(io, size)
  buf = ""
  while size > 0
    tmp = io.sysread(size)
    buf << tmp
    size -= tmp.bytesize
  end
  return buf
end

STDIN.binmode

len = sysread(STDIN, 8).to_i
out = sysread(STDIN, len)
STDOUT.reopen(open(out, "w"))

len = sysread(STDIN, 8).to_i
err = sysread(STDIN, len)
STDERR.reopen(open(err, "w"))

len  = sysread(STDIN, 8).to_i
dump = sysread(STDIN, len)
hash = Marshal.restore(dump)
ENV.keys.each{|name| ENV.delete(name) }
hash.each{|k, v| ENV[k] = v if v }

dir = File::dirname(ENV["SCRIPT_FILENAME"])
Dir::chdir dir

if ARGV[0]
  argv = ARGV.dup
  argv << ENV["SCRIPT_FILENAME"]
  exec(*argv)
  # NOTREACHED
end
exec ENV["SCRIPT_FILENAME"]
lib64/ruby/2.2.0/webrick/httpservlet/prochandler.rb000064400000002013150402106400015730 0ustar00#
# prochandler.rb -- ProcHandler Class
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: prochandler.rb,v 1.7 2002/09/21 12:23:42 gotoyuzo Exp $

require 'webrick/httpservlet/abstract.rb'

module WEBrick
  module HTTPServlet

    ##
    # Mounts a proc at a path that accepts a request and response.
    #
    # Instead of mounting this servlet with WEBrick::HTTPServer#mount use
    # WEBrick::HTTPServer#mount_proc:
    #
    #   server.mount_proc '/' do |req, res|
    #     res.body = 'it worked!'
    #     res.status = 200
    #   end

    class ProcHandler < AbstractServlet
      # :stopdoc:
      def get_instance(server, *options)
        self
      end

      def initialize(proc)
        @proc = proc
      end

      def do_GET(request, response)
        @proc.call(request, response)
      end

      alias do_POST do_GET
      # :startdoc:
    end

  end
end
lib64/ruby/2.2.0/webrick/server.rb000064400000022615150402106400012363 0ustar00#
# server.rb -- GenericServer Class
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: server.rb,v 1.62 2003/07/22 19:20:43 gotoyuzo Exp $

require 'thread'
require 'socket'
require 'webrick/config'
require 'webrick/log'

module WEBrick

  ##
  # Server error exception

  class ServerError < StandardError; end

  ##
  # Base server class

  class SimpleServer

    ##
    # A SimpleServer only yields when you start it

    def SimpleServer.start
      yield
    end
  end

  ##
  # A generic module for daemonizing a process

  class Daemon

    ##
    # Performs the standard operations for daemonizing a process.  Runs a
    # block, if given.

    def Daemon.start
      exit!(0) if fork
      Process::setsid
      exit!(0) if fork
      Dir::chdir("/")
      File::umask(0)
      STDIN.reopen("/dev/null")
      STDOUT.reopen("/dev/null", "w")
      STDERR.reopen("/dev/null", "w")
      yield if block_given?
    end
  end

  ##
  # Base TCP server class.  You must subclass GenericServer and provide a #run
  # method.

  class GenericServer

    ##
    # The server status.  One of :Stop, :Running or :Shutdown

    attr_reader :status

    ##
    # The server configuration

    attr_reader :config

    ##
    # The server logger.  This is independent from the HTTP access log.

    attr_reader :logger

    ##
    # Tokens control the number of outstanding clients.  The
    # <code>:MaxClients</code> configuration sets this.

    attr_reader :tokens

    ##
    # Sockets listening for connections.

    attr_reader :listeners

    ##
    # Creates a new generic server from +config+.  The default configuration
    # comes from +default+.

    def initialize(config={}, default=Config::General)
      @config = default.dup.update(config)
      @status = :Stop
      @config[:Logger] ||= Log::new
      @logger = @config[:Logger]

      @tokens = SizedQueue.new(@config[:MaxClients])
      @config[:MaxClients].times{ @tokens.push(nil) }

      webrickv = WEBrick::VERSION
      rubyv = "#{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
      @logger.info("WEBrick #{webrickv}")
      @logger.info("ruby #{rubyv}")

      @listeners = []
      @shutdown_pipe = nil
      unless @config[:DoNotListen]
        if @config[:Listen]
          warn(":Listen option is deprecated; use GenericServer#listen")
        end
        listen(@config[:BindAddress], @config[:Port])
        if @config[:Port] == 0
          @config[:Port] = @listeners[0].addr[1]
        end
      end
    end

    ##
    # Retrieves +key+ from the configuration

    def [](key)
      @config[key]
    end

    ##
    # Adds listeners from +address+ and +port+ to the server.  See
    # WEBrick::Utils::create_listeners for details.

    def listen(address, port)
      @listeners += Utils::create_listeners(address, port, @logger)
      setup_shutdown_pipe
    end

    ##
    # Starts the server and runs the +block+ for each connection.  This method
    # does not return until the server is stopped from a signal handler or
    # another thread using #stop or #shutdown.
    #
    # If the block raises a subclass of StandardError the exception is logged
    # and ignored.  If an IOError or Errno::EBADF exception is raised the
    # exception is ignored.  If an Exception subclass is raised the exception
    # is logged and re-raised which stops the server.
    #
    # To completely shut down a server call #shutdown from ensure:
    #
    #   server = WEBrick::GenericServer.new
    #   # or WEBrick::HTTPServer.new
    #
    #   begin
    #     server.start
    #   ensure
    #     server.shutdown
    #   end

    def start(&block)
      raise ServerError, "already started." if @status != :Stop
      server_type = @config[:ServerType] || SimpleServer

      server_type.start{
        @logger.info \
          "#{self.class}#start: pid=#{$$} port=#{@config[:Port]}"
        call_callback(:StartCallback)

        shutdown_pipe = @shutdown_pipe

        thgroup = ThreadGroup.new
        @status = :Running
        begin
          while @status == :Running
            begin
              if svrs = IO.select([shutdown_pipe[0], *@listeners], nil, nil, 2.0)
                if svrs[0].include? shutdown_pipe[0]
                  break
                end
                svrs[0].each{|svr|
                  @tokens.pop          # blocks while no token is there.
                  if sock = accept_client(svr)
                    sock.do_not_reverse_lookup = config[:DoNotReverseLookup]
                    th = start_thread(sock, &block)
                    th[:WEBrickThread] = true
                    thgroup.add(th)
                  else
                    @tokens.push(nil)
                  end
                }
              end
            rescue Errno::EBADF, Errno::ENOTSOCK, IOError => ex
              # if the listening socket was closed in GenericServer#shutdown,
              # IO::select raise it.
            rescue StandardError => ex
              msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}"
              @logger.error msg
            rescue Exception => ex
              @logger.fatal ex
              raise
            end
          end
        ensure
          cleanup_shutdown_pipe(shutdown_pipe)
          cleanup_listener
          @status = :Shutdown
          @logger.info "going to shutdown ..."
          thgroup.list.each{|th| th.join if th[:WEBrickThread] }
          call_callback(:StopCallback)
          @logger.info "#{self.class}#start done."
          @status = :Stop
        end
      }
    end

    ##
    # Stops the server from accepting new connections.

    def stop
      if @status == :Running
        @status = :Shutdown
      end
    end

    ##
    # Shuts down the server and all listening sockets.  New listeners must be
    # provided to restart the server.

    def shutdown
      stop

      shutdown_pipe = @shutdown_pipe # another thread may modify @shutdown_pipe.
      if shutdown_pipe
        if !shutdown_pipe[1].closed?
          begin
            shutdown_pipe[1].close
          rescue IOError # closed by another thread.
          end
        end
      end
    end

    ##
    # You must subclass GenericServer and implement \#run which accepts a TCP
    # client socket

    def run(sock)
      @logger.fatal "run() must be provided by user."
    end

    private

    # :stopdoc:

    ##
    # Accepts a TCP client socket from the TCP server socket +svr+ and returns
    # the client socket.

    def accept_client(svr)
      sock = nil
      begin
        sock = svr.accept
        sock.sync = true
        Utils::set_non_blocking(sock)
        Utils::set_close_on_exec(sock)
      rescue Errno::ECONNRESET, Errno::ECONNABORTED,
             Errno::EPROTO, Errno::EINVAL
      rescue StandardError => ex
        msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}"
        @logger.error msg
      end
      return sock
    end

    ##
    # Starts a server thread for the client socket +sock+ that runs the given
    # +block+.
    #
    # Sets the socket to the <code>:WEBrickSocket</code> thread local variable
    # in the thread.
    #
    # If any errors occur in the block they are logged and handled.

    def start_thread(sock, &block)
      Thread.start{
        begin
          Thread.current[:WEBrickSocket] = sock
          begin
            addr = sock.peeraddr
            @logger.debug "accept: #{addr[3]}:#{addr[1]}"
          rescue SocketError
            @logger.debug "accept: <address unknown>"
            raise
          end
          call_callback(:AcceptCallback, sock)
          block ? block.call(sock) : run(sock)
        rescue Errno::ENOTCONN
          @logger.debug "Errno::ENOTCONN raised"
        rescue ServerError => ex
          msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}"
          @logger.error msg
        rescue Exception => ex
          @logger.error ex
        ensure
          @tokens.push(nil)
          Thread.current[:WEBrickSocket] = nil
          if addr
            @logger.debug "close: #{addr[3]}:#{addr[1]}"
          else
            @logger.debug "close: <address unknown>"
          end
          sock.close unless sock.closed?
        end
      }
    end

    ##
    # Calls the callback +callback_name+ from the configuration with +args+

    def call_callback(callback_name, *args)
      if cb = @config[callback_name]
        cb.call(*args)
      end
    end

    def setup_shutdown_pipe
      if !@shutdown_pipe
        @shutdown_pipe = IO.pipe
      end
      @shutdown_pipe
    end

    def cleanup_shutdown_pipe(shutdown_pipe)
      @shutdown_pipe = nil
      shutdown_pipe.each {|io|
        if !io.closed?
          begin
            io.close
          rescue IOError # another thread closed io.
          end
        end
      }
    end

    def cleanup_listener
      @listeners.each{|s|
        if @logger.debug?
          addr = s.addr
          @logger.debug("close TCPSocket(#{addr[2]}, #{addr[1]})")
        end
        begin
          s.shutdown
        rescue Errno::ENOTCONN
          # when `Errno::ENOTCONN: Socket is not connected' on some platforms,
          # call #close instead of #shutdown.
          # (ignore @config[:ShutdownSocketWithoutClose])
          s.close
        else
          unless @config[:ShutdownSocketWithoutClose]
            s.close
          end
        end
      }
      @listeners.clear
    end
  end    # end of GenericServer
end
lib64/ruby/2.2.0/webrick/httpserver.rb000064400000017322150402106400013262 0ustar00#
# httpserver.rb -- HTTPServer Class
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: httpserver.rb,v 1.63 2002/10/01 17:16:32 gotoyuzo Exp $

require 'webrick/server'
require 'webrick/httputils'
require 'webrick/httpstatus'
require 'webrick/httprequest'
require 'webrick/httpresponse'
require 'webrick/httpservlet'
require 'webrick/accesslog'

module WEBrick
  class HTTPServerError < ServerError; end

  ##
  # An HTTP Server

  class HTTPServer < ::WEBrick::GenericServer
    ##
    # Creates a new HTTP server according to +config+
    #
    # An HTTP server uses the following attributes:
    #
    # :AccessLog:: An array of access logs.  See WEBrick::AccessLog
    # :BindAddress:: Local address for the server to bind to
    # :DocumentRoot:: Root path to serve files from
    # :DocumentRootOptions:: Options for the default HTTPServlet::FileHandler
    # :HTTPVersion:: The HTTP version of this server
    # :Port:: Port to listen on
    # :RequestCallback:: Called with a request and response before each
    #                    request is serviced.
    # :RequestTimeout:: Maximum time to wait between requests
    # :ServerAlias:: Array of alternate names for this server for virtual
    #                hosting
    # :ServerName:: Name for this server for virtual hosting

    def initialize(config={}, default=Config::HTTP)
      super(config, default)
      @http_version = HTTPVersion::convert(@config[:HTTPVersion])

      @mount_tab = MountTable.new
      if @config[:DocumentRoot]
        mount("/", HTTPServlet::FileHandler, @config[:DocumentRoot],
              @config[:DocumentRootOptions])
      end

      unless @config[:AccessLog]
        @config[:AccessLog] = [
          [ $stderr, AccessLog::COMMON_LOG_FORMAT ],
          [ $stderr, AccessLog::REFERER_LOG_FORMAT ]
        ]
      end

      @virtual_hosts = Array.new
    end

    ##
    # Processes requests on +sock+

    def run(sock)
      while true
        res = HTTPResponse.new(@config)
        req = HTTPRequest.new(@config)
        server = self
        begin
          timeout = @config[:RequestTimeout]
          while timeout > 0
            break if IO.select([sock], nil, nil, 0.5)
            break if @status != :Running
            timeout -= 0.5
          end
          raise HTTPStatus::EOFError if timeout <= 0 || @status != :Running
          raise HTTPStatus::EOFError if sock.eof?
          req.parse(sock)
          res.request_method = req.request_method
          res.request_uri = req.request_uri
          res.request_http_version = req.http_version
          res.keep_alive = req.keep_alive?
          server = lookup_server(req) || self
          if callback = server[:RequestCallback]
            callback.call(req, res)
          elsif callback = server[:RequestHandler]
            msg = ":RequestHandler is deprecated, please use :RequestCallback"
            @logger.warn(msg)
            callback.call(req, res)
          end
          server.service(req, res)
        rescue HTTPStatus::EOFError, HTTPStatus::RequestTimeout => ex
          res.set_error(ex)
        rescue HTTPStatus::Error => ex
          @logger.error(ex.message)
          res.set_error(ex)
        rescue HTTPStatus::Status => ex
          res.status = ex.code
        rescue StandardError => ex
          @logger.error(ex)
          res.set_error(ex, true)
        ensure
          if req.request_line
            if req.keep_alive? && res.keep_alive?
              req.fixup()
            end
            res.send_response(sock)
            server.access_log(@config, req, res)
          end
        end
        break if @http_version < "1.1"
        break unless req.keep_alive?
        break unless res.keep_alive?
      end
    end

    ##
    # Services +req+ and fills in +res+

    def service(req, res)
      if req.unparsed_uri == "*"
        if req.request_method == "OPTIONS"
          do_OPTIONS(req, res)
          raise HTTPStatus::OK
        end
        raise HTTPStatus::NotFound, "`#{req.unparsed_uri}' not found."
      end

      servlet, options, script_name, path_info = search_servlet(req.path)
      raise HTTPStatus::NotFound, "`#{req.path}' not found." unless servlet
      req.script_name = script_name
      req.path_info = path_info
      si = servlet.get_instance(self, *options)
      @logger.debug(format("%s is invoked.", si.class.name))
      si.service(req, res)
    end

    ##
    # The default OPTIONS request handler says GET, HEAD, POST and OPTIONS
    # requests are allowed.

    def do_OPTIONS(req, res)
      res["allow"] = "GET,HEAD,POST,OPTIONS"
    end

    ##
    # Mounts +servlet+ on +dir+ passing +options+ to the servlet at creation
    # time

    def mount(dir, servlet, *options)
      @logger.debug(sprintf("%s is mounted on %s.", servlet.inspect, dir))
      @mount_tab[dir] = [ servlet, options ]
    end

    ##
    # Mounts +proc+ or +block+ on +dir+ and calls it with a
    # WEBrick::HTTPRequest and WEBrick::HTTPResponse

    def mount_proc(dir, proc=nil, &block)
      proc ||= block
      raise HTTPServerError, "must pass a proc or block" unless proc
      mount(dir, HTTPServlet::ProcHandler.new(proc))
    end

    ##
    # Unmounts +dir+

    def unmount(dir)
      @logger.debug(sprintf("unmount %s.", dir))
      @mount_tab.delete(dir)
    end
    alias umount unmount

    ##
    # Finds a servlet for +path+

    def search_servlet(path)
      script_name, path_info = @mount_tab.scan(path)
      servlet, options = @mount_tab[script_name]
      if servlet
        [ servlet, options, script_name, path_info ]
      end
    end

    ##
    # Adds +server+ as a virtual host.

    def virtual_host(server)
      @virtual_hosts << server
      @virtual_hosts = @virtual_hosts.sort_by{|s|
        num = 0
        num -= 4 if s[:BindAddress]
        num -= 2 if s[:Port]
        num -= 1 if s[:ServerName]
        num
      }
    end

    ##
    # Finds the appropriate virtual host to handle +req+

    def lookup_server(req)
      @virtual_hosts.find{|s|
        (s[:BindAddress].nil? || req.addr[3] == s[:BindAddress]) &&
        (s[:Port].nil?        || req.port == s[:Port])           &&
        ((s[:ServerName].nil?  || req.host == s[:ServerName]) ||
         (!s[:ServerAlias].nil? && s[:ServerAlias].find{|h| h === req.host}))
      }
    end

    ##
    # Logs +req+ and +res+ in the access logs.  +config+ is used for the
    # server name.

    def access_log(config, req, res)
      param = AccessLog::setup_params(config, req, res)
      @config[:AccessLog].each{|logger, fmt|
        logger << AccessLog::format(fmt+"\n", param)
      }
    end

    ##
    # Mount table for the path a servlet is mounted on in the directory space
    # of the server.  Users of WEBrick can only access this indirectly via
    # WEBrick::HTTPServer#mount, WEBrick::HTTPServer#unmount and
    # WEBrick::HTTPServer#search_servlet

    class MountTable # :nodoc:
      def initialize
        @tab = Hash.new
        compile
      end

      def [](dir)
        dir = normalize(dir)
        @tab[dir]
      end

      def []=(dir, val)
        dir = normalize(dir)
        @tab[dir] = val
        compile
        val
      end

      def delete(dir)
        dir = normalize(dir)
        res = @tab.delete(dir)
        compile
        res
      end

      def scan(path)
        @scanner =~ path
        [ $&, $' ]
      end

      private

      def compile
        k = @tab.keys
        k.sort!
        k.reverse!
        k.collect!{|path| Regexp.escape(path) }
        @scanner = Regexp.new("^(" + k.join("|") +")(?=/|$)")
      end

      def normalize(dir)
        ret = dir ? dir.dup : ""
        ret.sub!(%r|/+$|, "")
        ret
      end
    end
  end
end
lib64/ruby/2.2.0/webrick/cgi.rb000064400000017741150402106400011623 0ustar00#
# cgi.rb -- Yet another CGI library
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2003 Internet Programming with Ruby writers. All rights
# reserved.
#
# $Id: cgi.rb 38945 2013-01-26 01:12:54Z drbrain $

require "webrick/httprequest"
require "webrick/httpresponse"
require "webrick/config"
require "stringio"

module WEBrick

  # A CGI library using WEBrick requests and responses.
  #
  # Example:
  #
  #   class MyCGI < WEBrick::CGI
  #     def do_GET req, res
  #       res.body = 'it worked!'
  #       res.status = 200
  #     end
  #   end
  #
  #   MyCGI.new.start

  class CGI

    # The CGI error exception class

    CGIError = Class.new(StandardError)

    ##
    # The CGI configuration.  This is based on WEBrick::Config::HTTP

    attr_reader :config

    ##
    # The CGI logger

    attr_reader :logger

    ##
    # Creates a new CGI interface.
    #
    # The first argument in +args+ is a configuration hash which would update
    # WEBrick::Config::HTTP.
    #
    # Any remaining arguments are stored in the <code>@options</code> instance
    # variable for use by a subclass.

    def initialize(*args)
      if defined?(MOD_RUBY)
        unless ENV.has_key?("GATEWAY_INTERFACE")
          Apache.request.setup_cgi_env
        end
      end
      if %r{HTTP/(\d+\.\d+)} =~ ENV["SERVER_PROTOCOL"]
        httpv = $1
      end
      @config = WEBrick::Config::HTTP.dup.update(
        :ServerSoftware => ENV["SERVER_SOFTWARE"] || "null",
        :HTTPVersion    => HTTPVersion.new(httpv || "1.0"),
        :RunOnCGI       => true,   # to detect if it runs on CGI.
        :NPH            => false   # set true to run as NPH script.
      )
      if config = args.shift
        @config.update(config)
      end
      @config[:Logger] ||= WEBrick::BasicLog.new($stderr)
      @logger = @config[:Logger]
      @options = args
    end

    ##
    # Reads +key+ from the configuration

    def [](key)
      @config[key]
    end

    ##
    # Starts the CGI process with the given environment +env+ and standard
    # input and output +stdin+ and +stdout+.

    def start(env=ENV, stdin=$stdin, stdout=$stdout)
      sock = WEBrick::CGI::Socket.new(@config, env, stdin, stdout)
      req = HTTPRequest.new(@config)
      res = HTTPResponse.new(@config)
      unless @config[:NPH] or defined?(MOD_RUBY)
        def res.setup_header
          unless @header["status"]
            phrase = HTTPStatus::reason_phrase(@status)
            @header["status"] = "#{@status} #{phrase}"
          end
          super
        end
        def res.status_line
          ""
        end
      end

      begin
        req.parse(sock)
        req.script_name = (env["SCRIPT_NAME"] || File.expand_path($0)).dup
        req.path_info = (env["PATH_INFO"] || "").dup
        req.query_string = env["QUERY_STRING"]
        req.user = env["REMOTE_USER"]
        res.request_method = req.request_method
        res.request_uri = req.request_uri
        res.request_http_version = req.http_version
        res.keep_alive = req.keep_alive?
        self.service(req, res)
      rescue HTTPStatus::Error => ex
        res.set_error(ex)
      rescue HTTPStatus::Status => ex
        res.status = ex.code
      rescue Exception => ex
        @logger.error(ex)
        res.set_error(ex, true)
      ensure
        req.fixup
        if defined?(MOD_RUBY)
          res.setup_header
          Apache.request.status_line = "#{res.status} #{res.reason_phrase}"
          Apache.request.status = res.status
          table = Apache.request.headers_out
          res.header.each{|key, val|
            case key
            when /^content-encoding$/i
              Apache::request.content_encoding = val
            when /^content-type$/i
              Apache::request.content_type = val
            else
              table[key] = val.to_s
            end
          }
          res.cookies.each{|cookie|
            table.add("Set-Cookie", cookie.to_s)
          }
          Apache.request.send_http_header
          res.send_body(sock)
        else
          res.send_response(sock)
        end
      end
    end

    ##
    # Services the request +req+ which will fill in the response +res+.  See
    # WEBrick::HTTPServlet::AbstractServlet#service for details.

    def service(req, res)
      method_name = "do_" + req.request_method.gsub(/-/, "_")
      if respond_to?(method_name)
        __send__(method_name, req, res)
      else
        raise HTTPStatus::MethodNotAllowed,
              "unsupported method `#{req.request_method}'."
      end
    end

    ##
    # Provides HTTP socket emulation from the CGI environment

    class Socket # :nodoc:
      include Enumerable

      private

      def initialize(config, env, stdin, stdout)
        @config = config
        @env = env
        @header_part = StringIO.new
        @body_part = stdin
        @out_port = stdout
        @out_port.binmode

        @server_addr = @env["SERVER_ADDR"] || "0.0.0.0"
        @server_name = @env["SERVER_NAME"]
        @server_port = @env["SERVER_PORT"]
        @remote_addr = @env["REMOTE_ADDR"]
        @remote_host = @env["REMOTE_HOST"] || @remote_addr
        @remote_port = @env["REMOTE_PORT"] || 0

        begin
          @header_part << request_line << CRLF
          setup_header
          @header_part << CRLF
          @header_part.rewind
        rescue Exception
          raise CGIError, "invalid CGI environment"
        end
      end

      def request_line
        meth = @env["REQUEST_METHOD"] || "GET"
        unless url = @env["REQUEST_URI"]
          url = (@env["SCRIPT_NAME"] || File.expand_path($0)).dup
          url << @env["PATH_INFO"].to_s
          url = WEBrick::HTTPUtils.escape_path(url)
          if query_string = @env["QUERY_STRING"]
            unless query_string.empty?
              url << "?" << query_string
            end
          end
        end
        # we cannot get real HTTP version of client ;)
        httpv = @config[:HTTPVersion]
        return "#{meth} #{url} HTTP/#{httpv}"
      end

      def setup_header
        @env.each{|key, value|
          case key
          when "CONTENT_TYPE", "CONTENT_LENGTH"
            add_header(key.gsub(/_/, "-"), value)
          when /^HTTP_(.*)/
            add_header($1.gsub(/_/, "-"), value)
          end
        }
      end

      def add_header(hdrname, value)
        unless value.empty?
          @header_part << hdrname << ": " << value << CRLF
        end
      end

      def input
        @header_part.eof? ? @body_part : @header_part
      end

      public

      def peeraddr
        [nil, @remote_port, @remote_host, @remote_addr]
      end

      def addr
        [nil, @server_port, @server_name, @server_addr]
      end

      def gets(eol=LF, size=nil)
        input.gets(eol, size)
      end

      def read(size=nil)
        input.read(size)
      end

      def each
        input.each{|line| yield(line) }
      end

      def eof?
        input.eof?
      end

      def <<(data)
        @out_port << data
      end

      def cert
        return nil unless defined?(OpenSSL)
        if pem = @env["SSL_SERVER_CERT"]
          OpenSSL::X509::Certificate.new(pem) unless pem.empty?
        end
      end

      def peer_cert
        return nil unless defined?(OpenSSL)
        if pem = @env["SSL_CLIENT_CERT"]
          OpenSSL::X509::Certificate.new(pem) unless pem.empty?
        end
      end

      def peer_cert_chain
        return nil unless defined?(OpenSSL)
        if @env["SSL_CLIENT_CERT_CHAIN_0"]
          keys = @env.keys
          certs = keys.sort.collect{|k|
            if /^SSL_CLIENT_CERT_CHAIN_\d+$/ =~ k
              if pem = @env[k]
                OpenSSL::X509::Certificate.new(pem) unless pem.empty?
              end
            end
          }
          certs.compact
        end
      end

      def cipher
        return nil unless defined?(OpenSSL)
        if cipher = @env["SSL_CIPHER"]
          ret = [ cipher ]
          ret << @env["SSL_PROTOCOL"]
          ret << @env["SSL_CIPHER_USEKEYSIZE"]
          ret << @env["SSL_CIPHER_ALGKEYSIZE"]
          ret
        end
      end
    end
  end
end
lib64/ruby/2.2.0/webrick/accesslog.rb000064400000010473150402106400013017 0ustar00#--
# accesslog.rb -- Access log handling utilities
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2002 keita yamaguchi
# Copyright (c) 2002 Internet Programming with Ruby writers
#
# $IPR: accesslog.rb,v 1.1 2002/10/01 17:16:32 gotoyuzo Exp $

module WEBrick

  ##
  # AccessLog provides logging to various files in various formats.
  #
  # Multiple logs may be written to at the same time:
  #
  #   access_log = [
  #     [$stderr, WEBrick::AccessLog::COMMON_LOG_FORMAT],
  #     [$stderr, WEBrick::AccessLog::REFERER_LOG_FORMAT],
  #   ]
  #
  #   server = WEBrick::HTTPServer.new :AccessLog => access_log
  #
  # Custom log formats may be defined.  WEBrick::AccessLog provides a subset
  # of the formatting from Apache's mod_log_config
  # http://httpd.apache.org/docs/mod/mod_log_config.html#formats.  See
  # AccessLog::setup_params for a list of supported options

  module AccessLog

    ##
    # Raised if a parameter such as %e, %i, %o or %n is used without fetching
    # a specific field.

    class AccessLogError < StandardError; end

    ##
    # The Common Log Format's time format

    CLF_TIME_FORMAT     = "[%d/%b/%Y:%H:%M:%S %Z]"

    ##
    # Common Log Format

    COMMON_LOG_FORMAT   = "%h %l %u %t \"%r\" %s %b"

    ##
    # Short alias for Common Log Format

    CLF                 = COMMON_LOG_FORMAT

    ##
    # Referer Log Format

    REFERER_LOG_FORMAT  = "%{Referer}i -> %U"

    ##
    # User-Agent Log Format

    AGENT_LOG_FORMAT    = "%{User-Agent}i"

    ##
    # Combined Log Format

    COMBINED_LOG_FORMAT = "#{CLF} \"%{Referer}i\" \"%{User-agent}i\""

    module_function

    # This format specification is a subset of mod_log_config of Apache:
    #
    # %a:: Remote IP address
    # %b:: Total response size
    # %e{variable}:: Given variable in ENV
    # %f:: Response filename
    # %h:: Remote host name
    # %{header}i:: Given request header
    # %l:: Remote logname, always "-"
    # %m:: Request method
    # %{attr}n:: Given request attribute from <tt>req.attributes</tt>
    # %{header}o:: Given response header
    # %p:: Server's request port
    # %{format}p:: The canonical port of the server serving the request or the
    #              actual port or the client's actual port.  Valid formats are
    #              canonical, local or remote.
    # %q:: Request query string
    # %r:: First line of the request
    # %s:: Request status
    # %t:: Time the request was received
    # %T:: Time taken to process the request
    # %u:: Remote user from auth
    # %U:: Unparsed URI
    # %%:: Literal %

    def setup_params(config, req, res)
      params = Hash.new("")
      params["a"] = req.peeraddr[3]
      params["b"] = res.sent_size
      params["e"] = ENV
      params["f"] = res.filename || ""
      params["h"] = req.peeraddr[2]
      params["i"] = req
      params["l"] = "-"
      params["m"] = req.request_method
      params["n"] = req.attributes
      params["o"] = res
      params["p"] = req.port
      params["q"] = req.query_string
      params["r"] = req.request_line.sub(/\x0d?\x0a\z/o, '')
      params["s"] = res.status       # won't support "%>s"
      params["t"] = req.request_time
      params["T"] = Time.now - req.request_time
      params["u"] = req.user || "-"
      params["U"] = req.unparsed_uri
      params["v"] = config[:ServerName]
      params
    end

    ##
    # Formats +params+ according to +format_string+ which is described in
    # setup_params.

    def format(format_string, params)
      format_string.gsub(/\%(?:\{(.*?)\})?>?([a-zA-Z%])/){
         param, spec = $1, $2
         case spec[0]
         when ?e, ?i, ?n, ?o
           raise AccessLogError,
             "parameter is required for \"#{spec}\"" unless param
           (param = params[spec][param]) ? escape(param) : "-"
         when ?t
           params[spec].strftime(param || CLF_TIME_FORMAT)
         when ?p
           case param
           when 'remote'
             escape(params["i"].peeraddr[1].to_s)
           else
             escape(params["p"].to_s)
           end
         when ?%
           "%"
         else
           escape(params[spec].to_s)
         end
      }
    end

    ##
    # Escapes control characters in +data+

    def escape(data)
      if data.tainted?
        data.gsub(/[[:cntrl:]\\]+/) {$&.dump[1...-1]}.untaint
      else
        data
      end
    end
  end
end
lib64/ruby/2.2.0/webrick/httpresponse.rb000064400000027522150402106400013615 0ustar00#
# httpresponse.rb -- HTTPResponse Class
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: httpresponse.rb,v 1.45 2003/07/11 11:02:25 gotoyuzo Exp $

require 'time'
require 'webrick/httpversion'
require 'webrick/htmlutils'
require 'webrick/httputils'
require 'webrick/httpstatus'

module WEBrick
  ##
  # An HTTP response.  This is filled in by the service or do_* methods of a
  # WEBrick HTTP Servlet.

  class HTTPResponse
    class InvalidHeader < StandardError
    end

    ##
    # HTTP Response version

    attr_reader :http_version

    ##
    # Response status code (200)

    attr_reader :status

    ##
    # Response header

    attr_reader :header

    ##
    # Response cookies

    attr_reader :cookies

    ##
    # Response reason phrase ("OK")

    attr_accessor :reason_phrase

    ##
    # Body may be a String or IO-like object that responds to #read and
    # #readpartial.

    attr_accessor :body

    ##
    # Request method for this response

    attr_accessor :request_method

    ##
    # Request URI for this response

    attr_accessor :request_uri

    ##
    # Request HTTP version for this response

    attr_accessor :request_http_version

    ##
    # Filename of the static file in this response.  Only used by the
    # FileHandler servlet.

    attr_accessor :filename

    ##
    # Is this a keep-alive response?

    attr_accessor :keep_alive

    ##
    # Configuration for this response

    attr_reader :config

    ##
    # Bytes sent in this response

    attr_reader :sent_size

    ##
    # Creates a new HTTP response object.  WEBrick::Config::HTTP is the
    # default configuration.

    def initialize(config)
      @config = config
      @buffer_size = config[:OutputBufferSize]
      @logger = config[:Logger]
      @header = Hash.new
      @status = HTTPStatus::RC_OK
      @reason_phrase = nil
      @http_version = HTTPVersion::convert(@config[:HTTPVersion])
      @body = ''
      @keep_alive = true
      @cookies = []
      @request_method = nil
      @request_uri = nil
      @request_http_version = @http_version  # temporary
      @chunked = false
      @filename = nil
      @sent_size = 0
    end

    ##
    # The response's HTTP status line

    def status_line
      "HTTP/#@http_version #@status #@reason_phrase #{CRLF}"
    end

    ##
    # Sets the response's status to the +status+ code

    def status=(status)
      @status = status
      @reason_phrase = HTTPStatus::reason_phrase(status)
    end

    ##
    # Retrieves the response header +field+

    def [](field)
      @header[field.downcase]
    end

    ##
    # Sets the response header +field+ to +value+

    def []=(field, value)
      @header[field.downcase] = value.to_s
    end

    ##
    # The content-length header

    def content_length
      if len = self['content-length']
        return Integer(len)
      end
    end

    ##
    # Sets the content-length header to +len+

    def content_length=(len)
      self['content-length'] = len.to_s
    end

    ##
    # The content-type header

    def content_type
      self['content-type']
    end

    ##
    # Sets the content-type header to +type+

    def content_type=(type)
      self['content-type'] = type
    end

    ##
    # Iterates over each header in the response

    def each
      @header.each{|field, value|  yield(field, value) }
    end

    ##
    # Will this response body be returned using chunked transfer-encoding?

    def chunked?
      @chunked
    end

    ##
    # Enables chunked transfer encoding.

    def chunked=(val)
      @chunked = val ? true : false
    end

    ##
    # Will this response's connection be kept alive?

    def keep_alive?
      @keep_alive
    end

    ##
    # Sends the response on +socket+

    def send_response(socket) # :nodoc:
      begin
        setup_header()
        send_header(socket)
        send_body(socket)
      rescue Errno::EPIPE, Errno::ECONNRESET, Errno::ENOTCONN => ex
        @logger.debug(ex)
        @keep_alive = false
      rescue Exception => ex
        @logger.error(ex)
        @keep_alive = false
      end
    end

    ##
    # Sets up the headers for sending

    def setup_header() # :nodoc:
      @reason_phrase    ||= HTTPStatus::reason_phrase(@status)
      @header['server'] ||= @config[:ServerSoftware]
      @header['date']   ||= Time.now.httpdate

      # HTTP/0.9 features
      if @request_http_version < "1.0"
        @http_version = HTTPVersion.new("0.9")
        @keep_alive = false
      end

      # HTTP/1.0 features
      if @request_http_version < "1.1"
        if chunked?
          @chunked = false
          ver = @request_http_version.to_s
          msg = "chunked is set for an HTTP/#{ver} request. (ignored)"
          @logger.warn(msg)
        end
      end

      # Determine the message length (RFC2616 -- 4.4 Message Length)
      if @status == 304 || @status == 204 || HTTPStatus::info?(@status)
        @header.delete('content-length')
        @body = ""
      elsif chunked?
        @header["transfer-encoding"] = "chunked"
        @header.delete('content-length')
      elsif %r{^multipart/byteranges} =~ @header['content-type']
        @header.delete('content-length')
      elsif @header['content-length'].nil?
        unless @body.is_a?(IO)
          @header['content-length'] = @body ? @body.bytesize : 0
        end
      end

      # Keep-Alive connection.
      if @header['connection'] == "close"
         @keep_alive = false
      elsif keep_alive?
        if chunked? || @header['content-length'] || @status == 304 || @status == 204 || HTTPStatus.info?(@status)
          @header['connection'] = "Keep-Alive"
        else
          msg = "Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true"
          @logger.warn(msg)
          @header['connection'] = "close"
          @keep_alive = false
        end
      else
        @header['connection'] = "close"
      end

      # Location is a single absoluteURI.
      if location = @header['location']
        if @request_uri
          @header['location'] = @request_uri.merge(location)
        end
      end
    end

    ##
    # Sends the headers on +socket+

    def send_header(socket) # :nodoc:
      if @http_version.major > 0
        data = status_line()
        @header.each{|key, value|
          tmp = key.gsub(/\bwww|^te$|\b\w/){ $&.upcase }
          data << "#{tmp}: #{check_header(value)}" << CRLF
        }
        @cookies.each{|cookie|
          data << "Set-Cookie: " << check_header(cookie.to_s) << CRLF
        }
        data << CRLF
        _write_data(socket, data)
      end
    rescue InvalidHeader => e
      @header.clear
      @cookies.clear
      set_error e
      retry
    end

    ##
    # Sends the body on +socket+

    def send_body(socket) # :nodoc:
      if @body.respond_to? :readpartial then
        send_body_io(socket)
      elsif @body.respond_to?(:call) then
        send_body_proc(socket)
      else
        send_body_string(socket)
      end
    end

    def to_s # :nodoc:
      ret = ""
      send_response(ret)
      ret
    end

    ##
    # Redirects to +url+ with a WEBrick::HTTPStatus::Redirect +status+.
    #
    # Example:
    #
    #   res.set_redirect WEBrick::HTTPStatus::TemporaryRedirect

    def set_redirect(status, url)
      @body = "<HTML><A HREF=\"#{url}\">#{url}</A>.</HTML>\n"
      @header['location'] = url.to_s
      raise status
    end

    ##
    # Creates an error page for exception +ex+ with an optional +backtrace+

    def set_error(ex, backtrace=false)
      case ex
      when HTTPStatus::Status
        @keep_alive = false if HTTPStatus::error?(ex.code)
        self.status = ex.code
      else
        @keep_alive = false
        self.status = HTTPStatus::RC_INTERNAL_SERVER_ERROR
      end
      @header['content-type'] = "text/html; charset=ISO-8859-1"

      if respond_to?(:create_error_page)
        create_error_page()
        return
      end

      if @request_uri
        host, port = @request_uri.host, @request_uri.port
      else
        host, port = @config[:ServerName], @config[:Port]
      end

      error_body(backtrace, ex, host, port)
    end

    private

    def check_header(header_value)
      if header_value =~ /\r\n/
        raise InvalidHeader
      else
        header_value
      end
    end

    # :stopdoc:

    def error_body(backtrace, ex, host, port)
      @body = ''
      @body << <<-_end_of_html_
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
  <HEAD><TITLE>#{HTMLUtils::escape(@reason_phrase)}</TITLE></HEAD>
  <BODY>
    <H1>#{HTMLUtils::escape(@reason_phrase)}</H1>
    #{HTMLUtils::escape(ex.message)}
    <HR>
      _end_of_html_

      if backtrace && $DEBUG
        @body << "backtrace of `#{HTMLUtils::escape(ex.class.to_s)}' "
        @body << "#{HTMLUtils::escape(ex.message)}"
        @body << "<PRE>"
        ex.backtrace.each{|line| @body << "\t#{line}\n"}
        @body << "</PRE><HR>"
      end

      @body << <<-_end_of_html_
    <ADDRESS>
     #{HTMLUtils::escape(@config[:ServerSoftware])} at
     #{host}:#{port}
    </ADDRESS>
  </BODY>
</HTML>
      _end_of_html_
    end

    private

    # :stopdoc:

    def send_body_io(socket)
      begin
        if @request_method == "HEAD"
          # do nothing
        elsif chunked?
          begin
            buf  = ''
            data = ''
            while true
              @body.readpartial( @buffer_size, buf ) # there is no need to clear buf?
              data << format("%x", buf.bytesize) << CRLF
              data << buf << CRLF
              _write_data(socket, data)
              data.clear
              @sent_size += buf.bytesize
            end
          rescue EOFError # do nothing
          end
          _write_data(socket, "0#{CRLF}#{CRLF}")
        else
          if %r{\Abytes (\d+)-(\d+)/\d+\z} =~ @header['content-range']
            offset = $1.to_i
            size = $2.to_i - offset + 1
          else
            offset = nil
            size = @header['content-length']
            size = size.to_i if size
          end
          begin
            @sent_size = IO.copy_stream(@body, socket, size, offset)
          rescue NotImplementedError
            @body.seek(offset, IO::SEEK_SET)
            @sent_size = IO.copy_stream(@body, socket, size)
          end
        end
      ensure
        @body.close
      end
    end

    def send_body_string(socket)
      if @request_method == "HEAD"
        # do nothing
      elsif chunked?
        body ? @body.bytesize : 0
        while buf = @body[@sent_size, @buffer_size]
          break if buf.empty?
          data = ""
          data << format("%x", buf.bytesize) << CRLF
          data << buf << CRLF
          _write_data(socket, data)
          @sent_size += buf.bytesize
        end
        _write_data(socket, "0#{CRLF}#{CRLF}")
      else
        if @body && @body.bytesize > 0
          _write_data(socket, @body)
          @sent_size = @body.bytesize
        end
      end
    end

    def send_body_proc(socket)
      if @request_method == "HEAD"
        # do nothing
      elsif chunked?
        @body.call(ChunkedWrapper.new(socket, self))
        _write_data(socket, "0#{CRLF}#{CRLF}")
      else
        size = @header['content-length'].to_i
        @body.call(socket)
        @sent_size = size
      end
    end

    class ChunkedWrapper
      def initialize(socket, resp)
        @socket = socket
        @resp = resp
      end

      def write(buf)
        return 0 if buf.empty?
        socket = @socket
        @resp.instance_eval {
          size = buf.bytesize
          data = "#{size.to_s(16)}#{CRLF}#{buf}#{CRLF}"
          _write_data(socket, data)
          data.clear
          @sent_size += size
          size
        }
      end

      def <<(*buf)
        write(buf)
        self
      end
    end

    def _write_data(socket, data)
      socket << data
    end

    # :startdoc:
  end

end
lib64/ruby/2.2.0/webrick/httpversion.rb000064400000003113150402106400013432 0ustar00#--
# HTTPVersion.rb -- presentation of HTTP version
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: httpversion.rb,v 1.5 2002/09/21 12:23:37 gotoyuzo Exp $

module WEBrick

  ##
  # Represents an HTTP protocol version

  class HTTPVersion
    include Comparable

    ##
    # The major protocol version number

    attr_accessor :major

    ##
    # The minor protocol version number

    attr_accessor :minor

    ##
    # Converts +version+ into an HTTPVersion

    def self.convert(version)
      version.is_a?(self) ? version : new(version)
    end

    ##
    # Creates a new HTTPVersion from +version+.

    def initialize(version)
      case version
      when HTTPVersion
        @major, @minor = version.major, version.minor
      when String
        if /^(\d+)\.(\d+)$/ =~ version
          @major, @minor = $1.to_i, $2.to_i
        end
      end
      if @major.nil? || @minor.nil?
        raise ArgumentError,
          format("cannot convert %s into %s", version.class, self.class)
      end
    end

    ##
    # Compares this version with +other+ according to the HTTP specification
    # rules.

    def <=>(other)
      unless other.is_a?(self.class)
        other = self.class.new(other)
      end
      if (ret = @major <=> other.major) == 0
        return @minor <=> other.minor
      end
      return ret
    end

    ##
    # The HTTP version as show in the HTTP request and response.  For example,
    # "1.1"

    def to_s
      format("%d.%d", @major, @minor)
    end
  end
end
lib64/ruby/2.2.0/webrick/httputils.rb000064400000031323150402106400013111 0ustar00#
# httputils.rb -- HTTPUtils Module
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: httputils.rb,v 1.34 2003/06/05 21:34:08 gotoyuzo Exp $

require 'socket'
require 'tempfile'

module WEBrick
  CR   = "\x0d"     # :nodoc:
  LF   = "\x0a"     # :nodoc:
  CRLF = "\x0d\x0a" # :nodoc:

  ##
  # HTTPUtils provides utility methods for working with the HTTP protocol.
  #
  # This module is generally used internally by WEBrick

  module HTTPUtils

    ##
    # Normalizes a request path.  Raises an exception if the path cannot be
    # normalized.

    def normalize_path(path)
      raise "abnormal path `#{path}'" if path[0] != ?/
      ret = path.dup

      ret.gsub!(%r{/+}o, '/')                    # //      => /
      while ret.sub!(%r'/\.(?:/|\Z)', '/'); end  # /.      => /
      while ret.sub!(%r'/(?!\.\./)[^/]+/\.\.(?:/|\Z)', '/'); end # /foo/.. => /foo

      raise "abnormal path `#{path}'" if %r{/\.\.(/|\Z)} =~ ret
      ret
    end
    module_function :normalize_path

    ##
    # Default mime types

    DefaultMimeTypes = {
      "ai"    => "application/postscript",
      "asc"   => "text/plain",
      "avi"   => "video/x-msvideo",
      "bin"   => "application/octet-stream",
      "bmp"   => "image/bmp",
      "class" => "application/octet-stream",
      "cer"   => "application/pkix-cert",
      "crl"   => "application/pkix-crl",
      "crt"   => "application/x-x509-ca-cert",
     #"crl"   => "application/x-pkcs7-crl",
      "css"   => "text/css",
      "dms"   => "application/octet-stream",
      "doc"   => "application/msword",
      "dvi"   => "application/x-dvi",
      "eps"   => "application/postscript",
      "etx"   => "text/x-setext",
      "exe"   => "application/octet-stream",
      "gif"   => "image/gif",
      "htm"   => "text/html",
      "html"  => "text/html",
      "jpe"   => "image/jpeg",
      "jpeg"  => "image/jpeg",
      "jpg"   => "image/jpeg",
      "js"    => "application/javascript",
      "lha"   => "application/octet-stream",
      "lzh"   => "application/octet-stream",
      "mov"   => "video/quicktime",
      "mpe"   => "video/mpeg",
      "mpeg"  => "video/mpeg",
      "mpg"   => "video/mpeg",
      "pbm"   => "image/x-portable-bitmap",
      "pdf"   => "application/pdf",
      "pgm"   => "image/x-portable-graymap",
      "png"   => "image/png",
      "pnm"   => "image/x-portable-anymap",
      "ppm"   => "image/x-portable-pixmap",
      "ppt"   => "application/vnd.ms-powerpoint",
      "ps"    => "application/postscript",
      "qt"    => "video/quicktime",
      "ras"   => "image/x-cmu-raster",
      "rb"    => "text/plain",
      "rd"    => "text/plain",
      "rtf"   => "application/rtf",
      "sgm"   => "text/sgml",
      "sgml"  => "text/sgml",
      "svg"   => "image/svg+xml",
      "tif"   => "image/tiff",
      "tiff"  => "image/tiff",
      "txt"   => "text/plain",
      "xbm"   => "image/x-xbitmap",
      "xhtml" => "text/html",
      "xls"   => "application/vnd.ms-excel",
      "xml"   => "text/xml",
      "xpm"   => "image/x-xpixmap",
      "xwd"   => "image/x-xwindowdump",
      "zip"   => "application/zip",
    }

    ##
    # Loads Apache-compatible mime.types in +file+.

    def load_mime_types(file)
      open(file){ |io|
        hash = Hash.new
        io.each{ |line|
          next if /^#/ =~ line
          line.chomp!
          mimetype, ext0 = line.split(/\s+/, 2)
          next unless ext0
          next if ext0.empty?
          ext0.split(/\s+/).each{ |ext| hash[ext] = mimetype }
        }
        hash
      }
    end
    module_function :load_mime_types

    ##
    # Returns the mime type of +filename+ from the list in +mime_tab+.  If no
    # mime type was found application/octet-stream is returned.

    def mime_type(filename, mime_tab)
      suffix1 = (/\.(\w+)$/ =~ filename && $1.downcase)
      suffix2 = (/\.(\w+)\.[\w\-]+$/ =~ filename && $1.downcase)
      mime_tab[suffix1] || mime_tab[suffix2] || "application/octet-stream"
    end
    module_function :mime_type

    ##
    # Parses an HTTP header +raw+ into a hash of header fields with an Array
    # of values.

    def parse_header(raw)
      header = Hash.new([].freeze)
      field = nil
      raw.each_line{|line|
        case line
        when /^([A-Za-z0-9!\#$%&'*+\-.^_`|~]+):\s*(.*?)\s*\z/om
          field, value = $1, $2
          field.downcase!
          header[field] = [] unless header.has_key?(field)
          header[field] << value
        when /^\s+(.*?)\s*\z/om
          value = $1
          unless field
            raise HTTPStatus::BadRequest, "bad header '#{line}'."
          end
          header[field][-1] << " " << value
        else
          raise HTTPStatus::BadRequest, "bad header '#{line}'."
        end
      }
      header.each{|key, values|
        values.each{|value|
          value.strip!
          value.gsub!(/\s+/, " ")
        }
      }
      header
    end
    module_function :parse_header

    ##
    # Splits a header value +str+ according to HTTP specification.

    def split_header_value(str)
      str.scan(%r'\G((?:"(?:\\.|[^"])+?"|[^",]+)+)
                    (?:,\s*|\Z)'xn).flatten
    end
    module_function :split_header_value

    ##
    # Parses a Range header value +ranges_specifier+

    def parse_range_header(ranges_specifier)
      if /^bytes=(.*)/ =~ ranges_specifier
        byte_range_set = split_header_value($1)
        byte_range_set.collect{|range_spec|
          case range_spec
          when /^(\d+)-(\d+)/ then $1.to_i .. $2.to_i
          when /^(\d+)-/      then $1.to_i .. -1
          when /^-(\d+)/      then -($1.to_i) .. -1
          else return nil
          end
        }
      end
    end
    module_function :parse_range_header

    ##
    # Parses q values in +value+ as used in Accept headers.

    def parse_qvalues(value)
      tmp = []
      if value
        parts = value.split(/,\s*/)
        parts.each {|part|
          if m = %r{^([^\s,]+?)(?:;\s*q=(\d+(?:\.\d+)?))?$}.match(part)
            val = m[1]
            q = (m[2] or 1).to_f
            tmp.push([val, q])
          end
        }
        tmp = tmp.sort_by{|val, q| -q}
        tmp.collect!{|val, q| val}
      end
      return tmp
    end
    module_function :parse_qvalues

    ##
    # Removes quotes and escapes from +str+

    def dequote(str)
      ret = (/\A"(.*)"\Z/ =~ str) ? $1 : str.dup
      ret.gsub!(/\\(.)/, "\\1")
      ret
    end
    module_function :dequote

    ##
    # Quotes and escapes quotes in +str+

    def quote(str)
      '"' << str.gsub(/[\\\"]/o, "\\\1") << '"'
    end
    module_function :quote

    ##
    # Stores multipart form data.  FormData objects are created when
    # WEBrick::HTTPUtils.parse_form_data is called.

    class FormData < String
      EmptyRawHeader = [].freeze # :nodoc:
      EmptyHeader = {}.freeze # :nodoc:

      ##
      # The name of the form data part

      attr_accessor :name

      ##
      # The filename of the form data part

      attr_accessor :filename

      attr_accessor :next_data # :nodoc:
      protected :next_data

      ##
      # Creates a new FormData object.
      #
      # +args+ is an Array of form data entries.  One FormData will be created
      # for each entry.
      #
      # This is called by WEBrick::HTTPUtils.parse_form_data for you

      def initialize(*args)
        @name = @filename = @next_data = nil
        if args.empty?
          @raw_header = []
          @header = nil
          super("")
        else
          @raw_header = EmptyRawHeader
          @header = EmptyHeader
          super(args.shift)
          unless args.empty?
            @next_data = self.class.new(*args)
          end
        end
      end

      ##
      # Retrieves the header at the first entry in +key+

      def [](*key)
        begin
          @header[key[0].downcase].join(", ")
        rescue StandardError, NameError
          super
        end
      end

      ##
      # Adds +str+ to this FormData which may be the body, a header or a
      # header entry.
      #
      # This is called by WEBrick::HTTPUtils.parse_form_data for you

      def <<(str)
        if @header
          super
        elsif str == CRLF
          @header = HTTPUtils::parse_header(@raw_header.join)
          if cd = self['content-disposition']
            if /\s+name="(.*?)"/ =~ cd then @name = $1 end
            if /\s+filename="(.*?)"/ =~ cd then @filename = $1 end
          end
        else
          @raw_header << str
        end
        self
      end

      ##
      # Adds +data+ at the end of the chain of entries
      #
      # This is called by WEBrick::HTTPUtils.parse_form_data for you.

      def append_data(data)
        tmp = self
        while tmp
          unless tmp.next_data
            tmp.next_data = data
            break
          end
          tmp = tmp.next_data
        end
        self
      end

      ##
      # Yields each entry in this FormData

      def each_data
        tmp = self
        while tmp
          next_data = tmp.next_data
          yield(tmp)
          tmp = next_data
        end
      end

      ##
      # Returns all the FormData as an Array

      def list
        ret = []
        each_data{|data|
          ret << data.to_s
        }
        ret
      end

      ##
      # A FormData will behave like an Array

      alias :to_ary :list

      ##
      # This FormData's body

      def to_s
        String.new(self)
      end
    end

    ##
    # Parses the query component of a URI in +str+

    def parse_query(str)
      query = Hash.new
      if str
        str.split(/[&;]/).each{|x|
          next if x.empty?
          key, val = x.split(/=/,2)
          key = unescape_form(key)
          val = unescape_form(val.to_s)
          val = FormData.new(val)
          val.name = key
          if query.has_key?(key)
            query[key].append_data(val)
            next
          end
          query[key] = val
        }
      end
      query
    end
    module_function :parse_query

    ##
    # Parses form data in +io+ with the given +boundary+

    def parse_form_data(io, boundary)
      boundary_regexp = /\A--#{Regexp.quote(boundary)}(--)?#{CRLF}\z/
      form_data = Hash.new
      return form_data unless io
      data = nil
      io.each_line{|line|
        if boundary_regexp =~ line
          if data
            data.chop!
            key = data.name
            if form_data.has_key?(key)
              form_data[key].append_data(data)
            else
              form_data[key] = data
            end
          end
          data = FormData.new
          next
        else
          if data
            data << line
          end
        end
      }
      return form_data
    end
    module_function :parse_form_data

    #####

    reserved = ';/?:@&=+$,'
    num      = '0123456789'
    lowalpha = 'abcdefghijklmnopqrstuvwxyz'
    upalpha  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    mark     = '-_.!~*\'()'
    unreserved = num + lowalpha + upalpha + mark
    control  = (0x0..0x1f).collect{|c| c.chr }.join + "\x7f"
    space    = " "
    delims   = '<>#%"'
    unwise   = '{}|\\^[]`'
    nonascii = (0x80..0xff).collect{|c| c.chr }.join

    module_function

    # :stopdoc:

    def _make_regex(str) /([#{Regexp.escape(str)}])/n end
    def _make_regex!(str) /([^#{Regexp.escape(str)}])/n end
    def _escape(str, regex)
      str = str.b
      str.gsub!(regex) {"%%%02X" % $1.ord}
      # %-escaped string should contain US-ASCII only
      str.force_encoding(Encoding::US_ASCII)
    end
    def _unescape(str, regex)
      str = str.b
      str.gsub!(regex) {$1.hex.chr}
      # encoding of %-unescaped string is unknown
      str
    end

    UNESCAPED = _make_regex(control+space+delims+unwise+nonascii)
    UNESCAPED_FORM = _make_regex(reserved+control+delims+unwise+nonascii)
    NONASCII  = _make_regex(nonascii)
    ESCAPED   = /%([0-9a-fA-F]{2})/
    UNESCAPED_PCHAR = _make_regex!(unreserved+":@&=+$,")

    # :startdoc:

    ##
    # Escapes HTTP reserved and unwise characters in +str+

    def escape(str)
      _escape(str, UNESCAPED)
    end

    ##
    # Unescapes HTTP reserved and unwise characters in +str+

    def unescape(str)
      _unescape(str, ESCAPED)
    end

    ##
    # Escapes form reserved characters in +str+

    def escape_form(str)
      ret = _escape(str, UNESCAPED_FORM)
      ret.gsub!(/ /, "+")
      ret
    end

    ##
    # Unescapes form reserved characters in +str+

    def unescape_form(str)
      _unescape(str.gsub(/\+/, " "), ESCAPED)
    end

    ##
    # Escapes path +str+

    def escape_path(str)
      result = ""
      str.scan(%r{/([^/]*)}).each{|i|
        result << "/" << _escape(i[0], UNESCAPED_PCHAR)
      }
      return result
    end

    ##
    # Escapes 8 bit characters in +str+

    def escape8bit(str)
      _escape(str, NONASCII)
    end
  end
end
lib64/ruby/2.2.0/webrick/compat.rb000064400000001620150402106400012331 0ustar00#
# compat.rb -- cross platform compatibility
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2002 GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: compat.rb,v 1.6 2002/10/01 17:16:32 gotoyuzo Exp $

##
# System call error module used by webrick for cross platform compatibility.
#
# EPROTO:: protocol error
# ECONNRESET:: remote host reset the connection request
# ECONNABORTED:: Client sent TCP reset (RST) before server has accepted the
#                connection requested by client.
#
module Errno
  ##
  # Protocol error.

  class EPROTO       < SystemCallError; end

  ##
  # Remote host reset the connection request.

  class ECONNRESET   < SystemCallError; end

  ##
  # Client sent TCP reset (RST) before server has accepted the connection
  # requested by client.

  class ECONNABORTED < SystemCallError; end
end
lib64/ruby/2.2.0/webrick/httprequest.rb000064400000035433150402106400013447 0ustar00#
# httprequest.rb -- HTTPRequest Class
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: httprequest.rb,v 1.64 2003/07/13 17:18:22 gotoyuzo Exp $

require 'uri'
require 'webrick/httpversion'
require 'webrick/httpstatus'
require 'webrick/httputils'
require 'webrick/cookie'

module WEBrick

  ##
  # An HTTP request.  This is consumed by service and do_* methods in
  # WEBrick servlets

  class HTTPRequest

    BODY_CONTAINABLE_METHODS = [ "POST", "PUT" ] # :nodoc:

    # :section: Request line

    ##
    # The complete request line such as:
    #
    #   GET / HTTP/1.1

    attr_reader :request_line

    ##
    # The request method, GET, POST, PUT, etc.

    attr_reader :request_method

    ##
    # The unparsed URI of the request

    attr_reader :unparsed_uri

    ##
    # The HTTP version of the request

    attr_reader :http_version

    # :section: Request-URI

    ##
    # The parsed URI of the request

    attr_reader :request_uri

    ##
    # The request path

    attr_reader :path

    ##
    # The script name (CGI variable)

    attr_accessor :script_name

    ##
    # The path info (CGI variable)

    attr_accessor :path_info

    ##
    # The query from the URI of the request

    attr_accessor :query_string

    # :section: Header and entity body

    ##
    # The raw header of the request

    attr_reader :raw_header

    ##
    # The parsed header of the request

    attr_reader :header

    ##
    # The parsed request cookies

    attr_reader :cookies

    ##
    # The Accept header value

    attr_reader :accept

    ##
    # The Accept-Charset header value

    attr_reader :accept_charset

    ##
    # The Accept-Encoding header value

    attr_reader :accept_encoding

    ##
    # The Accept-Language header value

    attr_reader :accept_language

    # :section:

    ##
    # The remote user (CGI variable)

    attr_accessor :user

    ##
    # The socket address of the server

    attr_reader :addr

    ##
    # The socket address of the client

    attr_reader :peeraddr

    ##
    # Hash of request attributes

    attr_reader :attributes

    ##
    # Is this a keep-alive connection?

    attr_reader :keep_alive

    ##
    # The local time this request was received

    attr_reader :request_time

    ##
    # Creates a new HTTP request.  WEBrick::Config::HTTP is the default
    # configuration.

    def initialize(config)
      @config = config
      @buffer_size = @config[:InputBufferSize]
      @logger = config[:Logger]

      @request_line = @request_method =
        @unparsed_uri = @http_version = nil

      @request_uri = @host = @port = @path = nil
      @script_name = @path_info = nil
      @query_string = nil
      @query = nil
      @form_data = nil

      @raw_header = Array.new
      @header = nil
      @cookies = []
      @accept = []
      @accept_charset = []
      @accept_encoding = []
      @accept_language = []
      @body = ""

      @addr = @peeraddr = nil
      @attributes = {}
      @user = nil
      @keep_alive = false
      @request_time = nil

      @remaining_size = nil
      @socket = nil

      @forwarded_proto = @forwarded_host = @forwarded_port =
        @forwarded_server = @forwarded_for = nil
    end

    ##
    # Parses a request from +socket+.  This is called internally by
    # WEBrick::HTTPServer.

    def parse(socket=nil)
      @socket = socket
      begin
        @peeraddr = socket.respond_to?(:peeraddr) ? socket.peeraddr : []
        @addr = socket.respond_to?(:addr) ? socket.addr : []
      rescue Errno::ENOTCONN
        raise HTTPStatus::EOFError
      end

      read_request_line(socket)
      if @http_version.major > 0
        read_header(socket)
        @header['cookie'].each{|cookie|
          @cookies += Cookie::parse(cookie)
        }
        @accept = HTTPUtils.parse_qvalues(self['accept'])
        @accept_charset = HTTPUtils.parse_qvalues(self['accept-charset'])
        @accept_encoding = HTTPUtils.parse_qvalues(self['accept-encoding'])
        @accept_language = HTTPUtils.parse_qvalues(self['accept-language'])
      end
      return if @request_method == "CONNECT"
      return if @unparsed_uri == "*"

      begin
        setup_forwarded_info
        @request_uri = parse_uri(@unparsed_uri)
        @path = HTTPUtils::unescape(@request_uri.path)
        @path = HTTPUtils::normalize_path(@path)
        @host = @request_uri.host
        @port = @request_uri.port
        @query_string = @request_uri.query
        @script_name = ""
        @path_info = @path.dup
      rescue
        raise HTTPStatus::BadRequest, "bad URI `#{@unparsed_uri}'."
      end

      if /close/io =~ self["connection"]
        @keep_alive = false
      elsif /keep-alive/io =~ self["connection"]
        @keep_alive = true
      elsif @http_version < "1.1"
        @keep_alive = false
      else
        @keep_alive = true
      end
    end

    ##
    # Generate HTTP/1.1 100 continue response if the client expects it,
    # otherwise does nothing.

    def continue # :nodoc:
      if self['expect'] == '100-continue' && @config[:HTTPVersion] >= "1.1"
        @socket << "HTTP/#{@config[:HTTPVersion]} 100 continue#{CRLF}#{CRLF}"
        @header.delete('expect')
      end
    end

    ##
    # Returns the request body.

    def body(&block) # :yields: body_chunk
      block ||= Proc.new{|chunk| @body << chunk }
      read_body(@socket, block)
      @body.empty? ? nil : @body
    end

    ##
    # Request query as a Hash

    def query
      unless @query
        parse_query()
      end
      @query
    end

    ##
    # The content-length header

    def content_length
      return Integer(self['content-length'])
    end

    ##
    # The content-type header

    def content_type
      return self['content-type']
    end

    ##
    # Retrieves +header_name+

    def [](header_name)
      if @header
        value = @header[header_name.downcase]
        value.empty? ? nil : value.join(", ")
      end
    end

    ##
    # Iterates over the request headers

    def each
      if @header
        @header.each{|k, v|
          value = @header[k]
          yield(k, value.empty? ? nil : value.join(", "))
        }
      end
    end

    ##
    # The host this request is for

    def host
      return @forwarded_host || @host
    end

    ##
    # The port this request is for

    def port
      return @forwarded_port || @port
    end

    ##
    # The server name this request is for

    def server_name
      return @forwarded_server || @config[:ServerName]
    end

    ##
    # The client's IP address

    def remote_ip
      return self["client-ip"] || @forwarded_for || @peeraddr[3]
    end

    ##
    # Is this an SSL request?

    def ssl?
      return @request_uri.scheme == "https"
    end

    ##
    # Should the connection this request was made on be kept alive?

    def keep_alive?
      @keep_alive
    end

    def to_s # :nodoc:
      ret = @request_line.dup
      @raw_header.each{|line| ret << line }
      ret << CRLF
      ret << body if body
      ret
    end

    ##
    # Consumes any remaining body and updates keep-alive status

    def fixup() # :nodoc:
      begin
        body{|chunk| }   # read remaining body
      rescue HTTPStatus::Error => ex
        @logger.error("HTTPRequest#fixup: #{ex.class} occurred.")
        @keep_alive = false
      rescue => ex
        @logger.error(ex)
        @keep_alive = false
      end
    end

    # This method provides the metavariables defined by the revision 3
    # of "The WWW Common Gateway Interface Version 1.1"
    # To browse the current document of CGI Version 1.1, see below:
    # http://tools.ietf.org/html/rfc3875

    def meta_vars
      meta = Hash.new

      cl = self["Content-Length"]
      ct = self["Content-Type"]
      meta["CONTENT_LENGTH"]    = cl if cl.to_i > 0
      meta["CONTENT_TYPE"]      = ct.dup if ct
      meta["GATEWAY_INTERFACE"] = "CGI/1.1"
      meta["PATH_INFO"]         = @path_info ? @path_info.dup : ""
     #meta["PATH_TRANSLATED"]   = nil      # no plan to be provided
      meta["QUERY_STRING"]      = @query_string ? @query_string.dup : ""
      meta["REMOTE_ADDR"]       = @peeraddr[3]
      meta["REMOTE_HOST"]       = @peeraddr[2]
     #meta["REMOTE_IDENT"]      = nil      # no plan to be provided
      meta["REMOTE_USER"]       = @user
      meta["REQUEST_METHOD"]    = @request_method.dup
      meta["REQUEST_URI"]       = @request_uri.to_s
      meta["SCRIPT_NAME"]       = @script_name.dup
      meta["SERVER_NAME"]       = @host
      meta["SERVER_PORT"]       = @port.to_s
      meta["SERVER_PROTOCOL"]   = "HTTP/" + @config[:HTTPVersion].to_s
      meta["SERVER_SOFTWARE"]   = @config[:ServerSoftware].dup

      self.each{|key, val|
        next if /^content-type$/i =~ key
        next if /^content-length$/i =~ key
        name = "HTTP_" + key
        name.gsub!(/-/o, "_")
        name.upcase!
        meta[name] = val
      }

      meta
    end

    private

    # :stopdoc:

    MAX_URI_LENGTH = 2083 # :nodoc:

    # same as Mongrel, Thin and Puma
    MAX_HEADER_LENGTH = (112 * 1024) # :nodoc:

    def read_request_line(socket)
      @request_line = read_line(socket, MAX_URI_LENGTH) if socket
      @request_bytes = @request_line.bytesize
      if @request_bytes >= MAX_URI_LENGTH and @request_line[-1, 1] != LF
        raise HTTPStatus::RequestURITooLarge
      end
      @request_time = Time.now
      raise HTTPStatus::EOFError unless @request_line
      if /^(\S+)\s+(\S++)(?:\s+HTTP\/(\d+\.\d+))?\r?\n/mo =~ @request_line
        @request_method = $1
        @unparsed_uri   = $2
        @http_version   = HTTPVersion.new($3 ? $3 : "0.9")
      else
        rl = @request_line.sub(/\x0d?\x0a\z/o, '')
        raise HTTPStatus::BadRequest, "bad Request-Line `#{rl}'."
      end
    end

    def read_header(socket)
      if socket
        while line = read_line(socket)
          break if /\A(#{CRLF}|#{LF})\z/om =~ line
          if (@request_bytes += line.bytesize) > MAX_HEADER_LENGTH
            raise HTTPStatus::RequestEntityTooLarge, 'headers too large'
          end
          @raw_header << line
        end
      end
      @header = HTTPUtils::parse_header(@raw_header.join)
    end

    def parse_uri(str, scheme="http")
      if @config[:Escape8bitURI]
        str = HTTPUtils::escape8bit(str)
      end
      str.sub!(%r{\A/+}o, '/')
      uri = URI::parse(str)
      return uri if uri.absolute?
      if @forwarded_host
        host, port = @forwarded_host, @forwarded_port
      elsif self["host"]
        pattern = /\A(#{URI::REGEXP::PATTERN::HOST})(?::(\d+))?\z/n
        host, port = *self['host'].scan(pattern)[0]
      elsif @addr.size > 0
        host, port = @addr[2], @addr[1]
      else
        host, port = @config[:ServerName], @config[:Port]
      end
      uri.scheme = @forwarded_proto || scheme
      uri.host = host
      uri.port = port ? port.to_i : nil
      return URI::parse(uri.to_s)
    end

    def read_body(socket, block)
      return unless socket
      if tc = self['transfer-encoding']
        case tc
        when /chunked/io then read_chunked(socket, block)
        else raise HTTPStatus::NotImplemented, "Transfer-Encoding: #{tc}."
        end
      elsif self['content-length'] || @remaining_size
        @remaining_size ||= self['content-length'].to_i
        while @remaining_size > 0
          sz = [@buffer_size, @remaining_size].min
          break unless buf = read_data(socket, sz)
          @remaining_size -= buf.bytesize
          block.call(buf)
        end
        if @remaining_size > 0 && @socket.eof?
          raise HTTPStatus::BadRequest, "invalid body size."
        end
      elsif BODY_CONTAINABLE_METHODS.member?(@request_method)
        raise HTTPStatus::LengthRequired
      end
      return @body
    end

    def read_chunk_size(socket)
      line = read_line(socket)
      if /^([0-9a-fA-F]+)(?:;(\S+))?/ =~ line
        chunk_size = $1.hex
        chunk_ext = $2
        [ chunk_size, chunk_ext ]
      else
        raise HTTPStatus::BadRequest, "bad chunk `#{line}'."
      end
    end

    def read_chunked(socket, block)
      chunk_size, = read_chunk_size(socket)
      while chunk_size > 0
        begin
          sz = [ chunk_size, @buffer_size ].min
          data = read_data(socket, sz) # read chunk-data
          if data.nil? || data.bytesize != sz
            raise HTTPStatus::BadRequest, "bad chunk data size."
          end
          block.call(data)
        end while (chunk_size -= sz) > 0

        read_line(socket)                    # skip CRLF
        chunk_size, = read_chunk_size(socket)
      end
      read_header(socket)                    # trailer + CRLF
      @header.delete("transfer-encoding")
      @remaining_size = 0
    end

    def _read_data(io, method, *arg)
      begin
        WEBrick::Utils.timeout(@config[:RequestTimeout]){
          return io.__send__(method, *arg)
        }
      rescue Errno::ECONNRESET
        return nil
      rescue Timeout::Error
        raise HTTPStatus::RequestTimeout
      end
    end

    def read_line(io, size=4096)
      _read_data(io, :gets, LF, size)
    end

    def read_data(io, size)
      _read_data(io, :read, size)
    end

    def parse_query()
      begin
        if @request_method == "GET" || @request_method == "HEAD"
          @query = HTTPUtils::parse_query(@query_string)
        elsif self['content-type'] =~ /^application\/x-www-form-urlencoded/
          @query = HTTPUtils::parse_query(body)
        elsif self['content-type'] =~ /^multipart\/form-data; boundary=(.+)/
          boundary = HTTPUtils::dequote($1)
          @query = HTTPUtils::parse_form_data(body, boundary)
        else
          @query = Hash.new
        end
      rescue => ex
        raise HTTPStatus::BadRequest, ex.message
      end
    end

    PrivateNetworkRegexp = /
      ^unknown$|
      ^((::ffff:)?127.0.0.1|::1)$|
      ^(::ffff:)?(10|172\.(1[6-9]|2[0-9]|3[01])|192\.168)\.
    /ixo

    # It's said that all X-Forwarded-* headers will contain more than one
    # (comma-separated) value if the original request already contained one of
    # these headers. Since we could use these values as Host header, we choose
    # the initial(first) value. (apr_table_mergen() adds new value after the
    # existing value with ", " prefix)
    def setup_forwarded_info
      if @forwarded_server = self["x-forwarded-server"]
        @forwarded_server = @forwarded_server.split(",", 2).first
      end
      @forwarded_proto = self["x-forwarded-proto"]
      if host_port = self["x-forwarded-host"]
        host_port = host_port.split(",", 2).first
        @forwarded_host, tmp = host_port.split(":", 2)
        @forwarded_port = (tmp || (@forwarded_proto == "https" ? 443 : 80)).to_i
      end
      if addrs = self["x-forwarded-for"]
        addrs = addrs.split(",").collect(&:strip)
        addrs.reject!{|ip| PrivateNetworkRegexp =~ ip }
        @forwarded_for = addrs.first
      end
    end

    # :startdoc:
  end
end
lib64/ruby/2.2.0/webrick/httpproxy.rb000064400000023140150402106400013130 0ustar00#
# httpproxy.rb -- HTTPProxy Class
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2002 GOTO Kentaro
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: httpproxy.rb,v 1.18 2003/03/08 18:58:10 gotoyuzo Exp $
# $kNotwork: straw.rb,v 1.3 2002/02/12 15:13:07 gotoken Exp $

require "webrick/httpserver"
require "net/http"

module WEBrick

  NullReader = Object.new # :nodoc:
  class << NullReader # :nodoc:
    def read(*args)
      nil
    end
    alias gets read
  end

  FakeProxyURI = Object.new # :nodoc:
  class << FakeProxyURI # :nodoc:
    def method_missing(meth, *args)
      if %w(scheme host port path query userinfo).member?(meth.to_s)
        return nil
      end
      super
    end
  end

  # :startdoc:

  ##
  # An HTTP Proxy server which proxies GET, HEAD and POST requests.
  #
  # To create a simple proxy server:
  #
  #   require 'webrick'
  #   require 'webrick/httpproxy'
  #
  #   proxy = WEBrick::HTTPProxyServer.new Port: 8000
  #
  #   trap 'INT'  do proxy.shutdown end
  #   trap 'TERM' do proxy.shutdown end
  #
  #   proxy.start
  #
  # See ::new for proxy-specific configuration items.
  #
  # == Modifying proxied responses
  #
  # To modify content the proxy server returns use the +:ProxyContentHandler+
  # option:
  #
  #   handler = proc do |req, res|
  #     if res['content-type'] == 'text/plain' then
  #       res.body << "\nThis content was proxied!\n"
  #     end
  #   end
  #
  #   proxy =
  #     WEBrick::HTTPProxyServer.new Port: 8000, ProxyContentHandler: handler

  class HTTPProxyServer < HTTPServer

    ##
    # Proxy server configurations.  The proxy server handles the following
    # configuration items in addition to those supported by HTTPServer:
    #
    # :ProxyAuthProc:: Called with a request and response to authorize a
    #                  request
    # :ProxyVia:: Appended to the via header
    # :ProxyURI:: The proxy server's URI
    # :ProxyContentHandler:: Called with a request and response and allows
    #                        modification of the response
    # :ProxyTimeout:: Sets the proxy timeouts to 30 seconds for open and 60
    #                 seconds for read operations

    def initialize(config={}, default=Config::HTTP)
      super(config, default)
      c = @config
      @via = "#{c[:HTTPVersion]} #{c[:ServerName]}:#{c[:Port]}"
    end

    # :stopdoc:
    def service(req, res)
      if req.request_method == "CONNECT"
        do_CONNECT(req, res)
      elsif req.unparsed_uri =~ %r!^http://!
        proxy_service(req, res)
      else
        super(req, res)
      end
    end

    def proxy_auth(req, res)
      if proc = @config[:ProxyAuthProc]
        proc.call(req, res)
      end
      req.header.delete("proxy-authorization")
    end

    def proxy_uri(req, res)
      # should return upstream proxy server's URI
      return @config[:ProxyURI]
    end

    def proxy_service(req, res)
      # Proxy Authentication
      proxy_auth(req, res)

      begin
        self.send("do_#{req.request_method}", req, res)
      rescue NoMethodError
        raise HTTPStatus::MethodNotAllowed,
          "unsupported method `#{req.request_method}'."
      rescue => err
        logger.debug("#{err.class}: #{err.message}")
        raise HTTPStatus::ServiceUnavailable, err.message
      end

      # Process contents
      if handler = @config[:ProxyContentHandler]
        handler.call(req, res)
      end
    end

    def do_CONNECT(req, res)
      # Proxy Authentication
      proxy_auth(req, res)

      ua = Thread.current[:WEBrickSocket]  # User-Agent
      raise HTTPStatus::InternalServerError,
        "[BUG] cannot get socket" unless ua

      host, port = req.unparsed_uri.split(":", 2)
      # Proxy authentication for upstream proxy server
      if proxy = proxy_uri(req, res)
        proxy_request_line = "CONNECT #{host}:#{port} HTTP/1.0"
        if proxy.userinfo
          credentials = "Basic " + [proxy.userinfo].pack("m").delete("\n")
        end
        host, port = proxy.host, proxy.port
      end

      begin
        @logger.debug("CONNECT: upstream proxy is `#{host}:#{port}'.")
        os = TCPSocket.new(host, port)     # origin server

        if proxy
          @logger.debug("CONNECT: sending a Request-Line")
          os << proxy_request_line << CRLF
          @logger.debug("CONNECT: > #{proxy_request_line}")
          if credentials
            @logger.debug("CONNECT: sending a credentials")
            os << "Proxy-Authorization: " << credentials << CRLF
          end
          os << CRLF
          proxy_status_line = os.gets(LF)
          @logger.debug("CONNECT: read a Status-Line form the upstream server")
          @logger.debug("CONNECT: < #{proxy_status_line}")
          if %r{^HTTP/\d+\.\d+\s+200\s*} =~ proxy_status_line
            while line = os.gets(LF)
              break if /\A(#{CRLF}|#{LF})\z/om =~ line
            end
          else
            raise HTTPStatus::BadGateway
          end
        end
        @logger.debug("CONNECT #{host}:#{port}: succeeded")
        res.status = HTTPStatus::RC_OK
      rescue => ex
        @logger.debug("CONNECT #{host}:#{port}: failed `#{ex.message}'")
        res.set_error(ex)
        raise HTTPStatus::EOFError
      ensure
        if handler = @config[:ProxyContentHandler]
          handler.call(req, res)
        end
        res.send_response(ua)
        access_log(@config, req, res)

        # Should clear request-line not to send the response twice.
        # see: HTTPServer#run
        req.parse(NullReader) rescue nil
      end

      begin
        while fds = IO::select([ua, os])
          if fds[0].member?(ua)
            buf = ua.sysread(1024);
            @logger.debug("CONNECT: #{buf.bytesize} byte from User-Agent")
            os.syswrite(buf)
          elsif fds[0].member?(os)
            buf = os.sysread(1024);
            @logger.debug("CONNECT: #{buf.bytesize} byte from #{host}:#{port}")
            ua.syswrite(buf)
          end
        end
      rescue
        os.close
        @logger.debug("CONNECT #{host}:#{port}: closed")
      end

      raise HTTPStatus::EOFError
    end

    def do_GET(req, res)
      perform_proxy_request(req, res) do |http, path, header|
        http.get(path, header)
      end
    end

    def do_HEAD(req, res)
      perform_proxy_request(req, res) do |http, path, header|
        http.head(path, header)
      end
    end

    def do_POST(req, res)
      perform_proxy_request(req, res) do |http, path, header|
        http.post(path, req.body || "", header)
      end
    end

    def do_OPTIONS(req, res)
      res['allow'] = "GET,HEAD,POST,OPTIONS,CONNECT"
    end

    private

    # Some header fields should not be transferred.
    HopByHop = %w( connection keep-alive proxy-authenticate upgrade
                   proxy-authorization te trailers transfer-encoding )
    ShouldNotTransfer = %w( set-cookie proxy-connection )
    def split_field(f) f ? f.split(/,\s+/).collect{|i| i.downcase } : [] end

    def choose_header(src, dst)
      connections = split_field(src['connection'])
      src.each{|key, value|
        key = key.downcase
        if HopByHop.member?(key)          || # RFC2616: 13.5.1
           connections.member?(key)       || # RFC2616: 14.10
           ShouldNotTransfer.member?(key)    # pragmatics
          @logger.debug("choose_header: `#{key}: #{value}'")
          next
        end
        dst[key] = value
      }
    end

    # Net::HTTP is stupid about the multiple header fields.
    # Here is workaround:
    def set_cookie(src, dst)
      if str = src['set-cookie']
        cookies = []
        str.split(/,\s*/).each{|token|
          if /^[^=]+;/o =~ token
            cookies[-1] << ", " << token
          elsif /=/o =~ token
            cookies << token
          else
            cookies[-1] << ", " << token
          end
        }
        dst.cookies.replace(cookies)
      end
    end

    def set_via(h)
      if @config[:ProxyVia]
        if  h['via']
          h['via'] << ", " << @via
        else
          h['via'] = @via
        end
      end
    end

    def setup_proxy_header(req, res)
      # Choose header fields to transfer
      header = Hash.new
      choose_header(req, header)
      set_via(header)
      return header
    end

    def setup_upstream_proxy_authentication(req, res, header)
      if upstream = proxy_uri(req, res)
        if upstream.userinfo
          header['proxy-authorization'] =
            "Basic " + [upstream.userinfo].pack("m").delete("\n")
        end
        return upstream
      end
      return FakeProxyURI
    end

    def perform_proxy_request(req, res)
      uri = req.request_uri
      path = uri.path.dup
      path << "?" << uri.query if uri.query
      header = setup_proxy_header(req, res)
      upstream = setup_upstream_proxy_authentication(req, res, header)
      response = nil

      http = Net::HTTP.new(uri.host, uri.port, upstream.host, upstream.port)
      http.start do
        if @config[:ProxyTimeout]
          ##################################   these issues are
          http.open_timeout = 30   # secs  #   necessary (maybe because
          http.read_timeout = 60   # secs  #   Ruby's bug, but why?)
          ##################################
        end
        response = yield(http, path, header)
      end

      # Persistent connection requirements are mysterious for me.
      # So I will close the connection in every response.
      res['proxy-connection'] = "close"
      res['connection'] = "close"

      # Convert Net::HTTP::HTTPResponse to WEBrick::HTTPResponse
      res.status = response.code.to_i
      choose_header(response, res)
      set_cookie(response, res)
      set_via(res)
      res.body = response.body
    end

    # :stopdoc:
  end
end
lib64/ruby/2.2.0/webrick/config.rb000064400000013102150402106400012311 0ustar00#
# config.rb -- Default configurations.
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2003 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: config.rb,v 1.52 2003/07/22 19:20:42 gotoyuzo Exp $

require 'webrick/version'
require 'webrick/httpversion'
require 'webrick/httputils'
require 'webrick/utils'
require 'webrick/log'

module WEBrick
  module Config
    LIBDIR = File::dirname(__FILE__) # :nodoc:

    # for GenericServer
    General = {
      :ServerName     => Utils::getservername,
      :BindAddress    => nil,   # "0.0.0.0" or "::" or nil
      :Port           => nil,   # users MUST specify this!!
      :MaxClients     => 100,   # maximum number of the concurrent connections
      :ServerType     => nil,   # default: WEBrick::SimpleServer
      :Logger         => nil,   # default: WEBrick::Log.new
      :ServerSoftware => "WEBrick/#{WEBrick::VERSION} " +
                         "(Ruby/#{RUBY_VERSION}/#{RUBY_RELEASE_DATE})",
      :TempDir        => ENV['TMPDIR']||ENV['TMP']||ENV['TEMP']||'/tmp',
      :DoNotListen    => false,
      :StartCallback  => nil,
      :StopCallback   => nil,
      :AcceptCallback => nil,
      :DoNotReverseLookup => nil,
      :ShutdownSocketWithoutClose => false,
    }

    # for HTTPServer, HTTPRequest, HTTPResponse ...
    HTTP = General.dup.update(
      :Port           => 80,
      :RequestTimeout => 30,
      :HTTPVersion    => HTTPVersion.new("1.1"),
      :AccessLog      => nil,
      :MimeTypes      => HTTPUtils::DefaultMimeTypes,
      :DirectoryIndex => ["index.html","index.htm","index.cgi","index.rhtml"],
      :DocumentRoot   => nil,
      :DocumentRootOptions => { :FancyIndexing => true },
      :RequestCallback => nil,
      :ServerAlias    => nil,
      :InputBufferSize  => 65536, # input buffer size in reading request body
      :OutputBufferSize => 65536, # output buffer size in sending File or IO

      # for HTTPProxyServer
      :ProxyAuthProc  => nil,
      :ProxyContentHandler => nil,
      :ProxyVia       => true,
      :ProxyTimeout   => true,
      :ProxyURI       => nil,

      :CGIInterpreter => nil,
      :CGIPathEnv     => nil,

      # workaround: if Request-URIs contain 8bit chars,
      # they should be escaped before calling of URI::parse().
      :Escape8bitURI  => false
    )

    ##
    # Default configuration for WEBrick::HTTPServlet::FileHandler
    #
    # :AcceptableLanguages::
    #   Array of languages allowed for accept-language.  There is no default
    # :DirectoryCallback::
    #   Allows preprocessing of directory requests.  There is no default
    #   callback.
    # :FancyIndexing::
    #   If true, show an index for directories.  The default is true.
    # :FileCallback::
    #   Allows preprocessing of file requests.  There is no default callback.
    # :HandlerCallback::
    #   Allows preprocessing of requests.  There is no default callback.
    # :HandlerTable::
    #   Maps file suffixes to file handlers.  DefaultFileHandler is used by
    #   default but any servlet can be used.
    # :NondisclosureName::
    #   Do not show files matching this array of globs.  .ht* and *~ are
    #   excluded by default.
    # :UserDir::
    #   Directory inside ~user to serve content from for /~user requests.
    #   Only works if mounted on /.  Disabled by default.

    FileHandler = {
      :NondisclosureName => [".ht*", "*~"],
      :FancyIndexing     => false,
      :HandlerTable      => {},
      :HandlerCallback   => nil,
      :DirectoryCallback => nil,
      :FileCallback      => nil,
      :UserDir           => nil,  # e.g. "public_html"
      :AcceptableLanguages => []  # ["en", "ja", ... ]
    }

    ##
    # Default configuration for WEBrick::HTTPAuth::BasicAuth
    #
    # :AutoReloadUserDB:: Reload the user database provided by :UserDB
    #                     automatically?

    BasicAuth = {
      :AutoReloadUserDB     => true,
    }

    ##
    # Default configuration for WEBrick::HTTPAuth::DigestAuth.
    #
    # :Algorithm:: MD5, MD5-sess (default), SHA1, SHA1-sess
    # :Domain:: An Array of URIs that define the protected space
    # :Qop:: 'auth' for authentication, 'auth-int' for integrity protection or
    #        both
    # :UseOpaque:: Should the server send opaque values to the client?  This
    #              helps prevent replay attacks.
    # :CheckNc:: Should the server check the nonce count?  This helps the
    #            server detect replay attacks.
    # :UseAuthenticationInfoHeader:: Should the server send an
    #                                AuthenticationInfo header?
    # :AutoReloadUserDB:: Reload the user database provided by :UserDB
    #                     automatically?
    # :NonceExpirePeriod:: How long should we store used nonces?  Default is
    #                      30 minutes.
    # :NonceExpireDelta:: How long is a nonce valid?  Default is 1 minute
    # :InternetExplorerHack:: Hack which allows Internet Explorer to work.
    # :OperaHack:: Hack which allows Opera to work.

    DigestAuth = {
      :Algorithm            => 'MD5-sess', # or 'MD5'
      :Domain               => nil,        # an array includes domain names.
      :Qop                  => [ 'auth' ], # 'auth' or 'auth-int' or both.
      :UseOpaque            => true,
      :UseNextNonce         => false,
      :CheckNc              => false,
      :UseAuthenticationInfoHeader => true,
      :AutoReloadUserDB     => true,
      :NonceExpirePeriod    => 30*60,
      :NonceExpireDelta     => 60,
      :InternetExplorerHack => true,
      :OperaHack            => true,
    }
  end
end
lib64/ruby/2.2.0/webrick/log.rb000064400000007724150402106400011642 0ustar00#--
# log.rb -- Log Class
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: log.rb,v 1.26 2002/10/06 17:06:10 gotoyuzo Exp $

module WEBrick

  ##
  # A generic logging class

  class BasicLog

    # Fatal log level which indicates a server crash

    FATAL = 1

    # Error log level which indicates a recoverable error

    ERROR = 2

    # Warning log level which indicates a possible problem

    WARN  = 3

    # Information log level which indicates possibly useful information

    INFO  = 4

    # Debugging error level for messages used in server development or
    # debugging

    DEBUG = 5

    # log-level, messages above this level will be logged
    attr_accessor :level

    ##
    # Initializes a new logger for +log_file+ that outputs messages at +level+
    # or higher.  +log_file+ can be a filename, an IO-like object that
    # responds to #<< or nil which outputs to $stderr.
    #
    # If no level is given INFO is chosen by default

    def initialize(log_file=nil, level=nil)
      @level = level || INFO
      case log_file
      when String
        @log = open(log_file, "a+")
        @log.sync = true
        @opened = true
      when NilClass
        @log = $stderr
      else
        @log = log_file  # requires "<<". (see BasicLog#log)
      end
    end

    ##
    # Closes the logger (also closes the log device associated to the logger)
    def close
      @log.close if @opened
      @log = nil
    end

    ##
    # Logs +data+ at +level+ if the given level is above the current log
    # level.

    def log(level, data)
      if @log && level <= @level
        data += "\n" if /\n\Z/ !~ data
        @log << data
      end
    end

    ##
    # Synonym for log(INFO, obj.to_s)
    def <<(obj)
      log(INFO, obj.to_s)
    end

    # Shortcut for logging a FATAL message
    def fatal(msg) log(FATAL, "FATAL " << format(msg)); end
    # Shortcut for logging an ERROR message
    def error(msg) log(ERROR, "ERROR " << format(msg)); end
    # Shortcut for logging a WARN message
    def warn(msg)  log(WARN,  "WARN  " << format(msg)); end
    # Shortcut for logging an INFO message
    def info(msg)  log(INFO,  "INFO  " << format(msg)); end
    # Shortcut for logging a DEBUG message
    def debug(msg) log(DEBUG, "DEBUG " << format(msg)); end

    # Will the logger output FATAL messages?
    def fatal?; @level >= FATAL; end
    # Will the logger output ERROR messages?
    def error?; @level >= ERROR; end
    # Will the logger output WARN messages?
    def warn?;  @level >= WARN; end
    # Will the logger output INFO messages?
    def info?;  @level >= INFO; end
    # Will the logger output DEBUG messages?
    def debug?; @level >= DEBUG; end

    private

    ##
    # Formats +arg+ for the logger
    #
    # * If +arg+ is an Exception, it will format the error message and
    #   the back trace.
    # * If +arg+ responds to #to_str, it will return it.
    # * Otherwise it will return +arg+.inspect.
    def format(arg)
      if arg.is_a?(Exception)
        "#{arg.class}: #{AccessLog.escape(arg.message)}\n\t" <<
        arg.backtrace.join("\n\t") << "\n"
      elsif arg.respond_to?(:to_str)
        AccessLog.escape(arg.to_str)
      else
        arg.inspect
      end
    end
  end

  ##
  # A logging class that prepends a timestamp to each message.

  class Log < BasicLog
    # Format of the timestamp which is applied to each logged line.  The
    # default is <tt>"[%Y-%m-%d %H:%M:%S]"</tt>
    attr_accessor :time_format

    ##
    # Same as BasicLog#initialize
    #
    # You can set the timestamp format through #time_format
    def initialize(log_file=nil, level=nil)
      super(log_file, level)
      @time_format = "[%Y-%m-%d %H:%M:%S]"
    end

    ##
    # Same as BasicLog#log
    def log(level, data)
      tmp = Time.now.strftime(@time_format)
      tmp << " " << data
      super(level, tmp)
    end
  end
end
lib64/ruby/2.2.0/webrick/httpauth/basicauth.rb000064400000005764150402106400014667 0ustar00#
# httpauth/basicauth.rb -- HTTP basic access authentication
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2003 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: basicauth.rb,v 1.5 2003/02/20 07:15:47 gotoyuzo Exp $

require 'webrick/config'
require 'webrick/httpstatus'
require 'webrick/httpauth/authenticator'

module WEBrick
  module HTTPAuth

    ##
    # Basic Authentication for WEBrick
    #
    # Use this class to add basic authentication to a WEBrick servlet.
    #
    # Here is an example of how to set up a BasicAuth:
    #
    #   config = { :Realm => 'BasicAuth example realm' }
    #
    #   htpasswd = WEBrick::HTTPAuth::Htpasswd.new 'my_password_file'
    #   htpasswd.set_passwd config[:Realm], 'username', 'password'
    #   htpasswd.flush
    #
    #   config[:UserDB] = htpasswd
    #
    #   basic_auth = WEBrick::HTTPAuth::BasicAuth.new config

    class BasicAuth
      include Authenticator

      AuthScheme = "Basic" # :nodoc:

      ##
      # Used by UserDB to create a basic password entry

      def self.make_passwd(realm, user, pass)
        pass ||= ""
        pass.crypt(Utils::random_string(2))
      end

      attr_reader :realm, :userdb, :logger

      ##
      # Creates a new BasicAuth instance.
      #
      # See WEBrick::Config::BasicAuth for default configuration entries
      #
      # You must supply the following configuration entries:
      #
      # :Realm:: The name of the realm being protected.
      # :UserDB:: A database of usernames and passwords.
      #           A WEBrick::HTTPAuth::Htpasswd instance should be used.

      def initialize(config, default=Config::BasicAuth)
        check_init(config)
        @config = default.dup.update(config)
      end

      ##
      # Authenticates a +req+ and returns a 401 Unauthorized using +res+ if
      # the authentication was not correct.

      def authenticate(req, res)
        unless basic_credentials = check_scheme(req)
          challenge(req, res)
        end
        userid, password = basic_credentials.unpack("m*")[0].split(":", 2)
        password ||= ""
        if userid.empty?
          error("user id was not given.")
          challenge(req, res)
        end
        unless encpass = @userdb.get_passwd(@realm, userid, @reload_db)
          error("%s: the user is not allowed.", userid)
          challenge(req, res)
        end
        if password.crypt(encpass) != encpass
          error("%s: password unmatch.", userid)
          challenge(req, res)
        end
        info("%s: authentication succeeded.", userid)
        req.user = userid
      end

      ##
      # Returns a challenge response which asks for for authentication
      # information

      def challenge(req, res)
        res[@response_field] = "#{@auth_scheme} realm=\"#{@realm}\""
        raise @auth_exception
      end
    end

    ##
    # Basic authentication for proxy servers.  See BasicAuth for details.

    class ProxyBasicAuth < BasicAuth
      include ProxyAuthenticator
    end
  end
end
lib64/ruby/2.2.0/webrick/httpauth/htgroup.rb000064400000004521150402106400014402 0ustar00#
# httpauth/htgroup.rb -- Apache compatible htgroup file
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2003 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: htgroup.rb,v 1.1 2003/02/16 22:22:56 gotoyuzo Exp $

require 'tempfile'

module WEBrick
  module HTTPAuth

    ##
    # Htgroup accesses apache-compatible group files.  Htgroup can be used to
    # provide group-based authentication for users.  Currently Htgroup is not
    # directly integrated with any authenticators in WEBrick.  For security,
    # the path for a digest password database should be stored outside of the
    # paths available to the HTTP server.
    #
    # Example:
    #
    #   htgroup = WEBrick::HTTPAuth::Htgroup.new 'my_group_file'
    #   htgroup.add 'superheroes', %w[spiderman batman]
    #
    #   htgroup.members('superheroes').include? 'magneto' # => false

    class Htgroup

      ##
      # Open a group database at +path+

      def initialize(path)
        @path = path
        @mtime = Time.at(0)
        @group = Hash.new
        open(@path,"a").close unless File::exist?(@path)
        reload
      end

      ##
      # Reload groups from the database

      def reload
        if (mtime = File::mtime(@path)) > @mtime
          @group.clear
          open(@path){|io|
            while line = io.gets
              line.chomp!
              group, members = line.split(/:\s*/)
              @group[group] = members.split(/\s+/)
            end
          }
          @mtime = mtime
        end
      end

      ##
      # Flush the group database.  If +output+ is given the database will be
      # written there instead of to the original path.

      def flush(output=nil)
        output ||= @path
        tmp = Tempfile.new("htgroup", File::dirname(output))
        begin
          @group.keys.sort.each{|group|
            tmp.puts(format("%s: %s", group, self.members(group).join(" ")))
          }
          tmp.close
          File::rename(tmp.path, output)
        rescue
          tmp.close(true)
        end
      end

      ##
      # Retrieve the list of members from +group+

      def members(group)
        reload
        @group[group] || []
      end

      ##
      # Add an Array of +members+ to +group+

      def add(group, members)
        @group[group] = members(group) | members
      end
    end
  end
end
lib64/ruby/2.2.0/webrick/httpauth/htpasswd.rb000064400000006405150402106410014553 0ustar00#
# httpauth/htpasswd -- Apache compatible htpasswd file
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2003 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: htpasswd.rb,v 1.4 2003/07/22 19:20:45 gotoyuzo Exp $

require 'webrick/httpauth/userdb'
require 'webrick/httpauth/basicauth'
require 'tempfile'

module WEBrick
  module HTTPAuth

    ##
    # Htpasswd accesses apache-compatible password files.  Passwords are
    # matched to a realm where they are valid.  For security, the path for a
    # password database should be stored outside of the paths available to the
    # HTTP server.
    #
    # Htpasswd is intended for use with WEBrick::HTTPAuth::BasicAuth.
    #
    # To create an Htpasswd database with a single user:
    #
    #   htpasswd = WEBrick::HTTPAuth::Htpasswd.new 'my_password_file'
    #   htpasswd.set_passwd 'my realm', 'username', 'password'
    #   htpasswd.flush

    class Htpasswd
      include UserDB

      ##
      # Open a password database at +path+

      def initialize(path)
        @path = path
        @mtime = Time.at(0)
        @passwd = Hash.new
        @auth_type = BasicAuth
        open(@path,"a").close unless File::exist?(@path)
        reload
      end

      ##
      # Reload passwords from the database

      def reload
        mtime = File::mtime(@path)
        if mtime > @mtime
          @passwd.clear
          open(@path){|io|
            while line = io.gets
              line.chomp!
              case line
              when %r!\A[^:]+:[a-zA-Z0-9./]{13}\z!
                user, pass = line.split(":")
              when /:\$/, /:{SHA}/
                raise NotImplementedError,
                      'MD5, SHA1 .htpasswd file not supported'
              else
                raise StandardError, 'bad .htpasswd file'
              end
              @passwd[user] = pass
            end
          }
          @mtime = mtime
        end
      end

      ##
      # Flush the password database.  If +output+ is given the database will
      # be written there instead of to the original path.

      def flush(output=nil)
        output ||= @path
        tmp = Tempfile.create("htpasswd", File::dirname(output))
        renamed = false
        begin
          each{|item| tmp.puts(item.join(":")) }
          tmp.close
          File::rename(tmp.path, output)
          renamed = true
        ensure
          tmp.close if !tmp.closed?
          File.unlink(tmp.path) if !renamed
        end
      end

      ##
      # Retrieves a password from the database for +user+ in +realm+.  If
      # +reload_db+ is true the database will be reloaded first.

      def get_passwd(realm, user, reload_db)
        reload() if reload_db
        @passwd[user]
      end

      ##
      # Sets a password in the database for +user+ in +realm+ to +pass+.

      def set_passwd(realm, user, pass)
        @passwd[user] = make_passwd(realm, user, pass)
      end

      ##
      # Removes a password from the database for +user+ in +realm+.

      def delete_passwd(realm, user)
        @passwd.delete(user)
      end

      ##
      # Iterate passwords in the database.

      def each # :yields: [user, password]
        @passwd.keys.sort.each{|user|
          yield([user, @passwd[user]])
        }
      end
    end
  end
end
lib64/ruby/2.2.0/webrick/httpauth/htdigest.rb000064400000006653150402106410014536 0ustar00#
# httpauth/htdigest.rb -- Apache compatible htdigest file
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2003 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: htdigest.rb,v 1.4 2003/07/22 19:20:45 gotoyuzo Exp $

require 'webrick/httpauth/userdb'
require 'webrick/httpauth/digestauth'
require 'tempfile'

module WEBrick
  module HTTPAuth

    ##
    # Htdigest accesses apache-compatible digest password files.  Passwords are
    # matched to a realm where they are valid.  For security, the path for a
    # digest password database should be stored outside of the paths available
    # to the HTTP server.
    #
    # Htdigest is intended for use with WEBrick::HTTPAuth::DigestAuth and
    # stores passwords using cryptographic hashes.
    #
    #   htpasswd = WEBrick::HTTPAuth::Htdigest.new 'my_password_file'
    #   htpasswd.set_passwd 'my realm', 'username', 'password'
    #   htpasswd.flush

    class Htdigest
      include UserDB

      ##
      # Open a digest password database at +path+

      def initialize(path)
        @path = path
        @mtime = Time.at(0)
        @digest = Hash.new
        @mutex = Mutex::new
        @auth_type = DigestAuth
        open(@path,"a").close unless File::exist?(@path)
        reload
      end

      ##
      # Reloads passwords from the database

      def reload
        mtime = File::mtime(@path)
        if mtime > @mtime
          @digest.clear
          open(@path){|io|
            while line = io.gets
              line.chomp!
              user, realm, pass = line.split(/:/, 3)
              unless @digest[realm]
                @digest[realm] = Hash.new
              end
              @digest[realm][user] = pass
            end
          }
          @mtime = mtime
        end
      end

      ##
      # Flush the password database.  If +output+ is given the database will
      # be written there instead of to the original path.

      def flush(output=nil)
        output ||= @path
        tmp = Tempfile.create("htpasswd", File::dirname(output))
        renamed = false
        begin
          each{|item| tmp.puts(item.join(":")) }
          tmp.close
          File::rename(tmp.path, output)
          renamed = true
        ensure
          tmp.close if !tmp.closed?
          File.unlink(tmp.path) if !renamed
        end
      end

      ##
      # Retrieves a password from the database for +user+ in +realm+.  If
      # +reload_db+ is true the database will be reloaded first.

      def get_passwd(realm, user, reload_db)
        reload() if reload_db
        if hash = @digest[realm]
          hash[user]
        end
      end

      ##
      # Sets a password in the database for +user+ in +realm+ to +pass+.

      def set_passwd(realm, user, pass)
        @mutex.synchronize{
          unless @digest[realm]
            @digest[realm] = Hash.new
          end
          @digest[realm][user] = make_passwd(realm, user, pass)
        }
      end

      ##
      # Removes a password from the database for +user+ in +realm+.

      def delete_passwd(realm, user)
        if hash = @digest[realm]
          hash.delete(user)
        end
      end

      ##
      # Iterate passwords in the database.

      def each # :yields: [user, realm, password_hash]
        @digest.keys.sort.each{|realm|
          hash = @digest[realm]
          hash.keys.sort.each{|user|
            yield([user, realm, hash[user]])
          }
        }
      end
    end
  end
end
lib64/ruby/2.2.0/webrick/httpauth/authenticator.rb000064400000005776150402106410015602 0ustar00#--
# httpauth/authenticator.rb -- Authenticator mix-in module.
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2003 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: authenticator.rb,v 1.3 2003/02/20 07:15:47 gotoyuzo Exp $

module WEBrick
  module HTTPAuth

    ##
    # Module providing generic support for both Digest and Basic
    # authentication schemes.

    module Authenticator

      RequestField      = "Authorization" # :nodoc:
      ResponseField     = "WWW-Authenticate" # :nodoc:
      ResponseInfoField = "Authentication-Info" # :nodoc:
      AuthException     = HTTPStatus::Unauthorized # :nodoc:

      ##
      # Method of authentication, must be overridden by the including class

      AuthScheme        = nil

      ##
      # The realm this authenticator covers

      attr_reader :realm

      ##
      # The user database for this authenticator

      attr_reader :userdb

      ##
      # The logger for this authenticator

      attr_reader :logger

      private

      # :stopdoc:

      ##
      # Initializes the authenticator from +config+

      def check_init(config)
        [:UserDB, :Realm].each{|sym|
          unless config[sym]
            raise ArgumentError, "Argument #{sym.inspect} missing."
          end
        }
        @realm     = config[:Realm]
        @userdb    = config[:UserDB]
        @logger    = config[:Logger] || Log::new($stderr)
        @reload_db = config[:AutoReloadUserDB]
        @request_field   = self::class::RequestField
        @response_field  = self::class::ResponseField
        @resp_info_field = self::class::ResponseInfoField
        @auth_exception  = self::class::AuthException
        @auth_scheme     = self::class::AuthScheme
      end

      ##
      # Ensures +req+ has credentials that can be authenticated.

      def check_scheme(req)
        unless credentials = req[@request_field]
          error("no credentials in the request.")
          return nil
        end
        unless match = /^#{@auth_scheme}\s+/i.match(credentials)
          error("invalid scheme in %s.", credentials)
          info("%s: %s", @request_field, credentials) if $DEBUG
          return nil
        end
        return match.post_match
      end

      def log(meth, fmt, *args)
        msg = format("%s %s: ", @auth_scheme, @realm)
        msg << fmt % args
        @logger.send(meth, msg)
      end

      def error(fmt, *args)
        if @logger.error?
          log(:error, fmt, *args)
        end
      end

      def info(fmt, *args)
        if @logger.info?
          log(:info, fmt, *args)
        end
      end

      # :startdoc:
    end

    ##
    # Module providing generic support for both Digest and Basic
    # authentication schemes for proxies.

    module ProxyAuthenticator
      RequestField  = "Proxy-Authorization" # :nodoc:
      ResponseField = "Proxy-Authenticate" # :nodoc:
      InfoField     = "Proxy-Authentication-Info" # :nodoc:
      AuthException = HTTPStatus::ProxyAuthenticationRequired # :nodoc:
    end
  end
end
lib64/ruby/2.2.0/webrick/httpauth/digestauth.rb000064400000032203150402106410015052 0ustar00#
# httpauth/digestauth.rb -- HTTP digest access authentication
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2003 Internet Programming with Ruby writers.
# Copyright (c) 2003 H.M.
#
# The original implementation is provided by H.M.
#   URL: http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=
#        %C7%A7%BE%DA%B5%A1%C7%BD%A4%F2%B2%FE%C2%A4%A4%B7%A4%C6%A4%DF%A4%EB
#
# $IPR: digestauth.rb,v 1.5 2003/02/20 07:15:47 gotoyuzo Exp $

require 'webrick/config'
require 'webrick/httpstatus'
require 'webrick/httpauth/authenticator'
require 'digest/md5'
require 'digest/sha1'

module WEBrick
  module HTTPAuth

    ##
    # RFC 2617 Digest Access Authentication for WEBrick
    #
    # Use this class to add digest authentication to a WEBrick servlet.
    #
    # Here is an example of how to set up DigestAuth:
    #
    #   config = { :Realm => 'DigestAuth example realm' }
    #
    #   htdigest = WEBrick::HTTPAuth::Htdigest.new 'my_password_file'
    #   htdigest.set_passwd config[:Realm], 'username', 'password'
    #   htdigest.flush
    #
    #   config[:UserDB] = htdigest
    #
    #   digest_auth = WEBrick::HTTPAuth::DigestAuth.new config
    #
    # When using this as with a servlet be sure not to create a new DigestAuth
    # object in the servlet's #initialize.  By default WEBrick creates a new
    # servlet instance for every request and the DigestAuth object must be
    # used across requests.

    class DigestAuth
      include Authenticator

      AuthScheme = "Digest" # :nodoc:

      ##
      # Struct containing the opaque portion of the digest authentication

      OpaqueInfo = Struct.new(:time, :nonce, :nc) # :nodoc:

      ##
      # Digest authentication algorithm

      attr_reader :algorithm

      ##
      # Quality of protection.  RFC 2617 defines "auth" and "auth-int"

      attr_reader :qop

      ##
      # Used by UserDB to create a digest password entry

      def self.make_passwd(realm, user, pass)
        pass ||= ""
        Digest::MD5::hexdigest([user, realm, pass].join(":"))
      end

      ##
      # Creates a new DigestAuth instance.  Be sure to use the same DigestAuth
      # instance for multiple requests as it saves state between requests in
      # order to perform authentication.
      #
      # See WEBrick::Config::DigestAuth for default configuration entries
      #
      # You must supply the following configuration entries:
      #
      # :Realm:: The name of the realm being protected.
      # :UserDB:: A database of usernames and passwords.
      #           A WEBrick::HTTPAuth::Htdigest instance should be used.

      def initialize(config, default=Config::DigestAuth)
        check_init(config)
        @config                 = default.dup.update(config)
        @algorithm              = @config[:Algorithm]
        @domain                 = @config[:Domain]
        @qop                    = @config[:Qop]
        @use_opaque             = @config[:UseOpaque]
        @use_next_nonce         = @config[:UseNextNonce]
        @check_nc               = @config[:CheckNc]
        @use_auth_info_header   = @config[:UseAuthenticationInfoHeader]
        @nonce_expire_period    = @config[:NonceExpirePeriod]
        @nonce_expire_delta     = @config[:NonceExpireDelta]
        @internet_explorer_hack = @config[:InternetExplorerHack]

        case @algorithm
        when 'MD5','MD5-sess'
          @h = Digest::MD5
        when 'SHA1','SHA1-sess'  # it is a bonus feature :-)
          @h = Digest::SHA1
        else
          msg = format('Algorithm "%s" is not supported.', @algorithm)
          raise ArgumentError.new(msg)
        end

        @instance_key = hexdigest(self.__id__, Time.now.to_i, Process.pid)
        @opaques = {}
        @last_nonce_expire = Time.now
        @mutex = Mutex.new
      end

      ##
      # Authenticates a +req+ and returns a 401 Unauthorized using +res+ if
      # the authentication was not correct.

      def authenticate(req, res)
        unless result = @mutex.synchronize{ _authenticate(req, res) }
          challenge(req, res)
        end
        if result == :nonce_is_stale
          challenge(req, res, true)
        end
        return true
      end

      ##
      # Returns a challenge response which asks for for authentication
      # information

      def challenge(req, res, stale=false)
        nonce = generate_next_nonce(req)
        if @use_opaque
          opaque = generate_opaque(req)
          @opaques[opaque].nonce = nonce
        end

        param = Hash.new
        param["realm"]  = HTTPUtils::quote(@realm)
        param["domain"] = HTTPUtils::quote(@domain.to_a.join(" ")) if @domain
        param["nonce"]  = HTTPUtils::quote(nonce)
        param["opaque"] = HTTPUtils::quote(opaque) if opaque
        param["stale"]  = stale.to_s
        param["algorithm"] = @algorithm
        param["qop"]    = HTTPUtils::quote(@qop.to_a.join(",")) if @qop

        res[@response_field] =
          "#{@auth_scheme} " + param.map{|k,v| "#{k}=#{v}" }.join(", ")
        info("%s: %s", @response_field, res[@response_field]) if $DEBUG
        raise @auth_exception
      end

      private

      # :stopdoc:

      MustParams = ['username','realm','nonce','uri','response']
      MustParamsAuth = ['cnonce','nc']

      def _authenticate(req, res)
        unless digest_credentials = check_scheme(req)
          return false
        end

        auth_req = split_param_value(digest_credentials)
        if auth_req['qop'] == "auth" || auth_req['qop'] == "auth-int"
          req_params = MustParams + MustParamsAuth
        else
          req_params = MustParams
        end
        req_params.each{|key|
          unless auth_req.has_key?(key)
            error('%s: parameter missing. "%s"', auth_req['username'], key)
            raise HTTPStatus::BadRequest
          end
        }

        if !check_uri(req, auth_req)
          raise HTTPStatus::BadRequest
        end

        if auth_req['realm'] != @realm
          error('%s: realm unmatch. "%s" for "%s"',
                auth_req['username'], auth_req['realm'], @realm)
          return false
        end

        auth_req['algorithm'] ||= 'MD5'
        if auth_req['algorithm'].upcase != @algorithm.upcase
          error('%s: algorithm unmatch. "%s" for "%s"',
                auth_req['username'], auth_req['algorithm'], @algorithm)
          return false
        end

        if (@qop.nil? && auth_req.has_key?('qop')) ||
           (@qop && (! @qop.member?(auth_req['qop'])))
          error('%s: the qop is not allowed. "%s"',
                auth_req['username'], auth_req['qop'])
          return false
        end

        password = @userdb.get_passwd(@realm, auth_req['username'], @reload_db)
        unless password
          error('%s: the user is not allowed.', auth_req['username'])
          return false
        end

        nonce_is_invalid = false
        if @use_opaque
          info("@opaque = %s", @opaque.inspect) if $DEBUG
          if !(opaque = auth_req['opaque'])
            error('%s: opaque is not given.', auth_req['username'])
            nonce_is_invalid = true
          elsif !(opaque_struct = @opaques[opaque])
            error('%s: invalid opaque is given.', auth_req['username'])
            nonce_is_invalid = true
          elsif !check_opaque(opaque_struct, req, auth_req)
            @opaques.delete(auth_req['opaque'])
            nonce_is_invalid = true
          end
        elsif !check_nonce(req, auth_req)
          nonce_is_invalid = true
        end

        if /-sess$/i =~ auth_req['algorithm']
          ha1 = hexdigest(password, auth_req['nonce'], auth_req['cnonce'])
        else
          ha1 = password
        end

        if auth_req['qop'] == "auth" || auth_req['qop'] == nil
          ha2 = hexdigest(req.request_method, auth_req['uri'])
          ha2_res = hexdigest("", auth_req['uri'])
        elsif auth_req['qop'] == "auth-int"
          body_digest = @h.new
          req.body { |chunk| body_digest.update(chunk) }
          body_digest = body_digest.hexdigest
          ha2 = hexdigest(req.request_method, auth_req['uri'], body_digest)
          ha2_res = hexdigest("", auth_req['uri'], body_digest)
        end

        if auth_req['qop'] == "auth" || auth_req['qop'] == "auth-int"
          param2 = ['nonce', 'nc', 'cnonce', 'qop'].map{|key|
            auth_req[key]
          }.join(':')
          digest     = hexdigest(ha1, param2, ha2)
          digest_res = hexdigest(ha1, param2, ha2_res)
        else
          digest     = hexdigest(ha1, auth_req['nonce'], ha2)
          digest_res = hexdigest(ha1, auth_req['nonce'], ha2_res)
        end

        if digest != auth_req['response']
          error("%s: digest unmatch.", auth_req['username'])
          return false
        elsif nonce_is_invalid
          error('%s: digest is valid, but nonce is not valid.',
                auth_req['username'])
          return :nonce_is_stale
        elsif @use_auth_info_header
          auth_info = {
            'nextnonce' => generate_next_nonce(req),
            'rspauth'   => digest_res
          }
          if @use_opaque
            opaque_struct.time  = req.request_time
            opaque_struct.nonce = auth_info['nextnonce']
            opaque_struct.nc    = "%08x" % (auth_req['nc'].hex + 1)
          end
          if auth_req['qop'] == "auth" || auth_req['qop'] == "auth-int"
            ['qop','cnonce','nc'].each{|key|
              auth_info[key] = auth_req[key]
            }
          end
          res[@resp_info_field] = auth_info.keys.map{|key|
            if key == 'nc'
              key + '=' + auth_info[key]
            else
              key + "=" + HTTPUtils::quote(auth_info[key])
            end
          }.join(', ')
        end
        info('%s: authentication succeeded.', auth_req['username'])
        req.user = auth_req['username']
        return true
      end

      def split_param_value(string)
        ret = {}
        while string.bytesize != 0
          case string
          when /^\s*([\w\-\.\*\%\!]+)=\s*\"((\\.|[^\"])*)\"\s*,?/
            key = $1
            matched = $2
            string = $'
            ret[key] = matched.gsub(/\\(.)/, "\\1")
          when /^\s*([\w\-\.\*\%\!]+)=\s*([^,\"]*),?/
            key = $1
            matched = $2
            string = $'
            ret[key] = matched.clone
          when /^s*^,/
            string = $'
          else
            break
          end
        end
        ret
      end

      def generate_next_nonce(req)
        now = "%012d" % req.request_time.to_i
        pk  = hexdigest(now, @instance_key)[0,32]
        nonce = [now + ":" + pk].pack("m*").chop # it has 60 length of chars.
        nonce
      end

      def check_nonce(req, auth_req)
        username = auth_req['username']
        nonce = auth_req['nonce']

        pub_time, pk = nonce.unpack("m*")[0].split(":", 2)
        if (!pub_time || !pk)
          error("%s: empty nonce is given", username)
          return false
        elsif (hexdigest(pub_time, @instance_key)[0,32] != pk)
          error("%s: invalid private-key: %s for %s",
                username, hexdigest(pub_time, @instance_key)[0,32], pk)
          return false
        end

        diff_time = req.request_time.to_i - pub_time.to_i
        if (diff_time < 0)
          error("%s: difference of time-stamp is negative.", username)
          return false
        elsif diff_time > @nonce_expire_period
          error("%s: nonce is expired.", username)
          return false
        end

        return true
      end

      def generate_opaque(req)
        @mutex.synchronize{
          now = req.request_time
          if now - @last_nonce_expire > @nonce_expire_delta
            @opaques.delete_if{|key,val|
              (now - val.time) > @nonce_expire_period
            }
            @last_nonce_expire = now
          end
          begin
            opaque = Utils::random_string(16)
          end while @opaques[opaque]
          @opaques[opaque] = OpaqueInfo.new(now, nil, '00000001')
          opaque
        }
      end

      def check_opaque(opaque_struct, req, auth_req)
        if (@use_next_nonce && auth_req['nonce'] != opaque_struct.nonce)
          error('%s: nonce unmatched. "%s" for "%s"',
                auth_req['username'], auth_req['nonce'], opaque_struct.nonce)
          return false
        elsif !check_nonce(req, auth_req)
          return false
        end
        if (@check_nc && auth_req['nc'] != opaque_struct.nc)
          error('%s: nc unmatched."%s" for "%s"',
                auth_req['username'], auth_req['nc'], opaque_struct.nc)
          return false
        end
        true
      end

      def check_uri(req, auth_req)
        uri = auth_req['uri']
        if uri != req.request_uri.to_s && uri != req.unparsed_uri &&
           (@internet_explorer_hack && uri != req.path)
          error('%s: uri unmatch. "%s" for "%s"', auth_req['username'],
                auth_req['uri'], req.request_uri.to_s)
          return false
        end
        true
      end

      def hexdigest(*args)
        @h.hexdigest(args.join(":"))
      end

      # :startdoc:
    end

    ##
    # Digest authentication for proxy servers.  See DigestAuth for details.

    class ProxyDigestAuth < DigestAuth
      include ProxyAuthenticator

      private
      def check_uri(req, auth_req) # :nodoc:
        return true
      end
    end
  end
end
lib64/ruby/2.2.0/webrick/httpauth/userdb.rb000064400000002443150402106410014200 0ustar00#--
# httpauth/userdb.rb -- UserDB mix-in module.
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2003 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: userdb.rb,v 1.2 2003/02/20 07:15:48 gotoyuzo Exp $

module WEBrick
  module HTTPAuth

    ##
    # User database mixin for HTTPAuth.  This mixin dispatches user record
    # access to the underlying auth_type for this database.

    module UserDB

      ##
      # The authentication type.
      #
      # WEBrick::HTTPAuth::BasicAuth or WEBrick::HTTPAuth::DigestAuth are
      # built-in.

      attr_accessor :auth_type

      ##
      # Creates an obscured password in +realm+ with +user+ and +password+
      # using the auth_type of this database.

      def make_passwd(realm, user, pass)
        @auth_type::make_passwd(realm, user, pass)
      end

      ##
      # Sets a password in +realm+ with +user+ and +password+ for the
      # auth_type of this database.

      def set_passwd(realm, user, pass)
        self[user] = pass
      end

      ##
      # Retrieves a password in +realm+ for +user+ for the auth_type of this
      # database.  +reload_db+ is a dummy value.

      def get_passwd(realm, user, reload_db=false)
        make_passwd(realm, user, self[user])
      end
    end
  end
end
lib64/ruby/2.2.0/webrick/httpstatus.rb000064400000012247150402106410013301 0ustar00#--
# httpstatus.rb -- HTTPStatus Class
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: httpstatus.rb,v 1.11 2003/03/24 20:18:55 gotoyuzo Exp $

require 'webrick/accesslog'

module WEBrick

  ##
  # This module is used to manager HTTP status codes.
  #
  # See http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html for more
  # information.
  module HTTPStatus

    ##
    # Root of the HTTP status class hierarchy
    class Status < StandardError
      class << self
        attr_reader :code, :reason_phrase # :nodoc:
      end

      # Returns the HTTP status code
      def code() self::class::code end

      # Returns the HTTP status description
      def reason_phrase() self::class::reason_phrase end

      alias to_i code # :nodoc:
    end

    # Root of the HTTP info statuses
    class Info        < Status; end
    # Root of the HTTP success statuses
    class Success     < Status; end
    # Root of the HTTP redirect statuses
    class Redirect    < Status; end
    # Root of the HTTP error statuses
    class Error       < Status; end
    # Root of the HTTP client error statuses
    class ClientError < Error; end
    # Root of the HTTP server error statuses
    class ServerError < Error; end

    class EOFError < StandardError; end

    # HTTP status codes and descriptions
    StatusMessage = { # :nodoc:
      100 => 'Continue',
      101 => 'Switching Protocols',
      200 => 'OK',
      201 => 'Created',
      202 => 'Accepted',
      203 => 'Non-Authoritative Information',
      204 => 'No Content',
      205 => 'Reset Content',
      206 => 'Partial Content',
      207 => 'Multi-Status',
      300 => 'Multiple Choices',
      301 => 'Moved Permanently',
      302 => 'Found',
      303 => 'See Other',
      304 => 'Not Modified',
      305 => 'Use Proxy',
      307 => 'Temporary Redirect',
      400 => 'Bad Request',
      401 => 'Unauthorized',
      402 => 'Payment Required',
      403 => 'Forbidden',
      404 => 'Not Found',
      405 => 'Method Not Allowed',
      406 => 'Not Acceptable',
      407 => 'Proxy Authentication Required',
      408 => 'Request Timeout',
      409 => 'Conflict',
      410 => 'Gone',
      411 => 'Length Required',
      412 => 'Precondition Failed',
      413 => 'Request Entity Too Large',
      414 => 'Request-URI Too Large',
      415 => 'Unsupported Media Type',
      416 => 'Request Range Not Satisfiable',
      417 => 'Expectation Failed',
      422 => 'Unprocessable Entity',
      423 => 'Locked',
      424 => 'Failed Dependency',
      426 => 'Upgrade Required',
      428 => 'Precondition Required',
      429 => 'Too Many Requests',
      431 => 'Request Header Fields Too Large',
      500 => 'Internal Server Error',
      501 => 'Not Implemented',
      502 => 'Bad Gateway',
      503 => 'Service Unavailable',
      504 => 'Gateway Timeout',
      505 => 'HTTP Version Not Supported',
      507 => 'Insufficient Storage',
      511 => 'Network Authentication Required',
    }

    # Maps a status code to the corresponding Status class
    CodeToError = {} # :nodoc:

    # Creates a status or error class for each status code and
    # populates the CodeToError map.
    StatusMessage.each{|code, message|
      message.freeze
      var_name = message.gsub(/[ \-]/,'_').upcase
      err_name = message.gsub(/[ \-]/,'')

      case code
      when 100...200; parent = Info
      when 200...300; parent = Success
      when 300...400; parent = Redirect
      when 400...500; parent = ClientError
      when 500...600; parent = ServerError
      end

      const_set("RC_#{var_name}", code)
      err_class = Class.new(parent)
      err_class.instance_variable_set(:@code, code)
      err_class.instance_variable_set(:@reason_phrase, message)
      const_set(err_name, err_class)
      CodeToError[code] = err_class
    }

    ##
    # Returns the description corresponding to the HTTP status +code+
    #
    #   WEBrick::HTTPStatus.reason_phrase 404
    #   => "Not Found"
    def reason_phrase(code)
      StatusMessage[code.to_i]
    end

    ##
    # Is +code+ an informational status?
    def info?(code)
      code.to_i >= 100 and code.to_i < 200
    end

    ##
    # Is +code+ a successful status?
    def success?(code)
      code.to_i >= 200 and code.to_i < 300
    end

    ##
    # Is +code+ a redirection status?
    def redirect?(code)
      code.to_i >= 300 and code.to_i < 400
    end

    ##
    # Is +code+ an error status?
    def error?(code)
      code.to_i >= 400 and code.to_i < 600
    end

    ##
    # Is +code+ a client error status?
    def client_error?(code)
      code.to_i >= 400 and code.to_i < 500
    end

    ##
    # Is +code+ a server error status?
    def server_error?(code)
      code.to_i >= 500 and code.to_i < 600
    end

    ##
    # Returns the status class corresponding to +code+
    #
    #   WEBrick::HTTPStatus[302]
    #   => WEBrick::HTTPStatus::NotFound
    #
    def self.[](code)
      CodeToError[code]
    end

    module_function :reason_phrase
    module_function :info?, :success?, :redirect?, :error?
    module_function :client_error?, :server_error?
  end
end
lib64/ruby/2.2.0/webrick/httpauth.rb000064400000006517150402106410012722 0ustar00#
# httpauth.rb -- HTTP access authentication
#
# Author: IPR -- Internet Programming with Ruby -- writers
# Copyright (c) 2000, 2001 TAKAHASHI Masayoshi, GOTOU Yuuzou
# Copyright (c) 2002 Internet Programming with Ruby writers. All rights
# reserved.
#
# $IPR: httpauth.rb,v 1.14 2003/07/22 19:20:42 gotoyuzo Exp $

require 'webrick/httpauth/basicauth'
require 'webrick/httpauth/digestauth'
require 'webrick/httpauth/htpasswd'
require 'webrick/httpauth/htdigest'
require 'webrick/httpauth/htgroup'

module WEBrick

  ##
  # HTTPAuth provides both basic and digest authentication.
  #
  # To enable authentication for requests in WEBrick you will need a user
  # database and an authenticator.  To start, here's an Htpasswd database for
  # use with a DigestAuth authenticator:
  #
  #   config = { :Realm => 'DigestAuth example realm' }
  #
  #   htpasswd = WEBrick::HTTPAuth::Htpasswd.new 'my_password_file'
  #   htpasswd.auth_type = WEBrick::HTTPAuth::DigestAuth
  #   htpasswd.set_passwd config[:Realm], 'username', 'password'
  #   htpasswd.flush
  #
  # The +:Realm+ is used to provide different access to different groups
  # across several resources on a server.  Typically you'll need only one
  # realm for a server.
  #
  # This database can be used to create an authenticator:
  #
  #   config[:UserDB] = htpasswd
  #
  #   digest_auth = WEBrick::HTTPAuth::DigestAuth.new config
  #
  # To authenticate a request call #authenticate with a request and response
  # object in a servlet:
  #
  #   def do_GET req, res
  #     @authenticator.authenticate req, res
  #   end
  #
  # For digest authentication the authenticator must not be created every
  # request, it must be passed in as an option via WEBrick::HTTPServer#mount.

  module HTTPAuth
    module_function

    def _basic_auth(req, res, realm, req_field, res_field, err_type,
                    block) # :nodoc:
      user = pass = nil
      if /^Basic\s+(.*)/o =~ req[req_field]
        userpass = $1
        user, pass = userpass.unpack("m*")[0].split(":", 2)
      end
      if block.call(user, pass)
        req.user = user
        return
      end
      res[res_field] = "Basic realm=\"#{realm}\""
      raise err_type
    end

    ##
    # Simple wrapper for providing basic authentication for a request.  When
    # called with a request +req+, response +res+, authentication +realm+ and
    # +block+ the block will be called with a +username+ and +password+.  If
    # the block returns true the request is allowed to continue, otherwise an
    # HTTPStatus::Unauthorized error is raised.

    def basic_auth(req, res, realm, &block) # :yield: username, password
      _basic_auth(req, res, realm, "Authorization", "WWW-Authenticate",
                  HTTPStatus::Unauthorized, block)
    end

    ##
    # Simple wrapper for providing basic authentication for a proxied request.
    # When called with a request +req+, response +res+, authentication +realm+
    # and +block+ the block will be called with a +username+ and +password+.
    # If the block returns true the request is allowed to continue, otherwise
    # an HTTPStatus::ProxyAuthenticationRequired error is raised.

    def proxy_basic_auth(req, res, realm, &block) # :yield: username, password
      _basic_auth(req, res, realm, "Proxy-Authorization", "Proxy-Authenticate",
                  HTTPStatus::ProxyAuthenticationRequired, block)
    end
  end
end
lib64/ruby/2.2.0/rexml/cdata.rb000064400000003053150402106410011626 0ustar00require "rexml/text"

module REXML
  class CData < Text
    START = '<![CDATA['
    STOP = ']]>'
    ILLEGAL = /(\]\]>)/

    #   Constructor.  CData is data between <![CDATA[ ... ]]>
    #
    # _Examples_
    #  CData.new( source )
    #  CData.new( "Here is some CDATA" )
    #  CData.new( "Some unprocessed data", respect_whitespace_TF, parent_element )
    def initialize( first, whitespace=true, parent=nil )
      super( first, whitespace, parent, false, true, ILLEGAL )
    end

    # Make a copy of this object
    #
    # _Examples_
    #  c = CData.new( "Some text" )
    #  d = c.clone
    #  d.to_s        # -> "Some text"
    def clone
      CData.new self
    end

    # Returns the content of this CData object
    #
    # _Examples_
    #  c = CData.new( "Some text" )
    #  c.to_s        # -> "Some text"
    def to_s
      @string
    end

    def value
      @string
    end

    # == DEPRECATED
    # See the rexml/formatters package
    #
    # Generates XML output of this object
    #
    # output::
    #   Where to write the string.  Defaults to $stdout
    # indent::
    #   The amount to indent this node by
    # transitive::
    #   Ignored
    # ie_hack::
    #   Ignored
    #
    # _Examples_
    #  c = CData.new( " Some text " )
    #  c.write( $stdout )     #->  <![CDATA[ Some text ]]>
    def write( output=$stdout, indent=-1, transitive=false, ie_hack=false )
      Kernel.warn( "#{self.class.name}.write is deprecated" )
      indent( output, indent )
      output << START
      output << @string
      output << STOP
    end
  end
end
lib64/ruby/2.2.0/rexml/formatters/pretty.rb000064400000010470150402106410014270 0ustar00require 'rexml/formatters/default'

module REXML
  module Formatters
    # Pretty-prints an XML document.  This destroys whitespace in text nodes
    # and will insert carriage returns and indentations.
    #
    # TODO: Add an option to print attributes on new lines
    class Pretty < Default

      # If compact is set to true, then the formatter will attempt to use as
      # little space as possible
      attr_accessor :compact
      # The width of a page.  Used for formatting text
      attr_accessor :width

      # Create a new pretty printer.
      #
      # output::
      #   An object implementing '<<(String)', to which the output will be written.
      # indentation::
      #   An integer greater than 0.  The indentation of each level will be
      #   this number of spaces.  If this is < 1, the behavior of this object
      #   is undefined.  Defaults to 2.
      # ie_hack::
      #   If true, the printer will insert whitespace before closing empty
      #   tags, thereby allowing Internet Explorer's XML parser to
      #   function. Defaults to false.
      def initialize( indentation=2, ie_hack=false )
        @indentation = indentation
        @level = 0
        @ie_hack = ie_hack
        @width = 80
        @compact = false
      end

      protected
      def write_element(node, output)
        output << ' '*@level
        output << "<#{node.expanded_name}"

        node.attributes.each_attribute do |attr|
          output << " "
          attr.write( output )
        end unless node.attributes.empty?

        if node.children.empty?
          if @ie_hack
            output << " "
          end
          output << "/"
        else
          output << ">"
          # If compact and all children are text, and if the formatted output
          # is less than the specified width, then try to print everything on
          # one line
          skip = false
          if compact
            if node.children.inject(true) {|s,c| s & c.kind_of?(Text)}
              string = ""
              old_level = @level
              @level = 0
              node.children.each { |child| write( child, string ) }
              @level = old_level
              if string.length < @width
                output << string
                skip = true
              end
            end
          end
          unless skip
            output << "\n"
            @level += @indentation
            node.children.each { |child|
              next if child.kind_of?(Text) and child.to_s.strip.length == 0
              write( child, output )
              output << "\n"
            }
            @level -= @indentation
            output << ' '*@level
          end
          output << "</#{node.expanded_name}"
        end
        output << ">"
      end

      def write_text( node, output )
        s = node.to_s()
        s.gsub!(/\s/,' ')
        s.squeeze!(" ")
        s = wrap(s, @width - @level)
        s = indent_text(s, @level, " ", true)
        output << (' '*@level + s)
      end

      def write_comment( node, output)
        output << ' ' * @level
        super
      end

      def write_cdata( node, output)
        output << ' ' * @level
        super
      end

      def write_document( node, output )
        # Ok, this is a bit odd.  All XML documents have an XML declaration,
        # but it may not write itself if the user didn't specifically add it,
        # either through the API or in the input document.  If it doesn't write
        # itself, then we don't need a carriage return... which makes this
        # logic more complex.
        node.children.each { |child|
          next if child == node.children[-1] and child.instance_of?(Text)
          unless child == node.children[0] or child.instance_of?(Text) or
            (child == node.children[1] and !node.children[0].writethis)
            output << "\n"
          end
          write( child, output )
        }
      end

      private
      def indent_text(string, level=1, style="\t", indentfirstline=true)
        return string if level < 0
        string.gsub(/\n/, "\n#{style*level}")
      end

      def wrap(string, width)
        parts = []
        while string.length > width and place = string.rindex(' ', width)
          parts << string[0...place]
          string = string[place+1..-1]
        end
        parts << string
        parts.join("\n")
      end

    end
  end
end

lib64/ruby/2.2.0/rexml/formatters/transitive.rb000064400000003445150402106410015135 0ustar00require 'rexml/formatters/pretty'

module REXML
  module Formatters
    # The Transitive formatter writes an XML document that parses to an
    # identical document as the source document.  This means that no extra
    # whitespace nodes are inserted, and whitespace within text nodes is
    # preserved.  Within these constraints, the document is pretty-printed,
    # with whitespace inserted into the metadata to introduce formatting.
    #
    # Note that this is only useful if the original XML is not already
    # formatted.  Since this formatter does not alter whitespace nodes, the
    # results of formatting already formatted XML will be odd.
    class Transitive < Default
      def initialize( indentation=2, ie_hack=false )
        @indentation = indentation
        @level = 0
        @ie_hack = ie_hack
      end

      protected
      def write_element( node, output )
        output << "<#{node.expanded_name}"

        node.attributes.each_attribute do |attr|
          output << " "
          attr.write( output )
        end unless node.attributes.empty?

        output << "\n"
        output << ' '*@level
        if node.children.empty?
          output << " " if @ie_hack
          output << "/"
        else
          output << ">"
          # If compact and all children are text, and if the formatted output
          # is less than the specified width, then try to print everything on
          # one line
          @level += @indentation
          node.children.each { |child|
            write( child, output )
          }
          @level -= @indentation
          output << "</#{node.expanded_name}"
          output << "\n"
          output << ' '*@level
        end
        output << ">"
      end

      def write_text( node, output )
        output << node.to_s()
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/formatters/default.rb000064400000005451150402106410014370 0ustar00module REXML
  module Formatters
    class Default
      # Prints out the XML document with no formatting -- except if id_hack is
      # set.
      #
      # ie_hack::
      #   If set to true, then inserts whitespace before the close of an empty
      #   tag, so that IE's bad XML parser doesn't choke.
      def initialize( ie_hack=false )
        @ie_hack = ie_hack
      end

      # Writes the node to some output.
      #
      # node::
      #   The node to write
      # output::
      #   A class implementing <TT>&lt;&lt;</TT>.  Pass in an Output object to
      #   change the output encoding.
      def write( node, output )
        case node

        when Document
          if node.xml_decl.encoding != 'UTF-8' && !output.kind_of?(Output)
            output = Output.new( output, node.xml_decl.encoding )
          end
          write_document( node, output )

        when Element
          write_element( node, output )

        when Declaration, ElementDecl, NotationDecl, ExternalEntity, Entity,
             Attribute, AttlistDecl
          node.write( output,-1 )

        when Instruction
          write_instruction( node, output )

        when DocType, XMLDecl
          node.write( output )

        when Comment
          write_comment( node, output )

        when CData
          write_cdata( node, output )

        when Text
          write_text( node, output )

        else
          raise Exception.new("XML FORMATTING ERROR")

        end
      end

      protected
      def write_document( node, output )
        node.children.each { |child| write( child, output ) }
      end

      def write_element( node, output )
        output << "<#{node.expanded_name}"

        node.attributes.to_a.map { |a|
          Hash === a ? a.values : a
        }.flatten.sort_by {|attr| attr.name}.each do |attr|
          output << " "
          attr.write( output )
        end unless node.attributes.empty?

        if node.children.empty?
          output << " " if @ie_hack
          output << "/"
        else
          output << ">"
          node.children.each { |child|
            write( child, output )
          }
          output << "</#{node.expanded_name}"
        end
        output << ">"
      end

      def write_text( node, output )
        output << node.to_s()
      end

      def write_comment( node, output )
        output << Comment::START
        output << node.to_s
        output << Comment::STOP
      end

      def write_cdata( node, output )
        output << CData::START
        output << node.to_s
        output << CData::STOP
      end

      def write_instruction( node, output )
        output << Instruction::START.sub(/\\/u, '')
        output << node.target
        output << ' '
        output << node.content
        output << Instruction::STOP.sub(/\\/u, '')
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/quickpath.rb000064400000022126150402106410012545 0ustar00require 'rexml/functions'
require 'rexml/xmltokens'

module REXML
  class QuickPath
    include Functions
    include XMLTokens

    # A base Hash object to be used when initializing a
    # default empty namespaces set.
    EMPTY_HASH = {}

    def QuickPath::first element, path, namespaces=EMPTY_HASH
      match(element, path, namespaces)[0]
    end

    def QuickPath::each element, path, namespaces=EMPTY_HASH, &block
      path = "*" unless path
      match(element, path, namespaces).each( &block )
    end

    def QuickPath::match element, path, namespaces=EMPTY_HASH
      raise "nil is not a valid xpath" unless path
      results = nil
      Functions::namespace_context = namespaces
      case path
      when /^\/([^\/]|$)/u
        # match on root
        path = path[1..-1]
        return [element.root.parent] if path == ''
        results = filter([element.root], path)
      when /^[-\w]*::/u
        results = filter([element], path)
      when /^\*/u
        results = filter(element.to_a, path)
      when /^[\[!\w:]/u
        # match on child
        children = element.to_a
        results = filter(children, path)
      else
        results = filter([element], path)
      end
      return results
    end

    # Given an array of nodes it filters the array based on the path. The
    # result is that when this method returns, the array will contain elements
    # which match the path
    def QuickPath::filter elements, path
      return elements if path.nil? or path == '' or elements.size == 0
      case path
      when /^\/\//u                                                                                     # Descendant
        return axe( elements, "descendant-or-self", $' )
      when /^\/?\b(\w[-\w]*)\b::/u                                                      # Axe
        return axe( elements, $1, $' )
      when /^\/(?=\b([:!\w][-\.\w]*:)?[-!\*\.\w]*\b([^:(]|$)|\*)/u      # Child
        rest = $'
        results = []
        elements.each do |element|
          results |= filter( element.to_a, rest )
        end
        return results
      when /^\/?(\w[-\w]*)\(/u                                                  # / Function
        return function( elements, $1, $' )
      when Namespace::NAMESPLIT         # Element name
        name = $2
        ns = $1
        rest = $'
        elements.delete_if do |element|
          !(element.kind_of? Element and
            (element.expanded_name == name or
             (element.name == name and
              element.namespace == Functions.namespace_context[ns])))
        end
        return filter( elements, rest )
      when /^\/\[/u
        matches = []
        elements.each do |element|
          matches |= predicate( element.to_a, path[1..-1] ) if element.kind_of? Element
        end
        return matches
      when /^\[/u                                                                                               # Predicate
        return predicate( elements, path )
      when /^\/?\.\.\./u                                                                                # Ancestor
        return axe( elements, "ancestor", $' )
      when /^\/?\.\./u                                                                                  # Parent
        return filter( elements.collect{|e|e.parent}, $' )
      when /^\/?\./u                                                                                            # Self
        return filter( elements, $' )
      when /^\*/u                                                                                                       # Any
        results = []
        elements.each do |element|
          results |= filter( [element], $' ) if element.kind_of? Element
          #if element.kind_of? Element
          #     children = element.to_a
          #     children.delete_if { |child| !child.kind_of?(Element) }
          #     results |= filter( children, $' )
          #end
        end
        return results
      end
      return []
    end

    def QuickPath::axe( elements, axe_name, rest )
      matches = []
      matches = filter( elements.dup, rest ) if axe_name =~ /-or-self$/u
      case axe_name
      when /^descendant/u
        elements.each do |element|
          matches |= filter( element.to_a, "descendant-or-self::#{rest}" ) if element.kind_of? Element
        end
      when /^ancestor/u
        elements.each do |element|
          while element.parent
            matches << element.parent
            element = element.parent
          end
        end
        matches = filter( matches, rest )
      when "self"
        matches = filter( elements, rest )
      when "child"
        elements.each do |element|
          matches |= filter( element.to_a, rest ) if element.kind_of? Element
        end
      when "attribute"
        elements.each do |element|
          matches << element.attributes[ rest ] if element.kind_of? Element
        end
      when "parent"
        matches = filter(elements.collect{|element| element.parent}.uniq, rest)
      when "following-sibling"
        matches = filter(elements.collect{|element| element.next_sibling}.uniq,
          rest)
      when "previous-sibling"
        matches = filter(elements.collect{|element|
          element.previous_sibling}.uniq, rest )
      end
      return matches.uniq
    end

    OPERAND_ = '((?=(?:(?!and|or).)*[^\s<>=])[^\s<>=]+)'
    # A predicate filters a node-set with respect to an axis to produce a
    # new node-set. For each node in the node-set to be filtered, the
    # PredicateExpr is evaluated with that node as the context node, with
    # the number of nodes in the node-set as the context size, and with the
    # proximity position of the node in the node-set with respect to the
    # axis as the context position; if PredicateExpr evaluates to true for
    # that node, the node is included in the new node-set; otherwise, it is
    # not included.
    #
    # A PredicateExpr is evaluated by evaluating the Expr and converting
    # the result to a boolean. If the result is a number, the result will
    # be converted to true if the number is equal to the context position
    # and will be converted to false otherwise; if the result is not a
    # number, then the result will be converted as if by a call to the
    # boolean function. Thus a location path para[3] is equivalent to
    # para[position()=3].
    def QuickPath::predicate( elements, path )
      ind = 1
      bcount = 1
      while bcount > 0
        bcount += 1 if path[ind] == ?[
        bcount -= 1 if path[ind] == ?]
        ind += 1
      end
      ind -= 1
      predicate = path[1..ind-1]
      rest = path[ind+1..-1]

      # have to change 'a [=<>] b [=<>] c' into 'a [=<>] b and b [=<>] c'
      #
      predicate.gsub!(
        /#{OPERAND_}\s*([<>=])\s*#{OPERAND_}\s*([<>=])\s*#{OPERAND_}/u,
        '\1 \2 \3 and \3 \4 \5' )
      # Let's do some Ruby trickery to avoid some work:
      predicate.gsub!( /&/u, "&&" )
      predicate.gsub!( /=/u, "==" )
      predicate.gsub!( /@(\w[-\w.]*)/u, 'attribute("\1")' )
      predicate.gsub!( /\bmod\b/u, "%" )
      predicate.gsub!( /\b(\w[-\w.]*\()/u ) {
        fname = $1
        fname.gsub( /-/u, "_" )
      }

      Functions.pair = [ 0, elements.size ]
      results = []
      elements.each do |element|
        Functions.pair[0] += 1
        Functions.node = element
        res = eval( predicate )
        case res
        when true
          results << element
        when Fixnum
          results << element if Functions.pair[0] == res
        when String
          results << element
        end
      end
      return filter( results, rest )
    end

    def QuickPath::attribute( name )
      return Functions.node.attributes[name] if Functions.node.kind_of? Element
    end

    def QuickPath::name()
      return Functions.node.name if Functions.node.kind_of? Element
    end

    def QuickPath::method_missing( id, *args )
      begin
        Functions.send( id.id2name, *args )
      rescue Exception
        raise "METHOD: #{id.id2name}(#{args.join ', '})\n#{$!.message}"
      end
    end

    def QuickPath::function( elements, fname, rest )
      args = parse_args( elements, rest )
      Functions.pair = [0, elements.size]
      results = []
      elements.each do |element|
        Functions.pair[0] += 1
        Functions.node = element
        res = Functions.send( fname, *args )
        case res
        when true
          results << element
        when Fixnum
          results << element if Functions.pair[0] == res
        end
      end
      return results
    end

    def QuickPath::parse_args( element, string )
      # /.*?(?:\)|,)/
      arguments = []
      buffer = ""
      while string and string != ""
        c = string[0]
        string.sub!(/^./u, "")
        case c
        when ?,
          # if depth = 1, then we start a new argument
          arguments << evaluate( buffer )
          #arguments << evaluate( string[0..count] )
        when ?(
          # start a new method call
          function( element, buffer, string )
          buffer = ""
        when ?)
          # close the method call and return arguments
          return arguments
        else
          buffer << c
        end
      end
      ""
    end
  end
end
lib64/ruby/2.2.0/rexml/text.rb000064400000033366150402106410011550 0ustar00require 'rexml/security'
require 'rexml/entity'
require 'rexml/doctype'
require 'rexml/child'
require 'rexml/doctype'
require 'rexml/parseexception'

module REXML
  # Represents text nodes in an XML document
  class Text < Child
    include Comparable
    # The order in which the substitutions occur
    SPECIALS = [ /&(?!#?[\w-]+;)/u, /</u, />/u, /"/u, /'/u, /\r/u ]
    SUBSTITUTES = ['&amp;', '&lt;', '&gt;', '&quot;', '&apos;', '&#13;']
    # Characters which are substituted in written strings
    SLAICEPS = [ '<', '>', '"', "'", '&' ]
    SETUTITSBUS = [ /&lt;/u, /&gt;/u, /&quot;/u, /&apos;/u, /&amp;/u ]

    # If +raw+ is true, then REXML leaves the value alone
    attr_accessor :raw

    NEEDS_A_SECOND_CHECK = /(<|&((#{Entity::NAME});|(#0*((?:\d+)|(?:x[a-fA-F0-9]+)));)?)/um
    NUMERICENTITY = /&#0*((?:\d+)|(?:x[a-fA-F0-9]+));/
    VALID_CHAR = [
      0x9, 0xA, 0xD,
      (0x20..0xD7FF),
      (0xE000..0xFFFD),
      (0x10000..0x10FFFF)
    ]

    if String.method_defined? :encode
      VALID_XML_CHARS = Regexp.new('^['+
        VALID_CHAR.map { |item|
          case item
          when Fixnum
            [item].pack('U').force_encoding('utf-8')
          when Range
            [item.first, '-'.ord, item.last].pack('UUU').force_encoding('utf-8')
          end
        }.join +
      ']*$')
    else
      VALID_XML_CHARS = /^(
           [\x09\x0A\x0D\x20-\x7E]            # ASCII
         | [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte
         |  \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs
         | [\xE1-\xEC\xEE][\x80-\xBF]{2}      # straight 3-byte
         |  \xEF[\x80-\xBE]{2}                #
         |  \xEF\xBF[\x80-\xBD]               # excluding U+fffe and U+ffff
         |  \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates
         |  \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
         | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
         |  \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
       )*$/nx;
    end

    # Constructor
    # +arg+ if a String, the content is set to the String.  If a Text,
    # the object is shallowly cloned.
    #
    # +respect_whitespace+ (boolean, false) if true, whitespace is
    # respected
    #
    # +parent+ (nil) if this is a Parent object, the parent
    # will be set to this.
    #
    # +raw+ (nil) This argument can be given three values.
    # If true, then the value of used to construct this object is expected to
    # contain no unescaped XML markup, and REXML will not change the text. If
    # this value is false, the string may contain any characters, and REXML will
    # escape any and all defined entities whose values are contained in the
    # text.  If this value is nil (the default), then the raw value of the
    # parent will be used as the raw value for this node.  If there is no raw
    # value for the parent, and no value is supplied, the default is false.
    # Use this field if you have entities defined for some text, and you don't
    # want REXML to escape that text in output.
    #   Text.new( "<&", false, nil, false ) #-> "&lt;&amp;"
    #   Text.new( "&lt;&amp;", false, nil, false ) #-> "&amp;lt;&amp;amp;"
    #   Text.new( "<&", false, nil, true )  #-> Parse exception
    #   Text.new( "&lt;&amp;", false, nil, true )  #-> "&lt;&amp;"
    #   # Assume that the entity "s" is defined to be "sean"
    #   # and that the entity    "r" is defined to be "russell"
    #   Text.new( "sean russell" )          #-> "&s; &r;"
    #   Text.new( "sean russell", false, nil, true ) #-> "sean russell"
    #
    # +entity_filter+ (nil) This can be an array of entities to match in the
    # supplied text.  This argument is only useful if +raw+ is set to false.
    #   Text.new( "sean russell", false, nil, false, ["s"] ) #-> "&s; russell"
    #   Text.new( "sean russell", false, nil, true, ["s"] ) #-> "sean russell"
    # In the last example, the +entity_filter+ argument is ignored.
    #
    # +illegal+ INTERNAL USE ONLY
    def initialize(arg, respect_whitespace=false, parent=nil, raw=nil,
      entity_filter=nil, illegal=NEEDS_A_SECOND_CHECK )

      @raw = false
      @parent = nil

      if parent
        super( parent )
        @raw = parent.raw
      end

      @raw = raw unless raw.nil?
      @entity_filter = entity_filter
      clear_cache

      if arg.kind_of? String
        @string = arg.dup
        @string.squeeze!(" \n\t") unless respect_whitespace
      elsif arg.kind_of? Text
        @string = arg.to_s
        @raw = arg.raw
      elsif
        raise "Illegal argument of type #{arg.type} for Text constructor (#{arg})"
      end

      @string.gsub!( /\r\n?/, "\n" )

      Text.check(@string, illegal, doctype) if @raw
    end

    def parent= parent
      super(parent)
      Text.check(@string, NEEDS_A_SECOND_CHECK, doctype) if @raw and @parent
    end

    # check for illegal characters
    def Text.check string, pattern, doctype

      # illegal anywhere
      if string !~ VALID_XML_CHARS
        if String.method_defined? :encode
          string.chars.each do |c|
            case c.ord
            when *VALID_CHAR
            else
              raise "Illegal character #{c.inspect} in raw string \"#{string}\""
            end
          end
        else
          string.scan(/[\x00-\x7F]|[\x80-\xBF][\xC0-\xF0]*|[\xC0-\xF0]/n) do |c|
            case c.unpack('U')
            when *VALID_CHAR
            else
              raise "Illegal character #{c.inspect} in raw string \"#{string}\""
            end
          end
        end
      end

      # context sensitive
      string.scan(pattern) do
        if $1[-1] != ?;
          raise "Illegal character '#{$1}' in raw string \"#{string}\""
        elsif $1[0] == ?&
          if $5 and $5[0] == ?#
            case ($5[1] == ?x ? $5[2..-1].to_i(16) : $5[1..-1].to_i)
            when *VALID_CHAR
            else
              raise "Illegal character '#{$1}' in raw string \"#{string}\""
            end
          # FIXME: below can't work but this needs API change.
          # elsif @parent and $3 and !SUBSTITUTES.include?($1)
          #   if !doctype or !doctype.entities.has_key?($3)
          #     raise "Undeclared entity '#{$1}' in raw string \"#{string}\""
          #   end
          end
        end
      end
    end

    def node_type
      :text
    end

    def empty?
      @string.size==0
    end


    def clone
      return Text.new(self)
    end


    # Appends text to this text node.  The text is appended in the +raw+ mode
    # of this text node.
    #
    # +returns+ the text itself to enable method chain like
    # 'text << "XXX" << "YYY"'.
    def <<( to_append )
      @string << to_append.gsub( /\r\n?/, "\n" )
      clear_cache
      self
    end


    # +other+ a String or a Text
    # +returns+ the result of (to_s <=> arg.to_s)
    def <=>( other )
      to_s() <=> other.to_s
    end

    def doctype
      if @parent
        doc = @parent.document
        doc.doctype if doc
      end
    end

    REFERENCE = /#{Entity::REFERENCE}/
    # Returns the string value of this text node.  This string is always
    # escaped, meaning that it is a valid XML text node string, and all
    # entities that can be escaped, have been inserted.  This method respects
    # the entity filter set in the constructor.
    #
    #   # Assume that the entity "s" is defined to be "sean", and that the
    #   # entity "r" is defined to be "russell"
    #   t = Text.new( "< & sean russell", false, nil, false, ['s'] )
    #   t.to_s   #-> "&lt; &amp; &s; russell"
    #   t = Text.new( "< & &s; russell", false, nil, false )
    #   t.to_s   #-> "&lt; &amp; &s; russell"
    #   u = Text.new( "sean russell", false, nil, true )
    #   u.to_s   #-> "sean russell"
    def to_s
      return @string if @raw
      return @normalized if @normalized

      @normalized = Text::normalize( @string, doctype, @entity_filter )
    end

    def inspect
      @string.inspect
    end

    # Returns the string value of this text.  This is the text without
    # entities, as it might be used programmatically, or printed to the
    # console.  This ignores the 'raw' attribute setting, and any
    # entity_filter.
    #
    #   # Assume that the entity "s" is defined to be "sean", and that the
    #   # entity "r" is defined to be "russell"
    #   t = Text.new( "< & sean russell", false, nil, false, ['s'] )
    #   t.value   #-> "< & sean russell"
    #   t = Text.new( "< & &s; russell", false, nil, false )
    #   t.value   #-> "< & sean russell"
    #   u = Text.new( "sean russell", false, nil, true )
    #   u.value   #-> "sean russell"
    def value
      return @unnormalized if @unnormalized
      @unnormalized = Text::unnormalize( @string, doctype )
    end

    # Sets the contents of this text node.  This expects the text to be
    # unnormalized.  It returns self.
    #
    #   e = Element.new( "a" )
    #   e.add_text( "foo" )   # <a>foo</a>
    #   e[0].value = "bar"    # <a>bar</a>
    #   e[0].value = "<a>"    # <a>&lt;a&gt;</a>
    def value=( val )
      @string = val.gsub( /\r\n?/, "\n" )
      clear_cache
      @raw = false
    end

     def wrap(string, width, addnewline=false)
       # Recursively wrap string at width.
       return string if string.length <= width
       place = string.rindex(' ', width) # Position in string with last ' ' before cutoff
       if addnewline then
         return "\n" + string[0,place] + "\n" + wrap(string[place+1..-1], width)
       else
         return string[0,place] + "\n" + wrap(string[place+1..-1], width)
       end
     end

    def indent_text(string, level=1, style="\t", indentfirstline=true)
      return string if level < 0
      new_string = ''
      string.each_line { |line|
        indent_string = style * level
        new_line = (indent_string + line).sub(/[\s]+$/,'')
        new_string << new_line
      }
      new_string.strip! unless indentfirstline
      return new_string
    end

    # == DEPRECATED
    # See REXML::Formatters
    #
    def write( writer, indent=-1, transitive=false, ie_hack=false )
      Kernel.warn("#{self.class.name}.write is deprecated.  See REXML::Formatters")
      formatter = if indent > -1
          REXML::Formatters::Pretty.new( indent )
        else
          REXML::Formatters::Default.new
        end
      formatter.write( self, writer )
    end

    # FIXME
    # This probably won't work properly
    def xpath
      path = @parent.xpath
      path += "/text()"
      return path
    end

    # Writes out text, substituting special characters beforehand.
    # +out+ A String, IO, or any other object supporting <<( String )
    # +input+ the text to substitute and the write out
    #
    #   z=utf8.unpack("U*")
    #   ascOut=""
    #   z.each{|r|
    #     if r <  0x100
    #       ascOut.concat(r.chr)
    #     else
    #       ascOut.concat(sprintf("&#x%x;", r))
    #     end
    #   }
    #   puts ascOut
    def write_with_substitution out, input
      copy = input.clone
      # Doing it like this rather than in a loop improves the speed
      copy.gsub!( SPECIALS[0], SUBSTITUTES[0] )
      copy.gsub!( SPECIALS[1], SUBSTITUTES[1] )
      copy.gsub!( SPECIALS[2], SUBSTITUTES[2] )
      copy.gsub!( SPECIALS[3], SUBSTITUTES[3] )
      copy.gsub!( SPECIALS[4], SUBSTITUTES[4] )
      copy.gsub!( SPECIALS[5], SUBSTITUTES[5] )
      out << copy
    end

    private
    def clear_cache
      @normalized = nil
      @unnormalized = nil
    end

    # Reads text, substituting entities
    def Text::read_with_substitution( input, illegal=nil )
      copy = input.clone

      if copy =~ illegal
        raise ParseException.new( "malformed text: Illegal character #$& in \"#{copy}\"" )
      end if illegal

      copy.gsub!( /\r\n?/, "\n" )
      if copy.include? ?&
        copy.gsub!( SETUTITSBUS[0], SLAICEPS[0] )
        copy.gsub!( SETUTITSBUS[1], SLAICEPS[1] )
        copy.gsub!( SETUTITSBUS[2], SLAICEPS[2] )
        copy.gsub!( SETUTITSBUS[3], SLAICEPS[3] )
        copy.gsub!( SETUTITSBUS[4], SLAICEPS[4] )
        copy.gsub!( /&#0*((?:\d+)|(?:x[a-f0-9]+));/ ) {
          m=$1
          #m='0' if m==''
          m = "0#{m}" if m[0] == ?x
          [Integer(m)].pack('U*')
        }
      end
      copy
    end

    EREFERENCE = /&(?!#{Entity::NAME};)/
    # Escapes all possible entities
    def Text::normalize( input, doctype=nil, entity_filter=nil )
      copy = input.to_s
      # Doing it like this rather than in a loop improves the speed
      #copy = copy.gsub( EREFERENCE, '&amp;' )
      copy = copy.gsub( "&", "&amp;" )
      if doctype
        # Replace all ampersands that aren't part of an entity
        doctype.entities.each_value do |entity|
          copy = copy.gsub( entity.value,
            "&#{entity.name};" ) if entity.value and
              not( entity_filter and entity_filter.include?(entity.name) )
        end
      else
        # Replace all ampersands that aren't part of an entity
        DocType::DEFAULT_ENTITIES.each_value do |entity|
          copy = copy.gsub(entity.value, "&#{entity.name};" )
        end
      end
      copy
    end

    # Unescapes all possible entities
    def Text::unnormalize( string, doctype=nil, filter=nil, illegal=nil )
      sum = 0
      string.gsub( /\r\n?/, "\n" ).gsub( REFERENCE ) {
        s = Text.expand($&, doctype, filter)
        if sum + s.bytesize > Security.entity_expansion_text_limit
          raise "entity expansion has grown too large"
        else
          sum += s.bytesize
        end
        s
      }
    end

    def Text.expand(ref, doctype, filter)
      if ref[1] == ?#
        if ref[2] == ?x
          [ref[3...-1].to_i(16)].pack('U*')
        else
          [ref[2...-1].to_i].pack('U*')
        end
      elsif ref == '&amp;'
        '&'
      elsif filter and filter.include?( ref[1...-1] )
        ref
      elsif doctype
        doctype.entity( ref[1...-1] ) or ref
      else
        entity_value = DocType::DEFAULT_ENTITIES[ ref[1...-1] ]
        entity_value ? entity_value.value : ref
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/parsers/treeparser.rb000064400000006717150402106410014417 0ustar00require 'rexml/validation/validationexception'
require 'rexml/undefinednamespaceexception'

module REXML
  module Parsers
    class TreeParser
      def initialize( source, build_context = Document.new )
        @build_context = build_context
        @parser = Parsers::BaseParser.new( source )
      end

      def add_listener( listener )
        @parser.add_listener( listener )
      end

      def parse
        tag_stack = []
        in_doctype = false
        entities = nil
        begin
          while true
            event = @parser.pull
            #STDERR.puts "TREEPARSER GOT #{event.inspect}"
            case event[0]
            when :end_document
              unless tag_stack.empty?
                raise ParseException.new("No close tag for #{@build_context.xpath}",
                                         @parser.source, @parser)
              end
              return
            when :start_element
              tag_stack.push(event[1])
              el = @build_context = @build_context.add_element( event[1] )
              event[2].each do |key, value|
                el.attributes[key]=Attribute.new(key,value,self)
              end
            when :end_element
              tag_stack.pop
              @build_context = @build_context.parent
            when :text
              if not in_doctype
                if @build_context[-1].instance_of? Text
                  @build_context[-1] << event[1]
                else
                  @build_context.add(
                    Text.new(event[1], @build_context.whitespace, nil, true)
                  ) unless (
                    @build_context.ignore_whitespace_nodes and
                    event[1].strip.size==0
                  )
                end
              end
            when :comment
              c = Comment.new( event[1] )
              @build_context.add( c )
            when :cdata
              c = CData.new( event[1] )
              @build_context.add( c )
            when :processing_instruction
              @build_context.add( Instruction.new( event[1], event[2] ) )
            when :end_doctype
              in_doctype = false
              entities.each { |k,v| entities[k] = @build_context.entities[k].value }
              @build_context = @build_context.parent
            when :start_doctype
              doctype = DocType.new( event[1..-1], @build_context )
              @build_context = doctype
              entities = {}
              in_doctype = true
            when :attlistdecl
              n = AttlistDecl.new( event[1..-1] )
              @build_context.add( n )
            when :externalentity
              n = ExternalEntity.new( event[1] )
              @build_context.add( n )
            when :elementdecl
              n = ElementDecl.new( event[1] )
              @build_context.add(n)
            when :entitydecl
              entities[ event[1] ] = event[2] unless event[2] =~ /PUBLIC|SYSTEM/
              @build_context.add(Entity.new(event))
            when :notationdecl
              n = NotationDecl.new( *event[1..-1] )
              @build_context.add( n )
            when :xmldecl
              x = XMLDecl.new( event[1], event[2], event[3] )
              @build_context.add( x )
            end
          end
        rescue REXML::Validation::ValidationException
          raise
        rescue REXML::ParseException
          raise
        rescue
          raise ParseException.new( $!.message, @parser.source, @parser, $! )
        end
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/parsers/lightparser.rb000064400000003020150402106410014547 0ustar00require 'rexml/parsers/streamparser'
require 'rexml/parsers/baseparser'
require 'rexml/light/node'

module REXML
  module Parsers
    class LightParser
      def initialize stream
        @stream = stream
        @parser = REXML::Parsers::BaseParser.new( stream )
      end

      def add_listener( listener )
        @parser.add_listener( listener )
      end

      def rewind
        @stream.rewind
        @parser.stream = @stream
      end

      def parse
        root = context = [ :document ]
        while true
          event = @parser.pull
          case event[0]
          when :end_document
            break
          when :start_element, :start_doctype
            new_node = event
            context << new_node
            new_node[1,0] = [context]
            context = new_node
          when :end_element, :end_doctype
            context = context[1]
          else
            new_node = event
            context << new_node
            new_node[1,0] = [context]
          end
        end
        root
      end
    end

    # An element is an array.  The array contains:
    #  0                        The parent element
    #  1                        The tag name
    #  2                        A hash of attributes
    #  3..-1    The child elements
    # An element is an array of size > 3
    # Text is a String
    # PIs are [ :processing_instruction, target, data ]
    # Comments are [ :comment, data ]
    # DocTypes are DocType structs
    # The root is an array with XMLDecls, Text, DocType, Array, Text
  end
end
lib64/ruby/2.2.0/rexml/parsers/sax2parser.rb000064400000022046150402106410014326 0ustar00require 'rexml/parsers/baseparser'
require 'rexml/parseexception'
require 'rexml/namespace'
require 'rexml/text'

module REXML
  module Parsers
    # SAX2Parser
    class SAX2Parser
      def initialize source
        @parser = BaseParser.new(source)
        @listeners = []
        @procs = []
        @namespace_stack = []
        @has_listeners = false
        @tag_stack = []
        @entities = {}
      end

      def source
        @parser.source
      end

      def add_listener( listener )
        @parser.add_listener( listener )
      end

      # Listen arguments:
      #
      # Symbol, Array, Block
      #         Listen to Symbol events on Array elements
      # Symbol, Block
      #   Listen to Symbol events
      # Array, Listener
      #         Listen to all events on Array elements
      # Array, Block
      #         Listen to :start_element events on Array elements
      # Listener
      #         Listen to All events
      #
      # Symbol can be one of: :start_element, :end_element,
      # :start_prefix_mapping, :end_prefix_mapping, :characters,
      # :processing_instruction, :doctype, :attlistdecl, :elementdecl,
      # :entitydecl, :notationdecl, :cdata, :xmldecl, :comment
      #
      # There is an additional symbol that can be listened for: :progress.
      # This will be called for every event generated, passing in the current
      # stream position.
      #
      # Array contains regular expressions or strings which will be matched
      # against fully qualified element names.
      #
      # Listener must implement the methods in SAX2Listener
      #
      # Block will be passed the same arguments as a SAX2Listener method would
      # be, where the method name is the same as the matched Symbol.
      # See the SAX2Listener for more information.
      def listen( *args, &blok )
        if args[0].kind_of? Symbol
          if args.size == 2
            args[1].each { |match| @procs << [args[0], match, blok] }
          else
            add( [args[0], nil, blok] )
          end
        elsif args[0].kind_of? Array
          if args.size == 2
            args[0].each { |match| add( [nil, match, args[1]] ) }
          else
            args[0].each { |match| add( [ :start_element, match, blok ] ) }
          end
        else
          add([nil, nil, args[0]])
        end
      end

      def deafen( listener=nil, &blok )
        if listener
          @listeners.delete_if {|item| item[-1] == listener }
          @has_listeners = false if @listeners.size == 0
        else
          @procs.delete_if {|item| item[-1] == blok }
        end
      end

      def parse
        @procs.each { |sym,match,block| block.call if sym == :start_document }
        @listeners.each { |sym,match,block|
          block.start_document if sym == :start_document or sym.nil?
        }
        context = []
        while true
          event = @parser.pull
          case event[0]
          when :end_document
            handle( :end_document )
            break
          when :start_doctype
            handle( :doctype, *event[1..-1])
          when :end_doctype
            context = context[1]
          when :start_element
            @tag_stack.push(event[1])
            # find the observers for namespaces
            procs = get_procs( :start_prefix_mapping, event[1] )
            listeners = get_listeners( :start_prefix_mapping, event[1] )
            if procs or listeners
              # break out the namespace declarations
              # The attributes live in event[2]
              event[2].each {|n, v| event[2][n] = @parser.normalize(v)}
              nsdecl = event[2].find_all { |n, value| n =~ /^xmlns(:|$)/ }
              nsdecl.collect! { |n, value| [ n[6..-1], value ] }
              @namespace_stack.push({})
              nsdecl.each do |n,v|
                @namespace_stack[-1][n] = v
                # notify observers of namespaces
                procs.each { |ob| ob.call( n, v ) } if procs
                listeners.each { |ob| ob.start_prefix_mapping(n, v) } if listeners
              end
            end
            event[1] =~ Namespace::NAMESPLIT
            prefix = $1
            local = $2
            uri = get_namespace(prefix)
            # find the observers for start_element
            procs = get_procs( :start_element, event[1] )
            listeners = get_listeners( :start_element, event[1] )
            # notify observers
            procs.each { |ob| ob.call( uri, local, event[1], event[2] ) } if procs
            listeners.each { |ob|
              ob.start_element( uri, local, event[1], event[2] )
            } if listeners
          when :end_element
            @tag_stack.pop
            event[1] =~ Namespace::NAMESPLIT
            prefix = $1
            local = $2
            uri = get_namespace(prefix)
            # find the observers for start_element
            procs = get_procs( :end_element, event[1] )
            listeners = get_listeners( :end_element, event[1] )
            # notify observers
            procs.each { |ob| ob.call( uri, local, event[1] ) } if procs
            listeners.each { |ob|
              ob.end_element( uri, local, event[1] )
            } if listeners

            namespace_mapping = @namespace_stack.pop
            # find the observers for namespaces
            procs = get_procs( :end_prefix_mapping, event[1] )
            listeners = get_listeners( :end_prefix_mapping, event[1] )
            if procs or listeners
              namespace_mapping.each do |ns_prefix, ns_uri|
                # notify observers of namespaces
                procs.each { |ob| ob.call( ns_prefix ) } if procs
                listeners.each { |ob| ob.end_prefix_mapping(ns_prefix) } if listeners
              end
            end
          when :text
            #normalized = @parser.normalize( event[1] )
            #handle( :characters, normalized )
            copy = event[1].clone

            esub = proc { |match|
              if @entities.has_key?($1)
                @entities[$1].gsub(Text::REFERENCE, &esub)
              else
                match
              end
            }

            copy.gsub!( Text::REFERENCE, &esub )
            copy.gsub!( Text::NUMERICENTITY ) {|m|
              m=$1
              m = "0#{m}" if m[0] == ?x
              [Integer(m)].pack('U*')
            }
            handle( :characters, copy )
          when :entitydecl
            handle_entitydecl( event )
          when :processing_instruction, :comment, :attlistdecl,
            :elementdecl, :cdata, :notationdecl, :xmldecl
            handle( *event )
          end
          handle( :progress, @parser.position )
        end
      end

      private
      def handle( symbol, *arguments )
        tag = @tag_stack[-1]
        procs = get_procs( symbol, tag )
        listeners = get_listeners( symbol, tag )
        # notify observers
        procs.each { |ob| ob.call( *arguments ) } if procs
        listeners.each { |l|
          l.send( symbol.to_s, *arguments )
        } if listeners
      end

      def handle_entitydecl( event )
        @entities[ event[1] ] = event[2] if event.size == 3
        parameter_reference_p = false
        case event[2]
        when "SYSTEM"
          if event.size == 5
            if event.last == "%"
              parameter_reference_p = true
            else
              event[4, 0] = "NDATA"
            end
          end
        when "PUBLIC"
          if event.size == 6
            if event.last == "%"
              parameter_reference_p = true
            else
              event[5, 0] = "NDATA"
            end
          end
        else
          parameter_reference_p = (event.size == 4)
        end
        event[1, 0] = event.pop if parameter_reference_p
        handle( event[0], event[1..-1] )
      end

      # The following methods are duplicates, but it is faster than using
      # a helper
      def get_procs( symbol, name )
        return nil if @procs.size == 0
        @procs.find_all do |sym, match, block|
          (
            (sym.nil? or symbol == sym) and
            ((name.nil? and match.nil?) or match.nil? or (
              (name == match) or
              (match.kind_of? Regexp and name =~ match)
              )
            )
          )
        end.collect{|x| x[-1]}
      end
      def get_listeners( symbol, name )
        return nil if @listeners.size == 0
        @listeners.find_all do |sym, match, block|
          (
            (sym.nil? or symbol == sym) and
            ((name.nil? and match.nil?) or match.nil? or (
              (name == match) or
              (match.kind_of? Regexp and name =~ match)
              )
            )
          )
        end.collect{|x| x[-1]}
      end

      def add( pair )
        if pair[-1].respond_to? :call
          @procs << pair unless @procs.include? pair
        else
          @listeners << pair unless @listeners.include? pair
          @has_listeners = true
        end
      end

      def get_namespace( prefix )
        uris = (@namespace_stack.find_all { |ns| not ns[prefix].nil? }) ||
          (@namespace_stack.find { |ns| not ns[nil].nil? })
        uris[-1][prefix] unless uris.nil? or 0 == uris.size
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/parsers/pullparser.rb000064400000012126150402106410014423 0ustar00require 'forwardable'

require 'rexml/parseexception'
require 'rexml/parsers/baseparser'
require 'rexml/xmltokens'

module REXML
  module Parsers
    # = Using the Pull Parser
    # <em>This API is experimental, and subject to change.</em>
    #  parser = PullParser.new( "<a>text<b att='val'/>txet</a>" )
    #  while parser.has_next?
    #    res = parser.next
    #    puts res[1]['att'] if res.start_tag? and res[0] == 'b'
    #  end
    # See the PullEvent class for information on the content of the results.
    # The data is identical to the arguments passed for the various events to
    # the StreamListener API.
    #
    # Notice that:
    #  parser = PullParser.new( "<a>BAD DOCUMENT" )
    #  while parser.has_next?
    #    res = parser.next
    #    raise res[1] if res.error?
    #  end
    #
    # Nat Price gave me some good ideas for the API.
    class PullParser
      include XMLTokens
      extend Forwardable

      def_delegators( :@parser, :has_next? )
      def_delegators( :@parser, :entity )
      def_delegators( :@parser, :empty? )
      def_delegators( :@parser, :source )

      def initialize stream
        @entities = {}
        @listeners = nil
        @parser = BaseParser.new( stream )
        @my_stack = []
      end

      def add_listener( listener )
        @listeners = [] unless @listeners
        @listeners << listener
      end

      def each
        while has_next?
          yield self.pull
        end
      end

      def peek depth=0
        if @my_stack.length <= depth
          (depth - @my_stack.length + 1).times {
            e = PullEvent.new(@parser.pull)
            @my_stack.push(e)
          }
        end
        @my_stack[depth]
      end

      def pull
        return @my_stack.shift if @my_stack.length > 0

        event = @parser.pull
        case event[0]
        when :entitydecl
          @entities[ event[1] ] =
            event[2] unless event[2] =~ /PUBLIC|SYSTEM/
        when :text
          unnormalized = @parser.unnormalize( event[1], @entities )
          event << unnormalized
        end
        PullEvent.new( event )
      end

      def unshift token
        @my_stack.unshift token
      end
    end

    # A parsing event.  The contents of the event are accessed as an +Array?,
    # and the type is given either by the ...? methods, or by accessing the
    # +type+ accessor.  The contents of this object vary from event to event,
    # but are identical to the arguments passed to +StreamListener+s for each
    # event.
    class PullEvent
      # The type of this event.  Will be one of :tag_start, :tag_end, :text,
      # :processing_instruction, :comment, :doctype, :attlistdecl, :entitydecl,
      # :notationdecl, :entity, :cdata, :xmldecl, or :error.
      def initialize(arg)
        @contents = arg
      end

      def []( start, endd=nil)
        if start.kind_of? Range
          @contents.slice( start.begin+1 .. start.end )
        elsif start.kind_of? Numeric
          if endd.nil?
            @contents.slice( start+1 )
          else
            @contents.slice( start+1, endd )
          end
        else
          raise "Illegal argument #{start.inspect} (#{start.class})"
        end
      end

      def event_type
        @contents[0]
      end

      # Content: [ String tag_name, Hash attributes ]
      def start_element?
        @contents[0] == :start_element
      end

      # Content: [ String tag_name ]
      def end_element?
        @contents[0] == :end_element
      end

      # Content: [ String raw_text, String unnormalized_text ]
      def text?
        @contents[0] == :text
      end

      # Content: [ String text ]
      def instruction?
        @contents[0] == :processing_instruction
      end

      # Content: [ String text ]
      def comment?
        @contents[0] == :comment
      end

      # Content: [ String name, String pub_sys, String long_name, String uri ]
      def doctype?
        @contents[0] == :start_doctype
      end

      # Content: [ String text ]
      def attlistdecl?
        @contents[0] == :attlistdecl
      end

      # Content: [ String text ]
      def elementdecl?
        @contents[0] == :elementdecl
      end

      # Due to the wonders of DTDs, an entity declaration can be just about
      # anything.  There's no way to normalize it; you'll have to interpret the
      # content yourself.  However, the following is true:
      #
      # * If the entity declaration is an internal entity:
      #   [ String name, String value ]
      # Content: [ String text ]
      def entitydecl?
        @contents[0] == :entitydecl
      end

      # Content: [ String text ]
      def notationdecl?
        @contents[0] == :notationdecl
      end

      # Content: [ String text ]
      def entity?
        @contents[0] == :entity
      end

      # Content: [ String text ]
      def cdata?
        @contents[0] == :cdata
      end

      # Content: [ String version, String encoding, String standalone ]
      def xmldecl?
        @contents[0] == :xmldecl
      end

      def error?
        @contents[0] == :error
      end

      def inspect
        @contents[0].to_s + ": " + @contents[1..-1].inspect
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/parsers/streamparser.rb000064400000003123150402106410014737 0ustar00require "rexml/parsers/baseparser"

module REXML
  module Parsers
    class StreamParser
      def initialize source, listener
        @listener = listener
        @parser = BaseParser.new( source )
      end

      def add_listener( listener )
        @parser.add_listener( listener )
      end

      def parse
        # entity string
        while true
          event = @parser.pull
          case event[0]
          when :end_document
            return
          when :start_element
            attrs = event[2].each do |n, v|
              event[2][n] = @parser.unnormalize( v )
            end
            @listener.tag_start( event[1], attrs )
          when :end_element
            @listener.tag_end( event[1] )
          when :text
            normalized = @parser.unnormalize( event[1] )
            @listener.text( normalized )
          when :processing_instruction
            @listener.instruction( *event[1,2] )
          when :start_doctype
            @listener.doctype( *event[1..-1] )
          when :end_doctype
            # FIXME: remove this condition for milestone:3.2
            @listener.doctype_end if @listener.respond_to? :doctype_end
          when :comment, :attlistdecl, :cdata, :xmldecl, :elementdecl
            @listener.send( event[0].to_s, *event[1..-1] )
          when :entitydecl, :notationdecl
            @listener.send( event[0].to_s, event[1..-1] )
          when :externalentity
            entity_reference = event[1]
            content = entity_reference.gsub(/\A%|;\z/, "")
            @listener.entity(content)
          end
        end
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/parsers/xpathparser.rb000064400000043635150402106410014604 0ustar00require 'rexml/namespace'
require 'rexml/xmltokens'

module REXML
  module Parsers
    # You don't want to use this class.  Really.  Use XPath, which is a wrapper
    # for this class.  Believe me.  You don't want to poke around in here.
    # There is strange, dark magic at work in this code.  Beware.  Go back!  Go
    # back while you still can!
    class XPathParser
      include XMLTokens
      LITERAL    = /^'([^']*)'|^"([^"]*)"/u

      def namespaces=( namespaces )
        Functions::namespace_context = namespaces
        @namespaces = namespaces
      end

      def parse path
        path = path.dup
        path.gsub!(/([\(\[])\s+/, '\1') # Strip ignorable spaces
        path.gsub!( /\s+([\]\)])/, '\1')
        parsed = []
        OrExpr(path, parsed)
        parsed
      end

      def predicate path
        parsed = []
        Predicate( "[#{path}]", parsed )
        parsed
      end

      def abbreviate( path )
        path = path.kind_of?(String) ? parse( path ) : path
        string = ""
        document = false
        while path.size > 0
          op = path.shift
          case op
          when :node
          when :attribute
            string << "/" if string.size > 0
            string << "@"
          when :child
            string << "/" if string.size > 0
          when :descendant_or_self
            string << "/"
          when :self
            string << "."
          when :parent
            string << ".."
          when :any
            string << "*"
          when :text
            string << "text()"
          when :following, :following_sibling,
                :ancestor, :ancestor_or_self, :descendant,
                :namespace, :preceding, :preceding_sibling
            string << "/" unless string.size == 0
            string << op.to_s.tr("_", "-")
            string << "::"
          when :qname
            prefix = path.shift
            name = path.shift
            string << prefix+":" if prefix.size > 0
            string << name
          when :predicate
            string << '['
            string << predicate_to_string( path.shift ) {|x| abbreviate( x ) }
            string << ']'
          when :document
            document = true
          when :function
            string << path.shift
            string << "( "
            string << predicate_to_string( path.shift[0] ) {|x| abbreviate( x )}
            string << " )"
          when :literal
            string << %Q{ "#{path.shift}" }
          else
            string << "/" unless string.size == 0
            string << "UNKNOWN("
            string << op.inspect
            string << ")"
          end
        end
        string = "/"+string if document
        return string
      end

      def expand( path )
        path = path.kind_of?(String) ? parse( path ) : path
        string = ""
        document = false
        while path.size > 0
          op = path.shift
          case op
          when :node
            string << "node()"
          when :attribute, :child, :following, :following_sibling,
                :ancestor, :ancestor_or_self, :descendant, :descendant_or_self,
                :namespace, :preceding, :preceding_sibling, :self, :parent
            string << "/" unless string.size == 0
            string << op.to_s.tr("_", "-")
            string << "::"
          when :any
            string << "*"
          when :qname
            prefix = path.shift
            name = path.shift
            string << prefix+":" if prefix.size > 0
            string << name
          when :predicate
            string << '['
            string << predicate_to_string( path.shift ) { |x| expand(x) }
            string << ']'
          when :document
            document = true
          else
            string << "/" unless string.size == 0
            string << "UNKNOWN("
            string << op.inspect
            string << ")"
          end
        end
        string = "/"+string if document
        return string
      end

      def predicate_to_string( path, &block )
        string = ""
        case path[0]
        when :and, :or, :mult, :plus, :minus, :neq, :eq, :lt, :gt, :lteq, :gteq, :div, :mod, :union
          op = path.shift
          case op
          when :eq
            op = "="
          when :lt
            op = "<"
          when :gt
            op = ">"
          when :lteq
            op = "<="
          when :gteq
            op = ">="
          when :neq
            op = "!="
          when :union
            op = "|"
          end
          left = predicate_to_string( path.shift, &block )
          right = predicate_to_string( path.shift, &block )
          string << " "
          string << left
          string << " "
          string << op.to_s
          string << " "
          string << right
          string << " "
        when :function
          path.shift
          name = path.shift
          string << name
          string << "( "
          string << predicate_to_string( path.shift, &block )
          string << " )"
        when :literal
          path.shift
          string << " "
          string << path.shift.inspect
          string << " "
        else
          string << " "
          string << yield( path )
          string << " "
        end
        return string.squeeze(" ")
      end

      private
      #LocationPath
      #  | RelativeLocationPath
      #  | '/' RelativeLocationPath?
      #  | '//' RelativeLocationPath
      def LocationPath path, parsed
        path = path.strip
        if path[0] == ?/
          parsed << :document
          if path[1] == ?/
            parsed << :descendant_or_self
            parsed << :node
            path = path[2..-1]
          else
            path = path[1..-1]
          end
        end
        return RelativeLocationPath( path, parsed ) if path.size > 0
      end

      #RelativeLocationPath
      #  |                                                    Step
      #    | (AXIS_NAME '::' | '@' | '')                     AxisSpecifier
      #      NodeTest
      #        Predicate
      #    | '.' | '..'                                      AbbreviatedStep
      #  |  RelativeLocationPath '/' Step
      #  | RelativeLocationPath '//' Step
      AXIS = /^(ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self)::/
      def RelativeLocationPath path, parsed
        while path.size > 0
          # (axis or @ or <child::>) nodetest predicate  >
          # OR                                          >  / Step
          # (. or ..)                                    >
          if path[0] == ?.
            if path[1] == ?.
              parsed << :parent
              parsed << :node
              path = path[2..-1]
            else
              parsed << :self
              parsed << :node
              path = path[1..-1]
            end
          else
            if path[0] == ?@
              parsed << :attribute
              path = path[1..-1]
              # Goto Nodetest
            elsif path =~ AXIS
              parsed << $1.tr('-','_').intern
              path = $'
              # Goto Nodetest
            else
              parsed << :child
            end

            n = []
            path = NodeTest( path, n)

            if path[0] == ?[
              path = Predicate( path, n )
            end

            parsed.concat(n)
          end

          if path.size > 0
            if path[0] == ?/
              if path[1] == ?/
                parsed << :descendant_or_self
                parsed << :node
                path = path[2..-1]
              else
                path = path[1..-1]
              end
            else
              return path
            end
          end
        end
        return path
      end

      # Returns a 1-1 map of the nodeset
      # The contents of the resulting array are either:
      #   true/false, if a positive match
      #   String, if a name match
      #NodeTest
      #  | ('*' | NCNAME ':' '*' | QNAME)                NameTest
      #  | NODE_TYPE '(' ')'                              NodeType
      #  | PI '(' LITERAL ')'                            PI
      #    | '[' expr ']'                                Predicate
      NCNAMETEST= /^(#{NCNAME_STR}):\*/u
      QNAME     = Namespace::NAMESPLIT
      NODE_TYPE  = /^(comment|text|node)\(\s*\)/m
      PI        = /^processing-instruction\(/
      def NodeTest path, parsed
        case path
        when /^\*/
          path = $'
          parsed << :any
        when NODE_TYPE
          type = $1
          path = $'
          parsed << type.tr('-', '_').intern
        when PI
          path = $'
          literal = nil
          if path !~ /^\s*\)/
            path =~ LITERAL
            literal = $1
            path = $'
            raise ParseException.new("Missing ')' after processing instruction") if path[0] != ?)
            path = path[1..-1]
          end
          parsed << :processing_instruction
          parsed << (literal || '')
        when NCNAMETEST
          prefix = $1
          path = $'
          parsed << :namespace
          parsed << prefix
        when QNAME
          prefix = $1
          name = $2
          path = $'
          prefix = "" unless prefix
          parsed << :qname
          parsed << prefix
          parsed << name
        end
        return path
      end

      # Filters the supplied nodeset on the predicate(s)
      def Predicate path, parsed
        return nil unless path[0] == ?[
        predicates = []
        while path[0] == ?[
          path, expr = get_group(path)
          predicates << expr[1..-2] if expr
        end
        predicates.each{ |pred|
          preds = []
          parsed << :predicate
          parsed << preds
          OrExpr(pred, preds)
        }
        path
      end

      # The following return arrays of true/false, a 1-1 mapping of the
      # supplied nodeset, except for axe(), which returns a filtered
      # nodeset

      #| OrExpr S 'or' S AndExpr
      #| AndExpr
      def OrExpr path, parsed
        n = []
        rest = AndExpr( path, n )
        if rest != path
          while rest =~ /^\s*( or )/
            n = [ :or, n, [] ]
            rest = AndExpr( $', n[-1] )
          end
        end
        if parsed.size == 0 and n.size != 0
          parsed.replace(n)
        elsif n.size > 0
          parsed << n
        end
        rest
      end

      #| AndExpr S 'and' S EqualityExpr
      #| EqualityExpr
      def AndExpr path, parsed
        n = []
        rest = EqualityExpr( path, n )
        if rest != path
          while rest =~ /^\s*( and )/
            n = [ :and, n, [] ]
            rest = EqualityExpr( $', n[-1] )
          end
        end
        if parsed.size == 0 and n.size != 0
          parsed.replace(n)
        elsif n.size > 0
          parsed << n
        end
        rest
      end

      #| EqualityExpr ('=' | '!=')  RelationalExpr
      #| RelationalExpr
      def EqualityExpr path, parsed
        n = []
        rest = RelationalExpr( path, n )
        if rest != path
          while rest =~ /^\s*(!?=)\s*/
            if $1[0] == ?!
              n = [ :neq, n, [] ]
            else
              n = [ :eq, n, [] ]
            end
            rest = RelationalExpr( $', n[-1] )
          end
        end
        if parsed.size == 0 and n.size != 0
          parsed.replace(n)
        elsif n.size > 0
          parsed << n
        end
        rest
      end

      #| RelationalExpr ('<' | '>' | '<=' | '>=') AdditiveExpr
      #| AdditiveExpr
      def RelationalExpr path, parsed
        n = []
        rest = AdditiveExpr( path, n )
        if rest != path
          while rest =~ /^\s*([<>]=?)\s*/
            if $1[0] == ?<
              sym = "lt"
            else
              sym = "gt"
            end
            sym << "eq" if $1[-1] == ?=
            n = [ sym.intern, n, [] ]
            rest = AdditiveExpr( $', n[-1] )
          end
        end
        if parsed.size == 0 and n.size != 0
          parsed.replace(n)
        elsif n.size > 0
          parsed << n
        end
        rest
      end

      #| AdditiveExpr ('+' | S '-') MultiplicativeExpr
      #| MultiplicativeExpr
      def AdditiveExpr path, parsed
        n = []
        rest = MultiplicativeExpr( path, n )
        if rest != path
          while rest =~ /^\s*(\+| -)\s*/
            if $1[0] == ?+
              n = [ :plus, n, [] ]
            else
              n = [ :minus, n, [] ]
            end
            rest = MultiplicativeExpr( $', n[-1] )
          end
        end
        if parsed.size == 0 and n.size != 0
          parsed.replace(n)
        elsif n.size > 0
          parsed << n
        end
        rest
      end

      #| MultiplicativeExpr ('*' | S ('div' | 'mod') S) UnaryExpr
      #| UnaryExpr
      def MultiplicativeExpr path, parsed
        n = []
        rest = UnaryExpr( path, n )
        if rest != path
          while rest =~ /^\s*(\*| div | mod )\s*/
            if $1[0] == ?*
              n = [ :mult, n, [] ]
            elsif $1.include?( "div" )
              n = [ :div, n, [] ]
            else
              n = [ :mod, n, [] ]
            end
            rest = UnaryExpr( $', n[-1] )
          end
        end
        if parsed.size == 0 and n.size != 0
          parsed.replace(n)
        elsif n.size > 0
          parsed << n
        end
        rest
      end

      #| '-' UnaryExpr
      #| UnionExpr
      def UnaryExpr path, parsed
        path =~ /^(\-*)/
        path = $'
        if $1 and (($1.size % 2) != 0)
          mult = -1
        else
          mult = 1
        end
        parsed << :neg if mult < 0

        n = []
        path = UnionExpr( path, n )
        parsed.concat( n )
        path
      end

      #| UnionExpr '|' PathExpr
      #| PathExpr
      def UnionExpr path, parsed
        n = []
        rest = PathExpr( path, n )
        if rest != path
          while rest =~ /^\s*(\|)\s*/
            n = [ :union, n, [] ]
            rest = PathExpr( $', n[-1] )
          end
        end
        if parsed.size == 0 and n.size != 0
          parsed.replace( n )
        elsif n.size > 0
          parsed << n
        end
        rest
      end

      #| LocationPath
      #| FilterExpr ('/' | '//') RelativeLocationPath
      def PathExpr path, parsed
        path =~ /^\s*/
        path = $'
        n = []
        rest = FilterExpr( path, n )
        if rest != path
          if rest and rest[0] == ?/
            return RelativeLocationPath(rest, n)
          end
        end
        rest = LocationPath(rest, n) if rest =~ /\A[\/\.\@\[\w*]/
        parsed.concat(n)
        return rest
      end

      #| FilterExpr Predicate
      #| PrimaryExpr
      def FilterExpr path, parsed
        n = []
        path = PrimaryExpr( path, n )
        path = Predicate(path, n) if path and path[0] == ?[
        parsed.concat(n)
        path
      end

      #| VARIABLE_REFERENCE
      #| '(' expr ')'
      #| LITERAL
      #| NUMBER
      #| FunctionCall
      VARIABLE_REFERENCE  = /^\$(#{NAME_STR})/u
      NUMBER              = /^(\d*\.?\d+)/
      NT        = /^comment|text|processing-instruction|node$/
      def PrimaryExpr path, parsed
        case path
        when VARIABLE_REFERENCE
          varname = $1
          path = $'
          parsed << :variable
          parsed << varname
          #arry << @variables[ varname ]
        when /^(\w[-\w]*)(?:\()/
          fname = $1
          tmp = $'
          return path if fname =~ NT
          path = tmp
          parsed << :function
          parsed << fname
          path = FunctionCall(path, parsed)
        when NUMBER
          varname = $1.nil? ? $2 : $1
          path = $'
          parsed << :literal
          parsed << (varname.include?('.') ? varname.to_f : varname.to_i)
        when LITERAL
          varname = $1.nil? ? $2 : $1
          path = $'
          parsed << :literal
          parsed << varname
        when /^\(/                                               #/
          path, contents = get_group(path)
          contents = contents[1..-2]
          n = []
          OrExpr( contents, n )
          parsed.concat(n)
        end
        path
      end

      #| FUNCTION_NAME '(' ( expr ( ',' expr )* )? ')'
      def FunctionCall rest, parsed
        path, arguments = parse_args(rest)
        argset = []
        for argument in arguments
          args = []
          OrExpr( argument, args )
          argset << args
        end
        parsed << argset
        path
      end

      # get_group( '[foo]bar' ) -> ['bar', '[foo]']
      def get_group string
        ind = 0
        depth = 0
        st = string[0,1]
        en = (st == "(" ? ")" : "]")
        begin
          case string[ind,1]
          when st
            depth += 1
          when en
            depth -= 1
          end
          ind += 1
        end while depth > 0 and ind < string.length
        return nil unless depth==0
        [string[ind..-1], string[0..ind-1]]
      end

      def parse_args( string )
        arguments = []
        ind = 0
        inquot = false
        inapos = false
        depth = 1
        begin
          case string[ind]
          when ?"
            inquot = !inquot unless inapos
          when ?'
            inapos = !inapos unless inquot
          else
            unless inquot or inapos
              case string[ind]
              when ?(
                depth += 1
                if depth == 1
                  string = string[1..-1]
                  ind -= 1
                end
              when ?)
                depth -= 1
                if depth == 0
                  s = string[0,ind].strip
                  arguments << s unless s == ""
                  string = string[ind+1..-1]
                end
              when ?,
                if depth == 1
                  s = string[0,ind].strip
                  arguments << s unless s == ""
                  string = string[ind+1..-1]
                  ind = -1
                end
              end
            end
          end
          ind += 1
        end while depth > 0 and ind < string.length
        return nil unless depth==0
        [string,arguments]
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/parsers/ultralightparser.rb000064400000002662150402106410015632 0ustar00require 'rexml/parsers/streamparser'
require 'rexml/parsers/baseparser'

module REXML
  module Parsers
    class UltraLightParser
      def initialize stream
        @stream = stream
        @parser = REXML::Parsers::BaseParser.new( stream )
      end

      def add_listener( listener )
        @parser.add_listener( listener )
      end

      def rewind
        @stream.rewind
        @parser.stream = @stream
      end

      def parse
        root = context = []
        while true
          event = @parser.pull
          case event[0]
          when :end_document
            break
          when :end_doctype
            context = context[1]
          when :start_element, :start_doctype
            context << event
            event[1,0] = [context]
            context = event
          when :end_element
            context = context[1]
          else
            context << event
          end
        end
        root
      end
    end

    # An element is an array.  The array contains:
    #  0                        The parent element
    #  1                        The tag name
    #  2                        A hash of attributes
    #  3..-1    The child elements
    # An element is an array of size > 3
    # Text is a String
    # PIs are [ :processing_instruction, target, data ]
    # Comments are [ :comment, data ]
    # DocTypes are DocType structs
    # The root is an array with XMLDecls, Text, DocType, Array, Text
  end
end
lib64/ruby/2.2.0/rexml/parsers/baseparser.rb000064400000047227150402106410014373 0ustar00require 'rexml/parseexception'
require 'rexml/undefinednamespaceexception'
require 'rexml/source'
require 'set'

module REXML
  module Parsers
    # = Using the Pull Parser
    # <em>This API is experimental, and subject to change.</em>
    #  parser = PullParser.new( "<a>text<b att='val'/>txet</a>" )
    #  while parser.has_next?
    #    res = parser.next
    #    puts res[1]['att'] if res.start_tag? and res[0] == 'b'
    #  end
    # See the PullEvent class for information on the content of the results.
    # The data is identical to the arguments passed for the various events to
    # the StreamListener API.
    #
    # Notice that:
    #  parser = PullParser.new( "<a>BAD DOCUMENT" )
    #  while parser.has_next?
    #    res = parser.next
    #    raise res[1] if res.error?
    #  end
    #
    # Nat Price gave me some good ideas for the API.
    class BaseParser
      LETTER = '[:alpha:]'
      DIGIT = '[:digit:]'

      COMBININGCHAR = '' # TODO
      EXTENDER = ''      # TODO

      NCNAME_STR= "[#{LETTER}_:][-[:alnum:]._:#{COMBININGCHAR}#{EXTENDER}]*"
      NAME_STR= "(?:(#{NCNAME_STR}):)?(#{NCNAME_STR})"
      UNAME_STR= "(?:#{NCNAME_STR}:)?#{NCNAME_STR}"

      NAMECHAR = '[\-\w\.:]'
      NAME = "([\\w:]#{NAMECHAR}*)"
      NMTOKEN = "(?:#{NAMECHAR})+"
      NMTOKENS = "#{NMTOKEN}(\\s+#{NMTOKEN})*"
      REFERENCE = "&(?:#{NAME};|#\\d+;|#x[0-9a-fA-F]+;)"
      REFERENCE_RE = /#{REFERENCE}/

      DOCTYPE_START = /\A\s*<!DOCTYPE\s/um
      DOCTYPE_END = /\A\s*\]\s*>/um
      DOCTYPE_PATTERN = /\s*<!DOCTYPE\s+(.*?)(\[|>)/um
      ATTRIBUTE_PATTERN = /\s*(#{NAME_STR})\s*=\s*(["'])(.*?)\4/um
      COMMENT_START = /\A<!--/u
      COMMENT_PATTERN = /<!--(.*?)-->/um
      CDATA_START = /\A<!\[CDATA\[/u
      CDATA_END = /\A\s*\]\s*>/um
      CDATA_PATTERN = /<!\[CDATA\[(.*?)\]\]>/um
      XMLDECL_START = /\A<\?xml\s/u;
      XMLDECL_PATTERN = /<\?xml\s+(.*?)\?>/um
      INSTRUCTION_START = /\A<\?/u
      INSTRUCTION_PATTERN = /<\?(.*?)(\s+.*?)?\?>/um
      TAG_MATCH = /^<((?>#{NAME_STR}))\s*((?>\s+#{UNAME_STR}\s*=\s*(["']).*?\5)*)\s*(\/)?>/um
      CLOSE_MATCH = /^\s*<\/(#{NAME_STR})\s*>/um

      VERSION = /\bversion\s*=\s*["'](.*?)['"]/um
      ENCODING = /\bencoding\s*=\s*["'](.*?)['"]/um
      STANDALONE = /\bstandalone\s*=\s*["'](.*?)['"]/um

      ENTITY_START = /\A\s*<!ENTITY/
      IDENTITY = /^([!\*\w\-]+)(\s+#{NCNAME_STR})?(\s+["'](.*?)['"])?(\s+['"](.*?)["'])?/u
      ELEMENTDECL_START = /\A\s*<!ELEMENT/um
      ELEMENTDECL_PATTERN = /\A\s*(<!ELEMENT.*?)>/um
      SYSTEMENTITY = /\A\s*(%.*?;)\s*$/um
      ENUMERATION = "\\(\\s*#{NMTOKEN}(?:\\s*\\|\\s*#{NMTOKEN})*\\s*\\)"
      NOTATIONTYPE = "NOTATION\\s+\\(\\s*#{NAME}(?:\\s*\\|\\s*#{NAME})*\\s*\\)"
      ENUMERATEDTYPE = "(?:(?:#{NOTATIONTYPE})|(?:#{ENUMERATION}))"
      ATTTYPE = "(CDATA|ID|IDREF|IDREFS|ENTITY|ENTITIES|NMTOKEN|NMTOKENS|#{ENUMERATEDTYPE})"
      ATTVALUE = "(?:\"((?:[^<&\"]|#{REFERENCE})*)\")|(?:'((?:[^<&']|#{REFERENCE})*)')"
      DEFAULTDECL = "(#REQUIRED|#IMPLIED|(?:(#FIXED\\s+)?#{ATTVALUE}))"
      ATTDEF = "\\s+#{NAME}\\s+#{ATTTYPE}\\s+#{DEFAULTDECL}"
      ATTDEF_RE = /#{ATTDEF}/
      ATTLISTDECL_START = /\A\s*<!ATTLIST/um
      ATTLISTDECL_PATTERN = /\A\s*<!ATTLIST\s+#{NAME}(?:#{ATTDEF})*\s*>/um
      NOTATIONDECL_START = /\A\s*<!NOTATION/um
      PUBLIC = /\A\s*<!NOTATION\s+(\w[\-\w]*)\s+(PUBLIC)\s+(["'])(.*?)\3(?:\s+(["'])(.*?)\5)?\s*>/um
      SYSTEM = /\A\s*<!NOTATION\s+(\w[\-\w]*)\s+(SYSTEM)\s+(["'])(.*?)\3\s*>/um

      TEXT_PATTERN = /\A([^<]*)/um

      # Entity constants
      PUBIDCHAR = "\x20\x0D\x0Aa-zA-Z0-9\\-()+,./:=?;!*@$_%#"
      SYSTEMLITERAL = %Q{((?:"[^"]*")|(?:'[^']*'))}
      PUBIDLITERAL = %Q{("[#{PUBIDCHAR}']*"|'[#{PUBIDCHAR}]*')}
      EXTERNALID = "(?:(?:(SYSTEM)\\s+#{SYSTEMLITERAL})|(?:(PUBLIC)\\s+#{PUBIDLITERAL}\\s+#{SYSTEMLITERAL}))"
      NDATADECL = "\\s+NDATA\\s+#{NAME}"
      PEREFERENCE = "%#{NAME};"
      ENTITYVALUE = %Q{((?:"(?:[^%&"]|#{PEREFERENCE}|#{REFERENCE})*")|(?:'([^%&']|#{PEREFERENCE}|#{REFERENCE})*'))}
      PEDEF = "(?:#{ENTITYVALUE}|#{EXTERNALID})"
      ENTITYDEF = "(?:#{ENTITYVALUE}|(?:#{EXTERNALID}(#{NDATADECL})?))"
      PEDECL = "<!ENTITY\\s+(%)\\s+#{NAME}\\s+#{PEDEF}\\s*>"
      GEDECL = "<!ENTITY\\s+#{NAME}\\s+#{ENTITYDEF}\\s*>"
      ENTITYDECL = /\s*(?:#{GEDECL})|(?:#{PEDECL})/um

      EREFERENCE = /&(?!#{NAME};)/

      DEFAULT_ENTITIES = {
        'gt' => [/&gt;/, '&gt;', '>', />/],
        'lt' => [/&lt;/, '&lt;', '<', /</],
        'quot' => [/&quot;/, '&quot;', '"', /"/],
        "apos" => [/&apos;/, "&apos;", "'", /'/]
      }


      ######################################################################
      # These are patterns to identify common markup errors, to make the
      # error messages more informative.
      ######################################################################
      MISSING_ATTRIBUTE_QUOTES = /^<#{NAME_STR}\s+#{NAME_STR}\s*=\s*[^"']/um

      def initialize( source )
        self.stream = source
        @listeners = []
      end

      def add_listener( listener )
        @listeners << listener
      end

      attr_reader :source

      def stream=( source )
        @source = SourceFactory.create_from( source )
        @closed = nil
        @document_status = nil
        @tags = []
        @stack = []
        @entities = []
        @nsstack = []
      end

      def position
        if @source.respond_to? :position
          @source.position
        else
          # FIXME
          0
        end
      end

      # Returns true if there are no more events
      def empty?
        return (@source.empty? and @stack.empty?)
      end

      # Returns true if there are more events.  Synonymous with !empty?
      def has_next?
        return !(@source.empty? and @stack.empty?)
      end

      # Push an event back on the head of the stream.  This method
      # has (theoretically) infinite depth.
      def unshift token
        @stack.unshift(token)
      end

      # Peek at the +depth+ event in the stack.  The first element on the stack
      # is at depth 0.  If +depth+ is -1, will parse to the end of the input
      # stream and return the last event, which is always :end_document.
      # Be aware that this causes the stream to be parsed up to the +depth+
      # event, so you can effectively pre-parse the entire document (pull the
      # entire thing into memory) using this method.
      def peek depth=0
        raise %Q[Illegal argument "#{depth}"] if depth < -1
        temp = []
        if depth == -1
          temp.push(pull()) until empty?
        else
          while @stack.size+temp.size < depth+1
            temp.push(pull())
          end
        end
        @stack += temp if temp.size > 0
        @stack[depth]
      end

      # Returns the next event.  This is a +PullEvent+ object.
      def pull
        pull_event.tap do |event|
          @listeners.each do |listener|
            listener.receive event
          end
        end
      end

      def pull_event
        if @closed
          x, @closed = @closed, nil
          return [ :end_element, x ]
        end
        return [ :end_document ] if empty?
        return @stack.shift if @stack.size > 0
        #STDERR.puts @source.encoding
        @source.read if @source.buffer.size<2
        #STDERR.puts "BUFFER = #{@source.buffer.inspect}"
        if @document_status == nil
          #@source.consume( /^\s*/um )
          word = @source.match( /^((?:\s+)|(?:<[^>]*>))/um )
          word = word[1] unless word.nil?
          #STDERR.puts "WORD = #{word.inspect}"
          case word
          when COMMENT_START
            return [ :comment, @source.match( COMMENT_PATTERN, true )[1] ]
          when XMLDECL_START
            #STDERR.puts "XMLDECL"
            results = @source.match( XMLDECL_PATTERN, true )[1]
            version = VERSION.match( results )
            version = version[1] unless version.nil?
            encoding = ENCODING.match(results)
            encoding = encoding[1] unless encoding.nil?
            if need_source_encoding_update?(encoding)
              @source.encoding = encoding
            end
            if encoding.nil? and /\AUTF-16(?:BE|LE)\z/i =~ @source.encoding
              encoding = "UTF-16"
            end
            standalone = STANDALONE.match(results)
            standalone = standalone[1] unless standalone.nil?
            return [ :xmldecl, version, encoding, standalone ]
          when INSTRUCTION_START
            return [ :processing_instruction, *@source.match(INSTRUCTION_PATTERN, true)[1,2] ]
          when DOCTYPE_START
            md = @source.match( DOCTYPE_PATTERN, true )
            @nsstack.unshift(curr_ns=Set.new)
            identity = md[1]
            close = md[2]
            identity =~ IDENTITY
            name = $1
            raise REXML::ParseException.new("DOCTYPE is missing a name") if name.nil?
            pub_sys = $2.nil? ? nil : $2.strip
            long_name = $4.nil? ? nil : $4.strip
            uri = $6.nil? ? nil : $6.strip
            args = [ :start_doctype, name, pub_sys, long_name, uri ]
            if close == ">"
              @document_status = :after_doctype
              @source.read if @source.buffer.size<2
              md = @source.match(/^\s*/um, true)
              @stack << [ :end_doctype ]
            else
              @document_status = :in_doctype
            end
            return args
          when /^\s+/
          else
            @document_status = :after_doctype
            @source.read if @source.buffer.size<2
            md = @source.match(/\s*/um, true)
            if @source.encoding == "UTF-8"
              @source.buffer.force_encoding(::Encoding::UTF_8)
            end
          end
        end
        if @document_status == :in_doctype
          md = @source.match(/\s*(.*?>)/um)
          case md[1]
          when SYSTEMENTITY
            match = @source.match( SYSTEMENTITY, true )[1]
            return [ :externalentity, match ]

          when ELEMENTDECL_START
            return [ :elementdecl, @source.match( ELEMENTDECL_PATTERN, true )[1] ]

          when ENTITY_START
            match = @source.match( ENTITYDECL, true ).to_a.compact
            match[0] = :entitydecl
            ref = false
            if match[1] == '%'
              ref = true
              match.delete_at 1
            end
            # Now we have to sort out what kind of entity reference this is
            if match[2] == 'SYSTEM'
              # External reference
              match[3] = match[3][1..-2] # PUBID
              match.delete_at(4) if match.size > 4 # Chop out NDATA decl
              # match is [ :entity, name, SYSTEM, pubid(, ndata)? ]
            elsif match[2] == 'PUBLIC'
              # External reference
              match[3] = match[3][1..-2] # PUBID
              match[4] = match[4][1..-2] # HREF
              match.delete_at(5) if match.size > 5 # Chop out NDATA decl
              # match is [ :entity, name, PUBLIC, pubid, href(, ndata)? ]
            else
              match[2] = match[2][1..-2]
              match.pop if match.size == 4
              # match is [ :entity, name, value ]
            end
            match << '%' if ref
            return match
          when ATTLISTDECL_START
            md = @source.match( ATTLISTDECL_PATTERN, true )
            raise REXML::ParseException.new( "Bad ATTLIST declaration!", @source ) if md.nil?
            element = md[1]
            contents = md[0]

            pairs = {}
            values = md[0].scan( ATTDEF_RE )
            values.each do |attdef|
              unless attdef[3] == "#IMPLIED"
                attdef.compact!
                val = attdef[3]
                val = attdef[4] if val == "#FIXED "
                pairs[attdef[0]] = val
                if attdef[0] =~ /^xmlns:(.*)/
                  @nsstack[0] << $1
                end
              end
            end
            return [ :attlistdecl, element, pairs, contents ]
          when NOTATIONDECL_START
            md = nil
            if @source.match( PUBLIC )
              md = @source.match( PUBLIC, true )
              vals = [md[1],md[2],md[4],md[6]]
            elsif @source.match( SYSTEM )
              md = @source.match( SYSTEM, true )
              vals = [md[1],md[2],nil,md[4]]
            else
              raise REXML::ParseException.new( "error parsing notation: no matching pattern", @source )
            end
            return [ :notationdecl, *vals ]
          when DOCTYPE_END
            @document_status = :after_doctype
            @source.match( DOCTYPE_END, true )
            return [ :end_doctype ]
          end
        end
        begin
          if @source.buffer[0] == ?<
            if @source.buffer[1] == ?/
              @nsstack.shift
              last_tag = @tags.pop
              #md = @source.match_to_consume( '>', CLOSE_MATCH)
              md = @source.match( CLOSE_MATCH, true )
              raise REXML::ParseException.new( "Missing end tag for "+
                "'#{last_tag}' (got \"#{md[1]}\")",
                @source) unless last_tag == md[1]
              return [ :end_element, last_tag ]
            elsif @source.buffer[1] == ?!
              md = @source.match(/\A(\s*[^>]*>)/um)
              #STDERR.puts "SOURCE BUFFER = #{source.buffer}, #{source.buffer.size}"
              raise REXML::ParseException.new("Malformed node", @source) unless md
              if md[0][2] == ?-
                md = @source.match( COMMENT_PATTERN, true )

                case md[1]
                when /--/, /-\z/
                  raise REXML::ParseException.new("Malformed comment", @source)
                end

                return [ :comment, md[1] ] if md
              else
                md = @source.match( CDATA_PATTERN, true )
                return [ :cdata, md[1] ] if md
              end
              raise REXML::ParseException.new( "Declarations can only occur "+
                "in the doctype declaration.", @source)
            elsif @source.buffer[1] == ??
              md = @source.match( INSTRUCTION_PATTERN, true )
              return [ :processing_instruction, md[1], md[2] ] if md
              raise REXML::ParseException.new( "Bad instruction declaration",
                @source)
            else
              # Get the next tag
              md = @source.match(TAG_MATCH, true)
              unless md
                # Check for missing attribute quotes
                raise REXML::ParseException.new("missing attribute quote", @source) if @source.match(MISSING_ATTRIBUTE_QUOTES )
                raise REXML::ParseException.new("malformed XML: missing tag start", @source)
              end
              attributes = {}
              prefixes = Set.new
              prefixes << md[2] if md[2]
              @nsstack.unshift(curr_ns=Set.new)
              if md[4].size > 0
                attrs = md[4].scan( ATTRIBUTE_PATTERN )
                raise REXML::ParseException.new( "error parsing attributes: [#{attrs.join ', '}], excess = \"#$'\"", @source) if $' and $'.strip.size > 0
                attrs.each do |attr_name, prefix, local_part, quote, value|
                  if prefix == "xmlns"
                    if local_part == "xml"
                      if value != "http://www.w3.org/XML/1998/namespace"
                        msg = "The 'xml' prefix must not be bound to any other namespace "+
                        "(http://www.w3.org/TR/REC-xml-names/#ns-decl)"
                        raise REXML::ParseException.new( msg, @source, self )
                      end
                    elsif local_part == "xmlns"
                      msg = "The 'xmlns' prefix must not be declared "+
                      "(http://www.w3.org/TR/REC-xml-names/#ns-decl)"
                      raise REXML::ParseException.new( msg, @source, self)
                    end
                    curr_ns << local_part
                  elsif prefix
                    prefixes << prefix unless prefix == "xml"
                  end

                  if attributes.has_key?(attr_name)
                    msg = "Duplicate attribute #{attr_name.inspect}"
                    raise REXML::ParseException.new(msg, @source, self)
                  end

                  attributes[attr_name] = value
                end
              end

              # Verify that all of the prefixes have been defined
              for prefix in prefixes
                unless @nsstack.find{|k| k.member?(prefix)}
                  raise UndefinedNamespaceException.new(prefix,@source,self)
                end
              end

              if md[6]
                @closed = md[1]
                @nsstack.shift
              else
                @tags.push( md[1] )
              end
              return [ :start_element, md[1], attributes ]
            end
          else
            md = @source.match( TEXT_PATTERN, true )
            if md[0].length == 0
              @source.match( /(\s+)/, true )
            end
            #STDERR.puts "GOT #{md[1].inspect}" unless md[0].length == 0
            #return [ :text, "" ] if md[0].length == 0
            # unnormalized = Text::unnormalize( md[1], self )
            # return PullEvent.new( :text, md[1], unnormalized )
            return [ :text, md[1] ]
          end
        rescue REXML::UndefinedNamespaceException
          raise
        rescue REXML::ParseException
          raise
        rescue Exception, NameError => error
          raise REXML::ParseException.new( "Exception parsing",
            @source, self, (error ? error : $!) )
        end
        return [ :dummy ]
      end
      private :pull_event

      def entity( reference, entities )
        value = nil
        value = entities[ reference ] if entities
        if not value
          value = DEFAULT_ENTITIES[ reference ]
          value = value[2] if value
        end
        unnormalize( value, entities ) if value
      end

      # Escapes all possible entities
      def normalize( input, entities=nil, entity_filter=nil )
        copy = input.clone
        # Doing it like this rather than in a loop improves the speed
        copy.gsub!( EREFERENCE, '&amp;' )
        entities.each do |key, value|
          copy.gsub!( value, "&#{key};" ) unless entity_filter and
                                      entity_filter.include?(entity)
        end if entities
        copy.gsub!( EREFERENCE, '&amp;' )
        DEFAULT_ENTITIES.each do |key, value|
          copy.gsub!( value[3], value[1] )
        end
        copy
      end

      # Unescapes all possible entities
      def unnormalize( string, entities=nil, filter=nil )
        rv = string.clone
        rv.gsub!( /\r\n?/, "\n" )
        matches = rv.scan( REFERENCE_RE )
        return rv if matches.size == 0
        rv.gsub!( /&#0*((?:\d+)|(?:x[a-fA-F0-9]+));/ ) {
          m=$1
          m = "0#{m}" if m[0] == ?x
          [Integer(m)].pack('U*')
        }
        matches.collect!{|x|x[0]}.compact!
        if matches.size > 0
          matches.each do |entity_reference|
            unless filter and filter.include?(entity_reference)
              entity_value = entity( entity_reference, entities )
              if entity_value
                re = /&#{entity_reference};/
                rv.gsub!( re, entity_value )
              else
                er = DEFAULT_ENTITIES[entity_reference]
                rv.gsub!( er[0], er[2] ) if er
              end
            end
          end
          rv.gsub!( /&amp;/, '&' )
        end
        rv
      end

      private
      def need_source_encoding_update?(xml_declaration_encoding)
        return false if xml_declaration_encoding.nil?
        return false if /\AUTF-16\z/i =~ xml_declaration_encoding
        true
      end
    end
  end
end

=begin
  case event[0]
  when :start_element
  when :text
  when :end_element
  when :processing_instruction
  when :cdata
  when :comment
  when :xmldecl
  when :start_doctype
  when :end_doctype
  when :externalentity
  when :elementdecl
  when :entity
  when :attlistdecl
  when :notationdecl
  when :end_doctype
  end
=end
lib64/ruby/2.2.0/rexml/parent.rb000064400000010365150402106410012047 0ustar00require "rexml/child"

module REXML
  # A parent has children, and has methods for accessing them.  The Parent
  # class is never encountered except as the superclass for some other
  # object.
  class Parent < Child
    include Enumerable

    # Constructor
    # @param parent if supplied, will be set as the parent of this object
    def initialize parent=nil
      super(parent)
      @children = []
    end

    def add( object )
      object.parent = self
      @children << object
      object
    end

    alias :push :add
    alias :<< :push

    def unshift( object )
      object.parent = self
      @children.unshift object
    end

    def delete( object )
      found = false
      @children.delete_if {|c| c.equal?(object) and found = true }
      object.parent = nil if found
      found ? object : nil
    end

    def each(&block)
      @children.each(&block)
    end

    def delete_if( &block )
      @children.delete_if(&block)
    end

    def delete_at( index )
      @children.delete_at index
    end

    def each_index( &block )
      @children.each_index(&block)
    end

    # Fetches a child at a given index
    # @param index the Integer index of the child to fetch
    def []( index )
      @children[index]
    end

    alias :each_child :each



    # Set an index entry.  See Array.[]=
    # @param index the index of the element to set
    # @param opt either the object to set, or an Integer length
    # @param child if opt is an Integer, this is the child to set
    # @return the parent (self)
    def []=( *args )
      args[-1].parent = self
      @children[*args[0..-2]] = args[-1]
    end

    # Inserts an child before another child
    # @param child1 this is either an xpath or an Element.  If an Element,
    # child2 will be inserted before child1 in the child list of the parent.
    # If an xpath, child2 will be inserted before the first child to match
    # the xpath.
    # @param child2 the child to insert
    # @return the parent (self)
    def insert_before( child1, child2 )
      if child1.kind_of? String
        child1 = XPath.first( self, child1 )
        child1.parent.insert_before child1, child2
      else
        ind = index(child1)
        child2.parent.delete(child2) if child2.parent
        @children[ind,0] = child2
        child2.parent = self
      end
      self
    end

    # Inserts an child after another child
    # @param child1 this is either an xpath or an Element.  If an Element,
    # child2 will be inserted after child1 in the child list of the parent.
    # If an xpath, child2 will be inserted after the first child to match
    # the xpath.
    # @param child2 the child to insert
    # @return the parent (self)
    def insert_after( child1, child2 )
      if child1.kind_of? String
        child1 = XPath.first( self, child1 )
        child1.parent.insert_after child1, child2
      else
        ind = index(child1)+1
        child2.parent.delete(child2) if child2.parent
        @children[ind,0] = child2
        child2.parent = self
      end
      self
    end

    def to_a
      @children.dup
    end

    # Fetches the index of a given child
    # @param child the child to get the index of
    # @return the index of the child, or nil if the object is not a child
    # of this parent.
    def index( child )
      count = -1
      @children.find { |i| count += 1 ; i.hash == child.hash }
      count
    end

    # @return the number of children of this parent
    def size
      @children.size
    end

    alias :length :size

    # Replaces one child with another, making sure the nodelist is correct
    # @param to_replace the child to replace (must be a Child)
    # @param replacement the child to insert into the nodelist (must be a
    # Child)
    def replace_child( to_replace, replacement )
      @children.map! {|c| c.equal?( to_replace ) ? replacement : c }
      to_replace.parent = nil
      replacement.parent = self
    end

    # Deeply clones this object.  This creates a complete duplicate of this
    # Parent, including all descendants.
    def deep_clone
      cl = clone()
      each do |child|
        if child.kind_of? Parent
          cl << child.deep_clone
        else
          cl << child.clone
        end
      end
      cl
    end

    alias :children :to_a

    def parent?
      true
    end
  end
end
lib64/ruby/2.2.0/rexml/undefinednamespaceexception.rb000064400000000322150402106410016303 0ustar00require 'rexml/parseexception'
module REXML
  class UndefinedNamespaceException < ParseException
    def initialize( prefix, source, parser )
      super( "Undefined prefix #{prefix} found" )
    end
  end
end
lib64/ruby/2.2.0/rexml/validation/relaxng.rb000064400000032517150402106410014353 0ustar00require "rexml/validation/validation"
require "rexml/parsers/baseparser"

module REXML
  module Validation
    # Implemented:
    # * empty
    # * element
    # * attribute
    # * text
    # * optional
    # * choice
    # * oneOrMore
    # * zeroOrMore
    # * group
    # * value
    # * interleave
    # * mixed
    # * ref
    # * grammar
    # * start
    # * define
    #
    # Not implemented:
    # * data
    # * param
    # * include
    # * externalRef
    # * notAllowed
    # * anyName
    # * nsName
    # * except
    # * name
    class RelaxNG
      include Validator

      INFINITY = 1.0 / 0.0
      EMPTY = Event.new( nil )
      TEXT = [:start_element, "text"]
      attr_accessor :current
      attr_accessor :count
      attr_reader :references

      # FIXME: Namespaces
      def initialize source
        parser = REXML::Parsers::BaseParser.new( source )

        @count = 0
        @references = {}
        @root = @current = Sequence.new(self)
        @root.previous = true
        states = [ @current ]
        begin
          event = parser.pull
          case event[0]
          when :start_element
            case event[1]
            when "empty"
            when "element", "attribute", "text", "value"
              states[-1] << event
            when "optional"
              states << Optional.new( self )
              states[-2] << states[-1]
            when "choice"
              states << Choice.new( self )
              states[-2] << states[-1]
            when "oneOrMore"
              states << OneOrMore.new( self )
              states[-2] << states[-1]
            when "zeroOrMore"
              states << ZeroOrMore.new( self )
              states[-2] << states[-1]
            when "group"
              states << Sequence.new( self )
              states[-2] << states[-1]
            when "interleave"
              states << Interleave.new( self )
              states[-2] << states[-1]
            when "mixed"
              states << Interleave.new( self )
              states[-2] << states[-1]
              states[-1] << TEXT
            when "define"
              states << [ event[2]["name"] ]
            when "ref"
              states[-1] << Ref.new( event[2]["name"] )
            when "anyName"
              states << AnyName.new( self )
              states[-2] << states[-1]
            when "nsName"
            when "except"
            when "name"
            when "data"
            when "param"
            when "include"
            when "grammar"
            when "start"
            when "externalRef"
            when "notAllowed"
            end
          when :end_element
            case event[1]
            when "element", "attribute"
              states[-1] << event
            when "zeroOrMore", "oneOrMore", "choice", "optional",
              "interleave", "group", "mixed"
              states.pop
            when "define"
              ref = states.pop
              @references[ ref.shift ] = ref
            #when "empty"
            end
          when :end_document
            states[-1] << event
          when :text
            states[-1] << event
          end
        end while event[0] != :end_document
      end

      def receive event
        validate( event )
      end
    end

    class State
      def initialize( context )
        @previous = []
        @events = []
        @current = 0
        @count = context.count += 1
        @references = context.references
        @value = false
      end

      def reset
        return if @current == 0
        @current = 0
        @events.each {|s| s.reset if s.kind_of? State }
      end

      def previous=( previous )
        @previous << previous
      end

      def next( event )
        #print "In next with #{event.inspect}.  "
        #p @previous
        return @previous.pop.next( event ) if @events[@current].nil?
        expand_ref_in( @events, @current ) if @events[@current].class == Ref
        if ( @events[@current].kind_of? State )
          @current += 1
          @events[@current-1].previous = self
          return @events[@current-1].next( event )
        end
        if ( @events[@current].matches?(event) )
          @current += 1
          if @events[@current].nil?
            return @previous.pop
          elsif @events[@current].kind_of? State
            @current += 1
            @events[@current-1].previous = self
            return @events[@current-1]
          else
            return self
          end
        else
          return nil
        end
      end

      def to_s
        # Abbreviated:
        self.class.name =~ /(?:::)(\w)\w+$/
        # Full:
        #self.class.name =~ /(?:::)(\w+)$/
        "#$1.#@count"
      end

      def inspect
        "< #{to_s} #{@events.collect{|e|
          pre = e == @events[@current] ? '#' : ''
          pre + e.inspect unless self == e
        }.join(', ')} >"
      end

      def expected
        return [@events[@current]]
      end

      def <<( event )
        add_event_to_arry( @events, event )
      end


      protected
      def expand_ref_in( arry, ind )
        new_events = []
        @references[ arry[ind].to_s ].each{ |evt|
          add_event_to_arry(new_events,evt)
        }
        arry[ind,1] = new_events
      end

      def add_event_to_arry( arry, evt )
        evt = generate_event( evt )
        if evt.kind_of? String
          arry[-1].event_arg = evt if arry[-1].kind_of? Event and @value
          @value = false
        else
          arry << evt
        end
      end

      def generate_event( event )
        return event if event.kind_of? State or event.class == Ref
        evt = nil
        arg = nil
        case event[0]
        when :start_element
          case event[1]
          when "element"
            evt = :start_element
            arg = event[2]["name"]
          when "attribute"
            evt = :start_attribute
            arg = event[2]["name"]
          when "text"
            evt = :text
          when "value"
            evt = :text
            @value = true
          end
        when :text
          return event[1]
        when :end_document
          return Event.new( event[0] )
        else # then :end_element
          case event[1]
          when "element"
            evt = :end_element
          when "attribute"
            evt = :end_attribute
          end
        end
        return Event.new( evt, arg )
      end
    end


    class Sequence < State
      def matches?(event)
        @events[@current].matches?( event )
      end
    end


    class Optional < State
      def next( event )
        if @current == 0
          rv = super
          return rv if rv
          @prior = @previous.pop
          return @prior.next( event )
        end
        super
      end

      def matches?(event)
        @events[@current].matches?(event) ||
        (@current == 0 and @previous[-1].matches?(event))
      end

      def expected
        return [ @prior.expected, @events[0] ].flatten if @current == 0
        return [@events[@current]]
      end
    end


    class ZeroOrMore < Optional
      def next( event )
        expand_ref_in( @events, @current ) if @events[@current].class == Ref
        if ( @events[@current].matches?(event) )
          @current += 1
          if @events[@current].nil?
            @current = 0
            return self
          elsif @events[@current].kind_of? State
            @current += 1
            @events[@current-1].previous = self
            return @events[@current-1]
          else
            return self
          end
        else
          @prior = @previous.pop
          return @prior.next( event ) if @current == 0
          return nil
        end
      end

      def expected
        return [ @prior.expected, @events[0] ].flatten if @current == 0
        return [@events[@current]]
      end
    end


    class OneOrMore < State
      def initialize context
        super
        @ord = 0
      end

      def reset
        super
        @ord = 0
      end

      def next( event )
        expand_ref_in( @events, @current ) if @events[@current].class == Ref
        if ( @events[@current].matches?(event) )
          @current += 1
          @ord += 1
          if @events[@current].nil?
            @current = 0
            return self
          elsif @events[@current].kind_of? State
            @current += 1
            @events[@current-1].previous = self
            return @events[@current-1]
          else
            return self
          end
        else
          return @previous.pop.next( event ) if @current == 0 and @ord > 0
          return nil
        end
      end

      def matches?( event )
        @events[@current].matches?(event) ||
        (@current == 0 and @ord > 0 and @previous[-1].matches?(event))
      end

      def expected
        if @current == 0 and @ord > 0
          return [@previous[-1].expected, @events[0]].flatten
        else
          return [@events[@current]]
        end
      end
    end


    class Choice < State
      def initialize context
        super
        @choices = []
      end

      def reset
        super
        @events = []
        @choices.each { |c| c.each { |s| s.reset if s.kind_of? State } }
      end

      def <<( event )
        add_event_to_arry( @choices, event )
      end

      def next( event )
        # Make the choice if we haven't
        if @events.size == 0
          c = 0 ; max = @choices.size
          while c < max
            if @choices[c][0].class == Ref
              expand_ref_in( @choices[c], 0 )
              @choices += @choices[c]
              @choices.delete( @choices[c] )
              max -= 1
            else
              c += 1
            end
          end
          @events = @choices.find { |evt| evt[0].matches? event }
          # Remove the references
          # Find the events
        end
        unless @events
          @events = []
          return nil
        end
        super
      end

      def matches?( event )
        return @events[@current].matches?( event ) if @events.size > 0
        !@choices.find{|evt| evt[0].matches?(event)}.nil?
      end

      def expected
        return [@events[@current]] if @events.size > 0
        return @choices.collect do |x|
          if x[0].kind_of? State
            x[0].expected
          else
            x[0]
          end
        end.flatten
      end

      def inspect
        "< #{to_s} #{@choices.collect{|e| e.collect{|f|f.to_s}.join(', ')}.join(' or ')} >"
      end

      protected
      def add_event_to_arry( arry, evt )
        if evt.kind_of? State or evt.class == Ref
          arry << [evt]
        elsif evt[0] == :text
         if arry[-1] and
            arry[-1][-1].kind_of?( Event ) and
            arry[-1][-1].event_type == :text and @value

            arry[-1][-1].event_arg = evt[1]
            @value = false
         end
        else
          arry << [] if evt[0] == :start_element
          arry[-1] << generate_event( evt )
        end
      end
    end


    class Interleave < Choice
      def initialize context
        super
        @choice = 0
      end

      def reset
        @choice = 0
      end

      def next_current( event )
        # Expand references
        c = 0 ; max = @choices.size
        while c < max
          if @choices[c][0].class == Ref
            expand_ref_in( @choices[c], 0 )
            @choices += @choices[c]
            @choices.delete( @choices[c] )
            max -= 1
          else
            c += 1
          end
        end
        @events = @choices[@choice..-1].find { |evt| evt[0].matches? event }
        @current = 0
        if @events
          # reorder the choices
          old = @choices[@choice]
          idx = @choices.index( @events )
          @choices[@choice] = @events
          @choices[idx] = old
          @choice += 1
        end

        @events = [] unless @events
      end


      def next( event )
        # Find the next series
        next_current(event) unless @events[@current]
        return nil unless @events[@current]

        expand_ref_in( @events, @current ) if @events[@current].class == Ref
        if ( @events[@current].kind_of? State )
          @current += 1
          @events[@current-1].previous = self
          return @events[@current-1].next( event )
        end
        return @previous.pop.next( event ) if @events[@current].nil?
        if ( @events[@current].matches?(event) )
          @current += 1
          if @events[@current].nil?
            return self unless @choices[@choice].nil?
            return @previous.pop
          elsif @events[@current].kind_of? State
            @current += 1
            @events[@current-1].previous = self
            return @events[@current-1]
          else
            return self
          end
        else
          return nil
        end
      end

      def matches?( event )
        return @events[@current].matches?( event ) if @events[@current]
        !@choices[@choice..-1].find{|evt| evt[0].matches?(event)}.nil?
      end

      def expected
        return [@events[@current]] if @events[@current]
        return @choices[@choice..-1].collect do |x|
          if x[0].kind_of? State
            x[0].expected
          else
            x[0]
          end
        end.flatten
      end

      def inspect
        "< #{to_s} #{@choices.collect{|e| e.collect{|f|f.to_s}.join(', ')}.join(' and ')} >"
      end
    end

    class Ref
      def initialize value
        @value = value
      end
      def to_s
        @value
      end
      def inspect
        "{#{to_s}}"
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/validation/validationexception.rb000064400000000221150402106410016747 0ustar00module REXML
  module Validation
    class ValidationException < RuntimeError
      def initialize msg
        super
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/validation/validation.rb000064400000007031150402106410015036 0ustar00require 'rexml/validation/validationexception'

module REXML
  module Validation
    module Validator
      NILEVENT = [ nil ]
      def reset
        @current = @root
        @root.reset
        @root.previous = true
        @attr_stack = []
        self
      end
      def dump
        puts @root.inspect
      end
      def validate( event )
        @attr_stack = [] unless defined? @attr_stack
        match = @current.next(event)
        raise ValidationException.new( "Validation error.  Expected: "+
          @current.expected.join( " or " )+" from #{@current.inspect} "+
          " but got #{Event.new( event[0], event[1] ).inspect}" ) unless match
        @current = match

        # Check for attributes
        case event[0]
        when :start_element
          @attr_stack << event[2]
          begin
            sattr = [:start_attribute, nil]
            eattr = [:end_attribute]
            text = [:text, nil]
            k, = event[2].find { |key,value|
              sattr[1] = key
              m = @current.next( sattr )
              if m
                # If the state has text children...
                if m.matches?( eattr )
                  @current = m
                else
                  text[1] = value
                  m = m.next( text )
                  text[1] = nil
                  return false unless m
                  @current = m if m
                end
                m = @current.next( eattr )
                if m
                  @current = m
                  true
                else
                  false
                end
              else
                false
              end
            }
            event[2].delete(k) if k
          end while k
        when :end_element
          attrs = @attr_stack.pop
          raise ValidationException.new( "Validation error.  Illegal "+
            " attributes: #{attrs.inspect}") if attrs.length > 0
        end
      end
    end

    class Event
      def initialize(event_type, event_arg=nil )
        @event_type = event_type
        @event_arg = event_arg
      end

      attr_reader :event_type
      attr_accessor :event_arg

      def done?
        @done
      end

      def single?
        return (@event_type != :start_element and @event_type != :start_attribute)
      end

      def matches?( event )
        return false unless event[0] == @event_type
        case event[0]
        when nil
          return true
        when :start_element
          return true if event[1] == @event_arg
        when :end_element
          return true
        when :start_attribute
          return true if event[1] == @event_arg
        when :end_attribute
          return true
        when :end_document
          return true
        when :text
          return (@event_arg.nil? or @event_arg == event[1])
=begin
        when :processing_instruction
          false
        when :xmldecl
          false
        when :start_doctype
          false
        when :end_doctype
          false
        when :externalentity
          false
        when :elementdecl
          false
        when :entity
          false
        when :attlistdecl
          false
        when :notationdecl
          false
        when :end_doctype
          false
=end
        else
          false
        end
      end

      def ==( other )
        return false unless other.kind_of? Event
        @event_type == other.event_type and @event_arg == other.event_arg
      end

      def to_s
        inspect
      end

      def inspect
        "#{@event_type.inspect}( #@event_arg )"
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/entity.rb000064400000013041150402106420012065 0ustar00require 'rexml/child'
require 'rexml/source'
require 'rexml/xmltokens'

module REXML
  # God, I hate DTDs.  I really do.  Why this idiot standard still
  # plagues us is beyond me.
  class Entity < Child
    include XMLTokens
    PUBIDCHAR = "\x20\x0D\x0Aa-zA-Z0-9\\-()+,./:=?;!*@$_%#"
    SYSTEMLITERAL = %Q{((?:"[^"]*")|(?:'[^']*'))}
    PUBIDLITERAL = %Q{("[#{PUBIDCHAR}']*"|'[#{PUBIDCHAR}]*')}
    EXTERNALID = "(?:(?:(SYSTEM)\\s+#{SYSTEMLITERAL})|(?:(PUBLIC)\\s+#{PUBIDLITERAL}\\s+#{SYSTEMLITERAL}))"
    NDATADECL = "\\s+NDATA\\s+#{NAME}"
    PEREFERENCE = "%#{NAME};"
    ENTITYVALUE = %Q{((?:"(?:[^%&"]|#{PEREFERENCE}|#{REFERENCE})*")|(?:'([^%&']|#{PEREFERENCE}|#{REFERENCE})*'))}
    PEDEF = "(?:#{ENTITYVALUE}|#{EXTERNALID})"
    ENTITYDEF = "(?:#{ENTITYVALUE}|(?:#{EXTERNALID}(#{NDATADECL})?))"
    PEDECL = "<!ENTITY\\s+(%)\\s+#{NAME}\\s+#{PEDEF}\\s*>"
    GEDECL = "<!ENTITY\\s+#{NAME}\\s+#{ENTITYDEF}\\s*>"
    ENTITYDECL = /\s*(?:#{GEDECL})|(?:#{PEDECL})/um

    attr_reader :name, :external, :ref, :ndata, :pubid

    # Create a new entity.  Simple entities can be constructed by passing a
    # name, value to the constructor; this creates a generic, plain entity
    # reference. For anything more complicated, you have to pass a Source to
    # the constructor with the entity definition, or use the accessor methods.
    # +WARNING+: There is no validation of entity state except when the entity
    # is read from a stream.  If you start poking around with the accessors,
    # you can easily create a non-conformant Entity.  The best thing to do is
    # dump the stupid DTDs and use XMLSchema instead.
    #
    #  e = Entity.new( 'amp', '&' )
    def initialize stream, value=nil, parent=nil, reference=false
      super(parent)
      @ndata = @pubid = @value = @external = nil
      if stream.kind_of? Array
        @name = stream[1]
        if stream[-1] == '%'
          @reference = true
          stream.pop
        else
          @reference = false
        end
        if stream[2] =~ /SYSTEM|PUBLIC/
          @external = stream[2]
          if @external == 'SYSTEM'
            @ref = stream[3]
            @ndata = stream[4] if stream.size == 5
          else
            @pubid = stream[3]
            @ref = stream[4]
          end
        else
          @value = stream[2]
        end
      else
        @reference = reference
        @external = nil
        @name = stream
        @value = value
      end
    end

    # Evaluates whether the given string matches an entity definition,
    # returning true if so, and false otherwise.
    def Entity::matches? string
      (ENTITYDECL =~ string) == 0
    end

    # Evaluates to the unnormalized value of this entity; that is, replacing
    # all entities -- both %ent; and &ent; entities.  This differs from
    # +value()+ in that +value+ only replaces %ent; entities.
    def unnormalized
      document.record_entity_expansion unless document.nil?
      v = value()
      return nil if v.nil?
      @unnormalized = Text::unnormalize(v, parent)
      @unnormalized
    end

    #once :unnormalized

    # Returns the value of this entity unprocessed -- raw.  This is the
    # normalized value; that is, with all %ent; and &ent; entities intact
    def normalized
      @value
    end

    # Write out a fully formed, correct entity definition (assuming the Entity
    # object itself is valid.)
    #
    # out::
    #   An object implementing <TT>&lt;&lt;<TT> to which the entity will be
    #   output
    # indent::
    #   *DEPRECATED* and ignored
    def write out, indent=-1
      out << '<!ENTITY '
      out << '% ' if @reference
      out << @name
      out << ' '
      if @external
        out << @external << ' '
        if @pubid
          q = @pubid.include?('"')?"'":'"'
          out << q << @pubid << q << ' '
        end
        q = @ref.include?('"')?"'":'"'
        out << q << @ref << q
        out << ' NDATA ' << @ndata if @ndata
      else
        q = @value.include?('"')?"'":'"'
        out << q << @value << q
      end
      out << '>'
    end

    # Returns this entity as a string.  See write().
    def to_s
      rv = ''
      write rv
      rv
    end

    PEREFERENCE_RE = /#{PEREFERENCE}/um
    # Returns the value of this entity.  At the moment, only internal entities
    # are processed.  If the value contains internal references (IE,
    # %blah;), those are replaced with their values.  IE, if the doctype
    # contains:
    #  <!ENTITY % foo "bar">
    #  <!ENTITY yada "nanoo %foo; nanoo>
    # then:
    #  doctype.entity('yada').value   #-> "nanoo bar nanoo"
    def value
      if @value
        matches = @value.scan(PEREFERENCE_RE)
        rv = @value.clone
        if @parent
          sum = 0
          matches.each do |entity_reference|
            entity_value = @parent.entity( entity_reference[0] )
            if sum + entity_value.bytesize > Security.entity_expansion_text_limit
              raise "entity expansion has grown too large"
            else
              sum += entity_value.bytesize
            end
            rv.gsub!( /%#{entity_reference.join};/um, entity_value )
          end
        end
        return rv
      end
      nil
    end
  end

  # This is a set of entity constants -- the ones defined in the XML
  # specification.  These are +gt+, +lt+, +amp+, +quot+ and +apos+.
  # CAUTION: these entities does not have parent and document
  module EntityConst
    # +>+
    GT = Entity.new( 'gt', '>' )
    # +<+
    LT = Entity.new( 'lt', '<' )
    # +&+
    AMP = Entity.new( 'amp', '&' )
    # +"+
    QUOT = Entity.new( 'quot', '"' )
    # +'+
    APOS = Entity.new( 'apos', "'" )
  end
end
lib64/ruby/2.2.0/rexml/instruction.rb000064400000004011150402106420013127 0ustar00require "rexml/child"
require "rexml/source"

module REXML
  # Represents an XML Instruction; IE, <? ... ?>
  # TODO: Add parent arg (3rd arg) to constructor
  class Instruction < Child
    START = '<\?'
    STOP = '\?>'

    # target is the "name" of the Instruction; IE, the "tag" in <?tag ...?>
    # content is everything else.
    attr_accessor :target, :content

    # Constructs a new Instruction
    # @param target can be one of a number of things.  If String, then
    # the target of this instruction is set to this.  If an Instruction,
    # then the Instruction is shallowly cloned (target and content are
    # copied).  If a Source, then the source is scanned and parsed for
    # an Instruction declaration.
    # @param content Must be either a String, or a Parent.  Can only
    # be a Parent if the target argument is a Source.  Otherwise, this
    # String is set as the content of this instruction.
    def initialize(target, content=nil)
      if target.kind_of? String
        super()
        @target = target
        @content = content
      elsif target.kind_of? Instruction
        super(content)
        @target = target.target
        @content = target.content
      end
      @content.strip! if @content
    end

    def clone
      Instruction.new self
    end

    # == DEPRECATED
    # See the rexml/formatters package
    #
    def write writer, indent=-1, transitive=false, ie_hack=false
      Kernel.warn( "#{self.class.name}.write is deprecated" )
      indent(writer, indent)
      writer << START.sub(/\\/u, '')
      writer << @target
      writer << ' '
      writer << @content
      writer << STOP.sub(/\\/u, '')
    end

    # @return true if other is an Instruction, and the content and target
    # of the other matches the target and content of this object.
    def ==( other )
      other.kind_of? Instruction and
      other.target == @target and
      other.content == @content
    end

    def node_type
      :processing_instruction
    end

    def inspect
      "<?p-i #{target} ...?>"
    end
  end
end
lib64/ruby/2.2.0/rexml/attribute.rb000064400000012776150402106420012572 0ustar00require "rexml/namespace"
require 'rexml/text'

module REXML
  # Defines an Element Attribute; IE, a attribute=value pair, as in:
  # <element attribute="value"/>.  Attributes can be in their own
  # namespaces.  General users of REXML will not interact with the
  # Attribute class much.
  class Attribute
    include Node
    include Namespace

    # The element to which this attribute belongs
    attr_reader :element
    # The normalized value of this attribute.  That is, the attribute with
    # entities intact.
    attr_writer :normalized
    PATTERN = /\s*(#{NAME_STR})\s*=\s*(["'])(.*?)\2/um

    NEEDS_A_SECOND_CHECK = /(<|&((#{Entity::NAME});|(#0*((?:\d+)|(?:x[a-fA-F0-9]+)));)?)/um

    # Constructor.
    # FIXME: The parser doesn't catch illegal characters in attributes
    #
    # first::
    #   Either: an Attribute, which this new attribute will become a
    #   clone of; or a String, which is the name of this attribute
    # second::
    #   If +first+ is an Attribute, then this may be an Element, or nil.
    #   If nil, then the Element parent of this attribute is the parent
    #   of the +first+ Attribute.  If the first argument is a String,
    #   then this must also be a String, and is the content of the attribute.
    #   If this is the content, it must be fully normalized (contain no
    #   illegal characters).
    # parent::
    #   Ignored unless +first+ is a String; otherwise, may be the Element
    #   parent of this attribute, or nil.
    #
    #
    #  Attribute.new( attribute_to_clone )
    #  Attribute.new( attribute_to_clone, parent_element )
    #  Attribute.new( "attr", "attr_value" )
    #  Attribute.new( "attr", "attr_value", parent_element )
    def initialize( first, second=nil, parent=nil )
      @normalized = @unnormalized = @element = nil
      if first.kind_of? Attribute
        self.name = first.expanded_name
        @unnormalized = first.value
        if second.kind_of? Element
          @element = second
        else
          @element = first.element
        end
      elsif first.kind_of? String
        @element = parent
        self.name = first
        @normalized = second.to_s
      else
        raise "illegal argument #{first.class.name} to Attribute constructor"
      end
    end

    # Returns the namespace of the attribute.
    #
    #  e = Element.new( "elns:myelement" )
    #  e.add_attribute( "nsa:a", "aval" )
    #  e.add_attribute( "b", "bval" )
    #  e.attributes.get_attribute( "a" ).prefix   # -> "nsa"
    #  e.attributes.get_attribute( "b" ).prefix   # -> "elns"
    #  a = Attribute.new( "x", "y" )
    #  a.prefix                                   # -> ""
    def prefix
      pf = super
      if pf == ""
        pf = @element.prefix if @element
      end
      pf
    end

    # Returns the namespace URL, if defined, or nil otherwise
    #
    #  e = Element.new("el")
    #  e.add_namespace("ns", "http://url")
    #  e.add_attribute("ns:a", "b")
    #  e.add_attribute("nsx:a", "c")
    #  e.attribute("ns:a").namespace # => "http://url"
    #  e.attribute("nsx:a").namespace # => nil
    def namespace arg=nil
      arg = prefix if arg.nil?
      @element.namespace arg
    end

    # Returns true if other is an Attribute and has the same name and value,
    # false otherwise.
    def ==( other )
      other.kind_of?(Attribute) and other.name==name and other.value==value
    end

    # Creates (and returns) a hash from both the name and value
    def hash
      name.hash + value.hash
    end

    # Returns this attribute out as XML source, expanding the name
    #
    #  a = Attribute.new( "x", "y" )
    #  a.to_string     # -> "x='y'"
    #  b = Attribute.new( "ns:x", "y" )
    #  b.to_string     # -> "ns:x='y'"
    def to_string
      if @element and @element.context and @element.context[:attribute_quote] == :quote
        %Q^#@expanded_name="#{to_s().gsub(/"/, '&quot;')}"^
      else
        "#@expanded_name='#{to_s().gsub(/'/, '&apos;')}'"
      end
    end

    def doctype
      if @element
        doc = @element.document
        doc.doctype if doc
      end
    end

    # Returns the attribute value, with entities replaced
    def to_s
      return @normalized if @normalized

      @normalized = Text::normalize( @unnormalized, doctype )
      @unnormalized = nil
      @normalized
    end

    # Returns the UNNORMALIZED value of this attribute.  That is, entities
    # have been expanded to their values
    def value
      return @unnormalized if @unnormalized
      @unnormalized = Text::unnormalize( @normalized, doctype )
      @normalized = nil
      @unnormalized
    end

    # Returns a copy of this attribute
    def clone
      Attribute.new self
    end

    # Sets the element of which this object is an attribute.  Normally, this
    # is not directly called.
    #
    # Returns this attribute
    def element=( element )
      @element = element

      if @normalized
        Text.check( @normalized, NEEDS_A_SECOND_CHECK, doctype )
      end

      self
    end

    # Removes this Attribute from the tree, and returns true if successful
    #
    # This method is usually not called directly.
    def remove
      @element.attributes.delete self.name unless @element.nil?
    end

    # Writes this attribute (EG, puts 'key="value"' to the output)
    def write( output, indent=-1 )
      output << to_string
    end

    def node_type
      :attribute
    end

    def inspect
      rv = ""
      write( rv )
      rv
    end

    def xpath
      path = @element.xpath
      path += "/@#{self.expanded_name}"
      return path
    end
  end
end
#vim:ts=2 sw=2 noexpandtab:
lib64/ruby/2.2.0/rexml/functions.rb000064400000026417150402106420012574 0ustar00module REXML
  # If you add a method, keep in mind two things:
  # (1) the first argument will always be a list of nodes from which to
  # filter.  In the case of context methods (such as position), the function
  # should return an array with a value for each child in the array.
  # (2) all method calls from XML will have "-" replaced with "_".
  # Therefore, in XML, "local-name()" is identical (and actually becomes)
  # "local_name()"
  module Functions
    @@context = nil
    @@namespace_context = {}
    @@variables = {}

    def Functions::namespace_context=(x) ; @@namespace_context=x ; end
    def Functions::variables=(x) ; @@variables=x ; end
    def Functions::namespace_context ; @@namespace_context ; end
    def Functions::variables ; @@variables ; end

    def Functions::context=(value); @@context = value; end

    def Functions::text( )
      if @@context[:node].node_type == :element
        return @@context[:node].find_all{|n| n.node_type == :text}.collect{|n| n.value}
      elsif @@context[:node].node_type == :text
        return @@context[:node].value
      else
        return false
      end
    end

    # Returns the last node of the given list of nodes.
    def Functions::last( )
      @@context[:size]
    end

    def Functions::position( )
      @@context[:index]
    end

    # Returns the size of the given list of nodes.
    def Functions::count( node_set )
      node_set.size
    end

    # Since REXML is non-validating, this method is not implemented as it
    # requires a DTD
    def Functions::id( object )
    end

    # UNTESTED
    def Functions::local_name( node_set=nil )
      get_namespace( node_set ) do |node|
        return node.local_name
      end
    end

    def Functions::namespace_uri( node_set=nil )
      get_namespace( node_set ) {|node| node.namespace}
    end

    def Functions::name( node_set=nil )
      get_namespace( node_set ) do |node|
        node.expanded_name
      end
    end

    # Helper method.
    def Functions::get_namespace( node_set = nil )
      if node_set == nil
        yield @@context[:node] if defined? @@context[:node].namespace
      else
        if node_set.respond_to? :each
          node_set.each { |node| yield node if defined? node.namespace }
        elsif node_set.respond_to? :namespace
          yield node_set
        end
      end
    end

    # A node-set is converted to a string by returning the string-value of the
    # node in the node-set that is first in document order. If the node-set is
    # empty, an empty string is returned.
    #
    # A number is converted to a string as follows
    #
    # NaN is converted to the string NaN
    #
    # positive zero is converted to the string 0
    #
    # negative zero is converted to the string 0
    #
    # positive infinity is converted to the string Infinity
    #
    # negative infinity is converted to the string -Infinity
    #
    # if the number is an integer, the number is represented in decimal form
    # as a Number with no decimal point and no leading zeros, preceded by a
    # minus sign (-) if the number is negative
    #
    # otherwise, the number is represented in decimal form as a Number
    # including a decimal point with at least one digit before the decimal
    # point and at least one digit after the decimal point, preceded by a
    # minus sign (-) if the number is negative; there must be no leading zeros
    # before the decimal point apart possibly from the one required digit
    # immediately before the decimal point; beyond the one required digit
    # after the decimal point there must be as many, but only as many, more
    # digits as are needed to uniquely distinguish the number from all other
    # IEEE 754 numeric values.
    #
    # The boolean false value is converted to the string false. The boolean
    # true value is converted to the string true.
    #
    # An object of a type other than the four basic types is converted to a
    # string in a way that is dependent on that type.
    def Functions::string( object=nil )
      #object = @context unless object
      if object.instance_of? Array
        string( object[0] )
      elsif defined? object.node_type
        if object.node_type == :attribute
          object.value
        elsif object.node_type == :element || object.node_type == :document
          string_value(object)
        else
          object.to_s
        end
      elsif object.nil?
        return ""
      else
        object.to_s
      end
    end

    # A node-set is converted to a string by
    # returning the concatenation of the string-value
    # of each of the children of the node in the
    # node-set that is first in document order.
    # If the node-set is empty, an empty string is returned.
    def Functions::string_value( o )
      rv = ""
      o.children.each { |e|
        if e.node_type == :text
          rv << e.to_s
        elsif e.node_type == :element
          rv << string_value( e )
        end
      }
      rv
    end

    # UNTESTED
    def Functions::concat( *objects )
      objects.join
    end

    # Fixed by Mike Stok
    def Functions::starts_with( string, test )
      string(string).index(string(test)) == 0
    end

    # Fixed by Mike Stok
    def Functions::contains( string, test )
      string(string).include?(string(test))
    end

    # Kouhei fixed this
    def Functions::substring_before( string, test )
      ruby_string = string(string)
      ruby_index = ruby_string.index(string(test))
      if ruby_index.nil?
        ""
      else
        ruby_string[ 0...ruby_index ]
      end
    end

    # Kouhei fixed this too
    def Functions::substring_after( string, test )
      ruby_string = string(string)
      return $1 if ruby_string =~ /#{test}(.*)/
      ""
    end

    # Take equal portions of Mike Stok and Sean Russell; mix
    # vigorously, and pour into a tall, chilled glass.  Serves 10,000.
    def Functions::substring( string, start, length=nil )
      ruby_string = string(string)
      ruby_length = if length.nil?
                      ruby_string.length.to_f
                    else
                      number(length)
                    end
      ruby_start = number(start)

      # Handle the special cases
      return '' if (
        ruby_length.nan? or
        ruby_start.nan? or
        ruby_start.infinite?
      )

      infinite_length = ruby_length.infinite? == 1
      ruby_length = ruby_string.length if infinite_length

      # Now, get the bounds.  The XPath bounds are 1..length; the ruby bounds
      # are 0..length.  Therefore, we have to offset the bounds by one.
      ruby_start = ruby_start.round - 1
      ruby_length = ruby_length.round

      if ruby_start < 0
       ruby_length += ruby_start unless infinite_length
       ruby_start = 0
      end
      return '' if ruby_length <= 0
      ruby_string[ruby_start,ruby_length]
    end

    # UNTESTED
    def Functions::string_length( string )
      string(string).length
    end

    # UNTESTED
    def Functions::normalize_space( string=nil )
      string = string(@@context[:node]) if string.nil?
      if string.kind_of? Array
        string.collect{|x| string.to_s.strip.gsub(/\s+/um, ' ') if string}
      else
        string.to_s.strip.gsub(/\s+/um, ' ')
      end
    end

    # This is entirely Mike Stok's beast
    def Functions::translate( string, tr1, tr2 )
      from = string(tr1)
      to = string(tr2)

      # the map is our translation table.
      #
      # if a character occurs more than once in the
      # from string then we ignore the second &
      # subsequent mappings
      #
      # if a character maps to nil then we delete it
      # in the output.  This happens if the from
      # string is longer than the to string
      #
      # there's nothing about - or ^ being special in
      # http://www.w3.org/TR/xpath#function-translate
      # so we don't build ranges or negated classes

      map = Hash.new
      0.upto(from.length - 1) { |pos|
        from_char = from[pos]
        unless map.has_key? from_char
          map[from_char] =
          if pos < to.length
            to[pos]
          else
            nil
          end
        end
      }

      if ''.respond_to? :chars
        string(string).chars.collect { |c|
          if map.has_key? c then map[c] else c end
        }.compact.join
      else
        string(string).unpack('U*').collect { |c|
          if map.has_key? c then map[c] else c end
        }.compact.pack('U*')
      end
    end

    # UNTESTED
    def Functions::boolean( object=nil )
      if object.kind_of? String
        if object =~ /\d+/u
          return object.to_f != 0
        else
          return object.size > 0
        end
      elsif object.kind_of? Array
        object = object.find{|x| x and true}
      end
      return object ? true : false
    end

    # UNTESTED
    def Functions::not( object )
      not boolean( object )
    end

    # UNTESTED
    def Functions::true( )
      true
    end

    # UNTESTED
    def Functions::false(  )
      false
    end

    # UNTESTED
    def Functions::lang( language )
      lang = false
      node = @@context[:node]
      attr = nil
      until node.nil?
        if node.node_type == :element
          attr = node.attributes["xml:lang"]
          unless attr.nil?
            lang = compare_language(string(language), attr)
            break
          else
          end
        end
        node = node.parent
      end
      lang
    end

    def Functions::compare_language lang1, lang2
      lang2.downcase.index(lang1.downcase) == 0
    end

    # a string that consists of optional whitespace followed by an optional
    # minus sign followed by a Number followed by whitespace is converted to
    # the IEEE 754 number that is nearest (according to the IEEE 754
    # round-to-nearest rule) to the mathematical value represented by the
    # string; any other string is converted to NaN
    #
    # boolean true is converted to 1; boolean false is converted to 0
    #
    # a node-set is first converted to a string as if by a call to the string
    # function and then converted in the same way as a string argument
    #
    # an object of a type other than the four basic types is converted to a
    # number in a way that is dependent on that type
    def Functions::number( object=nil )
      object = @@context[:node] unless object
      case object
      when true
        Float(1)
      when false
        Float(0)
      when Array
        number(string( object ))
      when Numeric
        object.to_f
      else
        str = string( object )
        # If XPath ever gets scientific notation...
        #if str =~ /^\s*-?(\d*\.?\d+|\d+\.)([Ee]\d*)?\s*$/
        if str =~ /^\s*-?(\d*\.?\d+|\d+\.)\s*$/
          str.to_f
        else
          (0.0 / 0.0)
        end
      end
    end

    def Functions::sum( nodes )
      nodes = [nodes] unless nodes.kind_of? Array
      nodes.inject(0) { |r,n| r + number(string(n)) }
    end

    def Functions::floor( number )
      number(number).floor
    end

    def Functions::ceiling( number )
      number(number).ceil
    end

    def Functions::round( number )
      begin
        number(number).round
      rescue FloatDomainError
        number(number)
      end
    end

    def Functions::processing_instruction( node )
      node.node_type == :processing_instruction
    end

    def Functions::method_missing( id )
      puts "METHOD MISSING #{id.id2name}"
      XPath.match( @@context[:node], id.id2name )
    end
  end
end
lib64/ruby/2.2.0/rexml/output.rb000064400000001007150402106420012110 0ustar00require 'rexml/encoding'

module REXML
  class Output
    include Encoding

    attr_reader :encoding

    def initialize real_IO, encd="iso-8859-1"
      @output = real_IO
      self.encoding = encd

      @to_utf = encoding != 'UTF-8'

      if encoding == "UTF-16"
        @output << "\ufeff".encode("UTF-16BE")
        self.encoding = "UTF-16BE"
      end
    end

    def <<( content )
      @output << (@to_utf ? self.encode(content) : content)
    end

    def to_s
      "Output[#{encoding}]"
    end
  end
end
lib64/ruby/2.2.0/rexml/xpath_parser.rb000064400000050637150402106420013265 0ustar00require 'rexml/namespace'
require 'rexml/xmltokens'
require 'rexml/attribute'
require 'rexml/syncenumerator'
require 'rexml/parsers/xpathparser'

class Object
  # provides a unified +clone+ operation, for REXML::XPathParser
  # to use across multiple Object types
  def dclone
    clone
  end
end
class Symbol
  # provides a unified +clone+ operation, for REXML::XPathParser
  # to use across multiple Object types
  def dclone ; self ; end
end
class Fixnum
  # provides a unified +clone+ operation, for REXML::XPathParser
  # to use across multiple Object types
  def dclone ; self ; end
end
class Float
  # provides a unified +clone+ operation, for REXML::XPathParser
  # to use across multiple Object types
  def dclone ; self ; end
end
class Array
  # provides a unified +clone+ operation, for REXML::XPathParser
  # to use across multiple Object+ types
  def dclone
    klone = self.clone
    klone.clear
    self.each{|v| klone << v.dclone}
    klone
  end
end

module REXML
  # You don't want to use this class.  Really.  Use XPath, which is a wrapper
  # for this class.  Believe me.  You don't want to poke around in here.
  # There is strange, dark magic at work in this code.  Beware.  Go back!  Go
  # back while you still can!
  class XPathParser
    include XMLTokens
    LITERAL    = /^'([^']*)'|^"([^"]*)"/u

    def initialize( )
      @parser = REXML::Parsers::XPathParser.new
      @namespaces = nil
      @variables = {}
    end

    def namespaces=( namespaces={} )
      Functions::namespace_context = namespaces
      @namespaces = namespaces
    end

    def variables=( vars={} )
      Functions::variables = vars
      @variables = vars
    end

    def parse path, nodeset
      path_stack = @parser.parse( path )
      match( path_stack, nodeset )
    end

    def get_first path, nodeset
      path_stack = @parser.parse( path )
      first( path_stack, nodeset )
    end

    def predicate path, nodeset
      path_stack = @parser.parse( path )
      expr( path_stack, nodeset )
    end

    def []=( variable_name, value )
      @variables[ variable_name ] = value
    end


    # Performs a depth-first (document order) XPath search, and returns the
    # first match.  This is the fastest, lightest way to return a single result.
    #
    # FIXME: This method is incomplete!
    def first( path_stack, node )
      return nil if path.size == 0

      case path[0]
      when :document
        # do nothing
        return first( path[1..-1], node )
      when :child
        for c in node.children
          r = first( path[1..-1], c )
          return r if r
        end
      when :qname
        name = path[2]
        if node.name == name
          return node if path.size == 3
          return first( path[3..-1], node )
        else
          return nil
        end
      when :descendant_or_self
        r = first( path[1..-1], node )
        return r if r
        for c in node.children
          r = first( path, c )
          return r if r
        end
      when :node
        return first( path[1..-1], node )
      when :any
        return first( path[1..-1], node )
      end
      return nil
    end


    def match( path_stack, nodeset )
      r = expr( path_stack, nodeset )
      r
    end

    private


    # Returns a String namespace for a node, given a prefix
    # The rules are:
    #
    #  1. Use the supplied namespace mapping first.
    #  2. If no mapping was supplied, use the context node to look up the namespace
    def get_namespace( node, prefix )
      if @namespaces
        return @namespaces[prefix] || ''
      else
        return node.namespace( prefix ) if node.node_type == :element
        return ''
      end
    end


    # Expr takes a stack of path elements and a set of nodes (either a Parent
    # or an Array and returns an Array of matching nodes
    ALL = [ :attribute, :element, :text, :processing_instruction, :comment ]
    ELEMENTS = [ :element ]
    def expr( path_stack, nodeset, context=nil )
      node_types = ELEMENTS
      return nodeset if path_stack.length == 0 || nodeset.length == 0
      while path_stack.length > 0
        if nodeset.length == 0
          path_stack.clear
          return []
        end
        case (op = path_stack.shift)
        when :document
          nodeset = [ nodeset[0].root_node ]

        when :qname
          prefix = path_stack.shift
          name = path_stack.shift
          nodeset.delete_if do |node|
            # FIXME: This DOUBLES the time XPath searches take
            ns = get_namespace( node, prefix )
            if node.node_type == :element
              if node.name == name
              end
            end
            !(node.node_type == :element and
              node.name == name and
              node.namespace == ns )
          end
          node_types = ELEMENTS

        when :any
          nodeset.delete_if { |node| !node_types.include?(node.node_type) }

        when :self
          # This space left intentionally blank

        when :processing_instruction
          target = path_stack.shift
          nodeset.delete_if do |node|
            (node.node_type != :processing_instruction) or
            ( target!='' and ( node.target != target ) )
          end

        when :text
          nodeset.delete_if { |node| node.node_type != :text }

        when :comment
          nodeset.delete_if { |node| node.node_type != :comment }

        when :node
          # This space left intentionally blank
          node_types = ALL

        when :child
          new_nodeset = []
          nt = nil
          nodeset.each do |node|
            nt = node.node_type
            new_nodeset += node.children if nt == :element or nt == :document
          end
          nodeset = new_nodeset
          node_types = ELEMENTS

        when :literal
          return path_stack.shift

        when :attribute
          new_nodeset = []
          case path_stack.shift
          when :qname
            prefix = path_stack.shift
            name = path_stack.shift
            for element in nodeset
              if element.node_type == :element
                attrib = element.attribute( name, get_namespace(element, prefix) )
                new_nodeset << attrib if attrib
              end
            end
          when :any
            for element in nodeset
              if element.node_type == :element
                new_nodeset += element.attributes.to_a
              end
            end
          end
          nodeset = new_nodeset

        when :parent
          nodeset = nodeset.collect{|n| n.parent}.compact
          #nodeset = expr(path_stack.dclone, nodeset.collect{|n| n.parent}.compact)
          node_types = ELEMENTS

        when :ancestor
          new_nodeset = []
          nodeset.each do |node|
            while node.parent
              node = node.parent
              new_nodeset << node unless new_nodeset.include? node
            end
          end
          nodeset = new_nodeset
          node_types = ELEMENTS

        when :ancestor_or_self
          new_nodeset = []
          nodeset.each do |node|
            if node.node_type == :element
              new_nodeset << node
              while ( node.parent )
                node = node.parent
                new_nodeset << node unless new_nodeset.include? node
              end
            end
          end
          nodeset = new_nodeset
          node_types = ELEMENTS

        when :predicate
          new_nodeset = []
          subcontext = { :size => nodeset.size }
          pred = path_stack.shift
          nodeset.each_with_index { |node, index|
            subcontext[ :node ] = node
            subcontext[ :index ] = index+1
            pc = pred.dclone
            result = expr( pc, [node], subcontext )
            result = result[0] if result.kind_of? Array and result.length == 1
            if result.kind_of? Numeric
              new_nodeset << node if result == (index+1)
            elsif result.instance_of? Array
              if result.size > 0 and result.inject(false) {|k,s| s or k}
                new_nodeset << node if result.size > 0
              end
            else
              new_nodeset << node if result
            end
          }
          nodeset = new_nodeset
=begin
          predicate = path_stack.shift
          ns = nodeset.clone
          result = expr( predicate, ns )
          if result.kind_of? Array
            nodeset = result.zip(ns).collect{|m,n| n if m}.compact
          else
            nodeset = result ? nodeset : []
          end
=end

        when :descendant_or_self
          rv = descendant_or_self( path_stack, nodeset )
          path_stack.clear
          nodeset = rv
          node_types = ELEMENTS

        when :descendant
          results = []
          nt = nil
          nodeset.each do |node|
            nt = node.node_type
            results += expr( path_stack.dclone.unshift( :descendant_or_self ),
              node.children ) if nt == :element or nt == :document
          end
          nodeset = results
          node_types = ELEMENTS

        when :following_sibling
          results = []
          nodeset.each do |node|
            next if node.parent.nil?
            all_siblings = node.parent.children
            current_index = all_siblings.index( node )
            following_siblings = all_siblings[ current_index+1 .. -1 ]
            results += expr( path_stack.dclone, following_siblings )
          end
          nodeset = results

        when :preceding_sibling
          results = []
          nodeset.each do |node|
            next if node.parent.nil?
            all_siblings = node.parent.children
            current_index = all_siblings.index( node )
            preceding_siblings = all_siblings[ 0, current_index ].reverse
            results += preceding_siblings
          end
          nodeset = results
          node_types = ELEMENTS

        when :preceding
          new_nodeset = []
          nodeset.each do |node|
            new_nodeset += preceding( node )
          end
          nodeset = new_nodeset
          node_types = ELEMENTS

        when :following
          new_nodeset = []
          nodeset.each do |node|
            new_nodeset += following( node )
          end
          nodeset = new_nodeset
          node_types = ELEMENTS

        when :namespace
          new_nodeset = []
          prefix = path_stack.shift
          nodeset.each do |node|
            if (node.node_type == :element or node.node_type == :attribute)
              if @namespaces
                namespaces = @namespaces
              elsif (node.node_type == :element)
                namespaces = node.namespaces
              else
                namespaces = node.element.namesapces
              end
              if (node.namespace == namespaces[prefix])
                new_nodeset << node
              end
            end
          end
          nodeset = new_nodeset

        when :variable
          var_name = path_stack.shift
          return @variables[ var_name ]

        # :and, :or, :eq, :neq, :lt, :lteq, :gt, :gteq
        # TODO: Special case for :or and :and -- not evaluate the right
        # operand if the left alone determines result (i.e. is true for
        # :or and false for :and).
        when :eq, :neq, :lt, :lteq, :gt, :gteq, :or
          left = expr( path_stack.shift, nodeset.dup, context )
          right = expr( path_stack.shift, nodeset.dup, context )
          res = equality_relational_compare( left, op, right )
          return res

        when :and
          left = expr( path_stack.shift, nodeset.dup, context )
          return [] unless left
          if left.respond_to?(:inject) and !left.inject(false) {|a,b| a | b}
            return []
          end
          right = expr( path_stack.shift, nodeset.dup, context )
          res = equality_relational_compare( left, op, right )
          return res

        when :div
          left = Functions::number(expr(path_stack.shift, nodeset, context)).to_f
          right = Functions::number(expr(path_stack.shift, nodeset, context)).to_f
          return (left / right)

        when :mod
          left = Functions::number(expr(path_stack.shift, nodeset, context )).to_f
          right = Functions::number(expr(path_stack.shift, nodeset, context )).to_f
          return (left % right)

        when :mult
          left = Functions::number(expr(path_stack.shift, nodeset, context )).to_f
          right = Functions::number(expr(path_stack.shift, nodeset, context )).to_f
          return (left * right)

        when :plus
          left = Functions::number(expr(path_stack.shift, nodeset, context )).to_f
          right = Functions::number(expr(path_stack.shift, nodeset, context )).to_f
          return (left + right)

        when :minus
          left = Functions::number(expr(path_stack.shift, nodeset, context )).to_f
          right = Functions::number(expr(path_stack.shift, nodeset, context )).to_f
          return (left - right)

        when :union
          left = expr( path_stack.shift, nodeset, context )
          right = expr( path_stack.shift, nodeset, context )
          return (left | right)

        when :neg
          res = expr( path_stack, nodeset, context )
          return -(res.to_f)

        when :not
        when :function
          func_name = path_stack.shift.tr('-','_')
          arguments = path_stack.shift
          subcontext = context ? nil : { :size => nodeset.size }

          res = []
          cont = context
          nodeset.each_with_index { |n, i|
            if subcontext
              subcontext[:node]  = n
              subcontext[:index] = i
              cont = subcontext
            end
            arg_clone = arguments.dclone
            args = arg_clone.collect { |arg|
              expr( arg, [n], cont )
            }
            Functions.context = cont
            res << Functions.send( func_name, *args )
          }
          return res

        end
      end # while
      return nodeset
    end


    ##########################################################
    # FIXME
    # The next two methods are BAD MOJO!
    # This is my achilles heel.  If anybody thinks of a better
    # way of doing this, be my guest.  This really sucks, but
    # it is a wonder it works at all.
    # ########################################################

    def descendant_or_self( path_stack, nodeset )
      rs = []
      d_o_s( path_stack, nodeset, rs )
      document_order(rs.flatten.compact)
      #rs.flatten.compact
    end

    def d_o_s( p, ns, r )
      nt = nil
      ns.each_index do |i|
        n = ns[i]
        x = expr( p.dclone, [ n ] )
        nt = n.node_type
        d_o_s( p, n.children, x ) if nt == :element or nt == :document and n.children.size > 0
        r.concat(x) if x.size > 0
      end
    end


    # Reorders an array of nodes so that they are in document order
    # It tries to do this efficiently.
    #
    # FIXME: I need to get rid of this, but the issue is that most of the XPath
    # interpreter functions as a filter, which means that we lose context going
    # in and out of function calls.  If I knew what the index of the nodes was,
    # I wouldn't have to do this.  Maybe add a document IDX for each node?
    # Problems with mutable documents.  Or, rewrite everything.
    def document_order( array_of_nodes )
      new_arry = []
      array_of_nodes.each { |node|
        node_idx = []
        np = node.node_type == :attribute ? node.element : node
        while np.parent and np.parent.node_type == :element
          node_idx << np.parent.index( np )
          np = np.parent
        end
        new_arry << [ node_idx.reverse, node ]
      }
      new_arry.sort{ |s1, s2| s1[0] <=> s2[0] }.collect{ |s| s[1] }
    end


    def recurse( nodeset, &block )
      for node in nodeset
        yield node
        recurse( node, &block ) if node.node_type == :element
      end
    end



    # Builds a nodeset of all of the preceding nodes of the supplied node,
    # in reverse document order
    # preceding:: includes every element in the document that precedes this node,
    # except for ancestors
    def preceding( node )
      ancestors = []
      p = node.parent
      while p
        ancestors << p
        p = p.parent
      end

      acc = []
      p = preceding_node_of( node )
      while p
        if ancestors.include? p
          ancestors.delete(p)
        else
          acc << p
        end
        p = preceding_node_of( p )
      end
      acc
    end

    def preceding_node_of( node )
      psn = node.previous_sibling_node
      if psn.nil?
        if node.parent.nil? or node.parent.class == Document
          return nil
        end
        return node.parent
        #psn = preceding_node_of( node.parent )
      end
      while psn and psn.kind_of? Element and psn.children.size > 0
        psn = psn.children[-1]
      end
      psn
    end

    def following( node )
      acc = []
      p = next_sibling_node( node )
      while p
        acc << p
        p = following_node_of( p )
      end
      acc
    end

    def following_node_of( node )
      if node.kind_of? Element and node.children.size > 0
        return node.children[0]
      end
      return next_sibling_node(node)
    end

    def next_sibling_node(node)
      psn = node.next_sibling_node
      while psn.nil?
        if node.parent.nil? or node.parent.class == Document
          return nil
        end
        node = node.parent
        psn = node.next_sibling_node
      end
      return psn
    end

    def norm b
      case b
      when true, false
        return b
      when 'true', 'false'
        return Functions::boolean( b )
      when /^\d+(\.\d+)?$/
        return Functions::number( b )
      else
        return Functions::string( b )
      end
    end

    def equality_relational_compare( set1, op, set2 )
      if set1.kind_of? Array and set2.kind_of? Array
        if set1.size == 1 and set2.size == 1
          set1 = set1[0]
          set2 = set2[0]
        elsif set1.size == 0 or set2.size == 0
          nd = set1.size==0 ? set2 : set1
          rv = nd.collect { |il| compare( il, op, nil ) }
          return rv
        else
          res = []
          SyncEnumerator.new( set1, set2 ).each { |i1, i2|
            i1 = norm( i1 )
            i2 = norm( i2 )
            res << compare( i1, op, i2 )
          }
          return res
        end
      end
      # If one is nodeset and other is number, compare number to each item
      # in nodeset s.t. number op number(string(item))
      # If one is nodeset and other is string, compare string to each item
      # in nodeset s.t. string op string(item)
      # If one is nodeset and other is boolean, compare boolean to each item
      # in nodeset s.t. boolean op boolean(item)
      if set1.kind_of? Array or set2.kind_of? Array
        if set1.kind_of? Array
          a = set1
          b = set2
        else
          a = set2
          b = set1
        end

        case b
        when true, false
          return a.collect {|v| compare( Functions::boolean(v), op, b ) }
        when Numeric
          return a.collect {|v| compare( Functions::number(v), op, b )}
        when /^\d+(\.\d+)?$/
          b = Functions::number( b )
          return a.collect {|v| compare( Functions::number(v), op, b )}
        else
          b = Functions::string( b )
          return a.collect { |v| compare( Functions::string(v), op, b ) }
        end
      else
        # If neither is nodeset,
        #   If op is = or !=
        #     If either boolean, convert to boolean
        #     If either number, convert to number
        #     Else, convert to string
        #   Else
        #     Convert both to numbers and compare
        s1 = set1.to_s
        s2 = set2.to_s
        if s1 == 'true' or s1 == 'false' or s2 == 'true' or s2 == 'false'
          set1 = Functions::boolean( set1 )
          set2 = Functions::boolean( set2 )
        else
          if op == :eq or op == :neq
            if s1 =~ /^\d+(\.\d+)?$/ or s2 =~ /^\d+(\.\d+)?$/
              set1 = Functions::number( s1 )
              set2 = Functions::number( s2 )
            else
              set1 = Functions::string( set1 )
              set2 = Functions::string( set2 )
            end
          else
            set1 = Functions::number( set1 )
            set2 = Functions::number( set2 )
          end
        end
        return compare( set1, op, set2 )
      end
      return false
    end

    def compare a, op, b
      case op
      when :eq
        a == b
      when :neq
        a != b
      when :lt
        a < b
      when :lteq
        a <= b
      when :gt
        a > b
      when :gteq
        a >= b
      when :and
        a and b
      when :or
        a or b
      else
        false
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/attlistdecl.rb000064400000003614150402106420013072 0ustar00#vim:ts=2 sw=2 noexpandtab:
require 'rexml/child'
require 'rexml/source'

module REXML
  # This class needs:
  # * Documentation
  # * Work!  Not all types of attlists are intelligently parsed, so we just
  # spew back out what we get in.  This works, but it would be better if
  # we formatted the output ourselves.
  #
  # AttlistDecls provide *just* enough support to allow namespace
  # declarations.  If you need some sort of generalized support, or have an
  # interesting idea about how to map the hideous, terrible design of DTD
  # AttlistDecls onto an intuitive Ruby interface, let me know.  I'm desperate
  # for anything to make DTDs more palateable.
  class AttlistDecl < Child
    include Enumerable

    # What is this?  Got me.
    attr_reader :element_name

    # Create an AttlistDecl, pulling the information from a Source.  Notice
    # that this isn't very convenient; to create an AttlistDecl, you basically
    # have to format it yourself, and then have the initializer parse it.
    # Sorry, but for the forseeable future, DTD support in REXML is pretty
    # weak on convenience.  Have I mentioned how much I hate DTDs?
    def initialize(source)
      super()
      if (source.kind_of? Array)
        @element_name, @pairs, @contents = *source
      end
    end

    # Access the attlist attribute/value pairs.
    #  value = attlist_decl[ attribute_name ]
    def [](key)
      @pairs[key]
    end

    # Whether an attlist declaration includes the given attribute definition
    #  if attlist_decl.include? "xmlns:foobar"
    def include?(key)
      @pairs.keys.include? key
    end

    # Iterate over the key/value pairs:
    #  attlist_decl.each { |attribute_name, attribute_value| ... }
    def each(&block)
      @pairs.each(&block)
    end

    # Write out exactly what we got in.
    def write out, indent=-1
      out << @contents
    end

    def node_type
      :attlistdecl
    end
  end
end
lib64/ruby/2.2.0/rexml/child.rb000064400000005203150402106420011635 0ustar00require "rexml/node"

module REXML
  ##
  # A Child object is something contained by a parent, and this class
  # contains methods to support that.  Most user code will not use this
  # class directly.
  class Child
    include Node
    attr_reader :parent         # The Parent of this object

    # Constructor.  Any inheritors of this class should call super to make
    # sure this method is called.
    # parent::
    #   if supplied, the parent of this child will be set to the
    #   supplied value, and self will be added to the parent
    def initialize( parent = nil )
      @parent = nil
      # Declare @parent, but don't define it.  The next line sets the
      # parent.
      parent.add( self ) if parent
    end

    # Replaces this object with another object.  Basically, calls
    # Parent.replace_child
    #
    # Returns:: self
    def replace_with( child )
      @parent.replace_child( self, child )
      self
    end

    # Removes this child from the parent.
    #
    # Returns:: self
    def remove
      unless @parent.nil?
        @parent.delete self
      end
      self
    end

    # Sets the parent of this child to the supplied argument.
    #
    # other::
    #   Must be a Parent object.  If this object is the same object as the
    #   existing parent of this child, no action is taken. Otherwise, this
    #   child is removed from the current parent (if one exists), and is added
    #   to the new parent.
    # Returns:: The parent added
    def parent=( other )
      return @parent if @parent == other
      @parent.delete self if defined? @parent and @parent
      @parent = other
    end

    alias :next_sibling :next_sibling_node
    alias :previous_sibling :previous_sibling_node

    # Sets the next sibling of this child.  This can be used to insert a child
    # after some other child.
    #  a = Element.new("a")
    #  b = a.add_element("b")
    #  c = Element.new("c")
    #  b.next_sibling = c
    #  # => <a><b/><c/></a>
    def next_sibling=( other )
      parent.insert_after self, other
    end

    # Sets the previous sibling of this child.  This can be used to insert a
    # child before some other child.
    #  a = Element.new("a")
    #  b = a.add_element("b")
    #  c = Element.new("c")
    #  b.previous_sibling = c
    #  # => <a><b/><c/></a>
    def previous_sibling=(other)
      parent.insert_before self, other
    end

    # Returns:: the document this child belongs to, or nil if this child
    # belongs to no document
    def document
      return parent.document unless parent.nil?
      nil
    end

    # This doesn't yet handle encodings
    def bytes
      document.encoding

      to_s
    end
  end
end
lib64/ruby/2.2.0/rexml/streamlistener.rb000064400000007475150402106420013630 0ustar00module REXML
  # A template for stream parser listeners.
  # Note that the declarations (attlistdecl, elementdecl, etc) are trivially
  # processed; REXML doesn't yet handle doctype entity declarations, so you
  # have to parse them out yourself.
  module StreamListener
    # Called when a tag is encountered.
    # @p name the tag name
    # @p attrs an array of arrays of attribute/value pairs, suitable for
    # use with assoc or rassoc.  IE, <tag attr1="value1" attr2="value2">
    # will result in
    # tag_start( "tag", # [["attr1","value1"],["attr2","value2"]])
    def tag_start name, attrs
    end
    # Called when the end tag is reached.  In the case of <tag/>, tag_end
    # will be called immediately after tag_start
    # @p the name of the tag
    def tag_end name
    end
    # Called when text is encountered in the document
    # @p text the text content.
    def text text
    end
    # Called when an instruction is encountered.  EG: <?xsl sheet='foo'?>
    # @p name the instruction name; in the example, "xsl"
    # @p instruction the rest of the instruction.  In the example,
    # "sheet='foo'"
    def instruction name, instruction
    end
    # Called when a comment is encountered.
    # @p comment The content of the comment
    def comment comment
    end
    # Handles a doctype declaration. Any attributes of the doctype which are
    # not supplied will be nil.  # EG, <!DOCTYPE me PUBLIC "foo" "bar">
    # @p name the name of the doctype; EG, "me"
    # @p pub_sys "PUBLIC", "SYSTEM", or nil.  EG, "PUBLIC"
    # @p long_name the supplied long name, or nil.  EG, "foo"
    # @p uri the uri of the doctype, or nil.  EG, "bar"
    def doctype name, pub_sys, long_name, uri
    end
    # Called when the doctype is done
    def doctype_end
    end
    # If a doctype includes an ATTLIST declaration, it will cause this
    # method to be called.  The content is the declaration itself, unparsed.
    # EG, <!ATTLIST el attr CDATA #REQUIRED> will come to this method as "el
    # attr CDATA #REQUIRED".  This is the same for all of the .*decl
    # methods.
    def attlistdecl element_name, attributes, raw_content
    end
    # <!ELEMENT ...>
    def elementdecl content
    end
    # <!ENTITY ...>
    # The argument passed to this method is an array of the entity
    # declaration.  It can be in a number of formats, but in general it
    # returns (example, result):
    #  <!ENTITY % YN '"Yes"'>
    #  ["YN", "\"Yes\"", "%"]
    #  <!ENTITY % YN 'Yes'>
    #  ["YN", "Yes", "%"]
    #  <!ENTITY WhatHeSaid "He said %YN;">
    #  ["WhatHeSaid", "He said %YN;"]
    #  <!ENTITY open-hatch SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml">
    #  ["open-hatch", "SYSTEM", "http://www.textuality.com/boilerplate/OpenHatch.xml"]
    #  <!ENTITY open-hatch PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN" "http://www.textuality.com/boilerplate/OpenHatch.xml">
    #  ["open-hatch", "PUBLIC", "-//Textuality//TEXT Standard open-hatch boilerplate//EN", "http://www.textuality.com/boilerplate/OpenHatch.xml"]
    #  <!ENTITY hatch-pic SYSTEM "../grafix/OpenHatch.gif" NDATA gif>
    #  ["hatch-pic", "SYSTEM", "../grafix/OpenHatch.gif", "gif"]
    def entitydecl content
    end
    # <!NOTATION ...>
    def notationdecl content
    end
    # Called when %foo; is encountered in a doctype declaration.
    # @p content "foo"
    def entity content
    end
    # Called when <![CDATA[ ... ]]> is encountered in a document.
    # @p content "..."
    def cdata content
    end
    # Called when an XML PI is encountered in the document.
    # EG: <?xml version="1.0" encoding="utf"?>
    # @p version the version attribute value.  EG, "1.0"
    # @p encoding the encoding attribute value, or nil.  EG, "utf"
    # @p standalone the standalone attribute value, or nil.  EG, nil
    def xmldecl version, encoding, standalone
    end
  end
end
lib64/ruby/2.2.0/rexml/document.rb000064400000022752150402106420012400 0ustar00require "rexml/security"
require "rexml/element"
require "rexml/xmldecl"
require "rexml/source"
require "rexml/comment"
require "rexml/doctype"
require "rexml/instruction"
require "rexml/rexml"
require "rexml/parseexception"
require "rexml/output"
require "rexml/parsers/baseparser"
require "rexml/parsers/streamparser"
require "rexml/parsers/treeparser"

module REXML
  # Represents a full XML document, including PIs, a doctype, etc.  A
  # Document has a single child that can be accessed by root().
  # Note that if you want to have an XML declaration written for a document
  # you create, you must add one; REXML documents do not write a default
  # declaration for you.  See |DECLARATION| and |write|.
  class Document < Element
    # A convenient default XML declaration.  If you want an XML declaration,
    # the easiest way to add one is mydoc << Document::DECLARATION
    # +DEPRECATED+
    # Use: mydoc << XMLDecl.default
    DECLARATION = XMLDecl.default

    # Constructor
    # @param source if supplied, must be a Document, String, or IO.
    # Documents have their context and Element attributes cloned.
    # Strings are expected to be valid XML documents.  IOs are expected
    # to be sources of valid XML documents.
    # @param context if supplied, contains the context of the document;
    # this should be a Hash.
    def initialize( source = nil, context = {} )
      @entity_expansion_count = 0
      super()
      @context = context
      return if source.nil?
      if source.kind_of? Document
        @context = source.context
        super source
      else
        build(  source )
      end
    end

    def node_type
      :document
    end

    # Should be obvious
    def clone
      Document.new self
    end

    # According to the XML spec, a root node has no expanded name
    def expanded_name
      ''
      #d = doc_type
      #d ? d.name : "UNDEFINED"
    end

    alias :name :expanded_name

    # We override this, because XMLDecls and DocTypes must go at the start
    # of the document
    def add( child )
      if child.kind_of? XMLDecl
        if @children[0].kind_of? XMLDecl
          @children[0] = child
        else
          @children.unshift child
        end
        child.parent = self
      elsif child.kind_of? DocType
        # Find first Element or DocType node and insert the decl right
        # before it.  If there is no such node, just insert the child at the
        # end.  If there is a child and it is an DocType, then replace it.
        insert_before_index = @children.find_index { |x|
          x.kind_of?(Element) || x.kind_of?(DocType)
        }
        if insert_before_index # Not null = not end of list
          if @children[ insert_before_index ].kind_of? DocType
            @children[ insert_before_index ] = child
          else
            @children[ insert_before_index-1, 0 ] = child
          end
        else  # Insert at end of list
          @children << child
        end
        child.parent = self
      else
        rv = super
        raise "attempted adding second root element to document" if @elements.size > 1
        rv
      end
    end
    alias :<< :add

    def add_element(arg=nil, arg2=nil)
      rv = super
      raise "attempted adding second root element to document" if @elements.size > 1
      rv
    end

    # @return the root Element of the document, or nil if this document
    # has no children.
    def root
      elements[1]
      #self
      #@children.find { |item| item.kind_of? Element }
    end

    # @return the DocType child of the document, if one exists,
    # and nil otherwise.
    def doctype
      @children.find { |item| item.kind_of? DocType }
    end

    # @return the XMLDecl of this document; if no XMLDecl has been
    # set, the default declaration is returned.
    def xml_decl
      rv = @children[0]
      return rv if rv.kind_of? XMLDecl
      @children.unshift(XMLDecl.default)[0]
    end

    # @return the XMLDecl version of this document as a String.
    # If no XMLDecl has been set, returns the default version.
    def version
      xml_decl().version
    end

    # @return the XMLDecl encoding of this document as an
    # Encoding object.
    # If no XMLDecl has been set, returns the default encoding.
    def encoding
      xml_decl().encoding
    end

    # @return the XMLDecl standalone value of this document as a String.
    # If no XMLDecl has been set, returns the default setting.
    def stand_alone?
      xml_decl().stand_alone?
    end

    # :call-seq:
    #    doc.write(output=$stdout, indent=-1, transtive=false, ie_hack=false, encoding=nil)
    #    doc.write(options={:output => $stdout, :indent => -1, :transtive => false, :ie_hack => false, :encoding => nil})
    #
    # Write the XML tree out, optionally with indent.  This writes out the
    # entire XML document, including XML declarations, doctype declarations,
    # and processing instructions (if any are given).
    #
    # A controversial point is whether Document should always write the XML
    # declaration (<?xml version='1.0'?>) whether or not one is given by the
    # user (or source document).  REXML does not write one if one was not
    # specified, because it adds unnecessary bandwidth to applications such
    # as XML-RPC.
    #
    # Accept Nth argument style and options Hash style as argument.
    # The recommended style is options Hash style for one or more
    # arguments case.
    #
    # _Examples_
    #   Document.new("<a><b/></a>").write
    #
    #   output = ""
    #   Document.new("<a><b/></a>").write(output)
    #
    #   output = ""
    #   Document.new("<a><b/></a>").write(:output => output, :indent => 2)
    #
    # See also the classes in the rexml/formatters package for the proper way
    # to change the default formatting of XML output.
    #
    # _Examples_
    #
    #   output = ""
    #   tr = Transitive.new
    #   tr.write(Document.new("<a><b/></a>"), output)
    #
    # output::
    #   output an object which supports '<< string'; this is where the
    #   document will be written.
    # indent::
    #   An integer.  If -1, no indenting will be used; otherwise, the
    #   indentation will be twice this number of spaces, and children will be
    #   indented an additional amount.  For a value of 3, every item will be
    #   indented 3 more levels, or 6 more spaces (2 * 3). Defaults to -1
    # transitive::
    #   If transitive is true and indent is >= 0, then the output will be
    #   pretty-printed in such a way that the added whitespace does not affect
    #   the absolute *value* of the document -- that is, it leaves the value
    #   and number of Text nodes in the document unchanged.
    # ie_hack::
    #   This hack inserts a space before the /> on empty tags to address
    #   a limitation of Internet Explorer.  Defaults to false
    # encoding::
    #   Encoding name as String. Change output encoding to specified encoding
    #   instead of encoding in XML declaration.
    #   Defaults to nil. It means encoding in XML declaration is used.
    def write(*arguments)
      if arguments.size == 1 and arguments[0].class == Hash
        options = arguments[0]

        output     = options[:output]
        indent     = options[:indent]
        transitive = options[:transitive]
        ie_hack    = options[:ie_hack]
        encoding   = options[:encoding]
      else
        output, indent, transitive, ie_hack, encoding, = *arguments
      end

      output   ||= $stdout
      indent   ||= -1
      transitive = false if transitive.nil?
      ie_hack    = false if ie_hack.nil?
      encoding ||= xml_decl.encoding

      if encoding != 'UTF-8' && !output.kind_of?(Output)
        output = Output.new( output, encoding )
      end
      formatter = if indent > -1
          if transitive
            require "rexml/formatters/transitive"
            REXML::Formatters::Transitive.new( indent, ie_hack )
          else
            REXML::Formatters::Pretty.new( indent, ie_hack )
          end
        else
          REXML::Formatters::Default.new( ie_hack )
        end
      formatter.write( self, output )
    end


    def Document::parse_stream( source, listener )
      Parsers::StreamParser.new( source, listener ).parse
    end

    # Set the entity expansion limit. By default the limit is set to 10000.
    #
    # Deprecated. Use REXML::Security.entity_expansion_limit= instead.
    def Document::entity_expansion_limit=( val )
      Security.entity_expansion_limit = val
    end

    # Get the entity expansion limit. By default the limit is set to 10000.
    #
    # Deprecated. Use REXML::Security.entity_expansion_limit= instead.
    def Document::entity_expansion_limit
      return Security.entity_expansion_limit
    end

    # Set the entity expansion limit. By default the limit is set to 10240.
    #
    # Deprecated. Use REXML::Security.entity_expansion_text_limit= instead.
    def Document::entity_expansion_text_limit=( val )
      Security.entity_expansion_text_limit = val
    end

    # Get the entity expansion limit. By default the limit is set to 10240.
    #
    # Deprecated. Use REXML::Security.entity_expansion_text_limit instead.
    def Document::entity_expansion_text_limit
      return Security.entity_expansion_text_limit
    end

    attr_reader :entity_expansion_count

    def record_entity_expansion
      @entity_expansion_count += 1
      if @entity_expansion_count > Security.entity_expansion_limit
        raise "number of entity expansions exceeded, processing aborted."
      end
    end

    def document
      self
    end

    private
    def build( source )
      Parsers::TreeParser.new( source, self ).parse
    end
  end
end
lib64/ruby/2.2.0/rexml/sax2listener.rb000064400000007116150402106420013202 0ustar00module REXML
  # A template for stream parser listeners.
  # Note that the declarations (attlistdecl, elementdecl, etc) are trivially
  # processed; REXML doesn't yet handle doctype entity declarations, so you
  # have to parse them out yourself.
  # === Missing methods from SAX2
  #  ignorable_whitespace
  # === Methods extending SAX2
  # +WARNING+
  # These methods are certainly going to change, until DTDs are fully
  # supported.  Be aware of this.
  #  start_document
  #  end_document
  #  doctype
  #  elementdecl
  #  attlistdecl
  #  entitydecl
  #  notationdecl
  #  cdata
  #  xmldecl
  #  comment
  module SAX2Listener
    def start_document
    end
    def end_document
    end
    def start_prefix_mapping prefix, uri
    end
    def end_prefix_mapping prefix
    end
    def start_element uri, localname, qname, attributes
    end
    def end_element uri, localname, qname
    end
    def characters text
    end
    def processing_instruction target, data
    end
    # Handles a doctype declaration. Any attributes of the doctype which are
    # not supplied will be nil.  # EG, <!DOCTYPE me PUBLIC "foo" "bar">
    # @p name the name of the doctype; EG, "me"
    # @p pub_sys "PUBLIC", "SYSTEM", or nil.  EG, "PUBLIC"
    # @p long_name the supplied long name, or nil.  EG, "foo"
    # @p uri the uri of the doctype, or nil.  EG, "bar"
    def doctype name, pub_sys, long_name, uri
    end
    # If a doctype includes an ATTLIST declaration, it will cause this
    # method to be called.  The content is the declaration itself, unparsed.
    # EG, <!ATTLIST el attr CDATA #REQUIRED> will come to this method as "el
    # attr CDATA #REQUIRED".  This is the same for all of the .*decl
    # methods.
    def attlistdecl(element, pairs, contents)
    end
    # <!ELEMENT ...>
    def elementdecl content
    end
    # <!ENTITY ...>
    # The argument passed to this method is an array of the entity
    # declaration.  It can be in a number of formats, but in general it
    # returns (example, result):
    #  <!ENTITY % YN '"Yes"'>
    #  ["%", "YN", "\"Yes\""]
    #  <!ENTITY % YN 'Yes'>
    #  ["%", "YN", "Yes"]
    #  <!ENTITY WhatHeSaid "He said %YN;">
    #  ["WhatHeSaid", "He said %YN;"]
    #  <!ENTITY open-hatch SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml">
    #  ["open-hatch", "SYSTEM", "http://www.textuality.com/boilerplate/OpenHatch.xml"]
    #  <!ENTITY open-hatch PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN" "http://www.textuality.com/boilerplate/OpenHatch.xml">
    # ["open-hatch", "PUBLIC", "-//Textuality//TEXT Standard open-hatch boilerplate//EN", "http://www.textuality.com/boilerplate/OpenHatch.xml"]
    #  <!ENTITY hatch-pic SYSTEM "../grafix/OpenHatch.gif" NDATA gif>
    #  ["hatch-pic", "SYSTEM", "../grafix/OpenHatch.gif", "NDATA", "gif"]
    def entitydecl declaration
    end
    # <!NOTATION ...>
    def notationdecl name, public_or_system, public_id, system_id
    end
    # Called when <![CDATA[ ... ]]> is encountered in a document.
    # @p content "..."
    def cdata content
    end
    # Called when an XML PI is encountered in the document.
    # EG: <?xml version="1.0" encoding="utf"?>
    # @p version the version attribute value.  EG, "1.0"
    # @p encoding the encoding attribute value, or nil.  EG, "utf"
    # @p standalone the standalone attribute value, or nil.  EG, nil
    # @p spaced the declaration is followed by a line break
    def xmldecl version, encoding, standalone
    end
    # Called when a comment is encountered.
    # @p comment The content of the comment
    def comment comment
    end
    def progress position
    end
  end
end
lib64/ruby/2.2.0/rexml/source.rb000064400000017156150402106420012064 0ustar00# coding: US-ASCII
require 'rexml/encoding'

module REXML
  # Generates Source-s.  USE THIS CLASS.
  class SourceFactory
    # Generates a Source object
    # @param arg Either a String, or an IO
    # @return a Source, or nil if a bad argument was given
    def SourceFactory::create_from(arg)
      if arg.respond_to? :read and
          arg.respond_to? :readline and
          arg.respond_to? :nil? and
          arg.respond_to? :eof?
        IOSource.new(arg)
      elsif arg.respond_to? :to_str
        require 'stringio'
        IOSource.new(StringIO.new(arg))
      elsif arg.kind_of? Source
        arg
      else
        raise "#{arg.class} is not a valid input stream.  It must walk \n"+
          "like either a String, an IO, or a Source."
      end
    end
  end

  # A Source can be searched for patterns, and wraps buffers and other
  # objects and provides consumption of text
  class Source
    include Encoding
    # The current buffer (what we're going to read next)
    attr_reader :buffer
    # The line number of the last consumed text
    attr_reader :line
    attr_reader :encoding

    # Constructor
    # @param arg must be a String, and should be a valid XML document
    # @param encoding if non-null, sets the encoding of the source to this
    # value, overriding all encoding detection
    def initialize(arg, encoding=nil)
      @orig = @buffer = arg
      if encoding
        self.encoding = encoding
      else
        detect_encoding
      end
      @line = 0
    end


    # Inherited from Encoding
    # Overridden to support optimized en/decoding
    def encoding=(enc)
      return unless super
      encoding_updated
    end

    # Scans the source for a given pattern.  Note, that this is not your
    # usual scan() method.  For one thing, the pattern argument has some
    # requirements; for another, the source can be consumed.  You can easily
    # confuse this method.  Originally, the patterns were easier
    # to construct and this method more robust, because this method
    # generated search regexps on the fly; however, this was
    # computationally expensive and slowed down the entire REXML package
    # considerably, since this is by far the most commonly called method.
    # @param pattern must be a Regexp, and must be in the form of
    # /^\s*(#{your pattern, with no groups})(.*)/.  The first group
    # will be returned; the second group is used if the consume flag is
    # set.
    # @param consume if true, the pattern returned will be consumed, leaving
    # everything after it in the Source.
    # @return the pattern, if found, or nil if the Source is empty or the
    # pattern is not found.
    def scan(pattern, cons=false)
      return nil if @buffer.nil?
      rv = @buffer.scan(pattern)
      @buffer = $' if cons and rv.size>0
      rv
    end

    def read
    end

    def consume( pattern )
      @buffer = $' if pattern.match( @buffer )
    end

    def match_to( char, pattern )
      return pattern.match(@buffer)
    end

    def match_to_consume( char, pattern )
      md = pattern.match(@buffer)
      @buffer = $'
      return md
    end

    def match(pattern, cons=false)
      md = pattern.match(@buffer)
      @buffer = $' if cons and md
      return md
    end

    # @return true if the Source is exhausted
    def empty?
      @buffer == ""
    end

    def position
      @orig.index( @buffer )
    end

    # @return the current line in the source
    def current_line
      lines = @orig.split
      res = lines.grep @buffer[0..30]
      res = res[-1] if res.kind_of? Array
      lines.index( res ) if res
    end

    private
    def detect_encoding
      buffer_encoding = @buffer.encoding
      detected_encoding = "UTF-8"
      begin
        @buffer.force_encoding("ASCII-8BIT")
        if @buffer[0, 2] == "\xfe\xff"
          @buffer[0, 2] = ""
          detected_encoding = "UTF-16BE"
        elsif @buffer[0, 2] == "\xff\xfe"
          @buffer[0, 2] = ""
          detected_encoding = "UTF-16LE"
        elsif @buffer[0, 3] == "\xef\xbb\xbf"
          @buffer[0, 3] = ""
          detected_encoding = "UTF-8"
        end
      ensure
        @buffer.force_encoding(buffer_encoding)
      end
      self.encoding = detected_encoding
    end

    def encoding_updated
      if @encoding != 'UTF-8'
        @buffer = decode(@buffer)
        @to_utf = true
      else
        @to_utf = false
        @buffer.force_encoding ::Encoding::UTF_8
      end
    end
  end

  # A Source that wraps an IO.  See the Source class for method
  # documentation
  class IOSource < Source
    #attr_reader :block_size

    # block_size has been deprecated
    def initialize(arg, block_size=500, encoding=nil)
      @er_source = @source = arg
      @to_utf = false
      @pending_buffer = nil

      if encoding
        super("", encoding)
      else
        super(@source.read(3) || "")
      end

      if !@to_utf and
          @buffer.respond_to?(:force_encoding) and
          @source.respond_to?(:external_encoding) and
          @source.external_encoding != ::Encoding::UTF_8
        @force_utf8 = true
      else
        @force_utf8 = false
      end
    end

    def scan(pattern, cons=false)
      rv = super
      # You'll notice that this next section is very similar to the same
      # section in match(), but just a liiittle different.  This is
      # because it is a touch faster to do it this way with scan()
      # than the way match() does it; enough faster to warrent duplicating
      # some code
      if rv.size == 0
        until @buffer =~ pattern or @source.nil?
          begin
            @buffer << readline
          rescue Iconv::IllegalSequence
            raise
          rescue
            @source = nil
          end
        end
        rv = super
      end
      rv.taint
      rv
    end

    def read
      begin
        @buffer << readline
      rescue Exception, NameError
        @source = nil
      end
    end

    def consume( pattern )
      match( pattern, true )
    end

    def match( pattern, cons=false )
      rv = pattern.match(@buffer)
      @buffer = $' if cons and rv
      while !rv and @source
        begin
          @buffer << readline
          rv = pattern.match(@buffer)
          @buffer = $' if cons and rv
        rescue
          @source = nil
        end
      end
      rv.taint
      rv
    end

    def empty?
      super and ( @source.nil? || @source.eof? )
    end

    def position
      @er_source.pos rescue 0
    end

    # @return the current line in the source
    def current_line
      begin
        pos = @er_source.pos        # The byte position in the source
        lineno = @er_source.lineno  # The XML < position in the source
        @er_source.rewind
        line = 0                    # The \r\n position in the source
        begin
          while @er_source.pos < pos
            @er_source.readline
            line += 1
          end
        rescue
        end
      rescue IOError
        pos = -1
        line = -1
      end
      [pos, lineno, line]
    end

    private
    def readline
      str = @source.readline(@line_break)
      if @pending_buffer
        if str.nil?
          str = @pending_buffer
        else
          str = @pending_buffer + str
        end
        @pending_buffer = nil
      end
      return nil if str.nil?

      if @to_utf
        decode(str)
      else
        str.force_encoding(::Encoding::UTF_8) if @force_utf8
        str
      end
    end

    def encoding_updated
      case @encoding
      when "UTF-16BE", "UTF-16LE"
        @source.binmode
        @source.set_encoding(@encoding, @encoding)
      end
      @line_break = encode(">")
      @pending_buffer, @buffer = @buffer, ""
      @pending_buffer.force_encoding(@encoding)
      super
    end
  end
end
lib64/ruby/2.2.0/rexml/comment.rb000064400000004114150402106420012214 0ustar00require "rexml/child"

module REXML
  ##
  # Represents an XML comment; that is, text between \<!-- ... -->
  class Comment < Child
    include Comparable
    START = "<!--"
    STOP = "-->"

    # The content text

    attr_accessor :string

    ##
    # Constructor.  The first argument can be one of three types:
    # @param first If String, the contents of this comment are set to the
    # argument.  If Comment, the argument is duplicated.  If
    # Source, the argument is scanned for a comment.
    # @param second If the first argument is a Source, this argument
    # should be nil, not supplied, or a Parent to be set as the parent
    # of this object
    def initialize( first, second = nil )
      super(second)
      if first.kind_of? String
        @string = first
      elsif first.kind_of? Comment
        @string = first.string
      end
    end

    def clone
      Comment.new self
    end

    # == DEPRECATED
    # See REXML::Formatters
    #
    # output::
    #    Where to write the string
    # indent::
    #    An integer.    If -1, no indenting will be used; otherwise, the
    #    indentation will be this number of spaces, and children will be
    #    indented an additional amount.
    # transitive::
    #    Ignored by this class. The contents of comments are never modified.
    # ie_hack::
    #    Needed for conformity to the child API, but not used by this class.
    def write( output, indent=-1, transitive=false, ie_hack=false )
      Kernel.warn("Comment.write is deprecated.  See REXML::Formatters")
      indent( output, indent )
      output << START
      output << @string
      output << STOP
    end

    alias :to_s :string

    ##
    # Compares this Comment to another; the contents of the comment are used
    # in the comparison.
    def <=>(other)
      other.to_s <=> @string
    end

    ##
    # Compares this Comment to another; the contents of the comment are used
    # in the comparison.
    def ==( other )
      other.kind_of? Comment and
      (other <=> self) == 0
    end

    def node_type
      :comment
    end
  end
end
#vim:ts=2 sw=2 noexpandtab:
lib64/ruby/2.2.0/rexml/light/node.rb000064400000011371150402106420012611 0ustar00require 'rexml/xmltokens'

# [ :element, parent, name, attributes, children* ]
  # a = Node.new
  # a << "B"            # => <a>B</a>
  # a.b                 # => <a>B<b/></a>
  # a.b[1]                      # => <a>B<b/><b/><a>
  # a.b[1]["x"] = "y"   # => <a>B<b/><b x="y"/></a>
  # a.b[0].c            # => <a>B<b><c/></b><b x="y"/></a>
  # a.b.c << "D"                # => <a>B<b><c>D</c></b><b x="y"/></a>
module REXML
  module Light
    # Represents a tagged XML element.  Elements are characterized by
    # having children, attributes, and names, and can themselves be
    # children.
    class Node
      NAMESPLIT = /^(?:(#{XMLTokens::NCNAME_STR}):)?(#{XMLTokens::NCNAME_STR})/u
      PARENTS = [ :element, :document, :doctype ]
      # Create a new element.
      def initialize node=nil
        @node = node
        if node.kind_of? String
          node = [ :text, node ]
        elsif node.nil?
          node = [ :document, nil, nil ]
        elsif node[0] == :start_element
          node[0] = :element
        elsif node[0] == :start_doctype
          node[0] = :doctype
        elsif node[0] == :start_document
          node[0] = :document
        end
      end

      def size
        if PARENTS.include? @node[0]
          @node[-1].size
        else
          0
        end
      end

      def each
        size.times { |x| yield( at(x+4) ) }
      end

      def name
        at(2)
      end

      def name=( name_str, ns=nil )
        pfx = ''
        pfx = "#{prefix(ns)}:" if ns
        _old_put(2, "#{pfx}#{name_str}")
      end

      def parent=( node )
        _old_put(1,node)
      end

      def local_name
        namesplit
        @name
      end

      def local_name=( name_str )
        _old_put( 1, "#@prefix:#{name_str}" )
      end

      def prefix( namespace=nil )
        prefix_of( self, namespace )
      end

      def namespace( prefix=prefix() )
        namespace_of( self, prefix )
      end

      def namespace=( namespace )
        @prefix = prefix( namespace )
        pfx = ''
        pfx = "#@prefix:" if @prefix.size > 0
        _old_put(1, "#{pfx}#@name")
      end

      def []( reference, ns=nil )
        if reference.kind_of? String
          pfx = ''
          pfx = "#{prefix(ns)}:" if ns
          at(3)["#{pfx}#{reference}"]
        elsif reference.kind_of? Range
          _old_get( Range.new(4+reference.begin, reference.end, reference.exclude_end?) )
        else
          _old_get( 4+reference )
        end
      end

      def =~( path )
        XPath.match( self, path )
      end

      # Doesn't handle namespaces yet
      def []=( reference, ns, value=nil )
        if reference.kind_of? String
          value = ns unless value
          at( 3 )[reference] = value
        elsif reference.kind_of? Range
          _old_put( Range.new(3+reference.begin, reference.end, reference.exclude_end?), ns )
        else
          if value
            _old_put( 4+reference, ns, value )
          else
            _old_put( 4+reference, ns )
          end
        end
      end

      # Append a child to this element, optionally under a provided namespace.
      # The namespace argument is ignored if the element argument is an Element
      # object.  Otherwise, the element argument is a string, the namespace (if
      # provided) is the namespace the element is created in.
      def << element
        if node_type() == :text
          at(-1) << element
        else
          newnode = Node.new( element )
          newnode.parent = self
          self.push( newnode )
        end
        at(-1)
      end

      def node_type
        _old_get(0)
      end

      def text=( foo )
        replace = at(4).kind_of?(String)? 1 : 0
        self._old_put(4,replace, normalizefoo)
      end

      def root
        context = self
        context = context.at(1) while context.at(1)
      end

      def has_name?( name, namespace = '' )
        at(3) == name and namespace() == namespace
      end

      def children
        self
      end

      def parent
        at(1)
      end

      def to_s

      end

      private

      def namesplit
        return if @name.defined?
        at(2) =~ NAMESPLIT
        @prefix = '' || $1
        @name = $2
      end

      def namespace_of( node, prefix=nil )
        if not prefix
          name = at(2)
          name =~ NAMESPLIT
          prefix = $1
        end
        to_find = 'xmlns'
        to_find = "xmlns:#{prefix}" if not prefix.nil?
        ns = at(3)[ to_find ]
        ns ? ns : namespace_of( @node[0], prefix )
      end

      def prefix_of( node, namespace=nil )
        if not namespace
          name = node.name
          name =~ NAMESPLIT
          $1
        else
          ns = at(3).find { |k,v| v == namespace }
          ns ? ns : prefix_of( node.parent, namespace )
        end
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/xmltokens.rb000064400000004455150402106420012606 0ustar00module REXML
  # Defines a number of tokens used for parsing XML.  Not for general
  # consumption.
  module XMLTokens
    # From http://www.w3.org/TR/REC-xml/#sec-common-syn
    #
    #   [4] NameStartChar ::=
    #         ":" |
    #         [A-Z] |
    #         "_" |
    #         [a-z] |
    #         [#xC0-#xD6] |
    #         [#xD8-#xF6] |
    #         [#xF8-#x2FF] |
    #         [#x370-#x37D] |
    #         [#x37F-#x1FFF] |
    #         [#x200C-#x200D] |
    #         [#x2070-#x218F] |
    #         [#x2C00-#x2FEF] |
    #         [#x3001-#xD7FF] |
    #         [#xF900-#xFDCF] |
    #         [#xFDF0-#xFFFD] |
    #         [#x10000-#xEFFFF]
    name_start_chars = [
      ":",
      "A-Z",
      "_",
      "a-z",
      "\\u00C0-\\u00D6",
      "\\u00D8-\\u00F6",
      "\\u00F8-\\u02FF",
      "\\u0370-\\u037D",
      "\\u037F-\\u1FFF",
      "\\u200C-\\u200D",
      "\\u2070-\\u218F",
      "\\u2C00-\\u2FEF",
      "\\u3001-\\uD7FF",
      "\\uF900-\\uFDCF",
      "\\uFDF0-\\uFFFD",
      "\\u{10000}-\\u{EFFFF}",
    ]
    # From http://www.w3.org/TR/REC-xml/#sec-common-syn
    #
    #   [4a] NameChar ::=
    #      NameStartChar |
    #      "-" |
    #      "." |
    #      [0-9] |
    #      #xB7 |
    #      [#x0300-#x036F] |
    #      [#x203F-#x2040]
    name_chars = name_start_chars + [
      "\\-",
      "\\.",
      "0-9",
      "\\u00B7",
      "\\u0300-\\u036F",
      "\\u203F-\\u2040",
    ]
    NAME_START_CHAR = "[#{name_start_chars.join('')}]"
    NAME_CHAR = "[#{name_chars.join('')}]"
    NAMECHAR = NAME_CHAR # deprecated. Use NAME_CHAR instead.

    # From http://www.w3.org/TR/xml-names11/#NT-NCName
    #
    #   [6] NCNameStartChar ::= NameStartChar - ':'
    ncname_start_chars = name_start_chars - [":"]
    # From http://www.w3.org/TR/xml-names11/#NT-NCName
    #
    #   [5] NCNameChar ::= NameChar - ':'
    ncname_chars = name_chars - [":"]
    NCNAME_STR = "[#{ncname_start_chars.join('')}][#{ncname_chars.join('')}]*"
    NAME_STR = "(?:#{NCNAME_STR}:)?#{NCNAME_STR}"

    NAME = "(#{NAME_START_CHAR}#{NAME_CHAR}*)"
    NMTOKEN = "(?:#{NAME_CHAR})+"
    NMTOKENS = "#{NMTOKEN}(\\s+#{NMTOKEN})*"
    REFERENCE = "(?:&#{NAME};|&#\\d+;|&#x[0-9a-fA-F]+;)"

    #REFERENCE = "(?:#{ENTITYREF}|#{CHARREF})"
    #ENTITYREF = "&#{NAME};"
    #CHARREF = "&#\\d+;|&#x[0-9a-fA-F]+;"
  end
end
lib64/ruby/2.2.0/rexml/encoding.rb000064400000002200150402106420012332 0ustar00# coding: US-ASCII
module REXML
  module Encoding
    # ID ---> Encoding name
    attr_reader :encoding
    def encoding=(encoding)
      encoding = encoding.name if encoding.is_a?(Encoding)
      if encoding.is_a?(String)
        original_encoding = encoding
        encoding = find_encoding(encoding)
        unless encoding
          raise ArgumentError, "Bad encoding name #{original_encoding}"
        end
      end
      return false if defined?(@encoding) and encoding == @encoding
      if encoding
        @encoding = encoding.upcase
      else
        @encoding = 'UTF-8'
      end
      true
    end

    def encode(string)
      string.encode(@encoding)
    end

    def decode(string)
      string.encode(::Encoding::UTF_8, @encoding)
    end

    private
    def find_encoding(name)
      case name
      when /\Ashift-jis\z/i
        return "SHIFT_JIS"
      when /\ACP-(\d+)\z/
        name = "CP#{$1}"
      when /\AUTF-8\z/i
        return name
      end
      begin
        ::Encoding::Converter.search_convpath(name, 'UTF-8')
      rescue ::Encoding::ConverterNotFoundError
        return nil
      end
      name
    end
  end
end
lib64/ruby/2.2.0/rexml/xpath.rb000064400000006500150402106420011677 0ustar00require 'rexml/functions'
require 'rexml/xpath_parser'

module REXML
  # Wrapper class.  Use this class to access the XPath functions.
  class XPath
    include Functions
    # A base Hash object, supposing to be used when initializing a
    # default empty namespaces set, but is currently unused.
    # TODO: either set the namespaces=EMPTY_HASH, or deprecate this.
    EMPTY_HASH = {}

    # Finds and returns the first node that matches the supplied xpath.
    # element::
    #   The context element
    # path::
    #   The xpath to search for.  If not supplied or nil, returns the first
    #   node matching '*'.
    # namespaces::
    #   If supplied, a Hash which defines a namespace mapping.
    # variables::
    #   If supplied, a Hash which maps $variables in the query
    #   to values. This can be used to avoid XPath injection attacks
    #   or to automatically handle escaping string values.
    #
    #  XPath.first( node )
    #  XPath.first( doc, "//b"} )
    #  XPath.first( node, "a/x:b", { "x"=>"http://doofus" } )
    #  XPath.first( node, '/book/publisher/text()=$publisher', {}, {"publisher"=>"O'Reilly"})
    def XPath::first element, path=nil, namespaces=nil, variables={}
      raise "The namespaces argument, if supplied, must be a hash object." unless namespaces.nil? or namespaces.kind_of?(Hash)
      raise "The variables argument, if supplied, must be a hash object." unless variables.kind_of?(Hash)
      parser = XPathParser.new
      parser.namespaces = namespaces
      parser.variables = variables
      path = "*" unless path
      element = [element] unless element.kind_of? Array
      parser.parse(path, element).flatten[0]
    end

    # Iterates over nodes that match the given path, calling the supplied
    # block with the match.
    # element::
    #   The context element
    # path::
    #   The xpath to search for.  If not supplied or nil, defaults to '*'
    # namespaces::
    #   If supplied, a Hash which defines a namespace mapping
    # variables::
    #   If supplied, a Hash which maps $variables in the query
    #   to values. This can be used to avoid XPath injection attacks
    #   or to automatically handle escaping string values.
    #
    #  XPath.each( node ) { |el| ... }
    #  XPath.each( node, '/*[@attr='v']' ) { |el| ... }
    #  XPath.each( node, 'ancestor::x' ) { |el| ... }
    #  XPath.each( node, '/book/publisher/text()=$publisher', {}, {"publisher"=>"O'Reilly"}) \
    #    {|el| ... }
    def XPath::each element, path=nil, namespaces=nil, variables={}, &block
      raise "The namespaces argument, if supplied, must be a hash object." unless namespaces.nil? or namespaces.kind_of?(Hash)
      raise "The variables argument, if supplied, must be a hash object." unless variables.kind_of?(Hash)
      parser = XPathParser.new
      parser.namespaces = namespaces
      parser.variables = variables
      path = "*" unless path
      element = [element] unless element.kind_of? Array
      parser.parse(path, element).each( &block )
    end

    # Returns an array of nodes matching a given XPath.
    def XPath::match element, path=nil, namespaces=nil, variables={}
      parser = XPathParser.new
      parser.namespaces = namespaces
      parser.variables = variables
      path = "*" unless path
      element = [element] unless element.kind_of? Array
      parser.parse(path,element)
    end
  end
end
lib64/ruby/2.2.0/rexml/security.rb000064400000001431150402106420012420 0ustar00module REXML
  module Security
    @@entity_expansion_limit = 10_000

    # Set the entity expansion limit. By default the limit is set to 10000.
    def self.entity_expansion_limit=( val )
      @@entity_expansion_limit = val
    end

    # Get the entity expansion limit. By default the limit is set to 10000.
    def self.entity_expansion_limit
      return @@entity_expansion_limit
    end

    @@entity_expansion_text_limit = 10_240

    # Set the entity expansion limit. By default the limit is set to 10240.
    def self.entity_expansion_text_limit=( val )
      @@entity_expansion_text_limit = val
    end

    # Get the entity expansion limit. By default the limit is set to 10240.
    def self.entity_expansion_text_limit
      return @@entity_expansion_text_limit
    end
  end
end
lib64/ruby/2.2.0/rexml/element.rb000064400000127163150402106420012215 0ustar00require "rexml/parent"
require "rexml/namespace"
require "rexml/attribute"
require "rexml/cdata"
require "rexml/xpath"
require "rexml/parseexception"

module REXML
  # An implementation note about namespaces:
  # As we parse, when we find namespaces we put them in a hash and assign
  # them a unique ID.  We then convert the namespace prefix for the node
  # to the unique ID.  This makes namespace lookup much faster for the
  # cost of extra memory use.  We save the namespace prefix for the
  # context node and convert it back when we write it.
  @@namespaces = {}

  # Represents a tagged XML element.  Elements are characterized by
  # having children, attributes, and names, and can themselves be
  # children.
  class Element < Parent
    include Namespace

    UNDEFINED = "UNDEFINED";            # The default name

    # Mechanisms for accessing attributes and child elements of this
    # element.
    attr_reader :attributes, :elements
    # The context holds information about the processing environment, such as
    # whitespace handling.
    attr_accessor :context

    # Constructor
    # arg::
    #   if not supplied, will be set to the default value.
    #   If a String, the name of this object will be set to the argument.
    #   If an Element, the object will be shallowly cloned; name,
    #   attributes, and namespaces will be copied.  Children will +not+ be
    #   copied.
    # parent::
    #   if supplied, must be a Parent, and will be used as
    #   the parent of this object.
    # context::
    #   If supplied, must be a hash containing context items.  Context items
    #   include:
    # * <tt>:respect_whitespace</tt> the value of this is :+all+ or an array of
    #   strings being the names of the elements to respect
    #   whitespace for.  Defaults to :+all+.
    # * <tt>:compress_whitespace</tt> the value can be :+all+ or an array of
    #   strings being the names of the elements to ignore whitespace on.
    #   Overrides :+respect_whitespace+.
    # * <tt>:ignore_whitespace_nodes</tt> the value can be :+all+ or an array
    #   of strings being the names of the elements in which to ignore
    #   whitespace-only nodes.  If this is set, Text nodes which contain only
    #   whitespace will not be added to the document tree.
    # * <tt>:raw</tt> can be :+all+, or an array of strings being the names of
    #   the elements to process in raw mode.  In raw mode, special
    #   characters in text is not converted to or from entities.
    def initialize( arg = UNDEFINED, parent=nil, context=nil )
      super(parent)

      @elements = Elements.new(self)
      @attributes = Attributes.new(self)
      @context = context

      if arg.kind_of? String
        self.name = arg
      elsif arg.kind_of? Element
        self.name = arg.expanded_name
        arg.attributes.each_attribute{ |attribute|
          @attributes << Attribute.new( attribute )
        }
        @context = arg.context
      end
    end

    def inspect
      rv = "<#@expanded_name"

      @attributes.each_attribute do |attr|
        rv << " "
        attr.write( rv, 0 )
      end

      if children.size > 0
        rv << "> ... </>"
      else
        rv << "/>"
      end
    end


    # Creates a shallow copy of self.
    #   d = Document.new "<a><b/><b/><c><d/></c></a>"
    #   new_a = d.root.clone
    #   puts new_a  # => "<a/>"
    def clone
      self.class.new self
    end

    # Evaluates to the root node of the document that this element
    # belongs to. If this element doesn't belong to a document, but does
    # belong to another Element, the parent's root will be returned, until the
    # earliest ancestor is found.
    #
    # Note that this is not the same as the document element.
    # In the following example, <a> is the document element, and the root
    # node is the parent node of the document element.  You may ask yourself
    # why the root node is useful: consider the doctype and XML declaration,
    # and any processing instructions before the document element... they
    # are children of the root node, or siblings of the document element.
    # The only time this isn't true is when an Element is created that is
    # not part of any Document.  In this case, the ancestor that has no
    # parent acts as the root node.
    #  d = Document.new '<a><b><c/></b></a>'
    #  a = d[1] ; c = a[1][1]
    #  d.root_node == d   # TRUE
    #  a.root_node        # namely, d
    #  c.root_node        # again, d
    def root_node
      parent.nil? ? self : parent.root_node
    end

    def root
      return elements[1] if self.kind_of? Document
      return self if parent.kind_of? Document or parent.nil?
      return parent.root
    end

    # Evaluates to the document to which this element belongs, or nil if this
    # element doesn't belong to a document.
    def document
      rt = root
      rt.parent if rt
    end

    # Evaluates to +true+ if whitespace is respected for this element.  This
    # is the case if:
    # 1. Neither :+respect_whitespace+ nor :+compress_whitespace+ has any value
    # 2. The context has :+respect_whitespace+ set to :+all+ or
    #    an array containing the name of this element, and
    #    :+compress_whitespace+ isn't set to :+all+ or an array containing the
    #    name of this element.
    # The evaluation is tested against +expanded_name+, and so is namespace
    # sensitive.
    def whitespace
      @whitespace = nil
      if @context
        if @context[:respect_whitespace]
          @whitespace = (@context[:respect_whitespace] == :all or
                         @context[:respect_whitespace].include? expanded_name)
        end
        @whitespace = false if (@context[:compress_whitespace] and
                                (@context[:compress_whitespace] == :all or
                                 @context[:compress_whitespace].include? expanded_name)
                               )
      end
      @whitespace = true unless @whitespace == false
      @whitespace
    end

    def ignore_whitespace_nodes
      @ignore_whitespace_nodes = false
      if @context
        if @context[:ignore_whitespace_nodes]
          @ignore_whitespace_nodes =
            (@context[:ignore_whitespace_nodes] == :all or
             @context[:ignore_whitespace_nodes].include? expanded_name)
        end
      end
    end

    # Evaluates to +true+ if raw mode is set for this element.  This
    # is the case if the context has :+raw+ set to :+all+ or
    # an array containing the name of this element.
    #
    # The evaluation is tested against +expanded_name+, and so is namespace
    # sensitive.
    def raw
      @raw = (@context and @context[:raw] and
              (@context[:raw] == :all or
               @context[:raw].include? expanded_name))
               @raw
    end

    #once :whitespace, :raw, :ignore_whitespace_nodes

    #################################################
    # Namespaces                                    #
    #################################################

    # Evaluates to an +Array+ containing the prefixes (names) of all defined
    # namespaces at this context node.
    #  doc = Document.new("<a xmlns:x='1' xmlns:y='2'><b/><c xmlns:z='3'/></a>")
    #  doc.elements['//b'].prefixes # -> ['x', 'y']
    def prefixes
      prefixes = []
      prefixes = parent.prefixes if parent
      prefixes |= attributes.prefixes
      return prefixes
    end

    def namespaces
      namespaces = {}
      namespaces = parent.namespaces if parent
      namespaces = namespaces.merge( attributes.namespaces )
      return namespaces
    end

    # Evaluates to the URI for a prefix, or the empty string if no such
    # namespace is declared for this element. Evaluates recursively for
    # ancestors.  Returns the default namespace, if there is one.
    # prefix::
    #   the prefix to search for.  If not supplied, returns the default
    #   namespace if one exists
    # Returns::
    #   the namespace URI as a String, or nil if no such namespace
    #   exists.  If the namespace is undefined, returns an empty string
    #  doc = Document.new("<a xmlns='1' xmlns:y='2'><b/><c xmlns:z='3'/></a>")
    #  b = doc.elements['//b']
    #  b.namespace           # -> '1'
    #  b.namespace("y")      # -> '2'
    def namespace(prefix=nil)
      if prefix.nil?
        prefix = prefix()
      end
      if prefix == ''
        prefix = "xmlns"
      else
        prefix = "xmlns:#{prefix}" unless prefix[0,5] == 'xmlns'
      end
      ns = attributes[ prefix ]
      ns = parent.namespace(prefix) if ns.nil? and parent
      ns = '' if ns.nil? and prefix == 'xmlns'
      return ns
    end

    # Adds a namespace to this element.
    # prefix::
    #   the prefix string, or the namespace URI if +uri+ is not
    #   supplied
    # uri::
    #   the namespace URI.  May be nil, in which +prefix+ is used as
    #   the URI
    # Evaluates to: this Element
    #  a = Element.new("a")
    #  a.add_namespace("xmlns:foo", "bar" )
    #  a.add_namespace("foo", "bar")  # shorthand for previous line
    #  a.add_namespace("twiddle")
    #  puts a   #-> <a xmlns:foo='bar' xmlns='twiddle'/>
    def add_namespace( prefix, uri=nil )
      unless uri
        @attributes["xmlns"] = prefix
      else
        prefix = "xmlns:#{prefix}" unless prefix =~ /^xmlns:/
        @attributes[ prefix ] = uri
      end
      self
    end

    # Removes a namespace from this node.  This only works if the namespace is
    # actually declared in this node.  If no argument is passed, deletes the
    # default namespace.
    #
    # Evaluates to: this element
    #  doc = Document.new "<a xmlns:foo='bar' xmlns='twiddle'/>"
    #  doc.root.delete_namespace
    #  puts doc     # -> <a xmlns:foo='bar'/>
    #  doc.root.delete_namespace 'foo'
    #  puts doc     # -> <a/>
    def delete_namespace namespace="xmlns"
      namespace = "xmlns:#{namespace}" unless namespace == 'xmlns'
      attribute = attributes.get_attribute(namespace)
      attribute.remove unless attribute.nil?
      self
    end

    #################################################
    # Elements                                      #
    #################################################

    # Adds a child to this element, optionally setting attributes in
    # the element.
    # element::
    #   optional.  If Element, the element is added.
    #   Otherwise, a new Element is constructed with the argument (see
    #   Element.initialize).
    # attrs::
    #   If supplied, must be a Hash containing String name,value
    #   pairs, which will be used to set the attributes of the new Element.
    # Returns:: the Element that was added
    #  el = doc.add_element 'my-tag'
    #  el = doc.add_element 'my-tag', {'attr1'=>'val1', 'attr2'=>'val2'}
    #  el = Element.new 'my-tag'
    #  doc.add_element el
    def add_element element, attrs=nil
      raise "First argument must be either an element name, or an Element object" if element.nil?
      el = @elements.add(element)
      attrs.each do |key, value|
        el.attributes[key]=value
      end       if attrs.kind_of? Hash
      el
    end

    # Deletes a child element.
    # element::
    #   Must be an +Element+, +String+, or +Integer+.  If Element,
    #   the element is removed.  If String, the element is found (via XPath)
    #   and removed.  <em>This means that any parent can remove any
    #   descendant.<em>  If Integer, the Element indexed by that number will be
    #   removed.
    # Returns:: the element that was removed.
    #  doc.delete_element "/a/b/c[@id='4']"
    #  doc.delete_element doc.elements["//k"]
    #  doc.delete_element 1
    def delete_element element
      @elements.delete element
    end

    # Evaluates to +true+ if this element has at least one child Element
    #  doc = Document.new "<a><b/><c>Text</c></a>"
    #  doc.root.has_elements               # -> true
    #  doc.elements["/a/b"].has_elements   # -> false
    #  doc.elements["/a/c"].has_elements   # -> false
    def has_elements?
      !@elements.empty?
    end

    # Iterates through the child elements, yielding for each Element that
    # has a particular attribute set.
    # key::
    #   the name of the attribute to search for
    # value::
    #   the value of the attribute
    # max::
    #   (optional) causes this method to return after yielding
    #   for this number of matching children
    # name::
    #   (optional) if supplied, this is an XPath that filters
    #   the children to check.
    #
    #  doc = Document.new "<a><b @id='1'/><c @id='2'/><d @id='1'/><e/></a>"
    #  # Yields b, c, d
    #  doc.root.each_element_with_attribute( 'id' ) {|e| p e}
    #  # Yields b, d
    #  doc.root.each_element_with_attribute( 'id', '1' ) {|e| p e}
    #  # Yields b
    #  doc.root.each_element_with_attribute( 'id', '1', 1 ) {|e| p e}
    #  # Yields d
    #  doc.root.each_element_with_attribute( 'id', '1', 0, 'd' ) {|e| p e}
    def each_element_with_attribute( key, value=nil, max=0, name=nil, &block ) # :yields: Element
      each_with_something( proc {|child|
        if value.nil?
          child.attributes[key] != nil
        else
          child.attributes[key]==value
        end
      }, max, name, &block )
    end

    # Iterates through the children, yielding for each Element that
    # has a particular text set.
    # text::
    #   the text to search for.  If nil, or not supplied, will iterate
    #   over all +Element+ children that contain at least one +Text+ node.
    # max::
    #   (optional) causes this method to return after yielding
    #   for this number of matching children
    # name::
    #   (optional) if supplied, this is an XPath that filters
    #   the children to check.
    #
    #  doc = Document.new '<a><b>b</b><c>b</c><d>d</d><e/></a>'
    #  # Yields b, c, d
    #  doc.each_element_with_text {|e|p e}
    #  # Yields b, c
    #  doc.each_element_with_text('b'){|e|p e}
    #  # Yields b
    #  doc.each_element_with_text('b', 1){|e|p e}
    #  # Yields d
    #  doc.each_element_with_text(nil, 0, 'd'){|e|p e}
    def each_element_with_text( text=nil, max=0, name=nil, &block ) # :yields: Element
      each_with_something( proc {|child|
        if text.nil?
          child.has_text?
        else
          child.text == text
        end
      }, max, name, &block )
    end

    # Synonym for Element.elements.each
    def each_element( xpath=nil, &block ) # :yields: Element
      @elements.each( xpath, &block )
    end

    # Synonym for Element.to_a
    # This is a little slower than calling elements.each directly.
    # xpath:: any XPath by which to search for elements in the tree
    # Returns:: an array of Elements that match the supplied path
    def get_elements( xpath )
      @elements.to_a( xpath )
    end

    # Returns the next sibling that is an element, or nil if there is
    # no Element sibling after this one
    #  doc = Document.new '<a><b/>text<c/></a>'
    #  doc.root.elements['b'].next_element          #-> <c/>
    #  doc.root.elements['c'].next_element          #-> nil
    def next_element
      element = next_sibling
      element = element.next_sibling until element.nil? or element.kind_of? Element
      return element
    end

    # Returns the previous sibling that is an element, or nil if there is
    # no Element sibling prior to this one
    #  doc = Document.new '<a><b/>text<c/></a>'
    #  doc.root.elements['c'].previous_element          #-> <b/>
    #  doc.root.elements['b'].previous_element          #-> nil
    def previous_element
      element = previous_sibling
      element = element.previous_sibling until element.nil? or element.kind_of? Element
      return element
    end


    #################################################
    # Text                                          #
    #################################################

    # Evaluates to +true+ if this element has at least one Text child
    def has_text?
      not text().nil?
    end

    # A convenience method which returns the String value of the _first_
    # child text element, if one exists, and +nil+ otherwise.
    #
    # <em>Note that an element may have multiple Text elements, perhaps
    # separated by other children</em>.  Be aware that this method only returns
    # the first Text node.
    #
    # This method returns the +value+ of the first text child node, which
    # ignores the +raw+ setting, so always returns normalized text. See
    # the Text::value documentation.
    #
    #  doc = Document.new "<p>some text <b>this is bold!</b> more text</p>"
    #  # The element 'p' has two text elements, "some text " and " more text".
    #  doc.root.text              #-> "some text "
    def text( path = nil )
      rv = get_text(path)
      return rv.value unless rv.nil?
      nil
    end

    # Returns the first child Text node, if any, or +nil+ otherwise.
    # This method returns the actual +Text+ node, rather than the String content.
    #  doc = Document.new "<p>some text <b>this is bold!</b> more text</p>"
    #  # The element 'p' has two text elements, "some text " and " more text".
    #  doc.root.get_text.value            #-> "some text "
    def get_text path = nil
      rv = nil
      if path
        element = @elements[ path ]
        rv = element.get_text unless element.nil?
      else
        rv = @children.find { |node| node.kind_of? Text }
      end
      return rv
    end

    # Sets the first Text child of this object.  See text() for a
    # discussion about Text children.
    #
    # If a Text child already exists, the child is replaced by this
    # content.  This means that Text content can be deleted by calling
    # this method with a nil argument.  In this case, the next Text
    # child becomes the first Text child.  In no case is the order of
    # any siblings disturbed.
    # text::
    #   If a String, a new Text child is created and added to
    #   this Element as the first Text child.  If Text, the text is set
    #   as the first Child element.  If nil, then any existing first Text
    #   child is removed.
    # Returns:: this Element.
    #  doc = Document.new '<a><b/></a>'
    #  doc.root.text = 'Sean'      #-> '<a><b/>Sean</a>'
    #  doc.root.text = 'Elliott'   #-> '<a><b/>Elliott</a>'
    #  doc.root.add_element 'c'    #-> '<a><b/>Elliott<c/></a>'
    #  doc.root.text = 'Russell'   #-> '<a><b/>Russell<c/></a>'
    #  doc.root.text = nil         #-> '<a><b/><c/></a>'
    def text=( text )
      if text.kind_of? String
        text = Text.new( text, whitespace(), nil, raw() )
      elsif !text.nil? and !text.kind_of? Text
        text = Text.new( text.to_s, whitespace(), nil, raw() )
      end
      old_text = get_text
      if text.nil?
        old_text.remove unless old_text.nil?
      else
        if old_text.nil?
          self << text
        else
          old_text.replace_with( text )
        end
      end
      return self
    end

    # A helper method to add a Text child.  Actual Text instances can
    # be added with regular Parent methods, such as add() and <<()
    # text::
    #   if a String, a new Text instance is created and added
    #   to the parent.  If Text, the object is added directly.
    # Returns:: this Element
    #  e = Element.new('a')          #-> <e/>
    #  e.add_text 'foo'              #-> <e>foo</e>
    #  e.add_text Text.new(' bar')    #-> <e>foo bar</e>
    # Note that at the end of this example, the branch has <b>3</b> nodes; the 'e'
    # element and <b>2</b> Text node children.
    def add_text( text )
      if text.kind_of? String
        if @children[-1].kind_of? Text
          @children[-1] << text
          return
        end
        text = Text.new( text, whitespace(), nil, raw() )
      end
      self << text unless text.nil?
      return self
    end

    def node_type
      :element
    end

    def xpath
      path_elements = []
      cur = self
      path_elements << __to_xpath_helper( self )
      while cur.parent
        cur = cur.parent
        path_elements << __to_xpath_helper( cur )
      end
      return path_elements.reverse.join( "/" )
    end

    #################################################
    # Attributes                                    #
    #################################################

    def attribute( name, namespace=nil )
      prefix = nil
      if namespaces.respond_to? :key
        prefix = namespaces.key(namespace) if namespace
      else
        prefix = namespaces.index(namespace) if namespace
      end
      prefix = nil if prefix == 'xmlns'

      ret_val =
        attributes.get_attribute( "#{prefix ? prefix + ':' : ''}#{name}" )

      return ret_val unless ret_val.nil?
      return nil if prefix.nil?

      # now check that prefix'es namespace is not the same as the
      # default namespace
      return nil unless ( namespaces[ prefix ] == namespaces[ 'xmlns' ] )

      attributes.get_attribute( name )

    end

    # Evaluates to +true+ if this element has any attributes set, false
    # otherwise.
    def has_attributes?
      return !@attributes.empty?
    end

    # Adds an attribute to this element, overwriting any existing attribute
    # by the same name.
    # key::
    #   can be either an Attribute or a String.  If an Attribute,
    #   the attribute is added to the list of Element attributes.  If String,
    #   the argument is used as the name of the new attribute, and the value
    #   parameter must be supplied.
    # value::
    #   Required if +key+ is a String, and ignored if the first argument is
    #   an Attribute.  This is a String, and is used as the value
    #   of the new Attribute.  This should be the unnormalized value of the
    #   attribute (without entities).
    # Returns:: the Attribute added
    #  e = Element.new 'e'
    #  e.add_attribute( 'a', 'b' )               #-> <e a='b'/>
    #  e.add_attribute( 'x:a', 'c' )             #-> <e a='b' x:a='c'/>
    #  e.add_attribute Attribute.new('b', 'd')   #-> <e a='b' x:a='c' b='d'/>
    def add_attribute( key, value=nil )
      if key.kind_of? Attribute
        @attributes << key
      else
        @attributes[key] = value
      end
    end

    # Add multiple attributes to this element.
    # hash:: is either a hash, or array of arrays
    #  el.add_attributes( {"name1"=>"value1", "name2"=>"value2"} )
    #  el.add_attributes( [ ["name1","value1"], ["name2"=>"value2"] ] )
    def add_attributes hash
      if hash.kind_of? Hash
        hash.each_pair {|key, value| @attributes[key] = value }
      elsif hash.kind_of? Array
        hash.each { |value| @attributes[ value[0] ] = value[1] }
      end
    end

    # Removes an attribute
    # key::
    #   either an Attribute or a String.  In either case, the
    #   attribute is found by matching the attribute name to the argument,
    #   and then removed.  If no attribute is found, no action is taken.
    # Returns::
    #   the attribute removed, or nil if this Element did not contain
    #   a matching attribute
    #  e = Element.new('E')
    #  e.add_attribute( 'name', 'Sean' )             #-> <E name='Sean'/>
    #  r = e.add_attribute( 'sur:name', 'Russell' )  #-> <E name='Sean' sur:name='Russell'/>
    #  e.delete_attribute( 'name' )                  #-> <E sur:name='Russell'/>
    #  e.delete_attribute( r )                       #-> <E/>
    def delete_attribute(key)
      attr = @attributes.get_attribute(key)
      attr.remove unless attr.nil?
    end

    #################################################
    # Other Utilities                               #
    #################################################

    # Get an array of all CData children.
    # IMMUTABLE
    def cdatas
      find_all { |child| child.kind_of? CData }.freeze
    end

    # Get an array of all Comment children.
    # IMMUTABLE
    def comments
      find_all { |child| child.kind_of? Comment }.freeze
    end

    # Get an array of all Instruction children.
    # IMMUTABLE
    def instructions
      find_all { |child| child.kind_of? Instruction }.freeze
    end

    # Get an array of all Text children.
    # IMMUTABLE
    def texts
      find_all { |child| child.kind_of? Text }.freeze
    end

    # == DEPRECATED
    # See REXML::Formatters
    #
    # Writes out this element, and recursively, all children.
    # output::
    #     output an object which supports '<< string'; this is where the
    #   document will be written.
    # indent::
    #   An integer.  If -1, no indenting will be used; otherwise, the
    #   indentation will be this number of spaces, and children will be
    #   indented an additional amount.  Defaults to -1
    # transitive::
    #   If transitive is true and indent is >= 0, then the output will be
    #   pretty-printed in such a way that the added whitespace does not affect
    #   the parse tree of the document
    # ie_hack::
    #   This hack inserts a space before the /> on empty tags to address
    #   a limitation of Internet Explorer.  Defaults to false
    #
    #  out = ''
    #  doc.write( out )     #-> doc is written to the string 'out'
    #  doc.write( $stdout ) #-> doc written to the console
    def write(output=$stdout, indent=-1, transitive=false, ie_hack=false)
      Kernel.warn("#{self.class.name}.write is deprecated.  See REXML::Formatters")
      formatter = if indent > -1
          if transitive
            require "rexml/formatters/transitive"
            REXML::Formatters::Transitive.new( indent, ie_hack )
          else
            REXML::Formatters::Pretty.new( indent, ie_hack )
          end
        else
          REXML::Formatters::Default.new( ie_hack )
        end
      formatter.write( self, output )
    end


    private
    def __to_xpath_helper node
      rv = node.expanded_name.clone
      if node.parent
        results = node.parent.find_all {|n|
          n.kind_of?(REXML::Element) and n.expanded_name == node.expanded_name
        }
        if results.length > 1
          idx = results.index( node )
          rv << "[#{idx+1}]"
        end
      end
      rv
    end

    # A private helper method
    def each_with_something( test, max=0, name=nil )
      num = 0
      @elements.each( name ){ |child|
        yield child if test.call(child) and num += 1
        return if max>0 and num == max
      }
    end
  end

  ########################################################################
  # ELEMENTS                                                             #
  ########################################################################

  # A class which provides filtering of children for Elements, and
  # XPath search support.  You are expected to only encounter this class as
  # the <tt>element.elements</tt> object.  Therefore, you are
  # _not_ expected to instantiate this yourself.
  class Elements
    include Enumerable
    # Constructor
    # parent:: the parent Element
    def initialize parent
      @element = parent
    end

    # Fetches a child element.  Filters only Element children, regardless of
    # the XPath match.
    # index::
    #   the search parameter.  This is either an Integer, which
    #   will be used to find the index'th child Element, or an XPath,
    #   which will be used to search for the Element.  <em>Because
    #   of the nature of XPath searches, any element in the connected XML
    #   document can be fetched through any other element.</em>  <b>The
    #   Integer index is 1-based, not 0-based.</b>  This means that the first
    #   child element is at index 1, not 0, and the +n+th element is at index
    #   +n+, not <tt>n-1</tt>.  This is because XPath indexes element children
    #   starting from 1, not 0, and the indexes should be the same.
    # name::
    #   optional, and only used in the first argument is an
    #   Integer.  In that case, the index'th child Element that has the
    #   supplied name will be returned.  Note again that the indexes start at 1.
    # Returns:: the first matching Element, or nil if no child matched
    #  doc = Document.new '<a><b/><c id="1"/><c id="2"/><d/></a>'
    #  doc.root.elements[1]       #-> <b/>
    #  doc.root.elements['c']     #-> <c id="1"/>
    #  doc.root.elements[2,'c']   #-> <c id="2"/>
    def []( index, name=nil)
      if index.kind_of? Integer
        raise "index (#{index}) must be >= 1" if index < 1
        name = literalize(name) if name
        num = 0
        @element.find { |child|
          child.kind_of? Element and
          (name.nil? ? true : child.has_name?( name )) and
          (num += 1) == index
        }
      else
        return XPath::first( @element, index )
        #{ |element|
        #       return element if element.kind_of? Element
        #}
        #return nil
      end
    end

    # Sets an element, replacing any previous matching element.  If no
    # existing element is found ,the element is added.
    # index:: Used to find a matching element to replace.  See []().
    # element::
    #   The element to replace the existing element with
    #   the previous element
    # Returns:: nil if no previous element was found.
    #
    #  doc = Document.new '<a/>'
    #  doc.root.elements[10] = Element.new('b')    #-> <a><b/></a>
    #  doc.root.elements[1]                        #-> <b/>
    #  doc.root.elements[1] = Element.new('c')     #-> <a><c/></a>
    #  doc.root.elements['c'] = Element.new('d')   #-> <a><d/></a>
    def []=( index, element )
      previous = self[index]
      if previous.nil?
        @element.add element
      else
        previous.replace_with element
      end
      return previous
    end

    # Returns +true+ if there are no +Element+ children, +false+ otherwise
    def empty?
      @element.find{ |child| child.kind_of? Element}.nil?
    end

    # Returns the index of the supplied child (starting at 1), or -1 if
    # the element is not a child
    # element:: an +Element+ child
    def index element
      rv = 0
      found = @element.find do |child|
        child.kind_of? Element and
        (rv += 1) and
        child == element
      end
      return rv if found == element
      return -1
    end

    # Deletes a child Element
    # element::
    #   Either an Element, which is removed directly; an
    #   xpath, where the first matching child is removed; or an Integer,
    #   where the n'th Element is removed.
    # Returns:: the removed child
    #  doc = Document.new '<a><b/><c/><c id="1"/></a>'
    #  b = doc.root.elements[1]
    #  doc.root.elements.delete b           #-> <a><c/><c id="1"/></a>
    #  doc.elements.delete("a/c[@id='1']")  #-> <a><c/></a>
    #  doc.root.elements.delete 1           #-> <a/>
    def delete element
      if element.kind_of? Element
        @element.delete element
      else
        el = self[element]
        el.remove if el
      end
    end

    # Removes multiple elements.  Filters for Element children, regardless of
    # XPath matching.
    # xpath:: all elements matching this String path are removed.
    # Returns:: an Array of Elements that have been removed
    #  doc = Document.new '<a><c/><c/><c/><c/></a>'
    #  deleted = doc.elements.delete_all 'a/c' #-> [<c/>, <c/>, <c/>, <c/>]
    def delete_all( xpath )
      rv = []
      XPath::each( @element, xpath) {|element|
        rv << element if element.kind_of? Element
      }
      rv.each do |element|
        @element.delete element
        element.remove
      end
      return rv
    end

    # Adds an element
    # element::
    #   if supplied, is either an Element, String, or
    #   Source (see Element.initialize).  If not supplied or nil, a
    #   new, default Element will be constructed
    # Returns:: the added Element
    #  a = Element.new('a')
    #  a.elements.add(Element.new('b'))  #-> <a><b/></a>
    #  a.elements.add('c')               #-> <a><b/><c/></a>
    def add element=nil
      if element.nil?
        Element.new("", self, @element.context)
      elsif not element.kind_of?(Element)
        Element.new(element, self, @element.context)
      else
        @element << element
        element.context = @element.context
        element
      end
    end

    alias :<< :add

    # Iterates through all of the child Elements, optionally filtering
    # them by a given XPath
    # xpath::
    #   optional.  If supplied, this is a String XPath, and is used to
    #   filter the children, so that only matching children are yielded.  Note
    #   that XPaths are automatically filtered for Elements, so that
    #   non-Element children will not be yielded
    #  doc = Document.new '<a><b/><c/><d/>sean<b/><c/><d/></a>'
    #  doc.root.elements.each {|e|p e}       #-> Yields b, c, d, b, c, d elements
    #  doc.root.elements.each('b') {|e|p e}  #-> Yields b, b elements
    #  doc.root.elements.each('child::node()')  {|e|p e}
    #  #-> Yields <b/>, <c/>, <d/>, <b/>, <c/>, <d/>
    #  XPath.each(doc.root, 'child::node()', &block)
    #  #-> Yields <b/>, <c/>, <d/>, sean, <b/>, <c/>, <d/>
    def each( xpath=nil )
      XPath::each( @element, xpath ) {|e| yield e if e.kind_of? Element }
    end

    def collect( xpath=nil )
      collection = []
      XPath::each( @element, xpath ) {|e|
        collection << yield(e)  if e.kind_of?(Element)
      }
      collection
    end

    def inject( xpath=nil, initial=nil )
      first = true
      XPath::each( @element, xpath ) {|e|
        if (e.kind_of? Element)
          if (first and initial == nil)
            initial = e
            first = false
          else
            initial = yield( initial, e ) if e.kind_of? Element
          end
        end
      }
      initial
    end

    # Returns the number of +Element+ children of the parent object.
    #  doc = Document.new '<a>sean<b/>elliott<b/>russell<b/></a>'
    #  doc.root.size            #-> 6, 3 element and 3 text nodes
    #  doc.root.elements.size   #-> 3
    def size
      count = 0
      @element.each {|child| count+=1 if child.kind_of? Element }
      count
    end

    # Returns an Array of Element children.  An XPath may be supplied to
    # filter the children.  Only Element children are returned, even if the
    # supplied XPath matches non-Element children.
    #  doc = Document.new '<a>sean<b/>elliott<c/></a>'
    #  doc.root.elements.to_a                  #-> [ <b/>, <c/> ]
    #  doc.root.elements.to_a("child::node()") #-> [ <b/>, <c/> ]
    #  XPath.match(doc.root, "child::node()")  #-> [ sean, <b/>, elliott, <c/> ]
    def to_a( xpath=nil )
      rv = XPath.match( @element, xpath )
      return rv.find_all{|e| e.kind_of? Element} if xpath
      rv
    end

    private
    # Private helper class.  Removes quotes from quoted strings
    def literalize name
      name = name[1..-2] if name[0] == ?' or name[0] == ?"               #'
      name
    end
  end

  ########################################################################
  # ATTRIBUTES                                                           #
  ########################################################################

  # A class that defines the set of Attributes of an Element and provides
  # operations for accessing elements in that set.
  class Attributes < Hash
    # Constructor
    # element:: the Element of which this is an Attribute
    def initialize element
      @element = element
    end

    # Fetches an attribute value.  If you want to get the Attribute itself,
    # use get_attribute()
    # name:: an XPath attribute name.  Namespaces are relevant here.
    # Returns::
    #   the String value of the matching attribute, or +nil+ if no
    #   matching attribute was found.  This is the unnormalized value
    #   (with entities expanded).
    #
    #  doc = Document.new "<a foo:att='1' bar:att='2' att='&lt;'/>"
    #  doc.root.attributes['att']         #-> '<'
    #  doc.root.attributes['bar:att']     #-> '2'
    def [](name)
      attr = get_attribute(name)
      return attr.value unless attr.nil?
      return nil
    end

    def to_a
      enum_for(:each_attribute).to_a
    end

    # Returns the number of attributes the owning Element contains.
    #  doc = Document "<a x='1' y='2' foo:x='3'/>"
    #  doc.root.attributes.length        #-> 3
    def length
      c = 0
      each_attribute { c+=1 }
      c
    end
    alias :size :length

    # Iterates over the attributes of an Element.  Yields actual Attribute
    # nodes, not String values.
    #
    #  doc = Document.new '<a x="1" y="2"/>'
    #  doc.root.attributes.each_attribute {|attr|
    #    p attr.expanded_name+" => "+attr.value
    #  }
    def each_attribute # :yields: attribute
      each_value do |val|
        if val.kind_of? Attribute
          yield val
        else
          val.each_value { |atr| yield atr }
        end
      end
    end

    # Iterates over each attribute of an Element, yielding the expanded name
    # and value as a pair of Strings.
    #
    #  doc = Document.new '<a x="1" y="2"/>'
    #  doc.root.attributes.each {|name, value| p name+" => "+value }
    def each
      each_attribute do |attr|
        yield [attr.expanded_name, attr.value]
      end
    end

    # Fetches an attribute
    # name::
    #   the name by which to search for the attribute.  Can be a
    #   <tt>prefix:name</tt> namespace name.
    # Returns:: The first matching attribute, or nil if there was none.  This
    # value is an Attribute node, not the String value of the attribute.
    #  doc = Document.new '<a x:foo="1" foo="2" bar="3"/>'
    #  doc.root.attributes.get_attribute("foo").value    #-> "2"
    #  doc.root.attributes.get_attribute("x:foo").value  #-> "1"
    def get_attribute( name )
      attr = fetch( name, nil )
      if attr.nil?
        return nil if name.nil?
        # Look for prefix
        name =~ Namespace::NAMESPLIT
        prefix, n = $1, $2
        if prefix
          attr = fetch( n, nil )
          # check prefix
          if attr == nil
          elsif attr.kind_of? Attribute
            return attr if prefix == attr.prefix
          else
            attr = attr[ prefix ]
            return attr
          end
        end
        element_document = @element.document
        if element_document and element_document.doctype
          expn = @element.expanded_name
          expn = element_document.doctype.name if expn.size == 0
          attr_val = element_document.doctype.attribute_of(expn, name)
          return Attribute.new( name, attr_val ) if attr_val
        end
        return nil
      end
      if attr.kind_of? Hash
        attr = attr[ @element.prefix ]
      end
      return attr
    end

    # Sets an attribute, overwriting any existing attribute value by the
    # same name.  Namespace is significant.
    # name:: the name of the attribute
    # value::
    #   (optional) If supplied, the value of the attribute.  If
    #   nil, any existing matching attribute is deleted.
    # Returns::
    #   Owning element
    #  doc = Document.new "<a x:foo='1' foo='3'/>"
    #  doc.root.attributes['y:foo'] = '2'
    #  doc.root.attributes['foo'] = '4'
    #  doc.root.attributes['x:foo'] = nil
    def []=( name, value )
      if value.nil?             # Delete the named attribute
        attr = get_attribute(name)
        delete attr
        return
      end

      unless value.kind_of? Attribute
        if @element.document and @element.document.doctype
          value = Text::normalize( value, @element.document.doctype )
        else
          value = Text::normalize( value, nil )
        end
        value = Attribute.new(name, value)
      end
      value.element = @element
      old_attr = fetch(value.name, nil)
      if old_attr.nil?
        store(value.name, value)
      elsif old_attr.kind_of? Hash
        old_attr[value.prefix] = value
      elsif old_attr.prefix != value.prefix
        # Check for conflicting namespaces
        raise ParseException.new(
          "Namespace conflict in adding attribute \"#{value.name}\": "+
          "Prefix \"#{old_attr.prefix}\" = "+
          "\"#{@element.namespace(old_attr.prefix)}\" and prefix "+
          "\"#{value.prefix}\" = \"#{@element.namespace(value.prefix)}\"") if
          value.prefix != "xmlns" and old_attr.prefix != "xmlns" and
          @element.namespace( old_attr.prefix ) ==
            @element.namespace( value.prefix )
          store value.name, { old_attr.prefix   => old_attr,
            value.prefix                => value }
      else
        store value.name, value
      end
      return @element
    end

    # Returns an array of Strings containing all of the prefixes declared
    # by this set of # attributes.  The array does not include the default
    # namespace declaration, if one exists.
    #  doc = Document.new("<a xmlns='foo' xmlns:x='bar' xmlns:y='twee' "+
    #        "z='glorp' p:k='gru'/>")
    #  prefixes = doc.root.attributes.prefixes    #-> ['x', 'y']
    def prefixes
      ns = []
      each_attribute do |attribute|
        ns << attribute.name if attribute.prefix == 'xmlns'
      end
      if @element.document and @element.document.doctype
        expn = @element.expanded_name
        expn = @element.document.doctype.name if expn.size == 0
        @element.document.doctype.attributes_of(expn).each {
          |attribute|
          ns << attribute.name if attribute.prefix == 'xmlns'
        }
      end
      ns
    end

    def namespaces
      namespaces = {}
      each_attribute do |attribute|
        namespaces[attribute.name] = attribute.value if attribute.prefix == 'xmlns' or attribute.name == 'xmlns'
      end
      if @element.document and @element.document.doctype
        expn = @element.expanded_name
        expn = @element.document.doctype.name if expn.size == 0
        @element.document.doctype.attributes_of(expn).each {
          |attribute|
          namespaces[attribute.name] = attribute.value if attribute.prefix == 'xmlns' or attribute.name == 'xmlns'
        }
      end
      namespaces
    end

    # Removes an attribute
    # attribute::
    #   either a String, which is the name of the attribute to remove --
    #   namespaces are significant here -- or the attribute to remove.
    # Returns:: the owning element
    #  doc = Document.new "<a y:foo='0' x:foo='1' foo='3' z:foo='4'/>"
    #  doc.root.attributes.delete 'foo'   #-> <a y:foo='0' x:foo='1' z:foo='4'/>"
    #  doc.root.attributes.delete 'x:foo' #-> <a y:foo='0' z:foo='4'/>"
    #  attr = doc.root.attributes.get_attribute('y:foo')
    #  doc.root.attributes.delete attr    #-> <a z:foo='4'/>"
    def delete( attribute )
      name = nil
      prefix = nil
      if attribute.kind_of? Attribute
        name = attribute.name
        prefix = attribute.prefix
      else
        attribute =~ Namespace::NAMESPLIT
        prefix, name = $1, $2
        prefix = '' unless prefix
      end
      old = fetch(name, nil)
      if old.kind_of? Hash # the supplied attribute is one of many
        old.delete(prefix)
        if old.size == 1
          repl = nil
          old.each_value{|v| repl = v}
          store name, repl
        end
      elsif old.nil?
        return @element
      else # the supplied attribute is a top-level one
        super(name)
      end
      @element
    end

    # Adds an attribute, overriding any existing attribute by the
    # same name.  Namespaces are significant.
    # attribute:: An Attribute
    def add( attribute )
      self[attribute.name] = attribute
    end

    alias :<< :add

    # Deletes all attributes matching a name.  Namespaces are significant.
    # name::
    #   A String; all attributes that match this path will be removed
    # Returns:: an Array of the Attributes that were removed
    def delete_all( name )
      rv = []
      each_attribute { |attribute|
        rv << attribute if attribute.expanded_name == name
      }
      rv.each{ |attr| attr.remove }
      return rv
    end

    # The +get_attribute_ns+ method retrieves a method by its namespace
    # and name. Thus it is possible to reliably identify an attribute
    # even if an XML processor has changed the prefix.
    #
    # Method contributed by Henrik Martensson
    def get_attribute_ns(namespace, name)
      result = nil
      each_attribute() { |attribute|
        if name == attribute.name &&
          namespace == attribute.namespace() &&
          ( !namespace.empty? || !attribute.fully_expanded_name.index(':') )
          # foo will match xmlns:foo, but only if foo isn't also an attribute
          result = attribute if !result or !namespace.empty? or
                                !attribute.fully_expanded_name.index(':')
        end
      }
      result
    end
  end
end
lib64/ruby/2.2.0/rexml/rexml.rb000064400000002445150402106420011706 0ustar00# -*- encoding: utf-8 -*-
# REXML is an XML toolkit for Ruby[http://www.ruby-lang.org], in Ruby.
#
# REXML is a _pure_ Ruby, XML 1.0 conforming,
# non-validating[http://www.w3.org/TR/2004/REC-xml-20040204/#sec-conformance]
# toolkit with an intuitive API.  REXML passes 100% of the non-validating Oasis
# tests[http://www.oasis-open.org/committees/xml-conformance/xml-test-suite.shtml],
# and provides tree, stream, SAX2, pull, and lightweight APIs.  REXML also
# includes a full XPath[http://www.w3c.org/tr/xpath] 1.0 implementation. Since
# Ruby 1.8, REXML is included in the standard Ruby distribution.
#
# Main page:: http://www.germane-software.com/software/rexml
# Author:: Sean Russell <serATgermaneHYPHENsoftwareDOTcom>
# Date:: 2008/019
# Version:: 3.1.7.3
#
# This API documentation can be downloaded from the REXML home page, or can
# be accessed online[http://www.germane-software.com/software/rexml_doc]
#
# A tutorial is available in the REXML distribution in docs/tutorial.html,
# or can be accessed
# online[http://www.germane-software.com/software/rexml/docs/tutorial.html]
module REXML
  COPYRIGHT = "Copyright © 2001-2008 Sean Russell <ser@germane-software.com>"
  DATE = "2008/019"
  VERSION = "3.1.7.3"
  REVISION = %w$Revision: 39528 $[1] || ''

  Copyright = COPYRIGHT
  Version = VERSION
end
lib64/ruby/2.2.0/rexml/namespace.rb000064400000002135150402106420012507 0ustar00require 'rexml/xmltokens'

module REXML
  # Adds named attributes to an object.
  module Namespace
    # The name of the object, valid if set
    attr_reader :name, :expanded_name
    # The expanded name of the object, valid if name is set
    attr_accessor :prefix
    include XMLTokens
    NAMESPLIT = /^(?:(#{NCNAME_STR}):)?(#{NCNAME_STR})/u

    # Sets the name and the expanded name
    def name=( name )
      @expanded_name = name
      name =~ NAMESPLIT
      if $1
        @prefix = $1
      else
        @prefix = ""
        @namespace = ""
      end
      @name = $2
    end

    # Compares names optionally WITH namespaces
    def has_name?( other, ns=nil )
      if ns
        return (namespace() == ns and name() == other)
      elsif other.include? ":"
        return fully_expanded_name == other
      else
        return name == other
      end
    end

    alias :local_name :name

    # Fully expand the name, even if the prefix wasn't specified in the
    # source file.
    def fully_expanded_name
      ns = prefix
      return "#{ns}:#@name" if ns.size > 0
      return @name
    end
  end
end
lib64/ruby/2.2.0/rexml/parseexception.rb000064400000002344150402106420013606 0ustar00module REXML
  class ParseException < RuntimeError
    attr_accessor :source, :parser, :continued_exception

    def initialize( message, source=nil, parser=nil, exception=nil )
      super(message)
      @source = source
      @parser = parser
      @continued_exception = exception
    end

    def to_s
      # Quote the original exception, if there was one
      if @continued_exception
        err = @continued_exception.inspect
        err << "\n"
        err << @continued_exception.backtrace.join("\n")
        err << "\n...\n"
      else
        err = ""
      end

      # Get the stack trace and error message
      err << super

      # Add contextual information
      if @source
        err << "\nLine: #{line}\n"
        err << "Position: #{position}\n"
        err << "Last 80 unconsumed characters:\n"
        err << @source.buffer[0..80].force_encoding("ASCII-8BIT").gsub(/\n/, ' ')
      end

      err
    end

    def position
      @source.current_line[0] if @source and defined? @source.current_line and
      @source.current_line
    end

    def line
      @source.current_line[2] if @source and defined? @source.current_line and
      @source.current_line
    end

    def context
      @source.current_line
    end
  end
end
lib64/ruby/2.2.0/rexml/syncenumerator.rb000064400000001255150402106420013633 0ustar00module REXML
  class SyncEnumerator
    include Enumerable

    # Creates a new SyncEnumerator which enumerates rows of given
    # Enumerable objects.
    def initialize(*enums)
      @gens = enums
      @length = @gens.collect {|x| x.size }.max
    end

    # Returns the number of enumerated Enumerable objects, i.e. the size
    # of each row.
    def size
      @gens.size
    end

    # Returns the number of enumerated Enumerable objects, i.e. the size
    # of each row.
    def length
      @gens.length
    end

    # Enumerates rows of the Enumerable objects.
    def each
      @length.times {|i|
        yield @gens.collect {|x| x[i]}
      }
      self
    end
  end
end
lib64/ruby/2.2.0/rexml/doctype.rb000064400000015124150402106420012224 0ustar00require "rexml/parent"
require "rexml/parseexception"
require "rexml/namespace"
require 'rexml/entity'
require 'rexml/attlistdecl'
require 'rexml/xmltokens'

module REXML
  # Represents an XML DOCTYPE declaration; that is, the contents of <!DOCTYPE
  # ... >.  DOCTYPES can be used to declare the DTD of a document, as well as
  # being used to declare entities used in the document.
  class DocType < Parent
    include XMLTokens
    START = "<!DOCTYPE"
    STOP = ">"
    SYSTEM = "SYSTEM"
    PUBLIC = "PUBLIC"
    DEFAULT_ENTITIES = {
      'gt'=>EntityConst::GT,
      'lt'=>EntityConst::LT,
      'quot'=>EntityConst::QUOT,
      "apos"=>EntityConst::APOS
    }

    # name is the name of the doctype
    # external_id is the referenced DTD, if given
    attr_reader :name, :external_id, :entities, :namespaces

    # Constructor
    #
    #   dt = DocType.new( 'foo', '-//I/Hate/External/IDs' )
    #   # <!DOCTYPE foo '-//I/Hate/External/IDs'>
    #   dt = DocType.new( doctype_to_clone )
    #   # Incomplete.  Shallow clone of doctype
    #
    # +Note+ that the constructor:
    #
    #  Doctype.new( Source.new( "<!DOCTYPE foo 'bar'>" ) )
    #
    # is _deprecated_.  Do not use it.  It will probably disappear.
    def initialize( first, parent=nil )
      @entities = DEFAULT_ENTITIES
      @long_name = @uri = nil
      if first.kind_of? String
        super()
        @name = first
        @external_id = parent
      elsif first.kind_of? DocType
        super( parent )
        @name = first.name
        @external_id = first.external_id
      elsif first.kind_of? Array
        super( parent )
        @name = first[0]
        @external_id = first[1]
        @long_name = first[2]
        @uri = first[3]
      elsif first.kind_of? Source
        super( parent )
        parser = Parsers::BaseParser.new( first )
        event = parser.pull
        if event[0] == :start_doctype
          @name, @external_id, @long_name, @uri, = event[1..-1]
        end
      else
        super()
      end
    end

    def node_type
      :doctype
    end

    def attributes_of element
      rv = []
      each do |child|
        child.each do |key,val|
          rv << Attribute.new(key,val)
        end if child.kind_of? AttlistDecl and child.element_name == element
      end
      rv
    end

    def attribute_of element, attribute
      att_decl = find do |child|
        child.kind_of? AttlistDecl and
        child.element_name == element and
        child.include? attribute
      end
      return nil unless att_decl
      att_decl[attribute]
    end

    def clone
      DocType.new self
    end

    # output::
    #   Where to write the string
    # indent::
    #   An integer.  If -1, no indentation will be used; otherwise, the
    #   indentation will be this number of spaces, and children will be
    #   indented an additional amount.
    # transitive::
    #   Ignored
    # ie_hack::
    #   Ignored
    def write( output, indent=0, transitive=false, ie_hack=false )
      f = REXML::Formatters::Default.new
      indent( output, indent )
      output << START
      output << ' '
      output << @name
      output << " #@external_id" if @external_id
      output << " #{@long_name.inspect}" if @long_name
      output << " #{@uri.inspect}" if @uri
      unless @children.empty?
        output << ' ['
        @children.each { |child|
          output << "\n"
          f.write( child, output )
        }
        output << "\n]"
      end
      output << STOP
    end

    def context
      @parent.context
    end

    def entity( name )
      @entities[name].unnormalized if @entities[name]
    end

    def add child
      super(child)
      @entities = DEFAULT_ENTITIES.clone if @entities == DEFAULT_ENTITIES
      @entities[ child.name ] = child if child.kind_of? Entity
    end

    # This method retrieves the public identifier identifying the document's
    # DTD.
    #
    # Method contributed by Henrik Martensson
    def public
      case @external_id
      when "SYSTEM"
        nil
      when "PUBLIC"
        strip_quotes(@long_name)
      end
    end

    # This method retrieves the system identifier identifying the document's DTD
    #
    # Method contributed by Henrik Martensson
    def system
      case @external_id
      when "SYSTEM"
        strip_quotes(@long_name)
      when "PUBLIC"
        @uri.kind_of?(String) ? strip_quotes(@uri) : nil
      end
    end

    # This method returns a list of notations that have been declared in the
    # _internal_ DTD subset. Notations in the external DTD subset are not
    # listed.
    #
    # Method contributed by Henrik Martensson
    def notations
      children().select {|node| node.kind_of?(REXML::NotationDecl)}
    end

    # Retrieves a named notation. Only notations declared in the internal
    # DTD subset can be retrieved.
    #
    # Method contributed by Henrik Martensson
    def notation(name)
      notations.find { |notation_decl|
        notation_decl.name == name
      }
    end

    private

    # Method contributed by Henrik Martensson
    def strip_quotes(quoted_string)
      quoted_string =~ /^[\'\"].*[\'\"]$/ ?
        quoted_string[1, quoted_string.length-2] :
        quoted_string
    end
  end

  # We don't really handle any of these since we're not a validating
  # parser, so we can be pretty dumb about them.  All we need to be able
  # to do is spew them back out on a write()

  # This is an abstract class.  You never use this directly; it serves as a
  # parent class for the specific declarations.
  class Declaration < Child
    def initialize src
      super()
      @string = src
    end

    def to_s
      @string+'>'
    end

    # == DEPRECATED
    # See REXML::Formatters
    #
    def write( output, indent )
      output << to_s
    end
  end

  public
  class ElementDecl < Declaration
    def initialize( src )
      super
    end
  end

  class ExternalEntity < Child
    def initialize( src )
      super()
      @entity = src
    end
    def to_s
      @entity
    end
    def write( output, indent )
      output << @entity
    end
  end

  class NotationDecl < Child
    attr_accessor :public, :system
    def initialize name, middle, pub, sys
      super(nil)
      @name = name
      @middle = middle
      @public = pub
      @system = sys
    end

    def to_s
      notation = "<!NOTATION #{@name} #{@middle}"
      notation << " #{@public.inspect}" if @public
      notation << " #{@system.inspect}" if @system
      notation << ">"
      notation
    end

    def write( output, indent=-1 )
      output << to_s
    end

    # This method retrieves the name of the notation.
    #
    # Method contributed by Henrik Martensson
    def name
      @name
    end
  end
end
lib64/ruby/2.2.0/rexml/dtd/elementdecl.rb000064400000000643150402106420013611 0ustar00require "rexml/child"
module REXML
  module DTD
    class ElementDecl < Child
      START = "<!ELEMENT"
      START_RE = /^\s*#{START}/um
      # PATTERN_RE = /^\s*(#{START}.*?)>/um
      PATTERN_RE = /^\s*#{START}\s+((?:[:\w][-\.\w]*:)?[-!\*\.\w]*)(.*?)>/
      #\s*((((["']).*?\5)|[^\/'">]*)*?)(\/)?>/um, true)

      def initialize match
        @name = match[1]
        @rest = match[2]
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/dtd/attlistdecl.rb000064400000000305150402106420013637 0ustar00require "rexml/child"
module REXML
  module DTD
    class AttlistDecl < Child
      START = "<!ATTLIST"
      START_RE = /^\s*#{START}/um
      PATTERN_RE = /\s*(#{START}.*?>)/um
    end
  end
end
lib64/ruby/2.2.0/rexml/dtd/notationdecl.rb000064400000002043150402106420014007 0ustar00require "rexml/child"
module REXML
  module DTD
    class NotationDecl < Child
      START = "<!NOTATION"
      START_RE = /^\s*#{START}/um
      PUBLIC = /^\s*#{START}\s+(\w[\w-]*)\s+(PUBLIC)\s+((["']).*?\4)\s*>/um
      SYSTEM = /^\s*#{START}\s+(\w[\w-]*)\s+(SYSTEM)\s+((["']).*?\4)\s*>/um
      def initialize src
        super()
        if src.match( PUBLIC )
          md = src.match( PUBLIC, true )
        elsif src.match( SYSTEM )
          md = src.match( SYSTEM, true )
        else
          raise ParseException.new( "error parsing notation: no matching pattern", src )
        end
        @name = md[1]
        @middle = md[2]
        @rest = md[3]
      end

      def to_s
        "<!NOTATION #@name #@middle #@rest>"
      end

      def write( output, indent )
        indent( output, indent )
        output << to_s
      end

      def NotationDecl.parse_source source, listener
        md = source.match( PATTERN_RE, true )
        thing = md[0].squeeze(" \t\n\r")
        listener.send inspect.downcase, thing
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/dtd/entitydecl.rb000064400000003201150402106420013465 0ustar00require "rexml/child"
module REXML
  module DTD
    class EntityDecl < Child
      START = "<!ENTITY"
      START_RE = /^\s*#{START}/um
      PUBLIC = /^\s*#{START}\s+(?:%\s+)?(\w+)\s+PUBLIC\s+((["']).*?\3)\s+((["']).*?\5)\s*>/um
      SYSTEM = /^\s*#{START}\s+(?:%\s+)?(\w+)\s+SYSTEM\s+((["']).*?\3)(?:\s+NDATA\s+\w+)?\s*>/um
      PLAIN = /^\s*#{START}\s+(\w+)\s+((["']).*?\3)\s*>/um
      PERCENT = /^\s*#{START}\s+%\s+(\w+)\s+((["']).*?\3)\s*>/um
      # <!ENTITY name SYSTEM "...">
      # <!ENTITY name "...">
      def initialize src
        super()
        md = nil
        if src.match( PUBLIC )
          md = src.match( PUBLIC, true )
          @middle = "PUBLIC"
          @content = "#{md[2]} #{md[4]}"
        elsif src.match( SYSTEM )
          md = src.match( SYSTEM, true )
          @middle = "SYSTEM"
          @content = md[2]
        elsif src.match( PLAIN )
          md = src.match( PLAIN, true )
          @middle = ""
          @content = md[2]
        elsif src.match( PERCENT )
          md = src.match( PERCENT, true )
          @middle = ""
          @content = md[2]
        end
        raise ParseException.new("failed Entity match", src) if md.nil?
        @name = md[1]
      end

      def to_s
        rv = "<!ENTITY #@name "
        rv << "#@middle " if @middle.size > 0
        rv << @content
        rv
      end

      def write( output, indent )
        indent( output, indent )
        output << to_s
      end

      def EntityDecl.parse_source source, listener
        md = source.match( PATTERN_RE, true )
        thing = md[0].squeeze(" \t\n\r")
        listener.send inspect.downcase, thing
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/dtd/dtd.rb000064400000002257150402106420012106 0ustar00require "rexml/dtd/elementdecl"
require "rexml/dtd/entitydecl"
require "rexml/comment"
require "rexml/dtd/notationdecl"
require "rexml/dtd/attlistdecl"
require "rexml/parent"

module REXML
  module DTD
    class Parser
      def Parser.parse( input )
        case input
        when String
          parse_helper input
        when File
          parse_helper input.read
        end
      end

      # Takes a String and parses it out
      def Parser.parse_helper( input )
        contents = Parent.new
        while input.size > 0
          case input
          when ElementDecl.PATTERN_RE
            match = $&
            contents << ElementDecl.new( match )
          when AttlistDecl.PATTERN_RE
            matchdata = $~
            contents << AttlistDecl.new( matchdata )
          when EntityDecl.PATTERN_RE
            matchdata = $~
            contents << EntityDecl.new( matchdata )
          when Comment.PATTERN_RE
            matchdata = $~
            contents << Comment.new( matchdata )
          when NotationDecl.PATTERN_RE
            matchdata = $~
            contents << NotationDecl.new( matchdata )
          end
        end
        contents
      end
    end
  end
end
lib64/ruby/2.2.0/rexml/node.rb000064400000004211150402106420011475 0ustar00require "rexml/parseexception"
require "rexml/formatters/pretty"
require "rexml/formatters/default"

module REXML
  # Represents a node in the tree.  Nodes are never encountered except as
  # superclasses of other objects.  Nodes have siblings.
  module Node
    # @return the next sibling (nil if unset)
    def next_sibling_node
      return nil if @parent.nil?
      @parent[ @parent.index(self) + 1 ]
    end

    # @return the previous sibling (nil if unset)
    def previous_sibling_node
      return nil if @parent.nil?
      ind = @parent.index(self)
      return nil if ind == 0
      @parent[ ind - 1 ]
    end

    # indent::
    #   *DEPRECATED* This parameter is now ignored.  See the formatters in the
    #   REXML::Formatters package for changing the output style.
    def to_s indent=nil
      unless indent.nil?
        Kernel.warn( "#{self.class.name}.to_s(indent) parameter is deprecated" )
        f = REXML::Formatters::Pretty.new( indent )
        f.write( self, rv = "" )
      else
        f = REXML::Formatters::Default.new
        f.write( self, rv = "" )
      end
      return rv
    end

    def indent to, ind
                        if @parent and @parent.context and not @parent.context[:indentstyle].nil? then
                                indentstyle = @parent.context[:indentstyle]
                        else
                                indentstyle = '  '
                        end
                        to << indentstyle*ind unless ind<1
    end

    def parent?
      false;
    end


    # Visit all subnodes of +self+ recursively
    def each_recursive(&block) # :yields: node
      self.elements.each {|node|
        block.call(node)
        node.each_recursive(&block)
      }
    end

    # Find (and return) first subnode (recursively) for which the block
    # evaluates to true. Returns +nil+ if none was found.
    def find_first_recursive(&block) # :yields: node
      each_recursive {|node|
        return node if block.call(node)
      }
      return nil
    end

    # Returns the position that +self+ holds in its parent's array, indexed
    # from 1.
    def index_in_parent
      parent.index(self)+1
    end
  end
end
lib64/ruby/2.2.0/rexml/xmldecl.rb000064400000005273150402106420012211 0ustar00require 'rexml/encoding'
require 'rexml/source'

module REXML
  # NEEDS DOCUMENTATION
  class XMLDecl < Child
    include Encoding

    DEFAULT_VERSION = "1.0";
    DEFAULT_ENCODING = "UTF-8";
    DEFAULT_STANDALONE = "no";
    START = '<\?xml';
    STOP = '\?>';

    attr_accessor :version, :standalone
    attr_reader :writeencoding, :writethis

    def initialize(version=DEFAULT_VERSION, encoding=nil, standalone=nil)
      @writethis = true
      @writeencoding = !encoding.nil?
      if version.kind_of? XMLDecl
        super()
        @version = version.version
        self.encoding = version.encoding
        @writeencoding = version.writeencoding
        @standalone = version.standalone
      else
        super()
        @version = version
        self.encoding = encoding
        @standalone = standalone
      end
      @version = DEFAULT_VERSION if @version.nil?
    end

    def clone
      XMLDecl.new(self)
    end

    # indent::
    #   Ignored.  There must be no whitespace before an XML declaration
    # transitive::
    #   Ignored
    # ie_hack::
    #   Ignored
    def write(writer, indent=-1, transitive=false, ie_hack=false)
      return nil unless @writethis or writer.kind_of? Output
      writer << START.sub(/\\/u, '')
      writer << " #{content encoding}"
      writer << STOP.sub(/\\/u, '')
    end

    def ==( other )
      other.kind_of?(XMLDecl) and
      other.version == @version and
      other.encoding == self.encoding and
      other.standalone == @standalone
    end

    def xmldecl version, encoding, standalone
      @version = version
      self.encoding = encoding
      @standalone = standalone
    end

    def node_type
      :xmldecl
    end

    alias :stand_alone? :standalone
    alias :old_enc= :encoding=

    def encoding=( enc )
      if enc.nil?
        self.old_enc = "UTF-8"
        @writeencoding = false
      else
        self.old_enc = enc
        @writeencoding = true
      end
      self.dowrite
    end

    # Only use this if you do not want the XML declaration to be written;
    # this object is ignored by the XML writer.  Otherwise, instantiate your
    # own XMLDecl and add it to the document.
    #
    # Note that XML 1.1 documents *must* include an XML declaration
    def XMLDecl.default
      rv = XMLDecl.new( "1.0" )
      rv.nowrite
      rv
    end

    def nowrite
      @writethis = false
    end

    def dowrite
      @writethis = true
    end

    def inspect
      START.sub(/\\/u, '') + " ... " + STOP.sub(/\\/u, '')
    end

    private
    def content(enc)
      rv = "version='#@version'"
      rv << " encoding='#{enc}'" if @writeencoding || enc !~ /\Autf-8\z/i
      rv << " standalone='#@standalone'" if @standalone
      rv
    end
  end
end
lib64/ruby/2.2.0/prime.rb000064400000032157150402106430010550 0ustar00#
# = prime.rb
#
# Prime numbers and factorization library.
#
# Copyright::
#   Copyright (c) 1998-2008 Keiju ISHITSUKA(SHL Japan Inc.)
#   Copyright (c) 2008 Yuki Sonoda (Yugui) <yugui@yugui.jp>
#
# Documentation::
#   Yuki Sonoda
#

require "singleton"
require "forwardable"

class Integer
  # Re-composes a prime factorization and returns the product.
  #
  # See Prime#int_from_prime_division for more details.
  def Integer.from_prime_division(pd)
    Prime.int_from_prime_division(pd)
  end

  # Returns the factorization of +self+.
  #
  # See Prime#prime_division for more details.
  def prime_division(generator = Prime::Generator23.new)
    Prime.prime_division(self, generator)
  end

  # Returns true if +self+ is a prime number, else returns false.
  def prime?
    Prime.prime?(self)
  end

  # Iterates the given block over all prime numbers.
  #
  # See +Prime+#each for more details.
  def Integer.each_prime(ubound, &block) # :yields: prime
    Prime.each(ubound, &block)
  end
end

#
# The set of all prime numbers.
#
# == Example
#
#   Prime.each(100) do |prime|
#     p prime  #=> 2, 3, 5, 7, 11, ...., 97
#   end
#
# Prime is Enumerable:
#
#   Prime.first 5 # => [2, 3, 5, 7, 11]
#
# == Retrieving the instance
#
# +Prime+.new is obsolete. Now +Prime+ has the default instance and you can
# access it as +Prime+.instance.
#
# For convenience, each instance method of +Prime+.instance can be accessed
# as a class method of +Prime+.
#
# e.g.
#   Prime.instance.prime?(2)  #=> true
#   Prime.prime?(2)           #=> true
#
# == Generators
#
# A "generator" provides an implementation of enumerating pseudo-prime
# numbers and it remembers the position of enumeration and upper bound.
# Furthermore, it is an external iterator of prime enumeration which is
# compatible with an Enumerator.
#
# +Prime+::+PseudoPrimeGenerator+ is the base class for generators.
# There are few implementations of generator.
#
# [+Prime+::+EratosthenesGenerator+]
#   Uses eratosthenes' sieve.
# [+Prime+::+TrialDivisionGenerator+]
#   Uses the trial division method.
# [+Prime+::+Generator23+]
#   Generates all positive integers which are not divisible by either 2 or 3.
#   This sequence is very bad as a pseudo-prime sequence. But this
#   is faster and uses much less memory than the other generators. So,
#   it is suitable for factorizing an integer which is not large but
#   has many prime factors. e.g. for Prime#prime? .

class Prime
  include Enumerable
  @the_instance = Prime.new

  # obsolete. Use +Prime+::+instance+ or class methods of +Prime+.
  def initialize
    @generator = EratosthenesGenerator.new
    extend OldCompatibility
    warn "Prime::new is obsolete. use Prime::instance or class methods of Prime."
  end

  class << self
    extend Forwardable
    include Enumerable
    # Returns the default instance of Prime.
    def instance; @the_instance end

    def method_added(method) # :nodoc:
      (class<< self;self;end).def_delegator :instance, method
    end
  end

  # Iterates the given block over all prime numbers.
  #
  # == Parameters
  #
  # +ubound+::
  #   Optional. An arbitrary positive number.
  #   The upper bound of enumeration. The method enumerates
  #   prime numbers infinitely if +ubound+ is nil.
  # +generator+::
  #   Optional. An implementation of pseudo-prime generator.
  #
  # == Return value
  #
  # An evaluated value of the given block at the last time.
  # Or an enumerator which is compatible to an +Enumerator+
  # if no block given.
  #
  # == Description
  #
  # Calls +block+ once for each prime number, passing the prime as
  # a parameter.
  #
  # +ubound+::
  #   Upper bound of prime numbers. The iterator stops after it
  #   yields all prime numbers p <= +ubound+.
  #
  # == Note
  #
  # +Prime+.+new+ returns an object extended by +Prime+::+OldCompatibility+
  # in order to be compatible with Ruby 1.8, and +Prime+#each is overwritten
  # by +Prime+::+OldCompatibility+#+each+.
  #
  # +Prime+.+new+ is now obsolete. Use +Prime+.+instance+.+each+ or simply
  # +Prime+.+each+.
  def each(ubound = nil, generator = EratosthenesGenerator.new, &block)
    generator.upper_bound = ubound
    generator.each(&block)
  end


  # Returns true if +value+ is a prime number, else returns false.
  #
  # == Parameters
  #
  # +value+:: an arbitrary integer to be checked.
  # +generator+:: optional. A pseudo-prime generator.
  def prime?(value, generator = Prime::Generator23.new)
    return false if value < 2
    for num in generator
      q,r = value.divmod num
      return true if q < num
      return false if r == 0
    end
  end

  # Re-composes a prime factorization and returns the product.
  #
  # == Parameters
  # +pd+:: Array of pairs of integers. The each internal
  #        pair consists of a prime number -- a prime factor --
  #        and a natural number -- an exponent.
  #
  # == Example
  # For <tt>[[p_1, e_1], [p_2, e_2], ...., [p_n, e_n]]</tt>, it returns:
  #
  #   p_1**e_1 * p_2**e_2 * .... * p_n**e_n.
  #
  #   Prime.int_from_prime_division([[2,2], [3,1]])  #=> 12
  def int_from_prime_division(pd)
    pd.inject(1){|value, (prime, index)|
      value * prime**index
    }
  end

  # Returns the factorization of +value+.
  #
  # == Parameters
  # +value+:: An arbitrary integer.
  # +generator+:: Optional. A pseudo-prime generator.
  #               +generator+.succ must return the next
  #               pseudo-prime number in the ascending
  #               order. It must generate all prime numbers,
  #               but may also generate non prime numbers too.
  #
  # === Exceptions
  # +ZeroDivisionError+:: when +value+ is zero.
  #
  # == Example
  # For an arbitrary integer:
  #
  #   n = p_1**e_1 * p_2**e_2 * .... * p_n**e_n,
  #
  # prime_division(n) returns:
  #
  #   [[p_1, e_1], [p_2, e_2], ...., [p_n, e_n]].
  #
  #   Prime.prime_division(12) #=> [[2,2], [3,1]]
  #
  def prime_division(value, generator = Prime::Generator23.new)
    raise ZeroDivisionError if value == 0
    if value < 0
      value = -value
      pv = [[-1, 1]]
    else
      pv = []
    end
    for prime in generator
      count = 0
      while (value1, mod = value.divmod(prime)
             mod) == 0
        value = value1
        count += 1
      end
      if count != 0
        pv.push [prime, count]
      end
      break if value1 <= prime
    end
    if value > 1
      pv.push [value, 1]
    end
    return pv
  end

  # An abstract class for enumerating pseudo-prime numbers.
  #
  # Concrete subclasses should override succ, next, rewind.
  class PseudoPrimeGenerator
    include Enumerable

    def initialize(ubound = nil)
      @ubound = ubound
    end

    def upper_bound=(ubound)
      @ubound = ubound
    end
    def upper_bound
      @ubound
    end

    # returns the next pseudo-prime number, and move the internal
    # position forward.
    #
    # +PseudoPrimeGenerator+#succ raises +NotImplementedError+.
    def succ
      raise NotImplementedError, "need to define `succ'"
    end

    # alias of +succ+.
    def next
      raise NotImplementedError, "need to define `next'"
    end

    # Rewinds the internal position for enumeration.
    #
    # See +Enumerator+#rewind.
    def rewind
      raise NotImplementedError, "need to define `rewind'"
    end

    # Iterates the given block for each prime number.
    def each
      return self.dup unless block_given?
      if @ubound
        last_value = nil
        loop do
          prime = succ
          break last_value if prime > @ubound
          last_value = yield prime
        end
      else
        loop do
          yield succ
        end
      end
    end

    # see +Enumerator+#with_index.
    alias with_index each_with_index

    # see +Enumerator+#with_object.
    def with_object(obj)
      return enum_for(:with_object) unless block_given?
      each do |prime|
        yield prime, obj
      end
    end
  end

  # An implementation of +PseudoPrimeGenerator+.
  #
  # Uses +EratosthenesSieve+.
  class EratosthenesGenerator < PseudoPrimeGenerator
    def initialize
      @last_prime_index = -1
      super
    end

    def succ
      @last_prime_index += 1
      EratosthenesSieve.instance.get_nth_prime(@last_prime_index)
    end
    def rewind
      initialize
    end
    alias next succ
  end

  # An implementation of +PseudoPrimeGenerator+ which uses
  # a prime table generated by trial division.
  class TrialDivisionGenerator<PseudoPrimeGenerator
    def initialize
      @index = -1
      super
    end

    def succ
      TrialDivision.instance[@index += 1]
    end
    def rewind
      initialize
    end
    alias next succ
  end

  # Generates all integers which are greater than 2 and
  # are not divisible by either 2 or 3.
  #
  # This is a pseudo-prime generator, suitable on
  # checking primality of an integer by brute force
  # method.
  class Generator23<PseudoPrimeGenerator
    def initialize
      @prime = 1
      @step = nil
      super
    end

    def succ
      if (@step)
        @prime += @step
        @step = 6 - @step
      else
        case @prime
        when 1; @prime = 2
        when 2; @prime = 3
        when 3; @prime = 5; @step = 2
        end
      end
      return @prime
    end
    alias next succ
    def rewind
      initialize
    end
  end

  # Internal use. An implementation of prime table by trial division method.
  class TrialDivision
    include Singleton

    def initialize # :nodoc:
      # These are included as class variables to cache them for later uses.  If memory
      #   usage is a problem, they can be put in Prime#initialize as instance variables.

      # There must be no primes between @primes[-1] and @next_to_check.
      @primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101]
      # @next_to_check % 6 must be 1.
      @next_to_check = 103            # @primes[-1] - @primes[-1] % 6 + 7
      @ulticheck_index = 3            # @primes.index(@primes.reverse.find {|n|
      #   n < Math.sqrt(@@next_to_check) })
      @ulticheck_next_squared = 121   # @primes[@ulticheck_index + 1] ** 2
    end

    # Returns the cached prime numbers.
    def cache
      return @primes
    end
    alias primes cache
    alias primes_so_far cache

    # Returns the +index+th prime number.
    #
    # +index+ is a 0-based index.
    def [](index)
      while index >= @primes.length
        # Only check for prime factors up to the square root of the potential primes,
        #   but without the performance hit of an actual square root calculation.
        if @next_to_check + 4 > @ulticheck_next_squared
          @ulticheck_index += 1
          @ulticheck_next_squared = @primes.at(@ulticheck_index + 1) ** 2
        end
        # Only check numbers congruent to one and five, modulo six. All others

        #   are divisible by two or three.  This also allows us to skip checking against
        #   two and three.
        @primes.push @next_to_check if @primes[2..@ulticheck_index].find {|prime| @next_to_check % prime == 0 }.nil?
        @next_to_check += 4
        @primes.push @next_to_check if @primes[2..@ulticheck_index].find {|prime| @next_to_check % prime == 0 }.nil?
        @next_to_check += 2
      end
      return @primes[index]
    end
  end

  # Internal use. An implementation of eratosthenes' sieve
  class EratosthenesSieve
    include Singleton

    def initialize
      @primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101]
      # @max_checked must be an even number
      @max_checked = @primes.last + 1
    end

    def get_nth_prime(n)
      compute_primes while @primes.size <= n
      @primes[n]
    end

    private
    def compute_primes
      # max_segment_size must be an even number
      max_segment_size = 1e6.to_i
      max_cached_prime = @primes.last
      # do not double count primes if #compute_primes is interrupted
      # by Timeout.timeout
      @max_checked = max_cached_prime + 1 if max_cached_prime > @max_checked

      segment_min = @max_checked
      segment_max = [segment_min + max_segment_size, max_cached_prime * 2].min
      root = Integer(Math.sqrt(segment_max).floor)

      sieving_primes = @primes[1 .. -1].take_while { |prime| prime <= root }
      offsets = Array.new(sieving_primes.size) do |i|
        (-(segment_min + 1 + sieving_primes[i]) / 2) % sieving_primes[i]
      end

      segment = ((segment_min + 1) .. segment_max).step(2).to_a
      sieving_primes.each_with_index do |prime, index|
        composite_index = offsets[index]
        while composite_index < segment.size do
          segment[composite_index] = nil
          composite_index += prime
        end
      end

      segment.each do |prime|
        @primes.push prime unless prime.nil?
      end
      @max_checked = segment_max
    end
  end

  # Provides a +Prime+ object with compatibility to Ruby 1.8 when instantiated via +Prime+.+new+.
  module OldCompatibility
    # Returns the next prime number and forwards internal pointer.
    def succ
      @generator.succ
    end
    alias next succ

    # Overwrites Prime#each.
    #
    # Iterates the given block over all prime numbers. Note that enumeration
    # starts from the current position of internal pointer, not rewound.
    def each
      return @generator.dup unless block_given?
      loop do
        yield succ
      end
    end
  end
end
lib64/ruby/2.2.0/open-uri.rb000064400000061127150402106430011171 0ustar00require 'uri'
require 'stringio'
require 'time'

module Kernel
  private
  alias open_uri_original_open open # :nodoc:
  class << self
    alias open_uri_original_open open # :nodoc:
  end

  # Allows the opening of various resources including URIs.
  #
  # If the first argument responds to the 'open' method, 'open' is called on
  # it with the rest of the arguments.
  #
  # If the first argument is a string that begins with xxx://, it is parsed by
  # URI.parse.  If the parsed object responds to the 'open' method,
  # 'open' is called on it with the rest of the arguments.
  #
  # Otherwise, the original Kernel#open is called.
  #
  # OpenURI::OpenRead#open provides URI::HTTP#open, URI::HTTPS#open and
  # URI::FTP#open, Kernel#open.
  #
  # We can accept URIs and strings that begin with http://, https:// and
  # ftp://. In these cases, the opened file object is extended by OpenURI::Meta.
  def open(name, *rest, &block) # :doc:
    if name.respond_to?(:open)
      name.open(*rest, &block)
    elsif name.respond_to?(:to_str) &&
          %r{\A[A-Za-z][A-Za-z0-9+\-\.]*://} =~ name &&
          (uri = URI.parse(name)).respond_to?(:open)
      uri.open(*rest, &block)
    else
      open_uri_original_open(name, *rest, &block)
    end
  end
  module_function :open
end

# OpenURI is an easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP.
#
# == Example
#
# It is possible to open an http, https or ftp URL as though it were a file:
#
#   open("http://www.ruby-lang.org/") {|f|
#     f.each_line {|line| p line}
#   }
#
# The opened file has several getter methods for its meta-information, as
# follows, since it is extended by OpenURI::Meta.
#
#   open("http://www.ruby-lang.org/en") {|f|
#     f.each_line {|line| p line}
#     p f.base_uri         # <URI::HTTP:0x40e6ef2 URL:http://www.ruby-lang.org/en/>
#     p f.content_type     # "text/html"
#     p f.charset          # "iso-8859-1"
#     p f.content_encoding # []
#     p f.last_modified    # Thu Dec 05 02:45:02 UTC 2002
#   }
#
# Additional header fields can be specified by an optional hash argument.
#
#   open("http://www.ruby-lang.org/en/",
#     "User-Agent" => "Ruby/#{RUBY_VERSION}",
#     "From" => "foo@bar.invalid",
#     "Referer" => "http://www.ruby-lang.org/") {|f|
#     # ...
#   }
#
# The environment variables such as http_proxy, https_proxy and ftp_proxy
# are in effect by default. Here we disable proxy:
#
#   open("http://www.ruby-lang.org/en/", :proxy => nil) {|f|
#     # ...
#   }
#
# See OpenURI::OpenRead.open and Kernel#open for more on available options.
#
# URI objects can be opened in a similar way.
#
#   uri = URI.parse("http://www.ruby-lang.org/en/")
#   uri.open {|f|
#     # ...
#   }
#
# URI objects can be read directly. The returned string is also extended by
# OpenURI::Meta.
#
#   str = uri.read
#   p str.base_uri
#
# Author:: Tanaka Akira <akr@m17n.org>

module OpenURI
  Options = {
    :proxy => true,
    :proxy_http_basic_authentication => true,
    :progress_proc => true,
    :content_length_proc => true,
    :http_basic_authentication => true,
    :read_timeout => true,
    :open_timeout => true,
    :ssl_ca_cert => nil,
    :ssl_verify_mode => nil,
    :ftp_active_mode => false,
    :redirect => true,
  }

  def OpenURI.check_options(options) # :nodoc:
    options.each {|k, v|
      next unless Symbol === k
      unless Options.include? k
        raise ArgumentError, "unrecognized option: #{k}"
      end
    }
  end

  def OpenURI.scan_open_optional_arguments(*rest) # :nodoc:
    if !rest.empty? && (String === rest.first || Integer === rest.first)
      mode = rest.shift
      if !rest.empty? && Integer === rest.first
        perm = rest.shift
      end
    end
    return mode, perm, rest
  end

  def OpenURI.open_uri(name, *rest) # :nodoc:
    uri = URI::Generic === name ? name : URI.parse(name)
    mode, _, rest = OpenURI.scan_open_optional_arguments(*rest)
    options = rest.shift if !rest.empty? && Hash === rest.first
    raise ArgumentError.new("extra arguments") if !rest.empty?
    options ||= {}
    OpenURI.check_options(options)

    if /\Arb?(?:\Z|:([^:]+))/ =~ mode
      encoding, = $1,Encoding.find($1) if $1
      mode = nil
    end

    unless mode == nil ||
           mode == 'r' || mode == 'rb' ||
           mode == File::RDONLY
      raise ArgumentError.new("invalid access mode #{mode} (#{uri.class} resource is read only.)")
    end

    io = open_loop(uri, options)
    io.set_encoding(encoding) if encoding
    if block_given?
      begin
        yield io
      ensure
        if io.respond_to? :close!
          io.close! # Tempfile
        else
          io.close if !io.closed?
        end
      end
    else
      io
    end
  end

  def OpenURI.open_loop(uri, options) # :nodoc:
    proxy_opts = []
    proxy_opts << :proxy_http_basic_authentication if options.include? :proxy_http_basic_authentication
    proxy_opts << :proxy if options.include? :proxy
    proxy_opts.compact!
    if 1 < proxy_opts.length
      raise ArgumentError, "multiple proxy options specified"
    end
    case proxy_opts.first
    when :proxy_http_basic_authentication
      opt_proxy, proxy_user, proxy_pass = options.fetch(:proxy_http_basic_authentication)
      proxy_user = proxy_user.to_str
      proxy_pass = proxy_pass.to_str
      if opt_proxy == true
        raise ArgumentError.new("Invalid authenticated proxy option: #{options[:proxy_http_basic_authentication].inspect}")
      end
    when :proxy
      opt_proxy = options.fetch(:proxy)
      proxy_user = nil
      proxy_pass = nil
    when nil
      opt_proxy = true
      proxy_user = nil
      proxy_pass = nil
    end
    case opt_proxy
    when true
      find_proxy = lambda {|u| pxy = u.find_proxy; pxy ? [pxy, nil, nil] : nil}
    when nil, false
      find_proxy = lambda {|u| nil}
    when String
      opt_proxy = URI.parse(opt_proxy)
      find_proxy = lambda {|u| [opt_proxy, proxy_user, proxy_pass]}
    when URI::Generic
      find_proxy = lambda {|u| [opt_proxy, proxy_user, proxy_pass]}
    else
      raise ArgumentError.new("Invalid proxy option: #{opt_proxy}")
    end

    uri_set = {}
    buf = nil
    while true
      redirect = catch(:open_uri_redirect) {
        buf = Buffer.new
        uri.buffer_open(buf, find_proxy.call(uri), options)
        nil
      }
      if redirect
        if redirect.relative?
          # Although it violates RFC2616, Location: field may have relative
          # URI.  It is converted to absolute URI using uri as a base URI.
          redirect = uri + redirect
        end
        if !options.fetch(:redirect, true)
          raise HTTPRedirect.new(buf.io.status.join(' '), buf.io, redirect)
        end
        unless OpenURI.redirectable?(uri, redirect)
          raise "redirection forbidden: #{uri} -> #{redirect}"
        end
        if options.include? :http_basic_authentication
          # send authentication only for the URI directly specified.
          options = options.dup
          options.delete :http_basic_authentication
        end
        uri = redirect
        raise "HTTP redirection loop: #{uri}" if uri_set.include? uri.to_s
        uri_set[uri.to_s] = true
      else
        break
      end
    end
    io = buf.io
    io.base_uri = uri
    io
  end

  def OpenURI.redirectable?(uri1, uri2) # :nodoc:
    # This test is intended to forbid a redirection from http://... to
    # file:///etc/passwd, file:///dev/zero, etc.  CVE-2011-1521
    # https to http redirect is also forbidden intentionally.
    # It avoids sending secure cookie or referer by non-secure HTTP protocol.
    # (RFC 2109 4.3.1, RFC 2965 3.3, RFC 2616 15.1.3)
    # However this is ad hoc.  It should be extensible/configurable.
    uri1.scheme.downcase == uri2.scheme.downcase ||
    (/\A(?:http|ftp)\z/i =~ uri1.scheme && /\A(?:http|ftp)\z/i =~ uri2.scheme)
  end

  def OpenURI.open_http(buf, target, proxy, options) # :nodoc:
    if proxy
      proxy_uri, proxy_user, proxy_pass = proxy
      raise "Non-HTTP proxy URI: #{proxy_uri}" if proxy_uri.class != URI::HTTP
    end

    if target.userinfo
      raise ArgumentError, "userinfo not supported.  [RFC3986]"
    end

    header = {}
    options.each {|k, v| header[k] = v if String === k }

    require 'net/http'
    klass = Net::HTTP
    if URI::HTTP === target
      # HTTP or HTTPS
      if proxy
        if proxy_user && proxy_pass
          klass = Net::HTTP::Proxy(proxy_uri.hostname, proxy_uri.port, proxy_user, proxy_pass)
        else
          klass = Net::HTTP::Proxy(proxy_uri.hostname, proxy_uri.port)
        end
      end
      target_host = target.hostname
      target_port = target.port
      request_uri = target.request_uri
    else
      # FTP over HTTP proxy
      target_host = proxy_uri.hostname
      target_port = proxy_uri.port
      request_uri = target.to_s
      if proxy_user && proxy_pass
        header["Proxy-Authorization"] = 'Basic ' + ["#{proxy_user}:#{proxy_pass}"].pack('m').delete("\r\n")
      end
    end

    http = proxy ? klass.new(target_host, target_port) : klass.new(target_host, target_port, nil)
    if target.class == URI::HTTPS
      require 'net/https'
      http.use_ssl = true
      http.verify_mode = options[:ssl_verify_mode] || OpenSSL::SSL::VERIFY_PEER
      store = OpenSSL::X509::Store.new
      if options[:ssl_ca_cert]
        Array(options[:ssl_ca_cert]).each do |cert|
          if File.directory? cert
            store.add_path cert
          else
            store.add_file cert
          end
        end
      else
        store.set_default_paths
      end
      http.cert_store = store
    end
    if options.include? :read_timeout
      http.read_timeout = options[:read_timeout]
    end
    if options.include? :open_timeout
      http.open_timeout = options[:open_timeout]
    end

    resp = nil
    http.start {
      req = Net::HTTP::Get.new(request_uri, header)
      if options.include? :http_basic_authentication
        user, pass = options[:http_basic_authentication]
        req.basic_auth user, pass
      end
      http.request(req) {|response|
        resp = response
        if options[:content_length_proc] && Net::HTTPSuccess === resp
          if resp.key?('Content-Length')
            options[:content_length_proc].call(resp['Content-Length'].to_i)
          else
            options[:content_length_proc].call(nil)
          end
        end
        resp.read_body {|str|
          buf << str
          if options[:progress_proc] && Net::HTTPSuccess === resp
            options[:progress_proc].call(buf.size)
          end
        }
      }
    }
    io = buf.io
    io.rewind
    io.status = [resp.code, resp.message]
    resp.each_name {|name| buf.io.meta_add_field2 name, resp.get_fields(name) }
    case resp
    when Net::HTTPSuccess
    when Net::HTTPMovedPermanently, # 301
         Net::HTTPFound, # 302
         Net::HTTPSeeOther, # 303
         Net::HTTPTemporaryRedirect # 307
      begin
        loc_uri = URI.parse(resp['location'])
      rescue URI::InvalidURIError
        raise OpenURI::HTTPError.new(io.status.join(' ') + ' (Invalid Location URI)', io)
      end
      throw :open_uri_redirect, loc_uri
    else
      raise OpenURI::HTTPError.new(io.status.join(' '), io)
    end
  end

  class HTTPError < StandardError
    def initialize(message, io)
      super(message)
      @io = io
    end
    attr_reader :io
  end

  # Raised on redirection,
  # only occurs when +redirect+ option for HTTP is +false+.
  class HTTPRedirect < HTTPError
    def initialize(message, io, uri)
      super(message, io)
      @uri = uri
    end
    attr_reader :uri
  end

  class Buffer # :nodoc: all
    def initialize
      @io = StringIO.new
      @size = 0
    end
    attr_reader :size

    StringMax = 10240
    def <<(str)
      @io << str
      @size += str.length
      if StringIO === @io && StringMax < @size
        require 'tempfile'
        io = Tempfile.new('open-uri')
        io.binmode
        Meta.init io, @io if Meta === @io
        io << @io.string
        @io = io
      end
    end

    def io
      Meta.init @io unless Meta === @io
      @io
    end
  end

  # Mixin for holding meta-information.
  module Meta
    def Meta.init(obj, src=nil) # :nodoc:
      obj.extend Meta
      obj.instance_eval {
        @base_uri = nil
        @meta = {} # name to string.  legacy.
        @metas = {} # name to array of strings.
      }
      if src
        obj.status = src.status
        obj.base_uri = src.base_uri
        src.metas.each {|name, values|
          obj.meta_add_field2(name, values)
        }
      end
    end

    # returns an Array that consists of status code and message.
    attr_accessor :status

    # returns a URI that is the base of relative URIs in the data.
    # It may differ from the URI supplied by a user due to redirection.
    attr_accessor :base_uri

    # returns a Hash that represents header fields.
    # The Hash keys are downcased for canonicalization.
    # The Hash values are a field body.
    # If there are multiple field with same field name,
    # the field values are concatenated with a comma.
    attr_reader :meta

    # returns a Hash that represents header fields.
    # The Hash keys are downcased for canonicalization.
    # The Hash value are an array of field values.
    attr_reader :metas

    def meta_setup_encoding # :nodoc:
      charset = self.charset
      enc = nil
      if charset
        begin
          enc = Encoding.find(charset)
        rescue ArgumentError
        end
      end
      enc = Encoding::ASCII_8BIT unless enc
      if self.respond_to? :force_encoding
        self.force_encoding(enc)
      elsif self.respond_to? :string
        self.string.force_encoding(enc)
      else # Tempfile
        self.set_encoding enc
      end
    end

    def meta_add_field2(name, values) # :nodoc:
      name = name.downcase
      @metas[name] = values
      @meta[name] = values.join(', ')
      meta_setup_encoding if name == 'content-type'
    end

    def meta_add_field(name, value) # :nodoc:
      meta_add_field2(name, [value])
    end

    # returns a Time that represents the Last-Modified field.
    def last_modified
      if vs = @metas['last-modified']
        v = vs.join(', ')
        Time.httpdate(v)
      else
        nil
      end
    end

    # :stopdoc:
    RE_LWS = /[\r\n\t ]+/n
    RE_TOKEN = %r{[^\x00- ()<>@,;:\\"/\[\]?={}\x7f]+}n
    RE_QUOTED_STRING = %r{"(?:[\r\n\t !#-\[\]-~\x80-\xff]|\\[\x00-\x7f])*"}n
    RE_PARAMETERS = %r{(?:;#{RE_LWS}?#{RE_TOKEN}#{RE_LWS}?=#{RE_LWS}?(?:#{RE_TOKEN}|#{RE_QUOTED_STRING})#{RE_LWS}?)*}n
    # :startdoc:

    def content_type_parse # :nodoc:
      vs = @metas['content-type']
      # The last (?:;#{RE_LWS}?)? matches extra ";" which violates RFC2045.
      if vs && %r{\A#{RE_LWS}?(#{RE_TOKEN})#{RE_LWS}?/(#{RE_TOKEN})#{RE_LWS}?(#{RE_PARAMETERS})(?:;#{RE_LWS}?)?\z}no =~ vs.join(', ')
        type = $1.downcase
        subtype = $2.downcase
        parameters = []
        $3.scan(/;#{RE_LWS}?(#{RE_TOKEN})#{RE_LWS}?=#{RE_LWS}?(?:(#{RE_TOKEN})|(#{RE_QUOTED_STRING}))/no) {|att, val, qval|
          if qval
            val = qval[1...-1].gsub(/[\r\n\t !#-\[\]-~\x80-\xff]+|(\\[\x00-\x7f])/n) { $1 ? $1[1,1] : $& }
          end
          parameters << [att.downcase, val]
        }
        ["#{type}/#{subtype}", *parameters]
      else
        nil
      end
    end

    # returns "type/subtype" which is MIME Content-Type.
    # It is downcased for canonicalization.
    # Content-Type parameters are stripped.
    def content_type
      type, *_ = content_type_parse
      type || 'application/octet-stream'
    end

    # returns a charset parameter in Content-Type field.
    # It is downcased for canonicalization.
    #
    # If charset parameter is not given but a block is given,
    # the block is called and its result is returned.
    # It can be used to guess charset.
    #
    # If charset parameter and block is not given,
    # nil is returned except text type in HTTP.
    # In that case, "iso-8859-1" is returned as defined by RFC2616 3.7.1.
    def charset
      type, *parameters = content_type_parse
      if pair = parameters.assoc('charset')
        pair.last.downcase
      elsif block_given?
        yield
      elsif type && %r{\Atext/} =~ type &&
            @base_uri && /\Ahttp\z/i =~ @base_uri.scheme
        "iso-8859-1" # RFC2616 3.7.1
      else
        nil
      end
    end

    # Returns a list of encodings in Content-Encoding field as an array of
    # strings.
    #
    # The encodings are downcased for canonicalization.
    def content_encoding
      vs = @metas['content-encoding']
      if vs && %r{\A#{RE_LWS}?#{RE_TOKEN}#{RE_LWS}?(?:,#{RE_LWS}?#{RE_TOKEN}#{RE_LWS}?)*}o =~ (v = vs.join(', '))
        v.scan(RE_TOKEN).map {|content_coding| content_coding.downcase}
      else
        []
      end
    end
  end

  # Mixin for HTTP and FTP URIs.
  module OpenRead
    # OpenURI::OpenRead#open provides `open' for URI::HTTP and URI::FTP.
    #
    # OpenURI::OpenRead#open takes optional 3 arguments as:
    #
    #   OpenURI::OpenRead#open([mode [, perm]] [, options]) [{|io| ... }]
    #
    # OpenURI::OpenRead#open returns an IO-like object if block is not given.
    # Otherwise it yields the IO object and return the value of the block.
    # The IO object is extended with OpenURI::Meta.
    #
    # +mode+ and +perm+ are the same as Kernel#open.
    #
    # However, +mode+ must be read mode because OpenURI::OpenRead#open doesn't
    # support write mode (yet).
    # Also +perm+ is ignored because it is meaningful only for file creation.
    #
    # +options+ must be a hash.
    #
    # Each option with a string key specifies an extra header field for HTTP.
    # I.e., it is ignored for FTP without HTTP proxy.
    #
    # The hash may include other options, where keys are symbols:
    #
    # [:proxy]
    #  Synopsis:
    #    :proxy => "http://proxy.foo.com:8000/"
    #    :proxy => URI.parse("http://proxy.foo.com:8000/")
    #    :proxy => true
    #    :proxy => false
    #    :proxy => nil
    #
    #  If :proxy option is specified, the value should be String, URI,
    #  boolean or nil.
    #
    #  When String or URI is given, it is treated as proxy URI.
    #
    #  When true is given or the option itself is not specified,
    #  environment variable `scheme_proxy' is examined.
    #  `scheme' is replaced by `http', `https' or `ftp'.
    #
    #  When false or nil is given, the environment variables are ignored and
    #  connection will be made to a server directly.
    #
    # [:proxy_http_basic_authentication]
    #  Synopsis:
    #    :proxy_http_basic_authentication =>
    #      ["http://proxy.foo.com:8000/", "proxy-user", "proxy-password"]
    #    :proxy_http_basic_authentication =>
    #      [URI.parse("http://proxy.foo.com:8000/"),
    #       "proxy-user", "proxy-password"]
    #
    #  If :proxy option is specified, the value should be an Array with 3
    #  elements.  It should contain a proxy URI, a proxy user name and a proxy
    #  password.  The proxy URI should be a String, an URI or nil.  The proxy
    #  user name and password should be a String.
    #
    #  If nil is given for the proxy URI, this option is just ignored.
    #
    #  If :proxy and :proxy_http_basic_authentication is specified,
    #  ArgumentError is raised.
    #
    # [:http_basic_authentication]
    #  Synopsis:
    #    :http_basic_authentication=>[user, password]
    #
    #  If :http_basic_authentication is specified,
    #  the value should be an array which contains 2 strings:
    #  username and password.
    #  It is used for HTTP Basic authentication defined by RFC 2617.
    #
    # [:content_length_proc]
    #  Synopsis:
    #    :content_length_proc => lambda {|content_length| ... }
    #
    #  If :content_length_proc option is specified, the option value procedure
    #  is called before actual transfer is started.
    #  It takes one argument, which is expected content length in bytes.
    #
    #  If two or more transfer is done by HTTP redirection, the procedure
    #  is called only one for a last transfer.
    #
    #  When expected content length is unknown, the procedure is called with
    #  nil.  This happens when the HTTP response has no Content-Length header.
    #
    # [:progress_proc]
    #  Synopsis:
    #    :progress_proc => lambda {|size| ...}
    #
    #  If :progress_proc option is specified, the proc is called with one
    #  argument each time when `open' gets content fragment from network.
    #  The argument +size+ is the accumulated transferred size in bytes.
    #
    #  If two or more transfer is done by HTTP redirection, the procedure
    #  is called only one for a last transfer.
    #
    #  :progress_proc and :content_length_proc are intended to be used for
    #  progress bar.
    #  For example, it can be implemented as follows using Ruby/ProgressBar.
    #
    #    pbar = nil
    #    open("http://...",
    #      :content_length_proc => lambda {|t|
    #        if t && 0 < t
    #          pbar = ProgressBar.new("...", t)
    #          pbar.file_transfer_mode
    #        end
    #      },
    #      :progress_proc => lambda {|s|
    #        pbar.set s if pbar
    #      }) {|f| ... }
    #
    # [:read_timeout]
    #  Synopsis:
    #    :read_timeout=>nil     (no timeout)
    #    :read_timeout=>10      (10 second)
    #
    #  :read_timeout option specifies a timeout of read for http connections.
    #
    # [:open_timeout]
    #  Synopsis:
    #    :open_timeout=>nil     (no timeout)
    #    :open_timeout=>10      (10 second)
    #
    #  :open_timeout option specifies a timeout of open for http connections.
    #
    # [:ssl_ca_cert]
    #  Synopsis:
    #    :ssl_ca_cert=>filename or an Array of filenames
    #
    #  :ssl_ca_cert is used to specify CA certificate for SSL.
    #  If it is given, default certificates are not used.
    #
    # [:ssl_verify_mode]
    #  Synopsis:
    #    :ssl_verify_mode=>mode
    #
    #  :ssl_verify_mode is used to specify openssl verify mode.
    #
    # [:ftp_active_mode]
    #  Synopsis:
    #    :ftp_active_mode=>bool
    #
    #  <tt>:ftp_active_mode => true</tt> is used to make ftp active mode.
    #  Ruby 1.9 uses passive mode by default.
    #  Note that the active mode is default in Ruby 1.8 or prior.
    #
    # [:redirect]
    #  Synopsis:
    #    :redirect=>bool
    #
    #  +:redirect+ is true by default.  <tt>:redirect => false</tt> is used to
    #  disable all HTTP redirects.
    #
    #  OpenURI::HTTPRedirect exception raised on redirection.
    #  Using +true+ also means that redirections between http and ftp are
    #  permitted.
    #
    def open(*rest, &block)
      OpenURI.open_uri(self, *rest, &block)
    end

    # OpenURI::OpenRead#read([options]) reads a content referenced by self and
    # returns the content as string.
    # The string is extended with OpenURI::Meta.
    # The argument +options+ is same as OpenURI::OpenRead#open.
    def read(options={})
      self.open(options) {|f|
        str = f.read
        Meta.init str, f
        str
      }
    end
  end
end

module URI
  class HTTP
    def buffer_open(buf, proxy, options) # :nodoc:
      OpenURI.open_http(buf, self, proxy, options)
    end

    include OpenURI::OpenRead
  end

  class FTP
    def buffer_open(buf, proxy, options) # :nodoc:
      if proxy
        OpenURI.open_http(buf, self, proxy, options)
        return
      end
      require 'net/ftp'

      path = self.path
      path = path.sub(%r{\A/}, '%2F') # re-encode the beginning slash because uri library decodes it.
      directories = path.split(%r{/}, -1)
      directories.each {|d|
        d.gsub!(/%([0-9A-Fa-f][0-9A-Fa-f])/) { [$1].pack("H2") }
      }
      unless filename = directories.pop
        raise ArgumentError, "no filename: #{self.inspect}"
      end
      directories.each {|d|
        if /[\r\n]/ =~ d
          raise ArgumentError, "invalid directory: #{d.inspect}"
        end
      }
      if /[\r\n]/ =~ filename
        raise ArgumentError, "invalid filename: #{filename.inspect}"
      end
      typecode = self.typecode
      if typecode && /\A[aid]\z/ !~ typecode
        raise ArgumentError, "invalid typecode: #{typecode.inspect}"
      end

      # The access sequence is defined by RFC 1738
      ftp = Net::FTP.new
      ftp.connect(self.hostname, self.port)
      ftp.passive = true if !options[:ftp_active_mode]
      # todo: extract user/passwd from .netrc.
      user = 'anonymous'
      passwd = nil
      user, passwd = self.userinfo.split(/:/) if self.userinfo
      ftp.login(user, passwd)
      directories.each {|cwd|
        ftp.voidcmd("CWD #{cwd}")
      }
      if typecode
        # xxx: typecode D is not handled.
        ftp.voidcmd("TYPE #{typecode.upcase}")
      end
      if options[:content_length_proc]
        options[:content_length_proc].call(ftp.size(filename))
      end
      ftp.retrbinary("RETR #{filename}", 4096) { |str|
        buf << str
        options[:progress_proc].call(buf.size) if options[:progress_proc]
      }
      ftp.close
      buf.io.rewind
    end

    include OpenURI::OpenRead
  end
end
lib64/ruby/2.2.0/ostruct.rb000064400000021244150402106430011132 0ustar00#
# = ostruct.rb: OpenStruct implementation
#
# Author:: Yukihiro Matsumoto
# Documentation:: Gavin Sinclair
#
# OpenStruct allows the creation of data objects with arbitrary attributes.
# See OpenStruct for an example.
#

#
# An OpenStruct is a data structure, similar to a Hash, that allows the
# definition of arbitrary attributes with their accompanying values. This is
# accomplished by using Ruby's metaprogramming to define methods on the class
# itself.
#
# == Examples
#
#   require "ostruct"
#
#   person = OpenStruct.new
#   person.name = "John Smith"
#   person.age  = 70
#
#   person.name      # => "John Smith"
#   person.age       # => 70
#   person.address   # => nil
#
# An OpenStruct employs a Hash internally to store the attributes and values
# and can even be initialized with one:
#
#   australia = OpenStruct.new(:country => "Australia", :capital => "Canberra")
#     # => #<OpenStruct country="Australia", capital="Canberra">
#
# Hash keys with spaces or characters that could normally not be used for
# method calls (e.g. <code>()[]*</code>) will not be immediately available
# on the OpenStruct object as a method for retrieval or assignment, but can
# still be reached through the Object#send method.
#
#   measurements = OpenStruct.new("length (in inches)" => 24)
#   measurements.send("length (in inches)")   # => 24
#
#   message = OpenStruct.new(:queued? => true)
#   message.queued?                           # => true
#   message.send("queued?=", false)
#   message.queued?                           # => false
#
# Removing the presence of an attribute requires the execution of the
# delete_field method as setting the property value to +nil+ will not
# remove the attribute.
#
#   first_pet  = OpenStruct.new(:name => "Rowdy", :owner => "John Smith")
#   second_pet = OpenStruct.new(:name => "Rowdy")
#
#   first_pet.owner = nil
#   first_pet                 # => #<OpenStruct name="Rowdy", owner=nil>
#   first_pet == second_pet   # => false
#
#   first_pet.delete_field(:owner)
#   first_pet                 # => #<OpenStruct name="Rowdy">
#   first_pet == second_pet   # => true
#
#
# == Implementation
#
# An OpenStruct utilizes Ruby's method lookup structure to find and define the
# necessary methods for properties. This is accomplished through the methods
# method_missing and define_singleton_method.
#
# This should be a consideration if there is a concern about the performance of
# the objects that are created, as there is much more overhead in the setting
# of these properties compared to using a Hash or a Struct.
#
class OpenStruct
  #
  # Creates a new OpenStruct object.  By default, the resulting OpenStruct
  # object will have no attributes.
  #
  # The optional +hash+, if given, will generate attributes and values
  # (can be a Hash, an OpenStruct or a Struct).
  # For example:
  #
  #   require "ostruct"
  #   hash = { "country" => "Australia", :capital => "Canberra" }
  #   data = OpenStruct.new(hash)
  #
  #   data   # => #<OpenStruct country="Australia", capital="Canberra">
  #
  def initialize(hash=nil)
    @table = {}
    if hash
      hash.each_pair do |k, v|
        k = k.to_sym
        @table[k] = v
        new_ostruct_member(k)
      end
    end
  end

  # Duplicates an OpenStruct object's Hash table.
  def initialize_copy(orig) # :nodoc:
    super
    @table = @table.dup
    @table.each_key{|key| new_ostruct_member(key)}
  end

  #
  # Converts the OpenStruct to a hash with keys representing
  # each attribute (as symbols) and their corresponding values.
  #
  #   require "ostruct"
  #   data = OpenStruct.new("country" => "Australia", :capital => "Canberra")
  #   data.to_h   # => {:country => "Australia", :capital => "Canberra" }
  #
  def to_h
    @table.dup
  end

  #
  # :call-seq:
  #   ostruct.each_pair {|name, value| block }  -> ostruct
  #   ostruct.each_pair                         -> Enumerator
  #
  # Yields all attributes (as symbols) along with the corresponding values
  # or returns an enumerator if no block is given.
  #
  #   require "ostruct"
  #   data = OpenStruct.new("country" => "Australia", :capital => "Canberra")
  #   data.each_pair.to_a   # => [[:country, "Australia"], [:capital, "Canberra"]]
  #
  def each_pair
    return to_enum(__method__) { @table.size } unless block_given?
    @table.each_pair{|p| yield p}
    self
  end

  #
  # Provides marshalling support for use by the Marshal library.
  #
  def marshal_dump
    @table
  end

  #
  # Provides marshalling support for use by the Marshal library.
  #
  def marshal_load(x)
    @table = x
    @table.each_key{|key| new_ostruct_member(key)}
  end

  #
  # Used internally to check if the OpenStruct is able to be
  # modified before granting access to the internal Hash table to be modified.
  #
  def modifiable
    begin
      @modifiable = true
    rescue
      raise RuntimeError, "can't modify frozen #{self.class}", caller(3)
    end
    @table
  end
  protected :modifiable

  #
  # Used internally to defined properties on the
  # OpenStruct. It does this by using the metaprogramming function
  # define_singleton_method for both the getter method and the setter method.
  #
  def new_ostruct_member(name)
    name = name.to_sym
    unless respond_to?(name)
      define_singleton_method(name) { @table[name] }
      define_singleton_method("#{name}=") { |x| modifiable[name] = x }
    end
    name
  end
  protected :new_ostruct_member

  def method_missing(mid, *args) # :nodoc:
    mname = mid.id2name
    len = args.length
    if mname.chomp!('=')
      if len != 1
        raise ArgumentError, "wrong number of arguments (#{len} for 1)", caller(1)
      end
      modifiable[new_ostruct_member(mname)] = args[0]
    elsif len == 0
      @table[mid]
    else
      err = NoMethodError.new "undefined method `#{mid}' for #{self}", mid, args
      err.set_backtrace caller(1)
      raise err
    end
  end

  #
  # :call-seq:
  #   ostruct[name]  -> object
  #
  # Returns the value of an attribute.
  #
  #   require "ostruct"
  #   person = OpenStruct.new("name" => "John Smith", "age" => 70)
  #   person[:age]   # => 70, same as person.age
  #
  def [](name)
    @table[name.to_sym]
  end

  #
  # :call-seq:
  #   ostruct[name] = obj  -> obj
  #
  # Sets the value of an attribute.
  #
  #   require "ostruct"
  #   person = OpenStruct.new("name" => "John Smith", "age" => 70)
  #   person[:age] = 42   # equivalent to person.age = 42
  #   person.age          # => 42
  #
  def []=(name, value)
    modifiable[new_ostruct_member(name)] = value
  end

  #
  # Removes the named field from the object. Returns the value that the field
  # contained if it was defined.
  #
  #   require "ostruct"
  #
  #   person = OpenStruct.new(name: "John", age: 70, pension: 300)
  #
  #   person.delete_field("age")   # => 70
  #   person                       # => #<OpenStruct name="John", pension=300>
  #
  # Setting the value to +nil+ will not remove the attribute:
  #
  #   person.pension = nil
  #   person                 # => #<OpenStruct name="John", pension=nil>
  #
  def delete_field(name)
    sym = name.to_sym
    singleton_class.__send__(:remove_method, sym, "#{sym}=")
    @table.delete sym
  end

  InspectKey = :__inspect_key__ # :nodoc:

  #
  # Returns a string containing a detailed summary of the keys and values.
  #
  def inspect
    str = "#<#{self.class}"

    ids = (Thread.current[InspectKey] ||= [])
    if ids.include?(object_id)
      return str << ' ...>'
    end

    ids << object_id
    begin
      first = true
      for k,v in @table
        str << "," unless first
        first = false
        str << " #{k}=#{v.inspect}"
      end
      return str << '>'
    ensure
      ids.pop
    end
  end
  alias :to_s :inspect

  attr_reader :table # :nodoc:
  protected :table

  #
  # Compares this object and +other+ for equality.  An OpenStruct is equal to
  # +other+ when +other+ is an OpenStruct and the two objects' Hash tables are
  # equal.
  #
  #   require "ostruct"
  #   first_pet  = OpenStruct.new("name" => "Rowdy")
  #   second_pet = OpenStruct.new(:name  => "Rowdy")
  #   third_pet  = OpenStruct.new("name" => "Rowdy", :age => nil)
  #
  #   first_pet == second_pet   # => true
  #   first_pet == third_pet    # => false
  #
  def ==(other)
    return false unless other.kind_of?(OpenStruct)
    @table == other.table
  end

  #
  # Compares this object and +other+ for equality.  An OpenStruct is eql? to
  # +other+ when +other+ is an OpenStruct and the two objects' Hash tables are
  # eql?.
  #
  def eql?(other)
    return false unless other.kind_of?(OpenStruct)
    @table.eql?(other.table)
  end

  # Computes a hash code for this OpenStruct.
  # Two OpenStruct objects with the same content will have the same hash code
  # (and will compare using #eql?).
  #
  # See also Object#hash.
  def hash
    @table.hash
  end
end
lib64/ruby/2.2.0/base64.rb000064400000005206150402106430010513 0ustar00#
# = base64.rb: methods for base64-encoding and -decoding strings
#

# The Base64 module provides for the encoding (#encode64, #strict_encode64,
# #urlsafe_encode64) and decoding (#decode64, #strict_decode64,
# #urlsafe_decode64) of binary data using a Base64 representation.
#
# == Example
#
# A simple encoding and decoding.
#
#     require "base64"
#
#     enc   = Base64.encode64('Send reinforcements')
#                         # -> "U2VuZCByZWluZm9yY2VtZW50cw==\n"
#     plain = Base64.decode64(enc)
#                         # -> "Send reinforcements"
#
# The purpose of using base64 to encode data is that it translates any
# binary data into purely printable characters.

module Base64
  module_function

  # Returns the Base64-encoded version of +bin+.
  # This method complies with RFC 2045.
  # Line feeds are added to every 60 encoded characters.
  #
  #    require 'base64'
  #    Base64.encode64("Now is the time for all good coders\nto learn Ruby")
  #
  # <i>Generates:</i>
  #
  #    Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g
  #    UnVieQ==
  def encode64(bin)
    [bin].pack("m")
  end

  # Returns the Base64-decoded version of +str+.
  # This method complies with RFC 2045.
  # Characters outside the base alphabet are ignored.
  #
  #   require 'base64'
  #   str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +
  #         'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +
  #         'ZSB0aHJlZQpBbmQgc28gb24uLi4K'
  #   puts Base64.decode64(str)
  #
  # <i>Generates:</i>
  #
  #    This is line one
  #    This is line two
  #    This is line three
  #    And so on...
  def decode64(str)
    str.unpack("m").first
  end

  # Returns the Base64-encoded version of +bin+.
  # This method complies with RFC 4648.
  # No line feeds are added.
  def strict_encode64(bin)
    [bin].pack("m0")
  end

  # Returns the Base64-decoded version of +str+.
  # This method complies with RFC 4648.
  # ArgumentError is raised if +str+ is incorrectly padded or contains
  # non-alphabet characters.  Note that CR or LF are also rejected.
  def strict_decode64(str)
    str.unpack("m0").first
  end

  # Returns the Base64-encoded version of +bin+.
  # This method complies with ``Base 64 Encoding with URL and Filename Safe
  # Alphabet'' in RFC 4648.
  # The alphabet uses '-' instead of '+' and '_' instead of '/'.
  def urlsafe_encode64(bin)
    strict_encode64(bin).tr("+/", "-_")
  end

  # Returns the Base64-decoded version of +str+.
  # This method complies with ``Base 64 Encoding with URL and Filename Safe
  # Alphabet'' in RFC 4648.
  # The alphabet uses '-' instead of '+' and '_' instead of '/'.
  def urlsafe_decode64(str)
    strict_decode64(str.tr("-_", "+/"))
  end
end
lib64/ruby/2.2.0/syslog/logger.rb000064400000013403150402106430012224 0ustar00require 'syslog'
require 'logger'

##
# Syslog::Logger is a Logger work-alike that logs via syslog instead of to a
# file.  You can use Syslog::Logger to aggregate logs between multiple
# machines.
#
# By default, Syslog::Logger uses the program name 'ruby', but this can be
# changed via the first argument to Syslog::Logger.new.
#
# NOTE! You can only set the Syslog::Logger program name when you initialize
# Syslog::Logger for the first time.  This is a limitation of the way
# Syslog::Logger uses syslog (and in some ways, a limitation of the way
# syslog(3) works).  Attempts to change Syslog::Logger's program name after
# the first initialization will be ignored.
#
# === Example
#
# The following will log to syslogd on your local machine:
#
#   require 'syslog/logger'
#
#   log = Syslog::Logger.new 'my_program'
#   log.info 'this line will be logged via syslog(3)'
#
# Also the facility may be set to specify the facility level which will be used:
#
#   log.info 'this line will be logged using Syslog default facility level'
#
#   log_local1 = Syslog::Logger.new 'my_program', Syslog::LOG_LOCAL1
#   log_local1.info 'this line will be logged using local1 facility level'
#
#
# You may need to perform some syslog.conf setup first.  For a BSD machine add
# the following lines to /etc/syslog.conf:
#
#  !my_program
#  *.*                                             /var/log/my_program.log
#
# Then touch /var/log/my_program.log and signal syslogd with a HUP
# (killall -HUP syslogd, on FreeBSD).
#
# If you wish to have logs automatically roll over and archive, see the
# newsyslog.conf(5) and newsyslog(8) man pages.

class Syslog::Logger
  # Default formatter for log messages.
  class Formatter
    def call severity, time, progname, msg
      clean msg
    end

    private

    ##
    # Clean up messages so they're nice and pretty.

    def clean message
      message = message.to_s.strip
      message.gsub!(/\e\[[0-9;]*m/, '') # remove useless ansi color codes
      return message
    end
  end

  ##
  # The version of Syslog::Logger you are using.

  VERSION = '2.1.0'

  ##
  # Maps Logger warning types to syslog(3) warning types.
  #
  # Messages from Ruby applications are not considered as critical as messages
  # from other system daemons using syslog(3), so most messages are reduced by
  # one level.  For example, a fatal message for Ruby's Logger is considered
  # an error for syslog(3).

  LEVEL_MAP = {
    ::Logger::UNKNOWN => Syslog::LOG_ALERT,
    ::Logger::FATAL   => Syslog::LOG_ERR,
    ::Logger::ERROR   => Syslog::LOG_WARNING,
    ::Logger::WARN    => Syslog::LOG_NOTICE,
    ::Logger::INFO    => Syslog::LOG_INFO,
    ::Logger::DEBUG   => Syslog::LOG_DEBUG,
  }

  ##
  # Returns the internal Syslog object that is initialized when the
  # first instance is created.

  def self.syslog
    @@syslog
  end

  ##
  # Specifies the internal Syslog object to be used.

  def self.syslog= syslog
    @@syslog = syslog
  end

  ##
  # Builds a methods for level +meth+.

  def self.make_methods meth
    level = ::Logger.const_get(meth.upcase)
    eval <<-EOM, nil, __FILE__, __LINE__ + 1
      def #{meth}(message = nil, &block)
        add(#{level}, message, &block)
      end

      def #{meth}?
        @level <= #{level}
      end
    EOM
  end

  ##
  # :method: unknown
  #
  # Logs a +message+ at the unknown (syslog alert) log level, or logs the
  # message returned from the block.

  ##
  # :method: fatal
  #
  # Logs a +message+ at the fatal (syslog err) log level, or logs the message
  # returned from the block.

  ##
  # :method: error
  #
  # Logs a +message+ at the error (syslog warning) log level, or logs the
  # message returned from the block.

  ##
  # :method: warn
  #
  # Logs a +message+ at the warn (syslog notice) log level, or logs the
  # message returned from the block.

  ##
  # :method: info
  #
  # Logs a +message+ at the info (syslog info) log level, or logs the message
  # returned from the block.

  ##
  # :method: debug
  #
  # Logs a +message+ at the debug (syslog debug) log level, or logs the
  # message returned from the block.

  Logger::Severity::constants.each do |severity|
    make_methods severity.downcase
  end

  ##
  # Log level for Logger compatibility.

  attr_accessor :level

  # Logging formatter, as a +Proc+ that will take four arguments and
  # return the formatted message. The arguments are:
  #
  # +severity+:: The Severity of the log message.
  # +time+:: A Time instance representing when the message was logged.
  # +progname+:: The #progname configured, or passed to the logger method.
  # +msg+:: The _Object_ the user passed to the log message; not necessarily a
  #         String.
  #
  # The block should return an Object that can be written to the logging
  # device via +write+.  The default formatter is used when no formatter is
  # set.
  attr_accessor :formatter

  ##
  # The facility argument is used to specify what type of program is logging the message.

  attr_accessor :facility

  ##
  # Fills in variables for Logger compatibility.  If this is the first
  # instance of Syslog::Logger, +program_name+ may be set to change the logged
  # program name. The +facility+ may be set to specify the facility level which will be used.
  #
  # Due to the way syslog works, only one program name may be chosen.

  def initialize program_name = 'ruby', facility = nil
    @level = ::Logger::DEBUG
    @formatter = Formatter.new

    @@syslog ||= Syslog.open(program_name)

    @facility = (facility || @@syslog.facility)
  end

  ##
  # Almost duplicates Logger#add.  +progname+ is ignored.

  def add severity, message = nil, progname = nil, &block
    severity ||= ::Logger::UNKNOWN
    @level <= severity and
      @@syslog.log( (LEVEL_MAP[severity] | @facility), '%s', formatter.call(severity, Time.now, progname, (message || block.call)) )
    true
  end
end
lib64/ruby/gems/2.2.0/specifications/ruby-lsapi-5.6.gemspec000064400000001542150402106430017001 0ustar00# -*- encoding: utf-8 -*-
# stub: ruby-lsapi 5.6 ruby lib
# stub: ext/lsapi/extconf.rb

Gem::Specification.new do |s|
  s.name = "ruby-lsapi"
  s.version = "5.6"

  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
  s.require_paths = ["lib"]
  s.authors = ["LiteSpeed Technologies Inc."]
  s.date = "2024-01-22"
  s.description = "This is a ruby extension for fast communication with LiteSpeed Web Server."
  s.email = "info@litespeedtech.com"
  s.extensions = ["ext/lsapi/extconf.rb"]
  s.extra_rdoc_files = ["README"]
  s.files = ["README", "ext/lsapi/extconf.rb"]
  s.homepage = "http://www.litespeedtech.com/"
  s.rubygems_version = "2.4.5.5"
  s.summary = "A ruby extension for fast communication with LiteSpeed Web Server."

  s.installed_by_version = "2.4.5.5" if s.respond_to? :installed_by_version
end
lib64/ruby/gems/2.2.0/specifications/default/io-console-0.4.3.gemspec000064400000001404150402106430020534 0ustar00# -*- encoding: utf-8 -*-
# stub: io-console 0.4.3 ruby lib
# stub: extconf.rb

Gem::Specification.new do |s|
  s.name = "io-console"
  s.version = "0.4.3"

  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
  s.require_paths = ["lib"]
  s.authors = ["Nobu Nakada"]
  s.cert_chain = ["certs/nobu.pem"]
  s.date = "2015-07-01"
  s.description = "add console capabilities to IO instances."
  s.email = "nobu@ruby-lang.org"
  s.extensions = ["extconf.rb"]
  s.files = ["extconf.rb", "io/console.so", "io/console/size.rb"]
  s.homepage = "http://www.ruby-lang.org"
  s.licenses = ["ruby"]
  s.required_ruby_version = Gem::Requirement.new(">= 2.0.0")
  s.rubygems_version = "2.4.5.5"
  s.summary = "Console interface"
end
lib64/ruby/gems/2.2.0/specifications/default/json-1.8.1.1.gemspec000064400000001112150402106430017574 0ustar00Gem::Specification.new do |s|
  s.name = "json"
  s.version = "1.8.1.1"
  s.summary = "This json is bundled with Ruby"
  s.executables = []
  s.files = ["json.rb", "json/add/bigdecimal.rb", "json/add/complex.rb", "json/add/core.rb", "json/add/date.rb", "json/add/date_time.rb", "json/add/exception.rb", "json/add/ostruct.rb", "json/add/range.rb", "json/add/rational.rb", "json/add/regexp.rb", "json/add/struct.rb", "json/add/symbol.rb", "json/add/time.rb", "json/common.rb", "json/ext.rb", "json/ext/generator.so", "json/ext/parser.so", "json/generic_object.rb", "json/version.rb"]
end
lib64/ruby/gems/2.2.0/specifications/default/rdoc-4.2.0.gemspec000064400000005650150402106430017422 0ustar00Gem::Specification.new do |s|
  s.name = "rdoc"
  s.version = "4.2.0"
  s.summary = "This rdoc is bundled with Ruby"
  s.executables = ["rdoc", "ri"]
  s.files = ["rdoc.rb", "rdoc/alias.rb", "rdoc/anon_class.rb", "rdoc/any_method.rb", "rdoc/attr.rb", "rdoc/class_module.rb", "rdoc/code_object.rb", "rdoc/code_objects.rb", "rdoc/comment.rb", "rdoc/constant.rb", "rdoc/context.rb", "rdoc/context/section.rb", "rdoc/cross_reference.rb", "rdoc/encoding.rb", "rdoc/erb_partial.rb", "rdoc/erbio.rb", "rdoc/extend.rb", "rdoc/generator.rb", "rdoc/generator/darkfish.rb", "rdoc/generator/json_index.rb", "rdoc/generator/markup.rb", "rdoc/generator/pot.rb", "rdoc/generator/pot/message_extractor.rb", "rdoc/generator/pot/po.rb", "rdoc/generator/pot/po_entry.rb", "rdoc/generator/ri.rb", "rdoc/ghost_method.rb", "rdoc/i18n.rb", "rdoc/i18n/locale.rb", "rdoc/i18n/text.rb", "rdoc/include.rb", "rdoc/known_classes.rb", "rdoc/markdown.rb", "rdoc/markdown/entities.rb", "rdoc/markdown/literals_1_9.rb", "rdoc/markup.rb", "rdoc/markup/attr_changer.rb", "rdoc/markup/attr_span.rb", "rdoc/markup/attribute_manager.rb", "rdoc/markup/attributes.rb", "rdoc/markup/blank_line.rb", "rdoc/markup/block_quote.rb", "rdoc/markup/document.rb", "rdoc/markup/formatter.rb", "rdoc/markup/formatter_test_case.rb", "rdoc/markup/hard_break.rb", "rdoc/markup/heading.rb", "rdoc/markup/include.rb", "rdoc/markup/indented_paragraph.rb", "rdoc/markup/inline.rb", "rdoc/markup/list.rb", "rdoc/markup/list_item.rb", "rdoc/markup/paragraph.rb", "rdoc/markup/parser.rb", "rdoc/markup/pre_process.rb", "rdoc/markup/raw.rb", "rdoc/markup/rule.rb", "rdoc/markup/special.rb", "rdoc/markup/text_formatter_test_case.rb", "rdoc/markup/to_ansi.rb", "rdoc/markup/to_bs.rb", "rdoc/markup/to_html.rb", "rdoc/markup/to_html_crossref.rb", "rdoc/markup/to_html_snippet.rb", "rdoc/markup/to_joined_paragraph.rb", "rdoc/markup/to_label.rb", "rdoc/markup/to_markdown.rb", "rdoc/markup/to_rdoc.rb", "rdoc/markup/to_table_of_contents.rb", "rdoc/markup/to_test.rb", "rdoc/markup/to_tt_only.rb", "rdoc/markup/verbatim.rb", "rdoc/meta_method.rb", "rdoc/method_attr.rb", "rdoc/mixin.rb", "rdoc/normal_class.rb", "rdoc/normal_module.rb", "rdoc/options.rb", "rdoc/parser.rb", "rdoc/parser/c.rb", "rdoc/parser/changelog.rb", "rdoc/parser/markdown.rb", "rdoc/parser/rd.rb", "rdoc/parser/ruby.rb", "rdoc/parser/ruby_tools.rb", "rdoc/parser/simple.rb", "rdoc/parser/text.rb", "rdoc/rd.rb", "rdoc/rd/block_parser.rb", "rdoc/rd/inline.rb", "rdoc/rd/inline_parser.rb", "rdoc/rdoc.rb", "rdoc/require.rb", "rdoc/ri.rb", "rdoc/ri/driver.rb", "rdoc/ri/formatter.rb", "rdoc/ri/paths.rb", "rdoc/ri/store.rb", "rdoc/ri/task.rb", "rdoc/ruby_lex.rb", "rdoc/ruby_token.rb", "rdoc/rubygems_hook.rb", "rdoc/servlet.rb", "rdoc/single_class.rb", "rdoc/stats.rb", "rdoc/stats/normal.rb", "rdoc/stats/quiet.rb", "rdoc/stats/verbose.rb", "rdoc/store.rb", "rdoc/task.rb", "rdoc/test_case.rb", "rdoc/text.rb", "rdoc/token_stream.rb", "rdoc/tom_doc.rb", "rdoc/top_level.rb"]
end
lib64/ruby/gems/2.2.0/specifications/default/psych-2.0.8.1.gemspec000064400000011560150402106430017761 0ustar00# -*- encoding: utf-8 -*-
# stub: psych 2.0.8.1 ruby lib
# stub: ext/psych/extconf.rb

Gem::Specification.new do |s|
  s.name = "psych"
  s.version = "2.0.8.1"

  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
  s.require_paths = ["lib"]
  s.authors = ["Aaron Patterson"]
  s.date = "2014-12-05"
  s.description = "Psych is a YAML parser and emitter.  Psych leverages libyaml[http://pyyaml.org/wiki/LibYAML]\nfor its YAML parsing and emitting capabilities.  In addition to wrapping\nlibyaml, Psych also knows how to serialize and de-serialize most Ruby objects\nto and from the YAML format."
  s.email = ["aaron@tenderlovemaking.com"]
  s.extensions = ["ext/psych/extconf.rb"]
  s.extra_rdoc_files = ["CHANGELOG.rdoc", "README.rdoc"]
  s.files = ["CHANGELOG.rdoc", "README.rdoc", "ext/psych/extconf.rb", "psych.rb", "psych.so", "psych/class_loader.rb", "psych/coder.rb", "psych/core_ext.rb", "psych/deprecated.rb", "psych/exception.rb", "psych/handler.rb", "psych/handlers/document_stream.rb", "psych/handlers/recorder.rb", "psych/json/ruby_events.rb", "psych/json/stream.rb", "psych/json/tree_builder.rb", "psych/json/yaml_events.rb", "psych/nodes.rb", "psych/nodes/alias.rb", "psych/nodes/document.rb", "psych/nodes/mapping.rb", "psych/nodes/node.rb", "psych/nodes/scalar.rb", "psych/nodes/sequence.rb", "psych/nodes/stream.rb", "psych/omap.rb", "psych/parser.rb", "psych/scalar_scanner.rb", "psych/set.rb", "psych/stream.rb", "psych/streaming.rb", "psych/syntax_error.rb", "psych/tree_builder.rb", "psych/visitors.rb", "psych/visitors/depth_first.rb", "psych/visitors/emitter.rb", "psych/visitors/json_tree.rb", "psych/visitors/to_ruby.rb", "psych/visitors/visitor.rb", "psych/visitors/yaml_tree.rb", "psych/y.rb", "test/psych/handlers/test_recorder.rb", "test/psych/json/test_stream.rb", "test/psych/nodes/test_enumerable.rb", "test/psych/test_alias_and_anchor.rb", "test/psych/test_array.rb", "test/psych/test_boolean.rb", "test/psych/test_class.rb", "test/psych/test_coder.rb", "test/psych/test_date_time.rb", "test/psych/test_deprecated.rb", "test/psych/test_document.rb", "test/psych/test_emitter.rb", "test/psych/test_encoding.rb", "test/psych/test_exception.rb", "test/psych/test_hash.rb", "test/psych/test_json_tree.rb", "test/psych/test_marshalable.rb", "test/psych/test_merge_keys.rb", "test/psych/test_nil.rb", "test/psych/test_null.rb", "test/psych/test_numeric.rb", "test/psych/test_object.rb", "test/psych/test_object_references.rb", "test/psych/test_omap.rb", "test/psych/test_parser.rb", "test/psych/test_psych.rb", "test/psych/test_safe_load.rb", "test/psych/test_scalar.rb", "test/psych/test_scalar_scanner.rb", "test/psych/test_serialize_subclasses.rb", "test/psych/test_set.rb", "test/psych/test_stream.rb", "test/psych/test_string.rb", "test/psych/test_struct.rb", "test/psych/test_symbol.rb", "test/psych/test_tainted.rb", "test/psych/test_to_yaml_properties.rb", "test/psych/test_tree_builder.rb", "test/psych/test_yaml.rb", "test/psych/test_yamldbm.rb", "test/psych/test_yamlstore.rb", "test/psych/visitors/test_depth_first.rb", "test/psych/visitors/test_emitter.rb", "test/psych/visitors/test_to_ruby.rb", "test/psych/visitors/test_yaml_tree.rb"]
  s.homepage = "http://github.com/tenderlove/psych"
  s.licenses = ["MIT"]
  s.rdoc_options = ["--main", "README.rdoc"]
  s.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
  s.rubygems_version = "2.4.5.5"
  s.summary = "Psych is a YAML parser and emitter"
  s.test_files = ["test/psych/handlers/test_recorder.rb", "test/psych/json/test_stream.rb", "test/psych/nodes/test_enumerable.rb", "test/psych/test_alias_and_anchor.rb", "test/psych/test_array.rb", "test/psych/test_boolean.rb", "test/psych/test_class.rb", "test/psych/test_coder.rb", "test/psych/test_date_time.rb", "test/psych/test_deprecated.rb", "test/psych/test_document.rb", "test/psych/test_emitter.rb", "test/psych/test_encoding.rb", "test/psych/test_exception.rb", "test/psych/test_hash.rb", "test/psych/test_json_tree.rb", "test/psych/test_marshalable.rb", "test/psych/test_merge_keys.rb", "test/psych/test_nil.rb", "test/psych/test_null.rb", "test/psych/test_numeric.rb", "test/psych/test_object.rb", "test/psych/test_object_references.rb", "test/psych/test_omap.rb", "test/psych/test_parser.rb", "test/psych/test_psych.rb", "test/psych/test_safe_load.rb", "test/psych/test_scalar.rb", "test/psych/test_scalar_scanner.rb", "test/psych/test_serialize_subclasses.rb", "test/psych/test_set.rb", "test/psych/test_stream.rb", "test/psych/test_string.rb", "test/psych/test_struct.rb", "test/psych/test_symbol.rb", "test/psych/test_tainted.rb", "test/psych/test_to_yaml_properties.rb", "test/psych/test_tree_builder.rb", "test/psych/test_yaml.rb", "test/psych/test_yamldbm.rb", "test/psych/test_yamlstore.rb", "test/psych/visitors/test_depth_first.rb", "test/psych/visitors/test_emitter.rb", "test/psych/visitors/test_to_ruby.rb", "test/psych/visitors/test_yaml_tree.rb"]
end
lib64/ruby/gems/2.2.0/specifications/default/rake-10.4.2.gemspec000064400000003031150402106430017465 0ustar00Gem::Specification.new do |s|
  s.name = "rake"
  s.version = "10.4.2"
  s.summary = "This rake is bundled with Ruby"
  s.executables = ["rake"]
  s.files = ["rake.rb", "rake/alt_system.rb", "rake/application.rb", "rake/backtrace.rb", "rake/clean.rb", "rake/cloneable.rb", "rake/contrib/compositepublisher.rb", "rake/contrib/ftptools.rb", "rake/contrib/publisher.rb", "rake/contrib/rubyforgepublisher.rb", "rake/contrib/sshpublisher.rb", "rake/contrib/sys.rb", "rake/cpu_counter.rb", "rake/default_loader.rb", "rake/dsl_definition.rb", "rake/early_time.rb", "rake/ext/core.rb", "rake/ext/module.rb", "rake/ext/pathname.rb", "rake/ext/string.rb", "rake/ext/time.rb", "rake/file_creation_task.rb", "rake/file_list.rb", "rake/file_task.rb", "rake/file_utils.rb", "rake/file_utils_ext.rb", "rake/gempackagetask.rb", "rake/invocation_chain.rb", "rake/invocation_exception_mixin.rb", "rake/late_time.rb", "rake/linked_list.rb", "rake/loaders/makefile.rb", "rake/multi_task.rb", "rake/name_space.rb", "rake/packagetask.rb", "rake/pathmap.rb", "rake/phony.rb", "rake/private_reader.rb", "rake/promise.rb", "rake/pseudo_status.rb", "rake/rake_module.rb", "rake/rake_test_loader.rb", "rake/rdoctask.rb", "rake/ruby182_test_unit_fix.rb", "rake/rule_recursion_overflow_error.rb", "rake/runtest.rb", "rake/scope.rb", "rake/task.rb", "rake/task_argument_error.rb", "rake/task_arguments.rb", "rake/task_manager.rb", "rake/tasklib.rb", "rake/testtask.rb", "rake/thread_history_display.rb", "rake/thread_pool.rb", "rake/trace_output.rb", "rake/version.rb", "rake/win32.rb"]
end
lib64/ruby/gems/2.2.0/specifications/rack-1.6.4.gemspec000064400000003133150402106430015766 0ustar00# -*- encoding: utf-8 -*-
# stub: rack 1.6.4 ruby lib

Gem::Specification.new do |s|
  s.name = "rack"
  s.version = "1.6.4"

  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
  s.require_paths = ["lib"]
  s.authors = ["Christian Neukirchen"]
  s.date = "2015-06-18"
  s.description = "Rack provides a minimal, modular and adaptable interface for developing\nweb applications in Ruby.  By wrapping HTTP requests and responses in\nthe simplest way possible, it unifies and distills the API for web\nservers, web frameworks, and software in between (the so-called\nmiddleware) into a single method call.\n\nAlso see http://rack.github.io/.\n"
  s.email = "chneukirchen@gmail.com"
  s.executables = ["rackup"]
  s.extra_rdoc_files = ["README.rdoc", "KNOWN-ISSUES", "HISTORY.md"]
  s.files = ["HISTORY.md", "KNOWN-ISSUES", "README.rdoc", "bin/rackup"]
  s.homepage = "http://rack.github.io/"
  s.licenses = ["MIT"]
  s.rubyforge_project = "rack"
  s.rubygems_version = "2.4.5.5"
  s.summary = "a modular Ruby webserver interface"

  s.installed_by_version = "2.4.5.5" if s.respond_to? :installed_by_version

  if s.respond_to? :specification_version then
    s.specification_version = 4

    if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
      s.add_development_dependency(%q<bacon>, [">= 0"])
      s.add_development_dependency(%q<rake>, [">= 0"])
    else
      s.add_dependency(%q<bacon>, [">= 0"])
      s.add_dependency(%q<rake>, [">= 0"])
    end
  else
    s.add_dependency(%q<bacon>, [">= 0"])
    s.add_dependency(%q<rake>, [">= 0"])
  end
end
lib64/ruby/gems/2.2.0/gems/rdoc-4.2.0/bin/rdoc000075500000001646150402106430014007 0ustar00#!/usr/bin/ruby
#
#  RDoc: Documentation tool for source code
#        (see lib/rdoc/rdoc.rb for more information)
#
#  Copyright (c) 2003 Dave Thomas
#  Released under the same terms as Ruby

begin
  gem 'rdoc'
rescue NameError => e # --disable-gems
  raise unless e.name == :gem
rescue Gem::LoadError
end

require 'rdoc/rdoc'

begin
  r = RDoc::RDoc.new
  r.document ARGV
rescue Errno::ENOSPC
  $stderr.puts 'Ran out of space creating documentation'
  $stderr.puts
  $stderr.puts 'Please free up some space and try again'
rescue SystemExit
  raise
rescue Exception => e
  if $DEBUG_RDOC then
    $stderr.puts e.message
    $stderr.puts "#{e.backtrace.join "\n\t"}"
    $stderr.puts
  elsif Interrupt === e then
    $stderr.puts
    $stderr.puts 'Interrupted'
  else
    $stderr.puts "uh-oh! RDoc had a problem:"
    $stderr.puts e.message
    $stderr.puts
    $stderr.puts "run with --debug for full backtrace"
  end

  exit 1
end

lib64/ruby/gems/2.2.0/gems/rdoc-4.2.0/bin/ri000075500000000270150402106430013462 0ustar00#!/usr/bin/ruby

begin
  gem 'rdoc'
rescue NameError => e # --disable-gems
  raise unless e.name == :gem
rescue Gem::LoadError
end

require 'rdoc/ri/driver'

RDoc::RI::Driver.run ARGV
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/bin/rackup000075500000000067150402106430014337 0ustar00#!/usr/bin/env ruby

require "rack"
Rack::Server.start
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/example/lobster.ru000064400000000107150402106430016024 0ustar00require 'rack/lobster'

use Rack::ShowExceptions
run Rack::Lobster.new
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/example/protectedlobster.rb000064400000000565150402106430017723 0ustar00require 'rack'
require 'rack/lobster'

lobster = Rack::Lobster.new

protected_lobster = Rack::Auth::Basic.new(lobster) do |username, password|
  'secret' == password
end

protected_lobster.realm = 'Lobster 2.0'

pretty_protected_lobster = Rack::ShowStatus.new(Rack::ShowExceptions.new(protected_lobster))

Rack::Server.start :app => pretty_protected_lobster, :Port => 9292
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/example/protectedlobster.ru000064400000000240150402106430017734 0ustar00require 'rack/lobster'

use Rack::ShowExceptions
use Rack::Auth::Basic, "Lobster 2.0" do |username, password|
  'secret' == password
end

run Rack::Lobster.new
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/KNOWN-ISSUES000064400000003501150402106430014200 0ustar00= Known issues with Rack and ECMA-262

* Many users expect the escape() function defined in ECMA-262 to be compatible
  with URI. Confusion is especially strong because the documentation for the
  escape function includes a reference to the URI specifications. ECMA-262
  escape is not however a URI escape function, it is a javascript escape
  function, and is not fully compatible. Most notably, for characters outside of
  the BMP. Users should use the more correct encodeURI functions.

= Known issues with Rack and Web servers

* Lighttpd sets wrong SCRIPT_NAME and PATH_INFO if you mount your
  FastCGI app at "/".  This can be fixed by using this middleware:

    class LighttpdScriptNameFix
      def initialize(app)
        @app = app
      end

      def call(env)
        env["PATH_INFO"] = env["SCRIPT_NAME"].to_s + env["PATH_INFO"].to_s
        env["SCRIPT_NAME"] = ""
        @app.call(env)
      end
    end

  Of course, use this only when your app runs at "/".

  Since lighttpd 1.4.23, you also can use the "fix-root-scriptname" flag
  in fastcgi.server.

= Known conflicts regarding parameter parsing

 * Many users have differing opinions about parameter parsing. The current
   parameter parsers in Rack are based on a combination of the HTTP and CGI
   specs, and are intended to round-trip encoding and decoding. There are some
   choices that may be viewed as deficiencies, specifically:
    - Rack does not create implicit arrays for multiple instances of a parameter
    - Rack returns nil when a value is not given
    - Rack does not support multi-type keys in parameters
   These issues or choices, will not be fixed before 2.0, if at all. They are
   very major breaking changes. Users are free to write alternative parameter
   parsers, and their own Request and Response wrappers. Moreover, users are
   encouraged to do so.
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/HISTORY.md000064400000040457150402106430014046 0ustar00Fri Jun 19 07:14:50 2015  Matthew Draper <matthew@trebex.net>

	* Work around a Rails incompatibility in our private API

Fri Jun 12 11:37:41 2015  Aaron Patterson <tenderlove@ruby-lang.org>

	* Prevent extremely deep parameters from being parsed. CVE-2015-3225

### December 18th, Thirty sixth public release 1.6.0

### February 7th, Thirty fifth public release 1.5.2
  - Fix CVE-2013-0263, timing attack against Rack::Session::Cookie
  - Fix CVE-2013-0262, symlink path traversal in Rack::File
  - Add various methods to Session for enhanced Rails compatibility
  - Request#trusted_proxy? now only matches whole stirngs
  - Add JSON cookie coder, to be default in Rack 1.6+ due to security concerns
  - URLMap host matching in environments that don't set the Host header fixed
  - Fix a race condition that could result in overwritten pidfiles
  - Various documentation additions

### February 7th, Thirty fifth public release 1.4.5
  - Fix CVE-2013-0263, timing attack against Rack::Session::Cookie
  - Fix CVE-2013-0262, symlink path traversal in Rack::File

### February 7th, Thirty fifth public release 1.1.6, 1.2.8, 1.3.10
  - Fix CVE-2013-0263, timing attack against Rack::Session::Cookie

### January 28th, 2013: Thirty fourth public release 1.5.1
  - Rack::Lint check_hijack now conforms to other parts of SPEC
  - Added hash-like methods to Abstract::ID::SessionHash for compatibility
  - Various documentation corrections

### January 21st, 2013: Thirty third public release 1.5.0
  - Introduced hijack SPEC, for before-response and after-response hijacking
  - SessionHash is no longer a Hash subclass
  - Rack::File cache_control parameter is removed, in place of headers options
  - Rack::Auth::AbstractRequest#scheme now yields strings, not symbols
  - Rack::Utils cookie functions now format expires in RFC 2822 format
  - Rack::File now has a default mime type
  - rackup -b 'run Rack::File.new(".")', option provides command line configs
  - Rack::Deflater will no longer double encode bodies
  - Rack::Mime#match? provides convenience for Accept header matching
  - Rack::Utils#q_values provides splitting for Accept headers
  - Rack::Utils#best_q_match provides a helper for Accept headers
  - Rack::Handler.pick provides convenience for finding available servers
  - Puma added to the list of default servers (preferred over Webrick)
  - Various middleware now correctly close body when replacing it
  - Rack::Request#params is no longer persistent with only GET params
  - Rack::Request#update_param and #delete_param provide persistent operations
  - Rack::Request#trusted_proxy? now returns true for local unix sockets
  - Rack::Response no longer forces Content-Types
  - Rack::Sendfile provides local mapping configuration options
  - Rack::Utils#rfc2109 provides old netscape style time output
  - Updated HTTP status codes
  - Ruby 1.8.6 likely no longer passes tests, and is no longer fully supported

### January 13th, 2013: Thirty second public release 1.4.4, 1.3.9, 1.2.7, 1.1.5
  - [SEC] Rack::Auth::AbstractRequest no longer symbolizes arbitrary strings
  - Fixed erroneous test case in the 1.3.x series

### January 7th, 2013: Thirty first public release 1.4.3
  - Security: Prevent unbounded reads in large multipart boundaries

### January 7th, 2013: Thirtieth public release 1.3.8
  - Security: Prevent unbounded reads in large multipart boundaries

### January 6th, 2013: Twenty ninth public release 1.4.2
  - Add warnings when users do not provide a session secret
  - Fix parsing performance for unquoted filenames
  - Updated URI backports
  - Fix URI backport version matching, and silence constant warnings
  - Correct parameter parsing with empty values
  - Correct rackup '-I' flag, to allow multiple uses
  - Correct rackup pidfile handling
  - Report rackup line numbers correctly
  - Fix request loops caused by non-stale nonces with time limits
  - Fix reloader on Windows
  - Prevent infinite recursions from Response#to_ary
  - Various middleware better conforms to the body close specification
  - Updated language for the body close specification
  - Additional notes regarding ECMA escape compatibility issues
  - Fix the parsing of multiple ranges in range headers
  - Prevent errors from empty parameter keys
  - Added PATCH verb to Rack::Request
  - Various documentation updates
  - Fix session merge semantics (fixes rack-test)
  - Rack::Static :index can now handle multiple directories
  - All tests now utilize Rack::Lint (special thanks to Lars Gierth)
  - Rack::File cache_control parameter is now deprecated, and removed by 1.5
  - Correct Rack::Directory script name escaping
  - Rack::Static supports header rules for sophisticated configurations
  - Multipart parsing now works without a Content-Length header
  - New logos courtesy of Zachary Scott!
  - Rack::BodyProxy now explicitly defines #each, useful for C extensions
  - Cookies that are not URI escaped no longer cause exceptions

### January 6th, 2013: Twenty eighth public release 1.3.7
  - Add warnings when users do not provide a session secret
  - Fix parsing performance for unquoted filenames
  - Updated URI backports
  - Fix URI backport version matching, and silence constant warnings
  - Correct parameter parsing with empty values
  - Correct rackup '-I' flag, to allow multiple uses
  - Correct rackup pidfile handling
  - Report rackup line numbers correctly
  - Fix request loops caused by non-stale nonces with time limits
  - Fix reloader on Windows
  - Prevent infinite recursions from Response#to_ary
  - Various middleware better conforms to the body close specification
  - Updated language for the body close specification
  - Additional notes regarding ECMA escape compatibility issues
  - Fix the parsing of multiple ranges in range headers

### January 6th, 2013: Twenty seventh public release 1.2.6
  - Add warnings when users do not provide a session secret
  - Fix parsing performance for unquoted filenames

### January 6th, 2013: Twenty sixth public release 1.1.4
  - Add warnings when users do not provide a session secret

### January 22nd, 2012: Twenty fifth public release 1.4.1
  - Alter the keyspace limit calculations to reduce issues with nested params
  - Add a workaround for multipart parsing where files contain unescaped "%"
  - Added Rack::Response::Helpers#method_not_allowed? (code 405)
  - Rack::File now returns 404 for illegal directory traversals
  - Rack::File now returns 405 for illegal methods (non HEAD/GET)
  - Rack::Cascade now catches 405 by default, as well as 404
  - Cookies missing '--' no longer cause an exception to be raised
  - Various style changes and documentation spelling errors
  - Rack::BodyProxy always ensures to execute its block
  - Additional test coverage around cookies and secrets
  - Rack::Session::Cookie can now be supplied either secret or old_secret
  - Tests are no longer dependent on set order
  - Rack::Static no longer defaults to serving index files
  - Rack.release was fixed

### December 28th, 2011: Twenty fourth public release 1.4.0
  - Ruby 1.8.6 support has officially been dropped. Not all tests pass.
  - Raise sane error messages for broken config.ru
  - Allow combining run and map in a config.ru
  - Rack::ContentType will not set Content-Type for responses without a body
  - Status code 205 does not send a response body
  - Rack::Response::Helpers will not rely on instance variables
  - Rack::Utils.build_query no longer outputs '=' for nil query values
  - Various mime types added
  - Rack::MockRequest now supports HEAD
  - Rack::Directory now supports files that contain RFC3986 reserved chars
  - Rack::File now only supports GET and HEAD requests
  - Rack::Server#start now passes the block to Rack::Handler::<h>#run
  - Rack::Static now supports an index option
  - Added the Teapot status code
  - rackup now defaults to Thin instead of Mongrel (if installed)
  - Support added for HTTP_X_FORWARDED_SCHEME
  - Numerous bug fixes, including many fixes for new and alternate rubies

### December 28th, 2011: Twenty first public release: 1.1.3.
  - Security fix. http://www.ocert.org/advisories/ocert-2011-003.html
    Further information here: http://jruby.org/2011/12/27/jruby-1-6-5-1

### October 17, 2011: Twentieth public release 1.3.5
  - Fix annoying warnings caused by the backport in 1.3.4

### October 1, 2011: Nineteenth public release 1.3.4
  - Backport security fix from 1.9.3, also fixes some roundtrip issues in URI
  - Small documentation update
  - Fix an issue where BodyProxy could cause an infinite recursion
  - Add some supporting files for travis-ci

### September 16, 2011: Eighteenth public release 1.2.4
  - Fix a bug with MRI regex engine to prevent XSS by malformed unicode

### September 16, 2011: Seventeenth public release 1.3.3
  - Fix bug with broken query parameters in Rack::ShowExceptions
  - Rack::Request#cookies no longer swallows exceptions on broken input
  - Prevents XSS attacks enabled by bug in Ruby 1.8's regexp engine
  - Rack::ConditionalGet handles broken If-Modified-Since helpers

### July 16, 2011: Sixteenth public release 1.3.2
  - Fix for Rails and rack-test, Rack::Utils#escape calls to_s

### July 13, 2011: Fifteenth public release 1.3.1
  - Fix 1.9.1 support
  - Fix JRuby support
  - Properly handle $KCODE in Rack::Utils.escape
  - Make method_missing/respond_to behavior consistent for Rack::Lock,
    Rack::Auth::Digest::Request and Rack::Multipart::UploadedFile
  - Reenable passing rack.session to session middleware
  - Rack::CommonLogger handles streaming responses correctly
  - Rack::MockResponse calls close on the body object
  - Fix a DOS vector from MRI stdlib backport

### May 22nd, 2011: Fourteenth public release 1.2.3
  - Pulled in relevant bug fixes from 1.3
  - Fixed 1.8.6 support

### May 22nd, 2011: Thirteenth public release 1.3.0
  - Various performance optimizations
  - Various multipart fixes
  - Various multipart refactors
  - Infinite loop fix for multipart
  - Test coverage for Rack::Server returns
  - Allow files with '..', but not path components that are '..'
  - rackup accepts handler-specific options on the command line
  - Request#params no longer merges POST into GET (but returns the same)
  - Use URI.encode_www_form_component instead. Use core methods for escaping.
  - Allow multi-line comments in the config file
  - Bug L#94 reported by Nikolai Lugovoi, query parameter unescaping.
  - Rack::Response now deletes Content-Length when appropriate
  - Rack::Deflater now supports streaming
  - Improved Rack::Handler loading and searching
  - Support for the PATCH verb
  - env['rack.session.options'] now contains session options
  - Cookies respect renew
  - Session middleware uses SecureRandom.hex

### March 13th, 2011: Twelfth public release 1.2.2/1.1.2.
  - Security fix in Rack::Auth::Digest::MD5: when authenticator
    returned nil, permission was granted on empty password.

### June 15th, 2010: Eleventh public release 1.2.1.
  - Make CGI handler rewindable
  - Rename spec/ to test/ to not conflict with SPEC on lesser
    operating systems

### June 13th, 2010: Tenth public release 1.2.0.
  - Removed Camping adapter: Camping 2.0 supports Rack as-is
  - Removed parsing of quoted values
  - Add Request.trace? and Request.options?
  - Add mime-type for .webm and .htc
  - Fix HTTP_X_FORWARDED_FOR
  - Various multipart fixes
  - Switch test suite to bacon

### January 3rd, 2010: Ninth public release 1.1.0.
  - Moved Auth::OpenID to rack-contrib.
  - SPEC change that relaxes Lint slightly to allow subclasses of the
    required types
  - SPEC change to document rack.input binary mode in greator detail
  - SPEC define optional rack.logger specification
  - File servers support X-Cascade header
  - Imported Config middleware
  - Imported ETag middleware
  - Imported Runtime middleware
  - Imported Sendfile middleware
  - New Logger and NullLogger middlewares
  - Added mime type for .ogv and .manifest.
  - Don't squeeze PATH_INFO slashes
  - Use Content-Type to determine POST params parsing
  - Update Rack::Utils::HTTP_STATUS_CODES hash
  - Add status code lookup utility
  - Response should call #to_i on the status
  - Add Request#user_agent
  - Request#host knows about forwared host
  - Return an empty string for Request#host if HTTP_HOST and
    SERVER_NAME are both missing
  - Allow MockRequest to accept hash params
  - Optimizations to HeaderHash
  - Refactored rackup into Rack::Server
  - Added Utils.build_nested_query to complement Utils.parse_nested_query
  - Added Utils::Multipart.build_multipart to complement
    Utils::Multipart.parse_multipart
  - Extracted set and delete cookie helpers into Utils so they can be
    used outside Response
  - Extract parse_query and parse_multipart in Request so subclasses
    can change their behavior
  - Enforce binary encoding in RewindableInput
  - Set correct external_encoding for handlers that don't use RewindableInput

### October 18th, 2009: Eighth public release 1.0.1.
  - Bump remainder of rack.versions.
  - Support the pure Ruby FCGI implementation.
  - Fix for form names containing "=": split first then unescape components
  - Fixes the handling of the filename parameter with semicolons in names.
  - Add anchor to nested params parsing regexp to prevent stack overflows
  - Use more compatible gzip write api instead of "<<".
  - Make sure that Reloader doesn't break when executed via ruby -e
  - Make sure WEBrick respects the :Host option
  - Many Ruby 1.9 fixes.

### April 25th, 2009: Seventh public release 1.0.0.
  - SPEC change: Rack::VERSION has been pushed to [1,0].
  - SPEC change: header values must be Strings now, split on "\n".
  - SPEC change: Content-Length can be missing, in this case chunked transfer
    encoding is used.
  - SPEC change: rack.input must be rewindable and support reading into
    a buffer, wrap with Rack::RewindableInput if it isn't.
  - SPEC change: rack.session is now specified.
  - SPEC change: Bodies can now additionally respond to #to_path with
    a filename to be served.
  - NOTE: String bodies break in 1.9, use an Array consisting of a
    single String instead.
  - New middleware Rack::Lock.
  - New middleware Rack::ContentType.
  - Rack::Reloader has been rewritten.
  - Major update to Rack::Auth::OpenID.
  - Support for nested parameter parsing in Rack::Response.
  - Support for redirects in Rack::Response.
  - HttpOnly cookie support in Rack::Response.
  - The Rakefile has been rewritten.
  - Many bugfixes and small improvements.

### January 9th, 2009: Sixth public release 0.9.1.
  - Fix directory traversal exploits in Rack::File and Rack::Directory.

### January 6th, 2009: Fifth public release 0.9.
  - Rack is now managed by the Rack Core Team.
  - Rack::Lint is stricter and follows the HTTP RFCs more closely.
  - Added ConditionalGet middleware.
  - Added ContentLength middleware.
  - Added Deflater middleware.
  - Added Head middleware.
  - Added MethodOverride middleware.
  - Rack::Mime now provides popular MIME-types and their extension.
  - Mongrel Header now streams.
  - Added Thin handler.
  - Official support for swiftiplied Mongrel.
  - Secure cookies.
  - Made HeaderHash case-preserving.
  - Many bugfixes and small improvements.

### August 21st, 2008: Fourth public release 0.4.
  - New middleware, Rack::Deflater, by Christoffer Sawicki.
  - OpenID authentication now needs ruby-openid 2.
  - New Memcache sessions, by blink.
  - Explicit EventedMongrel handler, by Joshua Peek <josh@joshpeek.com>
  - Rack::Reloader is not loaded in rackup development mode.
  - rackup can daemonize with -D.
  - Many bugfixes, especially for pool sessions, URLMap, thread safety
    and tempfile handling.
  - Improved tests.
  - Rack moved to Git.

### February 26th, 2008: Third public release 0.3.
  - LiteSpeed handler, by Adrian Madrid.
  - SCGI handler, by Jeremy Evans.
  - Pool sessions, by blink.
  - OpenID authentication, by blink.
  - :Port and :File options for opening FastCGI sockets, by blink.
  - Last-Modified HTTP header for Rack::File, by blink.
  - Rack::Builder#use now accepts blocks, by Corey Jewett.
    (See example/protectedlobster.ru)
  - HTTP status 201 can contain a Content-Type and a body now.
  - Many bugfixes, especially related to Cookie handling.

### May 16th, 2007: Second public release 0.2.
  - HTTP Basic authentication.
  - Cookie Sessions.
  - Static file handler.
  - Improved Rack::Request.
  - Improved Rack::Response.
  - Added Rack::ShowStatus, for better default error messages.
  - Bug fixes in the Camping adapter.
  - Removed Rails adapter, was too alpha.

### March 3rd, 2007: First public release 0.1.
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/rack.gemspec000064400000017341150402106430014644 0ustar00# -*- encoding: utf-8 -*-
# stub: rack 1.6.4 ruby lib

Gem::Specification.new do |s|
  s.name = "rack"
  s.version = "1.6.4"

  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
  s.require_paths = ["lib"]
  s.authors = ["Christian Neukirchen"]
  s.date = "2015-06-18"
  s.description = "Rack provides a minimal, modular and adaptable interface for developing\nweb applications in Ruby.  By wrapping HTTP requests and responses in\nthe simplest way possible, it unifies and distills the API for web\nservers, web frameworks, and software in between (the so-called\nmiddleware) into a single method call.\n\nAlso see http://rack.github.io/.\n"
  s.email = "chneukirchen@gmail.com"
  s.executables = ["rackup"]
  s.extra_rdoc_files = ["README.rdoc", "KNOWN-ISSUES", "HISTORY.md"]
  s.files = ["COPYING", "HISTORY.md", "KNOWN-ISSUES", "README.rdoc", "Rakefile", "SPEC", "bin/rackup", "contrib/rack.png", "contrib/rack.svg", "contrib/rack_logo.svg", "contrib/rdoc.css", "example/lobster.ru", "example/protectedlobster.rb", "example/protectedlobster.ru", "lib/rack.rb", "lib/rack/auth/abstract/handler.rb", "lib/rack/auth/abstract/request.rb", "lib/rack/auth/basic.rb", "lib/rack/auth/digest/md5.rb", "lib/rack/auth/digest/nonce.rb", "lib/rack/auth/digest/params.rb", "lib/rack/auth/digest/request.rb", "lib/rack/backports/uri/common_18.rb", "lib/rack/backports/uri/common_192.rb", "lib/rack/backports/uri/common_193.rb", "lib/rack/body_proxy.rb", "lib/rack/builder.rb", "lib/rack/cascade.rb", "lib/rack/chunked.rb", "lib/rack/commonlogger.rb", "lib/rack/conditionalget.rb", "lib/rack/config.rb", "lib/rack/content_length.rb", "lib/rack/content_type.rb", "lib/rack/deflater.rb", "lib/rack/directory.rb", "lib/rack/etag.rb", "lib/rack/file.rb", "lib/rack/handler.rb", "lib/rack/handler/cgi.rb", "lib/rack/handler/evented_mongrel.rb", "lib/rack/handler/fastcgi.rb", "lib/rack/handler/lsws.rb", "lib/rack/handler/mongrel.rb", "lib/rack/handler/scgi.rb", "lib/rack/handler/swiftiplied_mongrel.rb", "lib/rack/handler/thin.rb", "lib/rack/handler/webrick.rb", "lib/rack/head.rb", "lib/rack/lint.rb", "lib/rack/lobster.rb", "lib/rack/lock.rb", "lib/rack/logger.rb", "lib/rack/methodoverride.rb", "lib/rack/mime.rb", "lib/rack/mock.rb", "lib/rack/multipart.rb", "lib/rack/multipart/generator.rb", "lib/rack/multipart/parser.rb", "lib/rack/multipart/uploaded_file.rb", "lib/rack/nulllogger.rb", "lib/rack/recursive.rb", "lib/rack/reloader.rb", "lib/rack/request.rb", "lib/rack/response.rb", "lib/rack/rewindable_input.rb", "lib/rack/runtime.rb", "lib/rack/sendfile.rb", "lib/rack/server.rb", "lib/rack/session/abstract/id.rb", "lib/rack/session/cookie.rb", "lib/rack/session/memcache.rb", "lib/rack/session/pool.rb", "lib/rack/showexceptions.rb", "lib/rack/showstatus.rb", "lib/rack/static.rb", "lib/rack/tempfile_reaper.rb", "lib/rack/urlmap.rb", "lib/rack/utils.rb", "lib/rack/utils/okjson.rb", "rack.gemspec", "test/builder/anything.rb", "test/builder/comment.ru", "test/builder/end.ru", "test/builder/line.ru", "test/builder/options.ru", "test/cgi/assets/folder/test.js", "test/cgi/assets/fonts/font.eot", "test/cgi/assets/images/image.png", "test/cgi/assets/index.html", "test/cgi/assets/javascripts/app.js", "test/cgi/assets/stylesheets/app.css", "test/cgi/lighttpd.conf", "test/cgi/lighttpd.errors", "test/cgi/rackup_stub.rb", "test/cgi/sample_rackup.ru", "test/cgi/test", "test/cgi/test+directory/test+file", "test/cgi/test.fcgi", "test/cgi/test.ru", "test/gemloader.rb", "test/multipart/bad_robots", "test/multipart/binary", "test/multipart/content_type_and_no_filename", "test/multipart/empty", "test/multipart/fail_16384_nofile", "test/multipart/file1.txt", "test/multipart/filename_and_modification_param", "test/multipart/filename_and_no_name", "test/multipart/filename_with_escaped_quotes", "test/multipart/filename_with_escaped_quotes_and_modification_param", "test/multipart/filename_with_percent_escaped_quotes", "test/multipart/filename_with_unescaped_percentages", "test/multipart/filename_with_unescaped_percentages2", "test/multipart/filename_with_unescaped_percentages3", "test/multipart/filename_with_unescaped_quotes", "test/multipart/ie", "test/multipart/invalid_character", "test/multipart/mixed_files", "test/multipart/nested", "test/multipart/none", "test/multipart/semicolon", "test/multipart/text", "test/multipart/three_files_three_fields", "test/multipart/webkit", "test/rackup/config.ru", "test/registering_handler/rack/handler/registering_myself.rb", "test/spec_auth_basic.rb", "test/spec_auth_digest.rb", "test/spec_body_proxy.rb", "test/spec_builder.rb", "test/spec_cascade.rb", "test/spec_cgi.rb", "test/spec_chunked.rb", "test/spec_commonlogger.rb", "test/spec_conditionalget.rb", "test/spec_config.rb", "test/spec_content_length.rb", "test/spec_content_type.rb", "test/spec_deflater.rb", "test/spec_directory.rb", "test/spec_etag.rb", "test/spec_fastcgi.rb", "test/spec_file.rb", "test/spec_handler.rb", "test/spec_head.rb", "test/spec_lint.rb", "test/spec_lobster.rb", "test/spec_lock.rb", "test/spec_logger.rb", "test/spec_methodoverride.rb", "test/spec_mime.rb", "test/spec_mock.rb", "test/spec_mongrel.rb", "test/spec_multipart.rb", "test/spec_nulllogger.rb", "test/spec_recursive.rb", "test/spec_request.rb", "test/spec_response.rb", "test/spec_rewindable_input.rb", "test/spec_runtime.rb", "test/spec_sendfile.rb", "test/spec_server.rb", "test/spec_session_abstract_id.rb", "test/spec_session_cookie.rb", "test/spec_session_memcache.rb", "test/spec_session_pool.rb", "test/spec_showexceptions.rb", "test/spec_showstatus.rb", "test/spec_static.rb", "test/spec_tempfile_reaper.rb", "test/spec_thin.rb", "test/spec_urlmap.rb", "test/spec_utils.rb", "test/spec_version.rb", "test/spec_webrick.rb", "test/static/another/index.html", "test/static/index.html", "test/testrequest.rb", "test/unregistered_handler/rack/handler/unregistered.rb", "test/unregistered_handler/rack/handler/unregistered_long_one.rb"]
  s.homepage = "http://rack.github.io/"
  s.licenses = ["MIT"]
  s.rubyforge_project = "rack"
  s.rubygems_version = "2.4.5.5"
  s.summary = "a modular Ruby webserver interface"
  s.test_files = ["test/spec_auth_basic.rb", "test/spec_auth_digest.rb", "test/spec_body_proxy.rb", "test/spec_builder.rb", "test/spec_cascade.rb", "test/spec_cgi.rb", "test/spec_chunked.rb", "test/spec_commonlogger.rb", "test/spec_conditionalget.rb", "test/spec_config.rb", "test/spec_content_length.rb", "test/spec_content_type.rb", "test/spec_deflater.rb", "test/spec_directory.rb", "test/spec_etag.rb", "test/spec_fastcgi.rb", "test/spec_file.rb", "test/spec_handler.rb", "test/spec_head.rb", "test/spec_lint.rb", "test/spec_lobster.rb", "test/spec_lock.rb", "test/spec_logger.rb", "test/spec_methodoverride.rb", "test/spec_mime.rb", "test/spec_mock.rb", "test/spec_mongrel.rb", "test/spec_multipart.rb", "test/spec_nulllogger.rb", "test/spec_recursive.rb", "test/spec_request.rb", "test/spec_response.rb", "test/spec_rewindable_input.rb", "test/spec_runtime.rb", "test/spec_sendfile.rb", "test/spec_server.rb", "test/spec_session_abstract_id.rb", "test/spec_session_cookie.rb", "test/spec_session_memcache.rb", "test/spec_session_pool.rb", "test/spec_showexceptions.rb", "test/spec_showstatus.rb", "test/spec_static.rb", "test/spec_tempfile_reaper.rb", "test/spec_thin.rb", "test/spec_urlmap.rb", "test/spec_utils.rb", "test/spec_version.rb", "test/spec_webrick.rb"]

  if s.respond_to? :specification_version then
    s.specification_version = 4

    if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
      s.add_development_dependency(%q<bacon>, [">= 0"])
      s.add_development_dependency(%q<rake>, [">= 0"])
    else
      s.add_dependency(%q<bacon>, [">= 0"])
      s.add_dependency(%q<rake>, [">= 0"])
    end
  else
    s.add_dependency(%q<bacon>, [">= 0"])
    s.add_dependency(%q<rake>, [">= 0"])
  end
end

lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_showstatus.rb000064400000005363150402106430017122 0ustar00require 'rack/showstatus'
require 'rack/lint'
require 'rack/mock'
require 'rack/utils'

describe Rack::ShowStatus do
  def show_status(app)
    Rack::Lint.new Rack::ShowStatus.new(app)
  end
  
  should "provide a default status message" do
    req = Rack::MockRequest.new(
      show_status(lambda{|env|
        [404, {"Content-Type" => "text/plain", "Content-Length" => "0"}, []]
    }))

    res = req.get("/", :lint => true)
    res.should.be.not_found
    res.should.be.not.empty

    res["Content-Type"].should.equal("text/html")
    res.should =~ /404/
    res.should =~ /Not Found/
  end

  should "let the app provide additional information" do
    req = Rack::MockRequest.new(
      show_status(
        lambda{|env|
          env["rack.showstatus.detail"] = "gone too meta."
          [404, {"Content-Type" => "text/plain", "Content-Length" => "0"}, []]
    }))

    res = req.get("/", :lint => true)
    res.should.be.not_found
    res.should.be.not.empty

    res["Content-Type"].should.equal("text/html")
    res.should =~ /404/
    res.should =~ /Not Found/
    res.should =~ /too meta/
  end

  should "escape error" do
    detail = "<script>alert('hi \"')</script>"
    req = Rack::MockRequest.new(
      show_status(
        lambda{|env|
          env["rack.showstatus.detail"] = detail
          [500, {"Content-Type" => "text/plain", "Content-Length" => "0"}, []]
    }))

    res = req.get("/", :lint => true)
    res.should.be.not.empty

    res["Content-Type"].should.equal("text/html")
    res.should =~ /500/
    res.should.not.include detail
    res.body.should.include Rack::Utils.escape_html(detail)
  end

  should "not replace existing messages" do
    req = Rack::MockRequest.new(
      show_status(
        lambda{|env|
          [404, {"Content-Type" => "text/plain", "Content-Length" => "4"}, ["foo!"]]
    }))

    res = req.get("/", :lint => true)
    res.should.be.not_found

    res.body.should == "foo!"
  end

  should "pass on original headers" do
    headers = {"WWW-Authenticate" => "Basic blah"}

    req = Rack::MockRequest.new(
      show_status(lambda{|env| [401, headers, []] }))
    res = req.get("/", :lint => true)

    res["WWW-Authenticate"].should.equal("Basic blah")
  end

  should "replace existing messages if there is detail" do
    req = Rack::MockRequest.new(
      show_status(
        lambda{|env|
          env["rack.showstatus.detail"] = "gone too meta."
          [404, {"Content-Type" => "text/plain", "Content-Length" => "4"}, ["foo!"]]
    }))

    res = req.get("/", :lint => true)
    res.should.be.not_found
    res.should.be.not.empty

    res["Content-Type"].should.equal("text/html")
    res["Content-Length"].should.not.equal("4")
    res.should =~ /404/
    res.should =~ /too meta/
    res.body.should.not =~ /foo/
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_methodoverride.rb000064400000004606150402106430017715 0ustar00require 'stringio'
require 'rack/methodoverride'
require 'rack/mock'

describe Rack::MethodOverride do
  def app
    Rack::Lint.new(Rack::MethodOverride.new(lambda {|e|
      [200, {"Content-Type" => "text/plain"}, []]
    }))
  end
  
  should "not affect GET requests" do
    env = Rack::MockRequest.env_for("/?_method=delete", :method => "GET")
    app.call env

    env["REQUEST_METHOD"].should.equal "GET"
  end

  should "modify REQUEST_METHOD for POST requests when _method parameter is set" do
    env = Rack::MockRequest.env_for("/", :method => "POST", :input => "_method=put")
    app.call env

    env["REQUEST_METHOD"].should.equal "PUT"
  end

  should "modify REQUEST_METHOD for POST requests when X-HTTP-Method-Override is set" do
    env = Rack::MockRequest.env_for("/",
            :method => "POST",
            "HTTP_X_HTTP_METHOD_OVERRIDE" => "PATCH"
          )
    app.call env

    env["REQUEST_METHOD"].should.equal "PATCH"
  end

  should "not modify REQUEST_METHOD if the method is unknown" do
    env = Rack::MockRequest.env_for("/", :method => "POST", :input => "_method=foo")
    app.call env

    env["REQUEST_METHOD"].should.equal "POST"
  end

  should "not modify REQUEST_METHOD when _method is nil" do
    env = Rack::MockRequest.env_for("/", :method => "POST", :input => "foo=bar")
    app.call env

    env["REQUEST_METHOD"].should.equal "POST"
  end

  should "store the original REQUEST_METHOD prior to overriding" do
    env = Rack::MockRequest.env_for("/",
            :method => "POST",
            :input  => "_method=options")
    app.call env

    env["rack.methodoverride.original_method"].should.equal "POST"
  end

  should "not modify REQUEST_METHOD when given invalid multipart form data" do
    input = <<EOF
--AaB03x\r
content-disposition: form-data; name="huge"; filename="huge"\r
EOF
    env = Rack::MockRequest.env_for("/",
                      "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                      "CONTENT_LENGTH" => input.size.to_s,
                      :method => "POST", :input => input)
    begin
      app.call env
    rescue EOFError
    end

    env["REQUEST_METHOD"].should.equal "POST"
  end

  should "not modify REQUEST_METHOD for POST requests when the params are unparseable" do
    env = Rack::MockRequest.env_for("/", :method => "POST", :input => "(%bad-params%)")
    app.call env

    env["REQUEST_METHOD"].should.equal "POST"
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_handler.rb000064400000003577150402106430016320 0ustar00require 'rack/handler'

class Rack::Handler::Lobster; end
class RockLobster; end

describe Rack::Handler do
  it "has registered default handlers" do
    Rack::Handler.get('cgi').should.equal Rack::Handler::CGI
    Rack::Handler.get('webrick').should.equal Rack::Handler::WEBrick

    begin
      Rack::Handler.get('fastcgi').should.equal Rack::Handler::FastCGI
    rescue LoadError
    end

    begin
      Rack::Handler.get('mongrel').should.equal Rack::Handler::Mongrel
    rescue LoadError
    end
  end

  should "raise LoadError if handler doesn't exist" do
    lambda {
      Rack::Handler.get('boom')
    }.should.raise(LoadError)

    lambda {
      Rack::Handler.get('Object')
    }.should.raise(LoadError)
  end

  should "get unregistered, but already required, handler by name" do
    Rack::Handler.get('Lobster').should.equal Rack::Handler::Lobster
  end

  should "register custom handler" do
    Rack::Handler.register('rock_lobster', 'RockLobster')
    Rack::Handler.get('rock_lobster').should.equal RockLobster
  end

  should "not need registration for properly coded handlers even if not already required" do
    begin
      $LOAD_PATH.push File.expand_path('../unregistered_handler', __FILE__)
      Rack::Handler.get('Unregistered').should.equal Rack::Handler::Unregistered
      lambda {
        Rack::Handler.get('UnRegistered')
      }.should.raise LoadError
      Rack::Handler.get('UnregisteredLongOne').should.equal Rack::Handler::UnregisteredLongOne
    ensure
      $LOAD_PATH.delete File.expand_path('../unregistered_handler', __FILE__)
    end
  end

  should "allow autoloaded handlers to be registered properly while being loaded" do
    path = File.expand_path('../registering_handler', __FILE__)
    begin
      $LOAD_PATH.push path
      Rack::Handler.get('registering_myself').should.equal Rack::Handler::RegisteringMyself
    ensure
      $LOAD_PATH.delete path
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_deflater.rb000064400000024052150402106430016460 0ustar00require 'stringio'
require 'time'  # for Time#httpdate
require 'rack/deflater'
require 'rack/lint'
require 'rack/mock'
require 'zlib'

describe Rack::Deflater do

  def build_response(status, body, accept_encoding, options = {})
    body = [body] if body.respond_to? :to_str
    app = lambda do |env|
      res = [status, options['response_headers'] || {}, body]
      res[1]['Content-Type'] = 'text/plain' unless res[0] == 304
      res
    end

    request = Rack::MockRequest.env_for('', (options['request_headers'] || {}).merge('HTTP_ACCEPT_ENCODING' => accept_encoding))
    deflater = Rack::Lint.new Rack::Deflater.new(app, options['deflater_options'] || {})

    deflater.call(request)
  end

  ##
  # Constructs response object and verifies if it yields right results
  #
  # [expected_status] expected response status, e.g. 200, 304
  # [expected_body] expected response body
  # [accept_encoing] what Accept-Encoding header to send and expect, e.g.
  #                  'deflate' - accepts and expects deflate encoding in response
  #                  { 'gzip' => nil } - accepts gzip but expects no encoding in response
  # [options] hash of request options, i.e.
  #           'app_status' - what status dummy app should return (may be changed by deflater at some point)
  #           'app_body' - what body dummy app should return (may be changed by deflater at some point)
  #           'request_headers' - extra reqest headers to be sent
  #           'response_headers' - extra response headers to be returned
  #           'deflater_options' - options passed to deflater middleware
  # [block] useful for doing some extra verification
  def verify(expected_status, expected_body, accept_encoding, options = {}, &block)
    accept_encoding, expected_encoding = if accept_encoding.kind_of?(Hash)
      [accept_encoding.keys.first, accept_encoding.values.first]
    else
      [accept_encoding, accept_encoding.dup]
    end

    # build response
    status, headers, body = build_response(
      options['app_status'] || expected_status,
      options['app_body'] || expected_body,
      accept_encoding,
      options
    )

    # verify status
    status.should.equal(expected_status)

    # verify body
    unless options['skip_body_verify']
      body_text = ''
      body.each { |part| body_text << part }

      deflated_body = case expected_encoding
      when 'deflate'
        inflater = Zlib::Inflate.new(-Zlib::MAX_WBITS)
        inflater.inflate(body_text) << inflater.finish
      when 'gzip'
        io = StringIO.new(body_text)
        gz = Zlib::GzipReader.new(io)
        tmp = gz.read
        gz.close
        tmp
      else
        body_text
      end

      deflated_body.should.equal(expected_body)
    end

    # yield full response verification
    yield(status, headers, body) if block_given?
  end

  should 'be able to deflate bodies that respond to each' do
    app_body = Object.new
    class << app_body; def each; yield('foo'); yield('bar'); end; end

    verify(200, 'foobar', 'deflate', { 'app_body' => app_body }) do |status, headers, body|
      headers.should.equal({
        'Content-Encoding' => 'deflate',
        'Vary' => 'Accept-Encoding',
        'Content-Type' => 'text/plain'
      })
    end
  end

  should 'flush deflated chunks to the client as they become ready' do
    app_body = Object.new
    class << app_body; def each; yield('foo'); yield('bar'); end; end

    verify(200, app_body, 'deflate', { 'skip_body_verify' => true }) do |status, headers, body|
      headers.should.equal({
        'Content-Encoding' => 'deflate',
        'Vary' => 'Accept-Encoding',
        'Content-Type' => 'text/plain'
      })

      buf = []
      inflater = Zlib::Inflate.new(-Zlib::MAX_WBITS)
      body.each { |part| buf << inflater.inflate(part) }
      buf << inflater.finish

      buf.delete_if { |part| part.empty? }.join.should.equal('foobar')
    end
  end

  # TODO: This is really just a special case of the above...
  should 'be able to deflate String bodies' do
    verify(200, 'Hello world!', 'deflate') do |status, headers, body|
      headers.should.equal({
        'Content-Encoding' => 'deflate',
        'Vary' => 'Accept-Encoding',
        'Content-Type' => 'text/plain'
      })
    end
  end

  should 'be able to gzip bodies that respond to each' do
    app_body = Object.new
    class << app_body; def each; yield('foo'); yield('bar'); end; end

    verify(200, 'foobar', 'gzip', { 'app_body' => app_body }) do |status, headers, body|
      headers.should.equal({
        'Content-Encoding' => 'gzip',
        'Vary' => 'Accept-Encoding',
        'Content-Type' => 'text/plain'
      })
    end
  end

  should 'flush gzipped chunks to the client as they become ready' do
    app_body = Object.new
    class << app_body; def each; yield('foo'); yield('bar'); end; end

    verify(200, app_body, 'gzip', { 'skip_body_verify' => true }) do |status, headers, body|
      headers.should.equal({
        'Content-Encoding' => 'gzip',
        'Vary' => 'Accept-Encoding',
        'Content-Type' => 'text/plain'
      })

      buf = []
      inflater = Zlib::Inflate.new(Zlib::MAX_WBITS + 32)
      body.each { |part| buf << inflater.inflate(part) }
      buf << inflater.finish

      buf.delete_if { |part| part.empty? }.join.should.equal('foobar')
    end
  end

  should 'be able to fallback to no deflation' do
    verify(200, 'Hello world!', 'superzip') do |status, headers, body|
      headers.should.equal({
        'Vary' => 'Accept-Encoding',
        'Content-Type' => 'text/plain'
      })
    end
  end

  should 'be able to skip when there is no response entity body' do
    verify(304, '', { 'gzip' => nil }, { 'app_body' => [] }) do |status, headers, body|
      headers.should.equal({})
    end
  end

  should 'handle the lack of an acceptable encoding' do
    app_body = 'Hello world!'
    not_found_body1 = 'An acceptable encoding for the requested resource / could not be found.'
    not_found_body2 = 'An acceptable encoding for the requested resource /foo/bar could not be found.'
    options1 = {
      'app_status' => 200,
      'app_body' => app_body,
      'request_headers' => {
        'PATH_INFO' => '/'
      }
    }
    options2 = {
      'app_status' => 200,
      'app_body' => app_body,
      'request_headers' => {
        'PATH_INFO' => '/foo/bar'
      }
    }

    verify(406, not_found_body1, 'identity;q=0', options1) do |status, headers, body|
      headers.should.equal({
        'Content-Type' => 'text/plain',
        'Content-Length' => not_found_body1.length.to_s
      })
    end

    verify(406, not_found_body2, 'identity;q=0', options2) do |status, headers, body|
      headers.should.equal({
        'Content-Type' => 'text/plain',
        'Content-Length' => not_found_body2.length.to_s
      })
    end
  end

  should 'handle gzip response with Last-Modified header' do
    last_modified = Time.now.httpdate
    options = {
      'response_headers' => {
        'Content-Type' => 'text/plain',
        'Last-Modified' => last_modified
      }
    }

    verify(200, 'Hello World!', 'gzip', options) do |status, headers, body|
      headers.should.equal({
        'Content-Encoding' => 'gzip',
        'Vary' => 'Accept-Encoding',
        'Last-Modified' => last_modified,
        'Content-Type' => 'text/plain'
      })
    end
  end

  should 'do nothing when no-transform Cache-Control directive present' do
    options = {
      'response_headers' => {
        'Content-Type' => 'text/plain',
        'Cache-Control' => 'no-transform'
      }
    }
    verify(200, 'Hello World!', { 'gzip' => nil }, options) do |status, headers, body|
      headers.should.not.include 'Content-Encoding'
    end
  end

  should 'do nothing when Content-Encoding already present' do
    options = {
      'response_headers' => {
        'Content-Type' => 'text/plain',
        'Content-Encoding' => 'gzip'
      }
    }
    verify(200, 'Hello World!', { 'gzip' => nil }, options)
  end

  should 'deflate when Content-Encoding is identity' do
    options = {
      'response_headers' => {
        'Content-Type' => 'text/plain',
        'Content-Encoding' => 'identity'
      }
    }
    verify(200, 'Hello World!', 'deflate', options)
  end

  should "deflate if content-type matches :include" do
    options = {
      'response_headers' => {
        'Content-Type' => 'text/plain'
      },
      'deflater_options' => {
        :include => %w(text/plain)
      }
    }
    verify(200, 'Hello World!', 'gzip', options)
  end

  should "deflate if content-type is included it :include" do
    options = {
      'response_headers' => {
        'Content-Type' => 'text/plain; charset=us-ascii'
      },
      'deflater_options' => {
        :include => %w(text/plain)
      }
    }
    verify(200, 'Hello World!', 'gzip', options)
  end

  should "not deflate if content-type is not set but given in :include" do
    options = {
      'deflater_options' => {
        :include => %w(text/plain)
      }
    }
    verify(304, 'Hello World!', { 'gzip' => nil }, options)
  end

  should "not deflate if content-type do not match :include" do
    options = {
      'response_headers' => {
        'Content-Type' => 'text/plain'
      },
      'deflater_options' => {
        :include => %w(text/json)
      }
    }
    verify(200, 'Hello World!', { 'gzip' => nil }, options)
  end

  should "deflate response if :if lambda evaluates to true" do
    options = {
      'deflater_options' => {
        :if => lambda { |env, status, headers, body| true }
      }
    }
    verify(200, 'Hello World!', 'deflate', options)
  end

  should "not deflate if :if lambda evaluates to false" do
    options = {
      'deflater_options' => {
        :if => lambda { |env, status, headers, body| false }
      }
    }
    verify(200, 'Hello World!', { 'gzip' => nil }, options)
  end

  should "check for Content-Length via :if" do
    body = 'Hello World!'
    body_len = body.length
    options = {
      'response_headers' => {
        'Content-Length' => body_len.to_s
      },
      'deflater_options' => {
        :if => lambda { |env, status, headers, body|
          headers['Content-Length'].to_i >= body_len
        }
      }
    }

    verify(200, body, 'gzip', options)
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_fastcgi.rb000064400000006122150402106440016311 0ustar00begin
require File.expand_path('../testrequest', __FILE__)
require 'rack/handler/fastcgi'

describe Rack::Handler::FastCGI do
  extend TestRequest::Helpers

  @host = '127.0.0.1'
  @port = 9203

  if `which lighttpd` && !$?.success?
    raise "lighttpd not found"
  end

  # Keep this first.
  $pid = fork {
    ENV['RACK_ENV'] = 'deployment'
    ENV['RUBYLIB'] = [
      File.expand_path('../../lib', __FILE__),
      ENV['RUBYLIB'],
    ].compact.join(':')

    Dir.chdir(File.expand_path("../cgi", __FILE__)) do
      exec "lighttpd -D -f lighttpd.conf"
    end
  }

  should "respond" do
    sleep 1
    GET("/test")
    response.should.not.be.nil
  end

  should "respond via rackup server" do
    GET("/sample_rackup.ru")
    status.should.equal 200
  end

  should "be a lighttpd" do
    GET("/test.fcgi")
    status.should.equal 200
    response["SERVER_SOFTWARE"].should =~ /lighttpd/
    response["HTTP_VERSION"].should.equal "HTTP/1.1"
    response["SERVER_PROTOCOL"].should.equal "HTTP/1.1"
    response["SERVER_PORT"].should.equal @port.to_s
    response["SERVER_NAME"].should.equal @host
  end

  should "have rack headers" do
    GET("/test.fcgi")
    response["rack.version"].should.equal [1,3]
    response["rack.multithread"].should.be.false
    response["rack.multiprocess"].should.be.true
    response["rack.run_once"].should.be.false
  end

  should "have CGI headers on GET" do
    GET("/test.fcgi")
    response["REQUEST_METHOD"].should.equal "GET"
    response["SCRIPT_NAME"].should.equal "/test.fcgi"
    response["REQUEST_PATH"].should.equal "/"
    response["PATH_INFO"].should.equal ""
    response["QUERY_STRING"].should.equal ""
    response["test.postdata"].should.equal ""

    GET("/test.fcgi/foo?quux=1")
    response["REQUEST_METHOD"].should.equal "GET"
    response["SCRIPT_NAME"].should.equal "/test.fcgi"
    response["REQUEST_PATH"].should.equal "/"
    response["PATH_INFO"].should.equal "/foo"
    response["QUERY_STRING"].should.equal "quux=1"
  end

  should "have CGI headers on POST" do
    POST("/test.fcgi", {"rack-form-data" => "23"}, {'X-test-header' => '42'})
    status.should.equal 200
    response["REQUEST_METHOD"].should.equal "POST"
    response["SCRIPT_NAME"].should.equal "/test.fcgi"
    response["REQUEST_PATH"].should.equal "/"
    response["QUERY_STRING"].should.equal ""
    response["HTTP_X_TEST_HEADER"].should.equal "42"
    response["test.postdata"].should.equal "rack-form-data=23"
  end

  should "support HTTP auth" do
    GET("/test.fcgi", {:user => "ruth", :passwd => "secret"})
    response["HTTP_AUTHORIZATION"].should.equal "Basic cnV0aDpzZWNyZXQ="
  end

  should "set status" do
    GET("/test.fcgi?secret")
    status.should.equal 403
    response["rack.url_scheme"].should.equal "http"
  end

  # Keep this last.
  should "shutdown" do
    Process.kill 15, $pid
    Process.wait($pid).should.equal $pid
  end
end

rescue RuntimeError
  $stderr.puts "Skipping Rack::Handler::FastCGI tests (lighttpd is required). Install lighttpd and try again."
rescue LoadError
  $stderr.puts "Skipping Rack::Handler::FastCGI tests (FCGI is required). `gem install fcgi` and try again."
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/builder/comment.ru000064400000000122150402106440016764 0ustar00=begin

=end
run lambda { |env| [200, {'Content-Type' => 'text/plain'}, ['OK']] }
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/builder/options.ru000064400000000113150402106440017015 0ustar00#\ -d
run lambda { |env| [200, {'Content-Type' => 'text/plain'}, ['OK']] }
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/builder/anything.rb000064400000000142150402106440017122 0ustar00class Anything
  def self.call(env)
    [200, {'Content-Type' => 'text/plain'}, ['OK']]
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/builder/line.ru000064400000000115150402106440016253 0ustar00run lambda{ |env| [200, {'Content-Type' => 'text/plain'}, [__LINE__.to_s]] }
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/builder/end.ru000064400000000171150402106440016074 0ustar00run lambda { |env| [200, {'Content-Type' => 'text/plain'}, ['OK']] }
__END__
Should not be evaluated
Neither should
This
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_builder.rb000064400000014317150402106440016324 0ustar00require 'rack/builder'
require 'rack/lint'
require 'rack/mock'
require 'rack/showexceptions'
require 'rack/urlmap'

class NothingMiddleware
  def initialize(app)
    @app = app
  end
  def call(env)
    @@env = env
    response = @app.call(env)
    response
  end
  def self.env
    @@env
  end
end

describe Rack::Builder do
  def builder(&block)
    Rack::Lint.new Rack::Builder.new(&block)
  end
  
  def builder_to_app(&block)
    Rack::Lint.new Rack::Builder.new(&block).to_app
  end
  
  it "supports mapping" do
    app = builder_to_app do
      map '/' do |outer_env|
        run lambda { |inner_env| [200, {"Content-Type" => "text/plain"}, ['root']] }
      end
      map '/sub' do
        run lambda { |inner_env| [200, {"Content-Type" => "text/plain"}, ['sub']] }
      end
    end
    Rack::MockRequest.new(app).get("/").body.to_s.should.equal 'root'
    Rack::MockRequest.new(app).get("/sub").body.to_s.should.equal 'sub'
  end

  it "doesn't dupe env even when mapping" do
    app = builder_to_app do
      use NothingMiddleware
      map '/' do |outer_env|
        run lambda { |inner_env|
          inner_env['new_key'] = 'new_value'
          [200, {"Content-Type" => "text/plain"}, ['root']]
        }
      end
    end
    Rack::MockRequest.new(app).get("/").body.to_s.should.equal 'root'
    NothingMiddleware.env['new_key'].should.equal 'new_value'
  end

  it "chains apps by default" do
    app = builder_to_app do
      use Rack::ShowExceptions
      run lambda { |env| raise "bzzzt" }
    end

    Rack::MockRequest.new(app).get("/").should.be.server_error
    Rack::MockRequest.new(app).get("/").should.be.server_error
    Rack::MockRequest.new(app).get("/").should.be.server_error
  end

  it "has implicit #to_app" do
    app = builder do
      use Rack::ShowExceptions
      run lambda { |env| raise "bzzzt" }
    end

    Rack::MockRequest.new(app).get("/").should.be.server_error
    Rack::MockRequest.new(app).get("/").should.be.server_error
    Rack::MockRequest.new(app).get("/").should.be.server_error
  end

  it "supports blocks on use" do
    app = builder do
      use Rack::ShowExceptions
      use Rack::Auth::Basic do |username, password|
        'secret' == password
      end

      run lambda { |env| [200, {"Content-Type" => "text/plain"}, ['Hi Boss']] }
    end

    response = Rack::MockRequest.new(app).get("/")
    response.should.be.client_error
    response.status.should.equal 401

    # with auth...
    response = Rack::MockRequest.new(app).get("/",
        'HTTP_AUTHORIZATION' => 'Basic ' + ["joe:secret"].pack("m*"))
    response.status.should.equal 200
    response.body.to_s.should.equal 'Hi Boss'
  end

  it "has explicit #to_app" do
    app = builder do
      use Rack::ShowExceptions
      run lambda { |env| raise "bzzzt" }
    end

    Rack::MockRequest.new(app).get("/").should.be.server_error
    Rack::MockRequest.new(app).get("/").should.be.server_error
    Rack::MockRequest.new(app).get("/").should.be.server_error
  end

  it "can mix map and run for endpoints" do
    app = builder do
      map '/sub' do
        run lambda { |inner_env| [200, {"Content-Type" => "text/plain"}, ['sub']] }
      end
      run lambda { |inner_env| [200, {"Content-Type" => "text/plain"}, ['root']] }
    end

    Rack::MockRequest.new(app).get("/").body.to_s.should.equal 'root'
    Rack::MockRequest.new(app).get("/sub").body.to_s.should.equal 'sub'
  end

  it "accepts middleware-only map blocks" do
    app = builder do
      map('/foo') { use Rack::ShowExceptions }
      run lambda { |env| raise "bzzzt" }
    end

    proc { Rack::MockRequest.new(app).get("/") }.should.raise(RuntimeError)
    Rack::MockRequest.new(app).get("/foo").should.be.server_error
  end

  it "yields the generated app to a block for warmup" do
    warmed_up_app = nil

    app = Rack::Builder.new do
      warmup { |a| warmed_up_app = a }
      run lambda { |env| [200, {}, []] }
    end.to_app

    warmed_up_app.should.equal app
  end

  should "initialize apps once" do
    app = builder do
      class AppClass
        def initialize
          @called = 0
        end
        def call(env)
          raise "bzzzt"  if @called > 0
        @called += 1
          [200, {'Content-Type' => 'text/plain'}, ['OK']]
        end
      end

      use Rack::ShowExceptions
      run AppClass.new
    end

    Rack::MockRequest.new(app).get("/").status.should.equal 200
    Rack::MockRequest.new(app).get("/").should.be.server_error
  end

  it "allows use after run" do
    app = builder do
      run lambda { |env| raise "bzzzt" }
      use Rack::ShowExceptions
    end

    Rack::MockRequest.new(app).get("/").should.be.server_error
    Rack::MockRequest.new(app).get("/").should.be.server_error
    Rack::MockRequest.new(app).get("/").should.be.server_error
  end

  it 'complains about a missing run' do
    proc do
      Rack::Lint.new Rack::Builder.app { use Rack::ShowExceptions }
    end.should.raise(RuntimeError)
  end

  describe "parse_file" do
    def config_file(name)
      File.join(File.dirname(__FILE__), 'builder', name)
    end

    it "parses commented options" do
      app, options = Rack::Builder.parse_file config_file('options.ru')
      options[:debug].should.be.true
      Rack::MockRequest.new(app).get("/").body.to_s.should.equal 'OK'
    end

    it "removes __END__ before evaluating app" do
      app, _ = Rack::Builder.parse_file config_file('end.ru')
      Rack::MockRequest.new(app).get("/").body.to_s.should.equal 'OK'
    end

    it "supports multi-line comments" do
      lambda {
        Rack::Builder.parse_file config_file('comment.ru')
      }.should.not.raise(SyntaxError)
    end

    it "requires anything not ending in .ru" do
      $: << File.dirname(__FILE__)
      app, * = Rack::Builder.parse_file 'builder/anything'
      Rack::MockRequest.new(app).get("/").body.to_s.should.equal 'OK'
      $:.pop
    end

    it "sets __LINE__ correctly" do
      app, _ = Rack::Builder.parse_file config_file('line.ru')
      Rack::MockRequest.new(app).get("/").body.to_s.should.equal '1'
    end
  end

  describe 'new_from_string' do
    it "builds a rack app from string" do
      app, = Rack::Builder.new_from_string "run lambda{|env| [200, {'Content-Type' => 'text/plane'}, ['OK']] }"
      Rack::MockRequest.new(app).get("/").body.to_s.should.equal 'OK'
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_static.rb000064400000011151150402106440016156 0ustar00require 'rack/static'
require 'rack/lint'
require 'rack/mock'

class DummyApp
  def call(env)
    [200, {"Content-Type" => "text/plain"}, ["Hello World"]]
  end
end

describe Rack::Static do
  def static(app, *args)
    Rack::Lint.new Rack::Static.new(app, *args)
  end

  root = File.expand_path(File.dirname(__FILE__))

  OPTIONS = {:urls => ["/cgi"], :root => root}
  STATIC_OPTIONS = {:urls => [""], :root => "#{root}/static", :index => 'index.html'}
  HASH_OPTIONS = {:urls => {"/cgi/sekret" => 'cgi/test'}, :root => root}

  @request = Rack::MockRequest.new(static(DummyApp.new, OPTIONS))
  @static_request = Rack::MockRequest.new(static(DummyApp.new, STATIC_OPTIONS))
  @hash_request = Rack::MockRequest.new(static(DummyApp.new, HASH_OPTIONS))

  it "serves files" do
    res = @request.get("/cgi/test")
    res.should.be.ok
    res.body.should =~ /ruby/
  end

  it "404s if url root is known but it can't find the file" do
    res = @request.get("/cgi/foo")
    res.should.be.not_found
  end

  it "calls down the chain if url root is not known" do
    res = @request.get("/something/else")
    res.should.be.ok
    res.body.should == "Hello World"
  end

  it "calls index file when requesting root in the given folder" do
    res = @static_request.get("/")
    res.should.be.ok
    res.body.should =~ /index!/

    res = @static_request.get("/other/")
    res.should.be.not_found

    res = @static_request.get("/another/")
    res.should.be.ok
    res.body.should =~ /another index!/
  end

  it "doesn't call index file if :index option was omitted" do
    res = @request.get("/")
    res.body.should == "Hello World"
  end

  it "serves hidden files" do
    res = @hash_request.get("/cgi/sekret")
    res.should.be.ok
    res.body.should =~ /ruby/
  end

  it "calls down the chain if the URI is not specified" do
    res = @hash_request.get("/something/else")
    res.should.be.ok
    res.body.should == "Hello World"
  end

  it "supports serving fixed cache-control (legacy option)" do
    opts = OPTIONS.merge(:cache_control => 'public')
    request = Rack::MockRequest.new(static(DummyApp.new, opts))
    res = request.get("/cgi/test")
    res.should.be.ok
    res.headers['Cache-Control'].should == 'public'
  end

  HEADER_OPTIONS = {:urls => ["/cgi"], :root => root, :header_rules => [
    [:all, {'Cache-Control' => 'public, max-age=100'}],
    [:fonts, {'Cache-Control' => 'public, max-age=200'}],
    [%w(png jpg), {'Cache-Control' => 'public, max-age=300'}],
    ['/cgi/assets/folder/', {'Cache-Control' => 'public, max-age=400'}],
    ['cgi/assets/javascripts', {'Cache-Control' => 'public, max-age=500'}],
    [/\.(css|erb)\z/, {'Cache-Control' => 'public, max-age=600'}]
  ]}
  @header_request = Rack::MockRequest.new(static(DummyApp.new, HEADER_OPTIONS))

  it "supports header rule :all" do
    # Headers for all files via :all shortcut
    res = @header_request.get('/cgi/assets/index.html')
    res.should.be.ok
    res.headers['Cache-Control'].should == 'public, max-age=100'
  end

  it "supports header rule :fonts" do
    # Headers for web fonts via :fonts shortcut
    res = @header_request.get('/cgi/assets/fonts/font.eot')
    res.should.be.ok
    res.headers['Cache-Control'].should == 'public, max-age=200'
  end

  it "supports file extension header rules provided as an Array" do
    # Headers for file extensions via array
    res = @header_request.get('/cgi/assets/images/image.png')
    res.should.be.ok
    res.headers['Cache-Control'].should == 'public, max-age=300'
  end

  it "supports folder rules provided as a String" do
    # Headers for files in folder via string
    res = @header_request.get('/cgi/assets/folder/test.js')
    res.should.be.ok
    res.headers['Cache-Control'].should == 'public, max-age=400'
  end

  it "supports folder header rules provided as a String not starting with a slash" do
    res = @header_request.get('/cgi/assets/javascripts/app.js')
    res.should.be.ok
    res.headers['Cache-Control'].should == 'public, max-age=500'
  end

  it "supports flexible header rules provided as Regexp" do
    # Flexible Headers via Regexp
    res = @header_request.get('/cgi/assets/stylesheets/app.css')
    res.should.be.ok
    res.headers['Cache-Control'].should == 'public, max-age=600'
  end

  it "prioritizes header rules over fixed cache-control setting (legacy option)" do
    opts = OPTIONS.merge(
      :cache_control => 'public, max-age=24',
      :header_rules => [
        [:all, {'Cache-Control' => 'public, max-age=42'}]
      ])

    request = Rack::MockRequest.new(static(DummyApp.new, opts))
    res = request.get("/cgi/test")
    res.should.be.ok
    res.headers['Cache-Control'].should == 'public, max-age=42'
  end

end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/sample_rackup.ru000075500000000116150402106440017272 0ustar00# -*- ruby -*-

require '../testrequest'

run Rack::Lint.new(TestRequest.new)
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/test.ru000075500000000140150402106440015420 0ustar00#!../../bin/rackup
# -*- ruby -*-

require '../testrequest'
run Rack::Lint.new(TestRequest.new)
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/test+directory/test+file000064400000000027150402106440020666 0ustar00this file has plusses!
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/test000075500000000301150402106440014772 0ustar00#!/usr/bin/env ruby
# -*- ruby -*-

$: << File.join(File.dirname(__FILE__), "..", "..", "lib")

require 'rack'
require '../testrequest'

Rack::Handler::CGI.run(Rack::Lint.new(TestRequest.new))
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/lighttpd.errors000064400000000061150402106440017145 0ustar002015-06-16 14:11:43: (log.c.164) server started 
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/test.fcgi000075500000000240150402106440015703 0ustar00#!/usr/bin/env ruby
# -*- ruby -*-

$:.unshift '../../lib'
require 'rack'
require '../testrequest'

Rack::Handler::FastCGI.run(Rack::Lint.new(TestRequest.new))
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/rackup_stub.rb000075500000000135150402106440016744 0ustar00#!/usr/bin/env ruby
# -*- ruby -*-

$:.unshift '../../lib'
require 'rack'
Rack::Server.start
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/lighttpd.conf000075500000001671150402106440016571 0ustar00server.modules = ("mod_fastcgi", "mod_cgi")
server.document-root = "."
server.errorlog = var.CWD + "/lighttpd.errors"
server.port = 9203
server.bind = "127.0.0.1"

server.event-handler = "select"

cgi.assign = ("/test" => "",
#              ".ru" => ""
             )

fastcgi.server = (
                  "test.fcgi" => ("localhost" =>
                    ("min-procs" => 1,
                     "socket" => "/tmp/rack-test-fcgi",
                     "bin-path" => "test.fcgi")),
                  "test.ru" => ("localhost" =>
                    ("min-procs" => 1,
                     "socket" => "/tmp/rack-test-ru-fcgi",
                     "bin-path" => CWD + "/rackup_stub.rb test.ru")),
                  "sample_rackup.ru" => ("localhost" =>
                    ("min-procs" => 1,
                     "socket" => "/tmp/rack-test-rackup-fcgi",
                     "bin-path" => CWD + "/rackup_stub.rb sample_rackup.ru")),
                 )
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/assets/fonts/font.eot000064400000000021150402106440020176 0ustar00### TestFile ###
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/assets/stylesheets/app.css000064400000000021150402106440021234 0ustar00### TestFile ###
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/assets/index.html000064400000000021150402106440017363 0ustar00### TestFile ###
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/assets/folder/test.js000064400000000021150402106440020156 0ustar00### TestFile ###
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/assets/images/image.png000064400000000021150402106440020423 0ustar00### TestFile ###
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/cgi/assets/javascripts/app.js000064400000000021150402106440021035 0ustar00### TestFile ###
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_content_length.rb000064400000005464150402106450017715 0ustar00require 'rack/content_length'
require 'rack/lint'
require 'rack/mock'

describe Rack::ContentLength do
  def content_length(app)
    Rack::Lint.new Rack::ContentLength.new(app)
  end

  def request
    Rack::MockRequest.env_for
  end

  should "set Content-Length on Array bodies if none is set" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, ["Hello, World!"]] }
    response = content_length(app).call(request)
    response[1]['Content-Length'].should.equal '13'
  end

  should "not set Content-Length on variable length bodies" do
    body = lambda { "Hello World!" }
    def body.each ; yield call ; end

    app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, body] }
    response = content_length(app).call(request)
    response[1]['Content-Length'].should.be.nil
  end

  should "not change Content-Length if it is already set" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain', 'Content-Length' => '1'}, "Hello, World!"] }
    response = content_length(app).call(request)
    response[1]['Content-Length'].should.equal '1'
  end

  should "not set Content-Length on 304 responses" do
    app = lambda { |env| [304, {}, []] }
    response = content_length(app).call(request)
    response[1]['Content-Length'].should.equal nil
  end

  should "not set Content-Length when Transfer-Encoding is chunked" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain', 'Transfer-Encoding' => 'chunked'}, []] }
    response = content_length(app).call(request)
    response[1]['Content-Length'].should.equal nil
  end

  # Using "Connection: close" for this is fairly contended. It might be useful
  # to have some other way to signal this.
  #
  # should "not force a Content-Length when Connection:close" do
  #   app = lambda { |env| [200, {'Connection' => 'close'}, []] }
  #   response = content_length(app).call({})
  #   response[1]['Content-Length'].should.equal nil
  # end

  should "close bodies that need to be closed" do
    body = Struct.new(:body) do
      attr_reader :closed
      def each; body.join; end
      def close; @closed = true; end
      def to_ary; end
    end.new(%w[one two three])

    app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, body] }
    response = content_length(app).call(request)
    body.closed.should.equal nil
    response[2].close
    body.closed.should.equal true
  end

  should "support single-execute bodies" do
    body = Struct.new(:body) do
      def each
        yield body.shift until body.empty?
      end
      def to_ary; end
    end.new(%w[one two three])

    app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, body] }
    response = content_length(app).call(request)
    expected = %w[one two three]
    response[1]['Content-Length'].should.equal expected.join.size.to_s
    response[2].to_enum.to_a.should.equal expected
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_rewindable_input.rb000064400000005433150402106450020231 0ustar00require 'stringio'
require 'rack/rewindable_input'

shared "a rewindable IO object" do
  before do
    @rio = Rack::RewindableInput.new(@io)
  end

  should "be able to handle to read()" do
    @rio.read.should.equal "hello world"
  end

  should "be able to handle to read(nil)" do
    @rio.read(nil).should.equal "hello world"
  end

  should "be able to handle to read(length)" do
    @rio.read(1).should.equal "h"
  end

  should "be able to handle to read(length, buffer)" do
    buffer = ""
    result = @rio.read(1, buffer)
    result.should.equal "h"
    result.object_id.should.equal buffer.object_id
  end

  should "be able to handle to read(nil, buffer)" do
    buffer = ""
    result = @rio.read(nil, buffer)
    result.should.equal "hello world"
    result.object_id.should.equal buffer.object_id
  end

  should "rewind to the beginning when #rewind is called" do
    @rio.read(1)
    @rio.rewind
    @rio.read.should.equal "hello world"
  end

  should "be able to handle gets" do
    @rio.gets.should == "hello world"
  end

  should "be able to handle each" do
    array = []
    @rio.each do |data|
      array << data
    end
    array.should.equal(["hello world"])
  end

  should "not buffer into a Tempfile if no data has been read yet" do
    @rio.instance_variable_get(:@rewindable_io).should.be.nil
  end

  should "buffer into a Tempfile when data has been consumed for the first time" do
    @rio.read(1)
    tempfile = @rio.instance_variable_get(:@rewindable_io)
    tempfile.should.not.be.nil
    @rio.read(1)
    tempfile2 = @rio.instance_variable_get(:@rewindable_io)
    tempfile2.path.should == tempfile.path
  end

  should "close the underlying tempfile upon calling #close" do
    @rio.read(1)
    tempfile = @rio.instance_variable_get(:@rewindable_io)
    @rio.close
    tempfile.should.be.closed
  end

  should "be possible to call #close when no data has been buffered yet" do
    lambda{ @rio.close }.should.not.raise
  end

  should "be possible to call #close multiple times" do
    lambda{
      @rio.close
      @rio.close
    }.should.not.raise
  end

  @rio.close
  @rio = nil
end

describe Rack::RewindableInput do
  describe "given an IO object that is already rewindable" do
    before do
      @io = StringIO.new("hello world")
    end

    behaves_like "a rewindable IO object"
  end

  describe "given an IO object that is not rewindable" do
    before do
      @io = StringIO.new("hello world")
      @io.instance_eval do
        undef :rewind
      end
    end

    behaves_like "a rewindable IO object"
  end

  describe "given an IO object whose rewind method raises Errno::ESPIPE" do
    before do
      @io = StringIO.new("hello world")
      def @io.rewind
        raise Errno::ESPIPE, "You can't rewind this!"
      end
    end

    behaves_like "a rewindable IO object"
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_logger.rb000064400000001156150402106450016153 0ustar00require 'stringio'
require 'rack/lint'
require 'rack/logger'
require 'rack/mock'

describe Rack::Logger do
  app = lambda { |env|
    log = env['rack.logger']
    log.debug("Created logger")
    log.info("Program started")
    log.warn("Nothing to do!")

    [200, {'Content-Type' => 'text/plain'}, ["Hello, World!"]]
  }

  should "conform to Rack::Lint" do
    errors = StringIO.new
    a = Rack::Lint.new(Rack::Logger.new(app))
    Rack::MockRequest.new(a).get('/', 'rack.errors' => errors)
    errors.string.should.match(/INFO -- : Program started/)
    errors.string.should.match(/WARN -- : Nothing to do/)
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_showexceptions.rb000064400000004015150402106450017753 0ustar00require 'rack/showexceptions'
require 'rack/lint'
require 'rack/mock'

describe Rack::ShowExceptions do
  def show_exceptions(app)
    Rack::Lint.new Rack::ShowExceptions.new(app)
  end
  
  it "catches exceptions" do
    res = nil

    req = Rack::MockRequest.new(
      show_exceptions(
        lambda{|env| raise RuntimeError }
    ))

    lambda{
      res = req.get("/", "HTTP_ACCEPT" => "text/html")
    }.should.not.raise

    res.should.be.a.server_error
    res.status.should.equal 500

    res.should =~ /RuntimeError/
    res.should =~ /ShowExceptions/
  end

  it "responds with HTML only to requests accepting HTML" do
    res = nil

    req = Rack::MockRequest.new(
      show_exceptions(
        lambda{|env| raise RuntimeError, "It was never supposed to work" }
    ))

    [
      # Serve text/html when the client accepts text/html
      ["text/html", ["/", {"HTTP_ACCEPT" => "text/html"}]],
      ["text/html", ["/", {"HTTP_ACCEPT" => "*/*"}]],
      # Serve text/plain when the client does not accept text/html
      ["text/plain", ["/"]],
      ["text/plain", ["/", {"HTTP_ACCEPT" => "application/json"}]]
    ].each do |exmime, rargs|
      lambda{
        res = req.get(*rargs)
      }.should.not.raise

      res.should.be.a.server_error
      res.status.should.equal 500

      res.content_type.should.equal exmime

      res.body.should.include "RuntimeError"
      res.body.should.include "It was never supposed to work"

      if exmime == "text/html"
        res.body.should.include '</html>'
      else
        res.body.should.not.include '</html>'
      end
    end
  end

  it "handles exceptions without a backtrace" do
    res = nil

    req = Rack::MockRequest.new(
      show_exceptions(
        lambda{|env| raise RuntimeError, "", [] }
      )
    )

    lambda{
      res = req.get("/", "HTTP_ACCEPT" => "text/html")
    }.should.not.raise

    res.should.be.a.server_error
    res.status.should.equal 500

    res.should =~ /RuntimeError/
    res.should =~ /ShowExceptions/
    res.should =~ /unknown location/
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_webrick.rb000064400000013005150402106450016316 0ustar00require 'rack/mock'
require File.expand_path('../testrequest', __FILE__)

Thread.abort_on_exception = true

describe Rack::Handler::WEBrick do
  extend TestRequest::Helpers

  @server = WEBrick::HTTPServer.new(:Host => @host='127.0.0.1',
                                    :Port => @port=9202,
                                    :Logger => WEBrick::Log.new(nil, WEBrick::BasicLog::WARN),
                                    :AccessLog => [])
  @server.mount "/test", Rack::Handler::WEBrick,
    Rack::Lint.new(TestRequest.new)
  Thread.new { @server.start }
  trap(:INT) { @server.shutdown }

  should "respond" do
    lambda {
      GET("/test")
    }.should.not.raise
  end

  should "be a WEBrick" do
    GET("/test")
    status.should.equal 200
    response["SERVER_SOFTWARE"].should =~ /WEBrick/
    response["HTTP_VERSION"].should.equal "HTTP/1.1"
    response["SERVER_PROTOCOL"].should.equal "HTTP/1.1"
    response["SERVER_PORT"].should.equal "9202"
    response["SERVER_NAME"].should.equal "127.0.0.1"
  end

  should "have rack headers" do
    GET("/test")
    response["rack.version"].should.equal [1,3]
    response["rack.multithread"].should.be.true
    response["rack.multiprocess"].should.be.false
    response["rack.run_once"].should.be.false
  end

  should "have CGI headers on GET" do
    GET("/test")
    response["REQUEST_METHOD"].should.equal "GET"
    response["SCRIPT_NAME"].should.equal "/test"
    response["REQUEST_PATH"].should.equal "/test"
    response["PATH_INFO"].should.be.equal ""
    response["QUERY_STRING"].should.equal ""
    response["test.postdata"].should.equal ""

    GET("/test/foo?quux=1")
    response["REQUEST_METHOD"].should.equal "GET"
    response["SCRIPT_NAME"].should.equal "/test"
    response["REQUEST_PATH"].should.equal "/test/foo"
    response["PATH_INFO"].should.equal "/foo"
    response["QUERY_STRING"].should.equal "quux=1"

    GET("/test/foo%25encoding?quux=1")
    response["REQUEST_METHOD"].should.equal "GET"
    response["SCRIPT_NAME"].should.equal "/test"
    response["REQUEST_PATH"].should.equal "/test/foo%25encoding"
    response["PATH_INFO"].should.equal "/foo%25encoding"
    response["QUERY_STRING"].should.equal "quux=1"
  end

  should "have CGI headers on POST" do
    POST("/test", {"rack-form-data" => "23"}, {'X-test-header' => '42'})
    status.should.equal 200
    response["REQUEST_METHOD"].should.equal "POST"
    response["SCRIPT_NAME"].should.equal "/test"
    response["REQUEST_PATH"].should.equal "/test"
    response["PATH_INFO"].should.equal ""
    response["QUERY_STRING"].should.equal ""
    response["HTTP_X_TEST_HEADER"].should.equal "42"
    response["test.postdata"].should.equal "rack-form-data=23"
  end

  should "support HTTP auth" do
    GET("/test", {:user => "ruth", :passwd => "secret"})
    response["HTTP_AUTHORIZATION"].should.equal "Basic cnV0aDpzZWNyZXQ="
  end

  should "set status" do
    GET("/test?secret")
    status.should.equal 403
    response["rack.url_scheme"].should.equal "http"
  end

  should "correctly set cookies" do
    @server.mount "/cookie-test", Rack::Handler::WEBrick,
    Rack::Lint.new(lambda { |req|
                     res = Rack::Response.new
                     res.set_cookie "one", "1"
                     res.set_cookie "two", "2"
                     res.finish
                   })

    Net::HTTP.start(@host, @port) { |http|
      res = http.get("/cookie-test")
      res.code.to_i.should.equal 200
      res.get_fields("set-cookie").should.equal ["one=1", "two=2"]
    }
  end

  should "provide a .run" do
    block_ran = false
    catch(:done) {
      Rack::Handler::WEBrick.run(lambda {},
                                 {
                                   :Host => '127.0.0.1',
                                   :Port => 9210,
                                   :Logger => WEBrick::Log.new(nil, WEBrick::BasicLog::WARN),
                                   :AccessLog => []}) { |server|
        block_ran = true
        server.should.be.kind_of WEBrick::HTTPServer
        @s = server
        throw :done
      }
    }
    block_ran.should.be.true
    @s.shutdown
  end

  should "return repeated headers" do
    @server.mount "/headers", Rack::Handler::WEBrick,
    Rack::Lint.new(lambda { |req|
        [
          401,
          { "Content-Type" => "text/plain",
            "WWW-Authenticate" => "Bar realm=X\nBaz realm=Y" },
          [""]
        ]
      })

    Net::HTTP.start(@host, @port) { |http|
      res = http.get("/headers")
      res.code.to_i.should.equal 401
      res["www-authenticate"].should.equal "Bar realm=X, Baz realm=Y"
    }
  end

  should "support Rack partial hijack" do
    io_lambda = lambda{ |io|
      5.times do
        io.write "David\r\n"
      end
      io.close
    }

    @server.mount "/partial", Rack::Handler::WEBrick,
    Rack::Lint.new(lambda{ |req|
      [
        200,
        {"rack.hijack" => io_lambda},
        [""]
      ]
    })

    Net::HTTP.start(@host, @port){ |http|
      res = http.get("/partial")
      res.body.should.equal "David\r\nDavid\r\nDavid\r\nDavid\r\nDavid\r\n"
    }
  end

  should "produce correct HTTP semantics with and without app chunking" do
    @server.mount "/chunked", Rack::Handler::WEBrick,
    Rack::Lint.new(lambda{ |req|
      [
        200,
        {"Transfer-Encoding" => "chunked"},
        ["7\r\nchunked\r\n0\r\n\r\n"]
      ]
    })

    Net::HTTP.start(@host, @port){ |http|
      res = http.get("/chunked")
      res["Transfer-Encoding"].should.equal "chunked"
      res["Content-Length"].should.equal nil
      res.body.should.equal "chunked"
    }
  end

  @server.shutdown
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_body_proxy.rb000064400000004313150402106450017070 0ustar00require 'rack/body_proxy'
require 'stringio'
require 'ostruct'

describe Rack::BodyProxy do
  should 'call each on the wrapped body' do
    called = false
    proxy  = Rack::BodyProxy.new(['foo']) { }
    proxy.each do |str|
      called = true
      str.should.equal 'foo'
    end
    called.should.equal true
  end

  should 'call close on the wrapped body' do
    body  = StringIO.new
    proxy = Rack::BodyProxy.new(body) { }
    proxy.close
    body.should.be.closed
  end

  should 'only call close on the wrapped body if it responds to close' do
    body  = []
    proxy = Rack::BodyProxy.new(body) { }
    proc { proxy.close }.should.not.raise
  end

  should 'call the passed block on close' do
    called = false
    proxy  = Rack::BodyProxy.new([]) { called = true }
    called.should.equal false
    proxy.close
    called.should.equal true
  end

  should 'call the passed block on close even if there is an exception' do
    object = Object.new
    def object.close() raise "No!" end
    called = false

    begin
      proxy  = Rack::BodyProxy.new(object) { called = true }
      called.should.equal false
      proxy.close
    rescue RuntimeError => e
    end

    raise "Expected exception to have been raised" unless e
    called.should.equal true
  end

  should 'allow multiple arguments in respond_to?' do
    body  = []
    proxy = Rack::BodyProxy.new(body) { }
    proc { proxy.respond_to?(:foo, false) }.should.not.raise
  end

  should 'not respond to :to_ary' do
    body = OpenStruct.new(:to_ary => true)
    body.respond_to?(:to_ary).should.equal true

    proxy = Rack::BodyProxy.new(body) { }
    proxy.respond_to?(:to_ary).should.equal false
    proxy.respond_to?("to_ary").should.equal false
  end

  should 'not close more than one time' do
    count = 0
    proxy = Rack::BodyProxy.new([]) { count += 1; raise "Block invoked more than 1 time!" if count > 1 }
    2.times { proxy.close }
    count.should.equal 1
  end

  should 'be closed when the callback is triggered' do
    closed = false
    proxy = Rack::BodyProxy.new([]) { closed = proxy.closed? }
    proxy.close
    closed.should.equal true
  end

  should 'provide an #each method' do
    Rack::BodyProxy.method_defined?(:each).should.equal true
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_cgi.rb000064400000005663150402106450015445 0ustar00begin
require File.expand_path('../testrequest', __FILE__)
require 'rack/handler/cgi'

describe Rack::Handler::CGI do
  extend TestRequest::Helpers

  @host = '127.0.0.1'
  @port = 9203

  if `which lighttpd` && !$?.success?
    raise "lighttpd not found"
  end

  # Keep this first.
  $pid = fork {
    ENV['RACK_ENV'] = 'deployment'
    ENV['RUBYLIB'] = [
      File.expand_path('../../lib', __FILE__),
      ENV['RUBYLIB'],
    ].compact.join(':')

    Dir.chdir(File.expand_path("../cgi", __FILE__)) do
      exec "lighttpd -D -f lighttpd.conf"
    end
  }

  should "respond" do
    sleep 1
    GET("/test")
    response.should.not.be.nil
  end

  should "be a lighttpd" do
    GET("/test")
    status.should.equal 200
    response["SERVER_SOFTWARE"].should =~ /lighttpd/
    response["HTTP_VERSION"].should.equal "HTTP/1.1"
    response["SERVER_PROTOCOL"].should.equal "HTTP/1.1"
    response["SERVER_PORT"].should.equal @port.to_s
    response["SERVER_NAME"].should.equal @host
  end

  should "have rack headers" do
    GET("/test")
    response["rack.version"].should.equal([1,3])
    response["rack.multithread"].should.be.false
    response["rack.multiprocess"].should.be.true
    response["rack.run_once"].should.be.true
  end

  should "have CGI headers on GET" do
    GET("/test")
    response["REQUEST_METHOD"].should.equal "GET"
    response["SCRIPT_NAME"].should.equal "/test"
    response["REQUEST_PATH"].should.equal "/"
    response["PATH_INFO"].should.be.nil
    response["QUERY_STRING"].should.equal ""
    response["test.postdata"].should.equal ""

    GET("/test/foo?quux=1")
    response["REQUEST_METHOD"].should.equal "GET"
    response["SCRIPT_NAME"].should.equal "/test"
    response["REQUEST_PATH"].should.equal "/"
    response["PATH_INFO"].should.equal "/foo"
    response["QUERY_STRING"].should.equal "quux=1"
  end

  should "have CGI headers on POST" do
    POST("/test", {"rack-form-data" => "23"}, {'X-test-header' => '42'})
    status.should.equal 200
    response["REQUEST_METHOD"].should.equal "POST"
    response["SCRIPT_NAME"].should.equal "/test"
    response["REQUEST_PATH"].should.equal "/"
    response["QUERY_STRING"].should.equal ""
    response["HTTP_X_TEST_HEADER"].should.equal "42"
    response["test.postdata"].should.equal "rack-form-data=23"
  end

  should "support HTTP auth" do
    GET("/test", {:user => "ruth", :passwd => "secret"})
    response["HTTP_AUTHORIZATION"].should.equal "Basic cnV0aDpzZWNyZXQ="
  end

  should "set status" do
    GET("/test?secret")
    status.should.equal 403
    response["rack.url_scheme"].should.equal "http"
  end

  # Keep this last.
  should "shutdown" do
    Process.kill 15, $pid
    Process.wait($pid).should == $pid
  end
end

rescue RuntimeError
  $stderr.puts "Skipping Rack::Handler::CGI tests (lighttpd is required). Install lighttpd and try again."
rescue NotImplementedError
  $stderr.puts "Your Ruby implemenation or platform does not support fork. Skipping Rack::Handler::CGI tests."
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/static/index.html000064400000000007150402106450016613 0ustar00index!
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/static/another/index.html000064400000000017150402106450020254 0ustar00another index!
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_head.rb000064400000002554150402106450015600 0ustar00require 'rack/head'
require 'rack/lint'
require 'rack/mock'

describe Rack::Head do

  def test_response(headers = {})
    body = StringIO.new "foo"
    app = lambda do |env|
      [200, {"Content-type" => "test/plain", "Content-length" => "3"}, body]
    end
    request = Rack::MockRequest.env_for("/", headers)
    response = Rack::Lint.new(Rack::Head.new(app)).call(request)

    return response, body
  end

  should "pass GET, POST, PUT, DELETE, OPTIONS, TRACE requests" do
    %w[GET POST PUT DELETE OPTIONS TRACE].each do |type|
      resp, _ = test_response("REQUEST_METHOD" => type)

      resp[0].should.equal(200)
      resp[1].should.equal({"Content-type" => "test/plain", "Content-length" => "3"})
      resp[2].to_enum.to_a.should.equal(["foo"])
    end
  end

  should "remove body from HEAD requests" do
    resp, _ = test_response("REQUEST_METHOD" => "HEAD")

    resp[0].should.equal(200)
    resp[1].should.equal({"Content-type" => "test/plain", "Content-length" => "3"})
    resp[2].to_enum.to_a.should.equal([])
  end

  should "close the body when it is removed" do
    resp, body = test_response("REQUEST_METHOD" => "HEAD")
    resp[0].should.equal(200)
    resp[1].should.equal({"Content-type" => "test/plain", "Content-length" => "3"})
    resp[2].to_enum.to_a.should.equal([])
    body.should.not.be.closed
    resp[2].close
    body.should.be.closed
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/content_type_and_no_filename000064400000000173150402106450023170 0ustar00--AaB03x
Content-Disposition: form-data; name="text"
Content-Type: text/plain; charset=US-ASCII

contents
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/webkit000064400000001453150402106450016566 0ustar00------WebKitFormBoundaryWLHCs9qmcJJoyjKR
Content-Disposition: form-data; name="_method"

put
------WebKitFormBoundaryWLHCs9qmcJJoyjKR
Content-Disposition: form-data; name="profile[blog]"


------WebKitFormBoundaryWLHCs9qmcJJoyjKR
Content-Disposition: form-data; name="profile[public_email]"


------WebKitFormBoundaryWLHCs9qmcJJoyjKR
Content-Disposition: form-data; name="profile[interests]"


------WebKitFormBoundaryWLHCs9qmcJJoyjKR
Content-Disposition: form-data; name="profile[bio]"

hello

"quote"
------WebKitFormBoundaryWLHCs9qmcJJoyjKR
Content-Disposition: form-data; name="media"; filename=""
Content-Type: application/octet-stream


------WebKitFormBoundaryWLHCs9qmcJJoyjKR
Content-Disposition: form-data; name="commit"

Save
------WebKitFormBoundaryWLHCs9qmcJJoyjKR--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/text000064400000000463150402106450016265 0ustar00--AaB03x
Content-Disposition: form-data; name="submit-name"

Larry
--AaB03x
Content-Disposition: form-data; name="submit-name-with-content"
Content-Type: text/plain

Berry
--AaB03x
Content-Disposition: form-data; name="files"; filename="file1.txt"
Content-Type: text/plain

contents
--AaB03x--lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/mixed_files000064400000000661150402106450017571 0ustar00--AaB03x
Content-Disposition: form-data; name="foo"

bar
--AaB03x
Content-Disposition: form-data; name="files"
Content-Type: multipart/mixed, boundary=BbC04y

--BbC04y
Content-Disposition: attachment; filename="file.txt"
Content-Type: text/plain

contents
--BbC04y
Content-Disposition: attachment; filename="flowers.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: binary

contents
--BbC04y--
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/bad_robots000064400000042522150402106450017421 0ustar00--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="bbbbbbbbbbbbbbb"

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa

--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="ccccccc"

ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="file.name"

INPUTMSG.gz
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="file.content_type"

application/octet-stream
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="file.path"

/var/tmp/uploads/4/0001728414
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="file.md5"

aa73198feb4b4c1c3186f5e7466cbbcc
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="file.size"

13212
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="size"

80892
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="mail_server_id"

<1111111111.22222222.3333333333333.JavaMail.app@ffff-aaaa.dddd>

--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="addresses"

{"campsy_programmer@pinkedum.com":{"domain":"pinkedum.com","name":"Campsy Programmer","type":["env_sender"],"mailbox":"campsy_programmer"},"tex@rapidcity.com":{"domain":"rapidcity.com","name":"Big Tex","type":["env_recipients","to"],"mailbox":"tex"},"group-digests@linkedin.com":{"domain":"linkedin.com","name":"Group Members","type":["from"],"mailbox":"group-digests"}}
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="received_on"

2009-11-15T14:21:11Z
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="id"

dbfd9804d26d11deab24e3037639bf77
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon
Content-Disposition: form-data; name="ip_address"

127.0.0.1
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/filename_with_unescaped_quotes000064400000000223150402106450023535 0ustar00--AaB03x
Content-Disposition: form-data; name="files"; filename="escape "quotes"
Content-Type: application/octet-stream

contents
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/filename_and_modification_param000064400000000360150402106450023604 0ustar00--AaB03x
Content-Type: image/jpeg
Content-Disposition: attachment; name="files"; filename=genome.jpeg; modification-date="Wed, 12 Feb 1997 16:29:51 -0500";
Content-Description: a complete map of the human genome

contents
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/filename_with_percent_escaped_quotes000064400000000225150402106450024714 0ustar00--AaB03x
Content-Disposition: form-data; name="files"; filename="escape %22quotes"
Content-Type: application/octet-stream

contents
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/filename_with_unescaped_percentages3000064400000000312150402106450024577 0ustar00------WebKitFormBoundary2NHc7OhsgU68l3Al
Content-Disposition: form-data; name="document[attachment]"; filename="100%"
Content-Type: image/jpeg

contents
------WebKitFormBoundary2NHc7OhsgU68l3Al--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/empty000064400000000277150402106450016442 0ustar00--AaB03x
Content-Disposition: form-data; name="submit-name"

Larry
--AaB03x
Content-Disposition: form-data; name="files"; filename="file1.txt"
Content-Type: text/plain


--AaB03x--
ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/filename_with_escaped_quotes_and_modification_param000064400000000372150402106450027647 0ustar00lib64--AaB03x
Content-Type: image/jpeg
Content-Disposition: attachment; name="files"; filename=""human" genome.jpeg"; modification-date="Wed, 12 Feb 1997 16:29:51 -0500";
Content-Description: a complete map of the human genome

contents
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/nested000064400000000321150402106450016554 0ustar00--AaB03x
Content-Disposition: form-data; name="foo[submit-name]"

Larry
--AaB03x
Content-Disposition: form-data; name="foo[files]"; filename="file1.txt"
Content-Type: text/plain

contents
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/filename_with_unescaped_percentages2000064400000000313150402106450024577 0ustar00------WebKitFormBoundary2NHc7OhsgU68l3Al
Content-Disposition: form-data; name="document[attachment]"; filename="100%a"
Content-Type: image/jpeg

contents
------WebKitFormBoundary2NHc7OhsgU68l3Al--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/three_files_three_fields000064400000001556150402106450022313 0ustar00--AaB03x
content-disposition: form-data; name="reply"

yes
--AaB03x
content-disposition: form-data; name="to"

people
--AaB03x
content-disposition: form-data; name="from"

others
--AaB03x
content-disposition: form-data; name="fileupload1"; filename="file1.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg
--AaB03x
content-disposition: form-data; name="fileupload2"; filename="file2.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg
--AaB03x
content-disposition: form-data; name="fileupload3"; filename="file3.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/filename_with_unescaped_percentages000064400000000332150402106450024516 0ustar00------WebKitFormBoundary2NHc7OhsgU68l3Al
Content-Disposition: form-data; name="document[attachment]"; filename="100% of a photo.jpeg"
Content-Type: image/jpeg

contents
------WebKitFormBoundary2NHc7OhsgU68l3Al--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/file1.txt000064400000000010150402106450017103 0ustar00contentslib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/fail_16384_nofile000064400000065172150402106450020325 0ustar00------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="_method"

put
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="authenticity_token"

XCUgSyYsZ+iHQunq/yCSKFzjeVmsXV/WcphHQ0J+05I=
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[SESE]"

BooBar
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[BBBBBBBBB]"

18
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[CCCCCCCCCCCCCCCCCCC]"

0
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[STARTFOO]"

2009-11-04
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[ENDFOO]"

2009-12-01
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[DDDDDDDD]"

0
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[DDDDDDDD]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[EEEEEEEEEE]"

10000
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[FFFFFFFFF]"

boskoizcool
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[GGGGGGGGGGG]"

0
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[GGGGGGGGGGG]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[YYYYYYYYYYYYYYY]"

5.00
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[ZZZZZZZZZZZZZ]"

mille
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[XXXXXXXXXXXXXXXXXXXXX]"

0
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][9]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][10]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][11]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][12]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][13]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][14]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][15]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][16]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][17]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][18]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][19]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][20]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][21]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][22]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][23]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][0]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][1]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][2]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][3]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][4]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][5]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][6]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][7]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][1][8]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][9]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][10]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][11]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][12]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][13]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][14]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][15]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][16]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][17]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][18]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][19]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][20]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][21]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][22]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][23]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][0]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][1]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][2]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][3]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][4]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][5]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][6]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][7]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][2][8]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][9]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][10]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][11]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][12]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][13]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][14]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][15]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][16]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][17]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][18]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][19]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][20]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][21]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][22]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][23]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][0]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][1]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][2]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][3]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][4]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][5]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][6]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][7]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][3][8]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][9]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][10]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][11]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][12]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][13]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][14]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][15]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][16]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][17]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][18]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][19]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][20]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][21]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][22]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][23]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][0]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][1]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][2]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][3]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][4]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][5]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][6]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][7]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][4][8]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][9]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][10]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][11]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][12]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][13]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][14]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][15]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][16]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][17]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][18]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][19]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][20]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][21]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][22]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][23]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][0]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][1]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][2]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][3]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][4]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][5]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][6]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][7]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][5][8]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][9]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][10]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][11]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][12]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][13]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][14]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][15]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][16]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][17]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][18]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][19]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][20]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][21]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][22]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][23]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][0]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][1]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][2]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][3]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][4]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][5]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][6]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][7]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][6][8]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][9]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][10]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][11]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][12]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][13]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][14]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][15]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][16]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][17]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][18]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][19]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][20]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][21]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][22]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][23]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][0]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][1]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][2]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][3]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][4]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][5]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][6]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][7]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[VVVVVVVVVVVVVVVVVVVVVVV][0][8]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[WWWWWWWWWWWWWWWWWWWWWWWWW][678][ZEZE]"

PLAPLAPLAINCINCINC
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[WWWWWWWWWWWWWWWWWWWWWWWWW][678][123412341234e]"

SITE
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[WWWWWWWWWWWWWWWWWWWWWWWWW][678][12345678901]"

56
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_type]"

none
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][has_hashashas_has]"

0
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][frefrefre_fre_freee]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][frefrefre_fre_frefre]"

forever
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][self_block]"

0
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][GGG_RULES][][COUCOUN]"


------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][GGG_RULES][][REGREG]"


------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_wizard][GGG_RULES][][c1c1]"


------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA_TARTARTAR_wizard_rule"


------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[TARTARTAR_rule]"


------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[selection_selection]"

R
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[PLAPLAPLA_MEMMEMMEMM_ATTRATTRER][new][-1][selection_selection]"

1
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[PLAPLAPLA_MEMMEMMEMM_ATTRATTRER][new][-1][ba_unit_id]"

1015
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[PLAPLAPLA_MEMMEMMEMM_ATTRATTRER][new][-2][selection_selection]"

2
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[PLAPLAPLA_MEMMEMMEMM_ATTRATTRER][new][-2][ba_unit_id]"

1017
------WebKitFormBoundaryWsY0GnpbI5U7ztzo
Content-Disposition: form-data; name="AAAAAAAAAAAAAAAAAAA[tile_name]"


------WebKitFormBoundaryWsY0GnpbI5U7ztzo--

lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/none000064400000000234150402106450016234 0ustar00--AaB03x
Content-Disposition: form-data; name="submit-name"

Larry
--AaB03x
Content-Disposition: form-data; name="files"; filename=""


--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/filename_and_no_name000064400000000162150402106450021373 0ustar00--AaB03x
Content-Disposition: form-data; filename="file1.txt"
Content-Type: text/plain

contents
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/semicolon000064400000000177150402106450017273 0ustar00--AaB03x
Content-Disposition: form-data; name="files"; filename="fi;le1.txt"
Content-Type: text/plain

contents
--AaB03x--lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/filename_with_escaped_quotes000064400000000224150402106450023173 0ustar00--AaB03x
Content-Disposition: form-data; name="files"; filename="escape \"quotes"
Content-Type: application/octet-stream

contents
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/binary000064400000064053150402106450016572 0ustar00--AaB03x
Content-Disposition: form-data; name="submit-name"

Larry
--AaB03x
Content-Disposition: form-data; name="files"; filename="rack-logo.png"
Content-Type: image/png

�PNG


IHDR�����bKGD�������	pHYsHHF�k>f�IDATx��y|u��ߓ)�fr�$mR��"��
iJ�z �@QAA�@��������E�t�9���@T䐴E@(
�BiZp=���6M
�L&mi&�#!陒�|��G� ����d^�>?�q�@ Dg�z�� A D�@�@ �.��@ ]	�@ ��@t	$ ��H@�%�� �K A D�@�@ �.��@ ]	�@ ��@t	$ ��H@�%�� �KD�z�����
N��R)H$�P	�@ �$ ~p:���� (..��FM~~�8��i�����ɧ�B�I�$k	��%Iq3��=��x�F��h[PPp��lN�iz$��q��ry�@ 8���|*99��P(<M����+HTD_���F{pЄ�M.�W��:� ����
��K�t�#����4��<���[���8xQ�����O��I�V^T�HTDo�?��4�)����4���
K�I�%�].��(4�@ Ÿ>+ a"�[T.���s��$I���B�����3��ɗ�].���� �p�O	H����111��n���l�ill��j�&�,;~-
�X,�$�H�q�$ɓ���'''_jz����)��>1
tQ4d2Y�N�;���222�(
{KKn��D�!��p�RZZ:���t���͋��|Qq�[T$�Q9����ȋ
�D�@�(z���
oK#(����~F�R��
rSEE0#6r/Q�r�FY�֡^�l���b��ʋ����"99�&HTDO�k�K4���n�h�/*�xQQ:��>��`�e%Յ1�G+м��‹�I�Px*99�����]�Z@zP4L:��0X������E%�KT<����]�S[p��I$��>�JUrr2%��P:1��,a' >��iK4�z����E%�����e���Z�*�e�م9�W�-*�X�Q�h�!��H$�HTD[����
��1�.V���P�F{�2�a��`����4M��i:��d���&m�@��\.7�>�"IҌ�~!_B& H4:EQ@�tTii����t���m0F13����4M+�����U�S�x
��B 7T@|DC��B���	���].���a�c��`͋�-4M���������_�W�/�����F}����" v�+,,T�h�Q�T��z��E�E%���4��RA�t��;��W�}���E��_DߣG��r�޽{�]�����0�HpWowU4|��nZ�h^T��,--΋�h�aF�2ܢ���=}�l�}�4�ɱc�p�}�ՈD���D��Q)((��XY__?�����#Z��0k֬ӦM+W*��A�j�z5^�B���*--M�Ti���h�Q!����U�W�ުT*��^�uzT@�-[��|��/`Pq�����zꩊ�
��333/��8ތ*��/*������*++QVV�Q�h���2�\����죡�?��:=- �._���ߝ�qF.�[p� ��$�
� *���H���&$,]�O'�}���]�T233_۲e�;"�(��E ]����˗���\�OKtF.��KA�$I�{	�b�h���!��l�ƍ�����'~�AjR�j��G�]�!�.��w���b�e��%n���a��r����Zq�X)"���e�
�V[��j�,�:�R��CQ������R__��_�V]]�u7���D/'$��x]ddd���B��+��EIJ��b�(�7999.hw{�R���e�J�V[��j+�Ng�V����f���l6G3�����РcYV�)ZD�@�rn��\'"J�r�%KV[,���~��`H`f8˲I^=��=4>�}�M�
��o���s���5��/,Z���KX�Z��慥��5�!,((H0�����xш� W�k4.:::�SF � $�a������j��yx�…��l$�0"��0�a��a�xaIdY6�j�*Y���
zO�T�-!M�r��G���q^�rY*��煥B��V��R�%,��
�K4�F㽼h�cYV	]��8��4��K��,˦��A��
�#������gDD����@Kvvv�q:��.\��,���a���$���$R5��i�-�`�B��CD�4�W�{�����(�J/x	K���P,�2�$,�hIF�Qϋ��eYt]48�/�������h4??��o��֦�{���@t����4
���'/,��	�����鄅z*��&�I�h2�M&S"���m6�0����-,���e�iZF�t"L��
���&�J��K�V����rC��!*((�#r�u�M��iii��z�����T*%�H�����gD/&TYX]�y����Z���$Y�E��f��q�0�LR��4��ᥥ��.�+�j�����玁{�H���4�����
na��Ri����,[!�.�$��I�tw�@^4����T^44,��ts�Mb��\�RHOO߫��K����'A�@�Qz��B"��D"q��$II��[�����0���\u���X��J�[xx�E�O��@�����^��q���ͭ�kY*�jYΓ$y٫�>���!)((ŋ�Ć����htgnW�bq�J�:�����^��N����d2��C�@�Q����O|��;��||e_����@=[�rUXX���X,��N���oa1{IVzI^�D��n����e4'�1�e�A�=�`q���dGSRR�̟?�(%%�R&�]�e�k�@�}^@�N��J4egg[�g����Dž+W����Ç�>������H��pD��
�}�R�e��%����8�-,����ڈ��J��9�j���eف�=��p�,��N�t��z�������*����X͍(&E !��@��WL&�����.��J��%K^���U
�$���`��P=�� aYVb�XT����q�͜����f֬Y{g͚�}\\�-�^u
 ����m�s�0�)==�*>>���+���+�x7X"_�h�Z��z.��U��bq�J�*LOOߣ���t��2��F��-�����F@����ձ��+p%;;�2�s:��|ad/,���p/an�Z�^����i愄��S�Nݣ���t:�L&s��h�k�@��$P�xo�y������
#=�p�_�*��s8�����&�i8��|��@p�f|��q��L&;����©S�V$$$��x�E(�@�Q��6mZ ��+�����]'����_��L�x��H���i�_�p�8��2��X�����T*��W��k�@	H�t��,���$I�$�j8�K^X�KKK�:��w���L	�\nٵk��ѣG��šZ��~
 � i��Y ��;�B��e�$+�Ng_�0�(//OVSS3⣏>z���	��qܩR���G[�k�@	H��ʱ{�W��y�ȑ����}���������@ �ɭf�a��~��qV� pzp8�3
�#}����Z0�n!}��$!sau�@7�poo�@ �1aY�-$���O@‘�x��!�У.,�76o|ׇ
����w��p�@z��@ � zX�<�N'X�V�n��KJJb�_�(귫V���V��dff^$�.�H�ao�p�p��(�{h�4UVVWTT����'EQwZ��[��G���W�����U�VU
�S��ɧ���O	��3$IZC$*���0��&7���V������[����,++����d��� ���,+��`6�]yyy�����
/Q9-
!I�"At�J[.�p�I�,,��rӸ�x+coeh����(j��jɲl4��)�<�3��x�UT8�7����T�)*�bY�j����@t�>k�xYR��_VVv����V\ܭ�-b��,%%�p%%%#].�h��:�eY)�[�˲"^T�	 *�yQ����H8�
�@t�>% ^VFlQQ�X�ʸ���hk�,��6�\~V"����8���j�h4f�X����g\��1���tdii�(��5�j�놨�X*�x�TZ��p��"\Dž@ :H�va�XI^�-��y{VFoe�h4�MMM=���qZ"�\������.�{�BQT����RZZ:���t���DC�DE
w���y?�R�GT�)?�dž@ �A��@x+#����dL��Q.�H�fdd�������|�C_Qɧ(*�a1/*#xQ�EQ�+�������|�r5EQ1,�@������!ᭌ񼕑�[Bh��q�N&���t���G322N�2�/*N�VT
�D%��T��_	����N�
�箃eY�a��ί��ч	K���P��e��X,.W�TG322�k��ȨQ�T��2��Q9�%*�v,�6E���K]]��f�7���@L�F���儅��V��2�{eLii����['t:��FsD�ќ��t�d2YЭ�`�%*���ٍ���^��GT��_��E�q\��ݻ��޽��w]�S��aQAi�D%$.,�\�._����ʸZ�Ͳ�v���X,>�[GbccK222�Cee?�r������'P�Ȳ��{��C˲��bQ�x��+*���Ӽ��%ɕn�%ra!}��X F�qĉ'�9v��>�nWM[U�������m�
�p8D�6m���sM�ww�D���T;�JgE	�G	���;x���~b���gY�I$�
�JU����me0���^����͛W���7�4}�p?/���0��:�+����������k��'*��	�G�I����YC^\
���^lҤI愄V �����7i�\^����H*��~��W1Ì`f��`�0�(����4
]�*?��� Z*�^ic�(�@�BDoQKK��#G��8r�H��}��5M���<��j����)�@��4�^H �ǹ��Xg||<���M�9�ӹw�…�������JKK��������8^T<1�*�@pJ�՞1b�Y���ƍ��優$�k��,;���j0�YUU��ڵ�
0b��A"�Tq�$ɳA�%��S���x�\.��LX:g������8lj��F��9�ӹ�KT�����Ee$�0�;(*B�e�Q14A�F�H@�^NO����؜Z�v+�0uE�BQT"M�rp�3D�ƿI�� ��G��999.p�8N���q?��Px699��V���,k�J�l��t{GB?�R�GTڲT�]G�Ӎ�����az�^x�����Tl2��I&�)���4��r%Y��!^�ف��]�����䴂�Z�,�J+Y�=��j�&''�
���/o�p}�Z	z�SQ���_�@XRR]PP0�رc�Ǐ;qx$D $1�!&&�Q��I�(�(ʻ��@�a�I2I�$�,�d�Z,ˊ p�D�^�i�H��pH�����>�sss-~��J�V��[+�Mm����+""�`-~�ĉ�o��6����>Pv�pHD�^N(\X3p�4'<�t:,\�cY6��%�p8�JKK�L&S��I6�m�W6Q��`��%��e�ؤR�y?֊���8��Z��b=���l6�

n5�?����[�Bt�)�Px���e˲����D��V&m��J������:���(��l8�&�)���t����V⼬�@��~M�t4M�C�޼�<.//���V�p/�	�W�$y� &��=��]�@xш*((H2���eYV`-9h��gT*Ձ��̽#F��a�����f$ D$@n^�6�$m$I�w:�ƅo�����p$�X+	|�Wn���bY6�b���7999N`�
��&''��j�g�N�Y�V[���L�)Ʈh�%���tBCCC����!�ׯח��<���p'˲J|������*�ʘ���W����tur��5���z�-c@u D �۹wj2nk��>ڔ��m�yk�iii�?֊�eY1���@�
#@ʲ��b��P\^^^��b�E�D�k��#I�"o���ҭ,,^4"����F�]���	4M����ZAmBB�wS�Nݫ���t�j�L��#��ч	{V0�j�A�$I�$Y�t:�㭕��A�0L�'hOQ�h��z˲Q��@�tMӣrrrXp�S����~�OA$k�S�̋����8�h4�L2��i|�A���8�_��d%:�n�^�/�:u깄��fo�10je�@�Qz�����Zi�����8�t:��_ƪ��I���b��?b�H$�P���᭕@�u����eY1�	��
�p[+�$�9?��NDvx�)�������>���>�lRmm����q��o`�O���OOO?�R��A��B~
 ��ѧ\X� ""bcc9�����&��ڵk_��t
;w�33�;�ث ��E�^A��/��ԁ���|A$� ү�`��4���/D^^ޭF��~>~�X1�����qqq�g͚�o֬Y����5vQ4z�5�@ :�M���
�v��-�U���v������@�}�.�+�DV�,{�+��i�,6�-�eY�At���,�өS��/^�gP����]��c:��A&�uǽ�V(��aUN0�f7��;(}�
��D&Z�Ve
"��)���j��:��l6�x��x'>�W�bq�J�:ċ�w:��"�ɜA� C�@�Qz�	�^���QBC?��;��7�\9��9���7�:����g���Ɣ��2��J�� :�GA.���ֈ\g�t�nD�z�weS��
2��������U�TM!*��V(�h��
������ɂHǛd2Y)�v�Mzz��*������b DY ��);���:Q9���1~��|��5����v�zf����X�u����h$ ��!Hg�WY]]}z�֭��' 8�7�T�K!��m�"�6��M�{�+��A��M�cC ݤ'�w�<�Y �( m��
5(�� 	L��xo0�ݍ7����� V`����Ä�P��k�@�
�&��mpC����z�5��AP%������l2útm�\.AZZZajj귡���������@BMo�7��Ĺ��/���$u�8����8�+0����5�M:�cFAtDGֵM7
(��ޒ���D� l�� 	�?V������(�@ z�P����I�i��:�p�I���D7@H`�U������z�(�@�Q��Ɵ+\	�,,���i������fL�Q@B��(�@�a��a��F㌎�����7�p������ͣ���5E���U$�zh�gVo�B m
$�o,�^g��;+i��b���+"D� V`�B$\-��q
 �6@�L�- �N	�uFi�D5S����+�-���t��j�e�q�����?ɠ��X�ω�8��@$ ���6.�a�ҵq}l���?˲xW���S.�����Q���fI^^^��n��0LW8��,�J�ϝ;�"�H��,�0��`0��v�ð�a6�n�0���� ZH�t�D"�qh�8�Q$�'I�B���&�\�ݨ�3EQM�����A�����c��`�gF�7Z�Av�$�Hdw�\�"��I�f� �=�v�O˲��4�@�)��P�+��{���rA}}}�e�^��o޼y
�a�P(<O��$/��8��EYY����H��j�F�$���l�aX���q�R���O���{mm-�駟�>t������F�,K��w�N�V���[�- �
	�(J���g�X����-�0#X�M�Z�*�z���~j�n]rrr<��y�o�q���ͭ�q�� �����ӱ����*��iKȺEQ`6���M.++����$���[0ڽн�ь�=77���3A����)33Ӑ���ԁw��{�F��⋋���FC7#.�KJJ2l۶m�B����
Y ��&???���N�s��{���'z�E`�X����{��Ե8��'��$�J� *���'��8�!�J]����RVV�1��pX��@X�������l6gvyPv�e�O����E�������� 	�ž�`�Z�$ɇ����]�xq˲1�~2���=�oD�,+�X,J�-��U�Zq����{%)))�?��s{'M�tY �^8ӳo��Fzaa��


w�,+���I1�bY6�b���7����b���P	H]]�v��ߝ={�ep��nA��ϟ\.��t�p�
��鄆����xPYY٨���;����jhhò��O��c���,+�X,*H���a����8��w�\�Z��R��V:��J�Vk�j�v�eR��5��r��@���={�|��痜?�Yv�@,�Bmm�=uuu���˲���������͛�޼y�qqq]:ߵ���
6$oڴ����L��ՓO����P֭[w��ݻ_� �X233� I��9sEn�����X,���;�f�x���@n�B <�
t�� �zZ�
 //����kF,7J��,�Vj���^�R��jm.���q��ȀW.A�w9Lº�0�Z��k׮ͮ����]L�	��b��|����駕k֬��R�l����������m۶E0�p�\AAA�u��� �yʔ)��W����=N�,�2��8EQ���G�Fo+#�[8h�ŵ��4r����f���a�
��l�4M����ڿ��`Q4M��b��+��ŴT*��8��;ODA��,m��I��}�!",�0�i�~���w�~z�xx�޶m�_���5k��T*;��QWW'���za۶m���!��RWW�v�ڬ�����p8N�P|��?�i�R�W+��Ч\XEM�²�2UQQ�6??�N���[��$�e�ж���q�Q.��"�H�dddIMM-�h4�B�����X��B��$5�L�#""��L�a&�i(���l6�>�(���T�-`�4M�iz�	����_�,ǯ
�H$��-�:�V�;EQ'DD8\�ac�z��8WXX����3􍛧x۶m�EDD�۸q���:$Z�b�+{��}	��#��n�_|q��ݻ�A���P(��Y��S�L��{��NO��z����1����β���h�KӴ�d^�2�bq�F�9���z$##�D"i���.?O�-�B��e�$+�0EQ`��"p'L&��d2�y	�0�@0�e١V�U�g�DA�qHX��X,�8�����&p���R�y���l|W�Ȱ�l�?�pM�)�G�����]XXx�$��@o����x��w_ܳg�"p_�}�� ///)//�M�	�!�,X���G-��^g��VF�+cD���2NK$����Xb���+�m�D��	6�$m$I����aB�a�� gf(�0��0�a��,;�j�Ʊ,+��⻉�7�s�i�V�4=���,**��[o�5!**��$�F� |��*�j˟Rill�����á����w���`5hq�a�?���)iii��g��O�w��g���P^^.\�x�"�a�A83cƌw,XP�y�a/ ^VF�+#:ne�i4���������
+#(���w��=;;�~t:��p�B�e��
�@��>��V���iZ
nai+^��c41��8N��暽�a����$I^䅥���#\�������ry_�q�$�:�Hd�8΁a���.32�aTEii�N���*�JJJ����|6r�H�����ؼ��l����CN]]���k3��˟��_�����OV�X�R�yH��YX>V�&??�.���줕q],C,7�t]F{DDD@\\nwTSvvv����f���q\h2�$&�I�`2��z	�P���[X����~Ͳl��b:��iǞ8K_�R�g�x���X����@�n�m�Eďiii��o222~�+ɯ���
p�\��?��<�w�ޗ9�Suu���A���}���v;|��3���8n���q��X,�S�TWN�:�a��eY��jƲ����֭�m۶W 1�BQ�bŊw7r�NXX >V�-��q'M����}+��O,�ǭ�`�[-W�
I��$I^�#��༰�L&S,�����iӦ;,�cй��,ˊ-K,�pM��!�/I���x׳�h�Z��+������ ~���ߓ���O�ח���]�DmΓ�hU��U)))����jܶm[.H�8�h�an�k���FRRRB����Jsll���o�5kV�P(l�q�u��`���
`&*??��hL-..����~0܀�\AA��u�ֽ#�p�r>�Q����m�B@8�\�._�UVV�ee��Z���,
�2|c!�2�
/,,�$I�$I��q��F���<�'�H~&�����gY֓vܖ��;�"�iz$�մ�p�M*�Vy׳�,[)�.�$y�g������D/���#F�X;~�x�L&c��ТT*�+Vl>~������g�8$�����`m�X�c���'M�������I�&5�V�8�p�9��g�)5���ꫯ�u:]M0�`\p��%X�v�3���]�T�5cƌ�-X��=5��L(\X��hԞ8qb�c��i:��V��XF���� ��͝;��?��O�ر#�n����x�Gïi�m�Y����4�������yT뉳L�:��e��Eu�):\h��$	,Z�����-K�T1�8
�����<��#ƕ+W>]t������v;x�v�>�
��Dr>|��nRRRSG>�?ѯ���� |[�֭[7�O�nm�����+VlQ*�=<��I(,���B��ٜ8�_V(g�R�����#z����Z�@nnb��911���Φ���V?�&6�L�i�1|��Ҏ=�]<q�xHx�Xp����!���\^*�H~"I�"�HZJJJ$%%%����*;Z���JQ��`0D��v�a� ��"M&��@�X� ��$yE"��;vl�3��DYY���xU@Eeee�@��0�����'&&vH<n$C�f����
Ş+V�JLLl	��•�X оo��P(̟5k��'�x�D"1'%%]����:�3mYm�ݤ�'�V�5���I;VH;���Y<�@��v�2�D �6l˜9s�Κ5�G�Db�t��'2""��'0�,v��9���n\^^^2EQwX�V�WP���w�
���p0#dYvX��MKKۚ��Y���JJJ� �qr���Kf̘a	�y��
�����r�޽{�|��7X�=��h|�| �y�[#m�q���Ҏ��vL�A�q8�����4=���6�e�߂�N�mV{t޼y��̙S8lذV_+�_��O�,�BeeeԦM��6m�4���r���C��ݽk]�2�`0-Kt���	��O�HO��ᄋ233ːx�M�
H�e㪫��oc]SS�ݘ�Wc�J�V[�K�V��u"C�/УM+��_�_l6���K7m�t�g�}������ra)����_�g̘�}Wn����կ�����ϟ������|af!u966�F�d_�Fr�5�
c�B�²���O�R����_0�ݘp�5�	�XLyeU�B|�P��P}i�͠X ��hL�2����L�Z�w�Ysm�X��6�@�^{��G��ʇ9��m۶i�������p�k:AA@p�	��흃��?��Ϣ{キ,==��3��@�s��]��+�Ը\.�U����9�_0�ݘpM��`��!3��~6�j�@��p�G-~�%%%�֯_?���drCC���l��͒F"��$�h}}��eC�H�HLL�>{���]�,/	YYY����SC=�vV˔H�~�ܖp�2����'�]���Z�v���q�-B�’H$Xll,�r����v�@��+�ۙ�q�u���SO+|���F�,�5��҅��V��h����`��l����x��o�ŕ*��0==}�ĉ����AFF��b���p�@��ӧ$%%u�z��ݒ�������U8�t¯=��B�����E�[w���������()++����i\Ae�ر��566v��U��ݻ�]�n]�eˎ�z^�J�Z����*����e����J�3�<�	�
^�v�p�΂~g�J��+��,�@O���@�v;VXX8�h4jyѸ�����S �&$$|7u�ԯ�z�!�NW-�ɜP]]-�q<\[�A�	&�Е���vذaCz}}����'{�@А�������E"Q�q�o�L\\\�[o���l6w��ЗF��>!m�0����÷�$��h�ᄈ�Ν�vǎ�C��@��[�nQJJ����m��[8�L��;������z��O��@����a:���΂
� //���|�|�~gZ|s���q��f4'>�0�o���w\��d2�I��}���L�:�<!!�9@}Dض2����j4�.�6���!JJJ:�B��#�<��w�r�СW|׮��:����\5MA��t7KI�s�Ή����OJJ
;׎D"��Ν��޽{g�����~ʆ
����PP�zn���&(7�Bg<
�|6��]0��x��f���7
���w��j�e+�{��z��@~�UصkW��h����xRCCC
˲� p��&⧴���z�~_zz��*��nG(ý��%�ҕ����.~/7eʔ��������_���AA����������c���Oݼy�'˖-;���˅����233�|���)�~b>���wx�̙?���k��JEGGs��g'�k�:�
����t�V\\����0�eYOk{m,�����[�g���wd�ڎ�s �ޜ��FDqqq��h�w׮]�+**�v�\q�:h���*��@zz��^_ґ��_�i�.�ux+m`��JII��Vp���L�������j�TL
��֭[��m���3f\��M��tBKKK[-x��q	o������Cyy����a�ы/~1%%��n�YI3�PN8@%v1M�p��I�ԩSc-�G@Z�Z��\�(*���;���z�V�������$�N�ƚX�u]�t	���[��h��q��|�Z���V�X\�R���N���F������;h��q��v(++������~�	��Ç�338X����$����c� �7��������8�η233+�r�x%e�8����[+�͛�]��揤���ٳg�]�|�D�������]�x�7nE��_	�������b1�T*��}塇���^����L�P߳e�'�ϴ�������gϞ1۷o���z2Mӣ���~��2��8%%����LII���dW��n�HWill���ʺ�]ORRR�RWW��o�>>5x����yp���1a„�u���a���p�~���O=��3�M�8��y����h4u.����_ D�������F�/�4��t�ҿ@�
��ٳK6o�iyy�+�}KX����r^^ޱ�3gV"W��Pea�+�6s��q�5&&�������	h;�;������_�GǸq�ʋ�������d2���o\�q�L&�^��y��T*�����|td^��D�޽{~VVVٚ5k)�J�o��mڴI�aÆ���{�iiiִ��myyy:N���a�����ۍFc�T*=�q�ܙd�0b���|=��_7ܠs���Ⱦ���=��3S��mw��0�v���RRR��j�w_�sa����� @���h��4�O�emg��\�o�O��Kߵw���_��⾙5k��Y�f����܃Yc}N@pwq����e���q8��?�8EQ�;w���t�\#�bG"��Ν�����a�a���H����Ѱ�0���<����1///���+(//���͛,[�l_�� ��퐀"@��	�{U�㷬%��o���W�b�y�JU��5��t�:�Lv#vk�m�@���
����'y���޽��ݻw7ï/=�IKK����|���?��Ѕ�h~QXX8�a��A8�bݺu�)))'����C=�P�\X��a�+
�Q���S�ߑ�Up���dƔ��=���/JII���d�7�]K�u+��@ty�rO���H$���~{OIIɿ���B���Þ�������>��s-t�c�_���k׮��V�]��yӂ\X�ң��T�Su+�����\�4i��V�^�^�T��3q�saL�>��
6,//������^�O\bb�+V����X__?·dP�����YA8d�ݻw�_�n]ѲeˊC=�P��M�z��"$O~||<3r����쟖-[V�bŊ���^1�LOΝ;�Up������b1bD���IIJJj�={�z0����p�L���3.�Y�f�B��!��oIII��ٳ?��a�֭{��� 佌BIO
H�sa1#`Y�!"�~\�~ll��DBC�5
���mf��Gf̘�
�xWq���~�׿�����X��Ǝa<��#���?z补������ٳg'&&n� ]{���6lx�n���]��	��9C��b�j���Ʋ$I�{�^[�C����ʤ[(�Jv͚5�f̘�Tw�'脄����3f�h��!	�<y����{oɒ%O���~�t��$dq���D��o��A'�tȨ������n�^9w	���a�k���q�
A��	�G��Z��
#��1�JeӚ5kޝ1cF�]k����c�=����>��#���R��l����%K��裏f.\������m����s	��m}=A��6X�
xO��zO���}A�L�0�mo���KgϞ�jS�^
�º�kܾ��  �$�����3..�;��Z1��9���ŕ�8��5R*���׿6�t�c�����&��eH����e�Lv"%%e߼y�'N<�i���8�_��\��#�qx\\\��^c�@S�L�4iҤ�,�z׮]�������4=�����`���-K�o��X\/�HN�sff�I�R���ٳO�~�񦸸��9�Sa֥k��t
$�Om�G$��y�<yrXSS��?š�����B��#�t�X���u-�U۽Y@�c��n�������e��=��S.��);..�[�h�������?>����v�ɔ ���.��A��^LNN�
��333R�T�o�?��,��s���8$%%9^~���<��Q������4�LI8�������a�hpw��w幍 �$IZ$Q�5�\��Z��"99�Q 8��D-��
�+,�v�
�8�Ri��ŤI��:�����{�����2����W����Z �ڸ+��_���.�@$qS�N��:uj=EQF�͆a�����8�JGv��9���W�juI�u�W�ώ�8�]]�8�s]ݮ��o�W8�m_�G�a����U<z��"��:���0ឌ�!�:-pp��"�&Ti��z����g|������ =- ���5²,k6����P��-�:���}��	q���YX����5Puuu⒒��U�n�Zo���|G�ӕk��N��V�5k�Z��r5�8��[�v�p��
�cD;P�oÆ
wi���'��z<���#M&�r޼y��H$N��"l6�D*�R�䆸C�7�P�����t:�j�
(������јZ\\�ohh^-�Y�U�����[�{�䠤Ri5�q����$���N�MR���A-Dz�M:�dž�(J�����y�R!7lؐ:k֬Y��ڸq�m�����o���_��F�a�ƍ��������7�x��_�!�kLn�k[M��h����JQ��j��bY6�v�x:�F�4-�>��[�zvl�q���x��j��j����r�VKW�?��:��	4��?D :�g_�~�=P���k�<h�rp7�*Ea6l��ja�ĉ�|g��O�O/���J�Ѩ-((H5��h��@clwn{p�xڊ3D��eY��b��_w�����j��R���ZΓ$yA$]`Y��V���j���6��X���m�-��"(���uu��>�왙3g��uEE���1o޼���g�-��5}΅ŋF���b��h�L4���V��
��d2Y�N�;��j��dj2���!,��Z�
�=9ڪ�<�E�4=���!0���-.��Ri/&�Z��eϋD�*�$	�p�8�Ԇ�����
EQ��f���q6�M�aX���R��ş�DbF��|�=�ʻ5�+��Y��?�?""��k�����R�S*��<�Q�eE �q��������~"��.��&����
�
�����e��q�C*���b��Ƌ��u�^k���ဆ��(Ä�����~LBÄ�¿�{:s>m6��a\�T�2���������u���v����>�y։�8F*�6I$p:�p��ň���(��%�(���b�9�(��v��\+�\[���.`��$���~?���bl�q�	���g%9�G��.]:ܭ�9�?�Z}���J���lP]]=�`0�X�p�S#G��X,������_�X,>�R�>���x6''�֓'O
m6�5ǾpႠ���8u�|�ʕ�,Y���˗�!33sY\\������b�/P�άl��֟��.�8^kR��;n��,Z��e˖=�x�b�]��555ѵ����^zi���Ǻ�t��Ԟ:�����R���
?c�^�t��{ժU�111���+w<������lW({�r����Q�����^��	��墙3g�N.��G�P�V(_&&&�m˖-�����̘1/k4�?��f��F���Z��v�B�xw���q�_|1,11�-�B�B�0$&&�nٲ�v����80��±cǾ�hѢ)O>�䌘���cƌ����F��_KLL\�P(�)�}111_̚5kEQ��kjj��3��F3�l6�>cJ���j�ڹf�Y���H�B�r���C��ILL\�P(v*
�����駟j<㭪�k|��g_z��'����lR({
Ŷ���?�޽;�e�6�UQQQ�C=��\�E�P�Q(�������.��3.>�>��scbb�y���,K��x��=w�qDz�>�h�)S�����)������/]��n��|��/^��B��_UU%�g�L&{oժU	���4
[�l����\�P|�P(����|�F�][[I�tIJe�>|��
E�B��#�˷<���d]]��l6�3f̟
�E TqB.�<f̘�������g��;�f3,Y�D����~���r�������U��r���S���$�Er�|?������"�8\.|��񉉉察o�r����i��#��օEQ��faAAABQQ��eeei���4������f�X\�R�����~055����Z,7�{��\��R�dgg[�����%�����!�a�0�%��jik�Rϖ��Y���X,jH���q��o���6�TZ�6�M
����^W�+����/f����C
�=�����b1u����nݚ�a�b�ƍkE"�g�QVV�_���Rx�OǏ�)MӲ͛7�����o���/�X�V�%���S�U\\\��n�����V�u��	E���.y^+,,��r�����۷'fee��0�iΜ9[�ټy�?��k�x�o���,�F���߳f͚�����7a„���-K����/o��vŜ9s6�D�j��T%%%6��@,�v#=�DҪV��<YRR��$I��x�Z��8��%%%_�$y�k��\����4zϞ=C����c�3g�f�v��1��g������O�/>��8��'��111��O?�[,�?z���'O�ܻwovRR�#й:v����ϙ3g�X,����7m���A�>==��(Jʟϡ�
���~z�X,����=�b7nܸF$��v�����?��Ͽ��{겲�6�4�y��Ǘ/_�d-[�l��&���!�����`���������J��9s���D�)���L����E�ر�֑#G�7n�vh-..~�/�xw��ї^z�ogϞ}�…��>����*--�H$2��l����v;,\�p�֭[�:th��ٳ�#�HZ�=:a�֭�,;r͚5�P*��EI�V�]�v
W*����zj�.�_|���Q�Fٗ-[Vd�X"�|��7i�9gΜ�'�*)�R�L&G�v
�Ad$��ȑ���A]�4N�<)�������g�B���*p���To��?�9r�…۵k�P��ү���G����
f�����:u�l�ʕ×,Y�_�|�����7���V�������hpW*w�j	�פ���,_���ŋ߹k׮�555���"�f3���},�Z�>�glUK�.���u�qx˖-�<O�����ɓs�?��0��p@ff�,��1c�d���'��[�*bbbv'$$l������s7�Y�r���=�N�)��/��@pb�ʕ�_�������˙3g�[ny7**�-[�<�ٲe�,**jψ#r-V]]-R��p�7�Hc8��>�`(��`��G�N��먮�.�Z�r�8�e�ҥx�I�T*7GEE���K�.��������,dff.0`@і-[s,������������b��������m5��9��b�ɓ'������:W���555�޲��'��K����sX��v˖-�}�����k׮�{�&11�3gΈ|��ބ���gΜ��@�.]z'�\�ti2�q���#�����϶n�*�|���;�N���&�����O�>-歞�z,���*B�P,^��-�ku���8��]�v�����>���^��,�`�����K���v4�)���n��ߩS��
�ޤ������b�B���?���禰@xKCZPP0�h4ꋋ�Sư,�c8�b���J�:���^���M:��N&�u�G�-<>�;�є����<��l�yoS;�a��2ð!6�MMӴ�VK$t>�0�h4��h4�~M?6sw�O9�@��^��]	�w
� @���P��������Jw�s�Rye�ĉ�}���?~|�q�jJKKQ(G��׿*�Jp��}��cǎ}�����m۶�L�6���N��h�/X��(�`׮]�0��[o�=77w8��a�H�a�ŋ����/]��߿�ߒH�l�����)))y�eف��p�+��9s�
�]�����
��ҶmۦM�0�$33�H$�Bp�$I�Z�re��d���o��gf����ssss�M&S��n?��7��ŋ�SSSs�v��#G�<��l!I�
�ݑ���oo|�G�}��ǿ�(jAN~��f͚u���J��ϟ�����-[���͛��oqrR��I�'� �q<"))��q��8�y��9���_�hYY��$�s�-اO��yRR���|n���yc�Ν�����]@%%%�V�-K�.��裏6x�=""�{�9�J�BQTUUE
�EE`V�p8T|SF����ﴬ�L���;gΜ�n������R�t͟?�ˢ��9[�l!�����<��S_?��=�H$����a��:��(�Z��D�۷oϸ��{gff�k�	=y'mk��������oY���o�po���$�1##�H����t
2��
q��Ux���V���m����
Q&�Ib2��C���,�
��@~ 0p�0�izM���.���|�����K���| ��$I�o�b0�Ttt4h4�n��F���i��$ɪw�}�q�\j \.��q��mW��-�����8��>">>ޤ�����w��fI||<u�С����ӧO����Ç�9�f6������hL�����6m�ɯ��j�ŋch������bYV�㸋�(mcc����T��j�9��$��Dr�����.۱c�[s���>q����͛�u�ĉվ��V�)�NWT\\|��l����o<t�P�X,�������Ç�9��y��eڴi��ꫯ�/^��i�ޜ��A��-))����k�.��ٳ/�\.׸q�N���kz_i4*::��n���D��r�`Ϟ=��o0&P5"1�,+�0�S��9�'��Ϛw�}��O�8�߿��{][x� ��0L,ø��0�L�bbbl�f�
X�R[[�}��c�F��cǎ��0L²l�ŋoW��F���d�,���I111�f͚u�=��rtt�I��>�kwTA��$Iҟ~�i�q����|p��;�>w��m'N�:o޼�'N�X�	a���N����gO�t:�Q��edd�(�H.��rW��FG�jR��$I^&I�<���Z�	��0C��M�6=h�X�C��%��+`4����|mK-��W��Ht�e�Z���~���ja���S�?��A�pg�oM�q\�Q�Z���T*U���劊���^_XPP�X^^ވiӦ�|��ѻ�~���III�	&�����,..���������.�d2E�<yR�q��y�8~Z"��9s�III�\.G�$��.�`ݺu�{�S6l�q��<8��~uݺu��H$�wv^^ިiӦ/..�[��NHHh���{���1//o�i�N�u:��x�n��~�[�T*�p��q`�\�v{Rݯ���;w�x���v�ܹ̄����g�Z,��f��?���
��_�H|�'���X�q �[G�寪ۓ��f�
�a@�4�<yRԯ_�+A�>^A~����
��iii{�Z��˗/�~��8��p;(���ׯ_K���<״~}X�.<@�[���{l�
>x���<8��~}ݺu�=%"!sa�\.�Z���d>ݶ#5N�d2�q�NW������T*U�
����x��`��ή����999p��t����R�T�t:�Y�V�W �t ��eف�%R��=�Ǎm�_�J��͛7����wK@�����Dz�2Qcc�~��f�@P��W_�/\�|�,�O�V�,+�0�
�$�V�\i���o��l����8�^�-���+W�|��P�ʻ�
###A(^��'�xb�%K6�.9����h��l"���H����'N\���W��/��۷�����GF�u���$��ʕ+�����	E�.^�8D��������̳�n��~{/EQ�ŋ�z����H;vlcdd��'��[�d��6�;P �_}���w���dYV)�H�p�[�s����Ν{tʔ)o�������qV�Z5�����kb�0������|����A��W_ɳ�����eFAum]8.������ӧW��������A���|����(9t��r���?���?fff֋D"���lݺu&�q�3�\.࿳��TVV&�����2#dYvHDDD5�kv]��O�ĉ?���+x��W�ر�o�>��T�$�;z��p���8��ݻ��9s����N�h�x�8���~V�R�}U4:
A�n��s���/9���(6�v�`ǯ��pb�ن�4=��?��O�4M�y��X-N��j�������l6po:�K0j�8�ڹs����<))�j���Ç�r�
G�O��ю�������,**J�9sf��UWW'8v�X�4��j�����ݿ�=�TZ��h��Q�Ǐ�n����TVV�
�y�$ IҚ��sn������+��V:���mD"<��cg>�cݺu�
e������UYY�)�*>Nj�����N�53I�?���\<x�/�|�����ʧ���~��l6`檩�I-**<s��*�}��g#���=��S�?��)))�~�b�X,c`�����{�\���D"Ob���|ꩧ��ĵΞ=+ؾ}�^�PԐ$i��T*��\�­_�~�N�{W�T�^�˲C~��
�=�X=��yŰ,{GDD��.��@ p��������_�T�r�J�����ty�ϯ�����fff~
]ɠ⯟�Ço[�n]NYYY\o��nluuu�_z���#�7�@�qE,��bq�F�9����mzzz�J��p��MB�'�D�*���Rْ��}�\�~ŧ+}ҏ��,;�j���"����)˲R�Ţ�1m�9XS^^~�k��6oŊ[\.W˖-[�~��'/$$$�6m�ϑ����3�l.,,|�^x����Zk��#_��i_���3g��IKK�p����������������DGG7{�v0??Ή'Feff~�V��j��NKK���/�X��sϽ�����F��i��cǎ�:��!--�\�sVXX8�رcC�O�^-�HZ�Fc�m��S(�iii�-��x�8qbxff�j���3�?�8qbDff�&�ZM���1O>��-_�|�s�=�(++�#�FC��M��t�iiig0s655�^|�ŗ�iii�<�^�v��\~&55��@��cPRR�v������nٲ�M�6�ܙ��k�����&++k���?��ȑ#[6o�|�'�|�bBBž�ӧ{�����{�n2++�+V@��gTTTdΜ9�j����#ӧO�~���[����YYY����w�TRRB����=�=""�܎;Ƨ��OMM�XRR"]�f�������j�/^��".����q���X�J�8����<�y|���;����������'�\EEE�|�o����͛�;22�[@��L @QQ���ѣ����l4%۷oP(6h4�6���p�-�e:��>��:�PxpΜ9_O�6�;�FS-
[{2���t%:�k�V�$)>k���X���c-R����P��4�+�?�j���(�u��III�x���ǏOb������;��nbb� 55�̫������x޼y�
��N�St���̙3sV�^����E��rss�Z,��&L0���Snn��Œ8a„��D"�^�z�
�ÇO��V��)q8Qo���[��pp�uEW)))��k��^�jU��4M����/���ohk!H��977���b�e„	E>�=������b�̈́	�{��`���ӧOK���_,�;�N��� �z뭿��qw)99y��fS͛7�S�Px��i�H$2�Y��)S��SO=u�رc�ޱcG֝w�P---�رc��+��Ϗ~����{�
�Lcc���#���;�����&
�RRR>ݷo�¢���_�tI1cƌ��W���k��ޞ/j�K�a����5kr>��z�޽�<�xDDD#EQ*�Lf�2eʢ���۷o���V�X\�q\�T*-�h4�,��mtt���{�5lݺuŔ)S>v�\/^���W|�ӹf͚|�A�޽{�<x�.""���p�d2���ߦL��q�9��ۼ�����-))Q���k�V�Z��q�M�
���/MKK��G���E+4655�,ː��2����� ������nf�U���+������/����0o��^�|ySS�দ��_}���_~��V�˕�ж,�s�<y���C�i�P$�?���g�'?�D����i֬Ysv�ؑ@��0��SRR��w�}�|[�����5.Z�h��錚={v��kԢE���R�lٸq�ƙ3g�L�DÔ.�˖��R~�}�U�ciZ�h�kZ����SO=�3�a��v{�]�j������{x����-Z�(��t�g�>���hѢ�N��5�Rye�ƍ�̜9s?�X��E����~饗^;vlcBBB�m����V3~��S�'On�}������_+SRRv��D��E�7�V�mزe˞���F��������)��=�|֯_�ՙ3g��.X�HtzΜ9�J��l�ĉ����<�D���������������ɓ'�&L�������$	%0���?�T��k�|�G5�L�9�#RRRN�u�]���{ɉ'�Dr������7v��
�ݞ�r��cǎ�0;���~��	&�����)))I�0,R,�?����皚�z�o���z�FDӜ9s�q���~��5j�����~�=U`�r���P]/��n�Q[�V���r�-�-Z��e˖M[�x��]�v����H.\��݂�f�[�t�p��}ׯn�ҥcz�{��?x^^^�O<1[(n�h�u���􇪪*E7��ٻ�
���?�`��K���{��ŋg+
SUU�2���z�1�$ɚ���yxW�m�Z�벁.ye�Ќ�/[-mYzAm��n�0�wL2�ͩ4M���c�� �㍡[2D��EW�����j������?عs�P�an��p�l��W��Z��
d��a8�U�p^���u��z8�V�fP�n�c�����t�If��>������9����u���W:�9��m���7)��ّ뢙o8t����1���=�X�
2������^i�Q�}�Y-�O���j��ĝ�j�罬��V^�hzd?�2�1�>�0�m�v���1�8n��d?����y��>�4iҹ���!55����u�ǯ�������U�w�ĉ�b�$���s`��Ĵѵv�W��P���b�`������j9�Uy�V˲e��|��p}�e�ҥ�-[����v�A�b4�/..~���a,�B�3Bρ[�O����5k־Y�f����]�H$�yc"��
y��J��$i�|ʼ�F��̞h��m�W���0�Z~�b-��Z��vM|�e���"r׮]	F�qbqq񤆆�q,�*���T�b��B�R�������:��^&����2�c��W�6�_�v�ݽ6�� ��_c-
�X�p�E�kq�����vmT��	�v�TQQq���RA�n���*��[^4���t57��1�-a��V��_T��b��ۮ����r�+�R�!��M��C�O�x��aЉ*��p���d�))){�ϟ0%%�R&�]A��@�<�_{/�ZD ⭖Q�u����k�����0s577þ}�dF�Q�A5��A��%�LV������鿠�2���
	��~��e��&N��Z�"��(�r�jY�l��˗����u'N\(�J����I|�:�AA?���}�������R�($����%���=bf�X�D")?p�@��h|�ܽrDе�_T*�>�q<--�H$��/q
7���Y-t�����:��N�9"��	Hs��3�
�����o�N��W��FT�� 	"��jpgPYe2Y�N�۫��N�:�2!!�ųY�@t$ 7�[-.~�xO�~�A�@ ��ӃV�'��'��Q�H@˜V������"w]O�X,��ʠ*CT�'@�	`��0L�r�j�Z�y�A�@ z$ ��72��@ }$ ��H@�%�� �K A D�@�@ �.��@ ]	�@ ��ws\���tEXtSoftwarewww.inkscape.org��<IEND�B`�
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/ie000064400000000260150402106460015672 0ustar00--AaB03x
Content-Disposition: form-data; name="files"; filename="C:\Documents and Settings\Administrator\Desktop\file1.txt"
Content-Type: text/plain

contents
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/multipart/invalid_character000064400000000203150402106460020734 0ustar00--AaB03x
Content-Disposition: form-data; name="files"; filename="invalid�.txt"
Content-Type: text/plain

contents
--AaB03x--
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/gemloader.rb000064400000000452150402106460015620 0ustar00require 'rubygems'
project = 'rack'
gemspec = File.expand_path("#{project}.gemspec", Dir.pwd)
Gem::Specification.load(gemspec).dependencies.each do |dep|
  begin
    gem dep.name, *dep.requirement.as_list
  rescue Gem::LoadError
    warn "Cannot load #{dep.name} #{dep.requirement.to_s}"
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/rackup/config.ru000064400000001513150402106460016435 0ustar00require "#{File.dirname(__FILE__)}/../testrequest"

$stderr = File.open("#{File.dirname(__FILE__)}/log_output", "w")

class EnvMiddleware
  def initialize(app)
    @app = app
  end

  def call(env)
    # provides a way to test that lint is present
    if env["PATH_INFO"] == "/broken_lint"
      return [200, {}, ["Broken Lint"]]
    # provides a way to kill the process without knowing the pid
    elsif env["PATH_INFO"] == "/die"
      exit!
    end

    env["test.$DEBUG"]      = $DEBUG
    env["test.$EVAL"]       = BUKKIT if defined?(BUKKIT)
    env["test.$VERBOSE"]    = $VERBOSE
    env["test.$LOAD_PATH"]  = $LOAD_PATH
    env["test.stderr"]      = File.expand_path($stderr.path)
    env["test.Ping"]        = defined?(Ping)
    env["test.pid"]         = Process.pid
    @app.call(env)
  end
end

use EnvMiddleware
run TestRequest.new
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_mock.rb000064400000022537150402106460015634 0ustar00require 'yaml'
require 'rack/lint'
require 'rack/mock'
require 'stringio'

app = Rack::Lint.new(lambda { |env|
  req = Rack::Request.new(env)

  env["mock.postdata"] = env["rack.input"].read
  if req.GET["error"]
    env["rack.errors"].puts req.GET["error"]
    env["rack.errors"].flush
  end

  body = req.head? ? "" : env.to_yaml
  Rack::Response.new(body,
                     req.GET["status"] || 200,
                     "Content-Type" => "text/yaml").finish
})

describe Rack::MockRequest do
  should "return a MockResponse" do
    res = Rack::MockRequest.new(app).get("")
    res.should.be.kind_of Rack::MockResponse
  end

  should "be able to only return the environment" do
    env = Rack::MockRequest.env_for("")
    env.should.be.kind_of Hash
    env.should.include "rack.version"
  end

  should "return an environment with a path" do
    env = Rack::MockRequest.env_for("http://www.example.com/parse?location[]=1&location[]=2&age_group[]=2")
    env["QUERY_STRING"].should.equal "location[]=1&location[]=2&age_group[]=2"
    env["PATH_INFO"].should.equal "/parse"
    env.should.be.kind_of Hash
    env.should.include "rack.version"
  end

  should "provide sensible defaults" do
    res = Rack::MockRequest.new(app).request

    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "GET"
    env["SERVER_NAME"].should.equal "example.org"
    env["SERVER_PORT"].should.equal "80"
    env["QUERY_STRING"].should.equal ""
    env["PATH_INFO"].should.equal "/"
    env["SCRIPT_NAME"].should.equal ""
    env["rack.url_scheme"].should.equal "http"
    env["mock.postdata"].should.be.empty
  end

  should "allow GET/POST/PUT/DELETE/HEAD" do
    res = Rack::MockRequest.new(app).get("", :input => "foo")
    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "GET"

    res = Rack::MockRequest.new(app).post("", :input => "foo")
    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "POST"

    res = Rack::MockRequest.new(app).put("", :input => "foo")
    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "PUT"

    res = Rack::MockRequest.new(app).patch("", :input => "foo")
    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "PATCH"

    res = Rack::MockRequest.new(app).delete("", :input => "foo")
    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "DELETE"
    
    Rack::MockRequest.env_for("/", :method => "HEAD")["REQUEST_METHOD"].
      should.equal "HEAD"

    Rack::MockRequest.env_for("/", :method => "OPTIONS")["REQUEST_METHOD"].
      should.equal "OPTIONS"
  end

  should "set content length" do
    env = Rack::MockRequest.env_for("/", :input => "foo")
    env["CONTENT_LENGTH"].should.equal "3"
  end

  should "allow posting" do
    res = Rack::MockRequest.new(app).get("", :input => "foo")
    env = YAML.load(res.body)
    env["mock.postdata"].should.equal "foo"

    res = Rack::MockRequest.new(app).post("", :input => StringIO.new("foo"))
    env = YAML.load(res.body)
    env["mock.postdata"].should.equal "foo"
  end

  should "use all parts of an URL" do
    res = Rack::MockRequest.new(app).
      get("https://bla.example.org:9292/meh/foo?bar")
    res.should.be.kind_of Rack::MockResponse

    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "GET"
    env["SERVER_NAME"].should.equal "bla.example.org"
    env["SERVER_PORT"].should.equal "9292"
    env["QUERY_STRING"].should.equal "bar"
    env["PATH_INFO"].should.equal "/meh/foo"
    env["rack.url_scheme"].should.equal "https"
  end

  should "set SSL port and HTTP flag on when using https" do
    res = Rack::MockRequest.new(app).
      get("https://example.org/foo")
    res.should.be.kind_of Rack::MockResponse

    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "GET"
    env["SERVER_NAME"].should.equal "example.org"
    env["SERVER_PORT"].should.equal "443"
    env["QUERY_STRING"].should.equal ""
    env["PATH_INFO"].should.equal "/foo"
    env["rack.url_scheme"].should.equal "https"
    env["HTTPS"].should.equal "on"
  end

  should "prepend slash to uri path" do
    res = Rack::MockRequest.new(app).
      get("foo")
    res.should.be.kind_of Rack::MockResponse

    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "GET"
    env["SERVER_NAME"].should.equal "example.org"
    env["SERVER_PORT"].should.equal "80"
    env["QUERY_STRING"].should.equal ""
    env["PATH_INFO"].should.equal "/foo"
    env["rack.url_scheme"].should.equal "http"
  end

  should "properly convert method name to an uppercase string" do
    res = Rack::MockRequest.new(app).request(:get)
    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "GET"
  end

  should "accept params and build query string for GET requests" do
    res = Rack::MockRequest.new(app).get("/foo?baz=2", :params => {:foo => {:bar => "1"}})
    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "GET"
    env["QUERY_STRING"].should.include "baz=2"
    env["QUERY_STRING"].should.include "foo[bar]=1"
    env["PATH_INFO"].should.equal "/foo"
    env["mock.postdata"].should.equal ""
  end

  should "accept raw input in params for GET requests" do
    res = Rack::MockRequest.new(app).get("/foo?baz=2", :params => "foo[bar]=1")
    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "GET"
    env["QUERY_STRING"].should.include "baz=2"
    env["QUERY_STRING"].should.include "foo[bar]=1"
    env["PATH_INFO"].should.equal "/foo"
    env["mock.postdata"].should.equal ""
  end

  should "accept params and build url encoded params for POST requests" do
    res = Rack::MockRequest.new(app).post("/foo", :params => {:foo => {:bar => "1"}})
    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "POST"
    env["QUERY_STRING"].should.equal ""
    env["PATH_INFO"].should.equal "/foo"
    env["CONTENT_TYPE"].should.equal "application/x-www-form-urlencoded"
    env["mock.postdata"].should.equal "foo[bar]=1"
  end

  should "accept raw input in params for POST requests" do
    res = Rack::MockRequest.new(app).post("/foo", :params => "foo[bar]=1")
    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "POST"
    env["QUERY_STRING"].should.equal ""
    env["PATH_INFO"].should.equal "/foo"
    env["CONTENT_TYPE"].should.equal "application/x-www-form-urlencoded"
    env["mock.postdata"].should.equal "foo[bar]=1"
  end

  should "accept params and build multipart encoded params for POST requests" do
    files = Rack::Multipart::UploadedFile.new(File.join(File.dirname(__FILE__), "multipart", "file1.txt"))
    res = Rack::MockRequest.new(app).post("/foo", :params => { "submit-name" => "Larry", "files" => files })
    env = YAML.load(res.body)
    env["REQUEST_METHOD"].should.equal "POST"
    env["QUERY_STRING"].should.equal ""
    env["PATH_INFO"].should.equal "/foo"
    env["CONTENT_TYPE"].should.equal "multipart/form-data; boundary=AaB03x"
    # The gsub accounts for differences in YAMLs affect on the data.
    env["mock.postdata"].gsub("\r", "").length.should.equal 206
  end

  should "behave valid according to the Rack spec" do
    lambda {
      Rack::MockRequest.new(app).
        get("https://bla.example.org:9292/meh/foo?bar", :lint => true)
    }.should.not.raise(Rack::Lint::LintError)
  end

  should "call close on the original body object" do
    called = false
    body   = Rack::BodyProxy.new(['hi']) { called = true }
    capp   = proc { |e| [200, {'Content-Type' => 'text/plain'}, body] }
    called.should.equal false
    Rack::MockRequest.new(capp).get('/', :lint => true)
    called.should.equal true
  end
end

describe Rack::MockResponse do
  should "provide access to the HTTP status" do
    res = Rack::MockRequest.new(app).get("")
    res.should.be.successful
    res.should.be.ok

    res = Rack::MockRequest.new(app).get("/?status=404")
    res.should.not.be.successful
    res.should.be.client_error
    res.should.be.not_found

    res = Rack::MockRequest.new(app).get("/?status=501")
    res.should.not.be.successful
    res.should.be.server_error

    res = Rack::MockRequest.new(app).get("/?status=307")
    res.should.be.redirect

    res = Rack::MockRequest.new(app).get("/?status=201", :lint => true)
    res.should.be.empty
  end

  should "provide access to the HTTP headers" do
    res = Rack::MockRequest.new(app).get("")
    res.should.include "Content-Type"
    res.headers["Content-Type"].should.equal "text/yaml"
    res.original_headers["Content-Type"].should.equal "text/yaml"
    res["Content-Type"].should.equal "text/yaml"
    res.content_type.should.equal "text/yaml"
    res.content_length.should.not.equal 0
    res.location.should.be.nil
  end

  should "provide access to the HTTP body" do
    res = Rack::MockRequest.new(app).get("")
    res.body.should =~ /rack/
    res.should =~ /rack/
    res.should.match(/rack/)
    res.should.satisfy { |r| r.match(/rack/) }
  end

  should "provide access to the Rack errors" do
    res = Rack::MockRequest.new(app).get("/?error=foo", :lint => true)
    res.should.be.ok
    res.errors.should.not.be.empty
    res.errors.should.include "foo"
  end

  should "allow calling body.close afterwards" do
    # this is exactly what rack-test does
    body = StringIO.new("hi")
    res = Rack::MockResponse.new(200, {}, body)
    body.close if body.respond_to?(:close)
    res.body.should == 'hi'
  end

  should "optionally make Rack errors fatal" do
    lambda {
      Rack::MockRequest.new(app).get("/?error=foo", :fatal => true)
    }.should.raise(Rack::MockRequest::FatalWarning)
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_nulllogger.rb000064400000001002150402106460017035 0ustar00require 'rack/lint'
require 'rack/mock'
require 'rack/nulllogger'

describe Rack::NullLogger do
  should "act as a noop logger" do
    app = lambda { |env|
      env['rack.logger'].warn "b00m"
      [200, {'Content-Type' => 'text/plain'}, ["Hello, World!"]]
    }

    logger = Rack::Lint.new(Rack::NullLogger.new(app))

    res = logger.call(Rack::MockRequest.env_for)
    res[0..1].should.equal [
      200, {'Content-Type' => 'text/plain'}
    ]
    res[2].to_enum.to_a.should.equal ["Hello, World!"]
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_tempfile_reaper.rb000064400000003114150402106460020034 0ustar00require 'rack/tempfile_reaper'
require 'rack/lint'
require 'rack/mock'

describe Rack::TempfileReaper do
  class MockTempfile
    attr_reader :closed

    def initialize
      @closed = false
    end

    def close!
      @closed = true
    end
  end

  before do
    @env = Rack::MockRequest.env_for
  end

  def call(app)
    Rack::Lint.new(Rack::TempfileReaper.new(app)).call(@env)
  end

  should 'do nothing (i.e. not bomb out) without env[rack.tempfiles]' do
    app = lambda { |_| [200, {}, ['Hello, World!']] }
    response = call(app)
    response[2].close
    response[0].should.equal(200)
  end

  should 'close env[rack.tempfiles] when body is closed' do
    tempfile1, tempfile2 = MockTempfile.new, MockTempfile.new
    @env['rack.tempfiles'] = [ tempfile1, tempfile2 ]
    app = lambda { |_| [200, {}, ['Hello, World!']] }
    call(app)[2].close
    tempfile1.closed.should.equal true
    tempfile2.closed.should.equal true
  end

  should 'initialize env[rack.tempfiles] when not already present' do
    tempfile = MockTempfile.new
    app = lambda do |env|
      env['rack.tempfiles'] << tempfile
      [200, {}, ['Hello, World!']]
    end
    call(app)[2].close
    tempfile.closed.should.equal true
  end

  should 'append env[rack.tempfiles] when already present' do
    tempfile1, tempfile2 = MockTempfile.new, MockTempfile.new
    @env['rack.tempfiles'] = [ tempfile1 ]
    app = lambda do |env|
      env['rack.tempfiles'] << tempfile2
      [200, {}, ['Hello, World!']]
    end
    call(app)[2].close
    tempfile1.closed.should.equal true
    tempfile2.closed.should.equal true
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_etag.rb000064400000007530150402106460015617 0ustar00require 'rack/etag'
require 'rack/lint'
require 'rack/mock'
require 'time'

describe Rack::ETag do
  def etag(app, *args)
    Rack::Lint.new Rack::ETag.new(app, *args)
  end
  
  def request
    Rack::MockRequest.env_for
  end
  
  def sendfile_body
    res = ['Hello World']
    def res.to_path ; "/tmp/hello.txt" ; end
    res
  end

  should "set ETag if none is set if status is 200" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, ["Hello, World!"]] }
    response = etag(app).call(request)
    response[1]['ETag'].should.equal "W/\"65a8e27d8879283831b664bd8b7f0ad4\""
  end

  should "set ETag if none is set if status is 201" do
    app = lambda { |env| [201, {'Content-Type' => 'text/plain'}, ["Hello, World!"]] }
    response = etag(app).call(request)
    response[1]['ETag'].should.equal "W/\"65a8e27d8879283831b664bd8b7f0ad4\""
  end

  should "set Cache-Control to 'max-age=0, private, must-revalidate' (default) if none is set" do
    app = lambda { |env| [201, {'Content-Type' => 'text/plain'}, ["Hello, World!"]] }
    response = etag(app).call(request)
    response[1]['Cache-Control'].should.equal 'max-age=0, private, must-revalidate'
  end

  should "set Cache-Control to chosen one if none is set" do
    app = lambda { |env| [201, {'Content-Type' => 'text/plain'}, ["Hello, World!"]] }
    response = etag(app, nil, 'public').call(request)
    response[1]['Cache-Control'].should.equal 'public'
  end

  should "set a given Cache-Control even if digest could not be calculated" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, []] }
    response = etag(app, 'no-cache').call(request)
    response[1]['Cache-Control'].should.equal 'no-cache'
  end

  should "not set Cache-Control if it is already set" do
    app = lambda { |env| [201, {'Content-Type' => 'text/plain', 'Cache-Control' => 'public'}, ["Hello, World!"]] }
    response = etag(app).call(request)
    response[1]['Cache-Control'].should.equal 'public'
  end

  should "not set Cache-Control if directive isn't present" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, ["Hello, World!"]] }
    response = etag(app, nil, nil).call(request)
    response[1]['Cache-Control'].should.equal nil
  end

  should "not change ETag if it is already set" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain', 'ETag' => '"abc"'}, ["Hello, World!"]] }
    response = etag(app).call(request)
    response[1]['ETag'].should.equal "\"abc\""
  end

  should "not set ETag if body is empty" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain', 'Last-Modified' => Time.now.httpdate}, []] }
    response = etag(app).call(request)
    response[1]['ETag'].should.be.nil
  end

  should "not set ETag if Last-Modified is set" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain', 'Last-Modified' => Time.now.httpdate}, ["Hello, World!"]] }
    response = etag(app).call(request)
    response[1]['ETag'].should.be.nil
  end

  should "not set ETag if a sendfile_body is given" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, sendfile_body] }
    response = etag(app).call(request)
    response[1]['ETag'].should.be.nil
  end

  should "not set ETag if a status is not 200 or 201" do
    app = lambda { |env| [401, {'Content-Type' => 'text/plain'}, ['Access denied.']] }
    response = etag(app).call(request)
    response[1]['ETag'].should.be.nil
  end

  should "not set ETag if no-cache is given" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain', 'Cache-Control' => 'no-cache, must-revalidate'}, ['Hello, World!']] }
    response = etag(app).call(request)
    response[1]['ETag'].should.be.nil
  end

  should "close the original body" do
    body = StringIO.new
    app = lambda { |env| [200, {}, body] }
    response = etag(app).call(request)
    body.should.not.be.closed
    response[2].close
    body.should.be.closed
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_mime.rb000064400000003471150402106460015626 0ustar00require 'rack/mime'

describe Rack::Mime do

  it "should return the fallback mime-type for files with no extension" do
    fallback = 'image/jpg'
    Rack::Mime.mime_type(File.extname('no_ext'), fallback).should.equal fallback
  end

  it "should always return 'application/octet-stream' for unknown file extensions" do
    unknown_ext = File.extname('unknown_ext.abcdefg')
    Rack::Mime.mime_type(unknown_ext).should.equal 'application/octet-stream'
  end

  it "should return the mime-type for a given extension" do
    # sanity check. it would be infeasible test every single mime-type.
    Rack::Mime.mime_type(File.extname('image.jpg')).should.equal 'image/jpeg'
  end

  it "should support null fallbacks" do
    Rack::Mime.mime_type('.nothing', nil).should.equal nil
  end

  it "should match exact mimes" do
    Rack::Mime.match?('text/html', 'text/html').should.equal true
    Rack::Mime.match?('text/html', 'text/meme').should.equal false
    Rack::Mime.match?('text', 'text').should.equal true
    Rack::Mime.match?('text', 'binary').should.equal false
  end

  it "should match class wildcard mimes" do
    Rack::Mime.match?('text/html', 'text/*').should.equal true
    Rack::Mime.match?('text/plain', 'text/*').should.equal true
    Rack::Mime.match?('application/json', 'text/*').should.equal false
    Rack::Mime.match?('text/html', 'text').should.equal true
  end

  it "should match full wildcards" do
    Rack::Mime.match?('text/html', '*').should.equal true
    Rack::Mime.match?('text/plain', '*').should.equal true
    Rack::Mime.match?('text/html', '*/*').should.equal true
    Rack::Mime.match?('text/plain', '*/*').should.equal true
  end

  it "should match type wildcard mimes" do
    Rack::Mime.match?('text/html', '*/html').should.equal true
    Rack::Mime.match?('text/plain', '*/plain').should.equal true
  end

end

lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_chunked.rb000064400000007571150402106460016325 0ustar00require 'rack/chunked'
require 'rack/lint'
require 'rack/mock'

describe Rack::Chunked do
  def chunked(app)
    proc do |env|
      app = Rack::Chunked.new(app)
      response = Rack::Lint.new(app).call(env)
      # we want to use body like an array, but it only has #each
      response[2] = response[2].to_enum.to_a
      response
    end
  end

  before do
    @env = Rack::MockRequest.
      env_for('/', 'HTTP_VERSION' => '1.1', 'REQUEST_METHOD' => 'GET')
  end

  should 'chunk responses with no Content-Length' do
    app = lambda { |env| [200, {"Content-Type" => "text/plain"}, ['Hello', ' ', 'World!']] }
    response = Rack::MockResponse.new(*chunked(app).call(@env))
    response.headers.should.not.include 'Content-Length'
    response.headers['Transfer-Encoding'].should.equal 'chunked'
    response.body.should.equal "5\r\nHello\r\n1\r\n \r\n6\r\nWorld!\r\n0\r\n\r\n"
  end

  should 'chunks empty bodies properly' do
    app = lambda { |env| [200, {"Content-Type" => "text/plain"}, []] }
    response = Rack::MockResponse.new(*chunked(app).call(@env))
    response.headers.should.not.include 'Content-Length'
    response.headers['Transfer-Encoding'].should.equal 'chunked'
    response.body.should.equal "0\r\n\r\n"
  end

  should 'chunks encoded bodies properly' do
    body = ["\uFFFEHello", " ", "World"].map {|t| t.encode("UTF-16LE") }
    app  = lambda { |env| [200, {"Content-Type" => "text/plain"}, body] }
    response = Rack::MockResponse.new(*chunked(app).call(@env))
    response.headers.should.not.include 'Content-Length'
    response.headers['Transfer-Encoding'].should.equal 'chunked'
    response.body.encoding.to_s.should.equal "ASCII-8BIT"
    response.body.should.equal "c\r\n\xFE\xFFH\x00e\x00l\x00l\x00o\x00\r\n2\r\n \x00\r\na\r\nW\x00o\x00r\x00l\x00d\x00\r\n0\r\n\r\n".force_encoding("BINARY")
  end if RUBY_VERSION >= "1.9"

  should 'not modify response when Content-Length header present' do
    app = lambda { |env|
      [200, {"Content-Type" => "text/plain", 'Content-Length'=>'12'}, ['Hello', ' ', 'World!']]
    }
    status, headers, body = chunked(app).call(@env)
    status.should.equal 200
    headers.should.not.include 'Transfer-Encoding'
    headers.should.include 'Content-Length'
    body.join.should.equal 'Hello World!'
  end

  should 'not modify response when client is HTTP/1.0' do
    app = lambda { |env| [200, {"Content-Type" => "text/plain"}, ['Hello', ' ', 'World!']] }
    @env['HTTP_VERSION'] = 'HTTP/1.0'
    status, headers, body = chunked(app).call(@env)
    status.should.equal 200
    headers.should.not.include 'Transfer-Encoding'
    body.join.should.equal 'Hello World!'
  end

  should 'not modify response when client is ancient, pre-HTTP/1.0' do
    app = lambda { |env| [200, {"Content-Type" => "text/plain"}, ['Hello', ' ', 'World!']] }
    check = lambda do
      status, headers, body = chunked(app).call(@env.dup)
      status.should.equal 200
      headers.should.not.include 'Transfer-Encoding'
      body.join.should.equal 'Hello World!'
    end

    @env.delete('HTTP_VERSION') # unicorn will do this on pre-HTTP/1.0 requests
    check.call

    @env['HTTP_VERSION'] = 'HTTP/0.9' # not sure if this happens in practice
    check.call
  end

  should 'not modify response when Transfer-Encoding header already present' do
    app = lambda { |env|
      [200, {"Content-Type" => "text/plain", 'Transfer-Encoding' => 'identity'}, ['Hello', ' ', 'World!']]
    }
    status, headers, body = chunked(app).call(@env)
    status.should.equal 200
    headers['Transfer-Encoding'].should.equal 'identity'
    body.join.should.equal 'Hello World!'
  end

  [100, 204, 205, 304].each do |status_code|
    should "not modify response when status code is #{status_code}" do
      app = lambda { |env| [status_code, {}, []] }
      status, headers, _ = chunked(app).call(@env)
      status.should.equal status_code
      headers.should.not.include 'Transfer-Encoding'
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_thin.rb000064400000005061150402106460015636 0ustar00begin
require 'rack/handler/thin'
require File.expand_path('../testrequest', __FILE__)
require 'timeout'

describe Rack::Handler::Thin do
  extend TestRequest::Helpers

  @app = Rack::Lint.new(TestRequest.new)
  @server = nil
  Thin::Logging.silent = true

  @thread = Thread.new do
    Rack::Handler::Thin.run(@app, :Host => @host='127.0.0.1', :Port => @port=9204, :tag => "tag") do |server|
      @server = server
    end
  end

  Thread.pass until @server && @server.running?

  should "respond" do
    GET("/")
    response.should.not.be.nil
  end

  should "be a Thin" do
    GET("/")
    status.should.equal 200
    response["SERVER_SOFTWARE"].should =~ /thin/
    response["HTTP_VERSION"].should.equal "HTTP/1.1"
    response["SERVER_PROTOCOL"].should.equal "HTTP/1.1"
    response["SERVER_PORT"].should.equal "9204"
    response["SERVER_NAME"].should.equal "127.0.0.1"
  end

  should "have rack headers" do
    GET("/")
    response["rack.version"].should.equal [1,0]
    response["rack.multithread"].should.equal false
    response["rack.multiprocess"].should.equal false
    response["rack.run_once"].should.equal false
  end

  should "have CGI headers on GET" do
    GET("/")
    response["REQUEST_METHOD"].should.equal "GET"
    response["REQUEST_PATH"].should.equal "/"
    response["PATH_INFO"].should.be.equal "/"
    response["QUERY_STRING"].should.equal ""
    response["test.postdata"].should.equal ""

    GET("/test/foo?quux=1")
    response["REQUEST_METHOD"].should.equal "GET"
    response["REQUEST_PATH"].should.equal "/test/foo"
    response["PATH_INFO"].should.equal "/test/foo"
    response["QUERY_STRING"].should.equal "quux=1"
  end

  should "have CGI headers on POST" do
    POST("/", {"rack-form-data" => "23"}, {'X-test-header' => '42'})
    status.should.equal 200
    response["REQUEST_METHOD"].should.equal "POST"
    response["REQUEST_PATH"].should.equal "/"
    response["QUERY_STRING"].should.equal ""
    response["HTTP_X_TEST_HEADER"].should.equal "42"
    response["test.postdata"].should.equal "rack-form-data=23"
  end

  should "support HTTP auth" do
    GET("/test", {:user => "ruth", :passwd => "secret"})
    response["HTTP_AUTHORIZATION"].should.equal "Basic cnV0aDpzZWNyZXQ="
  end

  should "set status" do
    GET("/test?secret")
    status.should.equal 403
    response["rack.url_scheme"].should.equal "http"
  end

  should "set tag for server" do
    @server.tag.should.equal 'tag'
  end

  @server.stop!
  @thread.kill

end

rescue LoadError
  $stderr.puts "Skipping Rack::Handler::Thin tests (Thin is required). `gem install thin` and try again."
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_runtime.rb000064400000003042150402106460016354 0ustar00require 'rack/lint'
require 'rack/mock'
require 'rack/runtime'

describe Rack::Runtime do
  def runtime_app(app, *args)
    Rack::Lint.new Rack::Runtime.new(app, *args)
  end
  
  def request
    Rack::MockRequest.env_for
  end
  
  it "sets X-Runtime is none is set" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, "Hello, World!"] }
    response = runtime_app(app).call(request)
    response[1]['X-Runtime'].should =~ /[\d\.]+/
  end

  it "doesn't set the X-Runtime if it is already set" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain', "X-Runtime" => "foobar"}, "Hello, World!"] }
    response = runtime_app(app).call(request)
    response[1]['X-Runtime'].should == "foobar"
  end

  should "allow a suffix to be set" do
    app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, "Hello, World!"] }
    response = runtime_app(app, "Test").call(request)
    response[1]['X-Runtime-Test'].should =~ /[\d\.]+/
  end

  should "allow multiple timers to be set" do
    app = lambda { |env| sleep 0.1; [200, {'Content-Type' => 'text/plain'}, "Hello, World!"] }
    runtime = runtime_app(app, "App")

    # wrap many times to guarantee a measurable difference
    100.times do |i|
      runtime = Rack::Runtime.new(runtime, i.to_s)
    end
    runtime = Rack::Runtime.new(runtime, "All")

    response = runtime.call(request)

    response[1]['X-Runtime-App'].should =~ /[\d\.]+/
    response[1]['X-Runtime-All'].should =~ /[\d\.]+/

    Float(response[1]['X-Runtime-All']).should > Float(response[1]['X-Runtime-App'])
  end
end
ruby/gems/2.2.0/gems/rack-1.6.4/test/unregistered_handler/rack/handler/unregistered_long_one.rb000064400000000222150402106460026707 0ustar00lib64module Rack
  module Handler
    # this class doesn't do anything, we're just seeing if we get it.
    class UnregisteredLongOne
    end
  end
endlib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/unregistered_handler/rack/handler/unregistered.rb000064400000000213150402106460025106 0ustar00module Rack
  module Handler
    # this class doesn't do anything, we're just seeing if we get it.
    class Unregistered
    end
  end
endlib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/testrequest.rb000064400000003734150402106460016257 0ustar00require 'yaml'
require 'net/http'
require 'rack/lint'

class TestRequest
  NOSERIALIZE = [Method, Proc, Rack::Lint::InputWrapper]

  def call(env)
    status = env["QUERY_STRING"] =~ /secret/ ? 403 : 200
    env["test.postdata"] = env["rack.input"].read
    minienv = env.dup
    # This may in the future want to replace with a dummy value instead.
    minienv.delete_if { |k,v| NOSERIALIZE.any? { |c| v.kind_of?(c) } }
    body = minienv.to_yaml
    size = body.respond_to?(:bytesize) ? body.bytesize : body.size
    [status, {"Content-Type" => "text/yaml", "Content-Length" => size.to_s}, [body]]
  end

  module Helpers
    attr_reader :status, :response

    ROOT = File.expand_path(File.dirname(__FILE__) + "/..")
    ENV["RUBYOPT"] = "-I#{ROOT}/lib -rubygems"

    def root
      ROOT
    end

    def rackup
      "#{ROOT}/bin/rackup"
    end

    def GET(path, header={})
      Net::HTTP.start(@host, @port) { |http|
        user = header.delete(:user)
        passwd = header.delete(:passwd)

        get = Net::HTTP::Get.new(path, header)
        get.basic_auth user, passwd  if user && passwd
        http.request(get) { |response|
          @status = response.code.to_i
          begin
            @response = YAML.load(response.body)
          rescue TypeError, ArgumentError
            @response = nil
          end
        }
      }
    end

    def POST(path, formdata={}, header={})
      Net::HTTP.start(@host, @port) { |http|
        user = header.delete(:user)
        passwd = header.delete(:passwd)

        post = Net::HTTP::Post.new(path, header)
        post.form_data = formdata
        post.basic_auth user, passwd  if user && passwd
        http.request(post) { |response|
          @status = response.code.to_i
          @response = YAML.load(response.body)
        }
      }
    end
  end
end

class StreamingRequest
  def self.call(env)
    [200, {"Content-Type" => "text/plain"}, new]
  end

  def each
    yield "hello there!\n"
    sleep 5
    yield "that is all.\n"
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_auth_digest.rb000064400000020121150402106460017166 0ustar00require 'rack/auth/digest/md5'
require 'rack/lint'
require 'rack/mock'

describe Rack::Auth::Digest::MD5 do
  def realm
    'WallysWorld'
  end

  def unprotected_app
    Rack::Lint.new lambda { |env|
      friend = Rack::Utils.parse_query(env["QUERY_STRING"])["friend"]
      [ 200, {'Content-Type' => 'text/plain'}, ["Hi #{env['REMOTE_USER']}#{friend ? " and #{friend}" : ''}"] ]
    }
  end

  def protected_app
    Rack::Auth::Digest::MD5.new(unprotected_app, :realm => realm, :opaque => 'this-should-be-secret') do |username|
      { 'Alice' => 'correct-password' }[username]
    end
  end

  def protected_app_with_hashed_passwords
    app = Rack::Auth::Digest::MD5.new(unprotected_app) do |username|
      username == 'Alice' ? Digest::MD5.hexdigest("Alice:#{realm}:correct-password") : nil
    end
    app.realm = realm
    app.opaque = 'this-should-be-secret'
    app.passwords_hashed = true
    app
  end

  def partially_protected_app
    Rack::URLMap.new({
      '/' => unprotected_app,
      '/protected' => protected_app
    })
  end

  def protected_app_with_method_override
    Rack::MethodOverride.new(protected_app)
  end

  before do
    @request = Rack::MockRequest.new(protected_app)
  end

  def request(method, path, headers = {}, &block)
    response = @request.request(method, path, headers)
    block.call(response) if block
    return response
  end

  class MockDigestRequest
    def initialize(params)
      @params = params
    end
    def method_missing(sym)
      if @params.has_key? k = sym.to_s
        return @params[k]
      end
      super
    end
    def method
      @params['method']
    end
    def response(password)
      Rack::Auth::Digest::MD5.new(nil).send :digest, self, password
    end
  end

  def request_with_digest_auth(method, path, username, password, options = {}, &block)
    request_options = {}
    request_options[:input] = options.delete(:input) if options.include? :input

    response = request(method, path, request_options)

    return response unless response.status == 401

    if wait = options.delete(:wait)
      sleep wait
    end

    challenge = response['WWW-Authenticate'].split(' ', 2).last

    params = Rack::Auth::Digest::Params.parse(challenge)

    params['username'] = username
    params['nc'] = '00000001'
    params['cnonce'] = 'nonsensenonce'
    params['uri'] = path

    params['method'] = method

    params.update options

    params['response'] = MockDigestRequest.new(params).response(password)

    request(method, path, request_options.merge('HTTP_AUTHORIZATION' => "Digest #{params}"), &block)
  end

  def assert_digest_auth_challenge(response)
    response.should.be.a.client_error
    response.status.should.equal 401
    response.should.include 'WWW-Authenticate'
    response.headers['WWW-Authenticate'].should =~ /^Digest /
    response.body.should.be.empty
  end

  def assert_bad_request(response)
    response.should.be.a.client_error
    response.status.should.equal 400
    response.should.not.include 'WWW-Authenticate'
  end

  should 'challenge when no credentials are specified' do
    request 'GET', '/' do |response|
      assert_digest_auth_challenge response
    end
  end

  should 'return application output if correct credentials given' do
    request_with_digest_auth 'GET', '/', 'Alice', 'correct-password' do |response|
      response.status.should.equal 200
      response.body.to_s.should.equal 'Hi Alice'
    end
  end

  should 'return application output if correct credentials given (hashed passwords)' do
    @request = Rack::MockRequest.new(protected_app_with_hashed_passwords)

    request_with_digest_auth 'GET', '/', 'Alice', 'correct-password' do |response|
      response.status.should.equal 200
      response.body.to_s.should.equal 'Hi Alice'
    end
  end

  should 'rechallenge if incorrect username given' do
    request_with_digest_auth 'GET', '/', 'Bob', 'correct-password' do |response|
      assert_digest_auth_challenge response
    end
  end

  should 'rechallenge if incorrect password given' do
    request_with_digest_auth 'GET', '/', 'Alice', 'wrong-password' do |response|
      assert_digest_auth_challenge response
    end
  end

  should 'rechallenge if incorrect user and blank password given' do
    request_with_digest_auth 'GET', '/', 'Bob', '' do |response|
      assert_digest_auth_challenge response
    end
  end

  should 'not rechallenge if nonce is not stale' do
    begin
      Rack::Auth::Digest::Nonce.time_limit = 10

      request_with_digest_auth 'GET', '/', 'Alice', 'correct-password', :wait => 1 do |response|
        response.status.should.equal 200
        response.body.to_s.should.equal 'Hi Alice'
        response.headers['WWW-Authenticate'].should.not =~ /\bstale=true\b/
      end
    ensure
      Rack::Auth::Digest::Nonce.time_limit = nil
    end
  end

  should 'rechallenge with stale parameter if nonce is stale' do
    begin
      Rack::Auth::Digest::Nonce.time_limit = 1

      request_with_digest_auth 'GET', '/', 'Alice', 'correct-password', :wait => 2 do |response|
        assert_digest_auth_challenge response
        response.headers['WWW-Authenticate'].should =~ /\bstale=true\b/
      end
    ensure
      Rack::Auth::Digest::Nonce.time_limit = nil
    end
  end

  should 'return 400 Bad Request if incorrect qop given' do
    request_with_digest_auth 'GET', '/', 'Alice', 'correct-password', 'qop' => 'auth-int' do |response|
      assert_bad_request response
    end
  end

  should 'return 400 Bad Request if incorrect uri given' do
    request_with_digest_auth 'GET', '/', 'Alice', 'correct-password', 'uri' => '/foo' do |response|
      assert_bad_request response
    end
  end

  should 'return 400 Bad Request if different auth scheme used' do
    request 'GET', '/', 'HTTP_AUTHORIZATION' => 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' do |response|
      assert_bad_request response
    end
  end

  should 'not require credentials for unprotected path' do
    @request = Rack::MockRequest.new(partially_protected_app)
    request 'GET', '/' do |response|
      response.should.be.ok
    end
  end

  should 'challenge when no credentials are specified for protected path' do
    @request = Rack::MockRequest.new(partially_protected_app)
    request 'GET', '/protected' do |response|
      assert_digest_auth_challenge response
    end
  end

  should 'return application output if correct credentials given for protected path' do
    @request = Rack::MockRequest.new(partially_protected_app)
    request_with_digest_auth 'GET', '/protected', 'Alice', 'correct-password' do |response|
      response.status.should.equal 200
      response.body.to_s.should.equal 'Hi Alice'
    end
  end

  should 'return application output when used with a query string and path as uri' do
    @request = Rack::MockRequest.new(partially_protected_app)
    request_with_digest_auth 'GET', '/protected?friend=Mike', 'Alice', 'correct-password' do |response|
      response.status.should.equal 200
      response.body.to_s.should.equal 'Hi Alice and Mike'
    end
  end

  should 'return application output when used with a query string and fullpath as uri' do
    @request = Rack::MockRequest.new(partially_protected_app)
    qs_uri = '/protected?friend=Mike'
    request_with_digest_auth 'GET', qs_uri, 'Alice', 'correct-password', 'uri' => qs_uri do |response|
      response.status.should.equal 200
      response.body.to_s.should.equal 'Hi Alice and Mike'
    end
  end

  should 'return application output if correct credentials given for POST' do
    request_with_digest_auth 'POST', '/', 'Alice', 'correct-password' do |response|
      response.status.should.equal 200
      response.body.to_s.should.equal 'Hi Alice'
    end
  end

  should 'return application output if correct credentials given for PUT (using method override of POST)' do
    @request = Rack::MockRequest.new(protected_app_with_method_override)
    request_with_digest_auth 'POST', '/', 'Alice', 'correct-password', :input => "_method=put" do |response|
      response.status.should.equal 200
      response.body.to_s.should.equal 'Hi Alice'
    end
  end

  it 'takes realm as optional constructor arg' do
    app = Rack::Auth::Digest::MD5.new(unprotected_app, realm) { true }
    realm.should == app.realm
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_server.rb000064400000013106150402106460016201 0ustar00require 'rack'
require 'rack/server'
require 'tempfile'
require 'socket'
require 'open-uri'

describe Rack::Server do

  def app
    lambda { |env| [200, {'Content-Type' => 'text/plain'}, ['success']] }
  end

  def with_stderr
    old, $stderr = $stderr, StringIO.new
    yield $stderr
  ensure
    $stderr = old
  end

  it "overrides :config if :app is passed in" do
    server = Rack::Server.new(:app => "FOO")
    server.app.should.equal "FOO"
  end

  should "prefer to use :builder when it is passed in" do
    server = Rack::Server.new(:builder => "run lambda { |env| [200, {'Content-Type' => 'text/plain'}, ['success']] }")
    server.app.class.should.equal Proc
    Rack::MockRequest.new(server.app).get("/").body.to_s.should.equal 'success'
  end

  should "allow subclasses to override middleware" do
    server = Class.new(Rack::Server).class_eval { def middleware; Hash.new [] end; self }
    server.middleware['deployment'].should.not.equal []
    server.new(:app => 'foo').middleware['deployment'].should.equal []
  end

  should "allow subclasses to override default middleware" do
    server = Class.new(Rack::Server).instance_eval { def default_middleware_by_environment; Hash.new [] end; self }
    server.middleware['deployment'].should.equal []
    server.new(:app => 'foo').middleware['deployment'].should.equal []
  end

  should "only provide default middleware for development and deployment environments" do
    Rack::Server.default_middleware_by_environment.keys.sort.should.equal %w(deployment development)
  end

  should "always return an empty array for unknown environments" do
    server = Rack::Server.new(:app => 'foo')
    server.middleware['production'].should.equal []
  end

  should "not include Rack::Lint in deployment environment" do
    server = Rack::Server.new(:app => 'foo')
    server.middleware['deployment'].flatten.should.not.include(Rack::Lint)
  end

  should "not include Rack::ShowExceptions in deployment environment" do
    server = Rack::Server.new(:app => 'foo')
    server.middleware['deployment'].flatten.should.not.include(Rack::ShowExceptions)
  end

  should "include Rack::TempfileReaper in deployment environment" do
    server = Rack::Server.new(:app => 'foo')
    server.middleware['deployment'].flatten.should.include(Rack::TempfileReaper)
  end

  should "support CGI" do
    begin
      o, ENV["REQUEST_METHOD"] = ENV["REQUEST_METHOD"], 'foo'
      server = Rack::Server.new(:app => 'foo')
      server.server.name =~ /CGI/
      Rack::Server.logging_middleware.call(server).should.eql(nil)
    ensure
      ENV['REQUEST_METHOD'] = o
    end
  end

  should "be quiet if said so" do
    server = Rack::Server.new(:app => "FOO", :quiet => true)
    Rack::Server.logging_middleware.call(server).should.eql(nil)
  end

  should "use a full path to the pidfile" do
    # avoids issues with daemonize chdir
    opts = Rack::Server.new.send(:parse_options, %w[--pid testing.pid])
    opts[:pid].should.eql(::File.expand_path('testing.pid'))
  end

  should "run a server" do
    pidfile = Tempfile.open('pidfile') { |f| break f }.path
    FileUtils.rm pidfile
    server = Rack::Server.new(
      :app         => app,
      :environment => 'none',
      :pid         => pidfile,
      :Port        => TCPServer.open('127.0.0.1', 0){|s| s.addr[1] },
      :Host        => '127.0.0.1',
      :daemonize   => false,
      :server      => 'webrick'
    )
    t = Thread.new { server.start { |s| Thread.current[:server] = s } }
    t.join(0.01) until t[:server] && t[:server].status != :Stop
    body = open("http://127.0.0.1:#{server.options[:Port]}/") { |f| f.read }
    body.should.eql('success')

    Process.kill(:INT, $$)
    t.join
    open(pidfile) { |f| f.read.should.eql $$.to_s }
  end

  should "check pid file presence and running process" do
    pidfile = Tempfile.open('pidfile') { |f| f.write($$); break f }.path
    server = Rack::Server.new(:pid => pidfile)
    server.send(:pidfile_process_status).should.eql :running
  end

  should "check pid file presence and dead process" do
    dead_pid = `echo $$`.to_i
    pidfile = Tempfile.open('pidfile') { |f| f.write(dead_pid); break f }.path
    server = Rack::Server.new(:pid => pidfile)
    server.send(:pidfile_process_status).should.eql :dead
  end

  should "check pid file presence and exited process" do
    pidfile = Tempfile.open('pidfile') { |f| break f }.path
    ::File.delete(pidfile)
    server = Rack::Server.new(:pid => pidfile)
    server.send(:pidfile_process_status).should.eql :exited
  end

  should "check pid file presence and not owned process" do
    pidfile = Tempfile.open('pidfile') { |f| f.write(1); break f }.path
    server = Rack::Server.new(:pid => pidfile)
    server.send(:pidfile_process_status).should.eql :not_owned
  end

  should "not write pid file when it is created after check" do
    pidfile = Tempfile.open('pidfile') { |f| break f }.path
    ::File.delete(pidfile)
    server = Rack::Server.new(:pid => pidfile)
    ::File.open(pidfile, 'w') { |f| f.write(1) }
    with_stderr do |err|
      should.raise(SystemExit) do
        server.send(:write_pid)
      end
      err.rewind
      output = err.read
      output.should.match(/already running/)
      output.should.include? pidfile
    end
  end

  should "inform the user about existing pidfiles with running processes" do
    pidfile = Tempfile.open('pidfile') { |f| f.write(1); break f }.path
    server = Rack::Server.new(:pid => pidfile)
    with_stderr do |err|
      should.raise(SystemExit) do
        server.start
      end
      err.rewind
      output = err.read
      output.should.match(/already running/)
      output.should.include? pidfile
    end
  end

end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_version.rb000064400000000770150402106460016363 0ustar00# -*- encoding: utf-8 -*-
require 'rack'

describe Rack do
  describe 'version' do
    it 'defaults to a hard-coded api version' do
      Rack.version.should.equal("1.3")
    end
  end
  describe 'release' do
    it 'matches version in .gemspec' do
      gemspec_path = File.join(File.dirname(File.expand_path(__FILE__)), '../rack.gemspec')
      gemspec = Gem::Specification.load(gemspec_path)
      Rack.release.split('.').take(2).should.equal gemspec.version.to_s.split('.').take(2)
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_response.rb000064400000024116150402106460016534 0ustar00require 'rack/response'
require 'stringio'

describe Rack::Response do
  should "have sensible default values" do
    response = Rack::Response.new
    status, header, body = response.finish
    status.should.equal 200
    header.should.equal({})
    body.each { |part|
      part.should.equal ""
    }

    response = Rack::Response.new
    status, header, body = *response
    status.should.equal 200
    header.should.equal({})
    body.each { |part|
      part.should.equal ""
    }
  end

  it "can be written to" do
    response = Rack::Response.new

    _, _, body = response.finish do
      response.write "foo"
      response.write "bar"
      response.write "baz"
    end

    parts = []
    body.each { |part| parts << part }

    parts.should.equal ["foo", "bar", "baz"]
  end

  it "can set and read headers" do
    response = Rack::Response.new
    response["Content-Type"].should.equal nil
    response["Content-Type"] = "text/plain"
    response["Content-Type"].should.equal "text/plain"
  end

  it "can override the initial Content-Type with a different case" do
    response = Rack::Response.new("", 200, "content-type" => "text/plain")
    response["Content-Type"].should.equal "text/plain"
  end

  it "can set cookies" do
    response = Rack::Response.new

    response.set_cookie "foo", "bar"
    response["Set-Cookie"].should.equal "foo=bar"
    response.set_cookie "foo2", "bar2"
    response["Set-Cookie"].should.equal ["foo=bar", "foo2=bar2"].join("\n")
    response.set_cookie "foo3", "bar3"
    response["Set-Cookie"].should.equal ["foo=bar", "foo2=bar2", "foo3=bar3"].join("\n")
  end

  it "can set cookies with the same name for multiple domains" do
    response = Rack::Response.new
    response.set_cookie "foo", {:value => "bar", :domain => "sample.example.com"}
    response.set_cookie "foo", {:value => "bar", :domain => ".example.com"}
    response["Set-Cookie"].should.equal ["foo=bar; domain=sample.example.com", "foo=bar; domain=.example.com"].join("\n")
  end

  it "formats the Cookie expiration date accordingly to RFC 6265" do
    response = Rack::Response.new

    response.set_cookie "foo", {:value => "bar", :expires => Time.now+10}
    response["Set-Cookie"].should.match(
      /expires=..., \d\d ... \d\d\d\d \d\d:\d\d:\d\d .../)
  end

  it "can set secure cookies" do
    response = Rack::Response.new
    response.set_cookie "foo", {:value => "bar", :secure => true}
    response["Set-Cookie"].should.equal "foo=bar; secure"
  end

  it "can set http only cookies" do
    response = Rack::Response.new
    response.set_cookie "foo", {:value => "bar", :httponly => true}
    response["Set-Cookie"].should.equal "foo=bar; HttpOnly"
  end

  it "can set http only cookies with :http_only" do
    response = Rack::Response.new
    response.set_cookie "foo", {:value => "bar", :http_only => true}
    response["Set-Cookie"].should.equal "foo=bar; HttpOnly"
  end

  it "can set prefers :httponly for http only cookie setting when :httponly and :http_only provided" do
    response = Rack::Response.new
    response.set_cookie "foo", {:value => "bar", :httponly => false, :http_only => true}
    response["Set-Cookie"].should.equal "foo=bar"
  end

  it "can delete cookies" do
    response = Rack::Response.new
    response.set_cookie "foo", "bar"
    response.set_cookie "foo2", "bar2"
    response.delete_cookie "foo"
    response["Set-Cookie"].should.equal [
      "foo2=bar2",
      "foo=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 -0000"
    ].join("\n")
  end

  it "can delete cookies with the same name from multiple domains" do
    response = Rack::Response.new
    response.set_cookie "foo", {:value => "bar", :domain => "sample.example.com"}
    response.set_cookie "foo", {:value => "bar", :domain => ".example.com"}
    response["Set-Cookie"].should.equal ["foo=bar; domain=sample.example.com", "foo=bar; domain=.example.com"].join("\n")
    response.delete_cookie "foo", :domain => ".example.com"
    response["Set-Cookie"].should.equal ["foo=bar; domain=sample.example.com", "foo=; domain=.example.com; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 -0000"].join("\n")
    response.delete_cookie "foo", :domain => "sample.example.com"
    response["Set-Cookie"].should.equal ["foo=; domain=.example.com; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 -0000",
                                         "foo=; domain=sample.example.com; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 -0000"].join("\n")
  end

  it "can delete cookies with the same name with different paths" do
    response = Rack::Response.new
    response.set_cookie "foo", {:value => "bar", :path => "/"}
    response.set_cookie "foo", {:value => "bar", :path => "/path"}
    response["Set-Cookie"].should.equal ["foo=bar; path=/",
                                         "foo=bar; path=/path"].join("\n")

    response.delete_cookie "foo", :path => "/path"
    response["Set-Cookie"].should.equal ["foo=bar; path=/",
                                         "foo=; path=/path; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 -0000"].join("\n")
  end

  it "can do redirects" do
    response = Rack::Response.new
    response.redirect "/foo"
    status, header, body = response.finish
    status.should.equal 302
    header["Location"].should.equal "/foo"

    response = Rack::Response.new
    response.redirect "/foo", 307
    status, header, body = response.finish

    status.should.equal 307
  end

  it "has a useful constructor" do
    r = Rack::Response.new("foo")
    status, header, body = r.finish
    str = ""; body.each { |part| str << part }
    str.should.equal "foo"

    r = Rack::Response.new(["foo", "bar"])
    status, header, body = r.finish
    str = ""; body.each { |part| str << part }
    str.should.equal "foobar"

    object_with_each = Object.new
    def object_with_each.each
      yield "foo"
      yield "bar"
    end
    r = Rack::Response.new(object_with_each)
    r.write "foo"
    status, header, body = r.finish
    str = ""; body.each { |part| str << part }
    str.should.equal "foobarfoo"

    r = Rack::Response.new([], 500)
    r.status.should.equal 500

    r = Rack::Response.new([], "200 OK")
    r.status.should.equal 200
  end

  it "has a constructor that can take a block" do
    r = Rack::Response.new { |res|
      res.status = 404
      res.write "foo"
    }
    status, _, body = r.finish
    str = ""; body.each { |part| str << part }
    str.should.equal "foo"
    status.should.equal 404
  end

  it "doesn't return invalid responses" do
    r = Rack::Response.new(["foo", "bar"], 204)
    _, header, body = r.finish
    str = ""; body.each { |part| str << part }
    str.should.be.empty
    header["Content-Type"].should.equal nil
    header['Content-Length'].should.equal nil

    lambda {
      Rack::Response.new(Object.new)
    }.should.raise(TypeError).
      message.should =~ /stringable or iterable required/
  end

  it "knows if it's empty" do
    r = Rack::Response.new
    r.should.be.empty
    r.write "foo"
    r.should.not.be.empty

    r = Rack::Response.new
    r.should.be.empty
    r.finish
    r.should.be.empty

    r = Rack::Response.new
    r.should.be.empty
    r.finish { }
    r.should.not.be.empty
  end

  should "provide access to the HTTP status" do
    res = Rack::Response.new
    res.status = 200
    res.should.be.successful
    res.should.be.ok

    res.status = 201
    res.should.be.successful
    res.should.be.created

    res.status = 202
    res.should.be.successful
    res.should.be.accepted

    res.status = 400
    res.should.not.be.successful
    res.should.be.client_error
    res.should.be.bad_request

    res.status = 401
    res.should.not.be.successful
    res.should.be.client_error
    res.should.be.unauthorized

    res.status = 404
    res.should.not.be.successful
    res.should.be.client_error
    res.should.be.not_found

    res.status = 405
    res.should.not.be.successful
    res.should.be.client_error
    res.should.be.method_not_allowed

    res.status = 418
    res.should.not.be.successful
    res.should.be.client_error
    res.should.be.i_m_a_teapot

    res.status = 422
    res.should.not.be.successful
    res.should.be.client_error
    res.should.be.unprocessable

    res.status = 501
    res.should.not.be.successful
    res.should.be.server_error

    res.status = 307
    res.should.be.redirect
  end

  should "provide access to the HTTP headers" do
    res = Rack::Response.new
    res["Content-Type"] = "text/yaml"

    res.should.include "Content-Type"
    res.headers["Content-Type"].should.equal "text/yaml"
    res["Content-Type"].should.equal "text/yaml"
    res.content_type.should.equal "text/yaml"
    res.content_length.should.be.nil
    res.location.should.be.nil
  end

  it "does not add or change Content-Length when #finish()ing" do
    res = Rack::Response.new
    res.status = 200
    res.finish
    res.headers["Content-Length"].should.be.nil

    res = Rack::Response.new
    res.status = 200
    res.headers["Content-Length"] = "10"
    res.finish
    res.headers["Content-Length"].should.equal "10"
  end

  it "updates Content-Length when body appended to using #write" do
    res = Rack::Response.new
    res.status = 200
    res.headers["Content-Length"].should.be.nil
    res.write "Hi"
    res.headers["Content-Length"].should.equal "2"
    res.write " there"
    res.headers["Content-Length"].should.equal "8"
  end

  it "calls close on #body" do
    res = Rack::Response.new
    res.body = StringIO.new
    res.close
    res.body.should.be.closed
  end

  it "calls close on #body when 204, 205, or 304" do
    res = Rack::Response.new
    res.body = StringIO.new
    res.finish
    res.body.should.not.be.closed

    res.status = 204
    _, _, b = res.finish
    res.body.should.be.closed
    b.should.not.equal res.body

    res.body = StringIO.new
    res.status = 205
    _, _, b = res.finish
    res.body.should.be.closed
    b.should.not.equal res.body

    res.body = StringIO.new
    res.status = 304
    _, _, b = res.finish
    res.body.should.be.closed
    b.should.not.equal res.body
  end

  it "wraps the body from #to_ary to prevent infinite loops" do
    res = Rack::Response.new
    res.finish.last.should.not.respond_to?(:to_ary)
    lambda { res.finish.last.to_ary }.should.raise(NoMethodError)
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_config.rb000064400000001040150402106460016132 0ustar00require 'rack/builder'
require 'rack/config'
require 'rack/content_length'
require 'rack/lint'
require 'rack/mock'

describe Rack::Config do
  should "accept a block that modifies the environment" do
    app = Rack::Builder.new do
      use Rack::Lint
      use Rack::Config do |env|
        env['greeting'] = 'hello'
      end
      run lambda { |env|
        [200, {'Content-Type' => 'text/plain'}, [env['greeting'] || '']]
      }
    end

    response = Rack::MockRequest.new(app).get('/')
    response.body.should.equal('hello')
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_mongrel.rb000064400000013351150402106460016340 0ustar00begin
require 'rack'
require 'rack/handler/mongrel'
require File.expand_path('../testrequest', __FILE__)
require 'timeout'

Thread.abort_on_exception = true
$tcp_defer_accept_opts = nil
$tcp_cork_opts = nil

describe Rack::Handler::Mongrel do
  extend TestRequest::Helpers

  @server = Mongrel::HttpServer.new(@host='127.0.0.1', @port=9201)
  @server.register('/test',
                  Rack::Handler::Mongrel.new(Rack::Lint.new(TestRequest.new)))
  @server.register('/stream',
                  Rack::Handler::Mongrel.new(Rack::Lint.new(StreamingRequest)))
  @acc = @server.run

  should "respond" do
    lambda {
      GET("/test")
    }.should.not.raise
  end

  should "be a Mongrel" do
    GET("/test")
    status.should.equal 200
    response["SERVER_SOFTWARE"].should =~ /Mongrel/
    response["HTTP_VERSION"].should.equal "HTTP/1.1"
    response["SERVER_PROTOCOL"].should.equal "HTTP/1.1"
    response["SERVER_PORT"].should.equal "9201"
    response["SERVER_NAME"].should.equal "127.0.0.1"
  end

  should "have rack headers" do
    GET("/test")
    response["rack.version"].should.equal [1,3]
    response["rack.multithread"].should.be.true
    response["rack.multiprocess"].should.be.false
    response["rack.run_once"].should.be.false
  end

  should "have CGI headers on GET" do
    GET("/test")
    response["REQUEST_METHOD"].should.equal "GET"
    response["SCRIPT_NAME"].should.equal "/test"
    response["REQUEST_PATH"].should.equal "/test"
    response["PATH_INFO"].should.be.equal ""
    response["QUERY_STRING"].should.equal ""
    response["test.postdata"].should.equal ""

    GET("/test/foo?quux=1")
    response["REQUEST_METHOD"].should.equal "GET"
    response["SCRIPT_NAME"].should.equal "/test"
    response["REQUEST_PATH"].should.equal "/test/foo"
    response["PATH_INFO"].should.equal "/foo"
    response["QUERY_STRING"].should.equal "quux=1"
  end

  should "have CGI headers on POST" do
    POST("/test", {"rack-form-data" => "23"}, {'X-test-header' => '42'})
    status.should.equal 200
    response["REQUEST_METHOD"].should.equal "POST"
    response["SCRIPT_NAME"].should.equal "/test"
    response["REQUEST_PATH"].should.equal "/test"
    response["QUERY_STRING"].should.equal ""
    response["HTTP_X_TEST_HEADER"].should.equal "42"
    response["test.postdata"].should.equal "rack-form-data=23"
  end

  should "support HTTP auth" do
    GET("/test", {:user => "ruth", :passwd => "secret"})
    response["HTTP_AUTHORIZATION"].should.equal "Basic cnV0aDpzZWNyZXQ="
  end

  should "set status" do
    GET("/test?secret")
    status.should.equal 403
    response["rack.url_scheme"].should.equal "http"
  end

  should "provide a .run" do
    block_ran = false
    Thread.new {
      Rack::Handler::Mongrel.run(lambda {}, {:Host => '127.0.0.1', :Port => 9211}) { |server|
        server.should.be.kind_of Mongrel::HttpServer
        block_ran = true
      }
    }
    sleep 1
    block_ran.should.be.true
  end

  should "provide a .run that maps a hash" do
    block_ran = false
    Thread.new {
      map = {'/'=>lambda{},'/foo'=>lambda{}}
      Rack::Handler::Mongrel.run(map, :map => true, :Host => '127.0.0.1', :Port => 9221) { |server|
        server.should.be.kind_of Mongrel::HttpServer
        server.classifier.uris.size.should.equal 2
        server.classifier.uris.should.not.include '/arf'
        server.classifier.uris.should.include '/'
        server.classifier.uris.should.include '/foo'
        block_ran = true
      }
    }
    sleep 1
    block_ran.should.be.true
  end

  should "provide a .run that maps a urlmap" do
    block_ran = false
    Thread.new {
      map = Rack::URLMap.new({'/'=>lambda{},'/bar'=>lambda{}})
      Rack::Handler::Mongrel.run(map, {:map => true, :Host => '127.0.0.1', :Port => 9231}) { |server|
        server.should.be.kind_of Mongrel::HttpServer
        server.classifier.uris.size.should.equal 2
        server.classifier.uris.should.not.include '/arf'
        server.classifier.uris.should.include '/'
        server.classifier.uris.should.include '/bar'
        block_ran = true
      }
    }
    sleep 1
    block_ran.should.be.true
  end

  should "provide a .run that maps a urlmap restricting by host" do
    block_ran = false
    Thread.new {
      map = Rack::URLMap.new({
        '/' => lambda{},
        '/foo' => lambda{},
        '/bar' => lambda{},
        'http://127.0.0.1/' => lambda{},
        'http://127.0.0.1/bar' => lambda{},
        'http://falsehost/arf' => lambda{},
        'http://falsehost/qux' => lambda{}
      })
      opt = {:map => true, :Port => 9241, :Host => '127.0.0.1'}
      Rack::Handler::Mongrel.run(map, opt) { |server|
        server.should.be.kind_of Mongrel::HttpServer
        server.classifier.uris.should.include '/'
        server.classifier.handler_map['/'].size.should.equal 2
        server.classifier.uris.should.include '/foo'
        server.classifier.handler_map['/foo'].size.should.equal 1
        server.classifier.uris.should.include '/bar'
        server.classifier.handler_map['/bar'].size.should.equal 2
        server.classifier.uris.should.not.include '/qux'
        server.classifier.uris.should.not.include '/arf'
        server.classifier.uris.size.should.equal 3
        block_ran = true
      }
    }
    sleep 1
    block_ran.should.be.true
  end

  should "stream #each part of the response" do
    body = ''
    begin
      Timeout.timeout(1) do
        Net::HTTP.start(@host, @port) do |http|
          get = Net::HTTP::Get.new('/stream')
          http.request(get) do |response|
            response.read_body { |part| body << part }
          end
        end
      end
    rescue Timeout::Error
    end
    body.should.not.be.empty
  end

  @acc.raise Mongrel::StopServer
end

rescue LoadError
  warn "Skipping Rack::Handler::Mongrel tests (Mongrel is required). `gem install mongrel` and try again."
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_multipart.rb000064400000057177150402106460016734 0ustar00require 'rack/utils'
require 'rack/mock'

describe Rack::Multipart do
  def multipart_fixture(name, boundary = "AaB03x")
    file = multipart_file(name)
    data = File.open(file, 'rb') { |io| io.read }

    type = "multipart/form-data; boundary=#{boundary}"
    length = data.respond_to?(:bytesize) ? data.bytesize : data.size

    { "CONTENT_TYPE" => type,
      "CONTENT_LENGTH" => length.to_s,
      :input => StringIO.new(data) }
  end

  def multipart_file(name)
    File.join(File.dirname(__FILE__), "multipart", name.to_s)
  end

  should "return nil if content type is not multipart" do
    env = Rack::MockRequest.env_for("/",
            "CONTENT_TYPE" => 'application/x-www-form-urlencoded')
    Rack::Multipart.parse_multipart(env).should.equal nil
  end

  should "parse multipart content when content type present but filename is not" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:content_type_and_no_filename))
    params = Rack::Multipart.parse_multipart(env)
    params["text"].should.equal "contents"
  end

  if "<3".respond_to?(:force_encoding)
  should "set US_ASCII encoding based on charset" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:content_type_and_no_filename))
    params = Rack::Multipart.parse_multipart(env)
    params["text"].encoding.should.equal Encoding::US_ASCII

    # I'm not 100% sure if making the param name encoding match the
    # Content-Type charset is the right thing to do.  We should revisit this.
    params.keys.each do |key|
      key.encoding.should.equal Encoding::US_ASCII
    end
  end

  should "set BINARY encoding on things without content type" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:none))
    params = Rack::Multipart.parse_multipart(env)
    params["submit-name"].encoding.should.equal Encoding::UTF_8
  end

  should "set UTF8 encoding on names of things without content type" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:none))
    params = Rack::Multipart.parse_multipart(env)
    params.keys.each do |key|
      key.encoding.should.equal Encoding::UTF_8
    end
  end

  should "default text to UTF8" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:text))
    params = Rack::Multipart.parse_multipart(env)
    params['submit-name'].encoding.should.equal Encoding::UTF_8
    params['submit-name-with-content'].encoding.should.equal Encoding::UTF_8
    params.keys.each do |key|
      key.encoding.should.equal Encoding::UTF_8
    end
  end
  end

  should "raise RangeError if the key space is exhausted" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:content_type_and_no_filename))

    old, Rack::Utils.key_space_limit = Rack::Utils.key_space_limit, 1
    begin
      lambda { Rack::Multipart.parse_multipart(env) }.should.raise(RangeError)
    ensure
      Rack::Utils.key_space_limit = old
    end
  end

  should "parse multipart form webkit style" do
    env = Rack::MockRequest.env_for '/', multipart_fixture(:webkit)
    env['CONTENT_TYPE'] = "multipart/form-data; boundary=----WebKitFormBoundaryWLHCs9qmcJJoyjKR"
    params = Rack::Multipart.parse_multipart(env)
    params['profile']['bio'].should.include 'hello'
  end

  should "reject insanely long boundaries" do
    # using a pipe since a tempfile can use up too much space
    rd, wr = IO.pipe

    # we only call rewind once at start, so make sure it succeeds
    # and doesn't hit ESPIPE
    def rd.rewind; end
    wr.sync = true

    # mock out length to make this pipe look like a Tempfile
    def rd.length
      1024 * 1024 * 8
    end

    # write to a pipe in a background thread, this will write a lot
    # unless Rack (properly) shuts down the read end
    thr = Thread.new do
      begin
        wr.write("--AaB03x")

        # make the initial boundary a few gigs long
        longer = "0123456789" * 1024 * 1024
        (1024 * 1024).times { wr.write(longer) }

        wr.write("\r\n")
        wr.write('Content-Disposition: form-data; name="a"; filename="a.txt"')
        wr.write("\r\n")
        wr.write("Content-Type: text/plain\r\n")
        wr.write("\r\na")
        wr.write("--AaB03x--\r\n")
        wr.close
      rescue => err # this is EPIPE if Rack shuts us down
        err
      end
    end

    fixture = {
      "CONTENT_TYPE" => "multipart/form-data; boundary=AaB03x",
      "CONTENT_LENGTH" => rd.length.to_s,
      :input => rd,
    }

    env = Rack::MockRequest.env_for '/', fixture
    lambda {
      Rack::Multipart.parse_multipart(env)
    }.should.raise(EOFError)
    rd.close

    err = thr.value
    err.should.be.instance_of Errno::EPIPE
    wr.close
  end

  should "parse multipart upload with text file" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:text))
    params = Rack::Multipart.parse_multipart(env)
    params["submit-name"].should.equal "Larry"
    params["submit-name-with-content"].should.equal "Berry"
    params["files"][:type].should.equal "text/plain"
    params["files"][:filename].should.equal "file1.txt"
    params["files"][:head].should.equal "Content-Disposition: form-data; " +
      "name=\"files\"; filename=\"file1.txt\"\r\n" +
      "Content-Type: text/plain\r\n"
    params["files"][:name].should.equal "files"
    params["files"][:tempfile].read.should.equal "contents"
  end

  should "preserve extension in the created tempfile" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:text))
    params = Rack::Multipart.parse_multipart(env)
    File.extname(params["files"][:tempfile].path).should.equal ".txt"
  end

  should "parse multipart upload with text file with no name field" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:filename_and_no_name))
    params = Rack::Multipart.parse_multipart(env)
    params["file1.txt"][:type].should.equal "text/plain"
    params["file1.txt"][:filename].should.equal "file1.txt"
    params["file1.txt"][:head].should.equal "Content-Disposition: form-data; " +
      "filename=\"file1.txt\"\r\n" +
      "Content-Type: text/plain\r\n"
    params["file1.txt"][:name].should.equal "file1.txt"
    params["file1.txt"][:tempfile].read.should.equal "contents"
  end

  should "parse multipart upload file using custom tempfile class" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:text))
    my_tempfile = ""
    env['rack.multipart.tempfile_factory'] = lambda { |filename, content_type| my_tempfile }
    params = Rack::Multipart.parse_multipart(env)
    params["files"][:tempfile].object_id.should.equal my_tempfile.object_id
    my_tempfile.should.equal "contents"
  end

  should "parse multipart upload with nested parameters" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:nested))
    params = Rack::Multipart.parse_multipart(env)
    params["foo"]["submit-name"].should.equal "Larry"
    params["foo"]["files"][:type].should.equal "text/plain"
    params["foo"]["files"][:filename].should.equal "file1.txt"
    params["foo"]["files"][:head].should.equal "Content-Disposition: form-data; " +
      "name=\"foo[files]\"; filename=\"file1.txt\"\r\n" +
      "Content-Type: text/plain\r\n"
    params["foo"]["files"][:name].should.equal "foo[files]"
    params["foo"]["files"][:tempfile].read.should.equal "contents"
  end

  should "parse multipart upload with binary file" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:binary))
    params = Rack::Multipart.parse_multipart(env)
    params["submit-name"].should.equal "Larry"
    params["files"][:type].should.equal "image/png"
    params["files"][:filename].should.equal "rack-logo.png"
    params["files"][:head].should.equal "Content-Disposition: form-data; " +
      "name=\"files\"; filename=\"rack-logo.png\"\r\n" +
      "Content-Type: image/png\r\n"
    params["files"][:name].should.equal "files"
    params["files"][:tempfile].read.length.should.equal 26473
  end

  should "parse multipart upload with empty file" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:empty))
    params = Rack::Multipart.parse_multipart(env)
    params["submit-name"].should.equal "Larry"
    params["files"][:type].should.equal "text/plain"
    params["files"][:filename].should.equal "file1.txt"
    params["files"][:head].should.equal "Content-Disposition: form-data; " +
      "name=\"files\"; filename=\"file1.txt\"\r\n" +
      "Content-Type: text/plain\r\n"
    params["files"][:name].should.equal "files"
    params["files"][:tempfile].read.should.equal ""
  end

  should "parse multipart upload with filename with semicolons" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:semicolon))
    params = Rack::Multipart.parse_multipart(env)
    params["files"][:type].should.equal "text/plain"
    params["files"][:filename].should.equal "fi;le1.txt"
    params["files"][:head].should.equal "Content-Disposition: form-data; " +
      "name=\"files\"; filename=\"fi;le1.txt\"\r\n" +
      "Content-Type: text/plain\r\n"
    params["files"][:name].should.equal "files"
    params["files"][:tempfile].read.should.equal "contents"
  end

  should "parse multipart upload with filename with invalid characters" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:invalid_character))
    params = Rack::Multipart.parse_multipart(env)
    params["files"][:type].should.equal "text/plain"
    params["files"][:filename].should.match(/invalid/)
    head = "Content-Disposition: form-data; " +
      "name=\"files\"; filename=\"invalid\xC3.txt\"\r\n" +
      "Content-Type: text/plain\r\n"
    head = head.force_encoding("ASCII-8BIT") if head.respond_to?(:force_encoding)
    params["files"][:head].should.equal head
    params["files"][:name].should.equal "files"
    params["files"][:tempfile].read.should.equal "contents"
  end

  should "not include file params if no file was selected" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:none))
    params = Rack::Multipart.parse_multipart(env)
    params["submit-name"].should.equal "Larry"
    params["files"].should.equal nil
    params.keys.should.not.include "files"
  end

  should "parse multipart/mixed" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:mixed_files))
    params = Rack::Utils::Multipart.parse_multipart(env)
    params["foo"].should.equal "bar"
    params["files"].should.be.instance_of String
    params["files"].size.should.equal 252
  end

  should "parse multipart/mixed" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:mixed_files))
    params = Rack::Utils::Multipart.parse_multipart(env)
    params["foo"].should.equal "bar"
    params["files"].should.be.instance_of String
    params["files"].size.should.equal 252
  end

  should "parse IE multipart upload and clean up filename" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:ie))
    params = Rack::Multipart.parse_multipart(env)
    params["files"][:type].should.equal "text/plain"
    params["files"][:filename].should.equal "file1.txt"
    params["files"][:head].should.equal "Content-Disposition: form-data; " +
      "name=\"files\"; " +
      'filename="C:\Documents and Settings\Administrator\Desktop\file1.txt"' +
      "\r\nContent-Type: text/plain\r\n"
    params["files"][:name].should.equal "files"
    params["files"][:tempfile].read.should.equal "contents"
  end

  should "parse filename and modification param" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:filename_and_modification_param))
    params = Rack::Multipart.parse_multipart(env)
    params["files"][:type].should.equal "image/jpeg"
    params["files"][:filename].should.equal "genome.jpeg"
    params["files"][:head].should.equal "Content-Type: image/jpeg\r\n" +
      "Content-Disposition: attachment; " +
      "name=\"files\"; " +
      "filename=genome.jpeg; " +
      "modification-date=\"Wed, 12 Feb 1997 16:29:51 -0500\";\r\n" +
      "Content-Description: a complete map of the human genome\r\n"
    params["files"][:name].should.equal "files"
    params["files"][:tempfile].read.should.equal "contents"
  end

  should "parse filename with escaped quotes" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:filename_with_escaped_quotes))
    params = Rack::Multipart.parse_multipart(env)
    params["files"][:type].should.equal "application/octet-stream"
    params["files"][:filename].should.equal "escape \"quotes"
    params["files"][:head].should.equal "Content-Disposition: form-data; " +
      "name=\"files\"; " +
      "filename=\"escape \\\"quotes\"\r\n" +
      "Content-Type: application/octet-stream\r\n"
    params["files"][:name].should.equal "files"
    params["files"][:tempfile].read.should.equal "contents"
  end

  should "parse filename with percent escaped quotes" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:filename_with_percent_escaped_quotes))
    params = Rack::Multipart.parse_multipart(env)
    params["files"][:type].should.equal "application/octet-stream"
    params["files"][:filename].should.equal "escape \"quotes"
    params["files"][:head].should.equal "Content-Disposition: form-data; " +
      "name=\"files\"; " +
      "filename=\"escape %22quotes\"\r\n" +
      "Content-Type: application/octet-stream\r\n"
    params["files"][:name].should.equal "files"
    params["files"][:tempfile].read.should.equal "contents"
  end

  should "parse filename with unescaped quotes" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:filename_with_unescaped_quotes))
    params = Rack::Multipart.parse_multipart(env)
    params["files"][:type].should.equal "application/octet-stream"
    params["files"][:filename].should.equal "escape \"quotes"
    params["files"][:head].should.equal "Content-Disposition: form-data; " +
      "name=\"files\"; " +
      "filename=\"escape \"quotes\"\r\n" +
      "Content-Type: application/octet-stream\r\n"
    params["files"][:name].should.equal "files"
    params["files"][:tempfile].read.should.equal "contents"
  end

  should "parse filename with escaped quotes and modification param" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:filename_with_escaped_quotes_and_modification_param))
    params = Rack::Multipart.parse_multipart(env)
    params["files"][:type].should.equal "image/jpeg"
    params["files"][:filename].should.equal "\"human\" genome.jpeg"
    params["files"][:head].should.equal "Content-Type: image/jpeg\r\n" +
      "Content-Disposition: attachment; " +
      "name=\"files\"; " +
      "filename=\"\"human\" genome.jpeg\"; " +
      "modification-date=\"Wed, 12 Feb 1997 16:29:51 -0500\";\r\n" +
      "Content-Description: a complete map of the human genome\r\n"
    params["files"][:name].should.equal "files"
    params["files"][:tempfile].read.should.equal "contents"
  end

  should "parse filename with unescaped percentage characters" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:filename_with_unescaped_percentages, "----WebKitFormBoundary2NHc7OhsgU68l3Al"))
    params = Rack::Multipart.parse_multipart(env)
    files = params["document"]["attachment"]
    files[:type].should.equal "image/jpeg"
    files[:filename].should.equal "100% of a photo.jpeg"
    files[:head].should.equal <<-MULTIPART
Content-Disposition: form-data; name="document[attachment]"; filename="100% of a photo.jpeg"\r
Content-Type: image/jpeg\r
    MULTIPART

    files[:name].should.equal "document[attachment]"
    files[:tempfile].read.should.equal "contents"
  end

  should "parse filename with unescaped percentage characters that look like partial hex escapes" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:filename_with_unescaped_percentages2, "----WebKitFormBoundary2NHc7OhsgU68l3Al"))
    params = Rack::Multipart.parse_multipart(env)
    files = params["document"]["attachment"]
    files[:type].should.equal "image/jpeg"
    files[:filename].should.equal "100%a"
    files[:head].should.equal <<-MULTIPART
Content-Disposition: form-data; name="document[attachment]"; filename="100%a"\r
Content-Type: image/jpeg\r
    MULTIPART

    files[:name].should.equal "document[attachment]"
    files[:tempfile].read.should.equal "contents"
  end

  should "parse filename with unescaped percentage characters that look like partial hex escapes" do
    env = Rack::MockRequest.env_for("/", multipart_fixture(:filename_with_unescaped_percentages3, "----WebKitFormBoundary2NHc7OhsgU68l3Al"))
    params = Rack::Multipart.parse_multipart(env)
    files = params["document"]["attachment"]
    files[:type].should.equal "image/jpeg"
    files[:filename].should.equal "100%"
    files[:head].should.equal <<-MULTIPART
Content-Disposition: form-data; name="document[attachment]"; filename="100%"\r
Content-Type: image/jpeg\r
    MULTIPART

    files[:name].should.equal "document[attachment]"
    files[:tempfile].read.should.equal "contents"
  end

  it "rewinds input after parsing upload" do
    options = multipart_fixture(:text)
    input = options[:input]
    env = Rack::MockRequest.env_for("/", options)
    params = Rack::Multipart.parse_multipart(env)
    params["submit-name"].should.equal "Larry"
    params["files"][:filename].should.equal "file1.txt"
    input.read.length.should.equal 307
  end

  it "builds multipart body" do
    files = Rack::Multipart::UploadedFile.new(multipart_file("file1.txt"))
    data  = Rack::Multipart.build_multipart("submit-name" => "Larry", "files" => files)

    options = {
      "CONTENT_TYPE" => "multipart/form-data; boundary=AaB03x",
      "CONTENT_LENGTH" => data.length.to_s,
      :input => StringIO.new(data)
    }
    env = Rack::MockRequest.env_for("/", options)
    params = Rack::Multipart.parse_multipart(env)
    params["submit-name"].should.equal "Larry"
    params["files"][:filename].should.equal "file1.txt"
    params["files"][:tempfile].read.should.equal "contents"
  end

  it "builds nested multipart body" do
    files = Rack::Multipart::UploadedFile.new(multipart_file("file1.txt"))
    data  = Rack::Multipart.build_multipart("people" => [{"submit-name" => "Larry", "files" => files}])

    options = {
      "CONTENT_TYPE" => "multipart/form-data; boundary=AaB03x",
      "CONTENT_LENGTH" => data.length.to_s,
      :input => StringIO.new(data)
    }
    env = Rack::MockRequest.env_for("/", options)
    params = Rack::Multipart.parse_multipart(env)
    params["people"][0]["submit-name"].should.equal "Larry"
    params["people"][0]["files"][:filename].should.equal "file1.txt"
    params["people"][0]["files"][:tempfile].read.should.equal "contents"
  end

  it "can parse fields that end at the end of the buffer" do
    input = File.read(multipart_file("bad_robots"))

    req = Rack::Request.new Rack::MockRequest.env_for("/",
                      "CONTENT_TYPE" => "multipart/form-data, boundary=1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon",
                      "CONTENT_LENGTH" => input.size,
                      :input => input)

    req.POST['file.path'].should.equal "/var/tmp/uploads/4/0001728414"
    req.POST['addresses'].should.not.equal nil
  end

  it "builds complete params with the chunk size of 16384 slicing exactly on boundary" do
    begin
      previous_limit = Rack::Utils.multipart_part_limit
      Rack::Utils.multipart_part_limit = 256

      data = File.open(multipart_file("fail_16384_nofile"), 'rb') { |f| f.read }.gsub(/\n/, "\r\n")
      options = {
        "CONTENT_TYPE" => "multipart/form-data; boundary=----WebKitFormBoundaryWsY0GnpbI5U7ztzo",
        "CONTENT_LENGTH" => data.length.to_s,
        :input => StringIO.new(data)
      }
      env = Rack::MockRequest.env_for("/", options)
      params = Rack::Multipart.parse_multipart(env)

      params.should.not.equal nil
      params.keys.should.include "AAAAAAAAAAAAAAAAAAA"
      params["AAAAAAAAAAAAAAAAAAA"].keys.should.include "PLAPLAPLA_MEMMEMMEMM_ATTRATTRER"
      params["AAAAAAAAAAAAAAAAAAA"]["PLAPLAPLA_MEMMEMMEMM_ATTRATTRER"].keys.should.include "new"
      params["AAAAAAAAAAAAAAAAAAA"]["PLAPLAPLA_MEMMEMMEMM_ATTRATTRER"]["new"].keys.should.include "-2"
      params["AAAAAAAAAAAAAAAAAAA"]["PLAPLAPLA_MEMMEMMEMM_ATTRATTRER"]["new"]["-2"].keys.should.include "ba_unit_id"
      params["AAAAAAAAAAAAAAAAAAA"]["PLAPLAPLA_MEMMEMMEMM_ATTRATTRER"]["new"]["-2"]["ba_unit_id"].should.equal "1017"
    ensure
      Rack::Utils.multipart_part_limit = previous_limit
    end
  end

 should "not reach a multi-part limit" do
    begin
      previous_limit = Rack::Utils.multipart_part_limit
      Rack::Utils.multipart_part_limit = 4

      env = Rack::MockRequest.env_for '/', multipart_fixture(:three_files_three_fields)
      params = Rack::Multipart.parse_multipart(env)
      params['reply'].should.equal 'yes'
      params['to'].should.equal 'people'
      params['from'].should.equal 'others'
    ensure
      Rack::Utils.multipart_part_limit = previous_limit
    end
  end

  should "reach a multipart limit" do
    begin
      previous_limit = Rack::Utils.multipart_part_limit
      Rack::Utils.multipart_part_limit = 3

      env = Rack::MockRequest.env_for '/', multipart_fixture(:three_files_three_fields)
      lambda { Rack::Multipart.parse_multipart(env) }.should.raise(Rack::Multipart::MultipartPartLimitError)
    ensure
      Rack::Utils.multipart_part_limit = previous_limit
    end
  end

  should "return nil if no UploadedFiles were used" do
    data = Rack::Multipart.build_multipart("people" => [{"submit-name" => "Larry", "files" => "contents"}])
    data.should.equal nil
  end

  should "raise ArgumentError if params is not a Hash" do
    lambda { Rack::Multipart.build_multipart("foo=bar") }.
      should.raise(ArgumentError).
      message.should.equal "value must be a Hash"
  end

  it "can parse fields with a content type" do
    data = <<-EOF
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon\r
Content-Disposition: form-data; name="description"\r
Content-Type: text/plain"\r
\r
Very very blue\r
--1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon--\r
EOF
    options = {
      "CONTENT_TYPE" => "multipart/form-data; boundary=1yy3laWhgX31qpiHinh67wJXqKalukEUTvqTzmon",
      "CONTENT_LENGTH" => data.length.to_s,
      :input => StringIO.new(data)
    }
    env = Rack::MockRequest.env_for("/", options)
    params = Rack::Utils::Multipart.parse_multipart(env)

    params.should.equal({"description"=>"Very very blue"})
  end

  should "parse multipart upload with no content-length header" do
    env = Rack::MockRequest.env_for '/', multipart_fixture(:webkit)
    env['CONTENT_TYPE'] = "multipart/form-data; boundary=----WebKitFormBoundaryWLHCs9qmcJJoyjKR"
    env.delete 'CONTENT_LENGTH'
    params = Rack::Multipart.parse_multipart(env)
    params['profile']['bio'].should.include 'hello'
  end

  should "parse very long unquoted multipart file names" do
    data = <<-EOF
--AaB03x\r
Content-Type: text/plain\r
Content-Disposition: attachment; name=file; filename=#{'long' * 100}\r
\r
contents\r
--AaB03x--\r
    EOF

    options = {
      "CONTENT_TYPE" => "multipart/form-data; boundary=AaB03x",
      "CONTENT_LENGTH" => data.length.to_s,
      :input => StringIO.new(data)
    }
    env = Rack::MockRequest.env_for("/", options)
    params = Rack::Utils::Multipart.parse_multipart(env)

    params["file"][:filename].should.equal('long' * 100)
  end

  should "support mixed case metadata" do
    file = multipart_file(:text)
    data = File.open(file, 'rb') { |io| io.read }

    type = "Multipart/Form-Data; Boundary=AaB03x"
    length = data.respond_to?(:bytesize) ? data.bytesize : data.size

    e = { "CONTENT_TYPE" => type,
      "CONTENT_LENGTH" => length.to_s,
      :input => StringIO.new(data) }

    env = Rack::MockRequest.env_for("/", e)
    params = Rack::Multipart.parse_multipart(env)
    params["submit-name"].should.equal "Larry"
    params["submit-name-with-content"].should.equal "Berry"
    params["files"][:type].should.equal "text/plain"
    params["files"][:filename].should.equal "file1.txt"
    params["files"][:head].should.equal "Content-Disposition: form-data; " +
      "name=\"files\"; filename=\"file1.txt\"\r\n" +
      "Content-Type: text/plain\r\n"
    params["files"][:name].should.equal "files"
    params["files"][:tempfile].read.should.equal "contents"
  end

end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_session_abstract_id.rb000064400000002454150402106460020721 0ustar00### WARNING: there be hax in this file.

require 'rack/session/abstract/id'

describe Rack::Session::Abstract::ID do
  id = Rack::Session::Abstract::ID

  def silence_warning
    o, $VERBOSE = $VERBOSE, nil
    yield
  ensure
    $VERBOSE = o
  end

  def reload_id
    $".delete $".find { |part| part =~ %r{session/abstract/id.rb} }
    silence_warning { require 'rack/session/abstract/id' }
  end

  should "use securerandom when available" do
    begin
      fake = false
      silence_warning do
        ::SecureRandom = fake = true unless defined?(SecureRandom)
      end
      reload_id
      id::DEFAULT_OPTIONS[:secure_random].should.eql(fake || SecureRandom)
    ensure
      Object.send(:remove_const, :SecureRandom) if fake
    end
  end

  should "not use securerandom when unavailable" do
    begin
      sr = Object.send(:remove_const, :SecureRandom) if defined?(SecureRandom)
      reload_id
      id::DEFAULT_OPTIONS[:secure_random].should.eql false
    ensure
      ::SecureRandom = sr if defined?(sr)
    end
  end

  should "allow to use another securerandom provider" do
    secure_random = Class.new do
      def hex(*args)
        'fake_hex'
      end
    end
    id = Rack::Session::Abstract::ID.new nil, :secure_random => secure_random.new
    id.send(:generate_sid).should.eql 'fake_hex'
  end

end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_auth_basic.rb000064400000004413150402106460016776 0ustar00require 'rack/auth/basic'
require 'rack/lint'
require 'rack/mock'

describe Rack::Auth::Basic do
  def realm
    'WallysWorld'
  end

  def unprotected_app
    Rack::Lint.new lambda { |env|
      [ 200, {'Content-Type' => 'text/plain'}, ["Hi #{env['REMOTE_USER']}"] ]
    }
  end

  def protected_app
    app = Rack::Auth::Basic.new(unprotected_app) { |username, password| 'Boss' == username }
    app.realm = realm
    app
  end

  before do
    @request = Rack::MockRequest.new(protected_app)
  end

  def request_with_basic_auth(username, password, &block)
    request 'HTTP_AUTHORIZATION' => 'Basic ' + ["#{username}:#{password}"].pack("m*"), &block
  end

  def request(headers = {})
    yield @request.get('/', headers)
  end

  def assert_basic_auth_challenge(response)
    response.should.be.a.client_error
    response.status.should.equal 401
    response.should.include 'WWW-Authenticate'
    response.headers['WWW-Authenticate'].should =~ /Basic realm="#{Regexp.escape(realm)}"/
    response.body.should.be.empty
  end

  should 'challenge correctly when no credentials are specified' do
    request do |response|
      assert_basic_auth_challenge response
    end
  end

  should 'rechallenge if incorrect credentials are specified' do
    request_with_basic_auth 'joe', 'password' do |response|
      assert_basic_auth_challenge response
    end
  end

  should 'return application output if correct credentials are specified' do
    request_with_basic_auth 'Boss', 'password' do |response|
      response.status.should.equal 200
      response.body.to_s.should.equal 'Hi Boss'
    end
  end

  should 'return 400 Bad Request if different auth scheme used' do
    request 'HTTP_AUTHORIZATION' => 'Digest params' do |response|
      response.should.be.a.client_error
      response.status.should.equal 400
      response.should.not.include 'WWW-Authenticate'
    end
  end

  should 'return 400 Bad Request for a malformed authorization header' do
    request 'HTTP_AUTHORIZATION' => '' do |response|
      response.should.be.a.client_error
      response.status.should.equal 400
      response.should.not.include 'WWW-Authenticate'
    end
  end

  it 'takes realm as optional constructor arg' do
    app = Rack::Auth::Basic.new(unprotected_app, realm) { true }
    realm.should == app.realm
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_session_pool.rb000064400000015043150402106460017411 0ustar00require 'thread'
require 'rack/lint'
require 'rack/mock'
require 'rack/session/pool'

describe Rack::Session::Pool do
  session_key = Rack::Session::Pool::DEFAULT_OPTIONS[:key]
  session_match = /#{session_key}=[0-9a-fA-F]+;/

  incrementor = lambda do |env|
    env["rack.session"]["counter"] ||= 0
    env["rack.session"]["counter"] += 1
    Rack::Response.new(env["rack.session"].inspect).to_a
  end

  session_id = Rack::Lint.new(lambda do |env|
    Rack::Response.new(env["rack.session"].inspect).to_a
  end)

  nothing = Rack::Lint.new(lambda do |env|
    Rack::Response.new("Nothing").to_a
  end)

  drop_session = Rack::Lint.new(lambda do |env|
    env['rack.session.options'][:drop] = true
    incrementor.call(env)
  end)

  renew_session = Rack::Lint.new(lambda do |env|
    env['rack.session.options'][:renew] = true
    incrementor.call(env)
  end)

  defer_session = Rack::Lint.new(lambda do |env|
    env['rack.session.options'][:defer] = true
    incrementor.call(env)
  end)
  
  incrementor = Rack::Lint.new(incrementor)

  it "creates a new cookie" do
    pool = Rack::Session::Pool.new(incrementor)
    res = Rack::MockRequest.new(pool).get("/")
    res["Set-Cookie"].should.match session_match
    res.body.should.equal '{"counter"=>1}'
  end

  it "determines session from a cookie" do
    pool = Rack::Session::Pool.new(incrementor)
    req = Rack::MockRequest.new(pool)
    cookie = req.get("/")["Set-Cookie"]
    req.get("/", "HTTP_COOKIE" => cookie).
      body.should.equal '{"counter"=>2}'
    req.get("/", "HTTP_COOKIE" => cookie).
      body.should.equal '{"counter"=>3}'
  end

  it "survives nonexistant cookies" do
    pool = Rack::Session::Pool.new(incrementor)
    res = Rack::MockRequest.new(pool).
      get("/", "HTTP_COOKIE" => "#{session_key}=blarghfasel")
    res.body.should.equal '{"counter"=>1}'
  end

  it "does not send the same session id if it did not change" do
    pool = Rack::Session::Pool.new(incrementor)
    req = Rack::MockRequest.new(pool)

    res0 = req.get("/")
    cookie = res0["Set-Cookie"][session_match]
    res0.body.should.equal '{"counter"=>1}'
    pool.pool.size.should.equal 1

    res1 = req.get("/", "HTTP_COOKIE" => cookie)
    res1["Set-Cookie"].should.be.nil
    res1.body.should.equal '{"counter"=>2}'
    pool.pool.size.should.equal 1

    res2 = req.get("/", "HTTP_COOKIE" => cookie)
    res2["Set-Cookie"].should.be.nil
    res2.body.should.equal '{"counter"=>3}'
    pool.pool.size.should.equal 1
  end

  it "deletes cookies with :drop option" do
    pool = Rack::Session::Pool.new(incrementor)
    req = Rack::MockRequest.new(pool)
    drop = Rack::Utils::Context.new(pool, drop_session)
    dreq = Rack::MockRequest.new(drop)

    res1 = req.get("/")
    session = (cookie = res1["Set-Cookie"])[session_match]
    res1.body.should.equal '{"counter"=>1}'
    pool.pool.size.should.equal 1

    res2 = dreq.get("/", "HTTP_COOKIE" => cookie)
    res2["Set-Cookie"].should.be.nil
    res2.body.should.equal '{"counter"=>2}'
    pool.pool.size.should.equal 0

    res3 = req.get("/", "HTTP_COOKIE" => cookie)
    res3["Set-Cookie"][session_match].should.not.equal session
    res3.body.should.equal '{"counter"=>1}'
    pool.pool.size.should.equal 1
  end

  it "provides new session id with :renew option" do
    pool = Rack::Session::Pool.new(incrementor)
    req = Rack::MockRequest.new(pool)
    renew = Rack::Utils::Context.new(pool, renew_session)
    rreq = Rack::MockRequest.new(renew)

    res1 = req.get("/")
    session = (cookie = res1["Set-Cookie"])[session_match]
    res1.body.should.equal '{"counter"=>1}'
    pool.pool.size.should.equal 1

    res2 = rreq.get("/", "HTTP_COOKIE" => cookie)
    new_cookie = res2["Set-Cookie"]
    new_session = new_cookie[session_match]
    new_session.should.not.equal session
    res2.body.should.equal '{"counter"=>2}'
    pool.pool.size.should.equal 1

    res3 = req.get("/", "HTTP_COOKIE" => new_cookie)
    res3.body.should.equal '{"counter"=>3}'
    pool.pool.size.should.equal 1

    res4 = req.get("/", "HTTP_COOKIE" => cookie)
    res4.body.should.equal '{"counter"=>1}'
    pool.pool.size.should.equal 2
  end

  it "omits cookie with :defer option" do
    pool = Rack::Session::Pool.new(incrementor)
    defer = Rack::Utils::Context.new(pool, defer_session)
    dreq = Rack::MockRequest.new(defer)

    res1 = dreq.get("/")
    res1["Set-Cookie"].should.equal nil
    res1.body.should.equal '{"counter"=>1}'
    pool.pool.size.should.equal 1
  end

  # anyone know how to do this better?
  it "should merge sessions when multithreaded" do
    unless $DEBUG
      1.should.equal 1
      next
    end

    warn 'Running multithread tests for Session::Pool'
    pool = Rack::Session::Pool.new(incrementor)
    req = Rack::MockRequest.new(pool)

    res = req.get('/')
    res.body.should.equal '{"counter"=>1}'
    cookie = res["Set-Cookie"]
    sess_id = cookie[/#{pool.key}=([^,;]+)/,1]

    delta_incrementor = lambda do |env|
      # emulate disconjoinment of threading
      env['rack.session'] = env['rack.session'].dup
      Thread.stop
      env['rack.session'][(Time.now.usec*rand).to_i] = true
      incrementor.call(env)
    end
    tses = Rack::Utils::Context.new pool, delta_incrementor
    treq = Rack::MockRequest.new(tses)
    tnum = rand(7).to_i+5
    r = Array.new(tnum) do
      Thread.new(treq) do |run|
        run.get('/', "HTTP_COOKIE" => cookie, 'rack.multithread' => true)
      end
    end.reverse.map{|t| t.run.join.value }
    r.each do |resp|
      resp['Set-Cookie'].should.equal cookie
      resp.body.should.include '"counter"=>2'
    end

    session = pool.pool[sess_id]
    session.size.should.equal tnum+1 # counter
    session['counter'].should.equal 2 # meeeh
  end

  it "does not return a cookie if cookie was not read/written" do
    app = Rack::Session::Pool.new(nothing)
    res = Rack::MockRequest.new(app).get("/")
    res["Set-Cookie"].should.be.nil
  end

  it "does not return a cookie if cookie was not written (only read)" do
    app = Rack::Session::Pool.new(session_id)
    res = Rack::MockRequest.new(app).get("/")
    res["Set-Cookie"].should.be.nil
  end

  it "returns even if not read/written if :expire_after is set" do
    app = Rack::Session::Pool.new(nothing, :expire_after => 3600)
    res = Rack::MockRequest.new(app).get("/", 'rack.session' => {'not' => 'empty'})
    res["Set-Cookie"].should.not.be.nil
  end

  it "returns no cookie if no data was written and no session was created previously, even if :expire_after is set" do
    app = Rack::Session::Pool.new(nothing, :expire_after => 3600)
    res = Rack::MockRequest.new(app).get("/")
    res["Set-Cookie"].should.be.nil
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_utils.rb000064400000061624150402106460016043 0ustar00# -*- encoding: utf-8 -*-
require 'rack/utils'
require 'rack/mock'
require 'timeout'

describe Rack::Utils do

  # A helper method which checks
  # if certain query parameters 
  # are equal.
  def equal_query_to(query)
    parts = query.split('&')
    lambda{|other| (parts & other.split('&')) == parts }
  end

  def kcodeu
    one8 = RUBY_VERSION.to_f < 1.9
    default_kcode, $KCODE = $KCODE, 'U' if one8
    yield
  ensure
    $KCODE = default_kcode if one8
  end

  should "round trip binary data" do
    r = [218, 0].pack 'CC'
    if defined?(::Encoding)
      z = Rack::Utils.unescape(Rack::Utils.escape(r), Encoding::BINARY)
    else
      z = Rack::Utils.unescape(Rack::Utils.escape(r))
    end
    r.should.equal z
  end

  should "escape correctly" do
    Rack::Utils.escape("fo<o>bar").should.equal "fo%3Co%3Ebar"
    Rack::Utils.escape("a space").should.equal "a+space"
    Rack::Utils.escape("q1!2\"'w$5&7/z8)?\\").
      should.equal "q1%212%22%27w%245%267%2Fz8%29%3F%5C"
  end

  should "escape correctly for multibyte characters" do
    matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsumoto
    matz_name.force_encoding("UTF-8") if matz_name.respond_to? :force_encoding
    Rack::Utils.escape(matz_name).should.equal '%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8'
    matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsu moto
    matz_name_sep.force_encoding("UTF-8") if matz_name_sep.respond_to? :force_encoding
    Rack::Utils.escape(matz_name_sep).should.equal '%E3%81%BE%E3%81%A4+%E3%82%82%E3%81%A8'
  end

  if RUBY_VERSION[/^\d+\.\d+/] == '1.8'
    should "escape correctly for multibyte characters if $KCODE is set to 'U'" do
      kcodeu do
        matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsumoto
        matz_name.force_encoding("UTF-8") if matz_name.respond_to? :force_encoding
        Rack::Utils.escape(matz_name).should.equal '%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8'
        matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsu moto
        matz_name_sep.force_encoding("UTF-8") if matz_name_sep.respond_to? :force_encoding
        Rack::Utils.escape(matz_name_sep).should.equal '%E3%81%BE%E3%81%A4+%E3%82%82%E3%81%A8'
      end
    end

    should "unescape multibyte characters correctly if $KCODE is set to 'U'" do
      kcodeu do
        Rack::Utils.unescape('%E3%81%BE%E3%81%A4+%E3%82%82%E3%81%A8').should.equal(
          "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0])
      end
    end
  end

  should "escape objects that responds to to_s" do
    kcodeu do
      Rack::Utils.escape(:id).should.equal "id"
    end
  end

  if "".respond_to?(:encode)
    should "escape non-UTF8 strings" do
      Rack::Utils.escape("ø".encode("ISO-8859-1")).should.equal "%F8"
    end
  end
  
  should "not hang on escaping long strings that end in % (http://redmine.ruby-lang.org/issues/5149)" do
    lambda {
      timeout(1) do
        lambda {
          URI.decode_www_form_component "A string that causes catastrophic backtracking as it gets longer %"
        }.should.raise(ArgumentError)
      end
    }.should.not.raise(Timeout::Error)
  end

  should "escape path spaces with %20" do
    Rack::Utils.escape_path("foo bar").should.equal  "foo%20bar"
  end

  should "unescape correctly" do
    Rack::Utils.unescape("fo%3Co%3Ebar").should.equal "fo<o>bar"
    Rack::Utils.unescape("a+space").should.equal "a space"
    Rack::Utils.unescape("a%20space").should.equal "a space"
    Rack::Utils.unescape("q1%212%22%27w%245%267%2Fz8%29%3F%5C").
      should.equal "q1!2\"'w$5&7/z8)?\\"
  end

  should "parse query strings correctly" do
    Rack::Utils.parse_query("foo=bar").
      should.equal "foo" => "bar"
    Rack::Utils.parse_query("foo=\"bar\"").
      should.equal "foo" => "\"bar\""
    Rack::Utils.parse_query("foo=bar&foo=quux").
      should.equal "foo" => ["bar", "quux"]
    Rack::Utils.parse_query("foo=1&bar=2").
      should.equal "foo" => "1", "bar" => "2"
    Rack::Utils.parse_query("my+weird+field=q1%212%22%27w%245%267%2Fz8%29%3F").
      should.equal "my weird field" => "q1!2\"'w$5&7/z8)?"
    Rack::Utils.parse_query("foo%3Dbaz=bar").should.equal "foo=baz" => "bar"
    Rack::Utils.parse_query("=").should.equal "" => ""
    Rack::Utils.parse_query("=value").should.equal "" => "value"
    Rack::Utils.parse_query("key=").should.equal "key" => ""
    Rack::Utils.parse_query("&key&").should.equal "key" => nil
    Rack::Utils.parse_query(";key;", ";,").should.equal "key" => nil
    Rack::Utils.parse_query(",key,", ";,").should.equal "key" => nil
    Rack::Utils.parse_query(";foo=bar,;", ";,").should.equal "foo" => "bar"
    Rack::Utils.parse_query(",foo=bar;,", ";,").should.equal "foo" => "bar"
  end

  should "not create infinite loops with cycle structures" do
    ex = { "foo" => nil }
    ex["foo"] = ex

    params = Rack::Utils::KeySpaceConstrainedParams.new
    params['foo'] = params
    lambda {
      params.to_params_hash.to_s.should.equal ex.to_s
    }.should.not.raise
  end

  should "raise an exception if the params are too deep" do
    len = Rack::Utils.param_depth_limit

    lambda {
      Rack::Utils.parse_nested_query("foo#{"[a]" * len}=bar")
    }.should.raise(RangeError)

    lambda {
      Rack::Utils.parse_nested_query("foo#{"[a]" * (len - 1)}=bar")
    }.should.not.raise
  end

  should "parse nested query strings correctly" do
    Rack::Utils.parse_nested_query("foo").
      should.equal "foo" => nil
    Rack::Utils.parse_nested_query("foo=").
      should.equal "foo" => ""
    Rack::Utils.parse_nested_query("foo=bar").
      should.equal "foo" => "bar"
    Rack::Utils.parse_nested_query("foo=\"bar\"").
      should.equal "foo" => "\"bar\""

    Rack::Utils.parse_nested_query("foo=bar&foo=quux").
      should.equal "foo" => "quux"
    Rack::Utils.parse_nested_query("foo&foo=").
      should.equal "foo" => ""
    Rack::Utils.parse_nested_query("foo=1&bar=2").
      should.equal "foo" => "1", "bar" => "2"
    Rack::Utils.parse_nested_query("&foo=1&&bar=2").
      should.equal "foo" => "1", "bar" => "2"
    Rack::Utils.parse_nested_query("foo&bar=").
      should.equal "foo" => nil, "bar" => ""
    Rack::Utils.parse_nested_query("foo=bar&baz=").
      should.equal "foo" => "bar", "baz" => ""
    Rack::Utils.parse_nested_query("my+weird+field=q1%212%22%27w%245%267%2Fz8%29%3F").
      should.equal "my weird field" => "q1!2\"'w$5&7/z8)?"

    Rack::Utils.parse_nested_query("a=b&pid%3D1234=1023").
      should.equal "pid=1234" => "1023", "a" => "b"

    Rack::Utils.parse_nested_query("foo[]").
      should.equal "foo" => [nil]
    Rack::Utils.parse_nested_query("foo[]=").
      should.equal "foo" => [""]
    Rack::Utils.parse_nested_query("foo[]=bar").
      should.equal "foo" => ["bar"]
    Rack::Utils.parse_nested_query("foo[]=bar&foo").
      should.equal "foo" => nil
    Rack::Utils.parse_nested_query("foo[]=bar&foo[").
      should.equal "foo" => ["bar"], "foo[" => nil
    Rack::Utils.parse_nested_query("foo[]=bar&foo[=baz").
      should.equal "foo" => ["bar"], "foo[" => "baz"
    Rack::Utils.parse_nested_query("foo[]=bar&foo[]").
      should.equal "foo" => ["bar", nil]
    Rack::Utils.parse_nested_query("foo[]=bar&foo[]=").
      should.equal "foo" => ["bar", ""]

    Rack::Utils.parse_nested_query("foo[]=1&foo[]=2").
      should.equal "foo" => ["1", "2"]
    Rack::Utils.parse_nested_query("foo=bar&baz[]=1&baz[]=2&baz[]=3").
      should.equal "foo" => "bar", "baz" => ["1", "2", "3"]
    Rack::Utils.parse_nested_query("foo[]=bar&baz[]=1&baz[]=2&baz[]=3").
      should.equal "foo" => ["bar"], "baz" => ["1", "2", "3"]

    Rack::Utils.parse_nested_query("x[y][z]=1").
      should.equal "x" => {"y" => {"z" => "1"}}
    Rack::Utils.parse_nested_query("x[y][z][]=1").
      should.equal "x" => {"y" => {"z" => ["1"]}}
    Rack::Utils.parse_nested_query("x[y][z]=1&x[y][z]=2").
      should.equal "x" => {"y" => {"z" => "2"}}
    Rack::Utils.parse_nested_query("x[y][z][]=1&x[y][z][]=2").
      should.equal "x" => {"y" => {"z" => ["1", "2"]}}

    Rack::Utils.parse_nested_query("x[y][][z]=1").
      should.equal "x" => {"y" => [{"z" => "1"}]}
    Rack::Utils.parse_nested_query("x[y][][z][]=1").
      should.equal "x" => {"y" => [{"z" => ["1"]}]}
    Rack::Utils.parse_nested_query("x[y][][z]=1&x[y][][w]=2").
      should.equal "x" => {"y" => [{"z" => "1", "w" => "2"}]}

    Rack::Utils.parse_nested_query("x[y][][v][w]=1").
      should.equal "x" => {"y" => [{"v" => {"w" => "1"}}]}
    Rack::Utils.parse_nested_query("x[y][][z]=1&x[y][][v][w]=2").
      should.equal "x" => {"y" => [{"z" => "1", "v" => {"w" => "2"}}]}

    Rack::Utils.parse_nested_query("x[y][][z]=1&x[y][][z]=2").
      should.equal "x" => {"y" => [{"z" => "1"}, {"z" => "2"}]}
    Rack::Utils.parse_nested_query("x[y][][z]=1&x[y][][w]=a&x[y][][z]=2&x[y][][w]=3").
      should.equal "x" => {"y" => [{"z" => "1", "w" => "a"}, {"z" => "2", "w" => "3"}]}

    lambda { Rack::Utils.parse_nested_query("x[y]=1&x[y]z=2") }.
      should.raise(Rack::Utils::ParameterTypeError).
      message.should.equal "expected Hash (got String) for param `y'"

    lambda { Rack::Utils.parse_nested_query("x[y]=1&x[]=1") }.
      should.raise(Rack::Utils::ParameterTypeError).
      message.should.match(/expected Array \(got [^)]*\) for param `x'/)

    lambda { Rack::Utils.parse_nested_query("x[y]=1&x[y][][w]=2") }.
      should.raise(Rack::Utils::ParameterTypeError).
      message.should.equal "expected Array (got String) for param `y'"

    if RUBY_VERSION.to_f > 1.9
      lambda { Rack::Utils.parse_nested_query("foo%81E=1") }.
        should.raise(Rack::Utils::InvalidParameterError).
        message.should.equal "invalid byte sequence in UTF-8"
    end
  end

  should "build query strings correctly" do
    Rack::Utils.build_query("foo" => "bar").should.be equal_query_to("foo=bar")
    Rack::Utils.build_query("foo" => ["bar", "quux"]).
      should.be equal_query_to("foo=bar&foo=quux")
    Rack::Utils.build_query("foo" => "1", "bar" => "2").
      should.be equal_query_to("foo=1&bar=2")
    Rack::Utils.build_query("my weird field" => "q1!2\"'w$5&7/z8)?").
      should.be equal_query_to("my+weird+field=q1%212%22%27w%245%267%2Fz8%29%3F")
  end

  should "build nested query strings correctly" do
    Rack::Utils.build_nested_query("foo" => nil).should.equal "foo"
    Rack::Utils.build_nested_query("foo" => "").should.equal "foo="
    Rack::Utils.build_nested_query("foo" => "bar").should.equal "foo=bar"

    Rack::Utils.build_nested_query("foo" => "1", "bar" => "2").
      should.be equal_query_to("foo=1&bar=2")
    Rack::Utils.build_nested_query("foo" => 1, "bar" => 2).
      should.be equal_query_to("foo=1&bar=2")
    Rack::Utils.build_nested_query("my weird field" => "q1!2\"'w$5&7/z8)?").
      should.be equal_query_to("my+weird+field=q1%212%22%27w%245%267%2Fz8%29%3F")

    Rack::Utils.build_nested_query("foo" => [nil]).
      should.equal "foo[]"
    Rack::Utils.build_nested_query("foo" => [""]).
      should.equal "foo[]="
    Rack::Utils.build_nested_query("foo" => ["bar"]).
      should.equal "foo[]=bar"
    Rack::Utils.build_nested_query('foo' => []).
      should.equal ''
    Rack::Utils.build_nested_query('foo' => {}).
      should.equal ''
    Rack::Utils.build_nested_query('foo' => 'bar', 'baz' => []).
      should.equal 'foo=bar'
    Rack::Utils.build_nested_query('foo' => 'bar', 'baz' => {}).
      should.equal 'foo=bar'

    # The ordering of the output query string is unpredictable with 1.8's
    # unordered hash. Test that build_nested_query performs the inverse
    # function of parse_nested_query.
    [{"foo" => nil, "bar" => ""},
      {"foo" => "bar", "baz" => ""},
      {"foo" => ["1", "2"]},
      {"foo" => "bar", "baz" => ["1", "2", "3"]},
      {"foo" => ["bar"], "baz" => ["1", "2", "3"]},
      {"foo" => ["1", "2"]},
      {"foo" => "bar", "baz" => ["1", "2", "3"]},
      {"x" => {"y" => {"z" => "1"}}},
      {"x" => {"y" => {"z" => ["1"]}}},
      {"x" => {"y" => {"z" => ["1", "2"]}}},
      {"x" => {"y" => [{"z" => "1"}]}},
      {"x" => {"y" => [{"z" => ["1"]}]}},
      {"x" => {"y" => [{"z" => "1", "w" => "2"}]}},
      {"x" => {"y" => [{"v" => {"w" => "1"}}]}},
      {"x" => {"y" => [{"z" => "1", "v" => {"w" => "2"}}]}},
      {"x" => {"y" => [{"z" => "1"}, {"z" => "2"}]}},
      {"x" => {"y" => [{"z" => "1", "w" => "a"}, {"z" => "2", "w" => "3"}]}}
    ].each { |params|
      qs = Rack::Utils.build_nested_query(params)
      Rack::Utils.parse_nested_query(qs).should.equal params
    }

    lambda { Rack::Utils.build_nested_query("foo=bar") }.
      should.raise(ArgumentError).
      message.should.equal "value must be a Hash"
  end

  should "parse query strings that have a non-existent value" do
    key = "post/2011/08/27/Deux-%22rat%C3%A9s%22-de-l-Universit"
    Rack::Utils.parse_query(key).should.equal Rack::Utils.unescape(key) => nil
  end

  should "build query strings without = with non-existent values" do
    key = "post/2011/08/27/Deux-%22rat%C3%A9s%22-de-l-Universit"
    key = Rack::Utils.unescape(key)
    Rack::Utils.build_query(key => nil).should.equal Rack::Utils.escape(key)
  end

  should "parse q-values" do
    # XXX handle accept-extension
    Rack::Utils.q_values("foo;q=0.5,bar,baz;q=0.9").should.equal [
      [ 'foo', 0.5 ],
      [ 'bar', 1.0 ],
      [ 'baz', 0.9 ]
    ]
  end

  should "select best quality match" do
    Rack::Utils.best_q_match("text/html", %w[text/html]).should.equal "text/html"

    # More specific matches are preferred
    Rack::Utils.best_q_match("text/*;q=0.5,text/html;q=1.0", %w[text/html]).should.equal "text/html"

    # Higher quality matches are preferred
    Rack::Utils.best_q_match("text/*;q=0.5,text/plain;q=1.0", %w[text/plain text/html]).should.equal "text/plain"

    # Respect requested content type
    Rack::Utils.best_q_match("application/json", %w[application/vnd.lotus-1-2-3 application/json]).should.equal "application/json"

    # All else equal, the available mimes are preferred in order
    Rack::Utils.best_q_match("text/*", %w[text/html text/plain]).should.equal "text/html"
    Rack::Utils.best_q_match("text/plain,text/html", %w[text/html text/plain]).should.equal "text/html"

    # When there are no matches, return nil:
    Rack::Utils.best_q_match("application/json", %w[text/html text/plain]).should.equal nil
  end

  should "escape html entities [&><'\"/]" do
    Rack::Utils.escape_html("foo").should.equal "foo"
    Rack::Utils.escape_html("f&o").should.equal "f&amp;o"
    Rack::Utils.escape_html("f<o").should.equal "f&lt;o"
    Rack::Utils.escape_html("f>o").should.equal "f&gt;o"
    Rack::Utils.escape_html("f'o").should.equal "f&#x27;o"
    Rack::Utils.escape_html('f"o').should.equal "f&quot;o"
    Rack::Utils.escape_html("f/o").should.equal "f&#x2F;o"
    Rack::Utils.escape_html("<foo></foo>").should.equal "&lt;foo&gt;&lt;&#x2F;foo&gt;"
  end

  should "escape html entities even on MRI when it's bugged" do
    test_escape = lambda do
      kcodeu do
        Rack::Utils.escape_html("\300<").should.equal "\300&lt;"
      end
    end

    if RUBY_VERSION.to_f < 1.9
      test_escape.call
    else
      test_escape.should.raise(ArgumentError)
    end
  end

  if "".respond_to?(:encode)
    should "escape html entities in unicode strings" do
      # the following will cause warnings if the regex is poorly encoded:
      Rack::Utils.escape_html("☃").should.equal "☃"
    end
  end

  should "figure out which encodings are acceptable" do
    helper = lambda do |a, b|
      Rack::Request.new(Rack::MockRequest.env_for("", "HTTP_ACCEPT_ENCODING" => a))
      Rack::Utils.select_best_encoding(a, b)
    end

    helper.call(%w(), [["x", 1]]).should.equal(nil)
    helper.call(%w(identity), [["identity", 0.0]]).should.equal(nil)
    helper.call(%w(identity), [["*", 0.0]]).should.equal(nil)

    helper.call(%w(identity), [["compress", 1.0], ["gzip", 1.0]]).should.equal("identity")

    helper.call(%w(compress gzip identity), [["compress", 1.0], ["gzip", 1.0]]).should.equal("compress")
    helper.call(%w(compress gzip identity), [["compress", 0.5], ["gzip", 1.0]]).should.equal("gzip")

    helper.call(%w(foo bar identity), []).should.equal("identity")
    helper.call(%w(foo bar identity), [["*", 1.0]]).should.equal("foo")
    helper.call(%w(foo bar identity), [["*", 1.0], ["foo", 0.9]]).should.equal("bar")

    helper.call(%w(foo bar identity), [["foo", 0], ["bar", 0]]).should.equal("identity")
    helper.call(%w(foo bar baz identity), [["*", 0], ["identity", 0.1]]).should.equal("identity")
  end

  should "return the bytesize of String" do
    Rack::Utils.bytesize("FOO\xE2\x82\xAC").should.equal 6
  end

  should "should perform constant time string comparison" do
    Rack::Utils.secure_compare('a', 'a').should.equal true
    Rack::Utils.secure_compare('a', 'b').should.equal false
  end

  should "return status code for integer" do
    Rack::Utils.status_code(200).should.equal 200
  end

  should "return status code for string" do
    Rack::Utils.status_code("200").should.equal 200
  end

  should "return status code for symbol" do
    Rack::Utils.status_code(:ok).should.equal 200
  end

  should "return rfc2822 format from rfc2822 helper" do
    Rack::Utils.rfc2822(Time.at(0).gmtime).should == "Thu, 01 Jan 1970 00:00:00 -0000"
  end

  should "return rfc2109 format from rfc2109 helper" do
    Rack::Utils.rfc2109(Time.at(0).gmtime).should == "Thu, 01-Jan-1970 00:00:00 GMT"
  end

  should "clean directory traversal" do
    Rack::Utils.clean_path_info("/cgi/../cgi/test").should.equal "/cgi/test"
    Rack::Utils.clean_path_info(".").should.empty
    Rack::Utils.clean_path_info("test/..").should.empty
  end

  should "clean unsafe directory traversal to safe path" do
    Rack::Utils.clean_path_info("/../README.rdoc").should.equal "/README.rdoc"
    Rack::Utils.clean_path_info("../test/spec_utils.rb").should.equal "test/spec_utils.rb"
  end

  should "not clean directory traversal with encoded periods" do
    Rack::Utils.clean_path_info("/%2E%2E/README").should.equal "/%2E%2E/README"
  end

  should "clean slash only paths" do
    Rack::Utils.clean_path_info("/").should.equal "/"
  end
end

describe Rack::Utils, "byte_range" do
  should "ignore missing or syntactically invalid byte ranges" do
    Rack::Utils.byte_ranges({},500).should.equal nil
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "foobar"},500).should.equal nil
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "furlongs=123-456"},500).should.equal nil
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes="},500).should.equal nil
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=-"},500).should.equal nil
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=123,456"},500).should.equal nil
    # A range of non-positive length is syntactically invalid and ignored:
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=456-123"},500).should.equal nil
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=456-455"},500).should.equal nil
  end

  should "parse simple byte ranges" do
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=123-456"},500).should.equal [(123..456)]
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=123-"},500).should.equal [(123..499)]
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=-100"},500).should.equal [(400..499)]
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=0-0"},500).should.equal [(0..0)]
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=499-499"},500).should.equal [(499..499)]
  end

  should "parse several byte ranges" do
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=500-600,601-999"},1000).should.equal [(500..600),(601..999)]
  end

  should "truncate byte ranges" do
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=123-999"},500).should.equal [(123..499)]
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=600-999"},500).should.equal []
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=-999"},500).should.equal [(0..499)]
  end

  should "ignore unsatisfiable byte ranges" do
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=500-501"},500).should.equal []
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=500-"},500).should.equal []
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=999-"},500).should.equal []
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=-0"},500).should.equal []
  end

  should "handle byte ranges of empty files" do
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=123-456"},0).should.equal []
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=0-"},0).should.equal []
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=-100"},0).should.equal []
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=0-0"},0).should.equal []
    Rack::Utils.byte_ranges({"HTTP_RANGE" => "bytes=-0"},0).should.equal []
  end
end

describe Rack::Utils::HeaderHash do
  should "retain header case" do
    h = Rack::Utils::HeaderHash.new("Content-MD5" => "d5ff4e2a0 ...")
    h['ETag'] = 'Boo!'
    h.to_hash.should.equal "Content-MD5" => "d5ff4e2a0 ...", "ETag" => 'Boo!'
  end

  should "check existence of keys case insensitively" do
    h = Rack::Utils::HeaderHash.new("Content-MD5" => "d5ff4e2a0 ...")
    h.should.include 'content-md5'
    h.should.not.include 'ETag'
  end

  should "merge case-insensitively" do
    h = Rack::Utils::HeaderHash.new("ETag" => 'HELLO', "content-length" => '123')
    merged = h.merge("Etag" => 'WORLD', 'Content-Length' => '321', "Foo" => 'BAR')
    merged.should.equal "Etag"=>'WORLD', "Content-Length"=>'321', "Foo"=>'BAR'
  end

  should "overwrite case insensitively and assume the new key's case" do
    h = Rack::Utils::HeaderHash.new("Foo-Bar" => "baz")
    h["foo-bar"] = "bizzle"
    h["FOO-BAR"].should.equal "bizzle"
    h.length.should.equal 1
    h.to_hash.should.equal "foo-bar" => "bizzle"
  end

  should "be converted to real Hash" do
    h = Rack::Utils::HeaderHash.new("foo" => "bar")
    h.to_hash.should.be.instance_of Hash
  end

  should "convert Array values to Strings when converting to Hash" do
    h = Rack::Utils::HeaderHash.new("foo" => ["bar", "baz"])
    h.to_hash.should.equal({ "foo" => "bar\nbaz" })
  end

  should "replace hashes correctly" do
    h = Rack::Utils::HeaderHash.new("Foo-Bar" => "baz")
    j = {"foo" => "bar"}
    h.replace(j)
    h["foo"].should.equal "bar"
  end

  should "be able to delete the given key case-sensitively" do
    h = Rack::Utils::HeaderHash.new("foo" => "bar")
    h.delete("foo")
    h["foo"].should.be.nil
    h["FOO"].should.be.nil
  end

  should "be able to delete the given key case-insensitively" do
    h = Rack::Utils::HeaderHash.new("foo" => "bar")
    h.delete("FOO")
    h["foo"].should.be.nil
    h["FOO"].should.be.nil
  end

  should "return the deleted value when #delete is called on an existing key" do
    h = Rack::Utils::HeaderHash.new("foo" => "bar")
    h.delete("Foo").should.equal("bar")
  end

  should "return nil when #delete is called on a non-existant key" do
    h = Rack::Utils::HeaderHash.new("foo" => "bar")
    h.delete("Hello").should.be.nil
  end

  should "avoid unnecessary object creation if possible" do
    a = Rack::Utils::HeaderHash.new("foo" => "bar")
    b = Rack::Utils::HeaderHash.new(a)
    b.object_id.should.equal(a.object_id)
    b.should.equal(a)
  end

  should "convert Array values to Strings when responding to #each" do
    h = Rack::Utils::HeaderHash.new("foo" => ["bar", "baz"])
    h.each do |k,v|
      k.should.equal("foo")
      v.should.equal("bar\nbaz")
    end
  end

  should "not create headers out of thin air" do
    h = Rack::Utils::HeaderHash.new
    h['foo']
    h['foo'].should.be.nil
    h.should.not.include 'foo'
  end
end

describe Rack::Utils::Context do
  class ContextTest
    attr_reader :app
    def initialize app; @app=app; end
    def call env; context env; end
    def context env, app=@app; app.call(env); end
  end
  test_target1 = proc{|e| e.to_s+' world' }
  test_target2 = proc{|e| e.to_i+2 }
  test_target3 = proc{|e| nil }
  test_target4 = proc{|e| [200,{'Content-Type'=>'text/plain', 'Content-Length'=>'0'},['']] }
  test_app = ContextTest.new test_target4

  should "set context correctly" do
    test_app.app.should.equal test_target4
    c1 = Rack::Utils::Context.new(test_app, test_target1)
    c1.for.should.equal test_app
    c1.app.should.equal test_target1
    c2 = Rack::Utils::Context.new(test_app, test_target2)
    c2.for.should.equal test_app
    c2.app.should.equal test_target2
  end

  should "alter app on recontexting" do
    c1 = Rack::Utils::Context.new(test_app, test_target1)
    c2 = c1.recontext(test_target2)
    c2.for.should.equal test_app
    c2.app.should.equal test_target2
    c3 = c2.recontext(test_target3)
    c3.for.should.equal test_app
    c3.app.should.equal test_target3
  end

  should "run different apps" do
    c1 = Rack::Utils::Context.new test_app, test_target1
    c2 = c1.recontext test_target2
    c3 = c2.recontext test_target3
    c4 = c3.recontext test_target4
    a4 = Rack::Lint.new c4
    a5 = Rack::Lint.new test_app
    r1 = c1.call('hello')
    r1.should.equal 'hello world'
    r2 = c2.call(2)
    r2.should.equal 4
    r3 = c3.call(:misc_symbol)
    r3.should.be.nil
    r4 = Rack::MockRequest.new(a4).get('/')
    r4.status.should.equal 200
    r5 = Rack::MockRequest.new(a5).get('/')
    r5.status.should.equal 200
    r4.body.should.equal r5.body
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_lint.rb000064400000046347150402106460015656 0ustar00require 'stringio'
require 'tempfile'
require 'rack/lint'
require 'rack/mock'

describe Rack::Lint do
  def env(*args)
    Rack::MockRequest.env_for("/", *args)
  end

  should "pass valid request" do
    lambda {
      Rack::Lint.new(lambda { |env|
                       [200, {"Content-type" => "test/plain", "Content-length" => "3"}, ["foo"]]
                     }).call(env({}))
    }.should.not.raise
  end

  should "notice fatal errors" do
    lambda { Rack::Lint.new(nil).call }.should.raise(Rack::Lint::LintError).
      message.should.match(/No env given/)
  end

  should "notice environment errors" do
    lambda { Rack::Lint.new(nil).call 5 }.should.raise(Rack::Lint::LintError).
      message.should.match(/not a Hash/)

    lambda {
      e = env
      e.delete("REQUEST_METHOD")
      Rack::Lint.new(nil).call(e)
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/missing required key REQUEST_METHOD/)

    lambda {
      e = env
      e.delete("SERVER_NAME")
      Rack::Lint.new(nil).call(e)
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/missing required key SERVER_NAME/)


    lambda {
      Rack::Lint.new(nil).call(env("HTTP_CONTENT_TYPE" => "text/plain"))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/contains HTTP_CONTENT_TYPE/)

    lambda {
      Rack::Lint.new(nil).call(env("HTTP_CONTENT_LENGTH" => "42"))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/contains HTTP_CONTENT_LENGTH/)

    lambda {
      Rack::Lint.new(nil).call(env("FOO" => Object.new))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/non-string value/)

    lambda {
      Rack::Lint.new(nil).call(env("rack.version" => "0.2"))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/must be an Array/)

    lambda {
      Rack::Lint.new(nil).call(env("rack.url_scheme" => "gopher"))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/url_scheme unknown/)

    lambda {
      Rack::Lint.new(nil).call(env("rack.session" => []))
    }.should.raise(Rack::Lint::LintError).
      message.should.equal("session [] must respond to store and []=")

    lambda {
      Rack::Lint.new(nil).call(env("rack.logger" => []))
    }.should.raise(Rack::Lint::LintError).
      message.should.equal("logger [] must respond to info")

    lambda {
      Rack::Lint.new(nil).call(env("rack.multipart.buffer_size" => 0))
    }.should.raise(Rack::Lint::LintError).
      message.should.equal("rack.multipart.buffer_size must be an Integer > 0 if specified")

    lambda {
      Rack::Lint.new(nil).call(env("rack.multipart.tempfile_factory" => Tempfile))
    }.should.raise(Rack::Lint::LintError).
      message.should.equal("rack.multipart.tempfile_factory must respond to #call")

    lambda {
      Rack::Lint.new(lambda { |env|
        env['rack.multipart.tempfile_factory'].call("testfile", "text/plain")
      }).call(env("rack.multipart.tempfile_factory" => lambda { |filename, content_type| Object.new }))
    }.should.raise(Rack::Lint::LintError).
      message.should.equal("rack.multipart.tempfile_factory return value must respond to #<<")

    lambda {
      Rack::Lint.new(nil).call(env("REQUEST_METHOD" => "FUCKUP?"))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/REQUEST_METHOD/)

    lambda {
      Rack::Lint.new(nil).call(env("SCRIPT_NAME" => "howdy"))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/must start with/)

    lambda {
      Rack::Lint.new(nil).call(env("PATH_INFO" => "../foo"))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/must start with/)

    lambda {
      Rack::Lint.new(nil).call(env("CONTENT_LENGTH" => "xcii"))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/Invalid CONTENT_LENGTH/)

    lambda {
      e = env
      e.delete("PATH_INFO")
      e.delete("SCRIPT_NAME")
      Rack::Lint.new(nil).call(e)
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/One of .* must be set/)

    lambda {
      Rack::Lint.new(nil).call(env("SCRIPT_NAME" => "/"))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/cannot be .* make it ''/)
  end

  should "notice input errors" do
    lambda {
      Rack::Lint.new(nil).call(env("rack.input" => ""))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/does not respond to #gets/)

    lambda {
      input = Object.new
      def input.binmode?
        false
      end
      Rack::Lint.new(nil).call(env("rack.input" => input))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/is not opened in binary mode/)

    lambda {
      input = Object.new
      def input.external_encoding
        result = Object.new
        def result.name
          "US-ASCII"
        end
        result
      end
      Rack::Lint.new(nil).call(env("rack.input" => input))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/does not have ASCII-8BIT as its external encoding/)
  end

  should "notice error errors" do
    lambda {
      Rack::Lint.new(nil).call(env("rack.errors" => ""))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/does not respond to #puts/)
  end

  should "notice status errors" do
    lambda {
      Rack::Lint.new(lambda { |env|
                       ["cc", {}, ""]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/must be >=100 seen as integer/)

    lambda {
      Rack::Lint.new(lambda { |env|
                       [42, {}, ""]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/must be >=100 seen as integer/)
  end

  should "notice header errors" do
    lambda {
      Rack::Lint.new(lambda { |env|
                       [200, Object.new, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.equal("headers object should respond to #each, but doesn't (got Object as headers)")

    lambda {
      Rack::Lint.new(lambda { |env|
                       [200, {true=>false}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.equal("header key must be a string, was TrueClass")

    lambda {
      Rack::Lint.new(lambda { |env|
                       [200, {"Status" => "404"}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/must not contain Status/)

    # From RFC 7230:<F24><F25>
    # Most HTTP header field values are defined using common syntax
    # components (token, quoted-string, and comment) separated by
    # whitespace or specific delimiting characters.  Delimiters are chosen
    # from the set of US-ASCII visual characters not allowed in a token
    # (DQUOTE and "(),/:;<=>?@[\]{}").
    # 
    #   token          = 1*tchar
    # 
    #   tchar          = "!" / "#" / "$" / "%" / "&" / "'" / "*"
    #                 / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
    #                 / DIGIT / ALPHA
    #                 ; any VCHAR, except delimiters
    invalid_headers = 0.upto(31).map(&:chr) + %W<( ) , / : ; < = > ? @ [ \\ ] { } \x7F>
    invalid_headers.each do |invalid_header|
      lambda {
        Rack::Lint.new(lambda { |env|
          [200, {invalid_header => "text/plain"}, []]
        }).call(env({}))
      }.should.raise(Rack::Lint::LintError, "on invalid header: #{invalid_header}").
      message.should.equal("invalid header name: #{invalid_header}")
    end
    valid_headers = 0.upto(127).map(&:chr) - invalid_headers
    valid_headers.each do |valid_header|
      lambda {
        Rack::Lint.new(lambda { |env|
          [200, {valid_header => "text/plain"}, []]
        }).call(env({}))
      }.should.not.raise(Rack::Lint::LintError, "on valid header: #{valid_header}")
    end

    lambda {
      Rack::Lint.new(lambda { |env|
                       [200, {"Foo" => Object.new}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.equal("a header value must be a String, but the value of 'Foo' is a Object")

    lambda {
      Rack::Lint.new(lambda { |env|
                       [200, {"Foo" => [1, 2, 3]}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.equal("a header value must be a String, but the value of 'Foo' is a Array")


    lambda {
      Rack::Lint.new(lambda { |env|
                       [200, {"Foo-Bar" => "text\000plain"}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/invalid header/)

    # line ends (010) should be allowed in header values.
    lambda {
      Rack::Lint.new(lambda { |env|
                       [200, {"Foo-Bar" => "one\ntwo\nthree", "Content-Length" => "0", "Content-Type" => "text/plain" }, []]
                     }).call(env({}))
    }.should.not.raise(Rack::Lint::LintError)

    # non-Hash header responses should be allowed
    lambda {
      Rack::Lint.new(lambda { |env|
                       [200, [%w(Content-Type text/plain), %w(Content-Length 0)], []]
                     }).call(env({}))
    }.should.not.raise(TypeError)
  end

  should "notice content-type errors" do
    # lambda {
    #   Rack::Lint.new(lambda { |env|
    #                    [200, {"Content-length" => "0"}, []]
    #                  }).call(env({}))
    # }.should.raise(Rack::Lint::LintError).
    #   message.should.match(/No Content-Type/)

    [100, 101, 204, 205, 304].each do |status|
      lambda {
        Rack::Lint.new(lambda { |env|
                         [status, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                       }).call(env({}))
      }.should.raise(Rack::Lint::LintError).
        message.should.match(/Content-Type header found/)
    end
  end

  should "notice content-length errors" do
    [100, 101, 204, 205, 304].each do |status|
      lambda {
        Rack::Lint.new(lambda { |env|
                         [status, {"Content-length" => "0"}, []]
                       }).call(env({}))
      }.should.raise(Rack::Lint::LintError).
        message.should.match(/Content-Length header found/)
    end

    lambda {
      Rack::Lint.new(lambda { |env|
                       [200, {"Content-type" => "text/plain", "Content-Length" => "1"}, []]
                     }).call(env({}))[2].each { }
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/Content-Length header was 1, but should be 0/)
  end

  should "notice body errors" do
    lambda {
      body = Rack::Lint.new(lambda { |env|
                               [200, {"Content-type" => "text/plain","Content-length" => "3"}, [1,2,3]]
                             }).call(env({}))[2]
      body.each { |part| }
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/yielded non-string/)
  end

  should "notice input handling errors" do
    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].gets("\r\n")
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/gets called with arguments/)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read(1, 2, 3)
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/read called with too many arguments/)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read("foo")
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/read called with non-integer and non-nil length/)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read(-1)
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/read called with a negative length/)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read(nil, nil)
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/read called with non-String buffer/)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read(nil, 1)
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/read called with non-String buffer/)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].rewind(0)
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/rewind called with arguments/)

    weirdio = Object.new
    class << weirdio
      def gets
        42
      end

      def read
        23
      end

      def each
        yield 23
        yield 42
      end

      def rewind
        raise Errno::ESPIPE, "Errno::ESPIPE"
      end
    end

    eof_weirdio = Object.new
    class << eof_weirdio
      def gets
        nil
      end

      def read(*args)
        nil
      end

      def each
      end

      def rewind
      end
    end

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].gets
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env("rack.input" => weirdio))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/gets didn't return a String/)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].each { |x| }
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env("rack.input" => weirdio))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/each didn't yield a String/)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env("rack.input" => weirdio))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/read didn't return nil or a String/)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env("rack.input" => eof_weirdio))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/read\(nil\) returned nil on EOF/)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].rewind
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env("rack.input" => weirdio))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/rewind raised Errno::ESPIPE/)


    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].close
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/close must not be called/)
  end

  should "notice error handling errors" do
    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.errors"].write(42)
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/write not called with a String/)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.errors"].close
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({}))
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/close must not be called/)
  end

  should "notice HEAD errors" do
    lambda {
      Rack::Lint.new(lambda { |env|
                       [200, {"Content-type" => "test/plain", "Content-length" => "3"}, []]
                     }).call(env({"REQUEST_METHOD" => "HEAD"}))
    }.should.not.raise

    lambda {
      Rack::Lint.new(lambda { |env|
                       [200, {"Content-type" => "test/plain", "Content-length" => "3"}, ["foo"]]
                     }).call(env({"REQUEST_METHOD" => "HEAD"}))[2].each { }
    }.should.raise(Rack::Lint::LintError).
      message.should.match(/body was given for HEAD/)
  end

  should "pass valid read calls" do
    hello_str = "hello world"
    hello_str.force_encoding("ASCII-8BIT") if hello_str.respond_to? :force_encoding
    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({"rack.input" => StringIO.new(hello_str)}))
    }.should.not.raise(Rack::Lint::LintError)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read(0)
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({"rack.input" => StringIO.new(hello_str)}))
    }.should.not.raise(Rack::Lint::LintError)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read(1)
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({"rack.input" => StringIO.new(hello_str)}))
    }.should.not.raise(Rack::Lint::LintError)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read(nil)
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({"rack.input" => StringIO.new(hello_str)}))
    }.should.not.raise(Rack::Lint::LintError)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read(nil, '')
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({"rack.input" => StringIO.new(hello_str)}))
    }.should.not.raise(Rack::Lint::LintError)

    lambda {
      Rack::Lint.new(lambda { |env|
                       env["rack.input"].read(1, '')
                       [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []]
                     }).call(env({"rack.input" => StringIO.new(hello_str)}))
    }.should.not.raise(Rack::Lint::LintError)
  end
end

describe "Rack::Lint::InputWrapper" do
  should "delegate :rewind to underlying IO object" do
    io = StringIO.new("123")
    wrapper = Rack::Lint::InputWrapper.new(io)
    wrapper.read.should.equal "123"
    wrapper.read.should.equal ""
    wrapper.rewind
    wrapper.read.should.equal "123"
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_conditionalget.rb000064400000006440150402106460017701 0ustar00require 'time'
require 'rack/conditionalget'
require 'rack/mock'

describe Rack::ConditionalGet do
  def conditional_get(app)
    Rack::Lint.new Rack::ConditionalGet.new(app)
  end
  
  should "set a 304 status and truncate body when If-Modified-Since hits" do
    timestamp = Time.now.httpdate
    app = conditional_get(lambda { |env|
      [200, {'Last-Modified'=>timestamp}, ['TEST']] })

    response = Rack::MockRequest.new(app).
      get("/", 'HTTP_IF_MODIFIED_SINCE' => timestamp)

    response.status.should.equal 304
    response.body.should.be.empty
  end

  should "set a 304 status and truncate body when If-Modified-Since hits and is higher than current time" do
    app = conditional_get(lambda { |env|
      [200, {'Last-Modified'=>(Time.now - 3600).httpdate}, ['TEST']] })

    response = Rack::MockRequest.new(app).
      get("/", 'HTTP_IF_MODIFIED_SINCE' => Time.now.httpdate)

    response.status.should.equal 304
    response.body.should.be.empty
  end

  should "set a 304 status and truncate body when If-None-Match hits" do
    app = conditional_get(lambda { |env|
      [200, {'Etag'=>'1234'}, ['TEST']] })

    response = Rack::MockRequest.new(app).
      get("/", 'HTTP_IF_NONE_MATCH' => '1234')

    response.status.should.equal 304
    response.body.should.be.empty
  end

  should "not set a 304 status if If-Modified-Since hits but Etag does not" do
    timestamp = Time.now.httpdate
    app = conditional_get(lambda { |env|
      [200, {'Last-Modified'=>timestamp, 'Etag'=>'1234', 'Content-Type' => 'text/plain'}, ['TEST']] })

    response = Rack::MockRequest.new(app).
      get("/", 'HTTP_IF_MODIFIED_SINCE' => timestamp, 'HTTP_IF_NONE_MATCH' => '4321')

    response.status.should.equal 200
    response.body.should.equal 'TEST'
  end

  should "set a 304 status and truncate body when both If-None-Match and If-Modified-Since hits" do
    timestamp = Time.now.httpdate
    app = conditional_get(lambda { |env|
      [200, {'Last-Modified'=>timestamp, 'Etag'=>'1234'}, ['TEST']] })

    response = Rack::MockRequest.new(app).
      get("/", 'HTTP_IF_MODIFIED_SINCE' => timestamp, 'HTTP_IF_NONE_MATCH' => '1234')

    response.status.should.equal 304
    response.body.should.be.empty
  end

  should "not affect non-GET/HEAD requests" do
    app = conditional_get(lambda { |env|
      [200, {'Etag'=>'1234', 'Content-Type' => 'text/plain'}, ['TEST']] })

    response = Rack::MockRequest.new(app).
      post("/", 'HTTP_IF_NONE_MATCH' => '1234')

    response.status.should.equal 200
    response.body.should.equal 'TEST'
  end

  should "not affect non-200 requests" do
    app = conditional_get(lambda { |env|
      [302, {'Etag'=>'1234', 'Content-Type' => 'text/plain'}, ['TEST']] })

    response = Rack::MockRequest.new(app).
      get("/", 'HTTP_IF_NONE_MATCH' => '1234')

    response.status.should.equal 302
    response.body.should.equal 'TEST'
  end

  should "not affect requests with malformed HTTP_IF_NONE_MATCH" do
    bad_timestamp = Time.now.strftime('%Y-%m-%d %H:%M:%S %z')
    app = conditional_get(lambda { |env|
      [200,{'Last-Modified'=>(Time.now - 3600).httpdate, 'Content-Type' => 'text/plain'}, ['TEST']] })

    response = Rack::MockRequest.new(app).
      get("/", 'HTTP_IF_MODIFIED_SINCE' => bad_timestamp)

    response.status.should.equal 200
    response.body.should.equal 'TEST'
  end

end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/registering_handler/rack/handler/registering_myself.rb000064400000000177150402106460026142 0ustar00module Rack
  module Handler
    class RegisteringMyself
    end

    register :registering_myself, RegisteringMyself
  end
endlib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_lobster.rb000064400000002356150402106460016352 0ustar00require 'rack/lobster'
require 'rack/lint'
require 'rack/mock'

module LobsterHelpers
  def lobster
    Rack::MockRequest.new Rack::Lint.new(Rack::Lobster.new)
  end

  def lambda_lobster
    Rack::MockRequest.new Rack::Lint.new(Rack::Lobster::LambdaLobster)
  end
end

describe Rack::Lobster::LambdaLobster do
  extend LobsterHelpers
  
  should "be a single lambda" do
    Rack::Lobster::LambdaLobster.should.be.kind_of Proc
  end

  should "look like a lobster" do
    res = lambda_lobster.get("/")
    res.should.be.ok
    res.body.should.include "(,(,,(,,,("
    res.body.should.include "?flip"
  end

  should "be flippable" do
    res = lambda_lobster.get("/?flip")
    res.should.be.ok
    res.body.should.include "(,,,(,,(,("
  end
end

describe Rack::Lobster do
  extend LobsterHelpers
  
  should "look like a lobster" do
    res = lobster.get("/")
    res.should.be.ok
    res.body.should.include "(,(,,(,,,("
    res.body.should.include "?flip"
    res.body.should.include "crash"
  end

  should "be flippable" do
    res = lobster.get("/?flip=left")
    res.should.be.ok
    res.body.should.include "),,,),,),)"
  end

  should "provide crashing for testing purposes" do
    lambda {
      lobster.get("/?flip=crash")
    }.should.raise
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_recursive.rb000064400000003520150402106460016701 0ustar00require 'rack/lint'
require 'rack/recursive'
require 'rack/mock'

describe Rack::Recursive do
  @app1 = lambda { |env|
    res = Rack::Response.new
    res["X-Path-Info"] = env["PATH_INFO"]
    res["X-Query-String"] = env["QUERY_STRING"]
    res.finish do |inner_res|
      inner_res.write "App1"
    end
  }

  @app2 = lambda { |env|
    Rack::Response.new.finish do |res|
      res.write "App2"
      _, _, body = env['rack.recursive.include'].call(env, "/app1")
      body.each { |b|
        res.write b
      }
    end
  }

  @app3 = lambda { |env|
    raise Rack::ForwardRequest.new("/app1")
  }

  @app4 = lambda { |env|
    raise Rack::ForwardRequest.new("http://example.org/app1/quux?meh")
  }
  
  def recursive(map)
    Rack::Lint.new Rack::Recursive.new(Rack::URLMap.new(map))
  end

  should "allow for subrequests" do
    res = Rack::MockRequest.new(recursive("/app1" => @app1,
                                          "/app2" => @app2)).
      get("/app2")

    res.should.be.ok
    res.body.should.equal "App2App1"
  end

  should "raise error on requests not below the app" do
    app = Rack::URLMap.new("/app1" => @app1,
                           "/app" => recursive("/1" => @app1,
                                               "/2" => @app2))

    lambda {
      Rack::MockRequest.new(app).get("/app/2")
    }.should.raise(ArgumentError).
      message.should =~ /can only include below/
  end

  should "support forwarding" do
    app = recursive("/app1" => @app1,
                    "/app3" => @app3,
                    "/app4" => @app4)

    res = Rack::MockRequest.new(app).get("/app3")
    res.should.be.ok
    res.body.should.equal "App1"

    res = Rack::MockRequest.new(app).get("/app4")
    res.should.be.ok
    res.body.should.equal "App1"
    res["X-Path-Info"].should.equal "/quux"
    res["X-Query-String"].should.equal "meh"
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_session_memcache.rb000064400000026167150402106460020213 0ustar00begin
  require 'rack/session/memcache'
  require 'rack/lint'
  require 'rack/mock'
  require 'thread'

  describe Rack::Session::Memcache do
    session_key = Rack::Session::Memcache::DEFAULT_OPTIONS[:key]
    session_match = /#{session_key}=([0-9a-fA-F]+);/
    incrementor = lambda do |env|
      env["rack.session"]["counter"] ||= 0
      env["rack.session"]["counter"] += 1
      Rack::Response.new(env["rack.session"].inspect).to_a
    end
    drop_session = Rack::Lint.new(proc do |env|
      env['rack.session.options'][:drop] = true
      incrementor.call(env)
    end)
    renew_session = Rack::Lint.new(proc do |env|
      env['rack.session.options'][:renew] = true
      incrementor.call(env)
    end)
    defer_session = Rack::Lint.new(proc do |env|
      env['rack.session.options'][:defer] = true
      incrementor.call(env)
    end)
    skip_session = Rack::Lint.new(proc do |env|
      env['rack.session.options'][:skip] = true
      incrementor.call(env)
    end)
    incrementor = Rack::Lint.new(incrementor)

    # test memcache connection
    Rack::Session::Memcache.new(incrementor)

    it "faults on no connection" do
      lambda{
        Rack::Session::Memcache.new(incrementor, :memcache_server => 'nosuchserver')
      }.should.raise
    end

    it "connects to existing server" do
      test_pool = MemCache.new(incrementor, :namespace => 'test:rack:session')
      test_pool.namespace.should.equal 'test:rack:session'
    end

    it "passes options to MemCache" do
      pool = Rack::Session::Memcache.new(incrementor, :namespace => 'test:rack:session')
      pool.pool.namespace.should.equal 'test:rack:session'
    end

    it "creates a new cookie" do
      pool = Rack::Session::Memcache.new(incrementor)
      res = Rack::MockRequest.new(pool).get("/")
      res["Set-Cookie"].should.include("#{session_key}=")
      res.body.should.equal '{"counter"=>1}'
    end

    it "determines session from a cookie" do
      pool = Rack::Session::Memcache.new(incrementor)
      req = Rack::MockRequest.new(pool)
      res = req.get("/")
      cookie = res["Set-Cookie"]
      req.get("/", "HTTP_COOKIE" => cookie).
        body.should.equal '{"counter"=>2}'
      req.get("/", "HTTP_COOKIE" => cookie).
        body.should.equal '{"counter"=>3}'
    end

    it "determines session only from a cookie by default" do
      pool = Rack::Session::Memcache.new(incrementor)
      req = Rack::MockRequest.new(pool)
      res = req.get("/")
      sid = res["Set-Cookie"][session_match, 1]
      req.get("/?rack.session=#{sid}").
        body.should.equal '{"counter"=>1}'
      req.get("/?rack.session=#{sid}").
        body.should.equal '{"counter"=>1}'
    end

    it "determines session from params" do
      pool = Rack::Session::Memcache.new(incrementor, :cookie_only => false)
      req = Rack::MockRequest.new(pool)
      res = req.get("/")
      sid = res["Set-Cookie"][session_match, 1]
      req.get("/?rack.session=#{sid}").
        body.should.equal '{"counter"=>2}'
      req.get("/?rack.session=#{sid}").
        body.should.equal '{"counter"=>3}'
    end

    it "survives nonexistant cookies" do
      bad_cookie = "rack.session=blarghfasel"
      pool = Rack::Session::Memcache.new(incrementor)
      res = Rack::MockRequest.new(pool).
        get("/", "HTTP_COOKIE" => bad_cookie)
      res.body.should.equal '{"counter"=>1}'
      cookie = res["Set-Cookie"][session_match]
      cookie.should.not.match(/#{bad_cookie}/)
    end

    it "maintains freshness" do
      pool = Rack::Session::Memcache.new(incrementor, :expire_after => 3)
      res = Rack::MockRequest.new(pool).get('/')
      res.body.should.include '"counter"=>1'
      cookie = res["Set-Cookie"]
      res = Rack::MockRequest.new(pool).get('/', "HTTP_COOKIE" => cookie)
      res["Set-Cookie"].should.equal cookie
      res.body.should.include '"counter"=>2'
      puts 'Sleeping to expire session' if $DEBUG
      sleep 4
      res = Rack::MockRequest.new(pool).get('/', "HTTP_COOKIE" => cookie)
      res["Set-Cookie"].should.not.equal cookie
      res.body.should.include '"counter"=>1'
    end

    it "does not send the same session id if it did not change" do
      pool = Rack::Session::Memcache.new(incrementor)
      req = Rack::MockRequest.new(pool)

      res0 = req.get("/")
      cookie = res0["Set-Cookie"][session_match]
      res0.body.should.equal '{"counter"=>1}'

      res1 = req.get("/", "HTTP_COOKIE" => cookie)
      res1["Set-Cookie"].should.be.nil
      res1.body.should.equal '{"counter"=>2}'

      res2 = req.get("/", "HTTP_COOKIE" => cookie)
      res2["Set-Cookie"].should.be.nil
      res2.body.should.equal '{"counter"=>3}'
    end

    it "deletes cookies with :drop option" do
      pool = Rack::Session::Memcache.new(incrementor)
      req = Rack::MockRequest.new(pool)
      drop = Rack::Utils::Context.new(pool, drop_session)
      dreq = Rack::MockRequest.new(drop)

      res1 = req.get("/")
      session = (cookie = res1["Set-Cookie"])[session_match]
      res1.body.should.equal '{"counter"=>1}'

      res2 = dreq.get("/", "HTTP_COOKIE" => cookie)
      res2["Set-Cookie"].should.equal nil
      res2.body.should.equal '{"counter"=>2}'

      res3 = req.get("/", "HTTP_COOKIE" => cookie)
      res3["Set-Cookie"][session_match].should.not.equal session
      res3.body.should.equal '{"counter"=>1}'
    end

    it "provides new session id with :renew option" do
      pool = Rack::Session::Memcache.new(incrementor)
      req = Rack::MockRequest.new(pool)
      renew = Rack::Utils::Context.new(pool, renew_session)
      rreq = Rack::MockRequest.new(renew)

      res1 = req.get("/")
      session = (cookie = res1["Set-Cookie"])[session_match]
      res1.body.should.equal '{"counter"=>1}'

      res2 = rreq.get("/", "HTTP_COOKIE" => cookie)
      new_cookie = res2["Set-Cookie"]
      new_session = new_cookie[session_match]
      new_session.should.not.equal session
      res2.body.should.equal '{"counter"=>2}'

      res3 = req.get("/", "HTTP_COOKIE" => new_cookie)
      res3.body.should.equal '{"counter"=>3}'

      # Old cookie was deleted
      res4 = req.get("/", "HTTP_COOKIE" => cookie)
      res4.body.should.equal '{"counter"=>1}'
    end

    it "omits cookie with :defer option but still updates the state" do
      pool = Rack::Session::Memcache.new(incrementor)
      count = Rack::Utils::Context.new(pool, incrementor)
      defer = Rack::Utils::Context.new(pool, defer_session)
      dreq = Rack::MockRequest.new(defer)
      creq = Rack::MockRequest.new(count)

      res0 = dreq.get("/")
      res0["Set-Cookie"].should.equal nil
      res0.body.should.equal '{"counter"=>1}'

      res0 = creq.get("/")
      res1 = dreq.get("/", "HTTP_COOKIE" => res0["Set-Cookie"])
      res1.body.should.equal '{"counter"=>2}'
      res2 = dreq.get("/", "HTTP_COOKIE" => res0["Set-Cookie"])
      res2.body.should.equal '{"counter"=>3}'
    end

    it "omits cookie and state update with :skip option" do
      pool = Rack::Session::Memcache.new(incrementor)
      count = Rack::Utils::Context.new(pool, incrementor)
      skip = Rack::Utils::Context.new(pool, skip_session)
      sreq = Rack::MockRequest.new(skip)
      creq = Rack::MockRequest.new(count)

      res0 = sreq.get("/")
      res0["Set-Cookie"].should.equal nil
      res0.body.should.equal '{"counter"=>1}'

      res0 = creq.get("/")
      res1 = sreq.get("/", "HTTP_COOKIE" => res0["Set-Cookie"])
      res1.body.should.equal '{"counter"=>2}'
      res2 = sreq.get("/", "HTTP_COOKIE" => res0["Set-Cookie"])
      res2.body.should.equal '{"counter"=>2}'
    end

    it "updates deep hashes correctly" do
      hash_check = proc do |env|
        session = env['rack.session']
        unless session.include? 'test'
          session.update :a => :b, :c => { :d => :e },
            :f => { :g => { :h => :i} }, 'test' => true
        else
          session[:f][:g][:h] = :j
        end
        [200, {}, [session.inspect]]
      end
      pool = Rack::Session::Memcache.new(hash_check)
      req = Rack::MockRequest.new(pool)

      res0 = req.get("/")
      session_id = (cookie = res0["Set-Cookie"])[session_match, 1]
      ses0 = pool.pool.get(session_id, true)

      req.get("/", "HTTP_COOKIE" => cookie)
      ses1 = pool.pool.get(session_id, true)

      ses1.should.not.equal ses0
    end

    # anyone know how to do this better?
    it "cleanly merges sessions when multithreaded" do
      unless $DEBUG
        1.should.equal 1 # fake assertion to appease the mighty bacon
        next
      end
      warn 'Running multithread test for Session::Memcache'
      pool = Rack::Session::Memcache.new(incrementor)
      req = Rack::MockRequest.new(pool)

      res = req.get('/')
      res.body.should.equal '{"counter"=>1}'
      cookie = res["Set-Cookie"]
      session_id = cookie[session_match, 1]

      delta_incrementor = lambda do |env|
        # emulate disconjoinment of threading
        env['rack.session'] = env['rack.session'].dup
        Thread.stop
        env['rack.session'][(Time.now.usec*rand).to_i] = true
        incrementor.call(env)
      end
      tses = Rack::Utils::Context.new pool, delta_incrementor
      treq = Rack::MockRequest.new(tses)
      tnum = rand(7).to_i+5
      r = Array.new(tnum) do
        Thread.new(treq) do |run|
          run.get('/', "HTTP_COOKIE" => cookie, 'rack.multithread' => true)
        end
      end.reverse.map{|t| t.run.join.value }
      r.each do |request|
        request['Set-Cookie'].should.equal cookie
        request.body.should.include '"counter"=>2'
      end

      session = pool.pool.get(session_id)
      session.size.should.equal tnum+1 # counter
      session['counter'].should.equal 2 # meeeh

      tnum = rand(7).to_i+5
      r = Array.new(tnum) do
        app = Rack::Utils::Context.new pool, time_delta
        req = Rack::MockRequest.new app
        Thread.new(req) do |run|
          run.get('/', "HTTP_COOKIE" => cookie, 'rack.multithread' => true)
        end
      end.reverse.map{|t| t.run.join.value }
      r.each do |request|
        request['Set-Cookie'].should.equal cookie
        request.body.should.include '"counter"=>3'
      end

      session = pool.pool.get(session_id)
      session.size.should.be tnum+1
      session['counter'].should.be 3

      drop_counter = proc do |env|
        env['rack.session'].delete 'counter'
        env['rack.session']['foo'] = 'bar'
        [200, {'Content-Type'=>'text/plain'}, env['rack.session'].inspect]
      end
      tses = Rack::Utils::Context.new pool, drop_counter
      treq = Rack::MockRequest.new(tses)
      tnum = rand(7).to_i+5
      r = Array.new(tnum) do
        Thread.new(treq) do |run|
          run.get('/', "HTTP_COOKIE" => cookie, 'rack.multithread' => true)
        end
      end.reverse.map{|t| t.run.join.value }
      r.each do |request|
        request['Set-Cookie'].should.equal cookie
        request.body.should.include '"foo"=>"bar"'
      end

      session = pool.pool.get(session_id)
      session.size.should.be r.size+1
      session['counter'].should.be.nil?
      session['foo'].should.equal 'bar'
    end
  end
rescue RuntimeError
  $stderr.puts "Skipping Rack::Session::Memcache tests. Start memcached and try again."
rescue LoadError
  $stderr.puts "Skipping Rack::Session::Memcache tests (Memcache is required). `gem install memcache-client` and try again."
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_file.rb000064400000014511150402106460015613 0ustar00require 'rack/file'
require 'rack/lint'
require 'rack/mock'

describe Rack::File do
  DOCROOT = File.expand_path(File.dirname(__FILE__)) unless defined? DOCROOT

  def file(*args)
    Rack::Lint.new Rack::File.new(*args)
  end

  should "serve files" do
    res = Rack::MockRequest.new(file(DOCROOT)).get("/cgi/test")

    res.should.be.ok
    res.should =~ /ruby/
  end

  should "set Last-Modified header" do
    res = Rack::MockRequest.new(file(DOCROOT)).get("/cgi/test")

    path = File.join(DOCROOT, "/cgi/test")

    res.should.be.ok
    res["Last-Modified"].should.equal File.mtime(path).httpdate
  end

  should "return 304 if file isn't modified since last serve" do
    path = File.join(DOCROOT, "/cgi/test")
    res = Rack::MockRequest.new(file(DOCROOT)).
      get("/cgi/test", 'HTTP_IF_MODIFIED_SINCE' => File.mtime(path).httpdate)

    res.status.should.equal 304
    res.body.should.be.empty
  end

  should "return the file if it's modified since last serve" do
    path = File.join(DOCROOT, "/cgi/test")
    res = Rack::MockRequest.new(file(DOCROOT)).
      get("/cgi/test", 'HTTP_IF_MODIFIED_SINCE' => (File.mtime(path) - 100).httpdate)

    res.should.be.ok
  end

  should "serve files with URL encoded filenames" do
    res = Rack::MockRequest.new(file(DOCROOT)).get("/cgi/%74%65%73%74") # "/cgi/test"

    res.should.be.ok
    res.should =~ /ruby/
  end

  should "allow safe directory traversal" do
    req = Rack::MockRequest.new(file(DOCROOT))

    res = req.get('/cgi/../cgi/test')
    res.should.be.successful

    res = req.get('.')
    res.should.be.not_found

    res = req.get("test/..")
    res.should.be.not_found
  end

  should "not allow unsafe directory traversal" do
    req = Rack::MockRequest.new(file(DOCROOT))

    res = req.get("/../README.rdoc")
    res.should.be.client_error

    res = req.get("../test/spec_file.rb")
    res.should.be.client_error

    res = req.get("../README.rdoc")
    res.should.be.client_error

    res.should.be.not_found
  end

  should "allow files with .. in their name" do
    req = Rack::MockRequest.new(file(DOCROOT))
    res = req.get("/cgi/..test")
    res.should.be.not_found

    res = req.get("/cgi/test..")
    res.should.be.not_found

    res = req.get("/cgi../test..")
    res.should.be.not_found
  end

  should "not allow unsafe directory traversal with encoded periods" do
    res = Rack::MockRequest.new(file(DOCROOT)).get("/%2E%2E/README")

    res.should.be.client_error?
    res.should.be.not_found
  end

  should "allow safe directory traversal with encoded periods" do
    res = Rack::MockRequest.new(file(DOCROOT)).get("/cgi/%2E%2E/cgi/test")

    res.should.be.successful
  end

  should "404 if it can't find the file" do
    res = Rack::MockRequest.new(file(DOCROOT)).get("/cgi/blubb")

    res.should.be.not_found
  end

  should "detect SystemCallErrors" do
    res = Rack::MockRequest.new(file(DOCROOT)).get("/cgi")

    res.should.be.not_found
  end

  should "return bodies that respond to #to_path" do
    env = Rack::MockRequest.env_for("/cgi/test")
    status, _, body = Rack::File.new(DOCROOT).call(env)

    path = File.join(DOCROOT, "/cgi/test")

    status.should.equal 200
    body.should.respond_to :to_path
    body.to_path.should.equal path
  end

  should "return correct byte range in body" do
    env = Rack::MockRequest.env_for("/cgi/test")
    env["HTTP_RANGE"] = "bytes=22-33"
    res = Rack::MockResponse.new(*file(DOCROOT).call(env))

    res.status.should.equal 206
    res["Content-Length"].should.equal "12"
    res["Content-Range"].should.equal "bytes 22-33/193"
    res.body.should.equal "-*- ruby -*-"
  end

  should "return error for unsatisfiable byte range" do
    env = Rack::MockRequest.env_for("/cgi/test")
    env["HTTP_RANGE"] = "bytes=1234-5678"
    res = Rack::MockResponse.new(*file(DOCROOT).call(env))

    res.status.should.equal 416
    res["Content-Range"].should.equal "bytes */193"
  end

  should "support custom http headers" do
    env = Rack::MockRequest.env_for("/cgi/test")
    status, heads, _ = file(DOCROOT, 'Cache-Control' => 'public, max-age=38',
     'Access-Control-Allow-Origin' => '*').call(env)

    status.should.equal 200
    heads['Cache-Control'].should.equal 'public, max-age=38'
    heads['Access-Control-Allow-Origin'].should.equal '*'
  end

  should "support not add custom http headers if none are supplied" do
    env = Rack::MockRequest.env_for("/cgi/test")
    status, heads, _ = file(DOCROOT).call(env)

    status.should.equal 200
    heads['Cache-Control'].should.equal nil
    heads['Access-Control-Allow-Origin'].should.equal nil
  end

  should "only support GET, HEAD, and OPTIONS requests" do
    req = Rack::MockRequest.new(file(DOCROOT))

    forbidden = %w[post put patch delete]
    forbidden.each do |method|
      res = req.send(method, "/cgi/test")
      res.should.be.client_error
      res.should.be.method_not_allowed
      res.headers['Allow'].split(/, */).sort.should == %w(GET HEAD OPTIONS)
    end

    allowed = %w[get head options]
    allowed.each do |method|
      res = req.send(method, "/cgi/test")
      res.should.be.successful
    end
  end

  should "set Allow correctly for OPTIONS requests" do
    req = Rack::MockRequest.new(file(DOCROOT))
    res = req.options('/cgi/test')
    res.should.be.successful
    res.headers['Allow'].should.not.equal nil
    res.headers['Allow'].split(/, */).sort.should == %w(GET HEAD OPTIONS)
  end

  should "set Content-Length correctly for HEAD requests" do
    req = Rack::MockRequest.new(Rack::Lint.new(Rack::File.new(DOCROOT)))
    res = req.head "/cgi/test"
    res.should.be.successful
    res['Content-Length'].should.equal "193"
  end

  should "default to a mime type of text/plain" do
    req = Rack::MockRequest.new(Rack::Lint.new(Rack::File.new(DOCROOT)))
    res = req.get "/cgi/test"
    res.should.be.successful
    res['Content-Type'].should.equal "text/plain"
  end

  should "allow the default mime type to be set" do
    req = Rack::MockRequest.new(Rack::Lint.new(Rack::File.new(DOCROOT, nil, 'application/octet-stream')))
    res = req.get "/cgi/test"
    res.should.be.successful
    res['Content-Type'].should.equal "application/octet-stream"
  end

  should "not set Content-Type if the mime type is not set" do
    req = Rack::MockRequest.new(Rack::Lint.new(Rack::File.new(DOCROOT, nil, nil)))
    res = req.get "/cgi/test"
    res.should.be.successful
    res['Content-Type'].should.equal nil
  end

end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_commonlogger.rb000064400000004576150402106460017376 0ustar00require 'rack/commonlogger'
require 'rack/lint'
require 'rack/mock'

require 'logger'

describe Rack::CommonLogger do
  obj = 'foobar'
  length = obj.size

  app = Rack::Lint.new lambda { |env|
    [200,
     {"Content-Type" => "text/html", "Content-Length" => length.to_s},
     [obj]]}
  app_without_length = Rack::Lint.new lambda { |env|
    [200,
     {"Content-Type" => "text/html"},
     []]}
  app_with_zero_length = Rack::Lint.new lambda { |env|
    [200,
     {"Content-Type" => "text/html", "Content-Length" => "0"},
     []]}

  should "log to rack.errors by default" do
    res = Rack::MockRequest.new(Rack::CommonLogger.new(app)).get("/")

    res.errors.should.not.be.empty
    res.errors.should =~ /"GET \/ " 200 #{length} /
  end

  should "log to anything with +write+" do
    log = StringIO.new
    Rack::MockRequest.new(Rack::CommonLogger.new(app, log)).get("/")

    log.string.should =~ /"GET \/ " 200 #{length} /
  end

  should "work with standartd library logger" do
    logdev = StringIO.new
    log = Logger.new(logdev)
    Rack::MockRequest.new(Rack::CommonLogger.new(app, log)).get("/")

    logdev.string.should =~ /"GET \/ " 200 #{length} /
  end

  should "log - content length if header is missing" do
    res = Rack::MockRequest.new(Rack::CommonLogger.new(app_without_length)).get("/")

    res.errors.should.not.be.empty
    res.errors.should =~ /"GET \/ " 200 - /
  end

  should "log - content length if header is zero" do
    res = Rack::MockRequest.new(Rack::CommonLogger.new(app_with_zero_length)).get("/")

    res.errors.should.not.be.empty
    res.errors.should =~ /"GET \/ " 200 - /
  end

  def with_mock_time(t = 0)
    mc = class <<Time; self; end
    mc.send :alias_method, :old_now, :now
    mc.send :define_method, :now do
      at(t)
    end
    yield
  ensure
    mc.send :alias_method, :now, :old_now
  end

  should "log in common log format" do
    log = StringIO.new
    with_mock_time do
      Rack::MockRequest.new(Rack::CommonLogger.new(app, log)).get("/")
    end

    md = /- - - \[([^\]]+)\] "(\w+) \/ " (\d{3}) \d+ ([\d\.]+)/.match(log.string)
    md.should.not.equal nil
    time, method, status, duration = *md.captures
    time.should.equal Time.at(0).strftime("%d/%b/%Y:%H:%M:%S %z")
    method.should.equal "GET"
    status.should.equal "200"
    (0..1).should.include?(duration.to_f)
  end

  def length
    123
  end

  def self.obj
    "hello world"
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_urlmap.rb000064400000021510150402106460016171 0ustar00require 'rack/urlmap'
require 'rack/mock'

describe Rack::URLMap do
  it "dispatches paths correctly" do
    app = lambda { |env|
      [200, {
        'X-ScriptName' => env['SCRIPT_NAME'],
        'X-PathInfo' => env['PATH_INFO'],
        'Content-Type' => 'text/plain'
      }, [""]]
    }
    map = Rack::Lint.new(Rack::URLMap.new({
      'http://foo.org/bar' => app,
      '/foo' => app,
      '/foo/bar' => app
    }))

    res = Rack::MockRequest.new(map).get("/")
    res.should.be.not_found

    res = Rack::MockRequest.new(map).get("/qux")
    res.should.be.not_found

    res = Rack::MockRequest.new(map).get("/foo")
    res.should.be.ok
    res["X-ScriptName"].should.equal "/foo"
    res["X-PathInfo"].should.equal ""

    res = Rack::MockRequest.new(map).get("/foo/")
    res.should.be.ok
    res["X-ScriptName"].should.equal "/foo"
    res["X-PathInfo"].should.equal "/"

    res = Rack::MockRequest.new(map).get("/foo/bar")
    res.should.be.ok
    res["X-ScriptName"].should.equal "/foo/bar"
    res["X-PathInfo"].should.equal ""

    res = Rack::MockRequest.new(map).get("/foo/bar/")
    res.should.be.ok
    res["X-ScriptName"].should.equal "/foo/bar"
    res["X-PathInfo"].should.equal "/"

    res = Rack::MockRequest.new(map).get("/foo///bar//quux")
    res.status.should.equal 200
    res.should.be.ok
    res["X-ScriptName"].should.equal "/foo/bar"
    res["X-PathInfo"].should.equal "//quux"

    res = Rack::MockRequest.new(map).get("/foo/quux", "SCRIPT_NAME" => "/bleh")
    res.should.be.ok
    res["X-ScriptName"].should.equal "/bleh/foo"
    res["X-PathInfo"].should.equal "/quux"

    res = Rack::MockRequest.new(map).get("/bar", 'HTTP_HOST' => 'foo.org')
    res.should.be.ok
    res["X-ScriptName"].should.equal "/bar"
    res["X-PathInfo"].should.be.empty

    res = Rack::MockRequest.new(map).get("/bar/", 'HTTP_HOST' => 'foo.org')
    res.should.be.ok
    res["X-ScriptName"].should.equal "/bar"
    res["X-PathInfo"].should.equal '/'
  end


  it "dispatches hosts correctly" do
    map = Rack::Lint.new(Rack::URLMap.new("http://foo.org/" => lambda { |env|
                             [200,
                              { "Content-Type" => "text/plain",
                                "X-Position" => "foo.org",
                                "X-Host" => env["HTTP_HOST"] || env["SERVER_NAME"],
                              }, [""]]},
                           "http://subdomain.foo.org/" => lambda { |env|
                             [200,
                              { "Content-Type" => "text/plain",
                                "X-Position" => "subdomain.foo.org",
                                "X-Host" => env["HTTP_HOST"] || env["SERVER_NAME"],
                              }, [""]]},
                           "http://bar.org/" => lambda { |env|
                             [200,
                              { "Content-Type" => "text/plain",
                                "X-Position" => "bar.org",
                                "X-Host" => env["HTTP_HOST"] || env["SERVER_NAME"],
                              }, [""]]},
                           "/" => lambda { |env|
                             [200,
                              { "Content-Type" => "text/plain",
                                "X-Position" => "default.org",
                                "X-Host" => env["HTTP_HOST"] || env["SERVER_NAME"],
                              }, [""]]}
                           ))

    res = Rack::MockRequest.new(map).get("/")
    res.should.be.ok
    res["X-Position"].should.equal "default.org"

    res = Rack::MockRequest.new(map).get("/", "HTTP_HOST" => "bar.org")
    res.should.be.ok
    res["X-Position"].should.equal "bar.org"

    res = Rack::MockRequest.new(map).get("/", "HTTP_HOST" => "foo.org")
    res.should.be.ok
    res["X-Position"].should.equal "foo.org"

    res = Rack::MockRequest.new(map).get("/", "HTTP_HOST" => "subdomain.foo.org", "SERVER_NAME" => "foo.org")
    res.should.be.ok
    res["X-Position"].should.equal "subdomain.foo.org"

    res = Rack::MockRequest.new(map).get("http://foo.org/")
    res.should.be.ok
    res["X-Position"].should.equal "foo.org"

    res = Rack::MockRequest.new(map).get("/", "HTTP_HOST" => "example.org")
    res.should.be.ok
    res["X-Position"].should.equal "default.org"

    res = Rack::MockRequest.new(map).get("/",
                                         "HTTP_HOST" => "example.org:9292",
                                         "SERVER_PORT" => "9292")
    res.should.be.ok
    res["X-Position"].should.equal "default.org"
  end

  should "be nestable" do
    map = Rack::Lint.new(Rack::URLMap.new("/foo" =>
      Rack::URLMap.new("/bar" =>
        Rack::URLMap.new("/quux" =>  lambda { |env|
                           [200,
                            { "Content-Type" => "text/plain",
                              "X-Position" => "/foo/bar/quux",
                              "X-PathInfo" => env["PATH_INFO"],
                              "X-ScriptName" => env["SCRIPT_NAME"],
                            }, [""]]}
                         ))))

    res = Rack::MockRequest.new(map).get("/foo/bar")
    res.should.be.not_found

    res = Rack::MockRequest.new(map).get("/foo/bar/quux")
    res.should.be.ok
    res["X-Position"].should.equal "/foo/bar/quux"
    res["X-PathInfo"].should.equal ""
    res["X-ScriptName"].should.equal "/foo/bar/quux"
  end

  should "route root apps correctly" do
    map = Rack::Lint.new(Rack::URLMap.new("/" => lambda { |env|
                             [200,
                              { "Content-Type" => "text/plain",
                                "X-Position" => "root",
                                "X-PathInfo" => env["PATH_INFO"],
                                "X-ScriptName" => env["SCRIPT_NAME"]
                              }, [""]]},
                           "/foo" => lambda { |env|
                             [200,
                              { "Content-Type" => "text/plain",
                                "X-Position" => "foo",
                                "X-PathInfo" => env["PATH_INFO"],
                                "X-ScriptName" => env["SCRIPT_NAME"]
                              }, [""]]}
                           ))

    res = Rack::MockRequest.new(map).get("/foo/bar")
    res.should.be.ok
    res["X-Position"].should.equal "foo"
    res["X-PathInfo"].should.equal "/bar"
    res["X-ScriptName"].should.equal "/foo"

    res = Rack::MockRequest.new(map).get("/foo")
    res.should.be.ok
    res["X-Position"].should.equal "foo"
    res["X-PathInfo"].should.equal ""
    res["X-ScriptName"].should.equal "/foo"

    res = Rack::MockRequest.new(map).get("/bar")
    res.should.be.ok
    res["X-Position"].should.equal "root"
    res["X-PathInfo"].should.equal "/bar"
    res["X-ScriptName"].should.equal ""

    res = Rack::MockRequest.new(map).get("")
    res.should.be.ok
    res["X-Position"].should.equal "root"
    res["X-PathInfo"].should.equal "/"
    res["X-ScriptName"].should.equal ""
  end

  should "not squeeze slashes" do
    map = Rack::Lint.new(Rack::URLMap.new("/" => lambda { |env|
                             [200,
                              { "Content-Type" => "text/plain",
                                "X-Position" => "root",
                                "X-PathInfo" => env["PATH_INFO"],
                                "X-ScriptName" => env["SCRIPT_NAME"]
                              }, [""]]},
                           "/foo" => lambda { |env|
                             [200,
                              { "Content-Type" => "text/plain",
                                "X-Position" => "foo",
                                "X-PathInfo" => env["PATH_INFO"],
                                "X-ScriptName" => env["SCRIPT_NAME"]
                              }, [""]]}
                           ))

    res = Rack::MockRequest.new(map).get("/http://example.org/bar")
    res.should.be.ok
    res["X-Position"].should.equal "root"
    res["X-PathInfo"].should.equal "/http://example.org/bar"
    res["X-ScriptName"].should.equal ""
  end

  should "not be case sensitive with hosts" do
    map = Rack::Lint.new(Rack::URLMap.new("http://example.org/" => lambda { |env|
                             [200,
                              { "Content-Type" => "text/plain",
                                "X-Position" => "root",
                                "X-PathInfo" => env["PATH_INFO"],
                                "X-ScriptName" => env["SCRIPT_NAME"]
                              }, [""]]}
                           ))

    res = Rack::MockRequest.new(map).get("http://example.org/")
    res.should.be.ok
    res["X-Position"].should.equal "root"
    res["X-PathInfo"].should.equal "/"
    res["X-ScriptName"].should.equal ""

    res = Rack::MockRequest.new(map).get("http://EXAMPLE.ORG/")
    res.should.be.ok
    res["X-Position"].should.equal "root"
    res["X-PathInfo"].should.equal "/"
    res["X-ScriptName"].should.equal ""
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_request.rb000064400000125031150402106460016364 0ustar00require 'stringio'
require 'cgi'
require 'rack/request'
require 'rack/mock'
require 'securerandom'

describe Rack::Request do
  should "wrap the rack variables" do
    req = Rack::Request.new(Rack::MockRequest.env_for("http://example.com:8080/"))

    req.body.should.respond_to? :gets
    req.scheme.should.equal "http"
    req.request_method.should.equal "GET"

    req.should.be.get
    req.should.not.be.post
    req.should.not.be.put
    req.should.not.be.delete
    req.should.not.be.head
    req.should.not.be.patch

    req.script_name.should.equal ""
    req.path_info.should.equal "/"
    req.query_string.should.equal ""

    req.host.should.equal "example.com"
    req.port.should.equal 8080

    req.content_length.should.equal "0"
    req.content_type.should.be.nil
  end

  should "figure out the correct host" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "www2.example.org")
    req.host.should.equal "www2.example.org"

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "SERVER_NAME" => "example.org", "SERVER_PORT" => "9292")
    req.host.should.equal "example.org"

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost:81", "HTTP_X_FORWARDED_HOST" => "example.org:9292")
    req.host.should.equal "example.org"

    env = Rack::MockRequest.env_for("/", "SERVER_ADDR" => "192.168.1.1", "SERVER_PORT" => "9292")
    env.delete("SERVER_NAME")
    req = Rack::Request.new(env)
    req.host.should.equal "192.168.1.1"

    env = Rack::MockRequest.env_for("/")
    env.delete("SERVER_NAME")
    req = Rack::Request.new(env)
    req.host.should.equal ""
  end

  should "figure out the correct port" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "www2.example.org")
    req.port.should.equal 80

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "www2.example.org:81")
    req.port.should.equal 81

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "SERVER_NAME" => "example.org", "SERVER_PORT" => "9292")
    req.port.should.equal 9292

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost:81", "HTTP_X_FORWARDED_HOST" => "example.org:9292")
    req.port.should.equal 9292

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost:81", "HTTP_X_FORWARDED_HOST" => "example.org")
    req.port.should.equal 80

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost:81", "HTTP_X_FORWARDED_HOST" => "example.org", "HTTP_X_FORWARDED_SSL" => "on")
    req.port.should.equal 443

     req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost:81", "HTTP_X_FORWARDED_HOST" => "example.org", "HTTP_X_FORWARDED_PROTO" => "https")
    req.port.should.equal 443

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost:81", "HTTP_X_FORWARDED_HOST" => "example.org", "HTTP_X_FORWARDED_PORT" => "9393")
    req.port.should.equal 9393

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost:81", "HTTP_X_FORWARDED_HOST" => "example.org:9393", "SERVER_PORT" => "80")
    req.port.should.equal 9393

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost:81", "HTTP_X_FORWARDED_HOST" => "example.org", "SERVER_PORT" => "9393")
    req.port.should.equal 80

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost", "HTTP_X_FORWARDED_PROTO" => "https", "SERVER_PORT" => "80")
    req.port.should.equal 443

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost", "HTTP_X_FORWARDED_PROTO" => "https,https", "SERVER_PORT" => "80")
    req.port.should.equal 443
  end

  should "figure out the correct host with port" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "www2.example.org")
    req.host_with_port.should.equal "www2.example.org"

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost:81")
    req.host_with_port.should.equal "localhost:81"

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "SERVER_NAME" => "example.org", "SERVER_PORT" => "9292")
    req.host_with_port.should.equal "example.org:9292"

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost:81", "HTTP_X_FORWARDED_HOST" => "example.org:9292")
    req.host_with_port.should.equal "example.org:9292"

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_HOST" => "localhost:81", "HTTP_X_FORWARDED_HOST" => "example.org", "SERVER_PORT" => "9393")
    req.host_with_port.should.equal "example.org"
  end

  should "parse the query string" do
    req = Rack::Request.new(Rack::MockRequest.env_for("/?foo=bar&quux=bla"))
    req.query_string.should.equal "foo=bar&quux=bla"
    req.GET.should.equal "foo" => "bar", "quux" => "bla"
    req.POST.should.be.empty
    req.params.should.equal "foo" => "bar", "quux" => "bla"
  end

  should "not truncate query strings containing semi-colons #543 only in POST" do
    mr = Rack::MockRequest.env_for("/",
      "REQUEST_METHOD" => 'POST',
      :input => "foo=bar&quux=b;la")
    req = Rack::Request.new mr
    req.query_string.should.equal ""
    req.GET.should.be.empty
    req.POST.should.equal "foo" => "bar", "quux" => "b;la"
    req.params.should.equal req.GET.merge(req.POST)
  end

  should "use semi-colons as separators for query strings in GET" do
    req = Rack::Request.new(Rack::MockRequest.env_for("/?foo=bar&quux=b;la;wun=duh"))
    req.query_string.should.equal "foo=bar&quux=b;la;wun=duh"
    req.GET.should.equal "foo" => "bar", "quux" => "b", "la" => nil, "wun" => "duh"
    req.POST.should.be.empty
    req.params.should.equal "foo" => "bar", "quux" => "b", "la" => nil, "wun" => "duh"
  end

  should "limit the keys from the GET query string" do
    env = Rack::MockRequest.env_for("/?foo=bar")

    old, Rack::Utils.key_space_limit = Rack::Utils.key_space_limit, 1
    begin
      req = Rack::Request.new(env)
      lambda { req.GET }.should.raise(RangeError)
    ensure
      Rack::Utils.key_space_limit = old
    end
  end

  should "limit the key size per nested params hash" do
    nested_query = Rack::MockRequest.env_for("/?foo%5Bbar%5D%5Bbaz%5D%5Bqux%5D=1")
    plain_query  = Rack::MockRequest.env_for("/?foo_bar__baz__qux_=1")

    old, Rack::Utils.key_space_limit = Rack::Utils.key_space_limit, 3
    begin
      lambda { Rack::Request.new(nested_query).GET }.should.not.raise(RangeError)
      lambda { Rack::Request.new(plain_query).GET  }.should.raise(RangeError)
    ensure
      Rack::Utils.key_space_limit = old
    end
  end

  should "not unify GET and POST when calling params" do
    mr = Rack::MockRequest.env_for("/?foo=quux",
      "REQUEST_METHOD" => 'POST',
      :input => "foo=bar&quux=bla"
    )
    req = Rack::Request.new mr

    req.params

    req.GET.should.equal "foo" => "quux"
    req.POST.should.equal "foo" => "bar", "quux" => "bla"
    req.params.should.equal req.GET.merge(req.POST)
  end

  should "raise if input params has invalid %-encoding" do
    mr = Rack::MockRequest.env_for("/?foo=quux",
      "REQUEST_METHOD" => 'POST',
      :input => "a%=1"
    )
    req = Rack::Request.new mr

    lambda { req.POST }.
      should.raise(Rack::Utils::InvalidParameterError).
      message.should.equal "invalid %-encoding (a%)"
  end

  should "raise if rack.input is missing" do
    req = Rack::Request.new({})
    lambda { req.POST }.should.raise(RuntimeError)
  end

  should "parse POST data when method is POST and no Content-Type given" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/?foo=quux",
        "REQUEST_METHOD" => 'POST',
        :input => "foo=bar&quux=bla")
    req.content_type.should.be.nil
    req.media_type.should.be.nil
    req.query_string.should.equal "foo=quux"
    req.GET.should.equal "foo" => "quux"
    req.POST.should.equal "foo" => "bar", "quux" => "bla"
    req.params.should.equal "foo" => "bar", "quux" => "bla"
  end

  should "limit the keys from the POST form data" do
    env = Rack::MockRequest.env_for("",
            "REQUEST_METHOD" => 'POST',
            :input => "foo=bar&quux=bla")

    old, Rack::Utils.key_space_limit = Rack::Utils.key_space_limit, 1
    begin
      req = Rack::Request.new(env)
      lambda { req.POST }.should.raise(RangeError)
    ensure
      Rack::Utils.key_space_limit = old
    end
  end

  should "parse POST data with explicit content type regardless of method" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/",
        "CONTENT_TYPE" => 'application/x-www-form-urlencoded;foo=bar',
        :input => "foo=bar&quux=bla")
    req.content_type.should.equal 'application/x-www-form-urlencoded;foo=bar'
    req.media_type.should.equal 'application/x-www-form-urlencoded'
    req.media_type_params['foo'].should.equal 'bar'
    req.POST.should.equal "foo" => "bar", "quux" => "bla"
    req.params.should.equal "foo" => "bar", "quux" => "bla"
  end

  should "not parse POST data when media type is not form-data" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/?foo=quux",
        "REQUEST_METHOD" => 'POST',
        "CONTENT_TYPE" => 'text/plain;charset=utf-8',
        :input => "foo=bar&quux=bla")
    req.content_type.should.equal 'text/plain;charset=utf-8'
    req.media_type.should.equal 'text/plain'
    req.media_type_params['charset'].should.equal 'utf-8'
    req.POST.should.be.empty
    req.params.should.equal "foo" => "quux"
    req.body.read.should.equal "foo=bar&quux=bla"
  end

  should "parse POST data on PUT when media type is form-data" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/?foo=quux",
        "REQUEST_METHOD" => 'PUT',
        "CONTENT_TYPE" => 'application/x-www-form-urlencoded',
        :input => "foo=bar&quux=bla")
    req.POST.should.equal "foo" => "bar", "quux" => "bla"
    req.body.read.should.equal "foo=bar&quux=bla"
  end

  should "rewind input after parsing POST data" do
    input = StringIO.new("foo=bar&quux=bla")
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/",
        "CONTENT_TYPE" => 'application/x-www-form-urlencoded;foo=bar',
        :input => input)
    req.params.should.equal "foo" => "bar", "quux" => "bla"
    input.read.should.equal "foo=bar&quux=bla"
  end

  should "clean up Safari's ajax POST body" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/",
        'REQUEST_METHOD' => 'POST', :input => "foo=bar&quux=bla\0")
    req.POST.should.equal "foo" => "bar", "quux" => "bla"
  end

  should "get value by key from params with #[]" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("?foo=quux")
    req['foo'].should.equal 'quux'
    req[:foo].should.equal 'quux'
  end

  should "set value to key on params with #[]=" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("?foo=duh")
    req['foo'].should.equal 'duh'
    req[:foo].should.equal 'duh'
    req.params.should.equal 'foo' => 'duh'

    req['foo'] = 'bar'
    req.params.should.equal 'foo' => 'bar'
    req['foo'].should.equal 'bar'
    req[:foo].should.equal 'bar'

    req[:foo] = 'jaz'
    req.params.should.equal 'foo' => 'jaz'
    req['foo'].should.equal 'jaz'
    req[:foo].should.equal 'jaz'
  end

  should "return values for the keys in the order given from values_at" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("?foo=baz&wun=der&bar=ful")
    req.values_at('foo').should.equal ['baz']
    req.values_at('foo', 'wun').should.equal ['baz', 'der']
    req.values_at('bar', 'foo', 'wun').should.equal ['ful', 'baz', 'der']
  end

  should "extract referrer correctly" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_REFERER" => "/some/path")
    req.referer.should.equal "/some/path"

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/")
    req.referer.should.equal nil
  end

  should "extract user agent correctly" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "HTTP_USER_AGENT" => "Mozilla/4.0 (compatible)")
    req.user_agent.should.equal "Mozilla/4.0 (compatible)"

    req = Rack::Request.new \
      Rack::MockRequest.env_for("/")
    req.user_agent.should.equal nil
  end

  should "treat missing content type as nil" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/")
    req.content_type.should.equal nil
  end

  should "treat empty content type as nil" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "CONTENT_TYPE" => "")
    req.content_type.should.equal nil
  end

  should "return nil media type for empty content type" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/", "CONTENT_TYPE" => "")
    req.media_type.should.equal nil
  end

  should "cache, but invalidates the cache" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/?foo=quux",
        "CONTENT_TYPE" => "application/x-www-form-urlencoded",
        :input => "foo=bar&quux=bla")
    req.GET.should.equal "foo" => "quux"
    req.GET.should.equal "foo" => "quux"
    req.env["QUERY_STRING"] = "bla=foo"
    req.GET.should.equal "bla" => "foo"
    req.GET.should.equal "bla" => "foo"

    req.POST.should.equal "foo" => "bar", "quux" => "bla"
    req.POST.should.equal "foo" => "bar", "quux" => "bla"
    req.env["rack.input"] = StringIO.new("foo=bla&quux=bar")
    req.POST.should.equal "foo" => "bla", "quux" => "bar"
    req.POST.should.equal "foo" => "bla", "quux" => "bar"
  end

  should "figure out if called via XHR" do
    req = Rack::Request.new(Rack::MockRequest.env_for(""))
    req.should.not.be.xhr

    req = Rack::Request.new \
      Rack::MockRequest.env_for("", "HTTP_X_REQUESTED_WITH" => "XMLHttpRequest")
    req.should.be.xhr
  end

  should "ssl detection" do
    request = Rack::Request.new(Rack::MockRequest.env_for("/"))
    request.scheme.should.equal "http"
    request.should.not.be.ssl?

    request = Rack::Request.new(Rack::MockRequest.env_for("/", 'HTTPS' => 'on'))
    request.scheme.should.equal "https"
    request.should.be.ssl?

    request = Rack::Request.new(Rack::MockRequest.env_for("/", 'rack.url_scheme' => 'https'))
    request.scheme.should.equal "https"
    request.should.be.ssl?

    request = Rack::Request.new(Rack::MockRequest.env_for("/", 'HTTP_HOST' => 'www.example.org:8080'))
    request.scheme.should.equal "http"
    request.should.not.be.ssl?

    request = Rack::Request.new(Rack::MockRequest.env_for("/", 'HTTP_HOST' => 'www.example.org:8443', 'HTTPS' => 'on'))
    request.scheme.should.equal "https"
    request.should.be.ssl?

    request = Rack::Request.new(Rack::MockRequest.env_for("/", 'HTTP_HOST' => 'www.example.org:8443', 'HTTP_X_FORWARDED_SSL' => 'on'))
    request.scheme.should.equal "https"
    request.should.be.ssl?

    request = Rack::Request.new(Rack::MockRequest.env_for("/", 'HTTP_X_FORWARDED_SCHEME' => 'https'))
    request.scheme.should.equal "https"
    request.should.be.ssl?

    request = Rack::Request.new(Rack::MockRequest.env_for("/", 'HTTP_X_FORWARDED_PROTO' => 'https'))
    request.scheme.should.equal "https"
    request.should.be.ssl?

    request = Rack::Request.new(Rack::MockRequest.env_for("/", 'HTTP_X_FORWARDED_PROTO' => 'https, http, http'))
    request.scheme.should.equal "https"
    request.should.be.ssl?
  end

  should "parse cookies" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("", "HTTP_COOKIE" => "foo=bar;quux=h&m")
    req.cookies.should.equal "foo" => "bar", "quux" => "h&m"
    req.cookies.should.equal "foo" => "bar", "quux" => "h&m"
    req.env.delete("HTTP_COOKIE")
    req.cookies.should.equal({})
  end

  should "always return the same hash object" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("", "HTTP_COOKIE" => "foo=bar;quux=h&m")
    hash = req.cookies
    req.env.delete("HTTP_COOKIE")
    req.cookies.should.equal(hash)
    req.env["HTTP_COOKIE"] = "zoo=m"
    req.cookies.should.equal(hash)
  end

  should "modify the cookies hash in place" do
    req = Rack::Request.new(Rack::MockRequest.env_for(""))
    req.cookies.should.equal({})
    req.cookies['foo'] = 'bar'
    req.cookies.should.equal 'foo' => 'bar'
  end

  should "not modify the params hash in place" do
    e = Rack::MockRequest.env_for("")
    req1 = Rack::Request.new(e)
    req1.params.should.equal({})
    req1.params['foo'] = 'bar'
    req1.params.should.equal 'foo' => 'bar'
    req2 = Rack::Request.new(e)
    req2.params.should.equal({})
  end

  should "modify params hash if param is in GET" do
    e = Rack::MockRequest.env_for("?foo=duh")
    req1 = Rack::Request.new(e)
    req1.params.should.equal 'foo' => 'duh'
    req1.update_param 'foo', 'bar'
    req1.params.should.equal 'foo' => 'bar'
    req2 = Rack::Request.new(e)
    req2.params.should.equal 'foo' => 'bar'
  end

  should "modify params hash if param is in POST" do
    e = Rack::MockRequest.env_for("", "REQUEST_METHOD" => 'POST', :input => 'foo=duh')
    req1 = Rack::Request.new(e)
    req1.params.should.equal 'foo' => 'duh'
    req1.update_param 'foo', 'bar'
    req1.params.should.equal 'foo' => 'bar'
    req2 = Rack::Request.new(e)
    req2.params.should.equal 'foo' => 'bar'
  end

  should "modify params hash, even if param didn't exist before" do
    e = Rack::MockRequest.env_for("")
    req1 = Rack::Request.new(e)
    req1.params.should.equal({})
    req1.update_param 'foo', 'bar'
    req1.params.should.equal 'foo' => 'bar'
    req2 = Rack::Request.new(e)
    req2.params.should.equal 'foo' => 'bar'
  end

  should "modify params hash by changing only GET" do
    e = Rack::MockRequest.env_for("?foo=duhget")
    req = Rack::Request.new(e)
    req.GET.should.equal 'foo' => 'duhget'
    req.POST.should.equal({})
    req.update_param 'foo', 'bar'
    req.GET.should.equal 'foo' => 'bar'
    req.POST.should.equal({})
  end

  should "modify params hash by changing only POST" do
    e = Rack::MockRequest.env_for("", "REQUEST_METHOD" => 'POST', :input => "foo=duhpost")
    req = Rack::Request.new(e)
    req.GET.should.equal({})
    req.POST.should.equal 'foo' => 'duhpost'
    req.update_param 'foo', 'bar'
    req.GET.should.equal({})
    req.POST.should.equal 'foo' => 'bar'
  end

  should "modify params hash, even if param is defined in both POST and GET" do
    e = Rack::MockRequest.env_for("?foo=duhget", "REQUEST_METHOD" => 'POST', :input => "foo=duhpost")
    req1 = Rack::Request.new(e)
    req1.GET.should.equal 'foo' => 'duhget'
    req1.POST.should.equal 'foo' => 'duhpost'
    req1.params.should.equal 'foo' => 'duhpost'
    req1.update_param 'foo', 'bar'
    req1.GET.should.equal 'foo' => 'bar'
    req1.POST.should.equal 'foo' => 'bar'
    req1.params.should.equal 'foo' => 'bar'
    req2 = Rack::Request.new(e)
    req2.GET.should.equal 'foo' => 'bar'
    req2.POST.should.equal 'foo' => 'bar'
    req2.params.should.equal 'foo' => 'bar'
    req2.params.should.equal 'foo' => 'bar'
  end

  should "allow deleting from params hash if param is in GET" do
    e = Rack::MockRequest.env_for("?foo=bar")
    req1 = Rack::Request.new(e)
    req1.params.should.equal 'foo' => 'bar'
    req1.delete_param('foo').should.equal 'bar'
    req1.params.should.equal({})
    req2 = Rack::Request.new(e)
    req2.params.should.equal({})
  end

  should "allow deleting from params hash if param is in POST" do
    e = Rack::MockRequest.env_for("", "REQUEST_METHOD" => 'POST', :input => 'foo=bar')
    req1 = Rack::Request.new(e)
    req1.params.should.equal 'foo' => 'bar'
    req1.delete_param('foo').should.equal 'bar'
    req1.params.should.equal({})
    req2 = Rack::Request.new(e)
    req2.params.should.equal({})
  end

  should "pass through non-uri escaped cookies as-is" do
    req = Rack::Request.new Rack::MockRequest.env_for("", "HTTP_COOKIE" => "foo=%")
    req.cookies["foo"].should == "%"
  end

  should "parse cookies according to RFC 2109" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for('', 'HTTP_COOKIE' => 'foo=bar;foo=car')
    req.cookies.should.equal 'foo' => 'bar'
  end

  should 'parse cookies with quotes' do
    req = Rack::Request.new Rack::MockRequest.env_for('', {
      'HTTP_COOKIE' => '$Version="1"; Customer="WILE_E_COYOTE"; $Path="/acme"; Part_Number="Rocket_Launcher_0001"; $Path="/acme"'
    })
    req.cookies.should.equal({
      '$Version'    => '"1"',
      'Customer'    => '"WILE_E_COYOTE"',
      '$Path'       => '"/acme"',
      'Part_Number' => '"Rocket_Launcher_0001"',
    })
  end

  should "provide setters" do
    req = Rack::Request.new(e=Rack::MockRequest.env_for(""))
    req.script_name.should.equal ""
    req.script_name = "/foo"
    req.script_name.should.equal "/foo"
    e["SCRIPT_NAME"].should.equal "/foo"

    req.path_info.should.equal "/"
    req.path_info = "/foo"
    req.path_info.should.equal "/foo"
    e["PATH_INFO"].should.equal "/foo"
  end

  should "provide the original env" do
    req = Rack::Request.new(e = Rack::MockRequest.env_for(""))
    req.env.should == e
  end

  should "restore the base URL" do
    Rack::Request.new(Rack::MockRequest.env_for("")).base_url.
      should.equal "http://example.org"
    Rack::Request.new(Rack::MockRequest.env_for("", "SCRIPT_NAME" => "/foo")).base_url.
      should.equal "http://example.org"
  end

  should "restore the URL" do
    Rack::Request.new(Rack::MockRequest.env_for("")).url.
      should.equal "http://example.org/"
    Rack::Request.new(Rack::MockRequest.env_for("", "SCRIPT_NAME" => "/foo")).url.
      should.equal "http://example.org/foo/"
    Rack::Request.new(Rack::MockRequest.env_for("/foo")).url.
      should.equal "http://example.org/foo"
    Rack::Request.new(Rack::MockRequest.env_for("?foo")).url.
      should.equal "http://example.org/?foo"
    Rack::Request.new(Rack::MockRequest.env_for("http://example.org:8080/")).url.
      should.equal "http://example.org:8080/"
    Rack::Request.new(Rack::MockRequest.env_for("https://example.org/")).url.
      should.equal "https://example.org/"
    Rack::Request.new(Rack::MockRequest.env_for("coffee://example.org/")).url.
      should.equal "coffee://example.org/"
    Rack::Request.new(Rack::MockRequest.env_for("coffee://example.org:443/")).url.
      should.equal "coffee://example.org:443/"
    Rack::Request.new(Rack::MockRequest.env_for("https://example.com:8080/foo?foo")).url.
      should.equal "https://example.com:8080/foo?foo"
  end

  should "restore the full path" do
    Rack::Request.new(Rack::MockRequest.env_for("")).fullpath.
      should.equal "/"
    Rack::Request.new(Rack::MockRequest.env_for("", "SCRIPT_NAME" => "/foo")).fullpath.
      should.equal "/foo/"
    Rack::Request.new(Rack::MockRequest.env_for("/foo")).fullpath.
      should.equal "/foo"
    Rack::Request.new(Rack::MockRequest.env_for("?foo")).fullpath.
      should.equal "/?foo"
    Rack::Request.new(Rack::MockRequest.env_for("http://example.org:8080/")).fullpath.
      should.equal "/"
    Rack::Request.new(Rack::MockRequest.env_for("https://example.org/")).fullpath.
      should.equal "/"

    Rack::Request.new(Rack::MockRequest.env_for("https://example.com:8080/foo?foo")).fullpath.
      should.equal "/foo?foo"
  end

  should "handle multiple media type parameters" do
    req = Rack::Request.new \
      Rack::MockRequest.env_for("/",
        "CONTENT_TYPE" => 'text/plain; foo=BAR,baz=bizzle dizzle;BLING=bam;blong="boo";zump="zoo\"o";weird=lol"')
      req.should.not.be.form_data
      req.media_type_params.should.include 'foo'
      req.media_type_params['foo'].should.equal 'BAR'
      req.media_type_params.should.include 'baz'
      req.media_type_params['baz'].should.equal 'bizzle dizzle'
      req.media_type_params.should.not.include 'BLING'
      req.media_type_params.should.include 'bling'
      req.media_type_params['bling'].should.equal 'bam'
      req.media_type_params['blong'].should.equal 'boo'
      req.media_type_params['zump'].should.equal 'zoo\"o'
      req.media_type_params['weird'].should.equal 'lol"'
  end

  should "parse with junk before boundry" do
    # Adapted from RFC 1867.
    input = <<EOF
blah blah\r
\r
--AaB03x\r
content-disposition: form-data; name="reply"\r
\r
yes\r
--AaB03x\r
content-disposition: form-data; name="fileupload"; filename="dj.jpg"\r
Content-Type: image/jpeg\r
Content-Transfer-Encoding: base64\r
\r
/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg\r
--AaB03x--\r
EOF
    req = Rack::Request.new Rack::MockRequest.env_for("/",
                      "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                      "CONTENT_LENGTH" => input.size,
                      :input => input)

    req.POST.should.include "fileupload"
    req.POST.should.include "reply"

    req.should.be.form_data
    req.content_length.should.equal input.size
    req.media_type.should.equal 'multipart/form-data'
    req.media_type_params.should.include 'boundary'
    req.media_type_params['boundary'].should.equal 'AaB03x'

    req.POST["reply"].should.equal "yes"

    f = req.POST["fileupload"]
    f.should.be.kind_of Hash
    f[:type].should.equal "image/jpeg"
    f[:filename].should.equal "dj.jpg"
    f.should.include :tempfile
    f[:tempfile].size.should.equal 76
  end

  should "not infinite loop with a malformed HTTP request" do
    # Adapted from RFC 1867.
    input = <<EOF
--AaB03x
content-disposition: form-data; name="reply"

yes
--AaB03x
content-disposition: form-data; name="fileupload"; filename="dj.jpg"
Content-Type: image/jpeg
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg
--AaB03x--
EOF
    req = Rack::Request.new Rack::MockRequest.env_for("/",
                      "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                      "CONTENT_LENGTH" => input.size,
                      :input => input)

    lambda{req.POST}.should.raise(EOFError)
  end


  should "parse multipart form data" do
    # Adapted from RFC 1867.
    input = <<EOF
--AaB03x\r
content-disposition: form-data; name="reply"\r
\r
yes\r
--AaB03x\r
content-disposition: form-data; name="fileupload"; filename="dj.jpg"\r
Content-Type: image/jpeg\r
Content-Transfer-Encoding: base64\r
\r
/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg\r
--AaB03x--\r
EOF
    req = Rack::Request.new Rack::MockRequest.env_for("/",
                      "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                      "CONTENT_LENGTH" => input.size,
                      :input => input)

    req.POST.should.include "fileupload"
    req.POST.should.include "reply"

    req.should.be.form_data
    req.content_length.should.equal input.size
    req.media_type.should.equal 'multipart/form-data'
    req.media_type_params.should.include 'boundary'
    req.media_type_params['boundary'].should.equal 'AaB03x'

    req.POST["reply"].should.equal "yes"

    f = req.POST["fileupload"]
    f.should.be.kind_of Hash
    f[:type].should.equal "image/jpeg"
    f[:filename].should.equal "dj.jpg"
    f.should.include :tempfile
    f[:tempfile].size.should.equal 76
  end

  should "MultipartPartLimitError when request has too many multipart parts if limit set" do
    begin
      data = 10000.times.map { "--AaB03x\r\nContent-Type: text/plain\r\nContent-Disposition: attachment; name=#{SecureRandom.hex(10)}; filename=#{SecureRandom.hex(10)}\r\n\r\ncontents\r\n" }.join("\r\n")
      data += "--AaB03x--\r"

      options = {
        "CONTENT_TYPE" => "multipart/form-data; boundary=AaB03x",
        "CONTENT_LENGTH" => data.length.to_s,
        :input => StringIO.new(data)
      }

      request = Rack::Request.new Rack::MockRequest.env_for("/", options)
      lambda { request.POST }.should.raise(Rack::Multipart::MultipartPartLimitError)
    end
  end

  should "parse big multipart form data" do
    input = <<EOF
--AaB03x\r
content-disposition: form-data; name="huge"; filename="huge"\r
\r
#{"x"*32768}\r
--AaB03x\r
content-disposition: form-data; name="mean"; filename="mean"\r
\r
--AaB03xha\r
--AaB03x--\r
EOF
    req = Rack::Request.new Rack::MockRequest.env_for("/",
                      "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                      "CONTENT_LENGTH" => input.size,
                      :input => input)

    req.POST["huge"][:tempfile].size.should.equal 32768
    req.POST["mean"][:tempfile].size.should.equal 10
    req.POST["mean"][:tempfile].read.should.equal "--AaB03xha"
  end

  should "record tempfiles from multipart form data in env[rack.tempfiles]" do
    input = <<EOF
--AaB03x\r
content-disposition: form-data; name="fileupload"; filename="foo.jpg"\r
Content-Type: image/jpeg\r
Content-Transfer-Encoding: base64\r
\r
/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg\r
--AaB03x\r
content-disposition: form-data; name="fileupload"; filename="bar.jpg"\r
Content-Type: image/jpeg\r
Content-Transfer-Encoding: base64\r
\r
/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg\r
--AaB03x--\r
EOF
    env = Rack::MockRequest.env_for("/",
                          "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                          "CONTENT_LENGTH" => input.size,
                          :input => input)
    req = Rack::Request.new(env)
    req.params
    env['rack.tempfiles'].size.should.equal(2)
  end

  should "detect invalid multipart form data" do
    input = <<EOF
--AaB03x\r
content-disposition: form-data; name="huge"; filename="huge"\r
EOF
    req = Rack::Request.new Rack::MockRequest.env_for("/",
                      "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                      "CONTENT_LENGTH" => input.size,
                      :input => input)

    lambda { req.POST }.should.raise(EOFError)

    input = <<EOF
--AaB03x\r
content-disposition: form-data; name="huge"; filename="huge"\r
\r
foo\r
EOF
    req = Rack::Request.new Rack::MockRequest.env_for("/",
                      "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                      "CONTENT_LENGTH" => input.size,
                      :input => input)

    lambda { req.POST }.should.raise(EOFError)

    input = <<EOF
--AaB03x\r
content-disposition: form-data; name="huge"; filename="huge"\r
\r
foo\r
EOF
    req = Rack::Request.new Rack::MockRequest.env_for("/",
                      "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                      "CONTENT_LENGTH" => input.size,
                      :input => input)

    lambda { req.POST }.should.raise(EOFError)
  end

  should "consistently raise EOFError on bad multipart form data" do
    input = <<EOF
--AaB03x\r
content-disposition: form-data; name="huge"; filename="huge"\r
EOF
    req = Rack::Request.new Rack::MockRequest.env_for("/",
                      "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                      "CONTENT_LENGTH" => input.size,
                      :input => input)

    lambda { req.POST }.should.raise(EOFError)
    lambda { req.POST }.should.raise(EOFError)
  end

  should "correctly parse the part name from Content-Id header" do
    input = <<EOF
--AaB03x\r
Content-Type: text/xml; charset=utf-8\r
Content-Id: <soap-start>\r
Content-Transfer-Encoding: 7bit\r
\r
foo\r
--AaB03x--\r
EOF
    req = Rack::Request.new Rack::MockRequest.env_for("/",
                      "CONTENT_TYPE" => "multipart/related, boundary=AaB03x",
                      "CONTENT_LENGTH" => input.size,
                      :input => input)

    req.params.keys.should.equal ["<soap-start>"]
  end

  should "not try to interpret binary as utf8" do
    if /regexp/.respond_to?(:kcode) # < 1.9
      begin
        original_kcode = $KCODE
        $KCODE='UTF8'

        input = <<EOF
--AaB03x\r
content-disposition: form-data; name="fileupload"; filename="junk.a"\r
content-type: application/octet-stream\r
\r
#{[0x36,0xCF,0x0A,0xF8].pack('c*')}\r
--AaB03x--\r
EOF

        req = Rack::Request.new Rack::MockRequest.env_for("/",
                          "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                          "CONTENT_LENGTH" => input.size,
                          :input => input)

        lambda{req.POST}.should.not.raise(EOFError)
        req.POST["fileupload"][:tempfile].size.should.equal 4
      ensure
        $KCODE = original_kcode
      end
    else # >= 1.9
        input = <<EOF
--AaB03x\r
content-disposition: form-data; name="fileupload"; filename="junk.a"\r
content-type: application/octet-stream\r
\r
#{[0x36,0xCF,0x0A,0xF8].pack('c*')}\r
--AaB03x--\r
EOF

      req = Rack::Request.new Rack::MockRequest.env_for("/",
                        "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                        "CONTENT_LENGTH" => input.size,
                        :input => input)

      lambda{req.POST}.should.not.raise(EOFError)
      req.POST["fileupload"][:tempfile].size.should.equal 4
    end
  end

  should "work around buggy 1.8.* Tempfile equality" do
    input = <<EOF
--AaB03x\r
content-disposition: form-data; name="huge"; filename="huge"\r
\r
foo\r
--AaB03x--
EOF

    rack_input = Tempfile.new("rackspec")
    rack_input.write(input)
    rack_input.rewind

    req = Rack::Request.new Rack::MockRequest.env_for("/",
                      "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
                      "CONTENT_LENGTH" => input.size,
                      :input => rack_input)

    lambda{ req.POST }.should.not.raise
    lambda{ req.POST }.should.not.raise("input re-processed!")
  end

  should "use form_hash when form_input is a Tempfile" do
    input = "{foo: 'bar'}"

    rack_input = Tempfile.new("rackspec")
    rack_input.write(input)
    rack_input.rewind

    req = Rack::Request.new Rack::MockRequest.env_for("/",
                      "rack.request.form_hash" => {'foo' => 'bar'},
                      "rack.request.form_input" => rack_input,
                      :input => rack_input)

    req.POST.should.equal(req.env['rack.request.form_hash'])
  end

  should "conform to the Rack spec" do
    app = lambda { |env|
      content = Rack::Request.new(env).POST["file"].inspect
      size = content.respond_to?(:bytesize) ? content.bytesize : content.size
      [200, {"Content-Type" => "text/html", "Content-Length" => size.to_s}, [content]]
    }

    input = <<EOF
--AaB03x\r
content-disposition: form-data; name="reply"\r
\r
yes\r
--AaB03x\r
content-disposition: form-data; name="fileupload"; filename="dj.jpg"\r
Content-Type: image/jpeg\r
Content-Transfer-Encoding: base64\r
\r
/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg\r
--AaB03x--\r
EOF
    input.force_encoding("ASCII-8BIT") if input.respond_to? :force_encoding
    res = Rack::MockRequest.new(Rack::Lint.new(app)).get "/",
      "CONTENT_TYPE" => "multipart/form-data, boundary=AaB03x",
      "CONTENT_LENGTH" => input.size.to_s, "rack.input" => StringIO.new(input)

    res.should.be.ok
  end

  should "parse Accept-Encoding correctly" do
    parser = lambda do |x|
      Rack::Request.new(Rack::MockRequest.env_for("", "HTTP_ACCEPT_ENCODING" => x)).accept_encoding
    end

    parser.call(nil).should.equal([])

    parser.call("compress, gzip").should.equal([["compress", 1.0], ["gzip", 1.0]])
    parser.call("").should.equal([])
    parser.call("*").should.equal([["*", 1.0]])
    parser.call("compress;q=0.5, gzip;q=1.0").should.equal([["compress", 0.5], ["gzip", 1.0]])
    parser.call("gzip;q=1.0, identity; q=0.5, *;q=0").should.equal([["gzip", 1.0], ["identity", 0.5], ["*", 0] ])

    parser.call("gzip ; q=0.9").should.equal([["gzip", 0.9]])
    parser.call("gzip ; deflate").should.equal([["gzip", 1.0]])
  end

  should "parse Accept-Language correctly" do
    parser = lambda do |x|
      Rack::Request.new(Rack::MockRequest.env_for("", "HTTP_ACCEPT_LANGUAGE" => x)).accept_language
    end

    parser.call(nil).should.equal([])

    parser.call("fr, en").should.equal([["fr", 1.0], ["en", 1.0]])
    parser.call("").should.equal([])
    parser.call("*").should.equal([["*", 1.0]])
    parser.call("fr;q=0.5, en;q=1.0").should.equal([["fr", 0.5], ["en", 1.0]])
    parser.call("fr;q=1.0, en; q=0.5, *;q=0").should.equal([["fr", 1.0], ["en", 0.5], ["*", 0] ])

    parser.call("fr ; q=0.9").should.equal([["fr", 0.9]])
    parser.call("fr").should.equal([["fr", 1.0]])
  end

  ip_app = lambda { |env|
    request = Rack::Request.new(env)
    response = Rack::Response.new
    response.write request.ip
    response.finish
  }

  should 'provide ip information' do
    mock = Rack::MockRequest.new(Rack::Lint.new(ip_app))

    res = mock.get '/', 'REMOTE_ADDR' => '1.2.3.4'
    res.body.should.equal '1.2.3.4'

    res = mock.get '/', 'REMOTE_ADDR' => 'fe80::202:b3ff:fe1e:8329'
    res.body.should.equal 'fe80::202:b3ff:fe1e:8329'

    res = mock.get '/', 'REMOTE_ADDR' => '1.2.3.4,3.4.5.6'
    res.body.should.equal '1.2.3.4'
  end

  should 'deals with proxies' do
    mock = Rack::MockRequest.new(Rack::Lint.new(ip_app))

    res = mock.get '/',
      'REMOTE_ADDR' => '1.2.3.4',
      'HTTP_X_FORWARDED_FOR' => '3.4.5.6'
    res.body.should.equal '1.2.3.4'

    res = mock.get '/',
      'REMOTE_ADDR' => '1.2.3.4',
      'HTTP_X_FORWARDED_FOR' => 'unknown'
    res.body.should.equal '1.2.3.4'

    res = mock.get '/',
      'REMOTE_ADDR' => '127.0.0.1',
      'HTTP_X_FORWARDED_FOR' => '3.4.5.6'
    res.body.should.equal '3.4.5.6'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => 'unknown,3.4.5.6'
    res.body.should.equal '3.4.5.6'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => '192.168.0.1,3.4.5.6'
    res.body.should.equal '3.4.5.6'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => '10.0.0.1,3.4.5.6'
    res.body.should.equal '3.4.5.6'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => '10.0.0.1, 10.0.0.1, 3.4.5.6'
    res.body.should.equal '3.4.5.6'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => '127.0.0.1, 3.4.5.6'
    res.body.should.equal '3.4.5.6'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => 'unknown,192.168.0.1'
    res.body.should.equal 'unknown'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => 'other,unknown,192.168.0.1'
    res.body.should.equal 'unknown'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => 'unknown,localhost,192.168.0.1'
    res.body.should.equal 'unknown'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => '9.9.9.9, 3.4.5.6, 10.0.0.1, 172.31.4.4'
    res.body.should.equal '3.4.5.6'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => '::1,2620:0:1c00:0:812c:9583:754b:ca11'
    res.body.should.equal '2620:0:1c00:0:812c:9583:754b:ca11'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => '2620:0:1c00:0:812c:9583:754b:ca11,::1'
    res.body.should.equal '2620:0:1c00:0:812c:9583:754b:ca11'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => 'fd5b:982e:9130:247f:0000:0000:0000:0000,2620:0:1c00:0:812c:9583:754b:ca11'
    res.body.should.equal '2620:0:1c00:0:812c:9583:754b:ca11'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => '2620:0:1c00:0:812c:9583:754b:ca11,fd5b:982e:9130:247f:0000:0000:0000:0000'
    res.body.should.equal '2620:0:1c00:0:812c:9583:754b:ca11'

    res = mock.get '/',
      'HTTP_X_FORWARDED_FOR' => '1.1.1.1, 127.0.0.1',
      'HTTP_CLIENT_IP' => '1.1.1.1'
    res.body.should.equal '1.1.1.1'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => '8.8.8.8, 9.9.9.9'
    res.body.should.equal '9.9.9.9'

    res = mock.get '/', 'HTTP_X_FORWARDED_FOR' => '8.8.8.8, fe80::202:b3ff:fe1e:8329'
    res.body.should.equal 'fe80::202:b3ff:fe1e:8329'

    # Unix Sockets
    res = mock.get '/',
      'REMOTE_ADDR' => 'unix',
      'HTTP_X_FORWARDED_FOR' => '3.4.5.6'
    res.body.should.equal '3.4.5.6'

    res = mock.get '/',
      'REMOTE_ADDR' => 'unix:/tmp/foo',
      'HTTP_X_FORWARDED_FOR' => '3.4.5.6'
    res.body.should.equal '3.4.5.6'
  end

  should "not allow IP spoofing via Client-IP and X-Forwarded-For headers" do
    mock = Rack::MockRequest.new(Rack::Lint.new(ip_app))

    # IP Spoofing attempt:
    # Client sends          X-Forwarded-For: 6.6.6.6
    #                       Client-IP: 6.6.6.6
    # Load balancer adds    X-Forwarded-For: 2.2.2.3, 192.168.0.7
    # App receives:         X-Forwarded-For: 6.6.6.6
    #                       X-Forwarded-For: 2.2.2.3, 192.168.0.7
    #                       Client-IP: 6.6.6.6
    # Rack env:             HTTP_X_FORWARDED_FOR: '6.6.6.6, 2.2.2.3, 192.168.0.7'
    #                       HTTP_CLIENT_IP: '6.6.6.6'
    res = mock.get '/',
      'HTTP_X_FORWARDED_FOR' => '6.6.6.6, 2.2.2.3, 192.168.0.7',
      'HTTP_CLIENT_IP' => '6.6.6.6'
    res.body.should.equal '2.2.2.3'
  end

  should "regard local addresses as proxies" do
    req = Rack::Request.new(Rack::MockRequest.env_for("/"))
    req.trusted_proxy?('127.0.0.1').should.equal 0
    req.trusted_proxy?('10.0.0.1').should.equal 0
    req.trusted_proxy?('172.16.0.1').should.equal 0
    req.trusted_proxy?('172.20.0.1').should.equal 0
    req.trusted_proxy?('172.30.0.1').should.equal 0
    req.trusted_proxy?('172.31.0.1').should.equal 0
    req.trusted_proxy?('192.168.0.1').should.equal 0
    req.trusted_proxy?('::1').should.equal 0
    req.trusted_proxy?('fd00::').should.equal 0
    req.trusted_proxy?('localhost').should.equal 0
    req.trusted_proxy?('unix').should.equal 0
    req.trusted_proxy?('unix:/tmp/sock').should.equal 0

    req.trusted_proxy?("unix.example.org").should.equal nil
    req.trusted_proxy?("example.org\n127.0.0.1").should.equal nil
    req.trusted_proxy?("127.0.0.1\nexample.org").should.equal nil
    req.trusted_proxy?("11.0.0.1").should.equal nil
    req.trusted_proxy?("172.15.0.1").should.equal nil
    req.trusted_proxy?("172.32.0.1").should.equal nil
    req.trusted_proxy?("2001:470:1f0b:18f8::1").should.equal nil
  end

  class MyRequest < Rack::Request
    def params
      {:foo => "bar"}
    end
  end

  should "allow subclass request to be instantiated after parent request" do
    env = Rack::MockRequest.env_for("/?foo=bar")

    req1 = Rack::Request.new(env)
    req1.GET.should.equal "foo" => "bar"
    req1.params.should.equal "foo" => "bar"

    req2 = MyRequest.new(env)
    req2.GET.should.equal "foo" => "bar"
    req2.params.should.equal :foo => "bar"
  end

  should "allow parent request to be instantiated after subclass request" do
    env = Rack::MockRequest.env_for("/?foo=bar")

    req1 = MyRequest.new(env)
    req1.GET.should.equal "foo" => "bar"
    req1.params.should.equal :foo => "bar"

    req2 = Rack::Request.new(env)
    req2.GET.should.equal "foo" => "bar"
    req2.params.should.equal "foo" => "bar"
  end

  should "raise TypeError every time if request parameters are broken" do
    broken_query = Rack::MockRequest.env_for("/?foo%5B%5D=0&foo%5Bbar%5D=1")
    req = Rack::Request.new(broken_query)
    lambda{req.GET}.should.raise(TypeError)
    lambda{req.params}.should.raise(TypeError)
  end

  (0x20...0x7E).collect { |a|
    b = a.chr
    c = CGI.escape(b)
    should "not strip '#{a}' => '#{c}' => '#{b}' escaped character from parameters when accessed as string" do
      url = "/?foo=#{c}bar#{c}"
      env = Rack::MockRequest.env_for(url)
      req2 = Rack::Request.new(env)
      req2.GET.should.equal "foo" => "#{b}bar#{b}"
      req2.params.should.equal "foo" => "#{b}bar#{b}"
    end
  }
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_content_type.rb000064400000002746150402106460017416 0ustar00require 'rack/content_type'
require 'rack/lint'
require 'rack/mock'

describe Rack::ContentType do
  def content_type(app, *args)
    Rack::Lint.new Rack::ContentType.new(app, *args)
  end
  
  def request
    Rack::MockRequest.env_for
  end
  
  should "set Content-Type to default text/html if none is set" do
    app = lambda { |env| [200, {}, "Hello, World!"] }
    headers = content_type(app).call(request)[1]
    headers['Content-Type'].should.equal 'text/html'
  end

  should "set Content-Type to chosen default if none is set" do
    app = lambda { |env| [200, {}, "Hello, World!"] }
    headers =
      content_type(app, 'application/octet-stream').call(request)[1]
    headers['Content-Type'].should.equal 'application/octet-stream'
  end

  should "not change Content-Type if it is already set" do
    app = lambda { |env| [200, {'Content-Type' => 'foo/bar'}, "Hello, World!"] }
    headers = content_type(app).call(request)[1]
    headers['Content-Type'].should.equal 'foo/bar'
  end

  should "detect Content-Type case insensitive" do
    app = lambda { |env| [200, {'CONTENT-Type' => 'foo/bar'}, "Hello, World!"] }
    headers = content_type(app).call(request)[1]
    headers.to_a.select { |k,v| k.downcase == "content-type" }.
      should.equal [["CONTENT-Type","foo/bar"]]
  end

  should "not set Content-Type on 304 responses" do
    app = lambda { |env| [304, {}, []] }
    response = content_type(app, "text/html").call(request)
    response[1]['Content-Type'].should.equal nil
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_session_cookie.rb000064400000031677150402106470017725 0ustar00require 'rack/session/cookie'
require 'rack/lint'
require 'rack/mock'

describe Rack::Session::Cookie do
  incrementor = lambda do |env|
    env["rack.session"]["counter"] ||= 0
    env["rack.session"]["counter"] += 1
    hash = env["rack.session"].dup
    hash.delete("session_id")
    Rack::Response.new(hash.inspect).to_a
  end
  
  session_id = lambda do |env|
    Rack::Response.new(env["rack.session"].to_hash.inspect).to_a
  end

  session_option = lambda do |opt|
    lambda do |env|
      Rack::Response.new(env["rack.session.options"][opt].inspect).to_a
    end
  end

  nothing = lambda do |env|
    Rack::Response.new("Nothing").to_a
  end

  renewer = lambda do |env|
    env["rack.session.options"][:renew] = true
    Rack::Response.new("Nothing").to_a
  end

  only_session_id = lambda do |env|
    Rack::Response.new(env["rack.session"]["session_id"].to_s).to_a
  end

  bigcookie = lambda do |env|
    env["rack.session"]["cookie"] = "big" * 3000
    Rack::Response.new(env["rack.session"].inspect).to_a
  end

  destroy_session = lambda do |env|
    env["rack.session"].destroy
    Rack::Response.new("Nothing").to_a
  end

  def response_for(options={})
    request_options = options.fetch(:request, {})
    cookie = if options[:cookie].is_a?(Rack::Response)
      options[:cookie]["Set-Cookie"]
    else
      options[:cookie]
    end
    request_options["HTTP_COOKIE"] = cookie || ""

    app_with_cookie = Rack::Session::Cookie.new(*options[:app])
    app_with_cookie = Rack::Lint.new(app_with_cookie)
    Rack::MockRequest.new(app_with_cookie).get("/", request_options)
  end

  before do
    @warnings = warnings = []
    Rack::Session::Cookie.class_eval do
      define_method(:warn) { |m| warnings << m }
    end
  end

  after do
    Rack::Session::Cookie.class_eval { remove_method :warn }
  end

  describe 'Base64' do
    it 'uses base64 to encode' do
      coder = Rack::Session::Cookie::Base64.new
      str   = 'fuuuuu'
      coder.encode(str).should.equal [str].pack('m')
    end

    it 'uses base64 to decode' do
      coder = Rack::Session::Cookie::Base64.new
      str   = ['fuuuuu'].pack('m')
      coder.decode(str).should.equal str.unpack('m').first
    end

    describe 'Marshal' do
      it 'marshals and base64 encodes' do
        coder = Rack::Session::Cookie::Base64::Marshal.new
        str   = 'fuuuuu'
        coder.encode(str).should.equal [::Marshal.dump(str)].pack('m')
      end

      it 'marshals and base64 decodes' do
        coder = Rack::Session::Cookie::Base64::Marshal.new
        str   = [::Marshal.dump('fuuuuu')].pack('m')
        coder.decode(str).should.equal ::Marshal.load(str.unpack('m').first)
      end

      it 'rescues failures on decode' do
        coder = Rack::Session::Cookie::Base64::Marshal.new
        coder.decode('lulz').should.equal nil
      end
    end

    describe 'JSON' do
      it 'marshals and base64 encodes' do
        coder = Rack::Session::Cookie::Base64::JSON.new
        obj   = %w[fuuuuu]
        coder.encode(obj).should.equal [::Rack::Utils::OkJson.encode(obj)].pack('m')
      end

      it 'marshals and base64 decodes' do
        coder = Rack::Session::Cookie::Base64::JSON.new
        str   = [::Rack::Utils::OkJson.encode(%w[fuuuuu])].pack('m')
        coder.decode(str).should.equal ::Rack::Utils::OkJson.decode(str.unpack('m').first)
      end

      it 'rescues failures on decode' do
        coder = Rack::Session::Cookie::Base64::JSON.new
        coder.decode('lulz').should.equal nil
      end
    end

    describe 'ZipJSON' do
      it 'jsons, deflates, and base64 encodes' do
        coder = Rack::Session::Cookie::Base64::ZipJSON.new
        obj   = %w[fuuuuu]
        json = Rack::Utils::OkJson.encode(obj)
        coder.encode(obj).should.equal [Zlib::Deflate.deflate(json)].pack('m')
      end

      it 'base64 decodes, inflates, and decodes json' do
        coder = Rack::Session::Cookie::Base64::ZipJSON.new
        obj   = %w[fuuuuu]
        json  = Rack::Utils::OkJson.encode(obj)
        b64   = [Zlib::Deflate.deflate(json)].pack('m')
        coder.decode(b64).should.equal obj
      end

      it 'rescues failures on decode' do
        coder = Rack::Session::Cookie::Base64::ZipJSON.new
        coder.decode('lulz').should.equal nil
      end
    end
  end

  it "warns if no secret is given" do
    Rack::Session::Cookie.new(incrementor)
    @warnings.first.should =~ /no secret/i
    @warnings.clear
    Rack::Session::Cookie.new(incrementor, :secret => 'abc')
    @warnings.should.be.empty?
  end

  it 'uses a coder' do
    identity = Class.new {
      attr_reader :calls

      def initialize
        @calls = []
      end

      def encode(str); @calls << :encode; str; end
      def decode(str); @calls << :decode; str; end
    }.new
    response = response_for(:app => [incrementor, { :coder => identity }])

    response["Set-Cookie"].should.include("rack.session=")
    response.body.should.equal '{"counter"=>1}'
    identity.calls.should.equal [:decode, :encode]
  end

  it "creates a new cookie" do
    response = response_for(:app => incrementor)
    response["Set-Cookie"].should.include("rack.session=")
    response.body.should.equal '{"counter"=>1}'
  end

  it "loads from a cookie" do
    response = response_for(:app => incrementor)

    response = response_for(:app => incrementor, :cookie => response)
    response.body.should.equal '{"counter"=>2}'

    response = response_for(:app => incrementor, :cookie => response)
    response.body.should.equal '{"counter"=>3}'
  end

  it "renew session id" do
    response = response_for(:app => incrementor)
    cookie   = response['Set-Cookie']
    response = response_for(:app => only_session_id, :cookie => cookie)
    cookie   = response['Set-Cookie'] if response['Set-Cookie']

    response.body.should.not.equal ""
    old_session_id = response.body

    response = response_for(:app => renewer, :cookie => cookie)
    cookie   = response['Set-Cookie'] if response['Set-Cookie']
    response = response_for(:app => only_session_id, :cookie => cookie)

    response.body.should.not.equal ""
    response.body.should.not.equal old_session_id
  end

  it "destroys session" do
    response = response_for(:app => incrementor)
    response = response_for(:app => only_session_id, :cookie => response)

    response.body.should.not.equal ""
    old_session_id = response.body

    response = response_for(:app => destroy_session, :cookie => response)
    response = response_for(:app => only_session_id, :cookie => response)

    response.body.should.not.equal ""
    response.body.should.not.equal old_session_id
  end

  it "survives broken cookies" do
    response = response_for(
      :app => incrementor,
      :cookie => "rack.session=blarghfasel"
    )
    response.body.should.equal '{"counter"=>1}'

    response = response_for(
      :app => [incrementor, { :secret => "test" }],
      :cookie => "rack.session="
    )
    response.body.should.equal '{"counter"=>1}'
  end

  it "barks on too big cookies" do
    lambda{
      response_for(:app => bigcookie, :request => { :fatal => true })
    }.should.raise(Rack::MockRequest::FatalWarning)
  end

  it "loads from a cookie with integrity hash" do
    app = [incrementor, { :secret => "test" }]

    response = response_for(:app => app)
    response = response_for(:app => app, :cookie => response)
    response.body.should.equal '{"counter"=>2}'

    response = response_for(:app => app, :cookie => response)
    response.body.should.equal '{"counter"=>3}'

    app = [incrementor, { :secret => "other" }]

    response = response_for(:app => app, :cookie => response)
    response.body.should.equal '{"counter"=>1}'
  end

  it "loads from a cookie wih accept-only integrity hash for graceful key rotation" do
    response = response_for(:app => [incrementor, { :secret => "test" }])

    app = [incrementor, { :secret => "test2", :old_secret => "test" }]
    response = response_for(:app => app, :cookie => response)
    response.body.should.equal '{"counter"=>2}'

    app = [incrementor, { :secret => "test3", :old_secret => "test2" }]
    response = response_for(:app => app, :cookie => response)
    response.body.should.equal '{"counter"=>3}'
  end

  it "ignores tampered with session cookies" do
    app = [incrementor, { :secret => "test" }]
    response = response_for(:app => app)
    response.body.should.equal '{"counter"=>1}'

    response = response_for(:app => app, :cookie => response)
    response.body.should.equal '{"counter"=>2}'

    _, digest = response["Set-Cookie"].split("--")
    tampered_with_cookie = "hackerman-was-here" + "--" + digest

    response = response_for(:app => app, :cookie => tampered_with_cookie)
    response.body.should.equal '{"counter"=>1}'
  end

  it "supports either of secret or old_secret" do
    app = [incrementor, { :secret => "test" }]
    response = response_for(:app => app)
    response.body.should.equal '{"counter"=>1}'

    response = response_for(:app => app, :cookie => response)
    response.body.should.equal '{"counter"=>2}'

    app = [incrementor, { :old_secret => "test" }]
    response = response_for(:app => app)
    response.body.should.equal '{"counter"=>1}'

    response = response_for(:app => app, :cookie => response)
    response.body.should.equal '{"counter"=>2}'
  end

  it "can handle Rack::Lint middleware" do
    response = response_for(:app => incrementor)

    lint = Rack::Lint.new(session_id)
    response = response_for(:app => lint, :cookie => response)
    response.body.should.not.be.nil
  end

  it "can handle middleware that inspects the env" do
    class TestEnvInspector
      def initialize(app)
        @app = app
      end
      def call(env)
        env.inspect
        @app.call(env)
      end
    end

    response = response_for(:app => incrementor)

    inspector = TestEnvInspector.new(session_id)
    response = response_for(:app => inspector, :cookie => response)
    response.body.should.not.be.nil
  end

  it "returns the session id in the session hash" do
    response = response_for(:app => incrementor)
    response.body.should.equal '{"counter"=>1}'

    response = response_for(:app => session_id, :cookie => response)
    response.body.should.match(/"session_id"=>/)
    response.body.should.match(/"counter"=>1/)
  end

  it "does not return a cookie if set to secure but not using ssl" do
    app = [incrementor, { :secure => true }]

    response = response_for(:app => app)
    response["Set-Cookie"].should.be.nil

    response = response_for(:app => app, :request => { "HTTPS" => "on" })
    response["Set-Cookie"].should.not.be.nil
    response["Set-Cookie"].should.match(/secure/)
  end

  it "does not return a cookie if cookie was not read/written" do
    response = response_for(:app => nothing)
    response["Set-Cookie"].should.be.nil
  end

  it "does not return a cookie if cookie was not written (only read)" do
    response = response_for(:app => session_id)
    response["Set-Cookie"].should.be.nil
  end

  it "returns even if not read/written if :expire_after is set" do
    app = [nothing, { :expire_after => 3600 }]
    request = { "rack.session" => { "not" => "empty" }}
    response = response_for(:app => app, :request => request)
    response["Set-Cookie"].should.not.be.nil
  end

  it "returns no cookie if no data was written and no session was created previously, even if :expire_after is set" do
    app = [nothing, { :expire_after => 3600 }]
    response = response_for(:app => app)
    response["Set-Cookie"].should.be.nil
  end

  it "exposes :secret in env['rack.session.option']" do
    response = response_for(:app => [session_option[:secret], { :secret => "foo" }])
    response.body.should == '"foo"'
  end

  it "exposes :coder in env['rack.session.option']" do
    response = response_for(:app => session_option[:coder])
    response.body.should.match(/Base64::Marshal/)
  end

  it "allows passing in a hash with session data from middleware in front" do
    request = { 'rack.session' => { :foo => 'bar' }}
    response = response_for(:app => session_id, :request => request)
    response.body.should.match(/foo/)
  end

  it "allows modifying session data with session data from middleware in front" do
    request = { 'rack.session' => { :foo => 'bar' }}
    response = response_for(:app => incrementor, :request => request)
    response.body.should.match(/counter/)
    response.body.should.match(/foo/)
  end

  it "allows more than one '--' in the cookie when calculating digests" do
    @counter = 0
    app = lambda do |env|
      env["rack.session"]["message"] ||= ""
      env["rack.session"]["message"] << "#{(@counter += 1).to_s}--"
      hash = env["rack.session"].dup
      hash.delete("session_id")
      Rack::Response.new(hash["message"]).to_a
    end
    # another example of an unsafe coder is Base64.urlsafe_encode64
    unsafe_coder = Class.new {
      def encode(hash); hash.inspect end
      def decode(str); eval(str) if str; end
    }.new
    _app = [ app, { :secret => "test", :coder => unsafe_coder } ]
    response = response_for(:app => _app)
    response.body.should.equal "1--"
    response = response_for(:app => _app, :cookie => response)
    response.body.should.equal "1--2--"
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_sendfile.rb000064400000010176150402106470016471 0ustar00require 'fileutils'
require 'rack/lint'
require 'rack/sendfile'
require 'rack/mock'
require 'tmpdir'

describe Rack::File do
  should "respond to #to_path" do
    Rack::File.new(Dir.pwd).should.respond_to :to_path
  end
end

describe Rack::Sendfile do
  def sendfile_body
    FileUtils.touch File.join(Dir.tmpdir,  "rack_sendfile")
    res = ['Hello World']
    def res.to_path ; File.join(Dir.tmpdir,  "rack_sendfile") ; end
    res
  end

  def simple_app(body=sendfile_body)
    lambda { |env| [200, {'Content-Type' => 'text/plain'}, body] }
  end

  def sendfile_app(body, mappings = [])
    Rack::Lint.new Rack::Sendfile.new(simple_app(body), nil, mappings)
  end

  def request(headers={}, body=sendfile_body, mappings=[])
    yield Rack::MockRequest.new(sendfile_app(body, mappings)).get('/', headers)
  end

  def open_file(path)
    Class.new(File) do
      unless method_defined?(:to_path)
        alias :to_path :path
      end
    end.open(path, 'wb+')
  end

  it "does nothing when no X-Sendfile-Type header present" do
    request do |response|
      response.should.be.ok
      response.body.should.equal 'Hello World'
      response.headers.should.not.include 'X-Sendfile'
    end
  end

  it "sets X-Sendfile response header and discards body" do
    request 'HTTP_X_SENDFILE_TYPE' => 'X-Sendfile' do |response|
      response.should.be.ok
      response.body.should.be.empty
      response.headers['Content-Length'].should.equal '0'
      response.headers['X-Sendfile'].should.equal File.join(Dir.tmpdir,  "rack_sendfile")
    end
  end

  it "sets X-Lighttpd-Send-File response header and discards body" do
    request 'HTTP_X_SENDFILE_TYPE' => 'X-Lighttpd-Send-File' do |response|
      response.should.be.ok
      response.body.should.be.empty
      response.headers['Content-Length'].should.equal '0'
      response.headers['X-Lighttpd-Send-File'].should.equal File.join(Dir.tmpdir,  "rack_sendfile")
    end
  end

  it "sets X-Accel-Redirect response header and discards body" do
    headers = {
      'HTTP_X_SENDFILE_TYPE' => 'X-Accel-Redirect',
      'HTTP_X_ACCEL_MAPPING' => "#{Dir.tmpdir}/=/foo/bar/"
    }
    request headers do |response|
      response.should.be.ok
      response.body.should.be.empty
      response.headers['Content-Length'].should.equal '0'
      response.headers['X-Accel-Redirect'].should.equal '/foo/bar/rack_sendfile'
    end
  end

  it 'writes to rack.error when no X-Accel-Mapping is specified' do
    request 'HTTP_X_SENDFILE_TYPE' => 'X-Accel-Redirect' do |response|
      response.should.be.ok
      response.body.should.equal 'Hello World'
      response.headers.should.not.include 'X-Accel-Redirect'
      response.errors.should.include 'X-Accel-Mapping'
    end
  end

  it 'does nothing when body does not respond to #to_path' do
    request({'HTTP_X_SENDFILE_TYPE' => 'X-Sendfile'}, ['Not a file...']) do |response|
      response.body.should.equal 'Not a file...'
      response.headers.should.not.include 'X-Sendfile'
    end
  end

  it "sets X-Accel-Redirect response header and discards body when initialized with multiple mappings" do
    begin
      dir1 = Dir.mktmpdir
      dir2 = Dir.mktmpdir

      first_body = open_file(File.join(dir1, 'rack_sendfile'))
      first_body.puts 'hello world'

      second_body = open_file(File.join(dir2, 'rack_sendfile'))
      second_body.puts 'goodbye world'

      mappings = [
        ["#{dir1}/", '/foo/bar/'],
        ["#{dir2}/", '/wibble/']
      ]

      request({'HTTP_X_SENDFILE_TYPE' => 'X-Accel-Redirect'}, first_body, mappings) do |response|
        response.should.be.ok
        response.body.should.be.empty
        response.headers['Content-Length'].should.equal '0'
        response.headers['X-Accel-Redirect'].should.equal '/foo/bar/rack_sendfile'
      end

      request({'HTTP_X_SENDFILE_TYPE' => 'X-Accel-Redirect'}, second_body, mappings) do |response|
        response.should.be.ok
        response.body.should.be.empty
        response.headers['Content-Length'].should.equal '0'
        response.headers['X-Accel-Redirect'].should.equal '/wibble/rack_sendfile'
      end
    ensure
      FileUtils.remove_entry_secure dir1
      FileUtils.remove_entry_secure dir2
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_cascade.rb000064400000004161150402106470016260 0ustar00require 'rack/cascade'
require 'rack/file'
require 'rack/lint'
require 'rack/urlmap'
require 'rack/mock'

describe Rack::Cascade do
  def cascade(*args)
    Rack::Lint.new Rack::Cascade.new(*args)
  end
  
  docroot = File.expand_path(File.dirname(__FILE__))
  app1 = Rack::File.new(docroot)

  app2 = Rack::URLMap.new("/crash" => lambda { |env| raise "boom" })

  app3 = Rack::URLMap.new("/foo" => lambda { |env|
                            [200, { "Content-Type" => "text/plain"}, [""]]})

  should "dispatch onward on 404 and 405 by default" do
    cascade = cascade([app1, app2, app3])
    Rack::MockRequest.new(cascade).get("/cgi/test").should.be.ok
    Rack::MockRequest.new(cascade).get("/foo").should.be.ok
    Rack::MockRequest.new(cascade).get("/toobad").should.be.not_found
    Rack::MockRequest.new(cascade).get("/cgi/../..").should.be.client_error

    # Put is not allowed by Rack::File so it'll 405.
    Rack::MockRequest.new(cascade).put("/foo").should.be.ok
  end

  should "dispatch onward on whatever is passed" do
    cascade = cascade([app1, app2, app3], [404, 403])
    Rack::MockRequest.new(cascade).get("/cgi/../bla").should.be.not_found
  end

  should "return 404 if empty" do
    Rack::MockRequest.new(cascade([])).get('/').should.be.not_found
  end

  should "append new app" do
    cascade = Rack::Cascade.new([], [404, 403])
    Rack::MockRequest.new(cascade).get('/').should.be.not_found
    cascade << app2
    Rack::MockRequest.new(cascade).get('/cgi/test').should.be.not_found
    Rack::MockRequest.new(cascade).get('/cgi/../bla').should.be.not_found
    cascade << app1
    Rack::MockRequest.new(cascade).get('/cgi/test').should.be.ok
    Rack::MockRequest.new(cascade).get('/cgi/../..').should.be.client_error
    Rack::MockRequest.new(cascade).get('/foo').should.be.not_found
    cascade << app3
    Rack::MockRequest.new(cascade).get('/foo').should.be.ok
  end

  should "close the body on cascade" do
    body = StringIO.new
    closer = lambda { |env| [404, {}, body] }
    cascade = Rack::Cascade.new([closer, app3], [404])
    Rack::MockRequest.new(cascade).get("/foo").should.be.ok
    body.should.be.closed
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_directory.rb000064400000004307150402106470016703 0ustar00require 'rack/directory'
require 'rack/lint'
require 'rack/mock'

describe Rack::Directory do
  DOCROOT = File.expand_path(File.dirname(__FILE__)) unless defined? DOCROOT
  FILE_CATCH = proc{|env| [200, {'Content-Type'=>'text/plain', "Content-Length" => "7"}, ['passed!']] }
  app = Rack::Lint.new(Rack::Directory.new(DOCROOT, FILE_CATCH))

  should "serve directory indices" do
    res = Rack::MockRequest.new(Rack::Lint.new(app)).
      get("/cgi/")

    res.should.be.ok
    res.should =~ /<html><head>/
  end

  should "pass to app if file found" do
    res = Rack::MockRequest.new(Rack::Lint.new(app)).
      get("/cgi/test")

    res.should.be.ok
    res.should =~ /passed!/
  end

  should "serve uri with URL encoded filenames" do
    res = Rack::MockRequest.new(Rack::Lint.new(app)).
      get("/%63%67%69/") # "/cgi/test"

    res.should.be.ok
    res.should =~ /<html><head>/

    res = Rack::MockRequest.new(Rack::Lint.new(app)).
      get("/cgi/%74%65%73%74") # "/cgi/test"

    res.should.be.ok
    res.should =~ /passed!/
  end

  should "not allow directory traversal" do
    res = Rack::MockRequest.new(Rack::Lint.new(app)).
      get("/cgi/../test")

    res.should.be.forbidden

    res = Rack::MockRequest.new(Rack::Lint.new(app)).
      get("/cgi/%2E%2E/test")

    res.should.be.forbidden
  end

  should "404 if it can't find the file" do
    res = Rack::MockRequest.new(Rack::Lint.new(app)).
      get("/cgi/blubb")

    res.should.be.not_found
  end

  should "uri escape path parts" do # #265, properly escape file names
    mr = Rack::MockRequest.new(Rack::Lint.new(app))

    res = mr.get("/cgi/test%2bdirectory")

    res.should.be.ok
    res.body.should =~ %r[/cgi/test%2Bdirectory/test%2Bfile]

    res = mr.get("/cgi/test%2bdirectory/test%2bfile")
    res.should.be.ok
  end

  should "correctly escape script name" do
    app2 = Rack::Builder.new do
      map '/script-path' do
        run app
      end
    end

    mr = Rack::MockRequest.new(Rack::Lint.new(app2))

    res = mr.get("/script-path/cgi/test%2bdirectory")

    res.should.be.ok
    res.body.should =~ %r[/script-path/cgi/test%2Bdirectory/test%2Bfile]

    res = mr.get("/script-path/cgi/test%2bdirectory/test%2bfile")
    res.should.be.ok
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/test/spec_lock.rb000064400000010525150402106470015626 0ustar00require 'rack/lint'
require 'rack/lock'
require 'rack/mock'

class Lock
  attr_reader :synchronized

  def initialize
    @synchronized = false
  end

  def synchronize
    @synchronized = true
    yield
  end

  def lock
    @synchronized = true
  end

  def unlock
    @synchronized = false
  end
end

module LockHelpers
  def lock_app(app, lock = Lock.new)
    app = if lock
      Rack::Lock.new app, lock
    else
      Rack::Lock.new app
    end
    Rack::Lint.new app
  end
end

describe Rack::Lock do
  extend LockHelpers

  describe 'Proxy' do
    extend LockHelpers

    should 'delegate each' do
      env      = Rack::MockRequest.env_for("/")
      response = Class.new {
        attr_accessor :close_called
        def initialize; @close_called = false; end
        def each; %w{ hi mom }.each { |x| yield x }; end
      }.new

      app = lock_app(lambda { |inner_env| [200, {"Content-Type" => "text/plain"}, response] })
      response = app.call(env)[2]
      list = []
      response.each { |x| list << x }
      list.should.equal %w{ hi mom }
    end

    should 'delegate to_path' do
      lock = Lock.new
      env  = Rack::MockRequest.env_for("/")

      res = ['Hello World']
      def res.to_path ; "/tmp/hello.txt" ; end

      app = Rack::Lock.new(lambda { |inner_env| [200, {"Content-Type" => "text/plain"}, res] }, lock)
      body = app.call(env)[2]

      body.should.respond_to :to_path
      body.to_path.should.equal "/tmp/hello.txt"
    end

    should 'not delegate to_path if body does not implement it' do
      env  = Rack::MockRequest.env_for("/")

      res = ['Hello World']

      app = lock_app(lambda { |inner_env| [200, {"Content-Type" => "text/plain"}, res] })
      body = app.call(env)[2]

      body.should.not.respond_to :to_path
    end
  end

  should 'call super on close' do
    env      = Rack::MockRequest.env_for("/")
    response = Class.new {
      attr_accessor :close_called
      def initialize; @close_called = false; end
      def close; @close_called = true; end
    }.new

    app = lock_app(lambda { |inner_env| [200, {"Content-Type" => "text/plain"}, response] })
    app.call(env)
    response.close_called.should.equal false
    response.close
    response.close_called.should.equal true
  end

  should "not unlock until body is closed" do
    lock     = Lock.new
    env      = Rack::MockRequest.env_for("/")
    response = Object.new
    app      = lock_app(lambda { |inner_env| [200, {"Content-Type" => "text/plain"}, response] }, lock)
    lock.synchronized.should.equal false
    response = app.call(env)[2]
    lock.synchronized.should.equal true
    response.close
    lock.synchronized.should.equal false
  end

  should "return value from app" do
    env  = Rack::MockRequest.env_for("/")
    body = [200, {"Content-Type" => "text/plain"}, %w{ hi mom }]
    app  = lock_app(lambda { |inner_env| body })

    res = app.call(env)
    res[0].should.equal body[0]
    res[1].should.equal body[1]
    res[2].to_enum.to_a.should.equal ["hi", "mom"]
  end

  should "call synchronize on lock" do
    lock = Lock.new
    env = Rack::MockRequest.env_for("/")
    app = lock_app(lambda { |inner_env| [200, {"Content-Type" => "text/plain"}, %w{ a b c }] }, lock)
    lock.synchronized.should.equal false
    app.call(env)
    lock.synchronized.should.equal true
  end

  should "unlock if the app raises" do
    lock = Lock.new
    env = Rack::MockRequest.env_for("/")
    app = lock_app(lambda { raise Exception }, lock)
    lambda { app.call(env) }.should.raise(Exception)
    lock.synchronized.should.equal false
  end

  should "unlock if the app throws" do
    lock = Lock.new
    env = Rack::MockRequest.env_for("/")
    app = lock_app(lambda {|_| throw :bacon }, lock)
    lambda { app.call(env) }.should.throw(:bacon)
    lock.synchronized.should.equal false
  end

  should "set multithread flag to false" do
    app = lock_app(lambda { |env|
      env['rack.multithread'].should.equal false
      [200, {"Content-Type" => "text/plain"}, %w{ a b c }]
    }, false)
    app.call(Rack::MockRequest.env_for("/"))
  end

  should "reset original multithread flag when exiting lock" do
    app = Class.new(Rack::Lock) {
      def call(env)
        env['rack.multithread'].should.equal true
        super
      end
    }.new(lambda { |env| [200, {"Content-Type" => "text/plain"}, %w{ a b c }] })
    Rack::Lint.new(app).call(Rack::MockRequest.env_for("/"))
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/README.rdoc000064400000023226150402106470014170 0ustar00= Rack, a modular Ruby webserver interface {<img src="https://secure.travis-ci.org/rack/rack.svg" alt="Build Status" />}[http://travis-ci.org/rack/rack] {<img src="https://gemnasium.com/rack/rack.svg" alt="Dependency Status" />}[https://gemnasium.com/rack/rack]

Rack provides a minimal, modular and adaptable interface for developing
web applications in Ruby.  By wrapping HTTP requests and responses in
the simplest way possible, it unifies and distills the API for web
servers, web frameworks, and software in between (the so-called
middleware) into a single method call.

The exact details of this are described in the Rack specification,
which all Rack applications should conform to.

== Supported web servers

The included *handlers* connect all kinds of web servers to Rack:
* Mongrel
* EventedMongrel
* SwiftipliedMongrel
* WEBrick
* FCGI
* CGI
* SCGI
* LiteSpeed
* Thin

These web servers include Rack handlers in their distributions:
* Ebb
* Fuzed
* Glassfish v3
* Phusion Passenger (which is mod_rack for Apache and for nginx)
* Puma
* Rainbows!
* Reel
* Unicorn
* unixrack
* uWSGI
* yahns
* Zbatery

Any valid Rack app will run the same on all these handlers, without
changing anything.

== Supported web frameworks

These frameworks include Rack adapters in their distributions:
* Camping
* Coset
* Espresso
* Halcyon
* Mack
* Maveric
* Merb
* Racktools::SimpleApplication
* Ramaze
* Ruby on Rails
* Rum
* Sinatra
* Sin
* Vintage
* Waves
* Wee
* ... and many others.

== Available middleware

Between the server and the framework, Rack can be customized to your
applications needs using middleware, for example:
* Rack::URLMap, to route to multiple applications inside the same process.
* Rack::CommonLogger, for creating Apache-style logfiles.
* Rack::ShowException, for catching unhandled exceptions and
  presenting them in a nice and helpful way with clickable backtrace.
* Rack::File, for serving static files.
* ...many others!

All these components use the same interface, which is described in
detail in the Rack specification.  These optional components can be
used in any way you wish.

== Convenience

If you want to develop outside of existing frameworks, implement your
own ones, or develop middleware, Rack provides many helpers to create
Rack applications quickly and without doing the same web stuff all
over:
* Rack::Request, which also provides query string parsing and
  multipart handling.
* Rack::Response, for convenient generation of HTTP replies and
  cookie handling.
* Rack::MockRequest and Rack::MockResponse for efficient and quick
  testing of Rack application without real HTTP round-trips.

== rack-contrib

The plethora of useful middleware created the need for a project that
collects fresh Rack middleware.  rack-contrib includes a variety of
add-on components for Rack and it is easy to contribute new modules.

* https://github.com/rack/rack-contrib

== rackup

rackup is a useful tool for running Rack applications, which uses the
Rack::Builder DSL to configure middleware and build up applications
easily.

rackup automatically figures out the environment it is run in, and
runs your application as FastCGI, CGI, or standalone with Mongrel or
WEBrick---all from the same configuration.

== Quick start

Try the lobster!

Either with the embedded WEBrick starter:

    ruby -Ilib lib/rack/lobster.rb

Or with rackup:

    bin/rackup -Ilib example/lobster.ru

By default, the lobster is found at http://localhost:9292.

== Installing with RubyGems

A Gem of Rack is available at rubygems.org.  You can install it with:

    gem install rack

I also provide a local mirror of the gems (and development snapshots)
at my site:

    gem install rack --source http://chneukirchen.org/releases/gems/

== Running the tests

Testing Rack requires the bacon testing framework:

    bundle install --without extra # to be able to run the fast tests

Or:

    bundle install # this assumes that you have installed native extensions!

There are two rake-based test tasks:

    rake test       tests all the fast tests (no Handlers or Adapters)
    rake fulltest   runs all the tests

The fast testsuite has no dependencies outside of the core Ruby
installation and bacon.

To run the test suite completely, you need:

  * fcgi
  * memcache-client
  * mongrel
  * thin

The full set of tests test FCGI access with lighttpd (on port
9203) so you will need lighttpd installed as well as the FCGI
libraries and the fcgi gem:

Download and install lighttpd:

    http://www.lighttpd.net/download

Installing the FCGI libraries:

    curl -O http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
    tar xzvf fcgi-2.4.0.tar.gz
    cd fcgi-2.4.0
    ./configure --prefix=/usr/local
    make
    sudo make install
    cd ..

Installing the Ruby fcgi gem:

    gem install fcgi

Furthermore, to test Memcache sessions, you need memcached (will be
run on port 11211) and memcache-client installed.

== Configuration

Several parameters can be modified on Rack::Utils to configure Rack behaviour.

e.g:

    Rack::Utils.key_space_limit = 128

=== key_space_limit

The default number of bytes to allow a single parameter key to take up.
This helps prevent a rogue client from flooding a Request.

Default to 65536 characters (4 kiB in worst case).

=== multipart_part_limit

The maximum number of parts a request can contain.
Accepting too many part can lead to the server running out of file handles.

The default is 128, which means that a single request can't upload more than 128 files at once.

Set to 0 for no limit.

Can also be set via the RACK_MULTIPART_PART_LIMIT environment variable.

== History

See <https://github.com/rack/HISTORY.md>.

== Contact

Please post bugs, suggestions and patches to
the bug tracker at <https://github.com/rack/rack/issues>.

Please post security related bugs and suggestions to the core team at
<https://groups.google.com/group/rack-core> or rack-core@googlegroups.com. This
list is not public. Due to wide usage of the library, it is strongly preferred
that we manage timing in order to provide viable patches at the time of
disclosure. Your assistance in this matter is greatly appreciated.

Mailing list archives are available at
<https://groups.google.com/group/rack-devel>.

Git repository (send Git patches to the mailing list):
* https://github.com/rack/rack
* http://git.vuxu.org/cgi-bin/gitweb.cgi?p=rack-github.git

You are also welcome to join the #rack channel on irc.freenode.net.

== Thanks

The Rack Core Team, consisting of

* Christian Neukirchen (chneukirchen)
* James Tucker (raggi)
* Josh Peek (josh)
* José Valim (josevalim)
* Michael Fellinger (manveru)
* Aaron Patterson (tenderlove)
* Santiago Pastorino (spastorino)
* Konstantin Haase (rkh)

and the Rack Alumnis

* Ryan Tomayko (rtomayko)
* Scytrin dai Kinthra (scytrin)

would like to thank:

* Adrian Madrid, for the LiteSpeed handler.
* Christoffer Sawicki, for the first Rails adapter and Rack::Deflater.
* Tim Fletcher, for the HTTP authentication code.
* Luc Heinrich for the Cookie sessions, the static file handler and bugfixes.
* Armin Ronacher, for the logo and racktools.
* Alex Beregszaszi, Alexander Kahn, Anil Wadghule, Aredridel, Ben
  Alpert, Dan Kubb, Daniel Roethlisberger, Matt Todd, Tom Robinson,
  Phil Hagelberg, S. Brent Faulkner, Bosko Milekic, Daniel Rodríguez
  Troitiño, Genki Takiuchi, Geoffrey Grosenbach, Julien Sanchez, Kamal
  Fariz Mahyuddin, Masayoshi Takahashi, Patrick Aljordm, Mig, Kazuhiro
  Nishiyama, Jon Bardin, Konstantin Haase, Larry Siden, Matias
  Korhonen, Sam Ruby, Simon Chiang, Tim Connor, Timur Batyrshin, and
  Zach Brock for bug fixing and other improvements.
* Eric Wong, Hongli Lai, Jeremy Kemper for their continuous support
  and API improvements.
* Yehuda Katz and Carl Lerche for refactoring rackup.
* Brian Candler, for Rack::ContentType.
* Graham Batty, for improved handler loading.
* Stephen Bannasch, for bug reports and documentation.
* Gary Wright, for proposing a better Rack::Response interface.
* Jonathan Buch, for improvements regarding Rack::Response.
* Armin Röhrl, for tracking down bugs in the Cookie generator.
* Alexander Kellett for testing the Gem and reviewing the announcement.
* Marcus Rückert, for help with configuring and debugging lighttpd.
* The WSGI team for the well-done and documented work they've done and
  Rack builds up on.
* All bug reporters and patch contributors not mentioned above.

== Copyright

Copyright (C) 2007, 2008, 2009, 2010 Christian Neukirchen <http://purl.org/net/chneukirchen>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

== Links

Rack:: <http://rack.github.io/>
Official Rack repositories:: <https://github.com/rack>
Rack Bug Tracking:: <https://github.com/rack/rack/issues>
rack-devel mailing list:: <https://groups.google.com/group/rack-devel>
Rack's Rubyforge project:: <http://rubyforge.org/projects/rack>

Christian Neukirchen:: <http://chneukirchen.org/>

lib64/ruby/gems/2.2.0/gems/rack-1.6.4/contrib/rdoc.css000064400000016235150402106470015465 0ustar00/* Forked from the Darkfish templates rdoc.css file, much hacked, probably
 * imperfect */

html { max-width: 960px; margin: 0 auto; }
body {
  font: 14px "Helvetica Neue", Helvetica, Tahoma, sans-serif;
}
body.file-popup {
  font-size: 90%;
  margin-left: 0;
}

h1 {
  color: #4183C4;
}

:link,
:visited {
  color: #4183C4;
  text-decoration: none;
}
:link:hover,
:visited:hover {
  border-bottom: 1px dotted #4183C4;
}

pre, pre.description {
  font: 12px Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;
  padding: 1em;
  overflow: auto;
  line-height: 1.4;
}

/* @group Generic Classes */

.initially-hidden {
  display: none;
}

#search-field {
  width: 98%;
}

.missing-docs {
  font-size: 120%;
  background: white url(images/wrench_orange.png) no-repeat 4px center;
  color: #ccc;
  line-height: 2em;
  border: 1px solid #d00;
  opacity: 1;
  text-indent: 24px;
  letter-spacing: 3px;
  font-weight: bold;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
}

.target-section {
  border: 2px solid #dcce90;
  border-left-width: 8px;
  background: #fff3c2;
}

/* @end */

/* @group Index Page, Standalone file pages */
.indexpage ul {
  line-height: 160%;
  list-style: none;
}
.indexpage ul :link,
.indexpage ul :visited {
  font-size: 16px;
}

.indexpage li {
  padding-left: 20px;
}

.indexpage ul > li {
  background: url(images/bullet_black.png) no-repeat left 4px;
}
.indexpage li.method {
  background: url(images/plugin.png) no-repeat left 4px;
}
.indexpage li.module {
  background: url(images/package.png) no-repeat left 4px;
}
.indexpage li.class {
  background: url(images/ruby.png) no-repeat left 4px;
}
.indexpage li.file {
  background: url(images/page_white_text.png) no-repeat left 4px;
}
.indexpage li li {
  background: url(images/tag_blue.png) no-repeat left 4px;
}
.indexpage li .toc-toggle {
  width: 16px;
  height: 16px;
  background: url(images/add.png) no-repeat;
}

.indexpage li .toc-toggle.open {
  background: url(images/delete.png) no-repeat;
}

/* @end */

/* @group Top-Level Structure */

.project-section, #file-metadata, #class-metadata {
  display: block;
  background: #f5f5f5;
  margin-bottom: 1em;
  padding: 0.5em;
}
.project-section h3, #file-metadata h3, #class-metadata h3 {
  margin: 0;
}

#metadata {
  float: left;
  width: 280px;
}

#documentation {
  margin: 2em 1em 2em 300px;
}

#validator-badges {
  clear: both;
  margin: 1em 1em 2em;
  font-size: smaller;
}

/* @end */

/* @group Metadata Section */

#metadata ul,
#metadata dl,
#metadata p {
  padding: 0px;
  list-style: none;
}

dl.svninfo {
  color: #666;
  margin: 0;
}
dl.svninfo dt {
  font-weight: bold;
}

ul.link-list li {
  white-space: nowrap;
}
ul.link-list .type {
  font-size: 8px;
  text-transform: uppercase;
  color: white;
  background: #969696;
}

/* @end */

/* @group Documentation Section */

.note-list {
  margin: 8px 0;
}

.label-list {
  margin: 8px 1.5em;
  border: 1px solid #ccc;
}
.description .label-list {
  font-size: 14px;
}

.note-list dt {
  font-weight: bold;
}
.note-list dd {
}

.label-list dt {
  font-weight: bold;
  background: #ddd;
}
.label-list dd {
}
.label-list dd + dt,
.note-list dd + dt {
  margin-top: 0.7em;
}

#documentation .section {
  font-size: 90%;
}

#documentation h2.section-header {
  color: #333;
  font-size: 175%;
}

.documentation-section-title {
  position: relative;
}
.documentation-section-title .section-click-top {
  position: absolute;
  top: 6px;
  right: 12px;
  font-size: 10px;
  visibility: hidden;
}

.documentation-section-title:hover .section-click-top {
  visibility: visible;
}

#documentation h3.section-header {
  color: #333;
  font-size: 150%;
}

#constants-list > dl,
#attributes-list > dl {
  margin: 1em 0 2em;
  border: 0;
}
#constants-list > dl dt,
#attributes-list > dl dt {
  font-weight: bold;
  font-family: Monaco, "Andale Mono";
  background: inherit;
}
#constants-list > dl dt a,
#attributes-list > dl dt a {
  color: inherit;
}
#constants-list > dl dd,
#attributes-list > dl dd {
  margin: 0 0 1em 0;
  color: #666;
}

.documentation-section h2 {
  position: relative;
}

.documentation-section h2 a {
  position: absolute;
  top: 8px;
  right: 10px;
  font-size: 12px;
  color: #9b9877;
  visibility: hidden;
}

.documentation-section h2:hover a {
  visibility: visible;
}

/* @group Method Details */

#documentation .method-source-code {
  display: none;
}

#documentation .method-detail {
  margin: 0.2em 0.2em;
  padding: 0.5em;
}
#documentation .method-detail:hover {
  background-color: #f5f5f5;
}
#documentation .method-heading {
  cursor: pointer;
  position: relative;
  font-size: 125%;
  line-height: 125%;
  font-weight: bold;
  color: #333;
  background: url(images/brick.png) no-repeat left bottom;
  padding-left: 20px;
}
#documentation .method-heading :link,
#documentation .method-heading :visited {
  color: inherit;
}
#documentation .method-click-advice {
  position: absolute;
  right: 5px;
  font-size: 10px;
  color: #aaa;
  visibility: hidden;
  background: url(images/zoom.png) no-repeat right 5px;
  padding-right: 20px;
  overflow: show;
}
#documentation .method-heading:hover .method-click-advice {
  visibility: visible;
}

#documentation .method-alias .method-heading {
  color: #666;
  background: url(images/brick_link.png) no-repeat left bottom;
}

#documentation .method-description,
#documentation .aliases {
  margin: 0 20px;
  color: #666;
}

#documentation .method-description p,
#documentation .aliases p {
  line-height: 1.2em;
}

#documentation .aliases {
  font-style: italic;
  cursor: default;
}
#documentation .method-description p {
  margin-bottom: 0.5em;
}
#documentation .method-description ul {
  margin-left: 1.5em;
}

#documentation .attribute-method-heading {
  background: url(images/tag_green.png) no-repeat left bottom;
}
#documentation #attribute-method-details .method-detail:hover {
  background-color: transparent;
  cursor: default;
}
#documentation .attribute-access-type {
  font-size: 60%;
  text-transform: uppercase;
  vertical-align: super;
}

.method-section .method-source-code {
  background: white;
}

/* @group Source Code */

.ruby-constant .ruby-keyword .ruby-ivar .ruby-operator .ruby-identifier
.ruby-node .ruby-comment .ruby-regexp .ruby-value {
  background: transparent;
}

/* Thanks GitHub!!! */
.ruby-constant   { color: #458; font-weight: bold; }
.ruby-keyword    { color: black; font-weight: bold; }
.ruby-ivar       { color: teal; }
.ruby-operator   { color: #000; }
.ruby-identifier { color: black; }
.ruby-node       { color: red; }
.ruby-comment    { color: #998; font-weight: bold; }
.ruby-regexp     { color: #009926; }
.ruby-value      { color: #099; }
.ruby-string     { color: red; }

/* @group search results */

#search-section .section-header {
  margin: 0;
  padding: 0;
}

#search-results {
  width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}

#search-results h1 {
  font-size: 1em;
  font-weight: normal;
  text-shadow: none;
}

#search-results .current {
  background: #eee;
}

#search-results li {
  list-style: none;
  line-height: 1em;
  padding: 0.5em;
  border-bottom: 1px solid black;
}

#search-results .search-namespace {
  font-weight: bold;
}

#search-results li em {
  background: yellow;
  font-style: normal;
}

#search-results pre {
  margin: 0.5em;
}
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/contrib/rack_logo.svg000064400000106657150402106470016515 0ustar00<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/)
  by Armin Ronacher (mitsuhiko), MIT-licensed.
-->
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://web.resource.org/cc/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="200"
   height="100"
   id="svg2"
   sodipodi:version="0.32"
   inkscape:version="0.44"
   version="1.0"
   inkscape:export-filename="/home/blackbird/Desktop/rack_logo_final.png"
   inkscape:export-xdpi="360"
   inkscape:export-ydpi="360"
   sodipodi:docbase="/home/blackbird/Desktop"
   sodipodi:docname="rack_logo.svg">
  <defs
     id="defs4" />
  <sodipodi:namedview
     id="base"
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1.0"
     gridtolerance="10000"
     guidetolerance="10"
     objecttolerance="10"
     inkscape:pageopacity="0.0"
     inkscape:pageshadow="2"
     inkscape:zoom="3.959798"
     inkscape:cx="148.56163"
     inkscape:cy="67.007749"
     inkscape:document-units="px"
     inkscape:current-layer="layer1"
     width="200px"
     height="100px"
     inkscape:window-width="1400"
     inkscape:window-height="975"
     inkscape:window-x="0"
     inkscape:window-y="24" />
  <metadata
     id="metadata7">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g
     inkscape:label="Layer 1"
     inkscape:groupmode="layer"
     id="layer1">
    <path
       style="font-size:33.17043304px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Frutiger"
       d="M 102.28876,57.97848 L 102.28876,64.972684 C 101.77662,64.784857 101.19214,64.690938 100.5353,64.690927 C 99.767107,64.690938 99.026757,64.873251 98.314248,65.237867 C 97.612848,65.591455 97.056197,66.050001 96.644288,66.613505 C 96.343688,67.022337 96.121018,67.541654 95.976308,68.171455 C 95.876091,68.558187 95.826008,69.094078 95.826016,69.779128 L 95.826016,75.861765 L 87.125504,75.861765 L 87.125504,58.144219 L 95.274924,58.144219 L 95.274924,62.105392 C 95.987422,60.569555 96.783437,59.481201 97.662958,58.840325 C 98.542463,58.188434 99.622368,57.86248 100.90268,57.862463 C 101.30345,57.86248 101.76548,57.901153 102.28876,57.97848 M 115.63175,75.861765 L 115.63175,73.342526 C 114.26238,75.364548 112.21945,76.375557 109.50299,76.375558 C 107.49902,76.375557 105.94039,75.86729 104.82709,74.850755 C 103.71379,73.834221 103.15714,72.552504 103.15714,71.0056 C 103.15714,69.867528 103.41875,68.867568 103.94202,68.005716 C 104.4764,67.13283 105.22231,66.431201 106.17978,65.900825 C 106.79207,65.558307 107.65489,65.276551 108.7682,65.055554 C 109.89264,64.82353 111.22861,64.707512 112.7761,64.707501 C 113.47749,64.707512 114.37371,64.735135 115.46475,64.790371 C 115.44246,63.994833 115.12518,63.353974 114.51288,62.867793 C 113.90056,62.381638 112.86517,62.138553 111.40674,62.13854 C 110.47156,62.138553 109.50298,62.254571 108.50101,62.486592 C 107.76623,62.663395 106.66962,63.05012 105.21119,63.646768 L 105.21119,58.740881 C 106.54715,58.365223 107.78292,58.10004 108.91851,57.945332 C 110.05407,57.79066 111.31211,57.713315 112.69263,57.713297 C 114.85243,57.713315 116.71722,57.912202 118.28699,58.309959 C 119.05515,58.497815 119.76766,58.79062 120.42454,59.188378 C 121.08138,59.586169 121.59907,60.02814 121.97762,60.514293 C 122.36724,60.989428 122.68454,61.591614 122.9295,62.320853 C 123.18553,63.05012 123.31357,64.055605 123.31358,65.33731 L 123.31358,75.861765 L 115.63175,75.861765 M 115.69855,67.972568 C 114.30691,67.961526 113.33832,68.011249 112.79282,68.121734 C 112.24727,68.232234 111.81866,68.469793 111.50693,68.834413 C 111.19522,69.199047 111.03934,69.613395 111.03935,70.077459 C 111.03934,70.574683 111.22861,71.005604 111.60714,71.370227 C 111.98566,71.723808 112.44768,71.900596 112.99322,71.900593 C 113.67231,71.900596 114.29577,71.607791 114.86358,71.022173 C 115.43134,70.436566 115.71525,69.596821 115.71525,68.502934 C 115.71525,68.381399 115.70968,68.20461 115.69855,67.972568 M 142.55155,58.376254 L 142.55155,63.646768 C 141.04855,63.03907 139.76826,62.735215 138.71063,62.735202 C 137.41918,62.735215 136.38381,63.110891 135.6045,63.86223 C 134.82518,64.613593 134.43552,65.59698 134.43553,66.812392 C 134.43552,68.171463 134.82518,69.248768 135.6045,70.044311 C 136.39494,70.828816 137.46928,71.221066 138.82753,71.221061 C 139.92968,71.221066 141.22114,70.867489 142.70184,70.160328 L 142.70184,75.46399 C 140.50862,76.071702 138.34322,76.375557 136.20569,76.375558 C 134.44665,76.375557 132.80452,76.115898 131.27929,75.596582 C 130.13258,75.209858 129.13618,74.646344 128.29007,73.90604 C 127.45508,73.15469 126.80936,72.325994 126.35291,71.419948 C 125.69606,70.116137 125.36763,68.646582 125.36763,67.011279 C 125.36763,63.89539 126.52547,61.459022 128.84117,59.70217 C 130.66698,58.309976 133.14964,57.613871 136.2892,57.613853 C 138.47127,57.613871 140.55871,57.868005 142.55155,58.376254 M 154.2413,65.221293 L 159.21776,58.144219 L 168.95366,58.144219 L 162.94178,66.000268 L 169.20414,75.861765 L 159.13426,75.861765 L 154.2413,67.259888 L 154.2413,75.861765 L 145.52407,75.861765 L 145.52407,50.255022 L 154.2413,50.255022 L 154.2413,65.221293"
       id="text2980" />
    <path
       style="font-size:9.72235012px;font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Frutiger45-Light"
       d="M 87.460353,88.057465 L 88.081744,88.057465 L 88.081744,85.211201 L 88.101471,85.211201 C 88.259282,85.530647 88.463124,85.770232 88.712998,85.929955 C 88.962867,86.083288 89.281782,86.159955 89.669743,86.159955 C 90.33387,86.159955 90.843476,85.923565 91.198561,85.450785 C 91.560211,84.971618 91.741039,84.355087 91.741044,83.601194 C 91.741039,82.815359 91.579938,82.202023 91.25774,81.761184 C 91.086772,81.531188 90.869779,81.355493 90.60676,81.234098 C 90.343734,81.106325 90.031395,81.042436 89.669743,81.042431 C 89.43302,81.042436 89.222602,81.077575 89.038488,81.147848 C 88.85437,81.211743 88.699845,81.294798 88.574911,81.397016 C 88.456549,81.499244 88.361203,81.601466 88.288874,81.703684 C 88.216541,81.799522 88.147498,81.901745 88.081744,82.010353 L 88.062018,82.048686 L 88.042291,82.048686 L 88.081744,81.157431 L 87.460353,81.157431 L 87.460353,88.057465 M 91.060474,83.601194 C 91.06047,83.863141 91.037455,84.112309 90.991431,84.348697 C 90.945397,84.585088 90.863203,84.802312 90.744847,85.000367 C 90.633058,85.192035 90.478533,85.348563 90.281269,85.469952 C 90.090575,85.584954 89.853854,85.642454 89.571109,85.642453 C 89.308084,85.642454 89.081227,85.581759 88.890538,85.460369 C 88.699845,85.33898 88.545319,85.179258 88.426961,84.9812 C 88.308599,84.776755 88.219829,84.556338 88.160651,84.319947 C 88.108045,84.077169 88.081743,83.837586 88.081744,83.601194 C 88.081743,83.364806 88.108045,83.128416 88.160651,82.892023 C 88.219829,82.649248 88.305311,82.42883 88.417097,82.23077 C 88.535456,82.026329 88.689981,81.863412 88.880675,81.742018 C 89.077939,81.620632 89.308084,81.559938 89.571109,81.559933 C 89.853854,81.559938 90.090575,81.620632 90.281269,81.742018 C 90.478533,81.857022 90.633058,82.01355 90.744847,82.211603 C 90.863203,82.403275 90.945397,82.617303 90.991431,82.853689 C 91.037455,83.090082 91.06047,83.33925 91.060474,83.601194 M 92.509615,83.601194 C 92.509614,83.939808 92.555643,84.265642 92.647702,84.578698 C 92.746334,84.885367 92.890996,85.156896 93.081688,85.393285 C 93.272378,85.629676 93.515674,85.818149 93.811576,85.958705 C 94.11405,86.092872 94.462554,86.159955 94.85709,86.159955 C 95.251621,86.159955 95.596838,86.092872 95.892741,85.958705 C 96.195213,85.818149 96.441797,85.629676 96.632492,85.393285 C 96.823179,85.150508 96.964554,84.875783 97.056616,84.569114 C 97.155245,84.262449 97.204561,83.939808 97.204567,83.601194 C 97.204561,83.262583 97.155245,82.939944 97.056616,82.633272 C 96.964554,82.320218 96.823179,82.045495 96.632492,81.809101 C 96.441797,81.572716 96.195213,81.387438 95.892741,81.253266 C 95.596838,81.112714 95.251621,81.042436 94.85709,81.042431 C 94.462554,81.042436 94.117338,81.112714 93.821439,81.253266 C 93.525538,81.387438 93.278954,81.575911 93.081688,81.818685 C 92.890996,82.055079 92.746334,82.326608 92.647702,82.633272 C 92.555643,82.939944 92.509614,83.262583 92.509615,83.601194 M 93.190185,83.601194 C 93.190184,83.013416 93.334846,82.527858 93.624172,82.144519 C 93.920071,81.7548 94.331043,81.559938 94.85709,81.559933 C 95.383132,81.559938 95.790816,81.7548 96.080145,82.144519 C 96.376041,82.527858 96.523991,83.013416 96.523995,83.601194 C 96.523991,84.188976 96.376041,84.677727 96.080145,85.06745 C 95.790816,85.450786 95.383132,85.642454 94.85709,85.642453 C 94.331043,85.642454 93.920071,85.450786 93.624172,85.06745 C 93.334846,84.677727 93.190184,84.188976 93.190185,83.601194 M 105.09447,81.157431 L 104.47308,81.157431 L 103.08235,85.383702 L 103.06262,85.383702 L 101.73107,81.157431 L 100.98146,81.157431 L 99.580861,85.383702 L 99.561135,85.383702 L 98.239447,81.157431 L 97.558876,81.157431 L 99.176464,86.044955 L 99.926079,86.044955 L 101.29708,81.818685 L 101.31681,81.818685 L 102.68781,86.044955 L 103.43743,86.044955 L 105.09447,81.157431 M 109.15539,85.278285 C 109.00415,85.374119 108.78387,85.460369 108.49455,85.537035 C 108.2118,85.607314 107.96192,85.642454 107.74493,85.642453 C 107.22547,85.642454 106.81778,85.466758 106.52188,85.115367 C 106.23255,84.763978 106.0879,84.316754 106.0879,83.773694 L 109.5302,83.773694 L 109.5302,83.467026 C 109.5302,83.128416 109.49075,82.815359 109.41184,82.527854 C 109.33293,82.233968 109.21128,81.975217 109.04689,81.751601 C 108.88908,81.527994 108.68195,81.355493 108.42551,81.234098 C 108.16905,81.106325 107.86987,81.042436 107.52794,81.042431 C 107.21889,81.042436 106.93285,81.106325 106.66983,81.234098 C 106.4068,81.355493 106.17995,81.531188 105.98927,81.761184 C 105.80514,81.99119 105.66049,82.262718 105.55527,82.575772 C 105.45664,82.888832 105.40733,83.230639 105.40733,83.601194 C 105.40733,83.978141 105.45007,84.323142 105.53555,84.636199 C 105.62103,84.942868 105.75254,85.211201 105.93008,85.441202 C 106.11419,85.671204 106.35091,85.850093 106.64024,85.977872 C 106.93614,86.09926 107.28793,86.159955 107.69562,86.159955 C 107.93891,86.159955 108.18879,86.1344 108.44523,86.083288 C 108.70825,86.038566 108.94498,85.974677 109.15539,85.89162 L 109.15539,85.278285 M 106.0879,83.256192 C 106.0879,83.051749 106.12078,82.850499 106.18652,82.652439 C 106.25886,82.447997 106.35749,82.262718 106.48242,82.096603 C 106.61393,81.930495 106.77175,81.799522 106.95587,81.703684 C 107.13998,81.607855 107.34383,81.559938 107.56739,81.559933 C 107.79096,81.559938 107.98494,81.607855 108.14933,81.703684 C 108.31372,81.793134 108.44523,81.917717 108.54386,82.077436 C 108.64908,82.237163 108.72469,82.419247 108.77073,82.623689 C 108.82333,82.821749 108.84962,83.032582 108.84963,83.256192 L 106.0879,83.256192 M 110.61748,86.044955 L 111.23887,86.044955 L 111.23887,83.629944 C 111.23887,83.387167 111.2586,83.153972 111.29805,82.930357 C 111.33751,82.700359 111.40654,82.492719 111.50518,82.307437 C 111.60381,82.115773 111.73204,81.96244 111.88985,81.847435 C 112.05424,81.732439 112.25479,81.674939 112.49151,81.674934 C 112.66905,81.674939 112.82029,81.694105 112.94523,81.732434 L 112.94523,81.099931 C 112.88604,81.08077 112.81372,81.067992 112.72824,81.061598 C 112.64933,81.048825 112.57699,81.042436 112.51124,81.042431 C 112.21533,81.042436 111.9556,81.141464 111.73204,81.339516 C 111.51504,81.537577 111.34408,81.789939 111.21914,82.096603 L 111.19941,82.096603 L 111.19941,81.157431 L 110.57803,81.157431 C 110.59775,81.323548 110.60761,81.473688 110.60761,81.607851 C 110.61419,81.735634 110.61748,81.949662 110.61748,82.249937 L 110.61748,86.044955 M 113.39078,85.929955 C 113.78531,86.083288 114.25546,86.159955 114.80123,86.159955 C 115.00507,86.159955 115.20892,86.1344 115.41276,86.083288 C 115.61661,86.032177 115.804,85.952315 115.97497,85.843704 C 116.15251,85.735092 116.29389,85.591342 116.3991,85.412452 C 116.5043,85.233563 116.55691,85.019535 116.55691,84.770365 C 116.55691,84.553144 116.51417,84.361476 116.42868,84.195362 C 116.3432,84.029253 116.22813,83.888696 116.08347,83.773694 C 115.94537,83.652307 115.79743,83.553278 115.63961,83.476609 C 115.48838,83.393556 115.2944,83.300917 115.05769,83.198691 C 114.72232,83.051749 114.47575,82.920776 114.31793,82.805773 C 114.16012,82.690776 114.08121,82.547025 114.08121,82.374521 C 114.08121,82.080635 114.17326,81.872995 114.35738,81.751601 C 114.54807,81.623827 114.81767,81.559938 115.16618,81.559933 C 115.33714,81.559938 115.52454,81.582299 115.72839,81.627018 C 115.9388,81.665355 116.12292,81.719661 116.28074,81.789935 L 116.33991,81.262849 C 116.13607,81.186186 115.91579,81.131881 115.67907,81.099931 C 115.44893,81.061603 115.25495,81.042436 115.09713,81.042431 C 114.88014,81.042436 114.67301,81.067992 114.47575,81.119098 C 114.28505,81.163826 114.1108,81.240493 113.95298,81.349099 C 113.80175,81.457716 113.6801,81.598272 113.58805,81.770768 C 113.50256,81.936884 113.45981,82.138135 113.45981,82.374521 C 113.45981,82.547025 113.49598,82.703554 113.56832,82.844106 C 113.64065,82.978277 113.73599,83.096472 113.85435,83.198691 C 113.97272,83.300917 114.09765,83.387167 114.22916,83.457442 C 114.36725,83.527723 114.54478,83.61078 114.76178,83.706611 C 115.13658,83.879113 115.41605,84.038836 115.60016,84.185779 C 115.78428,84.326337 115.87634,84.521199 115.87634,84.770365 C 115.87634,85.038701 115.76784,85.25273 115.55085,85.412452 C 115.33385,85.565786 115.07083,85.642454 114.76178,85.642453 C 114.30807,85.642454 113.87079,85.540231 113.44995,85.335785 L 113.39078,85.929955 M 127.11361,81.157431 L 126.49222,81.157431 L 125.10149,85.383702 L 125.08177,85.383702 L 123.75021,81.157431 L 123.0006,81.157431 L 121.60001,85.383702 L 121.58027,85.383702 L 120.25859,81.157431 L 119.57802,81.157431 L 121.19561,86.044955 L 121.94522,86.044955 L 123.31623,81.818685 L 123.33595,81.818685 L 124.70696,86.044955 L 125.45657,86.044955 L 127.11361,81.157431 M 131.17454,85.278285 C 131.0233,85.374119 130.80301,85.460369 130.51369,85.537035 C 130.23094,85.607314 129.98107,85.642454 129.76408,85.642453 C 129.2446,85.642454 128.83693,85.466758 128.54103,85.115367 C 128.2517,84.763978 128.10703,84.316754 128.10704,83.773694 L 131.54935,83.773694 L 131.54935,83.467026 C 131.54934,83.128416 131.50988,82.815359 131.43099,82.527854 C 131.35207,82.233968 131.23043,81.975217 131.06604,81.751601 C 130.90822,81.527994 130.70109,81.355493 130.44465,81.234098 C 130.1882,81.106325 129.88901,81.042436 129.54709,81.042431 C 129.23803,81.042436 128.95199,81.106325 128.68897,81.234098 C 128.42595,81.355493 128.1991,81.531188 128.0084,81.761184 C 127.82429,81.99119 127.67962,82.262718 127.57442,82.575772 C 127.47578,82.888832 127.42646,83.230639 127.42646,83.601194 C 127.42646,83.978141 127.4692,84.323142 127.55469,84.636199 C 127.64017,84.942868 127.77168,85.211201 127.94923,85.441202 C 128.13334,85.671204 128.37006,85.850093 128.65939,85.977872 C 128.95529,86.09926 129.30708,86.159955 129.71476,86.159955 C 129.95805,86.159955 130.20792,86.1344 130.46438,86.083288 C 130.7274,86.038566 130.96411,85.974677 131.17454,85.89162 L 131.17454,85.278285 M 128.10704,83.256192 C 128.10703,83.051749 128.13991,82.850499 128.20567,82.652439 C 128.278,82.447997 128.37664,82.262718 128.50157,82.096603 C 128.63308,81.930495 128.7909,81.799522 128.97501,81.703684 C 129.15912,81.607855 129.36297,81.559938 129.58654,81.559933 C 129.81011,81.559938 130.00408,81.607855 130.16848,81.703684 C 130.33286,81.793134 130.46437,81.917717 130.56301,82.077436 C 130.66821,82.237163 130.74383,82.419247 130.78986,82.623689 C 130.84246,82.821749 130.86877,83.032582 130.86877,83.256192 L 128.10704,83.256192 M 132.57745,86.044955 L 133.19884,86.044955 L 133.19884,85.268702 L 133.21856,85.268702 C 133.54077,85.862871 134.06352,86.159955 134.78684,86.159955 C 135.45096,86.159955 135.96057,85.923565 136.31565,85.450785 C 136.6773,84.971618 136.85813,84.355087 136.85814,83.601194 C 136.85813,82.815359 136.69703,82.202023 136.37483,81.761184 C 136.20386,81.531188 135.98687,81.355493 135.72385,81.234098 C 135.46082,81.106325 135.14849,81.042436 134.78684,81.042431 C 134.55669,81.042436 134.34627,81.077575 134.15558,81.147848 C 133.97146,81.218131 133.81365,81.304381 133.68214,81.4066 C 133.55063,81.508827 133.44542,81.611049 133.36651,81.713268 C 133.29418,81.815494 133.24487,81.904939 133.21856,81.981603 L 133.19884,81.981603 L 133.19884,78.85742 L 132.57745,78.85742 L 132.57745,86.044955 M 136.17757,83.601194 C 136.17756,83.863141 136.15455,84.112309 136.10852,84.348697 C 136.06249,84.585088 135.9803,84.802312 135.86194,85.000367 C 135.75015,85.192035 135.59563,85.348563 135.39836,85.469952 C 135.20766,85.584954 134.97095,85.642454 134.6882,85.642453 C 134.42518,85.642454 134.19832,85.581759 134.00763,85.460369 C 133.81693,85.33898 133.66241,85.179258 133.54405,84.9812 C 133.42569,84.776755 133.33692,84.556338 133.27775,84.319947 C 133.22513,84.077169 133.19884,83.837586 133.19884,83.601194 C 133.19884,83.358417 133.22513,83.118832 133.27775,82.882439 C 133.33035,82.646053 133.41254,82.42883 133.52433,82.23077 C 133.64268,82.026329 133.79721,81.863412 133.98791,81.742018 C 134.18517,81.620632 134.4186,81.559938 134.6882,81.559933 C 134.97095,81.559938 135.20766,81.620632 135.39836,81.742018 C 135.59563,81.857022 135.75015,82.01355 135.86194,82.211603 C 135.9803,82.403275 136.06249,82.617303 136.10852,82.853689 C 136.15455,83.090082 136.17756,83.33925 136.17757,83.601194 M 143.57908,86.044955 L 144.1906,86.044955 C 144.17087,85.891621 144.15772,85.744676 144.15115,85.60412 C 144.14457,85.463564 144.14129,85.268702 144.14129,85.019534 L 144.14129,82.863273 C 144.14129,82.224385 144.0032,81.761189 143.72703,81.473683 C 143.45085,81.186186 143.00043,81.042436 142.37575,81.042431 C 142.15876,81.042436 141.9056,81.077575 141.61627,81.147848 C 141.32695,81.211743 141.08694,81.288409 140.89625,81.377849 L 140.89625,81.962436 C 141.33023,81.694105 141.8234,81.559938 142.37575,81.559933 C 142.78344,81.559938 143.07605,81.662161 143.25359,81.866601 C 143.43113,82.071051 143.51989,82.387303 143.51989,82.815356 L 143.51989,83.064524 L 143.40154,83.064524 C 142.9807,83.064527 142.6026,83.080499 142.26726,83.112441 C 141.93848,83.144389 141.62285,83.214667 141.32037,83.323276 C 141.0179,83.43189 140.77131,83.60439 140.58062,83.840777 C 140.39651,84.077169 140.30445,84.390227 140.30445,84.779949 C 140.30445,84.914117 140.32417,85.057868 140.36363,85.211201 C 140.40965,85.364536 140.49185,85.514675 140.61021,85.66162 C 140.72857,85.802177 140.89954,85.920372 141.1231,86.016205 C 141.34667,86.112038 141.62613,86.159955 141.96149,86.159955 C 142.29027,86.159955 142.60589,86.080094 142.90837,85.920371 C 143.21085,85.760649 143.42784,85.540231 143.55935,85.259118 L 143.57908,85.259118 L 143.57908,86.044955 M 143.51989,83.879111 C 143.51989,84.077169 143.50675,84.265642 143.48044,84.444531 C 143.46072,84.623422 143.40153,84.805506 143.3029,84.990783 C 143.21085,85.176063 143.0596,85.332591 142.84919,85.460369 C 142.64534,85.581759 142.37246,85.642454 142.03053,85.642453 C 141.72148,85.642454 141.46832,85.572176 141.27106,85.431619 C 141.08036,85.284674 140.98502,85.061063 140.98502,84.760782 C 140.98502,84.505227 141.05077,84.297587 141.18229,84.137862 C 141.32037,83.978141 141.5012,83.859946 141.72477,83.783277 C 141.95491,83.700224 142.2015,83.645918 142.46452,83.62036 C 142.72754,83.594807 143.02015,83.582028 143.34236,83.582027 L 143.51989,83.582027 L 143.51989,83.879111 M 145.46529,88.057465 L 146.08668,88.057465 L 146.08668,85.211201 L 146.10641,85.211201 C 146.26422,85.530647 146.46806,85.770232 146.71794,85.929955 C 146.9678,86.083288 147.28672,86.159955 147.67468,86.159955 C 148.33881,86.159955 148.84841,85.923565 149.2035,85.450785 C 149.56515,84.971618 149.74597,84.355087 149.74598,83.601194 C 149.74597,82.815359 149.58487,82.202023 149.26268,81.761184 C 149.09171,81.531188 148.87472,81.355493 148.6117,81.234098 C 148.34867,81.106325 148.03634,81.042436 147.67468,81.042431 C 147.43795,81.042436 147.22753,81.077575 147.04342,81.147848 C 146.85931,81.211743 146.70478,81.294798 146.57985,81.397016 C 146.46148,81.499244 146.36614,81.601466 146.29381,81.703684 C 146.22148,81.799522 146.15244,81.901745 146.08668,82.010353 L 146.06695,82.048686 L 146.04723,82.048686 L 146.08668,81.157431 L 145.46529,81.157431 L 145.46529,88.057465 M 149.06541,83.601194 C 149.06541,83.863141 149.04239,84.112309 148.99637,84.348697 C 148.95033,84.585088 148.86814,84.802312 148.74978,85.000367 C 148.638,85.192035 148.48347,85.348563 148.28621,85.469952 C 148.09551,85.584954 147.85879,85.642454 147.57605,85.642453 C 147.31302,85.642454 147.08616,85.581759 146.89548,85.460369 C 146.70478,85.33898 146.55025,85.179258 146.4319,84.9812 C 146.31354,84.776755 146.22477,84.556338 146.16558,84.319947 C 146.11298,84.077169 146.08668,83.837586 146.08668,83.601194 C 146.08668,83.364806 146.11298,83.128416 146.16558,82.892023 C 146.22477,82.649248 146.31025,82.42883 146.42203,82.23077 C 146.54039,82.026329 146.69492,81.863412 146.88562,81.742018 C 147.08288,81.620632 147.31302,81.559938 147.57605,81.559933 C 147.85879,81.559938 148.09551,81.620632 148.28621,81.742018 C 148.48347,81.857022 148.638,82.01355 148.74978,82.211603 C 148.86814,82.403275 148.95033,82.617303 148.99637,82.853689 C 149.04239,83.090082 149.06541,83.33925 149.06541,83.601194 M 150.84004,88.057465 L 151.46144,88.057465 L 151.46144,85.211201 L 151.48116,85.211201 C 151.63897,85.530647 151.84281,85.770232 152.09269,85.929955 C 152.34255,86.083288 152.66147,86.159955 153.04943,86.159955 C 153.71356,86.159955 154.22316,85.923565 154.57825,85.450785 C 154.9399,84.971618 155.12072,84.355087 155.12073,83.601194 C 155.12072,82.815359 154.95962,82.202023 154.63743,81.761184 C 154.46646,81.531188 154.24947,81.355493 153.98645,81.234098 C 153.72342,81.106325 153.41109,81.042436 153.04943,81.042431 C 152.8127,81.042436 152.60228,81.077575 152.41817,81.147848 C 152.23406,81.211743 152.07953,81.294798 151.9546,81.397016 C 151.83623,81.499244 151.74089,81.601466 151.66856,81.703684 C 151.59623,81.799522 151.52719,81.901745 151.46144,82.010353 L 151.4417,82.048686 L 151.42198,82.048686 L 151.46144,81.157431 L 150.84004,81.157431 L 150.84004,88.057465 M 154.44016,83.601194 C 154.44016,83.863141 154.41715,84.112309 154.37112,84.348697 C 154.32508,84.585088 154.24289,84.802312 154.12453,85.000367 C 154.01275,85.192035 153.85822,85.348563 153.66096,85.469952 C 153.47026,85.584954 153.23354,85.642454 152.9508,85.642453 C 152.68777,85.642454 152.46091,85.581759 152.27023,85.460369 C 152.07953,85.33898 151.925,85.179258 151.80665,84.9812 C 151.68829,84.776755 151.59952,84.556338 151.54033,84.319947 C 151.48773,84.077169 151.46143,83.837586 151.46144,83.601194 C 151.46143,83.364806 151.48773,83.128416 151.54033,82.892023 C 151.59952,82.649248 151.685,82.42883 151.79679,82.23077 C 151.91514,82.026329 152.06967,81.863412 152.26037,81.742018 C 152.45763,81.620632 152.68777,81.559938 152.9508,81.559933 C 153.23354,81.559938 153.47026,81.620632 153.66096,81.742018 C 153.85822,81.857022 154.01275,82.01355 154.12453,82.211603 C 154.24289,82.403275 154.32508,82.617303 154.37112,82.853689 C 154.41715,83.090082 154.44016,83.33925 154.44016,83.601194 M 156.27397,86.044955 L 156.89536,86.044955 L 156.89536,78.85742 L 156.27397,78.85742 L 156.27397,86.044955 M 158.43157,86.044955 L 159.05296,86.044955 L 159.05296,81.157431 L 158.43157,81.157431 L 158.43157,86.044955 M 159.05296,79.049088 L 158.43157,79.049088 L 158.43157,79.854092 L 159.05296,79.854092 L 159.05296,79.049088 M 163.91314,81.234098 C 163.7619,81.182993 163.58435,81.13827 163.38052,81.099931 C 163.18325,81.061603 162.95638,81.042436 162.69995,81.042431 C 162.33171,81.042436 161.99307,81.106325 161.68401,81.234098 C 161.38154,81.355493 161.11852,81.531188 160.89496,81.761184 C 160.67795,81.9848 160.51028,82.25633 160.39192,82.575772 C 160.27356,82.888832 160.21438,83.230639 160.21438,83.601194 C 160.21438,83.946197 160.2637,84.275226 160.36233,84.588282 C 160.46754,84.89495 160.61878,85.166479 160.81605,85.402869 C 161.01989,85.639259 161.27305,85.824537 161.57552,85.958705 C 161.88457,86.092872 162.23307,86.159955 162.62104,86.159955 C 162.87749,86.159955 163.10762,86.147178 163.31147,86.121622 C 163.51531,86.102455 163.71586,86.057733 163.91314,85.987455 L 163.85395,85.422035 C 163.44627,85.568981 163.06817,85.642454 162.71967,85.642453 C 162.44349,85.642454 162.19033,85.591342 161.96019,85.489119 C 161.73663,85.380508 161.54593,85.233563 161.38812,85.048284 C 161.23031,84.856617 161.10866,84.639394 161.02318,84.396614 C 160.9377,84.147448 160.89496,83.882308 160.89496,83.601194 C 160.89496,82.994249 161.06263,82.502303 161.39799,82.125353 C 161.73333,81.748411 162.19691,81.559938 162.78872,81.559933 C 162.94652,81.559938 163.12077,81.582299 163.31147,81.627018 C 163.50215,81.671744 163.68628,81.732439 163.86381,81.809101 L 163.91314,81.234098 M 167.77509,86.044955 L 168.38662,86.044955 C 168.36688,85.891621 168.35374,85.744676 168.34716,85.60412 C 168.34059,85.463564 168.3373,85.268702 168.3373,85.019534 L 168.3373,82.863273 C 168.3373,82.224385 168.19921,81.761189 167.92304,81.473683 C 167.64686,81.186186 167.19644,81.042436 166.57176,81.042431 C 166.35477,81.042436 166.10161,81.077575 165.81229,81.147848 C 165.52296,81.211743 165.28295,81.288409 165.09226,81.377849 L 165.09226,81.962436 C 165.52625,81.694105 166.01942,81.559938 166.57176,81.559933 C 166.97945,81.559938 167.27205,81.662161 167.4496,81.866601 C 167.62714,82.071051 167.71591,82.387303 167.71591,82.815356 L 167.71591,83.064524 L 167.59756,83.064524 C 167.17671,83.064527 166.79862,83.080499 166.46327,83.112441 C 166.13448,83.144389 165.81886,83.214667 165.51639,83.323276 C 165.21391,83.43189 164.96733,83.60439 164.77663,83.840777 C 164.59252,84.077169 164.50047,84.390227 164.50047,84.779949 C 164.50047,84.914117 164.52019,85.057868 164.55964,85.211201 C 164.60567,85.364536 164.68786,85.514675 164.80623,85.66162 C 164.92459,85.802177 165.09555,85.920372 165.31912,86.016205 C 165.54268,86.112038 165.82215,86.159955 166.1575,86.159955 C 166.48628,86.159955 166.8019,86.080094 167.10439,85.920371 C 167.40686,85.760649 167.62385,85.540231 167.75536,85.259118 L 167.77509,85.259118 L 167.77509,86.044955 M 167.71591,83.879111 C 167.71591,84.077169 167.70276,84.265642 167.67645,84.444531 C 167.65673,84.623422 167.59755,84.805506 167.49892,84.990783 C 167.40686,85.176063 167.25562,85.332591 167.0452,85.460369 C 166.84136,85.581759 166.56848,85.642454 166.22655,85.642453 C 165.91749,85.642454 165.66433,85.572176 165.46707,85.431619 C 165.27638,85.284674 165.18103,85.061063 165.18103,84.760782 C 165.18103,84.505227 165.24678,84.297587 165.3783,84.137862 C 165.51639,83.978141 165.69721,83.859946 165.92079,83.783277 C 166.15093,83.700224 166.39751,83.645918 166.66053,83.62036 C 166.92355,83.594807 167.21617,83.582028 167.53837,83.582027 L 167.71591,83.582027 L 167.71591,83.879111 M 171.89041,81.157431 L 170.74627,81.157431 L 170.74627,79.767842 L 170.12487,79.978676 L 170.12487,81.157431 L 169.13855,81.157431 L 169.13855,81.674934 L 170.12487,81.674934 L 170.12487,84.530781 C 170.12487,84.805506 170.13474,85.032313 170.15447,85.211201 C 170.17419,85.390091 170.22022,85.553009 170.29255,85.699953 C 170.36489,85.84051 170.47996,85.952315 170.63778,86.035372 C 170.79558,86.118427 171.006,86.159955 171.26903,86.159955 C 171.40711,86.159955 171.5452,86.143983 171.68328,86.112038 C 171.82795,86.086483 171.94301,86.057733 172.02851,86.025788 L 171.98905,85.527452 C 171.89041,85.565786 171.79507,85.594537 171.70301,85.613703 C 171.61753,85.63287 171.52218,85.642454 171.41697,85.642453 C 171.18025,85.642454 171.00929,85.568981 170.90408,85.422035 C 170.79887,85.275091 170.74627,85.080229 170.74627,84.837449 L 170.74627,81.674934 L 171.89041,81.674934 L 171.89041,81.157431 M 172.93762,86.044955 L 173.55901,86.044955 L 173.55901,81.157431 L 172.93762,81.157431 L 172.93762,86.044955 M 173.55901,79.049088 L 172.93762,79.049088 L 172.93762,79.854092 L 173.55901,79.854092 L 173.55901,79.049088 M 174.71057,83.601194 C 174.71057,83.939808 174.75659,84.265642 174.84866,84.578698 C 174.94729,84.885367 175.09195,85.156896 175.28264,85.393285 C 175.47333,85.629676 175.71663,85.818149 176.01253,85.958705 C 176.315,86.092872 176.66351,86.159955 177.05804,86.159955 C 177.45257,86.159955 177.7978,86.092872 178.0937,85.958705 C 178.39617,85.818149 178.64275,85.629676 178.83345,85.393285 C 179.02414,85.150508 179.16551,84.875783 179.25757,84.569114 C 179.35619,84.262449 179.40552,83.939808 179.40552,83.601194 C 179.40552,83.262583 179.35619,82.939944 179.25757,82.633272 C 179.16551,82.320218 179.02414,82.045495 178.83345,81.809101 C 178.64275,81.572716 178.39617,81.387438 178.0937,81.253266 C 177.7978,81.112714 177.45257,81.042436 177.05804,81.042431 C 176.66351,81.042436 176.31829,81.112714 176.0224,81.253266 C 175.72649,81.387438 175.47991,81.575911 175.28264,81.818685 C 175.09195,82.055079 174.94729,82.326608 174.84866,82.633272 C 174.75659,82.939944 174.71057,83.262583 174.71057,83.601194 M 175.39114,83.601194 C 175.39113,83.013416 175.5358,82.527858 175.82513,82.144519 C 176.12103,81.7548 176.53199,81.559938 177.05804,81.559933 C 177.58408,81.559938 177.99177,81.7548 178.2811,82.144519 C 178.57699,82.527858 178.72495,83.013416 178.72495,83.601194 C 178.72495,84.188976 178.57699,84.677727 178.2811,85.06745 C 177.99177,85.450786 177.58408,85.642454 177.05804,85.642453 C 176.53199,85.642454 176.12103,85.450786 175.82513,85.06745 C 175.5358,84.677727 175.39113,84.188976 175.39114,83.601194 M 180.46998,86.044955 L 181.09138,86.044955 L 181.09138,83.342442 C 181.09138,83.125222 181.11768,82.914387 181.17029,82.709939 C 181.22289,82.499108 181.30508,82.307441 181.41687,82.134936 C 181.53523,81.95605 181.68975,81.815494 181.88045,81.713268 C 182.07772,81.611049 182.31114,81.559938 182.58075,81.559933 C 182.995,81.559938 183.29748,81.690911 183.48817,81.952852 C 183.67886,82.214802 183.77421,82.588553 183.77421,83.074107 L 183.77421,86.044955 L 184.3956,86.044955 L 184.3956,82.920774 C 184.3956,82.345775 184.25751,81.888967 183.98134,81.55035 C 183.70516,81.211743 183.27118,81.042436 182.67938,81.042431 C 182.43608,81.042436 182.21909,81.071186 182.0284,81.128681 C 181.84428,81.186186 181.68975,81.262854 181.56482,81.358683 C 181.44646,81.454521 181.34782,81.556744 181.26893,81.665351 C 181.19001,81.773967 181.11768,81.895356 181.05192,82.029519 L 181.0322,82.029519 L 181.0322,81.157431 L 180.43054,81.157431 C 180.45684,81.419382 180.46998,81.802717 180.46998,82.307437 L 180.46998,86.044955 M 185.42016,85.929955 C 185.81469,86.083288 186.28484,86.159955 186.83061,86.159955 C 187.03445,86.159955 187.2383,86.1344 187.44214,86.083288 C 187.64598,86.032177 187.83338,85.952315 188.00435,85.843704 C 188.18188,85.735092 188.32326,85.591342 188.42848,85.412452 C 188.53368,85.233563 188.58628,85.019535 188.58628,84.770365 C 188.58628,84.553144 188.54354,84.361476 188.45806,84.195362 C 188.37258,84.029253 188.2575,83.888696 188.11285,83.773694 C 187.97475,83.652307 187.82681,83.553278 187.66899,83.476609 C 187.51776,83.393556 187.32378,83.300917 187.08706,83.198691 C 186.7517,83.051749 186.50513,82.920776 186.34731,82.805773 C 186.18949,82.690776 186.11059,82.547025 186.11059,82.374521 C 186.11059,82.080635 186.20264,81.872995 186.38676,81.751601 C 186.57745,81.623827 186.84705,81.559938 187.19555,81.559933 C 187.36652,81.559938 187.55392,81.582299 187.75777,81.627018 C 187.96818,81.665355 188.1523,81.719661 188.31012,81.789935 L 188.36929,81.262849 C 188.16545,81.186186 187.94517,81.131881 187.70845,81.099931 C 187.47831,81.061603 187.28432,81.042436 187.12652,81.042431 C 186.90952,81.042436 186.70238,81.067992 186.50513,81.119098 C 186.31443,81.163826 186.14018,81.240493 185.98236,81.349099 C 185.83113,81.457716 185.70948,81.598272 185.61743,81.770768 C 185.53194,81.936884 185.48919,82.138135 185.4892,82.374521 C 185.48919,82.547025 185.52536,82.703554 185.59769,82.844106 C 185.67003,82.978277 185.76537,83.096472 185.88373,83.198691 C 186.00209,83.300917 186.12703,83.387167 186.25854,83.457442 C 186.39662,83.527723 186.57416,83.61078 186.79116,83.706611 C 187.16596,83.879113 187.44543,84.038836 187.62955,84.185779 C 187.81366,84.326337 187.90572,84.521199 187.90572,84.770365 C 187.90572,85.038701 187.79722,85.25273 187.58022,85.412452 C 187.36323,85.565786 187.10021,85.642454 186.79116,85.642453 C 186.33745,85.642454 185.90017,85.540231 185.47933,85.335785 L 185.42016,85.929955"
       id="text2985" />
    <path
       style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:2.95839429;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 12.925286,86.778391 L 13.286986,19.159668 L 58.155285,26.942569 L 57.772633,93.67717 L 12.925286,86.778391 z "
       id="path2990" />
    <path
       style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
       d="M 13.488233,19.049404 L 37.172883,11.162464 L 77.786022,19.420245 L 57.107048,26.22552 L 13.488233,19.049404 z "
       id="path3877" />
    <path
       style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 57.997556,93.629361 L 77.486975,86.74764 L 77.759697,19.547174 L 58.5016,26.445081 L 57.997556,93.629361 z "
       id="path3879"
       sodipodi:nodetypes="ccccc" />
    <path
       style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 14.330613,38.606641 L 36.912066,32.135194 L 76.635736,40.056811 L 58.346077,46.531185 L 14.330613,38.606641 z "
       id="path3881"
       sodipodi:nodetypes="ccccc" />
    <path
       style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 14.150271,65.640082 L 36.731724,59.168636 L 77.314157,65.640929 L 57.787539,72.680481 L 14.150271,65.640082 z "
       id="path3883"
       sodipodi:nodetypes="ccccc" />
    <path
       style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 13.820355,86.361841 L 35.130498,79.541609 L 76.834867,85.878963"
       id="path3887" />
    <path
       style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 34.866065,79.042658 L 35.146638,69.563169"
       id="path3889" />
    <path
       style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 36.154699,58.803397 L 36.535174,42.88001"
       id="path3891" />
    <path
       style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
       d="M 36.776858,31.759485 L 36.855284,23.494878"
       id="path3893"
       sodipodi:nodetypes="cc" />
  </g>
</svg>
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/contrib/rack.svg000064400000027137150402106470015470 0ustar00<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="744.09448819"
   height="1052.3622047"
   id="svg2"
   version="1.1"
   inkscape:version="0.48.3.1 r9886"
   sodipodi:docname="rack.svg">
  <defs
     id="defs4">
    <linearGradient
       id="linearGradient3837"
       osb:paint="solid">
      <stop
         style="stop-color:#000000;stop-opacity:1;"
         offset="0"
         id="stop3839" />
    </linearGradient>
  </defs>
  <sodipodi:namedview
     id="base"
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1.0"
     inkscape:pageopacity="0.0"
     inkscape:pageshadow="2"
     inkscape:zoom="0.98994949"
     inkscape:cx="230.49849"
     inkscape:cy="656.46253"
     inkscape:document-units="px"
     inkscape:current-layer="layer1"
     showgrid="false"
     showguides="false"
     inkscape:guide-bbox="true"
     inkscape:window-width="1920"
     inkscape:window-height="1056"
     inkscape:window-x="1920"
     inkscape:window-y="24"
     inkscape:window-maximized="1">
    <sodipodi:guide
       orientation="1,0"
       position="645.99255,757.10933"
       id="guide2995" />
    <sodipodi:guide
       orientation="1,0"
       position="488.40876,686.90373"
       id="guide2997" />
    <sodipodi:guide
       orientation="1,0"
       position="176.7767,748.52304"
       id="guide2999" />
    <sodipodi:guide
       orientation="1,0"
       position="355.71429,782.85714"
       id="guide3005" />
    <sodipodi:guide
       orientation="0,1"
       position="527.14286,642.85714"
       id="guide3007" />
    <sodipodi:guide
       orientation="0,1"
       position="431.42857,507.85714"
       id="guide3009" />
    <sodipodi:guide
       orientation="0,1"
       position="488.40876,783.57143"
       id="guide3011" />
    <sodipodi:guide
       orientation="0,1"
       position="505,372.85714"
       id="guide3013" />
  </sodipodi:namedview>
  <metadata
     id="metadata7">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g
     inkscape:label="Layer 1"
     inkscape:groupmode="layer"
     id="layer1">
    <path
       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
       d="m 176.28125,201.03125 0,0.625 0,395.125 0,0.375 0.34375,0.0937 312.34375,91.6875 0.625,0.1875 0,-0.65625 0.125,-419.09375 0,-0.40625 -0.40625,-0.0937 -312.4375,-67.71875 -0.59375,-0.125 z m 1,1.21875 311.4375,67.5 -0.125,418.0625 -311.3125,-91.375 0,-394.1875 z"
       id="path2985"
       inkscape:connector-curvature="0" />
    <path
       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
       d="m 647.21875,206.59375 -0.6875,0.28125 -157.59375,62.21875 -0.3125,0.125 0,0.34375 0.1875,419.125 0,0.75 0.6875,-0.28125 156.0625,-63.1875 0.3125,-0.125 0,-0.34375 1.34375,-418.15625 0,-0.75 z m -1,1.4375 -1.34375,417.125 -155.0625,62.78125 -0.1875,-418.03125 156.59375,-61.875 z"
       id="path2993"
       inkscape:connector-curvature="0" />
    <path
       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
       d="m 355.6875,137.40625 -0.15625,0.0625 L 176.96875,201.0625 177.3125,202 355.75,138.4375 646.78125,207.53125 647,206.5625 l -291.15625,-69.125 -0.15625,-0.0312 z"
       id="path3003"
       inkscape:connector-curvature="0" />
    <path
       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
       d="m 355.71875,277.53125 -0.125,0.0312 -178.9375,47.96875 -1.8125,0.46875 1.8125,0.5 311.625,83.5 0.15625,0.0312 0.125,-0.0625 157.59375,-53.65625 1.5625,-0.53125 -1.59375,-0.4375 -290.28125,-77.78125 -0.125,-0.0312 z m 0,1.03125 L 644.3125,355.90625 488.375,409 178.71875,326 l 177,-47.4375 z"
       id="path3015"
       inkscape:connector-curvature="0" />
    <path
       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
       d="m 355.21875,240.9375 0,37.125 1,0 0,-37.125 -1,0 z"
       id="path3017"
       inkscape:connector-curvature="0" />
    <path
       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
       d="m 176.28125,202.65625 0,393.28125 1,0 0,-393.28125 -1,0 z"
       id="path3019"
       inkscape:connector-curvature="0" />
    <path
       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
       d="m 355.71875,409 -0.125,0.0312 L 177,455.8125 l -1.78125,0.46875 1.78125,0.5 L 488.28125,545 l 0.15625,0.0312 0.125,-0.0625 156.71875,-56.25 1.46875,-0.53125 -1.53125,-0.40625 -289.375,-78.75 -0.125,-0.0312 z m 0,1.03125 287.6875,78.28125 L 488.375,544 179.03125,456.3125 355.71875,410.03125 z"
       id="path3021"
       inkscape:connector-curvature="0" />
    <path
       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
       d="m 355.71875,544 -0.15625,0.0312 -178.5625,52.3125 0.28125,0.96875 178.4375,-52.28125 289.59375,80.25 0.28125,-0.96875 -289.75,-80.28125 -0.125,-0.0312 z"
       id="path3023"
       inkscape:connector-curvature="0" />
    <path
       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
       d="m 355.21875,374.34375 0,35.15625 1,0 0,-35.15625 -1,0 z"
       id="path3025"
       inkscape:connector-curvature="0" />
    <path
       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
       d="m 355.1875,507.03125 0,37.4375 1.03125,0 0,-37.4375 -1.03125,0 z"
       id="path3027"
       inkscape:connector-curvature="0" />
  </g>
</svg>
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/contrib/rack.png000064400000056375150402106470015463 0ustar00�PNG


IHDR@@e��6sRGB���bKGD�������	pHYs
�
�B(�xtIME�
,+(��� IDATx��y��y��h�B#��mɎ96ƾ�	%�8q9��J;�n%�Z�w>�;ݑ;#�؉�L��N��DxB���F��� 1k@4���c�ʩ{��nI�T��<k�b]-�[����_��o�/�����������������������������������HUqD��,�
�B�e`=p'�C#"""M�4��7��Q��#�C�'��Y����ԑq�b`ph�s�c�X
�NqHEDD$EF���=�:�D1�XLp�EDD�*�}�J`{�Eϱ�C����(��:"""�mf�5���8��8�)�N0�7����ˉ�<�j�ODz
����8た�Ck|-��{�;~�u�KN������{f攎����է9�"�$���7?|�у׿�6�����.Q�4�W���|��G���EAt;��""
 �z2�� ��S���F�h�6���:�.'Q���B�g!ՙ�>�"��\\N��|pv��u7p7-c�ߔ���T�h��Մ�NU��7�
���(�V��a�}v$�o��0�e(""�}�v4�$x����_@�Qv�L����e�_#At�V��E�9.Q��1?F��0�:���w�Z���]Jh���zm���\B��������E�ʫ��	��9���M�j��p�Q]��P��.l�E�C�-B�"�L���{�.����`^N��bB*n���bh9���(�����"ch����l���9%2c�
Q<����)�""�T��23��Ż+��>���I��ו���%w��cqn�z���H�����P]��1��K��Ѵ�ի�n]���C��DD$u^M��<T���H��,ƺ5À�qLV��uD;;�"]�8�""�Ө��p�xX�fp�&x���uD{h��N)����8TыpS|	�u:N��
4��X}�V�ƅ�݅"""cD|I����};�n>zC��8B�iY�����Z�,""���
�^f���Z��T&~��2Vo�~����5V���Q9��y����ki�Ӝ����WO�L��Za-"�Ü���4��O0T��tԎ�@cf�>R#At��}ʌՊn��3.~ů�:3��%�W�YL�e�^EF�Ջ���N��3"~���:s�43�cih\CuF��-И�mN-"R�f����%�p�!yI\�j&�6�2VϏ""�RU�T�ff���M�X��f�h��գ�N�r�A�f���L�CN��X}��\'c��x�7�k��t��t����UU�}���u�G�X��+И�g9�""'�H�73?�p53K��e�^M�;�k�9
C��J�33v斴�h\E�:�o���z�S*"���1��$�VB������
4�I�&�����{��_��;�|���S�9���=�S"
`!�2�<~\�%}{�N�/�� �QI��\=�U�`~�p#��D�8�M9A4�zթڐDk��""�`4!D���v�l!���9�㌈�Af���k�)c��D$)�r�+���p�J��z�S"r�{53V�����'z�w�wよT�iy�j���R�ȉ�ȟ�u*и���j+��H�xU���jʑ��[��hE���(&��j$��gSV��,�SDN���|���!�f9"�2��nZFH?խ�c�t�b��."�`-3�~��P�܇�HR'����j&�6�*Ш�ZD�����*ÿ��"uc6-c�ƚ	�]�7V��t�������@��,�$2c�
�.�u2V��|C��IN�H�xu��y����>`D��]Ɍ�U��;a�>����y�{+|����{?���Y�"�Y�ƪR�'[�13V��@$A�Ư�5�K����ff9��o��Z3A����z>v���3�*�۲��2���,D�8���[V��N�h7��}�m�*C��XAu�R�GѵwR�Hg�AcuU5�:a����H8/~e<Nuf�5�K�4�CDJb�4�~3c��N���8��k�2,|!_o�yI�Qf��N=��K�uh��}�,&䕫23o�_[��E$u��gUV��	���Vf�>�)�^��Y�f�
�>G�[kf���n��S��=����	N�4�����
o���&�CD����
4���V�Ԓ��M�D�7��u4���d,���U�9c�JZE�e՛��Lwg8""�N��U�锱Z�T�xZf��X<�p�8""��M�X��f�h'!����^�t��Tof�J03�s:DD:�L�h����@<��Xm-7�C��^Iu�(v�23ۛFD��L���z?�4V/�:oR����TWr=33�w:DD*eagoV��E�m��@c�"$M�\�C�0hU��;�����KD$I�����r�j`J��3!m�.�w���CL>S���}B�IDD��0Z;�>
�:E���~
xCx�`��5U,���ފ[ED������Q��.��ѭ�N�+�k
l<���hY������a������7�J�]A}��~H+ev+��Ԑ_-IE�	|�&��H��w����ʫ��q�>�g��ѣ;���<��.����	���'���S�'D��(Q�Z=�ܺx<Œ(1~���ߗ�e�;�"��xϋ��^\����ua;�j���Z۴w^]�f��Ď(�2At�����914��F�	xO|�)�*�9Ҭٰ��.ˎ�	;�DDDڙF�P=�PN%�-�G��@
��q��%��:�~L����+\F+J�&���C�B��D�JH��CH�}��XDD$�B��L]L���^���%��d9� '��!��3$""���9�v�]	�]�y\|G���	}^2At�_$""��(�.���S»��^���`>��NH3�\��	`�q��r��HgL�S٭���z����LB���0�S�΁���9�¡#]""=��/~$��^�q��~���`�$
�	���
��Q��,�u���4�)�R����w��0x�{|���E=��n������\�Bz��ܟ�k������-��|��u^z�NE��0`.!�r��|��F�"]+���چ��DD��4���M�=2���
4c	��%���f��%�A�-S]b""�3����3��Y�ĩ�]43�xX��ޚ��g���֧��DDJa*�	U�S|?\�)���pBzi1�0X ��2��\���H�
\?<�S�-���6�Rf<a��2`u��H���cY�~���)�lB��ْ�����<�/�w/r�@�Z���z��J]�!Z�%��k�����5��Ge�JY��&�
�;�w
@�`4-��JB��:G�vѪM������Q�l/�9�>F{��ܾS��1�RT��z!���7X�&�m=D������ޒ�����`��@�sZ@U1Pm��Կ6�
Z�!.s�1�gڋ%?O���<�"��^��*�Rb�km�y���x#/�ѯ�.{I��E{����Ĺ���s�(y�k�UD��̏ў�%>��=���}��Ɍ�Y��l�*"U1��c|���ޖ�Q{^����u�q�@M`"�k=O3���u�v�E�C�ϕU�Q�G{��~���\�RP5���DhFm"���ȉ05F{�nM�D��g�p�E�.	P��o���X�(�Nl�*"����Y��`��}��e��x��C���k��y�_Ou�Ez��1��H�Ϡ��ά躋D��s�(��E�ua7D��Z�H��ϯ��c�P�ϙ,�Suj�a�H:�MYJ3��Nr�Ej�,B*�钟%�����	�E���k\:
 )������Üb������YA/!:>�47b@�v)��3�y��e���v��ӝb�$��=ϖ�L�.a�i��Ϗ
\ӫ\N
 �3�����<����=�c�g^�����7ۥ��rhj��|m"
�"��uQ�l/�޾?��j8f�)�@R��u�kMq�E
1�j��a�g 6�f�)�$1����6�)N��+�(
�K�?�E�5�!�X���,��H�&�MԔ��&�E�V�y>~`5�ht�KP$�c�m�����V��̏ў�%�c�F�M��x�19ۥ��f��u?ͪMd�W�3�	;(�.��\���J��'
��Y.K�4�14��kV�h�S,��oDZ��/��5�ݓ
 ��@4��k�6��_%��5�Ò��1���-�*0^g�T@һ4��kV�h6��=e��9D��-l��C;��R��iZ��c�k6��sV\[?*y]?�Q_�'.�f:\
 ��Ѥ�/��f�H�X
0�V#�C��̢=n
�g
���K$R���u��e�^��d`f<6OS�`_�{Pi�x*�DN��j.��W���Т@zS�gў2{�0�sBl*0Ƨ7ႇ;�"�af��B��`=!Zt��i\�ǫ�*�E� �)����E6=���2�7���WQ�z>�	����?�	|/'���9ŵe!�s=�Vʋ��>|2
l)����0&M�H
�Ҷ�k�W���J'l/y�<@�f�α���Ou�@"U
��"-6�n3�j��bk�S����)M�`S`"�!�� !%���Lj�<��ԧ�O�c.���DHud�:���.>| ����/
��#�N�;X��&�����`�����T�ىў��V`~&;\
 �:
�v��u���Nw��/���%�]ֈ��t��|�y�*�H�h ڛ��Y�_G��^��8>�<7�F������.�HSP;5-����_�C�i����=�K�";��}��4Mo��d���8o?,y���h�y���B�y��p)�DzY
��_��)s^����ˋ
 ���s�7-�_�����`ΊQ��<VO�(�Y��`G��߄���t���j�d��@���|��)ChEry����wZ4T�l/a����~�!�	u��A�I=�^`u��4��G��0Z�5g�l���&Z����D���K�捄h�Lo��R��X�K$���h�&ZE�>E);cth9�`��^J#��5%�qn���d�U`��8\
 Py4��k����c����~4F{N��m�@
 P=��毣�+9ڳ7��ў�R����<@DD��@�_���⛀K�O�灚�n������*����	��6��3A+�D�I<��r���r��M�k�O��s)��A�O|EG\V���m��6)'����;B����	�s�-z��HDz���=��ˉ�K	Q�=0/����X�E48���4�����2��(�'D�Ҭ��R\�!tQ���;���lf� �G�
�m��ge@"
 9.�_��*Xg��M���M�~B��s�~O"'�HD��9|7�6�l��|Z[��Tpnۀ����S%������0�i�z9ݩ��2�(���t�H$"R����	\Lk�����_>K�|��P#P�T�0��h'8d��pO<2�����s�m���\B��L�5��Hr
�z�d�c�
B�oQ3����i�K:D�>z���Hw9x���[��0��s1����6��肈ȉ|��
 ��2�&
�>N��q<��2�.%D���	��0T-"�?F�D5_.ʉ�����˘��x$
�5�6/:]"r�(�Dz�YQd\����y��_!�˾�Dwc���H���ș�����^�kF�b�G�C�wh��n%԰PO�y%ぷS����{?��M�
e�h��@D4F�Dv�.'x�$�iz���=DH��%��v�LD@
 ��sf��G=�Z�dN<�Rc��ѷ)4Q)�DgpuN�\��y"t�����#����
��A+]f����0-�9�H?N�/��u���9O&&���`vN�]C�1�た���� �x��'R+z2TWl�!�����o3Qֱ�V;��n��v}���|���\����c���%�`욳�H�\BK�U�D��x���\$*+z���b}|�<��[���H�cT�5��)m
L��$�m��=}?p;����B��dO�߇`�2�˻&�hoױ��ut�!��������)�9�sQ|�����E�����+ipS<�����N
���v���"�k��O��E����1�ܯ���e馵���s�V��������=zI�=�cC:��kn�å��p6-�ք_�/�yOUdE3�P�c���RIמ	�]s;.����������@��,�ѓ&��g���ۖ��n����_@R6�zQ��n3��97e��W���nz���&`e<���k>a�l
���hp[��/)DN��#@i�Hy���#
����p�d��e���h|��������D$�3i�x6'�����>���J+��x�s}����
 ���.P/3�z�x��G9ugvN�nOx-좿(e~_$%3�b�]� #��h�/^���y�Џj-�?�6���l>�a�W�N� ���c�������f�ل���⚓�b���}<��6�������xx�V��jӷ)0)�I���M�h#@�1��5=���)��6��r�v��J�\��c)�+vG����M���
Cz�S��Y�O�ѓ�LHg�K��Q�O�m#�S�"��JQIU�+�P����b�	I�c���:&ua,L�I�L)��:\
�:p.�:E��6R5um��	ӷH�fj�5��I_]�&o��OUL�U�W��n���fR�}����D�s!r�E��Ҵٹ߇)I�����7��׭��]�N�"�e��Cs�o�O�]�h������W�]�: M�R�"�$��}s|��3��vB�h�N�`<>F0-_��/.&x�R ���0��!�!����
1�H���w��U�k
��p����NJb��eS���=s-0+�s�*g/&�}ȝ�m��H�(�+��&�ԫ��2��A1-�R�v�	Q���-�2�bM�E�F��ˡ��hm���2������/%|�)��,f���|�}<�c=���0�%��0�����M��e��%�Iz�4X�I!���WZ��m&��ho�1�V����u�x���NQ5��S`㩇������vi��#�z1�{y!�����)�Y��/
�a�}<~P>�m&DN�:��x�Vu��N�tP=�p)���]	?_�6"ݠ.�:���sꤍ������@3i�ŸM�A�����a.�R�A+��L�ψ����3b�S��R�9����0���qy�$A�ZM(֘� �F+J|��֓�*�^6:\�@C���Kڵ?�p��.��U���t�$��'8�b��h���s	?�v��G�IL��.�H�߳�N]#�]P K
�i�c{�A��x��$�P�1�r�lo۳ɢ��'�u��#���z��x�!~e�KC�w��ӊc+���9N]myU�9���U���<��D�~��ky��D��6������8|�>^܅��E��8BZ�سT�bB��;��n
p<_I[aԈ�D�>�ׯ!$�G��o�sn��ἂ�5�P��z�o��Ė�ȉQ$�t��\ETqIU=
�9�~�n_5���:\��l3!"
��P;c�g��	.�d���x�jkb�ǚ"R4Ћ�W�/�vw�=�W�����w�@�3��C��O?M(^&"RW�g8�fව�H�����@�\.���s�PS.�n�����0��""M�pg<�;���[�k�9	��4�g�����&�Z���{n0��B~D�)��Ň�(�CD:LY��1��`iWο�m�
`�K�0s�����>�����tzD�!��|���D���:+���pUG���n~��hUD�)(�H�*�w��I��г������׀���x~�᪖�B|��>,�("��h!�8->�>A�6��F0�x7��$�:���鲻��U�.���vf&D�S~^n�p��.��c�oQP����D�)���G�rB IDAT腄��{	�˖�H��Z7y}�1z�[�>�r7ގ�o�]m7��(��"���ϸ��?���VZ�����cr��h}�Gsoxۍ�r�g㍷�씋(�"��ioבr��|���zT��-ZO��X��'�0��e��Q5E�sz+����?�O��_\��{�6C�3#w�=�yj)�:l�/��hg���=m��:u�D��3���}	�x���S�ry�(�J���`���-��r�����{�E�/��E�t�a�S���J&ӊ�o 흿������
���ޢ�'�ڙ���6b�ZD:C�{�N����H��ҏ8�o��@Ǻ�c�ZD@UR'��E�=.-бh�s��EDT%�6����o�=��(alިRu��Գ�������L�ecx�����wa,�T�\�v�(�N�i��Iꓧ�]����ԥ]G7�(]Z���RQu��{1��v"
�^�N�:���'x���}w�<@�x��E@
�*�k����Q*"��p9(����꒧�2Q5��lO%�Ll�7�7�9�
���K��,O��u�(��M�ư#�����(]�R��K�O�6Z�s]�"G�+�jM{��	?��6JE���N�(�o�i�1�%-b����ecx��m�9nsJ@u`&�XI���ߌs�&�\D�j"s�%�̈́\u@�:�
�:�Z�ׁ/J��z��|���M@
��2�����)w�ώo:m
��3�
���V���>|�ЄVD�j"��
<���a�I�4&�><B��:��!�QI9�E�o���<��85
�&S�>9��:F:u����J���N��W
\�'�B-���u��0˩�4�S���*�[����+�z��˶u�'�������I
���gW�s�On��?M0*o$�t�����D$uf$����9�^$�j���',�v_"�x0ĩ�$�p��_U�|}k�)�dP#7�MB��Ի��v����}+aSJ��_7[a(����C���у�
����E$e2�P$�ď�T��_m�w�I�����rGJ��9��Ck	
��LD�S�H(���`lN����j1�\f�%��|�ѡ�Q-%4���I�p|�������� I�M�M�
\L+:4��?F�΋(־A��B()"r4�sy��{�Fz���� �#@c�7�DG�����/��XH�a���'�
������Б��x^�,�w�Ԕ�0$ub_����?O����ZҪ����_���s���N�/��s	ag�OT��z�P(�&��<Czq}*���l��.�DG�P�J�e�'4���ܙD���i�?K�ϩ�<>wѣr�J��|2À�rb�
�D�s4��C[�[��2�S)R;^C��\���@�gv<ѣr�JC9L�s�>EǛs��ҩ�<->4�`Yt�`��)�$��E	����;	�պ�H�f쥿h�X�xVbգ��n:�"�1���zBZ�*�������P]q�tKt�"�Iuw�.����a%��N�5��jw�>G�E6�����OM�T#@"�c���F$r�c���L�U��"�S)��$��.���;�踉���R#@5��T!:��C)Wi���Y=1T�	��5�V7UFzW��Q��=���2�F�D��n���N'�*��MZ���C�w�y�L�͑"ud����Gu���@��%�=+#@5���D�?��t�C��9.�UVңHȔ�1��Y�GU��x��	��{��?�|@"1�`N^F��uLr�j)�L�
��q���Tx�ȉ�T���O��4��Cw�h��:�rB��N�F|4+�*���DO��/p-�R���t��	�=��n?ĩSՄ�9�S�=v��m~1�oa�T���%�9Y��%�]eٱ����N�C	�˕�[բg	iW=\�&)e���1�R�r�vk�#E�dpy\���ݘw����'j:���V"���]�m��H7E�{��+<��&DD6��(�D�t~�`���&&r^�>�y��ஜ �k���1?���fUx�K�N�u�=�H�><C؂:P��+	�|S`��ul!D��_Bߊ�����N��k��9QdHD*�0�>��㲜�$�����?�UB�H���<Z���=���ǃ�#�������N�
���L�\�֮c-p+�f����O@�l&�yn����(�D�1l��r�#�����1�gP�?��;'��;��df<�ǹ�������9Q@"R+6�C�����s��*B��K��&B]���/
�I=9�@>�j�T��FBz�.B:���-"=�!������Ǽ��u-���~Zѡu�KNg�L~6�ߥ�~�"��	��ЄTNL�ư�����m��o%l�O���O��#���~z/����h!ҳ�bѳ��(z�(�@
 9�-VF�q1���|��D�s��eۀoD1t�SY�"=�P]3��?�[k�H�HD
s���Q�J�����L�������K��/�w_��@�7E�c[�HD:�>��˦W��T[���c�븝f�@�6��B�Ƽx[�Up�PC�&`��T@""���Ѷ��%r���:��=ۮ�$�NX,��,��/ǵ�zi��4��v��vWP�7����m%a\_�O��<��E�u
ٗ�P�	�{B;�V�{�?4x3i����C�j����;����v��E���
 ��ԝ��M#a�/޳:�c���Ԯc�Ծx?pF��rG=_��vQ)�D��l��k	�dR��?T�vy��ފ��	U�WyK(�@"ҋԵ]�f®��sn�>��Q�$pN����Q�>貯
 �.R�v�st��Wm��BZ�����YEO��LD$Q��u�N�U�Gإ43�s��߉�}3�t?�`��Y�έ��/M�::F�DD*d3G���К!�gl�?�<�(��;�y5�=�	~��J{�R�HO����J�]�d��.�����h,!�T��y����.®9Q)�DDJ��.п]�5��	�k>]v���P��?�"��'Bz����B$"R��:��͉�+�1���P�2w�����FB���.�Ơ	ZD��^��?"�,��>�
��?8HH��H(P��!�ydHDN�	��6o#Ժ,��������<��o>J�y�O�����0!�u#��tT�PTW���0���T�D��u���8����qט���':4w)��"��.��o����p)�D��)Q�,�%�Z����K�R���!�t����K�x﫹�9Bت��j{�I�����O�rѦ�D:�b��V�7:���(��f�JH�ޚ�n�����ύ�E���X���˦�R=@"=�Y�[��oFB疥m��n�Q�{(��Z�ξ8�k��S�z���$t�ߋ��F�Q�N�0j\#L�I�L~
��0�M{� [��4��I�#l�ts����:۩�㰤���c�K$�f�7.�xl!�Bg:�]%+z�*
�n���e6���Z�5�G�H��8`��S=��o!���j"Y���P}�$���2`��*'ȯXo�p)���!��uB��]=*x�ud�~��a\���z����s�ߐ��7
��?h�W�H�0�`\���S�c2��x@�1����Ɲ�6�������"G"e�.0�0=
�L��J�\�ߍ�⛄�,���N�0�9���q���:�u'�m���{��Ԝ���Ǘ��N�+�>B����]����gE���x=H���0��M�g�B5ᵄ��G\�"�@F�D`p-�Bt�?ߍ�h�ZB��A��
�'�1*'���S�z����6B?���W�']�����H�3�\A�ʻ)w�~�P�y-p�l��}��F�^��]���}
�b��������UD�9*U��(ʋ�"<k�K��ln���e}�;Hg+{Vg1!]��8F7�C��D@
 �i�ŗ�|��IH���v3���\%uI�ͣU'�.�*����g�̉�	�kf��D���T���˦o�c��8�)p�t�-���"�=����i�"u۩u�H]]y�z��2��\E@
 I�S	����� �a���<7�t�pB��8O<X)<���灯c�LD���AkW�|��dT�绝P|�L�r�"���şSM�M�t��H$��8�Њ�\
�M�|w���eo���9V���D�3�.;L0�g��V�N-�i@��̢U��*B-�T9ܖ{)~=$'B{����בN�l��e�	��Մ���`D��!�s(�d0L&�Ԫ�qy�rr"�[,#�⺚����D�slh��D\�.��6�21&�/�'�9��b"�b�&�o1!�a��D@
 �!�-&^����F�	� mO�e�\/#�t��qM�rE���a�	)�|��c�O��8'������?��x���H��\Zm��R
�J�]LH�<��.��`��$ș���uh1q��i1!��h�>B��Q��=s}&��;�Rs�I��s���	�m��e�݇)�����Lę.�HJ��-&n�8�r��t��H��d-&��<�c�	�-��aQ�71]f!DQ)�z~A�bBd`s�tٵ�j�)О.�Dk���⇂�(�z�sh �����bBR�X�k������x�
�=t;�ߩ��>�� �uj1���ń�̱�eWR�U3��鲽�����(�@�Q�-&��FU�c�Dl1!u�=]6�P�:�J����*Q)�j�HB*�.-&���-&���&xpVǟSM��(�@�ZDy��ed��bB�鲣1��B�w�I9(��_�=�����bB���.����upnb�;��PW+۔p3Fo���{ϡ*����O��[imM�ńH1v�>��n�l:�0�ٯ��e�yd���t��������#��,{.�.�h@l1!"��h�>B�lN"�9�����/�8�
�^@u�8	�9>:8?~)��_K/'|lV��v)�$K�#l��s�ϔǀ�@:�i�I���z�
���h��ck-R<;r�g.i�
����ٟ��fo<���|�8u
��
�^I��
�#~�\����bB�y�����dd��y���(��˶6R�%�{کl$��jD�Pʡ���^`y|�qzEz�|�li��V<N�˚�X��p�G�x<|�y�,�SDr�^M�c;�/�
��i�5\`ޗ4��V/zi}
�:�F���@ԥ8�x�'��8�?tK|�mw*k���kD�F�}�����Y��E��L:F�Y���y�n���.BaVQ)�N����#%l1!"U�	�	Z��+�3�j�o��G	9�U��~��'
�b�|"�}Bt�k���N���T@~w��m��ג��p8py<�����X)F�j›+�����ׁ��3"�ۀ�pAB��5�M�<�~)G��[�;	�@D$m|�rw:�^����cy��S�6#	��~�!M���݄������P
/0?��pU���<B���;�����	�v&?
|��Nu��S�_?CH�I�D�����U�$pC�@(X����N���P�s>�o�v�v����Nq��.����U-{�)���#����3����vo"�tٗՉ�tN�?SՇ�+A�>O(k�S%"5@�L~
�$�1����_���͟�_v�@�=~�P��p��tR=[�9�Gh��ї�p�<�۰wٱXQ`\;\
�9
&.%t�T�H
P���y������D�����xZ�B�O�;\�@_�7�o��J`!0�i�
�vFG��<
�#�
�]��ԋ	m<z�O�_����h�;c��Pߓ	�,3:$���jgz��[A�,��,�c/~�*�.�ڙ
,!ݐ��V�E�iN���������e�0]�Q`l~�[��(O���4��o�����(�������>�5�����,0��[�Yh���bB~8�/��bth10�� �j�t�Ә.+��*p��-�lt�/��H�2j��M���)�
�˺�_�ޟ��t���*Ҭ�-:å"�juK�-��dl����}�[�wбn�T1Z�B�����i�/]����97�A�u/�r�(�D��́�e#�O��E.5��Nر�r��1�η�nD��d�K�l7�tټ
�ke�s���*��Q9�^L�F\��Q5�|��)�M�m��.�T�|��9�+���d��ģC+ճm�*�j�of);]���s.P7�NV����
�^��Q5�e���A����ѡ����I{W�8����AL��.K�odvl��.�d�e
 P�7�o½�a�QI7�C��� nQ��-�~�%����5��M|�]�"
�Ѿ�7�gp�ma0�8����q(�R`J.:�L�7�(�{���N�-]��9�u�]��N�(����@�7�����2Q5�|�,�b�GK��X��ӬJ�I�]�"���萈���)]�Y�j*À7��v�7���F;e�R5���_$�����R;:�
�:3�P��s�ވ/���u�D�jC�7����F觜>P�n�7�?p!5��
�8��{��(�@�c�.��@�w�@Me2a��)�.��|�O��9]��r&����[{�R�C��n'lkOM=
�!,;�)�4�l���F�T���S��E&pI�u�n�+p	�,�z�
 9c�w|�����@$�zBݡo�fݡ��Rz��.QI9�yB;�-%<W�j�
u��I��c�Մ���>I���Ӂ��[�[ӷk_D��3���K�}�j1�>s��@�V����J(�eDR�������\��+�d���_)���6�P�	�#E@�	��Ium8
 9q��_�&(��'��`��%%�.0�3�P��}	<�sJ@�Fv4�	�H�b�!����+	�}D@�M����y� K陨RI��F�j�؞� �K�5-%��QI����5�J��n�`�5+���)À��>B�2�߽5*�O_�y�6_v:�"R�W�*,W�� ����SV-F�z�����
`ib\G+:d!F94A�Ƴl	po�ϫu�]��/�{�t�@R-Yy����T�m:6Ry�	N�(�z��"`5Օ�����ܾ\��x�S�������ئ�P��[ftH@=�B�|%!�TUͳ8�gQ��17J�M�`U�"<��P��8���*z�쎢����5�J���N�H�ä\t����!Q5�Y�~�����QU4����Z�Z$͈�'�6��ӝ.�(Y��t�Uf^O0T�q�qK��w�Ӯ�f���X<A���%Ԇ��M\@
��A�(�����b�in��iM����PI3���Rm�\.:4��R9\��Uf^AuZ�|E�Z[�<��rPI��vnOP�E��◩(��s�ﯪ��gpj�S�9nth1Ն����5���t����pu���`Uf�#�t�;D�V���QIo���X^��xǃ���H�����Qp�!즪�~�a^gWp�_/p�W�\@"E�V���&�v������J����*B�㪪�/�sf���-.���85���ϱ��ަ>��L�Cd׫���bE
���*��Hd�����HP�!�������i���m������BB�<5n-p-W��@"'���zth��y"
�n2%��*��;���H$R:�KTe��Z
�q�@��r������]Ѥ�Q��C��_��-�4m �YKh���)��B�M����X�G���=�k:���e���"�n���{]N�wx�~q5���_�G5u����Dh&z�G֑���eIDATHDJ�E��Q}_�l�[��qBSŵ�;�2�03��ET��=|9��j��ITW�IS���Z�4���v�� �I�;t�Z
���HEQ�ݟq4��z��Y`,�ܔ�6$Rߏ������\4�-	��Á����ZM0U���1���飚݈	���U�%`(��� i':�iE��*�v����2�
D�F��ן�hm��S�.<�D$R�jg.!��`�LMm%�\LrI�z
��q=e�.0^oj�E�i>��c���W��"���i!����H}3��p�)<*uMGL~���bܾ|���}��ב��D��dMQWǟ�F1�G��Zu�a�8���FhԘ	"�՗1���蹚j�`=�5�fϓN�HDz�|th��(��A]�Њ!���C�v�I��wF�s���|����,
 y{��M�E\G(_u���m'�1�_$��rO��Q��0��߿�G�.�oR�ҙu�.���-M�t'MH��@��b߲	f�>�O�u5A�&��{��jO��q=e�4f��p)�DzI
�[_8�C��i1p��k�q��/0ޗ4�M��ȉ��d<F
�Rf)t�CH�]�;ߛ�(����YN���O�\C5��ǀ�7?pJNS`5��4��F��EZ�$���BM�%�9	�_��!Q�$l��^�
����9t�åQ��a�r���<#T�M�^J�(:��P���ss���$�C5�M��H7y�ֶu�s	i�>���"V�	~�;��9��z�a
�F�^��jZ����Yt��F����A��:���c�t�S`�~�I �*8_�����	Q��Q��	�c>:�R<�,�����?�P��z�K�=N(Rh�j���H�l!�=V�$\D��%T_�/�3�ş7��k��ߝ��/�!�{��V�|v'�w���zSIAL�IS��X��P+	�SK�$D��v)��X�F
̎�r,�_`._۔�6$"u`+!Mr��PVw�2B�������B4���z
�bE�ю�ҍy�
1$M���3�ZA��Zt��佌�E�N&4��{kM��U\�ÄH��.��P�}��K$�J��a��(&(���A���: ��"a+	[ƫ��̈́�\�`-y��\_�p)�D@�39z&���rBI��О
�kW]}���ԗ��.���~��E�$(��+�2��t�X�7�5A�H/�`<>�N�;�NBݡI	�ߔx�!�\<w�HD��l&�4!���(��A�
����D���Y�>�K��P�0&u�L�	ۣ��o�E��#�e*�s�忕tSR��\���^�k�5�H��v� ��q����@��lB��5��M=v\�X/�v�@"���,&�F�t��}u�]�^�>��MH�U���;B�D�m-�n^�p)�D�J��y��bM�`ޫ.�pi����
���I�"Qi�H�фf�<��o'��#>�Ja���_O���?%���I
���Hz�s�_��^i�~�Tv�ل��(F˚��(`V\Q�Xl(���u�@�;��UMx#�1����z�S�UN��<���%�<�f9\
 i6S	��n$t��-�[۾�Jw97:�^��s�C*'����9�H���^�ё�{�8Bh��1୸=�ی!x��N1���RĿ�NS�4���{�O���9ޱ���m�D����M�t�'{Q�
Cz���&TT�2���3���3}��&
��8n�??���k���4�ƴ�PI�G��P�zB綟PYx5���#��	;x.&�g���H���,B+�_�??����㵉H=�X�0&��`i�mS���l��PQ�F!tŌ�e�VX�`�˱0���l�Ԭ:��RI:�̉���Ս����ۅk�י�A��(_�z��U$��L�57��RI�̤�gkwb/��%SJ��Zq�K�ɕ��7r�H�HҠ�&�M�h=@R���
�|1)�<��/7w��O��Ѧu��i�P!�ƒk0/K�m�7��}����`�7��(+���E2v�N��Gi��9ѱ�`RN5]vCm�Z{���ͦk�"�
 �s�Kz�u�~"�rU�qC�-�C�o������#C:��kn��p
!=�����x	�7S��� �D�[�������R`�Ms�@r�I��'��l�ciR����qYF0,��$o��Y~F��M��T�K$�g(��I�^ϫ{��~��+���
��)��F˓U�R�
 I���R�q�H�*���|�q����'�\Zf�H����T�H�ީS.���|��Pb/��J���Tu�Ѵ��&*����L=$�1UI�l+��&7墭$'�X��x-�?T*n#��Y�+�lIg�K��6�<�V߲k����;'��lm�lw�DZX�0TgvE��/������TUNV�0+kP3u
�f�I�l/��Ns�@����gk�UH�)���O�f�l!b�8G$=���D�K�dN�U��^P/Ҫ�n�z3�V41u3�B`|I�b!D)�"��@
�F1��
��nSo&u0S�ı[fj��,�&4�5A�.�w�2ג�v�1*��`���|��ԧ�u�5�M�w0�А���V�VZMp�u����Et�:1.�U�e_b_�O��5ک�y3�������f�'q�F��lvXs�.PI�惴j��uIK&�2S?I��ݹ�}�HgW�57��R��LZ}�v'�R�N�<�e,bvnͧ��L}<����l��+,1�J�!��l�ָ�>[R6Y���~8B�f�}1T$S�)�HT)��J�u�-��V�uTD2����J:d���=s�H@z4@�3�VE��L���20�ryJ����$*���SI'(R��g���Bآ�����6�%��H���OT)���x��L�:@iq&�P~+i�7L�7_'�LE��Wǟ�\߁�}�w�P�hJh8-�惉}Y�>[һ�J�f�	i��J����(���S.Љ2XD0=��2���\f"��4Z���MTm�e�>�)�.	����)��z0�iJT����z?i�Z@�|��l�p)����������/<��,�	�Ъ����{iU��f#W�'Ev���zgvE��ؖ�2��s_��p�.Ye�U��r��h���9e=O�̄m@� �>[�i��%R��_�=E3�!�7r5��{� �پG��/�Ԫʾ�����I������$�E+Mn5�ޠ�0W��B�f�l�ԛ���L�k#)��5Z���;hs�_f�6�Y.�F����"����L�D��i�� ��/���gK���_ԫG�Q6éSI�h$��`�-P����7S[0��X����K��g���_M7��f���׀�ޓ"2����	�KV 2+���λ�'B�YIS
#@	P$t[�*)�ͯ�>[�Ed �D��n�i�!{������dF�(��H��gk�S("@yFӿ�k��Ãm����c8�jF�hP�3�����c��t[�3�u�ˤW�>;6���HVt�@�
�M0^_�W��tYm)�o�
\�>𽄣C��
x#Z���m�P�(O�gk�S#"	�v&ӪL�d��h��Cs\gd����p)��|�
;�H}P�a1�����t/�^�`]#Zrr�R`�_r�zO���
V`�f
�v&<9+���^�+��ѡ�TP�(#T��	�݄]""�$��9���cpw���I�/i�I.���}W�|�����P�����HJhsE�x
�6�P��fY�!B!�e�eh�>�(q���/�L/�<0�)�@�|��5����M����]f��h�ҥbΉQ�v�{���"^"�jg6�A�*`g��h���.;���ۘc���3
�'�8S���%���sjD�$���3x�S�Z�鼷e
���6��8��L�������׀�8E"����W�Jh�+QA�,���S���)��ͫ��N0��K�Fz�C�ap�S%"=.����.��4�ԇ	o~����~+"�vz{��0`>i6�¬Kc�JD��P;c	�\o ��C�s�	���}��g�8�`�[M(�ҍ�X���������;D��-����&Pl7�Ԕѹ�����vG����T�(�@�N��~��{�9�Q��q)VJ@�\Bs
i����D�q���H��4Z�\�I4:�+�_�ʷ��i
 ɺ"�����M��V���N��Hԏ�?N�A�?QA�Xl)=�'8��.��3,�L�H�H}�S%��W0���Z<��:��z3u�K���E�H��6{��"
 96y3���
�-�3K���q�K��E�H�$��g:U"
 y���?L�f�n~�N)p^Ϲ|$�FjQ՗����O'�M�pa�����"G#o�ޞ�
����z�S%���~ԦV;n 3��>ϧ)��Ӵ�S�Y�7��q�D@2 Y�;���w�<Ž�n	 כ��h��Rk�}M,Nq�D@2 y3uj�R�Q��L}� �i:Ū^��y#���<{h��p�D@2 Y�)!�����}��@����69�ҍ��%����n�i��:U"
 �)��ԩ�Z����Bh�4ؿ���,�dR�&ڔ������E@2��T�������qZ�,R6R�S��S�8�`�VI�L�їU�N4R�(���\�C_"���"��v�$�F��I3ϼ8өQ�Q95>��N��)�KR�F�>BzQ�duW��.�'�I���':U"
 9*C�~����-�
^jwi�����1x/�g�\e?��;Rg����z-#��N�(�@rL��-�x����;ri
��n9����^ZF곜*Q)�䘌�����N���,M%o�ޏFj�ԍˀ��u�9|��+��B*j��yJbh-#�iN�4M�R��G�6������:k�����^��{0�����O�(g�T�\z���ziE�6�V��N�(��a�~�V��խ�[z��'t�_<D�F곝*QI�y-��[���E�8�l�~��:��T�Hg,�X_�r
!�n9�$o�~&11�<!��8ݩ�$�E�Yf���H��_��h�Qɱ?�gQ�Ͽ�������TZF�I+:�XI�P�t���hO����wڂH�b�F�C���N�$&��:\�dTEў�������x��^B#��E*A+��Ŝyy�rwr��!�i��NL�"m10é��B:}
�z��M��f0����pBb�0�E$-f��J|�'����4����j%����2R�oPo0<�)��a8�)�=��2R�m,,b����P�8;>{ʬwv�����PfDD���z�S%
��~teўC���p)�Ed��O%&�v�2R�t�D�<Ӣy����A�="�	R7R/'��4R+�@i0$��U������:�)�N3�������}�i�V)��}>,.�?B�
��l""]'e#�AB�j)p�S�h�]=Y��L���y��/"Us.i�W�M�@r�L���YC���F�*��X`Y�Ry�&>�-����M��N+#�T�֨1���2Ċ���AQT�OaqY��'wDgǙs��|?ɔdw�9�����s��%i$�
_%�˗�6+`���NZj��xϞ�n�^~I���>HZ�*� :D��� ���si�۳�!��VQ��Q^�zxX�P�C���(i�b�{�l<��ݓ������KyA�� �gY
����=��`4�HD������K
Rے��7��yN��>`HR�E���B���PY��ᚺ=���u�.IjAs�z��JA��h����H�Tr��4U�z�CeT��T���<����R�$uحA����j�ݞ�2��v{$����K
R�H��m�n�����Xᴔ�z5��V]�/��F���6F��x�y<c�S�%I���� �X<���sb� -���f��t
JRoYIZ&��^X1t�*H�r������zS�Ƿ%����8~���0�P��3\�8�E�u��M��ۺ�L�(�;t�Ե'Ri4�-
zѪ(@��\x�푤6_�2�6H����
�F�g*�:I�6�ù$�JR!��6F��������:�q�܈�<,��$��TA�͵�9݃�IKz@e@��<ʹ�z��ټ�[Y�Ԯ�������?���۳��V��ik���)�;t�t��8i��(�G��s���}��ޚ��\����VMQ�7[u͢�=7��=�"I�]s��OR�s�5�=�3���Ç��$I�ZL:�� u�G�X͏��d��4�j���$��4��{�˳� �_��.i�{I˜9�V�#���>��~Qr��$U�z�@Cq
F���ݞe�&��~6��7���C����*�6�X���:_��#It��8@�A�n�,���WS�����N{I�*�A��V3*�����(�֒�O�d�nӤ%F�=�$����H�y�R�ҥh�a�9;lGb��9�%Ij�� uΝ�s�;]���p��p=�g,
XI��A�Aꜧ��ZLF񱥆����o�)�޻���$�������R�~R�iA�
��Q��<��n�$I�
R�� ��[~�vB�;���7���z��$I��J���w+�CTA��t��e�]'�g�0RI�z�f��("Jۄ�fa���6��$I�axx8V`�Q��i��q����$I��6�e����>�I���NI��J�i��L�>����:�$�Y�A�v>�H��-�$Ij�jR>�-�|�>��v�M.I�ԶE�.�
�h�E�5�R���$Iꆭ�K������,|/�:V�$IY���&�ܜ���%O1�!�$Iuk����W��5�y�%IR�6D���|�v�������0RI��c��'��hmG�S��(�$I���.n�F�)�9`�K$��p�$�k.��X�i�ҎԒ$I�$I�$I�$I�$I�$i��
n����s�IEND�B`�lib64/ruby/gems/2.2.0/gems/rack-1.6.4/COPYING000064400000002065150402106470013413 0ustar00Copyright (c) 2007-2015 Christian Neukirchen <purl.org/net/chneukirchen>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack.rb000064400000006131150402106470014371 0ustar00# Copyright (C) 2007, 2008, 2009, 2010 Christian Neukirchen <purl.org/net/chneukirchen>
#
# Rack is freely distributable under the terms of an MIT-style license.
# See COPYING or http://www.opensource.org/licenses/mit-license.php.

# The Rack main module, serving as a namespace for all core Rack
# modules and classes.
#
# All modules meant for use in your application are <tt>autoload</tt>ed here,
# so it should be enough just to <tt>require rack.rb</tt> in your code.

module Rack
  # The Rack protocol version number implemented.
  VERSION = [1,3]

  # Return the Rack protocol version as a dotted string.
  def self.version
    VERSION.join(".")
  end

  # Return the Rack release as a dotted string.
  def self.release
    "1.6.4"
  end
  PATH_INFO      = 'PATH_INFO'.freeze
  REQUEST_METHOD = 'REQUEST_METHOD'.freeze
  SCRIPT_NAME    = 'SCRIPT_NAME'.freeze
  QUERY_STRING   = 'QUERY_STRING'.freeze
  CACHE_CONTROL  = 'Cache-Control'.freeze
  CONTENT_LENGTH = 'Content-Length'.freeze
  CONTENT_TYPE   = 'Content-Type'.freeze

  GET  = 'GET'.freeze
  HEAD = 'HEAD'.freeze

  autoload :Builder, "rack/builder"
  autoload :BodyProxy, "rack/body_proxy"
  autoload :Cascade, "rack/cascade"
  autoload :Chunked, "rack/chunked"
  autoload :CommonLogger, "rack/commonlogger"
  autoload :ConditionalGet, "rack/conditionalget"
  autoload :Config, "rack/config"
  autoload :ContentLength, "rack/content_length"
  autoload :ContentType, "rack/content_type"
  autoload :ETag, "rack/etag"
  autoload :File, "rack/file"
  autoload :Deflater, "rack/deflater"
  autoload :Directory, "rack/directory"
  autoload :ForwardRequest, "rack/recursive"
  autoload :Handler, "rack/handler"
  autoload :Head, "rack/head"
  autoload :Lint, "rack/lint"
  autoload :Lock, "rack/lock"
  autoload :Logger, "rack/logger"
  autoload :MethodOverride, "rack/methodoverride"
  autoload :Mime, "rack/mime"
  autoload :NullLogger, "rack/nulllogger"
  autoload :Recursive, "rack/recursive"
  autoload :Reloader, "rack/reloader"
  autoload :Runtime, "rack/runtime"
  autoload :Sendfile, "rack/sendfile"
  autoload :Server, "rack/server"
  autoload :ShowExceptions, "rack/showexceptions"
  autoload :ShowStatus, "rack/showstatus"
  autoload :Static, "rack/static"
  autoload :TempfileReaper, "rack/tempfile_reaper"
  autoload :URLMap, "rack/urlmap"
  autoload :Utils, "rack/utils"
  autoload :Multipart, "rack/multipart"

  autoload :MockRequest, "rack/mock"
  autoload :MockResponse, "rack/mock"

  autoload :Request, "rack/request"
  autoload :Response, "rack/response"

  module Auth
    autoload :Basic, "rack/auth/basic"
    autoload :AbstractRequest, "rack/auth/abstract/request"
    autoload :AbstractHandler, "rack/auth/abstract/handler"
    module Digest
      autoload :MD5, "rack/auth/digest/md5"
      autoload :Nonce, "rack/auth/digest/nonce"
      autoload :Params, "rack/auth/digest/params"
      autoload :Request, "rack/auth/digest/request"
    end
  end

  module Session
    autoload :Cookie, "rack/session/cookie"
    autoload :Pool, "rack/session/pool"
    autoload :Memcache, "rack/session/memcache"
  end

  module Utils
    autoload :OkJson, "rack/utils/okjson"
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/chunked.rb000064400000003117150402106470016013 0ustar00require 'rack/utils'

module Rack

  # Middleware that applies chunked transfer encoding to response bodies
  # when the response does not include a Content-Length header.
  class Chunked
    include Rack::Utils

    # A body wrapper that emits chunked responses
    class Body
      TERM = "\r\n"
      TAIL = "0#{TERM}#{TERM}"

      include Rack::Utils

      def initialize(body)
        @body = body
      end

      def each
        term = TERM
        @body.each do |chunk|
          size = bytesize(chunk)
          next if size == 0

          chunk = chunk.dup.force_encoding(Encoding::BINARY) if chunk.respond_to?(:force_encoding)
          yield [size.to_s(16), term, chunk, term].join
        end
        yield TAIL
      end

      def close
        @body.close if @body.respond_to?(:close)
      end
    end

    def initialize(app)
      @app = app
    end

    # pre-HTTP/1.0 (informally "HTTP/0.9") HTTP requests did not have
    # a version (nor response headers)
    def chunkable_version?(ver)
      case ver
      when "HTTP/1.0", nil, "HTTP/0.9"
        false
      else
        true
      end
    end

    def call(env)
      status, headers, body = @app.call(env)
      headers = HeaderHash.new(headers)

      if ! chunkable_version?(env['HTTP_VERSION']) ||
         STATUS_WITH_NO_ENTITY_BODY.include?(status) ||
         headers[CONTENT_LENGTH] ||
         headers['Transfer-Encoding']
        [status, headers, body]
      else
        headers.delete(CONTENT_LENGTH)
        headers['Transfer-Encoding'] = 'chunked'
        [status, headers, Body.new(body)]
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/handler/scgi.rb000064400000004403150402106470016733 0ustar00require 'scgi'
require 'stringio'
require 'rack/content_length'
require 'rack/chunked'

module Rack
  module Handler
    class SCGI < ::SCGI::Processor
      attr_accessor :app

      def self.run(app, options=nil)
        options[:Socket] = UNIXServer.new(options[:File]) if options[:File]
        new(options.merge(:app=>app,
                          :host=>options[:Host],
                          :port=>options[:Port],
                          :socket=>options[:Socket])).listen
      end

      def self.valid_options
        environment  = ENV['RACK_ENV'] || 'development'
        default_host = environment == 'development' ? 'localhost' : '0.0.0.0'

        {
          "Host=HOST" => "Hostname to listen on (default: #{default_host})",
          "Port=PORT" => "Port to listen on (default: 8080)",
        }
      end

      def initialize(settings = {})
        @app = settings[:app]
        super(settings)
      end

      def process_request(request, input_body, socket)
        env = Hash[request]
        env.delete "HTTP_CONTENT_TYPE"
        env.delete "HTTP_CONTENT_LENGTH"
        env["REQUEST_PATH"], env[QUERY_STRING] = env["REQUEST_URI"].split('?', 2)
        env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
        env[PATH_INFO] = env["REQUEST_PATH"]
        env["QUERY_STRING"] ||= ""
        env["SCRIPT_NAME"] = ""

        rack_input = StringIO.new(input_body)
        rack_input.set_encoding(Encoding::BINARY) if rack_input.respond_to?(:set_encoding)

        env.update({"rack.version" => Rack::VERSION,
                     "rack.input" => rack_input,
                     "rack.errors" => $stderr,
                     "rack.multithread" => true,
                     "rack.multiprocess" => true,
                     "rack.run_once" => false,

                     "rack.url_scheme" => ["yes", "on", "1"].include?(env["HTTPS"]) ? "https" : "http"
                   })
        status, headers, body = app.call(env)
        begin
          socket.write("Status: #{status}\r\n")
          headers.each do |k, vs|
            vs.split("\n").each { |v| socket.write("#{k}: #{v}\r\n")}
          end
          socket.write("\r\n")
          body.each {|s| socket.write(s)}
        ensure
          body.close if body.respond_to? :close
        end
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/handler/thin.rb000064400000002012150402106470016742 0ustar00require "thin"
require "rack/content_length"
require "rack/chunked"

module Rack
  module Handler
    class Thin
      def self.run(app, options={})
        environment  = ENV['RACK_ENV'] || 'development'
        default_host = environment == 'development' ? 'localhost' : '0.0.0.0'

        host = options.delete(:Host) || default_host
        port = options.delete(:Port) || 8080
        args = [host, port, app, options]
        # Thin versions below 0.8.0 do not support additional options
        args.pop if ::Thin::VERSION::MAJOR < 1 && ::Thin::VERSION::MINOR < 8
        server = ::Thin::Server.new(*args)
        yield server if block_given?
        server.start
      end

      def self.valid_options
        environment  = ENV['RACK_ENV'] || 'development'
        default_host = environment == 'development' ? 'localhost' : '0.0.0.0'

        {
          "Host=HOST" => "Hostname to listen on (default: #{default_host})",
          "Port=PORT" => "Port to listen on (default: 8080)",
        }
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/handler/lsws.rb000064400000003051150402106500016766 0ustar00require 'lsapi'
require 'rack/content_length'
require 'rack/rewindable_input'

module Rack
  module Handler
    class LSWS
      def self.run(app, options=nil)
        while LSAPI.accept != nil
          serve app
        end
      end
      def self.serve(app)
        env = ENV.to_hash
        env.delete "HTTP_CONTENT_LENGTH"
        env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/"

        rack_input = RewindableInput.new($stdin.read.to_s)

        env.update(
          "rack.version" => Rack::VERSION,
          "rack.input" => rack_input,
          "rack.errors" => $stderr,
          "rack.multithread" => false,
          "rack.multiprocess" => true,
          "rack.run_once" => false,
          "rack.url_scheme" => ["yes", "on", "1"].include?(ENV["HTTPS"]) ? "https" : "http"
        )

        env[QUERY_STRING]   ||= ""
        env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
        env["REQUEST_PATH"] ||= "/"
        status, headers, body = app.call(env)
        begin
          send_headers status, headers
          send_body body
        ensure
          body.close if body.respond_to? :close
        end
      ensure
        rack_input.close
      end
      def self.send_headers(status, headers)
        print "Status: #{status}\r\n"
        headers.each { |k, vs|
          vs.split("\n").each { |v|
            print "#{k}: #{v}\r\n"
          }
        }
        print "\r\n"
        STDOUT.flush
      end
      def self.send_body(body)
        body.each { |part|
          print part
          STDOUT.flush
        }
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/handler/evented_mongrel.rb000064400000000200150402106500021144 0ustar00require 'swiftcore/evented_mongrel'

module Rack
  module Handler
    class EventedMongrel < Handler::Mongrel
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/handler/fastcgi.rb000064400000005355150402106500017427 0ustar00require 'fcgi'
require 'socket'
require 'rack/content_length'
require 'rack/rewindable_input'

if defined? FCGI::Stream
  class FCGI::Stream
    alias _rack_read_without_buffer read

    def read(n, buffer=nil)
      buf = _rack_read_without_buffer n
      buffer.replace(buf.to_s)  if buffer
      buf
    end
  end
end

module Rack
  module Handler
    class FastCGI
      def self.run(app, options={})
        if options[:File]
          STDIN.reopen(UNIXServer.new(options[:File]))
        elsif options[:Port]
          STDIN.reopen(TCPServer.new(options[:Host], options[:Port]))
        end
        FCGI.each { |request|
          serve request, app
        }
      end

      def self.valid_options
        environment  = ENV['RACK_ENV'] || 'development'
        default_host = environment == 'development' ? 'localhost' : '0.0.0.0'

        {
          "Host=HOST" => "Hostname to listen on (default: #{default_host})",
          "Port=PORT" => "Port to listen on (default: 8080)",
          "File=PATH" => "Creates a Domain socket at PATH instead of a TCP socket. Ignores Host and Port if set.",
        }
      end

      def self.serve(request, app)
        env = request.env
        env.delete "HTTP_CONTENT_LENGTH"

        env["SCRIPT_NAME"] = ""  if env["SCRIPT_NAME"] == "/"

        rack_input = RewindableInput.new(request.in)

        env.update({"rack.version" => Rack::VERSION,
                     "rack.input" => rack_input,
                     "rack.errors" => request.err,

                     "rack.multithread" => false,
                     "rack.multiprocess" => true,
                     "rack.run_once" => false,

                     "rack.url_scheme" => ["yes", "on", "1"].include?(env["HTTPS"]) ? "https" : "http"
                   })

        env[QUERY_STRING]   ||= ""
        env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
        env["REQUEST_PATH"] ||= "/"
        env.delete "CONTENT_TYPE"  if env["CONTENT_TYPE"] == ""
        env.delete "CONTENT_LENGTH"  if env["CONTENT_LENGTH"] == ""

        begin
          status, headers, body = app.call(env)
          begin
            send_headers request.out, status, headers
            send_body request.out, body
          ensure
            body.close  if body.respond_to? :close
          end
        ensure
          rack_input.close
          request.finish
        end
      end

      def self.send_headers(out, status, headers)
        out.print "Status: #{status}\r\n"
        headers.each { |k, vs|
          vs.split("\n").each { |v|
            out.print "#{k}: #{v}\r\n"
          }
        }
        out.print "\r\n"
        out.flush
      end

      def self.send_body(out, body)
        body.each { |part|
          out.print part
          out.flush
        }
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/handler/cgi.rb000064400000003042150402106500016540 0ustar00require 'rack/content_length'
require 'rack/rewindable_input'

module Rack
  module Handler
    class CGI
      def self.run(app, options=nil)
        $stdin.binmode
        serve app
      end

      def self.serve(app)
        env = ENV.to_hash
        env.delete "HTTP_CONTENT_LENGTH"

        env["SCRIPT_NAME"] = ""  if env["SCRIPT_NAME"] == "/"

        env.update({"rack.version" => Rack::VERSION,
                     "rack.input" => Rack::RewindableInput.new($stdin),
                     "rack.errors" => $stderr,

                     "rack.multithread" => false,
                     "rack.multiprocess" => true,
                     "rack.run_once" => true,

                     "rack.url_scheme" => ["yes", "on", "1"].include?(ENV["HTTPS"]) ? "https" : "http"
                   })

        env[QUERY_STRING]   ||= ""
        env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
        env["REQUEST_PATH"] ||= "/"

        status, headers, body = app.call(env)
        begin
          send_headers status, headers
          send_body body
        ensure
          body.close  if body.respond_to? :close
        end
      end

      def self.send_headers(status, headers)
        $stdout.print "Status: #{status}\r\n"
        headers.each { |k, vs|
          vs.split("\n").each { |v|
            $stdout.print "#{k}: #{v}\r\n"
          }
        }
        $stdout.print "\r\n"
        $stdout.flush
      end

      def self.send_body(body)
        body.each { |part|
          $stdout.print part
          $stdout.flush
        }
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/handler/swiftiplied_mongrel.rb000064400000000210150402106500022036 0ustar00require 'swiftcore/swiftiplied_mongrel'

module Rack
  module Handler
    class SwiftipliedMongrel < Handler::Mongrel
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/handler/webrick.rb000064400000007225150402106500017433 0ustar00require 'webrick'
require 'stringio'
require 'rack/content_length'

# This monkey patch allows for applications to perform their own chunking
# through WEBrick::HTTPResponse iff rack is set to true.
class WEBrick::HTTPResponse
  attr_accessor :rack

  alias _rack_setup_header setup_header
  def setup_header
    app_chunking = rack && @header['transfer-encoding'] == 'chunked'

    @chunked = app_chunking if app_chunking

    _rack_setup_header

    @chunked = false if app_chunking
  end
end

module Rack
  module Handler
    class WEBrick < ::WEBrick::HTTPServlet::AbstractServlet
      def self.run(app, options={})
        environment  = ENV['RACK_ENV'] || 'development'
        default_host = environment == 'development' ? 'localhost' : '0.0.0.0'

        options[:BindAddress] = options.delete(:Host) || default_host
        options[:Port] ||= 8080
        @server = ::WEBrick::HTTPServer.new(options)
        @server.mount "/", Rack::Handler::WEBrick, app
        yield @server  if block_given?
        @server.start
      end

      def self.valid_options
        environment  = ENV['RACK_ENV'] || 'development'
        default_host = environment == 'development' ? 'localhost' : '0.0.0.0'

        {
          "Host=HOST" => "Hostname to listen on (default: #{default_host})",
          "Port=PORT" => "Port to listen on (default: 8080)",
        }
      end

      def self.shutdown
        @server.shutdown
        @server = nil
      end

      def initialize(server, app)
        super server
        @app = app
      end

      def service(req, res)
        res.rack = true
        env = req.meta_vars
        env.delete_if { |k, v| v.nil? }

        rack_input = StringIO.new(req.body.to_s)
        rack_input.set_encoding(Encoding::BINARY) if rack_input.respond_to?(:set_encoding)

        env.update({"rack.version" => Rack::VERSION,
                     "rack.input" => rack_input,
                     "rack.errors" => $stderr,

                     "rack.multithread" => true,
                     "rack.multiprocess" => false,
                     "rack.run_once" => false,

                     "rack.url_scheme" => ["yes", "on", "1"].include?(env["HTTPS"]) ? "https" : "http",

                     "rack.hijack?" => true,
                     "rack.hijack" => lambda { raise NotImplementedError, "only partial hijack is supported."},
                     "rack.hijack_io" => nil,
                   })

        env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
        env[QUERY_STRING] ||= ""
        unless env[PATH_INFO] == ""
          path, n = req.request_uri.path, env["SCRIPT_NAME"].length
          env[PATH_INFO] = path[n, path.length-n]
        end
        env["REQUEST_PATH"] ||= [env["SCRIPT_NAME"], env[PATH_INFO]].join

        status, headers, body = @app.call(env)
        begin
          res.status = status.to_i
          headers.each { |k, vs|
            next if k.downcase == "rack.hijack"

            if k.downcase == "set-cookie"
              res.cookies.concat vs.split("\n")
            else
              # Since WEBrick won't accept repeated headers,
              # merge the values per RFC 1945 section 4.2.
              res[k] = vs.split("\n").join(", ")
            end
          }

          io_lambda = headers["rack.hijack"]
          if io_lambda
            rd, wr = IO.pipe
            res.body = rd
            res.chunked = true
            io_lambda.call wr
          elsif body.respond_to?(:to_path)
            res.body = ::File.open(body.to_path, 'rb')
          else
            body.each { |part|
              res.body << part
            }
          end
        ensure
          body.close  if body.respond_to? :close
        end
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/handler/mongrel.rb000064400000007113150402106500017444 0ustar00require 'mongrel'
require 'stringio'
require 'rack/content_length'
require 'rack/chunked'

module Rack
  module Handler
    class Mongrel < ::Mongrel::HttpHandler
      def self.run(app, options={})
        environment  = ENV['RACK_ENV'] || 'development'
        default_host = environment == 'development' ? 'localhost' : '0.0.0.0'

        server = ::Mongrel::HttpServer.new(
          options[:Host]           || default_host,
          options[:Port]           || 8080,
          options[:num_processors] || 950,
          options[:throttle]       || 0,
          options[:timeout]        || 60)
        # Acts like Rack::URLMap, utilizing Mongrel's own path finding methods.
        # Use is similar to #run, replacing the app argument with a hash of
        # { path=>app, ... } or an instance of Rack::URLMap.
        if options[:map]
          if app.is_a? Hash
            app.each do |path, appl|
              path = '/'+path unless path[0] == ?/
              server.register(path, Rack::Handler::Mongrel.new(appl))
            end
          elsif app.is_a? URLMap
            app.instance_variable_get(:@mapping).each do |(host, path, appl)|
             next if !host.nil? && !options[:Host].nil? && options[:Host] != host
             path = '/'+path unless path[0] == ?/
             server.register(path, Rack::Handler::Mongrel.new(appl))
            end
          else
            raise ArgumentError, "first argument should be a Hash or URLMap"
          end
        else
          server.register('/', Rack::Handler::Mongrel.new(app))
        end
        yield server  if block_given?
        server.run.join
      end

      def self.valid_options
        environment  = ENV['RACK_ENV'] || 'development'
        default_host = environment == 'development' ? 'localhost' : '0.0.0.0'

        {
          "Host=HOST" => "Hostname to listen on (default: #{default_host})",
          "Port=PORT" => "Port to listen on (default: 8080)",
          "Processors=N" => "Number of concurrent processors to accept (default: 950)",
          "Timeout=N" => "Time before a request is dropped for inactivity (default: 60)",
          "Throttle=N" => "Throttle time between socket.accept calls in hundredths of a second (default: 0)",
        }
      end

      def initialize(app)
        @app = app
      end

      def process(request, response)
        env = Hash[request.params]
        env.delete "HTTP_CONTENT_TYPE"
        env.delete "HTTP_CONTENT_LENGTH"

        env["SCRIPT_NAME"] = ""  if env["SCRIPT_NAME"] == "/"

        rack_input = request.body || StringIO.new('')
        rack_input.set_encoding(Encoding::BINARY) if rack_input.respond_to?(:set_encoding)

        env.update({"rack.version" => Rack::VERSION,
                     "rack.input" => rack_input,
                     "rack.errors" => $stderr,

                     "rack.multithread" => true,
                     "rack.multiprocess" => false, # ???
                     "rack.run_once" => false,

                     "rack.url_scheme" => ["yes", "on", "1"].include?(env["HTTPS"]) ? "https" : "http"
                   })
        env[QUERY_STRING] ||= ""

        status, headers, body = @app.call(env)

        begin
          response.status = status.to_i
          response.send_status(nil)

          headers.each { |k, vs|
            vs.split("\n").each { |v|
              response.header[k] = v
            }
          }
          response.send_header

          body.each { |part|
            response.write part
            response.socket.flush
          }
        ensure
          body.close  if body.respond_to? :close
        end
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/request.rb000064400000031134150402106500016054 0ustar00require 'rack/utils'

module Rack
  # Rack::Request provides a convenient interface to a Rack
  # environment.  It is stateless, the environment +env+ passed to the
  # constructor will be directly modified.
  #
  #   req = Rack::Request.new(env)
  #   req.post?
  #   req.params["data"]

  class Request
    # The environment of the request.
    attr_reader :env

    def initialize(env)
      @env = env
    end

    def body;            @env["rack.input"]                       end
    def script_name;     @env[SCRIPT_NAME].to_s                   end
    def path_info;       @env[PATH_INFO].to_s                     end
    def request_method;  @env["REQUEST_METHOD"]                   end
    def query_string;    @env[QUERY_STRING].to_s                  end
    def content_length;  @env['CONTENT_LENGTH']                   end

    def content_type
      content_type = @env['CONTENT_TYPE']
      content_type.nil? || content_type.empty? ? nil : content_type
    end

    def session;         @env['rack.session'] ||= {}              end
    def session_options; @env['rack.session.options'] ||= {}      end
    def logger;          @env['rack.logger']                      end

    # The media type (type/subtype) portion of the CONTENT_TYPE header
    # without any media type parameters. e.g., when CONTENT_TYPE is
    # "text/plain;charset=utf-8", the media-type is "text/plain".
    #
    # For more information on the use of media types in HTTP, see:
    # http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7
    def media_type
      content_type && content_type.split(/\s*[;,]\s*/, 2).first.downcase
    end

    # The media type parameters provided in CONTENT_TYPE as a Hash, or
    # an empty Hash if no CONTENT_TYPE or media-type parameters were
    # provided.  e.g., when the CONTENT_TYPE is "text/plain;charset=utf-8",
    # this method responds with the following Hash:
    #   { 'charset' => 'utf-8' }
    def media_type_params
      return {} if content_type.nil?
      Hash[*content_type.split(/\s*[;,]\s*/)[1..-1].
        collect { |s| s.split('=', 2) }.
        map { |k,v| [k.downcase, strip_doublequotes(v)] }.flatten]
    end

    # The character set of the request body if a "charset" media type
    # parameter was given, or nil if no "charset" was specified. Note
    # that, per RFC2616, text/* media types that specify no explicit
    # charset are to be considered ISO-8859-1.
    def content_charset
      media_type_params['charset']
    end

    def scheme
      if @env['HTTPS'] == 'on'
        'https'
      elsif @env['HTTP_X_FORWARDED_SSL'] == 'on'
        'https'
      elsif @env['HTTP_X_FORWARDED_SCHEME']
        @env['HTTP_X_FORWARDED_SCHEME']
      elsif @env['HTTP_X_FORWARDED_PROTO']
        @env['HTTP_X_FORWARDED_PROTO'].split(',')[0]
      else
        @env["rack.url_scheme"]
      end
    end

    def ssl?
      scheme == 'https'
    end

    def host_with_port
      if forwarded = @env["HTTP_X_FORWARDED_HOST"]
        forwarded.split(/,\s?/).last
      else
        @env['HTTP_HOST'] || "#{@env['SERVER_NAME'] || @env['SERVER_ADDR']}:#{@env['SERVER_PORT']}"
      end
    end

    def port
      if port = host_with_port.split(/:/)[1]
        port.to_i
      elsif port = @env['HTTP_X_FORWARDED_PORT']
        port.to_i
      elsif @env.has_key?("HTTP_X_FORWARDED_HOST")
        DEFAULT_PORTS[scheme]
      elsif @env.has_key?("HTTP_X_FORWARDED_PROTO")
        DEFAULT_PORTS[@env['HTTP_X_FORWARDED_PROTO'].split(',')[0]]
      else
        @env["SERVER_PORT"].to_i
      end
    end

    def host
      # Remove port number.
      host_with_port.to_s.sub(/:\d+\z/, '')
    end

    def script_name=(s); @env["SCRIPT_NAME"] = s.to_s             end
    def path_info=(s);   @env["PATH_INFO"] = s.to_s               end


    # Checks the HTTP request method (or verb) to see if it was of type DELETE
    def delete?;  request_method == "DELETE"  end

    # Checks the HTTP request method (or verb) to see if it was of type GET
    def get?;     request_method == GET       end

    # Checks the HTTP request method (or verb) to see if it was of type HEAD
    def head?;    request_method == HEAD      end

    # Checks the HTTP request method (or verb) to see if it was of type OPTIONS
    def options?; request_method == "OPTIONS" end

    # Checks the HTTP request method (or verb) to see if it was of type LINK
    def link?;    request_method == "LINK"    end

    # Checks the HTTP request method (or verb) to see if it was of type PATCH
    def patch?;   request_method == "PATCH"   end

    # Checks the HTTP request method (or verb) to see if it was of type POST
    def post?;    request_method == "POST"    end

    # Checks the HTTP request method (or verb) to see if it was of type PUT
    def put?;     request_method == "PUT"     end

    # Checks the HTTP request method (or verb) to see if it was of type TRACE
    def trace?;   request_method == "TRACE"   end

    # Checks the HTTP request method (or verb) to see if it was of type UNLINK
    def unlink?;  request_method == "UNLINK"  end


    # The set of form-data media-types. Requests that do not indicate
    # one of the media types presents in this list will not be eligible
    # for form-data / param parsing.
    FORM_DATA_MEDIA_TYPES = [
      'application/x-www-form-urlencoded',
      'multipart/form-data'
    ]

    # The set of media-types. Requests that do not indicate
    # one of the media types presents in this list will not be eligible
    # for param parsing like soap attachments or generic multiparts
    PARSEABLE_DATA_MEDIA_TYPES = [
      'multipart/related',
      'multipart/mixed'
    ]

    # Default ports depending on scheme. Used to decide whether or not
    # to include the port in a generated URI.
    DEFAULT_PORTS = { 'http' => 80, 'https' => 443, 'coffee' => 80 }

    # Determine whether the request body contains form-data by checking
    # the request Content-Type for one of the media-types:
    # "application/x-www-form-urlencoded" or "multipart/form-data". The
    # list of form-data media types can be modified through the
    # +FORM_DATA_MEDIA_TYPES+ array.
    #
    # A request body is also assumed to contain form-data when no
    # Content-Type header is provided and the request_method is POST.
    def form_data?
      type = media_type
      meth = env["rack.methodoverride.original_method"] || env[REQUEST_METHOD]
      (meth == 'POST' && type.nil?) || FORM_DATA_MEDIA_TYPES.include?(type)
    end

    # Determine whether the request body contains data by checking
    # the request media_type against registered parse-data media-types
    def parseable_data?
      PARSEABLE_DATA_MEDIA_TYPES.include?(media_type)
    end

    # Returns the data received in the query string.
    def GET
      if @env["rack.request.query_string"] == query_string
        @env["rack.request.query_hash"]
      else
        p = parse_query({ :query => query_string, :separator => '&;' })
        @env["rack.request.query_string"] = query_string
        @env["rack.request.query_hash"]   = p
      end
    end

    # Returns the data received in the request body.
    #
    # This method support both application/x-www-form-urlencoded and
    # multipart/form-data.
    def POST
      if @env["rack.input"].nil?
        raise "Missing rack.input"
      elsif @env["rack.request.form_input"].equal? @env["rack.input"]
        @env["rack.request.form_hash"]
      elsif form_data? || parseable_data?
        unless @env["rack.request.form_hash"] = parse_multipart(env)
          form_vars = @env["rack.input"].read

          # Fix for Safari Ajax postings that always append \0
          # form_vars.sub!(/\0\z/, '') # performance replacement:
          form_vars.slice!(-1) if form_vars[-1] == ?\0

          @env["rack.request.form_vars"] = form_vars
          @env["rack.request.form_hash"] = parse_query({ :query => form_vars, :separator => '&' })

          @env["rack.input"].rewind
        end
        @env["rack.request.form_input"] = @env["rack.input"]
        @env["rack.request.form_hash"]
      else
        {}
      end
    end

    # The union of GET and POST data.
    #
    # Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params.
    def params
      @params ||= self.GET.merge(self.POST)
    rescue EOFError
      self.GET.dup
    end

    # Destructively update a parameter, whether it's in GET and/or POST. Returns nil.
    #
    # The parameter is updated wherever it was previous defined, so GET, POST, or both. If it wasn't previously defined, it's inserted into GET.
    #
    # env['rack.input'] is not touched.
    def update_param(k, v)
      found = false
      if self.GET.has_key?(k)
        found = true
        self.GET[k] = v
      end
      if self.POST.has_key?(k)
        found = true
        self.POST[k] = v
      end
      unless found
        self.GET[k] = v
      end
      @params = nil
      nil
    end

    # Destructively delete a parameter, whether it's in GET or POST. Returns the value of the deleted parameter.
    #
    # If the parameter is in both GET and POST, the POST value takes precedence since that's how #params works.
    #
    # env['rack.input'] is not touched.
    def delete_param(k)
      v = [ self.POST.delete(k), self.GET.delete(k) ].compact.first
      @params = nil
      v
    end

    # shortcut for request.params[key]
    def [](key)
      params[key.to_s]
    end

    # shortcut for request.params[key] = value
    #
    # Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params.
    def []=(key, value)
      params[key.to_s] = value
    end

    # like Hash#values_at
    def values_at(*keys)
      keys.map{|key| params[key] }
    end

    # the referer of the client
    def referer
      @env['HTTP_REFERER']
    end
    alias referrer referer

    def user_agent
      @env['HTTP_USER_AGENT']
    end

    def cookies
      hash   = @env["rack.request.cookie_hash"] ||= {}
      string = @env["HTTP_COOKIE"]

      return hash if string == @env["rack.request.cookie_string"]
      hash.clear

      # According to RFC 2109:
      #   If multiple cookies satisfy the criteria above, they are ordered in
      #   the Cookie header such that those with more specific Path attributes
      #   precede those with less specific.  Ordering with respect to other
      #   attributes (e.g., Domain) is unspecified.
      cookies = Utils.parse_query(string, ';,') { |s| Rack::Utils.unescape(s) rescue s }
      cookies.each { |k,v| hash[k] = Array === v ? v.first : v }
      @env["rack.request.cookie_string"] = string
      hash
    end

    def xhr?
      @env["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest"
    end

    def base_url
      url = "#{scheme}://#{host}"
      url << ":#{port}" if port != DEFAULT_PORTS[scheme]
      url
    end

    # Tries to return a remake of the original request URL as a string.
    def url
      base_url + fullpath
    end

    def path
      script_name + path_info
    end

    def fullpath
      query_string.empty? ? path : "#{path}?#{query_string}"
    end

    def accept_encoding
      parse_http_accept_header(@env["HTTP_ACCEPT_ENCODING"])
    end

    def accept_language
      parse_http_accept_header(@env["HTTP_ACCEPT_LANGUAGE"])
    end

    def trusted_proxy?(ip)
      ip =~ /\A127\.0\.0\.1\Z|\A(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.|\A::1\Z|\Afd[0-9a-f]{2}:.+|\Alocalhost\Z|\Aunix\Z|\Aunix:/i
    end

    def ip
      remote_addrs = split_ip_addresses(@env['REMOTE_ADDR'])
      remote_addrs = reject_trusted_ip_addresses(remote_addrs)

      return remote_addrs.first if remote_addrs.any?

      forwarded_ips = split_ip_addresses(@env['HTTP_X_FORWARDED_FOR'])

      return reject_trusted_ip_addresses(forwarded_ips).last || @env["REMOTE_ADDR"]
    end

    protected
      def split_ip_addresses(ip_addresses)
        ip_addresses ? ip_addresses.strip.split(/[,\s]+/) : []
      end

      def reject_trusted_ip_addresses(ip_addresses)
        ip_addresses.reject { |ip| trusted_proxy?(ip) }
      end

      def parse_query(qs)
        d = '&'
        qs, d = qs[:query], qs[:separator] if Hash === qs
        Utils.parse_nested_query(qs, d)
      end

      def parse_multipart(env)
        Rack::Multipart.parse_multipart(env)
      end

      def parse_http_accept_header(header)
        header.to_s.split(/\s*,\s*/).map do |part|
          attribute, parameters = part.split(/\s*;\s*/, 2)
          quality = 1.0
          if parameters and /\Aq=([\d.]+)/ =~ parameters
            quality = $1.to_f
          end
          [attribute, quality]
        end
      end

  private
    def strip_doublequotes(s)
      if s[0] == ?" && s[-1] == ?"
        s[1..-2]
      else
        s
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/deflater.rb000064400000011114150402106500016146 0ustar00require "zlib"
require "time"  # for Time.httpdate
require 'rack/utils'

module Rack
  # This middleware enables compression of http responses.
  #
  # Currently supported compression algorithms:
  #
  #   * gzip
  #   * deflate
  #   * identity (no transformation)
  #
  # The middleware automatically detects when compression is supported
  # and allowed. For example no transformation is made when a cache
  # directive of 'no-transform' is present, or when the response status
  # code is one that doesn't allow an entity body.
  class Deflater
    ##
    # Creates Rack::Deflater middleware.
    #
    # [app] rack app instance
    # [options] hash of deflater options, i.e.
    #           'if' - a lambda enabling / disabling deflation based on returned boolean value
    #                  e.g use Rack::Deflater, :if => lambda { |env, status, headers, body| body.length > 512 }
    #           'include' - a list of content types that should be compressed
    def initialize(app, options = {})
      @app = app

      @condition = options[:if]
      @compressible_types = options[:include]
    end

    def call(env)
      status, headers, body = @app.call(env)
      headers = Utils::HeaderHash.new(headers)

      unless should_deflate?(env, status, headers, body)
        return [status, headers, body]
      end

      request = Request.new(env)

      encoding = Utils.select_best_encoding(%w(gzip deflate identity),
                                            request.accept_encoding)

      # Set the Vary HTTP header.
      vary = headers["Vary"].to_s.split(",").map { |v| v.strip }
      unless vary.include?("*") || vary.include?("Accept-Encoding")
        headers["Vary"] = vary.push("Accept-Encoding").join(",")
      end

      case encoding
      when "gzip"
        headers['Content-Encoding'] = "gzip"
        headers.delete(CONTENT_LENGTH)
        mtime = headers.key?("Last-Modified") ?
          Time.httpdate(headers["Last-Modified"]) : Time.now
        [status, headers, GzipStream.new(body, mtime)]
      when "deflate"
        headers['Content-Encoding'] = "deflate"
        headers.delete(CONTENT_LENGTH)
        [status, headers, DeflateStream.new(body)]
      when "identity"
        [status, headers, body]
      when nil
        message = "An acceptable encoding for the requested resource #{request.fullpath} could not be found."
        bp = Rack::BodyProxy.new([message]) { body.close if body.respond_to?(:close) }
        [406, {CONTENT_TYPE => "text/plain", CONTENT_LENGTH => message.length.to_s}, bp]
      end
    end

    class GzipStream
      def initialize(body, mtime)
        @body = body
        @mtime = mtime
        @closed = false
      end

      def each(&block)
        @writer = block
        gzip  =::Zlib::GzipWriter.new(self)
        gzip.mtime = @mtime
        @body.each { |part|
          gzip.write(part)
          gzip.flush
        }
      ensure
        gzip.close
        @writer = nil
      end

      def write(data)
        @writer.call(data)
      end

      def close
        return if @closed
        @closed = true
        @body.close if @body.respond_to?(:close)
      end
    end

    class DeflateStream
      DEFLATE_ARGS = [
        Zlib::DEFAULT_COMPRESSION,
        # drop the zlib header which causes both Safari and IE to choke
        -Zlib::MAX_WBITS,
        Zlib::DEF_MEM_LEVEL,
        Zlib::DEFAULT_STRATEGY
      ]

      def initialize(body)
        @body = body
        @closed = false
      end

      def each
        deflator = ::Zlib::Deflate.new(*DEFLATE_ARGS)
        @body.each { |part| yield deflator.deflate(part, Zlib::SYNC_FLUSH) }
        yield deflator.finish
        nil
      ensure
        deflator.close
      end

      def close
        return if @closed
        @closed = true
        @body.close if @body.respond_to?(:close)
      end
    end

    private

    def should_deflate?(env, status, headers, body)
      # Skip compressing empty entity body responses and responses with
      # no-transform set.
      if Utils::STATUS_WITH_NO_ENTITY_BODY.include?(status) ||
          headers[CACHE_CONTROL].to_s =~ /\bno-transform\b/ ||
         (headers['Content-Encoding'] && headers['Content-Encoding'] !~ /\bidentity\b/)
        return false
      end

      # Skip if @compressible_types are given and does not include request's content type
      return false if @compressible_types && !(headers.has_key?('Content-Type') && @compressible_types.include?(headers['Content-Type'][/[^;]*/]))

      # Skip if @condition lambda is given and evaluates to false
      return false if @condition && !@condition.call(env, status, headers, body)

      true
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/runtime.rb000064400000001701150402106500016044 0ustar00module Rack
  # Sets an "X-Runtime" response header, indicating the response
  # time of the request, in seconds
  #
  # You can put it right before the application to see the processing
  # time, or before all the other middlewares to include time for them,
  # too.
  class Runtime
    def initialize(app, name = nil)
      @app = app
      @header_name = "X-Runtime"
      @header_name << "-#{name}" if name
    end

    FORMAT_STRING = "%0.6f"
    def call(env)
      start_time = clock_time
      status, headers, body = @app.call(env)
      request_time = clock_time - start_time

      if !headers.has_key?(@header_name)
        headers[@header_name] = FORMAT_STRING % request_time
      end

      [status, headers, body]
    end

    private

    if defined?(Process::CLOCK_MONOTONIC)
      def clock_time
        Process.clock_gettime(Process::CLOCK_MONOTONIC)
      end
    else
      def clock_time
        Time.now.to_f
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/handler.rb000064400000006377150402106500016014 0ustar00module Rack
  # *Handlers* connect web servers with Rack.
  #
  # Rack includes Handlers for Thin, WEBrick, FastCGI, CGI, SCGI
  # and LiteSpeed.
  #
  # Handlers usually are activated by calling <tt>MyHandler.run(myapp)</tt>.
  # A second optional hash can be passed to include server-specific
  # configuration.
  module Handler
    def self.get(server)
      return unless server
      server = server.to_s

      unless @handlers.include? server
        load_error = try_require('rack/handler', server)
      end

      if klass = @handlers[server]
        klass.split("::").inject(Object) { |o, x| o.const_get(x) }
      else
        const_get(server, false)
      end

    rescue NameError => name_error
      raise load_error || name_error
    end

    # Select first available Rack handler given an `Array` of server names.
    # Raises `LoadError` if no handler was found.
    #
    #   > pick ['thin', 'webrick']
    #   => Rack::Handler::WEBrick
    def self.pick(server_names)
      server_names = Array(server_names)
      server_names.each do |server_name|
        begin
          return get(server_name.to_s)
        rescue LoadError, NameError
        end
      end

      raise LoadError, "Couldn't find handler for: #{server_names.join(', ')}."
    end

    def self.default(options = {})
      # Guess.
      if ENV.include?("PHP_FCGI_CHILDREN")
        # We already speak FastCGI
        options.delete :File
        options.delete :Port

        Rack::Handler::FastCGI
      elsif ENV.include?(REQUEST_METHOD)
        Rack::Handler::CGI
      elsif ENV.include?("RACK_HANDLER")
        self.get(ENV["RACK_HANDLER"])
      else
        pick ['thin', 'puma', 'webrick']
      end
    end

    # Transforms server-name constants to their canonical form as filenames,
    # then tries to require them but silences the LoadError if not found
    #
    # Naming convention:
    #
    #   Foo # => 'foo'
    #   FooBar # => 'foo_bar.rb'
    #   FooBAR # => 'foobar.rb'
    #   FOObar # => 'foobar.rb'
    #   FOOBAR # => 'foobar.rb'
    #   FooBarBaz # => 'foo_bar_baz.rb'
    def self.try_require(prefix, const_name)
      file = const_name.gsub(/^[A-Z]+/) { |pre| pre.downcase }.
        gsub(/[A-Z]+[^A-Z]/, '_\&').downcase

      require(::File.join(prefix, file))
      nil
    rescue LoadError => error
      error
    end

    def self.register(server, klass)
      @handlers ||= {}
      @handlers[server.to_s] = klass.to_s
    end

    autoload :CGI, "rack/handler/cgi"
    autoload :FastCGI, "rack/handler/fastcgi"
    autoload :Mongrel, "rack/handler/mongrel"
    autoload :EventedMongrel, "rack/handler/evented_mongrel"
    autoload :SwiftipliedMongrel, "rack/handler/swiftiplied_mongrel"
    autoload :WEBrick, "rack/handler/webrick"
    autoload :LSWS, "rack/handler/lsws"
    autoload :SCGI, "rack/handler/scgi"
    autoload :Thin, "rack/handler/thin"

    register 'cgi', 'Rack::Handler::CGI'
    register 'fastcgi', 'Rack::Handler::FastCGI'
    register 'mongrel', 'Rack::Handler::Mongrel'
    register 'emongrel', 'Rack::Handler::EventedMongrel'
    register 'smongrel', 'Rack::Handler::SwiftipliedMongrel'
    register 'webrick', 'Rack::Handler::WEBrick'
    register 'lsws', 'Rack::Handler::LSWS'
    register 'scgi', 'Rack::Handler::SCGI'
    register 'thin', 'Rack::Handler::Thin'
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/session/cookie.rb000064400000013053150402106500017320 0ustar00require 'openssl'
require 'zlib'
require 'rack/request'
require 'rack/response'
require 'rack/session/abstract/id'

module Rack

  module Session

    # Rack::Session::Cookie provides simple cookie based session management.
    # By default, the session is a Ruby Hash stored as base64 encoded marshalled
    # data set to :key (default: rack.session).  The object that encodes the
    # session data is configurable and must respond to +encode+ and +decode+.
    # Both methods must take a string and return a string.
    #
    # When the secret key is set, cookie data is checked for data integrity.
    # The old secret key is also accepted and allows graceful secret rotation.
    #
    # Example:
    #
    #     use Rack::Session::Cookie, :key => 'rack.session',
    #                                :domain => 'foo.com',
    #                                :path => '/',
    #                                :expire_after => 2592000,
    #                                :secret => 'change_me',
    #                                :old_secret => 'also_change_me'
    #
    #     All parameters are optional.
    #
    # Example of a cookie with no encoding:
    #
    #   Rack::Session::Cookie.new(application, {
    #     :coder => Rack::Session::Cookie::Identity.new
    #   })
    #
    # Example of a cookie with custom encoding:
    #
    #   Rack::Session::Cookie.new(application, {
    #     :coder => Class.new {
    #       def encode(str); str.reverse; end
    #       def decode(str); str.reverse; end
    #     }.new
    #   })
    #

    class Cookie < Abstract::ID
      # Encode session cookies as Base64
      class Base64
        def encode(str)
          [str].pack('m')
        end

        def decode(str)
          str.unpack('m').first
        end

        # Encode session cookies as Marshaled Base64 data
        class Marshal < Base64
          def encode(str)
            super(::Marshal.dump(str))
          end

          def decode(str)
            return unless str
            ::Marshal.load(super(str)) rescue nil
          end
        end

        # N.B. Unlike other encoding methods, the contained objects must be a
        # valid JSON composite type, either a Hash or an Array.
        class JSON < Base64
          def encode(obj)
            super(::Rack::Utils::OkJson.encode(obj))
          end

          def decode(str)
            return unless str
            ::Rack::Utils::OkJson.decode(super(str)) rescue nil
          end
        end

        class ZipJSON < Base64
          def encode(obj)
            super(Zlib::Deflate.deflate(::Rack::Utils::OkJson.encode(obj)))
          end

          def decode(str)
            return unless str
            ::Rack::Utils::OkJson.decode(Zlib::Inflate.inflate(super(str)))
          rescue
            nil
          end
        end
      end

      # Use no encoding for session cookies
      class Identity
        def encode(str); str; end
        def decode(str); str; end
      end

      attr_reader :coder

      def initialize(app, options={})
        @secrets = options.values_at(:secret, :old_secret).compact
        warn <<-MSG unless @secrets.size >= 1
        SECURITY WARNING: No secret option provided to Rack::Session::Cookie.
        This poses a security threat. It is strongly recommended that you
        provide a secret to prevent exploits that may be possible from crafted
        cookies. This will not be supported in future versions of Rack, and
        future versions will even invalidate your existing user cookies.

        Called from: #{caller[0]}.
        MSG
        @coder  = options[:coder] ||= Base64::Marshal.new
        super(app, options.merge!(:cookie_only => true))
      end

      private

      def get_session(env, sid)
        data = unpacked_cookie_data(env)
        data = persistent_session_id!(data)
        [data["session_id"], data]
      end

      def extract_session_id(env)
        unpacked_cookie_data(env)["session_id"]
      end

      def unpacked_cookie_data(env)
        env["rack.session.unpacked_cookie_data"] ||= begin
          request = Rack::Request.new(env)
          session_data = request.cookies[@key]

          if @secrets.size > 0 && session_data
            digest, session_data = session_data.reverse.split("--", 2)
            digest.reverse! if digest
            session_data.reverse! if session_data
            session_data = nil unless digest_match?(session_data, digest)
          end

          coder.decode(session_data) || {}
        end
      end

      def persistent_session_id!(data, sid=nil)
        data ||= {}
        data["session_id"] ||= sid || generate_sid
        data
      end

      def set_session(env, session_id, session, options)
        session = session.merge("session_id" => session_id)
        session_data = coder.encode(session)

        if @secrets.first
          session_data << "--#{generate_hmac(session_data, @secrets.first)}"
        end

        if session_data.size > (4096 - @key.size)
          env["rack.errors"].puts("Warning! Rack::Session::Cookie data size exceeds 4K.")
          nil
        else
          session_data
        end
      end

      def destroy_session(env, session_id, options)
        # Nothing to do here, data is in the client
        generate_sid unless options[:drop]
      end

      def digest_match?(data, digest)
        return unless data && digest
        @secrets.any? do |secret|
          Rack::Utils.secure_compare(digest, generate_hmac(data, secret))
        end
      end

      def generate_hmac(data, secret)
        OpenSSL::HMAC.hexdigest(OpenSSL::Digest::SHA1.new, secret, data)
      end

    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/session/pool.rb000064400000003772150402106500017027 0ustar00# AUTHOR: blink <blinketje@gmail.com>; blink#ruby-lang@irc.freenode.net
# THANKS:
#   apeiros, for session id generation, expiry setup, and threadiness
#   sergio, threadiness and bugreps

require 'rack/session/abstract/id'
require 'thread'

module Rack
  module Session
    # Rack::Session::Pool provides simple cookie based session management.
    # Session data is stored in a hash held by @pool.
    # In the context of a multithreaded environment, sessions being
    # committed to the pool is done in a merging manner.
    #
    # The :drop option is available in rack.session.options if you wish to
    # explicitly remove the session from the session cache.
    #
    # Example:
    #   myapp = MyRackApp.new
    #   sessioned = Rack::Session::Pool.new(myapp,
    #     :domain => 'foo.com',
    #     :expire_after => 2592000
    #   )
    #   Rack::Handler::WEBrick.run sessioned

    class Pool < Abstract::ID
      attr_reader :mutex, :pool
      DEFAULT_OPTIONS = Abstract::ID::DEFAULT_OPTIONS.merge :drop => false

      def initialize(app, options={})
        super
        @pool = Hash.new
        @mutex = Mutex.new
      end

      def generate_sid
        loop do
          sid = super
          break sid unless @pool.key? sid
        end
      end

      def get_session(env, sid)
        with_lock(env) do
          unless sid and session = @pool[sid]
            sid, session = generate_sid, {}
            @pool.store sid, session
          end
          [sid, session]
        end
      end

      def set_session(env, session_id, new_session, options)
        with_lock(env) do
          @pool.store session_id, new_session
          session_id
        end
      end

      def destroy_session(env, session_id, options)
        with_lock(env) do
          @pool.delete(session_id)
          generate_sid unless options[:drop]
        end
      end

      def with_lock(env)
        @mutex.lock if env['rack.multithread']
        yield
      ensure
        @mutex.unlock if @mutex.locked?
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/session/memcache.rb000064400000005322150402106500017611 0ustar00# AUTHOR: blink <blinketje@gmail.com>; blink#ruby-lang@irc.freenode.net

require 'rack/session/abstract/id'
require 'memcache'

module Rack
  module Session
    # Rack::Session::Memcache provides simple cookie based session management.
    # Session data is stored in memcached. The corresponding session key is
    # maintained in the cookie.
    # You may treat Session::Memcache as you would Session::Pool with the
    # following caveats.
    #
    # * Setting :expire_after to 0 would note to the Memcache server to hang
    #   onto the session data until it would drop it according to it's own
    #   specifications. However, the cookie sent to the client would expire
    #   immediately.
    #
    # Note that memcache does drop data before it may be listed to expire. For
    # a full description of behaviour, please see memcache's documentation.

    class Memcache < Abstract::ID
      attr_reader :mutex, :pool

      DEFAULT_OPTIONS = Abstract::ID::DEFAULT_OPTIONS.merge \
        :namespace => 'rack:session',
        :memcache_server => 'localhost:11211'

      def initialize(app, options={})
        super

        @mutex = Mutex.new
        mserv = @default_options[:memcache_server]
        mopts = @default_options.reject{|k,v| !MemCache::DEFAULT_OPTIONS.include? k }

        @pool = options[:cache] || MemCache.new(mserv, mopts)
        unless @pool.active? and @pool.servers.any?{|c| c.alive? }
          raise 'No memcache servers'
        end
      end

      def generate_sid
        loop do
          sid = super
          break sid unless @pool.get(sid, true)
        end
      end

      def get_session(env, sid)
        with_lock(env) do
          unless sid and session = @pool.get(sid)
            sid, session = generate_sid, {}
            unless /^STORED/ =~ @pool.add(sid, session)
              raise "Session collision on '#{sid.inspect}'"
            end
          end
          [sid, session]
        end
      end

      def set_session(env, session_id, new_session, options)
        expiry = options[:expire_after]
        expiry = expiry.nil? ? 0 : expiry + 1

        with_lock(env) do
          @pool.set session_id, new_session, expiry
          session_id
        end
      end

      def destroy_session(env, session_id, options)
        with_lock(env) do
          @pool.delete(session_id)
          generate_sid unless options[:drop]
        end
      end

      def with_lock(env)
        @mutex.lock if env['rack.multithread']
        yield
      rescue MemCache::MemCacheError, Errno::ECONNREFUSED
        if $VERBOSE
          warn "#{self} is unable to find memcached server."
          warn $!.inspect
        end
        raise
      ensure
        @mutex.unlock if @mutex.locked?
      end

    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb000064400000027272150402106500020256 0ustar00# AUTHOR: blink <blinketje@gmail.com>; blink#ruby-lang@irc.freenode.net
# bugrep: Andreas Zehnder

require 'time'
require 'rack/request'
require 'rack/response'
begin
  require 'securerandom'
rescue LoadError
  # We just won't get securerandom
end

module Rack

  module Session

    module Abstract
      ENV_SESSION_KEY = 'rack.session'.freeze
      ENV_SESSION_OPTIONS_KEY = 'rack.session.options'.freeze

      # SessionHash is responsible to lazily load the session from store.

      class SessionHash
        include Enumerable
        attr_writer :id

        def self.find(env)
          env[ENV_SESSION_KEY]
        end

        def self.set(env, session)
          env[ENV_SESSION_KEY] = session
        end

        def self.set_options(env, options)
          env[ENV_SESSION_OPTIONS_KEY] = options.dup
        end

        def initialize(store, env)
          @store = store
          @env = env
          @loaded = false
        end

        def id
          return @id if @loaded or instance_variable_defined?(:@id)
          @id = @store.send(:extract_session_id, @env)
        end

        def options
          @env[ENV_SESSION_OPTIONS_KEY]
        end

        def each(&block)
          load_for_read!
          @data.each(&block)
        end

        def [](key)
          load_for_read!
          @data[key.to_s]
        end
        alias :fetch :[]

        def has_key?(key)
          load_for_read!
          @data.has_key?(key.to_s)
        end
        alias :key? :has_key?
        alias :include? :has_key?

        def []=(key, value)
          load_for_write!
          @data[key.to_s] = value
        end
        alias :store :[]=

        def clear
          load_for_write!
          @data.clear
        end

        def destroy
          clear
          @id = @store.send(:destroy_session, @env, id, options)
        end

        def to_hash
          load_for_read!
          @data.dup
        end

        def update(hash)
          load_for_write!
          @data.update(stringify_keys(hash))
        end
        alias :merge! :update

        def replace(hash)
          load_for_write!
          @data.replace(stringify_keys(hash))
        end

        def delete(key)
          load_for_write!
          @data.delete(key.to_s)
        end

        def inspect
          if loaded?
            @data.inspect
          else
            "#<#{self.class}:0x#{self.object_id.to_s(16)} not yet loaded>"
          end
        end

        def exists?
          return @exists if instance_variable_defined?(:@exists)
          @data = {}
          @exists = @store.send(:session_exists?, @env)
        end

        def loaded?
          @loaded
        end

        def empty?
          load_for_read!
          @data.empty?
        end

        def keys
          @data.keys
        end

        def values
          @data.values
        end

      private

        def load_for_read!
          load! if !loaded? && exists?
        end

        def load_for_write!
          load! unless loaded?
        end

        def load!
          @id, session = @store.send(:load_session, @env)
          @data = stringify_keys(session)
          @loaded = true
        end

        def stringify_keys(other)
          hash = {}
          other.each do |key, value|
            hash[key.to_s] = value
          end
          hash
        end
      end

      # ID sets up a basic framework for implementing an id based sessioning
      # service. Cookies sent to the client for maintaining sessions will only
      # contain an id reference. Only #get_session and #set_session are
      # required to be overwritten.
      #
      # All parameters are optional.
      # * :key determines the name of the cookie, by default it is
      #   'rack.session'
      # * :path, :domain, :expire_after, :secure, and :httponly set the related
      #   cookie options as by Rack::Response#add_cookie
      # * :skip will not a set a cookie in the response nor update the session state
      # * :defer will not set a cookie in the response but still update the session
      #   state if it is used with a backend
      # * :renew (implementation dependent) will prompt the generation of a new
      #   session id, and migration of data to be referenced at the new id. If
      #   :defer is set, it will be overridden and the cookie will be set.
      # * :sidbits sets the number of bits in length that a generated session
      #   id will be.
      #
      # These options can be set on a per request basis, at the location of
      # env['rack.session.options']. Additionally the id of the session can be
      # found within the options hash at the key :id. It is highly not
      # recommended to change its value.
      #
      # Is Rack::Utils::Context compatible.
      #
      # Not included by default; you must require 'rack/session/abstract/id'
      # to use.

      class ID
        DEFAULT_OPTIONS = {
          :key =>           'rack.session',
          :path =>          '/',
          :domain =>        nil,
          :expire_after =>  nil,
          :secure =>        false,
          :httponly =>      true,
          :defer =>         false,
          :renew =>         false,
          :sidbits =>       128,
          :cookie_only =>   true,
          :secure_random => (::SecureRandom rescue false)
        }

        attr_reader :key, :default_options

        def initialize(app, options={})
          @app = app
          @default_options = self.class::DEFAULT_OPTIONS.merge(options)
          @key = @default_options.delete(:key)
          @cookie_only = @default_options.delete(:cookie_only)
          initialize_sid
        end

        def call(env)
          context(env)
        end

        def context(env, app=@app)
          prepare_session(env)
          status, headers, body = app.call(env)
          commit_session(env, status, headers, body)
        end

        private

        def initialize_sid
          @sidbits = @default_options[:sidbits]
          @sid_secure = @default_options[:secure_random]
          @sid_length = @sidbits / 4
        end

        # Generate a new session id using Ruby #rand.  The size of the
        # session id is controlled by the :sidbits option.
        # Monkey patch this to use custom methods for session id generation.

        def generate_sid(secure = @sid_secure)
          if secure
            secure.hex(@sid_length)
          else
            "%0#{@sid_length}x" % Kernel.rand(2**@sidbits - 1)
          end
        rescue NotImplementedError
          generate_sid(false)
        end

        # Sets the lazy session at 'rack.session' and places options and session
        # metadata into 'rack.session.options'.

        def prepare_session(env)
          session_was                  = env[ENV_SESSION_KEY]
          env[ENV_SESSION_KEY]         = session_class.new(self, env)
          env[ENV_SESSION_OPTIONS_KEY] = @default_options.dup
          env[ENV_SESSION_KEY].merge! session_was if session_was
        end

        # Extracts the session id from provided cookies and passes it and the
        # environment to #get_session.

        def load_session(env)
          sid = current_session_id(env)
          sid, session = get_session(env, sid)
          [sid, session || {}]
        end

        # Extract session id from request object.

        def extract_session_id(env)
          request = Rack::Request.new(env)
          sid = request.cookies[@key]
          sid ||= request.params[@key] unless @cookie_only
          sid
        end

        # Returns the current session id from the SessionHash.

        def current_session_id(env)
          env[ENV_SESSION_KEY].id
        end

        # Check if the session exists or not.

        def session_exists?(env)
          value = current_session_id(env)
          value && !value.empty?
        end

        # Session should be committed if it was loaded, any of specific options like :renew, :drop
        # or :expire_after was given and the security permissions match. Skips if skip is given.

        def commit_session?(env, session, options)
          if options[:skip]
            false
          else
            has_session = loaded_session?(session) || forced_session_update?(session, options)
            has_session && security_matches?(env, options)
          end
        end

        def loaded_session?(session)
          !session.is_a?(session_class) || session.loaded?
        end

        def forced_session_update?(session, options)
          force_options?(options) && session && !session.empty?
        end

        def force_options?(options)
          options.values_at(:max_age, :renew, :drop, :defer, :expire_after).any?
        end

        def security_matches?(env, options)
          return true unless options[:secure]
          request = Rack::Request.new(env)
          request.ssl?
        end

        # Acquires the session from the environment and the session id from
        # the session options and passes them to #set_session. If successful
        # and the :defer option is not true, a cookie will be added to the
        # response with the session's id.

        def commit_session(env, status, headers, body)
          session = env[ENV_SESSION_KEY]
          options = session.options

          if options[:drop] || options[:renew]
            session_id = destroy_session(env, session.id || generate_sid, options)
            return [status, headers, body] unless session_id
          end

          return [status, headers, body] unless commit_session?(env, session, options)

          session.send(:load!) unless loaded_session?(session)
          session_id ||= session.id
          session_data = session.to_hash.delete_if { |k,v| v.nil? }

          if not data = set_session(env, session_id, session_data, options)
            env["rack.errors"].puts("Warning! #{self.class.name} failed to save session. Content dropped.")
          elsif options[:defer] and not options[:renew]
            env["rack.errors"].puts("Deferring cookie for #{session_id}") if $VERBOSE
          else
            cookie = Hash.new
            cookie[:value] = data
            cookie[:expires] = Time.now + options[:expire_after] if options[:expire_after]
            cookie[:expires] = Time.now + options[:max_age] if options[:max_age]
            set_cookie(env, headers, cookie.merge!(options))
          end

          [status, headers, body]
        end

        # Sets the cookie back to the client with session id. We skip the cookie
        # setting if the value didn't change (sid is the same) or expires was given.

        def set_cookie(env, headers, cookie)
          request = Rack::Request.new(env)
          if request.cookies[@key] != cookie[:value] || cookie[:expires]
            Utils.set_cookie_header!(headers, @key, cookie)
          end
        end

        # Allow subclasses to prepare_session for different Session classes

        def session_class
          SessionHash
        end

        # All thread safety and session retrieval procedures should occur here.
        # Should return [session_id, session].
        # If nil is provided as the session id, generation of a new valid id
        # should occur within.

        def get_session(env, sid)
          raise '#get_session not implemented.'
        end

        # All thread safety and session storage procedures should occur here.
        # Must return the session id if the session was saved successfully, or
        # false if the session could not be saved.

        def set_session(env, sid, session, options)
          raise '#set_session not implemented.'
        end

        # All thread safety and session destroy procedures should occur here.
        # Should return a new session id or nil if options[:drop]

        def destroy_session(env, sid, options)
          raise '#destroy_session not implemented'
        end
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/utils.rb000064400000051563150402106500015534 0ustar00# -*- encoding: binary -*-
require 'fileutils'
require 'set'
require 'tempfile'
require 'rack/multipart'
require 'time'

major, minor, patch = RUBY_VERSION.split('.').map { |v| v.to_i }

if major == 1 && minor < 9
  require 'rack/backports/uri/common_18'
elsif major == 1 && minor == 9 && patch == 2 && RUBY_PATCHLEVEL <= 328 && RUBY_ENGINE != 'jruby'
  require 'rack/backports/uri/common_192'
elsif major == 1 && minor == 9 && patch == 3 && RUBY_PATCHLEVEL < 125
  require 'rack/backports/uri/common_193'
else
  require 'uri/common'
end

module Rack
  # Rack::Utils contains a grab-bag of useful methods for writing web
  # applications adopted from all kinds of Ruby libraries.

  module Utils
    # ParameterTypeError is the error that is raised when incoming structural
    # parameters (parsed by parse_nested_query) contain conflicting types.
    class ParameterTypeError < TypeError; end

    # InvalidParameterError is the error that is raised when incoming structural
    # parameters (parsed by parse_nested_query) contain invalid format or byte
    # sequence.
    class InvalidParameterError < ArgumentError; end

    # URI escapes. (CGI style space to +)
    def escape(s)
      URI.encode_www_form_component(s)
    end
    module_function :escape

    # Like URI escaping, but with %20 instead of +. Strictly speaking this is
    # true URI escaping.
    def escape_path(s)
      escape(s).gsub('+', '%20')
    end
    module_function :escape_path

    # Unescapes a URI escaped string with +encoding+. +encoding+ will be the
    # target encoding of the string returned, and it defaults to UTF-8
    if defined?(::Encoding)
      def unescape(s, encoding = Encoding::UTF_8)
        URI.decode_www_form_component(s, encoding)
      end
    else
      def unescape(s, encoding = nil)
        URI.decode_www_form_component(s, encoding)
      end
    end
    module_function :unescape

    DEFAULT_SEP = /[&;] */n

    class << self
      attr_accessor :key_space_limit
      attr_accessor :param_depth_limit
      attr_accessor :multipart_part_limit
    end

    # The default number of bytes to allow parameter keys to take up.
    # This helps prevent a rogue client from flooding a Request.
    self.key_space_limit = 65536

    # Default depth at which the parameter parser will raise an exception for
    # being too deep.  This helps prevent SystemStackErrors
    self.param_depth_limit = 100

    # The maximum number of parts a request can contain. Accepting too many part
    # can lead to the server running out of file handles.
    # Set to `0` for no limit.
    # FIXME: RACK_MULTIPART_LIMIT was introduced by mistake and it will be removed in 1.7.0
    self.multipart_part_limit = (ENV['RACK_MULTIPART_PART_LIMIT'] || ENV['RACK_MULTIPART_LIMIT'] || 128).to_i

    # Stolen from Mongrel, with some small modifications:
    # Parses a query string by breaking it up at the '&'
    # and ';' characters.  You can also use this to parse
    # cookies by changing the characters used in the second
    # parameter (which defaults to '&;').
    def parse_query(qs, d = nil, &unescaper)
      unescaper ||= method(:unescape)

      params = KeySpaceConstrainedParams.new

      (qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p|
        next if p.empty?
        k, v = p.split('=', 2).map(&unescaper)

        if cur = params[k]
          if cur.class == Array
            params[k] << v
          else
            params[k] = [cur, v]
          end
        else
          params[k] = v
        end
      end

      return params.to_params_hash
    end
    module_function :parse_query

    # parse_nested_query expands a query string into structural types. Supported
    # types are Arrays, Hashes and basic value types. It is possible to supply
    # query strings with parameters of conflicting types, in this case a
    # ParameterTypeError is raised. Users are encouraged to return a 400 in this
    # case.
    def parse_nested_query(qs, d = nil)
      params = KeySpaceConstrainedParams.new

      (qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p|
        k, v = p.split('=', 2).map { |s| unescape(s) }

        normalize_params(params, k, v)
      end

      return params.to_params_hash
    rescue ArgumentError => e
      raise InvalidParameterError, e.message
    end
    module_function :parse_nested_query

    # normalize_params recursively expands parameters into structural types. If
    # the structural types represented by two different parameter names are in
    # conflict, a ParameterTypeError is raised.
    def normalize_params(params, name, v = nil, depth = Utils.param_depth_limit)
      raise RangeError if depth <= 0

      name =~ %r(\A[\[\]]*([^\[\]]+)\]*)
      k = $1 || ''
      after = $' || ''

      return if k.empty?

      if after == ""
        params[k] = v
      elsif after == "["
        params[name] = v
      elsif after == "[]"
        params[k] ||= []
        raise ParameterTypeError, "expected Array (got #{params[k].class.name}) for param `#{k}'" unless params[k].is_a?(Array)
        params[k] << v
      elsif after =~ %r(^\[\]\[([^\[\]]+)\]$) || after =~ %r(^\[\](.+)$)
        child_key = $1
        params[k] ||= []
        raise ParameterTypeError, "expected Array (got #{params[k].class.name}) for param `#{k}'" unless params[k].is_a?(Array)
        if params_hash_type?(params[k].last) && !params[k].last.key?(child_key)
          normalize_params(params[k].last, child_key, v, depth - 1)
        else
          params[k] << normalize_params(params.class.new, child_key, v, depth - 1)
        end
      else
        params[k] ||= params.class.new
        raise ParameterTypeError, "expected Hash (got #{params[k].class.name}) for param `#{k}'" unless params_hash_type?(params[k])
        params[k] = normalize_params(params[k], after, v, depth - 1)
      end

      return params
    end
    module_function :normalize_params

    def params_hash_type?(obj)
      obj.kind_of?(KeySpaceConstrainedParams) || obj.kind_of?(Hash)
    end
    module_function :params_hash_type?

    def build_query(params)
      params.map { |k, v|
        if v.class == Array
          build_query(v.map { |x| [k, x] })
        else
          v.nil? ? escape(k) : "#{escape(k)}=#{escape(v)}"
        end
      }.join("&")
    end
    module_function :build_query

    def build_nested_query(value, prefix = nil)
      case value
      when Array
        value.map { |v|
          build_nested_query(v, "#{prefix}[]")
        }.join("&")
      when Hash
        value.map { |k, v|
          build_nested_query(v, prefix ? "#{prefix}[#{escape(k)}]" : escape(k))
        }.reject(&:empty?).join('&')
      when nil
        prefix
      else
        raise ArgumentError, "value must be a Hash" if prefix.nil?
        "#{prefix}=#{escape(value)}"
      end
    end
    module_function :build_nested_query

    def q_values(q_value_header)
      q_value_header.to_s.split(/\s*,\s*/).map do |part|
        value, parameters = part.split(/\s*;\s*/, 2)
        quality = 1.0
        if md = /\Aq=([\d.]+)/.match(parameters)
          quality = md[1].to_f
        end
        [value, quality]
      end
    end
    module_function :q_values

    def best_q_match(q_value_header, available_mimes)
      values = q_values(q_value_header)

      matches = values.map do |req_mime, quality|
        match = available_mimes.find { |am| Rack::Mime.match?(am, req_mime) }
        next unless match
        [match, quality]
      end.compact.sort_by do |match, quality|
        (match.split('/', 2).count('*') * -10) + quality
      end.last
      matches && matches.first
    end
    module_function :best_q_match

    ESCAPE_HTML = {
      "&" => "&amp;",
      "<" => "&lt;",
      ">" => "&gt;",
      "'" => "&#x27;",
      '"' => "&quot;",
      "/" => "&#x2F;"
    }
    if //.respond_to?(:encoding)
      ESCAPE_HTML_PATTERN = Regexp.union(*ESCAPE_HTML.keys)
    else
      # On 1.8, there is a kcode = 'u' bug that allows for XSS otherwise
      # TODO doesn't apply to jruby, so a better condition above might be preferable?
      ESCAPE_HTML_PATTERN = /#{Regexp.union(*ESCAPE_HTML.keys)}/n
    end

    # Escape ampersands, brackets and quotes to their HTML/XML entities.
    def escape_html(string)
      string.to_s.gsub(ESCAPE_HTML_PATTERN){|c| ESCAPE_HTML[c] }
    end
    module_function :escape_html

    def select_best_encoding(available_encodings, accept_encoding)
      # http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

      expanded_accept_encoding =
        accept_encoding.map { |m, q|
          if m == "*"
            (available_encodings - accept_encoding.map { |m2, _| m2 }).map { |m2| [m2, q] }
          else
            [[m, q]]
          end
        }.inject([]) { |mem, list|
          mem + list
        }

      encoding_candidates = expanded_accept_encoding.sort_by { |_, q| -q }.map { |m, _| m }

      unless encoding_candidates.include?("identity")
        encoding_candidates.push("identity")
      end

      expanded_accept_encoding.each { |m, q|
        encoding_candidates.delete(m) if q == 0.0
      }

      return (encoding_candidates & available_encodings)[0]
    end
    module_function :select_best_encoding

    def set_cookie_header!(header, key, value)
      case value
      when Hash
        domain  = "; domain="  + value[:domain]       if value[:domain]
        path    = "; path="    + value[:path]         if value[:path]
        max_age = "; max-age=" + value[:max_age].to_s if value[:max_age]
        # There is an RFC mess in the area of date formatting for Cookies. Not
        # only are there contradicting RFCs and examples within RFC text, but
        # there are also numerous conflicting names of fields and partially
        # cross-applicable specifications.
        #
        # These are best described in RFC 2616 3.3.1. This RFC text also
        # specifies that RFC 822 as updated by RFC 1123 is preferred. That is a
        # fixed length format with space-date delimeted fields.
        #
        # See also RFC 1123 section 5.2.14.
        #
        # RFC 6265 also specifies "sane-cookie-date" as RFC 1123 date, defined
        # in RFC 2616 3.3.1. RFC 6265 also gives examples that clearly denote
        # the space delimited format. These formats are compliant with RFC 2822.
        #
        # For reference, all involved RFCs are:
        # RFC 822
        # RFC 1123
        # RFC 2109
        # RFC 2616
        # RFC 2822
        # RFC 2965
        # RFC 6265
        expires = "; expires=" +
          rfc2822(value[:expires].clone.gmtime) if value[:expires]
        secure = "; secure"  if value[:secure]
        httponly = "; HttpOnly" if (value.key?(:httponly) ? value[:httponly] : value[:http_only])
        value = value[:value]
      end
      value = [value] unless Array === value
      cookie = escape(key) + "=" +
        value.map { |v| escape v }.join("&") +
        "#{domain}#{path}#{max_age}#{expires}#{secure}#{httponly}"

      case header["Set-Cookie"]
      when nil, ''
        header["Set-Cookie"] = cookie
      when String
        header["Set-Cookie"] = [header["Set-Cookie"], cookie].join("\n")
      when Array
        header["Set-Cookie"] = (header["Set-Cookie"] + [cookie]).join("\n")
      end

      nil
    end
    module_function :set_cookie_header!

    def delete_cookie_header!(header, key, value = {})
      case header["Set-Cookie"]
      when nil, ''
        cookies = []
      when String
        cookies = header["Set-Cookie"].split("\n")
      when Array
        cookies = header["Set-Cookie"]
      end

      cookies.reject! { |cookie|
        if value[:domain]
          cookie =~ /\A#{escape(key)}=.*domain=#{value[:domain]}/
        elsif value[:path]
          cookie =~ /\A#{escape(key)}=.*path=#{value[:path]}/
        else
          cookie =~ /\A#{escape(key)}=/
        end
      }

      header["Set-Cookie"] = cookies.join("\n")

      set_cookie_header!(header, key,
                 {:value => '', :path => nil, :domain => nil,
                   :max_age => '0',
                   :expires => Time.at(0) }.merge(value))

      nil
    end
    module_function :delete_cookie_header!

    # Return the bytesize of String; uses String#size under Ruby 1.8 and
    # String#bytesize under 1.9.
    if ''.respond_to?(:bytesize)
      def bytesize(string)
        string.bytesize
      end
    else
      def bytesize(string)
        string.size
      end
    end
    module_function :bytesize

    def rfc2822(time)
      time.rfc2822
    end
    module_function :rfc2822

    # Modified version of stdlib time.rb Time#rfc2822 to use '%d-%b-%Y' instead
    # of '% %b %Y'.
    # It assumes that the time is in GMT to comply to the RFC 2109.
    #
    # NOTE: I'm not sure the RFC says it requires GMT, but is ambiguous enough
    # that I'm certain someone implemented only that option.
    # Do not use %a and %b from Time.strptime, it would use localized names for
    # weekday and month.
    #
    def rfc2109(time)
      wday = Time::RFC2822_DAY_NAME[time.wday]
      mon = Time::RFC2822_MONTH_NAME[time.mon - 1]
      time.strftime("#{wday}, %d-#{mon}-%Y %H:%M:%S GMT")
    end
    module_function :rfc2109

    # Parses the "Range:" header, if present, into an array of Range objects.
    # Returns nil if the header is missing or syntactically invalid.
    # Returns an empty array if none of the ranges are satisfiable.
    def byte_ranges(env, size)
      # See <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35>
      http_range = env['HTTP_RANGE']
      return nil unless http_range && http_range =~ /bytes=([^;]+)/
      ranges = []
      $1.split(/,\s*/).each do |range_spec|
        return nil  unless range_spec =~ /(\d*)-(\d*)/
        r0,r1 = $1, $2
        if r0.empty?
          return nil  if r1.empty?
          # suffix-byte-range-spec, represents trailing suffix of file
          r0 = size - r1.to_i
          r0 = 0  if r0 < 0
          r1 = size - 1
        else
          r0 = r0.to_i
          if r1.empty?
            r1 = size - 1
          else
            r1 = r1.to_i
            return nil  if r1 < r0  # backwards range is syntactically invalid
            r1 = size-1  if r1 >= size
          end
        end
        ranges << (r0..r1)  if r0 <= r1
      end
      ranges
    end
    module_function :byte_ranges

    # Constant time string comparison.
    #
    # NOTE: the values compared should be of fixed length, such as strings
    # that have already been processed by HMAC. This should not be used
    # on variable length plaintext strings because it could leak length info
    # via timing attacks.
    def secure_compare(a, b)
      return false unless bytesize(a) == bytesize(b)

      l = a.unpack("C*")

      r, i = 0, -1
      b.each_byte { |v| r |= v ^ l[i+=1] }
      r == 0
    end
    module_function :secure_compare

    # Context allows the use of a compatible middleware at different points
    # in a request handling stack. A compatible middleware must define
    # #context which should take the arguments env and app. The first of which
    # would be the request environment. The second of which would be the rack
    # application that the request would be forwarded to.
    class Context
      attr_reader :for, :app

      def initialize(app_f, app_r)
        raise 'running context does not respond to #context' unless app_f.respond_to? :context
        @for, @app = app_f, app_r
      end

      def call(env)
        @for.context(env, @app)
      end

      def recontext(app)
        self.class.new(@for, app)
      end

      def context(env, app=@app)
        recontext(app).call(env)
      end
    end

    # A case-insensitive Hash that preserves the original case of a
    # header when set.
    class HeaderHash < Hash
      def self.new(hash={})
        HeaderHash === hash ? hash : super(hash)
      end

      def initialize(hash={})
        super()
        @names = {}
        hash.each { |k, v| self[k] = v }
      end

      def each
        super do |k, v|
          yield(k, v.respond_to?(:to_ary) ? v.to_ary.join("\n") : v)
        end
      end

      def to_hash
        hash = {}
        each { |k,v| hash[k] = v }
        hash
      end

      def [](k)
        super(k) || super(@names[k.downcase])
      end

      def []=(k, v)
        canonical = k.downcase
        delete k if @names[canonical] && @names[canonical] != k # .delete is expensive, don't invoke it unless necessary
        @names[k] = @names[canonical] = k
        super k, v
      end

      def delete(k)
        canonical = k.downcase
        result = super @names.delete(canonical)
        @names.delete_if { |name,| name.downcase == canonical }
        result
      end

      def include?(k)
        @names.include?(k) || @names.include?(k.downcase)
      end

      alias_method :has_key?, :include?
      alias_method :member?, :include?
      alias_method :key?, :include?

      def merge!(other)
        other.each { |k, v| self[k] = v }
        self
      end

      def merge(other)
        hash = dup
        hash.merge! other
      end

      def replace(other)
        clear
        other.each { |k, v| self[k] = v }
        self
      end
    end

    class KeySpaceConstrainedParams
      def initialize(limit = Utils.key_space_limit)
        @limit  = limit
        @size   = 0
        @params = {}
      end

      def [](key)
        @params[key]
      end

      def []=(key, value)
        @size += key.size if key && !@params.key?(key)
        raise RangeError, 'exceeded available parameter key space' if @size > @limit
        @params[key] = value
      end

      def key?(key)
        @params.key?(key)
      end

      def to_params_hash
        hash = @params
        hash.keys.each do |key|
          value = hash[key]
          if value.kind_of?(self.class)
            if value.object_id == self.object_id
              hash[key] = hash
            else
              hash[key] = value.to_params_hash
            end
          elsif value.kind_of?(Array)
            value.map! {|x| x.kind_of?(self.class) ? x.to_params_hash : x}
          end
        end
        hash
      end
    end

    # Every standard HTTP code mapped to the appropriate message.
    # Generated with:
    # curl -s https://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv | \
    #   ruby -ne 'm = /^(\d{3}),(?!Unassigned|\(Unused\))([^,]+)/.match($_) and \
    #             puts "#{m[1]} => \x27#{m[2].strip}\x27,"'
    HTTP_STATUS_CODES = {
      100 => 'Continue',
      101 => 'Switching Protocols',
      102 => 'Processing',
      200 => 'OK',
      201 => 'Created',
      202 => 'Accepted',
      203 => 'Non-Authoritative Information',
      204 => 'No Content',
      205 => 'Reset Content',
      206 => 'Partial Content',
      207 => 'Multi-Status',
      208 => 'Already Reported',
      226 => 'IM Used',
      300 => 'Multiple Choices',
      301 => 'Moved Permanently',
      302 => 'Found',
      303 => 'See Other',
      304 => 'Not Modified',
      305 => 'Use Proxy',
      307 => 'Temporary Redirect',
      308 => 'Permanent Redirect',
      400 => 'Bad Request',
      401 => 'Unauthorized',
      402 => 'Payment Required',
      403 => 'Forbidden',
      404 => 'Not Found',
      405 => 'Method Not Allowed',
      406 => 'Not Acceptable',
      407 => 'Proxy Authentication Required',
      408 => 'Request Timeout',
      409 => 'Conflict',
      410 => 'Gone',
      411 => 'Length Required',
      412 => 'Precondition Failed',
      413 => 'Payload Too Large',
      414 => 'URI Too Long',
      415 => 'Unsupported Media Type',
      416 => 'Range Not Satisfiable',
      417 => 'Expectation Failed',
      422 => 'Unprocessable Entity',
      423 => 'Locked',
      424 => 'Failed Dependency',
      426 => 'Upgrade Required',
      428 => 'Precondition Required',
      429 => 'Too Many Requests',
      431 => 'Request Header Fields Too Large',
      500 => 'Internal Server Error',
      501 => 'Not Implemented',
      502 => 'Bad Gateway',
      503 => 'Service Unavailable',
      504 => 'Gateway Timeout',
      505 => 'HTTP Version Not Supported',
      506 => 'Variant Also Negotiates',
      507 => 'Insufficient Storage',
      508 => 'Loop Detected',
      510 => 'Not Extended',
      511 => 'Network Authentication Required'
    }

    # Responses with HTTP status codes that should not have an entity body
    STATUS_WITH_NO_ENTITY_BODY = Set.new((100..199).to_a << 204 << 205 << 304)

    SYMBOL_TO_STATUS_CODE = Hash[*HTTP_STATUS_CODES.map { |code, message|
      [message.downcase.gsub(/\s|-|'/, '_').to_sym, code]
    }.flatten]

    def status_code(status)
      if status.is_a?(Symbol)
        SYMBOL_TO_STATUS_CODE[status] || 500
      else
        status.to_i
      end
    end
    module_function :status_code

    Multipart = Rack::Multipart

    PATH_SEPS = Regexp.union(*[::File::SEPARATOR, ::File::ALT_SEPARATOR].compact)

    def clean_path_info(path_info)
      parts = path_info.split PATH_SEPS

      clean = []

      parts.each do |part|
        next if part.empty? || part == '.'
        part == '..' ? clean.pop : clean << part
      end

      clean.unshift '/' if parts.empty? || parts.first.empty?

      ::File.join(*clean)
    end
    module_function :clean_path_info

  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/head.rb000064400000000744150402106500015270 0ustar00require 'rack/body_proxy'

module Rack

class Head
  # Rack::Head returns an empty body for all HEAD requests. It leaves
  # all other requests unchanged.
  def initialize(app)
    @app = app
  end

  def call(env)
    status, headers, body = @app.call(env)

    if env[REQUEST_METHOD] == HEAD
      [
        status, headers, Rack::BodyProxy.new([]) do
          body.close if body.respond_to? :close
        end
      ]
    else
      [status, headers, body]
    end
  end
end

end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/commonlogger.rb000064400000004441150402106500017055 0ustar00require 'rack/body_proxy'

module Rack
  # Rack::CommonLogger forwards every request to the given +app+, and
  # logs a line in the
  # {Apache common log format}[http://httpd.apache.org/docs/1.3/logs.html#common]
  # to the +logger+.
  #
  # If +logger+ is nil, CommonLogger will fall back +rack.errors+, which is
  # an instance of Rack::NullLogger.
  #
  # +logger+ can be any class, including the standard library Logger, and is
  # expected to have either +write+ or +<<+ method, which accepts the CommonLogger::FORMAT.
  # According to the SPEC, the error stream must also respond to +puts+
  # (which takes a single argument that responds to +to_s+), and +flush+
  # (which is called without arguments in order to make the error appear for
  # sure)
  class CommonLogger
    # Common Log Format: http://httpd.apache.org/docs/1.3/logs.html#common
    #
    #   lilith.local - - [07/Aug/2006 23:58:02 -0400] "GET / HTTP/1.1" 500 -
    #
    #   %{%s - %s [%s] "%s %s%s %s" %d %s\n} %
    FORMAT = %{%s - %s [%s] "%s %s%s %s" %d %s %0.4f\n}

    def initialize(app, logger=nil)
      @app = app
      @logger = logger
    end

    def call(env)
      began_at = Time.now
      status, header, body = @app.call(env)
      header = Utils::HeaderHash.new(header)
      body = BodyProxy.new(body) { log(env, status, header, began_at) }
      [status, header, body]
    end

    private

    def log(env, status, header, began_at)
      now = Time.now
      length = extract_content_length(header)

      msg = FORMAT % [
        env['HTTP_X_FORWARDED_FOR'] || env["REMOTE_ADDR"] || "-",
        env["REMOTE_USER"] || "-",
        now.strftime("%d/%b/%Y:%H:%M:%S %z"),
        env[REQUEST_METHOD],
        env[PATH_INFO],
        env[QUERY_STRING].empty? ? "" : "?"+env[QUERY_STRING],
        env["HTTP_VERSION"],
        status.to_s[0..3],
        length,
        now - began_at ]

      logger = @logger || env['rack.errors']
      # Standard library logger doesn't support write but it supports << which actually
      # calls to write on the log device without formatting
      if logger.respond_to?(:write)
        logger.write(msg)
      else
        logger << msg
      end
    end

    def extract_content_length(headers)
      value = headers[CONTENT_LENGTH] or return '-'
      value.to_s == '0' ? '-' : value
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/directory.rb000064400000010310150402106500016361 0ustar00require 'time'
require 'rack/utils'
require 'rack/mime'

module Rack
  # Rack::Directory serves entries below the +root+ given, according to the
  # path info of the Rack request. If a directory is found, the file's contents
  # will be presented in an html based index. If a file is found, the env will
  # be passed to the specified +app+.
  #
  # If +app+ is not specified, a Rack::File of the same +root+ will be used.

  class Directory
    DIR_FILE = "<tr><td class='name'><a href='%s'>%s</a></td><td class='size'>%s</td><td class='type'>%s</td><td class='mtime'>%s</td></tr>"
    DIR_PAGE = <<-PAGE
<html><head>
  <title>%s</title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <style type='text/css'>
table { width:100%%; }
.name { text-align:left; }
.size, .mtime { text-align:right; }
.type { width:11em; }
.mtime { width:15em; }
  </style>
</head><body>
<h1>%s</h1>
<hr />
<table>
  <tr>
    <th class='name'>Name</th>
    <th class='size'>Size</th>
    <th class='type'>Type</th>
    <th class='mtime'>Last Modified</th>
  </tr>
%s
</table>
<hr />
</body></html>
    PAGE

    attr_reader :files
    attr_accessor :root, :path

    def initialize(root, app=nil)
      @root = F.expand_path(root)
      @app = app || Rack::File.new(@root)
    end

    def call(env)
      dup._call(env)
    end

    F = ::File

    def _call(env)
      @env = env
      @script_name = env[SCRIPT_NAME]
      @path_info = Utils.unescape(env[PATH_INFO])

      if forbidden = check_forbidden
        forbidden
      else
        @path = F.join(@root, @path_info)
        list_path
      end
    end

    def check_forbidden
      return unless @path_info.include? ".."

      body = "Forbidden\n"
      size = Rack::Utils.bytesize(body)
      return [403, {"Content-Type" => "text/plain",
        CONTENT_LENGTH => size.to_s,
        "X-Cascade" => "pass"}, [body]]
    end

    def list_directory
      @files = [['../','Parent Directory','','','']]
      glob = F.join(@path, '*')

      url_head = (@script_name.split('/') + @path_info.split('/')).map do |part|
        Rack::Utils.escape part
      end

      Dir[glob].sort.each do |node|
        stat = stat(node)
        next  unless stat
        basename = F.basename(node)
        ext = F.extname(node)

        url = F.join(*url_head + [Rack::Utils.escape(basename)])
        size = stat.size
        type = stat.directory? ? 'directory' : Mime.mime_type(ext)
        size = stat.directory? ? '-' : filesize_format(size)
        mtime = stat.mtime.httpdate
        url << '/'  if stat.directory?
        basename << '/'  if stat.directory?

        @files << [ url, basename, size, type, mtime ]
      end

      return [ 200, { CONTENT_TYPE =>'text/html; charset=utf-8'}, self ]
    end

    def stat(node, max = 10)
      F.stat(node)
    rescue Errno::ENOENT, Errno::ELOOP
      return nil
    end

    # TODO: add correct response if not readable, not sure if 404 is the best
    #       option
    def list_path
      @stat = F.stat(@path)

      if @stat.readable?
        return @app.call(@env) if @stat.file?
        return list_directory if @stat.directory?
      else
        raise Errno::ENOENT, 'No such file or directory'
      end

    rescue Errno::ENOENT, Errno::ELOOP
      return entity_not_found
    end

    def entity_not_found
      body = "Entity not found: #{@path_info}\n"
      size = Rack::Utils.bytesize(body)
      return [404, {"Content-Type" => "text/plain",
        CONTENT_LENGTH => size.to_s,
        "X-Cascade" => "pass"}, [body]]
    end

    def each
      show_path = Rack::Utils.escape_html(@path.sub(/^#{@root}/,''))
      files = @files.map{|f| DIR_FILE % DIR_FILE_escape(*f) }*"\n"
      page  = DIR_PAGE % [ show_path, show_path , files ]
      page.each_line{|l| yield l }
    end

    # Stolen from Ramaze

    FILESIZE_FORMAT = [
      ['%.1fT', 1 << 40],
      ['%.1fG', 1 << 30],
      ['%.1fM', 1 << 20],
      ['%.1fK', 1 << 10],
    ]

    def filesize_format(int)
      FILESIZE_FORMAT.each do |format, size|
        return format % (int.to_f / size) if int >= size
      end

      int.to_s + 'B'
    end

    private
    # Assumes url is already escaped.
    def DIR_FILE_escape url, *html
      [url, *html.map { |e| Utils.escape_html(e) }]
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/backports/uri/common_192.rb000064400000003242150402106500021035 0ustar00# :stopdoc:

# Stolen from ruby core's uri/common.rb @32618ba to fix DoS issues in 1.9.2
#
# https://github.com/ruby/ruby/blob/32618ba7438a2247042bba9b5d85b5d49070f5e5/lib/uri/common.rb
#
# Issue:
# http://redmine.ruby-lang.org/issues/5149
#
# Relevant Fixes:
# https://github.com/ruby/ruby/commit/b5f91deee04aa6ccbe07c23c8222b937c22a799b
# https://github.com/ruby/ruby/commit/93177c1e5c3906abf14472ae0b905d8b5c72ce1b
#
# This should probably be removed once there is a Ruby 1.9.2 patch level that
# includes this fix.

require 'uri/common'

module URI
  TBLDECWWWCOMP_ = {} unless const_defined?(:TBLDECWWWCOMP_)  #:nodoc:
  if TBLDECWWWCOMP_.empty?
    256.times do |i|
      h, l = i>>4, i&15
      TBLDECWWWCOMP_['%%%X%X' % [h, l]] = i.chr
      TBLDECWWWCOMP_['%%%x%X' % [h, l]] = i.chr
      TBLDECWWWCOMP_['%%%X%x' % [h, l]] = i.chr
      TBLDECWWWCOMP_['%%%x%x' % [h, l]] = i.chr
    end
    TBLDECWWWCOMP_['+'] = ' '
    TBLDECWWWCOMP_.freeze
  end

  def self.decode_www_form(str, enc=Encoding::UTF_8)
    return [] if str.empty?
    unless /\A#{WFKV_}=#{WFKV_}(?:[;&]#{WFKV_}=#{WFKV_})*\z/o =~ str
      raise ArgumentError, "invalid data of application/x-www-form-urlencoded (#{str})"
    end
    ary = []
    $&.scan(/([^=;&]+)=([^;&]*)/) do
      ary << [decode_www_form_component($1, enc), decode_www_form_component($2, enc)]
    end
    ary
  end

  def self.decode_www_form_component(str, enc=Encoding::UTF_8)
    raise ArgumentError, "invalid %-encoding (#{str})" unless /\A[^%]*(?:%\h\h[^%]*)*\z/ =~ str
    str.gsub(/\+|%\h\h/, TBLDECWWWCOMP_).force_encoding(enc)
  end

  remove_const :WFKV_ if const_defined?(:WFKV_)
  WFKV_ = '(?:[^%#=;&]*(?:%\h\h[^%#=;&]*)*)' # :nodoc:
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/backports/uri/common_193.rb000064400000001150150402106510021033 0ustar00# :stopdoc:

require 'uri/common'

# Issue:
# http://bugs.ruby-lang.org/issues/5925
#
# Relevant commit:
# https://github.com/ruby/ruby/commit/edb7cdf1eabaff78dfa5ffedfbc2e91b29fa9ca1

module URI
  256.times do |i|
    TBLENCWWWCOMP_[i.chr] = '%%%02X' % i
  end
  TBLENCWWWCOMP_[' '] = '+'
  TBLENCWWWCOMP_.freeze

  256.times do |i|
    h, l = i>>4, i&15
    TBLDECWWWCOMP_['%%%X%X' % [h, l]] = i.chr
    TBLDECWWWCOMP_['%%%x%X' % [h, l]] = i.chr
    TBLDECWWWCOMP_['%%%X%x' % [h, l]] = i.chr
    TBLDECWWWCOMP_['%%%x%x' % [h, l]] = i.chr
  end
  TBLDECWWWCOMP_['+'] = ' '
  TBLDECWWWCOMP_.freeze
end

# :startdoc:
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/backports/uri/common_18.rb000064400000003203150402106510020750 0ustar00# :stopdoc:

# Stolen from ruby core's uri/common.rb, with modifications to support 1.8.x
#
# https://github.com/ruby/ruby/blob/trunk/lib/uri/common.rb
#
#

module URI
  TBLENCWWWCOMP_ = {} # :nodoc:
  256.times do |i|
    TBLENCWWWCOMP_[i.chr] = '%%%02X' % i
  end
  TBLENCWWWCOMP_[' '] = '+'
  TBLENCWWWCOMP_.freeze
  TBLDECWWWCOMP_ = {} # :nodoc:
  256.times do |i|
    h, l = i>>4, i&15
    TBLDECWWWCOMP_['%%%X%X' % [h, l]] = i.chr
    TBLDECWWWCOMP_['%%%x%X' % [h, l]] = i.chr
    TBLDECWWWCOMP_['%%%X%x' % [h, l]] = i.chr
    TBLDECWWWCOMP_['%%%x%x' % [h, l]] = i.chr
  end
  TBLDECWWWCOMP_['+'] = ' '
  TBLDECWWWCOMP_.freeze

  # Encode given +s+ to URL-encoded form data.
  #
  # This method doesn't convert *, -, ., 0-9, A-Z, _, a-z, but does convert SP
  # (ASCII space) to + and converts others to %XX.
  #
  # This is an implementation of
  # http://www.w3.org/TR/html5/forms.html#url-encoded-form-data
  #
  # See URI.decode_www_form_component, URI.encode_www_form
  def self.encode_www_form_component(s)
    str = s.to_s
    if RUBY_VERSION < "1.9" && $KCODE =~ /u/i
      str.gsub(/([^ a-zA-Z0-9_.-]+)/) do
        '%' + $1.unpack('H2' * Rack::Utils.bytesize($1)).join('%').upcase
      end.tr(' ', '+')
    else
      str.gsub(/[^*\-.0-9A-Z_a-z]/) {|m| TBLENCWWWCOMP_[m]}
    end
  end

  # Decode given +str+ of URL-encoded form data.
  #
  # This decodes + to SP.
  #
  # See URI.encode_www_form_component, URI.decode_www_form
  def self.decode_www_form_component(str, enc=nil)
    raise ArgumentError, "invalid %-encoding (#{str})" unless /\A(?:%[0-9a-fA-F]{2}|[^%])*\z/ =~ str
    str.gsub(/\+|%[0-9a-fA-F]{2}/) {|m| TBLDECWWWCOMP_[m]}
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/conditionalget.rb000064400000004773150402106510017401 0ustar00require 'rack/utils'

module Rack

  # Middleware that enables conditional GET using If-None-Match and
  # If-Modified-Since. The application should set either or both of the
  # Last-Modified or Etag response headers according to RFC 2616. When
  # either of the conditions is met, the response body is set to be zero
  # length and the response status is set to 304 Not Modified.
  #
  # Applications that defer response body generation until the body's each
  # message is received will avoid response body generation completely when
  # a conditional GET matches.
  #
  # Adapted from Michael Klishin's Merb implementation:
  # https://github.com/wycats/merb/blob/master/merb-core/lib/merb-core/rack/middleware/conditional_get.rb
  class ConditionalGet
    def initialize(app)
      @app = app
    end

    def call(env)
      case env[REQUEST_METHOD]
      when "GET", "HEAD"
        status, headers, body = @app.call(env)
        headers = Utils::HeaderHash.new(headers)
        if status == 200 && fresh?(env, headers)
          status = 304
          headers.delete(CONTENT_TYPE)
          headers.delete(CONTENT_LENGTH)
          original_body = body
          body = Rack::BodyProxy.new([]) do
            original_body.close if original_body.respond_to?(:close)
          end
        end
        [status, headers, body]
      else
        @app.call(env)
      end
    end

  private

    def fresh?(env, headers)
      modified_since = env['HTTP_IF_MODIFIED_SINCE']
      none_match     = env['HTTP_IF_NONE_MATCH']

      return false unless modified_since || none_match

      success = true
      success &&= modified_since?(to_rfc2822(modified_since), headers) if modified_since
      success &&= etag_matches?(none_match, headers) if none_match
      success
    end

    def etag_matches?(none_match, headers)
      etag = headers['ETag'] and etag == none_match
    end

    def modified_since?(modified_since, headers)
      last_modified = to_rfc2822(headers['Last-Modified']) and
        modified_since and
        modified_since >= last_modified
    end

    def to_rfc2822(since)
      # shortest possible valid date is the obsolete: 1 Nov 97 09:55 A
      # anything shorter is invalid, this avoids exceptions for common cases
      # most common being the empty string
      if since && since.length >= 16
        # NOTE: there is no trivial way to write this in a non execption way
        #   _rfc2822 returns a hash but is not that usable
        Time.rfc2822(since) rescue nil
      else
        nil
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/server.rb000064400000025467150402106510015707 0ustar00require 'optparse'


module Rack

  class Server

    class Options
      def parse!(args)
        options = {}
        opt_parser = OptionParser.new("", 24, '  ') do |opts|
          opts.banner = "Usage: rackup [ruby options] [rack options] [rackup config]"

          opts.separator ""
          opts.separator "Ruby options:"

          lineno = 1
          opts.on("-e", "--eval LINE", "evaluate a LINE of code") { |line|
            eval line, TOPLEVEL_BINDING, "-e", lineno
            lineno += 1
          }

          opts.on("-b", "--builder BUILDER_LINE", "evaluate a BUILDER_LINE of code as a builder script") { |line|
            options[:builder] = line
          }

          opts.on("-d", "--debug", "set debugging flags (set $DEBUG to true)") {
            options[:debug] = true
          }
          opts.on("-w", "--warn", "turn warnings on for your script") {
            options[:warn] = true
          }
          opts.on("-q", "--quiet", "turn off logging") {
            options[:quiet] = true
          }

          opts.on("-I", "--include PATH",
                  "specify $LOAD_PATH (may be used more than once)") { |path|
            (options[:include] ||= []).concat(path.split(":"))
          }

          opts.on("-r", "--require LIBRARY",
                  "require the library, before executing your script") { |library|
            options[:require] = library
          }

          opts.separator ""
          opts.separator "Rack options:"
          opts.on("-s", "--server SERVER", "serve using SERVER (thin/puma/webrick/mongrel)") { |s|
            options[:server] = s
          }

          opts.on("-o", "--host HOST", "listen on HOST (default: localhost)") { |host|
            options[:Host] = host
          }

          opts.on("-p", "--port PORT", "use PORT (default: 9292)") { |port|
            options[:Port] = port
          }

          opts.on("-O", "--option NAME[=VALUE]", "pass VALUE to the server as option NAME. If no VALUE, sets it to true. Run '#{$0} -s SERVER -h' to get a list of options for SERVER") { |name|
            name, value = name.split('=', 2)
            value = true if value.nil?
            options[name.to_sym] = value
          }

          opts.on("-E", "--env ENVIRONMENT", "use ENVIRONMENT for defaults (default: development)") { |e|
            options[:environment] = e
          }

          opts.on("-D", "--daemonize", "run daemonized in the background") { |d|
            options[:daemonize] = d ? true : false
          }

          opts.on("-P", "--pid FILE", "file to store PID") { |f|
            options[:pid] = ::File.expand_path(f)
          }

          opts.separator ""
          opts.separator "Common options:"

          opts.on_tail("-h", "-?", "--help", "Show this message") do
            puts opts
            puts handler_opts(options)

            exit
          end

          opts.on_tail("--version", "Show version") do
            puts "Rack #{Rack.version} (Release: #{Rack.release})"
            exit
          end
        end

        begin
          opt_parser.parse! args
        rescue OptionParser::InvalidOption => e
          warn e.message
          abort opt_parser.to_s
        end

        options[:config] = args.last if args.last
        options
      end

      def handler_opts(options)
        begin
          info = []
          server = Rack::Handler.get(options[:server]) || Rack::Handler.default(options)
          if server && server.respond_to?(:valid_options)
            info << ""
            info << "Server-specific options for #{server.name}:"

            has_options = false
            server.valid_options.each do |name, description|
              next if name.to_s.match(/^(Host|Port)[^a-zA-Z]/) # ignore handler's host and port options, we do our own.
              info << "  -O %-21s %s" % [name, description]
              has_options = true
            end
            return "" if !has_options
          end
          info.join("\n")
        rescue NameError
          return "Warning: Could not find handler specified (#{options[:server] || 'default'}) to determine handler-specific options"
        end
      end
    end

    # Start a new rack server (like running rackup). This will parse ARGV and
    # provide standard ARGV rackup options, defaulting to load 'config.ru'.
    #
    # Providing an options hash will prevent ARGV parsing and will not include
    # any default options.
    #
    # This method can be used to very easily launch a CGI application, for
    # example:
    #
    #  Rack::Server.start(
    #    :app => lambda do |e|
    #      [200, {'Content-Type' => 'text/html'}, ['hello world']]
    #    end,
    #    :server => 'cgi'
    #  )
    #
    # Further options available here are documented on Rack::Server#initialize
    def self.start(options = nil)
      new(options).start
    end

    attr_writer :options

    # Options may include:
    # * :app
    #     a rack application to run (overrides :config)
    # * :config
    #     a rackup configuration file path to load (.ru)
    # * :environment
    #     this selects the middleware that will be wrapped around
    #     your application. Default options available are:
    #       - development: CommonLogger, ShowExceptions, and Lint
    #       - deployment: CommonLogger
    #       - none: no extra middleware
    #     note: when the server is a cgi server, CommonLogger is not included.
    # * :server
    #     choose a specific Rack::Handler, e.g. cgi, fcgi, webrick
    # * :daemonize
    #     if true, the server will daemonize itself (fork, detach, etc)
    # * :pid
    #     path to write a pid file after daemonize
    # * :Host
    #     the host address to bind to (used by supporting Rack::Handler)
    # * :Port
    #     the port to bind to (used by supporting Rack::Handler)
    # * :AccessLog
    #     webrick access log options (or supporting Rack::Handler)
    # * :debug
    #     turn on debug output ($DEBUG = true)
    # * :warn
    #     turn on warnings ($-w = true)
    # * :include
    #     add given paths to $LOAD_PATH
    # * :require
    #     require the given libraries
    def initialize(options = nil)
      @options = options
      @app = options[:app] if options && options[:app]
    end

    def options
      @options ||= parse_options(ARGV)
    end

    def default_options
      environment  = ENV['RACK_ENV'] || 'development'
      default_host = environment == 'development' ? 'localhost' : '0.0.0.0'

      {
        :environment => environment,
        :pid         => nil,
        :Port        => 9292,
        :Host        => default_host,
        :AccessLog   => [],
        :config      => "config.ru"
      }
    end

    def app
      @app ||= options[:builder] ? build_app_from_string : build_app_and_options_from_config
    end

    class << self
      def logging_middleware
        lambda { |server|
          server.server.name =~ /CGI/ || server.options[:quiet] ? nil : [Rack::CommonLogger, $stderr]
        }
      end

      def default_middleware_by_environment
        m = Hash.new {|h,k| h[k] = []}
        m["deployment"] = [
          [Rack::ContentLength],
          [Rack::Chunked],
          logging_middleware,
          [Rack::TempfileReaper]
        ]
        m["development"] = [
          [Rack::ContentLength],
          [Rack::Chunked],
          logging_middleware,
          [Rack::ShowExceptions],
          [Rack::Lint],
          [Rack::TempfileReaper]
        ]

        m
      end

      def middleware
        default_middleware_by_environment
      end
    end

    def middleware
      self.class.middleware
    end

    def start &blk
      if options[:warn]
        $-w = true
      end

      if includes = options[:include]
        $LOAD_PATH.unshift(*includes)
      end

      if library = options[:require]
        require library
      end

      if options[:debug]
        $DEBUG = true
        require 'pp'
        p options[:server]
        pp wrapped_app
        pp app
      end

      check_pid! if options[:pid]

      # Touch the wrapped app, so that the config.ru is loaded before
      # daemonization (i.e. before chdir, etc).
      wrapped_app

      daemonize_app if options[:daemonize]

      write_pid if options[:pid]

      trap(:INT) do
        if server.respond_to?(:shutdown)
          server.shutdown
        else
          exit
        end
      end

      server.run wrapped_app, options, &blk
    end

    def server
      @_server ||= Rack::Handler.get(options[:server]) || Rack::Handler.default(options)
    end

    private
      def build_app_and_options_from_config
        if !::File.exist? options[:config]
          abort "configuration #{options[:config]} not found"
        end

        app, options = Rack::Builder.parse_file(self.options[:config], opt_parser)
        self.options.merge! options
        app
      end

      def build_app_from_string
        Rack::Builder.new_from_string(self.options[:builder])
      end

      def parse_options(args)
        options = default_options

        # Don't evaluate CGI ISINDEX parameters.
        # http://www.meb.uni-bonn.de/docs/cgi/cl.html
        args.clear if ENV.include?(REQUEST_METHOD)

        options.merge! opt_parser.parse!(args)
        options[:config] = ::File.expand_path(options[:config])
        ENV["RACK_ENV"] = options[:environment]
        options
      end

      def opt_parser
        Options.new
      end

      def build_app(app)
        middleware[options[:environment]].reverse_each do |middleware|
          middleware = middleware.call(self) if middleware.respond_to?(:call)
          next unless middleware
          klass, *args = middleware
          app = klass.new(app, *args)
        end
        app
      end

      def wrapped_app
        @wrapped_app ||= build_app app
      end

      def daemonize_app
        if RUBY_VERSION < "1.9"
          exit if fork
          Process.setsid
          exit if fork
          Dir.chdir "/"
          STDIN.reopen "/dev/null"
          STDOUT.reopen "/dev/null", "a"
          STDERR.reopen "/dev/null", "a"
        else
          Process.daemon
        end
      end

      def write_pid
        ::File.open(options[:pid], ::File::CREAT | ::File::EXCL | ::File::WRONLY ){ |f| f.write("#{Process.pid}") }
        at_exit { ::File.delete(options[:pid]) if ::File.exist?(options[:pid]) }
      rescue Errno::EEXIST
        check_pid!
        retry
      end

      def check_pid!
        case pidfile_process_status
        when :running, :not_owned
          $stderr.puts "A server is already running. Check #{options[:pid]}."
          exit(1)
        when :dead
          ::File.delete(options[:pid])
        end
      end

      def pidfile_process_status
        return :exited unless ::File.exist?(options[:pid])

        pid = ::File.read(options[:pid]).to_i
        return :dead if pid == 0

        Process.kill(0, pid)
        :running
      rescue Errno::ESRCH
        :dead
      rescue Errno::EPERM
        :not_owned
      end

  end

end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/reloader.rb000064400000005742150402106510016170 0ustar00#          Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
#       Rack::Reloader is subject to the terms of an MIT-style license.
#      See COPYING or http://www.opensource.org/licenses/mit-license.php.

require 'pathname'

module Rack

  # High performant source reloader
  #
  # This class acts as Rack middleware.
  #
  # What makes it especially suited for use in a production environment is that
  # any file will only be checked once and there will only be made one system
  # call stat(2).
  #
  # Please note that this will not reload files in the background, it does so
  # only when actively called.
  #
  # It is performing a check/reload cycle at the start of every request, but
  # also respects a cool down time, during which nothing will be done.
  class Reloader
    def initialize(app, cooldown = 10, backend = Stat)
      @app = app
      @cooldown = cooldown
      @last = (Time.now - cooldown)
      @cache = {}
      @mtimes = {}

      extend backend
    end

    def call(env)
      if @cooldown and Time.now > @last + @cooldown
        if Thread.list.size > 1
          Thread.exclusive{ reload! }
        else
          reload!
        end

        @last = Time.now
      end

      @app.call(env)
    end

    def reload!(stderr = $stderr)
      rotation do |file, mtime|
        previous_mtime = @mtimes[file] ||= mtime
        safe_load(file, mtime, stderr) if mtime > previous_mtime
      end
    end

    # A safe Kernel::load, issuing the hooks depending on the results
    def safe_load(file, mtime, stderr = $stderr)
      load(file)
      stderr.puts "#{self.class}: reloaded `#{file}'"
      file
    rescue LoadError, SyntaxError => ex
      stderr.puts ex
    ensure
      @mtimes[file] = mtime
    end

    module Stat
      def rotation
        files = [$0, *$LOADED_FEATURES].uniq
        paths = ['./', *$LOAD_PATH].uniq

        files.map{|file|
          next if file =~ /\.(so|bundle)$/ # cannot reload compiled files

          found, stat = figure_path(file, paths)
          next unless found && stat && mtime = stat.mtime

          @cache[file] = found

          yield(found, mtime)
        }.compact
      end

      # Takes a relative or absolute +file+ name, a couple possible +paths+ that
      # the +file+ might reside in. Returns the full path and File::Stat for the
      # path.
      def figure_path(file, paths)
        found = @cache[file]
        found = file if !found and Pathname.new(file).absolute?
        found, stat = safe_stat(found)
        return found, stat if found

        paths.find do |possible_path|
          path = ::File.join(possible_path, file)
          found, stat = safe_stat(path)
          return ::File.expand_path(found), stat if found
        end

        return false, false
      end

      def safe_stat(file)
        return unless file
        stat = ::File.stat(file)
        return file, stat if stat.file?
      rescue Errno::ENOENT, Errno::ENOTDIR, Errno::ESRCH
        @cache.delete(file) and false
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/etag.rb000064400000004160150402106510015304 0ustar00require 'digest/md5'

module Rack
  # Automatically sets the ETag header on all String bodies.
  #
  # The ETag header is skipped if ETag or Last-Modified headers are sent or if
  # a sendfile body (body.responds_to :to_path) is given (since such cases
  # should be handled by apache/nginx).
  #
  # On initialization, you can pass two parameters: a Cache-Control directive
  # used when Etag is absent and a directive when it is present. The first
  # defaults to nil, while the second defaults to "max-age=0, private, must-revalidate"
  class ETag
    ETAG_STRING = 'ETag'.freeze
    DEFAULT_CACHE_CONTROL = "max-age=0, private, must-revalidate".freeze

    def initialize(app, no_cache_control = nil, cache_control = DEFAULT_CACHE_CONTROL)
      @app = app
      @cache_control = cache_control
      @no_cache_control = no_cache_control
    end

    def call(env)
      status, headers, body = @app.call(env)

      if etag_status?(status) && etag_body?(body) && !skip_caching?(headers)
        original_body = body
        digest, new_body = digest_body(body)
        body = Rack::BodyProxy.new(new_body) do
          original_body.close if original_body.respond_to?(:close)
        end
        headers[ETAG_STRING] = %(W/"#{digest}") if digest
      end

      unless headers[CACHE_CONTROL]
        if digest
          headers[CACHE_CONTROL] = @cache_control if @cache_control
        else
          headers[CACHE_CONTROL] = @no_cache_control if @no_cache_control
        end
      end

      [status, headers, body]
    end

    private

      def etag_status?(status)
        status == 200 || status == 201
      end

      def etag_body?(body)
        !body.respond_to?(:to_path)
      end

      def skip_caching?(headers)
        (headers[CACHE_CONTROL] && headers[CACHE_CONTROL].include?('no-cache')) ||
          headers.key?(ETAG_STRING) || headers.key?('Last-Modified')
      end

      def digest_body(body)
        parts = []
        digest = nil

        body.each do |part|
          parts << part
          (digest ||= Digest::MD5.new) << part unless part.empty?
        end

        [digest && digest.hexdigest, parts]
      end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/static.rb000064400000011612150402106510015653 0ustar00module Rack

  # The Rack::Static middleware intercepts requests for static files
  # (javascript files, images, stylesheets, etc) based on the url prefixes or
  # route mappings passed in the options, and serves them using a Rack::File
  # object. This allows a Rack stack to serve both static and dynamic content.
  #
  # Examples:
  #
  # Serve all requests beginning with /media from the "media" folder located
  # in the current directory (ie media/*):
  #
  #     use Rack::Static, :urls => ["/media"]
  #
  # Serve all requests beginning with /css or /images from the folder "public"
  # in the current directory (ie public/css/* and public/images/*):
  #
  #     use Rack::Static, :urls => ["/css", "/images"], :root => "public"
  #
  # Serve all requests to / with "index.html" from the folder "public" in the
  # current directory (ie public/index.html):
  #
  #     use Rack::Static, :urls => {"/" => 'index.html'}, :root => 'public'
  #
  # Serve all requests normally from the folder "public" in the current
  # directory but uses index.html as default route for "/"
  #
  #     use Rack::Static, :urls => [""], :root => 'public', :index =>
  #     'index.html'
  #
  # Set custom HTTP Headers for based on rules:
  #
  #     use Rack::Static, :root => 'public',
  #         :header_rules => [
  #           [rule, {header_field => content, header_field => content}],
  #           [rule, {header_field => content}]
  #         ]
  #
  #  Rules for selecting files:
  #
  #  1) All files
  #     Provide the :all symbol
  #     :all => Matches every file
  #
  #  2) Folders
  #     Provide the folder path as a string
  #     '/folder' or '/folder/subfolder' => Matches files in a certain folder
  #
  #  3) File Extensions
  #     Provide the file extensions as an array
  #     ['css', 'js'] or %w(css js) => Matches files ending in .css or .js
  #
  #  4) Regular Expressions / Regexp
  #     Provide a regular expression
  #     %r{\.(?:css|js)\z} => Matches files ending in .css or .js
  #     /\.(?:eot|ttf|otf|woff2|woff|svg)\z/ => Matches files ending in
  #       the most common web font formats (.eot, .ttf, .otf, .woff2, .woff, .svg)
  #       Note: This Regexp is available as a shortcut, using the :fonts rule
  #
  #  5) Font Shortcut
  #     Provide the :fonts symbol
  #     :fonts => Uses the Regexp rule stated right above to match all common web font endings
  #
  #  Rule Ordering:
  #    Rules are applied in the order that they are provided.
  #    List rather general rules above special ones.
  #
  #  Complete example use case including HTTP header rules:
  #
  #     use Rack::Static, :root => 'public',
  #         :header_rules => [
  #           # Cache all static files in public caches (e.g. Rack::Cache)
  #           #  as well as in the browser
  #           [:all, {'Cache-Control' => 'public, max-age=31536000'}],
  #
  #           # Provide web fonts with cross-origin access-control-headers
  #           #  Firefox requires this when serving assets using a Content Delivery Network
  #           [:fonts, {'Access-Control-Allow-Origin' => '*'}]
  #         ]
  #
  class Static

    def initialize(app, options={})
      @app = app
      @urls = options[:urls] || ["/favicon.ico"]
      @index = options[:index]
      root = options[:root] || Dir.pwd

      # HTTP Headers
      @header_rules = options[:header_rules] || []
      # Allow for legacy :cache_control option while prioritizing global header_rules setting
      @header_rules.insert(0, [:all, {'Cache-Control' => options[:cache_control]}]) if options[:cache_control]

      @file_server = Rack::File.new(root)
    end

    def overwrite_file_path(path)
      @urls.kind_of?(Hash) && @urls.key?(path) || @index && path =~ /\/$/
    end

    def route_file(path)
      @urls.kind_of?(Array) && @urls.any? { |url| path.index(url) == 0 }
    end

    def can_serve(path)
      route_file(path) || overwrite_file_path(path)
    end

    def call(env)
      path = env[PATH_INFO]

      if can_serve(path)
        env["PATH_INFO"] = (path =~ /\/$/ ? path + @index : @urls[path]) if overwrite_file_path(path)
        path = env["PATH_INFO"]
        response = @file_server.call(env)

        headers = response[1]
        applicable_rules(path).each do |rule, new_headers|
          new_headers.each { |field, content| headers[field] = content }
        end

        response
      else
        @app.call(env)
      end
    end

    # Convert HTTP header rules to HTTP headers
    def applicable_rules(path)
      @header_rules.find_all do |rule, new_headers|
        case rule
        when :all
          true
        when :fonts
          path =~ /\.(?:ttf|otf|eot|woff2|woff|svg)\z/
        when String
          path = ::Rack::Utils.unescape(path)
          path.start_with?(rule) || path.start_with?('/' + rule)
        when Array
          path =~ /\.(#{rule.join('|')})\z/
        when Regexp
          path =~ rule
        else
          false
        end
      end
    end

  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/multipart/generator.rb000064400000004405150402106510020375 0ustar00module Rack
  module Multipart
    class Generator
      def initialize(params, first = true)
        @params, @first = params, first

        if @first && !@params.is_a?(Hash)
          raise ArgumentError, "value must be a Hash"
        end
      end

      def dump
        return nil if @first && !multipart?
        return flattened_params if !@first

        flattened_params.map do |name, file|
          if file.respond_to?(:original_filename)
            ::File.open(file.path, "rb") do |f|
              f.set_encoding(Encoding::BINARY) if f.respond_to?(:set_encoding)
              content_for_tempfile(f, file, name)
            end
          else
            content_for_other(file, name)
          end
        end.join + "--#{MULTIPART_BOUNDARY}--\r"
      end

      private
      def multipart?
        multipart = false

        query = lambda { |value|
          case value
          when Array
            value.each(&query)
          when Hash
            value.values.each(&query)
          when Rack::Multipart::UploadedFile
            multipart = true
          end
        }
        @params.values.each(&query)

        multipart
      end

      def flattened_params
        @flattened_params ||= begin
          h = Hash.new
          @params.each do |key, value|
            k = @first ? key.to_s : "[#{key}]"

            case value
            when Array
              value.map { |v|
                Multipart.build_multipart(v, false).each { |subkey, subvalue|
                  h["#{k}[]#{subkey}"] = subvalue
                }
              }
            when Hash
              Multipart.build_multipart(value, false).each { |subkey, subvalue|
                h[k + subkey] = subvalue
              }
            else
              h[k] = value
            end
          end
          h
        end
      end

      def content_for_tempfile(io, file, name)
<<-EOF
--#{MULTIPART_BOUNDARY}\r
Content-Disposition: form-data; name="#{name}"; filename="#{Utils.escape(file.original_filename)}"\r
Content-Type: #{file.content_type}\r
Content-Length: #{::File.stat(file.path).size}\r
\r
#{io.read}\r
EOF
      end

      def content_for_other(file, name)
<<-EOF
--#{MULTIPART_BOUNDARY}\r
Content-Disposition: form-data; name="#{name}"\r
\r
#{file}\r
EOF
      end
    end
  end
endlib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/multipart/uploaded_file.rb000064400000002042150402106510021176 0ustar00module Rack
  module Multipart
    class UploadedFile
      # The filename, *not* including the path, of the "uploaded" file
      attr_reader :original_filename

      # The content type of the "uploaded" file
      attr_accessor :content_type

      def initialize(path, content_type = "text/plain", binary = false)
        raise "#{path} file does not exist" unless ::File.exist?(path)
        @content_type = content_type
        @original_filename = ::File.basename(path)
        @tempfile = Tempfile.new([@original_filename, ::File.extname(path)])
        @tempfile.set_encoding(Encoding::BINARY) if @tempfile.respond_to?(:set_encoding)
        @tempfile.binmode if binary
        FileUtils.copy_file(path, @tempfile.path)
      end

      def path
        @tempfile.path
      end
      alias_method :local_path, :path

      def respond_to?(*args)
        super or @tempfile.respond_to?(*args)
      end

      def method_missing(method_name, *args, &block) #:nodoc:
        @tempfile.__send__(method_name, *args, &block)
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/multipart/parser.rb000064400000016654150402106510017714 0ustar00require 'rack/utils'

module Rack
  module Multipart
    class MultipartPartLimitError < Errno::EMFILE; end

    class Parser
      BUFSIZE = 16384

      DUMMY = Struct.new(:parse).new

      def self.create(env)
        return DUMMY unless env['CONTENT_TYPE'] =~ MULTIPART

        io = env['rack.input']
        io.rewind

        content_length = env['CONTENT_LENGTH']
        content_length = content_length.to_i if content_length

        tempfile = env['rack.multipart.tempfile_factory'] ||
          lambda { |filename, content_type| Tempfile.new(["RackMultipart", ::File.extname(filename)]) }
        bufsize = env['rack.multipart.buffer_size'] || BUFSIZE

        new($1, io, content_length, env, tempfile, bufsize)
      end

      def initialize(boundary, io, content_length, env, tempfile, bufsize)
        @buf            = ""

        if @buf.respond_to? :force_encoding
          @buf.force_encoding Encoding::ASCII_8BIT
        end

        @params         = Utils::KeySpaceConstrainedParams.new
        @boundary       = "--#{boundary}"
        @io             = io
        @content_length = content_length
        @boundary_size  = Utils.bytesize(@boundary) + EOL.size
        @env = env
        @tempfile       = tempfile
        @bufsize        = bufsize

        if @content_length
          @content_length -= @boundary_size
        end

        @rx = /(?:#{EOL})?#{Regexp.quote(@boundary)}(#{EOL}|--)/n
        @full_boundary = @boundary + EOL
      end

      def parse
        fast_forward_to_first_boundary

        opened_files = 0
        loop do

          head, filename, content_type, name, body =
            get_current_head_and_filename_and_content_type_and_name_and_body

          if Utils.multipart_part_limit > 0
            opened_files += 1 if filename
            raise MultipartPartLimitError, 'Maximum file multiparts in content reached' if opened_files >= Utils.multipart_part_limit
          end

          # Save the rest.
          if i = @buf.index(rx)
            body << @buf.slice!(0, i)
            @buf.slice!(0, @boundary_size+2)

            @content_length = -1  if $1 == "--"
          end

          get_data(filename, body, content_type, name, head) do |data|
            tag_multipart_encoding(filename, content_type, name, data)

            Utils.normalize_params(@params, name, data)
          end

          # break if we're at the end of a buffer, but not if it is the end of a field
          break if (@buf.empty? && $1 != EOL) || @content_length == -1
        end

        @io.rewind

        @params.to_params_hash
      end

      private
      def full_boundary; @full_boundary; end

      def rx; @rx; end

      def fast_forward_to_first_boundary
        loop do
          content = @io.read(@bufsize)
          raise EOFError, "bad content body" unless content
          @buf << content

          while @buf.gsub!(/\A([^\n]*\n)/, '')
            read_buffer = $1
            return if read_buffer == full_boundary
          end

          raise EOFError, "bad content body" if Utils.bytesize(@buf) >= @bufsize
        end
      end

      def get_current_head_and_filename_and_content_type_and_name_and_body
        head = nil
        body = ''

        if body.respond_to? :force_encoding
          body.force_encoding Encoding::ASCII_8BIT
        end

        filename = content_type = name = nil

        until head && @buf =~ rx
          if !head && i = @buf.index(EOL+EOL)
            head = @buf.slice!(0, i+2) # First \r\n

            @buf.slice!(0, 2)          # Second \r\n

            content_type = head[MULTIPART_CONTENT_TYPE, 1]
            name = head[MULTIPART_CONTENT_DISPOSITION, 1] || head[MULTIPART_CONTENT_ID, 1]

            filename = get_filename(head)

            if name.nil? || name.empty? && filename
              name = filename
            end

            if filename
              (@env['rack.tempfiles'] ||= []) << body = @tempfile.call(filename, content_type)
              body.binmode  if body.respond_to?(:binmode)
            end

            next
          end

          # Save the read body part.
          if head && (@boundary_size+4 < @buf.size)
            body << @buf.slice!(0, @buf.size - (@boundary_size+4))
          end

          content = @io.read(@content_length && @bufsize >= @content_length ? @content_length : @bufsize)
          raise EOFError, "bad content body"  if content.nil? || content.empty?

          @buf << content
          @content_length -= content.size if @content_length
        end

        [head, filename, content_type, name, body]
      end

      def get_filename(head)
        filename = nil
        case head
        when RFC2183
          filename = Hash[head.scan(DISPPARM)]['filename']
          filename = $1 if filename and filename =~ /^"(.*)"$/
        when BROKEN_QUOTED, BROKEN_UNQUOTED
          filename = $1
        end

        return unless filename

        if filename.scan(/%.?.?/).all? { |s| s =~ /%[0-9a-fA-F]{2}/ }
          filename = Utils.unescape(filename)
        end

        scrub_filename filename

        if filename !~ /\\[^\\"]/
          filename = filename.gsub(/\\(.)/, '\1')
        end
        filename
      end

      if "<3".respond_to? :valid_encoding?
        def scrub_filename(filename)
          unless filename.valid_encoding?
            # FIXME: this force_encoding is for Ruby 2.0 and 1.9 support.
            # We can remove it after they are dropped
            filename.force_encoding(Encoding::ASCII_8BIT)
            filename.encode!(:invalid => :replace, :undef => :replace)
          end
        end

        CHARSET    = "charset"
        TEXT_PLAIN = "text/plain"

        def tag_multipart_encoding(filename, content_type, name, body)
          name.force_encoding Encoding::UTF_8

          return if filename

          encoding = Encoding::UTF_8

          if content_type
            list         = content_type.split(';')
            type_subtype = list.first
            type_subtype.strip!
            if TEXT_PLAIN == type_subtype
              rest         = list.drop 1
              rest.each do |param|
                k,v = param.split('=', 2)
                k.strip!
                v.strip!
                encoding = Encoding.find v if k == CHARSET
              end
            end
          end

          name.force_encoding encoding
          body.force_encoding encoding
        end
      else
        def scrub_filename(filename)
        end
        def tag_multipart_encoding(filename, content_type, name, body)
        end
      end

      def get_data(filename, body, content_type, name, head)
        data = body
        if filename == ""
          # filename is blank which means no file has been selected
          return
        elsif filename
          body.rewind if body.respond_to?(:rewind)

          # Take the basename of the upload's original filename.
          # This handles the full Windows paths given by Internet Explorer
          # (and perhaps other broken user agents) without affecting
          # those which give the lone filename.
          filename = filename.split(/[\/\\]/).last

          data = {:filename => filename, :type => content_type,
                  :name => name, :tempfile => body, :head => head}
        elsif !filename && content_type && body.is_a?(IO)
          body.rewind

          # Generic multipart cases, not coming from a form
          data = {:type => content_type,
                  :name => name, :tempfile => body, :head => head}
        end

        yield data
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/showstatus.rb000064400000006724150402106510016620 0ustar00require 'erb'
require 'rack/request'
require 'rack/utils'

module Rack
  # Rack::ShowStatus catches all empty responses and replaces them
  # with a site explaining the error.
  #
  # Additional details can be put into <tt>rack.showstatus.detail</tt>
  # and will be shown as HTML.  If such details exist, the error page
  # is always rendered, even if the reply was not empty.

  class ShowStatus
    def initialize(app)
      @app = app
      @template = ERB.new(TEMPLATE)
    end

    def call(env)
      status, headers, body = @app.call(env)
      headers = Utils::HeaderHash.new(headers)
      empty = headers[CONTENT_LENGTH].to_i <= 0

      # client or server error, or explicit message
      if (status.to_i >= 400 && empty) || env["rack.showstatus.detail"]
        # This double assignment is to prevent an "unused variable" warning on
        # Ruby 1.9.3.  Yes, it is dumb, but I don't like Ruby yelling at me.
        req = req = Rack::Request.new(env)

        message = Rack::Utils::HTTP_STATUS_CODES[status.to_i] || status.to_s

        # This double assignment is to prevent an "unused variable" warning on
        # Ruby 1.9.3.  Yes, it is dumb, but I don't like Ruby yelling at me.
        detail = detail = env["rack.showstatus.detail"] || message

        body = @template.result(binding)
        size = Rack::Utils.bytesize(body)
        [status, headers.merge(CONTENT_TYPE => "text/html", CONTENT_LENGTH => size.to_s), [body]]
      else
        [status, headers, body]
      end
    end

    def h(obj)                  # :nodoc:
      case obj
      when String
        Utils.escape_html(obj)
      else
        Utils.escape_html(obj.inspect)
      end
    end

    # :stopdoc:

# adapted from Django <djangoproject.com>
# Copyright (c) 2005, the Lawrence Journal-World
# Used under the modified BSD license:
# http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5
TEMPLATE = <<'HTML'
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <title><%=h message %> at <%=h req.script_name + req.path_info %></title>
  <meta name="robots" content="NONE,NOARCHIVE" />
  <style type="text/css">
    html * { padding:0; margin:0; }
    body * { padding:10px 20px; }
    body * * { padding:0; }
    body { font:small sans-serif; background:#eee; }
    body>div { border-bottom:1px solid #ddd; }
    h1 { font-weight:normal; margin-bottom:.4em; }
    h1 span { font-size:60%; color:#666; font-weight:normal; }
    table { border:none; border-collapse: collapse; width:100%; }
    td, th { vertical-align:top; padding:2px 3px; }
    th { width:12em; text-align:right; color:#666; padding-right:.5em; }
    #info { background:#f6f6f6; }
    #info ol { margin: 0.5em 4em; }
    #info ol li { font-family: monospace; }
    #summary { background: #ffc; }
    #explanation { background:#eee; border-bottom: 0px none; }
  </style>
</head>
<body>
  <div id="summary">
    <h1><%=h message %> <span>(<%= status.to_i %>)</span></h1>
    <table class="meta">
      <tr>
        <th>Request Method:</th>
        <td><%=h req.request_method %></td>
      </tr>
      <tr>
        <th>Request URL:</th>
      <td><%=h req.url %></td>
      </tr>
    </table>
  </div>
  <div id="info">
    <p><%=h detail %></p>
  </div>

  <div id="explanation">
    <p>
    You're seeing this error because you use <code>Rack::ShowStatus</code>.
    </p>
  </div>
</body>
</html>
HTML

    # :startdoc:
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/utils/okjson.rb000064400000033467150402106510017043 0ustar00# encoding: UTF-8
#
# Copyright 2011, 2012 Keith Rarick
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.

# See https://github.com/kr/okjson for updates.

require 'stringio'

# Some parts adapted from
# https://golang.org/src/encoding/json/decode.go and
# https://golang.org/src/unicode/utf8/utf8.go
module Rack::Utils::OkJson
  Upstream = '43'
  extend self


  # Decodes a json document in string s and
  # returns the corresponding ruby value.
  # String s must be valid UTF-8. If you have
  # a string in some other encoding, convert
  # it first.
  #
  # String values in the resulting structure
  # will be UTF-8.
  def decode(s)
    ts = lex(s)
    v, ts = textparse(ts)
    if ts.length > 0
      raise Error, 'trailing garbage'
    end
    v
  end


  # Encodes x into a json text. It may contain only
  # Array, Hash, String, Numeric, true, false, nil.
  # (Note, this list excludes Symbol.)
  # X itself must be an Array or a Hash.
  # No other value can be encoded, and an error will
  # be raised if x contains any other value, such as
  # Nan, Infinity, Symbol, and Proc, or if a Hash key
  # is not a String.
  # Strings contained in x must be valid UTF-8.
  def encode(x)
    case x
    when Hash    then objenc(x)
    when Array   then arrenc(x)
    else
      raise Error, 'root value must be an Array or a Hash'
    end
  end


  def valenc(x)
    case x
    when Hash    then objenc(x)
    when Array   then arrenc(x)
    when String  then strenc(x)
    when Numeric then numenc(x)
    when true    then "true"
    when false   then "false"
    when nil     then "null"
    else
      raise Error, "cannot encode #{x.class}: #{x.inspect}"
    end
  end


private


  # Parses a "json text" in the sense of RFC 4627.
  # Returns the parsed value and any trailing tokens.
  # Note: this is almost the same as valparse,
  # except that it does not accept atomic values.
  def textparse(ts)
    if ts.length <= 0
      raise Error, 'empty'
    end

    typ, _, val = ts[0]
    case typ
    when '{' then objparse(ts)
    when '[' then arrparse(ts)
    else
      raise Error, "unexpected #{val.inspect}"
    end
  end


  # Parses a "value" in the sense of RFC 4627.
  # Returns the parsed value and any trailing tokens.
  def valparse(ts)
    if ts.length <= 0
      raise Error, 'empty'
    end

    typ, _, val = ts[0]
    case typ
    when '{' then objparse(ts)
    when '[' then arrparse(ts)
    when :val,:str then [val, ts[1..-1]]
    else
      raise Error, "unexpected #{val.inspect}"
    end
  end


  # Parses an "object" in the sense of RFC 4627.
  # Returns the parsed value and any trailing tokens.
  def objparse(ts)
    ts = eat('{', ts)
    obj = {}

    if ts[0][0] == '}'
      return obj, ts[1..-1]
    end

    k, v, ts = pairparse(ts)
    obj[k] = v

    if ts[0][0] == '}'
      return obj, ts[1..-1]
    end

    loop do
      ts = eat(',', ts)

      k, v, ts = pairparse(ts)
      obj[k] = v

      if ts[0][0] == '}'
        return obj, ts[1..-1]
      end
    end
  end


  # Parses a "member" in the sense of RFC 4627.
  # Returns the parsed values and any trailing tokens.
  def pairparse(ts)
    (typ, _, k), ts = ts[0], ts[1..-1]
    if typ != :str
      raise Error, "unexpected #{k.inspect}"
    end
    ts = eat(':', ts)
    v, ts = valparse(ts)
    [k, v, ts]
  end


  # Parses an "array" in the sense of RFC 4627.
  # Returns the parsed value and any trailing tokens.
  def arrparse(ts)
    ts = eat('[', ts)
    arr = []

    if ts[0][0] == ']'
      return arr, ts[1..-1]
    end

    v, ts = valparse(ts)
    arr << v

    if ts[0][0] == ']'
      return arr, ts[1..-1]
    end

    loop do
      ts = eat(',', ts)

      v, ts = valparse(ts)
      arr << v

      if ts[0][0] == ']'
        return arr, ts[1..-1]
      end
    end
  end


  def eat(typ, ts)
    if ts[0][0] != typ
      raise Error, "expected #{typ} (got #{ts[0].inspect})"
    end
    ts[1..-1]
  end


  # Scans s and returns a list of json tokens,
  # excluding white space (as defined in RFC 4627).
  def lex(s)
    ts = []
    while s.length > 0
      typ, lexeme, val = tok(s)
      if typ == nil
        raise Error, "invalid character at #{s[0,10].inspect}"
      end
      if typ != :space
        ts << [typ, lexeme, val]
      end
      s = s[lexeme.length..-1]
    end
    ts
  end


  # Scans the first token in s and
  # returns a 3-element list, or nil
  # if s does not begin with a valid token.
  #
  # The first list element is one of
  # '{', '}', ':', ',', '[', ']',
  # :val, :str, and :space.
  #
  # The second element is the lexeme.
  #
  # The third element is the value of the
  # token for :val and :str, otherwise
  # it is the lexeme.
  def tok(s)
    case s[0]
    when ?{ then ['{', s[0,1], s[0,1]]
    when ?} then ['}', s[0,1], s[0,1]]
    when ?: then [':', s[0,1], s[0,1]]
    when ?, then [',', s[0,1], s[0,1]]
    when ?[ then ['[', s[0,1], s[0,1]]
    when ?] then [']', s[0,1], s[0,1]]
    when ?n then nulltok(s)
    when ?t then truetok(s)
    when ?f then falsetok(s)
    when ?" then strtok(s)
    when Spc, ?\t, ?\n, ?\r then [:space, s[0,1], s[0,1]]
    else
      numtok(s)
    end
  end


  def nulltok(s);  s[0,4] == 'null'  ? [:val, 'null',  nil]   : [] end
  def truetok(s);  s[0,4] == 'true'  ? [:val, 'true',  true]  : [] end
  def falsetok(s); s[0,5] == 'false' ? [:val, 'false', false] : [] end


  def numtok(s)
    m = /-?([1-9][0-9]+|[0-9])([.][0-9]+)?([eE][+-]?[0-9]+)?/.match(s)
    if m && m.begin(0) == 0
      if !m[2] && !m[3]
        [:val, m[0], Integer(m[0])]
      elsif m[2]
        [:val, m[0], Float(m[0])]
      else
        [:val, m[0], Integer(m[1])*(10**m[3][1..-1].to_i(10))]
      end
    else
      []
    end
  end


  def strtok(s)
    m = /"([^"\\]|\\["\/\\bfnrt]|\\u[0-9a-fA-F]{4})*"/.match(s)
    if ! m
      raise Error, "invalid string literal at #{abbrev(s)}"
    end
    [:str, m[0], unquote(m[0])]
  end


  def abbrev(s)
    t = s[0,10]
    p = t['`']
    t = t[0,p] if p
    t = t + '...' if t.length < s.length
    '`' + t + '`'
  end


  # Converts a quoted json string literal q into a UTF-8-encoded string.
  # The rules are different than for Ruby, so we cannot use eval.
  # Unquote will raise an error if q contains control characters.
  def unquote(q)
    q = q[1...-1]
    a = q.dup # allocate a big enough string
    # In ruby >= 1.9, a[w] is a codepoint, not a byte.
    if rubydoesenc?
      a.force_encoding('UTF-8')
    end
    r, w = 0, 0
    while r < q.length
      c = q[r]
      if c == ?\\
        r += 1
        if r >= q.length
          raise Error, "string literal ends with a \"\\\": \"#{q}\""
        end

        case q[r]
        when ?",?\\,?/,?'
          a[w] = q[r]
          r += 1
          w += 1
        when ?b,?f,?n,?r,?t
          a[w] = Unesc[q[r]]
          r += 1
          w += 1
        when ?u
          r += 1
          uchar = begin
            hexdec4(q[r,4])
          rescue RuntimeError => e
            raise Error, "invalid escape sequence \\u#{q[r,4]}: #{e}"
          end
          r += 4
          if surrogate? uchar
            if q.length >= r+6
              uchar1 = hexdec4(q[r+2,4])
              uchar = subst(uchar, uchar1)
              if uchar != Ucharerr
                # A valid pair; consume.
                r += 6
              end
            end
          end
          if rubydoesenc?
            a[w] = '' << uchar
            w += 1
          else
            w += ucharenc(a, w, uchar)
          end
        else
          raise Error, "invalid escape char #{q[r]} in \"#{q}\""
        end
      elsif c == ?" || c < Spc
        raise Error, "invalid character in string literal \"#{q}\""
      else
        # Copy anything else byte-for-byte.
        # Valid UTF-8 will remain valid UTF-8.
        # Invalid UTF-8 will remain invalid UTF-8.
        # In ruby >= 1.9, c is a codepoint, not a byte,
        # in which case this is still what we want.
        a[w] = c
        r += 1
        w += 1
      end
    end
    a[0,w]
  end


  # Encodes unicode character u as UTF-8
  # bytes in string a at position i.
  # Returns the number of bytes written.
  def ucharenc(a, i, u)
    if u <= Uchar1max
      a[i] = (u & 0xff).chr
      1
    elsif u <= Uchar2max
      a[i+0] = (Utag2 | ((u>>6)&0xff)).chr
      a[i+1] = (Utagx | (u&Umaskx)).chr
      2
    elsif u <= Uchar3max
      a[i+0] = (Utag3 | ((u>>12)&0xff)).chr
      a[i+1] = (Utagx | ((u>>6)&Umaskx)).chr
      a[i+2] = (Utagx | (u&Umaskx)).chr
      3
    else
      a[i+0] = (Utag4 | ((u>>18)&0xff)).chr
      a[i+1] = (Utagx | ((u>>12)&Umaskx)).chr
      a[i+2] = (Utagx | ((u>>6)&Umaskx)).chr
      a[i+3] = (Utagx | (u&Umaskx)).chr
      4
    end
  end


  def hexdec4(s)
    if s.length != 4
      raise Error, 'short'
    end
    (nibble(s[0])<<12) | (nibble(s[1])<<8) | (nibble(s[2])<<4) | nibble(s[3])
  end


  def subst(u1, u2)
    if Usurr1 <= u1 && u1 < Usurr2 && Usurr2 <= u2 && u2 < Usurr3
      return ((u1-Usurr1)<<10) | (u2-Usurr2) + Usurrself
    end
    return Ucharerr
  end


  def surrogate?(u)
    Usurr1 <= u && u < Usurr3
  end


  def nibble(c)
    if ?0 <= c && c <= ?9 then c.ord - ?0.ord
    elsif ?a <= c && c <= ?z then c.ord - ?a.ord + 10
    elsif ?A <= c && c <= ?Z then c.ord - ?A.ord + 10
    else
      raise Error, "invalid hex code #{c}"
    end
  end


  def objenc(x)
    '{' + x.map{|k,v| keyenc(k) + ':' + valenc(v)}.join(',') + '}'
  end


  def arrenc(a)
    '[' + a.map{|x| valenc(x)}.join(',') + ']'
  end


  def keyenc(k)
    case k
    when String then strenc(k)
    else
      raise Error, "Hash key is not a string: #{k.inspect}"
    end
  end


  def strenc(s)
    t = StringIO.new
    t.putc(?")
    r = 0

    while r < s.length
      case s[r]
      when ?"  then t.print('\\"')
      when ?\\ then t.print('\\\\')
      when ?\b then t.print('\\b')
      when ?\f then t.print('\\f')
      when ?\n then t.print('\\n')
      when ?\r then t.print('\\r')
      when ?\t then t.print('\\t')
      else
        c = s[r]
        # In ruby >= 1.9, s[r] is a codepoint, not a byte.
        if rubydoesenc?
          begin
            # c.ord will raise an error if c is invalid UTF-8
            if c.ord < Spc.ord
              c = "\\u%04x" % [c.ord]
            end
            t.write(c)
          rescue
            t.write(Ustrerr)
          end
        elsif c < Spc
          t.write("\\u%04x" % c)
        elsif Spc <= c && c <= ?~
          t.putc(c)
        else
          n = ucharcopy(t, s, r) # ensure valid UTF-8 output
          r += n - 1 # r is incremented below
        end
      end
      r += 1
    end
    t.putc(?")
    t.string
  end


  def numenc(x)
    if ((x.nan? || x.infinite?) rescue false)
      raise Error, "Numeric cannot be represented: #{x}"
    end
    "#{x}"
  end


  # Copies the valid UTF-8 bytes of a single character
  # from string s at position i to I/O object t, and
  # returns the number of bytes copied.
  # If no valid UTF-8 char exists at position i,
  # ucharcopy writes Ustrerr and returns 1.
  def ucharcopy(t, s, i)
    n = s.length - i
    raise Utf8Error if n < 1

    c0 = s[i].ord

    # 1-byte, 7-bit sequence?
    if c0 < Utagx
      t.putc(c0)
      return 1
    end

    raise Utf8Error if c0 < Utag2 # unexpected continuation byte?

    raise Utf8Error if n < 2 # need continuation byte
    c1 = s[i+1].ord
    raise Utf8Error if c1 < Utagx || Utag2 <= c1

    # 2-byte, 11-bit sequence?
    if c0 < Utag3
      raise Utf8Error if ((c0&Umask2)<<6 | (c1&Umaskx)) <= Uchar1max
      t.putc(c0)
      t.putc(c1)
      return 2
    end

    # need second continuation byte
    raise Utf8Error if n < 3

    c2 = s[i+2].ord
    raise Utf8Error if c2 < Utagx || Utag2 <= c2

    # 3-byte, 16-bit sequence?
    if c0 < Utag4
      u = (c0&Umask3)<<12 | (c1&Umaskx)<<6 | (c2&Umaskx)
      raise Utf8Error if u <= Uchar2max
      t.putc(c0)
      t.putc(c1)
      t.putc(c2)
      return 3
    end

    # need third continuation byte
    raise Utf8Error if n < 4
    c3 = s[i+3].ord
    raise Utf8Error if c3 < Utagx || Utag2 <= c3

    # 4-byte, 21-bit sequence?
    if c0 < Utag5
      u = (c0&Umask4)<<18 | (c1&Umaskx)<<12 | (c2&Umaskx)<<6 | (c3&Umaskx)
      raise Utf8Error if u <= Uchar3max
      t.putc(c0)
      t.putc(c1)
      t.putc(c2)
      t.putc(c3)
      return 4
    end

    raise Utf8Error
  rescue Utf8Error
    t.write(Ustrerr)
    return 1
  end


  def rubydoesenc?
    ::String.method_defined?(:force_encoding)
  end


  class Utf8Error < ::StandardError
  end


  class Error < ::StandardError
  end


  Utagx = 0b1000_0000
  Utag2 = 0b1100_0000
  Utag3 = 0b1110_0000
  Utag4 = 0b1111_0000
  Utag5 = 0b1111_1000
  Umaskx = 0b0011_1111
  Umask2 = 0b0001_1111
  Umask3 = 0b0000_1111
  Umask4 = 0b0000_0111
  Uchar1max = (1<<7) - 1
  Uchar2max = (1<<11) - 1
  Uchar3max = (1<<16) - 1
  Ucharerr = 0xFFFD # unicode "replacement char"
  Ustrerr = "\xef\xbf\xbd" # unicode "replacement char"
  Usurrself = 0x10000
  Usurr1 = 0xd800
  Usurr2 = 0xdc00
  Usurr3 = 0xe000

  Spc = ' '[0]
  Unesc = {?b=>?\b, ?f=>?\f, ?n=>?\n, ?r=>?\r, ?t=>?\t}
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/cascade.rb000064400000002532150402106510015750 0ustar00module Rack
  # Rack::Cascade tries a request on several apps, and returns the
  # first response that is not 404 or 405 (or in a list of configurable
  # status codes).

  class Cascade
    NotFound = [404, {CONTENT_TYPE => "text/plain"}, []]

    attr_reader :apps

    def initialize(apps, catch=[404, 405])
      @apps = []; @has_app = {}
      apps.each { |app| add app }

      @catch = {}
      [*catch].each { |status| @catch[status] = true }
    end

    def call(env)
      result = NotFound

      last_body = nil

      @apps.each do |app|
        # The SPEC says that the body must be closed after it has been iterated
        # by the server, or if it is replaced by a middleware action. Cascade
        # replaces the body each time a cascade happens. It is assumed that nil
        # does not respond to close, otherwise the previous application body
        # will be closed. The final application body will not be closed, as it
        # will be passed to the server as a result.
        last_body.close if last_body.respond_to? :close

        result = app.call(env)
        last_body = result[2]
        break unless @catch.include?(result[0].to_i)
      end

      result
    end

    def add(app)
      @has_app[app] = true
      @apps << app
    end

    def include?(app)
      @has_app.include? app
    end

    alias_method :<<, :add
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/recursive.rb000064400000003357150402106510016402 0ustar00require 'uri'

module Rack
  # Rack::ForwardRequest gets caught by Rack::Recursive and redirects
  # the current request to the app at +url+.
  #
  #   raise ForwardRequest.new("/not-found")
  #

  class ForwardRequest < Exception
    attr_reader :url, :env

    def initialize(url, env={})
      @url = URI(url)
      @env = env

      @env[PATH_INFO] =         @url.path
      @env[QUERY_STRING] =      @url.query  if @url.query
      @env["HTTP_HOST"] =       @url.host   if @url.host
      @env["HTTP_PORT"] =       @url.port   if @url.port
      @env["rack.url_scheme"] = @url.scheme if @url.scheme

      super "forwarding to #{url}"
    end
  end

  # Rack::Recursive allows applications called down the chain to
  # include data from other applications (by using
  # <tt>rack['rack.recursive.include'][...]</tt> or raise a
  # ForwardRequest to redirect internally.

  class Recursive
    def initialize(app)
      @app = app
    end

    def call(env)
      dup._call(env)
    end

    def _call(env)
      @script_name = env[SCRIPT_NAME]
      @app.call(env.merge('rack.recursive.include' => method(:include)))
    rescue ForwardRequest => req
      call(env.merge(req.env))
    end

    def include(env, path)
      unless path.index(@script_name) == 0 && (path[@script_name.size] == ?/ ||
                                               path[@script_name.size].nil?)
        raise ArgumentError, "can only include below #{@script_name}, not #{path}"
      end

      env = env.merge(PATH_INFO => path,
                      SCRIPT_NAME => @script_name,
                      REQUEST_METHOD => "GET",
                      "CONTENT_LENGTH" => "0", "CONTENT_TYPE" => "",
                      "rack.input" => StringIO.new(""))
      @app.call(env)
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/tempfile_reaper.rb000064400000001236150402106510017530 0ustar00require 'rack/body_proxy'

module Rack

  # Middleware tracks and cleans Tempfiles created throughout a request (i.e. Rack::Multipart)
  # Ideas/strategy based on posts by Eric Wong and Charles Oliver Nutter
  # https://groups.google.com/forum/#!searchin/rack-devel/temp/rack-devel/brK8eh-MByw/sw61oJJCGRMJ
  class TempfileReaper
    def initialize(app)
      @app = app
    end

    def call(env)
      env['rack.tempfiles'] ||= []
      status, headers, body = @app.call(env)
      body_proxy = BodyProxy.new(body) do
        env['rack.tempfiles'].each { |f| f.close! } unless env['rack.tempfiles'].nil?
      end
      [status, headers, body_proxy]
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/rewindable_input.rb000064400000006300150402106510017715 0ustar00# -*- encoding: binary -*-
require 'tempfile'
require 'rack/utils'

module Rack
  # Class which can make any IO object rewindable, including non-rewindable ones. It does
  # this by buffering the data into a tempfile, which is rewindable.
  #
  # rack.input is required to be rewindable, so if your input stream IO is non-rewindable
  # by nature (e.g. a pipe or a socket) then you can wrap it in an object of this class
  # to easily make it rewindable.
  #
  # Don't forget to call #close when you're done. This frees up temporary resources that
  # RewindableInput uses, though it does *not* close the original IO object.
  class RewindableInput
    def initialize(io)
      @io = io
      @rewindable_io = nil
      @unlinked = false
    end

    def gets
      make_rewindable unless @rewindable_io
      @rewindable_io.gets
    end

    def read(*args)
      make_rewindable unless @rewindable_io
      @rewindable_io.read(*args)
    end

    def each(&block)
      make_rewindable unless @rewindable_io
      @rewindable_io.each(&block)
    end

    def rewind
      make_rewindable unless @rewindable_io
      @rewindable_io.rewind
    end

    # Closes this RewindableInput object without closing the originally
    # wrapped IO oject. Cleans up any temporary resources that this RewindableInput
    # has created.
    #
    # This method may be called multiple times. It does nothing on subsequent calls.
    def close
      if @rewindable_io
        if @unlinked
          @rewindable_io.close
        else
          @rewindable_io.close!
        end
        @rewindable_io = nil
      end
    end

    private

    # Ruby's Tempfile class has a bug. Subclass it and fix it.
    class Tempfile < ::Tempfile
      def _close
        @tmpfile.close if @tmpfile
        @data[1] = nil if @data
        @tmpfile = nil
      end
    end

    def make_rewindable
      # Buffer all data into a tempfile. Since this tempfile is private to this
      # RewindableInput object, we chmod it so that nobody else can read or write
      # it. On POSIX filesystems we also unlink the file so that it doesn't
      # even have a file entry on the filesystem anymore, though we can still
      # access it because we have the file handle open.
      @rewindable_io = Tempfile.new('RackRewindableInput')
      @rewindable_io.chmod(0000)
      @rewindable_io.set_encoding(Encoding::BINARY) if @rewindable_io.respond_to?(:set_encoding)
      @rewindable_io.binmode
      if filesystem_has_posix_semantics?
        # Use ::File.unlink as 1.9.1 Tempfile has a bug where unlink closes the file!
        ::File.unlink @rewindable_io.path
        raise 'Unlink failed. IO closed.' if @rewindable_io.closed?
        @unlinked = true
      end

      buffer = ""
      while @io.read(1024 * 4, buffer)
        entire_buffer_written_out = false
        while !entire_buffer_written_out
          written = @rewindable_io.write(buffer)
          entire_buffer_written_out = written == Rack::Utils.bytesize(buffer)
          if !entire_buffer_written_out
            buffer.slice!(0 .. written - 1)
          end
        end
      end
      @rewindable_io.rewind
    end

    def filesystem_has_posix_semantics?
      RUBY_PLATFORM !~ /(mswin|mingw|cygwin|java)/
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/sendfile.rb000064400000012274150402106510016162 0ustar00require 'rack/file'
require 'rack/body_proxy'

module Rack

  # = Sendfile
  #
  # The Sendfile middleware intercepts responses whose body is being
  # served from a file and replaces it with a server specific X-Sendfile
  # header. The web server is then responsible for writing the file contents
  # to the client. This can dramatically reduce the amount of work required
  # by the Ruby backend and takes advantage of the web server's optimized file
  # delivery code.
  #
  # In order to take advantage of this middleware, the response body must
  # respond to +to_path+ and the request must include an X-Sendfile-Type
  # header. Rack::File and other components implement +to_path+ so there's
  # rarely anything you need to do in your application. The X-Sendfile-Type
  # header is typically set in your web servers configuration. The following
  # sections attempt to document
  #
  # === Nginx
  #
  # Nginx supports the X-Accel-Redirect header. This is similar to X-Sendfile
  # but requires parts of the filesystem to be mapped into a private URL
  # hierarchy.
  #
  # The following example shows the Nginx configuration required to create
  # a private "/files/" area, enable X-Accel-Redirect, and pass the special
  # X-Sendfile-Type and X-Accel-Mapping headers to the backend:
  #
  #   location ~ /files/(.*) {
  #     internal;
  #     alias /var/www/$1;
  #   }
  #
  #   location / {
  #     proxy_redirect     off;
  #
  #     proxy_set_header   Host                $host;
  #     proxy_set_header   X-Real-IP           $remote_addr;
  #     proxy_set_header   X-Forwarded-For     $proxy_add_x_forwarded_for;
  #
  #     proxy_set_header   X-Sendfile-Type     X-Accel-Redirect;
  #     proxy_set_header   X-Accel-Mapping     /var/www/=/files/;
  #
  #     proxy_pass         http://127.0.0.1:8080/;
  #   }
  #
  # Note that the X-Sendfile-Type header must be set exactly as shown above.
  # The X-Accel-Mapping header should specify the location on the file system,
  # followed by an equals sign (=), followed name of the private URL pattern
  # that it maps to. The middleware performs a simple substitution on the
  # resulting path.
  #
  # See Also: http://wiki.codemongers.com/NginxXSendfile
  #
  # === lighttpd
  #
  # Lighttpd has supported some variation of the X-Sendfile header for some
  # time, although only recent version support X-Sendfile in a reverse proxy
  # configuration.
  #
  #   $HTTP["host"] == "example.com" {
  #      proxy-core.protocol = "http"
  #      proxy-core.balancer = "round-robin"
  #      proxy-core.backends = (
  #        "127.0.0.1:8000",
  #        "127.0.0.1:8001",
  #        ...
  #      )
  #
  #      proxy-core.allow-x-sendfile = "enable"
  #      proxy-core.rewrite-request = (
  #        "X-Sendfile-Type" => (".*" => "X-Sendfile")
  #      )
  #    }
  #
  # See Also: http://redmine.lighttpd.net/wiki/lighttpd/Docs:ModProxyCore
  #
  # === Apache
  #
  # X-Sendfile is supported under Apache 2.x using a separate module:
  #
  # https://tn123.org/mod_xsendfile/
  #
  # Once the module is compiled and installed, you can enable it using
  # XSendFile config directive:
  #
  #   RequestHeader Set X-Sendfile-Type X-Sendfile
  #   ProxyPassReverse / http://localhost:8001/
  #   XSendFile on
  #
  # === Mapping parameter
  #
  # The third parameter allows for an overriding extension of the
  # X-Accel-Mapping header. Mappings should be provided in tuples of internal to
  # external. The internal values may contain regular expression syntax, they
  # will be matched with case indifference.

  class Sendfile
    F = ::File

    def initialize(app, variation=nil, mappings=[])
      @app = app
      @variation = variation
      @mappings = mappings.map do |internal, external|
        [/^#{internal}/i, external]
      end
    end

    def call(env)
      status, headers, body = @app.call(env)
      if body.respond_to?(:to_path)
        case type = variation(env)
        when 'X-Accel-Redirect'
          path = F.expand_path(body.to_path)
          if url = map_accel_path(env, path)
            headers[CONTENT_LENGTH] = '0'
            headers[type] = url
            obody = body
            body = Rack::BodyProxy.new([]) do
              obody.close if obody.respond_to?(:close)
            end
          else
            env['rack.errors'].puts "X-Accel-Mapping header missing"
          end
        when 'X-Sendfile', 'X-Lighttpd-Send-File'
          path = F.expand_path(body.to_path)
          headers[CONTENT_LENGTH] = '0'
          headers[type] = path
          obody = body
          body = Rack::BodyProxy.new([]) do
            obody.close if obody.respond_to?(:close)
          end
        when '', nil
        else
          env['rack.errors'].puts "Unknown x-sendfile variation: '#{type}'.\n"
        end
      end
      [status, headers, body]
    end

    private
    def variation(env)
      @variation ||
        env['sendfile.type'] ||
        env['HTTP_X_SENDFILE_TYPE']
    end

    def map_accel_path(env, path)
      if mapping = @mappings.find { |internal,_| internal =~ path }
        path.sub(*mapping)
      elsif mapping = env['HTTP_X_ACCEL_MAPPING']
        internal, external = mapping.split('=', 2).map{ |p| p.strip }
        path.sub(/^#{internal}/i, external)
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/mock.rb000064400000013264150402106510015322 0ustar00require 'uri'
require 'stringio'
require 'rack'
require 'rack/lint'
require 'rack/utils'
require 'rack/response'

module Rack
  # Rack::MockRequest helps testing your Rack application without
  # actually using HTTP.
  #
  # After performing a request on a URL with get/post/put/patch/delete, it
  # returns a MockResponse with useful helper methods for effective
  # testing.
  #
  # You can pass a hash with additional configuration to the
  # get/post/put/patch/delete.
  # <tt>:input</tt>:: A String or IO-like to be used as rack.input.
  # <tt>:fatal</tt>:: Raise a FatalWarning if the app writes to rack.errors.
  # <tt>:lint</tt>:: If true, wrap the application in a Rack::Lint.

  class MockRequest
    class FatalWarning < RuntimeError
    end

    class FatalWarner
      def puts(warning)
        raise FatalWarning, warning
      end

      def write(warning)
        raise FatalWarning, warning
      end

      def flush
      end

      def string
        ""
      end
    end

    DEFAULT_ENV = {
      "rack.version" => Rack::VERSION,
      "rack.input" => StringIO.new,
      "rack.errors" => StringIO.new,
      "rack.multithread" => true,
      "rack.multiprocess" => true,
      "rack.run_once" => false,
    }

    def initialize(app)
      @app = app
    end

    def get(uri, opts={})     request("GET", uri, opts)     end
    def post(uri, opts={})    request("POST", uri, opts)    end
    def put(uri, opts={})     request("PUT", uri, opts)     end
    def patch(uri, opts={})   request("PATCH", uri, opts)   end
    def delete(uri, opts={})  request("DELETE", uri, opts)  end
    def head(uri, opts={})    request("HEAD", uri, opts)    end
    def options(uri, opts={}) request("OPTIONS", uri, opts) end

    def request(method="GET", uri="", opts={})
      env = self.class.env_for(uri, opts.merge(:method => method))

      if opts[:lint]
        app = Rack::Lint.new(@app)
      else
        app = @app
      end

      errors = env["rack.errors"]
      status, headers, body  = app.call(env)
      MockResponse.new(status, headers, body, errors)
    ensure
      body.close if body.respond_to?(:close)
    end

    # For historical reasons, we're pinning to RFC 2396. It's easier for users
    # and we get support from ruby 1.8 to 2.2 using this method.
    def self.parse_uri_rfc2396(uri)
      @parser ||= defined?(URI::RFC2396_Parser) ? URI::RFC2396_Parser.new : URI
      @parser.parse(uri)
    end

    # Return the Rack environment used for a request to +uri+.
    def self.env_for(uri="", opts={})
      uri = parse_uri_rfc2396(uri)
      uri.path = "/#{uri.path}" unless uri.path[0] == ?/

      env = DEFAULT_ENV.dup

      env[REQUEST_METHOD] = opts[:method] ? opts[:method].to_s.upcase : "GET"
      env["SERVER_NAME"] = uri.host || "example.org"
      env["SERVER_PORT"] = uri.port ? uri.port.to_s : "80"
      env[QUERY_STRING] = uri.query.to_s
      env[PATH_INFO] = (!uri.path || uri.path.empty?) ? "/" : uri.path
      env["rack.url_scheme"] = uri.scheme || "http"
      env["HTTPS"] = env["rack.url_scheme"] == "https" ? "on" : "off"

      env[SCRIPT_NAME] = opts[:script_name] || ""

      if opts[:fatal]
        env["rack.errors"] = FatalWarner.new
      else
        env["rack.errors"] = StringIO.new
      end

      if params = opts[:params]
        if env[REQUEST_METHOD] == "GET"
          params = Utils.parse_nested_query(params) if params.is_a?(String)
          params.update(Utils.parse_nested_query(env[QUERY_STRING]))
          env[QUERY_STRING] = Utils.build_nested_query(params)
        elsif !opts.has_key?(:input)
          opts["CONTENT_TYPE"] = "application/x-www-form-urlencoded"
          if params.is_a?(Hash)
            if data = Utils::Multipart.build_multipart(params)
              opts[:input] = data
              opts["CONTENT_LENGTH"] ||= data.length.to_s
              opts["CONTENT_TYPE"] = "multipart/form-data; boundary=#{Utils::Multipart::MULTIPART_BOUNDARY}"
            else
              opts[:input] = Utils.build_nested_query(params)
            end
          else
            opts[:input] = params
          end
        end
      end

      empty_str = ""
      empty_str.force_encoding("ASCII-8BIT") if empty_str.respond_to? :force_encoding
      opts[:input] ||= empty_str
      if String === opts[:input]
        rack_input = StringIO.new(opts[:input])
      else
        rack_input = opts[:input]
      end

      rack_input.set_encoding(Encoding::BINARY) if rack_input.respond_to?(:set_encoding)
      env['rack.input'] = rack_input

      env["CONTENT_LENGTH"] ||= env["rack.input"].length.to_s

      opts.each { |field, value|
        env[field] = value  if String === field
      }

      env
    end
  end

  # Rack::MockResponse provides useful helpers for testing your apps.
  # Usually, you don't create the MockResponse on your own, but use
  # MockRequest.

  class MockResponse < Rack::Response
    # Headers
    attr_reader :original_headers

    # Errors
    attr_accessor :errors

    def initialize(status, headers, body, errors=StringIO.new(""))
      @original_headers = headers
      @errors           = errors.string if errors.respond_to?(:string)
      @body_string      = nil

      super(body, status, headers)
    end

    def =~(other)
      body =~ other
    end

    def match(other)
      body.match other
    end

    def body
      # FIXME: apparently users of MockResponse expect the return value of
      # MockResponse#body to be a string.  However, the real response object
      # returns the body as a list.
      #
      # See spec_showstatus.rb:
      #
      #   should "not replace existing messages" do
      #     ...
      #     res.body.should == "foo!"
      #   end
      super.join
    end

    def empty?
      [201, 204, 205, 304].include? status
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/logger.rb000064400000000545150402106510015646 0ustar00require 'logger'

module Rack
  # Sets up rack.logger to write to rack.errors stream
  class Logger
    def initialize(app, level = ::Logger::INFO)
      @app, @level = app, level
    end

    def call(env)
      logger = ::Logger.new(env['rack.errors'])
      logger.level = @level

      env['rack.logger'] = logger
      @app.call(env)
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/multipart.rb000064400000002220150402106510016400 0ustar00module Rack
  # A multipart form data parser, adapted from IOWA.
  #
  # Usually, Rack::Request#POST takes care of calling this.
  module Multipart
    autoload :UploadedFile, 'rack/multipart/uploaded_file'
    autoload :Parser, 'rack/multipart/parser'
    autoload :Generator, 'rack/multipart/generator'

    EOL = "\r\n"
    MULTIPART_BOUNDARY = "AaB03x"
    MULTIPART = %r|\Amultipart/.*boundary=\"?([^\";,]+)\"?|ni
    TOKEN = /[^\s()<>,;:\\"\/\[\]?=]+/
    CONDISP = /Content-Disposition:\s*#{TOKEN}\s*/i
    DISPPARM = /;\s*(#{TOKEN})=("(?:\\"|[^"])*"|#{TOKEN})/
    RFC2183 = /^#{CONDISP}(#{DISPPARM})+$/i
    BROKEN_QUOTED = /^#{CONDISP}.*;\sfilename="(.*?)"(?:\s*$|\s*;\s*#{TOKEN}=)/i
    BROKEN_UNQUOTED = /^#{CONDISP}.*;\sfilename=(#{TOKEN})/i
    MULTIPART_CONTENT_TYPE = /Content-Type: (.*)#{EOL}/ni
    MULTIPART_CONTENT_DISPOSITION = /Content-Disposition:.*\s+name="?([^\";]*)"?/ni
    MULTIPART_CONTENT_ID = /Content-ID:\s*([^#{EOL}]*)/ni

    class << self
      def parse_multipart(env)
        Parser.create(env).parse
      end

      def build_multipart(params, first = true)
        Generator.new(params, first).dump
      end
    end

  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb000064400000010430150402106510016007 0ustar00module Rack
  # Rack::Builder implements a small DSL to iteratively construct Rack
  # applications.
  #
  # Example:
  #
  #  require 'rack/lobster'
  #  app = Rack::Builder.new do
  #    use Rack::CommonLogger
  #    use Rack::ShowExceptions
  #    map "/lobster" do
  #      use Rack::Lint
  #      run Rack::Lobster.new
  #    end
  #  end
  #
  #  run app
  #
  # Or
  #
  #  app = Rack::Builder.app do
  #    use Rack::CommonLogger
  #    run lambda { |env| [200, {'Content-Type' => 'text/plain'}, ['OK']] }
  #  end
  #
  #  run app
  #
  # +use+ adds middleware to the stack, +run+ dispatches to an application.
  # You can use +map+ to construct a Rack::URLMap in a convenient way.

  class Builder
    def self.parse_file(config, opts = Server::Options.new)
      options = {}
      if config =~ /\.ru$/
        cfgfile = ::File.read(config)
        if cfgfile[/^#\\(.*)/] && opts
          options = opts.parse! $1.split(/\s+/)
        end
        cfgfile.sub!(/^__END__\n.*\Z/m, '')
        app = new_from_string cfgfile, config
      else
        require config
        app = Object.const_get(::File.basename(config, '.rb').capitalize)
      end
      return app, options
    end

    def self.new_from_string(builder_script, file="(rackup)")
      eval "Rack::Builder.new {\n" + builder_script + "\n}.to_app",
        TOPLEVEL_BINDING, file, 0
    end

    def initialize(default_app = nil,&block)
      @use, @map, @run, @warmup = [], nil, default_app, nil
      instance_eval(&block) if block_given?
    end

    def self.app(default_app = nil, &block)
      self.new(default_app, &block).to_app
    end

    # Specifies middleware to use in a stack.
    #
    #   class Middleware
    #     def initialize(app)
    #       @app = app
    #     end
    #
    #     def call(env)
    #       env["rack.some_header"] = "setting an example"
    #       @app.call(env)
    #     end
    #   end
    #
    #   use Middleware
    #   run lambda { |env| [200, { "Content-Type" => "text/plain" }, ["OK"]] }
    #
    # All requests through to this application will first be processed by the middleware class.
    # The +call+ method in this example sets an additional environment key which then can be
    # referenced in the application if required.
    def use(middleware, *args, &block)
      if @map
        mapping, @map = @map, nil
        @use << proc { |app| generate_map app, mapping }
      end
      @use << proc { |app| middleware.new(app, *args, &block) }
    end

    # Takes an argument that is an object that responds to #call and returns a Rack response.
    # The simplest form of this is a lambda object:
    #
    #   run lambda { |env| [200, { "Content-Type" => "text/plain" }, ["OK"]] }
    #
    # However this could also be a class:
    #
    #   class Heartbeat
    #     def self.call(env)
    #      [200, { "Content-Type" => "text/plain" }, ["OK"]]
    #    end
    #   end
    #
    #   run Heartbeat
    def run(app)
      @run = app
    end

    # Takes a lambda or block that is used to warm-up the application.
    #
    #   warmup do |app|
    #     client = Rack::MockRequest.new(app)
    #     client.get('/')
    #   end
    #
    #   use SomeMiddleware
    #   run MyApp
    def warmup(prc=nil, &block)
      @warmup = prc || block
    end

    # Creates a route within the application.
    #
    #   Rack::Builder.app do
    #     map '/' do
    #       run Heartbeat
    #     end
    #   end
    #
    # The +use+ method can also be used here to specify middleware to run under a specific path:
    #
    #   Rack::Builder.app do
    #     map '/' do
    #       use Middleware
    #       run Heartbeat
    #     end
    #   end
    #
    # This example includes a piece of middleware which will run before requests hit +Heartbeat+.
    #
    def map(path, &block)
      @map ||= {}
      @map[path] = block
    end

    def to_app
      app = @map ? generate_map(@run, @map) : @run
      fail "missing run or map statement" unless app
      app = @use.reverse.inject(app) { |a,e| e[a] }
      @warmup.call(app) if @warmup
      app
    end

    def call(env)
      to_app.call(env)
    end

    private

    def generate_map(default_app, mapping)
      mapped = default_app ? {'/' => default_app} : {}
      mapping.each { |r,b| mapped[r] = self.class.new(default_app, &b).to_app }
      URLMap.new(mapped)
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/auth/digest/md5.rb000064400000006145150402106520017277 0ustar00require 'rack/auth/abstract/handler'
require 'rack/auth/digest/request'
require 'rack/auth/digest/params'
require 'rack/auth/digest/nonce'
require 'digest/md5'

module Rack
  module Auth
    module Digest
      # Rack::Auth::Digest::MD5 implements the MD5 algorithm version of
      # HTTP Digest Authentication, as per RFC 2617.
      #
      # Initialize with the [Rack] application that you want protecting,
      # and a block that looks up a plaintext password for a given username.
      #
      # +opaque+ needs to be set to a constant base64/hexadecimal string.
      #
      class MD5 < AbstractHandler

        attr_accessor :opaque

        attr_writer :passwords_hashed

        def initialize(app, realm=nil, opaque=nil, &authenticator)
          @passwords_hashed = nil
          if opaque.nil? and realm.respond_to? :values_at
            realm, opaque, @passwords_hashed = realm.values_at :realm, :opaque, :passwords_hashed
          end
          super(app, realm, &authenticator)
          @opaque = opaque
        end

        def passwords_hashed?
          !!@passwords_hashed
        end

        def call(env)
          auth = Request.new(env)

          unless auth.provided?
            return unauthorized
          end

          if !auth.digest? || !auth.correct_uri? || !valid_qop?(auth)
            return bad_request
          end

          if valid?(auth)
            if auth.nonce.stale?
              return unauthorized(challenge(:stale => true))
            else
              env['REMOTE_USER'] = auth.username

              return @app.call(env)
            end
          end

          unauthorized
        end


        private

        QOP = 'auth'.freeze

        def params(hash = {})
          Params.new do |params|
            params['realm'] = realm
            params['nonce'] = Nonce.new.to_s
            params['opaque'] = H(opaque)
            params['qop'] = QOP

            hash.each { |k, v| params[k] = v }
          end
        end

        def challenge(hash = {})
          "Digest #{params(hash)}"
        end

        def valid?(auth)
          valid_opaque?(auth) && valid_nonce?(auth) && valid_digest?(auth)
        end

        def valid_qop?(auth)
          QOP == auth.qop
        end

        def valid_opaque?(auth)
          H(opaque) == auth.opaque
        end

        def valid_nonce?(auth)
          auth.nonce.valid?
        end

        def valid_digest?(auth)
          pw = @authenticator.call(auth.username)
          pw && Rack::Utils.secure_compare(digest(auth, pw), auth.response)
        end

        def md5(data)
          ::Digest::MD5.hexdigest(data)
        end

        alias :H :md5

        def KD(secret, data)
          H([secret, data] * ':')
        end

        def A1(auth, password)
          [ auth.username, auth.realm, password ] * ':'
        end

        def A2(auth)
          [ auth.method, auth.uri ] * ':'
        end

        def digest(auth, password)
          password_hash = passwords_hashed? ? password : H(A1(auth, password))

          KD(password_hash, [ auth.nonce, auth.nc, auth.cnonce, QOP, H(A2(auth)) ] * ':')
        end

      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/auth/digest/request.rb000064400000001672150402106520020302 0ustar00require 'rack/auth/abstract/request'
require 'rack/auth/digest/params'
require 'rack/auth/digest/nonce'

module Rack
  module Auth
    module Digest
      class Request < Auth::AbstractRequest
        def method
          @env['rack.methodoverride.original_method'] || @env[REQUEST_METHOD]
        end

        def digest?
          "digest" == scheme
        end

        def correct_uri?
          request.fullpath == uri
        end

        def nonce
          @nonce ||= Nonce.parse(params['nonce'])
        end

        def params
          @params ||= Params.parse(parts.last)
        end

        def respond_to?(sym, *)
          super or params.has_key? sym.to_s
        end

        def method_missing(sym, *args)
          return super unless params.has_key?(key = sym.to_s)
          return params[key] if args.size == 0
          raise ArgumentError, "wrong number of arguments (#{args.size} for 0)"
        end
      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/auth/digest/nonce.rb000064400000002307150402106520017710 0ustar00require 'digest/md5'

module Rack
  module Auth
    module Digest
      # Rack::Auth::Digest::Nonce is the default nonce generator for the
      # Rack::Auth::Digest::MD5 authentication handler.
      #
      # +private_key+ needs to set to a constant string.
      #
      # +time_limit+ can be optionally set to an integer (number of seconds),
      # to limit the validity of the generated nonces.

      class Nonce

        class << self
          attr_accessor :private_key, :time_limit
        end

        def self.parse(string)
          new(*string.unpack("m*").first.split(' ', 2))
        end

        def initialize(timestamp = Time.now, given_digest = nil)
          @timestamp, @given_digest = timestamp.to_i, given_digest
        end

        def to_s
          [([ @timestamp, digest ] * ' ')].pack("m*").strip
        end

        def digest
          ::Digest::MD5.hexdigest([ @timestamp, self.class.private_key ] * ':')
        end

        def valid?
          digest == @given_digest
        end

        def stale?
          !self.class.time_limit.nil? && (Time.now.to_i - @timestamp) > self.class.time_limit
        end

        def fresh?
          !stale?
        end

      end
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/auth/digest/params.rb000064400000002103150402106520020063 0ustar00module Rack
  module Auth
    module Digest
      class Params < Hash

        def self.parse(str)
          Params[*split_header_value(str).map do |param|
            k, v = param.split('=', 2)
            [k, dequote(v)]
          end.flatten]
        end

        def self.dequote(str) # From WEBrick::HTTPUtils
          ret = (/\A"(.*)"\Z/ =~ str) ? $1 : str.dup
          ret.gsub!(/\\(.)/, "\\1")
          ret
        end

        def self.split_header_value(str)
          str.scan( /(\w+\=(?:"[^\"]+"|[^,]+))/n ).collect{ |v| v[0] }
        end

        def initialize
          super()

          yield self if block_given?
        end

        def [](k)
          super k.to_s
        end

        def []=(k, v)
          super k.to_s, v.to_s
        end

        UNQUOTED = ['nc', 'stale']

        def to_s
          map do |k, v|
            "#{k}=" + (UNQUOTED.include?(k) ? v.to_s : quote(v))
          end.join(', ')
        end

        def quote(str) # From WEBrick::HTTPUtils
          '"' << str.gsub(/[\\\"]/o, "\\\1") << '"'
        end

      end
    end
  end
end

lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/auth/basic.rb000064400000002245150402106520016411 0ustar00require 'rack/auth/abstract/handler'
require 'rack/auth/abstract/request'

module Rack
  module Auth
    # Rack::Auth::Basic implements HTTP Basic Authentication, as per RFC 2617.
    #
    # Initialize with the Rack application that you want protecting,
    # and a block that checks if a username and password pair are valid.
    #
    # See also: <tt>example/protectedlobster.rb</tt>

    class Basic < AbstractHandler

      def call(env)
        auth = Basic::Request.new(env)

        return unauthorized unless auth.provided?

        return bad_request unless auth.basic?

        if valid?(auth)
          env['REMOTE_USER'] = auth.username

          return @app.call(env)
        end

        unauthorized
      end


      private

      def challenge
        'Basic realm="%s"' % realm
      end

      def valid?(auth)
        @authenticator.call(*auth.credentials)
      end

      class Request < Auth::AbstractRequest
        def basic?
          "basic" == scheme
        end

        def credentials
          @credentials ||= params.unpack("m*").first.split(/:/, 2)
        end

        def username
          credentials.first
        end
      end

    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/auth/abstract/request.rb000064400000001356150402106520020625 0ustar00require 'rack/request'

module Rack
  module Auth
    class AbstractRequest

      def initialize(env)
        @env = env
      end

      def request
        @request ||= Request.new(@env)
      end

      def provided?
        !authorization_key.nil?
      end

      def parts
        @parts ||= @env[authorization_key].split(' ', 2)
      end

      def scheme
        @scheme ||= parts.first && parts.first.downcase
      end

      def params
        @params ||= parts.last
      end


      private

      AUTHORIZATION_KEYS = ['HTTP_AUTHORIZATION', 'X-HTTP_AUTHORIZATION', 'X_HTTP_AUTHORIZATION']

      def authorization_key
        @authorization_key ||= AUTHORIZATION_KEYS.detect { |key| @env.has_key?(key) }
      end

    end

  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/auth/abstract/handler.rb000064400000001415150402106520020546 0ustar00module Rack
  module Auth
    # Rack::Auth::AbstractHandler implements common authentication functionality.
    #
    # +realm+ should be set for all handlers.

    class AbstractHandler

      attr_accessor :realm

      def initialize(app, realm=nil, &authenticator)
        @app, @realm, @authenticator = app, realm, authenticator
      end


      private

      def unauthorized(www_authenticate = challenge)
        return [ 401,
          { CONTENT_TYPE => 'text/plain',
            CONTENT_LENGTH => '0',
            'WWW-Authenticate' => www_authenticate.to_s },
          []
        ]
      end

      def bad_request
        return [ 400,
          { CONTENT_TYPE => 'text/plain',
            CONTENT_LENGTH => '0' },
          []
        ]
      end

    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/lint.rb000064400000072416150402106520015344 0ustar00require 'rack/utils'
require 'forwardable'

module Rack
  # Rack::Lint validates your application and the requests and
  # responses according to the Rack spec.

  class Lint
    def initialize(app)
      @app = app
      @content_length = nil
    end

    # :stopdoc:

    class LintError < RuntimeError; end
    module Assertion
      def assert(message, &block)
        unless block.call
          raise LintError, message
        end
      end
    end
    include Assertion

    ## This specification aims to formalize the Rack protocol.  You
    ## can (and should) use Rack::Lint to enforce it.
    ##
    ## When you develop middleware, be sure to add a Lint before and
    ## after to catch all mistakes.

    ## = Rack applications

    ## A Rack application is a Ruby object (not a class) that
    ## responds to +call+.
    def call(env=nil)
      dup._call(env)
    end

    def _call(env)
      ## It takes exactly one argument, the *environment*
      assert("No env given") { env }
      check_env env

      env['rack.input'] = InputWrapper.new(env['rack.input'])
      env['rack.errors'] = ErrorWrapper.new(env['rack.errors'])

      ## and returns an Array of exactly three values:
      status, headers, @body = @app.call(env)
      ## The *status*,
      check_status status
      ## the *headers*,
      check_headers headers

      check_hijack_response headers, env

      ## and the *body*.
      check_content_type status, headers
      check_content_length status, headers
      @head_request = env[REQUEST_METHOD] == "HEAD"
      [status, headers, self]
    end

    ## == The Environment
    def check_env(env)
      ## The environment must be an instance of Hash that includes
      ## CGI-like headers.  The application is free to modify the
      ## environment.
      assert("env #{env.inspect} is not a Hash, but #{env.class}") {
        env.kind_of? Hash
      }

      ##
      ## The environment is required to include these variables
      ## (adopted from PEP333), except when they'd be empty, but see
      ## below.

      ## <tt>REQUEST_METHOD</tt>:: The HTTP request method, such as
      ##                           "GET" or "POST". This cannot ever
      ##                           be an empty string, and so is
      ##                           always required.

      ## <tt>SCRIPT_NAME</tt>:: The initial portion of the request
      ##                        URL's "path" that corresponds to the
      ##                        application object, so that the
      ##                        application knows its virtual
      ##                        "location". This may be an empty
      ##                        string, if the application corresponds
      ##                        to the "root" of the server.

      ## <tt>PATH_INFO</tt>:: The remainder of the request URL's
      ##                      "path", designating the virtual
      ##                      "location" of the request's target
      ##                      within the application. This may be an
      ##                      empty string, if the request URL targets
      ##                      the application root and does not have a
      ##                      trailing slash. This value may be
      ##                      percent-encoded when I originating from
      ##                      a URL.

      ## <tt>QUERY_STRING</tt>:: The portion of the request URL that
      ##                         follows the <tt>?</tt>, if any. May be
      ##                         empty, but is always required!

      ## <tt>SERVER_NAME</tt>, <tt>SERVER_PORT</tt>::
      ##                        When combined with <tt>SCRIPT_NAME</tt> and
      ##                        <tt>PATH_INFO</tt>, these variables can be
      ##                        used to complete the URL. Note, however,
      ##                        that <tt>HTTP_HOST</tt>, if present,
      ##                        should be used in preference to
      ##                        <tt>SERVER_NAME</tt> for reconstructing
      ##                        the request URL.
      ##                        <tt>SERVER_NAME</tt> and <tt>SERVER_PORT</tt>
      ##                        can never be empty strings, and so
      ##                        are always required.

      ## <tt>HTTP_</tt> Variables:: Variables corresponding to the
      ##                            client-supplied HTTP request
      ##                            headers (i.e., variables whose
      ##                            names begin with <tt>HTTP_</tt>). The
      ##                            presence or absence of these
      ##                            variables should correspond with
      ##                            the presence or absence of the
      ##                            appropriate HTTP header in the
      ##                            request. See
      ##                            <a href="https://tools.ietf.org/html/rfc3875#section-4.1.18">
      ##                            RFC3875 section 4.1.18</a> for
      ##                            specific behavior.

      ## In addition to this, the Rack environment must include these
      ## Rack-specific variables:

      ## <tt>rack.version</tt>:: The Array representing this version of Rack
      ##                         See Rack::VERSION, that corresponds to
      ##                         the version of this SPEC.

      ## <tt>rack.url_scheme</tt>:: +http+ or +https+, depending on the
      ##                            request URL.

      ## <tt>rack.input</tt>:: See below, the input stream.

      ## <tt>rack.errors</tt>:: See below, the error stream.

      ## <tt>rack.multithread</tt>:: true if the application object may be
      ##                             simultaneously invoked by another thread
      ##                             in the same process, false otherwise.

      ## <tt>rack.multiprocess</tt>:: true if an equivalent application object
      ##                              may be simultaneously invoked by another
      ##                              process, false otherwise.

      ## <tt>rack.run_once</tt>:: true if the server expects
      ##                          (but does not guarantee!) that the
      ##                          application will only be invoked this one
      ##                          time during the life of its containing
      ##                          process. Normally, this will only be true
      ##                          for a server based on CGI
      ##                          (or something similar).

      ## <tt>rack.hijack?</tt>:: present and true if the server supports
      ##                         connection hijacking. See below, hijacking.

      ## <tt>rack.hijack</tt>:: an object responding to #call that must be
      ##                        called at least once before using
      ##                        rack.hijack_io.
      ##                        It is recommended #call return rack.hijack_io
      ##                        as well as setting it in env if necessary.

      ## <tt>rack.hijack_io</tt>:: if rack.hijack? is true, and rack.hijack
      ##                           has received #call, this will contain
      ##                           an object resembling an IO. See hijacking.

      ## Additional environment specifications have approved to
      ## standardized middleware APIs.  None of these are required to
      ## be implemented by the server.

      ## <tt>rack.session</tt>:: A hash like interface for storing
      ##                         request session data.
      ##                         The store must implement:
      if session = env['rack.session']
        ##                         store(key, value)         (aliased as []=);
        assert("session #{session.inspect} must respond to store and []=") {
          session.respond_to?(:store) && session.respond_to?(:[]=)
        }

        ##                         fetch(key, default = nil) (aliased as []);
        assert("session #{session.inspect} must respond to fetch and []") {
          session.respond_to?(:fetch) && session.respond_to?(:[])
        }

        ##                         delete(key);
        assert("session #{session.inspect} must respond to delete") {
          session.respond_to?(:delete)
        }

        ##                         clear;
        assert("session #{session.inspect} must respond to clear") {
          session.respond_to?(:clear)
        }
      end

      ## <tt>rack.logger</tt>:: A common object interface for logging messages.
      ##                        The object must implement:
      if logger = env['rack.logger']
        ##                         info(message, &block)
        assert("logger #{logger.inspect} must respond to info") {
          logger.respond_to?(:info)
        }

        ##                         debug(message, &block)
        assert("logger #{logger.inspect} must respond to debug") {
          logger.respond_to?(:debug)
        }

        ##                         warn(message, &block)
        assert("logger #{logger.inspect} must respond to warn") {
          logger.respond_to?(:warn)
        }

        ##                         error(message, &block)
        assert("logger #{logger.inspect} must respond to error") {
          logger.respond_to?(:error)
        }

        ##                         fatal(message, &block)
        assert("logger #{logger.inspect} must respond to fatal") {
          logger.respond_to?(:fatal)
        }
      end

      ## <tt>rack.multipart.buffer_size</tt>:: An Integer hint to the multipart parser as to what chunk size to use for reads and writes.
      if bufsize = env['rack.multipart.buffer_size']
        assert("rack.multipart.buffer_size must be an Integer > 0 if specified") {
          bufsize.is_a?(Integer) && bufsize > 0
        }
      end

      ## <tt>rack.multipart.tempfile_factory</tt>:: An object responding to #call with two arguments, the filename and content_type given for the multipart form field, and returning an IO-like object that responds to #<< and optionally #rewind. This factory will be used to instantiate the tempfile for each multipart form file upload field, rather than the default class of Tempfile.
      if tempfile_factory = env['rack.multipart.tempfile_factory']
        assert("rack.multipart.tempfile_factory must respond to #call") { tempfile_factory.respond_to?(:call) }
        env['rack.multipart.tempfile_factory'] = lambda do |filename, content_type|
          io = tempfile_factory.call(filename, content_type)
          assert("rack.multipart.tempfile_factory return value must respond to #<<") { io.respond_to?(:<<) }
          io
        end
      end

      ## The server or the application can store their own data in the
      ## environment, too.  The keys must contain at least one dot,
      ## and should be prefixed uniquely.  The prefix <tt>rack.</tt>
      ## is reserved for use with the Rack core distribution and other
      ## accepted specifications and must not be used otherwise.
      ##

      %w[REQUEST_METHOD SERVER_NAME SERVER_PORT
         QUERY_STRING
         rack.version rack.input rack.errors
         rack.multithread rack.multiprocess rack.run_once].each { |header|
        assert("env missing required key #{header}") { env.include? header }
      }

      ## The environment must not contain the keys
      ## <tt>HTTP_CONTENT_TYPE</tt> or <tt>HTTP_CONTENT_LENGTH</tt>
      ## (use the versions without <tt>HTTP_</tt>).
      %w[HTTP_CONTENT_TYPE HTTP_CONTENT_LENGTH].each { |header|
        assert("env contains #{header}, must use #{header[5,-1]}") {
          not env.include? header
        }
      }

      ## The CGI keys (named without a period) must have String values.
      env.each { |key, value|
        next  if key.include? "."   # Skip extensions
        assert("env variable #{key} has non-string value #{value.inspect}") {
          value.kind_of? String
        }
      }

      ## There are the following restrictions:

      ## * <tt>rack.version</tt> must be an array of Integers.
      assert("rack.version must be an Array, was #{env["rack.version"].class}") {
        env["rack.version"].kind_of? Array
      }
      ## * <tt>rack.url_scheme</tt> must either be +http+ or +https+.
      assert("rack.url_scheme unknown: #{env["rack.url_scheme"].inspect}") {
        %w[http https].include? env["rack.url_scheme"]
      }

      ## * There must be a valid input stream in <tt>rack.input</tt>.
      check_input env["rack.input"]
      ## * There must be a valid error stream in <tt>rack.errors</tt>.
      check_error env["rack.errors"]
      ## * There may be a valid hijack stream in <tt>rack.hijack_io</tt>
      check_hijack env

      ## * The <tt>REQUEST_METHOD</tt> must be a valid token.
      assert("REQUEST_METHOD unknown: #{env[REQUEST_METHOD]}") {
        env["REQUEST_METHOD"] =~ /\A[0-9A-Za-z!\#$%&'*+.^_`|~-]+\z/
      }

      ## * The <tt>SCRIPT_NAME</tt>, if non-empty, must start with <tt>/</tt>
      assert("SCRIPT_NAME must start with /") {
        !env.include?("SCRIPT_NAME") ||
        env["SCRIPT_NAME"] == "" ||
        env["SCRIPT_NAME"] =~ /\A\//
      }
      ## * The <tt>PATH_INFO</tt>, if non-empty, must start with <tt>/</tt>
      assert("PATH_INFO must start with /") {
        !env.include?("PATH_INFO") ||
        env["PATH_INFO"] == "" ||
        env["PATH_INFO"] =~ /\A\//
      }
      ## * The <tt>CONTENT_LENGTH</tt>, if given, must consist of digits only.
      assert("Invalid CONTENT_LENGTH: #{env["CONTENT_LENGTH"]}") {
        !env.include?("CONTENT_LENGTH") || env["CONTENT_LENGTH"] =~ /\A\d+\z/
      }

      ## * One of <tt>SCRIPT_NAME</tt> or <tt>PATH_INFO</tt> must be
      ##   set.  <tt>PATH_INFO</tt> should be <tt>/</tt> if
      ##   <tt>SCRIPT_NAME</tt> is empty.
      assert("One of SCRIPT_NAME or PATH_INFO must be set (make PATH_INFO '/' if SCRIPT_NAME is empty)") {
        env["SCRIPT_NAME"] || env["PATH_INFO"]
      }
      ##   <tt>SCRIPT_NAME</tt> never should be <tt>/</tt>, but instead be empty.
      assert("SCRIPT_NAME cannot be '/', make it '' and PATH_INFO '/'") {
        env["SCRIPT_NAME"] != "/"
      }
    end

    ## === The Input Stream
    ##
    ## The input stream is an IO-like object which contains the raw HTTP
    ## POST data.
    def check_input(input)
      ## When applicable, its external encoding must be "ASCII-8BIT" and it
      ## must be opened in binary mode, for Ruby 1.9 compatibility.
      assert("rack.input #{input} does not have ASCII-8BIT as its external encoding") {
        input.external_encoding.name == "ASCII-8BIT"
      } if input.respond_to?(:external_encoding)
      assert("rack.input #{input} is not opened in binary mode") {
        input.binmode?
      } if input.respond_to?(:binmode?)

      ## The input stream must respond to +gets+, +each+, +read+ and +rewind+.
      [:gets, :each, :read, :rewind].each { |method|
        assert("rack.input #{input} does not respond to ##{method}") {
          input.respond_to? method
        }
      }
    end

    class InputWrapper
      include Assertion

      def initialize(input)
        @input = input
      end

      ## * +gets+ must be called without arguments and return a string,
      ##   or +nil+ on EOF.
      def gets(*args)
        assert("rack.input#gets called with arguments") { args.size == 0 }
        v = @input.gets
        assert("rack.input#gets didn't return a String") {
          v.nil? or v.kind_of? String
        }
        v
      end

      ## * +read+ behaves like IO#read.
      ##   Its signature is <tt>read([length, [buffer]])</tt>.
      ##
      ##   If given, +length+ must be a non-negative Integer (>= 0) or +nil+,
      ##   and +buffer+ must be a String and may not be nil.
      ##
      ##   If +length+ is given and not nil, then this method reads at most
      ##   +length+ bytes from the input stream.
      ##
      ##   If +length+ is not given or nil, then this method reads
      ##   all data until EOF.
      ##
      ##   When EOF is reached, this method returns nil if +length+ is given
      ##   and not nil, or "" if +length+ is not given or is nil.
      ##
      ##   If +buffer+ is given, then the read data will be placed
      ##   into +buffer+ instead of a newly created String object.
      def read(*args)
        assert("rack.input#read called with too many arguments") {
          args.size <= 2
        }
        if args.size >= 1
          assert("rack.input#read called with non-integer and non-nil length") {
            args.first.kind_of?(Integer) || args.first.nil?
          }
          assert("rack.input#read called with a negative length") {
            args.first.nil? || args.first >= 0
          }
        end
        if args.size >= 2
          assert("rack.input#read called with non-String buffer") {
            args[1].kind_of?(String)
          }
        end

        v = @input.read(*args)

        assert("rack.input#read didn't return nil or a String") {
          v.nil? or v.kind_of? String
        }
        if args[0].nil?
          assert("rack.input#read(nil) returned nil on EOF") {
            !v.nil?
          }
        end

        v
      end

      ## * +each+ must be called without arguments and only yield Strings.
      def each(*args)
        assert("rack.input#each called with arguments") { args.size == 0 }
        @input.each { |line|
          assert("rack.input#each didn't yield a String") {
            line.kind_of? String
          }
          yield line
        }
      end

      ## * +rewind+ must be called without arguments. It rewinds the input
      ##   stream back to the beginning. It must not raise Errno::ESPIPE:
      ##   that is, it may not be a pipe or a socket. Therefore, handler
      ##   developers must buffer the input data into some rewindable object
      ##   if the underlying input stream is not rewindable.
      def rewind(*args)
        assert("rack.input#rewind called with arguments") { args.size == 0 }
        assert("rack.input#rewind raised Errno::ESPIPE") {
          begin
            @input.rewind
            true
          rescue Errno::ESPIPE
            false
          end
        }
      end

      ## * +close+ must never be called on the input stream.
      def close(*args)
        assert("rack.input#close must not be called") { false }
      end
    end

    ## === The Error Stream
    def check_error(error)
      ## The error stream must respond to +puts+, +write+ and +flush+.
      [:puts, :write, :flush].each { |method|
        assert("rack.error #{error} does not respond to ##{method}") {
          error.respond_to? method
        }
      }
    end

    class ErrorWrapper
      include Assertion

      def initialize(error)
        @error = error
      end

      ## * +puts+ must be called with a single argument that responds to +to_s+.
      def puts(str)
        @error.puts str
      end

      ## * +write+ must be called with a single argument that is a String.
      def write(str)
        assert("rack.errors#write not called with a String") { str.kind_of? String }
        @error.write str
      end

      ## * +flush+ must be called without arguments and must be called
      ##   in order to make the error appear for sure.
      def flush
        @error.flush
      end

      ## * +close+ must never be called on the error stream.
      def close(*args)
        assert("rack.errors#close must not be called") { false }
      end
    end

    class HijackWrapper
      include Assertion
      extend Forwardable

      REQUIRED_METHODS = [
        :read, :write, :read_nonblock, :write_nonblock, :flush, :close,
        :close_read, :close_write, :closed?
      ]

      def_delegators :@io, *REQUIRED_METHODS

      def initialize(io)
        @io = io
        REQUIRED_METHODS.each do |meth|
          assert("rack.hijack_io must respond to #{meth}") { io.respond_to? meth }
        end
      end
    end

    ## === Hijacking
    #
    # AUTHORS: n.b. The trailing whitespace between paragraphs is important and
    # should not be removed. The whitespace creates paragraphs in the RDoc
    # output.
    #
    ## ==== Request (before status)
    def check_hijack(env)
      if env['rack.hijack?']
        ## If rack.hijack? is true then rack.hijack must respond to #call.
        original_hijack = env['rack.hijack']
        assert("rack.hijack must respond to call") { original_hijack.respond_to?(:call) }
        env['rack.hijack'] = proc do
          ## rack.hijack must return the io that will also be assigned (or is
          ## already present, in rack.hijack_io.
          io = original_hijack.call
          HijackWrapper.new(io)
          ##
          ## rack.hijack_io must respond to:
          ## <tt>read, write, read_nonblock, write_nonblock, flush, close,
          ## close_read, close_write, closed?</tt>
          ##
          ## The semantics of these IO methods must be a best effort match to
          ## those of a normal ruby IO or Socket object, using standard
          ## arguments and raising standard exceptions. Servers are encouraged
          ## to simply pass on real IO objects, although it is recognized that
          ## this approach is not directly compatible with SPDY and HTTP 2.0.
          ##
          ## IO provided in rack.hijack_io should preference the
          ## IO::WaitReadable and IO::WaitWritable APIs wherever supported.
          ##
          ## There is a deliberate lack of full specification around
          ## rack.hijack_io, as semantics will change from server to server.
          ## Users are encouraged to utilize this API with a knowledge of their
          ## server choice, and servers may extend the functionality of
          ## hijack_io to provide additional features to users. The purpose of
          ## rack.hijack is for Rack to "get out of the way", as such, Rack only
          ## provides the minimum of specification and support.
          env['rack.hijack_io'] = HijackWrapper.new(env['rack.hijack_io'])
          io
        end
      else
        ##
        ## If rack.hijack? is false, then rack.hijack should not be set.
        assert("rack.hijack? is false, but rack.hijack is present") { env['rack.hijack'].nil? }
        ##
        ## If rack.hijack? is false, then rack.hijack_io should not be set.
        assert("rack.hijack? is false, but rack.hijack_io is present") { env['rack.hijack_io'].nil? }
      end
    end

    ## ==== Response (after headers)
    ## It is also possible to hijack a response after the status and headers
    ## have been sent.
    def check_hijack_response(headers, env)

      # this check uses headers like a hash, but the spec only requires
      # headers respond to #each
      headers = Rack::Utils::HeaderHash.new(headers)

      ## In order to do this, an application may set the special header
      ## <tt>rack.hijack</tt> to an object that responds to <tt>call</tt>
      ## accepting an argument that conforms to the <tt>rack.hijack_io</tt>
      ## protocol.
      ##
      ## After the headers have been sent, and this hijack callback has been
      ## called, the application is now responsible for the remaining lifecycle
      ## of the IO. The application is also responsible for maintaining HTTP
      ## semantics. Of specific note, in almost all cases in the current SPEC,
      ## applications will have wanted to specify the header Connection:close in
      ## HTTP/1.1, and not Connection:keep-alive, as there is no protocol for
      ## returning hijacked sockets to the web server. For that purpose, use the
      ## body streaming API instead (progressively yielding strings via each).
      ##
      ## Servers must ignore the <tt>body</tt> part of the response tuple when
      ## the <tt>rack.hijack</tt> response API is in use.

      if env['rack.hijack?'] && headers['rack.hijack']
        assert('rack.hijack header must respond to #call') {
          headers['rack.hijack'].respond_to? :call
        }
        original_hijack = headers['rack.hijack']
        headers['rack.hijack'] = proc do |io|
          original_hijack.call HijackWrapper.new(io)
        end
      else
        ##
        ## The special response header <tt>rack.hijack</tt> must only be set
        ## if the request env has <tt>rack.hijack?</tt> <tt>true</tt>.
        assert('rack.hijack header must not be present if server does not support hijacking') {
          headers['rack.hijack'].nil?
        }
      end
    end
    ## ==== Conventions
    ## * Middleware should not use hijack unless it is handling the whole
    ##   response.
    ## * Middleware may wrap the IO object for the response pattern.
    ## * Middleware should not wrap the IO object for the request pattern. The
    ##   request pattern is intended to provide the hijacker with "raw tcp".

    ## == The Response

    ## === The Status
    def check_status(status)
      ## This is an HTTP status. When parsed as integer (+to_i+), it must be
      ## greater than or equal to 100.
      assert("Status must be >=100 seen as integer") { status.to_i >= 100 }
    end

    ## === The Headers
    def check_headers(header)
      ## The header must respond to +each+, and yield values of key and value.
      assert("headers object should respond to #each, but doesn't (got #{header.class} as headers)") {
         header.respond_to? :each
      }
      header.each { |key, value|
        ## Special headers starting "rack." are for communicating with the
        ## server, and must not be sent back to the client.
        next if key =~ /^rack\..+$/

        ## The header keys must be Strings.
        assert("header key must be a string, was #{key.class}") {
          key.kind_of? String
        }
        ## The header must not contain a +Status+ key.
        assert("header must not contain Status") { key.downcase != "status" }
        ## The header must conform to RFC7230 token specification, i.e. cannot
        ## contain non-printable ASCII, DQUOTE or "(),/:;<=>?@[\]{}".
        assert("invalid header name: #{key}") { key !~ /[\(\),\/:;<=>\?@\[\\\]{}[:cntrl:]]/ }

        ## The values of the header must be Strings,
        assert("a header value must be a String, but the value of " +
          "'#{key}' is a #{value.class}") { value.kind_of? String }
        ## consisting of lines (for multiple header values, e.g. multiple
        ## <tt>Set-Cookie</tt> values) separated by "\\n".
        value.split("\n").each { |item|
          ## The lines must not contain characters below 037.
          assert("invalid header value #{key}: #{item.inspect}") {
            item !~ /[\000-\037]/
          }
        }
      }
    end

    ## === The Content-Type
    def check_content_type(status, headers)
      headers.each { |key, value|
        ## There must not be a <tt>Content-Type</tt>, when the +Status+ is 1xx,
        ## 204, 205 or 304.
        if key.downcase == "content-type"
          assert("Content-Type header found in #{status} response, not allowed") {
            not Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include? status.to_i
          }
          return
        end
      }
    end

    ## === The Content-Length
    def check_content_length(status, headers)
      headers.each { |key, value|
        if key.downcase == 'content-length'
          ## There must not be a <tt>Content-Length</tt> header when the
          ## +Status+ is 1xx, 204, 205 or 304.
          assert("Content-Length header found in #{status} response, not allowed") {
            not Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include? status.to_i
          }
          @content_length = value
        end
      }
    end

    def verify_content_length(bytes)
      if @head_request
        assert("Response body was given for HEAD request, but should be empty") {
          bytes == 0
        }
      elsif @content_length
        assert("Content-Length header was #{@content_length}, but should be #{bytes}") {
          @content_length == bytes.to_s
        }
      end
    end

    ## === The Body
    def each
      @closed = false
      bytes = 0

      ## The Body must respond to +each+
      assert("Response body must respond to each") do
        @body.respond_to?(:each)
      end

      @body.each { |part|
        ## and must only yield String values.
        assert("Body yielded non-string value #{part.inspect}") {
          part.kind_of? String
        }
        bytes += Rack::Utils.bytesize(part)
        yield part
      }
      verify_content_length(bytes)

      ##
      ## The Body itself should not be an instance of String, as this will
      ## break in Ruby 1.9.
      ##
      ## If the Body responds to +close+, it will be called after iteration. If
      ## the body is replaced by a middleware after action, the original body
      ## must be closed first, if it responds to close.
      # XXX howto: assert("Body has not been closed") { @closed }


      ##
      ## If the Body responds to +to_path+, it must return a String
      ## identifying the location of a file whose contents are identical
      ## to that produced by calling +each+; this may be used by the
      ## server as an alternative, possibly more efficient way to
      ## transport the response.

      if @body.respond_to?(:to_path)
        assert("The file identified by body.to_path does not exist") {
          ::File.exist? @body.to_path
        }
      end

      ##
      ## The Body commonly is an Array of Strings, the application
      ## instance itself, or a File-like object.
    end

    def close
      @closed = true
      @body.close  if @body.respond_to?(:close)
    end

    # :startdoc:

  end
end

## == Thanks
## Some parts of this specification are adopted from PEP333: Python
## Web Server Gateway Interface
## v1.0 (http://www.python.org/dev/peps/pep-0333/). I'd like to thank
## everyone involved in that effort.
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/urlmap.rb000064400000004731150402106520015671 0ustar00module Rack
  # Rack::URLMap takes a hash mapping urls or paths to apps, and
  # dispatches accordingly.  Support for HTTP/1.1 host names exists if
  # the URLs start with <tt>http://</tt> or <tt>https://</tt>.
  #
  # URLMap modifies the SCRIPT_NAME and PATH_INFO such that the part
  # relevant for dispatch is in the SCRIPT_NAME, and the rest in the
  # PATH_INFO.  This should be taken care of when you need to
  # reconstruct the URL in order to create links.
  #
  # URLMap dispatches in such a way that the longest paths are tried
  # first, since they are most specific.

  class URLMap
    NEGATIVE_INFINITY = -1.0 / 0.0
    INFINITY = 1.0 / 0.0

    def initialize(map = {})
      remap(map)
    end

    def remap(map)
      @mapping = map.map { |location, app|
        if location =~ %r{\Ahttps?://(.*?)(/.*)}
          host, location = $1, $2
        else
          host = nil
        end

        unless location[0] == ?/
          raise ArgumentError, "paths need to start with /"
        end

        location = location.chomp('/')
        match = Regexp.new("^#{Regexp.quote(location).gsub('/', '/+')}(.*)", nil, 'n')

        [host, location, match, app]
      }.sort_by do |(host, location, _, _)|
        [host ? -host.size : INFINITY, -location.size]
      end
    end

    def call(env)
      path = env[PATH_INFO]
      script_name = env['SCRIPT_NAME']
      hHost = env['HTTP_HOST']
      sName = env['SERVER_NAME']
      sPort = env['SERVER_PORT']

      @mapping.each do |host, location, match, app|
        unless casecmp?(hHost, host) \
            || casecmp?(sName, host) \
            || (!host && (casecmp?(hHost, sName) ||
                          casecmp?(hHost, sName+':'+sPort)))
          next
        end

        next unless m = match.match(path.to_s)

        rest = m[1]
        next unless !rest || rest.empty? || rest[0] == ?/

        env['SCRIPT_NAME'] = (script_name + location)
        env['PATH_INFO'] = rest

        return app.call(env)
      end

      [404, {CONTENT_TYPE => "text/plain", "X-Cascade" => "pass"}, ["Not Found: #{path}"]]

    ensure
      env['PATH_INFO'] = path
      env['SCRIPT_NAME'] = script_name
    end

    private
    def casecmp?(v1, v2)
      # if both nil, or they're the same string
      return true if v1 == v2

      # if either are nil... (but they're not the same)
      return false if v1.nil?
      return false if v2.nil?

      # otherwise check they're not case-insensitive the same
      v1.casecmp(v2).zero?
    end
  end
end

lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/file.rb000064400000010133150402106520015301 0ustar00require 'time'
require 'rack/utils'
require 'rack/mime'

module Rack
  # Rack::File serves files below the +root+ directory given, according to the
  # path info of the Rack request.
  # e.g. when Rack::File.new("/etc") is used, you can access 'passwd' file
  # as http://localhost:9292/passwd
  #
  # Handlers can detect if bodies are a Rack::File, and use mechanisms
  # like sendfile on the +path+.

  class File
    ALLOWED_VERBS = %w[GET HEAD OPTIONS]
    ALLOW_HEADER = ALLOWED_VERBS.join(', ')

    attr_accessor :root
    attr_accessor :path
    attr_accessor :cache_control

    alias :to_path :path

    def initialize(root, headers={}, default_mime = 'text/plain')
      @root = root
      @headers = headers
      @default_mime = default_mime
    end

    def call(env)
      dup._call(env)
    end

    F = ::File

    def _call(env)
      unless ALLOWED_VERBS.include? env[REQUEST_METHOD]
        return fail(405, "Method Not Allowed", {'Allow' => ALLOW_HEADER})
      end

      path_info = Utils.unescape(env[PATH_INFO])
      clean_path_info = Utils.clean_path_info(path_info)

      @path = F.join(@root, clean_path_info)

      available = begin
        F.file?(@path) && F.readable?(@path)
      rescue SystemCallError
        false
      end

      if available
        serving(env)
      else
        fail(404, "File not found: #{path_info}")
      end
    end

    def serving(env)
      if env["REQUEST_METHOD"] == "OPTIONS"
        return [200, {'Allow' => ALLOW_HEADER, CONTENT_LENGTH => '0'}, []]
      end
      last_modified = F.mtime(@path).httpdate
      return [304, {}, []] if env['HTTP_IF_MODIFIED_SINCE'] == last_modified

      headers = { "Last-Modified" => last_modified }
      headers[CONTENT_TYPE] = mime_type if mime_type

      # Set custom headers
      @headers.each { |field, content| headers[field] = content } if @headers

      response = [ 200, headers, env[REQUEST_METHOD] == "HEAD" ? [] : self ]

      size = filesize

      ranges = Rack::Utils.byte_ranges(env, size)
      if ranges.nil? || ranges.length > 1
        # No ranges, or multiple ranges (which we don't support):
        # TODO: Support multiple byte-ranges
        response[0] = 200
        @range = 0..size-1
      elsif ranges.empty?
        # Unsatisfiable. Return error, and file size:
        response = fail(416, "Byte range unsatisfiable")
        response[1]["Content-Range"] = "bytes */#{size}"
        return response
      else
        # Partial content:
        @range = ranges[0]
        response[0] = 206
        response[1]["Content-Range"] = "bytes #{@range.begin}-#{@range.end}/#{size}"
        size = @range.end - @range.begin + 1
      end

      response[2] = [response_body] unless response_body.nil?

      response[1][CONTENT_LENGTH] = size.to_s
      response
    end

    def each
      F.open(@path, "rb") do |file|
        file.seek(@range.begin)
        remaining_len = @range.end-@range.begin+1
        while remaining_len > 0
          part = file.read([8192, remaining_len].min)
          break unless part
          remaining_len -= part.length

          yield part
        end
      end
    end

    private

    def fail(status, body, headers = {})
      body += "\n"
      [
        status,
        {
          CONTENT_TYPE   => "text/plain",
          CONTENT_LENGTH => body.size.to_s,
          "X-Cascade" => "pass"
        }.merge!(headers),
        [body]
      ]
    end

    # The MIME type for the contents of the file located at @path
    def mime_type
      Mime.mime_type(F.extname(@path), @default_mime)
    end

    def filesize
      # If response_body is present, use its size.
      return Rack::Utils.bytesize(response_body) if response_body

      #   We check via File::size? whether this file provides size info
      #   via stat (e.g. /proc files often don't), otherwise we have to
      #   figure it out by reading the whole file into memory.
      F.size?(@path) || Utils.bytesize(F.read(@path))
    end

    # By default, the response body for file requests is nil.
    # In this case, the response body will be generated later
    # from the file at @path
    def response_body
      nil
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/content_type.rb000064400000001236150402106520017101 0ustar00require 'rack/utils'

module Rack

  # Sets the Content-Type header on responses which don't have one.
  #
  # Builder Usage:
  #   use Rack::ContentType, "text/plain"
  #
  # When no content type argument is provided, "text/html" is assumed.
  class ContentType
    include Rack::Utils

    def initialize(app, content_type = "text/html")
      @app, @content_type = app, content_type
    end

    def call(env)
      status, headers, body = @app.call(env)
      headers = Utils::HeaderHash.new(headers)

      unless STATUS_WITH_NO_ENTITY_BODY.include?(status)
        headers[CONTENT_TYPE] ||= @content_type
      end

      [status, headers, body]
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/body_proxy.rb000064400000001676150402106520016574 0ustar00module Rack
  class BodyProxy
    def initialize(body, &block)
      @body, @block, @closed = body, block, false
    end

    def respond_to?(*args)
      return false if args.first.to_s =~ /^to_ary$/
      super or @body.respond_to?(*args)
    end

    def close
      return if @closed
      @closed = true
      begin
        @body.close if @body.respond_to? :close
      ensure
        @block.call
      end
    end

    def closed?
      @closed
    end

    # N.B. This method is a special case to address the bug described by #434.
    # We are applying this special case for #each only. Future bugs of this
    # class will be handled by requesting users to patch their ruby
    # implementation, to save adding too many methods in this class.
    def each(*args, &block)
      @body.each(*args, &block)
    end

    def method_missing(*args, &block)
      super if args.first.to_s =~ /^to_ary$/
      @body.__send__(*args, &block)
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/methodoverride.rb000064400000002017150402106520017404 0ustar00module Rack
  class MethodOverride
    HTTP_METHODS = %w(GET HEAD PUT POST DELETE OPTIONS PATCH LINK UNLINK)

    METHOD_OVERRIDE_PARAM_KEY = "_method".freeze
    HTTP_METHOD_OVERRIDE_HEADER = "HTTP_X_HTTP_METHOD_OVERRIDE".freeze
    ALLOWED_METHODS = ["POST"]

    def initialize(app)
      @app = app
    end

    def call(env)
      if allowed_methods.include?(env[REQUEST_METHOD])
        method = method_override(env)
        if HTTP_METHODS.include?(method)
          env["rack.methodoverride.original_method"] = env[REQUEST_METHOD]
          env[REQUEST_METHOD] = method
        end
      end

      @app.call(env)
    end

    def method_override(env)
      req = Request.new(env)
      method = method_override_param(req) ||
        env[HTTP_METHOD_OVERRIDE_HEADER]
      method.to_s.upcase
    end

    private

    def allowed_methods
      ALLOWED_METHODS
    end

    def method_override_param(req)
      req.POST[METHOD_OVERRIDE_PARAM_KEY]
    rescue Utils::InvalidParameterError, Utils::ParameterTypeError
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/config.rb000064400000000573150402106520015636 0ustar00module Rack
  # Rack::Config modifies the environment using the block given during
  # initialization.
  #
  # Example:
  #     use Rack::Config do |env|
  #       env['my-key'] = 'some-value'
  #     end
  class Config
    def initialize(app, &block)
      @app = app
      @block = block
    end

    def call(env)
      @block.call(env)
      @app.call(env)
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/nulllogger.rb000064400000001667150402106530016551 0ustar00module Rack
  class NullLogger
    def initialize(app)
      @app = app
    end

    def call(env)
      env['rack.logger'] = self
      @app.call(env)
    end

    def info(progname = nil, &block); end
    def debug(progname = nil, &block); end
    def warn(progname = nil, &block); end
    def error(progname = nil, &block); end
    def fatal(progname = nil, &block); end
    def unknown(progname = nil, &block); end
    def info? ;  end
    def debug? ; end
    def warn? ;  end
    def error? ; end
    def fatal? ; end
    def level ; end
    def progname ; end
    def datetime_format ; end
    def formatter ; end
    def sev_threshold ; end
    def level=(level); end
    def progname=(progname); end
    def datetime_format=(datetime_format); end
    def formatter=(formatter); end
    def sev_threshold=(sev_threshold); end
    def close ; end
    def add(severity, message = nil, progname = nil, &block); end
    def <<(msg); end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/showexceptions.rb000064400000027314150402106530017456 0ustar00require 'ostruct'
require 'erb'
require 'rack/request'
require 'rack/utils'

module Rack
  # Rack::ShowExceptions catches all exceptions raised from the app it
  # wraps.  It shows a useful backtrace with the sourcefile and
  # clickable context, the whole Rack environment and the request
  # data.
  #
  # Be careful when you use this on public-facing sites as it could
  # reveal information helpful to attackers.

  class ShowExceptions
    CONTEXT = 7

    def initialize(app)
      @app = app
      @template = ERB.new(TEMPLATE)
    end

    def call(env)
      @app.call(env)
    rescue StandardError, LoadError, SyntaxError => e
      exception_string = dump_exception(e)

      env["rack.errors"].puts(exception_string)
      env["rack.errors"].flush

      if accepts_html?(env)
        content_type = "text/html"
        body = pretty(env, e)
      else
        content_type = "text/plain"
        body = exception_string
      end

      [
        500,
        {
          CONTENT_TYPE => content_type,
          CONTENT_LENGTH => Rack::Utils.bytesize(body).to_s,
        },
        [body],
      ]
    end

    def prefers_plaintext?(env)
      !accepts_html(env)
    end

    def accepts_html?(env)
      Rack::Utils.best_q_match(env["HTTP_ACCEPT"], %w[text/html])
    end
    private :accepts_html?

    def dump_exception(exception)
      string = "#{exception.class}: #{exception.message}\n"
      string << exception.backtrace.map { |l| "\t#{l}" }.join("\n")
      string
    end

    def pretty(env, exception)
      req = Rack::Request.new(env)

      # This double assignment is to prevent an "unused variable" warning on
      # Ruby 1.9.3.  Yes, it is dumb, but I don't like Ruby yelling at me.
      path = path = (req.script_name + req.path_info).squeeze("/")

      # This double assignment is to prevent an "unused variable" warning on
      # Ruby 1.9.3.  Yes, it is dumb, but I don't like Ruby yelling at me.
      frames = frames = exception.backtrace.map { |line|
        frame = OpenStruct.new
        if line =~ /(.*?):(\d+)(:in `(.*)')?/
          frame.filename = $1
          frame.lineno = $2.to_i
          frame.function = $4

          begin
            lineno = frame.lineno-1
            lines = ::File.readlines(frame.filename)
            frame.pre_context_lineno = [lineno-CONTEXT, 0].max
            frame.pre_context = lines[frame.pre_context_lineno...lineno]
            frame.context_line = lines[lineno].chomp
            frame.post_context_lineno = [lineno+CONTEXT, lines.size].min
            frame.post_context = lines[lineno+1..frame.post_context_lineno]
          rescue
          end

          frame
        else
          nil
        end
      }.compact

      @template.result(binding)
    end

    def h(obj)                  # :nodoc:
      case obj
      when String
        Utils.escape_html(obj)
      else
        Utils.escape_html(obj.inspect)
      end
    end

    # :stopdoc:

# adapted from Django <djangoproject.com>
# Copyright (c) 2005, the Lawrence Journal-World
# Used under the modified BSD license:
# http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5
TEMPLATE = <<'HTML'
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta name="robots" content="NONE,NOARCHIVE" />
  <title><%=h exception.class %> at <%=h path %></title>
  <style type="text/css">
    html * { padding:0; margin:0; }
    body * { padding:10px 20px; }
    body * * { padding:0; }
    body { font:small sans-serif; }
    body>div { border-bottom:1px solid #ddd; }
    h1 { font-weight:normal; }
    h2 { margin-bottom:.8em; }
    h2 span { font-size:80%; color:#666; font-weight:normal; }
    h3 { margin:1em 0 .5em 0; }
    h4 { margin:0 0 .5em 0; font-weight: normal; }
    table {
        border:1px solid #ccc; border-collapse: collapse; background:white; }
    tbody td, tbody th { vertical-align:top; padding:2px 3px; }
    thead th {
        padding:1px 6px 1px 3px; background:#fefefe; text-align:left;
        font-weight:normal; font-size:11px; border:1px solid #ddd; }
    tbody th { text-align:right; color:#666; padding-right:.5em; }
    table.vars { margin:5px 0 2px 40px; }
    table.vars td, table.req td { font-family:monospace; }
    table td.code { width:100%;}
    table td.code div { overflow:hidden; }
    table.source th { color:#666; }
    table.source td {
        font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
    ul.traceback { list-style-type:none; }
    ul.traceback li.frame { margin-bottom:1em; }
    div.context { margin: 10px 0; }
    div.context ol {
        padding-left:30px; margin:0 10px; list-style-position: inside; }
    div.context ol li {
        font-family:monospace; white-space:pre; color:#666; cursor:pointer; }
    div.context ol.context-line li { color:black; background-color:#ccc; }
    div.context ol.context-line li span { float: right; }
    div.commands { margin-left: 40px; }
    div.commands a { color:black; text-decoration:none; }
    #summary { background: #ffc; }
    #summary h2 { font-weight: normal; color: #666; }
    #summary ul#quicklinks { list-style-type: none; margin-bottom: 2em; }
    #summary ul#quicklinks li { float: left; padding: 0 1em; }
    #summary ul#quicklinks>li+li { border-left: 1px #666 solid; }
    #explanation { background:#eee; }
    #template, #template-not-exist { background:#f6f6f6; }
    #template-not-exist ul { margin: 0 0 0 20px; }
    #traceback { background:#eee; }
    #requestinfo { background:#f6f6f6; padding-left:120px; }
    #summary table { border:none; background:transparent; }
    #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
    #requestinfo h3 { margin-bottom:-1em; }
    .error { background: #ffc; }
    .specific { color:#cc3300; font-weight:bold; }
  </style>
  <script type="text/javascript">
  //<!--
    function getElementsByClassName(oElm, strTagName, strClassName){
        // Written by Jonathan Snook, http://www.snook.ca/jon;
        // Add-ons by Robert Nyman, http://www.robertnyman.com
        var arrElements = (strTagName == "*" && document.all)? document.all :
        oElm.getElementsByTagName(strTagName);
        var arrReturnElements = new Array();
        strClassName = strClassName.replace(/\-/g, "\\-");
        var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$$)");
        var oElement;
        for(var i=0; i<arrElements.length; i++){
            oElement = arrElements[i];
            if(oRegExp.test(oElement.className)){
                arrReturnElements.push(oElement);
            }
        }
        return (arrReturnElements)
    }
    function hideAll(elems) {
      for (var e = 0; e < elems.length; e++) {
        elems[e].style.display = 'none';
      }
    }
    window.onload = function() {
      hideAll(getElementsByClassName(document, 'table', 'vars'));
      hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
      hideAll(getElementsByClassName(document, 'ol', 'post-context'));
    }
    function toggle() {
      for (var i = 0; i < arguments.length; i++) {
        var e = document.getElementById(arguments[i]);
        if (e) {
          e.style.display = e.style.display == 'none' ? 'block' : 'none';
        }
      }
      return false;
    }
    function varToggle(link, id) {
      toggle('v' + id);
      var s = link.getElementsByTagName('span')[0];
      var uarr = String.fromCharCode(0x25b6);
      var darr = String.fromCharCode(0x25bc);
      s.innerHTML = s.innerHTML == uarr ? darr : uarr;
      return false;
    }
    //-->
  </script>
</head>
<body>

<div id="summary">
  <h1><%=h exception.class %> at <%=h path %></h1>
  <h2><%=h exception.message %></h2>
  <table><tr>
    <th>Ruby</th>
    <td>
<% if first = frames.first %>
      <code><%=h first.filename %></code>: in <code><%=h first.function %></code>, line <%=h frames.first.lineno %>
<% else %>
      unknown location
<% end %>
    </td>
  </tr><tr>
    <th>Web</th>
    <td><code><%=h req.request_method %> <%=h(req.host + path)%></code></td>
  </tr></table>

  <h3>Jump to:</h3>
  <ul id="quicklinks">
    <li><a href="#get-info">GET</a></li>
    <li><a href="#post-info">POST</a></li>
    <li><a href="#cookie-info">Cookies</a></li>
    <li><a href="#env-info">ENV</a></li>
  </ul>
</div>

<div id="traceback">
  <h2>Traceback <span>(innermost first)</span></h2>
  <ul class="traceback">
<% frames.each { |frame| %>
      <li class="frame">
        <code><%=h frame.filename %></code>: in <code><%=h frame.function %></code>

          <% if frame.context_line %>
          <div class="context" id="c<%=h frame.object_id %>">
              <% if frame.pre_context %>
              <ol start="<%=h frame.pre_context_lineno+1 %>" class="pre-context" id="pre<%=h frame.object_id %>">
                <% frame.pre_context.each { |line| %>
                <li onclick="toggle('pre<%=h frame.object_id %>', 'post<%=h frame.object_id %>')"><%=h line %></li>
                <% } %>
              </ol>
              <% end %>

            <ol start="<%=h frame.lineno %>" class="context-line">
              <li onclick="toggle('pre<%=h frame.object_id %>', 'post<%=h frame.object_id %>')"><%=h frame.context_line %><span>...</span></li></ol>

              <% if frame.post_context %>
              <ol start='<%=h frame.lineno+1 %>' class="post-context" id="post<%=h frame.object_id %>">
                <% frame.post_context.each { |line| %>
                <li onclick="toggle('pre<%=h frame.object_id %>', 'post<%=h frame.object_id %>')"><%=h line %></li>
                <% } %>
              </ol>
              <% end %>
          </div>
          <% end %>
      </li>
<% } %>
  </ul>
</div>

<div id="requestinfo">
  <h2>Request information</h2>

  <h3 id="get-info">GET</h3>
  <% if req.GET and not req.GET.empty? %>
    <table class="req">
      <thead>
        <tr>
          <th>Variable</th>
          <th>Value</th>
        </tr>
      </thead>
      <tbody>
          <% req.GET.sort_by { |k, v| k.to_s }.each { |key, val| %>
          <tr>
            <td><%=h key %></td>
            <td class="code"><div><%=h val.inspect %></div></td>
          </tr>
          <% } %>
      </tbody>
    </table>
  <% else %>
    <p>No GET data.</p>
  <% end %>

  <h3 id="post-info">POST</h3>
  <% if req.POST and not req.POST.empty? %>
    <table class="req">
      <thead>
        <tr>
          <th>Variable</th>
          <th>Value</th>
        </tr>
      </thead>
      <tbody>
          <% req.POST.sort_by { |k, v| k.to_s }.each { |key, val| %>
          <tr>
            <td><%=h key %></td>
            <td class="code"><div><%=h val.inspect %></div></td>
          </tr>
          <% } %>
      </tbody>
    </table>
  <% else %>
    <p>No POST data.</p>
  <% end %>


  <h3 id="cookie-info">COOKIES</h3>
  <% unless req.cookies.empty? %>
    <table class="req">
      <thead>
        <tr>
          <th>Variable</th>
          <th>Value</th>
        </tr>
      </thead>
      <tbody>
        <% req.cookies.each { |key, val| %>
          <tr>
            <td><%=h key %></td>
            <td class="code"><div><%=h val.inspect %></div></td>
          </tr>
        <% } %>
      </tbody>
    </table>
  <% else %>
    <p>No cookie data.</p>
  <% end %>

  <h3 id="env-info">Rack ENV</h3>
    <table class="req">
      <thead>
        <tr>
          <th>Variable</th>
          <th>Value</th>
        </tr>
      </thead>
      <tbody>
          <% env.sort_by { |k, v| k.to_s }.each { |key, val| %>
          <tr>
            <td><%=h key %></td>
            <td class="code"><div><%=h val %></div></td>
          </tr>
          <% } %>
      </tbody>
    </table>

</div>

<div id="explanation">
  <p>
    You're seeing this error because you use <code>Rack::ShowExceptions</code>.
  </p>
</div>

</body>
</html>
HTML

    # :startdoc:
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/lobster.rb000064400000003743150402106530016046 0ustar00require 'zlib'

require 'rack/request'
require 'rack/response'

module Rack
  # Paste has a Pony, Rack has a Lobster!
  class Lobster
    LobsterString = Zlib::Inflate.inflate("eJx9kEEOwyAMBO99xd7MAcytUhPlJyj2
    P6jy9i4k9EQyGAnBarEXeCBqSkntNXsi/ZCvC48zGQoZKikGrFMZvgS5ZHd+aGWVuWwhVF0
    t1drVmiR42HcWNz5w3QanT+2gIvTVCiE1lm1Y0eU4JGmIIbaKwextKn8rvW+p5PIwFl8ZWJ
    I8jyiTlhTcYXkekJAzTyYN6E08A+dk8voBkAVTJQ==".delete("\n ").unpack("m*")[0])

    LambdaLobster = lambda { |env|
      if env[QUERY_STRING].include?("flip")
        lobster = LobsterString.split("\n").
          map { |line| line.ljust(42).reverse }.
          join("\n")
        href = "?"
      else
        lobster = LobsterString
        href = "?flip"
      end

      content = ["<title>Lobstericious!</title>",
                 "<pre>", lobster, "</pre>",
                 "<a href='#{href}'>flip!</a>"]
      length = content.inject(0) { |a,e| a+e.size }.to_s
      [200, {CONTENT_TYPE => "text/html", CONTENT_LENGTH => length}, content]
    }

    def call(env)
      req = Request.new(env)
      if req.GET["flip"] == "left"
        lobster = LobsterString.split("\n").map do |line|
          line.ljust(42).reverse.
            gsub('\\', 'TEMP').
            gsub('/', '\\').
            gsub('TEMP', '/').
            gsub('{','}').
            gsub('(',')')
        end.join("\n")
        href = "?flip=right"
      elsif req.GET["flip"] == "crash"
        raise "Lobster crashed"
      else
        lobster = LobsterString
        href = "?flip=left"
      end

      res = Response.new
      res.write "<title>Lobstericious!</title>"
      res.write "<pre>"
      res.write lobster
      res.write "</pre>"
      res.write "<p><a href='#{href}'>flip!</a></p>"
      res.write "<p><a href='?flip=crash'>crash!</a></p>"
      res.finish
    end

  end
end

if $0 == __FILE__
  require 'rack'
  require 'rack/showexceptions'
  Rack::Server.start(
    :app => Rack::ShowExceptions.new(Rack::Lint.new(Rack::Lobster.new)), :Port => 9292
  )
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/lock.rb000064400000001131150402106530015311 0ustar00require 'thread'
require 'rack/body_proxy'

module Rack
  # Rack::Lock locks every request inside a mutex, so that every request
  # will effectively be executed synchronously.
  class Lock
    FLAG = 'rack.multithread'.freeze

    def initialize(app, mutex = Mutex.new)
      @app, @mutex = app, mutex
    end

    def call(env)
      old, env[FLAG] = env[FLAG], false
      @mutex.lock
      response = @app.call(env)
      body = BodyProxy.new(response[2]) { @mutex.unlock }
      response[2] = body
      response
    ensure
      @mutex.unlock unless body
      env[FLAG] = old
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/content_length.rb000064400000001510150402106530017375 0ustar00require 'rack/utils'
require 'rack/body_proxy'

module Rack

  # Sets the Content-Length header on responses with fixed-length bodies.
  class ContentLength
    include Rack::Utils

    def initialize(app)
      @app = app
    end

    def call(env)
      status, headers, body = @app.call(env)
      headers = HeaderHash.new(headers)

      if !STATUS_WITH_NO_ENTITY_BODY.include?(status.to_i) &&
         !headers[CONTENT_LENGTH] &&
         !headers['Transfer-Encoding'] &&
         body.respond_to?(:to_ary)

        obody = body
        body, length = [], 0
        obody.each { |part| body << part; length += bytesize(part) }

        body = BodyProxy.new(body) do
          obody.close if obody.respond_to?(:close)
        end

        headers[CONTENT_LENGTH] = length.to_s
      end

      [status, headers, body]
    end
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/response.rb000064400000010522150402106530016223 0ustar00require 'rack/request'
require 'rack/utils'
require 'rack/body_proxy'
require 'time'

module Rack
  # Rack::Response provides a convenient interface to create a Rack
  # response.
  #
  # It allows setting of headers and cookies, and provides useful
  # defaults (a OK response containing HTML).
  #
  # You can use Response#write to iteratively generate your response,
  # but note that this is buffered by Rack::Response until you call
  # +finish+.  +finish+ however can take a block inside which calls to
  # +write+ are synchronous with the Rack response.
  #
  # Your application's +call+ should end returning Response#finish.

  class Response
    attr_accessor :length

    CHUNKED = 'chunked'.freeze
    TRANSFER_ENCODING = 'Transfer-Encoding'.freeze
    def initialize(body=[], status=200, header={})
      @status = status.to_i
      @header = Utils::HeaderHash.new.merge(header)

      @chunked = CHUNKED == @header[TRANSFER_ENCODING]
      @writer  = lambda { |x| @body << x }
      @block   = nil
      @length  = 0

      @body = []

      if body.respond_to? :to_str
        write body.to_str
      elsif body.respond_to?(:each)
        body.each { |part|
          write part.to_s
        }
      else
        raise TypeError, "stringable or iterable required"
      end

      yield self  if block_given?
    end

    attr_reader :header
    attr_accessor :status, :body

    def [](key)
      header[key]
    end

    def []=(key, value)
      header[key] = value
    end

    def set_cookie(key, value)
      Utils.set_cookie_header!(header, key, value)
    end

    def delete_cookie(key, value={})
      Utils.delete_cookie_header!(header, key, value)
    end

    def redirect(target, status=302)
      self.status = status
      self["Location"] = target
    end

    def finish(&block)
      @block = block

      if [204, 205, 304].include?(status.to_i)
        header.delete CONTENT_TYPE
        header.delete CONTENT_LENGTH
        close
        [status.to_i, header, []]
      else
        [status.to_i, header, BodyProxy.new(self){}]
      end
    end
    alias to_a finish           # For *response
    alias to_ary finish         # For implicit-splat on Ruby 1.9.2

    def each(&callback)
      @body.each(&callback)
      @writer = callback
      @block.call(self)  if @block
    end

    # Append to body and update Content-Length.
    #
    # NOTE: Do not mix #write and direct #body access!
    #
    def write(str)
      s = str.to_s
      @length += Rack::Utils.bytesize(s) unless @chunked
      @writer.call s

      header[CONTENT_LENGTH] = @length.to_s unless @chunked
      str
    end

    def close
      body.close if body.respond_to?(:close)
    end

    def empty?
      @block == nil && @body.empty?
    end

    alias headers header

    module Helpers
      def invalid?;            status < 100 || status >= 600;        end

      def informational?;      status >= 100 && status < 200;        end
      def successful?;         status >= 200 && status < 300;        end
      def redirection?;        status >= 300 && status < 400;        end
      def client_error?;       status >= 400 && status < 500;        end
      def server_error?;       status >= 500 && status < 600;        end

      def ok?;                 status == 200;                        end
      def created?;            status == 201;                        end
      def accepted?;           status == 202;                        end
      def bad_request?;        status == 400;                        end
      def unauthorized?;       status == 401;                        end
      def forbidden?;          status == 403;                        end
      def not_found?;          status == 404;                        end
      def method_not_allowed?; status == 405;                        end
      def i_m_a_teapot?;       status == 418;                        end
      def unprocessable?;      status == 422;                        end

      def redirect?;           [301, 302, 303, 307].include? status; end

      # Headers
      attr_reader :headers, :original_headers

      def include?(header)
        !!headers[header]
      end

      def content_type
        headers[CONTENT_TYPE]
      end

      def content_length
        cl = headers[CONTENT_LENGTH]
        cl ? cl.to_i : cl
      end

      def location
        headers["Location"]
      end
    end

    include Helpers
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/mime.rb000064400000075676150402106530015341 0ustar00module Rack
  module Mime
    # Returns String with mime type if found, otherwise use +fallback+.
    # +ext+ should be filename extension in the '.ext' format that
    #       File.extname(file) returns.
    # +fallback+ may be any object
    #
    # Also see the documentation for MIME_TYPES
    #
    # Usage:
    #     Rack::Mime.mime_type('.foo')
    #
    # This is a shortcut for:
    #     Rack::Mime::MIME_TYPES.fetch('.foo', 'application/octet-stream')

    def mime_type(ext, fallback='application/octet-stream')
      MIME_TYPES.fetch(ext.to_s.downcase, fallback)
    end
    module_function :mime_type

    # Returns true if the given value is a mime match for the given mime match
    # specification, false otherwise.
    #
    #    Rack::Mime.match?('text/html', 'text/*') => true
    #    Rack::Mime.match?('text/plain', '*') => true
    #    Rack::Mime.match?('text/html', 'application/json') => false

    def match?(value, matcher)
      v1, v2 = value.split('/', 2)
      m1, m2 = matcher.split('/', 2)

      (m1 == '*' || v1 == m1) && (m2.nil? || m2 == '*' || m2 == v2)
    end
    module_function :match?

    # List of most common mime-types, selected various sources
    # according to their usefulness in a webserving scope for Ruby
    # users.
    #
    # To amend this list with your local mime.types list you can use:
    #
    #     require 'webrick/httputils'
    #     list = WEBrick::HTTPUtils.load_mime_types('/etc/mime.types')
    #     Rack::Mime::MIME_TYPES.merge!(list)
    #
    # N.B. On Ubuntu the mime.types file does not include the leading period, so
    # users may need to modify the data before merging into the hash.
    #
    # To add the list mongrel provides, use:
    #
    #     require 'mongrel/handlers'
    #     Rack::Mime::MIME_TYPES.merge!(Mongrel::DirHandler::MIME_TYPES)

    MIME_TYPES = {
      ".123"       => "application/vnd.lotus-1-2-3",
      ".3dml"      => "text/vnd.in3d.3dml",
      ".3g2"       => "video/3gpp2",
      ".3gp"       => "video/3gpp",
      ".a"         => "application/octet-stream",
      ".acc"       => "application/vnd.americandynamics.acc",
      ".ace"       => "application/x-ace-compressed",
      ".acu"       => "application/vnd.acucobol",
      ".aep"       => "application/vnd.audiograph",
      ".afp"       => "application/vnd.ibm.modcap",
      ".ai"        => "application/postscript",
      ".aif"       => "audio/x-aiff",
      ".aiff"      => "audio/x-aiff",
      ".ami"       => "application/vnd.amiga.ami",
      ".appcache"  => "text/cache-manifest",
      ".apr"       => "application/vnd.lotus-approach",
      ".asc"       => "application/pgp-signature",
      ".asf"       => "video/x-ms-asf",
      ".asm"       => "text/x-asm",
      ".aso"       => "application/vnd.accpac.simply.aso",
      ".asx"       => "video/x-ms-asf",
      ".atc"       => "application/vnd.acucorp",
      ".atom"      => "application/atom+xml",
      ".atomcat"   => "application/atomcat+xml",
      ".atomsvc"   => "application/atomsvc+xml",
      ".atx"       => "application/vnd.antix.game-component",
      ".au"        => "audio/basic",
      ".avi"       => "video/x-msvideo",
      ".bat"       => "application/x-msdownload",
      ".bcpio"     => "application/x-bcpio",
      ".bdm"       => "application/vnd.syncml.dm+wbxml",
      ".bh2"       => "application/vnd.fujitsu.oasysprs",
      ".bin"       => "application/octet-stream",
      ".bmi"       => "application/vnd.bmi",
      ".bmp"       => "image/bmp",
      ".box"       => "application/vnd.previewsystems.box",
      ".btif"      => "image/prs.btif",
      ".bz"        => "application/x-bzip",
      ".bz2"       => "application/x-bzip2",
      ".c"         => "text/x-c",
      ".c4g"       => "application/vnd.clonk.c4group",
      ".cab"       => "application/vnd.ms-cab-compressed",
      ".cc"        => "text/x-c",
      ".ccxml"     => "application/ccxml+xml",
      ".cdbcmsg"   => "application/vnd.contact.cmsg",
      ".cdkey"     => "application/vnd.mediastation.cdkey",
      ".cdx"       => "chemical/x-cdx",
      ".cdxml"     => "application/vnd.chemdraw+xml",
      ".cdy"       => "application/vnd.cinderella",
      ".cer"       => "application/pkix-cert",
      ".cgm"       => "image/cgm",
      ".chat"      => "application/x-chat",
      ".chm"       => "application/vnd.ms-htmlhelp",
      ".chrt"      => "application/vnd.kde.kchart",
      ".cif"       => "chemical/x-cif",
      ".cii"       => "application/vnd.anser-web-certificate-issue-initiation",
      ".cil"       => "application/vnd.ms-artgalry",
      ".cla"       => "application/vnd.claymore",
      ".class"     => "application/octet-stream",
      ".clkk"      => "application/vnd.crick.clicker.keyboard",
      ".clkp"      => "application/vnd.crick.clicker.palette",
      ".clkt"      => "application/vnd.crick.clicker.template",
      ".clkw"      => "application/vnd.crick.clicker.wordbank",
      ".clkx"      => "application/vnd.crick.clicker",
      ".clp"       => "application/x-msclip",
      ".cmc"       => "application/vnd.cosmocaller",
      ".cmdf"      => "chemical/x-cmdf",
      ".cml"       => "chemical/x-cml",
      ".cmp"       => "application/vnd.yellowriver-custom-menu",
      ".cmx"       => "image/x-cmx",
      ".com"       => "application/x-msdownload",
      ".conf"      => "text/plain",
      ".cpio"      => "application/x-cpio",
      ".cpp"       => "text/x-c",
      ".cpt"       => "application/mac-compactpro",
      ".crd"       => "application/x-mscardfile",
      ".crl"       => "application/pkix-crl",
      ".crt"       => "application/x-x509-ca-cert",
      ".csh"       => "application/x-csh",
      ".csml"      => "chemical/x-csml",
      ".csp"       => "application/vnd.commonspace",
      ".css"       => "text/css",
      ".csv"       => "text/csv",
      ".curl"      => "application/vnd.curl",
      ".cww"       => "application/prs.cww",
      ".cxx"       => "text/x-c",
      ".daf"       => "application/vnd.mobius.daf",
      ".davmount"  => "application/davmount+xml",
      ".dcr"       => "application/x-director",
      ".dd2"       => "application/vnd.oma.dd2+xml",
      ".ddd"       => "application/vnd.fujixerox.ddd",
      ".deb"       => "application/x-debian-package",
      ".der"       => "application/x-x509-ca-cert",
      ".dfac"      => "application/vnd.dreamfactory",
      ".diff"      => "text/x-diff",
      ".dis"       => "application/vnd.mobius.dis",
      ".djv"       => "image/vnd.djvu",
      ".djvu"      => "image/vnd.djvu",
      ".dll"       => "application/x-msdownload",
      ".dmg"       => "application/octet-stream",
      ".dna"       => "application/vnd.dna",
      ".doc"       => "application/msword",
      ".docx"      => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
      ".dot"       => "application/msword",
      ".dp"        => "application/vnd.osgi.dp",
      ".dpg"       => "application/vnd.dpgraph",
      ".dsc"       => "text/prs.lines.tag",
      ".dtd"       => "application/xml-dtd",
      ".dts"       => "audio/vnd.dts",
      ".dtshd"     => "audio/vnd.dts.hd",
      ".dv"        => "video/x-dv",
      ".dvi"       => "application/x-dvi",
      ".dwf"       => "model/vnd.dwf",
      ".dwg"       => "image/vnd.dwg",
      ".dxf"       => "image/vnd.dxf",
      ".dxp"       => "application/vnd.spotfire.dxp",
      ".ear"       => "application/java-archive",
      ".ecelp4800" => "audio/vnd.nuera.ecelp4800",
      ".ecelp7470" => "audio/vnd.nuera.ecelp7470",
      ".ecelp9600" => "audio/vnd.nuera.ecelp9600",
      ".ecma"      => "application/ecmascript",
      ".edm"       => "application/vnd.novadigm.edm",
      ".edx"       => "application/vnd.novadigm.edx",
      ".efif"      => "application/vnd.picsel",
      ".ei6"       => "application/vnd.pg.osasli",
      ".eml"       => "message/rfc822",
      ".eol"       => "audio/vnd.digital-winds",
      ".eot"       => "application/vnd.ms-fontobject",
      ".eps"       => "application/postscript",
      ".es3"       => "application/vnd.eszigno3+xml",
      ".esf"       => "application/vnd.epson.esf",
      ".etx"       => "text/x-setext",
      ".exe"       => "application/x-msdownload",
      ".ext"       => "application/vnd.novadigm.ext",
      ".ez"        => "application/andrew-inset",
      ".ez2"       => "application/vnd.ezpix-album",
      ".ez3"       => "application/vnd.ezpix-package",
      ".f"         => "text/x-fortran",
      ".f77"       => "text/x-fortran",
      ".f90"       => "text/x-fortran",
      ".fbs"       => "image/vnd.fastbidsheet",
      ".fdf"       => "application/vnd.fdf",
      ".fe_launch" => "application/vnd.denovo.fcselayout-link",
      ".fg5"       => "application/vnd.fujitsu.oasysgp",
      ".fli"       => "video/x-fli",
      ".flo"       => "application/vnd.micrografx.flo",
      ".flv"       => "video/x-flv",
      ".flw"       => "application/vnd.kde.kivio",
      ".flx"       => "text/vnd.fmi.flexstor",
      ".fly"       => "text/vnd.fly",
      ".fm"        => "application/vnd.framemaker",
      ".fnc"       => "application/vnd.frogans.fnc",
      ".for"       => "text/x-fortran",
      ".fpx"       => "image/vnd.fpx",
      ".fsc"       => "application/vnd.fsc.weblaunch",
      ".fst"       => "image/vnd.fst",
      ".ftc"       => "application/vnd.fluxtime.clip",
      ".fti"       => "application/vnd.anser-web-funds-transfer-initiation",
      ".fvt"       => "video/vnd.fvt",
      ".fzs"       => "application/vnd.fuzzysheet",
      ".g3"        => "image/g3fax",
      ".gac"       => "application/vnd.groove-account",
      ".gdl"       => "model/vnd.gdl",
      ".gem"       => "application/octet-stream",
      ".gemspec"   => "text/x-script.ruby",
      ".ghf"       => "application/vnd.groove-help",
      ".gif"       => "image/gif",
      ".gim"       => "application/vnd.groove-identity-message",
      ".gmx"       => "application/vnd.gmx",
      ".gph"       => "application/vnd.flographit",
      ".gqf"       => "application/vnd.grafeq",
      ".gram"      => "application/srgs",
      ".grv"       => "application/vnd.groove-injector",
      ".grxml"     => "application/srgs+xml",
      ".gtar"      => "application/x-gtar",
      ".gtm"       => "application/vnd.groove-tool-message",
      ".gtw"       => "model/vnd.gtw",
      ".gv"        => "text/vnd.graphviz",
      ".gz"        => "application/x-gzip",
      ".h"         => "text/x-c",
      ".h261"      => "video/h261",
      ".h263"      => "video/h263",
      ".h264"      => "video/h264",
      ".hbci"      => "application/vnd.hbci",
      ".hdf"       => "application/x-hdf",
      ".hh"        => "text/x-c",
      ".hlp"       => "application/winhlp",
      ".hpgl"      => "application/vnd.hp-hpgl",
      ".hpid"      => "application/vnd.hp-hpid",
      ".hps"       => "application/vnd.hp-hps",
      ".hqx"       => "application/mac-binhex40",
      ".htc"       => "text/x-component",
      ".htke"      => "application/vnd.kenameaapp",
      ".htm"       => "text/html",
      ".html"      => "text/html",
      ".hvd"       => "application/vnd.yamaha.hv-dic",
      ".hvp"       => "application/vnd.yamaha.hv-voice",
      ".hvs"       => "application/vnd.yamaha.hv-script",
      ".icc"       => "application/vnd.iccprofile",
      ".ice"       => "x-conference/x-cooltalk",
      ".ico"       => "image/vnd.microsoft.icon",
      ".ics"       => "text/calendar",
      ".ief"       => "image/ief",
      ".ifb"       => "text/calendar",
      ".ifm"       => "application/vnd.shana.informed.formdata",
      ".igl"       => "application/vnd.igloader",
      ".igs"       => "model/iges",
      ".igx"       => "application/vnd.micrografx.igx",
      ".iif"       => "application/vnd.shana.informed.interchange",
      ".imp"       => "application/vnd.accpac.simply.imp",
      ".ims"       => "application/vnd.ms-ims",
      ".ipk"       => "application/vnd.shana.informed.package",
      ".irm"       => "application/vnd.ibm.rights-management",
      ".irp"       => "application/vnd.irepository.package+xml",
      ".iso"       => "application/octet-stream",
      ".itp"       => "application/vnd.shana.informed.formtemplate",
      ".ivp"       => "application/vnd.immervision-ivp",
      ".ivu"       => "application/vnd.immervision-ivu",
      ".jad"       => "text/vnd.sun.j2me.app-descriptor",
      ".jam"       => "application/vnd.jam",
      ".jar"       => "application/java-archive",
      ".java"      => "text/x-java-source",
      ".jisp"      => "application/vnd.jisp",
      ".jlt"       => "application/vnd.hp-jlyt",
      ".jnlp"      => "application/x-java-jnlp-file",
      ".joda"      => "application/vnd.joost.joda-archive",
      ".jp2"       => "image/jp2",
      ".jpeg"      => "image/jpeg",
      ".jpg"       => "image/jpeg",
      ".jpgv"      => "video/jpeg",
      ".jpm"       => "video/jpm",
      ".js"        => "application/javascript",
      ".json"      => "application/json",
      ".karbon"    => "application/vnd.kde.karbon",
      ".kfo"       => "application/vnd.kde.kformula",
      ".kia"       => "application/vnd.kidspiration",
      ".kml"       => "application/vnd.google-earth.kml+xml",
      ".kmz"       => "application/vnd.google-earth.kmz",
      ".kne"       => "application/vnd.kinar",
      ".kon"       => "application/vnd.kde.kontour",
      ".kpr"       => "application/vnd.kde.kpresenter",
      ".ksp"       => "application/vnd.kde.kspread",
      ".ktz"       => "application/vnd.kahootz",
      ".kwd"       => "application/vnd.kde.kword",
      ".latex"     => "application/x-latex",
      ".lbd"       => "application/vnd.llamagraphics.life-balance.desktop",
      ".lbe"       => "application/vnd.llamagraphics.life-balance.exchange+xml",
      ".les"       => "application/vnd.hhe.lesson-player",
      ".link66"    => "application/vnd.route66.link66+xml",
      ".log"       => "text/plain",
      ".lostxml"   => "application/lost+xml",
      ".lrm"       => "application/vnd.ms-lrm",
      ".ltf"       => "application/vnd.frogans.ltf",
      ".lvp"       => "audio/vnd.lucent.voice",
      ".lwp"       => "application/vnd.lotus-wordpro",
      ".m3u"       => "audio/x-mpegurl",
      ".m4a"       => "audio/mp4a-latm",
      ".m4v"       => "video/mp4",
      ".ma"        => "application/mathematica",
      ".mag"       => "application/vnd.ecowin.chart",
      ".man"       => "text/troff",
      ".manifest"  => "text/cache-manifest",
      ".mathml"    => "application/mathml+xml",
      ".mbk"       => "application/vnd.mobius.mbk",
      ".mbox"      => "application/mbox",
      ".mc1"       => "application/vnd.medcalcdata",
      ".mcd"       => "application/vnd.mcd",
      ".mdb"       => "application/x-msaccess",
      ".mdi"       => "image/vnd.ms-modi",
      ".mdoc"      => "text/troff",
      ".me"        => "text/troff",
      ".mfm"       => "application/vnd.mfmp",
      ".mgz"       => "application/vnd.proteus.magazine",
      ".mid"       => "audio/midi",
      ".midi"      => "audio/midi",
      ".mif"       => "application/vnd.mif",
      ".mime"      => "message/rfc822",
      ".mj2"       => "video/mj2",
      ".mlp"       => "application/vnd.dolby.mlp",
      ".mmd"       => "application/vnd.chipnuts.karaoke-mmd",
      ".mmf"       => "application/vnd.smaf",
      ".mml"       => "application/mathml+xml",
      ".mmr"       => "image/vnd.fujixerox.edmics-mmr",
      ".mng"       => "video/x-mng",
      ".mny"       => "application/x-msmoney",
      ".mov"       => "video/quicktime",
      ".movie"     => "video/x-sgi-movie",
      ".mp3"       => "audio/mpeg",
      ".mp4"       => "video/mp4",
      ".mp4a"      => "audio/mp4",
      ".mp4s"      => "application/mp4",
      ".mp4v"      => "video/mp4",
      ".mpc"       => "application/vnd.mophun.certificate",
      ".mpeg"      => "video/mpeg",
      ".mpg"       => "video/mpeg",
      ".mpga"      => "audio/mpeg",
      ".mpkg"      => "application/vnd.apple.installer+xml",
      ".mpm"       => "application/vnd.blueice.multipass",
      ".mpn"       => "application/vnd.mophun.application",
      ".mpp"       => "application/vnd.ms-project",
      ".mpy"       => "application/vnd.ibm.minipay",
      ".mqy"       => "application/vnd.mobius.mqy",
      ".mrc"       => "application/marc",
      ".ms"        => "text/troff",
      ".mscml"     => "application/mediaservercontrol+xml",
      ".mseq"      => "application/vnd.mseq",
      ".msf"       => "application/vnd.epson.msf",
      ".msh"       => "model/mesh",
      ".msi"       => "application/x-msdownload",
      ".msl"       => "application/vnd.mobius.msl",
      ".msty"      => "application/vnd.muvee.style",
      ".mts"       => "model/vnd.mts",
      ".mus"       => "application/vnd.musician",
      ".mvb"       => "application/x-msmediaview",
      ".mwf"       => "application/vnd.mfer",
      ".mxf"       => "application/mxf",
      ".mxl"       => "application/vnd.recordare.musicxml",
      ".mxml"      => "application/xv+xml",
      ".mxs"       => "application/vnd.triscape.mxs",
      ".mxu"       => "video/vnd.mpegurl",
      ".n"         => "application/vnd.nokia.n-gage.symbian.install",
      ".nc"        => "application/x-netcdf",
      ".ngdat"     => "application/vnd.nokia.n-gage.data",
      ".nlu"       => "application/vnd.neurolanguage.nlu",
      ".nml"       => "application/vnd.enliven",
      ".nnd"       => "application/vnd.noblenet-directory",
      ".nns"       => "application/vnd.noblenet-sealer",
      ".nnw"       => "application/vnd.noblenet-web",
      ".npx"       => "image/vnd.net-fpx",
      ".nsf"       => "application/vnd.lotus-notes",
      ".oa2"       => "application/vnd.fujitsu.oasys2",
      ".oa3"       => "application/vnd.fujitsu.oasys3",
      ".oas"       => "application/vnd.fujitsu.oasys",
      ".obd"       => "application/x-msbinder",
      ".oda"       => "application/oda",
      ".odc"       => "application/vnd.oasis.opendocument.chart",
      ".odf"       => "application/vnd.oasis.opendocument.formula",
      ".odg"       => "application/vnd.oasis.opendocument.graphics",
      ".odi"       => "application/vnd.oasis.opendocument.image",
      ".odp"       => "application/vnd.oasis.opendocument.presentation",
      ".ods"       => "application/vnd.oasis.opendocument.spreadsheet",
      ".odt"       => "application/vnd.oasis.opendocument.text",
      ".oga"       => "audio/ogg",
      ".ogg"       => "application/ogg",
      ".ogv"       => "video/ogg",
      ".ogx"       => "application/ogg",
      ".org"       => "application/vnd.lotus-organizer",
      ".otc"       => "application/vnd.oasis.opendocument.chart-template",
      ".otf"       => "application/vnd.oasis.opendocument.formula-template",
      ".otg"       => "application/vnd.oasis.opendocument.graphics-template",
      ".oth"       => "application/vnd.oasis.opendocument.text-web",
      ".oti"       => "application/vnd.oasis.opendocument.image-template",
      ".otm"       => "application/vnd.oasis.opendocument.text-master",
      ".ots"       => "application/vnd.oasis.opendocument.spreadsheet-template",
      ".ott"       => "application/vnd.oasis.opendocument.text-template",
      ".oxt"       => "application/vnd.openofficeorg.extension",
      ".p"         => "text/x-pascal",
      ".p10"       => "application/pkcs10",
      ".p12"       => "application/x-pkcs12",
      ".p7b"       => "application/x-pkcs7-certificates",
      ".p7m"       => "application/pkcs7-mime",
      ".p7r"       => "application/x-pkcs7-certreqresp",
      ".p7s"       => "application/pkcs7-signature",
      ".pas"       => "text/x-pascal",
      ".pbd"       => "application/vnd.powerbuilder6",
      ".pbm"       => "image/x-portable-bitmap",
      ".pcl"       => "application/vnd.hp-pcl",
      ".pclxl"     => "application/vnd.hp-pclxl",
      ".pcx"       => "image/x-pcx",
      ".pdb"       => "chemical/x-pdb",
      ".pdf"       => "application/pdf",
      ".pem"       => "application/x-x509-ca-cert",
      ".pfr"       => "application/font-tdpfr",
      ".pgm"       => "image/x-portable-graymap",
      ".pgn"       => "application/x-chess-pgn",
      ".pgp"       => "application/pgp-encrypted",
      ".pic"       => "image/x-pict",
      ".pict"      => "image/pict",
      ".pkg"       => "application/octet-stream",
      ".pki"       => "application/pkixcmp",
      ".pkipath"   => "application/pkix-pkipath",
      ".pl"        => "text/x-script.perl",
      ".plb"       => "application/vnd.3gpp.pic-bw-large",
      ".plc"       => "application/vnd.mobius.plc",
      ".plf"       => "application/vnd.pocketlearn",
      ".pls"       => "application/pls+xml",
      ".pm"        => "text/x-script.perl-module",
      ".pml"       => "application/vnd.ctc-posml",
      ".png"       => "image/png",
      ".pnm"       => "image/x-portable-anymap",
      ".pntg"      => "image/x-macpaint",
      ".portpkg"   => "application/vnd.macports.portpkg",
      ".ppd"       => "application/vnd.cups-ppd",
      ".ppm"       => "image/x-portable-pixmap",
      ".pps"       => "application/vnd.ms-powerpoint",
      ".ppt"       => "application/vnd.ms-powerpoint",
      ".prc"       => "application/vnd.palm",
      ".pre"       => "application/vnd.lotus-freelance",
      ".prf"       => "application/pics-rules",
      ".ps"        => "application/postscript",
      ".psb"       => "application/vnd.3gpp.pic-bw-small",
      ".psd"       => "image/vnd.adobe.photoshop",
      ".ptid"      => "application/vnd.pvi.ptid1",
      ".pub"       => "application/x-mspublisher",
      ".pvb"       => "application/vnd.3gpp.pic-bw-var",
      ".pwn"       => "application/vnd.3m.post-it-notes",
      ".py"        => "text/x-script.python",
      ".pya"       => "audio/vnd.ms-playready.media.pya",
      ".pyv"       => "video/vnd.ms-playready.media.pyv",
      ".qam"       => "application/vnd.epson.quickanime",
      ".qbo"       => "application/vnd.intu.qbo",
      ".qfx"       => "application/vnd.intu.qfx",
      ".qps"       => "application/vnd.publishare-delta-tree",
      ".qt"        => "video/quicktime",
      ".qtif"      => "image/x-quicktime",
      ".qxd"       => "application/vnd.quark.quarkxpress",
      ".ra"        => "audio/x-pn-realaudio",
      ".rake"      => "text/x-script.ruby",
      ".ram"       => "audio/x-pn-realaudio",
      ".rar"       => "application/x-rar-compressed",
      ".ras"       => "image/x-cmu-raster",
      ".rb"        => "text/x-script.ruby",
      ".rcprofile" => "application/vnd.ipunplugged.rcprofile",
      ".rdf"       => "application/rdf+xml",
      ".rdz"       => "application/vnd.data-vision.rdz",
      ".rep"       => "application/vnd.businessobjects",
      ".rgb"       => "image/x-rgb",
      ".rif"       => "application/reginfo+xml",
      ".rl"        => "application/resource-lists+xml",
      ".rlc"       => "image/vnd.fujixerox.edmics-rlc",
      ".rld"       => "application/resource-lists-diff+xml",
      ".rm"        => "application/vnd.rn-realmedia",
      ".rmp"       => "audio/x-pn-realaudio-plugin",
      ".rms"       => "application/vnd.jcp.javame.midlet-rms",
      ".rnc"       => "application/relax-ng-compact-syntax",
      ".roff"      => "text/troff",
      ".rpm"       => "application/x-redhat-package-manager",
      ".rpss"      => "application/vnd.nokia.radio-presets",
      ".rpst"      => "application/vnd.nokia.radio-preset",
      ".rq"        => "application/sparql-query",
      ".rs"        => "application/rls-services+xml",
      ".rsd"       => "application/rsd+xml",
      ".rss"       => "application/rss+xml",
      ".rtf"       => "application/rtf",
      ".rtx"       => "text/richtext",
      ".ru"        => "text/x-script.ruby",
      ".s"         => "text/x-asm",
      ".saf"       => "application/vnd.yamaha.smaf-audio",
      ".sbml"      => "application/sbml+xml",
      ".sc"        => "application/vnd.ibm.secure-container",
      ".scd"       => "application/x-msschedule",
      ".scm"       => "application/vnd.lotus-screencam",
      ".scq"       => "application/scvp-cv-request",
      ".scs"       => "application/scvp-cv-response",
      ".sdkm"      => "application/vnd.solent.sdkm+xml",
      ".sdp"       => "application/sdp",
      ".see"       => "application/vnd.seemail",
      ".sema"      => "application/vnd.sema",
      ".semd"      => "application/vnd.semd",
      ".semf"      => "application/vnd.semf",
      ".setpay"    => "application/set-payment-initiation",
      ".setreg"    => "application/set-registration-initiation",
      ".sfd"       => "application/vnd.hydrostatix.sof-data",
      ".sfs"       => "application/vnd.spotfire.sfs",
      ".sgm"       => "text/sgml",
      ".sgml"      => "text/sgml",
      ".sh"        => "application/x-sh",
      ".shar"      => "application/x-shar",
      ".shf"       => "application/shf+xml",
      ".sig"       => "application/pgp-signature",
      ".sit"       => "application/x-stuffit",
      ".sitx"      => "application/x-stuffitx",
      ".skp"       => "application/vnd.koan",
      ".slt"       => "application/vnd.epson.salt",
      ".smi"       => "application/smil+xml",
      ".snd"       => "audio/basic",
      ".so"        => "application/octet-stream",
      ".spf"       => "application/vnd.yamaha.smaf-phrase",
      ".spl"       => "application/x-futuresplash",
      ".spot"      => "text/vnd.in3d.spot",
      ".spp"       => "application/scvp-vp-response",
      ".spq"       => "application/scvp-vp-request",
      ".src"       => "application/x-wais-source",
      ".srx"       => "application/sparql-results+xml",
      ".sse"       => "application/vnd.kodak-descriptor",
      ".ssf"       => "application/vnd.epson.ssf",
      ".ssml"      => "application/ssml+xml",
      ".stf"       => "application/vnd.wt.stf",
      ".stk"       => "application/hyperstudio",
      ".str"       => "application/vnd.pg.format",
      ".sus"       => "application/vnd.sus-calendar",
      ".sv4cpio"   => "application/x-sv4cpio",
      ".sv4crc"    => "application/x-sv4crc",
      ".svd"       => "application/vnd.svd",
      ".svg"       => "image/svg+xml",
      ".svgz"      => "image/svg+xml",
      ".swf"       => "application/x-shockwave-flash",
      ".swi"       => "application/vnd.arastra.swi",
      ".t"         => "text/troff",
      ".tao"       => "application/vnd.tao.intent-module-archive",
      ".tar"       => "application/x-tar",
      ".tbz"       => "application/x-bzip-compressed-tar",
      ".tcap"      => "application/vnd.3gpp2.tcap",
      ".tcl"       => "application/x-tcl",
      ".tex"       => "application/x-tex",
      ".texi"      => "application/x-texinfo",
      ".texinfo"   => "application/x-texinfo",
      ".text"      => "text/plain",
      ".tif"       => "image/tiff",
      ".tiff"      => "image/tiff",
      ".tmo"       => "application/vnd.tmobile-livetv",
      ".torrent"   => "application/x-bittorrent",
      ".tpl"       => "application/vnd.groove-tool-template",
      ".tpt"       => "application/vnd.trid.tpt",
      ".tr"        => "text/troff",
      ".tra"       => "application/vnd.trueapp",
      ".trm"       => "application/x-msterminal",
      ".tsv"       => "text/tab-separated-values",
      ".ttf"       => "application/octet-stream",
      ".twd"       => "application/vnd.simtech-mindmapper",
      ".txd"       => "application/vnd.genomatix.tuxedo",
      ".txf"       => "application/vnd.mobius.txf",
      ".txt"       => "text/plain",
      ".ufd"       => "application/vnd.ufdl",
      ".umj"       => "application/vnd.umajin",
      ".unityweb"  => "application/vnd.unity",
      ".uoml"      => "application/vnd.uoml+xml",
      ".uri"       => "text/uri-list",
      ".ustar"     => "application/x-ustar",
      ".utz"       => "application/vnd.uiq.theme",
      ".uu"        => "text/x-uuencode",
      ".vcd"       => "application/x-cdlink",
      ".vcf"       => "text/x-vcard",
      ".vcg"       => "application/vnd.groove-vcard",
      ".vcs"       => "text/x-vcalendar",
      ".vcx"       => "application/vnd.vcx",
      ".vis"       => "application/vnd.visionary",
      ".viv"       => "video/vnd.vivo",
      ".vrml"      => "model/vrml",
      ".vsd"       => "application/vnd.visio",
      ".vsf"       => "application/vnd.vsf",
      ".vtu"       => "model/vnd.vtu",
      ".vxml"      => "application/voicexml+xml",
      ".war"       => "application/java-archive",
      ".wav"       => "audio/x-wav",
      ".wax"       => "audio/x-ms-wax",
      ".wbmp"      => "image/vnd.wap.wbmp",
      ".wbs"       => "application/vnd.criticaltools.wbs+xml",
      ".wbxml"     => "application/vnd.wap.wbxml",
      ".webm"      => "video/webm",
      ".wm"        => "video/x-ms-wm",
      ".wma"       => "audio/x-ms-wma",
      ".wmd"       => "application/x-ms-wmd",
      ".wmf"       => "application/x-msmetafile",
      ".wml"       => "text/vnd.wap.wml",
      ".wmlc"      => "application/vnd.wap.wmlc",
      ".wmls"      => "text/vnd.wap.wmlscript",
      ".wmlsc"     => "application/vnd.wap.wmlscriptc",
      ".wmv"       => "video/x-ms-wmv",
      ".wmx"       => "video/x-ms-wmx",
      ".wmz"       => "application/x-ms-wmz",
      ".woff"      => "application/font-woff",
      ".woff2"     => "application/font-woff2",
      ".wpd"       => "application/vnd.wordperfect",
      ".wpl"       => "application/vnd.ms-wpl",
      ".wps"       => "application/vnd.ms-works",
      ".wqd"       => "application/vnd.wqd",
      ".wri"       => "application/x-mswrite",
      ".wrl"       => "model/vrml",
      ".wsdl"      => "application/wsdl+xml",
      ".wspolicy"  => "application/wspolicy+xml",
      ".wtb"       => "application/vnd.webturbo",
      ".wvx"       => "video/x-ms-wvx",
      ".x3d"       => "application/vnd.hzn-3d-crossword",
      ".xar"       => "application/vnd.xara",
      ".xbd"       => "application/vnd.fujixerox.docuworks.binder",
      ".xbm"       => "image/x-xbitmap",
      ".xdm"       => "application/vnd.syncml.dm+xml",
      ".xdp"       => "application/vnd.adobe.xdp+xml",
      ".xdw"       => "application/vnd.fujixerox.docuworks",
      ".xenc"      => "application/xenc+xml",
      ".xer"       => "application/patch-ops-error+xml",
      ".xfdf"      => "application/vnd.adobe.xfdf",
      ".xfdl"      => "application/vnd.xfdl",
      ".xhtml"     => "application/xhtml+xml",
      ".xif"       => "image/vnd.xiff",
      ".xls"       => "application/vnd.ms-excel",
      ".xlsx"      => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
      ".xml"       => "application/xml",
      ".xo"        => "application/vnd.olpc-sugar",
      ".xop"       => "application/xop+xml",
      ".xpm"       => "image/x-xpixmap",
      ".xpr"       => "application/vnd.is-xpr",
      ".xps"       => "application/vnd.ms-xpsdocument",
      ".xpw"       => "application/vnd.intercon.formnet",
      ".xsl"       => "application/xml",
      ".xslt"      => "application/xslt+xml",
      ".xsm"       => "application/vnd.syncml+xml",
      ".xspf"      => "application/xspf+xml",
      ".xul"       => "application/vnd.mozilla.xul+xml",
      ".xwd"       => "image/x-xwindowdump",
      ".xyz"       => "chemical/x-xyz",
      ".yaml"      => "text/yaml",
      ".yml"       => "text/yaml",
      ".zaz"       => "application/vnd.zzazz.deck+xml",
      ".zip"       => "application/zip",
      ".zmm"       => "application/vnd.handheld-entertainment+xml",
    }
  end
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/Rakefile000064400000006722150402106530014026 0ustar00# Rakefile for Rack.  -*-ruby-*-

desc "Run all the tests"
task :default => [:test]

desc "Install gem dependencies"
task :deps do
  require 'rubygems'
  spec = Gem::Specification.load('rack.gemspec')
  spec.dependencies.each do |dep|
    reqs = dep.requirements_list
    reqs = (["-v"] * reqs.size).zip(reqs).flatten
    # Use system over sh, because we want to ignore errors!
    system Gem.ruby, "-S", "gem", "install", '--conservative', dep.name, *reqs
  end
end

desc "Make an archive as .tar.gz"
task :dist => %w[chmod ChangeLog SPEC rdoc] do
  sh "git archive --format=tar --prefix=#{release}/ HEAD^{tree} >#{release}.tar"
  sh "pax -waf #{release}.tar -s ':^:#{release}/:' SPEC ChangeLog doc rack.gemspec"
  sh "gzip -f -9 #{release}.tar"
end

desc "Make an official release"
task :officialrelease do
  puts "Official build for #{release}..."
  sh "rm -rf stage"
  sh "git clone --shared . stage"
  sh "cd stage && rake officialrelease_really"
  sh "mv stage/#{release}.tar.gz stage/#{release}.gem ."
end

task :officialrelease_really => %w[SPEC dist gem] do
  sh "shasum #{release}.tar.gz #{release}.gem"
end

def release
  "rack-#{File.read("rack.gemspec")[/s.version *= *"(.*?)"/, 1]}"
end

desc "Make binaries executable"
task :chmod do
  Dir["bin/*"].each { |binary| File.chmod(0755, binary) }
  Dir["test/cgi/test*"].each { |binary| File.chmod(0755, binary) }
end

desc "Generate a ChangeLog"
task :changelog => %w[ChangeLog]

file '.git/index'
file "ChangeLog" => '.git/index' do
  File.open("ChangeLog", "w") { |out|
    log = `git log -z`
    log.force_encoding(Encoding::BINARY) if log.respond_to?(:force_encoding)
    log.split("\0").map { |chunk|
      author = chunk[/Author: (.*)/, 1].strip
      date = chunk[/Date: (.*)/, 1].strip
      desc, detail = $'.strip.split("\n", 2)
      detail ||= ""
      detail = detail.gsub(/.*darcs-hash:.*/, '')
      detail.rstrip!
      out.puts "#{date}  #{author}"
      out.puts "  * #{desc.strip}"
      out.puts detail  unless detail.empty?
      out.puts
    }
  }
end

file 'lib/rack/lint.rb'
desc "Generate Rack Specification"
file "SPEC" => 'lib/rack/lint.rb' do
  File.open("SPEC", "wb") { |file|
    IO.foreach("lib/rack/lint.rb") { |line|
      if line =~ /## (.*)/
        file.puts $1
      end
    }
  }
end

desc "Run all the fast + platform agnostic tests"
task :test => 'SPEC' do
  opts     = ENV['TEST'] || '-a'
  specopts = ENV['TESTOPTS'] ||
    "-q -t '^(?!Rack::Adapter|Rack::Session::Memcache|Rack::Server|Rack::Handler)'"

  sh "bacon -w -I./lib:./test #{opts} #{specopts}"
end

desc "Run all the tests we run on CI"
task :ci => :fulltest

desc "Run all the tests"
task :fulltest => %w[SPEC chmod] do
  opts     = ENV['TEST'] || '-a'
  specopts = ENV['TESTOPTS'] || '-q'
  sh "bacon -r./test/gemloader -I./lib:./test -w #{opts} #{specopts}"
end

task :gem => ["SPEC"] do
  sh "gem build rack.gemspec"
end

task :doc => :rdoc
desc "Generate RDoc documentation"
task :rdoc => %w[ChangeLog SPEC] do
  sh(*%w{rdoc --line-numbers --main README.rdoc
              --title 'Rack\ Documentation' --charset utf-8 -U -o doc} +
              %w{README.rdoc KNOWN-ISSUES SPEC ChangeLog} +
              `git ls-files lib/\*\*/\*.rb`.strip.split)
  cp "contrib/rdoc.css", "doc/rdoc.css"
end

task :pushdoc => %w[rdoc] do
  sh "rsync -avz doc/ rack.rubyforge.org:/var/www/gforge-projects/rack/doc/"
end

task :pushsite => %w[pushdoc] do
  sh "cd site && git gc"
  sh "rsync -avz site/ rack.rubyforge.org:/var/www/gforge-projects/rack/"
  sh "cd site && git push"
end
lib64/ruby/gems/2.2.0/gems/rack-1.6.4/SPEC000064400000034046150402106530013036 0ustar00This specification aims to formalize the Rack protocol.  You
can (and should) use Rack::Lint to enforce it.
When you develop middleware, be sure to add a Lint before and
after to catch all mistakes.
= Rack applications
A Rack application is a Ruby object (not a class) that
responds to +call+.
It takes exactly one argument, the *environment*
and returns an Array of exactly three values:
The *status*,
the *headers*,
and the *body*.
== The Environment
The environment must be an instance of Hash that includes
CGI-like headers.  The application is free to modify the
environment.
The environment is required to include these variables
(adopted from PEP333), except when they'd be empty, but see
below.
<tt>REQUEST_METHOD</tt>:: The HTTP request method, such as
                          "GET" or "POST". This cannot ever
                          be an empty string, and so is
                          always required.
<tt>SCRIPT_NAME</tt>:: The initial portion of the request
                       URL's "path" that corresponds to the
                       application object, so that the
                       application knows its virtual
                       "location". This may be an empty
                       string, if the application corresponds
                       to the "root" of the server.
<tt>PATH_INFO</tt>:: The remainder of the request URL's
                     "path", designating the virtual
                     "location" of the request's target
                     within the application. This may be an
                     empty string, if the request URL targets
                     the application root and does not have a
                     trailing slash. This value may be
                     percent-encoded when I originating from
                     a URL.
<tt>QUERY_STRING</tt>:: The portion of the request URL that
                        follows the <tt>?</tt>, if any. May be
                        empty, but is always required!
<tt>SERVER_NAME</tt>, <tt>SERVER_PORT</tt>::
                       When combined with <tt>SCRIPT_NAME</tt> and
                       <tt>PATH_INFO</tt>, these variables can be
                       used to complete the URL. Note, however,
                       that <tt>HTTP_HOST</tt>, if present,
                       should be used in preference to
                       <tt>SERVER_NAME</tt> for reconstructing
                       the request URL.
                       <tt>SERVER_NAME</tt> and <tt>SERVER_PORT</tt>
                       can never be empty strings, and so
                       are always required.
<tt>HTTP_</tt> Variables:: Variables corresponding to the
                           client-supplied HTTP request
                           headers (i.e., variables whose
                           names begin with <tt>HTTP_</tt>). The
                           presence or absence of these
                           variables should correspond with
                           the presence or absence of the
                           appropriate HTTP header in the
                           request. See
                           <a href="https://tools.ietf.org/html/rfc3875#section-4.1.18">
                           RFC3875 section 4.1.18</a> for
                           specific behavior.
In addition to this, the Rack environment must include these
Rack-specific variables:
<tt>rack.version</tt>:: The Array representing this version of Rack
                        See Rack::VERSION, that corresponds to
                        the version of this SPEC.
<tt>rack.url_scheme</tt>:: +http+ or +https+, depending on the
                           request URL.
<tt>rack.input</tt>:: See below, the input stream.
<tt>rack.errors</tt>:: See below, the error stream.
<tt>rack.multithread</tt>:: true if the application object may be
                            simultaneously invoked by another thread
                            in the same process, false otherwise.
<tt>rack.multiprocess</tt>:: true if an equivalent application object
                             may be simultaneously invoked by another
                             process, false otherwise.
<tt>rack.run_once</tt>:: true if the server expects
                         (but does not guarantee!) that the
                         application will only be invoked this one
                         time during the life of its containing
                         process. Normally, this will only be true
                         for a server based on CGI
                         (or something similar).
<tt>rack.hijack?</tt>:: present and true if the server supports
                        connection hijacking. See below, hijacking.
<tt>rack.hijack</tt>:: an object responding to #call that must be
                       called at least once before using
                       rack.hijack_io.
                       It is recommended #call return rack.hijack_io
                       as well as setting it in env if necessary.
<tt>rack.hijack_io</tt>:: if rack.hijack? is true, and rack.hijack
                          has received #call, this will contain
                          an object resembling an IO. See hijacking.
Additional environment specifications have approved to
standardized middleware APIs.  None of these are required to
be implemented by the server.
<tt>rack.session</tt>:: A hash like interface for storing
                        request session data.
                        The store must implement:
                        store(key, value)         (aliased as []=);
                        fetch(key, default = nil) (aliased as []);
                        delete(key);
                        clear;
<tt>rack.logger</tt>:: A common object interface for logging messages.
                       The object must implement:
                        info(message, &block)
                        debug(message, &block)
                        warn(message, &block)
                        error(message, &block)
                        fatal(message, &block)
<tt>rack.multipart.buffer_size</tt>:: An Integer hint to the multipart parser as to what chunk size to use for reads and writes.
<tt>rack.multipart.tempfile_factory</tt>:: An object responding to #call with two arguments, the filename and content_type given for the multipart form field, and returning an IO-like object that responds to #<< and optionally #rewind. This factory will be used to instantiate the tempfile for each multipart form file upload field, rather than the default class of Tempfile.
The server or the application can store their own data in the
environment, too.  The keys must contain at least one dot,
and should be prefixed uniquely.  The prefix <tt>rack.</tt>
is reserved for use with the Rack core distribution and other
accepted specifications and must not be used otherwise.
The environment must not contain the keys
<tt>HTTP_CONTENT_TYPE</tt> or <tt>HTTP_CONTENT_LENGTH</tt>
(use the versions without <tt>HTTP_</tt>).
The CGI keys (named without a period) must have String values.
There are the following restrictions:
* <tt>rack.version</tt> must be an array of Integers.
* <tt>rack.url_scheme</tt> must either be +http+ or +https+.
* There must be a valid input stream in <tt>rack.input</tt>.
* There must be a valid error stream in <tt>rack.errors</tt>.
* There may be a valid hijack stream in <tt>rack.hijack_io</tt>
* The <tt>REQUEST_METHOD</tt> must be a valid token.
* The <tt>SCRIPT_NAME</tt>, if non-empty, must start with <tt>/</tt>
* The <tt>PATH_INFO</tt>, if non-empty, must start with <tt>/</tt>
* The <tt>CONTENT_LENGTH</tt>, if given, must consist of digits only.
* One of <tt>SCRIPT_NAME</tt> or <tt>PATH_INFO</tt> must be
  set.  <tt>PATH_INFO</tt> should be <tt>/</tt> if
  <tt>SCRIPT_NAME</tt> is empty.
  <tt>SCRIPT_NAME</tt> never should be <tt>/</tt>, but instead be empty.
=== The Input Stream
The input stream is an IO-like object which contains the raw HTTP
POST data.
When applicable, its external encoding must be "ASCII-8BIT" and it
must be opened in binary mode, for Ruby 1.9 compatibility.
The input stream must respond to +gets+, +each+, +read+ and +rewind+.
* +gets+ must be called without arguments and return a string,
  or +nil+ on EOF.
* +read+ behaves like IO#read.
  Its signature is <tt>read([length, [buffer]])</tt>.
  If given, +length+ must be a non-negative Integer (>= 0) or +nil+,
  and +buffer+ must be a String and may not be nil.
  If +length+ is given and not nil, then this method reads at most
  +length+ bytes from the input stream.
  If +length+ is not given or nil, then this method reads
  all data until EOF.
  When EOF is reached, this method returns nil if +length+ is given
  and not nil, or "" if +length+ is not given or is nil.
  If +buffer+ is given, then the read data will be placed
  into +buffer+ instead of a newly created String object.
* +each+ must be called without arguments and only yield Strings.
* +rewind+ must be called without arguments. It rewinds the input
  stream back to the beginning. It must not raise Errno::ESPIPE:
  that is, it may not be a pipe or a socket. Therefore, handler
  developers must buffer the input data into some rewindable object
  if the underlying input stream is not rewindable.
* +close+ must never be called on the input stream.
=== The Error Stream
The error stream must respond to +puts+, +write+ and +flush+.
* +puts+ must be called with a single argument that responds to +to_s+.
* +write+ must be called with a single argument that is a String.
* +flush+ must be called without arguments and must be called
  in order to make the error appear for sure.
* +close+ must never be called on the error stream.
=== Hijacking
==== Request (before status)
If rack.hijack? is true then rack.hijack must respond to #call.
rack.hijack must return the io that will also be assigned (or is
already present, in rack.hijack_io.
rack.hijack_io must respond to:
<tt>read, write, read_nonblock, write_nonblock, flush, close,
close_read, close_write, closed?</tt>
The semantics of these IO methods must be a best effort match to
those of a normal ruby IO or Socket object, using standard
arguments and raising standard exceptions. Servers are encouraged
to simply pass on real IO objects, although it is recognized that
this approach is not directly compatible with SPDY and HTTP 2.0.
IO provided in rack.hijack_io should preference the
IO::WaitReadable and IO::WaitWritable APIs wherever supported.
There is a deliberate lack of full specification around
rack.hijack_io, as semantics will change from server to server.
Users are encouraged to utilize this API with a knowledge of their
server choice, and servers may extend the functionality of
hijack_io to provide additional features to users. The purpose of
rack.hijack is for Rack to "get out of the way", as such, Rack only
provides the minimum of specification and support.
If rack.hijack? is false, then rack.hijack should not be set.
If rack.hijack? is false, then rack.hijack_io should not be set.
==== Response (after headers)
It is also possible to hijack a response after the status and headers
have been sent.
In order to do this, an application may set the special header
<tt>rack.hijack</tt> to an object that responds to <tt>call</tt>
accepting an argument that conforms to the <tt>rack.hijack_io</tt>
protocol.
After the headers have been sent, and this hijack callback has been
called, the application is now responsible for the remaining lifecycle
of the IO. The application is also responsible for maintaining HTTP
semantics. Of specific note, in almost all cases in the current SPEC,
applications will have wanted to specify the header Connection:close in
HTTP/1.1, and not Connection:keep-alive, as there is no protocol for
returning hijacked sockets to the web server. For that purpose, use the
body streaming API instead (progressively yielding strings via each).
Servers must ignore the <tt>body</tt> part of the response tuple when
the <tt>rack.hijack</tt> response API is in use.
The special response header <tt>rack.hijack</tt> must only be set
if the request env has <tt>rack.hijack?</tt> <tt>true</tt>.
==== Conventions
* Middleware should not use hijack unless it is handling the whole
  response.
* Middleware may wrap the IO object for the response pattern.
* Middleware should not wrap the IO object for the request pattern. The
  request pattern is intended to provide the hijacker with "raw tcp".
== The Response
=== The Status
This is an HTTP status. When parsed as integer (+to_i+), it must be
greater than or equal to 100.
=== The Headers
The header must respond to +each+, and yield values of key and value.
Special headers starting "rack." are for communicating with the
server, and must not be sent back to the client.
The header keys must be Strings.
The header must not contain a +Status+ key.
The header must conform to RFC7230 token specification, i.e. cannot
contain non-printable ASCII, DQUOTE or "(),/:;<=>?@[\]{}".
The values of the header must be Strings,
consisting of lines (for multiple header values, e.g. multiple
<tt>Set-Cookie</tt> values) separated by "\\n".
The lines must not contain characters below 037.
=== The Content-Type
There must not be a <tt>Content-Type</tt>, when the +Status+ is 1xx,
204, 205 or 304.
=== The Content-Length
There must not be a <tt>Content-Length</tt> header when the
+Status+ is 1xx, 204, 205 or 304.
=== The Body
The Body must respond to +each+
and must only yield String values.
The Body itself should not be an instance of String, as this will
break in Ruby 1.9.
If the Body responds to +close+, it will be called after iteration. If
the body is replaced by a middleware after action, the original body
must be closed first, if it responds to close.
If the Body responds to +to_path+, it must return a String
identifying the location of a file whose contents are identical
to that produced by calling +each+; this may be used by the
server as an alternative, possibly more efficient way to
transport the response.
The Body commonly is an Array of Strings, the application
instance itself, or a File-like object.
== Thanks
Some parts of this specification are adopted from PEP333: Python
Web Server Gateway Interface
v1.0 (http://www.python.org/dev/peps/pep-0333/). I'd like to thank
everyone involved in that effort.
lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/setup.rb000064400000106502150402106530015054 0ustar00#
# setup.rb
#
# Copyright (c) 2000-2005 Minero Aoki
#
# This program is free software.
# You can distribute/modify this program under the terms of
# the GNU LGPL, Lesser General Public License version 2.1.
#

unless Enumerable.method_defined?(:map)   # Ruby 1.4.6
  module Enumerable
    alias map collect
  end
end

unless File.respond_to?(:read)   # Ruby 1.6
  def File.read(fname)
    open(fname) {|f|
      return f.read
    }
  end
end

unless Errno.const_defined?(:ENOTEMPTY)   # Windows?
  module Errno
    class ENOTEMPTY
      # We do not raise this exception, implementation is not needed.
    end
  end
end

def File.binread(fname)
  open(fname, 'rb') {|f|
    return f.read
  }
end

# for corrupted Windows' stat(2)
def File.dir?(path)
  File.directory?((path[-1,1] == '/') ? path : path + '/')
end


class ConfigTable

  include Enumerable

  def initialize(rbconfig)
    @rbconfig = rbconfig
    @items = []
    @table = {}
    # options
    @install_prefix = nil
    @config_opt = nil
    @verbose = true
    @no_harm = false
  end

  attr_accessor :install_prefix
  attr_accessor :config_opt

  attr_writer :verbose

  def verbose?
    @verbose
  end

  attr_writer :no_harm

  def no_harm?
    @no_harm
  end

  def [](key)
    lookup(key).resolve(self)
  end

  def []=(key, val)
    lookup(key).set val
  end

  def names
    @items.map {|i| i.name }
  end

  def each(&block)
    @items.each(&block)
  end

  def key?(name)
    @table.key?(name)
  end

  def lookup(name)
    @table[name] or setup_rb_error "no such config item: #{name}"
  end

  def add(item)
    @items.push item
    @table[item.name] = item
  end

  def remove(name)
    item = lookup(name)
    @items.delete_if {|i| i.name == name }
    @table.delete_if {|name, i| i.name == name }
    item
  end

  def load_script(path, inst = nil)
    if File.file?(path)
      MetaConfigEnvironment.new(self, inst).instance_eval File.read(path), path
    end
  end

  def savefile
    '.config'
  end

  def load_savefile
    begin
      File.foreach(savefile()) do |line|
        k, v = *line.split(/=/, 2)
        self[k] = v.strip
      end
    rescue Errno::ENOENT
      setup_rb_error $!.message + "\n#{File.basename($0)} config first"
    end
  end

  def save
    @items.each {|i| i.value }
    File.open(savefile(), 'w') {|f|
      @items.each do |i|
        f.printf "%s=%s\n", i.name, i.value if i.value? and i.value
      end
    }
  end

  def load_standard_entries
    standard_entries(@rbconfig).each do |ent|
      add ent
    end
  end

  def standard_entries(rbconfig)
    c = rbconfig

    rubypath = File.join(c['bindir'], c['ruby_install_name'] + c['EXEEXT'])

    major = c['MAJOR'].to_i
    minor = c['MINOR'].to_i
    teeny = c['TEENY'].to_i
    version = "#{major}.#{minor}"

    # ruby ver. >= 1.4.4?
    newpath_p = ((major >= 2) or
                 ((major == 1) and
                  ((minor >= 5) or
                   ((minor == 4) and (teeny >= 4)))))

    if c['rubylibdir']
      # V > 1.6.3
      libruby         = "#{c['prefix']}/lib/ruby"
      librubyver      = c['rubylibdir']
      librubyverarch  = c['archdir']
      siteruby        = c['sitedir']
      siterubyver     = c['sitelibdir']
      siterubyverarch = c['sitearchdir']
    elsif newpath_p
      # 1.4.4 <= V <= 1.6.3
      libruby         = "#{c['prefix']}/lib/ruby"
      librubyver      = "#{c['prefix']}/lib/ruby/#{version}"
      librubyverarch  = "#{c['prefix']}/lib/ruby/#{version}/#{c['arch']}"
      siteruby        = c['sitedir']
      siterubyver     = "$siteruby/#{version}"
      siterubyverarch = "$siterubyver/#{c['arch']}"
    else
      # V < 1.4.4
      libruby         = "#{c['prefix']}/lib/ruby"
      librubyver      = "#{c['prefix']}/lib/ruby/#{version}"
      librubyverarch  = "#{c['prefix']}/lib/ruby/#{version}/#{c['arch']}"
      siteruby        = "#{c['prefix']}/lib/ruby/#{version}/site_ruby"
      siterubyver     = siteruby
      siterubyverarch = "$siterubyver/#{c['arch']}"
    end
    parameterize = lambda {|path|
      path.sub(/\A#{Regexp.quote(c['prefix'])}/, '$prefix')
    }

    if arg = c['configure_args'].split.detect {|arg| /--with-make-prog=/ =~ arg }
      makeprog = arg.sub(/'/, '').split(/=/, 2)[1]
    else
      makeprog = 'make'
    end

    [
      ExecItem.new('installdirs', 'std/site/home',
                   'std: install under libruby; site: install under site_ruby; home: install under $HOME')\
          {|val, table|
            case val
            when 'std'
              table['rbdir'] = '$librubyver'
              table['sodir'] = '$librubyverarch'
            when 'site'
              table['rbdir'] = '$siterubyver'
              table['sodir'] = '$siterubyverarch'
            when 'home'
              setup_rb_error '$HOME was not set' unless ENV['HOME']
              table['prefix'] = ENV['HOME']
              table['rbdir'] = '$libdir/ruby'
              table['sodir'] = '$libdir/ruby'
            end
          },
      PathItem.new('prefix', 'path', c['prefix'],
                   'path prefix of target environment'),
      PathItem.new('bindir', 'path', parameterize.call(c['bindir']),
                   'the directory for commands'),
      PathItem.new('libdir', 'path', parameterize.call(c['libdir']),
                   'the directory for libraries'),
      PathItem.new('datadir', 'path', parameterize.call(c['datadir']),
                   'the directory for shared data'),
      PathItem.new('mandir', 'path', parameterize.call(c['mandir']),
                   'the directory for man pages'),
      PathItem.new('sysconfdir', 'path', parameterize.call(c['sysconfdir']),
                   'the directory for system configuration files'),
      PathItem.new('localstatedir', 'path', parameterize.call(c['localstatedir']),
                   'the directory for local state data'),
      PathItem.new('libruby', 'path', libruby,
                   'the directory for ruby libraries'),
      PathItem.new('librubyver', 'path', librubyver,
                   'the directory for standard ruby libraries'),
      PathItem.new('librubyverarch', 'path', librubyverarch,
                   'the directory for standard ruby extensions'),
      PathItem.new('siteruby', 'path', siteruby,
          'the directory for version-independent aux ruby libraries'),
      PathItem.new('siterubyver', 'path', siterubyver,
                   'the directory for aux ruby libraries'),
      PathItem.new('siterubyverarch', 'path', siterubyverarch,
                   'the directory for aux ruby binaries'),
      PathItem.new('rbdir', 'path', '$siterubyver',
                   'the directory for ruby scripts'),
      PathItem.new('sodir', 'path', '$siterubyverarch',
                   'the directory for ruby extentions'),
      PathItem.new('rubypath', 'path', rubypath,
                   'the path to set to #! line'),
      ProgramItem.new('rubyprog', 'name', rubypath,
                      'the ruby program using for installation'),
      ProgramItem.new('makeprog', 'name', makeprog,
                      'the make program to compile ruby extentions'),
      SelectItem.new('shebang', 'all/ruby/never', 'ruby',
                     'shebang line (#!) editing mode'),
      BoolItem.new('without-ext', 'yes/no', 'no',
                   'does not compile/install ruby extentions')
    ]
  end
  private :standard_entries

  def load_multipackage_entries
    multipackage_entries().each do |ent|
      add ent
    end
  end

  def multipackage_entries
    [
      PackageSelectionItem.new('with', 'name,name...', '', 'ALL',
                               'package names that you want to install'),
      PackageSelectionItem.new('without', 'name,name...', '', 'NONE',
                               'package names that you do not want to install')
    ]
  end
  private :multipackage_entries

  ALIASES = {
    'std-ruby'         => 'librubyver',
    'stdruby'          => 'librubyver',
    'rubylibdir'       => 'librubyver',
    'archdir'          => 'librubyverarch',
    'site-ruby-common' => 'siteruby',     # For backward compatibility
    'site-ruby'        => 'siterubyver',  # For backward compatibility
    'bin-dir'          => 'bindir',
    'bin-dir'          => 'bindir',
    'rb-dir'           => 'rbdir',
    'so-dir'           => 'sodir',
    'data-dir'         => 'datadir',
    'ruby-path'        => 'rubypath',
    'ruby-prog'        => 'rubyprog',
    'ruby'             => 'rubyprog',
    'make-prog'        => 'makeprog',
    'make'             => 'makeprog'
  }

  def fixup
    ALIASES.each do |ali, name|
      @table[ali] = @table[name]
    end
    @items.freeze
    @table.freeze
    @options_re = /\A--(#{@table.keys.join('|')})(?:=(.*))?\z/
  end

  def parse_opt(opt)
    m = @options_re.match(opt) or setup_rb_error "config: unknown option #{opt}"
    m.to_a[1,2]
  end

  def dllext
    @rbconfig['DLEXT']
  end

  def value_config?(name)
    lookup(name).value?
  end

  class Item
    def initialize(name, template, default, desc)
      @name = name.freeze
      @template = template
      @value = default
      @default = default
      @description = desc
    end

    attr_reader :name
    attr_reader :description

    attr_accessor :default
    alias help_default default

    def help_opt
      "--#{@name}=#{@template}"
    end

    def value?
      true
    end

    def value
      @value
    end

    def resolve(table)
      @value.gsub(%r<\$([^/]+)>) { table[$1] }
    end

    def set(val)
      @value = check(val)
    end

    private

    def check(val)
      setup_rb_error "config: --#{name} requires argument" unless val
      val
    end
  end

  class BoolItem < Item
    def config_type
      'bool'
    end

    def help_opt
      "--#{@name}"
    end

    private

    def check(val)
      return 'yes' unless val
      case val
      when /\Ay(es)?\z/i, /\At(rue)?\z/i then 'yes'
      when /\An(o)?\z/i, /\Af(alse)\z/i  then 'no'
      else
        setup_rb_error "config: --#{@name} accepts only yes/no for argument"
      end
    end
  end

  class PathItem < Item
    def config_type
      'path'
    end

    private

    def check(path)
      setup_rb_error "config: --#{@name} requires argument"  unless path
      path[0,1] == '$' ? path : File.expand_path(path)
    end
  end

  class ProgramItem < Item
    def config_type
      'program'
    end
  end

  class SelectItem < Item
    def initialize(name, selection, default, desc)
      super
      @ok = selection.split('/')
    end

    def config_type
      'select'
    end

    private

    def check(val)
      unless @ok.include?(val.strip)
        setup_rb_error "config: use --#{@name}=#{@template} (#{val})"
      end
      val.strip
    end
  end

  class ExecItem < Item
    def initialize(name, selection, desc, &block)
      super name, selection, nil, desc
      @ok = selection.split('/')
      @action = block
    end

    def config_type
      'exec'
    end

    def value?
      false
    end

    def resolve(table)
      setup_rb_error "$#{name()} wrongly used as option value"
    end

    undef set

    def evaluate(val, table)
      v = val.strip.downcase
      unless @ok.include?(v)
        setup_rb_error "invalid option --#{@name}=#{val} (use #{@template})"
      end
      @action.call v, table
    end
  end

  class PackageSelectionItem < Item
    def initialize(name, template, default, help_default, desc)
      super name, template, default, desc
      @help_default = help_default
    end

    attr_reader :help_default

    def config_type
      'package'
    end

    private

    def check(val)
      unless File.dir?("packages/#{val}")
        setup_rb_error "config: no such package: #{val}"
      end
      val
    end
  end

  class MetaConfigEnvironment
    def initialize(config, installer)
      @config = config
      @installer = installer
    end

    def config_names
      @config.names
    end

    def config?(name)
      @config.key?(name)
    end

    def bool_config?(name)
      @config.lookup(name).config_type == 'bool'
    end

    def path_config?(name)
      @config.lookup(name).config_type == 'path'
    end

    def value_config?(name)
      @config.lookup(name).config_type != 'exec'
    end

    def add_config(item)
      @config.add item
    end

    def add_bool_config(name, default, desc)
      @config.add BoolItem.new(name, 'yes/no', default ? 'yes' : 'no', desc)
    end

    def add_path_config(name, default, desc)
      @config.add PathItem.new(name, 'path', default, desc)
    end

    def set_config_default(name, default)
      @config.lookup(name).default = default
    end

    def remove_config(name)
      @config.remove(name)
    end

    # For only multipackage
    def packages
      raise '[setup.rb fatal] multi-package metaconfig API packages() called for single-package; contact application package vendor' unless @installer
      @installer.packages
    end

    # For only multipackage
    def declare_packages(list)
      raise '[setup.rb fatal] multi-package metaconfig API declare_packages() called for single-package; contact application package vendor' unless @installer
      @installer.packages = list
    end
  end

end   # class ConfigTable


# This module requires: #verbose?, #no_harm?
module FileOperations

  def mkdir_p(dirname, prefix = nil)
    dirname = prefix + File.expand_path(dirname) if prefix
    $stderr.puts "mkdir -p #{dirname}" if verbose?
    return if no_harm?

    # Does not check '/', it's too abnormal.
    dirs = File.expand_path(dirname).split(%r<(?=/)>)
    if /\A[a-z]:\z/i =~ dirs[0]
      disk = dirs.shift
      dirs[0] = disk + dirs[0]
    end
    dirs.each_index do |idx|
      path = dirs[0..idx].join('')
      Dir.mkdir path unless File.dir?(path)
    end
  end

  def rm_f(path)
    $stderr.puts "rm -f #{path}" if verbose?
    return if no_harm?
    force_remove_file path
  end

  def rm_rf(path)
    $stderr.puts "rm -rf #{path}" if verbose?
    return if no_harm?
    remove_tree path
  end

  def remove_tree(path)
    if File.symlink?(path)
      remove_file path
    elsif File.dir?(path)
      remove_tree0 path
    else
      force_remove_file path
    end
  end

  def remove_tree0(path)
    Dir.foreach(path) do |ent|
      next if ent == '.'
      next if ent == '..'
      entpath = "#{path}/#{ent}"
      if File.symlink?(entpath)
        remove_file entpath
      elsif File.dir?(entpath)
        remove_tree0 entpath
      else
        force_remove_file entpath
      end
    end
    begin
      Dir.rmdir path
    rescue Errno::ENOTEMPTY
      # directory may not be empty
    end
  end

  def move_file(src, dest)
    force_remove_file dest
    begin
      File.rename src, dest
    rescue
      File.open(dest, 'wb') {|f|
        f.write File.binread(src)
      }
      File.chmod File.stat(src).mode, dest
      File.unlink src
    end
  end

  def force_remove_file(path)
    begin
      remove_file path
    rescue
    end
  end

  def remove_file(path)
    File.chmod 0777, path
    File.unlink path
  end

  def install(from, dest, mode, prefix = nil)
    $stderr.puts "install #{from} #{dest}" if verbose?
    return if no_harm?

    realdest = prefix ? prefix + File.expand_path(dest) : dest
    realdest = File.join(realdest, File.basename(from)) if File.dir?(realdest)
    str = File.binread(from)
    if diff?(str, realdest)
      verbose_off {
        rm_f realdest if File.exist?(realdest)
      }
      File.open(realdest, 'wb') {|f|
        f.write str
      }
      File.chmod mode, realdest

      File.open("#{objdir_root()}/InstalledFiles", 'a') {|f|
        if prefix
          f.puts realdest.sub(prefix, '')
        else
          f.puts realdest
        end
      }
    end
  end

  def diff?(new_content, path)
    return true unless File.exist?(path)
    new_content != File.binread(path)
  end

  def command(*args)
    $stderr.puts args.join(' ') if verbose?
    system(*args) or raise RuntimeError,
        "system(#{args.map{|a| a.inspect }.join(' ')}) failed"
  end

  def ruby(*args)
    command config('rubyprog'), *args
  end
  
  def make(task = nil)
    command(*[config('makeprog'), task].compact)
  end

  def extdir?(dir)
    File.exist?("#{dir}/MANIFEST") or File.exist?("#{dir}/extconf.rb")
  end

  def files_of(dir)
    Dir.open(dir) {|d|
      return d.select {|ent| File.file?("#{dir}/#{ent}") }
    }
  end

  DIR_REJECT = %w( . .. CVS SCCS RCS CVS.adm .svn )

  def directories_of(dir)
    Dir.open(dir) {|d|
      return d.select {|ent| File.dir?("#{dir}/#{ent}") } - DIR_REJECT
    }
  end

end


# This module requires: #srcdir_root, #objdir_root, #relpath
module HookScriptAPI

  def get_config(key)
    @config[key]
  end

  alias config get_config

  # obsolete: use metaconfig to change configuration
  def set_config(key, val)
    @config[key] = val
  end

  #
  # srcdir/objdir (works only in the package directory)
  #

  def curr_srcdir
    "#{srcdir_root()}/#{relpath()}"
  end

  def curr_objdir
    "#{objdir_root()}/#{relpath()}"
  end

  def srcfile(path)
    "#{curr_srcdir()}/#{path}"
  end

  def srcexist?(path)
    File.exist?(srcfile(path))
  end

  def srcdirectory?(path)
    File.dir?(srcfile(path))
  end
  
  def srcfile?(path)
    File.file?(srcfile(path))
  end

  def srcentries(path = '.')
    Dir.open("#{curr_srcdir()}/#{path}") {|d|
      return d.to_a - %w(. ..)
    }
  end

  def srcfiles(path = '.')
    srcentries(path).select {|fname|
      File.file?(File.join(curr_srcdir(), path, fname))
    }
  end

  def srcdirectories(path = '.')
    srcentries(path).select {|fname|
      File.dir?(File.join(curr_srcdir(), path, fname))
    }
  end

end


class ToplevelInstaller

  Version   = '3.4.1'
  Copyright = 'Copyright (c) 2000-2005 Minero Aoki'

  TASKS = [
    [ 'all',      'do config, setup, then install' ],
    [ 'config',   'saves your configurations' ],
    [ 'show',     'shows current configuration' ],
    [ 'setup',    'compiles ruby extentions and others' ],
    [ 'install',  'installs files' ],
    [ 'test',     'run all tests in test/' ],
    [ 'clean',    "does `make clean' for each extention" ],
    [ 'distclean',"does `make distclean' for each extention" ]
  ]

  def ToplevelInstaller.invoke
    config = ConfigTable.new(load_rbconfig())
    config.load_standard_entries
    config.load_multipackage_entries if multipackage?
    config.fixup
    klass = (multipackage?() ? ToplevelInstallerMulti : ToplevelInstaller)
    klass.new(File.dirname($0), config).invoke
  end

  def ToplevelInstaller.multipackage?
    File.dir?(File.dirname($0) + '/packages')
  end

  def ToplevelInstaller.load_rbconfig
    if arg = ARGV.detect {|arg| /\A--rbconfig=/ =~ arg }
      ARGV.delete(arg)
      load File.expand_path(arg.split(/=/, 2)[1])
      $".push 'rbconfig.rb'
    else
      require 'rbconfig'
    end
    ::Config::CONFIG
  end

  def initialize(ardir_root, config)
    @ardir = File.expand_path(ardir_root)
    @config = config
    # cache
    @valid_task_re = nil
  end

  def config(key)
    @config[key]
  end

  def inspect
    "#<#{self.class} #{__id__()}>"
  end

  def invoke
    run_metaconfigs
    case task = parsearg_global()
    when nil, 'all'
      parsearg_config
      init_installers
      exec_config
      exec_setup
      exec_install
    else
      case task
      when 'config', 'test'
        ;
      when 'clean', 'distclean'
        @config.load_savefile if File.exist?(@config.savefile)
      else
        @config.load_savefile
      end
      __send__ "parsearg_#{task}"
      init_installers
      __send__ "exec_#{task}"
    end
  end
  
  def run_metaconfigs
    @config.load_script "#{@ardir}/metaconfig"
  end

  def init_installers
    @installer = Installer.new(@config, @ardir, File.expand_path('.'))
  end

  #
  # Hook Script API bases
  #

  def srcdir_root
    @ardir
  end

  def objdir_root
    '.'
  end

  def relpath
    '.'
  end

  #
  # Option Parsing
  #

  def parsearg_global
    while arg = ARGV.shift
      case arg
      when /\A\w+\z/
        setup_rb_error "invalid task: #{arg}" unless valid_task?(arg)
        return arg
      when '-q', '--quiet'
        @config.verbose = false
      when '--verbose'
        @config.verbose = true
      when '--help'
        print_usage $stdout
        exit 0
      when '--version'
        puts "#{File.basename($0)} version #{Version}"
        exit 0
      when '--copyright'
        puts Copyright
        exit 0
      else
        setup_rb_error "unknown global option '#{arg}'"
      end
    end
    nil
  end

  def valid_task?(t)
    valid_task_re() =~ t
  end

  def valid_task_re
    @valid_task_re ||= /\A(?:#{TASKS.map {|task,desc| task }.join('|')})\z/
  end

  def parsearg_no_options
    unless ARGV.empty?
      task = caller(0).first.slice(%r<`parsearg_(\w+)'>, 1)
      setup_rb_error "#{task}: unknown options: #{ARGV.join(' ')}"
    end
  end

  alias parsearg_show       parsearg_no_options
  alias parsearg_setup      parsearg_no_options
  alias parsearg_test       parsearg_no_options
  alias parsearg_clean      parsearg_no_options
  alias parsearg_distclean  parsearg_no_options

  def parsearg_config
    evalopt = []
    set = []
    @config.config_opt = []
    while i = ARGV.shift
      if /\A--?\z/ =~ i
        @config.config_opt = ARGV.dup
        break
      end
      name, value = *@config.parse_opt(i)
      if @config.value_config?(name)
        @config[name] = value
      else
        evalopt.push [name, value]
      end
      set.push name
    end
    evalopt.each do |name, value|
      @config.lookup(name).evaluate value, @config
    end
    # Check if configuration is valid
    set.each do |n|
      @config[n] if @config.value_config?(n)
    end
  end

  def parsearg_install
    @config.no_harm = false
    @config.install_prefix = ''
    while a = ARGV.shift
      case a
      when '--no-harm'
        @config.no_harm = true
      when /\A--prefix=/
        path = a.split(/=/, 2)[1]
        path = File.expand_path(path) unless path[0,1] == '/'
        @config.install_prefix = path
      else
        setup_rb_error "install: unknown option #{a}"
      end
    end
  end

  def print_usage(out)
    out.puts 'Typical Installation Procedure:'
    out.puts "  $ ruby #{File.basename $0} config"
    out.puts "  $ ruby #{File.basename $0} setup"
    out.puts "  # ruby #{File.basename $0} install (may require root privilege)"
    out.puts
    out.puts 'Detailed Usage:'
    out.puts "  ruby #{File.basename $0} <global option>"
    out.puts "  ruby #{File.basename $0} [<global options>] <task> [<task options>]"

    fmt = "  %-24s %s\n"
    out.puts
    out.puts 'Global options:'
    out.printf fmt, '-q,--quiet',   'suppress message outputs'
    out.printf fmt, '   --verbose', 'output messages verbosely'
    out.printf fmt, '   --help',    'print this message'
    out.printf fmt, '   --version', 'print version and quit'
    out.printf fmt, '   --copyright',  'print copyright and quit'
    out.puts
    out.puts 'Tasks:'
    TASKS.each do |name, desc|
      out.printf fmt, name, desc
    end

    fmt = "  %-24s %s [%s]\n"
    out.puts
    out.puts 'Options for CONFIG or ALL:'
    @config.each do |item|
      out.printf fmt, item.help_opt, item.description, item.help_default
    end
    out.printf fmt, '--rbconfig=path', 'rbconfig.rb to load',"running ruby's"
    out.puts
    out.puts 'Options for INSTALL:'
    out.printf fmt, '--no-harm', 'only display what to do if given', 'off'
    out.printf fmt, '--prefix=path',  'install path prefix', ''
    out.puts
  end

  #
  # Task Handlers
  #

  def exec_config
    @installer.exec_config
    @config.save   # must be final
  end

  def exec_setup
    @installer.exec_setup
  end

  def exec_install
    @installer.exec_install
  end

  def exec_test
    @installer.exec_test
  end

  def exec_show
    @config.each do |i|
      printf "%-20s %s\n", i.name, i.value if i.value?
    end
  end

  def exec_clean
    @installer.exec_clean
  end

  def exec_distclean
    @installer.exec_distclean
  end

end   # class ToplevelInstaller


class ToplevelInstallerMulti < ToplevelInstaller

  include FileOperations

  def initialize(ardir_root, config)
    super
    @packages = directories_of("#{@ardir}/packages")
    raise 'no package exists' if @packages.empty?
    @root_installer = Installer.new(@config, @ardir, File.expand_path('.'))
  end

  def run_metaconfigs
    @config.load_script "#{@ardir}/metaconfig", self
    @packages.each do |name|
      @config.load_script "#{@ardir}/packages/#{name}/metaconfig"
    end
  end

  attr_reader :packages

  def packages=(list)
    raise 'package list is empty' if list.empty?
    list.each do |name|
      raise "directory packages/#{name} does not exist"\
              unless File.dir?("#{@ardir}/packages/#{name}")
    end
    @packages = list
  end

  def init_installers
    @installers = {}
    @packages.each do |pack|
      @installers[pack] = Installer.new(@config,
                                       "#{@ardir}/packages/#{pack}",
                                       "packages/#{pack}")
    end
    with    = extract_selection(config('with'))
    without = extract_selection(config('without'))
    @selected = @installers.keys.select {|name|
                  (with.empty? or with.include?(name)) \
                      and not without.include?(name)
                }
  end

  def extract_selection(list)
    a = list.split(/,/)
    a.each do |name|
      setup_rb_error "no such package: #{name}"  unless @installers.key?(name)
    end
    a
  end

  def print_usage(f)
    super
    f.puts 'Inluded packages:'
    f.puts '  ' + @packages.sort.join(' ')
    f.puts
  end

  #
  # Task Handlers
  #

  def exec_config
    run_hook 'pre-config'
    each_selected_installers {|inst| inst.exec_config }
    run_hook 'post-config'
    @config.save   # must be final
  end

  def exec_setup
    run_hook 'pre-setup'
    each_selected_installers {|inst| inst.exec_setup }
    run_hook 'post-setup'
  end

  def exec_install
    run_hook 'pre-install'
    each_selected_installers {|inst| inst.exec_install }
    run_hook 'post-install'
  end

  def exec_test
    run_hook 'pre-test'
    each_selected_installers {|inst| inst.exec_test }
    run_hook 'post-test'
  end

  def exec_clean
    rm_f @config.savefile
    run_hook 'pre-clean'
    each_selected_installers {|inst| inst.exec_clean }
    run_hook 'post-clean'
  end

  def exec_distclean
    rm_f @config.savefile
    run_hook 'pre-distclean'
    each_selected_installers {|inst| inst.exec_distclean }
    run_hook 'post-distclean'
  end

  #
  # lib
  #

  def each_selected_installers
    Dir.mkdir 'packages' unless File.dir?('packages')
    @selected.each do |pack|
      $stderr.puts "Processing the package `#{pack}' ..." if verbose?
      Dir.mkdir "packages/#{pack}" unless File.dir?("packages/#{pack}")
      Dir.chdir "packages/#{pack}"
      yield @installers[pack]
      Dir.chdir '../..'
    end
  end

  def run_hook(id)
    @root_installer.run_hook id
  end

  # module FileOperations requires this
  def verbose?
    @config.verbose?
  end

  # module FileOperations requires this
  def no_harm?
    @config.no_harm?
  end

end   # class ToplevelInstallerMulti


class Installer

  FILETYPES = %w( bin lib ext data conf man )

  include FileOperations
  include HookScriptAPI

  def initialize(config, srcroot, objroot)
    @config = config
    @srcdir = File.expand_path(srcroot)
    @objdir = File.expand_path(objroot)
    @currdir = '.'
  end

  def inspect
    "#<#{self.class} #{File.basename(@srcdir)}>"
  end

  def noop(rel)
  end

  #
  # Hook Script API base methods
  #

  def srcdir_root
    @srcdir
  end

  def objdir_root
    @objdir
  end

  def relpath
    @currdir
  end

  #
  # Config Access
  #

  # module FileOperations requires this
  def verbose?
    @config.verbose?
  end

  # module FileOperations requires this
  def no_harm?
    @config.no_harm?
  end

  def verbose_off
    begin
      save, @config.verbose = @config.verbose?, false
      yield
    ensure
      @config.verbose = save
    end
  end

  #
  # TASK config
  #

  def exec_config
    exec_task_traverse 'config'
  end

  alias config_dir_bin noop
  alias config_dir_lib noop

  def config_dir_ext(rel)
    extconf if extdir?(curr_srcdir())
  end

  alias config_dir_data noop
  alias config_dir_conf noop
  alias config_dir_man noop

  def extconf
    ruby "#{curr_srcdir()}/extconf.rb", *@config.config_opt
  end

  #
  # TASK setup
  #

  def exec_setup
    exec_task_traverse 'setup'
  end

  def setup_dir_bin(rel)
    files_of(curr_srcdir()).each do |fname|
      update_shebang_line "#{curr_srcdir()}/#{fname}"
    end
  end

  alias setup_dir_lib noop

  def setup_dir_ext(rel)
    make if extdir?(curr_srcdir())
  end

  alias setup_dir_data noop
  alias setup_dir_conf noop
  alias setup_dir_man noop

  def update_shebang_line(path)
    return if no_harm?
    return if config('shebang') == 'never'
    old = Shebang.load(path)
    if old
      $stderr.puts "warning: #{path}: Shebang line includes too many args.  It is not portable and your program may not work." if old.args.size > 1
      new = new_shebang(old)
      return if new.to_s == old.to_s
    else
      return unless config('shebang') == 'all'
      new = Shebang.new(config('rubypath'))
    end
    $stderr.puts "updating shebang: #{File.basename(path)}" if verbose?
    open_atomic_writer(path) {|output|
      File.open(path, 'rb') {|f|
        f.gets if old   # discard
        output.puts new.to_s
        output.print f.read
      }
    }
  end

  def new_shebang(old)
    if /\Aruby/ =~ File.basename(old.cmd)
      Shebang.new(config('rubypath'), old.args)
    elsif File.basename(old.cmd) == 'env' and old.args.first == 'ruby'
      Shebang.new(config('rubypath'), old.args[1..-1])
    else
      return old unless config('shebang') == 'all'
      Shebang.new(config('rubypath'))
    end
  end

  def open_atomic_writer(path, &block)
    tmpfile = File.basename(path) + '.tmp'
    begin
      File.open(tmpfile, 'wb', &block)
      File.rename tmpfile, File.basename(path)
    ensure
      File.unlink tmpfile if File.exist?(tmpfile)
    end
  end

  class Shebang
    def Shebang.load(path)
      line = nil
      File.open(path) {|f|
        line = f.gets
      }
      return nil unless /\A#!/ =~ line
      parse(line)
    end

    def Shebang.parse(line)
      cmd, *args = *line.strip.sub(/\A\#!/, '').split(' ')
      new(cmd, args)
    end

    def initialize(cmd, args = [])
      @cmd = cmd
      @args = args
    end

    attr_reader :cmd
    attr_reader :args

    def to_s
      "#! #{@cmd}" + (@args.empty? ? '' : " #{@args.join(' ')}")
    end
  end

  #
  # TASK install
  #

  def exec_install
    rm_f 'InstalledFiles'
    exec_task_traverse 'install'
  end

  def install_dir_bin(rel)
    install_files targetfiles(), "#{config('bindir')}/#{rel}", 0755
  end

  def install_dir_lib(rel)
    install_files libfiles(), "#{config('rbdir')}/#{rel}", 0644
  end

  def install_dir_ext(rel)
    return unless extdir?(curr_srcdir())
    install_files rubyextentions('.'),
                  "#{config('sodir')}/#{File.dirname(rel)}",
                  0555
  end

  def install_dir_data(rel)
    install_files targetfiles(), "#{config('datadir')}/#{rel}", 0644
  end

  def install_dir_conf(rel)
    # FIXME: should not remove current config files
    # (rename previous file to .old/.org)
    install_files targetfiles(), "#{config('sysconfdir')}/#{rel}", 0644
  end

  def install_dir_man(rel)
    install_files targetfiles(), "#{config('mandir')}/#{rel}", 0644
  end

  def install_files(list, dest, mode)
    mkdir_p dest, @config.install_prefix
    list.each do |fname|
      install fname, dest, mode, @config.install_prefix
    end
  end

  def libfiles
    glob_reject(%w(*.y *.output), targetfiles())
  end

  def rubyextentions(dir)
    ents = glob_select("*.#{@config.dllext}", targetfiles())
    if ents.empty?
      setup_rb_error "no ruby extention exists: 'ruby #{$0} setup' first"
    end
    ents
  end

  def targetfiles
    mapdir(existfiles() - hookfiles())
  end

  def mapdir(ents)
    ents.map {|ent|
      if File.exist?(ent)
      then ent                         # objdir
      else "#{curr_srcdir()}/#{ent}"   # srcdir
      end
    }
  end

  # picked up many entries from cvs-1.11.1/src/ignore.c
  JUNK_FILES = %w( 
    core RCSLOG tags TAGS .make.state
    .nse_depinfo #* .#* cvslog.* ,* .del-* *.olb
    *~ *.old *.bak *.BAK *.orig *.rej _$* *$

    *.org *.in .*
  )

  def existfiles
    glob_reject(JUNK_FILES, (files_of(curr_srcdir()) | files_of('.')))
  end

  def hookfiles
    %w( pre-%s post-%s pre-%s.rb post-%s.rb ).map {|fmt|
      %w( config setup install clean ).map {|t| sprintf(fmt, t) }
    }.flatten
  end

  def glob_select(pat, ents)
    re = globs2re([pat])
    ents.select {|ent| re =~ ent }
  end

  def glob_reject(pats, ents)
    re = globs2re(pats)
    ents.reject {|ent| re =~ ent }
  end

  GLOB2REGEX = {
    '.' => '\.',
    '$' => '\$',
    '#' => '\#',
    '*' => '.*'
  }

  def globs2re(pats)
    /\A(?:#{
      pats.map {|pat| pat.gsub(/[\.\$\#\*]/) {|ch| GLOB2REGEX[ch] } }.join('|')
    })\z/
  end

  #
  # TASK test
  #

  TESTDIR = 'test'

  def exec_test
    unless File.directory?('test')
      $stderr.puts 'no test in this package' if verbose?
      return
    end
    $stderr.puts 'Running tests...' if verbose?
    begin
      require 'test/unit'
    rescue LoadError
      setup_rb_error 'test/unit cannot loaded.  You need Ruby 1.8 or later to invoke this task.'
    end
    runner = Test::Unit::AutoRunner.new(true)
    runner.to_run << TESTDIR
    runner.run
  end

  #
  # TASK clean
  #

  def exec_clean
    exec_task_traverse 'clean'
    rm_f @config.savefile
    rm_f 'InstalledFiles'
  end

  alias clean_dir_bin noop
  alias clean_dir_lib noop
  alias clean_dir_data noop
  alias clean_dir_conf noop
  alias clean_dir_man noop

  def clean_dir_ext(rel)
    return unless extdir?(curr_srcdir())
    make 'clean' if File.file?('Makefile')
  end

  #
  # TASK distclean
  #

  def exec_distclean
    exec_task_traverse 'distclean'
    rm_f @config.savefile
    rm_f 'InstalledFiles'
  end

  alias distclean_dir_bin noop
  alias distclean_dir_lib noop

  def distclean_dir_ext(rel)
    return unless extdir?(curr_srcdir())
    make 'distclean' if File.file?('Makefile')
  end

  alias distclean_dir_data noop
  alias distclean_dir_conf noop
  alias distclean_dir_man noop

  #
  # Traversing
  #

  def exec_task_traverse(task)
    run_hook "pre-#{task}"
    FILETYPES.each do |type|
      if type == 'ext' and config('without-ext') == 'yes'
        $stderr.puts 'skipping ext/* by user option' if verbose?
        next
      end
      traverse task, type, "#{task}_dir_#{type}"
    end
    run_hook "post-#{task}"
  end

  def traverse(task, rel, mid)
    dive_into(rel) {
      run_hook "pre-#{task}"
      __send__ mid, rel.sub(%r[\A.*?(?:/|\z)], '')
      directories_of(curr_srcdir()).each do |d|
        traverse task, "#{rel}/#{d}", mid
      end
      run_hook "post-#{task}"
    }
  end

  def dive_into(rel)
    return unless File.dir?("#{@srcdir}/#{rel}")

    dir = File.basename(rel)
    Dir.mkdir dir unless File.dir?(dir)
    prevdir = Dir.pwd
    Dir.chdir dir
    $stderr.puts '---> ' + rel if verbose?
    @currdir = rel
    yield
    Dir.chdir prevdir
    $stderr.puts '<--- ' + rel if verbose?
    @currdir = File.dirname(rel)
  end

  def run_hook(id)
    path = [ "#{curr_srcdir()}/#{id}",
             "#{curr_srcdir()}/#{id}.rb" ].detect {|cand| File.file?(cand) }
    return unless path
    begin
      instance_eval File.read(path), path, 1
    rescue
      raise if $DEBUG
      setup_rb_error "hook #{path} failed:\n" + $!.message
    end
  end

end   # class Installer


class SetupError < StandardError; end

def setup_rb_error(msg)
  raise SetupError, msg
end

if $0 == __FILE__
  begin
    ToplevelInstaller.invoke
  rescue SetupError
    raise if $DEBUG
    $stderr.puts $!.message
    $stderr.puts "Try 'ruby #{$0} --help' for detailed usage."
    exit 1
  end
end
lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/scripts/lsruby_runner.rb000075500000002115150402106530020312 0ustar00#!/opt/alt/ruby22/bin/ruby

require 'lsapi'

class CodeCache
    def [](filename)
		mtime = File.mtime( filename )		
		
		entry = @cache[filename];
		if entry != nil 
			return entry
						
		end
		code = compile(filename)
		#entry = CodeEntry.new( filename, mtime, code )
		@cache[filename] = code
		return code
    end

    private

    def initialize
      @cache = {}
    end

    def compile(filename)
		open(filename) do |f|
			s = f.read
			s.untaint
			binding = eval_string_wrap("binding")
			return eval(format("Proc.new {\n%s\n}", s), binding, filename, 0)
		end
    end
end


$count = 0;

$cache = CodeCache.new


while true
	$req = LSAPI.accept 
	break if $req == nil 
	
	filename = ENV['SCRIPT_FILENAME']
	filename.untaint

	filename =~ %r{^(\/.*?)\/*([^\/]+)$}
	path   = $1
	Dir.chdir( path )
	#load( filename, true )	
    code = $cache[filename]
    code.call
	
end

class CodeEntry
	public :path, :name, :mtime, :opcode 
	
	def initizlize( filename, mtime, opcode )
		filename =~ %r{^(\/.*?)\/*([^\/]+)$}
		@path   = $1
		@name   = $2
		@mtime  = mtime
		@opcode = opcode
	end

end


lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/ext/lsapi/Makefile000064400000020707150402106530016741 0ustar00
SHELL = /bin/sh

# V=0 quiet, V=1 verbose.  other values don't work.
V = 0
Q1 = $(V:1=)
Q = $(Q1:0=@)
ECHO1 = $(V:1=@:)
ECHO = $(ECHO1:0=@echo)
NULLCMD = :

#### Start of system configuration section. ####

srcdir = .
topdir = /opt/alt/ruby22/include/ruby-2.2.0
hdrdir = $(topdir)
arch_hdrdir = /opt/alt/ruby22/include/ruby-2.2.0/x86_64-linux
PATH_SEPARATOR = :
VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
prefix = $(DESTDIR)/opt/alt/ruby22
rubysitearchprefix = $(rubylibprefix)/$(sitearch)
rubyarchprefix = $(rubylibprefix)/$(arch)
rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
exec_prefix = $(DESTDIR)/opt/alt/ruby22
vendorarchhdrdir = $(vendorhdrdir)/$(sitearch)
sitearchhdrdir = $(sitehdrdir)/$(sitearch)
rubyarchhdrdir = $(rubyhdrdir)/$(arch)
vendorhdrdir = $(rubyhdrdir)/vendor_ruby
sitehdrdir = $(rubyhdrdir)/site_ruby
rubyhdrdir = $(includedir)/$(RUBY_VERSION_NAME)
vendorarchdir = $(vendorlibdir)/$(sitearch)
vendorlibdir = $(vendordir)/$(ruby_version)
vendordir = $(rubylibprefix)/vendor_ruby
sitearchdir = $(DESTDIR)./.gem.20240125-3705149-blbl4i
sitelibdir = $(DESTDIR)./.gem.20240125-3705149-blbl4i
sitedir = $(rubylibprefix)/site_ruby
rubyarchdir = $(rubylibdir)/$(arch)
rubylibdir = $(rubylibprefix)/$(ruby_version)
sitearchincludedir = $(includedir)/$(sitearch)
archincludedir = $(includedir)/$(arch)
sitearchlibdir = $(libdir)/$(sitearch)
archlibdir = $(libdir)/$(arch)
ridir = $(datarootdir)/$(RI_BASE_NAME)
mandir = $(DESTDIR)/opt/alt/ruby22/share/man
localedir = $(datarootdir)/locale
libdir = $(exec_prefix)/lib64
psdir = $(docdir)
pdfdir = $(docdir)
dvidir = $(docdir)
htmldir = $(docdir)
infodir = $(DESTDIR)/opt/alt/ruby22/share/info
docdir = $(datarootdir)/doc/$(PACKAGE)
oldincludedir = $(DESTDIR)/usr/include
includedir = $(DESTDIR)/opt/alt/ruby22/include
localstatedir = $(DESTDIR)/var
sharedstatedir = $(DESTDIR)/var/lib
sysconfdir = $(DESTDIR)/etc
datadir = $(DESTDIR)/opt/alt/ruby22/share
datarootdir = $(prefix)/share
libexecdir = $(DESTDIR)/opt/alt/ruby22/libexec
sbindir = $(DESTDIR)/opt/alt/ruby22/sbin
bindir = $(exec_prefix)/bin
archdir = $(rubyarchdir)


CC = gcc
CXX = g++
LIBRUBY = $(LIBRUBY_SO)
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
LIBRUBYARG_SHARED = -Wl,-R$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)
LIBRUBYARG_STATIC = -Wl,-R$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)-static
empty =
OUTFLAG = -o $(empty)
COUTFLAG = -o $(empty)

RUBY_EXTCONF_H = 
cflags   =  $(optflags) $(debugflags) $(warnflags)
optflags = -O3 -fno-fast-math
debugflags = -ggdb3
warnflags = -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat
CCDLFLAGS = -fPIC
CFLAGS   = $(CCDLFLAGS) -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection $(ARCH_FLAG)
INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
DEFS     = 
CPPFLAGS =   $(DEFS) $(cppflags) -DRUBY_2
CXXFLAGS = $(CCDLFLAGS) -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection $(ARCH_FLAG)
ldflags  = -L. -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -L/opt/alt/openssl/lib64 -L/opt/alt/ruby22/lib64 -Wl,-rpath=/opt/alt/openssl/lib64,-rpath=/opt/alt/ruby22/lib64 -fstack-protector -rdynamic -Wl,-export-dynamic
dldflags =  
ARCH_FLAG = -m64
DLDFLAGS = $(ldflags) $(dldflags) $(ARCH_FLAG)
LDSHARED = $(CC) -shared
LDSHAREDXX = $(CXX) -shared
AR = ar
EXEEXT = 

RUBY_INSTALL_NAME = $(RUBY_BASE_NAME)
RUBY_SO_NAME = ruby
RUBYW_INSTALL_NAME = 
RUBY_VERSION_NAME = $(RUBY_BASE_NAME)-$(ruby_version)
RUBYW_BASE_NAME = rubyw
RUBY_BASE_NAME = ruby

arch = x86_64-linux
sitearch = $(arch)
ruby_version = 2.2.0
ruby = $(bindir)/$(RUBY_BASE_NAME)
RUBY = $(ruby)
ruby_headers = $(hdrdir)/ruby.h $(hdrdir)/ruby/ruby.h $(hdrdir)/ruby/defines.h $(hdrdir)/ruby/missing.h $(hdrdir)/ruby/intern.h $(hdrdir)/ruby/st.h $(hdrdir)/ruby/subst.h $(arch_hdrdir)/ruby/config.h

RM = rm -f
RM_RF = $(RUBY) -run -e rm -- -rf
RMDIRS = rmdir --ignore-fail-on-non-empty -p
MAKEDIRS = /usr/bin/mkdir -p
INSTALL = /usr/bin/install -c
INSTALL_PROG = $(INSTALL) -m 0755
INSTALL_DATA = $(INSTALL) -m 644
COPY = cp
TOUCH = exit >

#### End of system configuration section. ####

preload = 

libpath = . $(libdir)
LIBPATH =  -L. -L$(libdir) -Wl,-R$(libdir)
DEFFILE = 

CLEANFILES = mkmf.log
DISTCLEANFILES = 
DISTCLEANDIRS = 

extout = 
extout_prefix = 
target_prefix = 
LOCAL_LIBS = 
LIBS = $(LIBRUBYARG_SHARED)  -lpthread -ldl -lcrypt -lm   -lc
ORIG_SRCS = lsapilib.c lsruby.c
SRCS = $(ORIG_SRCS) 
OBJS = lsapilib.o lsruby.o
HDRS = $(srcdir)/lsapidef.h $(srcdir)/lsapilib.h
TARGET = lsapi
TARGET_NAME = lsapi
TARGET_ENTRY = Init_$(TARGET_NAME)
DLLIB = $(TARGET).so
EXTSTATIC = 
STATIC_LIB = 

TIMESTAMP_DIR = .
BINDIR        = $(bindir)
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
RUBYLIBDIR    = $(sitelibdir)$(target_prefix)
RUBYARCHDIR   = $(sitearchdir)$(target_prefix)
HDRDIR        = $(rubyhdrdir)/ruby$(target_prefix)
ARCHHDRDIR    = $(rubyhdrdir)/$(arch)/ruby$(target_prefix)

TARGET_SO     = $(DLLIB)
CLEANLIBS     = $(TARGET).so 
CLEANOBJS     = *.o  *.bak

all:    $(DLLIB)
static: $(STATIC_LIB)
.PHONY: all install static install-so install-rb
.PHONY: clean clean-so clean-static clean-rb

clean-static::
clean-rb-default::
clean-rb::
clean-so::
clean: clean-so clean-static clean-rb-default clean-rb
		-$(Q)$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES) .*.time

distclean-rb-default::
distclean-rb::
distclean-so::
distclean-static::
distclean: clean distclean-so distclean-static distclean-rb-default distclean-rb
		-$(Q)$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
		-$(Q)$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
		-$(Q)$(RMDIRS) $(DISTCLEANDIRS) 2> /dev/null || true

realclean: distclean
install: install-so install-rb

install-so: $(DLLIB) $(TIMESTAMP_DIR)/.RUBYARCHDIR.time
	$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
clean-static::
	-$(Q)$(RM) $(STATIC_LIB)
install-rb: pre-install-rb install-rb-default
install-rb-default: pre-install-rb-default
pre-install-rb: Makefile
pre-install-rb-default: Makefile
pre-install-rb-default:
	@$(NULLCMD)
$(TIMESTAMP_DIR)/.RUBYARCHDIR.time:
	$(Q) $(MAKEDIRS) $(@D) $(RUBYARCHDIR)
	$(Q) $(TOUCH) $@

site-install: site-install-so site-install-rb
site-install-so: install-so
site-install-rb: install-rb

.SUFFIXES: .c .m .cc .mm .cxx .cpp .o .S

.cc.o:
	$(ECHO) compiling $(<)
	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.cc.S:
	$(ECHO) translating $(<)
	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $<

.mm.o:
	$(ECHO) compiling $(<)
	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.mm.S:
	$(ECHO) translating $(<)
	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $<

.cxx.o:
	$(ECHO) compiling $(<)
	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.cxx.S:
	$(ECHO) translating $(<)
	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $<

.cpp.o:
	$(ECHO) compiling $(<)
	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.cpp.S:
	$(ECHO) translating $(<)
	$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $<

.c.o:
	$(ECHO) compiling $(<)
	$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<

.c.S:
	$(ECHO) translating $(<)
	$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -S $<

.m.o:
	$(ECHO) compiling $(<)
	$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<

.m.S:
	$(ECHO) translating $(<)
	$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -S $<

$(DLLIB): $(OBJS) Makefile
	$(ECHO) linking shared-object $(DLLIB)
	-$(Q)$(RM) $(@)
	$(Q) $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)



$(OBJS): $(HDRS) $(ruby_headers)
lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/ext/lsapi/lsapidef.h000064400000011054150402106530017234 0ustar00/*
Copyright (c) 2002-2018, Lite Speed Technologies Inc.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.
    * Neither the name of the Lite Speed Technologies Inc nor the
      names of its contributors may be used to endorse or promote
      products derived from this software without specific prior
      written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/


#ifndef  _LSAPIDEF_H_
#define  _LSAPIDEF_H_

#include <inttypes.h>

#if defined (c_plusplus) || defined (__cplusplus)
extern "C" {
#endif

enum
{
    H_ACCEPT = 0,
    H_ACC_CHARSET,
    H_ACC_ENCODING,
    H_ACC_LANG,
    H_AUTHORIZATION,
    H_CONNECTION,
    H_CONTENT_TYPE,
    H_CONTENT_LENGTH,
    H_COOKIE,
    H_COOKIE2,
    H_HOST,
    H_PRAGMA,
    H_REFERER,
    H_USERAGENT,
    H_CACHE_CTRL,
    H_IF_MODIFIED_SINCE,
    H_IF_MATCH,
    H_IF_NO_MATCH,
    H_IF_RANGE,
    H_IF_UNMOD_SINCE,
    H_KEEP_ALIVE,
    H_RANGE,
    H_X_FORWARDED_FOR,
    H_VIA,
    H_TRANSFER_ENCODING

};
#define LSAPI_SOCK_FILENO           0

#define LSAPI_VERSION_B0            'L'
#define LSAPI_VERSION_B1            'S'

/* Values for m_flag in lsapi_packet_header */
#define LSAPI_ENDIAN_LITTLE         0
#define LSAPI_ENDIAN_BIG            1
#define LSAPI_ENDIAN_BIT            1

#if defined(__i386__)||defined( __x86_64 )||defined( __x86_64__ )
#define LSAPI_ENDIAN                LSAPI_ENDIAN_LITTLE
#else
#define LSAPI_ENDIAN                LSAPI_ENDIAN_BIG
#endif

/* Values for m_type in lsapi_packet_header */
#define LSAPI_BEGIN_REQUEST         1
#define LSAPI_ABORT_REQUEST         2
#define LSAPI_RESP_HEADER           3
#define LSAPI_RESP_STREAM           4
#define LSAPI_RESP_END              5
#define LSAPI_STDERR_STREAM         6
#define LSAPI_REQ_RECEIVED          7
#define LSAPI_CONN_CLOSE            8
#define LSAPI_INTERNAL_ERROR        9


#define LSAPI_MAX_HEADER_LEN        65535
#define LSAPI_MAX_DATA_PACKET_LEN   16384

#define LSAPI_RESP_HTTP_HEADER_MAX  32768
#define LSAPI_PACKET_HEADER_LEN     8


struct lsapi_packet_header
{
    char    m_versionB0;      /* LSAPI protocol version */
    char    m_versionB1;
    char    m_type;
    char    m_flag;
    union
    {
        int32_t m_iLen;       /* include this header */
        char    m_bytes[4];
    }m_packetLen;
};

/*
    LSAPI request header packet

    1. struct lsapi_req_header
    2. struct lsapi_http_header_index
    3. lsapi_header_offset * unknownHeaders
    4. org http request header
    5. request body if available
*/

struct lsapi_req_header
{
    struct lsapi_packet_header m_pktHeader;

    int32_t m_httpHeaderLen;
    int32_t m_reqBodyLen;
    int32_t m_scriptFileOff;   /* path to the script file. */
    int32_t m_scriptNameOff;   /* decrypted URI, without pathinfo, */
    int32_t m_queryStringOff;  /* Query string inside env */
    int32_t m_requestMethodOff;
    int32_t m_cntUnknownHeaders;
    int32_t m_cntEnv;
    int32_t m_cntSpecialEnv;
} ;


struct lsapi_http_header_index
{
    uint16_t m_headerLen[H_TRANSFER_ENCODING+1];
    int32_t m_headerOff[H_TRANSFER_ENCODING+1];
} ;

struct lsapi_header_offset
{
    int32_t nameOff;
    int32_t nameLen;
    int32_t valueOff;
    int32_t valueLen;
} ;

struct lsapi_resp_info
{
    int32_t m_cntHeaders;
    int32_t m_status;
};

struct lsapi_resp_header
{
    struct  lsapi_packet_header  m_pktHeader;
    struct  lsapi_resp_info      m_respInfo;
};

#if defined (c_plusplus) || defined (__cplusplus)
}
#endif


#endif

lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/ext/lsapi/lsruby.c000064400000055522150402106530016770 0ustar00
#include "ruby.h"

#if defined( RUBY_VERSION_CODE ) && RUBY_VERSION_CODE < 180
#include "util.h"
#else
#include <ruby/util.h>
#include <ruby/version.h>
#endif

#include "lsapilib.h"
#include <errno.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <signal.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <unistd.h>
#include <sys/mman.h>
#include <fcntl.h>


#ifndef RUBY_API_VERSION_CODE
#define RUBY_API_VERSION_CODE (RUBY_API_VERSION_MAJOR*10000+RUBY_API_VERSION_MINOR*100+RUBY_API_VERSION_TEENY)
#endif

/* RUBY_EXTERN VALUE ruby_errinfo; */
RUBY_EXTERN VALUE rb_stdin;
RUBY_EXTERN VALUE rb_stdout;
#if defined( RUBY_VERSION_CODE ) && RUBY_VERSION_CODE < 180
RUBY_EXTERN VALUE rb_defout;
#endif

static VALUE orig_stdin;
static VALUE orig_stdout;
static VALUE orig_stderr;
#if defined( RUBY_VERSION_CODE ) && RUBY_VERSION_CODE < 180
static VALUE orig_defout;
#endif
static VALUE orig_env;

static VALUE env_copy;

static VALUE lsapi_env;

static int MAX_BODYBUF_LENGTH = (10 * 1024 * 1024);

#if RUBY_API_VERSION_CODE >= 20700
# if defined rb_tainted_str_new
#  undef rb_tainted_str_new
# endif
# define rb_tainted_str_new(p,l)  rb_str_new((p),(l))
#endif

/* static VALUE lsapi_objrefs; */

typedef struct lsapi_data
{
    LSAPI_Request * req;
    VALUE           env;
    ssize_t      (* fn_write)( LSAPI_Request *, const char * , size_t );
}lsapi_data;

static VALUE cLSAPI;

static VALUE s_req = Qnil;
static lsapi_data * s_req_data;

static VALUE s_req_stderr = Qnil;
static lsapi_data * s_stderr_data;
static pid_t s_pid = 0;

typedef struct lsapi_body
{
    char        *bodyBuf;  //we put small one into memory, otherwise, into a memory mapping file, and we still use the bodyBuf to access this mapping
    int	        bodyLen;	//expected length got form content-length
    int	        bodyCurrentLen;	//current length by read() readBodyToReqBuf
    int	        curPos;
}lsapi_body;

static lsapi_body	s_body;
static char sTempFile[1024] = {0};

/*
 * static void lsapi_ruby_setenv(const char *name, const char *value)
 * {
 *    if (!name) return;
 * 
 *    if (value && *value)
 *	    ruby_setenv(name, value);
 *    else
 *        ruby_unsetenv(name);
 } *        *
 */


static void lsapi_mark( lsapi_data * data )
{
    rb_gc_mark( data->env );
}
/*
 * static void lsapi_free_data( lsapi_data * data )
 * {
 *   free( data );
 } *        *
 */
static int add_env_rails( const char * pKey, int keyLen, const char * pValue, int valLen,
                          void * arg )
{
    char * p;
    int len;
    /* Fixup some environment variables for rails */
    switch( *pKey )
    {
        case 'Q':
            if ( strcmp( pKey, "QUERY_STRING" ) == 0 )
            {
                if ( !*pValue )
                    return 1;
            }
            break;
        case 'R':
            if (( *(pKey+8) == 'U' )&&( strcmp( pKey, "REQUEST_URI" ) == 0 ))
            {
                p = strchr( pValue, '?' );
                if ( p )
                {
                    len = valLen - ( p - pValue ) - 1;
                    /* 
                     *                valLen = p - pValue;
                     *p++ = 0;
                     */
                }
                else
                {
                    p = (char *)pValue + valLen;
                    len = 0;
                }
                rb_hash_aset( lsapi_env,rb_tainted_str_new("PATH_INFO", 9),
                              rb_tainted_str_new(pValue, p - pValue));
                rb_hash_aset( lsapi_env,rb_tainted_str_new("REQUEST_PATH", 12),
                              rb_tainted_str_new(pValue, p - pValue));
                if ( *p == '?' )
                    ++p;
                rb_hash_aset( lsapi_env,rb_tainted_str_new("QUERY_STRING", 12),
                rb_tainted_str_new(p, len));
            }
            break;
        case 'S':
            if ( strcmp( pKey, "SCRIPT_NAME" ) == 0 )
            {
                pValue = "/";
                valLen = 1;
            }
            break;
        case 'P':
            if ( strcmp( pKey, "PATH_INFO" ) == 0 )
                return 1;
        default:
            break;
    }
    
    /* lsapi_ruby_setenv(pKey, pValue ); */
    
    rb_hash_aset( lsapi_env,rb_tainted_str_new(pKey, keyLen),
                  rb_tainted_str_new(pValue, valLen));
    return 1;
}

static int add_env_no_fix( const char * pKey, int keyLen, const char * pValue, int valLen,
                           void * arg )
{
    rb_hash_aset( lsapi_env,rb_tainted_str_new(pKey, keyLen),
                  rb_tainted_str_new(pValue, valLen));
    return 1;
}

typedef int (*fn_add_env)( const char * pKey, int keyLen, const char * pValue, int valLen,
                           void * arg );

fn_add_env s_fn_add_env = add_env_no_fix;

static void clear_env()
{
    /* rb_funcall( lsapi_env, rb_intern( "clear" ), 0 ); */
    rb_funcall( lsapi_env, rb_intern( "replace" ), 1, env_copy );
}

static void setup_cgi_env( lsapi_data * data )
{
    clear_env();
    
    LSAPI_ForeachHeader_r( data->req, s_fn_add_env, data );
    LSAPI_ForeachEnv_r( data->req, s_fn_add_env, data );
}

static VALUE lsapi_s_accept( VALUE self )
{
    int pid;
    if ( LSAPI_Prefork_Accept_r( &g_req ) == -1 )
        return Qnil;
    else
    {
        if (s_body.bodyBuf != NULL)
            free (s_body.bodyBuf);
        
        s_body.bodyBuf = NULL;
        s_body.bodyLen = -1;
        s_body.bodyCurrentLen = 0;
        s_body.curPos = 0;    
        
        pid = getpid();
        if ( pid != s_pid )
        {
            s_pid = pid;
            rb_funcall( Qnil, rb_intern( "srand" ), 0 );
        }
        
        setup_cgi_env( s_req_data );
        return s_req;
    }
}


static VALUE lsapi_s_accept_new_conn(VALUE self)
{
    if (LSAPI_Accept_Before_Fork(&g_req) == -1 )
        return Qnil;
    else
        return s_req;
}


static VALUE lsapi_s_postfork_child(VALUE self)
{
    LSAPI_Postfork_Child(&g_req);
    return s_req;
}


static VALUE lsapi_s_postfork_parent(VALUE self)
{
    LSAPI_Postfork_Parent(&g_req);
    return s_req;
}


/*
 * static int chdir_file( const char * pFile )
 * {
 *    char * p = strrchr( pFile, '/' );
 *    int ret;
 *    if ( !p )
 *        return -1;
 *p = 0;
 ret = chdir( pFile );
 *p = '/';
 return ret;
 }
 */

static VALUE lsapi_eval_string_wrap(VALUE self, VALUE str)
{
#if RUBY_API_VERSION_CODE < 20700
    if (rb_safe_level() >= 4)
    {
        Check_Type(str, T_STRING);
    }
    else
#endif
    {
        SafeStringValue(str);
    }
    return rb_eval_string_wrap(StringValuePtr(str), NULL);
}

static VALUE lsapi_process( VALUE self )
{
/*    lsapi_data *data;
    const char * pScriptPath;
    Data_Get_Struct(self,lsapi_data, data);
    pScriptPath = LSAPI_GetScriptFileName_r( data->req );
*/
    /*
     *   if ( chdir_file( pScriptPath ) == -1 )
     *   {
     *       lsapi_send_error( 404 );
     *   }
     *   rb_load_file( pScriptPath );
     */
    return Qnil;
}


static VALUE lsapi_putc(VALUE self, VALUE c)
{
    char ch = NUM2CHR(c);
    lsapi_data *data;
    Data_Get_Struct(self,lsapi_data, data);
    if ( (*data->fn_write)( data->req, &ch, 1 ) == 1 )
        return c;
    else
        return INT2NUM( EOF );
}


static VALUE lsapi_write( VALUE self, VALUE str )
{
    lsapi_data *data;
    int len;
    Data_Get_Struct(self,lsapi_data, data);
    /*    len = LSAPI_Write_r( data->req, RSTRING_PTR(str), RSTRING_LEN(str) ); */
    if (TYPE(str) != T_STRING)
        str = rb_obj_as_string(str);
    len = (*data->fn_write)( data->req, RSTRING_PTR(str), RSTRING_LEN(str) );
    return INT2NUM( len );
}

static VALUE lsapi_print( int argc, VALUE *argv, VALUE out )
{
    int i;
    VALUE line;
    
    /* if no argument given, print `$_' */
    if (argc == 0)
    {
        argc = 1;
        line = rb_lastline_get();
        argv = &line;
    }
    for (i = 0; i<argc; i++)
    {
        if (!NIL_P(rb_output_fs) && i>0)
        {
            lsapi_write(out, rb_output_fs);
        }
        switch (TYPE(argv[i]))
        {
            case T_NIL:
                lsapi_write(out, rb_str_new2("nil"));
                break;
            default:
                lsapi_write(out, argv[i]);
                break;
        }
    }
    if (!NIL_P(rb_output_rs))
    {
        lsapi_write(out, rb_output_rs);
    }
    
    return Qnil;
}

static VALUE lsapi_printf(int argc, VALUE *argv, VALUE out)
{
    lsapi_write(out, rb_f_sprintf(argc, argv));
    return Qnil;
}

static VALUE lsapi_puts _((int, VALUE*, VALUE));

#if RUBY_API_VERSION_CODE >= 10900
static VALUE lsapi_puts_ary(VALUE ary, VALUE out, int recur )
{
    VALUE tmp;
    long i;
    
    if (recur)
    {
        tmp = rb_str_new2("[...]");
        rb_io_puts(1, &tmp, out);
        return Qnil;
    }
    for (i=0; i<RARRAY_LEN(ary); i++) 
    {
        tmp = RARRAY_PTR(ary)[i];
        rb_io_puts(1, &tmp, out);
    }
    return Qnil;
    
}
#else
static VALUE lsapi_puts_ary(VALUE ary, VALUE out)
{
    VALUE tmp;
    int i;
    
    for (i=0; i<RARRAY_LEN(ary); i++)
    {
        tmp = RARRAY_PTR(ary)[i];
        if (rb_inspecting_p(tmp))
        {
            tmp = rb_str_new2("[...]");
        }
        lsapi_puts(1, &tmp, out);
    }
    return Qnil;
}
#endif

static VALUE lsapi_puts(int argc, VALUE *argv, VALUE out)
{
    int i;
    VALUE line;
    
    /* if no argument given, print newline. */
    if (argc == 0)
    {
        lsapi_write(out, rb_default_rs);
        return Qnil;
    }
    for (i=0; i<argc; i++)
    {
        switch (TYPE(argv[i]))
        {
            case T_NIL:
                line = rb_str_new2("nil");
                break;
            case T_ARRAY:
#if RUBY_API_VERSION_CODE >= 10900
                rb_exec_recursive(lsapi_puts_ary, argv[i], out);
#else
                rb_protect_inspect(lsapi_puts_ary, argv[i], out);
#endif
                continue;
            default:
                line = argv[i];
                break;
        }
        line = rb_obj_as_string(line);
        lsapi_write(out, line);
        if (*( RSTRING_PTR(line) + RSTRING_LEN(line) - 1 ) != '\n')
        {
            lsapi_write(out, rb_default_rs);
        }
    }
    
    return Qnil;
}


static VALUE lsapi_addstr(VALUE out, VALUE str)
{
    lsapi_write(out, str);
    return out;
}

static VALUE lsapi_flush( VALUE self )
{
    /*
     *    lsapi_data *data;
     *    Data_Get_Struct(self,lsapi_data, data);
     */
    LSAPI_Flush_r( &g_req ); 
    return Qnil;
}

static VALUE lsapi_getc( VALUE self )
{
    int ch;
    /*
     *    lsapi_data *data;
     *    Data_Get_Struct(self,lsapi_data, data);
     */
#if RUBY_API_VERSION_CODE < 20700
    if (rb_safe_level() >= 4 && !OBJ_TAINTED(self))
    {
        rb_raise(rb_eSecurityError, "Insecure: operation on untainted IO");
    }
#endif
    ch = LSAPI_ReqBodyGetChar_r( &g_req );
    if ( ch == EOF )
        return Qnil;
    return INT2NUM( ch );
}

static inline int isBodyWriteToFile()
{
    return ((s_body.bodyLen >= MAX_BODYBUF_LENGTH)? (1): (0));
}

//create a temp file and open it, if failed, fd = -1
static inline int createTempFile()
{
    int fd = -1;
    char *sfn = strdup(sTempFile);
    
    if ((fd = mkstemp(sfn)) == -1)
    {
        fprintf(stderr, "%s: %s\n", sfn, strerror(errno));
    }
    else
        unlink(sfn);
    
    free(sfn);
    return fd;
}

//return 1 if error occured!
//if already created, always OK (0)
static int createBodyBuf()
{
    int fd = -1;
    if (s_body.bodyLen == -1)
    {
        s_body.bodyLen = LSAPI_GetReqBodyLen_r(&g_req);
        //Error if get a zeor length, should not happen 
        if (s_body.bodyLen < 0)
        {
            //Wrong bode length will be treated as 0
            s_body.bodyLen = 0;
        }
        
        if (s_body.bodyLen > 0) 
        {
            if (isBodyWriteToFile())
            {
                //create file mapping
                fd = createTempFile();
                if (fd == -1)
                {
                    return 1;
                }
                if (ftruncate(fd, s_body.bodyLen) == 0)
                {
                    perror("ftruncate() failed. \n");
                    close(fd);
                    return 1;
                }
                s_body.bodyBuf = mmap(NULL, s_body.bodyLen, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
                if (s_body.bodyBuf == MAP_FAILED)
                {
                    perror("File mapping failed. \n");
                    close(fd);
                    return 1;
                }
                close(fd);  //close since needn't it anymore
            }
            else
            {
                s_body.bodyBuf = (char *)calloc(s_body.bodyLen, sizeof(char));
                if (s_body.bodyBuf == NULL)
                {
                    perror("Memory calloc error");
                    return 1;
                }
            }
        }
    }

    return 0;   
}

static inline int isAllBodyRead()
{
    return (s_body.bodyCurrentLen < s_body.bodyLen)? 0 : 1;
}

static inline int isEofBodyBuf()
{
    return (s_body.curPos < s_body.bodyLen) ? 0 : 1;
}
//try to read length as times pagesize (such as 8KB * N)
static int readBodyBuf(const int needRead)
{
    const int blockSize = 8192;
    char *buff = s_body.bodyBuf + s_body.bodyCurrentLen;
    int nRead;
    int readMore = (needRead + blockSize -1) / blockSize * blockSize;
    int remain = LSAPI_GetReqBodyRemain_r( &g_req );
    //Only when not enough left, needReadChange will be changed!!!
    if (remain < readMore) 
        readMore = remain;

    if ( readMore <= 0 )
        return 0;
    
    nRead = LSAPI_ReadReqBody_r(&g_req, buff, readMore);
    if ( nRead > 0 )
        s_body.bodyCurrentLen += nRead;

    return nRead;
}

static VALUE lsapi_gets( VALUE self )
{
    VALUE str;
    const int blkSize = 4096;
    int n;
    char *p = NULL;
    
#if RUBY_API_VERSION_CODE < 20700
    if (rb_safe_level() >= 4 && !OBJ_TAINTED(self))
    {
        rb_raise(rb_eSecurityError, "Insecure: operation on untainted IO");
    }
#endif
    if (createBodyBuf() == 1)
    {
        return Qnil;
    }   
    
    //comment:
    while((p = memmem(s_body.bodyBuf + s_body.curPos, s_body.bodyCurrentLen - s_body.curPos, "\n", 1)) == NULL) 
    {
        if (isAllBodyRead() == 1)
            break;
        //read one page and check, then reply
        readBodyBuf(blkSize);
    }
    
    p = memmem(s_body.bodyBuf + s_body.curPos, s_body.bodyCurrentLen - s_body.curPos, "\n", 1);
    if (p != NULL)
        n = p - s_body.bodyBuf - s_body.curPos + 1;
    else
        n = s_body.bodyCurrentLen - s_body.curPos;
    
    str = rb_str_buf_new( n );
#if RUBY_API_VERSION_CODE < 20700
    OBJ_TAINT(str);
#endif
    
    if (n > 0)
    {
        rb_str_buf_cat( str, s_body.bodyBuf + s_body.curPos, n );
        s_body.curPos += n;
    }
    
    return str;
}

static VALUE lsapi_read(int argc, VALUE *argv, VALUE self)
{
    VALUE str;
    int n;
    int needRead;
    int nRead;
    
#if RUBY_API_VERSION_CODE < 20700
    if (rb_safe_level() >= 4 && !OBJ_TAINTED(self))
    {
        rb_raise(rb_eSecurityError, "Insecure: operation on untainted IO");
    }
#endif
    if (createBodyBuf() == 1)
    {
        return Qnil;
    }
    
    //we need to consider these 4 cases:
    //1, need all data since argc == 0, we may have all data 2, or not
    //3, need a length of data (argv >= 1), we may have enough data already read, 4, or not
    if (argc == 0)
        n = s_body.bodyLen - s_body.curPos;
    else
    {
        n = NUM2INT(argv[0]); //request that length from currentpos
        if (n < 0)
            return Qnil;
        if (n > s_body.bodyLen - s_body.curPos)
            n = s_body.bodyLen - s_body.curPos;            
    }
    needRead = s_body.curPos + n - s_body.bodyCurrentLen;
    if (needRead < 0)
        needRead = 0;
    
    str = rb_str_buf_new( n );
#if RUBY_API_VERSION_CODE < 20700
    OBJ_TAINT(str);
#endif
    if (n == 0)
        return str;
    
    //copy already have part first
    if (n - needRead != 0)
    {
        rb_str_buf_cat( str, s_body.bodyBuf + s_body.curPos, n - needRead);
        s_body.curPos += (n - needRead);
    }
    
    if (needRead > 0)
    {
        //try to read needRead, but may be less (changed) when read the end of the data
        nRead = readBodyBuf(needRead);
        if (nRead > 0)
        {
            n = ((nRead < needRead) ? nRead : needRead);
            rb_str_buf_cat( str, s_body.bodyBuf + s_body.curPos, n );
            s_body.curPos += n;
        }
    }
    
    return str;
}

static VALUE lsapi_rewind(VALUE self)
{  
    s_body.curPos = 0;
    return self;
}

static VALUE lsapi_each(VALUE self)
{
    VALUE str;
    lsapi_rewind(self);
   
    while(isEofBodyBuf() != 1)
    {
        str = lsapi_gets(self);
        rb_yield(str);
    }
    return self;

}

static VALUE lsapi_eof(VALUE self)
{
    return (LSAPI_GetReqBodyRemain_r( &g_req ) <= 0) ? Qtrue : Qfalse;
}

static VALUE lsapi_binmode(VALUE self)
{
    return self;
}

static VALUE lsapi_isatty(VALUE self)
{
    return Qfalse;
}

static VALUE lsapi_sync(VALUE self)
{
    return Qfalse;
}

static VALUE lsapi_setsync(VALUE self,VALUE sync)
{
    return Qfalse;
}

static VALUE lsapi_close(VALUE self)
{
    LSAPI_Flush_r( &g_req );
    if (isBodyWriteToFile())
    {
        //msync(s_body.bodyBuf, s_body.bodyLen, MS_SYNC);
        //sleep(5);
        munmap(s_body.bodyBuf, s_body.bodyLen);
    }
    else
        free(s_body.bodyBuf);
    
    s_body.bodyBuf = NULL;
    s_body.bodyLen = -1;
    s_body.bodyCurrentLen = 0;
    s_body.curPos = 0;    
    //Should the temp be deleted here?!
        
    return Qnil;
}


static VALUE lsapi_reopen( int argc, VALUE *argv, VALUE self)
{
    VALUE orig_verbose;
    if ( self == s_req_stderr )
    {
        /* constant silence hack */
        orig_verbose = (VALUE)ruby_verbose;
        ruby_verbose = Qnil;
        
        rb_define_global_const("STDERR", orig_stderr);
        
        ruby_verbose = (VALUE)orig_verbose;
        
        return rb_funcall2( orig_stderr, rb_intern( "reopen" ), argc, argv );
        
    }
    return self;
}

static void readMaxBodyBufLength()
{
    int n;
    const char *p = getenv( "LSAPI_MAX_BODYBUF_LENGTH" );
    if ( p )
    {
        n = atoi( p );
        if (n > 0)
        {
            if (strstr(p, "M") || strstr(p, "m"))
                MAX_BODYBUF_LENGTH = n * 1024 * 1024;
            else if (strstr(p, "K") || strstr(p, "k"))
                MAX_BODYBUF_LENGTH = n * 1024;
            else
                MAX_BODYBUF_LENGTH = n;
        }
    }
}

static void readTempFileTemplate()
{
    const char *p = getenv( "LSAPI_TEMPFILE" );
    if (p == NULL || strlen(p) > 1024 - 7)
         p = "/tmp/lsapi.XXXXXX";
    
    strcpy(sTempFile, p);
    if (strlen(p) <= 6 || strcmp(p + (strlen(p) - 6), "XXXXXX") != 0)
        strcat(sTempFile, ".XXXXXX");
}

static void initBodyBuf()
{
    s_body.bodyBuf = NULL;
    s_body.bodyLen = -1;
    s_body.bodyCurrentLen = 0;
    s_body.curPos = 0;    
}
void Init_lsapi()
{
    VALUE orig_verbose; 
    char * p;
    int prefork = 0;
    LSAPI_Init();
    initBodyBuf();
    
    readMaxBodyBufLength();
    readTempFileTemplate();
    
    p = getenv("LSAPI_CHILDREN");
    if (p && atoi(p) > 1)
        prefork = 1;

#ifdef rb_thread_select
    LSAPI_Init_Env_Parameters( rb_thread_select );
#else
    LSAPI_Init_Env_Parameters( select );
#endif
    
    s_pid = getpid();
    
    p = getenv( "RACK_ROOT" );
    if ( p )
    {
        if ( chdir( p ) == -1 )
            perror( "chdir()" );
    }
    if ( p || getenv( "RACK_ENV" ) )
        s_fn_add_env = add_env_rails;
    
    orig_stdin = rb_stdin;
    orig_stdout = rb_stdout;
    orig_stderr = rb_stderr;
#if defined( RUBY_VERSION_CODE ) && RUBY_VERSION_CODE < 180
    orig_defout = rb_defout;
#endif
    orig_env = rb_const_get( rb_cObject, rb_intern("ENV") );
    env_copy = rb_funcall( orig_env, rb_intern( "to_hash" ), 0 );
    
    /* tell the garbage collector it is a global variable, do not recycle it. */
    rb_global_variable(&env_copy);
    
    rb_hash_aset( env_copy,rb_tainted_str_new("GATEWAY_Irewindable_input.rbNTERFACE", 17),
                                              rb_tainted_str_new("CGI/1.2", 7));
        
    rb_define_global_function("eval_string_wrap", lsapi_eval_string_wrap, 1);
    
    cLSAPI = rb_define_class("LSAPI", rb_cObject);
    rb_define_singleton_method(cLSAPI, "accept", lsapi_s_accept, 0);
    if (prefork)
    {
        rb_define_singleton_method(cLSAPI, "accept_new_connection", lsapi_s_accept_new_conn, 0);
        rb_define_singleton_method(cLSAPI, "postfork_child", lsapi_s_postfork_child, 0);
        rb_define_singleton_method(cLSAPI, "postfork_parent", lsapi_s_postfork_parent, 0);
    }

    rb_define_method(cLSAPI, "process", lsapi_process, 0 );
    /* rb_define_method(cLSAPI, "initialize", lsapi_initialize, 0); */
    rb_define_method(cLSAPI, "putc", lsapi_putc, 1);
    rb_define_method(cLSAPI, "write", lsapi_write, 1);
    rb_define_method(cLSAPI, "print", lsapi_print, -1);
    rb_define_method(cLSAPI, "printf", lsapi_printf, -1);
    rb_define_method(cLSAPI, "puts", lsapi_puts, -1);
    rb_define_method(cLSAPI, "<<", lsapi_addstr, 1);
    rb_define_method(cLSAPI, "flush", lsapi_flush, 0);
    rb_define_method(cLSAPI, "getc", lsapi_getc, 0);
    /* rb_define_method(cLSAPI, "ungetc", lsapi_ungetc, 1); */
    rb_define_method(cLSAPI, "gets", lsapi_gets, 0);
    
    //TEST: adding readline function to make irb happy?
    /*rb_define_method(cLSAPI, "readline", lsapi_gets, 0); */
    
    rb_define_method(cLSAPI, "read", lsapi_read, -1);
    rb_define_method(cLSAPI, "rewind", lsapi_rewind, 0);
    rb_define_method(cLSAPI, "each", lsapi_each, 0);
    
    rb_define_method(cLSAPI, "eof", lsapi_eof, 0);
    rb_define_method(cLSAPI, "eof?", lsapi_eof, 0);
    rb_define_method(cLSAPI, "close", lsapi_close, 0);
    /* rb_define_method(cLSAPI, "closed?", lsapi_closed, 0); */
    rb_define_method(cLSAPI, "binmode", lsapi_binmode, 0);
    rb_define_method(cLSAPI, "isatty", lsapi_isatty, 0);
    rb_define_method(cLSAPI, "tty?", lsapi_isatty, 0);
    rb_define_method(cLSAPI, "sync", lsapi_sync, 0);
    rb_define_method(cLSAPI, "sync=", lsapi_setsync, 1);
    rb_define_method(cLSAPI, "reopen", lsapi_reopen, -1 );
    
    
    s_req = Data_Make_Struct( cLSAPI, lsapi_data, lsapi_mark, free, s_req_data );
    s_req_data->req = &g_req;
    s_req_data->fn_write = LSAPI_Write_r;
    rb_stdin = rb_stdout = s_req;
    
#if defined( RUBY_VERSION_CODE ) && RUBY_VERSION_CODE < 180
    rb_defout = s_req;
#endif

    rb_global_variable(&s_req );
    
    s_req_stderr = Data_Make_Struct( cLSAPI, lsapi_data, lsapi_mark, free, s_stderr_data );
    s_stderr_data->req = &g_req;
    s_stderr_data->fn_write = LSAPI_Write_Stderr_r;
    rb_stderr = s_req_stderr;
    rb_global_variable(&s_req_stderr );
    
    /* constant silence hack */
    orig_verbose = (VALUE)ruby_verbose;
    ruby_verbose = Qnil;
    
    lsapi_env = rb_hash_new();
    clear_env();
    /* redefine ENV using a hash table, should be faster than char **environment */
    rb_define_global_const("ENV", lsapi_env);
    
    rb_define_global_const("STDERR", rb_stderr);
    
    ruby_verbose = (VALUE)orig_verbose;
    
    return;
}

lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/ext/lsapi/extconf.rb000064400000000374150402106530017272 0ustar00require 'mkmf'
dir_config( 'lsapi' )
if ( have_library( "socket" ))
    have_library( "nsl" )
end
if RUBY_VERSION =~ /1.9/ then
    $CPPFLAGS += " -DRUBY_19"
end 
if RUBY_VERSION =~ /2/ then
    $CPPFLAGS += " -DRUBY_2"
end 
create_makefile( "lsapi" )
lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/ext/lsapi/.RUBYARCHDIR.time000064400000000000150402106530017775 0ustar00lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/ext/lsapi/lsruby.o000064400000347310150402106530017003 0ustar00ELF>��@@98

,.+/*0)1����fD���H���ff.���H�H���H+���H���HO��D��H������1��f���1��f���ATI��H��US��Hc��Hc�L��H���H�=H��H���[�]A\�ff.�H�5SH�H��tH�=H�ٺ1�[�D�H�=�H��H�����H����H��H�=��H���f���H��H�=�Hc5;5H�=|6�H������H���H���fD���f����?��I�H�=���H���H+��9�M�1���~+H��Hc�Hc5H5���~H���f��ff.�@��UH��SH��H���H�m ��t]��uaH��H���H��tT�؃���tJ��tEH�H�؉у���u5H�M�� u@H��H�p��H�}��H��H�[]H�D�@H�����u�H���H�MH��� t�H�PH�p�f���SH���C���H��[�ff.���SH���H��H�������[Ð��H��H�=�H�H�����H��H�=�H�H�����H��H�=�����tH�H��H�����USH��H�=�������H�=H��t�H������H���9t H�5�H��t[1ҿ1��1�H����H�-H�;H��H�u�H�uH�;H���H�H��H��[]�f��H�=�H��H����SH��H�t$���~0H�|$�H�\$�H���1�H���H��[�@H�\$H���H�|$���ff.�@��AWAVAUA��ATI��U��SH��H���<Q��~v<R��<Su"�H�=H���������@Mc�L��L���Hc�H��I���H�=L��H���H���[]A\A]A^A_�fD<Pu��
H�=H�������u��ƀULc�u��H�=H��������t����?H���I��H���H��A��L)�A)�Mc�H��L��H�L$��	H�=H�$�H�$H�=H���H�L$L��H����H�=H�$�H�$H�=H���1�A�??L����I�L����H�=I���H�=L��H������fD�
H�=H��������r����:�i������@A�L�%�Q���fDO�<4L��E1������H9tH����ATUH��S���L� �H�5H�=H���H�5L� H��tH�=H���[]A\���H�=�H��H���ff.��=�t1��@H�H����=����t�USH��;=��H�=�H��H����Ń����H���H���Hc��H�������E1�A���H��1��H�H��������1�H��[]�f.�Hc���H�H��u�H�=����@�1��H�=������fD��8�H�پH�I��H�H�81��H�����N���H�=������1���f���AUATI��U��SH��H�����~0����H������~H��ƒ����m���d1��������@�����-��+Hc�D�-�I�Ĩu,H�����t$H��ƒ������H����@��t"D)�A�DI�D9�u"D���������H��L��[]A\A]�@D)�Hc5L��H5Hc�����H��L��[]A\A]�@I�<$@��u&���xe�-�)�9�O���!�����ؐD9�Hc5L��DN�H5Ic��D-�R���@��I�$����@H��A�[L��]A\A]�H�H�5H�81��@��AWAVAUATUSH��H�����~0���(H������H��ƒ����
���1��J�������L�5��D9-~N��-���D�-M�&�H�Hc=D��)�I��L�Hc�H���H��t�L)�D)��XHc�H���I�Ĩu*H�����t"H��ƒ���M�H��sBf.���~Hc5H��H5L���H��L��[]A\A]A^A_���I�$��A���H�H�5H�81������SH�����~"@H���h���H����9|�H��[�ff.�f���SH�����~ ��u@H�����t7H��ƒ���t*��t%H�=����t
H�[H�D�@�[�H�H�5H�81�����AUATUH��SH��dH�%(H�D$1�����I��1�I���KDH����H9�}LL���L��I�E tW�I�EH��H��L��H��H�$�I�E�� u�I�EH9�|�H�L$dH3%(�uBH��[]A\A]��I�E �D�H�=�H��H��H�$���@��1��f���UH��SH��H��dH�%(H�D$1���u;H�����t2H��ƒ���u%�� tH�{~H�S��H�S��u�DH���uX��H��D$�H�E H�t$�H�8�PH��H�����HD�H�L$dH3%(uH��[]�����@��AVAUATUSH�Ӆ�����G�I��L�%H�l��R�@��uj������t`H��tZ@��tTH��4tN�������H��H��H�=�����I��L9�tpI�}@��u�H�����u�H��tqH��u���H��I��H���e�I��� u]H��I�V��H���<
t�H�H��I��H�0�2�L9�u�[�]A\A]A^����u�L���H��뉐I�FI�VH���f�H�H��H�0���[�]A\A]A^���AVAUATUH��SH��dH�%(H�D$1������I��H�6A���L�5�w���@����H��H���H��tw����to@��ti�����u_�L���H��H���7�A9�~OH�H�0H��tH����I�t�H��@��u�H�����u�H��t�H��u��H�����A9��H�H�0H��tH�����H�L$dH3%(�u0H��[]A\A]A^�f��I��A�H��H�$������AUATUSH��������H�=H�H���H��t8�
1�H��H���H��~�MH���H�������-H�=�H��H��tH���H��H=��8�Xfof�)H�=1��H��t1��
H��1����@��H�=��H�=��H����H��������H�H��H�H�H�5H�H�H���sL�%I�<$�H�5H�H���$1�H��1��H�=H���H�=��H�=I���H�=L��H����H�5��H�=�I�4$H�=�1�H���H�5H��H�����H�=1�H��H�5�H�=�H�8���H�5�H�=�H�	�H�5�H�=�����H����H�5�H�=�����H���H�5�H�=�����H�����H�5�H�=�H�=�H�5�H�=1�H�q�H�5�H�=1�H�����H�5�H�=1�H����H�5�H�=�����H�*�H�5�H�=1�H���H�5�H�=1�H�2���H�5�H�=1�H���H�5�H�=1�H���H�5�H�=1�H���H�5�H�=1�H���H�5�H�=1�H���H�5�H�=1�H�j�H�5�H�=1�H����H�5�H�=�H�?�H�5�H�=�����H���H�5����L�%H�=H���H��H�L���H�H�-H�=H�
H�H�*H�JH�H�H�H�����H�=L��H�+�H��H��H�H�
H�=H�H�JH�*H���H�(�H��H�1��z�H�5H�=�H�3H�=��H�(H��[]A\A]�DH�P�H��H�=�H��w"H�H�.XXXXXXH�(����H�t+��H�=�����u�����H�=1�H�X�H�5�H�=1�H��H�5�H�=1�H���H�5������H�=�H��H�H������H�=�H��H��m���H�=��*����H�=�H����������fD�mH���H���6����KH���H��t��
�-�����kH���H��u�-�����GA$3p1113GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1113GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1113GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1113GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1113GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignreplacesrand/QUERY_STRINGREQUEST_URIPATH_INFOREQUEST_PATHSCRIPT_NAMESTDERRreopen%s: %s
ftruncate() failed. 
File mapping failed. 
Memory calloc error
[...]nilLSAPI_MAX_BODYBUF_LENGTHLSAPI_TEMPFILEXXXXXXLSAPI_CHILDRENRACK_ROOTchdir()ENVto_hashCGI/1.2eval_string_wrapLSAPIacceptaccept_new_connectionpostfork_childpostfork_parentprocessputcwriteprintprintfputs<<flushgetcgetsreadrewindeacheofeof?closebinmodeisattytty?syncsync=RACK_ENVInsecure: operation on untainted IOGATEWAY_Irewindable_input.rbNTERFACE/tmp/lsapi.XXXXX	E;�9%I'P(�int�)@�����������	��
9�	1�	3�	6	�	7	�	8	�	9	� 	:	�(	;	�0	<	�8	=	�@	@	�H	A	�P	B	�X	D�`	F�h	H�p	I�t	J�x	MP�	NW�	O��	Q��	Y
��	[��	\��	]��	^	G�	_
-�	`��	b��
�
	+��	��
9���	��
9���?�M������	�UJU�U
a�}^q���!�$�2�7�;��a9:IDb9@��4@�V	

�:F:X�Y�Z	:U�lenV�ptrW�aux[�T\�ary]	�
9(RCSVas^�h���	:}�len~�aux�Cptr��F|��hary��	F�
9�(z	{Vas��(�R�V�]�]�G ]GR�]3:4:5:6:7:8:9:::;:<:>:?:@:A:B:C:D:E:F:G:H:I:J:K:L:M:N:O:P:Q:R:S:T:U:V:W:X:Y:Z:[:\:]:^:_:`:a:b:c:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:}:~::�:�:�:�:�:�:�:�:�(::::::n�o��:	�,
97,	�H=8H9H:H;�<H=H>H @,F
	

!qh
"s�"t�k�
m
�n
�o
�p
�uF
,�G� h
�
��
��
��
��
��
��
� �
�$�
�(��o�o�
4	�
9	��
9���
��
��
��
����
��
��!�"h
�"�4I6	�7	�!I/�1�2�3�4�#	:�<�=�?�@�B�C� E�(F�0G�8I�@J�HK�PL!�XO�`P�hQ�pR�xT'��V'��W'��X'��Y'��Z'��\'��]'�_��`��a��b��c��d��e��f��g��h��i��$k'$m'�($n'8$oG	��G-�h
�
TG�	h

9	j)%9�q�s)G&�j����G-�.�P�����
��	��
9
��������
�l�������**q'����||������  *55?JJT�_�j�u��l��������%�:�O��!�{�!�O"�
O"�_"�o	�_
9	�o
9	�
9���	!����	I�
9	��
9@���(":(#:)$:	)(:	)*:	),:	).�	9�*req;�*env<:=�)&���-�>|)@:	)B:	)C$	�)E:	)F$	)G~	I�K�L�M�N�Ol)Q�		��%9�)R
�	�A+��	,4{�D#-6:.p7�-8	�/�0Z*K	1fA2U	2T3/�0[&K	1fA2U	2T73D#:4h#<!56v#6�#457
�7G71sA2Us2T02Q:8A�2U	8�A�2Us2TM8�A�2Us2Tm8�A2Us2TK1�A2Us2Tk4N#=&56\#47(�7(7771�A2U	2Ts2Qv2R
9�6"*	�7�67�68A2U	1�A2Us457@f7G71sA2T02Q::�A8A�2U	:�A:�A8A�2U	:�A:B8B�2Q08B2U	8+B?2U	2T78+Bc2U	2TA88B{2Q}8EB�2U	2T	2Q18RB�2U	8_B�2T	2Q	2R08kB-2T	2Q	2R08kB^2T	2Q	2R18kB�2T	2Q	2R18kB�2T	2Q	2R	�8kB�2T	2Q	2R	�8kB%2T	2Q	2R	�8kBV2T	2Q	2R18kB�2T	2Q	2R08kB�2T	2Q	2R08kB�2T	2Q	2R08kB2T	2Q	2R	�8kBL2T	2Q	2R08kB}2T	2Q	2R08kB�2T	2Q	2R08kB�2T	2Q	2R08kB 2T	2Q	2R08kBA 2T	2Q	2R08kBr 2T	2Q	2R08kB� 2T	2Q	2R08kB� 2T	2Q	2R08kB!2T	2Q	2R18kB7!2T	2Q	2R	�8xBS!2U12TH8�Bx!2Q	2R|8B�!2U	8xB�!2U12TH8�B�!2Q	2R|8B�!2U	:�B:�B:�B:,28�BJ"2U	8�Bi"2U	:�B8_B�"2T	2Q	2R08_B�"2T	2Q	2R08_B	#2T	2Q	2R08�B(#2U	1A2U	;-
<"
h#=p$�<
�#=n	�=p�>�:�#?� �?�-�?�9:@�:A0	*K	B�:g�o$C� :D})�	:�B:�B:�BB�:��$E�":UE�-:TF�:�$?�:>�:�$?�!:B�:�#%E�":UB�:+�~%E�:UG�5�
H6B�:C�;&C�:.str�:9;&
��%7M&3)�8(-&2Us:�B>�:[&?�!:By:��(Cy�Cy*�Cy6:.str{:.n|	�-}	�-~	�4�6�
Q'7�6:�B:C:C:2)8C�'2Us $ &8U(�'2U}8+C�'2U|2Qs $ &8+C�'2U|2Q} $ &18C2T	>J:U(?J :=strL:@M�=nN	�=pO�B5�a�)C5"�I7� -8�-9	�-:	�@;	�4�5;)H6:ECJ0�J+�K��Q)=fd�	�K��})=fd�	�=sfn��J��>�:�)?� :=ch�	�B�:��)C�!::�BB�:�f*Lout�!:Lstr�,:1�,2Us2T�T>�:�*?��?�*�Mout�6:=i�	�@�:>l:
+Maryl#:Moutl.:?l7�=tmpn:=io
�Bc:��+Cc�Cc,�Loutc8:8QC�+2U�U2T�T1�,2UsB?:O��,C?�C?,�Lout?8:.iA	�0B:�@4-6QN,7?68^Ck,2U~2T38�,�,2Uv8�,�,2Uv8�,�,2Uv8�,�,2Uv:kC:xCN3:���-C3!:Lstr3-:-5$.len6	�4�67�-7�61�C2Uv2T<4-69	�-7?61�C2UsB':��#/C':Lc'+:Och)
��W-*$4M6)�.7_6P�6U7�68�B�.2Us:C4�6+�.7�61�C2Uv2T<Q/2T�W2Q1:xCB:
�V/E#:UB:a�0C+:Lstr7::C8�C�/2T58�C�/2Us8�C�/2T08�C02Us:�CR�: �`0S�,::�CR�: ��0S�+::�CR�:-��0S�,::�CR�:��2S�$:Tpid�	�/r1)�K	1fA2U	2T5U2�	�172:,28�C�12Qs1D2Qs:D:�B:�A1B2U82Q0V�
,2W�)$X�
M��2/�2)�K	1fA2U	2T7YB2Q1R��B��3S�)�S�3�S�H�S�T�Zarg�#G8+BJ32U�Q2T	�R $ &8+Bn32U|2Ts $ &18B2QvRk���5Sk(�Sk2�SkG�SkS�Zargl"GTpn�[leno	�8+BF42U|2T~8+Bj42Us2Tv $ &88B�42Q|8D�42U|2T?8+B�42U|2T��8+B�42U	2T988B�42Qw8+B52U|2T��8+BA52U	2T<88BZ52Qw8+Bx52U2T}8+B�52U	2T<18B2Q}\a

��5Sa&$]'D^��6W�?�^��-6W�<�>��M6Mobj�:>P�k6MxP:>�:�6Mx�:?��?�C�>�G�6Mobj�:>���6Mx�:_��7W��W��_\�57W\�W\�`i�U7?i�_d��7Wd!Wd<�ab;&��7cM&Ub�$��7c�$Ub�#���87�#7�#7�#d�#P�#�7�#7�#7�#56�#e�#�81fA2U	2T6:�B:�B8�B�82U	:�BY4D2Q�U2R�Tb2)���;fD)96�<9H 6D})42)��;56D)4Q)�:56c)6o)4U7�	:7r77f71AD2T12Q	2Rs8MD=:2U	8YDU:2Us8fDm:2Us8�B�:2Us:sD:D1�B2Us8�D�:2Uv2Ts8�D;2U02Ts2Q32R12Xv2Y08�D;2Uv8�B<;2U	8�DT;2Uv8�Bs;2U	1�D2Uv8�D�;2T11�B2U	b(h�=7(d$(g1(d>(hI(i(J�<H(56$(d1(6>(6I(D$)_
8U(}<2U
8�D�<2U|"2Tv2Q	2R18C�<2Uv1+C2U|2Qv:C:2)18C2T	b�)o��=7�)6�)9�)��=7�)jd�)18C2T	:C:�Db�*��@7�*7�*7�*k�*�@6�*9k6y�>7�67�67}61�D2U}4k6y�>7�67�67}61�D2U}9k6y:?7�67�67}6:�D9�*'l�?7�*7�*7�*j'k�*�@d�*8^C�?2U	2T51�D2U12Tw2Qv8�D
@2U12Tw2Qv:xCbf*P�fA7x*7�*7�*d�*d�*if*�QAH�*H�*Hx*56�*6�*4-6��@7?68�D�@2U	2Qs:�C8�,A2Us2T~8�,6A2Us1^C2U|2T31�,2Usl�m�lwno�/tmp/lsapi.XXXXXXno
�.XXXXXXl�m{lnltl�l�l�l�l�ll�l{m�l�m{l�l�l�l�l

m�m Ll3
l ll�lFl�l�l�m�	l�l�l|pll�l#l�l"l*l�ll}m�m�l^m�l�l�mZm!Hl�l9m%
l�l�m 9lallqm�o�	lsruby.cl�l&l�%:;9I$>$>&II7I	I
!I/:;9
:;9I8
:;9<4:;9I?<!4:;9I?<:;9I>I:;9(�:;9
:;9I8:;9
:;9I:;9
:;9I8
:;9I
:;9I�8'I:;9I >I:;9!:;9"
:;9I#:;9$
:;9I8%!I/&'I':;9(4:;9I)4:;9I*
:;9I8+4:;9I?,.?:;9@�B-4:;9I�B.4:;9I�B/U04:;9I1��12���B31R�BUXYW41R�BUXYW5U641�B71�B8��191R�BXYW:��1;.:;9 <.:;9 =4:;9I>.:;9'I ?:;9I@4:;9IAB.:;9'I@�BC:;9I�BD1R�BXYWE:;9IF.:;9'IG1R�BXYWH1I4:;9IJ.:;9I K.:;9I L:;9I�BM:;9IN.:;9'I@�BO4:;9IP1R�BUXYWQ��R.:;9'I@�BS:;9I�BT4:;9I�BU1R�BUXYWV.:;9' W:;9IX.:;9@�BY���B1Z:;9I�B[4:;9I\.:;9'@�B]���B1^.:;9'I _.?:;9'I 4`.?:;9'I ab.1@�Bc1d41e1Uf41
g41h41i1UXYWjk41l.?<n:;9m.?<n:;9n.?<n:;o6p.?<nG�V��p��P��P��P��0���V�0��V�;0�*PP=S�;SPSLXPXhSh����S�Sh|���Sh|
���
������
���P`oUo��U���U��S��P��P��U��S��PP	j	Uj	�	V�	t
�U�t
�
V�
�
�U��
�
V�
�
�U��
�
V�
�U�VP	j	Tj	�	\�	t
�T�t
�
\�
�
�T��
�
\�
�T�\P	j	Qj	�	S�	t
�Q�t
�
S�
�
�Q��
�
S�
�
�Q��
�
S�
�Q�S�	�	P�	9
\9
<
P<
q
\q
t
P�
�
\�	
S<
C
S�
�
P�
�
]�
�
S�	�	v}��	
v} $0 $+(��
�
v} $0 $+(�&
.
P�
�
P|
�
U�
�
U��U��u�@��1�U��� $ &"�.1� $ &"�.P�Q.1Q@OUO^�U���U�SP��T��T�U/�U�T/�T�Q.S./�Q�p�U��U��1�p�T��]��T���T���Wp�Q��V���Q���Q��V��0�	/SX]S��0���
s $ &3$}"/I
s $ &3$}"@YUY^V^��U�@QTQ�S��S^�V��V��PHYUY^V^�S��SP�U�V�U�VPsTsS�T�S��PpsTs�SS��SS��U��V��U���U���T0?U?P�U�P_U_p�U�pU��U���U���U��Pg�P,VS��U��\���U���T��S���T���Q���Q���R���R���X���X�BUBGS��S��S��SETE�V���T���T��V��T��V��T�V[Q[o\��Q��\�
Q
\;R;[]��R��]��R�]�^��R�]^[X[��X���X���X��
X
�X��P�_
P_08U8=�U� EUE�S��Q���U���S ETE�V��R���T���V EQE��Q�AEQE��Q�A�V��R���T���VA�S��Q���U���SI�\��\2}V��V'	1		��1	N	V	��)P)}V��V��P�N	VP9S�1	S	1	
�		p		U 9U9�S�a�U�a�S�PC\Ua\�CSUaS��P��P��U�&
S&
,
�U�,
6
S6
7
�U�7
O
S
+
P,
5
P7
O
SP
�
U�
�
]�
�
U�
�
]�
�U�U]U<�U�P
�
T�
�
V�
�T�VT<VP
�
Q�
�Q� Q <�Q��
�
S�
�
s��
�
SS�
�
���
�

y�
y��
�
]�
�
��
�

y��
�
U�
�
]�
y�U]U7�U� Q 7�Q�T7V QUQN�U�NZUZp�U� QTQN�T�N]T]p�T� QQQS!�Q�!NSNaQacScp�Q�7Q0���U��P�^=?P?N^QU��U,;����-������HHLQU^^���
p�#%,VA���mtw|���N	2�'	�			|
�
�
�
�CXh�����
�
�
�
p�������7(PX����/P�������=�;=��h||�������
��-4;Dh�Qo�
/opt/alt/ruby22/include/ruby-2.2.0/ruby/usr/include/bits/usr/include/usr/lib/gcc/x86_64-redhat-linux/8/include/usr/include/bits/types/usr/include/sys/usr/include/netinetlsruby.clsapilib.hruby.hstdio2.hstdlib.hstring_fortified.hstddef.htypes.hstruct_FILE.hFILE.hstdio.hsys_errlist.htypes.hstdint-intn.hstdint-uintn.hunistd.hgetopt_core.hmath.hintern.hversion.hlsapidef.htime.hstruct_iovec.herrno.hsockaddr.hsocket.hin.hsignal.h<built-in>string.hdefines.hmman.hutil.h	�
J��K�?�K�|	#t>��iK>�K�K�{�KY;./<X� ��r"tX���KJ��O
OtY��KKtY�}�t	jp	2]��T�	w��~�.��}<t	�g�}	�#�}.�-Ms

J)u<t
tY	Kit�}�K�J�x�JX�x�JY!J�x�
Y	Y
�YY^<�u�Z;�JtgI/-Y
�
X
�	�u�tX�.K =YJ��K =X�f�.KKtYv�KKtYt�K	Kt�	[u_�K
ht�	�t
Y	Z��	�	Y
�s
gX
	�d	.
btZY�	vz./�LX	ZX	ZA ��	���~�K
�<
%XXt<.X�<h�I�
,JX�.X
^f)�X�.%X��=�(3<(J3<f88g;g
c9X�.X� "fp K;<�fK�p��	X	=Z�	vZ*Zr	>*X�  **��}(/�/	RX�}	�t	�	�
0Yfq�\�:>X.	���t��" �u�t/u* �uZ�
^�	�%gf�u	Z�3	X
�|t	���|<
tXX����u��Ky	'XX"���	t�	�f.	f*8u�J�<�t�		X	�	��	ot@5<	t-<	t�i
J�	[t
rJiX	
	L( ffr	X<
)9=
t;
K1
t�	l��QJ/f J	LXH�Ky	XX"���	t	�L2	�
�=t<U�MtUX&<<
�`	0<f@���	L5	t-<	t�fvJ�l	}��K
b y<�
�~
�	�	�
�~
��J�~�Ky 	CXX"X��]
�Z/YVZ o 	
����	1�t	Z���x<��Z�xJ	K#�
L	K"U�J_Jf�XZ�xs�	Xt	Y
�	KY.	��J���<	. X2Xu	J	X I��z	;[X�
�x�K�Y!J�x��J ��	t�}��K
�A���	J	g
X	YgglX	�u�$sJ	Z�	J
m
�g�	�v	Y;	=�$�J$J6<J
hjXX 	g<[�6<J6J�	i�<Y ��.���	>z
X�
.	�
�=Yl	�uX[wt	Z
"�
h�	��

m
�g��ut�X	�	h��	f�Y:g<	KX�fK�Y
sbXt�v
�
SY�|X	���|X<	�
L��/�$
e�X�<
��z
<�
�zt�	yt5Y�|X���|.X�z�
	Zrh	Y	��	�*xp�*�&�su&��qwZ7v�-uY�����������������������
6t|ytru=K��Z/uvpuI==[X=XvXuv0�X>f�~��z
t�	g�z
�t�	���&p(*(
u�v�#G< ���Y(�%�[$rb_mWaitWritable_sys_errlistm_pScriptFileRUBY_Qnilrb_eNoMemError_unused2rb_cBignum_filenorb_cMethodrb_obj_wb_unprotectrb_eSyntaxErrorm_cntUnknownHeadersH_AUTHORIZATIONsockaddr_isoblockSizem_pIovecEndstrcpym_pRespBufPos__uint8_tdmarkRUBY_DATA_FUNCm_pktHeaderrb_eIOErrorm_bytesm_pHeaderrb_data_object_get_shortbufsockaddr_inrb_cFilerb_eSignalunlinklsapi_dataRUBY_T_ARRAYrb_eKeyErroradd_env_rails__environlsapi_addstrsa_datauint16_tm_totalLensin_zerorb_eZeroDivErrorin_port_t_flagslsapi_getscallocm_respPktHeader__off_tcreateTempFiledfreerb_global_variable_lockRUBY_T_UNDEFrb_cStringrb_eEOFErroratoim_pHttpHeaderLSAPI_GetReqBodyRemain_rm_pScriptNamerb_mKernelm_pEnvListrb_output_fsint32_t__fmtsa_familym_specialEnvListSizerb_cModulesockaddr_ns__u6_addr8RUBY_T_FALSErb_funcallrb_cIntegerRUBY_T_FILE_IO_write_endm_iLensockaddrrb_cTrueClasss_addrnameLenLSAPI_Postfork_Childfreerb_data_object_allocrb_fsm_requestMethodOffRUBY_T_COMPLEXrb_eEncCompatErrorruby_special_constsvalLen__stack_chk_failruby_description/builddir/build/BUILD/opt/alt/ruby22/lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/ext/lsapisin_familyRStringm_fdListenMAX_BODYBUF_LENGTHlsapi_bodym_statusm_reqBodyLenrb_eNameErroroptargneedReadrb_eRegexpErrorrb_cBasicObjectRUBY_T_STRUCTrb_cRationalrb_cFloatrb_cClassrb_cStatsys_errlistin_addr_tbasicRUBY_QtrueLSAPI_ReqBodyGetChar_rpKey__uint16_tsin_portRUBY_T_STRINGrb_cContrb_cFalseClassm_flagreadMaxBodyBufLengthm_pQueryString_chainRUBY_T_MODULErb_eArgErrorrb_eInterruptrecurrb_funcallvsockaddr_ununsigned charcapanReadm_cntSpecialEnv_IO_lock_tRUBY_T_ZOMBIEfloatLSAPI_key_value_pairLSAPI_ForeachHeader_rrb_stderrlsapi_eachm_cntHeadersrb_str_catbodyBufRUBY_T_FIXNUMrb_eSecurityErrorisEofBodyBuflsapi_processlsapi_flushoff_tchild_statusRUBY_SYMBOL_FLAGrb_mComparableH_X_FORWARDED_FOR__fprintf_chkm_queryStringOffrb_define_global_functionRUBY_FLONUM_FLAGrb_stdoutH_CONTENT_LENGTHruby_engine_IO_write_ptrrb_output_rslsapi_packet_headerLSAPI_ReadReqBody_rrb_eFatallsapi_http_header_indexsTempFilelineclosesharedlsapi_printfRUBY_T_OBJECTFILEH_COOKIEs_fn_add_envmunmapbodyCurrentLenLSAPI_Accept_Before_Forkrb_cNumerics_req_stderrrb_cHashsize_tH_CONNECTIONrb_rsuint8_tH_CONTENT_TYPERArraylsapi_markm_headerLenperrorlsapi_envruby_release_daterb_cDirsetup_cgi_env_IO_save_baseioveclsapi_eofenvironlsapi_child_statusreadTempFileTemplatesockaddr_x25rb_eLoadErrorsin6_flowinfom_pIovecToWriteorig_stderrm_respHeaderLen_wide_dataH_IF_MATCH__in6_uH_ACC_CHARSETruby_versionorig_stdout__streamsigngamruby_copyrightm_reqBufSizerb_eExceptionrb_yieldadd_env_no_fixRUBY_T_FLOATRUBY_T_CLASSrb_cDataftruncatelsapi_requestrb_cComplexfprintfrb_check_typeRUBY_T_HASHsyncRUBY_T_NODEchdir__ssize_t__srcrb_mErrnolsapi_closeH_IF_RANGEnameOffruby_api_versionstrerrorsa_family_tm_packetLenruby_xcallocreadMorein6_addrisBodyWriteToFilesin6_addrrb_mWaitReadablelsapi_setsyncm_respPktHeaderEndLSAPI_Postfork_Parentrb_check_safe_objfn_add_envlsapi_printrb_eSystemCallErrorrb_intern2stderrm_pHeaderIndexprogram_invocation_short_namerb_safe_levelrb_cUnboundMethodrb_f_sprintf_IO_save_endrb_const_get__nptrLSAPI_InitLSAPI_Requestrb_eScriptErrorrb_tainted_str_newfn_writelsapi_syncm_bufProcessedstdoutreadBodyBufoptoptlsapi_reopenruby_sourcefilerb_mGCrb_eIndexErrorm_httpHeaderLencurPosH_IF_NO_MATCHlsapi_s_acceptpreforkRUBY_T_DATAbuffkeyLen__builtin_strchrLSAPI_Flush_rshort unsigned intsigned chartz_dsttimeGNU C17 8.5.0 20210514 (Red Hat 8.5.0-20) -mtune=generic -m64 -march=x86-64 -g -O2 -fPIC -fexceptions -fstack-protector-strong -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fplugin=annobinfilenamelsruby.clsapi_header_offset__off64_tsockaddr_eon_IO_read_base_offsetm_pIovecrb_string_value_ptrrb_eFloatDomainError_IO_buf_endm_respInfoopterrrb_define_singleton_methodlsapi_puts_aryrb_cFixnum_modeblkSize_IO_write_basevalueLenInit_lsapirb_eStandardErrorrb_cSymbolrb_argv0H_CACHE_CTRLH_COOKIE2__destrb_cMatchrb_cEncodinglsapi_isattyH_USERAGENTLSAPI_ForeachEnv_rlong intRUBY_T_NONErb_mProcessrb_mFileTestremain_IO_markerrb_cEnumeratorm_pRespBufEnd__builtin___memcpy_chkrb_io_putslsapi_s_postfork_childrb_define_global_constrb_obj_as_stringm_bufReadin_addruint32_tsockaddr_in6__pid_t_IO_codecvtH_RANGERDatastrtolg_reqlong doublerb_cRangeiov_lenlsapi_resp_inforb_cObjectlong unsigned intlsapi_req_headerrb_gc_markinitBodyBufruby_strdupm_headerOffrb_eNotImpError__errno_locationlsapi_s_postfork_parentcharsockaddr_inarpm_pSpecialEnvListsin6_scope_idrb_cIOstdinsin_addrRUBY_T_BIGNUM_IO_buf_baseRUBY_T_RATIONALs_bodyrb_eTypeErrorRBasicrb_eNoMethodError_IO_read_endRUBY_T_ICLASSrb_num2intcLSAPIRUBY_SPECIAL_SHIFT_IO_FILEH_IF_UNMOD_SINCEm_fdRUBY_T_SYMBOLH_HOSTrb_num2char_inline_IO_wide_datastrlen__u6_addr16s_pidselfrb_eSystemExitisAllBodyReadm_respHeaderrb_cThreadm_envListSizem_pAppDataruby_platformsockaddr_ax25rb_eThreadError__pad5rb_str_new_static__u6_addr32rb_cNilClassm_type_markersrb_stdinrb_eStopIterationm_scriptFileOffklassrb_define_classH_VIA_codecvtm_pRespHeaderBufEndH_PRAGMArb_cRandomdoubleruby_sourcelinemkstemplsapi_putcargcssize_tstrcatlsapi_writelsapi_putsorig_stdinRUBY_FIXNUM_FLAGargvrb_eRuntimeErrorm_pRespHeaderBuf__int32_trb_cProc__uint32_tRUBY_IMMEDIATE_MASKrb_hash_asetdataH_REFERERrb_cStructLSAPI_Prefork_Accept_rheap_sys_siglistm_pUnknownHeaderrb_typem_reqStateRUBY_T_NILrb_cTimerb_eSysStackErrorm_pRespBufrb_num2int_inlineprogram_invocation_namerb_cArrayrb_eEncodingErrorrb_ruby_verbose_ptrrb_cBindingrb_intern_id_cacheH_TRANSFER_ENCODINGH_IF_MODIFIED_SINCEsin6_family_freeres_bufRUBY_T_MATCHlong long unsigned intpid_t_cur_columnlsapi_rewinds_reqrb_eRangeErrorm_pRespHeaderBufPoss_stderr_datarb_eval_string_wrapgetpidm_cntEnvRUBY_T_MASKrb_lastline_get_IO_backup_baseH_KEEP_ALIVE__memcpy_chk_IO_read_ptrrb_eMathDomainErrorrb_fix2intLSAPI_GetReqBodyLen_rrb_gc_writebarrier_unprotectrb_exec_recursivegetenv_freeres_listrb_eLocalJumpErrorrb_raise_sys_nerrlsapi_readtimezonepReqlsapi_getcrb_hash_newclear_envrb_cRegexplsapi_binmode_old_offsetstrchrm_pReqBufrb_cNameErrorMesgvalueOffoptindH_ACC_LANGlong long intin6addr_loopback_flags2VALUErb_mMathRUBY_T_TRUEmemmemsockaddr_atruby_value_typem_scriptNameOffH_ACCEPTm_lLastActivelsapi_resp_headersys_nerrin6addr_anym_pRequestMethods_req_dataiov_basem_lReqBegincreateBodyBufm_versionB0m_versionB1rb_str_buf_newrb_define_methodRUBY_FLONUM_MASKruby_patchlevelRUBY_T_REGEXPm_pIovecCurLSAPI_Init_Env_Parametersorig_envm_reqBodyReadRUBY_Qundeflsapi_s_accept_new_connsockaddr_dlunsigned intbodyLensockaddr_ipxrb_default_rsshort intrb_string_value_vtable_offsetpValueenv_copymmaporig_verboserb_mEnumerableRUBY_Qfalseflagstz_minuteswestsys_siglistH_ACC_ENCODINGsin6_portlsapi_eval_string_wrapGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-20)GNU�zRx�
0D+Xl�(�BF�G�A �kFB�MH�^
J�
�HUgHQ
G$ayd(<�E�D�L ]
CAJhE�L�E�Y� HW� HW�-Hd(��E�A�D �
DAJ aE�D y
AEH8F�B�B �E(�D0�C8�GPm
8F0A(B BBBG,��Z�A�D �J
�A�B�L4��o�A�D �
AAKp��P ��\��F�B�D �C(�G0�
(D ABBEj
(D ABBE|
(G DBBAHLhF�B�B �B(�A0�A8�G@
8D0A(B BBBD�CK�w �oE�A
JF
A8��F�B�A �D(�D@�
(A ABBA((�E�D�G0�
AAIHTPF�B�B �A(�A0��
(F BBBH{(F BBB@�OF�B�B �A(�D0�D@
0A(A BBBJ<�{F�B�A �A(�D0�
(A ABBF
�	
-)
?.Yt/��0��1�
5
C
_"y�	@�"�[�0+�[�h�`
h)wCpPwm���������B�	x��-�M#	<	�E-_=w0
�=�^�@�^���`g�01I�aU1p��@��������//BPg0 �P�p�P �p
�2p-J�h�����	X�	�	h�����a�;Vd��� ���	��	���N	��	@)N	C[P	�f��� h������C���O
	�o	O
;	<W	P
�f	<�	G�	@�	G�	�	P��	�	p
 P
p8
�Q
pO]
�w
;�
	 �
	�
	��
	p�
	` "$%'./0123-4�
�
�
@�
)�
�
3�
LS�bZ#x)/�5�;�A�G�MS�Y�_e(kq$w*}f�n�s�y������������������������������������1
GV�%�+7G\p()*+,�����������

+
8
N
c
|
�
�
�
�
�
�
�
(/CZfrz�������������
1NYk|������{������"-:Mgw��������.annobin_lsruby.c.annobin_lsruby.c_end.annobin_lsruby.c.hot.annobin_lsruby.c_end.hot.annobin_lsruby.c.unlikely.annobin_lsruby.c_end.unlikely.annobin_lsruby.c.startup.annobin_lsruby.c_end.startup.annobin_lsruby.c.exit.annobin_lsruby.c_end.exit.annobin_lsapi_process.start.annobin_lsapi_process.endlsapi_process.annobin_lsapi_rewind.start.annobin_lsapi_rewind.endlsapi_rewinds_body.annobin_lsapi_eof.start.annobin_lsapi_eof.endlsapi_eof.annobin_lsapi_binmode.start.annobin_lsapi_binmode.endlsapi_binmode.annobin_lsapi_isatty.start.annobin_lsapi_isatty.endlsapi_isatty.annobin_lsapi_setsync.start.annobin_lsapi_setsync.endlsapi_setsync.annobin_add_env_no_fix.start.annobin_add_env_no_fix.endadd_env_no_fixlsapi_env.annobin_clear_env.start.annobin_clear_env.endclear_envrb_intern_id_cache.13276env_copy.annobin_lsapi_mark.start.annobin_lsapi_mark.endlsapi_mark.annobin_lsapi_flush.start.annobin_lsapi_flush.endlsapi_flush.annobin_lsapi_close.start.annobin_lsapi_close.endlsapi_closeMAX_BODYBUF_LENGTH.annobin_readBodyBuf.start.annobin_readBodyBuf.endreadBodyBuf.annobin_lsapi_write.start.annobin_lsapi_write.endlsapi_write.annobin_lsapi_addstr.start.annobin_lsapi_addstr.endlsapi_addstr.annobin_lsapi_printf.start.annobin_lsapi_printf.endlsapi_printf.annobin_lsapi_s_postfork_parent.start.annobin_lsapi_s_postfork_parent.endlsapi_s_postfork_parents_req.annobin_lsapi_s_postfork_child.start.annobin_lsapi_s_postfork_child.endlsapi_s_postfork_child.annobin_lsapi_s_accept_new_conn.start.annobin_lsapi_s_accept_new_conn.endlsapi_s_accept_new_conn.annobin_lsapi_s_accept.start.annobin_lsapi_s_accept.endlsapi_s_accepts_pidrb_intern_id_cache.13285s_req_data.annobin_lsapi_eval_string_wrap.start.annobin_lsapi_eval_string_wrap.endlsapi_eval_string_wrap.annobin_add_env_rails.start.annobin_add_env_rails.endadd_env_rails.annobin_lsapi_reopen.start.annobin_lsapi_reopen.endlsapi_reopens_req_stderrorig_stderrrb_intern_id_cache.13448.annobin_createBodyBuf.start.annobin_createBodyBuf.endcreateBodyBufsTempFile.annobin_lsapi_read.start.annobin_lsapi_read.endlsapi_read.annobin_lsapi_gets.start.annobin_lsapi_gets.endlsapi_gets.annobin_lsapi_each.start.annobin_lsapi_each.endlsapi_each.annobin_lsapi_getc.start.annobin_lsapi_getc.endlsapi_getc.annobin_lsapi_puts_ary.start.annobin_lsapi_puts_ary.endlsapi_puts_ary.annobin_lsapi_sync.start.annobin_lsapi_sync.endlsapi_sync.annobin_lsapi_putc.start.annobin_lsapi_putc.endlsapi_putc.annobin_lsapi_puts.start.annobin_lsapi_puts.endlsapi_puts.annobin_lsapi_print.start.annobin_lsapi_print.endlsapi_print.annobin_Init_lsapi.start.annobin_Init_lsapi.endrb_intern_id_cache.13464rb_intern_id_cache.13466orig_envcLSAPIs_stderr_data.LC0.LC1.LC7.LC5.LC4.LC6.LC3.LC2.LC8.LC9.LC13.LC11.LC10.LC12.LC14.LC15.LC16.LC17.LC18.LC19.LC56.LC21.LC22.LC26.LC27.LC28.LC29.LC30.LC34.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC52.LC53.LC54.LC24.LC20.LC31.LC32.LC33.LC25.LC23.LC55.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.group_GLOBAL_OFFSET_TABLE_g_reqrb_tainted_str_newrb_hash_asetrb_funcallrb_intern2rb_gc_markLSAPI_Flush_rmunmapfreeLSAPI_ReadReqBody_rrb_check_typerb_obj_as_stringrb_f_sprintfLSAPI_Postfork_ParentLSAPI_Postfork_ChildLSAPI_Accept_Before_ForkLSAPI_Prefork_Accept_rgetpids_fn_add_envLSAPI_ForeachHeader_rLSAPI_ForeachEnv_rrb_safe_levelrb_string_value_ptrrb_eval_string_wraprb_string_valuerb_check_safe_objstrchrrb_ruby_verbose_ptrrb_define_global_constrb_funcallvruby_strdupmkstempunlinkftruncatemmapperror__errno_locationstrerror__fprintf_chkrb_str_buf_newrb_str_catrb_num2intrb_fix2intrb_eSecurityErrorrb_raisememmemrb_yieldLSAPI_ReqBodyGetChar_rrb_gc_writebarrier_unprotectrb_io_putsrb_str_new_static__stack_chk_failrb_exec_recursiverb_default_rsrb_output_fsrb_output_rsrb_lastline_getInit_lsapiLSAPI_InitgetenvstrtolstrlenselectLSAPI_Init_Env_Parameterschdirrb_stderrrb_cObjectrb_const_getrb_global_variablerb_define_global_functionrb_define_classrb_define_singleton_methodrb_define_methodruby_xcallocrb_data_object_allocLSAPI_Write_rrb_stdoutrb_stdinLSAPI_Write_Stderr_rrb_hash_new__memcpy_chkH7*������������������������������t��������������������|�t������������������'��������K*���������P���������k*���������p���������wD}�<�����������8�D�H�����������*���������H<���������%HV����������������������������;*���������@���������G[*���������`���������g{*���������������������*��������������������<�����������8�D�H�����������TT���������(d4*���������C���������R���������Yx���������}��������������������������������������������������������������������>���������b���������p���������wt������������������������������������������������(���������1���������<tD���������T���������`���������i���������tt|����������������������������������������t�����������������������������'��������B��������J��������Q�X���������d��������i��������p�����������������������C�*����������D�<����������������&��������.���������5D?	��������a
��������h<y������������������<�����������
���������@�����������
�����������������������������������	���������	*��������	��������#	���������4	���������9	
��������@	��������g	����������	D�	L�	H�	��������F
LP
<X
��������^
L�
���������
L�
D�
���������
L�
<�
���������
L*�������������������������6����������<�D�H�����������L������������������'L1<9��������?Ls*��������z�������������������D�H����������D�L����������
*���������
��������:
*��������A
���������K
���������
���������
���������
���������������������������������1��������8�������������������������������������������F�����������������������������* ��������6��������S* ���������������������������*!��������`*"���������#������������������%�������������������8�D�H�&��������'��������'��������9@���������E&��������U(��������q���������xL<�����������&���������'���������*)���������*�����������������������������T�&���������+���������*����������*,��������� *-��������).��������07�L���������S|Z|_/��������k���������p���������|��������������������|���������������������0�������������������1�������������������l�2���������l����������3��������l��������� 3��������'l:���������?3��������FlY���������^3��������elx���������}3���������l�����������3���������l�����������3���������l�����������3���������l�����������3���������l
���������3��������l)���������.3��������5lE���������J3��������Qla���������f3��������ml}����������3���������l�����������3���������l�����������3���������l�����������3���������l�����������3���������l	���������3��������l%���������*3��������1lD���������I3��������Plc���������h3��������w4��������~*����������l�d�5���������d�*�����������*6����������*7���������*8���������/���������4���������l\5��������\*9��������%��������,��������;/��������@��������H��������T:��������[titp���������u������������������������������������<�;���������<����������l��������� 2��������'l7���������<2��������ClS���������X2��������p���������u�������������������������������������������
�������������������&�������������������������'��������2���������9������������������ ���
 (
L
T"�
�"�"�[�"�[[h@[Hhlhtw�h�w�w��w�,�4�`�h����-���-�-�= -(=L=T^�=�^�^���^���1@�H1l1t��1������,4/`h/�/�P�/�P�P�p P(pLpT��p����������	�	�@	�H	�l	�t	�	��	�	�	�

�,
�4
N	`
�h
N	�
N	�
�
N	�
�
�
� (�L�T��������O
���O
O
<@O
H<l<tG�<�G�G�
G
,
4
p`
h
p�
p�
��
p�
��
��
; �(; � � � ��
�
�M
�1
�E)
�.
�		<
�C
�7L
�\S
�#Z
�6_
��m
�gr
��~
���
���
���
�,�
�N�
���
�L�
��
�t

�
�('
�44
�eA
�N
�[
�ch
��u
���
��	�
���
���
���
��
�Y�
���
�'�
�n�
��
�H
�\
�s+
��8
�4
E
��R
�7_
�al
�y
�E�
���
���
���
���
���
�K
�J
��'
�c
3
��?
�[
�fg
��s
�
�h�
���
�Q�
�q�
���
�#	�
���
���
���
��	�
���
�_
��
�v
"
��)
�.
��
;
��W
�j
��p
��v
�,|
��
���
�{�
���
���
�^�
�a�
���
���
���
��
�
��
��
�
���
���
���
�)�
�.�
���
�W
��

�D
��
��
�Y 
��&
�3,
��2
�8
�b>
�:D
�AJ
��P
��W
�f
��t
���
�j�
�{�
�#
��'
�|N
�j[
�{�
�#�
�:	�
�|

��
�|(
��6
�CD
��d
��q
��~
�o�
���
�\�
���
��
�
���
���
���
��
�
��

��
�N'
��4
�SA
��N
�{	[
��
h
��u
��
���
�^�
���
�I�
�	�
�K�
���
�u�
�a�
�	
�D	
��	
��+	
��8	
�E	
��R	
�<_	
�l	
�y	
�]�	
�o�	
��	
�C�	
��	
�d�	
���	
���	
��
�	
�1�	
��

�0

�g"

�D/

�#<

�zI

��
V

��c

��p

��}

��

���

��

�c�

�Q�

�
�

���

�X�

�6�

�"�

��
��
�m&
�3
��@
��M
�
Z
��g
��t
��	�
�5�
���
���
���
���
���
�	�
�Y�
��
�"
��

�N2
��N
�`
Z
�i	f
�5r
��~
�4�
��
�
���
���
�R
�
���
�f�
���
�	�
�+	�
���
���
�d�
���
��
���
��

�W


�

�?


��


�r"

�}(

�.

��4

�~:

��@

�P

�q\

�#i

�v

�c�

�o�

���

���

���

��

��

��
�

���

���

��
��
�� 
��-
��:
�uH
�NU
�L	b
�L�
�:�
�}�
���
�V�
��
���
���
���
��
�
��"
��/
��<
�BU
��b
��o
��|
��
�
��
��
�
���
���
���
�I�
�:�
��
�
�
�

��
��'
��4
��A
�QN
�{[
��h
��u
�
�
��
�+�
���
���
��
���
���
�5�
��
��
��
��
�$+
��8
�NE
��R
��_
�T
l
�vy
��
��
�$
�
�*�
��	�
��	�
�@�
��*
�
6
��k
��w
���
���
�x�
���
���
���
�C
�+
�X+
�R8
��E
��R
��_
��}
���
�+�
���
��	�
���
���
���
�L
��!
�6
�PK
��	�
�r�
��
��
��+
�(7
��C
�z�
���
�J
�
��
��
�(�
���
�p
�m

�
�%
��2�;
��H�Q
�_	^xg
��t}
�y�
�@
�
�y�
�Z�p�
��
�5h+
��8A
��N`W
��dXm
��z
���
�D�
���
��
�
���
��@�
�f�@�
�L
���
�&"�9
��E
�I
�X
�A\
�;a
��
m
��q
��v
��
��� ���1��
���
����y�1��
�@�
�p(
�p1
�5
�>
�1B
�+KT
��e
�~i
�zn��1��+���+&=/
��<
��E
��I
��Rh[
�l
�6p
�2y
�u}
�q���@�����
���
���
���
���I1�Y+�4
�PE
�I
�N�g�t��1��������1����-�P�c�t11@�Um(d�|��1�����1$���1*���1f.$C1nPP_Ct1s�@�b�1y�p���1���	1� &�;1�H�W�l1�y@���1�����1�� �2�1�P	N11�>Mjb1�o�~��1��0���1��0���1� ` �& 1�3 `B �W 1�d ps � 1�� p� .� 1�� @� M� 1�� �!l!1S(! 8!{T!�i!0y!��!�!��!�!0�!?�!�!D"L"X"f,"yA"1�K"�`"1Lj"�w"$�"11�"p�"@�"1G�"P�"\�"1V�"0
#�#1�)#�:#1�E#
�4O#
��	i#
���#
�}
�#
�E�#
���#
���#
���#
���#�#
�f�#`$
��$
�>!$
�:*$t3$tH$tU$�b$�p$
�|$��$
���$
�5�$
�I
�$
���$
���$
���$
��$`%
��$%
��	0%0G%
��Z%4c%4%
���%��%
���%
�}�%
�w�%
���%
���%��%��%
���%
��&�
&
��&�.&�<&
�zN&
��\&
��h&P	&
�E�&
�N�&
�:�&
���&
�8�&
�(�&
���&
���&
���&
���&
���&
�o�&
�e�&
��&
���&
���&
�o'
�`'
�\'|
'
�`.'
��2'
��7'�
D'�
R'k	_'�	l'�	�'&
�'\
�'�
�'�'m(
�
(
��2(
�V(
�j
b(�y(
��(
���(
���(
���(
��
�(
�)	�(
�%	�(
�o�(
��	�(
��	�(
���(
��	�(
��	�(
���(��(
�@	))
�$%)
��3)
�UR)
�4~)
���)
���)
���)
�?�)@�)
���)
��	�)
��	�)T�)
��
*�-*
�9
1*
�3
B*
��
F*
��
K*�g*
�ey*
�E�*
���*
�p�*
���*
�>+
��+.+
�E:+
��
>+
��
C+
��O+
�S+
��
d+
�?h+
�9m+�+(�+
�W�+p�+
�E�+
���+
���+
���+
���+
���+
�a�+
�W,
��,
��,
�p+,/4,
�E,
�=
I,
�9
O,�l,	�,&�,X�,u�,��,��,
�Y�,@
-
��-
��
-
��
+-
��
/-
��
4-
��@-
�0D-
�,U-
�hY-
�fb-Hk-
��|-
���-
���-Z�-^�-
���-
���-
���-��-
�:�-P�-
��.
�.
��.
�n".
�f6.
��B.
��F.
��O.pX.
� i.
��m.
��v.�.
�P�.
�E�.
�A�.��.�.��.
���.
��.
�{�.��.�/$/
�10/G/
��W/
�c/�z/
���/
���/
���/
���/
���/��/��/��/��/�0�0
�y(00?0
��J0
�N0
�S0Da0
�7l0P�0
���0
�X�0
�T�0d�0
��0p�0
���0
���0
���0��0
��
�0�1
��1
��1
��*1
�.1
�31
��<1
��I1R1�c11w1,�1
�0�1
�G�1
�E�11�1G�1V�1��1��1��1#2
��	 2
��-2
�42�K2
�T2
��a2j2!{21�2�2
��
�2��2
���2
�p�2
�j�2
��
�2
���2
���2
���2
��2
��2
�3
�O3
�K3
�� 3
��%3�K3�o3��3
���3�3
���3
���3
���3
��
�3
�P�3
�>�3
���3
��3
��3
��3
���3
��4
��4
�~4
�4
�)4fG4tk4��4��4 �45�41)�4H�4X5m3513B5�[5�y5��51�5��5
�A	�50�5
���5
�}�5
�y�5=�5
��6
��6
�T!6
��.6
�FN6
��l6
�l�6
�(�6
�p�6
�5�6
���6
�R�6
�n�6
�V7
��7
�n)7
�V67
��H7
��V7
�g7
�y
s7
���7�7p�7 �7
���7
���7
�<�7
�28
��8
��8A8
�`(8
��,8
��58
�098
�(B8
��F8
��K8
�`T8
��X8
��a8
��j8�{81S�8F�8N�8h�81L�8m�8��8�9�9�A9�J9�c9l9
��y9
���9
�8�9
�0�9�9
��9
��9
���9
���9
�,�9
�&�9	�9
�0�9
�w�9
�u�9
���9
���9	:1Z:4:@>:V:*n:2�:��:��:'	�:C�:e;};�3;1b=;�U;=	j;1xt;D	�;��;��;1��; �;
���;
��<
��<
��<
�K<
�E-<
��1<
��:<
��><
��G<�P<�e<�~<��<1��<��<=�<:�<v�<�=m=�:=
�>=
�G=
��K=
��T=7
]=7
z=
��~=
���=7
�=O
�=m�=��=
�=P
�=
�
�=
���=
��>
��
>
�g>
�_>
��#>
��,>�
5>�
R>
�3 V>
�/ _>
�w c>
�s l>
�� p>
�� u>�
�>�
�>
���>
�� �>
�� �>
�!�>
�!�>
�.!�>
�*!�>�
�>�>
?
�f!?
�d!?
��!?
��!$?
��!(?
��!-???H?e?
��!i?
��!r?
�1"v?
�-"?
�n"�?
�j"�?�?!�?1��?5�?�
@< @ ;@
��"?@
��"H@
�#L@
�#U@
��#Y@
�x#l@
���@
���@
�#$�@
�!$�@
�Q$�@
�G$�@��@
���@
��$�@
��$�@��@P
�@�A�A7A:RAbgA
�wkA
�wtA
��xA
���A
���A
���A
�3�A
��A
��A
��A
���A
���A
�
�A
�
�A
���A
���A
���A
���A
�F�A
�FB
��	B
��B
�@B
�@B
�I#B
�I,B
�-
0B
�-
9B
��=B
��FB
��JB
��SB
��WB
��`B
��dB
��lB
��pB
��yB
��}B
���B
���B
���B
���B
���B
���B
���B
�N�B
�N�B
�X	�B
�X	�B
��B
��B
���B
���B
���B
���B
��
�B
��
�B
�O�B
�OC
�I	C
�IC
��C
��C
�{#C
�{,C
��0C
��9C
��=C
��FC
�0JC
�0RC
��VC
��_C
�hcC
�hlC
��pC
��yC
�#}C
�#�C
��C
��C
�e�C
�e�C
���C
���C
���C
���C
�q�C
�q�C
�:�C
�:�C
�$�C
�$�C
���C
���C
���C
���C
���C
��D
��D
��D
�D
�D
�3 D
�3(D
�),D
�)5D
�D9D
�DBD
��FD
��ND
�@RD
�@ZD
�2^D
�2gD
�rkD
�rtD
�hxD
�h�D
���D
���D
��
�D
��
�D
���D
���D
�u�D
�u�D
��D
��D
���D
���D
���D
���D
�j�D
�j�D
�,�D
�,E
��E
���
��AI
��A�@�@�
��A�@<	LM	@k	L|	@�1ZF 
��D^ 
��D� 
��Dy!
��D
�~ 4H0\`pp�������0�@`(�@@l���0�P�p���<� ���P	P �����P
@,PX �p��.symtab.strtab.shstrtab.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rela.data.rel.local.rodata.cst16.rela.debug_info.debug_abbrev.rela.debug_loc.rela.debug_aranges.debug_ranges.rela.debug_line.debug_str.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame.group/@6�/T6�/l6�/�6�/�6� �;@x$6&, � 6 01@�0�6
LP([P(�V@ =06
u *� *��@P=06��+��+��@�=06��-��-��@�=062�/�2x1M'�1"@�=67�1J�1
EE@�=�{6V�v�i�}�$d@��h6 y��0t@�06"�ޢ�ިU�@ �6%�03��0Q�.����u�L� �����������
�� %��  @8�64���7�	`�P�6lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/ext/lsapi/lsapi.so000075500000231700150402106530016754 0ustar00ELF>�U@@,@8	@H�H� !!P (
(
!(
!  888$$(�(�(�  S�td(�(�(�  P�td�����Q�tdR�td!!��GNU��3�u�����	Apd�C�	H�‚3@(�L�`���q�CS�l����P*�f�R�������������������������������������������������n�}�'3qѮl>�&��Sɶ��
���ܮʼnSO��`��[is�|&߱R����D�/y7ř����k���Պ e�Y����&09=��By:%/�=��ejO�z�J�6�'��l#mNU�L�C�B�1�{�!�\�$�O#W��2�3S=ap��b�U�0��6�������aD7�jp#�7����ĴDI���Ί=\���4y�ݾCE���к�Q��u���o��	��r�SѮ����Io���|q%h6	󝵛���'
���=��qX�[�u��	 �f�	�� �		��U
�y���sO�zu	�	�	�E
����[M�Q	j	E	���k
�&��
���q!
�
1	RT	s��@ +r�	u�	>[	��
��=	&�
�cH�	�
'�I	�
�
0x�*
n`
�m
�K
����:�2p���-, �2B	���F"��X�
��	EN
��
k���@@��0~F�sD��:
��{���
5wiw���`��z�!	[���' ��X!���Vp�Z\�g�Pp��oЏ1��r
Y���` r�9�����tl��{jPW��~��`�-� t]��	�0p�sY@p��5���o�y$� �l!�uU�V
Epw��sS��o7�pMp�(����������}F�psJ��pz`!� �BP������ �![`�g������@�(!��l�@�6`p��@������`!__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizecompareValueLocationset_skip_writesigactionsigemptyset__stack_chk_failreallocfcntlacceptsetsockoptmmapmemsetsetsidread__errno_locationclosewritevkillgetppid__ctype_b_locstrncpystrchrstrcasecmpstrtolgetaddrinfomemcpyfreeaddrinfoinet_addrLSAPI_Log__vfprintf_chk__snprintf_chkgetuid__fprintf_chkgettimeofdaylocaltime_rwaitpidforksystemexitlsapi_perrorstrerrorLSAPI_is_suEXEC_DaemonLSAPI_StopLSAPI_IsRunningLSAPI_Register_Pgrp_Timer_CallbackLSAPI_InitRequestmallocgetpeernamedup2LSAPI_Initgeteuidsignalg_reqdlopendlsymLSAPI_Is_Listen_rLSAPI_Is_ListenLSAPI_Reset_rLSAPI_Release_rfreeLSAPI_GetHeader_rLSAPI_ReqBodyGetChar_rLSAPI_ReqBodyGetLine_rmemchrmemmoveLSAPI_ReadReqBody_rFlush_RespBuf_rLSAPI_GetEnv_rstrcmp__ctype_toupper_locLSAPI_ForeachOrgHeader_rqsortLSAPI_ForeachHeader_rLSAPI_ForeachEnv_rLSAPI_ForeachSpecialEnv_rLSAPI_FinalizeRespHeaders_rLSAPI_Flush_rLSAPI_Write_Stderr_rgetpidgetcwdmemccpy__realpath_chkLSAPI_Finish_rLSAPI_End_Response_rLSAPI_Write_rLSAPI_sendfile_rsendfileLSAPI_AppendRespHeader2_rstrlenLSAPI_AppendRespHeader_rLSAPI_CreateListenSock2socketbindlistenunlinkLSAPI_ParseSockAddrLSAPI_CreateListenSockLSAPI_Init_Prefork_ServersetpgidsysconfLSAPI_Set_Server_fdLSAPI_reset_server_stateis_enough_free_memLSAPI_Postfork_ChildLSAPI_Postfork_ParenttimeLSAPI_Accept_Before_Fork__fdelt_chkusleepsched_yieldLSAPI_Set_Max_ReqsLSAPI_Set_Max_IdleLSAPI_Set_Max_ChildrenLSAPI_Set_Extra_ChildrenLSAPI_Set_Max_Process_TimeLSAPI_Set_Max_Idle_ChildrenLSAPI_Set_Server_Max_Idle_SecsLSAPI_Set_Slow_Req_MsecsLSAPI_Get_Slow_Req_MsecsLSAPI_No_Check_ppidLSAPI_Get_ppidLSAPI_Init_Env_Parametersgetenvgetpwnamdlerrorsetrlimit__fxstatsetreuidLSAPI_ErrResponse_rlsapi_MD5Initlsapi_MD5Updatelsapi_MD5FinalgetpwuidsetgidsetgroupssetuidstrtollprctlinitgroupsLSAPI_Accept_rLSAPI_Prefork_Accept_rsigaddsetsigprocmaskLSAPI_Set_Restored_Parent_PidLSAPI_Inc_Req_Processedselectrb_tainted_str_newrb_hash_asetrb_funcallrb_intern2rb_gc_markmunmaprb_check_typerb_obj_as_stringrb_f_sprintfs_fn_add_envrb_safe_levelrb_string_value_ptrrb_eval_string_wraprb_string_valuerb_check_safe_objrb_ruby_verbose_ptrrb_define_global_constrb_funcallvruby_strdupmkstempftruncaterb_str_buf_newrb_str_catrb_num2intrb_fix2intrb_eSecurityErrorrb_raisememmemrb_yieldrb_gc_writebarrier_unprotectrb_io_putsrb_str_new_staticrb_exec_recursiverb_default_rsrb_output_fsrb_output_rsrb_lastline_getInit_lsapichdirrb_stderrrb_cObjectrb_const_getrb_global_variablerb_define_global_functionrb_define_classrb_define_singleton_methodrb_define_methodruby_xcallocrb_data_object_allocrb_stdoutrb_stdinrb_hash_new__memcpy_chklibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6__environ_edata__bss_start_endGLIBC_2.2.5GLIBC_2.14GLIBC_2.15GLIBC_2.4GLIBC_2.3.4GLIBC_2.3/opt/alt/ruby22/lib64:/opt/alt/openssl/lib64			C ui		�3 ui	�f��������ii
�ti	�ui	�ii
�!�V!@V ! !@!Q�H!��P!��X!��`!��h!��p!��x!���!���!���!���!���!���!���!��!��!��!&��!.��!3��!:��!B��!M��![�!m�!v�!��!�� !��(!��0!��8!��@!��`!��h!��p!��x!��!��!/��!?��!L��![��!g��!t��!~��!���!���!���!���!���!���!���!�
!�
!)�
!4�
!I� 
!R�!X�!X�!i�!y�(!�!0!D#!X!��H!P!X!`!�h!�p!�x! �!#�!5�!��!?�!K�!M�!U�!Y8!Y�!Z�!��!��!p�!}�!��!�! !�(!0!8!�@!H!P!X!`!�h!p!	x!
�!�!�!
�!�!��!�!�!�!��!��!�!�!�!�!�!!!!�! !(!�0!�8!�@!H!P!�X!!`!"h!$p!%x!��!&�!'�!(�!��!)�!*�!��!+�!,�!��!��!��!-�!.�!/�!0!�!�!�!� !1(!20!38!�@!4H!�P!�X!6`!7h!8p!9x!:�!;�!<�!=�!@�!A�!B�!C�!��!D�!E�!F�!G�!H�!I�!��!J!�!L!N!O !P(!Q0!R8!�@!SH!TP!�X!V`!�h!Wp!Xx![�!\�!]�!^�!_�!`�!a�!b�!��!c�!��!d�!e�!f�!g�!h�!i!j!k!l!� !m(!n0!o8!�@!�H!qP!rX!s`!th!up!�x!v�!w�!y�!z�!{�!|�!~�!��!�!��!��!��!��!��!��!��!�!�!�!�!� !�(!�0!�8!�@!�H!�P!�X!�`!�h!�p!���H��H�q� H��t��H����5�� �%�� ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��������hb�������hc�������hd�������he�������hf�������hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!������hm��������hn��������ho������hp�������hq��������hr�������hs�������ht�������hu�������hv�������hw��q������hx��a������hy��Q������hz��A������h{��1������h|��!������h}��������h~��������h������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1�������%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%� D���%� D���%� D���%� D���%� D���%� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%� D���%� D���%� D���%� D���%� D���%� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%� D���%� D���%ݿ D���%տ D���%Ϳ D���%ſ D���%�� D���%�� D���%�� D���%�� DH�=�� H��� H9�tH�f� H��t	�����H�=Y� H�5R� H)�H��H��H��?H�H�tH��� H��t��fD�����=� u+UH�=�� H��tH�=�� �y����d������ ]������w�������ff.����>� Ð��H�GH+F�Hc�AVI��H�@AUATL�$�USH��tQH��H��tIH��I��L9�r�0H��I9�v'�KH�SM��sH�;�Յ��[]A\A]A^��[D��]A\A]A^ø������ff.�f����=N� �D����� Ð��OAWD�D�_AVAUATUSD�6�^�nA��x�j׋G3GD!�3G��V���\$�ЋW�^$��D�D1��\$�!�3WA��ʋN��F���p $E��‰L$�A1�A1�D��D�^!�D1�G��;�ν�D�\$�D�E��D�V���D�T$�A!�A1�E�E���|���A��
1�A�D!�E��1�D�D��*ƇG���D1�D�!�A��1�A1�D�D�N���D�L$�E��	F0�D��!�D�nA1�D1�D�G���F�E��D�f ���D�d$�D�^(A!�A1�E�E��ؘ�i��A��
1�A�D!�1�D�D����D��ʋ^0��D1�D�!�A��1�D�E���[��D����1��!�D1�D�D�N,��A1��D�L$�G����\�E��A!�D�f8A1�E�D��"�k��A��
1�A�D!�1�D�D�N4��E���q����D�D1�!�1�D�E���Cy�D����1��!�D1�D�D�V<���1��G��!�I!�1�D�D�D$��
�E��b%���1�!�1�D�D�D$��E��@�@���1�!�1�D�D�D$���	�E��QZ^&��1�!�1�D�E��6�Ƕ����1�!�1�D�D��]/։���1�!�1�D�E��SD���1�!�1�D�E��
��؉���	�1�!�1�D�D�D$��E��0����1�!�1�D�D�D$���E�����!��1�!�1�D�E���7É��1�!�1�D�D�D$��	�E���
��1�!�1�D�D�D$��A��0�ZEA��A1�A!�A1�A�A���㩉�A��A�D1�!�1��t$�D������D��1�!�A��
�ogD1����	�1�D!�F���L*�1�D�D$�Ή���1�A��A!���B9��A1�DD$�A��A�D1���D$�����q���D�D1�1�‹D$�����0"a�mD���1�G��8�1�Ɖ��1��1�D�D�D$��	E��D꾤���1�1�D�D�D$�A�����KA���A1�A��5`K��A1�AЉ�A��p���A��1�A�D1����D1�D�1��A��	�~�(D����	1�G���'���1�����1��1�D�D�D$�A���0��A���A1�A1�AЋT$�A����2���A�1�D1�֋T$��	��
9��ى�D�D1����1��D�����1�1��C���|�A��A1��A1�A��D$�A����0eV�ĉ�A�1�D1��A��D")��D�t$��	��D�	�D1��A��
��*CD������G���#���	�1����
���	�1�D�D��9��������Ή��	��1�D�D���Y[e��\$���	�1�D�E�������D�t$�����	щ�1���D�E��3}���D�\$�
���	�1�D�D�D$���E���]����	�1�D�E��O~�oA���A���D��	�1�D�E��
��,���D�T$�����	�A��1�A��D�E��6C���D�t$���
��A���N�	�1�A���~S�A��D�E��A����A	�A1�A��5�:�A�D��A��A�D	�1�Љ�3���*�\$���D�	�D1��D��F���ӆ�[��
��]A\�A]A^	�1������։�	�1�DƉ�A�4A_���OW�G�O�W��ATI��1�U��SH��dH�%(H��$�1�H��H����H�<$t)H��$�dH3%(u<H�Ġ[]A\�f.�H�{��1�H�މ�DŽ$�L�$$�\���u�DH�
I� H�A(H�Q8H9�s;8u�fD98tH��0H9�w�1�Å�tH�P0H;Q0v�H�Q0�Df�H�@$@@�@,�������DUHc�SH��H��H��H�@���H��t#H�SPH�H+S@H�C@H�H�SPH�CH1�H��[]ø������f�U1҉�1�S���H������t��t/H��1�[]�fD��t��H���‰߾[1�]�r�f�����ff.�SH��dH�%(H��$�1�H�T$H�t$�D$�D$��&�Ã��tf�|$t'H��$�dH3%(��u0H�Ġ[�f�H�L$A���Ǿ�����ff.�f��� ��Hc�H�vL��H�L9���H��H)�H����S�Nf.�E��������L�I؃�H��L�G�L�E�C�H�D�G��w�I9�thH��H)�H��~SH�pH�2H�pD�H�2H�pD�XH�2�pA��E�L�@��L�Ic�A���pD�Hc�L�M�L9��i��������[�f��0��u�H��[H�1�ø����Ë��u�H��H�1��f�AVAUE1�ATUH�-o� SH�}(t[D��]A\A]A^��EEA������!Lc�@���D��
 DI�E1�1�A���Mc�L���b�H��H���t]L��1�H���|�K�vH�](H��H�]0H�H�]8H�CH�j� H�[� H�CH��H�L� H�M� ���[D��]A\A]A^�H�=�qA�����1����H���H���H+��Hcp�G )�H����H��xsH9�AVHN�AUATUI��SHwH��D�wH���L��H��D����I��H���u!�l��8u
�]� ��u�D��[]A\A]A^ÐH��~���[]A\A]A^ø�����fDUSH������tMH���������u���8u
�� ��u�H�9� �E����H��t�(H�Z� H��t�@��H��[]�ff.�@AWAVAUATUSH��������� ��t8A��A��I����A��f�I�7D������Å�-���tx�n� ��u�D��D)�H����[]A\A]A^A_��A)�E��~ڋ>� ��t�I��f�H��)�I���~�H�PHc�H9�v�HI�H)H�x���������t���s����E)�E��AO��r���1��k���S�5� ��t-�='� ��t+1��T����u��[�8������1�[�@��9�[����ÐAVAUATUH��SH��H��PdH�%(H��$H1����H��
fDH��H��DB u�L�d$@��H��L���D��D$@Ƅ$?</tc<[����:L��f�E�5�H������|$@*H�X�zH�5{nL����A�ƅ��;�EM�����H�}�lf�uL����1�H��$HdH3%(�QH��P[]A\A]A^�D�
M�l$�]f�ML����H�����|$A*H�XA���1��;:�
��1�H�H����H�Í@�=����E��uf��1�f�]�Y���D�Ef�1�H�T$)D$H�L$L��D$H�)D$ )D$0H�D$����upL�d$H��A�T$I�t$���L���'��L��E1�M��������EA���<�����EE1�M���"����::A�D$M��fA�$�
����������������AUI��ATU��SH��(H��$�H��$�L��$�L��$���t@)�$�)�$�)�$�)�$�)�$�)�$�)�$)�$dH�%(H��$h1����t�=�� ���ML�d$`L��@��@��u��������L9���H�G� H�;H�L$HL��H��$P�D$HH�D$PH��$p�D$L0H�D$X���H��$hdH3%(��H��([]A\A]�H�)� H��L��kH�����L�¾d1���3�H�HÁ��K����-� ��H��H�ߺUA��L�Hk�dH�����1����H�H�XZL9�����H��H�S� M��1�L)�H�k�H�;�W����f�H��1�L�d$`H����H�t$H���q���uI��������D$�L��L��j�P�D$PD�L$(1��N�Y^Hc�L��L����H�D$L�4q�L���P�D$P�D$$P�D$0P�D$<P�D$H��P�D$TD��l1����H��0Hc�L�����/�ff.�@��AWAVAUATUSH��(dH�%(H�D$1�H�=ַ �.�D$�H�l$L�5�iL�-�iL�%�p@�H������v�A�Dž����T$�Ѓ���<~$��M��L������D��ME�1����D;=�� t�D;=�� tUD�����H��H��t�H�H1����@�1@�Ɖ�@����H��� H��t�(H�� ��h�K����&� �����9����H�5ٶ H�N0H�V(H9�s*D�A�H�A�E��t�DH��0�8��u.H��H9�r�H�F0H�D$dH3%(uH��([]A\A]A^A_�H�N0�����D$�@�1�D$�X���H�� H���D����C���ff.��AWAVAUATUH��SH��H��(�=˶ dH�%(H��$1���t1�����thH�C(I��I��D�3L+cI)�H�C D�{H)��-��D$��H��E��E��AT��H�5�n�AU1�U�L$,�,�H�� ���E� ��t)H��$dH3%(ulH��([]A\A]A^A_�@D�H�\$H���H�߹�AQL�	o���XH��Z�����t
1���fDH�=Sg�����5�DAWAVAUATUSH��L��� I�Z(M�j0L9��H�|$E1�E1�E1�@��B��ve�CA�l$����A�BD)�A;B�E9r�
�|� ��~ H�SH�L$��H�H)�H9���fD�CA��f��A��H��0I9�w�A�R��D)���1�)ȃ��H��[]A\A]A^A_�fDH�C H�t$H)�IcBH9����C��i�gf��f����)���f9�u��� �����Cf��~pH�5�m�1��M��;�	�����tp�CA��L��� A��f�C�5���fD�C��f�C�����A�������H�5�m�1�����;��A����u�����8u��L�5� ����H��E��E��D��[H�5�m]�A\1�A]A^A_��fDH�t$H����������@E1�E1�E1��z���f.���UH����S��H����H����H��I��[H�5�d�1�]��f����Ҳ 1���u1��=ײ �������� Ð����� �D��H�=�� �@��ATUSH��dH�%(H��$�1�H���}H�H��H�1�HLJ	H�ى�H��H)����	���H�H�{`���I��H���0H�CxH�S`L�c`� L�H)�H�CxH�CpL�H)�H�CpI��$H�Ch���H�C8H�C(H����H I���H��H�C0H��(L�cxL�cpH����l��������twH�T$H�t$���D$������t
�m���8kt0�����1��kH��$�dH3%(uiH�Ġ[]A\�fD�+����C�����C�1����1������H�=c��1���1����#���_���fD���������ff.����S�5� ��t	1ۉ�[����H�5L��
��� ��� �e�H�5>��
�T�����������H�=7� 1��8����tI��� �D��H�=Ab��� �
��H���c���H�54bH�����H�V� ��[É��D�����1��?������H�=�� �@����H�W(H�w`HLJ�H��HLJ0H���H�W�H�VH�W�H�W�H�W�H�W�H��)���81����H�����SH��H�H��t���H���H��t����H���H��t����H�{@H��t����1�[�fD��H��tG��wBL���Hc�A�T�4��t/Hc�A�pH���H�H€:t
�H���H���1��ff.�f���H��tP��tJSHc��H��;��}H�S�HH������[������~	Hc���и����[Ã����AWAVAUATUSH�Z�H�H��H�D$H���:�G�����H���%H����I��H���I�����I��I��L��fDA���)�Hc�H����L9�Hc�IO�IvI���
H��L������H��tML)�H��L��H�XH��H����A��I��A�$��D)��EH��[]A\A]A^A_��L��H��H��H����A���L�|$I���I)�A���M���?����D���L���L�Hc�H��~�A����-���H��1��|���������v���@��AVAUATUSH������I����H��H����H��H����H���H+��E1�H����H9�Hc��HO؋��)�H�H��~)H9�H�wH��HN�H�H��I������E��L�L)�H��t6�E�u@H��H��D���Z��H���u4�?���8u
�0� ��u�M��t-M��[L��]A\A]A^��H��~�I�H�H)�u���I�������D��H�O(H�W8H��LJLS���H)ʍB����H�GpH�0H�pH�@H�wp��~Hc�H�HH�� H�P�H�O8H�Gp����AWAVAUATUSH��H���H�T$H����H��H�<$�I��H�=i]�������HcB$H���H�@H�,�H9�r�Zf.�H��H9�vGH�3L���L����u�H�CH��[]A\A]A^A_�H�D$L9��I��M9���f.�1�H��[]A\A]A^A_��H�$1�L�=� L���@A�l�4��tI�4�L����������H��H��u�H�D$HcP 1���~�H�$H��L���M�tM9�s�H���H�$I�D$H�D$@IcMIcmH,$L�|
L9��)���A�\$���)����;��H�8H�D$�'���-t	��_����H��H��I9�t�����H�U:�t������8����IcUIcEH$H€:����������H�$Hc�Hc�A�VH��H€:�������@��AVAUATUSL��$���H��H�$L9�u�H��dH�%(H��$@1�H����H��H����H���H����H��E1�L�
�� L��h�f�H���Hc�HcT�4��t7�qH��M���
H��Ic�A��H��L�E��H�TD�T�tH��H��u�H���HcP ����H���H��L�L9���Ic�I��H��L��f�H��H�� I9���HcHHc0A��H���LcPI��HcHH��B�D�BH�J�HH�2�JA��u��H�
̔ � L������$DI��H�
�� Ic� L���^��E��taE1��@A��I�� E9�~CA�MI�UI��A�uI�}�Ӆ��H��$@dH3%(u6H��@[]A\A]A^��D����1���@Ic��U������������ff.����AWAVAUATUSH��XH�t$ H�T$dH�%(H��$H1�H����I��H����1�E1�L�-mgH��L�%C� H��H���Hc�HcT�4��t/�HH��A��A�t�I�<�H���L�D$A�ׅ��4H��H��u�H���D�t$<HcB ���L���H��L�H�D$0I9���H�\$(L�t$@fDH�D$(A�l$Ic$A�HTTPH������A�F_L�<H�D$��O�Hcʼnl$8I�H�D$I9���M�nI��I�o�I���_@��-t���H���A�E�L9�u�H�D$I�D�t$8L�D$�L��IcD$IcT$HT$���H�D$ A�L$�Ѕ�~"I��L9d$0�-���H�l$(H����B D$<H��$HdH3<%(u'H��X[]A\A]A^A_�DI�F�v��������������ff.���H��t7H��t2H���D�@$1�E����H���H��H��D�����������f.���H��t7H��t2H���D�@(1�E����H���H��H��D���S��������f.���H����H�O`H��tz����Ѓ�tr��L�G@������H�WPL9�vH�wpL)��L�H��H�V�H�wpHc�0H�T�H�Q�����,H��(LJ(LSH�1�H�Oxø�����f.���H����H�GpH+GxH�������G�����SH�������H�C(H9C8tH�����H�SpH+Sx1�H����~J�
�� �����u$�{H�sx����9��~H�{�������ǃ�H�S`H�SxH�Sp[�f�H�G(H9G8�c���1����s���l���LJ�H�W(H�W8H�W`H�WxH�Wpø�����f���AWAVAUATUSH��XH�t$dH�%(H�D$H1�H���.H�=Ȣ ���GI�������;��H�G(H9G8t
H�$���H�$H�D$L�|$L�d$H�$H�l$ I��H��L)�H����H��@�@L�|$0HO�L�d$ �D$LS�BL�jH�T$8I׋J� �D$D��H�D$(H�l$��uA�~H�4$D����H�I9�~�I�~��H��L)�H���L��H+D$��H�t$����H�L$HdH3%(uH��X[]A\A]A^A_�H��������4��@AWAVAUATUSH��H�$H��dH�%(H��$1�H��I��I���%��H��8���H��I��H�obHD����A������AW�H��SA���1�AVL�S�AU�S���H�� H��=O�Hc�M��t7L���?��1�H��$dH3%(u&H��[]A\A]A^A_����f�����?��ff.�@AT�~f�A��UH��SH��dH�%(H��$1�H�|$H��)$H���H�H��؟ ��xH��$dH3%(u?H��[]A\É�I��D��H�5iZ1��
��1�H�5RH���i������������ff.�f�ATUSH��H�$H��H�$H��dH�%(H��$ 1��s� �����?/H��H�����H������H���bH�ߋH����������!�%����t�¹�����D�H�WHD���@�H��H)��</��)�Hc�Hc�H�1�H���.��H���JL��$�H��L���}��H�����H�=QL������������AH��1��2���Ń������uRH�=�� H9�t
H��t���H��1�����H��� H��$ dH34%(����H�� []A\�fD����T����������>���@�������4�����
�+����H��H�5�X1�������r����r���DH�߹����������S���fD����������H��H�5\X1����������C����H��tv�����t]S��H��tC�uWH�C(H9C8tH�����H�CpH�ҏ H��H�H��H�@����H�Cp�@��H�����1�[�@���c��뢸�����ff.���H��������u��u1��f�S��H��tR�ubH�C(H9C8tH��� ��H�CpH�5� H��H�H��H�@����H�Cp���H�{�:����������1�[��1�H�O@H9OPv����닸��������AWAVAUATUSH��H����H���|���I�֨�,���aH��H�t$H����>��L�{8I��H�C0L)�H9��>L�t$L+{(L��A�@L��L�f�I��M)�M����K�H��@���σ��LSL�Cp�N���I�H�D���I�0H��I�@H�KpM��~H�C(M�xI�H E1�I�@H�C8H���L�1H��M�L�I�H��H�KpH9��e���H���-�����thI��L��M)�M���U���I9�t
H���	�����tDL+t$H��L��[]A\A]A^A_�DM��@�@M)��(������������I�������H�t$H��L�����Hk8�f.���H�������������AVL��AUI��ATI��U��S���H���u\��H�߉���;��A�D$�{L��ǃLS�������H��u0�{L��[L���]A\A]A^�����+������[H�����]A\A]A^�H���ff.���AWAVAUATUSH��H����H�������H����������D$����0��xI��H��I��H������Lc��\�CHc��T���
t��
u(��H�DLc���L�H����
t�
t�L�������~6Hc�A�T���
t��
u#��H�@��~A�L�H����
t�
t�E�<A�G=���I�|$PH�H�TI9T$Hs7H��I+t$@L������2%�)�)���������I�|$PL��H��Hc�A�����Mt$PH��L��I�FI�D$PA�:I�|$P�]��M�D$PI�I�@I�D$PA�Ic�$0fE��T8H�Ѓ�A��$0�D$H��[]A\A]A^A_��D$������ff.����H���
H����B�=����������0���AUATUSHc�H��f��D�A��<
t<
uH���؅�u�H��[]A\A]�I��H�PH��H�DI9D$Hs3H��I+t$@L������2%�)�)��������tQI�|$PH��H��A���0��I\$PH�CI�D$P�Ic�$0fE��T8H�Ѓ�A��$0H��1�[]A\A]ø�����S������D��AUATA��UH��SH���?dH�%(H�D$1��D$f����f��
t1�����f����H�L$dH3%(����H��[]A\A]ÐA�1Ҿ����Ã��tʼnǺ�1��Կ��H�L$A��ߺ�蘿����u#D��H��������uD���������o���謾���߻����D� H���:��D�e�O����A��k���DH�}A�n聾���}�N����3�����H��t����������ff.����U��SH��dH�%(H��$�1�H��H�������u/��H���e��H��$�dH3%(uH�Ę[]���������褿��@��1�H�=r� t������AUATA�'USH����� ��'DN�uD������q� H���@�A�����H��H�� H����H��tH�-�� �D����� �9����Ɖlj�� ����U����D�k H��� D�cE��u<�����D�����SuG�CH�,H�C���1�H��[]A\A]�@A�|$�C�{�˸�����ك�ÉS�ff.�@��H�E� H��t�8�ff.�f���H�%� �BH�B(H�R8H9�s��H��0H9�w�H��� H��t	���H�m� H��t	����fD��H�M� H�H;� �wH��H�H;ގ �����ff.�@��ATUSH��H�� dH�%(H�D$1�H�j� D�`豼��H�SX�� ���H�kXH�-� �r���H�7� ����̒ �ޒ H��� H�h� H��tH��~ 1�1���H�-�� �E��H�y� H��t��{1��F���� ��uH�U� H��tA�D9 ~��� �� ��ut�;���u]H�LS�[H��H�$��P�D$�ʻ���H��߉D$觻���h� 1�H�L$dH3%(u)H�� []A\�D�+���������������t���@�����H�� SH���@H�Xt1�����H�SXH�BH�B�{�۽���C����1�[���AWAVAUATUSH��HH�Đ H�|$H��$�L�edH�%(H��$81����H����L��DŽ$(H��$�艾��H�R� H���e������cH����L��DŽ$(H��$��K���H��� H���'������H�8� H����������H�|� H��
�������H��� H���ӹ������H�D$1�E1�L�d$ ��� L�|$ǀ��D$H�� H��t	H�=ȋ ��1�菾��I��L9�t71���������L���P���C��t�S�����D$fD�V�F���H��� �L��H�1���H�Hc;�ֺ���;M��L��H�D$H�D$�����������?)ѺH��1�H	T� 1�j� �Ń���������	����8��1�H�5�� �蝸��1ҿH�5� 芸��1ҿH�5<� �w���1ҿH�5�� �d���1ҿ
H�5֋ �Q���H��$8dH3%(���kH��H[]A\A]A^A_�fDH��� H��udD�C�S�K�
D9���H��� A�����H��tD��H�5UI1��V������������ M��� �������fDD�0D�CE��~�E��~����e���D�˺��A��u���D$�t$9��/������������D�;�)��A��H�D$D�pA���uc蒶���0���k������b���H�=�?D�������j���f.�H�=�?�����������H�=CH�����������1�1����H�\$H�CX�������������=� �f����=� �D��H��� H��t�x�ff.����H�u� H��t��x�x����H�U� H��t��~�x����H�5� H��t��~�x����H�� H��t�x�ff.�����=�� �D����� �D����� Ð����� �D��AUATUH��H�=�>SH��8dH�%(H��$(1��-���H��tH��� �H�=�� ��H�=O>����H���E1��
H��螹������H�=I>�ڳ��H��t�
1�H���v����h� H�=5>贳��H��H��t�
1�H���M���I��A�ą��WE1�H�=>耳��H��t�
1�H�������ϊ H�=>�Z���H��tH�Ǻ
1�������O���H�=�=�3���H�����Њ H�=�=����H��tH�Ǻ
1�谸�����9����Ķ������H�=�=���H����1��
H���x������OH�=�=賲��H��tH�Ǻ
1��O������ش��H�=�=茲��H��tH�Ǻ
1��(���������H�=�=�e���H��tH�Ǻ
1��������ʺ��H�=r=�>���H��tH�Ǻ
1��ڷ����胲��H�=b=����H��t�=���H�=`=����H��t�
1�H��蝷����� ���_H�=H=�ӱ��H��t�
1�H���o����ʼn D�^� �P� �B� E����H�==�ٶ��H�����="� ��u	�P�� �5� ����H�==�S���H�����
1�H������Ո �…�t�Ո �����H��u H�H����H�H����D��� L�=L�
=L�=�C�
H��L���������t@H�ֹL����€���D	�t%H��tAH�H��t9�H��L���������u�H��fDH�JH��H�J�H��u�H�H��u�1ۉ�H��$(dH3%(��H��8[]A\A]�fD�փ H��膲���D����<G�~A��<MED�A������s���D��H�H��� �_�����豲�����@H�=�:�̯��H���������fDH�=:謯��H����������fDA���f��@�+� �#���f�諳�����fD1�E��H������~���H��s �8������H�=;�ǵ��H��H��� H����H�5�:H���u���H��H��� ����H�����-�� ������H�5�:H���@���H�5�:H��I��H�L� �'���H�5�:H������H�5�:H��H�� ������~H�5�:H�����H��� H�=� H���~A�ԅ��L���H�=mB���H�=� 蔮��H�� �$���@H��H�$H�D$�r������DH��H��$���$��̯�����t
螮��1҃8k�‰�� ����H�=^9�̭��H��t1��
H���h�����~�V� H�=F9袭��H��t1��
H���>�����~�(� H�=.9�x���H��H���iH�Ǻ�1�1�諵���Ã����H�T$�ƿ����������D$(?���H�5߄ ���ر��H�������W���H�`� H��t�xc�@d�x��@�D�
� E���9���D�k� E���)����Z���f�H�=m8褬���>� H���K����]����
2� ��u
�$� '�� �������� '������� �)���f��Յ�tbH�à H���-�������DH��H�5�?�1�������S�����������A��Hc�螲��L�%g� H��H�u� �a����s����Å�t��=s� ��� ����B� ��u
�L� �5R� ������`���H��H�50?�u���H��H�5�>�1��U����������H��H�5�>�F���ff.����AVI��AUE��ATI��UH��SH��t��4H��u!�(fDH��H���t���H��L����W���H�]H��u�M��tE��L�����[1�]A\A]A^ÐIc�L��L���������H�#Eg����H�GH�H��ܺ�vT2H�G����AWAVA���AUI��ATUH�oSH��1�H���G�O�@�ƉWD���������W��?t;A�ĉ�D��H��H�|�@D)�A9�rhA��G�t4�L��L��$���H��L���9���A��?vWE�f�A��I��I��I�H�޺@H��H��@���H��L������L9�u�A��?D��L��H��H��[]A\A]A^A_鼱��I�������ATL�fUH��S�FH�����?��L�H�z���?)ƒ�w=��t1������9�r�L��H������f�CAD$AD$ I�D$0��71�)�����H�CH��L��H�CP�?����oH�{1�H��MH�H�CPH)��KX���H�[]A\�ff.�f�AWAVAUATUSH��dH�%(H��$�1�H��t^� �I���A�����f�Mcg I�oA�_@L��H����3���H���uM�����8u
�=	| ��uٽ����H��$�dH3%(����
H�Ĩ[]A\A]A^A_�f���~�A��A������u���I���ALJ�f�8LS�|�x�r�@t�P�Hf�@�H�P�X���N������	M�g���A;G �ZA���9�~u���E�o)�H�Hc�I��H��L��D���"���H���u$�����8������5�z ��u�����������A��M�gA���9��I�D$,H�D$Hc�I�I���D�hA�����h(A9��}A�� �/Hc�I���H�4@H���E���H���A���I���I����h$A9��}A�� ��Hc�I���H�4@H�����H����A���I���I���H�l$�p(I���L��H�����������I���I���L��p$�������hM���Ic@���o9��gIcP���[9��SIcp���G9��?IcH���39��+I�H�H�H�H�I���H�T$I���Ic@ H)�I���H��H��I���H��H�H���I���H�I���IcHI���H�H��H�D$I9���E����1�D�L�4��t9�d�<B�9�ZH��H��u�IcP ���kI���H��H�H9�r*�RP9�!�P9�P9�H��H9��-�9�~�H�5�1�1�荮��H�51�1����w����>���f�H�� ����H��� ���I�GA�G  I�������P�Hf�@	f�@
�H�H�P�P�H�H�P�P�H�H�P�P�H�H�P�P�H�H�P�Pf�@f�@f�@�H�H#�P�P �H �H'�P#�P$�H$�H+�P'�P(f�@f�@!f�@%�H(�P+f�@)I������1��
fDI���HcȋL�4��t#f�BI���H�T�4�
�rf�B@�2�JH��H��u�M���IcP ����I���H��H�H9������pH��@�p��p�H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��H�H9�w�M���A�pI����b���Ic@I���H����0�*z ALJ���t`��y 
�y A�������y 1������L��Hc�诩��I��H������I�GA�o I����u���I���D�%�y D�-�y �B(A��A���1Ic�H�4II���L��I�
�9�H�qH�=G.����������I�J�D�B(�9�xH�qH�=".���������XI�J���B(��$�A�D$I���KA�zH�L$�;M�bfo�x L�t$ L���AoL$AT$M�l$)�$�蘪��� L��L������H�L$�L��H����L��L�����H��$�I�D$H��$�I3L$H1�H	���D�$$D�l$E����D��D�l$�â��H�=4x I��H��������I��D����w ���M���H�=�w t"L��D��L������Ń����������P�|$�g��������E��t$A9u��H�t$��~��������D���
���������5�w ���$A�?D�5�w ���t� ���A�����H�5�)L�����H��tH�����H�rw f�)Ww �#���A��H�5�i 1�����H��@�������H�5�+�1��9�������L�����H��������
1�H���o���I������H�5�3�1���H�5�3�1��ݨ��D�%�v ��v D��D$����H�=uv I��H��tZE���W����7����E1�1�1�1���ݤ����������H�=�3������H�5�*�1��`�������E��|$蟦�������M���2����;�����|$�w��������E������1�H�5�*L���u������I�}臧���Ń������1�H�5�*L���K�����fD�=�u ������-�u �{u E���D$A�����I���F������H�5�)�1�膧��������H���H)���H�5�1�H��1��a�������1�H�5*L�����������
����ܟ��1�H�532L�������A�#��L��H�
�3H��p 臣�����1�H�5�)L���a����ff.����AVAUATUSH��dH�%(H��$�1��D$H���H���ѡ������	�;1�L�l$L�d$L�t$H�k�l����Bp �����{�ul�;�����L��L���D$�����C�����H�t H��t�@��H�4t H��t��{1�����f�|$���=�s u|H���4��tH��舴��H���@�����o ���d���1�H��$�dH3%(u}H�Ġ[]A\A]A^�D�s������������������������{�H�5�e �,���H���f����ы{L���A��՜���;����۝��ff.���AWAVAUATUSH���D�=4s dH�%(H��$�1�E���xH��� ���H�-ir H�����}�����r ;.e �DH�-s H��t1��A���H�ED�rn E���H��$L�|$PD�cA����:E1�A�f�D�
5n E����D�}r E��tH��r H��t
�@f����L��H��1���H�Ic��g���D��H�D$PH�D$X����A���?)ѺH��H	��D9#��1�1�A�|$M��H���m D9#������H�r H��t
�@D9#��d A��D9���1�葳��������f������H��$�dH34%(���'	H���[]A\A]A^A_��K���L��$�H�����DŽ$hM�l$H��$�L��謞��H��$L��H��H�D$@�������AH����L��DŽ$hH��$��e���H��$�L��H��H�D$0�8������PH��$�L��H��H�D$8�������+H��$`L��
H��H�D$(������H��$ L��H��H�D$H�ə��A�Dž���H�D$PE1�L�l$`H�D$H��$�H�D$H��$`H�D$f�D�%�o E����H��o H��t	H�=�k ��1��t���I��L9�t<1��ձ������L���5����E���D�uE���M��E1���V�&���H��k �L��H�1���H�Hc}赚���}L�D$L��H�D$PH�D$X�����������?)ѺH��1�H	T�`1�Fk ���������������8�����H�t$(1ҿ
�}���������x������=�����������_����5�n ��tH�o H��t
�@f���,���D9#�
D������C�����H��n H��t�@��H��n H��t�D�c1�D���N����
 j �����=�m �����{�H�5�` ���H����������H�!n H��t�*H�Qn H�������B���(���@H�1n H��t�@��H��m H����������@苖���8�B����-���DA��D9�����M�����=Ri ������蝟����������=6i �����H�qm �
H��t��D��H�Pm H��t�
�A9����������H�1m H��tD��҉T$$D�E~:E��~5���W����T$$A��軙��A�����謙��A��u������D�E�U�M�
D9�vH��l A�����H��tD�H�5�'�1�覞�������������D$�W����0������������H�=�!�G����T$���fD�}蠩���C�����1��m���H�|$I�����H�|$���H�T$H�t$1��P������6�����������1�EM��tA�M�gM�g�{E1��C����C����H�t$1ҿ����������H�=�)�'������f��;�	���������>���fD�D$$�O����0���d������T$$�W���H�=��T$�7����T$����fDD�#A�����������fD�Nk ���R���D��f E���B���H�k H���2����9�f �����{�H�5e] 蠔��H�{�w������H�=C(�F������茓��H�=�(�0莖��M������A����H������…��
H�{����H���֘���<f ���������H�=��Ԛ��������������H�t$1ҿ�t�������H��i ����Rj ���L�=Rj �8j H�j �j H��i H��tH�V 1�1���L�=j A�G��H��i H��t��{1�蝦��D�-ne E��uH��i H��t!�E�9~�Je �Hi �����;���t�ؕ�������H�t$@1ҿL��$��ɒ��H�t$01ҿ踒��H�t$H1ҿ角��H�t$81ҿ薒��H�t$(1ҿ
腒���kH�LSH��$��j'��$�讒���L��$�舒���Ih ��h ���H�=#�*���������%���軚���������,���H�='&�����Q���H��h H��t*f�C1��C�D$�C���C����T$H�C(H�C �dh ����֒��fD���=^h �\h �ff.�@��H�d ������f.�f�����fD����l H���ff.���H�]T H���H+���H���HO��D��H������1��f���1��f���ATI��H��US��Hc��H���Hc�L��H���:���H�=l H��H���ؔ��[�]A\�ff.�H�5ig SH��k H��tH�=�k H�ٺ1�[����D�H�=�'还��H��H�%g ����H��s�����H��H�=IS 蜏���H���f���H��H�=)S �|���Hc5k ;5�b H�=k |6�!���H��j �����H��j ���j H���fD苎����f����?��I�H�=�R ���H���H+��9�M�1���~+H��Hc�Hc5�j H5vj 聐����~sj H���f��ff.�@��UH��SH��H��膓��H�m ��t]��uaH��H���H��tT�؃���tJ��tEH�H�؉у���u5H�M�� u@H��H�p��H�}��H��H�[]H�D�@H�����u�H������H�MH��� t�H�PH�p�f���SH���C���H��[�ff.���SH���s���H��H�������[Ð��H��H�=YQ 蜔��H��` H�����H��H�=9Q 蜎��H��` H�����H��H�=Q ��������tH��` H��H�����USH��H�=�P 芏��������H�=�h H��t�{���H��h �����H��h ��h �ō��9�h t H�5Nd ��h H��t[1ҿ1����1�H��h ���H�-P H�;H��H�u�ɔ��H�uH�;H��蚋��H��_ H��H��[]�f��H�=@$�_���H��H��c ���SH��H�t$�-�����~0H�|$�H�\$�$���H���l���1�H������H��[�@H�\$H������H�|$行����ff.�@��AWAVAUA��ATI��U��SH��H���<Q��~v<R��<Su"�H�=�#H���������@Mc�L��L��芓��Hc�H��I���|���H�=Mg L��H������H���[]A\A]A^A_�fD<Pu��
H�=+#H�������u��ƀULc�u��H�=�"H��������t����?H������I��H���H��A��L)�A)�Mc�H��L��H�L$�В���	H�=�"H�$軒��H�$H�=�f H���X���H�L$L��H��蘒���H�=�"H�$胒��H�$H�=Pf H��� ���1�A�??L����I�L���Y����H�="I���E���H�=f L��H��������fD�
H�=�!H��������r����:�i������@A�L�%�Q���fDO�<4L��E1������H9�\ tH����ATUH��S���ʉ��L� �‰��H�5�e H�=�!H��ȍ��裉��H�5�` L� H��tH�=]e H���[]A\�_�����H�=a!�7���H��H��` ��ff.��=�d �t1��@H��L H����=�d ����t�USH��;=&\ ��H�=�` 脎��H��H������Ń����H��覈��H������Hc_d ��H���-�������E1�A���H��1��[���H�$d H����������1�H��[]�f.�Hc���C���H��c H��u�H�=� 軏�����@��c 1��H�=5 蔏�����}�����fD�ˇ���8�d���H�پH��I��H��K H�81����H���)�����N���H�=��3�����������1���f���AUATI��U��SH��H���e�����~0����H������~H��ƒ����m���d1��������@�����-�b ��+�b Hc�D�-�b �;���I�Ĩu,H�����t$H��ƒ������H����@��t"D)�A�DI�D9�u"D���������H��L��[]A\A]�@D)�Hc5Vb L��H5<b Hc��$���>b ���H��L��[]A\A]�@I�<$@��u&蹇����xe�-b �b )�9�O���!���裏���ؐD9�Hc5�a L��DN�H5�a Ic�谈��D-�a �R���@��I�$����@H��A�[L��]A\A]�H�=I H�5nH�81�蔅��@��AWAVAUATUSH��H��薌����~0���(H������H��ƒ����
���1��J�������L�5
a ��D9-a ~N��-���D�-�` M�&�H�gHc=�` D��)�I��L�Hc�H�����H��t�L)�D)��XHc�H���!���I�Ĩu*H�����t"H��ƒ���M�H��sBf.���~Hc5u` H��H5[` L���C���]` H��L��[]A\A]A^A_���I�$��A���H��G H�5H�81��(��������_ SH����_ ��~"@H���h���H���0�����_ 9�_ |�H��[�ff.�f���SH�������~ ��u@H�����t7H��ƒ���t*��t%H�=G 貄�����t
H�[H�D�@�[�H�
G H�5;H�81��a������AUATUH��SH��dH�%(H�D$1�����I��1�I���KDH����H9�}LL���Ă��L��I�E tW貂��I�EH��H��L��H��H�$�2���I�E�� u�I�EH9�|�H�L$dH3%(�uBH��[]A\A]��[���I�E �D�H�=1�?���H��H��H�$�˂����T���@��1��f���UH��SH��H��dH�%(H�D$1���u;H�����t2H��ƒ���u%�� tH�{~H�S��H�S��u�DH���uX胃���H��D$����H�E H�t$�H�8�PH��H�����HD�H�L$dH3%(uH��[]���;�����t���@��AVAUATUSH�Ӆ�����G�I��L�%	H�l��R�@��uj������t`H��tZ@��tTH��4tN�������H��H��H�=�����6���I��L9�tpI�}@��u�H�����u�H��tqH��u���#���H��I��H���e�I��� u]H��I�V��H���<
t�H�YD H��I��H�0�2�L9�u�[�]A\A]A^����u�L���&���H��뉐I�FI�VH���f�H�D H��H�0���[�]A\A]A^���AVAUATUH��SH��dH�%(H�D$1������I��H�6A���L�5��w���@����H��H���H��tw����to@��ti�����u_�L���b���H��H���7�A9�~OH�kC H�0H��tH����I�t�H��@��u�H�����u�H��t�H��u��H�����A9��H�C H�0H��tH�����H�L$dH3%(�u0H��[]A\A]A^�f����I��A�H��H�$���р�����AUATUSH���M��������H�=xH��Z H��Z ��Z �~��H��t8�
1�H��H��詃��H�Ņ�~�MH���Հ��H�������-�Q H�=,��}��H��H��tH������H��H=��8�Xfo[f�$V )
V H�=e1��}��H��t1��
H��1�������@��H�=�A �f������H�=���Y �?}��H����H����������H�FA H��H�H��A H�5fU H�H��Y H���sL�%A I�<$蓄��H�54U H��Y H���$1�H��1�����H�=yY H�rY 荄���H�=1�|����H�=(I���h���H�=AY L��H�������H�5��H�=��.���I�4$H�=��Ά��1�H���H�5�H��H��X �o������H�=�X 1�H��H�5��+���H�=�X �H�8���H�5�����H�=�X �H�	�H�5����H�=vX �����H����H�5��΂��H�=WX �����H���H�5�诂��H�=8X �����H�����H�5�萂��H�=X �H�=�H�5f�q���H�=�W 1�H�q�H�5M�U���H�=�W 1�H�����H�57�9���H�=�W 1�H����H�5 ����H�=�W �����H�*�H�5���H�=�W 1�H���H�5����H�=kW 1�H�2���H�5��Ɓ��H�=OW 1�H���H�5�誁��H�=3W 1�H���H�5�莁��H�=W 1�H���H�5��r���H�=�V 1�H���H�5~�V���H�=�V 1�H���H�5j�:���H�=�V 1�H�j�H�5U����H�=�V 1�H����H�5>����H�=�V �H�?�H�5$���H�=lV �����H���H�5��Ā����腃��L�%�= H�=7V H���H��H�V L����}��H�V H�-�= H�=aM H�
�= H�SM H�*H�JH��= H�H�s= H�����������H�=�U L��H�+�H��H��U �|}��H��U H�
>= H�=�L H��L H�JH�*H�豀����y��H�(��y��H��(���H�iU 1��z�H�5[U H�=�}��H�3H�={�}���y��H�(H��[]A\A]�DH�P�H��H�=�P �}��H��w"H��P H�.XXXXXXH�(����H�t+��H�=������u�����H�=�T 1�H�X�H�5��,��H�=�T 1�H��H�5����H�=yT 1�H���H�5���~�������H�=$�g���H��H��O H�NT �����H�=��?���H��H��O �m���H�=�����*����H�=��<w��H����������fD�mH���z��H���6����KH���y��H��t��
�-K �����kH����y��H��u�-�J ������H��H���Anonymous mmap() failedlocalhost%02d:%02d:%02d [%s] [UID:%d][%d] %.*syesnosystem()%s, errno: %d (%s)
/dev/nulllibpthread.sopthread_atforkHTTP_[UID:%d][%d] %s:%s: %s
LSAPI: jail() failure./etc/Can't set signalsaccept() failedLSAPI_STDERR_LOGPHP_LSAPI_MAX_REQUESTSLSAPI_MAX_REQSLSAPI_KEEP_LISTENLSAPI_AVOID_FORKLSAPI_ACCEPT_NOTIFYLSAPI_SLOW_REQ_MSECSLSAPI_ALLOW_CORE_DUMPLSAPI_MAX_IDLEPHP_LSAPI_CHILDRENLSAPI_EXTRA_CHILDRENLSAPI_MAX_IDLE_CHILDRENLSAPI_PGRP_MAX_IDLELSAPI_MAX_PROCESS_TIMELSAPI_PPID_NO_CHECKLSAPI_MAX_BUSY_WORKERLSAPI_DUMP_DEBUG_INFOnobodyLSAPI_DEFAULT_UIDLSAPI_DEFAULT_GIDLSAPI_SECRETLSAPI_LVE_ENABLEliblve.so.0lve_is_availablelve_instance_initlve_destroylve_enterlve_leavejailPHP_LSAPI_PHPRC=packetLen < 0
packetLen > %d
Bad request header - ERROR#1
ParseRequest error
SUEXEC_AUTHSUEXEC_UGIDLSAPI: setgid()LSAPI: initgroups()LSAPI: setgroups()LSAPI: setuid()Bad request header - ERROR#2
lsapi_accept() errorPragma: no-cacheRetry-After: 60Content-Type: text/htmlDEBUGNOTICEWARNERRORCRITFATALAcceptAccept-CharsetAccept-EncodingAccept-LanguageAuthorizationConnectionContent-TypeContent-LengthCookieCookie2HostPragmaRefererUser-AgentCache-ControlIf-Modified-SinceIf-MatchIf-None-MatchIf-RangeIf-Unmodified-SinceKeep-AliveX-Forwarded-ForViaTransfer-EncodingHTTP_ACCEPTHTTP_ACCEPT_CHARSETHTTP_ACCEPT_ENCODINGHTTP_ACCEPT_LANGUAGEHTTP_AUTHORIZATIONHTTP_CONNECTIONCONTENT_TYPECONTENT_LENGTHHTTP_COOKIEHTTP_COOKIE2HTTP_HOSTHTTP_PRAGMAHTTP_REFERERHTTP_USER_AGENTHTTP_CACHE_CONTROLHTTP_IF_MODIFIED_SINCEHTTP_IF_MATCHHTTP_IF_NONE_MATCHHTTP_IF_RANGEHTTP_IF_UNMODIFIED_SINCEHTTP_KEEP_ALIVEHTTP_RANGEHTTP_X_FORWARDED_FORHTTP_VIAHTTP_TRANSFER_ENCODING%04d-%02d-%02d %02d:%02d:%02d.%06d Child process with pid: %d was killed by signal: %d, core dumped: %s
Possible runaway process, UID: %d, PPID: %d, PID: %d, reqCount: %d, process time: %ld, checkpoint time: %ld, start time: %ld
gdb --batch -ex "attach %d" -ex "set height 0" -ex "bt" >&2;PATH=$PATH:/usr/sbin lsof -p %d >&2Force killing runaway process PID: %d with SIGKILL
Killing runaway process PID: %d with SIGTERM
Children tracking is wrong: Cur Children: %d, count: %d, idle: %d, dying: %d
LSAPI: LVE jail(%d) result: %d, error: %s !
Invalid custom stderr log pathFailed to open custom stderr logCan't set signal handler for SIGCHILDReached max children process limit: %d, extra: %d, current: %d, busy: %d, please increase LSAPI_CHILDREN.
LSAPI: failed to open secret file: %s!
LSAPI: failed to check state of file: %s!
LSAPI: file permission check failure: %s
LSAPI: failed to read secret from secret file: %s
LSAPI: Unable to initialize LVERequest header does match total size, total: %d, real: %ld
LSAPI: missing SUEXEC_UGID env, use default user!
LSAPI: SUEXEC_AUTH authentication failed, use default user!
LSAPI: lve_enter() failure, reached resource limit.prctl: Failed to set dumpable, core dump may not be available!sigprocmask(SIG_BLOCK) to block SIGCHLDsigprocmask( SIG_SETMASK ) to restore SIGMASK in childfork() failed, please increase process limitsigprocmask( SIG_SETMASK ) to restore SIGMASKCache-Control: private, no-cache, no-store, must-revalidate, max-age=0PID<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>508 Resource Limit Is Reached</TITLE>
</HEAD><BODY>
<H1>Resource Limit Is Reached</H1>
The website is temporarily unable to service your request as it exceeded resource limit.
Please try again later.
<HR>
</BODY></HTML>






	


replacesrandQUERY_STRINGREQUEST_URIPATH_INFOREQUEST_PATHSCRIPT_NAMESTDERRreopenftruncate() failed. 
File mapping failed. 
Memory calloc error[...]nilLSAPI_MAX_BODYBUF_LENGTHLSAPI_TEMPFILEXXXXXXRACK_ROOTchdir()to_hashCGI/1.2eval_string_wrapLSAPIacceptaccept_new_connectionpostfork_childpostfork_parentprocessputcwriteprintprintfputs<<flushgetcgetsreadrewindeacheofeof?closebinmodeisattytty?syncsync=RACK_ENVInsecure: operation on untainted IOGATEWAY_Irewindable_input.rbNTERFACE/tmp/lsapi.XXXXX;�z0Z���e�� �p��8�p��L�p��`�p��t0q���@q���Pq����x��0@y��d�y��xz���`z���{��|��$}��t�}��� ~�����<`��d���������$P���p���������H	���p	 ����	0����	@����	P����	����	��
�0
���D
`���X
����t
����
p����
���
�8`���L�����������P ���dp���x������������
����h
0����
p����
�������(����tP����0���P���p��������������@���<`���P����d���xp�������������,�@���T0���hP���|p����������������������������4`���t����������P���0��L����������� ��0��$P��8���L���`���t�������P���`����������`��0��\0��xP���p�������������� ��,@��x����p���@�@�����p��`�p�@�H������zRx�$0V���
FJw�?:*3$"D�`���
\@l��p<l���8l��
L�4l��sE�I�B �E(�A0�z
(A BBBIA
(D BBBA�dl���`l��@\l��YG�J�B �B(�A0�A8��0F(B DBb0Txs���B�F�C �G�
 AABK��s��k(�0t��GA�D�J n
AAA4�Tt��UA�G�K R
CAGL
JCG |t���A�G�]
AJ $�t��t��
CKF�LH�u���B�B�E �A(�H0�H
(D BBBD�
(D BBBAP��v���v�F�B �A(�D0�D
(A BBBBL(A BBBA�����$��v��aA�A�D XAAH(w���B�B�B �B(�A0�A8�D@N
8C0A(B BBBH$`�w��OA�f
QC
EH@��w��YB�B�B �A(�D0�J��
0A(A BBBFx�z���F�E�A �C(�G�
 
(A ABBDM�
I�
c�
A�
��
E�
M�
A�
k�
E�
E�
E�
E�
H�V�
HHd|���F�B�B �B(�A0�A8�D``
8A0A(B BBBDl��}��+B�B�B �B(�A0�D8�J�Y�H�P�C�	M�i
8A0A(B BBBEL�T�M�D�d�~��6B�B�B �B(�A0�A8�DP�
8A0A(B BBBG
8J0H(G DBBK$lp���7E�F�F IIO��������������������4������F�A�A �G�>
 AABG ����E�O
D�
A@����
T����h����Y|���JE�D�4���S �����]P�h
HXA�H�����lF�B�B �B(�A0�A8�LP�
8A0A(B BBBH<��F�B�B �A(�A0��
(D BBBI\����i`p���F�B�B �B(�A0�A8�DP~
8A0A(B BBBAk
8A0A(B BBBHL�ȇ��$F�B�B �A(�A0�H��Q
D���
0A(A BBBHL$����F�B�B �B(�A0�A8�G��
8A0A(B BBBFtx���F�����F���$�|����n�C�X�J�L�T���lF�B�B �B(�A0�A8�D�A
8A0A(B BBBA`(	t����B�B�B �B(�A0�A8�G� I� K� I� L� N� N� w
8A0A(B BBBI0�	����B�M�D �G�L
 AABA<�	����=B�A�A �G� L�@I�@U
 AABG$
�����T�WE�H�G� (
��a�g
HS�HL
�����F�B�B �B(�A0�A8�DPS
8D0A(B BBBFT�
����b�I�E �D(�C0�P
�(F� B�B�B�MQ(H BBBA�����H�
|����F�B�B �B(�A0�A8�DP�
8A0A(B BBBAT<���C�B�A �A(�G0`
(A ABBD�
(C ABBAJ����8�ؖ��-F�B�D �D(�D@T
(A ABBB�̗��(�ؗ��lE�C�G�F
AAIL���!c�B�G �A(�D0�
(A ABBEX����D0����`����t���Z�T���10�����pF�A�A �G@7
 AABF�����@L�sL���F�B�B �B(�A0�A8�G��
8A0A(B BBBG<
����P
����d
����x
�����
�����
̞���
؞���
���
���
ܞ��؞��<Ԟ��	F�B�A �K(�G�
(A ABBG<X�����F�E�E �D(�D0�M
(C BBBB���(H�����F�B�H �E(�A0�E8�I@�
8A0A(B BBBE(������F�E�D ��ABH$H����B�B�B �B(�A0�A8�G��
8A0A(B BBBJDpܴ���F�B�B �A(�A0�G�
0A(A BBBFL�D����
F�B�B �B(�A0�A8�G��
8A0A(B BBBA����4���
H���\���+p,����(����$���(� ���BF�G�A �kFB�D���MH�^
J�x���
t���HU |���gHQ
G<���ayd(T(���E�D�L ]
CAJ����E�L����E�Y���� HW���� HW����-Hd(����E�A�D �
DAJ ,���aE�D y
AEHP���F�B�B �E(�D0�C8�GPm
8F0A(B BBBG,�����Z�A�D �J
�A�B�L4�0���o�A�D �
AAKp��P ��\����F�B�D �C(�G0�
(D ABBEj
(D ABBE|
(G DBBAHd���hF�B�B �B(�A0�A8�G@
8D0A(B BBBD���CK�w �P��oE�A
JF
A8�����F�B�A �D(�D@�
(A ABBA,P��(@L���E�D�G0�
AAIHl���PF�B�B �A(�A0��
(F BBBH{(F BBB@����OF�B�B �A(�D0�D@
0A(A BBBJ8���{F�B�A �A(�D0�
(A ABBFGNU��V@V !Q������������������������������&�.�3�:�B�M�[�m�v�����������������������/�?�L�[�g�t�~�����������������)�4�I�R�$3CN\f� @
l�!!���o`�
! 0x'�	���o�&���o�o%���oD(
!P@`@p@�@�@�@�@�@�@�@�@AA A0A@APA`ApA�A�A�A�A�A�A�A�ABB B0B@BPB`BpB�B�B�B�B�B�B�B�BCC C0C@CPC`CpC�C�C�C�C�C�C�C�CDD D0D@DPD`DpD�D�D�D�D�D�D�D�DEE E0E@EPE`EpE�E�E�E�E�E�E�E�EFF F0F@FPF`FpF�F�F�F�F�F�F�F�FGG G0G@GPG`GpG�G�G�G�G�G�G�G�GHH H0H@HPH`HpH�H�H�H�H�H�H�H�HII I0I@IPI`IpI�I�I�I�I�I�I�I�IJJ J0J@JPJ`JpJ�J�J�J�J�J�J�J�JK,����LSLSLSLS����������������X�X�i�y��!D#!���GA$3a1 @y�GA$3p1113�V$�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p11130�k�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�V:�GA+GLIBCXX_ASSERTIONSlsapi.so-5.6-1.el8.x86_64.debug����7zXZ�ִF!t/��O1]?�E�h=��ڊ�2N�a8_~ ��*~��,�������4�?�}8���P4H�3�.R�����/q��Fv�k-B�3���k�I�8�9����N�?�{�g�Ï�"�-��n�d����c�����LgP�r/?Ҽ���h���c1��*6j��[��|�29 ]W�t�<E���5R���L�) (�*����*�?*�XDضLЄ.Н����ޤ�E�;����٪�K�\�s.�zMT��m2�f��ث�~sK�{��L��u�3J^�q�2A������K�Ϡ����P/rM��I/)F�/�Z�_�
����f����3��ߓ����v����=�:8[�+ԩ<ų����el2��Mb��-�{,��cӢ¡��ev��ʒ�M
q�bs�j�qG�8�\΄XY�h�����6��kh6���w͈��ׄx���	7�HC�y�Y�R׬Q�R�[��S/�"���Ț7��tF�����`��m�d3�f45V|�XEf!s�.�
�sU��MM�y9��L1}��m[��P�`��U���
�-��06��3^4�_Ӑ�+'����8Ȥ�h�7z>uÊ�Mm�v#.-��y"l����*����(�~�:�n�mv��(B��o)I6q�����D���p���y�H�����N7Q
�����ڦ?�r&�j����8�6K:4K���đ�2�̙U��٠��jŸ�:�o�.0?v�
��#K$�f|Wj.���'�e�U��~�R̛���ǧG���䃶B~>�KZ`�z]���/�(r��NOn�L�C���i1��)���[t�
��{�_����;Ƽ�@�vi�g�r�R���׹+nx�%�.�5��p�v#�kW�M��`�T$��@ƠB9u��y@��9������/�T����ޘF8~���q�B��'^�/42eGU�r��x&l���8i�;��u�Ui�v}��I�,de�U)�Q.�Ml��_�rz\$�/H�ك
�d�ˇ���E���b�qj����W���g��tz�:A�0�tW�]z��ֺV
��aOBDo\-&��!��&���)LlQ�����WY�%EC��(٘�v�
�r�$���h�
�t�2�Q��chK��dt��b��Ӳ7���9U��$@�o:�䪯�'�S�y���L!�C��q[U�f��<���4�f�%4V�C�i�m1;is����"�&j�6
)��-�v�<�+���=���d>��G�R���������n�W�@	�B,�{�#v��e�
C2l�'L�4p_�3YM�)��e��G+�t��g]�MQPs���U����wl/�?��y��Z��K$���~:�D�F���B�Hւ��s����4�y�(�\�&�U��?Z�����3���~�\]H�	�x�Ŏ���6�0&�<<L�n��{Ч���a��x��D27E��F�}��yR*U�3���頌ԇ�g?)��~#�/*3��rk�� UG$wJL�$z�����-��I�
�t^�7��9,b ��!�F"�!���W�]�]y�,rj�-}����
��D�uÜc{�O7M�5x���?�bK'
؛|:��޾?Ut�����^^	��iD�$U���U�<E��.�Y+0g�����%�hv�~hF�!Ԉ�'�.��󝂨��
/�B��Yv��g�R�Ig�W��6p�Z�� ������͕_R���N���2��g
B�R�:������c8@�^�ߓzc!������k��;]���TܶuxЈ��,
#��L��&z�����u=n�Pl��<��6ڱ�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``p(��@08���o%%�E���o�&�&�Tx'x'�^B00 h @ @c@@@@�
nKK�
w�U�U�~}l�l�
������ ���������8�(�(� �!�!� !  �(
!(
 �H!H��!x��!��	 �`!`� �(a`t#$"�#t+1lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/ext/lsapi/lsapilib.c000064400000350541150402106530017246 0ustar00//#define LSAPI_DEBUG
/*
Copyright (c) 2002-2018, Lite Speed Technologies Inc.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.
    * Neither the name of the Lite Speed Technologies Inc nor the
      names of its contributors may be used to endorse or promote
      products derived from this software without specific prior
      written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/


#include <ctype.h>
#include <dlfcn.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <sys/stat.h>
#include <sched.h>
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <sys/mman.h>
#include <sys/resource.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <sys/uio.h>
#include <sys/wait.h>
#include <grp.h>
#include <pwd.h>
#include <time.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <sys/un.h>

#include "lsapilib.h"

#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)
#include <sys/prctl.h>
#endif

#if defined(__FreeBSD__ ) || defined(__NetBSD__) || defined(__OpenBSD__) \
    || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
#include <sys/sysctl.h>
#endif

#include <inttypes.h>
#ifndef uint32
#define uint32 uint32_t
#endif

struct lsapi_MD5Context {
    uint32 buf[4];
    uint32 bits[2];
    unsigned char in[64];
};

void lsapi_MD5Init(struct lsapi_MD5Context *context);
void lsapi_MD5Update(struct lsapi_MD5Context *context, unsigned char const *buf,
           unsigned len);
void lsapi_MD5Final(unsigned char digest[16], struct lsapi_MD5Context *context);

/*
 * This is needed to make RSAREF happy on some MS-DOS compilers.
 */
typedef struct lsapi_MD5Context lsapi_MD5_CTX;


#define LSAPI_ST_REQ_HEADER     1
#define LSAPI_ST_REQ_BODY       2
#define LSAPI_ST_RESP_HEADER    4
#define LSAPI_ST_RESP_BODY      8
#define LSAPI_ST_BACKGROUND     16

#define LSAPI_RESP_BUF_SIZE     8192
#define LSAPI_INIT_RESP_HEADER_LEN 4096

enum
{
    LSAPI_STATE_IDLE,
    LSAPI_STATE_CONNECTED,
    LSAPI_STATE_ACCEPTING,
};

typedef struct lsapi_child_status
{
    int     m_pid;
    long    m_tmStart;

    volatile short   m_iKillSent;
    volatile char    m_inProcess;
    volatile char    m_state;
    volatile int     m_iReqCounter;

    volatile long    m_tmWaitBegin;
    volatile long    m_tmReqBegin;
    volatile long    m_tmLastCheckPoint;
}
lsapi_child_status;

static lsapi_child_status * s_worker_status = NULL;

static int g_inited = 0;
static int g_running = 1;
static int s_ppid;
static int s_restored_ppid = 0;
static int s_pid = 0;
static int s_slow_req_msecs = 0;
static int s_keep_listener = 1;
static int s_dump_debug_info = 0;
static int s_pid_dump_debug_info = 0;
static int s_req_processed = 0;
static int s_skip_write = 0;
static int (*pthread_atfork_func)(void (*prepare)(void), void (*parent)(void),
                                  void (*child)(void)) = NULL;

static int *s_busy_workers = NULL;
static int *s_accepting_workers = NULL;
static int *s_global_counter = &s_req_processed;
static int s_max_busy_workers = -1;
static char *s_stderr_log_path = NULL;
static int s_stderr_is_pipe = 0;
static int s_ignore_pid = -1;
static size_t s_total_pages = 1;
static size_t s_min_avail_pages = 256 * 1024;
static size_t *s_avail_pages = &s_total_pages;

LSAPI_Request g_req =
{ .m_fdListen = -1, .m_fd = -1 };

static char         s_secret[24];

static LSAPI_On_Timer_pf s_proc_group_timer_cb = NULL;

void Flush_RespBuf_r( LSAPI_Request * pReq );
static int lsapi_reopen_stderr(const char *p);

static const char *CGI_HEADERS[H_TRANSFER_ENCODING+1] =
{
    "HTTP_ACCEPT", "HTTP_ACCEPT_CHARSET",
    "HTTP_ACCEPT_ENCODING",
    "HTTP_ACCEPT_LANGUAGE", "HTTP_AUTHORIZATION",
    "HTTP_CONNECTION", "CONTENT_TYPE",
    "CONTENT_LENGTH", "HTTP_COOKIE", "HTTP_COOKIE2",
    "HTTP_HOST", "HTTP_PRAGMA",
    "HTTP_REFERER", "HTTP_USER_AGENT",
    "HTTP_CACHE_CONTROL",
    "HTTP_IF_MODIFIED_SINCE", "HTTP_IF_MATCH",
    "HTTP_IF_NONE_MATCH",
    "HTTP_IF_RANGE",
    "HTTP_IF_UNMODIFIED_SINCE",
    "HTTP_KEEP_ALIVE",
    "HTTP_RANGE",
    "HTTP_X_FORWARDED_FOR",
    "HTTP_VIA",
    "HTTP_TRANSFER_ENCODING"
};

static int CGI_HEADER_LEN[H_TRANSFER_ENCODING+1] =
{    11, 19, 20, 20, 18, 15, 12, 14, 11, 12, 9, 11, 12, 15, 18,
     22, 13, 18, 13, 24, 15, 10, 20, 8, 22 };


static const char *HTTP_HEADERS[H_TRANSFER_ENCODING+1] =
{
    "Accept", "Accept-Charset",
    "Accept-Encoding",
    "Accept-Language", "Authorization",
    "Connection", "Content-Type",
    "Content-Length", "Cookie", "Cookie2",
    "Host", "Pragma",
    "Referer", "User-Agent",
    "Cache-Control",
    "If-Modified-Since", "If-Match",
    "If-None-Match",
    "If-Range",
    "If-Unmodified-Since",
    "Keep-Alive",
    "Range",
    "X-Forwarded-For",
    "Via",
    "Transfer-Encoding"
};

static int HTTP_HEADER_LEN[H_TRANSFER_ENCODING+1] =
{   6, 14, 15, 15, 13, 10, 12, 14, 6, 7, 4, 6, 7, 10, //user-agent
    13,17, 8, 13, 8, 19, 10, 5, 15, 3, 17
};


static const char *s_log_level_names[8] =
{
    "", "DEBUG","INFO", "NOTICE", "WARN", "ERROR", "CRIT", "FATAL"
};


void LSAPI_Log(int flag, const char * fmt, ...)
{
    char buf[1024];
    char *p = buf;
    if ((flag & LSAPI_LOG_TIMESTAMP_BITS)
        && !(s_stderr_is_pipe))
    {
        struct timeval  tv;
        struct tm       tm;
        gettimeofday(&tv, NULL);
        localtime_r(&tv.tv_sec, &tm);
        if (flag & LSAPI_LOG_TIMESTAMP_FULL)
        {
            p += snprintf(p, 1024, "%04d-%02d-%02d %02d:%02d:%02d.%06d ",
                tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
                tm.tm_hour, tm.tm_min, tm.tm_sec, (int)tv.tv_usec);
        }
        else if (flag & LSAPI_LOG_TIMESTAMP_HMS)
        {
            p += snprintf(p, 1024, "%02d:%02d:%02d ",
                tm.tm_hour, tm.tm_min, tm.tm_sec);
        }
    }

    int level = flag & LSAPI_LOG_LEVEL_BITS;
    if (level && level <= LSAPI_LOG_FLAG_FATAL)
    {
        p += snprintf(p, 100, "[%s] ", s_log_level_names[level]);
    }

    if (flag & LSAPI_LOG_PID)
    {
        p += snprintf(p, 100, "[UID:%d][%d] ", getuid(), s_pid);
    }

    if (p > buf)
        fprintf(stderr, "%.*s", (int)(p - buf), buf);
    va_list ap;
    va_start(ap, fmt);
    vfprintf(stderr, fmt, ap);
    va_end(ap);
}

#ifdef LSAPI_DEBUG

#define DBGLOG_FLAG (LSAPI_LOG_TIMESTAMP_FULL|LSAPI_LOG_FLAG_DEBUG|LSAPI_LOG_PID)
#define lsapi_dbg(...)   LSAPI_Log(DBGLOG_FLAG, __VA_ARGS__)

#else

#define lsapi_dbg(...)

#endif

#define lsapi_log(...)  LSAPI_Log(LSAPI_LOG_TIMESTAMP_FULL|LSAPI_LOG_PID, __VA_ARGS__)


void lsapi_perror(const char * pMessage, int err_no)
{
    lsapi_log("%s, errno: %d (%s)\n", pMessage, err_no, strerror(err_no));
}


static int lsapi_parent_dead()
{
    // Return non-zero if the parent is dead.  0 if still alive.
    if (!s_ppid) {
        // not checking, so not dead
        return(0);
    }
    if (s_restored_ppid) {
        if (kill(s_restored_ppid,0) == -1) {
            if (errno == EPERM) {
                return(0); // no permission, but it's still there.
            }
            return(1); // Dead
        }
        return(0); // it worked, so it's not dead
    }
    return(s_ppid != getppid());
}


static void lsapi_sigpipe( int sig )
{
}


static void lsapi_siguser1( int sig )
{
    g_running = 0;
}

#ifndef sighandler_t
typedef void (*sighandler_t)(int);
#endif

static void lsapi_signal(int signo, sighandler_t handler)
{
    struct sigaction sa;

    sigaction(signo, NULL, &sa);

    if (sa.sa_handler == SIG_DFL)
    {
        sigemptyset(&sa.sa_mask);
        sa.sa_flags = 0;
        sa.sa_handler = handler;
        sigaction(signo, &sa, NULL);
    }
}


static int s_enable_core_dump = 0;
static void lsapi_enable_core_dump(void)
{
#if defined(__FreeBSD__ ) || defined(__NetBSD__) || defined(__OpenBSD__) \
    || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
    int  mib[2];
    size_t len;

#if !defined(__OpenBSD__)
    len = 2;
    if ( sysctlnametomib("kern.sugid_coredump", mib, &len) == 0 )
    {
        len = sizeof(s_enable_core_dump);
        if (sysctl(mib, 2, NULL, 0, &s_enable_core_dump, len) == -1)
            perror( "sysctl: Failed to set 'kern.sugid_coredump', "
                    "core dump may not be available!");
    }
#else
    int set = 3;
    len = sizeof(set);
    mib[0] = CTL_KERN;
    mib[1] = KERN_NOSUIDCOREDUMP;
    if (sysctl(mib, 2, NULL, 0, &set, len) == 0) {
        s_enable_core_dump = 1;
    }
#endif


#endif

#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)
    if (prctl(PR_SET_DUMPABLE, s_enable_core_dump,0,0,0) == -1)
        perror( "prctl: Failed to set dumpable, "
                    "core dump may not be available!");
#endif
}


static inline void lsapi_buildPacketHeader( struct lsapi_packet_header * pHeader,
                                char type, int len )
{
    pHeader->m_versionB0 = LSAPI_VERSION_B0;  /* LSAPI protocol version */
    pHeader->m_versionB1 = LSAPI_VERSION_B1;
    pHeader->m_type      = type;
    pHeader->m_flag      = LSAPI_ENDIAN;
    pHeader->m_packetLen.m_iLen = len;
}


static  int lsapi_set_nblock( int fd, int nonblock )
{
    int val = fcntl( fd, F_GETFL, 0 );
    if ( nonblock )
    {
        if (!( val & O_NONBLOCK ))
        {
            return fcntl( fd, F_SETFL, val | O_NONBLOCK );
        }
    }
    else
    {
        if ( val & O_NONBLOCK )
        {
            return fcntl( fd, F_SETFL, val &(~O_NONBLOCK) );
        }
    }
    return 0;
}


static int lsapi_close( int fd )
{
    int ret;
    while( 1 )
    {
        ret = close( fd );
        if (( ret == -1 )&&( errno == EINTR )&&(g_running))
            continue;
        return ret;
    }
}


static void lsapi_close_connection(LSAPI_Request *pReq)
{
    if (pReq->m_fd == -1)
        return;
    lsapi_close(pReq->m_fd);
    pReq->m_fd = -1;
    if (s_busy_workers)
        __atomic_fetch_sub(s_busy_workers, 1, __ATOMIC_SEQ_CST);
    if (s_worker_status)
        __atomic_store_n(&s_worker_status->m_state, LSAPI_STATE_IDLE,
                         __ATOMIC_SEQ_CST);
}


static inline ssize_t lsapi_read( int fd, void * pBuf, size_t len )
{
    ssize_t ret;
    while( 1 )
    {
        ret = read( fd, (char *)pBuf, len );
        if (( ret == -1 )&&( errno == EINTR )&&(g_running))
            continue;
        return ret;
    }
}


/*
static int lsapi_write( int fd, const void * pBuf, int len )
{
   int ret;
   const char * pCur;
   const char * pEnd;
   if ( len == 0 )
       return 0;
   pCur = (const char *)pBuf;
   pEnd = pCur + len;
   while( g_running && (pCur < pEnd) )
   {
       ret = write( fd, pCur, pEnd - pCur );
       if ( ret >= 0)
           pCur += ret;
       else if (( ret == -1 )&&( errno != EINTR ))
           return ret;
   }
   return pCur - (const char *)pBuf;
}
*/


static int lsapi_writev( int fd, struct iovec ** pVec, int count, int totalLen )
{
    int ret;
    int left = totalLen;
    int n = count;

    if (s_skip_write)
        return totalLen;

    while(( left > 0 )&&g_running )
    {
        ret = writev( fd, *pVec, n );
        if ( ret > 0 )
        {
            left -= ret;
            if (( left <= 0)||( !g_running ))
                return totalLen - left;
            while( ret > 0 )
            {
                if ( (*pVec)->iov_len <= (unsigned int )ret )
                {
                    ret -= (*pVec)->iov_len;
                    ++(*pVec);
                }
                else
                {
                    (*pVec)->iov_base = (char *)(*pVec)->iov_base + ret;
                    (*pVec)->iov_len -= ret;
                    break;
                }
            }
        }
        else if ( ret == -1 )
        {
            if ( errno == EAGAIN )
            {
                if ( totalLen - left > 0 )
                    return totalLen - left;
                else
                    return -1;
            }
            else if ( errno != EINTR )
                return ret;
        }
    }
    return totalLen - left;
}


/*
static int getTotalLen( struct iovec * pVec, int count )
{
   struct iovec * pEnd = pVec + count;
   int total = 0;
   while( pVec < pEnd )
   {
       total += pVec->iov_len;
       ++pVec;
   }
   return total;
}
*/


static inline int allocateBuf( LSAPI_Request * pReq, int size )
{
    char * pBuf = (char *)realloc( pReq->m_pReqBuf, size );
    if ( pBuf )
    {
        pReq->m_pReqBuf = pBuf;
        pReq->m_reqBufSize = size;
        pReq->m_pHeader = (struct lsapi_req_header *)pReq->m_pReqBuf;
        return 0;
    }
    return -1;
}


static int allocateIovec( LSAPI_Request * pReq, int n )
{
    struct iovec * p = (struct iovec *)realloc(
                pReq->m_pIovec, sizeof(struct iovec) * n );
    if ( !p )
        return -1;
    pReq->m_pIovecToWrite = p + ( pReq->m_pIovecToWrite - pReq->m_pIovec );
    pReq->m_pIovecCur = p + ( pReq->m_pIovecCur - pReq->m_pIovec );
    pReq->m_pIovec = p;
    pReq->m_pIovecEnd = p + n;
    return 0;
}


static int allocateRespHeaderBuf( LSAPI_Request * pReq, int size )
{
    char * p = (char *)realloc( pReq->m_pRespHeaderBuf, size );
    if ( !p )
        return -1;
    pReq->m_pRespHeaderBufPos   = p + ( pReq->m_pRespHeaderBufPos - pReq->m_pRespHeaderBuf );
    pReq->m_pRespHeaderBuf      = p;
    pReq->m_pRespHeaderBufEnd   = p + size;
    return 0;
}


static inline int verifyHeader( struct lsapi_packet_header * pHeader, char pktType )
{
    if (( LSAPI_VERSION_B0 != pHeader->m_versionB0 )||
        ( LSAPI_VERSION_B1 != pHeader->m_versionB1 )||
        ( pktType != pHeader->m_type ))
        return -1;
    if ( LSAPI_ENDIAN != (pHeader->m_flag & LSAPI_ENDIAN_BIT ))
    {
        register char b;
        b = pHeader->m_packetLen.m_bytes[0];
        pHeader->m_packetLen.m_bytes[0] = pHeader->m_packetLen.m_bytes[3];
        pHeader->m_packetLen.m_bytes[3] = b;
        b = pHeader->m_packetLen.m_bytes[1];
        pHeader->m_packetLen.m_bytes[1] = pHeader->m_packetLen.m_bytes[2];
        pHeader->m_packetLen.m_bytes[2] = b;
    }
    return pHeader->m_packetLen.m_iLen;
}


static int allocateEnvList( struct LSAPI_key_value_pair ** pEnvList,
                        int *curSize, int newSize )
{
    struct LSAPI_key_value_pair * pBuf;
    if ( *curSize >= newSize )
        return 0;
    if ( newSize > 8192 )
        return -1;
    pBuf = (struct LSAPI_key_value_pair *)realloc( *pEnvList, newSize *
                    sizeof(struct LSAPI_key_value_pair) );
    if ( pBuf )
    {
        *pEnvList = pBuf;
        *curSize  = newSize;
        return 0;
    }
    else
        return -1;

}


static inline int isPipe( int fd )
{
    char        achPeer[128];
    socklen_t   len = 128;
    if (( getpeername( fd, (struct sockaddr *)achPeer, &len ) != 0 )&&
        ( errno == ENOTCONN ))
        return 0;
    else
        return 1;
}


static int parseEnv( struct LSAPI_key_value_pair * pEnvList, int count,
            char **pBegin, char * pEnd )
{
    struct LSAPI_key_value_pair * pEnvEnd;
        int keyLen = 0, valLen = 0;
    if ( count > 8192 )
        return -1;
    pEnvEnd = pEnvList + count;
    while( pEnvList != pEnvEnd )
    {
        if ( pEnd - *pBegin < 4 )
            return -1;
        keyLen = *((unsigned char *)((*pBegin)++));
        keyLen = (keyLen << 8) + *((unsigned char *)((*pBegin)++));
        valLen = *((unsigned char *)((*pBegin)++));
        valLen = (valLen << 8) + *((unsigned char *)((*pBegin)++));
        if ( *pBegin + keyLen + valLen > pEnd )
            return -1;
        if (( !keyLen )||( !valLen ))
            return -1;

        pEnvList->pKey = *pBegin;
        *pBegin += keyLen;
        pEnvList->pValue = *pBegin;
        *pBegin += valLen;

        pEnvList->keyLen = keyLen - 1;
        pEnvList->valLen = valLen - 1;
        ++pEnvList;
    }
    if ( memcmp( *pBegin, "\0\0\0\0", 4 ) != 0 )
        return -1;
    *pBegin += 4;
    return 0;
}


static inline void swapIntEndian( int * pInteger )
{
    char * p = (char *)pInteger;
    register char b;
    b = p[0];
    p[0] = p[3];
    p[3] = b;
    b = p[1];
    p[1] = p[2];
    p[2] = b;

}


static inline void fixEndian( LSAPI_Request * pReq )
{
    struct lsapi_req_header *p= pReq->m_pHeader;
    swapIntEndian( &p->m_httpHeaderLen );
    swapIntEndian( &p->m_reqBodyLen );
    swapIntEndian( &p->m_scriptFileOff );
    swapIntEndian( &p->m_scriptNameOff );
    swapIntEndian( &p->m_queryStringOff );
    swapIntEndian( &p->m_requestMethodOff );
    swapIntEndian( &p->m_cntUnknownHeaders );
    swapIntEndian( &p->m_cntEnv );
    swapIntEndian( &p->m_cntSpecialEnv );
}


static void fixHeaderIndexEndian( LSAPI_Request * pReq )
{
    int i;
    for( i = 0; i < H_TRANSFER_ENCODING; ++i )
    {
        if ( pReq->m_pHeaderIndex->m_headerOff[i] )
        {
            register char b;
            char * p = (char *)(&pReq->m_pHeaderIndex->m_headerLen[i]);
            b = p[0];
            p[0] = p[1];
            p[1] = b;
            swapIntEndian( &pReq->m_pHeaderIndex->m_headerOff[i] );
        }
    }
    if ( pReq->m_pHeader->m_cntUnknownHeaders > 0 )
    {
        struct lsapi_header_offset * pCur, *pEnd;
        pCur = pReq->m_pUnknownHeader;
        pEnd = pCur + pReq->m_pHeader->m_cntUnknownHeaders;
        while( pCur < pEnd )
        {
            swapIntEndian( &pCur->nameOff );
            swapIntEndian( &pCur->nameLen );
            swapIntEndian( &pCur->valueOff );
            swapIntEndian( &pCur->valueLen );
            ++pCur;
        }
    }
}


static int validateHeaders( LSAPI_Request * pReq )
{
    int totalLen = pReq->m_pHeader->m_httpHeaderLen;
    int i;
    for(i = 0; i < H_TRANSFER_ENCODING; ++i)
    {
        if ( pReq->m_pHeaderIndex->m_headerOff[i] )
        {
            if (pReq->m_pHeaderIndex->m_headerOff[i] > totalLen
                || pReq->m_pHeaderIndex->m_headerLen[i]
                    + pReq->m_pHeaderIndex->m_headerOff[i] > totalLen)
                return -1;
        }
    }
    if (pReq->m_pHeader->m_cntUnknownHeaders > 0)
    {
        struct lsapi_header_offset * pCur, *pEnd;
        pCur = pReq->m_pUnknownHeader;
        pEnd = pCur + pReq->m_pHeader->m_cntUnknownHeaders;
        while( pCur < pEnd )
        {
            if (pCur->nameOff > totalLen
                || pCur->nameOff + pCur->nameLen > totalLen
                || pCur->valueOff > totalLen
                || pCur->valueOff + pCur->valueLen > totalLen)
                return -1;
            ++pCur;
        }
    }
    return 0;
}


static uid_t s_uid = 0;
static uid_t s_defaultUid;  //web server need set this
static gid_t s_defaultGid;

#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)

#define LSAPI_LVE_DISABLED  0
#define LSAPI_LVE_ENABLED   1
#define LSAPI_CAGEFS_ENABLED 2
#define LSAPI_CAGEFS_NO_SUEXEC 3
struct liblve;
static int s_enable_lve = LSAPI_LVE_DISABLED;
static struct liblve * s_lve = NULL;

static void *s_liblve;
static int (*fp_lve_is_available)(void) = NULL;
static int (*fp_lve_instance_init)(struct liblve *) = NULL;
static int (*fp_lve_destroy)(struct liblve *) = NULL;
static int (*fp_lve_enter)(struct liblve *, uint32_t, int32_t, int32_t, uint32_t *) = NULL;
static int (*fp_lve_leave)(struct liblve *, uint32_t *) = NULL;
static int (*fp_lve_jail)( struct passwd *, char *) = NULL;
static int lsapi_load_lve_lib(void)
{
    s_liblve = dlopen("liblve.so.0", RTLD_NOW | RTLD_GLOBAL);
    if (s_liblve)
    {
        fp_lve_is_available = dlsym(s_liblve, "lve_is_available");
        if (dlerror() == NULL)
        {
            if ( !(*fp_lve_is_available)() )
            {
                int uid = getuid();
                if ( uid )
                {
                    if (setreuid( s_uid, uid )) {};
                    if ( !(*fp_lve_is_available)() )
                        s_enable_lve = 0;
                    if (setreuid( uid, s_uid )) {};
                }
            }
        }
    }
    else
    {
        s_enable_lve = LSAPI_LVE_DISABLED;
    }
    return (s_liblve)? 0 : -1;
}


static int init_lve_ex(void)
{
    int rc;
    if ( !s_liblve )
        return -1;
    fp_lve_instance_init = dlsym(s_liblve, "lve_instance_init");
    fp_lve_destroy = dlsym(s_liblve, "lve_destroy");
    fp_lve_enter = dlsym(s_liblve, "lve_enter");
    fp_lve_leave = dlsym(s_liblve, "lve_leave");
    if ( s_enable_lve >= LSAPI_CAGEFS_ENABLED )
        fp_lve_jail = dlsym(s_liblve, "jail" );

    if ( s_lve == NULL )
    {
        rc = (*fp_lve_instance_init)(NULL);
        s_lve = malloc(rc);
    }
    rc = (*fp_lve_instance_init)(s_lve);
    if (rc != 0)
    {
        perror( "LSAPI: Unable to initialize LVE" );
        free( s_lve );
        s_lve = NULL;
        return -1;
    }
    return 0;

}

#endif



static int readSecret( const char * pSecretFile )
{
    struct stat st;
    int fd = open( pSecretFile, O_RDONLY , 0600 );
    if ( fd == -1 )
    {
        lsapi_log("LSAPI: failed to open secret file: %s!\n", pSecretFile );
        return -1;
    }
    if ( fstat( fd, &st ) == -1 )
    {
        lsapi_log("LSAPI: failed to check state of file: %s!\n", pSecretFile );
        close( fd );
        return -1;
    }
/*
    if ( st.st_uid != s_uid )
    {
        lsapi_log("LSAPI: file owner check failure: %s!\n", pSecretFile );
        close( fd );
        return -1;
    }
*/
    if ( st.st_mode & 0077 )
    {
        lsapi_log("LSAPI: file permission check failure: %s\n", pSecretFile );
        close( fd );
        return -1;
    }
    if ( read( fd, s_secret, 16 ) < 16 )
    {
        lsapi_log("LSAPI: failed to read secret from secret file: %s\n", pSecretFile );
        close( fd );
        return -1;
    }
    close( fd );
    return 0;
}


int LSAPI_is_suEXEC_Daemon(void)
{
    if (( !s_uid )&&( s_secret[0] ))
        return 1;
    else
        return 0;
}


static int LSAPI_perror_r( LSAPI_Request * pReq, const char * pErr1, const char *pErr2 )
{
    char achError[4096];
    int n = snprintf(achError, sizeof(achError), "[UID:%d][%d] %s:%s: %s\n",
                     getuid(), getpid(),
                     pErr1, (pErr2)?pErr2:"", strerror(errno));
    if (n > (int)sizeof(achError))
        n = sizeof(achError);
    if ( pReq )
        LSAPI_Write_Stderr_r( pReq, achError, n );
    else
        if (write( STDERR_FILENO, achError, n )) {};
    return 0;
}


#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)
static int lsapi_lve_error( LSAPI_Request * pReq )
{
    static const char * headers[] =
    {
        "Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0",
        "Pragma: no-cache",
        "Retry-After: 60",
        "Content-Type: text/html",
        NULL
    };
    static const char achBody[] =
        "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n"
        "<HTML><HEAD>\n<TITLE>508 Resource Limit Is Reached</TITLE>\n"
        "</HEAD><BODY>\n" "<H1>Resource Limit Is Reached</H1>\n"
        "The website is temporarily unable to service your request as it exceeded resource limit.\n"
        "Please try again later.\n"
        "<HR>\n"
        "</BODY></HTML>\n";

    LSAPI_ErrResponse_r( pReq, 508, headers, achBody, sizeof( achBody ) - 1 );
    return 0;
}

static int lsapi_enterLVE( LSAPI_Request * pReq, uid_t uid )
{
    if ( s_lve && uid ) //root user should not do that
    {
        uint32_t cookie;
        int ret = -1;
        ret = (*fp_lve_enter)(s_lve, uid, -1, -1, &cookie);
        if ( ret < 0 )
        {
            //lsapi_log("enter LVE (%d) : result: %d !\n", uid, ret );
            LSAPI_perror_r(pReq, "LSAPI: lve_enter() failure, reached resource limit.", NULL );
            lsapi_lve_error( pReq );
            return -1;
        }
    }

    return 0;
}

static int lsapi_jailLVE( LSAPI_Request * pReq, uid_t uid, struct passwd * pw )
{
    int ret = 0;
    char  error_msg[1024] = "";
    ret = (*fp_lve_jail)( pw, error_msg );
    if ( ret < 0 )
    {
        lsapi_log("LSAPI: LVE jail(%d) result: %d, error: %s !\n",
                  uid, ret, error_msg );
        LSAPI_perror_r( pReq, "LSAPI: jail() failure.", NULL );
        return -1;
    }
    return ret;
}


static int lsapi_initLVE(void)
{
    const char * pEnv;
    if ( (pEnv = getenv( "LSAPI_LVE_ENABLE" ))!= NULL )
    {
        s_enable_lve = atol( pEnv );
        pEnv = NULL;
    }
    else if ( (pEnv = getenv( "LVE_ENABLE" ))!= NULL )
    {
        s_enable_lve = atol( pEnv );
        pEnv = NULL;
    }
    if ( s_enable_lve && !s_uid )
    {
        lsapi_load_lve_lib();
        if ( s_enable_lve )
        {
            return init_lve_ex();
        }

    }
    return 0;
}
#endif


static int setUID_LVE(LSAPI_Request * pReq, uid_t uid, gid_t gid, const char * pChroot)
{
    int rv;
    struct passwd * pw;
    pw = getpwuid( uid );
#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)
    if ( s_lve )
    {
        if( lsapi_enterLVE( pReq, uid ) == -1 )
            return -1;
        if ( pw && fp_lve_jail)
        {
            rv = lsapi_jailLVE( pReq, uid, pw );
            if ( rv == -1 )
                return -1;
            if (( rv == 1 )&&(s_enable_lve == LSAPI_CAGEFS_NO_SUEXEC ))    //this mode only use cageFS, does not use suEXEC
            {
                uid = s_defaultUid;
                gid = s_defaultGid;
                pw = getpwuid( uid );
            }
        }
    }
#endif
    //if ( !uid || !gid )  //do not allow root
    //{
    //    return -1;
    //}

#if defined(__FreeBSD__ ) || defined(__NetBSD__) || defined(__OpenBSD__) \
    || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
    if ( s_enable_core_dump )
        lsapi_enable_core_dump();
#endif

    rv = setgid(gid);
    if (rv == -1)
    {
        LSAPI_perror_r(pReq, "LSAPI: setgid()", NULL);
        return -1;
    }
    if ( pw && (pw->pw_gid == gid ))
    {
        rv = initgroups( pw->pw_name, gid );
        if (rv == -1)
        {
            LSAPI_perror_r(pReq, "LSAPI: initgroups()", NULL);
            return -1;
        }
    }
    else
    {
        rv = setgroups(1, &gid);
        if (rv == -1)
        {
            LSAPI_perror_r(pReq, "LSAPI: setgroups()", NULL);
        }
    }
    if ( pChroot )
    {
        rv = chroot( pChroot );
        if ( rv == -1 )
        {
            LSAPI_perror_r(pReq, "LSAPI: chroot()", NULL);
            return -1;
        }
    }
    rv = setuid(uid);
    if (rv == -1)
    {
        LSAPI_perror_r(pReq, "LSAPI: setuid()", NULL);
        return -1;
    }
#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)
    if ( s_enable_core_dump )
        lsapi_enable_core_dump();
#endif
    return 0;
}

static int lsapi_suexec_auth( LSAPI_Request *pReq,
            char * pAuth, int len, char * pUgid, int ugidLen )
{
    lsapi_MD5_CTX md5ctx;
    unsigned char achMD5[16];
    if ( len < 32 )
        return -1;
    memmove( achMD5, pAuth + 16, 16 );
    memmove( pAuth + 16, s_secret, 16 );
    lsapi_MD5Init( &md5ctx );
    lsapi_MD5Update( &md5ctx, (unsigned char *)pAuth, 32 );
    lsapi_MD5Update( &md5ctx, (unsigned char *)pUgid, 8 );
    lsapi_MD5Final( (unsigned char *)pAuth + 16, &md5ctx);
    if ( memcmp( achMD5, pAuth + 16, 16 ) == 0 )
        return 0;
    return 1;
}


static int lsapi_changeUGid( LSAPI_Request * pReq )
{
    int uid = s_defaultUid;
    int gid = s_defaultGid;
    const char *pStderrLog;
    const char *pChroot = NULL;
    struct LSAPI_key_value_pair * pEnv;
    struct LSAPI_key_value_pair * pAuth;
    int i;
    if ( s_uid )
        return 0;
    //with special ID  0x00
    //authenticate the suEXEC request;
    //first one should be MD5( nonce + lscgid secret )
    //remember to clear the secret after verification
    //it should be set at the end of special env
    i = pReq->m_pHeader->m_cntSpecialEnv - 1;
    if ( i >= 0 )
    {
        pEnv = pReq->m_pSpecialEnvList + i;
        if (( *pEnv->pKey == '\000' )&&
            ( strcmp( pEnv->pKey+1, "SUEXEC_AUTH" ) == 0 ))
        {
            --pReq->m_pHeader->m_cntSpecialEnv;
            pAuth = pEnv--;
            if (( *pEnv->pKey == '\000' )&&
                ( strcmp( pEnv->pKey+1, "SUEXEC_UGID" ) == 0 ))
            {
                --pReq->m_pHeader->m_cntSpecialEnv;
                uid = *(uint32_t *)pEnv->pValue;
                gid = *(((uint32_t *)pEnv->pValue) + 1 );
                //lsapi_log("LSAPI: SUEXEC_UGID set UID: %d, GID: %d\n", uid, gid );
            }
            else
            {
                lsapi_log("LSAPI: missing SUEXEC_UGID env, use default user!\n" );
                pEnv = NULL;
            }
            if ( pEnv&& lsapi_suexec_auth( pReq, pAuth->pValue, pAuth->valLen, pEnv->pValue, pEnv->valLen ) == 0 )
            {
                //read UID, GID from specialEnv

            }
            else
            {
                //authentication error
                lsapi_log("LSAPI: SUEXEC_AUTH authentication failed, use default user!\n" );
                uid = 0;
            }
        }
        else
        {
            //lsapi_log("LSAPI: no SUEXEC_AUTH env, use default user!\n" );
        }
    }


    if ( !uid )
    {
        uid = s_defaultUid;
        gid = s_defaultGid;
    }

    //change uid
    if ( setUID_LVE( pReq, uid, gid, pChroot ) == -1 )
    {
        return -1;
    }

    s_uid = uid;

    if ( pReq->m_fdListen != -1 )
    {
        close( pReq->m_fdListen );
        pReq->m_fdListen = -1;
    }

    pStderrLog = LSAPI_GetEnv_r( pReq, "LSAPI_STDERR_LOG");
    if (pStderrLog)
        lsapi_reopen_stderr(pStderrLog);

    return 0;

}


static int parseContentLenFromHeader(LSAPI_Request * pReq)
{
    const char * pContentLen = LSAPI_GetHeader_r( pReq, H_CONTENT_LENGTH );
    if ( pContentLen )
        pReq->m_reqBodyLen = strtoll( pContentLen, NULL, 10 );
    return 0;
}


static int parseRequest( LSAPI_Request * pReq, int totalLen )
{
    int shouldFixEndian;
    char * pBegin = pReq->m_pReqBuf + sizeof( struct lsapi_req_header );
    char * pEnd = pReq->m_pReqBuf + totalLen;
    shouldFixEndian = ( LSAPI_ENDIAN != (
                pReq->m_pHeader->m_pktHeader.m_flag & LSAPI_ENDIAN_BIT ) );
    if ( shouldFixEndian )
    {
        fixEndian( pReq );
    }
    if ( (pReq->m_specialEnvListSize < pReq->m_pHeader->m_cntSpecialEnv )&&
            allocateEnvList( &pReq->m_pSpecialEnvList,
                &pReq->m_specialEnvListSize,
                pReq->m_pHeader->m_cntSpecialEnv ) == -1 )
        return -1;
    if ( (pReq->m_envListSize < pReq->m_pHeader->m_cntEnv )&&
            allocateEnvList( &pReq->m_pEnvList, &pReq->m_envListSize,
                pReq->m_pHeader->m_cntEnv ) == -1 )
        return -1;

    if ( parseEnv( pReq->m_pSpecialEnvList,
                pReq->m_pHeader->m_cntSpecialEnv,
                &pBegin, pEnd ) == -1 )
        return -1;
    if ( parseEnv( pReq->m_pEnvList, pReq->m_pHeader->m_cntEnv,
                &pBegin, pEnd ) == -1 )
        return -1;
    if (pReq->m_pHeader->m_scriptFileOff < 0
        || pReq->m_pHeader->m_scriptFileOff >= totalLen
        || pReq->m_pHeader->m_scriptNameOff < 0
        || pReq->m_pHeader->m_scriptNameOff >= totalLen
        || pReq->m_pHeader->m_queryStringOff < 0
        || pReq->m_pHeader->m_queryStringOff >= totalLen
        || pReq->m_pHeader->m_requestMethodOff < 0
        || pReq->m_pHeader->m_requestMethodOff >= totalLen)
    {
        lsapi_log("Bad request header - ERROR#1\n");
        return -1;
    }
    pReq->m_pScriptFile     = pReq->m_pReqBuf + pReq->m_pHeader->m_scriptFileOff;
    pReq->m_pScriptName     = pReq->m_pReqBuf + pReq->m_pHeader->m_scriptNameOff;
    pReq->m_pQueryString    = pReq->m_pReqBuf + pReq->m_pHeader->m_queryStringOff;
    pReq->m_pRequestMethod  = pReq->m_pReqBuf + pReq->m_pHeader->m_requestMethodOff;

    pBegin = pReq->m_pReqBuf + (( pBegin - pReq->m_pReqBuf + 7 ) & (~0x7));
    pReq->m_pHeaderIndex = ( struct lsapi_http_header_index * )pBegin;
    pBegin += sizeof( struct lsapi_http_header_index );

    pReq->m_pUnknownHeader = (struct lsapi_header_offset *)pBegin;
    pBegin += sizeof( struct lsapi_header_offset) *
                    pReq->m_pHeader->m_cntUnknownHeaders;

    pReq->m_pHttpHeader = pBegin;
    pBegin += pReq->m_pHeader->m_httpHeaderLen;
    if ( pBegin != pEnd )
    {
        lsapi_log("Request header does match total size, total: %d, "
                 "real: %ld\n", totalLen, pBegin - pReq->m_pReqBuf );
        return -1;
    }
    if ( shouldFixEndian )
    {
        fixHeaderIndexEndian( pReq );
    }

    if (validateHeaders(pReq) == -1)
    {
        lsapi_log("Bad request header - ERROR#2\n");
        return -1;
    }

    pReq->m_reqBodyLen = pReq->m_pHeader->m_reqBodyLen;
    if ( pReq->m_reqBodyLen == -2 )
    {
        parseContentLenFromHeader(pReq);
    }

    return 0;
}


//OPTIMIZATION
static char s_accept_notify = 0;
static char s_schedule_notify = 0;
static char s_notify_scheduled = 0;
static char s_notified_pid = 0;

static struct lsapi_packet_header s_ack = {'L', 'S',
                LSAPI_REQ_RECEIVED, LSAPI_ENDIAN, {LSAPI_PACKET_HEADER_LEN} };
static struct lsapi_packet_header s_conn_close_pkt = {'L', 'S',
                LSAPI_CONN_CLOSE, LSAPI_ENDIAN, {LSAPI_PACKET_HEADER_LEN} };


static inline int send_notification_pkt( int fd, struct lsapi_packet_header *pkt )
{
    if ( write( fd, pkt, LSAPI_PACKET_HEADER_LEN ) < LSAPI_PACKET_HEADER_LEN )
        return -1;
    return 0;
}


static inline int send_req_received_notification( int fd )
{
    return send_notification_pkt(fd, &s_ack);
}


static inline int send_conn_close_notification( int fd )
{
    return send_notification_pkt(fd, &s_conn_close_pkt);
}


//static void lsapi_sigalarm( int sig )
//{
//    if ( s_notify_scheduled )
//    {
//        s_notify_scheduled = 0;
//        if ( g_req.m_fd != -1 )
//            write_req_received_notification( g_req.m_fd );
//    }
//}


static inline int lsapi_schedule_notify(void)
{
    if ( !s_notify_scheduled )
    {
        alarm( 2 );
        s_notify_scheduled = 1;
    }
    return 0;
}


static inline int notify_req_received( int fd )
{
    if ( s_schedule_notify )
        return lsapi_schedule_notify();
    return send_req_received_notification( fd );

}


static inline int lsapi_notify_pid( int fd )
{
    char achBuf[16];
    lsapi_buildPacketHeader( (struct lsapi_packet_header *)achBuf, LSAPI_STDERR_STREAM,
                        8 + LSAPI_PACKET_HEADER_LEN );
    memmove( &achBuf[8], "\0PID", 4 );
    *((int *)&achBuf[12]) = getpid();

    if ( write( fd, achBuf, 16 ) < 16 )
        return -1;
    return 0;
}

static int readReq( LSAPI_Request * pReq )
{
    int len;
    int packetLen;
    if ( !pReq )
        return -1;
    if ( pReq->m_reqBufSize < 8192 )
    {
        if ( allocateBuf( pReq, 8192 ) == -1 )
            return -1;
    }

    while ( pReq->m_bufRead < LSAPI_PACKET_HEADER_LEN )
    {
        len = lsapi_read( pReq->m_fd, pReq->m_pReqBuf, pReq->m_reqBufSize );
        if ( len <= 0 )
            return -1;
        pReq->m_bufRead += len;
    }
    pReq->m_reqState = LSAPI_ST_REQ_HEADER;

    packetLen = verifyHeader( &pReq->m_pHeader->m_pktHeader, LSAPI_BEGIN_REQUEST );
    if ( packetLen < 0 )
    {
        lsapi_log("packetLen < 0\n");
        return -1;
    }
    if ( packetLen > LSAPI_MAX_HEADER_LEN )
    {
        lsapi_log("packetLen > %d\n", LSAPI_MAX_HEADER_LEN );
        return -1;
    }

    if ( packetLen + 1024 > pReq->m_reqBufSize )
    {
        if ( allocateBuf( pReq, packetLen + 1024 ) == -1 )
            return -1;
    }
    while( packetLen > pReq->m_bufRead )
    {
        len = lsapi_read( pReq->m_fd, pReq->m_pReqBuf + pReq->m_bufRead, packetLen - pReq->m_bufRead );
        if ( len <= 0 )
            return -1;
        pReq->m_bufRead += len;
    }
    if ( parseRequest( pReq, packetLen ) < 0 )
    {
        lsapi_log("ParseRequest error\n");
        return -1;
    }

    pReq->m_reqState = LSAPI_ST_REQ_BODY | LSAPI_ST_RESP_HEADER;

    if ( !s_uid )
    {
        if ( lsapi_changeUGid( pReq ) )
            return -1;
        memset(s_secret, 0, sizeof(s_secret));
    }
    pReq->m_bufProcessed = packetLen;

    //OPTIMIZATION
    if ( !s_accept_notify && !s_notified_pid )
        return notify_req_received( pReq->m_fd );
    else
    {
        s_notified_pid = 0;
        return 0;
    }
}


int LSAPI_Init(void)
{
    if ( !g_inited )
    {
        s_uid = geteuid();
        s_secret[0] = 0;
        lsapi_signal(SIGPIPE, lsapi_sigpipe);
        lsapi_signal(SIGUSR1, lsapi_siguser1);

#if defined(SIGXFSZ) && defined(SIG_IGN)
        signal(SIGXFSZ, SIG_IGN);
#endif
        /* let STDOUT function as STDERR,
           just in case writing to STDOUT directly */
        dup2( 2, 1 );
        if ( LSAPI_InitRequest( &g_req, LSAPI_SOCK_FILENO ) == -1 )
            return -1;
        g_inited = 1;
        s_ppid = getppid();
        void *pthread_lib = dlopen("libpthread.so", RTLD_LAZY);
        if (pthread_lib)
            pthread_atfork_func = dlsym(pthread_lib, "pthread_atfork");

    }
    return 0;
}


void LSAPI_Stop(void)
{
    g_running = 0;
}


int LSAPI_IsRunning(void)
{
    return g_running;
}


void LSAPI_Register_Pgrp_Timer_Callback(LSAPI_On_Timer_pf cb)
{
    s_proc_group_timer_cb = cb;
}


int LSAPI_InitRequest( LSAPI_Request * pReq, int fd )
{
    int newfd;
    if ( !pReq )
        return -1;
    memset( pReq, 0, sizeof( LSAPI_Request ) );
    if ( allocateIovec( pReq, 16 ) == -1 )
        return -1;
    pReq->m_pRespBuf = pReq->m_pRespBufPos = (char *)malloc( LSAPI_RESP_BUF_SIZE );
    if ( !pReq->m_pRespBuf )
        return -1;
    pReq->m_pRespBufEnd = pReq->m_pRespBuf + LSAPI_RESP_BUF_SIZE;
    pReq->m_pIovecCur = pReq->m_pIovecToWrite = pReq->m_pIovec + 1;
    pReq->m_respPktHeaderEnd = &pReq->m_respPktHeader[5];
    if ( allocateRespHeaderBuf( pReq, LSAPI_INIT_RESP_HEADER_LEN ) == -1 )
        return -1;

    if ( fd == STDIN_FILENO )
    {
        fd = dup( fd );
        newfd = open( "/dev/null", O_RDWR );
        dup2( newfd, STDIN_FILENO );
    }

    if ( isPipe( fd ) )
    {
        pReq->m_fdListen = -1;
        pReq->m_fd = fd;
    }
    else
    {
        pReq->m_fdListen = fd;
        pReq->m_fd = -1;
        lsapi_set_nblock( fd, 1 );
    }
    return 0;
}


int LSAPI_Is_Listen( void )
{
    return LSAPI_Is_Listen_r( &g_req );
}


int LSAPI_Is_Listen_r( LSAPI_Request * pReq)
{
    return pReq->m_fdListen != -1;
}


int LSAPI_Accept_r( LSAPI_Request * pReq )
{
    char        achPeer[128];
    socklen_t   len;
    int         nodelay = 1;

    if ( !pReq )
        return -1;
    if ( LSAPI_Finish_r( pReq ) == -1 )
        return -1;
    lsapi_set_nblock( pReq->m_fdListen , 0 );
    while( g_running )
    {
        if ( pReq->m_fd == -1 )
        {
            if ( pReq->m_fdListen != -1)
            {
                len = sizeof( achPeer );
                pReq->m_fd = accept( pReq->m_fdListen,
                            (struct sockaddr *)&achPeer, &len );
                if ( pReq->m_fd == -1 )
                {
                    if (( errno == EINTR )||( errno == EAGAIN))
                        continue;
                    else
                        return -1;
                }
                else
                {
                    if (s_worker_status)
                        __atomic_store_n(&s_worker_status->m_state,
                                       LSAPI_STATE_CONNECTED, __ATOMIC_SEQ_CST);
                    if (s_busy_workers)
                        __atomic_fetch_add(s_busy_workers, 1, __ATOMIC_SEQ_CST);
                    lsapi_set_nblock( pReq->m_fd , 0 );
                    if (((struct sockaddr *)&achPeer)->sa_family == AF_INET )
                    {
                        setsockopt(pReq->m_fd, IPPROTO_TCP, TCP_NODELAY,
                                   (char *)&nodelay, sizeof(nodelay));
                    }
                    //init_conn_key( pReq->m_fd );
                    //OPTIMIZATION
                    if ( s_accept_notify )
                        if ( notify_req_received( pReq->m_fd ) == -1 )
                                return -1;
                }
            }
            else
                return -1;
        }
        if ( !readReq( pReq ) )
            break;
        //abort();
        lsapi_close_connection(pReq);
        LSAPI_Reset_r( pReq );
    }
    return 0;
}


static struct lsapi_packet_header   finish_close[2] =
{
    {'L', 'S', LSAPI_RESP_END, LSAPI_ENDIAN, {LSAPI_PACKET_HEADER_LEN} },
    {'L', 'S', LSAPI_CONN_CLOSE, LSAPI_ENDIAN, {LSAPI_PACKET_HEADER_LEN} }
};


int LSAPI_Finish_r( LSAPI_Request * pReq )
{
    /* finish req body */
    if ( !pReq )
        return -1;
    if (pReq->m_reqState)
    {
        if ( pReq->m_fd != -1 )
        {
            if ( pReq->m_reqState & LSAPI_ST_RESP_HEADER )
            {
                LSAPI_FinalizeRespHeaders_r( pReq );
            }
            if ( pReq->m_pRespBufPos != pReq->m_pRespBuf )
            {
                Flush_RespBuf_r( pReq );
            }

            pReq->m_pIovecCur->iov_base = (void *)finish_close;
            pReq->m_pIovecCur->iov_len  = LSAPI_PACKET_HEADER_LEN;
            pReq->m_totalLen += LSAPI_PACKET_HEADER_LEN;
            ++pReq->m_pIovecCur;
            LSAPI_Flush_r( pReq );
        }
        LSAPI_Reset_r( pReq );
    }
    return 0;
}


int LSAPI_End_Response_r(LSAPI_Request * pReq)
{
    if (!pReq)
        return -1;
    if (pReq->m_reqState & LSAPI_ST_BACKGROUND)
        return 0;
    if (pReq->m_reqState)
    {
        if ( pReq->m_fd != -1 )
        {
            if ( pReq->m_reqState & LSAPI_ST_RESP_HEADER )
            {
                if ( pReq->m_pRespHeaderBufPos <= pReq->m_pRespHeaderBuf )
                    return 0;

                LSAPI_FinalizeRespHeaders_r( pReq );
            }
            if ( pReq->m_pRespBufPos != pReq->m_pRespBuf )
            {
                Flush_RespBuf_r( pReq );
            }

            pReq->m_pIovecCur->iov_base = (void *)finish_close;
            pReq->m_pIovecCur->iov_len  = LSAPI_PACKET_HEADER_LEN << 1;
            pReq->m_totalLen += LSAPI_PACKET_HEADER_LEN << 1;
            ++pReq->m_pIovecCur;
            LSAPI_Flush_r( pReq );
            lsapi_close_connection(pReq);
        }
        pReq->m_reqState |= LSAPI_ST_BACKGROUND;
    }
    return 0;
}


void LSAPI_Reset_r( LSAPI_Request * pReq )
{
    pReq->m_pRespBufPos         = pReq->m_pRespBuf;
    pReq->m_pIovecCur           = pReq->m_pIovecToWrite = pReq->m_pIovec + 1;
    pReq->m_pRespHeaderBufPos   = pReq->m_pRespHeaderBuf;

    memset( &pReq->m_pHeaderIndex, 0,
            (char *)(pReq->m_respHeaderLen) - (char *)&pReq->m_pHeaderIndex );
}


int LSAPI_Release_r( LSAPI_Request * pReq )
{
    if ( pReq->m_pReqBuf )
        free( pReq->m_pReqBuf );
    if ( pReq->m_pSpecialEnvList )
        free( pReq->m_pSpecialEnvList );
    if ( pReq->m_pEnvList )
        free( pReq->m_pEnvList );
    if ( pReq->m_pRespHeaderBuf )
        free( pReq->m_pRespHeaderBuf );
    return 0;
}


char * LSAPI_GetHeader_r( LSAPI_Request * pReq, int headerIndex )
{
    int off;
    if ( !pReq || ((unsigned int)headerIndex > H_TRANSFER_ENCODING) )
        return NULL;
    off = pReq->m_pHeaderIndex->m_headerOff[ headerIndex ];
    if ( !off )
        return NULL;
    if ( *(pReq->m_pHttpHeader + off
        + pReq->m_pHeaderIndex->m_headerLen[ headerIndex ]) )
    {
        *( pReq->m_pHttpHeader + off
            + pReq->m_pHeaderIndex->m_headerLen[ headerIndex ]) = 0;
    }
    return pReq->m_pHttpHeader + off;
}


static int readBodyToReqBuf( LSAPI_Request * pReq )
{
    off_t bodyLeft;
    ssize_t len = pReq->m_bufRead - pReq->m_bufProcessed;
    if ( len > 0 )
        return len;
    pReq->m_bufRead = pReq->m_bufProcessed = pReq->m_pHeader->m_pktHeader.m_packetLen.m_iLen;

    bodyLeft = pReq->m_reqBodyLen - pReq->m_reqBodyRead;
    len = pReq->m_reqBufSize - pReq->m_bufRead;
    if ( len < 0 )
        return -1;
    if ( len > bodyLeft )
        len = bodyLeft;

    len = lsapi_read( pReq->m_fd, pReq->m_pReqBuf + pReq->m_bufRead, len );
    if ( len > 0 )
        pReq->m_bufRead += len;
    return len;
}


int LSAPI_ReqBodyGetChar_r( LSAPI_Request * pReq )
{
    if (!pReq || (pReq->m_fd ==-1) )
        return EOF;
    if ( pReq->m_bufProcessed >= pReq->m_bufRead )
    {
        if ( readBodyToReqBuf( pReq ) <= 0 )
            return EOF;
    }
    ++pReq->m_reqBodyRead;
    return (unsigned char)*(pReq->m_pReqBuf + pReq->m_bufProcessed++);
}


int LSAPI_ReqBodyGetLine_r( LSAPI_Request * pReq, char * pBuf, size_t bufLen, int *getLF )
{
    ssize_t len;
    ssize_t left;
    char * pBufEnd = pBuf + bufLen - 1;
    char * pBufCur = pBuf;
    char * pCur;
    char * p;
    if (!pReq || pReq->m_fd == -1 || !pBuf || !getLF)
        return -1;
    *getLF = 0;
    while( (left = pBufEnd - pBufCur ) > 0 )
    {

        len = pReq->m_bufRead - pReq->m_bufProcessed;
        if ( len <= 0 )
        {
            if ( (len = readBodyToReqBuf( pReq )) <= 0 )
            {
                *getLF = 1;
                break;
            }
        }
        if ( len > left )
            len = left;
        pCur = pReq->m_pReqBuf + pReq->m_bufProcessed;
        p = memchr( pCur, '\n', len );
        if ( p )
            len = p - pCur + 1;
        memmove( pBufCur, pCur, len );
        pBufCur += len;
        pReq->m_bufProcessed += len;

        pReq->m_reqBodyRead += len;

        if ( p )
        {
            *getLF = 1;
            break;
        }
    }
    *pBufCur = 0;

    return pBufCur - pBuf;
}


ssize_t LSAPI_ReadReqBody_r( LSAPI_Request * pReq, char * pBuf, size_t bufLen )
{
    ssize_t len;
    off_t total;
    /* char *pOldBuf = pBuf; */
    if (!pReq || pReq->m_fd == -1 || !pBuf || (ssize_t)bufLen < 0)
        return -1;

    total = pReq->m_reqBodyLen - pReq->m_reqBodyRead;

    if ( total <= 0 )
        return 0;
    if ( total < (ssize_t)bufLen )
        bufLen = total;

    total = 0;
    len = pReq->m_bufRead - pReq->m_bufProcessed;
    if ( len > 0 )
    {
        if ( len > (ssize_t)bufLen )
            len = bufLen;
        memmove( pBuf, pReq->m_pReqBuf + pReq->m_bufProcessed, len );
        pReq->m_bufProcessed += len;
        total += len;
        pBuf += len;
        bufLen -= len;
    }
    while( bufLen > 0 )
    {
        len = lsapi_read( pReq->m_fd, pBuf, bufLen );
        if ( len > 0 )
        {
            total += len;
            pBuf += len;
            bufLen -= len;
        }
        else if ( len <= 0 )
        {
            if ( !total)
                return -1;
            break;
        }
    }
    pReq->m_reqBodyRead += total;
    return total;

}


ssize_t LSAPI_Write_r( LSAPI_Request * pReq, const char * pBuf, size_t len )
{
    struct lsapi_packet_header * pHeader;
    const char * pEnd;
    const char * p;
    ssize_t bufLen;
    ssize_t toWrite;
    ssize_t packetLen;
    int skip = 0;

    if (!pReq || !pBuf)
        return -1;
    if (pReq->m_reqState & LSAPI_ST_BACKGROUND)
        return len;
    if (pReq->m_fd == -1)
        return -1;
    if ( pReq->m_reqState & LSAPI_ST_RESP_HEADER )
    {
        LSAPI_FinalizeRespHeaders_r( pReq );
/*
        if ( *pBuf == '\r' )
        {
            ++skip;
        }
        if ( *pBuf == '\n' )
        {
            ++skip;
        }
*/
    }
    pReq->m_reqState |= LSAPI_ST_RESP_BODY;

    if ( ((ssize_t)len - skip) < pReq->m_pRespBufEnd - pReq->m_pRespBufPos )
    {
        memmove( pReq->m_pRespBufPos, pBuf + skip, len - skip );
        pReq->m_pRespBufPos += len - skip;
        return len;
    }


    pHeader = pReq->m_respPktHeader;
    p       = pBuf + skip;
    pEnd    = pBuf + len;
    bufLen  = pReq->m_pRespBufPos - pReq->m_pRespBuf;

    while( ( toWrite = pEnd - p ) > 0 )
    {
        packetLen = toWrite + bufLen;
        if ( LSAPI_MAX_DATA_PACKET_LEN < packetLen)
        {
            packetLen = LSAPI_MAX_DATA_PACKET_LEN;
            toWrite = packetLen - bufLen;
        }

        lsapi_buildPacketHeader( pHeader, LSAPI_RESP_STREAM,
                            packetLen + LSAPI_PACKET_HEADER_LEN );
        pReq->m_totalLen += packetLen + LSAPI_PACKET_HEADER_LEN;

        pReq->m_pIovecCur->iov_base = (void *)pHeader;
        pReq->m_pIovecCur->iov_len  = LSAPI_PACKET_HEADER_LEN;
        ++pReq->m_pIovecCur;
        ++pHeader;
        if ( bufLen > 0 )
        {
            pReq->m_pIovecCur->iov_base = (void *)pReq->m_pRespBuf;
            pReq->m_pIovecCur->iov_len  = bufLen;
            pReq->m_pRespBufPos = pReq->m_pRespBuf;
            ++pReq->m_pIovecCur;
            bufLen = 0;
        }

        pReq->m_pIovecCur->iov_base = (void *)p;
        pReq->m_pIovecCur->iov_len  = toWrite;
        ++pReq->m_pIovecCur;
        p += toWrite;

        if ( pHeader >= pReq->m_respPktHeaderEnd - 1)
        {
            if ( LSAPI_Flush_r( pReq ) == -1 )
                return -1;
            pHeader = pReq->m_respPktHeader;
        }
    }
    if ( pHeader != pReq->m_respPktHeader )
        if ( LSAPI_Flush_r( pReq ) == -1 )
            return -1;
    return p - pBuf;
}


#if defined(__FreeBSD__ )
ssize_t gsendfile( int fdOut, int fdIn, off_t* off, size_t size )
{
    ssize_t ret;
    off_t written;
    ret = sendfile( fdIn, fdOut, *off, size, NULL, &written, 0 );
    if ( written > 0 )
    {
        ret = written;
        *off += ret;
    }
    return ret;
}
#endif

#if defined(__OpenBSD__) || defined(__NetBSD__)
ssize_t gsendfile( int fdOut, int fdIn, off_t* off, size_t size )
{
    ssize_t ret;
    off_t written = 0;
    const size_t bufsiz = 16384;
    unsigned char in[bufsiz] = {0};

    if (lseek(fdIn, *off, SEEK_SET) == -1) {
        return -1;
    }

    while (size > 0) {
        size_t tor = size > sizeof(in) ? sizeof(in) : size;
        ssize_t c = read(fdIn, in, tor);
        if (c <= 0) {
            goto end;
        }

        ssize_t w = write(fdOut, in, c);
        if (w > 0)
            written += w;

        if (w != c) {
            goto end;
        }
        size -= c;
    }

end:
    *off += written;
    return 0;
}
#endif


#if defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
ssize_t gsendfile( int fdOut, int fdIn, off_t* off, size_t size )
{
    ssize_t ret;
    off_t len = size;
    ret = sendfile( fdIn, fdOut, *off, &len, NULL, 0 );
    if (( ret == 0 )&&( len > 0 ))
    {
        ret = len;
        *off += len;
    }
    return ret;
}
#endif


#if defined(sun) || defined(__sun)
#include <sys/sendfile.h>
ssize_t gsendfile( int fdOut, int fdIn, off_t *off, size_t size )
{
    int n = 0 ;
    sendfilevec_t vec[1];

    vec[n].sfv_fd   = fdIn;
    vec[n].sfv_flag = 0;
    vec[n].sfv_off  = *off;
    vec[n].sfv_len  = size;
    ++n;

    size_t written;
    ssize_t ret = sendfilev( fdOut, vec, n, &written );
    if (( !ret )||( errno == EAGAIN ))
        ret = written;
    if ( ret > 0 )
        *off += ret;
    return ret;
}
#endif


#if defined(linux) || defined(__linux) || defined(__linux__) || \
    defined(__gnu_linux__)
#include <sys/sendfile.h>
#define gsendfile sendfile
#endif


#if defined(HPUX)
ssize_t gsendfile( int fdOut, int fdIn, off_t * off, size_t size )
{
    return sendfile( fdOut, fdIn, off, size, NULL, 0 );
}
#endif


ssize_t LSAPI_sendfile_r( LSAPI_Request * pReq, int fdIn, off_t* off, size_t size )
{
    struct lsapi_packet_header * pHeader = pReq->m_respPktHeader;
    if ( !pReq || (pReq->m_fd == -1) || fdIn == -1 )
        return -1;
    if ( pReq->m_reqState & LSAPI_ST_RESP_HEADER )
    {
        LSAPI_FinalizeRespHeaders_r( pReq );
    }
    pReq->m_reqState |= LSAPI_ST_RESP_BODY;

    LSAPI_Flush_r(pReq);

    lsapi_buildPacketHeader( pHeader, LSAPI_RESP_STREAM,
                            size + LSAPI_PACKET_HEADER_LEN );


    if (write(pReq->m_fd,  (const char *) pHeader, LSAPI_PACKET_HEADER_LEN ) != LSAPI_PACKET_HEADER_LEN)
        return -1;

    return gsendfile( pReq->m_fd, fdIn, off, size );
}


void Flush_RespBuf_r( LSAPI_Request * pReq )
{
    struct lsapi_packet_header * pHeader = pReq->m_respPktHeader;
    int bufLen = pReq->m_pRespBufPos - pReq->m_pRespBuf;
    pReq->m_reqState |= LSAPI_ST_RESP_BODY;
    lsapi_buildPacketHeader( pHeader, LSAPI_RESP_STREAM,
                        bufLen + LSAPI_PACKET_HEADER_LEN );
    pReq->m_totalLen += bufLen + LSAPI_PACKET_HEADER_LEN;

    pReq->m_pIovecCur->iov_base = (void *)pHeader;
    pReq->m_pIovecCur->iov_len  = LSAPI_PACKET_HEADER_LEN;
    ++pReq->m_pIovecCur;
    ++pHeader;
    if ( bufLen > 0 )
    {
        pReq->m_pIovecCur->iov_base = (void *)pReq->m_pRespBuf;
        pReq->m_pIovecCur->iov_len  = bufLen;
        pReq->m_pRespBufPos = pReq->m_pRespBuf;
        ++pReq->m_pIovecCur;
        bufLen = 0;
    }
}


int LSAPI_Flush_r( LSAPI_Request * pReq )
{
    int ret = 0;
    int n;
    if ( !pReq )
        return -1;
    n = pReq->m_pIovecCur - pReq->m_pIovecToWrite;
    if (( 0 == n )&&( pReq->m_pRespBufPos == pReq->m_pRespBuf ))
        return 0;
    if ( pReq->m_fd == -1 )
    {
        pReq->m_pRespBufPos = pReq->m_pRespBuf;
        pReq->m_totalLen = 0;
        pReq->m_pIovecCur = pReq->m_pIovecToWrite = pReq->m_pIovec;
        return -1;
    }
    if ( pReq->m_reqState & LSAPI_ST_RESP_HEADER )
    {
        LSAPI_FinalizeRespHeaders_r( pReq );
    }
    if ( pReq->m_pRespBufPos != pReq->m_pRespBuf )
    {
        Flush_RespBuf_r( pReq );
    }

    n = pReq->m_pIovecCur - pReq->m_pIovecToWrite;
    if ( n > 0 )
    {

        ret = lsapi_writev( pReq->m_fd, &pReq->m_pIovecToWrite,
                  n, pReq->m_totalLen );
        if ( ret < pReq->m_totalLen )
        {
            lsapi_close_connection(pReq);
            ret = -1;
        }
        pReq->m_totalLen = 0;
        pReq->m_pIovecCur = pReq->m_pIovecToWrite = pReq->m_pIovec;
    }
    return ret;
}


ssize_t LSAPI_Write_Stderr_r( LSAPI_Request * pReq, const char * pBuf, size_t len )
{
    struct lsapi_packet_header header;
    const char * pEnd;
    const char * p;
    ssize_t packetLen;
    ssize_t totalLen;
    int ret;
    struct iovec iov[2];
    struct iovec *pIov;

    if ( !pReq )
        return -1;
    if (s_stderr_log_path || pReq->m_fd == -1 || pReq->m_fd == pReq->m_fdListen)
        return write( 2, pBuf, len );
    if ( pReq->m_pRespBufPos != pReq->m_pRespBuf )
    {
        LSAPI_Flush_r( pReq );
    }

    p       = pBuf;
    pEnd    = pBuf + len;

    while( ( packetLen = pEnd - p ) > 0 )
    {
        if ( LSAPI_MAX_DATA_PACKET_LEN < packetLen)
        {
            packetLen = LSAPI_MAX_DATA_PACKET_LEN;
        }

        lsapi_buildPacketHeader( &header, LSAPI_STDERR_STREAM,
                            packetLen + LSAPI_PACKET_HEADER_LEN );
        totalLen = packetLen + LSAPI_PACKET_HEADER_LEN;

        iov[0].iov_base = (void *)&header;
        iov[0].iov_len  = LSAPI_PACKET_HEADER_LEN;

        iov[1].iov_base = (void *)p;
        iov[1].iov_len  = packetLen;
        p += packetLen;
        pIov = iov;
        ret = lsapi_writev( pReq->m_fd, &pIov,
                  2, totalLen );
        if ( ret < totalLen )
        {
            lsapi_close_connection(pReq);
            ret = -1;
        }
    }
    return p - pBuf;
}


static char * GetHeaderVar( LSAPI_Request * pReq, const char * name )
{
    int i;
    char * pValue;
    for( i = 0; i < H_TRANSFER_ENCODING; ++i )
    {
        if ( pReq->m_pHeaderIndex->m_headerOff[i] )
        {
            if ( strcmp( name, CGI_HEADERS[i] ) == 0 )
            {
                pValue = pReq->m_pHttpHeader
                         + pReq->m_pHeaderIndex->m_headerOff[i];
                if ( *(pValue + pReq->m_pHeaderIndex->m_headerLen[i]) != '\0')
                {
                    *(pValue + pReq->m_pHeaderIndex->m_headerLen[i]) = '\0';
                }
                return pValue;
            }
        }
    }
    if ( pReq->m_pHeader->m_cntUnknownHeaders > 0 )
    {
        const char *p;
        char *pKey;
        char *pKeyEnd;
        int  keyLen;
        struct lsapi_header_offset * pCur, *pEnd;
        pCur = pReq->m_pUnknownHeader;
        pEnd = pCur + pReq->m_pHeader->m_cntUnknownHeaders;
        while( pCur < pEnd )
        {
            pKey = pReq->m_pHttpHeader + pCur->nameOff;
            keyLen = pCur->nameLen;
            pKeyEnd = pKey + keyLen;
            p = &name[5];

            while(( pKey < pKeyEnd )&&( *p ))
            {
                char ch = toupper( *pKey );
                if ((ch != *p )||(( *p == '_' )&&( ch != '-')))
                    break;
                ++p; ++pKey;
            }
            if (( pKey == pKeyEnd )&& (!*p ))
            {
                pValue = pReq->m_pHttpHeader + pCur->valueOff;

                if ( *(pValue + pCur->valueLen) != '\0')
                {
                    *(pValue + pCur->valueLen) = '\0';
                }
                return pValue;
            }
            ++pCur;
        }
    }
    return NULL;
}


char * LSAPI_GetEnv_r( LSAPI_Request * pReq, const char * name )
{
    struct LSAPI_key_value_pair * pBegin = pReq->m_pEnvList;
    struct LSAPI_key_value_pair * pEnd = pBegin + pReq->m_pHeader->m_cntEnv;
    if ( !pReq || !name )
        return NULL;
    if ( strncmp( name, "HTTP_", 5 ) == 0 )
    {
        return GetHeaderVar( pReq, name );
    }
    while( pBegin < pEnd )
    {
        if ( strcmp( name, pBegin->pKey ) == 0 )
            return pBegin->pValue;
        ++pBegin;
    }
    return NULL;
}


struct _headerInfo
{
    const char * _name;
    int          _nameLen;
    const char * _value;
    int          _valueLen;
};


int compareValueLocation(const void * v1, const void *v2 )
{
    return ((const struct _headerInfo *)v1)->_value -
           ((const struct _headerInfo *)v2)->_value;
}


int LSAPI_ForeachOrgHeader_r( LSAPI_Request * pReq,
            LSAPI_CB_EnvHandler fn, void * arg )
{
    int i;
    int len = 0;
    char * pValue;
    int ret;
    int count = 0;
    struct _headerInfo headers[512];

    if ( !pReq || !fn )
        return -1;

    if ( !pReq->m_pHeaderIndex )
        return 0;

    for( i = 0; i < H_TRANSFER_ENCODING; ++i )
    {
        if ( pReq->m_pHeaderIndex->m_headerOff[i] )
        {
            len = pReq->m_pHeaderIndex->m_headerLen[i];
            pValue = pReq->m_pHttpHeader + pReq->m_pHeaderIndex->m_headerOff[i];
            *(pValue + len ) = 0;
            headers[count]._name = HTTP_HEADERS[i];
            headers[count]._nameLen = HTTP_HEADER_LEN[i];
            headers[count]._value = pValue;
            headers[count]._valueLen = len;
            ++count;

            //ret = (*fn)( HTTP_HEADERS[i], HTTP_HEADER_LEN[i],
            //            pValue, len, arg );
            //if ( ret <= 0 )
            //    return ret;
        }
    }
    if ( pReq->m_pHeader->m_cntUnknownHeaders > 0 )
    {
        char *pKey;
        int  keyLen;
        struct lsapi_header_offset * pCur, *pEnd;
        pCur = pReq->m_pUnknownHeader;
        pEnd = pCur + pReq->m_pHeader->m_cntUnknownHeaders;
        while( pCur < pEnd )
        {
            pKey = pReq->m_pHttpHeader + pCur->nameOff;
            keyLen = pCur->nameLen;
            *(pKey + keyLen ) = 0;

            pValue = pReq->m_pHttpHeader + pCur->valueOff;
            *(pValue + pCur->valueLen ) = 0;
            headers[count]._name = pKey;
            headers[count]._nameLen = keyLen;
            headers[count]._value = pValue;
            headers[count]._valueLen = pCur->valueLen;
            ++count;
            if ( count == 512 )
                break;
            //ret = (*fn)( pKey, keyLen,
            //            pValue, pCur->valueLen, arg );
            //if ( ret <= 0 )
            //    return ret;
            ++pCur;
        }
    }
    qsort( headers, count, sizeof( struct _headerInfo ), compareValueLocation );
    for( i = 0; i < count; ++i )
    {
        ret = (*fn)( headers[i]._name, headers[i]._nameLen,
                    headers[i]._value, headers[i]._valueLen, arg );
        if ( ret <= 0 )
            return ret;
    }
    return count;
}


int LSAPI_ForeachHeader_r( LSAPI_Request * pReq,
            LSAPI_CB_EnvHandler fn, void * arg )
{
    int i;
    int len = 0;
    char * pValue;
    int ret;
    int count = 0;
    if ( !pReq || !fn )
        return -1;
    for( i = 0; i < H_TRANSFER_ENCODING; ++i )
    {
        if ( pReq->m_pHeaderIndex->m_headerOff[i] )
        {
            len = pReq->m_pHeaderIndex->m_headerLen[i];
            pValue = pReq->m_pHttpHeader + pReq->m_pHeaderIndex->m_headerOff[i];
            *(pValue + len ) = 0;
            ret = (*fn)( CGI_HEADERS[i], CGI_HEADER_LEN[i],
                        pValue, len, arg );
            ++count;
            if ( ret <= 0 )
                return ret;
        }
    }
    if ( pReq->m_pHeader->m_cntUnknownHeaders > 0 )
    {
        char achHeaderName[256];
        char *p;
        char *pKey;
        char *pKeyEnd ;
        int  keyLen;
        struct lsapi_header_offset * pCur, *pEnd;
        pCur = pReq->m_pUnknownHeader;
        pEnd = pCur + pReq->m_pHeader->m_cntUnknownHeaders;
        while( pCur < pEnd )
        {
            pKey = pReq->m_pHttpHeader + pCur->nameOff;
            keyLen = pCur->nameLen;
            if ( keyLen > 250 )
                keyLen = 250;
            pKeyEnd = pKey + keyLen;
            memcpy( achHeaderName, "HTTP_", 5 );
            p = &achHeaderName[5];

            while( pKey < pKeyEnd )
            {
                char ch = *pKey++;
                if ( ch == '-' )
                    *p++ = '_';
                else
                    *p++ = toupper( ch );
            }
            *p = 0;
            keyLen += 5;

            pValue = pReq->m_pHttpHeader + pCur->valueOff;
            *(pValue + pCur->valueLen ) = 0;
            ret = (*fn)( achHeaderName, keyLen,
                        pValue, pCur->valueLen, arg );
            if ( ret <= 0 )
                return ret;
            ++pCur;
        }
    }
    return count + pReq->m_pHeader->m_cntUnknownHeaders;
}


static int EnvForeach( struct LSAPI_key_value_pair * pEnv,
            int n, LSAPI_CB_EnvHandler fn, void * arg )
{
    struct LSAPI_key_value_pair * pEnd = pEnv + n;
    int ret;
    if ( !pEnv || !fn )
        return -1;
    while( pEnv < pEnd )
    {
        ret = (*fn)( pEnv->pKey, pEnv->keyLen,
                    pEnv->pValue, pEnv->valLen, arg );
        if ( ret <= 0 )
            return ret;
        ++pEnv;
    }
    return n;
}


int LSAPI_ForeachEnv_r( LSAPI_Request * pReq,
            LSAPI_CB_EnvHandler fn, void * arg )
{
    if ( !pReq || !fn )
        return -1;
    if ( pReq->m_pHeader->m_cntEnv > 0 )
    {
        return EnvForeach( pReq->m_pEnvList, pReq->m_pHeader->m_cntEnv,
                    fn, arg );
    }
    return 0;
}


int LSAPI_ForeachSpecialEnv_r( LSAPI_Request * pReq,
            LSAPI_CB_EnvHandler fn, void * arg )
{
    if ( !pReq || !fn )
        return -1;
    if ( pReq->m_pHeader->m_cntSpecialEnv > 0 )
    {
        return EnvForeach( pReq->m_pSpecialEnvList,
                pReq->m_pHeader->m_cntSpecialEnv,
                    fn, arg );
    }
    return 0;

}


int LSAPI_FinalizeRespHeaders_r( LSAPI_Request * pReq )
{
    if ( !pReq || !pReq->m_pIovec )
        return -1;
    if ( !( pReq->m_reqState & LSAPI_ST_RESP_HEADER ) )
        return 0;
    pReq->m_reqState &= ~LSAPI_ST_RESP_HEADER;
    if ( pReq->m_pRespHeaderBufPos > pReq->m_pRespHeaderBuf )
    {
        pReq->m_pIovecCur->iov_base = (void *)pReq->m_pRespHeaderBuf;
        pReq->m_pIovecCur->iov_len  = pReq->m_pRespHeaderBufPos - pReq->m_pRespHeaderBuf;
        pReq->m_totalLen += pReq->m_pIovecCur->iov_len;
        ++pReq->m_pIovecCur;
    }

    pReq->m_pIovec->iov_len  = sizeof( struct lsapi_resp_header)
            + pReq->m_respHeader.m_respInfo.m_cntHeaders * sizeof( short );
    pReq->m_totalLen += pReq->m_pIovec->iov_len;

    lsapi_buildPacketHeader( &pReq->m_respHeader.m_pktHeader,
                    LSAPI_RESP_HEADER, pReq->m_totalLen  );
    pReq->m_pIovec->iov_base = (void *)&pReq->m_respHeader;
    pReq->m_pIovecToWrite = pReq->m_pIovec;
    return 0;
}


int LSAPI_AppendRespHeader2_r( LSAPI_Request * pReq, const char * pHeaderName,
                              const char * pHeaderValue )
{
    int nameLen, valLen, len;
    if ( !pReq || !pHeaderName || !pHeaderValue )
        return -1;
    if ( pReq->m_reqState & LSAPI_ST_RESP_BODY )
        return -1;
    if ( pReq->m_respHeader.m_respInfo.m_cntHeaders >= LSAPI_MAX_RESP_HEADERS )
        return -1;
    nameLen = strlen( pHeaderName );
    valLen = strlen( pHeaderValue );
    if ( nameLen == 0 )
        return -1;
    while( nameLen > 0 )
    {
        char ch = *(pHeaderName + nameLen - 1 );
        if (( ch == '\n' )||( ch == '\r' ))
            --nameLen;
        else
            break;
    }
    if ( nameLen <= 0 )
        return 0;
    while( valLen > 0 )
    {
        char ch = *(pHeaderValue + valLen - 1 );
        if (( ch == '\n' )||( ch == '\r' ))
            --valLen;
        else
            break;
    }
    len = nameLen + valLen + 1;
    if ( len > LSAPI_RESP_HTTP_HEADER_MAX )
        return -1;

    if ( pReq->m_pRespHeaderBufPos + len + 1 > pReq->m_pRespHeaderBufEnd )
    {
        int newlen = pReq->m_pRespHeaderBufPos + len + 4096 - pReq->m_pRespHeaderBuf;
        newlen -= newlen % 4096;
        if ( allocateRespHeaderBuf( pReq, newlen ) == -1 )
            return -1;
    }
    memmove( pReq->m_pRespHeaderBufPos, pHeaderName, nameLen );
    pReq->m_pRespHeaderBufPos += nameLen;
    *pReq->m_pRespHeaderBufPos++ = ':';
    memmove( pReq->m_pRespHeaderBufPos, pHeaderValue, valLen );
    pReq->m_pRespHeaderBufPos += valLen;
    *pReq->m_pRespHeaderBufPos++ = 0;
    ++len;  /* add one byte padding for \0 */
    pReq->m_respHeaderLen[pReq->m_respHeader.m_respInfo.m_cntHeaders] = len;
    ++pReq->m_respHeader.m_respInfo.m_cntHeaders;
    return 0;
}


int LSAPI_AppendRespHeader_r( LSAPI_Request * pReq, const char * pBuf, int len )
{
    if ( !pReq || !pBuf || len <= 0 || len > LSAPI_RESP_HTTP_HEADER_MAX )
        return -1;
    if ( pReq->m_reqState & LSAPI_ST_RESP_BODY )
        return -1;
    if ( pReq->m_respHeader.m_respInfo.m_cntHeaders >= LSAPI_MAX_RESP_HEADERS )
        return -1;
    while( len > 0 )
    {
        char ch = *(pBuf + len - 1 );
        if (( ch == '\n' )||( ch == '\r' ))
            --len;
        else
            break;
    }
    if ( len <= 0 )
        return 0;
    if ( pReq->m_pRespHeaderBufPos + len + 1 > pReq->m_pRespHeaderBufEnd )
    {
        int newlen = pReq->m_pRespHeaderBufPos + len + 4096 - pReq->m_pRespHeaderBuf;
        newlen -= newlen % 4096;
        if ( allocateRespHeaderBuf( pReq, newlen ) == -1 )
            return -1;
    }
    memmove( pReq->m_pRespHeaderBufPos, pBuf, len );
    pReq->m_pRespHeaderBufPos += len;
    *pReq->m_pRespHeaderBufPos++ = 0;
    ++len;  /* add one byte padding for \0 */
    pReq->m_respHeaderLen[pReq->m_respHeader.m_respInfo.m_cntHeaders] = len;
    ++pReq->m_respHeader.m_respInfo.m_cntHeaders;
    return 0;
}


int LSAPI_CreateListenSock2( const struct sockaddr * pServerAddr, int backlog )
{
    int ret;
    int fd;
    int flag = 1;
    int addr_len;

    switch( pServerAddr->sa_family )
    {
    case AF_INET:
        addr_len = 16;
        break;
    case AF_INET6:
        addr_len = sizeof( struct sockaddr_in6 );
        break;
    case AF_UNIX:
        addr_len = sizeof( struct sockaddr_un );
        unlink( ((struct sockaddr_un *)pServerAddr)->sun_path );
        break;
    default:
        return -1;
    }

    fd = socket( pServerAddr->sa_family, SOCK_STREAM, 0 );
    if ( fd == -1 )
        return -1;

    fcntl( fd, F_SETFD, FD_CLOEXEC );

    if(setsockopt( fd, SOL_SOCKET, SO_REUSEADDR,
                (char *)( &flag ), sizeof(flag)) == 0)
    {
        ret = bind( fd, pServerAddr, addr_len );
        if ( !ret )
        {
            ret = listen( fd, backlog );
            if ( !ret )
                return fd;
        }
    }

    ret = errno;
    close(fd);
    errno = ret;
    return -1;
}


int LSAPI_ParseSockAddr( const char * pBind, struct sockaddr * pAddr )
{
    char achAddr[256];
    char * p = achAddr;
    char * pEnd;
    struct addrinfo *res, hints;
    int  doAddrInfo = 0;
    int port;

    if ( !pBind )
        return -1;

    while( isspace( *pBind ) )
        ++pBind;

    strncpy(achAddr, pBind, 255);
    achAddr[255] = 0;

    switch( *p )
    {
    case '/':
        pAddr->sa_family = AF_UNIX;
        strncpy( ((struct sockaddr_un *)pAddr)->sun_path, p,
                sizeof(((struct sockaddr_un *)pAddr)->sun_path) );
        return 0;

    case '[':
        pAddr->sa_family = AF_INET6;
        ++p;
        pEnd = strchr( p, ']' );
        if ( !pEnd )
            return -1;
        *pEnd++ = 0;

        if ( *p == '*' )
        {
            strcpy( achAddr, "::" );
            p = achAddr;
        }
        doAddrInfo = 1;
        break;

    default:
        pAddr->sa_family = AF_INET;
        pEnd = strchr( p, ':' );
        if ( !pEnd )
            return -1;
        *pEnd++ = 0;

        doAddrInfo = 0;
        if ( *p == '*' )
        {
            ((struct sockaddr_in *)pAddr)->sin_addr.s_addr = htonl(INADDR_ANY);
        }
        else if (!strcasecmp( p, "localhost" ) )
            ((struct sockaddr_in *)pAddr)->sin_addr.s_addr = htonl( INADDR_LOOPBACK );
        else
        {
#ifdef HAVE_INET_PTON
            if (!inet_pton(AF_INET, p, &((struct sockaddr_in *)pAddr)->sin_addr))
#else
            ((struct sockaddr_in *)pAddr)->sin_addr.s_addr = inet_addr( p );
            if ( ((struct sockaddr_in *)pAddr)->sin_addr.s_addr == INADDR_BROADCAST)
#endif
            {
                doAddrInfo = 1;
            }
        }
        break;
    }
    if ( *pEnd == ':' )
        ++pEnd;

    port = atoi( pEnd );
    if (( port <= 0 )||( port > 65535 ))
        return -1;
    if ( doAddrInfo )
    {

        memset(&hints, 0, sizeof(hints));

        hints.ai_family   = pAddr->sa_family;
        hints.ai_socktype = SOCK_STREAM;
        hints.ai_protocol = IPPROTO_TCP;

        if ( getaddrinfo(p, NULL, &hints, &res) )
        {
            return -1;
        }

        memcpy(pAddr, res->ai_addr, res->ai_addrlen);
        freeaddrinfo(res);
    }

    if ( pAddr->sa_family == AF_INET )
        ((struct sockaddr_in *)pAddr)->sin_port = htons( port );
    else
        ((struct sockaddr_in6 *)pAddr)->sin6_port = htons( port );
    return 0;

}


int LSAPI_CreateListenSock( const char * pBind, int backlog )
{
    char serverAddr[128];
    int ret;
    int fd = -1;
    ret = LSAPI_ParseSockAddr( pBind, (struct sockaddr *)serverAddr );
    if ( !ret )
    {
        fd = LSAPI_CreateListenSock2( (struct sockaddr *)serverAddr, backlog );
    }
    return fd;
}


static fn_select_t g_fnSelect = select;
typedef struct _lsapi_prefork_server
{
    int m_fd;
    int m_iMaxChildren;
    int m_iExtraChildren;
    int m_iCurChildren;
    int m_iMaxIdleChildren;
    int m_iServerMaxIdle;
    int m_iChildrenMaxIdleTime;
    int m_iMaxReqProcessTime;
    int m_iAvoidFork;

    lsapi_child_status * m_pChildrenStatus;
    lsapi_child_status * m_pChildrenStatusCur;
    lsapi_child_status * m_pChildrenStatusEnd;

}lsapi_prefork_server;
static lsapi_prefork_server * g_prefork_server = NULL;


int LSAPI_Init_Prefork_Server( int max_children, fn_select_t fp, int avoidFork )
{
    if ( g_prefork_server )
        return 0;
    if ( max_children <= 1 )
        return -1;
    if ( max_children >= 10000)
        max_children = 10000;

    if (s_max_busy_workers == 0)
        s_max_busy_workers = max_children / 2 + 1;

    g_prefork_server = (lsapi_prefork_server *)malloc( sizeof( lsapi_prefork_server ) );
    if ( !g_prefork_server )
        return -1;
    memset( g_prefork_server, 0, sizeof( lsapi_prefork_server ) );

    if ( fp != NULL )
        g_fnSelect = fp;

    s_ppid = getppid();
    s_pid = getpid();
    setpgid( s_pid, s_pid );
#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)
    s_total_pages = sysconf(_SC_PHYS_PAGES);
#endif
    g_prefork_server->m_iAvoidFork = avoidFork;
    g_prefork_server->m_iMaxChildren = max_children;

    g_prefork_server->m_iExtraChildren = ( avoidFork ) ? 0 : (max_children / 3) ;
    g_prefork_server->m_iMaxIdleChildren = ( avoidFork ) ? (max_children + 1) : (max_children / 3);
    if ( g_prefork_server->m_iMaxIdleChildren == 0 )
        g_prefork_server->m_iMaxIdleChildren = 1;
    g_prefork_server->m_iChildrenMaxIdleTime = 300;
    g_prefork_server->m_iMaxReqProcessTime = 3600;

    setsid();

    return 0;
}


void LSAPI_Set_Server_fd( int fd )
{
    if( g_prefork_server )
        g_prefork_server->m_fd = fd;
}


static int lsapi_accept( int fdListen )
{
    int         fd;
    int         nodelay = 1;
    socklen_t   len;
    char        achPeer[128];

    len = sizeof( achPeer );
    fd = accept( fdListen, (struct sockaddr *)&achPeer, &len );
    if ( fd != -1 )
    {
        if (((struct sockaddr *)&achPeer)->sa_family == AF_INET )
        {
            setsockopt( fd, IPPROTO_TCP, TCP_NODELAY,
                    (char *)&nodelay, sizeof(nodelay));
        }

        //OPTIMIZATION
        //if ( s_accept_notify )
        //    notify_req_received( fd );
    }
    return fd;

}


static unsigned int s_max_reqs = UINT_MAX;
static int s_max_idle_secs = 300;
static int s_stop;

static void lsapi_cleanup(int signal)
{
    s_stop = signal;
}


static lsapi_child_status * find_child_status( int pid )
{
    lsapi_child_status * pStatus = g_prefork_server->m_pChildrenStatus;
    lsapi_child_status * pEnd = g_prefork_server->m_pChildrenStatusEnd;
    while( pStatus < pEnd )
    {
        if ( pStatus->m_pid == pid )
        {
            if (pid == 0)
            {
                memset(pStatus, 0, sizeof( *pStatus ) );
                pStatus->m_pid = -1;
            }
            if ( pStatus + 1 > g_prefork_server->m_pChildrenStatusCur )
                g_prefork_server->m_pChildrenStatusCur = pStatus + 1;
            return pStatus;
        }
        ++pStatus;
    }
    return NULL;
}


void LSAPI_reset_server_state( void )
{
    /*
       Reset child status
    */
    g_prefork_server->m_iCurChildren = 0;
    lsapi_child_status * pStatus = g_prefork_server->m_pChildrenStatus;
    lsapi_child_status * pEnd = g_prefork_server->m_pChildrenStatusEnd;
    while( pStatus < pEnd )
    {
        pStatus->m_pid = 0;
        ++pStatus;
    }
    if (s_busy_workers)
        __atomic_store_n(s_busy_workers, 0, __ATOMIC_SEQ_CST);
    if (s_accepting_workers)
        __atomic_store_n(s_accepting_workers, 0, __ATOMIC_SEQ_CST);

}


static void lsapi_sigchild( int signal )
{
    int status, pid;
    char expect_connected = LSAPI_STATE_CONNECTED;
    char expect_accepting = LSAPI_STATE_ACCEPTING;
    lsapi_child_status * child_status;
    if (g_prefork_server == NULL)
        return;
    while( 1 )
    {
        pid = waitpid( -1, &status, WNOHANG|WUNTRACED );
        if ( pid <= 0 )
        {
            break;
        }
        if ( WIFSIGNALED( status ))
        {
            int sig_num = WTERMSIG( status );
#ifdef WCOREDUMP
            const char * dump = WCOREDUMP( status ) ? "yes" : "no";
#else
            const char * dump = "unknown";
#endif
            lsapi_log("Child process with pid: %d was killed by signal: "
                     "%d, core dumped: %s\n", pid, sig_num, dump );
        }
        if ( pid == s_pid_dump_debug_info )
        {
            pid = 0;
            continue;
        }
        if ( pid == s_ignore_pid )
        {
            pid = 0;
            s_ignore_pid = -1;
            continue;
        }
        child_status = find_child_status( pid );
        if ( child_status )
        {
            if (__atomic_compare_exchange_n(&child_status->m_state,
                                            &expect_connected,
                                            LSAPI_STATE_IDLE, 1,
                                            __ATOMIC_SEQ_CST,
                                            __ATOMIC_SEQ_CST))
            {
                if (s_busy_workers)
                    __atomic_fetch_sub(s_busy_workers, 1, __ATOMIC_SEQ_CST);
            }
            else if (__atomic_compare_exchange_n(&child_status->m_state,
                                                 &expect_accepting,
                                                 LSAPI_STATE_IDLE, 1,
                                                 __ATOMIC_SEQ_CST,
                                                 __ATOMIC_SEQ_CST))
            {
                if (s_accepting_workers)
                    __atomic_fetch_sub(s_accepting_workers, 1, __ATOMIC_SEQ_CST);
            }
            child_status->m_pid = 0;
            --g_prefork_server->m_iCurChildren;
        }
    }
    while(( g_prefork_server->m_pChildrenStatusCur > g_prefork_server->m_pChildrenStatus )
            &&( g_prefork_server->m_pChildrenStatusCur[-1].m_pid == 0 ))
        --g_prefork_server->m_pChildrenStatusCur;

}


static int lsapi_init_children_status(void)
{
    char * pBuf;
    int size = 4096;
    int max_children;
    if (g_prefork_server->m_pChildrenStatus)
        return 0;
    max_children = g_prefork_server->m_iMaxChildren
                        + g_prefork_server->m_iExtraChildren;

    size = max_children * sizeof( lsapi_child_status ) * 2 + 3 * sizeof(int);
    size = (size + 4095) / 4096 * 4096;
    pBuf =( char*) mmap( NULL, size, PROT_READ | PROT_WRITE,
        MAP_ANON | MAP_SHARED, -1, 0 );
    if ( pBuf == MAP_FAILED )
    {
        perror( "Anonymous mmap() failed" );
        return -1;
    }
    memset( pBuf, 0, size );
    g_prefork_server->m_pChildrenStatus = (lsapi_child_status *)pBuf;
    g_prefork_server->m_pChildrenStatusCur = (lsapi_child_status *)pBuf;
    g_prefork_server->m_pChildrenStatusEnd = (lsapi_child_status *)pBuf + max_children;
    s_busy_workers = (int *)g_prefork_server->m_pChildrenStatusEnd;
    s_accepting_workers = s_busy_workers + 1;
    s_global_counter = s_accepting_workers + 1;
    s_avail_pages = (size_t *)(s_global_counter + 1);

    setsid();
    return 0;
}


static void dump_debug_info( lsapi_child_status * pStatus, long tmCur )
{
    char achCmd[1024];
    if ( s_pid_dump_debug_info )
    {
        if ( kill( s_pid_dump_debug_info, 0 ) == 0 )
            return;
    }

    lsapi_log("Possible runaway process, UID: %d, PPID: %d, PID: %d, "
             "reqCount: %d, process time: %ld, checkpoint time: %ld, start "
             "time: %ld\n", getuid(), getppid(), pStatus->m_pid,
             pStatus->m_iReqCounter, tmCur - pStatus->m_tmReqBegin,
             tmCur - pStatus->m_tmLastCheckPoint, tmCur - pStatus->m_tmStart );

    s_pid_dump_debug_info = fork();
    if (s_pid_dump_debug_info == 0)
    {
        snprintf( achCmd, 1024, "gdb --batch -ex \"attach %d\" -ex \"set height 0\" "
                "-ex \"bt\" >&2;PATH=$PATH:/usr/sbin lsof -p %d >&2",
                pStatus->m_pid, pStatus->m_pid );
        if ( system( achCmd ) == -1 )
            perror( "system()" );
        exit( 0 );
    }
}


static void lsapi_check_child_status( long tmCur )
{
    int idle = 0;
    int tobekilled;
    int dying = 0;
    int count = 0;
    lsapi_child_status * pStatus = g_prefork_server->m_pChildrenStatus;
    lsapi_child_status * pEnd = g_prefork_server->m_pChildrenStatusCur;
    while( pStatus < pEnd )
    {
        tobekilled = 0;
        if ( pStatus->m_pid != 0 && pStatus->m_pid != -1)
        {
            ++count;
            if ( !pStatus->m_inProcess )
            {
                if (g_prefork_server->m_iCurChildren - dying
                        > g_prefork_server->m_iMaxChildren
                    || idle > g_prefork_server->m_iMaxIdleChildren)
                {
                    ++pStatus->m_iKillSent;
                    //tobekilled = SIGUSR1;
                }
                else
                {
                    if (s_max_idle_secs> 0
                        && tmCur - pStatus->m_tmWaitBegin > s_max_idle_secs + 5)
                    {
                        ++pStatus->m_iKillSent;
                        //tobekilled = SIGUSR1;
                    }
                }
                if (!pStatus->m_iKillSent)
                    ++idle;
            }
            else
            {
                if (tmCur - pStatus->m_tmReqBegin >
                        g_prefork_server->m_iMaxReqProcessTime)
                {
                    if ((pStatus->m_iKillSent % 5) == 0 && s_dump_debug_info)
                        dump_debug_info( pStatus, tmCur );
                    if ( pStatus->m_iKillSent > 5 )
                    {
                        tobekilled = SIGKILL;
                        lsapi_log("Force killing runaway process PID: %d"
                                 " with SIGKILL\n", pStatus->m_pid );
                    }
                    else
                    {
                        tobekilled = SIGTERM;
                        lsapi_log("Killing runaway process PID: %d with "
                                 "SIGTERM\n", pStatus->m_pid );
                    }
                }
            }
            if ( tobekilled )
            {
                if (( kill( pStatus->m_pid, tobekilled ) == -1 ) &&
                    ( errno == ESRCH ))
                {
                    pStatus->m_pid = 0;
                    --count;
                }
                else
                {
                    ++pStatus->m_iKillSent;
                    ++dying;
                }
            }
        }
        ++pStatus;
    }
    if ( abs( g_prefork_server->m_iCurChildren - count ) > 1 )
    {
        lsapi_log("Children tracking is wrong: Cur Children: %d,"
                  " count: %d, idle: %d, dying: %d\n",
                  g_prefork_server->m_iCurChildren, count, idle, dying );
    }
}


//static int lsapi_all_children_must_die(void)
//{
//    int maxWait;
//    int sec =0;
//    g_prefork_server->m_iMaxReqProcessTime = 10;
//    g_prefork_server->m_iMaxIdleChildren = -1;
//    maxWait = 15;
//
//    while( g_prefork_server->m_iCurChildren && (sec < maxWait) )
//    {
//        lsapi_check_child_status(time(NULL));
//        sleep( 1 );
//        sec++;
//    }
//    if ( g_prefork_server->m_iCurChildren != 0 )
//        kill( -getpgrp(), SIGKILL );
//    return 0;
//}


void set_skip_write(void)
{   s_skip_write = 1;   }


int is_enough_free_mem(void)
{
#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)
    //minimum 1GB or 10% available free memory
    return (*s_avail_pages > s_min_avail_pages
            || (*s_avail_pages * 10) / s_total_pages > 0);
#endif
    return 1;
}


static int lsapi_prefork_server_accept( lsapi_prefork_server * pServer,
                                        LSAPI_Request * pReq )
{
    struct sigaction act, old_term, old_quit, old_int,
                    old_usr1, old_child;
    lsapi_child_status * child_status;
    int             wait_secs = 0;
    int             ret = 0;
    int             pid;
    time_t          lastTime = 0;
    time_t          curTime = 0;
    fd_set          readfds;
    struct timeval  timeout;

    sigset_t mask;
    sigset_t orig_mask;

    lsapi_init_children_status();

    act.sa_flags = 0;
    act.sa_handler = lsapi_sigchild;
    sigemptyset(&(act.sa_mask));
    if( sigaction( SIGCHLD, &act, &old_child ) )
    {
        perror( "Can't set signal handler for SIGCHILD" );
        return -1;
    }

    /* Set up handler to kill children upon exit */
    act.sa_flags = 0;
    act.sa_handler = lsapi_cleanup;
    sigemptyset(&(act.sa_mask));
    if( sigaction( SIGTERM, &act, &old_term ) ||
        sigaction( SIGINT,  &act, &old_int  ) ||
        sigaction( SIGUSR1, &act, &old_usr1 ) ||
        sigaction( SIGQUIT, &act, &old_quit ))
    {
        perror( "Can't set signals" );
        return -1;
    }

    while( !s_stop )
    {
        if (s_proc_group_timer_cb != NULL) {
            s_proc_group_timer_cb(&s_ignore_pid);
        }

        curTime = time( NULL );
        if (curTime != lastTime )
        {
            lastTime = curTime;
            if (lsapi_parent_dead())
                break;
            lsapi_check_child_status(curTime );
            if (pServer->m_iServerMaxIdle)
            {
                if ( pServer->m_iCurChildren <= 0 )
                {
                    ++wait_secs;
                    if ( wait_secs > pServer->m_iServerMaxIdle )
                        return -1;
                }
                else
                    wait_secs = 0;
            }
        }

#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)
        *s_avail_pages = sysconf(_SC_AVPHYS_PAGES);
//        lsapi_log("Memory total: %zd, free: %zd, free %%%zd\n",
//                  s_total_pages, *s_avail_pages, *s_avail_pages * 100 / s_total_pages);

#endif
        FD_ZERO( &readfds );
        FD_SET( pServer->m_fd, &readfds );
        timeout.tv_sec = 1;
        timeout.tv_usec = 0;
        ret = (*g_fnSelect)(pServer->m_fd+1, &readfds, NULL, NULL, &timeout);
        if (ret == 1 )
        {
            int accepting = 0;
            if (s_accepting_workers)
                accepting = __atomic_load_n(s_accepting_workers, __ATOMIC_SEQ_CST);

            if (pServer->m_iCurChildren > 0
                && accepting > 0)
            {
                usleep(400);
                while(accepting-- > 0)
                    sched_yield();
                continue;
            }
        }
        else if ( ret == -1 )
        {
            if ( errno == EINTR )
                continue;
            /* perror( "select()" ); */
            break;
        }
        else
        {
            continue;
        }

        if (pServer->m_iCurChildren >=
            pServer->m_iMaxChildren + pServer->m_iExtraChildren)
        {
            lsapi_log("Reached max children process limit: %d, extra: %d,"
                     " current: %d, busy: %d, please increase LSAPI_CHILDREN.\n",
                     pServer->m_iMaxChildren, pServer->m_iExtraChildren,
                     pServer->m_iCurChildren,
                     s_busy_workers ? *s_busy_workers : -1 );
            usleep( 100000 );
            continue;
        }

        pReq->m_fd = lsapi_accept( pServer->m_fd );
        if ( pReq->m_fd != -1 )
        {
            wait_secs = 0;
            child_status = find_child_status( 0 );

            sigemptyset( &mask );
            sigaddset( &mask, SIGCHLD );

            if ( sigprocmask(SIG_BLOCK, &mask, &orig_mask) < 0 )
            {
                perror( "sigprocmask(SIG_BLOCK) to block SIGCHLD" );
            }

            pid = fork();

            if ( !pid )
            {
                setsid();
                if (sigprocmask(SIG_SETMASK, &orig_mask, NULL) < 0)
                    perror( "sigprocmask( SIG_SETMASK ) to restore SIGMASK in child" );
                g_prefork_server = NULL;
                s_ppid = getppid();
                s_pid = getpid();
                s_req_processed = 0;
                s_proc_group_timer_cb = NULL;
                s_worker_status = child_status;

                if (pthread_atfork_func)
                    (*pthread_atfork_func)(NULL, NULL, set_skip_write);

                __atomic_store_n(&s_worker_status->m_state,
                                 LSAPI_STATE_CONNECTED, __ATOMIC_SEQ_CST);
                if (s_busy_workers)
                    __atomic_add_fetch(s_busy_workers, 1, __ATOMIC_SEQ_CST);
                lsapi_set_nblock( pReq->m_fd, 0 );
                //keep it open if busy_count is used.
                if (!s_keep_listener && s_busy_workers
                    && *s_busy_workers > (pServer->m_iMaxChildren >> 1))
                    s_keep_listener = 1;
                if ((s_uid == 0 || !s_keep_listener || !is_enough_free_mem())
                    && pReq->m_fdListen != -1 )
                {
                    close( pReq->m_fdListen );
                    pReq->m_fdListen = -1;
                }
                /* don't catch our signals */
                sigaction( SIGCHLD, &old_child, 0 );
                sigaction( SIGTERM, &old_term, 0 );
                sigaction( SIGQUIT, &old_quit, 0 );
                sigaction( SIGINT,  &old_int,  0 );
                sigaction( SIGUSR1, &old_usr1, 0 );
                //init_conn_key( pReq->m_fd );
                lsapi_notify_pid( pReq->m_fd );
                s_notified_pid = 1;
                //if ( s_accept_notify )
                //    return notify_req_received( pReq->m_fd );
                return 0;
            }
            else if ( pid == -1 )
            {
                lsapi_perror("fork() failed, please increase process limit", errno);
                if (child_status)
                    child_status->m_pid = 0;
            }
            else
            {
                ++pServer->m_iCurChildren;
                if ( child_status )
                {
                    child_status->m_pid = pid;
                    child_status->m_tmWaitBegin = curTime;
                    child_status->m_tmStart = curTime;
                }
            }
            close( pReq->m_fd );
            pReq->m_fd = -1;

            if (sigprocmask(SIG_SETMASK, &orig_mask, NULL) < 0)
                perror( "sigprocmask( SIG_SETMASK ) to restore SIGMASK" );

        }
        else
        {
            if (( errno == EINTR )||( errno == EAGAIN))
                continue;
            lsapi_perror("accept() failed", errno);
            return -1;
        }
    }
    sigaction( SIGUSR1, &old_usr1, 0 );
    //kill( -getpgrp(), SIGUSR1 );
    //lsapi_all_children_must_die();  /* Sorry, children ;-) */
    return -1;

}


static struct sigaction old_term, old_quit, old_int,
                    old_usr1, old_child;


int LSAPI_Postfork_Child(LSAPI_Request * pReq)
{
    int max_children = g_prefork_server->m_iMaxChildren;
    s_pid = getpid();
    __atomic_store_n(&pReq->child_status->m_pid, s_pid, __ATOMIC_SEQ_CST);
    s_worker_status = pReq->child_status;

    setsid();
    g_prefork_server = NULL;
    s_ppid = getppid();
    s_req_processed = 0;
    s_proc_group_timer_cb = NULL;

    if (pthread_atfork_func)
        (*pthread_atfork_func)(NULL, NULL, set_skip_write);

    __atomic_store_n(&s_worker_status->m_state,
                     LSAPI_STATE_CONNECTED, __ATOMIC_SEQ_CST);
    if (s_busy_workers)
        __atomic_add_fetch(s_busy_workers, 1, __ATOMIC_SEQ_CST);
    lsapi_set_nblock( pReq->m_fd, 0 );
    //keep it open if busy_count is used.
    if (!s_keep_listener && s_busy_workers
        && *s_busy_workers > (max_children >> 1))
        s_keep_listener = 1;
    if ((s_uid == 0 || !s_keep_listener || !is_enough_free_mem())
        && pReq->m_fdListen != -1 )
    {
        close(pReq->m_fdListen);
        pReq->m_fdListen = -1;
    }

    //init_conn_key( pReq->m_fd );
    lsapi_notify_pid(pReq->m_fd);
    s_notified_pid = 1;
    //if ( s_accept_notify )
    //    return notify_req_received( pReq->m_fd );
    return 0;
}


int LSAPI_Postfork_Parent(LSAPI_Request * pReq)
{
    ++g_prefork_server->m_iCurChildren;
    if (pReq->child_status)
    {
        time_t curTime = time( NULL );
        pReq->child_status->m_tmWaitBegin = curTime;
        pReq->child_status->m_tmStart = curTime;
    }
    close(pReq->m_fd);
    pReq->m_fd = -1;
    return 0;
}


int LSAPI_Accept_Before_Fork(LSAPI_Request * pReq)
{
    time_t          lastTime = 0;
    time_t          curTime = 0;
    fd_set          readfds;
    struct timeval  timeout;
    int             wait_secs = 0;
    int             ret = 0;

    lsapi_prefork_server * pServer = g_prefork_server;

    struct sigaction act;

    lsapi_init_children_status();

    act.sa_flags = 0;
    act.sa_handler = lsapi_sigchild;
    sigemptyset(&(act.sa_mask));
    if (sigaction(SIGCHLD, &act, &old_child))
    {
        perror( "Can't set signal handler for SIGCHILD" );
        return -1;
    }

    /* Set up handler to kill children upon exit */
    act.sa_flags = 0;
    act.sa_handler = lsapi_cleanup;
    sigemptyset(&(act.sa_mask));
    if (sigaction(SIGTERM, &act, &old_term) ||
        sigaction(SIGINT,  &act, &old_int ) ||
        sigaction(SIGUSR1, &act, &old_usr1) ||
        sigaction(SIGQUIT, &act, &old_quit))
    {
        perror( "Can't set signals" );
        return -1;
    }
    s_stop = 0;
    pReq->m_reqState = 0;

    while(!s_stop)
    {
        if (s_proc_group_timer_cb != NULL) {
            s_proc_group_timer_cb(&s_ignore_pid);
        }

        curTime = time(NULL);
        if (curTime != lastTime)
        {
            lastTime = curTime;
            if (lsapi_parent_dead())
                break;
            lsapi_check_child_status(curTime);
            if (pServer->m_iServerMaxIdle)
            {
                if (pServer->m_iCurChildren <= 0)
                {
                    ++wait_secs;
                    if ( wait_secs > pServer->m_iServerMaxIdle )
                        return -1;
                }
                else
                    wait_secs = 0;
            }
        }

#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)
        *s_avail_pages = sysconf(_SC_AVPHYS_PAGES);
//        lsapi_log("Memory total: %zd, free: %zd, free %%%zd\n",
//                  s_total_pages, *s_avail_pages, *s_avail_pages * 100 / s_total_pages);

#endif
        FD_ZERO(&readfds);
        FD_SET(pServer->m_fd, &readfds);
        timeout.tv_sec = 1;
        timeout.tv_usec = 0;
        ret = (*g_fnSelect)(pServer->m_fd+1, &readfds, NULL, NULL, &timeout);
        if (ret == 1 )
        {
            int accepting = 0;
            if (s_accepting_workers)
                accepting = __atomic_load_n(s_accepting_workers, __ATOMIC_SEQ_CST);

            if (pServer->m_iCurChildren > 0
                && accepting > 0)
            {
                usleep( 400);
                while(accepting-- > 0)
                    sched_yield();
                continue;
            }
        }
        else if (ret == -1)
        {
            if (errno == EINTR)
                continue;
            /* perror( "select()" ); */
            break;
        }
        else
        {
            continue;
        }

        if (pServer->m_iCurChildren >=
            pServer->m_iMaxChildren + pServer->m_iExtraChildren)
        {
            lsapi_log("Reached max children process limit: %d, extra: %d,"
                     " current: %d, busy: %d, please increase LSAPI_CHILDREN.\n",
                     pServer->m_iMaxChildren, pServer->m_iExtraChildren,
                     pServer->m_iCurChildren,
                     s_busy_workers ? *s_busy_workers : -1);
            usleep(100000);
            continue;
        }

        pReq->m_fd = lsapi_accept(pServer->m_fd);
        if (pReq->m_fd != -1)
        {
            wait_secs = 0;
            pReq->child_status = find_child_status(0);

            ret = 0;
            break;
        }
        else
        {
            if ((errno == EINTR) || (errno == EAGAIN))
                continue;
            lsapi_perror("accept() failed", errno);
            ret = -1;
            break;
        }
    }

    sigaction(SIGCHLD, &old_child, 0);
    sigaction(SIGTERM, &old_term, 0);
    sigaction(SIGQUIT, &old_quit, 0);
    sigaction(SIGINT,  &old_int,  0);
    sigaction(SIGUSR1, &old_usr1, 0);

    return ret;
}


int LSAPI_Prefork_Accept_r( LSAPI_Request * pReq )
{
    int             fd;
    int             ret;
    int             wait_secs;
    fd_set          readfds;
    struct timeval  timeout;

    if (s_skip_write)
        return -1;

    LSAPI_Finish_r( pReq );

    if ( g_prefork_server )
    {
        if ( g_prefork_server->m_fd != -1 )
            if ( lsapi_prefork_server_accept( g_prefork_server, pReq ) == -1 )
                return -1;
    }
    else if (s_req_processed > 0 && s_max_busy_workers > 0 && s_busy_workers)
    {
        ret = __atomic_load_n(s_busy_workers, __ATOMIC_SEQ_CST);
        if (ret >= s_max_busy_workers)
        {
            send_conn_close_notification(pReq->m_fd);
            lsapi_close_connection(pReq);
        }
    }

    if ( (unsigned int)s_req_processed > s_max_reqs )
        return -1;

    if ( s_worker_status )
    {
        s_worker_status->m_tmWaitBegin = time( NULL );
    }


    while( g_running )
    {
        if ( pReq->m_fd != -1 )
        {
            fd = pReq->m_fd;
        }
        else if ( pReq->m_fdListen != -1 )
            fd = pReq->m_fdListen;
        else
        {
            break;
        }
        wait_secs = 0;
        while( 1 )
        {
            if ( !g_running )
                return -1;
            if (s_req_processed && s_worker_status
                && s_worker_status->m_iKillSent)
                return -1;
            FD_ZERO( &readfds );
            FD_SET( fd, &readfds );
            timeout.tv_sec = 1;
            timeout.tv_usec = 0;
            if (fd == pReq->m_fdListen)
            {
                if (s_worker_status)
                    __atomic_store_n(&s_worker_status->m_state,
                                     LSAPI_STATE_ACCEPTING, __ATOMIC_SEQ_CST);
                if (s_accepting_workers)
                    __atomic_fetch_add(s_accepting_workers, 1, __ATOMIC_SEQ_CST);
            }
            ret = (*g_fnSelect)(fd+1, &readfds, NULL, NULL, &timeout);
            if (fd == pReq->m_fdListen)
            {
                if (s_accepting_workers)
                    __atomic_fetch_sub(s_accepting_workers, 1, __ATOMIC_SEQ_CST);
                if (s_worker_status)
                    __atomic_store_n(&s_worker_status->m_state,
                                     LSAPI_STATE_IDLE, __ATOMIC_SEQ_CST);
            }

            if ( ret == 0 )
            {
                if ( s_worker_status )
                {
                    s_worker_status->m_inProcess = 0;
                    if (fd == pReq->m_fdListen)
                    {
                        if (s_keep_listener == 0 || !is_enough_free_mem())
                            return -1;
                        if (s_keep_listener == 1)
                        {
                            int wait_time = 10;
                            if (s_busy_workers)
                                wait_time += *s_busy_workers * 10;
                            if (s_accepting_workers)
                                wait_time >>= (*s_accepting_workers);
                            if (wait_secs >= wait_time)
                                return -1;
                        }
                    }
                }
                ++wait_secs;
                if (( s_max_idle_secs > 0 )&&(wait_secs >= s_max_idle_secs ))
                    return -1;
                if ( lsapi_parent_dead() )
                    return -1;
            }
            else if ( ret == -1 )
            {
                if ( errno == EINTR )
                    continue;
                else
                    return -1;
            }
            else if ( ret >= 1 )
            {
                if (s_req_processed && s_worker_status
                    && s_worker_status->m_iKillSent)
                    return -1;
                if ( fd == pReq->m_fdListen )
                {
                    pReq->m_fd = lsapi_accept( pReq->m_fdListen );
                    if ( pReq->m_fd != -1 )
                    {
                        if (s_worker_status)
                            __atomic_store_n(&s_worker_status->m_state,
                                             LSAPI_STATE_CONNECTED,
                                             __ATOMIC_SEQ_CST);
                        if (s_busy_workers)
                            __atomic_fetch_add(s_busy_workers, 1, __ATOMIC_SEQ_CST);

                        fd = pReq->m_fd;

                        lsapi_set_nblock( fd, 0 );
                        //init_conn_key( pReq->m_fd );
                        if (!s_keep_listener)
                        {
                            close( pReq->m_fdListen );
                            pReq->m_fdListen = -1;
                        }
                        if ( s_accept_notify )
                            if ( notify_req_received( pReq->m_fd ) == -1 )
                                return -1;
                    }
                    else
                    {
                        if (( errno == EINTR )||( errno == EAGAIN))
                            continue;
                        lsapi_perror( "lsapi_accept() error", errno );
                        return -1;
                    }
                }
                else
                    break;
            }
        }

        if ( !readReq( pReq ) )
        {
            if ( s_worker_status )
            {
                s_worker_status->m_iKillSent = 0;
                s_worker_status->m_inProcess = 1;
                ++s_worker_status->m_iReqCounter;
                s_worker_status->m_tmReqBegin =
                s_worker_status->m_tmLastCheckPoint = time(NULL);
            }
            ++s_req_processed;
            return 0;
        }
        lsapi_close_connection(pReq);
        LSAPI_Reset_r( pReq );
    }
    return -1;

}


void LSAPI_Set_Max_Reqs( int reqs )
{   s_max_reqs = reqs - 1;      }

void LSAPI_Set_Max_Idle( int secs )
{   s_max_idle_secs = secs;     }


void LSAPI_Set_Max_Children( int maxChildren )
{
    if ( g_prefork_server )
        g_prefork_server->m_iMaxChildren = maxChildren;
}


void LSAPI_Set_Extra_Children( int extraChildren )
{
    if (( g_prefork_server )&&( extraChildren >= 0 ))
        g_prefork_server->m_iExtraChildren = extraChildren;
}


void LSAPI_Set_Max_Process_Time( int secs )
{
    if (( g_prefork_server )&&( secs > 0 ))
        g_prefork_server->m_iMaxReqProcessTime = secs;
}


void LSAPI_Set_Max_Idle_Children( int maxIdleChld )
{
    if (( g_prefork_server )&&( maxIdleChld > 0 ))
        g_prefork_server->m_iMaxIdleChildren = maxIdleChld;
}


void LSAPI_Set_Server_Max_Idle_Secs( int serverMaxIdle )
{
    if ( g_prefork_server )
        g_prefork_server->m_iServerMaxIdle = serverMaxIdle;
}


void LSAPI_Set_Slow_Req_Msecs( int msecs )
{
    s_slow_req_msecs = msecs;
}


int  LSAPI_Get_Slow_Req_Msecs(void)
{
    return s_slow_req_msecs;
}


void LSAPI_No_Check_ppid(void)
{
    s_ppid = 0;
}


int LSAPI_Get_ppid(void)
{
    return(s_ppid);
}


#if defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
#include <crt_externs.h>
#else
extern char ** environ;
#endif
static void unset_lsapi_envs(void)
{
    char **env;
#if defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
    env = *_NSGetEnviron();
#else
    env = environ;
#endif
    while( env != NULL && *env != NULL )
    {
        if (!strncmp(*env, "LSAPI_", 6) || !strncmp( *env, "PHP_LSAPI_", 10 )
            || (!strncmp( *env, "PHPRC=", 6 )&&(!s_uid)))
        {
            char ** del = env;
            do
                *del = del[1];
            while( *del++ );
        }
        else
            ++env;
    }
}


static int lsapi_initSuEXEC(void)
{
    int i;
    struct passwd * pw;
    s_defaultUid = 0;
    s_defaultGid = 0;
    if ( s_uid == 0 )
    {
        const char * p = getenv( "LSAPI_DEFAULT_UID" );
        if ( p )
        {
            i = atoi( p );
            if ( i > 0 )
                s_defaultUid = i;
        }
        p = getenv( "LSAPI_DEFAULT_GID" );
        if ( p )
        {
            i = atoi( p );
            if ( i > 0 )
                s_defaultGid = i;
        }
        p = getenv( "LSAPI_SECRET" );
        if (( !p )||( readSecret(p) == -1 ))
                return -1;
        if ( g_prefork_server )
        {
            if ( g_prefork_server->m_iMaxChildren < 100 )
                g_prefork_server->m_iMaxChildren = 100;
            if ( g_prefork_server->m_iExtraChildren < 1000 )
                g_prefork_server->m_iExtraChildren = 1000;
        }
    }
    if ( !s_defaultUid || !s_defaultGid )
    {
        pw = getpwnam( "nobody" );
        if ( pw )
        {
            if ( !s_defaultUid )
                s_defaultUid = pw->pw_uid;
            if ( !s_defaultGid )
                s_defaultGid = pw->pw_gid;
        }
        else
        {
            if ( !s_defaultUid )
                s_defaultUid = 10000;
            if ( !s_defaultGid )
                s_defaultGid = 10000;
        }
    }
    return 0;
}


static int lsapi_check_path(const char *p, char *final, int max_len)
{
    char resolved_path[PATH_MAX+1];
    int len = 0;
    char *end;
    if (*p != '/')
    {
        if (getcwd(final, max_len) == NULL)
            return -1;
        len = strlen(final);
        *(final + len) = '/';
        ++len;
    }
    end = memccpy(&final[len], p, '\0', PATH_MAX - len);
    if (!end)
    {
        errno = EINVAL;
        return -1;
    }
    p = final;
    if (realpath(p, resolved_path) == NULL
        && errno != ENOENT && errno != EACCES)
        return -1;
    if (strncmp(resolved_path, "/etc/", 5) == 0)
    {
        errno = EPERM;
        return -1;
    }
    return 0;
}


static int lsapi_reopen_stderr2(const char *full_path)
{
    int newfd = open(full_path, O_WRONLY | O_CREAT | O_APPEND, 0644);
    if (newfd == -1)
    {
        LSAPI_perror_r(NULL, "Failed to open custom stderr log", full_path);
        return -1;
    }
    if (newfd != 2)
    {
        dup2(newfd, 2);
        close(newfd);
        dup2(2, 1);
    }
    if (s_stderr_log_path && full_path != s_stderr_log_path)
    {
        free(s_stderr_log_path);
        s_stderr_log_path = NULL;
    }
    s_stderr_log_path = strdup(full_path);
    return 0;
}


static int lsapi_reopen_stderr(const char *p)
{
    char full_path[PATH_MAX];
    if (s_uid == 0)
        return -1;
    if (lsapi_check_path(p, full_path, PATH_MAX) == -1)
    {
        LSAPI_perror_r(NULL, "Invalid custom stderr log path", p);
        return -1;
    }
    return lsapi_reopen_stderr2(full_path);
}


int LSAPI_Init_Env_Parameters( fn_select_t fp )
{
    const char *p;
    char ch;
    int n;
    int avoidFork = 0;

    p = getenv("LSAPI_STDERR_LOG");
    if (p)
    {
        lsapi_reopen_stderr(p);
    }
    if (!s_stderr_log_path)
        s_stderr_is_pipe = isPipe(STDERR_FILENO);

    p = getenv( "PHP_LSAPI_MAX_REQUESTS" );
    if ( !p )
        p = getenv( "LSAPI_MAX_REQS" );
    if ( p )
    {
        n = atoi( p );
        if ( n > 0 )
            LSAPI_Set_Max_Reqs( n );
    }

    p = getenv( "LSAPI_KEEP_LISTEN" );
    if ( p )
    {
        n = atoi( p );
        s_keep_listener = n;
    }

    p = getenv( "LSAPI_AVOID_FORK" );
    if ( p )
    {
        avoidFork = atoi( p );
        if (avoidFork)
        {
            s_keep_listener = 2;
            ch = *(p + strlen(p) - 1);
            if (  ch == 'G' || ch == 'g' )
                avoidFork *= 1024 * 1024 * 1024;
            else if (  ch == 'M' || ch == 'm' )
                avoidFork *= 1024 * 1024;
            if (avoidFork >= 1024 * 10240)
                s_min_avail_pages = avoidFork / 4096;
        }
    }

    p = getenv( "LSAPI_ACCEPT_NOTIFY" );
    if ( p )
    {
        s_accept_notify = atoi( p );
    }

    p = getenv( "LSAPI_SLOW_REQ_MSECS" );
    if ( p )
    {
        n = atoi( p );
        LSAPI_Set_Slow_Req_Msecs( n );
    }

#if defined( RLIMIT_CORE )
    p = getenv( "LSAPI_ALLOW_CORE_DUMP" );
    if ( !p )
    {
        struct rlimit limit = { 0, 0 };
        setrlimit( RLIMIT_CORE, &limit );
    }
    else
        s_enable_core_dump = 1;

#endif

    p = getenv( "LSAPI_MAX_IDLE" );
    if ( p )
    {
        n = atoi( p );
        LSAPI_Set_Max_Idle( n );
    }

    if ( LSAPI_Is_Listen() )
    {
        n = 0;
        p = getenv( "PHP_LSAPI_CHILDREN" );
        if ( !p )
            p = getenv( "LSAPI_CHILDREN" );
        if ( p )
            n = atoi( p );
        if ( n > 1 )
        {
            LSAPI_Init_Prefork_Server( n, fp, avoidFork != 0 );
            LSAPI_Set_Server_fd( g_req.m_fdListen );
        }

        p = getenv( "LSAPI_EXTRA_CHILDREN" );
        if ( p )
            LSAPI_Set_Extra_Children( atoi( p ) );

        p = getenv( "LSAPI_MAX_IDLE_CHILDREN" );
        if ( p )
            LSAPI_Set_Max_Idle_Children( atoi( p ) );

        p = getenv( "LSAPI_PGRP_MAX_IDLE" );
        if ( p )
        {
            LSAPI_Set_Server_Max_Idle_Secs( atoi( p ) );
        }

        p = getenv( "LSAPI_MAX_PROCESS_TIME" );
        if ( p )
            LSAPI_Set_Max_Process_Time( atoi( p ) );

        if ( getenv( "LSAPI_PPID_NO_CHECK" ) )
        {
            LSAPI_No_Check_ppid();
        }

        p = getenv("LSAPI_MAX_BUSY_WORKER");
        if (p)
        {
            n = atoi(p);
            s_max_busy_workers = n;
            if (n >= 0)
                LSAPI_No_Check_ppid();
        }


        p = getenv( "LSAPI_DUMP_DEBUG_INFO" );
        if ( p )
            s_dump_debug_info = atoi( p );

        if ( lsapi_initSuEXEC() == -1 )
            return -1;
#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)
        lsapi_initLVE();
#endif
    }
    unset_lsapi_envs();
    return 0;
}


int LSAPI_ErrResponse_r( LSAPI_Request * pReq, int code, const char ** pRespHeaders,
                         const char * pBody, int bodyLen )
{
    LSAPI_SetRespStatus_r( pReq, code );
    if ( pRespHeaders )
    {
        while( *pRespHeaders )
        {
            LSAPI_AppendRespHeader_r( pReq, *pRespHeaders, strlen( *pRespHeaders ) );
            ++pRespHeaders;
        }
    }
    if ( pBody &&( bodyLen > 0 ))
    {
        LSAPI_Write_r( pReq, pBody, bodyLen );
    }
    LSAPI_Finish_r( pReq );
    return 0;
}


static void lsapi_MD5Transform(uint32 buf[4], uint32 const in[16]);

/*
 * Note: this code is harmless on little-endian machines.
 */
static void byteReverse(unsigned char *buf, unsigned longs)
{
    uint32 t;
    do {
        t = (uint32) ((unsigned) buf[3] << 8 | buf[2]) << 16 |
            ((unsigned) buf[1] << 8 | buf[0]);
        *(uint32 *) buf = t;
        buf += 4;
    } while (--longs);
}


/*
 * Start MD5 accumulation.  Set bit count to 0 and buffer to mysterious
 * initialization constants.
 */
void lsapi_MD5Init(struct lsapi_MD5Context *ctx)
{
    ctx->buf[0] = 0x67452301;
    ctx->buf[1] = 0xefcdab89;
    ctx->buf[2] = 0x98badcfe;
    ctx->buf[3] = 0x10325476;

    ctx->bits[0] = 0;
    ctx->bits[1] = 0;
}

/*
 * Update context to reflect the concatenation of another buffer full
 * of bytes.
 */
void lsapi_MD5Update(struct lsapi_MD5Context *ctx, unsigned char const *buf, unsigned len)
{
    register uint32 t;

    /* Update bitcount */

    t = ctx->bits[0];
    if ((ctx->bits[0] = t + ((uint32) len << 3)) < t)
        ctx->bits[1]++;                /* Carry from low to high */
    ctx->bits[1] += len >> 29;

    t = (t >> 3) & 0x3f;        /* Bytes already in shsInfo->data */

    /* Handle any leading odd-sized chunks */

    if (t) {
        unsigned char *p = (unsigned char *) ctx->in + t;

        t = 64 - t;
        if (len < t) {
            memmove(p, buf, len);
            return;
        }
        memmove(p, buf, t);
        byteReverse(ctx->in, 16);
        lsapi_MD5Transform(ctx->buf, (uint32 *) ctx->in);
        buf += t;
        len -= t;
    }
    /* Process data in 64-byte chunks */

    while (len >= 64) {
        memmove(ctx->in, buf, 64);
        byteReverse(ctx->in, 16);
        lsapi_MD5Transform(ctx->buf, (uint32 *) ctx->in);
        buf += 64;
        len -= 64;
    }

    /* Handle any remaining bytes of data. */

    memmove(ctx->in, buf, len);
}


/*
 * Final wrap-up - pad to 64-byte boundary with the bit pattern
 * 1 0* (64-bit count of bits processed, MSB-first)
 */
void lsapi_MD5Final(unsigned char digest[16], struct lsapi_MD5Context *ctx)
{
    unsigned int count;
    unsigned char *p;

    /* Compute number of bytes mod 64 */
    count = (ctx->bits[0] >> 3) & 0x3F;

    /* Set the first char of padding to 0x80.  This is safe since there is
       always at least one byte free */
    p = ctx->in + count;
    *p++ = 0x80;

    /* Bytes of padding needed to make 64 bytes */
    count = 64 - 1 - count;

    /* Pad out to 56 mod 64 */
    if (count < 8) {
        /* Two lots of padding:  Pad the first block to 64 bytes */
        memset(p, 0, count);
        byteReverse(ctx->in, 16);
        lsapi_MD5Transform(ctx->buf, (uint32 *) ctx->in);

        /* Now fill the next block with 56 bytes */
        memset(ctx->in, 0, 56);
    } else {
        /* Pad block to 56 bytes */
        memset(p, 0, count - 8);
    }
    byteReverse(ctx->in, 14);

    /* Append length in bits and transform */
    ((uint32 *) ctx->in)[14] = ctx->bits[0];
    ((uint32 *) ctx->in)[15] = ctx->bits[1];

    lsapi_MD5Transform(ctx->buf, (uint32 *) ctx->in);
    byteReverse((unsigned char *) ctx->buf, 4);
    memmove(digest, ctx->buf, 16);
    memset(ctx, 0, sizeof(*ctx));        /* In case it's sensitive */
}


/* The four core functions - F1 is optimized somewhat */

/* #define F1(x, y, z) (x & y | ~x & z) */
#define F1(x, y, z) (z ^ (x & (y ^ z)))
#define F2(x, y, z) F1(z, x, y)
#define F3(x, y, z) (x ^ y ^ z)
#define F4(x, y, z) (y ^ (x | ~z))

/* This is the central step in the MD5 algorithm. */
#define MD5STEP(f, w, x, y, z, data, s) \
        ( w += f(x, y, z) + data,  w = w<<s | w>>(32-s),  w += x )

/*
 * The core of the MD5 algorithm, this alters an existing MD5 hash to
 * reflect the addition of 16 longwords of new data.  MD5Update blocks
 * the data and converts bytes into longwords for this routine.
 */
static void lsapi_MD5Transform(uint32 buf[4], uint32 const in[16])
{
    register uint32 a, b, c, d;

    a = buf[0];
    b = buf[1];
    c = buf[2];
    d = buf[3];

    MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
    MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
    MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
    MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
    MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
    MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
    MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
    MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
    MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
    MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
    MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
    MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
    MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
    MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
    MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
    MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);

    MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
    MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
    MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
    MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
    MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
    MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
    MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
    MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
    MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
    MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
    MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
    MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
    MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
    MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
    MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
    MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);

    MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
    MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
    MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
    MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
    MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
    MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
    MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
    MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
    MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
    MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
    MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
    MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
    MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
    MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
    MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
    MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);

    MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
    MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
    MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
    MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
    MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
    MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
    MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
    MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
    MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
    MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
    MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
    MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
    MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
    MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
    MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
    MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);

    buf[0] += a;
    buf[1] += b;
    buf[2] += c;
    buf[3] += d;
}


int LSAPI_Set_Restored_Parent_Pid(int pid)
{
    int old_ppid = s_ppid;
    s_restored_ppid = pid;
    return old_ppid;
}


int LSAPI_Inc_Req_Processed(int cnt)
{
    return __atomic_add_fetch(s_global_counter, cnt, __ATOMIC_SEQ_CST);
}


lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/ext/lsapi/lsapilib.h000064400000027775150402106530017265 0ustar00/*
Copyright (c) 2002-2018, Lite Speed Technologies Inc.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.
    * Neither the name of the Lite Speed Technologies Inc nor the
      names of its contributors may be used to endorse or promote
      products derived from this software without specific prior
      written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/


#ifndef  _LSAPILIB_H_
#define  _LSAPILIB_H_

#if defined (c_plusplus) || defined (__cplusplus)
extern "C" {
#endif

#include "lsapidef.h"

#include <stddef.h>
#include <sys/time.h>
#include <sys/types.h>

struct LSAPI_key_value_pair
{
    char * pKey;
    char * pValue;
    int    keyLen;
    int    valLen;
};

struct lsapi_child_status;
#define LSAPI_MAX_RESP_HEADERS  1000

typedef struct lsapi_request
{
    int               m_fdListen;
    int               m_fd;

    long              m_lLastActive;
    long              m_lReqBegin;

    char            * m_pReqBuf;
    int               m_reqBufSize;

    char            * m_pRespBuf;
    char            * m_pRespBufEnd;
    char            * m_pRespBufPos;

    char            * m_pRespHeaderBuf;
    char            * m_pRespHeaderBufEnd;
    char            * m_pRespHeaderBufPos;
    struct lsapi_child_status * child_status;


    struct iovec    * m_pIovec;
    struct iovec    * m_pIovecEnd;
    struct iovec    * m_pIovecCur;
    struct iovec    * m_pIovecToWrite;

    struct lsapi_packet_header      * m_respPktHeaderEnd;

    struct lsapi_req_header         * m_pHeader;
    struct LSAPI_key_value_pair     * m_pEnvList;
    struct LSAPI_key_value_pair     * m_pSpecialEnvList;
    int                               m_envListSize;
    int                               m_specialEnvListSize;

    struct lsapi_http_header_index  * m_pHeaderIndex;
    struct lsapi_header_offset      * m_pUnknownHeader;

    char            * m_pScriptFile;
    char            * m_pScriptName;
    char            * m_pQueryString;
    char            * m_pHttpHeader;
    char            * m_pRequestMethod;
    int               m_totalLen;
    int               m_reqState;
    off_t             m_reqBodyLen;
    off_t             m_reqBodyRead;
    int               m_bufProcessed;
    int               m_bufRead;

    struct lsapi_packet_header        m_respPktHeader[5];

    struct lsapi_resp_header          m_respHeader;
    short                             m_respHeaderLen[LSAPI_MAX_RESP_HEADERS];
    void            * m_pAppData;

}LSAPI_Request;

extern LSAPI_Request g_req;


/* return: >0 continue, ==0 stop, -1 failed  */
typedef int (*LSAPI_CB_EnvHandler )( const char * pKey, int keyLen,
                const char * pValue, int valLen, void * arg );


int LSAPI_Init(void);

void LSAPI_Stop(void);

int LSAPI_Is_Listen_r( LSAPI_Request * pReq);

int LSAPI_InitRequest( LSAPI_Request * pReq, int fd );

int LSAPI_Accept_r( LSAPI_Request * pReq );

void LSAPI_Reset_r( LSAPI_Request * pReq );

int LSAPI_Finish_r( LSAPI_Request * pReq );

int LSAPI_Release_r( LSAPI_Request * pReq );

char * LSAPI_GetHeader_r( LSAPI_Request * pReq, int headerIndex );

int LSAPI_ForeachHeader_r( LSAPI_Request * pReq,
            LSAPI_CB_EnvHandler fn, void * arg );

int LSAPI_ForeachOrgHeader_r( LSAPI_Request * pReq,
            LSAPI_CB_EnvHandler fn, void * arg );

int LSAPI_ForeachEnv_r( LSAPI_Request * pReq,
            LSAPI_CB_EnvHandler fn, void * arg );

int LSAPI_ForeachSpecialEnv_r( LSAPI_Request * pReq,
            LSAPI_CB_EnvHandler fn, void * arg );

char * LSAPI_GetEnv_r( LSAPI_Request * pReq, const char * name );

ssize_t LSAPI_ReadReqBody_r( LSAPI_Request * pReq, char * pBuf, size_t len );

int LSAPI_ReqBodyGetChar_r( LSAPI_Request * pReq );

int LSAPI_ReqBodyGetLine_r( LSAPI_Request * pReq, char * pBuf, size_t bufLen, int *getLF );


int LSAPI_FinalizeRespHeaders_r( LSAPI_Request * pReq );

ssize_t LSAPI_Write_r( LSAPI_Request * pReq, const char * pBuf, size_t len );

ssize_t LSAPI_sendfile_r( LSAPI_Request * pReq, int fdIn, off_t* off, size_t size );

ssize_t LSAPI_Write_Stderr_r( LSAPI_Request * pReq, const char * pBuf, size_t len );

int LSAPI_Flush_r( LSAPI_Request * pReq );

int LSAPI_AppendRespHeader_r( LSAPI_Request * pReq, const char * pBuf, int len );

int LSAPI_AppendRespHeader2_r( LSAPI_Request * pReq, const char * pHeaderName,
                              const char * pHeaderValue );

int LSAPI_ErrResponse_r( LSAPI_Request * pReq, int code, const char ** pRespHeaders,
                         const char * pBody, int bodyLen );

static inline int LSAPI_SetRespStatus_r( LSAPI_Request * pReq, int code )
{
    if ( !pReq )
        return -1;
    pReq->m_respHeader.m_respInfo.m_status = code;
    return 0;
}

static inline int LSAPI_SetAppData_r( LSAPI_Request * pReq, void * data )
{
    if ( !pReq )
        return -1;
    pReq->m_pAppData = data;
    return 0;
}

static inline void * LSAPI_GetAppData_r( LSAPI_Request * pReq )
{
    if ( !pReq )
        return NULL;
    return pReq->m_pAppData;
}

static inline char * LSAPI_GetQueryString_r( LSAPI_Request * pReq )
{
    if ( pReq )
        return pReq->m_pQueryString;
    return NULL;
}


static inline char * LSAPI_GetScriptFileName_r( LSAPI_Request * pReq )
{
    if ( pReq )
        return pReq->m_pScriptFile;
    return NULL;
}


static inline char * LSAPI_GetScriptName_r( LSAPI_Request * pReq )
{
    if ( pReq )
        return pReq->m_pScriptName;
    return NULL;
}


static inline char * LSAPI_GetRequestMethod_r( LSAPI_Request * pReq)
{
    if ( pReq )
        return pReq->m_pRequestMethod;
    return NULL;
}



static inline off_t LSAPI_GetReqBodyLen_r( LSAPI_Request * pReq )
{
    if ( pReq )
        return pReq->m_reqBodyLen;
    return -1;
}

static inline off_t LSAPI_GetReqBodyRemain_r( LSAPI_Request * pReq )
{
    if ( pReq )
        return pReq->m_reqBodyLen - pReq->m_reqBodyRead;
    return -1;
}


int LSAPI_End_Response_r(LSAPI_Request * pReq);



int LSAPI_Is_Listen(void);

static inline int LSAPI_Accept( void )
{   return LSAPI_Accept_r( &g_req );                        }

static inline int LSAPI_Finish(void)
{   return LSAPI_Finish_r( &g_req );                        }

static inline char * LSAPI_GetHeader( int headerIndex )
{   return LSAPI_GetHeader_r( &g_req, headerIndex );        }

static inline int LSAPI_ForeachHeader( LSAPI_CB_EnvHandler fn, void * arg )
{   return LSAPI_ForeachHeader_r( &g_req, fn, arg );        }

static inline int LSAPI_ForeachOrgHeader(
            LSAPI_CB_EnvHandler fn, void * arg )
{   return LSAPI_ForeachOrgHeader_r( &g_req, fn, arg );     }

static inline int LSAPI_ForeachEnv( LSAPI_CB_EnvHandler fn, void * arg )
{   return LSAPI_ForeachEnv_r( &g_req, fn, arg );           }

static inline int LSAPI_ForeachSpecialEnv( LSAPI_CB_EnvHandler fn, void * arg )
{   return LSAPI_ForeachSpecialEnv_r( &g_req, fn, arg );    }

static inline char * LSAPI_GetEnv( const char * name )
{   return LSAPI_GetEnv_r( &g_req, name );                  }

static inline char * LSAPI_GetQueryString(void)
{   return LSAPI_GetQueryString_r( &g_req );                }

static inline char * LSAPI_GetScriptFileName(void)
{   return LSAPI_GetScriptFileName_r( &g_req );             }

static inline char * LSAPI_GetScriptName(void)
{    return LSAPI_GetScriptName_r( &g_req );                }

static inline char * LSAPI_GetRequestMethod(void)
{   return LSAPI_GetRequestMethod_r( &g_req );              }

static inline off_t LSAPI_GetReqBodyLen(void)
{   return LSAPI_GetReqBodyLen_r( &g_req );                 }

static inline off_t LSAPI_GetReqBodyRemain(void)
{   return LSAPI_GetReqBodyRemain_r( &g_req );                 }

static inline ssize_t LSAPI_ReadReqBody( char * pBuf, size_t len )
{   return LSAPI_ReadReqBody_r( &g_req, pBuf, len );        }

static inline int LSAPI_ReqBodyGetChar(void)
{   return LSAPI_ReqBodyGetChar_r( &g_req );        }

static inline int LSAPI_ReqBodyGetLine( char * pBuf, int len, int *getLF )
{   return LSAPI_ReqBodyGetLine_r( &g_req, pBuf, len, getLF );        }



static inline int LSAPI_FinalizeRespHeaders(void)
{   return LSAPI_FinalizeRespHeaders_r( &g_req );           }

static inline ssize_t LSAPI_Write( const char * pBuf, ssize_t len )
{   return LSAPI_Write_r( &g_req, pBuf, len );              }

static inline ssize_t LSAPI_sendfile( int fdIn, off_t* off, size_t size )
{
    return LSAPI_sendfile_r(&g_req, fdIn, off, size );
}

static inline ssize_t LSAPI_Write_Stderr( const char * pBuf, ssize_t len )
{   return LSAPI_Write_Stderr_r( &g_req, pBuf, len );       }

static inline int LSAPI_Flush(void)
{   return LSAPI_Flush_r( &g_req );                         }

static inline int LSAPI_AppendRespHeader( char * pBuf, int len )
{   return LSAPI_AppendRespHeader_r( &g_req, pBuf, len );   }

static inline int LSAPI_SetRespStatus( int code )
{   return LSAPI_SetRespStatus_r( &g_req, code );           }

static inline int LSAPI_ErrResponse( int code, const char ** pRespHeaders, const char * pBody, int bodyLen )
{   return LSAPI_ErrResponse_r( &g_req, code, pRespHeaders, pBody, bodyLen );   }

static inline int LSAPI_End_Response(void)
{   return LSAPI_End_Response_r( &g_req );                         }

int LSAPI_IsRunning(void);

int LSAPI_CreateListenSock( const char * pBind, int backlog );

typedef int (*fn_select_t)( int, fd_set *, fd_set *, fd_set *, struct timeval * );

int LSAPI_Init_Prefork_Server( int max_children, fn_select_t fp, int avoidFork );

void LSAPI_Set_Server_fd( int fd );

int LSAPI_Prefork_Accept_r( LSAPI_Request * pReq );

void LSAPI_No_Check_ppid(void);

void LSAPI_Set_Max_Reqs( int reqs );

void LSAPI_Set_Max_Idle( int secs );

void LSAPI_Set_Max_Children( int maxChildren );

void LSAPI_Set_Max_Idle_Children( int maxIdleChld );

void LSAPI_Set_Server_Max_Idle_Secs( int serverMaxIdle );

void LSAPI_Set_Max_Process_Time( int secs );

int LSAPI_Init_Env_Parameters( fn_select_t fp );

void LSAPI_Set_Slow_Req_Msecs( int msecs );

int  LSAPI_Get_Slow_Req_Msecs(void);

int LSAPI_is_suEXEC_Daemon(void);

int LSAPI_Set_Restored_Parent_Pid(int pid);

typedef void (*LSAPI_On_Timer_pf)(int *forked_child_pid);
void LSAPI_Register_Pgrp_Timer_Callback(LSAPI_On_Timer_pf);

int LSAPI_Inc_Req_Processed(int cnt);

int LSAPI_Accept_Before_Fork(LSAPI_Request * pReq);

int LSAPI_Postfork_Child(LSAPI_Request * pReq);

int LSAPI_Postfork_Parent(LSAPI_Request * pReq);

#define LSAPI_LOG_LEVEL_BITS    0xff
#define LSAPI_LOG_FLAG_NONE     0
#define LSAPI_LOG_FLAG_DEBUG    1
#define LSAPI_LOG_FLAG_INFO     2
#define LSAPI_LOG_FLAG_NOTICE   3
#define LSAPI_LOG_FLAG_WARN     4
#define LSAPI_LOG_FLAG_ERROR    5
#define LSAPI_LOG_FLAG_CRIT     6
#define LSAPI_LOG_FLAG_FATAL    7

#define LSAPI_LOG_TIMESTAMP_BITS (0xff00)
#define LSAPI_LOG_TIMESTAMP_FULL (0x100)
#define LSAPI_LOG_TIMESTAMP_HMS  (0x200)
#define LSAPI_LOG_TIMESTAMP_STDERR  (0x400)

#define LSAPI_LOG_PID            (0x10000)

void LSAPI_Log(int flag, const char * fmt, ...)
#if __GNUC__
        __attribute__((format(printf, 2, 3)))
#endif
;


#if defined (c_plusplus) || defined (__cplusplus)
}
#endif


#endif







lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/ext/lsapi/lsapilib.o000064400001224320150402106530017256 0ustar00ELF>�@@=<

02/3.4-5���ff.����Ð��H�GH+F�Hc�AVI��H�@AUATL�$�USH��tQH��H��tIH��I��L9�r�0H��I9�v'�KH�SM��sH�;�Յ��[]A\A]A^��[D��]A\A]A^ø������ff.�f����=�D���Ð��OAWD�D�_AVAUATUSD�6�^�nA��x�j׋G3GD!�3G��V���\$�ЋW�^$��D�D1��\$�!�3WA��ʋN��F���p $E��‰L$�A1�A1�D��D�^!�D1�G��;�ν�D�\$�D�E��D�V���D�T$�A!�A1�E�E���|���A��
1�A�D!�E��1�D�D��*ƇG���D1�D�!�A��1�A1�D�D�N���D�L$�E��	F0�D��!�D�nA1�D1�D�G���F�E��D�f ���D�d$�D�^(A!�A1�E�E��ؘ�i��A��
1�A�D!�1�D�D����D��ʋ^0��D1�D�!�A��1�D�E���[��D����1��!�D1�D�D�N,��A1��D�L$�G����\�E��A!�D�f8A1�E�D��"�k��A��
1�A�D!�1�D�D�N4��E���q����D�D1�!�1�D�E���Cy�D����1��!�D1�D�D�V<���1��G��!�I!�1�D�D�D$��
�E��b%���1�!�1�D�D�D$��E��@�@���1�!�1�D�D�D$���	�E��QZ^&��1�!�1�D�E��6�Ƕ����1�!�1�D�D��]/։���1�!�1�D�E��SD���1�!�1�D�E��
��؉���	�1�!�1�D�D�D$��E��0����1�!�1�D�D�D$���E�����!��1�!�1�D�E���7É��1�!�1�D�D�D$��	�E���
��1�!�1�D�D�D$��A��0�ZEA��A1�A!�A1�A�A���㩉�A��A�D1�!�1��t$�D������D��1�!�A��
�ogD1����	�1�D!�F���L*�1�D�D$�Ή���1�A��A!���B9��A1�DD$�A��A�D1���D$�����q���D�D1�1�‹D$�����0"a�mD���1�G��8�1�Ɖ��1��1�D�D�D$��	E��D꾤���1�1�D�D�D$�A�����KA���A1�A��5`K��A1�AЉ�A��p���A��1�A�D1����D1�D�1��A��	�~�(D����	1�G���'���1�����1��1�D�D�D$�A���0��A���A1�A1�AЋT$�A����2���A�1�D1�֋T$��	��
9��ى�D�D1����1��D�����1�1��C���|�A��A1��A1�A��D$�A����0eV�ĉ�A�1�D1��A��D")��D�t$��	��D�	�D1��A��
��*CD������G���#���	�1����
���	�1�D�D��9��������Ή��	��1�D�D���Y[e��\$���	�1�D�E�������D�t$�����	щ�1���D�E��3}���D�\$�
���	�1�D�D�D$���E���]����	�1�D�E��O~�oA���A���D��	�1�D�E��
��,���D�T$�����	�A��1�A��D�E��6C���D�t$���
��A���N�	�1�A���~S�A��D�E��A����A	�A1�A��5�:�A�D��A��A�D	�1�Љ�3���*�\$���D�	�D1��D��F���ӆ�[��
��]A\�A]A^	�1������։�	�1�DƉ�A�4A_���OW�G�O�W��ATI��1�U��SH��dH�%(H��$�1�H��H���H�<$t)H��$�dH3%(u<H�Ġ[]A\�f.�H�{�1�H�މ�DŽ$�L�$$���DH�
H�A(H�Q8H9�s;8u�fD98tH��0H9�w�1�Å�tH�P0H;Q0v�H�Q0�Df�H�@$@@�@,�������DUHc�SH��H��H��H�@�H��t#H�SPH�H+S@H�C@H�H�SPH�CH1�H��[]ø������f�U1҉�1�S���H�����t��t/H��1�[]�fD��t��H���‰߾[1�]�f�����ff.�SH��dH�%(H��$�1�H�T$H�t$�D$�D$���Ã��tf�|$t'H��$�dH3%(��u0H�Ġ[�f�H�L$A���Ǿ���ff.�f��� ��Hc�H�vL��H�L9���H��H)�H����S�Nf.�E��������L�I؃�H��L�G�L�E�C�H�D�G��w�I9�thH��H)�H��~SH�pH�2H�pD�H�2H�pD�XH�2�pA��E�L�@��L�Ic�A���pD�Hc�L�M�L9��i��������[�f��0��u�H��[H�1�ø����Ë��u�H��H�1��f�AVAUE1�ATUH�-SH�}(t[D��]A\A]A^��EEA������!Lc�@���D��
 DI�E1�1�A���Mc�L���H��H���t]L��1�H���K�vH�](H��H�]0H�H�]8H�CH�H�H�CH��H�H��[D��]A\A]A^�H�=A����1����H���H���H+��Hcp�G )�H����H��xsH9�AVHN�AUATUI��SHwH��D�wH���L��H��D���I��H���u!��8u
���u�D��[]A\A]A^ÐH��~���[]A\A]A^ø�����fDUSH������tMH��������u��8u
���u�H��E����H��t�(H�H��t�@��H��[]�ff.�@AWAVAUATUSH���������t8A��A��I����A��f�I�7D�����Å�-���tx���u�D��D)�H����[]A\A]A^A_��A)�E��~ڋ��t�I��f�H��)�I���~�H�PHc�H9�v�HI�H)H�x��������t���s����E)�E��AO��r���1��k���S���t-�=��t+1�����u�[�8������1�[�@�9�[����ÐAVAUATUH��SH��H��PdH�%(H��$H1��H��
fDH��H��DB u�L�d$@��H��L����D$@Ƅ$?</tc<[����:L��f�E�H������|$@*H�X�zH�5L���A�ƅ��;�EM�����H�}�lf�uL���1�H��$HdH3%(�QH��P[]A\A]A^�D�
M�l$�]f�ML���H�����|$A*H�XA���1��;:�
��1�H�H���H�Í@�=����E��uf��1�f�]�Y���D�Ef�1�H�T$)D$H�L$L��D$H�)D$ )D$0H�D$���upL�d$H��A�T$I�t$�L����L��E1�M�������EA���<�����EE1�M���"����::A�D$M��fA�$�
���������������AUI��ATU��SH��(H��$�H��$�L��$�L��$���t@)�$�)�$�)�$�)�$�)�$�)�$�)�$)�$dH�%(H��$h1����t�=���ML�d$`L��@��@��u��������L9���H�H�;H�L$HL��H��$P�D$HH�D$PH��$p�D$L0H�D$X�H��$hdH3%(��H��([]A\A]�H�H��L�H�����L�¾d1���H�HÁ��K����-�H��H�ߺUA��L��dH�����1��H�H�XZL9�����H��H�M��1�L)�H��H�;����f�H��1�L�d$`H���H�t$H�����uI��������D$�L��L��P�D$PD�L$(1��Y^Hc�L��L����H�D$L��L���P�D$P�D$$P�D$0P�D$<P�D$H��P�D$TD��l1��H��0Hc�L�����ff.�@��AWAVAUATUSH��(dH�%(H�D$1�H�=�.�D$�H�l$L�5L�-L�%@�H������A�Dž����T$�Ѓ���<~$��M��L������D��ME�1��D;=t�D;=tUD�����H��H��t�H�H1����@�1@�Ɖ�@����H�H��t�(H���h�K���������9����H�5H�N0H�V(H9�s*D�A�H�A�E��t�DH��0�8��u.H��H9�r�H�F0H�D$dH3%(uH��([]A\A]A^A_�H�N0����D$�@�1�D$�X���H�H���D����C���ff.��AWAVAUATUH��SH��H��(�=dH�%(H��$1���t1����thH�C(I��I��D�3L+cI)�H�C D�{H)���D$�H��E��E��AT��H�5�AU1�U�L$,�H�� ����t)H��$dH3%(ulH��([]A\A]A^A_�@D�H�\$H���H�߹�AQL��XH��Z����t
1��fDH�=����DAWAVAUATUSH��L�I�Z(M�j0L9��H�|$E1�E1�E1�@��B��ve�CA�l$����A�BD)�A;B�E9r�
���~ H�SH�L$��H�H)�H9���fD�CA��f��A��H��0I9�w�A�R��D)���1�)ȃ��H��[]A\A]A^A_�fDH�C H�t$H)�IcBH9����C��i�gf��f����)���f9�u������Cf��~pH�5�1���;�	����tp�CA��L�A��f�C�5���fD�C��f�C�����A�������H�5�1���;�����u���8u��L�����H��E��E��D��[H�5]�A\1�A]A^A_�fDH�t$H����������@E1�E1�E1��z���f.���UH����S��H���H����H��I��[H�5�1�]�f����1���u1��=������Ð����D��H�=�@��ATUSH��dH�%(H��$�1�H���}H�H��H�1�HLJ	H�ى�H��H)����	���H�H�{`�I��H���0H�CxH�S`L�c`� L�H)�H�CxH�CpL�H)�H�CpI��$H�Ch�H�C8H�C(H����H I���H��H�C0H��(L�cxL�cpH����l��������twH�T$H�t$���D$����t
��8kt0�����1��kH��$�dH3%(uiH�Ġ[]A\�fD�+����C�����C�1����1���H�=��1��1�����_���fD�������ff.����S���t	1ۉ�[��H�5L��
���e�H�5>��
�T�������H�=1�����tI���H�=��H���c���H�5H���H���[É��D�����1��?������H�=���H�W(H�w`HLJ�H��HLJ0H���H�W�H�VH�W�H�W�H�W�H�W�H��)���81����H�����SH��H�H��t�H���H��t�H���H��t�H�{@H��t�1�[�fD��H��tG��wBL���Hc�A�T�4��t/Hc�A�pH���H�H€:t
�H���H���1��ff.�f���H��tP��tJSHc��H��;��}H�S�HH������[������~	Hc���и����[Ã����AWAVAUATUSH�Z�H�H��H�D$H���:�G�����H���%H����I��H���I�����I��I��L��fDA���)�Hc�H����L9�Hc�IO�IvI���
H��L���H��tML)�H��L��H�XH��H��A��I��A�$��D)��EH��[]A\A]A^A_��L��H��H��H��A���L�|$I���I)�A���M���?����D���L���L�Hc�H��~�A����-���H��1��|���������v���@��AVAUATUSH������I����H��H����H��H����H���H+��E1�H����H9�Hc��HO؋��)�H�H��~)H9�H�wH��HN�H�H��I���E��L�L)�H��t6�E�u@H��H��D���H���u4��8u
���u�M��t-M��[L��]A\A]A^��H��~�I�H�H)�u���I�������D��H�O(H�W8H��LJLS���H)ʍB����H�GpH�0H�pH�@H�wp��~Hc�H�HH�� H�P�H�O8H�Gp����AWAVAUATUSH��H���H�T$H����H��H�<$�I��H�=�������HcB$H���H�@H�,�H9�r�Zf.�H��H9�vGH�3L�����u�H�CH��[]A\A]A^A_�H�D$L9��I��M9���f.�1�H��[]A\A]A^A_��H�$1�L�=L���@A�l�4��tI�4�L�������H��H��u�H�D$HcP 1���~�H�$H��L���M�tM9�s�H���H�$I�D$H�D$@IcMIcmH,$L�|
L9��)���A�\$���)����H�8H�D$�'���-t	��_����H��H��I9�t�����H�U:�t������8����IcUIcEH$H€:����������H�$Hc�Hc�A�VH��H€:�������@��AVAUATUSL��$���H��H�$L9�u�H��dH�%(H��$@1�H����H��H����H���H����H��E1�L�
L��f�H���Hc�HcT�4��t7�qH��M���
H��Ic�A��H��L�E��H�TD�T�tH��H��u�H���HcP ����H���H��L�L9���Ic�I��H��L��f�H��H�� I9���HcHHc0A��H���LcPI��HcHH��B�D�BH�J�HH�2�JA��u��H�
� L����$DI��H�
Ic� L���E��taE1��@A��I�� E9�~CA�MI�UI��A�uI�}�Ӆ��H��$@dH3%(u6H��@[]A\A]A^��D����1���@Ic��U����������ff.����AWAVAUATUSH��XH�t$ H�T$dH�%(H��$H1�H����I��H����1�E1�L�-H��L�%H��H���Hc�HcT�4��t/�HH��A��A�t�I�<�H���L�D$A�ׅ��4H��H��u�H���D�t$<HcB ���L���H��L�H�D$0I9���H�\$(L�t$@fDH�D$(A�l$Ic$A�HTTPH������A�F_L�<H�D$��O�Hcʼnl$8I�H�D$I9���M�nI��I�o�I���_@��-t�H���A�E�L9�u�H�D$I�D�t$8L�D$�L��IcD$IcT$HT$���H�D$ A�L$�Ѕ�~"I��L9d$0�-���H�l$(H����B D$<H��$HdH3<%(u'H��X[]A\A]A^A_�DI�F�v�����������ff.���H��t7H��t2H���D�@$1�E����H���H��H��D�����������f.���H��t7H��t2H���D�@(1�E����H���H��H��D���S��������f.���H����H�O`H��tz����Ѓ�tr��L�G@������H�WPL9�vH�wpL)��L�H��H�V�H�wpHc�0H�T�H�Q�����,H��(LJ(LSH�1�H�Oxø�����f.���H����H�GpH+GxH�������G�����SH�������H�C(H9C8tH���H�SpH+Sx1�H����~J�
�����u$�{H�sx����9��~H�{�������ǃ�H�S`H�SxH�Sp[�f�H�G(H9G8�c���1�����l���LJ�H�W(H�W8H�W`H�WxH�Wpø�����f���AWAVAUATUSH��XH�t$dH�%(H�D$H1�H���.H�=���GI�������;��H�G(H9G8t
H�$�H�$H�D$L�|$L�d$H�$H�l$ I��H��L)�H����H��@�@L�|$0HO�L�d$ �D$LS�BL�jH�T$8I׋�D$D��H�D$(H�l$��uA�~H�4$D����H�I9�~�I�~��H��L)�H���L��H+D$��H�t$��H�L$HdH3%(uH��X[]A\A]A^A_�H��������@AWAVAUATUSH��H�$H��dH�%(H��$1�H��I��I���H��8�H��I��H�HD��A���AW�H��SA���1�AVL��AU��H�� H��=O�Hc�M��t7L���1�H��$dH3%(u&H��[]A\A]A^A_�������ff.�@AT�~f�A��UH��SH��dH�%(H��$1�H�|$H��)$H���H�H����xH��$dH3%(u?H��[]A\É�I��D��H�51��1�H�5H���i����������ff.�f�ATUSH��H�$H��H�$H��dH�%(H��$ 1�������?/H��H�����H���H���bH�ߋH����������!�%����t�¹�����D�H�WHD���@�H��H)��</��)�Hc�Hc�H�1�H���H���JL��$�H��L���H�����H�=L������������AH��1���Ń������uRH�=H9�t
H��t�H��1��H�H��$ dH34%(����H�� []A\�fD�����������@�����4�����
�+����H��H�51�������r����r���DH�߹����������S���fD������H��H�51������������H��tv�����t]S��H��tC�uWH�C(H9C8tH���H�CpH�H��H�H��H�@����H�Cp�H���1�[�@���뢸�����ff.���H��������u��u1��f�S��H��tR�ubH�C(H9C8tH���H�CpH�H��H�H��H�@����H�Cp�H�{�:����������1�[��1�H�O@H9OPv��닸��������AWAVAUATUSH��H����H���|���I�֨�,���aH��H�t$H����>��L�{8I��H�C0L)�H9��>L�t$L+{(L��A�@L��L�f�I��M)�M����K�H��@���σ��LSL�Cp�N���I�H�D���I�0H��I�@H�KpM��~H�C(M�xI�H E1�I�@H�C8H���L�1H��M�L�I�H��H�KpH9��e���H������thI��L��M)�M���U���I9�t
H������tDL+t$H��L��[]A\A]A^A_�DM��@�@M)��(����������I�������H�t$H��L���Hk8�f.���H�������������AVL��AUI��ATI��U��S���H���u\��H�߉���A�D$�{L��ǃLS����H��u0�{L��[L���]A\A]A^�������[H�����]A\A]A^�H���ff.���AWAVAUATUSH��H����H�������H����������D$����0��xI��H��I��H���Lc��\�CHc��T���
t��
u(��H�DLc���L�H����
t�
t�L�����~6Hc�A�T���
t��
u#��H�@��~A�L�H����
t�
t�E�<A�G=���I�|$PH�H�TI9T$Hs7H��I+t$@L������2%�)�)���������I�|$PL��H��Hc�A���Mt$PH��L��I�FI�D$PA�:I�|$P�M�D$PI�I�@I�D$PA�Ic�$0fE��T8H�Ѓ�A��$0�D$H��[]A\A]A^A_��D$������ff.����H���
H����B�=����������0���AUATUSHc�H��f��D�A��<
t<
uH���؅�u�H��[]A\A]�I��H�PH��H�DI9D$Hs3H��I+t$@L������2%�)�)��������tQI�|$PH��H��A���I\$PH�CI�D$P�Ic�$0fE��T8H�Ѓ�A��$0H��1�[]A\A]ø�����S������D��AUATA��UH��SH���?dH�%(H�D$1��D$f����f��
t1�����f����H�L$dH3%(����H��[]A\A]ÐA�1Ҿ��Ã��tʼnǺ�1��H�L$A��ߺ����u#D��H������uD�������o�����߻����D� H���D�e�O����A��k���DH�}A�n��}�N������H��t����������ff.����U��SH��dH�%(H��$�1�H��H�����u/��H���H��$�dH3%(uH�Ę[]����������@��1�H�=t������AUATA�'USH�����'DN�uD������H���@�A���H��H�H����H��tH�-����Ɖlj��U�D�k H�D�cE��u<�����D�����SuG�CH�,H�C�1�H��[]A\A]�@A�|$�C�{�˸�����ك�ÉS�ff.�@��H�H��t�8�ff.�f���H��BH�B(H�R8H9�s��H��0H9�w�H�H��t	���H�H��t	����fD��H�H�H;�wH��H�H;�����ff.�@��ATUSH��H�� dH�%(H�D$1�H�D�`�H�SX����H�kXH�-�H����H�H�H��tH�1�1���H�-�E��H�H��t��{1��F�����uH�H��tA�D9 ~����ut�;���u]H�LS�[H��H�$��D$��H��߉D$��1�H�L$dH3%(u)H�� []A\�D����������t�����H�SH���@H�Xt1��H�SXH�BH�B�{��C����1�[���AWAVAUATUSH��HH�H�|$H��$�L�edH�%(H��$81����H����L��DŽ$(H��$��H�H������cH����L��DŽ$(H��$��H�H������H�H�������H�H��
�����H�H�������H�D$1�E1�L�d$ �L�|$ǀ��D$H�H��t	H�=��1��I��L9�t71���������L���P���C��t�S�����D$fD�V�H��L��H�1���H�Hc;��;M��L��H�D$H�D$�����������?)ѺH��1�H	T� 1��Ń����������8��1�H�5��1ҿH�5�1ҿH�5�1ҿH�5�1ҿ
H�5�H��$8dH3%(���kH��H[]A\A]A^A_�fDH�H��udD�C�S�K�
D9���H�A�����H��tD��H�51�������M��� �������fDD�0D�CE��~�E��~����D�A��u���D$�t$9��/������������D�;�)��A��H�D$D�pA���uc��0���k������b���H�=D����j���f.�H�=���������H�=���������1�1����H�\$H�CX�����������=�f����=�D��H�H��t�x�ff.����H�H��t��x�x����H�H��t��~�x����H�H��t��~�x����H�H��t�x�ff.�����=�D����D�������D��AUATUH��H�=SH��8dH�%(H��$(1��H��tH��� �H�=��H�=�H���E1��
H�������H�=�H��t�
1�H����H�=�H��H��t�
1�H���I��A��WE1�H�=�H��t�
1�H����H�=�H��tH�Ǻ
1�����H�=�H�����H�=�H��tH�Ǻ
1����������H�=�H����1��
H������OH�=�H��tH�Ǻ
1�����H�=�H��tH�Ǻ
1�����H�=�H��tH�Ǻ
1�����H�=�H��tH�Ǻ
1�����H�=�H��t�H�=�H��t�
1�H�������_H�=�H��t�
1�H����D���E����H�=�H�����=��u	�P��5����H�=�H�����
1�H�����…�t������H�H�H����H�H����D�L�L�
L��C�
H��L���������t@H�ֹL����€���D	�t%H��tAH�H��t9�H��L���������u�H��fDH�JH��H�J�H��u�H�H��u�1ۉ�H��$(dH3%(��H��8[]A\A]�fD�H����D����<G�~A��<MED�A������s���D��H�H��_���������@H�=�H���������fDH�=�H����������fDA���f��@��#���f�����fD1�E��H������H��8�����H�=�H��H�H����H�5H���H��H��H�����-������H�5H���H�5H��I��H��H�5H���H�5H��H����~H�5H���H�H�=H���~A�ԅ��L���H�=�H�=�H��$���@H��H�$H�D$����DH��H��$���$�����t
�1҃8k�‰����H�=�H��t1��
H�����~�H�=�H��t1��
H�����~�H�=�H��H���iH�Ǻ�1�1���Ã����H�T$�ƿ�������D$(?���H�5���H�������H�H��t�xc�@d�x��@�D�
E���9���D�E���)����Z���f�H�=��H���K����]����
��u
�'��������'�������)���f��Յ�tbH�H���-�������DH��H�5�1�������������A��Hc��L�%H��H��a�����Å�t��=������u
��5����`���H��H�5�u���H��H�5�1�������H��H�5�F���ff.����AVI��AUE��ATI��UH��SH��t��4H��u!�(fDH��H���H��L����H�]H��u�M��tE��L���[1�]A\A]A^ÐIc�L��L�������H�#Eg����H�GH�H��ܺ�vT2H�G����AWAVA���AUI��ATUH�oSH��1�H���G�O�@�ƉWD���������W��?t;A�ĉ�D��H��H�|�@D)�A9�rhA��G�t4�L��L��H��L���9���A��?vWE�f�A��I��I��I�H�޺@H��H��@�H��L������L9�u�A��?D��L��H��H��[]A\A]A^A_�I�������ATL�fUH��S�FH�����?��L�H�z���?)ƒ�w=��t1������9�r�L��H������f�CAD$AD$ I�D$0��71�)��H�CH��L��H�CP�?����oH�{1�H��MH�H�CPH)��KX���H�[]A\�ff.�f�AWAVAUATUSH��dH�%(H��$�1�H��t^� �I���A�����f�Mcg I�oA�_@L��H����H���uM��8u
�=��uٽ����H��$�dH3%(����
H�Ĩ[]A\A]A^A_�f���~�A��A������u���I���ALJ�f�8LS�|�x�r�@t�P�Hf�@�H�P�X���N������	M�g���A;G �ZA���9�~u���E�o)�H�Hc�I��H��L��D���H���u$��8������5��u�����������A��M�gA���9��I�D$,H�D$Hc�I�I���D�hA�����h(A9��}A�� �/Hc�I���H�4@H���H���A���I���I����h$A9��}A�� ��Hc�I���H�4@H���H����A���I���I���H�l$�p(I���L��H�����������I���I���L��p$�������hM���Ic@���o9��gIcP���[9��SIcp���G9��?IcH���39��+I�H�H�H�H�I���H�T$I���Ic@ H)�I���H��H��I���H��H�H���I���H�I���IcHI���H�H��H�D$I9���E����1�D�L�4��t9�d�<B�9�ZH��H��u�IcP ���kI���H��H�H9�r*�RP9�!�P9�P9�H��H9��-�9�~�H�5�1��H�5�1�����>���f�H�� �H��� ���I�GA�G  I�������P�Hf�@	f�@
�H�H�P�P�H�H�P�P�H�H�P�P�H�H�P�P�H�H�P�Pf�@f�@f�@�H�H#�P�P �H �H'�P#�P$�H$�H+�P'�P(f�@f�@!f�@%�H(�P+f�@)I������1��
fDI���HcȋL�4��t#f�BI���H�T�4�
�rf�B@�2�JH��H��u�M���IcP ����I���H��H�H9������pH��@�p��p�H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��H�H9�w�M���A�pI����b���Ic@I���H����0�ALJ���t`�
A������1������L��Hc��I��H������I�GA�o I����u���I���D�%D�-�B(A��A���1Ic�H�4II���L��I�
�9�H�qH�=����������I�J�D�B(�9�xH�qH�=���������XI�J���B(��$�A�D$I���KA�zH�L$�;M�bfoL�t$ L���AoL$AT$M�l$)�$��� L��L���H�L$�L��H���L��L���H��$�I�D$H��$�I3L$H1�H	���D�$$D�l$E����D��D�l$�H�=I��H��������I��D������M���H�=t"L��D��L����������������P�|$������E��t$A9u��H�t$�������D���������5���$A�?D�5���t�A�����H�5L���H��tH�����H�f�)�#���A��H�51��H��@�������H�5�1������L���H��������
1�H���I������H�5�1��H�5�1��D�%�D��D$�H�=I��H��tZE���W����7����E1�1�1�1�����������H�=����H�5�1������E��|$������M���2����;�����|$������E������1�H�5L���u������I�}��������1�H�5L���K�����fD�=������-�E���D$A���I���F������H�5�1��������H���H)���H�5�H��1������1�H�5L�����������
����1�H�5L�������A�#��L��H�
H�����1�H�5L���a����ff.����AVAUATUSH��dH�%(H��$�1��D$H���H�������	�;1�L�l$L�d$L�t$H�k�l���������{�ul�;�����L��L���D$���C�����H�H��t�@��H�H��t��{1�����f�|$���=u|H���4��tH��舴��H�������d���1�H��$�dH3%(u}H�Ġ[]A\A]A^�D����������������������{�H�5�H���f����ы{L���A���;����ff.���AWAVAUATUSH���D�=dH�%(H��$�1�E���xH���H�-H�����}����;�DH�-H��t1��H�ED�E���H��$L�|$PD�cA����:E1�A�f�D�
E����D�E��tH�H��t
�@f����L��H��1���H�Ic��D��H�D$PH�D$X����A���?)ѺH��H	��D9#��1�1�A�|$M��H��D9#������H�H��t
�@D9#��A��D9���1�葳��������f������H��$�dH34%(���'	H���[]A\A]A^A_��K���L��$�H�����DŽ$hM�l$H��$�L���H��$L��H��H�D$@����AH����L��DŽ$hH��$��H��$�L��H��H�D$0����PH��$�L��H��H�D$8����+H��$`L��
H��H�D$(����H��$ L��H��H�D$H�A�Dž���H�D$PE1�L�l$`H�D$H��$�H�D$H��$`H�D$f�D�%E����H�H��t	H�=��1��I��L9�t<1��ձ������L���5����E���D�uE���M��E1���V�H��L��H�1���H�Hc}��}L�D$L��H�D$PH�D$X�����������?)ѺH��1�H	T�`1��������������8�����H�t$(1ҿ
�������x������=�����������_����5��tH�H��t
�@f���,���D9#�
D������C�����H�H��t�@��H�H��t�D�c1�D���N����
�����=�����{�H�5�H����������H�H��t�*H�H�������B���(���@H�H��t�@��H�H����������@��8�B����-���DA��D9�����M�����=���������������=�����H��
H��t��D��H�H��t�
�A9����������H�H��tD��҉T$$D�E~:E��~5����T$$A���A������A��u������D�E�U�M�
D9�vH�A�����H��tD�H�5�1�����������D$��0������������H�=��T$���fD�}蠩���C�����1��m���H�|$I���H�|$��H�T$H�t$1�����6���������1�EM��tA�M�gM�g�{E1���C����H�t$1ҿ��������H�=����f��;�������>���fD�D$$��0���d������T$$�W���H�=�T$��T$����fDD�#A�����������fD����R���D�E���B���H�H���2����9�����{�H�5�H�{�w������H�=�����H�=�0�M������A����H������…��
H�{����H�������������H�=�����������H�t$1ҿ�����H����L�=�H��H�H��tH�1�1���L�=A�G��H�H��t��{1�蝦��D�-E��uH�H��t!�E�9~�������;���t������H�t$@1ҿL��$��H�t$01ҿ�H�t$H1ҿ�H�t$81ҿ�H�t$(1ҿ
��kH�LSH��$����$���L��$�������H�=�������%�����������,���H�=��Q���H�H��t*f�C1��C�D$�C���C��T$H�C(H�C �����fD���=��ff.�@��H�������,����LSLSLSLS����������������GA$3p1113GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realign
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONS
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA$3p1113GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1113GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1113GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignGA$3p1113GA$running gcc 8.5.0 20210514GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA*GOW*�GA*GA+stack_clashGA*cf_protection
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GA!GA+omit_frame_pointerGA*GA!stack_realignAnonymous mmap() failedlocalhost%02d:%02d:%02d [%s] [UID:%d][%d] %.*syesnosystem()%s, errno: %d (%s)
/dev/nulllibpthread.sopthread_atforkHTTP_[UID:%d][%d] %s:%s: %s
LSAPI: jail() failure./etc/Can't set signalsaccept() failedLSAPI_STDERR_LOGPHP_LSAPI_MAX_REQUESTSLSAPI_MAX_REQSLSAPI_KEEP_LISTENLSAPI_AVOID_FORKLSAPI_ACCEPT_NOTIFYLSAPI_SLOW_REQ_MSECSLSAPI_ALLOW_CORE_DUMPLSAPI_MAX_IDLEPHP_LSAPI_CHILDRENLSAPI_CHILDRENLSAPI_EXTRA_CHILDRENLSAPI_MAX_IDLE_CHILDRENLSAPI_PGRP_MAX_IDLELSAPI_MAX_PROCESS_TIMELSAPI_PPID_NO_CHECKLSAPI_MAX_BUSY_WORKERLSAPI_DUMP_DEBUG_INFOnobodyLSAPI_DEFAULT_UIDLSAPI_DEFAULT_GIDLSAPI_SECRETLSAPI_LVE_ENABLELVE_ENABLEliblve.so.0lve_is_availablelve_instance_initlve_destroylve_enterlve_leavejailLSAPI_PHP_LSAPI_PHPRC=packetLen < 0
packetLen > %d
Bad request header - ERROR#1
ParseRequest error
SUEXEC_AUTHSUEXEC_UGIDLSAPI: setgid()LSAPI: initgroups()LSAPI: setgroups()LSAPI: setuid()Bad request header - ERROR#2
lsapi_accept() errorPragma: no-cacheRetry-After: 60Content-Type: text/htmlDEBUGINFONOTICEWARNERRORCRITFATALAcceptAccept-CharsetAccept-EncodingAccept-LanguageAuthorizationConnectionContent-TypeContent-LengthCookieCookie2HostPragmaRefererUser-AgentCache-ControlIf-Modified-SinceIf-MatchIf-None-MatchIf-RangeIf-Unmodified-SinceKeep-AliveRangeX-Forwarded-ForViaTransfer-EncodingHTTP_ACCEPTHTTP_ACCEPT_CHARSETHTTP_ACCEPT_ENCODINGHTTP_ACCEPT_LANGUAGEHTTP_AUTHORIZATIONHTTP_CONNECTIONCONTENT_TYPECONTENT_LENGTHHTTP_COOKIEHTTP_COOKIE2HTTP_HOSTHTTP_PRAGMAHTTP_REFERERHTTP_USER_AGENTHTTP_CACHE_CONTROLHTTP_IF_MODIFIED_SINCEHTTP_IF_MATCHHTTP_IF_NONE_MATCHHTTP_IF_RANGEHTTP_IF_UNMODIFIED_SINCEHTTP_KEEP_ALIVEHTTP_RANGEHTTP_X_FORWARDED_FORHTTP_VIAHTTP_TRANSFER_ENCODING%04d-%02d-%02d %02d:%02d:%02d.%06d Child process with pid: %d was killed by signal: %d, core dumped: %s
Possible runaway process, UID: %d, PPID: %d, PID: %d, reqCount: %d, process time: %ld, checkpoint time: %ld, start time: %ld
gdb --batch -ex "attach %d" -ex "set height 0" -ex "bt" >&2;PATH=$PATH:/usr/sbin lsof -p %d >&2Force killing runaway process PID: %d with SIGKILL
Killing runaway process PID: %d with SIGTERM
Children tracking is wrong: Cur Children: %d, count: %d, idle: %d, dying: %d
LSAPI: LVE jail(%d) result: %d, error: %s !
Invalid custom stderr log pathFailed to open custom stderr logCan't set signal handler for SIGCHILDReached max children process limit: %d, extra: %d, current: %d, busy: %d, please increase LSAPI_CHILDREN.
LSAPI: failed to open secret file: %s!
LSAPI: failed to check state of file: %s!
LSAPI: file permission check failure: %s
LSAPI: failed to read secret from secret file: %s
LSAPI: Unable to initialize LVERequest header does match total size, total: %d, real: %ld
LSAPI: missing SUEXEC_UGID env, use default user!
LSAPI: SUEXEC_AUTH authentication failed, use default user!
LSAPI: lve_enter() failure, reached resource limit.prctl: Failed to set dumpable, core dump may not be available!sigprocmask(SIG_BLOCK) to block SIGCHLDsigprocmask( SIG_SETMASK ) to restore SIGMASK in childfork() failed, please increase process limitsigprocmask( SIG_SETMASK ) to restore SIGMASKCache-Control: private, no-cache, no-store, must-revalidate, max-age=0PID<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>508 Resource Limit Is Reached</TITLE>
</HEAD><BODY>
<H1>Resource Limit Is Reached</H1>
The website is temporarily unable to service your request as it exceeded resource limit.
Please try again later.
<HR>
</BODY></HTML>






	


�^�d/4-////%-/Ga'9(�_intG�)@/G��G�@�@�G�@�G���������G����`<E�������!��<|/4�G��@B@+/000000 0@0��4<�G
8�"	S-p"�.$0
�5
�=�>�@
�A
� C	�$E
�(J
�0NL8PX@[+H\+X]+hj$xp4G-	-�	N�1�	ooGGXa�&�&	E�18�:	;�1?A
�B
�C�1GOI	J�K�1 O�Q	R�S
�TU1a�c
Ed
EC^�&e�&g�1 Y[E]ah
�1l5n�o
�1tfvEw
�x@Cp3�&5�&<�&D�b_rtL&VO&i�&p&y5��G1�$	+&	�(	�*	�0	�{	f|�HCIRT �Cv&"7&$	�R� � � E+v"��&T.1	��4��c�	�G@4�H�H�//�-Gldy"m
-91�1�;	�C�m�GFy�<�d(�e���GfI@I@IEIE"�1�	3�6	|7	|8	|9	| :	|(;	|0<	|8=	|@@	|HA	|PB	|XD�	`F�	hH�pI�tJ�xM9�NN�O�	�Q�	�Y
��[�	�\�	�]�	�^	E�_
�`��b�	�g+J�	��	G�	J�	J�	�
G4�'�
�	<
'�
'�
' �	T
h4I
' T
X@!�
	

!�!"!�!��
!��
""F"E"#!�X@$�
i0%9"#��#��#�
�4���G
"&4&6	�&7	��<|"0'1�'3	|'4	|'6�'7�'8	|'9	| ':	|(jtm8(,
(	�(
�(�(�(
�(�(�(�(� (�((0|<
G')�,
')��')��')�,
')��')��H*!B@,H�	

 !"#$%&'()*+,-./0123456789:;<<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������'-$|'-2�'-7�'-;�.U.m.�4�/�"/*/!B@/)�!)./23\^bgl�����00/{�C/�&/�
&/�-&/�=�-G�=G�MG"/�h/�	�4M'/�h'/�h"/��/��/��/�/��-�GK/,/�/�/�/M/�K005�07�08�09�0:�0;
F0<�0=	| 0>�(�,"n1�1�1 
���GkB@2,�	

C2q�&2s9&2t"2k2m
�2n
�2o
�2p
�2u�",2��2� �2�
92�
92�
92�
92�
92�
92�
9 2�
9$2�
9("�2��2��2�
�4��G9�G"2�2�
92�
92�
92�
9"2�G2�
92�
9"2�o2�"�2�"/"
/�
1|
2|
3�
4�k	
:�
<�
=�
?�
@�
B|
C� 
E|(
F|0
G|8
I|@
J|H
K|P
L!VX
O�`
P�h
Q�p
R�x
T'\�
V'b�
W'h�
X'h�
Y'��
Z'��
\'n�
]'t�
_|�
`|�
a|�
b|�
c|�
d��
e��
f�
g�
h��
i��L
k'zL
m'G(L
n'�8L
oE	"0pVr
�s
�uhv�w�x�z�{� |�(��v����Ga�=G�
q�'
s�
w��9��  �  � EM
X��9� �    $�EM
x7=RH H�"XO�YbufP=Q�YinR���G-�G?]!NB@j�~���	���	��	��	��	��	��	��	��	��	��	��	9� � � ��	��
H	�
H	�
H	��	�|	��	��	�	�	��	l��	�"G�	�*	^G�N	��G�t	�N	�t	�G��	M>CQ�	�L	�L	�@	�	J� 	l E	m�� 	� 9��  � � 	� 	� 9�#! �  � 9 9 #!�	@!	!9�Z! �  #!	
g!F!9��! �! |'�!	m!�
�		�
�	�
��
�	�#�	�#�	�*"G&%"	K ��"�������
�	K@�
V#�
	��
	��
	��
	��
	��
	��
	��
	��
	� �
�(�
�0�
�8M�
�"�
z#	V#
@	�	�	
�	
#�	
-�	
�	
�	H�!���x$2cnt�!�U����$2pid�'�U�	�:�
Y�O%2buf�'#!U#in�<O%a��b��c��d���(d��y'd#y'#ctxdH'f@pgy'`�w	&��}�q�`�|	d&��}�q�
`�	�&��}�q��T0
����&������
`��@'��}�q��$^'UuT|�$UuT|-N(3���)#ctx3/'#buf3I�)#len3W@t5�;�(pCy'S��G
?($��$��$��
��J	�(��������U|����v"T�TQ�$U}Tv
��S	*)��������UvTs@Q@
��\z)������n���$UuTv4($(��)2ctx$-'U7
�)!buf(y'
6@t�����5+�*5+�4��H;+�'�2�
v���*������*Us�[�*U|Tszq+U|�jU|T~Q} $ &�ok�	��9#fpk,�pmchn
�no	�p	�5,��
��}�U4Tw��
T,��T0Q:
���
�,��T0Q:����,��UsT0Q:���5-��T0Q:���
�-��T0Q:���
�-��T0Q:���.��T0Q:���
i.��T0Q:���
�.��T0Q:���
/��T0Q:���
P/��T0Q:����/��T0Q:���!�/��T0Q:
�:�B3�:�:N�:%3�:����0��T0Q:���0��T0Q:
#�25B��}NH�M}1e�Y�'�UvT0Q
��S
�14�'�3�U1TsQ��}ʊg
T2��ۊ@�UsT	Q@L�l2Us���2UL��2Us��UT	QvY��2U	Y�	3U	Y�U	f�U	
�{�	�5�{Ռ��3��T0Q:
z�	�4>�>74�r��"4Ts�Us��]4U	T
���4UsT	��
[��5m���4UsT	��5UsT	��,5UsT	��Q5UsT	��v5UsT	���5U	��ʳY��5U	Y�U	;��W6%�;O";#;Y�2x�6k�%2w���~����}׳�6U2T��~Qw�Y�7U	�9Y�,7U	Y�K7U	Y�j7U	Y��7U	Y��7U	�;Y��7U	Y��7U	�<ytY�,8U	Y�K8U	G<Y�w8U	�;Y��8U	�;Y��8U	<Y��8U	Q;Y�'9U	Y�F9U	�^9Us�<Y��9U	Y��9U	Q;{X�9TvQ
| $0.�MX�]�":!p],	_
":�3:=G�E�`:
E-	G	�%��:!p%)
%2|
%=�	'
�:len(	�end)|��:=G��;i�	�pw��!)p�7�
2;env�!)del�!D���T��D���(���;*�$�U(���;*�*�U(��<*�'�U(��G<*�&�U(��v<*�$�U(���<*�"�U(���<*��U(��	=���
��
��H�
-5+fd�
�ret�
��
��
���~�
E��t;�=	
�	
�5
>__d
���U| $ &585>8!�
�O�
�E�O�O�O�O��wP��yP��z%P��{2P��|?P��~LPYPfPsP�P�P�P��t�P��t�P��u�P��vN�P<?�P�P>�P	p?�P��>QT�?Q��?U
���
y��@y!y��
��9C@��������7�@�����*�UvT|Q@�T7��@U}C�
AUAT|Q��t7�"AU}C�GAU?T|Q��tC�lAU2T|Q��tC��AU:T|Q��tC��AU3T|Q��t3�AU	O��AU0��KQ
BU|[�%BUV3KBT}Q0R0X��t�C�|BU:T��tQ0���BUT	��BU��[W�V�BUu7��BU��th�CU��tTAt�DCU0T��tQ��t��L�t��CU2T��tQ���CU	���CU	���CU	��DU	��8DU	��t�iDU2T��tQ0���3�DU0T0Q	���DT0L�C��DUAT��tQ0C�EU?T��tQ0C�8EU3T��tQ0C�\EU2T��tQ0C��EU:T��tQ0���EU	Q��U	
?yj"�FQy-?y+Qy+�y	#/�y+�y#�y�y*�T	Q8ly�

9G~y+�y�y�y*�T	Q8zqQGUsO�hGU03�GU|TvQ0R0X��[W�GU|���GU|T0�Q��HU	L���GHUs?Ãs�x_HUs��HUs?Ãsqp�HUsO��HU0�M
���MM
.5+O
4P
4Q
���}R
E��}S
�retT
�V
z#EactX
���~;�I	�
	�	�
	�5�I__d�
	���;1J�
��#JU
���T7�VJU|C��JUATvQ	7��JU|C��JU?TvQ	C��JU2TvQ	C�KU:TvQ	C�@KU3TvQ	3[KU	O�rKU0��KQ�KU}[��KUV3�KT|Q0R0X�C�	LUAT	Q0C�2LU?T	Q0C�[LU3T	Q0C��LU2T	Q0C��LU:T	Q0���LUT	��LU��[W��)MU	��HMU	��gMU	�VMUu�>
�@�N>
+5+5NC
4O�U0L�
�p��O
*5+
	�
y6
GOy!y�@
��7�N����
��9O�������*�UsTwQ@�����3�OU0T0Q	���OT0L�Q�:�Q
:@z#
;95+act=�	=�	=%�	=/�	>�	>�	?�	@�retA�pidB�	C4	D4	E�	FE	H�	I�F�P	�	�	�	�FQ__d�	�)	��D/�1�T+�:�
6��R�,��	��	��	��	�������%RUT	��<RT9��dRUT	��{RT?�Z���RUT	�RUsT��:�
+��T�3��A��
�T��wi�)�	�S����z���UsT
Q1R
X	���ST0��r���TUT	R��w�X~Y����=TUs˴TTU0��sTU	���T=G�6�����U�|�	��	�`�
�cU��}�q��UsT}Q|ش�UU}T|Q3R!X	�Y}����U	7C
:V
C!�	E	�pidE�	F
�	G
�	H�)	T�	V(.Z��V4�5�6�k�,W2pid4�U��+`�!��}�q�:
�[W*�U6�
���=X�
�fd�
��
���~Elen�
F��~�
=X��~�XU�UT��~Q��~�/XUsT6Q1R��~X4��MXG(�
�{X2fd�
�U8�
��X
�
$�!fp�
>�
�
F��
�l�Y�
*�
5��

=X��~ret�
	�pfd�
	�YSYU�UTsZqYUsTv�88
�Z
8
'
8
@�	:

Zp;
|	<
|res=
�	=
,	>

�	?
	��ZG�
�-��[
6�[
G�ret

	�fd
	�
	��D
	����ZT1Q0��ZUsT2Q1�[UsT1Q2R�DX4�?[UsTvQ} �][UsT|�L�,��[Uv��8�	��[
�	/5+
�	B!len�	L�F�[ch�	�)	�	
��	���^�	05+�	C�	,�		��	�len�	�;�\ch�	�;�\ch�	�57]�	
��U|
���	x]��������T�TQ~
���	�]��������T}Qv��]Uv�U}�	���t^*�	25+U-���	�����	�F��^�	05+#fn�	!�#arg�	,E@p_Q�TR�Qt	�F�p_t	)5+#fnu	!�#argu	,E@p_Q�TR�Q6a	�s�`a	6h#nb	�#fnb	(�#argb	3Ed	#hrete		�qX}	���b	,5+#fn	!�#arg	,Ei 		�len!		�"	|ret#		�$		�;Zb7	Z��}p8	|9	|:	|;	�<	&t<	-t5(�achK	�%O	�F�a__cO	�9�
̋F	
1b���݋r��}U~T��}�#X��|3�bUv3$|"T	v2$}"�X��|���$�_d�/5+#fn�!�#arg�,Ei�	�len�	��|ret�	��	��_d���~5��c�|���&t�-tE�dUwQ R	E�=dUwT| $ &Q R	3QdXv�A"pd=G���
��d2v1�'�U2v2�7�T�|�'f�(5+�;�#h	�#h['f�f$Ff$9fSf^fNkf�elfwf�f�f�f�fU�f�fU�f�f9�R�U|Ts3$"R�U|q|�f
q-5+
q@is	�	t|)p�	�|	�|	��	�&t	�-t)ch��)	��)__c��8<	-�g
</5+
<B!len<O	> �	?p@	A
-	B
-retC	�iovD�g	E��gG����h$5+ret	�n	�
��.ph6�$)���C�P�]�q�Ts��h�hUs���hUs?Ãs^(�i�Ni*�'5+U�"\�	�-���Ä�����	-���j�+5+�5�#off�B�j�N�"\
���j�����g5jUs*�RjT~Q8Z^�yjT�TQ�QR�R^8	- k
(5+
;!lenH	"\	 p!	"
-	#
-	$
-	%	��	-��l�.5+�;|�Hlen�
-�
��	l��$������UvQ|-o�	��������ʊ��l��ۊ@�U~TvQs���l��n�-5+�:|�G�THlen�
-�
-�|�|�|p�|
���	>n��������#nTQs��TQsmo��no%�o�o��U~j�UT:Qs��]�mo�-5++mo�o%�o�o��Us���o
�.5+	�len�
-�|S�p*�+5+U�5�off�	�y�J�qpy&5+��������(nY��pn%5+-`�t��}�$q�K���zqK*5+�h-qUs�gEqUs��eqUs?Ãs^Us-���r-%5+�h�qUs�g�qUsqp�qUs^����Ft�%5+�=X��~Elen�F��~����~
?yPsQy-?y+Qy+�y /�y+�y	 �y�y*�T	Q8zqhsUs��sT0��sT|Q}���sT0�x�sUs���sUv?ÃsqptUs��8tT6Q1R~X4���
�yt*�(5+U����t@FtU	����%w�(5+#fd�2��	�
`��Tu��}�$q�
���
�u������v�T
Y�'�
>vk�%'w���~����~׳/vUvT��~Q��~�
H���ve�Y�'�U	T2ʳ�vU
 ��vUsT
���vUvT1��wU0��wT0�(��Sw2cb�;*UD���T�������x�E��ۄ�wU=T	ۄxU:T	��;xUIT1��WxU2T1�t{xU	T0�����xU	T1��T	A�y
A%5+lenC	�	D	�4�/y!fd4)�	6
/y�?yG+�^y!fd+,�s ���y!fd5�	��y!fd	7���y!fd.�!pktN\��*z
�*5+
�4�	�	�	�|	�|��Wz
�65+	�D��z
D.5+uidF	�gidG	�	H	I	J#h	K#hiL	�1�>{
1.5+
2|!len2�
2+|
26�	4�	5>{-N{G���{
�'5+!uid�3L!gid�>@
�Prv�	�pw��!���{	�6�����|�+5+#uid�7L#pw�L�!ret�	���T��w3o|U�QTs���|UT	Q|Xs�}�|UvT	Q0���$}
�,5+!uid�8L)	��ret�
���r}
�-5+�r}	��}	�}G��}=G#4�}6{���{,5+{?{R}
":��_n~	�
i�~
�~����$z���UvT
Q1R
X	����r��f�~U|Tv*��~U2�Dr��J�[
J%stLSfdM	�)�zrc+	���)uid����
�-5+	�	�i�	�)	�&t	�-t7�
O�
�35+i�	�F2�b��p�|)	�&t	�-t7�v�
�/5+p�b7���
�)Hp�|b��6t��Y�t4htB�*u!Qu#|w#hx
�x�h���!fdh�	j=XlenkFR�ف
R<ف
SH
S+�	U#hh>��
>>\
>L�)bF�62�G���235+2=�p4|v�Tv$�Ă
$+5+!n$5�p&����
05+
:�	|��i�!fd��
�2i�
�<�
�G�ret�	�	�	�n�	���-��!fd�'�
�2E!len�?ret�
-7�
у
�35+����!fd��ret�	�6�
�U���#fd�#��+�val�	����UsT3Q0@�U�UT47wф
wJ\
x&�!lenx0�tR
:A
����A�A2�EsaC���~C�W�UvT0Qs7�o�UsC���UvTsQ0�:8
�υ2sig8!�U:3
���2sig3 �Uu�(7��� .���m�Us@��UT	Q�UR�Tv���v�w��xfmt�'PVbuf�
�T��vyp�|z�	�Eap

��u5���Vtv�E��uVtm����u{i��և����z���U|T
Q1R
X	\i�/�X�����z���U|T
Q1R
X	õu�UsT0ϵUsT��u
��+���۵T1Q}R��u\i�-�������z���UsTdQ1R	�X	Yv�3$"
i�������z���UsTdQ1R	�X	
>�	[�[�O��T1Q	X|r��W
����
�:5+
�D�.�|ʊ�|�."-�"�"E"%.k|6�k�kk.\|`�\�\.>E��>E>�>.'E̋'E'�'.E�G�.��8�� 
��18��.d�i�d 
d<P.A���]__sA�]__nAAP.%|Ռ%%�|sz'
8n���
n8i��
i8	��B�
	��
	�B�S.)�s�))�PW1���1�W"m��"m,mo����o�o�o-o����������ʊ�����ۊ@�U~TvQ|�,��a�q�$ÃSу �G�$�% �L�8�Us�+���
$Ã,�������)�6�C�P�]����UvQ|�,��O�t�
��O����f�T0��,YY����Y�Y�Y��}�Y�Y�Y��}�Y��}�Y�Y�G
g�)�����U|TsQ�
�N
	ʑ)�����UvT|Ql
���
���UsT0Q:
`��
	T���}�q�
̋�
	�����݋
�Uv
6�\

�S�G��)��U|T:5�1�U|T	)�O�U}T]A�z�U}T0Q��}R��}N���U|[���U}�,�U����U�U�UQ�UQVV[�UC
ה$�U�U���U�UVVNV��V+V��UT|Qg���U	�TvQ3�VUu�,�fl�E��fggg,g9gDgQg^gkgxg�f�<	�gg�f%�g��,g9gDgQg^gkg��xg��
��e��6�)���C�P�]�q�TwQ2R}
��Z	�Ä�����g��U~��U~?Ã~*�7�U2T��~�,�9=���	::�п
`:b	���:}:r:�:��_�:�:
��,
2�����s�UwT
��9	������%Ɍ�UsT|Q
��јTvQ0���
3:g6�E:R:H�G��e�Y�'�UsT
AQ
�������Us��ڙUvT2L��Uv���U2T1�}U0T	Qs�9 ]��	:% :�}U0T	Q�U�,�j�����j�j�j�j�j�j�j�jkQk
�j	���j�j�j�j�j�j�j�jkk
��S	�$Ä������?	c���������UT��Qv�g{�Us�gUs^,�[��[�[�[}�[�	�[$�[$�[>�[,��[>�[3g��[�U|-���	��������TvQs,Y�8��Y�Y�Y�Y�Y�Y�YQ�Y�Y@t�U�UT�T,{X!�#��X�X�X-{X�
�X�X�X��՞U@T1�����[��UU��,�x����x�x�x
o�O/���������ʊ
� ���ۊ@�UsTvQ|�
�xAh��x�x�x߁1V۠���O��o�@iš������%8��ʊ�����ۊ@�U}T|Qv�
�yn
���y�yzz��~z��A�
�������%Aˁ+��5R������%5ˁv�Tv $ &33$��A�
��������%Aˁ+��5R������%5ˁv�Tv $ &33$
��	w����O�D��O���	X�]�%�j�
v���������
v��[�������
v����������
v���������
v��6�������
v���������
v��Ȧ������
v���������-v��������S��	K�$�%�>�#)��&�+v��
��%����O2��3�@�
v��
��������
v��
ڨ$������
v��
�$������-v��
$������*z1�	ԩ<z%1Iz�o��UT7��T0Q:���QqR|��
�R|��2�UT	��Z�UT	��UT	QsĂ+d��ւ%+�v�U|Tv $ &
Wzx��izvz�z�z�z�z�z�z
�zj¬�z{	{�z�z#{��~0{��
��9E��������)]�U~�'��U~T|Q �'��U~T��~Q8U%U}T~
N{�
2��{z{m{`{�{�{
�|�
M�$�|�|U}}��~}$}!�
��6}%!�)UT
�Q	R	X
#3%�T|Q	�R	�Xv�}UT	Q0ф-,	��Ƕ��U4Q0R0X0��U	ӶήU|�{�UT|Q}߶��U1T��~��5�U|ӶM�U|߶߶�}��UT	Q0��}ȯUT	Q0Ӷ�Uv�}
�UT	Q0�}UT	Q0L��dd�UT	�9����UT	��UT	`�z	���}�q�
?y��Qy-?y	+Qy+�y&/�y+�y
&�y�y*�T	Q8���UT	��;�UT	��UT	Q
��Ă/I޲�ւ%/�v�T
 �AA3�4E�	�*aw't*�*�585@5R

3
6�7%
~8*�9D*t*n��)K*k��*�*�*wpA
f
:96�6�6f
�6p6�*9+S;
3�;!3[%dupdup***�X3�&D)�]Z<4AA��::+O#3�=t0�0�
>"?o�363�A*��@'n*�A�*�A����B1�B(��1
:;9I841�B��1��1	4:;9I
1R�BUXYW:;9I�B4:;9I�B
:;9II:;9I4:;9I1R�BXYW.?<n:;94:;9I4:;9I�BI41U.:;9'I :;9I!I/.?:;9'I@�B4:;9I41
:;9I8.?<n:;9 I!:;9I":;9#:;9I�B$1%&
:;9I'4:;9I?<(.?:;9'@�B)*:;9I+1R�BXYW,.1@�B-1R�BUXYW..?:;9'I 4/$>0(1:;92:;9I3��4&I56.:;9'I@�B7.:;9' 8.?:;9'I 9'I:.:;9'@�B;U<7I=!I/>1?��1�B@���B1A.?<n:;B>I:;9C:;9D.?:;9'I@�BE4:;9IFG5IH4:;9I?<I
:;I8J<K:;9L
:;9I8M:;9IN1UO1PQ41R'S1XYWT.?:;9'@�BU1UV4:;9IW.:;9'I X>I:;9Y
:;9I8Z���B1[1UXYW\1R�BXYW]:;9I^%_$>`a:;9b
:;9Ic'd&eIf:;g:;9h!i(j:;9k:;9l4G:;9m'In���B1o.?:;9'I@�Bp4:;9I
q��r���Bs.:;9'I t.:;9' u.:;9I v.?:;9'@�Bw:;9I�Bx:;9I�By4:;9I�Bz4:;9I�B{1R�BUXYW|4:;9I}1UXYW~.?<n.?<n:;9�6ddqd	��T�)�T���u��P�P�P(�P�PsP��P�KP[�P�"R+�R��R�JQ^�Q�5Q5<v �<�Q��{ ���P�Tt ���_��X
~X��X�[Ti�T�2TA�X��X[P[aQx�T�4T@�P�P{P{t ���X��R��r �t;# $��������%!r"�p;# $��������%!r"���u�?[g�R�SRb�R�HRQ�R�R {R��TKTi�Q�X%vXvzr ���TiT��T��Q��q ��R��u.�Q�2QH�Q�+Q4�Q��QoQ��Q�;QQ�X��PiR~�R��v ��FRFW{ �_�R��z ��QK$KU$K�KV�K�K�U�KIKTIK�KS�K�K|h��K�K�T�K.KP.KPKQpKuKQuK}K?p� K$KQ$KLKUpK}KU3KFK	q�����3KFK0�3KFKUQKpK8�QKpK0�QKpK\pKyK7p�����yK}KQpK~K0�pK}KU�K�K@��K�KU�K�KS�K�KV�K�KX��K�K0��K�KS�K�K|h�JlJUlJ�J]�J�JU�J�J]�J�J�U��J�JUJ0JT0J�JS�J�JT�J�J�T��J�JS�J�JT�J�Js@��J�JS�J�JSJJQJ�J^�J�JQ�J�J�Q��J�J^�J�J^7JTJPWJZJp?�ZJaJPaJtJ\tJ�JP�J�J_lJ�JU�J�J|����v"�|J�J_|J�JS�J�JT�J�J�T�|J�JU�J�J|����v"��J�J@��J�JS�J�JT�J�Js@��J�J}��J�J	~������J�JQ�J�J\�J�Ju�`I�IU�I�I\�I�I�U��I�I\`I�IT�I�I�T�`I�IQ�I�IV�I�Ivx��I�IV�I�IV`I�IR�I�I^�I�I�R��I�I^`I�IX�I�I]�I�I�X��I�I]dI�ITdI�IUP@c@Uc@CVCrD�U�rDEVE.E�U�.EeEVeElF�U�lF;GV;GTI�U��@�@P�@�@P�@�@P�@APA0AS0ACAPVAiAP}A�AP�A�AP�A�AP�ABP$B7BPKB^BPrB�BP�B�BP�B�BPrD�DS�D�DP�DEPEEPEESlF�FP�D�Dsp"1�D�DP�@�@P�@�@PjApAP�A�AP�A�A0��A�AP�B�BP�D�DP�D�D0�.E4EP:EQEP~@A0�A!AP$A�C\rD�DP�D�D\�D�D0��D�D\�DE0�E�E\lF�F\�F�F0��F�H\�H@I\EITI\�@�@P�@�@PAAPAAS5ACAP[AiAP�A�AP�A�APBBP)B7BPPB^BPwB�BP�B�BP�B�BP�FGP"G,GP'CQCPE#EP HQHP�F�FPG!GP;GPGPPGTGUTG�GV�H�HV�H�HQ�H�HVI;IVEITIV�F�FPG!GPDGPGPPGTGUTG�GV�H�HV�H�HQ�H�HVI;IVEITIVWGpGPpG�GS�H�HSI%IS%I6IP6I@ISEITISDGWG0�DGPGPPGTGUTGWGV`GeG��}�eGpGQpGqG��}�`GpGPpGqGS�G�G@��G�G
��G�GS]CtCP{C}C0��GHPH HPfCtCP�H�HP�HIS<FOFP�H�HP�CDPDDp�DKDP0D8DQ8D<Dqx�<DDDQ�F�F2�P?W?UW?^?u�`Y�YU�Y[S[@[�U�@[dSdZd�U� Z[\�]�^\�^__\�_2`\�`a\�a-b\dUd\�Z�ZP�]�]Pp^�^P�^�^P�a�aP Z[^�]�^^�^__^�_2`^�`a^�a-b^dUd^aZdZ	| $ &�dZhZUhZ[	| $ &��](^	| $ &�p^�^	| $ &��^__	| $ &��_2`	| $ &��a-b	| $ &�dUd	| $ &�(_A_:�A___P@[�]S�^�^S__�_S2`�`SaBaS�a�aS-bdS@[�]V�^�^V__�_V2`�`Va9aV�a�aV-b<bVFb�cV�c�cV�cdV[`_`P_`�`_�a�a_Fb�b_dd_@[~\0�~\�]_�^�^___�__2`L`_L`�`0�a9a_�a�a0�-b<b0�Fb�c0��c�c0��cd0�@[~\0�b]x]P__g_P-bFb0��c�c0��`�`P�a�aPFbJbP@[~\0�~\�\^�\�\P�\�\\�\�]^�^�^\__�_^2`�`^a9a^�a�a^-b<b0�Fb�c^�c�c0��cd^	@[~\0��\�\P�\�]\�^�^\__�_\�_�_\2`�`\a9a\�a�a\-b<b0�FbBc\�c�c0��cd\]]v� $ &�]]U__p_0�p_�_Q�_�_��t�_�_��t�1��_�_|��_�_|~��_�_|��_�_|~��_�_|��_�_0��c�cV�c�c4��c�c
��c�c����c�c@��c�c6��c�c\M^`^sM^`^sM^`^sM^p^
�M^`^s�a�as�a�a
��a�as0;t;Ut;H?��}p;u<0�u<�<^�<�<P�<�=]�=�>]�>,?0�,?C?]p;u<0��<�<P�<�=]�=�>]�>,?0�,?C?]p;u<0�u<`=��}�=�>��}�>�>T�>�>��}�>,?0�,?,?��},?C?0�p;u<0�u<@=V@=V=PV=�=V�=�=P�=�>V�>�>V�>,?0�,?0?V>?C?0�p;`=S�=:?S�<�<s� $ &��<�<U�=>0�Z>c>0�c>{>^{>�>~��>�>~~��>�>~��:;U;/;S/;0;�U�;;P�9�9U�9�:S�:�:�U��:�:S�:�:�U��9S:\�:�:S�:�:@��:�:6��:�:W�:�:4��:�:
��:�:�H�4U4������U������
�U�
$��$6U40�4�^��^
$^$60�4�0��00�0T9�r�0���?�
$0�40�4�_�\_\m�m�_
$_$60�40�4K\K�V��\��V��\
$V$60��S��S
6S�]�]
6]��U��S���U���S���U���S�T.V.��T���
���
�����w���SP'S'Wv(drPrxS��
���
���p`#���p`#� 
<$��c~`#� 
<$�dx~`#� 
<$���
v�v�"���P�c^dx^\0�PS�89P�8:9Q��P�+	P��Q��Q	+	Q	#	0�	#	0�	#	P�	
U
s
�U�
)
P)
>
S>
k
Pk
n
Sn
r
Pr
s
S 7L7UL7�7�U� 7H7TH7w7Vw7x7�T�x7�7VM7Z7Px7�7P�5�5U�56V6?6�U�?6�6V�6�6�U��6�6V�6�6�U��56T6?6�T�?6F6TF6�6\�6�6�T��6�6T�6�6\�6�6�T��6�6P�6�6P�6�6\T6g6Pg6�6S�6�6UF6�6]�6�6n��2(3U(3�4\�4�4�U��223T23(4V(404T04�4�T��223Q23�4]�4�4�Q�63Y3PY3c3p�c3t3Pt3~3^�3�3p��3�3P�3�3S�34P4,4�,4h4�L3p3Qp3~3R�3�3Q�3�3R�3
4T
44tp�44T414^4(4V(404T0414�T�404|�I4R4QR4S4VI4R4TR4S4]I4R4|�_(l(Pl(v(u�_(v(3�_(l(u��l(v(P�'�'U�'�'�U��'�'U�'�'T�'�'Q�'�'�T��'�'T�'�'Q�'�'R�'�'�Q��'�'QP''U'�'�U��'�'UP'�'T�'�'Q�'�'�T��'�'TP'�'Q�'�'R�'�'�Q��'�'Q0`U`S��S��U0`T`�^���T���T0`Q`V��Q���V���Q���Q0`R`]��R���]���R���RD�\��~1$~"3$�U"����T $ &33$�U"���\��~1$~"3$�U"����T $ &33$�U"���\`iP{P0%�%U�%&S&�&��}�&+'�U�+'9'��}9'@'U@'E'�U�0%�%T�%&_&9'��}9'@'T@'E'��}0%�%Q�%9'��|9'@'Q@'E'��|�%�%V�%�%v�b%�%0��%�%p
���9'@'0��%�%Q�&�&Q�%�%P�&�&Pb%�%0��%�%^�%�%~��%&^&'��}+'9'��}9'@'0�c&u&��}�u&�&]�&�&}��&�&}��&�&]+'9'��}�K&�&_+'9'_c&�&S+'9'SK&X&V_&u&Vu&�&��}�&�&t��&�&T�&�&��}�#�+'9'V�%'\+'9'\&&P&'��}+'9'��}�&�&V�&�&v8$8&2$p"�&�&
v8$8&2$p"c&c&5�c&c&
�c&c&^#|$U|$�$�U��$�$U�$%�U�%%U%$%�U�#w#Tw#�$S�$�$�T��$%S%%T%$%�T�#w#Qw#�$V�$�$�Q��$%V%%�Q�%%V%%Q%$%�Q��#�#P�#�#p��$�$0��$�$0��$�$^�$%^<#w#0��#�#r
����#�#t
���%%0��#�#Q$$q$!$qpI$Y$RY$m$q%%qp�$�$P�$�$P�$%P<#w#0�w#�#\�#�#|��#,$\,$_$|�_$�$\�$%\%%\%%0�$!$T3$m$T%%T%%q`$!$X>$B$RB$�$X%%X�#�$P%%P�#�$Y%%Y� !U!7!S7!p!wp!{!��{!�!�U��!�!S�!*"w*"�"�U��"�"w� !T� � u�F!q!S�!�!S�!�!s��"�"S�"�"P�"�"P{!�!|�I"o"|�o"�"P{!�!VD"�"V�"�"v��"�"V{!�!_I"�"_{!�!}D"d"}{!�!]"�"]{!�!^"�"^o"�"q2$u"�"�"q2$u"o"�"v�8$8&2$u"�"�"v�8$8&2$u"�"�"v�8$8&2$u"�(�(U�(=)S=)>)�U�>)Q)UQ)b)Sb)�)U�()0�) )P!)&)	��&)<)P>)�)0��(�(u�u�@��()Q>)Q)u�u�@�b)|)u�u�@��()P�(	)s��	))T))s���()s�()Pt � u��� � T� � p� � p#�� � p`#�� � tp#�� � Q� � P� � 4�� � T2D2UD2�2S�2�2~�~��2�2�U��2�2S�2�2~�~��2�2�U��2�2U2D2TD2�2V�2�2T�2�2�T��2�2T�2�2V�2�2�T��2�2T2D2QD2�2]�2�2Q�2�2�Q��2�2Q�2�2]�2�2�Q��2�2Q2D2RD2�2\�2�2R�2�2�R��2�2R�2�2\�2�2�R��2�2R2)2u��)2�2^�2�2�U#���2�2^�2�2�U#���2�2u��U2Z2|�Z2u2PU2u24�U2u2^`�U�< ]< H �U�H b ]b k �U�`�T�< VH b V`�Q�5 SH [ S[ ^ sp�^ b S��P��}��q $ &���}��}�� $ &���P��\H b P��P��0��< \H b \��P��\��V 0 SH H S 0 VH H V 0 ^H H ^   PH b P  S  V  ^�ZUZ�^���U��H^H\U�QTQ�]���T��H]H\T�ZQZH�Q�H\Q�ZRZ�\���R��H\H\Rl�S�HS?ZSZ�_H_HRSP\��QTQZ]Z�V��U��V��V��U�HVH\T��T��_�_��P��P��S��S��_��_��U��V��U(4^(3	p $ &�37	s $ &���U��S���U���S���U���U��S��s��s�� $ &�0yTy��T�MYQYn	t2$x"#4nyR��U�)S)*�U���U��P���U�������0��/�/U�/0S0	0�U�	0#0S#0)0U�./U/[/S[/\/�U�\/a/Ua/o/So/u/U�W�WU�W�XS�X�X�U��XYSYY�U�YPYSPYUY�U�Y#YsY#YsY#YsY0Y
�Y#Ys�	U	S"�U�"rSr��U��'T'V"]V]_P_rVr�T�dlP3
	�30�3}@�3}S?LPL}\��V]d2�]d
�3JP,2,U2,h,Vh,k,�U�k,�,V,<,T<,j,\j,k,�T�k,�,\,G,QG,�,�Q�-,H,0�H,L,Pk,�,P�,�,R+:+U:+�+\�+�+�U��+�+\+:+T:+�+^�+�+�T��+�+^+:+Q:+V+SV+�+�Q��+�+P�+�+p $
 $-(�q+�+
�q+�+
��
�
U�
�
uh��
�U�
�
T�
��T��
qRqw�R�wyRy��R��
qZw�Z�
�
0��
[p���*X-q[q�0��
�
0��
�
T�
�
t��
u|�#�-4T47p���DWT^bt�bqu|�#�q�0�0	C	UC	n	Sn	p	�U�p	w	S0	G	TG	o	Vo	w	�T�H	_	P_	i	s�p	u	P�	�	U�	�	S�	�	�U��	�	S�	�	U�	�	�U��	�	S�	�	T�	�	V�	�	�T��	�	V�	�	�T��	�	V�	�	P�	�	P�	�	P0_U_�V���U���V07T7�\���T���\@JUJrVrvQvw�U�@UTUcScvRvw�T�@�U�V}�U�}�V�.�U�.�V��U�@�T�|]|}�T�}.].5T5]����v���\�S}
S
R.:��v�:�\��S��\��S�	P}�P��v����
���
���\c�
�c�
�c�\SWRWX��u�SWQWX]SWs}�
�}�d�}�S��
���d���U��S.
�
(s��U�
S

�U�

S
$
�U�$
*
U��Q$
*
Q��P
)
P)
*
u �t $ &���P�
\

\��T�
V

V�
^

^��P�
]
$
P��\��V��^G
P
P�
�
U�
�
V�
	�U�	�V��U�
�
T�
�
_�
	�T�	�_��T�
�
Q�
�
\�
	�Q�	�\��Q�
�
R�
�
^�
	�R�	z^z��R���R�
�
P�
�
S	%P%XSXdPd�S�
�
R�
�
]	�]��R�U�S��S�(S�T�V���T��9V4��}�4�]��}�*\k�P��S(P(QS�*S��0�4�^�0�QTPThSs�S'<��'<S',��}�,<\��l���\��U��v�FQSs�0�s�0�s���}���Q��|��������Q��|��V�\dUd��U�}�P��_�U_/0�/LPLn_��_��Ud�S��P�nS��S��P��Sd��n������������P������P�Q��Q��R��X�)�)U�)�*^�*�*U�*�*�U��*�*U�*�*�U��)�)T�)�*��~�*�*T�*�*��~�*�*T�*�*��~�)�)Q�)�)w�)�*�Q��*�*Q�*�*�Q��*�*Q�*�*�Q��)�)Q�)�)w�)�*�Q��)�)T�)�*��~�)�)U�)�*^*�*S�)*��~*`*_`*v*��v*�*_&*f*Qf*�*���*�*}x��*�*Qj*�*]�*�*P{*�*P�*�*]{*�*2�{*�*w{*�*~{*�*P�*�*]{*�*2�D*T*q�T*j*PD*j*6�D*j*\�,-U-�-V�-T.�U�T.�.V�.�.Q�.�.�U��.�.U�.�.V�.�.U�.�.V�.�.�U��,�-
�T.q.
��.�.
��.�.
��.�.
��,-W-�-ST.q.S�.�.S�.�.S�.�.S�,-U-{-V{-�-ST.q.S�.�.U�.�.V�.�.S�.�.V�,V-0�V-h-U�.�.0�r-�-P�.�.P-
-
�-
-W{-�-��_��-�-\{-�-S{-�-
��-.S*.T.S�.�.S�-�-P�-�-V*.;.P;.T.V�.�.P�.�.V�-�-
A��-�-Sq.�.V�.�.Q�.�.�U�00�0U�0�1S�1�1�U��1�1S�1�1�U��1�1S00�0T�0�1���1�1�T��1�1���1�1T�1�1���1�1�T��1�1��00�0Q�0�0V�0�1�Q��1�1Q�1�1V�1�1�Q��1�1V�0�0V�0�1�Q��1�1�Q��1�1V�0�1���1�1���1�1���0�1S�1�1S�1�1S�0�0]�0
1T
11x1b1Tn1�1T�1�1T�0�1V�1�1V�0�0���0F1^F1R1rpR1�1^�1�1^�0-1_-151x51�1_�1�1_�0b1Yq1�1Y�1�1Y�1�1Y�0�0R�1�1R�1�1
@��0�04��0�0T�1�1V�1�1���1�1_�45U5%5�U�%5/5U/5�5\�5�5�U��5�5\�5�5U�45T5%5�T�%5F5TF5�5V�5�5�T��5�5V�5�5T�45Q5%5�Q�%5P5QP5�5�Q��5�5Q55S55s�55}�%5�5S�5�5}��5�5S55P55st"%575P75F5st"1F5f5vs"1K5`5T`5b5tp�b5f5Tq5�5Sq5�5Vq55|�7
7U
77�U�77U7
7T
77�T�77T�7�7U�7�8�U��8�8U�8�8�U��7�7T�7�8V�8�8�T��8�8V�8�8T�8�8V�7�7Q�7�8]�8�8�Q��8�8]�8�8Q�8�8]�7�7Q�7�8]�8�8�Q��8�8]�8�8]�7�7T�7�8V�8�8�T��8�8V�8�8V�7�7U�7^8\�8�8\�K	LU	LWL_WL�L�U��LP_P$PU$POW_OWTW�U�TW�W_�L�LP,LWL\�L�L\,LWLV�L�LV,LWLS�L�LS=LGLP�L�LP,L=L\,L=LV,L=LS�LP_OPOW_TW�W_qM�MP�LPSOPDUS\UOWSTW�WS�L�L1��L�LP�L�LQ8MqMV8MqM\.MqM]NMXMPqM�MP8MNMV8MNM\8MNM]�MPSOP,RS\U�USV0VSW/WS�MP_OP,R_\U�U_V0V_W/W_�M�M
p�1��OPQ
p�1���MP\OP,R\\U�U\V0V\W/W\�MNV�MN���MN���MNV�MN���MN���MNPNONVNON��NON��!NONV!NON��!NON��8NONPyO�O_RiR_�RDU_\UV_5V�V_4WOW_TW�W_yO�O�#R,R�#\UhU�#yO{O0�{O�OP�O�Op��O�OP�O�OROPQ_OPQPOPkPp�OPQp�SPkPQkPyPp�kPQp�oPyPQyP�Pp�yPQp�}P�PQ�P�Pp�P�Pp��PQp�	�P�Pp�P�Pp��PQp�	�P�Pp�P�Pp��PQp��P�PQ�P�Pp�P�Pp ��PQp �	�P�Pp!�P�Pp$��PQp$�	�P�Pp%�P�Pp(��PQp(��P�PQ�P�Pp)QEQPEQIQp�"Q'Qp1$q""Q.Qp1$q"�3QEQQ3QEQQ6QEQRiQ�QP�Q�Qpp��QRPpQRQ�Q�QP�Q�Qpp��Q�QP�QRpp��Q�QR�Q�QR�Q�QR�Q�QR\U�U_iU�UPvR�RVvR�R_�R�RP�RU_�UV_5V�V_4WOW_TW�W_�RDS\DSGSPGS�Sw�ST\�U�U\�U�U0��U�U\�RKS]KS�SP�S�S��~�ST]�U�U]�TUP�RU0��UV0�5V�V0�4WOW0�TW�W0��RSZS�Szh��U�Uzh��U�U0�S�SZ�U�UZ�R�Rp��R�SX�U�UX_S�S__S�Sz|_S�SR�S�S��~_S�Sz_S�Sz�S�S\�S�S}p��S�S@��S�S
��S�S]T�T0��UV0�5V�V0��V�V0�4WJW0�TW�W0��W�W0�TT��~�U�UP8VXV\�V�VVT�T_�UV_5V�V_�V�V_4WJW_TW�W_�W�W_^TpTPyT�TP�T�TP�T�TP�U�UP�UVVAVXVPiV�VP�V�VP�V�VP�V�VV�V�VP4WIWP�W�WP�W�WVT2TP2T�T]�U�UP5V@VP@VXV]XVzV0��V�V]�V�V]�V�VPTW�W] T�T_�U�U_XVzV_�V�V_TW�W_ T3T	��3T;TPTWgWPhW�W_UUH�UU0�UU
�U4UU4UU4UUDU
�U4UPJP
 �P$PU$PJP_.PJPP,�d�


�


��������9>ACFQxx|��������� *)SX����
05:������@n��Oh���"'3"'3TY}O[]d�RV]���������������������� 0 P P  0 P P � � � � � � {!�!�!""�"{!�!"�"`"h"p"�"�"�"`"h"�"�"�%'0'9'.&5&B&G&c&c&_(e(l(v(�(�(�()	))�)***`*f*{*�*D*D*I*Q*;+>+c+n+q+�+�,�,�,�-X.x.�.�.�.�.�,�,-
-�-.0.X.�.�.�0�1�1�1�1�1�0�0�0�0U2U2`2j2D3c3k3~3�3�3�3�34%4,41464<4I4S455+5�5�5�5q5w5{5�5�7�7�788�8�8�8�8�8s:}:�:�:s:}:�:�:�:�:�:�:�:�:O<T<�<�<�<�<�=>`>�>�@�@�@�@�BQC E0E�FH HXH�H�HI;IEITI�F�G�H�HI;IEITIDG�G�H�HI;IEITIQC�ChEpFH HXH�H�HIhE�EXH�H�HI�EpF�H�HdIdIxI�I_J�J�J�J|J|J�J�J�J�J�J�J�J�J�J�J�J�J�J�JpKpKuKwKyK~K�K�K�K�K�K�K�K�K,LWL�L�L0LWL�L�LWL\L�L POPiSiSUUUUOWTW�W�MPOP,R\U�UV5VW4WyOyO�O�OOP\PaPdPhPkP\PaPdPhPkPrPvPyPrPvPyP�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�PQ�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�RiSiSU�UV5V�V4W@WEWOWTW`WcW�WUSeSiSiSiS�S�S�SUS_S_SeSiSiSiS�S�S�SiSqS�S�S�S�ST�T�UV8V�V4W@WEWOWTW`WcW�WTTT�T�U�U�UV8V�V4W@WEWOWTW`WcW�W T;T�U�UTW`WcW�W T;TTW`WcW�WUUUUUDUYYYYY0Y�Y�YZ ZUZaZZZ@[�]�^_`_`8`�`aHa�a�a0b<bFb�c�cdZ\_\]	]]]:cBc�c�c:cBc�c�cM^M^M^M^M^p^
R��
/usr/include/bits/usr/include/usr/include/sys/usr/lib/gcc/x86_64-redhat-linux/8/include/usr/include/bits/types/usr/include/netinet/usr/include/arpalsapilib.cstring_fortified.hunistd.hbyteswap.hstdlib.hstdio2.hfcntl2.hstdlib.hstat.hlsapilib.htypes.hstddef.hfcntl.hstruct_timespec.hstat.htime_t.h__sigset_t.hsigset_t.h__sigval_t.hsiginfo_t.hsignal.hsigaction.htypes.hstdint-intn.hstruct_timeval.hselect.hstdarg.h<built-in>struct_FILE.hFILE.hstdio.hsys_errlist.hresource.hstruct_iovec.hsocket.hsocket_type.hsockaddr.htime.hpwd.hstruct_tm.htime.hunistd.hctype.hconfname.hgetopt_core.hstdint-uintn.hin.hnetdb.hun.hlsapidef.hstring.hresource.hdlfcn.hsocket.herrno.hselect2.hsched.hmman.hsendfile.huio.hstrings.hinet.hwait.hprctl.hgrp.h	�K�K��.K5��J/�I#KK1
0	z
zJ	Z	"OJJ�= ...v �<Kg�fJ��.T2KxJ.n=@�<YDw<<=�:/;<�;/u;=IK=H</փ-K-=>:X�-=;=0:/;=I</�/sf�=H</[G��-K-=��18=;=0:X�;=-/�I=;/�?Gf�-K-=�I<�-=��;=-/�e=-/�t�0���/���/���-</��-</��-</��-</��/���/���-</��/���/��-J=�t=��Y-</ȑ-</�J>Xtu-=ttu;/�K-=-/X��-/t��;/�g�K-=Y-=;=J�;=�/K-=-/X��;/��u-=ttu-=�K;</f�;=;/f�u-=t�.V>,>t�;=�/.K-=-/t�-=-//-/-X�.I</t�.W=-/0,0,<�.W=-/t�/�t�;=;/<t�.W=-/0:0:<�.W=�/.�:==:</�=;J=u�I=-=.Y�x =5 x./yJ.K0+=0+/.Z1Mz.?/=:===�`�[+�/�{�.	��r	�	KZ.��4tKK
	Z	�	J
sJX/
t 
OJg8��j
�� �n�!;K;KJYZC%t!K%K:K%K/X X�~�!-/-!WgY	L
Xf  	zt
Z@F�2
yt<���/
��	�
X/	Z�J
v �0X	�n	�<
JK
	�<<x�	��	�	=	=#	=E	K#>H	>#	K#	=
l	Z<<	h	u$I$K="IY<IJ	=$J$<=;"<J	=�v�XF.L
L
=/d f.L
u/��O7@p$ti�k<�=<><V=�
Wu�k�i
��I)HKI,IKI,<K*Iu*u,1K,�uY�	r u	;Y�v�VvV�M,U	i+h]q<.qJXq<3 q3J�v<v	�|
	�fX.X��	< X	�vJ�		Yh x�`
�ut
h.s�		uXX.X	�
	su	Y
yJ	t	Yt'X
	w
	��	�
�	/J
iX�<%<
`t
=X��I/7L*J<_C=&<K
�X._�<t
eX$.�~�	"fN	f	K
txX
	`x �t�.eX/g�.J.X	�
I
Jw�l
X��
V�	�Y�	K	Y	�?U	Lj 
��k<�Lt	�
�lX��	K�l
�	��.�	��Z�	K	�	�>V	La$f	�mX	�X�m<	�.>�m��<�XN1+	p��k"�
�kJ�J
�k.X�X"~K
�k��	�	[X	O(�kX
	�<
�kX�	�
b�>=E<>:<Y<;
=
v�k<�qR<
!��l
�
�
�l<�����l�z/	�f�X<	Kf�fk�v
�~��*�~
X�$	rJ�~
#��.?f	h
�~����~<
��.<1	��~)�	<
�~t)�X
�~<<t	�
�~XX	����
��~
/�.<<
zf�~�
�~X�.
�~t.�J<<X�< �
�W=�
ڬq		K	�ff
L
4z�
>=
jtt		�	�	�
Z-JJXf�t
X
L!s
gf�
�
fF�
J
Y�	Y
:�"foXXXJlt0�
hd/	L.XN�6�g	J�	y��i<
X$	��	Z
���
4�tKK
	�;:|".<
Z
IY�6t��(f+K"JMX"X<�
mJ<	&�
AJ�X0J
X��XXV�$J)�I�!4f<9X�!Jh
.$r.XX`KJ
Jt5<uY�"J
q<%�
3$x.`XYBW[$g	
�	F�	x	\	*2.	F^�	\t;:�j KK-uYI��X	�Ki+J��JK�2K�Ku\�/
�u���
 �u
(�tX
�|��
�x(��9?JL6�J9�xX<u1tu��6,XJK�,@g
L,K /sJK u
X�Q�y��XKEW	\�	gx.	<	%
	/s	uZ	p��tt��	/�t.X	��o� t�K
!fJ/	kt	Z�s	gY���	Z	�Y�	g	Y
�#!�xwJ��K�xJK��K!JK
�sJ��
�s< !�KJ9J!JK!��s
f���K =J	YYt	YYt	YYJ	YY<xK�	t<YL	,<W	ue	[A<v v�.�KXe#��!CJ;�CgK	EdX�` x DNK$�JGMY�<,�"g
< 	�
�	=	�&>	t	u
X	�
Y
�r<�
f	K�r
�
<
�r<X	�
	v	v

�[L	qX�r
�
�
�r<X	�
ltXrl.<	v
h
�K�1<
z�'�K��,�M�;�!?qL	�/	Z(>
�rJ<J(�

�r<<<	�
�r
X	�
	u	=
>	h�uJL	�|
�	�fX.X��

]u	�u<�

Z
=
=
y<kJ��K,&J"I�rt�
�&s=�r<�
!�rff�
	"yJD!I�K	L%;	K%H	K	KK��K.7���
�.XB#I1u#J
Q	
F	Z�
KNJ U�
	X

�hJ.$.�Xhr	�/X
L�*~Jf-�S.	LKI	u	YZ�
�.HJ
K
Y)�%f�X80��JJ
)X%<�XX�$�%4HJL<�0�YBL=;B=Vv<��)/Mt	z�0<6u 	zt/�
L4K"vI4H
="
@"F
�%#K%W
Yz
Q*uJf�	�	uJ	K
�mJJ
�.I

<vJ
uMF
=0J
u)
Y%#K,K"9
=&
=�X	�YsJY	FX:�JJ	Z	LN*<xX�<JX>tJ�	e
<	7/t�
L4K
xH4�
=
K
�*v�Jf�J	�	uJ	�
�Y.W
�mJ�t
�m��X
K�
t
K�m
�\�x JYKWiX<JJz
�NS
=;0WX
Y)?
K
�
LeJf<Ki*�_8t�K��)^	~tf<_�K��z.`	z�tf<	X�K�JZfv*=�gJ	Z
AK=%,	=%H	KM,
tY,Lh�o!(�f�ot��(=-Kl X�|�K���<x� <�	��o�.K	M�s�f�sf�tJt	
��	Z	�93JJM _<� .	j�y��	�93JJ	Kw '� K�"�f/�	s�	�XM
X
X�
mXL
�
f	��	y��r�
�rX�'�
=PY�r<f'�	Kz<	�	Y�r�	�
.
Z
j�
fX��	]XX$XZ�&��v��/8�
�yX
�<t
�y�
���y<
��	��;	Y3�4J�J	�
�/<0��/Y;K;=�R�.	z XZw� �/J�8fC
�b�<	h�b
�X�	�<	=	K<Xh���a
����	X�+^�aX��^	t	�Y=-Xu	g+�uJit�#	Y�E<�7	]�X	gv.X	g.X�m�LZ
fF&	t
0
N�
�)J
x)8
=)H
�
uK	Z�/ Xp�ytK�
h�/a<'	t
0
Q�
�)J
x)8
=)H
�
uKY	��/ l�m.�tt��Kw	�"
g;�L	p�<>J:h6t�
YGu	
uf>=
.
f	�	K�	^�tj
�!�tJ<	�	jF	�%	=%H	�K
Z7)K
LK)8
K!
K	2%o	=K%:	K2	GK
��_X#<
]<
<&�	Y�ZX
[f<Ȃ	_Xy�	��q
�	�	K��K&�,���N>:hZ�s"�	[�sf�	�"Ui	XigY ..-	s�X� �... ��K� fh00<
�=
�	h+<	Y�
u<
	�	YJ�z�

.	L+<	g
/.
	L	gJ�	JK�*X.X	v6=�	Y;�	u/X��l
�f?
�lJX�Y
�l�f"�K�l
���"�K8G��8=�P.4XK% ���	�	�
�
J.J�p<J*<X	v6=�	Y;.	�/X��l
�f
�lJX�Y"�=8G��8=�I/..c<�<jBz<�	�
�sX&�`"
f
�[�Z�	M	�
L
��Y0	U==YK^f	�4I	gY��K��$�/fY	L��	y�^/�K-%�]��
��	K+/X�>0XX�<u��j�	YvXg
YIgZ$�Hv&L<X�(.=	/.u.�Z.fJOwX(WuO=.ft"<*w 
<K	t	Y /?�N&tuKK
	h	g
G]	t	Y�	t	Y��tM
� �
t�����	�
YIgYJvY�Y�g	r�	Y
>v	t	YK��,�	<Y��	._�h���o<�x
�}�<J��u
��

Z�L
X�w	v�Y-�)X
f\Ks =K	v.	Y
+J	K'J�u<$RxtXp�/Zu:��Y	<�u:��Y	<	�-;	�-;	�-;�bX)	�<]X�&ZX�
_	#�#t
Y	�	�
Z.X
��<L�	��	y}	Af<X1d�	��	9�	+Y	��
�X)�////0
A1t
[J	.<%<;
� <3�
�l
z<�)�
>K��YWJtbXK �X	9��	�

ft
"u
;	�<u	WY	rXu	WY
�X"0", XX
LX��J<f?JfjK
t	Y*=�K	t	�,=�K	t	�0=�K	t	�.=�K
t	Y,=�KgjK�K�2K��	�zt�/	Y	Z��	�	��c�	��	�	Z�c�	�
�cf�	�	Z�c�
<<	�	a�,<	�	Z�c��i	�	Z�c�	�x	�	��	�	Z�c�	�w
X	�
	�
��c�	�	�
	�
Y�c�
�	v
	�
Y�c�
�	v
	�
Z�c�
�	w
	�
Y�c�
�	v�
Z	[
	�
Z�c�
� 
g	�
	�
Y�b
�	�f�}r��	�	�
��
��	��g�	��{
��	g1J��
�}	�
�<1�-�u-�).K.X
UJ.<	Z.)J
�KIK
Xx<X�/
�-
�
�X<�
��/
ift��	�	�<
�<J�J<��X
_�!	�hX�~<u	� 	u
X	��f
��~��<uY��uY	Y�vt�=	���	����	XJ��e�u\TKEW��	�~�	�
Z�d�
�K	h
	�
Z�d�
�K	h
	��h��y�X.��	�}
X�����y
.��t	�t
Zg2
u�4w��
�i�
f���
��X	�h�
o�.Jt.	���u�	�f�	=���^uL2�3fK&� 	�m�Y�X	�fX��K
�a�
�a<Z,g�
�<
=<I
X�J^��J...	*�Kz�}>��K
+zz< O=�>;g<0:><	Y6
2
�_<� <	Z	�	\�_<
� 
�_X<
� 
�_<X	� K	
	0�f	/�_

� �
�_JX	� B	
	9�
X
J�_� 
�_<f� XX
�_JX� �K
		.wJ]7A<@.=
J?w	Z�_
.	� �	
	�<<[�_
�	� �_	� 
�_X	� .
�_.X�	
�McMY�	
��_
!JJ_fJ� �_
 �� ..�i�/Z�l	h+JJ�xJL	�|
�	�fX.X�	�,X	�x4�	Ltot�$r��y5��	h	K)MU	=)	= <���Jf
�
t	�T.TJ=..7<�x<�	�|
�	�fX.�	Z�	�t
�Q�~%�#<=u�7<�{�z�+h	�s	u�t0<�{�z�+h	�s	u�t
��
��
t	K�	K�	K�	K�#/K;?;;*x/Su$	*zJ/:<v3O/xJuBJ=su;uIu<<Y���{�	�{t/J
L5KK-)EJ
fJ	�	uJ	K"�<K<#K<
LyJ
�.J	�/��	;YtX�yJ�	�	K	�	uX��{oK
M�=
K=	nK
=
K=
mK
=
K=

Ku:
Ku:
NXl
X
k
Xj
=
K=

Ku:
Ku:
NXi
Xh
Xg
=
=
XtX��	�{t/<
�
ZtWX=
MU=
=*JftJ	�	uJ	=
�M=

2J
NJK
H=K
K
N<
+LK
K
H=K
K
N<
,KK
K
H=K
K
N<
-JK
K
H=K
K
<
.z���)Ju��d�P�w	j	u	`��yf�	�	K	K	uX��}
	rtu	u=t	h(t	�<!�J&;
�
HK%�J*;�(IgY<
RL��
4fNJ�w
��
�w�f���w�Y�K�
#&K	]X:�
�~�
Zr>	@�	/�	��
�
�
��
��
J	�	��	
��
f��:v	ZYw�	Y���u
�	�
�Zv
�
.X�	��t� �	��tXI/
/		
	u
�~ft
Zr>	Z�J	�
�z	��	��X�/X
��<
��zX
�
	tX�	/
�`��ggWK>�X	�u	�~��X�~��	�}XYX�
�|X��
�|<Y^	�
X	��./��
X�R�	XUJ
Y	�
h.�e�X>	�tYvtYK��	��	M�
U�-�/](tq $��~Zv
<�����Qyt/�Z
t	���
t	Z*(t
N
��	bXJ�|�
�<�	y

�!�#�J
��<X=�
��
�
K
	��tZ2K�'eK,�t��X
�~+�|Z�s�W��	��u:��Y	�	�/�	�/�	�/�+��X	�<\
.X�
��	�#t
Y	�	�
Z.X
��<��	��	y}	AfJX?��	��	9�	+Y	��
�X���
?����%�t'YJ��" �=�tYwtYLL����mZv
<��tYKt�t�tYvt�)�X�|.K���6�2X��!s Y!Y+�! t!Y+K �f
�|tY1+
IKv�vWJgWJ
~J	.<%<;
[(���Jt"� 	�|��	=
�
vV
>Y�
�
Z+��KZ)=1K-
M�<
�<Y
v�.�u.
�}Jt
Z�Y��<
gJ
f"�<�	�	/
��np
<
��}�2NX��)�	��	
��
�~�	�|X���}�Y�"�Xg![qg!p�'�Y>�tYK�&�C�XK%��.ZY&i
�f���Y�p<�x ��u
��

Z�v
X� w	�~���9�}�5Xl�
�t.Z7j.+�"<g7/W5K/I
Mu_��Kg\K�_SC_THREAD_SPORADIC_SERVERpthread_atfork_functotalLSAPI_Set_Max_Process_Timelsapi_parent_dead__fxstatparseContentLenFromHeaderugidLen_SC_2_SW_DEVm_pScriptFileLSAPI_Stopsi_addr_lsb_unused2_SC_TIMERSm_iReqCounter_fileno_SC_SHELL_SC_MEMORY_PROTECTION_SC_SCHAR_MAX__pathtm_secH_AUTHORIZATION_SC_THREAD_SAFE_FUNCTIONS_SC_UCHAR_MAXmax_lenfreeaddrinfogid_tverifyHeader_SC_C_LANG_SUPPORTm_pIovecEndstrcpy__uint8_tIPPROTO_TPpw_uidwaitpidHTTP_HEADER_LEN_SC_TTY_NAME_MAX_SC_PASS_MAXLSAPI_ErrResponse_rsi_uidm_bytes_SC_2_PBS_TRACKfp_lve_destroym_pHeader_IO_buf_end__RLIM_NLIMITS_SC_SELECT_shortbufrlimitsockaddr_insa_family_tSOCK_DCCP_SC_BC_STRING_MAX_ISpunctis_enough_free_meminet_addr_SC_TRACE_INHERITinit_lve_exnewSizem_tmStartliblvesetgroups_SC_SEMAPHORES_SC_EQUIV_CLASS_MAXread__environ_sigpollsa_datauint16_t__builtin_memmoveai_protocol_valuem_pChildrenStatusCurIPPROTO_UDPoverflow_arg_areatime_tsin_zero_SC_DEVICE_SPECIFICin_port_t_flagsachMD5_SC_THREAD_THREADS_MAXerror_msg_SC_LEVEL3_CACHE_SIZE_SC_TRACEreg_save_areacalloc_archm_respPktHeaderg_running__off_t_addr_bndlsapi_cleanupachHeaderNamest_size_SC_THREAD_PROCESS_SHAREDallocateBuf_SC_JOB_CONTROLgetppidtm_isdstswapIntEndianlsapi_check_child_statussignal_locks_max_idle_secslsapi_set_nblockenvirons_schedule_notifysetUID_LVE_SC_NL_NMAX__RLIMIT_NPROCRLIMIT_DATApServeratoluint32_tinitgroups_SC_POLLm_pHttpHeader_SC_V6_ILP32_OFF32_SC_TRACE_SYS_MAXm_pScriptName__builtin_va_listst_blksizeRLIMIT_NOFILEm_pEnvList_SC_BASE_sigchldLSAPI_Set_Max_Idle_Childrenint32_t_SC_LONG_BITfixEndianLSAPI_GetEnv_r_upper__fmtsa_familym_specialEnvListSizepw_passwd_SC_CLOCK_SELECTIONmasklsapi_resp_infosigaction__RLIMIT_RTTIME_SC_V7_LPBIG_OFFBIGbodyLeftfcntllastTime_SC_AIO_LISTIO_MAXLSAPI_Init_Prefork_ServerpErr1pErr2st_gidm_cntHeaderss_notify_scheduledm_envListSizeacceptinggettimeofdaypBufai_addrm_iAvoidForks_secret_timerlsapi_MD5Context__syscall_slong_t__builtin_memset_SC_FILE_SYSTEMsa_restorerm_pChildrenStatusEnd_IO_write_endtype_SC_SCHAR_MIN_SC_LINE_MAXLSAPI_SetRespStatus_rlsapi_MD5_CTX__resst_nlinks_addr_SC_TZNAME_MAX__va_list_tag_syscallst_ctimnameLen__builtin___snprintf_chkLSAPI_Postfork_Child_SC_2_VERSIONfree_SC_2_PBS_CHECKPOINTIPPROTO_MPLS__sigset_tm_requestMethodOffm_tmWaitBeginreadSecretreadReq__tznameatoig_initedgetaddrinfovalLens_acklsapi_jailLVE__d0_SC_LEVEL4_CACHE_ASSOClsapi_MD5Final_SC_NL_LANGMAXdoAddrInfo__stack_chk_failmemcpy_killcurSize/builddir/build/BUILD/opt/alt/ruby22/lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/ext/lsapiRLIMIT_STACKIPPROTO_IPIPdlopenbacklogsin_family_SC_LEVEL1_ICACHE_ASSOCpIovrlim_maxm_iKillSentm_fdListen_SC_AIO_PRIO_DELTA_MAXvalidateHeadersst_atimm_statusm_reqBodyLensig_numoptargSOCK_RAWsnprintfold_int_SC_2_C_BINDs_enable_lve__clock_tparseRequestIPPROTO_RAWstrdupbufLen_SC_PRIORITY_SCHEDULING_SC_SS_REPL_MAXsys_errlistsival_ptrpStderrLogsetpgid__uid_tdaylightsi_stimeoptoptLSAPI_ReqBodyGetChar_rpKeysun_family__uint16_t_SC_FSYNCsin_portgetpeernameLSAPI_is_suEXEC_DaemonLSAPI_Is_Listen_rLSAPI_End_Response_r_SC_FILE_ATTRIBUTESsetreuidserverAddr_SC_NZEROm_pQueryString__gnuc_va_list_SC_2_C_DEV_chainpContentLen_call_addrEnvForeachnewfdm_iServerMaxIdleSOCK_NONBLOCKusleepSOCK_RDM_SC_SYMLOOP_MAXsockaddr_un_ISblankunsigned charIPPROTO_MAX_SC_MQ_OPEN_MAXSOCK_DGRAMm_tmReqBegin__fd_mask__blkcnt_tlsapi_enterLVE__builtin_calloc_IO_lock_tLSAPI_Is_ListenIPPROTO_COMPLSAPI_key_value_pairlsapi_check_pathLSAPI_ForeachHeader_rpHeaderName_SC_SEM_NSEMS_MAX_SC_USHRT_MAXLSAPI_FinalizeRespHeaders_r__read_alias__fdelt_chkshouldFixEndianpBody_SC_STREAM_MAX_SC_ASYNCHRONOUS_IOserverMaxIdle__open_alias_SC_READER_WRITER_LOCKS_SC_CPUTIME__getcwd_alias_SC_2_PBS_LOCATE_SC_DEVICE_IOsa_flagspVecgeteuid_SC_SIGNALS__ctype_b_loc_SC_V7_ILP32_OFFBIGstatusoff_tchild_statuss_notified_pids_max_reqsH_X_FORWARDED_FORs_pid_dump_debug_info_ISalpha__fprintf_chktm_zone__mode_tm_queryStringOff_SC_V7_LP64_OFF64_SC_NPROCESSORS_CONF__RLIMIT_SIGPENDINGfdInlsapi_changeUGidtv_usec_SC_XOPEN_XCU_VERSIONold_childold_termLSAPI_sendfile_rlsapi_lve_erroraccept_SC_MEMLOCKallocateRespHeaderBuf_ISprintsched_yieldpMessages_liblvepValueH_CONTENT_LENGTHm_tmLastCheckPoint__vfprintf_chk_ISalnum_SC_SEM_VALUE_MAXs_req_processedstrtollopen_SC_XOPEN_XPG2_SC_XOPEN_XPG3_SC_XOPEN_XPG4LSAPI_STATE_CONNECTED_IO_write_ptr_SC_REALTIME_SIGNALSsystemlsapi_packet_headerIPPROTO_ENCAP_ISspacelsapi_suexec_authgetLFg_prefork_serverva_list__suseconds_treqsexitLSAPI_CreateListenSock2__rlim_ts_ignore_pid__RLIMIT_MEMLOCKpCurpHeaderValue__sizesizes_slow_req_msecslsapi_init_children_statusgetuidFILEH_COOKIELSAPI_ParseSockAddrdlsympthread_lib_SC_PII_INTERNET_DGRAM_SC_SINGLE_PROCESSbyteReversedump_debug_infoLSAPI_Accept_Before_Fork_SC_SHRT_MAX_ISxdigit_SC_RAW_SOCKETSfp_lve_enterLSAPI_AppendRespHeader_rsize_tH_CONNECTIONLSAPI_GetHeader_r_SC_MULTI_PROCESSs_stderr_log_pathm_statefp_lve_instance_init_SC_BC_BASE_MAXH_CONTENT_TYPELSAPI_STATE_ACCEPTING_SC_RTSIG_MAX_SC_NETWORKINGachCmdH_ACCEPT_SC_GETGR_R_SIZE_MAXperrorcompareValueLocation_SC_THREAD_ATTR_STACKADDR_SC_LEVEL2_CACHE_ASSOC_SC_IOV_MAX_SC_TRACE_EVENT_NAME_MAX_SC_PII_INTERNETIPPROTO_IGMPpServerAddrlsapi_acceptlsapi_initLVE_IO_save_baseLSAPI_Release_riovecold_usr1maxIdleChldsocklen_tm_iMaxChildren_SC_2_UPEai_canonnameIPPROTO_IPV6_SC_DELAYTIMER_MAXpw_dirsa_mask__sigval_tLSAPI_Set_Extra_Childrens_restored_ppidsin6_flowinfototalLenm_pid_SC_SYSTEM_DATABASElsapi_prefork_server_acceptm_pIovecToWritecodem_respHeaderLen_wide_dataH_IF_MATCHai_family__nlink_tsi_addrst_inost_modeLSAPI_IsRunning_SC_T_IOV_MAXCGI_HEADER_LENIPPROTO_DCCP__in6_uGetHeaderVarH_ACC_CHARSET__stream_SC_XOPEN_STREAMSm_iMaxIdleChildrensendfile_IScntrlm_reqBufSizelsapi_child_statusprctlallocateEnvList_ISupperpStatuserr_nosival_intsi_codem_pReqBufwait_timestrcasecmpH_IF_UNMOD_SINCEpw_name_SC_TRACE_USER_EVENT_MAX__socklen_tsend_notification_pktlsapi_requestpKeyEndcurTimefprintflsapi_writev__ssize_t__srclsapi_closepChrootH_IF_RANGEtimespecnameOff__u6_addr8strerror__RLIMIT_RSSavoidForkm_packetLenLSAPI_ReadReqBody_rIPPROTO_MPTCP_SC_2_FORT_RUNbindfp_lve_leave__valin6_addr_SC_ADVISORY_INFOpacketLen__timezone__ctype_toupper_locsin6_addr_SC_TIMER_MAXpBufCur_SC_THREADSunset_lsapi_envs__sighandler_t_SC_USER_GROUPS_RLSAPI_Set_Server_fdLSAPI_CreateListenSock__RLIMIT_LOCKSm_respPktHeaderEndLSAPI_On_Timer_pfLSAPI_Set_Max_Reqs_SC_UINT_MAXst_uids_conn_close_pktLSAPI_Postfork_ParentpEndpktTypelsapilib.cset_skip_write_SC_TRACE_NAME_MAX_lowers_busy_workers_SC_THREAD_DESTRUCTOR_ITERATIONSm_flagmemsetlevelstderrm_pHeaderIndexnameidle_SC_CHILD_MAXlsapi_reopen_stderr2_IO_save_endtm_min__nptrLSAPI_InitLSAPI_Request_SC_V6_LP64_OFF64flag_SC_NGROUPS_MAXm_bufProcessedfixHeaderIndexEndianstdoutfp_offsetlsapi_MD5TransformLSAPI_Write_Stderr_r__time_t_SC_THREAD_ROBUST_PRIO_INHERITgp_offset_padLSAPI_ForeachOrgHeader_rsigaddsetLSAPI_Inc_Req_Processedm_httpHeaderLendyingrealpathtm_yday_SC_SSIZE_MAX_SC_PII_OSI_CLTS_SC_SYSTEM_DATABASE_RmsecspAuth_SC_LEVEL1_DCACHE_SIZEkeyLenextraChildrenLSAPI_Flush_rshort unsigned intrlim_cursigned charLSAPI_Reset_rs_lveold_ppidLSAPI_CB_EnvHandler_valueLen__blksize_t_SC_STREAMSSOCK_STREAMdigestpBufEndGNU C17 8.5.0 20210514 (Red Hat 8.5.0-20) -mtune=generic -m64 -march=x86-64 -g -O2 -fPIC -fexceptions -fstack-protector-strong -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full -fplugin=annobin_SC_PAGESIZE_SC_THREAD_PRIORITY_SCHEDULINGcountsi_pidIPPROTO_MTPs_stop_SC_CHARCLASS_NAME_MAXlsapi_header_offsetstrchrvfprintfsetgid_boundstm_wday__off64_t__fd__lenachBuf_sigsys_IO_read_base_SC_XBS5_ILP32_OFFBIGsend_req_received_notification_offsetIPPROTO_EGPLSAPI_reset_server_statesockaddrsigset_ts_defaultGids_keep_listenersecsm_cntUnknownHeadersreadfdsai_addrlenlongsopterr_SC_DEVICE_SPECIFIC_RLSAPI_Set_Restored_Parent_Pidpw_gecos_modem_iExtraChildrenLSAPI_No_Check_ppid_SC_PIPE_IO_write_base_SC_XOPEN_CRYPTvalueLenm_respInfotz_dsttime_SC_PHYS_PAGESlsapi_enable_core_dumpH_CACHE_CTRLH_COOKIE2_SC_ATEXIT_MAX__desttm_monclose_SC_SHRT_MIN_SC_FIFObitstimeH_USERAGENTs_min_avail_pages_SC_USER_GROUPSm_lLastActiveLSAPI_ForeachEnv_rlong intSOCK_PACKETsa_sigactionnotify_req_received_SC_XBS5_ILP32_OFF32dumps_worker_status_IO_marker__builtin_strncpys_ppidtm_yearlimitmax_children_SC_2_PBS_MESSAGEm_pRespBufEndtimevalorig_masktmCur_SC_XOPEN_REALTIME_THREADSfp_lve_is_availablepAddrs_defaultUidm_pChildrenStatus__fds_bits_SC_SPIN_LOCKSLSAPI_Set_Server_Max_Idle_Secswritem_bufRead_SC_SPORADIC_SERVERlsapi_close_connectionuint8_t_SC_LEVEL1_DCACHE_LINESIZE__sigaction_handlerlsapi_signal_SC_PRIORITIZED_IOin_addrSOCK_SEQPACKET__pid_t_IO_codecvt_SC_GETPW_R_SIZE_MAXpUgidheadershints_SC_XOPEN_VERSIONH_RANGE_SC_BC_SCALE_MAX_SC_2_C_VERSIONdup2strtolg_reqlong doubleparseEnvai_socktype_SC_THREAD_KEYS_MAXiov_len_SC_LEVEL4_CACHE_LINESIZEfd_setlsapi_MD5Init_SC_NL_TEXTMAXnonblocklong unsigned intlsapi_req_header_SC_LOGIN_NAME_MAXfind_child_statusIPPROTO_PIM_SC_XBS5_LP64_OFF64_SC_SPAWNmaxChildrennewlensi_statussigemptyset_pkeym_headerOff__RLIMIT_OFILEHTTP_HEADERS_SC_2_PBSs_proc_group_timer_cbpw_gid__errno_location_SC_XBS5_LPBIG_OFFBIG_SC_WORD_BITchar_SC_2_PBS_ACCOUNTINGm_pSpecialEnvListsin6_scope_idstdin_SC_AIO_MAX__oflag_SC_2_CHAR_TERMresolved_path_SC_LEVEL1_ICACHE_LINESIZE_IO_buf_baseai_flagsrealloc_SC_XOPEN_SHM__dev_t_SC_XOPEN_ENH_I18Nold_quitRLIMIT_CPU__glibc_reserved_IO_read_end_SC_ULONG_MAX_SC_TYPED_MEMORY_OBJECTS_SC_TIMEOUTS_SC_LEVEL2_CACHE_SIZEfinal_SC_XOPEN_UNIXm_pRespBufPos_IO_FILEin_addr_tm_fdH_HOST_IO_wide_datacookiestrlentzname_sifields_SC_LEVEL2_CACHE_LINESIZE__u6_addr16s_pidIPPROTO_AHLSAPI_ReqBodyGetLine_rtm_hoursetsidFlush_RespBuf_r_SC_THREAD_STACK_MINisPipe_SC_PII_OSI_Mm_respHeaders_global_counterRLIMIT_AS_SC_NL_MSGMAXsi_signom_pAppData__RLIMIT_MSGQUEUEachAddrm_inProcess_SC_THREAD_ROBUST_PRIO_PROTECT_ISgraph_lsapi_prefork_servertm_mdaypIntegerlsapi_siguser1__pad0_SC_BC_DIM_MAX__pad5_SC_LEVEL1_DCACHE_ASSOCmallocs_dump_debug_infos_avail_pages__u6_addr32_headerInfom_typesi_errnofinish_closelistensigno_SC_XOPEN_REALTIME_markersLSAPI_InitRequest_SC_SAVED_IDSpBindm_scriptFileOff_SC_INT_MAXsi_bands_log_level_namess_skip_writeH_VIAmemccpy_codecvtforkIPPROTO_ESPm_pRespHeaderBufEnd_SC_TRACE_LOGgetpwnamtimeout_SC_THREAD_PRIO_PROTECTg_fnSelectRLIMIT_FSIZE__builtin_memcpyst_rdevlsapi_http_header_indexpEnv_SC_OPEN_MAXst_devssize_tdlerrorheaderIndex_SC_UIO_MAXIOVLSAPI_Logm_pRespHeaderBuf__int32_tH_PRAGMA__uint32_tqsortpSecretFile__RLIMIT_NLIMITS__daylightIPPROTO_RSVPstrncpyH_REFERERIPPROTO_UDPLITESOCK_CLOEXECLSAPI_Set_Slow_Req_MsecsLSAPI_Prefork_Accept_r_sys_siglisthandler_SC_CHAR_MAXLSAPI_Get_ppid_ISlowerpEnvEndsigprocmaskm_pUnknownHeadergetpwuidm_reqState_SC_PII_XTIpRespHeadersleftkillsysconfm_pRespBufm_iCurChildrensocketLSAPI_Write_r_SC_PII_OSI_COTSm_totalLenpasswdm_pIovecs_stderr_is_pipefstat__snprintf_chk_SC_PII_SOCKET__gid_tlsapi_sigpipe_SC_V6_LPBIG_OFFBIG_SC_MQ_PRIO_MAXgetcwdH_TRANSFER_ENCODINGH_IF_MODIFIED_SINCE__bsxai_nexts_enable_core_dump_SC_TRACE_EVENT_FILTERnodelaysin6_family__resolved_freeres_buf_sigfaultm_iChildrenMaxIdleTime_SC_THREAD_CPUTIMEsi_utimetv_sec_SC_VERSIONm_cntSpecialEnv_SC_C_LANG_SUPPORT_Rlong long unsigned intmemmovesa_handlersin_addr_cur_columnlsapi_load_lve_libtoWriteuid_t_SC_PIIsi_fd_SC_MAPPED_FILES_SC_LEVEL4_CACHE_SIZEIPPROTO_BEETPHfp_lve_jail_SC_2_FORT_DEVIPPROTO_IPm_pRespHeaderBufPosst_blockslsapi_initSuEXEC__bswap_16getpid__buf_SC_2_LOCALEDEFm_cntEnvlocaltime_r_SC_LEVEL1_ICACHE_SIZEreadBodyToReqBuftm_gmtoffIPPROTO_PUP_namesigval_IO_backup_baseH_KEEP_ALIVE_IO_read_ptr_SC_CHAR_BITLSAPI_Register_Pgrp_Timer_Callbackmd5ctx__socket_type__nbytes_nameLengetenv_freeres_list__aps_max_busy_workersIPPROTO_ETHERNETH_IF_NO_MATCHpEnvListrlim_tlsapi_readsun_pathtimezoneCGI_HEADERSsi_overrun__bswap_32pReq_SC_INT_MINlsapi_MD5Update_SC_RE_DUP_MAX_SC_PII_INTERNET_STREAMachBodyachPeerheader_SC_THREAD_ATTR_STACKSIZEfull_path_old_offset_SC_SIGQUEUE_MAXsiginfo_t_SC_FD_MGMTexpect_connected_SC_SYNCHRONIZED_IOLSAPI_STATE_IDLEvalueOffsighandler_t_SC_V7_ILP32_OFF32skipunlinksend_conn_close_notificationoptinds_accept_notifywritevH_ACC_LANG_SC_EXPR_NEST_MAX_SC_LEVEL3_CACHE_LINESIZElong long intm_pktHeaderin6addr_loopbackports_accepting_workersIPPROTO_IDP_flags2lsapi_prefork_serverallocateIovec_SC_MESSAGE_PASSING__ch_SC_REGEX_VERSIONm_iLenLSAPI_Set_Max_Children__d1setuidtv_nsecm_scriptNameOfflsapi_perror_SC_FILE_LOCKING_SC_AVPHYS_PAGES_SC_MB_LEN_MAXpHeader_ISdigitsockaddr_in6IPPROTO_SCTP_SC_PII_OSI_SC_ARG_MAX__ino_tsetsockopt_SC_MEMLOCK_RANGELSAPI_Finish_r_SC_SHARED_MEMORY_OBJECTSlsapi_resp_headersys_nerrin6addr_anym_pRequestMethodachError_SC_CHAR_MIN__realpath_chkiov_basem_lReqBegins_uids_total_pagespw_shell__namem_versionB0m_versionB1IPPROTO_GRE_SC_XOPEN_LEGACY_SC_NL_ARGMAXRLIMIT_COREsi_tidtobekilled_SC_THREAD_PRIO_INHERIT_SC_LEVEL3_CACHE_ASSOC_SC_NPROCESSORS_ONLNm_headerLenexpect_acceptingm_pIovecCurfdListenLSAPI_Init_Env_Parametersaddr_len_SC_HOST_NAME_MAXIPPROTO_TCPLSAPI_AppendRespHeader2_r_SC_COLL_WEIGHTS_MAX_SC_MONOTONIC_CLOCK__rlimit_resourcem_reqBodyReadLSAPI_Set_Max_Idle_SC_CLK_TCKLSAPI_ForeachSpecialEnv_rlsapi_buildPacketHeaderLSAPI_perror_r_SC_NL_SETMAXunsigned int_SC_BARRIERSbodyLenpBeginLSAPI_Accept_rwait_secslsapi_reopen_stderrstrcmpst_mtim__statbuf__RLIMIT_NICEfn_select_tshort intlsapi_notify_pidsi_sigvalsetrlimit_vtable_offsetaddrinfo_SC_IPV6mmapIPPROTO_ICMPlsapi_sigchild_SC_REGEXPlsapi_schedule_notifyLSAPI_Get_Slow_Req_Msecs_SC_V6_ILP32_OFFBIGstatmemchrtz_minuteswestsys_siglistH_ACC_ENCODINGsin6_portm_iMaxReqProcessTime__RLIMIT_RTPRIOGCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-20)GNU�zRx�0D
LXsE�I�B �E(�A0�z
(A BBBIA
(D BBBA��@�YG�J�B �B(�A0�A8��0F(B DBb0�B�F�C �G�
 AABKHk(\GA�D�J n
AAA4�UA�G�K R
CAGL
JCG ��A�G�]
AJ �t��
CKF�L�B�B�E �A(�H0�H
(D BBBD�
(D BBBAPX�v�F�B �A(�D0�D
(A BBBBL(A BBBA�����$�aA�A�D XAAH��B�B�B �B(�A0�A8�D@N
8C0A(B BBBH$ OA�f
QC
EH@HYB�B�B �A(�D0�J��
0A(A BBBFx��F�E�A �C(�G�
 
(A ABBDM�
I�
c�
A�
��
E�
M�
A�
k�
E�
E�
E�
E�
H�V�
H�F�B�B �B(�A0�A8�D``
8A0A(B BBBDlT+B�B�B �B(�A0�D8�J�Y�H�P�C�	M�i
8A0A(B BBBEL�T�M�D�d�6B�B�B �B(�A0�A8�DP�
8A0A(B BBBG
8J0H(G DBBK$,7E�F�F IIOTh|�4��F�A�A �G�>
 AABG ��E�O
D�
A
(Y<JE�DXS l]P�h
HXA�H�lF�B�B �B(�A0�A8�LP�
8A0A(B BBBH<�F�B�B �A(�A0��
(D BBBIi`0F�B�B �B(�A0�A8�DP~
8A0A(B BBBAk
8A0A(B BBBHL�$F�B�B �A(�A0�H��Q
D���
0A(A BBBHL�F�B�B �B(�A0�A8�G��
8A0A(B BBBF4FHF\�$p�n�C�X�J�L�lF�B�B �B(�A0�A8�D�A
8A0A(B BBBA`��B�B�B �B(�A0�A8�G� I� K� I� L� N� N� w
8A0A(B BBBI0L	�B�M�D �G�L
 AABA<�	=B�A�A �G� L�@I�@U
 AABG$�	�T�WE�H�G� �	�a�g
HS�H
�F�B�B �B(�A0�A8�DPS
8D0A(B BBBFTX
�b�I�E �D(�C0�P
�(F� B�B�B�MQ(H BBBA�����H�
�F�B�B �B(�A0�A8�DP�
8A0A(B BBBAT�
C�B�A �A(�G0`
(A ABBD�
(C ABBAJ����8T-F�B�D �D(�D@T
(A ABBB�(�lE�C�G�F
AAIL�!c�B�G �A(�D0�
(A ABBEX����D0���� 4ZH10\pF�A�A �G@7
 AABF�@L�sL�F�B�B �B(�A0�A8�G��
8A0A(B BBBG�
$
8
L
`
t
�
�
�
�
<�
	F�B�A �K(�G�
(A ABBG<�F�E�E �D(�D0�M
(C BBBBX(Hl�F�B�H �E(�A0�E8�I@�
8A0A(B BBBE(��F�E�D ��ABH��B�B�B �B(�A0�A8�G��
8A0A(B BBBJD0�F�B�B �A(�A0�G�
0A(A BBBFLx�
F�B�B �B(�A0�A8�G��
8A0A(B BBBA��
�	
1-
E2a~3��4��5.IWu��l	��-�-
�"0s-�J�e�s	z����	����)�Y)2�L0�Y�z+	��k�	 �+	�w	0	Gw	:�	X�	Ui�	�s
��	��s
����
��
x5��P	�_	�s(�0�x�*
����*
#�
N0
al	�|�
����
������O&	�-	�=�h9��Y�9��	��@	�$�@�O	�e`	r���U�+���6�6	%		�7	6S	wm	w�	��		l�		��	��	��	�
�4
�f
��
	x�
��
��
�]	�'	�;]\m{m��������*+*L�k������\�\"
k C
k b
� 
� �
�"�
 ��
�"�
$%@� `d0$%UE'x�d�E'��'��'��'�'D�(m�(��)��)��*�	���*�+7+�F�+c�,~,��	0��,��.��,=��.u/*7u/[)0})0��1��1��2��2�4C�4k�5��5��6��67!7G�7k�7��8�d	��X	��8
�8+�8S:9y:9�q9�P	�q9��:	�#h	3	(B�:g0;�0;�H?�	��	���	@��	���	��H?'^?GR^?tk?�k?��?��?�?,�?V�?~�?��?��?@,@T@z	��@�+@�+@�?@?@;K@WK@�TI�	)�	p�	h�	d�	`�	P�	H	@#	80	X6TIY�Iz�I�J�J��J��J�K(�K?�WT�K�\(b $o(|�W�UY�UY�Zd Zd>qdiqd��d!#$&()+23456718���2�8�F�"��K�O�(�p���R�P���[oy�#�)�/�5;�A�G8MXS�Y�_�e�k�qw+}=�N�b�w��������������*�@�V���������������
����%]+o1�7�=�CpIO@U�[Tahgtms8yp��6�����&�������������(���P���,-./0) 
>�Mcmy�������� ��1�������   " / 9 @��C R a h v � � � � �� @7� � �� �� �� �!�� !'!	#S!3!8!��C!RK!@	Q!X!^!`
p!p�!�Y�!�J�!�!0S�!�]�!�l�!�!�!`"p i"� %","@"#$Y"_"0%u"P'F�"�'F�"�'��"�(��"�)l��"�"�"�"#
#�.�#�/�1#00�?#2�P#Y#�2�s#z#�4�#�5-�#�#�#�#�#7�# 7l�#�7!
$$$!$�85$�8ZN$@91a$�9pv$�:@�$�$0;�$�$�$�$P?�$`?�$p?%�?%�?:%�?V%�?u%@�% @�%0@�%@@�%P@	�%�%�%�%&&& &`I�4&�I(B&J�R&K�a&j&q&{&�&�&�&�&�W��&`Y�
�&�&�&`d�&�d
'.annobin_lsapilib.c.annobin_lsapilib.c_end.annobin_lsapilib.c.hot.annobin_lsapilib.c_end.hot.annobin_lsapilib.c.unlikely.annobin_lsapilib.c_end.unlikely.annobin_lsapilib.c.startup.annobin_lsapilib.c_end.startup.annobin_lsapilib.c.exit.annobin_lsapilib.c_end.exit.annobin_lsapi_sigpipe.start.annobin_lsapi_sigpipe.endlsapi_sigpipe.annobin_lsapi_siguser1.start.annobin_lsapi_siguser1.endlsapi_siguser1g_running.annobin_compareValueLocation.start.annobin_compareValueLocation.end.annobin_EnvForeach.start.annobin_EnvForeach.endEnvForeach.annobin_lsapi_cleanup.start.annobin_lsapi_cleanup.endlsapi_cleanups_stop.annobin_set_skip_write.start.annobin_set_skip_write.ends_skip_write.annobin_lsapi_MD5Transform.start.annobin_lsapi_MD5Transform.endlsapi_MD5Transform.annobin_lsapi_signal.start.annobin_lsapi_signal.endlsapi_signal.annobin_find_child_status.start.annobin_find_child_status.endfind_child_statusg_prefork_server.annobin_allocateRespHeaderBuf.start.annobin_allocateRespHeaderBuf.endallocateRespHeaderBuf.annobin_lsapi_set_nblock.start.annobin_lsapi_set_nblock.endlsapi_set_nblock.annobin_lsapi_accept.start.annobin_lsapi_accept.endlsapi_accept.annobin_parseEnv.start.annobin_parseEnv.endparseEnv.annobin_lsapi_init_children_status.start.annobin_lsapi_init_children_status.endlsapi_init_children_statuss_busy_workerss_accepting_workerss_avail_pagess_global_counter.annobin_readBodyToReqBuf.part.2.start.annobin_readBodyToReqBuf.part.2.endreadBodyToReqBuf.part.2.annobin_lsapi_close_connection.isra.4.start.annobin_lsapi_close_connection.isra.4.endlsapi_close_connection.isra.4s_worker_status.annobin_lsapi_writev.part.6.start.annobin_lsapi_writev.part.6.endlsapi_writev.part.6.annobin_lsapi_parent_dead.start.annobin_lsapi_parent_dead.endlsapi_parent_deads_ppids_restored_ppid.annobin_LSAPI_ParseSockAddr.part.13.start.annobin_LSAPI_ParseSockAddr.part.13.endLSAPI_ParseSockAddr.part.13.annobin_LSAPI_Log.start.annobin_LSAPI_Log.ends_stderr_is_pipes_log_level_namess_pid.annobin_lsapi_sigchild.start.annobin_lsapi_sigchild.endlsapi_sigchilds_pid_dump_debug_infos_ignore_pid.annobin_dump_debug_info.start.annobin_dump_debug_info.end.annobin_lsapi_check_child_status.start.annobin_lsapi_check_child_status.endlsapi_check_child_statuss_max_idle_secss_dump_debug_info.annobin_lsapi_perror.start.annobin_lsapi_perror.end.annobin_LSAPI_is_suEXEC_Daemon.start.annobin_LSAPI_is_suEXEC_Daemon.ends_uids_secret.annobin_LSAPI_Stop.start.annobin_LSAPI_Stop.end.annobin_LSAPI_IsRunning.start.annobin_LSAPI_IsRunning.end.annobin_LSAPI_Register_Pgrp_Timer_Callback.start.annobin_LSAPI_Register_Pgrp_Timer_Callback.ends_proc_group_timer_cb.annobin_LSAPI_InitRequest.start.annobin_LSAPI_InitRequest.end.annobin_LSAPI_Init.start.annobin_LSAPI_Init.endg_initedpthread_atfork_func.annobin_LSAPI_Is_Listen_r.start.annobin_LSAPI_Is_Listen_r.end.annobin_LSAPI_Is_Listen.start.annobin_LSAPI_Is_Listen.end.annobin_LSAPI_Reset_r.start.annobin_LSAPI_Reset_r.end.annobin_LSAPI_Release_r.start.annobin_LSAPI_Release_r.end.annobin_LSAPI_GetHeader_r.start.annobin_LSAPI_GetHeader_r.end.annobin_LSAPI_ReqBodyGetChar_r.start.annobin_LSAPI_ReqBodyGetChar_r.end.annobin_LSAPI_ReqBodyGetLine_r.start.annobin_LSAPI_ReqBodyGetLine_r.end.annobin_LSAPI_ReadReqBody_r.start.annobin_LSAPI_ReadReqBody_r.end.annobin_Flush_RespBuf_r.start.annobin_Flush_RespBuf_r.end.annobin_LSAPI_GetEnv_r.start.annobin_LSAPI_GetEnv_r.endCGI_HEADERS.annobin_LSAPI_ForeachOrgHeader_r.start.annobin_LSAPI_ForeachOrgHeader_r.endHTTP_HEADERSHTTP_HEADER_LEN.annobin_LSAPI_ForeachHeader_r.start.annobin_LSAPI_ForeachHeader_r.endCGI_HEADER_LEN.annobin_LSAPI_ForeachEnv_r.start.annobin_LSAPI_ForeachEnv_r.end.annobin_LSAPI_ForeachSpecialEnv_r.start.annobin_LSAPI_ForeachSpecialEnv_r.end.annobin_LSAPI_FinalizeRespHeaders_r.start.annobin_LSAPI_FinalizeRespHeaders_r.end.annobin_LSAPI_Flush_r.start.annobin_LSAPI_Flush_r.end.annobin_LSAPI_Write_Stderr_r.start.annobin_LSAPI_Write_Stderr_r.ends_stderr_log_path.annobin_LSAPI_perror_r.start.annobin_LSAPI_perror_r.endLSAPI_perror_r.annobin_lsapi_jailLVE.start.annobin_lsapi_jailLVE.endlsapi_jailLVEfp_lve_jail.annobin_lsapi_reopen_stderr.start.annobin_lsapi_reopen_stderr.endlsapi_reopen_stderr.annobin_LSAPI_Finish_r.start.annobin_LSAPI_Finish_r.endfinish_close.annobin_LSAPI_End_Response_r.start.annobin_LSAPI_End_Response_r.end.annobin_LSAPI_Write_r.start.annobin_LSAPI_Write_r.end.annobin_LSAPI_sendfile_r.start.annobin_LSAPI_sendfile_r.end.annobin_LSAPI_AppendRespHeader2_r.start.annobin_LSAPI_AppendRespHeader2_r.end.annobin_LSAPI_AppendRespHeader_r.start.annobin_LSAPI_AppendRespHeader_r.end.annobin_LSAPI_CreateListenSock2.start.annobin_LSAPI_CreateListenSock2.end.annobin_LSAPI_ParseSockAddr.start.annobin_LSAPI_ParseSockAddr.end.annobin_LSAPI_CreateListenSock.start.annobin_LSAPI_CreateListenSock.end.annobin_LSAPI_Init_Prefork_Server.start.annobin_LSAPI_Init_Prefork_Server.ends_max_busy_workersg_fnSelects_total_pages.annobin_LSAPI_Set_Server_fd.start.annobin_LSAPI_Set_Server_fd.end.annobin_LSAPI_reset_server_state.start.annobin_LSAPI_reset_server_state.end.annobin_is_enough_free_mem.start.annobin_is_enough_free_mem.ends_min_avail_pages.annobin_LSAPI_Postfork_Child.start.annobin_LSAPI_Postfork_Child.ends_req_processeds_keep_listeners_notified_pid.annobin_LSAPI_Postfork_Parent.start.annobin_LSAPI_Postfork_Parent.end.annobin_LSAPI_Accept_Before_Fork.start.annobin_LSAPI_Accept_Before_Fork.endold_childold_termold_intold_usr1old_quit.annobin_LSAPI_Set_Max_Reqs.start.annobin_LSAPI_Set_Max_Reqs.ends_max_reqs.annobin_LSAPI_Set_Max_Idle.start.annobin_LSAPI_Set_Max_Idle.end.annobin_LSAPI_Set_Max_Children.start.annobin_LSAPI_Set_Max_Children.end.annobin_LSAPI_Set_Extra_Children.start.annobin_LSAPI_Set_Extra_Children.end.annobin_LSAPI_Set_Max_Process_Time.start.annobin_LSAPI_Set_Max_Process_Time.end.annobin_LSAPI_Set_Max_Idle_Children.start.annobin_LSAPI_Set_Max_Idle_Children.end.annobin_LSAPI_Set_Server_Max_Idle_Secs.start.annobin_LSAPI_Set_Server_Max_Idle_Secs.end.annobin_LSAPI_Set_Slow_Req_Msecs.start.annobin_LSAPI_Set_Slow_Req_Msecs.ends_slow_req_msecs.annobin_LSAPI_Get_Slow_Req_Msecs.start.annobin_LSAPI_Get_Slow_Req_Msecs.end.annobin_LSAPI_No_Check_ppid.start.annobin_LSAPI_No_Check_ppid.end.annobin_LSAPI_Get_ppid.start.annobin_LSAPI_Get_ppid.end.annobin_LSAPI_Init_Env_Parameters.start.annobin_LSAPI_Init_Env_Parameters.ends_accept_notifys_enable_core_dumps_defaultUids_defaultGids_enable_lves_liblvefp_lve_is_availablefp_lve_instance_initfp_lve_enters_lve.annobin_LSAPI_ErrResponse_r.start.annobin_LSAPI_ErrResponse_r.end.annobin_lsapi_MD5Init.start.annobin_lsapi_MD5Init.end.annobin_lsapi_MD5Update.start.annobin_lsapi_MD5Update.end.annobin_lsapi_MD5Final.start.annobin_lsapi_MD5Final.end.annobin_readReq.start.annobin_readReq.endreadReqs_ackachBody.7025headers.7024.annobin_LSAPI_Accept_r.start.annobin_LSAPI_Accept_r.end.annobin_LSAPI_Prefork_Accept_r.start.annobin_LSAPI_Prefork_Accept_r.ends_conn_close_pkt.annobin_LSAPI_Set_Restored_Parent_Pid.start.annobin_LSAPI_Set_Restored_Parent_Pid.end.annobin_LSAPI_Inc_Req_Processed.start.annobin_LSAPI_Inc_Req_Processed.end.LC0.LC1.LC4.LC5.LC6.LC3.LC2.LC7.LC8.LC9.LC10.LC11.LC12.LC13.LC14.LC15.LC16.LC17.LC18.LC19.LC20.LC21.LC22.LC23.LC24.LC25.LC26.LC27.LC31.LC32.LC30.LC29.LC33.LC34.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC44.LC45.LC46.LC47.LC48.LC49.LC50.LC51.LC59.LC69.LC70.LC71.LC43.LC35.LC61.LC62.LC63.LC64.LC65.LC66.LC67.LC68.LC52.LC53.LC54.LC60.LC58.LC57.LC55.LC56.LC87.LC76.LC77.LC78.LC72.LC79.LC80.LC86.LC74.LC84.LC83.LC73.LC75.LC82.LC81.LC85.LC92.LC91.LC88.LC90.LC89.text.group.text.hot.group.text.unlikely.group.text.startup.group.text.exit.groupcompareValueLocationset_skip_write_GLOBAL_OFFSET_TABLE_sigactionsigemptyset__stack_chk_failreallocfcntlsetsockoptmmapmemsetsetsidread__errno_locationwritevkillgetppid__ctype_b_locstrncpystrchrstrcasecmpstrtolgetaddrinfomemcpyfreeaddrinfoinet_addrLSAPI_Log__vfprintf_chk__snprintf_chkgetuid__fprintf_chkgettimeofdaylocaltime_rwaitpidforksystemlsapi_perrorstrerrorLSAPI_is_suEXEC_DaemonLSAPI_StopLSAPI_IsRunningLSAPI_Register_Pgrp_Timer_CallbackLSAPI_InitRequestmallocgetpeernamedup2LSAPI_Initgeteuidg_reqdlopendlsymLSAPI_Is_Listen_rLSAPI_Is_ListenLSAPI_Reset_rLSAPI_Release_rfreeLSAPI_GetHeader_rLSAPI_ReqBodyGetChar_rLSAPI_ReqBodyGetLine_rmemchrmemmoveLSAPI_ReadReqBody_rFlush_RespBuf_rLSAPI_GetEnv_rstrcmp__ctype_toupper_locLSAPI_ForeachOrgHeader_rqsortLSAPI_ForeachHeader_rLSAPI_ForeachEnv_rLSAPI_ForeachSpecialEnv_rLSAPI_FinalizeRespHeaders_rLSAPI_Flush_rLSAPI_Write_Stderr_rgetpidgetcwdmemccpy__realpath_chkstrdupLSAPI_Finish_rLSAPI_End_Response_rLSAPI_Write_rLSAPI_sendfile_rsendfileLSAPI_AppendRespHeader2_rstrlenLSAPI_AppendRespHeader_rLSAPI_CreateListenSock2socketbindlistenunlinkLSAPI_ParseSockAddrLSAPI_CreateListenSockLSAPI_Init_Prefork_ServercallocsetpgidsysconfLSAPI_Set_Server_fdLSAPI_reset_server_stateis_enough_free_memLSAPI_Postfork_ChildLSAPI_Postfork_ParenttimeLSAPI_Accept_Before_Fork__fdelt_chkusleepsched_yieldLSAPI_Set_Max_ReqsLSAPI_Set_Max_IdleLSAPI_Set_Max_ChildrenLSAPI_Set_Extra_ChildrenLSAPI_Set_Max_Process_TimeLSAPI_Set_Max_Idle_ChildrenLSAPI_Set_Server_Max_Idle_SecsLSAPI_Set_Slow_Req_MsecsLSAPI_Get_Slow_Req_MsecsLSAPI_No_Check_ppidLSAPI_Get_ppidLSAPI_Init_Env_Parametersgetenvgetpwnamenvirondlerrorsetrlimit__fxstatsetreuidLSAPI_ErrResponse_rlsapi_MD5Initlsapi_MD5Updatelsapi_MD5FinalgetpwuidsetgidsetgroupssetuidstrtollprctlinitgroupsLSAPI_Accept_rLSAPI_Prefork_Accept_rsigaddsetsigprocmaskLSAPI_Set_Restored_Parent_PidLSAPI_Inc_Req_Processedselectd	���\����������������������������������������D	����������	���������
���������h
���������o
�����������������������������2�9�H$O,T���������g-��������o������������������������������h	C
���������M
���������X
h	c
�z
��
h	�
����������
h	h	a�������������������������������������������	���������8���������g����������.�������������������������������������J�������������������������������������������������5�����������*���������T�������������������/�������������������������������0������������������	*���������1��������%���������>���������K���������w2�������������������3����������������������������5R4��������Y5��������`6��������v����������������������\	��
"X	3�����������������������/���������8���������M7��������`���������i���������o��8���������������������������������������9����������������������������p���������3:��������?���������K���������_�;����������������������������������������<��������R���������f=���������h�{�d	�h	�t8���������~�����������������������������K���������W>��������`���������i��������������������������������{�h���������������������*����������������������������$?��������*�/���������?@��������G���������N�w*�������������������������������������"������������������������������������������������� ��������� ���������( h	!A��������`!����������!�!���������a"���������j#<q#�\p$*���������}$����������$*����������$��������� %���������%���%�&���������A'����������(����������(�Y)����������)��)���������b*��*����������*���������7+���������A+���������N+B��������W+���������_+���������}+C���������+����������+����������+����������+���������D,,{,D���������,����������,E���������,����������,h	-���������n-����������-����������-F���������-����������-��-����������-���������.�8.���������?.���������N.���������Y.���������~.G���������.����������.����������.H���������.���������/���������*/L/���������T/���������i/����������/����������/�/���������0���������_1����������1����������1����������1���������Q2���������v2����������2���������/3����������3���������-4���������O4���������|5���������N6���������h6����������6����������6����������6����������6����������6����������6����������6���������I7���������W7����������7����������7�7`	�7`	�7���������78��������8���������8�#8���������-8�28��������<8��������G8T	{8����������8�89�'9�G9$Q9L	f9T	�9�9����������9��9��9����������9�9����������9��9��9��9p:*���������:�#:�<:d	G:�Z:`	d:h�:����������:����������:����������:#�:����������:���������:����������:
;��������!;���������H;�;����������;���������;����������;����������;|�;����������;<<���������<�<���������,<�9<���������V<x<t�<\	�<���������<���������<$�<
��������:=��������S=���������e=��������o=���������}=|�=����������=��=����������=<�=����������=��=����������=�>�/>I��������6>���������@>��������F>w>���������>���������>����������>J���������>���������?K��������
?���������?L��������#?���������D?���������Y?f?��������w?�?�?�?�?@�&@�6@�F@�_@M��������@���������@��@N���������@���������@����������@O���������@���������@����������@d	�@P���������@��������A���������'AQ��������,A��������@A���������FA%MAR��������RA��������fA���������mA��������tAS��������yA���������Ah�AT���������A���������A����������A���������A����������AU���������A���������A����������AV���������A��������
B���������B��������BW�������� B��������4B���������;B��������BBX��������GB��������[B���������bB��������iBY��������nB���������B����������B���������BZ���������B���������B���������B[���������B���������B����������B`	�B\���������B���������B����������B��BhC`
C\C]��������#C��������2Cd?CdEC`TC^��������YC��������qC���������wC\�Ch�C*���������Ch�C_���������C`���������Ca��������zD`	�D����������DL	�D
���������Db���������D���������Dc��������E��������%E`1E��������NE���������UE*���������\E��������pEd��������uE���������EL�Ee���������E����������ED�E���������E\�Ef���������E����������Eg���������E<�E����������Eh���������E����������Ei��������F4
F���������Fj��������F���������%F,,FTGFk��������LF���������SFTXF���������_FP�F���������F����������F����������F��Fl���������F���������F����������FdGm��������
G��������G���������(G`/Gn��������4G��������QG���������mG���������G|�G����������G����������G�Gd�G`Ho��������H��������H\"Hd,H`6H`DH\ZHXyHL�Hp���������H����������H����������H����������H<�HT�H����������Hh�H���������HD�HXIh
I��������Iq��������+Ir��������7I���������AI���������KIs���������I����������I����������I����������I����������J����������J���������zK���������9L���������DL���������OLh	JM���������UM���������dMh	�M���������4N����������Ot���������O���������Pu��������P���������*P���������.RhDR%JR$]R#}R����������Rd�R`�Rv��������Sw��������mS|�S!���������S"���������S"���������S#��������	T$��������TT/T4GT+uT%���������T&���������T'���������Tl�Th�T����������TM���������T���������U�U|*U$1U���������GUx��������SU���������eU���������}U(���������Uy���������U����������Uz���������U����������Ud�U`�U$���������UT�U)��������V{��������V��������� V|��������,V���������=V%��������eV%��������V}���������V*���������V~���������V[�Vd�V`�V$���������V��������W���������W���������+W���������9W���������PW���������YW���������yW��W���������W ���������W����������W���������Xh	BX���������UX�hX��X$�X����������Xh	�X���������Y$ Y���������GY���������QY���������xY��Y����������Y�Y��Y�Y��Y���������Yh	#Zh	3Z�?Z�eZ
���������Z���������Z��Z��������p[����������[����������[����������[����������[���������\���������C\����������\�\t�\\	�\���������\���������\$]
��������^]��������u]����������]����������]��]�^�^�4^d	B^$X^$]^���������s^��^��^��^��^���������_d	_��������_c	+_�D_�c_��_���������_���������_���������_��_I���������_����������_��������`��������� `���������%`���������\`���������k`-��������|`.���������`����������`����������`.���������`����������`����������`���������
a���������,aJ��������5a���������ba�qa`	�a��a`	�a�a����������a����������a����������a����������a����������a���������b���������bh	3bK��������8b���������Gb���������Xb.��������gbpb���������vb�{b����������b��b��b��b��bp�b*����������b��b��bd	�b�c`	ch$c���������Cc���������Tc���������ec���������vc����������c����������c����������c����������c����������c#�c��cL���������c����������c��������d���������
d���������d�9d��������Kd�Vd���������fd�ld��d,�	������������������s���������|����������2����������J��������� +�� (LT����-��--�@-H�l�t�����������,�4)`�h)�)���)�����+	 �(+	L+	Tw	�+	�w	�w	��	�w	��	�	s
@�	Hs
ls
t��s
�����x�x,x4*
`xh*
�*
��
�*
��
��
�� �
(�L�T��������9���9	9	@	9H	l	t	��	�	��	��	�
�
�,
�4
6`
�h
6�
6�
w�
6�
w�
w�
� w(�L�T���������������@�H�l�t��������]
�
],
]4
m`
]h
m�
m�
��
m�
��
��
� �(�L�T*���*�*���*����@�H�l�t\���\�\�k \k ,k 4� `k h� �� ��"�� ��"��"�$% �"($%L$%TE'�$%�E'�E'��'�E'��'�'�'@�'H�'l�'t�(��'��(��(��)�(�),�)4�*`�)h�*��*��+��*��+��+��, �+(�,L�,T�.��,��.��.�u/��.�u/u/)0@u/H)0l)0t�1�)0��1��1��2�1�2,�24�4`�2h�4��4��5��4��5��5��6 �5(�6L�6T7��6�7�7��7�7��7�7�8@�7H�8l�8t�8��8��8��8�:9�8:9,:94q9`:9hq9�q9��:�q9��:��:�0; �:(0;L0;TH?�0;�H?�H?�^?�H?�^?^?k?@^?Hk?lk?t�?�k?��?��?��?�?�?,�?4�?`�?h�?��?��?��?��?��?�@ �?(@L@T@�@�@�@�+@�@�+@+@?@@+@H?@l?@tK@�?@�K@�K@�TIK@TI,TI4�I`TIh�I��I�J��I�J�J��J  J( �JL �JT �K� �J� �K� �K� �W� �K� �W!�W!UY@!�WH!UYl!UYt!Zd�!UY�!Zd�!Zd�!qd"Zd"qd,"qd4"�d`"qdh"�d % & ' (]�C�CC(X	0�1C�C3C9C> CE(CJ0CP8CU@C[HCbPCqXC�`C�hC�pC�xC��C��C��C��C��C��C��C��C�C�C�C+�C4�CH�CS�CY�CiCm C(C�0C�8C�@C�HC�PC�XC�`ChCpC!xC+�C7�CD�CT�Cg�C~�C��C��C��C��C��C��C��C�

$�
$�
$.
)
#0
$�
<
$\C
$7J
$%Q
$xV
$�d
$�7n
$Jz
$�+�
$�+�
$�!�
$�&�
$�
$l-�
$G4�
$2�
$��
$q�
$k

$�#
$�"
$�.
$H:
$zM
$�Y
$�
e
$�q
$��
$$&�
$d�
$��
$o,�
$�
$4�
$��
$@�
$�
$	)�
$�
�
$��
$��
$y
$ 
$�,
$�9
$v.F
$�3T
$\8a
$9+n
${
$��
$�
$��
$j�
$H)�
$+�
$��
$�
$�/�
$�
$q7

$�
$'5
$�A
$rM
$/b
$s�
$F	�
$ �
$(0�
$�
$��
$/�
$��
$�
$z5
$51
$�7(
$�5
$B
$�7Y
$�f
$s
$�%�
$m.�
$�
$�
$��
$y�
$�%�
$��
$�
$[
$D*(
$/?
$!
L
$�Y
$Qp
$z|
$ 
�
$��
$9�
$9.�
$M�
$��
$�(�
$�)
$
$H)
$�',
$�18
$�^
$�.j
$�!�
$��
$�#�
$'�
$s�
$$�
$>,
$w8
$�2
$�..
$@+:
$^F
$�"S
$v.`
$�n
$�
�
$#�
$�$�
$��
$��
$��
$p�
$
$�
$<
$�'(
$�5
$L0B
$'O
$�\
$� i
$�v
$E�
$�&�
$I�
$��
$/0�
$��
$�)�
$
�
$��
$.3�
$�1	
$�.	
$�7	
$o,	
$9	
$�F	
$y*S	
$�`	
$�0m	
$,.z	
$^)�	
$� �	
$��	
$"�	
$�	
$E"�	
$�#�	
$�'

$r

$^&&

$2

$M>

$�4Z

$�f

$�6x

$'~

$�*�

$��

$�
�

$n5�

$
�

$�

$�%�

$�(�

$t�

$��

$F�

$s�

$�(�

$�7�

$�8�

$��

$�+�

$U�

$1�

$y
$o
$�

$�,
$�49
$�$G
$�S
$�0e
$�k
$�
q
$Lw
$c
}
$�#�
$��
$�!�
$,�
$N
�
$��
$��
$��
$V�
$ 1�
$h8	
$!(
$'-5
$CB
$�O
$�\
$�%i
$� v
$ �
$5�
$�
$��
$1(�
$()�
$i!�
$i"�
$c�
$�

$�

$0

$*=

$�	I

$�+U

$�a

$�'m

$
y

$ 1�

$C�

$;4�

$m�

$�6�

$��

$,+�

$��

$��

$��

$*�

$�

$��

$��

$��

$�#�

$2�

$U
$/
$�
$Z4
$�
$Y3
$$
${4*
$10
$d&6
$�
<
$
B
$�
H
$�-N
$}.T
$�Z
$�`
$xf
$�l
$�1r
$�x
$i~
$O)�
$I$�
$��
$]6�
$*�
$�2�
$f�
$l1�
$�
$	�
$f�
$
�
$^/�
$R�
$��
$�/�
$/�
$�,�
$]-�
$R�
$/4�
$�
$d
$\+
$-
${1
$V 
$-&
$�,
$l(2
$&8
$�>
$5D
$�J
$$P
$#%V
$�\
$b
$�$h
$P(n
$�t
$�z
$�1�
$��
$�5�
$�*�
$��
$^�
$�5�
$!�
$�3�
$S!�
$��
$/$�
$��
$z'�
$� �
$�&�
$�&�
$x&�
$Z$�
$��
$��
$��
$�
$Y0

$S,
$�4
$8*
$P1"
$f(
$&.
$�34
$�:
$�@
$	F
$XL
$�R
$v!X
$O^
$�d
$*'j
$�p
$`5v
$�	|
$�(�
$h�
$7�
$�$�
$"�
$��
$T%�
$&�
$O5�
$�)�
$�"�
$��
$!7�
$0�
$��
$�.�
$��
$9�
$Z.�
$e�
$��
$g 
$�1
$�!
$� 
$�
$�3
$$
$r6*
$(0
$m6
$�<
$!B
$#H
$8N
$r3T
$�Z
$�`
$h%f
$Y#l
$r
$�x
$~
$Q'�
$8'�
$�!�
$	�
$�%�
$)&�
$T�
$�"�
$ �
$l
�
$��
$$	�
$��
$H8�
$��
$�-�
$%6�
$2�
$�-�
$��
$�*�
$�/
$�

$�&
$"
$e)
$�# 
$^'&
$,
$�'2
$8
$�5>
$�2D
$-/J
$�	P
$�$V
$�7\
$�b
$M2h
$�n
$Lt
$z
$��
$9�
$��
$��
$K�
$|�
$Q�
$�(�
$E�
$�2�
$` �
$�
$�#�
$^�
$�
$�'
$�#
$�9
$m/?
$�7E
$cK
$�
Q
$76W
$�]
$0c
$�i
$"3o
$�u
$C{
$�
$�+�
$C5�
$�*�
$(�
$�
$C/�
$2�
$H%�
$#�
$"4�
$�+�
$9	�
$�0�
$��
$D�
$�
�
$��
$�
$�'
$�)N
$y[
$Pn
$�4z
$�2�
$��
$�
�
$_�
$�.�
$��
$4�
$.�
$�8
$c
$�
$P&-
$�7;
$�&I
$�W
$�$e
$ys
$O �
$��
$��
$�-�
$|
�
$?�
$1�
$�
$e

$�8
$�2
$%
$	"
$y(
$F.
$'4
$I!:
$�'@
$�+F
$�+L
$�!R
$<!X
$�-^
$�d
$�0j
$�p
$2v
$?0|
$A$�
$��
$k*�
$�-�
$�3�
$�
$�
$+5�
$75�
$�)�
$9�
$$
$%
$�2 
$�-
$0:
$(*G
$�3T
$;a
$Q	n
$3 {
$�/�
$�.�
$+�
$�5�
$�%�
$0�
$��
$�
$72
$�  
$�-
$q:
$'H
$�4U
$�2b
$!r
$|$w
$0�
$:�
$?�
$9�
$�	�
$��
$�
�
$�'�
$�!�
$�4�
$
$�
$�,"
$�"/
$�'<
$u+I
$�*V
$x/c
$�p
$.-}
$��
$�5�
$��
$U�
$?�
$%�
$>&�
$��
$��
$T�
$�,
$�
$�&
$�3
$�@
$�4M
$-Z
$�,g
$0t
$�6�
$��
$O#�
$W�
$z(�
$��
$�(�
$��
$z�
$�
$�

$�(
$L"
$�/
$d	<
$�
I
$W�
$��
$v$�
$��
$�7+
$hO
$�i
$�!�
$��
$&2�
$��
$��
$��
$5"���
$�	�
$gl	$
$b"1�:
$SG�P
$	(]�f
$�s�|
$ �h	�
$�)���
$����
$����
$^*��
$�
$	,�5
$3B�K
$�(X0a
$�0nd	w
$:���
$7-���
$��`	�
$
5�X	�
$�!�P	�
$�)�(
�#
$�0�9
$�%Fx_
$)1l �
$4����
$�%�@�
$���`�
$L*��
$@2�
$�- p 
$5 l( 
$�"6 h? 
$ M dV 
$sd `m 
$
r 
$�� X� 
$6� P� 
$�"� H� 
$T� @� 
$0*!
$�8!8[!
$f�!
$R/�!0�!
$�2�!)�!
$K�!
$~�!
$��!(�!
$�	�!("
$�" +"
$�)9"B"
$�)P"
$"0^"
$�0l"
$�z"
$��"
$�*�"�"
$)�"
$�'�"
$��"
$� �"
$�,�"
$��"
$=
#
$C.#
$�8#
$�,#
$�":#
$�H#
$0W#
$63d#
$ar# �#
$��#�#
$"�#�#
$�#�#
$��#��#
$�&�#��#
$^$@$
$�$�"$
$�0$9$
$CF$
$�R$�dy$
$} �$`d�$
$��$
 �$
 �$
$ �$��$
 1�$
 -
%
 �%
 j %
 ~$%
 R3%
 �7%
 pF%
 hJ%
 @V%
$�	^%Ku%
$��%
 �%
 ��%
 X�%
 P�%
$��%
 ��%
 ��%
 (	�%
 "	�%3K�%3K�%
 s	�%
 q	�%
 �	&
 �	&
 �	&
 �	&QK$&QKA&
 �	E&
 �	N&
 
R&
 
[&
 8
_&
 6
i&pKs&
" �&
 _
�&
 [
�&
 �
�&
 �
�&
 �
�&
 �
�&~K�&�K�&
"`�&
 �
�&
 �
�&
 �&
 �&
 M�&
 K'�K'
"�'
 r!'
 p*'
 �.'
 �7'
 �;'
 �A'QK_'�K�'
$\1�'J�'
 �'
 ��'
 ��'
 ��'
 h
�'
 \
�'
 �
�'
 �
�'
"@
(
 �(
 �(dJD(|JN(
"p_(
 �c(
 �l(
 �p(
 �y(
 @}(
 <�(�J�(�J�(�J�(
"��(
 ��(
 ��(
 ��(
 �)
 �)
 �
)�J/)�J9)
"�J)
 $N)
  W)
 d[)
 bd)
 �h)
 �m)�J{)�J�)
$�$�)�I�)
$��)
$Z �)
$�*`I"*
$K1.*
 �2*
 �7*
$�C*
 G*
 L*
$�,X*
 \\*
 Ra*
$�m*
 �q*
 �v*
$.7�*
 <�*
 4�*dI�*
"�*
 ��*
 ��*
 ��*
 ��*�I�*�I�*�I+�IB+
$6N+P@p+
 �t+
 ��+
 ��+
 ��+
 ��+
 ��+
 ��+
 ��+
$�+
 ��+
 ��+pF�+
$q"�+�F,�@,�@3,
 7,
 <,�@Y,�@c,
"�t,
 6x,
 4},�@�,A�,A�,
 ]�,
 Y�,A�,5A�,5A-
 �-
 �-DA:-[AD-[Aa-
 �e-
 �j-jA�-�A�-�A�-
 ��-
 ��-�A�-�A�-�A�-
 �-
 .�A!.B+.BH.
 )L.
 'Q.Bn.)Bx.)B�.
 N�.
 L�.8B�.PB�.PB�.
 s�.
 q�._B/wB/wB//
 �3/
 �8/�BU/�B_/�B|/
 ��/
 ��/�B�/�B�/�B�/
 ��/
 ��/�B�/�B�/
" 0
" 0
 	0
 0
 E 0
 ?)0
"�60
 �:0
 �C0�FM0�Fj0
 rn0
 ps0�F�0G�0G�0
 ��0
 ��0"G�0DG�0
"��0
 ��0
 �1
"�1
 �1
 r 1DG*1DGG1
 K1
 T1
 AX1
 ;]1UG�1`G�1`G�1
 ��1
 ��1
 ��1
 ��1qG�1�G�1�G2
 2
 2
 A2
 ?%2
 o)2
 m.2�GE2�U2�Gm2�H�2�H�2;I�2]�2�F�2C]�2G3Co
38G3C�&3'C73CVG3QCQ3
"@
^3
"@
g3
 �k3
 �t3fC~3fC�3
 ��3
 ��3uC�3hE�3
"�
�3�H�3
  �3
 �3�H4�H#4I84yEM4C�^4�Ey4C��4�E�4�E�4
"�
�4
"�
�4
 Z�4
 V�4�E�4C��4�E�4C�5�E#5C�-5FH5C�R5"Fm5C�w5PF�5]��5\F�5�H�5]C�5C��5H�5C��5�C�5�C6�C*6
 �.6
 �760DL6
 �P6
 �\6�Ff6�F�6
 4 �6
 2 �6�F�6�F�6�F�6�@�6C�7�@7�@#7C-7�@B7C+L7�@a7C=k70A�7CN�7VA�7Cb�7qA�7}A�7Cw�7�A�7C��7�A8�A8�A#8C�-8�AB8C�L8BY8$Bn8C�x8?B�8KB�8C��8fB�8rB�8C��8�B�8�B�8C�8�B	9�B9C*(9�B=9C@G9�D_9�Dl9�D�9C��9E�9C�95E�9RE�9`E�9EI�9
$V7:
$�14:
${F:
$�1S:
$7
a:
$E~:
$t'�:
$]�:
$�&�:
$�/;
$�3;
$`,?;@@R;
$� Z;0@m;
$/8y; @�;
$,�;@�;
$�;
$*#�;�?�;
$�;
$B�;�?	<
$�<
$5!<�?8<
$. H<
$:P<�?g<
$@w<
$�3<p?�<
$r%�<
$�6�<`?�<
$. �<
$z�<P?�<
$�=
 \ =
 X 
=
$',=`Y-=
$K19=
 � ==
 � M=
 !!Q=
 !b=
 �!f=
 �!k=
$L7w=
 ="{=
 /"�=
$G �=
$�*�=
"��=
$�	�=
$�3�=aZ�=
 �"�=
 �"�=iZ>(_ >
$,>
 �#0>
 �#:>@[D>
"�U>
 ($Y>
 $b>
 ($f>
 $o>
 �$s>
 �$x>
"��>
 �%�>
 �%�>
 0&�>
 &�>
 5'�>
 +'�>
 �'�>
 �'�>
 (�>
 �'�>
 I)�>
 /))?
"�A?]Z?
 W*^?
 S*c?]u?`_�?
 �*�?
 �*�?�_�?�_�?�_�?�c�?
"��?
 �+�?
 �+�?
"�@�c@
"� @
 �+$@
 �+-@
 �+1@
 �+:@
 	,>@
 ,H@�cR@�co@
 1,s@
 /,|@
 W,�@
 U,�@
 },�@
 {,�@�c�@�c�@E[�@t[�@�[A�[#A�[HA�[mA"\�AG\�A�\�A`	�A�\�A�\�A�\B�\&Bb]LBy]YB�]}B�_�B]��B�_�B@`�BS`�B``�Bo`C�`EC�`RC�`_C�`�C�`�C]��Ca�C9a�CC��C�a�C](�C�a�C�aD]�D<b/DC�9DKbFD\bjDtbwDb�D�b�D��D�b�D(c�DGc�DXcEic9Ezc]E�c�E�c�E]��E�c�Ed�E]P�EM^�E
" �E
 �,�E
 �,�EM^F
"0
F
 �,F
 �,FM^$FM^=F
 �,AF
 �,JFM^TFM^mF
 -qF
 -zF
 B-~F
 @-�Fa^�F(�F�a�F�a�F
 h-�F
 f-�F�a�F�aG
 �-G
 �-G
 �-G
 �-G�a)G :G�YRG�YiG�Z�G�Z�G�]�G2^�G�^�G_�G	`�G)`HC�H�`(H�aHH�a`Hb�Hb�H=d�HZd�H
$��H0;�H
$K1�H
 �-�H
 �-�H
$(I
 *.I
 .
I
$�I
 �.I
 �.I
$G 0I
$�*AI
$L7MI
 a/QI
 Q/bI
 (0fI
 0kI
$�wI
 �0{I
 �0�I
"��I
$�	�I
$�3�I�<�I
 71�I
 31�I�<�I
"��I
$�J
 �1J
 w1J{>$J�>2Ju;?J�;WJ�;wJ�J�;�J�;�J��J<�J@�J!<
K�K=<7K�AK�<RK`	\K�<sK�<�K�<�K�<�K>=�KW=�Ks=�K
L�=$L�3L�=ML�\L�=vL@�L�=�L��L:>�L]��LD>�L�>�L�>M�> MC�*M??MC�IM'?^M]�hM5?�MH?�M
$��M�:�M
$K1�M
 2�M
 
2�M
;�M
$��M
 a2�M
 _2�M;N%;N
$�N�95N
$K1AN
 �2EN
 �2JN
$w"VN
 3ZN
 3cN�:mN
"�
~N
 *3�N
 (3�N
"�
�N�:�N
"�N
 O3�N
 M3�N
 u3�N
 s3�N
 �3�N
 �3�N�:�N
"P�N
 �3�N
 �3O
 �3O
 �3O
 4O
 4O�:'O�:HO�9UO�9bO�9oO:�O��O::�O�:�O�:�O�:�O
$��O
$��O
$K1P
$�P
$�&&P
$^3P
$�@P
$�MP
$�ZP
$L7�P
$(�P
$��P
$G �P
$�*�P
$��P
$�"�P
$�	�P
$�3Q
$�Q
$�Q@91Q
$�9Q�LQ
$�TQkQ
$�"wQ
 G4{Q
 94�Q
$h�Q
 �4�Q
 �4�Q
$�5�Q
 o5�Q
 c5�Q
$��Q
 6�Q
 �5�Q
$��Q
 �6�Q
 �6�Q
$��Q
 ^7�Q
 X7�Q
$��Q
 �7�Q
 �7�QCR]P&RO=R�[R]�eR�|R��R
�R]��R�R
$��R��R
$��R
 8�R
 �7S
$�"S
 �8S
 �8S
$�,S�6S�SS
 �8WS
 �8`S
 9dS
 
9mS
 69qS
 29vS��S]��S�S3�S<�Sd�S]pTm&T�>T�UT�jTCRtT��T
$�T��T
$��T
 y9�T
 o9�T
$��T
 �9�T
 �9�T
$w"�T
 �:�T
 �:�TU U
 ;$U
 ;-U
 B;1U
 @;:U
 j;>U
 f;CUdU��UX�Us�UC�U
$�7�U
$�U
$��U
$2V
$�5V
$�V
$=,V
$0";V
$�CV�8ZV
$�fV
 �;jV
 �;oV
$�{V
 �;V
 �;�V
$6%�V��V
$��V
 �;�V
 �;�V
$��V
 *<�V
 $<�V	�V	W
 u<W
 s<W
 �<W
 �<"W
 �<&W
 �<-W
$�5W�LW
$\W
$|hW�	W
$�5�W
 �<�W
 �<�W
 .=�W
 "=�W
$
.�W
$�1�W
Xl
0Xs
NX
$VX�8|X
$D�X
$w"�X
$�X
$/�X 7�X
$"*�X
 �=�X
 �=�X
$�
�X
 �=�X
 �=Y
$�Y
 X>#Y
 T>5YM7TY[7rY�7�Y
$0�Y
$"*�Y
$�"�Y
$�(�Y
$��Y
$)$�Y
$�	�Y
$	3Z
$�"Z�59Z
$pEZ
 �>IZ
 �>NZ
$�
ZZ
 J?^Z
 :?oZ
 @sZ
 �?�Z
 P@�Z
 J@�Z
$��Z
$6�Z
 �@�Z
 �@�ZR6�Zl6�Z�6[�6@[�6^[�6k[�6x[�6�[�6�[
$��[
$K1�[
$��[
$~%�[
$C6\�2"\
$K1.\
 �@2\
 �@7\
$lC\
 /AG\
 'AL\
$�X\
 �A\\
 �Aa\
$�m\
 �Aq\
 �Av\
$�	�\
 LB�\
 FB�\
 �B�\
 �B�\
"P	�\
 �B�\
 �B�\
"�	�\
 (C�\
 $C�\�3�\
$~%�\
 dC]
 ^C]4]4)]
"�	:]
 �C>]
 �CG]
 �CK]
 �CT]
 +DX]
 )D]]14}]I4�]
"�	�]
 TD�]
 PD�]
 �D�]
 �D�]
 �D�]
 �D�]S4�]33�]�3^
$�^�'&^
$K19^_(C^
"�P^
 �DT^
 �D]^
 )Ea^
 'Ej^
 QEn^
 MEu^
$�6�^�'�^
$K1�^
 �E�^
 �E�^
 �E�^
 �E�^
 KF�^
 CF�^�'�^
$�!�^P'_
$K1"_
 �F&_
 �F6_
 G:_
 �FK_
 kGO_
 cGT_�'q_
$,
}_0�_
$'+�_
 �G�_
 �G�_
 6H�_
 .H�_
 �H�_
 �H�_
 5I�_
 )I�_
$��_
 �I�_
 �I`
 �J
`
 �J`{ `
$V,`0%C`
$K1O`
 �JS`
 �Jc`
 �Kg`
 �Kx`
 L|`
 L�`
 lL�`
 hL�`
 �L�`
 �L�`
$?�`
 �L�`
 �L�`
 9M�`
 5M�`
$��`
 }M�`
 oM�`
"@�`
$�a
 &Na
 Na
$:!a
 �N%a
 �N*a
$�6a
 �N:a
 �N?a
$9Ka
 4OOa
 &OTa
$�`a
 �Oda
 �Oia
$�ua
 Pya
 P~ax&�a
 cP�a
 aP�a�&�a
$��a
 �P�a
 �P�a�&�ac&�a
"pb
 �Pb
 �Pb
 Qb
 �P(b
 /Q,b
 -Q2b�&[b�%�bE'�b
$�b#�b
$K1�b
 ^Q�b
 RQ�b
 �Q�b
 �Q�b
 �R�b
 }Rc
 JSc
 >Sc
 �Sc
 �S!c
$?-c
 NT1c
 BTBc
 �TFc
 �TKc
$�Wc
 5U[c
 #U`c
$!$rc�#�c
$:�c
 �U�c
 �U�c
$9�c
 cV�c
 [V�c
$��c
 �V�c
 �V�c
$��c
 �V�c
 �V�c�$�c�d�$4d�>d�$Rd$%qd
$�}d �d
$}�d� �d
$K1�d
 EW�d
 3W�d
$c�d
 
X�d
 X�d
$67
e
 4Xe
 0Xe
$�$e
"`;e
"`De
 rXHe
 lXQe
 �XUe
 �X^e
"�ke
 �Xoe
 �Xxe
 RY|e
 JY�e
 �Y�e
 �Y�e
 �Y�e
 �Y�e
 *Z�e
 &Z�e
 dZ�e
 `Z�e
"��e
 �Z�e
 �Z�e
"�e
 �Z�e
 �Z�ee"�e�!fd!(f
$X:f
$K1Gf
$c_f
$?xf
$:�f
$��f
$9�f
$��f
$��f
$��f
$3�f
$K1g
$� g
$�1-g
$�Eg
$�Rg
$qyg
$�
�g
$N�g�(�g
$K1�g
 e[�g
 Y[�g
 �[�g
 �[�g
 o\�g
 g\�g�(h
"�h
 �\h
 �\(h
 ],h
 ]5h
 h]9h
 f]>h
"�Lh
 �]Ph
 �]Zh)qh�(�h!)�h])�h
$@(�hp �h
$K1�h
$4�h
 �]�h
 �]�h
$�i
 T^
i
 R^i� i
" *i
 y^.i
 w^7i
 �^;i
 �^Di
 �^Hi
 �^Oi
$�[i2ri
$K1~i
 �^�i
 �^�i
$��i
 �_�i
 �_�i
 y`�i
 i`�i
$��i
 7a�i
 'a�i
$4�i
 �a�i
 �a�iU2�i
" 	�i
 �b�i
 �bj
 �bj
 �bj
 �bj
 �bjU26jz2Sj�2zj�2�j
$�,�j
$K1�j
$��j
$4�j
$��j
$��j
$/k
$�k
$`2!k
$0-k`Dk
$K1Pk
 cTk
 cYk
$�ek
 �cik
 �cnk
$�zk
 �c~k
 �c�k
 dd�k
 Xd�k
$/�k
 
e�k
 e�k��k
"��k
 ne�k
 je�k
 �e�k
 �e�k�l l
"�l
 �e!l
 �e*l
 f.l
 f7l
 Af;l
 =f@l
"�Il
 {fMl
 wfVl `l }l
 �f�l
 �f�l
 �f�l
 �f�l
 �f�l
 �f�l �l! �l
$(�l��l
$K1m
 *gm
  g	m
$�m
 �gm
 �gm
$�*m
 h.m
 h3m
$[?m
 thCm
 jhTm
 �hXm
 �h]m
$�,im
 (imm
  irm
$�~m
 �i�m
 �i�m
$��m
 �i�m
 �i�m
$��m
 �j�m
 �j�m
 �j�m
 �j�m��m
" �m
 k�m
 k�m
 Tk�m
 Pk�m
 �kn
 �kn�$n�Cn(Mn(jn
 �knn
 �ksn(�n
 l�n
 �k�n4�n��n
$#�n��n
$K1�n
 Tl�n
 Hlo�o�+o
 �l/o
 �l4o�No
 mRo
 mWo�no
$�/�o
$K1�o
$�o
$�o0�o
$K1�o
$P+�o
 ;m�o
 7m�o
 zm�o
 tmp
$�p�(p
$K14p
 �m8p
 �m=p�JpWpdp&rp
$�zp��p
$K1�p
 #n�p
 n�p��p
"��p
 qn�p
 on�p
 �n�p
 �n�p
$��p�/q
$K1
q
 �nq
 �nq�/.q�/Fq�/fq!0{q
$l4�q�.�q
$K1�q
 Do�q
 8o�q#/�qP/�qX/�qm/	r
$=7r�W,r
$K18r
 �o<r
 �oAr
$�1cr
$
.xrY�r
"P�r
 wp�r
 up�rY�r
"`�r
 �p�r
 �p�rY�rY�r
 �p�r
 �p�rY�rYs
 �ps
 �p$s
 q(s
 q-s$Y>s(Qs�WisX�sFX�sX�s�X�s�X�s�Xt�XtKY9tUYGt
$�St`jt
$K1zt
$�tp�t��t��t
$*�t��t
$K1�t
 Eq�t
 ;q�t
 �qu
 �qu
$7
u
 Mru
 Kru(u
"9u
 rr=u
 prFu
 �rJu
 �rYu3cu
"@tu
 �rxu
 �r�u
 �r�u
 �r�u
"@�u
 
s�u
 	s�u<�u��u��u
 Es�u
 Cs�u�
v�0v�Cv]Mv
"�^v
 jsbv
 hskv
 �sov
 �stvd�vCo�v��v��v=�vOwmw�&w
$f0.w�Tw
$`w�sw
$�{w��w
$��w��w
"��w
$J�w
 �s�w
 �s�w��w��w�w�x x�<x�Xxmx�|x�x3�xCy�xK�xC��x
$}	�x
$K1�x
$�y
$�7"y
$�@y
$"_y
$8my
$l2�y
$��y
$p�y
$��y
$K1�y
$qz
$�z
$67z
$�+z
$k=z
$K1Jz
$
Xz
$�jz
$K1�z
$��z
$��z
$'+�z
$�z
$I�z
$K1�z
$
{
$${
$�${
$�01{
$�O{
$]a{
$K1�{
$��{
$��{
$'+�{
$�	�{,�{
$K1�{
 �s|
 �s|
 Pt|
 Ht&|
 �t*|
 �t;|
 �t?|
 �tD|
$U|H,p|�,�|]�|�,�|C��|�,�|
$�
�|
$K1	}
$�'%}
$�7}
$K1D}
$!$R}[}
$�1i}� �}
$�6�}+�}
$K1�}
 Yu�}
 Qu�}
$^�}
 �u�}
 �u�}
$d�}
 %v�}
 v�}
$�4~
 uv~
 qv#~q+-~
"�>~
 �vB~
 �vK~
 �vO~
 �vY~�+�~C��~;+�~E+�~[+�~c+�~�+�~�+�~�+
$t�$
$r	6
$�+\
$�{
$�.�
$�
$K1�
$q�
$��
$��
$��
$K14�
$�A�
$�P�
$s^�
$K1w�
$���
$0)��
$�$���
̀
$�0؀
 w܀
 w�
$��
 jw�
 fw��
$67�
$��
 �w�
 �w�
$x,&�
 x*�
 
x/�
$9;�
 Sx?�
 GxD�
$�	P�
 �xT�
 �xZ�
$e(x�
$�1��
$���
$�0��
$&
��
$�́
$��
$x�
$4��
$��
$&�0	=�
$K1I�
 �yM�
 �yR�
$�^�
 Fzb�
 @zq�
 �zu�
 �zz�H	��
$K3��
$K1ł
$�ׂ
$K1�
$��
$���
$��
$|*�
$�7�
$qQ�
$�,p�
$1��
$���
$m#ă
$K1҃
$���
$2
��	,�
 �z0�
 �z5�
$�$A�
 �{E�
 �{V�
 &|Z�
  |_��	���	��
$�6��
$4��
$S҄
$%!܄
$�#�0��
$�)�
 w|�
 o|�
$K,�
 �| �
 �|5�`X��p�������
$9)��Ѕ
$t-؅��
$P
�
$�3�@,�
$-8�
 E}<�
 =}A�
$�M�
 �}Q�
 �}V�Vn�w��C[��
$k+��@��
$�ʆ
 ~Ά
 ~ކ
 �~�
 �~�
 \�
 H
�
$G�
 6��
 0�.�0e��o�
"P�
 ����
 ����
 ����
 ����
 ܀��
 ڀ���̇]ۇc�c�
 ��
 ���
 /��
 -��
 W��
 U�$��N�C"Y�Bv�O��S��
"���
 ~���
 z���
 ��ˆ
 ��ˈ
 �ψ
 �ԈX������
 �#�
 �,�
 G�0�
 E�9�
 n�=�
 l�B��j�C2~������
"���
 ����
 ����
 ����
 ��ĉ
 �ȉ
 �͉���C8��
"�
 "�#�
  �,�
 P�0�
 N�5�)K�CF\��i�w�
$s��
$K1��
$���
$�-��
$�/��
$�ˊ
$>܊
$u�
$�/�
$�0�
$�+�
$b!�
$�*�
$z7�
$�H�
$b!T�
$�a�
$@r�
$b!~�
$m3��
$z��
$�.��
$b!��
$���
$z͋
$
ދ
$b!�
$���
$z�
$K�
$s �
$�,�
$�0?�
$�P�
$s\�
$�j�
$U��
$���
$���
$$5��
$!.֌
$��
$���
$�	�
$��
$H-(�
$u5�
$y7I�
$�Z�
$f�
$p&t�
$@1��
$�-��
$�/��
$�-���ύ
 ��Ӎ
 t�܍
 ��
 ��
 H��
 B�����
"
�
 ���
 ���
 ��
 �'�
 @�+�
 <�0�
"09�
 |�=�
 v�F��P��m�
 Džq�
 Ņz�
 �~�
 ���
 ���
 �������Ŏ0
�@
�@
�
 6��
 4�!�G
9�Q
L�w
V�w
v��
��
 c���
 Y���
 ߆��
 Ն��
 [���
 Q���
 ه��
 ͇ŏ
 m�ɏ
 a�ҏ
 ��֏
 ���
��e��+��5�
"`B��P��g��y����
 [���
 S���
 ����
 ����
 &���
 �Đ
 ��Ȑ
 ���
 ��
 ��
 X��
 R���'�'$�
 ��(�
 ��1�
 ʋ5�
 ȋ>�
 �B�
 �G�<l��v�
"���
 ,���
 *���
 S���
 Q���
 z���
 v����ϑFّ
"��
 ���
 ���N�x �
"1�
 ٌ5�
 ׌>�
 �B�
 ��K�
 (�O�
 $�Y��c�
"Pt�
 e�x�
 a���
 ����
 ����
 ͍��
 ˍ�������
"�˒
 �ϒ
 �ؒ
 �ܒ
 ��
�k
��(�C2�P��{�������9��ؓ
 C�ܓ
 ?��
"��
"�$�
 ��(�
 |�1�
 V�5�
 J�>�
 �B�
 ؏K�
 v�O�
 p�X�
"�e�
 ��i�
 ��r�
 �v�
 �{����z”�ؔ���)�
 �	�
 	��
 ���
 ���
 ?�#�
 1�T��)^��){�
 ��
 ޒ��
 5���
 1���
 q���
 m����)��
 ����
 ��ɕ
 ԓ͕
 ̓֕
 <�ڕ
 4��
 ���
 ���
 Ô�
 ���{*�
" *�
 �.�
 �7�
 "�;�
  �D�
 H�H�
 F�Q�
 n�U�
 l�Z�
" h�
 ��l�
 ��u�
 Εy�
 ̕~��*��D*��
"p��
 ��Ö
 �̖
 0�Ж
 .�ٖ
 V�ݖ
 T���)���*��*8��*J��,e�
 ��i�
 y�|��,��
"���
 ����
 y���
 
���
 ���
 ����
 ����
"�̗
 M�З
 G�ٗ
 ��ݗ
 ���-�
"@�
 ԙ�
 ҙ�
 ���
 ���
-7�{-A�{-^�
 #�b�
 �k�
 ^�o�
 \�t�{-��
 ����
 �����-��r-Ҙ].ߘ�.��.���-	�
"p�
 ���
 ��#�
"p,�
 �0�
 ��9��-C��-`�
 ��d�
 ��m�
 ��q�
 ��v��-���-���-��<.ۙC.�R.��.%�]X;�x.E�x.b�
 ٛf�
 ӛk�x.���.��]8���.��00ך
 1�ۚ
 %��
 ɜ�
 ���
 ����
 �"��0,�
"�=�
 0�A�
 (�J�
 ��N�
 ��W�
 �[�
 �`�
"�i�
 B�m�
 6�v�
 ɟz�
 ş��
 	���
 ����
 ����
 {���
 ���
 ���
 J���
 D����0ƛ
"�ܛ
 ���
 ���
 ���
 �����1��1�
 �"�
 �+�
 �/�
 �8�
 /�<�
 -�A��1d�c1|��1���1���4��
 `�Ü
 R�̜
 	�М
 ��ٜ
 ��ݜ
 ���
"
�
 /���
 #�
�5#�
 ��'�
 ��1�>5J�
 F�N�
 @�S�g5l�q5v�
"P
��
 ����
 ����
 ����
 ����
 ���
 ޥ���5ǝ7�
 ��
 ��
 ]��
 W��7=��7X�
 ��\�
 ��e�
 �i�
 �r�
 ��v�
 ����7��
"�
��
 ?���
 5���
 ����
 ����
 3���
 -����7֞8�'8�68��@8�8(��KC�
 ��G�
 |�P�
 <�T�
 :�b�,Ll�
"�}�
 c���
 _���
 ����
 ����
 ת��
 Ӫ��
"���
 ���
 
���0L��0Lݟ
 I��
 G��
 n��
 l���
 ����
 ���=L!�HL4��L>�
" O�
 ��S�
 ��X�
" a�
 �e�
 �n�
 2�r�
 *�{��L���L��
 ����
 ����
 ����
 �����LѠ
 ۬ՠ
 ٬�8M�8M�
 ��
 ���
 %��
 #�!�
 J�%�
 H�*�@M?�
 q�C�
 m�L�@MV�@Ms�
 ��w�
 ����
 ��
 ̭��
 ���
 ���NM��YMʡ�Mԡ
"��
  ��
 ��
 ����
 ����
"��
 ��
 ��
 ^��
 T�'��M1��MN�
 ϯR�
 ͯ[�
 �_�
 �h�
 �l�
 �q��M���M���M��
 D���
 B���
 i���
 g�Ȣ
 ��̢
 ��Ѣ�M�
 ���
 ����M�N�N<�
 ް@�
 ܰI�
 �M�
 �V�
 +�Z�
 )�_�Ny�!N��!N��
 S���
 Q���
 x���
 v���
 ����
 ����!Nԣ
 ȱأ
 Ʊݣ8N�yO
�
"�
 ��"�
 �'�
"0�
 ��4�
 ��=�
 �A�
 �J��O_�
 @�c�
 >�l�
 e�p�
 c�|�OP��OP��
 ����
 ����OP��
 ��Ť
 ��ΤOPؤ
"0�
 Գ�
 ҳ�
"0��
 ����
 ���
 "��
  ��kP!�
"p2�
 G�6�
 E�;�
"pD�
 n�H�
 l�Q�
 ��U�
 ��`�yPj�
"�{�
 ���
 ����
"���
 ���
 ߴ��
 
���
 ����P��
"ĥ
 C�ȥ
 A�ͥ
"֥
 j�ڥ
 h��
 ���
 ����P��
"`
�
 ���
 ���
"`�
 ޵#�
 ܵ,�
 �0�
 �;��PE�
"�V�
 +�Z�
 )�_�
"�h�
 R�l�
 P�u�
 {�y�
 w����P��
"��
 ����
 ����
"��
 ۶��
 ٶ��
 �¦
 �ͦ�Pצ
"`�
 (��
 &��
"`��
 O���
 M��
 v��
 t���P �
"�-�
 ��1�
 ��6�
"�?�
 ÷C�
 ��L�
 �P�
 �]�Q{�Q��
 '���
 #���"Q��
 a���
 _�ç
 ��ǧ
 ��Ч3Qڧ3Q�
 ����
 ����3Q�
 ݸ�
 ۸�
 �"�
 �.�bQC�
 +�G�
 %�P�
 x�T�
 v�]��Qg�
"�x�
 ��|�
 ����
"���
 ۹��
 ׹��
 ���
 ����Q��
"0¨
"0Ш
 :�Ԩ
 8�ߨ�Q�
"p��
"p	�
 _�
�
 ]���Q"�
"�0�
"�>�
 ��B�
 ��P�\UZ�\Uw�
 ��{�
 ����\U��
 �
 ̺��iU���UթpN��N�P)�C�3�0VQ�C6[�/Wu�]���vR��vR��
 ���
 ���
 �ê
 �ȪvRݪ
 =��
 ;���R��R�
"�'�
 j�+�
 `�0�
"�9�
 �=�
 ٻF�
 ��J�
 ~�S�
 ��W�
 ��`�
 (�d�
 �m�
 ��q�
 ��z�
 	�~�
 ���
 E���
 ?���_S��
"p��
 ����
 ����
 ����
 ��ɫ
 ߾ͫ
 ۾֫
 �ګ
 ��
 C��
 =��
"���S�
" "�
 ��&�
 ��/�
 ��3�
 ��<�
 �@�
 �F��S^��S���S���SǬTѬ
"`�
 ��
 ��
 ���
 ����
 ��
 �	�
 6�
�
 (��
"��
 ��
 �(�
 *�,�
 �5��U?�
"�U�
 �Y�
 ��b�
"�t�
 x�x�
 r���hW��hW��
 ����
 ����hW­�W��� �3T&�hW=�]�R��U\��Uu�V��V��]���
TϮ\T�yT��T��T6��UN�AV[�iVh��V��C����V���V��C�ɯ�V�JW��C���W"�C�3��T@��T[�C�e�Ur��U��]8���U��]pİUΰU�
 ���
 ����
 ���
 ��
 6�	�
 4��U�
".�
 d�2�
 b�;�UE�
" R�
 ��V�
 ��_�Ui�U��
 ����
 ����U��U��
 ����
 ����
 �ñ
 �ȱ5Uٱ(�P
�CT�WU2�C<�
WV�C&m� Pw� P��
 *���
 (���
 T���
 P��� P��
 ��ò
 ��Ȳ.P߲TW�
$@�
$��
$�.��
$g�
$�'�
$�'�
$�7�
$�7�
$o$ �
$o$(�
$�,�
$4�
$b8�
$bA�
$>E�
$�M�
$p!Q�
$p!Z�
$�0^�
$�0g�
$�*k�
$�*s�
$w�
$��
$���
$���
$�
��
$�
��
$D��
$D��
$H+��
$H+��
$���
$���
$	³
$	˳
$})ϳ
$})س
$hܳ
$h�
$�%�
$�%�
$
�
$
��
$���
$��
$\
	�
$\
�
$!�
$!�
$�/"�
$�/+�
$I#/�
$I#8�
$�%<�
$�%D�
$�H�
$�P�
$�!T�
$�!\�
$�,`�
$�,i�
$�m�
$�u�
$�,y�
$�,��
$�*��
$�*��
$9(��
$9(��
$���
$���
$�,��
$�,��
$N-��
$���
$ô
$̴
$�д
$�ٴ
$�7ݴ
$�7�
$��
$��
$O4��
$O4��
$�,�
$�,	�
$"
�
$"�
$a�
$a!�
$�)%�
$�)-�
$e21�
$e2:�
$�>�
$�F�
$�+J�
$�+S�
$j7W�
$j7_�
$�c�
$�k�
$a8o�
$a8w�
$�&{�
$�&��
$j$��
$j$��
$���
$���
$��
$��
$��
$ĵ
$�ȵ
$�е
$�/Ե
$�/ܵ
$j�
$j�
$�
$�
$�2��
$�2�
$�+�
$P"�
$
�
$�*�
$�"�
$�*�
$D.�
$D6�
$':�
$'B�
$�	F�
$�	O�
$eS�
$e\�
$�`�
$�h�
$�l�
$�t�
$�-x�
$E��
$�4��
$�4��
$q*��
$q*��
$���
$���
$J��
$�
��
$���
$���
$���
$�ȶ
$�̶
$�Զ
$�,ض
$�,�
$T�
$T�
$�
$��
$�3��
$�3�
$�
�
$��T��+�'-(�- �3��8]�QC��p(�sCo�vC���]�C",�C2��C85�CF�
�ʿ�I����(
��
�� 4H \0������0L�`0	��	��	��
�\��0
��
$�L��@X��0@X�l���������`p,�@�\0p����` p 4� �#�0%8P'L�'`�'t�(��)�+P	,�	�,�	�.�	�/
00\
2�
�2�4X�5�7� 7��7$�88�8L@9`�9��:�0;
P?
`?(
p?<
�?P
�?d
�?x
�?�
@�
 @�
0@�
@@�
P@`I\�IpJ�K��K4�W|`Y�`d��d.symtab.strtab.shstrtab.rela.text.data.bss.rela.gnu.build.attributes.text.hot.rela.gnu.build.attributes.hot.text.unlikely.rela.gnu.build.attributes.unlikely.text.startup.rela.gnu.build.attributes.startup.text.exit.rela.gnu.build.attributes.exit.rodata.str1.1.rodata.str1.8.rodata.rela.data.rel.local.rela.data.rel.rela.data.rel.ro.local.rela.debug_info.debug_abbrev.rela.debug_loc.rela.debug_aranges.debug_ranges.rela.debug_line.debug_str.comment.text.hot.zzz.text.unlikely.zzz.text.startup.zzz.text.exit.zzz.note.GNU-stack.note.gnu.property.rela.eh_frame.groupP@:�PT:�Pl:�P�:�P�:� ��d@(A@G:&`ep	 ,�n� 6�np"1@h�� :
LP�[P��V@8�0:
u �� ���@h�0:������@��0:��������@ȩ0:2��2��/"�D /@�8 *@���:Dx�?@��:S��� N@��p:kh��f@��\:!wza��
i���@��:$��/0�@�0:&��/`�LJR�@�H:)�0]��8�0�.�L��L�uL�LL� L��L��L��L�L�L�.P� Fp��A@(:8`��4;�	'8Wlib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/rails/dispatch.lsapi000075500000000770150402106530017335 0ustar00#!/opt/alt/ruby22/bin/ruby

if GC.respond_to?(:copy_on_write_friendly=)
    GC.copy_on_write_friendly = true
end

require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)

# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
require "dispatcher"
require "lsapi"

while LSAPI.accept != nil
	Dispatcher.dispatch
end
lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/examples/lsapi_with_cgi.rb000075500000000357150402106530020523 0ustar00#!/opt/alt/ruby22/bin/ruby

require 'lsapi'
require 'cgi'


while LSAPI.accept != nil
    cgi = CGI.new
    name = cgi['name']
    puts cgi.header
    puts "Hello #{name}! <br> " if name
    puts "You are from #{cgi.remote_addr}<br>"

end
lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/examples/testlsapi.rb000075500000000413150402106530017537 0ustar00#!/opt/alt/ruby22/bin/ruby

require 'lsapi'

$count = 0;

while LSAPI.accept != nil
	print "HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\nHello World! \##{$count}<br>\r\n"
	ENV.each_pair {|key, value| print "#{key} is #{value}<br>\r\n" }
	$count = $count + 1
end
lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/lsapi.gemspec000064400000001611150402106530016037 0ustar00Gem::Specification.new do |s|
  s.name = %q{ruby-lsapi}
  s.version = "5.6"
  s.date = %q{2024-01-22}
  s.description = "This is a ruby extension for fast communication with LiteSpeed Web Server."
  s.summary = %q{A ruby extension for fast communication with LiteSpeed Web Server.}
  s.has_rdoc = false
  s.authors = ["LiteSpeed Technologies Inc."]
  s.email = "info@litespeedtech.com"
  s.homepage = "http://www.litespeedtech.com/"
  s.rubyforge_project = "ruby-lsapi"
  s.files = ["lsapi.gemspec", "README", "examples", "examples/testlsapi.rb", "examples/lsapi_with_cgi.rb", "ext", "ext/lsapi", "ext/lsapi/extconf.rb", "ext/lsapi/lsapidef.h", "ext/lsapi/lsapilib.c", "ext/lsapi/lsapilib.h", "ext/lsapi/lsruby.c", "rails", "rails/dispatch.lsapi", "scripts", "scripts/lsruby_runner.rb", "setup.rb"]
  s.extra_rdoc_files = ["README"]
  s.extensions << "ext/lsapi/extconf.rb"
  s.require_paths << "lib"
end
lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/lib/lsapi.so000075500000231700150402106530015612 0ustar00ELF>�U@@,@8	@H�H� !!P (
(
!(
!  888$$(�(�(�  S�td(�(�(�  P�td�����Q�tdR�td!!��GNU��3�u�����	Apd�C�	H�‚3@(�L�`���q�CS�l����P*�f�R�������������������������������������������������n�}�'3qѮl>�&��Sɶ��
���ܮʼnSO��`��[is�|&߱R����D�/y7ř����k���Պ e�Y����&09=��By:%/�=��ejO�z�J�6�'��l#mNU�L�C�B�1�{�!�\�$�O#W��2�3S=ap��b�U�0��6�������aD7�jp#�7����ĴDI���Ί=\���4y�ݾCE���к�Q��u���o��	��r�SѮ����Io���|q%h6	󝵛���'
���=��qX�[�u��	 �f�	�� �		��U
�y���sO�zu	�	�	�E
����[M�Q	j	E	���k
�&��
���q!
�
1	RT	s��@ +r�	u�	>[	��
��=	&�
�cH�	�
'�I	�
�
0x�*
n`
�m
�K
����:�2p���-, �2B	���F"��X�
��	EN
��
k���@@��0~F�sD��:
��{���
5wiw���`��z�!	[���' ��X!���Vp�Z\�g�Pp��oЏ1��r
Y���` r�9�����tl��{jPW��~��`�-� t]��	�0p�sY@p��5���o�y$� �l!�uU�V
Epw��sS��o7�pMp�(����������}F�psJ��pz`!� �BP������ �![`�g������@�(!��l�@�6`p��@������`!__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizecompareValueLocationset_skip_writesigactionsigemptyset__stack_chk_failreallocfcntlacceptsetsockoptmmapmemsetsetsidread__errno_locationclosewritevkillgetppid__ctype_b_locstrncpystrchrstrcasecmpstrtolgetaddrinfomemcpyfreeaddrinfoinet_addrLSAPI_Log__vfprintf_chk__snprintf_chkgetuid__fprintf_chkgettimeofdaylocaltime_rwaitpidforksystemexitlsapi_perrorstrerrorLSAPI_is_suEXEC_DaemonLSAPI_StopLSAPI_IsRunningLSAPI_Register_Pgrp_Timer_CallbackLSAPI_InitRequestmallocgetpeernamedup2LSAPI_Initgeteuidsignalg_reqdlopendlsymLSAPI_Is_Listen_rLSAPI_Is_ListenLSAPI_Reset_rLSAPI_Release_rfreeLSAPI_GetHeader_rLSAPI_ReqBodyGetChar_rLSAPI_ReqBodyGetLine_rmemchrmemmoveLSAPI_ReadReqBody_rFlush_RespBuf_rLSAPI_GetEnv_rstrcmp__ctype_toupper_locLSAPI_ForeachOrgHeader_rqsortLSAPI_ForeachHeader_rLSAPI_ForeachEnv_rLSAPI_ForeachSpecialEnv_rLSAPI_FinalizeRespHeaders_rLSAPI_Flush_rLSAPI_Write_Stderr_rgetpidgetcwdmemccpy__realpath_chkLSAPI_Finish_rLSAPI_End_Response_rLSAPI_Write_rLSAPI_sendfile_rsendfileLSAPI_AppendRespHeader2_rstrlenLSAPI_AppendRespHeader_rLSAPI_CreateListenSock2socketbindlistenunlinkLSAPI_ParseSockAddrLSAPI_CreateListenSockLSAPI_Init_Prefork_ServersetpgidsysconfLSAPI_Set_Server_fdLSAPI_reset_server_stateis_enough_free_memLSAPI_Postfork_ChildLSAPI_Postfork_ParenttimeLSAPI_Accept_Before_Fork__fdelt_chkusleepsched_yieldLSAPI_Set_Max_ReqsLSAPI_Set_Max_IdleLSAPI_Set_Max_ChildrenLSAPI_Set_Extra_ChildrenLSAPI_Set_Max_Process_TimeLSAPI_Set_Max_Idle_ChildrenLSAPI_Set_Server_Max_Idle_SecsLSAPI_Set_Slow_Req_MsecsLSAPI_Get_Slow_Req_MsecsLSAPI_No_Check_ppidLSAPI_Get_ppidLSAPI_Init_Env_Parametersgetenvgetpwnamdlerrorsetrlimit__fxstatsetreuidLSAPI_ErrResponse_rlsapi_MD5Initlsapi_MD5Updatelsapi_MD5FinalgetpwuidsetgidsetgroupssetuidstrtollprctlinitgroupsLSAPI_Accept_rLSAPI_Prefork_Accept_rsigaddsetsigprocmaskLSAPI_Set_Restored_Parent_PidLSAPI_Inc_Req_Processedselectrb_tainted_str_newrb_hash_asetrb_funcallrb_intern2rb_gc_markmunmaprb_check_typerb_obj_as_stringrb_f_sprintfs_fn_add_envrb_safe_levelrb_string_value_ptrrb_eval_string_wraprb_string_valuerb_check_safe_objrb_ruby_verbose_ptrrb_define_global_constrb_funcallvruby_strdupmkstempftruncaterb_str_buf_newrb_str_catrb_num2intrb_fix2intrb_eSecurityErrorrb_raisememmemrb_yieldrb_gc_writebarrier_unprotectrb_io_putsrb_str_new_staticrb_exec_recursiverb_default_rsrb_output_fsrb_output_rsrb_lastline_getInit_lsapichdirrb_stderrrb_cObjectrb_const_getrb_global_variablerb_define_global_functionrb_define_classrb_define_singleton_methodrb_define_methodruby_xcallocrb_data_object_allocrb_stdoutrb_stdinrb_hash_new__memcpy_chklibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6__environ_edata__bss_start_endGLIBC_2.2.5GLIBC_2.14GLIBC_2.15GLIBC_2.4GLIBC_2.3.4GLIBC_2.3/opt/alt/ruby22/lib64:/opt/alt/openssl/lib64			C ui		�3 ui	�f��������ii
�ti	�ui	�ii
�!�V!@V ! !@!Q�H!��P!��X!��`!��h!��p!��x!���!���!���!���!���!���!���!��!��!��!&��!.��!3��!:��!B��!M��![�!m�!v�!��!�� !��(!��0!��8!��@!��`!��h!��p!��x!��!��!/��!?��!L��![��!g��!t��!~��!���!���!���!���!���!���!���!�
!�
!)�
!4�
!I� 
!R�!X�!X�!i�!y�(!�!0!D#!X!��H!P!X!`!�h!�p!�x! �!#�!5�!��!?�!K�!M�!U�!Y8!Y�!Z�!��!��!p�!}�!��!�! !�(!0!8!�@!H!P!X!`!�h!p!	x!
�!�!�!
�!�!��!�!�!�!��!��!�!�!�!�!�!!!!�! !(!�0!�8!�@!H!P!�X!!`!"h!$p!%x!��!&�!'�!(�!��!)�!*�!��!+�!,�!��!��!��!-�!.�!/�!0!�!�!�!� !1(!20!38!�@!4H!�P!�X!6`!7h!8p!9x!:�!;�!<�!=�!@�!A�!B�!C�!��!D�!E�!F�!G�!H�!I�!��!J!�!L!N!O !P(!Q0!R8!�@!SH!TP!�X!V`!�h!Wp!Xx![�!\�!]�!^�!_�!`�!a�!b�!��!c�!��!d�!e�!f�!g�!h�!i!j!k!l!� !m(!n0!o8!�@!�H!qP!rX!s`!th!up!�x!v�!w�!y�!z�!{�!|�!~�!��!�!��!��!��!��!��!��!��!�!�!�!�!� !�(!�0!�8!�@!�H!�P!�X!�`!�h!�p!���H��H�q� H��t��H����5�� �%�� ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��������hb�������hc�������hd�������he�������hf�������hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!������hm��������hn��������ho������hp�������hq��������hr�������hs�������ht�������hu�������hv�������hw��q������hx��a������hy��Q������hz��A������h{��1������h|��!������h}��������h~��������h������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1�������%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%� D���%� D���%� D���%� D���%� D���%� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%� D���%� D���%� D���%� D���%� D���%� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%� D���%� D���%ݿ D���%տ D���%Ϳ D���%ſ D���%�� D���%�� D���%�� D���%�� DH�=�� H��� H9�tH�f� H��t	�����H�=Y� H�5R� H)�H��H��H��?H�H�tH��� H��t��fD�����=� u+UH�=�� H��tH�=�� �y����d������ ]������w�������ff.����>� Ð��H�GH+F�Hc�AVI��H�@AUATL�$�USH��tQH��H��tIH��I��L9�r�0H��I9�v'�KH�SM��sH�;�Յ��[]A\A]A^��[D��]A\A]A^ø������ff.�f����=N� �D����� Ð��OAWD�D�_AVAUATUSD�6�^�nA��x�j׋G3GD!�3G��V���\$�ЋW�^$��D�D1��\$�!�3WA��ʋN��F���p $E��‰L$�A1�A1�D��D�^!�D1�G��;�ν�D�\$�D�E��D�V���D�T$�A!�A1�E�E���|���A��
1�A�D!�E��1�D�D��*ƇG���D1�D�!�A��1�A1�D�D�N���D�L$�E��	F0�D��!�D�nA1�D1�D�G���F�E��D�f ���D�d$�D�^(A!�A1�E�E��ؘ�i��A��
1�A�D!�1�D�D����D��ʋ^0��D1�D�!�A��1�D�E���[��D����1��!�D1�D�D�N,��A1��D�L$�G����\�E��A!�D�f8A1�E�D��"�k��A��
1�A�D!�1�D�D�N4��E���q����D�D1�!�1�D�E���Cy�D����1��!�D1�D�D�V<���1��G��!�I!�1�D�D�D$��
�E��b%���1�!�1�D�D�D$��E��@�@���1�!�1�D�D�D$���	�E��QZ^&��1�!�1�D�E��6�Ƕ����1�!�1�D�D��]/։���1�!�1�D�E��SD���1�!�1�D�E��
��؉���	�1�!�1�D�D�D$��E��0����1�!�1�D�D�D$���E�����!��1�!�1�D�E���7É��1�!�1�D�D�D$��	�E���
��1�!�1�D�D�D$��A��0�ZEA��A1�A!�A1�A�A���㩉�A��A�D1�!�1��t$�D������D��1�!�A��
�ogD1����	�1�D!�F���L*�1�D�D$�Ή���1�A��A!���B9��A1�DD$�A��A�D1���D$�����q���D�D1�1�‹D$�����0"a�mD���1�G��8�1�Ɖ��1��1�D�D�D$��	E��D꾤���1�1�D�D�D$�A�����KA���A1�A��5`K��A1�AЉ�A��p���A��1�A�D1����D1�D�1��A��	�~�(D����	1�G���'���1�����1��1�D�D�D$�A���0��A���A1�A1�AЋT$�A����2���A�1�D1�֋T$��	��
9��ى�D�D1����1��D�����1�1��C���|�A��A1��A1�A��D$�A����0eV�ĉ�A�1�D1��A��D")��D�t$��	��D�	�D1��A��
��*CD������G���#���	�1����
���	�1�D�D��9��������Ή��	��1�D�D���Y[e��\$���	�1�D�E�������D�t$�����	щ�1���D�E��3}���D�\$�
���	�1�D�D�D$���E���]����	�1�D�E��O~�oA���A���D��	�1�D�E��
��,���D�T$�����	�A��1�A��D�E��6C���D�t$���
��A���N�	�1�A���~S�A��D�E��A����A	�A1�A��5�:�A�D��A��A�D	�1�Љ�3���*�\$���D�	�D1��D��F���ӆ�[��
��]A\�A]A^	�1������։�	�1�DƉ�A�4A_���OW�G�O�W��ATI��1�U��SH��dH�%(H��$�1�H��H����H�<$t)H��$�dH3%(u<H�Ġ[]A\�f.�H�{��1�H�މ�DŽ$�L�$$�\���u�DH�
I� H�A(H�Q8H9�s;8u�fD98tH��0H9�w�1�Å�tH�P0H;Q0v�H�Q0�Df�H�@$@@�@,�������DUHc�SH��H��H��H�@���H��t#H�SPH�H+S@H�C@H�H�SPH�CH1�H��[]ø������f�U1҉�1�S���H������t��t/H��1�[]�fD��t��H���‰߾[1�]�r�f�����ff.�SH��dH�%(H��$�1�H�T$H�t$�D$�D$��&�Ã��tf�|$t'H��$�dH3%(��u0H�Ġ[�f�H�L$A���Ǿ�����ff.�f��� ��Hc�H�vL��H�L9���H��H)�H����S�Nf.�E��������L�I؃�H��L�G�L�E�C�H�D�G��w�I9�thH��H)�H��~SH�pH�2H�pD�H�2H�pD�XH�2�pA��E�L�@��L�Ic�A���pD�Hc�L�M�L9��i��������[�f��0��u�H��[H�1�ø����Ë��u�H��H�1��f�AVAUE1�ATUH�-o� SH�}(t[D��]A\A]A^��EEA������!Lc�@���D��
 DI�E1�1�A���Mc�L���b�H��H���t]L��1�H���|�K�vH�](H��H�]0H�H�]8H�CH�j� H�[� H�CH��H�L� H�M� ���[D��]A\A]A^�H�=�qA�����1����H���H���H+��Hcp�G )�H����H��xsH9�AVHN�AUATUI��SHwH��D�wH���L��H��D����I��H���u!�l��8u
�]� ��u�D��[]A\A]A^ÐH��~���[]A\A]A^ø�����fDUSH������tMH���������u���8u
�� ��u�H�9� �E����H��t�(H�Z� H��t�@��H��[]�ff.�@AWAVAUATUSH��������� ��t8A��A��I����A��f�I�7D������Å�-���tx�n� ��u�D��D)�H����[]A\A]A^A_��A)�E��~ڋ>� ��t�I��f�H��)�I���~�H�PHc�H9�v�HI�H)H�x���������t���s����E)�E��AO��r���1��k���S�5� ��t-�='� ��t+1��T����u��[�8������1�[�@��9�[����ÐAVAUATUH��SH��H��PdH�%(H��$H1����H��
fDH��H��DB u�L�d$@��H��L���D��D$@Ƅ$?</tc<[����:L��f�E�5�H������|$@*H�X�zH�5{nL����A�ƅ��;�EM�����H�}�lf�uL����1�H��$HdH3%(�QH��P[]A\A]A^�D�
M�l$�]f�ML����H�����|$A*H�XA���1��;:�
��1�H�H����H�Í@�=����E��uf��1�f�]�Y���D�Ef�1�H�T$)D$H�L$L��D$H�)D$ )D$0H�D$����upL�d$H��A�T$I�t$���L���'��L��E1�M��������EA���<�����EE1�M���"����::A�D$M��fA�$�
����������������AUI��ATU��SH��(H��$�H��$�L��$�L��$���t@)�$�)�$�)�$�)�$�)�$�)�$�)�$)�$dH�%(H��$h1����t�=�� ���ML�d$`L��@��@��u��������L9���H�G� H�;H�L$HL��H��$P�D$HH�D$PH��$p�D$L0H�D$X���H��$hdH3%(��H��([]A\A]�H�)� H��L��kH�����L�¾d1���3�H�HÁ��K����-� ��H��H�ߺUA��L�Hk�dH�����1����H�H�XZL9�����H��H�S� M��1�L)�H�k�H�;�W����f�H��1�L�d$`H����H�t$H���q���uI��������D$�L��L��j�P�D$PD�L$(1��N�Y^Hc�L��L����H�D$L�4q�L���P�D$P�D$$P�D$0P�D$<P�D$H��P�D$TD��l1����H��0Hc�L�����/�ff.�@��AWAVAUATUSH��(dH�%(H�D$1�H�=ַ �.�D$�H�l$L�5�iL�-�iL�%�p@�H������v�A�Dž����T$�Ѓ���<~$��M��L������D��ME�1����D;=�� t�D;=�� tUD�����H��H��t�H�H1����@�1@�Ɖ�@����H��� H��t�(H�� ��h�K����&� �����9����H�5ٶ H�N0H�V(H9�s*D�A�H�A�E��t�DH��0�8��u.H��H9�r�H�F0H�D$dH3%(uH��([]A\A]A^A_�H�N0�����D$�@�1�D$�X���H�� H���D����C���ff.��AWAVAUATUH��SH��H��(�=˶ dH�%(H��$1���t1�����thH�C(I��I��D�3L+cI)�H�C D�{H)��-��D$��H��E��E��AT��H�5�n�AU1�U�L$,�,�H�� ���E� ��t)H��$dH3%(ulH��([]A\A]A^A_�@D�H�\$H���H�߹�AQL�	o���XH��Z�����t
1���fDH�=Sg�����5�DAWAVAUATUSH��L��� I�Z(M�j0L9��H�|$E1�E1�E1�@��B��ve�CA�l$����A�BD)�A;B�E9r�
�|� ��~ H�SH�L$��H�H)�H9���fD�CA��f��A��H��0I9�w�A�R��D)���1�)ȃ��H��[]A\A]A^A_�fDH�C H�t$H)�IcBH9����C��i�gf��f����)���f9�u��� �����Cf��~pH�5�m�1��M��;�	�����tp�CA��L��� A��f�C�5���fD�C��f�C�����A�������H�5�m�1�����;��A����u�����8u��L�5� ����H��E��E��D��[H�5�m]�A\1�A]A^A_��fDH�t$H����������@E1�E1�E1��z���f.���UH����S��H����H����H��I��[H�5�d�1�]��f����Ҳ 1���u1��=ײ �������� Ð����� �D��H�=�� �@��ATUSH��dH�%(H��$�1�H���}H�H��H�1�HLJ	H�ى�H��H)����	���H�H�{`���I��H���0H�CxH�S`L�c`� L�H)�H�CxH�CpL�H)�H�CpI��$H�Ch���H�C8H�C(H����H I���H��H�C0H��(L�cxL�cpH����l��������twH�T$H�t$���D$������t
�m���8kt0�����1��kH��$�dH3%(uiH�Ġ[]A\�fD�+����C�����C�1����1������H�=c��1���1����#���_���fD���������ff.����S�5� ��t	1ۉ�[����H�5L��
��� ��� �e�H�5>��
�T�����������H�=7� 1��8����tI��� �D��H�=Ab��� �
��H���c���H�54bH�����H�V� ��[É��D�����1��?������H�=�� �@����H�W(H�w`HLJ�H��HLJ0H���H�W�H�VH�W�H�W�H�W�H�W�H��)���81����H�����SH��H�H��t���H���H��t����H���H��t����H�{@H��t����1�[�fD��H��tG��wBL���Hc�A�T�4��t/Hc�A�pH���H�H€:t
�H���H���1��ff.�f���H��tP��tJSHc��H��;��}H�S�HH������[������~	Hc���и����[Ã����AWAVAUATUSH�Z�H�H��H�D$H���:�G�����H���%H����I��H���I�����I��I��L��fDA���)�Hc�H����L9�Hc�IO�IvI���
H��L������H��tML)�H��L��H�XH��H����A��I��A�$��D)��EH��[]A\A]A^A_��L��H��H��H����A���L�|$I���I)�A���M���?����D���L���L�Hc�H��~�A����-���H��1��|���������v���@��AVAUATUSH������I����H��H����H��H����H���H+��E1�H����H9�Hc��HO؋��)�H�H��~)H9�H�wH��HN�H�H��I������E��L�L)�H��t6�E�u@H��H��D���Z��H���u4�?���8u
�0� ��u�M��t-M��[L��]A\A]A^��H��~�I�H�H)�u���I�������D��H�O(H�W8H��LJLS���H)ʍB����H�GpH�0H�pH�@H�wp��~Hc�H�HH�� H�P�H�O8H�Gp����AWAVAUATUSH��H���H�T$H����H��H�<$�I��H�=i]�������HcB$H���H�@H�,�H9�r�Zf.�H��H9�vGH�3L���L����u�H�CH��[]A\A]A^A_�H�D$L9��I��M9���f.�1�H��[]A\A]A^A_��H�$1�L�=� L���@A�l�4��tI�4�L����������H��H��u�H�D$HcP 1���~�H�$H��L���M�tM9�s�H���H�$I�D$H�D$@IcMIcmH,$L�|
L9��)���A�\$���)����;��H�8H�D$�'���-t	��_����H��H��I9�t�����H�U:�t������8����IcUIcEH$H€:����������H�$Hc�Hc�A�VH��H€:�������@��AVAUATUSL��$���H��H�$L9�u�H��dH�%(H��$@1�H����H��H����H���H����H��E1�L�
�� L��h�f�H���Hc�HcT�4��t7�qH��M���
H��Ic�A��H��L�E��H�TD�T�tH��H��u�H���HcP ����H���H��L�L9���Ic�I��H��L��f�H��H�� I9���HcHHc0A��H���LcPI��HcHH��B�D�BH�J�HH�2�JA��u��H�
̔ � L������$DI��H�
�� Ic� L���^��E��taE1��@A��I�� E9�~CA�MI�UI��A�uI�}�Ӆ��H��$@dH3%(u6H��@[]A\A]A^��D����1���@Ic��U������������ff.����AWAVAUATUSH��XH�t$ H�T$dH�%(H��$H1�H����I��H����1�E1�L�-mgH��L�%C� H��H���Hc�HcT�4��t/�HH��A��A�t�I�<�H���L�D$A�ׅ��4H��H��u�H���D�t$<HcB ���L���H��L�H�D$0I9���H�\$(L�t$@fDH�D$(A�l$Ic$A�HTTPH������A�F_L�<H�D$��O�Hcʼnl$8I�H�D$I9���M�nI��I�o�I���_@��-t���H���A�E�L9�u�H�D$I�D�t$8L�D$�L��IcD$IcT$HT$���H�D$ A�L$�Ѕ�~"I��L9d$0�-���H�l$(H����B D$<H��$HdH3<%(u'H��X[]A\A]A^A_�DI�F�v��������������ff.���H��t7H��t2H���D�@$1�E����H���H��H��D�����������f.���H��t7H��t2H���D�@(1�E����H���H��H��D���S��������f.���H����H�O`H��tz����Ѓ�tr��L�G@������H�WPL9�vH�wpL)��L�H��H�V�H�wpHc�0H�T�H�Q�����,H��(LJ(LSH�1�H�Oxø�����f.���H����H�GpH+GxH�������G�����SH�������H�C(H9C8tH�����H�SpH+Sx1�H����~J�
�� �����u$�{H�sx����9��~H�{�������ǃ�H�S`H�SxH�Sp[�f�H�G(H9G8�c���1����s���l���LJ�H�W(H�W8H�W`H�WxH�Wpø�����f���AWAVAUATUSH��XH�t$dH�%(H�D$H1�H���.H�=Ȣ ���GI�������;��H�G(H9G8t
H�$���H�$H�D$L�|$L�d$H�$H�l$ I��H��L)�H����H��@�@L�|$0HO�L�d$ �D$LS�BL�jH�T$8I׋J� �D$D��H�D$(H�l$��uA�~H�4$D����H�I9�~�I�~��H��L)�H���L��H+D$��H�t$����H�L$HdH3%(uH��X[]A\A]A^A_�H��������4��@AWAVAUATUSH��H�$H��dH�%(H��$1�H��I��I���%��H��8���H��I��H�obHD����A������AW�H��SA���1�AVL�S�AU�S���H�� H��=O�Hc�M��t7L���?��1�H��$dH3%(u&H��[]A\A]A^A_����f�����?��ff.�@AT�~f�A��UH��SH��dH�%(H��$1�H�|$H��)$H���H�H��؟ ��xH��$dH3%(u?H��[]A\É�I��D��H�5iZ1��
��1�H�5RH���i������������ff.�f�ATUSH��H�$H��H�$H��dH�%(H��$ 1��s� �����?/H��H�����H������H���bH�ߋH����������!�%����t�¹�����D�H�WHD���@�H��H)��</��)�Hc�Hc�H�1�H���.��H���JL��$�H��L���}��H�����H�=QL������������AH��1��2���Ń������uRH�=�� H9�t
H��t���H��1�����H��� H��$ dH34%(����H�� []A\�fD����T����������>���@�������4�����
�+����H��H�5�X1�������r����r���DH�߹����������S���fD����������H��H�5\X1����������C����H��tv�����t]S��H��tC�uWH�C(H9C8tH�����H�CpH�ҏ H��H�H��H�@����H�Cp�@��H�����1�[�@���c��뢸�����ff.���H��������u��u1��f�S��H��tR�ubH�C(H9C8tH��� ��H�CpH�5� H��H�H��H�@����H�Cp���H�{�:����������1�[��1�H�O@H9OPv����닸��������AWAVAUATUSH��H����H���|���I�֨�,���aH��H�t$H����>��L�{8I��H�C0L)�H9��>L�t$L+{(L��A�@L��L�f�I��M)�M����K�H��@���σ��LSL�Cp�N���I�H�D���I�0H��I�@H�KpM��~H�C(M�xI�H E1�I�@H�C8H���L�1H��M�L�I�H��H�KpH9��e���H���-�����thI��L��M)�M���U���I9�t
H���	�����tDL+t$H��L��[]A\A]A^A_�DM��@�@M)��(������������I�������H�t$H��L�����Hk8�f.���H�������������AVL��AUI��ATI��U��S���H���u\��H�߉���;��A�D$�{L��ǃLS�������H��u0�{L��[L���]A\A]A^�����+������[H�����]A\A]A^�H���ff.���AWAVAUATUSH��H����H�������H����������D$����0��xI��H��I��H������Lc��\�CHc��T���
t��
u(��H�DLc���L�H����
t�
t�L�������~6Hc�A�T���
t��
u#��H�@��~A�L�H����
t�
t�E�<A�G=���I�|$PH�H�TI9T$Hs7H��I+t$@L������2%�)�)���������I�|$PL��H��Hc�A�����Mt$PH��L��I�FI�D$PA�:I�|$P�]��M�D$PI�I�@I�D$PA�Ic�$0fE��T8H�Ѓ�A��$0�D$H��[]A\A]A^A_��D$������ff.����H���
H����B�=����������0���AUATUSHc�H��f��D�A��<
t<
uH���؅�u�H��[]A\A]�I��H�PH��H�DI9D$Hs3H��I+t$@L������2%�)�)��������tQI�|$PH��H��A���0��I\$PH�CI�D$P�Ic�$0fE��T8H�Ѓ�A��$0H��1�[]A\A]ø�����S������D��AUATA��UH��SH���?dH�%(H�D$1��D$f����f��
t1�����f����H�L$dH3%(����H��[]A\A]ÐA�1Ҿ����Ã��tʼnǺ�1��Կ��H�L$A��ߺ�蘿����u#D��H��������uD���������o���謾���߻����D� H���:��D�e�O����A��k���DH�}A�n聾���}�N����3�����H��t����������ff.����U��SH��dH�%(H��$�1�H��H�������u/��H���e��H��$�dH3%(uH�Ę[]���������褿��@��1�H�=r� t������AUATA�'USH����� ��'DN�uD������q� H���@�A�����H��H�� H����H��tH�-�� �D����� �9����Ɖlj�� ����U����D�k H��� D�cE��u<�����D�����SuG�CH�,H�C���1�H��[]A\A]�@A�|$�C�{�˸�����ك�ÉS�ff.�@��H�E� H��t�8�ff.�f���H�%� �BH�B(H�R8H9�s��H��0H9�w�H��� H��t	���H�m� H��t	����fD��H�M� H�H;� �wH��H�H;ގ �����ff.�@��ATUSH��H�� dH�%(H�D$1�H�j� D�`豼��H�SX�� ���H�kXH�-� �r���H�7� ����̒ �ޒ H��� H�h� H��tH��~ 1�1���H�-�� �E��H�y� H��t��{1��F���� ��uH�U� H��tA�D9 ~��� �� ��ut�;���u]H�LS�[H��H�$��P�D$�ʻ���H��߉D$觻���h� 1�H�L$dH3%(u)H�� []A\�D�+���������������t���@�����H�� SH���@H�Xt1�����H�SXH�BH�B�{�۽���C����1�[���AWAVAUATUSH��HH�Đ H�|$H��$�L�edH�%(H��$81����H����L��DŽ$(H��$�艾��H�R� H���e������cH����L��DŽ$(H��$��K���H��� H���'������H�8� H����������H�|� H��
�������H��� H���ӹ������H�D$1�E1�L�d$ ��� L�|$ǀ��D$H�� H��t	H�=ȋ ��1�菾��I��L9�t71���������L���P���C��t�S�����D$fD�V�F���H��� �L��H�1���H�Hc;�ֺ���;M��L��H�D$H�D$�����������?)ѺH��1�H	T� 1�j� �Ń���������	����8��1�H�5�� �蝸��1ҿH�5� 芸��1ҿH�5<� �w���1ҿH�5�� �d���1ҿ
H�5֋ �Q���H��$8dH3%(���kH��H[]A\A]A^A_�fDH��� H��udD�C�S�K�
D9���H��� A�����H��tD��H�5UI1��V������������ M��� �������fDD�0D�CE��~�E��~����e���D�˺��A��u���D$�t$9��/������������D�;�)��A��H�D$D�pA���uc蒶���0���k������b���H�=�?D�������j���f.�H�=�?�����������H�=CH�����������1�1����H�\$H�CX�������������=� �f����=� �D��H��� H��t�x�ff.����H�u� H��t��x�x����H�U� H��t��~�x����H�5� H��t��~�x����H�� H��t�x�ff.�����=�� �D����� �D����� Ð����� �D��AUATUH��H�=�>SH��8dH�%(H��$(1��-���H��tH��� �H�=�� ��H�=O>����H���E1��
H��螹������H�=I>�ڳ��H��t�
1�H���v����h� H�=5>贳��H��H��t�
1�H���M���I��A�ą��WE1�H�=>耳��H��t�
1�H�������ϊ H�=>�Z���H��tH�Ǻ
1�������O���H�=�=�3���H�����Њ H�=�=����H��tH�Ǻ
1�谸�����9����Ķ������H�=�=���H����1��
H���x������OH�=�=賲��H��tH�Ǻ
1��O������ش��H�=�=茲��H��tH�Ǻ
1��(���������H�=�=�e���H��tH�Ǻ
1��������ʺ��H�=r=�>���H��tH�Ǻ
1��ڷ����胲��H�=b=����H��t�=���H�=`=����H��t�
1�H��蝷����� ���_H�=H=�ӱ��H��t�
1�H���o����ʼn D�^� �P� �B� E����H�==�ٶ��H�����="� ��u	�P�� �5� ����H�==�S���H�����
1�H������Ո �…�t�Ո �����H��u H�H����H�H����D��� L�=L�
=L�=�C�
H��L���������t@H�ֹL����€���D	�t%H��tAH�H��t9�H��L���������u�H��fDH�JH��H�J�H��u�H�H��u�1ۉ�H��$(dH3%(��H��8[]A\A]�fD�փ H��膲���D����<G�~A��<MED�A������s���D��H�H��� �_�����豲�����@H�=�:�̯��H���������fDH�=:謯��H����������fDA���f��@�+� �#���f�諳�����fD1�E��H������~���H��s �8������H�=;�ǵ��H��H��� H����H�5�:H���u���H��H��� ����H�����-�� ������H�5�:H���@���H�5�:H��I��H�L� �'���H�5�:H������H�5�:H��H�� ������~H�5�:H�����H��� H�=� H���~A�ԅ��L���H�=mB���H�=� 蔮��H�� �$���@H��H�$H�D$�r������DH��H��$���$��̯�����t
螮��1҃8k�‰�� ����H�=^9�̭��H��t1��
H���h�����~�V� H�=F9袭��H��t1��
H���>�����~�(� H�=.9�x���H��H���iH�Ǻ�1�1�諵���Ã����H�T$�ƿ����������D$(?���H�5߄ ���ر��H�������W���H�`� H��t�xc�@d�x��@�D�
� E���9���D�k� E���)����Z���f�H�=m8褬���>� H���K����]����
2� ��u
�$� '�� �������� '������� �)���f��Յ�tbH�à H���-�������DH��H�5�?�1�������S�����������A��Hc�螲��L�%g� H��H�u� �a����s����Å�t��=s� ��� ����B� ��u
�L� �5R� ������`���H��H�50?�u���H��H�5�>�1��U����������H��H�5�>�F���ff.����AVI��AUE��ATI��UH��SH��t��4H��u!�(fDH��H���t���H��L����W���H�]H��u�M��tE��L�����[1�]A\A]A^ÐIc�L��L���������H�#Eg����H�GH�H��ܺ�vT2H�G����AWAVA���AUI��ATUH�oSH��1�H���G�O�@�ƉWD���������W��?t;A�ĉ�D��H��H�|�@D)�A9�rhA��G�t4�L��L��$���H��L���9���A��?vWE�f�A��I��I��I�H�޺@H��H��@���H��L������L9�u�A��?D��L��H��H��[]A\A]A^A_鼱��I�������ATL�fUH��S�FH�����?��L�H�z���?)ƒ�w=��t1������9�r�L��H������f�CAD$AD$ I�D$0��71�)�����H�CH��L��H�CP�?����oH�{1�H��MH�H�CPH)��KX���H�[]A\�ff.�f�AWAVAUATUSH��dH�%(H��$�1�H��t^� �I���A�����f�Mcg I�oA�_@L��H����3���H���uM�����8u
�=	| ��uٽ����H��$�dH3%(����
H�Ĩ[]A\A]A^A_�f���~�A��A������u���I���ALJ�f�8LS�|�x�r�@t�P�Hf�@�H�P�X���N������	M�g���A;G �ZA���9�~u���E�o)�H�Hc�I��H��L��D���"���H���u$�����8������5�z ��u�����������A��M�gA���9��I�D$,H�D$Hc�I�I���D�hA�����h(A9��}A�� �/Hc�I���H�4@H���E���H���A���I���I����h$A9��}A�� ��Hc�I���H�4@H�����H����A���I���I���H�l$�p(I���L��H�����������I���I���L��p$�������hM���Ic@���o9��gIcP���[9��SIcp���G9��?IcH���39��+I�H�H�H�H�I���H�T$I���Ic@ H)�I���H��H��I���H��H�H���I���H�I���IcHI���H�H��H�D$I9���E����1�D�L�4��t9�d�<B�9�ZH��H��u�IcP ���kI���H��H�H9�r*�RP9�!�P9�P9�H��H9��-�9�~�H�5�1�1�荮��H�51�1����w����>���f�H�� ����H��� ���I�GA�G  I�������P�Hf�@	f�@
�H�H�P�P�H�H�P�P�H�H�P�P�H�H�P�P�H�H�P�Pf�@f�@f�@�H�H#�P�P �H �H'�P#�P$�H$�H+�P'�P(f�@f�@!f�@%�H(�P+f�@)I������1��
fDI���HcȋL�4��t#f�BI���H�T�4�
�rf�B@�2�JH��H��u�M���IcP ����I���H��H�H9������pH��@�p��p�H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��H�H9�w�M���A�pI����b���Ic@I���H����0�*z ALJ���t`��y 
�y A�������y 1������L��Hc�诩��I��H������I�GA�o I����u���I���D�%�y D�-�y �B(A��A���1Ic�H�4II���L��I�
�9�H�qH�=G.����������I�J�D�B(�9�xH�qH�=".���������XI�J���B(��$�A�D$I���KA�zH�L$�;M�bfo�x L�t$ L���AoL$AT$M�l$)�$�蘪��� L��L������H�L$�L��H����L��L�����H��$�I�D$H��$�I3L$H1�H	���D�$$D�l$E����D��D�l$�â��H�=4x I��H��������I��D����w ���M���H�=�w t"L��D��L������Ń����������P�|$�g��������E��t$A9u��H�t$��~��������D���
���������5�w ���$A�?D�5�w ���t� ���A�����H�5�)L�����H��tH�����H�rw f�)Ww �#���A��H�5�i 1�����H��@�������H�5�+�1��9�������L�����H��������
1�H���o���I������H�5�3�1���H�5�3�1��ݨ��D�%�v ��v D��D$����H�=uv I��H��tZE���W����7����E1�1�1�1���ݤ����������H�=�3������H�5�*�1��`�������E��|$蟦�������M���2����;�����|$�w��������E������1�H�5�*L���u������I�}臧���Ń������1�H�5�*L���K�����fD�=�u ������-�u �{u E���D$A�����I���F������H�5�)�1�膧��������H���H)���H�5�1�H��1��a�������1�H�5*L�����������
����ܟ��1�H�532L�������A�#��L��H�
�3H��p 臣�����1�H�5�)L���a����ff.����AVAUATUSH��dH�%(H��$�1��D$H���H���ѡ������	�;1�L�l$L�d$L�t$H�k�l����Bp �����{�ul�;�����L��L���D$�����C�����H�t H��t�@��H�4t H��t��{1�����f�|$���=�s u|H���4��tH��舴��H���@�����o ���d���1�H��$�dH3%(u}H�Ġ[]A\A]A^�D�s������������������������{�H�5�e �,���H���f����ы{L���A��՜���;����۝��ff.���AWAVAUATUSH���D�=4s dH�%(H��$�1�E���xH��� ���H�-ir H�����}�����r ;.e �DH�-s H��t1��A���H�ED�rn E���H��$L�|$PD�cA����:E1�A�f�D�
5n E����D�}r E��tH��r H��t
�@f����L��H��1���H�Ic��g���D��H�D$PH�D$X����A���?)ѺH��H	��D9#��1�1�A�|$M��H���m D9#������H�r H��t
�@D9#��d A��D9���1�葳��������f������H��$�dH34%(���'	H���[]A\A]A^A_��K���L��$�H�����DŽ$hM�l$H��$�L��謞��H��$L��H��H�D$@�������AH����L��DŽ$hH��$��e���H��$�L��H��H�D$0�8������PH��$�L��H��H�D$8�������+H��$`L��
H��H�D$(������H��$ L��H��H�D$H�ə��A�Dž���H�D$PE1�L�l$`H�D$H��$�H�D$H��$`H�D$f�D�%�o E����H��o H��t	H�=�k ��1��t���I��L9�t<1��ձ������L���5����E���D�uE���M��E1���V�&���H��k �L��H�1���H�Hc}赚���}L�D$L��H�D$PH�D$X�����������?)ѺH��1�H	T�`1�Fk ���������������8�����H�t$(1ҿ
�}���������x������=�����������_����5�n ��tH�o H��t
�@f���,���D9#�
D������C�����H��n H��t�@��H��n H��t�D�c1�D���N����
 j �����=�m �����{�H�5�` ���H����������H�!n H��t�*H�Qn H�������B���(���@H�1n H��t�@��H��m H����������@苖���8�B����-���DA��D9�����M�����=Ri ������蝟����������=6i �����H�qm �
H��t��D��H�Pm H��t�
�A9����������H�1m H��tD��҉T$$D�E~:E��~5���W����T$$A��軙��A�����謙��A��u������D�E�U�M�
D9�vH��l A�����H��tD�H�5�'�1�覞�������������D$�W����0������������H�=�!�G����T$���fD�}蠩���C�����1��m���H�|$I�����H�|$���H�T$H�t$1��P������6�����������1�EM��tA�M�gM�g�{E1��C����C����H�t$1ҿ����������H�=�)�'������f��;�	���������>���fD�D$$�O����0���d������T$$�W���H�=��T$�7����T$����fDD�#A�����������fD�Nk ���R���D��f E���B���H�k H���2����9�f �����{�H�5e] 蠔��H�{�w������H�=C(�F������茓��H�=�(�0莖��M������A����H������…��
H�{����H���֘���<f ���������H�=��Ԛ��������������H�t$1ҿ�t�������H��i ����Rj ���L�=Rj �8j H�j �j H��i H��tH�V 1�1���L�=j A�G��H��i H��t��{1�蝦��D�-ne E��uH��i H��t!�E�9~�Je �Hi �����;���t�ؕ�������H�t$@1ҿL��$��ɒ��H�t$01ҿ踒��H�t$H1ҿ角��H�t$81ҿ薒��H�t$(1ҿ
腒���kH�LSH��$��j'��$�讒���L��$�舒���Ih ��h ���H�=#�*���������%���軚���������,���H�='&�����Q���H��h H��t*f�C1��C�D$�C���C����T$H�C(H�C �dh ����֒��fD���=^h �\h �ff.�@��H�d ������f.�f�����fD����l H���ff.���H�]T H���H+���H���HO��D��H������1��f���1��f���ATI��H��US��Hc��H���Hc�L��H���:���H�=l H��H���ؔ��[�]A\�ff.�H�5ig SH��k H��tH�=�k H�ٺ1�[����D�H�=�'还��H��H�%g ����H��s�����H��H�=IS 蜏���H���f���H��H�=)S �|���Hc5k ;5�b H�=k |6�!���H��j �����H��j ���j H���fD苎����f����?��I�H�=�R ���H���H+��9�M�1���~+H��Hc�Hc5�j H5vj 聐����~sj H���f��ff.�@��UH��SH��H��膓��H�m ��t]��uaH��H���H��tT�؃���tJ��tEH�H�؉у���u5H�M�� u@H��H�p��H�}��H��H�[]H�D�@H�����u�H������H�MH��� t�H�PH�p�f���SH���C���H��[�ff.���SH���s���H��H�������[Ð��H��H�=YQ 蜔��H��` H�����H��H�=9Q 蜎��H��` H�����H��H�=Q ��������tH��` H��H�����USH��H�=�P 芏��������H�=�h H��t�{���H��h �����H��h ��h �ō��9�h t H�5Nd ��h H��t[1ҿ1����1�H��h ���H�-P H�;H��H�u�ɔ��H�uH�;H��蚋��H��_ H��H��[]�f��H�=@$�_���H��H��c ���SH��H�t$�-�����~0H�|$�H�\$�$���H���l���1�H������H��[�@H�\$H������H�|$行����ff.�@��AWAVAUA��ATI��U��SH��H���<Q��~v<R��<Su"�H�=�#H���������@Mc�L��L��芓��Hc�H��I���|���H�=Mg L��H������H���[]A\A]A^A_�fD<Pu��
H�=+#H�������u��ƀULc�u��H�=�"H��������t����?H������I��H���H��A��L)�A)�Mc�H��L��H�L$�В���	H�=�"H�$軒��H�$H�=�f H���X���H�L$L��H��蘒���H�=�"H�$胒��H�$H�=Pf H��� ���1�A�??L����I�L���Y����H�="I���E���H�=f L��H��������fD�
H�=�!H��������r����:�i������@A�L�%�Q���fDO�<4L��E1������H9�\ tH����ATUH��S���ʉ��L� �‰��H�5�e H�=�!H��ȍ��裉��H�5�` L� H��tH�=]e H���[]A\�_�����H�=a!�7���H��H��` ��ff.��=�d �t1��@H��L H����=�d ����t�USH��;=&\ ��H�=�` 脎��H��H������Ń����H��覈��H������Hc_d ��H���-�������E1�A���H��1��[���H�$d H����������1�H��[]�f.�Hc���C���H��c H��u�H�=� 軏�����@��c 1��H�=5 蔏�����}�����fD�ˇ���8�d���H�پH��I��H��K H�81����H���)�����N���H�=��3�����������1���f���AUATI��U��SH��H���e�����~0����H������~H��ƒ����m���d1��������@�����-�b ��+�b Hc�D�-�b �;���I�Ĩu,H�����t$H��ƒ������H����@��t"D)�A�DI�D9�u"D���������H��L��[]A\A]�@D)�Hc5Vb L��H5<b Hc��$���>b ���H��L��[]A\A]�@I�<$@��u&蹇����xe�-b �b )�9�O���!���裏���ؐD9�Hc5�a L��DN�H5�a Ic�谈��D-�a �R���@��I�$����@H��A�[L��]A\A]�H�=I H�5nH�81�蔅��@��AWAVAUATUSH��H��薌����~0���(H������H��ƒ����
���1��J�������L�5
a ��D9-a ~N��-���D�-�` M�&�H�gHc=�` D��)�I��L�Hc�H�����H��t�L)�D)��XHc�H���!���I�Ĩu*H�����t"H��ƒ���M�H��sBf.���~Hc5u` H��H5[` L���C���]` H��L��[]A\A]A^A_���I�$��A���H��G H�5H�81��(��������_ SH����_ ��~"@H���h���H���0�����_ 9�_ |�H��[�ff.�f���SH�������~ ��u@H�����t7H��ƒ���t*��t%H�=G 貄�����t
H�[H�D�@�[�H�
G H�5;H�81��a������AUATUH��SH��dH�%(H�D$1�����I��1�I���KDH����H9�}LL���Ă��L��I�E tW貂��I�EH��H��L��H��H�$�2���I�E�� u�I�EH9�|�H�L$dH3%(�uBH��[]A\A]��[���I�E �D�H�=1�?���H��H��H�$�˂����T���@��1��f���UH��SH��H��dH�%(H�D$1���u;H�����t2H��ƒ���u%�� tH�{~H�S��H�S��u�DH���uX胃���H��D$����H�E H�t$�H�8�PH��H�����HD�H�L$dH3%(uH��[]���;�����t���@��AVAUATUSH�Ӆ�����G�I��L�%	H�l��R�@��uj������t`H��tZ@��tTH��4tN�������H��H��H�=�����6���I��L9�tpI�}@��u�H�����u�H��tqH��u���#���H��I��H���e�I��� u]H��I�V��H���<
t�H�YD H��I��H�0�2�L9�u�[�]A\A]A^����u�L���&���H��뉐I�FI�VH���f�H�D H��H�0���[�]A\A]A^���AVAUATUH��SH��dH�%(H�D$1������I��H�6A���L�5��w���@����H��H���H��tw����to@��ti�����u_�L���b���H��H���7�A9�~OH�kC H�0H��tH����I�t�H��@��u�H�����u�H��t�H��u��H�����A9��H�C H�0H��tH�����H�L$dH3%(�u0H��[]A\A]A^�f����I��A�H��H�$���р�����AUATUSH���M��������H�=xH��Z H��Z ��Z �~��H��t8�
1�H��H��詃��H�Ņ�~�MH���Հ��H�������-�Q H�=,��}��H��H��tH������H��H=��8�Xfo[f�$V )
V H�=e1��}��H��t1��
H��1�������@��H�=�A �f������H�=���Y �?}��H����H����������H�FA H��H�H��A H�5fU H�H��Y H���sL�%A I�<$蓄��H�54U H��Y H���$1�H��1�����H�=yY H�rY 荄���H�=1�|����H�=(I���h���H�=AY L��H�������H�5��H�=��.���I�4$H�=��Ά��1�H���H�5�H��H��X �o������H�=�X 1�H��H�5��+���H�=�X �H�8���H�5�����H�=�X �H�	�H�5����H�=vX �����H����H�5��΂��H�=WX �����H���H�5�诂��H�=8X �����H�����H�5�萂��H�=X �H�=�H�5f�q���H�=�W 1�H�q�H�5M�U���H�=�W 1�H�����H�57�9���H�=�W 1�H����H�5 ����H�=�W �����H�*�H�5���H�=�W 1�H���H�5����H�=kW 1�H�2���H�5��Ɓ��H�=OW 1�H���H�5�誁��H�=3W 1�H���H�5�莁��H�=W 1�H���H�5��r���H�=�V 1�H���H�5~�V���H�=�V 1�H���H�5j�:���H�=�V 1�H�j�H�5U����H�=�V 1�H����H�5>����H�=�V �H�?�H�5$���H�=lV �����H���H�5��Ā����腃��L�%�= H�=7V H���H��H�V L����}��H�V H�-�= H�=aM H�
�= H�SM H�*H�JH��= H�H�s= H�����������H�=�U L��H�+�H��H��U �|}��H��U H�
>= H�=�L H��L H�JH�*H�豀����y��H�(��y��H��(���H�iU 1��z�H�5[U H�=�}��H�3H�={�}���y��H�(H��[]A\A]�DH�P�H��H�=�P �}��H��w"H��P H�.XXXXXXH�(����H�t+��H�=������u�����H�=�T 1�H�X�H�5��,��H�=�T 1�H��H�5����H�=yT 1�H���H�5���~�������H�=$�g���H��H��O H�NT �����H�=��?���H��H��O �m���H�=�����*����H�=��<w��H����������fD�mH���z��H���6����KH���y��H��t��
�-K �����kH����y��H��u�-�J ������H��H���Anonymous mmap() failedlocalhost%02d:%02d:%02d [%s] [UID:%d][%d] %.*syesnosystem()%s, errno: %d (%s)
/dev/nulllibpthread.sopthread_atforkHTTP_[UID:%d][%d] %s:%s: %s
LSAPI: jail() failure./etc/Can't set signalsaccept() failedLSAPI_STDERR_LOGPHP_LSAPI_MAX_REQUESTSLSAPI_MAX_REQSLSAPI_KEEP_LISTENLSAPI_AVOID_FORKLSAPI_ACCEPT_NOTIFYLSAPI_SLOW_REQ_MSECSLSAPI_ALLOW_CORE_DUMPLSAPI_MAX_IDLEPHP_LSAPI_CHILDRENLSAPI_EXTRA_CHILDRENLSAPI_MAX_IDLE_CHILDRENLSAPI_PGRP_MAX_IDLELSAPI_MAX_PROCESS_TIMELSAPI_PPID_NO_CHECKLSAPI_MAX_BUSY_WORKERLSAPI_DUMP_DEBUG_INFOnobodyLSAPI_DEFAULT_UIDLSAPI_DEFAULT_GIDLSAPI_SECRETLSAPI_LVE_ENABLEliblve.so.0lve_is_availablelve_instance_initlve_destroylve_enterlve_leavejailPHP_LSAPI_PHPRC=packetLen < 0
packetLen > %d
Bad request header - ERROR#1
ParseRequest error
SUEXEC_AUTHSUEXEC_UGIDLSAPI: setgid()LSAPI: initgroups()LSAPI: setgroups()LSAPI: setuid()Bad request header - ERROR#2
lsapi_accept() errorPragma: no-cacheRetry-After: 60Content-Type: text/htmlDEBUGNOTICEWARNERRORCRITFATALAcceptAccept-CharsetAccept-EncodingAccept-LanguageAuthorizationConnectionContent-TypeContent-LengthCookieCookie2HostPragmaRefererUser-AgentCache-ControlIf-Modified-SinceIf-MatchIf-None-MatchIf-RangeIf-Unmodified-SinceKeep-AliveX-Forwarded-ForViaTransfer-EncodingHTTP_ACCEPTHTTP_ACCEPT_CHARSETHTTP_ACCEPT_ENCODINGHTTP_ACCEPT_LANGUAGEHTTP_AUTHORIZATIONHTTP_CONNECTIONCONTENT_TYPECONTENT_LENGTHHTTP_COOKIEHTTP_COOKIE2HTTP_HOSTHTTP_PRAGMAHTTP_REFERERHTTP_USER_AGENTHTTP_CACHE_CONTROLHTTP_IF_MODIFIED_SINCEHTTP_IF_MATCHHTTP_IF_NONE_MATCHHTTP_IF_RANGEHTTP_IF_UNMODIFIED_SINCEHTTP_KEEP_ALIVEHTTP_RANGEHTTP_X_FORWARDED_FORHTTP_VIAHTTP_TRANSFER_ENCODING%04d-%02d-%02d %02d:%02d:%02d.%06d Child process with pid: %d was killed by signal: %d, core dumped: %s
Possible runaway process, UID: %d, PPID: %d, PID: %d, reqCount: %d, process time: %ld, checkpoint time: %ld, start time: %ld
gdb --batch -ex "attach %d" -ex "set height 0" -ex "bt" >&2;PATH=$PATH:/usr/sbin lsof -p %d >&2Force killing runaway process PID: %d with SIGKILL
Killing runaway process PID: %d with SIGTERM
Children tracking is wrong: Cur Children: %d, count: %d, idle: %d, dying: %d
LSAPI: LVE jail(%d) result: %d, error: %s !
Invalid custom stderr log pathFailed to open custom stderr logCan't set signal handler for SIGCHILDReached max children process limit: %d, extra: %d, current: %d, busy: %d, please increase LSAPI_CHILDREN.
LSAPI: failed to open secret file: %s!
LSAPI: failed to check state of file: %s!
LSAPI: file permission check failure: %s
LSAPI: failed to read secret from secret file: %s
LSAPI: Unable to initialize LVERequest header does match total size, total: %d, real: %ld
LSAPI: missing SUEXEC_UGID env, use default user!
LSAPI: SUEXEC_AUTH authentication failed, use default user!
LSAPI: lve_enter() failure, reached resource limit.prctl: Failed to set dumpable, core dump may not be available!sigprocmask(SIG_BLOCK) to block SIGCHLDsigprocmask( SIG_SETMASK ) to restore SIGMASK in childfork() failed, please increase process limitsigprocmask( SIG_SETMASK ) to restore SIGMASKCache-Control: private, no-cache, no-store, must-revalidate, max-age=0PID<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>508 Resource Limit Is Reached</TITLE>
</HEAD><BODY>
<H1>Resource Limit Is Reached</H1>
The website is temporarily unable to service your request as it exceeded resource limit.
Please try again later.
<HR>
</BODY></HTML>






	


replacesrandQUERY_STRINGREQUEST_URIPATH_INFOREQUEST_PATHSCRIPT_NAMESTDERRreopenftruncate() failed. 
File mapping failed. 
Memory calloc error[...]nilLSAPI_MAX_BODYBUF_LENGTHLSAPI_TEMPFILEXXXXXXRACK_ROOTchdir()to_hashCGI/1.2eval_string_wrapLSAPIacceptaccept_new_connectionpostfork_childpostfork_parentprocessputcwriteprintprintfputs<<flushgetcgetsreadrewindeacheofeof?closebinmodeisattytty?syncsync=RACK_ENVInsecure: operation on untainted IOGATEWAY_Irewindable_input.rbNTERFACE/tmp/lsapi.XXXXX;�z0Z���e�� �p��8�p��L�p��`�p��t0q���@q���Pq����x��0@y��d�y��xz���`z���{��|��$}��t�}��� ~�����<`��d���������$P���p���������H	���p	 ����	0����	@����	P����	����	��
�0
���D
`���X
����t
����
p����
���
�8`���L�����������P ���dp���x������������
����h
0����
p����
�������(����tP����0���P���p��������������@���<`���P����d���xp�������������,�@���T0���hP���|p����������������������������4`���t����������P���0��L����������� ��0��$P��8���L���`���t�������P���`����������`��0��\0��xP���p�������������� ��,@��x����p���@�@�����p��`�p�@�H������zRx�$0V���
FJw�?:*3$"D�`���
\@l��p<l���8l��
L�4l��sE�I�B �E(�A0�z
(A BBBIA
(D BBBA�dl���`l��@\l��YG�J�B �B(�A0�A8��0F(B DBb0Txs���B�F�C �G�
 AABK��s��k(�0t��GA�D�J n
AAA4�Tt��UA�G�K R
CAGL
JCG |t���A�G�]
AJ $�t��t��
CKF�LH�u���B�B�E �A(�H0�H
(D BBBD�
(D BBBAP��v���v�F�B �A(�D0�D
(A BBBBL(A BBBA�����$��v��aA�A�D XAAH(w���B�B�B �B(�A0�A8�D@N
8C0A(B BBBH$`�w��OA�f
QC
EH@��w��YB�B�B �A(�D0�J��
0A(A BBBFx�z���F�E�A �C(�G�
 
(A ABBDM�
I�
c�
A�
��
E�
M�
A�
k�
E�
E�
E�
E�
H�V�
HHd|���F�B�B �B(�A0�A8�D``
8A0A(B BBBDl��}��+B�B�B �B(�A0�D8�J�Y�H�P�C�	M�i
8A0A(B BBBEL�T�M�D�d�~��6B�B�B �B(�A0�A8�DP�
8A0A(B BBBG
8J0H(G DBBK$lp���7E�F�F IIO��������������������4������F�A�A �G�>
 AABG ����E�O
D�
A@����
T����h����Y|���JE�D�4���S �����]P�h
HXA�H�����lF�B�B �B(�A0�A8�LP�
8A0A(B BBBH<��F�B�B �A(�A0��
(D BBBI\����i`p���F�B�B �B(�A0�A8�DP~
8A0A(B BBBAk
8A0A(B BBBHL�ȇ��$F�B�B �A(�A0�H��Q
D���
0A(A BBBHL$����F�B�B �B(�A0�A8�G��
8A0A(B BBBFtx���F�����F���$�|����n�C�X�J�L�T���lF�B�B �B(�A0�A8�D�A
8A0A(B BBBA`(	t����B�B�B �B(�A0�A8�G� I� K� I� L� N� N� w
8A0A(B BBBI0�	����B�M�D �G�L
 AABA<�	����=B�A�A �G� L�@I�@U
 AABG$
�����T�WE�H�G� (
��a�g
HS�HL
�����F�B�B �B(�A0�A8�DPS
8D0A(B BBBFT�
����b�I�E �D(�C0�P
�(F� B�B�B�MQ(H BBBA�����H�
|����F�B�B �B(�A0�A8�DP�
8A0A(B BBBAT<���C�B�A �A(�G0`
(A ABBD�
(C ABBAJ����8�ؖ��-F�B�D �D(�D@T
(A ABBB�̗��(�ؗ��lE�C�G�F
AAIL���!c�B�G �A(�D0�
(A ABBEX����D0����`����t���Z�T���10�����pF�A�A �G@7
 AABF�����@L�sL���F�B�B �B(�A0�A8�G��
8A0A(B BBBG<
����P
����d
����x
�����
�����
̞���
؞���
���
���
ܞ��؞��<Ԟ��	F�B�A �K(�G�
(A ABBG<X�����F�E�E �D(�D0�M
(C BBBB���(H�����F�B�H �E(�A0�E8�I@�
8A0A(B BBBE(������F�E�D ��ABH$H����B�B�B �B(�A0�A8�G��
8A0A(B BBBJDpܴ���F�B�B �A(�A0�G�
0A(A BBBFL�D����
F�B�B �B(�A0�A8�G��
8A0A(B BBBA����4���
H���\���+p,����(����$���(� ���BF�G�A �kFB�D���MH�^
J�x���
t���HU |���gHQ
G<���ayd(T(���E�D�L ]
CAJ����E�L����E�Y���� HW���� HW����-Hd(����E�A�D �
DAJ ,���aE�D y
AEHP���F�B�B �E(�D0�C8�GPm
8F0A(B BBBG,�����Z�A�D �J
�A�B�L4�0���o�A�D �
AAKp��P ��\����F�B�D �C(�G0�
(D ABBEj
(D ABBE|
(G DBBAHd���hF�B�B �B(�A0�A8�G@
8D0A(B BBBD���CK�w �P��oE�A
JF
A8�����F�B�A �D(�D@�
(A ABBA,P��(@L���E�D�G0�
AAIHl���PF�B�B �A(�A0��
(F BBBH{(F BBB@����OF�B�B �A(�D0�D@
0A(A BBBJ8���{F�B�A �A(�D0�
(A ABBFGNU��V@V !Q������������������������������&�.�3�:�B�M�[�m�v�����������������������/�?�L�[�g�t�~�����������������)�4�I�R�$3CN\f� @
l�!!���o`�
! 0x'�	���o�&���o�o%���oD(
!P@`@p@�@�@�@�@�@�@�@�@AA A0A@APA`ApA�A�A�A�A�A�A�A�ABB B0B@BPB`BpB�B�B�B�B�B�B�B�BCC C0C@CPC`CpC�C�C�C�C�C�C�C�CDD D0D@DPD`DpD�D�D�D�D�D�D�D�DEE E0E@EPE`EpE�E�E�E�E�E�E�E�EFF F0F@FPF`FpF�F�F�F�F�F�F�F�FGG G0G@GPG`GpG�G�G�G�G�G�G�G�GHH H0H@HPH`HpH�H�H�H�H�H�H�H�HII I0I@IPI`IpI�I�I�I�I�I�I�I�IJJ J0J@JPJ`JpJ�J�J�J�J�J�J�J�JK,����LSLSLSLS����������������X�X�i�y��!D#!���GA$3a1 @y�GA$3p1113�V$�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p11130�k�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�V:�GA+GLIBCXX_ASSERTIONSlsapi.so-5.6-1.el8.x86_64.debugZ�'�7zXZ�ִF!t/��O1]?�E�h=��ڊ�2N�a8_~ ��*~��,�������4�?�}8���P4H�3�.R�����/q��Fv�k-B�3���k�I�8�9����N�?�{�g�Ï�"�-��n�d����c�����LgP�r/?Ҽ���h���c1��*6j��[��|�29 ]W�t�<E���5R���L�) (�*����*�?*�XDضLЄ.Н����ޤ�E�;����٪�K�\�s.�zMT��m2�f��ث�~sK�{��L��u�3J^�q�2A������K�Ϡ����P/rM��I/)F�/�Z�_�
����f����3��ߓ����v����=�:8[�+ԩ<ų����el2��Mb��-�{,��cӢ¡��ev��ʒ�M
q�bs�j�qG�8�\΄XY�h�����6��kh6���w͈��ׄx���	7�HC�y�Y�R׬Q�R�[��S/�"���Ț7��tF�����`��m�d3�f45V|�XEf!s�.�
�sU��MM�y9��L1}��m[��P�`��U���
�-��06��3^4�_Ӑ�+'����8Ȥ�h�7z>uÊ�Mm�v#.-��y"l����*����(�~�:�n�mv��(B��o)I6q�����D���p���y�H�����N7Q
�����ڦ?�r&�j����8�6K:4K���đ�2�̙U��٠��jŸ�:�o�.0?v�
��#K$�f|Wj.���'�e�U��~�R̛���ǧG���䃶B~>�KZ`�z]���/�(r��NOn�L�C���i1��)���[t�
��{�_����;Ƽ�@�vi�g�r�R���׹+nx�%�.�5��p�v#�kW�M��`�T$��@ƠB9u��y@��9������/�T����ޘF8~���q�B��'^�/42eGU�r��x&l���8i�;��u�Ui�v}��I�,de�U)�Q.�Ml��_�rz\$�/H�ك
�d�ˇ���E���b�qj����W���g��tz�:A�0�tW�]z��ֺV
��aOBDo\-&��!��&���)LlQ�����WY�%EC��(٘�v�
�r�$���h�
�t�2�Q��chK��dt��b��Ӳ7���9U��$@�o:�䪯�'�S�y���L!�C��q[U�f��<���4�f�%4V�C�i�m1;is����"�&j�6
)��-�v�<�+���=���d>��G�R���������n�W�@	�B,�{�#v��e�
C2l�'L�4p_�3YM�)��e��G+�t��g]�MQPs���U����wl/�?��y��Z��K$���~:�D�F���B�Hւ��s����4�y�(�\�&�U��?Z�����3���~�\]H�	�x�Ŏ���6�0&�<<L�n��{Ч���a��x��D27E��F�}��yR*U�3���頌ԇ�g?)��~#�/*3��rk�� UG$wJL�$z�����-��I�
�t^�7��9,b ��!�F"�!���W�]�]y�,rj�-}����
��D�uÜc{�O7M�5x���?�bK'
؛|:��޾?Ut�����^^	��iD�$U���U�<E��.�Y+0g�����%�hv�~hF�!Ԉ�'�.��󝂨��
/�B��Yv��g�R�Ig�W��6p�Z�� ������͕_R���N���2��g
B�R�:������c8@�^�ߓzc!������k��;]���TܶuxЈ��,
#��L��&z�����u=n�Pl��<��6ڱ�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``p(��@08���o%%�E���o�&�&�Tx'x'�^B00 h @ @c@@@@�
nKK�
w�U�U�~}l�l�
������ ���������8�(�(� �!�!� !  �(
!(
 �H!H��!x��!��	 �`!`� �(a`t#$"�#t+1lib64/ruby/gems/2.2.0/gems/ruby-lsapi-5.6/README000064400000012661150402106530014251 0ustar00
lsapi - LSAPI extension for Ruby
================================

INSTALL
-------

  $ ruby setup.rb config
  $ ruby setup.rb setup
  # ruby setup.rb install

USAGE
-----

General CGI scripts
^^^^^^^^^^^^^^^^^^^
The most efficient way to use LSAPI interface is to modify your CGI scripts. 
You need to add the following code to your CGI scripts:

  require 'lsapi'
  
  while LSAPI.accept != nil

     <your CGI script>
     ...

  end

There is no need to change the way that how CGI environment variables 
are being accessed in your scripts.

You can find some examples under examples/ folder.


Ruby Script Runner
^^^^^^^^^^^^^^^^^^
If you don't want to change your existing Ruby CGI code, you can use our 
Ruby script runner under scripts/ folder. You need to configure 
lsruby_runner.rb as a LSAPI application, then add a script handler 
for "rb" suffix.



Rails dispatcher
^^^^^^^^^^^^^^^^

With Ruby LSAPI, we proudly provide a optimum platform for Rails application
deployment. Ruby LSAPI has the following advantages over other solutions.

  * Easy configuration, deploy a Rails application only take a few clicks
    with our Rails easy configuration
  * Fast startup, the expensive Rails framework initialization only takes
    place once when multiple processes need to be started
  * Resource efficience, ruby processes can be started on demand, idle
    process will be stop.
    
To use LSAPI with Ruby on Rails, please check out our toturial
http://www.litespeedtech.com/support/wiki/doku.php

There are a few environment variables that can be tweaked to tune ruby 
LSAPI process.

* LSAPI_CHILDREN                (default: 0)

LSAPI_CHILDREN controls the maximum number of children processes can be
started by the first ruby process started by web server. When set to <=1,
the first ruby process will handle request by itself, without starting any
child process. When LSAPI_CHILDREN is >1, the LSAPI application is stared in
"Self Managed Mode", which will start children processes based on demand.
With Rails easy configuration, LSAPI_CHILDREN is set to the value of
"Max Connections" by web server, no need to set it explicitly.

Usually, there is no need to set value of LSAPI_CHILDREN over 100 in most
server environment.


* LSAPI_AVOID_FORK              (default: 0)

LSAPI_AVOID_FORK specifies the policy of the internal process manager in
"Self Managed Mode". When set to 0, the internal process manager will stop
and start children process on demand to save system resource. This is
preferred in a shared hosting environment. When set to 1, the internal
process manager will try to avoid freqently stopping and starting children
process. This might be preferred in a dedicate hosting environment.


* LSAPI_EXTRA_CHILDREN          (default: 1/3 of LSAPI_CHILDREN or 0)

LSAPI_EXTRA_CHILDREN controls the maximum number of extra children processes
can be started when some or all existing children processes are in
malfunctioning state. Total number of children processes will be reduced to
LSAPI_CHILDREN level as soon as service is back to normal.
When LSAPI_AVOID_FORK is set to 0, the default value is 1/3 of
LSAPI_CHIDLREN, When LSAPI_AVOID_FORK is set to 1, the default value is 0.


* LSAPI_MAX_REQS                (default value: 10000)

LSAPI_MAX_REQS specifies the maximum number of requests each child
process will handle before it exits automatically. This parameter can
help reducing memory usage when there are memory leaks in the application. 


* LSAPI_MAX_IDLE                (default value: 300 seconds)

In Self Managed Mode, LSAPI_MAX_IDLE controls how long a idle child  
process will wait for a new request before exit. This option help 
releasing system resources taken by idle processes.


* LSAPI_MAX_IDLE_CHILDREN
    (default value: 1/3 of LSAPI_CHILDREN or LSAPI_CHILDREN)

In Self Managed Mode, LSAI_MAX_IDLE_CHILDREN controls how many idle 
children processes are allowed. Excessive idle children processes
will be killed by the parent process.
When LSAPI_AVOID_FORK is set to 0, the default value is 1/3 of
LSAPI_CHIDLREN, When LSAPI_AVOID_FORK is set to 1, the default value
is LSAPI_CHILDREN.


* LSAPI_MAX_PROCESS_TIME        (default value: 300 seconds)

In Self Managed Mode, LSAPI_MAX_PROCESS_TIME controls the maximum 
processing time allowed when processing a request. If a child process
can not finish processing of a request in the given time period, it 
will be killed by the parent process. This option can help getting rid 
of dead or runaway child process.


* LSAPI_PGRP_MAX_IDLE           (default value: FOREVER )

In Self Managed Mode, LSAPI_PGRP_MAX_IDLE controls how long the parent
process will wait before exiting when there is no child process.
This option help releasing system resources taken by an idle parent 
process.


* LSAPI_PPID_NO_CHECK

By default a LSAPI application check the existence of its parent process
and exits automatically if the parent process died. This is to reduce 
orphan process when web server is restarted. However, it is desireable 
to disable this feature, such as when a LSAPI process was started 
manually from command line. LSAPI_PPID_NO_CHECK should be set when 
you want to disable the checking of existence of parent process.


License
-------

LSAPI library code is under BSD license

LSAPI ruby extension code is under Ruby license

* ((<URL:http://www.ruby-lang.org/ja/LICENSE.txt>)) (Japanese)
* ((<URL:http://www.ruby-lang.org/en/LICENSE.txt>)) (English)


Copyright
---------

Copyright (C) 2006 Lite Speed Technologies Inc.


lib64/ruby/gems/2.2.0/gems/rake-10.4.2/bin/rake000075500000002330150402106530014046 0ustar00#!/usr/bin/ruby

#--
# Copyright (c) 2003, 2004, 2005, 2006, 2007  Jim Weirich
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
#++

begin
  require 'rubygems'
  gem 'rake'
rescue LoadError
end

require 'rake'

Rake.application.run
lib64/ruby/gems/2.2.0/cache/ruby-lsapi-5.6.gem000064400000146000150402106530014166 0ustar00metadata.gz0000444000000000000000000000107014554463574013455 0ustar00wheelwheel00000000000000�|g�e�T���0��+�^z���C$+�BHp�]�B��L����Cw��w�N�-�j/H��3~3�2�,�37�����
�[�ey3���h
3RC�#(����i�<�q�b�?�V[�b��A��:='br
�u�d�� 4�To�`;��%"�:�1�#�FӠ+9��*�K�
_��FB���&+�g�5/�2=��_�3k`ӀQT`��!���szd���.��G�ě����֓Yt�;��OP�ptn�@KJ����B��t<A)܁������C��Yy�9������'+�XU��x}u���{l�R���T�g�:�y�6�UH���L�cw�m���{�Z�����m�ε;�$N�I���(	5�Z�����MƐ‰��0�q�[
����2�w��8�=g*zQ]C��6��~��P��AC�����%�m�9hiƊ8�It:���T���q=5�@���<�����ZF���a��������Ɯ+�E�4>)�lJ��)ŵ؈��2��A�U��p��_��0?i-A.�}R�,#�����data.tar.gz0000444000000000000000000013520614554463574013404 0ustar00wheelwheel00000000000000�|g�e�{_�Ȳ(��=�f���M3+��C|��6�X�\��-�Nl�K�!����oU��/�2��Y��a&`������������������j�Z/�?���1��w_�l�G���ϟ�|��(����}�����"�P��	�iI�e�f��Ԧ�?�9t.z$��Q���	�/��k�K~j���`�9=�m��Z���$	�%i�-�����$�vd�����F0.�i�v9�tk�I�?%�'=���p������
o2�ӌ�I8
�(#w�=�b�H��0ʂd���3�����NjD��Mj���K�c��'�t߅�5tm`�Y��!	����<�d~
)��M8�Xl��Q0�ȓ}�S�?�
P,y{{Ѹ�L(�Q,Q��u@�����3r�Q@At&q4CJ�I�_M���|r`/�4@a�z"�_����a4&i<�K��,�q�ȯ;HH�:5d2�0��"6�@�zl����)� ���b|
���'H�&��8�pb9��8	����~H܈:��-@�Ȁ���������p�g0/�H߈��/�|�Sh��sf-�Z#���ҡ��iJ�a:��э���/av�:H�k���̓x1������'�<g��O���J�+���|��@o+0���[|��a�[�>�l W<] ������$�kP�Z'q8g�GDxܑ�|L)��a/q�X��L�;�a֢H9@i
,0G�t�ğwq�X5�B��h��t��G���l��f!�)���z*��*`Mc�C?HO�'��8����*2_^
��̀�$^`����锕���4�6Tѝ~�B���>L�`���Q�eq���;��d�������4̂t�Ȃ��(���<N����c�3�?.��7s!1p³�qK*4x߲��I	�-��Q��p�}&�`���N���3b����ҿ"�F�f���ϒx�Xs��-fWȏ�~8'0v&�k��W����$ʹ!"J��י�g�/�
��`�^﷛���t��ĦB<��fi0�4���V�l��k]I֔�a��m�זh�L�G�pmm
�w~3tLށ�[k��1�a�і]��S�!��x)�tM��<��?]�$������a�qD�ÚNئ�a�0É]��=��e���v�Z���h�ć�&P qa�%��T��`����#���r6T����0`�8��{D�QE!�C�ƌJR0J:����0�X�󚏫�sP���A��ì3���&� i���I0	�C�B�P~���*�MC���Ys��%T��o�pb8�'�������Bt�&�Eq^�d(]D��A�DU���~�!l��m�<s�Q��d��8�3�f�t���4̞+/�Y���g�O'��N),�2�t�r9( �bDg�)[��m0E-&���/L����W>,+0���DD.��I���Ŝ�|�B6�u���)��$����ԑ~���w�>(ZPX�W(Z���Z���G�u�� R)�k.���0yҟ��,����8�L=�Q'����S�&��ٸ�΂Y�f��<b,�ɕ��Z�1�i��*l=tr}����DeK�S J/"��j�%��na�L�Z�
�+]�|��>��|qdtB"q���
�G�QK�h(��+�*[Dױ��m;:/���䄢������єN��Z���Q��ۤ�	SQq͉�1�?��\�nB�L�X����:�ѹ�vo�{�6��At�h���U�7��g�L���n�qrY.
P1��o��F�O�b~^ÀF��y��1j��6�ڼ�f�ܸ2�J$��֠�q�ka+��F^W+�_��/\r��;p��n�,!��
y�A���E�1U��% �� ��5I.���΁M��?�jo�%;��|{�6��T�F�ż>rT9s�N��}��\%�9�Vi�d�J��@*�J4�n3ub��^��5�r�A&n�H
@�Ô~ΰ�I���F2]�b�sȢ˲9?���Q��x�=���4�@�p�4�x#���	
��Va�����V>�4ʚ�
Vm�H�4�m��ix���=3�����fp9�/H7m��R/O7ղ���__�O_)�g��5����8����i�{6�ng���F���GA4*T"�z7���P��W;��	j����[�H�
��j�$���'�ғ!��x_�ӋFH�ol���;j��p_덮������x��j={�k�_>���_��?��';�4ٙ� �v��hY�V3���;��S��b6.@P�죵v4D��~I��)~~���� Q��n`��<m�mk9��3~xB^_%d
�-&(��Z�b�}��Zux�x�<`��Z
m���O��`ᡃ�M�~�����Ҙ�/^��:��w�����X��Ik�l���yB������N{��K9����JX����9���;7�l�Y��M�_�d:~B~��ϬE:�1����g?o�nݛ�aB>��7�����v����|�����C��^�����l�a�c���2����X�a�����?�GN�����im&;����FXv��ƿ
<����Z�>�i4�jl�F���܂��7�y������ۡ���^\�vNds��#Z���5�O�v�V��G�gm`��	H-��v��k�W�?�
���?���za�v����g��l�{�݃�n��?6�w����Z�f���1lO����IxE��t�x0B��1��ۣC��~�8R�Q?�m���<Hfa�V�
1f�ԦN4��$V�͂��}�-j/�-��7�|a���o1K�יU-����6�=�Q�L� ht4��zĸ�bD���\$q�H�VDžC�1��q<Z��/�k'� 3���n�J�s(t�he�3��gAHkc>��S�f�c(,#
�Ra��fHl"N�4�
P���|�Tz�⦏C`��f����lwH��Ɠ��J��s�j�q"z� �E��Ҕv�6|������N�K��E����Q������v���o����!y{~z��A�ٰ�{s9<�jk��\����H�׋~w0 �}�{wq�`��9���&��^��N����a��7�b��&mԮFΏɻn��-|������{�3l�_됋N�;�<����e��|�%ح�����{�=چ֡E��{6$����S����_κ}D]�"y�%��Λ�.6D;y��w�؛��!�;m���|Zt�/��oMs��%�Lr�y�9��՗P
.��w�2�ap�f0�
/�]rr~~D�<��v{��|@�u9�6kG�a�6 �R�
��\z�f��a�߿��Ҁ��;P����*�H���EP�7�/o���GzRJu����P-������{r�;�v1����t0T���fa��K�e"��F?*ۤIzǤs�s��a�=�&�d�o9��k;�Z�p�^@�Gw|G�c�W���(0R�p4�.@����n���
��
cXe��t����%O���̨�M7�����\��z8A;�bV�L'�[�sxؽ▴��x���Aw�&��)�(i�����y�����H��:^�S��W�𷋮�v�=;��S��u�o��������9y����n��_a!�K@�÷]�p�?)�c�t���p�U3:�÷��s+	ƉZ����~�v/��i�g��U�O��@
�'��sOv
�l���P�=�I�a'
��ß���\9�jՌb|�i��OO��kk�Ok��
�3�Rz�=�&S��Bf������1���p� �:g̔�r��r�z�;Q[o��ԙ"|��K�k|�"���}���ω+��`[�j��pt&�4
V�
���$/
���}�=靡��ew0,$\�
�H�ԮQ
��m�����3W)���;��sW)�N�&���	������I���Q
e�wx�k���Q��Ig�S�=��[͜6x��H�bJb��ų���z�ß�C^���ُ�kN���X���KM��G@�G��\�e���O��̻
��޴��;��f��)�%���U�{F2����-"�L�皠,i�v�ʅ�A�QA\ĢGU̜�E���}��`m<�x��E�@59���Ȋ�=M{�hԃ��r��kd�%�BX�?�R϶E6ˉ'<�݀����-Mf��ϷA;&��f�����1=�o�p�G�T�(–���f��d��=ĆeQ���@ő����ip>������aN�ܭ�E�b��g�I�k��Qr?��e��{#�0��M
�*���&�f`��1
i���0J��?�n�ʜ��hf�Ս�Q�]jC�(Ѝn��
�S��@��Ij��i�dc"��c��l0e���):*�rĈ��h1=���T6�v� �{8�F��t�F��E�f�
�5��@�vi��83�Ѓ�������YK�o���Wۣ?���E���e����ϱ�����Q���I�/��_VῬ�Y���
�e.�
C�7�h�͓���(ғ�$�b=	�dS=i�LO���>�A-�H�ڢ'�בoL�1�4fZ[I~rm��F��=��Ty�ƝzJ��x��N]X�A"�����\O��԰�/"��F)?��;���!a|e%a9(�N�FsGo"n��kR˼Y�m��0Z|R�#�)L�<#�:Z��y2�\Ʒ1���8	�7�#��� ς����� ���uAɝ�#���Q�sqqڵ ���Ce�g��:V'3�ݔv7����2	D�~�;zA=�>e$��C���DڧDL��"-�i�'5j���X���Z�ދ¬^��ƈ}h��.�c�/��kh@2h;�{��XLe�iYM��5��p��u�f��/?4Iܩ�nC^���LAo#���=&7�|N��ӫ��[G��o� HRP�@���@�)���{��w@
⪽��.����9-�͟�ȁ�h�x�9��~����N���co�3o��ۮe��i�P�����^jG���ΰK�,5�T~��=����!=D�u����-8�ɇX���z9�Y�g�^�픷���i�Wg��
��(�{z��@F�rLa	zG��ͱ
��?ѷU�Ke!�_`Ay\��^q���ȩ�f�x��"�S5�p���D�ɓz�#HD�>9�<=�+a׮=�S��k�wU����ޜ������$�<X�SS�,Q��,
F���� �{Sz�	�86&��l��5��9�P
q�G��~�nR+��1�n��{4x�Go�7�T"B�.a�þ7�D$��Z"�F���zt�y��s@7R�j����]/�\�at�����W��1��B��:�Of�[��љPAU�Ճ
�Gm�B!�<p�	,.�q���V��_��2��-`�ud�Yy�,E�}�&N����,�Dӊ�k
�[�}~Vs�t"���d{�MƧ��)�M�B?��|��?�`��]�D��y�
Ѥ��'��0�u/�^FSGW9cP�9�.�@,��YL��NtL7�>��F^a��A'�CQg��yCA\I?<��ePp�4�Oo2��b��}�&kM����CדK�H��T��F�UQLw@� �ω�uW��~(�sD��7�,��(�G�QdN)��=?�r,�	Jx�����Ϻ��tb&Rw
���;�轲.,Z��=�&���tɖ�I	wQ��Y�oM��b�м�~�v���&ˇ��?���0�ńg���}�px���Kg�k(��˧A��bA�i�`�A&��S��(��6�O��z��_d��]��ed!����2�M;
��솕�?�A�)g�8��^$����}�7$�q��V��I��&�:dw�Ebo��������6`�-L�HnJ��8
��>�S�_F3�	����4��)Z�_�����O`c��D�ϡ��0������I�Mc)S����{��I�$d��$�f��,��>ғ9'<k��܇�d<�%9L�C��-S����55���Q�CzF��\����a�I��TRR���rǝa��-7lu9���H!t�hjX��v����
�7Ǹ�~P�F6氒A?���z�z���6�Oh�v��@��AC�R���I��"������Ip���d��^͛���,ϣ�%fA<�����I�F^���"��B�vv�z��g3�v��G�S����s���F�rޤ>oR��������]���W�����c�f+��l;�y�}x���Oh�vכ4p	�
�-�}/Y.��G�md�#p�H!����>r�(��`u��(�|1���[����'Χݟ���'s�e��3ه�Jy�f�ѹd�c0<k�O?@o�=���k��������]��^}?���a����p\o4��nkNp��5� ل�q��H�8g@�-Z�I�m�Ow~ğ��4�F��@��b&d*^�y%��u���Z(����J�ћ1�^4�CFa|1h* 2-z|u]Gq'�$(�ƚ��~�x���
��[�H�3���F�6*��5�W�ys�h�k�d�v~�$5�@��B�縬}�6	=�xE����i�w�@�ڬ&��V8(6P�f��=��S���>�b�a���Ilč��]��6!-�I3��N�-y�	�h4�ip1n���H�4a�B	m�ޒ�/�0fc #�L��y�6��(1�{��3K�0ԕ�T�R4�i�{Ocmk j`m�H��C��b���SJ��4r�z�#7�k1��Ƙ+��׸p�ٞ?�&8�EQ[j�e�j�زZBP�>��!��L*��E�kP1�����ћ7M�Z�/7t4(�S՜�>�)ʤ:���
�����k�o��'�#gz ����`�yvۉ�:�4�ӏʊ�qi�7=C6!z����1�4=��)�bt[�Fh�A��f�Q�i�c/ ޿�	�4^��+y���FStw�X?q���&5��za�T��g1��}�h;]\�cJ$	�R���	�@����#&1,�Q
E�5Z�@wߵpX��M"��kaL��5�9��i����#OApZ@װ�l��((P����ɚ�3�b�q���ɳ��M�@h
8T�Jgx����ɸ_#�䝝@�9<�w�.�]��SL� �I�R����9��?�t|+�3<��_�Aw�a��}��@�������L����׌+'�&@0��*$��t|A}y��n���Vj���*:�4��ɥ���:P.N�}��^�{Pm��0��C�I~�B)@�|^@�Od�7$�ٵ(O�BuE�����+��~d+�d���M�4
i�s�+B7�:-y�t��8OHC�tJe�B*fu
g��������O"(���cʅ��5�@�h@��؁:�p �8��ia���
���4N1͡"�H��I�"jB%#������
Ѓ��z��g�lاiR�j���A�{���c�P��Qt04
7S֍�	<���D��)��M��Z�Sv"��y
�a=:�5w��*��y>��#od�/]\E�h#�`x��wc�w�p0l����Xd��"P��'=�n��;�ز4J
?쁍���t�@f�YL��2#Nԭ�t:B��}d���0�|6�ٰg=��)�6���@�t��p�8R��k�B�*&�֦M|dQdӶޔd,@A.-�Ʉv>�vg}��yMk4X[�k���nc��l��b��Hc�TmT�3,�s�Ƽ��|"Se�<����$��t�m>�\;��`D6`@~F�$��n���*���V���(�g�J!�;5�w��T
e
�Y���`���#�o�uȚPl�TV3�-��>��t�ٯqؿ|��'
J�KDN�-Z[������Lv�N;��:���p�>��R���l�>;�$���P���77y9;��J�J�r$���q:�g�y���8!q\c)~�@\֓�2�:�8���v��;�6��88dV+�Pܔ�{mJ�"��(���,���:Ȇ�T�[��r�,�W(�å�Si�᳑�d넱L���=U671ݒ״�-���H`Dy|�$��#���x�
�vR�ce�?#��T���[���i�y�Րjb����=@�̢`�+D��Z6.Zz{���ڳyy���p��H�(m�(x�4IL��%ִ��4�(�3��dN�EOL7�0����́_��[F:i�`1����U` W:�V�π��t�bl�V_��
h�W"��"N�� �Uf� �"��˭�BHa�B>�
�,��m������@���:�u�Y����w�~@%���Qr���F5��^�z�HGX�%��hݎ�Ӱ5�ktOL�'F.�Г��^��m�>(2���2PϪ�z��VA�]r{)��UA�*Hj���V(A��-��J�f#�1��hH�y����`�]����	.b|q���)mBY)�	P�'���3f���Մ��W�Rlr��!{.[�p�@_�\`�ٚ�)HzI���]SM�0������O��G7A��o�(N���G�׼L��@��REOa|�n���>Xc��9Xv�D(j�Tb��v>D�Z���wu�Vp��	��/cJ9��V�f��76���ES5�Te{hAo�<�R�fޢ�]�Ya��/euyI����K�\d>ٗU\6sa������Sq�zdW6�Ƶ-؈�9���f��S�^�&?6�`H�=�N�zD�Lxq
m��l
��.��ll�<�ՙq��hV��>�[�{$�\��
�p����L��-�~����r��-�v5#�~+��J1��+>�7��%��d��o����%I��P��|�"H���?�a�q�GLV�����,ѯEюC)����z�\����\SNX��c��!�RI(��$�$zᾲ��n5��Δ/	:���XB�%VAg�<�Wi1-X��<�WiI=��2,�P^����^�J�/+�G�"�&\�T�}Ug��6'x����vE݃i�:SP(ȈaᇒC΂�B�����7����mU�hR�	׶2�Ʈ�90���ݹ��f��'Nq�5~ZԤZ��a��٢ֈ&����*��u�f���EI��u�vy�S����� �BilX��A�6���	�C��	TaJ��؉�̭0q���U��K�Y{�/_H���>E!+�^h`Wu0s�V�������ڬ\2�Z�M�O�*u�]��&1���]6���E8�~�-t��_2��踵����'��7a*�]��N�6��g�o8�����wd����ϴ"UvN��Y`ם}v�
.��v�3�$���{NW^Ȑnf*r��i�J���Wי�E�9��oL�X/qI'A~�uu</Aj4
h��F�@���$߯X+�[�V����$����4�o����o�\C�R�~�ލ�>��\u�m�0��6�i�X��/���X�vo�?<�gn!_�Ǔ��7�S�+�U0��c�i#�Lց��Yf��⣿:��R�ճ��t찤���ϭ�VL��{Q{�m,T�C��'Ȓ2��d���^a����*}:��*�Db2��r��B��
�Œ�9+��߯\�(�,���1����f���.	Sȡj!����)�ʳ�J���B3�
TtU��k��[����{�h��勫
L_#����9i�5��k�7�ي�d���v���t
?ٷ�B��N��\F�-��l���̹�n>&I�n:�e����L5�^W�T~F��
R7�Y*^LV'���F=`��V�5ɹ�?:?;��4I�eK�����}�����D^�6�iBÿ�"ߧO؍@�%da�c/�I�:��l���ԭ�VB��6maɟ`|�m���Y\R.G���5� ���"�V����9~3ɻNZ�~��^~�����QT��ϰ��$�0���!I��ش'~����f����0�Ա�#?�ő��S�/�2+��>8����gj�S
k�	��P@M�m9I�z&��tt�E��1���'V�'����Hh�w̿O_��|d�jK~0�'wAށ:ź�_��+w��<f��q[J�|�x��W����=�T�,���ԉ���I�S;���`i���6
�=�d��u0}���O@�-�KN+��$����=�#�g�?�F����!�xk�Y��<Ѥ񼷒@� ����S�[
��5�$5���VgJ�+�R����Q^�V����^AO�9<9����_?9:?��S����)��|s�;$��m����㝝�����n��t�~_;�W�s�y���@��aox�=x���y�\r��I/���+��١^cJ�A������.�J�S/L�D�y��I8�'�6�a%p�U�l�x�<�4bq>E�_B�ok�\�š���A~�aӷ
��ͮ�N�H)���(��J�@�a
�Y	�k
�l����K$�b��w^Ϛ T5U�H�2k�>���:�!;;Ig�=���]��i�~c�H��q��ո�R,s�G5y����u�o�t]4x]r�`gGY��>B�ߏ�i�a_L3/�i:�I�֯o.�U��O��s��r��P�59k�� :|K��y����EUx�iZl�μ���ؙ'��,�f� {mM2�:��&4�k�u4U_�2]��ѡ��ƕ���c���@�1�Dmڦh׀�����%��p|T�̼�u�P��ߙ(@��5�"��?)��?����G�o �<��"���m{��*��(�DS|h��\�U�9ڙm�a��C�V� ���t2��u86����ڔ��ޑRf.���c�4��4$�|�_�#�sź�<ɾ{�%�P�/~U�
!�!e�M*��{h�����"~��c�uf�/:�h4�jE�0��8B-�����A܀��D��[b&f&b��*s��9q�q�O���s?��rb=`�'�t�!y�b�)� O��2ԒM蝝�ڿoLM��7�H���(�~$���Bկe�3j3�U���U�O8�ƚ4���fV}~�u0��(��S^�}�Y��4$p�Ui<�m�*���`sni_����pd�0�Kr3��l�T�&X�H�N?L�'�G4O)d*ķK.J�"ʡ?����($߄m��_ɾfN/���E�)y�"���sJ��Fߕ!r/�K�2�#B��^,מ� ��Q���\�>����
4yV�X>f��6��M�!F�|�̨F15[������G�:C����&���9����2r�hUeo�4�{���\D##D�q����x��
_��*�ԧ�H;�ׁ��&�̊��#�K'U�_~�R9�����g�~ܭ�ng��j�2Y�Co�O��é�(�JȞ�c
��	�0����@XB��H�
���4!����%��������&X!m�:!QhM��
��A��yO`��h�v���=�XHck����K����"�y%��P�
����[��S���cK�?/�	��S�i�59����e�4\u�c�X��\�z5����w��[?_�'�N�QW�p8*�ZF���Q�U��,m�� �lg|QV�IY�P���}ȭh�e�g��@v��0���	Ф�".���m?�NYv7r�f�-O��h��P�d�_�}�&Qi,���:��ww�?FS��D���#�&��d��a�@����@����
��������8D�R��Y�lW]�nr#��[���n�F!�(A����X�0w�cH.�����-_�y��O���
;���Ό�B�H���/��U�1����NAy}S��߈Q����,�N~�������R��Fؼ��/&��[O�E��h8�~�N���d�t���?�-����aޫ�@�TL�8W��(�ܾ�dS�W�k耸��Fve�G
v$��"���|��K�h�e6m���w��C��R��H5=���~�\e3��z��f}�cҬB=1���
!{T�������T��Ү(3W^�L�eTt
��ʮ_T"�1I��^���k��I�V|��.�o��(�'.qVmG��ގqtyCF��-Y7H��eUQZ+9D}㏥/�[�>��]�e6��؉H;�$_6�{.�8J�C�ck@�{>+@�ъ�P�2Hs��h)YL�u������:��w��
3�r㍮��u�,��;g!-�A�m���s9����}9�
Of�w[�m�j� �J�[o��-JfŅPŻ�,��Ăg���iH��f������9�3�j;���adȝ�
��b�t
TA�q\)�� 	ͼ�Jul��@5A��DP�
�j���{��I�������^��Nmg�b�{�_�Ԟ���zQ���{�"!/����b�a9�丰L�/È��y�����??=}�$OOm}B<�w�w���=jj�v�|f_/:�?u���v��X��#z�n_�����+!�
��ј�@+��3("�yݩQ�?f5�^�W4����MZ���6�{e�����g�$�9��)#�Ս�\�S�j�?����f:0g~�`M��嘍�=��}����+�-y	z嚺h��^���j��AZ�M].X��2��.�8�v�E�^\$r#���`�`J7��ݝխ"�X���VFM�2��;#��k.�&)�K_��I��Gݧf�����+��#聅�8p]���FE����H<�Q�>&���ڻ��]1u
+��yOf�2.��2Y��r�Ʒ�����5�f���Z��f���3�+\�U�A	��4}���Ѵ�L��O+�'�6ئ���G�S��4o-��3�����Բ�۾�b����	�[��Ң���Y���x�=�!���`�V%�%.�Z�
�]���]���!s5x �� ���&���Q����lA���j��{&�|#+�hO�w�n�����&-�&��B����V��8g^5!_Դ��>�Ě�:�b���G� ]N8X]�܁�����i��KV�/�x�)U"i��ʴ���}[���-�%��J��(�y�h������K�d+^���ߡn�C;�7b:��15�� �����j��,ť/�v�x̲aD��b���@2+i^�䬡���Ab�&48:�0�2�Ux~9$�E���S~�P�s��"� 
d�ׯP�@^����2�ދ���g����񉼶%
�A��w���R�:?��_t��.Gs_
O�U�U‰�3���^JУ���4�LN;����R�x
�g��$N>zH`"A��^rMhw.^yd}��s���N���Y�V��5�F�<ޟwq�̽a8����p]���'��O�O��*�3��QW[/��#$��j�17+���E��d\]�䒑��ŢѠ~�h<���
���-�=U�H�8�y�D�Bi`�xsy�
z��1�Mȕq�wY�MW�%�*�۠���I,h�Bh��ug�#`<��F���YO[e�a��"f2�X!mL�*�
�̌@�O��X��;�b:]c�3~髅�(�U�Fs�F)�|c{�ϕ8�=���&�rg{�ɸ�ڊ�$$�����?�k��į!��B���F��(����rcB�0�f�E��®�d�>�8���l�Zm���:��.����e"�3����cr�)��0!���_�w�=�+(�t&T��i�v��Ͽ:B߯��b{�Pby�/��C&n���(��e?{X����s_��Y髗��
�`.}�W;]`�e�C�p��ot��w?Z�<{�f��A���I�NO'�poc��y�g�X�s�fwX�sq�� C�1L-�Pл��Ͻ��E��/��{���p	h��D���>?8Swv��`z�1�wm,�*���9�ͽn1O�Ǎ�ls%ţ'����kc�$-�N����Ύ'Y���Z�*���qd�̞���g%6{<�K"m����Ku~
��ݳU@�nH�:����\�ȗ�R��묇xO�0��ϫ��`ڮ�-�O�/����4}-u����1�ru?�
p<�n��8�<�p9�.`8x��kN'�W��d���ʡ{U��!-�/�AH�͊77��]WY�xx�Χ�=%
O�2O߆g	+��ʗo�'��˳����'�����|����+{	��W�kZ~�i���=7��v�V_�\W �~�w͠�*�J)J�7���]�LT�UgEcU����\>i�}��k.�������b��tεb��e
�40�R���c�k����=�Bf9��@Jk�8�3��Ju��`7����7�(��x2���_����lyC�}�z�akt�uIh�v�t<��!��W� ���Siu�[�&�^�����ca�67�dyC�ml��ra{��-����0f�b�<^Fu�S�*y��Z/�-�{�yk�|8p�#��E�~��n�],�iR���@���2nz�:�xEX>V���[(#�Ĭax6�P�&��	�`L�\��2�7%��CA��x.Q4��V�!1�����1��Rg�Y��JP��![gS/Wf,F�0
E��FF�as�QL��0
JB�O�3�N�ńz�S?�k�p���g�9��dW �7�8���~P��6���[�B�	{6X�g��E��A���WY礄����uޅ-�dC{�̘r�ȵ2� ���Z(bA'���]�9�0n]�W�T;����@łqzZ��J5|� ��n�:�����SM��ډ���>��	�?lH��W�*�
��D��KԚ8,F]���2J�|��ϥ�~]dl�IF�x>s�\��OD�1¢X@0}���1�G�9����"�����:o��qx-��p�z�[L�,���.�����+�}A
��Kix����5e��R�U0a��=���(��`M9ڌ�(�=��p���U��R�g�E�bY��@a'
:b�Ye�xB��*�D�H1e*s���m���W|oA�*SU���V ��f��+Y�[Tvi3�艦�?���Y�	.*��;�T�h`���7*a��KL�;�3�(�1�U�e77���'r
�h |))��e��7z.��.�.��F�P˶��;����7����0�ɚt	P�&Ox�BF���k�.�3���M�9R<��f��+��rX05u[L8�o)o�Z���
Qi�Z�_!��p�v���Z�s0E��Shϐ����5�H_x=k�_4�����һXE��
 jn���z���J� �l�r��8ƼZo��j]3��h^��+�H-��伊=�:b�r��9�!xc7�%�~���i��?��U�W��ɼ擂�
+���8�t�!ɥ^v�Q'T�2���E&��{Q�m�6���Rv�K���$�ދ�k
�,b�yS�� ��++^^�vgV�ij&�V�����9v�W/D�s�XJ<vw��?��ʣ&Tm�T��怗�~|�
�F�Y!���(4��>�v���n�'o���Kc�񫣴#���zcHh�	wW�ܑ-���/���
�<��-�$���b�#��i��:�bF�u�疠.������t�Z|���;CZ��U�F%��F��P�UMe\s��x�\��w�`^�]�+K��iSP��5�_��p�L���a$p����"2ȇ)P$M〼N��ѡ훃�(�HA�����O�Q(
�߷?pN�/ч�tr�@B�0�xG�<0(��������V��k{>����x)��ʪ
(}[��M�^�'4J���x����&]��V�
�x��ݎ���Ŝ"����"��F���寍U��x�*)�d� du}un1���!�#��{
T�%�<���p`YG0q���<�:�k�܃����&�Дn$s�����k���0�p�zR��+6�K�93�H-|���r�[�v�W�f��۲�V�U��3�v�-�eGXV�zW݀�ƃ�m�a4p>׾��`5#����ͷi0��}��8��Tg�~#9��٤�iQ�Z(�#�:���-=�+������f�f�y���J�a�����y[���|�H� ��;���l�+խ�L�;�cԴ���]��fU�99����uO�:N��'������;�3��?5�;o�3@!u����w?826�\+�fN���z���;�i�^�
mW�e��{���%��"@�vvTvh����-K���*6�7�vU1d�#�l���I
2n�öCMY�1�K�˔*�N�	~��*��Q���a~�����
r*���$K�� ����jT�
"�����U|�R��B݉Ry�i��|�t��?�]n�{�Q��A������*�+�J��I��׀֬�<���-]ڋ'�f%�bl�y�U���to���Ӫ�V��W�d ��L�CɩV�@�Ny��Ɨ7�~
�]i]�|NC�|�5qPŝ;tn�50������7uYf~���˳��V�;!��[�%�9�F�#�с#���'ʌ�X[ٴ�'�kױ:
:�y�n�Y���tm̗?'G�qtC��9.�tT�"�ԡ,���}�:�xOY�,����FA��2����y�}O��u_�,�?���2�#ǒ>���P*O�
�>�WH�7��ƚy����U�+f��U�%�rZ�X�t��G
��|Q�6?�X��("e�[{;^xkM�B_��X]	`4b
�⠲�v���XxY��sٕ~传���K���i���}�ێ�ҥӫ����u���'F�l�'�i��o3pLg%�m�,�v�<;��
v�@�m7�X�dK%by�]Y˼�s��ݜ'�Kne:.F��_��x
�h5E'��ڥ#��֊��4j�cF�E�X�c�/ڻ�m2ΞI�,b��}�Z�]��������Ss3�%k��
��L�{��#�b`�~ئ�JQ������0�D��;ĥ5oE+���)�`�q����⻥Ȗ��IԨ�}j:�m��i�G����3J�G[~2X�	�еJ�_���3LUks��:_%�l��i���3ҥ��Y��_0!-U�����?�C�7�1���Ue��h~ө�L�g��
���M�=1u�l4���@�\�����F31�!獦�rZ R-x�(j%��ZFQ�����ǩ���*j6))U���u#�j4t.�,��R�����5]r>>,�~�����l��K;x�v@�< �/\!�@�#,sx�}~_�]�8Ly:���,�^eK���s8�&��(k��MBMz{�"�*��
)
��1��M�6��p��2�ԥ�<R�y���h�c�[�j����/��7㬎:5WYǫY���M�:��7X�p�	�e�l��
�}��?��>/-Ɵ~��O�~���G\0�q�
t�23���R��?(6����UϑSEM�|yHO�l��ߔ�9�+��ۿ7_��&��kˣ*��p��D|���]a��>�o��Y����*�U%�c5��b4�HU��e���*x�>�<�5t��z��6Wz������ܷ)M~#~'Y��t�˼�ם��:����x���h��e��8����h}�8�ݪN����$����촻X�:B�<u��IeI޲�]@���&�i��0�����à�e[Za�L����gn�s�Q��@�����r%K.��-J]�hS�ڲa�;T�����D��[[�F�ڲ(F����a�x9�*�Pl?x�����Z���x$z(1��֔hI��Q\�����'�R�.�΃o�v�Ծ�������V.qk_|����s?x�|͋W\�Sw8�MMʡj,��)���H,,�����j�������҃b����cG���:�o���$N��-r���}u��A=�T�|.�����_��di�<��*�?�>a��b\�N��Z���u���c�l�KD~i^�(�B�E�!0g��&�x�q�N4'���-2�m�t��>�P�4�6�
�7��)~fA
�y
�U�B�]�QDތ������^���+�)���\�̧�Z拾��g����*"0/�z��r��MXD�0�H#���`�<[D�B��q0���Ւ�/�5Al�>�z��׊�M#|��A@S͛N�����>�R�_���!����->8?�/%w������Q����'�:屆<�ǯ
����^�ј5��<���XK��*��O*�Öo�28�&{%�

���o��'c�8�aEư��O���>�M�t�,���n0Q9�@�[�4SO�G�>���$ȯ&�S��s#�=��G��I��"�%�ȕ�0M�(��'i�
����
L}y�uދ������y�_|P���(ۘ�b����|b�M)�/D�v\K�(
�P4�I�gDE
�e
�K։�K;Ae�fdz��G���n���ڳmn�a:¹ѳj�.��E�ζQYQ�l��^�Zs�j��Njڶ$�[$��L��1�\�k��j�F�jh���?��MG�z�E��9��Q�	v��z�C��P����i�f=�HT�������4�������ܥ�]�75)�ad�����$���w�b�Q|*����gU���No�督��`���]�&��>Z�fi�M�}6�N!�q=����a�ت�%h6�p�v�~= /_�x��BB۳*}�b�DZ�骅�a	QK
e�єm?3��b`�.�#���Ѿ�(c���$��Q���WkM�xdb���e�F��:���2
�~`�f��̙@[��o}�J�H|�J⃭ۏ�ۢ��o���?� �&uƹ ��A�,�Ux�in��J�kcEK�RCUcwl����L[t�{�5���y;���(�9W��
7���-�X;FXq5�D^L�Q��ѼI4�_h :��W�	��Y����I��kU٥��=�[��t��8QcD@z�S��Μ�E�LH��4p�M/�C��y�0�&T������CO�S���όͼ�he@�V(+�]�gR��5
{bL]���L��7�ԩ�Ç�/x9FU-o�b�%x����d��/h�N�fK�rj3��,5��?��-�ɫh�<W�ڤP^W��T�uЁ�]vxC�8h\wGcF�vui�pk�b9-q�Ӓf
u!-iR�E��"-2�Ҙ&)&s�9�������I��
�2YI�o��e7y)��ؒQ%&��b��dz��J1�{�C���o�s� �fRm��\@�(���)h0P��Z��DVR��/и^������U�:`���F��'��!� _�vIW�j<k�ʻ�{��R�4�1-�v{&a��D�W*�\����X��)���h������4�+
�M�(S�>'&��)z;�V,H��:���)��Bl��j͘���?���k��Ŧ��3��c��j,�_
��aU�&�_��Q����F����*e)��h85����a�]��aO����S)a/��pr���.P�d<�� �
�m�P�S�H}8��fe�e�l��{*ñ!�'��Q*&�V"�b��<�N�'�żN�A���w/��(a���N�$�XKc�OW�Yoδ$\lӬ���
D�H���k����e(���&ǥ�~x�ֲ{|��
h������
'b�d���z��dG�hE߁���Xq_mo�bAV��M-� ̂"���8C����
��6ч�	e ��u]�Gy��$C[���+�:ӻU�:g	��x�P\$�)?{^gx��w�
��Æ�	�0���*]Ԁ*��Ҍ��	'&۴�9��(�����9�x� ����a�;<?;��Gv��Q�sx؅�줄ԯ9��
S�͍���X�t��j� <`�����m����/�g�~�{d�B
�K��s>�'���;�N�:�ݣ:'�jx�lݍ����0�e���y�=a�����=�|wQ+�|/f��ɒ9P���t
t�(^�s��]���R�ڞ�̆u_���%s�Ȓ�0�A"�"ߏaR�1�N����9Sn�޵�����!��Gk�c��NM�^�p��Dwp������sî㲡)-8Q��ի�EMA�p�-�����2W��6��]:
�W��Zek�P��|QV��PP��%i�����nʝժ��wt�m��jL��u���+[gt��� �x���Zuڅ��[;��l�j�*�G���#�5�\��/k��ꀛC�<[[�tA�mRU���\I7�p�X
�����m�mi�묻.s�����Y��HEmK;��P"$���_h�ɽ"Mcu���@��6mؑ��jűS�����Lc�a����F[��BX[�:���Av��B=�jl��z�Af3^�G��i��x�n�|a���|���\x���3�Ə��Ѝ�T#ԝ���X��;E���*�$�0k�(��g1t�"� ��x��Mc��R38sWm寙T�x�{]�n�LXy��
�M\1 Y��S�h6��R�9:d�/O��i|�O=z����(�[Pi�������
-Җ�ֶ֪�5C#��d�*�1c��w8�o�v�P�R�h�����
tv�����}�E����4 �"��{�%h���n`�^�O⃱XK�"yY��Ud�,��)�n���y�|����&�}�5��c��������̰�C�1�-5?�A=Ӏ�,{��!v�;Rp@���O�c�����Y���F�ZgVt`'�5��`H��W��^�������}��2(C�OA;�M^�d����n���� �`}w�3|�������"Mvҫ0��'dk�{E(��\b4����i�D�
.HQ�K74�|
�z�><�[([.�l�A���@�j�⫀���=���
#R��夗@5�\�W��1�OP欯;�������{z�N߈���*J�RC��B���qjٗ/�Y*JV�&-M��O0��$X~ʣ�נwr9跫��v�r#��;�ӝ�*$&0�S>����|`m��m��b}x2�B*7����ąB�`TC�_T����쥋9(��S��
<Qw��|Cɴ`��\���Y��Ԫ���+D�89��]+2��"?�D q׏�M��(�Z.�J%ԧ��F�5f��M3{j�ZΠ������ܕH�Sy�YǪ��7�U�Xv�t��#4pS�Q�����<�;��%�����L�9ׯ���H��M���U���G~ĿJ��"�0|��>f2O@�F����ȲaJ��_�4"��i\��Zb{���9~DέU��Jd�Z��z�Ύ��3�斯�"ͼqp�������-\���$X{�~K�T�{j/�b8c�e�U�H ��Ɠ�n�t��D������說2[:?�0����O�A0���Jj0��,�A���oM��	ۍ簘���u2ǝ,�y��bgG�PW��᜽�%l��/F&S-�ɧ��a�Q����Гߛ��IC�@ɝ�Y��Ō�Oސ86��P댏fD�jqr��갡�p�n�7]򴚡s�U6�%�H�.����ޘ��v���>��s��#��M�~LQ��4���f�!1�fA2c���y� ��b&��۬e��N��g<pV��\-w�EZ��e�󔼩�f\���%F�D/0T�Lm�OƩvi��S-^d�~��%`�qOO����c�
���	²c��~�S�Z!O��!�
?�l0�g��vR�W���"TϹ��2����QC����a�7��C?z��]���0���;=*�s7%2 ����T�y�����F�,�D��hҠ���'A1��̴
��a��(ÖT���ή�
��
�
8k��Wa��
����'�3�e.N���ȻN����ɐx�+��0�Z]��몷��55��tY���H����/��K^Ͷ��i��@�PoTzϠP#:.drOw�P�
Qk��AA��"�[���o.�H!Ҥx��C��ơ`�p���
B�'�#!��F�g��1��;����HA��h���(���g����_�	��!M!�;�^Z���k���u|��?��}P��,���Pc:���(_��[����G���`��=+�r~��Q���l�-�K��*+l
Q��e{ܩ��-{�Vr�PaHG�i쏋|9]��e�A��.�(�[r�;c/؎�y��x�@��ڲ!JV�7���`*;�]֊6��/��A�j�?2��:`��;���mP:���d�G(K�:����j�Ft_?��ogmj9�cF���T��1�s0ƍm�`	�4���� �B��N,\Yy<g秳�o�(F��~�w�Q�w϶��n�� ���.m��JN-��B��b/��5[fn)�O���49g;!���Ό�%r��h��RHՙ�:*�fQ;���R�D���qX��7��?5E�u�Yj��Uވ����ۉ�i<�(pZ�ߚp8�t�b�ܘ�{~X���),��:��Ծ7���H�:�Mh�v=	�m̠�a�x`�e�.��m��EZ���R�^o�q��ݛ�b�ج�Y\�?8�c�ݠ>+6�d��4�o���UD��5-Z�<�
�Wq�u^�X��(�c���+���"���|T��z��~)K`o�a��i��� ����4����b�'�SB�Z���)��[]�H���j�y+�<�I��pU�حfELsZ�E/	IT~���٥x+Ȃ��P
�Ĭr��w���c�J��CQ�H�m��l�7VI3U�8�8���Bng���p돰��*u�(7��f0��_����Ư��KO��SV6M�	����`��zp92�s�K�΍������5��s_][s���&�l�Ru�q��J.�+�j�q�W�*�}�'����S`t+��K����[�̊�*�2\������i�s�}'�07��,O�tzg���d}��M�tmw�g���wU�+��(+�Eʎ�,:� N��f����j��E���Y�d��|L���L}�s��:�S=EW��Q���=�pL�{S��ٚ�
��_��(��S�U(��*���V�Z�_M}�t1�1jzEռ�:��
�V���Y��]�_�z���+@W�pc�VAC'��:K�ˋ�	���J5��hiE��P���f�Rms��EC:s-�b���C�e�nI�D7)���Jj.�0�0�4�_a��I�K����k�9�.�}q�xy�n˝��ſ��\�)t�h���\a���[Q�P�YQ\��WQ\��U�͜*���Q����';}���6��R׋Gϋo�xQ�w���_n�t��
��E���_.�#].ȿ�υt�(���K�[��o�[��-��ŷq���!�LO�G8Z�G��E˔?����Lj1f+���'[�'���<�j�F�8��b�]�r��*e�J��w�R����Lf0$|��K_�7�̮�ɼ�%���Vc�Y����1l���!��� ��� ��(���Yv�Ǝ0��r���2i���d+�̱M��st���nK�+��}��8�4J"�8Rs7�|�����d�<H�(�(����!5�s�&��yɻ�橃�Ķ��>�6��T��,��މtFF��GW��t�cW՜6���^���p�(X��(���OLRU�u�&�"ڰ��l�Ȗ�B(h�Ի]�p/rk_��Z��D`/hZ��b	j�X�-��̓*�wG���?���o�е�]q_�-F�O����4,h��A��ߖ�*P(X ���\�EF*��P�����8���+����.���I�?�z���K�Wt@�tZ
s��7nTl��$t�{p��n�[@�7�Xr�s��[�0��0Tj�f>Ef%�k��z�BZ�U�W�d%HE>��E%rd�Ţ�r��X�Բ�ee��Q�U�qtK����LE��e�*r���-��B����-<V<;5�*H�P�Ԓ�P��RᕂG:S��-x삹����.��+��/-s嶪,u*4����}�`c_�[M�;��dM�\
B����l�W&�
'���󇢣|����
S^�E�\���춖X��6X����榫N��RJ��j�X����!��"��n�l9Ռs���R1��L�h�U�w��A��7ٱHQ��m��Ÿ���"@�F}ߍj���8o��ʣ��ϼV{3�Mt B��T�uL6�ā^�x��������f|�xCjU�`)��`9��nl�Q�2�=�,��t\	9�|E� r
��g5%�葠����������hM�;��޻T"4��4�R,��eƧ�,zz�����G.��0�YX���ԣ_� ��-�Wl�*���Z
VEu3��#��7�Q���k����C�*�.�F��8 �GI��	�(ݾ9�a����	��0�#�M
���P�2�\ςl@��7B�.��-�p�;պ�zC}ȋ�0�V�X@���>��w��Ǔ4K��l^ǒM��
��
�hϳ	Ͽx{��2mӂ��Ѯ*��}I'����(|,M��8������8�V�
V~�o�Ks�`��M�kb�V��)}(~5f���=Ԙ�FP�N_�~�ލ��N����ivj7^xꉚ�/y���>�6gl�ģ�q��t�]�t�b��.V��e�,iG���Ia�Τu-tѺ˓?˓��t�ݡ� ��`�T�a�H�!T�[�t��l5q(�K����G�ڳ��V�n9����)��ʍ�:�u�/d����
 e -��;~��.�gu|�*�;��n�y���R���m��p��:)�u�ºǏ�Zq��8`�=H� �*���M]k�&�+�?mʻ�S<�QV�$H��-^����|ezS����[4/
a_7�N>�y�Z%��Fw�:�B``�[Z0�S�Y�7X
�$&�>g+�K�N+�Y0��uZ�=���$@�����6� �צ��]��?n/A�ϝ�%����
���U�)8h^I�k
(�=;�
�$<�4�0��K�[h
����*A���ZLzg�pj�MI/��tW���b:e=W�(��VO�U�%����~v��aq��'P	�gGM�z���2pJ���3���a��1��ûA�b�h�f�0��4�Z��.�H�Ү�x1�e�M��3�Q�%���m�v�~��a�N�-�
�#6m�0Q��T�Һ݆zS9��c����&�Va]�i�K����z;xa�����+�K��*<ԋn�)4n1A���B��\r�������f|��S�X��	Ԥ^^F&�4���p��?�?�����K�^���	mox����5e��/�<���I�j���9���>�9
ǽS�
Su'������5��'��PkyM��8rk���i�����W��O�.�7v���}�<Z�h���ޑw|�iY�*�PC)�Ҵ�5��	�>}�+���"m�&����)���S������O_����^�Y���Nm`�J6�y��d˥^������h��杝{ǿ-k����v�������S����#��D���w�����V\D8E찌�����̐��{-�v��Ϛ�ȃ2񂌕��h�uV�a�]+�"|���=�&};�NW+]�����-L	E!�%)���l��lA�iq{�ބjB���ŵ���Du������
�h
A��"�{왒���
�1�����>
W/��]�:�wV�x�$�����ժ㸣r�'���+���bhT�;�q�?�����uW��~�&�)4��e��Bo���/�~��wJ��\~�~����_3o��)g�܌�k��:�
���K��ΔOA�{G�7�'^��|�P���eiQs8�)�n������W�s�N��Gz��b�,	q�M�~��a]�j�'Z�AS�m��t�6���
U+s1Q��o��=�&�S�YN#�4�Mھ��)�[K�8�p*�O�9�b�y��i
JSh�&ps5��T�KL��"OzA�S^s��^V�Q�Ԕ�T����k�w���wG/�������g��j1y��C��lT��}���9;5޳8^��&Lو�_��}Yb��Y6
��k����
�{�]�K�*W�Y�@��A~ъq�>*/��%�T0nj_�j@%�*���.a6h��} �_���m�C��_�/ڀ���Z��ͤ�Q٠E�U&�Ą�}�w�WI}k���
	�&�����Ŕ^f�&4�U(N�b`?#�	�3���0F��
�#��h}6t~�q���O�k�2�0���H�Q�IZ�O[��~z�����Z�!s�,7���Տ3rwY��~��ǣI`�>c��ֳ��x��3�����g��?�sxF��#ьx'hh�	�R�Qi��#F�x��!=�D;
B�dK'�X�dS��h�1�9��'�5*����"��t��?�SL�G	g�,��u]�4�+?k`�O�9Z%����o�A�$�'�$��L�C�ބ�7"�6$��S�n�o{9����5�:�ɞ�
R��S<Z��(��Mڃ%{����^Cɷ4��=���^<o��(���T�/����2��BOk���9!S����dK���I�33d�,����M�tاZT�\.��̺�5.UZrD� ���.&Y�(Š�nX�*�s�dʃ�H�(���e��K�)�{�\����E���?��/�[}I.�K���+�T<��@l�.���?�����.��[�9�R���A�+��c&}�����?�o���cq�.�Ă�G��e���ٚ�I��ܒb����5����7I�UA�M�7u�Y�K��x6_@���
ĝ�d�qr	YB{SS�d��8����!�hGY�J%���~l�*:D5�O�I@�0X-A�Ep�?���A���(�豰J����T@(�ޘon��c���8�E�_�)�D##��'6��c��H���jG��V�4Z��q���oU�{�GC�s���;gcM��������S��=�T"A�?U���Ι# 6sb45��W��%�ӱ���E3�� ��[
ڵ�C`�3�]F�i��,#D�6P��1,p��H��oT�c8n���#rXi{ҠU�̛�[��Ѓ�P�_С1}X�Kw#a����:�\�@?�aQ��I��1=N�k�C�]yӮ���o���RNL�@�o�9K)5]�E"���=�/ES4h�K�f�?D �~���*lm a��ZU���Q�C�5���d6�x�����R�\�wp��p��
.���܀����7����'���_�����W���o%�?��uk�2ރ.�0�o�8�!&�yI���g�C��]"��!��FesPr�j��`�9P0F��0X�"���J�k< ����C{��Ǐ#��o���3�̊�k��
+<'U���!>x���!�jW~�^����;2.)�Õ
�P��G\m\���)��i�as�Vp��8�{��s4b5:���8- -yc��{s����E��]���%���-
|��w]����r��E~Y+���чpD���|c{�Ķ�f4��f;o�t�;ۛ[���F]�4��F��zu�ڃo5�H�4Z獺�N�A��]#Ŧ���7��վ��4�M�0��ݪ�٦���;�Ս��z�)m�z[�6��lS�፶�T���#�f�����F4d�RM�C�mv:�ls�	��y���mw2�SM��V�Q�V�׳�޺�ߣ��ڣ���4�om?�X�	2NKRţ�Fu�.��nVO�K@�U�[u4��K��MK�R��Q�o����&>)1P}k3��7kB����MJ,p����[��h��@Do�ޯU7{��$I�Z�بml�g��iǯ[;�$V7��;ݝls��^j�^��mNb��vu���iN�b7z����v�)������6��eJrs�����Qu3Ӝ�.�w������4%�Ķ����z�Q�)��ӫ��Izv��4���?ڨk��l�����v�ϩ��h����z�z[ď�dj���J7�`s}�
E�uG+7��7:A�old��h���}�Q�I��f����lU3�Il�NЁ��]�8'A}��G���iR��~����MJ����՝�l�,����S����2'�$�"6z�G��$�<��u=
63R���Z߯owqf�����w7����ViB_���^G�K����� ������?B.Vu4J;w;�s�}l��h�����G�>!�^s4J�&67;����&%i�_�v���'�d������e���6w66{�Z�II����l�Ls�����`+�f���e׫����F�9	�m՝Z��8)�0�7׷��z�I	�uz�~����mR���{�N'ۤĖ:;[��GrN9�#����=���nt�:}����}G��S�%�'�̴�z֘�~u�U��r�Q�DJ���R؉7^�0id�%���R9L�v18�����t9;���I��]�+���C�����Ϻ�w8蔯~�1��*�3����[����ț[��P��	�俱ꟁ�y4��U�[V��ɿ�j�0��L�W3�u� �V�k�j
�ߣ�,`g� �Vн���rD�N9w02j��Z��ʹ�i�D��3�{�=�!F���|�
�;�`�O9�%�J\eN��|��=�X�4�@�l`L����ʒ��p^�����.,�F�Q0��Lk��P�rL�CV�b��/��~'��E-B����@h�Ѐ�1�b��ݡ��Y�)���[!C���k�%'-��B�у�H*F{aw>�����Rp���6��W�]������)jM�H�:L��KDC+Z#|@�"�F�
����%�q�H<�(��8�u&�ɟ�	YQ؟]#Q	rc�$�"�A�A8�3�"��9�EM/�z�<cg'/[��6����������=k�n�Ó��O��^��듣��3vp���N��ߵNN�r��3h�����񏷧��3vrʚo�5�3����l��X������
��V����Z�D�&�����M���5�<x�<j���x/��c���i=8m5�����Nߞ�5N�E�������È��3:Ᵹ>8:�g�;��q���Sd��y��$_4O�-������rgo�M�pр���/�>�Щ�tp�^��0�[��\}w�x� ��=?k5[�Z
�����q�s�q�ǎN�Y���܋��
]���~��I8k����޶�'�EX�_+�4}A�=9Ʃ�4NN�c���}����O���D�`�eV������#;n�:j�j6��{��y�(�R5ϰB���Ň1�єq���il��5_��?7lQ���)ȄPv�Z����G!����>cܔ��������O쯦	('��p���k���@�����e���x�[в|�7>?�f=���vU0(����$�0 9�υ���M��?��?�Z�=���f��3ִ"�C��`l}�����K��YT%�L?����׍��J��!؈y��)7OMI*�X<����|�ᜊ1��A���+��Y�*
�d�:hr�|�OcJ�g�߂ŽD�͢
���0Z67Z]>���|`U��7<k���bw����&��[R��K�r8�.��
����(c�v?�U��'b�����:�l����vrH�Ȃɵeu���Z�����I"e	�
xN�YE�`�[ظ��&����6���A<�A��t ����8�KT��Yw:��^��޲J�hQ��σ��l���^�4�N���� ���Y%a;Z��d*F^�Ԟ9�7!_Z��N����R�w�i'��N:߼p�h�J�������l	��6��s�%^���?�t���c�Aˣ>���v� '�=n���.��IU��,���*ì�%�>��Z ����
W���;�Zd5-z1�8չ�?�K���t���d/�)���\fb��<"Ԟ�
@Wߍ�ҩ0�$Vz�<Ux��d����D6�*�djeݳv��P�4��fk���q�%}�W�7����mI'_����5O�q2��3�����L�]lj���
H�"Bc��&&�a�yAG��
m�D�!w�蒺��~fb���@������`o�����8!Cd�l8P-��ƍ�ʀ^'n��0�T8��]��5aJtp������
��~��H��dV^�rv���&���z�>yu���E~w���)�N�{F@�!�t�g��q1�v��"�^J��[΢���Ly�7b�g�0�&`��Ȧ�[`�rƲ$�i	tb<�U��	&
I|��#�ݍK@6Xܠ���
V+�}��]����1}D�34�jvGh��V�,zxW�H1����I��~��w����)99�������Q_.mM�>�
�vkp^3�$���|,�Xx�vH�&�#]�Xq/=GE�(�� #����w����>x�kBrX�G.ŮY�f�8�Lұ�k��Oϡ�wE]L�;��Y���C�8���E��'�����w'7TKI��p܀�Jܕ�a�'lھL���n��'�{����1Z�p���2�u�-�^��M�6�i�x0�HMg�w:���O�;�z��/�I bJ�MxS~��&l�@ڄ�Z��t3����yߴ� �*�ĄKL��B��b����X��|�b�b�s���R{,Z�L H���E�a[&T&�����F$"�����5,в�D�J�K��RQm�q͉��nqȣ5N�4o3�#<K�0������L�&l�g�lz�,1��ƴ@&��X�0JK�7� i���d���r��;�MAښ�JsF�c��{;~�#�+��S�M�Hk�;�
�U�_�
�K>�C&�6���(��wE@�R,�q)�8�jdGRt���!����㳗)-�^��_{w��M����=��ޝ2h��98��]�9�eJ�d1����k��Q8vTYf[ol	U>���i���_�ʫH`��I�M��B��~{9�����p�{�Kv������I=���Go�k��0��� 
�K�������ɫ�Q���Q�y�u�|�b�^�j�7��U�jP0G�QK�����z�(��!���V㗃�c�c#�F����kl��8<m�����/ZGXcۅ5�-z�:x�c�C�U�Ņ5_b+#�-���
�T�/���S�
����Š�G�S]c��D���;��#8]��r�l#��W���휙e�[8���?�&p˞�S/a\������}���2��п���t޹)w������z�cc{c�/��?�aiK�ϭlͰ�o��8=k��O^4X3s$??f�����|6bw<{����a*��I�3F�Ac{J��&��юr��]�R2�����$f"<���k�l8
�+���ľ��p
��5G#?D�7JV.����T��Yʼ��7�sr�J��a��y��E�F��0h�EU�h5����]����2x-�U:������l�h��1t�;�[/��K	����:K`��m����
�x������b�Y�g(��ɋ��߽��U�5��U�|$�Rb����8j�� 5�0y��P��D��2>�с��7)
����M�%oX���1��+�{""D��<��[a��G��X�{4�^Ȭ�R��U���((&nW��^��P���/]�z��,ѰX��$u'�=�#�ꑗ�=��	gx/�
���j��n��~��&�����T�6A��\(Z E��%ezS�~e׃�[T��%p����C�Az�AG�ܡ� �{䣠���"��%ZJc�{*�x�W��'p5T���p���("�x�ƿ;�8�O�6 z��_���
�}��T��B���Z��F�^D��^$�D	�9j�	>�����v_��*�t2
1�G�7�߇l�%�x����VU�"�X�XW�QHM(��jL�4���=і'�XU��X����X�VWX�c���#.�6Y[&7�O.���=�$��pM�F����j�P�1������_����eV�K����ُ��ǒ��pO]|9�<�P�?�I@a��3��po���]��"��D�����n2C�J�'������6z���F^[wlzm��:�nNL�c�'|k��&����������;a�]A�I�'#Rn�ߝ6�\�Mf³�u�0"�X���B<z~jw�:�$'�FMטD�N�s6���v�[M��z��x/�����V\�%���/����3���"�C凗�*xI0��`�Ŷ�q9��UrH3yJ�Gy80��2kN�<$B#�蠋��$iA�S��?,"W��	�9�Ç��AR&�4)�t���,W;;<mbb�J����	:�g�J>�������fX�\7G�~w�`��C&)��%Gړl wG���s�I�(��hg�Y�{�������:���Q�x*)�i��V��~ly�l�;�){��S�icd����ψ���cyjۡDy�$mfh8
&C�P�ZI]��~
�s>iw/��E�1�=�ER���KO�&�JZH��VcK�:521�'������HM*��>/�L)߃�%�+�%�)��E�,o��]��)H}��q9��̜��bΕ���F��+�҅�¯�Td��|����I�� 8���+{<�h,��!#jm��p�V��Ⱦa�y4iXk$X2p�V��[�
�EMȚ`ߌǞ�*Ө:�!���]�(	a*l�$Ho�МO�$��fi��%)��e�w�m��7���q�ͬQ�`]uU	���+�KR�*�Ʋ*7=�g(	DN�U��e����!���5��+\JP8]�|C�TL b`�$��l��L�y>*O�վ�ƴ�a�)zEԉn��܆��%f>*���K��N�<u���ϭi��>����Ib�F���)�,q��ƶE�׮���,ҮG6�p�ط�Ld�&W#�V �G���sDL�h����WJH
�F"�R".��͞c\`Uc{�ʹ��ym�u�b]���r�9��k ٠�K�->�Ϻ��Z�.�G��~����Q�ks�ҼU�[C�mH?v�J�1�`��t�<n�d�5N^
��5�kn��ܙJ|pO�R_�eނ��8�وS?囶��u*6��r�8�/�@��l�����<V{�̘��_A��������	��k�gjdr�#���r
V��'�c����|-AK�=���E�c��Ox��ؿ�&�pL�o&2�S�y�$�CB�Џf��
��)!�P�G
߻���\�<ƞ�2���Q�-�z�4��v?����j��eR34"9J7v�N\w*��>\Ӻ�;|�
p�&�J��ŭ����]j��� �"�A����xV�f�Q"��TN�bB��i������nl��H��{���K�B泈�=�,J�`U����͵V}T��u��7���%MM�$�/�]�m�g���k`l[p�E|If�}ݢ��r�|a�IƋCH0yp����{鲷�1�i[�b����`:E�C�Q9!Vr�
�m�	
�C�IvWT���`���y�i
�t0�(R��=�U*ɲ���}x$޺m-�~���<_`jؠ��q�v�	5��H��������c�8��Hj7�q(��A�M\"�{��PG�$��{
t�F�]ޏ�)��MP(��Ǟ�;��e�ݖ��{"w�AK�r$�Uϒ�{h�q��	� K>�w�;��{���tmZ�׃�zơb]��h�VFZG�&���'/"��мܥ���.����^JY�s9�������;���V� {���[��
� ��Dv��n�nx7.�|s�`���`*D��|,X�$��	c�v�-�_���b�}~�L���N���DGGJ�c�e��z����y^L�KZ��2�V�e^��G�T��{�|6�E�+z�l��X_��C�!�;��H�Ϥ)�Ȍ;��\כO<e
T��s�}�0��6$��}!�r;0X��]�C�a��-���0׍�am1��҉�aFi,S�A�M ���M4
��.�X�>�7���SR��'?�2��t��s��OGb쭀��.�$��n�iK�J��B��n��[���X	�-·=�ή|�Vdi�G�3;��Y��2E1��������:�q\1?b��s@lNՅ�}DO"�Vw�e/�j��1���\�Fq`U����EܶBn��������R�EC��`��7V^�X��`��*�a��)�w�N�k��Pq�ERo�O/�W��/��V�|�m��i����,K|�}j��y�xqW��4H��Ř�(�T٘�z\��f�i�G�4X`�����,_i҄�va׋��H����� �F��o��.�3�wb�6!�ڱ�-�y��2TR�Tw��>��٧��vY-Uxh����A<�&zfFו��6�6X�l`��B��P /�w��O�1{�u�I�bE&Ν���ہ*��\�g���n��y�Oٓ,�x�~�֚���!z���>%Љ�0��W��f/�q�:��p�r2ް�+XO<L�q8����A�p��9�Աإ�����J/����q�3��D�e�PU�c�ZJG�S')!̐�$�	ע��0Da��5����˵1)T|J��D�댺��%J��F�іA&eM,����k��*�=,1xBA$�^�j7����%��Pv�I�>yi[�s�R�z�ū�If�qA�;s�q�8�1�e��@�軁L�gǗn�6�k�dxc��-A,I�7w�s&I i�3��Ps<o�m^��������`������l�Bѽx.4�SM��� ���>Kl�Ǧ�N'�r�'5I�&���a*M���1��y�9������a�����2�A�'��t���Ѯ�X��#Cw,�Jq�Ui�K�h�i���O��U/aR-8iE7�)Ȅ}^��ܤG.�]��*�K=�o�mX};t��헺�ցcaD�ۈ4���ޑ�q�=J'�Ay��W�$�,���;�ܔ���;�0=��AJ��O������\�٬�}V�$vƑf���_��tr�H�hk�Og�?�F3��5=�����Խ.╞��m�mK��۾*Ț(&�dʻ!:<zB�-rA�j�kd�*H�e�_պ�E5i�t<�䭐lVD��z�p���v]��}��E�Ӣ'���`��T��ֵ���i��q����z�ݐ�(RsR[I[Ӑ�uG�7�`�K3*��H�G�wLC^��_�蒄���te����NC[g0�� }�E8D�lv��v���͸��m�v��ީ'�cJ3�M>_�j_M�2"(�
���9k��?>���0&ަ�m4��pqg�/�m�e��[b��j���~��}�rƕ��6�9�l/(�]���}[E��!u�S��$s����i'�C@w�}۽?�«���c�2���G�����8�H"�,kT噭�ڲ��`x\�`��<�R�d��p�\�F%�`7R�™����sp)ȫA�r�8,��
�퐖�,��ɍ�s�8i-=�~�#�����ż�:I,,��?T�7SOj�Φ��?��ʛ<E�2���Ť�8dl�
�K�������-�v�OJ����I��!=�XZ��k5޼}�<jX�6��1i�}���iklۘ���=g�	�U�����vwr��xKlb�����uK�^����5�$��
aX�R�1F^B��X���&��cҷ<�\$�y�&K�{0�gz0#S�D�9�=S�tm�=U���=[�%(H����ы��qޢ��{�S�^'
w�ۍ�0;W8��6�P",e�>��44��(�af{�ŧ���?�OONZ˸���҄#����^Q�yk�;��q�3:8��t�#)��0&��F��/ŏ2��H~�ke� <��H��y�(�q,���������<�:�
�i��yD�r"P^�������>Xg!9(���\s�$Q]������i	-$�m���*�H��Bzәݛ���Y��Ⅼ�(a����3-k8�:h5~9x�n��	S��g�is|�<8l�jy{i�����W�J�\���q�#!B!�Q����_����u�ўV4�}w�~	�/� 9��A� ���'.�	�}4�iS��/�ˡw�ؿ�
��T�ms�eۑ���.����ߦ�g^���oݪ�D��UO�%~�����4��l@��U��a�4泮~h:KoD�����Ҍ�ьɒ��Z�v}�a?[�,2gej���j��e�L�_U;��)!�ڝ�V�C7Z���Ւ�$8��9���1#=��/�g�]<5�
�
���\��#�#��i���n�
��ǔ�$ǍGYЁj̟2,%g�F�k
�|]Pçy�߽��hA�P�*��i����mH��ѯ��Cu{O���B��Tc�;�\��Y����=��f�
�l~dm��[q�_��/�%K=DY�M��5��HV�o`#I3q&{3M�u(���J�X�w��*�d�tB�;ʪ���0�C���-�*�V�+}����Ԇ3R��#҈��qi|t�Ӫ��Q���D,��~o�&��j�jS��ۅ�e�̍r��$����p�`s���
�
ٌK��D�'����}v,Ӡ��	\��<Ⅶ�!t��e�Z�UF��A$
����qe�e0B��?h���߫��Z-����ƿW�hw�R�]2c)Î�;���+�vT�������FsK%"Z;*67�[y���g�v�Z�X����u^�DBC�ha�^R`�,�<��:Z"+`hF7��`vŎ���A��t�R�G�p�>��ww�aF՞�BN@Ox�џ�!?EM�y^�mݫq8/AĚ�n9A��yt����φP?�3�^`8�W�( k;�w5�Mv+����r�v�W���.��e����п�i��<�.=x����?�@=��
:�m��@\�iJ���x������*��/p���;��|O��Y+�+)���� ��3@��`d�)ڷ���V�CIQ��o���gS�Ƞ�q*P�jp:����)���{>�²��+^��ρ��ul�P�G����4�_��Z��������o�~eM+ð�+po��v��@�u��z�Y���E�j;rm�?�o���*��a���xN�?�g�ro0ţ�k��]��F��|�\��\V�/�Άh%�O�Ӄ��=0`��쳛p^����y
���-"��&W�%1^�OaVE�����D�p>C334t��1؅a��`��*�W+������Z��S�R���i�������A�~PR��N��5M|����7���ϑ��c���_�@l��{�ڕeIN����_�ժ���Uߪ���������Y!��wv��CH*'�/��E��wo��M��i����rV�w/G�[�$�g]��\V�؃2t�bN�>�������)��>�u��2�Y�� �
��L&��N��2}'��D����~�'��ML��O ��F��]<%�N1mí�k��&"��d�W�7� L~�~���9���#��>KD̋�|��%Ԓ��򘀏�/��~����
KƪE�y9�M�A7`D��rŠ\��dVt�{�u(���#g|O�Œr��&� �n�с����B���?��z*�է��U�*�ns���3�A
��,ߣ)�_��
�4Ɇ������߃娲2���Oz58-O���vq�����
��
'�;�_Q�oHYuqy���3k��Q�Yǟ|+����_��b�с �������c,�Ԫ[��x����z��O9�A��4��� �O�W3�u��SY���do@�� �8�z���L�˩?B��mGav�O�2Tx�Y�i�=E~�
H�
�eS� 6F�S��C��?_�cG����&���W@��[�3�]�tLj����ˉ�Bc<A��!�*�V��ݑ?)�[�{��7�[���9O�!�p8�}J3%MYrƹ'�"iǺ,M�9�@.��y���=i���<�-{Wq�K����
J��-~��'h��zϡ�N��:zjL�	�=J����4����|��2�z�uiP�u�
$蕕|`��r����+L;
q$��VH��
��-���ګ�`p�?��Á�2I�y�Q��Z�T���%�:.����>�SN��xAm��Ѐ��v4'�i�_k��?�?�!�����<"
� ��+��WU��H��'�ᰍ�7�ό_���I}����U?g�F��h�5*N!�b^�6ϵ�޵�J��UcR@�V�E�|j�W6�ɦ��St�T�H>7E�2�8��oܟ��S�]e�M��e�H6��P`7AZ��%+#���u�
��֮O�A?R,���,��hc?�4��P��������C��++�+ʏCF�'"4�l�ֿ��}������ytE����wYޜD���4��H���L	���
��x+�Vx1�r>�� 	�����H�|���q��53!S�`�s~��*�f�(��S�L{g�
Ȁ�8��1���E����B�/V��Y�\�@7O���Z^�_+�櫲x�f�JA5��p0�*���&�0�󏸺��x�Or2yfOp�;��.B��V����}8��=�?��~4��]���$N�̧c(��$��d�|٩w:g4హ.XG��	"h���/s3��/"�q+���NğOI�(~Đt�Z?���?E�d@�`-�:7�D(�@�FE%I
���GR�<������'��^��@Z�i���i
�р�(\�zBA���?Z��"�l����P���Ey��l0Ve���,�����Q�b��x\�Bܖ��
X�8/�!_��KD���‘�'צ�q3��Y&-e
r�ǥuC����E���|D"�!%��*�@�p�!l+��g�(o��s2fi��(�6�1?��JU��[Rd�X��?b��O�R��1>U�JrHU)6�Q��T��Q�a�q��
*�����?�7��ZTV�J�ͧb.C�
U�P!�}��?���%����7��c��p����L��$�/�|;���H��i�:=�+�{����r4�x�+_N�����y8<c.�[8��Ϣi��a7����8��O�6|��ْ�q����WVY[C�54�]�{�~U�؉��EX£0s�
A�hK絋8�m�w�֚��j��A�I�&[q���
0L4��BU�t�:�L�jA[{�d�B��{{�?x}�Q(~0�����t�����/�Eu@�
1x�p
c��z�T�BWe�2נ0��T�a�ݻƥ��Xv�s���s0��/��Hꗯ��ư?h�gC��v`�	��1���\#-��IUn7�P&���vX03s9�䦇2�=T����@aF�EhaF#e��a�!�dX)
d��GI6m\4��0���}��ʟ=
��66"d�ТV�����6nt!�0�Q�3���L\�GVQ���/˨��ЀU����H�,\�
0ė�������	>fF����yTⶮ����F�&n��'��1��d�I�Vk�w�����۟�8m�LJ}tӐ1T�J�<4�ޅ#Oc��>��D���'u�႑���2��l�Hu�1���>������}J�a�_�b��G��KF��$ԛ��܄H|p��R�5F���JurT
�G�"�(=#�}c���?�qL~�b����_��)Q���E<������a8��� ���6�&�*�f��K/�`'�V�Rub��"'�*ax�v�3S�6�g������[sxߠVK�\Q9�񕁙�ȒQ"˕r��z�ĸ�5�G6�	� +�i;T�;n,�pi��7��+mE�8�
G̓��>���n��X+�0�U��j)�%��zR�֟��  �PN6Au�ӒkU^7����Ž<�3���M���9�}�e���$��b��δ�Bu��$ ]UĹ«���U	�(�]/���P�0k!�M�"ƫk,�u�R�
�/��u�d_�VN(X�I�Mm�Ք��5�����o��o��3��/hv!,
�K��E<�)�y��ښ��E�$F\�_�Z(�����^y�X|�᷊��@V�|����g;���͋������po�8�����|�?��k�z}��V�_؃��C8�g��‹#z]���cK�W1�N�E�<��7��|Ɍ���?�$s��QW��=���4
�㚈���.��E��h_v)?���Ӂ
ي1z7�gEz7P�_�.�6�
���\É�4�R��R|�� ��ր��	y�LL�Pj��jH�"��U,d%��G}"�U�|�Z���?<���V�O����<�]0�5.ƏQ6�Qt]�n���Rwb�%�"��Py;h���˒>8�J��=�iX�c�n&��T-$'������V��WH�"��$
 0�/���#��3����穷X��M�Z���h�f�An�r�93n��3Np������^sk"/6ք��Lh6�2L�AVrE��<8�J�m�DO���	���f���d�4�]H�M�b�%8s$E���'�|�}b@5�B<D�y��.?5oX��H����R�)s��RʜÞIa�p-�=��$Ið�p�X���
�Q��L#&�_��:K��Z�z��w�F�gZLQZXr�H��,�F|	p�o�5f_~�A�քCCŸ$��I�GC��9���ArL4�Q�U�p�\r餓�`=
z8�j�N���dR��r�B�J�}Ц3��}r)E9�)S�p�_�P
��[�ʾ��Aɪ��S�\�u�k[Լ�)��e�/g�XO�DC=j��ik�Ts��$��T�Qe�jX�j+�mx�ߩ;X[N�����)��&1�H�
:�E�����t
��Idk�͝:�E7��b����-yU�nSw��,e��hh OlX������
+n���;�w�2��,��� X�d��";�ƅ~1����W�}[��5h�j�'�c�.V��
EM��A���H����ң�?؍���΍�����"e^����G�?�P�٣�p40G��!;��S%�?����!�������Q��p�u��I'z�3'��<�(�P�<����t��R���@ӗ؊2����9�ى�Z|�N�����%f:p��"̟��&��N͇�Kcx �2�Udy��M��o����Ɓa�/��z�C1�T�"6C�w��:,K�#i��SH�?L{O�+�'ʮ����o�t{��t^�F"�A��+~,GW��L}�ZT5Z��yL�P��Ƨ��ܢ��ٴ�}�W�e(�
9%�7*G"UN�)�2b;�v�(�f:bk}X,϶$$L��n�����=�t�ӻ,�����cH]j,m���&���s�f�.�ZT�R>Lōki�ΌQp���>}�?D���3��I�(�
T	&��d�H�>*�1�&���ˤ�$
�j�BXZS��D[#3Hy�ʖ��vp@�MGr���b�m�}�+!����x$I��I��h�%9B>I����1�>٪R��(`9:'tl�tB�a-7:�R����{�X]��ze�S ��d����dk��I��$ӶB�K����!cB���0��d��	'9�1�W�/�,h}��
Vb�M�t��$��A��v��K��A�Ef�=Y�h�n��-��䌽A��ԣ(�vC&g��}3�7�&H9r�Ę��1*$��3Y@�N:�e���#{;��h3
ÙW��4����J���G�e��!G"�e^�̗s)�Ib�rI�[��K!���(V����(�y���F{�Z+/k�
�ME�����,�
��&�f��5>�q�t>�X<G��@^�^�B���ɗ��W�W���o�H�E��=悈/�&�~�!0�z�%J�)������#aN���sُz�-��+�xQ�7��,�?8oi��K�J����ʛ�����Y+O(r�0��� �J؃z<��_��{17�^Y��B"��(�'�H�'�|�<m�6��q����+�r��|����)�?�������OcV��ˏ��-W�%�ek|6��-;�r��p?2���C:@D��p�?��Q���]*Հ�)��s�`<?��Rq��Ͱh��R,@�T�7Q4��Y�-��\\1�N6A�c
�
��'^�3f�u8�(^�c�
��U�BEj+��|:m�>h@X��\W�����^��|d�8ƙ4�ab���hpxs~{H�LpEs�Y=m����D��֊���DS�q���L�� �ǶP:�;
)`�6�]\t��
�����)�m�7�T����&��+1�!
�}|(�F��סN(KtSip�������
��r
�V:J
|�2��]��~B�5nxN&��� �T��"K�[��rL��@+�^�7I�S����� �� �
��8�w$S�m�&oS��Q�"��W)��5��˿#�"`�����|L���[D
��XS��Wϓ���2�&��S)��F[�?#ڛm�gw�Z&
BM�.��L�E�i��TZ,�ԜJ����mVp�A�,f~j��vf����g�0�Ib6o�
\FE��Ȋ��Z,1鍮�al�$֒p�6��7^�
�BqY��m�ƃ�W?�=�N�Nz/�xdc
q)��ɫ�7�\e�y'� �I���X��R��u��r‚���l���xջP��n�`3T�R���\a?𭰮������(s�BYƺXd���]}"���W���e��x�n�a�6vO��vj��hkiJ�42�>�-����^1�l��@��RƊ���&��������z􅘦�A4�/��4j�l��Fu}ڳk	Nh�5U��\D���]]V��E�>��Sⱹ
3Rj��B����V.:ѧ���6�z��+�*��؎�"'�ۊ��On�8@���(���#�w\Jn!�V�q���_&�	7�)_´�EmP
�YD)�UgC��
9'�
�-,�`|i��:���0��"X(��}�~�M������tpk�6
F��d�J���VX�7����`�$y�J���k�tQ3e��[�eH���9��s
X�'��:�σ�&E�����872��ʗ�c�R:�J�3ֽE���BJ�l��QX���)���	`��8W�Sd8ngi������ؽ��+_H������_9ӿ5M�݆�H��mRDI�O��2�$�4<���2�"*G�A7����=�
�“���ǯ�sq+x�S|�����+�p(dz��eM*^��C}<���?Ew���/w��z�-��v"F���ybg[��D�q���kkhS��9H�
�C. �Þ1�[�8 ���4"_�]iw�AQ��xR�I���d�5+�������yn�q��ǫ)���E'�W����"�i�ȫ�d%��vH���~̛| ����A����,�H�ΔZ"�.K�Z,̓3�܌��q��c$#=x�0"������V�K|w@��۔۴�&�$\�����&j�p��oZ��:��փ�VJ���D�u3���p�E+�nЛO�݂]=W1�����AUF��ߥ	M5�b%��|`���Y^�P�#R�~�c3~2-���w��S�~l��O��[��M�'�1bO���F�]�[�(c?��7"Fa�M�ս9)k�C���%)�q��|��+#B�/�9|�2 ��e�H>m
o�'i�$�0�<��},��l(�=T���f�k9��V�\=$Q܂u���S����$�c
]�6�K�3;�!�X��F����2�]���H@'���8Fi�Q�Q�$~�mf��e��ƴ>HF!0�6�R�w�B)�)R(.��F�'�<>k�:���(>�`Ζ!�k��!p�]>DKa��ڕ8*�<����ȱ;�uD�a����EyE�}���1Qd(���#2����1J�WYoa�6�,�j&���MDA.�ShTY���k���|���=�A�ݸ%�J�v�2K���w���*~�~*����v�4��Y�a*{b6�<������P�n��+*��(+��gC�w�|���ܨ�6l����}^&dxS�ů��O�2���V�ݵ@��4��N�%����k"����ʋ��T�Z��X ���M:�Eۍ>i��Y]�쎥�/_6��9~�H��e!6�Q�s���m>{'��6r(=&�|R�<�<i1CAL��"��>M�� ��X��	ԃ�I-V8]�M��S���^�!(=QXQ�]��m�(6C�7|AL�fV���n�O�nx{	���A�r���үS�8��k���S�O+�$	�� �(�δ�ʨ�͢��+T�c�5�5��%�[C}Ï�t�2��g�F3���Nl8�c�]��9'���EŽ
�|u�+R4t�at�*@�`觫;�@�F'��t��R�oZ.Z�Oew!%�P�)Iv�X�
_�9�0jM�N�ckWk/����P
�M>y���z���OE���7EV3
�%��+��Isl��q���<�x?��я�r3���a��P.W�F��]��7�]BhY-�h�œN]:��#��U짮��֥�w�VX>�x�����ZX7L��z��B{��ig0F��C��y�-���\4t�Ә���M��v~]b�ٺԩ��X�\:���O�]F�ew�i���(KJ��p�M�a��iƓd-~�V����)�ϔ�j9�8T��9��I0����&^1�K�G�8�%����!�|��ޮU
������'MƩ�?���ZTP� �m���E�m�T�*��Ke�a���t�#�	<y�	�z�z��`|b
iP�i��JL�*�����d��|tb^��+)���.�_�5򔗀�2}�Z���	 ,h�Ȟm���-�ǂ?�@�_c]b-1�[f^_�IryuYruuY|q�.6I�S�Y�\e,�"=��(�\�:���/&u��{N��ڟ�&yW����>x�Uq�qog��
��a�9��&p�qx�%+`,V:6��?��2ua2�'��|G�ѐ/���f,�϶���N�¿���T[]n�&w|d�7ԂX�<�V,�K��?ZW���������ćf�m�]�iN��~����&�˸
y,9!��^�H`X��F]�C��.9���Bz�1R=����H�u����l�buGjE���Ȥw�NtH��?�!�$/���23!B�a�k��4�M��8+ye',S�qS��j6��i�>s�.��F��L�$:�ސ�Z�����()�αƘ�����M ME�H�j��(�Z2�Ub�D��{%��)�3}���L6�����i���G	f�Lk�.�:���)s>�Hf^��"��Qsc?���
Y���t|���*��"<�bR��Gj��6xH~�>��F��2��Jѧ05����ŦS���M�.Z״���B�F�v�-�
6nu�4/I7�����;-�@�E�i�X��a���f�( ���E�!x\ck�����,��>S��8(Ȫ��
=4���<�2AiyS $�W���"<��u��ћ�c[�qV���?�4v�T�C���QbnK\�m<�0'��� �s�#|6/ÑQ)���8�,��(�'B���%r�d�w�ofx!f�>��z��g]�:��?T�&NQ���M����tg���j������C^�b�I�oc(�b��\�:�*F/�ZF�A�!���ޙ��v��'��M<%�r����+$ӓr���K��>u+�ck�~n\�бF�0�6B�Ď{(�����I����].|9���ʹ�qzv�6t? �M�F��a,
����5��
tT\��iPFC��yw�Su�R(|ܦz���l�9�:xu��x���&\P(����&�q?d+���#
���*+��^0\[E
v����G�����}~�~��Y9�W�~���`�ʫ��F��	���)1/��ξ��<�Ė_��8�W�"FJ~�/�DS%��,
��`S�?����
A��}e�h�Ȫh����C�K����A�+1M��(��Q}x�PzaP�����ѿ�'����F����_�<��6^5��3K�y��e���@~XV�U���j��w�%�t0���ϯ���.��(x�a���E����W�����5���^�@'��H�k5�Z/���|�olη�����M�.���s�D���x��rQ���p*,��/��$:�C	7J����Y�u
L���c�9���ʌ��p.v���V�AK�C;��L��O�ݲ�ւdXԂ�ww����YxJt9Es�Q����\'���V�7Ǖ��R��W�8.x�L�m�,���VEJ_�,r�rU�C����>]�m28�*^bi�o��,�`>��,xv-D�;C��^�8�ĵK����}L�`KR�]���ܤ�R�1���P�������3��VU�Z��ؼ�0�cF,f�,2Seqݕ�� �
����y!Ԯ��E"�
�ys�1�>���o��+)�4B�
cy�
�pa�pM�a��!\�#wo�)h�85��bpk�	C/�_�g�8�pP^}
Gh��ߊfX���hڳHOk�b��K��=�?��ӑ���ڳv�!�d�C�.�"����;m�����U]��^�;���^�6Y�r�MvkkkO���K��
�9��R�,Fv����{B��ĠB�=�;o/�^B�R
_�؅�rA�
���Xl/�z�6��ݠ��qR�+��2HM-���~�h<�*��J)�D��cT>�_n*�'Ϳ�p��cv&����=ށ~�x��4-h�l��G��T���R�n�L<-��"$9�i.
=���o�!��7֕^8���FOz\��dY�D�	������_��+������yaDchecksums.yaml.gz0000444000000000000000000000041414554463574014624 0ustar00wheelwheel00000000000000�|g�ee�;V0��"O[���9�,KT4�T��;��n����3�/��{=b�#��>�����y�`w�!�Yk��0����@�Ҭ����D��uZ`�E�@�w�"����` M�y�0�qsr�FQ�$9��<"���,G�;�T�b�
�2�*�����dk�������0���'��P�>���'T��sgJ����g�qnK����WM�Sk�,cW�8$�W��\�����.�*
���%y�*�/_
�0Q�lib64/ruby/gems/2.2.0/cache/rack-1.6.4.gem000064400000701000150402106530013152 0ustar00metadata.gz0000444000000000000000000000360513572305410013442 0ustar00wheelwheel00000000000000���]�Y]�ܶ}ׯP��H���;@����,��Ʈ� )�#��C�
I����(���x	�ژ�sI^R��rW�U��n���|�ܬ��j��i(�[�3�eլ�u�X��nIi@�@��Tǣ�e�<y5���T�@�����J��U��T\��
�{��j�KE��\a�h�낫u��QN�dy�8���/Q�,_\>[]<_]��/.�������P]P�s�����dq��\7,�f2�QQmBS��h��1�EV�����U�`�[��g\��/�h�
ZtKB6�P�"E���eBӴ��̉���O\d���_�tA:W�1�_�\c{�gy�A�,�x�+&ŕ,Z�T��"fk��ymHmYN1�f<̜�;�t�M̚F�_�6��sI��8�߽���i�����d[�U-)ּj�;ƍԚc�G17q[#�P߰�Y@�5y���	n�M��Q��V!pR��l�i�5��l�
�Q��V�r&��E!Ț���Zbm4��T�LT��2�`�Rh�).�i�ij3^��l7	�iQŸX�yY����;�%��"����V�K4�u�5T�����G�2U�<����o~x�XO߿y������?_��񻫛�o�J�"�z�7��Y���k�6��޼{�
��R��U�|g��snH�.�Lȝ\�+ɵDw̾�TȍF�%�u@ĩA�S1��{Y�V�\�lOO�-')��LZ",ĩ�36C̆l6L�<D|�&iU<���e��=|�����g(F�F*��V��V!]��$��<�4�'K3Y3����h�(�Ι�Y��{^����%ڍ����H{�s�ؑ��-� ����;S�!mz_Pm�J< 5xR-gM�-G�{i��o@�|��0H�p�Ȱ,;��3V[��>�>�3����}���B�Q�L��3��ޮ-�-�B 9/!7;8��]0���.Q>�b����V��0e���jR!s����m#$�N��n�N
Q�Bܒ�w��桼r*�|��e,�u�z���k�!�諷j[��̋3��{NgȊ�����)�ѪKy���:դ�6̴�+
����J�5�[%*�,AH�R����z�A��	�Ɩ�!禬>ڍ6d�e�*��.����FX��fd�R�5�`legc����gB� HQ�_���LpH�KJS���ݲ^��*4�6GȤ�h0���h%��ʻ"��$H _�|�R�Jʴ����2�S,Yo�X6�e�����"��$[|�oD���;l�'VdJn����L}�-��vV�.�s�o��7�N�����'/���;/��eb�L���u���2�>d�j�H��u�:@�g83a�ٯ-��<��w���!�K�yC���~ho��5z�E��|z�s⁷��[&xa�pl�'�T�n���>1(tR�u`4Mϥ�	ڣ�bД��;;}'Q����~��uܨ�v�����$�f��5������Ҷd�t�9��ӟ��R�;���'x&���ȕ��iz��E��U��d��N�~������~"&i?a3�������w�Q�N�$p�U�.|��.Zݐ�u�Q�9X�w����0���2u	G���+B]<�Bޕ�<ס.>	Q�bvR�/Ι�R�g�Z��'1�p5:g]9�0��Р u��6a�Ju�I�N�p���gg�R��D����`��Ï��>�HT�`u-��!6R���XʊT���{�Hp�I�_�p�>�d3l��Q#5��<�@\h�u7~���.�+a�Sv=�Pp����1��-�����r��W˳��� �1ܰ�B�T;����������i�,yi��me��/@�Қ��F��*�⵽3���m��p��tW�К�m��C�~(�e�wT��,銮�data.tar.gz0000444000000000000000000066622513572305410013375 0ustar00wheelwheel00000000000000���]�|Te�0���*�*�Laf�)�)H#z	73w2�Lc�LBh�\iDAW]pl �"�YQ�X���9�yn��w�������gv%�;�i�9���<�J�G$�w��������JHc?��3�g'�gf��L��J������	BZ���Q�b���$�9���c���OA ���<a!ə,d��
�f��g����e�/�K�z9��H~aH0����T�Nuz��WCM�J)�E�Y<RH�m�B�?,�,�;$IB�-8=b�N�� ����R�A�6,�~�_'��fd�7��F	�ÍbH��]��(�,B�+�$X�xn�+)BR�#	foaN�AL.I�
�_��ԯ�F9�	D�BHR�!ى}X�%�7��9�_{e��G��&��3�(���E�\�K��`��++����H*��)���#52)�׋=�0oZ�>;zG	"@�D4n�'�^���ܑ�����+ ��K�0>����7ЈKs�.W��L��Xh�h-��0L�M7 ��*�J�0�Z�ƕ�&Ѱ���������L�_lE����B�C���[Rh/�y��lƕTW������	BE��W>AUR^h��+���PQe*)�,-�ó���1�@ф|hW^Q-����TC��Ȼ*�;��2{UA1���_RZR=�b**�.�>�*��<�2����`Li^�P9����a������*�^f/�����L���?Gq^i)�-o̾�!��ay��v�+̿�4���"���T	Р�^c���	�΃�T�T��*ʫ��O���Zk;��a�yU%\|QU􏠃�JI�	ڕ�Y/V!
��
�=�a�'Sh�+���:��6S�?�[~�K�Fl>���J���3�ҳ���OQHFF�B� !m@NzVNv�@�P&��^7
�!��0���.ʹ�L�c�0.��P �Z�e���!�묕�r�	p �!�ط�WYb2i#g��9�r���yЛ_���t0$,�]R��jx(R�d���:C�*CR��4�擼M�K��BP�>	���f���*��&����c����6�z��-JN�WKM^�C0uE��0����+��$����X�"�6CM�C#���(ۖa�P$�T'�iM��	�
�(��â�Y�h:�sr1��@�^��v�L�����D;`�L�a���Dm�\.�AɁ�r�:.�.�0 -����N��l?�v����fD@z���\5�P`f�0������BE/�a9�S��G:�9i5���B�)\�[�x���WD¯�	!6��B~�ݘ��21(x.��%�h�B"��#�A6�'���0�!��#�08l�Lɥ�UB�S�E%���x](1��2�a:��BPv�J]�名QE���s�ɲe�Oc�<g�7�ʰ
�_���%�4F�~�E�R�)G����.�!-�Z*��t��x��8*b-l7 ��NB$��"Lb���^��.	��x�^�^2�<�xm�99%��ċ�M:N��O|,qB!�i�m��J8f� ��\���@]����a�J\���S+����9#q��
�R���Pg��R�ހ�`$
�~��3�o�p���\�:E�>�T�r��%�x���<Ѓzwy����PV���$ڿ&Y��V���Ƃ�
�vm�k�fL��3�<��:����e�������U����@�Z>&n
����k�������$�͜�h�+�h�]QZn�I"An��8�B����2h\�>��=��B-(���YL�7Q�aơ��7eh#V�9�RP��*-�^�5
���w���x��u���ka�jf�P�z"��E1�=d�R���[\�[��/6�,�jP{���D��L_FN
{�O�E���In	����0��u~}��D�8�"t��:��v�	x �XN�ɈI*&��P�j�07�m�$��{5;HJ�^"A`G
}O���������q>�����=$�#!�F�"�ހ�E��]	8�ptG��苂6Nش�	0��N���D=���|b0�
p$"l�q�C��ۙ��6H�$�$V�	�,Ј& ��5	#l?��\Bquu%�"�#
�&�w�;�������F�	(��)�z���^W"A4���E��3�q1�s@�'d1f:���b�L8��L9�4L��Ey��P�o�D8�T�4P?��qe@�I���,f�AA2��͙���qV��Y��r49>�EeBBiKt%���P�锑+�ۣ�R<q �6�~���/@�3�s�t��
#Ɏ+@�K=�"����p�49
5�h��'��E�3"Dd<F~`�Jz��*jM�ݎz* ��U�pZ��\L�=m��I#|�ΏH��D�z�3�DkI����Y��\�a'����	[�X�Dk��GP�St�-;�φ7�"��j�l���Hb�~$W��dV=x�/^��9��%��ˠ���6HUIc�p��%�R+�%��$��X����[vE��jT�#bC��l��5�
8�0�:1D��^P�'H�x�(����(BQ�8���!�	���Sk��w 7����Eǥz�I1H�y�ň���(�u�1G}��"�=��C���>��
a�)_��=a_N!vZ�	��R �%�r]2�Y �
ay �w��#������$��<���z��R�0B�@�I��j�%�����'���q�쨓ĥJ>_�ΐ��
��� _>�e�*+�"�A,SA��h�hf�@Q�ROpƍ�P���]DM:(��up��0Ծ\j��Z��ʞ�4!�Mѯ�$8��p��a���(��0 �-��d"�s	��-AS�`Ӵ�4$I~E�2S>��	za"��D���(�G���לEH�s�ˡ��#����o!�`�e���g跦ߔ"��F�2�.6C�E�b:gN�<�+�e�h�!�T�:#^F��@�8%��ہ�"�(.B$z�]*_3�߈��o�|L�m��U�j�k6p�hU2'��,Jof}���1�\Ä$�d�e'dz֨�kVZ�K�z��n�
�ʹ�gG�W�I@	�b{^a*h����27p�8vRۤZ�~L1*@��Eq�����f�d��p+zH�n�V��y�K�!CZ-�Y�"}�bX\*z�&E�A�%�����P�z},�`�#�O��p�p�e� ��D}5!օr�WF�T&-k�����m5	[�Wk&2)�n$�y���BE�pclA[�0�C��yP�ӭ��Ԧ�F�;�K�v(i��t�P�`����[���K[dk����L��
���*
!jb&Z$l|~2RrX�,ઢ�u\\�
�%?��l��*��%�W�Br�x�[��H��9�3�
�9�m��Z��S51�=d:L%��.�l@RI�]�{Q�Ok-Z��$Bh���$I����͂��F�ڈx�>d4�0�"$�&���W`�d�-s�Œ�F#,��ӨK�H1�6^�E�ň%�E1�YUT�9h`�
�,]]�r��P�
m���8�*�DA���F�8��j�B����vq�lN���ހ)�Γa��� f�3Py�Z���:
�L�яd5ȝ�� (�$Q��-$�n��@�]�
;�bv_�D��Ռ�)���WUh/�q���L���ͬ���yV��a>�[c*"a($�?A6�G�v(R�Y��I��rHȴE٧p4��	��9��������B��]
�B�f*=D�Z�5--��	��Ћ !�A����H��=NG�:���S�3R3���tkk�5��������Ғ�MwZ�~����*��R4���T�~bˬ�����APK�L.D�})�1i:�6Ȗ	|֫��)8�ē ���
�T�>�����űv\�ѹ%sk<�����K4
~Dȋ"��4�#�bu�"��<D��
;��RK"p�����LR[(r ��)��6��x��֍�{��t[�����-����9�a4������@�]W��;&T	�`�n$P1(�H�P�_��s�K��2�3J4�q�8�~� U4�SŜR�ۀu���CCAZ�:dd;��*	���f�"��D	�Af�@e��}�:��dMԈ��E��8b�6"��t7��#	<Ƨ��8����*�(��;�+�������������jH����ܯ�����f,�B����(�A�	kHB0�W�?`"A��]Z0L��v�x�;(ѩ*I~�L�)�QH�����:�A�pH)�A�u��
F��4l������*�H^�1.�p
$ 0���Y	��r�FHَ��u��f-Q�L�E�IJ8|׀&�	�T4��#��P�K��Q--Jz2��(!��Yۡ&ci�$ͫ��B * ���/�qO0*��֠++:�1qH�22#�D�m�D�*�tu�A+H����:��e�\�
G��U5���M�aQ�W�o�B�f+Be�������Z�v�[*>��Fc`#���X�@
�5�5��U�F��q/)ƭ�6\�V��c!X���r�_v�����qr�".��^QJ#u���l�e��@���%Et|+��d���� Ы����؊(�U;��|h�ь\���P�i�bH��P%Oռ��.�k��0)�Hql|���QI(�+2z�U�R2yJ ��u�FB4�2�R��i|6�4S=�0a��;�;>��HE	5�����hr\V����Q`t�p,�|3�D��s
P��#xT��4��nS9�Wz6�u�Bޖm��6���(Q��
	2~����L%;*,�>�F܅~y4�S�܀([�DP����D3��V�4�4���aS �(�At� w�r�𦎡()*VY�jl��rC�A]E���F	H���8�
��E��VUx[�T��K@�pj���N�~�p;��}d(R"H�����h�ffȥ��<�c=]_��aaEP����%�ɵ{q�I�Qh�KDFG>9ŋ�5�4��A�r�rv8ψ�$�BY�:h�-Hje?�ʇ�88�����ݫw��T�ԋ^փ�������K��h�U�>�h@��-`�8F�Ѿ�W�-Y񓻣��X��Ї�E&ġr�9����Fw�fSa��k`�Qv#�һ�,�X�Et�������QT<��%� ���ŇP&��*?=_�Q�ʏ��Ϋ�AQ�Aa��Jg�c�ā��ܾZ�4�T��k��f��GV>� ���F�@
H'�p�@��~��Z4���.���"�%k1S�äc/����b��p�a�k��)�+��S���v�7Z����8>�5�*���WLxY�¯�n�K��H�1�b�0Z�;��	�0^��{����^��ɠ,�Nu��#��Y6@�Xi�IqX���dz'�D
C�![%PUȃ�D��ZFf�`[��H�c�,��/G���g�9пN̨{I#���406���T�E�"����h��d;����3=��Fk�(��oTd>Jb{�6qZ� n����TN��1�AD{c	6�N���qU:#�$HFL�/BAV7�������L1��
�e�5�XXn���op�2u@ӟ�,����I՟h�wI�P$��x���ix��s�;=(b�}r���K�B����G�%|ՃĻn�0�A�Y6\�C��
bz��~V�o4����{�gB w�4"�h*m�RL��h�ʵJ9��a0����i1���y �{��l[-	�i��``�9���s`�$�]����i���-iS�4��0<@���J���V�@o�T�<�o��E���(�Jk-L�����D��8#��7B�éш3�AQ��L��� �A�w4#�ݘ���1U�+��"#��ʸ�-MAUjx�h�N9�B�5g���A@�v#�䡤|�����Ĝ��U†(������Q�W�=���g�Bb�j��gU��q[��k��&�40�vu��
~�hՖ�(
a�X��z�cL�T4ni��m��Q#��
��49��4oܙ�TJK/��
�:q.�bT�c.zP���"�d�e�(�S2��L+'C�-Zmd ��/���S�8�5��+%9[7/j;[��(^���z@��N��WH��%�g�Mc�YƋ3�ei���(&�W(���i��d3H<1&lc^B���(�;��$��(��U��*�!lb_��W�R�����J��V�n��(�h�{�:��L�d���:�q"�M�b	{^�}��R�c#�̢x�S�*�)*�’t閈�5ȼ����?@�H�k5,m 7����x4�c� ��J$�Cl�+�3��`�aU �pH.���5/�.!C�L�Q|�j�Rh�ZL2�qy�Ea
vr����GOD*%�^2����O�&C�QF�
0�>##�������hE~�%_����ͬ�q��"H<D��Dx���,T  rLA��zCKP���m��D
�0�f�Aۭ��$_f�Te 3����=w������� ��
aU@M8pu
1}	�&�Q�+����q%���Jr�4�T
�LB"�;E�ƹ�D��.J�kͫ�ț�������v<�	�9)�*4!���XHgq��R�dAHrH�+�2�
��P��j�s�l���S�2�ҙ2�c4�h��
0�L�0

Ra�
<J� �ْ�b�t�����Z�h���wѻe3�U뱪#�0U�cWm��3�zcX�zYЏ��J��j.^t̒Ms0b�}
1f�h*����,dXТ�6����E�R�H��_W�cTyŸrk��1��������[�#=���?~��\a�!TT/s(��nkF��)�)�1���))Y˥�kb�js�x�68�4��Q�@�-�Z��Bhp���_̥�q�6^�J��A�k('�G�cC��\���Ժ��'����|m�o���b��3g��--!4�SAu@�@��h�0��M�b�1
���n�'�_VInX4�3˱
n��67��┵w u���qR��&
�]��p�L��*턣�������.��T��@�>�!B��b0(�a��j�	(�(�I�e��FH�$��.�昘YM��l�r�VAW���7=��4 �%�p�A�����#��2ڡ�=I�7�-�k�f���a��)6���5{��Gw�:3��&g����
�|�nJs��ql�e��r�)
!M�
E@��@�f,�ȫ�!�fZh�(�
w@E3�5����Rb�4����Y'�r�H���@��`6Q��J5(٨l��6I��kѬ����X���=�
C�sK�
��<|�g��u}��B*�󵩔�����E1�V

��i�p��yaUB����;�' ;�]���B��$.$���2�xr�C�%-�ىA��Ф+�h�RA+^I�h&w����ء�A��	Ϭ�*E��A	�;U�e��~��ס��aK����#@X�l��S�t_[�h��N�l�wC#0�p:E�Kb=%�����!ԩ�$�Dd�i|�����:��"���Р��$�!	
���|j�
�Yg�R���K�U���2�-����[FfFF�f�_f����#�ᩇ�2��K�Q�e��bȍYa��Ⱦ:A	9s��W���T
��lZ�2E��i%����x6sͤ|����:t�$|�B�)�F��|~�]#>�����8���u���LD��h|��|�עA��*��"с⦠
�0!��!G����K�O~�0HЈ��<G[���&
 ��)�MB0y-Z6d,R��ą�
�PY=�L��e9��("�X�4]�|,Jb�F4�S�\%`uRڄI�Ē�cZT=,��d'�!+�D�3]�12��L*j�:�����o���#���&O�ȍ�S�#Xj+�]@rUO��h�[q2ZU��ǜ��(��P\4ICK�a�z�F§h�$<p�_�!wV�'t�/�����lp�-�4G�5������5�8�+��0�����"���(!�e�#4dŸ��KU�k�B�|Q��j�Y�� iE�����3����O�_U��
4*��D+��!?|�j?�~砅6���'֢a��d��S~���v���M�F����Iku�51�D|��^Ma�z5�}�U��O�aˍ@�-7%��>m
�J>�^gS�O�0-�]D�?a@g

0&�A�7OGf��'Β��؀���o�
�!�}���i���I���f�	yc�U�0��i�W�|~�	ꌨsiH������b��	:��E�Jf�gz�ѻ@��X�á�����I�f�IM������j���HX[J�h{�,����`�lei��@�f�-�2JxS�Xd��0�e�a�O��~*�X��_-���;X5)4i�NXK=�#�)�R��L���*�e��
�j��^p���a�%W7�ƈ�Ш��HtM�*�L~m�������Gz�K���ZQ�l�Ð�@/�f2�0K@#&PlqF�!`�=�F���0dC�_�ܵ�Kg�45�
��Hw25�&3"�?^�&��|w@�0�#n7&*:&s�A5���$X���S���,�z�c�8��3�/�4���{T�t�:R��r`��&tP�L#e/h��$i�
��3��4a3��dN��A����B���=�*+���U�!U���UV�ti�3	�@�S����'�5�0�W
c���rY����۪ˈ��Ȑ'�
�����I" ��$	���F����9 "A�I�`���#�`1?���!��a�tk��`	��R>M��c����[0��Ч	V'��_�����4�'292î^>�C��̙&28��'
?DE��Y�i]��t�{ȝ����KNV�eJ.ҎaT� �Z�C�I�
���Zig%X\�( ʁj4���̢�)����?���[���wŀ���T��'5U=��Cح���a�B7+�V3o��!F������Y�2���8(*��T�<~k1Jc���~��gbPa��W�q�;��:�e��L%Q����]���-hؿ��a�S]�A���J�	-_X�$,�0�`�*�6��@`�D����ݦ����H��9�)�����)n�|EM&�j)�ɨ;��DuJV�JӰx�(��
*
,\XE#�:tE(~_��ڣ(�jD^H&O-]�V*��T/��ܘn�D�z��L���zEE[���쇕{�2�a�X�D(Vu	��웬w���3 �^TGuH���h�4��d�Q�.Ek�K�����:\
Y,�:,���܀�"��u2}���+Z� ϸ&��ê�EkcE>� 4E���_��F��Ex1�qPFZf2H3)-�ȗ���4l����D!D�!u&���Rr
��0���F�o�!�_�K�x[8�:�P��aU�I$�]a�M��#�B�''f��#6����Y�>
3g5���_;]�/�-U�CVnr�3sS#J�Q7z��Ƃ%#���._��fk�0ґЋ%'�&^��_5a+^��R����|��ȷ_HO�HOOf�U4��;�ɽ:�2�0�8$z���j���ʆ�f�D�x�}�,���/ژA]/5�P��V�)WH����b�b�@��`���4�6�Y��Ӥ�u��-$q�"A���v(^+Z��_]c
	2Ļ��w�hid��||�vvf�w3)K���Q���&��b4����1��'Δ}�aE�N��j3D��L��4�T �4���%/�jq�0W�U�YtmzQl���UI�'�~5�W��a>��@���O�U�5O 1UE&N��ҘI&�
q����3�/�)v��H^����1��%xSQ
�C�E�oj�����mҒ@��3TC�0l��T��a�踮�`�u%R����ތ��T�* K&&��.\���p�C�?̍�c�ъy�Q80T���[I,(,a�I
t�R������{H�lR�k8{����m�6Q�p�;cB6���Oшl0��J*3dd�I
`
 lk��M�1���U/C��%�8K�`Y�̫0؊LLgE��&��ߋ�x�B(�ȼޑ�2�Up"�m�zp�ҍj�2�&qtZ"�07Ȟk4�M�����8BSn7�V�D���%,��0zr�o�Z�k���!23B�#r&���!��6�sX0���;�C*��1�
ppg��Lp+Io�T��GM��ӆG?��7f'��j�2��m��@�1�}zIF���#)��:Bg%)$����8z/��&a,�k�0V
A%����2�G"̻�tÎ���E��ػu��u�k��V@�1��L��7F�Ҟ�bhR�fdR��D�7���IR�k�M���
��'�ل��%��(L�<Ia��F���=�"��0*�բ%�7�v�iP��m�[�$���@cP?���n��E ��6��,� ::�I�)Bi�)K�?��Am��+u�DM�	��J|�i�%c~�P��3�B�Z)�;��^i��E�2KTf���Hip�D��y
0Nt�y"h��J��^4�`�<4���Zp���O2�TU@
{��b�	����}��z�8}
�t��cQ����a�1�C(�Y���p�V^/;
c�B��%��P@˻�,����e�Z��#@��o�W����Rߑ�H�R�,�^ɠE�g�t=M��e�"6�Y�ELQ�.�X�� �;�/�2����3�n�ex�	���`��)����LX�z3�#��Xp�0TbT �A�@�
��I
p�BLN���3�|1��Q��E�Z������,j�
��&:w E�ò�q�Y����8�Q�O�z��EPz�����������q���,]#��Q*!M�B,�W���"e
,q�t�pG%@�����
a'��Ş����#,����DD��H�ʗ4֏�0Y,`\5"9�Ĉfx�1�e���:�J���ph�l�z��ZԢ_t�:�t�@gF@�i8RO;?�@�a��n��Vh5b.fGR�bQ��8C��BN��]� ��p@���6���GB�����j*�8%�L�R�j�V���G�^��Ή�_0	\B+��fL�I��w��rTYS��by�p�\���SU�巜�@�_{[���e9,_��h�\.x�q�W�q��y�o�E�R*��H�F(2��r u�IK'�6k���.�E�x(�bb�K5g�x;J�6�zX�r��U8�@�B�
�:Iu�ת~G�����QC�fh�ǽ��[�'Ϲ���7���Ȉ���0 ���㧷�u���6A��X)�7�j2a8�`����Df�����;T����LQ�p{>�.#�e/70i%��D�����"���
YA�?�U�×��d�fȆw��0��Q�u)�)�mヒ�^���B�$���<EH�6E�%%�f�$�3ن��0���MUSX�7vQ 
=j�R����u~4����?���5�B�
����Ͱ,��=�1ъ�h�&�a�����!�db9#�7�O�T�n�,y��m���ַq����g_�c�70(|
�!���5��`��bҹ�/��>�gs���T�->uvdݹ�P����wg
�F�-D-X!1gj����D6#}�05��j�T�������A�F-��&y��Q����*o��8���Cc�fS'�	֐�;u��A'�BX� ;b�+[�N�[��*植�I
��x���}
����7���ơw��o���b44`�[����F��ۭ�ڛI��=�.A�D�$s�&OJU�
MBJ��bN��K6�Z��)s�� ��BA�B����iօrh���)�)�$��JVs�d��^NJ��m�%����jK*鬓S��؅a�#�Ҏ���^@k{���D�Q�L����Y�_`��Yab}��U�)��d�<(u�"Ҩ�4DM�h�5M}l��_Zݮ$;����_R�W5!Sx�=�n󰤜�F�ZgT�(�<9͜lÛ$`T�h�|CC*��\V�hRj��#$��P�T��̍�n!���}N�}ٷ�|���d�ezm�C��֔}�ՁJ��jKq-T�h9̱�����ѽ�B4P/�nc��l��\��٢皛����̝M��+|ZBďH�1��߰�w�O�g����'���jc�4�(�k渇���]�N�!��xW�{`{^R���)��{+�����Es�	��{���r)�S�>�1���u7�d(���?��X4�^-�PL���W����+���NJ��;����U�^2�PQY�hff���&
���51/Ĝ��p�p�9��s�*''�M�@�(k�`-�8kslD��p:s�:�h��L�Cم�F�h�JFH䨱C�)jAF�B�r�������b�/�Lˠ`�FV��,C^�_0�-{ڢ`�B�ى*�/��u*�B�����ȣ
��ҷq6�f���V��:��Gw��|ڱ`?VkX�G��,�O�o��),D�n�@�:F�R�ڹB���`�Qc��y[�`+�O�q��29���>�H���:� 	1�n*es*
����m:V��!#���&?@Ml���Je[e��ImC%�ZGϬQ&�Tl�l8r����
C��߃����S�\�ɘ��s`s���?ܷ�n��fVZVl�g<�C��=~(�+*#Dev�$ixtS����
Hg���MDE�,M/��pի��
q�r,�1��E�tԪDX��d�'��[Ht�YD%���a�K=��s�ћ�g0P>K�b^�$t���D2K7��,�����J���TG�O�u눐2?~�!�*��m,�^+I�/�=�	�x���>���Q)��J�_Ÿj`E
�J���I��ñ$LC��Z�S4�z�I$X��"��$	S��+�X��X:P,��d{��!�a8[��1[@��В�X*�~�Z��ދI?Xi����L��,,V����X7�U�f7l(�d�j�����C�죁Uה٫�+
��£�Z�1͖筢C�G��O��{��7f�n�ieKY�^`!����Ķ�r+���߭�����P=ĸ,^�D�'�vvܟ1U��
]��z�\Ȉ�jA�x�3�;9V�����;�Xur,�	x����x�Ǹa��8�y-
�-�S�-3h�6,����=h�J(f�j���΋q'��K��;�XlP%U�:�����	(1#���э�¶����|
�l���H,7[ ��e�����y�J�[h�+�����
��Y�o����VV��hH	e�N�FZ�1y*e�
�jB�������0�w�t��eY��a�)���o�Q������!�&���+��
O++���2Z�x3+�#��H!�n����XbI���}�J4ժ�%^����7��㲴x���4�t8�T���J��������ε�X��'�=q��%	-���a�4���:���T�L�tke!Z$�.�C��lƪ�ge����e1��b��fX��~�,�\�"$�6�f1`\�'��sDVǿV���:���J��D��a�X!A������N��V�B��^��x���ji��*��*��j�w�&8�s�7D@�u�u[Xd�,����ǛISCng�ٽ�b��Y�t[�@��su���B��X�!�"��s�ԮUSo��ޯ�gh)�\R�I�Q2,�D�w�i�Cg�xτ�y0% $E@��<���u`�F���xb��\(c��F�ߦO:��(N���y��=�F��~�ʥ�etƪ�<����"a�A��J��s�0�imX��fm(��dV9��	�\�
�r�ح��8���geE?��e#���߬ȅEp�^,À}4���^�JP*���e5[�9�J����s��o,!��`�S���W���9t$��P��""TJ��Sb�x���"E�Ҋ��Rm\,�%���ޢJ��c�-(�,�v�s�A���pi�V��K+v���4<�}I��}�W%v�#O�_�ԍ�ĉE=6�$�ҹ䥖�iꙪ%��4v�D�<FK���� j�����?�eש���r�]2̦F�(��p��
67f��E�JOV�0����ރP0b�k�U"PЩ
+�mmNw͢e��o�q�1��"�
�:���1�\��vI�Z/G��a��[[�lt9^����!rQA"C����4X��1N�HT5�L��^]F�V��Q��n-#�Xt�7�
��9WY�z��K�-"�أĥu�-�i��z�����d���^�hl�)�Ƀ[VG1�����oa���>�����8�KN8~��:��Ņ:��T�IE�h8�T_�P��E���߄��w�x��*� �K������%����$��������_���u��V��k��P��jn���K�<��J
0�eK�rP�?�mEK���-��K/jX�O�a� �~Kc@��s�\��	Gu��*JKl�\����w˒�ũ!g�81�7�	��S���2��S�[�z�+��-�/J�54Ӆ�3�Dn�Ю���K9�l�^IM�
�\�����QV(]5�Y�9k���{B���o��ʞ�c�H�[���/�%���b0\�y%t�	��D�2�?o�=4�`�	��.�I�u{X:���8���fb�v�m��l�J6DX5umG�h\'	�֗�K�
�``/����P�M.0�fߖ��GT��%����{��X��kw�����d"Z2�+�͒8"�a���lƚ1Qi-�D�hW#5z�D�7�i%���������<Leh8/i��㨃-76�xQ�
���57l��L��:Z��	l-����)���fhk,%��?�r�-u@e�tCSj�ȱ��.� &�C�Ң�lLP�}w�u�à
���`�T\�/G��9�qdm��R���d⏃��p���^`f�x�r39��R5tڨ��]N� \�c�x����ćv;�l�F�����`&��W�#��z�S����F�<GAI�u`~I���3��a�3B��Y�ꍗ�-t����R�/�Ո��W��"�C.��������1�F����͒�RaR�����JʜD��$�~���+��G6��(� [R�;��I,�Θ',BY|�tbp�$/�9g&1afʔd~С����[���_�c��T�'ih����M��S������9�e%V�T~���ڈXJ��|_�k���q�6V*��Kx������V�.��l(�\?��#��@(!F�7t{�Fp|f�+A��4�/�㬓�L[)��ͱoFMSV�pSA����@���)�U����.�@����ϊX��S�E$���SK�G����2Y`�PS�k�K'�7���Q����i�ӈaU��|
~2��䐐r�`��������Ҟc�N-4N�a#:�� ��ߗ�/�pS),�o�`t��E 
�%�p�Eƛ`5"7E�TH+QM5iZK]8�!���8��-����h;1{������"=#]�4�7�x=����^�I���z@?�҅�û�:�h#�L��Կ���/��X��@TAM�|�"��@��M�G��s�47��_��-I�t�"����o<�;̆o�mUoV4>�+�G#xT	Q��3�C��D$ń)+��I�骷=Mw��N�{j��a-D�j�s�J͟��ͳ�[T-&�U�ڳϼ���̩\;�>�TtUI'�����"�%���\�7*�P$N��j��Bx@��k�8��j+3�pj�-Ư
���J�
ѣ2��qbB������z����iH�{w�<j�X�����
b�%Od���J�+v���b��QY8�&Kn�����\�X��~zPjK*rrƉr�
6G��Z}8v����CB����^m�A��uI^��En{�t7�+.IE�c���̺��3S*EG3v�uv1�D�W�D_3�/���9a�Nq0�
�VlL�;��;ܥϷ��E)��`"ʎX�J���~ɶ�H<SK>`� �P�ahԡ�
啡��єUԣz b���ʥ�k�~MZ1m���*xp�~r[<ZD^(Ksj�х�OTU���|3v��$/
��bTy,B�����`a]~�ƒ�G�.�xl�G����<uc"ퟮ�V(ڲ�	\��Z�GY~p�1���dW���z]X
��a�I7�j�VR��F����Њ���hkqĦ<m�jG�r-z�
6�H-�*��nbl����o��P&�fB��J"�%g��+�8v��"N,�blW؉Z���A�����6-B�O�KhH�@�9���*��+��!o��l�h��
�Ѡ��p��Q��C<K��R�m�Ml7�U/IA+���K؆��`Z�7�U�vS�hyc�󪻬_fb��bX%
��u���e�]؀���,���-0U
g܊q*w��|�ͤ�*f�g�*���ɼ���C��h������2M��'��s���!�#����śDb�'�ɇ�KOQ���.Qv�m�*��@����@Ƙ�K�vytg�P��������(�'��>H5��'s�N�>x�U�c���|*_"�g�ȫ���v�Zx�J�5���Ŋ�2+���fӍ�A�/Y5� �Kf��sQ�L�@�f���ii�S��w�~F��.������̺���Ux�9=��"�
�⎲j3�����"~�j	y<}�|Z�Y���oTNY��8m�P+��q캌�tQ����7W��	��0�YSc��0��ޛԾѸ!�%9�h�p�j;$��-�9���6|��)����:d�1��e1E��SEH��t��d�Y�Z��%�ĕ�VV���e�f2@K,s�y�d?��
��)rBH��#��Nq��d��lx��Fդ
}���̙SFZ�=�Ff�e5��L<�9{�-��J�;���@�M�΍I��f����u!����b�cj���@��J�74���V���"���.[`V,5�����B���F��)t���(�*�>j(��l؄�{��f1fz'�iJ�~9Z����1u s���O't�q��ń�,� th�O�v=��ܘk�zg�2�Za!�0�쁊�"|�N^�m�`�Nq��c��f#�6\�iQ��&VX[���)B:$�*�n�]�`!�&��D-�"�
�&
aFY�ލ>��@��j�H�V�/F�D]�Y*T�P��߄w33�G�V��J��miB����Q��KjH
JA���A��ɀy�1UuM�7�g��
�m}�j���Q���~��o�����a��_�����K��^tW��$h^4��z\$[�MƲ6v��ɏVf��������9 ;�gee�q���E��#�d��J��Z�:�O�Uo��_����	������y��F&������
�'��h~�k���z&<l.)�����K'K���7lKHJ
�g��ٳM�_q�i�/����{_��e��^��ՠ�=Z��~�c�+�
�q٠Ϗ|���ى�]�8��-��[�>+����N����:a�KE��?���^?�C�}��:�|y��n��|\��C��?T;ź~�?<�Pͳ_v�.���1��Px�,GMG�J�r��_�)�m6��>�:�k��F��pi�;|�`…+���g쬝vEГp@y����ƛ��/�Ql/,�c/J8���ۻt�}!���'�<>�4�|�>冄�;GN�}�}��[
v^��m�t���ܭ~;iي./�|���/x���/��yyyڥ���_Y��6W��y�W�7T��ߞ�y�c�nuI��
��X��?{����Ev�*�
�LX�~���m�����m�`��	�.�e@°�s�<p��=O���׮�y��Σe-ת��|<��z���e����ƒ�ڼKc-��q{����v�[��zA�E�<�����r��hK���_�[]�C+W�l3���Ƿ'�8or���O��lX�'2 8�����~��/>t�{�cz,�[�	ߘ��7鍱�N^pH|enß���Xx8�%)	`4���
Y��1sS�VO��f�[�+]��_��ޮ��s����l�n��+��GҾޚ����L|�O���ܹm�,ߎ��Xv���W>�}�#Gw�W��i��7�1���]W�,;�����nt�)>s{��l�v��|k�_b�ܹ��%˯���vͩ�.�6����w���|wS��o�����gI+�]��[�ӳr妯wxxj堾��4zȕl�s2��Ű��^���Ov?���١�}[�⥇o�tӦw�6�{�9�I��g=
8��K{�r��C�_�q���M��lX|�����"S˾zcH��W�)^|�e϶�Kw���ұ����pp�����<e����[[���?����{�̭��^/�\��{B���;'߼�T�m�
�>ps�1�㫑��U�>n�zs���.�s�u�]X{��pN�#�]3w�Cgl{i`�6yB׿���X���/�x���37Mu�t�'֜����y��0o��C�~�{��GZ��¦5'��� ?���[>|��M�ZW�Q���;�N�惻�\�c٦��G*Ҫ�(��-��;ݛ�V���?:��Ňn�w^~C�m��-��d~��t�G��7�t��yjw{�K�<�����?f��m��@���Y�?\攻y&D�~����;/��+����|�>���W��?xM�����ߝ~���g�ݿ��%��;Uu������7_:ug�+㟽�}���/Kݷ	���}��S��-�PP~���s�<�~r���f�:�;?ߴ0|ש��3�����=�K�ȈW�r�w�pu�͉֚{��9���`v�n�����2���͗td*���W#��rю�[5����{&��y?p��;R�Ͼ�;���}��tl�����pc�۶�����W�����샯�zp���,\v|����g۟s�Z�0�i�y��e�|jȼ�o�;����gR�z_��N�J>_���]sW��vڼ����U�
���:�h٠���g�β.�����OL��U�c�Ɇ'��ֿu|��-^�C�{�#/�Nv>��Ka��:�~췠����y��Yw:̡7fgg�ݲ~ۺu��o��x욅����ܴj����o�z��E�v��]|(���S7��3���7�9������wNZ|�c�ܷIW�J�O����u�����lp�߰�?Ϲ���={���t����;��';��7�8��_��3���iX3���Ч����;��.H�q�N�L�p ��N,<��sw�)Oٵ�˾�戳?�=�:���퀱w����+W�Yyӕ�ۿ��r�R��l_G2�\��gn()�P�י��?hZxr�ޡ�
W�;�c�K�����`q��Nt���M?��7�Ο�-�=���NL��ɼ‚=U}�8��̱�=�Oޞ=[��>5ꁇn����<�]�6������;��ڰ���ŝ�f~��л�m��S�]K�����c/L{���k<n�d�'��'R
ֽ5>/�n�#<��X���ne���Ș�r��O.�T�~`�<iHy�}�<kCA���?�r~���kwY�󻿗ox����ɰ��٫&���sɂ�m{�vo>R���Ш"�͗�4�s�U޾)#3��fҪ��>�v׍�mZ0����ߝ|�ԟ�M����ˡ#^�T�d����q,ؓ���7d-yf�3��㷟��M��^���WLYW�sW�˺_�j��o�ͱ�Ӆ�x���Hց��_��s{�A�:�9��e�[���^y�sic�+��_z���zɘ�{��m��˯�~y�D�
'��lG�8�p=��p�{=���N'��:�vyu�}ddZ�~%��0gO��=������C>�;�gp�C��L-�|��,���E��*����Ʀ�#'P���c+v��z\(73si#t�"] �.����Ow�h�S���G�K�پj����ʨ�>%7�ٲt�'��ӧ�\��ՙ�|Oڶ7~��瑃��:������s��(),<�B����5-α/|2���4���̃ӎw�9{����v�>rӤ�셫^<�s�yg�;=z_�����[�(����z�w�W��3���._v�/�?=��c��zJ�܇���j^q?��߽G�����Zb�y��sz���zѩ�ֿvyj�ɗ7�yqF��C��۹��}�����ՏC�:b;�S�7v|��֛�=2ѥ�{&.|,i�ډ��^z�?���u������}f���8$=5����uY:s?p���M=��t��%q�s�[~�ډ�>�8uJ���/���ߒt]F^�������oJ���=Eo�8�b���S>tp�ۏ.Zf{�w;�SXX��ʢW*s�,����'\�u��c3�<��r��+]�h�.=rQ���^u���-8��nY�O
�Y�⽂��~��w�_���ӔK9�f�-�>닯���YH\�E��<���l����=ްjJ�5S�k��vΈV�N��tǹSq���+�~�9�:��_�:���/OO�����M;��m��g>;�ر�Ӻ}u��{��.��򺄫K?q���.���,=~�Hi��N_�.�!�G�.�����?��=�2�9��N������ԟf�̼���;��>�E�;޵f�i�{��z/����ƅ��H�Yu���6�|U��]���'�Ǿ}���c�v�_5y��Y�}�ϻ?���p�/�~��?;u�h]�zG�9��L����>��]i�l�օ�<�f���]x�yJ��O�sö�����:�~��ˎ�f�?�ɟZeurv�ku���|�>�y�w�^hmI�cJ��|{�u�����Mx���'��������珬�y]�}O�r������p���UώcV8���Y����ϒ����)��5���&��wa�=L������t}������n�!�2�E�����[]�8',�����������?���w���}��Ԑ/R�jL
��u�ډ?�|n���9�݁^��o�֜W�y���7�%��'GHw����Ϋ��7�<xK����eY��nd��]9#5x���Nw~�u��W~�����3��Z4{O�c���8��O��ZU_c\��o[7`����~�j�/�p����#���w���m��y�eb��c�+}�v����L��M�1���wn�;��p�u�o�d��ﮟ��)���w�ml���3{��|`�K�ٝK�l�f��d��ot��_�e�J�G['5�S������f��w��;���]�����d��Lxb��l�yL����9�~��;N��=��-^���c��e��0\nE�o��AdI�M��,����.���m���{p�ɟTU&d��;��=E>��7��(-�h���S�??[wGp���k�l�UnY8�����t�G�v�M��i?��{�;�S׶�x�W
Z��ʇ���6���d�u��_����%�~xu�'�n.�۫�ʤ���o��,(�z��������_T����Gd�YZ����eFf��Q��>}�%?�����w鞏?8�q�}����sLB�{O���[v��]����7���N�3���]a�.M��>���M���4|s������y�}����MlR^�t�R���7M.7	'.�|�̦�k������ݗ����K��<��w�?�֐g�7���zӼ�X�0��aG^�2}�{i�ë.Z�l�P6�&�)}��˖�x�п�S�w/L��'�x���˷���$Ӳ;l.��^�Ư��e������T��mǷ�9t��'�{�v��i�i�[/�tn�eTe�>�9[���6���]����癢�e�t�u��A��`­�׎���2�7�6f����Wl�OM^���#��O4-�7�6�ݲ���g��L��՞Uˢ�
'>�"���'������nًó����������ؓ}f׭_޸/���_�^yWJ�Ժm�݆|:�a�]��o?�.WzrϠ�M@��7}W0x׿�}(O��pw���+�*c'O��4eؕ_��� �6ߝ3��c�ߒ�����>=��x�xSښ���v������z�YgZ��7�jէ��o��p��H�N���A�4w�!�+ۧ՜<veW��Og��/,_��t�[ƭ~p�k��r|Vw஌�?\�����MI۳a����q��惢;���6��<-���p���\#O^�¦���r�~F�*���mu{��g6'\�<�̀�>?��͸�w�����m�'~aػ�_j���OH]{���~5�囟������d���7��⚓i�*�����'w���:�yd�7���!�?i�tū[��y�"�T���1�{��2�
�N�����x�ۓ��ysr�S���z}��{�W߄{�|��/9��
wU<���w�#�r��۰������s�G6=�T����ח�?x��ǯ����^{��kӶ��t�[��|���w=���i��{�c���/p*Wv{ �����?�ͅo	�͜M��<Ӻx}����;��w¾��v�sz�C�ۡ��k�y��=����nY��]��6�W[����}5Ol�,�|���/�u�y��ݐp�K��ξ�{��,M���dz��ȏ/��_д�h0y~�		�n_ͧ�?OV�~}���?��͈�[?�<>�j�5??���7�]��M��y���{�^�p��F,���_w��.[�˵�O�޵7���M{��9y,�G��j�b��O,z�U�����^�*��ӡ���:��^G{v�<�=�E%���}���˲�`rd��wȮ;�}���WM��7�S��W��0j��%�y��N�S�����#�K8y�1ϡ�&ڷ�'_9��zn�{/Mٻ��U�}�������vuyk̴/^�ѹ]eSֳg�|p����[7~�ͼ����?|��t���}�'��o����7蝿�e끻�W���'r����?�H����?�C/X������j�j�G�3�ۜ�T�կ�_{Wf^����K�\�tuh�/����lg=�Q����K�ѻTt�c1y캄�;o�~�w��ҫ�''�p��3�W��˷�wn�r�:�n�[�Z��ǖ��ʢ{Gu}_�ܴKR[ݽ�����U��	�f�_���c[3ξ�tM��.�+n�i�E��&��+ܪ�hx��O?��Gg���ªϚ��[��N���<ȶ�u��������[��������rݼ
s��0��7�`΀+�����s&Nz����;ڂ���;;,[�pMڵ��Y����7_=����o}^غ�UsU����J��qri��g���_N�P�v訯~�s�_w\ܶ�we¢��nZ�I�Zr4!X1$��m�?�ú��+�-���׿u~����^�Zq�O�g}�z��Ӕ�C����3�Z�/��Q9�ˇ�Z*nt���.�p�+ξ�������)��W�m�'�,|qќ{��
�Ռ�O]e�kh����rÁ�7m}o����~J����vV4��m���ˋ�:�sc���ܹ��3���;��Ԝ)�ЭIp��0�5��3������/����k�6:���At��+w>�_|��]�=�6��: ��zwa���n��C��S�Y`�.��sI%��@E�$i����g?��7�3w�s�9w��P=J�\1��>�H�~	�$�}5��8%��G��>�n�C�sϠ�
X�Bp�'�Tφv	�rN(���Uǎ�
��QTS����WK�r/�d�����b���p�� q���;���f`��/��}���k~���.v�c^+Ǧ��Q!�z)��w�(�Ϊ	T���_��/��F+�j�L�jTq�}��j.S'4��o�#����+�=����2/�_���d?z�2�
�"��
�J���{u����NiK��״_� Y�TҎ3�N����$nY���ӵ#���~�|=~�0rN���h��7�kk����¶��W�k��W����k��(e��c���k�=e;鼿_3ATfw�	(>ō"���kVZ�?x�Z�3��n��偷�lI_����^R�]�U�%�-��߹����0;A��wCZ���VeKr�7�,��𺝡��4^.��L3Jn�^Y�q�D|HѰ�8?��/��O��`F}���"w����ij�9]�c�+C@���M��x{�\1)�/y,��*�	�X���>(��Ϩ�����j�!h��S�M���#!��<7u�3���3����k�ƺ���Dw��ҾH���
���Q퀦pX]�4������⍌��޾���f�!�&6�9,y�7NZ�v�,X̖.�r$�y����Jj���-�WA�|��noK���K�)�J���HQ:���[]ʟ�)@��S?���/��!���.�n�ʊ6������Bк�`.�`4Օ�TaJ���;H�:�9v�y�^=S��-�D`�K��<�\y���Qn�]}�7\�k�N�t��CYlM�NuP���u��[�;_�Աn�3���Q1����Z�$��3���}�a�Mˍ/��y���O]�E���)�$��>%z�_;�A6���T�ݕbx���`EO����j�4Ms ���U-gv���;��R��9����Di��p7��t�D�[��^Z���8�������DD㇣+���6V�t`�r�^}S�ӏ挩�_</�b��Z��{?U�}��}�T�Hƛg;�b��4��~C+A�UD�4�uC_��z�,1�77ʾ[^s�V�EX���7�8[V���tG�fYz��a�a˕�DP��1wJ���me�Մ�m��8������v3�37���ǣ&�XST�W�H7�E�>�ث{UzZv�@��ޮ����8	r ��^y�O5~p��V~�،�|;��Q��ca�#D}�a�(6�ڣ;]�*x�Xm<�m��8J��qW��(��Mnv�ޙ {X T���@Go{���e`{��=ԴP����i}Eˌ4����3��!�=�ON@���؋䌍�$d�r�d�ե�9�/�6�B=C�X��jMl��Mb{r�K�	�>c���`J抶̴R�OO��N
�D>Ǿ	��Oa ���n�	�6�?��+�3�h��'+\�8)�B�����"�w����]�}�"���˫Oź��mŷ��(Ӎr���|��Au���6�>.(�aM�eo���a���8����\�rj���x���'~e��i���"UT�*�5�=ע�lK�~�_j���3�Y��zNI���2q���W!-�$U��S�%0�qI�Ԅs\�gŚke���:�2iz���*��4�5���p�O���|���N��6+�6/�97��9¡C[x��=�`�[�y"�g�l%u��ٔ��}([٢�7�:"��-�nT��xw'%4�&�H?,�H���W;��J*Y��4�,�)��ʬ{>􎔵�$|�|2�S�pO��{������O�=}��֗�Ƴ
A��;z_�Ơ�2$�zK�V���-ސ
z�7�D��U5�x�iJ$�w-u���Fl�2��Q�r��]����2��N])�1/���t��ApW7�wyT,F�`����Q�i�Wr(s����m>0���Hԑr'm�>XA�˚�����$y�����꺡X���)nZ
�}��tzv�jg���{},,��D�N��2�]7�`n8��pwD��V���o8J-z�C=���S�P9�nL����JYEZ�)qɪ0)��ږ��|���g׮�}�t~N_��._J�Ots�7�/D��.*�)���Ƈ�Ҽ��
oS����X���Φ*Hn׈�2�r �K�kh�	U�:p����u���"���fw�)�a����\,1���_�$��7������&t�$���@ӝ��еJ9a�#@���S�f�P�ba����zS��\��؟�{B
��'i�1&TvG�w�(������Ń��]�ِc��#��Q�!�g��MB���W���DQ,�v��8�^q�ۦ�g���b�6���f�ާ��9{T�7�+h>��i5�
'g73�F��s�N�����+!&��
~}����1�
!�Z���P����Q�V��T@����X.wN�&�+�ZDXW��]�����c3�#��>���y��I������"��[�q��F�~��f�hu%���wl�l����ׇ�����U�f��4N���Dœ�^a����K��Ch��bp.�r�t��Y�H+7���^w6�h�%��RJ�{u�$S�<l��L�hj�I��_B�*���?t�s��!�z��
؄}O�ufۼ�9��s��j���&���b#�Ju*�
.ѱ���M�-�lq�t��kngT�Z��j&+��%測,�ϗ֌A�;���hG�g]��'}4��ԃ G�vʒ).�mԨb��<�n])[
yX`����`����o�6���jv��g��ap����DKLK���Vk����c�@w�����`A=����~��aq���V�X��"ya���])X�
�&q-�_����C�Ni��O]�����T�4	�״f�)O_-rE[�F�'�s{�XKI���Ė�����F������mүpd�<%H��P�
c@��T�bv����އ�q���xI{�t������bIz�0ܗ���F�f���v�ē-�<F?��O�r@����Js���X�X��'���$��E�.{E�����7$��J8��R{{�j�e�7��hu�T轂T�S�YB�9�)���3�q�I�kH�i���Qmc<o���/����B.�[��9���RAŠ�듚	�
p� ��㾧�t��4�J����۞��j��r����l� 4�ŧ�Xk0ֱ�'��HP+'_\�
K� z�/��ن���P6�'a��n-ܰ��d׺J7q�]��Dm@�@�҅�>7�J?�� x��������܅J�C�bP�DM{�`6�G�l�w_R�L�m<~��5��{�q��|Ե�R����ke7܇}�w:*Hc|��eg���^2���U2i�6��4&�v�����]��~{R3֛6l���E���k����L�ɺ(�C��:�ҢōP���p"ׯ��qDJ\�,>�c���3��Sj!�@���GLw�������U��_�%0�~�|�$R#�9vu�ON4^q5���h4��w��>�A`�d�w!���MR�d}p}J٦�x�uA�;�WsX�}���z_w�}q�;m�\'��pr|��*��2��v/�TQ_4(��@��S4u�z��\R��qR�
,�8�H́,T>�l��S�3
{����c����	0UQ��>�zVNu�� Ә�H�Z�:ͲesV��)@�!-e)�o�
��)T�}?����\��ˋR�3�>�ۤ����~����Wt��.�{:�
��tܭDM)�Ə� 3;©�XO(�t!K�p���A��EO��I��ͭ�8V/)s���ޱ�tj��
\N3�Yξy��7#֒�X,�>�*^<|�z�8���5aUd�����������;tfL[)�,I���ĕF6d�@E�����4��~#VE�O8i&��.���]��?D>���Я����$L�B�I.��
�O��{���fQ�2�!�z��<;X��7�G��ʨ���%��t�t��Qu���sȝb��;�I9��[���М�W�<�"%Pi
6/����/��h�)�+u��A�0\���
�ad�,X��z�j=s�:>ۮ�0���E�/�-��/2Ih����dK4cU9�ѹ��J�:�D�LV������FQ�t����'0��z�G�0��\���>(�;Y�T�Rc����3^��7zD�z=�qm����D"��5x�}��a�}Vv�&0{&�2n�`vó�2'\rs9�,Wk9��k^7�_��nn8_YU�����د�[�	���%��U:;���[���*
	ՑPX�,�T̡�"~6J�SA�E$��êsp�XƑ/
�eX�/`�$t���]X!���hĐ
��~���O�-$����L��AW
/�|��-�ͼ�;�ʫ_�������K��TH�[ɦ�!���
ϚP�<cb�ꇂ�v�҆�-��S�C��A�eY���Z2�Hq�@L=+4-9�pٶ���w
އ�lZ������-uL8!h���+��s��=���1�v�'<�)cM$�)=�r2�]�3�LV�G2�過��:��i5`�
F��D���I�7;�ћ<J_�QiGލr(Ye��
o^SN��H&� v=7�H����#�$�1=���"����~b>�
���7J�a1V�y?�4��!>�T�}A��2�ف�jn������7��ޖR�=Φ�^��=�Q����c%+��|��2�ao��k�Ep�����u+Ő��5S{)\�9�<	��k1�R�{p�n��fvN�"7m`%�p�R �V�A�Q�*x�p�qµ�s�s���t�l��M�tFioP=�L	�y�	�s������HzX��j�d>@��b򬢭оe�����C��H���'��S�4�mۖ�V��,�扱�sp�OPw�HZ���W�Il�zOp�J:)�b�Z�SP!\����\\�ЛJ �N�	=�ɞ[��|�?E˦��UG���f�=��P%�3�3���P�.*���������(���|�(�J՝�p��:�A^�_����Y���n��b��4�wy���8'{����^m����ـ���"k��6oK�pO_�,(����/&�� �5�5ks��
�'N�X
8~��Ђ��Y+�uaxr��j���-�����`��QU}���ݨ9�U�&�w�o����h���f87�_�7c�K}�BT��w�*���.��G�@����m<�4\�5)�[
���T�煈�9aO�hs����‰�)W�/��It��A	�\>nDQ�Ih��5�'�1vfQk�Y
�H)��i�Yt�c�0��Nɮ��T/��T�։F���P��n�V�ѱ[��>�^��&R4'p6h���0�oң=�נ���R�(�
��G�mMţ�;jJcu�%�*���}��
,'�|	����
$�#\ퟙ���C�\x���d'5�]zczN/����U������G�t��+�\��z�:�g�4��%f嬖 L~�Do�CK~�K2`gP���������
�f��B���	Lz=x�u���:J��6���=Ǣ��hN{ƨ's��z���U)�^��j�ێM)���^�k(L�������3V�R�>���1�ϓ �.F|�ls����B.�zҁ�%����$ߨ"�n������,7"�Sd�~�M8�lu�KMi#�ƒ��n	�o���:d�2�+Y�2b��
j�ͯ~)�lCmٰJoN�Ւ���۽<@�
���2Q=�|�(�����=���-J�פ�6"Q����;�!G�B	�� wf����;oH;ޘ�ύ�C�?ِk�(�3uD#﫤-x�a,ǐX�żu2���4��A�2��}�#��<��(�xEn�D.�3O._�+!�Y������#��}n�9���<�^��\J�ؐ�{ס�<n�� �ok9�sИ���#t|��pfnMS�8�8(�w��Y�Y�������B[����?���;����U-H�bW_�4J�C�9K=��&	C��'r�{���a�k�my��������I�z7H�F�ѱ�r�!Z7�i�AI�O�~]��
K2�"p�Hl!�uJ~M�
K�p��J��o{�8W�y8.q���!�#;G�cq%���9�Ӫ��<��H����]܁�"^��{�?p�;�\�F��`M>�j�l�
ǫ�Kʍ�z;��#�H�xL�r�~$6�Ⱥ�j�ͻC=�7�;��d4�xCͰ�����
%�$H��� �rY��8[����B�L�|<}��d��D����,��9�"l;9���Q��9�����3Mj��񊷿�<�~�7����2.���Mpif!��',հ�
N	�|t�>d���L�EƸ酝T�b&��_�6�|ZY	�&y+�8�ԧ$�}�-[~��a#���S��7_�����E�0���Uh֨��@ǂ<����X����-[�oI�h%^�.:,���G�C���QRf��{(�ʰH����P�S��;=�q2��e��%�<)���P�rl�J��������z��T@E��-*��o���ڪ�\2�r�^�p�L֖�.� ��c9?#�c�]���ν�J�;���e��/�m�G$�P�#�$N���˝�G��0s�s��J
�?�u1znS-w���>�a�R�u��/u��1�Шb���<�;1�s��	=���t�]��
��Ak�0����ƒ��������ꁎ�_��,��d�zJ �l�r����_�)N];V��>�+ї��m}��
��R��oH���71���cn��b!��b���&�/����ʆ�9<�Z%_��
�/��/�9�I�e��~���>7<��rdV�ԑ���svJ/l	|O�f[�kܣE�*noo�Wb��`!E���L�$9E�H��'[�`�@	�_���gě��i\��L�o��H̴���*<v�����~�����m�Ta|A>�2�FaQ������Qqf�����6x�#=��H���!�X�:����V����^/��9���m6�ɷx�<-*��Gؤ/jg씐[ʅ�Ӕ�S5��m�-R������g�3�2G����=�6d����"j^�БR�05��F?1����n�W��p��<Uv�g��t�Q�lC���8�V��P1����w"׿��u�
�gE`C,1�e��ˆT��W�����,�k2E��I�)yibI��xmA�0w,3�K���86m�8����֎d�h���\v4oKP!c�B�q�>ٻ���Q��D;	�L?$I���u�{�x���K���0,V���XP3��a7k�Kp���У��Nj55�@0�>�J"n:�йw�J��J:����
�j̡�mp�f��Ր��NwF��A3"Y���ό�O��ֽ��AA���1��}��u��e`��>��~��b����ѵ��� I�K�C�t�Zl�7��
ɭ�e�U��G?�a�@���e7�m��pxYL���Tr�*�[GZm�)P<҃�<��6���a�D/:�p���u�F\4�E�����`��u\Z������q�x%v�a,7�J~n�_z��8ň�Y�e����oI�`YP�����{�	��S>�eO���t�Т��y�*�1��4Q�X��_ّ{��e�g��2�k�*`6��,�@��֥�$��Q�����7?"�)�u�W�}X����1����1

)�x���/��U��:���R�+"M��-	�Rx�@�GϿ��eQP�8�ܸP��@�}6�G�y+�*r=9k��Ջ��4���xEE�H�3������#Sv��ٔ?����1���
�Z�@\S
�!�X�I�E��P��7:��r���x[^��-�՘�E�LqO��F�?�(,F�ʎ�{CŔT�6�d�1r��埽��@r�Ƥ�ԝ�_��+M�8ތ������Om-)e,�JH�H�8�"VL4B
�J�[3�o*T��b7��,���)�e,O�m�%�n���
��l���\��i�J�ԣ��⥰��Yu#�C6$W����戢.t�|-c��
�2p#�D���@��A�N!�ߞ=>ૠ)��+��H����r�1/��Q|2�RE��u�A�+!Յ@]��ʆDںG�=k��p�S|�}���/�p���%�L~��a���{�}|BwsϚ�B�K6G�"$�
fn�9}^c*�b9��}<�{}�s�`�f��X��G��-���5��:������s�=z`��(������ҟ+X0�k#���/��*Q��ߞ5BG�{~3y lq��̅l�20T�L
Zeo���M��%���9�ajYiT����XI���)�_�
�AG��f�g���	n��T!��Aw�v��D��l7ހ�C�o��Z��ǖ�T�Z�f	)X%�\,(�����,�|�tX%J��LAE1u��K�2/�T��
��/Gn��Y�Ʃ�#�@�W�2O�M|>�7a�y��g���q����+���j���D��z�S�%����E�{ٔ�֋	@mI�Vb{}�A>_�Д�V�|���i8���+�{)�6�T,�`M7lժ����Xo��W'�.��B%�O۠�{�/��`F�Z�':�>rM�%MV՛�j�ʑB�_[EE�`�uA��6Gi��$��@�r�Q�'�u�}�kW�F,<Y޿k�x�*�DZ��̯t���<����j}���|�I`�a��$V�QŐ�{j2�(���aC�'t6���*��H��бo�b� �
���_��A9JtE�k�S�lV�C
2<�H@��)�Ų��Kl�B��a��=���rjT,	��~`'���ã�U�ٔ;3�a�h}T��U��=���g���v�F�Sle�{kK؞��n��Dr���|2cܘ�}�{�~�^�F���7��e�mU|�H�N�XO�[^o�|!G]xLR��a��H찾�]�*E0�A��B�W��B�j��($�P��:XI&��]�|���7��e{��vrK^�:.2EH|��l%���D���JJus�w_NKw�*ɔ���S�A�61l�hqa4�8�U�>��n�!F�g]�Z���^$�)@�q6��ٯ��K
���bH�Rܯd}��PJɇ�^��ـ�8��8O�/���'��W����1��ۏ
Ǖel����q��5�F��&s�m��&`�㺯�.�n�����r1�]����>����9�1~��u̧kU9���6Ħ�F�=�^��ּ'o���a�J��j�z�x��m����l�үX�`��iR>��H���c3~5XHF
���lI](�,�y�_0�I�>>�or��z5��No�%H���$S4���I���8�Q�(\�\�8捡XlŦ��]7⷗��\^
�5��i�)H$���\5��{��A�(��H�3��y��t��V���C��	���^w����Evh�jP�.��R�һ�R�6��ؕVT�՞^@�?#-��k�c�X��C���O߶ц��k�S��
�*@[��q�ӿŹ�u�P�1���W~�S��֘O1_�L�ԎZ
L���qLk�z�}���j�}�un��%�"^I-��8����?i�]<c�]t��6H@�"��}�F+��Ң[F )ˊ4`��P�6�0�4�ųe��u`�15}_�'�A��~X5�rQ�C�P�7���9�q{�R6��2=�j1��7u��X"A��)4��ۿ`;���q���+��g�|��M�WF˗'�b��b:6G5�~��e�7�~Ǽ[Y�q������Fлȼ�ӍW�(hT�뀁oS+	�e ��?��q����گ�U���k���~zhڷ1I1J���#�Sp+�ɪt���/���R�%ک�
.�C��x�By�X��H��a����E%t�C�]�=�K��ǂ��*)]ʊy�{�wq~:@C�B���K�{>bO��I$[���J��M#�%ml��E*z��/����8��C�Z�!�kR��mZ�E=�&�j;��rg&P+U�6��<S�X"��q�~��M�;a��l�z� �J��.0�M�K��D�
hQ]̿�r����R��+}m�/�������A��:GB��4��=�E��R�k�a�L��-!��"U��7r�aR	E���4��`���q{ʢW�$ ��$�搌_fO;�����_�������Ԗo�wf�8��h)����:?���Q����WD��B�}�d?���ݱD[[�yq��EE�8�S��\Q�}�L.N�4E��jl-�Y��U�Rlԣ$��*
j�#���g�q}}������@1a3��3y�k�I]"v�xKl͓P�Þ��r����\��CH]�	�W�ᕩ�X��}����b揫����"�p����`EP�A����:-;�t`:���<|�kh>P��&<�^}`�?�~~�J2��eN�y2���BuU�ّ�zi+�-V�8���y���s�?������j�j4�����ԩ�F��9���6�K?u�q?,�ho�'q04t��>O�@�R�+�X��$���)�b�F�{�sa�|K&���G�V�$P�Ed�v<��@c�6�n)>�'��FƂ�C��҇���s�k���b�G8vwCӶ]�+~�Ju,��U�&��ɇgt6�W$dʹ�.��ِj���=�����N�Q������j�xg�F��~Ɍ�V���r����ӧzI�(}���b5c��D�[K���sG'��S
��JAo�e��eP�E���pSl�K�
���ܩj�'�D�\J���\p�����m�����&w�D�Z��2.�w��|}Rي�)��QC"8�W�?��%C~y����%�FTʬ\��c�(մ���������a���S�M�-�X
��7����%���[��~�ƶE�4	���y$�l�wVF&p
Kwp��q��O�d���Zz�W�
�Bj����N]ߓ4�i�rgF˙�̱Y��%Ze7�9<9�Z,A�s�-����$_0�N:M�@f6�y���,���X'J�xs��	q%�/.y��v=�Jl6Iwaғ5��);>|�6�6�J[^f]ҺM���GJ�I���,%����v�ec);��Yx�6ݏ8��E����x����o���ߞ����z�׍�n��=�����3�Cs���t��A+��8� �D�a�L�פ,�yq���m����["l���Q�6�Ư
�Y�%}ǟ�Q%MX):Z���fNfoFN"�r�`��(h��!�X6���}X��f�x��!�V&�8QC�F�^�^�̉��4q�2��T�hKY�@j�	D��s���e~u��z���ý��Y���������BP�
�e�|���l/�Eՙ-���õ�,?c���S���"�t��_1L��SE��������5ut\�s�]��V�M�K"`�`$"؀�,1�G|9j�~o�N��zK>F��� �2E�ƺ�Q������i������ۮ��Ov����o��nxӺ�����
�{X�1���b��a�����dӗxq@�Y�۵�CJ�oڀ�3�]*�7�S��}��+�����b�[��2��G@�vL
g�k���6��\�f����s5�c�%�I�0�
b�c���
A/��%�v˦t�O��'�N;JY�1����y��������|/%q�V F�I�2X���)�p~[�����ߥ��v�)c�P����ġ�r]�\�|s�[�=���oߍ��m���9k_�Z|O۞��1G���I���%@��8C
A�x�!�Ӡ}��G���(� "8���r$=�SF�)���d)q��͟4A����3X�Q�h-6x$֘�H�:2�+$���t{�Q~ţějٕ̐2���!�H��B+[2��ȼ�|wp�k�~5f?��I�mfOH7lS�U���	��1߶iJ'�����k�J�[�)�ʙ�62�;�8/��&7$z���P'JLb3��'r��-�N�g��b�E�����o��YyT?$|Z4�!�%�8Ҩu;���(_���x��a��=�ӤׂX�_����%�U�n�`�02�e�q�dЎ�@I�̄�%P���bWK��s�F�ū>
 �K�QwA�J��mk�'f�L��c�
�*��6�R�ǴE⻢B��+��܇��%��[���H�ʢ*��.��4j������嚢O��_y�;�+�0�˩f�S|6�����-�͛Y#�!]_ }V
4Qݜ�.F��#T/��	�U�P�yU�+�M��%N�h���'��M�7�#oCW#>"yori���pϨ
f����1i^�����M���尬��I-8dz��,-�]g��eh��b�1��߄�5���8��(�6�Ok�9y��l|IG��P��9��۸��U��'˅�� �R:�'����!�+wM���?Mⷲ�fK�p�Q��Y2�8�G�=~��T���Ąމ4@�.^�/����4�j��T��D���ྈ?^�c2fE��u=��z>�l�9�1��jr��;v�S2۵SI����>=����8i�^�)��k��Z�'<D$�LT�_�T�6LsՎY�;����:OM����z������1#2��g���4$�C�����@��G�o~��4���O�~��
MV
���~*M;?B�-�Y�z��T�3~�Q%��J�(1�s������n��yC,rJ3�C��;r�N�|٣C�P<�]�|_AO��yo=�ٵ駿�6�c⑱�f�և����R���9p�~G�⇎Exk�ь� Jvց��.�s��b��N�,�.�����J�k��K��_���όğ�}ލ�T�sܾ6��#�[�o�M��������4b��o��r�_֤��_��|_�S*���+V�Ě�.LꔤN<J�	�*kί!d�K ��<'��ԒS7�z�@i��s f�Oٱ�^i�S�w
0��sÐ�	A4:sҊ./9���.�h$�u*%�l8�:��?��W|�8�r)j>�"��p�Z�Β���c�ß2|�6�U�u	$5�K�;�������:0Y=������EGʣ��n
�#��'Q���"]|�r�J�A�ܒt«q��gC�Ρ.Z&�@uPp�f�P�	�'Opǡ¼�O�:�{z��C� �,a��o����h>�Ŵ�#�y
�j�U�;P�,/���(���&��7і�S�mSx�OB�3i]�n����~�O8ԃ\1�iA�Y�u�^���-�9U�S�K	��c�d[L%����ѭ�����iWe�+$Ěoj��WG�h��Tyu=��K��A�q ��{�W���:=Dn�ܰ�T1Pr����o����S�t��ܚ}��W�:*	�.9�N�s�V����Ig������[r�3C��5@�/!�l[49����P����'�τ�K���G��.� �ĭ�6�8U����ZPӰ���G8g_7�R�h�1=�%�M�Fs*}~�izH���k��{v��a�!I�M����σ&�)�������Tj﹊'5@3Nn��\,�d��j}�n	#�c<��j��K~uU��8���`�$s�qq~�@-"��˃H�
yqH$A7a�2����@�<�E]!k���8�� n�W1��k��x�r��� V��!��q`�}\���ܒ�YYp�pL��ܼ(�v&��S��d�wz�1��M/a~;��j�F8Ԡ����Nv���1�:�֊���ǧ��v�Ƨ=D��Ź�3��Hw��%����a($�:j�̋��1VJ�j5��b5��?�]^�[�������ށeћ�˂8.=�)J�	�O��"���
v���s�4� ξ�Ax�ˑX��r�0+1�;��+�iʹ(^f$\���$�F_�

q�3P(������6G�tQ�QMV�w����+��I
��CaK�X�1�s'����<�N�OHߤ	���N��@�[��E�s�%��Ӌ�.�O�uUA���+�M�~4ε8��nsxx�Ÿ�T�%�wt�{uEҕ~6@�5
��Te_�T�c�i9�zx
��L�F �4���ܰ��;=��=�]�l�r�so�1;���(	{r-�X$:4�K�q�=z}*��Z9$d+�"��靶���
5���M��bڛS����e=�ևǶ9�H"l���r�d�'�<��J"���l����!!W�_��/+j��0p�h���hH�"�POo��c���+�mF�n}]�:3L�|I�m��H��R����i�%��=��@�Z$[k�J7��d�hC~s�c���Ґ�Q0��ʬ'�P/뿱���
zg���<!s��$���hY�[�Ԙ��2f/�1z�mA �YM%��<Dğ|ҭ��<GuP�pN<4y��IJ�]��xe���X"�t�ߡ�/�kڨ�a7�8I������(����[���z�#�-U͕�4����oN�t/��S�G6n��ZcQg�B.�<l��N��ϬՈ�J3O&����#U@ɘh��1�}�.�4��_����<�[�q�8$�)���i:����9���
�������"��kFG�y?u���]���Z'�����/Ȇ:S׌x�߬����eEe���U���U��6q����vx�q�Ϣ�.�5���:
�HjZ,~D.��v(9����ݽ��[xa�c.sf蘮�2���ãv�y��IZ�����E���cY$�1���1xRr۶��9��:�0E�%r��)�D��6,ȊmXQ�6�Hm{@Sd������PJL~0������6B�m�+Q����z�7O[��YȠY�IU���R<�Q�d�g�y���֮�X.H����ra� �'8���BS��ȩ2�>=����F/��>:�X���A{�H��d�|\�r/<�b�|��P�n*��$��I®O9���k��̧�D�д��AX���T�3o�J��Zz�e�L,㢗%��;j�y�R߼�\#h9��M�v�D�_ZGe��EM;�9��C������Z�v���wQ�')3{�c,�y8�m?2U�zF�~���`C ��	Z���P�J�|6u7��Z��$��4*�$�N(�u�5R=�9j�yȜ�)E�N�慌�>�e~�F%�P��E���c]�\�.��䌤��^��r��0w��je�~�,.�	�#JM^�f�'�8�+"h�_��Wg�ܑ���s�H; �II��p.*PzYl�Vi˖&�cE�������w�2��Y+���P��<�m-�
��	��#�a.r�XO/��CX�3�J|��t�õ�>�b]�BH��";��[�nSHQ0�#�e�V�'�2�,N���pЕ}���m�Q�%�KH�r��k�=���7і��GF>>;d/
X�`URF>�ǻ�Xcbk����
vuj: ���J�"�Ɗ�3灺xI����o�>;�뀉GF#~�*�Lى2Pp�/���X�q�$�9�ǢF�@��%��fί|G��Iz"���;��ńw� ̀ī
��2�*(��qܝ�ŊӁ���Wn�R�)�w�VrO��tѻ�-�YL}\hk̉�uij�}�t���*�����W��IYES>�}���(x�C�h�������Q=R^�l�׿���i�[}I�D�vRW����dQ��˧W�9UH�r}G~�)|�|�/��X��X��Ne'wa+³a�D� �ym���Y=עA#E)�#7��=��Hy
�"�&ir�Y2���y�I_*��Q�IB3Ch͈�uZ$��ɺ�)����1��ڮ?�]6-g!crz=}�Ϭv��m�Z�'�S�Ä�N��C[�]"
��/���ȉU�F�o�@����z�k�\y[
��LZd�9rq��)����#�}���}�Bhb&���,:��&�e��=��3�I�5M�Pv��]�Ħ�ˎ�n�����g�o�R![A@�3tEK��������F�i���|P�I][3��H��Os&2D�~M*��U�`�J-��K\�m#�?X����i�̮	�I�.��t�D�� ����n����c}��������SM��k�'�~�y4�|���{��!����B�����k3���m��?��A
��E�����SU��M边�����!���eN��p���E���B�j�{-��ґ`q:�գH�F�wH�> ?ۜxV�5��;?w�m1j12���͡�!��٨�/�ҙ/�]��P �n�&��h�Z��hb64�C((S����79�=�����;�
��UHj��c��ͤ�[M�$%7`e�_ʜ������yߨn��ᨘż7H˼��%
3|] �$�����h:�$�;�zX4k�|�.���}��b�r")֨>�vO�iVX�Hӵ�0�ר3d>
���X?��w�o�b�A�FO��6!�Nm2��.�%���R�f�	��o��@��9��TT~��@-=g�2�x��a���8�n�g	�׋ʷmI�<0�O���m�ϳj����%go{��4��̍�6v�v��B5��>��7ṿ���60�$�y؁"	�
Q�
Y�-Yy=���;���ٳ��s���Û�Y����qv�Y]��]7�U����Y��
�`�X�$(�G2)�L�6$2�l��-}�)��3$�)ڢۢ,�~�{�Y�=�ǽ��e��ۮ���?^����O�{���ݿ��v��c�K?��+?{��g�����W��G?�o����7}���������W�x��������/�蟚�O_������o��ӿ��Ӌ밳�����%��S�����x��O��~��?��_��ߞ������ȟ{���K�'�w~����_���mx���|�w����o���3W���k7��O����w����_���?����_y��3W��������2���.��/ß(��������w���/}ӗ������o�~�_��o~A��=s�_�����_�?���m�׿y����/~�w~♫�W���/~�G��~��_���z훮��Ϳ�_~��ڏ��~�?��o�����3?����o���_�_~s�[~晫�����|����?�G^���K���.��_���З��•��~���o��g�����>��?��?��ov��yw���>s����G~�~�c���~�'����_{��߈��~�3W��������7~��?�臟�z���o����?�c?�����r�{�g����'~��~m�?|������W~u�K�w�7�|���<�����#��3z��?���e�����h�W���{�Iϯ^y����g����_���q%�J��$>��A�{�ŇǣO*'��Q7\�h���O�~e;_7��&���x���k�t{;�l�]�G殎���i�E44@~�h+��~am�y²� ���|w2߿��ԘL���?ޟL�q��l��a�Ce�뚃~Uq�����N9*��c�{��������R�~�s��Sx68�F� �BQQ;a���Tb{�h��=����ڪ���V�|�R�sڊ)�_U����r���܇ew\.v^��r�q;���^���{��|���������L�nX(��Q��rxx� �	Ӹ��8U�����4��8��W�n�%쪼�t�`V��Bv��I㺸n���Ay0G9���OxN�7�Ĭ7�;`RH��_�<���a��o���'��4F����-E�Z<�`��OF���9!����
�v��u������C�KD5h�z�c��㏐g����_՚`A���z�{��4?��<��������Ϗ�O��y���	���f���{�}~�L\\��ߚL�Q�ȋB�k~�?�J	�A��|�u��J�i�H�o/��Q���JuyXw{�{TҼ�?�)4?�<8�a���g��3�>�j�?n��Oh�x�����pL�m�&*����<<�Z�X���px��ةK
�*��):*۩�t:��U�-�8M;Y�u��H�u�����(���쾈�tU�g��s�-�$k�+{��2��2�u2bA)�j�x�JҴ�E*.:Yw�^�+	���a'j�+�i�T�����އ�Tu��4�avJ_��W�Y�t�U��W�k��$;e������*kf�q��
z�^ͧ-$�Ij��͗_��M����dv��(�۟,�MTB	���t{����z�3�'AO��^�� 𚝕�A��Q����vn-���UtR-j��p1*_�>�O;�3
+לY>�c׀6�ר�_�.�_���;�,�ǓAi�z�������/���ٞCܥ-.�/w�X��@�f��x�0��@xȜ�T[���x	�vC��
ǻ�\�$��W�5./@�`��x�zj�����s�-���nip0����G�م�Ѥo�zY����fC<n��E�Ͷ	$���H���B��͏��]���^x?��Vgr�t�#�����{�{�L}8�G���0�����tV�vB��h�^����6^�F���>��Y#�;������-Z��}�e�ܧW��^s���x�wDRt��T��H�+�2|�@��]���d8h�C�H�8����o%�Wv®�&Eڵ�$��vE��_$z��J@uu��"}��G��ҙ���l����
��7��v��m���B[�--�Mo4�Nԍ�kER��sY�+�s��q�ޓB�(��*(6.�V�dLk��̶I���[,g%��ß��mӺV��Ѻr��p�d��)�Bi:6�Ee�zš(����~��J�MB�:1|��mo�6n�
ҍ�q�k&�
��۶����v*�Ш3��7&�
C1\DGݓ��HΈ���?l���	3J�Z�2�A��5�
-"`�eB�qs#�D.t��j���6�Ȉ�A�Q��̕n��0��_|��B�d��Q�~(�0�Y�1ꪡ��(˻,�HZ3-B��RB���(��$�!��ђѹ
q�r};M�Vu-��D��-r6.��l�xk��/I�cm�kD�J�Zp����"��d�X �B":���At���1�%#0��
��$ND��:![�V��������a|�R��u�"��!�
p2}g�qF^
ڔ�;^cmJQ	�����:f��x��2��T��Hm:ަ�X{T��S��ֳc,�8/X�ۆ��1�3�P33*3B�O���R�f�Y�t#
M3m� ��X�+����v�zِd���j�=4v%
���JŁ^��îSe��a�F���7h����|9g�!6�L�#�N�������'���:>��!�)̪������W�9졞����{uw<�s����Iza���������p��r�(�:m� �(;���a��A�a�Qpiv<7'�^������ˣ��V'�~�61�~9��������E��;��
x�j���م��.|���<���U�s�#�O�衚�BB�l�p:����J���s49.w�GĞ��������b2����p�u���֖����n��սu����O��R�Г/�)�ոρ��ɨ$�q�8����f�0�<���/��퐤[�EV�mwC"��H'�wCH�	�l�����nHMU=�V�j\�P�.}Yz��/|����'I7�B�$��>�
�{����r��?�t��P̶N0�\�XO4��ͱ�\,VL�]V-�:ze�\��e��z�pv��F�u�,W9��P+�:W�e�F���c@Q2�q��EX$9��O�3�\�LgQ�9	�:K�gI�FA�w�H�*��'Y��v��Q�4-"�����
���/(�A������Ӥ��)jk�#4�T'��$,�i�#�V�*(R��NB��K��e@i%�"4Ms2��%­�,��H�e�����f�2
G~·�i�N���?�#*���i|T��(L�"��y�b�"�]�X'���I��ʣ�D��"��f�BZzԦ����{�s�(쑦�9�#״1��m\҉��$LT�$����EEi҆o��Q��I��g9hB��F?���:Nr�M�J�Q��܂��4HR�̢��qQT��GI�uA��JҪ��{"����@���	Q�tq-���hI�8bX��H�,&�i�\	yBRSW`��I�S� �L�P1
�`T7����L+ k��yƒ�ic"`�JxW�h#��E��������Ay)�7	3^lL�TF˝�vN�����0��<���5�w'�(��i��
��D1o��
D��N��x-{�I�$%�}VZa���R���Ǝ�)T�$#
�F�g�[��A�11+�w��4�IK,�ueL2I��ɨPg��x���Y$�mA�N�MKXV��F�)j�ik.��u�)��Xg^���R�@ZiZz�J$��0�#��)Fh�S�w�&���������Q�FL[*M��̆,x����jͳ&��� at��:�v:1�����i��$�>3b2�&�
E8���;	R�vT�q+BL�͒@k�!"�B�.�t������G嘈'��4%|��R"��-��H1� �������1n�g`�|�Y��F����h%�\;��M�0O�2B�SH�j����)i,��F2%����VVA
�+�#�5�Yп,yj��<F`{@�$��
�U��+�a�
Y"�K該84NSo7�-���DiH��zI��$JEB6�)��-��F�1a�E2���h>�D�f�mI���ҹ�-/e<:4�1�H"g�6-���1�PHV��=�aEA3�`��i���+I��H�0�d� ���вYfC��#'U!e"�yb�K8$����فYsJ�&)
��T��!T:j�nB��Bۄ�Ă�9К;PG�Ƭr��J��'sm�U�Pc�X���P'2�g9*��+IR0�!�Ab9V(�a����!��.�?3^�z0�`*!�':ͬ%J�i�R��J'n��k��U�m�>��	͉͓<���=�-d�Fs&�M][��.@��+���HZ$֟��)��4�C����¶b�CZh���uNV�i4��`-�֞���\�ysmB��W�I��:	-n��J���\�p	\�(5Ѵ����$�
�	�2(*�bC�ҘV����(U�Ni�H�P^�]�#�(��_H�re�5/�NR�#���P��˘Qe��m��S	n�(Fe`��>�yع�"�Ti]���Y��̭dɰ�4U�V��0Hrc�w^�$�W32�[��_���!Xyi��?�1��G�,�46Y�=u<�%�y�&�X��26G�TId<P>T����]ŽX7�viE��.�+�Qb��vh����4�
�f�;��%��iO]i�u@v~Y�x�C��%���k�o��`n!��d=�(ۆ9��L����7�
`()����2��A����A��H/��~F$Gc�AvSX��!��&���e''T&M�01/�Eb\)�$kF
c
#�2$����&�w��4!܍�
�Wdv�\3Bh�9��|r�2�f#X��Y�d&1�BIm[��,�����Ōt�0��4o�bR�2�V�gM�6EhJ�f����
$u��-�x#�B�$�8��4��	7	q�C�3H��!�I���o�I�~A2���eY��z�	Y�9w�ؠ��"S�L~���J"���_�*�1�0����T
�uZ*+�
�$c9&���CM��c��%�E�,Y���PxS�MZdR&!uă,BO�nL�oZ�p�J6U�
��m�IM�iw�2�
�C>�Њ|��p�V0����H��u
t#�"9��,���gT�	�tX^Eh�b�Ix�H�!d#��`4���
�6��`S�=�Jeh[ɘ��I5���H��h����\�������%dL����d�V�D.	I�n��%&�\Z$�`ܢ^�\������`���鈻�H�IF"��B�ԴT���+��?i*XT�y��HSN�.�fd��C3ɤ6�P	JD3�bF�[HjV�]lq��+�h���m�Ԍ�4��!�Z쌒LKx�r�
X`pE2�'��$4H�K���q���ǭsZE�B1��4���6S�
�,�3	�(��7��U
��n�����HQ�t��j�A3�o!#$�� .�9o1�9h�R��-)�Y��-#Yda�R��s)i:L0ܐTN�\�8��V�&b'/�=���rYZOX���)�ט�AF3�%��r-,��`�D�f�GQ�`���#K�H�f�@�:�x����7S�)�$=�q�9����dQI��x���T��@&���!!���������1�)i��[�
�t]7��3�=kvD�;FMv
���\4!ELd��ZÑe��0Ŋ㢵��$��71�}i^qMRJ�I�鱐{�I6��>�jC�����햤ک�c[�Q� q���i�d�v��-��ܝ
DI�ԝw�*b��Y!�1<��J�&Q���C%Ib�e���D�@dF��X��v;���nAR�AB�����N`��R��K��pd�;H.�&��bx�B���Bj-Dg	�]���qI�nbq_Lj"R7��(�'^�^�w��Q�4���H�e<"��Ҩ����L��>�J&	靉�M�m��.�W����S8A�H��A�&
+������Z�&4�I�N�S�K"�O^u�U�t\�H�o$��v���ʵ;�JY���h����%����ޕz����Si����KGn����(�|>�KV��NIՄb
(�T��L�8�#�=h�u��ES�(���
8lW�K�(M����.Y�J3�'����Y�A1ޘ�{�.��F
(|�Y5ZH�*F�]]��|PB�4a4 <�hH�&3&�r�UX)����<��
�e��!r2��W|�A�^��G"4���@@c�4�%��2�Òv��!�tѽ�T4r@�*�?Ӥ�HI28����r@	��4v��̈M��J��k�<h4N�Tf�c�2,b�7L����,Q/��������R��x�#�jH!���	vP����Fb��w��!�l\@I�S��łC?�iW�\�
{%I�BU�Z��<i�qv�{��P���xճ���4�cd|$� �Ȣ��>��2	��US�sY�ʤEh�2��D���&[����a3��8S�i[�T��&ƨ���3FGbL�\K�(3xS�O;A�P�,	9�Q�¤3�
�&)��� �Bj�c� B�l�"a���ecIU,\�.��=��)���+Ɂ°"v]�	+��$h��<��I��38�T��H��2��PW:6��H�=��Gb'h���ٰbq��b�zX�S�Up<ZXVA��ub�E����8Ex�NJk��"��x���q��Ekl?����y]��8w��?C�A�!!e��K�u���	3NR�t�$2?+�E8r
���������0!J�m��D����xD�2P��&�9_\BZ��,V�W��5VR��Ì����A�܋xCIw��1۱�8.�+X�l��6����d���v8�Lrqa�A���zzه��A�)*�D3�����cx���ǠI���!C�� ��YT��T<eIH�ik>�\6c&G��+��`2ɉp^�%]������Xz	�5�'��G-���"Q�0{�(pJ��y�v��P
���EJ��������f
�b)�ą�(<�e�!Y""v�$Ư�#02�O�EqC6qLQ�$^��'��"]O����q���D�@I�I3��p"h�v�������
��S�Bt�6��vF8j�C��)1)�m��r���ҁ[7C<�c"���	L.�CPQ�Q�6j�
d+��J?�%��3�TP��"���=�s��	�ڇQ�*�@=�0�J�d瀕D��>ٷڗ(8�������1,E�&F���j�Dbr���8e��At��!�Xq-p��01�x*�M���Cĸ��e<l��ڕ�.NQ⵩�l�$�"��F�K$��H	ƪI8��]㘚=�q��u�xJ��
�L�$5��ʂ�K'�Y�e���xOi81�cu)��Bc�aa,rv_H�����,R�G�`�d6Y�p"�����̸T�cD�e�W�����Ԇ�+º�J±-ִ"-<�ap2ƶ�
JH'R2"�g>@�QQ��8Ij��i*SA�q&�!��#lئq����"�(�r�`y�X�8���Lܴ�a�xc��")���"!�9*��9�[����
�5�$�E�D˗��\v�d��(���8�R�a�PDs�p�K��1�i�qYؕY�4�1<�a���p$a�ɂ
1��*������NѴR1/<E�����45*Q�[.E=K�*�����3����9A�KPUL8W�H!����ȴ0RC�s�ρV�J�"-r�`�H/b@}R�Cm���80����L.�*D�-�2#�ya� ;�'q{��f2�z�
�m\D����(�06��l|�3b�T�\@Ga&ܞ䏀��0Ң
!Z�PR�h(���Pz�
��0q���Xf��*�Ř҈�f�N�;��hm#C7��4E?Yh�t&gc1�F��s��S>����A��3Y/�̙����?fNI�@(��T��P0@�����L|7-"�:��D�ՆXC���4�ȁ�w�dYJ�E��l7�i�n�\�a�h,���"$%O���S����K�M7�UU�a��Ԣ_��.@���ʺЍ��O@��^��-�r+�	� ���XkIdi�,A k"�����8wV�,.�s��%F@�
�#�Ni� ?�xˬ,������p�T��qH����L��.�4|3����
f���FL<w�`x��`�,���qt���[?�A���	n5�B�F0"��
�L�J��/
�yy�N+Zr8�������ޜ���UI�Eb�T-�-��	R�u̎9�Y��0�ۺ�b�'��`/<��#IR��1_��`(�Y��,�J�^0V{�\������:��uʮ�	�A�PP�:�ќ�N���E��N0�N���N��̹j'�;-�qT;�xgҸp�`1����^"��He�7Y@�i.���$(��c�Ǵ2G���l�3���ZE��syO�kaH�}���`5m��6/YQD�l!�#V������oi�Q|u"�|<1g3��5��u�ap��wC!�,��uXact\x�v��	��� ��J(�-I���b�-��u.vp�w�7<���&f��]3�w]`⚋�a]`�lq��.0��Bh�"�/�8.0�t�e�̅�.���!��K}Y��v�����Zԁ�q�Ƥ�iz����"�4��K��U�G�a�s�O�N���� �0s�9f<Ju�J�8Q��)[�U���qBNIG
Q�E&�,&���Δ�\k6˱����8�Ó-)�|h�V
|�DJ*W��^4W�$@��%��H�!J�$Ć�9դ���}&�GIDB��s�*��nv�k�u���@sM�)Y_�����N��#m{��SKZ%02!��Bq1ֈ��#�q��H�
� �)�T��@ω��x	V���v���#�!�
u�
'`Pp�nQ��xAF�Q'^0��/XR����J�Gk'^h@8-���	��<�5J�d�~AZ_�
0�L�a�/\Pp�(�.�(�'\P���τ2
ũv���9�pAF��}�N� Ci؉.� K.��v�	-Y��-���Au�P��h�Q�I*�ĵ�M�>��J���(\�����Bw��`a1{!{�19��Upo`�{g>�F�����`�9N{�y=W�X:Xk��v�k:�br�b�rb�b=R�`�6�ƭ,�dX��C �]��I��*}+X�I4)Έ�X$�����V&�hb H|)�����]�ʎG�1�U��ӅƄHy�0bq%�
�"��bu�y�T�'4���ŧبW�}��2n�Z�4JM�JU�Z���5
��ȟZ�(�UhA4��7ވS2'��7)2���|��|(N�D�B�H��@,�ϫ�Φ�|���H�$�E��)�5\�
�S">�\kcPb%I�'��Q�R�����&�{]���SA���!�B".*�,�kd��t3�#���;n����.�*�gq������c	��럙�	�O�Y���
#9@���9�U�Hȉ�q�*�<6����{td�K4�eĀa	�.�b��`��[x��piL`1��)���٘xWa%L9M��qd<w4i�Se���!���`���*�=��#F�B�+�a8Uim��mQ�0���e*r��:�B(�-�=q��-,�e��N����9�J��Ƭ�E�82KBa��	��86�w���#�3�)���I.��o�Ύ�;���	��1�|��%q���a,��Qq\��Q��l2,	��n�W\��z���ᚰh ��q���u�0�B�Z
3��w�,D쿯')�f���')�n�$���k����}'�W
K`$�	+#[A��	��d2>:��E�
����S�;��N�2Ns�E8KbmIW���U>R�}Qm&�Į��
y�\Ilj)�š��U���xX�P��i�8?.�8?�ݲ�S�/&<Ht˚��jP�:_�T�}9έ:"~�Z�P���*j02�4��w��M�
6w�ˢ�P���B�y�z"<V��$��S�t��9���R�~�M�1�n�&
Y!2	#�`��F���v\���d����V��Z��W�
�t��sZb�`k$LGQ�	�Y�\U����ҡN��z�<�������Xq�P��-}N�zu���$���ؐO���v��ժ�m'h�C�ܶ�,�H9����$o8��Mm�S� j��m� �sێ��5.�^Ci͓U������un�����TPk=F�]��3�fQ�$�g@�0I\�H�كS��
�T
9��g�R�^�DI�Cm<+�mG���*R	�Ƴ�[�yVx��sV=��w�0n�D����ƅy�7$R�]����9�k=+N
T��30��*�όCJ$�5��C��A��Xi)rO�WxQ�.��ij��9-�'>u��];g��];�
O�2�1���/��g,�2w���ཱི�t����9p�5ay_bIa��z�Ӡ�iψ�p�)Y��b�e^�>�����x���5�k2���\j�&,�z�I���]R5�sM#q\�a�_V'�9݉PW��GB�X%(�\±�XM��+VS*�뱵X���C�k��"h1R�F�ҌUѸ�(�5��|F��/�v����������U���Bk媁5�뒵\E��=�3r5���H^������Ϝ�P��9��H���ӎ��3�5��*
=�r�h�`M1�ػ	��e*7�\MqƑG
��qhW�bgIP'�\MY�ԾXZ$�ߊ�4�Z�+V�Rڸ�k��"��Զb5�sa���b�F^W��v�+?�m�U�4��Ϛ~ڡ�T��0j���P+U����I���E
�4�1R�8R�Q&��JU�!�%�*A�D�<�t
{!���U���â�re캨�j�p��{5�P��0���/eY����z��@�,�N��*�
��*��]�
$��mu+U���sI���RKU�u�d�JU��
vW��vJZ�Z�XKպoW�֣��*�ƕ��2H
O�be�Ԅ.��ԅh�V�b�u(Ǡ�\æ������7����.�"�F�`�6N��y]W�X��e+�Z�+Tk*��jM-�P����5�BեT#T[H�:�8g|K�uI�� &��{�U5�
�8�חD�X���f\T
��U�B;��Ͷ�7�p$�ʞ�	���m�jZ�ސO2Jĸ��AId����{J�.���;��i��"y��؊�O�NrW�!!dQ
�9R&��J"'	=sV�,Uظ��q';Z��\#�5Oݬ54(�eh��
����4�؍8�b�.	�Š�૖n�A�,��6��HI����qa5�r��B_���*F`
�ֱ5�H	�]�?+^�Q"�H��E���I�yd,/"=�Y�PA�Ch��)���3��d��K}h�+���$HC�!`��(l0 E)gDuK&�0��T!�hY�4�j�A�42�%h���M�$�D�{�"��2E�4��]��RӦ�Hī�ȋ�<�(rF��]q���*QE�dT��h/B�i�ů�s���e�hsP�s"^u��F�<�"$P�6����A0T${�Ĕ`1R���7i+b�"���_��ɋ�Dʣ\���0y
�(g�D7�SA$a�B@�B*a�N��jډ�D�\dM^��<ϳ�i,��өgx���Ns'�F!�N��`����B:�i�⸷�8��q6��Z9'�)��Ұq�Saj�g��j�Ş�F�ܳR���wV�0-ܳR��,q�JP}RZ݃Rh�I5N+��"]'�H��R�D-����<����/r�D���^�ʲFIZh	%�����K�����q36"�ZFHۗ���Ԝ�"�s�RT�������4��i	�}ds�㠥&��P^�rf�TJ0e�P}R���3�J��R`�ܓRV���P��i�s�_��b����=*�ȏ����I��&�Y���Lﬔ7(�����KI�R�g�ؠ(�q��R����p�<� �j}XJДDU������>,ua�a�����ņ%��R�R���.H�*a��a)`$m�{X����:,�I.�a)�_*9�a)R(G�鞖b!%�>-ł����?��!lq͚��W0�I�g�@�P� ��xj��=+e4�w;�Y)�/M�\u*Z��v�����[���Pg�3dEʹ{V�1eZ��R@q��=+5��g��e�K�T}X����r���dB1��H�DA�mh���ω
�!1���w�Nnq$����BtRF�0��:�[�X*��šoK5�37�ai
sK]�=,E������R�j�'�Y�K���T3��D!�a)�oX$�a)$D�����R�j����9-��s����.Z��=-$y���.��C���,B.��
���6�g�ru*6��-��^HA��'C���FmPwq&��]�%���;_Dى�R%GA5743	4�� �!�����*'�"6�
�/1��v�X�!�xf���k���e��Ql*g���Ҋf�%a���Za�{�d�$Z�F�T��k��=!.�e�R����8�i�R�P�^<Ax���
�=��1�H�r5.���H���B̰�ݲrA
i��
�qF�	���JA�Y?�SX�a�dP��Q�S��M����F��IU[L�����`�K�*G�P�0���%Q�j��W�2$��t�z[�1;at�#ͪ�v�+��<'LU�Dh�q[h�֮�L!q}3�څ��~#�)\Y��Z������*߬I�H��P��M�F�H�JV��>&�!`$����0B2x�x�� ��� OR��m0o�
2�k�ӬQ��wq�Q����a�_�yV�W��	�&&ik=g�ˤ�`4�3��I�X�r䬓��$�Q�$h���D�T;��v�&���b�����茲J��̦J����I��P���Y�*�a��N��zk�l���6^�׮5Xc�S���϶�*�J��qiD�U�j�)��I�� ����!�*=�C2UzF��������\�-\%���w�i��@'�!`i"&�!@���;i�B�d�2�Ab��݅چ%h�+�AJE$v�i�����6�ie�r#��X�Á93��UJC��*�a�u�"�`�Kљ�#�){��Z�d��N��b�]�MqFX�3��]���C>�kس[=JN�r��I0�B���0r�V2	sB�`(�e�`sr��M5�A� p��3���T���
!�k������X���5 �n�p��WŸ�Iڽ�$w�2�z�"?�p)�A��s�,��¤��z v�rs�NZe.Jv 3�5w_�V&J.�]�0D��(d���z��C�O��,��0A��A`��g$|�p���#�o�.6����xa�YyG,�NY�4�lj�%��\,�f��X9vǥ���u���G����l�GIe�I�M�bn܄�e�/T�i=�Tf��h��rC&9
�k�}��M�,���p<�C�T�C�#G4��<?(^�i����|�Y�MͅB2yW�t���V�"��J�{�ҡ
����)|˻�ɑ�Fyw@˓PG���oK��\B�����S�'TlrVw����ME�<Ič`-2�\�J�e�DPH����6�lj�_0����8@�\!�>1��0qZթ�j���ą�TP�r�D��TP������0�,�msA�!Yꦂ�#s�N��*%%m*(,Z��d�TPX\$��SA4�t�TPK$z�j�J
�����>e�86���\s&��M�#�Uf��W���8�qSA���
c3츰:�������U�L*(��@���(�SA��K���!M�\?�;�q�$�Z��O�����}�a�7^.(l���gRA)�Pn�ש���B�:���*�X���0.�


ͳ#��9��l��=1��*�=&�'Qʹv��0/R�$Bbc�M*�1�TP�x��TP�	#/���r�����[]u.���zl�A�����Uɠ8n1��l6�9-�dP����0>�?׹���d�=��Ź.B	����عmr��\P�`���!���0�@�(�<6T�9P��F�
K^h9b�����	r�\P��"P�
8�Ss.krA13O��
܆�\��_�q
�\P�S�	��ʅ9L��ֹ�r����grA�s�t�;h6����dB{��(��]�k�d��R����"gS�d�rA��ٶ׼��_��+Y�?�5[����~9���,yC�{(q/yR��x���f���6�͏g���]ea���7��y�rU/k5���Hc��Ȉ���$�8)A#���6�ԖB5��IdR
��f��R�s֎k�;x+���u�+�| �x	���lN 'b�HZ���� 7)^���!�(���U*��yFr�v���Ƭ4۲�Dx����'sq
��bdӖ%��[�`3��l��jfX<��)��t�n���ڮ4ھ�E�O�)�
zP.M��>�}%X�W����j���i��J4^,�_��6�8�oHީ;
o%���J'�q�u��0:���n�Z��淋�R؂x;R+�k�&o0�iK��DV#=�LYN���r�g&6!��V�m_��kx��!�k�7z�Dn���W�k���?��`j1^��V$rZ�N�/��,
��x�M��n���(���㬓Hm�P|XA��{&I�	-¥�����C��A}xրL�<�;	,p��RY�����H��� ��I�Ĭ��;�/�=�3�O�����?/f���`����|��d�h�>ʿ��*5�^�����g����G>�K��KCypT��S�=�{sr_'�v�^���`69Ge�rov�`8?
��t�[��bG@�Xv��e�(8",�`:��G�ւ�����E�������x��

N^ ��H1��r1����?<
�&d��Ż$����W��r1���e��	*@'��;����|{^Ά֤�.Ƹ=�L�ӪEy):(�g/D����U�zkG��OF��npNEyrY�]��:k���sb��bA�?�d�['45�T���M���M�Of�r��?Y,&�4q�������ALg%���y6��w�b�v}2�'��˓�lH��V>X﬿\~���ep��	%&��p���{���Y�tL�;'FWbJ��`0R��1~c��Ƀ]�4��/bQW�J��!)}����\��sB"�Dw8.������p0(e���Q�jk��eo�?�>�#Ys�A��\�{<���6a漹Ϥw�F����<8�������wX�w��q�h�vl|Xv���-�~{VN��"���1D��ߤۭ�;�Ց}�
�OFCڿA��D��4sԥn���v|����O�>SN�`��p�mg���� �*�Ǔ�Z?aɈ���FD��cg�~Y����N,�ҍ����~\m~9�V׈p���0x�V��Z�ƃވ��y	a١�F��?���棗�-
��
[���`@�|]L�vq��!�2�o�D��v_���q�l9���cm��ch8PҬ�}��\M��;-����'R�Nm���UB8��>��g�GO�cé�;,����@CO��6h�;��Y>����b��^L�x
e&A������K���
�����a�'48(	�ʶ6ۉ�d�}�����l�_,g�ph��'a�D��p�7�-H�㝯>�MH/_a)��#{+y'ܳ�5a7䝕aGIs$j�(��T�Ho�$�z�A����Ź��s$R��Ġ{����ǐ��IXU��#��[LH���g�$�H��o/�.8MDu|^4?&��s�]�Ӹe���-G���5uy��<-�tm0��ド��h�/4W�):XԼ՗Y��r�W�F� ��Y�q�f�)�zE����<�� �����ɌPi9%ݳߛ����>V����������O�����A�_��KD�ܭ�������l˕[ʊ�z@��[��1ғ�6�n0��ܺ�^t���4�=o�1L`1���3��&�u]=��į?�m�z�^[�M��AmQ�M�k����pa�tB�+���̡�}Q:N�V
�?��a���z���K�M^#-fFxĎh�kH��p����O��17N�� �=*[�7y���}�O�dc�sA��3��;�8`�b�$æz�D��"�[{��!7z����XP��%���EM��ȪY�2��w�Hz�=����-
|1G����B�a��D0�`�)�zOB��G�p�
vہ�E�e��i0�{�"�'?�W�LBq8���tD�ޞ��/���Ay���^q�m��Ӆ���ۮ�ڔ�+��p�.�U�Nl�J�	�-gsԚN�ֲm��^�Ϯ��JR
�p�a4�`�jx�D�	5�ߓJ��s\jl�-��7�?엧P����Dn���띄�'.�[��qsݸC۟]53���Y�o�G�O^H+4N��S�
[�4�޼+}��4|��ޞ�4�f�X�b����5O��e�{�'�1mqnohi�� �(��}ag�%�Ay�[���g|�f��'3�������F���4��nA�S,��YY���፾έ�50�=�U6+�����k\���K�H�,��:�r�A��=�ΗScV�Ɉ��dՊ׳!oq��2ʳMGͶ�?�y�|�t.�kx�73Nh80u�x2��rf�	V`�<�
�_��|85?�b^���[v����<��p��r���(�
��۵G>�/����5Zn%9J<�O_�U�eoT��V�L�N�B��t�nf�3��^/Eq��ͺ���9����G�PQ�%��D�m�spK��aNtb4,�ʯжŌp�
����6]�[x�S��5iN\I�xg첎�Xi�-Ϗz�ӕ3�j��Py�ϕe{
�i��//�5���$�/������KvƜ��i/i���=*G#h�IJ����tV6f#G>r��+��|�;��ʝ�dN6�}���y��e����oV~�rH�1#
�X�������M���"s���~�z�|m���ʌ�g���N���dAr�T�`���T7��΢3����c�$v`�
.��Z�;{�b�����~�7�Qt�|�
��1����)2�9��Ǥl�z8+�ŋ|�Z���H?��6�p��np��b�h��a���"�m9�Q��9������ښ)]��R�y�no:
.���q'�}}B�H����/?0��Uؤ�,<��_���w'XwHp��"�3���o��_'���=ҿ���A�HZ{F�Ŀs���� l^�
�0�:�ߜ����Fap�h6�/��1Bq�
�z/����lԝ�w��b�4�>��vn�Ss0�3Z�G8CioT�1�?�7&R?����Z�~��8�Ѱ_��e�ڹU������k�&��h�����<x����0u�;��Ŷm`z4�Q+���qǽ�8���N@L�>�Z�y�j������d&���B�ƃ�/1�]��%*h?�pI�:%u��~@�Wq�Z|~�xQ��Io��(�Q9+;��|8�Y��~�����(�<!j��pU˴
�rU_�ӄM��=��C�O��<�sh�<ާ�B�{�t�Ƨ�ܼu��k�3݉:��5n�f�X�Ƽk�m�2�f���Ay@=:�b|�t�ŭ���AY�u4+Ge��	�b�z��]�nZ
��/�~u��k��7'i�d�}�n^��O]�u{�ۯ�x�|�S���W_���ڥ�WL��)G�o~v���_.�B���/]~�����ݾy���#jھ�;��[��\y�޵+�}�\����m_+LJ�����?������hZV��'�����_���W.�2�ni����Ǘ��J�:���s�/3<z}6y��*E(��/��ޠ���Q�h9����l��O��&����1�Yz<�����._A��J���S�~���2ˆ8�1����Y�I~�+�{U������!_3�}�<���j]�w�q��b2��l`��&����&�r^�]��ot�*1�Q��l�){����zm8�:�ߍ�����+���C"H��
�S�a��r�61�F��q]��������^�i�]�'�����ۛ�ߍR����L~�en_<pen~7K�Э��W��g T%	ZV��b���i��j�*ſ����)F}��M�q.to�`�ʧn^�ޛڢ��������?��-�S2�����u�7^'lP��
ZJ���֩�K5v�Aa���~33�2*�6��{6F�!���> �b��.�"��H�B�|s��V����?�����37%�E{9��p���A�~ġ�ɸ_����j��{���”���h[S�[QE��c&x��WJ�+
&��mr�6���d�,9%X�����Y���W�Ƅ�h�ƽo��^�C;�{�'����;3����vB|�O�����a�gi����o&6%�9���`��8D��8B��1u�����ţ��h�=Ͼ��;/��mЏ�k..W�ݯY&�X�$�j�r��Cs�t�V�Ifx'��C�s�;�m���K\�%.I��J�-T7�	�o�f����lx�tkw@�1*Mf4�����6Jj��{@�ò�L��;e�����̻�/�Mٙ�z��[r�f��a���o��}���5��]L��;n�;w�w�E�'���I�6��}�����ǿOe�	��l���T�����U8�1۾�t6�ϐ��{�-��J�������&�x��Ǐ/�>�}�i���t6�Of��Ū��Z��bi�^��K�����7��?�{tyg��������F��	��4'�����*��=�h�����;�<��;�m�d�x��N��G�'K�K���ꍛW����7^���ނ�w��۷_����6>�}|�~��ʺ9¶���:���5���T�1�G��7G�7���w���Q�������(�	�?�US�O������،
j��(2έF
��G �K���ϔ����\be�q�4����>1r��G�ǂ8�3�.��a�4����.��Ğ����V`���
Y�?�3>����p^��'�|XwJ�ܹ&�,��'�:`�}2|��� ��uww]!�Ś�k~Џ�M�D����*����`v�����xq���s���7n_�ԭ+77�ŽBvyלҦ[�a��:r0�f�t�We^UmlȲ�a���|}#xV~�K��9�V��9�aV��B��@6����3�o6�!1�x���Zg-Bj���T<�z,N/9`�@�.�]��fs����-��������(;-�T�Zw��!my��첯�_;�?��_��
��L�
��p�"�KN+��0N���U�����|��y��o@O�7:$�8:�BX&U;��HO��X�$��Fv�=�&���h2!�d9%(����5�����bë�;?��h����Xd\��W/��V�d)��9"%fP��ǽ�v�(b+z���⪕!4>?�!'k�k�3�#�lȗS�����^6���I�*N	Rf�)��.p/]9S�-&/�|qr��[x^I�����Τ���q\w�tZV�U��_|Ex�J�2oi�`V�D����8>�їNݪα��U:���jp�j��B�X#;�
���"�9П�ز��
���wN��zl�J|j�'���{g�{�ҟ]�6+�us��㽘-�-��r4/��7��j�*6fߺ/�r������x�f���5�^��9*��;�x�����R�7`���`:�p�|���%����G�������c�� ������)u�^��\��c[��߯�[ͅ_%�
GZ�i�H�so;�����
���B'2Y�.L��@
�5�jﰝC�R�'���i�ڤ��'���i5��!eY�'�Ӿ�&h��lI�R5hyE��p
\�_�ʽ���6�+n�C���вkC�N��6�=���Ө����r^S��e��`��{��˛r!�4;zu��n�\���q�h/Ev�F4����Y]�,.+��trJ�ʎ��%FдK���m���2f�3d�"����҂���'Qi��&;v�c�����揾��uж��Vp�NX�tf�=����7�������S}f����W��f�	W�`���IcWp���P���?�zo��U��h�8t��U�ݒ�+��ς�'�e�x2�@�ѣ��q����Ms�f�k(�50ߪ�w*�M���.�(~�U ��W�<Y{�ׯf�|�y���j�]�̟��z2'�"�<C�¼ܔEq�����Z��6�ߧ�g�dǐh��$�n��$�t�ea#��=õ�D�t�h�	���o��5t�;�w�NL�,킍��]g�X��$�S(M~����]g�'k>
�3�c'���[����`jW���v�xŃmg[�Ak�{'Co~���L�@�9�y��'�(L��_ar���k ��Mҋ_K�|�*�	�U͝�Xd�I��=v�r��qoZ{n|�
"�9��"��w�L��
H��,��[w}�I�����mc"�
Fz��Ǒ�twg����QFc��y��f����7�}'��]�1x&"���S�R�p��(�{s����	��|3Z���<a�',������l;�o>8����w��|������\����q���OF���x;x|�qp�Nx��8�"�Wў���P���C�=I�xH��ݼ��l6��;�Zj]���T�>��§^��Oݸ}�e~���2��bkU,Ʋ����so�{��zp>شmw��h9(_��^�p7,�n5ЕoFc$��������?N�6w�&a�΄�؇�T��E�����5�����:���?N�3���>�?�׾\E�DF��5�Ћ�d�w�����pH����7��䏋���>�����t�XΩ�'�����	EST��vx}�)�{Q\rl%�X�Pk�s_/�܏,7GlU�&��������N�ܪ���lę
����lܞyдݛηV#	�s���
��$�m�-��1\��.�R]�	�ބn��pN8=;���Wf�	�9?�MƇA�!���`���U[�,�Z?!*�+e�V�|���B7�*c/�����ī�_�� �����d:��w�$��b2*��,�~s��yP�!DG��g�7V<��)0(��y�!gFB������!�_q̯��1����-�H䱿�u�ڕ��ͫ���?~��k��x��7���ǧڤ���d�=�T��i�
�P�q�ҝa�4�i�Ƴ�>ƟA����(��A����ouz��|彎�����T'~,J�X���`��y��x�b0<��J?|O�?����	����j���6V�9Q�+c~�@������>u��v�p�e;��_8�ϙ<Vù���|���G�&�u��N���v�	.m{'����:��r�ū��^��6/ݺ|�j�Y���y��%��dqT�����g���ʱ��s��=H89��;x9��H���疳���6�ۘk�	��w����=\�ɸD|���n>�Ƨ�榑s�KA�բ����O}��{6���ȣU����'/�x�
;���Ԗ���a�i�i����w�o� �kf����3�=D�x5���"�-JH��g��-c�>���]N�{p��LN�d"N��c�~�7��4���.
���Ǐ��~|����炗K;���O���c����ݕ-=qc:m;��9�N��������]!��� xV���w��P�w�֭�����w��Ck��>����ݷ�w�ܳw��{�-��Z���5��vك����k�o���}P������#)�������/%������a���	�9��BI�?��g�T���Xe����{�~:�S�U�Yx��i��\E��k������ḔkF��!K^�N�B򒖣�>^>,�O(�.v�Ӄ"�e�^O���e��㤟�q�_$�w�ˊb�)�+�r�Q���"Խ��H�,��~���~��H��BŤJ��&����#D%����}�Cl�CS�`�^p[�@�����g��֌Q��:|�]�8�"o�*�+��R�G2����_t�$_���������8AZ���2�W������Mq��Ӕ���JM9I1�Ձ+Fʓ�u���ܨ&�
{4 M�u�so���'?���E�)w.|��
�����<I��W������<ܦы"L��U�*��[��^��噏��Ћ4��[�/��9OE��C=�mu�S��R�ns<Oޔ6m�}{~/�Դ砾�y���x�҆r;��mui�r�v��9�Sֳǔ�2����?��� �
}��s�&w��znkñ���ï���|�(J�U���^�kWVլ�����S_�u�i��r���Q���d�ࠗ����~\�~\�~/j�&_
�ߙs�d��F��l��u�i�������鬙�-M���*��,46Y�ZK�6�|�#��Y�K|����h2�K�7���Vg��b�֘(\�:w��s��#�s�i���5ΓyH����]Rgfv�Ռp��������r9���?�u;*����I�K��Z�|��V����b�׺�z�$��O�>�`?:�^f0p	��y o{����T�LJ����L{��}^k8�>�W'�ѣn�ʒ�[��5��ܴ%�`8�y!8�C���qC��[�qA���e��[:|�ػ_�.��ǽ�#3yvH�%�ZJ�WP���'}�����ڜ`�S���T�{{'��~��k�/�v|%ށ:��G�J•�_��}5���|e�tq�9Fj�o]�!IQ�}<��6�l�_��8^�y}�uER��V����?������AP�E�>��������u��Ӭ[ύ��7��g!�s�f�T�fRn��om3�ig��G��A9�����;��#?���t�;7>�qWB��4��4��`�$R��� 	 <�| ��S��x��v977�<`4>;Y�:L�<����Գ��D�wO���C������o�=E�lm�����7z&S�ߋ��d��{�~��2i��7g��Z��C�3�~��݊KS������[;�H>0�m���L�;;�;� ��v��(#r����A��Q���lko���l���~0�w��������ޛ��so~��q'�pb��h�{8�ٓ}�����ZK�K�^	�ލ�ϗ�EW�~��bӬ2�}�$Z6�HǙ�Jn�5�c�/�d3���!ty���4�kJ�tA�&
��&��r�Uݩ(�Ҳ��R�~s�H}���9~ҚF�^��}�kW>}���ǯ�����>!�uL,�7XGq6�_��6G��ޱij-/�8���T���Ύ�Svsw�F�4�q�
�F+��4�M�n녋ե��Z���b̢oz0e�
5�[P�e�k���z�:�ԙU"��F��-�Ӗ�U�Kz~l��\�!?��9'I�kҝO�Ks�f�y�`���I鹾�{���j���j��d����}�}��������O�ߵ�wl_x��(��g�� sqXNJ2V�%#5�����EQ�wv�Q���X���ato�^�9�!S���:5|8���c�}p4�ln^��g�A9+	�M��7��eR�Zŧ�ݬ�j����
S�Hn͹�3E�5�"ӣ�t�S$���*<��q�ӆi�KI}J�@�̸	��;M�ݻW�z�s"I'ai��1f(�s�!���vndn`��9gp��@'c̉Ai�S��m �W{_�<(��0�$9v��=���VN�jٛ-�K���{��	��֕O'u��?�,�5+��;Llu�����9iQ��Q�aH�m
"i2Z#\�:+���e5S�
3��[+���;`u������?�d&�e��mNg��-��TW7�ks�.�Z��5#f��<��ܣ�0'��v��p��l��'s昬\�	�g����C:��`Y��!Iѧ��k<�>�&G��˔NM_�lQPŠ���`.��D� BW��⭤�ѐ�������_�G��C"��`���Ri���AQ��2W>-5Z��z��Fg�?��]&cS�7$��8�x:D�h��u]ޯ�C[@�R������ɏ�F�|�wz�5]C&_�A�	�n�ŭ���'n0Ǫ���սU��C#m���NTW�|����P�;����V��x��c��>�s�M���V=��IlK.*�l�>N(Q���K���/��$^���j���+��">�%LR���F���n�ꑒ�霱�:Y�'��"P��Sal��

Ѱ��,gx�ۑ�`�=��1�c�}m�xeB"625Nj[��0Wg��v�\��I3��]L��h�Y��Ӻ(�ثۓ0��l�_^�}B�����m��O�O ��:��c�ҝ�t��(����#?��U���i+�w�b�Z�s\��Ñ�I~�NK����Zi�������h.�ˇHh�x)6�9.� �3�jZ�M'nc'�9kU��;�>,2��Jڷ�X�=W=��]���U�x�Ҁ�`�|<�W�\���~�d\[����ݕ�]G�=2��L.�'Kߒ����ɗ,O�����W*IQ�[��N��9$uտ^H�Vu�
�*kP�a��4(Ԟ�E$)z'�oN��ݳ*�`q�
��r&��2��*�)yv���;�w��Z!S��[��j$-�U�\��IM���`���;�E_D-����{����O�([=�;�����1�F�����L��nS
�����b;U`2�S�g����x������5�Fl�:^�����Q ^�n�H�r_�TrnZ��?{o�ض�$���+z=-��|$ˎbˉfl�+)���.H�$,4^������n��q�rO��̮%Ս>����}��v|7�F-��%�2�}~t�
5�o�����??<~��v�|����Gm#�ė��Б�������Cx���p���<�mx���6MR�I�)�4ƒ�D������j�����SY����ǯO%铡U7��ެ��u��'��݇�&M����Zh�p���Pu�Y�ɷ`��%����D(*)`���n{��tT�RV�=�iWkpݑT�1pt>�L*a�Z�fSz���/'NˆuW4x�	��a���̑t6krt5ar��.\��eX
�K�؁����m�q7-q

K ̰O�a�9���Yg:�o�fN�`�P��n�_6�O�9;?<������O��']#���p�׌_�!���.�bė�0�sA*[��3N�pA.��Z@���$Φ����:�E'^A
�C@�H�L��6�N���x�_�����w��;{�����˜�s���!�Yx�Al�R(u㔒�H��|�4E�`���\z��p��c1"���B��A�&0
9��.��m��ip��
�w��(��y�Ӈ���KN�ۿ�L�AQ��8��D�4�2;KI��uX�D����]eM�(򉣋*1�M�2�o-�SXSX�^������W�ń*���+�u���B����Ҫ$��	�'��:�N�����sv�:��Hr��4�7Ztl�U=d�R4#[�ioqba�FK�}x�a�V��[��m5x�[Co�����emd����H�E�
*�t��r��"�o��Nq?'	ݧ�L����zA�ױn����s=q�a�V�w��h�p:���h��w|��ٳZ;�wv.�ڏG�ֶ%��ݚ�`g�j]�x7����1��_���Oͺ;�o�k�.����U���uw�}-˸ۦ�H|��f78]x�0���ֵ�	�9#;�hY2�B�p�ޒ�����'��4�!co��8n츙��hVg��h��+�e����B���c����A�\���"��4��#�Hp׺��ʁ3��.������s��S!�#��v���i���Z��
��
@0A<Ћ!�_7kw�w{�w���s�U��u�C��whd_�_�9�����949��{v~z���K�n=�j5�c՞ֶr0�$T�����
"Y�b���W^�jk3��r�58=
�\���+�J*`�
���V2ӕL�F���Z��CRqJR�LQ�L���Bd�����[v��ܾ�U�t��-�$S�J�ԏ�fz�	8�(Y�\`�Q%&V�vDٮaeˤ/�ɡ�ު�mD�H?;u@xxBo��I4
�H����|Q	`��葙���m��?���	P�B�_RWNd\���r<l����l��󇧯(e�3h�����`��K���
;��E/��;��C����$�	�{�Ӂ!��1��L�ö���	���B<�DȽ�Ǫs���8�|��?��p"�72�Za�����G�%ǞI�J�/��]��G\�i;��8��߁�DZ=r�|�w�q���9�Ay���5Iޒ�,�����e�{��e�zw��x��=7������N��H0_�
��>4��P��!6�y�(	T�alfV)X�I��觯~t��T��A-��UX��Q����bMէ����oc-�D  \t i`�	��a�3�J�Q��%�Ft�h�3�����Λ<�\�,j�ť�P2�Y������j�~�2�p��&'T�/(D7F:��~ʭ��:y~�������ώR�1�ۥJ�^��>��짬��a-��Ƨ�]��HcZ�֘ne��������pE�޷{{���F6u�6�eA���� BO7����(#ֺ(�4W�'7׬�ۨAG�ϯ̯��Ƃ��F��9[�t�5��[�]c+^=9пV�*?�{�Jp]G	*�&a��Xin���_؋C$k.����#k�΃֡R�~�~�#�_�ME����N����e'�]!��8���D��9R�F2�(��	6�@闶��aEv*n6�A��d����f�>���Lš���Cu����U ˒���_P}W��N�4�p��j}�2��y,iDIy\n�Q���;�=�?V�;r����;�o�����'G�
��Y��b6��O
AaM�`*�ם���Bs��L�D��Ѓ��u�,�h��y-��z�A���@�"-���`�J��{^Iޡ=.����i���Z�����`w''����kEF�ԤTഅ���ˊ�F݅3h���=�����N��j�/#��~(�;���+�!�P�M�R��йC��KA�xF)�Ic��)59`���"�R�b@�x�0����l��8��F�^i��D���V
vZ����<cTk
)
�D��j��O������?�ܿ���#�sTc��i<�!Z��7�����~F��5{�ΛZ�N��oQ�j!�f^ ?�E5s.���._S�<rw
~�7M�R��g�Ro!̅���nW�
=��Z�x>��TT^Rx�	���B������nE�7�ル�sw�6��W����	����F��9ÈuO�
��WFV�+3fC��'�Vف��#�(�M�(����
�@kj{�0q�lr�=k��N��{!H�d�^�"d���ÆR�IKqcO�A��?p���l�QǃV>9P��	J�p��~/`e�ܧ��Q��))���s�b�PwF��� l�
�|�91�����q5Ld�*c
�*�E�NB��F�.�T��sA��쎑T��I	�&�ќ�8Q�_���|+�|]��)�Lִ�v��F)d��V+ˆB�J�mLB'~�(�Ҏ�L�P�bHiz�<�P��2D{�p'r�M��=�M���f�(�-[v�dfm:|ˊ9e!�)�#���B�sR�*�"&EMkW �!��:�	����2{/��)x,* �����t=�,ߘƆQ�u��O�He7�KM�CcO�E�};v<,���,b��|ɕD��<).q�'K��Y�y�9���(��,�������d�jW���X� �5k�6�,\�}�f���f)5��c?�X�W�0��!
3�T����>���N���ā�wH��T������1R�тc��W�}�5OW�M5�k���E���]����hr�Ye_�"V�G��h���&���{%�[{1��W�G~����4�'CmM{<�Rc��#�0��Ȃd�Y�2�q@h8���u�Y��Z$1�C̣��כ��,�q\�k���*Sa���¤W$�hZ���{�Ͷ�ܺ��\�y]��NyȪD���U̫$N���yԵ�|��n���Fhd�4��G�:�t��k��3�� i�13PC�mˁ}o�,��TN(�d�VR`��(\!}x]�� ��tV��VY
�*V��-ߙ��pײ�%��{|��Ejx�����C�,?�����'y���/ϻXS���ݲ�jN�(��v(�H%���P�2xf��%F����v�ëlv-�֫�v����D��ѫ.�zm�����������z��h�-� �e!��&ܿ�.r�
�Eش�-(=�zSL����Ϻ/^�|��J���C��rT��NB�@/��G�ݜ���K໮�8��3�8솢[��S)����U�Cg�vff���F.gJ��g?u�&9=yy�U(x�S?����5߬���J���]^��s�!/9b]	�	��쎀�K.!��z�	W%G���Y}#���41����іW�8ۋ��P�ˋ�����e�Q8[)�	�D�l���yJ�9VeU��`V��L�g*��"������ߣ�%]S}��O+���?������������ >�D�?�X�i�b��(�`�AM#dGa�l1�j�Q2��-s������%2ත_�
�4���?��"�L��
S�!n��j�
�BtM��^�(R/�]>��t?�`w=��H����V��b	r����#nji�����}~|�}q�����I��q2`��:�^�?yl[�����'w�������@D�~�?���9�Mًm�l-̛�q0���Ǹ�O�-�`�M�9ܔ~�g���dh!��jb�Z	��dֿ#�2��i2l}[����8Y�Jb��uҏa�,���$�P��w�
l�#d��Q��aB�pE���5����̹i���OOe�?��m��l<ަ�x��)�5ޥŀ�{�yL��Ŋ�к>�àm�k�Vp�{�[y���EN���XT;�!J��y�n��%�0@�i�v>�cOU�=��#���{���/���{8FZ�9>��涳������Wt�2;l$}�AV��1�U�$�K־��E�A����q��ٳ��7��ׇ��R�;N�K$P�����퉳�GB�>g��C
5��r�W��I���x�DZ��U%����`��_7Nh�+�=�A�2d�y�l��n�	Մ�\{!{�r���f��F;�3S1�߿��ߴ>V�����V-ML���9H�'�(�,�&l"�n��ò��@E�E��ޮ7�ol�~f�����(2�ž�U��~��YD"�
��uB����-u����GWl]�.5c#y��e4��
G<ɒ����a�n���o2�Tt�M'������M=-2����L�m�&[�{�2mY��m�O4.������򟱓�H7S�ӿ0���"�p�Yܷ����H��Ǜ�RH)�=Pk�#3۫����� A�C�u����#0�^`�ʹu���4!�.^�E�O�%Jo��z�ݏ��P�k���0�ewG.ԋ��r"��(����9z}o��<9y�Tj���'�O:��Z\��Oi��=���ɬ �Ȅ7�[�J�uP���U�
�^�1:��u@���OM�Jfv�K������A�+Ρ�^:���ƺ�_��7fFX��p��qӍaeR�K�{A�_Dv��nw�^w�;3y�[.�����GQ��p��}��u�1Bai����* 3p�
WPC�M^[|����i�)�Jv5�7lX�j�2N�D]���]����8��s�JK�X��K��'O걽|���$�+� �S۷?�
�vv���n�%I�".�wۻ��z��E�v'��o~�o��7��=����]��R�6����1��6eP���r�Sz	�]!��m����0�Q��r,�p%��+�E�]r���RA[�����Vjqx���=�2�B��g�|��8���[O��A��Q̿K���/�s�������o���
�{��d,�0^	���g\U4��ʜ*Uht��r�#z|���%M�aQ�WTB$&�
��>�Ž����nZ�D�Pf$�i�<d�šN�G�Y����,�,N#��i-E=[�{�d�e�#�{x3�c?-����9�7*�En+���g��I����'�����)KGD1'%���C�,�c\.��
��pn��9oR>�V�PԽp�a�#nܣ��E5¥�a�8�
I���)y�u>';*�e�.9�RR0\LQ��|X8��X_����*����y?f�;��V��/������C+�&����l0�9W��7�4�xϏ�/�y�"=�loF��-jRi8U����n��]��}]#���s7B�Pl�V��h��qu� #k"�QU�9��>�N_������(�m�9�8�ЧOڃ��a�ξ)�Ke1���X�Y���'����ѻ����B	��TЎ|[��FJ��9�-T�q9)�h��D8o*��j܍�U�o��0B�9���z���Kpy8�w�H�8��BtK˿���B��kx˧���*#���wwv�s�_�n�����f�?�kr��L���.���=j3ol�j �k
Y9c���hՑY��4B�'b�囲t�C����}��͐���QL�q,�p�v��j��\�?�;}�.��g��s��L��x�p�[����+�?�|y���s�P���ޝ_`.F�'h��9?>y}v�v��)�i���QoZ�@T`�-z�ꛍ�:#��DK%��]qw|�n��_}�_�3�hݴ���2mi���M�0�S��
F_q���Z7��E*�z��y�AӪ��
s�7��	kM�c�~����_�7�$�������7��F���h�B�3�%yg`�l���6A��/23��s���@p����p�)��+)
�a������aYj
G�]�r6�Ȝf#�L��zQAQ�S��8��O ;��]������bB�;uQ�Ԕ�l�/�t(ڴ ��A���s(MQ�s����>ZF�GX�C�ި�<p`�&U�%)����pᇾI/$/��hIH5�|�=�OI��k�doR���@�4S����>SrX�),�Ց&M��$
�G�`D����7‘W��H�U���(��?���]5�a(^S|�����e�YQ�c�T"���Q+ŒI�L��O{�1����(���..,YfZ&Hx��&[{k7;�لQ�sۉ]<�m�T��8�LW/v��
�b0��>����?t]��ȏ~��"��b�b��aк�}�#~�:w�e�"�s�z�f�(��/
/�]�z>��X�܇��D��[��@5���(��X-K�ڲv+��P����O�/�%�=%��5����:��R��*��N�ԙ��j
6��d"6�J��\m�sT���<&�Ӗ��6��N�k�vO�T[,�"@W��ŷ���5�6�m_�Qy�P�_k��Ϥ`#W�Qk�����f�$IM*4�Z�Ȳ��6S��+;���2<�U�*����	�
�%��,���;��I�@���5&�2�$|���WG�($�O���u�4� ���v�lU�J8��#�3Q���wSg�|ӋE��~�\(�`
UZ6�%(��z"���$��-��=��k����`OQȣ\��b�VGdy�a������5f�D�m�i4&�����Z�{�p��D����l-���[��L|:���*7��S������\r���);]fh���'?,��RT��f�C��2f2K�q�+�F���ҵ\d�$S�|��D��9��wO�U��y�l������?��~x�����g���I�=��Tp͝��"���3�8)�r#�4d�7j�M뗣"�մ^�0���cN�3�7͔��M�����DI{��Tˊ�kh'���.H�'ɓW˟$O�M��`o�Q�P�٥�i�7$�1f�<2L����:}�E)�!Mi-�N|X�a{�$��I����md����0۪뒾�3�!ջ��Z���E1z�j�ͺz��MK���"��A����$��Ya:�Z��d�?0�ŧ�i->YaV�w\�E5�I7���F�(F���X���7TgSe�x���RJv�PtQ��b�it��?�Qd/�94�Y�q,o�S�rl��K�6����7�hn�p��Q��5��a]Աjg��iU=�0K˜�@�NG�(������E�g�ƙ��̋��L�u)rgɑ�Ț����.R3��jK6o��ש7@��ЅC-Wh��ydj�k������	^k�(_��G�b%��?�tFo~z�}������O�^+z�;��J�H�% �	�9f�'E��*��^�	A3�1R��{f�6T]��(맲���᳿w:|���ѩ2Ӕ��tY�L5�~2��<�ȗ C�d���(L�(�����n��=�g�|a�ȃ,-�ESt�P�<�PMBK��O�8b��)�I���\�g�g��`,3�3�bW�q�����0������M�g#'��f��''=������i?��1��H���^. �ESr
�Q��YQ*^�G�J~q����6��ʖ�A8(k�u;K�C�~�o��
(�}��z#�Ws��x��N��$�Y���I�p��eRpg����d�E�bj��w'yZ|�6_(�<j��FMUU��0�$^fV����z�o�GǹJ�+r��_��(r<���&�ь�K9��[�l�Q��vge��\��R���/g&�����
,.X-�du8�]5ɞ0BXuh�t,OS��ؖ`��f�.
�
���v�
��4K
�o+v�l��R�;�X����XP�����\�G��u+���{f�,	s+�M���"@��O�́�F)���i��*�E������P��$�jp�e�W�ܠ�s�S7�;������Z�
H�=��,ܲ(��o$w�U�u#AmC/�D공����w�r[oޞr�Ϗt��Q��e�@^���[��+mN�=9�7�ċר�+�SG67���z��Q��F$�7W�@�;HO��FU���n+�U����U���c��sb�vk�w/I%��g�G��U��T�}溱Q^d�!sW�U�'ƍ�Sx�}szr~���e�Ro&%3���4�)(.k���h֕67�+�:ւ��}��ô(����3�
��a�ƶi�M�! �$°�����O�]��2�a�-}9�g�Ū��,�_A�F
7������;���3�k���l�z�R�Z�8%!��J�/6ߢ/��J�f���!�}	^pU�Ͻ#�soK���_��#���>��K��c˔Po�����ė�W�����>���������L�������C�
���3xj����I� ��"�b��:��&g�Y���p�D䃳�x�؃�bz�ʐ�8��~�n�Vcg��}g�d�3��2�, `�G�<S.g�'AZf�ڗ
+wv���5�~}��3�*��7j4��S�O�'��y��MQ�?�qr�4�h��榌�pV���(΋ME��yRs�(h�+F�JRi}j��/�d����(TY�\m^8A�������0��݀���,\i�f�����B��.�O'g��E���*	)��`�ϦJ�`���b
W���ɩ��,��۝ow�ֈ
$`RkY�ɶ���j�G/�:M�-Ą��
�}�:�$�΅\7h��*��^��Q�����@�,o�W��� 
F%~�
9:t��5<�8�U���S�|!}N�l�S�s�Yu_VT{�Z�^��|��\Kt#S���g��7n�B餪��&��@uc=�~3���Z�l�Vҫ[�@�U�Jn����l�V�F�fڬt��Ti���nUY_^�Cs�׭�
R߮i�{�[����^lO��,�)�q�fA��zyv��X:��9��孃E�J���p�XOaE�MxW1�&o�+��Yn?�1��&gY�N~
���m��Zoh�:*a�
O�:�¯�G}U�?��??��<�B}	{`!�T�[��S@��������[��W�Rk_f�T�nx3��?�W�`}^03�v�N�'��U�u5�%p�eLIQ��b��[W.�:�fQҿ�mP�[L��`��y���A1(�ma�x�e�m	��; �_*��������3^���ӗ�l�>L.�~�p	�I[�<��_փ�|�~���1�]��5�w%0Zpdx6&z��є���m��J_�kO���u��N���6f�ڰۅ�ߞ�f�.<�w��O�A.x��n�D��d�,E*��v��eI�1%�8��nMD\A���;��w
�UI&�E�dxrӑ�՝��F�����.�D��w���ʦ�0�M�_��  ��I�'$Bl���wYG]y�m�AeT��E�h����	�7yjejM�;�D`
VͣĒ�I@Y#��pw)>���i@8�&�/k�{����������C��O#*�Qx�[(K������3	��⟀tÐ�
�7�\����1��
(k�d]?�,n��k��7���HӣT�(c�F`$�3H�1[!Ew�9�k%�F=��R��n���)e�SY��B�(�{|�ZkDv���eS��}8[�����HA��(�c'�:���,���p����W��k��Ֆ0��g9��4��Z�����ӧ.�i��Kh�Vꨊ��ő�)k˴�G�u��p�a�MRd�.U��Q��}^\ṛi@�ſ�C��&�L{�4�Gn☊�{���NGʗ�������_>pU���;����Gn�?_���:��%������L��Fn�ff�T@<#�T��W���R���8 V���_��'�eUL��4 
Oe&�J1�F�͢ŭ$�%�Ւ�	�=�L*sȷ�>z��	e��J��+x�L<!���5��//�T2�|����1������z��k|	�j��� �L��:��e�a7/y��V�,���A��w���>�_Ț��>��%��F�(��؛�B��{w�z�L��
J�|>��W����|p+����x~�8�2�s׌�����(��n����Ɓ���?&N�����n.�ϣ�[���z�k��,��@�Ͻea��6m��[Foэ��s���飑���QQ#4�I#�#/�u`�:��ʥZUV��,������|���X,{0pE�cS���'��'N��J@��vr
T{-�ǯ��E�.�hW���f�Vd<�ɭ��wR\�����"�������@���5�����&�
��b���X�cH�6֥�*��mN�
�j�D����4��q�
L����X
�tP�r*˗�CV���C�U@�
f0
m�K]"������ަa���?6䕣="���7��Q�})J�]�JS�D-���"x��D��OV�d��]�7�G��T\��7�V!V�L3ڪ���L�s�����x�g��Rs�n08"���3z�'.��5��{�?�-�n�j���~8�h��Z����5����W��}�b}]��	�-�oC�K
p��6qrͿ��If��UNoT��O�9��M+��&w@7����;����q�ͨ�(�o>Y3�޽^�r��z�($q��������w���zg`QO��
l@Fv�~&��s|J\'ݰ�[��V����p�\�ڵ�5��uC�$`{s�|$�i�,�Ǔ��ݴ�j0����A&��4r�&o��e"UÏan%���]�x+��(N�Q�z��p��%;�����p���N�2��*�j�K�⢎�yX N�~^�N-���7�Z$��NC0�򑋑-�śS�^�|9��k��5&�
���y���3k����G��~{���p���T��CUŵ�`n��8��~������뎓��5�;;qL�ʶ@�h�{����e����
>���1͕��0��yn��	ee��!��zԫ7��LV8�*�y�8�[z�n��[O�?��3J��װ�>�wF�ǽ��������.F�.���W(X~�䛲�#��!�K��5IUس�H��}Z��m'���3��~��oV�v��X"�
��hr��aV��o� �g�i�)��
Rg]�z�x��G���%�n+��tF�/
�vY��t9MϿ���?ڻ���<���{����Ɏ}/��Q
���$/1�i�(��2�j*_��5����!2r%F�3���6���"�X|���f
��lT������jE����I8��Ά���a��c�t`�"����\��8�c'‰*z��m� {�#�i���p
S,��D�6�����MK�y���ِx�B?/�يmq}�ƣ*�2[x���zm�5��>�V�&n&�%7���З@o}��.ʜޑ��:�����Y�;x ,Oϱ���h���i�i�,���K{T_��8�WX�U�T�C��0��z6���B�_km�	�f,h��؉l-h5����V;�Gy������կ$��`הG�p?�|,ga�F8i@8�r��(N��8	F���4r��a�E�Kr�ӿ��̪����La�F
�����2	�t��k��+jNx[�\B���;\�Y�!�<-��@�6;%��Ur>X8nu������GրVZto��I�d�,�%�~$m�F����4}�}��u!iV��8%��t@A܊A� %��|�SC>�V�_��� �w�.�Q��ف��V���߇��2�97(����x�ų�[�OD�b,��8�C�8�@��!b�����m� <w>��3��Θ&ࠚT�!�F\�9Ӵ�W.0t�PK�q��}�Z��,c��"���x8����� ���f�������~0mA��9��;�:�� ޜG;�Z�Q[AM���#�Q�th���Lspv��)�ced��~<:�a"���ִ�j����Ɍ��0����V�&��m�Q���^f�mN_Q9�sL�g!��*����|��[5������Q/
G�F�`9�X���ݴ�U�&zX2��dj{+[��(�m��@���Xف�-w(��Qce7�M�Ea���>k�����X�����N���!�ъ��6����(��rh�E̖�6�H"#g"a2#70��܏��g��-�ʪ�0���N� t�j�mLɺ�`z=\�(�XL�n|1����eW��D���ʸ#Wl����8q}T�A�4��N�Dh����=��i/�`ٶ^�3q��Lב��	�7&acSRJؚ�S�x�)��,����aiίUD8S��)m�w	k��$tu��&�������>�4����j��FF9t,ȶgd
����.��D�C�ɝK��(�Zs�H�9TU=��v�Y5
A۟�a<�Eز�7ܻ�=eC�孽��BA��Φ��C�
��d(��/��a^DA��1�Ec���@
�n�i7���3�_u����2;mٔH3�뉱��Ȳ{��!��:Ȇ/�;[X�Z� J��d�.�މ�	�%\�p��q�.d$��Y��c�itx��
���$���:ɰF��q�{�Ѱ���w�-�u������d�/��x��C*6~�m��_���t���
5��8H���q3��$3M�zA�V��#:ƙT�g�˓e����(��T&]\=[�7�%���^��o��i0go����&�9��9m!:l!�o�2��)Mxc|,�C2�(Ν�7�?�����Zacֽ����U�o#�ھ�y�H��d`e]���p{K��,D�zo	����&����SSx�Rgs7v�')Z��Dn�J�p����$��r�kvw��Io��
��u���q�l�hjGv�8�7��eQ]��h
D׫��.��0X�/J)8�FR��!�'(ߢ��u��tM�gDո�l�0�*�U}�T.n�F6����\a<�!�XH4�|���prc]e-c~��#������?#i��#{Z>,9*;%
:v�<ek�6p
���`)m�&C�ji0���l��%>�9�,�vD!��͚k���,`���Xf�4E���G�,Xt��Dˊe��ȕ^�
p��ɺ���:Del�4w&稢�8Hk����v�	���1�u��E��LW�P* �7#y/k��
��"�1Y�o�QO��)��%�BQ��:Q���B�*��hyc�-��9�TӤ�v��hh~�
����dD��N��XJ�~�웜���N#�x�Xoij�gZ�
���Y6YG��(E����˃�_��S�^���Q����i�R����@��4%�%�`8tc����m�V�h��?�
�� 7������W�Dי'�W���q.0��6�g�)0�M��b��R��Ua����ȉ�ӏ�D��a9�=���Շϴ��5�@;�h�#�ð�]A.��ȝ��K�2cw�*�&�"#��q�7}��Rk���n:X�z�/8V�n��"�MGJ��*���X	��d�B���[c��6Q`aҎ�6W����4�  8��p�A#m���0�^p�I��N�VL�:!9߰*��K�Ey�Rr���	Z%
��Rh�\�r`�b/����!΂�4g`��א����C�n����O���t���տTֶB� �i2S���ž(d�Rs� oZl}�(�y��Mʼn%�r�GA�����{��cj��(eZw���0�I1�-MD[��MH�㑫@$O����t�@�6��N�fM�dn�
��sѩ�M�j���	��r�Ǔ����LP������z��<D0	�œX��P�|�a�@�娸�����R�@�x��V�Vm��7��
7��U,<P�R@��f��`.<�G9$�bWD58La(<r���y�BlTv��P��e����h(s���A�[�.�yF
��4!�R�T���pc�3k��7M�S
�CA�܉�4Ty�3���R��ݹ�je)V5K1�e��ڛ7tm�TPg�`KQ�������6-Mx���S�ĢV�wcT�d3�z��\Kg�4�SZc��P�>`��M�<>5=-[��E�|�Yi
��DlP4�1�F8Mrƴl�rߴ
������٢5y�8,���A��{ym\���_�ܕi.2&צC��di���F�	74x�N�k�g��;�@�T��E:R����FWk�8��ʝX���}JYi;��>�I��A+V���F�g���/S�;�ɪʼnX�CW?�b0r�wI�����T^Ȗ~����M�B�+
���>f��=���0�Ο:��'���`�h��TΜU8�� ��Jt�	(���;����#Yh�U�G�6���&�!h�0��
h��-7Ⱦ�������ʹ/)�6�S�"���/�����������Ȇ�1}���37�$�r�k�@ÿ�wu̥����;��[��[�y{��~o����|��˭���P���|u��)�e<�<(���sS:�5�֦�J���5�S�;��6���5y��]t��MϩϜt��ͦ�6+�p��l��:�-��i�$�5S^3v���7B���L>��S
f��7P�X�R�"'9(E��O��	FG��"�Y�$�"�:�����Om[�e`�	��E�U�@%�v;���� g���u�9���L#O/�!�W��<֔̅=ъVB8Q�|�L��UkWP��TY�f�&V�N��6�US�F��~]i�����F�չ�B�9E�|�;���hω���c�boʢ9�w�f�Dt�+���k������x�a'Ņ��ٳ��ַ?��h�\�uBa���칁�:�p=�HG�Z�����䲞�]Rd�;��ᓜ
�l�c��3I�4sP�tFHޔy�m����C�Nk�^D��L�@�-�y�b(�aH"�
�-��jZ[(�O�2�h3�X��r��mZ�I?*��8��S���lU�ȝ�܅)�,bV
��ȱ&L
������\T�vJ,�{�ފ~�b�uM�prH�6��T���[�>�*�C�=p�-t59:y�VF�_0��������>N�>�f�򁵣(�0O��D�b�0�L:�L����f+�<+-ʗ[\FR�tDA��;�T3�'X[�:0$N���y�qvM��ᗗ
��WC����+��v[
g�Z�|͜T������t���j?Bh'�H�2�֥cJ3c�66Ɔ��
�=��H�BtF�vN;�-1�B��~�k����h$0�Ah��y����lOEr�St7�[V�qM�g<��"�̭���Ba[�l�Mō�7B�T:o�����,m�h�n��8�Dp-T(7p����G��I��*- �^Mh0*-H��-X�DA�r����WpFѝ2���-S�����+N
�
'�A��^���N�Gf�^Ry������:õ�z�X��i�ǵ�)��9(]���X=��>�����TJ��(Z����J��/�Kr����X���KssK�Bed�H`�h,DDr��ͬ_�U)����Z��'�S���s�ճ��q����{]l�d�<7�lbe_�ʣ.�M���J7R?��6Xa.��r�+W��1p��`�<�lp5i�PO�8y�+N�qEA����9~s���qD{�2�za�&�c�U�X��Mk��g�4U�󣃬\��N�~t����=�.����-�Ր#�ݖ]�>]�A��A���h��z��F�G+#O�ņ��%���?5vsC�C���D�-)ɓ��4*N�
���P$�c�5��SL��J��JA��N�����.�9�H����	�0:�WEH�T�ZDD���zMI�?~�#����Hm>[RTs��PR4\���I�ʰ����!��eYc�'[�MyK�,�n6�F_�n��Cl�
B	w�ȫ#U��!�6��E��V�}*�Zp��m��d</�bb���]�:�ΤQp�"�f�V�*v�N� i�k��p#V~Q�#�nBT���"��1j�)]��x`��������蹰�aݤt�R�$�����\�s�-kS��˲���]��!���O��|�bvѯ�X.��6�{�h��E��+B#�{��#��$��K͂y"���^DD�
厲��'�EN�ßa��g+h����r<���8�)b'�; �N��Z�c$���I6�/����^ ^���+���k�1��>��+8�x��å�X�"�bSDq��q��i�D�Ⱥ���]�į�)�}�2)������>\�oW��Zg�g��(&��¾��s��M�9"m
�8�~��
Ǩ|��I*�7���L30��r��z漌l{I�b�aC�h�|
VG��æ%H�A�Lb$h�A�8��B�4j$��j�-7;���8ڏ�����ĊR��g���O��cW�[ tM#iEh��ސa$&MND�xi\����J�yV$��R,K��g�&S8��
;��я5��hX4�7��>S���
S����D^�̐�
)h�BLK'�O��0<{�W��"�k�+����k�M9V	b�&;f��/���F�T�_�Ԡ����p"G	�t�jDa����<nω������=��Q5�HF�4T��&�9J��8BJ��Zcည�'"��~��N�+�V�ha��DO`KF2�ύ�������X ��� ��i�g�l7A�.��l����Zsq�	!����<X�фOO9�t�p֩P8�Fx���L64��5^�)��Cz�bH�����>�`lN��m�s���HD>O/!+ݐU�Y��⻒+��oK�+@����O�'�g����d5.8Y�淎Y9߿}��ي��v�/��I+79Ӫ�[��Ȓ�R�)���c�}��b	�4��L�:�,a�����{��iF��J�hn�i43[5�}j�G,M���=��py�h,���F>̩I)m�r^�do�	|D���1M2�?w"��H'!].-�J*�
d�;м��P-;1D*:����D�S�ܠ4�� �c8A�k�R�%�~��{}��p�!S�\`�:LQ M��mxS�@�����%+�#\���\���s�w��2L�3��<1D�)AG1� s(!��'�&RHd�2�>7[�:ɨ+�n�T�C�)�,��K*��Q�k�yf�8�Z"ݕ�ps�B��/,�����i:"���x8���n35`*�W�3i��6s�BI������y�� '�6� �/E��ӓ9��[��kZ�_���Ľ���^�"���M�����D�X3�&�G�%��!��@��V�7�Q�T��O��d:A�n��`����V4r�ݩ��X6��7Y��ZzS���.�:��w�ހ*]W�+�Z�:	�On�j)�d���Z�ùBA���{G)3��N�vf���X$L�)W�)
�?��=�L��%s�j�e-�4Y�z۬�%�K���k��p�
R)��rg(�
�^1�Þ�(�P��;�q(�-�@�N�;��o�.���22.�d-t�k�ae_����4e�����r©^��.S��%��O&�I�m��N+К���,�x��0���*�����I��(Kƾ-&LY(�?�&j�ݭ�M��i�D�'�!���a������<]�w���'����sB�J#o���
֟6P����R	ٓ�x��aXT$)��sh�11ɑ��c�~�8�ID��(L�(-��� �>ݚ$�4j���_Ya�7���웏�����ƈ�vb�zV����}��@F"?�}�s^��@/��"'��߶�[���a�`�]Y�g�1]̽�~3
��K�1Q[VeQ��j�$Rc
mk�}��+`�7"��vi�>t��Q��`�q�O_<��7j��p��N[x����q�7�$B�4>�ܴ����'��_�l4�;}|���o/?^��StE,�z4wD<����
l���ͷ��[������^�}�]^t�Ay���m#��yV&P0Y�
dx�̍ɖ�J���Iu�z�Y[j�:O�κ,A��QqԠ�e"�����v[�$
P0��h�D�=j�/7U𙓴�Q�Ff�Q�+D���۷��E<H�\�$n��J^d[�c�u#���m���v���@~�+�(�-��^�
D���i��o\nz�\�tx���̘�jp��Q���K�H�ԗ��P���u"�)d�kw�h�����o�?�����o�^h���1�ΣV�� �Qي2Ɲ�<��Ejr�
e�e��bMyqv~x��Y���󟺯O�G�Ϗ��p��,����#��`��zg_f%d�{�ޓ�ewV�.W�{�i��q���GW��	�#Aʱ"���?�n��iѢ��~�``<����a�W�Z��ܭ�j(Ik��A��E�4(ꜤA^�ez����AQ�*�j�vc�=c��h{m��G��ICs|�ä���yʰ���VD#�!l��&��B缱��{�jgr頠EM���}�.�r�.�W԰yC29^u�5rdc�Y�3(J6@9YJn9z�������mz���I���1+�we7�'�����M�^�ag0*,I>��~"����9�
)��+R�3KG�ԋ��;I�2�Afl%�00
��Zr<�ul�>d��J��f���>3��D���m>�P <9�S���+��}:=��'��H�/��"a
6�Il�<P���d�D	�LL7����6���ib�P&�F<�w�B2�K�U_�G���I�bmq_�c>��1�y�����YBCe�B�(�1!���	aH"k�  ��J-�j�p�P��jxT��k�Ȗ�s.rw�ery�j��L��,��7N���M���O���޼�?zK��Ik�I1Ǵ`(�,�&��&;������v�ZU��f�]qe��(�]���QPh�,��V���-;���3�/G����M���*�u�7�dk�1�NO(�AB�9�Y3�l��cmb����|>oO�)�\8��3���t���R��q>��^�b���0��7c�:���?Xx<����uV��\����F��;�����j���	��
��,M�{�4��&���.K�zK��^2�}����Dp��w;���t����1��Ys�������d�<|���w�-�^�����7�ߖ�8���w���W�������;:����gWA����g�g���������{�c��տf����i�e���?����x��A�;��ủ��~��Ã�������xv��g�Ѯ���|�o?���=��sg��=�6���5y��x���_����:����=���_�y�\��������v�=�\};�:������Y�ko��hO�	z��{��Ŏ,���2���2���O�	R�,w�d/zݫ^ڙ�!�jC�g1I#�8��{Gj�^�Mng��6x�w��#�����Z���d@��4��E-�"t�=N��s����?	��7 ���Zs#�j��x�9�&<��GE��<P��G�y]�c����JR�Y�vo��d&?�MXF{��@�kU����iZ�dtO�Z�F��`�z�|�ʟ�s<��\�b�pҭ�Zzx):�o�xt~�xÙ}<g��n�A�6h6#	�1����(��6�o�֛V���՛z��=&dA�—Ԭ�yY
_�7��ů6�U����U(��t�8�iʅ�e�Gv<�֑�	k�t�[:~�9P�K9(�� �[��3+P<���sO��:�vq��I��f���i�O�Gaˡ�"�F,M�®��nT����Q��aYڽX7l�Xp0�b��`^�M�&}�C�����(�~�S�UZW�L<i4�V�
JU��w{��Eؠ�������1V������w��[����+���PV�N�p�,�$�����zR�HK.і?�;*+S�AQG�$����U��?��ˠ?�€*e��QԳy���G�[u3�m��%�?8�U��[�ik��+�IgH���{�>.���3���n�.E����4��y�Ӫ<��KI{Q��opC��F{����^���j- �@ђ�bZ��Ot$|}���aʊ_�$����2���:������w���J�E��<�?C����R��PM
b��%FX��*4�K鯇I,����� �~qba	��XM��j8�g#R�G���ܗ��onl��0��
��̬"r������8���n�/JV�����G���`��������‰@�g�z��ߝo���&�7?�s���G/�Ώ��7��'��0�鳟��ǯ�n�����=�����������Wݿ��j�Ѱ&y7��Y+���)6���Ai��|y�6���]�q�*%b
���`�)v�S�3U[Aj�Lc ��_��$��S��Vd}s���'
��G;u�k-�TchFW��t��5FJHc�|��TD��V]�|`����QW�ѥ�+)���	�
�#�D��N���jэ�i+g�:�{q���E�"��#rZ��ޜĉ()MS�M�?�Q�\�k���w}�?��y��ᣇ&���s�����W��	�T$Hf9
*@T��4\G��̪ Q���Ps�,Sw�-g�l)pi���>����c��:�.��,-�,(�5lL�d��8�T��F�T�ޥIj0�3v8�g�)�}С���#2��i�~ƪ�eL��5k�ʰ_r�=Ca'�-�H\�(�O)6��+�7�|���r�M��8�l���IZ,w����֊TO�$U�y�s߅�J���Yw
-����+�&X�t6�E�ك�}�hq�8��b���
�GJp*�םlyՍ�^�n�S��+�q��@
z�@S�r��n�Mo�J~O݊wqp�%�6�[�4��,@j�۴f{�WX���rJ�#�hj	�M�<���1#��w�F㦿���ŎR(�c��
	h^��-��⾒|܄��1uT*��VN��է�0��*Л��(���N}�(P�N��j��sq�3�lߑ�����M�v��Mc����Ao�2#�%r�rE�%�W�(������t�AeGQ���MO�q;��+U4�w����&~D�B��?������7
����N�\�R9������K��:_]PNg�p�$�P�<�"�����(3�ϐ߉g_���E��&3i�Xp�-R�j�]�P��e��܍~��*�^��sҋ����ۯ��	M����d�v[{���o����^-kD���`�/�ў�\�p{4��i@�b Ʈ�R�9R�6P[�Us������  ���)k�h���Q�g���V~�?퇽P] ۙT��ܐR©m��mܞ�L��������I���;I4���
��u�am5��V�;�	Hi21�~M�1z����d�G��X&�R�ť2MZi5��0������ڔc_���ú���a5��'v�͙�Xm�XoI%>F�$�_+n������G�V
�4�g���*�`Q9� q��e:�a�鄔�S�	={v�j'}��%���x��$�����Pmџ�b��-��<𫦊�d�k��yO_��x���p��M�i;��e<�b���nFT{�G��➯�)�d* a������8~L�J��U�w�
܇R������a�V	��[}�N�\ŭ��Q��^\!PN�Q��^U38�Q|e�^�y���+�����jeS�@�~�&�Օ�����v�2��U�j8�e41�1X�pe��A�Ad�s�YVn����ϳ�6N�3�ra\N�������=>T@�)1���Ta�؀����4Ge�FW�}���ڇ�;_]x�@���<ƺ"�˹Nˍ�)�K�
��VL�9��H�Ϯ>Z��y�q\�	��{WW��G��\L��$�v4��O�n?�='I�_%k7�Z��i�����~�i���u�k�&U�d��(n߯dQ�a���}���_�T|�ze(�S���^:h0�� v���{�u�ȟy��F�B��&�0e-Rި0)�QDKt&�?��V\�R.Ƿ�t��^ZmX_��p*P>�Zx�5�v'��v���0G��qy|��j��$��%�WQ-D)��Fqn��
1+����ȫ:�S}������_+���
���J���iLPj��N���o#_����g/U0Tr��o#����`��p�pA�J3�W16���A�\��k��c�`h�+6z���R�w�@��t)|���l��b���,O�h �fSnZ[��nH��"� �d���>~�W�[ub�S�6��ĭ�i����
bV�`���x�} Y0�R���\�QT�"���2
t�_=@>(SO;�Uv��_����*p�W-��Xj�`���L[)�f�[q�g��:�k���z��v�棒�1זf1,[h�-*��x&C ���r�R�Ξ�7����-� '�vg�f�j0u"[ym4yt�QUzm4��a�W��ķKN��)(�juI��;�	Nm�X��ʷ9CMӐ�R���Q��}X�����cOE:GgT}��(Ѱ�힪spB���`�x�kQ=8�A�B���Vf�٤�(�;q�%��?`.�}�>v�J��4I����_T��sÛۯ��wʕKv�D^�֢�qq>L�����T�����Y�a��
sD�*B=�����zp����
�8鹃x�hk2T�P��N׳�A\+��ت�=�3i/�i҂Kk��k�KG*�z���v��^�V$Lm���w>Ӏ�U��Vǝ�z���B��]x�,b��z�bpOe8�~%�1D�=���T
�CX;�	LiF�!�dQ�p����1����	�R�%%�kv�a��e�M	Z�

�0YS�6�ioQ�!<*ԥ
gI���3m���3����<��}m�yF�C[]�]��(gN�!��;x�L�P�����@w��q_����?*�x���
M��-`�F��t�k�ˉ��eK\�j~%�2ҴL�ɸ
٠�j�~����^��^���(� g�̝�	h�h����'1JRV8��Kv��H��+ڊd^����V��v�������V٧F�}j���4�{�[3	=�`��`�u��E0�U�^߭��]~�/Zc��WY���Jf���	OFUڳ�Ejw���;�T�Sj���E���3p�U�h���tF�qr�TY~�}ն5�q�wW��*H����Ujז�o�m�j
4�x6Y��+_i
����7^O��PY��G.~ ��N��_WZ���k 0�	�Z�U��9XVNs
n|��{k�4��9ہ�)���wȌ���v0�4����j-�<�tGN��,��Ri�o0,qA7��jK���j����B��\�`�y�΍�U~`��%F�)hj�ݨڍ,r@�wQ�,�mܹn�S	3�&��[�Yӭ���-��Tm8]����~g
��x���G]����ygWn�;mu��X����f�c֍����Z���7�;o�bӻ���2`4"�hD�]8���qB@E������;�C����� �H�uc��r�P��K^�P�K9=\��5��%�C�2�+;�	�R��(m��Je���s�V�W��A<q#S,��+�Q�<���Q2FX��\�n�Z孯�z��v^���%Am�TkT�~J�D�$�&���&S�x�)a�FI�R\��0L��V~Ű-!�]��-�K�Wٿ���fmGC�ճ=���y���/�3�r|���9�|��A�K�x�R�T>|Xz��p�8
0��(o:3�6<�lB�5��Wf��*0�P��:�6Skj[�}�a���7�����O���?-r-����~�};�O�ۈ��X�;@�.%�������T�K�~rf�t�F+��	�C�=���m�	�Y4���{WkX�Jm��}�����V��@��2�߯��Z��6XT��n��\o8p5а_[�7N^񐃩��J�чj�0qpG��
��廃�w�9�����GSUbHUm
;��� �* ^%y�^oI@J�U���$F^�����⟯�(��,I���#@�5�0����J�`T_�4�e�a��H�a�{?u�Wh`�]���x<r[�J��Q[��E����N�۵����e��̳�&H���M� �)��Z[M:��3�؄)��s5�t�oL'��j�ޤ���73'��:}�k���Xk;Y�t�2���rel��(5t~�\��z����=�@VT!�5hz�/36p�%>�`�(���y_�Z&�r�������y�P�������u=֧�,��:�9N`4�O�b����{��j��4v��f�g��m��M��w�P��E)��yo��ʵ����#�ga���/�N,f&�-*�(�ܸoO�S[M�m�y�;(�e'��Akw_;^��*���K�¢8I_3����Y�M���J�^�LḂ\8Ŷ�4��H8W�-�A=ρ����K�m�V�ر�@� ���p���Ve��{D��e8�	�"Th�q����_�ݾ�.^��ڬW�УP/~P���W*`%��pc�N�M91�vx*�!����!u'Z'�
;!l�z�ܰ�3ٍp߰#֎�~*� �a?��`8*�;���R�np�&�b;���
@v�~�;�,|m_��3��������Ɵ�����:���?g<>V��w�7���}�)��g��8��v�1K�`R��2L�V���Ny�X?���`+B�	Z��&�z�Џ�(�Xk�W��Q��E�ɣh�/E�{Lo�5��?T��bbǵu�Z{?	�Nԛ�\��f~Q�#��rޭ���Z��I�[aND
~Q����Ea&>V�t��oT�R*7�x׉��8�k2,Et�o%�P�GՋ
4qi��(��};1H�#��&U�P��-����������g.G�su��ɕ[=����k"��BM�{��W�}&\F'�&0M��T
���՛�<;����_CG(�Ͱ������s�H�]���x�#��_1�gJӚT�~�d�#i'A��}��D'A5�ہ��A�7��o�'��y�`�
WZD��)-'�
����D;'��iL܅1��*/"�ʓИ�$��fQ%NlO;x������d���Td碩�_����UMⵏa��ʊI<(��A�sړq���X�SO�J����%��v2��U�k��M�����4Ӽ&�J����5l�IN�ϔ�E��j�j�v���ͳ�Ȅ.9���-g%���j�j�*V��%� ��z߫tw�c1%��p���P�/�W�]��v����LGEm���u��>Z�
A��Ԏ���eR�FvA�, ]A�ǣ?5h��2�"2vqU��3�,΄�qqF�)�1D��W����S��b��L��7����4/g-�qG�J�1jC[�H�J�괂�i�Q�1�}j{>��>V��-ʑ3B�Ms^)9�}#O��͌s�k�\#�M��Am��Q���m#)'��dJ�/4'���c�]B.���y�+i�QyH]W��d–V�-R�,`+�bѤB�����Ndԩ�1�N�$�k��	�M+�*A'qr��j��;O������Q9�yq��z��hr�q9p��r5[��lE�Б�*�h�>��u2z�ʸ:'��@���I��^��_�+#ړc�?�0$ 8P�Hk]i�A6d����pa���5�4�/k�g�V���F��F\�Nm5��+�Fz�(s1�U���,$v*�|x�ۮֳ�W�q�k
zP
=���C
:A��9:H����,��H���Ż-Nط���a%�5^���.`��-Ú�r� ��j��݂g����2A�&[����Z9�&�������Nwt�t��[�,N�á�
��
p�����=�C�!��`�$�=mD�T�U��f>�,(g]uZ<Y��O�;k;0���4��~��c�$LJ��KvRI!�(���V9b\�
Y���cj�TB�n��ZU�k`_��Ś�P�_�q�­6���P�K��ˉ��2�$Z��Sh�M�]��u� �1�ݗ�N�x��(ל���XW|�h;᡹��W�l^G���ܞ9��y���i&P(�l�%��)$$v�b^S�%\��9.�J�$|=x?�}��Ьh̦��Z���@j�
��h6�4h�T����Z(��x0,��B�dU�Ф(kE�gL��0~���Ca{�$��Z�I�zn"�+-&޺Y
,�I�z<���(-��n�IdW�:u�@�$���8��%��A�")V�Kɩ���&�$��H���b�O���c��R���j��	B�8�d�p�.�I,�h����qP���j.^�<��UB��;�w`��s�Z��U�ЯJ>��
�>����)�T�8��yT�
pu���}�� (��LU�)��@�U	���}k�8&�z��Y��aϷ������~�j�y
̪3�����I3��/�#0�4��ё��x���x婚i��,��f���G���e�7�e��H���U�Ea�`ܚk��yV{BW��	�Ta+�xp
��f�؜i���h��\�	=T`�¤�8S�.[M�2�+5a���r���j��6�s� ��h���}�*űh��[ĵ�s�`zV[�n�gV+[r
	�E)�����k��l�>>�4�Y�s�V
�:�ͫ=(L׉�z4�|��2B��|�;W*�2_=��ZF�A.�Z��QQN9����Ae�W�Y�'!�_֊����"�4�áO��fu��J�k�b�b�Z�!h�Z�i����+%px�R�Eoݜ�aJ���y�/��9?�źE��U^T���'��o85����1|e~����l����`uk��pP��S�3�.��*�s�3��,�Wn"���[��z�K�o-p}-m2�����3`��(wQ3fV�U�&�V<i��",/x�p��l��[T�q���ޛ6�qd��+�‰$#�o�@��~O���Fj�I�Q����=K���q|�>��[�]uj?u��%���7�ȉ:5���ʅI*7v'5~��x� |J�P���39-la��4\��q}�3},��x9�]<�]f]yu�g��1~1��v��YEr��T�?��ޟ�Oo�/RC����Г��.f.=����AM,�3���'����Q��$���ӕ���W^.��-��̹�iX)駘ҽ���
wI�9��~'��/�n�R*��TZ^�~��J8	��l���	�P~�h��8)t2��k��Xg�(cV���q
��#��Ͼ�*+a��;��,H�&�9�%LK4��
��.BnG晇J�[��,��uh��hS������	����2�4�Ș�!��A�C��#d�g3֘���T���_�%ɫV8��kM���VV@Ƕ���"@x'` �X�ryTǂq�'�P��C�/�����r:s2wX"A�C�`	c�7���}J9��Pɟ(z�)�7���af�>'��BH��:=Z��1qv�:Gy^�`*�3&\����K���
�n��?d
���,|8��Y|����].[Ŝ�[��w{�ݿ�i�iy>S�%�ˈ��o����ݺS�v�
��獃K���=�(�FrN�ذ$-����SPd:�"���ϧ�0��XR��v%��Ϡ
[J-�kܠm�d�a
8LU��uM��}sW��]V-��9,ׅ.Ps��6�,]���A�S6���k����q��.
��Ϙ#
@����t;)v�sX�9���ؚ;~x	1N���>®<pA8��2�m�k���>$�`#��Zz���4ϙ�-�;��j����PZWD�cނCP}m��6l��k�%�S�'
>C玜C�ZC+�Y\�ɇ�\'��Z��0�c��v�k�:�[�.���#Ϧ�����
�����^�W[����.��d ������{A�I8&|
���M������N*��r!\�x���4�%8 ��*W�&�$N��H���X�~BH+ފ�hY.��w
-�ğ�A��7=�c���Q�ש��mc�p֫��[-�$�}�5�.r^��~q�q��!k�����;��X�p�ϗ3΃!^`��f15(k��zx
{c��ᧇ�|P��\�Q�we1c�G]�h�+�m��,9Gʺl��lb}<��������ỽ-�-�/O��y���{�I߇��t�-h��>�U�ݍ��2Î��E���a,(t�ϩ�ao�PW�=��R���OKvU������_TM���VA���zۻo��T���P���Ir�����,C[��U:�鰇���@w�i��I2q�����,��Zp�B�x��@Q$n/���C�Y�J,��a�.5^��A�
"�b-fQ]xJ�Pbn=���b�←?�uw��tJ������Y�'�p�A���%j�U/�{�z��X��M<��n-��_5H��cP�S��73�����n4�.z�5`j���6h�ʛ{��������L��./1kШ{��{������*�ֺj��q�58u<��z���'w����J��tv9|W�2&��t�N�uh�ݧ&�����7Ce�u{�&=�	p���a����ݭ��?��Nc�~�كئ�
��@3�R~u��&D]����(�_�L��hC����76��?��>,�!1%-rA��j�������K&��n;�-.�ѣw)�Q���cN��֤��h�n�ߑ?Z�7ۻ��4Va�d�kZ��QŰ]\3S�F����OfۺΞ���������a0��@�:x��`�[z��,gu�dv��0W�#E'��^.v�',7q�?����cL��:��h\ID(�$ �Ɂ��rt9�vFd�������&��^H"����'ɴ7����Z��$)��:>X�9�.��W[.�:�,o;��\�7��t`�έ�B	�O�?m	�cY�U~�nR�^{�����8���<�V�˩�Բ\w����ܴf��R��l�1���/��%da�F��i���2�Ć8Yѩ���I�OhW��O���T���/P�Y��Kь'Ļ�2�L��?j{�Ө���X�`�(Dc5O��e�@`6�^|]�{ӓV�,�y4Dy%��d�qd!-�H�Ad���<����4KpH4�Fѣ�U����F�8�L�ʂG+K�u����z^O��ue���A�.�N
�|��?Y���þ�h��gieee)��y�����o�'���z#�-<bj��u�|_����6�C���ޤ�u��"�/���E,�R)%�����z��r�DhW�>N(���m8�R�d��C;�J����t%N��/��~�T8S�*��:{;HO�nj��>~���,=�J��?Lo�7t��%���գ�W���<܎C�}��kgj6�c\��������������z��ؤb@
nm|�����l�1����u?Y�!Pw�ɠ���=VZ��UU�֮�������?��ړ��͡�k���X�7��;�`���f��c����w��J��@ø�([h��ޓ�5?y|�Zo�\�wҌIV6�es{��^O�����n`��㢚���6J��&�{r/���v�����0��lP�[8P��u����Z[#韭�"�a�-)�RF�t3}b�D��)�/��?��IB����O��Nٚ���J��w��o��ע��=[z���_>����o~��^Ōb�0�Ų�G
�����S�die��^�&�*}czF�x�h�E���,+sbX�<_�E�O�����MuH��t��!��0E�����ujt�B��N���x5�\-�M�rYq�����ZH'��g�*�R�ezR�QS��)����W��ˬԟ>�Y��� v�zʃ��l��\����JI0�����h,��c��i9�&��\�־�YqC ���,0	h���|��$j0 Tf�[�% �1���������#������Ω®�skJi�Y�t��/�Y�K���^dg����=*x椡���eYC�%΍�,�{FbO<
�uF�.P%��~]@!�<Z��ǻn��nӼU-\W�Lx�q�����Z�Ou�t5-��g'4�7g$r>������
�#͆���qW������[����]�)�rs:|w�n�h�<��<��m�b�0r���Z����T�����<�AX�&�n�߻�0���=y�+a���!��V#��,�PY�^�=�!}�

�̅R�b���o�&�<���3�ޙ�"�<E�c�D�W��w�?+��b�{�_�x���~������7���m�K�
��p2.�P�5�Z����;�մ�-K �|����Q�����O����������و�E{�F��mKV|F��&��4_"�-�A���ŌDҌ���Z��NJ����[UmWGkA�w_ �"��6ͩ���ϽS�)UP;l�o�JU7E]�­8�h�ʸ�����\�M�f��'�S�,
�_O�iKP��f0�Ħ/�ު�D�b]�B]5U˿�,nU�[�*�?g��Q���.`�`��'�a�Ȏ��v)�����HS�_�냉����hDh���I_� ~��o`��2Yy
g�r�����l{����\'���5��:{;Df��l`���>�_ꅳZܜ*"_�KV������8
�fz�"��z���������,��x��E�=V��c��F��[��l8��%������� �{?&��ҟ�N�K�a�ޢ�@*Q�l`IF�(lnu�u��2���V�m��>�^Fш�@���D���_H��JFx�hDң��x�WV�3�[�[FIV�S�EJ�Z]T�W�h6�ʆ���QEvu�
��F�Vï�s���A��q�
������Ҷ���W��+\�eX[�"�0���K���R����^\���n��7��/���.��(�7�U�}�P$o�.a�Vq���?3쥑^�ߕ&5^�1�B�� e
U-��+�Y�X���i��n����|˱Zb��߱[�6���S@��Bl:�rH��GmD5�13�+R��rh%�z�~��QV6����ZM#���*"��{PTeD�x$Z}���ՙPI�O�����O�˗��Ϗ����œų�G�������'��Z�E�=e�o�����G"T�N�.�v�x>`�gZ��촆xIM���ۗ�4s�U�͹��N&sh)*�Ŵ��E������2q]�<
8��O���^��*���pt�:{@NIWF�5�E��Ai�^�97G#��J
[>�W���rש*'����ǚ��
Jnoh�����c�.�Rڎ?y�(��
=�{����~M�(QH$�dž�Q�f\a��#`~c�ͬ�S��ʿ��*��'��|G+��6c��HY�֣.S�nb���)��P�E
����hd���\�y�>u��SH���>�g޴��G���z��s�����C��Õ8�s�P��[��SG-�@ژ��X�䪔���{�Q]@=��?�*�Z���JU��U;;�����-��@��Z�q��cqTO�5�?��~���F�\��k��{�͚�~�t�"��p���o�n4�voV���
_ֳ�%�w��N�tv��q~�#���1+��n3�u=$n��9�zD�/Wj�<uI
U��Y嵧e���@_�F�J�<g,�<Ewj!�"p��7����~#��wt�[�͵�<K���
�0
F�N��}
/8�Z�y�`M&� �VK{��&����j�ݶh��ܒ��u�<�����͸���6�:�R�1���|����agc����%g���Cld�1gz,������O�����>�AJ�y0,�*�̙w4��D]v9�&��j��'r�����l��?�J����Q�䰧��THQ	(
�:I-��9�ƛx������IY�!�+HOfK�u�t�Er��'��S��R���e�={�LB���غ�!'��_��e�>O�b��^�Sf�m�яq��8�d�/��]5
�q,�K��}���à�8���m�35�Ɩ�.�)��_�Vs��C���� O���a�J,�f� V��uX�o��$�1��y,��O06�,�1<�8HD�
�O�2�AU���s�W�8�FP�����T#�E(F��Q�h�'ۥ>
�q���˛Or��.�.#C?v�rܴL�W!�bl���N9�%-UW�ӊ�WrC���}E��.휬�*��M�V�-��j����d��-�%$XQ��ψ�@��Oy������5
�lW�\+��7�;._��>���g+��ei�����(���@Ę��.���z"��|�����*KE��G���1ʼn����uh�"f�jJ4�dF'�UqlȖ��U^��H)|� &�C�ZȬu��r�ڬe���\�uf�����n�4\�P�U�g�e�����væ��Ma%�»�f\���1c܏&��i�n��=��r��F;5JiR6��d��0��$qS-*o�6��=�gVp��h{�S�Nu����ɨV=y԰^]�x������8D�V��z=��^o^�o~�|��g�7Zw��}U˿��/^�L��>_~���?_���vh+��ӱ�Ƅw5��_g�9�07Wu2�Ό<Z��TÓ��Êb�͇���+JA�Vt6�G����X����2%i�����a�)������O����h�i����8�����y|ON��*�S��C[�Wmno��ԋZA��U��6����*�a�w�`�u�M���6�"?h��֪��L��ꗲ�S����o��)��L�������.���sT|� �h���%a*��?�B���Obz��[���+U�h����p���q���9�Qx��)��5���T7�D�PP�l�&hy4%ͻ��+|�"g��w����Ư��1I�޸ 5M�lV�u^X?S�}	��ҏvM
��{�Q�M+T�b`������`ڝ�8��">:�RRI�RU�G'��Ց�^1��P��	��Х��<&�"�}�S��\ #�4�},�u TOd�x�G'I�%�J���.�-Gn���_��m�m�q�����c�qQ�8czd_���&^o��KWxmE�v��<�L�C.�! Ք�&m:����ҧ�2()�����lk�� �������K�We3+{�5�h,�������f�H<�O<2Iˈ���M���k�iO��p<lxw,����e����i���LB��1Yk�E�F���T)�	�.(��PH��u��٤��@�ĠwB��3߅��H�:�r��C�=���/?_~�=��7��`�f4���H�U�5����x��
��ۀBvaf�T�~}6�á׏F%E]ݼ�PQ�(ʡ"�013�Z��~��'�@n�� ��Wp0���އ?�&���U�����K�kG�i�{7eŸ9
���29��m�	[Dd]�R�tu����0>�Z����Q����Q��)F�(�\j��];zvD��D�1��4�,Ld����&�f}Jvb�{'�_f�_�B�2��8A�'�_4̂A7R8�2#�@uq|'���!r�ȊՕ���a�&}p��0�J0I�؏%K%{��l�d8��amG���O&x>%��'��L��4F'+�H�!ѿ����7
r�׊� o
��a�>���(J�0$�E*eE:�眞pp'����)�L�|iV'��-���4迁^�~R@��bGWS?�'��c���͙��o�"^}�P1�ȯG8��_)"�*���.�O3�}��n!݃W�W���m#rH�[<�8b{[��H~���A
�F�G���a(pZ�3���%�J��8��%���fb%�p���'ͯ�'��S���G���K��7�0z�4�a�U�åvqҫ�>�a�_��d�j!l8y1`�j=����(���h���f�$6"�y=�΍.Y�G�i�P�i2�ܵ���+c/T��5��؁r�>�'���m\�4$_:�H�%�@ϚD�x6mu�\n�v���c8�O��mlu�zo;��;]�E���M�S�׬��=��eA,y��M�vB�|enEV��^5�nOfh|T{�$L=�p/ܲ�Y^jۻ�2F�N�?g0C����K����V�X�"������Ϩc���H�8ն��!KU��j���R�����?l�Sv���W^��I
gp#-b{����l�6��8<��4�Euc*�)]oD4
�U�cOfZ�L�(;b@T/�Z�]8��1u ��v[�o�yj�Μe>����>|��
�6t�<5�E�#�Z�}&��]7��l�o6�$Q9�4�ے��S�UuʲB�pk�^��	����`��b<�4�t���s60�+?m��-��Y��y�X8ى���:Kg_�u��O������n=nm���w%��y2G5Ύ�q~.�k�,c�R���./?M�y���=��L��7���ڀ�x�)�ij������盺_�	I����ե�a}�a��a�eg���S$�21�;IY��������`P�9���V HQ�0kߺ�L>�Ge�����d�d[4���M����H�`�d������g&�G�p��f�ު�b�}9��|(��{��^�*�".9U�jU�ȕ.�ʆBZ��b5_�R�Gu�x٩�d��%�2�K��	>�S2�V�/�w�:�%me[s���w��0,��ߤ���ݜ
�%{25�jO~KAsT�d�*�A
7�u�F� ����7�gLM��
8y��ޜ{D����k�z�Y��'�̫�����M�t�jϒ��OeFg�Ap��������h�e���kC	Qtju�/���"Z�%�|J"���D�h71�ߋ���F�z��h�@�^��*�H�M��+�����j��q��M���<��}i���V����L7�?A�Ѻ��:�#'�����pF��[�\S��G����ԙm�.]z�K����%�h�雉��PuI9���j̈́�	��f�Y��wE��̄C�r_#�!���{֬v��y��g#�Î�Uu���{3�[9j�E�ӭ8��K^��7�� �G@1���Z�ʐ�ݼ]�L!ܑ0�{���C�����m��S����n�����%H"KԂ؍�@����Q"In�p^0����p�\#d�U�a?Td�l�\A9�-�٦����?���Ʋ��2dE9Ǚ�?�����Y�n�z�])d�����z�*���R��oL��キ{��m���`������c�u?��\�����)��]\�Ԏ��y>}�
Er8��X�5i��sdM�S�/z�z�=���
�.(g���/k��\?�וWW��*�L���n���=��8�7���+ݻV�4Z�����q�I6%��,����䫡�$�������m�y��a�w? m�B���g�lZ'��3�e�̀0�09��Ԏg��`��{j�(/�h������f-�ո���hx8���sY���y�"�3o�&��{8�6��t�O��(h)���~�p�\����"ŵ���̋�\l�~~�����w}�No5�;��<&kw�s��c���}��=�z��*3������	�ESPƒ�>��O���9� �T���;H�B�qR8X�/���V��#P��寿�76
H�B�柊~�����l��Xmœpٲ����D���n�G���Z��D�p<@+IE��$�mJx�:��=pA4C���3TH8�P1�h2�N�J1���}ok�p������A|�����T�7uEY�Urr63q�͙���Iq&j\@�"͢�>"xP�,���L����f�3w��l��-�F�|p'i+8��Q
)�2�E��(%���  k[�"��ge�H^�Hw��L6>�o�.ph%�p`ښX埖����gϞ�s?:=
�]�!Ʈ��Q86]ʰ��~s[��-QT0����D�/�x)V���q����=ܠm��1��mH��G
��3�hvv�՗b1�d-�:��]��F���ټƏ�و�YN����#���9b��(A��VJ�1(�����Pt�lI!jF\�����!�;�B�&!��$�T�6+J����TP�E,p5w2u�ڪ	�g]�����+���v	I(tݗ��>�m��-F$fh���m�:�<
�A��{���dbdݗ_t���}9kRl����<.ޭ��l˹<Ԅ��A�JVoDK�oz�Q�8@��}J��Պ���ߴ�����:M���p{s�g�ВZ�@gP
m �CWxx%��e�Uӎ�uU	�-y���=݅U0+r'�p��	�Й1�ڼ)'�]���|���>���V��Spc�|Jٞ3Y�DtCܼ
��9�O�i(6��_��'�x�_��/���T{�]��8{��*{X���xrH���{6�kBM�?j,�?4\��Z:�U�lQ$�P)5��S��e�0���<u��,��랍�����
��V�9X���X��P@&D�t�Hu�w�y/�
�ʦOa�c�F4AA�xb6AoZH#��B�k̀}'L
������k��ѳ�!��xm%s#�B�tf�G��L�B�*A��3�M�w����ޠ���0��.'�	�$�D#[@[iTj����a�9E{e��)3O:�����ԩRX 
�ĶbǕDׂ~�z��q0�eJ�ۭL��.q�0=�Y{Y�u��6Q�,��S3�Z�y��ys��2[&ЊJ3�yP�JX���}Q�Ўw�~�(>	���n���J%�����ۧ2����6]��g54a�	�'H!��p�@����L�2�^�_��l�`�Z��%�6lh֧O�z'��L�	���.�ҫ�!ӟ��­R���u?��UxV�3%H��\�N^��P\{�mWM�ˢ�;#�f�d�V^�=ih��������_�7�>ï[aO�]<���/�� �
���B��k�w�v�;��ZT�n�JS�68pg�b0f!~<@��/���<]k?�.�@]Zxe��s�sIE��i�6l�r4TK����v���KM���sPU�5��
�s^�Scf���G�{��XY^���?�0L�5V�֍aOѺLC�;�/�`��&�1�%�SgaEhdSAP� ��<�(�%�J�
�����l�“Y��z��0�U	ū��{�
v�'K�,Ӏ���V4F�Fw���h���ۦ9�XY��lw�����k_	X�D%�
\;��(y,�;�L�.>1R-x�+ғ�
A���8[��|��
�{O
I:[�߶�1^���λ$�HQi9�`ч��Q]�<�EHhx�j6nPըU�XbmM�[7ȏޕ��Q{�BV5b�S\*rħS��1z�)��*�����fj@b�|tW�m�;���F����@�������}KG\_�����,�>�$�4)�mQ�ړ�`V�%����|8�uv7���w)wk�Ї��l����l���l.t���Z�M������N�Yfcy�屷D�[>����Fuy�v��ʱW]>z��{��a���O�n�.�n��O�/~�{P���J���ExEq�pcRମ�V3̉F0�{W~���'~/��@RA,���w��v�}E-��4@�ٞ��]���-�oSPF!�?6�)�=	�0��K���O�^�k�)�X�&'ekJʩ;v@bG�&S�l7��7�o�ُ�\�G����f
N�QA��y���u��#~'�9�[����'��Y����h�����ݿ�#�t��[�=���j���}��=��R��ڼn��R��9�s������d�戍S�mc�)���t��K�ʯۆ�mNyc��*�V�*
��.{Kn�_���ծ��b����p�[���q ��iȏ���Z����v�6:-Y�������XPW&/@-�3��c�]ɕL��#���������X^z�����r�׷����p����D��`�t���?�[�!d���#��"!c��A��U©�KުN�Q��&�n�{��&�*�,���X�2��f�oG�5��K���!Ac��(��L5�:A�y@�`�T��>mՓ�t������x
����U?Q�G2g�!�0�(�Dq1�f`�`i��Eb���q�|�QL��(�Iv�QY��J,�"��f��5e��Q�w�	��_J9Q����>���B§>_��w:
���pc��mg_�-X�p�c�ӆ�N�T�$\����;��+KKu���8��U���b���r�4����.t=��E���<�6Cl+PG�a��l�nSJ���_�b�^νwe$��#=}-��Q�g]��u��]��Hv%&�	�~*�|a=j6yJ:jN�O-�H�l���hK �a-2Z���j�����t8��V��@j����<v����������iy��60h��Y�\j-�v�|ɭU%_h��{I�Q`��MIj?�۳.�U�R ��nn�)�ym�(�U��ςD�˧K�6'�A�@Z���;c'�1�	���_�6��<�,=�`�y]<]z�5�1>�p*REd;��S��N�wF6)�����V�%����
�oor��٪��us�y%P��,7���'S�����t
.��q��\�јS�-{?{+fe/T�k��l4�|�h�-�g=9J��-Sxuӡv�h=�!"� ��ʶm��gJ��w�i�-��WB�X]�]`x�Y�)h7FY���,��1�BڋmG��3:�5m�"owZ<�Ur�����|��aG�|�
ϻ�k��"qP��k�>�{�B�=�tsq�WZ{S�`d�s���(َ�.NΗ?eS\w<�%:Y����J>�j�KK�9�GTlv��<SA� ;z%�n�hs�j��ZIzZHaO葁d=MzV�Uq=���,�y�Ђ)Ц����͙���]2R���n�ۿq��-?��R�l@+t�z��,[��,�|@��?KΣ)��Az�	�C��$��=6����#k�"@�He�x��m@�(�z~/	�I�����O�l�.��"}�:�he���[g#=]ZFjc�z��4t�lg�
�ŜG��bK�Ⱥ�lK�r1�$kҲ�G�d�#��@`���Jմ�{�2_��2��
F^\v�u��(��1�ob(��L�,����Ny3�K���Ӓ���#�����W�����E)�ߋ/���F�O:nKe����PO�+f�}�$�Q��1å�+�{"�p�f�խ���h�0_з&�Pʇ�eK:��	,)S�/��� }��Z�퇱Ֆ�^s6.����\I{+`Y�8н�?¡���a�]�1�c�$�+A��p��X�"Hj��捁�'h��Pc5?d��b��U��!�x�t�I"��+]�"���T��l�2�Qo�bh�JSM}��ˁ��(���m��%T�X:g�:�/'���;��v�]`�@.�4WF���H=��*r�Z�&������K��Le��q��q��6�i()��?p���M���l������h*-5*�����c{��~�y����<*jn-u���^��NStv�f���)55�m�>E�;�e_	XJ�$�Ќ|��9I��E��K�F���I�4�8aY���@�x"oRe���m'w�]�Q*�r^�G��Ň-C)�rQ��\Wb�rT��s��:�r<���0�h������h�ԃE��Q�Nd�K-xPoL�.�Pͭ"��2/�GJ|�{4�n'�M�^M0li}�a���C�f�����#�P�
�ѓF�:���y/�#1�j��8/��h�0�bo��ۿsDa��a��ݓw���)���%�a����D=\�5�1���3����ָ��@E54��a;'A�G-�e��u_8C��T^х�d�� e���J-EфV��+(�i�wO��Ty���
����{@�W�8��a?6�hd:.c�����"�es���c��}��y�
*p����e�K�#�<�1\��ؘ`�J���'3����=,ƍI?4&U� �`\�Յ����L<��h��j	Py=~��f���E�|TX!����(4u����t�B+��f�a��tSM�r�[���k��Z���k_��[��*ٷ�����q�^����fu�[Lqyۿ>Ç���Z��_����(��񟗖_.-g�?/��.����r���>1�Q�CEQ��o���TG� ⠏�13�4Ă3KA�O�S���!�i�
�C�o,gUy�8w�NrM���9 �;��'v"�`e|�Q]rבŚ�s�����	_x�Tz=k6�
��Cc�R����r*bǍC�!���8-&w��9=�̡OfVze��E���#'��	7���i�Ґ+�q�G[ˈ[�H��c���@� 8�Lwc�*g���O�����毽�{�{�{�ۛ5G��>!d5�?����(���"�Q_庱-��#[��cF�7��\Yy�,���{����<)�m�͠ֆ�7��,-�/-���&����Rb��U���@!vR8{��+9�0ţ �,}�V6���7�)���ep��S��`�zB�dN%���5�Y�Ja�w����%6�����S��i0���%6�f�����Y	�ɼ�^T1
�ĩp��N�l��.5}��q��]��9�!�G�8-���]3��$�w�K/Qݹ�yUF�8��oIF�X	Y��t,'*��Y���Y�[Z--_���9��h28'�n����Vb)Ɵ���?�f���ǁG�>K�-Z�7Bq�hc\O�Rbx8�,@����X u�o�}���GvԎ���U�
z�입�+���TH��ol���r
�
�V�1섡O��he,�\LF���L�T�U#�JI�D}���	����r�<��q����#q��Q��P���ʄ��f��}�M��H{n$�(= gX$X������{#vV���,�^�J���Q�Q�{R7��y�W��>j~����xY}�˃۴`j���':=]���2(<��T�w����W��:4��v-�A��o����\�z��~�;��Z	z�.�=�q��h˕��mM�r
�啗����i駥fv�v-{�Q؃��	Ǖ�CA�i0�9�XD�yO��}���U�ylL�K�*�z2��'�=0G��!f8�j�V7߉ݐH�:��_�;��"��
8	�7����]:�c?;��0�Y}TW*C`l*{ڂd2�1����_^�^\�3���I(�y�Xs��b2�;��7%�����#�LC��b�N�9�X��)��SS6S�<"��84͂��9�x���E�Ma����T{T�+}�%ű�-���}`o��L� ���[��b�.�R���4:	�E�	���i��l���r�����<�Xs���0�n5����2����4 �jC��N$�	���'�Z�|-�R��1��M����S{�	mئz�܊�q�}4 {��h�n֍	�nӯ�=c�UX'X2.,V�+1�91���
����(*�0/�p�(ѻR���ƒ��;R�*�$ސ?���um� ��0�npϱ�o%Q�ZZ5�i_�2&��<)�+Sd
q�W�)����T����i�5ey�2�2S�P���u���Vl%�<��-/8\(�3@��c�u�Cמj3V��$pr�$���/E4(�+l���P���*��48�!�\a�a�@�4���8��Da�p�?���e!i9��.����5��nX*{i<���:��8�Q�Xfpo���[�̵50������5��p�
�5CSfnڎ�Å`�&�-1-�o�V��'+�J�Ωd�l�ua*��t���T�V��#��!��69#i�QXN���R%�$���H(�'��E�M����3w�z��N��-�Dk�:
Ds=�=�S�
�
YF��q�+��\#�<Z.P��5SG�R�'Es���[�|�*>tYҋ��_���V��#;W0C�x"�@���q|1FJ٢
�1j���
�����s5��%6��r���noK���;E)t��2j�Agw��N�N��2#�r�S�)�”����”�[s�P�	؀wN�_J��DB�9n�����g��~�Ç��_�,;Y�lp��8�b���ɭ�p̕�.�����J�ˢ��B�{���/S�g/���.����h�P��J)#�W�"n��e���Iy�|Um�W�r�+"��Qi�R�z�k�\��nY!*5��|l{��3��1��c�,h�Y�l"��(T��v�C��P���n��kbE��s��[��(C��h�����K���ʍF�>f��#>�8��B~�!e�'��n]���8�����7ۻ ac�	���ע۱�Rn/O��'�p�$қ��;[��^N��O��B��qe�W49�G-Y),u��Ap2;ß(v��3��N�>0U|�x����/$�΂Z���9]���t�aa�Zv����?�/
����D�"��f��Jn�_�*� ��F��h���f�Jn;�
msCJ��i��Rև�����w�6�zXNT�U��Ìت�l`Bk��w7BUwT6ɁS�H�����$�V�V�S��s;�o�7����*D2��m��ʲ$�
��D*��;��lj	�75���"��ʹ#�y�R������)]ⷢ���d6��4z%��`(�*.���/E�Bq�����m�Q�yZBK~d�gA'Pҕ9&��ń{A�[J��hg����^�yEm�hZ���D���y9��=n�kL�x�����N?�V��jJ.��
E�,N%1�vB�p��<�^BN��ҝh�j��,�^A��&�.fJ$�ۃƋJw��F�@�'xr�|��*��A慞݄�44p=rc�̝ʎ�CǟDg�o�{��qVki��љ8Oz}��`MP!+���V�6�i4ƒ�tnK^K>�3�?龟²�:�7J��HF�}�A���:On+e�\ءrχ��(>s��u	b��[܁ӂ@ծ�:2����g��h���<rJ�����sN�Y��$ҁ>� �2w��`9#� �ʾe��)湏�%����*LJ�n�9]lHE��z��c��ǓE�Du?~d��2��Z�����$8�n�%	�!:	�ۍ9?G��i�Vk�#f�KT�؛�xr�ț'�l���`NN'����9���W13���t�|�-���ᯬ�����D��j���`n1�n�M˴�^H����L�rjʎ��h9�5�j
mec������'�b��ÖF/j:<�o��4�'SG��6Ef���D�r�V�WT����-~��i��~�ύ�߻MLG��Cɕ�t1{�M��>�7ti��r���3#DcO��XY��qY� �2}��S���Ӣh
�\fSXS�0�+v�g�>[I��	܅کn�F~cf�%6I����H.(g��Յ��۵"wh���$T�:	!���	^-��4Z�y���^�R.	��*��lR��L��"!6����kL*�Pe3���|��r(2��0��ш7�U\�������l���nG���=��wHE�C�Rټ�V�/*�5�d�L�ړ��C6�U��/۶��pLU>�h9�%���YvU}�E��W*R UI�HE�;��ع)�f%��<OF��]]U�Fh�8Td����u�=�5@�,��/5��ogS�*���'���3�'?u�����a��z�
x����f�(ZR�������Z����Ja�e�ګ,�Oh~���y˧\�������7\��8ZT���t#���U�� �b��uS�i�e�C6?J�����Ν��Ɣ[����&6ɍ	����=J�H�\�q0e<j;��}�0F�Y�b�hT�H�w��5N��_m���b�B�I{��ӊ�{$�_y��sq|�<B�o� .(8�'���|��I~jH�����2��.� E�Ĉ��1�0���ļT�$�N ��קx������6V /e�wO6�!�
W	˝\+C�kτխ��6`�Bp�JKg����܌�љ޺���PI@h���oc;���CSU��\�j#��SY�����Z�]C�a0��V�f���LE){�*�".�B���k~����K�H�Mg�#�P��u�eu�)x�"J99�|Sŋ97.)�^�)���vv�vT�����*�Ҹ�b��E[����v
`�+Z`U���D�qKE]�l��ʆk��xD5�����|ăb}DQ��ն���0�R�tp����M�w)eMD)��.'#�1��]�+��믳F�%z��!�����(X�5��u-�Y=";'�I�{)�O�%��m���,ƈ��֤��>-F_�-qĸ½��	y���,v9T�<�ǽ��^���+�	U(iqs{^��2K�Q�h
FGesMR��#;���+�yƴ[�)��>�O��ͩ�
��$���u;��η�Kk�Fʣ�Yc3��_��Ѕ�=��G�/�
/��
	Mlُ'�c\�*�t��M�R���6�WZC�I�l���I���X�+U$6T�@��b��\u�'��3=�/���dR���f�i���{��<Z��D�=@鏜��L�Dl<�87�E�ե��B~g
#%��?�B���P�ƜB5�Oi���pʤ��؃P�U�{�ҝI-�.����8��a�=���w��}����ϒAt9��`f��Т̖�fr�X��	�F]7�}(R1�5a7[O��x�}=y`�E���kQ�]k�|'�QjF [v�JK@$kܱ@����Z{
��!_�2�"L��_�D�57E���PƄG"-A�=e�|Y�E*3��\�v�T�27U��F�^����#�i+
��ll�nu~�2FyV�*s�y$N����h<�-�D��	\d�?�PTc�	���P�&Z�L��{�9|��U�H୩w�����9J�t)S��"Ɖ�U�=L�o:��K�
��=[��M��-z��!LO�
=-�6Ul�Ғ���;}h_�)[[(e�C�ː{9D�H��
t��?�iT�̭�?q��Q��K����b8Υc�4�����ޮX�e��r
�S��hza�V�P7�/�N=�E�i�?8��ޅ��Pc�	���x6���}<�)Se?U���o�Խ�F�4���Izk��0b�U犮�O@I�w6ŭ~��c=�����󇨑vX��V��9�vW�Y�J~ң��Q����N���+�����A:��8��u~�>84.�����$�*$�li�ـ7xO�dx���JD����&C�5�D_���d߰%�CLv�����^�-���K���r�m�Y�nr��޿W��T1��'�F8gނ�;IB}PT6���4ɴ�����X�JKd��E8s��%�պ��M�EŞ�T�����\z����?�O��[���X��O��I3|-c�{�_�)��++��Q�@��	�m\���병���*\@���|~N��Im��F�AR�hg�`����X�=8S
�Tr�eT1H*%e����A6
�@ZF#�F�x�a�#_���I46�ٕ��m����'ŏ<%M��:H��~�>Z��$��a�-����9ȫ��][3�G��7��x5���$�1*Y'��7�L�<-��V��������l�)�Jv�\�
-�O�[���pd���4u�G��
�|�#�Z�ʵ��fӨ���t�BY�7�M���&4��ę��li��e�?�#��R����ɶ;Ț��f�������{�z�Ά�;u��k�2T�-{롏[�Ej�~ғ3�u�u��[Y����f�PN�s��e���<�����^n�l7
�`1�Y-u��$��:
`[G]�1ﳚ��j�vm^�XR�T��W�2ƔH�G^�A����LLƂ7��|`��n�$�xx��[>���W��mm�n g��Jj��>���đif��F��.�\��)��3�“�X��^�:�e�֑��w�"î}v_T��;�Z9bh�JAc�V�9I�j��H\cLF���:��8���ЮR�`�ZKW򙃵ʤNU�_�X�z
T	7����]…�u��9���^f��b��Թ�yB�K�
��e7��3*o�9#���=ϻ�3�p�e*9/3U8�F�R�U͉-j�=����@���UDzas�2�3<ɝ�g<�#j�+��Ԧ��6N�h�o��qtnYrͅD�� 	H�v*2����M[5�Ϲ���ϕ�,��-v���"�ď�>�(�@��2�)�/�F�p�@1J�Sd$�2������b���&	&pd:1�#�f1J����p��@{�j"��dh��/,eb*/�.ʐ�J1���n��T\��&_��PF�$Xce�v�vP2N\G/eO�"[�C��-6��<�����	�';�:�!�ƅ-T�Ph/t��CL�b5�}1��q61���rvG�pbL�}j�W���9����em�q����:�	e�¢Y���
�5(�ɰ�2.���D�����j�A��rэJ�NG�
̠�T�^#cp�q9PDA�$���&��q�;R��1�ĩN�ٸb�qc�*mn��:^��6Uj8�4'a�	�g��T>��[f�%ݼ�FjN�ձp��ɞ��� 6;L����I�H{:�*�4�MR���*i�B��Aȧq�1�W�ȩu��58R��n��˱�����ܢ��
t��|؞�G����y���JU�f�d;�s_HC���"���e�3�ήe�k��U
gF1]�R��� �%���d{K_[��w��W�-��)i��._�fE-d�4��ʬ"�!�pQK`�gA y�SD�BU�l��n�Ѳ:���anu�t�啟�2K��K�#<��(���}~%��x����B%z�U��ϋ�&Y��s#�1��&��bZ��>b�{���k�Rp��i�����4W��9~iz�=[y�!�����Y����Ru���kG�5:��&I�R�-/n�j4
Z=FA�s	��iB9��晩?RG��*�S�4����3�5�6�6ų�a,�_�-%���,�PD�l������Z�(��8�F��N�4���`���Ƹ�'��'��}@�p|�C��f!ṫ��]\���D3��K|��h�W�ypU�f�6��ai��*|w�����q0�p��+O����]Iy�Eɶ"��A���c
���@�+C��k=�pW�w{Or }Mݎ����or��,�%���J!¥g#p��
T���צ-�p3��{�Y�9���e-e����~,Z���c�e�H�/�B�<�)ݣi���٬��#Q(Z#��±�bn#��)gK��$�u5GN��[`�LKfF9��ɦ�ci=E��&x���虶J�$�
�\�#����Rh��,��Ԩ�M�V-�>��xO�e��Dr�ڼ�Tܿx�۸�Kl��,�����Kk�ia�y%�r���c�'��R+/_�ț1��g�ERu�ۅ�-�(O^�L�"�8�&V0\��F��L��K�T��Y8
.ʮ�p�y��"�0v@)A(���ϡY��h�Ӷ�F��{ڑ?s��BȜd�Ӻ��ᡅ��o��X�����O�xzz�8^����'`�vӪ�Ha�0�_5����N�`�TE�"�Z��3�'Cw�>av�R&\�V�����W=�,����.y�����X��Q�I����h0E�v�-+D��B�їIO2&�¾#�yu���j�J��rt�Z2T�����t6����$C-�:I�b��Ӳ) E'�M�E}$��zY�Q66�<���~Qf��iX*�O��������ru!�!���uСGW�C&`!�)��}j.���0HD��9�40�j�rg.����3A9e��F���k)�r݈ۋ��[�bw���0�lY
#�]��E�Q{��lŃ.s<�
o�H��U\#S+L�Ϟt��&��+�X9�9��R�X�p�m��>n!�b�W�QS������u���t�������z�"�N����v	���R�Ţ�Xa���s2�/_Z^7.T�2u��9�=�������jŇq^��yL��m�t�tm�S͝�E!Qk��#IH�'�c�W���������4&�D"RN�!3���B�&<�gjģvz�VM/������tS�fzT�=}M�l�:R$–�g't�9skJ��1�dR�D���B>Bm�C�lO`�PVkv$׶���B��K�.��:�>P8��~�G}wd�d�.�a�!�-��b�z��MPt.�2p��+u2���ܻL��h�)��\y�/�J�:�������a
ӥ�R*-�=6�ƌ�8b��5�:�j�D��L��|M�`��gP�G_�3�`d�q�i�\��Y�3�T��T�	/�=��_�!o߯���O��?M��Xy������S[���lw����z��c��K� ZMބ��<�I8˰J��1�&�OT��7�$��^^�_A�ot�"���`,�@���!���,$l��	i�M`a[GR�z4�V��Ì5;o�i�h��˞�Ը҂���e�~wqЃk��ңQM�+��de������7���CY���=E�0f!FzL���3�y:�!��Y:��(�$�)�d.�3���hU~%��!�vr# ��$�n����ȳ�X����0*�Q�NQ��l<�i�U�F+�^����r�(�"��Q��a�z\������{�Rk�D�q��`�>���4>w)�Ǻ	�yc���g�&-�r����j�AwMY^k��R�%��T:K�Tl�yG3��*�Y{`U�F]���w�s`ؒXwM����miC��ʢ���2o}:TΫ̨\n~�&0��ʨ2�K �:�w6�ս�p'�Z���g�؉;��ZxH�LOjp�'0�`0��Z��7��&Tj���x�Z�����j�A�a��֔����m.g�����1��8[�:꾩�0Eh~��gt��:-�oAc&���v9�{��'1�Z]!A��V��ө�V�jϟ~�B��;F�{�����#�U닗�'��������@�Z[�)Ac�"�����{�=枆��=y�\���e1wNs,�?�����m������a�p��U��<�����~�.;��C�_�nEn�����n�}g4�-(���x�6r�P=�{e��:�l~��>�C�������KK�F���*0-��6���(�6����+=;�Fe��"����6��H}_G3ˮ�����3,i���@�
���~"d.#h�=�I�؟"�fQ�;���$�@C���R�i(30���Ý��8U��a�!N��p�d^��r���T�9�$��z��$�>2�-u�̌�*�,�Q�Yv&zÙ���+��P�	�w���z)�mN\����BI�~��>P��ir�޲���
��&���Ք="�ֲ)P��	@7?��}FG��s��~�Ќ^Ji���y��	/>��U��E�j�JK��C/���g�^���IR"dU�F���>�`TI��W��e�#�b/ӽT�P<*1�g�ca��N�6璤å)�n�
�ƧxS�qi[���I��`��nx�g��N���<D�# 6�j�9��-��1SW-
O��p�����1]� 	Ӆ47z�G~?��.��]A����R��l���AZ2z��ϛ����h
��A0�ų_]%���̹ۿp�ͳ�����U�\f�D���kq�t4b%l)�9cK�j���9�2�<�t(�pT
a�EF�(�3����E�z�b���iPU���G�|2���h]sj[���N����&Z�s�U�~��aϼ�X��L�{��[��p����g��~��kj�����?]I�z���w����_Q��"j��tAUP�&转�������E*}��Q�x���GS�s���C�R��&�c��V��~
�c�̩����C�����(j�Β��E	Y���X*���j"6�U�-�$�c�e�; �T�k�kYp4�H�ɚ�4
H$@�z��35�wz�Tb�u���4���%�ˀ2�XX9��	��+?�^��ߥ���F6�`gP��2z�yyJ<K�n�ou�-_�����<��s�S<w]L(#�;�
°U�*�QMJ�U�r%�Hg4K���hM`��?�qlC)�$�V8K;��Z��#��PzV�.�դ�����\�\aI!���x��:�����ꗕI�:�9lM�;߰��#��M���(��6o}�s�H@�6��)P�!S�����gy�`��OU�������m�V�=�B,s���ٍ̆�+�A*��0£e�x���؈�"���ߞL{Lj�{�0Op�ȭ���H��vKɄÁc��v;��a��lSp'`������~g���^�b
UR-�����
%��@���
uW)���>9^q�gv.��1틙l�tNn�|{_]����:�$-�iQ,���j�'��d��V�zo��|���3��yQ��.����Pb`�y�0�%�U��0��L�~�3q]G9������x�ٲ�9��$�/����2�(e�ĒʬQNW~�(9��}�Ӥ�'�ݲ�D��ʩ�f�h}gS�
��N�״����{�2���˗/�����?�����UZ��A8��zq���:�M��31��K jzFu�=��H����}~	�I��W�6}�t)p_=��XR`�#�C�.`g
4��N�Psq��YrVDՆȦ���	d��a]�	�v��MvW��q51�a�)Eu�b4~
�ǎ�OA�_��C���?���9��k\����1e��(�`�Z2�l���l����t�Z�L�|j�~����{Jw�fi�}&k��p���0v�"�.�,e<�
Y�o��P�!��_ŧ U�bER�'ٮ���D<���~�C�N�;t��Et���Σ�@g���+/�.?K���<�N�}[�8_����L�1C�g���t��o�w
���l8f��6�}2!0�P,��v�.E��YL^躋��!�M��/����"��-��b���y$;�B����=�"Y��7ȟR(-R<�y@��Иm�r�q�Iq&lR&�TX��
�ȱ1P�#v�Jp�0�\�kMx�l�%3w8�H�����p��,���Z� @��$�
������;�?�lvrk����ۓ2��fП��Agf����q�_�%�V�I
Je�n4����@�oE�aԊ˟g�)��P�&NLE)�s(�Z%C�ʸw�X��:d��4H�k���xԱ�ȅ�3�҃�^.&_�s���8��7v{�|��l���s��tv9|g'ؔ��6/n%
B�M�;��<��sNb�	E�{4b�3Տ�E0��E���->��6UZ�w��z����h���^�n�d_��P������M�~�~��[^��U>a�1|�ݱ^{Ywm�,����7�'�cx+������,�F�Zn��So�f�Ӏ劭��0��7��!
��3F�al��cQ��)���=P&I �̊�L�v����S��q]F���=�S��m�Q+	G���pH�k��S���Y����P<V�(��"�ï=D�5/���������(�<��y#[�T ������l�9�}�{�^kU���jx�/j��z�b��<�P���r�+G�m�M�������l�ǴE��
���)��U����o��"��M�V�ZK]�۫��1N6zT��d�9���,�ϣ�$�u��
{��{O�Ƞ����,�T�˞W�Zw�oEʴ��:6���Ӟi*��b�쓐�1r�srH�z4.`6�A�o)'
��CQ��)�7O4�%0<�dy�8�-����Kʈ0҄:UZ��'?X�}����"�6�'ӈ�\�JnF��ixv��j�&V���3)��_R�|�_@���a�h
�&�� ���#,zx�S�,z��%�Vn�+��‹�gͧ��^47�>����˻�J.���D�9kk�w��w*��G[{�Dl������(7��ߞn6�[�[�ᙷ�,��8�����nY��.\>����~�FQx�dP~UZ�We��r0�p�_���a�ZI��O�$yH��6T�*F��AҞ%���ʢi� �h���I��V�ݽ�N}woc���:�0������s�������'��~x����X1N����&�Տ��+�#4�'��'��|M�V�
�%�bqыv���l��U�D
���F���Z�ٱV����.�j~�r'��Q&$�F�eh(�Ѓoa0����`�2�m
'������y
��S0�>��i%�_���~XEM{4m-�x�bu�zk9�%�=��g��Ն(\�	q�7��s`��ﯪ�A��T��P�V�C=�b*���9p�2�~���:�)�&!0U
`���-@�z�V�ͧfa�T˸3�M%_���U
����*p��f��i�j����5˱�L3�`�k<V#��ܕ��mЧ��3�Z�Y���ؒ�Yxf�o�$�%="M��6:�G��5���@�k�<r��� 9�.�L%r:�.[�O���x�@����+�&�=���X->�A�G5zDRP��rk�!,+:�/:����e�,0�l1�"�,啉������zJK���2=Z}%o`��`:�p@�_0����g�&��V��Qjؤq2���OWC�&�� P
�
##���k�F�x`NϞs�r~�s�z���Y��xզxXB,���3Es�"JnN�;]ך
�&�_��8�ٍ���n8�bv\$Z9i��4��|_�W�p� ���s��	�gJC@ݥ?f�3O��[PTj�l���AΙ�z�/�LU��lh�%�Ͼ��^�#)�DƷ�}�@.;
�i�ן��Z��8�q'�
���S/�և�2n�����4[}�TwwK�Zn����Ξ��t����R�8��r�5i�2�F��X�����D�5�k����Jv�,H:�,~sM>v�V��p�x������s� �fS����F࿀^N�e���n��1��~��xծ�14�4�Z�G'@`��k@N�)}�{�%%y}*��T��,�Ϣ��'e򗒆���u�Q�44��L��d����P�V0B
��Z���㤄�Q'!m7�guQ>>n�S�D��Y�j"��C�\����q\+�E��(W����ǵ �Q���V�K؆]�Y��q�x��X�q�t%���Q�]u���U�s/A?/U�y��`�)HO�7���r�m㮔�%��H��޹gH�`P(��M�hfp�`n�8���y	`^��>]�Τ7cXW��W1UT��>\��At�EcJ���}���w'U�庨6��$7+5=O�
�:P!
I�;P"�K�`R3�Dggà�3�!�ys�t�ݏּ�5���t��������6Ox*�A��I��˼Q�)�E��wWD+��f'ޕ��H�,�C8�@
�9���I�|�����v̲��|�UA�R;Z��ufp*���<��l���MtF^�Zy~��iapO�.{!Zi���>���u�֢��{��l4^�GWث�Z�E)k��Jk��vY�tɭ�/?\�e��J��T�p�����z��LY�����B�Z~�7طp_�������5��#^C~�[�/Fv���G�+rʩ�˱(�Ge7��?P�P"h���/���X�h��*bqU��������A�dHJ�DZ�p���=�Av/N|Mw�m�������m��N�
�./�I��%�$Jlj��Il'�3mE<K϶b-�I��H	#aC���Ѱ��Q(�U�HJ)�GˆP(�QF��}w�{O�Z�������}���w�}ÄR2s~*'��%�/�B�鄹��d&��͜!
]	�������gέi��	\��� nO�����RMJV�����e�k��g�Ra cB�<���Y�����Kx��R�H�ɢ�t�8	r�����2��ă�~�H��3XE�2�T�0���/,٩T������l��?1��KnX�X)3�*�5�F.'u�3
l��&R�V���A�&Ya�`�?����S�I;Fv�kع�f�9�Dz�~�ɊEQY��3;����ٲmf:k�5z:�g�X8��.b�5z���l�e�<�O�yF*�+��t�k7x$�߫F�1K��,*]q\#��������_w��h�Z#Y6_�n�LπW~�;-=����a�T�^�$�j����OR�Y*�`�Nʨ�9#�<)����#x){���c>/�2d�	��E~F�rS:D*=�c���}�FZz��n԰�U�R����e�.I�yz�z��
h[A�l0C�
��XbU�0�G�N\$W��iP��x��
1���f��J!ucS�?�}0��(��H���%
��e!�
�acズ�f��V6�R�{�Al��>�[��?1˜����У2.r�t����0���^�m�9ν��s<N����,h�!�Х�R�v) �R��M�1�4��-ƉLD��!\�g3PYc�	d��a��VO����z���=[����|��h�QVV���ݻ�ߧ�G3ґ��f5h�̢P��D�Zz���&h5*��t[�订�`T�LLJI��4E'��$�V>#��I�T5Ҧe�>��iRr*�6�X5`�s�٥���Y��!.vJ#Z�����D��z;�)I<<����[ET;(��
Gưy`��n�!(�H6��=�O%䛪��]�Tk՛�PKX�Q!k����Z���!����HyhA,0��f�ae��fV���e�G��\#�}�_��Q
�{UWT�wGQ_P�T�
� �[�Z�4��4V�4�rhC�F�w���:��}q�a�
��mFV2���k85XƘ�Ţdnl��8�)�=�	ƹ�ٙi�/���ȁ/�ԎsZ�9-��MK��y�^��'�]��Ԡ������t���K�ڠ>]ʩO��է�w_}:��Wv�fN_V���Y�YS�EſTgx��n|��N�u�K�P�j�N�THS ���]��)A"�44U�3��<{�3��so�܂d�$Y�9�����;���$'k�%B�4�D����5�QIF�Wk^>���dkcI�B]:�D8+L^>�<g��S_$P���'��\%��Q�=B(��	A�Dm��A��?�-
|�w�݈��.w���{<����1��~�q"E�P0�� �jɣm��A��hI�`��US����я�IEW����I�EJ��ЊQ�W���V<�/�4J�$���!�R��drȲ�p��d�3'<��H�	d�ᭁ
�D}HeAzX�IZ�A#�#�9Cx:4 ,
��XM��S�^5�g��	
]�F�Bz2��]���<��Cu�x�N%0�y0� ��s��ä��Ц�m�����^�X��f�4^~w���~�\t�n���K<W!b�%P��q ���3���D,��+�e$�i9
�R?2�欃c�.EF�l�G3hva|�V�2̍�Ba[F������{��D\�S �Ӻ�0�[��BX�?I�YQFA����B�G΍2���0�I��꾑H�_�.���ćC��+�aa�M�h���cY�p���P��i�>�w�4�ӕז�Є}�.�d�0]H?v�
C�j[1�,b��`�x_���9���H�� 
��&�"5e�(
U?EY�,�ͮ����6�|qɩv%�k;O=�M���RZoJHo��OM?A���d����2س((��j�V�F@�f�l�A�
���ݭ�m青h0�#'���e�[�60H���9Ƙ[F��1��"Y����W$ۜ�J/ih�t�m��w�5���R,9�Lv�ȿ�XG�ɽ��k�R���D��d�I�x;��,X����$
��1������4ȁ��^zS��=LR"�%��LOs$`hW�E�!���t��U�L�����i*A���J�	d�6C�Ib;z��	�`w_#B(�d����"c�t-S���9~&A�P"����ѩ�^fb	��RGua����I���+sb����

p�$J��#|@1n�tk�;�$a���I@�H=����N�:ֱ�����xp1��'�G�~�=�l��C�.[�q��$�;cQQ�.+)'<����i�*D��̢E'b��ҁ�, �uIC&�M@-9�;b�{s��U��"OK�_҆��Ρ�P-A�q7HɾX�;m��5s���
�`G#��b�В�b/V8M�\�e���tE9ͥ"|G)=��:��A���R�hf1�A��	J6%B-�#��P���¹�|�[O�>�vΧ�A��i�:��@�D��+ns����'B���50e��X;Y��Fe�%S�@PN�Ak�}$���Pz����,K��fV����2��2�s"���AI~�
G�-�)vv�i��:*��Rh��9�.
T��W6�$�zs:��]�|Wz�ȅb�#����\c�mP"_��'�g%�m`>S��u���(E��%c��#cb�7X�
ޮU����5�6�8�t�;�۩5�>��ԡN�����z).Z!��.&P�;�1�i����#GB��ZT{?V*��5@x��4O�Au� �e���,�����5K��
O=��Cc��D�]s8s�F�����2��gx�"�$��G*p\���
7��3s��1K�[l$
!����\����TJ`.әJ=(û�JV�0��T�>H��v����j�F��.-��#>��w�����3i*Pz�!�m8}*�n��C���u���I0G)�Z�5U�oค���)ޅ���SR��7�a/�!�C���6��]��k�`0��Z\��$�;n����^��]���"�%�s�c�5���]���||]Pex�OJ��xl�AM���ŀ�%킝,4׈\�АJ&��۲�傧�����:�`�qn-qM�(Kb"��"�;�R���oO,�*u9�g��rwl��9s���\�2�&\0�MwkD�@s�,J�L@Hf���N�[ڬ��ɗE�Y;T^�}�gl[;U��g �`�Ê�}�*3�d�2+�о�r�|���?�
#b�_�W\:�ĝ��W�������Ļ�ia��b7��h���&��=FE��ɒt����丢��
8�9��(1D���v�4\��T�"� �ܐ^�Ԯ��S@��)@�/�BI��DM������d�yNSݢCU}
"ꥆ��*b7N%�=,��TЩ���U��s��ѺQ}-R[!h@��܅�M�%Dq��C�՝|T¸=��B��+h�LPc�-����F�M����>I�5LT�/�Oz����#Z�CL�(��c�H+��8Ef�$n�
5s�Z�����ZV����v.��IC�p9ZF�S�W�,)!�H�p�6�A�F�@���d��;�s��r��|W%�.�lu9m|� `;WK�wۅ|O�;�{E��[c�P^k��:�4
es��\���1���˜�%���G�v.Q��
�+�
y�I��kO*���J}��SN�C}�`q����6�a�$%j���z��iC8>��b\W\�����o�*�E�ǂW�1��P�n�GR��=
��8GZ���j��ytޱ*c�klnQ��U�~M�Қ&}}y������5�Iv�
d�H�Ҋ��#�ڸ���C��j1��,�R�:�b�d�jL}R�B&!�O�:E���`��t���df��e|\�d�N��^���#�T��1��_�Δ}Ֆ���֑zOөĪ�F_K%2��MF�[�P
�]Z\j3+�Әd�X�#�‡�������v���K
�L�qp5l���P�\����Ҧ0�!@��X�n2*�%�i�Ǧ�����9���Pa{�0��U3���[P��
���1������F�:�N�
�
`0�Q��28U�p��NZ��檍Ơ�>���*G\S0pH�Q��W��4��d���8�H�Xe����;�(���.��2wYy���/+.��{'����A�&��S�CQPi&���\�џ�&K�]�r�7�
F	_6�@�$��%�Ÿ��f,���ON������V��bS���!��*0�Lde!X�n8n�0C�f�\���ˇL��!}����ZL�=��|��ޣ�g��a�Ȗ7g�š�5����3Uͩi�[�P#L�,�!X�e7{2��R��+��S���`{_\˷�$��0����(���3!�;��N����\Tכ�*��J���>qР_b0���c���	M����#���j���E"8�IJ���8
u��i��&^rBjp1�^��L,����J�J�a-�@��--5H'�?J�a)��II��2|��AF�c��G�L��A�<�)�����NP��/J�v�)��
n��[r䇗��3�7�(�4�	�G&g윹uTX@�
����������w)�����^�!VH,J�R�)�<���)�K�)�X��jg���!^�
<��s<	�	9�*�kɍW�V��C

"o�CsAV5�Xed�T�%Ҭe�ƀ�T��'3X�r�J4)P�����h�U�g*��q��N)�0zd=(,�Ӏa39BIE-%@KZjSM�M2B�`���a�l\LL��Կ��*�(�`Zj�S5�&�g�x
H�C�v��]˜}me�4�U:cJ4��E�iW���>���CϘʝ|�_�9D֖�[��b�C�P2s!\����أً�G�i%����o4i'\2�
�|E�j��[
8.�t�i	�����CpCY��Δ��|����Iž�D�Ć;���앗���+�f��Q�b_W(ХH�X�p�KPʧB1��$���Ak�&<��'���~�d��4��nt��״		Wq1�Ԉ���"Rad�����)Ta@:�S1:�(Q�
c4����j<�U��XU��Բ�<	�N*>	��hL��*ٵu��k�BS՜�zB�u���Z����ZЙA����=\"!'���C#~�z��9��O�(.�5
K[-�F���%L�T��v{��h 2e��XXb���c�΄Dn��?�1�3�'�3�ī��B��R��x1�4*�&	�L�j�la����p;�J�\
cZ�P���f����
!�����IHq02ȇ�ƃ_��5��Ӗ��	/�Dv�e�!�[��va��m%l�S[��ϐ������*F��A�g�4��uJ�E8�Q�1+M�ɲ�>QV?(T�]q�`p�E��6'�B
9u�L$�f�7&H(��
r�z�"a���~��0����|�3��<ܨN"h�`��}^��|�
��@%��e��m����9�4A���'?��|bqDa�h�6��:8�[�wEcFO�<�H
�b2
\���@9�y�i�P<Z�$�~r��,�0$O�����z��d�Kc��t턨�SG�NP��	��	�k`�:��]�ɡ�Wݚeɸ�x<���/[Cٗ
ܹ�!�w���[]{hoZ#1��?vh���E�� �H����x� ���w���'A!s�p��-��C�RX#x���{]�B�{�e�+ 2J28zh&����КLۼ�(��TOJĄ�PUz�:?Q�*�=嚘c�t�Ŧ�~9��&;XUޏ}
��3k[Uk[k��Whm]��lm�B\7>�Q�UXԎ$��[X��pH{��6��o��*��4�NI�+Z�ִ��k�2����Q��>Av�ǥL<�z��3�D;�D�'�b؆f	'M������|H�����iăH7����V~f�Q�2���Yd��bbw��A?�(�E����G�C�]i��&��(>Q�F����ޜ2/+��]CYc��rnۮ�u2eY�+Ȑ�v���-����;���܄e�[���vJ������|06f�oC�9G��H5?�zrSk�(ZE���ҷ�u�=�@Y	ZL�E(g8�&�Dov^��٫�Z	�~�0���{񕋰�Y��b�+_�+�/��as��4��d�.p�u҈
�l��y��Y�a�)��8fk�iXҷe��Ҧ��Y�!�8,��<��IkJ?_�Zc������3�	P���IH��:�KOSS~�l���R��3�*��Q(�I�I�8V3n��.��s4*٥�-Ea��le���2X}**0V��&��?冑o�!���y�7�$W:��Z�ԓ"zGt3y[��
�ڪz*��mA'9�]�Ƃ�i�"�V7:U�0e�H��~�
��E��8n��/�?�qv�z�	��f���:&N�K�r*�R�TG0���dh�c`)��!Eݜ�StVZň]P��8 ���P��g�Q��,ש+�KkݵR=v�rћ�MFɷB�M(�b�P����€(x"�i\�],n�(�k��T-��RJD,�O�F�d1�n�+�3Xj8�%�d��|��%N�Lђ-fM�1��K+];�̅�"+��rRK��?��z�xn��R�Ԡ)���ꭐ+\��V��a��FNNE/�p��F7F��,)�~;������fM�C��X�H�_���%<u��߂�#p�%�S��u`�,�#h_�k�F(%��+G�KU��6�aW�(Я��U �Jv��څvx&sb���>��ɡ�"t-'�Avv�[Er̽m�7G*z���b,3�F�+�l�C�!~d�g�9����G��I[!��(I���Bt���tn�O�E�X2��eW�#�)w�+�p�:�.L0@�|�B3n��(�<قz��B���f�s�A�����NMK#�d��d����)_6y�3Eơ�gC�RĎA}�a�D�m�I.^�����g�����>
y�~@���!}���Ԁ��(im8�{±�CA$�3[J��1�sW���Vle�ӛ�����4��A;d�6\]��P7Y�@�p䅔i��+
�;�'Z��]	e��Ff�u�m0�2����K�Y $��Z�4���Mt�z[d���/���v�b��9v��O$������Q4(J��7�rXD���9�uQy���g�'�RA������s�\,���B}1Ȥ�>ݡ��*�цA�U8h����(a�����S!#�
J� ��k�Hq���6Y��/e�O�Iz�ȴ@g��@����ZA�a;�u���bSF����Ѐ��Pl��>R��䨐�v{J�O���[�Ҍ��rA��:U�]�K \�8cde���2�db�İ��.Kt��9=NrNd���=�e��6:39�!����^�a�*� �g���Է��E�F7�D��Lr#�[,)�Ɇ�� 
B�đ�ͨ��GD%0C`��~���<�ZB�83�HdGm�P�7��aJ�	�k�fH\�<��i�$�
cR:,ϴ����q�{�{o�A���v	V$a����$�~�m#Jͳ8�1��~6�MҊ��V�G�5�ox��}�rK�R�&T*��$����f��h�X����9�R�b�S�^*ȭ��Н	,P�*���c��� jae�^^x�7O��0SQ�4ȶh�a�|��#���M��EO�Vs��t�}Y�n��@�����<:���#�J�R�5S���󱁷E�b#��*dk��"������E�3ad4��5��!tF]��l(�܃C&�k�25���@��0�1������@�4I/����hK<TTi2=�p�+�����4��?��E��8�]G�J�u������$�5�vc!�<q*�ʑ��t��A/����d삗�qͤD�P�|�d��UYE�ؒ��zD�Z@�$&��6��`��*�v{Ue\9�ݽ����K3{x7J�ө�N�e��x,��Tf�Ku���
������b�K]�����B�W��J��Z����	BV�Ңf
�Ng<��p�0M,cdxJ!��z%*D��?��|9���v$�I�Q@��Rt�;
VX�b�T���R4����-Q�4�l���ַ��/�]����1RCcK�W��DШ����2*
%5s,ՀN9��L�M�����.U����)9Am��8B���g@�KRwcʨ�c�	�F���2jT��5C�:�D�.�
�a4�8x��{����'I�A�g��&u�CW�`D7�}P�[�z	`���U+�6�g�(�d-c���Z�q塌CP��l0�J�7l�$&D ���{��z�b�0�5�[4jax͂�҇Ѣ^���m)�0s|��~��D�MI	S�\T*��dt.�f�I1����2+#P�ŀO��P�1PT��>�1���(w`� M��O�A�]�z͚�	�&я%eJp�x�)�5nSU�\�ږ�\3���M��B>�w*����Ã��,�c�8�|��(�^�4�fP�7�!��'�A�s��f�m�B�k'm�؞p�[�C��b����(�N/B�ߩrev�(�t��i2��
(�1�hYEݘo��?�q@3��k�-f�f�|�[���Ɔ 2B�,c�4�@�w8�H�I/@{\t��� �0XN�P�9�
��4!�j(���ڌ���p�TTB��.o���S�&9wvr.�x"1�O|�J�du�ם?����-�)��$Mcg�)dE��?{�D�v� [��K��x"�T�3��j�S�[N�v�p��Q5<�"�A[h:)ڣJ���:8aI�V�C��7$h`2��F���Fl���p��k���XLe!���LE��yN����k�.8�ynǍ�`�U:!���J���*���������&��1�� ㌊t�����Ŏ���#a����o��-�Ix����C�*
c`&X���;#4I�Y������u#z���S�~%P8�>�C:t��#UC���U��Z�P�ZN�5�N��V",��V̛�1l�<	zV{;@��n�8�Z��߁^�	�Agâ��(���KP�`1�ZrE���@�t�w��+��ڃ�{r&���A�,�,Η��:���\fc�j�Yi��CѵF�U��A�7�;�?��M�Qk��N%V�@]D�au�CUHg��iB�IN�=�vР�$���,�@J���*�/(�K	��G]�A���)�\;�x4YU�bc�l�*��U�%C�PA�rMF���[!Uy%G����P'��I@jٔ�@�u�oZ�0�дQ�AA�qP�Rf�>k��ݨ+H?S\�v;���(Јϖ
P��W���ā� ���sQ4�|7�����'�%N$�i��K`o@+4
z�v���x��=#*�QMPo ���6H��Qe3{E���1� ��o!dں���5R2+�'�"ӌ�Cx3U��Tkz��^��������C�1Um7-�5*�J�5/!<��Ĩ+�z�r	�wY����&ZQ/F~ݍu/�DQ��0[��T\���n�v��z����~���uV���۫bIM2֯��r�Ë��%�x��t�*5K5,ξ
��=ki�7�~����_T�Y�l7�T�g`�K��A���]��}��DgpL_+-�aC3R2�B�?LF�ޡl]M?��LyΊ��H4�4	��e��=G4���
����twJ�$���CAء���bj�
��u�i�c}y�VT���
��~]-�]p�0j�NN�~C��h�ލ۳�X6j�R�Bra �9�ڎ���oMRm�ɗD,N.�����)2�����H�� НCV}�`+$FEmi��e��ns�p����{�!�
�v�¡�|��VYۂ�%�6��r�(/�ڬK0lw��fm]e���6�#i9s��D�'
��4I���_=>��Ð`7�w���㜢���_W�~��$���]�ƌf�2���)��>���,�rRH��0���$
quNͥS(��^�Q�
���*EN�D���!Ձ w9�t)+��c��0��p����tT�&C��G_�+�˜J;��"M5��
x(�z�q���0Q�dO��,r(���v�D�>0�\	�8tǥR��̶�O.G�PR}J�2)������r��v,���$��+B���2�H)�l1�8����Pɺ�Ӽ��X�Bd�@�B�7�@	CC�=JQ.G�I�l�4x.���`2:��jeJ�p�q�S���<AQ��2�q*�@*o�W�X��4e�n���h��rm�)�R�Xzkne]J��s-9�ueJ��cdNZb1a!���JP�[̍q����%*+��B=��c5�E"}�T6k�\)���m3v��a�1�#�!5���cZt��ҁP�B�D�J�L|E��%����g��gj:F3���ت!l��E]Z����T�/}�ت���� �h��E�7�J�UR��^�|���撽�O���"�K���A����P��i�[�V�K��,N�B\Q�� �ª�cB��K�-s妰��F��4'c`�����;'ӚD�H-�-�)�2�h����ĩL�c
I�\�x)�	{2���Tf���jA��xY�f6�kZ�ZV�g7V�/�f)��#+9��N��i�HE��8��O�!:C7���ݸ���ȟ���Z�E�:mW�%��mU�'�vKM\m�c��"7�{$D�8n�;;�b����i2#r�P�J?�4�q
��7cH@���8"�̐�������Z\'i�ըj .5�@���5���,]Zi�.���V5U�46�{:K�� h�O�Y�qn�!����;�U�ę�&e��3�{��U�	 ѧO�*�{BgC��p�9ͱ.EA�`qZx�`���r���F	]����XX4��BI��eC�̒��g�ECC�a!���۽��נz���X�jx�~������|�1�O�;�}/��|�R7~�L��Oɽ�m��a��J���tc)`�C�V@�h	�\:	ǿ]�HH��^�:�F�J)X���T;�QwoҚi���XG�>�#�,�!�>c|���$�5dEm�fV�l�f��6�qȕL<5�x����]|�d��Hy��h�W����\v쭝�
��C��]v��@���@Y_�8�Rj���h�f����|Y���zUh����"z��	A�:R�(i��!��*ǰU�(���\-�+�e/N�_R�À:݄m>��[
m�Y��%R�nL�
�KG��>���h�Cg���:i'��͍�-˪�j��faQS�Һ�j�\�L����)�KZR����e��X+T5��5Tۅ�勚j����&��~�º�Z�0g�꺆��lR���E@�plK#6ɀ��4����9��ת�u!Z�	|ߵ4���&�J�rus�,�j-iZ��\C�PM7�5�6�vj�	�$�4�f)�"4ϫZ�#Ъ��14A/�9��V4�͝�"�k\X]Cgא�U�^XC#C������.TW�Wͭ�Z��
�>
���@"�YE���R�����M䫝���E������.T5�5Zj��a��XR����
5 ]?7�|_�\���k�hd�S�4�������T;��N�c���x��|K�.F(fA �yG���`�+&<�ɉ�K��\Є���tv�P6k%�@A9r
vL�_����=�z����{I�tSA�f)-��[
�V-Q�\p����X������I0U:t�K�'Lt�
�<*5i�����]�:����Oa��e�7�u��ꮏ!2!J%&��~�02�1��öT���;�m)>iWL�e�)ÄdX�W���i<��k.k��R��d�73Շ�F�<��g�b�ng:���q]t6��,D?Ӑ��
����[*ΐA��@����3\؅0�����N�y0�	�+D6���`��(씲@�N�n9�6Њ�$���JfPx
16g�Y�G�StA�/\��%̀��0U<E<�s����ASu�hK"9��EFM�K[)+�[?RT��[�8
Q���'R�Q8����H��N耬�t��A��QMJY �(��FJQ�ZC�	.����cF��́�\�ĺK�qm|���,XX>l4�|F�4�;
��Z�o�of-�j�)����E�F57�
��#��L�Ο0i����{�3!:��1G.<��tu�~V��4kN�T/��K�=S(�5q[&srNg�.�M/5떨�*,���U|x��Y��CD` 4Ǟ:f��9)j�-��XDqW)+����lFE����Tr ���zQ�!)+��Hq$S�8ˠE�7}�4�բ��>;�̦���/4a2�S�����V�ri0eҀ�K�1-V�p�N���[��g�,^�̻��!
x�Kb�J�ã���9�抠��L�[�4��lu�Uv!.�x&��tCa�AQ�a�ٰL��Ԭ�I��}�WFb��F5w�щ�w5�飳*+�ۦ0p00c�a�qP��5uwg�m~
�e)�O�Z���e[h���F��u���>)�	I���3�+)��^�"�@7��t��$���ؗz3R�-�'��d�;X����H���"Ê[K��ң�H�Z�4k@$l�����H���(_������+�T/X	��<(��$m
uq��$g`D@�g����T���/=�b�V�-�h�>*�EJp�=��O$��9$��LM�
F��O��J��s�`�r+-��'O
-�<$U�~D:^�ӮۢP��%N�q("08��q|�R'�oo"�� `��{�K�Lj
���p$[?��� ��
�t�����EQ�o�pM`,W�&]I��&�
�}�J�h�]Dd�u�,t��q������JQ�;���?����#���|�a���żJ1���J1���Z�b�#�)�|#�*W�p��	�K�<����u�<���e��{�1�9Nn�mI��_
�Ii&sO9N�\9��{�6���(��5�[�Rh��J�h�N��d[b�<�!�@�&0�ח���tSF�`��C�hƧ�ц�U���V�c9,ȯ�!�c��:Y��dK5��"��RIQ���&���S�#�
�2Br'����FZK4�N���O�k�)%����ӹ�ڙ+Նc��3V�vՂ�g+����;�<÷k�h���[�����B�fk�*s[�o������jkk�&��5xU�Z�`鰭М�ЉB�4ҁ�d�ar|��}<�����K���V��Q,��4v��4~*z��	�'
U
'h��$f/�į�����4�ީ��ҜT����	R��dѝas�X��؈{���a�=�,Ei&T�'�g@"fؚ
^�K�~�✲�����WMJ���9I�УI�iY,�Ǽ1)�(�{(N{�,��z������>&Ah\���d����1���g��i�l��Qǝ��/�3�$XB��-���S�u��`!�yгZ��xl�r���e1�oA��~B��CK��u��mZ���ƻu��0�t�7L�)?�F�X��K�N�n3g����3�;������+]�J�:"�B_>���>�Bl�Wv�+��ʄ�2�C׵��:5R��i�`�&y����V�(9l:;x�;Ҕ��isZؑ�6 �J	�(�m�L��Pi�lʦ�}/���)�@'��J:�F���W��r�>>Vq��"u�E�hy,�C���YmcQ�(-M��%�,�4_8`�H����gZA���z��Y
�e^�:ڲX�n���>#��Y4`	�u�,y���Eh�F�H�a��d^���O73�^'
a�v�~J;*���NU>@��Du{�č�A�F���ҲK��v(H�M��g{2TE�V�o��v��"5Ħ\&䗓�f����'F�Z[�f�6g���Dr�2�2�enJR𸠄ʜ��(j�$���T�7�.�2F`�ȺIz���#�![��J�LW�;"*.�����K	����3Х��I#A��GW���/I��aH�ZS3g��&#(u�E��hj�(w���y2�Y����M�g�e���2��FK�\��G�j���~����ץ��_��/�³+G��t�B����K��bӛ_
�h��=,Y��o�1��z�&�!q�>�i���&��I��R��M(ڣ�p	�n ���N��L�(��d�w�e��*�
�\��Kyh��T�'ռSeiu�8�wY9ílr������K)�@+чK*�S�4z�8c��� ��[;����C?	�b�V���JC���Z҈�2BT{d|�bHܻ5��	��>H�軥��y�x-�I3��ژSP�݂���
�>��t+T)�!����g��@�lu�=��o�ݻxQU'4�	��{�>~���w/�]�kT8%��T2`�d����M��Ȇ�%t.4	��U�8i"i���><�1�ik3�iO+�n,ґV��X$�V$j,�H+�0I�I�Et�P��	�	d���92Ú~E��V\��v���x&�VGVQ�8o��6��P
�K��B�Њ�|��x��uO�/L�-"M��0�@�ܬV��^�f�F����u ��YT�MrI��j%�%ۅ�
b�� ��Rc�d<�4^����Љ$ׇ�R8֗ŏH[��Z��jҩJ8�Jn�G��~gT����נ��TiS��(�e�~�!&���j<J��1���J/���$�AE�I���9����GM�guAU����<
I{F�H#����A�&ׁ�A]w�%��䤡1�Ģ�r�#[�ӝ[�ZsD��zRy%�@M~(—$;��A2�������#�7�N&�r��.Lq����(�R����C�Τ'�b�W1���6COTP������T�:Sii0P;*e�G馃$��	e�[P2��n��Ë۽Ĕ�]׈���r���p��q��Qv�����D	{�ˌ�,�,a��ax�7Of���jK���o
s��ۃ�����R0�Q�#<�q�8U<$�dD2}�N8�c
�0�����(.QzQ�P��i�eBq)�x���#�K��K�)�+	%�Y(qg1�T>)K��U�)��"y�L����3��J�W/����Վ�����P��/��r�
��...��mK��T�>����u��J��O-�R�,g���!��(��\�O.Q��uɥZr1KV6: E��Sl���ZY�ۭ�)�r�u9j0����V�BE^f�]	�0�h��������]�cplɭ`�^�!)8UK�Д����闠I�B��!���#('V�W�$W�P�:ȇ(|�'�| �Se>$���l8����tvJ�x�6F��tO))u�?K�s��{��Q��l@S��=�4�$­�ڽ�Ŕ����Rz��M��R�l�|(�@�q���4
4,v�n��o>IDp�"dPo~����
b3�:]�fr/6ۨ�R�4+�
�%��F�93�M�ӕ ���y7H��P"�%EY1�E�)v�9���tl4�z��l0Ž!j�!W��`�I�H�hΆ�D�q����=>(���d�LG[�Oj�}��{��;a6�]H\��s'��*�"BѶ(*���~p7+�}H��vꤑF��z`�
�镫jQ���-��J�}�l�B�*j��n���}�ms�|�J����צh-��"�,�m���Cfփ^��nRԂ0s�2�����@WT��Y��
���P�H!����T�ͧԟL��D0�S�b(�TSU]_�T3�4/hh\��kn^R���yu�-�M+�� ���κ���R`�h�%����́�����l@����;��δ4�7-��u��2H�΀,�Q����±v�P�3��S	�R�&jv���X[q(�J��`���vp~H��ͳ
2K!F���r(�1'�$�\�`�H��a�G*�<��P"K���;�<ˮT"�"d�E�Wl�g7˕����q������q�L�A�+햂i��0!����r1�)%3�v�:3���3?��͒��y�"�齠.�b���K��6��b3�e�I��
t��e�
h~��΄�V�C��#@	�}r��]@�G+��:��[h����lyd��iْ�F+a�����.9df"�gD�A�P:�Fh}Z�ŕN�W'��Kd/��
#���Ռ�;���l�!&��>�QN�@x*d܁��?=�/D�-6%��|��dL&w�`��P� =�Eh�x(���s�-7"E"9г��c�4B��b}�`�f�e��9��#�8IJ�8����G�J�#b<-=�fJԜ�@��I8R�V�R�pXY]��
��V�Q�3$��(eJ�)hҲ�>�G%r�tİ$;W˙KD�o�Kf*A�^rT�?
גV&��1ZO���b�HYk�2�DN���X)�ߨ����$BL���9�Ȧ�E�/?\����,y ?-aD |HK(R�'�Ua�t���Sz*�P�n/�Dm�i��'�Kʙ2CQ11�!�?n�d��Gc�u�.Cq��͐�A�n���dj)�W�$���d�<h��vص����U
��,V��������4�w,��
���#(�����J��?V��U+�ղ*�iV�C�_}'�P&���,C.i��]�2b�L-�R$��c�y�p CrWB�h��gp���(ᐺC�7�쯶�Rgx!�pW:V�/@/��b���?2d�+JZ^�%�����t�5�KW9N.Mww���/|f�ۃ.[�>������B�4� ��B���Z�����5fIK��.�t���9�KԱ�|���������5��K�_���
����jYFƗ��9\>]���y\������
\.����|2��~����Y����l��^�cu��L��>[��rY<��%gfw�|�v�%�`.�サT&�MK��-i:��0�h��Id%2����*+9R2n�|��&Y{d��	E���Hq�%,�3�4��������V���D�{7�����f���Y�,��T$��I����120�<�oMM���9�h��ɝ<��'w��<�%�MQ�9��QM�l��儢����3=�`҄����h�����g�Ŧ5���AЃ��A��J0kAόv��=3�d��R��oW�b��V�S�U���v
�*�+��~�ق�l��GSc�d;�=���bw�'�w�������jpUl�M\�P}��VOq�]���D��A,@p��@ʖa�!�����>�3�מ���ٔwn�
j�d���J8T!,Fڃ"�g!k軮{a8��s�?}?����j�,+.ͭ�����},y������75k��ک�D�05@�)�bS�Z�Brn��7\�LQ`��w�q�{<Ź��w�w^�~�º���������)��_�����?���G���1������Z{g�{�����$�����4Ih!�
�-�%���_��N�n����n��~���7j��ɔ�?��s?{���{����KJr�?��s?{}����ֿ�r�?��s?{{�g���W�Oq�?��s?{o��L��6`�O)+˶����?e%��7~��	�����L>+F`,_����cpI�t$b1�Ds��,t��ub؄sβj�H0�9YP��_#Rt���DIj'P���,&���&8x�q0k&(#Kaom2�)9�B�Qu�o�f��4I����4O��f2)fU�$��J�_$P���X��,��Mf� NCQG<�X�m�X��(�X�]�H�Р�z��R����.ZS��f�:����D�;A!�A�w�a�9�ث��V��1�
"�`m�=���5�}�#��i�w���QY��R���--�
V��;Nwy�M`{!`	<���R�O�
�M�����4�/w�w�])9��\R�=���O`t���M�^g**w�:���E���-&�NW��XL����m��n���?h�����������S����;�߰��EMV9�G�bBQ����'n51?	�-��s�?|�Cm�j�������[��N�?�S	1
����������uk�~�]0;�f�7�ַ��LB��n-�t��3��BQ�.v�ܖ�}��L>J���3Ũ�U^���;�!�a��.Q��,K��ܪ��r���x���b�/-/�����w�h��d�x��\�{�������IyYn��OW�mȴ�"��D�d��A����/-3�*-+��{�G;ęa�I�1�Nv��$��_�Cxȶ�'
���\0��P���2�	B���6���1$�NItaA�
A�k*x�&���A�B!|LpQE��I--�������Q�<�>�N����3�Z���{��e������,�[y��K?�{`�$,.��\^�慢]�S��/�Y �S�5KZz{Z�DbуM�+�����9��!#������*���M����������������������������������������������������������������t��7��4�=�qpo�~��u
����7�uv��c�hQr N��0���R�~t�������]�bCU���Bv�������Rw�k>,c��SJ�ӦvH��w��=���L�RZ^ho�X���yw����ͨ-L-�:m��Ca?�����n���a?���9_��IM'��Y��;���=�/��`B����As@���<�L�����E��`*B�E��4cdhQ�׬˰�q�z�s��H@�p%y[�R���$$�>;b�=�O�5j&���Y	1
BɁ��9j�C�B��oh3!B�A�1}�h�3K��P�$'�Ya[(�֮.Cmv.T�H�����;���5]3���=1�d�R�W
�cQ�UOq�4���p���K����^�'�edl�N�Z\���$�{J���)�%��;�L�#M���龡��.m9�������bb`���*/-.+�������g����j�����Z(&�D�8�e�t�<�v���uƜ�h�Y��B�A�������@�g/j�{��XXi�ͫn��u������Ǐ��M�g��s���]y�u����V�W�y�����yyo�UW���ϗ
����]l��#q���7_y�)4��/Y#�q¬�UU��:��]��O�|���ے/9m�7�|;���e=��١�񊼟��ly�q��N��&�դ���ޏ/�c����7᩷?��W�UϬ<���Sg	��Vwv����cF���e¨*H�<k�Z�u��1cN#|�;�|�g�q�ܬ��V?o�8�ṂN%��l]�O�&}y��S�u�_�d��ѢC ��/��^���
V�s�1��֟|�S/�v�Н���SO]w��7�.��>`�����=%kZ��+�gמ�\��ůx)�pMhM~�Y���;$�Ҟ�{;1p�,aꏷl*�6�˫Yg�_t���6�k!����	��v0����o�]�ܼ���6z�
��G�m"Y�rr��t�ڵ�?{iƅ׾�z�[[����yS��p��1�]t�ōm�����jقpc;�7�r�������7F�u}鶝�N\�󠺋�*�Ϲ�g�f-]GF��"A4��ֶ�8��H��u���z��K�7��*�^p=�}����z��?��­]�������y�p��V�9�V��qycǞ�8���s��ȿpޯǏ�Y����]��b�O;� ��a����[O��v�S3��\L��74\7����@�_[�0
.Xp`�g/U�É���i�J�=wܑ�d��c�ް�����
-�!]?6�Sǜ�x��-[^~r����}O���u�5�~q����[/���k�iz�D��QSS|Ф�J����/jW�۟��:>��LJ����۶a�]_�h�6�����hm|�{̣J���u�uݱ���ŋ�ǟw��M�N�$�{a����Ey��w��o�V��E�0�m�>���ᕳ�,*]�����I��O�PS��-36���|?jn�p��˿h��M�$��	~���&�`-�̭o����w?]�ֹ������:��G�8z�t�9����p��X޸��M�k��=�(�p��?ݰ��;�n�8v�E��Ʊ���0s�5��8�]z��yiц��zN�>����|���J�Ͽ:���K�o�ur�Q�<�;ڜS�:b�������Ǎ�Ϟ,�+��W�x֎dK(t�d~n%=�]�>��ҭ�_XZ_��<��[>��WK�j�����7��qSZf
U�y�峷>���y'����(rf�N:��
�������o�~����/Y�����|C��/ǝ��gz�=��no��ʮ-�oh���kv�Y��[5�JJz�阪Ƀ�~q�������_�z�w�������׮���;�z��7�������NJ5/�,ַ�t�g�EW>�u誖1�]���8���u�!�~��3��k����_�	��c�~���_������>��k�w��x��j�����|��_y�=���~ީ�V�����޴ώk닖n|zL���_S�j��K6m:���趖�K?����O���_��WKn\v˫��Rx�OWN�(��e�&G릟}��k�I��:�瘼��?���5�a��}��r�i�ȥ�5~�C�O}��›�%�z����7B+EE�-^��$���x��o<������?]���+	�y+�3N�_�3���.�7o�'zj��[���"�ݺ6�)�Z��˿�r޸�Ox���vߙ��ǿ<��S�y�G�����SR��������QC�ꫯ��_�ܾ���}����$	���`ߪq��~;x��l���]��w�#o})����w�g}���}�����:ju�oV����7��O��
�Q�珻����NH†�	y��|�)����~睕=���v�����J/�n^�z���l���}��9����o{ȓ�<sb����/�O�l��w�>y�)�lX���j�%�ڷ�}�y�#o\0����ݽ����oz��6�ק��M�6͙�5�o�
M7�q���|��O_X]���s��o�t���:���~���Gq�A%Ǟ��G�ڋ�>{e`��}���&g�'��駶Y��I||Q�����Mc�}��
�4藍;�n��nUŕ�W��u���c�w�.�6�oޓ۷�;w�,��?>�e?r��?~��_��y�;�y慲�N�[��=��6���u²{�K�uz���4�
�^�'�=C��O>��_|����o<�������P�Y�Ɯ!^�/�W�?������<�ރ�4>�2�	���;�^;wt��;w��z8��p��Xw��_X���M.��?��/(n�[���u����l�y/zl�\�`����~�@�U�噮�4�\0���wtVW�y��F�ݑ7kAoo�>y[z��}5��v�m��;p�Z�Go�H�����(�rm蘻�O�k���9"����Y���������[7�w��`��[ٷ{�ȷ��5n�}����j�3��$��7�+�z��O�ٵ�^���J++?|��!�k�<�G��؃_|u��e?��
���K/}���U;�;}݁G�)����y�avy~<�~r����������k�z�a���?�.��tehe펤9o���v��^����o�z삍Ko��Çs.=죭�֣ߘtl�ݿ��W?��gB��W����2S'�Yp�+���1�G������NnY�����9:�^B�80�#jN{�cÃ=[�����JO?j��\s����Ed2���#���N<�y��y���?z�yST���M�;�V{���g;/��ɣ�~��ìU����u��*-�o<)[�~��m�4�0���_|���?��;,U@؋�\v���O�6��>����+��z�-�d,!�ο�-��?ܸ��/�����K�)y�6�d֥מ9��WV=�&��~��w�W޿zů/�x�ƿͼ�VB�d�=��
�?z�g�v_W�3����;�_��r���޹ꖿ7\��mA��O�pv�o�:f�Q�v�ϻd�e��fhH�;��g�r}ެ���$�,_��ܟ/��p��
y�n�r|LtY�t͑u�Ɵ]}�+��E���X�G[�gH/U=[��I=�߲����榦�~uE�/��4M�����u�6듃�W���o/~1��R���u���bۇo=��h�~������~3o=�/{��y�ވW��O��e����?�i�t
��~����<›M%����/�����:k�u;�=���o7I/�F:�z��_�/~����=����۟z�Q�q�s�-�\�d�O|��#.�����N����x����A�鬺�曗�ƬͿ�m'�������<A\�����-y���[=����s6l���7��|��O��ڶ8Ǝ�vU�`�"���1WGƼ*?X|����™3�=>�7�*��7�韲��?��]w�|�/֏[�|�%�>�޳n�5�	�\��翗�g������/�>ml�~���Y��c/�����ӧ���"{/[7$�p�/�b[�%�s��U�}u�{;��O?����^!`}?�����gt}��Ƙ+��7�c��_|q�k/���}�Inܐ�p����#O=�lX(�/M=ﭳ���6+���v�{���'O�v�{�������������w���q5���.����Jᲇ�x8/���.��g��oGn���^����ο����~w����5�͞ߴ��~�o\�R��=�9�f��~�����wξy���7�:o���j����=��׾X��S�/<�mї��~��箚{ń
��t�#��Ӓ'�
����e�M`�EoK���t؉�c,>��r5.mn.y��g�Yw�{<�ă=/��tû���m�d�ҏ����}��v��c�.u��O^xԍ7���;7�����>m��ͱ�r6�ݧn�8M�ѫ'�n�QK�=(��ħ�Tb�:i��%?8���ne��}����͟(���fMy/~t,v�YX�=J\�sǁ��_�7o4�z��W�/>���S��g�r�߽lJyl��3��ԯ_�{����w�Zs��g	�ǭ�,mƖ�򛗾�kÂ����_e��]7.��қ��L��cU�؇��{X�}����#��~�|y�����,]:aYK�%[���K��>¹������C��|��ǗܸJ3\�v���K��V��/���ѧ}�7y�5�~��S�^���_ݺ~���؋�����^����7�g��w>��N*��o``���9Y�&��i�#L�L���\5.y��Λ�w�]e���z~b�ݷ��bR�G�׭���u�S��K�x���3>?��	��X�r�����;��޲�VxZ��7V�v���NN�sfv�ֿ☦W��_��w���-=�퐗o�������G�eVP0��|�����H+lw��5f���m�ݼ��/��
,��㶎���yS�?��xf��jimx��疿���۷uu?`?��_����|��O=��ԋ.�t��]��-��yE�mg>⾝\���{���˶���ϸ���^^���ZV������Ncn{�\Y��n��\~Lݪ�r����Ƥ��i�������.��g��¶M�w���o���t���S��������+����|}��'�k���m�[��:���/m�[�8c�pO�-?��_4���>.<�����Yj9�#��������׆��_��u�µ��nW��ǼP��E\��Wo�g��DY��}F�>�~��C;f���?�p��߸����x�í���zbۃ=�5L����K����?�[��4�w��]�
w/m1�W]p�]-���?ྯ6�ڰޔ�����J+�t�o��ʣǎ~����m�&y�����YG�]���\vC@�������ד[�e?��=�\��*(��k�X^���/�^y��/�7�/wo�j�_f-�Y{�1����\?X���Ox���B��w�y��X��W;�V���-�y/���ݟ����^/(<�0D�>a�+�B��ܖ���_j������W���W��S|�|����}c�O,�w�z��3�!���_۾���<}����}���y?Yn��D�1s�����HҘ}*�&6m���}�ZoYtœ��4��뿚��7f��?־xԃ��~�����K��q��W0����-H��
���B�U=��k���z��cfn:����%ۿ��+yi��"g���Z���ȱ=sʷ�	�;��޼���uo��i��M�;k�=�`}���������p7H	H�x���.��N�i���n��#��p���{�e�>k�5�|�g��O�ߩ���
֊��L��6T�3^�-�6���S�r�?�7�R5��{�_�sy/^�S��%�"����Z`�[�
j/��5@�kV��?�1�l� ���Bگ
��1�.IIIњ
|�ǿ�uCѠ��>8i&j}eQ�g�51�V�1���ٔ&vg�J�e���|�O�(�D���o`a��\!�?���U���z�&*����e��u?7�B�Ķ`Δehq/�EW�B��i��(z���2���OOW@j�˟�w����/+'K�R��STx?��� G<����l�T�q�vXvRO�2�6jEuU�,PWXh�-h�}۽?W��	��f$F�U�!�W�"��={A-+�V���*��Oa,�_]/dmY3'�1�9u40��IS�19��	�AT*$��؊T��(�gE�����i:%.L��΄���S�����@���i%��8����Gz�+���)"������x��.�s�`�J�͵��Lu�|#Z����J��7$u���7�d#j���b�Փ����ju�ɓ�?���}QP]�շ�\�d���Ԭ϶~�C�j[��:`^��9^�I;A,�=}�̠��6�{�6�<5H�rc=ѰITKU__Y�}�w�IAo4�/�/���5G��}JG���Ma��A����}�`#|�`��$�2�*�S���<a��ϑ�^ 5��H���8���N&����ŧ8`�/]��r��Ҁ,&ZZd�w,DX>k]�]v��<5

W�˪��"�zZH��7\�N���zux&�<a�ϟ���� rH�N
?
.Ój��ɣ�m��������bZ�궻�tXrt	oǤ��������i�M� [����8�S��V����x�������%���5�lpF�eW!�XQ{{{��EF6C���c�(���Ƥ�գ����x�Oa‰Ka�5��RS� +r�Ǝ=�9Ɯ��{(
:�ԜP���OQ��_�?��2�� z����w��3N�6?���0���~�4�F�FH�.�gKe�d�'f��p�O��ٮ�36Z�=�J�	��H��Z��6O�qů�w;Bzׄ�;�H�)��t�M�
�ش4��=���%(�'����_�~}�tw�l&1.NprtԞ~�Rݫ��s��	�����Ͳ�m'g�4�ԡ�%�]_Qg�Pi���]-_�Z����ť�۠�Q�[�n�<���V'�T���$^4�$�_Y<i\��v���g``���6>��X�*I{��]I��_�x	3�mXx8<B
�X7yh�K7��FY�F\����j�`�L���y��!����G��b_a2_a��N���x$�N<�@�av�lzs%�I`j<�*U(��D":ᄭ0�A���Z��$j���S>�O��`(V�j����@��1��#$$��:d��!��7�0��s�t�2�2�4~�z�(�8�-M�����y��)4�
�ch/�*�H�ebnz@L�"ƉҰ��ʓ33�� bA�m��I |�q��~=��eJ���~�V$�pqK077�5"|���V��ٿmZ	E��th�j��^�l�PIII$W�`O����0p0����N��*_XviA6��߹+��m�G�q�؜ݿ�hb�Z�q��l��&�~�x��|�/�{G�3�5t�w�M�`�D*��G������eEx�Z����5�;@�˽���.*\��~��(�v�`6��w�
�E
��r�9�ʻ��("=��EaMd�A#��(g��f�ث��`�Ie�1�nsJ�[�"b���uJ�f@�k��Z��r�O����Ȅ?�T�.ֹ��hZ��p*���ٱ	�f>��	`�~��h#`�X�N�DÔ������bT?K�/SX�̻匹ѣ� ��es���{@
����
�o�c#�`ggRE��H�@V�fr=<��t���?�6�AiU���\����a���̡ͥ��.�Z�v1�Y���)ؖH��#���T��8
��e�`��N���o��2�=A�œ�OfD���/@��7���.�
W#��a-��ƈ�DӦ�?n~!��V�į�Ǘ���A�s�Z䵺�k��w��[cDZ��{C�6��J$mv�������;]�zNO�P�P�)!�ߒM-�g��>��F,&���b�
��&�i��ӣ�|s]�ѦYe��l�;0�Q�o�� a�'N�ٱ�T/F����#E�V7
�ƻ�����OU��ʬF��~H��ec��g��Z��	�_��2��N���Y�؝
N6uz�b:::F��;�Y#C�_�N���7ߊ�+ص��B��5�659	s��E����-�~�bboi.��FC���?i"%�$�}��W��#��TIK1AS��4�����G�k�E5���#���'��c�%b_��U�������%�~w�6;^7���1�[~(=�XLz��̾����[�	���Ԑ���*�������T|(ب�1^�<"*
������iz��O�C9?a�urK&�E潅�y����kؕ������ab��쨘����(,ʒ��N3QӂA^#b~%�
�c��[r@t�yd8
ũ"F�����[�4*}�G���)��4!�3U�S��%j�)�:|X�{<6!�-��D�p�Kiݍ��y�NDQpAF��7�����8�z[�D�T�iF����Xk��T���>�5H[���d�dž4y���I���*=GN]�L������=�F��r�	Ϩm-.;	�-i�6.�@�#��Y��a�d��[��O����IE����TNI�����q1��N���w��H�P �{ �:P�-��#�*�޵^�����Gh�ȅ�\��e�6�r�tm{A��<�Dx�'�3k`�Q����M����&w�`�4eA%�.���d(��%��I��&�<��eY#�̞��
1����@Q�Z�;X	��Vz�ic��o;?3J�ik�tmm횜�L��Y���u
R,Ѹ߭��]c��y��� ��HlV�u�k`����V�B�N	��.�u�Dz�V����{�]�CZ��PI�CS���LTTTt�X�B�W���;�� �~/�KV&��ļmXJ��]����捱x�ЫW�8�ǜ��ƿx��9�%%e�d��5���\��b-<<%%E�+�g��Xr��/���T�g��,�?Bզ9ڍ�i)-Ul��9칳�K��,��B+��|ɓZY��ʤGώ���w
UF���;�4^V���ZUC#��`k�^k�[��VB䏒��yk3we�`�Y�Kx��ɦdY���a��߁M$�އ�-��jt�a}!E���Mn��+>/����P �Jf�J-fY�j+|[��@Q���ŋ�"�=�R��i�x'��욎�<��V�=r�`f
)��>��}hN5������?]��Ӆ<���g�؊�u�o�d��&.;�!��b~����TW禬�=����R <<���ܜ���A)�Ť����+g�3#$���AҷP�p6���:%?U��4���n5mY�`J�ZP��ñ�G4��%����fb���6���O�y@�
!ggg\߂���«���-�KH �J=�~�^����&�9�n�z;���_>q`*U��zoAy�D��`����燐�KN�e����>Jڒ'$�g��b�����p▒�"�֊��9ů@4=t�A4llр=�� )f�W���X��N:Ts�,mX���r��~�i���QD����aw4�t���|��)*��゠N_�#��8�������v~��t�e�j��� ������oF��OI���~ZOLLl��y��A�(
E�{܋z�-ej����/T�/7n�y%U����!���czFt�KJ�����r����m#��GU���\
���s���w*�¥�{d��8�	Z��Vg,YGP“@��l^c�A�~p�"���)-3*��7�%���F�C�L7����6�H��S���
��T45���=�@�\?-Q��$��W��:��W1K��._��"P�[��>x�EBI$����ʗoUT���+�e��L�LsGƯv94��&ރf���{
�	s��r�椠	�Q�c�`����hi�����b-��m�	�f@�
��������+��-<С�Kl,��!�����3\V��%��DcY@R�^O�Wo��$�#Ϋ�����<����|7�%%$����Q�2�p)�a:��L�������E�bC/�~���b��~8Y�Q��Uejy�Y
��K���j��x��?��A�5��P�MT���7�y	�a�T_LJ���3x��E�:���
4��H+젉V���S����z���c��_�=�t6K���٩��<�
$���Ŝ��`�7wd?:��N2�B?��{=@�D:.���
����Q�x�E��)h���ZZn��Q�¢�p��EWÅ*�Z{�ho�(8(�ll�
�g���ED�Z�co�Yp�:��_8Ґ��f2�xX��P�RQ���L�Ը�����&T$0�?.���B�����ă���i�H>0t�ws�l\�,0hY��r��Zch�+䕏�)�\B
�5̌�WC�v��O�a}R4^sǑ����T�H�{�n/��Y���6�Q\SJ��q�;<6��9�|�YБ<�p��l��)��5��U��Rp��D�3k)��a�!����AI�ۚ�Yp�����Q
��}��qt��/$ Ј�8�ۯ��E��S�qQ���H�'<�B��Ȃɀ�hÄ����,w�[C�F�������܂��gz��Y�e���'�;���:D��������7�
5.�r�`�6R'���HQD9�<`����͛����q�#=w����񻩩��r~��Z�Fӿ9+N�	3?��vuu)ikW��uG���K����z��}��=�A��5�gN�R��zzm]��w�~68����A�e2�.V�����^&{`(�������������6&ņ���,z3x�(
GTW	�*�r)��j�#�E�m�mڑ I��h�P�[gWv/_��Ye�+���x�i_�wE-Bu��Z�,`"_���3D�^8=>=�{�zy�E��b5��$��z�r��6q`=߁�>S��T�@]S1��I�QR��v͔%eOe1v��6`rD�֤A�
W�6�s�' �|刳���E#�����@�0A����͔3�Ĝ�[�S�EZ������=k*_i*�,O���F��D�3р�h�*��<�B$�- �+�u?%
g��?iJr���4��	#N`��K9�ph|"���c32Z�'��*a3�
���M�n�W���O]VH��7�<����
�{^�����x�Yz^��Gk�`d�Ҹ�4*��Avn�CzW;�
4�	���oҘ�<+kKYK����o�^�mλ��Hг@�:G���	���'qQ�o�q��ijQ�SR��#�ڗ^&�Ok_<bcf�Fa2��� (
.��� �:�Wi:�²�h3��X����E�a�|X�T5��+\�1^�}���Y��7����ݔG������r��L*BK���-\�Τ�j4[���	��������߿�xa�P�]N�;�
��a��YཪwF|�Nvdb鸯4:p)xGQ!�>���r5�,�w���NQٚ3��{�;=����Z��9�����WP�A�he�*_i��X�g�Ӫ3���u0�[a�{�g�_�ܪ%��[�L@��i(]�|B�v[�z�wų$�ª��)�t�Y��tk�Am�ﶊ5(��]}7�J>��&�tv�P����y�gB>�N��쪇,rG�p^� 䘘�R������3i
��;���LJ��pC�vi�ġN�l�p�x�_��ۂ$Q{#�&�2�0�}4^��u�x��W�߲��MMJ�8D�T�1^HpoI��o�=��u�lo���Y������3���2�EQ��h����<h�"�L�Y���I�/�,z9������tHp��� ���s- _7�P�S4|th�z� QheƁW�
����5�:���W�*q]��%�]�C4����
t��F�!��R�5��_�)\���8k$J����V���\����\/�=�����!=����-x�׃NR�o��� Ų���gM�_�hF[��+�3�����3���$h9�?�>��i�m3�����]�{������@��Z��<(]u9z��"A�7�K�c=����p
��P	�s'he��%--r�z�
f�'O�<p9X�+,-�El���Tq�*ѨѤT�E�r��Z���
���	b�~�^�E/!TANn>%9Y�2�6D�*��0��lgJ��`�F�{0Vfv�ñ�q��f�^���W�Z	Bec�^��^43�lJB�ƣ�7c]�I��Ű;�x):�����s	}���'�tv9 S��O����	X����d5^����L���~Jـ
@�'�R�yl渊*+��c^�<�^l�ҟx���G'�����0Z��wJ��Jy���-���|q�V�Ô���gg���_L:��4�@�I׎%W�QT�L���h���wJC?Ck��r�l�6�2��!n:š$�R�h�|�v���l0��[Ӗ�������6G2���p�Ҽ�H>�<u��ᙖ�yo8"�I��i��\|��2�{M�j:�߄\�RmȾ��d����AZ�%�n���/���`�4eo���oZ4����򄄄/�������)q=�h��-�gUt?��t�M�a_T �(�߻�s��g��V��b�(b����3��A�"��#ٞ�͵�BB��;�8��E�"�3�M��>�����%3����0�	���~����g�%�;o�����0�]�t��H���_��Z���<�����C_3���%L0%x�,�/-/� �o�S����
C[[�V�P���@�4���7���ڗ�j/�o��S��=��P�"��#
Ӳ�fƚAs�dpv�eY�����|2v�4��TWSb�{ u�L�ǽ�=tX���6f���ۻ�Y�ļm7�	�������BB�#]��]��bRR���	�ؗ��؞�'M�y;��fLqqqn��[ޕT��2��4�$5�������mH��v���������w�BO�t�KP���<<.��o�d����V�D}�0X����|�\�ʘP��`��DF�s҇'��I0c��ʥ���p��Y�lY:*��3	ҍ�R`�O�=
--�_�\��cuчC�?�3�@렃��^9�L��y�>MW�d��K{�����>K����n2$���A@w3?2�����X���nzO�"�|�r4u�=�%I�B��]gw*���wlvͤ5�kM�h��5*�Ԧ�=��h���+�4a�Q�U����.�Q����wE��ukmUde���'&l�2ty�J��(�|�E�Р���=�O)xT�lr%؈�)�|8�{� ��G�^н��c���1��Ɂ�z���p��""�_�vm�hG�zk��e�L��w��..B�>�������%��?-�RX�x

����?/�C>�,Z�r+�u��qk4K�k����m�vgN��L�R/��镜L5��Г��%YYL��(	��
0�u�"��H6���?�y���ٮ��m�
Y$ëh�T�L�ю�ٚ>{�-`��B;�-���ʄZ\ã-L��Q�<�=�wD!����k�4�A��չ��~�s�2�ƾ-�}-����٣�����*�1>�
Cgs|�s�n<�;���V�W��q�M�wי5�����DUbb9c�ccc����-��'&*-6���$�<.>F�J�r���>΋�3c*4B���DW7�E�����W�e%߼�H�gFfȿ���eA�?�&J
=��ߣ��ɦ�JO�<m�oj.�P�t�)Ͳ��W\��E�)]J����ppph�t�)Տebd<p��s���Glv�3�)R5�E�O'1�a�ٍ��qk����첆���b��߿I"��V,���B������_��.��'��7�0��$.''���ր��GJ�a�z��%&����e�U�Q�X81�����Q?m��e8��yE��p(L��#�7Y�f�B�FT�Zg���<Ư�+$m��D�;w?�K�氚c`}W�(GzR����0Zn���Gx�ꕧ�-nX�BK�D��8��D1�h_*�
�Y?��m��.LL�A��{�+>u�V;Cz9�9y�"����SccMBh�_���e&��w�#4�i�����
�o�gӺLC����߿ϛ�2+�o񺔀>�P��m�$e+YZl��sN�e��C��u��{=+���&����‚��2�\eZB�7R���쌠
���l$�c��η�����DN�~�ɹQ�q���b^�]���22_��k��b͓HkD���o��W�3FUS��.VX�������}f�7��Ok�9n�����|��V:�UH�=���l�O�s9�&�. ���I�'$���c\6�q��j���VH4jۛ���[���4�-���x�h`�T��i�A����ljĄ\��q�MG��
�t�]~�r�a.@�,�W��7�b�V��s�������ߟ�y�rh�u�N�A�C�<ݵA���Y�:��.���7�^�N�
/�%�@����ИM��y/e`3W-Se���w��9
�w�����;?�b{��QR����|��I�:�P�C�B�@vlr��I/��O����}�LJ�m�#5��K��^���n,�-�WCx�G���2�:�/5H7�}\�� _�VS���A��Ra��r����5C�[���]Ү�@޸�m���+0��!�����
̌���T�*�zД���T����C�7�_�A�l�)/?2
6jH�V������#u���MH�����!s�����~�..��Ok���84��g�/~(��P+�Ɗ��\xm��6�ovEȾ��f��{��ۮ^�-��dy�g.V{63��Gǟ0���ӻG�������]_u��	�����
z����>��G�����}T�Ц%���~7^lp��M$m��P�r���̸�w&̕Z��5����[����F��
�l���>U���U��\�3!a�=�(%��~�H�]K 
�]��T���k ?�����588�+|�ũԤ�a�fJo�5����'�A��S�Й�����^2���F�A�A�zp%�C�G#$H>S�6�93�oeHK6�Œ������Z<�f��ɴ
E�;j��+��\��}�
�4b���/a�i�O(�y�^��ѕP}��9���������Qn��
Ѐ#Y^i�[���U�ԘcRc��s�2H2���B��< ���2�h{�ïT�$�����e �*ij~�<m�#����+ⷒ^f�;]�Y��͟�q%L鲏F���i�#Cz�N�磗�X[�=	���(���1��7s*0o��4�{z|�fZ��������2"AP��ͦ��\��7aA	�a�����I
��m�wc�P�S2F�6��O���ý==�0�`��!���ӫK��u�e]�ʁ��Rw���C���S$��;r���~TQO1P�����_��{��<WB��Y�CEW���<Ы�bx�N�~ttt��]�3��s���7�(��_a��
�^VF훺���G�Hz��q�ɚN�f���a"E�`�[%�w�D�[���&��IjT�^�����~.��w����U��h�����[K�G�O�6�Bbxw]<Z'�ܔ�J�0x��m�cCm�6v-�r@�-Ն�w4$X��,��.��ܡ?Ă�^4����8YY��:ػ�|Q��ǯ�.�s�2�݃���uj0	��LiϏ�h4���L�0M����2�-����p^rb�s�(�^z��^7�ZI��&���Z�|=����><�Ϩ%~�d�����jp�v���0�,r�uv�8@�پJ+>F9���ÆL���	�<�k��㼺��2�(5#��\��m'L~��M�~;��4AwG-5�X�_����Ԋ��Ϗ�
;�h5��9����o��:LJm)����&�6�}��@��V�(�j�m����m�ȣ�E����\b��h�п��\V�+�2�WT,%������U-P���~ ��[�ܘG�q��&�P���r=gD�dP%%�:1!�+Y^�7*�r~?-0�(��޵!�u�>�=&��W���n�+=�)�I��W�B��;�#��8@����y�es�绪EcB�w��J������k��ӛ�(*�/��/�+**4�˿��Ф��1a�l�&�Ģw��#A�0|�|ŒL~gK!I�ԡ`#����Op��7.u�!|��5'-�)eb���t�|ԑ�L�:}�ި����~�v'�I���6�YoP?��;�
Be@!�f��z�/�����fD�=m�g��'�~O;G�nѴ�q�U��_J���뮇�q����M�^n�Jf+�T��m��"�9����i���U�Zw�!�s�ʄ����k111�Wކ����
	y�?oU3���ҤQ�mU�3��Ƚʻ4�@w�%�~���DB@�pʮ3���E��N(}B��`��J{�3�Xǥ&��xi�bX6�5O�c�*~��'���_�)��n�:�[�`2��%efޓ�%���ۙ��<0`�Nx;333������7�Rܽ��um������Ղ�f1	�]��,ٸ�ؓ
D.��"=}e����t�6~�9`ul|���z��n��
�.�"��=�9��j[oo#_-��"��t�
_ޖ��JW!y̜"533SV%nɲ&�X��lΥƍ?Oj��~.�ЯHw��ߺ��9�ŭ}��`ڲ&n`��HCN�\�p�?d��勈
��a�Ϣ����~V����~�����	%�@W&ə�4Z�
�2˜WjV�Bg#{���-�3����A�;u��<�
��F��������m.�S�K2ծ�6
2t��j�߼eV�jAr��i11�>��%3�5#<5�Z��
�6,f�hN7N�����%#�2N�LN()���O��Ru3�Y�L�ÂCln���p�ֵ5�x�O	�R�Ώ4���Q�����/�c��J�{Of�29%�)�N�N	f��\a��`�$�^_�B�T+3�#�,����O����&���Kd3��1�A[��'�*ox$��4�a��8ʁ'U!�H�7
��ZPݝ�wr]*aL"�w�5/����}�bJ�>������8�����AQc�o<PI0��h���ELl����bM�����3�T����c��i����Bz�O��WV$����~���؝��R���R�ȋ�/VJ;Z7<�?
������|�xr؍��;��{��v��7s�z� |�>
�b�瑁������ynn�!q�yCak�q;�°i��s=�=��͝*�wU�0�೓;�^��yc��4���N��|�o�X���Jb�Ejt��e�+g������ޱGh�ٯ�={u��L��V�d�/e�a��p�j��_n<��ӱ�J�6<�ܽ-���
�x�w���k��+��!�i~��Q[Oo�����!p�l�2�p�5���t&��m+�׀���J�hJ��~=��Y�z+�t A����x�T�q���{q�D����}zKoC����V�ˢ�BՂ�L�"���/�S�o�988[��3�
^��
o��@��x��K�{��=�|c}}=$��"k�,�=
BC::�;����`����$6+�������R@٢A�4���g���^�9P�zq0sp��Njg����6lg+�]R򀀳�uT��4�~�$|�'")))Ф'�qt�t9yy�e�/ü��
��!	}xceiyIʹ�)Źl�6��X������P��r2'$^����G\&O������h��r;?�R^RXHF��o����o}>"(� (O0�����.5����UQQ�{�+tJ\��"	���@�Z�r���5q�����p/�D�Gc���#��Dr�7gKB�����W�q/����3*����f�o8����:k$f3�I����竭f���<�ad��r=@D�5)�N/K�p�H�X}]]r�	�.`ԩH��.Z�`Jf�k<K�������Oo��9G��L�GdՒ4x�Q�Y}�=M��ݽ��Sߓ��eo
}�Y*���t�������q���A��"|�+aj�w��>I�z/b��*�c��n�^=Vb��n�c��L;�׉d�˻ϒ|���$UA'2WQ[455%�H��*	�=G>�;��h6w�>���g�d�y:�D��=S���VT���,�I���/�QB�=E4B�d�*z><`ia5�:��p���㸖�wS�����.^x7O��*� ���J-���c���[��lZ��_�(}�=���6�p>�{��v1%�(���$��Z�*
�iCD�Q���+�FS߿P��J}5r�I}wt�
,�Z8[�V�F�s�G�j�go�C}�-چdgg�i9�E�1%If��013��9���۟���`jZ��^l1�Ƨ��"��YŵZv�G�"7.�����rՇ�������WF�`P��ݷެ����t��}�	�ȶ�V��9OX�(s��3�P��B���q�UU+�a2E3n��:%ѼQ_�o~���Y5����UWsy�d�����6!�H�4�}s��qT�[SӍ��0��=��jurBI�Y�J��y߾�\�����j碪�l���e/ig3�7a4�Z-�ҟ�^�̝�?A�J�c����
D{�������x�D����B��~���U��c����0N�q.�z����D6û��{P@�~�tyYYOc�� }C�ޝ�L�+S'�;�qc/Tb�EXL�|��M���
���go2(�k�@�,��>G`U�\AZ����k��{�#+�V-�WF��ri�K���Y��|��E�Y��~g�Dw���ɼ�����:QTB��=,gp�x��_B()S��[����H�1>*?�Ò��5��֎J��l"�Z�ˈ�:�*>��{z�P�a�)�to�]0İ�àɎ3�__��k�3_����&'_���H�{�hO|Ss�nG�-A���A=_c5���h˛���9�U� ����Y�Ld��6l�L|���D�輫��.^�
��k2�v[b��|�ٝa6l�9�'^���)���\�4���of<�n�ͬ��%�Fn�9�C��7���T�$
Ͻ����!6ɑH`;��*�7��i&=�û�3����2���`�E��_bc?��Ҵ�s�N����_����K���	4����
���[Iеu�ȸӖ���&x8[i���h90Α�KC_��0*d�
���		oT ���;��]{��4�ͩ����+�:���Ѕ�x.�[��u�Wo$%K��`��#�5@��III������J�Nt�,�G����˾��_�|I����1�@/,*z�x��6�%8_B��_,�}���<�&pf�A@gn�*��衶�\�ļ�͏��z��"��Û�H�n�@�Wo<3!�hq���^ÛK�>}J��JXz(M����e�×�Lj  �@cF@�c<�*;�HW,�ˣ���8޹P�f�(�h�`�(,d�R&d6h�`ɴr��O����-m.
�Z�&T��V�
3Q����|�����.���pA��A']’
tw���SS����,Y���+u�{����>gε�FNF�S�L��߄�5��(�����0����^�H��f�E�\�_`x,.=}�6O*f���۩	��DO�$�,
4Aa��dAC�$���f�u��=�Q�Hᚡ��"��i��`�W�+f�h�
\�����Ԃ��G(W��I����.�����(KY99j�� �8��e!��Sj�ӱ+��(����*�����<���M'�5ش���C�!6/ر	��u�n�^�r彟3�*�$�����gW�$�}�v{���CA�1�u@�Z_�x�a:�O\cO�DV	���E�����=̠��6�y
I�Y0NΓir��c��0��ʦ�}����eF����G�W�S+\�i�~lwx����GЃۀ3�h{�k�T��m��y;;�?_��9�m�g���S�i
��<x�(���1������%��[�C���v����2x��{h�i_�(x���=�u���<���1�5��N&�����|��;w )��^�C}}�&���{{{U���@�@7e��~����v'��s�/^vJ\�P��[IL�$�n�H4v�yսԤ�k�����''	@�D۶�+JHU-p������iUee:
2T*x6�f(r��C,t>?�{�Q�2�0C��>����Z����%O\�2��0Є��m�rr�.
Ǝ>��i'P����m�S�·�r<{�#]6C=����er�#���n�I���m����R&ᡣ��������7(י0WgD}h����q�Yx�w����W��0
��� ײ��EӚ�!��ew`�~�@����eΕb[;�I���Y���
]���,!=֙#x��f�K��P���!��EaZa����鸦}���t��
���x2��t�
<wH4_���n�<�c�򑡡)<6s}e-W� �M�S2@-�kk@�Gԅg3ؘ��TVW�OY��Eu"޴-T��l�15���J .�<�ݏ�Ë�k]# ��A�M���|�(z��������:km'败\lF?��E�m�GR���U[�_����kq����&�gy�tbt��j�u�6[�(hEЕ�<-����:lk��$ʀ{{LR6�Tv�$tʄ�$-6A3S/��Z�._&�m�H
��L{�0̻˭�pij
��n4�HP/�<3�B���Y��@Ğ,���X<L-���n���v�I��h�����] tv`A�.j���3#ݧ����(��s!`���Ne�2uX��?�#nZ&&&~��� �u�]��R{�_FQ
�	�,��+.��-5��+�i�n�l5�4�L���L)�ډ?]�l�����Ҭ뎚u���Y��`CC0:����Mb�
I0i�c2l4�N��8�+
�<B�Zy�7G���Q3!��j�	i#��,!�*�a:��S2�ﳰ3biD��\������*ry�"VgOa�o����J����uƷXQ�����fC-e�#-���y�^��5f�\m/���cБ����qT���ʚ�
d.HJ��EVh�K�Aw�.��)w8���W�L������߼���o�XAc^lp���ܫP#�Nr8Zi�ǥ�]
��q?[�$o����puc��@���ڢ�?A�(-m�Xs\�ٷllv�-&	��w��W/.��lkq�� �薪3�S�>�z(���ꭸP{�.�5�f�F��]n޻,�!��2����ja�1�c��F�C�uZԽ4D�o"���
�c�&?,b�Np���N��2��]<��
�|�u1�:�,,,<A�Hd�@<
���k/�Pv�3Sf(�7�#8S��㭅S�*(��R�[{��K�i����J��h��}DH�AH����>�hT��Z�S�A�^x��3n2E�^�/g@�َ�����	TxӲ�wz72<\��/�(z���H�o�>w�-���8�h�h�jҴR;��&���-�T�R��B۽�6ߩ
ds�6��w/��ȉf����VV�T11�C>���E�ϧ4
��������h��mc/Ƅ�`}��z�@��s����m6�g��ێgҜ��ޯ=W&��o,�|����_}���f�s9�k4V����-��Yk��%b�����S����5�:��������켑�$s�]F��<�g*B�F�e5h�Jr��U�-׶�D6I�I�N=n��&p�6y��;<�>�n��e�C�9W`B�kk��*�oOq�/�����S�;�P��!8�;]%:��55�'u�V�P'��e{?���4�mZK���n@�������MI�p 
1<g}^�D,��'�5W,V)�+�ky�o>��Q,��AD��|��a:\��g"k�!t��-��z�+�U��P�khЅEG�n4���Fi			�:_+J�����P�_Ln��Ě{������H��D��m?Xl��箩��Zq�<�m�xD�\�1�\��bx�G��Q�774��a�`?�w�~G�[��eOAm\5<�%���+!7�#-(%�@x\
��Z,�S�џ?���co�G��ҟ�<���dc�Z�ŋm�C�9�͎�o���Ƣ����	�}�l��A�yo55�y]��6���q�
�@�e��ߋcx�b��Г'O��u��̇O�T����w�� Pa�;��|� ���A��"����	n5���H�>�����Z��D|��������[m�P������
��+�qs�Ĉ A���	��!���o~hh�O�k�w$�2,��d�7G���͚=���
���A�I0)T���`\j�)�r-f�ݷ���#��z���J�x8�qXX��NA~�yW�p����F�,��/0�`�o��ez�%��>������W�(���@�z-�OK(
���]��FB��9�4Q�������}���u�F�uٮ��]��m'j����mʳ��Z��>T�����e�w�������+jkk��=��kk���c�'��«b�lI�r��*�r��RR�l<<<�dsw�����	C%:�rUgc�ӽCÐ^�Ew>5��xtH%�@�eM�m~�w��Ћ�J���ld?�>-"t5�y��f��'�z���t{|���0��j� �"~�!�"�0m��vw�ϤM��i�m#m�&iK��evw�L�;���M����}>?|�<?QQA�S�CTT@�ꯨ��T>DDE^���s��+�l�5���3�q��{ι���Z�,Y�ǫ��t�%�\��w����߿���x٢^y�{ƿ���HN~R�P������Q�����g���]� VtƆM���<���o�o#�0���	H��޳��3`�z�^厛/E�|�Ə}T���[���d�
�i�GpO|�g�Ϯ�����.ټ��E�ţ�S�F[�/]�������H�+���������nܳ��E�:r$
���C�[?���%���,~��~`�V߉g�-���|��~}��v�O��Չ?�|����J&����Ȟ�
�O���/��#`w�����{?���o��+�?k���>qG����K�I����Ç��Y��W!v��Y�[=-�W�j������=r����`������;�����{�?����-���#�"�y����ɓO�s����Wt��=H���H����\�o}[��|N?;�����#ܵ���s�U����/���{�#m����x���W�����OF��^�����ϧo��w���R�/~��KHc?�U�؏��>���^�hs����/y�w~���=��|ⴥ෵�J��>�G���t9����u�qk8�Ž�n;PD�K�!�t�;7�Ni:;��V�v<v�/��%�5�?���s.�eC�_����3���ķ��������9��+�r�q�-��O??������g�e^s�]?��k�8���
)�b&s�+1h־���|����{˛o�v@}�{�z���+;�?�o���{��yYQ�����W��%�=5 �����#�]�}�M/�꧈�Ϲ7|񢷽�E�|-従/>��ڟ��8}�t�}����k�-�v!��ڿ�b��Ϝ{�>�!ߙ���=��7_�z1�������V��?}��M�7���Ԛ:?����#�g𦗾�C�~���9Dg���o>��W�qK:x�OW}���o�����#����㿱���ʕS��`d	#�
 ,��)���w���לp��}���C��>��t8��fѶP(�zv�S�,����n���z���qJ˛� ���<��b���B�3�~�Ig��r]��_}I��HW}��_Q{��o����v]��o�_u�]պ�����3���W&��5�����'��
��9�v�ũ��>�e�������/�
��w_����xd��K����O���g^SP�/<qߡǒ���40�f⦽�>����^���÷��&����Ïw�供]��>f٫�M�H�{i���-��kW>{��~�������/��`�o}���!��o���?iY�{<=[�>��G6��9�Rj���	7O��!|��_�/�m�F�ҷő<��?�y������.�I,�}�g�H7��܋O
����\s�mHD�����}p��_v�?�苯~R��ꩿ����ֿ�߄Ѷ%'_�	G_y�ɧ_��z��㯿��_����v�ڟ�5�N���}Hӻ���%�!�����UHӸ����Mw��uu�⫞x��O��4�o >z�\���o^�������~zǟ��w��<u�w"�x2��?M:y�I�g��n|���/���/�!��~�JOF��G�8��;�~��^���N�a�o������]��s��??p���}��s�r�u�@�ۏ�vg���x��O���7�z�]����ѐ&~���6���~]�����o�
I1���˞y�&���y˳�>|���>���hXOA���I/9iu[�썟�˧�˃���G~�m��}��k�y�/~��u�]/[��]~�}�_������/z��/���%/=��"Hh���w�O���7$����]����_���ўv�h{��7�/��?N���`;�������o��g}"r� ���z�D]<��@�7"���W��>t�Ch=x��;���m<i�O�~���/]x��:�;I�{���#_}�:w����߻sѶ���	��z�놮�yݗ~%����О�>��~�֡���φ�:q����Fj�o~��7���WԇO/���O���'��p��v8��s�{e�����h쫥w\�����ӟ^�j��[��Ͽ�����n9�ч>q����~{���姴��qY�n�����j�w����{Ϙ������+��(<ſ�C���;>�:*�>�]���������SI��O%����_�S���ɼ䕈'~t(��5?���S�������#�y�H4�
 �~�d�mo�ċ~}U�G.Y�놋�����4���,�{���nx�w�md�	���}���Ϩ�����+�y�G��|���z��C^y��~�T��N�y{�'~~�#W�i���[>�p�߼�c'��� R2c��{'?��;o;W�����?v��:�E}��;�n�����������Gw�{��\�Iן��ݞz�k�s�G�|��_���\�5�����5L?����g&�7^}㍥�~�w��W���ϛ>��O��͓�x���%'��w���;��N�����q⓻~�m��}�/o�|�ow�E�����ܷ�S��|��h���s���˓��?O����?���_��>�S��$N{�5>�s�(��5�uw\4�ɾ�9�'��e�
#�9rd���Kn�ʲ'��#/���So|ݍ�,����{�W����'w}��?�|n�k��ڗ�	}�{~q��'������W��O?;�ҍ۟ٿ���[޲?x���<��d>��u���'�����y����=�}O~�����pu�M�����hы��8�#����-�1׽��l�������cϤ�������?~�Cg�<Q|�;��R$�]9�}��w�`�CO�"���#w/��C�&n��a5�~�#��/zI����{�΋�M���,��/?��{��[�m�=����{~���O�?�m}/����'~����O\v�o�����=tLJ/��H��W_�����J�P��lX��3�o_���MO��'^=����;��>���d{�7o��{n�Ƕ?pYw����<��[vB�އ���~��[?rO�%���/��o=�w�;\�~�ޏ~n�/��}����}�����s�~�=�J��/{�ny�w�9���N�@���}R�5�����~�������S�%����^s�{���W^��ӿ��o;_�y�����^��;�����>��{o�7���?�\v�qk>�5��߻y�Wnj=������O��ջC�Q�{���>��'~�c��i�_]ɞ�Ǐ��W�D���/���W��Mo����W Z����Ʌ�K��_�w\qt�n>�����~���ؙg~��
��
����i�IC��@�p���o^�|�e'�礟��΋}����3���UhFOݼ��_��ny���=~r��s����>�l=�Է������x�m�-��o�w�?M����gi���Ő�e�%3M���_|�+&���{�E��VM��H#�$'�&''Â8�d�"���>��4H
ԓ����u�����Kl��7��_�ĕiN̥E)��h���_��Җ�+�������K����\𰵘�q��d�W;w����@�.JU�?��E�����X{�=�_"����_+�|��Պ�:\�!s��G �p�-�"�v~��&�LF�c���k�.������g�ԍh���Jb���v)�#��b�'����zP�q]��:&�ؖ�bImip�\IC��ٜV�q^D���~���ne�ra��uj�����w�sv����6o��qy$���h���C���0�k�$���f�N��n�+���z�ti
���7��A�ZZ�H�=#���o,�6��
�i(6wؔ��?�%0�ft�Q��^3�2.	���oFߛ���ͫ�ϦL�n��7gz����ゐ�������M�N������ʦM|%(�o��1o��	o���m���`����1opј7�h�\4�
.�
�S�	(�A��\���zck���ꁍ5�	�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�	���I�7��6oh'm��Nڼ���yC;i�v��
���I�7��6oh'm��Nڼ���yC;i�v��	���I�'��6Oh'm��N�<���yB;i�v��	�$�	�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�
�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�	�$�L�dW�?4!�+��������۶t�=���?/@���<�9�3��
`I�me3�d[3���N�����7��I� '熇�8%��#��[�bd;a�y�/M�����A��?������Gҙ����yڴiS�ǖ�������_/��h�S��?���f�M%m%-��|���6�h)�Y(�ֿA���[�e�[S[�t��`?������Pt��QoA���%QP�B�d��&=_�,cނҁ�f��
y>
��Zx�P�B�6O�Ӳ�53�#zo��I�/�kƟ��ua%,��������)'�Yo}�5W���o���?'����??�_I�U�����h�����rٱz^6��(/J>��b��R�����h���g��ʕ�L��#��#eB�d$®2u�+YY(Ү��T(�y�g
\��Fu�g�JNdH�I���E)=���5�o���E���c���Oռ���?)�ci�t�"�K�/I�����%�ta�{3��3q;!f/K���b1O��V)��jHQe�+,p��l��X'�*������У����,�er�1)�&p�"/g�f+T����ok[����i,� c�$j+�r�'�@
�����<Ѷ��7i�����z7g�Ɣ�m+���|��!'eK �] ZX
5��$U"BA%���$j�v�����5~�G��L��1����������WZ��h[��:�������?����~�����?�D[<��������c���+'�^UqT�۝+���;�J��
�2�JŽ�^^���r��'s�[�MY��mok_8�?J�?%�o.,�c`��H�Ǔܼ���-j��O.�]����R�p����cva�� ��Z~��Hb
����U��~�ur���&yY	�+V>���Ȝ���r(%f��:�� ���r��m�#�_�sM���1��O&c�^]�CJ)S���T����|g�f	Vႂ0�?��h��O��,���=��MkVK��+�-,�y^�
_�R^����Hٷ�����E�V�|�^X��Z�0cM�mq�_8�;��S3!8jQ�P����$m�F�8�������־�2��i�m��h,���7y�SR�*.%�/��ʟ��J���J��E^*����R7 �c�<����Kż��.�`6&<N��Z��}������{��?ڽ�{{7����{Ck�h����7nܾ�ێ}���v���L��mHL���fc���Ɓ���ls0vl
0�`���Fk�|f\h�X��'��/_���$�_&bۖ�땕��7�Q��wv��V���cR�p��Zޅs�e	��P&/��F���X��l�/pB~��Pa-Fe�;��b���%�B\���wY�sg�����x��R�x��_{Ǭ9��ˎ���hF�r��?u�Ă��92��$�<�.>���s�KşNo�ْJ�ӭ�p+P	�D�Ƕ�,Q�RęNW����P1�TR�n�v�
��d�0)qb����IN�[&Ǐ0���.��~��)ìE�Pg����\-���y?/N�R���&��03�M1��܌:ƩL�WFPP^A|�FPkC����ލ}�0��ɰ�Y��4�aqI��y�$��P,	2������b�@���0��<K�^ey4l�w |0�4�$O�N����R���k���LR���!u`��%R�vlB��_'C~��vvo�ʠB�v�}v� �aV�\��<
�+�L���H���u��^lK_��4�
�b�o[ABK����E6R��1?��0���
�O���/������62a
�@fa3Mn1~K
o#V�$2���~�(�"?�r�~TP�����C���2�Z���)�3sw�KF#�_M�+H�R�g��l#���6�iǫ���~���2�>�'�]+ӵ�p���l�+�c���z�v�"���?M��|��
�b�X߀,dV��㾖��Ȕ!L�����ѱarՐJ�/`V�ۅv�)e�$�s>�<W����H̥����6AƂ=��s�L�c1��}�JCC��|f���t�a|�i��l�f�!	|���}���T�ox	D������Ȣ��t~�'��Dd���NJr�0�[')��:�-�7ƨB](��R��"��J�:H[ќ��� ��h]r��:f~'�A�,��%@�=�ӷypp[�{����=݃=}��d�}�r��Ň��;�DG]v�����yW�c<�@
��4`
Τ�Gy��k�Z�6L�%/����|�Gy?������ȯ���|.���\8�p,Y�d[)�SK�V��D$�ڔ f�Z9�v�
ݠ6��������iSL�L+�0&�N�b��"�9L�b���4�jm:#�L#�Eu�mܧ��J��H'?� �'2��de>�py�� "�}C��O�G�4rsX�X[��AR+p!P����ځ��9��'�j|Q��l�7��\хa
�$U�P�d�ä�Ji[Ib��ê�MD"�:.�PV��Jad���0����C�I=e�a�㸓J��VZ�UWq�Ls��V[���r�c
\L�|�F����R3�=GF4��¾�b$���E
�r)�Z�Q}�ul�A�,콨%mc��t�il�&5A�K��k�PY��E���m���y��	
�r��*�]#�tC�I�����ZN�;T!� ASV�4�����H��N���nb�C,��7N�X|���Ű�V��`�e:��C�(�Qw��AՇ5��T���	�c�"L0��C
�����&�k�<����B�M%��!fLi5��<�1"�@�O&EQ��*�t�Wפw� �b�M��i�Y��#G��ѱ4G��7
��n�0\�zA}��
�QN%㏓A"�O�ˑĎ�-[�"F�!���|��B�?�Ŝ
O�N"9�OKHvr�	���M}QQ�l��'p�Ϊ�� V��+�_�+]�����[ ���b����GD&��BIL�0&B�td���̋H�:_k�O)�b�G�I� (� �����VAFk�!��8?�Ō��P,طh� jZxh\�Z7H�-�-�ٵ�!y�vװ��րh����` �� +7���ֈ;�(K�"1lX����A$Qw�!��K���D��
��I8�C�r?y��F{C��.��k��;]�z����y8m�I���F��Nr��*<�fH��|��
5�S���n�t_��c����b�թۍ���{�_�*`�9�Ӧ���~XJ�Y�Χ5�,o��$fIm���?��ڍ,�2�~+���tA�^�KEo�!�ZS����
��fvY;fʫL�/��r:#KUj0�Aoӆ5�݌fZOǀ�\:��Le�b.�M�� �2#���I�~C�oSj�K��c�D1ֱQa�ݭb&LP5a0�&�α������3~*=��d�73I�]*�r���eƺ�0bZ'ej�WG�h��n9Lʒ8:O#�9�jq&ω���9b��mX>W2x��8���f�QA� �Bհ*�t^(`�+i�i~v�
��D�[�D]QQ��{�չ���w߽��NP��fZm��J2_:�J{j,��#�+�ٝ������Ll�T>!���T�����b�e�5J�]P/������W��SqPH�h��@w��j������>�0*{l�u`lϦ�bf_q"�ig�gso>ۨ�����a�O�f��LV5�k�!u������.
�4^~ u�xp����ub·_a��8JL\��Ɏ�1�����%<�'�bF�l�v�C�έ�8�c�`X��#�|��ޯ�ak�,�ؚf��R�vE��T�,�k��q�c�d��c��ࠂ�J�	�ggǰL�� ��cc)��2��L4���A�Ϳ���"p�S��w���E����4`r�!� �I��8�~֡�A}�yte��e��_�}�I�$�@�:��R�)bm����.�y̳�|����6J�q?���_֛�-��l\���\�j�R���#��%��8D���8�������*���қ4����-��)�2���)�9.��臆�9�~�@g�ͧY2'(吊�ǂb�#��������$(�n�mkԄ�:���@D$'/����@��ۺ>L)���N��I�#�;�?�`|2l�t&k�eK�fE���ˡ�✨C4�E�K"�Sp
o�VH��:P$��� �1n�G@���r���P�䠂�$�B��An��l͛"�V���S��x�_���R�H��d�AtR��̨10��0��R*�1��m���Kj�e������x��chI"��h��":4�H��P>��/�d��4�\��� NH�*����'��.��,�`#�-� YGu�m���C� �� n-���VVZ��+W�d3�Uf�!okYd4.p��x���3�v��2�_��J��=-h���KB>�ˍ���Q$��;⿶/��χ�Oh�v��3�:'�=Z��-�W�i�_z%u"�(�[��k�WT
}:}�=��.iG�����a@�A�q��b�ov�]Z���\��k�0ֶҰ��3j2L�[F�=���EIF�
��"�O���k�(�MI%�0]�@�,���(�Z��|����4�*W)|�$���a]�4<�I�J)�3�iH�ФK�����*�c��%�,xx4�������h���9�WD���JE���X(�oN!���2��|����!0��SG[�c�˗L�#L�d�ם��s�'l���el�)ˎ!����L�
琾Q�4�� ��l��T�@����Q'�V������'`u���n�����B�_�	���Ȋ���k(`�@x�%*���p ��0����l�r�Ät�i��{h7�u�o�a��5����w�^�4p9�E�
���4pXKP�}�Apm��h����P�U�XX��^�Y�H�x���k���"E	��J5�6[����)�9���"A[B�
�'̶�I��=0͔[:��]
� Y��$n�o6�j�d���qx�FyD%�~C��p�v��0Z(�~�t��&�'S��IO2�L�q��p��k�j&KM�r�e%˥_j*c
�ȋ�>[�P�J�],��/�r���&q{�n�7�����]SX�	�2�-�1��=��SƯ~���w�Y�73I5�
:���
�_��8>zP�X��@G`W��y[ۡ/+0� +�u9�މt�;�w:"+�Q�U9.��lQ�0H
G,	E��i�K
G��� kK�݇�s�{p� ��LvAƨ�O.��Ra �9ZthUҋ���	��c\l�b���O�_*�|����)��f�t�>����e� M��ө�
�[�=�S�k�IȤ�M�<N�d��a���P^ym��s�-y�+�=m�<��`JT���܆`lƅc�)l
�W�P�*�j��f�jƝ^�3���hdݪu�k ��pQ*���m��E��fN<0������-��,�����]G�y0,�LIvx��@I�8l���dn����A�u�7���4�൴p؀�,�d����H"����-���?J��;�e��	j'|�D[O�2N�h�e�<�T8�1���ggR4z�D�[�F'��=\�M���D̈*f�]b[�2��akE�\�
,�U"���[��نIwr�Q��T7����0@S1!��bwL���曈$�!)I��P��A�k�4Xb���p%C��1�쨀��X�{z����քzꪒ��r��H�I�@�����,�_j��VR���X��)�1���i_��p-Keq`3&������p�Y���u�2"(D+Ak�3�Е�seo]�a���Z ku*�%x2���5v^����͘�!N�343TT���IЀ�����oVT�3MS�PFg	e�K�g,:_�ҡKMma�j�c�ϼY�UI�����]5��4��\8~�&�^�"1!�!j��ȗ4eY�,�2��;����e�T�ٿ�?����HD����Gnh�Cf�Y�����a˱J�Z�(DFNa�&BhS�pHB��֔C���E^�q�֎I��/kG���c-��ӕ�H[~G��&�$���1U-��c�:�9sIWX)e!�W���VKb�ӳk^̜
a!�+3"Ȉ硇K�����qjyK���w�?;���_�KS`e��X�{K�:\b�l͵c��3b��|k;��p,�\V%Va_��F�� ����n��^X����E������	5�
LhDGg�Y���2mа���g�@�DؔI��e����#�ضGD7��޼��Z��؁T��Tz�o���k	m�u�j���(P����^���_�F�Qֽ�m�}�}��]���^S���Q��{k�Q֎���6Ұ?�kt��HWPI����5��V[��1�ÚO�{nh~D��VA.�i|.�R�m�w���H�B#�e��;R�魩��}�	�اe}϶A�i�}��dJ�װ�6�4�4��Q���֪�Q��d�u)m�~]�K��ѣaZQ�_�Arm�t
����PpH�MLL6�8�j��	A�����艘o��We0h͝�����s҃��T��T��J"V
[މp�Ez�@��ύA��a�d(d:��b?�>u��1Y|�0����3�m(ܳ�wj�9�;��UJ.vQ��K"wc�%9�&����YFP�X�a3lc%5'M>Z�U�7�b���B��i�X���o^�\�L�[R��ﻛ�	�Q�.���u���.�K���S7�	b�պ�ԞB1ϓstw(vK%������P�I��b�S���'�#)́|f�A�p
ڤ����q>��d��}!��|���yޗ��өy`\�>8���mA?	�E���i�B�����INT�g�x�=-/����,sSA&vy��>��/���
���džA��΢��
;��my.�5�yMwo�H��~S<D��I��º��Wc+�aS����X�ڙ�^5��#1s�z>��B���y}�4�u�8�S�癩��)���N�,�p趁�	
?(s�2�ˡ������q�G_	e����1�W�+�×(|0���-�[f�r��*�^*�r~�ASs�OB-؅NH�W�R�����q���Q$ݱ|�yD�xn:�f�0i������mI���>Q3�)���X�+��qq�a���V���$n��ų|`c
��q���y�C�(#ː���R��z��V �0�Y>���g��v��f)o�#��4�̬�d�hx%kCQ@�G��)ķ3����""E^�I��+���[�AǤv��Ec�J,�ŸII�=�QP[eH��bZ���d�V�"�b:c�����t�:G�,4j��4gw\��Z�|l]֡�����91_��"B��>�|��F�u�>|�s%]`�rx��&�VI�d%���K���dI�H�E29�鑲jƿAS1��R�j#�>��te�D�B=�ag_��t	U���k'�4���<5��9CXp�Suj�9m-���L��P���X$d�İ9�@���U3��B��jX|��Ĵ�=م�
�ob��8]��6�1��IOe��G*�*,A������&����?㉅���h�#��P��0�v��d=K�}�O��+��#Od�NxV�b��0T)�/f�de���cj!��U�$^��+VO�i3C���i�-�ԴdA�{�v�>��Ҝt�6b��d�G�
f4|N�}�\c���r�
�T���L!�fh'6O-	�K|�����V��#D�M��n������י�Ul��,��r}<P�����!�(ѳ0�O3�!L�K���H�q��c�BF��d���'��B�h��
4v���ٍ���*�Y�Q a�
z��]��%-ږ�\�fhfc~Ј�KS��$@?4
x~��Y!���z� z�
Ga[��.di
`./pJZKv�!�siQ�D��$�iELR��W�HQ8�@�%�U�NI��k�YDZ
�F��?N��T��_Q���(��ek
1�C��s�/�fX����2}���C�i�#������
�2��\"�l�N^�L&DVּQ`$AFÜ&��J29�d���Y��"�+z
��
�F����vi�ui�u��;�n�X:�,=H�Jz+�u�&ٳ�\�[$�l6�.�0H#���d���X��DB~ˎaMj��=���1'�<�|�T��ѫ�]����3�#�Ů�I��`��&^5����]�K~�V̇��M?�?6͎@�7J"$2$&le�	m��BdyL7�qtf�+��b�a���1���dH�m�U��׹F�[���	� �D �]h���9q���־
={R�=��S�$��g�5�	Ba=Y��\l����sp�lI��z[4�Ya߯�+��m��h�ۤ�pЕ7��W��V|Kв$f��ʍ��x�7X���M��v��L]"��9D#6^�Q���2�.%���k��˜e*Lg��.5�U��D<�iF�CZ-�xH3_	ia�%=��ا�CSٌ�ɍ�@VQCH�o�a�Ȫa�l��.7���ba�0
��������
�6b
���Cb�+py0�9�	�q�˥]�����--����"L#
�K�K�K,��e�p]٢���sq����8�d�=���{&�!
����)y>�uK�@:W����B�;��710A�D����e9u��j�ss���-��q�y^Ůpn��y�*!�-�������Ìψ�:��v�
���a�5�+��,�&������۶�1/�
c���s6ۀM�W7m�-��A*W�9���i���/�$2�p+H� �����Pi�'�꬝�uA�QǺ]�pAqQ�C��,�ٽ��~Ѹ��Yˉ�	N�L��Π	>�q�t�fA-�4N`�=��)p9`%�gW{׬pY�D�W.8N29Ɖ��{$}.82S���P�ӟ����;E5���'0��Ϫ`#�Űj��(;�.#)�k�&�z�6f��xk�k�5��8�:���|
$��0`�n��	2$��-�\��AR;\�f�΀��R7�e�U��H����D�=V�Q2{���7O
������1�G��S���I��(�qvi�׈�C��♠z�{�8�a�G�y��W��,N�KR�^T9-_�=&�ƫ�M�2��W�4�mC�U�Z=5,Z�"�zW�ӰaH�N���p�i5Á��x�n�kqTb�<�5'���I����!�TR�2�i����GW$�fJ�7aDe (B��`'�r��G��Z��N�\�|Lk��n�.��l���[8Fub����9m���=��_��S�������A��U�j�o�ÿ�%�w�z��y���`����1?e��l�E��t���{�^�p]�T�C뫬�j�̎��L�;7CԲS9�އ>�B{V�J���!2�|�BB�VkR�0j�čHR+\oi:1h���U8��9ˡ�Y@;���0��8ܾ�T�`S�K�e>�#@ƃ��0���wv"��I�W^���Db��X3�l��0��^E�Ț��X�{:5�pn$`(p�%c�G� ϩ���W}��%"ɘ��/k[�����~A2m��%TSP�`���d4ҩ]dП��	bm�����dZ��v�4� C����df����.D5�����M�R���*;��@�ܽ� В��4�Ҕi��;=$�Q�e�™�I�B:]�W\82�M��
��1�p=�#J����)~k4.��(�{��Զ�t�w}߆��M����L��h�Fh�MC��!Ѫ���K�N�Y����R��b0W)�6pכ�erpL�v�^TƆ)T�?�nk��4��aC՛�f������1�&d��IQ.*�qZ�?t�2�\G�ѐ6I���d�Ӱ�cB���֨�hXex݊)�C���x�������L�Z���Uk^�ʷ<D�y��1�.�k$d�0o�ut>`LS�q3W*��r��6��/�YOE���J�j��'J������9G�/B�b2�h���Ag6�cj����3�e,v�c��4J2�P�����gL��hS/�,r@�d� ��dN:~4巭� cYBUX{�9wN���E��tz�`+� �t�7#���@9J�SJG�w�T�<}K=�E�v�䬞+��<}1�﬑���m��d��Ń���n�����ӡ��m#�6����y�����g'{m�6mcԁU�m���
���aK���AJ"����aS�իxDbܛv2t��wҔ�CN tΫ[kQ�� Q����<�{a�<��}Nz׺�����Z�~��`N��� 
ʘ̨��$�}SSKz�у:x�P�~L_�� �T�:z0z����FN�i��ޭ3���e�[��k�������i����vX�Ez���;��4���3*?�k +s�!�j�� bJ�C�:�EV��`�>�BH�*u�M��{b�C��4�Ùv2�4���0=6�v�nC��H=���SJ�s��NN&�l���P����-�����H��d	���Q��� 
/�a�Aت��+a��̖֒}��߲�K��;c�-��¤q��D7΍�5�B�U�ۀ�^�rL�-
��F�@o>�a3파��V�Q.f�6�u0��PQZ>?��+)��
��˓�D��e�	>W�:��S�S��
l6.��if�܂7��h��x;�vLz�^]�*VlL�|�Ṝ�0af�3��QLj]��b�Ȁ���k�n?��S�T�e���A��$5��ۊ'�h
���dw��`��Ұڀ�Lmhxk��HHr9�D�0h�0�ux�����|�:��������Ͼn������)O*�Z+���1B5n/��~l��ӳ���P-��h�b*CSb�+��o�(T�D�z&%B��>˅�i3<����t�i�LʉH[�>�A#���n_�6�ٻ{{:˙�{m`�M!
�+�� ce�� c�Y�)`	�(l-wY-����L���n蛬�-eͭV��֛�$�	�
lޗv�](�ޒQ�����]�t��9Q
�ؙ2.�G�
�.d)���}'xGl�9�u��D7vZi�]v��k>�r��+��^�l�Dsy�m�]PA�tw<�%@�=o8����&+U�������08l R�;(}�s5|mP���<Ӳ��O�N�������~k�
P"��s��UpF)+��YRB��/#
��
��\�����᤹���4�Qq��ɒ�tt,�}�T7Aԅ.
U�Їpց���:<�Ƣ���$�fG#Dh1y��bS#�\�W��,ίܬ����n]M����l��5!p���K&l�Cz�����ukǤ�hX��� ��p�p8�_�Ҡ�+MWS+�vPۜ,D�8��?�H���\-�G<�n��mK,����?:
����	›7����DLv�����"'��EN���G�+�tzcϖT:h.>$�{�Kk5����0i�=H${��
��5ֻծI/�Ir0���sK;�
?��M�֛7���hERjNȚ.
T��o�sk���,����Ҹ�!ҿ��Y
�����
mL#h~������4�u�Lg���R��$�淣��� �j���ŗ��/m[���,fL#�)��ͥ퉥mɥ�q�e栕�1a�D�I	�2����7�*��
��俌��!a�QX��п�zt`$IP7�,'�TDj�k0�c�k F2�R&��n5wB��c�b��)^�4�ڒA=�V/r�VH�.��3R���e�4�ѩ��7��M.��L������5��=�s(�]��d�n�
�����e���sR�ZI�L��xGơ6l7����LG��|��n�ܸ�Y�<U���9[PN"��*7'�?���ɸ=�g"�[���/�
���b�R�ܨq�����?�k����G�;I�	�U>�݈^  ���x']�D+�Pl�2���e�X*�J�˥{���z���P��y��)�z���_(fw��eے�
>֞[��}elE|E<�ikKdr+2�#.��˲3FD�*"��"�'�H���!n�p&L��ĕB2�v����q�jh>ά�����F��� ز���X�䅬o�8���K[Aλ�����R�F���c��-�
b5�1n
Yn�h�۩���������A'����,e�E���"(��RW��o:t�����ZLNm���H�xG��Y.�e���셾\�m޵Q�04n�2ݘ;]�s՘B���y�<X��_�"��>湛�ZQ�Y�Z@���-m���t��A6I�ATLԸ�c�E|� �y��a�M��3,�m�{r�[Rn&H�S0�J�0*@�W 3�И�\�UB�̀T�׎i�cS��
�@���6��a�A</;*́	�Z��h��)�\��Ԕ����n�q����]/����6��Ɨ[)9�A�I������M=d�#��mQ��z�J�"/+�,�"Gp�����?||-���ɬ�E�P
���&D����>h�>�9�,��%]a��Y<��+sb�V�!���|�l�/���8���,)
pU`D�ǩ�N�w琯�{��i��o��ż4i|�";���ҳ��f~W,�
˄`͉��y�X�T(rY߉�:�df9�CR�����@3Ú�0���&Ԅ60��a�Ě<��͜�^��9��F�M�A?��YStY�����w/ �R������i^�
E$��"a�D�*���\���jk@�ު5j�*؁T��Tz�o���;l>o�zj�U�a�P����^֮���h8ʺ����o�o}ߖ�������'Y��۽5�ՉY��E�Y��]�/���fA�
E��a��R^ R4�c��U,[<I��ԠA�䒘��,�ڼ���iQ�$�]3
�S�w��[S���68fV�ko����=�]'��Q�~�J�����~��Q�^�ڿ;=0��ӻ�jad�D")�R�
cp�k�t�3z�#�R�k#�m}��!�Swn"��`�Xܣ��	Aِv�g���a�U��7�Q�b�|NrD�!�l��Q%����X�D/�I�g����a h�:J
\�G�'C� ��=�9�H�2�����u�@3�߳�{�m�Y�)B�Ɋ;#܆�=�z�������!!�r`vQ0ʓO�u.��$��
�`�<�O�qp�0lp��B�`c9��y&�bi��f�T?<
X��5�I�J���]��P�S��� ����e9\,�
���"\
+#�8O�_�p,h�ޙ����&���ni�aVa���f�F�n�Q�a�10��9z_p�8z�?��7��D2u�,���40s�o�8�M}725��6x�X�F>��Vm���W
I ���\�L��o�n�
v^�ӀM��z�b-0�7_�v�$���@
�͍'Z�{J�%�x���+�gU_�D��i���������n.��k|\W]�{19��)G��vt1!&jN'_���/�ٺ��]:�q�/�ډ'��U����ٱբy��C����y��E!!�[a�J��K��~�@}.����8Ǩa-�Hqۚ
�9)�
*	R�������[���4#hjC,A�i���pI1A�:�ׁU7�z�r���F'Ӫ�S�6����<�9��yY�r�`1��	�u�m�<�]3��&
�t���ab5sp��,l3�@C�#
L)*_X����١�n �_&��b꒬�ċs8v|�~yZ� o��A��r����JfA��cd`�	X��}`m�qG���d� @�D�cA�B/�����wS���<:P:c�P<Ζ!
zЅqx�"2�"m�n��j7�E
ӣQ�0�(�ag0�ѕ�aGv�
-1 �0�[�]�H
�KUA!Iči��Gc�D(�־b� m���4��1�fK�*�b3^���h8�6
���j��|��+��Q�!J+�%ԇ�sH�e>W���1\�y�Z�1W����e���}.�6�9'���&o�F�J�1�%.�a���b4�mJ!*�ӎ ���m����2c�\�cK��		S,��ݳ�B[K���ݮ��cRΚ��BpX�.�nE�ڭi)
[5����PL‚��ET��[���
�k*!�Џ�����v@��d<�Z�as�F��"����Æ*<NƸܾ�`����걵(��'��0q$�n��UH�JY���ׅ*�9́DL;f�E-��K�u���t��1��38n$7�]R�r��Vf>T�ܙ�	�rZ()�ȍAk����
X�ZT>an30R�w�Ƭ�Iua`ʈ��pT��&�Ĵu�Ǟ�)�:p6�7�lw���-�����_Kɶa��"e����gZ-T��2n�d�*�'�W��U���1Qڵ�-Z��4��\0l���S��$����x�v��A)"��h"3����:Wn�:VhL��a�tW��Q��W�n+)U�;��=���������MkDQ'�/ʃ���ݦuct�׻��@��H*���9�\�$��c�K��oKPkf�jw�{�Y����%]%5���dHR��}#q���|�r�Z*�6p��E'�d��cV�D��ڪ�/ ���ƕ�/��׽{酋�2��)�<w�e��P�bv�jV�+sQڠ�"���o�A�i�M�ʫ
��v�D�xi
�����;�Kt�Y �/��T)�i&-׬��u���S��g��끵H�)T�,��HK�)�/S�)�ϏT��Qa+._�udzBj4�h��K��X2�p����_��?D3���V��������X��v2Z�'���{�[�y���yj��mO�%�X��L4wS�ϼ)�'viǗD[�!״4���9`�`ꪡFLQ��WOi��Dk(�e:v͉M��)�>w��
�-��TP�H����)��i��X��&T��t��5lX�&�b����i���9�P==���XUf40�����xF-��pl^,�9kC�†+ll2_�&xB�#2��Y�j�M���+`f.�RV��.hc\��&$�AQΆ��kG���Q˽�N�������?�O��?��Xta�o��mX��a��Bqv��B�N�m9n���S�l�зdk�S:�߬e���w0m�B�K�E��]Ur!�3#��4�ꕤ��6b=ؒ�fb�#��~���xE�F��8����W��8HIk�,��� K"\���d#�&f3�����p<qB�EU4�Vp'##��j��	�AQ@)�,&�8?�X��s,���=,0���	4�N�����T�`zp���� �c�@�FɗP�
��50[з�z7
n&�'bs4�nF`o���`9��(�!��/�3�#4n$F!F��8��enj�@�n�b8G��/7T��$��Ҥ8s`ԃ�Q$�F"Q��]��1k�gUTI�o��p';c����(��8i�
nA�f.	<��3��^N+�AB ��_�'�D�=H��1��qL^��{^
�&B�G8k�ң�l��^s��m|e�FpJ�U��7L�%G���nZ-N��&0iמ�Z�4�ޘ�63�<4Sc��N��^=#�r3 lܱ��ۺ�Dk�*j�W���&sS�ޓ@]U�]�i � ��8`t�d��`��D��IT*'c�8�o14Q����]x���^m5�6R^�D� ��y0,�|�JA��2
e�;n�����	|�mfw�����<L��K�`%�/�A,H9�K�p�VơE�C��7j��'y�������=�C@@Y��i�f�6r��
8
����5��a�M�v�@�{`}Okڻs�F=�W��p '{hź�A�S�2Q
C���J���3�e�5Ќuaj*����kH5Z��l�%AdYvF�٫�k:���ټ�g�H歳T�L�<:�rN\�d±���&8�y��B%j=DB�y9��,q[��h���ځ4�H*!Fp�ع�<��lB��U�X���$� �o=�������"	��0��܀���3်�z�:Vo�%֠���z+ܪ�q�(.�^��+h
��F��0%l��J��$2���m�J"R-ƯJ�d��$�υ���
�Deha#���0�)��䘀4�"��Pߚ}!w�����~�P�,�֔0�l �aY�$�m
�Ñ4�0@����3��ZFC�~��'����7l��7� ��@��c���5]k���f�,f�1��1ߝLt�
}9�Cs9�L�ie��s	�\�?�Ÿ>�������w�q����s�g��?���˷��g�Z��-�6w�)�
!c�ٹ~sw�Y��jS����������	����G�d���:�cr�Y�,ݵ��� ���]�t1k�!f�^f��if��k��5\Q�/W�ά���Ҷ�j?J��sץ]���UJmptv0�m���V�
Z�ʮ�X���LT4�n�������l��\4p&���J�a��r8l�v�Q�l'*�r�ltx[��
��=�>��ҡ���^�!g(d�|>�p����N7��Mh'G�{#���i�Hb�F�$�Gb�$%D���&��M،`%<��B2�^Q���ǘ��l���A���qwu�h�’t�(8,h���'�����~�MMc� czI/4G�
��T��U��&���؊��5�`q-�>ye�&~q��]\�[\���<+�2��QHo�$�#���&�]b���lǓ���1�@ǨHEV5+!KgW�Pi�nM
��K���mDH�b'C/͆װM�E|7�[ύ(͜?Z�	��xZ��R
�Kݑ��(�6��`!Îו�c�8_u�[=���
Ƃ��dY�1hSp�7n&��.���7��Y��Ƌ9�L�W�S�a����ٽ�^�m�m��sá�J��QA~�<B=O�ɣ%�#)��y;�	�S�T�8��	ò�S�$�f�f��?�X&A�-�~�B�!�6á豌^��Q�,nF��1�8�SC<����V��IA�#�JaH�ŀI^�s��t� QhV��J��I@��G���|<Z�N#�����S/�EE����|0:��Dž@h������m)4�߬�Eo��F��a*UZ<Wl��hU,l�J�1;�1w�	�[��K�9!N��V3N�-�є���u��Xn���n�-|��D-�:��R�$�ˢ�Ī�� x�
P4�]-2����O�yB�n g��[y�D�k��H�	��)�S!��Ckslo����,��?;��n<$�ZfQ���\ cSf�\Zg��&䕏�R!��Q���H��L����hA�Z-5K�4���RZQe�B�?�II��X��0�!��-��q�
�8�zI#UK�a�vL�m���9d�_�O`��sh~�w3�Q����fn�]��l��>��f~�{cϔi^��Ś�@��d�X�#JY:�p��3T{U%�$� ,/�Q=}�
�.>`�t6��s�I҇ţ��=���nsq<G��e4�X�2����z�^��$x��?���6{��x4������X��+H�R�㊛�|�\"�c��^�qO��4����NJn�
�ٵ���f�Ow�Z��p�Q�M<��WD4�S�ma���7�G�.-�0�d)���4��q��Ė�Ԋ0���5O�)��9�� f��f�A��l�]#y��!�!-d-P�vfj��g��m͓Y����deN�s&�SЙ�G�
&��� ��4!�RH�@���|/�䢤�eMcn`�Ѻ��Ā�$��C��h$K:�G��y�]6�<��]7�s��@k�SU9-�eJ̎ɒ(��[U���^�k�e C*
pc��M%\�@|���&+��V2-�e���5ty';nv��i��@�� ���C1M��R&�A��c���e���,g��kx���[κ���á�}H�80���ຖ�y�O�1�&��"�s�u��1��Q�iV�ɸ4�	���ОсO_����Ƞ�U�Zs)m^WY"i.M������1�)H���|_�?�f�\q{`�4i�F
�-CE^N�E�qz�z�p:�ca��vAj��"lܑ�8��а��y����0S-��lF��{�1�4G�i�m�o���`�e;�ی�-v���o��a�h��U۪��شV�,���F&ź�f=5�p+�ްq̋��J������ۇ�>)p�h�`88=ڒP(�y�[P��tv47���26����۝?�@����%�f>s
��YXEV�}�ͼ�.�,��Q�Ĭ�UY�ǂ��>+�k�o��ͩ����O�� ��a�K��0�ϼ�?�M�i8�͜��f)���m&U�e/�ɪG�S�X���ZV`Ms@yD�x4ou��TU�&�˴��ǎF=��-�
����n��J�j�!vL�#=��fO�Y�1��`XV�w����H��1&�&a��Dm$l�e4c5�[������.A�t+
�R�!ڽM�ʁY,B��UTrnG8}�t�td�l���5���l�!�ppk��嘑<7
�d��>��Do:��'�����d��
=Hڱm���"��{q@5Y ��
8��Dk�p�]��rv@y�|bY�5cI�f��™�Zɴ˩��N�E�ƙ��A�Qff4� �\X���E���h�}��7��*��TjLFh`na��if��Ac�2ځ&���s|�4�g�#�%i�����q��m�4*s'���Or��g{%�5 ����ԔY�,|ff�f�3��{�be7H��3���Eܒr�7��!�bw_�W����D�y��Ig�
�M��x$�k�F�̷=,~��>&b:*[������K�Z��X89*��WǤ�4��X�����D[����������J��N�c$��N-\y���E�;��SP�<��u��r��c��@mȌ�H�[]��륓$�@:xy��A��V�'i�]m�
lB/���RN����8��6
"�S��ƌ��-XP jrc�
:�G4�z��<g3�m;f=�sB�:D�(����l��t���;'�����ۙ����@��l�\��5U����\l��آz<��7T`������zg�s�F"�9.4��'�ŘH�;�]嶍�(�#1��"�<gTL�l�L	[��ʃ'ʻUn�Dj�,��PZ�Y=�����uZ��իS}�nn]$~`�ܢ�r�	JQR^����p\�Nv�4ʳ�-�}��Ck3B��[8S��#i�!�D�%1��S����e�$:����J��)��!�tM�q�g�NgK<\*��`%s���0XHx�#J"����������~���W/2�B����H<�u�-���/�q=�u�VP��%���u��F�Ƞ��'�a�U�(Y�{�$��kR����7ʷ�+���6 Ihg��oD�A~0`�~�(��w_ ��p��c������ܔ�
‡�q^�r�)�JY�W!
(�|x Th�2�a��=���b��.�e�H
�ʏ�T�6��0��4=�Y��f꜏Ō‰�:�d�x��Ck�Z�YA�9E@,{�2<��4�v��p����;��S�~�}`J�X���/���+6�z[�>����D��vI"\9{†-�'��Ж{'P��Ol�cj!�7�G��qFM-x�厍�4�ծ�k�G2�����褐�e997T-�O�*;���u�O�*�RזQ����F�~5�Վ�Y�jٌ�q�lf�|�r���j��lf��-�Zb�q����?K�۝���_s�)������[,~�e�s��z)�v
h���E���X��g��qAp�ޔb���k�v2��\x$_R�E�ʠ6���b��e:�&(ڀ�F���qA�2Z�
I��y�0�2꾻��f�A��f��
}�z)\"IJ�mW�ʜ6�W�~�z5L��h�LZw���a�Rb$1?e\rY�U�vE^O�5�$ٱ��/�a@r-��'r�.-n��㘪;Z['''�H́;v8+Z�٢+/�dh�3z��G�,$�Ge�T�_�8���;R�����=��ƆZ�3�3���" �s�a�R��	�Җ�R�t0S�&�a��4���n	�%.�׮*�=���R�;S�$'���6��<ꬱ���QcE��qk�s������Q��ii|�Q��T�ƕM����s>q�*8ak�W���R[R��VA�NFc7���\$0���k��4����2�����ڠ!'�s	!b�2ʸ䔵+c��tA7}kO�tK�}�m��������S,=9a�x8u�������Ž�8[���4��9�(�(���̹�5���p9���I�K�0��k$����R;2)�`��� 9&��¦��cele�����"��#ԚeĦo޶Ը��0k��5��mu��J��;0����R�S��cwnI$g$�7i`V`B^����;�Ov"o��6�I��a.��H�|�m+y�0
q�d����5����6Z�v��"Dh�iM���g(0��w� Z�C\�Xb�֔�hV��!������zD����޷.�m#�~��,�TR+�f;v����8�w�8��mw-%QkITI*���{��� ��.��:["q��`.s�� ��M�WSJ[�l�;�j>�s,�^YWd��$/�‚y����ZHRM7�闂��8�M`&��EH.Y8��%Ǹ`64֔Oٚ�F�d^6��hw��$��d�!*�"�7�p�̺8�dj.+�^n^\\l��A,ë�C�H"ߊZ�c5��f)��#�̋�����h6��`�A�L�?lkJ?
,�"�ݗ����RY0
�nh���?J�%�59�{�ۄ�5�k�q�x7.>�C�k,w��哈�%��9��A�FȂ���t,��G��,b���lzW�V�	ڄ���e�T���F��vdd|4Y���0�*��_����$I2}ޣ<!&��;��b�C���I4޹���AP�xAl���W�[�CmFV�S"d/�DaQ��4*GK#�v/)�dv�n;~;I�Lԓ�$��S`5%ȉ*��x���
�<�	U�q�~�[���x�y��g��vm;��YZ��E�k����k�D��/�N��T��|���"=o�v��wL�����P�
2%
�}���$��i�<q�B�t	�bݴ��� �.�+��
����K�NG����(�֩�%�ծH�ec�����T	ѷ��jU�	Md�?���L�KF���E;_4G.�L8� q��]ʺR�Z��SiE���}�%����xތ���s��i=ӹ��	�Q[.�F��J�p"�oz��tŠI�u����M�…�lGB01�X�91yP�=�!��[vt��#��J���\���3��@��Ŷb�Q�l6_B��gJ��U9����3��x�����N=��v�}#���d����d��Se�f&�3�C+�J���T�h�6=kb�s���q�*F�v��
><����ןu&9zu�)�K�p"���%9�����+
;�V^
{{J`�W��'*��&Y-��N�)2��F�d�*����['#�	��Z�� U
� \�̂P�D�#
�>5�bnL)�Q�K1]1���:;�F?c=���D��Χ�0R���8�/���"��,�J�@>~Ñ��>Pפ��
�������MJ%��j��v�Z'�Go#����+u]�ѻ�ӣ�G�s�S_7���+/�|�T�T���#�
:���B���孎���K2�ď��q��mR�h�JV�� �}SYZ5���a���2�>�Ń09	Vx���.@항�BAҥ�H
gк������P?��|~٪�M�
�D�Eԋ�dž���P�I�p���&(���J��m`��υ�QjߤMQ��v�p��fV��(�"Mt����㨵F#=�Ho5T�g��O��\�������5酙�P���4�5�����%՘�ߓ99>���j���p��֟��f��}��oo���ß�N/��� �f�k[*6���=�k��}Xz<�1���	�b��Y��廕��h��]<�K�X��y��Q�_���Y���L����(�>������H��L�˃�n}��"wrP�3�<Aj���#�I�υj��#�AW8���:פ0/��衘|KCy��:��J�ej
-�q�X.�q!3��*��ɕ,���+�����*��K>-JF�>��~c��x����tU�HX�sR��*�_���w��`����1�{W��WGn�	��|�^��{H�yǼ�|��f.��(�0�Đ���K�,�D����/�`�l��+)+�'���!|����ڤdg�%Ò��ªn��-״n�pge	�j}�,���Uui0�Z��4�vge7�B$��)�HV�f�Hd?)���5A;H��
�¥�?��X�b��3V�_��Ť*5_3'���ھ1.��b�|9��k�fGDV)�%�x��"�zC̕=؈~�X/��fS�J��� U���ij9#�R��׶1�]@PfM?9�f3�2b4��*��p�*yP�h�=3'�5%33kLA�_4��+�83�iE�=��[I��(��gg�������>��m��{�����7�����Z���1�`b�3$LQg�v%�^�<�i%�t1<��=3�Ex��{O,��f��i v���i��=��?^S=�� ьO���]�5B��������&��i�! .�62�1Xc�w t&�:�q.�.��)�D J����n�7(bڢ傖�Q�\!�X���/�Q�3-���?�@5��=�Q� ]
��#��#�2T�󎍮��hԅ�թ��}0�_n̛i�B�6�E�w�Gх�L��tK���ov���AT8�?��<?<�x�g��S���5zG�)9��an0����W��j.p71��H��%�[>bX�����
�8���P���F�&�S�h�o����h��w+�p*��Ks~�0I�q9�|�>ƸT�8�?��?�w0*��%h�G"KJkf�ɟ���'Y�|�0ק/�{�W{�СI��=�4�����`�Z4XK@����
�-;�a���T�߄��d�@c���膍G�cczf�Y���'h����"pd�WH��&��m��A�k�@�,t���"�
t~��e�N�~d�,�5���>,��%�X��x��2�'�0{�\�]eH��S�ٴ��� �M�N��I��f��iy/�۟���^�z�>�s��?�?�y�/��f�
$P�=�.D�)�ʸ�6������_ic�\J�M[i�C�Yd�$��������}p�&s1�NdL���I��/�‹��P�o�&
B�^)�yaMA���=�
���6�?��=y��e-���j�O��'��l���!�34$�p0W!׌�v�ԥ�Ž&�
zq�c�>���9��
[�Vd4]�5���=9V;�cyԥ��mAT8��@����2�‚ȥX� Px|>�c0�F��"w]/����{��L�r�ƇN�%�n|����E�_Q���LԈ,���M���6$͞YdKJ��4��k���Σݽ�z� ��-
K�%t	��a�M��	T����a���/|����)����R�~$�0�V���
��f�r���W)Ҽc�
��؋���Ŝ�F��t�	}*e,.>6�$Tx�PAu�N̑�p������	���5��%]`v$6<K0��S�\���KG�)akpuC�����Ϧ��L�����JC ���z'���/x��k\qI��ᘑ��i��n����i�ԕ��,���z`���St�N��P>��>�L�C���U�J��D
f���8����wM�TAn�Z*k{l	}�3��|��)��O=�Ӈ�V:��EV���UC�//�s��2�J�0�/�����*��+k
+�m�!-��Ԥ�E��>9B�A�K�U.��U�o�%RG#e�Rݡ�l�
�BA�i>-eM<�~�ڿ^��1u_�Z!��E��]z��7��\~vh�˯t�&�ʻS�Z�m���y�D����`�nc��u��!����H��j�'M8����uӒc"!�\6��YN�����]���>P�=����OT�Jy�������fe5��M�)B�?f�𘑓��7���5'V���%3����렝'�G<O��Cjf*�N�6������X�]�ɻFU,�����5d��p�|kA�a�lQ���|s���S�jN,�bB�mՌh��[$]�q�w7xVbdC�9�����d�cr�Y�������*S!��Va" =y�W'��
Ѓ��%����^�?��E-�AQH�L�����;�{l�[��-n!�cD�p�-ļ��ȍ
"��Bp9����ݟCR(F�����?�@n.�1<���t�={�!���͝`|QF�����&�h�ze��.��^���3sjO ���ȉ]<MC1��D����\Fj
t��R۰����AY�7��fO�?~���5��;um��S��.�E��V��U�3�ŏy��£(4w�����3��۞鮎���.k�K_/e���I�d��r�W�_�|��q�����vt��:���UP��F�H���ZI�o����b�I&(S��ENŮ�u��t��>��W%�~P*~/�&�f���	[��8�U��eMW�7޾���ܳ����[�c}�5�3kpT�I.��cټ�p�eŊ�-&��$��ld{v%RQ���>�|����ӍlV�|4�`(��W	�g#~�"�"̪�*!��ys$KC���@	*�/�np#T�k��q[tl��z	w�M��E�w�l-\����e��0L�i�{��h0}7|A���b��oS7�Nv
fo�T&�}�*��h��+#��­��7#{�P�h�/��@  ,{J/���:}i0<F�BD���-}Ȏ��!ꛙ�lL	��9;-^w�QM���v-���TwQ:U7�т.��L _� ����>��voi�|R�R,�!ٞ1�:v�&�rGs��Ǹ�+!O(���4*2"��WW[c����[�?g�+k:z�{����1���?���駉=M�Q \�=�M@\����C��
��n�-5�"Ѹ?N՛̪T@p��U�ɲ��ۮo�f���1]�t�f�DTRL�]�z��_8f���s
#)���?����ܱ�q��+��>n�@~�k�"��sWD ���E.��b����#���Ca��5���S�{�KB���mȂT�<���jY�}v�<p.�����t�;�y���dė�Of�x0?���/�Jq�c��[m�G��R���HG�ڻ��_�����zz��3��Nm%�s2�ꠍ����Xq7mh2���Aθ8G��Ӷ�A�Y�Փ��İ�+E���6��1�4���V�in���m���%�&����ϰ�/����.8�l|޺
Wd
��H)*Ʉ{)j�]�am�xʅ�&�|��to�{����:��ߑ��aYb�,=Ub�é��'("ǘ8�
�LLX�q)�����ӐF��w�P������4z���L�N]d C�n��+L ÿ4�R�~��	!���w+�� ����AJ9J�(i�c���x�t������fV�\��(
��èjP�d%�ȿ�Ε�~��8Ƀ�A��
Ċ�ʹ�(w�0��b{#*!"�?K��Q������dms*�d�h���+��20�V��p[�(�qb0�|�F���O0�b��ڡ�U��E�\�Йp3��s�*`t��5]�Y�*B&!d��H�{�RmS�ƪ(���]>��+���JMP�F�N�Kĝ�GZ��g��Ќ�0�4�ú����	¼�t�U�����p��?L�c���AV��
����P��G�>�Í�[SO��A~�J41�[��5���-ߙ�>9iB���m�4Z�ߒ��L��D��/����zb=v*4qL�V�p�`�Q�A�T�����+\����
Ͳ����蝎̑v��X~*���!9�s�m�-[��!����Z�R'Qf��4,�\n7:����~�t�a3|ς�?�ٟ;��Ѽ�?���F-�����w���t�-/�1/NY�O�M�լ��T�yb3�Y}������ ��th�ꀭ@L�-��un:W�����J��!�c���tj:��]��h�cM�'#�5�WC=������>�k�n��tu���O�4!!�5�HYӫ�h�6s��U��$���I���m���+�#�[�
�����b-������9ö��f����N4��A��+Ŭ@|S���YF��B�@�l_�YL#GM��/P6�t,��`Cl�&�L9�F!P���m�|]�����@�M��C1�;��q�V^�xa`O5>h�/虀0� �D�Js��0���kQ��FB��ԁ|W��[m��8�Y�8��jU����\�X��k��tY;�Q����Ԗ_j+�Զ_j[m�`hK/-B���rv��pG�%l<F��ZBŁ}�Ҵ(�Q��Z�K��ꍝ�V=,�m5��?ެ��"y[� �Ϭ�0�D��#p�C��1����m�ځǘ� ���XFol���Ҭ�����}{�ܫ�ժ����+��$��K���9	�XC���$�Lwbz#;�����T���$��e؝�n�y�zw�ҏ!�h"�	���(�sWDƤe���k��A�?�mv)]E��KA6�k}0cB�dO��d���*��Gʁ�_�	����:��#��
Vmǁ�DRb�8{��…tW�C���Sz�wqqѨb���)1)���N��up�}����C�]��3�77�!]=�!čmr���{u���ݗGǿ��8x!`i.y�K0���/�i��ǍJ��^�^��!1��/J�QJ�=Z�HD2�d�陗��[Xr*��q0'�Q�+=
����|Է ���''�iA{�8��mn�zw�����Y��6�;<�`o=�J^���Z����վ�q�Yj�d�{�g#����5�	��R��9��}�#�,�_d �:($-���Iu���%ވlq�O3_�@��ɬ�����u�Q,�k�>c�߁���܉>E��W���4Z�b|.�PQM��WW�l`�Ao1��а"��̧}ÓQ��aM��җl�T(ڃ��-~����)gȞ8�gin�x|�����WG/��U�Z���dl$U	��V�ى�X��t?�N5=���霙Eށ��]�H�|Тg;.^_�sE��+${2�'�ik0-D�b��|%�/SkL����+�͕���>C�Dр��ϫ����T͐��4�|W,�]0�S��'�-k��3b��Gpc�u뛞�Y������;�I��f�#%>t����F_u)��1�p�g�ۇ;/��'���%���Z�34�%
vɏO]R粋ͬd�"3��'O�CI�2�PO[b�h�7E�'ͧ��
����5�]�̩f2�#QRȾ��…��=����}(ć6�0B��:�����ڌXC�%Xx~:���<�эM��Uσx��!	�}[%��C:�w<�j��(N���'����,W�X��El�|]��<��Գ&��TJ�X�pi��N_���ښh���Y��J�QR�B�k���f����H*�"�����snq?N^�%Mr�K�VB����`�,��G��ִ�E$�K����O@;3���0"��D�tT	ъ
b���͋��Mth�;c�y��	�ɕ,V�#{�	�:k[�6�~�;�D�6�L1\���R��;"�*#W�X��"�ך{�ͽURTl�$x�$Q
k6B-�n�8��;
�=)�4U"k
ױ�ڻ��*��-�y�B2�:/�,�����W�ן�H,Eɵ;aHwrC`�
��R���H��*�Cñ
�f�a\R�KqXW�ÂL��+&��ڒ����i4BO�
�,(��;�{��}��(��c�I�ĕ��C�l
O"�����"4y �H�8�J��f�0�h�;�,t$7!M�`�c���)+bQ5R	��:��?U���k��mg@)�Y)�Ӳ]�[Q�Oߡ��t�#�j
�ca���qॐ'/��B'�tY+��ՕȻ�O��"��� P»PK!�i�!�懦�D�����joď^@8GdYUמ�U�HЈ�N�<9(���Δޔ6�Cs�`�8�ښp��O!0E���5��JM+BT^�
��fI�E�Bx���R,�u�D$$-�L>�.TY
6��C}}ЕUQ��Yy(��&�㸙������,k=ЏR�9��L^��C����=ddVf.�p��V���Hh���;�\�Vp^Z�&6Р�P����p�����%����<�֌�8��x�e��du���x��{�^v�9K3v�ڇ�a^t;d����߼~�y3VM/)�������"7
�G����
�M��-&a���lc90�D�:��Mį�p�J�V�³�
�{W ���(l���~��Z�nMr���[��J9`��ɡH0>u��ஒwĺ�k���/�sE@���}n����Ğ���@e�'('���H�6v�YB�ګ�,z�'�ƌ"�N.�+Wc��]ȁ&T����7�[�%cفC�%Y8k� ���2?~;!b��+�!����)X���U�m	�*�S*i.�
T�
,��3Sl|H��{��}E�:R f����F
,�XԄ ��;��
n
��:兰��e�381�[I_x�HL��t|J��i�WN�w����=�̗5��>��`Z�4���,÷��N2�]A.���3�Ub�pfzi>�	
%�8IS	�*���冷�
b23����t�gϲ8�%�ED�4@O�%0���E=a�shMM0E�z�7
LA���f#��d'�z����C�3p��K��er��2���^#x�^���-DS�U�g��xY)A�8zΡ䢼N�h��P�͉��h����g��\�=?�\D�͹ci��7f���?
w�JW�,r`=l�Qo��#`���C=Ea����/�4��s�Q�=^�����%)��Z��/R�B��<4%�TEnaq��<Jit��t\˞��D{>w={b:-�����R��G��ͷ첥W���$_!�^��|҃�ǤW��6���t��1\���u�ҁ��*�7�����8��[ܠ$�P`W�X���FB1���\8����۬��S�2f+�}Z�zB�6U����rf[?y~|���:�(�	����[[�F��S,����"�;)L�>i�II�'�!Se�@Hҡ@� c���>y5sh�;w�!�1A�-����#O��������p����oRe���j���-�ӳź���M��=��X�n�6�v�'��=�f���5V�ss{{+���8�c��Dz����p>kh��0��&�5|+�,)�-�L�[_��4������c�=�g]��W�"��'�����;��7�)x�ip�y���3>�z֧O��z���÷�����I2p��ԓO�ɬ��t��´�Akl��B)�
Ҁd|����H~X8|%UP{	��ru��n�ݠ�}��/b*S���SDmN8!�E�X&�1I�g��N�B�%���H7��HGq*<_�1���{&��	L�h�c`Pڄ�ޣ݊�
��)��퍍�?h�^!]0��<H����}e��4Y3i>i1��>�����,�^ܚgf���y&�r��;4��O����G����?���������g�?�O���/�ճ�~����:~����?�_=c��?W?7ޜl_>���|���y�,�٘g'_@�T��r�dˇ\�͇۞���BȠ�Z�C�e
_��D&�D�J
 3ȴ��ҝ��K�J�2��DOf�Px9��)�k3<��W�c�&kff?���^��4wnM]{��2�}�N����K����G��������!7��HmGcM!9�gjcH��l��&�f�0/P�q�Ex_��X����U�YX,Kg_+e]��-��3_O�8%r�Ȯ�D�e���a�w��~�]����\���J��h�n��<�&���J`q�Å�k��5�
X��APZZ�~U ~�[�3�<��T�.��[|�Bd`����d��L�u�i�*#�X���fS�����]��kו?lkZ��[I��t�=�L4͞h����F>�$����ԩ����]W�*)��A����48mƹ3�9����B|aau�/l��^�(_)-�W�:K�i��LG�3S����|�/�������e'�1����zd�on>�E�w�NG��5�^��ZI'�&��,44�� V0��
t �wVE�1��ж�8��{��u��Yҥ%��]�:^|-'�J�Ƣ�2�����((p���X���~D���'�������y�4�p�3p?wz�qY�(m����F�Y��}�g��7��N9�i��vpz���F.�4�Ml:��8E_N�O4)*�P�p�Ԟ��1ۄ,�ޏɂ�n���5~�g��9��
SRAt�P08]D�މ�tv���3sL��k�d����^0�C���̼�U����9�I*i��Z��/�^4�f��e��|���G/���k����^a����\GW]h�C:CA�}����k����֣r��K�O~����ϋ����ҵ����� ���/w�d.�ٙ|�����mV[
��Ib�K4�f��DŽ�=�~l	$�W��S��ioQʋ���T�8�)u��s� @���ήe�U��NYs�`yW7�/o�i���{��8k�ʝ�}�5䗬\8�gœu���Kl���[[��]�rE�v㘛3�k��cr��5z��u	~�����F�L�LȢI������P1��>p?�N`�9ڠA�]��N�<�MA
{��>��Q��h ��4�>�d� X�_H_�<h��K�wz�bM�]���B~�oB��zW�	�K�3��5�G�]����ZY���'���t0�&c�1�^��;%,�L.���Z��ܡW���F���KF�7�<�UQ�?y~x�����^򳆉�5�*l�Jmr`���8�+!�R����,�Kr�d�No+51�h�R^ήp�n��]	����P2�9���ڗ�/�qx��5�����i��-t!8,��`�@`�i19/�pT Jiqj�e�b�S��!�4�A��'k����z��!Vǒ�k�mRWt)���`<��U��Ph�gR<fR8�Ase���K��'��{�Tэ�&t��	�ˆjM�y���>�7N^�Lj�!h*���Rh��1=��u���z��/�9���<m�2i@���#L)qô<t8��XF9%ˆ�!���h6:�,�:t(�A�8�$ Dʴf�X�'):�p�ۗk
��(&��ҭoQb��`�FV�R��/M֝����B�YwG:�R���P7�BB&�9:=��xqL��z�Q٪l����Vh~��ͽZ�٨5����94�fso��8���J�GT&�+;�G�F��00�1��@f���>�tJ6��@1S��E��X�'Z4�H�	�|z>�/����[����U��/O]�c-�����F��h~��(�o�'-���N9	�@_�@��K��_<�tf��S��.ygc�l�#�n�����O�H?�]�[�����٬���f�Y����^��o>���j��l��}��<��,��2�6vz��{
����Uk6�w�M0���Z��qx�>}+�W�/Y1��ׇ��8|'�O��Y�Ep�W��e���Ğ�2K��q�~j]j'���-��I��d�hV�ɬ��*W�Ҋ�<|��s�=�d�y>�о���}��\��'fN�NX\=��
��&{E��\�(�C�4�G��*����	m�g��i��
hO�>��EV����r�<r�u̾i}4��rP��6�8���Rqa5��ZV�_H@faA[��9f24��3ܹ���V��,!���"�h1�#?�.�d@L�T�뙃.�{��(�B0k�Uj�k���i,���"u�9�o�J �e.<�����/�g���P��t�p	�E��Uԡ��](��c��u�j�>��i���a� �����,Rk���V�V�7�w�9������!4u����c��c�S��`O�E�u��y��5��F-t�w�=�
W�z��35k�z�Գ�2Ht[o80B����9%H��QOJ�(f��g�I�!���鳑�Oul	�q������,��q/�ky�)��W��H��V�F�pKO��͏&X�Zn��a�4B9���8�_��(�����;??�yѪ}G?��k=%k��I)3��(d�(R�b)�8CQ�vIv�J�v�{P������>k_z��#p�>�$l�|{��a��.�h���k�|6�����s��#����#21���S䣹��y�S.��3�isg�!r����^��������S�3�@a`Aχ �FjQ�|�������G��
�Y]���魸�Z�V{���?5�'�]�?�����nc���]'��;ۻ����nspb ��5o�ʥ��+�[�E���r(l��)��������=3t�M�b��#�S���$Bc>����x.�G�n�ɬxs���0�\a���8/*39"�Ҽ�X]���ڦ��f�_ܢ>+��_o,�����8x�&}
��xd����E�e����`9i£�|�J�����@E��Ġ��x��z�]��>LS�O�	}u�xrMU�(!�W�n�і
T;q'5ui5��1z��C�B��������"U��x<��5�xV���m�hl�ֹ��"�R�J+�U4�k*E�TG�wi}M$�|'���KE��g��f��F���~�e�D�wx�0�]n�.���~�jac���g����G����S��x`OȔ.���������3�I��'.����^b��ʄ�'l�-he-RJz?�8�E�S4�rf9h0��f�ng|��<j<�Y��Q 
���)9�V����Z����GE�MTY;-rj,k����h�?�]5�>]����i�7�<�y���<a���<�RNs�{ �v��P^�6���/�`(��|���yt3���!�$��1\8�""(��&3��t��k�K
���j��_}ѭ�'z���ֹ���i
�ZO��q�i�����3��Ѽ����?*�wk����&&i��ۭ�A����rW��&�M�k�Z	�B$��0���ꆑZ �)��*И{����Fַf�u��f�T�t>�K�٪�6�.�-�=��`�A�E��Ab6�����WS-��۪5%W[m���	��L���vܻ2~!p���]s8�s�K䡾g�����J�I�!���OT�.xh�Xqō�F@�2�s���v�2m]`y]l���#��� \
{ek��2A-h�_�qYbn�m}5�
"'}�:em�V㠪(��NmlB���I�P�td�O�/��S�3�M�7���)�BV�@
�z'��k����<\K��]��
@'�t�0����ԏ��ٌ����:��W����zDΙ̼+�+gQX��9�BAQZ
(����w:�X��mmb�.�/����U鍕�O�	�8���h
��l�s	Fy����!R&���	e?�em]��h��%�r�ql�^j&���`��JDa#q��:����"�s���	�v�y��;&<)k�m�:�+[ێ��9<���@���=c�eFD�>�k�s>5���v�O1�^C����"s({�YC��rЅ��hN=��������Lcf+���X˴��P�4��,FL��|4�k�U.�˕�$���(.i�O�e�1�0-~z��_������Ej?eM4MRi9�
����2f���t��c�`�kdL�LM����Y�%�vn��@�TXfq�:!ȗ�1���zM_46G�	��\ʹJL��g�f��9j��p=���%Q��!����s�g��u�-�E��cW�mׄ��a��¤i1JS�p�M��R�r�
�E"ȃ4�S�u�U�^
�!�!d��A�"�mѦ��B���i=�:1��F&�@v� [�ÈD$�1�w�^�<��Ac&��#�{��9$j
pel��R��G{�D��+3�Bǰ����$S�{���j���#l�n��������ݭ����ި�o`�6	�ɢ���"�k��/��#��e\���f�'Dz��k"����'�V��	',����	L1�%]lZ��jd��va;ぞ�e�m<�m�����b��ɾ5�� ���|���س_K(���T�Vﴕ�mN�/�X/|y���~~���S�j�{kY�H����8���g�J�>3�+?l����V�A��v�*���P��!�*��ӂO�j~�U~�oB��$�TQ#��Ɉš؂HԠƝ�4��L�L��i�+!y'J��f���X��n�͟Dvg���>��` �P��z��Ԇ�.��Č'!�{6�����?��v�X�/�7�u@_>�\��H��99�:�+X<���DTť�'],�La��F��'����RGB+�R@�)��29�����;�m�0m�#�(CÎ<H�A*ʶv�,|��6{
�_F?�>���4��
"D��_	B��W.�eYb#%ً�g����[�f�7���V)���Hؿ߄��e�5�-CH8��A^���؎F5�4����3��n6N�B<�%�
�I�
i��&vU���s�i.pē���o�U �os���)�ջ����jۍ���V����?�^��
)r(����	�/8�j�$�Ԃx�e�{�9cy���[r<��P�.hޮv$��^�Z7�����H��S�-&wW��y&
�-

*���!�8p�����o�v6_a�DcT����v���7�@+�����J燪�|
@�ⶺ�!��}P�>f�uc�hVd1aN�%��u����\�*�>%�87�|��ˣ��?��:hwl�3�V�?Yz���T�ߟ�t?�(���1��Pҳ���W����;��;��OeS��Th8jZ�ݘ�q���we��%�0KE}<c�hҔ��h|��8��z9�
��T��e�S
t�:�����X����k��h����{��F�?L5�Yc7,�dBN+)��7�
,'*%��ơ�!�f��E�]u�!�����b���KM�ɪ
�+�	�<�P�X�얖0S��=��l��S��̒���&��h�F�3:��:\�2�'Y�%%���t�;��$�`��4���n>�舑C$\��d���ȡ��H��9�qC`����y[%�W���qH�3OmP����갿	C�IÊ.���Ȟ��.�.�T�ΞC�<l�$�
���F��������6�ec�p}"�>IQeF:�~�Z�C��6��WS��8�i\:,�3 x��8���*.|	g	�+��)�׊+!\�aWT5r��Br!7R8�+����[z`�}��Z� ���=9x������	G��j�!]GQ�fC_�bk
��j��\q�}m���;�|�LG{�p��z
؇�h��c�Җ�R–?�BX+�@�'�ҥ�������/=0�u��vUr
���9|�90wVCx�G)͡�A�����m��L�zC7TB1�Z栐k��@�#�;U�2"#bT]a%��-��|�d�4Fi�s6��ao���V*r:NF��r����	�6�\8����<Ⲑp�sfM�-��@_X��s��7���
/���
3�&	���A"XY�R�ze6'C.�Gއk��(��I#��>��̶�+3ԏ(��[��D�uU/���)��4X����Uv@д�F�5���!�I�4���d����.�{W�}�����'�_���b�G�s�[gaǜ�!��\uYD+ ��!�u�[�k�?��Z�o��o�^��������j> 	Q�nj�����Jx���ܱ

�4S�����]`.��NDS�\��E*���AY��> �6�T���P�ѷ~U��Ik��#��Z�� C��[�p�F��q� �?E��D��#�ǫ�GG<D}K^��A���5B�Q'1Sk���$@*�y���&g>]�\EG��%��s�~�>U���T]��f|���w��y����k0��cFQ�D���H���g$Š�'�+��R��@ ��x�2��ۅ�9�W��`+\������g+�6%4�+<��"ؑm�(�X{ݠ�n��-Ǟ�+���q&�dT�-�GslϠIz&�{Є񺡻�S�T97����0�/�BG%��_W.^bLiHf�
C`�X��36�渉#����<���O��y�ו�)�py��㻐[�����}qp	�#�;7<ň��ps�cӘ���m�F��b$�|6#�R�(5 vY;x���~|�����WG/�9\��LA��9���, ��I��3���g���).c����SS��#(�#(���]D�#�����@s��NYk�&X\���
F$"C��c��]wfU�s�h�G���s�q`�s��dj�Wx�3�U�G�bsf8�ٵ�r).���$]ip�"è����i7�8v�m^��V�Z�bA�K�Va�$"��x�����%b��(�@�~�z�i�kdc��w�¹~�J�VFF8���T�㯄��v��� B��z�_����>}��uN%$.�j��_�/�[���:=�V^ٮ�J!��L��@�/���fϱ��W
`|��\4�_���"('�����>۬YXn�v�$��.	t��vZcM(��w�7��MKk�x��O���E.��ժ?���.GRjܹ&�4#�!��0`d���������
S9���l�=%�oK�8��%6�X��mR�y�p�;��9����Mvߤ�:���E�ɿ�4>E��D�(X@Ь�W1�@�tp]:a"�Қl�F=�9
v&�fd��pj-����zχ�҂4��b��+�0�Eŀ�7~:�|)���� �O~�vfBo��"4�$�^�s��n,�%"�QkId�`ԣ�<c��Zo%�o~!!E�8�r=sr@�$:�I�Ǧq1�.�'Ǒ]���{-�Ɛ��Y:����bՒ�0�ȟIB�R����̄:��p��#-��FQ��gbZ����N�+�2��<���U�\��]��z�"��2(�����������ύ�y�����÷�4i06����Zj���Bb�rb�Z�}j6�Y�f���m(�&�
�� �t�Y�	Ĩ{��_�?��M�X���
N��&(o�m��6i-�(��ٮ���R,���C�b�d���Zd���:�t��!r�=aY�?�8�a���s�E�|�	�#l-�{h������A�­�}se�hT`����l�8x����i������ۓ6K�եÑ4��/Z�I1ŢCS�`��&
�j(h3^��Q��4Ǯĥ�I"�Ü0��"SK�!q�R<n���@4��r���b�����z��62/��0Z��<uɋ��o�"$�U`/�>�A����~p���)�]k �9$���RNt���QVi���o����G���߂�?ߛ(
d��_�;?�<I��)9����v�c<M?~aK�c��+����|J��z�l-����-������(�W�_��u�,�D��+XSX3^	d�a�bƨhQi7�#�����"Ͼ�f5R���`�V��"�qpS��#���zx\��ff��lb�_rw���M^[���7u׳�X�\+�f��Xx�]�^۪�H��*�����G@v�*�fn|3oH,	�:�l&[<�93���gx}��*C�MV���>B���_eЇd�n�xV�!���r�/:�@���#	�P�u�?~~t����8$�uu[ޘ�h�!~%Et~�wNj��ø���*PJ��
�U���P�Ov΀	>2����)QZ$�j�:M����&_�f�>�&��%�#��
Y��v	�3��Y\+�K6'd{[�g�5m��$�2�>����Y�_��9m6i��dJ��h�|a8�?��
m�HʄℶɣNeF�(&�P�3�sE`�9���9ȴ'Ȑ~h>�+U�uA<@��qG�X5�O]��`��(r�97���b��	�����		��'3,E��7����'��ԙ���lQ9�1#&;@,��=�yHM�ͥ,�^�ǟ
%u.+Eĸ��qr�v��=H�۽?p�^���t��G�E��v�v���?\"+	�o�#��0�`�ѥ��-Qi+"�X3�����Nǐ]��"je�e%X��o4�*3��V��|A�Tac+B'�-sR,�a���K���lra Db��BI7A�*�,J�r6
"��,��k���1���,��+�%J�K��u��j���Ǧ�d�j+j�X0z�B����3�:��/H�m˻�����<��Pw�&&��4��'�?5?�L6��.Q���'�4�ɛ�`�O�;j꯮B���\Gr�
�z���
H�f?��Y�Qr�	GeSfu�v��9�N��p���Z?֯�|���ޤ��_�P!4^�9�IdGE�f%>"$}c�FҠKS�K
 o����g���Ӹ.�F�[a�R�k�=-N4M��.�|�Ӛ
�ɤ!���ހ[������傰�Yi'U�6�L帖��
�9P�RJ�X(r�幜ޖg7��9X97L!%h��|c�[bRݹ�B��s�sLD���s+�J�8zc�9
���P��H���J��M��0/
���ᜣ���6��#ȖS0(iǿ(k\�
�ɰ��G `�1ڵ2AvD��l��j�Q����CS#J�����	.�B����;ۊ�ݬorS_Mw[��t���E.���,!��F�Yo��L�zF�9���s�JslS�f�;�PSi#�5���r�(Y��e�z+��
��@���
'Ϙ�0w
2.��\��Xz�X�$w��:C^{֚�-��on�sGh��Nn:c�ya���W�A�z��d�!�:\�c07YW3-4��\�B�B@�{���\�Ώ=�y���	����u`���$�lB��w�RZ5�`�4W5�����G�x'�A‡���CZ�v�:��?�����ţ�h!��H���
������F��ύ��~7���&��U�
uA�#дP���$/| ^�"M=]�ʜD�֏�(�11���!\|�p���f��Zo�i��\w�ao�z��gѣ�Z���!_��dh�sB�ހ�{���P*����y���w��0Upk���9��ˁ�E�c�iE<d���P�1��rI��5��0�e^�,��R�"eʨ6�ҭT�@���V�vFC@B�A#+�%*��!tu���3�S�7S[�=�����:��^q\Hgo�sw|U�q�Z|��H�'��p��eT�
+�B'��W��m��;aixh��ǜ!�U�b�7a�;5��I�:B:a6��&4,F�N��騉��	A�"e�#EXZ�h\�f�x��3�B�u%m�i�K��[���XCL|+��\��Zd�Lj�.�$*<O5H�W��,p�o#�E��|l�O8='ٯ� �r��,�����83���g+��)�/�݃g�B���@���ॐ�� ���@G̽˼4 %��
�s����:of��sgϻ���Mo�ϸ
H��@0�JO4ѳ!�@�s�#ʑjӀ.�+��P&�k	�k-����r���|>�4���h�nV@9�51'}�?Z�X��W�Q�Q�k������&�p�V���B��?��`�S�[$3��}��G�JJ�nZq�>��|Gj��D��g���V�]�|ll�7_v~(=�25E�sZ���j;�<|��3�q'��0(�q�$A��i7�9ɋJ�MHCD`�\�t�B(��\��@��U"���{n�rJ���@��!��{�a	5����?���Ue���aLc �a�Z�
ǣ#oMG����}�͓C��x0��;�X�r.��������B��b�;��1A$��yT�ӝ}�ſv�&Li���ps�FH%�}F3s�82�9:;f���_z�F�y�"*19�n�b.<��b�AĚYmA�q��L����Z��I.��?�q ኔ�Ŀ�� '�!���õJ`���h��ne�>�eˇ��}���r�6y*ڒ�S����y&Y9:��zv���&3-���w�Fg���c�~���X��(��o=za4�^��4m�dc���u��#t���)�H�E;�u=�@r]�:����j�?�c��h*�\`D��6�B��/?S���B�]$c��{A�&N'��1��w26M�ӈ�" S�ի�P������\�j�77�8�0�*f��� J������
,^�?2�g7!�㪥K-�,�e����u��,�VO�n��2�a�F~@�iT��@7��݁^a�:��QnL��>CN����2([��&Ä́.�B)��l
��_�1D�Xz��G ��j� �o��d���O�[��4���{���N`,����U�j���
�-�4�n%U�_7��q7)��C-0n��R���A5�B������W�A�[A/���@���l8���n�_��-){by��FB��l��K�z��gT��hᑏK�1-}�(jR�wQ��m��>|I%��t3P,ШT���s�5�g_�g=}��BV�)����{[Lz��L��.�2j=��6��	�H�(^A�5��*,N��ݢV�F��]'�6T����`M�r�9��Wm«.���T�N���*�JX4h�S�9P�D�򛫰��4�(�fHh�A&&�9d�������IA�
7�؃�|B����n���#�5k�!ؽ�T�4q)�&
F�w��NČ>�P�����\L8ݖbU�.m<���.D�6�k-��=h���e(���j2y�I��yA�ImDQl��gzdU<�Ʀ�݉��c�ڃM�cϢ�@X��%�����5X'�`Tr�esP~!p��i�&
.�l�]i=��K� N^F�t`@��1KL"�E�\��2BS�S�����[P-��c�8��Kdc��f1�j1'`��]2�_���C��g
P޲cZC�S��N��\�M-��v�Ԛ��/*s��A��\�
��'�ދd㹂�0��k\0
a��N�hڿ���!b;�[ܥ��é��؇̯�))�	r���Ώ3�~�2����,3�Uai�4���7�A�1?��kV&�����U�'���Gc�"|�,
EA{ G�HP�5�����I�V�3C|��Z�B��0?sb]���8<��11Ms����S�����Z�"m���#H�wM��{���jk�D�3E��)��!(X��E�Z�T�U�\�o=��b\�h����C��U�s�nQN+������zo�֏lE_�zp�A��&���jCb�O�A�BZQ;�t��qp�&��ॣ~B��x�g2�[�N0�,7����s�4㌬���zm�e:Ҋ�w��6�D��{fN�/�#���fl����4�	��t�\1+��f�_ߩmo��l�����/�R?k���OB:�wp�Ž-����[�����O���yf�|�y9d��DREo%9�b})�|`���	q3��9!�$�O�K�
@�/!
����(��$$B�I�r���e�UR��\���i�k�D׻��7r���P�
��6�e��0t�
�Y.c�	�ls+*����	h#��3l�/Z������VO[I�	9��^��� Q�U݇*��\&ù<�uـl����̗��@�xXV���0�E����*-a���H)�n�^�u͇r+/Q/c���&/�/`���_�N/���WC�9�X����l����Tϱ��v}Y���ð�wIo�b��L1�[x!.n���$o#Ʈ-M�͖V��|�f�}@A��BÇLv*��zɈ�W�'[0��	�;��W�U-�0YH1X|J�
��q�X���S~��T-s���y��V��*,c��e`cY���g�Wg�g��f��4��f�0�����!!@�k2(���_Ȋ۱6�v)xJV˃�v+
\)� D�J8le,�A`��ʧ5ƷL�"��Ƴ�0�)�RV�r�7��*�]��
6�p���;��&p��2��j�>��D�4/!�fY_�
p�om�V�	���w��o�^�J4��28r�K�9�ۡ,�;B�ݠ� ��|'�l��c\��c�{}p��ڂ!��/pr3����ȂU�0�a4)�v�	v%�� ��I}Z����ݩ΂U^zՑ7���6E�W�ǜ�U��k2�V�3�y(��N�ns��è�
��P
o�p<`��W�o^�`:���̸\�@���f��У���-q�6M����s=4}m��v����'l�<��MlhnP��l�Y&�`�?'M�u�OR������Z�h�X)�q@ce�s*�,�D�V�@U!!1��Mt�C�y9!SS&3圹_b�ɫ�{,��Z�G�B��i׻���B���0�H�zZ�d��2Y��[ i�C�S,��o1)�N�+Rc+�%a��ND6�,��r/�s����z�ƪ%����#E�SP.N����轤/�s���J�?S��G���n�^��������s��'�p�0@{�p������
1�nX�F�����B��L�
N�_7���6�?���=p1��ڜ�y#Z����1��K�k
�{�4���o�7��t����ɑwT�m
	ZYW[��k���X���%�K�A8�)C�'"��v˟������lt�th;�p��\�����6`p�3����\�A��	yXх��S����[�<�.`�L
E�)��O�I̼���x����>���*{��AЏ"����J��*<���/�!�L!�U�Dw��"�Z�R�P �A�mƜ�u1�eV�6Nx�}��v-��g:�+�:��
��m�:��u��z�	�ƾC����~�ܟ�K�}����p���#�zc�}�Z/�^��5�0�p�0P+(*����m�U�����>�\�i�G5#,�A�ڗĝG��R�X��z����U��2����;��o��غ?���i ǽ�Y�b>�\�c�h�a毟�㐕�2�c[��v������&L�$�ߋ�X�@M�>KR2g�H�<�Y������rfLݙፊ�``9����<|}��R~�a�mB�4��W�g�ށ�y���2� ON�O�wյ����X��pqk:0/��?U����W�'��m~FH��y��ء*|LjZ��HK?�cB�Qt�Y�ge�~�%�5$������jMDK�oCM��
ɜ�/�����Q���L�\-Ƒ=Ǚ��B7edC��L�2"�P],D�$%�ƴ���/@�DCH�Υ���1�`.����B@����%���d���*\&�B��Ů�:�^c��Aƣp��Y`\3��!cW�ˆ�K��D8��n�6�y�z6�?���17�<�#7b���6I�+�
7P`��	��ʹW;ͥL,[u#k0�9S->q�DΘ��k0�����CN� YC+�|�Zx�x.���Z��@c�5�f��c�86ό�����І;�g�4/6i�,^v�ټ7&~)�A6������';H���j�9��7'�<��M��_ws��+����JR)�I(�
I�H*k�r��-[D�-\�{�vsH��k6Ě/�32���J�o���[O�U���9SC�RCB;
�|s���#�U�P)�]����J>U36�� -t�q�g3��~/������D�`�5�s�<�^1
x3�D�}�,:���=�H�2sr����� bӐ��$3����{:P�q��bM�Y1mo�m��3r�0�h�+����lnƔz� Cn��Ā��|
(��BV�:P���
d��k'�Q:���bZq����
������:���:��g�{<͂/h�F�J����~�2\�_V�qrMC�I�ؼ�z�jc}l��s�0�/y>�0ӴT�����jd�l��c�"c�9��X���t�Q�`:����8ӹ�%������]�Fr1�E^	c�A�C4��u�_�t&���۽�+�z�d{Y���tV�N��٪׷#���������
�����cl��Y�+���R�'σ]�x�?�W�U;$�a�Ƙ�z�
�%'�L��w#*��7�ҾW�d��3���g��ɜ~T�W�;D�MV��r��-UX�m�Jԙ�� N�p�Y�~<��U1+(���IO��^ɷ��[G�t�s�v
�/�@��}�~�P�P�J�o
n밐n�,���h7:D�����kP��а��
j���h_�#���e�#����nt�'��2�g�?t�n��,�=e2��~�Aȧ�S�CR�F���V4����D�$8�[>�x��W/"��S�эH���$G���@�h��Q���������⵱bĮ�.�E��^�#[�:n���k���ۏj�{��&���3k�'�S�Ľȍx�R��#;Rʚ-4�*D\�J��h'DH"�P����vJc�)f����⽴�"�KZB�
Ђ�gt�a�E
Ě���Y�%��kȽ�8e�b��MA+D�(����W��W?�ȇV��ح���:�E���w��i=n��W�3Ψ�q�Ӑ$V��釨��`D{@p�u���!R�3�T5}��/��E
��7�{���)�C٬d�Q?98��q�����o��zG2�"�WC��T99<zɄ/��J]W�����������O#u`&cʿ�s)��ªsd|45XssN��03C1C:K=���ZGU^^��Tu �$��Z��]מ�͸
��?��з]��0�4���������ы�����O_E�Wå�T����#)&F\i���'�LJo��.�j��JDQZ6n�C�~��|~٪����H���6�l����$ �Rd^�@n��;���D���3�υ�7�M�կ�>5wJA.����d}�wO�yz�����Gj2�Zu�	awt�soZ��8.Ý�KC��"�lN��Qw�>Xn\�Tc�O�{|���SS����jƋ٧�����?���RjrO/���ӿ]�R1��3��9��3}�y�8`���4������#O��
^�}�&�sk<�z���\dA�%r��	I\`����:�z�����n�wș/l��u���������~c�(�C#C˝�H<p<T%$kV��g���d?�{�����MUc'Ϗߝ��]����H��ӡ��%���6�!q�.RFKl�T�?	Z�gO���_��Y�b;gU�}�����ʇbi�[����XJ2qUڠ�6��r����*7�m]���%J�P��z�,���MAV���[:leM�#MWo�pXE �p�!M>�H(D�����D�"=U{cs��\@9:�=e����W�0E1㖅%�OE=��%gƌ WofvZ��g��:Hծ�m��C[R�r����;xr�P��kJ}M�خE#F@mo����չ���S���3I���&��r̺����I�k�q��dI}U8f��e�~5�d�n�I�V!��;����"�#_�<�bC��%��M,
gFK�›X��$�Y�ю������Kc2���e	Oe������񸑫-�[�V�խ���	N�%C<
��@~
(��!ƙcI�>��<"[����չ��oY��±�oA<ԥ��a�)�rn5I*��?R� q���ʌ|�v��p�!{��ܘ͖8g}5R�5c�e�@�U�"	�q���`��a��nv�g���Q�ֿ�*zW��^~����d��k7~vؕ�]��ɤ��Bp����~g��YV���C�px�A�r|���y@��G��/��g+_a�f�m{��s�w�*GǿT��.�5��	�_�y@�_��a�����&�<�6��$Tܷ!�pS�{��=x��되"��C��>�9���:�@�ޑ=�.FV��Gf����>�t<�F�s����?��i�l���
���/],��"~���T������ƖW,|Ǯ�y@g��E+���i�](\����~N�f�i���l���~*��x�=����?4�]�U־�����P�
�0xh	�_Y昺��s�z\�u���ZQ��Z3�gM
�Lj0��܀�j��W�j��Q
ϟS38�$�Ú��g�f�QO��I�\�Oi�b4(|�)�5^������Y� U��,Ԏ̘?��!�*������#�����í��/����;�LW����yl�?��4>腋ow�ۭ~�+=��4D$�(������{񰱽��h�a�姽����^>�y��c-��ӧw�a4D��=�
ibx�����<�p�W�p��A�y�}n���=�L"�A�z�]됥�����B�W$}��PQ�rsO/��Y�� R�X#�~��ll=ܫ?���}���
�Ǟ�d ��9Kƒ�Z�I&l`�e0
�c�5Zx<�������a�Ç
�Q�`T�z�a17
Bی��Tɐ�pH=��N�o�}���]���~�J��t���GM��.B��}.#��h���qs[JJ�Z�v��W�F���Y`���l �+&�i
�[�5�I&���%RL���²Y�����MBv{,���' ����WhkE���hsoo��f]/�!{�r/����1#czދ�68b�m�A�~�D�}��1�1"kU f��4��w�u�ɸ�S�~D��6&u�%��B�������!v/.. �Ѥ۷'����3)�}c�cz���=A���J.؟�����#�� ����a�����t��ja�f�,��!��WP� ��Pa��~ب%Hv4l�?5�t�zQ���B=�� Y��W�,+FI&a&4��ň�ň�BU2��+g-c�Ҩ�Je�&;��E��U�A�w8}-�S%\�+�i��������e��;�Mm��m������0��w�B��
neV9��H{r�Åi9��p�l�Q@\�+
�Ѱ�u�$�1�p�E��R��溺܊4@k�U�h��fL]�.��s�*�5y����H��bkOYN���OH�'0�Oʋ7R&%��6򄭆r89�j������-�-I�1
"�Y�!DN3ɶe�ؾѿ�M`F�7w��WȵW�y2h�h^b�-��e^npe�1qeEF��O����s{Jz0@�����h�68�`�0�]���7�W���������0.=uTM�Y��i���gE`c�d��fKxlNCZ,��&Fݱ5��
�(�����@`>�m��k�C'׭�.$ZQ�db��]a@�Z���0}tK�-/��E@J���k/�T+u��37��m0���̻�Xfh��#u�[��w��uv(��3Ь�z.���L��]|����
?�@2Z��fրB���v�^kl�uK����@(IP�"��/�v'UV%���\+]���4���Pi:g�߭����3�[�'�%:B�8g�P讓�T��`��[��Md�stPg�7��GN��NK�Ia/�w����˷��ɏ��� }ā�	��U������Q������<��y:h������	�"���9���.���?6J���9�)�L�ũ�\�뤝�:]y;�H�/2#QA�?��|����f�G��"X�������M�N�ϧ���&�[C����=��k����s'5$v���Pz�ܗ��w��fF�-�r�)�s���6�4I#iF�vz�'i0DV���Jh`�>i�\k�M�y�:�`&P��4#J	m$� �q���Bf3!�J���K2�WT�I�W"�OH_���V�OT"�+���\�U�'j_/��eQ���S�.�!�北_?Ő?׫�Շ>�&nv�Y�B��l���CKt�P�w�3�oo�Ssl�.ƻ��A���H7�
����5�i{���3{��5	Ր�GB��Y�&���+�|�����"��!'�IA;g[�U��f�9�\Z4Κ�n�X��7c\L*eyI�QP*��������\P7D���R[�i����F�n5�e#v�W(̅��,8���BT^�*��"��a<]_
���Z������ǎ���A�D:�Γ$vO,�YD�L�΂�,��bh�3s��5��[������f���t5�ހ�X�צ��v>���qٻ�p��I1ؤO}�+�]��[C���9��B�l�B��@	n�=�͡0��aa)~{�����3'd���0�bB��WG)��mD)6��sR�[�_d1&;��?A5��.k_�Y��j����	@��Γ3�}ƱfH$qC���*h��O��&I�9�qhw�x�&��Y綏�z3~m��4)� ��F�^��~�66�/��yNh��=o�����Ke`Uƕ?��W��81�JS%,ݚ�2D�m�K��毯o@&�s9x��bs���zV+�^��>~����>��GU%Lw�B�k�U'�|�u�f��h�[-}�J�"��!��p�B
-�<�qݨ%�~��[<Aڑ*��D d�_;���
Բ�}���T�)�a��wv~=Jr�QA�����g�>k�b�p�-�_y��^�|�AX������#pm���6�=� �\uv�U rcf��Sk^�t:��&r8�Ͼ�0T䧧���̯�+�JSK�H��)����	eb��S�7�'�1�[
��r
nb^�h��Mq���E�9��c�s!���E]u\AMe��`�9���W��<)�lnbKU�l��8������P=�gًU��L���x���Z�����š�T5�⊏UG9*ꪊw�����Â���~��9Z�f��ra�G0��at��)8Rh=��?@����:�S c���a�=�@�A���(�:9�xu)�f.��Xo>5k�G�~�S�@!˧Dy��H�ڕ��I�H��"�k�Lć���c�{iڇ�.m�Cw<v�P>�aO%����b���g��s����/���5h�Y0����j|�}�<�G3��t�T,|��v��XD�K�j����1���١��0������^�����9�T��kz����R�@)NAO�7��Y�T��~��Y��5�����VW|+ �U[ȯ�j/���'�#��#b���S�5	4BY
[@��v����k4��†蝺;�K%ސ��&M�L�l)8�G�(�|*S���AXv�3���B�3������Ҍ?½
u_>f�v�\��Hx�b���ާ����y���(D���"K�&����[H$;ӳ�S5�[}�{��U�M�5��@��ya��dՌ�|�X�
�N�|� ���h���l��0��*5G�V���)��u�����ʹ�/K4�
���
l8mm蹓�#ve����fP��M�NJav�m��=��׵3���Y�j�6��U0rIa.V��V
+|�+(��
`U�c��mW�Sl�U��w�k���
*M�=���B�?���A�(�a�ӈ�,fH�)���v�P�S�r���Ru�m����s�~g��ێ�
�~����}gI��1�
i�3U$�I'kZٕ�q7�݁�����w,���I��� j�/X~��m����F)#�6����-���=r�Njb�>i�pr��x�]h1��g�H��xyUn��Z�)r�cu�w޽���ぽ&`3݊}4n�l��	,��kVY+4�nyQw1��A�/��.�7����D��
L��(h�^	=@�R�D���2��h��T^n�6��[�г=�����0�u�he�s!om��R��Z
y�V��Z%0�����,���"��n�Ie�1�A�A�V~��c�F����J�"�4�-5~�9;}�-]1ne�5I��
|E*�F��9��C�&���M���V���"�uƒ�Z+���z�ʱN�?i��!�S��l�k����F�m�k�l���a�e��הޞL�c"�j��;��8��Lz�G0X�_���O��7��Y�V�C��5G䨮?s�_�Ey���S��]x]�F�BhI�CCj\S�'��u᳘ǶF=�,I��U���g ��\�Y�Zz�z���h���Xވ�j���v4V�;��{:�@��~�%�F⒚	�?D @|���}��9b0v	3�k6��%7�ҟ���@&���n?a�0��!���pğy�!=�Ľ��?�Xt��t��KR9 Py&���u��5J02OCӏc�۷1���^��U�t23���&!^�>w}�66!�t�&�gԪ���YP�,zrw;n�������žՃU��ˑ!����t �lP
�Q<)wELe۾�Ҝa,^��)?9dx�����M�DN(ł�}U����B�|�Q�m?˔�J���yb���1�F�#��h'D��J{�� X1e@[L�%=�,�V�Ê;��^ vk�t����3���{f�v4�K�aU���e@qs�ӫ��C1,�����2��C��}m�Ǯ좣X�Ե 8V-�[�E��h���۲��\��uL^�`��1W4��d�}i��k�vyMW׵_�,굿�ü
_2U�v��,�����Rx%�x���'�y`FM����bR(����U2_Xz1�L��y��ꏁ��#4�g^�c�tۜNEo
�G���~�~n�_��K�����y��ĊD/�j�)A�L�	�Kc�&�$0��)�s��߭�E�~ӵ3�t
R%�m��ڿ5���r!�Jz�!������C�.��R0��_�u��(����#�ڍ[�ᰥo�q����IJ�(Т�ʱ/��V^���>c����o���o�m��؂�9΄��`Yz��ސ�`�7�%(�%�-5yK�E-5��T�3�X
������2ߨi�QSZ��&ф"�d�C�"l���@P��j�_ņʫ3$i��O��2�WOe��|sb%{�˩�k�k14�&��lOl��cJw^��8���3�K0�W�\S�����V6�VTk>�
��\�_B|�咉���:7�f~��Zms����l�����$s���-|�s��žg��3��k���
*LyoNm-Y�ݜ��,h�h��O�u�
!c���Ya�N�ԥF����2i�-�k;E�k`{d�}�Χ�3`1�{��ov;�^�L�aTq�B�8l�ʚ��܍�$c욃�ܺlj��4�^2��d|���ac�@S�C'�1�?��=���ެ�Z��xи]�?�3/�S��un��|��;��������H��̴0)��&e��n�<C�c�����%͏ZѸ�G��oy�d��k��n��=�C�����b��m���4j�_]_��?���?�?���FΊ����C�7xDH�7v����}x]��W�	~���#P���G�aL���g�j��-K
�0�4���Dn�2lWI�d6Ϝ�o�uK��Y0p����>ѭFV�W�n��?�.�����S��ra��o:�v�{{/�0��
P�O��ۨ&��;r��p�e�n�����u����.]oo������Q�e�L��AA�>E�0�A~}�=�Qc�t`'[;���G��M% 
�ݸ��Ǫ�x�F�rar���l?}KYZ����D�V�8O�;���s���t_�H�6BIN��4iY����ܤ�jHYL��'���|���Aw]T2����ؚ��Д>.#�g4\��C"a��q�rZ��ы�L_b�x�U�r���O?B��
֜���-�J}�w-U�RO�K�*h�^a	)TD�"G�+X��@1u�FC�Z��X0E��O��ױ�����"2�;;/:i5�Fc�#>=�03
ϗ�Y0
��̙d�.��0���خ����Z{j��ـ�V߳��UIէ�?`�����U��Ħi}�Ϛ�b����.����m�V��F���A6umԚ��l�{>Ȱ��Ø4Je�f%c���[2�J2��}ey�1J�@F*p9��>�W��Q�6�CI+���z�z!_���eQw��c�2fHg���iff���-��PfR���q�EoY��	O*/f)*d��[�
+ z��/"-U�Tt
�m
��ѩ����{j�QFn($��1�wh��G�S�\��^J��HRBg�*��r�G�	�eE�PR�j�k�jܨ���Ю�lت���<!�K[�������$ݰ�S�C?��k�L��Ϯ�D?�U�S?���)jz)Y!������\�	ب�����PɎz)<I|�
>|��9���h���?3=2��l��<3��/���ID���� b�r�0Q�����YŔ{�>��Ε5�sY�8y�_���lJ2��\	�y������Hal�`�}�&�O��ON2d�]�7�YI���BXq���
����=��@ag%j�h���y�`���d�VE#��œ�b0�I
��[)���B�K8����E���
,`
npv��{�C˫���l
��cs�����5�A�r�'0(��3�mr}�jr������*�>b ��O^�p����0�%v�j:.���a�����k�̈́�g�Ѩ��~ćϹFs���N�y��{��^���o�Z���G|n��u�7`��h�77�)��ƭ�Ǐ���0'���Cw,�L��Xu�~�3���@�x�w�������HE�o-�e��˒���f���¤�Q^9a-O���59�VvN��
�γK���oϵvx�J����zq
5�̝�vlx�
��4�`�����,��SCkg{=�����l2����������!^�+�<^��\<���ک��{R열+qk"�(�n'���!lS�x�Gu��Do�hem��fy�x��,�*
[+��:�B!˳��v�p�$��;��-MX��*D�m����;����O�@����G�oZ�z�v�yX�x�{�̕����%B��=�*��-�z��s�@\}C�x�E*��IC�
ܱ�TٛB�
���2�(ݾ��K�j�oq0»��^���Py%K��r��%b��v��Ů`d\Krq�/�{x�H��Ec�E�ݿ����R��)E�Qb7�l�e���p���ѭ�T���N�"��(U��y��L*C H��;1%P�f�����b�f��nZ��:]��M=)��x���T��W?!LI�"S�{ןG
X�'&=�*�x��%�K-��q�'R�c'��G&l����y���Ј�\����2����M"0t�#�
�
�e�Bt�"�p��eM��\��5�QX��2~���Z�5�!�kU�E.�4��H�kԛq���Qk�o�����3�g�i�f����´��;::Mj���o稬�Y:�E�1шoY�i頱���HT�^k���?%�-��{���:Vލ`�a/��[����{���q��m�s����~~�����p�	Tchecksums.yaml.gz0000444000000000000000000000041513572305410014604 0ustar00wheelwheel00000000000000���]eP;R@�s�\ β��tv���e���I��%�Z03���v�����r�~�Ï?���~5t�4t�����:,����Q�~9��卦��XE�ԎjɡR.'I��OW���s�0�0e�F��4/TS�ka���dRaQ��ę�0WX�m���� >Go"5ʟ]✱���N���`��>�ƚ�`=%}n���F�5[cW���%�4�#��ؔ�F޹�eXf�^�r��j�"SA�}�iR��b��\~���t�lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/WEBrick/HTTPResponse/cdesc-HTTPResponse.ri000064400000001245150402106540022276 0ustar00U:RDoc::NormalClass[iI"HTTPResponse:ETI"WEBrick::HTTPResponse;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"MThis monkey patch allows for applications to perform their own chunking ;TI";through WEBrick::HTTPResponse iff rack is set to true.;T:
@fileI" lib/rack/handler/webrick.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[
I"	rack;TI"RW;T:publicFI" lib/rack/handler/webrick.rb;T[[[[I"
class;T[[;[[:protected[[:private[[I"
instance;T[[;[[I"_rack_setup_header;F@[I"setup_header;F@[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@@cRDoc::TopLevellib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/WEBrick/HTTPResponse/setup_header-i.ri000064400000000473150402106540021621 0ustar00U:RDoc::AnyMethod[iI"setup_header:EFI"'WEBrick::HTTPResponse#setup_header;TF:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/webrick.rb;T:0@omit_headings_from_table_of_contents_below000[[I"_rack_setup_header;Fo;;	[;
@;0I"();T@FI"HTTPResponse;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/WEBrick/HTTPResponse/rack-i.ri000064400000000377150402106540020074 0ustar00U:RDoc::Attr[iI"	rack:ETI"WEBrick::HTTPResponse#rack;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/webrick.rb;T:0@omit_headings_from_table_of_contents_below0F@I"WEBrick::HTTPResponse;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/WEBrick/HTTPResponse/_rack_setup_header-i.ri000064400000000516150402106540022756 0ustar00U:RDoc::AnyMethod[iI"_rack_setup_header:EFI"-WEBrick::HTTPResponse#_rack_setup_header;TF:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/webrick.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"HTTPResponse;TcRDoc::NormalClass0[I"WEBrick::HTTPResponse;TFI"setup_header;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/WEBrick/cdesc-WEBrick.ri000064400000000522150402106540016765 0ustar00U:RDoc::NormalModule[iI"WEBrick:EF@0o:RDoc::Markup::Document:@parts[:
@file0:0@omit_headings_from_table_of_contents_below0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[I" lib/rack/handler/webrick.rb;T@'cRDoc::TopLevellib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/cache.ri000064400000050773150402106540014212 0ustar00{:ancestors{\I" Rack::Auth::AbstractHandler:ET[I"Object;TI" Rack::Auth::AbstractRequest;T[I"Object;TI"Rack::Auth::Basic;T[I" Rack::Auth::AbstractHandler;TI"Rack::Auth::Basic::Request;T[I" Rack::Auth::AbstractRequest;TI"Rack::Auth::Digest::MD5;T[@I"Rack::Auth::Digest::Nonce;T[I"Object;TI"Rack::Auth::Digest::Params;T[I"	Hash;TI" Rack::Auth::Digest::Request;T[@I"Rack::BodyProxy;T[I"Object;TI"Rack::Builder;T[I"Object;TI"Rack::Cascade;T[I"Object;TI"Rack::Chunked;T[I"Object;TI"Rack::Utils;TI"Rack::Chunked::Body;T[I"Object;T@)I"Rack::CommonLogger;T[I"Object;TI"Rack::ConditionalGet;T[I"Object;TI"Rack::Config;T[I"Object;TI"Rack::ContentLength;T[I"Object;T@)I"Rack::ContentType;T[I"Object;T@)I"Rack::Deflater;T[I"Object;TI"Rack::Deflater::GzipStream;T[I"Object;TI""Rack::Deflater::DeflateStream;T[I"Object;TI"Rack::Directory;T[I"Object;TI"Rack::ETag;T[I"Object;TI"Rack::File;T[I"Object;TI"Rack::Handler::CGI;T[I"Object;TI""Rack::Handler::EventedMongrel;T[I"Rack::Handler::Mongrel;TI"FCGI::Stream;T[I"Object;TI"Rack::Handler::FastCGI;T[I"Object;TI"Rack::Handler::LSWS;T[I"Object;TI"Rack::Handler::Mongrel;T[I"Mongrel::HttpHandler;TI"Rack::Handler::SCGI;T[I"SCGI::Processor;TI"&Rack::Handler::SwiftipliedMongrel;T[@SI"Rack::Handler::Thin;T[I"Object;TI"WEBrick::HTTPResponse;T[I"Object;TI"Rack::Handler::WEBrick;T[I"*WEBrick::HTTPServlet::AbstractServlet;TI"Rack::Head;T[I"Object;TI"Rack::Lint;T[I"Object;TI"Rack::Lint::LintError;T[I"RuntimeError;TI"Rack::Lint::InputWrapper;T[I"Object;TI"Rack::Lint::ErrorWrapper;T[I"Object;TI"Rack::Lint::HijackWrapper;T[I"Object;TI"Rack::Lobster;T[I"Object;TI"Rack::Lock;T[I"Object;TI"Rack::Logger;T[I"Object;TI"Rack::MethodOverride;T[I"Object;TI"Rack::MockRequest;T[I"Object;TI"$Rack::MockRequest::FatalWarning;T[I"RuntimeError;TI"#Rack::MockRequest::FatalWarner;T[I"Object;TI"Rack::MockResponse;T[I"Rack::Response;TI"Rack::Multipart::Generator;T[I"Object;TI"-Rack::Multipart::MultipartPartLimitError;T[I"Errno::EMFILE;TI"Rack::Multipart::Parser;T[I"Object;TI""Rack::Multipart::UploadedFile;T[I"Object;TI"Rack::NullLogger;T[I"Object;TI"Rack::ForwardRequest;T[I"Exception;TI"Rack::Recursive;T[I"Object;TI"Rack::Reloader;T[I"Object;TI"Rack::Request;T[I"Object;TI"Rack::Response;T[I"Object;TI"Rack::Response::Helpers;TI"Rack::RewindableInput;T[I"Object;TI"$Rack::RewindableInput::Tempfile;T[I"
Tempfile;TI"Rack::Runtime;T[I"Object;TI"Rack::Sendfile;T[I"Object;TI"Rack::Server;T[I"Object;TI"Rack::Server::Options;T[I"Object;TI")Rack::Session::Abstract::SessionHash;T[I"Enumerable;TI"Object;TI" Rack::Session::Abstract::ID;T[I"Object;TI"Rack::Session::Cookie;T[I" Rack::Session::Abstract::ID;TI""Rack::Session::Cookie::Base64;T[I"Object;TI"+Rack::Session::Cookie::Base64::Marshal;T[I""Rack::Session::Cookie::Base64;TI"(Rack::Session::Cookie::Base64::JSON;T[@�I"+Rack::Session::Cookie::Base64::ZipJSON;T[@�I"$Rack::Session::Cookie::Identity;T[I"Object;TI"Rack::Session::Memcache;T[@�I"Rack::Session::Pool;T[@�I"Rack::ShowExceptions;T[I"Object;TI"Rack::ShowStatus;T[I"Object;TI"Rack::Static;T[I"Object;TI"Rack::TempfileReaper;T[I"Object;TI"Rack::URLMap;T[I"Object;TI"$Rack::Utils::ParameterTypeError;T[I"TypeError;TI"'Rack::Utils::InvalidParameterError;T[I"ArgumentError;TI"Rack::Utils::Context;T[I"Object;TI"Rack::Utils::HeaderHash;T[I"	Hash;TI"+Rack::Utils::KeySpaceConstrainedParams;T[I"Object;TI"#Rack::Utils::OkJson::Utf8Error;T[I"StandardError;TI"Rack::Utils::OkJson::Error;T[I"StandardError;T:attributes{@[I"attr_accessor realm;TI"Rack::Auth::Digest::MD5;T[I"attr_accessor opaque;TI"!attr_writer passwords_hashed;T@[I"attr_accessor private_key;TI"attr_accessor time_limit;TI"Rack::Cascade;T[I"attr_reader apps;TI"Rack::Directory;T[I"attr_accessor path;TI"attr_accessor root;TI"attr_reader files;TI"Rack::File;T[	I" attr_accessor cache_control;TI"attr_accessor path;TI"attr_accessor root;TI"attr_accessor to_path;TI"Rack::Handler::SCGI;T[I"attr_accessor app;TI"WEBrick::HTTPResponse;T[I"attr_accessor rack;TI"Rack::MockResponse;T[I"attr_accessor errors;TI"!attr_reader original_headers;T@�[I"attr_accessor content_type;TI""attr_reader original_filename;TI"Rack::ForwardRequest;T[I"attr_reader env;TI"attr_reader url;TI"Rack::Request;T[I"attr_reader env;TI"Rack::Response;T[
I"attr_accessor body;TI"attr_accessor length;TI"attr_accessor status;TI"attr_reader header;TI"attr_reader headers;TI"Rack::Server;T[I"attr_writer options;T@�[I"attr_writer id;T@�[I" attr_reader default_options;TI"attr_reader key;TI"Rack::Session::Cookie;T[I"attr_reader coder;TI"Rack::Session::Memcache;T[I"attr_reader mutex;TI"attr_reader pool;TI"Rack::Session::Pool;T[I"attr_reader mutex;TI"attr_reader pool;TI"Rack::Utils::Context;T[I"attr_reader app;TI"attr_reader for;TI"Rack::Utils;T[I""attr_accessor key_space_limit;TI"'attr_accessor multipart_part_limit;TI"$attr_accessor param_depth_limit;TI"Rack::Response::Helpers;T[I"attr_reader headers;TI"!attr_reader original_headers;T:class_methods{G@[I"new;T@
[I"new;TI"Rack::Auth::Digest::MD5;T[I"new;T@[	I"new;TI"
parse;FI"private_key;TI"time_limit;T@[	I"dequote;FI"new;TI"
parse;FI"split_header_value;FI"Rack::BodyProxy;T[I"new;TI"Rack::Builder;T[	I"app;FI"new;TI"new_from_string;FI"parse_file;FI"Rack::Cascade;T[I"new;TI"Rack::Chunked;T[I"new;TI"Rack::Chunked::Body;T[I"new;TI"Rack::CommonLogger;T[I"new;TI"Rack::ConditionalGet;T[I"new;TI"Rack::Config;T[I"new;TI"Rack::ContentLength;T[I"new;TI"Rack::ContentType;T[I"new;TI"Rack::Deflater;T[I"new;T@?[I"new;T@B[I"new;TI"Rack::Directory;T[I"new;TI"Rack::ETag;T[I"new;TI"Rack::File;T[I"new;TI"Rack::Handler::CGI;T[	I"run;FI"send_body;FI"send_headers;FI"
serve;FI"Rack::Handler::FastCGI;T[
I"run;FI"send_body;FI"send_headers;FI"
serve;FI"valid_options;FI"Rack::Handler::LSWS;T[	I"run;FI"send_body;FI"send_headers;FI"
serve;FI"Rack::Handler::Mongrel;T[I"new;TI"run;FI"valid_options;FI"Rack::Handler::SCGI;T[I"new;TI"run;FI"valid_options;FI"Rack::Handler::Thin;T[I"run;FI"valid_options;FI"Rack::Handler::WEBrick;T[	I"new;TI"run;FI"
shutdown;FI"valid_options;FI"Rack::Head;T[I"new;TI"Rack::Lint;T[I"new;TI"Rack::Lock;T[I"new;TI"Rack::Logger;T[I"new;TI"Rack::MethodOverride;T[I"new;TI"Rack::MockRequest;T[I"env_for;FI"new;TI"parse_uri_rfc2396;FI"Rack::MockResponse;T[I"new;T@�[I"new;TI"Rack::Multipart::Parser;T[I"create;FI"new;T@�[I"new;TI"Rack::NullLogger;T[I"new;TI"Rack::ForwardRequest;T[I"new;TI"Rack::Recursive;T[I"new;TI"Rack::Reloader;T[I"new;TI"Rack::Request;T[I"new;TI"Rack::Response;T[I"new;TI"Rack::RewindableInput;T[I"new;TI"Rack::Runtime;T[I"new;TI"Rack::Sendfile;T[I"new;TI"Rack::Server;T[
I"&default_middleware_by_environment;FI"logging_middleware;FI"middleware;FI"new;TI"
start;F@�[	I"	find;FI"new;TI"set;FI"set_options;F@�[I"new;TI"Rack::Session::Cookie;T[I"new;TI"Rack::Session::Memcache;T[I"new;TI"Rack::Session::Pool;T[I"new;TI"Rack::ShowExceptions;T[I"new;TI"Rack::ShowStatus;T[I"new;TI"Rack::Static;T[I"new;TI"Rack::TempfileReaper;T[I"new;TI"Rack::URLMap;T[I"new;TI"Rack::Utils::Context;T[I"new;TI"Rack::Utils::HeaderHash;T[I"new;F@�[I"new;TI"	Rack;F[I"release;FI"version;FI"Rack::Utils;T[I"best_q_match;FI"build_nested_query;FI"build_query;FI"byte_ranges;FI"
bytesize;FI"clean_path_info;FI"delete_cookie_header!;FI"escape;FI"escape_html;FI"escape_path;FI"key_space_limit;TI"multipart_part_limit;TI"normalize_params;FI"param_depth_limit;TI"params_hash_type?;FI"parse_nested_query;FI"parse_query;FI"
q_values;FI"rfc2109;FI"rfc2822;FI"secure_compare;FI"select_best_encoding;FI"set_cookie_header!;FI"status_code;FI"
unescape;FI"Rack::Handler;T[
I"default;FI"get;FI"	pick;FI"
register;FI"try_require;FI"Rack::Mime;T[I"match?;FI"mime_type;FI"Rack::Multipart;T[I"build_multipart;FI"parse_multipart;F:c_class_variables{: c_singleton_class_variables{:
encodingIu:
Encoding
UTF-8;F:instance_methods{P@[I"bad_request;FI"
realm;TI"unauthorized;F@
[I"authorization_key;FI"params;FI"
parts;FI"provided?;FI"request;FI"scheme;FI"Rack::Auth::Basic;T[I"	call;FI"challenge;FI"valid?;F@[I"basic?;FI"credentials;FI"
username;FI"Rack::Auth::Digest::MD5;T[I"A1;FI"A2;FI"H;TI"KD;FI"	call;FI"challenge;FI"digest;FI"md5;FI"opaque;TI"params;FI"passwords_hashed;TI"passwords_hashed?;FI"valid?;FI"valid_digest?;FI"valid_nonce?;FI"valid_opaque?;FI"valid_qop?;F@[
I"digest;FI"fresh?;FI"stale?;FI"	to_s;FI"valid?;F@[	I"[];FI"[]=;FI"
quote;FI"	to_s;F@[I"correct_uri?;FI"digest?;FI"method;FI"method_missing;FI"
nonce;FI"params;FI"respond_to?;FI"Rack::BodyProxy;T[
I"
close;FI"closed?;FI"	each;FI"method_missing;FI"respond_to?;FI"Rack::Builder;T[I"	call;FI"generate_map;FI"map;FI"run;FI"to_app;FI"use;FI"warmup;FI"Rack::Cascade;T[
I"<<;TI"add;FI"	apps;TI"	call;FI"
include?;FI"Rack::Chunked;T[I"	call;FI"chunkable_version?;FI"Rack::Chunked::Body;T[I"
close;FI"	each;FI"Rack::CommonLogger;T[I"	call;FI"extract_content_length;FI"log;FI"Rack::ConditionalGet;T[
I"	call;FI"etag_matches?;FI"fresh?;FI"modified_since?;FI"to_rfc2822;FI"Rack::Config;T[I"	call;FI"Rack::ContentLength;T[I"	call;FI"Rack::ContentType;T[I"	call;FI"Rack::Deflater;T[I"	call;FI"should_deflate?;F@?[I"
close;FI"	each;FI"
write;F@B[I"
close;FI"	each;FI"Rack::Directory;T[I"DIR_FILE_escape;FI"
_call;FI"	call;FI"check_forbidden;FI"	each;FI"entity_not_found;FI"
files;TI"filesize_format;FI"list_directory;FI"list_path;FI"	path;TI"	root;TI"	stat;FI"Rack::ETag;T[
I"	call;FI"digest_body;FI"etag_body?;FI"etag_status?;FI"skip_caching?;FI"Rack::File;T[I"
_call;FI"cache_control;TI"	call;FI"	each;FI"	fail;FI"
filesize;FI"mime_type;FI"	path;TI"response_body;FI"	root;TI"serving;FI"to_path;TI"FCGI::Stream;T[I"_rack_read_without_buffer;FI"	read;FI"Rack::Handler::Mongrel;T[I"process;FI"Rack::Handler::SCGI;T[I"app;TI"process_request;FI"WEBrick::HTTPResponse;T[I"_rack_setup_header;FI"	rack;TI"setup_header;FI"Rack::Handler::WEBrick;T[I"service;FI"Rack::Head;T[I"	call;FI"Rack::Lobster;T[I"	call;FI"Rack::Lock;T[I"	call;FI"Rack::Logger;T[I"	call;FI"Rack::MethodOverride;T[	I"allowed_methods;FI"	call;FI"method_override;FI"method_override_param;FI"Rack::MockRequest;T[
I"delete;FI"get;FI"	head;FI"options;FI"
patch;FI"	post;FI"put;FI"request;F@�[	I"
flush;FI"	puts;FI"string;FI"
write;FI"Rack::MockResponse;T[I"=~;TI"	body;FI"empty?;FI"errors;TI"
match;FI"original_headers;T@�[
I"content_for_other;FI"content_for_tempfile;FI"	dump;FI"flattened_params;FI"multipart?;FI"Rack::Multipart::Parser;T[I"#fast_forward_to_first_boundary;FI"full_boundary;FI"Eget_current_head_and_filename_and_content_type_and_name_and_body;FI"
get_data;FI"get_filename;FI"
parse;FI"rx;FI"scrub_filename;FI"tag_multipart_encoding;F@�[
I"content_type;TI"local_path;TI"original_filename;TI"	path;FI"respond_to?;FI"Rack::NullLogger;T[I"<<;TI"add;FI"	call;FI"
close;FI"datetime_format;FI"datetime_format=;FI"
debug;FI"debug?;FI"
error;FI"error?;FI"
fatal;FI"fatal?;FI"formatter;FI"formatter=;FI"	info;FI"
info?;FI"
level;FI"level=;FI"
progname;FI"progname=;FI"sev_threshold;FI"sev_threshold=;FI"unknown;FI"	warn;FI"
warn?;FI"Rack::ForwardRequest;T[I"env;TI"url;TI"Rack::Recursive;T[I"
_call;FI"	call;FI"include;FI"Rack::Reloader;T[I"	call;FI"reload!;FI"safe_load;FI"Rack::Request;T[AI"GET;FI"	POST;FI"[];FI"[]=;FI"accept_encoding;FI"accept_language;FI"
base_url;FI"	body;FI"content_charset;FI"content_length;FI"content_type;FI"cookies;FI"delete?;FI"delete_param;FI"env;TI"form_data?;FI"
fullpath;FI"	get?;FI"
head?;FI"	host;FI"host_with_port;FI"ip;FI"
link?;FI"logger;FI"media_type;FI"media_type_params;FI"
options?;FI"params;FI"parse_http_accept_header;FI"parse_multipart;FI"parse_query;FI"parseable_data?;FI"patch?;FI"	path;FI"path_info;FI"path_info=;FI"	port;FI"
post?;FI"	put?;FI"query_string;FI"referer;FI"
referrer;FI" reject_trusted_ip_addresses;FI"request_method;FI"scheme;FI"script_name;FI"script_name=;FI"session;FI"session_options;FI"split_ip_addresses;FI"	ssl?;FI"strip_doublequotes;FI"trace?;FI"trusted_proxy?;FI"unlink?;FI"update_param;FI"url;FI"user_agent;FI"values_at;FI"	xhr?;FI"Rack::Response;T[I"[];FI"[]=;FI"	body;TI"
close;FI"delete_cookie;FI"	each;FI"empty?;FI"finish;FI"header;TI"headers;FI"length;TI"
redirect;FI"set_cookie;FI"status;TI"	to_a;FI"to_ary;FI"
write;FI"Rack::RewindableInput;T[I"
close;FI"	each;FI"$filesystem_has_posix_semantics?;FI"	gets;FI"make_rewindable;FI"	read;FI"rewind;F@�[I"_close;FI"Rack::Runtime;T[I"	call;FI"clock_time;FI"Rack::Sendfile;T[I"	call;FI"map_accel_path;FI"variation;FI"Rack::Server;T[I"app;FI"build_app;FI"&build_app_and_options_from_config;FI"build_app_from_string;FI"check_pid!;FI"daemonize_app;FI"default_options;FI"middleware;FI"opt_parser;FI"options;FI"parse_options;FI"pidfile_process_status;FI"server;FI"
start;FI"wrapped_app;FI"write_pid;FI"Rack::Server::Options;T[I"handler_opts;FI"parse!;F@�[ I"[];FI"[]=;FI"
clear;FI"delete;FI"destroy;FI"	each;FI"empty?;FI"exists?;FI"
fetch;TI"
has_key?;FI"id;FI"
include?;TI"inspect;FI"	key?;TI"	keys;FI"
load!;FI"load_for_read!;FI"load_for_write!;FI"loaded?;FI"merge!;TI"options;FI"replace;FI"
store;TI"stringify_keys;FI"to_hash;FI"update;FI"values;F@�[I"	call;FI"commit_session;FI"commit_session?;FI"context;FI"current_session_id;FI"default_options;TI"destroy_session;FI"extract_session_id;FI"force_options?;FI"forced_session_update?;FI"generate_sid;FI"get_session;FI"initialize_sid;FI"key;TI"load_session;FI"loaded_session?;FI"prepare_session;FI"security_matches?;FI"session_class;FI"session_exists?;FI"set_cookie;FI"set_session;FI"Rack::Session::Cookie;T[I"
coder;TI"destroy_session;FI"digest_match?;FI"extract_session_id;FI"generate_hmac;FI"get_session;FI"persistent_session_id!;FI"set_session;FI"unpacked_cookie_data;F@�[I"decode;FI"encode;F@�[I"decode;FI"encode;F@�[I"decode;FI"encode;F@�[I"decode;FI"encode;F@�[I"decode;FI"encode;FI"Rack::Session::Memcache;T[I"destroy_session;FI"generate_sid;FI"get_session;FI"
mutex;TI"	pool;TI"set_session;FI"with_lock;FI"Rack::Session::Pool;T[I"destroy_session;FI"generate_sid;FI"get_session;FI"
mutex;TI"	pool;TI"set_session;FI"with_lock;FI"Rack::ShowExceptions;T[
I"accepts_html?;FI"	call;FI"dump_exception;FI"prefers_plaintext?;FI"pretty;FI"Rack::ShowStatus;T[I"	call;FI"Rack::Static;T[
I"applicable_rules;FI"	call;FI"can_serve;FI"overwrite_file_path;FI"route_file;FI"Rack::TempfileReaper;T[I"	call;FI"Rack::URLMap;T[I"	call;FI"
casecmp?;FI"
remap;FI"Rack::Utils::Context;T[
I"app;TI"	call;FI"context;FI"for;TI"recontext;FI"Rack::Utils::HeaderHash;T[I"[];FI"[]=;FI"delete;FI"	each;FI"
has_key?;TI"
include?;FI"	key?;TI"member?;TI"
merge;FI"merge!;FI"replace;FI"to_hash;F@�[	I"[];FI"[]=;FI"	key?;FI"to_params_hash;FI"Rack::Utils;T[@.@/@0@1@2@3@4@5@6@7@:@<@=@>@?@@@A@B@C@D@E@FI"Rack::Mime;T[@P@QI"Rack::Reloader::Stat;T[I"figure_path;FI"
rotation;FI"safe_stat;FI"Rack::Response::Helpers;T[I"accepted?;FI"bad_request?;FI"client_error?;FI"content_length;FI"content_type;FI"
created?;FI"forbidden?;FI"headers;TI"i_m_a_teapot?;FI"
include?;FI"informational?;FI"
invalid?;FI"
location;FI"method_not_allowed?;FI"not_found?;FI"ok?;FI"original_headers;TI"redirect?;FI"redirection?;FI"server_error?;FI"successful?;FI"unauthorized?;FI"unprocessable?;FI"Rack::Utils::OkJson;T[#I"abbrev;FI"arrenc;FI"
arrparse;FI"decode;FI"eat;FI"encode;FI"
falsetok;FI"hexdec4;FI"keyenc;FI"lex;FI"nibble;FI"nulltok;FI"numenc;FI"numtok;FI"objenc;FI"
objparse;FI"pairparse;FI"rubydoesenc?;FI"strenc;FI"strtok;FI"
subst;FI"surrogate?;FI"textparse;FI"tok;FI"truetok;FI"ucharcopy;FI"
ucharenc;FI"unquote;FI"valenc;FI"
valparse;F:	main0:modules[mI"	FCGI;FI"FCGI::Stream;TI"	Rack;FI"Rack::Auth;T@@I"Rack::Auth::Basic;TI"Rack::Auth::Basic::Request;TI"Rack::Auth::Digest;TI"Rack::Auth::Digest::MD5;TI"Rack::Auth::Digest::Nonce;TI"Rack::Auth::Digest::Params;TI" Rack::Auth::Digest::Request;TI"Rack::BodyProxy;TI"Rack::Builder;TI"Rack::Cascade;TI"Rack::Chunked;TI"Rack::Chunked::Body;TI"Rack::CommonLogger;TI"Rack::ConditionalGet;TI"Rack::Config;TI"Rack::ContentLength;TI"Rack::ContentType;TI"Rack::Deflater;TI""Rack::Deflater::DeflateStream;TI"Rack::Deflater::GzipStream;TI"Rack::Directory;TI"Rack::ETag;TI"Rack::File;TI"Rack::ForwardRequest;TI"Rack::Handler;TI"Rack::Handler::CGI;TI""Rack::Handler::EventedMongrel;TI"Rack::Handler::FastCGI;TI"Rack::Handler::LSWS;T@SI"Rack::Handler::SCGI;TI"&Rack::Handler::SwiftipliedMongrel;TI"Rack::Handler::Thin;TI"Rack::Handler::WEBrick;TI"Rack::Head;TI"Rack::Lint;TI"Rack::Lint::Assertion;TI"Rack::Lint::ErrorWrapper;TI"Rack::Lint::HijackWrapper;TI"Rack::Lint::InputWrapper;TI"Rack::Lint::LintError;TI"Rack::Lobster;TI"Rack::Lock;TI"Rack::Logger;TI"Rack::MethodOverride;TI"Rack::Mime;TI"Rack::MockRequest;TI"#Rack::MockRequest::FatalWarner;TI"$Rack::MockRequest::FatalWarning;TI"Rack::MockResponse;TI"Rack::Multipart;TI"Rack::Multipart::Generator;TI"-Rack::Multipart::MultipartPartLimitError;TI"Rack::Multipart::Parser;TI""Rack::Multipart::UploadedFile;TI"Rack::NullLogger;TI"Rack::Recursive;TI"Rack::Reloader;TI"Rack::Reloader::Stat;TI"Rack::Request;T@�@�I"Rack::RewindableInput;TI"$Rack::RewindableInput::Tempfile;TI"Rack::Runtime;TI"Rack::Runtime::Process;TI"Rack::Sendfile;TI"Rack::Server;TI"Rack::Server::Options;TI"Rack::Session;TI"Rack::Session::Abstract;T@�I")Rack::Session::Abstract::SessionHash;TI"Rack::Session::Cookie;T@�I"(Rack::Session::Cookie::Base64::JSON;TI"+Rack::Session::Cookie::Base64::Marshal;TI"+Rack::Session::Cookie::Base64::ZipJSON;TI"$Rack::Session::Cookie::Identity;TI"Rack::Session::Memcache;TI"Rack::Session::Pool;TI"Rack::ShowExceptions;TI"Rack::ShowStatus;TI"Rack::Static;TI"Rack::TempfileReaper;TI"Rack::URLMap;T@)I"Rack::Utils::Context;TI"Rack::Utils::HeaderHash;TI"'Rack::Utils::InvalidParameterError;TI"+Rack::Utils::KeySpaceConstrainedParams;TI"Rack::Utils::OkJson;TI"Rack::Utils::OkJson::Error;TI"#Rack::Utils::OkJson::Utf8Error;TI"$Rack::Utils::ParameterTypeError;TI"URI;FI"WEBrick;FI"WEBrick::HTTPResponse;T:
pages[I"HISTORY.md;TI"KNOWN-ISSUES;TI"README.rdoc;T:
titleI"rack-1.6.4 Documentation;Tlib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/FCGI/cdesc-FCGI.ri000064400000000517150402106540015435 0ustar00U:RDoc::NormalModule[iI"	FCGI:EF@0o:RDoc::Markup::Document:@parts[:
@file0:0@omit_headings_from_table_of_contents_below0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[I" lib/rack/handler/fastcgi.rb;T@'cRDoc::TopLevellib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/FCGI/Stream/cdesc-Stream.ri000064400000000717150402106540017415 0ustar00U:RDoc::NormalClass[iI"Stream:ETI"FCGI::Stream;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI" lib/rack/handler/fastcgi.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[I"_rack_read_without_buffer;FI" lib/rack/handler/fastcgi.rb;T[I"	read;F@#[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@@cRDoc::TopLevellib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/FCGI/Stream/_rack_read_without_buffer-i.ri000064400000000511150402106540022507 0ustar00U:RDoc::AnyMethod[iI"_rack_read_without_buffer:EFI"+FCGI::Stream#_rack_read_without_buffer;TF:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/fastcgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"(n, buffer=nil);T@FI"Stream;TcRDoc::NormalClass0[I"FCGI::Stream;TFI"	read;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/FCGI/Stream/read-i.ri000064400000000460150402106540016237 0ustar00U:RDoc::AnyMethod[iI"	read:EFI"FCGI::Stream#read;TF:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/fastcgi.rb;T:0@omit_headings_from_table_of_contents_below000[[I"_rack_read_without_buffer;Fo;;	[;
@;0I"(n, buffer=nil);T@FI"Stream;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/URI/cdesc-URI.ri000064400000000703150402106540015310 0ustar00U:RDoc::NormalModule[iI"URI:EF@0o:RDoc::Markup::Document:@parts[:
@file0:0@omit_headings_from_table_of_contents_below0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[	I"(lib/rack/backports/uri/common_18.rb;TI")lib/rack/backports/uri/common_192.rb;TI")lib/rack/backports/uri/common_193.rb;TI"lib/rack/mock.rb;T@)cRDoc::TopLevellib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/page-README_rdoc.ri000064400000033014150402106540016012 0ustar00U:RDoc::TopLevel[	iI"README.rdoc:ETcRDoc::Parser::Simpleo:RDoc::Markup::Document:@parts[�S:RDoc::Markup::Heading:
leveli:	textI"Rack, a modular Ruby webserver interface {<img src="https://secure.travis-ci.org/rack/rack.svg" alt="Build Status" />}[http://travis-ci.org/rack/rack] {<img src="https://gemnasium.com/rack/rack.svg" alt="Dependency Status" />}[https://gemnasium.com/rack/rack];To:RDoc::Markup::BlankLineo:RDoc::Markup::Paragraph;[
I"MRack provides a minimal, modular and adaptable interface for developing ;TI"Kweb applications in Ruby.  By wrapping HTTP requests and responses in ;TI"Hthe simplest way possible, it unifies and distills the API for web ;TI"Eservers, web frameworks, and software in between (the so-called ;TI"+middleware) into a single method call.;T@
o;
;[I"HThe exact details of this are described in the Rack specification, ;TI"3which all Rack applications should conform to.;T@
S;	;
i;I"Supported web servers;T@
o;
;[I"FThe included *handlers* connect all kinds of web servers to Rack:;To:RDoc::Markup::List:
@type:BULLET:@items[o:RDoc::Markup::ListItem:@label0;[o;
;[I"Mongrel;To;;0;[o;
;[I"EventedMongrel;To;;0;[o;
;[I"SwiftipliedMongrel;To;;0;[o;
;[I"WEBrick;To;;0;[o;
;[I"	FCGI;To;;0;[o;
;[I"CGI;To;;0;[o;
;[I"	SCGI;To;;0;[o;
;[I"LiteSpeed;To;;0;[o;
;[I"	Thin;T@
o;
;[I"DThese web servers include Rack handlers in their distributions:;To;;;;[o;;0;[o;
;[I"Ebb;To;;0;[o;
;[I"
Fuzed;To;;0;[o;
;[I"Glassfish v3;To;;0;[o;
;[I"CPhusion Passenger (which is mod_rack for Apache and for nginx);To;;0;[o;
;[I"	Puma;To;;0;[o;
;[I"Rainbows!;To;;0;[o;
;[I"	Reel;To;;0;[o;
;[I"Unicorn;To;;0;[o;
;[I"
unixrack;To;;0;[o;
;[I"
uWSGI;To;;0;[o;
;[I"
yahns;To;;0;[o;
;[I"Zbatery;T@
o;
;[I"IAny valid Rack app will run the same on all these handlers, without ;TI"changing anything.;T@
S;	;
i;I"Supported web frameworks;T@
o;
;[I"CThese frameworks include Rack adapters in their distributions:;To;;;;[o;;0;[o;
;[I"Camping;To;;0;[o;
;[I"
Coset;To;;0;[o;
;[I"
Espresso;To;;0;[o;
;[I"Halcyon;To;;0;[o;
;[I"	Mack;To;;0;[o;
;[I"Maveric;To;;0;[o;
;[I"	Merb;To;;0;[o;
;[I"!Racktools::SimpleApplication;To;;0;[o;
;[I"Ramaze;To;;0;[o;
;[I"Ruby on Rails;To;;0;[o;
;[I"Rum;To;;0;[o;
;[I"Sinatra;To;;0;[o;
;[I"Sin;To;;0;[o;
;[I"Vintage;To;;0;[o;
;[I"
Waves;To;;0;[o;
;[I"Wee;To;;0;[o;
;[I"... and many others.;T@
S;	;
i;I"Available middleware;T@
o;
;[I"JBetween the server and the framework, Rack can be customized to your ;TI"6applications needs using middleware, for example:;To;;;;[
o;;0;[o;
;[I"MRack::URLMap, to route to multiple applications inside the same process.;To;;0;[o;
;[I"<Rack::CommonLogger, for creating Apache-style logfiles.;To;;0;[o;
;[I"@Rack::ShowException, for catching unhandled exceptions and ;TI"Hpresenting them in a nice and helpful way with clickable backtrace.;To;;0;[o;
;[I"*Rack::File, for serving static files.;To;;0;[o;
;[I"...many others!;T@
o;
;[I"HAll these components use the same interface, which is described in ;TI"Idetail in the Rack specification.  These optional components can be ;TI"used in any way you wish.;T@
S;	;
i;I"Convenience;T@
o;
;[	I"KIf you want to develop outside of existing frameworks, implement your ;TI"Kown ones, or develop middleware, Rack provides many helpers to create ;TI"HRack applications quickly and without doing the same web stuff all ;TI"
over:;To;;;;[o;;0;[o;
;[I"ARack::Request, which also provides query string parsing and ;TI"multipart handling.;To;;0;[o;
;[I"CRack::Response, for convenient generation of HTTP replies and ;TI"cookie handling.;To;;0;[o;
;[I"FRack::MockRequest and Rack::MockResponse for efficient and quick ;TI"?testing of Rack application without real HTTP round-trips.;T@
S;	;
i;I"rack-contrib;T@
o;
;[I"KThe plethora of useful middleware created the need for a project that ;TI"Icollects fresh Rack middleware.  rack-contrib includes a variety of ;TI"Iadd-on components for Rack and it is easy to contribute new modules.;T@
o;;;;[o;;0;[o;
;[I")https://github.com/rack/rack-contrib;T@
S;	;
i;I"rackup;T@
o;
;[I"Krackup is a useful tool for running Rack applications, which uses the ;TI"IRack::Builder DSL to configure middleware and build up applications ;TI"easily.;T@
o;
;[I"Hrackup automatically figures out the environment it is run in, and ;TI"Jruns your application as FastCGI, CGI, or standalone with Mongrel or ;TI"/WEBrick---all from the same configuration.;T@
S;	;
i;I"Quick start;T@
o;
;[I"Try the lobster!;T@
o;
;[I".Either with the embedded WEBrick starter:;T@
o:RDoc::Markup::Verbatim;[I"$ruby -Ilib lib/rack/lobster.rb
;T:@format0o;
;[I"Or with rackup:;T@
o;;[I")bin/rackup -Ilib example/lobster.ru
;T;0o;
;[I"?By default, the lobster is found at http://localhost:9292.;T@
S;	;
i;I"Installing with RubyGems;T@
o;
;[I"JA Gem of Rack is available at rubygems.org.  You can install it with:;T@
o;;[I"gem install rack
;T;0o;
;[I"KI also provide a local mirror of the gems (and development snapshots) ;TI"at my site:;T@
o;;[I"Fgem install rack --source http://chneukirchen.org/releases/gems/
;T;0S;	;
i;I"Running the tests;T@
o;
;[I"7Testing Rack requires the bacon testing framework:;T@
o;;[I"Gbundle install --without extra # to be able to run the fast tests
;T;0o;
;[I"Or:;T@
o;;[I"Nbundle install # this assumes that you have installed native extensions!
;T;0o;
;[I")There are two rake-based test tasks:;T@
o;;[I"Hrake test       tests all the fast tests (no Handlers or Adapters)
;TI"(rake fulltest   runs all the tests
;T;0o;
;[I"EThe fast testsuite has no dependencies outside of the core Ruby ;TI"installation and bacon.;T@
o;
;[I"0To run the test suite completely, you need:;T@
o;;[	I"* fcgi
;TI"* memcache-client
;TI"* mongrel
;TI"* thin
;T;0o;
;[I"CThe full set of tests test FCGI access with lighttpd (on port ;TI"C9203) so you will need lighttpd installed as well as the FCGI ;TI" libraries and the fcgi gem:;T@
o;
;[I"#Download and install lighttpd:;T@
o;;[I"&http://www.lighttpd.net/download
;T;0o;
;[I"#Installing the FCGI libraries:;T@
o;;[I";curl -O http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
;TI" tar xzvf fcgi-2.4.0.tar.gz
;TI"cd fcgi-2.4.0
;TI"%./configure --prefix=/usr/local
;TI"
make
;TI"sudo make install
;TI"cd ..
;T;0o;
;[I""Installing the Ruby fcgi gem:;T@
o;;[I"gem install fcgi
;T;0o;
;[I"IFurthermore, to test Memcache sessions, you need memcached (will be ;TI"6run on port 11211) and memcache-client installed.;T@
S;	;
i;I"Configuration;T@
o;
;[I"SSeveral parameters can be modified on Rack::Utils to configure Rack behaviour.;T@
o;
;[I"	e.g:;T@
o;;[I"'Rack::Utils.key_space_limit = 128
;T;0S;	;
i;I"key_space_limit;T@
o;
;[I"MThe default number of bytes to allow a single parameter key to take up. ;TI"?This helps prevent a rogue client from flooding a Request.;T@
o;
;[I"7Default to 65536 characters (4 kiB in worst case).;T@
S;	;
i;I"multipart_part_limit;T@
o;
;[I"8The maximum number of parts a request can contain. ;TI"PAccepting too many part can lead to the server running out of file handles.;T@
o;
;[I"dThe default is 128, which means that a single request can't upload more than 128 files at once.;T@
o;
;[I"Set to 0 for no limit.;T@
o;
;[I"LCan also be set via the RACK_MULTIPART_PART_LIMIT environment variable.;T@
S;	;
i;I"History;T@
o;
;[I".See <https://github.com/rack/HISTORY.md>.;T@
S;	;
i;I"Contact;T@
o;
;[I"2Please post bugs, suggestions and patches to ;TI">the bug tracker at <https://github.com/rack/rack/issues>.;T@
o;
;[
I"KPlease post security related bugs and suggestions to the core team at ;TI"U<https://groups.google.com/group/rack-core> or rack-core@googlegroups.com. This ;TI"Tlist is not public. Due to wide usage of the library, it is strongly preferred ;TI"Mthat we manage timing in order to provide viable patches at the time of ;TI"Gdisclosure. Your assistance in this matter is greatly appreciated.;T@
o;
;[I",Mailing list archives are available at ;TI"2<https://groups.google.com/group/rack-devel>.;T@
o;
;[I";Git repository (send Git patches to the mailing list):;To;;;;[o;;0;[o;
;[I"!https://github.com/rack/rack;To;;0;[o;
;[I"=http://git.vuxu.org/cgi-bin/gitweb.cgi?p=rack-github.git;T@
o;
;[I"HYou are also welcome to join the #rack channel on irc.freenode.net.;T@
S;	;
i;I"Thanks;T@
o;
;[I"&The Rack Core Team, consisting of;T@
o;;;;[
o;;0;[o;
;[I"(Christian Neukirchen (chneukirchen);To;;0;[o;
;[I"James Tucker (raggi);To;;0;[o;
;[I"Josh Peek (josh);To;;0;[o;
;[I"José Valim (josevalim);To;;0;[o;
;[I" Michael Fellinger (manveru);To;;0;[o;
;[I"!Aaron Patterson (tenderlove);To;;0;[o;
;[I"$Santiago Pastorino (spastorino);To;;0;[o;
;[I"Konstantin Haase (rkh);T@
o;
;[I"and the Rack Alumnis;T@
o;;;;[o;;0;[o;
;[I"Ryan Tomayko (rtomayko);To;;0;[o;
;[I""Scytrin dai Kinthra (scytrin);T@
o;
;[I"would like to thank:;T@
o;;;;[o;;0;[o;
;[I".Adrian Madrid, for the LiteSpeed handler.;To;;0;[o;
;[I"IChristoffer Sawicki, for the first Rails adapter and Rack::Deflater.;To;;0;[o;
;[I"4Tim Fletcher, for the HTTP authentication code.;To;;0;[o;
;[I"PLuc Heinrich for the Cookie sessions, the static file handler and bugfixes.;To;;0;[o;
;[I"0Armin Ronacher, for the logo and racktools.;To;;0;[o;
;[
I"EAlex Beregszaszi, Alexander Kahn, Anil Wadghule, Aredridel, Ben ;TI"GAlpert, Dan Kubb, Daniel Roethlisberger, Matt Todd, Tom Robinson, ;TI"IPhil Hagelberg, S. Brent Faulkner, Bosko Milekic, Daniel Rodríguez ;TI"KTroitiño, Genki Takiuchi, Geoffrey Grosenbach, Julien Sanchez, Kamal ;TI"JFariz Mahyuddin, Masayoshi Takahashi, Patrick Aljordm, Mig, Kazuhiro ;TI"BNishiyama, Jon Bardin, Konstantin Haase, Larry Siden, Matias ;TI"HKorhonen, Sam Ruby, Simon Chiang, Tim Connor, Timur Batyrshin, and ;TI"6Zach Brock for bug fixing and other improvements.;To;;0;[o;
;[I"GEric Wong, Hongli Lai, Jeremy Kemper for their continuous support ;TI"and API improvements.;To;;0;[o;
;[I"8Yehuda Katz and Carl Lerche for refactoring rackup.;To;;0;[o;
;[I"*Brian Candler, for Rack::ContentType.;To;;0;[o;
;[I"0Graham Batty, for improved handler loading.;To;;0;[o;
;[I"9Stephen Bannasch, for bug reports and documentation.;To;;0;[o;
;[I"BGary Wright, for proposing a better Rack::Response interface.;To;;0;[o;
;[I">Jonathan Buch, for improvements regarding Rack::Response.;To;;0;[o;
;[I"BArmin Röhrl, for tracking down bugs in the Cookie generator.;To;;0;[o;
;[I"JAlexander Kellett for testing the Gem and reviewing the announcement.;To;;0;[o;
;[I"GMarcus Rückert, for help with configuring and debugging lighttpd.;To;;0;[o;
;[I"JThe WSGI team for the well-done and documented work they've done and ;TI"Rack builds up on.;To;;0;[o;
;[I"BAll bug reporters and patch contributors not mentioned above.;T@
S;	;
i;I"Copyright;T@
o;
;[I"aCopyright (C) 2007, 2008, 2009, 2010 Christian Neukirchen <http://purl.org/net/chneukirchen>;T@
o;
;[I"RPermission is hereby granted, free of charge, to any person obtaining a copy ;TI"Nof this software and associated documentation files (the "Software"), to ;TI"Pdeal in the Software without restriction, including without limitation the ;TI"Qrights to use, copy, modify, merge, publish, distribute, sublicense, and/or ;TI"Psell copies of the Software, and to permit persons to whom the Software is ;TI"=furnished to do so, subject to the following conditions:;T@
o;
;[I"PThe above copyright notice and this permission notice shall be included in ;TI"8all copies or substantial portions of the Software.;T@
o;
;[I"PTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ;TI"NIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ;TI"MFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ;TI"NTHE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER ;TI"MIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ;TI"OCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.;T@
S;	;
i;I"
Links;T@
o;;:	NOTE;[o;;[I"	Rack;T;[o;
;[I"<http://rack.github.io/>;To;;[I"Official Rack repositories;T;[o;
;[I"<https://github.com/rack>;To;;[I"Rack Bug Tracking;T;[o;
;[I"*<https://github.com/rack/rack/issues>;To;;[I"rack-devel mailing list;T;[o;
;[I"1<https://groups.google.com/group/rack-devel>;To;;[I"Rack's Rubyforge project;T;[o;
;[I")<http://rubyforge.org/projects/rack>;T@
o;;[I"Christian Neukirchen;T;[o;
;[I"<http://chneukirchen.org/>;T:
@file@:0@omit_headings_from_table_of_contents_below0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ShowStatus/new-c.ri000064400000000367150402106540017156 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::ShowStatus::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/showstatus.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"ShowStatus;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ShowStatus/cdesc-ShowStatus.ri000064400000001502150402106540021340 0ustar00U:RDoc::NormalClass[iI"ShowStatus:ETI"Rack::ShowStatus;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"DRack::ShowStatus catches all empty responses and replaces them ;TI"&with a site explaining the error.;To:RDoc::Markup::BlankLineo;	;[I"HAdditional details can be put into <tt>rack.showstatus.detail</tt> ;TI"Gand will be shown as HTML.  If such details exist, the error page ;TI"9is always rendered, even if the reply was not empty.;T:
@fileI"lib/rack/showstatus.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/showstatus.rb;T[:protected[[:private[[I"
instance;T[[;
[[I"	call;F@$[;[[;[[[U:RDoc::Context::Section[i0o;;[;0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ShowStatus/call-i.ri000064400000000370150402106540017300 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::ShowStatus#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/showstatus.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ShowStatus;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Recursive/_call-i.ri000064400000000367150402106540017270 0ustar00U:RDoc::AnyMethod[iI"
_call:EFI"Rack::Recursive#_call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/recursive.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Recursive;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Recursive/include-i.ri000064400000000401150402106540017626 0ustar00U:RDoc::AnyMethod[iI"include:EFI"Rack::Recursive#include;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/recursive.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, path);T@FI"Recursive;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Recursive/new-c.ri000064400000000364150402106540016776 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Recursive::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/recursive.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"Recursive;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Recursive/cdesc-Recursive.ri000064400000001347150402106550021016 0ustar00U:RDoc::NormalClass[iI"Recursive:ETI"Rack::Recursive;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[	I"BRack::Recursive allows applications called down the chain to ;TI"4include data from other applications (by using ;TI"=<tt>rack['rack.recursive.include'][...]</tt> or raise a ;TI"+ForwardRequest to redirect internally.;T:
@fileI"lib/rack/recursive.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/recursive.rb;T[:protected[[:private[[I"
instance;T[[;[[I"
_call;F@ [I"	call;F@ [I"include;F@ [;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Recursive/call-i.ri000064400000000365150402106550017130 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Recursive#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/recursive.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Recursive;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockResponse/%3d%7e-i.ri000064400000000364150402106550017531 0ustar00U:RDoc::AnyMethod[iI"=~:ETI"Rack::MockResponse#=~;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(other);T@FI"MockResponse;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockResponse/cdesc-MockResponse.ri000064400000001367150402106550022122 0ustar00U:RDoc::NormalClass[iI"MockResponse:ETI"Rack::MockResponse;TI"Rack::Response;Fo:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"GRack::MockResponse provides useful helpers for testing your apps. ;TI"EUsually, you don't create the MockResponse on your own, but use ;TI"MockRequest.;T:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[
I"errors;TI"RW;T:publicFI"lib/rack/mock.rb;T[
I"original_headers;TI"R;T;F@[[[[I"
class;T[[;[[I"new;T@[:protected[[:private[[I"
instance;T[[;[	[I"=~;T@[I"	body;F@[I"empty?;F@[I"
match;F@[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockResponse/errors-i.ri000064400000000436150402106550020171 0ustar00U:RDoc::Attr[iI"errors:ETI"Rack::MockResponse#errors;TI"RW;T:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"Errors;T:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::MockResponse;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockResponse/empty%3f-i.ri000064400000000367150402106550020314 0ustar00U:RDoc::AnyMethod[iI"empty?:EFI"Rack::MockResponse#empty?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"MockResponse;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockResponse/match-i.ri000064400000000372150402106550017750 0ustar00U:RDoc::AnyMethod[iI"
match:EFI"Rack::MockResponse#match;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(other);T@FI"MockResponse;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockResponse/original_headers-i.ri000064400000000462150402106550022153 0ustar00U:RDoc::Attr[iI"original_headers:ETI"(Rack::MockResponse#original_headers;TI"R;T:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"Headers;T:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::MockResponse;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockResponse/new-c.ri000064400000000440150402106550017433 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::MockResponse::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"5(status, headers, body, errors=StringIO.new(""));T@TI"MockResponse;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockResponse/body-i.ri000064400000000363150402106550017611 0ustar00U:RDoc::AnyMethod[iI"	body:EFI"Rack::MockResponse#body;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@TI"MockResponse;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/UploadedFile/local_path-i.ri000064400000000516150402106560022671 0ustar00U:RDoc::AnyMethod[iI"local_path:ETI"-Rack::Multipart::UploadedFile#local_path;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"(lib/rack/multipart/uploaded_file.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"UploadedFile;TcRDoc::NormalClass0[I""Rack::Multipart::UploadedFile;TFI"	path;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/UploadedFile/respond_to%3f-i.ri000064400000000444150402106560023235 0ustar00U:RDoc::AnyMethod[iI"respond_to?:EFI".Rack::Multipart::UploadedFile#respond_to?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"(lib/rack/multipart/uploaded_file.rb;T:0@omit_headings_from_table_of_contents_below000[I"(*args);T@TI"UploadedFile;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/UploadedFile/path-i.ri000064400000000463150402106560021520 0ustar00U:RDoc::AnyMethod[iI"	path:EFI"'Rack::Multipart::UploadedFile#path;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"(lib/rack/multipart/uploaded_file.rb;T:0@omit_headings_from_table_of_contents_below000[[I"local_path;To;;	[;
@;0I"();T@FI"UploadedFile;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/UploadedFile/new-c.ri000064400000000501150402106560021340 0ustar00U:RDoc::AnyMethod[iI"new:ETI"'Rack::Multipart::UploadedFile::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"(lib/rack/multipart/uploaded_file.rb;T:0@omit_headings_from_table_of_contents_below000[I"8(path, content_type = "text/plain", binary = false);T@FI"UploadedFile;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/UploadedFile/cdesc-UploadedFile.ri000064400000001155150402106560023751 0ustar00U:RDoc::NormalClass[iI"UploadedFile:ETI""Rack::Multipart::UploadedFile;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"(lib/rack/multipart/uploaded_file.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[
I"content_type;TI"RW;T:publicFI"(lib/rack/multipart/uploaded_file.rb;T[
I"original_filename;TI"R;T;F@[[[[I"
class;T[[;[[I"new;T@[:protected[[:private[[I"
instance;T[[;[[I"local_path;T@[I"	path;F@[I"respond_to?;F@[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Multipart;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/UploadedFile/original_filename-i.ri000064400000000624150402106560024227 0ustar00U:RDoc::Attr[iI"original_filename:ETI"4Rack::Multipart::UploadedFile#original_filename;TI"R;T:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"CThe filename, *not* including the path, of the "uploaded" file;T:
@fileI"(lib/rack/multipart/uploaded_file.rb;T:0@omit_headings_from_table_of_contents_below0F@I""Rack::Multipart::UploadedFile;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/UploadedFile/content_type-i.ri000064400000000564150402106560023301 0ustar00U:RDoc::Attr[iI"content_type:ETI"/Rack::Multipart::UploadedFile#content_type;TI"RW;T:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I",The content type of the "uploaded" file;T:
@fileI"(lib/rack/multipart/uploaded_file.rb;T:0@omit_headings_from_table_of_contents_below0F@I""Rack::Multipart::UploadedFile;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/parse_multipart-c.ri000064400000000416150402106560021432 0ustar00U:RDoc::AnyMethod[iI"parse_multipart:EFI"%Rack::Multipart::parse_multipart;TT:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/multipart.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Multipart;FcRDoc::NormalModule00gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/MultipartPartLimitError/cdesc-MultipartPartLimitError.ri000064400000000711150402106560030437 0ustar00lib64/rubyU:RDoc::NormalClass[iI"MultipartPartLimitError:ETI"-Rack::Multipart::MultipartPartLimitError;TI"Errno::EMFILE;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Multipart;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Generator/new-c.ri000064400000000432150402106560020734 0ustar00U:RDoc::AnyMethod[iI"new:ETI"$Rack::Multipart::Generator::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/multipart/generator.rb;T:0@omit_headings_from_table_of_contents_below000[I"(params, first = true);T@FI"Generator;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Generator/content_for_other-i.ri000064400000000454150402106560023676 0ustar00U:RDoc::AnyMethod[iI"content_for_other:EFI"1Rack::Multipart::Generator#content_for_other;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/multipart/generator.rb;T:0@omit_headings_from_table_of_contents_below000[I"(file, name);T@FI"Generator;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Generator/cdesc-Generator.ri000064400000001125150402106560022730 0ustar00U:RDoc::NormalClass[iI"Generator:ETI"Rack::Multipart::Generator;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"$lib/rack/multipart/generator.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[I"new;TI"$lib/rack/multipart/generator.rb;T[:protected[[:private[[I"
instance;T[[;[[I"	dump;F@[;[[;
[	[I"content_for_other;F@[I"content_for_tempfile;F@[I"flattened_params;F@[I"multipart?;F@[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Multipart;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Generator/multipart%3f-i.ri000064400000000424150402106560022471 0ustar00U:RDoc::AnyMethod[iI"multipart?:EFI"*Rack::Multipart::Generator#multipart?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/multipart/generator.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Generator;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Generator/dump-i.ri000064400000000407150402106560021120 0ustar00U:RDoc::AnyMethod[iI"	dump:EFI"$Rack::Multipart::Generator#dump;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/multipart/generator.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Generator;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Generator/flattened_params-i.ri000064400000000440150402106570023462 0ustar00U:RDoc::AnyMethod[iI"flattened_params:EFI"0Rack::Multipart::Generator#flattened_params;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/multipart/generator.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Generator;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Generator/content_for_tempfile-i.ri000064400000000466150402106570024366 0ustar00U:RDoc::AnyMethod[iI"content_for_tempfile:EFI"4Rack::Multipart::Generator#content_for_tempfile;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/multipart/generator.rb;T:0@omit_headings_from_table_of_contents_below000[I"(io, file, name);T@FI"Generator;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/build_multipart-c.ri000064400000000437150402106570021423 0ustar00U:RDoc::AnyMethod[iI"build_multipart:EFI"%Rack::Multipart::build_multipart;TT:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/multipart.rb;T:0@omit_headings_from_table_of_contents_below000[I"(params, first = true);T@FI"Multipart;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/cdesc-Multipart.ri000064400000003730150402106570021042 0ustar00U:RDoc::NormalModule[iI"Multipart:EFI"Rack::Multipart;T0o:RDoc::Markup::Document:@parts[	o;;[o:RDoc::Markup::Paragraph;[I"5A multipart form data parser, adapted from IOWA.;To:RDoc::Markup::BlankLineo;	;[I"<Usually, Rack::Request#POST takes care of calling this.;T:
@fileI"lib/rack/multipart.rb;T:0@omit_headings_from_table_of_contents_below0o;;[;I"$lib/rack/multipart/generator.rb;T;0o;;[;I"!lib/rack/multipart/parser.rb;T;0o;;[;I"(lib/rack/multipart/uploaded_file.rb;T;0;0;0[[U:RDoc::Constant[iI"EOL;FI"Rack::Multipart::EOL;T00o;;[;@;0@@cRDoc::NormalModule0U;
[iI"MULTIPART_BOUNDARY;FI"(Rack::Multipart::MULTIPART_BOUNDARY;T00o;;[;@;0@@@&0U;
[iI"MULTIPART;FI"Rack::Multipart::MULTIPART;T00o;;[;@;0@@@&0U;
[iI"
TOKEN;FI"Rack::Multipart::TOKEN;T00o;;[;@;0@@@&0U;
[iI"CONDISP;FI"Rack::Multipart::CONDISP;T00o;;[;@;0@@@&0U;
[iI"
DISPPARM;FI"Rack::Multipart::DISPPARM;T00o;;[;@;0@@@&0U;
[iI"RFC2183;FI"Rack::Multipart::RFC2183;T00o;;[;@;0@@@&0U;
[iI"BROKEN_QUOTED;FI"#Rack::Multipart::BROKEN_QUOTED;T00o;;[;@;0@@@&0U;
[iI"BROKEN_UNQUOTED;FI"%Rack::Multipart::BROKEN_UNQUOTED;T00o;;[;@;0@@@&0U;
[iI"MULTIPART_CONTENT_TYPE;FI",Rack::Multipart::MULTIPART_CONTENT_TYPE;T00o;;[;@;0@@@&0U;
[iI""MULTIPART_CONTENT_DISPOSITION;FI"3Rack::Multipart::MULTIPART_CONTENT_DISPOSITION;T00o;;[;@;0@@@&0U;
[iI"MULTIPART_CONTENT_ID;FI"*Rack::Multipart::MULTIPART_CONTENT_ID;T00o;;[;@;0@@@&0[[[I"
class;T[[:public[[:protected[[:private[[I"build_multipart;FI"lib/rack/multipart.rb;T[I"parse_multipart;F@v[I"
instance;T[[;[[;[[;[[[U:RDoc::Context::Section[i0o;;[;0;0[	I"lib/rack/multipart.rb;TI"$lib/rack/multipart/generator.rb;TI"!lib/rack/multipart/parser.rb;TI"(lib/rack/multipart/uploaded_file.rb;TI"	Rack;F@&lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Parser/get_data-i.ri000064400000000471150402106570021233 0ustar00U:RDoc::AnyMethod[iI"
get_data:EFI"%Rack::Multipart::Parser#get_data;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below00I"	data;T[I"/(filename, body, content_type, name, head);T@FI"Parser;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Parser/rx-i.ri000064400000000373150402106570020115 0ustar00U:RDoc::AnyMethod[iI"rx:EFI"Rack::Multipart::Parser#rx;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Parser;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Parser/full_boundary-i.ri000064400000000421150402106570022323 0ustar00U:RDoc::AnyMethod[iI"full_boundary:EFI"*Rack::Multipart::Parser#full_boundary;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Parser;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Parser/new-c.ri000064400000000461150402106570020245 0ustar00U:RDoc::AnyMethod[iI"new:ETI"!Rack::Multipart::Parser::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I";(boundary, io, content_length, env, tempfile, bufsize);T@FI"Parser;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Parser/parse-i.ri000064400000000400150402106570020565 0ustar00U:RDoc::AnyMethod[iI"
parse:EFI""Rack::Multipart::Parser#parse;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Parser;TcRDoc::NormalClass00ri/Rack/Multipart/Parser/get_current_head_and_filename_and_content_type_and_name_and_body-i.ri000064400000000567150402106570034474 0ustar00lib64/ruby/gems/2.2.0/doc/rack-1.6.4U:RDoc::AnyMethod[iI"Eget_current_head_and_filename_and_content_type_and_name_and_body:EFI"]Rack::Multipart::Parser#get_current_head_and_filename_and_content_type_and_name_and_body;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Parser;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Parser/scrub_filename-i.ri000064400000000433150402106570022437 0ustar00U:RDoc::AnyMethod[iI"scrub_filename:EFI"+Rack::Multipart::Parser#scrub_filename;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"(filename);T@FI"Parser;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Parser/create-c.ri000064400000000406150402106570020716 0ustar00U:RDoc::AnyMethod[iI"create:EFI"$Rack::Multipart::Parser::create;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Parser;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Parser/fast_forward_to_first_boundary-i.ri000064400000000463150402106570025761 0ustar00U:RDoc::AnyMethod[iI"#fast_forward_to_first_boundary:EFI";Rack::Multipart::Parser#fast_forward_to_first_boundary;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Parser;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Parser/tag_multipart_encoding-i.ri000064400000000505150402106570024203 0ustar00U:RDoc::AnyMethod[iI"tag_multipart_encoding:EFI"3Rack::Multipart::Parser#tag_multipart_encoding;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I")(filename, content_type, name, body);T@FI"Parser;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Parser/cdesc-Parser.ri000064400000002136150402106570021550 0ustar00U:RDoc::NormalClass[iI"Parser:ETI"Rack::Multipart::Parser;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[	U:RDoc::Constant[iI"BUFSIZE;FI"%Rack::Multipart::Parser::BUFSIZE;T00o;;[;	@;
0@@cRDoc::NormalClass0U;[iI"
DUMMY;FI"#Rack::Multipart::Parser::DUMMY;T00o;;[;	@;
0@@@0U;[iI"CHARSET;FI"%Rack::Multipart::Parser::CHARSET;T00o;;[;	@;
0@@@0U;[iI"TEXT_PLAIN;FI"(Rack::Multipart::Parser::TEXT_PLAIN;T00o;;[;	@;
0@@@0[[[I"
class;T[[:public[[I"create;FI"!lib/rack/multipart/parser.rb;T[I"new;T@3[:protected[[:private[[I"
instance;T[[;[[I"
parse;F@3[;
[[;[
[I"#fast_forward_to_first_boundary;F@3[I"full_boundary;F@3[I"Eget_current_head_and_filename_and_content_type_and_name_and_body;F@3[I"
get_data;F@3[I"get_filename;F@3[I"rx;F@3[I"scrub_filename;F@3[I"tag_multipart_encoding;F@3[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Multipart;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Multipart/Parser/get_filename-i.ri000064400000000423150402106570022077 0ustar00U:RDoc::AnyMethod[iI"get_filename:EFI")Rack::Multipart::Parser#get_filename;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/multipart/parser.rb;T:0@omit_headings_from_table_of_contents_below000[I"(head);T@FI"Parser;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Logger/new-c.ri000064400000000403150402106570016243 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Logger::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/logger.rb;T:0@omit_headings_from_table_of_contents_below000[I""(app, level = ::Logger::INFO);T@FI"Logger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Logger/cdesc-Logger.ri000064400000001014150402106570017527 0ustar00U:RDoc::NormalClass[iI"Logger:ETI"Rack::Logger;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"7Sets up rack.logger to write to rack.errors stream;T:
@fileI"lib/rack/logger.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/logger.rb;T[:protected[[:private[[I"
instance;T[[;[[I"	call;F@[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Logger/call-i.ri000064400000000354150402106570016400 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Logger#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/logger.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Logger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ShowExceptions/accepts_html%3f-i.ri000064400000000427150402106570022175 0ustar00U:RDoc::AnyMethod[iI"accepts_html?:EFI"'Rack::ShowExceptions#accepts_html?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/showexceptions.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ShowExceptions;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ShowExceptions/prefers_plaintext%3f-i.ri000064400000000440150402106570023260 0ustar00U:RDoc::AnyMethod[iI"prefers_plaintext?:EFI",Rack::ShowExceptions#prefers_plaintext?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/showexceptions.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ShowExceptions;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ShowExceptions/dump_exception-i.ri000064400000000436150402106570022254 0ustar00U:RDoc::AnyMethod[iI"dump_exception:EFI"(Rack::ShowExceptions#dump_exception;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/showexceptions.rb;T:0@omit_headings_from_table_of_contents_below000[I"(exception);T@FI"ShowExceptions;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ShowExceptions/new-c.ri000064400000000403150402106570020006 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::ShowExceptions::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/showexceptions.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"ShowExceptions;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ShowExceptions/pretty-i.ri000064400000000423150402106600020546 0ustar00U:RDoc::AnyMethod[iI"pretty:EFI" Rack::ShowExceptions#pretty;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/showexceptions.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, exception);T@FI"ShowExceptions;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ShowExceptions/cdesc-ShowExceptions.ri000064400000002071150402106600023033 0ustar00U:RDoc::NormalClass[iI"ShowExceptions:ETI"Rack::ShowExceptions;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[	I"HRack::ShowExceptions catches all exceptions raised from the app it ;TI"Awraps.  It shows a useful backtrace with the sourcefile and ;TI"Cclickable context, the whole Rack environment and the request ;TI"
data.;To:RDoc::Markup::BlankLineo;	;[I"EBe careful when you use this on public-facing sites as it could ;TI"-reveal information helpful to attackers.;T:
@fileI"lib/rack/showexceptions.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[U:RDoc::Constant[iI"CONTEXT;FI""Rack::ShowExceptions::CONTEXT;T00o;;[;@;0@@cRDoc::NormalClass0[[[I"
class;T[[:public[[I"new;TI"lib/rack/showexceptions.rb;T[:protected[[:private[[I"
instance;T[[;[	[I"	call;F@,[I"dump_exception;F@,[I"prefers_plaintext?;F@,[I"pretty;F@,[;[[;[[I"accepts_html?;F@,[[U:RDoc::Context::Section[i0o;;[;0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ShowExceptions/call-i.ri000064400000000404150402106600020131 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::ShowExceptions#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/showexceptions.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ShowExceptions;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/POST-i.ri000064400000000704150402106600016454 0ustar00U:RDoc::AnyMethod[iI"	POST:EFI"Rack::Request#POST;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"3Returns the data received in the request body.;To:RDoc::Markup::BlankLineo;
;	[I"DThis method support both application/x-www-form-urlencoded and ;TI"multipart/form-data.;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/delete%3f-i.ri000064400000000540150402106600017425 0ustar00U:RDoc::AnyMethod[iI"delete?:EFI"Rack::Request#delete?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"MChecks the HTTP request method (or verb) to see if it was of type DELETE;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/ssl%3f-i.ri000064400000000354150402106600016767 0ustar00U:RDoc::AnyMethod[iI"	ssl?:EFI"Rack::Request#ssl?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/accept_encoding-i.ri000064400000000402150402106600020767 0ustar00U:RDoc::AnyMethod[iI"accept_encoding:EFI""Rack::Request#accept_encoding;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/query_string-i.ri000064400000000374150402106600020425 0ustar00U:RDoc::AnyMethod[iI"query_string:EFI"Rack::Request#query_string;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/path-i.ri000064400000000354150402106600016624 0ustar00U:RDoc::AnyMethod[iI"	path:EFI"Rack::Request#path;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/path_info%3d-i.ri000064400000000371150402106600020132 0ustar00U:RDoc::AnyMethod[iI"path_info=:EFI"Rack::Request#path_info=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/referer-i.ri000064400000000521150402106600017316 0ustar00U:RDoc::AnyMethod[iI"referer:EFI"Rack::Request#referer;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"the referer of the client;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[[I"
referrer;Fo;;	[;@;0I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/scheme-i.ri000064400000000360150402106600017131 0ustar00U:RDoc::AnyMethod[iI"scheme:EFI"Rack::Request#scheme;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/unlink%3f-i.ri000064400000000540150402106600017463 0ustar00U:RDoc::AnyMethod[iI"unlink?:EFI"Rack::Request#unlink?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"MChecks the HTTP request method (or verb) to see if it was of type UNLINK;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/GET-i.ri000064400000000476150402106600016314 0ustar00U:RDoc::AnyMethod[iI"GET:EFI"Rack::Request#GET;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"3Returns the data received in the query string.;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/host-i.ri000064400000000354150402106600016645 0ustar00U:RDoc::AnyMethod[iI"	host:EFI"Rack::Request#host;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/trace%3f-i.ri000064400000000535150402106600017265 0ustar00U:RDoc::AnyMethod[iI"trace?:EFI"Rack::Request#trace?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"LChecks the HTTP request method (or verb) to see if it was of type TRACE;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/params-i.ri000064400000000746150402106600017160 0ustar00U:RDoc::AnyMethod[iI"params:EFI"Rack::Request#params;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"$The union of GET and POST data.;To:RDoc::Markup::BlankLineo;
;	[I"�Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params.;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/fullpath-i.ri000064400000000364150402106600017510 0ustar00U:RDoc::AnyMethod[iI"
fullpath:EFI"Rack::Request#fullpath;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/post%3f-i.ri000064400000000532150402106600017151 0ustar00U:RDoc::AnyMethod[iI"
post?:EFI"Rack::Request#post?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"KChecks the HTTP request method (or verb) to see if it was of type POST;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/content_charset-i.ri000064400000001044150402106600021050 0ustar00U:RDoc::AnyMethod[iI"content_charset:EFI""Rack::Request#content_charset;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[	I"EThe character set of the request body if a "charset" media type ;TI"Eparameter was given, or nil if no "charset" was specified. Note ;TI"Dthat, per RFC2616, text/* media types that specify no explicit ;TI"-charset are to be considered ISO-8859-1.;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/new-c.ri000064400000000356150402106600016455 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Request::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/media_type-i.ri000064400000001220150402106600020001 0ustar00U:RDoc::AnyMethod[iI"media_type:EFI"Rack::Request#media_type;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"FThe media type (type/subtype) portion of the CONTENT_TYPE header ;TI"Cwithout any media type parameters. e.g., when CONTENT_TYPE is ;TI"@"text/plain;charset=utf-8", the media-type is "text/plain".;To:RDoc::Markup::BlankLineo;
;	[I"BFor more information on the use of media types in HTTP, see: ;TI"Ahttp://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/parse_query-i.ri000064400000000377150402106600020234 0ustar00U:RDoc::AnyMethod[iI"parse_query:EFI"Rack::Request#parse_query;TF:protectedo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"	(qs);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/parse_http_accept_header-i.ri000064400000000435150402106600022670 0ustar00U:RDoc::AnyMethod[iI"parse_http_accept_header:EFI"+Rack::Request#parse_http_accept_header;TF:protectedo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(header);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/host_with_port-i.ri000064400000000400150402106610020735 0ustar00U:RDoc::AnyMethod[iI"host_with_port:EFI"!Rack::Request#host_with_port;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/user_agent-i.ri000064400000000370150402106610020023 0ustar00U:RDoc::AnyMethod[iI"user_agent:EFI"Rack::Request#user_agent;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/xhr%3f-i.ri000064400000000354150402106610016770 0ustar00U:RDoc::AnyMethod[iI"	xhr?:EFI"Rack::Request#xhr?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/port-i.ri000064400000000354150402106610016655 0ustar00U:RDoc::AnyMethod[iI"	port:EFI"Rack::Request#port;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/get%3f-i.ri000064400000000527150402106610016750 0ustar00U:RDoc::AnyMethod[iI"	get?:EFI"Rack::Request#get?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"JChecks the HTTP request method (or verb) to see if it was of type GET;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/request_method-i.ri000064400000000400150402106610020711 0ustar00U:RDoc::AnyMethod[iI"request_method:EFI"!Rack::Request#request_method;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/content_length-i.ri000064400000000400150402106610020674 0ustar00U:RDoc::AnyMethod[iI"content_length:EFI"!Rack::Request#content_length;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/link%3f-i.ri000064400000000532150402106610017122 0ustar00U:RDoc::AnyMethod[iI"
link?:EFI"Rack::Request#link?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"KChecks the HTTP request method (or verb) to see if it was of type LINK;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/form_data%3f-i.ri000064400000001367150402106610020130 0ustar00U:RDoc::AnyMethod[iI"form_data?:EFI"Rack::Request#form_data?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[
I"GDetermine whether the request body contains form-data by checking ;TI":the request Content-Type for one of the media-types: ;TI"G"application/x-www-form-urlencoded" or "multipart/form-data". The ;TI"?list of form-data media types can be modified through the ;TI"#+FORM_DATA_MEDIA_TYPES+ array.;To:RDoc::Markup::BlankLineo;
;	[I"AA request body is also assumed to contain form-data when no ;TI"DContent-Type header is provided and the request_method is POST.;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/ip-i.ri000064400000000350150402106610016275 0ustar00U:RDoc::AnyMethod[iI"ip:EFI"Rack::Request#ip;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/session-i.ri000064400000000362150402106610017353 0ustar00U:RDoc::AnyMethod[iI"session:EFI"Rack::Request#session;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/referrer-i.ri000064400000000430150402106610017500 0ustar00U:RDoc::AnyMethod[iI"
referrer:EFI"Rack::Request#referrer;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass0[I"Rack::Request;TFI"referer;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/%5b%5d-i.ri000064400000000461150402106610016541 0ustar00U:RDoc::AnyMethod[iI"[]:EFI"Rack::Request#[];TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"%shortcut for request.params[key];T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(key);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/parse_multipart-i.ri000064400000000410150402106610021075 0ustar00U:RDoc::AnyMethod[iI"parse_multipart:EFI""Rack::Request#parse_multipart;TF:protectedo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/trusted_proxy%3f-i.ri000064400000000402150402106610021114 0ustar00U:RDoc::AnyMethod[iI"trusted_proxy?:EFI"!Rack::Request#trusted_proxy?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"	(ip);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/env-i.ri000064400000000451150402106610016457 0ustar00U:RDoc::Attr[iI"env:ETI"Rack::Request#env;TI"R;T:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"$The environment of the request.;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Request;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/patch%3f-i.ri000064400000000535150402106610017267 0ustar00U:RDoc::AnyMethod[iI"patch?:EFI"Rack::Request#patch?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"LChecks the HTTP request method (or verb) to see if it was of type PATCH;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/update_param-i.ri000064400000001134150402106610020330 0ustar00U:RDoc::AnyMethod[iI"update_param:EFI"Rack::Request#update_param;TF:publico:RDoc::Markup::Document:@parts[
o:RDoc::Markup::Paragraph;	[I"TDestructively update a parameter, whether it's in GET and/or POST. Returns nil.;To:RDoc::Markup::BlankLineo;
;	[I"�The parameter is updated wherever it was previous defined, so GET, POST, or both. If it wasn't previously defined, it's inserted into GET.;T@o;
;	[I"&env['rack.input'] is not touched.;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"(k, v);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/options%3f-i.ri000064400000000543150402106610017662 0ustar00U:RDoc::AnyMethod[iI"
options?:EFI"Rack::Request#options?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"NChecks the HTTP request method (or verb) to see if it was of type OPTIONS;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/session_options-i.ri000064400000000402150402106610021121 0ustar00U:RDoc::AnyMethod[iI"session_options:EFI""Rack::Request#session_options;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/reject_trusted_ip_addresses-i.ri000064400000000451150402106610023442 0ustar00U:RDoc::AnyMethod[iI" reject_trusted_ip_addresses:EFI".Rack::Request#reject_trusted_ip_addresses;TF:protectedo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"(ip_addresses);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/script_name-i.ri000064400000000372150402106610020175 0ustar00U:RDoc::AnyMethod[iI"script_name:EFI"Rack::Request#script_name;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/head%3f-i.ri000064400000000532150402106610017066 0ustar00U:RDoc::AnyMethod[iI"
head?:EFI"Rack::Request#head?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"KChecks the HTTP request method (or verb) to see if it was of type HEAD;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/media_type_params-i.ri000064400000001173150402106610021354 0ustar00U:RDoc::AnyMethod[iI"media_type_params:EFI"$Rack::Request#media_type_params;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[	I"FThe media type parameters provided in CONTENT_TYPE as a Hash, or ;TI"Dan empty Hash if no CONTENT_TYPE or media-type parameters were ;TI"Kprovided.  e.g., when the CONTENT_TYPE is "text/plain;charset=utf-8", ;TI"2this method responds with the following Hash:;To:RDoc::Markup::Verbatim;	[I"{ 'charset' => 'utf-8' };T:@format0:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/accept_language-i.ri000064400000000402150402106610020765 0ustar00U:RDoc::AnyMethod[iI"accept_language:EFI""Rack::Request#accept_language;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/path_info-i.ri000064400000000366150402106610017643 0ustar00U:RDoc::AnyMethod[iI"path_info:EFI"Rack::Request#path_info;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/base_url-i.ri000064400000000364150402106610017466 0ustar00U:RDoc::AnyMethod[iI"
base_url:EFI"Rack::Request#base_url;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/content_type-i.ri000064400000000374150402106610020406 0ustar00U:RDoc::AnyMethod[iI"content_type:EFI"Rack::Request#content_type;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/body-i.ri000064400000000354150402106610016626 0ustar00U:RDoc::AnyMethod[iI"	body:EFI"Rack::Request#body;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/cookies-i.ri000064400000000362150402106610017324 0ustar00U:RDoc::AnyMethod[iI"cookies:EFI"Rack::Request#cookies;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/cdesc-Request.ri000064400000005460150402106610020155 0ustar00U:RDoc::NormalClass[iI"Request:ETI"Rack::Request;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"=Rack::Request provides a convenient interface to a Rack ;TI"Henvironment.  It is stateless, the environment +env+ passed to the ;TI"+constructor will be directly modified.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim;[I""req = Rack::Request.new(env)
;TI"req.post?
;TI"req.params["data"];T:@format0:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[
I"env;TI"R;T:publicFI"lib/rack/request.rb;T[U:RDoc::Constant[iI"FORM_DATA_MEDIA_TYPES;FI")Rack::Request::FORM_DATA_MEDIA_TYPES;T00o;;[o;	;[I"EThe set of form-data media-types. Requests that do not indicate ;TI"Gone of the media types presents in this list will not be eligible ;TI"#for form-data / param parsing.;T;
@;0@@cRDoc::NormalClass0U;[iI"PARSEABLE_DATA_MEDIA_TYPES;FI".Rack::Request::PARSEABLE_DATA_MEDIA_TYPES;T00o;;[o;	;[I";The set of media-types. Requests that do not indicate ;TI"Gone of the media types presents in this list will not be eligible ;TI"Bfor param parsing like soap attachments or generic multiparts;T;
@;0@@@+0U;[iI"DEFAULT_PORTS;FI"!Rack::Request::DEFAULT_PORTS;T00o;;[o;	;[I"FDefault ports depending on scheme. Used to decide whether or not ;TI",to include the port in a generated URI.;T;
@;0@@@+0[[[I"
class;T[[;[[I"new;T@[:protected[[:private[[I"
instance;T[[;[:[I"GET;F@[I"	POST;F@[I"[];F@[I"[]=;F@[I"accept_encoding;F@[I"accept_language;F@[I"
base_url;F@[I"	body;F@[I"content_charset;F@[I"content_length;F@[I"content_type;F@[I"cookies;F@[I"delete?;F@[I"delete_param;F@[I"form_data?;F@[I"
fullpath;F@[I"	get?;F@[I"
head?;F@[I"	host;F@[I"host_with_port;F@[I"ip;F@[I"
link?;F@[I"logger;F@[I"media_type;F@[I"media_type_params;F@[I"
options?;F@[I"params;F@[I"parseable_data?;F@[I"patch?;F@[I"	path;F@[I"path_info;F@[I"path_info=;F@[I"	port;F@[I"
post?;F@[I"	put?;F@[I"query_string;F@[I"referer;F@[I"
referrer;F@[I"request_method;F@[I"scheme;F@[I"script_name;F@[I"script_name=;F@[I"session;F@[I"session_options;F@[I"	ssl?;F@[I"trace?;F@[I"trusted_proxy?;F@[I"unlink?;F@[I"update_param;F@[I"url;F@[I"user_agent;F@[I"values_at;F@[I"	xhr?;F@[;[
[I"parse_http_accept_header;F@[I"parse_multipart;F@[I"parse_query;F@[I" reject_trusted_ip_addresses;F@[I"split_ip_addresses;F@[;[[I"strip_doublequotes;F@[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/put%3f-i.ri000064400000000527150402106610017001 0ustar00U:RDoc::AnyMethod[iI"	put?:EFI"Rack::Request#put?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"JChecks the HTTP request method (or verb) to see if it was of type PUT;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/strip_doublequotes-i.ri000064400000000412150402106610021620 0ustar00U:RDoc::AnyMethod[iI"strip_doublequotes:EFI"%Rack::Request#strip_doublequotes;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/parseable_data%3f-i.ri000064400000000654150402106610021121 0ustar00U:RDoc::AnyMethod[iI"parseable_data?:EFI""Rack::Request#parseable_data?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"BDetermine whether the request body contains data by checking ;TI"Ethe request media_type against registered parse-data media-types;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/script_name%3d-i.ri000064400000000375150402106610020474 0ustar00U:RDoc::AnyMethod[iI"script_name=:EFI"Rack::Request#script_name=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/split_ip_addresses-i.ri000064400000000427150402106610021552 0ustar00U:RDoc::AnyMethod[iI"split_ip_addresses:EFI"%Rack::Request#split_ip_addresses;TF:protectedo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"(ip_addresses);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/delete_param-i.ri000064400000001122150402106610020305 0ustar00U:RDoc::AnyMethod[iI"delete_param:EFI"Rack::Request#delete_param;TF:publico:RDoc::Markup::Document:@parts[
o:RDoc::Markup::Paragraph;	[I"oDestructively delete a parameter, whether it's in GET or POST. Returns the value of the deleted parameter.;To:RDoc::Markup::BlankLineo;
;	[I"nIf the parameter is in both GET and POST, the POST value takes precedence since that's how #params works.;T@o;
;	[I"&env['rack.input'] is not touched.;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"(k);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/values_at-i.ri000064400000000464150402106610017656 0ustar00U:RDoc::AnyMethod[iI"values_at:EFI"Rack::Request#values_at;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"like Hash#values_at;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"(*keys);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/url-i.ri000064400000000521150402106610016467 0ustar00U:RDoc::AnyMethod[iI"url:EFI"Rack::Request#url;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"FTries to return a remake of the original request URL as a string.;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/logger-i.ri000064400000000360150402106610017145 0ustar00U:RDoc::AnyMethod[iI"logger:EFI"Rack::Request#logger;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Request/%5b%5d%3d-i.ri000064400000000763150402106620017043 0ustar00U:RDoc::AnyMethod[iI"[]=:EFI"Rack::Request#[]=;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"-shortcut for request.params[key] = value;To:RDoc::Markup::BlankLineo;
;	[I"�Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params.;T:
@fileI"lib/rack/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"(key, value);T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Lock/new-c.ri000064400000000370150402106620015713 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Lock::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/lock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, mutex = Mutex.new);T@FI"	Lock;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Lock/cdesc-Lock.ri000064400000001251150402106620016650 0ustar00U:RDoc::NormalClass[iI"	Lock:ETI"Rack::Lock;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"JRack::Lock locks every request inside a mutex, so that every request ;TI"0will effectively be executed synchronously.;T:
@fileI"lib/rack/lock.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[U:RDoc::Constant[iI"	FLAG;FI"Rack::Lock::FLAG;T00o;;[;
@;0@@cRDoc::NormalClass0[[[I"
class;T[[:public[[I"new;TI"lib/rack/lock.rb;T[:protected[[:private[[I"
instance;T[[;
[[I"	call;F@%[;[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Lock/call-i.ri000064400000000346150402106620016046 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Lock#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/lock.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"	Lock;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/pick-c.ri000064400000001035150402106620016534 0ustar00U:RDoc::AnyMethod[iI"	pick:EFI"Rack::Handler::pick;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"KSelect first available Rack handler given an `Array` of server names. ;TI"0Raises `LoadError` if no handler was found.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim;	[I" > pick ['thin', 'webrick']
;TI"=> Rack::Handler::WEBrick;T:@format0:
@fileI"lib/rack/handler.rb;T:0@omit_headings_from_table_of_contents_below000[I"(server_names);T@FI"Handler;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/CGI/send_body-c.ri000064400000000400150402106620020151 0ustar00U:RDoc::AnyMethod[iI"send_body:EFI""Rack::Handler::CGI::send_body;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/cgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"(body);T@FI"CGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/CGI/cdesc-CGI.ri000064400000000766150402106620017463 0ustar00U:RDoc::NormalClass[iI"CGI:ETI"Rack::Handler::CGI;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/handler/cgi.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[	[I"run;FI"lib/rack/handler/cgi.rb;T[I"send_body;F@[I"send_headers;F@[I"
serve;F@[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Handler;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/CGI/send_headers-c.ri000064400000000421150402106620020632 0ustar00U:RDoc::AnyMethod[iI"send_headers:EFI"%Rack::Handler::CGI::send_headers;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/cgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"(status, headers);T@FI"CGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/CGI/run-c.ri000064400000000400150402106620017007 0ustar00U:RDoc::AnyMethod[iI"run:EFI"Rack::Handler::CGI::run;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/cgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, options=nil);T@FI"CGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/CGI/serve-c.ri000064400000000367150402106620017343 0ustar00U:RDoc::AnyMethod[iI"
serve:EFI"Rack::Handler::CGI::serve;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/cgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"CGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/WEBrick/shutdown-c.ri000064400000000406150402106620020750 0ustar00U:RDoc::AnyMethod[iI"
shutdown:EFI"%Rack::Handler::WEBrick::shutdown;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/webrick.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"WEBrick;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/WEBrick/new-c.ri000064400000000407150402106620017667 0ustar00U:RDoc::AnyMethod[iI"new:ETI" Rack::Handler::WEBrick::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/webrick.rb;T:0@omit_headings_from_table_of_contents_below000[I"(server, app);T@TI"WEBrick;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/WEBrick/valid_options-c.ri000064400000000420150402106620021743 0ustar00U:RDoc::AnyMethod[iI"valid_options:EFI"*Rack::Handler::WEBrick::valid_options;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/webrick.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"WEBrick;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/WEBrick/run-c.ri000064400000000427150402106620017704 0ustar00U:RDoc::AnyMethod[iI"run:EFI" Rack::Handler::WEBrick::run;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/webrick.rb;T:0@omit_headings_from_table_of_contents_below00I"server;T[I"(app, options={});T@FI"WEBrick;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/WEBrick/service-i.ri000064400000000413150402106620020541 0ustar00U:RDoc::AnyMethod[iI"service:EFI"#Rack::Handler::WEBrick#service;TF:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/webrick.rb;T:0@omit_headings_from_table_of_contents_below000[I"(req, res);T@FI"WEBrick;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/WEBrick/cdesc-WEBrick.ri000064400000001065150402106620021224 0ustar00U:RDoc::NormalClass[iI"WEBrick:ETI"Rack::Handler::WEBrick;TI"*WEBrick::HTTPServlet::AbstractServlet;To:RDoc::Markup::Document:@parts[o;;[:
@fileI" lib/rack/handler/webrick.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[	[I"new;TI" lib/rack/handler/webrick.rb;T[I"run;F@[I"
shutdown;F@[I"valid_options;F@[:protected[[:private[[I"
instance;T[[;[[I"service;F@[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Handler;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/Mongrel/cdesc-Mongrel.ri000064400000001021150402106620021446 0ustar00U:RDoc::NormalClass[iI"Mongrel:ETI"Rack::Handler::Mongrel;TI"Mongrel::HttpHandler;To:RDoc::Markup::Document:@parts[o;;[:
@fileI" lib/rack/handler/mongrel.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[I"new;TI" lib/rack/handler/mongrel.rb;T[I"run;F@[I"valid_options;F@[:protected[[:private[[I"
instance;T[[;[[I"process;F@[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Handler;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/Mongrel/new-c.ri000064400000000377150402106620020012 0ustar00U:RDoc::AnyMethod[iI"new:ETI" Rack::Handler::Mongrel::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/mongrel.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"Mongrel;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/Mongrel/valid_options-c.ri000064400000000420150402106620022060 0ustar00U:RDoc::AnyMethod[iI"valid_options:EFI"*Rack::Handler::Mongrel::valid_options;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/mongrel.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Mongrel;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/Mongrel/run-c.ri000064400000000427150402106620020021 0ustar00U:RDoc::AnyMethod[iI"run:EFI" Rack::Handler::Mongrel::run;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/mongrel.rb;T:0@omit_headings_from_table_of_contents_below00I"server;T[I"(app, options={});T@FI"Mongrel;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/Mongrel/process-i.ri000064400000000424150402106620020676 0ustar00U:RDoc::AnyMethod[iI"process:EFI"#Rack::Handler::Mongrel#process;TF:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/mongrel.rb;T:0@omit_headings_from_table_of_contents_below000[I"(request, response);T@FI"Mongrel;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/SwiftipliedMongrel/cdesc-SwiftipliedMongrel.ri000064400000000717150402106630026072 0ustar00U:RDoc::NormalClass[iI"SwiftipliedMongrel:ETI"&Rack::Handler::SwiftipliedMongrel;TI"Rack::Handler::Mongrel;To:RDoc::Markup::Document:@parts[o;;[:
@fileI",lib/rack/handler/swiftiplied_mongrel.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Handler;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/default-c.ri000064400000000400150402106630017226 0ustar00U:RDoc::AnyMethod[iI"default:EFI"Rack::Handler::default;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler.rb;T:0@omit_headings_from_table_of_contents_below000[I"(options = {});T@FI"Handler;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/Thin/cdesc-Thin.ri000064400000000727150402106630020261 0ustar00U:RDoc::NormalClass[iI"	Thin:ETI"Rack::Handler::Thin;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/handler/thin.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[I"run;FI"lib/rack/handler/thin.rb;T[I"valid_options;F@[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Handler;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/Thin/valid_options-c.ri000064400000000407150402106630021365 0ustar00U:RDoc::AnyMethod[iI"valid_options:EFI"'Rack::Handler::Thin::valid_options;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/thin.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"	Thin;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/Thin/run-c.ri000064400000000416150402106630017317 0ustar00U:RDoc::AnyMethod[iI"run:EFI"Rack::Handler::Thin::run;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/thin.rb;T:0@omit_headings_from_table_of_contents_below00I"server;T[I"(app, options={});T@FI"	Thin;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/cdesc-Handler.ri000064400000002451150402106630020026 0ustar00U:RDoc::NormalModule[iI"Handler:EFI"Rack::Handler;T0o:RDoc::Markup::Document:@parts[o;;[
o:RDoc::Markup::Paragraph;[I".*Handlers* connect web servers with Rack.;To:RDoc::Markup::BlankLineo;	;[I"BRack includes Handlers for Thin, WEBrick, FastCGI, CGI, SCGI ;TI"and LiteSpeed.;T@o;	;[I"NHandlers usually are activated by calling <tt>MyHandler.run(myapp)</tt>. ;TI"EA second optional hash can be passed to include server-specific ;TI"configuration.;T:
@fileI"lib/rack/handler.rb;T:0@omit_headings_from_table_of_contents_below0o;;[;I"lib/rack/handler/cgi.rb;T;0o;;[;I"(lib/rack/handler/evented_mongrel.rb;T;0o;;[;I" lib/rack/handler/fastcgi.rb;T;0o;;[;I"lib/rack/handler/lsws.rb;T;0o;;[;I" lib/rack/handler/mongrel.rb;T;0o;;[;I"lib/rack/handler/scgi.rb;T;0o;;[;I",lib/rack/handler/swiftiplied_mongrel.rb;T;0o;;[;I"lib/rack/handler/thin.rb;T;0o;;[;I" lib/rack/handler/webrick.rb;T;0;0;0[[[[[I"
class;T[[:public[
[I"default;FI"lib/rack/handler.rb;T[I"get;F@A[I"	pick;F@A[I"
register;F@A[I"try_require;F@A[:protected[[:private[[I"
instance;T[[;
[[;[[;[[[U:RDoc::Context::Section[i0o;;[;0;0[@@@ @#@&@)@,@/@2@5I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/FastCGI/send_body-c.ri000064400000000421150402106630020773 0ustar00U:RDoc::AnyMethod[iI"send_body:EFI"&Rack::Handler::FastCGI::send_body;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/fastcgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"(out, body);T@FI"FastCGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/FastCGI/send_headers-c.ri000064400000000442150402106630021454 0ustar00U:RDoc::AnyMethod[iI"send_headers:EFI")Rack::Handler::FastCGI::send_headers;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/fastcgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"(out, status, headers);T@FI"FastCGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/FastCGI/valid_options-c.ri000064400000000420150402106630021676 0ustar00U:RDoc::AnyMethod[iI"valid_options:EFI"*Rack::Handler::FastCGI::valid_options;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/fastcgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"FastCGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/FastCGI/run-c.ri000064400000000413150402106640017633 0ustar00U:RDoc::AnyMethod[iI"run:EFI" Rack::Handler::FastCGI::run;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/fastcgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, options={});T@FI"FastCGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/FastCGI/cdesc-FastCGI.ri000064400000001036150402106640021110 0ustar00U:RDoc::NormalClass[iI"FastCGI:ETI"Rack::Handler::FastCGI;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI" lib/rack/handler/fastcgi.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[
[I"run;FI" lib/rack/handler/fastcgi.rb;T[I"send_body;F@[I"send_headers;F@[I"
serve;F@[I"valid_options;F@[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Handler;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/FastCGI/serve-c.ri000064400000000414150402106640020154 0ustar00U:RDoc::AnyMethod[iI"
serve:EFI""Rack::Handler::FastCGI::serve;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/handler/fastcgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"(request, app);T@FI"FastCGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/register-c.ri000064400000000403150402106640017432 0ustar00U:RDoc::AnyMethod[iI"
register:EFI"Rack::Handler::register;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler.rb;T:0@omit_headings_from_table_of_contents_below000[I"(server, klass);T@FI"Handler;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/LSWS/send_body-c.ri000064400000000403150402106640020344 0ustar00U:RDoc::AnyMethod[iI"send_body:EFI"#Rack::Handler::LSWS::send_body;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/lsws.rb;T:0@omit_headings_from_table_of_contents_below000[I"(body);T@FI"	LSWS;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/LSWS/send_headers-c.ri000064400000000424150402106640021025 0ustar00U:RDoc::AnyMethod[iI"send_headers:EFI"&Rack::Handler::LSWS::send_headers;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/lsws.rb;T:0@omit_headings_from_table_of_contents_below000[I"(status, headers);T@FI"	LSWS;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/LSWS/cdesc-LSWS.ri000064400000000772150402106640020036 0ustar00U:RDoc::NormalClass[iI"	LSWS:ETI"Rack::Handler::LSWS;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/handler/lsws.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[	[I"run;FI"lib/rack/handler/lsws.rb;T[I"send_body;F@[I"send_headers;F@[I"
serve;F@[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Handler;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/LSWS/run-c.ri000064400000000403150402106650017203 0ustar00U:RDoc::AnyMethod[iI"run:EFI"Rack::Handler::LSWS::run;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/lsws.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, options=nil);T@FI"	LSWS;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/LSWS/serve-c.ri000064400000000372150402106650017530 0ustar00U:RDoc::AnyMethod[iI"
serve:EFI"Rack::Handler::LSWS::serve;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/lsws.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"	LSWS;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/SCGI/process_request-i.ri000064400000000445150402106650021576 0ustar00U:RDoc::AnyMethod[iI"process_request:EFI"(Rack::Handler::SCGI#process_request;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/scgi.rb;T:0@omit_headings_from_table_of_contents_below000[I""(request, input_body, socket);T@FI"	SCGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/SCGI/new-c.ri000064400000000400150402106650017122 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Handler::SCGI::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/scgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"(settings = {});T@TI"	SCGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/SCGI/app-i.ri000064400000000366150402106650017132 0ustar00U:RDoc::Attr[iI"app:ETI"Rack::Handler::SCGI#app;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/scgi.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Handler::SCGI;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/SCGI/valid_options-c.ri000064400000000407150402106650021212 0ustar00U:RDoc::AnyMethod[iI"valid_options:EFI"'Rack::Handler::SCGI::valid_options;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/scgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"	SCGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/SCGI/cdesc-SCGI.ri000064400000001042150402106650017720 0ustar00U:RDoc::NormalClass[iI"	SCGI:ETI"Rack::Handler::SCGI;TI"SCGI::Processor;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/handler/scgi.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[
I"app;TI"RW;T:publicFI"lib/rack/handler/scgi.rb;T[[[[I"
class;T[[;[[I"new;T@[I"run;F@[I"valid_options;F@[:protected[[:private[[I"
instance;T[[;[[I"process_request;F@[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Handler;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/SCGI/run-c.ri000064400000000403150402106650017140 0ustar00U:RDoc::AnyMethod[iI"run:EFI"Rack::Handler::SCGI::run;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler/scgi.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, options=nil);T@FI"	SCGI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/get-c.ri000064400000000362150402106650016372 0ustar00U:RDoc::AnyMethod[iI"get:EFI"Rack::Handler::get;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/handler.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(server);T@FI"Handler;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/try_require-c.ri000064400000001343150402106650020165 0ustar00U:RDoc::AnyMethod[iI"try_require:EFI"Rack::Handler::try_require;TT:publico:RDoc::Markup::Document:@parts[
o:RDoc::Markup::Paragraph;	[I"LTransforms server-name constants to their canonical form as filenames, ;TI"Gthen tries to require them but silences the LoadError if not found;To:RDoc::Markup::BlankLineo;
;	[I"Naming convention:;T@o:RDoc::Markup::Verbatim;	[I"Foo # => 'foo'
;TI"FooBar # => 'foo_bar.rb'
;TI"FooBAR # => 'foobar.rb'
;TI"FOObar # => 'foobar.rb'
;TI"FOOBAR # => 'foobar.rb'
;TI"$FooBarBaz # => 'foo_bar_baz.rb';T:@format0:
@fileI"lib/rack/handler.rb;T:0@omit_headings_from_table_of_contents_below000[I"(prefix, const_name);T@FI"Handler;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Handler/EventedMongrel/cdesc-EventedMongrel.ri000064400000000703150402106660024306 0ustar00U:RDoc::NormalClass[iI"EventedMongrel:ETI""Rack::Handler::EventedMongrel;TI"Rack::Handler::Mongrel;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"(lib/rack/handler/evented_mongrel.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Handler;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Head/new-c.ri000064400000000561150402106660015672 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Head::new;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"GRack::Head returns an empty body for all HEAD requests. It leaves ;TI""all other requests unchanged.;T:
@fileI"lib/rack/head.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"	Head;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Head/cdesc-Head.ri000064400000000654150402106660016604 0ustar00U:RDoc::NormalClass[iI"	Head:ETI"Rack::Head;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/head.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/head.rb;T[:protected[[:private[[I"
instance;T[[;[[I"	call;F@[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Head/call-i.ri000064400000000346150402106660016023 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Head#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/head.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"	Head;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/select_best_encoding-c.ri000064400000000454150402106670021504 0ustar00U:RDoc::AnyMethod[iI"select_best_encoding:EFI"&Rack::Utils::select_best_encoding;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"+(available_encodings, accept_encoding);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/escape_html-i.ri000064400000000544150402106670017634 0ustar00U:RDoc::AnyMethod[iI"escape_html:EFI"Rack::Utils#escape_html;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"GEscape ampersands, brackets and quotes to their HTML/XML entities.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(string);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/escape_path-i.ri000064400000000576150402106670017631 0ustar00U:RDoc::AnyMethod[iI"escape_path:EFI"Rack::Utils#escape_path;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"MLike URI escaping, but with %20 instead of +. Strictly speaking this is ;TI"true URI escaping.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/bytesize-c.ri000064400000000366150402106670017202 0ustar00U:RDoc::AnyMethod[iI"
bytesize:EFI"Rack::Utils::bytesize;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(string);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/key_space_limit-c.ri000064400000000371150402106670020501 0ustar00U:RDoc::Attr[iI"key_space_limit:ETI"!Rack::Utils::key_space_limit;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below0T@I"Rack::Utils;TcRDoc::NormalModule0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/delete-i.ri000064400000000374150402106670020607 0ustar00U:RDoc::AnyMethod[iI"delete:EFI"#Rack::Utils::HeaderHash#delete;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(k);T@TI"HeaderHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/merge-i.ri000064400000000376150402106670020446 0ustar00U:RDoc::AnyMethod[iI"
merge:EFI""Rack::Utils::HeaderHash#merge;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(other);T@FI"HeaderHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/replace-i.ri000064400000000402150402106700020742 0ustar00U:RDoc::AnyMethod[iI"replace:EFI"$Rack::Utils::HeaderHash#replace;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(other);T@FI"HeaderHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/has_key%3f-i.ri000064400000000457150402106700021262 0ustar00U:RDoc::AnyMethod[iI"
has_key?:ETI"%Rack::Utils::HeaderHash#has_key?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(k);T@FI"HeaderHash;TcRDoc::NormalClass0[I"Rack::Utils::HeaderHash;TFI"
include?;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/new-c.ri000064400000000375150402106700020123 0ustar00U:RDoc::AnyMethod[iI"new:ETI"!Rack::Utils::HeaderHash::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(hash={});T@TI"HeaderHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/key%3f-i.ri000064400000000447150402106700020426 0ustar00U:RDoc::AnyMethod[iI"	key?:ETI"!Rack::Utils::HeaderHash#key?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(k);T@FI"HeaderHash;TcRDoc::NormalClass0[I"Rack::Utils::HeaderHash;TFI"
include?;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/include%3f-i.ri000064400000000533150402106700021255 0ustar00U:RDoc::AnyMethod[iI"
include?:EFI"%Rack::Utils::HeaderHash#include?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[[I"
has_key?;To;;	[;
@;0[I"member?;To;;	[;
@;0[I"	key?;To;;	[;
@;0I"(k);T@FI"HeaderHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/member%3f-i.ri000064400000000455150402106700021104 0ustar00U:RDoc::AnyMethod[iI"member?:ETI"$Rack::Utils::HeaderHash#member?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(k);T@FI"HeaderHash;TcRDoc::NormalClass0[I"Rack::Utils::HeaderHash;TFI"
include?;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/%5b%5d-i.ri000064400000000364150402106700020207 0ustar00U:RDoc::AnyMethod[iI"[]:EFI"Rack::Utils::HeaderHash#[];TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(k);T@TI"HeaderHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/each-i.ri000064400000000454150402106700020236 0ustar00U:RDoc::AnyMethod[iI"	each:EFI"!Rack::Utils::HeaderHash#each;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below00I"4k, respond_to?(:to_ary) ? to_ary.join("\n") : v;T[I"();T@TI"HeaderHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/to_hash-i.ri000064400000000375150402106700020765 0ustar00U:RDoc::AnyMethod[iI"to_hash:EFI"$Rack::Utils::HeaderHash#to_hash;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"HeaderHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/merge%21-i.ri000064400000000400150402106700020634 0ustar00U:RDoc::AnyMethod[iI"merge!:EFI"#Rack::Utils::HeaderHash#merge!;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(other);T@FI"HeaderHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/cdesc-HeaderHash.ri000064400000001371150402106710022163 0ustar00U:RDoc::NormalClass[iI"HeaderHash:ETI"Rack::Utils::HeaderHash;TI"	Hash;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"CA case-insensitive Hash that preserves the original case of a ;TI"header when set.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[I"new;FI"lib/rack/utils.rb;T[:protected[[:private[[I"
instance;T[[;[[I"[];F@[I"[]=;F@[I"delete;F@[I"	each;F@[I"
has_key?;T@[I"
include?;F@[I"	key?;T@[I"member?;T@[I"
merge;F@[I"merge!;F@[I"replace;F@[I"to_hash;F@[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"Rack::Utils;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/HeaderHash/%5b%5d%3d-i.ri000064400000000371150402106710020502 0ustar00U:RDoc::AnyMethod[iI"[]=:EFI" Rack::Utils::HeaderHash#[]=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(k, v);T@TI"HeaderHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/normalize_params-i.ri000064400000001046150402106710020704 0ustar00U:RDoc::AnyMethod[iI"normalize_params:EFI"!Rack::Utils#normalize_params;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"Onormalize_params recursively expands parameters into structural types. If ;TI"Nthe structural types represented by two different parameter names are in ;TI".conflict, a ParameterTypeError is raised.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"=(params, name, v = nil, depth = Utils.param_depth_limit);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/parse_query-c.ri000064400000001103150402106710017664 0ustar00U:RDoc::AnyMethod[iI"parse_query:EFI"Rack::Utils::parse_query;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[
I"9Stolen from Mongrel, with some small modifications: ;TI"8Parses a query string by breaking it up at the '&' ;TI"9and ';' characters.  You can also use this to parse ;TI";cookies by changing the characters used in the second ;TI"(parameter (which defaults to '&;').;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(qs, d = nil, &unescaper);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/parse_nested_query-i.ri000064400000001170150402106710021240 0ustar00U:RDoc::AnyMethod[iI"parse_nested_query:EFI"#Rack::Utils#parse_nested_query;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[
I"Pparse_nested_query expands a query string into structural types. Supported ;TI"Ntypes are Arrays, Hashes and basic value types. It is possible to supply ;TI"Hquery strings with parameters of conflicting types, in this case a ;TI"PParameterTypeError is raised. Users are encouraged to return a 400 in this ;TI"
case.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(qs, d = nil);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/Context/cdesc-Context.ri000064400000001641150402106710021243 0ustar00U:RDoc::NormalClass[iI"Context:ETI"Rack::Utils::Context;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[
I"KContext allows the use of a compatible middleware at different points ;TI"Fin a request handling stack. A compatible middleware must define ;TI"N#context which should take the arguments env and app. The first of which ;TI"Mwould be the request environment. The second of which would be the rack ;TI"8application that the request would be forwarded to.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[
I"app;TI"R;T:publicFI"lib/rack/utils.rb;T[
I"for;T@;F@[[[[I"
class;T[[;[[I"new;T@[:protected[[:private[[I"
instance;T[[;[[I"	call;F@[I"context;F@[I"recontext;F@[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"Rack::Utils;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/Context/new-c.ri000064400000000374150402106710017553 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Utils::Context::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app_f, app_r);T@FI"Context;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/Context/context-i.ri000064400000000404150402106710020446 0ustar00U:RDoc::AnyMethod[iI"context:EFI"!Rack::Utils::Context#context;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, app=@app);T@FI"Context;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/Context/app-i.ri000064400000000360150402106710017543 0ustar00U:RDoc::Attr[iI"app:ETI"Rack::Utils::Context#app;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Utils::Context;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/Context/for-i.ri000064400000000360150402106710017551 0ustar00U:RDoc::Attr[iI"for:ETI"Rack::Utils::Context#for;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Utils::Context;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/Context/call-i.ri000064400000000364150402106720017703 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Utils::Context#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Context;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/Context/recontext-i.ri000064400000000376150402106720021006 0ustar00U:RDoc::AnyMethod[iI"recontext:EFI"#Rack::Utils::Context#recontext;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"Context;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/escape-i.ri000064400000000466150402106720016607 0ustar00U:RDoc::AnyMethod[iI"escape:EFI"Rack::Utils#escape;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"(URI escapes. (CGI style space to +);T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/rfc2109-i.ri000064400000001326150402106720016431 0ustar00U:RDoc::AnyMethod[iI"rfc2109:EFI"Rack::Utils#rfc2109;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"OModified version of stdlib time.rb Time#rfc2822 to use '%d-%b-%Y' instead ;TI"of '% %b %Y'. ;TI"BIt assumes that the time is in GMT to comply to the RFC 2109.;To:RDoc::Markup::BlankLineo;
;	[	I"NNOTE: I'm not sure the RFC says it requires GMT, but is ambiguous enough ;TI"<that I'm certain someone implemented only that option. ;TI"ODo not use %a and %b from Time.strptime, it would use localized names for ;TI"weekday and month.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(time);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/delete_cookie_header%21-i.ri000064400000000441150402106720021653 0ustar00U:RDoc::AnyMethod[iI"delete_cookie_header!:EFI"&Rack::Utils#delete_cookie_header!;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(header, key, value = {});T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/rfc2822-i.ri000064400000000362150402106720016432 0ustar00U:RDoc::AnyMethod[iI"rfc2822:EFI"Rack::Utils#rfc2822;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(time);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/select_best_encoding-i.ri000064400000000454150402106720021506 0ustar00U:RDoc::AnyMethod[iI"select_best_encoding:EFI"%Rack::Utils#select_best_encoding;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"+(available_encodings, accept_encoding);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/rfc2109-c.ri000064400000001326150402106720016423 0ustar00U:RDoc::AnyMethod[iI"rfc2109:EFI"Rack::Utils::rfc2109;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"OModified version of stdlib time.rb Time#rfc2822 to use '%d-%b-%Y' instead ;TI"of '% %b %Y'. ;TI"BIt assumes that the time is in GMT to comply to the RFC 2109.;To:RDoc::Markup::BlankLineo;
;	[	I"NNOTE: I'm not sure the RFC says it requires GMT, but is ambiguous enough ;TI"<that I'm certain someone implemented only that option. ;TI"ODo not use %a and %b from Time.strptime, it would use localized names for ;TI"weekday and month.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(time);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/build_query-i.ri000064400000000374150402106730017672 0ustar00U:RDoc::AnyMethod[iI"build_query:EFI"Rack::Utils#build_query;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(params);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/secure_compare-c.ri000064400000001146150402106730020332 0ustar00U:RDoc::AnyMethod[iI"secure_compare:EFI" Rack::Utils::secure_compare;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"%Constant time string comparison.;To:RDoc::Markup::BlankLineo;
;	[	I"JNOTE: the values compared should be of fixed length, such as strings ;TI"Gthat have already been processed by HMAC. This should not be used ;TI"Lon variable length plaintext strings because it could leak length info ;TI"via timing attacks.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(a, b);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/parse_query-i.ri000064400000001103150402106730017674 0ustar00U:RDoc::AnyMethod[iI"parse_query:EFI"Rack::Utils#parse_query;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[
I"9Stolen from Mongrel, with some small modifications: ;TI"8Parses a query string by breaking it up at the '&' ;TI"9and ';' characters.  You can also use this to parse ;TI";cookies by changing the characters used in the second ;TI"(parameter (which defaults to '&;').;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(qs, d = nil, &unescaper);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/params_hash_type%3f-c.ri000064400000000405150402106730021160 0ustar00U:RDoc::AnyMethod[iI"params_hash_type?:EFI"#Rack::Utils::params_hash_type?;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(obj);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/build_query-c.ri000064400000000374150402106730017664 0ustar00U:RDoc::AnyMethod[iI"build_query:EFI"Rack::Utils::build_query;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(params);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/escape_path-c.ri000064400000000576150402106730017620 0ustar00U:RDoc::AnyMethod[iI"escape_path:EFI"Rack::Utils::escape_path;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"MLike URI escaping, but with %20 instead of +. Strictly speaking this is ;TI"true URI escaping.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/status_code-c.ri000064400000000374150402106730017655 0ustar00U:RDoc::AnyMethod[iI"status_code:EFI"Rack::Utils::status_code;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(status);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/build_nested_query-i.ri000064400000000427150402106730021233 0ustar00U:RDoc::AnyMethod[iI"build_nested_query:EFI"#Rack::Utils#build_nested_query;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(value, prefix = nil);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/parse_nested_query-c.ri000064400000001170150402106740021235 0ustar00U:RDoc::AnyMethod[iI"parse_nested_query:EFI"$Rack::Utils::parse_nested_query;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[
I"Pparse_nested_query expands a query string into structural types. Supported ;TI"Ntypes are Arrays, Hashes and basic value types. It is possible to supply ;TI"Hquery strings with parameters of conflicting types, in this case a ;TI"PParameterTypeError is raised. Users are encouraged to return a 400 in this ;TI"
case.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(qs, d = nil);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/q_values-c.ri000064400000000376150402106740017162 0ustar00U:RDoc::AnyMethod[iI"
q_values:EFI"Rack::Utils::q_values;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(q_value_header);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/clean_path_info-i.ri000064400000000407150402106740020455 0ustar00U:RDoc::AnyMethod[iI"clean_path_info:EFI" Rack::Utils#clean_path_info;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(path_info);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/abbrev-i.ri000064400000000375150402106740020014 0ustar00U:RDoc::AnyMethod[iI"abbrev:EFI"Rack::Utils::OkJson#abbrev;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/nibble-i.ri000064400000000375150402106740020006 0ustar00U:RDoc::AnyMethod[iI"nibble:EFI"Rack::Utils::OkJson#nibble;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(c);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/ucharenc-i.ri000064400000000645150402106740020343 0ustar00U:RDoc::AnyMethod[iI"
ucharenc:EFI"!Rack::Utils::OkJson#ucharenc;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"*Encodes unicode character u as UTF-8 ;TI"&bytes in string a at position i. ;TI")Returns the number of bytes written.;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(a, i, u);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/surrogate%3f-i.ri000064400000000405150402106740021056 0ustar00U:RDoc::AnyMethod[iI"surrogate?:EFI"#Rack::Utils::OkJson#surrogate?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(u);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/numenc-i.ri000064400000000375150402106740020040 0ustar00U:RDoc::AnyMethod[iI"numenc:EFI"Rack::Utils::OkJson#numenc;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(x);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/Error/cdesc-Error.ri000064400000000651150402106740021563 0ustar00U:RDoc::NormalClass[iI"
Error:ETI"Rack::Utils::OkJson::Error;TI"StandardError;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Utils::OkJson;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/eat-i.ri000064400000000375150402106740017324 0ustar00U:RDoc::AnyMethod[iI"eat:EFI"Rack::Utils::OkJson#eat;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(typ, ts);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/arrenc-i.ri000064400000000375150402106740020025 0ustar00U:RDoc::AnyMethod[iI"arrenc:EFI"Rack::Utils::OkJson#arrenc;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(a);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/truetok-i.ri000064400000000377150402106740020252 0ustar00U:RDoc::AnyMethod[iI"truetok:EFI" Rack::Utils::OkJson#truetok;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/tok-i.ri000064400000001313150402106740017341 0ustar00U:RDoc::AnyMethod[iI"tok:EFI"Rack::Utils::OkJson#tok;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"$Scans the first token in s and ;TI"&returns a 3-element list, or nil ;TI",if s does not begin with a valid token.;To:RDoc::Markup::BlankLineo;
;	[I"&The first list element is one of ;TI"#'{', '}', ':', ',', '[', ']', ;TI":val, :str, and :space.;T@o;
;	[I"&The second element is the lexeme.;T@o;
;	[I"+The third element is the value of the ;TI"(token for :val and :str, otherwise ;TI"it is the lexeme.;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/nulltok-i.ri000064400000000377150402106740020245 0ustar00U:RDoc::AnyMethod[iI"nulltok:EFI" Rack::Utils::OkJson#nulltok;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/ucharcopy-i.ri000064400000001047150402106740020545 0ustar00U:RDoc::AnyMethod[iI"ucharcopy:EFI""Rack::Utils::OkJson#ucharcopy;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[
I"8Copies the valid UTF-8 bytes of a single character ;TI"6from string s at position i to I/O object t, and ;TI")returns the number of bytes copied. ;TI"2If no valid UTF-8 char exists at position i, ;TI",ucharcopy writes Ustrerr and returns 1.;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(t, s, i);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/decode-i.ri000064400000001120150402106740017763 0ustar00U:RDoc::AnyMethod[iI"decode:EFI"Rack::Utils::OkJson#decode;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[
I"-Decodes a json document in string s and ;TI"+returns the corresponding ruby value. ;TI"/String s must be valid UTF-8. If you have ;TI".a string in some other encoding, convert ;TI"it first.;To:RDoc::Markup::BlankLineo;
;	[I".String values in the resulting structure ;TI"will be UTF-8.;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/rubydoesenc%3f-i.ri000064400000000410150402106740021361 0ustar00U:RDoc::AnyMethod[iI"rubydoesenc?:EFI"%Rack::Utils::OkJson#rubydoesenc?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/strtok-i.ri000064400000000375150402106740020101 0ustar00U:RDoc::AnyMethod[iI"strtok:EFI"Rack::Utils::OkJson#strtok;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/keyenc-i.ri000064400000000375150402106740020031 0ustar00U:RDoc::AnyMethod[iI"keyenc:EFI"Rack::Utils::OkJson#keyenc;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(k);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/valenc-i.ri000064400000000374150402106750020023 0ustar00U:RDoc::AnyMethod[iI"valenc:EFI"Rack::Utils::OkJson#valenc;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(x);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/valparse-i.ri000064400000000613150402106750020364 0ustar00U:RDoc::AnyMethod[iI"
valparse:EFI"!Rack::Utils::OkJson#valparse;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"0Parses a "value" in the sense of RFC 4627. ;TI"6Returns the parsed value and any trailing tokens.;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"	(ts);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/lex-i.ri000064400000000576150402106750017347 0ustar00U:RDoc::AnyMethod[iI"lex:EFI"Rack::Utils::OkJson#lex;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"0Scans s and returns a list of json tokens, ;TI"4excluding white space (as defined in RFC 4627).;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/subst-i.ri000064400000000400150402106750017701 0ustar00U:RDoc::AnyMethod[iI"
subst:EFI"Rack::Utils::OkJson#subst;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(u1, u2);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/cdesc-OkJson.ri000064400000005406150402106750020610 0ustar00U:RDoc::NormalModule[iI"OkJson:EFI"Rack::Utils::OkJson;T0o:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"Some parts adapted from ;TI"8https://golang.org/src/encoding/json/decode.go and ;TI"0https://golang.org/src/unicode/utf8/utf8.go;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[U:RDoc::Constant[iI"
Upstream;FI""Rack::Utils::OkJson::Upstream;T00o;;[;
@;0@@cRDoc::NormalModule0U;[iI"
Utagx;FI"Rack::Utils::OkJson::Utagx;T00o;;[;
@;0@@@0U;[iI"
Utag2;FI"Rack::Utils::OkJson::Utag2;T00o;;[;
@;0@@@0U;[iI"
Utag3;FI"Rack::Utils::OkJson::Utag3;T00o;;[;
@;0@@@0U;[iI"
Utag4;FI"Rack::Utils::OkJson::Utag4;T00o;;[;
@;0@@@0U;[iI"
Utag5;FI"Rack::Utils::OkJson::Utag5;T00o;;[;
@;0@@@0U;[iI"Umaskx;FI" Rack::Utils::OkJson::Umaskx;T00o;;[;
@;0@@@0U;[iI"Umask2;FI" Rack::Utils::OkJson::Umask2;T00o;;[;
@;0@@@0U;[iI"Umask3;FI" Rack::Utils::OkJson::Umask3;T00o;;[;
@;0@@@0U;[iI"Umask4;FI" Rack::Utils::OkJson::Umask4;T00o;;[;
@;0@@@0U;[iI"Uchar1max;FI"#Rack::Utils::OkJson::Uchar1max;T00o;;[;
@;0@@@0U;[iI"Uchar2max;FI"#Rack::Utils::OkJson::Uchar2max;T00o;;[;
@;0@@@0U;[iI"Uchar3max;FI"#Rack::Utils::OkJson::Uchar3max;T00o;;[;
@;0@@@0U;[iI"
Ucharerr;FI""Rack::Utils::OkJson::Ucharerr;T00o;;[;
@;0@@@0U;[iI"Ustrerr;FI"!Rack::Utils::OkJson::Ustrerr;T00o;;[;
@;0@@@0U;[iI"Usurrself;FI"#Rack::Utils::OkJson::Usurrself;T00o;;[;
@;0@@@0U;[iI"Usurr1;FI" Rack::Utils::OkJson::Usurr1;T00o;;[;
@;0@@@0U;[iI"Usurr2;FI" Rack::Utils::OkJson::Usurr2;T00o;;[;
@;0@@@0U;[iI"Usurr3;FI" Rack::Utils::OkJson::Usurr3;T00o;;[;
@;0@@@0U;[iI"Spc;FI"Rack::Utils::OkJson::Spc;T00o;;[;
@;0@@@0U;[iI"
Unesc;FI"Rack::Utils::OkJson::Unesc;T00o;;[;
@;0@@@0[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;
[[I"decode;FI"lib/rack/utils/okjson.rb;T[I"encode;F@�[I"valenc;F@�[;[[;[ [I"abbrev;F@�[I"arrenc;F@�[I"
arrparse;F@�[I"eat;F@�[I"
falsetok;F@�[I"hexdec4;F@�[I"keyenc;F@�[I"lex;F@�[I"nibble;F@�[I"nulltok;F@�[I"numenc;F@�[I"numtok;F@�[I"objenc;F@�[I"
objparse;F@�[I"pairparse;F@�[I"rubydoesenc?;F@�[I"strenc;F@�[I"strtok;F@�[I"
subst;F@�[I"surrogate?;F@�[I"textparse;F@�[I"tok;F@�[I"truetok;F@�[I"ucharcopy;F@�[I"
ucharenc;F@�[I"unquote;F@�[I"
valparse;F@�[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"Rack::Utils;T@lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/arrparse-i.ri000064400000000614150402106750020367 0ustar00U:RDoc::AnyMethod[iI"
arrparse:EFI"!Rack::Utils::OkJson#arrparse;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"1Parses an "array" in the sense of RFC 4627. ;TI"6Returns the parsed value and any trailing tokens.;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"	(ts);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/pairparse-i.ri000064400000000617150402106750020541 0ustar00U:RDoc::AnyMethod[iI"pairparse:EFI""Rack::Utils::OkJson#pairparse;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"1Parses a "member" in the sense of RFC 4627. ;TI"7Returns the parsed values and any trailing tokens.;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"	(ts);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/encode-i.ri000064400000001322150402106750020002 0ustar00U:RDoc::AnyMethod[iI"encode:EFI"Rack::Utils::OkJson#encode;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"5Encodes x into a json text. It may contain only ;TI"5Array, Hash, String, Numeric, true, false, nil. ;TI"((Note, this list excludes Symbol.) ;TI"*X itself must be an Array or a Hash. ;TI"6No other value can be encoded, and an error will ;TI"6be raised if x contains any other value, such as ;TI"7Nan, Infinity, Symbol, and Proc, or if a Hash key ;TI"is not a String. ;TI"0Strings contained in x must be valid UTF-8.;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(x);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/strenc-i.ri000064400000000375150402106750020052 0ustar00U:RDoc::AnyMethod[iI"strenc:EFI"Rack::Utils::OkJson#strenc;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/objparse-i.ri000064400000000615150402106750020356 0ustar00U:RDoc::AnyMethod[iI"
objparse:EFI"!Rack::Utils::OkJson#objparse;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"2Parses an "object" in the sense of RFC 4627. ;TI"6Returns the parsed value and any trailing tokens.;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"	(ts);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/Utf8Error/cdesc-Utf8Error.ri000064400000000661150402106750023103 0ustar00U:RDoc::NormalClass[iI"Utf8Error:ETI"#Rack::Utils::OkJson::Utf8Error;TI"StandardError;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Utils::OkJson;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/falsetok-i.ri000064400000000401150402106750020352 0ustar00U:RDoc::AnyMethod[iI"
falsetok:EFI"!Rack::Utils::OkJson#falsetok;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/objenc-i.ri000064400000000375150402106750020014 0ustar00U:RDoc::AnyMethod[iI"objenc:EFI"Rack::Utils::OkJson#objenc;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(x);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/hexdec4-i.ri000064400000000377150402106750020102 0ustar00U:RDoc::AnyMethod[iI"hexdec4:EFI" Rack::Utils::OkJson#hexdec4;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/numtok-i.ri000064400000000375150402106750020071 0ustar00U:RDoc::AnyMethod[iI"numtok:EFI"Rack::Utils::OkJson#numtok;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/unquote-i.ri000064400000000763150402106750020255 0ustar00U:RDoc::AnyMethod[iI"unquote:EFI" Rack::Utils::OkJson#unquote;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"JConverts a quoted json string literal q into a UTF-8-encoded string. ;TI"CThe rules are different than for Ruby, so we cannot use eval. ;TI"BUnquote will raise an error if q contains control characters.;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"(q);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/OkJson/textparse-i.ri000064400000000770150402106750020572 0ustar00U:RDoc::AnyMethod[iI"textparse:EFI""Rack::Utils::OkJson#textparse;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[	I"4Parses a "json text" in the sense of RFC 4627. ;TI"7Returns the parsed value and any trailing tokens. ;TI"0Note: this is almost the same as valparse, ;TI"2except that it does not accept atomic values.;T:
@fileI"lib/rack/utils/okjson.rb;T:0@omit_headings_from_table_of_contents_below000[I"	(ts);T@FI"OkJson;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/multipart_part_limit-c.ri000064400000000403150402106750021600 0ustar00U:RDoc::Attr[iI"multipart_part_limit:ETI"&Rack::Utils::multipart_part_limit;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below0T@I"Rack::Utils;TcRDoc::NormalModule0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/q_values-i.ri000064400000000376150402106750017171 0ustar00U:RDoc::AnyMethod[iI"
q_values:EFI"Rack::Utils#q_values;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(q_value_header);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/secure_compare-i.ri000064400000001146150402106750020342 0ustar00U:RDoc::AnyMethod[iI"secure_compare:EFI"Rack::Utils#secure_compare;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"%Constant time string comparison.;To:RDoc::Markup::BlankLineo;
;	[	I"JNOTE: the values compared should be of fixed length, such as strings ;TI"Gthat have already been processed by HMAC. This should not be used ;TI"Lon variable length plaintext strings because it could leak length info ;TI"via timing attacks.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(a, b);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/unescape-i.ri000064400000000415150402106750017147 0ustar00U:RDoc::AnyMethod[iI"
unescape:EFI"Rack::Utils#unescape;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"$(s, encoding = Encoding::UTF_8);T@FI"
Utils;FcRDoc::NormalModule00ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/InvalidParameterError/cdesc-InvalidParameterError.ri000064400000001203150402106750026614 0ustar00lib64U:RDoc::NormalClass[iI"InvalidParameterError:ETI"'Rack::Utils::InvalidParameterError;TI"ArgumentError;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"PInvalidParameterError is the error that is raised when incoming structural ;TI"Nparameters (parsed by parse_nested_query) contain invalid format or byte ;TI"sequence.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"Rack::Utils;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/build_nested_query-c.ri000064400000000427150402106750021227 0ustar00U:RDoc::AnyMethod[iI"build_nested_query:EFI"$Rack::Utils::build_nested_query;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(value, prefix = nil);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/cdesc-Utils.ri000064400000006353150402106750017304 0ustar00U:RDoc::NormalModule[iI"
Utils:EFI"Rack::Utils;T0o:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack.rb;T:0@omit_headings_from_table_of_contents_below0o;;[o:RDoc::Markup::Paragraph;[I"GRack::Utils contains a grab-bag of useful methods for writing web ;TI";applications adopted from all kinds of Ruby libraries.;T;	I"lib/rack/utils.rb;T;
0;	0;
0[[
I"key_space_limit;TI"RW;T:publicTI"lib/rack/utils.rb;T[
I"multipart_part_limit;TI"RW;T;T@[
I"param_depth_limit;TI"RW;T;T@[
U:RDoc::Constant[iI"DEFAULT_SEP;FI"Rack::Utils::DEFAULT_SEP;T00o;;[;	@;
0@@cRDoc::NormalModule0U;
[iI"ESCAPE_HTML;FI"Rack::Utils::ESCAPE_HTML;T00o;;[;	@;
0@@@'0U;
[iI"ESCAPE_HTML_PATTERN;FI"%Rack::Utils::ESCAPE_HTML_PATTERN;T00o;;[o;;[I"FOn 1.8, there is a kcode = 'u' bug that allows for XSS otherwise ;TI"RTODO doesn't apply to jruby, so a better condition above might be preferable?;T;	@;
0@@@'0U;
[iI"HTTP_STATUS_CODES;FI"#Rack::Utils::HTTP_STATUS_CODES;T00o;;[o;;[I"AEvery standard HTTP code mapped to the appropriate message. ;TI"Generated with: ;TI"[curl -s https://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv | \;To:RDoc::Markup::Verbatim;[I"Oruby -ne 'm = /^(\d{3}),(?!Unassigned|\(Unused\))([^,]+)/.match($_) and \
;TI"8          puts "#{m[1]} => \x27#{m[2].strip}\x27,"';T:@format0;	@;
0@@@'0U;
[iI"STATUS_WITH_NO_ENTITY_BODY;FI",Rack::Utils::STATUS_WITH_NO_ENTITY_BODY;T00o;;[o;;[I"IResponses with HTTP status codes that should not have an entity body;T;	@;
0@@@'0U;
[iI"SYMBOL_TO_STATUS_CODE;FI"'Rack::Utils::SYMBOL_TO_STATUS_CODE;T00o;;[;	@;
0@@@'0U;
[iI"Multipart;FI"Rack::Utils::Multipart;T0I"Rack::Multipart;To;;[o;;[I"&#<RDoc::Comment:0x00000001ec9568>;TS:RDoc::Markup::Rule:weightio;;[I"&#<RDoc::Comment:0x00000001c09c60>;TS;;io;;[I"&#<RDoc::Comment:0x00000001c462c8>;TS;;io;;[I"&#<RDoc::Comment:0x00000001485480>;T;	0;
0@@@'0U;
[iI"PATH_SEPS;FI"Rack::Utils::PATH_SEPS;T00o;;[;	@;
0@@@'0[[[I"
class;T[[;[[I"best_q_match;F@[I"build_nested_query;F@[I"build_query;F@[I"byte_ranges;F@[I"
bytesize;F@[I"clean_path_info;F@[I"delete_cookie_header!;F@[I"escape;F@[I"escape_html;F@[I"escape_path;F@[I"normalize_params;F@[I"params_hash_type?;F@[I"parse_nested_query;F@[I"parse_query;F@[I"
q_values;F@[I"rfc2109;F@[I"rfc2822;F@[I"secure_compare;F@[I"select_best_encoding;F@[I"set_cookie_header!;F@[I"status_code;F@[I"
unescape;F@[:protected[[:private[[I"
instance;T[[;[[;[[;[[@z@[@|@[@~@[@{@[@}@[@@[@�@[@�@[@�@[@�@[@�@[@�@[@�@[@�@[@�@[@�@[@�@[@�@[@�@[@�@[@�@[@�@[[U:RDoc::Context::Section[i0o;;[;	0;
0[@
I"lib/rack/commonlogger.rb;TI"lib/rack/conditionalget.rb;TI"lib/rack/content_type.rb;TI"lib/rack/deflater.rb;TI"lib/rack/lint.rb;TI"lib/rack/mock.rb;TI"!lib/rack/multipart/parser.rb;TI"lib/rack/response.rb;TI"lib/rack/session/cookie.rb;TI"lib/rack/showstatus.rb;T@I"lib/rack/utils/okjson.rb;TI"	Rack;F@'lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/ParameterTypeError/cdesc-ParameterTypeError.ri000064400000001141150402106750025562 0ustar00U:RDoc::NormalClass[iI"ParameterTypeError:ETI"$Rack::Utils::ParameterTypeError;TI"TypeError;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"MParameterTypeError is the error that is raised when incoming structural ;TI"Iparameters (parsed by parse_nested_query) contain conflicting types.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"Rack::Utils;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/byte_ranges-i.ri000064400000000767150402106750017660 0ustar00U:RDoc::AnyMethod[iI"byte_ranges:EFI"Rack::Utils#byte_ranges;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"MParses the "Range:" header, if present, into an array of Range objects. ;TI"DReturns nil if the header is missing or syntactically invalid. ;TI"BReturns an empty array if none of the ranges are satisfiable.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, size);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/escape-c.ri000064400000000466150402106750016604 0ustar00U:RDoc::AnyMethod[iI"escape:EFI"Rack::Utils::escape;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"(URI escapes. (CGI style space to +);T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(s);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/params_hash_type%3f-i.ri000064400000000405150402106750021170 0ustar00U:RDoc::AnyMethod[iI"params_hash_type?:EFI""Rack::Utils#params_hash_type?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(obj);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/byte_ranges-c.ri000064400000000767150402106750017652 0ustar00U:RDoc::AnyMethod[iI"byte_ranges:EFI"Rack::Utils::byte_ranges;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"MParses the "Range:" header, if present, into an array of Range objects. ;TI"DReturns nil if the header is missing or syntactically invalid. ;TI"BReturns an empty array if none of the ranges are satisfiable.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, size);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/set_cookie_header%21-c.ri000064400000000426150402106750021204 0ustar00U:RDoc::AnyMethod[iI"set_cookie_header!:EFI"$Rack::Utils::set_cookie_header!;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(header, key, value);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/normalize_params-c.ri000064400000001046150402106750020702 0ustar00U:RDoc::AnyMethod[iI"normalize_params:EFI""Rack::Utils::normalize_params;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"Onormalize_params recursively expands parameters into structural types. If ;TI"Nthe structural types represented by two different parameter names are in ;TI".conflict, a ParameterTypeError is raised.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"=(params, name, v = nil, depth = Utils.param_depth_limit);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/KeySpaceConstrainedParams/new-c.ri000064400000000461150402106750023172 0ustar00U:RDoc::AnyMethod[iI"new:ETI"0Rack::Utils::KeySpaceConstrainedParams::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"$(limit = Utils.key_space_limit);T@FI"KeySpaceConstrainedParams;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/KeySpaceConstrainedParams/key%3f-i.ri000064400000000430150402106750023471 0ustar00U:RDoc::AnyMethod[iI"	key?:EFI"0Rack::Utils::KeySpaceConstrainedParams#key?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(key);T@FI"KeySpaceConstrainedParams;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/KeySpaceConstrainedParams/%5b%5d-i.ri000064400000000424150402106750023257 0ustar00U:RDoc::AnyMethod[iI"[]:EFI".Rack::Utils::KeySpaceConstrainedParams#[];TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(key);T@FI"KeySpaceConstrainedParams;TcRDoc::NormalClass00gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/KeySpaceConstrainedParams/cdesc-KeySpaceConstrainedParams.ri000064400000001032150402106750030216 0ustar00lib64/rubyU:RDoc::NormalClass[iI"KeySpaceConstrainedParams:ETI"+Rack::Utils::KeySpaceConstrainedParams;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/utils.rb;T[:protected[[:private[[I"
instance;T[[;[	[I"[];F@[I"[]=;F@[I"	key?;F@[I"to_params_hash;F@[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Utils;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/KeySpaceConstrainedParams/to_params_hash-i.ri000064400000000451150402106750025376 0ustar00U:RDoc::AnyMethod[iI"to_params_hash:EFI":Rack::Utils::KeySpaceConstrainedParams#to_params_hash;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"KeySpaceConstrainedParams;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/KeySpaceConstrainedParams/%5b%5d%3d-i.ri000064400000000435150402106750023555 0ustar00U:RDoc::AnyMethod[iI"[]=:EFI"/Rack::Utils::KeySpaceConstrainedParams#[]=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(key, value);T@FI"KeySpaceConstrainedParams;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/delete_cookie_header%21-c.ri000064400000000441150402106750021650 0ustar00U:RDoc::AnyMethod[iI"delete_cookie_header!:EFI"'Rack::Utils::delete_cookie_header!;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(header, key, value = {});T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/clean_path_info-c.ri000064400000000407150402106750020450 0ustar00U:RDoc::AnyMethod[iI"clean_path_info:EFI"!Rack::Utils::clean_path_info;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(path_info);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/escape_html-c.ri000064400000000544150402106750017625 0ustar00U:RDoc::AnyMethod[iI"escape_html:EFI"Rack::Utils::escape_html;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"GEscape ampersands, brackets and quotes to their HTML/XML entities.;T:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(string);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/rfc2822-c.ri000064400000000362150402106760016430 0ustar00U:RDoc::AnyMethod[iI"rfc2822:EFI"Rack::Utils::rfc2822;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(time);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/unescape-c.ri000064400000000415150402106760017142 0ustar00U:RDoc::AnyMethod[iI"
unescape:EFI"Rack::Utils::unescape;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"$(s, encoding = Encoding::UTF_8);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/best_q_match-c.ri000064400000000427150402106760017773 0ustar00U:RDoc::AnyMethod[iI"best_q_match:EFI"Rack::Utils::best_q_match;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"&(q_value_header, available_mimes);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/status_code-i.ri000064400000000374150402106760017666 0ustar00U:RDoc::AnyMethod[iI"status_code:EFI"Rack::Utils#status_code;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(status);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/set_cookie_header%21-i.ri000064400000000426150402106760021213 0ustar00U:RDoc::AnyMethod[iI"set_cookie_header!:EFI"#Rack::Utils#set_cookie_header!;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"(header, key, value);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/best_q_match-i.ri000064400000000427150402106760020001 0ustar00U:RDoc::AnyMethod[iI"best_q_match:EFI"Rack::Utils#best_q_match;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"&(q_value_header, available_mimes);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/bytesize-i.ri000064400000000366150402106760017210 0ustar00U:RDoc::AnyMethod[iI"
bytesize:EFI"Rack::Utils#bytesize;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(string);T@FI"
Utils;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Utils/param_depth_limit-c.ri000064400000000375150402106760021026 0ustar00U:RDoc::Attr[iI"param_depth_limit:ETI"#Rack::Utils::param_depth_limit;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/utils.rb;T:0@omit_headings_from_table_of_contents_below0T@I"Rack::Utils;TcRDoc::NormalModule0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/URLMap/new-c.ri000064400000000360150402106760016127 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::URLMap::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/urlmap.rb;T:0@omit_headings_from_table_of_contents_below000[I"(map = {});T@FI"URLMap;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/URLMap/remap-i.ri000064400000000356150402106760016455 0ustar00U:RDoc::AnyMethod[iI"
remap:EFI"Rack::URLMap#remap;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/urlmap.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(map);T@FI"URLMap;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/URLMap/casecmp%3f-i.ri000064400000000370150402106760017256 0ustar00U:RDoc::AnyMethod[iI"
casecmp?:EFI"Rack::URLMap#casecmp?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/urlmap.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(v1, v2);T@FI"URLMap;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/URLMap/cdesc-URLMap.ri000064400000002461150402106760017301 0ustar00U:RDoc::NormalClass[iI"URLMap:ETI"Rack::URLMap;TI"Object;To:RDoc::Markup::Document:@parts[o;;[
o:RDoc::Markup::Paragraph;[I"BRack::URLMap takes a hash mapping urls or paths to apps, and ;TI"Hdispatches accordingly.  Support for HTTP/1.1 host names exists if ;TI"?the URLs start with <tt>http://</tt> or <tt>https://</tt>.;To:RDoc::Markup::BlankLineo;	;[	I"FURLMap modifies the SCRIPT_NAME and PATH_INFO such that the part ;TI"Frelevant for dispatch is in the SCRIPT_NAME, and the rest in the ;TI"?PATH_INFO.  This should be taken care of when you need to ;TI"2reconstruct the URL in order to create links.;T@o;	;[I"FURLMap dispatches in such a way that the longest paths are tried ;TI")first, since they are most specific.;T:
@fileI"lib/rack/urlmap.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[U:RDoc::Constant[iI"NEGATIVE_INFINITY;FI"$Rack::URLMap::NEGATIVE_INFINITY;T00o;;[;@;0@@cRDoc::NormalClass0U;
[iI"
INFINITY;FI"Rack::URLMap::INFINITY;T00o;;[;@;0@@@'0[[[I"
class;T[[:public[[I"new;TI"lib/rack/urlmap.rb;T[:protected[[:private[[I"
instance;T[[;[[I"	call;F@7[I"
remap;F@7[;[[;[[I"
casecmp?;F@7[[U:RDoc::Context::Section[i0o;;[;0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/URLMap/call-i.ri000064400000000354150402106760016262 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::URLMap#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/urlmap.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"URLMap;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/RewindableInput/make_rewindable-i.ri000064400000000434150402106760022453 0ustar00U:RDoc::AnyMethod[iI"make_rewindable:EFI"*Rack::RewindableInput#make_rewindable;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/rewindable_input.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"RewindableInput;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/RewindableInput/filesystem_has_posix_semantics%3f-i.ri000064400000000474150402106760026153 0ustar00U:RDoc::AnyMethod[iI"$filesystem_has_posix_semantics?:EFI":Rack::RewindableInput#filesystem_has_posix_semantics?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/rewindable_input.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"RewindableInput;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/RewindableInput/new-c.ri000064400000000406150402106760020124 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::RewindableInput::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/rewindable_input.rb;T:0@omit_headings_from_table_of_contents_below000[I"	(io);T@FI"RewindableInput;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/RewindableInput/cdesc-RewindableInput.ri000064400000002324150402106760023267 0ustar00U:RDoc::NormalClass[iI"RewindableInput:ETI"Rack::RewindableInput;TI"Object;To:RDoc::Markup::Document:@parts[o;;[
o:RDoc::Markup::Paragraph;[I"[Class which can make any IO object rewindable, including non-rewindable ones. It does ;TI"Ethis by buffering the data into a tempfile, which is rewindable.;To:RDoc::Markup::BlankLineo;	;[I"[rack.input is required to be rewindable, so if your input stream IO is non-rewindable ;TI"Yby nature (e.g. a pipe or a socket) then you can wrap it in an object of this class ;TI""to easily make it rewindable.;T@o;	;[I"ZDon't forget to call #close when you're done. This frees up temporary resources that ;TI"MRewindableInput uses, though it does *not* close the original IO object.;T:
@fileI"!lib/rack/rewindable_input.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[[[[I"
class;T[[:public[[I"new;TI"!lib/rack/rewindable_input.rb;T[:protected[[:private[[I"
instance;T[[;
[
[I"
close;F@([I"	each;F@([I"	gets;F@([I"	read;F@([I"rewind;F@([;[[;[[I"$filesystem_has_posix_semantics?;F@([I"make_rewindable;F@([[U:RDoc::Context::Section[i0o;;[;0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/RewindableInput/each-i.ri000064400000000413150402106760020237 0ustar00U:RDoc::AnyMethod[iI"	each:EFI"Rack::RewindableInput#each;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/rewindable_input.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(&block);T@FI"RewindableInput;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/RewindableInput/read-i.ri000064400000000412150402106760020251 0ustar00U:RDoc::AnyMethod[iI"	read:EFI"Rack::RewindableInput#read;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/rewindable_input.rb;T:0@omit_headings_from_table_of_contents_below000[I"(*args);T@FI"RewindableInput;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/RewindableInput/rewind-i.ri000064400000000411150402106760020625 0ustar00U:RDoc::AnyMethod[iI"rewind:EFI"!Rack::RewindableInput#rewind;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/rewindable_input.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"RewindableInput;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/RewindableInput/close-i.ri000064400000001117150402106760020446 0ustar00U:RDoc::AnyMethod[iI"
close:EFI" Rack::RewindableInput#close;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"GCloses this RewindableInput object without closing the originally ;TI"Swrapped IO oject. Cleans up any temporary resources that this RewindableInput ;TI"has created.;To:RDoc::Markup::BlankLineo;
;	[I"SThis method may be called multiple times. It does nothing on subsequent calls.;T:
@fileI"!lib/rack/rewindable_input.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"RewindableInput;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/RewindableInput/Tempfile/_close-i.ri000064400000000414150402106760022351 0ustar00U:RDoc::AnyMethod[iI"_close:EFI"+Rack::RewindableInput::Tempfile#_close;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/rewindable_input.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
Tempfile;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/RewindableInput/Tempfile/cdesc-Tempfile.ri000064400000001101150402106760023475 0ustar00U:RDoc::NormalClass[iI"
Tempfile:ETI"$Rack::RewindableInput::Tempfile;TI"
Tempfile;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"=Ruby's Tempfile class has a bug. Subclass it and fix it.;T:
@fileI"!lib/rack/rewindable_input.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[I"_close;FI"!lib/rack/rewindable_input.rb;T[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"Rack::RewindableInput;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/RewindableInput/gets-i.ri000064400000000405150402106760020302 0ustar00U:RDoc::AnyMethod[iI"	gets:EFI"Rack::RewindableInput#gets;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/rewindable_input.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"RewindableInput;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Basic/Request/credentials-i.ri000064400000000412150402106770022112 0ustar00U:RDoc::AnyMethod[iI"credentials:EFI"+Rack::Auth::Basic::Request#credentials;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/auth/basic.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Basic/Request/cdesc-Request.ri000064400000001011150402106770022072 0ustar00U:RDoc::NormalClass[iI"Request:ETI"Rack::Auth::Basic::Request;TI" Rack::Auth::AbstractRequest;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/auth/basic.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[I"basic?;FI"lib/rack/auth/basic.rb;T[I"credentials;F@#[I"
username;F@#[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Auth::Basic;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Basic/Request/basic%3f-i.ri000064400000000400150402106770021171 0ustar00U:RDoc::AnyMethod[iI"basic?:EFI"&Rack::Auth::Basic::Request#basic?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/auth/basic.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Basic/Request/username-i.ri000064400000000404150402106770021435 0ustar00U:RDoc::AnyMethod[iI"
username:EFI"(Rack::Auth::Basic::Request#username;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/auth/basic.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Basic/challenge-i.ri000064400000000374150402106770020116 0ustar00U:RDoc::AnyMethod[iI"challenge:EFI" Rack::Auth::Basic#challenge;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/auth/basic.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
Basic;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Basic/valid%3f-i.ri000064400000000372150402106770017567 0ustar00U:RDoc::AnyMethod[iI"valid?:EFI"Rack::Auth::Basic#valid?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/auth/basic.rb;T:0@omit_headings_from_table_of_contents_below000[I"(auth);T@FI"
Basic;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Basic/cdesc-Basic.ri000064400000001521150402106770020041 0ustar00U:RDoc::NormalClass[iI"
Basic:ETI"Rack::Auth::Basic;TI" Rack::Auth::AbstractHandler;To:RDoc::Markup::Document:@parts[o;;[
o:RDoc::Markup::Paragraph;[I"MRack::Auth::Basic implements HTTP Basic Authentication, as per RFC 2617.;To:RDoc::Markup::BlankLineo;	;[I"DInitialize with the Rack application that you want protecting, ;TI"Gand a block that checks if a username and password pair are valid.;T@o;	;[I"3See also: <tt>example/protectedlobster.rb</tt>;T:
@fileI"lib/rack/auth/basic.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;
[[I"	call;FI"lib/rack/auth/basic.rb;T[;[[;[[I"challenge;F@.[I"valid?;F@.[[U:RDoc::Context::Section[i0o;;[;0;0[@I"Rack::Auth;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Basic/call-i.ri000064400000000364150402106770017106 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Auth::Basic#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/auth/basic.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"
Basic;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractRequest/scheme-i.ri000064400000000424150402106770021527 0ustar00U:RDoc::AnyMethod[iI"scheme:EFI"'Rack::Auth::AbstractRequest#scheme;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"&lib/rack/auth/abstract/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"AbstractRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractRequest/params-i.ri000064400000000424150402106770021546 0ustar00U:RDoc::AnyMethod[iI"params:EFI"'Rack::Auth::AbstractRequest#params;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"&lib/rack/auth/abstract/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"AbstractRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractRequest/cdesc-AbstractRequest.ri000064400000001342150402106770024230 0ustar00U:RDoc::NormalClass[iI"AbstractRequest:ETI" Rack::Auth::AbstractRequest;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"&lib/rack/auth/abstract/request.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[U:RDoc::Constant[iI"AUTHORIZATION_KEYS;FI"4Rack::Auth::AbstractRequest::AUTHORIZATION_KEYS;T00o;;[;	@;
0@@cRDoc::NormalClass0[[[I"
class;T[[:public[[I"new;TI"&lib/rack/auth/abstract/request.rb;T[:protected[[:private[[I"
instance;T[[;[
[I"params;F@![I"
parts;F@![I"provided?;F@![I"request;F@![I"scheme;F@![;
[[;[[I"authorization_key;F@![[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Auth;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractRequest/new-c.ri000064400000000422150402106770021044 0ustar00U:RDoc::AnyMethod[iI"new:ETI"%Rack::Auth::AbstractRequest::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"&lib/rack/auth/abstract/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"AbstractRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractRequest/request-i.ri000064400000000426150402106770021755 0ustar00U:RDoc::AnyMethod[iI"request:EFI"(Rack::Auth::AbstractRequest#request;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"&lib/rack/auth/abstract/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"AbstractRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractRequest/parts-i.ri000064400000000422150402106770021412 0ustar00U:RDoc::AnyMethod[iI"
parts:EFI"&Rack::Auth::AbstractRequest#parts;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"&lib/rack/auth/abstract/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"AbstractRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractRequest/provided%3f-i.ri000064400000000432150402106770022374 0ustar00U:RDoc::AnyMethod[iI"provided?:EFI"*Rack::Auth::AbstractRequest#provided?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"&lib/rack/auth/abstract/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"AbstractRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractRequest/authorization_key-i.ri000064400000000453150402106770024035 0ustar00U:RDoc::AnyMethod[iI"authorization_key:EFI"2Rack::Auth::AbstractRequest#authorization_key;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"&lib/rack/auth/abstract/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"AbstractRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractHandler/cdesc-AbstractHandler.ri000064400000001354150402106770024105 0ustar00U:RDoc::NormalClass[iI"AbstractHandler:ETI" Rack::Auth::AbstractHandler;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"PRack::Auth::AbstractHandler implements common authentication functionality.;To:RDoc::Markup::BlankLineo;	;[I",+realm+ should be set for all handlers.;T:
@fileI"&lib/rack/auth/abstract/handler.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[
I"
realm;TI"RW;T:publicFI"&lib/rack/auth/abstract/handler.rb;T[[[[I"
class;T[[;
[[I"new;T@[:protected[[:private[[I"
instance;T[[;
[[;[[;[[I"bad_request;F@[I"unauthorized;F@[[U:RDoc::Context::Section[i0o;;[;0;0[@I"Rack::Auth;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractHandler/bad_request-i.ri000064400000000437150402106770022512 0ustar00U:RDoc::AnyMethod[iI"bad_request:EFI",Rack::Auth::AbstractHandler#bad_request;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"&lib/rack/auth/abstract/handler.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"AbstractHandler;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractHandler/realm-i.ri000064400000000423150402106770021307 0ustar00U:RDoc::Attr[iI"
realm:ETI"&Rack::Auth::AbstractHandler#realm;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"&lib/rack/auth/abstract/handler.rb;T:0@omit_headings_from_table_of_contents_below0F@I" Rack::Auth::AbstractHandler;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractHandler/new-c.ri000064400000000455150402106770020777 0ustar00U:RDoc::AnyMethod[iI"new:ETI"%Rack::Auth::AbstractHandler::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"&lib/rack/auth/abstract/handler.rb;T:0@omit_headings_from_table_of_contents_below000[I"%(app, realm=nil, &authenticator);T@FI"AbstractHandler;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/AbstractHandler/unauthorized-i.ri000064400000000475150402106770022737 0ustar00U:RDoc::AnyMethod[iI"unauthorized:EFI"-Rack::Auth::AbstractHandler#unauthorized;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"&lib/rack/auth/abstract/handler.rb;T:0@omit_headings_from_table_of_contents_below000[I"#(www_authenticate = challenge);T@FI"AbstractHandler;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/cdesc-Auth.ri000064400000001321150402106770016676 0ustar00U:RDoc::NormalModule[iI"	Auth:EFI"Rack::Auth;T0o:RDoc::Markup::Document:@parts[
o;;[:
@fileI"lib/rack.rb;T:0@omit_headings_from_table_of_contents_below0o;;[;	I"&lib/rack/auth/abstract/handler.rb;T;
0o;;[;	I"&lib/rack/auth/abstract/request.rb;T;
0o;;[;	I"lib/rack/auth/basic.rb;T;
0o;;[;	I" lib/rack/auth/digest/md5.rb;T;
0o;;[;	I""lib/rack/auth/digest/nonce.rb;T;
0o;;[;	I"#lib/rack/auth/digest/params.rb;T;
0o;;[;	I"$lib/rack/auth/digest/request.rb;T;
0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[
@
@@@@@@@"I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Request/respond_to%3f-i.ri000064400000000432150402106770022467 0ustar00U:RDoc::AnyMethod[iI"respond_to?:EFI",Rack::Auth::Digest::Request#respond_to?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/auth/digest/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(sym, *);T@TI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Request/correct_uri%3f-i.ri000064400000000426150402106770022636 0ustar00U:RDoc::AnyMethod[iI"correct_uri?:EFI"-Rack::Auth::Digest::Request#correct_uri?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/auth/digest/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Request/params-i.ri000064400000000412150402106770021276 0ustar00U:RDoc::AnyMethod[iI"params:EFI"'Rack::Auth::Digest::Request#params;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/auth/digest/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Request/nonce-i.ri000064400000000410150402106770021113 0ustar00U:RDoc::AnyMethod[iI"
nonce:EFI"&Rack::Auth::Digest::Request#nonce;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/auth/digest/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Request/method_missing-i.ri000064400000000444150402106770023031 0ustar00U:RDoc::AnyMethod[iI"method_missing:EFI"/Rack::Auth::Digest::Request#method_missing;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/auth/digest/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"(sym, *args);T@TI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Request/method-i.ri000064400000000412150402106770021273 0ustar00U:RDoc::AnyMethod[iI"method:EFI"'Rack::Auth::Digest::Request#method;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/auth/digest/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Request/cdesc-Request.ri000064400000001156150402106770022302 0ustar00U:RDoc::NormalClass[iI"Request:ETI" Rack::Auth::Digest::Request;TI" Rack::Auth::AbstractRequest;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"$lib/rack/auth/digest/request.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[I"correct_uri?;FI"$lib/rack/auth/digest/request.rb;T[I"digest?;F@#[I"method;F@#[I"method_missing;F@#[I"
nonce;F@#[I"params;F@#[I"respond_to?;F@#[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Auth::Digest;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Request/digest%3f-i.ri000064400000000414150402106770021572 0ustar00U:RDoc::AnyMethod[iI"digest?:EFI"(Rack::Auth::Digest::Request#digest?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/auth/digest/request.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Request;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/valid_digest%3f-i.ri000064400000000421150402107000021667 0ustar00U:RDoc::AnyMethod[iI"valid_digest?:EFI"*Rack::Auth::Digest::MD5#valid_digest?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"(auth);T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/A2-i.ri000064400000000373150402107000017203 0ustar00U:RDoc::AnyMethod[iI"A2:EFI"Rack::Auth::Digest::MD5#A2;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"(auth);T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/KD-i.ri000064400000000403150402107000017231 0ustar00U:RDoc::AnyMethod[iI"KD:EFI"Rack::Auth::Digest::MD5#KD;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"(secret, data);T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/digest-i.ri000064400000000415150402107000020215 0ustar00U:RDoc::AnyMethod[iI"digest:EFI"#Rack::Auth::Digest::MD5#digest;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"(auth, password);T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/challenge-i.ri000064400000000416150402107000020661 0ustar00U:RDoc::AnyMethod[iI"challenge:EFI"&Rack::Auth::Digest::MD5#challenge;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"(hash = {});T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/params-i.ri000064400000000410150402107000020214 0ustar00U:RDoc::AnyMethod[iI"params:EFI"#Rack::Auth::Digest::MD5#params;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"(hash = {});T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/H-i.ri000064400000000443150402107000017126 0ustar00U:RDoc::AnyMethod[iI"H:ETI"Rack::Auth::Digest::MD5#H;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"(data);T@FI"MD5;TcRDoc::NormalClass0[I"Rack::Auth::Digest::MD5;TFI"md5;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/valid%3f-i.ri000064400000000403150402107000020330 0ustar00U:RDoc::AnyMethod[iI"valid?:EFI"#Rack::Auth::Digest::MD5#valid?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"(auth);T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/passwords_hashed-i.ri000064400000000432150402107000022276 0ustar00U:RDoc::Attr[iI"passwords_hashed:ETI"-Rack::Auth::Digest::MD5#passwords_hashed;TI"W;T:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Auth::Digest::MD5;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/new-c.ri000064400000000443150402107000017522 0ustar00U:RDoc::AnyMethod[iI"new:ETI"!Rack::Auth::Digest::MD5::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"1(app, realm=nil, opaque=nil, &authenticator);T@TI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/passwords_hashed%3f-i.ri000064400000000424150402107000022575 0ustar00U:RDoc::AnyMethod[iI"passwords_hashed?:EFI".Rack::Auth::Digest::MD5#passwords_hashed?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/valid_qop%3f-i.ri000064400000000413150402107000021210 0ustar00U:RDoc::AnyMethod[iI"valid_qop?:EFI"'Rack::Auth::Digest::MD5#valid_qop?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"(auth);T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/A1-i.ri000064400000000405150402107000017176 0ustar00U:RDoc::AnyMethod[iI"A1:EFI"Rack::Auth::Digest::MD5#A1;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"(auth, password);T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/cdesc-MD5.ri000064400000002500150402107000020151 0ustar00U:RDoc::NormalClass[iI"MD5:ETI"Rack::Auth::Digest::MD5;TI" Rack::Auth::AbstractHandler;To:RDoc::Markup::Document:@parts[o;;[
o:RDoc::Markup::Paragraph;[I"ERack::Auth::Digest::MD5 implements the MD5 algorithm version of ;TI"1HTTP Digest Authentication, as per RFC 2617.;To:RDoc::Markup::BlankLineo;	;[I"FInitialize with the [Rack] application that you want protecting, ;TI"Iand a block that looks up a plaintext password for a given username.;T@o;	;[I"F+opaque+ needs to be set to a constant base64/hexadecimal string.;T:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[
I"opaque;TI"RW;T:publicFI" lib/rack/auth/digest/md5.rb;T[
I"passwords_hashed;TI"W;T;
F@[U:RDoc::Constant[iI"QOP;FI"!Rack::Auth::Digest::MD5::QOP;T00o;;[;@;0@@cRDoc::NormalClass0[[[I"
class;T[[;
[[I"new;T@[:protected[[:private[[I"
instance;T[[;
[[I"	call;F@[I"passwords_hashed?;F@[;[[;[[I"A1;F@[I"A2;F@[I"H;T@[I"KD;F@[I"challenge;F@[I"digest;F@[I"md5;F@[I"params;F@[I"valid?;F@[I"valid_digest?;F@[I"valid_nonce?;F@[I"valid_opaque?;F@[I"valid_qop?;F@[[U:RDoc::Context::Section[i0o;;[;0;0[@I"Rack::Auth::Digest;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/valid_nonce%3f-i.ri000064400000000417150402107000021517 0ustar00U:RDoc::AnyMethod[iI"valid_nonce?:EFI")Rack::Auth::Digest::MD5#valid_nonce?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"(auth);T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/call-i.ri000064400000000375150402107000017656 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"!Rack::Auth::Digest::MD5#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/opaque-i.ri000064400000000407150402107000020231 0ustar00U:RDoc::Attr[iI"opaque:ETI"#Rack::Auth::Digest::MD5#opaque;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Auth::Digest::MD5;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/valid_opaque%3f-i.ri000064400000000421150402107000021702 0ustar00U:RDoc::AnyMethod[iI"valid_opaque?:EFI"*Rack::Auth::Digest::MD5#valid_opaque?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[I"(auth);T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/MD5/md5-i.ri000064400000000426150402107000017425 0ustar00U:RDoc::AnyMethod[iI"md5:EFI" Rack::Auth::Digest::MD5#md5;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/auth/digest/md5.rb;T:0@omit_headings_from_table_of_contents_below000[[I"H;To;;	[;
@;0I"(data);T@FI"MD5;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Nonce/digest-i.ri000064400000000404150402107000020670 0ustar00U:RDoc::AnyMethod[iI"digest:EFI"%Rack::Auth::Digest::Nonce#digest;TF:publico:RDoc::Markup::Document:@parts[:
@fileI""lib/rack/auth/digest/nonce.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
Nonce;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Nonce/valid%3f-i.ri000064400000000404150402107000021006 0ustar00U:RDoc::AnyMethod[iI"valid?:EFI"%Rack::Auth::Digest::Nonce#valid?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI""lib/rack/auth/digest/nonce.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
Nonce;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Nonce/new-c.ri000064400000000447150402107000020203 0ustar00U:RDoc::AnyMethod[iI"new:ETI"#Rack::Auth::Digest::Nonce::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI""lib/rack/auth/digest/nonce.rb;T:0@omit_headings_from_table_of_contents_below000[I"/(timestamp = Time.now, given_digest = nil);T@FI"
Nonce;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Nonce/time_limit-c.ri000064400000000426150402107000021543 0ustar00U:RDoc::Attr[iI"time_limit:ETI"*Rack::Auth::Digest::Nonce::time_limit;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI""lib/rack/auth/digest/nonce.rb;T:0@omit_headings_from_table_of_contents_below0T@I"Rack::Auth::Digest::Nonce;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Nonce/fresh%3f-i.ri000064400000000404150402107000021016 0ustar00U:RDoc::AnyMethod[iI"fresh?:EFI"%Rack::Auth::Digest::Nonce#fresh?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI""lib/rack/auth/digest/nonce.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
Nonce;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Nonce/cdesc-Nonce.ri000064400000001776150402107000021321 0ustar00U:RDoc::NormalClass[iI"
Nonce:ETI"Rack::Auth::Digest::Nonce;TI"Object;To:RDoc::Markup::Document:@parts[o;;[
o:RDoc::Markup::Paragraph;[I"FRack::Auth::Digest::Nonce is the default nonce generator for the ;TI"4Rack::Auth::Digest::MD5 authentication handler.;To:RDoc::Markup::BlankLineo;	;[I"5+private_key+ needs to set to a constant string.;T@o;	;[I"K+time_limit+ can be optionally set to an integer (number of seconds), ;TI"3to limit the validity of the generated nonces.;T:
@fileI""lib/rack/auth/digest/nonce.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[
I"private_key;TI"RW;T:publicTI""lib/rack/auth/digest/nonce.rb;T[
I"time_limit;TI"RW;T;
T@[[[[I"
class;T[[;
[[I"new;T@[I"
parse;F@[:protected[[:private[[I"
instance;T[[;
[
[I"digest;F@[I"fresh?;F@[I"stale?;F@[I"	to_s;F@[I"valid?;F@[;[[;[[[U:RDoc::Context::Section[i0o;;[;0;0[@I"Rack::Auth::Digest;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Nonce/stale%3f-i.ri000064400000000404150402107000021017 0ustar00U:RDoc::AnyMethod[iI"stale?:EFI"%Rack::Auth::Digest::Nonce#stale?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI""lib/rack/auth/digest/nonce.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
Nonce;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Nonce/private_key-c.ri000064400000000430150402107000021724 0ustar00U:RDoc::Attr[iI"private_key:ETI"+Rack::Auth::Digest::Nonce::private_key;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI""lib/rack/auth/digest/nonce.rb;T:0@omit_headings_from_table_of_contents_below0T@I"Rack::Auth::Digest::Nonce;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Nonce/to_s-i.ri000064400000000400150402107000020351 0ustar00U:RDoc::AnyMethod[iI"	to_s:EFI"#Rack::Auth::Digest::Nonce#to_s;TF:publico:RDoc::Markup::Document:@parts[:
@fileI""lib/rack/auth/digest/nonce.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
Nonce;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Nonce/parse-c.ri000064400000000411150402107000020513 0ustar00U:RDoc::AnyMethod[iI"
parse:EFI"%Rack::Auth::Digest::Nonce::parse;TT:publico:RDoc::Markup::Document:@parts[:
@fileI""lib/rack/auth/digest/nonce.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(string);T@FI"
Nonce;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Params/new-c.ri000064400000000414150402107000020356 0ustar00U:RDoc::AnyMethod[iI"new:ETI"$Rack::Auth::Digest::Params::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"#lib/rack/auth/digest/params.rb;T:0@omit_headings_from_table_of_contents_below00I"	self;T[I"();T@TI"Params;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Params/dequote-c.ri000064400000000415150402107000021234 0ustar00U:RDoc::AnyMethod[iI"dequote:EFI"(Rack::Auth::Digest::Params::dequote;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"#lib/rack/auth/digest/params.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@FI"Params;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Params/%5b%5d-i.ri000064400000000400150402107000020437 0ustar00U:RDoc::AnyMethod[iI"[]:EFI""Rack::Auth::Digest::Params#[];TF:publico:RDoc::Markup::Document:@parts[:
@fileI"#lib/rack/auth/digest/params.rb;T:0@omit_headings_from_table_of_contents_below000[I"(k);T@TI"Params;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Params/to_s-i.ri000064400000000403150402107000020535 0ustar00U:RDoc::AnyMethod[iI"	to_s:EFI"$Rack::Auth::Digest::Params#to_s;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"#lib/rack/auth/digest/params.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Params;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Params/parse-c.ri000064400000000411150402107000020674 0ustar00U:RDoc::AnyMethod[iI"
parse:EFI"&Rack::Auth::Digest::Params::parse;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"#lib/rack/auth/digest/params.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@FI"Params;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Params/split_header_value-c.ri000064400000000443150402107000023426 0ustar00U:RDoc::AnyMethod[iI"split_header_value:EFI"3Rack::Auth::Digest::Params::split_header_value;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"#lib/rack/auth/digest/params.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@FI"Params;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Params/cdesc-Params.ri000064400000001310150402107010021644 0ustar00U:RDoc::NormalClass[iI"Params:ETI"Rack::Auth::Digest::Params;TI"	Hash;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"#lib/rack/auth/digest/params.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[U:RDoc::Constant[iI"
UNQUOTED;FI")Rack::Auth::Digest::Params::UNQUOTED;T00o;;[;	@;
0@@cRDoc::NormalClass0[[[I"
class;T[[:public[	[I"dequote;FI"#lib/rack/auth/digest/params.rb;T[I"new;T@![I"
parse;F@![I"split_header_value;F@![:protected[[:private[[I"
instance;T[[;[	[I"[];F@![I"[]=;F@![I"
quote;F@![I"	to_s;F@![;
[[;[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Auth::Digest;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Params/quote-i.ri000064400000000410150402107010020725 0ustar00U:RDoc::AnyMethod[iI"
quote:EFI"%Rack::Auth::Digest::Params#quote;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"#lib/rack/auth/digest/params.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@FI"Params;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/Params/%5b%5d%3d-i.ri000064400000000405150402107010020741 0ustar00U:RDoc::AnyMethod[iI"[]=:EFI"#Rack::Auth::Digest::Params#[]=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"#lib/rack/auth/digest/params.rb;T:0@omit_headings_from_table_of_contents_below000[I"(k, v);T@TI"Params;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Auth/Digest/cdesc-Digest.ri000064400000001107150402107010020421 0ustar00U:RDoc::NormalModule[iI"Digest:EFI"Rack::Auth::Digest;T0o:RDoc::Markup::Document:@parts[
o;;[:
@fileI"lib/rack.rb;T:0@omit_headings_from_table_of_contents_below0o;;[;	I" lib/rack/auth/digest/md5.rb;T;
0o;;[;	I""lib/rack/auth/digest/nonce.rb;T;
0o;;[;	I"#lib/rack/auth/digest/params.rb;T;
0o;;[;	I"$lib/rack/auth/digest/request.rb;T;
0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[
@
@@@@I"Rack::Auth;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/TempfileReaper/new-c.ri000064400000000404150402107010017717 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::TempfileReaper::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/tempfile_reaper.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"TempfileReaper;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/TempfileReaper/cdesc-TempfileReaper.ri000064400000001410150402107010022667 0ustar00U:RDoc::NormalClass[iI"TempfileReaper:ETI"Rack::TempfileReaper;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"`Middleware tracks and cleans Tempfiles created throughout a request (i.e. Rack::Multipart) ;TI"JIdeas/strategy based on posts by Eric Wong and Charles Oliver Nutter ;TI"chttps://groups.google.com/forum/#!searchin/rack-devel/temp/rack-devel/brK8eh-MByw/sw61oJJCGRMJ;T:
@fileI" lib/rack/tempfile_reaper.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[I"new;TI" lib/rack/tempfile_reaper.rb;T[:protected[[:private[[I"
instance;T[[;[[I"	call;F@[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/TempfileReaper/call-i.ri000064400000000405150402107010020050 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::TempfileReaper#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI" lib/rack/tempfile_reaper.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"TempfileReaper;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Sendfile/new-c.ri000064400000000415150402107010016546 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Sendfile::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/sendfile.rb;T:0@omit_headings_from_table_of_contents_below000[I"&(app, variation=nil, mappings=[]);T@FI"
Sendfile;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Sendfile/map_accel_path-i.ri000064400000000415150402107010020703 0ustar00U:RDoc::AnyMethod[iI"map_accel_path:EFI""Rack::Sendfile#map_accel_path;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/sendfile.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, path);T@FI"
Sendfile;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Sendfile/variation-i.ri000064400000000375150402107010017764 0ustar00U:RDoc::AnyMethod[iI"variation:EFI"Rack::Sendfile#variation;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/sendfile.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"
Sendfile;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Sendfile/cdesc-Sendfile.ri000064400000010572150402107010020352 0ustar00U:RDoc::NormalClass[iI"
Sendfile:ETI"Rack::Sendfile;TI"Object;To:RDoc::Markup::Document:@parts[o;;[)S:RDoc::Markup::Heading:
leveli:	textI"
Sendfile;To:RDoc::Markup::BlankLineo:RDoc::Markup::Paragraph;[I"FThe Sendfile middleware intercepts responses whose body is being ;TI"Jserved from a file and replaces it with a server specific X-Sendfile ;TI"Nheader. The web server is then responsible for writing the file contents ;TI"Mto the client. This can dramatically reduce the amount of work required ;TI"Pby the Ruby backend and takes advantage of the web server's optimized file ;TI"delivery code.;T@o;
;[I"KIn order to take advantage of this middleware, the response body must ;TI"Jrespond to +to_path+ and the request must include an X-Sendfile-Type ;TI"Lheader. Rack::File and other components implement +to_path+ so there's ;TI"Mrarely anything you need to do in your application. The X-Sendfile-Type ;TI"Nheader is typically set in your web servers configuration. The following ;TI"!sections attempt to document;T@S;	;
i;I"
Nginx;T@o;
;[I"ONginx supports the X-Accel-Redirect header. This is similar to X-Sendfile ;TI"Jbut requires parts of the filesystem to be mapped into a private URL ;TI"hierarchy.;T@o;
;[I"LThe following example shows the Nginx configuration required to create ;TI"Ma private "/files/" area, enable X-Accel-Redirect, and pass the special ;TI"@X-Sendfile-Type and X-Accel-Mapping headers to the backend:;T@o:RDoc::Markup::Verbatim;[I"location ~ /files/(.*) {
;TI"  internal;
;TI"  alias /var/www/$1;
;TI"}
;TI"
;TI"location / {
;TI"  proxy_redirect     off;
;TI"
;TI"5  proxy_set_header   Host                $host;
;TI"<  proxy_set_header   X-Real-IP           $remote_addr;
;TI"J  proxy_set_header   X-Forwarded-For     $proxy_add_x_forwarded_for;
;TI"
;TI"@  proxy_set_header   X-Sendfile-Type     X-Accel-Redirect;
;TI"A  proxy_set_header   X-Accel-Mapping     /var/www/=/files/;
;TI"
;TI"2  proxy_pass         http://127.0.0.1:8080/;
;TI"}
;T:@format0o;
;[
I"NNote that the X-Sendfile-Type header must be set exactly as shown above. ;TI"PThe X-Accel-Mapping header should specify the location on the file system, ;TI"Nfollowed by an equals sign (=), followed name of the private URL pattern ;TI"Kthat it maps to. The middleware performs a simple substitution on the ;TI"resulting path.;T@o;
;[I"9See Also: http://wiki.codemongers.com/NginxXSendfile;T@S;	;
i;I"
lighttpd;T@o;
;[I"MLighttpd has supported some variation of the X-Sendfile header for some ;TI"Ntime, although only recent version support X-Sendfile in a reverse proxy ;TI"configuration.;T@o;;[I"&$HTTP["host"] == "example.com" {
;TI"%   proxy-core.protocol = "http"
;TI",   proxy-core.balancer = "round-robin"
;TI"    proxy-core.backends = (
;TI"     "127.0.0.1:8000",
;TI"     "127.0.0.1:8001",
;TI"     ...
;TI"
   )
;TI"
;TI"/   proxy-core.allow-x-sendfile = "enable"
;TI"'   proxy-core.rewrite-request = (
;TI"6     "X-Sendfile-Type" => (".*" => "X-Sendfile")
;TI"
   )
;TI" }
;T;0o;
;[I"JSee Also: http://redmine.lighttpd.net/wiki/lighttpd/Docs:ModProxyCore;T@S;	;
i;I"Apache;T@o;
;[I"FX-Sendfile is supported under Apache 2.x using a separate module:;T@o;
;[I"%https://tn123.org/mod_xsendfile/;T@o;
;[I"HOnce the module is compiled and installed, you can enable it using ;TI" XSendFile config directive:;T@o;;[I"2RequestHeader Set X-Sendfile-Type X-Sendfile
;TI"/ProxyPassReverse / http://localhost:8001/
;TI"XSendFile on
;T;0S;	;
i;I"Mapping parameter;T@o;
;[	I"CThe third parameter allows for an overriding extension of the ;TI"RX-Accel-Mapping header. Mappings should be provided in tuples of internal to ;TI"Oexternal. The internal values may contain regular expression syntax, they ;TI",will be matched with case indifference.;T:
@fileI"lib/rack/sendfile.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[U:RDoc::Constant[iI"F;FI"Rack::Sendfile::F;T00o;;[;@};0@}@cRDoc::NormalClass0[[[I"
class;T[[:public[[I"new;TI"lib/rack/sendfile.rb;T[:protected[[:private[[I"
instance;T[[;[[I"	call;F@�[;[[;[[I"map_accel_path;F@�[I"variation;F@�[[U:RDoc::Context::Section[i0o;;[;0;0[@}I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Sendfile/call-i.ri000064400000000362150402107010016677 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Sendfile#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/sendfile.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"
Sendfile;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Lint/LintError/cdesc-LintError.ri000064400000000606150402107010021633 0ustar00U:RDoc::NormalClass[iI"LintError:ETI"Rack::Lint::LintError;TI"RuntimeError;To:RDoc::Markup::Document:@parts[:
@file0:0@omit_headings_from_table_of_contents_below0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[I"lib/rack/lint.rb;TI"Rack::Lint;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Lint/new-c.ri000064400000000345150402107010015725 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Lint::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/lint.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"	Lint;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Lint/ErrorWrapper/cdesc-ErrorWrapper.ri000064400000000606150402107010023057 0ustar00U:RDoc::NormalClass[iI"ErrorWrapper:ETI"Rack::Lint::ErrorWrapper;TI"Object;To:RDoc::Markup::Document:@parts[:
@file0:0@omit_headings_from_table_of_contents_below0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[I"lib/rack/lint.rb;TI"Rack::Lint;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Lint/cdesc-Lint.ri000064400000001052150402107010016675 0ustar00U:RDoc::NormalClass[iI"	Lint:ETI"Rack::Lint;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"@Rack::Lint validates your application and the requests and ;TI"*responses according to the Rack spec.;T:
@fileI"lib/rack/lint.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/lint.rb;T[:protected[[:private[[I"
instance;T[[;[[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Lint/InputWrapper/cdesc-InputWrapper.ri000064400000000606150402107010023073 0ustar00U:RDoc::NormalClass[iI"InputWrapper:ETI"Rack::Lint::InputWrapper;TI"Object;To:RDoc::Markup::Document:@parts[:
@file0:0@omit_headings_from_table_of_contents_below0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[I"lib/rack/lint.rb;TI"Rack::Lint;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Lint/HijackWrapper/cdesc-HijackWrapper.ri000064400000000610150402107010023252 0ustar00U:RDoc::NormalClass[iI"HijackWrapper:ETI"Rack::Lint::HijackWrapper;TI"Object;To:RDoc::Markup::Document:@parts[:
@file0:0@omit_headings_from_table_of_contents_below0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[I"lib/rack/lint.rb;TI"Rack::Lint;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Lint/Assertion/cdesc-Assertion.ri000064400000000565150402107010021715 0ustar00U:RDoc::NormalModule[iI"Assertion:EFI"Rack::Lint::Assertion;T0o:RDoc::Markup::Document:@parts[:
@file0:0@omit_headings_from_table_of_contents_below0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[I"lib/rack/lint.rb;TI"Rack::Lint;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/CommonLogger/log-i.ri000064400000000427150402107020017407 0ustar00U:RDoc::AnyMethod[iI"log:EFI"Rack::CommonLogger#log;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/commonlogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"$(env, status, header, began_at);T@FI"CommonLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/CommonLogger/extract_content_length-i.ri000064400000000447150402107020023375 0ustar00U:RDoc::AnyMethod[iI"extract_content_length:EFI".Rack::CommonLogger#extract_content_length;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/commonlogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(headers);T@FI"CommonLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/CommonLogger/new-c.ri000064400000000411150402107020017402 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::CommonLogger::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/commonlogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, logger=nil);T@FI"CommonLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/CommonLogger/cdesc-CommonLogger.ri000064400000003230150402107020022042 0ustar00U:RDoc::NormalClass[iI"CommonLogger:ETI"Rack::CommonLogger;TI"Object;To:RDoc::Markup::Document:@parts[o;;[
o:RDoc::Markup::Paragraph;[	I"GRack::CommonLogger forwards every request to the given +app+, and ;TI"logs a line in the ;TI"S{Apache common log format}[http://httpd.apache.org/docs/1.3/logs.html#common] ;TI"to the +logger+.;To:RDoc::Markup::BlankLineo;	;[I"MIf +logger+ is nil, CommonLogger will fall back +rack.errors+, which is ;TI"%an instance of Rack::NullLogger.;T@o;	;[I"N+logger+ can be any class, including the standard library Logger, and is ;TI"]expected to have either +write+ or +<<+ method, which accepts the CommonLogger::FORMAT. ;TI"IAccording to the SPEC, the error stream must also respond to +puts+ ;TI"J(which takes a single argument that responds to +to_s+), and +flush+ ;TI"N(which is called without arguments in order to make the error appear for ;TI"
sure);T:
@fileI"lib/rack/commonlogger.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[U:RDoc::Constant[iI"FORMAT;FI"Rack::CommonLogger::FORMAT;T00o;;[o;	;[I"ICommon Log Format: http://httpd.apache.org/docs/1.3/logs.html#common;T@o:RDoc::Markup::Verbatim;[I"Jlilith.local - - [07/Aug/2006 23:58:02 -0400] "GET / HTTP/1.1" 500 -
;TI"
;TI"+%{%s - %s [%s] "%s %s%s %s" %d %s\n} %;T:@format0;@!;0@!@cRDoc::NormalClass0[[[I"
class;T[[:public[[I"new;TI"lib/rack/commonlogger.rb;T[:protected[[:private[[I"
instance;T[[;[[I"	call;F@<[;[[;[[I"extract_content_length;F@<[I"log;F@<[[U:RDoc::Context::Section[i0o;;[;0;0[@!I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/CommonLogger/call-i.ri000064400000000376150402107020017544 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::CommonLogger#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/commonlogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"CommonLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/DeflateStream/new-c.ri000064400000000406150402107020021264 0ustar00U:RDoc::AnyMethod[iI"new:ETI"'Rack::Deflater::DeflateStream::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below000[I"(body);T@FI"DeflateStream;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/DeflateStream/each-i.ri000064400000000442150402107020021401 0ustar00U:RDoc::AnyMethod[iI"	each:EFI"'Rack::Deflater::DeflateStream#each;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below00I"deflate(part, SYNC_FLUSH);T[I"();T@FI"DeflateStream;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/DeflateStream/cdesc-DeflateStream.ri000064400000001133150402107020024050 0ustar00U:RDoc::NormalClass[iI"DeflateStream:ETI""Rack::Deflater::DeflateStream;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[U:RDoc::Constant[iI"DEFLATE_ARGS;FI"0Rack::Deflater::DeflateStream::DEFLATE_ARGS;T00o;;[;	@;
0@@cRDoc::NormalClass0[[[I"
class;T[[:public[[I"new;TI"lib/rack/deflater.rb;T[:protected[[:private[[I"
instance;T[[;[[I"
close;F@![I"	each;F@![;
[[;[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Deflater;T@lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/DeflateStream/close-i.ri000064400000000405150402107020021605 0ustar00U:RDoc::AnyMethod[iI"
close:EFI"(Rack::Deflater::DeflateStream#close;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"DeflateStream;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/new-c.ri000064400000001523150402107020016545 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Deflater::new;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"'Creates Rack::Deflater middleware.;To:RDoc::Markup::BlankLineo:RDoc::Markup::List:
@type:
LABEL:@items[o:RDoc::Markup::ListItem:@label[I"app;T;	[o;
;	[I"rack app instance;To;;[I"options;T;	[o;
;	[I"$hash of deflater options, i.e. ;TI"S'if' - a lambda enabling / disabling deflation based on returned boolean value;To:RDoc::Markup::Verbatim;	[I"^e.g use Rack::Deflater, :if => lambda { |env, status, headers, body| body.length > 512 }
;T:@format0o;
;	[I"B'include' - a list of content types that should be compressed;T:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, options = {});T@&FI"
Deflater;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/cdesc-Deflater.ri000064400000002017150402107020020340 0ustar00U:RDoc::NormalClass[iI"
Deflater:ETI"Rack::Deflater;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I";This middleware enables compression of http responses.;To:RDoc::Markup::BlankLineo;	;[I"0Currently supported compression algorithms:;T@o:RDoc::Markup::Verbatim;[I"* gzip
;TI"* deflate
;TI"$* identity (no transformation)
;T:@format0o;	;[	I"HThe middleware automatically detects when compression is supported ;TI"Eand allowed. For example no transformation is made when a cache ;TI"Idirective of 'no-transform' is present, or when the response status ;TI"3code is one that doesn't allow an entity body.;T:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/deflater.rb;T[:protected[[:private[[I"
instance;T[[;[[I"	call;F@,[;[[;[[I"should_deflate?;F@,[[U:RDoc::Context::Section[i0o;;[;
0;0[@ I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/GzipStream/cdesc-GzipStream.ri000064400000000763150402107020022772 0ustar00U:RDoc::NormalClass[iI"GzipStream:ETI"Rack::Deflater::GzipStream;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/deflater.rb;T[:protected[[:private[[I"
instance;T[[;[[I"
close;F@[I"	each;F@[I"
write;F@[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Deflater;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/GzipStream/new-c.ri000064400000000407150402107020020632 0ustar00U:RDoc::AnyMethod[iI"new:ETI"$Rack::Deflater::GzipStream::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below000[I"(body, mtime);T@FI"GzipStream;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/GzipStream/each-i.ri000064400000000403150402107020020743 0ustar00U:RDoc::AnyMethod[iI"	each:EFI"$Rack::Deflater::GzipStream#each;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(&block);T@FI"GzipStream;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/GzipStream/write-i.ri000064400000000403150402107020021175 0ustar00U:RDoc::AnyMethod[iI"
write:EFI"%Rack::Deflater::GzipStream#write;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below000[I"(data);T@FI"GzipStream;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/GzipStream/close-i.ri000064400000000377150402107020021162 0ustar00U:RDoc::AnyMethod[iI"
close:EFI"%Rack::Deflater::GzipStream#close;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"GzipStream;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/call-i.ri000064400000000362150402107020016675 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Deflater#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"
Deflater;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Deflater/should_deflate%3f-i.ri000064400000000440150402107020021237 0ustar00U:RDoc::AnyMethod[iI"should_deflate?:EFI"#Rack::Deflater#should_deflate?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/deflater.rb;T:0@omit_headings_from_table_of_contents_below000[I"!(env, status, headers, body);T@FI"
Deflater;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ConditionalGet/modified_since%3f-i.ri000064400000000457150402107020022403 0ustar00U:RDoc::AnyMethod[iI"modified_since?:EFI")Rack::ConditionalGet#modified_since?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/conditionalget.rb;T:0@omit_headings_from_table_of_contents_below000[I"(modified_since, headers);T@FI"ConditionalGet;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ConditionalGet/new-c.ri000064400000000403150402107020017716 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::ConditionalGet::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/conditionalget.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"ConditionalGet;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ConditionalGet/fresh%3f-i.ri000064400000000422150402107020020541 0ustar00U:RDoc::AnyMethod[iI"fresh?:EFI" Rack::ConditionalGet#fresh?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/conditionalget.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, headers);T@FI"ConditionalGet;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ConditionalGet/cdesc-ConditionalGet.ri000064400000002506150402107020022675 0ustar00U:RDoc::NormalClass[iI"ConditionalGet:ETI"Rack::ConditionalGet;TI"Object;To:RDoc::Markup::Document:@parts[o;;[
o:RDoc::Markup::Paragraph;[
I"EMiddleware that enables conditional GET using If-None-Match and ;TI"IIf-Modified-Since. The application should set either or both of the ;TI"HLast-Modified or Etag response headers according to RFC 2616. When ;TI"Jeither of the conditions is met, the response body is set to be zero ;TI"?length and the response status is set to 304 Not Modified.;To:RDoc::Markup::BlankLineo;	;[I"LApplications that defer response body generation until the body's each ;TI"Mmessage is received will avoid response body generation completely when ;TI"a conditional GET matches.;T@o;	;[I"9Adapted from Michael Klishin's Merb implementation: ;TI"jhttps://github.com/wycats/merb/blob/master/merb-core/lib/merb-core/rack/middleware/conditional_get.rb;T:
@fileI"lib/rack/conditionalget.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/conditionalget.rb;T[:protected[[:private[[I"
instance;T[[;
[[I"	call;F@+[;[[;[	[I"etag_matches?;F@+[I"fresh?;F@+[I"modified_since?;F@+[I"to_rfc2822;F@+[[U:RDoc::Context::Section[i0o;;[;0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ConditionalGet/to_rfc2822-i.ri000064400000000423150402107020020727 0ustar00U:RDoc::AnyMethod[iI"to_rfc2822:EFI"$Rack::ConditionalGet#to_rfc2822;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/conditionalget.rb;T:0@omit_headings_from_table_of_contents_below000[I"(since);T@FI"ConditionalGet;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ConditionalGet/etag_matches%3f-i.ri000064400000000447150402107020022065 0ustar00U:RDoc::AnyMethod[iI"etag_matches?:EFI"'Rack::ConditionalGet#etag_matches?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/conditionalget.rb;T:0@omit_headings_from_table_of_contents_below000[I"(none_match, headers);T@FI"ConditionalGet;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ConditionalGet/call-i.ri000064400000000404150402107020020047 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::ConditionalGet#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/conditionalget.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ConditionalGet;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Reloader/new-c.ri000064400000000420150402107020016547 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Reloader::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/reloader.rb;T:0@omit_headings_from_table_of_contents_below000[I")(app, cooldown = 10, backend = Stat);T@FI"
Reloader;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Reloader/safe_load-i.ri000064400000000573150402107020017712 0ustar00U:RDoc::AnyMethod[iI"safe_load:EFI"Rack::Reloader#safe_load;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"DA safe Kernel::load, issuing the hooks depending on the results;T:
@fileI"lib/rack/reloader.rb;T:0@omit_headings_from_table_of_contents_below000[I"$(file, mtime, stderr = $stderr);T@FI"
Reloader;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Reloader/reload%21-i.ri000064400000000405150402107020017445 0ustar00U:RDoc::AnyMethod[iI"reload!:EFI"Rack::Reloader#reload!;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/reloader.rb;T:0@omit_headings_from_table_of_contents_below000[I"(stderr = $stderr);T@FI"
Reloader;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Reloader/Stat/cdesc-Stat.ri000064400000000734150402107020020453 0ustar00U:RDoc::NormalModule[iI"	Stat:EFI"Rack::Reloader::Stat;T0o:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/reloader.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[I"figure_path;FI"lib/rack/reloader.rb;T[I"
rotation;F@"[I"safe_stat;F@"[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@
I"Rack::Reloader;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Reloader/Stat/figure_path-i.ri000064400000000726150402107020021205 0ustar00U:RDoc::AnyMethod[iI"figure_path:EFI"%Rack::Reloader::Stat#figure_path;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"NTakes a relative or absolute +file+ name, a couple possible +paths+ that ;TI"Nthe +file+ might reside in. Returns the full path and File::Stat for the ;TI"
path.;T:
@fileI"lib/rack/reloader.rb;T:0@omit_headings_from_table_of_contents_below000[I"(file, paths);T@FI"	Stat;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Reloader/Stat/rotation-i.ri000064400000000414150402107020020541 0ustar00U:RDoc::AnyMethod[iI"
rotation:EFI""Rack::Reloader::Stat#rotation;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/reloader.rb;T:0@omit_headings_from_table_of_contents_below00I"found, mtime;T[I"();T@FI"	Stat;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Reloader/Stat/safe_stat-i.ri000064400000000400150402107020020646 0ustar00U:RDoc::AnyMethod[iI"safe_stat:EFI"#Rack::Reloader::Stat#safe_stat;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/reloader.rb;T:0@omit_headings_from_table_of_contents_below000[I"(file);T@FI"	Stat;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Reloader/cdesc-Reloader.ri000064400000002125150402107020020356 0ustar00U:RDoc::NormalClass[iI"
Reloader:ETI"Rack::Reloader;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"$High performant source reloader;To:RDoc::Markup::BlankLineo;	;[I"(This class acts as Rack middleware.;T@o;	;[I"QWhat makes it especially suited for use in a production environment is that ;TI"Oany file will only be checked once and there will only be made one system ;TI"call stat(2).;T@o;	;[I"OPlease note that this will not reload files in the background, it does so ;TI"only when actively called.;T@o;	;[I"NIt is performing a check/reload cycle at the start of every request, but ;TI"Galso respects a cool down time, during which nothing will be done.;T:
@fileI"lib/rack/reloader.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/reloader.rb;T[:protected[[:private[[I"
instance;T[[;
[[I"	call;F@.[I"reload!;F@.[I"safe_load;F@.[;[[;[[[U:RDoc::Context::Section[i0o;;[;0;0[@"I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Reloader/call-i.ri000064400000000362150402107020016704 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Reloader#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/reloader.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"
Reloader;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/_call-i.ri000064400000000350150402107030016163 0ustar00U:RDoc::AnyMethod[iI"
_call:EFI"Rack::File#_call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"	File;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/path-i.ri000064400000000336150402107030016051 0ustar00U:RDoc::Attr[iI"	path:ETI"Rack::File#path;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::File;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/new-c.ri000064400000000417150402107030015700 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::File::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below000[I"4(root, headers={}, default_mime = 'text/plain');T@FI"	File;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/root-i.ri000064400000000336150402107030016100 0ustar00U:RDoc::Attr[iI"	root:ETI"Rack::File#root;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::File;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/fail-i.ri000064400000000376150402107030016034 0ustar00U:RDoc::AnyMethod[iI"	fail:EFI"Rack::File#fail;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below000[I"!(status, body, headers = {});T@FI"	File;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/cache_control-i.ri000064400000000360150402107030017715 0ustar00U:RDoc::Attr[iI"cache_control:ETI"Rack::File#cache_control;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::File;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/each-i.ri000064400000000355150402107030016016 0ustar00U:RDoc::AnyMethod[iI"	each:EFI"Rack::File#each;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below00I"	part;T[I"();T@FI"	File;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/mime_type-i.ri000064400000000517150402107030017106 0ustar00U:RDoc::AnyMethod[iI"mime_type:EFI"Rack::File#mime_type;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"@The MIME type for the contents of the file located at @path;T:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"	File;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/to_path-i.ri000064400000000344150402107030016552 0ustar00U:RDoc::Attr[iI"to_path:ETI"Rack::File#to_path;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::File;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/filesize-i.ri000064400000000354150402107030016727 0ustar00U:RDoc::AnyMethod[iI"
filesize:EFI"Rack::File#filesize;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"	File;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/call-i.ri000064400000000346150402107030016031 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::File#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"	File;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/serving-i.ri000064400000000354150402107030016572 0ustar00U:RDoc::AnyMethod[iI"serving:EFI"Rack::File#serving;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"	File;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/response_body-i.ri000064400000000660150402107030017770 0ustar00U:RDoc::AnyMethod[iI"response_body:EFI"Rack::File#response_body;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"=By default, the response body for file requests is nil. ;TI"=In this case, the response body will be generated later ;TI"from the file at @path;T:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"	File;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/File/cdesc-File.ri000064400000002525150402107030016627 0ustar00U:RDoc::NormalClass[iI"	File:ETI"Rack::File;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[	I"PRack::File serves files below the +root+ directory given, according to the ;TI"$path info of the Rack request. ;TI"Le.g. when Rack::File.new("/etc") is used, you can access 'passwd' file ;TI"$as http://localhost:9292/passwd;To:RDoc::Markup::BlankLineo;	;[I"HHandlers can detect if bodies are a Rack::File, and use mechanisms ;TI"!like sendfile on the +path+.;T:
@fileI"lib/rack/file.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[	[
I"cache_control;TI"RW;T:publicFI"lib/rack/file.rb;T[
I"	path;TI"RW;T;
F@[
I"	root;TI"RW;T;
F@[
I"to_path;TI"RW;T;
F@[U:RDoc::Constant[iI"ALLOWED_VERBS;FI"Rack::File::ALLOWED_VERBS;T00o;;[;@;0@@cRDoc::NormalClass0U;[iI"ALLOW_HEADER;FI"Rack::File::ALLOW_HEADER;T00o;;[;@;0@@@/0U;[iI"F;FI"Rack::File::F;T00o;;[;@;0@@@/0[[[I"
class;T[[;
[[I"new;T@[:protected[[:private[[I"
instance;T[[;
[	[I"
_call;F@[I"	call;F@[I"	each;F@[I"serving;F@[;[[;[	[I"	fail;F@[I"
filesize;F@[I"mime_type;F@[I"response_body;F@[[U:RDoc::Context::Section[i0o;;[;0;0[@I"lib/rack/server.rb;TI"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/release-c.ri000064400000000461150402107030015647 0ustar00U:RDoc::AnyMethod[iI"release:EFI"Rack::release;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"0Return the Rack release as a dotted string.;T:
@fileI"lib/rack.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"	Rack;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Builder/new_from_string-c.ri000064400000000442150402107030021016 0ustar00U:RDoc::AnyMethod[iI"new_from_string:EFI"#Rack::Builder::new_from_string;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/builder.rb;T:0@omit_headings_from_table_of_contents_below000[I"&(builder_script, file="(rackup)");T@FI"Builder;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Builder/new-c.ri000064400000000403150402107030016402 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Builder::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/builder.rb;T:0@omit_headings_from_table_of_contents_below000[I"(default_app = nil,&block);T@FI"Builder;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Builder/warmup-i.ri000064400000001102150402107030017127 0ustar00U:RDoc::AnyMethod[iI"warmup:EFI"Rack::Builder#warmup;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"ETakes a lambda or block that is used to warm-up the application.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim;	[I"warmup do |app|
;TI"+  client = Rack::MockRequest.new(app)
;TI"  client.get('/')
;TI"	end
;TI"
;TI"use SomeMiddleware
;TI"run MyApp;T:@format0:
@fileI"lib/rack/builder.rb;T:0@omit_headings_from_table_of_contents_below000[I"(prc=nil, &block);T@FI"Builder;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Builder/parse_file-c.ri000064400000000433150402107030017725 0ustar00U:RDoc::AnyMethod[iI"parse_file:EFI"Rack::Builder::parse_file;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/builder.rb;T:0@omit_headings_from_table_of_contents_below000[I")(config, opts = Server::Options.new);T@FI"Builder;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Builder/cdesc-Builder.ri000064400000002650150402107030020044 0ustar00U:RDoc::NormalClass[iI"Builder:ETI"Rack::Builder;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"HRack::Builder implements a small DSL to iteratively construct Rack ;TI"applications.;To:RDoc::Markup::BlankLineo;	;[I"
Example:;T@o:RDoc::Markup::Verbatim;[I"require 'rack/lobster'
;TI" app = Rack::Builder.new do
;TI"  use Rack::CommonLogger
;TI"   use Rack::ShowExceptions
;TI"  map "/lobster" do
;TI"    use Rack::Lint
;TI"    run Rack::Lobster.new
;TI"  end
;TI"	end
;TI"
;TI"
run app
;T:@format0o;	;[I"Or;T@o;;[I" app = Rack::Builder.app do
;TI"  use Rack::CommonLogger
;TI"L  run lambda { |env| [200, {'Content-Type' => 'text/plain'}, ['OK']] }
;TI"	end
;TI"
;TI"
run app
;T;0o;	;[I"M+use+ adds middleware to the stack, +run+ dispatches to an application. ;TI"GYou can use +map+ to construct a Rack::URLMap in a convenient way.;T:
@fileI"lib/rack/builder.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[	[I"app;FI"lib/rack/builder.rb;T[I"new;T@>[I"new_from_string;F@>[I"parse_file;F@>[:protected[[:private[[I"
instance;T[[;[[I"	call;F@>[I"map;F@>[I"run;F@>[I"to_app;F@>[I"use;F@>[I"warmup;F@>[;[[;[[I"generate_map;F@>[[U:RDoc::Context::Section[i0o;;[;
0;0[@2I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Builder/run-i.ri000064400000001421150402107030016424 0ustar00U:RDoc::AnyMethod[iI"run:EFI"Rack::Builder#run;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"]Takes an argument that is an object that responds to #call and returns a Rack response. ;TI"2The simplest form of this is a lambda object:;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim;	[I"Lrun lambda { |env| [200, { "Content-Type" => "text/plain" }, ["OK"]] }
;T:@format0o;
;	[I"(However this could also be a class:;T@o;;	[I"class Heartbeat
;TI"  def self.call(env)
;TI":   [200, { "Content-Type" => "text/plain" }, ["OK"]]
;TI"
 end
;TI"	end
;TI"
;TI"run Heartbeat;T;
0:
@fileI"lib/rack/builder.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"Builder;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Builder/map-i.ri000064400000001502150402107030016375 0ustar00U:RDoc::AnyMethod[iI"map:EFI"Rack::Builder#map;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I",Creates a route within the application.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim;	[
I"Rack::Builder.app do
;TI"  map '/' do
;TI"    run Heartbeat
;TI"  end
;TI"	end
;T:@format0o;
;	[I"_The +use+ method can also be used here to specify middleware to run under a specific path:;T@o;;	[I"Rack::Builder.app do
;TI"  map '/' do
;TI"    use Middleware
;TI"    run Heartbeat
;TI"  end
;TI"	end
;T;
0o;
;	[I"`This example includes a piece of middleware which will run before requests hit +Heartbeat+.;T:
@fileI"lib/rack/builder.rb;T:0@omit_headings_from_table_of_contents_below000[I"(path, &block);T@$FI"Builder;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Builder/to_app-i.ri000064400000000360150402107030017103 0ustar00U:RDoc::AnyMethod[iI"to_app:EFI"Rack::Builder#to_app;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/builder.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Builder;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Builder/use-i.ri000064400000001732150402107030016421 0ustar00U:RDoc::AnyMethod[iI"use:EFI"Rack::Builder#use;TF:publico:RDoc::Markup::Document:@parts[	o:RDoc::Markup::Paragraph;	[I",Specifies middleware to use in a stack.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim;	[I"class Middleware
;TI"  def initialize(app)
;TI"    @app = app
;TI"  end
;TI"
;TI"  def call(env)
;TI"8    env["rack.some_header"] = "setting an example"
;TI"    @app.call(env)
;TI"  end
;TI"	end
;TI"
;TI"use Middleware
;TI"Lrun lambda { |env| [200, { "Content-Type" => "text/plain" }, ["OK"]] }
;T:@format0o;
;	[I"_All requests through to this application will first be processed by the middleware class. ;TI"\The +call+ method in this example sets an additional environment key which then can be ;TI"/referenced in the application if required.;T:
@fileI"lib/rack/builder.rb;T:0@omit_headings_from_table_of_contents_below000[I" (middleware, *args, &block);T@#FI"Builder;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Builder/call-i.ri000064400000000357150402107030016542 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Builder#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/builder.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Builder;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Builder/generate_map-i.ri000064400000000421150402107030020246 0ustar00U:RDoc::AnyMethod[iI"generate_map:EFI"Rack::Builder#generate_map;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/builder.rb;T:0@omit_headings_from_table_of_contents_below000[I"(default_app, mapping);T@FI"Builder;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Builder/app-c.ri000064400000000404150402107030016372 0ustar00U:RDoc::AnyMethod[iI"app:EFI"Rack::Builder::app;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/builder.rb;T:0@omit_headings_from_table_of_contents_below000[I" (default_app = nil, &block);T@FI"Builder;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Static/can_serve-i.ri000064400000000367150402107030017436 0ustar00U:RDoc::AnyMethod[iI"can_serve:EFI"Rack::Static#can_serve;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/static.rb;T:0@omit_headings_from_table_of_contents_below000[I"(path);T@FI"Static;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Static/new-c.ri000064400000000367150402107030016254 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Static::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/static.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, options={});T@FI"Static;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Static/applicable_rules-i.ri000064400000000524150402107030020772 0ustar00U:RDoc::AnyMethod[iI"applicable_rules:EFI""Rack::Static#applicable_rules;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I".Convert HTTP header rules to HTTP headers;T:
@fileI"lib/rack/static.rb;T:0@omit_headings_from_table_of_contents_below000[I"(path);T@FI"Static;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Static/cdesc-Static.ri000064400000007537150402107030017557 0ustar00U:RDoc::NormalClass[iI"Static:ETI"Rack::Static;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[	I"FThe Rack::Static middleware intercepts requests for static files ;TI"O(javascript files, images, stylesheets, etc) based on the url prefixes or ;TI"Nroute mappings passed in the options, and serves them using a Rack::File ;TI"Oobject. This allows a Rack stack to serve both static and dynamic content.;To:RDoc::Markup::BlankLineo;	;[I"Examples:;T@o;	;[I"NServe all requests beginning with /media from the "media" folder located ;TI"+in the current directory (ie media/*):;T@o:RDoc::Markup::Verbatim;[I"+use Rack::Static, :urls => ["/media"]
;T:@format0o;	;[I"PServe all requests beginning with /css or /images from the folder "public" ;TI"Din the current directory (ie public/css/* and public/images/*):;T@o;;[I"Guse Rack::Static, :urls => ["/css", "/images"], :root => "public"
;T;0o;	;[I"OServe all requests to / with "index.html" from the folder "public" in the ;TI".current directory (ie public/index.html):;T@o;;[I"Iuse Rack::Static, :urls => {"/" => 'index.html'}, :root => 'public'
;T;0o;	;[I"IServe all requests normally from the folder "public" in the current ;TI";directory but uses index.html as default route for "/";T@o;;[I"Cuse Rack::Static, :urls => [""], :root => 'public', :index =>
;TI"'index.html'
;T;0o;	;[I"0Set custom HTTP Headers for based on rules:;T@o;;[4I"-   use Rack::Static, :root => 'public',
;TI"       :header_rules => [
;TI"J         [rule, {header_field => content, header_field => content}],
;TI"0         [rule, {header_field => content}]
;TI"       ]
;TI"
;TI" Rules for selecting files:
;TI"
;TI"1) All files
;TI"    Provide the :all symbol
;TI"#   :all => Matches every file
;TI"
;TI"2) Folders
;TI",   Provide the folder path as a string
;TI"N   '/folder' or '/folder/subfolder' => Matches files in a certain folder
;TI"
;TI"3) File Extensions
;TI"0   Provide the file extensions as an array
;TI"K   ['css', 'js'] or %w(css js) => Matches files ending in .css or .js
;TI"
;TI"%4) Regular Expressions / Regexp
;TI"%   Provide a regular expression
;TI"B   %r{\.(?:css|js)\z} => Matches files ending in .css or .js
;TI"H   /\.(?:eot|ttf|otf|woff2|woff|svg)\z/ => Matches files ending in
;TI"S     the most common web font formats (.eot, .ttf, .otf, .woff2, .woff, .svg)
;TI"N     Note: This Regexp is available as a shortcut, using the :fonts rule
;TI"
;TI"5) Font Shortcut
;TI""   Provide the :fonts symbol
;TI"_   :fonts => Uses the Regexp rule stated right above to match all common web font endings
;TI"
;TI"Rule Ordering:
;TI">  Rules are applied in the order that they are provided.
;TI"5  List rather general rules above special ones.
;TI"
;TI"<Complete example use case including HTTP header rules:
;TI"
;TI"-   use Rack::Static, :root => 'public',
;TI"       :header_rules => [
;TI"K         # Cache all static files in public caches (e.g. Rack::Cache)
;TI"+         #  as well as in the browser
;TI"G         [:all, {'Cache-Control' => 'public, max-age=31536000'}],
;TI"
;TI"K         # Provide web fonts with cross-origin access-control-headers
;TI"\         #  Firefox requires this when serving assets using a Content Delivery Network
;TI"?         [:fonts, {'Access-Control-Allow-Origin' => '*'}]
;TI"
       ];T;0:
@fileI"lib/rack/static.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/static.rb;T[:protected[[:private[[I"
instance;T[[;[
[I"applicable_rules;F@u[I"	call;F@u[I"can_serve;F@u[I"overwrite_file_path;F@u[I"route_file;F@u[;[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@iI"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Static/overwrite_file_path-i.ri000064400000000413150402107030021522 0ustar00U:RDoc::AnyMethod[iI"overwrite_file_path:EFI"%Rack::Static#overwrite_file_path;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/static.rb;T:0@omit_headings_from_table_of_contents_below000[I"(path);T@FI"Static;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Static/route_file-i.ri000064400000000371150402107030017621 0ustar00U:RDoc::AnyMethod[iI"route_file:EFI"Rack::Static#route_file;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/static.rb;T:0@omit_headings_from_table_of_contents_below000[I"(path);T@FI"Static;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Static/call-i.ri000064400000000354150402107030016400 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Static#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/static.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Static;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/cdesc-Rack.ri000064400000010443150402107030015747 0ustar00U:RDoc::NormalModule[iI"	Rack:EF@0o:RDoc::Markup::Document:@parts[Co;;[o:RDoc::Markup::Paragraph;[I"DThe Rack main module, serving as a namespace for all core Rack ;TI"modules and classes.;To:RDoc::Markup::BlankLineo;	;[I"QAll modules meant for use in your application are <tt>autoload</tt>ed here, ;TI"Jso it should be enough just to <tt>require rack.rb</tt> in your code.;T:
@fileI"lib/rack.rb;T:0@omit_headings_from_table_of_contents_below0o;;[;I"&lib/rack/auth/abstract/handler.rb;T;0o;;[;I"&lib/rack/auth/abstract/request.rb;T;0o;;[;I"lib/rack/auth/basic.rb;T;0o;;[;I" lib/rack/auth/digest/md5.rb;T;0o;;[;I""lib/rack/auth/digest/nonce.rb;T;0o;;[;I"#lib/rack/auth/digest/params.rb;T;0o;;[;I"$lib/rack/auth/digest/request.rb;T;0o;;[;I"lib/rack/body_proxy.rb;T;0o;;[;I"lib/rack/builder.rb;T;0o;;[;I"lib/rack/cascade.rb;T;0o;;[;I"lib/rack/chunked.rb;T;0o;;[;I"lib/rack/commonlogger.rb;T;0o;;[;I"lib/rack/conditionalget.rb;T;0o;;[;I"lib/rack/config.rb;T;0o;;[;I"lib/rack/content_length.rb;T;0o;;[;I"lib/rack/content_type.rb;T;0o;;[;I"lib/rack/deflater.rb;T;0o;;[;I"lib/rack/directory.rb;T;0o;;[;I"lib/rack/etag.rb;T;0o;;[;I"lib/rack/file.rb;T;0o;;[;I"lib/rack/handler.rb;T;0o;;[;I"lib/rack/handler/cgi.rb;T;0o;;[;I"(lib/rack/handler/evented_mongrel.rb;T;0o;;[;I" lib/rack/handler/fastcgi.rb;T;0o;;[;I"lib/rack/handler/lsws.rb;T;0o;;[;I" lib/rack/handler/mongrel.rb;T;0o;;[;I"lib/rack/handler/scgi.rb;T;0o;;[;I",lib/rack/handler/swiftiplied_mongrel.rb;T;0o;;[;I"lib/rack/handler/thin.rb;T;0o;;[;I" lib/rack/handler/webrick.rb;T;0o;;[;I"lib/rack/head.rb;T;0o;;[;I"lib/rack/lint.rb;T;0o;;[;I"lib/rack/lobster.rb;T;0o;;[;I"lib/rack/lock.rb;T;0o;;[;I"lib/rack/logger.rb;T;0o;;[;I"lib/rack/methodoverride.rb;T;0o;;[;I"lib/rack/mime.rb;T;0o;;[;I"lib/rack/mock.rb;T;0o;;[;I"lib/rack/multipart.rb;T;0o;;[;I"$lib/rack/multipart/generator.rb;T;0o;;[;I"!lib/rack/multipart/parser.rb;T;0o;;[;I"(lib/rack/multipart/uploaded_file.rb;T;0o;;[;I"lib/rack/nulllogger.rb;T;0o;;[;I"lib/rack/recursive.rb;T;0o;;[;I"lib/rack/reloader.rb;T;0o;;[;I"lib/rack/request.rb;T;0o;;[;I"lib/rack/response.rb;T;0o;;[;I"!lib/rack/rewindable_input.rb;T;0o;;[;I"lib/rack/runtime.rb;T;0o;;[;I"lib/rack/sendfile.rb;T;0o;;[;I"lib/rack/server.rb;T;0o;;[;I"$lib/rack/session/abstract/id.rb;T;0o;;[;I"lib/rack/session/cookie.rb;T;0o;;[;I"!lib/rack/session/memcache.rb;T;0o;;[;I"lib/rack/session/pool.rb;T;0o;;[;I"lib/rack/showexceptions.rb;T;0o;;[;I"lib/rack/showstatus.rb;T;0o;;[;I"lib/rack/static.rb;T;0o;;[;I" lib/rack/tempfile_reaper.rb;T;0o;;[;I"lib/rack/urlmap.rb;T;0o;;[;I"lib/rack/utils.rb;T;0;0;0[[U:RDoc::Constant[iI"VERSION;FI"Rack::VERSION;T00o;;[o;	;[I"2The Rack protocol version number implemented.;T;@;0@@cRDoc::NormalModule0U;
[iI"PATH_INFO;FI"Rack::PATH_INFO;T00o;;[;@;0@@@�0U;
[iI"REQUEST_METHOD;FI"Rack::REQUEST_METHOD;T00o;;[;@;0@@@�0U;
[iI"SCRIPT_NAME;FI"Rack::SCRIPT_NAME;T00o;;[;@;0@@@�0U;
[iI"QUERY_STRING;FI"Rack::QUERY_STRING;T00o;;[;@;0@@@�0U;
[iI"CACHE_CONTROL;FI"Rack::CACHE_CONTROL;T00o;;[;@;0@@@�0U;
[iI"CONTENT_LENGTH;FI"Rack::CONTENT_LENGTH;T00o;;[;@;0@@@�0U;
[iI"CONTENT_TYPE;FI"Rack::CONTENT_TYPE;T00o;;[;@;0@@@�0U;
[iI"GET;FI"Rack::GET;T00o;;[;@;0@@@�0U;
[iI"	HEAD;FI"Rack::HEAD;T00o;;[;@;0@@@�0[[[I"
class;T[[:public[[I"release;FI"lib/rack.rb;T[I"version;F@[:protected[[:private[[I"
instance;T[[;[[;[[;[[[U:RDoc::Context::Section[i0o;;[;0;0[E@@@@@!@$@'@*I"(lib/rack/backports/uri/common_18.rb;T@-@0@3@6@9@<@?@B@E@H@K@N@Q@T@W@Z@]@`@c@f@i@l@o@r@u@x@{@~@|@@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�I"lib/rack/utils/okjson.rb;T@�cRDoc::TopLevellib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Runtime/clock_time-i.ri000064400000000371150402107030017771 0ustar00U:RDoc::AnyMethod[iI"clock_time:EFI"Rack::Runtime#clock_time;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/runtime.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Runtime;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Runtime/new-c.ri000064400000000372150402107030016444 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Runtime::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/runtime.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, name = nil);T@FI"Runtime;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Runtime/Process/cdesc-Process.ri000064400000000572150402107030021550 0ustar00U:RDoc::NormalModule[iI"Process:EFI"Rack::Runtime::Process;T0o:RDoc::Markup::Document:@parts[:
@file0:0@omit_headings_from_table_of_contents_below0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[I"lib/rack/runtime.rb;TI"Rack::Runtime;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Runtime/cdesc-Runtime.ri000064400000001615150402107030020136 0ustar00U:RDoc::NormalClass[iI"Runtime:ETI"Rack::Runtime;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"BSets an "X-Runtime" response header, indicating the response ;TI"$time of the request, in seconds;To:RDoc::Markup::BlankLineo;	;[I"GYou can put it right before the application to see the processing ;TI"Itime, or before all the other middlewares to include time for them, ;TI"	too.;T:
@fileI"lib/rack/runtime.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[U:RDoc::Constant[iI"FORMAT_STRING;FI"!Rack::Runtime::FORMAT_STRING;T00o;;[;@;0@@cRDoc::NormalClass0[[[I"
class;T[[:public[[I"new;TI"lib/rack/runtime.rb;T[:protected[[:private[[I"
instance;T[[;[[I"	call;F@+[;[[;[[I"clock_time;F@+[[U:RDoc::Context::Section[i0o;;[;0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Runtime/call-i.ri000064400000000357150402107030016577 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Runtime#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/runtime.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Runtime;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/unpacked_cookie_data-i.ri000064400000000436150402107030023207 0ustar00U:RDoc::AnyMethod[iI"unpacked_cookie_data:EFI"/Rack::Session::Cookie#unpacked_cookie_data;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Cookie;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/persistent_session_id%21-i.ri000064400000000454150402107030023722 0ustar00U:RDoc::AnyMethod[iI"persistent_session_id!:EFI"1Rack::Session::Cookie#persistent_session_id!;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"(data, sid=nil);T@FI"Cookie;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Identity/decode-i.ri000064400000000415150402107040022105 0ustar00U:RDoc::AnyMethod[iI"decode:EFI"+Rack::Session::Cookie::Identity#decode;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@FI"
Identity;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Identity/cdesc-Identity.ri000064400000001067150402107040023310 0ustar00U:RDoc::NormalClass[iI"
Identity:ETI"$Rack::Session::Cookie::Identity;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"(Use no encoding for session cookies;T:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[I"decode;FI"lib/rack/session/cookie.rb;T[I"encode;F@&[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"Rack::Session::Cookie;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Identity/encode-i.ri000064400000000415150402107040022117 0ustar00U:RDoc::AnyMethod[iI"encode:EFI"+Rack::Session::Cookie::Identity#encode;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@FI"
Identity;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/new-c.ri000064400000000410150402107040017647 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Session::Cookie::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, options={});T@TI"Cookie;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/cdesc-Cookie.ri000064400000004242150402107040021135 0ustar00U:RDoc::NormalClass[iI"Cookie:ETI"Rack::Session::Cookie;TI" Rack::Session::Abstract::ID;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[
I"LRack::Session::Cookie provides simple cookie based session management. ;TI"PBy default, the session is a Ruby Hash stored as base64 encoded marshalled ;TI"Ldata set to :key (default: rack.session).  The object that encodes the ;TI"Msession data is configurable and must respond to +encode+ and +decode+. ;TI"9Both methods must take a string and return a string.;To:RDoc::Markup::BlankLineo;	;[I"LWhen the secret key is set, cookie data is checked for data integrity. ;TI"MThe old secret key is also accepted and allows graceful secret rotation.;T@o;	;[I"
Example:;T@o:RDoc::Markup::Verbatim;[
I"8use Rack::Session::Cookie, :key => 'rack.session',
;TI"6                           :domain => 'foo.com',
;TI".                           :path => '/',
;TI":                           :expire_after => 2592000,
;TI"8                           :secret => 'change_me',
;TI"@                           :old_secret => 'also_change_me'
;TI"
;TI""All parameters are optional.
;T:@format0o;	;[I"*Example of a cookie with no encoding:;T@o;;[I".Rack::Session::Cookie.new(application, {
;TI"5  :coder => Rack::Session::Cookie::Identity.new
;TI"})
;T;0o;	;[I".Example of a cookie with custom encoding:;T@o;;[I".Rack::Session::Cookie.new(application, {
;TI"  :coder => Class.new {
;TI"+    def encode(str); str.reverse; end
;TI"+    def decode(str); str.reverse; end
;TI"
  }.new
;TI"});T;0:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[
I"
coder;TI"R;T:publicFI"lib/rack/session/cookie.rb;T[[[[I"
class;T[[;[[I"new;T@?[:protected[[:private[[I"
instance;T[[;[[;[[;[
[I"destroy_session;F@?[I"digest_match?;F@?[I"extract_session_id;F@?[I"generate_hmac;F@?[I"get_session;F@?[I"persistent_session_id!;F@?[I"set_session;F@?[I"unpacked_cookie_data;F@?[[U:RDoc::Context::Section[i0o;;[;
0;0[@:I"Rack::Session;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/set_session-i.ri000064400000000452150402107040021430 0ustar00U:RDoc::AnyMethod[iI"set_session:EFI"&Rack::Session::Cookie#set_session;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"((env, session_id, session, options);T@FI"Cookie;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/digest_match%3f-i.ri000064400000000431150402107040022020 0ustar00U:RDoc::AnyMethod[iI"digest_match?:EFI"(Rack::Session::Cookie#digest_match?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"(data, digest);T@FI"Cookie;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Base64/JSON/cdesc-JSON.ri000064400000001221150402107040022264 0ustar00U:RDoc::NormalClass[iI"	JSON:ETI"(Rack::Session::Cookie::Base64::JSON;TI""Rack::Session::Cookie::Base64;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"IN.B. Unlike other encoding methods, the contained objects must be a ;TI":valid JSON composite type, either a Hash or an Array.;T:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[I"decode;FI"lib/rack/session/cookie.rb;T[I"encode;F@'[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@@	cRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Base64/JSON/decode-i.ri000064400000000415150402107040022111 0ustar00U:RDoc::AnyMethod[iI"decode:EFI"/Rack::Session::Cookie::Base64::JSON#decode;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@TI"	JSON;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Base64/JSON/encode-i.ri000064400000000415150402107040022123 0ustar00U:RDoc::AnyMethod[iI"encode:EFI"/Rack::Session::Cookie::Base64::JSON#encode;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(obj);T@TI"	JSON;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Base64/cdesc-Base64.ri000064400000001060150402107040021767 0ustar00U:RDoc::NormalClass[iI"Base64:ETI""Rack::Session::Cookie::Base64;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"%Encode session cookies as Base64;T:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[I"decode;FI"lib/rack/session/cookie.rb;T[I"encode;F@&[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"Rack::Session::Cookie;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Base64/decode-i.ri000064400000000411150402107040021334 0ustar00U:RDoc::AnyMethod[iI"decode:EFI")Rack::Session::Cookie::Base64#decode;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@FI"Base64;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Base64/Marshal/decode-i.ri000064400000000423150402107040022726 0ustar00U:RDoc::AnyMethod[iI"decode:EFI"2Rack::Session::Cookie::Base64::Marshal#decode;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@TI"Marshal;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Base64/Marshal/cdesc-Marshal.ri000064400000001106150402107040023722 0ustar00U:RDoc::NormalClass[iI"Marshal:ETI"+Rack::Session::Cookie::Base64::Marshal;TI""Rack::Session::Cookie::Base64;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"4Encode session cookies as Marshaled Base64 data;T:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[I"decode;FI"lib/rack/session/cookie.rb;T[I"encode;F@&[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@@	cRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Base64/Marshal/encode-i.ri000064400000000423150402107040022740 0ustar00U:RDoc::AnyMethod[iI"encode:EFI"2Rack::Session::Cookie::Base64::Marshal#encode;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@TI"Marshal;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Base64/ZipJSON/decode-i.ri000064400000000423150402107040022573 0ustar00U:RDoc::AnyMethod[iI"decode:EFI"2Rack::Session::Cookie::Base64::ZipJSON#decode;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@TI"ZipJSON;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Base64/ZipJSON/cdesc-ZipJSON.ri000064400000000761150402107040023442 0ustar00U:RDoc::NormalClass[iI"ZipJSON:ETI"+Rack::Session::Cookie::Base64::ZipJSON;TI""Rack::Session::Cookie::Base64;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[I"decode;FI"lib/rack/session/cookie.rb;T[I"encode;F@#[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@@	cRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Base64/ZipJSON/encode-i.ri000064400000000423150402107040022605 0ustar00U:RDoc::AnyMethod[iI"encode:EFI"2Rack::Session::Cookie::Base64::ZipJSON#encode;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(obj);T@TI"ZipJSON;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/Base64/encode-i.ri000064400000000411150402107040021346 0ustar00U:RDoc::AnyMethod[iI"encode:EFI")Rack::Session::Cookie::Base64#encode;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@FI"Base64;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/extract_session_id-i.ri000064400000000432150402107040022761 0ustar00U:RDoc::AnyMethod[iI"extract_session_id:EFI"-Rack::Session::Cookie#extract_session_id;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Cookie;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/get_session-i.ri000064400000000421150402107040021410 0ustar00U:RDoc::AnyMethod[iI"get_session:EFI"&Rack::Session::Cookie#get_session;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, sid);T@FI"Cookie;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/destroy_session-i.ri000064400000000451150402107040022325 0ustar00U:RDoc::AnyMethod[iI"destroy_session:EFI"*Rack::Session::Cookie#destroy_session;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, session_id, options);T@FI"Cookie;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/generate_hmac-i.ri000064400000000431150402107040021651 0ustar00U:RDoc::AnyMethod[iI"generate_hmac:EFI"(Rack::Session::Cookie#generate_hmac;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below000[I"(data, secret);T@FI"Cookie;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Cookie/coder-i.ri000064400000000377150402107040020174 0ustar00U:RDoc::Attr[iI"
coder:ETI" Rack::Session::Cookie#coder;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/cookie.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Session::Cookie;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Pool/mutex-i.ri000064400000000371150402107040017734 0ustar00U:RDoc::Attr[iI"
mutex:ETI"Rack::Session::Pool#mutex;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/pool.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Session::Pool;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Pool/new-c.ri000064400000000402150402107040017350 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Session::Pool::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/pool.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, options={});T@TI"	Pool;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Pool/set_session-i.ri000064400000000447150402107040021134 0ustar00U:RDoc::AnyMethod[iI"set_session:EFI"$Rack::Session::Pool#set_session;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/pool.rb;T:0@omit_headings_from_table_of_contents_below000[I",(env, session_id, new_session, options);T@FI"	Pool;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Pool/with_lock-i.ri000064400000000407150402107040020555 0ustar00U:RDoc::AnyMethod[iI"with_lock:EFI""Rack::Session::Pool#with_lock;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/pool.rb;T:0@omit_headings_from_table_of_contents_below00I";T[I"
(env);T@FI"	Pool;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Pool/pool-i.ri000064400000000367150402107040017550 0ustar00U:RDoc::Attr[iI"	pool:ETI"Rack::Session::Pool#pool;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/pool.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Session::Pool;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Pool/cdesc-Pool.ri000064400000002703150402107040020335 0ustar00U:RDoc::NormalClass[iI"	Pool:ETI"Rack::Session::Pool;TI" Rack::Session::Abstract::ID;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[	I"JRack::Session::Pool provides simple cookie based session management. ;TI"5Session data is stored in a hash held by @pool. ;TI"CIn the context of a multithreaded environment, sessions being ;TI"7committed to the pool is done in a merging manner.;To:RDoc::Markup::BlankLineo;	;[I"JThe :drop option is available in rack.session.options if you wish to ;TI":explicitly remove the session from the session cache.;T@o;	;[I"
Example:;To:RDoc::Markup::Verbatim;[I"myapp = MyRackApp.new
;TI"0sessioned = Rack::Session::Pool.new(myapp,
;TI"  :domain => 'foo.com',
;TI"   :expire_after => 2592000
;TI")
;TI")Rack::Handler::WEBrick.run sessioned;T:@format0:
@fileI"lib/rack/session/pool.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[
I"
mutex;TI"R;T:publicFI"lib/rack/session/pool.rb;T[
I"	pool;T@(;F@)[U:RDoc::Constant[iI"DEFAULT_OPTIONS;FI")Rack::Session::Pool::DEFAULT_OPTIONS;T00o;;[;
@$;0@$@cRDoc::NormalClass0[[[I"
class;T[[;[[I"new;T@)[:protected[[:private[[I"
instance;T[[;[
[I"destroy_session;F@)[I"generate_sid;F@)[I"get_session;F@)[I"set_session;F@)[I"with_lock;F@)[;[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@$I"Rack::Session;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Pool/generate_sid-i.ri000064400000000404150402107040021220 0ustar00U:RDoc::AnyMethod[iI"generate_sid:EFI"%Rack::Session::Pool#generate_sid;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/pool.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@TI"	Pool;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Pool/get_session-i.ri000064400000000412150402107040021110 0ustar00U:RDoc::AnyMethod[iI"get_session:EFI"$Rack::Session::Pool#get_session;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/pool.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, sid);T@FI"	Pool;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Pool/destroy_session-i.ri000064400000000442150402107040022025 0ustar00U:RDoc::AnyMethod[iI"destroy_session:EFI"(Rack::Session::Pool#destroy_session;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/session/pool.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, session_id, options);T@FI"	Pool;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/cdesc-Session.ri000064400000001065150402107040020136 0ustar00U:RDoc::NormalModule[iI"Session:EFI"Rack::Session;T0o:RDoc::Markup::Document:@parts[
o;;[:
@fileI"lib/rack.rb;T:0@omit_headings_from_table_of_contents_below0o;;[;	I"$lib/rack/session/abstract/id.rb;T;
0o;;[;	I"lib/rack/session/cookie.rb;T;
0o;;[;	I"!lib/rack/session/memcache.rb;T;
0o;;[;	I"lib/rack/session/pool.rb;T;
0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[
@
@@@@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/cdesc-Abstract.ri000064400000001176150402107040022024 0ustar00U:RDoc::NormalModule[iI"
Abstract:EFI"Rack::Session::Abstract;T0o:RDoc::Markup::Document:@parts[o;;[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[U:RDoc::Constant[iI"ENV_SESSION_KEY;FI"-Rack::Session::Abstract::ENV_SESSION_KEY;T00o;;[;	@
;
0@
@cRDoc::NormalModule0U;[iI"ENV_SESSION_OPTIONS_KEY;FI"5Rack::Session::Abstract::ENV_SESSION_OPTIONS_KEY;T00o;;[;	@
;
0@
@@0[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;
[[;[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@
I"Rack::Session;T@lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/delete-i.ri000064400000000432150402107040023113 0ustar00U:RDoc::AnyMethod[iI"delete:EFI"0Rack::Session::Abstract::SessionHash#delete;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(key);T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/values-i.ri000064400000000427150402107040023154 0ustar00U:RDoc::AnyMethod[iI"values:EFI"0Rack::Session::Abstract::SessionHash#values;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/clear-i.ri000064400000000425150402107040022741 0ustar00U:RDoc::AnyMethod[iI"
clear:EFI"/Rack::Session::Abstract::SessionHash#clear;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/empty%3f-i.ri000064400000000427150402107040023311 0ustar00U:RDoc::AnyMethod[iI"empty?:EFI"0Rack::Session::Abstract::SessionHash#empty?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/replace-i.ri000064400000000435150402107040023267 0ustar00U:RDoc::AnyMethod[iI"replace:EFI"1Rack::Session::Abstract::SessionHash#replace;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(hash);T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/has_key%3f-i.ri000064400000000532150402107040023573 0ustar00U:RDoc::AnyMethod[iI"
has_key?:EFI"2Rack::Session::Abstract::SessionHash#has_key?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[[I"	key?;To;;	[;
@;0[I"
include?;To;;	[;
@;0I"
(key);T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/exists%3f-i.ri000064400000000431150402107050023466 0ustar00U:RDoc::AnyMethod[iI"exists?:EFI"1Rack::Session::Abstract::SessionHash#exists?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/load_for_read%21-i.ri000064400000000450150402107050024642 0ustar00U:RDoc::AnyMethod[iI"load_for_read!:EFI"8Rack::Session::Abstract::SessionHash#load_for_read!;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/new-c.ri000064400000000434150402107050022437 0ustar00U:RDoc::AnyMethod[iI"new:ETI".Rack::Session::Abstract::SessionHash::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(store, env);T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/key%3f-i.ri000064400000000522150402107050022740 0ustar00U:RDoc::AnyMethod[iI"	key?:ETI".Rack::Session::Abstract::SessionHash#key?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(key);T@FI"SessionHash;TcRDoc::NormalClass0[I")Rack::Session::Abstract::SessionHash;TFI"
has_key?;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/store-i.ri000064400000000526150402107050023012 0ustar00U:RDoc::AnyMethod[iI"
store:ETI"/Rack::Session::Abstract::SessionHash#store;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(key, value);T@FI"SessionHash;TcRDoc::NormalClass0[I")Rack::Session::Abstract::SessionHash;TFI"[]=;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/include%3f-i.ri000064400000000532150402107050023574 0ustar00U:RDoc::AnyMethod[iI"
include?:ETI"2Rack::Session::Abstract::SessionHash#include?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(key);T@FI"SessionHash;TcRDoc::NormalClass0[I")Rack::Session::Abstract::SessionHash;TFI"
has_key?;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/set-c.ri000064400000000436150402107050022443 0ustar00U:RDoc::AnyMethod[iI"set:EFI".Rack::Session::Abstract::SessionHash::set;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, session);T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/stringify_keys-i.ri000064400000000455150402107050024730 0ustar00U:RDoc::AnyMethod[iI"stringify_keys:EFI"8Rack::Session::Abstract::SessionHash#stringify_keys;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(other);T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/destroy-i.ri000064400000000431150402107050023342 0ustar00U:RDoc::AnyMethod[iI"destroy:EFI"1Rack::Session::Abstract::SessionHash#destroy;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/%5b%5d-i.ri000064400000000457150402107050022532 0ustar00U:RDoc::AnyMethod[iI"[]:EFI",Rack::Session::Abstract::SessionHash#[];TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[[I"
fetch;To;;	[;
@;0I"
(key);T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/fetch-i.ri000064400000000516150402107050022746 0ustar00U:RDoc::AnyMethod[iI"
fetch:ETI"/Rack::Session::Abstract::SessionHash#fetch;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(key);T@FI"SessionHash;TcRDoc::NormalClass0[I")Rack::Session::Abstract::SessionHash;TFI"[];Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/each-i.ri000064400000000431150402107050022551 0ustar00U:RDoc::AnyMethod[iI"	each:EFI".Rack::Session::Abstract::SessionHash#each;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(&block);T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/find-c.ri000064400000000427150402107050022570 0ustar00U:RDoc::AnyMethod[iI"	find:EFI"/Rack::Session::Abstract::SessionHash::find;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/options-i.ri000064400000000431150402107050023344 0ustar00U:RDoc::AnyMethod[iI"options:EFI"1Rack::Session::Abstract::SessionHash#options;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/to_hash-i.ri000064400000000431150402107050023276 0ustar00U:RDoc::AnyMethod[iI"to_hash:EFI"1Rack::Session::Abstract::SessionHash#to_hash;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/keys-i.ri000064400000000423150402107050022625 0ustar00U:RDoc::AnyMethod[iI"	keys:EFI".Rack::Session::Abstract::SessionHash#keys;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/merge%21-i.ri000064400000000525150402107050023164 0ustar00U:RDoc::AnyMethod[iI"merge!:ETI"0Rack::Session::Abstract::SessionHash#merge!;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(hash);T@FI"SessionHash;TcRDoc::NormalClass0[I")Rack::Session::Abstract::SessionHash;TFI"update;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/set_options-c.ri000064400000000456150402107050024220 0ustar00U:RDoc::AnyMethod[iI"set_options:EFI"6Rack::Session::Abstract::SessionHash::set_options;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, options);T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/update-i.ri000064400000000471150402107050023137 0ustar00U:RDoc::AnyMethod[iI"update:EFI"0Rack::Session::Abstract::SessionHash#update;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[[I"merge!;To;;	[;
@;0I"(hash);T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/load%21-i.ri000064400000000426150402107050023004 0ustar00U:RDoc::AnyMethod[iI"
load!:EFI"/Rack::Session::Abstract::SessionHash#load!;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/id-i.ri000064400000000434150402107050022250 0ustar00U:RDoc::Attr[iI"id:ETI",Rack::Session::Abstract::SessionHash#id;TI"W;T:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below0F@I")Rack::Session::Abstract::SessionHash;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/loaded%3f-i.ri000064400000000431150402107050023377 0ustar00U:RDoc::AnyMethod[iI"loaded?:EFI"1Rack::Session::Abstract::SessionHash#loaded?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/inspect-i.ri000064400000000431150402107050023316 0ustar00U:RDoc::AnyMethod[iI"inspect:EFI"1Rack::Session::Abstract::SessionHash#inspect;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/cdesc-SessionHash.ri000064400000002237150402107050024737 0ustar00U:RDoc::NormalClass[iI"SessionHash:ETI")Rack::Session::Abstract::SessionHash;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"FSessionHash is responsible to lazily load the session from store.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[
I"id;TI"W;T:publicFI"$lib/rack/session/abstract/id.rb;T[[[I"Enumerable;To;;[;
@;0@[[I"
class;T[[;[	[I"	find;F@[I"new;T@[I"set;F@[I"set_options;F@[:protected[[:private[[I"
instance;T[[;[[I"[];F@[I"[]=;F@[I"
clear;F@[I"delete;F@[I"destroy;F@[I"	each;F@[I"empty?;F@[I"exists?;F@[I"
fetch;T@[I"
has_key?;F@[I"id;F@[I"
include?;T@[I"inspect;F@[I"	key?;T@[I"	keys;F@[I"loaded?;F@[I"merge!;T@[I"options;F@[I"replace;F@[I"
store;T@[I"to_hash;F@[I"update;F@[I"values;F@[;
[[;[	[I"
load!;F@[I"load_for_read!;F@[I"load_for_write!;F@[I"stringify_keys;F@[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"Rack::Session::Abstract;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/load_for_write%21-i.ri000064400000000452150402107050025063 0ustar00U:RDoc::AnyMethod[iI"load_for_write!:EFI"9Rack::Session::Abstract::SessionHash#load_for_write!;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/SessionHash/%5b%5d%3d-i.ri000064400000000470150402107050023021 0ustar00U:RDoc::AnyMethod[iI"[]=:EFI"-Rack::Session::Abstract::SessionHash#[]=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[[I"
store;To;;	[;
@;0I"(key, value);T@FI"SessionHash;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/force_options%3f-i.ri000064400000000435150402107050023071 0ustar00U:RDoc::AnyMethod[iI"force_options?:EFI"/Rack::Session::Abstract::ID#force_options?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(options);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/forced_session_update%3f-i.ri000064400000000466150402107050024573 0ustar00U:RDoc::AnyMethod[iI"forced_session_update?:EFI"7Rack::Session::Abstract::ID#forced_session_update?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(session, options);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/commit_session-i.ri000064400000001120150402107050022745 0ustar00U:RDoc::AnyMethod[iI"commit_session:EFI"/Rack::Session::Abstract::ID#commit_session;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[	I"GAcquires the session from the environment and the session id from ;TI"Hthe session options and passes them to #set_session. If successful ;TI"Fand the :defer option is not true, a cookie will be added to the ;TI"$response with the session's id.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"!(env, status, headers, body);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/security_matches%3f-i.ri000064400000000450150402107050023570 0ustar00U:RDoc::AnyMethod[iI"security_matches?:EFI"2Rack::Session::Abstract::ID#security_matches?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, options);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/commit_session%3f-i.ri000064400000001011150402107050023242 0ustar00U:RDoc::AnyMethod[iI"commit_session?:EFI"0Rack::Session::Abstract::ID#commit_session?;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"^Session should be committed if it was loaded, any of specific options like :renew, :drop ;TI"[or :expire_after was given and the security permissions match. Skips if skip is given.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, session, options);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/new-c.ri000064400000000417150402107050020505 0ustar00U:RDoc::AnyMethod[iI"new:ETI"%Rack::Session::Abstract::ID::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, options={});T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/cdesc-ID.ri000064400000005464150402107060021057 0ustar00U:RDoc::NormalClass[iI"ID:ETI" Rack::Session::Abstract::ID;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[	I"JID sets up a basic framework for implementing an id based sessioning ;TI"Lservice. Cookies sent to the client for maintaining sessions will only ;TI"Econtain an id reference. Only #get_session and #set_session are ;TI" required to be overwritten.;To:RDoc::Markup::BlankLineo;	;[I"!All parameters are optional.;To:RDoc::Markup::List:
@type:BULLET:@items[o:RDoc::Markup::ListItem:@label0;[o;	;[I">:key determines the name of the cookie, by default it is ;TI"'rack.session';To;;0;[o;	;[I"K:path, :domain, :expire_after, :secure, and :httponly set the related ;TI"3cookie options as by Rack::Response#add_cookie;To;;0;[o;	;[I"O:skip will not a set a cookie in the response nor update the session state;To;;0;[o;	;[I"O:defer will not set a cookie in the response but still update the session ;TI"'state if it is used with a backend;To;;0;[o;	;[I"K:renew (implementation dependent) will prompt the generation of a new ;TI"Jsession id, and migration of data to be referenced at the new id. If ;TI"E:defer is set, it will be overridden and the cookie will be set.;To;;0;[o;	;[I"I:sidbits sets the number of bits in length that a generated session ;TI"id will be.;T@o;	;[	I"IThese options can be set on a per request basis, at the location of ;TI"Lenv['rack.session.options']. Additionally the id of the session can be ;TI"Dfound within the options hash at the key :id. It is highly not ;TI"%recommended to change its value.;T@o;	;[I"(Is Rack::Utils::Context compatible.;T@o;	;[I"JNot included by default; you must require 'rack/session/abstract/id' ;TI"to use.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[
I"default_options;TI"R;T:publicFI"$lib/rack/session/abstract/id.rb;T[
I"key;T@O;F@P[U:RDoc::Constant[iI"DEFAULT_OPTIONS;FI"1Rack::Session::Abstract::ID::DEFAULT_OPTIONS;T00o;;[;@K;0@K@cRDoc::NormalClass0[[[I"
class;T[[;[[I"new;T@P[:protected[[:private[[I"
instance;T[[;[[I"	call;F@P[I"context;F@P[;[[;[[I"commit_session;F@P[I"commit_session?;F@P[I"current_session_id;F@P[I"destroy_session;F@P[I"extract_session_id;F@P[I"force_options?;F@P[I"forced_session_update?;F@P[I"generate_sid;F@P[I"get_session;F@P[I"initialize_sid;F@P[I"load_session;F@P[I"loaded_session?;F@P[I"prepare_session;F@P[I"security_matches?;F@P[I"session_class;F@P[I"session_exists?;F@P[I"set_cookie;F@P[I"set_session;F@P[[U:RDoc::Context::Section[i0o;;[;0;0[@KI"Rack::Session::Abstract;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/current_session_id-i.ri000064400000000573150402107060023627 0ustar00U:RDoc::AnyMethod[iI"current_session_id:EFI"3Rack::Session::Abstract::ID#current_session_id;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"9Returns the current session id from the SessionHash.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/context-i.ri000064400000000424150402107060021405 0ustar00U:RDoc::AnyMethod[iI"context:EFI"(Rack::Session::Abstract::ID#context;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, app=@app);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/set_session-i.ri000064400000001017150402107060022256 0ustar00U:RDoc::AnyMethod[iI"set_session:EFI",Rack::Session::Abstract::ID#set_session;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"IAll thread safety and session storage procedures should occur here. ;TI"JMust return the session id if the session was saved successfully, or ;TI"-false if the session could not be saved.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"!(env, sid, session, options);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/session_class-i.ri000064400000000573150402107060022576 0ustar00U:RDoc::AnyMethod[iI"session_class:EFI".Rack::Session::Abstract::ID#session_class;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"FAllow subclasses to prepare_session for different Session classes;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/set_cookie-i.ri000064400000000740150402107060022046 0ustar00U:RDoc::AnyMethod[iI"set_cookie:EFI"+Rack::Session::Abstract::ID#set_cookie;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"LSets the cookie back to the client with session id. We skip the cookie ;TI"Osetting if the value didn't change (sid is the same) or expires was given.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, headers, cookie);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/extract_session_id-i.ri000064400000000556150402107060023620 0ustar00U:RDoc::AnyMethod[iI"extract_session_id:EFI"3Rack::Session::Abstract::ID#extract_session_id;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I",Extract session id from request object.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/loaded_session%3f-i.ri000064400000000437150402107070023217 0ustar00U:RDoc::AnyMethod[iI"loaded_session?:EFI"0Rack::Session::Abstract::ID#loaded_session?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(session);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/generate_sid-i.ri000064400000001012150402107070022345 0ustar00U:RDoc::AnyMethod[iI"generate_sid:EFI"-Rack::Session::Abstract::ID#generate_sid;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"BGenerate a new session id using Ruby #rand.  The size of the ;TI"6session id is controlled by the :sidbits option. ;TI"GMonkey patch this to use custom methods for session id generation.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(secure = @sid_secure);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/get_session-i.ri000064400000001025150402107070022242 0ustar00U:RDoc::AnyMethod[iI"get_session:EFI",Rack::Session::Abstract::ID#get_session;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[	I"KAll thread safety and session retrieval procedures should occur here. ;TI"*Should return [session_id, session]. ;TI"HIf nil is provided as the session id, generation of a new valid id ;TI"should occur within.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, sid);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/default_options-i.ri000064400000000444150402107070023123 0ustar00U:RDoc::Attr[iI"default_options:ETI"0Rack::Session::Abstract::ID#default_options;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below0F@I" Rack::Session::Abstract::ID;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/destroy_session-i.ri000064400000000721150402107070023156 0ustar00U:RDoc::AnyMethod[iI"destroy_session:EFI"0Rack::Session::Abstract::ID#destroy_session;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"IAll thread safety and session destroy procedures should occur here. ;TI"<Should return a new session id or nil if options[:drop];T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, sid, options);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/load_session-i.ri000064400000000642150402107070022406 0ustar00U:RDoc::AnyMethod[iI"load_session:EFI"-Rack::Session::Abstract::ID#load_session;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"IExtracts the session id from provided cookies and passes it and the ;TI"!environment to #get_session.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/initialize_sid-i.ri000064400000000426150402107070022724 0ustar00U:RDoc::AnyMethod[iI"initialize_sid:EFI"/Rack::Session::Abstract::ID#initialize_sid;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/prepare_session-i.ri000064400000000664150402107070023131 0ustar00U:RDoc::AnyMethod[iI"prepare_session:EFI"0Rack::Session::Abstract::ID#prepare_session;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"LSets the lazy session at 'rack.session' and places options and session ;TI"*metadata into 'rack.session.options'.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/session_exists%3f-i.ri000064400000000544150402107070023305 0ustar00U:RDoc::AnyMethod[iI"session_exists?:EFI"0Rack::Session::Abstract::ID#session_exists?;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"(Check if the session exists or not.;T:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/call-i.ri000064400000000404150402107070020633 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"%Rack::Session::Abstract::ID#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ID;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Abstract/ID/key-i.ri000064400000000414150402107070020511 0ustar00U:RDoc::Attr[iI"key:ETI"$Rack::Session::Abstract::ID#key;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"$lib/rack/session/abstract/id.rb;T:0@omit_headings_from_table_of_contents_below0F@I" Rack::Session::Abstract::ID;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Memcache/mutex-i.ri000064400000000405150402107100020520 0ustar00U:RDoc::Attr[iI"
mutex:ETI""Rack::Session::Memcache#mutex;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/session/memcache.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Session::Memcache;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Memcache/new-c.ri000064400000000416150402107100020143 0ustar00U:RDoc::AnyMethod[iI"new:ETI"!Rack::Session::Memcache::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/session/memcache.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, options={});T@TI"
Memcache;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Memcache/set_session-i.ri000064400000000463150402107100021720 0ustar00U:RDoc::AnyMethod[iI"set_session:EFI"(Rack::Session::Memcache#set_session;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/session/memcache.rb;T:0@omit_headings_from_table_of_contents_below000[I",(env, session_id, new_session, options);T@FI"
Memcache;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Memcache/with_lock-i.ri000064400000000423150402107100021341 0ustar00U:RDoc::AnyMethod[iI"with_lock:EFI"&Rack::Session::Memcache#with_lock;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/session/memcache.rb;T:0@omit_headings_from_table_of_contents_below00I";T[I"
(env);T@FI"
Memcache;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Memcache/pool-i.ri000064400000000403150402107100020325 0ustar00U:RDoc::Attr[iI"	pool:ETI"!Rack::Session::Memcache#pool;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/session/memcache.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Session::Memcache;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Memcache/generate_sid-i.ri000064400000000420150402107100022004 0ustar00U:RDoc::AnyMethod[iI"generate_sid:EFI")Rack::Session::Memcache#generate_sid;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/session/memcache.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@TI"
Memcache;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Memcache/get_session-i.ri000064400000000426150402107100021703 0ustar00U:RDoc::AnyMethod[iI"get_session:EFI"(Rack::Session::Memcache#get_session;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/session/memcache.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, sid);T@FI"
Memcache;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Memcache/destroy_session-i.ri000064400000000456150402107100022620 0ustar00U:RDoc::AnyMethod[iI"destroy_session:EFI",Rack::Session::Memcache#destroy_session;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"!lib/rack/session/memcache.rb;T:0@omit_headings_from_table_of_contents_below000[I"(env, session_id, options);T@FI"
Memcache;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Session/Memcache/cdesc-Memcache.ri000064400000003133150402107100021712 0ustar00U:RDoc::NormalClass[iI"
Memcache:ETI"Rack::Session::Memcache;TI" Rack::Session::Abstract::ID;To:RDoc::Markup::Document:@parts[o;;[	o:RDoc::Markup::Paragraph;[
I"NRack::Session::Memcache provides simple cookie based session management. ;TI"KSession data is stored in memcached. The corresponding session key is ;TI"maintained in the cookie. ;TI"IYou may treat Session::Memcache as you would Session::Pool with the ;TI"following caveats.;To:RDoc::Markup::BlankLineo:RDoc::Markup::List:
@type:BULLET:@items[o:RDoc::Markup::ListItem:@label0;[o;	;[	I"JSetting :expire_after to 0 would note to the Memcache server to hang ;TI"Honto the session data until it would drop it according to it's own ;TI"Ispecifications. However, the cookie sent to the client would expire ;TI"immediately.;T@o;	;[I"NNote that memcache does drop data before it may be listed to expire. For ;TI"Ja full description of behaviour, please see memcache's documentation.;T:
@fileI"!lib/rack/session/memcache.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[
I"
mutex;TI"R;T:publicFI"!lib/rack/session/memcache.rb;T[
I"	pool;T@(;F@)[U:RDoc::Constant[iI"DEFAULT_OPTIONS;FI"-Rack::Session::Memcache::DEFAULT_OPTIONS;T00o;;[;@$;0@$@cRDoc::NormalClass0[[[I"
class;T[[;[[I"new;T@)[:protected[[:private[[I"
instance;T[[;[
[I"destroy_session;F@)[I"generate_sid;F@)[I"get_session;F@)[I"set_session;F@)[I"with_lock;F@)[;[[;[[[U:RDoc::Context::Section[i0o;;[;0;0[@$I"Rack::Session;TcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/info-i.ri000064400000000413150402107100017235 0ustar00U:RDoc::AnyMethod[iI"	info:EFI"Rack::NullLogger#info;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(progname = nil, &block);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/progname-i.ri000064400000000375150402107100020121 0ustar00U:RDoc::AnyMethod[iI"
progname:EFI"Rack::NullLogger#progname;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/info%3f-i.ri000064400000000367150402107100017543 0ustar00U:RDoc::AnyMethod[iI"
info?:EFI"Rack::NullLogger#info?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/progname%3d-i.ri000064400000000407150402107100020411 0ustar00U:RDoc::AnyMethod[iI"progname=:EFI"Rack::NullLogger#progname=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(progname);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/debug-i.ri000064400000000415150402107100017372 0ustar00U:RDoc::AnyMethod[iI"
debug:EFI"Rack::NullLogger#debug;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(progname = nil, &block);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/level%3d-i.ri000064400000000376150402107100017715 0ustar00U:RDoc::AnyMethod[iI"level=:EFI"Rack::NullLogger#level=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(level);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/new-c.ri000064400000000367150402107100017075 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::NullLogger::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/sev_threshold%3d-i.ri000064400000000426150402107100021453 0ustar00U:RDoc::AnyMethod[iI"sev_threshold=:EFI"$Rack::NullLogger#sev_threshold=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(sev_threshold);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/cdesc-NullLogger.ri000064400000001571150402107100021213 0ustar00U:RDoc::NormalClass[iI"NullLogger:ETI"Rack::NullLogger;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/nulllogger.rb;T[:protected[[:private[[I"
instance;T[[;[[I"<<;T@[I"add;F@[I"	call;F@[I"
close;F@[I"datetime_format;F@[I"datetime_format=;F@[I"
debug;F@[I"debug?;F@[I"
error;F@[I"error?;F@[I"
fatal;F@[I"fatal?;F@[I"formatter;F@[I"formatter=;F@[I"	info;F@[I"
info?;F@[I"
level;F@[I"level=;F@[I"
progname;F@[I"progname=;F@[I"sev_threshold;F@[I"sev_threshold=;F@[I"unknown;F@[I"	warn;F@[I"
warn?;F@[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/warn-i.ri000064400000000413150402107100017251 0ustar00U:RDoc::AnyMethod[iI"	warn:EFI"Rack::NullLogger#warn;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(progname = nil, &block);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/fatal%3f-i.ri000064400000000371150402107100017672 0ustar00U:RDoc::AnyMethod[iI"fatal?:EFI"Rack::NullLogger#fatal?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/add-i.ri000064400000000442150402107100017034 0ustar00U:RDoc::AnyMethod[iI"add:EFI"Rack::NullLogger#add;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"6(severity, message = nil, progname = nil, &block);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/error-i.ri000064400000000415150402107100017435 0ustar00U:RDoc::AnyMethod[iI"
error:EFI"Rack::NullLogger#error;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(progname = nil, &block);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/datetime_format%3d-i.ri000064400000000434150402107100021745 0ustar00U:RDoc::AnyMethod[iI"datetime_format=:EFI"&Rack::NullLogger#datetime_format=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(datetime_format);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/formatter%3d-i.ri000064400000000412150402107100020600 0ustar00U:RDoc::AnyMethod[iI"formatter=:EFI" Rack::NullLogger#formatter=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(formatter);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/error%3f-i.ri000064400000000371150402107100017734 0ustar00U:RDoc::AnyMethod[iI"error?:EFI"Rack::NullLogger#error?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/%3c%3c-i.ri000064400000000364150402107100017154 0ustar00U:RDoc::AnyMethod[iI"<<:ETI"Rack::NullLogger#<<;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(msg);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/formatter-i.ri000064400000000377150402107100020316 0ustar00U:RDoc::AnyMethod[iI"formatter:EFI"Rack::NullLogger#formatter;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/level-i.ri000064400000000367150402107100017421 0ustar00U:RDoc::AnyMethod[iI"
level:EFI"Rack::NullLogger#level;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/datetime_format-i.ri000064400000000413150402107100021446 0ustar00U:RDoc::AnyMethod[iI"datetime_format:EFI"%Rack::NullLogger#datetime_format;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/warn%3f-i.ri000064400000000367150402107100017557 0ustar00U:RDoc::AnyMethod[iI"
warn?:EFI"Rack::NullLogger#warn?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/sev_threshold-i.ri000064400000000407150402107100021156 0ustar00U:RDoc::AnyMethod[iI"sev_threshold:EFI"#Rack::NullLogger#sev_threshold;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/close-i.ri000064400000000367150402107100017417 0ustar00U:RDoc::AnyMethod[iI"
close:EFI"Rack::NullLogger#close;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/call-i.ri000064400000000370150402107100017217 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::NullLogger#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/unknown-i.ri000064400000000421150402107100020000 0ustar00U:RDoc::AnyMethod[iI"unknown:EFI"Rack::NullLogger#unknown;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(progname = nil, &block);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/fatal-i.ri000064400000000415150402107100017373 0ustar00U:RDoc::AnyMethod[iI"
fatal:EFI"Rack::NullLogger#fatal;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"(progname = nil, &block);T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/NullLogger/debug%3f-i.ri000064400000000371150402107100017671 0ustar00U:RDoc::AnyMethod[iI"debug?:EFI"Rack::NullLogger#debug?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/nulllogger.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"NullLogger;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Lobster/cdesc-Lobster.ri000064400000001300150402107110020102 0ustar00U:RDoc::NormalClass[iI"Lobster:ETI"Rack::Lobster;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"*Paste has a Pony, Rack has a Lobster!;T:
@fileI"lib/rack/lobster.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[U:RDoc::Constant[iI"LobsterString;FI"!Rack::Lobster::LobsterString;T00o;;[;
@;0@@cRDoc::NormalClass0U;[iI"LambdaLobster;FI"!Rack::Lobster::LambdaLobster;T00o;;[;
@;0@@@0[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;
[[I"	call;FI"lib/rack/lobster.rb;T[;[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Lobster/call-i.ri000064400000000357150402107110016565 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Lobster#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/lobster.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Lobster;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MethodOverride/allowed_methods-i.ri000064400000000430150402107110022322 0ustar00U:RDoc::AnyMethod[iI"allowed_methods:EFI")Rack::MethodOverride#allowed_methods;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/methodoverride.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"MethodOverride;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MethodOverride/cdesc-MethodOverride.ri000064400000001761150402107110022731 0ustar00U:RDoc::NormalClass[iI"MethodOverride:ETI"Rack::MethodOverride;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/methodoverride.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[	U:RDoc::Constant[iI"HTTP_METHODS;FI"'Rack::MethodOverride::HTTP_METHODS;T00o;;[;	@;
0@@cRDoc::NormalClass0U;[iI"METHOD_OVERRIDE_PARAM_KEY;FI"4Rack::MethodOverride::METHOD_OVERRIDE_PARAM_KEY;T00o;;[;	@;
0@@@0U;[iI" HTTP_METHOD_OVERRIDE_HEADER;FI"6Rack::MethodOverride::HTTP_METHOD_OVERRIDE_HEADER;T00o;;[;	@;
0@@@0U;[iI"ALLOWED_METHODS;FI"*Rack::MethodOverride::ALLOWED_METHODS;T00o;;[;	@;
0@@@0[[[I"
class;T[[:public[[I"new;TI"lib/rack/methodoverride.rb;T[:protected[[:private[[I"
instance;T[[;[[I"	call;F@3[I"method_override;F@3[;
[[;[[I"allowed_methods;F@3[I"method_override_param;F@3[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MethodOverride/method_override_param-i.ri000064400000000447150402107110023517 0ustar00U:RDoc::AnyMethod[iI"method_override_param:EFI"/Rack::MethodOverride#method_override_param;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/methodoverride.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(req);T@FI"MethodOverride;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MethodOverride/new-c.ri000064400000000403150402107110017733 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::MethodOverride::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/methodoverride.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"MethodOverride;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MethodOverride/method_override-i.ri000064400000000432150402107110022331 0ustar00U:RDoc::AnyMethod[iI"method_override:EFI")Rack::MethodOverride#method_override;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/methodoverride.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"MethodOverride;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MethodOverride/call-i.ri000064400000000404150402107110020064 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::MethodOverride#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/methodoverride.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"MethodOverride;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/server-i.ri000064400000000355150402107110017012 0ustar00U:RDoc::AnyMethod[iI"server:EFI"Rack::Server#server;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/write_pid-i.ri000064400000000364150402107110017472 0ustar00U:RDoc::AnyMethod[iI"write_pid:EFI"Rack::Server#write_pid;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/start-c.ri000064400000001725150402107110016635 0ustar00U:RDoc::AnyMethod[iI"
start:EFI"Rack::Server::start;TT:publico:RDoc::Markup::Document:@parts[
o:RDoc::Markup::Paragraph;	[I"MStart a new rack server (like running rackup). This will parse ARGV and ;TI"Jprovide standard ARGV rackup options, defaulting to load 'config.ru'.;To:RDoc::Markup::BlankLineo;
;	[I"NProviding an options hash will prevent ARGV parsing and will not include ;TI"any default options.;T@o;
;	[I"JThis method can be used to very easily launch a CGI application, for ;TI"
example:;T@o:RDoc::Markup::Verbatim;	[I"Rack::Server.start(
;TI"  :app => lambda do |e|
;TI"A    [200, {'Content-Type' => 'text/html'}, ['hello world']]
;TI"  end,
;TI"  :server => 'cgi'
;TI")
;T:@format0o;
;	[I"MFurther options available here are documented on Rack::Server#initialize;T:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"(options = nil);T@#FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/wrapped_app-i.ri000064400000000370150402107110020003 0ustar00U:RDoc::AnyMethod[iI"wrapped_app:EFI"Rack::Server#wrapped_app;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/parse_options-i.ri000064400000000400150402107110020360 0ustar00U:RDoc::AnyMethod[iI"parse_options:EFI"Rack::Server#parse_options;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"(args);T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/new-c.ri000064400000003632150402107110016270 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Server::new;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"Options may include:;To:RDoc::Markup::List:
@type:BULLET:@items[o:RDoc::Markup::ListItem:@label0;	[o;
;	[I"	:app;To:RDoc::Markup::Verbatim;	[I"3a rack application to run (overrides :config)
;T:@format0o;;0;	[o;
;	[I":config;To;;	[I"4a rackup configuration file path to load (.ru)
;T;0o;;0;	[o;
;	[I":environment;To;;	[I"=this selects the middleware that will be wrapped around
;TI"6your application. Default options available are:
;TI"=  - development: CommonLogger, ShowExceptions, and Lint
;TI""  - deployment: CommonLogger
;TI"#  - none: no extra middleware
;TI"Jnote: when the server is a cgi server, CommonLogger is not included.
;T;0o;;0;	[o;
;	[I":server;To;;	[I">choose a specific Rack::Handler, e.g. cgi, fcgi, webrick
;T;0o;;0;	[o;
;	[I":daemonize;To;;	[I"Cif true, the server will daemonize itself (fork, detach, etc)
;T;0o;;0;	[o;
;	[I"	:pid;To;;	[I".path to write a pid file after daemonize
;T;0o;;0;	[o;
;	[I"
:Host;To;;	[I"Dthe host address to bind to (used by supporting Rack::Handler)
;T;0o;;0;	[o;
;	[I"
:Port;To;;	[I"<the port to bind to (used by supporting Rack::Handler)
;T;0o;;0;	[o;
;	[I":AccessLog;To;;	[I">webrick access log options (or supporting Rack::Handler)
;T;0o;;0;	[o;
;	[I":debug;To;;	[I"*turn on debug output ($DEBUG = true)
;T;0o;;0;	[o;
;	[I"
:warn;To;;	[I"#turn on warnings ($-w = true)
;T;0o;;0;	[o;
;	[I"
:include;To;;	[I"#add given paths to $LOAD_PATH
;T;0o;;0;	[o;
;	[I"
:require;To;;	[I" require the given libraries;T;0:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"(options = nil);T@}FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/daemonize_app-i.ri000064400000000374150402107110020320 0ustar00U:RDoc::AnyMethod[iI"daemonize_app:EFI"Rack::Server#daemonize_app;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/logging_middleware-c.ri000064400000000406150402107110021316 0ustar00U:RDoc::AnyMethod[iI"logging_middleware:EFI"%Rack::Server::logging_middleware;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/Options/handler_opts-i.ri000064400000000412150402107110021613 0ustar00U:RDoc::AnyMethod[iI"handler_opts:EFI"'Rack::Server::Options#handler_opts;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"(options);T@FI"Options;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/Options/cdesc-Options.ri000064400000000720150402107110021417 0ustar00U:RDoc::NormalClass[iI"Options:ETI"Rack::Server::Options;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[I"handler_opts;FI"lib/rack/server.rb;T[I"parse!;F@#[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::Server;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/Options/parse%21-i.ri000064400000000373150402107110020461 0ustar00U:RDoc::AnyMethod[iI"parse!:EFI"!Rack::Server::Options#parse!;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"(args);T@FI"Options;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/build_app_and_options_from_config-i.ri000064400000000444150402107110024407 0ustar00U:RDoc::AnyMethod[iI"&build_app_and_options_from_config:EFI"3Rack::Server#build_app_and_options_from_config;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/app-i.ri000064400000000347150402107110016265 0ustar00U:RDoc::AnyMethod[iI"app:EFI"Rack::Server#app;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/middleware-c.ri000064400000000366150402107110017615 0ustar00U:RDoc::AnyMethod[iI"middleware:EFI"Rack::Server::middleware;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/build_app-i.ri000064400000000367150402107110017446 0ustar00U:RDoc::AnyMethod[iI"build_app:EFI"Rack::Server#build_app;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/options-i.ri000064400000000351150402107120017174 0ustar00U:RDoc::Attr[iI"options:ETI"Rack::Server#options;TI"W;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Server;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/default_options-i.ri000064400000000377150402107120020710 0ustar00U:RDoc::AnyMethod[iI"default_options:EFI"!Rack::Server#default_options;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/middleware-i.ri000064400000000365150402107120017623 0ustar00U:RDoc::AnyMethod[iI"middleware:EFI"Rack::Server#middleware;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/opt_parser-i.ri000064400000000366150402107120017665 0ustar00U:RDoc::AnyMethod[iI"opt_parser:EFI"Rack::Server#opt_parser;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/check_pid%21-i.ri000064400000000366150402107120017630 0ustar00U:RDoc::AnyMethod[iI"check_pid!:EFI"Rack::Server#check_pid!;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/pidfile_process_status-i.ri000064400000000416150402107120022260 0ustar00U:RDoc::AnyMethod[iI"pidfile_process_status:EFI"(Rack::Server#pidfile_process_status;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/build_app_from_string-i.ri000064400000000414150402107120022051 0ustar00U:RDoc::AnyMethod[iI"build_app_from_string:EFI"'Rack::Server#build_app_from_string;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/start-i.ri000064400000000357150402107120016644 0ustar00U:RDoc::AnyMethod[iI"
start:EFI"Rack::Server#start;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"(&blk);T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/cdesc-Server.ri000064400000001645150402107120017607 0ustar00U:RDoc::NormalClass[iI"Server:ETI"Rack::Server;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[
I"options;TI"W;T:publicFI"lib/rack/server.rb;T[[[[I"
class;T[[;[
[I"&default_middleware_by_environment;F@[I"logging_middleware;F@[I"middleware;F@[I"new;T@[I"
start;F@[:protected[[:private[[I"
instance;T[[;[[I"app;F@[I"default_options;F@[I"middleware;F@[I"options;F@[I"server;F@[I"
start;F@[;[[;
[[I"build_app;F@[I"&build_app_and_options_from_config;F@[I"build_app_from_string;F@[I"check_pid!;F@[I"daemonize_app;F@[I"opt_parser;F@[I"parse_options;F@[I"pidfile_process_status;F@[I"wrapped_app;F@[I"write_pid;F@[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Server/default_middleware_by_environment-c.ri000064400000000444150402107120024435 0ustar00U:RDoc::AnyMethod[iI"&default_middleware_by_environment:EFI"4Rack::Server::default_middleware_by_environment;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/server.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Server;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Cascade/cdesc-Cascade.ri000064400000001460150402107120017734 0ustar00U:RDoc::NormalClass[iI"Cascade:ETI"Rack::Cascade;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"DRack::Cascade tries a request on several apps, and returns the ;TI"Ifirst response that is not 404 or 405 (or in a list of configurable ;TI"status codes).;T:
@fileI"lib/rack/cascade.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[
I"	apps;TI"R;T:publicFI"lib/rack/cascade.rb;T[U:RDoc::Constant[iI"
NotFound;FI"Rack::Cascade::NotFound;T00o;;[;
@;0@@cRDoc::NormalClass0[[[I"
class;T[[;[[I"new;T@[:protected[[:private[[I"
instance;T[[;[	[I"<<;T@[I"add;F@[I"	call;F@[I"
include?;F@[;[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Cascade/new-c.ri000064400000000401150402107120016335 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Cascade::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/cascade.rb;T:0@omit_headings_from_table_of_contents_below000[I"(apps, catch=[404, 405]);T@FI"Cascade;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Cascade/apps-i.ri000064400000000346150402107120016525 0ustar00U:RDoc::Attr[iI"	apps:ETI"Rack::Cascade#apps;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/cascade.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Cascade;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Cascade/include%3f-i.ri000064400000000367150402107120017506 0ustar00U:RDoc::AnyMethod[iI"
include?:EFI"Rack::Cascade#include?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/cascade.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"Cascade;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Cascade/add-i.ri000064400000000407150402107120016310 0ustar00U:RDoc::AnyMethod[iI"add:EFI"Rack::Cascade#add;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/cascade.rb;T:0@omit_headings_from_table_of_contents_below000[[I"<<;To;;	[;
@;0I"
(app);T@FI"Cascade;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Cascade/%3c%3c-i.ri000064400000000413150402107120016422 0ustar00U:RDoc::AnyMethod[iI"<<:ETI"Rack::Cascade#<<;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/cascade.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"Cascade;TcRDoc::NormalClass0[I"Rack::Cascade;TFI"add;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Cascade/call-i.ri000064400000000357150402107120016477 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Cascade#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/cascade.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Cascade;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/delete-i.ri000064400000000401150402107120017733 0ustar00U:RDoc::AnyMethod[iI"delete:EFI"Rack::MockRequest#delete;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(uri, opts={});T@FI"MockRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/patch-i.ri000064400000000377150402107120017604 0ustar00U:RDoc::AnyMethod[iI"
patch:EFI"Rack::MockRequest#patch;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(uri, opts={});T@FI"MockRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/env_for-c.ri000064400000000545150402107120020132 0ustar00U:RDoc::AnyMethod[iI"env_for:EFI"Rack::MockRequest::env_for;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"=Return the Rack environment used for a request to +uri+.;T:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(uri="", opts={});T@FI"MockRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/new-c.ri000064400000000363150402107120017263 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::MockRequest::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"MockRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/request-i.ri000064400000000424150402107120020166 0ustar00U:RDoc::AnyMethod[iI"request:EFI"Rack::MockRequest#request;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"$(method="GET", uri="", opts={});T@FI"MockRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/put-i.ri000064400000000373150402107120017311 0ustar00U:RDoc::AnyMethod[iI"put:EFI"Rack::MockRequest#put;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(uri, opts={});T@FI"MockRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/get-i.ri000064400000000373150402107120017260 0ustar00U:RDoc::AnyMethod[iI"get:EFI"Rack::MockRequest#get;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(uri, opts={});T@FI"MockRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/parse_uri_rfc2396-c.ri000064400000000677150402107120021651 0ustar00U:RDoc::AnyMethod[iI"parse_uri_rfc2396:EFI")Rack::MockRequest::parse_uri_rfc2396;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"NFor historical reasons, we're pinning to RFC 2396. It's easier for users ;TI"?and we get support from ruby 1.8 to 2.2 using this method.;T:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(uri);T@FI"MockRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/FatalWarning/cdesc-FatalWarning.ri000064400000000651150402107120024263 0ustar00U:RDoc::NormalClass[iI"FatalWarning:ETI"$Rack::MockRequest::FatalWarning;TI"RuntimeError;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::MockRequest;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/head-i.ri000064400000000375150402107120017404 0ustar00U:RDoc::AnyMethod[iI"	head:EFI"Rack::MockRequest#head;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(uri, opts={});T@FI"MockRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/options-i.ri000064400000000403150402107120020166 0ustar00U:RDoc::AnyMethod[iI"options:EFI"Rack::MockRequest#options;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(uri, opts={});T@FI"MockRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/FatalWarner/cdesc-FatalWarner.ri000064400000000766150402107120023754 0ustar00U:RDoc::NormalClass[iI"FatalWarner:ETI"#Rack::MockRequest::FatalWarner;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[	[I"
flush;FI"lib/rack/mock.rb;T[I"	puts;F@#[I"string;F@#[I"
write;F@#[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"Rack::MockRequest;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/FatalWarner/string-i.ri000064400000000402150402107120022206 0ustar00U:RDoc::AnyMethod[iI"string:EFI"*Rack::MockRequest::FatalWarner#string;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"FatalWarner;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/FatalWarner/flush-i.ri000064400000000400150402107120022017 0ustar00U:RDoc::AnyMethod[iI"
flush:EFI")Rack::MockRequest::FatalWarner#flush;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"FatalWarner;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/FatalWarner/puts-i.ri000064400000000405150402107120021676 0ustar00U:RDoc::AnyMethod[iI"	puts:EFI"(Rack::MockRequest::FatalWarner#puts;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(warning);T@FI"FatalWarner;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/FatalWarner/write-i.ri000064400000000407150402107120022037 0ustar00U:RDoc::AnyMethod[iI"
write:EFI")Rack::MockRequest::FatalWarner#write;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(warning);T@FI"FatalWarner;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/cdesc-MockRequest.ri000064400000002752150402107120021577 0ustar00U:RDoc::NormalClass[iI"MockRequest:ETI"Rack::MockRequest;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"CRack::MockRequest helps testing your Rack application without ;TI"actually using HTTP.;To:RDoc::Markup::BlankLineo;	;[I"LAfter performing a request on a URL with get/post/put/patch/delete, it ;TI"Ereturns a MockResponse with useful helper methods for effective ;TI"
testing.;T@o;	;[I">You can pass a hash with additional configuration to the ;TI"get/post/put/patch/delete.;To:RDoc::Markup::List:
@type:	NOTE:@items[o:RDoc::Markup::ListItem:@label[I"<tt>:input</tt>;T;[o;	;[I"2A String or IO-like to be used as rack.input.;To;;[I"<tt>:fatal</tt>;T;[o;	;[I";Raise a FatalWarning if the app writes to rack.errors.;To;;[I"<tt>:lint</tt>;T;[o;	;[I"3If true, wrap the application in a Rack::Lint.;T:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[U:RDoc::Constant[iI"DEFAULT_ENV;FI"#Rack::MockRequest::DEFAULT_ENV;T00o;;[;@3;0@3@cRDoc::NormalClass0[[[I"
class;T[[:public[[I"env_for;FI"lib/rack/mock.rb;T[I"new;T@F[I"parse_uri_rfc2396;F@F[:protected[[:private[[I"
instance;T[[;[
[I"delete;F@F[I"get;F@F[I"	head;F@F[I"options;F@F[I"
patch;F@F[I"	post;F@F[I"put;F@F[I"request;F@F[;[[;[[[U:RDoc::Context::Section[i0o;;[;0;0[@3I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/MockRequest/post-i.ri000064400000000375150402107120017470 0ustar00U:RDoc::AnyMethod[iI"	post:EFI"Rack::MockRequest#post;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/mock.rb;T:0@omit_headings_from_table_of_contents_below000[I"(uri, opts={});T@FI"MockRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Config/cdesc-Config.ri000064400000001336150402107120017502 0ustar00U:RDoc::NormalClass[iI"Config:ETI"Rack::Config;TI"Object;To:RDoc::Markup::Document:@parts[o;;[	o:RDoc::Markup::Paragraph;[I"HRack::Config modifies the environment using the block given during ;TI"initialization.;To:RDoc::Markup::BlankLineo;	;[I"
Example:;To:RDoc::Markup::Verbatim;[I"use Rack::Config do |env|
;TI"$  env['my-key'] = 'some-value'
;TI"end;T:@format0:
@fileI"lib/rack/config.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/config.rb;T[:protected[[:private[[I"
instance;T[[;[[I"	call;F@'[;[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Config/new-c.ri000064400000000363150402107120016226 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Config::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/config.rb;T:0@omit_headings_from_table_of_contents_below000[I"(app, &block);T@FI"Config;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Config/call-i.ri000064400000000354150402107120016356 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Config#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/config.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Config;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/version-c.ri000064400000000472150402107130015717 0ustar00U:RDoc::AnyMethod[iI"version:EFI"Rack::version;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"9Return the Rack protocol version as a dotted string.;T:
@fileI"lib/rack.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"	Rack;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/_call-i.ri000064400000000367150402107130017261 0ustar00U:RDoc::AnyMethod[iI"
_call:EFI"Rack::Directory#_call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Directory;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/check_forbidden-i.ri000064400000000410150402107130021265 0ustar00U:RDoc::AnyMethod[iI"check_forbidden:EFI"$Rack::Directory#check_forbidden;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Directory;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/path-i.ri000064400000000355150402107130017140 0ustar00U:RDoc::Attr[iI"	path:ETI"Rack::Directory#path;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Directory;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/new-c.ri000064400000000376150402107130016772 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Directory::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below000[I"(root, app=nil);T@FI"Directory;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/root-i.ri000064400000000355150402107130017167 0ustar00U:RDoc::Attr[iI"	root:ETI"Rack::Directory#root;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Directory;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/DIR_FILE_escape-i.ri000064400000000530150402107130020734 0ustar00U:RDoc::AnyMethod[iI"DIR_FILE_escape:EFI"$Rack::Directory#DIR_FILE_escape;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"$Assumes url is already escaped.;T:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below000[I"(url, *html);T@FI"Directory;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/list_directory-i.ri000064400000000406150402107130021240 0ustar00U:RDoc::AnyMethod[iI"list_directory:EFI"#Rack::Directory#list_directory;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Directory;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/cdesc-Directory.ri000064400000002772150402107130021006 0ustar00U:RDoc::NormalClass[iI"Directory:ETI"Rack::Directory;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[	I"MRack::Directory serves entries below the +root+ given, according to the ;TI"Qpath info of the Rack request. If a directory is found, the file's contents ;TI"Pwill be presented in an html based index. If a file is found, the env will ;TI"&be passed to the specified +app+.;To:RDoc::Markup::BlankLineo;	;[I"MIf +app+ is not specified, a Rack::File of the same +root+ will be used.;T:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[
I"
files;TI"R;T:publicFI"lib/rack/directory.rb;T[
I"	path;TI"RW;T;
F@[
I"	root;TI"RW;T;
F@[	U:RDoc::Constant[iI"
DIR_FILE;FI"Rack::Directory::DIR_FILE;T00o;;[;@;0@@cRDoc::NormalClass0U;[iI"
DIR_PAGE;FI"Rack::Directory::DIR_PAGE;T00o;;[;@;0@@@+0U;[iI"F;FI"Rack::Directory::F;T00o;;[;@;0@@@+0U;[iI"FILESIZE_FORMAT;FI"%Rack::Directory::FILESIZE_FORMAT;T00o;;[o;	;[I"Stolen from Ramaze;T;@;0@@@+0[[[I"
class;T[[;
[[I"new;T@[:protected[[:private[[I"
instance;T[[;
[[I"
_call;F@[I"	call;F@[I"check_forbidden;F@[I"	each;F@[I"entity_not_found;F@[I"filesize_format;F@[I"list_directory;F@[I"list_path;F@[I"	stat;F@[;[[;[[I"DIR_FILE_escape;F@[[U:RDoc::Context::Section[i0o;;[;0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/each-i.ri000064400000000371150402107130017102 0ustar00U:RDoc::AnyMethod[iI"	each:EFI"Rack::Directory#each;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below00I"l;T[I"();T@FI"Directory;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/filesize_format-i.ri000064400000000413150402107130021361 0ustar00U:RDoc::AnyMethod[iI"filesize_format:EFI"$Rack::Directory#filesize_format;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(int);T@FI"Directory;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/call-i.ri000064400000000365150402107130017120 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Directory#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Directory;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/files-i.ri000064400000000356150402107130017307 0ustar00U:RDoc::Attr[iI"
files:ETI"Rack::Directory#files;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Directory;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/entity_not_found-i.ri000064400000000412150402107130021565 0ustar00U:RDoc::AnyMethod[iI"entity_not_found:EFI"%Rack::Directory#entity_not_found;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Directory;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/list_path-i.ri000064400000000636150402107130020175 0ustar00U:RDoc::AnyMethod[iI"list_path:EFI"Rack::Directory#list_path;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"LTODO: add correct response if not readable, not sure if 404 is the best;To:RDoc::Markup::Verbatim;	[I"option;T:@format0:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Directory;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Directory/stat-i.ri000064400000000400150402107130017146 0ustar00U:RDoc::AnyMethod[iI"	stat:EFI"Rack::Directory#stat;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/directory.rb;T:0@omit_headings_from_table_of_contents_below000[I"(node, max = 10);T@FI"Directory;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Chunked/Body/new-c.ri000064400000000362150402107130017277 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Chunked::Body::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/chunked.rb;T:0@omit_headings_from_table_of_contents_below000[I"(body);T@FI"	Body;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Chunked/Body/each-i.ri000064400000000423150402107130017412 0ustar00U:RDoc::AnyMethod[iI"	each:EFI"Rack::Chunked::Body#each;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/chunked.rb;T:0@omit_headings_from_table_of_contents_below00I"#[size, term, chunk, term].join;T[I"();T@FI"	Body;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Chunked/Body/close-i.ri000064400000000361150402107130017620 0ustar00U:RDoc::AnyMethod[iI"
close:EFI"Rack::Chunked::Body#close;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/chunked.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"	Body;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Chunked/Body/cdesc-Body.ri000064400000001353150402107130020243 0ustar00U:RDoc::NormalClass[iI"	Body:ETI"Rack::Chunked::Body;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"0A body wrapper that emits chunked responses;T:
@fileI"lib/rack/chunked.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[U:RDoc::Constant[iI"	TERM;FI"Rack::Chunked::Body::TERM;T00o;;[;
@;0@@cRDoc::NormalClass0U;[iI"	TAIL;FI"Rack::Chunked::Body::TAIL;T00o;;[;
@;0@@@0[[I"Rack::Utils;To;;[;
@;0I"lib/rack/chunked.rb;T[[I"
class;T[[:public[[I"new;T@&[:protected[[:private[[I"
instance;T[[;
[[I"
close;F@&[I"	each;F@&[;[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"Rack::Chunked;T@lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Chunked/new-c.ri000064400000000356150402107140016406 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Chunked::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/chunked.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"Chunked;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Chunked/cdesc-Chunked.ri000064400000001247150402107140020035 0ustar00U:RDoc::NormalClass[iI"Chunked:ETI"Rack::Chunked;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"JMiddleware that applies chunked transfer encoding to response bodies ;TI"@when the response does not include a Content-Length header.;T:
@fileI"lib/rack/chunked.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[I"Rack::Utils;To;;[;
@;0I"lib/rack/chunked.rb;T[[I"
class;T[[:public[[I"new;T@[:protected[[:private[[I"
instance;T[[;[[I"	call;F@[I"chunkable_version?;F@[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Chunked/call-i.ri000064400000000357150402107140016537 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::Chunked#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/chunked.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"Chunked;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Chunked/chunkable_version%3f-i.ri000064400000000630150402107140021615 0ustar00U:RDoc::AnyMethod[iI"chunkable_version?:EFI"%Rack::Chunked#chunkable_version?;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"Epre-HTTP/1.0 (informally "HTTP/0.9") HTTP requests did not have ;TI"%a version (nor response headers);T:
@fileI"lib/rack/chunked.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(ver);T@FI"Chunked;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Mime/match%3f-c.ri000064400000001175150402107140016515 0ustar00U:RDoc::AnyMethod[iI"match?:EFI"Rack::Mime::match?;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"NReturns true if the given value is a mime match for the given mime match ;TI"$specification, false otherwise.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim;	[I"6Rack::Mime.match?('text/html', 'text/*') => true
;TI"2Rack::Mime.match?('text/plain', '*') => true
;TI"@Rack::Mime.match?('text/html', 'application/json') => false;T:@format0:
@fileI"lib/rack/mime.rb;T:0@omit_headings_from_table_of_contents_below000[I"(value, matcher);T@FI"	Mime;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Mime/cdesc-Mime.ri000064400000002460150402107140016647 0ustar00U:RDoc::NormalModule[iI"	Mime:EFI"Rack::Mime;T0o:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/mime.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[U:RDoc::Constant[iI"MIME_TYPES;FI"Rack::Mime::MIME_TYPES;T00o;;[o:RDoc::Markup::Paragraph;[I">List of most common mime-types, selected various sources ;TI"Baccording to their usefulness in a webserving scope for Ruby ;TI"users.;To:RDoc::Markup::BlankLineo;;[I"DTo amend this list with your local mime.types list you can use:;T@o:RDoc::Markup::Verbatim;[I"!require 'webrick/httputils'
;TI"Blist = WEBrick::HTTPUtils.load_mime_types('/etc/mime.types')
;TI")Rack::Mime::MIME_TYPES.merge!(list)
;T:@format0o;;[I"PN.B. On Ubuntu the mime.types file does not include the leading period, so ;TI"Dusers may need to modify the data before merging into the hash.;T@o;;[I"+To add the list mongrel provides, use:;T@o;;[I" require 'mongrel/handlers'
;TI"CRack::Mime::MIME_TYPES.merge!(Mongrel::DirHandler::MIME_TYPES);T;0;	@
;
0@
@cRDoc::NormalModule0[[[I"
class;T[[:public[[I"match?;FI"lib/rack/mime.rb;T[I"mime_type;F@9[:protected[[:private[[I"
instance;T[[;[[;[[;[[@8@9[@;@9[[U:RDoc::Context::Section[i0o;;[;	0;
0[@
I"	Rack;F@/lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Mime/mime_type-c.ri000064400000001511150402107140017105 0ustar00U:RDoc::AnyMethod[iI"mime_type:EFI"Rack::Mime::mime_type;TT:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"GReturns String with mime type if found, otherwise use +fallback+. ;TI"A+ext+ should be filename extension in the '.ext' format that;To:RDoc::Markup::Verbatim;	[I"!File.extname(file) returns.
;T:@format0o;
;	[I"!+fallback+ may be any object;To:RDoc::Markup::BlankLineo;
;	[I".Also see the documentation for MIME_TYPES;T@o;
;	[I"Usage:;To;;	[I""Rack::Mime.mime_type('.foo')
;T;0o;
;	[I"This is a shortcut for:;To;;	[I"ERack::Mime::MIME_TYPES.fetch('.foo', 'application/octet-stream');T;0:
@fileI"lib/rack/mime.rb;T:0@omit_headings_from_table_of_contents_below000[I"/(ext, fallback='application/octet-stream');T@%FI"	Mime;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Mime/match%3f-i.ri000064400000001175150402107140016523 0ustar00U:RDoc::AnyMethod[iI"match?:EFI"Rack::Mime#match?;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"NReturns true if the given value is a mime match for the given mime match ;TI"$specification, false otherwise.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim;	[I"6Rack::Mime.match?('text/html', 'text/*') => true
;TI"2Rack::Mime.match?('text/plain', '*') => true
;TI"@Rack::Mime.match?('text/html', 'application/json') => false;T:@format0:
@fileI"lib/rack/mime.rb;T:0@omit_headings_from_table_of_contents_below000[I"(value, matcher);T@FI"	Mime;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Mime/mime_type-i.ri000064400000001511150402107140017113 0ustar00U:RDoc::AnyMethod[iI"mime_type:EFI"Rack::Mime#mime_type;TF:privateo:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"GReturns String with mime type if found, otherwise use +fallback+. ;TI"A+ext+ should be filename extension in the '.ext' format that;To:RDoc::Markup::Verbatim;	[I"!File.extname(file) returns.
;T:@format0o;
;	[I"!+fallback+ may be any object;To:RDoc::Markup::BlankLineo;
;	[I".Also see the documentation for MIME_TYPES;T@o;
;	[I"Usage:;To;;	[I""Rack::Mime.mime_type('.foo')
;T;0o;
;	[I"This is a shortcut for:;To;;	[I"ERack::Mime::MIME_TYPES.fetch('.foo', 'application/octet-stream');T;0:
@fileI"lib/rack/mime.rb;T:0@omit_headings_from_table_of_contents_below000[I"/(ext, fallback='application/octet-stream');T@%FI"	Mime;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/BodyProxy/respond_to%3f-i.ri000064400000000406150402107140020647 0ustar00U:RDoc::AnyMethod[iI"respond_to?:EFI" Rack::BodyProxy#respond_to?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/body_proxy.rb;T:0@omit_headings_from_table_of_contents_below000[I"(*args);T@TI"BodyProxy;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/BodyProxy/closed%3f-i.ri000064400000000371150402107140017745 0ustar00U:RDoc::AnyMethod[iI"closed?:EFI"Rack::BodyProxy#closed?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/body_proxy.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"BodyProxy;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/BodyProxy/new-c.ri000064400000000376150402107150016767 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::BodyProxy::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/body_proxy.rb;T:0@omit_headings_from_table_of_contents_below000[I"(body, &block);T@FI"BodyProxy;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/BodyProxy/method_missing-i.ri000064400000000424150402107150021207 0ustar00U:RDoc::AnyMethod[iI"method_missing:EFI"#Rack::BodyProxy#method_missing;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/body_proxy.rb;T:0@omit_headings_from_table_of_contents_below000[I"(*args, &block);T@TI"BodyProxy;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/BodyProxy/cdesc-BodyProxy.ri000064400000001023150402107150020762 0ustar00U:RDoc::NormalClass[iI"BodyProxy:ETI"Rack::BodyProxy;TI"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/body_proxy.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[[I"new;TI"lib/rack/body_proxy.rb;T[:protected[[:private[[I"
instance;T[[;[
[I"
close;F@[I"closed?;F@[I"	each;F@[I"method_missing;F@[I"respond_to?;F@[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/BodyProxy/each-i.ri000064400000001106150402107150017074 0ustar00U:RDoc::AnyMethod[iI"	each:EFI"Rack::BodyProxy#each;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[	I"NN.B. This method is a special case to address the bug described by #434. ;TI"KWe are applying this special case for #each only. Future bugs of this ;TI"Cclass will be handled by requesting users to patch their ruby ;TI"Cimplementation, to save adding too many methods in this class.;T:
@fileI"lib/rack/body_proxy.rb;T:0@omit_headings_from_table_of_contents_below000[I"(*args, &block);T@FI"BodyProxy;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/BodyProxy/close-i.ri000064400000000365150402107150017307 0ustar00U:RDoc::AnyMethod[iI"
close:EFI"Rack::BodyProxy#close;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/body_proxy.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"BodyProxy;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/empty%3f-i.ri000064400000000363150402107150017473 0ustar00U:RDoc::AnyMethod[iI"empty?:EFI"Rack::Response#empty?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
Response;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/delete_cookie-i.ri000064400000000416150402107150020631 0ustar00U:RDoc::AnyMethod[iI"delete_cookie:EFI"!Rack::Response#delete_cookie;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"(key, value={});T@FI"
Response;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/new-c.ri000064400000000426150402107150016622 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::Response::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below00I"	self;T[I"%(body=[], status=200, header={});T@FI"
Response;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/to_ary-i.ri000064400000000435150402107150017334 0ustar00U:RDoc::AnyMethod[iI"to_ary:EFI"Rack::Response#to_ary;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(&block);T@FI"
Response;TcRDoc::NormalClass0[I"Rack::Response;TFI"finish;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/unprocessable%3f-i.ri000064400000000414150402107150022601 0ustar00U:RDoc::AnyMethod[iI"unprocessable?:EFI"+Rack::Response::Helpers#unprocessable?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/not_found%3f-i.ri000064400000000404150402107150021726 0ustar00U:RDoc::AnyMethod[iI"not_found?:EFI"'Rack::Response::Helpers#not_found?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/location-i.ri000064400000000400150402107150021241 0ustar00U:RDoc::AnyMethod[iI"
location:EFI"%Rack::Response::Helpers#location;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/invalid%3f-i.ri000064400000000400150402107150021355 0ustar00U:RDoc::AnyMethod[iI"
invalid?:EFI"%Rack::Response::Helpers#invalid?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/informational%3f-i.ri000064400000000414150402107160022577 0ustar00U:RDoc::AnyMethod[iI"informational?:EFI"+Rack::Response::Helpers#informational?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/original_headers-i.ri000064400000000501150402107160022733 0ustar00U:RDoc::Attr[iI"original_headers:ETI"-Rack::Response::Helpers#original_headers;TI"R;T:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"Headers;T:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Response::Helpers;TcRDoc::NormalModule0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/redirect%3f-i.ri000064400000000402150402107160021533 0ustar00U:RDoc::AnyMethod[iI"redirect?:EFI"&Rack::Response::Helpers#redirect?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/created%3f-i.ri000064400000000400150402107160021337 0ustar00U:RDoc::AnyMethod[iI"
created?:EFI"%Rack::Response::Helpers#created?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/accepted%3f-i.ri000064400000000402150402107160021502 0ustar00U:RDoc::AnyMethod[iI"accepted?:EFI"&Rack::Response::Helpers#accepted?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/server_error%3f-i.ri000064400000000412150402107160022452 0ustar00U:RDoc::AnyMethod[iI"server_error?:EFI"*Rack::Response::Helpers#server_error?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/include%3f-i.ri000064400000000406150402107160021361 0ustar00U:RDoc::AnyMethod[iI"
include?:EFI"%Rack::Response::Helpers#include?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(header);T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/bad_request%3f-i.ri000064400000000410150402107160022227 0ustar00U:RDoc::AnyMethod[iI"bad_request?:EFI")Rack::Response::Helpers#bad_request?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/content_length-i.ri000064400000000414150402107160022452 0ustar00U:RDoc::AnyMethod[iI"content_length:EFI"+Rack::Response::Helpers#content_length;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/successful%3f-i.ri000064400000000406150402107160022115 0ustar00U:RDoc::AnyMethod[iI"successful?:EFI"(Rack::Response::Helpers#successful?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/unauthorized%3f-i.ri000064400000000412150402107160022454 0ustar00U:RDoc::AnyMethod[iI"unauthorized?:EFI"*Rack::Response::Helpers#unauthorized?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/ok%3f-i.ri000064400000000366150402107160020354 0ustar00U:RDoc::AnyMethod[iI"ok?:EFI" Rack::Response::Helpers#ok?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/content_type-i.ri000064400000000410150402107160022146 0ustar00U:RDoc::AnyMethod[iI"content_type:EFI")Rack::Response::Helpers#content_type;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/forbidden%3f-i.ri000064400000000404150402107160021670 0ustar00U:RDoc::AnyMethod[iI"forbidden?:EFI"'Rack::Response::Helpers#forbidden?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/method_not_allowed%3f-i.ri000064400000000426150402107160023607 0ustar00U:RDoc::AnyMethod[iI"method_not_allowed?:EFI"0Rack::Response::Helpers#method_not_allowed?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/headers-i.ri000064400000000457150402107160021061 0ustar00U:RDoc::Attr[iI"headers:ETI"$Rack::Response::Helpers#headers;TI"R;T:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"Headers;T:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Response::Helpers;TcRDoc::NormalModule0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/client_error%3f-i.ri000064400000000412150402107160022422 0ustar00U:RDoc::AnyMethod[iI"client_error?:EFI"*Rack::Response::Helpers#client_error?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/i_m_a_teapot%3f-i.ri000064400000000412150402107160022353 0ustar00U:RDoc::AnyMethod[iI"i_m_a_teapot?:EFI"*Rack::Response::Helpers#i_m_a_teapot?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/cdesc-Helpers.ri000064400000001662150402107160021700 0ustar00U:RDoc::NormalModule[iI"Helpers:EFI"Rack::Response::Helpers;T0o:RDoc::Markup::Document:@parts[o;;[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[
I"headers;TI"R;T:publicFI"lib/rack/response.rb;T[
I"original_headers;T@;F@[[[[I"
class;T[[;[[:protected[[:private[[I"
instance;T[[;[[I"accepted?;F@[I"bad_request?;F@[I"client_error?;F@[I"content_length;F@[I"content_type;F@[I"
created?;F@[I"forbidden?;F@[I"i_m_a_teapot?;F@[I"
include?;F@[I"informational?;F@[I"
invalid?;F@[I"
location;F@[I"method_not_allowed?;F@[I"not_found?;F@[I"ok?;F@[I"redirect?;F@[I"redirection?;F@[I"server_error?;F@[I"successful?;F@[I"unauthorized?;F@[I"unprocessable?;F@[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@
I"Rack::Response;TcRDoc::NormalClasslib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/Helpers/redirection%3f-i.ri000064400000000410150402107160022240 0ustar00U:RDoc::AnyMethod[iI"redirection?:EFI")Rack::Response::Helpers#redirection?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"Helpers;FcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/header-i.ri000064400000000355150402107170017272 0ustar00U:RDoc::Attr[iI"header:ETI"Rack::Response#header;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Response;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/set_cookie-i.ri000064400000000405150402107170020162 0ustar00U:RDoc::AnyMethod[iI"set_cookie:EFI"Rack::Response#set_cookie;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"(key, value);T@FI"
Response;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/redirect-i.ri000064400000000411150402107170017634 0ustar00U:RDoc::AnyMethod[iI"
redirect:EFI"Rack::Response#redirect;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"(target, status=302);T@FI"
Response;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/%5b%5d-i.ri000064400000000356150402107170016714 0ustar00U:RDoc::AnyMethod[iI"[]:EFI"Rack::Response#[];TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(key);T@FI"
Response;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/cdesc-Response.ri000064400000003143150402107170020467 0ustar00U:RDoc::NormalClass[iI"
Response:ETI"Rack::Response;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"ERack::Response provides a convenient interface to create a Rack ;TI"response.;To:RDoc::Markup::BlankLineo;	;[I"CIt allows setting of headers and cookies, and provides useful ;TI".defaults (a OK response containing HTML).;T@o;	;[	I"GYou can use Response#write to iteratively generate your response, ;TI"Ebut note that this is buffered by Rack::Response until you call ;TI"H+finish+.  +finish+ however can take a block inside which calls to ;TI"4+write+ are synchronous with the Rack response.;T@o;	;[I"DYour application's +call+ should end returning Response#finish.;T:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[
[
I"	body;TI"RW;T:publicFI"lib/rack/response.rb;T[
I"header;TI"R;T;
F@%[
I"headers;F@(;
F@%[
I"length;TI"RW;T;
F@%[
I"status;TI"RW;T;
F@%[U:RDoc::Constant[iI"CHUNKED;FI"Rack::Response::CHUNKED;T00o;;[;@ ;0@ @cRDoc::NormalClass0U;[iI"TRANSFER_ENCODING;FI"&Rack::Response::TRANSFER_ENCODING;T00o;;[;@ ;0@ @@80[[I"Helpers;To;;[;@ ;0@%[[I"
class;T[[;
[[I"new;T@%[:protected[[:private[[I"
instance;T[[;
[[I"[];F@%[I"[]=;F@%[I"
close;F@%[I"delete_cookie;F@%[I"	each;F@%[I"empty?;F@%[I"finish;F@%[I"
redirect;F@%[I"set_cookie;F@%[I"	to_a;F@%[I"to_ary;F@%[I"
write;F@%[;[[;[[[U:RDoc::Context::Section[i0o;;[;0;0[@ I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/finish-i.ri000064400000000463150402107170017322 0ustar00U:RDoc::AnyMethod[iI"finish:EFI"Rack::Response#finish;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[[I"	to_a;Fo;;	[;
@;0[I"to_ary;Fo;;	[;
@;0I"
(&block);T@FI"
Response;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/each-i.ri000064400000000370150402107170016737 0ustar00U:RDoc::AnyMethod[iI"	each:EFI"Rack::Response#each;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"(&callback);T@FI"
Response;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/length-i.ri000064400000000356150402107170017324 0ustar00U:RDoc::Attr[iI"length:ETI"Rack::Response#length;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Response;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/body-i.ri000064400000000352150402107170016774 0ustar00U:RDoc::Attr[iI"	body:ETI"Rack::Response#body;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Response;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/write-i.ri000064400000000635150402107170017175 0ustar00U:RDoc::AnyMethod[iI"
write:EFI"Rack::Response#write;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I".Append to body and update Content-Length.;To:RDoc::Markup::BlankLineo;
;	[I"5NOTE: Do not mix #write and direct #body access!;T:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(str);T@FI"
Response;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/status-i.ri000064400000000356150402107170017366 0ustar00U:RDoc::Attr[iI"status:ETI"Rack::Response#status;TI"RW;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Response;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/close-i.ri000064400000000361150402107170017144 0ustar00U:RDoc::AnyMethod[iI"
close:EFI"Rack::Response#close;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
Response;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/headers-i.ri000064400000000357150402107170017457 0ustar00U:RDoc::Attr[iI"headers:EFI"Rack::Response#headers;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::Response;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/to_a-i.ri000064400000000431150402107170016757 0ustar00U:RDoc::AnyMethod[iI"	to_a:EFI"Rack::Response#to_a;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(&block);T@FI"
Response;TcRDoc::NormalClass0[I"Rack::Response;TFI"finish;Flib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/Response/%5b%5d%3d-i.ri000064400000000367150402107170017212 0ustar00U:RDoc::AnyMethod[iI"[]=:EFI"Rack::Response#[]=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/response.rb;T:0@omit_headings_from_table_of_contents_below000[I"(key, value);T@FI"
Response;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ForwardRequest/new-c.ri000064400000000406150402107170020001 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::ForwardRequest::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/recursive.rb;T:0@omit_headings_from_table_of_contents_below000[I"(url, env={});T@TI"ForwardRequest;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ForwardRequest/cdesc-ForwardRequest.ri000064400000001361150402107170023025 0ustar00U:RDoc::NormalClass[iI"ForwardRequest:ETI"Rack::ForwardRequest;TI"Exception;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"GRack::ForwardRequest gets caught by Rack::Recursive and redirects ;TI"-the current request to the app at +url+.;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim;[I"+raise ForwardRequest.new("/not-found");T:@format0:
@fileI"lib/rack/recursive.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[
I"env;TI"R;T:publicFI"lib/rack/recursive.rb;T[
I"url;T@;F@[[[[I"
class;T[[;[[I"new;T@[:protected[[:private[[I"
instance;T[[;[[;[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ForwardRequest/env-i.ri000064400000000364150402107170020011 0ustar00U:RDoc::Attr[iI"env:ETI"Rack::ForwardRequest#env;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/recursive.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::ForwardRequest;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ForwardRequest/url-i.ri000064400000000364150402107170020023 0ustar00U:RDoc::Attr[iI"url:ETI"Rack::ForwardRequest#url;TI"R;T:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/recursive.rb;T:0@omit_headings_from_table_of_contents_below0F@I"Rack::ForwardRequest;TcRDoc::NormalClass0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ContentType/cdesc-ContentType.ri000064400000001460150402107170021623 0ustar00U:RDoc::NormalClass[iI"ContentType:ETI"Rack::ContentType;TI"Object;To:RDoc::Markup::Document:@parts[o;;[
o:RDoc::Markup::Paragraph;[I"DSets the Content-Type header on responses which don't have one.;To:RDoc::Markup::BlankLineo;	;[I"Builder Usage:;To:RDoc::Markup::Verbatim;[I")use Rack::ContentType, "text/plain"
;T:@format0o;	;[I"GWhen no content type argument is provided, "text/html" is assumed.;T:
@fileI"lib/rack/content_type.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[I"Rack::Utils;To;;[;
@;0I"lib/rack/content_type.rb;T[[I"
class;T[[:public[[I"new;T@#[:protected[[:private[[I"
instance;T[[;[[I"	call;F@#[;[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ContentType/new-c.ri000064400000000427150402107170017303 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::ContentType::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/content_type.rb;T:0@omit_headings_from_table_of_contents_below000[I"&(app, content_type = "text/html");T@FI"ContentType;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ContentType/call-i.ri000064400000000374150402107170017434 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::ContentType#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/content_type.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ContentType;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ETag/cdesc-ETag.ri000064400000002445150402107170016537 0ustar00U:RDoc::NormalClass[iI"	ETag:ETI"Rack::ETag;TI"Object;To:RDoc::Markup::Document:@parts[o;;[
o:RDoc::Markup::Paragraph;[I"=Automatically sets the ETag header on all String bodies.;To:RDoc::Markup::BlankLineo;	;[I"PThe ETag header is skipped if ETag or Last-Modified headers are sent or if ;TI"La sendfile body (body.responds_to :to_path) is given (since such cases ;TI"(should be handled by apache/nginx).;T@o;	;[I"OOn initialization, you can pass two parameters: a Cache-Control directive ;TI"Lused when Etag is absent and a directive when it is present. The first ;TI"Xdefaults to nil, while the second defaults to "max-age=0, private, must-revalidate";T:
@fileI"lib/rack/etag.rb;T:0@omit_headings_from_table_of_contents_below0;0;0[[U:RDoc::Constant[iI"ETAG_STRING;FI"Rack::ETag::ETAG_STRING;T00o;;[;@;0@@cRDoc::NormalClass0U;
[iI"DEFAULT_CACHE_CONTROL;FI"&Rack::ETag::DEFAULT_CACHE_CONTROL;T00o;;[;@;0@@@%0[[[I"
class;T[[:public[[I"new;TI"lib/rack/etag.rb;T[:protected[[:private[[I"
instance;T[[;[[I"	call;F@5[;[[;[	[I"digest_body;F@5[I"etag_body?;F@5[I"etag_status?;F@5[I"skip_caching?;F@5[[U:RDoc::Context::Section[i0o;;[;0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ETag/new-c.ri000064400000000444150402107170015646 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::ETag::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/etag.rb;T:0@omit_headings_from_table_of_contents_below000[I"I(app, no_cache_control = nil, cache_control = DEFAULT_CACHE_CONTROL);T@FI"	ETag;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ETag/digest_body-i.ri000064400000000366150402107170017362 0ustar00U:RDoc::AnyMethod[iI"digest_body:EFI"Rack::ETag#digest_body;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/etag.rb;T:0@omit_headings_from_table_of_contents_below000[I"(body);T@FI"	ETag;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ETag/etag_status%3f-i.ri000064400000000372150402107170017704 0ustar00U:RDoc::AnyMethod[iI"etag_status?:EFI"Rack::ETag#etag_status?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/etag.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(status);T@FI"	ETag;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ETag/skip_caching%3f-i.ri000064400000000375150402107170020006 0ustar00U:RDoc::AnyMethod[iI"skip_caching?:EFI"Rack::ETag#skip_caching?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/etag.rb;T:0@omit_headings_from_table_of_contents_below000[I"(headers);T@FI"	ETag;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ETag/call-i.ri000064400000000346150402107170015777 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::ETag#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/etag.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"	ETag;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ETag/etag_body%3f-i.ri000064400000000364150402107170017317 0ustar00U:RDoc::AnyMethod[iI"etag_body?:EFI"Rack::ETag#etag_body?;TF:privateo:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/etag.rb;T:0@omit_headings_from_table_of_contents_below000[I"(body);T@FI"	ETag;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ContentLength/new-c.ri000064400000000401150402107170017573 0ustar00U:RDoc::AnyMethod[iI"new:ETI"Rack::ContentLength::new;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/content_length.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(app);T@FI"ContentLength;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ContentLength/cdesc-ContentLength.ri000064400000001142150402107170022420 0ustar00U:RDoc::NormalClass[iI"ContentLength:ETI"Rack::ContentLength;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"JSets the Content-Length header on responses with fixed-length bodies.;T:
@fileI"lib/rack/content_length.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[[[I"Rack::Utils;To;;[;
@;0I"lib/rack/content_length.rb;T[[I"
class;T[[:public[[I"new;T@[:protected[[:private[[I"
instance;T[[;[[I"	call;F@[;
[[;[[[U:RDoc::Context::Section[i0o;;[;
0;0[@I"	Rack;FcRDoc::NormalModulelib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/Rack/ContentLength/call-i.ri000064400000000402150402107170017724 0ustar00U:RDoc::AnyMethod[iI"	call:EFI"Rack::ContentLength#call;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"lib/rack/content_length.rb;T:0@omit_headings_from_table_of_contents_below000[I"
(env);T@FI"ContentLength;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/page-HISTORY_md.ri000064400000055377150402107170015707 0ustar00U:RDoc::TopLevel[	iI"HISTORY.md:ETcRDoc::Parser::Markdowno:RDoc::Markup::Document:@parts[Oo:RDoc::Markup::Paragraph;[I"FFri Jun 19 07:14:50 2015 Matthew Draper mailto:matthew@trebex.net;To:RDoc::Markup::Verbatim;[I"B    * Work around a Rails incompatibility in our private API
;T:@format0o;	;[I"MFri Jun 12 11:37:41 2015 Aaron Patterson mailto:tenderlove@ruby-lang.org;To;
;[I"N    * Prevent extremely deep parameters from being parsed. CVE-2015-3225
;T;0S:RDoc::Markup::Heading:
leveli:	textI"5December 18th, Thirty sixth public release 1.6.0;TS;;
i;I"4February 7th, Thirty fifth public release 1.5.2;To:RDoc::Markup::List:
@type:BULLET:@items[
o:RDoc::Markup::ListItem:@label0;[o;	;[I"CFix CVE-2013-0263, timing attack against Rack::Session::Cookie;To;;0;[o;	;[I"<Fix CVE-2013-0262, symlink path traversal in Rack::File;To;;0;[o;	;[I"DAdd various methods to Session for enhanced Rails compatibility;To;;0;[o;	;[I":Request#trusted_proxy? now only matches whole stirngs;To;;0;[o;	;[I"OAdd JSON cookie coder, to be default in Rack 1.6+ due to security concerns;To;;0;[o;	;[I"NURLMap host matching in environments that don't set the Host header fixed;To;;0;[o;	;[I"CFix a race condition that could result in overwritten pidfiles;To;;0;[o;	;[I"$Various documentation additions;TS;;
i;I"4February 7th, Thirty fifth public release 1.4.5;To;;;;[o;;0;[o;	;[I"CFix CVE-2013-0263, timing attack against Rack::Session::Cookie;To;;0;[o;	;[I"<Fix CVE-2013-0262, symlink path traversal in Rack::File;TS;;
i;I"CFebruary 7th, Thirty fifth public release 1.1.6, 1.2.8, 1.3.10;To;;;;[o;;0;[o;	;[I"CFix CVE-2013-0263, timing attack against Rack::Session::Cookie;TS;;
i;I";January 28th, 2013: Thirty fourth public release 1.5.1;To;;;;[o;;0;[o;	;[I"@Rack::Lint check_hijack now conforms to other parts of SPEC;To;;0;[o;	;[I"KAdded hash-like methods to Abstract::ID::SessionHash for compatibility;To;;0;[o;	;[I"&Various documentation corrections;TS;;
i;I":January 21st, 2013: Thirty third public release 1.5.0;To;;;;[o;;0;[o;	;[I"MIntroduced hijack SPEC, for before-response and after-response hijacking;To;;0;[o;	;[I"-SessionHash is no longer a Hash subclass;To;;0;[o;	;[I"ORack::File cache_control parameter is removed, in place of headers options;To;;0;[o;	;[I"GRack::Auth::AbstractRequest#scheme now yields strings, not symbols;To;;0;[o;	;[I"GRack::Utils cookie functions now format expires in RFC 2822 format;To;;0;[o;	;[I"+Rack::File now has a default mime type;To;;0;[o;	;[I"Nrackup -b 'run Rack::File.new(".")', option provides command line configs;To;;0;[o;	;[I"7Rack::Deflater will no longer double encode bodies;To;;0;[o;	;[I"FRack::Mime#match? provides convenience for Accept header matching;To;;0;[o;	;[I"?Rack::Utils#q_values provides splitting for Accept headers;To;;0;[o;	;[I"BRack::Utils#best_q_match provides a helper for Accept headers;To;;0;[o;	;[I"JRack::Handler.pick provides convenience for finding available servers;To;;0;[o;	;[I"GPuma added to the list of default servers (preferred over Webrick);To;;0;[o;	;[I"BVarious middleware now correctly close body when replacing it;To;;0;[o;	;[I"FRack::Request#params is no longer persistent with only GET params;To;;0;[o;	;[I"ORack::Request#update_param and #delete_param provide persistent operations;To;;0;[o;	;[I"IRack::Request#trusted_proxy? now returns true for local unix sockets;To;;0;[o;	;[I"2Rack::Response no longer forces Content-Types;To;;0;[o;	;[I"@Rack::Sendfile provides local mapping configuration options;To;;0;[o;	;[I"@Rack::Utils#rfc2109 provides old netscape style time output;To;;0;[o;	;[I"Updated HTTP status codes;To;;0;[o;	;[I"ORuby 1.8.6 likely no longer passes tests, and is no longer fully supported;TS;;
i;I"PJanuary 13th, 2013: Thirty second public release 1.4.4, 1.3.9, 1.2.7, 1.1.5;To;;;;[o;;0;[o;	;[I"M[SEC] Rack::Auth::AbstractRequest no longer symbolizes arbitrary strings;To;;0;[o;	;[I"2Fixed erroneous test case in the 1.3.x series;TS;;
i;I"9January 7th, 2013: Thirty first public release 1.4.3;To;;;;[o;;0;[o;	;[I"DSecurity: Prevent unbounded reads in large multipart boundaries;TS;;
i;I"6January 7th, 2013: Thirtieth public release 1.3.8;To;;;;[o;;0;[o;	;[I"DSecurity: Prevent unbounded reads in large multipart boundaries;TS;;
i;I"9January 6th, 2013: Twenty ninth public release 1.4.2;To;;;;[!o;;0;[o;	;[I"<Add warnings when users do not provide a session secret;To;;0;[o;	;[I"3Fix parsing performance for unquoted filenames;To;;0;[o;	;[I"Updated URI backports;To;;0;[o;	;[I"EFix URI backport version matching, and silence constant warnings;To;;0;[o;	;[I"0Correct parameter parsing with empty values;To;;0;[o;	;[I"5Correct rackup '-I' flag, to allow multiple uses;To;;0;[o;	;[I"$Correct rackup pidfile handling;To;;0;[o;	;[I")Report rackup line numbers correctly;To;;0;[o;	;[I"BFix request loops caused by non-stale nonces with time limits;To;;0;[o;	;[I"Fix reloader on Windows;To;;0;[o;	;[I"5Prevent infinite recursions from Response#to_ary;To;;0;[o;	;[I"GVarious middleware better conforms to the body close specification;To;;0;[o;	;[I"6Updated language for the body close specification;To;;0;[o;	;[I"@Additional notes regarding ECMA escape compatibility issues;To;;0;[o;	;[I"8Fix the parsing of multiple ranges in range headers;To;;0;[o;	;[I"-Prevent errors from empty parameter keys;To;;0;[o;	;[I"&Added PATCH verb to Rack::Request;To;;0;[o;	;[I""Various documentation updates;To;;0;[o;	;[I"2Fix session merge semantics (fixes rack-test);To;;0;[o;	;[I"<Rack::Static :index can now handle multiple directories;To;;0;[o;	;[I"EAll tests now utilize Rack::Lint (special thanks to Lars Gierth);To;;0;[o;	;[I"MRack::File cache_control parameter is now deprecated, and removed by 1.5;To;;0;[o;	;[I"1Correct Rack::Directory script name escaping;To;;0;[o;	;[I"HRack::Static supports header rules for sophisticated configurations;To;;0;[o;	;[I"@Multipart parsing now works without a Content-Length header;To;;0;[o;	;[I")New logos courtesy of Zachary Scott!;To;;0;[o;	;[I"JRack::BodyProxy now explicitly defines #each, useful for C extensions;To;;0;[o;	;[I"@Cookies that are not URI escaped no longer cause exceptions;TS;;
i;I":January 6th, 2013: Twenty eighth public release 1.3.7;To;;;;[o;;0;[o;	;[I"<Add warnings when users do not provide a session secret;To;;0;[o;	;[I"3Fix parsing performance for unquoted filenames;To;;0;[o;	;[I"Updated URI backports;To;;0;[o;	;[I"EFix URI backport version matching, and silence constant warnings;To;;0;[o;	;[I"0Correct parameter parsing with empty values;To;;0;[o;	;[I"5Correct rackup '-I' flag, to allow multiple uses;To;;0;[o;	;[I"$Correct rackup pidfile handling;To;;0;[o;	;[I")Report rackup line numbers correctly;To;;0;[o;	;[I"BFix request loops caused by non-stale nonces with time limits;To;;0;[o;	;[I"Fix reloader on Windows;To;;0;[o;	;[I"5Prevent infinite recursions from Response#to_ary;To;;0;[o;	;[I"GVarious middleware better conforms to the body close specification;To;;0;[o;	;[I"6Updated language for the body close specification;To;;0;[o;	;[I"@Additional notes regarding ECMA escape compatibility issues;To;;0;[o;	;[I"8Fix the parsing of multiple ranges in range headers;TS;;
i;I";January 6th, 2013: Twenty seventh public release 1.2.6;To;;;;[o;;0;[o;	;[I"<Add warnings when users do not provide a session secret;To;;0;[o;	;[I"3Fix parsing performance for unquoted filenames;TS;;
i;I"9January 6th, 2013: Twenty sixth public release 1.1.4;To;;;;[o;;0;[o;	;[I"<Add warnings when users do not provide a session secret;TS;;
i;I":January 22nd, 2012: Twenty fifth public release 1.4.1;To;;;;[o;;0;[o;	;[I"NAlter the keyspace limit calculations to reduce issues with nested params;To;;0;[o;	;[I"MAdd a workaround for multipart parsing where files contain unescaped "%";To;;0;[o;	;[I"AAdded Rack::Response::Helpers#method_not_allowed? (code 405);To;;0;[o;	;[I"@Rack::File now returns 404 for illegal directory traversals;To;;0;[o;	;[I"BRack::File now returns 405 for illegal methods (non HEAD/GET);To;;0;[o;	;[I"=Rack::Cascade now catches 405 by default, as well as 404;To;;0;[o;	;[I"CCookies missing '--' no longer cause an exception to be raised;To;;0;[o;	;[I"<Various style changes and documentation spelling errors;To;;0;[o;	;[I"8Rack::BodyProxy always ensures to execute its block;To;;0;[o;	;[I"8Additional test coverage around cookies and secrets;To;;0;[o;	;[I"JRack::Session::Cookie can now be supplied either secret or old_secret;To;;0;[o;	;[I"/Tests are no longer dependent on set order;To;;0;[o;	;[I";Rack::Static no longer defaults to serving index files;To;;0;[o;	;[I"Rack.release was fixed;TS;;
i;I"<December 28th, 2011: Twenty fourth public release 1.4.0;To;;;;[o;;0;[o;	;[I"HRuby 1.8.6 support has officially been dropped. Not all tests pass.;To;;0;[o;	;[I"3Raise sane error messages for broken config.ru;To;;0;[o;	;[I"/Allow combining run and map in a config.ru;To;;0;[o;	;[I"MRack::ContentType will not set Content-Type for responses without a body;To;;0;[o;	;[I"2Status code 205 does not send a response body;To;;0;[o;	;[I"@Rack::Response::Helpers will not rely on instance variables;To;;0;[o;	;[I"GRack::Utils.build_query no longer outputs '=' for nil query values;To;;0;[o;	;[I"Various mime types added;To;;0;[o;	;[I"(Rack::MockRequest now supports HEAD;To;;0;[o;	;[I"KRack::Directory now supports files that contain RFC3986 reserved chars;To;;0;[o;	;[I"7Rack::File now only supports GET and HEAD requests;To;;0;[o;	;[I"FRack::Server#start now passes the block to Rack::Handler::<h>#run;To;;0;[o;	;[I".Rack::Static now supports an index option;To;;0;[o;	;[I"!Added the Teapot status code;To;;0;[o;	;[I"Brackup now defaults to Thin instead of Mongrel (if installed);To;;0;[o;	;[I".Support added for HTTP_X_FORWARDED_SCHEME;To;;0;[o;	;[I"JNumerous bug fixes, including many fixes for new and alternate rubies;TS;;
i;I"=December 28th, 2011: Twenty first public release: 1.1.3.;To;;;;[o;;0;[o;	;[I"�Security fix. http://www.ocert.org/advisories/ocert-2011-003.html
Further information here: http://jruby.org/2011/12/27/jruby-1-6-5-1;TS;;
i;I"5October 17, 2011: Twentieth public release 1.3.5;To;;;;[o;;0;[o;	;[I":Fix annoying warnings caused by the backport in 1.3.4;TS;;
i;I"5October 1, 2011: Nineteenth public release 1.3.4;To;;;;[	o;;0;[o;	;[I"NBackport security fix from 1.9.3, also fixes some roundtrip issues in URI;To;;0;[o;	;[I"Small documentation update;To;;0;[o;	;[I"CFix an issue where BodyProxy could cause an infinite recursion;To;;0;[o;	;[I",Add some supporting files for travis-ci;TS;;
i;I"8September 16, 2011: Eighteenth public release 1.2.4;To;;;;[o;;0;[o;	;[I"HFix a bug with MRI regex engine to prevent XSS by malformed unicode;TS;;
i;I"9September 16, 2011: Seventeenth public release 1.3.3;To;;;;[	o;;0;[o;	;[I"AFix bug with broken query parameters in Rack::ShowExceptions;To;;0;[o;	;[I"HRack::Request#cookies no longer swallows exceptions on broken input;To;;0;[o;	;[I"DPrevents XSS attacks enabled by bug in Ruby 1.8's regexp engine;To;;0;[o;	;[I"BRack::ConditionalGet handles broken If-Modified-Since helpers;TS;;
i;I"2July 16, 2011: Sixteenth public release 1.3.2;To;;;;[o;;0;[o;	;[I"?Fix for Rails and rack-test, Rack::Utils#escape calls to_s;TS;;
i;I"2July 13, 2011: Fifteenth public release 1.3.1;To;;;;[
o;;0;[o;	;[I"Fix 1.9.1 support;To;;0;[o;	;[I"Fix JRuby support;To;;0;[o;	;[I"1Properly handle $KCODE in Rack::Utils.escape;To;;0;[o;	;[I"�Make method_missing/respond_to behavior consistent for Rack::Lock,
Rack::Auth::Digest::Request and Rack::Multipart::UploadedFile;To;;0;[o;	;[I"8Reenable passing rack.session to session middleware;To;;0;[o;	;[I"=Rack::CommonLogger handles streaming responses correctly;To;;0;[o;	;[I"6Rack::MockResponse calls close on the body object;To;;0;[o;	;[I".Fix a DOS vector from MRI stdlib backport;TS;;
i;I"4May 22nd, 2011: Fourteenth public release 1.2.3;To;;;;[o;;0;[o;	;[I"*Pulled in relevant bug fixes from 1.3;To;;0;[o;	;[I"Fixed 1.8.6 support;TS;;
i;I"4May 22nd, 2011: Thirteenth public release 1.3.0;To;;;;[o;;0;[o;	;[I"&Various performance optimizations;To;;0;[o;	;[I"Various multipart fixes;To;;0;[o;	;[I" Various multipart refactors;To;;0;[o;	;[I"$Infinite loop fix for multipart;To;;0;[o;	;[I"+Test coverage for Rack::Server returns;To;;0;[o;	;[I"AAllow files with '..', but not path components that are '..';To;;0;[o;	;[I"@rackup accepts handler-specific options on the command line;To;;0;[o;	;[I"IRequest#params no longer merges POST into GET (but returns the same);To;;0;[o;	;[I"NUse URI.encode_www_form_component instead. Use core methods for escaping.;To;;0;[o;	;[I"1Allow multi-line comments in the config file;To;;0;[o;	;[I"FBug L#94 reported by Nikolai Lugovoi, query parameter unescaping.;To;;0;[o;	;[I"?Rack::Response now deletes Content-Length when appropriate;To;;0;[o;	;[I"*Rack::Deflater now supports streaming;To;;0;[o;	;[I"1Improved Rack::Handler loading and searching;To;;0;[o;	;[I"Support for the PATCH verb;To;;0;[o;	;[I"=env['rack.session.options'] now contains session options;To;;0;[o;	;[I"Cookies respect renew;To;;0;[o;	;[I"-Session middleware uses SecureRandom.hex;TS;;
i;I":March 13th, 2011: Twelfth public release 1.2.2/1.1.2.;To;;;;[o;;0;[o;	;[I"xSecurity fix in Rack::Auth::Digest::MD5: when authenticator
returned nil, permission was granted on empty password.;TS;;
i;I"4June 15th, 2010: Eleventh public release 1.2.1.;To;;;;[o;;0;[o;	;[I" Make CGI handler rewindable;To;;0;[o;	;[I"PRename spec/ to test/ to not conflict with SPEC on lesser
operating systems;TS;;
i;I"1June 13th, 2010: Tenth public release 1.2.0.;To;;;;[o;;0;[o;	;[I"=Removed Camping adapter: Camping 2.0 supports Rack as-is;To;;0;[o;	;[I"%Removed parsing of quoted values;To;;0;[o;	;[I",Add Request.trace? and Request.options?;To;;0;[o;	;[I"%Add mime-type for .webm and .htc;To;;0;[o;	;[I"Fix HTTP_X_FORWARDED_FOR;To;;0;[o;	;[I"Various multipart fixes;To;;0;[o;	;[I"Switch test suite to bacon;TS;;
i;I"3January 3rd, 2010: Ninth public release 1.1.0.;To;;;;[!o;;0;[o;	;[I"(Moved Auth::OpenID to rack-contrib.;To;;0;[o;	;[I"USPEC change that relaxes Lint slightly to allow subclasses of the
required types;To;;0;[o;	;[I"ESPEC change to document rack.input binary mode in greator detail;To;;0;[o;	;[I"3SPEC define optional rack.logger specification;To;;0;[o;	;[I"*File servers support X-Cascade header;To;;0;[o;	;[I"Imported Config middleware;To;;0;[o;	;[I"Imported ETag middleware;To;;0;[o;	;[I" Imported Runtime middleware;To;;0;[o;	;[I"!Imported Sendfile middleware;To;;0;[o;	;[I"*New Logger and NullLogger middlewares;To;;0;[o;	;[I",Added mime type for .ogv and .manifest.;To;;0;[o;	;[I"$Don't squeeze PATH_INFO slashes;To;;0;[o;	;[I"6Use Content-Type to determine POST params parsing;To;;0;[o;	;[I"/Update Rack::Utils::HTTP_STATUS_CODES hash;To;;0;[o;	;[I"#Add status code lookup utility;To;;0;[o;	;[I"-Response should call #to_i on the status;To;;0;[o;	;[I"Add Request#user_agent;To;;0;[o;	;[I"+Request#host knows about forwared host;To;;0;[o;	;[I"ZReturn an empty string for Request#host if HTTP_HOST and
SERVER_NAME are both missing;To;;0;[o;	;[I",Allow MockRequest to accept hash params;To;;0;[o;	;[I" Optimizations to HeaderHash;To;;0;[o;	;[I"(Refactored rackup into Rack::Server;To;;0;[o;	;[I"JAdded Utils.build_nested_query to complement Utils.parse_nested_query;To;;0;[o;	;[I"ZAdded Utils::Multipart.build_multipart to complement
Utils::Multipart.parse_multipart;To;;0;[o;	;[I"\Extracted set and delete cookie helpers into Utils so they can be
used outside Response;To;;0;[o;	;[I"_Extract parse_query and parse_multipart in Request so subclasses
can change their behavior;To;;0;[o;	;[I"/Enforce binary encoding in RewindableInput;To;;0;[o;	;[I"NSet correct external_encoding for handlers that don't use RewindableInput;TS;;
i;I"5October 18th, 2009: Eighth public release 1.0.1.;To;;;;[o;;0;[o;	;[I"%Bump remainder of rack.versions.;To;;0;[o;	;[I"/Support the pure Ruby FCGI implementation.;To;;0;[o;	;[I"LFix for form names containing "=": split first then unescape components;To;;0;[o;	;[I"KFixes the handling of the filename parameter with semicolons in names.;To;;0;[o;	;[I"JAdd anchor to nested params parsing regexp to prevent stack overflows;To;;0;[o;	;[I"8Use more compatible gzip write api instead of "<<".;To;;0;[o;	;[I"DMake sure that Reloader doesn't break when executed via ruby -e;To;;0;[o;	;[I"0Make sure WEBrick respects the :Host option;To;;0;[o;	;[I"Many Ruby 1.9 fixes.;TS;;
i;I"4April 25th, 2009: Seventh public release 1.0.0.;To;;;;[o;;0;[o;	;[I"9SPEC change: Rack::VERSION has been pushed to [1,0].;To;;0;[o;	;[I"CSPEC change: header values must be Strings now, split on "\n".;To;;0;[o;	;[I"`SPEC change: Content-Length can be missing, in this case chunked transfer
encoding is used.;To;;0;[o;	;[I"SPEC change: rack.input must be rewindable and support reading into
a buffer, wrap with Rack::RewindableInput if it isn't.;To;;0;[o;	;[I"0SPEC change: rack.session is now specified.;To;;0;[o;	;[I"_SPEC change: Bodies can now additionally respond to #to_path with
a filename to be served.;To;;0;[o;	;[I"ZNOTE: String bodies break in 1.9, use an Array consisting of a
single String instead.;To;;0;[o;	;[I"New middleware Rack::Lock.;To;;0;[o;	;[I"&New middleware Rack::ContentType.;To;;0;[o;	;[I"'Rack::Reloader has been rewritten.;To;;0;[o;	;[I"(Major update to Rack::Auth::OpenID.;To;;0;[o;	;[I"<Support for nested parameter parsing in Rack::Response.;To;;0;[o;	;[I"-Support for redirects in Rack::Response.;To;;0;[o;	;[I"/HttpOnly cookie support in Rack::Response.;To;;0;[o;	;[I"%The Rakefile has been rewritten.;To;;0;[o;	;[I"*Many bugfixes and small improvements.;TS;;
i;I"3January 9th, 2009: Sixth public release 0.9.1.;To;;;;[o;;0;[o;	;[I"HFix directory traversal exploits in Rack::File and Rack::Directory.;TS;;
i;I"1January 6th, 2009: Fifth public release 0.9.;To;;;;[o;;0;[o;	;[I"/Rack is now managed by the Rack Core Team.;To;;0;[o;	;[I"CRack::Lint is stricter and follows the HTTP RFCs more closely.;To;;0;[o;	;[I"%Added ConditionalGet middleware.;To;;0;[o;	;[I"$Added ContentLength middleware.;To;;0;[o;	;[I"Added Deflater middleware.;To;;0;[o;	;[I"Added Head middleware.;To;;0;[o;	;[I"%Added MethodOverride middleware.;To;;0;[o;	;[I"DRack::Mime now provides popular MIME-types and their extension.;To;;0;[o;	;[I" Mongrel Header now streams.;To;;0;[o;	;[I"Added Thin handler.;To;;0;[o;	;[I".Official support for swiftiplied Mongrel.;To;;0;[o;	;[I"Secure cookies.;To;;0;[o;	;[I"%Made HeaderHash case-preserving.;To;;0;[o;	;[I"*Many bugfixes and small improvements.;TS;;
i;I"2August 21st, 2008: Fourth public release 0.4.;To;;;;[o;;0;[o;	;[I"<New middleware, Rack::Deflater, by Christoffer Sawicki.;To;;0;[o;	;[I"3OpenID authentication now needs ruby-openid 2.;To;;0;[o;	;[I"%New Memcache sessions, by blink.;To;;0;[o;	;[I"MExplicit EventedMongrel handler, by Joshua Peek mailto:josh@joshpeek.com;To;;0;[o;	;[I"=Rack::Reloader is not loaded in rackup development mode.;To;;0;[o;	;[I""rackup can daemonize with -D.;To;;0;[o;	;[I"^Many bugfixes, especially for pool sessions, URLMap, thread safety
and tempfile handling.;To;;0;[o;	;[I"Improved tests.;To;;0;[o;	;[I"Rack moved to Git.;TS;;
i;I"3February 26th, 2008: Third public release 0.3.;To;;;;[o;;0;[o;	;[I")LiteSpeed handler, by Adrian Madrid.;To;;0;[o;	;[I"#SCGI handler, by Jeremy Evans.;To;;0;[o;	;[I"Pool sessions, by blink.;To;;0;[o;	;[I"%OpenID authentication, by blink.;To;;0;[o;	;[I"C:Port and :File options for opening FastCGI sockets, by blink.;To;;0;[o;	;[I"8Last-Modified HTTP header for Rack::File, by blink.;To;;0;[o;	;[I"]Rack::Builder#use now accepts blocks, by Corey Jewett.
(See example/protectedlobster.ru);To;;0;[o;	;[I"?HTTP status 201 can contain a Content-Type and a body now.;To;;0;[o;	;[I":Many bugfixes, especially related to Cookie handling.;TS;;
i;I"/May 16th, 2007: Second public release 0.2.;To;;;;[
o;;0;[o;	;[I"HTTP Basic authentication.;To;;0;[o;	;[I"Cookie Sessions.;To;;0;[o;	;[I"Static file handler.;To;;0;[o;	;[I"Improved Rack::Request.;To;;0;[o;	;[I"Improved Rack::Response.;To;;0;[o;	;[I"?Added Rack::ShowStatus, for better default error messages.;To;;0;[o;	;[I"&Bug fixes in the Camping adapter.;To;;0;[o;	;[I"*Removed Rails adapter, was too alpha.;TS;;
i;I"/March 3rd, 2007: First public release 0.1.;T:
@file@:0@omit_headings_from_table_of_contents_below0lib64/ruby/gems/2.2.0/doc/rack-1.6.4/ri/page-KNOWN-ISSUES.ri000064400000004664150402107170015764 0ustar00U:RDoc::TopLevel[	iI"KNOWN-ISSUES:ETcRDoc::Parser::Simpleo:RDoc::Markup::Document:@parts[S:RDoc::Markup::Heading:
leveli:	textI"(Known issues with Rack and ECMA-262;To:RDoc::Markup::BlankLineo:RDoc::Markup::List:
@type:BULLET:@items[o:RDoc::Markup::ListItem:@label0;[o:RDoc::Markup::Paragraph;[I"RMany users expect the escape() function defined in ECMA-262 to be compatible ;TI"Pwith URI. Confusion is especially strong because the documentation for the ;TI"Nescape function includes a reference to the URI specifications. ECMA-262 ;TI"Lescape is not however a URI escape function, it is a javascript escape ;TI"Tfunction, and is not fully compatible. Most notably, for characters outside of ;TI"Dthe BMP. Users should use the more correct encodeURI functions.;T@
S;	;
i;I"+Known issues with Rack and Web servers;T@
o;
;;;[o;;0;[o;;[I"ELighttpd sets wrong SCRIPT_NAME and PATH_INFO if you mount your ;TI"EFastCGI app at "/".  This can be fixed by using this middleware:;T@
o:RDoc::Markup::Verbatim;[I"!class LighttpdScriptNameFix
;TI"  def initialize(app)
;TI"    @app = app
;TI"  end
;TI"
;TI"  def call(env)
;TI"L    env["PATH_INFO"] = env["SCRIPT_NAME"].to_s + env["PATH_INFO"].to_s
;TI"!    env["SCRIPT_NAME"] = ""
;TI"    @app.call(env)
;TI"  end
;TI"	end
;T:@format0o;;[I"8Of course, use this only when your app runs at "/".;T@
o;;[I"LSince lighttpd 1.4.23, you also can use the "fix-root-scriptname" flag ;TI"in fastcgi.server.;T@
S;	;
i;I"0Known conflicts regarding parameter parsing;T@
o;;[I"O* Many users have differing opinions about parameter parsing. The current
;TI"P  parameter parsers in Rack are based on a combination of the HTTP and CGI
;TI"S  specs, and are intended to round-trip encoding and decoding. There are some
;TI"A  choices that may be viewed as deficiencies, specifically:
;TI"U   - Rack does not create implicit arrays for multiple instances of a parameter
;TI"5   - Rack returns nil when a value is not given
;TI">   - Rack does not support multi-type keys in parameters
;TI"R  These issues or choices, will not be fixed before 2.0, if at all. They are
;TI"R  very major breaking changes. Users are free to write alternative parameter
;TI"Q  parsers, and their own Request and Response wrappers. Moreover, users are
;TI"  encouraged to do so.;T;0:
@file@:0@omit_headings_from_table_of_contents_below0lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/Kernel/cdesc-Kernel.ri000064400000000572150402107170017667 0ustar00U:RDoc::NormalModule[iI"Kernel:ET@0o:RDoc::Markup::Document:@parts[:
@file0:0@omit_headings_from_table_of_contents_below0[[[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[I"eval_string_wrap;TI"ext/lsapi/lsruby.c;T[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[I"ext/lsapi/lsruby.c;T@*cRDoc::TopLevellib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/Kernel/eval_string_wrap-i.ri000064400000001133150402107170021156 0ustar00U:RDoc::AnyMethod[iI"eval_string_wrap:ETI"Kernel#eval_string_wrap;TF:publico:RDoc::Markup::Document:@parts[	o:RDoc::Markup::Verbatim;	[I"2 static int chdir_file( const char * pFile )
;TI" {
;TI"+    char * p = strrchr( pFile, '/' );
;TI"    int ret;
;TI"    if ( !p )
;TI"        return -1;
;TI"p = 0;
;T:@format0o:RDoc::Markup::Paragraph;	[I"ret = chdir( pFile );;To;
;	[I"p = '/';
;T;0o;;	[I"return ret; ;TI"};T:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"	(p1);T@FI"Kernel;TcRDoc::NormalModule00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/cache.ri000064400000002033150402107170015205 0ustar00{:ancestors{I"
LSAPI:ET[I"Object;TI"Object;T[I"BasicObject;T:attributes{:class_methods{I"
LSAPI;T[	I"accept;TI"accept_new_connection;TI"postfork_child;TI"postfork_parent;T:c_class_variables{	I"ext/lsapi/lsapidef.h;T{I"ext/lsapi/lsapilib.c;T{I"ext/lsapi/lsapilib.h;T{I"ext/lsapi/lsruby.c;T{I"cLSAPI;TI"
LSAPI;TI"rb_cObject;T@	I"rb_mKernel;TI"Kernel;T: c_singleton_class_variables{	I"ext/lsapi/lsapidef.h;T{I"ext/lsapi/lsapilib.c;T{I"ext/lsapi/lsapilib.h;T{I"ext/lsapi/lsruby.c;T{:
encodingIu:
Encoding
UTF-8;F:instance_methods{I"
LSAPI;T[I"<<;TI"binmode;TI"
close;TI"	each;TI"eof;TI"	eof?;TI"
flush;TI"	getc;TI"	gets;TI"isatty;TI"
print;TI"printf;TI"process;TI"	putc;TI"	puts;TI"	read;TI"
readline;TI"reopen;TI"rewind;TI"	sync;TI"
sync=;TI"	tty?;TI"
write;TI"Kernel;T[I"eval_string_wrap;T:	main0:modules[@"@@	:
pages[I"README;TI"ext/lsapi/Makefile;T:
titleI"!ruby-lsapi-5.6 Documentation;Tlib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/ext/lsapi/page-Makefile.ri000064400000025343150402107170020512 0ustar00U:RDoc::TopLevel[	iI"ext/lsapi/Makefile:ETcRDoc::Parser::Simpleo:RDoc::Markup::Document:@parts[*o:RDoc::Markup::Paragraph;[I"SHELL = /bin/sh;To:RDoc::Markup::BlankLineo;	;[I"9# V=0 quiet, V=1 verbose.  other values don't work. ;TI"V = 0 ;TI"Q1 = $(V:1=) ;TI"Q = $(Q1:0=@) ;TI"ECHO1 = $(V:1=@:) ;TI"ECHO = $(ECHO1:0=@echo) ;TI"NULLCMD = :;T@o;	;[I"5#### Start of system configuration section. ####;T@o;	;[7I"srcdir = . ;TI"1topdir = /opt/alt/ruby22/include/ruby-2.2.0 ;TI"hdrdir = $(topdir) ;TI"Carch_hdrdir = /opt/alt/ruby22/include/ruby-2.2.0/x86_64-linux ;TI"PATH_SEPARATOR = : ;TI":VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby ;TI"(prefix = $(DESTDIR)/opt/alt/ruby22 ;TI"7rubysitearchprefix = $(rubylibprefix)/$(sitearch) ;TI"/rubyarchprefix = $(rubylibprefix)/$(arch) ;TI"1rubylibprefix = $(libdir)/$(RUBY_BASE_NAME) ;TI"-exec_prefix = $(DESTDIR)/opt/alt/ruby22 ;TI"4vendorarchhdrdir = $(vendorhdrdir)/$(sitearch) ;TI"0sitearchhdrdir = $(sitehdrdir)/$(sitearch) ;TI",rubyarchhdrdir = $(rubyhdrdir)/$(arch) ;TI".vendorhdrdir = $(rubyhdrdir)/vendor_ruby ;TI"*sitehdrdir = $(rubyhdrdir)/site_ruby ;TI"5rubyhdrdir = $(includedir)/$(RUBY_VERSION_NAME) ;TI"1vendorarchdir = $(vendorlibdir)/$(sitearch) ;TI"1vendorlibdir = $(vendordir)/$(ruby_version) ;TI".vendordir = $(rubylibprefix)/vendor_ruby ;TI"<sitearchdir = $(DESTDIR)./.gem.20240125-3705149-blbl4i ;TI";sitelibdir = $(DESTDIR)./.gem.20240125-3705149-blbl4i ;TI"*sitedir = $(rubylibprefix)/site_ruby ;TI")rubyarchdir = $(rubylibdir)/$(arch) ;TI"3rubylibdir = $(rubylibprefix)/$(ruby_version) ;TI"4sitearchincludedir = $(includedir)/$(sitearch) ;TI",archincludedir = $(includedir)/$(arch) ;TI",sitearchlibdir = $(libdir)/$(sitearch) ;TI"$archlibdir = $(libdir)/$(arch) ;TI",ridir = $(datarootdir)/$(RI_BASE_NAME) ;TI"2mandir = $(DESTDIR)/opt/alt/ruby22/share/man ;TI"'localedir = $(datarootdir)/locale ;TI"#libdir = $(exec_prefix)/lib64 ;TI"psdir = $(docdir) ;TI"pdfdir = $(docdir) ;TI"dvidir = $(docdir) ;TI"htmldir = $(docdir) ;TI"4infodir = $(DESTDIR)/opt/alt/ruby22/share/info ;TI",docdir = $(datarootdir)/doc/$(PACKAGE) ;TI",oldincludedir = $(DESTDIR)/usr/include ;TI"4includedir = $(DESTDIR)/opt/alt/ruby22/include ;TI"$localstatedir = $(DESTDIR)/var ;TI")sharedstatedir = $(DESTDIR)/var/lib ;TI"!sysconfdir = $(DESTDIR)/etc ;TI"/datadir = $(DESTDIR)/opt/alt/ruby22/share ;TI"#datarootdir = $(prefix)/share ;TI"4libexecdir = $(DESTDIR)/opt/alt/ruby22/libexec ;TI".sbindir = $(DESTDIR)/opt/alt/ruby22/sbin ;TI"!bindir = $(exec_prefix)/bin ;TI"archdir = $(rubyarchdir);T@o;	;[I"CC = gcc ;TI"CXX = g++ ;TI"LIBRUBY = $(LIBRUBY_SO) ;TI"-LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a ;TI"GLIBRUBYARG_SHARED = -Wl,-R$(libdir) -L$(libdir) -l$(RUBY_SO_NAME) ;TI"NLIBRUBYARG_STATIC = -Wl,-R$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)-static ;TI"
empty = ;TI"OUTFLAG = -o $(empty) ;TI"COUTFLAG = -o $(empty);T@o;	;[I"RUBY_EXTCONF_H =  ;TI"8cflags   =  $(optflags) $(debugflags) $(warnflags) ;TI"#optflags = -O3 -fno-fast-math ;TI"debugflags = -ggdb3 ;TI"warnflags = -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat ;TI"CCDLFLAGS = -fPIC ;TI"uCFLAGS   = $(CCDLFLAGS) -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection $(ARCH_FLAG) ;TI"WINCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir) ;TI"DEFS     =  ;TI"/CPPFLAGS =   $(DEFS) $(cppflags) -DRUBY_2 ;TI"pCXXFLAGS = $(CCDLFLAGS) -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection $(ARCH_FLAG) ;TI"�ldflags  = -L. -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -L/opt/alt/openssl/lib64 -L/opt/alt/ruby22/lib64 -Wl,-rpath=/opt/alt/openssl/lib64,-rpath=/opt/alt/ruby22/lib64 -fstack-protector -rdynamic -Wl,-export-dynamic ;TI"dldflags =;T@o;	;[I"ARCH_FLAG = -m64 ;TI"4DLDFLAGS = $(ldflags) $(dldflags) $(ARCH_FLAG) ;TI"LDSHARED = $(CC) -shared ;TI"!LDSHAREDXX = $(CXX) -shared ;TI"
AR = ar ;TI"EXEEXT = ;T@o;	;[I"+RUBY_INSTALL_NAME = $(RUBY_BASE_NAME) ;TI"RUBY_SO_NAME = ruby ;TI"RUBYW_INSTALL_NAME =  ;TI";RUBY_VERSION_NAME = $(RUBY_BASE_NAME)-$(ruby_version) ;TI"RUBYW_BASE_NAME = rubyw ;TI"RUBY_BASE_NAME = ruby;T@o;	;[I"arch = x86_64-linux ;TI"sitearch = $(arch) ;TI"ruby_version = 2.2.0 ;TI"(ruby = $(bindir)/$(RUBY_BASE_NAME) ;TI"RUBY = $(ruby) ;TI"�ruby_headers = $(hdrdir)/ruby.h $(hdrdir)/ruby/ruby.h $(hdrdir)/ruby/defines.h $(hdrdir)/ruby/missing.h $(hdrdir)/ruby/intern.h $(hdrdir)/ruby/st.h $(hdrdir)/ruby/subst.h $(arch_hdrdir)/ruby/config.h;T@o;	;[I"RM = rm -f ;TI"'RM_RF = $(RUBY) -run -e rm -- -rf ;TI"2RMDIRS = rmdir --ignore-fail-on-non-empty -p ;TI""MAKEDIRS = /usr/bin/mkdir -p ;TI"#INSTALL = /usr/bin/install -c ;TI"'INSTALL_PROG = $(INSTALL) -m 0755 ;TI"&INSTALL_DATA = $(INSTALL) -m 644 ;TI"COPY = cp ;TI"TOUCH = exit >;T@o;	;[I"3#### End of system configuration section. ####;T@o;	;[I"preload = ;T@o;	;[I"libpath = . $(libdir) ;TI"0LIBPATH =  -L. -L$(libdir) -Wl,-R$(libdir) ;TI"DEFFILE = ;T@o;	;[I"CLEANFILES = mkmf.log ;TI"DISTCLEANFILES =  ;TI"DISTCLEANDIRS = ;T@o;	;[I"extout =  ;TI"extout_prefix =  ;TI"target_prefix =  ;TI"LOCAL_LIBS =  ;TI"CLIBS = $(LIBRUBYARG_SHARED)  -lpthread -ldl -lcrypt -lm   -lc ;TI"%ORIG_SRCS = lsapilib.c lsruby.c ;TI"SRCS = $(ORIG_SRCS)  ;TI" OBJS = lsapilib.o lsruby.o ;TI"6HDRS = $(srcdir)/lsapidef.h $(srcdir)/lsapilib.h ;TI"TARGET = lsapi ;TI"TARGET_NAME = lsapi ;TI"(TARGET_ENTRY = Init_$(TARGET_NAME) ;TI"DLLIB = $(TARGET).so ;TI"EXTSTATIC =  ;TI"STATIC_LIB = ;T@o;	;[I"TIMESTAMP_DIR = . ;TI"BINDIR        = $(bindir) ;TI"0RUBYCOMMONDIR = $(sitedir)$(target_prefix) ;TI"3RUBYLIBDIR    = $(sitelibdir)$(target_prefix) ;TI"4RUBYARCHDIR   = $(sitearchdir)$(target_prefix) ;TI"8HDRDIR        = $(rubyhdrdir)/ruby$(target_prefix) ;TI"?ARCHHDRDIR    = $(rubyhdrdir)/$(arch)/ruby$(target_prefix);T@o;	;[I"TARGET_SO     = $(DLLIB) ;TI"#CLEANLIBS     = $(TARGET).so  ;TI"CLEANOBJS     = *.o  *.bak;T@o;	;[	I"all:    $(DLLIB) ;TI"static: $(STATIC_LIB) ;TI"6.PHONY: all install static install-so install-rb ;TI"1.PHONY: clean clean-so clean-static clean-rb;T@o:RDoc::Markup::List:
@type:	NOTE:@items[o:RDoc::Markup::ListItem:@label[	I"clean-static;TI"clean-rb-default;TI"
clean-rb;TI"
clean-so;T;[o;	;[I";clean: clean-so clean-static clean-rb-default clean-rb;To:RDoc::Markup::Verbatim;[I"@-$(Q)$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES) .*.time
;T:@format0o;;;
;[o;;[	I"distclean-rb-default;TI"distclean-rb;TI"distclean-so;TI"distclean-static;T;[/o;	;[I"Udistclean: clean distclean-so distclean-static distclean-rb-default distclean-rb;To;;[I"?-$(Q)$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
;TI"8-$(Q)$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
;TI":-$(Q)$(RMDIRS) $(DISTCLEANDIRS) 2> /dev/null || true
;T;0o;	;[I"realclean: distclean ;TI"#install: install-so install-rb;T@o;	;[I"<install-so: $(DLLIB) $(TIMESTAMP_DIR)/.RUBYARCHDIR.time;To;;[I"-$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
;T;0o;;;
;[o;;[I"clean-static;T;[o;	;[I"-$(Q)$(RM) $(STATIC_LIB);To;	;[
I"3install-rb: pre-install-rb install-rb-default ;TI"0install-rb-default: pre-install-rb-default ;TI"pre-install-rb: Makefile ;TI"&pre-install-rb-default: Makefile ;TI"pre-install-rb-default:;To;;[I"@$(NULLCMD)
;T;0o;	;[I"($(TIMESTAMP_DIR)/.RUBYARCHDIR.time:;To;;[I"+$(Q) $(MAKEDIRS) $(@D) $(RUBYARCHDIR)
;TI"$(Q) $(TOUCH) $@
;T;0o;	;[I"3site-install: site-install-so site-install-rb ;TI"!site-install-so: install-so ;TI" site-install-rb: install-rb;T@o;	;[I"-.SUFFIXES: .c .m .cc .mm .cxx .cpp .o .S;T@o;	;[I".cc.o:;To;;[I"$(ECHO) compiling $(<)
;TI"I$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
;T;0o;	;[I".cc.S:;To;;[I"$(ECHO) translating $(<)
;TI"I$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $<
;T;0o;	;[I".mm.o:;To;;[I"$(ECHO) compiling $(<)
;TI"I$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
;T;0o;	;[I".mm.S:;To;;[I"$(ECHO) translating $(<)
;TI"I$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $<
;T;0o;	;[I".cxx.o:;To;;[I"$(ECHO) compiling $(<)
;TI"I$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
;T;0o;	;[I".cxx.S:;To;;[I"$(ECHO) translating $(<)
;TI"I$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $<
;T;0o;	;[I".cpp.o:;To;;[I"$(ECHO) compiling $(<)
;TI"I$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
;T;0o;	;[I".cpp.S:;To;;[I"$(ECHO) translating $(<)
;TI"I$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -S $<
;T;0o;	;[I"
.c.o:;To;;[I"$(ECHO) compiling $(<)
;TI"F$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
;T;0o;	;[I"
.c.S:;To;;[I"$(ECHO) translating $(<)
;TI"F$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -S $<
;T;0o;	;[I"
.m.o:;To;;[I"$(ECHO) compiling $(<)
;TI"F$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
;T;0o;	;[I"
.m.S:;To;;[I"$(ECHO) translating $(<)
;TI"F$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -S $<
;T;0o;	;[I"$(DLLIB): $(OBJS) Makefile;To;;[I",$(ECHO) linking shared-object $(DLLIB)
;TI"-$(Q)$(RM) $(@)
;TI"Q$(Q) $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
;T;0o;	;[I"%$(OBJS): $(HDRS) $(ruby_headers);T:
@file@:0@omit_headings_from_table_of_contents_below0lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/sync%3d-i.ri000064400000000345150402107200016506 0ustar00U:RDoc::AnyMethod[iI"
sync=:ETI"LSAPI#sync=;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"	(p1);T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/accept_new_connection-c.ri000064400000000404150402107200021553 0ustar00U:RDoc::AnyMethod[iI"accept_new_connection:ETI"!LSAPI::accept_new_connection;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/readline-i.ri000064400000000351150402107200017016 0ustar00U:RDoc::AnyMethod[iI"
readline:ETI"LSAPI#readline;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/postfork_parent-c.ri000064400000000370150402107200020446 0ustar00U:RDoc::AnyMethod[iI"postfork_parent:ETI"LSAPI::postfork_parent;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/tty%3f-i.ri000064400000000341150402107200016350 0ustar00U:RDoc::AnyMethod[iI"	tty?:ETI"LSAPI#tty?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/printf-i.ri000064400000000352150402107200016536 0ustar00U:RDoc::AnyMethod[iI"printf:ETI"LSAPI#printf;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"(*args);T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/reopen-i.ri000064400000000352150402107200016524 0ustar00U:RDoc::AnyMethod[iI"reopen:ETI"LSAPI#reopen;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"(*args);T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/binmode-i.ri000064400000000347150402107200016655 0ustar00U:RDoc::AnyMethod[iI"binmode:ETI"LSAPI#binmode;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/isatty-i.ri000064400000000345150402107200016553 0ustar00U:RDoc::AnyMethod[iI"isatty:ETI"LSAPI#isatty;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/eof-i.ri000064400000000337150402107200016010 0ustar00U:RDoc::AnyMethod[iI"eof:ETI"LSAPI#eof;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/flush-i.ri000064400000000343150402107200016355 0ustar00U:RDoc::AnyMethod[iI"
flush:ETI"LSAPI#flush;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/puts-i.ri000064400000000346150402107200016232 0ustar00U:RDoc::AnyMethod[iI"	puts:ETI"LSAPI#puts;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"(*args);T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/eof%3f-i.ri000064400000000341150402107200016301 0ustar00U:RDoc::AnyMethod[iI"	eof?:ETI"LSAPI#eof?;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/each-i.ri000064400000000341150402107200016132 0ustar00U:RDoc::AnyMethod[iI"	each:ETI"LSAPI#each;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/read-i.ri000064400000000346150402107200016152 0ustar00U:RDoc::AnyMethod[iI"	read:ETI"LSAPI#read;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"(*args);T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/%3c%3c-i.ri000064400000000337150402107200016104 0ustar00U:RDoc::AnyMethod[iI"<<:ETI"
LSAPI#<<;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"	(p1);T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/rewind-i.ri000064400000000345150402107200016526 0ustar00U:RDoc::AnyMethod[iI"rewind:ETI"LSAPI#rewind;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/sync-i.ri000064400000000341150402107200016206 0ustar00U:RDoc::AnyMethod[iI"	sync:ETI"LSAPI#sync;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/write-i.ri000064400000000345150402107200016370 0ustar00U:RDoc::AnyMethod[iI"
write:ETI"LSAPI#write;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"	(p1);T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/print-i.ri000064400000000350150402107200016366 0ustar00U:RDoc::AnyMethod[iI"
print:ETI"LSAPI#print;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"(*args);T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/close-i.ri000064400000000343150402107200016341 0ustar00U:RDoc::AnyMethod[iI"
close:ETI"LSAPI#close;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/putc-i.ri000064400000000343150402107200016207 0ustar00U:RDoc::AnyMethod[iI"	putc:ETI"LSAPI#putc;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"	(p1);T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/postfork_child-c.ri000064400000000366150402107200020245 0ustar00U:RDoc::AnyMethod[iI"postfork_child:ETI"LSAPI::postfork_child;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/accept-c.ri000064400000000346150402107200016470 0ustar00U:RDoc::AnyMethod[iI"accept:ETI"LSAPI::accept;TT:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/getc-i.ri000064400000000341150402107200016154 0ustar00U:RDoc::AnyMethod[iI"	getc:ETI"LSAPI#getc;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/process-i.ri000064400000000347150402107200016716 0ustar00U:RDoc::AnyMethod[iI"process:ETI"LSAPI#process;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/cdesc-LSAPI.ri000064400000001511150402107200016733 0ustar00U:RDoc::NormalClass[iI"
LSAPI:ET@I"Object;To:RDoc::Markup::Document:@parts[o;;[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below0;	0;
0[[[[[I"
class;T[[:public[	[I"accept;TI"ext/lsapi/lsruby.c;T[I"accept_new_connection;T@[I"postfork_child;T@[I"postfork_parent;T@[:protected[[:private[[I"
instance;T[[;[[I"<<;T@[I"binmode;T@[I"
close;T@[I"	each;T@[I"eof;T@[I"	eof?;T@[I"
flush;T@[I"	getc;T@[I"	gets;T@[I"isatty;T@[I"
print;T@[I"printf;T@[I"process;T@[I"	putc;T@[I"	puts;T@[I"	read;T@[I"
readline;T@[I"reopen;T@[I"rewind;T@[I"	sync;T@[I"
sync=;T@[I"	tty?;T@[I"
write;T@[;[[;
[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@
@
cRDoc::TopLevellib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/LSAPI/gets-i.ri000064400000000341150402107200016174 0ustar00U:RDoc::AnyMethod[iI"	gets:ETI"LSAPI#gets;TF:publico:RDoc::Markup::Document:@parts[:
@fileI"ext/lsapi/lsruby.c;T:0@omit_headings_from_table_of_contents_below000[I"();T@FI"
LSAPI;TcRDoc::NormalClass00lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/page-README.ri000064400000015732150402107200016015 0ustar00U:RDoc::TopLevel[	iI"README:ETcRDoc::Parser::Simpleo:RDoc::Markup::Document:@parts[Mo:RDoc::Markup::Paragraph;[I"%lsapi - LSAPI extension for Ruby;TS:RDoc::Markup::Heading:
leveli%:	textI";To:RDoc::Markup::BlankLineo;	;[I"INSTALL;TS:RDoc::Markup::Rule:weighti
@o:RDoc::Markup::Verbatim;[I"$ ruby setup.rb config
;TI"$ ruby setup.rb setup
;TI"# ruby setup.rb install
;T:@format0o;	;[I"
USAGE;TS;;i@o;	;[	I"General CGI scripts ;TI"^^^^^^^^^^^^^^^^^^^ ;TI"SThe most efficient way to use LSAPI interface is to modify your CGI scripts.  ;TI"<You need to add the following code to your CGI scripts:;T@o;;[
I"require 'lsapi'
;TI"
;TI"while LSAPI.accept != nil
;TI"
;TI"   <your CGI script>
;TI"   ...
;TI"
;TI"	end
;T;0o;	;[I"LThere is no need to change the way that how CGI environment variables  ;TI"(are being accessed in your scripts.;T@o;	;[I"7You can find some examples under examples/ folder.;T@o;	;[I"Ruby Script Runner ;TI"^^^^^^^^^^^^^^^^^^ ;TI"OIf you don't want to change your existing Ruby CGI code, you can use our  ;TI"FRuby script runner under scripts/ folder. You need to configure  ;TI"Ilsruby_runner.rb as a LSAPI application, then add a script handler  ;TI"for "rb" suffix.;T@@o;	;[I"Rails dispatcher ;TI"^^^^^^^^^^^^^^^^;T@o;	;[I"RWith Ruby LSAPI, we proudly provide a optimum platform for Rails application ;TI"Ndeployment. Ruby LSAPI has the following advantages over other solutions.;T@o;;[I"M* Easy configuration, deploy a Rails application only take a few clicks
;TI")  with our Rails easy configuration
;TI"M* Fast startup, the expensive Rails framework initialization only takes
;TI"=  place once when multiple processes need to be started
;TI"J* Resource efficience, ruby processes can be started on demand, idle
;TI"  process will be stop.
;T;0o;	;[I"DTo use LSAPI with Ruby on Rails, please check out our toturial ;TI"7http://www.litespeedtech.com/support/wiki/doku.php;T@o;	;[I"MThere are a few environment variables that can be tweaked to tune ruby  ;TI"LSAPI process.;T@o:RDoc::Markup::List:
@type:BULLET:@items[o:RDoc::Markup::ListItem:@label0;[o;	;[I"/LSAPI_CHILDREN                (default: 0);T@o;	;[I"MLSAPI_CHILDREN controls the maximum number of children processes can be ;TI"Ostarted by the first ruby process started by web server. When set to <=1, ;TI"Pthe first ruby process will handle request by itself, without starting any ;TI"Rchild process. When LSAPI_CHILDREN is >1, the LSAPI application is stared in ;TI"O"Self Managed Mode", which will start children processes based on demand. ;TI"JWith Rails easy configuration, LSAPI_CHILDREN is set to the value of ;TI"C"Max Connections" by web server, no need to set it explicitly.;T@o;	;[I"OUsually, there is no need to set value of LSAPI_CHILDREN over 100 in most ;TI"server environment.;T@o;;;;[o;;0;[o;	;[I"/LSAPI_AVOID_FORK              (default: 0);T@o;	;[I"NLSAPI_AVOID_FORK specifies the policy of the internal process manager in ;TI"P"Self Managed Mode". When set to 0, the internal process manager will stop ;TI"Kand start children process on demand to save system resource. This is ;TI"Lpreferred in a shared hosting environment. When set to 1, the internal ;TI"Pprocess manager will try to avoid freqently stopping and starting children ;TI"Hprocess. This might be preferred in a dedicate hosting environment.;T@o;;;;[o;;0;[o;	;[I"HLSAPI_EXTRA_CHILDREN          (default: 1/3 of LSAPI_CHILDREN or 0);T@o;	;[I"RLSAPI_EXTRA_CHILDREN controls the maximum number of extra children processes ;TI"Hcan be started when some or all existing children processes are in ;TI"Qmalfunctioning state. Total number of children processes will be reduced to ;TI"@LSAPI_CHILDREN level as soon as service is back to normal. ;TI"DWhen LSAPI_AVOID_FORK is set to 0, the default value is 1/3 of ;TI"OLSAPI_CHIDLREN, When LSAPI_AVOID_FORK is set to 1, the default value is 0.;T@o;;;;[o;;0;[o;	;[I"9LSAPI_MAX_REQS                (default value: 10000);T@o;	;[I"HLSAPI_MAX_REQS specifies the maximum number of requests each child ;TI"Kprocess will handle before it exits automatically. This parameter can ;TI"Phelp reducing memory usage when there are memory leaks in the application. ;T@o;;;;[o;;0;[o;	;[I"?LSAPI_MAX_IDLE                (default value: 300 seconds);T@o;	;[I"HIn Self Managed Mode, LSAPI_MAX_IDLE controls how long a idle child;T@o;	;[I"Hprocess will wait for a new request before exit. This option help  ;TI"8releasing system resources taken by idle processes.;T@o;;;;[o;;0;[o;	;[I"LSAPI_MAX_IDLE_CHILDREN;To;;[I">(default value: 1/3 of LSAPI_CHILDREN or LSAPI_CHILDREN)
;T;0o;	;[I"JIn Self Managed Mode, LSAI_MAX_IDLE_CHILDREN controls how many idle  ;TI"Gchildren processes are allowed. Excessive idle children processes ;TI"+will be killed by the parent process. ;TI"DWhen LSAPI_AVOID_FORK is set to 0, the default value is 1/3 of ;TI"JLSAPI_CHIDLREN, When LSAPI_AVOID_FORK is set to 1, the default value ;TI"is LSAPI_CHILDREN.;T@o;;;;[o;;0;[o;	;[I"?LSAPI_MAX_PROCESS_TIME        (default value: 300 seconds);T@o;	;[
I"HIn Self Managed Mode, LSAPI_MAX_PROCESS_TIME controls the maximum  ;TI"Kprocessing time allowed when processing a request. If a child process ;TI"Jcan not finish processing of a request in the given time period, it  ;TI"Mwill be killed by the parent process. This option can help getting rid  ;TI"&of dead or runaway child process.;T@o;;;;[o;;0;[o;	;[I"<LSAPI_PGRP_MAX_IDLE           (default value: FOREVER );T@o;	;[	I"LIn Self Managed Mode, LSAPI_PGRP_MAX_IDLE controls how long the parent ;TI"Fprocess will wait before exiting when there is no child process. ;TI"JThis option help releasing system resources taken by an idle parent  ;TI"
process.;T@o;;;;[o;;0;[o;	;[I"LSAPI_PPID_NO_CHECK;T@o;	;[I"NBy default a LSAPI application check the existence of its parent process ;TI"Land exits automatically if the parent process died. This is to reduce  ;TI"Morphan process when web server is restarted. However, it is desireable  ;TI"Hto disable this feature, such as when a LSAPI process was started  ;TI"Imanually from command line. LSAPI_PPID_NO_CHECK should be set when  ;TI"Eyou want to disable the checking of existence of parent process.;T@o;	;[I"License;TS;;i
@o;	;[I",LSAPI library code is under BSD license;T@o;	;[I"4LSAPI ruby extension code is under Ruby license;T@o;;;;[o;;0;[o;	;[I"A((<URL:http://www.ruby-lang.org/ja/LICENSE.txt>)) (Japanese);To;;0;[o;	;[I"@((<URL:http://www.ruby-lang.org/en/LICENSE.txt>)) (English);T@o;	;[I"Copyright;TS;;i@o;	;[I"4Copyright (C) 2006 Lite Speed Technologies Inc.;T:
@file@:0@omit_headings_from_table_of_contents_below0lib64/ruby/gems/2.2.0/doc/ruby-lsapi-5.6/ri/Object/cdesc-Object.ri000064400000001175150402107200017635 0ustar00U:RDoc::NormalClass[iI"Object:ET@I"BasicObject;To:RDoc::Markup::Document:@parts[:
@file0:0@omit_headings_from_table_of_contents_below0[[U:RDoc::Constant[iI"STDERR;TI"Object::STDERR;T00o;;[;	I"ext/lsapi/lsruby.c;T;
0@@cRDoc::NormalClass0U;[iI"ENV;TI"Object::ENV;T00o;;[o:RDoc::Markup::Paragraph;[I"Nredefine ENV using a hash table, should be faster than char **environment;To:RDoc::Markup::BlankLine;	@;
0@@@0[[[I"
class;T[[:public[[:protected[[:private[[I"
instance;T[[;[[;[[;[[[U:RDoc::Context::Section[i0o;;[;	0;
0[@@cRDoc::TopLevellib64/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0/ruby-lsapi-5.6/gem_make.out000064400000000001150402107210021642 0ustar00
lib64/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0/ruby-lsapi-5.6/gem.build_complete000064400000000000150402107210023024 0ustar00lib64/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0/ruby-lsapi-5.6/lsapi.so000075500000231700150402107210021036 0ustar00ELF>�U@@,@8	@H�H� !!P (
(
!(
!  888$$(�(�(�  S�td(�(�(�  P�td�����Q�tdR�td!!��GNU��3�u�����	Apd�C�	H�‚3@(�L�`���q�CS�l����P*�f�R�������������������������������������������������n�}�'3qѮl>�&��Sɶ��
���ܮʼnSO��`��[is�|&߱R����D�/y7ř����k���Պ e�Y����&09=��By:%/�=��ejO�z�J�6�'��l#mNU�L�C�B�1�{�!�\�$�O#W��2�3S=ap��b�U�0��6�������aD7�jp#�7����ĴDI���Ί=\���4y�ݾCE���к�Q��u���o��	��r�SѮ����Io���|q%h6	󝵛���'
���=��qX�[�u��	 �f�	�� �		��U
�y���sO�zu	�	�	�E
����[M�Q	j	E	���k
�&��
���q!
�
1	RT	s��@ +r�	u�	>[	��
��=	&�
�cH�	�
'�I	�
�
0x�*
n`
�m
�K
����:�2p���-, �2B	���F"��X�
��	EN
��
k���@@��0~F�sD��:
��{���
5wiw���`��z�!	[���' ��X!���Vp�Z\�g�Pp��oЏ1��r
Y���` r�9�����tl��{jPW��~��`�-� t]��	�0p�sY@p��5���o�y$� �l!�uU�V
Epw��sS��o7�pMp�(����������}F�psJ��pz`!� �BP������ �![`�g������@�(!��l�@�6`p��@������`!__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizecompareValueLocationset_skip_writesigactionsigemptyset__stack_chk_failreallocfcntlacceptsetsockoptmmapmemsetsetsidread__errno_locationclosewritevkillgetppid__ctype_b_locstrncpystrchrstrcasecmpstrtolgetaddrinfomemcpyfreeaddrinfoinet_addrLSAPI_Log__vfprintf_chk__snprintf_chkgetuid__fprintf_chkgettimeofdaylocaltime_rwaitpidforksystemexitlsapi_perrorstrerrorLSAPI_is_suEXEC_DaemonLSAPI_StopLSAPI_IsRunningLSAPI_Register_Pgrp_Timer_CallbackLSAPI_InitRequestmallocgetpeernamedup2LSAPI_Initgeteuidsignalg_reqdlopendlsymLSAPI_Is_Listen_rLSAPI_Is_ListenLSAPI_Reset_rLSAPI_Release_rfreeLSAPI_GetHeader_rLSAPI_ReqBodyGetChar_rLSAPI_ReqBodyGetLine_rmemchrmemmoveLSAPI_ReadReqBody_rFlush_RespBuf_rLSAPI_GetEnv_rstrcmp__ctype_toupper_locLSAPI_ForeachOrgHeader_rqsortLSAPI_ForeachHeader_rLSAPI_ForeachEnv_rLSAPI_ForeachSpecialEnv_rLSAPI_FinalizeRespHeaders_rLSAPI_Flush_rLSAPI_Write_Stderr_rgetpidgetcwdmemccpy__realpath_chkLSAPI_Finish_rLSAPI_End_Response_rLSAPI_Write_rLSAPI_sendfile_rsendfileLSAPI_AppendRespHeader2_rstrlenLSAPI_AppendRespHeader_rLSAPI_CreateListenSock2socketbindlistenunlinkLSAPI_ParseSockAddrLSAPI_CreateListenSockLSAPI_Init_Prefork_ServersetpgidsysconfLSAPI_Set_Server_fdLSAPI_reset_server_stateis_enough_free_memLSAPI_Postfork_ChildLSAPI_Postfork_ParenttimeLSAPI_Accept_Before_Fork__fdelt_chkusleepsched_yieldLSAPI_Set_Max_ReqsLSAPI_Set_Max_IdleLSAPI_Set_Max_ChildrenLSAPI_Set_Extra_ChildrenLSAPI_Set_Max_Process_TimeLSAPI_Set_Max_Idle_ChildrenLSAPI_Set_Server_Max_Idle_SecsLSAPI_Set_Slow_Req_MsecsLSAPI_Get_Slow_Req_MsecsLSAPI_No_Check_ppidLSAPI_Get_ppidLSAPI_Init_Env_Parametersgetenvgetpwnamdlerrorsetrlimit__fxstatsetreuidLSAPI_ErrResponse_rlsapi_MD5Initlsapi_MD5Updatelsapi_MD5FinalgetpwuidsetgidsetgroupssetuidstrtollprctlinitgroupsLSAPI_Accept_rLSAPI_Prefork_Accept_rsigaddsetsigprocmaskLSAPI_Set_Restored_Parent_PidLSAPI_Inc_Req_Processedselectrb_tainted_str_newrb_hash_asetrb_funcallrb_intern2rb_gc_markmunmaprb_check_typerb_obj_as_stringrb_f_sprintfs_fn_add_envrb_safe_levelrb_string_value_ptrrb_eval_string_wraprb_string_valuerb_check_safe_objrb_ruby_verbose_ptrrb_define_global_constrb_funcallvruby_strdupmkstempftruncaterb_str_buf_newrb_str_catrb_num2intrb_fix2intrb_eSecurityErrorrb_raisememmemrb_yieldrb_gc_writebarrier_unprotectrb_io_putsrb_str_new_staticrb_exec_recursiverb_default_rsrb_output_fsrb_output_rsrb_lastline_getInit_lsapichdirrb_stderrrb_cObjectrb_const_getrb_global_variablerb_define_global_functionrb_define_classrb_define_singleton_methodrb_define_methodruby_xcallocrb_data_object_allocrb_stdoutrb_stdinrb_hash_new__memcpy_chklibruby.so.2.2libpthread.so.0libdl.so.2libcrypt.so.1libm.so.6libc.so.6__environ_edata__bss_start_endGLIBC_2.2.5GLIBC_2.14GLIBC_2.15GLIBC_2.4GLIBC_2.3.4GLIBC_2.3/opt/alt/ruby22/lib64:/opt/alt/openssl/lib64			C ui		�3 ui	�f��������ii
�ti	�ui	�ii
�!�V!@V ! !@!Q�H!��P!��X!��`!��h!��p!��x!���!���!���!���!���!���!���!��!��!��!&��!.��!3��!:��!B��!M��![�!m�!v�!��!�� !��(!��0!��8!��@!��`!��h!��p!��x!��!��!/��!?��!L��![��!g��!t��!~��!���!���!���!���!���!���!���!�
!�
!)�
!4�
!I� 
!R�!X�!X�!i�!y�(!�!0!D#!X!��H!P!X!`!�h!�p!�x! �!#�!5�!��!?�!K�!M�!U�!Y8!Y�!Z�!��!��!p�!}�!��!�! !�(!0!8!�@!H!P!X!`!�h!p!	x!
�!�!�!
�!�!��!�!�!�!��!��!�!�!�!�!�!!!!�! !(!�0!�8!�@!H!P!�X!!`!"h!$p!%x!��!&�!'�!(�!��!)�!*�!��!+�!,�!��!��!��!-�!.�!/�!0!�!�!�!� !1(!20!38!�@!4H!�P!�X!6`!7h!8p!9x!:�!;�!<�!=�!@�!A�!B�!C�!��!D�!E�!F�!G�!H�!I�!��!J!�!L!N!O !P(!Q0!R8!�@!SH!TP!�X!V`!�h!Wp!Xx![�!\�!]�!^�!_�!`�!a�!b�!��!c�!��!d�!e�!f�!g�!h�!i!j!k!l!� !m(!n0!o8!�@!�H!qP!rX!s`!th!up!�x!v�!w�!y�!z�!{�!|�!~�!��!�!��!��!��!��!��!��!��!�!�!�!�!� !�(!�0!�8!�@!�H!�P!�X!�`!�h!�p!���H��H�q� H��t��H����5�� �%�� ��h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��������hb�������hc�������hd�������he�������hf�������hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!������hm��������hn��������ho������hp�������hq��������hr�������hs�������ht�������hu�������hv�������hw��q������hx��a������hy��Q������hz��A������h{��1������h|��!������h}��������h~��������h������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1�������%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%� D���%� D���%� D���%� D���%� D���%� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%� D���%� D���%� D���%� D���%� D���%� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%�� D���%}� D���%u� D���%m� D���%e� D���%]� D���%U� D���%M� D���%E� D���%=� D���%5� D���%-� D���%%� D���%� D���%� D���%
� D���%� D���%�� D���%�� D���%� D���%� D���%ݿ D���%տ D���%Ϳ D���%ſ D���%�� D���%�� D���%�� D���%�� DH�=�� H��� H9�tH�f� H��t	�����H�=Y� H�5R� H)�H��H��H��?H�H�tH��� H��t��fD�����=� u+UH�=�� H��tH�=�� �y����d������ ]������w�������ff.����>� Ð��H�GH+F�Hc�AVI��H�@AUATL�$�USH��tQH��H��tIH��I��L9�r�0H��I9�v'�KH�SM��sH�;�Յ��[]A\A]A^��[D��]A\A]A^ø������ff.�f����=N� �D����� Ð��OAWD�D�_AVAUATUSD�6�^�nA��x�j׋G3GD!�3G��V���\$�ЋW�^$��D�D1��\$�!�3WA��ʋN��F���p $E��‰L$�A1�A1�D��D�^!�D1�G��;�ν�D�\$�D�E��D�V���D�T$�A!�A1�E�E���|���A��
1�A�D!�E��1�D�D��*ƇG���D1�D�!�A��1�A1�D�D�N���D�L$�E��	F0�D��!�D�nA1�D1�D�G���F�E��D�f ���D�d$�D�^(A!�A1�E�E��ؘ�i��A��
1�A�D!�1�D�D����D��ʋ^0��D1�D�!�A��1�D�E���[��D����1��!�D1�D�D�N,��A1��D�L$�G����\�E��A!�D�f8A1�E�D��"�k��A��
1�A�D!�1�D�D�N4��E���q����D�D1�!�1�D�E���Cy�D����1��!�D1�D�D�V<���1��G��!�I!�1�D�D�D$��
�E��b%���1�!�1�D�D�D$��E��@�@���1�!�1�D�D�D$���	�E��QZ^&��1�!�1�D�E��6�Ƕ����1�!�1�D�D��]/։���1�!�1�D�E��SD���1�!�1�D�E��
��؉���	�1�!�1�D�D�D$��E��0����1�!�1�D�D�D$���E�����!��1�!�1�D�E���7É��1�!�1�D�D�D$��	�E���
��1�!�1�D�D�D$��A��0�ZEA��A1�A!�A1�A�A���㩉�A��A�D1�!�1��t$�D������D��1�!�A��
�ogD1����	�1�D!�F���L*�1�D�D$�Ή���1�A��A!���B9��A1�DD$�A��A�D1���D$�����q���D�D1�1�‹D$�����0"a�mD���1�G��8�1�Ɖ��1��1�D�D�D$��	E��D꾤���1�1�D�D�D$�A�����KA���A1�A��5`K��A1�AЉ�A��p���A��1�A�D1����D1�D�1��A��	�~�(D����	1�G���'���1�����1��1�D�D�D$�A���0��A���A1�A1�AЋT$�A����2���A�1�D1�֋T$��	��
9��ى�D�D1����1��D�����1�1��C���|�A��A1��A1�A��D$�A����0eV�ĉ�A�1�D1��A��D")��D�t$��	��D�	�D1��A��
��*CD������G���#���	�1����
���	�1�D�D��9��������Ή��	��1�D�D���Y[e��\$���	�1�D�E�������D�t$�����	щ�1���D�E��3}���D�\$�
���	�1�D�D�D$���E���]����	�1�D�E��O~�oA���A���D��	�1�D�E��
��,���D�T$�����	�A��1�A��D�E��6C���D�t$���
��A���N�	�1�A���~S�A��D�E��A����A	�A1�A��5�:�A�D��A��A�D	�1�Љ�3���*�\$���D�	�D1��D��F���ӆ�[��
��]A\�A]A^	�1������։�	�1�DƉ�A�4A_���OW�G�O�W��ATI��1�U��SH��dH�%(H��$�1�H��H����H�<$t)H��$�dH3%(u<H�Ġ[]A\�f.�H�{��1�H�މ�DŽ$�L�$$�\���u�DH�
I� H�A(H�Q8H9�s;8u�fD98tH��0H9�w�1�Å�tH�P0H;Q0v�H�Q0�Df�H�@$@@�@,�������DUHc�SH��H��H��H�@���H��t#H�SPH�H+S@H�C@H�H�SPH�CH1�H��[]ø������f�U1҉�1�S���H������t��t/H��1�[]�fD��t��H���‰߾[1�]�r�f�����ff.�SH��dH�%(H��$�1�H�T$H�t$�D$�D$��&�Ã��tf�|$t'H��$�dH3%(��u0H�Ġ[�f�H�L$A���Ǿ�����ff.�f��� ��Hc�H�vL��H�L9���H��H)�H����S�Nf.�E��������L�I؃�H��L�G�L�E�C�H�D�G��w�I9�thH��H)�H��~SH�pH�2H�pD�H�2H�pD�XH�2�pA��E�L�@��L�Ic�A���pD�Hc�L�M�L9��i��������[�f��0��u�H��[H�1�ø����Ë��u�H��H�1��f�AVAUE1�ATUH�-o� SH�}(t[D��]A\A]A^��EEA������!Lc�@���D��
 DI�E1�1�A���Mc�L���b�H��H���t]L��1�H���|�K�vH�](H��H�]0H�H�]8H�CH�j� H�[� H�CH��H�L� H�M� ���[D��]A\A]A^�H�=�qA�����1����H���H���H+��Hcp�G )�H����H��xsH9�AVHN�AUATUI��SHwH��D�wH���L��H��D����I��H���u!�l��8u
�]� ��u�D��[]A\A]A^ÐH��~���[]A\A]A^ø�����fDUSH������tMH���������u���8u
�� ��u�H�9� �E����H��t�(H�Z� H��t�@��H��[]�ff.�@AWAVAUATUSH��������� ��t8A��A��I����A��f�I�7D������Å�-���tx�n� ��u�D��D)�H����[]A\A]A^A_��A)�E��~ڋ>� ��t�I��f�H��)�I���~�H�PHc�H9�v�HI�H)H�x���������t���s����E)�E��AO��r���1��k���S�5� ��t-�='� ��t+1��T����u��[�8������1�[�@��9�[����ÐAVAUATUH��SH��H��PdH�%(H��$H1����H��
fDH��H��DB u�L�d$@��H��L���D��D$@Ƅ$?</tc<[����:L��f�E�5�H������|$@*H�X�zH�5{nL����A�ƅ��;�EM�����H�}�lf�uL����1�H��$HdH3%(�QH��P[]A\A]A^�D�
M�l$�]f�ML����H�����|$A*H�XA���1��;:�
��1�H�H����H�Í@�=����E��uf��1�f�]�Y���D�Ef�1�H�T$)D$H�L$L��D$H�)D$ )D$0H�D$����upL�d$H��A�T$I�t$���L���'��L��E1�M��������EA���<�����EE1�M���"����::A�D$M��fA�$�
����������������AUI��ATU��SH��(H��$�H��$�L��$�L��$���t@)�$�)�$�)�$�)�$�)�$�)�$�)�$)�$dH�%(H��$h1����t�=�� ���ML�d$`L��@��@��u��������L9���H�G� H�;H�L$HL��H��$P�D$HH�D$PH��$p�D$L0H�D$X���H��$hdH3%(��H��([]A\A]�H�)� H��L��kH�����L�¾d1���3�H�HÁ��K����-� ��H��H�ߺUA��L�Hk�dH�����1����H�H�XZL9�����H��H�S� M��1�L)�H�k�H�;�W����f�H��1�L�d$`H����H�t$H���q���uI��������D$�L��L��j�P�D$PD�L$(1��N�Y^Hc�L��L����H�D$L�4q�L���P�D$P�D$$P�D$0P�D$<P�D$H��P�D$TD��l1����H��0Hc�L�����/�ff.�@��AWAVAUATUSH��(dH�%(H�D$1�H�=ַ �.�D$�H�l$L�5�iL�-�iL�%�p@�H������v�A�Dž����T$�Ѓ���<~$��M��L������D��ME�1����D;=�� t�D;=�� tUD�����H��H��t�H�H1����@�1@�Ɖ�@����H��� H��t�(H�� ��h�K����&� �����9����H�5ٶ H�N0H�V(H9�s*D�A�H�A�E��t�DH��0�8��u.H��H9�r�H�F0H�D$dH3%(uH��([]A\A]A^A_�H�N0�����D$�@�1�D$�X���H�� H���D����C���ff.��AWAVAUATUH��SH��H��(�=˶ dH�%(H��$1���t1�����thH�C(I��I��D�3L+cI)�H�C D�{H)��-��D$��H��E��E��AT��H�5�n�AU1�U�L$,�,�H�� ���E� ��t)H��$dH3%(ulH��([]A\A]A^A_�@D�H�\$H���H�߹�AQL�	o���XH��Z�����t
1���fDH�=Sg�����5�DAWAVAUATUSH��L��� I�Z(M�j0L9��H�|$E1�E1�E1�@��B��ve�CA�l$����A�BD)�A;B�E9r�
�|� ��~ H�SH�L$��H�H)�H9���fD�CA��f��A��H��0I9�w�A�R��D)���1�)ȃ��H��[]A\A]A^A_�fDH�C H�t$H)�IcBH9����C��i�gf��f����)���f9�u��� �����Cf��~pH�5�m�1��M��;�	�����tp�CA��L��� A��f�C�5���fD�C��f�C�����A�������H�5�m�1�����;��A����u�����8u��L�5� ����H��E��E��D��[H�5�m]�A\1�A]A^A_��fDH�t$H����������@E1�E1�E1��z���f.���UH����S��H����H����H��I��[H�5�d�1�]��f����Ҳ 1���u1��=ײ �������� Ð����� �D��H�=�� �@��ATUSH��dH�%(H��$�1�H���}H�H��H�1�HLJ	H�ى�H��H)����	���H�H�{`���I��H���0H�CxH�S`L�c`� L�H)�H�CxH�CpL�H)�H�CpI��$H�Ch���H�C8H�C(H����H I���H��H�C0H��(L�cxL�cpH����l��������twH�T$H�t$���D$������t
�m���8kt0�����1��kH��$�dH3%(uiH�Ġ[]A\�fD�+����C�����C�1����1������H�=c��1���1����#���_���fD���������ff.����S�5� ��t	1ۉ�[����H�5L��
��� ��� �e�H�5>��
�T�����������H�=7� 1��8����tI��� �D��H�=Ab��� �
��H���c���H�54bH�����H�V� ��[É��D�����1��?������H�=�� �@����H�W(H�w`HLJ�H��HLJ0H���H�W�H�VH�W�H�W�H�W�H�W�H��)���81����H�����SH��H�H��t���H���H��t����H���H��t����H�{@H��t����1�[�fD��H��tG��wBL���Hc�A�T�4��t/Hc�A�pH���H�H€:t
�H���H���1��ff.�f���H��tP��tJSHc��H��;��}H�S�HH������[������~	Hc���и����[Ã����AWAVAUATUSH�Z�H�H��H�D$H���:�G�����H���%H����I��H���I�����I��I��L��fDA���)�Hc�H����L9�Hc�IO�IvI���
H��L������H��tML)�H��L��H�XH��H����A��I��A�$��D)��EH��[]A\A]A^A_��L��H��H��H����A���L�|$I���I)�A���M���?����D���L���L�Hc�H��~�A����-���H��1��|���������v���@��AVAUATUSH������I����H��H����H��H����H���H+��E1�H����H9�Hc��HO؋��)�H�H��~)H9�H�wH��HN�H�H��I������E��L�L)�H��t6�E�u@H��H��D���Z��H���u4�?���8u
�0� ��u�M��t-M��[L��]A\A]A^��H��~�I�H�H)�u���I�������D��H�O(H�W8H��LJLS���H)ʍB����H�GpH�0H�pH�@H�wp��~Hc�H�HH�� H�P�H�O8H�Gp����AWAVAUATUSH��H���H�T$H����H��H�<$�I��H�=i]�������HcB$H���H�@H�,�H9�r�Zf.�H��H9�vGH�3L���L����u�H�CH��[]A\A]A^A_�H�D$L9��I��M9���f.�1�H��[]A\A]A^A_��H�$1�L�=� L���@A�l�4��tI�4�L����������H��H��u�H�D$HcP 1���~�H�$H��L���M�tM9�s�H���H�$I�D$H�D$@IcMIcmH,$L�|
L9��)���A�\$���)����;��H�8H�D$�'���-t	��_����H��H��I9�t�����H�U:�t������8����IcUIcEH$H€:����������H�$Hc�Hc�A�VH��H€:�������@��AVAUATUSL��$���H��H�$L9�u�H��dH�%(H��$@1�H����H��H����H���H����H��E1�L�
�� L��h�f�H���Hc�HcT�4��t7�qH��M���
H��Ic�A��H��L�E��H�TD�T�tH��H��u�H���HcP ����H���H��L�L9���Ic�I��H��L��f�H��H�� I9���HcHHc0A��H���LcPI��HcHH��B�D�BH�J�HH�2�JA��u��H�
̔ � L������$DI��H�
�� Ic� L���^��E��taE1��@A��I�� E9�~CA�MI�UI��A�uI�}�Ӆ��H��$@dH3%(u6H��@[]A\A]A^��D����1���@Ic��U������������ff.����AWAVAUATUSH��XH�t$ H�T$dH�%(H��$H1�H����I��H����1�E1�L�-mgH��L�%C� H��H���Hc�HcT�4��t/�HH��A��A�t�I�<�H���L�D$A�ׅ��4H��H��u�H���D�t$<HcB ���L���H��L�H�D$0I9���H�\$(L�t$@fDH�D$(A�l$Ic$A�HTTPH������A�F_L�<H�D$��O�Hcʼnl$8I�H�D$I9���M�nI��I�o�I���_@��-t���H���A�E�L9�u�H�D$I�D�t$8L�D$�L��IcD$IcT$HT$���H�D$ A�L$�Ѕ�~"I��L9d$0�-���H�l$(H����B D$<H��$HdH3<%(u'H��X[]A\A]A^A_�DI�F�v��������������ff.���H��t7H��t2H���D�@$1�E����H���H��H��D�����������f.���H��t7H��t2H���D�@(1�E����H���H��H��D���S��������f.���H����H�O`H��tz����Ѓ�tr��L�G@������H�WPL9�vH�wpL)��L�H��H�V�H�wpHc�0H�T�H�Q�����,H��(LJ(LSH�1�H�Oxø�����f.���H����H�GpH+GxH�������G�����SH�������H�C(H9C8tH�����H�SpH+Sx1�H����~J�
�� �����u$�{H�sx����9��~H�{�������ǃ�H�S`H�SxH�Sp[�f�H�G(H9G8�c���1����s���l���LJ�H�W(H�W8H�W`H�WxH�Wpø�����f���AWAVAUATUSH��XH�t$dH�%(H�D$H1�H���.H�=Ȣ ���GI�������;��H�G(H9G8t
H�$���H�$H�D$L�|$L�d$H�$H�l$ I��H��L)�H����H��@�@L�|$0HO�L�d$ �D$LS�BL�jH�T$8I׋J� �D$D��H�D$(H�l$��uA�~H�4$D����H�I9�~�I�~��H��L)�H���L��H+D$��H�t$����H�L$HdH3%(uH��X[]A\A]A^A_�H��������4��@AWAVAUATUSH��H�$H��dH�%(H��$1�H��I��I���%��H��8���H��I��H�obHD����A������AW�H��SA���1�AVL�S�AU�S���H�� H��=O�Hc�M��t7L���?��1�H��$dH3%(u&H��[]A\A]A^A_����f�����?��ff.�@AT�~f�A��UH��SH��dH�%(H��$1�H�|$H��)$H���H�H��؟ ��xH��$dH3%(u?H��[]A\É�I��D��H�5iZ1��
��1�H�5RH���i������������ff.�f�ATUSH��H�$H��H�$H��dH�%(H��$ 1��s� �����?/H��H�����H������H���bH�ߋH����������!�%����t�¹�����D�H�WHD���@�H��H)��</��)�Hc�Hc�H�1�H���.��H���JL��$�H��L���}��H�����H�=QL������������AH��1��2���Ń������uRH�=�� H9�t
H��t���H��1�����H��� H��$ dH34%(����H�� []A\�fD����T����������>���@�������4�����
�+����H��H�5�X1�������r����r���DH�߹����������S���fD����������H��H�5\X1����������C����H��tv�����t]S��H��tC�uWH�C(H9C8tH�����H�CpH�ҏ H��H�H��H�@����H�Cp�@��H�����1�[�@���c��뢸�����ff.���H��������u��u1��f�S��H��tR�ubH�C(H9C8tH��� ��H�CpH�5� H��H�H��H�@����H�Cp���H�{�:����������1�[��1�H�O@H9OPv����닸��������AWAVAUATUSH��H����H���|���I�֨�,���aH��H�t$H����>��L�{8I��H�C0L)�H9��>L�t$L+{(L��A�@L��L�f�I��M)�M����K�H��@���σ��LSL�Cp�N���I�H�D���I�0H��I�@H�KpM��~H�C(M�xI�H E1�I�@H�C8H���L�1H��M�L�I�H��H�KpH9��e���H���-�����thI��L��M)�M���U���I9�t
H���	�����tDL+t$H��L��[]A\A]A^A_�DM��@�@M)��(������������I�������H�t$H��L�����Hk8�f.���H�������������AVL��AUI��ATI��U��S���H���u\��H�߉���;��A�D$�{L��ǃLS�������H��u0�{L��[L���]A\A]A^�����+������[H�����]A\A]A^�H���ff.���AWAVAUATUSH��H����H�������H����������D$����0��xI��H��I��H������Lc��\�CHc��T���
t��
u(��H�DLc���L�H����
t�
t�L�������~6Hc�A�T���
t��
u#��H�@��~A�L�H����
t�
t�E�<A�G=���I�|$PH�H�TI9T$Hs7H��I+t$@L������2%�)�)���������I�|$PL��H��Hc�A�����Mt$PH��L��I�FI�D$PA�:I�|$P�]��M�D$PI�I�@I�D$PA�Ic�$0fE��T8H�Ѓ�A��$0�D$H��[]A\A]A^A_��D$������ff.����H���
H����B�=����������0���AUATUSHc�H��f��D�A��<
t<
uH���؅�u�H��[]A\A]�I��H�PH��H�DI9D$Hs3H��I+t$@L������2%�)�)��������tQI�|$PH��H��A���0��I\$PH�CI�D$P�Ic�$0fE��T8H�Ѓ�A��$0H��1�[]A\A]ø�����S������D��AUATA��UH��SH���?dH�%(H�D$1��D$f����f��
t1�����f����H�L$dH3%(����H��[]A\A]ÐA�1Ҿ����Ã��tʼnǺ�1��Կ��H�L$A��ߺ�蘿����u#D��H��������uD���������o���謾���߻����D� H���:��D�e�O����A��k���DH�}A�n聾���}�N����3�����H��t����������ff.����U��SH��dH�%(H��$�1�H��H�������u/��H���e��H��$�dH3%(uH�Ę[]���������褿��@��1�H�=r� t������AUATA�'USH����� ��'DN�uD������q� H���@�A�����H��H�� H����H��tH�-�� �D����� �9����Ɖlj�� ����U����D�k H��� D�cE��u<�����D�����SuG�CH�,H�C���1�H��[]A\A]�@A�|$�C�{�˸�����ك�ÉS�ff.�@��H�E� H��t�8�ff.�f���H�%� �BH�B(H�R8H9�s��H��0H9�w�H��� H��t	���H�m� H��t	����fD��H�M� H�H;� �wH��H�H;ގ �����ff.�@��ATUSH��H�� dH�%(H�D$1�H�j� D�`豼��H�SX�� ���H�kXH�-� �r���H�7� ����̒ �ޒ H��� H�h� H��tH��~ 1�1���H�-�� �E��H�y� H��t��{1��F���� ��uH�U� H��tA�D9 ~��� �� ��ut�;���u]H�LS�[H��H�$��P�D$�ʻ���H��߉D$觻���h� 1�H�L$dH3%(u)H�� []A\�D�+���������������t���@�����H�� SH���@H�Xt1�����H�SXH�BH�B�{�۽���C����1�[���AWAVAUATUSH��HH�Đ H�|$H��$�L�edH�%(H��$81����H����L��DŽ$(H��$�艾��H�R� H���e������cH����L��DŽ$(H��$��K���H��� H���'������H�8� H����������H�|� H��
�������H��� H���ӹ������H�D$1�E1�L�d$ ��� L�|$ǀ��D$H�� H��t	H�=ȋ ��1�菾��I��L9�t71���������L���P���C��t�S�����D$fD�V�F���H��� �L��H�1���H�Hc;�ֺ���;M��L��H�D$H�D$�����������?)ѺH��1�H	T� 1�j� �Ń���������	����8��1�H�5�� �蝸��1ҿH�5� 芸��1ҿH�5<� �w���1ҿH�5�� �d���1ҿ
H�5֋ �Q���H��$8dH3%(���kH��H[]A\A]A^A_�fDH��� H��udD�C�S�K�
D9���H��� A�����H��tD��H�5UI1��V������������ M��� �������fDD�0D�CE��~�E��~����e���D�˺��A��u���D$�t$9��/������������D�;�)��A��H�D$D�pA���uc蒶���0���k������b���H�=�?D�������j���f.�H�=�?�����������H�=CH�����������1�1����H�\$H�CX�������������=� �f����=� �D��H��� H��t�x�ff.����H�u� H��t��x�x����H�U� H��t��~�x����H�5� H��t��~�x����H�� H��t�x�ff.�����=�� �D����� �D����� Ð����� �D��AUATUH��H�=�>SH��8dH�%(H��$(1��-���H��tH��� �H�=�� ��H�=O>����H���E1��
H��螹������H�=I>�ڳ��H��t�
1�H���v����h� H�=5>贳��H��H��t�
1�H���M���I��A�ą��WE1�H�=>耳��H��t�
1�H�������ϊ H�=>�Z���H��tH�Ǻ
1�������O���H�=�=�3���H�����Њ H�=�=����H��tH�Ǻ
1�谸�����9����Ķ������H�=�=���H����1��
H���x������OH�=�=賲��H��tH�Ǻ
1��O������ش��H�=�=茲��H��tH�Ǻ
1��(���������H�=�=�e���H��tH�Ǻ
1��������ʺ��H�=r=�>���H��tH�Ǻ
1��ڷ����胲��H�=b=����H��t�=���H�=`=����H��t�
1�H��蝷����� ���_H�=H=�ӱ��H��t�
1�H���o����ʼn D�^� �P� �B� E����H�==�ٶ��H�����="� ��u	�P�� �5� ����H�==�S���H�����
1�H������Ո �…�t�Ո �����H��u H�H����H�H����D��� L�=L�
=L�=�C�
H��L���������t@H�ֹL����€���D	�t%H��tAH�H��t9�H��L���������u�H��fDH�JH��H�J�H��u�H�H��u�1ۉ�H��$(dH3%(��H��8[]A\A]�fD�փ H��膲���D����<G�~A��<MED�A������s���D��H�H��� �_�����豲�����@H�=�:�̯��H���������fDH�=:謯��H����������fDA���f��@�+� �#���f�諳�����fD1�E��H������~���H��s �8������H�=;�ǵ��H��H��� H����H�5�:H���u���H��H��� ����H�����-�� ������H�5�:H���@���H�5�:H��I��H�L� �'���H�5�:H������H�5�:H��H�� ������~H�5�:H�����H��� H�=� H���~A�ԅ��L���H�=mB���H�=� 蔮��H�� �$���@H��H�$H�D$�r������DH��H��$���$��̯�����t
螮��1҃8k�‰�� ����H�=^9�̭��H��t1��
H���h�����~�V� H�=F9袭��H��t1��
H���>�����~�(� H�=.9�x���H��H���iH�Ǻ�1�1�諵���Ã����H�T$�ƿ����������D$(?���H�5߄ ���ر��H�������W���H�`� H��t�xc�@d�x��@�D�
� E���9���D�k� E���)����Z���f�H�=m8褬���>� H���K����]����
2� ��u
�$� '�� �������� '������� �)���f��Յ�tbH�à H���-�������DH��H�5�?�1�������S�����������A��Hc�螲��L�%g� H��H�u� �a����s����Å�t��=s� ��� ����B� ��u
�L� �5R� ������`���H��H�50?�u���H��H�5�>�1��U����������H��H�5�>�F���ff.����AVI��AUE��ATI��UH��SH��t��4H��u!�(fDH��H���t���H��L����W���H�]H��u�M��tE��L�����[1�]A\A]A^ÐIc�L��L���������H�#Eg����H�GH�H��ܺ�vT2H�G����AWAVA���AUI��ATUH�oSH��1�H���G�O�@�ƉWD���������W��?t;A�ĉ�D��H��H�|�@D)�A9�rhA��G�t4�L��L��$���H��L���9���A��?vWE�f�A��I��I��I�H�޺@H��H��@���H��L������L9�u�A��?D��L��H��H��[]A\A]A^A_鼱��I�������ATL�fUH��S�FH�����?��L�H�z���?)ƒ�w=��t1������9�r�L��H������f�CAD$AD$ I�D$0��71�)�����H�CH��L��H�CP�?����oH�{1�H��MH�H�CPH)��KX���H�[]A\�ff.�f�AWAVAUATUSH��dH�%(H��$�1�H��t^� �I���A�����f�Mcg I�oA�_@L��H����3���H���uM�����8u
�=	| ��uٽ����H��$�dH3%(����
H�Ĩ[]A\A]A^A_�f���~�A��A������u���I���ALJ�f�8LS�|�x�r�@t�P�Hf�@�H�P�X���N������	M�g���A;G �ZA���9�~u���E�o)�H�Hc�I��H��L��D���"���H���u$�����8������5�z ��u�����������A��M�gA���9��I�D$,H�D$Hc�I�I���D�hA�����h(A9��}A�� �/Hc�I���H�4@H���E���H���A���I���I����h$A9��}A�� ��Hc�I���H�4@H�����H����A���I���I���H�l$�p(I���L��H�����������I���I���L��p$�������hM���Ic@���o9��gIcP���[9��SIcp���G9��?IcH���39��+I�H�H�H�H�I���H�T$I���Ic@ H)�I���H��H��I���H��H�H���I���H�I���IcHI���H�H��H�D$I9���E����1�D�L�4��t9�d�<B�9�ZH��H��u�IcP ���kI���H��H�H9�r*�RP9�!�P9�P9�H��H9��-�9�~�H�5�1�1�荮��H�51�1����w����>���f�H�� ����H��� ���I�GA�G  I�������P�Hf�@	f�@
�H�H�P�P�H�H�P�P�H�H�P�P�H�H�P�P�H�H�P�Pf�@f�@f�@�H�H#�P�P �H �H'�P#�P$�H$�H+�P'�P(f�@f�@!f�@%�H(�P+f�@)I������1��
fDI���HcȋL�4��t#f�BI���H�T�4�
�rf�B@�2�JH��H��u�M���IcP ����I���H��H�H9������pH��@�p��p�H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��p��H��H�@�p��H�H9�w�M���A�pI����b���Ic@I���H����0�*z ALJ���t`��y 
�y A�������y 1������L��Hc�诩��I��H������I�GA�o I����u���I���D�%�y D�-�y �B(A��A���1Ic�H�4II���L��I�
�9�H�qH�=G.����������I�J�D�B(�9�xH�qH�=".���������XI�J���B(��$�A�D$I���KA�zH�L$�;M�bfo�x L�t$ L���AoL$AT$M�l$)�$�蘪��� L��L������H�L$�L��H����L��L�����H��$�I�D$H��$�I3L$H1�H	���D�$$D�l$E����D��D�l$�â��H�=4x I��H��������I��D����w ���M���H�=�w t"L��D��L������Ń����������P�|$�g��������E��t$A9u��H�t$��~��������D���
���������5�w ���$A�?D�5�w ���t� ���A�����H�5�)L�����H��tH�����H�rw f�)Ww �#���A��H�5�i 1�����H��@�������H�5�+�1��9�������L�����H��������
1�H���o���I������H�5�3�1���H�5�3�1��ݨ��D�%�v ��v D��D$����H�=uv I��H��tZE���W����7����E1�1�1�1���ݤ����������H�=�3������H�5�*�1��`�������E��|$蟦�������M���2����;�����|$�w��������E������1�H�5�*L���u������I�}臧���Ń������1�H�5�*L���K�����fD�=�u ������-�u �{u E���D$A�����I���F������H�5�)�1�膧��������H���H)���H�5�1�H��1��a�������1�H�5*L�����������
����ܟ��1�H�532L�������A�#��L��H�
�3H��p 臣�����1�H�5�)L���a����ff.����AVAUATUSH��dH�%(H��$�1��D$H���H���ѡ������	�;1�L�l$L�d$L�t$H�k�l����Bp �����{�ul�;�����L��L���D$�����C�����H�t H��t�@��H�4t H��t��{1�����f�|$���=�s u|H���4��tH��舴��H���@�����o ���d���1�H��$�dH3%(u}H�Ġ[]A\A]A^�D�s������������������������{�H�5�e �,���H���f����ы{L���A��՜���;����۝��ff.���AWAVAUATUSH���D�=4s dH�%(H��$�1�E���xH��� ���H�-ir H�����}�����r ;.e �DH�-s H��t1��A���H�ED�rn E���H��$L�|$PD�cA����:E1�A�f�D�
5n E����D�}r E��tH��r H��t
�@f����L��H��1���H�Ic��g���D��H�D$PH�D$X����A���?)ѺH��H	��D9#��1�1�A�|$M��H���m D9#������H�r H��t
�@D9#��d A��D9���1�葳��������f������H��$�dH34%(���'	H���[]A\A]A^A_��K���L��$�H�����DŽ$hM�l$H��$�L��謞��H��$L��H��H�D$@�������AH����L��DŽ$hH��$��e���H��$�L��H��H�D$0�8������PH��$�L��H��H�D$8�������+H��$`L��
H��H�D$(������H��$ L��H��H�D$H�ə��A�Dž���H�D$PE1�L�l$`H�D$H��$�H�D$H��$`H�D$f�D�%�o E����H��o H��t	H�=�k ��1��t���I��L9�t<1��ձ������L���5����E���D�uE���M��E1���V�&���H��k �L��H�1���H�Hc}赚���}L�D$L��H�D$PH�D$X�����������?)ѺH��1�H	T�`1�Fk ���������������8�����H�t$(1ҿ
�}���������x������=�����������_����5�n ��tH�o H��t
�@f���,���D9#�
D������C�����H��n H��t�@��H��n H��t�D�c1�D���N����
 j �����=�m �����{�H�5�` ���H����������H�!n H��t�*H�Qn H�������B���(���@H�1n H��t�@��H��m H����������@苖���8�B����-���DA��D9�����M�����=Ri ������蝟����������=6i �����H�qm �
H��t��D��H�Pm H��t�
�A9����������H�1m H��tD��҉T$$D�E~:E��~5���W����T$$A��軙��A�����謙��A��u������D�E�U�M�
D9�vH��l A�����H��tD�H�5�'�1�覞�������������D$�W����0������������H�=�!�G����T$���fD�}蠩���C�����1��m���H�|$I�����H�|$���H�T$H�t$1��P������6�����������1�EM��tA�M�gM�g�{E1��C����C����H�t$1ҿ����������H�=�)�'������f��;�	���������>���fD�D$$�O����0���d������T$$�W���H�=��T$�7����T$����fDD�#A�����������fD�Nk ���R���D��f E���B���H�k H���2����9�f �����{�H�5e] 蠔��H�{�w������H�=C(�F������茓��H�=�(�0莖��M������A����H������…��
H�{����H���֘���<f ���������H�=��Ԛ��������������H�t$1ҿ�t�������H��i ����Rj ���L�=Rj �8j H�j �j H��i H��tH�V 1�1���L�=j A�G��H��i H��t��{1�蝦��D�-ne E��uH��i H��t!�E�9~�Je �Hi �����;���t�ؕ�������H�t$@1ҿL��$��ɒ��H�t$01ҿ踒��H�t$H1ҿ角��H�t$81ҿ薒��H�t$(1ҿ
腒���kH�LSH��$��j'��$�讒���L��$�舒���Ih ��h ���H�=#�*���������%���軚���������,���H�='&�����Q���H��h H��t*f�C1��C�D$�C���C����T$H�C(H�C �dh ����֒��fD���=^h �\h �ff.�@��H�d ������f.�f�����fD����l H���ff.���H�]T H���H+���H���HO��D��H������1��f���1��f���ATI��H��US��Hc��H���Hc�L��H���:���H�=l H��H���ؔ��[�]A\�ff.�H�5ig SH��k H��tH�=�k H�ٺ1�[����D�H�=�'还��H��H�%g ����H��s�����H��H�=IS 蜏���H���f���H��H�=)S �|���Hc5k ;5�b H�=k |6�!���H��j �����H��j ���j H���fD苎����f����?��I�H�=�R ���H���H+��9�M�1���~+H��Hc�Hc5�j H5vj 聐����~sj H���f��ff.�@��UH��SH��H��膓��H�m ��t]��uaH��H���H��tT�؃���tJ��tEH�H�؉у���u5H�M�� u@H��H�p��H�}��H��H�[]H�D�@H�����u�H������H�MH��� t�H�PH�p�f���SH���C���H��[�ff.���SH���s���H��H�������[Ð��H��H�=YQ 蜔��H��` H�����H��H�=9Q 蜎��H��` H�����H��H�=Q ��������tH��` H��H�����USH��H�=�P 芏��������H�=�h H��t�{���H��h �����H��h ��h �ō��9�h t H�5Nd ��h H��t[1ҿ1����1�H��h ���H�-P H�;H��H�u�ɔ��H�uH�;H��蚋��H��_ H��H��[]�f��H�=@$�_���H��H��c ���SH��H�t$�-�����~0H�|$�H�\$�$���H���l���1�H������H��[�@H�\$H������H�|$行����ff.�@��AWAVAUA��ATI��U��SH��H���<Q��~v<R��<Su"�H�=�#H���������@Mc�L��L��芓��Hc�H��I���|���H�=Mg L��H������H���[]A\A]A^A_�fD<Pu��
H�=+#H�������u��ƀULc�u��H�=�"H��������t����?H������I��H���H��A��L)�A)�Mc�H��L��H�L$�В���	H�=�"H�$軒��H�$H�=�f H���X���H�L$L��H��蘒���H�=�"H�$胒��H�$H�=Pf H��� ���1�A�??L����I�L���Y����H�="I���E���H�=f L��H��������fD�
H�=�!H��������r����:�i������@A�L�%�Q���fDO�<4L��E1������H9�\ tH����ATUH��S���ʉ��L� �‰��H�5�e H�=�!H��ȍ��裉��H�5�` L� H��tH�=]e H���[]A\�_�����H�=a!�7���H��H��` ��ff.��=�d �t1��@H��L H����=�d ����t�USH��;=&\ ��H�=�` 脎��H��H������Ń����H��覈��H������Hc_d ��H���-�������E1�A���H��1��[���H�$d H����������1�H��[]�f.�Hc���C���H��c H��u�H�=� 軏�����@��c 1��H�=5 蔏�����}�����fD�ˇ���8�d���H�پH��I��H��K H�81����H���)�����N���H�=��3�����������1���f���AUATI��U��SH��H���e�����~0����H������~H��ƒ����m���d1��������@�����-�b ��+�b Hc�D�-�b �;���I�Ĩu,H�����t$H��ƒ������H����@��t"D)�A�DI�D9�u"D���������H��L��[]A\A]�@D)�Hc5Vb L��H5<b Hc��$���>b ���H��L��[]A\A]�@I�<$@��u&蹇����xe�-b �b )�9�O���!���裏���ؐD9�Hc5�a L��DN�H5�a Ic�谈��D-�a �R���@��I�$����@H��A�[L��]A\A]�H�=I H�5nH�81�蔅��@��AWAVAUATUSH��H��薌����~0���(H������H��ƒ����
���1��J�������L�5
a ��D9-a ~N��-���D�-�` M�&�H�gHc=�` D��)�I��L�Hc�H�����H��t�L)�D)��XHc�H���!���I�Ĩu*H�����t"H��ƒ���M�H��sBf.���~Hc5u` H��H5[` L���C���]` H��L��[]A\A]A^A_���I�$��A���H��G H�5H�81��(��������_ SH����_ ��~"@H���h���H���0�����_ 9�_ |�H��[�ff.�f���SH�������~ ��u@H�����t7H��ƒ���t*��t%H�=G 貄�����t
H�[H�D�@�[�H�
G H�5;H�81��a������AUATUH��SH��dH�%(H�D$1�����I��1�I���KDH����H9�}LL���Ă��L��I�E tW貂��I�EH��H��L��H��H�$�2���I�E�� u�I�EH9�|�H�L$dH3%(�uBH��[]A\A]��[���I�E �D�H�=1�?���H��H��H�$�˂����T���@��1��f���UH��SH��H��dH�%(H�D$1���u;H�����t2H��ƒ���u%�� tH�{~H�S��H�S��u�DH���uX胃���H��D$����H�E H�t$�H�8�PH��H�����HD�H�L$dH3%(uH��[]���;�����t���@��AVAUATUSH�Ӆ�����G�I��L�%	H�l��R�@��uj������t`H��tZ@��tTH��4tN�������H��H��H�=�����6���I��L9�tpI�}@��u�H�����u�H��tqH��u���#���H��I��H���e�I��� u]H��I�V��H���<
t�H�YD H��I��H�0�2�L9�u�[�]A\A]A^����u�L���&���H��뉐I�FI�VH���f�H�D H��H�0���[�]A\A]A^���AVAUATUH��SH��dH�%(H�D$1������I��H�6A���L�5��w���@����H��H���H��tw����to@��ti�����u_�L���b���H��H���7�A9�~OH�kC H�0H��tH����I�t�H��@��u�H�����u�H��t�H��u��H�����A9��H�C H�0H��tH�����H�L$dH3%(�u0H��[]A\A]A^�f����I��A�H��H�$���р�����AUATUSH���M��������H�=xH��Z H��Z ��Z �~��H��t8�
1�H��H��詃��H�Ņ�~�MH���Հ��H�������-�Q H�=,��}��H��H��tH������H��H=��8�Xfo[f�$V )
V H�=e1��}��H��t1��
H��1�������@��H�=�A �f������H�=���Y �?}��H����H����������H�FA H��H�H��A H�5fU H�H��Y H���sL�%A I�<$蓄��H�54U H��Y H���$1�H��1�����H�=yY H�rY 荄���H�=1�|����H�=(I���h���H�=AY L��H�������H�5��H�=��.���I�4$H�=��Ά��1�H���H�5�H��H��X �o������H�=�X 1�H��H�5��+���H�=�X �H�8���H�5�����H�=�X �H�	�H�5����H�=vX �����H����H�5��΂��H�=WX �����H���H�5�诂��H�=8X �����H�����H�5�萂��H�=X �H�=�H�5f�q���H�=�W 1�H�q�H�5M�U���H�=�W 1�H�����H�57�9���H�=�W 1�H����H�5 ����H�=�W �����H�*�H�5���H�=�W 1�H���H�5����H�=kW 1�H�2���H�5��Ɓ��H�=OW 1�H���H�5�誁��H�=3W 1�H���H�5�莁��H�=W 1�H���H�5��r���H�=�V 1�H���H�5~�V���H�=�V 1�H���H�5j�:���H�=�V 1�H�j�H�5U����H�=�V 1�H����H�5>����H�=�V �H�?�H�5$���H�=lV �����H���H�5��Ā����腃��L�%�= H�=7V H���H��H�V L����}��H�V H�-�= H�=aM H�
�= H�SM H�*H�JH��= H�H�s= H�����������H�=�U L��H�+�H��H��U �|}��H��U H�
>= H�=�L H��L H�JH�*H�豀����y��H�(��y��H��(���H�iU 1��z�H�5[U H�=�}��H�3H�={�}���y��H�(H��[]A\A]�DH�P�H��H�=�P �}��H��w"H��P H�.XXXXXXH�(����H�t+��H�=������u�����H�=�T 1�H�X�H�5��,��H�=�T 1�H��H�5����H�=yT 1�H���H�5���~�������H�=$�g���H��H��O H�NT �����H�=��?���H��H��O �m���H�=�����*����H�=��<w��H����������fD�mH���z��H���6����KH���y��H��t��
�-K �����kH����y��H��u�-�J ������H��H���Anonymous mmap() failedlocalhost%02d:%02d:%02d [%s] [UID:%d][%d] %.*syesnosystem()%s, errno: %d (%s)
/dev/nulllibpthread.sopthread_atforkHTTP_[UID:%d][%d] %s:%s: %s
LSAPI: jail() failure./etc/Can't set signalsaccept() failedLSAPI_STDERR_LOGPHP_LSAPI_MAX_REQUESTSLSAPI_MAX_REQSLSAPI_KEEP_LISTENLSAPI_AVOID_FORKLSAPI_ACCEPT_NOTIFYLSAPI_SLOW_REQ_MSECSLSAPI_ALLOW_CORE_DUMPLSAPI_MAX_IDLEPHP_LSAPI_CHILDRENLSAPI_EXTRA_CHILDRENLSAPI_MAX_IDLE_CHILDRENLSAPI_PGRP_MAX_IDLELSAPI_MAX_PROCESS_TIMELSAPI_PPID_NO_CHECKLSAPI_MAX_BUSY_WORKERLSAPI_DUMP_DEBUG_INFOnobodyLSAPI_DEFAULT_UIDLSAPI_DEFAULT_GIDLSAPI_SECRETLSAPI_LVE_ENABLEliblve.so.0lve_is_availablelve_instance_initlve_destroylve_enterlve_leavejailPHP_LSAPI_PHPRC=packetLen < 0
packetLen > %d
Bad request header - ERROR#1
ParseRequest error
SUEXEC_AUTHSUEXEC_UGIDLSAPI: setgid()LSAPI: initgroups()LSAPI: setgroups()LSAPI: setuid()Bad request header - ERROR#2
lsapi_accept() errorPragma: no-cacheRetry-After: 60Content-Type: text/htmlDEBUGNOTICEWARNERRORCRITFATALAcceptAccept-CharsetAccept-EncodingAccept-LanguageAuthorizationConnectionContent-TypeContent-LengthCookieCookie2HostPragmaRefererUser-AgentCache-ControlIf-Modified-SinceIf-MatchIf-None-MatchIf-RangeIf-Unmodified-SinceKeep-AliveX-Forwarded-ForViaTransfer-EncodingHTTP_ACCEPTHTTP_ACCEPT_CHARSETHTTP_ACCEPT_ENCODINGHTTP_ACCEPT_LANGUAGEHTTP_AUTHORIZATIONHTTP_CONNECTIONCONTENT_TYPECONTENT_LENGTHHTTP_COOKIEHTTP_COOKIE2HTTP_HOSTHTTP_PRAGMAHTTP_REFERERHTTP_USER_AGENTHTTP_CACHE_CONTROLHTTP_IF_MODIFIED_SINCEHTTP_IF_MATCHHTTP_IF_NONE_MATCHHTTP_IF_RANGEHTTP_IF_UNMODIFIED_SINCEHTTP_KEEP_ALIVEHTTP_RANGEHTTP_X_FORWARDED_FORHTTP_VIAHTTP_TRANSFER_ENCODING%04d-%02d-%02d %02d:%02d:%02d.%06d Child process with pid: %d was killed by signal: %d, core dumped: %s
Possible runaway process, UID: %d, PPID: %d, PID: %d, reqCount: %d, process time: %ld, checkpoint time: %ld, start time: %ld
gdb --batch -ex "attach %d" -ex "set height 0" -ex "bt" >&2;PATH=$PATH:/usr/sbin lsof -p %d >&2Force killing runaway process PID: %d with SIGKILL
Killing runaway process PID: %d with SIGTERM
Children tracking is wrong: Cur Children: %d, count: %d, idle: %d, dying: %d
LSAPI: LVE jail(%d) result: %d, error: %s !
Invalid custom stderr log pathFailed to open custom stderr logCan't set signal handler for SIGCHILDReached max children process limit: %d, extra: %d, current: %d, busy: %d, please increase LSAPI_CHILDREN.
LSAPI: failed to open secret file: %s!
LSAPI: failed to check state of file: %s!
LSAPI: file permission check failure: %s
LSAPI: failed to read secret from secret file: %s
LSAPI: Unable to initialize LVERequest header does match total size, total: %d, real: %ld
LSAPI: missing SUEXEC_UGID env, use default user!
LSAPI: SUEXEC_AUTH authentication failed, use default user!
LSAPI: lve_enter() failure, reached resource limit.prctl: Failed to set dumpable, core dump may not be available!sigprocmask(SIG_BLOCK) to block SIGCHLDsigprocmask( SIG_SETMASK ) to restore SIGMASK in childfork() failed, please increase process limitsigprocmask( SIG_SETMASK ) to restore SIGMASKCache-Control: private, no-cache, no-store, must-revalidate, max-age=0PID<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>508 Resource Limit Is Reached</TITLE>
</HEAD><BODY>
<H1>Resource Limit Is Reached</H1>
The website is temporarily unable to service your request as it exceeded resource limit.
Please try again later.
<HR>
</BODY></HTML>






	


replacesrandQUERY_STRINGREQUEST_URIPATH_INFOREQUEST_PATHSCRIPT_NAMESTDERRreopenftruncate() failed. 
File mapping failed. 
Memory calloc error[...]nilLSAPI_MAX_BODYBUF_LENGTHLSAPI_TEMPFILEXXXXXXRACK_ROOTchdir()to_hashCGI/1.2eval_string_wrapLSAPIacceptaccept_new_connectionpostfork_childpostfork_parentprocessputcwriteprintprintfputs<<flushgetcgetsreadrewindeacheofeof?closebinmodeisattytty?syncsync=RACK_ENVInsecure: operation on untainted IOGATEWAY_Irewindable_input.rbNTERFACE/tmp/lsapi.XXXXX;�z0Z���e�� �p��8�p��L�p��`�p��t0q���@q���Pq����x��0@y��d�y��xz���`z���{��|��$}��t�}��� ~�����<`��d���������$P���p���������H	���p	 ����	0����	@����	P����	����	��
�0
���D
`���X
����t
����
p����
���
�8`���L�����������P ���dp���x������������
����h
0����
p����
�������(����tP����0���P���p��������������@���<`���P����d���xp�������������,�@���T0���hP���|p����������������������������4`���t����������P���0��L����������� ��0��$P��8���L���`���t�������P���`����������`��0��\0��xP���p�������������� ��,@��x����p���@�@�����p��`�p�@�H������zRx�$0V���
FJw�?:*3$"D�`���
\@l��p<l���8l��
L�4l��sE�I�B �E(�A0�z
(A BBBIA
(D BBBA�dl���`l��@\l��YG�J�B �B(�A0�A8��0F(B DBb0Txs���B�F�C �G�
 AABK��s��k(�0t��GA�D�J n
AAA4�Tt��UA�G�K R
CAGL
JCG |t���A�G�]
AJ $�t��t��
CKF�LH�u���B�B�E �A(�H0�H
(D BBBD�
(D BBBAP��v���v�F�B �A(�D0�D
(A BBBBL(A BBBA�����$��v��aA�A�D XAAH(w���B�B�B �B(�A0�A8�D@N
8C0A(B BBBH$`�w��OA�f
QC
EH@��w��YB�B�B �A(�D0�J��
0A(A BBBFx�z���F�E�A �C(�G�
 
(A ABBDM�
I�
c�
A�
��
E�
M�
A�
k�
E�
E�
E�
E�
H�V�
HHd|���F�B�B �B(�A0�A8�D``
8A0A(B BBBDl��}��+B�B�B �B(�A0�D8�J�Y�H�P�C�	M�i
8A0A(B BBBEL�T�M�D�d�~��6B�B�B �B(�A0�A8�DP�
8A0A(B BBBG
8J0H(G DBBK$lp���7E�F�F IIO��������������������4������F�A�A �G�>
 AABG ����E�O
D�
A@����
T����h����Y|���JE�D�4���S �����]P�h
HXA�H�����lF�B�B �B(�A0�A8�LP�
8A0A(B BBBH<��F�B�B �A(�A0��
(D BBBI\����i`p���F�B�B �B(�A0�A8�DP~
8A0A(B BBBAk
8A0A(B BBBHL�ȇ��$F�B�B �A(�A0�H��Q
D���
0A(A BBBHL$����F�B�B �B(�A0�A8�G��
8A0A(B BBBFtx���F�����F���$�|����n�C�X�J�L�T���lF�B�B �B(�A0�A8�D�A
8A0A(B BBBA`(	t����B�B�B �B(�A0�A8�G� I� K� I� L� N� N� w
8A0A(B BBBI0�	����B�M�D �G�L
 AABA<�	����=B�A�A �G� L�@I�@U
 AABG$
�����T�WE�H�G� (
��a�g
HS�HL
�����F�B�B �B(�A0�A8�DPS
8D0A(B BBBFT�
����b�I�E �D(�C0�P
�(F� B�B�B�MQ(H BBBA�����H�
|����F�B�B �B(�A0�A8�DP�
8A0A(B BBBAT<���C�B�A �A(�G0`
(A ABBD�
(C ABBAJ����8�ؖ��-F�B�D �D(�D@T
(A ABBB�̗��(�ؗ��lE�C�G�F
AAIL���!c�B�G �A(�D0�
(A ABBEX����D0����`����t���Z�T���10�����pF�A�A �G@7
 AABF�����@L�sL���F�B�B �B(�A0�A8�G��
8A0A(B BBBG<
����P
����d
����x
�����
�����
̞���
؞���
���
���
ܞ��؞��<Ԟ��	F�B�A �K(�G�
(A ABBG<X�����F�E�E �D(�D0�M
(C BBBB���(H�����F�B�H �E(�A0�E8�I@�
8A0A(B BBBE(������F�E�D ��ABH$H����B�B�B �B(�A0�A8�G��
8A0A(B BBBJDpܴ���F�B�B �A(�A0�G�
0A(A BBBFL�D����
F�B�B �B(�A0�A8�G��
8A0A(B BBBA����4���
H���\���+p,����(����$���(� ���BF�G�A �kFB�D���MH�^
J�x���
t���HU |���gHQ
G<���ayd(T(���E�D�L ]
CAJ����E�L����E�Y���� HW���� HW����-Hd(����E�A�D �
DAJ ,���aE�D y
AEHP���F�B�B �E(�D0�C8�GPm
8F0A(B BBBG,�����Z�A�D �J
�A�B�L4�0���o�A�D �
AAKp��P ��\����F�B�D �C(�G0�
(D ABBEj
(D ABBE|
(G DBBAHd���hF�B�B �B(�A0�A8�G@
8D0A(B BBBD���CK�w �P��oE�A
JF
A8�����F�B�A �D(�D@�
(A ABBA,P��(@L���E�D�G0�
AAIHl���PF�B�B �A(�A0��
(F BBBH{(F BBB@����OF�B�B �A(�D0�D@
0A(A BBBJ8���{F�B�A �A(�D0�
(A ABBFGNU��V@V !Q������������������������������&�.�3�:�B�M�[�m�v�����������������������/�?�L�[�g�t�~�����������������)�4�I�R�$3CN\f� @
l�!!���o`�
! 0x'�	���o�&���o�o%���oD(
!P@`@p@�@�@�@�@�@�@�@�@AA A0A@APA`ApA�A�A�A�A�A�A�A�ABB B0B@BPB`BpB�B�B�B�B�B�B�B�BCC C0C@CPC`CpC�C�C�C�C�C�C�C�CDD D0D@DPD`DpD�D�D�D�D�D�D�D�DEE E0E@EPE`EpE�E�E�E�E�E�E�E�EFF F0F@FPF`FpF�F�F�F�F�F�F�F�FGG G0G@GPG`GpG�G�G�G�G�G�G�G�GHH H0H@HPH`HpH�H�H�H�H�H�H�H�HII I0I@IPI`IpI�I�I�I�I�I�I�I�IJJ J0J@JPJ`JpJ�J�J�J�J�J�J�J�JK,����LSLSLSLS����������������X�X�i�y��!D#!���GA$3a1 @y�GA$3p1113�V$�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA$3p11130�k�GA*GA$annobin gcc 8.5.0 20210514GA$plugin name: annobinGA$running gcc 8.5.0 20210514GA*GA*GA!
GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*GOW*�GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign
GA*FORTIFY�V:�GA+GLIBCXX_ASSERTIONSlsapi.so-5.6-1.el8.x86_64.debug����7zXZ�ִF!t/��O1]?�E�h=��ڊ�2N�a8_~ ��*~��,�������4�?�}8���P4H�3�.R�����/q��Fv�k-B�3���k�I�8�9����N�?�{�g�Ï�"�-��n�d����c�����LgP�r/?Ҽ���h���c1��*6j��[��|�29 ]W�t�<E���5R���L�) (�*����*�?*�XDضLЄ.Н����ޤ�E�;����٪�K�\�s.�zMT��m2�f��ث�~sK�{��L��u�3J^�q�2A������K�Ϡ����P/rM��I/)F�/�Z�_�
����f����3��ߓ����v����=�:8[�+ԩ<ų����el2��Mb��-�{,��cӢ¡��ev��ʒ�M
q�bs�j�qG�8�\΄XY�h�����6��kh6���w͈��ׄx���	7�HC�y�Y�R׬Q�R�[��S/�"���Ț7��tF�����`��m�d3�f45V|�XEf!s�.�
�sU��MM�y9��L1}��m[��P�`��U���
�-��06��3^4�_Ӑ�+'����8Ȥ�h�7z>uÊ�Mm�v#.-��y"l����*����(�~�:�n�mv��(B��o)I6q�����D���p���y�H�����N7Q
�����ڦ?�r&�j����8�6K:4K���đ�2�̙U��٠��jŸ�:�o�.0?v�
��#K$�f|Wj.���'�e�U��~�R̛���ǧG���䃶B~>�KZ`�z]���/�(r��NOn�L�C���i1��)���[t�
��{�_����;Ƽ�@�vi�g�r�R���׹+nx�%�.�5��p�v#�kW�M��`�T$��@ƠB9u��y@��9������/�T����ޘF8~���q�B��'^�/42eGU�r��x&l���8i�;��u�Ui�v}��I�,de�U)�Q.�Ml��_�rz\$�/H�ك
�d�ˇ���E���b�qj����W���g��tz�:A�0�tW�]z��ֺV
��aOBDo\-&��!��&���)LlQ�����WY�%EC��(٘�v�
�r�$���h�
�t�2�Q��chK��dt��b��Ӳ7���9U��$@�o:�䪯�'�S�y���L!�C��q[U�f��<���4�f�%4V�C�i�m1;is����"�&j�6
)��-�v�<�+���=���d>��G�R���������n�W�@	�B,�{�#v��e�
C2l�'L�4p_�3YM�)��e��G+�t��g]�MQPs���U����wl/�?��y��Z��K$���~:�D�F���B�Hւ��s����4�y�(�\�&�U��?Z�����3���~�\]H�	�x�Ŏ���6�0&�<<L�n��{Ч���a��x��D27E��F�}��yR*U�3���頌ԇ�g?)��~#�/*3��rk�� UG$wJL�$z�����-��I�
�t^�7��9,b ��!�F"�!���W�]�]y�,rj�-}����
��D�uÜc{�O7M�5x���?�bK'
؛|:��޾?Ut�����^^	��iD�$U���U�<E��.�Y+0g�����%�hv�~hF�!Ԉ�'�.��󝂨��
/�B��Yv��g�R�Ig�W��6p�Z�� ������͕_R���N���2��g
B�R�:������c8@�^�ߓzc!������k��;]���TܶuxЈ��,
#��L��&z�����u=n�Pl��<��6ڱ�g�YZ.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.note.gnu.property.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata88$���o``p(��@08���o%%�E���o�&�&�Tx'x'�^B00 h @ @c@@@@�
nKK�
w�U�U�~}l�l�
������ ���������8�(�(� �!�!� !  �(
!(
 �H!H��!x��!��	 �`!`� �(a`t#$"�#t+1lib64/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0/ruby-lsapi-5.6/mkmf.log000064400000011361150402107210021014 0ustar00have_library: checking for main() in -lsocket... -------------------- no

"gcc -o conftest -I/opt/alt/ruby22/include/ruby-2.2.0/x86_64-linux -I/opt/alt/ruby22/include/ruby-2.2.0/ruby/backward -I/opt/alt/ruby22/include/ruby-2.2.0 -I.    -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection conftest.c  -L. -L/opt/alt/ruby22/lib64 -Wl,-R/opt/alt/ruby22/lib64 -L. -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -L/opt/alt/openssl/lib64 -L/opt/alt/ruby22/lib64 -Wl,-rpath=/opt/alt/openssl/lib64,-rpath=/opt/alt/ruby22/lib64 -fstack-protector -rdynamic -Wl,-export-dynamic  -m64   -Wl,-R/opt/alt/ruby22/lib64 -L/opt/alt/ruby22/lib64 -lruby  -lpthread -ldl -lcrypt -lm   -lc"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

"gcc -o conftest -I/opt/alt/ruby22/include/ruby-2.2.0/x86_64-linux -I/opt/alt/ruby22/include/ruby-2.2.0/ruby/backward -I/opt/alt/ruby22/include/ruby-2.2.0 -I.    -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection conftest.c  -L. -L/opt/alt/ruby22/lib64 -Wl,-R/opt/alt/ruby22/lib64 -L. -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -L/opt/alt/openssl/lib64 -L/opt/alt/ruby22/lib64 -Wl,-rpath=/opt/alt/openssl/lib64,-rpath=/opt/alt/ruby22/lib64 -fstack-protector -rdynamic -Wl,-export-dynamic  -m64   -Wl,-R/opt/alt/ruby22/lib64 -L/opt/alt/ruby22/lib64 -lruby -lsocket  -lpthread -ldl -lcrypt -lm   -lc"
conftest.c: In function 't':
conftest.c:13:32: warning: variable 'p' set but not used [-Wunused-but-set-variable]
 int t(void) { void ((*volatile p)()); p = (void ((*)()))main; return 0; }
                                ^
/usr/bin/ld: cannot find -lsocket
collect2: error: ld returned 1 exit status
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     printf("%p", &t);
 9:   }
10: 
11:   return 0;
12: }
13: int t(void) { void ((*volatile p)()); p = (void ((*)()))main; return 0; }
/* end */

"gcc -o conftest -I/opt/alt/ruby22/include/ruby-2.2.0/x86_64-linux -I/opt/alt/ruby22/include/ruby-2.2.0/ruby/backward -I/opt/alt/ruby22/include/ruby-2.2.0 -I.    -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection conftest.c  -L. -L/opt/alt/ruby22/lib64 -Wl,-R/opt/alt/ruby22/lib64 -L. -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -L/opt/alt/openssl/lib64 -L/opt/alt/ruby22/lib64 -Wl,-rpath=/opt/alt/openssl/lib64,-rpath=/opt/alt/ruby22/lib64 -fstack-protector -rdynamic -Wl,-export-dynamic  -m64   -Wl,-R/opt/alt/ruby22/lib64 -L/opt/alt/ruby22/lib64 -lruby -lsocket  -lpthread -ldl -lcrypt -lm   -lc"
conftest.c: In function 't':
conftest.c:13:15: error: too few arguments to function 'main'
 int t(void) { main(); return 0; }
               ^~~~
conftest.c:5:5: note: declared here
 int main(int argc, char **argv)
     ^~~~
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: /*top*/
 4: extern int t(void);
 5: int main(int argc, char **argv)
 6: {
 7:   if (argc > 1000000) {
 8:     printf("%p", &t);
 9:   }
10: 
11:   return 0;
12: }
13: int t(void) { main(); return 0; }
/* end */

--------------------

etc/locked_extensions.ini000064400000000144150402107210011527 0ustar00[ruby2.2]
rake = 10.4.2
rack = 1.6.4
rdoc = 4.2.0
psych = 2.0.8.1
json = 1.8.1.1
io-console = 0.4.3
share/man/man1/ruby.1000064400000043631150402107210010317 0ustar00.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>.
.Dd November 7, 2012
.Dt RUBY(1) "" "Ruby Programmers Reference Guide"
.\".Dt RUBY 1
.Os UNIX
.Sh NAME
.Nm ruby
.Nd Interpreted object-oriented scripting language
.Sh SYNOPSIS
.Nm
.Op Fl -copyright
.Op Fl -version
.Op Fl SUacdlnpswvy
.Op Fl 0 Ns Op Ar octal
.Op Fl C Ar directory
.Op Fl E Ar external Ns Op : Ns Ar internal
.Op Fl F Ar pattern
.Op Fl I Ar directory
.Op Fl K Ar c
.Op Fl T Ns Op Ar level
.Op Fl W Ns Op Ar level
.Op Fl e Ar command
.Op Fl i Ns Op Ar extension
.Op Fl r Ar library
.Op Fl x Ns Op Ar directory
.Op - Ns Bro Cm enable Ns | Ns Cm disable Brc Ns - Ns Ar FEATURE
.Op Fl -dump Ns = Ns Ar target
.Op Fl -verbose
.Op Fl -
.Op Ar program_file
.Op Ar argument ...
.Sh DESCRIPTION
Ruby is an interpreted scripting language for quick and easy
object-oriented programming.  It has many features to process text
files and to do system management tasks (like in Perl).  It is simple,
straight-forward, and extensible.
.Pp
If you want a language for easy object-oriented programming, or you
don't like the Perl ugliness, or you do like the concept of LISP, but
don't like too many parentheses, Ruby might be your language of
choice.
.Sh FEATURES
Ruby's features are as follows:
.Bl -tag -width 6n
.It Sy "Interpretive"
Ruby is an interpreted language, so you don't have to recompile
programs written in Ruby to execute them.
.Pp
.It Sy "Variables have no type (dynamic typing)"
Variables in Ruby can contain data of any type.  You don't have to
worry about variable typing.  Consequently, it has a weaker compile
time check.
.Pp
.It Sy "No declaration needed"
You can use variables in your Ruby programs without any declarations.
Variable names denote their scope - global, class, instance, or local.
.Pp
.It Sy "Simple syntax"
Ruby has a simple syntax influenced slightly from Eiffel.
.Pp
.It Sy "No user-level memory management"
Ruby has automatic memory management.  Objects no longer referenced
from anywhere are automatically collected by the garbage collector
built into the interpreter.
.Pp
.It Sy "Everything is an object"
Ruby is a purely object-oriented language, and was so since its
creation.  Even such basic data as integers are seen as objects.
.Pp
.It Sy "Class, inheritance, and methods"
Being an object-oriented language, Ruby naturally has basic
features like classes, inheritance, and methods.
.Pp
.It Sy "Singleton methods"
Ruby has the ability to define methods for certain objects.  For
example, you can define a press-button action for certain widget by
defining a singleton method for the button.  Or, you can make up your
own prototype based object system using singleton methods, if you want
to.
.Pp
.It Sy "Mix-in by modules"
Ruby intentionally does not have the multiple inheritance as it is a
source of confusion.  Instead, Ruby has the ability to share
implementations across the inheritance tree.  This is often called a
.Sq Mix-in .
.Pp
.It Sy "Iterators"
Ruby has iterators for loop abstraction.
.Pp
.It Sy "Closures"
In Ruby, you can objectify the procedure.
.Pp
.It Sy "Text processing and regular expressions"
Ruby has a bunch of text processing features like in Perl.
.Pp
.It Sy "M17N, character set independent"
Ruby supports multilingualized programming. Easy to process texts
written in many different natural languages and encoded in many
different character encodings, without dependence on Unicode.
.Pp
.It Sy "Bignums"
With built-in bignums, you can for example calculate factorial(400).
.Pp
.It Sy "Reflection and domain specific languages"
Class is also an instance of the Class class. Definition of classes and methods
is an expression just as 1+1 is. So your programs can even write and modify programs.
Thus you can write your application in your own programming language on top of Ruby.
.Pp
.It Sy "Exception handling"
As in Java(tm).
.Pp
.It Sy "Direct access to the OS"
Ruby can use most
.Ux
system calls, often used in system programming.
.Pp
.It Sy "Dynamic loading"
On most
.Ux
systems, you can load object files into the Ruby interpreter
on-the-fly.
.It Sy "Rich libraries"
Libraries called "builtin libraries" and "standard libraries" are bundled with Ruby.
And you can obtain more libraries via the package management system called `RubyGems'.
.Pp
Moreover there are thousands of Ruby projects on GitHub
.Aq Pa https://github.com/languages/Ruby .
.El
.Pp
.Sh OPTIONS
Ruby interpreter accepts following command-line options (switches).
They are quite similar to those of
.Xr perl 1 .
.Bl -tag -width "1234567890123" -compact
.Pp
.It Fl -copyright
Prints the copyright notice.
.Pp
.It Fl -version
Prints the version of Ruby interpreter.
.Pp
.It Fl 0 Ns Op Ar octal
(The digit
.Dq zero . )
Specifies the input record separator
.Pf ( Li "$/" )
as an octal number. If no digit is given, the null character is taken
as the separator.  Other switches may follow the digits.
.Fl 00
turns Ruby into paragraph mode.
.Fl 0777
makes Ruby read whole file at once as a single string since there is
no legal character with that value.
.Pp
.It Fl C Ar directory
.It Fl X Ar directory
Causes Ruby to switch to the directory.
.Pp
.It Fl E Ar external Ns Op : Ns Ar internal
.It Fl -encoding Ar external Ns Op : Ns Ar internal
Specifies the default value(s) for external encodings and internal encoding. Values should be separated with colon (:).
.Pp
You can omit the one for internal encodings, then the value
.Pf ( Li "Encoding.default_internal" ) will be nil.
.Pp
.It Fl -external-encoding Ns = Ns Ar encoding
.It Fl -internal-encoding Ns = Ns Ar encoding
Specify the default external or internal character encoding
.Pp
.It Fl F Ar pattern
Specifies input field separator
.Pf ( Li "$;" ) .
.Pp
.It Fl I Ar directory
Used to tell Ruby where to load the library scripts.  Directory path
will be added to the load-path variable
.Pf ( Li "$:" ) .
.Pp
.It Fl K Ar kcode
Specifies KANJI (Japanese) encoding. The default value for script encodings
.Pf ( Li "__ENCODING__" ) and external encodings ( Li "Encoding.default_external" ) will be the specified one.
.Ar kcode
can be one of
.Bl -hang -offset indent
.It Sy e
EUC-JP
.Pp
.It Sy s
Windows-31J (CP932)
.Pp
.It Sy u
UTF-8
.Pp
.It Sy n
ASCII-8BIT (BINARY)
.El
.Pp
.It Fl S
Makes Ruby use the
.Ev PATH
environment variable to search for script, unless its name begins
with a slash.  This is used to emulate
.Li #!
on machines that don't support it, in the following manner:
.Bd -literal -offset indent
#! /usr/local/bin/ruby
# This line makes the next one a comment in Ruby \e
  exec /usr/local/bin/ruby -S $0 $*
.Ed
.Pp
.It Fl T Ns Op Ar level=1
Turns on taint checks at the specified level (default 1).
.Pp
.It Fl U
Sets the default value for internal encodings
.Pf ( Li "Encoding.default_internal" ) to UTF-8.
.Pp
.It Fl W Ns Op Ar level=2
Turns on verbose mode at the specified level without printing the version
message at the beginning. The level can be;
.Bl -hang -offset indent
.It Sy 0
Verbose mode is "silence". It sets the
.Li "$VERBOSE"
to nil.
.Pp
.It Sy 1
Verbose mode is "medium". It sets the
.Li "$VERBOSE"
to false.
.Pp
.It Sy 2 (default)
Verbose mode is "verbose". It sets the
.Li "$VERBOSE"
to true.
.Fl W Ns
2 is same as
.Fl w
.
.El
.Pp
.It Fl a
Turns on auto-split mode when used with
.Fl n
or
.Fl p .
In auto-split mode, Ruby executes
.Dl $F = $_.split
at beginning of each loop.
.Pp
.It Fl c
Causes Ruby to check the syntax of the script and exit without
executing. If there are no syntax errors, Ruby will print
.Dq Syntax OK
to the standard output.
.Pp
.It Fl d
.It Fl -debug
Turns on debug mode.
.Li "$DEBUG"
will be set to true.
.Pp
.It Fl e Ar command
Specifies script from command-line while telling Ruby not to search
the rest of the arguments for a script file name.
.Pp
.It Fl h
.It Fl -help
Prints a summary of the options.
.Pp
.It Fl i Ar extension
Specifies in-place-edit mode.  The extension, if specified, is added
to old file name to make a backup copy.  For example:
.Bd -literal -offset indent
% echo matz > /tmp/junk
% cat /tmp/junk
matz
% ruby -p -i.bak -e '$_.upcase!' /tmp/junk
% cat /tmp/junk
MATZ
% cat /tmp/junk.bak
matz
.Ed
.Pp
.It Fl l
(The lowercase letter
.Dq ell . )
Enables automatic line-ending processing, which means to firstly set
.Li "$\e"
to the value of
.Li "$/" ,
and secondly chops every line read using
.Li chop! .
.Pp
.It Fl n
Causes Ruby to assume the following loop around your script, which
makes it iterate over file name arguments somewhat like
.Nm sed
.Fl n
or
.Nm awk .
.Bd -literal -offset indent
while gets
  ...
end
.Ed
.Pp
.It Fl p
Acts mostly same as -n switch, but print the value of variable
.Li "$_"
at the each end of the loop.  For example:
.Bd -literal -offset indent
% echo matz | ruby -p -e '$_.tr! "a-z", "A-Z"'
MATZ
.Ed
.Pp
.It Fl r Ar library
Causes Ruby to load the library using require.  It is useful when using
.Fl n
or
.Fl p .
.Pp
.It Fl s
Enables some switch parsing for switches after script name but before
any file name arguments (or before a
.Fl - ) .
Any switches found there are removed from
.Li ARGV
and set the corresponding variable in the script.  For example:
.Bd -literal -offset indent
#! /usr/local/bin/ruby -s
# prints "true" if invoked with `-xyz' switch.
print "true\en" if $xyz
.Ed
.Pp
On some systems
.Li "$0"
does not always contain the full pathname, so you need the
.Fl S
switch to tell Ruby to search for the script if necessary (to handle embedded
spaces and such).  A better construct than
.Li "$*"
would be
.Li ${1+"$@"} ,
but it does not work if the script is being interpreted by
.Xr csh 1 .
.Pp
.It Fl v
Enables verbose mode.  Ruby will print its version at the beginning
and set the variable
.Li "$VERBOSE"
to true.  Some methods print extra messages if this variable is true.
If this switch is given, and no other switches are present, Ruby quits
after printing its version.
.Pp
.It Fl w
Enables verbose mode without printing version message at the
beginning.  It sets the
.Li "$VERBOSE"
variable to true.
.Pp
.It Fl x Ns Op Ar directory
Tells Ruby that the script is embedded in a message.  Leading garbage
will be discarded until the first line that starts with
.Dq #!
and contains the string,
.Dq ruby .
Any meaningful switches on that line will be applied.  The end of the script
must be specified with either
.Li EOF ,
.Li "^D" ( Li "control-D" ) ,
.Li "^Z" ( Li "control-Z" ) ,
or the reserved word
.Li __END__ .
If the directory name is specified, Ruby will switch to that directory
before executing script.
.Pp
.It Fl y
.It Fl -yydebug
DO NOT USE.
.Pp
Turns on compiler debug mode.  Ruby will print a bunch of internal
state messages during compilation.  Only specify this switch you are going to
debug the Ruby interpreter.
.Pp
.It Fl -disable- Ns Ar FEATURE
.It Fl -enable- Ns Ar FEATURE
Disables (or enables) the specified
.Ar FEATURE Ns
\&.
.Bl -tag -width "--disable-rubyopt" -compact
.It Fl -disable-gems
.It Fl -enable-gems
Disables (or enables) RubyGems libraries.  By default, Ruby will load the latest
version of each installed gem. The
.Li Gem
constant is true if RubyGems is enabled, false if otherwise.
.Pp
.It Fl -disable-rubyopt
.It Fl -enable-rubyopt
Ignores (or considers) the
.Ev RUBYOPT
environment variable. By default, Ruby considers the variable.
.Pp
.It Fl -disable-all
.It Fl -enable-all
Disables (or enables) all features.
.Pp
.El
.Pp
.It Fl -dump Ns = Ns Ar target
DO NOT USE.
.Pp
Prints the specified target.
.Ar target
can be one of;
.Bl -hang -offset indent
.It Sy insns
disassembled instructions
.Pp
.El
.Pp
Only specify this switch if you are going to debug the Ruby interpreter.
.Pp
.It Fl -verbose
Enables verbose mode without printing version message at the
beginning.  It sets the
.Li "$VERBOSE"
variable to true.
If this switch is given, and no other switches are present, Ruby quits
after printing its version.
.El
.Pp
.Sh ENVIRONMENT
.Bl -tag -width "RUBYSHELL" -compact
.It Ev RUBYLIB
A colon-separated list of directories that are added to Ruby's
library load path
.Pf ( Li "$:" ) . Directories from this environment variable are searched
before the standard load path is searched.
.Pp
e.g.:
.Dl RUBYLIB="$HOME/lib/ruby:$HOME/lib/rubyext"
.Pp
.It Ev RUBYOPT
Additional Ruby options.
.Pp
e.g.
.Dl RUBYOPT="-w -Ke"
.Pp
Note that RUBYOPT can contain only
.Fl d , Fl E , Fl I , Fl K , Fl r , Fl T , Fl U , Fl v , Fl w , Fl W, Fl -debug ,
.Fl -disable- Ns Ar FEATURE
and
.Fl -enable- Ns Ar FEATURE .
.Pp
.It Ev RUBYPATH
A colon-separated list of directories that Ruby searches for
Ruby programs when the
.Fl S
flag is specified.  This variable precedes the
.Ev PATH
environment variable.
.Pp
.It Ev RUBYSHELL
The path to the system shell command.  This environment variable is
enabled for only mswin32, mingw32, and OS/2 platforms.  If this
variable is not defined, Ruby refers to
.Ev COMSPEC .
.Pp
.It Ev PATH
Ruby refers to the
.Ev PATH
environment variable on calling Kernel#system.
.El
.Pp
And Ruby depends on some RubyGems related environment variables unless RubyGems is disabled.
See the help of
.Xr gem 1
as below.
.Bd -literal -offset indent
% gem help
.Ed
.Pp
.Sh GC ENVIRONMENT
The Ruby garbage collector (GC) tracks objects in fixed-sized slots,
but each object may have auxiliary memory allocations handled by the
malloc family of C standard library calls (
.Xr malloc 3 ,
.Xr calloc 3 ,
and
.Xr realloc 3 ) .
In this documentatation, the "heap" refers to the Ruby object heap
of fixed-sized slots, while "malloc" refers to auxiliary
allocations commonly referred to as the "process heap".
Thus there are at least two possible ways to trigger GC:
.Bl -hang -offset indent
.It Sy 1
Reaching the object limit.
.It Sy 2
Reaching the malloc limit.
.Pp
.El
In Ruby 2.1, the generational GC was introduced and the limits are divided
into young and old generations, providing two additional ways to trigger
a GC:
.Bl -hang -offset indent
.It Sy 3
Reaching the old object limit.
.It Sy 4
Reaching the old malloc limit.
.El
.Pp
There are currently 4 possible areas where the GC may be tuned by
the the following 11 environment variables:
.Bl -hang -compact -width "RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR"
.It Ev RUBY_GC_HEAP_INIT_SLOTS
Initial allocation slots.  Introduced in Ruby 2.1, default: 10000.
.Pp
.It Ev RUBY_GC_HEAP_FREE_SLOTS
Prepare at least this amount of slots after GC.
Allocate this number slots if there are not enough slots.
Introduced in Ruby 2.1, default: 4096
.Pp
.It Ev RUBY_GC_HEAP_GROWTH_FACTOR
Increase allocation rate of heap slots by this factor.
Introduced in Ruby 2.1, default: 1.8, minimum: 1.0 (no growth)
.Pp
.It Ev RUBY_GC_HEAP_GROWTH_MAX_SLOTS
Allocation rate is limited to this number of slots,
preventing excessive allocation due to RUBY_GC_HEAP_GROWTH_FACTOR.
Introduced in Ruby 2.1, default: 0 (no limit)
.Pp
.It Ev RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR
Perform a full GC when the number of old objects is more than R * N,
where R is this factor and N is the number of old objects after the
last full GC.
Introduced in Ruby 2.1.1, default: 2.0
.Pp
.It Ev RUBY_GC_MALLOC_LIMIT
The initial limit of young generation allocation from the malloc-family.
GC will start when this limit is reached.
Default: 16MB
.Pp
.It Ev RUBY_GC_MALLOC_LIMIT_MAX
The maximum limit of young generation allocation from malloc before GC starts.
Prevents excessive malloc growth due to RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR.
Introduced in Ruby 2.1, default: 32MB.
.Pp
.It Ev RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR
Increases the limit of young generation malloc calls, reducing
GC frequency but increasing malloc growth until RUBY_GC_MALLOC_LIMIT_MAX
is reached.
Introduced in Ruby 2.1, default: 1.4, minimum: 1.0 (no growth)
.Pp
.It Ev RUBY_GC_OLDMALLOC_LIMIT
The initial limit of old generation allocation from malloc,
a full GC will start when this limit is reached.
Introduced in Ruby 2.1, default: 16MB
.Pp
.It Ev RUBY_GC_OLDMALLOC_LIMIT_MAX
The maximum limit of old generation allocation from malloc before a
full GC starts.
Prevents excessive malloc growth due to RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR.
Introduced in Ruby 2.1, default: 128MB
.Pp
.It Ev RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR
Increases the limit of old generation malloc allocation, reducing full
GC frequency but increasing malloc growth until RUBY_GC_OLDMALLOC_LIMIT_MAX
is reached.
Introduced in Ruby 2.1, default: 1.2, minimum: 1.0 (no growth)
.Pp
.El
.Sh STACK SIZE ENVIRONMENT
Stack size environment variables are implementation-dependent and
subject to change with different versions of Ruby.  The VM stack is used
for pure-Ruby code and managed by the virtual machine.  Machine stack is
used by the operating system and its usage is dependent on C extensions
as well as C compiler options.  Using lower values for these may allow
applications to keep more Fibers or Threads running; but increases the
chance of SystemStackError exceptions and segmentation faults (SIGSEGV).
These environment variables are available since Ruby 2.0.0.
All values are specified in bytes.
.Pp
.Bl -hang -compact -width "RUBY_THREAD_MACHINE_STACK_SIZE"
.It Ev RUBY_THREAD_VM_STACK_SIZE
VM stack size used at thread creation.
default: 131072 (32-bit CPU) or 262144 (64-bit)
.Pp
.It Ev RUBY_THREAD_MACHINE_STACK_SIZE
Machine stack size used at thread creation.
default: 524288 or 1048575
.Pp
.It Ev RUBY_FIBER_VM_STACK_SIZE
VM stack size used at fiber creation.
default: 65536 or 131072
.Pp
.It Ev RUBY_FIBER_MACHINE_STACK_SIZE
Machine stack size used at fiber creation.
default: 262144 or 524288
.Pp
.El
.Sh SEE ALSO
.Bl -hang -compact -width "http://www.ruby-lang.org/123"
.It https://www.ruby-lang.org/
The official web site.
.It https://www.ruby-toolbox.com/
Comprehensive catalog of Ruby libraries.
.El
.Pp
.Sh REPORTING BUGS
.Bl -bullet
.Li Security vulnerabilities should be reported via an email to
.Aq security@ruby-lang.org Ns
.Li .
Reported problems will be published after they've been fixed.
.Pp
.Li And you can report other bugs and feature requests via the
Ruby Issue Tracking System (https://bugs.ruby-lang.org/).
Do not report security vulnerabilities
via the system because it publishes the vulnerabilities immediately.
.El
.Sh AUTHORS
Ruby is designed and implemented by
.An Yukihiro Matsumoto Aq matz@netlab.jp .
.Pp
See
.Aq Pa https://bugs.ruby-lang.org/projects/ruby/wiki/Contributors
for contributors to Ruby.
share/man/man1/erb.1000064400000006367150402107210010113 0ustar00.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>.
.Dd November 7, 2012
.Dt ERB(1) "" "Ruby Programmers Reference Guide"
.Os UNIX
.Sh NAME
.Nm erb
.Nd Ruby Templating
.Sh SYNOPSIS
.Nm
.Op Fl -version
.Op Fl UPdnvx
.Op Fl E Ar ext Ns Op Ns : Ns int
.Op Fl S Ar level
.Op Fl T Ar mode
.Op Fl r Ar library
.Op Fl -
.Op file ...
.Pp
.Sh DESCRIPTION
.Nm
is a command line front-end for
.Li "ERB"
library, which is an implementation of eRuby.
.Pp
ERB provides an easy to use but powerful templating system for Ruby.
Using ERB, actual Ruby code can be added to any plain text document for the
purposes of generating document information details and/or flow control.
.Pp
.Nm
is a part of
.Nm Ruby .
.Pp
.Sh OPTIONS
.Bl -tag -width "1234567890123" -compact
.Pp
.It Fl -version
Prints the version of
.Nm .
.Pp
.It Fl E Ar external Ns Op : Ns Ar internal
.It Fl -encoding Ar external Ns Op : Ns Ar internal
Specifies the default value(s) for external encodings and internal encoding. Values should be separated with colon (:).
.Pp
You can omit the one for internal encodings, then the value
.Pf ( Li "Encoding.default_internal" ) will be nil.
.Pp
.It Fl P
Evaluates lines starting with
.Li "%"
as Ruby code and removes the tailing EOLs.
.Pp
.It Fl S Ar level
Specifies the safe level in which eRuby script will run.
.Pp
.It Fl T Ar mode
Specifies trim mode (default 0).
.Ar mode
can be one of
.Bl -hang -offset indent
.It Sy 0
EOL remains after the embedded ruby script is evaluated.
.Pp
.It Sy 1
EOL is removed if the line ends with
.Li "%>" .
.Pp
.It Sy 2
EOL is removed if the line starts with
.Li "<%"
and ends with
.Li "%>" .
.Pp
.It Sy -
EOL is removed if the line ends with
.Li "-%>" .
And leading whitespaces are removed if the erb directive starts with
.Li "<%-" .
.Pp
.El
.Pp
.It Fl U
can be one of
Sets the default value for internal encodings
.Pf ( Li "Encoding.default_internal" ) to UTF-8.
.Pp
.It Fl d
.It Fl -debug
Turns on debug mode.
.Li "$DEBUG"
will be set to true.
.Pp
.It Fl h
.It Fl -help
Prints a summary of the options.
.Pp
.It Fl n
Used with
.Fl x .
Prepends the line number to each line in the output.
.Pp
.It Fl v
Enables verbose mode.
.Li "$VERBOSE"
will be set to true.
.Pp
.It Fl x
Converts the eRuby script into Ruby script and prints it without line numbers.
.Pp
.El
.Pp
.Sh EXAMPLES
Here is an eRuby script
.Bd -literal -offset indent
<?xml version="1.0" ?>
<% require 'prime' -%>
<erb-example>
  <calc><%= 1+1 %></calc>
  <var><%= __FILE__ %></var>
  <library><%= Prime.each(10).to_a.join(", ") %></library>
</erb-example>
.Ed
.Pp
Command
.Dl "% erb -T - example.erb"
prints
.Bd -literal -offset indent
<?xml version="1.0" ?>
<erb-example>
  <calc>2</calc>
  <var>example.erb</var>
  <library>2, 3, 5, 7</library>
</erb-example>
.Ed
.Pp
.Sh SEE ALSO
.Xr ruby 1 .
.Pp
And see
.Xr ri 1
documentation for
.Li "ERB"
class.
.Pp
.Sh REPORTING BUGS
.Bl -bullet
.Li Security vulnerabilities should be reported via an email to
.Aq security@ruby-lang.org Ns
.Li .
Reported problems will be published after being fixed.
.Pp
.Li And you can report other bugs and feature requests via the
Ruby Issue Tracking System (http://bugs.ruby-lang.org).
Do not report security vulnerabilities
via the system because it publishes the vulnerabilities immediately.
.El
.Sh AUTHORS
Written by Masatoshi SEKI.
share/man/man1/irb.1000064400000006677150402107210010123 0ustar00.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>.
.Dd November 7, 2012
.Dt IRB(1) "" "Ruby Programmers Reference Guide"
.Os UNIX
.Sh NAME
.Nm irb
.Nd Interactive Ruby Shell
.Sh SYNOPSIS
.Nm
.Op Fl -version
.Op Fl dfm
.Op Fl I Ar directory
.Op Fl r Ar library
.Op Fl - Ns Oo no Oc Ns inspect
.Op Fl - Ns Oo no Oc Ns readline
.Op Fl -prompt Ar mode
.Op Fl -prompt-mode Ar mode
.Op Fl -inf-ruby-mode
.Op Fl -simple-prompt
.Op Fl -noprompt
.Op Fl -tracer
.Op Fl -back-trace-limit Ar n
.Op Fl -irb_debug Ar n
.Op Fl -
.Op program_file
.Op argument ...
.Pp
.Sh DESCRIPTION
.Nm
is the REPL(read-eval-print loop) environment for Ruby programs.
.Pp
.Sh OPTIONS
.Bl -tag -width "1234567890123" -compact
.Pp
.It Fl -version
Prints the version of
.Nm .
.Pp
.It Fl E Ar external Ns Op : Ns Ar internal
.It Fl -encoding Ar external Ns Op : Ns Ar internal
Same as `ruby -E' .
Specifies the default value(s) for external encodings and internal encoding. Values should be separated with colon (:).
.Pp
You can omit the one for internal encodings, then the value
.Pf ( Li "Encoding.default_internal" ) will be nil.
.Pp
.It Fl I Ar path
Same as `ruby -I' .
Specifies
.Li $LOAD_PATH
directory
.Pp
.It Fl U
Same as `ruby -U' .
Sets the default value for internal encodings
.Pf ( Li "Encoding.default_internal" ) to UTF-8.
.Pp
.It Fl d
Same as `ruby -d' .
Sets
.Li $DEBUG
to true.
.Pp
.It Fl f
Suppresses read of
.Pa ~/.irbrc .
.Pp
.It Fl h
.It Fl -help
Prints a summary of the options.
.Pp
.It Fl m
Bc mode (load mathn, fraction or matrix are available)
.Pp
.It Fl r Ar library
Same as `ruby -r'.
Causes irb to load the library using require.
.Pp
.It Fl -inspect
Uses `inspect' for output (default except for bc mode)
.Pp
.It Fl -noinspect
Doesn't use inspect for output
.Pp
.It Fl -readline
Uses Readline extension module.
.Pp
.It Fl -noreadline
Doesn't use Readline extension module.
.Pp
.It Fl -prompt Ar mode
.It Fl -prompt-mode Ar mode
Switch prompt mode. Pre-defined prompt modes are
`default', `simple', `xmp' and `inf-ruby'.
.Pp
.It Fl -inf-ruby-mode
Uses prompt appropriate for inf-ruby-mode on emacs.
Suppresses --readline.
.Pp
.It Fl -simple-prompt
Makes prompts simple.
.Pp
.It Fl -noprompt
No prompt mode.
.Pp
.It Fl -tracer
Displays trace for each execution of commands.
.Pp
.It Fl -back-trace-limit Ar n
Displays backtrace top
.Ar n
and tail
.Ar n Ns .
The default value is 16.
.Pp
.It Fl -irb_debug Ar n
Sets internal debug level to n (not for popular use)
.Pp
.El
.Pp
.Sh ENVIRONMENT
.Bl -tag -compact
.It Ev IRBRC
.Pp
.El
.Pp
Also
.Nm
depends on same variables as
.Xr ruby 1 .
.Pp
.Sh FILES
.Bl -tag -compact
.It Pa ~/.irbrc
Personal irb initialization.
.Pp
.El
.Pp
.Sh EXAMPLES
.Dl % irb
.Dl irb(main):001:0> Ic 1 + 1
.Dl 2
.Dl irb(main):002:0> Ic def t(x)
.Dl irb(main):003:1> Ic   x+1
.Dl irb(main):004:1> Ic end
.Dl => nil
.Dl irb(main):005:0> Ic t(3)
.Dl => 4
.Dl irb(main):006:0> Ic if t(3) == 4
.Dl irb(main):007:1> Ic p :ok
.Dl irb(main):008:1> Ic end
.Dl :ok
.Dl => :ok
.Dl irb(main):009:0> Ic quit
.Dl %
.Pp
.Sh SEE ALSO
.Xr ruby 1 .
.Pp
.Sh REPORTING BUGS
.Bl -bullet
.Li Security vulnerabilities should be reported via an email to
.Aq security@ruby-lang.org Ns
.Li .
Reported problems will be published after being fixed.
.Pp
.Li And you can report other bugs and feature requests via the
Ruby Issue Tracking System (http://bugs.ruby-lang.org).
Do not report security vulnerabilities
via the system because it publishes the vulnerabilities immediately.
.El
.Sh AUTHORS
Written by Keiju ISHITSUKA.
share/man/man1/rake.1000064400000011007150402107210010250 0ustar00.\"                                      Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH RAKE 1 "August 27, 2014" "rake 10.3.2" "Rake User Commands"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh        disable hyphenation
.\" .hy        enable hyphenation
.\" .ad l      left justify
.\" .ad b      justify to both left and right margins
.\" .nf        disable filling
.\" .fi        enable filling
.\" .br        insert line break
.\" .sp <n>    insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
rake \- a make-like build utility for Ruby
.SH SYNOPSIS
\fBrake\fR [\fI\-f rakefile\fR] {\fIOPTIONS\fR} \fITARGETS...\fR
.br
.SH DESCRIPTION
.B rake
is a make-like build utility for Ruby. Tasks and dependencies are specified in
standard Ruby syntax.
.SH OPTIONS
.TP
\fB\-m\fR, \fB\-\-multitask\fR
Treat all tasks as multitasks.
.TP
\fB\-B\fR, \fB\-\-build\-all\fR
Build all prerequisites, including those which are up\-to\-date.

.TP
\fB\-j\fR, \fB\-\-jobs\fR [\fINUMBER\fR]
Specifies the maximum number of tasks to execute in parallel (default is number of CPU cores + 4).

.SS Modules
.TP
\fB\-I\fR, \fB\-\-libdir\fR \fILIBDIR\fR
Include \fILIBDIR\fR in the search path for required modules.
.TP
\fB\-r\fR, \fB\-\-require\fR \fIMODULE\fR
Require \fIMODULE\fR before executing rakefile.

.SS Rakefile location
.TP
\fB\-f\fR, \fB\-\-rakefile\fR [\fIFILENAME\fR]
Use \fIFILENAME\fR as the rakefile to search for.
.TP
\fB\-N\fR, \fB\-\-no\-search\fR, \fB\-\-nosearch\fR
Do not search parent directories for the Rakefile.
.TP
\fB\-G\fR, \fB\-\-no\-system\fR, \fB\-\-nosystem\fR
Use standard project Rakefile search paths, ignore system wide rakefiles.
.TP
\fB\-R\fR, \fB\-\-rakelibdir\fR \fIRAKELIBDIR\fR
Auto\-import any .rake files in \fIRAKELIBDIR\fR (default is 'rakelib')
.HP
\fB\-\-rakelib\fR
.TP
\fB\-g\fR, \fB\-\-system\fR
Using system wide (global) rakefiles (usually '\fI~/.rake/*.rake\fR').

.SS Debugging
.TP
\fB\-\-backtrace\fR=\fI\,[OUT]\/\fR
Enable full backtrace.  \fIOUT\fR can be stderr (default) or stdout.
.TP
\fB\-t\fR, \fB\-\-trace\fR=\fI\,[OUT]\/\fR
Turn on invoke/execute tracing, enable full backtrace. \fIOUT\fR can be stderr (default) or stdout.
.TP
\fB\-\-suppress\-backtrace\fR \fIPATTERN\fR
Suppress backtrace lines matching regexp \fIPATTERN\fR. Ignored if \fI\-\-trace\fR is on.
.TP
\fB\-\-rules\fR
Trace the rules resolution.

.TP
\fB\-n\fR, \fB\-\-dry\-run\fR
Do a dry run without executing actions.
.TP
\fB\-T\fR, \fB\-\-tasks\fR [\fIPATTERN\fR]
Display the tasks (matching optional \fIPATTERN\fR) with descriptions, then exit.
.TP
\fB\-D\fR, \fB\-\-describe\fR [\fIPATTERN\fR]
Describe the tasks (matching optional \fIPATTERN\fR), then exit.
.TP
\fB\-W\fR, \fB\-\-where\fR [\fIPATTERN\fR]
Describe the tasks (matching optional \fIPATTERN\fR), then exit.
.TP
\fB\-P\fR, \fB\-\-prereqs\fR
Display the tasks and dependencies, then exit.

.TP
\fB\-e\fR, \fB\-\-execute\fR \fICODE\fR
Execute some Ruby code and exit.
.TP
\fB\-p\fR, \fB\-\-execute\-print\fR \fICODE\fR
Execute some Ruby code, print the result, then exit.
.TP
\fB\-E\fR, \fB\-\-execute\-continue\fR \fICODE\fR
Execute some Ruby code, then continue with normal task processing.

.SS Information
.TP
\fB\-v\fR, \fB\-\-verbose\fR
Log message to standard output.
.TP
\fB\-q\fR, \fB\-\-quiet\fR
Do not log messages to standard output.
.TP
\fB\-s\fR, \fB\-\-silent\fR
Like \fB\-\-quiet\fR, but also suppresses the 'in directory' announcement.
.TP
\fB\-X\fR, \fB\-\-no\-deprecation\-warnings\fR
Disable the deprecation warnings.
.TP
\fB\-\-comments\fR
Show commented tasks only
.TP
\fB\-A\fR, \fB\-\-all\fR
Show all tasks, even uncommented ones (in combination with \fB\-T\fR or \fB\-D\fR)
.TP
\fB\-\-job\-stats\fR [\fILEVEL\fR]
Display job statistics. \fILEVEL=history\fR displays a complete job list
.TP
\fB\-V\fR, \fB\-\-version\fR
Display the program version.
.TP
\fB\-h\fR, \fB\-H\fR, \fB\-\-help\fR
Display a help message.

.SH SEE ALSO
The complete documentation for \fBrake\fR has been installed at \fI/usr/share/doc/rake-doc/html/index.html\fR. It is also available online at \fIhttp://docs.seattlerb.org/rake\fR.
.SH AUTHOR
.B rake
was written by Jim Weirich <jim@weirichhouse.org>
.PP
This manual was created by Caitlin Matos <caitlin.matos@zoho.com> for the Debian project (but may be used by others). It was inspired by the manual by Jani Monoses <jani@iv.ro> for the Ubuntu project.
share/man/man1/ri.1000064400000010203150402107210007735 0ustar00.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>.
.Dd November 7, 2012
.Dt RI(1) "" "Ruby Programmers Reference Guide"
.Os UNIX
.Sh NAME
.Nm ri
.Nd Ruby API reference front end
.Sh SYNOPSIS
.Nm
.Op Fl Ti
.Op Fl d Ar directory
.Op Fl f Ar format
.Op Fl -list-doc-dirs
.Op Fl -no-standard-docs
.Op Fl - Ns Oo Cm no- Oc Ns Bro Cm system Ns | Ns Cm site Ns | Ns Cm gems Ns | Ns Cm home Brc
.Op Fl - Ns Oo Cm no- Oc Ns Cm use-cache
.Op Fl -width Ns = Ns Ar width
.Op Ar target ...
.Sh DESCRIPTION
.Nm
is a CLI front end for the Ruby API reference.
You can search and read API reference for classes and methods with
.Nm .
.Pp
.Nm
is a part of Ruby.
.Pp
.Ar target
can be one of the following forms:
.Bl -diag -offset indent
.It Class
for classes
.It Class::method
for class methods
.It Class#method
for instance methods
.It Class.method
for both class and instance methods
.It method
for both class and instance methods
.El
.Pp
All class names may be abbreviated to their minimum unambiguous form. If a name
is ambiguous, all valid options will be listed.
.Pp
For example:
.Bd -literal -offset indent
ri Fil
ri File
ri File.new
ri zip
.Ed
.Pp
Note that shell quoting may be required for method names containing
punctuation:
.Bd -literal -offset indent
ri 'Array.[]'
ri compact\!
.Ed
.Sh OPTIONS
.Bl -tag -width "1234567890123" -compact
.Pp
.It Fl -version
Prints the version of
.Nm .
.Pp
.It Fl T
.It Fl -no-pager
Send output directly to stdout, rather than to a pager.
.Pp
.It Fl d Ar directory
.It Fl -doc-dir Ns = Ns Ar directory
List of directories from which to source documentation in addition to the standard
directories.  May be repeated.
.Pp
.It Fl f Ar FORMAT
.It Fl -fmt Ar FORMAT
.It Fl -format Ns = Ns FORMAT
Format to use when displaying output:
.Pp
ansi, bs, html, plain, simple
.Pp
Use 'bs' (backspace) with most pager programs. To use ANSI, either disable the
pager or tell the pager to allow control characters.
.Pp
.It Fl i
.It Fl -interactive
This makes
.Nm
go into interactive mode.
.Pp
When
.Nm
is in interactive mode it will allow the user to disambiguate lists of
methods in case multiple methods match against a method search string.  It also
will allow the user to enter in a method name (with auto-completion, if readline
is supported) when viewing a class.
.Pp
.It Fl -list-doc-dirs
List the directories from which ri will source documentation on stdout and exit.
.Pp
.It Fl -no-standard-docs
Do not include documentation from the Ruby standard library,
.Pa site_lib ,
installed gems, or
.Pa ~/.rdoc .
.Pp
Equivalent to specifying the options
.Fl -no-system , Fl -no-site , Fl -no-gems ,
and
.Fl -no-home .
.Pp
.It Fl - Ns Oo Cm no- Oc Ns Cm system
Include documentation from Ruby's standard library.  Defaults to true.
.Pp
.It Fl - Ns Oo Cm no- Oc Ns Cm site
 Include documentation from libraries installed in site_lib. Defaults to true.
.Pp
.It Fl - Ns Oo Cm no- Oc Ns Cm gems
Include documentation from RubyGems. Defaults to true.
.Pp
.It Fl - Ns Oo Cm no- Oc Ns Cm home
Include documentation stored in ~/.rdoc.  Defaults to true.
.Pp
.It Fl - Ns Oo Cm no- Oc Ns Cm use-cache
Whether or not to use
.Nm Ns
.Ns 's cache. True by default.
.Pp
.It Fl w Ar width
.It Fl -width Ns = Ns Ar width
Set the width of the output.
.Pp
.El
.Pp
.Sh ENVIRONMENT
.Bl -tag -width "USERPROFILE" -compact
.Pp
.It Ev RI
Additional options.
.Pp
.It Ev PAGER
Used as the name of pager program for displaying.
.Pp
.It Ev HOME
.It Ev USERPROFILE
.It Ev HOMEPATH
Path to user's home directory.
.El
.Pp
.Sh FILES
.Bl -tag -width "USERPROFILE" -compact
.Pp
.It Pa ~/.ri
Caches recently referenced documents here.
.Pp
.It Pa ~/.rdoc
Searches user-wide documents here.
.Pp
.El
.Pp
.Sh SEE ALSO
.Xr ruby 1
.Xr rdoc 1
.Xr gem 1
.Pp
.Sh REPORTING BUGS
.Bl -bullet
.Li Security vulnerabilities should be reported via an email to
.Aq security@ruby-lang.org Ns
.Li .
Reported problems will be published after being fixed.
.Pp
.Li And you can report other bugs and feature requests via the
Ruby Issue Tracking System (http://bugs.ruby-lang.org).
Do not report security vulnerabilities
via the system because it publishes the vulnerabilities immediately.
.El
.Sh AUTHORS
Written by Dave Thomas
.Aq dave@pragmaticprogrammer.com
share/doc/alt-ruby22/COPYING.ja000064400000005100150402107210011726 0ustar00本プログラムはフリーソフトウェアです.2-clause BSDL
または以下に示す条件で本プログラムを再配布できます
2-clause BSDLについてはBSDLファイルを参照して下さい.

  1. 複製は制限なく自由です.

  2. 以下の条件のいずれかを満たす時に本プログラムのソースを
     自由に変更できます.

     (a) ネットニューズにポストしたり,作者に変更を送付する
         などの方法で,変更を公開する.

     (b) 変更した本プログラムを自分の所属する組織内部だけで
         使う.

     (c) 変更点を明示したうえ,ソフトウェアの名前を変更する.
         そのソフトウェアを配布する時には変更前の本プログラ
         ムも同時に配布する.または変更前の本プログラムのソー
         スの入手法を明示する.

     (d) その他の変更条件を作者と合意する.

  3. 以下の条件のいずれかを満たす時に本プログラムをコンパイ
     ルしたオブジェクトコードや実行形式でも配布できます.

     (a) バイナリを受け取った人がソースを入手できるように,
         ソースの入手法を明示する.

     (b) 機械可読なソースコードを添付する.

     (c) 変更を行ったバイナリは名前を変更したうえ,オリジナ
         ルのソースコードの入手法を明示する.

     (d) その他の配布条件を作者と合意する.

  4. 他のプログラムへの引用はいかなる目的であれ自由です.た
     だし,本プログラムに含まれる他の作者によるコードは,そ
     れぞれの作者の意向による制限が加えられる場合があります.

     それらファイルの一覧とそれぞれの配布条件などに付いては
     LEGALファイルを参照してください.

  5. 本プログラムへの入力となるスクリプトおよび,本プログラ
     ムからの出力の権利は本プログラムの作者ではなく,それぞ
     れの入出力を生成した人に属します.また,本プログラムに
     組み込まれるための拡張ライブラリについても同様です.

  6. 本プログラムは無保証です.作者は本プログラムをサポート
     する意志はありますが,プログラム自身のバグあるいは本プ
     ログラムの実行などから発生するいかなる損害に対しても責
     任を持ちません.
share/doc/alt-ruby22/LEGAL000064400000062232150402107210011062 0ustar00LEGAL NOTICE INFORMATION
------------------------

All the files in this distribution are covered under either the Ruby's
license (see the file COPYING) or public-domain except some files
mentioned below.

ccan/build_assert/build_assert.h
ccan/check_type/check_type.h
ccan/container_of/container_of.h
ccan/str/str.h

  These files are licensed under the CC0.

    http://creativecommons.org/choose/zero/

ccan/list/list.h

  This file is licensed under the MIT License.

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in
    all copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    THE SOFTWARE.

include/ruby/oniguruma.h:
regcomp.c:
regenc.[ch]:
regerror.c:
regexec.c:
regint.h:
regparse.[ch]:
enc/ascii.c
enc/big5.c
enc/cp949.c
enc/emacs_mule.c
enc/encdb.c
enc/euc_jp.c
enc/euc_kr.c
enc/euc_tw.c
enc/gb18030.c
enc/gb2312.c
enc/gbk.c
enc/iso_8859_1.c
enc/iso_8859_10.c
enc/iso_8859_11.c
enc/iso_8859_13.c
enc/iso_8859_14.c
enc/iso_8859_15.c
enc/iso_8859_16.c
enc/iso_8859_2.c
enc/iso_8859_3.c
enc/iso_8859_4.c
enc/iso_8859_5.c
enc/iso_8859_6.c
enc/iso_8859_7.c
enc/iso_8859_8.c
enc/iso_8859_9.c
enc/koi8_r.c
enc/koi8_u.c
enc/shift_jis.c
enc/unicode.c
enc/us_ascii.c
enc/utf_16be.c
enc/utf_16le.c
enc/utf_32be.c
enc/utf_32le.c
enc/utf_8.c
enc/windows_1251.c

Oniguruma  ----   (C) K.Kosako <sndgk393 AT ybb DOT ne DOT jp>

http://www.geocities.jp/kosako3/oniguruma/
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/oniguruma/
http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/oniguruma/

   When this software is partly used or it is distributed with Ruby,
   this of Ruby follows the license of Ruby.

configure:

  This file is free software.

    Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.

    This configure script is free software; the Free Software Foundation
    gives unlimited permission to copy, distribute and modify it.

tool/config.guess:
tool/config.sub:

  As long as you distribute these files with the file configure, they
  are covered under the Ruby's license.

      Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999
      Free Software Foundation, Inc.

    This file is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 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
    General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

    As a special exception to the GNU General Public License, if you
    distribute this file as part of a program that contains a
    configuration script generated by Autoconf, you may include it under
    the same distribution terms that you use for the rest of that program.

parse.c:

  This file is licensed under the GPL, but is incorporated into Ruby and
  redistributed under the terms of the Ruby license, as permitted by the
  exception to the GPL below.

     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
     Free Software Foundation, Inc.

     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     the Free Software Foundation; either version 2, 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 General Public License for more details.

     You should have received a copy of the GNU 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.  */

  /* As a special exception, you may create a larger work that contains
     part or all of the Bison parser skeleton and distribute that work
     under terms of your choice, so long as that work isn't itself a
     parser generator using the skeleton or a modified version thereof
     as a parser skeleton.  Alternatively, if you modify or redistribute
     the parser skeleton itself, you may (at your option) remove this
     special exception, which will cause the skeleton and the resulting
     Bison output files to be licensed under the GNU General Public
     License without this special exception.

     This special exception was added by the Free Software Foundation in
     version 2.2 of Bison.  */

util.c (partly):

    Copyright (c) 1991, 2000, 2001 by Lucent Technologies.

    Permission to use, copy, modify, and distribute this software for any
    purpose without fee is hereby granted, provided that this entire notice
    is included in all copies of any software which is or includes a copy
    or modification of this software and in all copies of the supporting
    documentation for such software.

    THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
    WARRANTY.  IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
    REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
    OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.

win32/win32.[ch]:

  You can apply the Artistic License to these files. (or GPL,
  alternatively)

    Copyright (c) 1993, Intergraph Corporation

    You may distribute under the terms of either the GNU General Public
    License or the Artistic License, as specified in the perl README file.

util.c (partly):

   Copyright (c) 2004-2008 David Schultz <das@FreeBSD.ORG>
   All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
   are met:
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
   2. Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.

   THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   SUCH DAMAGE.

random.c

  This file is under the new-style BSD license.

    A C-program for MT19937, with initialization improved 2002/2/10.
    Coded by Takuji Nishimura and Makoto Matsumoto.
    This is a faster version by taking Shawn Cokus's optimization,
    Matthe Bellew's simplification, Isaku Wada's real version.

    Before using, initialize the state by using init_genrand(seed)
    or init_by_array(init_key, key_length).

    Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
    All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:

      1. Redistributions of source code must retain the above copyright
	 notice, this list of conditions and the following disclaimer.

      2. Redistributions in binary form must reproduce the above copyright
	 notice, this list of conditions and the following disclaimer in the
	 documentation and/or other materials provided with the distribution.

      3. The names of its contributors may not be used to endorse or promote
	 products derived from this software without specific prior written
	 permission.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


    Any feedback is very welcome.
    http://www.math.keio.ac.jp/matumoto/emt.html
    email: matumoto@math.keio.ac.jp

vm_dump.c:procstat_vm

 * Copyright (c) 2007 Robert N. M. Watson
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * $FreeBSD: head/usr.bin/procstat/procstat_vm.c 261780 2014-02-11 21:57:37Z jhb $

vsnprintf.c:

  This file is under the old-style BSD license.  Note that the
  paragraph 3 below is now null and void.

    Copyright (c) 1990, 1993
         The Regents of the University of California.  All rights reserved.

    This code is derived from software contributed to Berkeley by
    Chris Torek.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
    3. Neither the name of the University nor the names of its contributors
       may be used to endorse or promote products derived from this software
       without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.

    IMPORTANT NOTE:
    --------------
    From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
    paragraph 3 above is now null and void.

st.[ch]:
missing/alloca.c:
missing/dup2.c:
missing/erf.c:
missing/finite.c:
missing/hypot.c:
missing/isinf.c:
missing/isnan.c:
missing/lgamma_r.c:
missing/memcmp.c:
missing/memmove.c:
missing/strchr.c:
missing/strstr.c:
missing/strtol.c:
missing/tgamma.c:
ext/digest/sha1/sha1.[ch]:

  These files are all under public domain.

missing/crypt.c:

  This file is under the old-style BSD license.  Note that the
  paragraph 3 below is now null and void.

    Copyright (c) 1989, 1993
    	The Regents of the University of California.  All rights reserved.

    This code is derived from software contributed to Berkeley by
    Tom Truscott.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
    3. Neither the name of the University nor the names of its contributors
       may be used to endorse or promote products derived from this software
       without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.

missing/setproctitle.c

  This file is under the old-style BSD license.  Note that the
  paragraph 3 below is now null and void.

    Copyright 2003 Damien Miller
    Copyright (c) 1983, 1995-1997 Eric P. Allman
    Copyright (c) 1988, 1993
    	The Regents of the University of California.  All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
    3. Neither the name of the University nor the names of its contributors
       may be used to endorse or promote products derived from this software
       without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.

missing/strlcat.c
missing/strlcpy.c

  These files are under the new-style BSD license.

   Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
   All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
   are met:
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
   2. Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.
   3. The name of the author may not be used to endorse or promote products
      derived from this software without specific prior written permission.

   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
   THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
   OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
   OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
   ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

missing/langinfo.c

  This file is from http://www.cl.cam.ac.uk/~mgk25/ucs/langinfo.c.
  Ruby uses a modified version. The file contains the following
  author/copyright notice:

  Markus.Kuhn@cl.cam.ac.uk -- 2002-03-11
  Permission to use, copy, modify, and distribute this software
  for any purpose and without fee is hereby granted. The author
  disclaims all warranties with regard to this software.

ext/digest/md5/md5.[ch]:

  These files are under the following license.  Ruby uses modified
  versions of them.

    Copyright (C) 1999, 2000 Aladdin Enterprises.  All rights reserved.

    This software is provided 'as-is', without any express or implied
    warranty.  In no event will the authors be held liable for any damages
    arising from the use of this software.

    Permission is granted to anyone to use this software for any purpose,
    including commercial applications, and to alter it and redistribute it
    freely, subject to the following restrictions:

    1. The origin of this software must not be misrepresented; you must not
       claim that you wrote the original software. If you use this software
       in a product, an acknowledgment in the product documentation would be
       appreciated but is not required.
    2. Altered source versions must be plainly marked as such, and must not be
       misrepresented as being the original software.
    3. This notice may not be removed or altered from any source distribution.

    L. Peter Deutsch
    ghost@aladdin.com

ext/digest/rmd160/rmd160.[ch]:

  These files have the following copyright information, and by the
  author we are allowed to use it under the new-style BSD license.

    AUTHOR:   Antoon Bosselaers, ESAT-COSIC
              (Arranged for libc by Todd C. Miller)
    DATE:     1 March 1996

    Copyright (c) Katholieke Universiteit Leuven
    1996, All Rights Reserved

ext/digest/sha2/sha2.[ch]:

  These files are under the new-style BSD license.

    Copyright 2000 Aaron D. Gifford.  All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
    3. Neither the name of the copyright holder nor the names of contributors
       may be used to endorse or promote products derived from this software
       without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND CONTRIBUTOR(S) ``AS IS'' AND
    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTOR(S) BE LIABLE
    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.

ext/nkf/nkf-utf8/config.h:
ext/nkf/nkf-utf8/nkf.c:
ext/nkf/nkf-utf8/utf8tbl.c:

  These files are under the following license.  So to speak, it is
  copyrighted semi-public-domain software.

    Copyright (C) 1987, Fujitsu LTD. (Itaru ICHIKAWA)
       Everyone is permitted to do anything on this program
       including copying, modifying, improving,
       as long as you don't try to pretend that you wrote it.
       i.e., the above copyright notice has to appear in all copies.
       Binary distribution requires original version messages.
       You don't have to ask before copying, redistribution or publishing.
       THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE.

ext/socket/addrinfo.h:
ext/socket/getaddrinfo.c:
ext/socket/getnameinfo.c:

  These files are under the new-style BSD license.

    Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project.
    All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
    3. Neither the name of the project nor the names of its contributors
       may be used to endorse or promote products derived from this software
       without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.

ext/win32ole/win32ole.c:

  You can apply the Artistic License to this file. (or GPL,
  alternatively)

    (c) 1995 Microsoft Corporation. All rights reserved.
    Developed by ActiveWare Internet Corp., http://www.ActiveWare.com

    Other modifications Copyright (c) 1997, 1998 by Gurusamy Sarathy
    <gsar@umich.edu> and Jan Dubois <jan.dubois@ibm.net>

    You may distribute under the terms of either the GNU General Public
    License or the Artistic License, as specified in the README file
    of the Perl distribution.
share/doc/alt-ruby22/BSDL000064400000002402150402107210010753 0ustar00Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
share/doc/alt-ruby22/COPYING000064400000004710150402107210011343 0ustar00Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
You can redistribute it and/or modify it under either the terms of the
2-clause BSDL (see the file BSDL), or the conditions below:

  1. You may make and give away verbatim copies of the source form of the
     software without restriction, provided that you duplicate all of the
     original copyright notices and associated disclaimers.

  2. You may modify your copy of the software in any way, provided that
     you do at least ONE of the following:

       a) place your modifications in the Public Domain or otherwise
          make them Freely Available, such as by posting said
	  modifications to Usenet or an equivalent medium, or by allowing
	  the author to include your modifications in the software.

       b) use the modified software only within your corporation or
          organization.

       c) give non-standard binaries non-standard names, with
          instructions on where to get the original software distribution.

       d) make other distribution arrangements with the author.

  3. You may distribute the software in object code or binary form,
     provided that you do at least ONE of the following:

       a) distribute the binaries and library files of the software,
	  together with instructions (in the manual page or equivalent)
	  on where to get the original distribution.

       b) accompany the distribution with the machine-readable source of
	  the software.

       c) give non-standard binaries non-standard names, with
          instructions on where to get the original software distribution.

       d) make other distribution arrangements with the author.

  4. You may modify and include the part of the software into any other
     software (possibly commercial).  But some files in the distribution
     are not written by the author, so that they are not under these terms.

     For the list of those files and their copying conditions, see the
     file LEGAL.

  5. The scripts and library files supplied as input to or produced as 
     output from the software do not automatically fall under the
     copyright of the software, but belong to whomever generated them, 
     and may be sold commercially, and may be aggregated with this
     software.

  6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
     IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     PURPOSE.
share/doc/alt-ruby22/GPL000064400000043254150402107210010663 0ustar00                    GNU GENERAL PUBLIC LICENSE
                       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

                    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

                            NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 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 General Public License for more details.

    You should have received a copy of the GNU 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.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) year name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  <signature of Ty Coon>, 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
share/doc/alt-ruby22-rubygems/LICENSE.txt000064400000004331150402107210013765 0ustar00RubyGems is copyrighted free software by Chad Fowler, Rich Kilmer, Jim
Weirich and others.  You can redistribute it and/or modify it under
either the terms of the MIT license (see the file MIT.txt), or the
conditions below:

1. You may make and give away verbatim copies of the source form of the
   software without restriction, provided that you duplicate all of the
   original copyright notices and associated disclaimers.

2. You may modify your copy of the software in any way, provided that
   you do at least ONE of the following:

   a. place your modifications in the Public Domain or otherwise
      make them Freely Available, such as by posting said
      modifications to Usenet or an equivalent medium, or by allowing
      the author to include your modifications in the software.

   b. use the modified software only within your corporation or
      organization.

   c. give non-standard executables non-standard names, with
      instructions on where to get the original software distribution.

   d. make other distribution arrangements with the author.

3. You may distribute the software in object code or executable
   form, provided that you do at least ONE of the following:

   a. distribute the executables and library files of the software,
      together with instructions (in the manual page or equivalent)
      on where to get the original distribution.

   b. accompany the distribution with the machine-readable source of
      the software.

   c. give non-standard executables non-standard names, with
      instructions on where to get the original software distribution.

   d. make other distribution arrangements with the author.

4. You may modify and include the part of the software into any other
   software (possibly commercial).

5. The scripts and library files supplied as input to or produced as
   output from the software do not automatically fall under the
   copyright of the software, but belong to whomever generated them,
   and may be sold commercially, and may be aggregated with this
   software.

6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   PURPOSE.